JWdsb2JhbCBWRVJTSU9OICA3LjAuMAolZ2xvYmFsIFBhdGNobGV2ZWwgIDAKCk5hbWU6ICAgICAgICAgICBJbWFnZU1hZ2ljawpWZXJzaW9uOiAgICAgICAgJXtWRVJTSU9OfQpSZWxlYXNlOiAgICAgICAgJXtQYXRjaGxldmVsfQpTdW1tYXJ5OiAgICAgICAgVXNlIEltYWdlTWFnaWNrIHRvIGNvbnZlcnQsIGVkaXQsIG9yIGNvbXBvc2UgYml0bWFwIGltYWdlcyBpbiBhIHZhcmlldHkgb2YgZm9ybWF0cy4gIEluIGFkZGl0aW9uIHJlc2l6ZSwgcm90YXRlLCBzaGVhciwgZGlzdG9ydCBhbmQgdHJhbnNmb3JtIGltYWdlcy4KR3JvdXA6ICAgICAgICAgIEFwcGxpY2F0aW9ucy9NdWx0aW1lZGlhCkxpY2Vuc2U6ICAgICAgICBodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZy9zY3JpcHQvbGljZW5zZS5waHAKVXJsOiAgICAgICAgICAgIGh0dHA6Ly93d3cuaW1hZ2VtYWdpY2sub3JnLwpTb3VyY2UwOiAgICAgICAgZnRwOi8vZnRwLmltYWdlbWFnaWNrLm9yZy9wdWIvJXtuYW1lfS8le25hbWV9LSV7VkVSU0lPTn0tJXtQYXRjaGxldmVsfS50YXIuYnoyCgpCdWlsZFJvb3Q6ICAgICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikKQnVpbGRSZXF1aXJlczogIGJ6aXAyLWRldmVsLCBmcmVldHlwZS1kZXZlbCwgbGlianBlZy1kZXZlbCwgbGlicG5nLWRldmVsCkJ1aWxkUmVxdWlyZXM6ICBsaWJ0aWZmLWRldmVsLCBnaWZsaWItZGV2ZWwsIHpsaWItZGV2ZWwsIHBlcmwtZGV2ZWwgPj0gNS44LjEKQnVpbGRSZXF1aXJlczogIGdob3N0c2NyaXB0LWRldmVsLCBkanZ1bGlicmUtZGV2ZWwKQnVpbGRSZXF1aXJlczogIGxpYndtZi1kZXZlbCwgamFzcGVyLWRldmVsLCBsaWJ0b29sLWx0ZGwtZGV2ZWwKQnVpbGRSZXF1aXJlczogIGxpYlgxMS1kZXZlbCwgbGliWGV4dC1kZXZlbCwgbGliWHQtZGV2ZWwKQnVpbGRSZXF1aXJlczogIGxjbXMtZGV2ZWwsIGxpYnhtbDItZGV2ZWwsIGxpYnJzdmcyLWRldmVsLCBPcGVuRVhSLWRldmVsCgolZGVzY3JpcHRpb24KSW1hZ2VNYWdpY2sgaXMgYSBzb2Z0d2FyZSBzdWl0ZSB0byBjcmVhdGUsIGVkaXQsIGFuZCBjb21wb3NlIGJpdG1hcCBpbWFnZXMuIEl0CmNhbiByZWFkLCBjb252ZXJ0IGFuZCB3cml0ZSBpbWFnZXMgaW4gYSB2YXJpZXR5IG9mIGZvcm1hdHMgKGFib3V0IDEwMCkKaW5jbHVkaW5nIERQWCwgR0lGLCBKUEVHLCBKUEVHLTIwMDAsIFBERiwgUGhvdG9DRCwgUE5HLCBQb3N0c2NyaXB0LCBTVkcsCmFuZCBUSUZGLiBVc2UgSW1hZ2VNYWdpY2sgdG8gdHJhbnNsYXRlLCBmbGlwLCBtaXJyb3IsIHJvdGF0ZSwgc2NhbGUsIHNoZWFyCmFuZCB0cmFuc2Zvcm0gaW1hZ2VzLCBhZGp1c3QgaW1hZ2UgY29sb3JzLCBhcHBseSB2YXJpb3VzIHNwZWNpYWwgZWZmZWN0cywKb3IgZHJhdyB0ZXh0LCBsaW5lcywgcG9seWdvbnMsIGVsbGlwc2VzIGFuZCBC6XppZXIgY3VydmVzLgoKVGhlIGZ1bmN0aW9uYWxpdHkgb2YgSW1hZ2VNYWdpY2sgaXMgdHlwaWNhbGx5IHV0aWxpemVkIGZyb20gdGhlIGNvbW1hbmQgbGluZQpvciB5b3UgY2FuIHVzZSB0aGUgZmVhdHVyZXMgZnJvbSBwcm9ncmFtcyB3cml0dGVuIGluIHlvdXIgZmF2b3JpdGUgcHJvZ3JhbW1pbmcKbGFuZ3VhZ2UuIENob29zZSBmcm9tIHRoZXNlIGludGVyZmFjZXM6IEcyRiAoQWRhKSwgTWFnaWNrQ29yZSAoQyksIE1hZ2lja1dhbmQKKEMpLCBDaE1hZ2ljayAoQ2gpLCBNYWdpY2srKyAoQysrKSwgSk1hZ2ljayAoSmF2YSksIEwtTWFnaWNrIChMaXNwKSwgbk1hZ2ljawooTmVrby9oYVhlKSwgUGFzY2FsTWFnaWNrIChQYXNjYWwpLCBQZXJsTWFnaWNrIChQZXJsKSwgTWFnaWNrV2FuZCBmb3IgUEhQCihQSFApLCBQeXRob25NYWdpY2sgKFB5dGhvbiksIFJNYWdpY2sgKFJ1YnkpLCBvciBUY2xNYWdpY2sgKFRjbC9USykuIFdpdGggYQpsYW5ndWFnZSBpbnRlcmZhY2UsIHVzZSBJbWFnZU1hZ2ljayB0byBtb2RpZnkgb3IgY3JlYXRlIGltYWdlcyBhdXRvbWFnaWNhbGx5CmFuZCBkeW5hbWljYWxseS4KCkltYWdlTWFnaWNrIGlzIGZyZWUgc29mdHdhcmUgZGVsaXZlcmVkIGFzIGEgcmVhZHktdG8tcnVuIGJpbmFyeSBkaXN0cmlidXRpb24Kb3IgYXMgc291cmNlIGNvZGUgdGhhdCB5b3UgbWF5IGZyZWVseSB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgaW4KYm90aCBvcGVuIGFuZCBwcm9wcmlldGFyeSBhcHBsaWNhdGlvbnMuIEl0IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIGFuIEFwYWNoZQoyLjAtc3R5bGUgbGljZW5zZSwgYXBwcm92ZWQgYnkgdGhlIE9TSS4KClRoZSBJbWFnZU1hZ2ljayBkZXZlbG9wbWVudCBwcm9jZXNzIGVuc3VyZXMgYSBzdGFibGUgQVBJIGFuZCBBQkkuIEJlZm9yZQplYWNoIEltYWdlTWFnaWNrIHJlbGVhc2UsIHdlIHBlcmZvcm0gYSBjb21wcmVoZW5zaXZlIHNlY3VyaXR5IGFzc2Vzc21lbnQgdGhhdAppbmNsdWRlcyBtZW1vcnkgYW5kIHRocmVhZCBlcnJvciBkZXRlY3Rpb24gdG8gaGVscCBwcmV2ZW50IGV4cGxvaXRzLkltYWdlTWFnaWNrCmlzIGZyZWUgc29mdHdhcmUgZGVsaXZlcmVkIGFzIGEgcmVhZHktdG8tcnVuIGJpbmFyeSBkaXN0cmlidXRpb24gb3IgYXMgc291cmNlCmNvZGUgdGhhdCB5b3UgbWF5IGZyZWVseSB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgaW4gYm90aCBvcGVuIGFuZApwcm9wcmlldGFyeSBhcHBsaWNhdGlvbnMuIEl0IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIGFuIEFwYWNoZSAyLjAtc3R5bGUgbGljZW5zZSwKYXBwcm92ZWQgYnkgdGhlIE9TSS4KCgolcGFja2FnZSBkZXZlbApTdW1tYXJ5OiBMaWJyYXJ5IGxpbmtzIGFuZCBoZWFkZXIgZmlsZXMgZm9yIEltYWdlTWFnaWNrIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50Ckdyb3VwOiBEZXZlbG9wbWVudC9MaWJyYXJpZXMKUmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KUmVxdWlyZXM6IGxpYlgxMS1kZXZlbCwgbGliWGV4dC1kZXZlbCwgbGliWHQtZGV2ZWwKUmVxdWlyZXM6IGdob3N0c2NyaXB0LWRldmVsClJlcXVpcmVzOiBiemlwMi1kZXZlbApSZXF1aXJlczogZnJlZXR5cGUtZGV2ZWwKUmVxdWlyZXM6IGxpYnRpZmYtZGV2ZWwKUmVxdWlyZXM6IGxpYmpwZWctZGV2ZWwKUmVxdWlyZXM6IGxjbXMtZGV2ZWwKUmVxdWlyZXM6IGphc3Blci1kZXZlbApSZXF1aXJlczogcGtnY29uZmlnCgolZGVzY3JpcHRpb24gZGV2ZWwKSW1hZ2VNYWdpY2stZGV2ZWwgY29udGFpbnMgdGhlIGxpYnJhcnkgbGlua3MgYW5kIGhlYWRlciBmaWxlcyB5b3UnbGwKbmVlZCB0byBkZXZlbG9wIEltYWdlTWFnaWNrIGFwcGxpY2F0aW9ucy4gSW1hZ2VNYWdpY2sgaXMgYW4gaW1hZ2UKbWFuaXB1bGF0aW9uIHByb2dyYW0uCgpJZiB5b3Ugd2FudCB0byBjcmVhdGUgYXBwbGljYXRpb25zIHRoYXQgd2lsbCB1c2UgSW1hZ2VNYWdpY2sgY29kZSBvcgpBUElzLCB5b3UgbmVlZCB0byBpbnN0YWxsIEltYWdlTWFnaWNrLWRldmVsIGFzIHdlbGwgYXMgSW1hZ2VNYWdpY2suCllvdSBkbyBub3QgbmVlZCB0byBpbnN0YWxsIGl0IGlmIHlvdSBqdXN0IHdhbnQgdG8gdXNlIEltYWdlTWFnaWNrLApob3dldmVyLgoKCiVwYWNrYWdlIGRvYwpTdW1tYXJ5OiBJbWFnZU1hZ2ljayBIVE1MIGRvY3VtZW50YXRpb24KR3JvdXA6IERvY3VtZW50YXRpb24KCgolcGFja2FnZSBkanZ1ClN1bW1hcnk6IERqVnUgcGx1Z2luIGZvciBJbWFnZU1hZ2ljawpHcm91cDogQXBwbGljYXRpb25zL011bHRpbWVkaWEKUmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KCiVkZXNjcmlwdGlvbiBkanZ1ClRoaXMgcGFja2FnZXMgY29udGFpbnMgYSBwbHVnaW4gZm9yIEltYWdlTWFnaWNrIHdoaWNoIG1ha2VzIGl0IHBvc3NpYmxlIHRvCnNhdmUgYW5kIGxvYWQgRGp2VSBmaWxlcyBmcm9tIEltYWdlTWFnaWNrIGFuZCBsaWJNYWdpY2tDb3JlIHVzaW5nIGFwcGxpY2F0aW9ucy4KCgolZGVzY3JpcHRpb24gZG9jCkltYWdlTWFnaWNrIGRvY3VtZW50YXRpb24sIHRoaXMgcGFja2FnZSBjb250YWlucyB1c2FnZSAoZm9yIHRoZQpjb21tYW5kbGluZSB0b29scykgYW5kIEFQSSAoZm9yIHRoZSBsaWJyYXJpZXMpIGRvY3VtZW50YXRpb24gaW4gSFRNTCBmb3JtYXQuCk5vdGUgdGhpcyBkb2N1bWVudGF0aW9uIGNhbiBhbHNvIGJlIGZvdW5kIG9uIHRoZSBJbWFnZU1hZ2ljayB3ZWJzaXRlOgpodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZy8uCgoKJXBhY2thZ2UgcGVybApTdW1tYXJ5OiBJbWFnZU1hZ2ljayBwZXJsIGJpbmRpbmdzCkdyb3VwOiBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzClJlcXVpcmVzOiBwZXJsLWJhc2UKUmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KUmVxdWlyZXM6IHBlcmwoOk1PRFVMRV9DT01QQVRfJShldmFsICJgJXtfX3Blcmx9IC1WOnZlcnNpb25gIjsgZWNobyAkdmVyc2lvbikpCgoKJWRlc2NyaXB0aW9uIHBlcmwKUGVybCBiaW5kaW5ncyB0byBJbWFnZU1hZ2ljay4KCkluc3RhbGwgSW1hZ2VNYWdpY2stcGVybCBpZiB5b3Ugd2FudCB0byB1c2UgYW55IHBlcmwgc2NyaXB0cyB0aGF0IHVzZQpJbWFnZU1hZ2ljay4KCgolcGFja2FnZSBjKysKU3VtbWFyeTogSW1hZ2VNYWdpY2sgTWFnaWNrKysgbGlicmFyeSAoQysrIGJpbmRpbmdzKQpHcm91cDogU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwpSZXF1aXJlczogJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQoKJWRlc2NyaXB0aW9uIGMrKwpUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIE1hZ2ljaysrIGxpYnJhcnksIGEgQysrIGJpbmRpbmcgdG8gdGhlIEltYWdlTWFnaWNrCmdyYXBoaWNzIG1hbmlwdWxhdGlvbiBsaWJyYXJ5LgoKSW5zdGFsbCBJbWFnZU1hZ2ljay1jKysgaWYgeW91IHdhbnQgdG8gdXNlIGFueSBhcHBsaWNhdGlvbnMgdGhhdCB1c2UgTWFnaWNrKysuCgoKJXBhY2thZ2UgYysrLWRldmVsClN1bW1hcnk6IEMrKyBiaW5kaW5ncyBmb3IgdGhlIEltYWdlTWFnaWNrIGxpYnJhcnkKR3JvdXA6IERldmVsb3BtZW50L0xpYnJhcmllcwpSZXF1aXJlczogJXtuYW1lfS1jKysgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KUmVxdWlyZXM6ICV7bmFtZX0tZGV2ZWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KCiVkZXNjcmlwdGlvbiBjKystZGV2ZWwKSW1hZ2VNYWdpY2stZGV2ZWwgY29udGFpbnMgdGhlIHN0YXRpYyBsaWJyYXJpZXMgYW5kIGhlYWRlciBmaWxlcyB5b3UnbGwKbmVlZCB0byBkZXZlbG9wIEltYWdlTWFnaWNrIGFwcGxpY2F0aW9ucyB1c2luZyB0aGUgTWFnaWNrKysgQysrIGJpbmRpbmdzLgpJbWFnZU1hZ2ljayBpcyBhbiBpbWFnZSBtYW5pcHVsYXRpb24gcHJvZ3JhbS4KCklmIHlvdSB3YW50IHRvIGNyZWF0ZSBhcHBsaWNhdGlvbnMgdGhhdCB3aWxsIHVzZSBNYWdpY2srKyBjb2RlCm9yIEFQSXMsIHlvdSdsbCBuZWVkIHRvIGluc3RhbGwgSW1hZ2VNYWdpY2stYysrLWRldmVsLCBJbWFnZU1hZ2ljay1kZXZlbCBhbmQKSW1hZ2VNYWdpY2suCgpZb3UgZG9uJ3QgbmVlZCB0byBpbnN0YWxsIGl0IGlmIHlvdSBqdXN0IHdhbnQgdG8gdXNlIEltYWdlTWFnaWNrLCBvciBpZiB5b3UKd2FudCB0byBkZXZlbG9wL2NvbXBpbGUgYXBwbGljYXRpb25zIHVzaW5nIHRoZSBJbWFnZU1hZ2ljayBDIGludGVyZmFjZSwKaG93ZXZlci4KCgolcHJlcAolc2V0dXAgLXEgLW4gJXtuYW1lfS0le1ZFUlNJT059LSV7UGF0Y2hsZXZlbH0Kc2VkIC1pICdzL2xpYmx0ZGwubGEvbGlibHRkbC5zby9nJyBjb25maWd1cmUKaWNvbnYgLWYgSVNPLTg4NTktMSAtdCBVVEYtOCBSRUFETUUudHh0ID4gUkVBRE1FLnR4dC50bXAKdG91Y2ggLXIgUkVBRE1FLnR4dCBSRUFETUUudHh0LnRtcAptdiBSRUFETUUudHh0LnRtcCBSRUFETUUudHh0CiMgZm9yICUlZG9jCm1rZGlyIE1hZ2ljaysrL2V4YW1wbGVzCmNwIC1wIE1hZ2ljaysrL2RlbW8vKi5jcHAgTWFnaWNrKysvZGVtby8qLm1pZmYgTWFnaWNrKysvZXhhbXBsZXMKCiVidWlsZAolY29uZmlndXJlIC0tZW5hYmxlLXNoYXJlZCBcCiAgICAgICAgICAgLS1kaXNhYmxlLXN0YXRpYyBcCiAgICAgICAgICAgLS13aXRoLW1vZHVsZXMgXAogICAgICAgICAgIC0td2l0aC1wZXJsIFwKICAgICAgICAgICAtLXdpdGgteCBcCiAgICAgICAgICAgLS13aXRoLXRocmVhZHMgXAogICAgICAgICAgIC0td2l0aC1tYWdpY2tfcGx1c19wbHVzIFwKICAgICAgICAgICAtLXdpdGgtZ3NsaWIgXAogICAgICAgICAgIC0td2l0aC13bWYgXAogICAgICAgICAgIC0td2l0aC1sY21zIFwKICAgICAgICAgICAtLXdpdGgtcnN2ZyBcCiAgICAgICAgICAgLS13aXRoLXhtbCBcCiAgICAgICAgICAgLS13aXRoLXBlcmwtb3B0aW9ucz0nSU5TVEFMTERJUlM9dmVuZG9yJyBcCiAgICAgICAgICAgLS13aXRob3V0LWRwcyBcCiAgICAgICAgICAgLS13aXRob3V0LWluY2x1ZGVkLWx0ZGwgLS13aXRoLWx0ZGwtaW5jbHVkZT0le19pbmNsdWRlZGlyfSBcCiAgICAgICAgICAgLS13aXRoLWx0ZGwtbGliPSV7X2xpYmRpcn0KIyBEaXNhYmxlIHJwYXRoCnNlZCAtaSAnc3xeaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0uKnxoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSIifGcnIGxpYnRvb2wKc2VkIC1pICdzfF5ydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSHxydW5wYXRoX3Zhcj1ESUVfUlBBVEhfRElFfGcnIGxpYnRvb2wKIyBEbyAqTk9UKiB1c2UgJSV7P19zbXBfbWZsYWdzfSwgdGhpcyBjYXVzZXMgUGVybE1hZ2ljayB0byBiZSBzaWxlbnRseSBtaXNidWlsZAptYWtlCgoKJWluc3RhbGwKcm0gLXJmICRSUE1fQlVJTERfUk9PVAoKbWFrZSBpbnN0YWxsIERFU1RESVI9JFJQTV9CVUlMRF9ST09UIElOU1RBTEw9Imluc3RhbGwgLXAiCmNwIC1hIHd3dy9zb3VyY2UgJFJQTV9CVUlMRF9ST09UJXtfZGF0YWRpcn0vZG9jLyV7bmFtZX0tJXtWRVJTSU9OfQpybSAkUlBNX0JVSUxEX1JPT1Qle19saWJkaXJ9LyoubGEKCiMgZml4IHdlaXJkIHBlcmwgTWFnaWNrLnNvIHBlcm1pc3Npb25zCmNobW9kIDc1NSAkUlBNX0JVSUxEX1JPT1Qle3BlcmxfdmVuZG9yYXJjaH0vYXV0by9JbWFnZS9NYWdpY2svTWFnaWNrLnNvCgojIHBlcmxtYWdpY2s6IGZpeCBwZXJsIHBhdGggb2YgZGVtbyBmaWxlcwole19fcGVybH0gLU1FeHRVdGlsczo6TWFrZU1ha2VyIC1lICdNWS0+Zml4aW4oQEFSR1YpJyBQZXJsTWFnaWNrL2RlbW8vKi5wbAoKIyBwZXJsbWFnaWNrOiBjbGVhbnVwIHZhcmlvdXMgcGVybCB0ZW1wZmlsZXMgZnJvbSB0aGUgYnVpbGQgd2hpY2ggZ2V0IGluc3RhbGxlZApmaW5kICRSUE1fQlVJTERfUk9PVCAtbmFtZSAiKi5icyIgfHhhcmdzIHJtIC1mCmZpbmQgJFJQTV9CVUlMRF9ST09UIC1uYW1lICIucGFja2xpc3QiIHx4YXJncyBybSAtZgpmaW5kICRSUE1fQlVJTERfUk9PVCAtbmFtZSAicGVybGxvY2FsLnBvZCIgfHhhcmdzIHJtIC1mCgojIHBlcmxtYWdpY2s6IGJ1aWxkIGZpbGVzIGxpc3QKZWNobyAiJWRlZmF0dHIoLSxyb290LHJvb3QsLSkiID4gcGVybC1wa2ctZmlsZXMKZmluZCAkUlBNX0JVSUxEX1JPT1QvJXtfbGliZGlyfS9wZXJsKiAtdHlwZSBmIC1wcmludCBcCiAgICAgICAgfCBzZWQgInNAXiRSUE1fQlVJTERfUk9PVEBAZyIgPiBwZXJsLXBrZy1maWxlcyAKZmluZCAkUlBNX0JVSUxEX1JPT1Qle3BlcmxfdmVuZG9yYXJjaH0gLXR5cGUgZCAtcHJpbnQgXAogICAgICAgIHwgc2VkICJzQF4kUlBNX0JVSUxEX1JPT1RAJWRpciBAZyIgXAogICAgICAgIHwgZ3JlcCAtdiAnXiVkaXIgJXtwZXJsX3ZlbmRvcmFyY2h9JCcgXAogICAgICAgIHwgZ3JlcCAtdiAnL2F1dG8kJyA+PiBwZXJsLXBrZy1maWxlcyAKaWYgWyAteiBwZXJsLXBrZy1maWxlcyBdIDsgdGhlbgogICAgZWNobyAiRVJST1I6IEVNUFRZIEZJTEUgTElTVCIKICAgIGV4aXQgLTEKZmkKCiMgZml4IG11bHRpbGliIGlzc3VlcwolaWZhcmNoIHg4Nl82NCBzMzkweCBpYTY0IHBwYzY0IGFscGhhIHNwYXJjNjQKJWRlZmluZSB3b3Jkc2l6ZSA2NAolZWxzZQolZGVmaW5lIHdvcmRzaXplIDMyCiVlbmRpZgoKbXYgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9tYWdpY2svbWFnaWNrLWNvbmZpZy5oIFwKICAgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9tYWdpY2svbWFnaWNrLWNvbmZpZy0le3dvcmRzaXplfS5oCgpjYXQgPiRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vbWFnaWNrL21hZ2ljay1jb25maWcuaCA8PEVPRgojaWZuZGVmIElNQUdFTUFHSUNLX01VTFRJTElCCiNkZWZpbmUgSU1BR0VNQUdJQ0tfTVVMVElMSUIKCiNpbmNsdWRlIDxiaXRzL3dvcmRzaXplLmg+CgojaWYgX19XT1JEU0laRSA9PSAzMgojIGluY2x1ZGUgIm1hZ2ljay1jb25maWctMzIuaCIKI2VsaWYgX19XT1JEU0laRSA9PSA2NAojIGluY2x1ZGUgIm1hZ2ljay1jb25maWctNjQuaCIKI2Vsc2UKIyBlcnJvciAidW5leHBlY3RlZCB2YWx1ZSBmb3IgX19XT1JEU0laRSBtYWNybyIKI2VuZGlmCgojZW5kaWYKRU9GCgolY2xlYW4Kcm0gLXJmICRSUE1fQlVJTERfUk9PVAoKCiVwb3N0IC1wIC9zYmluL2xkY29uZmlnCgolcG9zdCBjKysgLXAgL3NiaW4vbGRjb25maWcKCiVwb3N0dW4gLXAgL3NiaW4vbGRjb25maWcKCiVwb3N0dW4gYysrIC1wIC9zYmluL2xkY29uZmlnCgoKJWZpbGVzCiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiVkb2MgUXVpY2tTdGFydC50eHQgQ2hhbmdlTG9nIFBsYXRmb3Jtcy50eHQKJWRvYyBSRUFETUUudHh0IExJQ0VOU0UgTk9USUNFIEFVVEhPUlMudHh0IE5FV1MudHh0CiV7X2xpYmRpcn0vbGliTWFnaWNrQ29yZS5zbyoKJXtfbGliZGlyfS9saWJNYWdpY2tXYW5kLnNvKgole19iaW5kaXJ9L1thLXpdKgole19zeXNjb25mZGlyfS8le25hbWV9CiV7X2xpYmRpcn0vJXtuYW1lfS0le1ZFUlNJT059CiV7X2RhdGFkaXJ9LyV7bmFtZX0tJXtWRVJTSU9OfQole19tYW5kaXJ9L21hblsxNDVdL1thLXpBLVpdKgole19tYW5kaXJ9L21hbjEvJXtuYW1lfS4qCiVleGNsdWRlICV7X2xpYmRpcn0vJXtuYW1lfS0le1ZFUlNJT059L21vZHVsZXMtUTE2L2NvZGVycy9kanZ1LioKCgolZmlsZXMgZGV2ZWwKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJXtfYmluZGlyfS9NYWdpY2tDb3JlLWNvbmZpZwole19iaW5kaXJ9L01hZ2lja1dhbmQtY29uZmlnCiV7X2xpYmRpcn0vbGliTWFnaWNrQ29yZS5zbyoKJXtfbGliZGlyfS9saWJNYWdpY2tXYW5kLnNvKgole19saWJkaXJ9L3BrZ2NvbmZpZy9NYWdpY2tDb3JlLnBjCiV7X2xpYmRpcn0vcGtnY29uZmlnL0ltYWdlTWFnaWNrLnBjCiV7X2xpYmRpcn0vcGtnY29uZmlnL01hZ2lja1dhbmQucGMKJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9CiV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vTWFnaWNrQ29yZQole19pbmNsdWRlZGlyfS8le25hbWV9L01hZ2lja1dhbmQKJXtfbWFuZGlyfS9tYW4xL01hZ2lja0NvcmUtY29uZmlnLioKJXtfbWFuZGlyfS9tYW4xL01hZ2lja1dhbmQtY29uZmlnLioKCiVmaWxlcyBkanZ1CiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiV7X2xpYmRpcn0vJXtuYW1lfS0le3ZlcnNpb259L21vZHVsZXMtUTE2L2NvZGVycy9kanZ1LioKCiVmaWxlcyBkb2MKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJWRvYyAle19kYXRhZGlyfS9kb2MvJXtuYW1lfS0le1ZFUlNJT059CiVkb2MgTElDRU5TRQoKJWZpbGVzIGMrKwolZGVmYXR0cigtLHJvb3Qscm9vdCwtKQolZG9jIE1hZ2ljaysrL0FVVEhPUlMgTWFnaWNrKysvQ2hhbmdlTG9nIE1hZ2ljaysrL05FV1MgTWFnaWNrKysvUkVBRE1FCiVkb2Mgd3d3L01hZ2ljaysrL0NPUFlJTkcKJXtfbGliZGlyfS9saWJNYWdpY2srKy5zbyoKCiVmaWxlcyBjKystZGV2ZWwKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJWRvYyBNYWdpY2srKy9leGFtcGxlcwole19iaW5kaXJ9L01hZ2ljaysrLWNvbmZpZwole19pbmNsdWRlZGlyfS8le25hbWV9L01hZ2ljaysrCiV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vTWFnaWNrKysuaAole19saWJkaXJ9L2xpYk1hZ2ljaysrLnNvKgole19saWJkaXJ9L3BrZ2NvbmZpZy9NYWdpY2srKy5wYwole19saWJkaXJ9L3BrZ2NvbmZpZy9JbWFnZU1hZ2ljaysrLnBjCiV7X21hbmRpcn0vbWFuMS9NYWdpY2srKy1jb25maWcuKgoKJWZpbGVzIHBlcmwgLWYgcGVybC1wa2ctZmlsZXMKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJXtfbWFuZGlyfS9tYW4zLyoKJWRvYyBQZXJsTWFnaWNrL2RlbW8vIFBlcmxNYWdpY2svQ2hhbmdlbG9nIFBlcmxNYWdpY2svUkVBRE1FLnR4dAoKCiVjaGFuZ2Vsb2cKKiBTdW4gTWF5IDAxIDIwMDUgQ3Jpc3R5IDxjcmlzdHlAbXlzdGljLmVzLmR1cG9udC5jb20+IDEuMC0wCi0gIFBvcnQgb2YgUmVkaGF0J3MgUlBNIHNjcmlwdCB0byBzdXBwb3J0IEltYWdlTWFnaWNrLgo=