YQ0NCgAAAABFGnxjQV4AAOMAAAAAAAAAAAAAAAAAAAAABgAAAEAAAABzkgEAAGQAWgBkAWQCbAFaAWQBZAJsAloCZAFkA2wDbQRaBAEAZAFkBGwFbQZaBgEAZAFkBWwHbQhaCG0JWgltCloKbQtaC20MWgxtDVoNAQBkAWQGbA5tD1oPAQBkAWQHbBBtEVoRAQBkAWQIbBJtE1oTAQBkAWQJbBRtFVoVbRZaFm0XWhdtGFoYbRlaGW0aWhptG1obAQBkAWQKbBxtHVodAQBkAWQLbB5tH1ofAQBkAWQMbCBtIVohAQBkAWQNbCJtI1ojAQBkAWQObCRtJVolAQBkAWQPbCZtJ1onbShaKAEAZAFkEGwpbSpaKgEAZAFkEWwrbSxaLG0tWi0BAGQBZBJsLm0vWi8BAGQBZBNsMG0xWjEBAGQBZBRsMm0zWjMBAGQBZBVsNG01WjUBAGQBZBZsNm03WjcBAGQBZBdsOG05WjkBAGUBoDplO6EBWjxlCGU9ZQplJxkAZgIZAFo+ZB5lH2UNZT9lP2U/ZgMZAGVAZAJkGZwEZBpkG4QFWkFHAGQcZB2EAGQdZSyDA1pCZAJTACkfYXkBAABEZXBlbmRlbmN5IFJlc29sdXRpb24KClRoZSBkZXBlbmRlbmN5IHJlc29sdXRpb24gaW4gcGlwIGlzIHBlcmZvcm1lZCBhcyBmb2xsb3dzOgoKZm9yIHRvcC1sZXZlbCByZXF1aXJlbWVudHM6CiAgICBhLiBvbmx5IG9uZSBzcGVjIGFsbG93ZWQgcGVyIHByb2plY3QsIHJlZ2FyZGxlc3Mgb2YgY29uZmxpY3RzIG9yIG5vdC4KICAgICAgIG90aGVyd2lzZSBhICJkb3VibGUgcmVxdWlyZW1lbnQiIGV4Y2VwdGlvbiBpcyByYWlzZWQKICAgIGIuIHRoZXkgb3ZlcnJpZGUgc3ViLWRlcGVuZGVuY3kgcmVxdWlyZW1lbnRzLgpmb3Igc3ViLWRlcGVuZGVuY2llcwogICAgYS4gImZpcnN0IGZvdW5kLCB3aW5zIiAod2hlcmUgdGhlIG9yZGVyIGlzIGJyZWFkdGggZmlyc3QpCukAAAAATikB2gtkZWZhdWx0ZGljdCkB2gVjaGFpbikG2gtEZWZhdWx0RGljdNoISXRlcmFibGXaBExpc3TaCE9wdGlvbmFs2gNTZXTaBVR1cGxlKQHaCnNwZWNpZmllcnMpAdoLUmVxdWlyZW1lbnQpAdoKV2hlZWxDYWNoZSkH2htCZXN0VmVyc2lvbkFscmVhZHlJbnN0YWxsZWTaFERpc3RyaWJ1dGlvbk5vdEZvdW5k2glIYXNoRXJyb3LaCkhhc2hFcnJvcnPaEUluc3RhbGxhdGlvbkVycm9y2hFOb25lTWV0YWRhdGFFcnJvctoYVW5zdXBwb3J0ZWRQeXRob25WZXJzaW9uKQHaDVBhY2thZ2VGaW5kZXIpAdoQQmFzZURpc3RyaWJ1dGlvbikB2gRMaW5rKQHaBVdoZWVsKQHaE1JlcXVpcmVtZW50UHJlcGFyZXIpAtoSSW5zdGFsbFJlcXVpcmVtZW502h1jaGVja19pbnZhbGlkX2NvbnN0cmFpbnRfdHlwZSkB2g5SZXF1aXJlbWVudFNldCkC2gxCYXNlUmVzb2x2ZXLaGkluc3RhbGxSZXF1aXJlbWVudFByb3ZpZGVyKQHaEmNvbXBhdGliaWxpdHlfdGFncykB2g1nZXRfc3VwcG9ydGVkKQHaFGRpcmVjdF91cmxfZnJvbV9saW5rKQHaCmluZGVudF9sb2cpAdoWbm9ybWFsaXplX3ZlcnNpb25faW5mbykB2hVjaGVja19yZXF1aXJlc19weXRob25GKQTaBGRpc3TaDHZlcnNpb25faW5mb9oWaWdub3JlX3JlcXVpcmVzX3B5dGhvbtoGcmV0dXJuYwMAAAAAAAAAAAAAAAgAAAAKAAAAQwAAAHPWAAAAeg50AHwAagGDAX0DVwBuMgQAdAJ5QAEAfQQBAHoadAN8AHQAfASDAYMCggFXAFkAZAF9BH4EbgpkAX0EfgQwADAAehB0BHwDfAFkAo0CfQVXAG44BAB0BWoGeYoBAH0GAQB6HnQHoAhkA3wAagl8BqEDAQBXAFkAZAF9Bn4GZAFTAGQBfQZ+BjAAMAB8BXKUZAFTAGQEoAp0C3QAfAGDAqEBfQd8AnK+dAegDGQFfABqCXwHfAOhBAEAZAFTAHQNZAagDnwAagl8B3wDoQODAYIBZAFTACkHYccBAAAKICAgIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIFB5dGhvbiB2ZXJzaW9uIGlzIGNvbXBhdGlibGUgd2l0aCBhIGRpc3RyaWJ1dGlvbidzCiAgICAiUmVxdWlyZXMtUHl0aG9uIiB2YWx1ZS4KCiAgICA6cGFyYW0gdmVyc2lvbl9pbmZvOiBBIDMtdHVwbGUgb2YgaW50cyByZXByZXNlbnRpbmcgdGhlIFB5dGhvbgogICAgICAgIG1ham9yLW1pbm9yLW1pY3JvIHZlcnNpb24gdG8gY2hlY2suCiAgICA6cGFyYW0gaWdub3JlX3JlcXVpcmVzX3B5dGhvbjogV2hldGhlciB0byBpZ25vcmUgdGhlICJSZXF1aXJlcy1QeXRob24iCiAgICAgICAgdmFsdWUgaWYgdGhlIGdpdmVuIFB5dGhvbiB2ZXJzaW9uIGlzbid0IGNvbXBhdGlibGUuCgogICAgOnJhaXNlcyBVbnN1cHBvcnRlZFB5dGhvblZlcnNpb246IFdoZW4gdGhlIGdpdmVuIFB5dGhvbiB2ZXJzaW9uIGlzbid0CiAgICAgICAgY29tcGF0aWJsZS4KICAgIE4pAXIlAAAAei1QYWNrYWdlICVyIGhhcyBhbiBpbnZhbGlkIFJlcXVpcmVzLVB5dGhvbjogJXPaAS56Qklnbm9yaW5nIGZhaWxlZCBSZXF1aXJlcy1QeXRob24gY2hlY2sgZm9yIHBhY2thZ2UgJXI6ICVzIG5vdCBpbiAlcno4UGFja2FnZSB7IXJ9IHJlcXVpcmVzIGEgZGlmZmVyZW50IFB5dGhvbjoge30gbm90IGluIHshcn0pD9oDc3Ry2g9yZXF1aXJlc19weXRob27aEUZpbGVOb3RGb3VuZEVycm9ychIAAAByIwAAAHIKAAAA2hBJbnZhbGlkU3BlY2lmaWVy2gZsb2dnZXLaB3dhcm5pbmfaCHJhd19uYW1l2gRqb2lu2gNtYXDaBWRlYnVnchMAAADaBmZvcm1hdCkIciQAAAByJQAAAHImAAAAcioAAADaAWXaDWlzX2NvbXBhdGlibGXaA2V4Y9oHdmVyc2lvbqkAcjgAAAD6ZS9ob21lL2huaS9Ub3BtZXRhbFNlLURQUy92ZW52L2xpYi9weXRob24zLjkvc2l0ZS1wYWNrYWdlcy9waXAvX2ludGVybmFsL3Jlc29sdXRpb24vbGVnYWN5L3Jlc29sdmVyLnB52htfY2hlY2tfZGlzdF9yZXF1aXJlc19weXRob246AAAAczwAAAAA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A6EBgwGCAWQHfAdfE3wCag+QAXKSZAh8B18PdBl0GnQbfAdqFIMBdBt8AmoUgwFCAIMBgwF8B18UdAGgHGQJfAd8B2oUoQMBAHwHZwF8B2YCUwApCmEmAwAAQWRkIGluc3RhbGxfcmVxIGFzIGEgcmVxdWlyZW1lbnQgdG8gaW5zdGFsbC4KCiAgICAgICAgOnBhcmFtIHBhcmVudF9yZXFfbmFtZTogVGhlIG5hbWUgb2YgdGhlIHJlcXVpcmVtZW50IHRoYXQgbmVlZGVkIHRoaXMKICAgICAgICAgICAgYWRkZWQuIFRoZSBuYW1lIGlzIHVzZWQgYmVjYXVzZSB3aGVuIG11bHRpcGxlIHVubmFtZWQgcmVxdWlyZW1lbnRzCiAgICAgICAgICAgIHJlc29sdmUgdG8gdGhlIHNhbWUgbmFtZSwgd2UgY291bGQgb3RoZXJ3aXNlIGVuZCB1cCB3aXRoIGRlcGVuZGVuY3kKICAgICAgICAgICAgbGlua3MgdGhhdCBwb2ludCBvdXRzaWRlIHRoZSBSZXF1aXJlbWVudHMgc2V0LiBwYXJlbnRfcmVxIG11c3QKICAgICAgICAgICAgYWxyZWFkeSBiZSBhZGRlZC4gTm90ZSB0aGF0IE5vbmUgaW1wbGllcyB0aGF0IHRoaXMgaXMgYSB1c2VyCiAgICAgICAgICAgIHN1cHBsaWVkIHJlcXVpcmVtZW50LCB2cyBhbiBpbmZlcnJlZCBvbmUuCiAgICAgICAgOnBhcmFtIGV4dHJhc19yZXF1ZXN0ZWQ6IGFuIGl0ZXJhYmxlIG9mIGV4dHJhcyB1c2VkIHRvIGV2YWx1YXRlIHRoZQogICAgICAgICAgICBlbnZpcm9ubWVudCBtYXJrZXJzLgogICAgICAgIDpyZXR1cm46IEFkZGl0aW9uYWwgcmVxdWlyZW1lbnRzIHRvIHNjYW4uIFRoYXQgaXMgZWl0aGVyIFtdIGlmCiAgICAgICAgICAgIHRoZSByZXF1aXJlbWVudCBpcyBub3QgYXBwbGljYWJsZSwgb3IgW2luc3RhbGxfcmVxXSBpZiB0aGUKICAgICAgICAgICAgcmVxdWlyZW1lbnQgaXMgYXBwbGljYWJsZSBhbmQgaGFzIGp1c3QgYmVlbiBhZGRlZC4KICAgICAgICB6Nklnbm9yaW5nICVzOiBtYXJrZXJzICclcycgZG9uJ3QgbWF0Y2ggeW91ciBlbnZpcm9ubWVudE56LXt9IGlzIG5vdCBhIHN1cHBvcnRlZCB3aGVlbCBvbiB0aGlzIHBsYXRmb3JtLnorYSB1c2VyIHN1cHBsaWVkIHJlcSBzaG91bGRuJ3QgaGF2ZSBhIHBhcmVudHo3RG91YmxlIHJlcXVpcmVtZW50IGdpdmVuOiB7fSAoYWxyZWFkeSBpbiB7fSwgbmFtZT17IXJ9KXpoQ291bGQgbm90IHNhdGlzZnkgY29uc3RyYWludHMgZm9yICd7fSc6IGluc3RhbGxhdGlvbiBmcm9tIHBhdGggb3IgdXJsIGNhbm5vdCBiZSBjb25zdHJhaW5lZCB0byBhIHZlcnNpb25GVHoYU2V0dGluZyAlcyBleHRyYXMgdG86ICVzKR3aDW1hdGNoX21hcmtlcnNyLQAAANoEaW5mb9oEbmFtZdoHbWFya2Vyc9oEbGlua9oIaXNfd2hlZWxyFwAAANoIZmlsZW5hbWVyHgAAAHIfAAAAclYAAADaCXN1cHBvcnRlZHIRAAAAcjMAAADaDXVzZXJfc3VwcGxpZWTaF2FkZF91bm5hbWVkX3JlcXVpcmVtZW502g9nZXRfcmVxdWlyZW1lbnTaCEtleUVycm9yclcAAADaBmV4dHJhc3JcAAAA2glzcGVjaWZpZXLaFWFkZF9uYW1lZF9yZXF1aXJlbWVudNoEcGF0aNoFdHVwbGXaBnNvcnRlZNoDc2V0cjIAAAApCnJSAAAAcl4AAAByYAAAAHJhAAAAcmIAAADaBXdoZWVs2gR0YWdz2gxleGlzdGluZ19yZXHaG2hhc19jb25mbGljdGluZ19yZXF1aXJlbWVudNobZG9lc19ub3Rfc2F0aXNmeV9jb25zdHJhaW50cjgAAAByOAAAAHI5AAAAclgAAADDAAAAc5YAAAAAFgoBBAECAQQBBP0EBQgGDgEMAQgBEAECAQQBBP8C/wQIBP8CAQb/BAIC/gQGBgEKAQoCAgMK/gYDDAEKAwgBAv8CAgb+AgMK/QIEBPwCBQT7AgYO+QIJBgECAQQBCP8C/wQIBgEKAgoEEAEIAggBFv8EAwYBAgEEAgT+Av8EBwYDCAEGAQIBFv8GAwQBAgECAQT9BAd6IFJlc29sdmVyLl9hZGRfcmVxdWlyZW1lbnRfdG9fc2V0qQJyXAAAAHInAAAAYwIAAAAAAAAAAAAAAAIAAAACAAAAQwAAAHM6AAAAfABqAGQBawJyDmQCUwB8AGoAZANrAnIcZARTAHwAagBkBWsCcypKAIIBfAFqAXA0fAFqAlMAZABTACkGTnI+AAAARnI8AAAAVHI9AAAAKQNyRwAAAHJrAAAAclcAAACpAnJSAAAAclwAAAByOAAAAHI4AAAAcjkAAADaE19pc191cGdyYWRlX2FsbG93ZWQ5AQAAcwwAAAAAAQoBBAEKAQQCDgF6HFJlc29sdmVyLl9pc191cGdyYWRlX2FsbG93ZWRjAgAAAAAAAAAAAAAAAgAAAAIAAABDAAAAcx4AAAB8AGoAcg58AWoBagJyFGQBfAFfA2QCfAFfAWQCUwApA3o0CiAgICAgICAgU2V0IGEgcmVxdWlyZW1lbnQgdG8gYmUgaW5zdGFsbGVkLgogICAgICAgIFROKQRyQwAAANoMc2F0aXNmaWVkX2J5Wgtpbl91c2Vyc2l0ZdoQc2hvdWxkX3JlaW5zdGFsbHJ8AAAAcjgAAAByOAAAAHI5AAAA2hVfc2V0X3JlcV90b19yZWluc3RhbGxCAQAAcwYAAAAABg4BBgF6HlJlc29sdmVyLl9zZXRfcmVxX3RvX3JlaW5zdGFsbCkC2g5yZXFfdG9faW5zdGFsbHInAAAAYwIAAAAAAAAAAAAAAAIAAAAIAAAAQwAAAHOeAAAAfABqAHIKZAFTAHwBoAF8AGoCoQEBAHwBagNzIGQBUwB8AGoEcjR8AKAFfAGhAQEAZAFTAHwAoAZ8AaEBc1B8AGoHZAJrAnJMZANTAGQEUwB8AWoIc5B6FHwAaglqCnwBZAVkBo0CAQBXAG4kBAB0C3l+AQABAAEAWQBkB1MABAB0DHmOAQABAAEAWQBuAjAAfACgBXwBoQEBAGQBUwApCGEVAwAAQ2hlY2sgaWYgcmVxX3RvX2luc3RhbGwgc2hvdWxkIGJlIHNraXBwZWQuCgogICAgICAgIFRoaXMgd2lsbCBjaGVjayBpZiB0aGUgcmVxIGlzIGluc3RhbGxlZCwgYW5kIHdoZXRoZXIgd2Ugc2hvdWxkIHVwZ3JhZGUKICAgICAgICBvciByZWluc3RhbGwgaXQsIHRha2luZyBpbnRvIGFjY291bnQgYWxsIHRoZSByZWxldmFudCB1c2VyIG9wdGlvbnMuCgogICAgICAgIEFmdGVyIGNhbGxpbmcgdGhpcyByZXFfdG9faW5zdGFsbCB3aWxsIG9ubHkgaGF2ZSBzYXRpc2ZpZWRfYnkgc2V0IHRvCiAgICAgICAgTm9uZSBpZiB0aGUgcmVxX3RvX2luc3RhbGwgaXMgdG8gYmUgdXBncmFkZWQvcmVpbnN0YWxsZWQgZXRjLiBBbnkKICAgICAgICBvdGhlciB2YWx1ZSB3aWxsIGJlIGEgZGlzdCByZWNvcmRpbmcgdGhlIGN1cnJlbnQgdGhpbmcgaW5zdGFsbGVkIHRoYXQKICAgICAgICBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50LgoKICAgICAgICBOb3RlIHRoYXQgZm9yIHZjcyB1cmxzIGFuZCB0aGUgbGlrZSB3ZSBjYW4ndCBhc3Nlc3Mgc2tpcHBpbmcgaW4gdGhpcwogICAgICAgIHJvdXRpbmUgLSB3ZSBzaW1wbHkgaWRlbnRpZnkgdGhhdCB3ZSBuZWVkIHRvIHB1bGwgdGhlIHRoaW5nIGRvd24sCiAgICAgICAgdGhlbiBsYXRlciBvbiBpdCBpcyBwdWxsZWQgZG93biBhbmQgaW50cm9zcGVjdGVkIHRvIGFzc2VzcyB1cGdyYWRlLwogICAgICAgIHJlaW5zdGFsbHMgZXRjLgoKICAgICAgICA6cmV0dXJuOiBBIHRleHQgcmVhc29uIGZvciB3aHkgaXQgd2FzIHNraXBwZWQsIG9yIE5vbmUuCiAgICAgICAgTnI9AAAAeiNhbHJlYWR5IHNhdGlzZmllZCwgc2tpcHBpbmcgdXBncmFkZXoRYWxyZWFkeSBzYXRpc2ZpZWRUKQHaB3VwZ3JhZGV6EmFscmVhZHkgdXAtdG8tZGF0ZSkNckUAAADaD2NoZWNrX2lmX2V4aXN0c3JDAAAAcn4AAAByRgAAAHKAAAAAcn0AAAByRwAAAHJnAAAAckAAAADaEGZpbmRfcmVxdWlyZW1lbnRyDQAAAHIOAAAAKQJyUgAAAHKBAAAAcjgAAAByOAAAAHI5AAAA2hVfY2hlY2tfc2tpcF9pbnN0YWxsZWRMAQAAcyoAAAAAFAYBBAIMAQYBBAIGAQoBBAIKAQoBBAEEBQYBAgEUAQwCBgEMBAYCCgF6HlJlc29sdmVyLl9jaGVja19za2lwX2luc3RhbGxlZGMCAAAAAAAAAAAAAAAHAAAABAAAAEMAAABzUgAAAHwAoAB8AaEBfQJ8AGoBoAJ8AXwCoQJ9A3wDcyBkAFMAfANqA30EfARqBHJOfARqBXA0ZAF9BWQCagZ8A3wFZAONAn0GdAegCHwGoQEBAHwEUwApBE56DDxub25lIGdpdmVuPnpxVGhlIGNhbmRpZGF0ZSBzZWxlY3RlZCBmb3IgZG93bmxvYWQgb3IgaW5zdGFsbCBpcyBhIHlhbmtlZCB2ZXJzaW9uOiB7Y2FuZGlkYXRlfQpSZWFzb24gZm9yIGJlaW5nIHlhbmtlZDoge3JlYXNvbn0pAtoJY2FuZGlkYXRl2gZyZWFzb24pCXJ9AAAAckAAAAByhAAAAHJnAAAA2glpc195YW5rZWTaDXlhbmtlZF9yZWFzb25yMwAAAHItAAAAci4AAAApB3JSAAAAclwAAAByggAAANoOYmVzdF9jYW5kaWRhdGVyZwAAAHKHAAAA2gNtc2dyOAAAAHI4AAAAcjkAAADaFl9maW5kX3JlcXVpcmVtZW50X2xpbmuCAQAAcxoAAAAAAQoBDgEEAQQDBgEGAQoFAvwCBwT5BggKAnofUmVzb2x2ZXIuX2ZpbmRfcmVxdWlyZW1lbnRfbGlua2MCAAAAAAAAAAAAAAADAAAABQAAAEMAAABzpAAAAHwBagBkAXUAchZ8AKABfAGhAXwBXwB8AGoCZAF1AHMofABqA2oEcixkAVMAfABqAmoFfAFqAHwBagZ0B4MAZAKNA30CfAJkAXUBcqB0CKAJZAN8AmoAoQIBAHwBagB8AWoKdQBycnwCagtycmQEfAFfDHwCag1kAXUBcoZ8AmoNfAFfDm4SdA98AWoAfAJqC2QFjQJ8AV8OfAJqAHwBXwBkAVMAKQZhZgIAAEVuc3VyZSB0aGF0IGlmIGEgbGluayBjYW4gYmUgZm91bmQgZm9yIHRoaXMsIHRoYXQgaXQgaXMgZm91bmQuCgogICAgICAgIE5vdGUgdGhhdCByZXEubGluayBtYXkgc3RpbGwgYmUgTm9uZSAtIGlmIHRoZSByZXF1aXJlbWVudCBpcyBhbHJlYWR5CiAgICAgICAgaW5zdGFsbGVkIGFuZCBub3QgbmVlZGVkIHRvIGJlIHVwZ3JhZGVkIGJhc2VkIG9uIHRoZSByZXR1cm4gdmFsdWUgb2YKICAgICAgICBfaXNfdXBncmFkZV9hbGxvd2VkKCkuCgogICAgICAgIElmIHByZXBhcmVyLnJlcXVpcmVfaGFzaGVzIGlzIFRydWUsIGRvbid0IHVzZSB0aGUgd2hlZWwgY2FjaGUsIGJlY2F1c2UKICAgICAgICBjYWNoZWQgd2hlZWxzLCBhbHdheXMgYnVpbHQgbG9jYWxseSwgaGF2ZSBkaWZmZXJlbnQgaGFzaGVzIHRoYW4gdGhlCiAgICAgICAgZmlsZXMgZG93bmxvYWRlZCBmcm9tIHRoZSBpbmRleCBzZXJ2ZXIgYW5kIHRodXMgdGhyb3cgZmFsc2UgaGFzaAogICAgICAgIG1pc21hdGNoZXMuIEZ1cnRoZXJtb3JlLCBjYWNoZWQgd2hlZWxzIGF0IHByZXNlbnQgaGF2ZSB1bmRldGVybWluaXN0aWMKICAgICAgICBjb250ZW50cyBkdWUgdG8gZmlsZSBtb2RpZmljYXRpb24gdGltZXMuCiAgICAgICAgTikDcmcAAADaDHBhY2thZ2VfbmFtZdoOc3VwcG9ydGVkX3RhZ3N6G1VzaW5nIGNhY2hlZCB3aGVlbCBsaW5rOiAlc1QpAdoWbGlua19pc19pbl93aGVlbF9jYWNoZSkQcmcAAAByjAAAAHJBAAAAcj8AAADaDnJlcXVpcmVfaGFzaGVz2g9nZXRfY2FjaGVfZW50cnlyZQAAAHIfAAAAci0AAAByMgAAANoNb3JpZ2luYWxfbGlua9oKcGVyc2lzdGVudNofb3JpZ2luYWxfbGlua19pc19pbl93aGVlbF9jYWNoZdoGb3JpZ2luWg1kb3dubG9hZF9pbmZvciAAAAApA3JSAAAAclwAAADaC2NhY2hlX2VudHJ5cjgAAAByOAAAAHI5AAAA2g5fcG9wdWxhdGVfbGlua5gBAABzJgAAAAANCgEMAhIBBAEGAQQBBAEE/QYFCAEOARIBBgEKAQoEAgEI/wgDehdSZXNvbHZlci5fcG9wdWxhdGVfbGlua2MCAAAAAAAAAAAAAAAFAAAABAAAAEMAAABzrgAAAHwBagByEnwAagGgAnwBoQFTAHwBagNkAXUAcyBKAIIBfACgBHwBoQF9AnwB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cmVxLnJlcV9zZXRyGwAAANodcGlwLl9pbnRlcm5hbC5yZXNvbHV0aW9uLmJhc2VyHAAAAHIdAAAAWhNwaXAuX2ludGVybmFsLnV0aWxzch4AAADaJnBpcC5faW50ZXJuYWwudXRpbHMuY29tcGF0aWJpbGl0eV90YWdzch8AAADaJnBpcC5faW50ZXJuYWwudXRpbHMuZGlyZWN0X3VybF9oZWxwZXJzciAAAADaG3BpcC5faW50ZXJuYWwudXRpbHMubG9nZ2luZ3IhAAAA2hhwaXAuX2ludGVybmFsLnV0aWxzLm1pc2NyIgAAANodcGlwLl9pbnRlcm5hbC51dGlscy5wYWNrYWdpbmdyIwAAANoJZ2V0TG9nZ2VycrEAAAByLQAAAHIpAAAAWhZEaXNjb3ZlcmVkRGVwZW5kZW5jaWVzcrYAAABytQAAAHI6AAAAcjsAAAByOAAAAHI4AAAAcjgAAAByOQAAANoIPG1vZHVsZT4BAAAAc0IAAAAEDwgBCAEMAQwBIAIMAQwCDAEkCQwBDAEMAQwBDAEQBAwBEAEMAQwBDAEMAQwBDAIKAhAGAP0CAQIBDAECAQL8DDc=