JWdsb2JhbCBWRVJTSU9OICA3LjAuMAolZ2xvYmFsIFBhdGNobGV2ZWwgIDAKCk5hbWU6ICAgICAgICAgICBJbWFnZU1hZ2ljawpWZXJzaW9uOiAgICAgICAgJXtWRVJTSU9OfQpSZWxlYXNlOiAgICAgICAgJXtQYXRjaGxldmVsfQpTdW1tYXJ5OiAgICAgICAgVXNlIEltYWdlTWFnaWNrIHRvIGNvbnZlcnQsIGVkaXQsIG9yIGNvbXBvc2UgYml0bWFwIGltYWdlcyBpbiBhIHZhcmlldHkgb2YgZm9ybWF0cy4gIEluIGFkZGl0aW9uIHJlc2l6ZSwgcm90YXRlLCBzaGVhciwgZGlzdG9ydCBhbmQgdHJhbnNmb3JtIGltYWdlcy4KR3JvdXA6ICAgICAgICAgIEFwcGxpY2F0aW9ucy9NdWx0aW1lZGlhCkxpY2Vuc2U6ICAgICAgICBodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZy9zY3JpcHQvbGljZW5zZS5waHAKVXJsOiAgICAgICAgICAgIGh0dHA6Ly93d3cuaW1hZ2VtYWdpY2sub3JnLwpTb3VyY2UwOiAgICAgICAgaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmcvZG93bmxvYWQvJXtuYW1lfS8le25hbWV9LSV7VkVSU0lPTn0tJXtQYXRjaGxldmVsfS50YXIuYnoyCgpCdWlsZFJvb3Q6ICAgICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikKQnVpbGRSZXF1aXJlczogIGJ6aXAyLWRldmVsLCBmcmVldHlwZS1kZXZlbCwgbGlianBlZy1kZXZlbCwgbGlicG5nLWRldmVsCkJ1aWxkUmVxdWlyZXM6ICBsaWJ0aWZmLWRldmVsLCBnaWZsaWItZGV2ZWwsIHpsaWItZGV2ZWwsIHBlcmwtZGV2ZWwgPj0gNS44LjEKQnVpbGRSZXF1aXJlczogIGdob3N0c2NyaXB0LWRldmVsLCBkanZ1bGlicmUtZGV2ZWwKQnVpbGRSZXF1aXJlczogIGxpYndtZi1kZXZlbCwgamFzcGVyLWRldmVsLCBsaWJ0b29sLWx0ZGwtZGV2ZWwKQnVpbGRSZXF1aXJlczogIGxpYlgxMS1kZXZlbCwgbGliWGV4dC1kZXZlbCwgbGliWHQtZGV2ZWwKQnVpbGRSZXF1aXJlczogIGxjbXMtZGV2ZWwsIGxpYnhtbDItZGV2ZWwsIGxpYnJzdmcyLWRldmVsLCBPcGVuRVhSLWRldmVsCgolZGVzY3JpcHRpb24KSW1hZ2VNYWdpY2sgaXMgYSBzb2Z0d2FyZSBzdWl0ZSB0byBjcmVhdGUsIGVkaXQsIGFuZCBjb21wb3NlIGJpdG1hcCBpbWFnZXMuIEl0CmNhbiByZWFkLCBjb252ZXJ0IGFuZCB3cml0ZSBpbWFnZXMgaW4gYSB2YXJpZXR5IG9mIGZvcm1hdHMgKGFib3V0IDEwMCkKaW5jbHVkaW5nIERQWCwgR0lGLCBKUEVHLCBKUEVHLTIwMDAsIFBERiwgUGhvdG9DRCwgUE5HLCBQb3N0c2NyaXB0LCBTVkcsCmFuZCBUSUZGLiBVc2UgSW1hZ2VNYWdpY2sgdG8gdHJhbnNsYXRlLCBmbGlwLCBtaXJyb3IsIHJvdGF0ZSwgc2NhbGUsIHNoZWFyCmFuZCB0cmFuc2Zvcm0gaW1hZ2VzLCBhZGp1c3QgaW1hZ2UgY29sb3JzLCBhcHBseSB2YXJpb3VzIHNwZWNpYWwgZWZmZWN0cywKb3IgZHJhdyB0ZXh0LCBsaW5lcywgcG9seWdvbnMsIGVsbGlwc2VzIGFuZCBC6XppZXIgY3VydmVzLgoKVGhlIGZ1bmN0aW9uYWxpdHkgb2YgSW1hZ2VNYWdpY2sgaXMgdHlwaWNhbGx5IHV0aWxpemVkIGZyb20gdGhlIGNvbW1hbmQgbGluZQpvciB5b3UgY2FuIHVzZSB0aGUgZmVhdHVyZXMgZnJvbSBwcm9ncmFtcyB3cml0dGVuIGluIHlvdXIgZmF2b3JpdGUgcHJvZ3JhbW1pbmcKbGFuZ3VhZ2UuIENob29zZSBmcm9tIHRoZXNlIGludGVyZmFjZXM6IEcyRiAoQWRhKSwgTWFnaWNrQ29yZSAoQyksIE1hZ2lja1dhbmQKKEMpLCBDaE1hZ2ljayAoQ2gpLCBNYWdpY2srKyAoQysrKSwgSk1hZ2ljayAoSmF2YSksIEwtTWFnaWNrIChMaXNwKSwgbk1hZ2ljawooTmVrby9oYVhlKSwgUGFzY2FsTWFnaWNrIChQYXNjYWwpLCBQZXJsTWFnaWNrIChQZXJsKSwgTWFnaWNrV2FuZCBmb3IgUEhQCihQSFApLCBQeXRob25NYWdpY2sgKFB5dGhvbiksIFJNYWdpY2sgKFJ1YnkpLCBvciBUY2xNYWdpY2sgKFRjbC9USykuIFdpdGggYQpsYW5ndWFnZSBpbnRlcmZhY2UsIHVzZSBJbWFnZU1hZ2ljayB0byBtb2RpZnkgb3IgY3JlYXRlIGltYWdlcyBhdXRvbWFnaWNhbGx5CmFuZCBkeW5hbWljYWxseS4KCkltYWdlTWFnaWNrIGlzIGZyZWUgc29mdHdhcmUgZGVsaXZlcmVkIGFzIGEgcmVhZHktdG8tcnVuIGJpbmFyeSBkaXN0cmlidXRpb24Kb3IgYXMgc291cmNlIGNvZGUgdGhhdCB5b3UgbWF5IGZyZWVseSB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgaW4KYm90aCBvcGVuIGFuZCBwcm9wcmlldGFyeSBhcHBsaWNhdGlvbnMuIEl0IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIGFuIEFwYWNoZQoyLjAtc3R5bGUgbGljZW5zZSwgYXBwcm92ZWQgYnkgdGhlIE9TSS4KClRoZSBJbWFnZU1hZ2ljayBkZXZlbG9wbWVudCBwcm9jZXNzIGVuc3VyZXMgYSBzdGFibGUgQVBJIGFuZCBBQkkuIEJlZm9yZQplYWNoIEltYWdlTWFnaWNrIHJlbGVhc2UsIHdlIHBlcmZvcm0gYSBjb21wcmVoZW5zaXZlIHNlY3VyaXR5IGFzc2Vzc21lbnQgdGhhdAppbmNsdWRlcyBtZW1vcnkgYW5kIHRocmVhZCBlcnJvciBkZXRlY3Rpb24gdG8gaGVscCBwcmV2ZW50IGV4cGxvaXRzLkltYWdlTWFnaWNrCmlzIGZyZWUgc29mdHdhcmUgZGVsaXZlcmVkIGFzIGEgcmVhZHktdG8tcnVuIGJpbmFyeSBkaXN0cmlidXRpb24gb3IgYXMgc291cmNlCmNvZGUgdGhhdCB5b3UgbWF5IGZyZWVseSB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgaW4gYm90aCBvcGVuIGFuZApwcm9wcmlldGFyeSBhcHBsaWNhdGlvbnMuIEl0IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIGFuIEFwYWNoZSAyLjAtc3R5bGUgbGljZW5zZSwKYXBwcm92ZWQgYnkgdGhlIE9TSS4KCgolcGFja2FnZSBkZXZlbApTdW1tYXJ5OiBMaWJyYXJ5IGxpbmtzIGFuZCBoZWFkZXIgZmlsZXMgZm9yIEltYWdlTWFnaWNrIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50Ckdyb3VwOiBEZXZlbG9wbWVudC9MaWJyYXJpZXMKUmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KUmVxdWlyZXM6IGxpYlgxMS1kZXZlbCwgbGliWGV4dC1kZXZlbCwgbGliWHQtZGV2ZWwKUmVxdWlyZXM6IGdob3N0c2NyaXB0LWRldmVsClJlcXVpcmVzOiBiemlwMi1kZXZlbApSZXF1aXJlczogZnJlZXR5cGUtZGV2ZWwKUmVxdWlyZXM6IGxpYnRpZmYtZGV2ZWwKUmVxdWlyZXM6IGxpYmpwZWctZGV2ZWwKUmVxdWlyZXM6IGxjbXMtZGV2ZWwKUmVxdWlyZXM6IGphc3Blci1kZXZlbApSZXF1aXJlczogcGtnY29uZmlnCgolZGVzY3JpcHRpb24gZGV2ZWwKSW1hZ2VNYWdpY2stZGV2ZWwgY29udGFpbnMgdGhlIGxpYnJhcnkgbGlua3MgYW5kIGhlYWRlciBmaWxlcyB5b3UnbGwKbmVlZCB0byBkZXZlbG9wIEltYWdlTWFnaWNrIGFwcGxpY2F0aW9ucy4gSW1hZ2VNYWdpY2sgaXMgYW4gaW1hZ2UKbWFuaXB1bGF0aW9uIHByb2dyYW0uCgpJZiB5b3Ugd2FudCB0byBjcmVhdGUgYXBwbGljYXRpb25zIHRoYXQgd2lsbCB1c2UgSW1hZ2VNYWdpY2sgY29kZSBvcgpBUElzLCB5b3UgbmVlZCB0byBpbnN0YWxsIEltYWdlTWFnaWNrLWRldmVsIGFzIHdlbGwgYXMgSW1hZ2VNYWdpY2suCllvdSBkbyBub3QgbmVlZCB0byBpbnN0YWxsIGl0IGlmIHlvdSBqdXN0IHdhbnQgdG8gdXNlIEltYWdlTWFnaWNrLApob3dldmVyLgoKCiVwYWNrYWdlIGRvYwpTdW1tYXJ5OiBJbWFnZU1hZ2ljayBIVE1MIGRvY3VtZW50YXRpb24KR3JvdXA6IERvY3VtZW50YXRpb24KCgolcGFja2FnZSBkanZ1ClN1bW1hcnk6IERqVnUgcGx1Z2luIGZvciBJbWFnZU1hZ2ljawpHcm91cDogQXBwbGljYXRpb25zL011bHRpbWVkaWEKUmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KCiVkZXNjcmlwdGlvbiBkanZ1ClRoaXMgcGFja2FnZXMgY29udGFpbnMgYSBwbHVnaW4gZm9yIEltYWdlTWFnaWNrIHdoaWNoIG1ha2VzIGl0IHBvc3NpYmxlIHRvCnNhdmUgYW5kIGxvYWQgRGp2VSBmaWxlcyBmcm9tIEltYWdlTWFnaWNrIGFuZCBsaWJNYWdpY2tDb3JlIHVzaW5nIGFwcGxpY2F0aW9ucy4KCgolZGVzY3JpcHRpb24gZG9jCkltYWdlTWFnaWNrIGRvY3VtZW50YXRpb24sIHRoaXMgcGFja2FnZSBjb250YWlucyB1c2FnZSAoZm9yIHRoZQpjb21tYW5kbGluZSB0b29scykgYW5kIEFQSSAoZm9yIHRoZSBsaWJyYXJpZXMpIGRvY3VtZW50YXRpb24gaW4gSFRNTCBmb3JtYXQuCk5vdGUgdGhpcyBkb2N1bWVudGF0aW9uIGNhbiBhbHNvIGJlIGZvdW5kIG9uIHRoZSBJbWFnZU1hZ2ljayB3ZWJzaXRlOgpodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZy8uCgoKJXBhY2thZ2UgcGVybApTdW1tYXJ5OiBJbWFnZU1hZ2ljayBwZXJsIGJpbmRpbmdzCkdyb3VwOiBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzClJlcXVpcmVzOiAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9ClJlcXVpcmVzOiBwZXJsKDpNT0RVTEVfQ09NUEFUXyUoZXZhbCAiYCV7X19wZXJsfSAtVjp2ZXJzaW9uYCI7IGVjaG8gJHZlcnNpb24pKQoKCiVkZXNjcmlwdGlvbiBwZXJsClBlcmwgYmluZGluZ3MgdG8gSW1hZ2VNYWdpY2suCgpJbnN0YWxsIEltYWdlTWFnaWNrLXBlcmwgaWYgeW91IHdhbnQgdG8gdXNlIGFueSBwZXJsIHNjcmlwdHMgdGhhdCB1c2UKSW1hZ2VNYWdpY2suCgoKJXBhY2thZ2UgYysrClN1bW1hcnk6IEltYWdlTWFnaWNrIE1hZ2ljaysrIGxpYnJhcnkgKEMrKyBiaW5kaW5ncykKR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKUmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KCiVkZXNjcmlwdGlvbiBjKysKVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBNYWdpY2srKyBsaWJyYXJ5LCBhIEMrKyBiaW5kaW5nIHRvIHRoZSBJbWFnZU1hZ2ljawpncmFwaGljcyBtYW5pcHVsYXRpb24gbGlicmFyeS4KCkluc3RhbGwgSW1hZ2VNYWdpY2stYysrIGlmIHlvdSB3YW50IHRvIHVzZSBhbnkgYXBwbGljYXRpb25zIHRoYXQgdXNlIE1hZ2ljaysrLgoKCiVwYWNrYWdlIGMrKy1kZXZlbApTdW1tYXJ5OiBDKysgYmluZGluZ3MgZm9yIHRoZSBJbWFnZU1hZ2ljayBsaWJyYXJ5Ckdyb3VwOiBEZXZlbG9wbWVudC9MaWJyYXJpZXMKUmVxdWlyZXM6ICV7bmFtZX0tYysrID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9ClJlcXVpcmVzOiAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CgolZGVzY3JpcHRpb24gYysrLWRldmVsCkltYWdlTWFnaWNrLWRldmVsIGNvbnRhaW5zIHRoZSBzdGF0aWMgbGlicmFyaWVzIGFuZCBoZWFkZXIgZmlsZXMgeW91J2xsCm5lZWQgdG8gZGV2ZWxvcCBJbWFnZU1hZ2ljayBhcHBsaWNhdGlvbnMgdXNpbmcgdGhlIE1hZ2ljaysrIEMrKyBiaW5kaW5ncy4KSW1hZ2VNYWdpY2sgaXMgYW4gaW1hZ2UgbWFuaXB1bGF0aW9uIHByb2dyYW0uCgpJZiB5b3Ugd2FudCB0byBjcmVhdGUgYXBwbGljYXRpb25zIHRoYXQgd2lsbCB1c2UgTWFnaWNrKysgY29kZQpvciBBUElzLCB5b3UnbGwgbmVlZCB0byBpbnN0YWxsIEltYWdlTWFnaWNrLWMrKy1kZXZlbCwgSW1hZ2VNYWdpY2stZGV2ZWwgYW5kCkltYWdlTWFnaWNrLgoKWW91IGRvbid0IG5lZWQgdG8gaW5zdGFsbCBpdCBpZiB5b3UganVzdCB3YW50IHRvIHVzZSBJbWFnZU1hZ2ljaywgb3IgaWYgeW91CndhbnQgdG8gZGV2ZWxvcC9jb21waWxlIGFwcGxpY2F0aW9ucyB1c2luZyB0aGUgSW1hZ2VNYWdpY2sgQyBpbnRlcmZhY2UsCmhvd2V2ZXIuCgoKJXByZXAKJXNldHVwIC1xIC1uICV7bmFtZX0tJXtWRVJTSU9OfS0le1BhdGNobGV2ZWx9CnNlZCAtaSAncy9saWJsdGRsLmxhL2xpYmx0ZGwuc28vZycgY29uZmlndXJlCmljb252IC1mIElTTy04ODU5LTEgLXQgVVRGLTggUkVBRE1FLnR4dCA+IFJFQURNRS50eHQudG1wCnRvdWNoIC1yIFJFQURNRS50eHQgUkVBRE1FLnR4dC50bXAKbXYgUkVBRE1FLnR4dC50bXAgUkVBRE1FLnR4dAojIGZvciAlJWRvYwpta2RpciBNYWdpY2srKy9leGFtcGxlcwpjcCAtcCBNYWdpY2srKy9kZW1vLyouY3BwIE1hZ2ljaysrL2RlbW8vKi5taWZmIE1hZ2ljaysrL2V4YW1wbGVzCgolYnVpbGQKJWNvbmZpZ3VyZSAtLWVuYWJsZS1zaGFyZWQgXAogICAgICAgICAgIC0tZGlzYWJsZS1zdGF0aWMgXAogICAgICAgICAgIC0td2l0aC1tb2R1bGVzIFwKICAgICAgICAgICAtLXdpdGgtcGVybCBcCiAgICAgICAgICAgLS13aXRoLXggXAogICAgICAgICAgIC0td2l0aC10aHJlYWRzIFwKICAgICAgICAgICAtLXdpdGgtbWFnaWNrX3BsdXNfcGx1cyBcCiAgICAgICAgICAgLS13aXRoLWdzbGliIFwKICAgICAgICAgICAtLXdpdGgtd21mIFwKICAgICAgICAgICAtLXdpdGgtbGNtcyBcCiAgICAgICAgICAgLS13aXRoLXJzdmcgXAogICAgICAgICAgIC0td2l0aC14bWwgXAogICAgICAgICAgIC0td2l0aC1wZXJsLW9wdGlvbnM9IklOU1RBTExESVJTPXZlbmRvciAlez9wZXJsX3ByZWZpeH0gQ0M9JyVfX2NjIC1MJFBXRC9tYWdpY2svLmxpYnMnIExERExGTEFHUz0nLXNoYXJlZCAtTCRQV0QvbWFnaWNrLy5saWJzJyIgXAogICAgICAgICAgIC0td2l0aG91dC1kcHMgXAogICAgICAgICAgIC0td2l0aG91dC1pbmNsdWRlZC1sdGRsIC0td2l0aC1sdGRsLWluY2x1ZGU9JXtfaW5jbHVkZWRpcn0gXAogICAgICAgICAgIC0td2l0aC1sdGRsLWxpYj0le19saWJkaXJ9CiMgRGlzYWJsZSBycGF0aApzZWQgLWkgJ3N8XmhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Lip8aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0iInxnJyBsaWJ0b29sCnNlZCAtaSAnc3xecnVucGF0aF92YXI9TERfUlVOX1BBVEh8cnVucGF0aF92YXI9RElFX1JQQVRIX0RJRXxnJyBsaWJ0b29sCiMgRG8gKk5PVCogdXNlICUlez9fc21wX21mbGFnc30sIHRoaXMgY2F1c2VzIFBlcmxNYWdpY2sgdG8gYmUgc2lsZW50bHkgbWlzYnVpbGQKbWFrZQoKCiVpbnN0YWxsCnJtIC1yZiAle2J1aWxkcm9vdH0KCm1ha2UgaW5zdGFsbCBERVNURElSPSV7YnVpbGRyb290fSBJTlNUQUxMPSJpbnN0YWxsIC1wIgpjcCAtYSB3d3cvc291cmNlICV7YnVpbGRyb290fSV7X2RhdGFkaXJ9L2RvYy8le25hbWV9CnJtICV7YnVpbGRyb290fSV7X2xpYmRpcn0vKi5sYQoKIyBmaXggd2VpcmQgcGVybCBNYWdpY2suc28gcGVybWlzc2lvbnMKY2htb2QgNzU1ICV7YnVpbGRyb290fSV7cGVybF92ZW5kb3JhcmNofS9hdXRvL0ltYWdlL01hZ2ljay9NYWdpY2suc28KCiMgcGVybG1hZ2ljazogZml4IHBlcmwgcGF0aCBvZiBkZW1vIGZpbGVzCiV7X19wZXJsfSAtTUV4dFV0aWxzOjpNYWtlTWFrZXIgLWUgJ01ZLT5maXhpbihAQVJHViknIFBlcmxNYWdpY2svZGVtby8qLnBsCgojIHBlcmxtYWdpY2s6IGNsZWFudXAgdmFyaW91cyBwZXJsIHRlbXBmaWxlcyBmcm9tIHRoZSBidWlsZCB3aGljaCBnZXQgaW5zdGFsbGVkCmZpbmQgJXtidWlsZHJvb3R9IC1uYW1lICIqLmJzIiB8eGFyZ3Mgcm0gLWYKZmluZCAle2J1aWxkcm9vdH0gLW5hbWUgIi5wYWNrbGlzdCIgfHhhcmdzIHJtIC1mCmZpbmQgJXtidWlsZHJvb3R9IC1uYW1lICJwZXJsbG9jYWwucG9kIiB8eGFyZ3Mgcm0gLWYKCiMgcGVybG1hZ2ljazogYnVpbGQgZmlsZXMgbGlzdAplY2hvICIlZGVmYXR0cigtLHJvb3Qscm9vdCwtKSIgPiBwZXJsLXBrZy1maWxlcwpmaW5kICV7YnVpbGRyb290fS8le19saWJkaXJ9L3BlcmwqIC10eXBlIGYgLXByaW50IFwKICAgICAgICB8IHNlZCAic0BeJXtidWlsZHJvb3R9QEBnIiA+IHBlcmwtcGtnLWZpbGVzIApmaW5kICV7YnVpbGRyb290fSV7cGVybF92ZW5kb3JhcmNofSAtdHlwZSBkIC1wcmludCBcCiAgICAgICAgfCBzZWQgInNAXiV7YnVpbGRyb290fUAlZGlyIEBnIiBcCiAgICAgICAgfCBncmVwIC12ICdeJWRpciAle3BlcmxfdmVuZG9yYXJjaH0kJyBcCiAgICAgICAgfCBncmVwIC12ICcvYXV0byQnID4+IHBlcmwtcGtnLWZpbGVzIAppZiBbIC16IHBlcmwtcGtnLWZpbGVzIF0gOyB0aGVuCiAgICBlY2hvICJFUlJPUjogRU1QVFkgRklMRSBMSVNUIgogICAgZXhpdCAtMQpmaQoKIyBmaXggbXVsdGlsaWIgaXNzdWVzCiVpZmFyY2ggeDg2XzY0IHMzOTB4IGlhNjQgcHBjNjQgYWxwaGEgc3BhcmM2NAolZGVmaW5lIHdvcmRzaXplIDY0CiVlbHNlCiVkZWZpbmUgd29yZHNpemUgMzIKJWVuZGlmCgptdiAle2J1aWxkcm9vdH0le19pbmNsdWRlZGlyfS8le25hbWV9L21hZ2ljay9tYWdpY2stY29uZmlnLmggXAogICAle2J1aWxkcm9vdH0le19pbmNsdWRlZGlyfS8le25hbWV9L21hZ2ljay9tYWdpY2stY29uZmlnLSV7d29yZHNpemV9LmgKCmNhdCA+JXtidWlsZHJvb3R9JXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9tYWdpY2svbWFnaWNrLWNvbmZpZy5oIDw8RU9GCiNpZm5kZWYgSU1BR0VNQUdJQ0tfTVVMVElMSUIKI2RlZmluZSBJTUFHRU1BR0lDS19NVUxUSUxJQgoKI2luY2x1ZGUgPGJpdHMvd29yZHNpemUuaD4KCiNpZiBfX1dPUkRTSVpFID09IDMyCiMgaW5jbHVkZSAibWFnaWNrLWNvbmZpZy0zMi5oIgojZWxpZiBfX1dPUkRTSVpFID09IDY0CiMgaW5jbHVkZSAibWFnaWNrLWNvbmZpZy02NC5oIgojZWxzZQojIGVycm9yICJ1bmV4cGVjdGVkIHZhbHVlIGZvciBfX1dPUkRTSVpFIG1hY3JvIgojZW5kaWYKCiNlbmRpZgpFT0YKCiVjbGVhbgpybSAtcmYgJXtidWlsZHJvb3R9CgolcG9zdCAtcCAvc2Jpbi9sZGNvbmZpZwoKJXBvc3QgYysrIC1wIC9zYmluL2xkY29uZmlnCgolcG9zdHVuIC1wIC9zYmluL2xkY29uZmlnCgolcG9zdHVuIGMrKyAtcCAvc2Jpbi9sZGNvbmZpZwoKJWZpbGVzCiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiVkb2MgUXVpY2tTdGFydC50eHQgQ2hhbmdlTG9nIFBsYXRmb3Jtcy50eHQKJWRvYyBSRUFETUUudHh0IExJQ0VOU0UgTk9USUNFIEFVVEhPUlMudHh0IE5FV1MudHh0CiV7X2xpYmRpcn0vbGliTWFnaWNrQ29yZS5zbyoKJXtfbGliZGlyfS9saWJNYWdpY2tXYW5kLnNvKgole19saWJkaXJ9LyV7bmFtZX0tJXtWRVJTSU9OfQole19iaW5kaXJ9L1thLXpdKgole19zeXNjb25mZGlyfS8le25hbWV9CiV7X2xpYmRpcn0vJXtuYW1lfS0le1ZFUlNJT059CiV7X2RhdGFkaXJ9LyV7bmFtZX0tJXtWRVJTSU9OfQole19tYW5kaXJ9L21hblsxNDVdL1thLXpBLVpdKgole19tYW5kaXJ9L21hbjEvJXtuYW1lfS4qCiVleGNsdWRlICV7X2xpYmRpcn0vJXtuYW1lfS0le1ZFUlNJT059L21vZHVsZXMtUTE2L2NvZGVycy9kanZ1LioKCgolZmlsZXMgZGV2ZWwKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJXtfYmluZGlyfS9NYWdpY2tDb3JlLWNvbmZpZwole19iaW5kaXJ9L01hZ2lja1dhbmQtY29uZmlnCiV7X2xpYmRpcn0vbGliTWFnaWNrQ29yZS5zbyoKJXtfbGliZGlyfS9saWJNYWdpY2tXYW5kLnNvKgole19saWJkaXJ9L3BrZ2NvbmZpZy9NYWdpY2tDb3JlLnBjCiV7X2xpYmRpcn0vcGtnY29uZmlnL0ltYWdlTWFnaWNrLnBjCiV7X2xpYmRpcn0vcGtnY29uZmlnL01hZ2lja1dhbmQucGMKJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9CiV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vTWFnaWNrQ29yZQole19pbmNsdWRlZGlyfS8le25hbWV9L01hZ2lja1dhbmQKJXtfbWFuZGlyfS9tYW4xL01hZ2lja0NvcmUtY29uZmlnLioKJXtfbWFuZGlyfS9tYW4xL01hZ2lja1dhbmQtY29uZmlnLioKCiVmaWxlcyBkanZ1CiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiV7X2xpYmRpcn0vJXtuYW1lfS0le3ZlcnNpb259L21vZHVsZXMtUTE2L2NvZGVycy9kanZ1LioKCiVmaWxlcyBkb2MKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJWRvYyAle19kYXRhZGlyfS9kb2MvJXtuYW1lfQolZG9jIExJQ0VOU0UKCiVmaWxlcyBjKysKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJWRvYyBNYWdpY2srKy9BVVRIT1JTIE1hZ2ljaysrL0NoYW5nZUxvZyBNYWdpY2srKy9ORVdTIE1hZ2ljaysrL1JFQURNRQolZG9jIHd3dy9NYWdpY2srKy9DT1BZSU5HCiV7X2xpYmRpcn0vbGliTWFnaWNrKysuc28qCgolZmlsZXMgYysrLWRldmVsCiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiVkb2MgTWFnaWNrKysvZXhhbXBsZXMKJXtfYmluZGlyfS9NYWdpY2srKy1jb25maWcKJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9NYWdpY2srKwole19pbmNsdWRlZGlyfS8le25hbWV9L01hZ2ljaysrLmgKJXtfbGliZGlyfS9saWJNYWdpY2srKy5zbyoKJXtfbGliZGlyfS9wa2djb25maWcvTWFnaWNrKysucGMKJXtfbGliZGlyfS9wa2djb25maWcvSW1hZ2VNYWdpY2srKy5wYwole19tYW5kaXJ9L21hbjEvTWFnaWNrKystY29uZmlnLioKCiVmaWxlcyBwZXJsIC1mIHBlcmwtcGtnLWZpbGVzCiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiV7X21hbmRpcn0vbWFuMy8qCiVkb2MgUGVybE1hZ2ljay9kZW1vLyBQZXJsTWFnaWNrL0NoYW5nZWxvZyBQZXJsTWFnaWNrL1JFQURNRS50eHQKCgolY2hhbmdlbG9nCiogU3VuIE1heSAwMSAyMDA1IENyaXN0eSA8Y3Jpc3R5QG15c3RpYy5lcy5kdXBvbnQuY29tPiAxLjAtMAotICBQb3J0IG9mIFJlZGhhdCdzIFJQTSBzY3JpcHQgdG8gc3VwcG9ydCBJbWFnZU1hZ2ljay4K