JWRlZmluZSBWRVJTSU9OICA2LjYuMQolZGVmaW5lIFBhdGNobGV2ZWwgIDYKCk5hbWU6ICAgICAgICAgICBJbWFnZU1hZ2ljawpWZXJzaW9uOiAgICAgICAgJXtWRVJTSU9OfQpSZWxlYXNlOiAgICAgICAgJXtQYXRjaGxldmVsfQpTdW1tYXJ5OiAgICAgICAgSW1hZ2VNYWdpY2sgaXMgYSBzb2Z0d2FyZSBzdWl0ZSB0byBjcmVhdGUsIGVkaXQsIGFuZCBjb21wb3NlIGJpdG1hcCBpbWFnZXMuIEl0IGNhbiByZWFkLCBjb252ZXJ0IGFuZCB3cml0ZSBpbWFnZXMgaW4gYSB2YXJpZXR5IG9mIGZvcm1hdHMgKGFib3V0IDIwMCkgaW5jbHVkaW5nIEdJRiwgSlBFRywgSlBFRy0yMDAwLCBQTkcsIFBERiwgUGhvdG9DRCwgVElGRiwgYW5kIERQWC4gVXNlIEltYWdlTWFnaWNrIHRvIHRyYW5zbGF0ZSwgZmxpcCwgbWlycm9yLCByb3RhdGUsIHNjYWxlLCBzaGVhciBhbmQgdHJhbnNmb3JtIGltYWdlcywgYWRqdXN0IGltYWdlIGNvbG9ycywgYXBwbHkgdmFyaW91cyBzcGVjaWFsIGVmZmVjdHMsIG9yIGRyYXcgdGV4dCwgbGluZXMsIHBvbHlnb25zLCBlbGxpcHNlcyBhbmQgQmV6aWVyIGN1cnZlcy4KR3JvdXA6ICAgICAgICAgIEFwcGxpY2F0aW9ucy9NdWx0aW1lZGlhCkxpY2Vuc2U6ICAgICAgICBodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZy9zY3JpcHQvbGljZW5zZS5waHAKVXJsOiAgICAgICAgICAgIGh0dHA6Ly93d3cuaW1hZ2VtYWdpY2sub3JnLwpTb3VyY2UwOiAgICAgICAgZnRwOi8vZnRwLmltYWdlbWFnaWNrLm9yZy9wdWIvJXtuYW1lfS8le25hbWV9LSV7VkVSU0lPTn0tJXtQYXRjaGxldmVsfS50YXIuYnoyCgpCdWlsZFJvb3Q6ICAgICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikKQnVpbGRSZXF1aXJlczogIGJ6aXAyLWRldmVsLCBmcmVldHlwZS1kZXZlbCwgbGlianBlZy1kZXZlbCwgbGlicG5nLWRldmVsCkJ1aWxkUmVxdWlyZXM6ICBsaWJ0aWZmLWRldmVsLCBnaWZsaWItZGV2ZWwsIHpsaWItZGV2ZWwsIHBlcmwtZGV2ZWwKQnVpbGRSZXF1aXJlczogIGdob3N0c2NyaXB0LWRldmVsLCBkanZ1bGlicmUtZGV2ZWwKQnVpbGRSZXF1aXJlczogIGxpYndtZi1kZXZlbCwgamFzcGVyLWRldmVsLCBsaWJ0b29sLWx0ZGwtZGV2ZWwKQnVpbGRSZXF1aXJlczogIGxpYlgxMS1kZXZlbCwgbGliWGV4dC1kZXZlbCwgbGliWHQtZGV2ZWwKQnVpbGRSZXF1aXJlczogIGxjbXMtZGV2ZWwsIGxpYnhtbDItZGV2ZWwsIGxpYnJzdmcyLWRldmVsCgolZGVzY3JpcHRpb24KSW1hZ2VNYWdpY2sgaXMgYSBzb2Z0d2FyZSBzdWl0ZSB0byBjcmVhdGUsIGVkaXQsIGFuZCBjb21wb3NlIGJpdG1hcCBpbWFnZXMuIEl0IGNhbiByZWFkLCBjb252ZXJ0IGFuZCB3cml0ZSBpbWFnZXMgaW4gYSB2YXJpZXR5IG9mIGZvcm1hdHMgKGFib3V0IDEwMCkgaW5jbHVkaW5nIERQWCwgR0lGLCBKUEVHLCBKUEVHLTIwMDAsIFBERiwgUGhvdG9DRCwgUE5HLCBQb3N0c2NyaXB0LCBTVkcsIGFuZCBUSUZGLiBVc2UgSW1hZ2VNYWdpY2sgdG8gdHJhbnNsYXRlLCBmbGlwLCBtaXJyb3IsIHJvdGF0ZSwgc2NhbGUsIHNoZWFyIGFuZCB0cmFuc2Zvcm0gaW1hZ2VzLCBhZGp1c3QgaW1hZ2UgY29sb3JzLCBhcHBseSB2YXJpb3VzIHNwZWNpYWwgZWZmZWN0cywgb3IgZHJhdyB0ZXh0LCBsaW5lcywgcG9seWdvbnMsIGVsbGlwc2VzIGFuZCBC6XppZXIgY3VydmVzLgoKVGhlIGZ1bmN0aW9uYWxpdHkgb2YgSW1hZ2VNYWdpY2sgaXMgdHlwaWNhbGx5IHV0aWxpemVkIGZyb20gdGhlIGNvbW1hbmQgbGluZSBvciB5b3UgY2FuIHVzZSB0aGUgZmVhdHVyZXMgZnJvbSBwcm9ncmFtcyB3cml0dGVuIGluIHlvdXIgZmF2b3JpdGUgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuIENob29zZSBmcm9tIHRoZXNlIGludGVyZmFjZXM6IEcyRiAoQWRhKSwgTWFnaWNrQ29yZSAoQyksIE1hZ2lja1dhbmQgKEMpLCBDaE1hZ2ljayAoQ2gpLCBNYWdpY2srKyAoQysrKSwgSk1hZ2ljayAoSmF2YSksIEwtTWFnaWNrIChMaXNwKSwgbk1hZ2ljayAoTmVrby9oYVhlKSwgUGFzY2FsTWFnaWNrIChQYXNjYWwpLCBQZXJsTWFnaWNrIChQZXJsKSwgTWFnaWNrV2FuZCBmb3IgUEhQIChQSFApLCBQeXRob25NYWdpY2sgKFB5dGhvbiksIFJNYWdpY2sgKFJ1YnkpLCBvciBUY2xNYWdpY2sgKFRjbC9USykuIFdpdGggYSBsYW5ndWFnZSBpbnRlcmZhY2UsIHVzZSBJbWFnZU1hZ2ljayB0byBtb2RpZnkgb3IgY3JlYXRlIGltYWdlcyBhdXRvbWFnaWNhbGx5IGFuZCBkeW5hbWljYWxseS4KCkltYWdlTWFnaWNrIGlzIGZyZWUgc29mdHdhcmUgZGVsaXZlcmVkIGFzIGEgcmVhZHktdG8tcnVuIGJpbmFyeSBkaXN0cmlidXRpb24gb3IgYXMgc291cmNlIGNvZGUgdGhhdCB5b3UgY2FuIGZyZWVseSB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUuIEl0cyBsaWNlbnNlIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgR1BMLiBJdCBydW5zIG9uIGFsbCBtYWpvciBvcGVyYXRpbmcgc3lzdGVtcy4KCiVwYWNrYWdlIGRldmVsClN1bW1hcnk6IExpYnJhcnkgbGlua3MgYW5kIGhlYWRlciBmaWxlcyBmb3IgSW1hZ2VNYWdpY2sgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQKR3JvdXA6IERldmVsb3BtZW50L0xpYnJhcmllcwpSZXF1aXJlczogJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQpSZXF1aXJlczogbGliWDExLWRldmVsLCBsaWJYZXh0LWRldmVsLCBsaWJYdC1kZXZlbApSZXF1aXJlczogZ2hvc3RzY3JpcHQtZGV2ZWwKUmVxdWlyZXM6IGJ6aXAyLWRldmVsClJlcXVpcmVzOiBmcmVldHlwZS1kZXZlbApSZXF1aXJlczogbGlidGlmZi1kZXZlbApSZXF1aXJlczogbGlianBlZy1kZXZlbApSZXF1aXJlczogbGNtcy1kZXZlbApSZXF1aXJlczogamFzcGVyLWRldmVsClJlcXVpcmVzOiBwa2djb25maWcKCiVkZXNjcmlwdGlvbiBkZXZlbApJbWFnZU1hZ2ljay1kZXZlbCBjb250YWlucyB0aGUgbGlicmFyeSBsaW5rcyBhbmQgaGVhZGVyIGZpbGVzIHlvdSdsbApuZWVkIHRvIGRldmVsb3AgSW1hZ2VNYWdpY2sgYXBwbGljYXRpb25zLiBJbWFnZU1hZ2ljayBpcyBhbiBpbWFnZQptYW5pcHVsYXRpb24gcHJvZ3JhbS4KCklmIHlvdSB3YW50IHRvIGNyZWF0ZSBhcHBsaWNhdGlvbnMgdGhhdCB3aWxsIHVzZSBJbWFnZU1hZ2ljayBjb2RlIG9yCkFQSXMsIHlvdSBuZWVkIHRvIGluc3RhbGwgSW1hZ2VNYWdpY2stZGV2ZWwgYXMgd2VsbCBhcyBJbWFnZU1hZ2ljay4KWW91IGRvIG5vdCBuZWVkIHRvIGluc3RhbGwgaXQgaWYgeW91IGp1c3Qgd2FudCB0byB1c2UgSW1hZ2VNYWdpY2ssCmhvd2V2ZXIuCgolcGFja2FnZSBkb2MKU3VtbWFyeTogSW1hZ2VNYWdpY2sgSFRNTCBkb2N1bWVudGF0aW9uCkdyb3VwOiBEb2N1bWVudGF0aW9uCgolZGVzY3JpcHRpb24gZG9jCkltYWdlTWFnaWNrIGRvY3VtZW50YXRpb24sIHRoaXMgcGFja2FnZSBjb250YWlucyB1c2FnZSAoZm9yIHRoZQpjb21tYW5kbGluZSB0b29scykgYW5kIEFQSSAoZm9yIHRoZSBsaWJyYXJpZXMpIGRvY3VtZW50YXRpb24gaW4gSFRNTCBmb3JtYXQuCk5vdGUgdGhpcyBkb2N1bWVudGF0aW9uIGNhbiBhbHNvIGJlIGZvdW5kIG9uIHRoZSBJbWFnZU1hZ2ljayB3ZWJzaXRlOgpodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZy8KCgolcGFja2FnZSBwZXJsClN1bW1hcnk6IEltYWdlTWFnaWNrIHBlcmwgYmluZGluZ3MKR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKUmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KUmVxdWlyZXM6IHBlcmwoOk1PRFVMRV9DT01QQVRfJShldmFsICJgJXtfX3Blcmx9IC1WOnZlcnNpb25gIjsgZWNobyAkdmVyc2lvbikpCgolZGVzY3JpcHRpb24gcGVybApQZXJsIGJpbmRpbmdzIHRvIEltYWdlTWFnaWNrLgoKSW5zdGFsbCBJbWFnZU1hZ2ljay1wZXJsIGlmIHlvdSB3YW50IHRvIHVzZSBhbnkgcGVybCBzY3JpcHRzIHRoYXQgdXNlCkltYWdlTWFnaWNrLgoKJXBhY2thZ2UgYysrClN1bW1hcnk6IEltYWdlTWFnaWNrIE1hZ2ljaysrIGxpYnJhcnkgKEMrKyBiaW5kaW5ncykKR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKUmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KCiVkZXNjcmlwdGlvbiBjKysKVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBNYWdpY2srKyBsaWJyYXJ5LCBhIEMrKyBiaW5kaW5nIHRvIHRoZSBJbWFnZU1hZ2ljawpncmFwaGljcyBtYW5pcHVsYXRpb24gbGlicmFyeS4KCkluc3RhbGwgSW1hZ2VNYWdpY2stYysrIGlmIHlvdSB3YW50IHRvIHVzZSBhbnkgYXBwbGljYXRpb25zIHRoYXQgdXNlIE1hZ2ljaysrLgoKCiVwYWNrYWdlIGMrKy1kZXZlbApTdW1tYXJ5OiBDKysgYmluZGluZ3MgZm9yIHRoZSBJbWFnZU1hZ2ljayBsaWJyYXJ5Ckdyb3VwOiBEZXZlbG9wbWVudC9MaWJyYXJpZXMKUmVxdWlyZXM6ICV7bmFtZX0tYysrID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9ClJlcXVpcmVzOiAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CgolZGVzY3JpcHRpb24gYysrLWRldmVsCkltYWdlTWFnaWNrLWRldmVsIGNvbnRhaW5zIHRoZSBzdGF0aWMgbGlicmFyaWVzIGFuZCBoZWFkZXIgZmlsZXMgeW91J2xsCm5lZWQgdG8gZGV2ZWxvcCBJbWFnZU1hZ2ljayBhcHBsaWNhdGlvbnMgdXNpbmcgdGhlIE1hZ2ljaysrIEMrKyBiaW5kaW5ncy4KSW1hZ2VNYWdpY2sgaXMgYW4gaW1hZ2UgbWFuaXB1bGF0aW9uIHByb2dyYW0uCgpJZiB5b3Ugd2FudCB0byBjcmVhdGUgYXBwbGljYXRpb25zIHRoYXQgd2lsbCB1c2UgTWFnaWNrKysgY29kZQpvciBBUElzLCB5b3UnbGwgbmVlZCB0byBpbnN0YWxsIEltYWdlTWFnaWNrLWMrKy1kZXZlbCwgSW1hZ2VNYWdpY2stZGV2ZWwgYW5kCkltYWdlTWFnaWNrLgoKWW91IGRvbid0IG5lZWQgdG8gaW5zdGFsbCBpdCBpZiB5b3UganVzdCB3YW50IHRvIHVzZSBJbWFnZU1hZ2ljaywgb3IgaWYgeW91CndhbnQgdG8gZGV2ZWxvcC9jb21waWxlIGFwcGxpY2F0aW9ucyB1c2luZyB0aGUgSW1hZ2VNYWdpY2sgQyBpbnRlcmZhY2UsCmhvd2V2ZXIuCgoKJXByZXAKJXNldHVwIC1xIC1uICV7bmFtZX0tJXtWRVJTSU9OfS0le1BhdGNobGV2ZWx9CnNlZCAtaSAncy9saWJsdGRsLmxhL2xpYmx0ZGwuc28vZycgY29uZmlndXJlCmljb252IC1mIElTTy04ODU5LTEgLXQgVVRGLTggUkVBRE1FLnR4dCA+IFJFQURNRS50eHQudG1wCnRvdWNoIC1yIFJFQURNRS50eHQgUkVBRE1FLnR4dC50bXAKbXYgUkVBRE1FLnR4dC50bXAgUkVBRE1FLnR4dAojIGZvciAlZG9jCm1rZGlyIE1hZ2ljaysrL2V4YW1wbGVzCmNwIC1wIE1hZ2ljaysrL2RlbW8vKi5jcHAgTWFnaWNrKysvZGVtby8qLm1pZmYgTWFnaWNrKysvZXhhbXBsZXMKCiVidWlsZAolY29uZmlndXJlIC0tZW5hYmxlLXNoYXJlZCBcCiAgICAgICAgICAgLS1kaXNhYmxlLXN0YXRpYyBcCiAgICAgICAgICAgLS13aXRoLW1vZHVsZXMgXAogICAgICAgICAgIC0td2l0aC1wZXJsIFwKICAgICAgICAgICAtLXdpdGgteCBcCiAgICAgICAgICAgLS13aXRoLXRocmVhZHMgXAogICAgICAgICAgIC0td2l0aC1tYWdpY2tfcGx1c19wbHVzIFwKICAgICAgICAgICAtLXdpdGgtZ3NsaWIgXAogICAgICAgICAgIC0td2l0aC13bWYgXAogICAgICAgICAgIC0td2l0aC1sY21zIFwKICAgICAgICAgICAtLXdpdGgtcnN2ZyBcCiAgICAgICAgICAgLS13aXRoLXhtbCBcCiAgICAgICAgICAgLS13aXRoLXBlcmwtb3B0aW9ucz0iSU5TVEFMTERJUlM9dmVuZG9yICV7P3BlcmxfcHJlZml4fSBDQz0nJV9fY2MgLUwkUFdEL21hZ2ljay8ubGlicycgTERETEZMQUdTPSctc2hhcmVkIC1MJFBXRC9tYWdpY2svLmxpYnMnIiBcCiAgICAgICAgICAgLS13aXRob3V0LWRwcyBcCiAgICAgICAgICAgLS13aXRob3V0LWluY2x1ZGVkLWx0ZGwgLS13aXRoLWx0ZGwtaW5jbHVkZT0le19pbmNsdWRlZGlyfSBcCiAgICAgICAgICAgLS13aXRoLWx0ZGwtbGliPSV7X2xpYmRpcn0KIyBEaXNhYmxlIHJwYXRoCnNlZCAtaSAnc3xeaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0uKnxoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSIifGcnIGxpYnRvb2wKc2VkIC1pICdzfF5ydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSHxydW5wYXRoX3Zhcj1ESUVfUlBBVEhfRElFfGcnIGxpYnRvb2wKbWFrZQoKCiVpbnN0YWxsCnJtIC1yZiAkUlBNX0JVSUxEX1JPT1QKCm1ha2UgaW5zdGFsbCBERVNURElSPSRSUE1fQlVJTERfUk9PVCBJTlNUQUxMPSJpbnN0YWxsIC1wIgpjcCAtYSB3d3cvc291cmNlICRSUE1fQlVJTERfUk9PVCV7X2RhdGFkaXJ9L2RvYy8le25hbWV9LSV7VkVSU0lPTn0Kcm0gJFJQTV9CVUlMRF9ST09UJXtfbGliZGlyfS8qLmxhCgojIGZpeCB3ZWlyZCBwZXJsIE1hZ2ljay5zbyBwZXJtaXNzaW9ucwpjaG1vZCA3NTUgJFJQTV9CVUlMRF9ST09UJXtwZXJsX3ZlbmRvcmFyY2h9L2F1dG8vSW1hZ2UvTWFnaWNrL01hZ2ljay5zbwoKIyBwZXJsbWFnaWNrOiBmaXggcGVybCBwYXRoIG9mIGRlbW8gZmlsZXMKJXtfX3Blcmx9IC1NRXh0VXRpbHM6Ok1ha2VNYWtlciAtZSAnTVktPmZpeGluKEBBUkdWKScgUGVybE1hZ2ljay9kZW1vLyoucGwKCiMgcGVybG1hZ2ljazogY2xlYW51cCB2YXJpb3VzIHBlcmwgdGVtcGZpbGVzIGZyb20gdGhlIGJ1aWxkIHdoaWNoIGdldCBpbnN0YWxsZWQKZmluZCAkUlBNX0JVSUxEX1JPT1QgLW5hbWUgIiouYnMiIHx4YXJncyBybSAtZgpmaW5kICRSUE1fQlVJTERfUk9PVCAtbmFtZSAiLnBhY2tsaXN0IiB8eGFyZ3Mgcm0gLWYKZmluZCAkUlBNX0JVSUxEX1JPT1QgLW5hbWUgInBlcmxsb2NhbC5wb2QiIHx4YXJncyBybSAtZgoKIyBwZXJsbWFnaWNrOiBidWlsZCBmaWxlcyBsaXN0CmVjaG8gIiVkZWZhdHRyKC0scm9vdCxyb290LC0pIiA+IHBlcmwtcGtnLWZpbGVzCmZpbmQgJFJQTV9CVUlMRF9ST09ULyV7X2xpYmRpcn0vcGVybCogLXR5cGUgZiAtcHJpbnQgXAogICAgICAgIHwgc2VkICJzQF4kUlBNX0JVSUxEX1JPT1RAQGciID4gcGVybC1wa2ctZmlsZXMgCmZpbmQgJFJQTV9CVUlMRF9ST09UJXtwZXJsX3ZlbmRvcmFyY2h9IC10eXBlIGQgLXByaW50IFwKICAgICAgICB8IHNlZCAic0BeJFJQTV9CVUlMRF9ST09UQCVkaXIgQGciIFwKICAgICAgICB8IGdyZXAgLXYgJ14lZGlyICV7cGVybF92ZW5kb3JhcmNofSQnIFwKICAgICAgICB8IGdyZXAgLXYgJy9hdXRvJCcgPj4gcGVybC1wa2ctZmlsZXMgCmlmIFsgLXogcGVybC1wa2ctZmlsZXMgXSA7IHRoZW4KICAgIGVjaG8gIkVSUk9SOiBFTVBUWSBGSUxFIExJU1QiCiAgICBleGl0IC0xCmZpCgojIFRoZXNlIGRvbid0IGJlbG9uZyBoZXJlLCB3ZSBpbmNsdWRlIHRoZW0gaW4gJSVkb2MKcm0gJFJQTV9CVUlMRF9ST09UJXtfZGF0YWRpcn0vJXtuYW1lfS0le1ZFUlNJT059L3tDaGFuZ2VMb2csTElDRU5TRSxORVdTLnR4dH0KCiMgZml4IG11bHRpbGliIGlzc3VlcwolaWZhcmNoIHg4Nl82NCBzMzkweCBpYTY0IHBwYzY0IGFscGhhIHNwYXJjNjQKJWRlZmluZSB3b3Jkc2l6ZSA2NAolZWxzZQolZGVmaW5lIHdvcmRzaXplIDMyCiVlbmRpZgoKbXYgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9tYWdpY2svbWFnaWNrLWNvbmZpZy5oIFwKICAgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9tYWdpY2svbWFnaWNrLWNvbmZpZy0le3dvcmRzaXplfS5oCgpjYXQgPiRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vbWFnaWNrL21hZ2ljay1jb25maWcuaCA8PEVPRgojaWZuZGVmIElNQUdFTUFHSUNLX01VTFRJTElCCiNkZWZpbmUgSU1BR0VNQUdJQ0tfTVVMVElMSUIKCiNpbmNsdWRlIDxiaXRzL3dvcmRzaXplLmg+CgojaWYgX19XT1JEU0laRSA9PSAzMgojIGluY2x1ZGUgIm1hZ2ljay1jb25maWctMzIuaCIKI2VsaWYgX19XT1JEU0laRSA9PSA2NAojIGluY2x1ZGUgIm1hZ2ljay1jb25maWctNjQuaCIKI2Vsc2UKIyBlcnJvciAidW5leHBlY3RlZCB2YWx1ZSBmb3IgX19XT1JEU0laRSBtYWNybyIKI2VuZGlmCgojZW5kaWYKRU9GCgoKJWNsZWFuCnJtIC1yZiAkUlBNX0JVSUxEX1JPT1QKCgolcG9zdCAtcCAvc2Jpbi9sZGNvbmZpZwoKJXBvc3QgYysrIC1wIC9zYmluL2xkY29uZmlnCgolcG9zdHVuIC1wIC9zYmluL2xkY29uZmlnCgolcG9zdHVuIGMrKyAtcCAvc2Jpbi9sZGNvbmZpZwoKCiVmaWxlcwolZGVmYXR0cigtLHJvb3Qscm9vdCwtKQolZG9jIFF1aWNrU3RhcnQudHh0IENoYW5nZUxvZyBQbGF0Zm9ybXMudHh0CiVkb2MgUkVBRE1FLnR4dCBMSUNFTlNFIE5PVElDRSBBVVRIT1JTLnR4dCBORVdTLnR4dAole19saWJkaXJ9L2xpYk1hZ2lja0NvcmUuc28uKgole19saWJkaXJ9L2xpYk1hZ2lja1dhbmQuc28uKgole19iaW5kaXJ9L1thLXpdKgole19saWJkaXJ9LyV7bmFtZX0tJXtWRVJTSU9OfQole19kYXRhZGlyfS8le25hbWV9LSV7VkVSU0lPTn0KJXtfbWFuZGlyfS9tYW5bMTQ1XS9bYS16XSoKJXtfbWFuZGlyfS9tYW4xLyV7bmFtZX0uKgoKCiVmaWxlcyBkZXZlbAolZGVmYXR0cigtLHJvb3Qscm9vdCwtKQole19iaW5kaXJ9L01hZ2lja0NvcmUtY29uZmlnCiV7X2JpbmRpcn0vTWFnaWNrLWNvbmZpZwole19iaW5kaXJ9L01hZ2lja1dhbmQtY29uZmlnCiV7X2JpbmRpcn0vV2FuZC1jb25maWcKJXtfbGliZGlyfS9saWJNYWdpY2tDb3JlLnNvCiV7X2xpYmRpcn0vbGliTWFnaWNrV2FuZC5zbwole19saWJkaXJ9L3BrZ2NvbmZpZy9NYWdpY2tDb3JlLnBjCiV7X2xpYmRpcn0vcGtnY29uZmlnL0ltYWdlTWFnaWNrLnBjCiV7X2xpYmRpcn0vcGtnY29uZmlnL01hZ2lja1dhbmQucGMKJXtfbGliZGlyfS9wa2djb25maWcvV2FuZC5wYwolZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9tYWdpY2sKJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS93YW5kCiV7X21hbmRpcn0vbWFuMS9NYWdpY2stY29uZmlnLioKJXtfbWFuZGlyfS9tYW4xL01hZ2lja0NvcmUtY29uZmlnLioKJXtfbWFuZGlyfS9tYW4xL1dhbmQtY29uZmlnLioKJXtfbWFuZGlyfS9tYW4xL01hZ2lja1dhbmQtY29uZmlnLioKCiVmaWxlcyBkb2MKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJWRvYyAle19kYXRhZGlyfS9kb2MvJXtuYW1lfS0le1ZFUlNJT059CgolZmlsZXMgYysrCiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiVkb2MgTWFnaWNrKysvQVVUSE9SUyBNYWdpY2srKy9DaGFuZ2VMb2cgTWFnaWNrKysvTkVXUyBNYWdpY2srKy9SRUFETUUKJWRvYyB3d3cvTWFnaWNrKysvQ09QWUlORwole19saWJkaXJ9L2xpYk1hZ2ljaysrLnNvLioKCiVmaWxlcyBjKystZGV2ZWwKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJWRvYyBNYWdpY2srKy9leGFtcGxlcwole19iaW5kaXJ9L01hZ2ljaysrLWNvbmZpZwole19pbmNsdWRlZGlyfS8le25hbWV9L01hZ2ljaysrCiV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vTWFnaWNrKysuaAole19saWJkaXJ9L2xpYk1hZ2ljaysrLnNvCiV7X2xpYmRpcn0vcGtnY29uZmlnL01hZ2ljaysrLnBjCiV7X2xpYmRpcn0vcGtnY29uZmlnL0ltYWdlTWFnaWNrKysucGMKJXtfbWFuZGlyfS9tYW4xL01hZ2ljaysrLWNvbmZpZy4qCgolZmlsZXMgcGVybCAtZiBwZXJsLXBrZy1maWxlcwolZGVmYXR0cigtLHJvb3Qscm9vdCwtKQole19tYW5kaXJ9L21hbjMvKgolZG9jIFBlcmxNYWdpY2svZGVtby8gUGVybE1hZ2ljay9DaGFuZ2Vsb2cgUGVybE1hZ2ljay9SRUFETUUudHh0CgoKJWNoYW5nZWxvZwoqIFN1biBNYXkgMDEgMjAwNSBDcmlzdHkgPGNyaXN0eUBteXN0aWMuZXMuZHVwb250LmNvbT4gMS4wLTAKKiAgUG9ydCBvZiBSZWRoYXQncyBSUE0gc2NyaXB0IHRvIHN1cHBvcnQgSW1hZ2VNYWdpY2suCg==