LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqIFNpbXBsaWZpZWQgQ2hpbmVzZSBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDAyIGxpdXNwaWRlciA8bGl1c3BpZGVyQHlhaG9vLmNvbT4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKLyogTWVudSAqLwoKTUFJTl9NRU5VIE1FTlUgTEFOR1VBR0UgTEFOR19DSElORVNFLCBTVUJMQU5HX0NISU5FU0VfU0lNUExJRklFRAp7CiBQT1BVUCAizsS8/qOoJkajqSIgewogICBNRU5VSVRFTSAi0MK9qKOoJk6jqS4uLiIsICAgICAgICAgICAgICBQTV9ORVcKICAgTUVOVUlURU0gIrTyv6qjqCZPo6lcdEVudGVyIiwgICAgICAgICAgICAgUE1fT1BFTgogICBNRU5VSVRFTSAi0sa2r6OoJk2jqS4uLlx0RjciLCAgICAgICAgICAgICBQTV9NT1ZFLCAgICAgIEdSQVlFRAogICBNRU5VSVRFTSAiuLTWxqOoJkOjqS4uLlx0RjgiLCAgICAgICAgICAgICBQTV9DT1BZLCAgICAgIEdSQVlFRAogICBNRU5VSVRFTSAiyb6z/aOoJkSjqVx0RW50ZiIsICAgICAgICAgICBQTV9ERUxFVEUKICAgTUVOVUlURU0gIsr00NSjqCZBo6kuLi5cdEFsdCtFbnRlciIsICAgICAgIFBNX0FUVFJJQlVURVMKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICLWtNDQo6gmRaOpLi4uIiwgICAgICAgICAgUE1fRVhFQ1VURQogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIs3Ls/YgV2luZG93c6OoJlijqS4uLiIsICAgICAgICAgICAgIFBNX0VYSVQKIH0KIFBPUFVQICLRoc/uo6gmT6OpIiB7CiAgIE1FTlVJVEVNICLX1LavxcXB0KOoJkEpIiwgIFBNX0FVVE9fQVJSQU5HRQogICBNRU5VSVRFTSAi1MvQ0Mqx1+7Qobuvo6gmTaOpIiwgICAgUE1fTUlOX09OX1JVTgogICBNRU5VSVRFTSAizcuz9sqxsaO05sno1sOjqCZTo6kiLCBQTV9TQVZFX1NFVFRJTkdTCiB9CiBQT1BVUCAitLC/2qOoJlejqSIgewogICBNRU5VSVRFTSAisuO1/qOoJk+jqVx0U2hpZnQrRjUiLCAgICAgICBQTV9PVkVSTEFQCiAgIE1FTlVJVEVNICKyosXFo6gmU6OpXHRTaGlmdCtGNCIsICBQTV9TSURFX0JZX1NJREUKICAgTUVOVUlURU0gIsXFwdDNvLHqo6gmQaOpIiwgICAgICAgUE1fQVJSQU5HRQogfQoKUE9QVVAgIrDv1vqjqCZIo6kiIHsKICAgTUVOVUlURU0gIsTayN2jqCZDo6kiLCAgICAgICAgIFBNX0NPTlRFTlRTCiAgIE1FTlVJVEVNICLL0cv3o6gmU6OpLi4uIiwgICAgICAgICAgIFBNX1NFQVJDSAogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIsjnus7KudPDsO/W+qOoJkijqSIsICAgICBQTV9IRUxQT05IRUxQCiAgIE1FTlVJVEVNICK9zLPMo6gmVKOpIiwgICAgICAgICBQTV9UVVRPUklBTAogICBNRU5VSVRFTSBTRVBBUkFUT1IKCiAgIFBPUFVQICLXysHP0MXPoqOoJkmjqS4uLiIgewogICAgIE1FTlVJVEVNICLTw7un0O2/ydCt0umjqCZMo6kiLCAgICAgICAgUE1fTElDRU5TRQogICAgIE1FTlVJVEVNICLU8MjOzt652KOoJk6jqSIsICAgIFBNX05PX1dBUlJBTlRZCiAgICAgTUVOVUlURU0gIrnY09ogV2luZaOoJkGjqSIsICAgICBQTV9BQk9VVF9XSU5FCiAgIH0KIH0KfQoKLyogRGlhbG9nIGBOZXcnICovCgpESUFMT0dfTkVXIERJQUxPRyAwLCAwLCAxNzAsIDY1CkxBTkdVQUdFIExBTkdfQ0hJTkVTRSwgU1VCTEFOR19DSElORVNFX1NJTVBMSUZJRUQKU1RZTEUgRFNfTU9EQUxGUkFNRQpDQVBUSU9OICJOZXciCnsKUkFESU9CVVRUT04gICAiIiwgICAgICAgICAgICAgICAgIFBNX05FV19HUk9VUCwgICAgMTAsIDE1LCAgMTAsIDE1CkxURVhUICAgICAgICAgIrPM0PLX6aOoJkejqSIsICAgUE1fTkVXX0dST1VQLCAgICAyMCwgMTgsICA4MCwgMTUKUkFESU9CVVRUT04gICAiIiwgICAgICAgICAgICAgICAgIFBNX05FV19QUk9HUkFNLCAgMTAsIDM1LCAgMTAsIDE1CkxURVhUICAgICAgICAgIrPM0PKjqCZQo6kiLCBQTV9ORVdfUFJPR1JBTSwgIDIwLCAzOCwgIDgwLCAxNQpERUZQVVNIQlVUVE9OICLIt7aoIiwgICAgICAgICAgSURPSywgICAgICAgICAgIDEwNSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiyKHP+yIsICAgICAgSURDQU5DRUwsICAgICAgIDEwNSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAisO/W+qOoJkijqSIsICAgICAgICBQTV9IRUxQLCAgICAgICAgMTA1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYE1vdmUnICovCgpESUFMT0dfTU9WRSBESUFMT0cgMCwgMCwgMjUwLCA2NQpMQU5HVUFHRSBMQU5HX0NISU5FU0UsIFNVQkxBTkdfQ0hJTkVTRV9TSU1QTElGSUVEClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiTW92ZSBQcm9ncmFtIgp7CkxURVhUICAgICAgICAgItLGtq+zzNDyo7oiLCAgICBJRElHTk9SRSwgICAgICAgICAgICA1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgICAgOTUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIrTTtMuzzNDy1+nW0KO6IiwgSURJR05PUkUsICAgICAgICAgICAgNSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICBQTV9GUk9NX0dST1VQLCAgICAgIDk1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICLSxravtb2zzNDy1+mjqCZUo6mjuiIsICAgUE1fVE9fR1JPVVBfVFhULCAgICAgNSwgMjgsIDE0MCwgMTUKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9UT19HUk9VUCwgICAgICAgICA1LCAzOCwgMTQwLCA1MCwgV1NfVEFCU1RPUCB8IENCU19EUk9QRE9XTkxJU1QKREVGUFVTSEJVVFRPTiAiyLe2qCIsICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICLIoc/7IiwgICAgICAgICAgSURDQU5DRUwsICAgICAgICAgIDE4NSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAisO/W+qOoJkijqSIsICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBDb3B5JyAqLwoKRElBTE9HX0NPUFkgRElBTE9HIDAsIDAsIDI1MCwgNjUKTEFOR1VBR0UgTEFOR19DSElORVNFLCBTVUJMQU5HX0NISU5FU0VfU0lNUExJRklFRApTVFlMRSBEU19NT0RBTEZSQU1FCkNBUFRJT04gIri01sazzNDyIgp7CkxURVhUICAgICAgICAgIri01sazzNDyo7oiLCAgICBJRElHTk9SRSwgICAgICAgICAgICA1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgICAgOTUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIrTTtMuzzNDy1+nW0KO6IiwgSURJR05PUkUsICAgICAgICAgICAgNSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICBQTV9GUk9NX0dST1VQLCAgICAgIDk1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICLSxravtb2zzNDy1+mjqCZUo6mjuiIsICAgUE1fVE9fR1JPVVBfVFhULCAgICAgNSwgMjgsIDE0MCwgMTUKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9UT19HUk9VUCwgICAgICAgICA1LCAzOCwgMTQwLCA1MCwgV1NfVEFCU1RPUCB8IENCU19EUk9QRE9XTkxJU1QKREVGUFVTSEJVVFRPTiAiyLe2qCIsICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICLIoc/7IiwgICAgICAgICAgSURDQU5DRUwsICAgICAgICAgIDE4NSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAisO/W+qOoJkijqSIsICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBHcm91cCBhdHRyaWJ1dGVzJyAqLwoKRElBTE9HX0dST1VQIERJQUxPRyAwLCAwLCAyMzAsIDY1CkxBTkdVQUdFIExBTkdfQ0hJTkVTRSwgU1VCTEFOR19DSElORVNFX1NJTVBMSUZJRUQKU1RZTEUgRFNfTU9EQUxGUkFNRQpDQVBUSU9OICKzzNDy1+nK9NDUIgp7CkxURVhUICAgICAiw+jK9qOoJkSjqaO6IiwgUE1fREVTQ1JJUFRJT05fVFhULCAgIDA1LCAxOCwgIDUwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9ERVNDUklQVElPTiwgICAgICAgNjAsIDE4LCAgOTAsIDE1LCBXU19UQUJTVE9QCkxURVhUICAgICAi1+nOxLz+o6gmR6Opo7oiLCAgICAgICAgUE1fRklMRV9UWFQsICAgICAgICAgIDA1LCAzOCwgIDUwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9GSUxFLCAgICAgICAgICAgICAgNjAsIDM4LCAgOTAsIDE1LCBXU19UQUJTVE9QCkRFRlBVU0hCVVRUT04gIsi3tqgiLCAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAgIDE1NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiyKHP+yIsICAgICAgICBJRENBTkNFTCwgICAgICAgICAgICAxNTUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIrDv1vqjqCZIo6kiLCAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxNTUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgUHJvZ3JhbSBhdHRyaWJ1dGVzJyAqLwoKRElBTE9HX1BST0dSQU0gRElBTE9HIDAsIDAsIDI1MCwgMTA1CkxBTkdVQUdFIExBTkdfQ0hJTkVTRSwgU1VCTEFOR19DSElORVNFX1NJTVBMSUZJRUQKU1RZTEUgRFNfTU9EQUxGUkFNRQpDQVBUSU9OICKzzNDyyvTQ1CIKewpMVEVYVCAgICAgICAgICLD6Mr2o6gmRKOpo7oiLCAgUE1fREVTQ1JJUFRJT05fVFhULCAgIDA1LCAxMCwgIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fREVTQ1JJUFRJT04sICAgICAgIDgwLCAxMCwgIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICLD/MHu0NCjqCZDo6mjuiIsIFBNX0NPTU1BTkRfTElORV9UWFQsICAwNSwgMjUsICA2MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0NPTU1BTkRfTElORSwgICAgICA4MCwgMjUsICA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiuaTX98S/wryjqCZXo6mjuiIsICAgIFBNX0RJUkVDVE9SWV9UWFQsICAgICAwNSwgNDAsICA2MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RJUkVDVE9SWSwgICAgICAgICA4MCwgNDAsICA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiv+y93bz8o6gmS6Opo7oiLCAgICAgIFBNX0hPVF9LRVlfVFhULCAgICAgICAwNSwgNTUsICA2MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0hPVF9LRVksICAgICAgICAgICA4MCwgNTUsICA5MCwgMTUsIFdTX1RBQlNUT1AKSUNPTiAgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0lDT04sICAgICAgICAgICAgICAyMCwgNzAKQ0hFQ0tCT1ggICAgICAiIiwgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1NZTUJPTCwgICAgICAgICAgICA4MCwgNzUsICAxMCwgMTAsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAixvS2r7rz1+7Qobuvo6gmTaOpIiwgICAgICAgSURJR05PUkUsICAgICAgICAgICAgIDk1LCA3NSwgIDc1LCAxMApERUZQVVNIQlVUVE9OICLIt7aoIiwgICAgICAgICAgICAgICAgICAgSURPSywgICAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICLIoc/7IiwgICAgICAgICAgICAgICBJRENBTkNFTCwgICAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIuSvwMCjqCZCo6kuLi4iLCAgICAgICAgICAgICAgIFBNX0JST1dTRSwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAi0N64xM28seqjqCZJo6kuLi4iLCBQTV9PVEhFUl9TWU1CT0wsICAgICAxODUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIrDv1vqjqCZIo6kiLCAgICAgICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgICAgMTg1LCA4NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYFN5bWJvbCcgKi8KCkRJQUxPR19TWU1CT0wgRElBTE9HIDAsIDAsIDIwMCwgODUKTEFOR1VBR0UgTEFOR19DSElORVNFLCBTVUJMQU5HX0NISU5FU0VfU0lNUExJRklFRApTVFlMRSBEU19NT0RBTEZSQU1FCkNBUFRJT04gItDeuMTNvLHqIgp7CkxURVhUICAgICAizsS8/sP7o6gmRqOpo7oiLCAgICBQTV9JQ09OX0ZJTEVfVFhULCAgICA1LCAxNSwgIDQwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICBQTV9JQ09OX0ZJTEUsICAgICAgIDQ1LCAxNSwgIDg1LCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgIrWxx7DNvLHqo6gmSaOpo7oiLCBQTV9TWU1CT0xfTElTVF9UWFQsICA1LCAzMCwgMTI1LCAxMApDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0xfTElTVCwgICAgICA1LCA0MCwgMTI1LCA1MCwKICAgQ0JTX0RST1BET1dOTElTVCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19PV05FUkRSQVdGSVhFRCB8IFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiyLe2qCIsICAgICAgICAgSURPSywgICAgICAgICAgICAgIDEzNSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiyKHP+yIsICAgICBJRENBTkNFTCwgICAgICAgICAgMTM1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICLkr8DAo6gmQqOpLi4uIiwgICAgUE1fQlJPV1NFLCAgICAgICAgIDEzNSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAisO/W+qOoJkijqSIsICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgRXhlY3V0ZScgKi8KCkRJQUxPR19FWEVDVVRFIERJQUxPRyAwLCAwLCAyMDAsIDg1CkxBTkdVQUdFIExBTkdfQ0hJTkVTRSwgU1VCTEFOR19DSElORVNFX1NJTVBMSUZJRUQKU1RZTEUgRFNfTU9EQUxGUkFNRQpDQVBUSU9OICLWtNDQs8zQ8iIKewpMVEVYVCAgICAgIsP8we7Q0KOoJkOjqaO6IiwgSURJR05PUkUsICAgMDUsIDE1LCAxMjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0NPTU1BTkQsIDA1LCAyNSwgMTIwLCAxNSwgV1NfVEFCU1RPUApDSEVDS0JPWCAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0wsICAwNSwgNDUsICAxMCwgMTAsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAixvS2r7rz1+7Qobuvo6gmTaOpIiwgICBJRElHTk9SRSwgICAyMCwgNDUsIDEyMCwgMTAKREVGUFVTSEJVVFRPTiAiyLe2qCIsICAgICAgICAgICAgICAgSURPSywgICAgICAxMzUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIsihz/siLCAgICAgICAgICAgSURDQU5DRUwsICAxMzUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIuSvwMCjqCZCo6kuLi4iLCAgICAgICAgICBQTV9CUk9XU0UsIDEzNSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAisO/W+qOoJkijqSIsICAgICAgICAgICAgIFBNX0hFTFAsICAgMTM1LCA2NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBTdHJpbmdzICovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRSBMQU5HVUFHRSBMQU5HX0NISU5FU0UsIFNVQkxBTkdfQ0hJTkVTRV9TSU1QTElGSUVECnsKSURTX1BST0dSQU1fTUFOQUdFUiwJCSKzzNDyudzA7cb3IgpJRFNfRVJST1IsCQkJIrTtzvMiCklEU19XQVJOSU5HLAkJCSK+r7jmIgpJRFNfSU5GTywJCQki0MXPoiIKSURTX0RFTEVURSwJCQkiyb6z/SIKSURTX0RFTEVURV9HUk9VUF9zLAkJIsrHt/HJvrP9s8zQ8tfpIGAlcycgo78iCklEU19ERUxFVEVfUFJPR1JBTV9zLAkJIsrHt/HJvrP9s8zQ8tfpIGAlcycgPyIKSURTX05PVF9JTVBMRU1FTlRFRCwJCSK0y7mmxNzOtMq1z9YiCklEU19GSUxFX1JFQURfRVJST1JfcywJCSK2wcihzsS8/iAlcyDKsbeiyfq07c7zoaMiCklEU19GSUxFX1dSSVRFX0VSUk9SX3MsCQki0LTI687EvP4gJXMgyrG3osn6tO3O86GjIgpJRFNfR1JQRklMRV9SRUFEX0VSUk9SX3MsCSJcCrK7xNy08r+q1+nOxLz+IGAlcycgoaNcblwKyse38bzM0PizosrUo78iCklEU19PVVRfT0ZfTUVNT1JZLAkJIsTatObS57P2oaMiCklEU19XSU5IRUxQX0VSUk9SLAkJIsO709C/ydPDtcSw79b60MXPoqGjIgpJRFNfVU5LTk9XTl9GRUFUVVJFX3MsCQki1NogJXMg1tC3os/WzrTWqszY0NQiCklEU19GSUxFX05PVF9PVkVSV1JJVFRFTl9zLAkizsS8/iAlcyDS0b6ttObU2qGjsru4srjH0tHT0M7EvP6hoyIKSURTX1NBVkVfR1JPVVBfQVNfcywJCSK9q7PM0PLX6bGjtObOqiAlcyC/ydLUsdzD4ri0uMfS0dPQtcTOxLz+oaMiCklEU19OT19IT1RfS0VZLAkJCSLOtLao0uUiCklEU19BTExfRklMRVMsCQkJIsv509DOxLz+ICgqLiopIgpJRFNfUFJPR1JBTVMsCQkJIrPM0PIiCklEU19MSUJSQVJJRVNfRExMLAkJIravzKzBrL3Tv+IgKCouZGxsKSIKSURTX1NZTUJPTF9GSUxFUywJCSLNvLHqzsS8/iIKSURTX1NZTUJPTFNfSUNPLAkJIs28seogKCouaWNvKSIKfQo=