ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggMzRiNWIzOS4uYTNkY2FmMCAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsMjUgKzEsMzAgQEAKIAotTGlicG5nIDEuMC44IC0gSnVseSAyNCwgMjAwMAorTGlicG5nIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMAogCiBUaGlzIGlzIGEgcHVibGljIHJlbGVhc2Ugb2YgbGlicG5nLCBpbnRlbmRlZCBmb3IgdXNlIGluIHByb2R1Y3Rpb24gY29kZXMuCiAKLUNoYW5nZXMgc2luY2UgdGhlIGxhc3QgcHVibGljIHJlbGVhc2UgKDEuMC43KToKK0NoYW5nZXMgc2luY2UgdGhlIGxhc3QgcHVibGljIHJlbGVhc2UgKDEuMC44KToKIAotICBBZGRlZCBwbmdfZnJlZShwbmdfcHRyLCBrZXkpIHR3byBwbGFjZXMgaW4gcG5ncHJlYWQuYyB0byBzdG9wIG1lbW9yeSBsZWFrcy4KLSAgQ2hhbmdlZCBQTkdfTk9fU1RESU8gdG8gUE5HX05PX0NPTlNPTEVfSU8sIHNldmVyYWwgcGxhY2VzIGluIHBuZ3J1dGlsLmMgYW5kCi0gICAgIHBuZ3d1dGlsLmMuCi0gIENoYW5nZWQgUE5HX0VYUE9SVF9WQVIgdG8gdXNlIFBOR19JTVBFWFAsIGluIHBuZ2NvbmYuaC4KLSAgUmVtb3ZlZCB1bnVzZWQgIiNpbmNsdWRlIDxhc3NlcnQuaD4iIGZyb20gcG5nLmMKLSAgQWRkZWQgV2luZG93c0NFIHN1cHBvcnQuCi0gIFJldmlzZWQgcG5nZ2NjcmQuYyB0byB3b3JrIHdpdGggZ2NjLTIuOTUuMiBhbmQgaW4gdGhlIEN5Z3dpbiBlbnZpcm9ubWVudC4KLSAgT25seSBzZXQgdGhlIFBOR19GTEFHX0ZSRUVfVFJOUyBvciBQTkdfRlJFRV9UUk5TIGZsYWcgaW4gcG5nX2hhbmRsZV90Uk5TKCkKLSAgICAgZm9yIGluZGV4ZWQtY29sb3IgaW5wdXQgZmlsZXMgdG8gYXZvaWQgcG90ZW50aWFsIGRvdWJsZS1mcmVlaW5nIHRyYW5zIGFycmF5Ci0gICAgIHVuZGVyIHNvbWUgdW51c3VhbCBjb25kaXRpb25zOyBwcm9ibGVtIHdhcyBpbnRyb2R1Y2VkIGluIHZlcnNpb24gMS4wLjcuCi0gIEFkZGVkIHRoZSBmaWxlcyBwbmdiYXIucG5nIGFuZCBwbmdiYXIuanBnIHRvIHRoZSBkaXN0cmlidXRpb24uCi0gIEFkZGVkIGN5Z3dpbiBzdWJkaXJlY3RvcnksIG1ha2VmaWxlLmN5Z3dpbiwgYW5kIGN5Z3dpbiBzdXBwb3J0IGluIHBuZ2NvbmYuaAotICBBZGRlZCBQTkdfTk9fWkFMTE9DX1pFUk8gbWFjcm8gKG1ha2VzIHBuZ196YWxsb2Mgc2tpcCB6ZXJvaW5nIG1lbW9yeSkKLSAgUmV2aXNlZCBwbmdfZGVidWcoKSBtYWNyb3MgYW5kIHN0YXRlbWVudHMgdG8gZWxpbWluYXRlIGNvbXBpbGVyIHdhcm5pbmdzLgotICBVcGRhdGVkIG1ha2VmaWxlLmhwdXggdG8gYnVpbGQgYSBzaGFyZWQgbGlicmFyeS4KKyAgRml4ZWQgdHlwbyBpbiBzY3JpcHRzL21ha2VmaWxlLmhwdXgKKyAgRml4ZWQgc2VxZW5jZS1wb2ludCBidWcgaW4gY29udHJpYi9wbmdtaW51cy9wbmcycG5tIChNYXJ0aW4gWmluc2VyKQorICBVcGRhdGVkIG1ha2V2bXMuY29tIGluIHNjcmlwdHMgYW5kIGNvbnRyaWIvKiBhbmQgY29udHJpYi8qIChNYXJ0aW4gWmluc2VyKQorICBDaGFuZ2VkICJjZHJvbS5jb20iIGluIGRvY3VtZW50YXRpb24gdG8gImxpYnBuZy5vcmciCisgIFJldmlzZWQgcG5nZ2NjcmQuYyB0byBnZXQgaXQgYWxsIHdvcmtpbmcsIGFuZCB1cGRhdGVkIG1ha2VmaWxlLmdjbW14IChHcmVnKS4KKyAgQ2hhbmdlZCB0eXBlIG9mICJwYXJhbXMiIGZyb20gdm9pZHAgdG8gcG5nX3ZvaWRwIGluIHBuZ19yZWFkfHdyaXRlX3BuZygpLgorICBBZGRlZCBNTkdfRVhURU5TSU9OU19TVVBQT1JURUQgbWFjcm8gYW5kIHN1cHBvcnQgZm9yIHNvbWUgcHJvcG9zZWQgTU5HCisgICAgIGZlYXR1cmVzLCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4KKyAgTWFrZSBzdXJlIFBOR0FQSSBhbmQgUE5HX0lNUEVYUCBhcmUgZGVmaW5lZCBpbiBwbmdjb25mLmguCisgIFJldmlzZWQgdGhlIDMgaW5zdGFuY2VzIG9mIFdSSVRFRklMRSBpbiBwbmd0ZXN0LmMuCisgIFJlbG9jYXRlZCAibXN2YyIgYW5kICJ3aW5jZSIgcHJvamVjdCBzdWJkaXJlY3RvcmllcyBpbnRvICJkbGwiIHN1YmRpcmVjdG9yeS4KKyAgVXBkYXRlZCBwbmcucmMgaW4gZGxsL21zdmMgcHJvamVjdAorICBSZXZpc2VkIG1ha2VmaWxlLmRlYyB0byBkZWZpbmUgYW5kIHVzZSBMSUJQQVRIIGFuZCBJTkNQQVRICisgIEluY3JlYXNlZCBzaXplIG9mIGdsb2JhbCBwbmdfbGlicG5nX3ZlcltdIGFycmF5IGZyb20gMTIgdG8gMTggY2hhcnMuCisgIE1hZGUgZ2xvYmFsIHBuZ19saWJwbmdfdmVyW10sIHBuZ19zaWdbXSBhbmQgcG5nX3Bhc3NfKltdIGFycmF5cyBjb25zdC4KKyAgUmVtb3ZlZCBkdXBsaWNhdGUgcG5nX2NyY19maW5pc2goKSBmcm9tIHBuZ19oYW5kbGVfYktHRCgpIGZ1bmN0aW9uLgorICBBZGRlZCBhIHdhcm5pbmcgd2hlbiBhcHBsaWNhdGlvbiBjYWxscyBwbmdfcmVhZF91cGRhdGVfaW5mbygpIG11bHRpcGxlIHRpbWVzLgorICBSZXZpc2VkIG1ha2VmaWxlLmN5Z3dpbgorICBGaXhlZCBidWdzIGluIGlDQ1Agc3VwcG9ydCBpbiBwbmdydXRpbC5jIGFuZCBwbmd3dXRpbC5jLgorICBSZXBsYWNlZCBwbmdfc2V0X2VtcHR5X3BsdGVfcGVybWl0dGVkKCkgd2l0aCBwbmdfcGVybWl0X21uZ19mZWF0dXJlcygpLgogCiBTZW5kIGNvbW1lbnRzL2NvcnJlY3Rpb25zL2NvbW1lbmRhdGlvbnMgdG8KIHBuZy1pbXBsZW1lbnRAY2NyYy53dXN0bC5lZHUgb3IgdG8gcmFuZGVnQGFsdW0ucnBpLmVkdQpkaWZmIC0tZ2l0IGEvQ0hBTkdFUyBiL0NIQU5HRVMKaW5kZXggMWU0NDM0NC4uMjUxOWMyNyAxMDA2NDQKLS0tIGEvQ0hBTkdFUworKysgYi9DSEFOR0VTCkBAIC03NzgsNyArNzc4LDggQEAKICAgQWRkZWQgYSBjaGVjayBmb3Igb3Zlcmxlbmd0aCBQTFRFIGNodW5rIGluIHBuZ3J1dGlsLmMuCiAgIEFkZGVkIFBOR19OT19QT0lOVEVSX0lOREVYSU5HIG1hY3JvIHRvIHVzZSBhcnJheS1pbmRleGluZyBpbnN0ZWFkIG9mIHBvaW50ZXIKICAgICBpbmRleGluZyBpbiBwbmdydXRpbC5jIGFuZCBwbmd3dXRpbC5jIHRvIGFjY29tbW9kYXRlIGEgYnVnZ3kgY29tcGlsZXIuCi0gIEFkZGVkIGEgd2FybmluZyBpbiBwbmdfZGVjb21wcmVzc19jaHVuaygpIHdoZW4gaXQgcnVucyBvdXQgb2YgZGF0YS4KKyAgQWRkZWQgYSB3YXJuaW5nIGluIHBuZ19kZWNvbXByZXNzX2NodW5rKCkgd2hlbiBpdCBydW5zIG91dCBvZiBkYXRhLCBlLmcuCisgICAgd2hlbiBpdCB0cmllcyB0byByZWFkIGFuIGVycm9uZW91cyBQaG90b1Nob3AgaUNDUCBjaHVuay4KICAgQWRkZWQgUE5HX1VTRV9ETEwgbWFjcm8uCiAgIFJldmlzZWQgdGhlIGNvcHlyaWdodC9kaXNjbGFpbWVyL2xpY2Vuc2Ugbm90aWNlLgogICBBZGRlZCBjb250cmliL21zdmN0ZXN0IGRpcmVjdG9yeQpAQCAtNzk3LDcgKzc5OCw3IEBACiAgIEZpeGVkICJESkJQUCIgdHlwbyBpbiBwbmdnY2NyZC5jIGludHJvZHVjZWQgaW4gYmV0YTE4LgogdmVyc2lvbiAxLjAuNyBbSnVseSAxLCAyMDAwXQogICBSZXZpc2VkIHRoZSBkZWZpbml0aW9uIG9mICJ0cmFuc192YWx1ZXMiIGluIGxpYnBuZy4zL2xpYnBuZy50eHQKLXZlcnNpb24gMS4wLjggW0p1bHkgMjQsIDIwMDBdCit2ZXJzaW9uIDEuMC45YmV0YTEgW05vdmVtYmVyIDEwLCAyMDAwXQogdmVyc2lvbiAxLjAuOGJldGExIFtKdWx5IDgsIDIwMDBdCiAgIEFkZGVkIHBuZ19mcmVlKHBuZ19wdHIsIGtleSkgdHdvIHBsYWNlcyBpbiBwbmdwcmVhZC5jIHRvIHN0b3AgbWVtb3J5IGxlYWtzLgogICBDaGFuZ2VkIFBOR19OT19TVERJTyB0byBQTkdfTk9fQ09OU09MRV9JTywgc2V2ZXJhbCBwbGFjZXMgaW4gcG5ncnV0aWwuYyBhbmQKQEAgLTgxNiwxMyArODE3LDMyIEBACiAgIEZ1cnRoZXIgcmV2aXNpb25zIHRvIHBuZ3Rlc3QuYyBhbmQgZmlsZXMgaW4gdGhlIHdpbmNlIHN1YmRpcmVjdG9yeS4KIHZlcnNpb24gMS4wLjhiZXRhNCBbSnVseSAxNCwgMjAwMF0KICAgQWRkZWQgdGhlIGZpbGVzIHBuZ2Jhci5wbmcgYW5kIHBuZ2Jhci5qcGcgdG8gdGhlIGRpc3RyaWJ1dGlvbi4KLSAgQWRkZWQgY3lnd2luIHN1YmRpcmVjdG9yeSwgbWFrZWZpbGUuY3lnd2luLCBhbmQgY3lnd2luIHN1cHBvcnQgaW4gcG5nY29uZi5oCisgIEFkZGVkIG1ha2VmaWxlLmN5Z3dpbiwgYW5kIGN5Z3dpbiBzdXBwb3J0IGluIHBuZ2NvbmYuaAogICBBZGRlZCBQTkdfTk9fWkFMTE9DX1pFUk8gbWFjcm8gKG1ha2VzIHBuZ196YWxsb2Mgc2tpcCB6ZXJvaW5nIG1lbW9yeSkKIHZlcnNpb24gMS4wLjhyYzEgW0p1bHkgMTYsIDIwMDBdCiAgIFJldmlzZWQgcG5nX2RlYnVnKCkgbWFjcm9zIGFuZCBzdGF0ZW1lbnRzIHRvIGVsaW1pbmF0ZSBjb21waWxlciB3YXJuaW5ncy4KIHZlcnNpb24gMS4wLjggW0p1bHkgMjQsIDIwMDBdCiAgIEFkZGVkIHBuZ19mbHVzaCgpIGluIHBuZ3dyaXRlLmMsIGFmdGVyIHBuZ193cml0ZV9JRU5EKCkuCiAgIFVwZGF0ZWQgbWFrZWZpbGUuaHB1eCB0byBidWlsZCBhIHNoYXJlZCBsaWJyYXJ5LgordmVyc2lvbiAxLjAuOWJldGExIFtOb3ZlbWJlciAxMCwgMjAwMF0KKyAgRml4ZWQgdHlwbyBpbiBzY3JpcHRzL21ha2VmaWxlLmhwdXgKKyAgVXBkYXRlZCBtYWtldm1zLmNvbSBpbiBzY3JpcHRzIGFuZCBjb250cmliLyogYW5kIGNvbnRyaWIvKiAoTWFydGluIFppbnNlcikKKyAgRml4ZWQgc2VxZW5jZS1wb2ludCBidWcgaW4gY29udHJpYi9wbmdtaW51cy9wbmcycG5tIChNYXJ0aW4gWmluc2VyKQorICBDaGFuZ2VkICJjZHJvbS5jb20iIGluIGRvY3VtZW50YXRpb24gdG8gImxpYnBuZy5vcmciCisgIFJldmlzZWQgcG5nZ2NjcmQuYyB0byBnZXQgaXQgYWxsIHdvcmtpbmcsIGFuZCB1cGRhdGVkIG1ha2VmaWxlLmdjbW14IChHcmVnKS4KKyAgQ2hhbmdlZCB0eXBlIG9mICJwYXJhbXMiIGZyb20gdm9pZHAgdG8gcG5nX3ZvaWRwIGluIHBuZ19yZWFkfHdyaXRlX3BuZygpLgorICBNYWtlIHN1cmUgUE5HQVBJIGFuZCBQTkdfSU1QRVhQIGFyZSBkZWZpbmVkIGluIHBuZ2NvbmYuaC4KKyAgUmV2aXNlZCB0aGUgMyBpbnN0YW5jZXMgb2YgV1JJVEVGSUxFIGluIHBuZ3Rlc3QuYy4KKyAgUmVsb2NhdGVkICJtc3ZjIiBhbmQgIndpbmNlIiBwcm9qZWN0IHN1YmRpcmVjdG9yaWVzIGludG8gImRsbCIgc3ViZGlyZWN0b3J5LgorICBVcGRhdGVkIHBuZy5yYyBpbiBkbGwvbXN2YyBwcm9qZWN0CisgIFJldmlzZWQgbWFrZWZpbGUuZGVjIHRvIGRlZmluZSBhbmQgdXNlIExJQlBBVEggYW5kIElOQ1BBVEgKKyAgSW5jcmVhc2VkIHNpemUgb2YgZ2xvYmFsIHBuZ19saWJwbmdfdmVyW10gYXJyYXkgZnJvbSAxMiB0byAxOCBjaGFycy4KKyAgTWFkZSBnbG9iYWwgcG5nX2xpYnBuZ192ZXJbXSwgcG5nX3NpZ1tdIGFuZCBwbmdfcGFzc18qW10gYXJyYXlzIGNvbnN0LgorICBSZW1vdmVkIGR1cGxpY2F0ZSBwbmdfY3JjX2ZpbmlzaCgpIGZyb20gcG5nX2hhbmRsZV9iS0dEKCkgZnVuY3Rpb24uCisgIEFkZGVkIGEgd2FybmluZyB3aGVuIGFwcGxpY2F0aW9uIGNhbGxzIHBuZ19yZWFkX3VwZGF0ZV9pbmZvKCkgbXVsdGlwbGUgdGltZXMuCisgIFJldmlzZWQgbWFrZWZpbGUuY3lnd2luCisgIEZpeGVkIGJ1Z3MgaW4gaUNDUCBzdXBwb3J0IGluIHBuZ3J1dGlsLmMgYW5kIHBuZ3d1dGlsLmMuCisgIFJlcGxhY2VkIHBuZ19zZXRfZW1wdHlfcGx0ZV9wZXJtaXR0ZWQoKSB3aXRoIHBuZ19wZXJtaXRfbW5nX2ZlYXR1cmVzKCkuCiAKIFNlbmQgY29tbWVudHMvY29ycmVjdGlvbnMvY29tbWVuZGF0aW9ucyB0bwogcG5nLWltcGxlbWVudEBjY3JjLnd1c3RsLmVkdSBvciB0byByYW5kZWdAYWx1bS5ycGkuZWR1CmRpZmYgLS1naXQgYS9JTlNUQUxMIGIvSU5TVEFMTAppbmRleCA4NjlkODEwLi5jMzU5NDhhIDEwMDY0NAotLS0gYS9JTlNUQUxMCisrKyBiL0lOU1RBTEwKQEAgLTEsNSArMSw1IEBACiAKLUluc3RhbGxpbmcgbGlicG5nIHZlcnNpb24gMS4wLjggLSBKdWx5IDI0LCAyMDAwCitJbnN0YWxsaW5nIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMAogCiBCZWZvcmUgaW5zdGFsbGluZyBsaWJwbmcsIHlvdSBtdXN0IGZpcnN0IGluc3RhbGwgemxpYi4gIHpsaWIKIGNhbiB1c3VhbGx5IGJlIGZvdW5kIHdoZXJldmVyIHlvdSBnb3QgbGlicG5nLiAgemxpYiBjYW4gYmUKQEAgLTEwLDcgKzEwLDcgQEAKIHZlcnNpb24gb2YgemxpYiB0aGF0J3MgaW5zdGFsbGVkLgogCiBZb3UgY2FuIHJlbmFtZSB0aGUgZGlyZWN0b3JpZXMgdGhhdCB5b3UgZG93bmxvYWRlZCAodGhleQotbWlnaHQgYmUgY2FsbGVkICJsaWJwbmctMS4wLjgiIG9yICJscG5nMTA3IiBhbmQgInpsaWItMS4xLjMiCittaWdodCBiZSBjYWxsZWQgImxpYnBuZy0xLjAuOWJldGExIiBvciAibHBuZzEwOSIgYW5kICJ6bGliLTEuMS4zIgogb3IgInpsaWIxMTMiKSBzbyB0aGF0IHlvdSBoYXZlIGRpcmVjdG9yaWVzIGNhbGxlZCAiemxpYiIgYW5kICJsaWJwbmciLgogCiBZb3VyIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgc2hvdWxkIGxvb2sgbGlrZSB0aGlzOgpAQCAtMjcsMTEgKzI3LDEyIEBACiAgICAgICAgICAgICAgcG5nbWludXMKICAgICAgICAgICAgICBwbmdzdWl0ZQogICAgICAgICAgICAgIHZpc3VwbmcKLSAgICAgICAgICBtc3ZjCisgICAgICAgICAgZGxsCisgICAgICAgICAgICAgbXN2YworICAgICAgICAgICAgIHdpbmNlCiAgICAgICAgICAgc2NyaXB0cwogICAgICAgICAgICAgIG1ha2VmaWxlLioKICAgICAgICAgICBwbmd0ZXN0LnBuZwotICAgICAgICAgIHdpbmNlCiAgICAgICAgICAgZXRjLgogICAgICAgemxpYgogICAgICAgICAgIFJFQURNRQpAQCAtNTcsMjIgKzU4LDIzIEBACiBpbmNsdWRlCiAKICBtYWtlZmlsZS5zdGQgICAgICA9PiAgR2VuZXJpYyBVTklYIG1ha2VmaWxlIChjYywgY3JlYXRlcyBzdGF0aWMgbGlicG5nLmEpCi0gbWFrZWZpbGUubGludXggICAgPT4gIExpbnV4L0VMRiBtYWtlZmlsZSAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC44KQotIG1ha2VmaWxlLmdjbW14ICAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOCwKKyBtYWtlZmlsZS5saW51eCAgICA9PiAgTGludXgvRUxGIG1ha2VmaWxlIChnY2MsIGNyZWF0ZXMgbGlicG5nLnNvLjIuMS4wLjliZXRhMSkKKyBtYWtlZmlsZS5nY21teCAgICA9PiAgTGludXgvRUxGIG1ha2VmaWxlIChnY2MsIGNyZWF0ZXMgbGlicG5nLnNvLjIuMS4wLjliZXRhMSwKICAgICAgICAgICAgICAgICAgICAgICAgdXNlcyBhc3NlbWJsZXIgY29kZSB0dW5lZCBmb3IgSW50ZWwgTU1YIHBsYXRmb3JtKQogIG1ha2VmaWxlLmdjYyAgICAgID0+ICBHZW5lcmljIG1ha2VmaWxlIChnY2MsIGNyZWF0ZXMgc3RhdGljIGxpYnBuZy5hKQogIG1ha2VmaWxlLmtuciAgICAgID0+ICBBcmNoYWljIFVOSVggTWFrZWZpbGUgdGhhdCBjb252ZXJ0cyBmaWxlcyB3aXRoCiAgICAgICAgICAgICAgICAgICAgICAgIGFuc2kya25yIChSZXF1aXJlcyBhbnNpMmtuci5jIGZyb20KICAgICAgICAgICAgICAgICAgICAgICAgZnRwOi8vZnRwLmNzLndpc2MuZWR1L2dob3N0KQorIG1ha2VmaWxlLmN5Z3dpbiAgID0+ICBDeWd3aW4vZ2NjIG1ha2VmaWxlCiAgbWFrZWZpbGUuZGVjICAgICAgPT4gIERFQyBBbHBoYSBVTklYIG1ha2VmaWxlCiAgbWFrZWZpbGUuaHB1eCAgICAgPT4gIEhQVVggKDEwLjIwIGFuZCAxMS4wMCkgbWFrZWZpbGUKICBtYWtlZmlsZS5pYm1jICAgICA9PiAgSUJNIEMvQysrIHZlcnNpb24gMy54IGZvciBXaW4zMiBhbmQgT1MvMiAoc3RhdGljKQogIG1ha2VmaWxlLmludGVsICAgID0+ICBJbnRlbCBDL0MrKyB2ZXJzaW9uIDQuMCBhbmQgbGF0ZXIKICBsaWJwbmcuaWNjICAgICAgICA9PiAgUHJvamVjdCBmaWxlIGZvciBJQk0gVmlzdWFsQWdlL0MrKyB2ZXJzaW9uIDQuMCBvciBsYXRlcgogIG1ha2VmaWxlLnNnaSAgICAgID0+ICBTaWxpY29uIEdyYXBoaWNzIElSSVggbWFrZWZpbGUgKGNjLCBjcmVhdGVzIHN0YXRpYyBsaWIpCi0gbWFrZWZpbGUuc2dnY2MgICAgPT4gIFNpbGljb24gR3JhcGhpY3MgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOCkKKyBtYWtlZmlsZS5zZ2djYyAgICA9PiAgU2lsaWNvbiBHcmFwaGljcyAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC45YmV0YTEpCiAgbWFrZWZpbGUuc3Vub3MgICAgPT4gIFN1biBtYWtlZmlsZQotIG1ha2VmaWxlLnNvbGFyaXMgID0+ICBTb2xhcmlzIDIuWCBtYWtlZmlsZSAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC44KQorIG1ha2VmaWxlLnNvbGFyaXMgID0+ICBTb2xhcmlzIDIuWCBtYWtlZmlsZSAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC45YmV0YTEpCiAgbWFrZWZpbGUuc2NvICAgICAgPT4gIEZvciBTQ08gT1NyNSAgRUxGIGFuZCBVbml4d2FyZSA3IHdpdGggTmF0aXZlIGNjCiAgbWFrZWZpbGUubWlwcyAgICAgPT4gIE1JUFMgbWFrZWZpbGUKICBtYWtlZmlsZS5hY29ybiAgICA9PiAgQWNvcm4gbWFrZWZpbGUKQEAgLTEyNSw1ICsxMjcsNSBAQAogZG8gdGhhdCwgcnVuICJtYWtlIGluc3RhbGwiIGluIHRoZSB6bGliIGRpcmVjdG9yeSBmaXJzdCBpZiBuZWNlc3NhcnkpLgogCiBGdXJ0aGVyIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgUkVBRE1FIGFuZCBsaWJwbmcudHh0Ci1maWxlcywgaW4gdGhlIGluZGl2aWR1YWwgbWFrZWZpbGVzLCBpbiBwbmcuaCwgYW5kIHRoZSBtYW51YWwgcGFnZXMKLWxpYnBuZy4zIGFuZCBwbmcuNS4KK2ZpbGVzLCBpbiB0aGUgaW5kaXZpZHVhbCBtYWtlZmlsZXMsIGluIHBuZy5oLCBpbiB0aGUgUkVBRE1FIGZpbGVzIGluCitzdWJkaXJlY3RvcmllcyBvZiB0aGUgZGxsIGRpcmVjdG9yeSwgYW5kIHRoZSBtYW51YWwgcGFnZXMgbGlicG5nLjMgYW5kIHBuZy41LgpkaWZmIC0tZ2l0IGEvS05PV05CVUcgYi9LTk9XTkJVRwppbmRleCAwMTNjMDZlLi5kODc5Y2UwIDEwMDY0NAotLS0gYS9LTk9XTkJVRworKysgYi9LTk9XTkJVRwpAQCAtMSwxNSArMSwzMiBAQAogCiBLbm93biBidWdzIGFuZCBzdWdnZXN0ZWQgZW5oYW5jZW1lbnRzIGluIGxpYnBuZy0xLjAuOAogCi0xLiBKdWx5IDIsIDIwMDAgLS0gQlVHIC0tIHBuZ2djY3JkLmMKKzA6IE5vdmVtYmVyIDMsIDIwMDAgLS0gQlVHIC0tIGluY29ycmVjdCBpQ0NQIGNodW5rIGlzIHdyaXR0ZW4KIAotICAgVGhlIHBuZ19yZWFkX2ZpbHRlcigpIGZ1bmN0aW9uIGhhcyBzdGlsbCBub3QgYmVlbiBmdWxseSBjb252ZXJ0ZWQgYW5kCisgICBUaGUgY29tcHJlc3Npb25fdHlwZSBieXRlIGluIHRoZSBpQ0NQIGNodW5rIHdyaXR0ZW4gYnkgbGlicG5nIGlzCisgICB1c3VhbGx5IGluY29ycmVjdC4KKworICAgU3RhdHVzOiBGaXhlZCBpbiBsaWJwbmctMS4wLjliZXRhMQorCisxLiBPY3RvYmVyIDEyLCAyMDAwIC0tIEJVRyAtLSBwbmd0ZXN0IGZhaWxzCisKKyAgIFRoZSB0aHJlZSBXUklURUZJTEUgY2FsbHMgaW4gcG5ndGVzdC5jIGFyZSBpbmNvcnJlY3QuICBUaGV5IG11c3QgYmUKKyAgIGNoYW5nZWQgdG8gcmVhZAorCisgICBXUklURUZJTEUoKHBuZ19GSUxFX3ApcG5nX3B0ci0+aW9fcHRyLCAgZGF0YSwgbGVuZ3RoLCBjaGVjayk7CisgICBXUklURUZJTEUoaW9fcHRyLCBuZWFyX2RhdGEsIGxlbmd0aCwgY2hlY2spOworICAgV1JJVEVGSUxFKGlvX3B0ciwgYnVmLCB3cml0dGVuLCBlcnIpOworCisyLiBBdWd1c3QgMjgsIDIwMDAgLS0gQlVHIC0tIHBuZ2djY3JkLmMKKworICAgVGhlIGludGVybGFjaW5nKCkgZnVuY3Rpb24gaGFzIHN0aWxsIG5vdCBiZWVuIGZ1bGx5IGNvbnZlcnRlZCBhbmQKICAgIHdpbGwgbm90IGNvbXBpbGUgdW5kZXIgZ2NjLTIuOTUuMjsgaXQgaXMgY3VycmVudGx5IGlmZGVmJ2VkIG91dC4KIAotICAgU1RBVFVTOiBVbmRlciBpbnZlc3RpZ2F0aW9uLiAgRXhwZXJ0cyBvbiBNTVggYXNzZW1ibGVyIGNvZGUgYXJlCi0gICBpbnZpdGVkIHRvIGhlbHAgd2l0aCB0aGUgZGVidWdnaW5nLiAgTm90ZSB0aGF0IHBuZ3ZjcmQuYyB3b3JrcyBmaW5lLgorICAgU1RBVFVTOiBGaXhlZCBpbiBsaWJwbmctMS4wLjkuICBUaGVyZSB3ZXJlIGFsc28gYnVncyBpbiBwbmd2Y3JkLmMKKyAgIHdoaWNoIGhhdmUgYmVlbiBmaXhlZC4gIFRoZSByZXBsYWNlbWVudCBmaWxlcyBhcmUgYXZhaWxhYmxlIGF0IHRoZQorICAgUE5HIHdlYiBzaXRlIChodHRwOi8vd3d3LmxpYnBuZy5vcmcvcHViL3BuZykuCiAKLTIuIE1hcmNoIDE1LCAxOTk4IC0tIE9QVElNSVpBVElPTiAtLSBLZXZpbiBCcmFjZXkKKzMuIE1hcmNoIDE1LCAxOTk4IC0tIE9QVElNSVpBVElPTiAtLSBLZXZpbiBCcmFjZXkKIAogICAgTG9vcHMgbmVlZCB0byBiZSBvcHRpbWl6ZWQgZXZlcnl3aGVyZQogCkBAIC0yNCw3ICs0MSw3IEBACiAgICBsaWJwbmctMi4wLjAuICBBYm91dCAxNjAgbG9vcHMgd2lsbCBiZSB0dXJuZWQgYXJvdW5kCiAgICBpbiBsaWJwbmctMi4wLnggYmV0YXh4LCBmb3IgdGVzdGluZy4KIAotMy4gSnVseSA0LCAxOTk4IC0tIEVOSEFOQ0VNRU5UIC0tIEdsZW5uIFItUAorNC4gSnVseSA0LCAxOTk4IC0tIEVOSEFOQ0VNRU5UIC0tIEdsZW5uIFItUAogCiAgICBsaWJwbmctMS4wLjUgYW5kIGVhcmxpZXIgdHJhbnNmb3JtIGNvbG9ycyB0byBnYW1tYT0xLjAgc3BhY2UgZm9yCiAgICBtZXJnaW5nIHdpdGggYmFja2dyb3VuZCwgYW5kIHRoZW4gYmFjayB0byB0aGUgaW1hZ2UncyBnYW1tYS4gIFRoZQpAQCAtMzYsOSArNTMsOSBAQAogCiAgICBTVEFUVVM6IHVuZGVyIGRldmVsb3BtZW50LgogCi00LiBTZXB0ZW1iZXIgMTk5OSAtLSBFTkhBTkNFTUVOVCAtLQorNS4gU2VwdGVtYmVyIDE5OTkgLS0gRU5IQU5DRU1FTlQgLS0KIAotICAgSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHVzZSBsaWJwbmcgd2l0aG91dCBmbG9hdGluZy1wb2ludCBhcml0bWV0aWMuCisgICBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gdXNlIGxpYnBuZyB3aXRob3V0IGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMuCiAKICAgIFNUQVRVUzogVW5kZXIgaW52ZXN0aWdhdGlvbiwgaW1wbGVtZW50YXRpb24gcG9zdHBvbmVkIHVudGlsIGFmdGVyCiAgICBsaWJwbmctMi4wLjAuCmRpZmYgLS1naXQgYS9MSUNFTlNFIGIvTElDRU5TRQppbmRleCAyNDY2N2I2Li4zNDM0NWQzIDEwMDY0NAotLS0gYS9MSUNFTlNFCisrKyBiL0xJQ0VOU0UKQEAgLTEsMTAgKzEsMTQgQEAKIAorVGhpcyBjb3B5IG9mIHRoZSBsaWJwbmcgbm90aWNlcyBpcyBwcm92aWRlZCBmb3IgeW91ciBjb252ZW5pZW5jZS4gIEluIGNhc2Ugb2YKK2FueSBkaXNjcmVwYW5jeSBiZXR3ZWVuIHRoaXMgY29weSBhbmQgdGhlIG5vdGljZXMgaW4gdGhlIGZpbGUgcG5nLmggdGhhdCBpcworaW5jbHVkZWQgaW4gdGhlIGxpYnBuZyBkaXN0cmlidXRpb24sIHRoZSBsYXR0ZXIgc2hhbGwgcHJldmFpbC4KKwogQ09QWVJJR0hUIE5PVElDRSwgRElTQ0xBSU1FUiwgYW5kIExJQ0VOU0U6CiAKIElmIHlvdSBtb2RpZnkgbGlicG5nIHlvdSBtYXkgaW5zZXJ0IGFkZGl0aW9uYWwgbm90aWNlcyBpbW1lZGlhdGVseSBmb2xsb3dpbmcKIHRoaXMgc2VudGVuY2UuCiAKLWxpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoIDEuMC44LCBKdWx5IDI0LCAyMDAwLCBhcmUKK2xpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoIDEuMC45YmV0YTEsIE5vdmVtYmVyIDEwLCAyMDAwLCBhcmUKIENvcHlyaWdodCAoYykgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KIGFuZCBhcmUgZGlzdHJpYnV0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzYW1lIGRpc2NsYWltZXIgYW5kIGxpY2Vuc2UgYXMgbGlicG5nLTEuMC42CiB3aXRoIHRoZSBmb2xsb3dpbmcgaW5kaXZpZHVhbHMgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgQ29udHJpYnV0aW5nIEF1dGhvcnMKQEAgLTk1LDQgKzk5LDQgQEAKIAogR2xlbm4gUmFuZGVycy1QZWhyc29uCiByYW5kZWdAYWx1bS5ycGkuZWR1Ci1KdWx5IDI0LCAyMDAwCitOb3ZlbWJlciAxMCwgMjAwMApkaWZmIC0tZ2l0IGEvUkVBRE1FIGIvUkVBRE1FCmluZGV4IDkzYWMxM2UuLmMwMTdhOWIgMTAwNjQ0Ci0tLSBhL1JFQURNRQorKysgYi9SRUFETUUKQEAgLTEsNCArMSw0IEBACi1SRUFETUUgZm9yIGxpYnBuZyAxLjAuOCAtIEp1bHkgMjQsIDIwMDAgKHNoYXJlZCBsaWJyYXJ5IDIuMSkKK1JFQURNRSBmb3IgbGlicG5nIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMCAoc2hhcmVkIGxpYnJhcnkgMi4xKQogU2VlIHRoZSBub3RlIGFib3V0IHZlcnNpb24gbnVtYmVycyBuZWFyIHRoZSB0b3Agb2YgcG5nLmgKIAogU2VlIElOU1RBTEwgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gaW5zdGFsbCBsaWJwbmcuCkBAIC0xNzEsMzAgKzE3MSwzNCBAQAogICAgICAgIHBuZ21pbnVzICAgICA9PiAgU2ltcGxlIHBubTJwbmcgYW5kIHBuZzJwbm0gcHJvZ3JhbXMKICAgICAgICBwbmdzdWl0ZSAgICAgPT4gIFRlc3QgaW1hZ2VzCiAgICAgICAgdmlzdXBuZyAgICAgID0+ICBDb250YWlucyBhIE1TVkMgd29ya3NwYWNlIGZvciBWaXN1YWxQbmcKLSAgICAgIG1zdmMgICAgICAgICAgPT4gIENvbnRhaW5zIGEgTWljcm9zb2Z0IFZpc3VhbCBDKysgKE1TVkMpIHdvcmtzcGFjZQotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGJ1aWxkaW5nIGxpYnBuZyBhbmQgemxpYgorICAgICAgZGxsICAgICAgICAgICA9PiAgQ29udGFpbnMgcHJvamVjdCBmaWxlcyBhbmQgd29ya3NwYWNlcyBmb3IgYnVpbGRpbmcgRExMCisgICAgICAgbXN2YyAgICAgICAgICAgICA9PiAgQ29udGFpbnMgYSBNaWNyb3NvZnQgVmlzdWFsIEMrKyAoTVNWQykgd29ya3NwYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGJ1aWxkaW5nIGxpYnBuZyBhbmQgemxpYgorICAgICAgIHdpbmNlICAgICAgICAgICAgPT4gIENvbnRhaW5zIGEgTWljcm9zb2Z0IFZpc3VhbCBDKysgKFdpbmRvd3MgQ0QgVG9vbGtpdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3Jrc3BhY2UgZm9yIGJ1aWxkaW5nIGxpYnBuZyBhbmQgemxpYiBvbiBXaW5kb3dzQ0UKICAgICAgIHNjcmlwdHMgICAgICAgPT4gIERpcmVjdG9yeSBjb250YWluaW5nIHNjcmlwdHMgZm9yIGJ1aWxkaW5nIGxpYnBuZzoKICAgICAgICBkZXNjcmlwLm1tcyAgICAgID0+ICBWTVMgbWFrZWZpbGUgZm9yIE1NUyBvciBNTUsKICAgICAgICBtYWtlZmlsZS5zdGQgICAgID0+ICBHZW5lcmljIFVOSVggbWFrZWZpbGUgKGNjLCBjcmVhdGVzIHN0YXRpYyBsaWJwbmcuYSkKICAgICAgICBtYWtlZmlsZS5saW51eCAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC44KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnY2MsIGNyZWF0ZXMgbGlicG5nLnNvLjIuMS4wLjliZXRhMSkKICAgICAgICBtYWtlZmlsZS5nY21teCAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnBuZy5zby4yLjEuMC44LCB1c2VzIGFzc2VtYmxlciBjb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlicG5nLnNvLjIuMS4wLjliZXRhMSwgdXNlcyBhc3NlbWJsZXIgY29kZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1bmVkIGZvciBJbnRlbCBNTVggcGxhdGZvcm0pCiAgICAgICAgbWFrZWZpbGUuZ2NjICAgICA9PiAgR2VuZXJpYyBtYWtlZmlsZSAoZ2NjLCBjcmVhdGVzIHN0YXRpYyBsaWJwbmcuYSkKICAgICAgICBtYWtlZmlsZS5rbnIgICAgID0+ICBBcmNoYWljIFVOSVggTWFrZWZpbGUgdGhhdCBjb252ZXJ0cyBmaWxlcyB3aXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zaTJrbnIgKFJlcXVpcmVzIGFuc2kya25yLmMgZnJvbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ0cDovL2Z0cC5jcy53aXNjLmVkdS9naG9zdCkKKyAgICAgICBtYWtlZmlsZS5jeWd3aW4gID0+ICBDeWd3aW4vZ2NjIG1ha2VmaWxlCiAgICAgICAgbWFrZWZpbGUuZGVjICAgICA9PiAgREVDIEFscGhhIFVOSVggbWFrZWZpbGUKICAgICAgICBtYWtlZmlsZS5ocHV4ICAgID0+ICBIUFVYICgxMC4yMCBhbmQgMTEuMDApIG1ha2VmaWxlCiAgICAgICAgbWFrZWZpbGUuaWJtYyAgICA9PiAgSUJNIEMvQysrIHZlcnNpb24gMy54IGZvciBXaW4zMiBhbmQgT1MvMiAoc3RhdGljKQogICAgICAgIG1ha2VmaWxlLmludGVsICAgPT4gIEludGVsIEMvQysrIHZlcnNpb24gNC4wIGFuZCBsYXRlcgogICAgICAgIGxpYnBuZy5pY2MgICAgICAgPT4gIFByb2plY3QgZmlsZSwgSUJNIFZpc3VhbEFnZS9DKysgNC4wIG9yIGxhdGVyCiAgICAgICAgbWFrZWZpbGUuc2dpICAgICA9PiAgU2lsaWNvbiBHcmFwaGljcyBJUklYIChjYywgY3JlYXRlcyBzdGF0aWMgbGliKQotICAgICAgIG1ha2VmaWxlLnNnZ2NjICAgPT4gIFNpbGljb24gR3JhcGhpY3MgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOCkKKyAgICAgICBtYWtlZmlsZS5zZ2djYyAgID0+ICBTaWxpY29uIEdyYXBoaWNzIChnY2MsIGNyZWF0ZXMgbGlicG5nLnNvLjIuMS4wLjliZXRhMSkKICAgICAgICBtYWtlZmlsZS5zdW5vcyAgID0+ICBTdW4gbWFrZWZpbGUKICAgICAgICBtYWtlZmlsZS5zb2xhcmlzID0+ICBTb2xhcmlzIDIuWCBtYWtlZmlsZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnY2MsIGNyZWF0ZXMgbGlicG5nLnNvLjIuMS4wLjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGExKQogICAgICAgIG1ha2VmaWxlLnNjbyAgICAgPT4gIEZvciBTQ08gT1NyNSAgRUxGIGFuZCBVbml4d2FyZSA3IHdpdGggTmF0aXZlIGNjCiAgICAgICAgbWFrZWZpbGUubWlwcyAgICA9PiAgTUlQUyBtYWtlZmlsZQogICAgICAgIG1ha2VmaWxlLmFjb3JuICAgPT4gIEFjb3JuIG1ha2VmaWxlCkBAIC0yMjEsOCArMjI1LDYgQEAKICAgICAgICBtYWtldm1zLmNvbSAgICAgID0+ICBWTVMgYnVpbGQgc2NyaXB0CiAgICAgICAgcG5nZGVmLnBhcyAgICAgICA9PiAgRGVmaW5lcyBmb3IgYSBwbmczMmJkLmRsbCB3aXRoIEJvcmxhbmQgQysrIDQuNQogICAgICAgIFNDT1BUSU9OUy5wcGMgICAgPT4gIFVzZWQgd2l0aCBzbWFrZWZpbGUucHBjCi0gICAgICB3aW5jZSAgICAgICAgID0+ICBDb250YWlucyBhIE1pY3Jvc29mdCBWaXN1YWwgQysrIChXaW5kb3dzIENEIFRvb2xraXQpCi0gICAgICAgICAgICAgICAgICAgICAgICB3b3Jrc3BhY2UgZm9yIGJ1aWxkaW5nIGxpYnBuZyBhbmQgemxpYiBvbiBXaW5kb3dzQ0UKIAogR29vZCBsdWNrLCBhbmQgaGFwcHkgY29kaW5nLgogCmRpZmYgLS1naXQgYS9ZMktJTkZPIGIvWTJLSU5GTwppbmRleCAyNDFkZDY5Li42ZTZhNDZiIDEwMDY0NAotLS0gYS9ZMktJTkZPCisrKyBiL1kyS0lORk8KQEAgLTEsMTMgKzEsMTMgQEAKICAgIFkySyBjb21wbGlhbmNlIGluIGxpYnBuZzoKICAgID09PT09PT09PT09PT09PT09PT09PT09PT0KIAotICAgICAgSnVseSAyNCwgMjAwMAorICAgICAgTm92ZW1iZXIgMTAsIDIwMDAKIAogICAgICAgU2luY2UgdGhlIFBORyBEZXZlbG9wbWVudCBncm91cCBpcyBhbiBhZC1ob2MgYm9keSwgd2UgY2FuJ3QgbWFrZQogICAgICAgYW4gb2ZmaWNpYWwgZGVjbGFyYXRpb24uCiAKICAgICAgIFRoaXMgaXMgeW91ciB1bm9mZmljaWFsIGFzc3VyYW5jZSB0aGF0IGxpYnBuZyBmcm9tIHZlcnNpb24gMC43MSBhbmQKLSAgICAgIHVwd2FyZCB0aHJvdWdoIDEuMC44IGFyZSBZMksgY29tcGxpYW50LiAgSXQgaXMgbXkgYmVsaWVmIHRoYXQgZWFybGllcgorICAgICAgdXB3YXJkIHRocm91Z2ggMS4wLjliZXRhMSBhcmUgWTJLIGNvbXBsaWFudC4gIEl0IGlzIG15IGJlbGllZiB0aGF0IGVhcmxpZXIKICAgICAgIHZlcnNpb25zIHdlcmUgYWxzbyBZMksgY29tcGxpYW50LgogCiAgICAgICBMaWJwbmcgb25seSBoYXMgdGhyZWUgeWVhciBmaWVsZHMuICBPbmUgaXMgYSAyLWJ5dGUgdW5zaWduZWQgaW50ZWdlcgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IDg1NjY4Y2QuLjhlNTk5MmEgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAgLTEsNSArMSw1IEBACiBlY2hvICIKLSAgVGhlcmUgaXMgbm8gXCJjb25maWd1cmVcIiBzY3JpcHQgZm9yIExpYnBuZy0xLjAuOC4gIEluc3RlYWQsIHBsZWFzZQorICBUaGVyZSBpcyBubyBcImNvbmZpZ3VyZVwiIHNjcmlwdCBmb3IgTGlicG5nLTEuMC45YmV0YTEuICBJbnN0ZWFkLCBwbGVhc2UKICAgY29weSB0aGUgYXBwcm9wcmlhdGUgbWFrZWZpbGUgZm9yIHlvdXIgc3lzdGVtIGZyb20gdGhlIFwic2NyaXB0c1wiCiAgIGRpcmVjdG9yeS4gIFJlYWQgdGhlIElOU1RBTEwgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLgogIgpkaWZmIC0tZ2l0IGEvY29udHJpYi9ncmVnYm9vay9tYWtldm1zLmNvbSBiL2NvbnRyaWIvZ3JlZ2Jvb2svbWFrZXZtcy5jb20KaW5kZXggYjhjYmZhZS4uMzczOTI2YiAxMDA2NDQKLS0tIGEvY29udHJpYi9ncmVnYm9vay9tYWtldm1zLmNvbQorKysgYi9jb250cmliL2dyZWdib29rL21ha2V2bXMuY29tCkBAIC03LDEyICs3LDI1IEBACiAkIQogJCEgICAgU2V0IGxvY2F0aW9ucyB3aGVyZSB6bGliIGFuZCBsaWJwbmcgc291cmNlcyBsaXZlLgogJCEKLSQgenBhdGggPSAiWy0uemxpYl0iCi0kIHBuZ3BhdGggPSAiWy0ubGlicG5nXSIKKyQgenBhdGggICA9ICIiCiskIHBuZ3BhdGggPSAiIgorJCBpZiBmJHNlYXJjaCgiWy0uemxpYl16bGliLmgiKS5uZXMuIiIgdGhlbiB6cGF0aCA9ICJbLS56bGliXSIKKyQgaWYgZiRzZWFyY2goIlstLmxpYnBuZ11wbmcuaCIpLm5lcy4iIiB0aGVuIHBuZ3BhdGggPSAiWy0ubGlicG5nXSIKICQhCi0kISBVU0UgVEhFU0UgSU5TVEVBRCBpZiBidWlsZGluZyBmcm9tIGxpYnBuZydzIFsuY29udHJpYi5ncmVnYm9va10gZGlyZWN0b3J5OgotJCEgenBhdGggPSAiWy0tLS56bGliXSIKLSQhIHBuZ3BhdGggPSAiWy0tXSIKKyQgaWYgZiRzZWFyY2goIlstLS0uemxpYl16bGliLmgiKS5uZXMuIiIgdGhlbiB6cGF0aCA9ICJbLS0tLnpsaWJdIgorJCBpZiBmJHNlYXJjaCgiWy0tXXBuZy5oIikubmVzLiIiIHRoZW4gcG5ncGF0aCA9ICJbLS1dIgorJCEKKyQgaWYgenBhdGggLmVxcy4gIiIKKyQgdGhlbgorJCAgIHdyaXRlIHN5cyRvdXRwdXQgIlpsaWIgaW5jbHVkZSBub3QgZm91bmQuIEV4aXRpbmcuLi4iCiskICAgZXhpdCAyCiskIGVuZGlmIAorJCEKKyQgaWYgcG5ncGF0aCAuZXFzLiAiIgorJCB0aGVuCiskICAgd3JpdGUgc3lzJG91dHB1dCAiTGlicG5nIGluY2x1ZGUgbm90IGZvdW5kLiBFeGl0aW5nLi4uIgorJCAgIGV4aXQgMgorJCBlbmRpZiAKICQhCiAkISAgICBMb29rIGZvciB0aGUgY29tcGlsZXIgdXNlZC4KICQhCmRpZmYgLS1naXQgYS9jb250cmliL21zdmN0ZXN0L1JFQURNRS50eHQgYi9jb250cmliL21zdmN0ZXN0L1JFQURNRS50eHQKaW5kZXggMTgwNTc4MC4uNjczNjBiYyAxMDA2NDQKLS0tIGEvY29udHJpYi9tc3ZjdGVzdC9SRUFETUUudHh0CisrKyBiL2NvbnRyaWIvbXN2Y3Rlc3QvUkVBRE1FLnR4dApAQCAtMSw4ICsxLDggQEAKIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIEJ1aWxkIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDYuMDAgZm9yCiBtc3ZjdGVzdAogCi1Bc3N1bWVzIHRoYXQgbGlicG5nIERMTHMgYW5kIExJQnMgYXJlIGluIC4uXC4uXG1zdmNcd2luMzJcbGlicG5nCi1Bc3N1bWVzIHRoYXQgemxpYiBETExzIGFuZCBMSUJzIGFyZSBpbiAuLlwuLlxtc3ZjXHdpbjMyXHpsaWIKK0Fzc3VtZXMgdGhhdCBsaWJwbmcgRExMcyBhbmQgTElCcyBhcmUgaW4gLi5cLi5cZGxsXG1zdmNcd2luMzJcbGlicG5nCitBc3N1bWVzIHRoYXQgemxpYiBETExzIGFuZCBMSUJzIGFyZSBpbiAuLlwuLlxkbGxcbXN2Y1x3aW4zMlx6bGliCiAKIFRvIGJ1aWxkOgogCmRpZmYgLS1naXQgYS9jb250cmliL21zdmN0ZXN0L21zdmN0ZXN0LmRzcCBiL2NvbnRyaWIvbXN2Y3Rlc3QvbXN2Y3Rlc3QuZHNwCmluZGV4IGQ3NDM4NDAuLmM2OTFlMGUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvbXN2Y3Rlc3QvbXN2Y3Rlc3QuZHNwCisrKyBiL2NvbnRyaWIvbXN2Y3Rlc3QvbXN2Y3Rlc3QuZHNwCkBAIC01NCwxMiArNTQsMTIgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28KIExJTkszMj1saW5rLmV4ZQogIyBBREQgQkFTRSBMSU5LMzIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL21hY2hpbmU6STM4NgotIyBBREQgTElOSzMyIC4uXC4uXG1zdmNcd2luMzJcbGlicG5nXGRsbFxsaWJwbmcxLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2CisjIEFERCBMSU5LMzIgLi5cLi5cZGxsXG1zdmNcd2luMzJcbGlicG5nXGRsbFxsaWJwbmcxLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2CiAjIEJlZ2luIFNwZWNpYWwgQnVpbGQgVG9vbAogT3V0RGlyPS5cZGxsCiBTT1VSQ0U9IiQoSW5wdXRQYXRoKSIKIFBvc3RCdWlsZF9EZXNjPVtSdW4gVGVzdF0KLVBvc3RCdWlsZF9DbWRzPXNldCBwYXRoPS4uXC4uXG1zdmNcd2luMzJcbGlicG5nXGRsbDsuLlwuLlxtc3ZjXHdpbjMyXHpsaWJcZGxsOwkkKG91dGRpcilcbXN2Y3Rlc3QuZXhlIC4uXC4uXHBuZ3Rlc3QucG5nCitQb3N0QnVpbGRfQ21kcz1zZXQgcGF0aD0uLlwuLlxkbGxcbXN2Y1x3aW4zMlxsaWJwbmdcZGxsOy4uXC4uXGRsbFxtc3ZjXHdpbjMyXHpsaWJcZGxsOwkkKG91dGRpcilcbXN2Y3Rlc3QuZXhlIC4uXC4uXHBuZ3Rlc3QucG5nCiAjIEVuZCBTcGVjaWFsIEJ1aWxkIFRvb2wKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIm1zdmN0ZXN0IC0gV2luMzIgRGVidWcgRExMIgpAQCAtODQsMTIgKzg0LDEyIEBACiAjIEFERCBCU0MzMiAvbm9sb2dvCiBMSU5LMzI9bGluay5leGUKICMgQUREIEJBU0UgTElOSzMyIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQKLSMgQUREIExJTkszMiAuLlwuLlxtc3ZjXHdpbjMyXGxpYnBuZ1xkbGxfZGJnXGxpYnBuZzFkLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0CisjIEFERCBMSU5LMzIgLi5cLi5cZGxsXG1zdmNcd2luMzJcbGlicG5nXGRsbF9kYmdcbGlicG5nMWQubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQKICMgQmVnaW4gU3BlY2lhbCBCdWlsZCBUb29sCiBPdXREaXI9LlxkbGxfZGJnCiBTT1VSQ0U9IiQoSW5wdXRQYXRoKSIKIFBvc3RCdWlsZF9EZXNjPVtSdW4gVGVzdF0KLVBvc3RCdWlsZF9DbWRzPXNldCBwYXRoPS4uXC4uXG1zdmNcd2luMzJcbGlicG5nXGRsbF9kYmc7Li5cLi5cbXN2Y1x3aW4zMlx6bGliXGRsbF9kYmc7CSQob3V0ZGlyKVxtc3ZjdGVzdC5leGUgLi5cLi5ccG5ndGVzdC5wbmcKK1Bvc3RCdWlsZF9DbWRzPXNldCBwYXRoPS4uXC4uXGRsbFxtc3ZjXHdpbjMyXGxpYnBuZ1xkbGxfZGJnOy4uXC4uXGRsbFxtc3ZjXHdpbjMyXHpsaWJcZGxsX2RiZzsJJChvdXRkaXIpXG1zdmN0ZXN0LmV4ZSAuLlwuLlxwbmd0ZXN0LnBuZwogIyBFbmQgU3BlY2lhbCBCdWlsZCBUb29sCiAKICFFTFNFSUYgICIkKENGRykiID09ICJtc3ZjdGVzdCAtIFdpbjMyIEFTTSBETEwiCkBAIC0xMTQsMTIgKzExNCwxMiBAQAogIyBBREQgQlNDMzIgL25vbG9nbwogTElOSzMyPWxpbmsuZXhlCiAjIEFERCBCQVNFIExJTkszMiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2Ci0jIEFERCBMSU5LMzIgLi5cLi5cbXN2Y1x3aW4zMlxsaWJwbmdcZGxsX2FzbVxsaWJwbmcxYS5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL21hY2hpbmU6STM4NgorIyBBREQgTElOSzMyIC4uXC4uXGRsbFxtc3ZjXHdpbjMyXGxpYnBuZ1xkbGxfYXNtXGxpYnBuZzFhLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2CiAjIEJlZ2luIFNwZWNpYWwgQnVpbGQgVG9vbAogT3V0RGlyPS5cZGxsX2FzbQogU09VUkNFPSIkKElucHV0UGF0aCkiCiBQb3N0QnVpbGRfRGVzYz1bUnVuIFRlc3RdCi1Qb3N0QnVpbGRfQ21kcz1zZXQgcGF0aD0uLlwuLlxtc3ZjXHdpbjMyXGxpYnBuZ1xkbGxfYXNtOy4uXC4uXG1zdmNcd2luMzJcemxpYlxkbGxfYXNtOwkkKG91dGRpcilcbXN2Y3Rlc3QuZXhlIC4uXC4uXHBuZ3Rlc3QucG5nCitQb3N0QnVpbGRfQ21kcz1zZXQgcGF0aD0uLlwuLlxkbGxcbXN2Y1x3aW4zMlxsaWJwbmdcZGxsX2FzbTsuLlwuLlxkbGxcbXN2Y1x3aW4zMlx6bGliXGRsbF9hc207CSQob3V0ZGlyKVxtc3ZjdGVzdC5leGUgLi5cLi5ccG5ndGVzdC5wbmcKICMgRW5kIFNwZWNpYWwgQnVpbGQgVG9vbAogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibXN2Y3Rlc3QgLSBXaW4zMiBEZWJ1ZyBBU00gRExMIgpAQCAtMTQ0LDEyICsxNDQsMTIgQEAKICMgQUREIEJTQzMyIC9ub2xvZ28KIExJTkszMj1saW5rLmV4ZQogIyBBREQgQkFTRSBMSU5LMzIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdAotIyBBREQgTElOSzMyIC4uXC4uXG1zdmNcd2luMzJcbGlicG5nXGRsbF9kYmdhXGxpYnBuZzFiLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0CisjIEFERCBMSU5LMzIgLi5cLi5cZGxsXG1zdmNcd2luMzJcbGlicG5nXGRsbF9kYmdhXGxpYnBuZzFiLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0CiAjIEJlZ2luIFNwZWNpYWwgQnVpbGQgVG9vbAogT3V0RGlyPS5cZGxsX2RiZ2EKIFNPVVJDRT0iJChJbnB1dFBhdGgpIgogUG9zdEJ1aWxkX0Rlc2M9W1J1biBUZXN0XQotUG9zdEJ1aWxkX0NtZHM9c2V0IHBhdGg9Li5cLi5cbXN2Y1x3aW4zMlxsaWJwbmdcZGxsX2RiZ2E7Li5cLi5cbXN2Y1x3aW4zMlx6bGliXGRsbF9kYmdhOwkkKG91dGRpcilcbXN2Y3Rlc3QuZXhlIC4uXC4uXHBuZ3Rlc3QucG5nCitQb3N0QnVpbGRfQ21kcz1zZXQgcGF0aD0uLlwuLlxkbGxcbXN2Y1x3aW4zMlxsaWJwbmdcZGxsX2RiZ2E7Li5cLi5cZGxsXG1zdmNcd2luMzJcemxpYlxkbGxfZGJnYTsJJChvdXRkaXIpXG1zdmN0ZXN0LmV4ZSAuLlwuLlxwbmd0ZXN0LnBuZwogIyBFbmQgU3BlY2lhbCBCdWlsZCBUb29sCiAKICFFTFNFSUYgICIkKENGRykiID09ICJtc3ZjdGVzdCAtIFdpbjMyIExJQiIKQEAgLTE3NCw3ICsxNzQsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbwogTElOSzMyPWxpbmsuZXhlCiAjIEFERCBCQVNFIExJTkszMiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2Ci0jIEFERCBMSU5LMzIgLi5cLi5cbXN2Y1x3aW4zMlxsaWJwbmdcbGliXGxpYnBuZy5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL21hY2hpbmU6STM4NgorIyBBREQgTElOSzMyIC4uXC4uXGRsbFxtc3ZjXHdpbjMyXGxpYnBuZ1xsaWJcbGlicG5nLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2CiAjIEJlZ2luIFNwZWNpYWwgQnVpbGQgVG9vbAogT3V0RGlyPS5cbGliCiBTT1VSQ0U9IiQoSW5wdXRQYXRoKSIKQEAgLTIwNCw3ICsyMDQsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbwogTElOSzMyPWxpbmsuZXhlCiAjIEFERCBCQVNFIExJTkszMiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0Ci0jIEFERCBMSU5LMzIgLi5cLi5cbXN2Y1x3aW4zMlxsaWJwbmdcbGliX2RiZ1xsaWJwbmcubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQKKyMgQUREIExJTkszMiAuLlwuLlxkbGxcbXN2Y1x3aW4zMlxsaWJwbmdcbGliX2RiZ1xsaWJwbmcubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQKICMgQmVnaW4gU3BlY2lhbCBCdWlsZCBUb29sCiBPdXREaXI9LlxsaWJfZGJnCiBTT1VSQ0U9IiQoSW5wdXRQYXRoKSIKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG5nbWludXMvbWFrZXZtcy5jb20gYi9jb250cmliL3BuZ21pbnVzL21ha2V2bXMuY29tCmluZGV4IDdhMTRiZTUuLjAwNTYxYmMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG5nbWludXMvbWFrZXZtcy5jb20KKysrIGIvY29udHJpYi9wbmdtaW51cy9tYWtldm1zLmNvbQpAQCAtNDUsOSArNDUsOSBAQAogJCAgIHdyaXRlIHN5cyRvdXRwdXQgIkJ1aWxkaW5nIHBuZzJwbm0uLi4iCiAkICAgQ0FMTCBNQUtFIHBuZzJwbm0uT0JKICJjYyAnJ0NDT1BUJyBwbmcycG5tIiAtCiAJcG5nMnBubS5jCi0kICAgY2FsbCBtYWtlIHBubTJwbmcuZXhlIC0KLQkiTElOSyBwbm0ycG5nLGxpYi5vcHQvb3B0IiAtCi0JcG5tMnBuZy5vYmoKKyQgICBjYWxsIG1ha2UgcG5nMnBubS5leGUgLQorCSJMSU5LIHBuZzJwbm0sbGliLm9wdC9vcHQiIC0KKwlwbmcycG5tLm9iagogJCBleGl0CiAkIQogJCEKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG5nbWludXMvcG5nMnBubS5jIGIvY29udHJpYi9wbmdtaW51cy9wbmcycG5tLmMKaW5kZXggODRlMjQ0OC4uMDEwODcwYSAxMDA2NDQKLS0tIGEvY29udHJpYi9wbmdtaW51cy9wbmcycG5tLmMKKysrIGIvY29udHJpYi9wbmdtaW51cy9wbmcycG5tLmMKQEAgLTIwNCw2ICsyMDQsNyBAQAogICBpbnQgICAgICAgICAgIHJvdywgY29sOwogICBpbnQgICAgICAgICAgIHJldDsKICAgaW50ICAgICAgICAgICBpOworICBsb25nICAgICAgICAgIGRlcF8xNjsKIAogICAvKiByZWFkIGFuZCBjaGVjayBzaWduYXR1cmUgaW4gUE5HIGZpbGUgKi8KICAgcmV0ID0gZnJlYWQgKGJ1ZiwgMSwgOCwgcG5nX2ZpbGUpOwpAQCAtMzc5LDggKzM4MCwxMCBAQAogICAgICAgICBpZiAocmF3KQogICAgICAgICAgIGZwdXRjICgoaW50KSAqcGl4X3B0cisrICwgcG5tX2ZpbGUpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgaWYgKGJpdF9kZXB0aCA9PSAxNikKLSAgICAgICAgICAgIGZwcmludGYgKHBubV9maWxlLCAiJWxkICIsICgobG9uZykgKnBpeF9wdHIrKyA8PCA4KSArIChsb25nKSAqcGl4X3B0cisrKTsKKyAgICAgICAgICBpZiAoYml0X2RlcHRoID09IDE2KXsKKwkgICAgZGVwXzE2ID0gKGxvbmcpICpwaXhfcHRyKys7CisgICAgICAgICAgICBmcHJpbnRmIChwbm1fZmlsZSwgIiVsZCAiLCAoZGVwXzE2IDw8IDgpICsgKChsb25nKSAqcGl4X3B0cisrKSk7CisgICAgICAgICAgfQogICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGZwcmludGYgKHBubV9maWxlLCAiJWxkICIsIChsb25nKSAqcGl4X3B0cisrKTsKICAgICAgIH0KQEAgLTM5Nyw4ICs0MDAsMTAgQEAKICAgICAgICAgICBpZiAocmF3KQogICAgICAgICAgICAgZnB1dGMgKChpbnQpICpwaXhfcHRyKysgLCBhbHBoYV9maWxlKTsKICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICBpZiAoYml0X2RlcHRoID09IDE2KQotICAgICAgICAgICAgICBmcHJpbnRmIChhbHBoYV9maWxlLCAiJWxkICIsICgobG9uZykgKnBpeF9wdHIrKyA8PCA4KSArIChsb25nKSAqcGl4X3B0cisrKTsKKyAgICAgICAgICAgIGlmIChiaXRfZGVwdGggPT0gMTYpeworCSAgICAgIGRlcF8xNiA9IChsb25nKSAqcGl4X3B0cisrOworICAgICAgICAgICAgICBmcHJpbnRmIChhbHBoYV9maWxlLCAiJWxkICIsIChkZXBfMTYgPDwgOCkgKyAobG9uZykgKnBpeF9wdHIrKyk7CisJICAgIH0gIAogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICBmcHJpbnRmIChhbHBoYV9maWxlLCAiJWxkICIsIChsb25nKSAqcGl4X3B0cisrKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvY29udHJpYi92aXN1cG5nL1JFQURNRS50eHQgYi9jb250cmliL3Zpc3VwbmcvUkVBRE1FLnR4dAppbmRleCA3NTk0ZWMzLi45NGIxZTU4IDEwMDY0NAotLS0gYS9jb250cmliL3Zpc3VwbmcvUkVBRE1FLnR4dAorKysgYi9jb250cmliL3Zpc3VwbmcvUkVBRE1FLnR4dApAQCAtMTMsOCArMTMsOCBAQAogCiBBc3N1bWVzIHRoYXQKIAotICAgbGlicG5nIERMTHMgYW5kIExJQnMgYXJlIGluIC4uXC4uXG1zdmNcd2luMzJcbGlicG5nCi0gICB6bGliIERMTHMgYW5kIExJQnMgYXJlIGluICAgLi5cLi5cbXN2Y1x3aW4zMlx6bGliCisgICBsaWJwbmcgRExMcyBhbmQgTElCcyBhcmUgaW4gLi5cLi5cZGxsXG1zdmNcd2luMzJcbGlicG5nCisgICB6bGliIERMTHMgYW5kIExJQnMgYXJlIGluICAgLi5cLi5cZGxsXG1zdmNcd2luMzJcemxpYgogICAgbGlicG5nIGhlYWRlciBmaWxlcyBhcmUgaW4gIC4uXC4uXC4uXGxpYnBuZwogICAgemxpYiBoZWFkZXIgZmlsZXMgYXJlIGluICAgIC4uXC4uXC4uXHpsaWIKICAgIHRoZSBwbmdzdWl0ZSBpbWFnZXMgYXJlIGluICAuLlxwbmdzdWl0ZQpkaWZmIC0tZ2l0IGEvY29udHJpYi92aXN1cG5nL1Zpc3VhbFBuZy5kc3AgYi9jb250cmliL3Zpc3VwbmcvVmlzdWFsUG5nLmRzcAppbmRleCBmYjQyYzgxLi43N2QyYjViIDEwMDY0NAotLS0gYS9jb250cmliL3Zpc3VwbmcvVmlzdWFsUG5nLmRzcAorKysgYi9jb250cmliL3Zpc3VwbmcvVmlzdWFsUG5nLmRzcApAQCAtNjAsMTEgKzYwLDExIEBACiAjIEFERCBCU0MzMiAvbm9sb2dvCiBMSU5LMzI9bGluay5leGUKICMgQUREIEJBU0UgTElOSzMyIGxpYnBuZzEubGliIHpsaWJkLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvbWFjaGluZTpJMzg2IC9saWJwYXRoOiJsaWJwbmciIC9saWJwYXRoOiJ6bGliIgotIyBBREQgTElOSzMyIGxpYnBuZzEubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9tYWNoaW5lOkkzODYgL2xpYnBhdGg6Ii4uXC4uXG1zdmNcd2luMzJcbGlicG5nXGRsbCIKKyMgQUREIExJTkszMiBsaWJwbmcxLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvbWFjaGluZTpJMzg2IC9saWJwYXRoOiIuLlwuLlxkbGxcbXN2Y1x3aW4zMlxsaWJwbmdcZGxsIgogIyBCZWdpbiBTcGVjaWFsIEJ1aWxkIFRvb2wKIE91dERpcj0uXGRsbAogU09VUkNFPSIkKElucHV0UGF0aCkiCi1Qb3N0QnVpbGRfQ21kcz1zZXQgcGF0aD0uLlwuLlxtc3ZjXHdpbjMyXGxpYnBuZ1xkbGw7Li5cLi5cbXN2Y1x3aW4zMlx6bGliXGRsbDsJJChvdXRkaXIpXFZpc3VhbFBuZy5leGUgLi5cLi5cY29udHJpYlxwbmdzdWl0ZVxiYXNuNmExNi5wbmcKK1Bvc3RCdWlsZF9DbWRzPXNldCBwYXRoPS4uXC4uXGRsbFxtc3ZjXHdpbjMyXGxpYnBuZ1xkbGw7Li5cLi5cZGxsXG1zdmNcd2luMzJcemxpYlxkbGw7CSQob3V0ZGlyKVxWaXN1YWxQbmcuZXhlIC4uXC4uXGNvbnRyaWJccG5nc3VpdGVcYmFzbjZhMTYucG5nCiAjIEVuZCBTcGVjaWFsIEJ1aWxkIFRvb2wKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIlZpc3VhbFBuZyAtIFdpbjMyIERlYnVnIERMTCIKQEAgLTk0LDEyICs5NCwxMiBAQAogTElOSzMyPWxpbmsuZXhlCiAjIEFERCBCQVNFIExJTkszMiBsaWJwbmcxLmxpYiB6bGliZC5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RlYnVnIC9tYWNoaW5lOkkzODYgL25vZGVmYXVsdGxpYjoibGliYyIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoibGlicG5nIiAvbGlicGF0aDoiemxpYiIKICMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGxpYnBuZzFkLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvZGVidWcgL21hY2hpbmU6STM4NiAvbm9kZWZhdWx0bGliOiJsaWJjIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLlwuLlxtc3ZjXHdpbjMyXGxpYnBuZ1xkbGxfZGJnIgorIyBBREQgTElOSzMyIGxpYnBuZzFkLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvZGVidWcgL21hY2hpbmU6STM4NiAvbm9kZWZhdWx0bGliOiJsaWJjIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLlwuLlxkbGxcbXN2Y1x3aW4zMlxsaWJwbmdcZGxsX2RiZyIKICMgU1VCVFJBQ1QgTElOSzMyIC9ub2RlZmF1bHRsaWIKICMgQmVnaW4gU3BlY2lhbCBCdWlsZCBUb29sCiBPdXREaXI9LlxkbGxfZGJnCiBTT1VSQ0U9IiQoSW5wdXRQYXRoKSIKLVBvc3RCdWlsZF9DbWRzPXNldCBwYXRoPS4uXC4uXG1zdmNcd2luMzJcbGlicG5nXGRsbF9kYmc7Li5cLi5cbXN2Y1x3aW4zMlx6bGliXGRsbF9kYmc7CSQob3V0ZGlyKVxWaXN1YWxQbmcuZXhlIC4uXC4uXGNvbnRyaWJccG5nc3VpdGVcYmFzbjZhMTYucG5nCitQb3N0QnVpbGRfQ21kcz1zZXQgcGF0aD0uLlwuLlxkbGxcbXN2Y1x3aW4zMlxsaWJwbmdcZGxsX2RiZzsuLlwuLlxkbGxcbXN2Y1x3aW4zMlx6bGliXGRsbF9kYmc7CSQob3V0ZGlyKVxWaXN1YWxQbmcuZXhlIC4uXC4uXGNvbnRyaWJccG5nc3VpdGVcYmFzbjZhMTYucG5nCiAjIEVuZCBTcGVjaWFsIEJ1aWxkIFRvb2wKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIlZpc3VhbFBuZyAtIFdpbjMyIExJQiIKQEAgLTEyOCw4ICsxMjgsOCBAQAogIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCiAjIEFERCBCU0MzMiAvbm9sb2dvCiBMSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGxpYnBuZzEubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9tYWNoaW5lOkkzODYgL2xpYnBhdGg6Ii4uXC4uXG1zdmNcd2luMzJcbGlicG5nXGRsbCIKLSMgQUREIExJTkszMiBsaWJwbmcubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9tYWNoaW5lOkkzODYgL2xpYnBhdGg6Ii4uXC4uXG1zdmNcd2luMzJcbGlicG5nXGxpYiIKKyMgQUREIEJBU0UgTElOSzMyIGxpYnBuZzEubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9tYWNoaW5lOkkzODYgL2xpYnBhdGg6Ii4uXC4uXGRsbFxtc3ZjXHdpbjMyXGxpYnBuZ1xkbGwiCisjIEFERCBMSU5LMzIgbGlicG5nLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvbWFjaGluZTpJMzg2IC9saWJwYXRoOiIuLlwuLlxkbGxcbXN2Y1x3aW4zMlxsaWJwbmdcbGliIgogIyBCZWdpbiBTcGVjaWFsIEJ1aWxkIFRvb2wKIE91dERpcj0uXGxpYgogU09VUkNFPSIkKElucHV0UGF0aCkiCkBAIC0xNjEsOSArMTYxLDkgQEAKICMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwogIyBBREQgQlNDMzIgL25vbG9nbwogTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBsaWJwbmcxZC5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RlYnVnIC9tYWNoaW5lOkkzODYgL25vZGVmYXVsdGxpYjoibGliYyIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi5cLi5cbXN2Y1x3aW4zMlxsaWJwbmdcZGxsX2RiZyIKKyMgQUREIEJBU0UgTElOSzMyIGxpYnBuZzFkLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvZGVidWcgL21hY2hpbmU6STM4NiAvbm9kZWZhdWx0bGliOiJsaWJjIiAvcGRidHlwZTpzZXB0IC9saWJwYXRoOiIuLlwuLlxkbGxcbXN2Y1x3aW4zMlxsaWJwbmdcZGxsX2RiZyIKICMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGxpYnBuZy5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RlYnVnIC9tYWNoaW5lOkkzODYgL25vZGVmYXVsdGxpYjoibGliYyIgL3BkYnR5cGU6c2VwdCAvbGlicGF0aDoiLi5cLi5cbXN2Y1x3aW4zMlxsaWJwbmdcbGliX2RiZyIKKyMgQUREIExJTkszMiBsaWJwbmcubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9ub2RlZmF1bHRsaWI6ImxpYmMiIC9wZGJ0eXBlOnNlcHQgL2xpYnBhdGg6Ii4uXC4uXGRsbFxtc3ZjXHdpbjMyXGxpYnBuZ1xsaWJfZGJnIgogIyBTVUJUUkFDVCBMSU5LMzIgL25vZGVmYXVsdGxpYgogIyBCZWdpbiBTcGVjaWFsIEJ1aWxkIFRvb2wKIE91dERpcj0uXGxpYl9kYmcKZGlmZiAtLWdpdCBhL21zdmMvUkVBRE1FLnR4dCBiL2RsbC9tc3ZjL1JFQURNRS50eHQKc2ltaWxhcml0eSBpbmRleCA5MiUKcmVuYW1lIGZyb20gbXN2Yy9SRUFETUUudHh0CnJlbmFtZSB0byBkbGwvbXN2Yy9SRUFETUUudHh0CmluZGV4IDExYWExNTAuLjkzMmY3MjEgMTAwNjQ0Ci0tLSBhL21zdmMvUkVBRE1FLnR4dAorKysgYi9kbGwvbXN2Yy9SRUFETUUudHh0CkBAIC0xLDExICsxLDExIEBACiBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBCdWlsZCBGaWxlLCBGb3JtYXQgVmVyc2lvbiA2LjAwIGZvcgotbGlicG5nIDEuMC44IChKdWx5IDI0LCAyMDAwKSBhbmQgemxpYgorbGlicG5nIDEuMC45YmV0YTEgKE5vdmVtYmVyIDEwLCAyMDAwKSBhbmQgemxpYgogCiBDb3B5cmlnaHQgKEMpIDIwMDAgU2ltb24tUGllcnJlIENhZGlldXgKIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogCi1Bc3N1bWVzIHRoYXQgbGlicG5nIHNvdXJjZXMgYXJlIGluIC4uCi1Bc3N1bWVzIHRoYXQgemxpYiBzb3VyY2VzIGhhdmUgYmVlbiBjb3BpZWQgdG8gLi5cLi5cemxpYgorQXNzdW1lcyB0aGF0IGxpYnBuZyBzb3VyY2VzIGFyZSBpbiAuLlwuLgorQXNzdW1lcyB0aGF0IHpsaWIgc291cmNlcyBoYXZlIGJlZW4gY29waWVkIHRvIC4uXC4uXC4uXHpsaWIKIAogVG8gYnVpbGQ6CiAKZGlmZiAtLWdpdCBhL21zdmMvbGlicG5nLmRzcCBiL2RsbC9tc3ZjL2xpYnBuZy5kc3AKc2ltaWxhcml0eSBpbmRleCA4MyUKcmVuYW1lIGZyb20gbXN2Yy9saWJwbmcuZHNwCnJlbmFtZSB0byBkbGwvbXN2Yy9saWJwbmcuZHNwCmluZGV4IDFmYjZiMjYuLjQ0MjE3ODIgMTAwNjQ0Ci0tLSBhL21zdmMvbGlicG5nLmRzcAorKysgYi9kbGwvbXN2Yy9saWJwbmcuZHNwCkBAIC00NiwxMSArNDYsMTEgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2wuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NRCAvVzMgL08xIC9EICJOREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvRCAiX1VTUkRMTCIgL0ZEIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUQgL1czIC9PMSAvSSAiLi4iIC9JICIuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiV0lOMzIiIC9EICJfV0lORE9XUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9EICJaTElCX0RMTCIgL1l1InBuZy5oIiAvRkQgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NRCAvVzMgL08xIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvRCAiUE5HX0JVSUxEX0RMTCIgL0QgIlpMSUJfRExMIiAvWXUicG5nLmgiIC9GRCAvYwogTVRMPW1pZGwuZXhlCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiTkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDA5IC9pICIuLiIgL2QgIk5ERUJVRyIKKyMgQUREIFJTQyAvbCAweDQwOSAvaSAiLi5cLi4iIC9kICJOREVCVUciCiBCU0MzMj1ic2NtYWtlLmV4ZQogIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCiAjIEFERCBCU0MzMiAvbm9sb2dvCkBAIC03NCwxMSArNzQsMTEgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2wuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NRGQgL1czIC9aaSAvT2QgL0QgIl9ERUJVRyIgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9EICJfVVNSRExMIiAvRkQgL0daIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTURkIC9XMyAvWmkgL09kIC9JICIuLiIgL0kgIi4uXC4uXHpsaWIiIC9EICJERUJVRyIgL0QgIl9ERUJVRyIgL0QgUE5HX0RFQlVHPTEgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9EICJQTkdfQlVJTERfRExMIiAvRCAiWkxJQl9ETEwiIC9ZdSJwbmcuaCIgL0ZEIC9HWiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL01EZCAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJfREVCVUciIC9EIFBOR19ERUJVRz0xIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvRCAiUE5HX0JVSUxEX0RMTCIgL0QgIlpMSUJfRExMIiAvWXUicG5nLmgiIC9GRCAvR1ogL2MKIE1UTD1taWRsLmV4ZQogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIl9ERUJVRyIKLSMgQUREIFJTQyAvbCAweDQwOSAvaSAiLi4iIC9kICJfREVCVUciIC9kIFBOR19ERUJVRz0xCisjIEFERCBSU0MgL2wgMHg0MDkgL2kgIi4uXC4uIiAvZCAiX0RFQlVHIiAvZCBQTkdfREVCVUc9MQogQlNDMzI9YnNjbWFrZS5leGUKICMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwogIyBBREQgQlNDMzIgL25vbG9nbwpAQCAtMTAxLDExICsxMDEsMTEgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2wuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NRCAvVzMgL08xIC9EICJOREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvRCAiX1VTUkRMTCIgL0ZEIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUQgL1czIC9PMSAvSSAiLi4iIC9JICIuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiV0lOMzIiIC9EICJfV0lORE9XUyIgL0QgIlBOR19VU0VfUE5HVkNSRCIgL0QgIlBOR19CVUlMRF9ETEwiIC9EICJaTElCX0RMTCIgL1l1InBuZy5oIiAvRkQgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NRCAvVzMgL08xIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvRCAiUE5HX1VTRV9QTkdWQ1JEIiAvRCAiUE5HX0JVSUxEX0RMTCIgL0QgIlpMSUJfRExMIiAvWXUicG5nLmgiIC9GRCAvYwogTVRMPW1pZGwuZXhlCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiTkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDA5IC9pICIuLiIgL2QgIk5ERUJVRyIgL2QgIlBOR19VU0VfUE5HVkNSRCIKKyMgQUREIFJTQyAvbCAweDQwOSAvaSAiLi5cLi4iIC9kICJOREVCVUciIC9kICJQTkdfVVNFX1BOR1ZDUkQiCiBCU0MzMj1ic2NtYWtlLmV4ZQogIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCiAjIEFERCBCU0MzMiAvbm9sb2dvCkBAIC0xMjksMTEgKzEyOSwxMSBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbC5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01EZCAvVzMgL1ppIC9PZCAvRCAiX0RFQlVHIiAvRCAiV0lOMzIiIC9EICJfV0lORE9XUyIgL0QgIl9VU1JETEwiIC9GRCAvR1ogL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NRGQgL1czIC9aaSAvT2QgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiX0RFQlVHIiAvRCBQTkdfREVCVUc9MSAvRCAiV0lOMzIiIC9EICJfV0lORE9XUyIgL0QgIlBOR19VU0VfUE5HVkNSRCIgL0QgIlBOR19CVUlMRF9ETEwiIC9EICJaTElCX0RMTCIgL1l1InBuZy5oIiAvRkQgL0daIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTURkIC9XMyAvWmkgL09kIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJERUJVRyIgL0QgIl9ERUJVRyIgL0QgUE5HX0RFQlVHPTEgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9EICJQTkdfVVNFX1BOR1ZDUkQiIC9EICJQTkdfQlVJTERfRExMIiAvRCAiWkxJQl9ETEwiIC9ZdSJwbmcuaCIgL0ZEIC9HWiAvYwogTVRMPW1pZGwuZXhlCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiX0RFQlVHIgotIyBBREQgUlNDIC9sIDB4NDA5IC9pICIuLiIgL2QgIl9ERUJVRyIgL2QgUE5HX0RFQlVHPTEgIC9kICJQTkdfVVNFX1BOR1ZDUkQiCisjIEFERCBSU0MgL2wgMHg0MDkgL2kgIi4uXC4uIiAvZCAiX0RFQlVHIiAvZCBQTkdfREVCVUc9MSAgL2QgIlBOR19VU0VfUE5HVkNSRCIKIEJTQzMyPWJzY21ha2UuZXhlCiAjIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28KICMgQUREIEJTQzMyIC9ub2xvZ28KQEAgLTE1NiwxMCArMTU2LDEwIEBACiBNVEw9bWlkbC5leGUKIENQUD1jbC5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1czIC9PMSAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfTElCIiAvRkQgL2MKLSMgQUREIENQUCAvbm9sb2dvIC9XMyAvTzEgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIldJTjMyIiAvRCAiTkRFQlVHIiAvWXUicG5nLmgiIC9GRCAvYworIyBBREQgQ1BQIC9ub2xvZ28gL1czIC9PMSAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9ZdSJwbmcuaCIgL0ZEIC9jCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiTkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDA5IC9pICIuLiIgL2QgIk5ERUJVRyIKKyMgQUREIFJTQyAvbCAweDQwOSAvaSAiLi5cLi4iIC9kICJOREVCVUciCiBCU0MzMj1ic2NtYWtlLmV4ZQogIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCiAjIEFERCBCU0MzMiAvbm9sb2dvCkBAIC0xODIsNyArMTgyLDcgQEAKIE1UTD1taWRsLmV4ZQogQ1BQPWNsLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvVzMgL1ppIC9PZCAvRCAiX0RFQlVHIiAvRCAiV0lOMzIiIC9EICJfTElCIiAvRkQgL0daIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvVzMgL1ppIC9PZCAvSSAiLi4iIC9JICIuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJfREVCVUciIC9EIFBOR19ERUJVRz0xIC9EICJXSU4zMiIgL1l1InBuZy5oIiAvRkQgL0daIC9jCisjIEFERCBDUFAgL25vbG9nbyAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJfREVCVUciIC9EIFBOR19ERUJVRz0xIC9EICJXSU4zMiIgL1l1InBuZy5oIiAvRkQgL0daIC9jCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiX0RFQlVHIgogIyBBREQgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciCkBAIC0yMDgsNyArMjA4LDcgQEAKICMgUFJPUCBEZWZhdWx0X0ZpbHRlciAiY3BwO2M7Y3h4O3JjO2RlZjtyO29kbDtpZGw7aHBqO2JhdCIKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZy5jCitTT1VSQ0U9Li5cLi5ccG5nLmMKICMgU1VCVFJBQ1QgQ1BQIC9ZWCAvWWMgL1l1CiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQpAQCAtMjU5LDQ4ICsyNTksNDggQEAKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlxwbmdlcnJvci5jCitTT1VSQ0U9Li5cLi5ccG5nZXJyb3IuYwogIyBBREQgQ1BQIC9ZYyJwbmcuaCIKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlxwbmdnZXQuYworU09VUkNFPS4uXC4uXHBuZ2dldC5jCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5ccG5nbWVtLmMKK1NPVVJDRT0uLlwuLlxwbmdtZW0uYwogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ3ByZWFkLmMKK1NPVVJDRT0uLlwuLlxwbmdwcmVhZC5jCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5ccG5ncmVhZC5jCitTT1VSQ0U9Li5cLi5ccG5ncmVhZC5jCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5ccG5ncmlvLmMKK1NPVVJDRT0uLlwuLlxwbmdyaW8uYwogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ3J0cmFuLmMKK1NPVVJDRT0uLlwuLlxwbmdydHJhbi5jCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5ccG5ncnV0aWwuYworU09VUkNFPS4uXC4uXHBuZ3J1dGlsLmMKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlxwbmdzZXQuYworU09VUkNFPS4uXC4uXHBuZ3NldC5jCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5ccG5ndHJhbnMuYworU09VUkNFPS4uXC4uXHBuZ3RyYW5zLmMKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlxwbmd2Y3JkLmMKK1NPVVJDRT0uLlwuLlxwbmd2Y3JkLmMKIAogIUlGICAiJChDRkcpIiA9PSAibGlicG5nIC0gV2luMzIgRExMIgogCkBAIC0zMjcsMTkgKzMyNywxOSBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ3dpby5jCitTT1VSQ0U9Li5cLi5ccG5nd2lvLmMKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlxwbmd3cml0ZS5jCitTT1VSQ0U9Li5cLi5ccG5nd3JpdGUuYwogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ3d0cmFuLmMKK1NPVVJDRT0uLlwuLlxwbmd3dHJhbi5jCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5ccG5nd3V0aWwuYworU09VUkNFPS4uXC4uXHBuZ3d1dGlsLmMKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEVuZCBHcm91cAogIyBCZWdpbiBHcm91cCAiSGVhZGVyIEZpbGVzIgpAQCAtMzQ3LDExICszNDcsMTEgQEAKICMgUFJPUCBEZWZhdWx0X0ZpbHRlciAiaDtocHA7aHh4O2htO2lubCIKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZy5oCitTT1VSQ0U9Li5cLi5ccG5nLmgKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlxwbmdjb25mLmgKK1NPVVJDRT0uLlwuLlxwbmdjb25mLmgKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEVuZCBHcm91cAogIyBCZWdpbiBHcm91cCAiUmVzb3VyY2UgRmlsZXMiCmRpZmYgLS1naXQgYS9tc3ZjL2xpYnBuZy5kc3cgYi9kbGwvbXN2Yy9saWJwbmcuZHN3CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBtc3ZjL2xpYnBuZy5kc3cKcmVuYW1lIHRvIGRsbC9tc3ZjL2xpYnBuZy5kc3cKZGlmZiAtLWdpdCBhL21zdmMvcG5nLnJjIGIvZGxsL21zdmMvcG5nLnJjCnNpbWlsYXJpdHkgaW5kZXggOTUlCnJlbmFtZSBmcm9tIG1zdmMvcG5nLnJjCnJlbmFtZSB0byBkbGwvbXN2Yy9wbmcucmMKaW5kZXggZGVjMDJlNS4uZGMyMWMyYiAxMDA2NDQKLS0tIGEvbXN2Yy9wbmcucmMKKysrIGIvZGxsL21zdmMvcG5nLnJjCkBAIC0xOCw2ICsxOCw5IEBACiAjICBlbHNlCiAjICAgIGRlZmluZSBETExGTkFNRV9QT1NURklYICJBIgogIyAgZW5kaWYgLyogIWRlZmluZWQoRExMRk5BTUVfUE9TVEZJWCkuLi4gKi8KKyMgIGlmICFkZWZpbmVkKFNQRUNJQUxCVUlMRCkKKyMgICAgZGVmaW5lIFNQRUNJQUxCVUlMRCAiVXNlIE1NWCBpbnN0cnVjdGlvbnMiCisjICBlbmRpZiAvKiBTUEVDSUFMQlVJTEQgKi8KICNlbmRpZgogCiAjaWYgZGVmaW5lZChQTkdfREVCVUcpICYmIChQTkdfREVCVUcgPiAwKQpkaWZmIC0tZ2l0IGEvbXN2Yy9wbmczMm1zLmRlZiBiL2RsbC9tc3ZjL3BuZzMybXMuZGVmCnNpbWlsYXJpdHkgaW5kZXggOTklCnJlbmFtZSBmcm9tIG1zdmMvcG5nMzJtcy5kZWYKcmVuYW1lIHRvIGRsbC9tc3ZjL3BuZzMybXMuZGVmCmluZGV4IGU5ZjZjYzYuLjY4NWU0MWMgMTAwNjQ0Ci0tLSBhL21zdmMvcG5nMzJtcy5kZWYKKysrIGIvZGxsL21zdmMvcG5nMzJtcy5kZWYKQEAgLTYsNyArNiw3IEBACiBERVNDUklQVElPTiAiUE5HIGltYWdlIGNvbXByZXNzaW9uIGxpYnJhcnkgZm9yIFdpbmRvd3MiCiAKIEVYUE9SVFMKLTtWZXJzaW9uIDEuMC44Cis7VmVyc2lvbiAxLjAuOWJldGExCiAgIHBuZ19idWlsZF9ncmF5c2NhbGVfcGFsZXR0ZSAgQDEKICAgcG5nX2NoZWNrX3NpZyAgICAgICAgQDIKICAgcG5nX2NodW5rX2Vycm9yICAgICAgQDMKZGlmZiAtLWdpdCBhL21zdmMvemxpYi5kZWYgYi9kbGwvbXN2Yy96bGliLmRlZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbXN2Yy96bGliLmRlZgpyZW5hbWUgdG8gZGxsL21zdmMvemxpYi5kZWYKZGlmZiAtLWdpdCBhL21zdmMvemxpYi5kc3AgYi9kbGwvbXN2Yy96bGliLmRzcApzaW1pbGFyaXR5IGluZGV4IDg3JQpyZW5hbWUgZnJvbSBtc3ZjL3psaWIuZHNwCnJlbmFtZSB0byBkbGwvbXN2Yy96bGliLmRzcAppbmRleCA5MjI0M2E2Li5lODJkNjEyIDEwMDY0NAotLS0gYS9tc3ZjL3psaWIuZHNwCisrKyBiL2RsbC9tc3ZjL3psaWIuZHNwCkBAIC0xMDEsMTEgKzEwMSwxMSBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbC5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01EIC9XMyAvTzEgL0QgIk5ERUJVRyIgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9EICJfVVNSRExMIiAvRkQgL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NRCAvVzMgL08xIC9JICIuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiV0lOMzIiIC9EICJfV0lOMzIiIC9EICJfV0lORE9XUyIgL0QgIlpMSUJfRExMIiAvRCAiRFlOQU1JQ19DUkNfVEFCTEUiIC9EICJBU01WIiAvRkFjcyAvRkQgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NRCAvVzMgL08xIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiV0lOMzIiIC9EICJfV0lOMzIiIC9EICJfV0lORE9XUyIgL0QgIlpMSUJfRExMIiAvRCAiRFlOQU1JQ19DUkNfVEFCTEUiIC9EICJBU01WIiAvRkFjcyAvRkQgL2MKIE1UTD1taWRsLmV4ZQogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyIKLSMgQUREIFJTQyAvbCAweDQwOSAvaSAiLi4iIC9kICJOREVCVUciCisjIEFERCBSU0MgL2wgMHg0MDkgL2kgIi4uXC4uIiAvZCAiTkRFQlVHIgogQlNDMzI9YnNjbWFrZS5leGUKICMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwogIyBBREQgQlNDMzIgL25vbG9nbwpAQCAtMTI5LDExICsxMjksMTEgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2wuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NRGQgL1czIC9aaSAvT2QgL0QgIl9ERUJVRyIgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9EICJfVVNSRExMIiAvRkQgL0daIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTURkIC9XMyAvWmkgL09kIC9JICIuLlwuLlx6bGliIiAvRCAiX0RFQlVHIiAvRCAiV0lOMzIiIC9EICJfV0lOMzIiIC9EICJfV0lORE9XUyIgL0QgIlpMSUJfRExMIiAvRCAiRFlOQU1JQ19DUkNfVEFCTEUiIC9EICJBU01WIiAvRkFjcyAvRkQgL0daIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTURkIC9XMyAvWmkgL09kIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiX0RFQlVHIiAvRCAiV0lOMzIiIC9EICJfV0lOMzIiIC9EICJfV0lORE9XUyIgL0QgIlpMSUJfRExMIiAvRCAiRFlOQU1JQ19DUkNfVEFCTEUiIC9EICJBU01WIiAvRkFjcyAvRkQgL0daIC9jCiBNVEw9bWlkbC5leGUKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MDkgL2kgIi4uIiAvZCAiX0RFQlVHIgorIyBBREQgUlNDIC9sIDB4NDA5IC9pICIuLlwuLiIgL2QgIl9ERUJVRyIKIEJTQzMyPWJzY21ha2UuZXhlCiAjIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28KICMgQUREIEJTQzMyIC9ub2xvZ28KQEAgLTIwOCwyMyArMjA4LDIzIEBACiAjIFBST1AgRGVmYXVsdF9GaWx0ZXIgImNwcDtjO2N4eDtyYztkZWY7cjtvZGw7aWRsO2hwajtiYXQiCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXGFkbGVyMzIuYworU09VUkNFPS4uXC4uXC4uXHpsaWJcYWRsZXIzMi5jCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxjb21wcmVzcy5jCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxjb21wcmVzcy5jCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxjcmMzMi5jCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxjcmMzMi5jCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxkZWZsYXRlLmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGRlZmxhdGUuYwogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcY29udHJpYlxhc20zODZcZ3ZtYXQzMmMuYworU09VUkNFPS4uXC4uXC4uXHpsaWJcY29udHJpYlxhc20zODZcZ3ZtYXQzMmMuYwogCiAhSUYgICIkKENGRykiID09ICJ6bGliIC0gV2luMzIgRExMIgogCkBAIC0yNTEsNDYgKzI1MSw0NiBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcZ3ppby5jCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxnemlvLmMKICMgQUREIENQUCAvWWMienV0aWwuaCIKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXGluZmJsb2NrLmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGluZmJsb2NrLmMKICMgQUREIENQUCAvWXUienV0aWwuaCIKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXGluZmNvZGVzLmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGluZmNvZGVzLmMKICMgQUREIENQUCAvWXUienV0aWwuaCIKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXGluZmZhc3QuYworU09VUkNFPS4uXC4uXC4uXHpsaWJcaW5mZmFzdC5jCiAjIEFERCBDUFAgL1l1Inp1dGlsLmgiCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxpbmZsYXRlLmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGluZmxhdGUuYwogIyBBREQgQ1BQIC9ZdSJ6dXRpbC5oIgogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcaW5mdHJlZXMuYworU09VUkNFPS4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuYwogIyBBREQgQ1BQIC9ZdSJ6dXRpbC5oIgogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcaW5mdXRpbC5jCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZ1dGlsLmMKICMgQUREIENQUCAvWXUienV0aWwuaCIKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXHRyZWVzLmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXHRyZWVzLmMKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXHVuY29tcHIuYworU09VUkNFPS4uXC4uXC4uXHpsaWJcdW5jb21wci5jCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCkBAIC0zMTcsNyArMzE3LDcgQEAKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXG1zZG9zXHpsaWIucmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXG1zZG9zXHpsaWIucmMKIAogIUlGICAiJChDRkcpIiA9PSAiemxpYiAtIFdpbjMyIERMTCIKIApAQCAtMzQwLDcgKzM0MCw3IEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlx6dXRpbC5jCitTT1VSQ0U9Li5cLi5cLi5cemxpYlx6dXRpbC5jCiAjIEFERCBDUFAgL1l1Inp1dGlsLmgiCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBFbmQgR3JvdXAKQEAgLTM0OSw0NyArMzQ5LDQ3IEBACiAjIFBST1AgRGVmYXVsdF9GaWx0ZXIgImg7aHBwO2h4eDtobTtpbmwiCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXGRlZmxhdGUuaAorU09VUkNFPS4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxpbmZibG9jay5oCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZibG9jay5oCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxpbmZjb2Rlcy5oCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxpbmZmYXN0LmgKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGluZmZhc3QuaAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcaW5mZml4ZWQuaAorU09VUkNFPS4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcaW5mdHJlZXMuaAorU09VUkNFPS4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcaW5mdXRpbC5oCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZ1dGlsLmgKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXHRyZWVzLmgKK1NPVVJDRT0uLlwuLlwuLlx6bGliXHRyZWVzLmgKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXHpjb25mLmgKK1NPVVJDRT0uLlwuLlwuLlx6bGliXHpjb25mLmgKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXHpsaWIuaAorU09VUkNFPS4uXC4uXC4uXHpsaWJcemxpYi5oCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlx6dXRpbC5oCitTT1VSQ0U9Li5cLi5cLi5cemxpYlx6dXRpbC5oCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBFbmQgR3JvdXAKICMgQmVnaW4gR3JvdXAgIlJlc291cmNlIEZpbGVzIgpkaWZmIC0tZ2l0IGEvd2luY2UvUkVBRE1FRS5XQ0UgYi9kbGwvd2luY2UvUkVBRE1FRS5XQ0UKc2ltaWxhcml0eSBpbmRleCA2OCUKcmVuYW1lIGZyb20gd2luY2UvUkVBRE1FRS5XQ0UKcmVuYW1lIHRvIGRsbC93aW5jZS9SRUFETUVFLldDRQppbmRleCA4ZTYwOGZkLi5lMzE0YzM0IDEwMDY0NAotLS0gYS93aW5jZS9SRUFETUVFLldDRQorKysgYi9kbGwvd2luY2UvUkVBRE1FRS5XQ0UKQEAgLTgsOSArOCw5IEBACiAKIEludHJvZHVjdGlvbgogPT09PT09PT09PT09Ci1UaGlzIGlzIGxpYnBuZyAxLjAuNyBwb3J0ZWQgdG8gV2luZG93c0NFIDIuMCBhbmQgMi4xMS4KLWxpYnBuZyAxLjAuNyBpcyBhIFBORyByZWZlcmVuY2UgbGlicmFyeS4KLVNlZSBSRUFETUUsIGEgZG9jdW1lbnQgb2Ygb3JpZ2luYWwgbGlicG5nIDEuMC43LgorVGhpcyBpcyBsaWJwbmcgMS4wLjliZXRhMSBwb3J0ZWQgdG8gV2luZG93c0NFIDIuMCBhbmQgMi4xMS4KK2xpYnBuZyAxLjAuOWJldGExIGlzIGEgUE5HIHJlZmVyZW5jZSBsaWJyYXJ5LgorU2VlIFJFQURNRSwgYSBkb2N1bWVudCBvZiBvcmlnaW5hbCBsaWJwbmcgMS4wLjliZXRhMS4KIAogemxpYiBmb3IgV2luZG93c0NFCiA9PT09PT09PT09PT09PT09PT0KQEAgLTIzLDcgKzIzLDcgQEAKIHdhcnJhbnR5LiAgSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCiAKLVNlZSBSRUFETUUgYW5kIExJQ0VOU0UsIGRvY3VtZW50cyBvZiBvcmlnaW5hbCBsaWJwbmcgMS4wLjcsIGZvciBjb25kaXRpb25zCitTZWUgUkVBRE1FIGFuZCBMSUNFTlNFLCBkb2N1bWVudHMgb2Ygb3JpZ2luYWwgbGlicG5nIDEuMC45YmV0YTEsIGZvciBjb25kaXRpb25zCiBvZiB1c2UgYW5kIGRpc3RyaWJ1dGlvbi4KIAogRmlsZXMKQEAgLTMzLDggKzMzLDggQEAKICBSRUFETUVKLldDRSAtIHRoaXMgZmlsZShpbiBKYXBhbmVzZSkKICBwbmczMmNlLmRlZiAtIG1vZHVsZSBkZWZpbml0aW9uIGZpbGUgdG8gbWFrZSBETExzCiAKLVNhbXBsZSBwcm9ncmFtcyguLi9wbmd0ZXN0LmMgYW5kIC4uL2NvbnRyaWIvKikgY2FuIGJ1aWxkIG9uIFdpbmRvd3NDRSAyLjExLgotV2luZG93c0NFIDIuMCBhbmQgYmVsb3cgZG8gbm90IHN1cHBvcnQgJ2NvbnNvbGUnIGZ1bmN0aW9ucy4KK1NhbXBsZSBwcm9ncmFtcyguLi8uLi9wbmd0ZXN0LmMgYW5kIC4uLy4uL2NvbnRyaWIvKikgY2FuIGJ1aWxkIG9uIFdpbmRvd3NDRQorMi4xMS4gIFdpbmRvd3NDRSAyLjAgYW5kIGJlbG93IGRvIG5vdCBzdXBwb3J0ICdjb25zb2xlJyBmdW5jdGlvbnMuCiAKIEF1dGhvcgogPT09PT09CmRpZmYgLS1naXQgYS93aW5jZS9SRUFETUVKLldDRSBiL2RsbC93aW5jZS9SRUFETUVKLldDRQpzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSB3aW5jZS9SRUFETUVKLldDRQpyZW5hbWUgdG8gZGxsL3dpbmNlL1JFQURNRUouV0NFCmluZGV4IGEyNGY3MzEuLjQxZTlhMzMgMTAwNjQ0Ci0tLSBhL3dpbmNlL1JFQURNRUouV0NFCisrKyBiL2RsbC93aW5jZS9SRUFETUVKLldDRQpAQCAtMjQsNyArMjQsNyBAQAoggsmCyILBgr2CooKpgsiC6ZTtilGCyYLCgqKCxILggUGN7I7SgUGUepV6jtKBQYK7gsyRvJeYl3CO0ojIik+CzJBslaiBQQogkmORzILJkNOUQ4LwgsaC6YtglrGCzYLIgqKC4ILMgsaCtYLcgreBQgogCi2Cu4LMkbyBQYKxgsyDXIN0g2eDRYNGg0GCzJeYl3CP8IyPgsmCwoKigsSCzYFBjLSUxYLFgqCC6SBsaWJwbmcgMS4wLjeCyQorgruCzJG8gUGCsYLMg1yDdINng0WDRoNBgsyXmJdwj/CMj4LJgsKCooLEgs2BQYy0lMWCxYKggukgbGlicG5nIDEuMC45YmV0YTGCyQogj4CLkoK3gumC4ILMgsaCtYLcgreBQo/agrWCrYLNgUGVdJGugswgUkVBRE1FLExJQ0VOU0UggvCCqJPHgt2CrYK+grOCooFCCiAKII77mF6T4JdlCmRpZmYgLS1naXQgYS93aW5jZS9SRUFETUVaRS5XQ0UgYi9kbGwvd2luY2UvUkVBRE1FWkUuV0NFCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSB3aW5jZS9SRUFETUVaRS5XQ0UKcmVuYW1lIHRvIGRsbC93aW5jZS9SRUFETUVaRS5XQ0UKZGlmZiAtLWdpdCBhL3dpbmNlL1JFQURNRVpKLldDRSBiL2RsbC93aW5jZS9SRUFETUVaSi5XQ0UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHdpbmNlL1JFQURNRVpKLldDRQpyZW5hbWUgdG8gZGxsL3dpbmNlL1JFQURNRVpKLldDRQpkaWZmIC0tZ2l0IGEvd2luY2UvbHBuZ2NlLmRzcCBiL2RsbC93aW5jZS9scG5nY2UuZHNwCnNpbWlsYXJpdHkgaW5kZXggNjMlCnJlbmFtZSBmcm9tIHdpbmNlL2xwbmdjZS5kc3AKcmVuYW1lIHRvIGRsbC93aW5jZS9scG5nY2UuZHNwCmluZGV4IDgyOWE1MTkuLmIzYTBiM2QgMTAwNjQ0Ci0tLSBhL3dpbmNlL2xwbmdjZS5kc3AKKysrIGIvZGxsL3dpbmNlL2xwbmdjZS5kc3AKQEAgLTYyLDcgKzYyLDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2xtaXBzLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIkxQTkdDRV9FWFBPUlRTIiAvWVggL1FNUldDRSAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL08yIC9JICIuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvUU1SV0NFIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9RTVJXQ0UgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIk1JUFMiIC9kICJfTUlQU18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKQEAgLTkzLDcgKzkzLDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2xtaXBzLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTFBOR0NFX0VYUE9SVFMiIC9ZWCAvUU1SV0NFIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvUU1SV0NFIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvUU1SV0NFIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKQEAgLTEyNCw3ICsxMjQsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1zaGNsLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvUXNoNCAvTUMgL1czIC9PMiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiTkRFQlVHIiAvRCAiU0h4IiAvRCAiU0g0IiAvRCAiX1NINF8iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIkxQTkdDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9Rc2g0IC9NQyAvVzMgL08yIC9JICIuLiIgL0kgIi4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJTSHgiIC9EICJTSDQiIC9EICJfU0g0XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL1FzaDQgL01DIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNINCIgL0QgIl9TSDRfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDQiIC9kICJfU0g0XyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgpAQCAtMTU1LDcgKzE1NSw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPXNoY2wuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9Rc2g0IC9NQyAvVzMgL1ppIC9PZCAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiREVCVUciIC9EICJTSHgiIC9EICJTSDQiIC9EICJfU0g0XyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTFBOR0NFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL1FzaDQgL01DIC9XMyAvWmkgL09kIC9JICIuLiIgL0kgIi4uXC4uXHpsaWIiIC9EICJERUJVRyIgL0QgIlNIeCIgL0QgIlNINCIgL0QgIl9TSDRfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvUXNoNCAvTUMgL1czIC9aaSAvT2QgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0g0IiAvRCAiX1NINF8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX0JVSUxEX0RMTCIgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNINCIgL2QgIl9TSDRfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKQEAgLTE4Niw3ICsxODYsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1zaGNsLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJMUE5HQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDMiIC9kICJfU0gzXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgpAQCAtMjE3LDcgKzIxNyw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPXNoY2wuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NJChDRUNydERlYnVnKSAvVzMgL1ppIC9PZCAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiREVCVUciIC9EICJTSHgiIC9EICJTSDMiIC9EICJfU0gzXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTFBOR0NFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0RGVidWcpIC9XMyAvWmkgL09kIC9JICIuLiIgL0kgIi4uXC4uXHpsaWIiIC9EICJERUJVRyIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0gzIiAvRCAiX1NIM18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX0JVSUxEX0RMTCIgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNIMyIgL2QgIl9TSDNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKQEAgLTI0OCw3ICsyNDgsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbGFybS5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01DIC9XMyAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJMUE5HQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUMgL1czIC9PMiAvSSAiLi4iIC9JICIuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX0JVSUxEX0RMTCIgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NQyAvVzMgL08yIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJBUk0iIC9EICJfQVJNXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYwogIyBTVUJUUkFDVCBDUFAgL1lYCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiQVJNIiAvZCAiX0FSTV8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKQEAgLTI3OSw3ICsyNzksNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbGFybS5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01DIC9XMyAvWmkgL09kIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJERUJVRyIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJMUE5HQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUMgL1czIC9aaSAvT2QgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX0JVSUxEX0RMTCIgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NQyAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJBUk0iIC9EICJfQVJNXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYwogIyBTVUJUUkFDVCBDUFAgL1lYCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiQVJNIiAvZCAiX0FSTV8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgpAQCAtMzEwLDcgKzMxMCw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPWNsbWlwcy5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9PMiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiTkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTFBOR0NFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9PMiAvSSAiLi4iIC9JICIuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9PMiAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYwogIyBTVUJUUkFDVCBDUFAgL1lYCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiTUlQUyIgL2QgIl9NSVBTXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgpAQCAtMzQxLDcgKzM0MSw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPWNsbWlwcy5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTFBOR0NFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9aaSAvT2QgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9aaSAvT2QgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYwogIyBTVUJUUkFDVCBDUFAgL1lYCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiTUlQUyIgL2QgIl9NSVBTXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCkBAIC0zNzIsNyArMzcyLDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2wuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NTCAvVzMgL08yIC9EICJ4ODYiIC9EICJfaTM4Nl8iIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiTkRFQlVHIiAvRCAiaV8zODZfIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTFBOR0NFX0VYUE9SVFMiIC9HczgxOTIgL0dGIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUwgL1czIC9PMiAvSSAiLi4iIC9JICIuLlwuLlx6bGliIiAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EICJOREVCVUciIC9EICJpXzM4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX0JVSUxEX0RMTCIgL0dzODE5MiAvR0YgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NTCAvVzMgL08yIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJ4ODYiIC9EICJfaTM4Nl8iIC9EICJfeDg2XyIgL0QgIk5ERUJVRyIgL0QgImlfMzg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvR3M4MTkyIC9HRiAvYwogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIng4NiIgL2QgIl9pMzg2XyIgL2QgIl94ODZfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCiAjIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIng4NiIgL2QgIl9pMzg2XyIgL2QgIl94ODZfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCkBAIC00MDIsNyArNDAyLDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2wuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NTGQgL1czIC9aaSAvT2QgL0QgIng4NiIgL0QgIl9pMzg2XyIgL0QgIl94ODZfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJERUJVRyIgL0QgImlfMzg2XyIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIkxQTkdDRV9FWFBPUlRTIiAvR3M4MTkyIC9HRiAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL1ppIC9PZCAvSSAiLi4iIC9JICIuLlwuLlx6bGliIiAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EICJERUJVRyIgL0QgImlfMzg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvR3M4MTkyIC9HRiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EICJERUJVRyIgL0QgImlfMzg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvR3M4MTkyIC9HRiAvYwogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIng4NiIgL2QgIl9pMzg2XyIgL2QgIl94ODZfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKICMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX3g4Nl8iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgpAQCAtNDMyLDcgKzQzMiw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPWNsLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTUwgL1czIC9PMiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIk5ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIkxQTkdDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NTCAvVzMgL08yIC9JICIuLiIgL0kgIi4uXC4uXHpsaWIiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIk5ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL01MIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIl9VTklDT0RFIiAvRCAiV0lOMzIiIC9EICJTVFJJQ1QiIC9EICJfV0lOMzJfV0NFX0VNVUxBVElPTiIgL0QgIklOVEVSTkFUSU9OQUwiIC9EICJVU0EiIC9EICJJTlRMTVNHX0NPREVQQUdFIiAvRCAiTkRFQlVHIiAvRCAieDg2IiAvRCAiaTQ4NiIgL0QgIl94ODZfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiV0lOMzIiIC9kICJTVFJJQ1QiIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJfV0lOMzJfV0NFX0VNVUxBVElPTiIgL2QgIklOVEVSTkFUSU9OQUwiIC9kICJVU0EiIC9kICJJTlRMTVNHX0NPREVQQUdFIiAvZCAiTkRFQlVHIgpAQCAtNDYxLDcgKzQ2MSw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPWNsLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTUxkIC9XMyAvR20gL1ppIC9PZCAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIl9ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIkxQTkdDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NTGQgL1czIC9HbSAvWmkgL09kIC9JICIuLiIgL0kgIi4uXC4uXHpsaWIiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIl9ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL0dtIC9aaSAvT2QgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIl9VTklDT0RFIiAvRCAiV0lOMzIiIC9EICJTVFJJQ1QiIC9EICJfV0lOMzJfV0NFX0VNVUxBVElPTiIgL0QgIklOVEVSTkFUSU9OQUwiIC9EICJVU0EiIC9EICJJTlRMTVNHX0NPREVQQUdFIiAvRCAiX0RFQlVHIiAvRCAieDg2IiAvRCAiaTQ4NiIgL0QgIl94ODZfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiV0lOMzIiIC9kICJTVFJJQ1QiIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJfV0lOMzJfV0NFX0VNVUxBVElPTiIgL2QgIklOVEVSTkFUSU9OQUwiIC9kICJVU0EiIC9kICJJTlRMTVNHX0NPREVQQUdFIiAvZCAiX0RFQlVHIiAvZCAieDg2IiAvZCAiaTQ4NiIgL2QgIl94ODZfIgpAQCAtNDkwLDcgKzQ5MCw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPWNscHBjLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIlBQQyIgL0QgIl9QUENfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJMUE5HQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlBQQyIgL0QgIl9QUENfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlBQQyIgL0QgIl9QUENfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJwcGMiIC9kICJfcHBjXyIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgpAQCAtNTIxLDcgKzUyMSw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPWNscHBjLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiUFBDIiAvRCAiX1BQQ18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIkxQTkdDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NJChDRUNydERlYnVnKSAvVzMgL1ppIC9PZCAvSSAiLi4iIC9JICIuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJQUEMiIC9EICJfUFBDXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0RGVidWcpIC9XMyAvWmkgL09kIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJERUJVRyIgL0QgIlBQQyIgL0QgIl9QUENfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJwcGMiIC9kICJfcHBjXyIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiREVCVUciCkBAIC01NjMsMjAwICs1NjMsMjAwIEBACiAjIFBST1AgRGVmYXVsdF9GaWx0ZXIgImNwcDtjO2N4eDtyYztkZWY7cjtvZGw7aWRsO2hwajtiYXQiCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlxwbmcuYworU09VUkNFPS4uXC4uXHBuZy5jCiAKICFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdfQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HX0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR19DPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HX0M9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdfQz1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdfQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HX0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HX0M9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR19DPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdfQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HX0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HX0M9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR19DPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdfQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HX0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HX0M9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR19DPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdfQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HX0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HX0M9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR19DPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdfQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HX0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdfQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HX0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfUE5HX0M9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR19DPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR19DPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdfQz1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCiAKIERFUF9DUFBfUE5HX0M9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR19DPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVORElGIApAQCAtNzY4LDIwMCArNzY4LDIwMCBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ2Vycm9yLmMKK1NPVVJDRT0uLlwuLlxwbmdlcnJvci5jCiAKICFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdFUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HRVI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdFUj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdFUj1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdFUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HRVI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HRVI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdFUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HRVI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HRVI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdFUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HRVI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HRVI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdFUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HRVI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HRVI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdFUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HRVI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdFUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HRVI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfUE5HRVI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR0VSPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdFUj1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCiAKIERFUF9DUFBfUE5HRVI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVORElGIApAQCAtOTY5LDIwMCArOTY5LDIwMCBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ2djY3JkLmMKK1NPVVJDRT0uLlwuLlxwbmdnY2NyZC5jCiAKICFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdHQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HR0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdHQz1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdHQz1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdHQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HR0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HR0M9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdHQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HR0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HR0M9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdHQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HR0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HR0M9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdHQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HR0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HR0M9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdHQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HR0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdHQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HR0M9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfUE5HR0M9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR0dDPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdHQz1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCiAKIERFUF9DUFBfUE5HR0M9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVORElGIApAQCAtMTE3MCwyMDAgKzExNzAsMjAwIEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5ccG5nZ2V0LmMKK1NPVVJDRT0uLlwuLlxwbmdnZXQuYwogCiAhSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HR0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCiAKIERFUF9DUFBfUE5HR0U9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HR0U9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCiAKIERFUF9DUFBfUE5HR0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR0dFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfUE5HR0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR0dFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCiAKIERFUF9DUFBfUE5HR0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR0dFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCiAKIERFUF9DUFBfUE5HR0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR0dFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfUE5HR0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HR0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgogCiBERVBfQ1BQX1BOR0dFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdHRT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HR0U9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgogCiBERVBfQ1BQX1BOR0dFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTkRJRiAKQEAgLTEzNzEsMjAwICsxMzcxLDIwMCBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ21lbS5jCitTT1VSQ0U9Li5cLi5ccG5nbWVtLmMKIAogIUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR01FPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgogCiBERVBfQ1BQX1BOR01FPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HTUU9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR01FPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgogCiBERVBfQ1BQX1BOR01FPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdNRT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HTUU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgogCiBERVBfQ1BQX1BOR01FPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdNRT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HTUU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgogCiBERVBfQ1BQX1BOR01FPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdNRT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HTUU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgogCiBERVBfQ1BQX1BOR01FPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdNRT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HTUU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgogCiBERVBfQ1BQX1BOR01FPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR01FPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdNRT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HTUU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HTUU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR01FPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdNRT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HTUU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRU5ESUYgCkBAIC0xNTcyLDIwMCArMTU3MiwyMDAgQEAKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlxwbmdwcmVhZC5jCitTT1VSQ0U9Li5cLi5ccG5ncHJlYWQuYwogCiAhSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HUFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCiAKIERFUF9DUFBfUE5HUFI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1BSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUFI9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCiAKIERFUF9DUFBfUE5HUFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1BSPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfUE5HUFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1BSPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCiAKIERFUF9DUFBfUE5HUFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1BSPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCiAKIERFUF9DUFBfUE5HUFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1BSPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfUE5HUFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HUFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgogCiBERVBfQ1BQX1BOR1BSPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdQUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUFI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgogCiBERVBfQ1BQX1BOR1BSPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTkRJRiAKQEAgLTE3NzMsMjAwICsxNzczLDIwMCBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ3JlYWQuYworU09VUkNFPS4uXC4uXHBuZ3JlYWQuYwogCiAhSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HUkU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCiAKIERFUF9DUFBfUE5HUkU9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUkU9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCiAKIERFUF9DUFBfUE5HUkU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfUE5HUkU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCiAKIERFUF9DUFBfUE5HUkU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCiAKIERFUF9DUFBfUE5HUkU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfUE5HUkU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HUkU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgogCiBERVBfQ1BQX1BOR1JFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdSRT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUkU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgogCiBERVBfQ1BQX1BOR1JFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTkRJRiAKQEAgLTE5NzQsMjAwICsxOTc0LDIwMCBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ3Jpby5jCitTT1VSQ0U9Li5cLi5ccG5ncmlvLmMKIAogIUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgogCiBERVBfQ1BQX1BOR1JJPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUkk9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JJPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgogCiBERVBfQ1BQX1BOR1JJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdSST1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUkk9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgogCiBERVBfQ1BQX1BOR1JJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdSST1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUkk9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgogCiBERVBfQ1BQX1BOR1JJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdSST1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUkk9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgogCiBERVBfQ1BQX1BOR1JJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdSST1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUkk9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgogCiBERVBfQ1BQX1BOR1JJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdSST1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUkk9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HUkk9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JJPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdSST1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUkk9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRU5ESUYgCkBAIC0yMTc1LDIwMCArMjE3NSwyMDAgQEAKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlxwbmdydHJhbi5jCitTT1VSQ0U9Li5cLi5ccG5ncnRyYW4uYwogCiAhSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HUlQ9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCiAKIERFUF9DUFBfUE5HUlQ9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JUPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUlQ9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCiAKIERFUF9DUFBfUE5HUlQ9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfUE5HUlQ9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCiAKIERFUF9DUFBfUE5HUlQ9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCiAKIERFUF9DUFBfUE5HUlQ9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfUE5HUlQ9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HUlQ9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgogCiBERVBfQ1BQX1BOR1JUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdSVD1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUlQ9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgogCiBERVBfQ1BQX1BOR1JUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTkRJRiAKQEAgLTIzNzYsMjAwICsyMzc2LDIwMCBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ3J1dGlsLmMKK1NPVVJDRT0uLlwuLlxwbmdydXRpbC5jCiAKICFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdSVT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUlU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HUlU9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSVT1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdSVT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUlU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HUlU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdSVT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUlU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HUlU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdSVT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUlU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HUlU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdSVT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUlU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HUlU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdSVT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUlU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdSVT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HUlU9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfUE5HUlU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1JVPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdSVT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCiAKIERFUF9DUFBfUE5HUlU9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVORElGIApAQCAtMjU3NywyMDAgKzI1NzcsMjAwIEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5ccG5nc2V0LmMKK1NPVVJDRT0uLlwuLlxwbmdzZXQuYwogCiAhSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HU0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCiAKIERFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdTRT1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1NFPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HU0U9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCiAKIERFUF9DUFBfUE5HU0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1NFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdTRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfUE5HU0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1NFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdTRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCiAKIERFUF9DUFBfUE5HU0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1NFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdTRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCiAKIERFUF9DUFBfUE5HU0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1NFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdTRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfUE5HU0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HU0U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgogCiBERVBfQ1BQX1BOR1NFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdTRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdTRT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HU0U9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgogCiBERVBfQ1BQX1BOR1NFPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdTRT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTkRJRiAKQEAgLTI3NzgsMjAwICsyNzc4LDIwMCBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ3RyYW5zLmMKK1NPVVJDRT0uLlwuLlxwbmd0cmFucy5jCiAKICFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdUUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVFI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdUUj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdUUj1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdUUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVFI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HVFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdUUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVFI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HVFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdUUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVFI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HVFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdUUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVFI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HVFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdUUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVFI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdUUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVFI9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfUE5HVFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1RSPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdUUj1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCiAKIERFUF9DUFBfUE5HVFI9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVORElGIApAQCAtMjk3OSwyMDAgKzI5NzksMjAwIEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5ccG5ndmNyZC5jCitTT1VSQ0U9Li5cLi5ccG5ndmNyZC5jCiAKICFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdWQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVkM9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HVkM9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdWQz1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdWQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVkM9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HVkM9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdWQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVkM9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HVkM9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdWQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVkM9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HVkM9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdWQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVkM9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HVkM9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdWQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVkM9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdWQz1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVkM9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfUE5HVkM9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1ZDPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdWQz1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCiAKIERFUF9DUFBfUE5HVkM9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVORElGIApAQCAtMzE4MCwyMDAgKzMxODAsMjAwIEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5ccG5nd2lvLmMKK1NPVVJDRT0uLlwuLlxwbmd3aW8uYwogCiAhSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HV0k9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCiAKIERFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXST1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dJPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV0k9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCiAKIERFUF9DUFBfUE5HV0k9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfUE5HV0k9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCiAKIERFUF9DUFBfUE5HV0k9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCiAKIERFUF9DUFBfUE5HV0k9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfUE5HV0k9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HV0k9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgogCiBERVBfQ1BQX1BOR1dJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdXST1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV0k9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgogCiBERVBfQ1BQX1BOR1dJPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXST1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTkRJRiAKQEAgLTMzODEsMjAwICszMzgxLDIwMCBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ3dyaXRlLmMKK1NPVVJDRT0uLlwuLlxwbmd3cml0ZS5jCiAKICFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdXUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1I9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdXUj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXUj1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdXUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1I9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HV1I9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdXUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1I9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HV1I9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdXUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1I9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HV1I9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdXUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1I9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HV1I9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdXUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1I9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdXUj1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1I9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfUE5HV1I9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dSPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXUj1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCiAKIERFUF9DUFBfUE5HV1I9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVORElGIApAQCAtMzU4MiwyMDAgKzM1ODIsMjAwIEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5ccG5nd3RyYW4uYworU09VUkNFPS4uXC4uXHBuZ3d0cmFuLmMKIAogIUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgogCiBERVBfQ1BQX1BOR1dUPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdXVD1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dUPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgogCiBERVBfQ1BQX1BOR1dUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdXVD1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgogCiBERVBfQ1BQX1BOR1dUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdXVD1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgogCiBERVBfQ1BQX1BOR1dUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdXVD1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgogCiBERVBfQ1BQX1BOR1dUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdXVD1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgogCiBERVBfQ1BQX1BOR1dUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dUPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVD1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdXVD1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HV1Q9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dUPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdXVD1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRU5ESUYgCkBAIC0zNzgzLDIwMCArMzc4MywyMDAgQEAKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlxwbmd3dXRpbC5jCitTT1VSQ0U9Li5cLi5ccG5nd3V0aWwuYwogCiAhSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HV1U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCiAKIERFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVT1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dVPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1U9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCiAKIERFUF9DUFBfUE5HV1U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dVPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfUE5HV1U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dVPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCiAKIERFUF9DUFBfUE5HV1U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dVPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCiAKIERFUF9DUFBfUE5HV1U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1dVPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfUE5HV1U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HV1U9XAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cYWxsb2MuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgogCiBERVBfQ1BQX1BOR1dVPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdXVT1cCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HV1U9XAotCSIuLlxhbGxvYy5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgogCiBERVBfQ1BQX1BOR1dVPVwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdXVT1cCi0JIi4uXGFsbG9jLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTkRJRiAKQEAgLTM5ODgsMTUgKzM5ODgsMTUgQEAKICMgUFJPUCBEZWZhdWx0X0ZpbHRlciAiaDtocHA7aHh4O2htO2lubCIKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZy5oCitTT1VSQ0U9Li5cLi5ccG5nLmgKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlxwbmdhc21yZC5oCitTT1VSQ0U9Li5cLi5ccG5nYXNtcmQuaAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXHBuZ2NvbmYuaAorU09VUkNFPS4uXC4uXHBuZ2NvbmYuaAogIyBFbmQgU291cmNlIEZpbGUKICMgRW5kIEdyb3VwCiAjIEJlZ2luIEdyb3VwICJSZXNvdXJjZSBGaWxlcyIKZGlmZiAtLWdpdCBhL3dpbmNlL2xwbmdjZS5kc3cgYi9kbGwvd2luY2UvbHBuZ2NlLmRzdwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gd2luY2UvbHBuZ2NlLmRzdwpyZW5hbWUgdG8gZGxsL3dpbmNlL2xwbmdjZS5kc3cKZGlmZiAtLWdpdCBhL3dpbmNlL3BuZzMyY2UuZGVmIGIvZGxsL3dpbmNlL3BuZzMyY2UuZGVmCnNpbWlsYXJpdHkgaW5kZXggOTklCnJlbmFtZSBmcm9tIHdpbmNlL3BuZzMyY2UuZGVmCnJlbmFtZSB0byBkbGwvd2luY2UvcG5nMzJjZS5kZWYKaW5kZXggZTBlNzM5YS4uOGYxMzc5MSAxMDA2NDQKLS0tIGEvd2luY2UvcG5nMzJjZS5kZWYKKysrIGIvZGxsL3dpbmNlL3BuZzMyY2UuZGVmCkBAIC01LDcgKzUsNyBAQAogTElCUkFSWSBscG5nY2UKIAogRVhQT1JUUwotO1ZlcnNpb24gMS4wLjcKKztWZXJzaW9uIDEuMC45YmV0YTEKICAgcG5nX2J1aWxkX2dyYXlzY2FsZV9wYWxldHRlICBAMQogICBwbmdfY2hlY2tfc2lnICAgICAgICBAMgogICBwbmdfY2h1bmtfZXJyb3IgICAgICBAMwpkaWZmIC0tZ2l0IGEvd2luY2UvcG5ndGVzdC5kc3AgYi9kbGwvd2luY2UvcG5ndGVzdC5kc3AKc2ltaWxhcml0eSBpbmRleCA4NCUKcmVuYW1lIGZyb20gd2luY2UvcG5ndGVzdC5kc3AKcmVuYW1lIHRvIGRsbC93aW5jZS9wbmd0ZXN0LmRzcAppbmRleCAzODI2NmM3Li40ZDFkYTJkIDEwMDY0NAotLS0gYS93aW5jZS9wbmd0ZXN0LmRzcAorKysgYi9kbGwvd2luY2UvcG5ndGVzdC5kc3AKQEAgLTYyLDcgKzYyLDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2xtaXBzLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvWVggL1FNUldDRSAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL08yIC9JICIuLiIgL0kgIi4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvUU1SV0NFIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9RTVJXQ0UgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIk1JUFMiIC9kICJfTUlQU18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKQEAgLTkzLDcgKzkzLDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2xtaXBzLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9ZWCAvUU1SV0NFIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL1FNUldDRSAvYworIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0RGVidWcpIC9XMyAvWmkgL09kIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9RTVJXQ0UgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIk1JUFMiIC9kICJfTUlQU18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgpAQCAtMTI0LDcgKzEyNCw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPXNoY2wuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9Rc2g0IC9NQyAvVzMgL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJTSHgiIC9EICJTSDQiIC9EICJfU0g0XyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL1FzaDQgL01DIC9XMyAvTzIgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNINCIgL0QgIl9TSDRfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL1FzaDQgL01DIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNINCIgL0QgIl9TSDRfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvYwogIyBTVUJUUkFDVCBDUFAgL1lYCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiU0h4IiAvZCAiU0g0IiAvZCAiX1NINF8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKQEAgLTE1NSw3ICsxNTUsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1zaGNsLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvUXNoNCAvTUMgL1czIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0g0IiAvRCAiX1NINF8iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9Rc2g0IC9NQyAvVzMgL1ppIC9PZCAvSSAiLi4iIC9JICIuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJTSHgiIC9EICJTSDQiIC9EICJfU0g0XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9Rc2g0IC9NQyAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJTSHgiIC9EICJTSDQiIC9EICJfU0g0XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNINCIgL2QgIl9TSDRfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKQEAgLTE4Niw3ICsxODYsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1zaGNsLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL08yIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJTSHgiIC9EICJTSDMiIC9EICJfU0gzXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNIMyIgL2QgIl9TSDNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCkBAIC0yMTcsNyArMjE3LDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9c2hjbC5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL00kKENFQ3J0RGVidWcpIC9XMyAvWmkgL09kIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJERUJVRyIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0gzIiAvRCAiX1NIM18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0gzIiAvRCAiX1NIM18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDMiIC9kICJfU0gzXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCkBAIC0yNDgsNyArMjQ4LDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2xhcm0uZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NQyAvVzMgL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJBUk0iIC9EICJfQVJNXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL01DIC9XMyAvTzIgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL01DIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvYwogIyBTVUJUUkFDVCBDUFAgL1lYCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiQVJNIiAvZCAiX0FSTV8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKQEAgLTI3OSw3ICsyNzksNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbGFybS5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01DIC9XMyAvWmkgL09kIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJERUJVRyIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUMgL1czIC9aaSAvT2QgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTUMgL1czIC9aaSAvT2QgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJBUk0iIC9kICJfQVJNXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCkBAIC0zMTAsNyArMzEwLDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2xtaXBzLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvUU1GV0NFIC9NQyAvVzMgL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvUU1GV0NFIC9NQyAvVzMgL08yIC9JICIuLiIgL0kgIi4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9PMiAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIk1JUFMiIC9kICJfTUlQU18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKQEAgLTM0MSw3ICszNDEsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbG1pcHMuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9RTUZXQ0UgL01DIC9XMyAvWmkgL09kIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9RTUZXQ0UgL01DIC9XMyAvWmkgL09kIC9JICIuLiIgL0kgIi4uXC4uXHpsaWIiIC9EICJERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvUU1GV0NFIC9NQyAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvYwogIyBTVUJUUkFDVCBDUFAgL1lYCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiTUlQUyIgL2QgIl9NSVBTXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCkBAIC0zNzIsNyArMzcyLDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2wuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NTCAvVzMgL08yIC9EICJ4ODYiIC9EICJfaTM4Nl8iIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiTkRFQlVHIiAvRCAiaV8zODZfIiAvRCAiX01CQ1MiIC9HczgxOTIgL0dGIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUwgL1czIC9PMiAvSSAiLi4iIC9JICIuLlwuLlx6bGliIiAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EICJOREVCVUciIC9EICJpXzM4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9HczgxOTIgL0dGIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTUwgL1czIC9PMiAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EICJOREVCVUciIC9EICJpXzM4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9HczgxOTIgL0dGIC9jCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX3g4Nl8iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKICMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX3g4Nl8iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKQEAgLTQwMiw3ICs0MDIsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbC5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL1ppIC9PZCAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIkRFQlVHIiAvRCAiaV8zODZfIiAvRCAiX01CQ1MiIC9HczgxOTIgL0dGIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUxkIC9XMyAvWmkgL09kIC9JICIuLiIgL0kgIi4uXC4uXHpsaWIiIC9EICJ4ODYiIC9EICJfaTM4Nl8iIC9EICJfeDg2XyIgL0QgIkRFQlVHIiAvRCAiaV8zODZfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvR3M4MTkyIC9HRiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EICJERUJVRyIgL0QgImlfMzg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL0dzODE5MiAvR0YgL2MKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJ4ODYiIC9kICJfaTM4Nl8iIC9kICJfeDg2XyIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiREVCVUciCiAjIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIng4NiIgL2QgIl9pMzg2XyIgL2QgIl94ODZfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKQEAgLTQzMiw3ICs0MzIsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbC5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01MIC9XMyAvTzIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX1VOSUNPREUiIC9EICJXSU4zMiIgL0QgIlNUUklDVCIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvRCAiSU5URVJOQVRJT05BTCIgL0QgIlVTQSIgL0QgIklOVExNU0dfQ09ERVBBR0UiIC9EICJOREVCVUciIC9EICJ4ODYiIC9EICJpNDg2IiAvRCAiX3g4Nl8iIC9EICJfTUJDUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUwgL1czIC9PMiAvSSAiLi4iIC9JICIuLlwuLlx6bGliIiAvRCAiX1VOSUNPREUiIC9EICJXSU4zMiIgL0QgIlNUUklDVCIgL0QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvRCAiSU5URVJOQVRJT05BTCIgL0QgIlVTQSIgL0QgIklOVExNU0dfQ09ERVBBR0UiIC9EICJOREVCVUciIC9EICJ4ODYiIC9EICJpNDg2IiAvRCAiX3g4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTUwgL1czIC9PMiAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiX1VOSUNPREUiIC9EICJXSU4zMiIgL0QgIlNUUklDVCIgL0QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvRCAiSU5URVJOQVRJT05BTCIgL0QgIlVTQSIgL0QgIklOVExNU0dfQ09ERVBBR0UiIC9EICJOREVCVUciIC9EICJ4ODYiIC9EICJpNDg2IiAvRCAiX3g4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiV0lOMzIiIC9kICJTVFJJQ1QiIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJfV0lOMzJfV0NFX0VNVUxBVElPTiIgL2QgIklOVEVSTkFUSU9OQUwiIC9kICJVU0EiIC9kICJJTlRMTVNHX0NPREVQQUdFIiAvZCAiTkRFQlVHIgpAQCAtNDYxLDcgKzQ2MSw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPWNsLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTUxkIC9XMyAvR20gL1ppIC9PZCAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIl9ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgIl9NQkNTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NTGQgL1czIC9HbSAvWmkgL09kIC9JICIuLiIgL0kgIi4uXC4uXHpsaWIiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIl9ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NTGQgL1czIC9HbSAvWmkgL09kIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIl9ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJXSU4zMiIgL2QgIlNUUklDVCIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvZCAiSU5URVJOQVRJT05BTCIgL2QgIlVTQSIgL2QgIklOVExNU0dfQ09ERVBBR0UiIC9kICJfREVCVUciIC9kICJ4ODYiIC9kICJpNDg2IiAvZCAiX3g4Nl8iCkBAIC00OTAsNyArNDkwLDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2xwcGMuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NJChDRUNydCkgL1czIC9PMiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiTkRFQlVHIiAvRCAiUFBDIiAvRCAiX1BQQ18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NJChDRUNydCkgL1czIC9PMiAvSSAiLi4iIC9JICIuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiUFBDIiAvRCAiX1BQQ18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlBQQyIgL0QgIl9QUENfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvYwogIyBTVUJUUkFDVCBDUFAgL1lYCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAicHBjIiAvZCAiX3BwY18iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKQEAgLTUyMSw3ICs1MjEsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbHBwYy5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL00kKENFQ3J0RGVidWcpIC9XMyAvWmkgL09kIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJERUJVRyIgL0QgIlBQQyIgL0QgIl9QUENfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0kgIi4uIiAvSSAiLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiUFBDIiAvRCAiX1BQQ18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiUFBDIiAvRCAiX1BQQ18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJwcGMiIC9kICJfcHBjXyIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiREVCVUciCkBAIC01NjgsMjA5ICs1NjgsMjA5IEBACiAhSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVEU9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVEU9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgogCiBERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVEU9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdURT1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdURT1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVEU9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgogCiBERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVEU9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdURT1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdURT1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgogCiBERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlxwbmcuaCJcCi0JIi4uXHBuZ2FzbXJkLmgiXAotCSIuLlxwbmdjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXHBuZy5oIlwKKwkiLi5cLi5ccG5nYXNtcmQuaCJcCisJIi4uXC4uXHBuZ2NvbmYuaCJcCiAJCiBOT0RFUF9DUFBfUE5HVEU9XAotCSIuLlxhbGxvYy5oIlwKKwkiLi5cLi5cYWxsb2MuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXHBuZy5oIlwKLQkiLi5ccG5nYXNtcmQuaCJcCi0JIi4uXHBuZ2NvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5ccG5nLmgiXAorCSIuLlwuLlxwbmdhc21yZC5oIlwKKwkiLi5cLi5ccG5nY29uZi5oIlwKIAkKIE5PREVQX0NQUF9QTkdURT1cCi0JIi4uXGFsbG9jLmgiXAorCSIuLlwuLlxhbGxvYy5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKIAogREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5ccG5nLmgiXAotCSIuLlxwbmdhc21yZC5oIlwKLQkiLi5ccG5nY29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlxwbmcuaCJcCisJIi4uXC4uXHBuZ2FzbXJkLmgiXAorCSIuLlwuLlxwbmdjb25mLmgiXAogCQogTk9ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cYWxsb2MuaCJcCisJIi4uXC4uXGFsbG9jLmgiXAogCQogCiAhRU5ESUYgCmRpZmYgLS1naXQgYS93aW5jZS9wbmd0ZXN0LmRzdyBiL2RsbC93aW5jZS9wbmd0ZXN0LmRzdwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gd2luY2UvcG5ndGVzdC5kc3cKcmVuYW1lIHRvIGRsbC93aW5jZS9wbmd0ZXN0LmRzdwpkaWZmIC0tZ2l0IGEvd2luY2Uvd2lubWFpbi5jIGIvZGxsL3dpbmNlL3dpbm1haW4uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gd2luY2Uvd2lubWFpbi5jCnJlbmFtZSB0byBkbGwvd2luY2Uvd2lubWFpbi5jCmRpZmYgLS1naXQgYS9kbGwvd2luY2UvemxpYi5kaWZmIGIvZGxsL3dpbmNlL3psaWIuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NmVkMjlmCi0tLSAvZGV2L251bGwKKysrIGIvZGxsL3dpbmNlL3psaWIuZGlmZgpAQCAtMCwwICsxLDIxNjggQEAKK2RpZmYgLWFjIHpsaWIxMTMvZGVmbGF0ZS5jIHpsaWJ3Y2UvZGVmbGF0ZS5jCisqKiogemxpYjExMy9kZWZsYXRlLmMJRnJpIEp1bCAxMCAwMTowNjoxMiAxOTk4CistLS0gemxpYndjZS9kZWZsYXRlLmMJVGh1IE1heSAyNSAxNjo0MjoxOCAyMDAwCisqKioqKioqKioqKioqKioKKyoqKiA5MjEsOTI2ICoqKioKKy0tLSA5MjEsOTMwIC0tLS0KKyAgI2VuZGlmIC8qIEFTTVYgKi8KKyAgCisgICNpZmRlZiBERUJVRworKyAjaWZkZWYgX1dJTjMyX1dDRQorKyAvKiBXaW5kb3dzIENFIGlzIG5vdCBzdXBwb3J0IERFQlVHIHZlcnNpb24ncyB6bGliICovCisrICMgIGRlZmluZSBjaGVja19tYXRjaChzLCBzdGFydCwgbWF0Y2gsIGxlbmd0aCkKKysgI2Vsc2UKKyAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAqIENoZWNrIHRoYXQgdGhlIG1hdGNoIGF0IG1hdGNoX3N0YXJ0IGlzIGluZGVlZCBhIG1hdGNoLgorICAgKi8KKyoqKioqKioqKioqKioqKgorKioqIDk0NCw5NDkgKioqKgorLS0tIDk0OCw5NTQgLS0tLQorICAgICAgICAgIGRvIHsgcHV0YyhzLT53aW5kb3dbc3RhcnQrK10sIHN0ZGVycik7IH0gd2hpbGUgKC0tbGVuZ3RoICE9IDApOworICAgICAgfQorICB9CisrICNlbmRpZgorICAjZWxzZQorICAjICBkZWZpbmUgY2hlY2tfbWF0Y2gocywgc3RhcnQsIG1hdGNoLCBsZW5ndGgpCisgICNlbmRpZgorZGlmZiAtYWMgemxpYjExMy90cmVlcy5jIHpsaWJ3Y2UvdHJlZXMuYworKioqIHpsaWIxMTMvdHJlZXMuYwlUaHUgSnVsIDA5IDAxOjMyOjU4IDE5OTgKKy0tLSB6bGlid2NlL3RyZWVzLmMJVGh1IE1heSAyNSAxNjo0Mjo1MCAyMDAwCisqKioqKioqKioqKioqKioKKyoqKiAxNjgsMTc2ICoqKioKKy0tLSAxNjgsMTgyIC0tLS0KKyAgICAgLyogU2VuZCBhIGNvZGUgb2YgdGhlIGdpdmVuIHRyZWUuIGMgYW5kIHRyZWUgbXVzdCBub3QgaGF2ZSBzaWRlIGVmZmVjdHMgKi8KKyAgCisgICNlbHNlIC8qIERFQlVHICovCisrICNpZmRlZiBfV0lOMzJfV0NFCisrIC8qIFdpbmRvd3MgQ0UgaXMgbm90IHN1cHBvcnQgREVCVUcgdmVyc2lvbidzIHpsaWIgKi8KKysgIyAgZGVmaW5lIHNlbmRfY29kZShzLCBjLCB0cmVlKSBzZW5kX2JpdHMocywgdHJlZVtjXS5Db2RlLCB0cmVlW2NdLkxlbikKKysgCisrICNlbHNlCisgICMgIGRlZmluZSBzZW5kX2NvZGUocywgYywgdHJlZSkgXAorICAgICAgIHsgaWYgKHpfdmVyYm9zZT4yKSBmcHJpbnRmKHN0ZGVyciwiXG5jZCAlM2QgIiwoYykpOyBcCisgICAgICAgICBzZW5kX2JpdHMocywgdHJlZVtjXS5Db2RlLCB0cmVlW2NdLkxlbik7IH0KKysgI2VuZGlmCisgICNlbmRpZgorICAKKyAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitkaWZmIC1hYyB6bGliMTEzL3pjb25mLmggemxpYndjZS96Y29uZi5oCisqKiogemxpYjExMy96Y29uZi5oCVRodSBKdWwgMDkgMDI6NTU6MjggMTk5OAorLS0tIHpsaWJ3Y2UvemNvbmYuaAlUaHUgTWF5IDI1IDE2OjM2OjE2IDIwMDAKKyoqKioqKioqKioqKioqKgorKioqIDk2LDEwMSAqKioqCistLS0gOTYsMTA2IC0tLS0KKyAgIyAgZGVmaW5lIE5FRURfRFVNTVlfUkVUVVJOCisgICNlbmRpZgorICAKKysgLyogV2luZG93cyBDRSBpcyBub3QgaGF2ZSBlcnJuby5oIGZpbGU6ICovCisrICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCisrICMgIGRlZmluZSBOT19FUlJOT19ICisrICNlbmRpZgorKyAKKyAgCisgIC8qIE1heGltdW0gdmFsdWUgZm9yIG1lbUxldmVsIGluIGRlZmxhdGVJbml0MiAqLworICAjaWZuZGVmIE1BWF9NRU1fTEVWRUwKKyoqKioqKioqKioqKioqKgorKioqIDE2MiwxNjggKioqKgorICAKKyAgLyogQ29tcGlsZSB3aXRoIC1EWkxJQl9ETEwgZm9yIFdpbmRvd3MgRExMIHN1cHBvcnQgKi8KKyAgI2lmIGRlZmluZWQoWkxJQl9ETEwpCishICMgIGlmIGRlZmluZWQoX1dJTkRPV1MpIHx8IGRlZmluZWQoV0lORE9XUykKKyAgIyAgICBpZmRlZiBGQVIKKyAgIyAgICAgIHVuZGVmIEZBUgorICAjICAgIGVuZGlmCistLS0gMTY3LDE3MyAtLS0tCisgIAorICAvKiBDb21waWxlIHdpdGggLURaTElCX0RMTCBmb3IgV2luZG93cyBETEwgc3VwcG9ydCAqLworICAjaWYgZGVmaW5lZChaTElCX0RMTCkKKyEgIyAgaWYgZGVmaW5lZChfV0lORE9XUykgfHwgZGVmaW5lZChXSU5ET1dTKSB8fCBkZWZpbmVkKF9XSU4zMl9XQ0UpCisgICMgICAgaWZkZWYgRkFSCisgICMgICAgICB1bmRlZiBGQVIKKyAgIyAgICBlbmRpZgorZGlmZiAtYWMgemxpYjExMy96dXRpbC5jIHpsaWJ3Y2UvenV0aWwuYworKioqIHpsaWIxMTMvenV0aWwuYwlUaHUgSnVsIDA5IDAyOjAxOjQ4IDE5OTgKKy0tLSB6bGlid2NlL3p1dGlsLmMJVGh1IE1heSAyNSAxNjo0MzozNCAyMDAwCisqKioqKioqKioqKioqKioKKyoqKiAzMiwzNyAqKioqCistLS0gMzIsNDAgLS0tLQorICB9CisgIAorICAjaWZkZWYgREVCVUcKKysgI2lmZGVmIF9XSU4zMl9XQ0UKKysgLyogV2luZG93cyBDRSBpcyBub3Qgc3VwcG9ydCBERUJVRyB2ZXJzaW9uJ3MgemxpYiAqLworKyAjZWxzZQorICAKKyAgIyAgaWZuZGVmIHZlcmJvc2UKKyAgIyAgICBkZWZpbmUgdmVyYm9zZSAwCisqKioqKioqKioqKioqKioKKyoqKiA0NSw1MCAqKioqCistLS0gNDgsNTQgLS0tLQorICAgICAgZXhpdCgxKTsKKyAgfQorICAjZW5kaWYKKysgI2VuZGlmCisgIAorICAvKiBleHBvcnRlZCB0byBhbGxvdyBjb252ZXJzaW9uIG9mIGVycm9yIGNvZGUgdG8gc3RyaW5nIGZvciBjb21wcmVzcygpIGFuZAorICAgKiB1bmNvbXByZXNzKCkKKyoqKioqKioqKioqKioqKgorKioqIDIxMSwyMTcgKioqKgorLS0tIDIxNSwyMjUgLS0tLQorICAgICAgdW5zaWduZWQgc2l6ZTsKKyAgeworICAgICAgaWYgKG9wYXF1ZSkgaXRlbXMgKz0gc2l6ZSAtIHNpemU7IC8qIG1ha2UgY29tcGlsZXIgaGFwcHkgKi8KKysgI2lmZGVmIF9XSU4zMl9XQ0UKKysgICAgIHJldHVybiAodm9pZHBmKW1hbGxvYyhpdGVtcyAqIHNpemUpOworKyAjZWxzZQorICAgICAgcmV0dXJuICh2b2lkcGYpY2FsbG9jKGl0ZW1zLCBzaXplKTsKKysgI2VuZGlmCisgIH0KKyAgCisgIHZvaWQgIHpjZnJlZSAob3BhcXVlLCBwdHIpCitkaWZmIC1hYyB6bGliMTEzL3p1dGlsLmggemxpYndjZS96dXRpbC5oCisqKiogemxpYjExMy96dXRpbC5oCVRodSBKdWwgMDkgMDI6MDE6NDggMTk5OAorLS0tIHpsaWJ3Y2UvenV0aWwuaAlUaHUgTWF5IDI1IDE2OjQxOjQ0IDIwMDAKKyoqKioqKioqKioqKioqKgorKioqIDE2LDIyICoqKioKKy0tLSAxNiwyNiAtLS0tCisgICNpbmNsdWRlICJ6bGliLmgiCisgIAorICAjaWZkZWYgU1REQworKyAjaWZkZWYgX1dJTjMyX1dDRQorKyAjICBpbmNsdWRlIDxtYWxsb2MuaD4KKysgI2Vsc2UKKyAgIyAgaW5jbHVkZSA8c3RkZGVmLmg+CisrICNlbmRpZgorICAjICBpbmNsdWRlIDxzdHJpbmcuaD4KKyAgIyAgaW5jbHVkZSA8c3RkbGliLmg+CisgICNlbmRpZgorKioqKioqKioqKioqKioqCisqKiogMTg4LDE5MyAqKioqCistLS0gMTkyLDIwNiAtLS0tCisgIAorICAvKiBEaWFnbm9zdGljIGZ1bmN0aW9ucyAqLworICAjaWZkZWYgREVCVUcKKysgI2lmZGVmIF9XSU4zMl9XQ0UKKysgLyogV2luZG93cyBDRSBpcyBub3Qgc3VwcG9ydCBERUJVRyB2ZXJzaW9uJ3MgemxpYiAqLworKyAjICBkZWZpbmUgQXNzZXJ0KGNvbmQsbXNnKQorKyAjICBkZWZpbmUgVHJhY2UoeCkKKysgIyAgZGVmaW5lIFRyYWNldih4KQorKyAjICBkZWZpbmUgVHJhY2V2dih4KQorKyAjICBkZWZpbmUgVHJhY2VjKGMseCkKKysgIyAgZGVmaW5lIFRyYWNlY3YoYyx4KQorKyAjZWxzZQorICAjICBpbmNsdWRlIDxzdGRpby5oPgorICAgICBleHRlcm4gaW50IHpfdmVyYm9zZTsKKyAgICAgZXh0ZXJuIHZvaWQgel9lcnJvciAgICBPRigoY2hhciAqbSkpOworKioqKioqKioqKioqKioqCisqKiogMTk3LDIwMiAqKioqCistLS0gMjEwLDIxNiAtLS0tCisgICMgIGRlZmluZSBUcmFjZXZ2KHgpIHtpZiAoel92ZXJib3NlPjEpIGZwcmludGYgeCA7fQorICAjICBkZWZpbmUgVHJhY2VjKGMseCkge2lmICh6X3ZlcmJvc2U+MCAmJiAoYykpIGZwcmludGYgeCA7fQorICAjICBkZWZpbmUgVHJhY2VjdihjLHgpIHtpZiAoel92ZXJib3NlPjEgJiYgKGMpKSBmcHJpbnRmIHggO30KKysgI2VuZGlmCisgICNlbHNlCisgICMgIGRlZmluZSBBc3NlcnQoY29uZCxtc2cpCisgICMgIGRlZmluZSBUcmFjZSh4KQorKioqIHpsaWIxMTMvZ3ppby5jCVNhdCBKdWwgIDggMTM6NTk6NDkgMjAwMAorLS0tIHpsaWJ3Y2UvZ3ppby5jCVNhdCBKdWwgIDggMTM6NTg6MjkgMjAwMAorKioqKioqKioqKioqKioqCisqKiogMSw1ICoqKioKKyEgLyogZ3ppby5jIC0tIElPIG9uIC5neiBmaWxlcworICAgKiBDb3B5cmlnaHQgKEMpIDE5OTUtMTk5OCBKZWFuLWxvdXAgR2FpbGx5LgorICAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gemxpYi5oCisgICAqCisgICAqIENvbXBpbGUgdGhpcyBmaWxlIHdpdGggLUROT19ERUZMQVRFIHRvIGF2b2lkIHRoZSBjb21wcmVzc2lvbiBjb2RlLgorLS0tIDEsNiAtLS0tCishIC8qIGd6aW8uYyAtLSBJTyBvbiAuZ3ogZmlsZXMgZm9yIFdpbmRvd3NDRQorICAgKiBDb3B5cmlnaHQgKEMpIDE5OTUtMTk5OCBKZWFuLWxvdXAgR2FpbGx5LgorKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgICAgICBUZW5payBDby4sTHRkLgorICAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gemxpYi5oCisgICAqCisgICAqIENvbXBpbGUgdGhpcyBmaWxlIHdpdGggLUROT19ERUZMQVRFIHRvIGF2b2lkIHRoZSBjb21wcmVzc2lvbiBjb2RlLgorKioqKioqKioqKioqKioqCisqKiogNywxMyAqKioqCisgIAorICAvKiBAKCMpICRJZCQgKi8KKyAgCishICNpbmNsdWRlIDxzdGRpby5oPgorICAKKyAgI2luY2x1ZGUgInp1dGlsLmgiCisgIAorLS0tIDgsMTQgLS0tLQorICAKKyAgLyogQCgjKSAkSWQkICovCisgIAorISAjaW5jbHVkZSA8d2luZG93cy5oPgorICAKKyAgI2luY2x1ZGUgInp1dGlsLmgiCisgIAorKioqKioqKioqKioqKioqCisqKiogNDEsNDcgKioqKgorICAgICAgel9zdHJlYW0gc3RyZWFtOworICAgICAgaW50ICAgICAgel9lcnI7ICAgLyogZXJyb3IgY29kZSBmb3IgbGFzdCBzdHJlYW0gb3BlcmF0aW9uICovCisgICAgICBpbnQgICAgICB6X2VvZjsgICAvKiBzZXQgaWYgZW5kIG9mIGlucHV0IGZpbGUgKi8KKyEgICAgIEZJTEUgICAgICpmaWxlOyAgIC8qIC5neiBmaWxlICovCisgICAgICBCeXRlICAgICAqaW5idWY7ICAvKiBpbnB1dCBidWZmZXIgKi8KKyAgICAgIEJ5dGUgICAgICpvdXRidWY7IC8qIG91dHB1dCBidWZmZXIgKi8KKyAgICAgIHVMb25nICAgIGNyYzsgICAgIC8qIGNyYzMyIG9mIHVuY29tcHJlc3NlZCBkYXRhICovCistLS0gNDIsNDggLS0tLQorICAgICAgel9zdHJlYW0gc3RyZWFtOworICAgICAgaW50ICAgICAgel9lcnI7ICAgLyogZXJyb3IgY29kZSBmb3IgbGFzdCBzdHJlYW0gb3BlcmF0aW9uICovCisgICAgICBpbnQgICAgICB6X2VvZjsgICAvKiBzZXQgaWYgZW5kIG9mIGlucHV0IGZpbGUgKi8KKyEgICAgIEhBTkRMRSAgIGZpbGU7ICAgIC8qIC5neiBmaWxlICovCisgICAgICBCeXRlICAgICAqaW5idWY7ICAvKiBpbnB1dCBidWZmZXIgKi8KKyAgICAgIEJ5dGUgICAgICpvdXRidWY7IC8qIG91dHB1dCBidWZmZXIgKi8KKyAgICAgIHVMb25nICAgIGNyYzsgICAgIC8qIGNyYzMyIG9mIHVuY29tcHJlc3NlZCBkYXRhICovCisqKioqKioqKioqKioqKioKKyoqKiA1OCw2NCAqKioqCisgIGxvY2FsIGludCAgICBnZXRfYnl0ZSAgICAgT0YoKGd6X3N0cmVhbSAqcykpOworICBsb2NhbCB2b2lkICAgY2hlY2tfaGVhZGVyIE9GKChnel9zdHJlYW0gKnMpKTsKKyAgbG9jYWwgaW50ICAgIGRlc3Ryb3kgICAgICBPRigoZ3pfc3RyZWFtICpzKSk7CishIGxvY2FsIHZvaWQgICBwdXRMb25nICAgICAgT0YoKEZJTEUgKmZpbGUsIHVMb25nIHgpKTsKKyAgbG9jYWwgdUxvbmcgIGdldExvbmcgICAgICBPRigoZ3pfc3RyZWFtICpzKSk7CisgIAorICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSA1OSw2NSAtLS0tCisgIGxvY2FsIGludCAgICBnZXRfYnl0ZSAgICAgT0YoKGd6X3N0cmVhbSAqcykpOworICBsb2NhbCB2b2lkICAgY2hlY2tfaGVhZGVyIE9GKChnel9zdHJlYW0gKnMpKTsKKyAgbG9jYWwgaW50ICAgIGRlc3Ryb3kgICAgICBPRigoZ3pfc3RyZWFtICpzKSk7CishIGxvY2FsIHZvaWQgICBwdXRMb25nICAgICAgT0YoKEhBTkRMRSBmaWxlLCB1TG9uZyB4KSk7CisgIGxvY2FsIHVMb25nICBnZXRMb25nICAgICAgT0YoKGd6X3N0cmVhbSAqcykpOworICAKKyAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisqKioqKioqKioqKioqKioKKyoqKiA4Miw4NyAqKioqCistLS0gODMsOTEgLS0tLQorICAgICAgZ3pfc3RyZWFtICpzOworICAgICAgY2hhciBmbW9kZVs4MF07IC8qIGNvcHkgb2YgbW9kZSwgd2l0aG91dCB0aGUgY29tcHJlc3Npb24gbGV2ZWwgKi8KKyAgICAgIGNoYXIgKm0gPSBmbW9kZTsKKysgICAgIGNoYXIgY2J1ZmZbMTBdOworKyAgICAgRFdPUkQgc2l6ZTsKKysgICAgIFRDSEFSIGZpbGVbTUFYX1BBVEhdOworICAKKyAgICAgIGlmICghcGF0aCB8fCAhbW9kZSkgcmV0dXJuIFpfTlVMTDsKKyAgCisqKioqKioqKioqKioqKioKKyoqKiA5NCwxMDAgKioqKgorICAgICAgcy0+c3RyZWFtLm5leHRfaW4gPSBzLT5pbmJ1ZiA9IFpfTlVMTDsKKyAgICAgIHMtPnN0cmVhbS5uZXh0X291dCA9IHMtPm91dGJ1ZiA9IFpfTlVMTDsKKyAgICAgIHMtPnN0cmVhbS5hdmFpbF9pbiA9IHMtPnN0cmVhbS5hdmFpbF9vdXQgPSAwOworISAgICAgcy0+ZmlsZSA9IE5VTEw7CisgICAgICBzLT56X2VyciA9IFpfT0s7CisgICAgICBzLT56X2VvZiA9IDA7CisgICAgICBzLT5jcmMgPSBjcmMzMigwTCwgWl9OVUxMLCAwKTsKKy0tLSA5OCwxMDQgLS0tLQorICAgICAgcy0+c3RyZWFtLm5leHRfaW4gPSBzLT5pbmJ1ZiA9IFpfTlVMTDsKKyAgICAgIHMtPnN0cmVhbS5uZXh0X291dCA9IHMtPm91dGJ1ZiA9IFpfTlVMTDsKKyAgICAgIHMtPnN0cmVhbS5hdmFpbF9pbiA9IHMtPnN0cmVhbS5hdmFpbF9vdXQgPSAwOworISAgICAgcy0+ZmlsZSA9IElOVkFMSURfSEFORExFX1ZBTFVFOworICAgICAgcy0+el9lcnIgPSBaX09LOworICAgICAgcy0+el9lb2YgPSAwOworICAgICAgcy0+Y3JjID0gY3JjMzIoMEwsIFpfTlVMTCwgMCk7CisqKioqKioqKioqKioqKioKKyoqKiAxMTIsMTI1ICoqKioKKyAgICAgICAgICBpZiAoKnAgPT0gJ3InKSBzLT5tb2RlID0gJ3InOworICAgICAgICAgIGlmICgqcCA9PSAndycgfHwgKnAgPT0gJ2EnKSBzLT5tb2RlID0gJ3cnOworICAgICAgICAgIGlmICgqcCA+PSAnMCcgJiYgKnAgPD0gJzknKSB7CishIAkgICAgbGV2ZWwgPSAqcCAtICcwJzsKKyEgCX0gZWxzZSBpZiAoKnAgPT0gJ2YnKSB7CishIAkgIHN0cmF0ZWd5ID0gWl9GSUxURVJFRDsKKyEgCX0gZWxzZSBpZiAoKnAgPT0gJ2gnKSB7CishIAkgIHN0cmF0ZWd5ID0gWl9IVUZGTUFOX09OTFk7CishIAl9IGVsc2UgeworISAJICAgICptKysgPSAqcDsgLyogY29weSB0aGUgbW9kZSAqLworISAJfQorICAgICAgfSB3aGlsZSAoKnArKyAmJiBtICE9IGZtb2RlICsgc2l6ZW9mKGZtb2RlKSk7CisgICAgICBpZiAocy0+bW9kZSA9PSAnXDAnKSByZXR1cm4gZGVzdHJveShzKSwgKGd6RmlsZSlaX05VTEw7CisgICAgICAKKy0tLSAxMTYsMTI5IC0tLS0KKyAgICAgICAgICBpZiAoKnAgPT0gJ3InKSBzLT5tb2RlID0gJ3InOworICAgICAgICAgIGlmICgqcCA9PSAndycgfHwgKnAgPT0gJ2EnKSBzLT5tb2RlID0gJ3cnOworICAgICAgICAgIGlmICgqcCA+PSAnMCcgJiYgKnAgPD0gJzknKSB7CishICAgICAgICAgICAgIGxldmVsID0gKnAgLSAnMCc7CishICAgICAgICAgfSBlbHNlIGlmICgqcCA9PSAnZicpIHsKKyEgICAgICAgICAgIHN0cmF0ZWd5ID0gWl9GSUxURVJFRDsKKyEgICAgICAgICB9IGVsc2UgaWYgKCpwID09ICdoJykgeworISAgICAgICAgICAgc3RyYXRlZ3kgPSBaX0hVRkZNQU5fT05MWTsKKyEgICAgICAgICB9IGVsc2UgeworISAgICAgICAgICAgICAqbSsrID0gKnA7IC8qIGNvcHkgdGhlIG1vZGUgKi8KKyEgICAgICAgICB9CisgICAgICB9IHdoaWxlICgqcCsrICYmIG0gIT0gZm1vZGUgKyBzaXplb2YoZm1vZGUpKTsKKyAgICAgIGlmIChzLT5tb2RlID09ICdcMCcpIHJldHVybiBkZXN0cm95KHMpLCAoZ3pGaWxlKVpfTlVMTDsKKyAgICAgIAorKioqKioqKioqKioqKioqCisqKiogMTUyLDE3NyAqKioqCisgICAgICB9CisgICAgICBzLT5zdHJlYW0uYXZhaWxfb3V0ID0gWl9CVUZTSVpFOworICAKKyEgICAgIGVycm5vID0gMDsKKyEgICAgIHMtPmZpbGUgPSBmZCA8IDAgPyBGX09QRU4ocGF0aCwgZm1vZGUpIDogKEZJTEUqKWZkb3BlbihmZCwgZm1vZGUpOworICAKKyEgICAgIGlmIChzLT5maWxlID09IE5VTEwpIHsKKyAgICAgICAgICByZXR1cm4gZGVzdHJveShzKSwgKGd6RmlsZSlaX05VTEw7CisgICAgICB9CisgICAgICBpZiAocy0+bW9kZSA9PSAndycpIHsKKyAgICAgICAgICAvKiBXcml0ZSBhIHZlcnkgc2ltcGxlIC5neiBoZWFkZXI6CisgICAgICAgICAgICovCishICAgICAgICAgZnByaW50ZihzLT5maWxlLCAiJWMlYyVjJWMlYyVjJWMlYyVjJWMiLCBnel9tYWdpY1swXSwgZ3pfbWFnaWNbMV0sCishICAgICAgICAgICAgICBaX0RFRkxBVEVELCAwIC8qZmxhZ3MqLywgMCwwLDAsMCAvKnRpbWUqLywgMCAvKnhmbGFncyovLCBPU19DT0RFKTsKKyEgCXMtPnN0YXJ0cG9zID0gMTBMOworISAJLyogV2UgdXNlIDEwTCBpbnN0ZWFkIG9mIGZ0ZWxsKHMtPmZpbGUpIHRvIGJlY2F1c2UgZnRlbGwgY2F1c2VzIGFuCisgICAgICAgICAgICogZmZsdXNoIG9uIHNvbWUgc3lzdGVtcy4gVGhpcyB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5IGRvZXNuJ3QgdXNlCisgICAgICAgICAgICogc3RhcnRwb3MgYW55d2F5IGluIHdyaXRlIG1vZGUsIHNvIHRoaXMgaW5pdGlhbGl6YXRpb24gaXMgbm90CisgICAgICAgICAgICogbmVjZXNzYXJ5LgorICAgICAgICAgICAqLworICAgICAgfSBlbHNlIHsKKyEgCWNoZWNrX2hlYWRlcihzKTsgLyogc2tpcCB0aGUgLmd6IGhlYWRlciAqLworISAJcy0+c3RhcnRwb3MgPSAoZnRlbGwocy0+ZmlsZSkgLSBzLT5zdHJlYW0uYXZhaWxfaW4pOworICAgICAgfQorICAgICAgCisgICAgICByZXR1cm4gKGd6RmlsZSlzOworLS0tIDE1NiwxOTUgLS0tLQorICAgICAgfQorICAgICAgcy0+c3RyZWFtLmF2YWlsX291dCA9IFpfQlVGU0laRTsKKyAgCishICAgICBTZXRMYXN0RXJyb3IoTk9fRVJST1IpOworISAgICAgaWYgKChIQU5ETEUpZmQgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKKyEgICAgICAgICBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FDUCwgMCwgcGF0aCwgLTEsIGZpbGUsIE1BWF9QQVRIKTsKKyEgICAgICAgICBzLT5maWxlID0gQ3JlYXRlRmlsZShmaWxlLCBHRU5FUklDX1JFQUR8R0VORVJJQ19XUklURSwgMCwgTlVMTCwgT1BFTl9BTFdBWVMsIDAsIE5VTEwpOworISAgICAgfSBlbHNlIHsKKyEgICAgICAgICBzLT5maWxlID0gKEhBTkRMRSlmZDsKKyEgICAgIH0KKyAgCishICAgICBpZiAocy0+ZmlsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkgeworICAgICAgICAgIHJldHVybiBkZXN0cm95KHMpLCAoZ3pGaWxlKVpfTlVMTDsKKyAgICAgIH0KKyAgICAgIGlmIChzLT5tb2RlID09ICd3JykgeworICAgICAgICAgIC8qIFdyaXRlIGEgdmVyeSBzaW1wbGUgLmd6IGhlYWRlcjoKKyAgICAgICAgICAgKi8KKyEgICAgICAgICBjYnVmZlswXSA9IGd6X21hZ2ljWzBdOworISAgICAgICAgIGNidWZmWzFdID0gZ3pfbWFnaWNbMV07CishICAgICAgICAgY2J1ZmZbMl0gPSBaX0RFRkxBVEVEOworISAgICAgICAgIGNidWZmWzNdID0gMDsgLypmbGFncyovCishICAgICAgICAgY2J1ZmZbNF0gPSAwOworISAgICAgICAgIGNidWZmWzVdID0gMDsKKyEgICAgICAgICBjYnVmZls2XSA9IDA7CishICAgICAgICAgY2J1ZmZbN10gPSAwOyAvKnRpbWUqLzsKKyEgICAgICAgICBjYnVmZls4XSA9IDA7IC8qeGZsYWdzKi87CishICAgICAgICAgY2J1ZmZbOV0gPSBPU19DT0RFOworISAgICAgICAgIFdyaXRlRmlsZShzLT5maWxlLCBjYnVmZiwgMTAsICZzaXplLCBOVUxMKTsKKyEgICAgICAgICBzLT5zdGFydHBvcyA9IDEwTDsKKyEgICAgICAgICAvKiBXZSB1c2UgMTBMIGluc3RlYWQgb2YgZnRlbGwocy0+ZmlsZSkgdG8gYmVjYXVzZSBmdGVsbCBjYXVzZXMgYW4KKyAgICAgICAgICAgKiBmZmx1c2ggb24gc29tZSBzeXN0ZW1zLiBUaGlzIHZlcnNpb24gb2YgdGhlIGxpYnJhcnkgZG9lc24ndCB1c2UKKyAgICAgICAgICAgKiBzdGFydHBvcyBhbnl3YXkgaW4gd3JpdGUgbW9kZSwgc28gdGhpcyBpbml0aWFsaXphdGlvbiBpcyBub3QKKyAgICAgICAgICAgKiBuZWNlc3NhcnkuCisgICAgICAgICAgICovCisgICAgICB9IGVsc2UgeworISAgICAgICAgIGNoZWNrX2hlYWRlcihzKTsgLyogc2tpcCB0aGUgLmd6IGhlYWRlciAqLworISAgICAgICAgIHMtPnN0YXJ0cG9zID0gKFNldEZpbGVQb2ludGVyKHMtPmZpbGUsIDAsIE5VTEwsIEZJTEVfQ1VSUkVOVCkgLSBzLT5zdHJlYW0uYXZhaWxfaW4pOworICAgICAgfQorICAgICAgCisgICAgICByZXR1cm4gKGd6RmlsZSlzOworKioqKioqKioqKioqKioqCisqKiogMTk3LDIwNSAqKioqCisgIHsKKyAgICAgIGNoYXIgbmFtZVsyMF07CisgIAorISAgICAgaWYgKGZkIDwgMCkgcmV0dXJuIChnekZpbGUpWl9OVUxMOworISAgICAgc3ByaW50ZihuYW1lLCAiPGZkOiVkPiIsIGZkKTsgLyogZm9yIGRlYnVnZ2luZyAqLworICAKKyAgICAgIHJldHVybiBnel9vcGVuIChuYW1lLCBtb2RlLCBmZCk7CisgIH0KKyAgCistLS0gMjE1LDIyNSAtLS0tCisgIHsKKyAgICAgIGNoYXIgbmFtZVsyMF07CisgIAorISAgICAgaWYgKChIQU5ETEUpZmQgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpCishICAgICAgICAgcmV0dXJuIChnekZpbGUpWl9OVUxMOworICAKKysgICAgIHN0cmNweShuYW1lLCAiPGd6ZG9wZW4+Iik7IC8qIGZvciBkZWJ1Z2dpbmcgKi8KKysgCisgICAgICByZXR1cm4gZ3pfb3BlbiAobmFtZSwgbW9kZSwgZmQpOworICB9CisgIAorKioqKioqKioqKioqKioqCisqKiogMjEyLDIxNyAqKioqCistLS0gMjMyLDIzOCAtLS0tCisgICAgICBpbnQgc3RyYXRlZ3k7CisgIHsKKyAgICAgIGd6X3N0cmVhbSAqcyA9IChnel9zdHJlYW0qKWZpbGU7CisrICAgICBEV09SRCBzaXplOworICAKKyAgICAgIGlmIChzID09IE5VTEwgfHwgcy0+bW9kZSAhPSAndycpIHJldHVybiBaX1NUUkVBTV9FUlJPUjsKKyAgCisqKioqKioqKioqKioqKioKKyoqKiAyMTgsMjI4ICoqKioKKyAgICAgIC8qIE1ha2Ugcm9vbSB0byBhbGxvdyBmbHVzaGluZyAqLworICAgICAgaWYgKHMtPnN0cmVhbS5hdmFpbF9vdXQgPT0gMCkgeworICAKKyEgCXMtPnN0cmVhbS5uZXh0X291dCA9IHMtPm91dGJ1ZjsKKyEgCWlmIChmd3JpdGUocy0+b3V0YnVmLCAxLCBaX0JVRlNJWkUsIHMtPmZpbGUpICE9IFpfQlVGU0laRSkgeworISAJICAgIHMtPnpfZXJyID0gWl9FUlJOTzsKKyEgCX0KKyEgCXMtPnN0cmVhbS5hdmFpbF9vdXQgPSBaX0JVRlNJWkU7CisgICAgICB9CisgIAorICAgICAgcmV0dXJuIGRlZmxhdGVQYXJhbXMgKCYocy0+c3RyZWFtKSwgbGV2ZWwsIHN0cmF0ZWd5KTsKKy0tLSAyMzksMjQ5IC0tLS0KKyAgICAgIC8qIE1ha2Ugcm9vbSB0byBhbGxvdyBmbHVzaGluZyAqLworICAgICAgaWYgKHMtPnN0cmVhbS5hdmFpbF9vdXQgPT0gMCkgeworICAKKyEgICAgICAgICBzLT5zdHJlYW0ubmV4dF9vdXQgPSBzLT5vdXRidWY7CishICAgICAgICAgaWYgKCFXcml0ZUZpbGUocy0+ZmlsZSwgcy0+b3V0YnVmLCBaX0JVRlNJWkUsICZzaXplLCBOVUxMKSB8fCBzaXplICE9IFpfQlVGU0laRSkgeworISAgICAgICAgICAgICBzLT56X2VyciA9IFpfRVJSTk87CishICAgICAgICAgfQorISAgICAgICAgIHMtPnN0cmVhbS5hdmFpbF9vdXQgPSBaX0JVRlNJWkU7CisgICAgICB9CisgIAorICAgICAgcmV0dXJuIGRlZmxhdGVQYXJhbXMgKCYocy0+c3RyZWFtKSwgbGV2ZWwsIHN0cmF0ZWd5KTsKKyoqKioqKioqKioqKioqKgorKioqIDIzNiwyNTEgKioqKgorICBsb2NhbCBpbnQgZ2V0X2J5dGUocykKKyAgICAgIGd6X3N0cmVhbSAqczsKKyAgeworISAgICAgaWYgKHMtPnpfZW9mKSByZXR1cm4gRU9GOworICAgICAgaWYgKHMtPnN0cmVhbS5hdmFpbF9pbiA9PSAwKSB7CishIAllcnJubyA9IDA7CishIAlzLT5zdHJlYW0uYXZhaWxfaW4gPSBmcmVhZChzLT5pbmJ1ZiwgMSwgWl9CVUZTSVpFLCBzLT5maWxlKTsKKyEgCWlmIChzLT5zdHJlYW0uYXZhaWxfaW4gPT0gMCkgeworISAJICAgIHMtPnpfZW9mID0gMTsKKyEgCSAgICBpZiAoZmVycm9yKHMtPmZpbGUpKSBzLT56X2VyciA9IFpfRVJSTk87CishIAkgICAgcmV0dXJuIEVPRjsKKyEgCX0KKyEgCXMtPnN0cmVhbS5uZXh0X2luID0gcy0+aW5idWY7CisgICAgICB9CisgICAgICBzLT5zdHJlYW0uYXZhaWxfaW4tLTsKKyAgICAgIHJldHVybiAqKHMtPnN0cmVhbS5uZXh0X2luKSsrOworLS0tIDI1NywyNzMgLS0tLQorICBsb2NhbCBpbnQgZ2V0X2J5dGUocykKKyAgICAgIGd6X3N0cmVhbSAqczsKKyAgeworISAgICAgaWYgKHMtPnpfZW9mKSByZXR1cm4gLTE7CisgICAgICBpZiAocy0+c3RyZWFtLmF2YWlsX2luID09IDApIHsKKyEgICAgICAgICBTZXRMYXN0RXJyb3IoTk9fRVJST1IpOworISAgICAgICAgIGlmICghUmVhZEZpbGUocy0+ZmlsZSwgcy0+aW5idWYsIFpfQlVGU0laRSwgJnMtPnN0cmVhbS5hdmFpbF9pbiwgTlVMTCkpIHsKKyEgICAgICAgICAgICAgcy0+el9lcnIgPSBaX0VSUk5POworISAgICAgICAgIH0KKyEgICAgICAgICBpZiAocy0+c3RyZWFtLmF2YWlsX2luID09IDApIHsKKyEgICAgICAgICAgICAgcy0+el9lb2YgPSAxOworISAgICAgICAgICAgICByZXR1cm4gLTE7CishICAgICAgICAgfQorISAgICAgICAgIHMtPnN0cmVhbS5uZXh0X2luID0gcy0+aW5idWY7CisgICAgICB9CisgICAgICBzLT5zdHJlYW0uYXZhaWxfaW4tLTsKKyAgICAgIHJldHVybiAqKHMtPnN0cmVhbS5uZXh0X2luKSsrOworKioqKioqKioqKioqKioqCisqKiogMjcwLDI5MSAqKioqCisgIAorICAgICAgLyogQ2hlY2sgdGhlIGd6aXAgbWFnaWMgaGVhZGVyICovCisgICAgICBmb3IgKGxlbiA9IDA7IGxlbiA8IDI7IGxlbisrKSB7CishIAljID0gZ2V0X2J5dGUocyk7CishIAlpZiAoYyAhPSBnel9tYWdpY1tsZW5dKSB7CishIAkgICAgaWYgKGxlbiAhPSAwKSBzLT5zdHJlYW0uYXZhaWxfaW4rKywgcy0+c3RyZWFtLm5leHRfaW4tLTsKKyEgCSAgICBpZiAoYyAhPSBFT0YpIHsKKyEgCQlzLT5zdHJlYW0uYXZhaWxfaW4rKywgcy0+c3RyZWFtLm5leHRfaW4tLTsKKyEgCQlzLT50cmFuc3BhcmVudCA9IDE7CishIAkgICAgfQorISAJICAgIHMtPnpfZXJyID0gcy0+c3RyZWFtLmF2YWlsX2luICE9IDAgPyBaX09LIDogWl9TVFJFQU1fRU5EOworISAJICAgIHJldHVybjsKKyEgCX0KKyAgICAgIH0KKyAgICAgIG1ldGhvZCA9IGdldF9ieXRlKHMpOworICAgICAgZmxhZ3MgPSBnZXRfYnl0ZShzKTsKKyAgICAgIGlmIChtZXRob2QgIT0gWl9ERUZMQVRFRCB8fCAoZmxhZ3MgJiBSRVNFUlZFRCkgIT0gMCkgeworISAJcy0+el9lcnIgPSBaX0RBVEFfRVJST1I7CishIAlyZXR1cm47CisgICAgICB9CisgIAorICAgICAgLyogRGlzY2FyZCB0aW1lLCB4ZmxhZ3MgYW5kIE9TIGNvZGU6ICovCistLS0gMjkyLDMxMyAtLS0tCisgIAorICAgICAgLyogQ2hlY2sgdGhlIGd6aXAgbWFnaWMgaGVhZGVyICovCisgICAgICBmb3IgKGxlbiA9IDA7IGxlbiA8IDI7IGxlbisrKSB7CishICAgICAgICAgYyA9IGdldF9ieXRlKHMpOworISAgICAgICAgIGlmIChjICE9IGd6X21hZ2ljW2xlbl0pIHsKKyEgICAgICAgICAgICAgaWYgKGxlbiAhPSAwKSBzLT5zdHJlYW0uYXZhaWxfaW4rKywgcy0+c3RyZWFtLm5leHRfaW4tLTsKKyEgICAgICAgICAgICAgaWYgKGMgIT0gLTEpIHsKKyEgICAgICAgICAgICAgICAgIHMtPnN0cmVhbS5hdmFpbF9pbisrLCBzLT5zdHJlYW0ubmV4dF9pbi0tOworISAgICAgICAgICAgICAgICAgcy0+dHJhbnNwYXJlbnQgPSAxOworISAgICAgICAgICAgICB9CishICAgICAgICAgICAgIHMtPnpfZXJyID0gcy0+c3RyZWFtLmF2YWlsX2luICE9IDAgPyBaX09LIDogWl9TVFJFQU1fRU5EOworISAgICAgICAgICAgICByZXR1cm47CishICAgICAgICAgfQorICAgICAgfQorICAgICAgbWV0aG9kID0gZ2V0X2J5dGUocyk7CisgICAgICBmbGFncyA9IGdldF9ieXRlKHMpOworICAgICAgaWYgKG1ldGhvZCAhPSBaX0RFRkxBVEVEIHx8IChmbGFncyAmIFJFU0VSVkVEKSAhPSAwKSB7CishICAgICAgICAgcy0+el9lcnIgPSBaX0RBVEFfRVJST1I7CishICAgICAgICAgcmV0dXJuOworICAgICAgfQorICAKKyAgICAgIC8qIERpc2NhcmQgdGltZSwgeGZsYWdzIGFuZCBPUyBjb2RlOiAqLworKioqKioqKioqKioqKioqCisqKiogMjkyLDMxMCAqKioqCisgICAgICBmb3IgKGxlbiA9IDA7IGxlbiA8IDY7IGxlbisrKSAodm9pZClnZXRfYnl0ZShzKTsKKyAgCisgICAgICBpZiAoKGZsYWdzICYgRVhUUkFfRklFTEQpICE9IDApIHsgLyogc2tpcCB0aGUgZXh0cmEgZmllbGQgKi8KKyEgCWxlbiAgPSAgKHVJbnQpZ2V0X2J5dGUocyk7CishIAlsZW4gKz0gKCh1SW50KWdldF9ieXRlKHMpKTw8ODsKKyEgCS8qIGxlbiBpcyBnYXJiYWdlIGlmIEVPRiBidXQgdGhlIGxvb3AgYmVsb3cgd2lsbCBxdWl0IGFueXdheSAqLworISAJd2hpbGUgKGxlbi0tICE9IDAgJiYgZ2V0X2J5dGUocykgIT0gRU9GKSA7CisgICAgICB9CisgICAgICBpZiAoKGZsYWdzICYgT1JJR19OQU1FKSAhPSAwKSB7IC8qIHNraXAgdGhlIG9yaWdpbmFsIGZpbGUgbmFtZSAqLworISAJd2hpbGUgKChjID0gZ2V0X2J5dGUocykpICE9IDAgJiYgYyAhPSBFT0YpIDsKKyAgICAgIH0KKyAgICAgIGlmICgoZmxhZ3MgJiBDT01NRU5UKSAhPSAwKSB7ICAgLyogc2tpcCB0aGUgLmd6IGZpbGUgY29tbWVudCAqLworISAJd2hpbGUgKChjID0gZ2V0X2J5dGUocykpICE9IDAgJiYgYyAhPSBFT0YpIDsKKyAgICAgIH0KKyAgICAgIGlmICgoZmxhZ3MgJiBIRUFEX0NSQykgIT0gMCkgeyAgLyogc2tpcCB0aGUgaGVhZGVyIGNyYyAqLworISAJZm9yIChsZW4gPSAwOyBsZW4gPCAyOyBsZW4rKykgKHZvaWQpZ2V0X2J5dGUocyk7CisgICAgICB9CisgICAgICBzLT56X2VyciA9IHMtPnpfZW9mID8gWl9EQVRBX0VSUk9SIDogWl9PSzsKKyAgfQorLS0tIDMxNCwzMzIgLS0tLQorICAgICAgZm9yIChsZW4gPSAwOyBsZW4gPCA2OyBsZW4rKykgKHZvaWQpZ2V0X2J5dGUocyk7CisgIAorICAgICAgaWYgKChmbGFncyAmIEVYVFJBX0ZJRUxEKSAhPSAwKSB7IC8qIHNraXAgdGhlIGV4dHJhIGZpZWxkICovCishICAgICAgICAgbGVuICA9ICAodUludClnZXRfYnl0ZShzKTsKKyEgICAgICAgICBsZW4gKz0gKCh1SW50KWdldF9ieXRlKHMpKTw8ODsKKyEgICAgICAgICAvKiBsZW4gaXMgZ2FyYmFnZSBpZiBFT0YgYnV0IHRoZSBsb29wIGJlbG93IHdpbGwgcXVpdCBhbnl3YXkgKi8KKyEgICAgICAgICB3aGlsZSAobGVuLS0gIT0gMCAmJiBnZXRfYnl0ZShzKSAhPSAtMSkgOworICAgICAgfQorICAgICAgaWYgKChmbGFncyAmIE9SSUdfTkFNRSkgIT0gMCkgeyAvKiBza2lwIHRoZSBvcmlnaW5hbCBmaWxlIG5hbWUgKi8KKyEgICAgICAgICB3aGlsZSAoKGMgPSBnZXRfYnl0ZShzKSkgIT0gMCAmJiBjICE9IC0xKSA7CisgICAgICB9CisgICAgICBpZiAoKGZsYWdzICYgQ09NTUVOVCkgIT0gMCkgeyAgIC8qIHNraXAgdGhlIC5neiBmaWxlIGNvbW1lbnQgKi8KKyEgICAgICAgICB3aGlsZSAoKGMgPSBnZXRfYnl0ZShzKSkgIT0gMCAmJiBjICE9IC0xKSA7CisgICAgICB9CisgICAgICBpZiAoKGZsYWdzICYgSEVBRF9DUkMpICE9IDApIHsgIC8qIHNraXAgdGhlIGhlYWRlciBjcmMgKi8KKyEgICAgICAgICBmb3IgKGxlbiA9IDA7IGxlbiA8IDI7IGxlbisrKSAodm9pZClnZXRfYnl0ZShzKTsKKyAgICAgIH0KKyAgICAgIHMtPnpfZXJyID0gcy0+el9lb2YgPyBaX0RBVEFfRVJST1IgOiBaX09LOworICB9CisqKioqKioqKioqKioqKioKKyoqKiAzMjMsMzQzICoqKioKKyAgICAgIFRSWUZSRUUocy0+bXNnKTsKKyAgCisgICAgICBpZiAocy0+c3RyZWFtLnN0YXRlICE9IE5VTEwpIHsKKyEgCWlmIChzLT5tb2RlID09ICd3JykgeworICAjaWZkZWYgTk9fREVGTEFURQorISAJICAgIGVyciA9IFpfU1RSRUFNX0VSUk9SOworICAjZWxzZQorISAJICAgIGVyciA9IGRlZmxhdGVFbmQoJihzLT5zdHJlYW0pKTsKKyAgI2VuZGlmCishIAl9IGVsc2UgaWYgKHMtPm1vZGUgPT0gJ3InKSB7CishIAkgICAgZXJyID0gaW5mbGF0ZUVuZCgmKHMtPnN0cmVhbSkpOworISAJfQorISAgICAgfQorISAgICAgaWYgKHMtPmZpbGUgIT0gTlVMTCAmJiBmY2xvc2Uocy0+ZmlsZSkpIHsKKyEgI2lmZGVmIEVTUElQRQorISAJaWYgKGVycm5vICE9IEVTUElQRSkgLyogZmNsb3NlIGlzIGJyb2tlbiBmb3IgcGlwZXMgaW4gSFAvVVggKi8KKyEgI2VuZGlmCishIAkgICAgZXJyID0gWl9FUlJOTzsKKyAgICAgIH0KKyAgICAgIGlmIChzLT56X2VyciA8IDApIGVyciA9IHMtPnpfZXJyOworICAKKy0tLSAzNDUsMzYyIC0tLS0KKyAgICAgIFRSWUZSRUUocy0+bXNnKTsKKyAgCisgICAgICBpZiAocy0+c3RyZWFtLnN0YXRlICE9IE5VTEwpIHsKKyEgICAgICAgICBpZiAocy0+bW9kZSA9PSAndycpIHsKKyAgI2lmZGVmIE5PX0RFRkxBVEUKKyEgICAgICAgICAgICAgZXJyID0gWl9TVFJFQU1fRVJST1I7CisgICNlbHNlCishICAgICAgICAgICAgIGVyciA9IGRlZmxhdGVFbmQoJihzLT5zdHJlYW0pKTsKKyAgI2VuZGlmCishICAgICAgICAgfSBlbHNlIGlmIChzLT5tb2RlID09ICdyJykgeworISAgICAgICAgICAgICBlcnIgPSBpbmZsYXRlRW5kKCYocy0+c3RyZWFtKSk7CishICAgICAgICAgfQorISAgICAgfQorISAgICAgaWYgKHMtPmZpbGUgIT0gTlVMTCAmJiAhQ2xvc2VIYW5kbGUocy0+ZmlsZSkpIHsKKyEgICAgICAgICBlcnIgPSBaX0VSUk5POworICAgICAgfQorICAgICAgaWYgKHMtPnpfZXJyIDwgMCkgZXJyID0gcy0+el9lcnI7CisgIAorKioqKioqKioqKioqKioqCisqKiogMzYwLDM2NSAqKioqCistLS0gMzc5LDM4NSAtLS0tCisgICAgICBnel9zdHJlYW0gKnMgPSAoZ3pfc3RyZWFtKilmaWxlOworICAgICAgQnl0ZWYgKnN0YXJ0ID0gKEJ5dGVmKilidWY7IC8qIHN0YXJ0aW5nIHBvaW50IGZvciBjcmMgY29tcHV0YXRpb24gKi8KKyAgICAgIEJ5dGUgICpuZXh0X291dDsgLyogPT0gc3RyZWFtLm5leHRfb3V0IGJ1dCBub3QgZm9yY2VkIGZhciAoZm9yIE1TRE9TKSAqLworKyAgICAgRFdPUkQgc2l6ZTsKKyAgCisgICAgICBpZiAocyA9PSBOVUxMIHx8IHMtPm1vZGUgIT0gJ3InKSByZXR1cm4gWl9TVFJFQU1fRVJST1I7CisgIAorKioqKioqKioqKioqKioqCisqKiogMzcyLDQ0MCAqKioqCisgIAorICAgICAgd2hpbGUgKHMtPnN0cmVhbS5hdmFpbF9vdXQgIT0gMCkgeworICAKKyEgCWlmIChzLT50cmFuc3BhcmVudCkgeworISAJICAgIC8qIENvcHkgZmlyc3QgdGhlIGxvb2thaGVhZCBieXRlczogKi8KKyEgCSAgICB1SW50IG4gPSBzLT5zdHJlYW0uYXZhaWxfaW47CishIAkgICAgaWYgKG4gPiBzLT5zdHJlYW0uYXZhaWxfb3V0KSBuID0gcy0+c3RyZWFtLmF2YWlsX291dDsKKyEgCSAgICBpZiAobiA+IDApIHsKKyEgCQl6bWVtY3B5KHMtPnN0cmVhbS5uZXh0X291dCwgcy0+c3RyZWFtLm5leHRfaW4sIG4pOworISAJCW5leHRfb3V0ICs9IG47CishIAkJcy0+c3RyZWFtLm5leHRfb3V0ID0gbmV4dF9vdXQ7CishIAkJcy0+c3RyZWFtLm5leHRfaW4gICArPSBuOworISAJCXMtPnN0cmVhbS5hdmFpbF9vdXQgLT0gbjsKKyEgCQlzLT5zdHJlYW0uYXZhaWxfaW4gIC09IG47CishIAkgICAgfQorISAJICAgIGlmIChzLT5zdHJlYW0uYXZhaWxfb3V0ID4gMCkgeworISAJCXMtPnN0cmVhbS5hdmFpbF9vdXQgLT0gZnJlYWQobmV4dF9vdXQsIDEsIHMtPnN0cmVhbS5hdmFpbF9vdXQsCishIAkJCQkJICAgICBzLT5maWxlKTsKKyEgCSAgICB9CishIAkgICAgbGVuIC09IHMtPnN0cmVhbS5hdmFpbF9vdXQ7CishIAkgICAgcy0+c3RyZWFtLnRvdGFsX2luICArPSAodUxvbmcpbGVuOworISAJICAgIHMtPnN0cmVhbS50b3RhbF9vdXQgKz0gKHVMb25nKWxlbjsKKyAgICAgICAgICAgICAgaWYgKGxlbiA9PSAwKSBzLT56X2VvZiA9IDE7CishIAkgICAgcmV0dXJuIChpbnQpbGVuOworISAJfQorICAgICAgICAgIGlmIChzLT5zdHJlYW0uYXZhaWxfaW4gPT0gMCAmJiAhcy0+el9lb2YpIHsKKyAgCishICAgICAgICAgICAgIGVycm5vID0gMDsKKyEgICAgICAgICAgICAgcy0+c3RyZWFtLmF2YWlsX2luID0gZnJlYWQocy0+aW5idWYsIDEsIFpfQlVGU0laRSwgcy0+ZmlsZSk7CisgICAgICAgICAgICAgIGlmIChzLT5zdHJlYW0uYXZhaWxfaW4gPT0gMCkgeworICAgICAgICAgICAgICAgICAgcy0+el9lb2YgPSAxOworLSAJCWlmIChmZXJyb3Iocy0+ZmlsZSkpIHsKKy0gCQkgICAgcy0+el9lcnIgPSBaX0VSUk5POworLSAJCSAgICBicmVhazsKKy0gCQl9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgcy0+c3RyZWFtLm5leHRfaW4gPSBzLT5pbmJ1ZjsKKyAgICAgICAgICB9CisgICAgICAgICAgcy0+el9lcnIgPSBpbmZsYXRlKCYocy0+c3RyZWFtKSwgWl9OT19GTFVTSCk7CisgIAorISAJaWYgKHMtPnpfZXJyID09IFpfU1RSRUFNX0VORCkgeworISAJICAgIC8qIENoZWNrIENSQyBhbmQgb3JpZ2luYWwgc2l6ZSAqLworISAJICAgIHMtPmNyYyA9IGNyYzMyKHMtPmNyYywgc3RhcnQsICh1SW50KShzLT5zdHJlYW0ubmV4dF9vdXQgLSBzdGFydCkpOworISAJICAgIHN0YXJ0ID0gcy0+c3RyZWFtLm5leHRfb3V0OworISAKKyEgCSAgICBpZiAoZ2V0TG9uZyhzKSAhPSBzLT5jcmMpIHsKKyEgCQlzLT56X2VyciA9IFpfREFUQV9FUlJPUjsKKyEgCSAgICB9IGVsc2UgeworISAJICAgICAgICAodm9pZClnZXRMb25nKHMpOworICAgICAgICAgICAgICAgICAgLyogVGhlIHVuY29tcHJlc3NlZCBsZW5ndGggcmV0dXJuZWQgYnkgYWJvdmUgZ2V0bG9uZygpIG1heQorICAgICAgICAgICAgICAgICAgICogYmUgZGlmZmVyZW50IGZyb20gcy0+c3RyZWFtLnRvdGFsX291dCkgaW4gY2FzZSBvZgorISAJCSAqIGNvbmNhdGVuYXRlZCAuZ3ogZmlsZXMuIENoZWNrIGZvciBzdWNoIGZpbGVzOgorISAJCSAqLworISAJCWNoZWNrX2hlYWRlcihzKTsKKyEgCQlpZiAocy0+el9lcnIgPT0gWl9PSykgeworISAJCSAgICB1TG9uZyB0b3RhbF9pbiA9IHMtPnN0cmVhbS50b3RhbF9pbjsKKyEgCQkgICAgdUxvbmcgdG90YWxfb3V0ID0gcy0+c3RyZWFtLnRvdGFsX291dDsKKyEgCishIAkJICAgIGluZmxhdGVSZXNldCgmKHMtPnN0cmVhbSkpOworISAJCSAgICBzLT5zdHJlYW0udG90YWxfaW4gPSB0b3RhbF9pbjsKKyEgCQkgICAgcy0+c3RyZWFtLnRvdGFsX291dCA9IHRvdGFsX291dDsKKyEgCQkgICAgcy0+Y3JjID0gY3JjMzIoMEwsIFpfTlVMTCwgMCk7CishIAkJfQorISAJICAgIH0KKyEgCX0KKyEgCWlmIChzLT56X2VyciAhPSBaX09LIHx8IHMtPnpfZW9mKSBicmVhazsKKyAgICAgIH0KKyAgICAgIHMtPmNyYyA9IGNyYzMyKHMtPmNyYywgc3RhcnQsICh1SW50KShzLT5zdHJlYW0ubmV4dF9vdXQgLSBzdGFydCkpOworICAKKy0tLSAzOTIsNDYxIC0tLS0KKyAgCisgICAgICB3aGlsZSAocy0+c3RyZWFtLmF2YWlsX291dCAhPSAwKSB7CisgIAorISAgICAgICAgIGlmIChzLT50cmFuc3BhcmVudCkgeworISAgICAgICAgICAgICAvKiBDb3B5IGZpcnN0IHRoZSBsb29rYWhlYWQgYnl0ZXM6ICovCishICAgICAgICAgICAgIHVJbnQgbiA9IHMtPnN0cmVhbS5hdmFpbF9pbjsKKyEgICAgICAgICAgICAgaWYgKG4gPiBzLT5zdHJlYW0uYXZhaWxfb3V0KSBuID0gcy0+c3RyZWFtLmF2YWlsX291dDsKKyEgICAgICAgICAgICAgaWYgKG4gPiAwKSB7CishICAgICAgICAgICAgICAgICB6bWVtY3B5KHMtPnN0cmVhbS5uZXh0X291dCwgcy0+c3RyZWFtLm5leHRfaW4sIG4pOworISAgICAgICAgICAgICAgICAgbmV4dF9vdXQgKz0gbjsKKyEgICAgICAgICAgICAgICAgIHMtPnN0cmVhbS5uZXh0X291dCA9IG5leHRfb3V0OworISAgICAgICAgICAgICAgICAgcy0+c3RyZWFtLm5leHRfaW4gICArPSBuOworISAgICAgICAgICAgICAgICAgcy0+c3RyZWFtLmF2YWlsX291dCAtPSBuOworISAgICAgICAgICAgICAgICAgcy0+c3RyZWFtLmF2YWlsX2luICAtPSBuOworISAgICAgICAgICAgICB9CishICAgICAgICAgICAgIGlmIChzLT5zdHJlYW0uYXZhaWxfb3V0ID4gMCkgeworISAgICAgICAgICAgICAgICAgaWYgKFJlYWRGaWxlKHMtPmZpbGUsIG5leHRfb3V0LCBzLT5zdHJlYW0uYXZhaWxfb3V0LCAmc2l6ZSwgTlVMTCkpIHsKKyEgICAgICAgICAgICAgICAgICAgICBzLT5zdHJlYW0uYXZhaWxfb3V0IC09IHNpemU7CishICAgICAgICAgICAgICAgICB9CishICAgICAgICAgICAgIH0KKyEgICAgICAgICAgICAgbGVuIC09IHMtPnN0cmVhbS5hdmFpbF9vdXQ7CishICAgICAgICAgICAgIHMtPnN0cmVhbS50b3RhbF9pbiAgKz0gKHVMb25nKWxlbjsKKyEgICAgICAgICAgICAgcy0+c3RyZWFtLnRvdGFsX291dCArPSAodUxvbmcpbGVuOworICAgICAgICAgICAgICBpZiAobGVuID09IDApIHMtPnpfZW9mID0gMTsKKyEgICAgICAgICAgICAgcmV0dXJuIChpbnQpbGVuOworISAgICAgICAgIH0KKyAgICAgICAgICBpZiAocy0+c3RyZWFtLmF2YWlsX2luID09IDAgJiYgIXMtPnpfZW9mKSB7CisgIAorISAgICAgICAgICAgICBTZXRMYXN0RXJyb3IoTk9fRVJST1IpOworISAgICAgICAgICAgICBpZiAoIVJlYWRGaWxlKHMtPmZpbGUsIHMtPmluYnVmLCBaX0JVRlNJWkUsICZzLT5zdHJlYW0uYXZhaWxfaW4sIE5VTEwpKSB7CishICAgICAgICAgICAgICAgICBzLT56X2VvZiA9IDE7CishICAgICAgICAgICAgICAgICBzLT56X2VyciA9IFpfRVJSTk87CishICAgICAgICAgICAgICAgICBicmVhazsKKyEgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpZiAocy0+c3RyZWFtLmF2YWlsX2luID09IDApIHsKKyAgICAgICAgICAgICAgICAgIHMtPnpfZW9mID0gMTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBzLT5zdHJlYW0ubmV4dF9pbiA9IHMtPmluYnVmOworICAgICAgICAgIH0KKyAgICAgICAgICBzLT56X2VyciA9IGluZmxhdGUoJihzLT5zdHJlYW0pLCBaX05PX0ZMVVNIKTsKKyAgCishICAgICAgICAgaWYgKHMtPnpfZXJyID09IFpfU1RSRUFNX0VORCkgeworISAgICAgICAgICAgICAvKiBDaGVjayBDUkMgYW5kIG9yaWdpbmFsIHNpemUgKi8KKyEgICAgICAgICAgICAgcy0+Y3JjID0gY3JjMzIocy0+Y3JjLCBzdGFydCwgKHVJbnQpKHMtPnN0cmVhbS5uZXh0X291dCAtIHN0YXJ0KSk7CishICAgICAgICAgICAgIHN0YXJ0ID0gcy0+c3RyZWFtLm5leHRfb3V0OworISAKKyEgICAgICAgICAgICAgaWYgKGdldExvbmcocykgIT0gcy0+Y3JjKSB7CishICAgICAgICAgICAgICAgICBzLT56X2VyciA9IFpfREFUQV9FUlJPUjsKKyEgICAgICAgICAgICAgfSBlbHNlIHsKKyEgICAgICAgICAgICAgICAgICh2b2lkKWdldExvbmcocyk7CisgICAgICAgICAgICAgICAgICAvKiBUaGUgdW5jb21wcmVzc2VkIGxlbmd0aCByZXR1cm5lZCBieSBhYm92ZSBnZXRsb25nKCkgbWF5CisgICAgICAgICAgICAgICAgICAgKiBiZSBkaWZmZXJlbnQgZnJvbSBzLT5zdHJlYW0udG90YWxfb3V0KSBpbiBjYXNlIG9mCishICAgICAgICAgICAgICAgICAgKiBjb25jYXRlbmF0ZWQgLmd6IGZpbGVzLiBDaGVjayBmb3Igc3VjaCBmaWxlczoKKyEgICAgICAgICAgICAgICAgICAqLworISAgICAgICAgICAgICAgICAgY2hlY2tfaGVhZGVyKHMpOworISAgICAgICAgICAgICAgICAgaWYgKHMtPnpfZXJyID09IFpfT0spIHsKKyEgICAgICAgICAgICAgICAgICAgICB1TG9uZyB0b3RhbF9pbiA9IHMtPnN0cmVhbS50b3RhbF9pbjsKKyEgICAgICAgICAgICAgICAgICAgICB1TG9uZyB0b3RhbF9vdXQgPSBzLT5zdHJlYW0udG90YWxfb3V0OworISAKKyEgICAgICAgICAgICAgICAgICAgICBpbmZsYXRlUmVzZXQoJihzLT5zdHJlYW0pKTsKKyEgICAgICAgICAgICAgICAgICAgICBzLT5zdHJlYW0udG90YWxfaW4gPSB0b3RhbF9pbjsKKyEgICAgICAgICAgICAgICAgICAgICBzLT5zdHJlYW0udG90YWxfb3V0ID0gdG90YWxfb3V0OworISAgICAgICAgICAgICAgICAgICAgIHMtPmNyYyA9IGNyYzMyKDBMLCBaX05VTEwsIDApOworISAgICAgICAgICAgICAgICAgfQorISAgICAgICAgICAgICB9CishICAgICAgICAgfQorISAgICAgICAgIGlmIChzLT56X2VyciAhPSBaX09LIHx8IHMtPnpfZW9mKSBicmVhazsKKyAgICAgIH0KKyAgICAgIHMtPmNyYyA9IGNyYzMyKHMtPmNyYywgc3RhcnQsICh1SW50KShzLT5zdHJlYW0ubmV4dF9vdXQgLSBzdGFydCkpOworICAKKyoqKioqKioqKioqKioqKgorKioqIDQ4OSw0OTQgKioqKgorLS0tIDUxMCw1MTYgLS0tLQorICAgICAgdW5zaWduZWQgbGVuOworICB7CisgICAgICBnel9zdHJlYW0gKnMgPSAoZ3pfc3RyZWFtKilmaWxlOworKyAgICAgRFdPUkQgc2l6ZTsKKyAgCisgICAgICBpZiAocyA9PSBOVUxMIHx8IHMtPm1vZGUgIT0gJ3cnKSByZXR1cm4gWl9TVFJFQU1fRVJST1I7CisgIAorKioqKioqKioqKioqKioqCisqKiogNTAwLDUwNiAqKioqCisgICAgICAgICAgaWYgKHMtPnN0cmVhbS5hdmFpbF9vdXQgPT0gMCkgeworICAKKyAgICAgICAgICAgICAgcy0+c3RyZWFtLm5leHRfb3V0ID0gcy0+b3V0YnVmOworISAgICAgICAgICAgICBpZiAoZndyaXRlKHMtPm91dGJ1ZiwgMSwgWl9CVUZTSVpFLCBzLT5maWxlKSAhPSBaX0JVRlNJWkUpIHsKKyAgICAgICAgICAgICAgICAgIHMtPnpfZXJyID0gWl9FUlJOTzsKKyAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CistLS0gNTIyLDUyOCAtLS0tCisgICAgICAgICAgaWYgKHMtPnN0cmVhbS5hdmFpbF9vdXQgPT0gMCkgeworICAKKyAgICAgICAgICAgICAgcy0+c3RyZWFtLm5leHRfb3V0ID0gcy0+b3V0YnVmOworISAgICAgICAgICAgICBpZiAoIVdyaXRlRmlsZShzLT5maWxlLCBzLT5vdXRidWYsIFpfQlVGU0laRSwgJnNpemUsIE5VTEwpIHx8IHNpemUgIT0gWl9CVUZTSVpFKSB7CisgICAgICAgICAgICAgICAgICBzLT56X2VyciA9IFpfRVJSTk87CisgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorKioqKioqKioqKioqKioqCisqKiogNTI3LDU0MCAqKioqCisgICAgICBjaGFyIGJ1ZltaX1BSSU5URl9CVUZTSVpFXTsKKyAgICAgIHZhX2xpc3QgdmE7CisgICAgICBpbnQgbGVuOworICAKKyAgICAgIHZhX3N0YXJ0KHZhLCBmb3JtYXQpOworISAjaWZkZWYgSEFTX3ZzbnByaW50ZgorISAgICAgKHZvaWQpdnNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZvcm1hdCwgdmEpOworISAjZWxzZQorISAgICAgKHZvaWQpdnNwcmludGYoYnVmLCBmb3JtYXQsIHZhKTsKKyEgI2VuZGlmCisgICAgICB2YV9lbmQodmEpOworICAgICAgbGVuID0gc3RybGVuKGJ1Zik7IC8qIHNvbWUgKnNwcmludGYgZG9uJ3QgcmV0dXJuIHRoZSBuYiBvZiBieXRlcyB3cml0dGVuICovCisgICAgICBpZiAobGVuIDw9IDApIHJldHVybiAwOworICAKKy0tLSA1NDksNTc0IC0tLS0KKyAgICAgIGNoYXIgYnVmW1pfUFJJTlRGX0JVRlNJWkVdOworICAgICAgdmFfbGlzdCB2YTsKKyAgICAgIGludCBsZW47CisrICAgICBUQ0hBUiBmb3JtW1pfUFJJTlRGX0JVRlNJWkVdOworKyAgICAgVENIQVIgdGJ1ZltaX1BSSU5URl9CVUZTSVpFXTsKKysgICAgIGludCBuOworICAKKyAgICAgIHZhX3N0YXJ0KHZhLCBmb3JtYXQpOworISAgICAgTXVsdGlCeXRlVG9XaWRlQ2hhcihDUF9BQ1AsIDAsIGZvcm1hdCwgLTEsIGZvcm0sIFpfUFJJTlRGX0JVRlNJWkUpOworISAgICAgbGVuID0gbHN0cmxlbihmb3JtKTsKKyEgICAgIGZvciAoIG4gPSAwOyBuIDwgbGVuOyBuKysgKSB7CishICAgICAgICAgaWYgKCBURVhUKCclJykgPT0gZm9ybVtuXSApIHsKKyEgICAgICAgICAgICAgbisrOworISAgICAgICAgICAgICBpZiAoIFRFWFQoJ2MnKSA9PSBmb3JtW25dICkgeworISAgICAgICAgICAgICAgICAgZm9ybVtuXSA9IFRFWFQoJ0MnKTsKKyEgICAgICAgICAgICAgfSBlbHNlIGlmICggVEVYVCgncycpID09IGZvcm1bbl0gKSB7CishICAgICAgICAgICAgICAgICBmb3JtW25dID0gVEVYVCgnUycpOworISAgICAgICAgICAgICB9CishICAgICAgICAgfQorISAgICAgfQorISAgICAgKHZvaWQpdnN3cHJpbnRmKHRidWYsIGZvcm0sIHZhKTsKKyAgICAgIHZhX2VuZCh2YSk7CisrICAgICBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX0FDUCwgMCwgdGJ1ZiwgLTEsIGJ1ZiwgWl9QUklOVEZfQlVGU0laRSwgTlVMTCwgTlVMTCk7CisgICAgICBsZW4gPSBzdHJsZW4oYnVmKTsgLyogc29tZSAqc3ByaW50ZiBkb24ndCByZXR1cm4gdGhlIG5iIG9mIGJ5dGVzIHdyaXR0ZW4gKi8KKyAgICAgIGlmIChsZW4gPD0gMCkgcmV0dXJuIDA7CisgIAorKioqKioqKioqKioqKioqCisqKiogNTQzLDU1MyAqKioqCisgICNlbHNlIC8qIG5vdCBBTlNJIEMgKi8KKyAgCisgIGludCBaRVhQT1JUVkEgZ3pwcmludGYgKGZpbGUsIGZvcm1hdCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLAorISAJICAgICAgICAgICAgICAgYTExLCBhMTIsIGExMywgYTE0LCBhMTUsIGExNiwgYTE3LCBhMTgsIGExOSwgYTIwKQorICAgICAgZ3pGaWxlIGZpbGU7CisgICAgICBjb25zdCBjaGFyICpmb3JtYXQ7CisgICAgICBpbnQgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLAorISAJYTExLCBhMTIsIGExMywgYTE0LCBhMTUsIGExNiwgYTE3LCBhMTgsIGExOSwgYTIwOworICB7CisgICAgICBjaGFyIGJ1ZltaX1BSSU5URl9CVUZTSVpFXTsKKyAgICAgIGludCBsZW47CistLS0gNTc3LDU4NyAtLS0tCisgICNlbHNlIC8qIG5vdCBBTlNJIEMgKi8KKyAgCisgIGludCBaRVhQT1JUVkEgZ3pwcmludGYgKGZpbGUsIGZvcm1hdCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLAorISAgICAgICAgICAgICAgICAgICAgICAgIGExMSwgYTEyLCBhMTMsIGExNCwgYTE1LCBhMTYsIGExNywgYTE4LCBhMTksIGEyMCkKKyAgICAgIGd6RmlsZSBmaWxlOworICAgICAgY29uc3QgY2hhciAqZm9ybWF0OworICAgICAgaW50IGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwKKyEgICAgICAgICBhMTEsIGExMiwgYTEzLCBhMTQsIGExNSwgYTE2LCBhMTcsIGExOCwgYTE5LCBhMjA7CisgIHsKKyAgICAgIGNoYXIgYnVmW1pfUFJJTlRGX0JVRlNJWkVdOworICAgICAgaW50IGxlbjsKKyoqKioqKioqKioqKioqKgorKioqIDU1NCw1NjMgKioqKgorICAKKyAgI2lmZGVmIEhBU19zbnByaW50ZgorICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgZm9ybWF0LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsCishIAkgICAgIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMsIGExNCwgYTE1LCBhMTYsIGExNywgYTE4LCBhMTksIGEyMCk7CisgICNlbHNlCisgICAgICBzcHJpbnRmKGJ1ZiwgZm9ybWF0LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsCishIAkgICAgYTksIGExMCwgYTExLCBhMTIsIGExMywgYTE0LCBhMTUsIGExNiwgYTE3LCBhMTgsIGExOSwgYTIwKTsKKyAgI2VuZGlmCisgICAgICBsZW4gPSBzdHJsZW4oYnVmKTsgLyogb2xkIHNwcmludGYgZG9lc24ndCByZXR1cm4gdGhlIG5iIG9mIGJ5dGVzIHdyaXR0ZW4gKi8KKyAgICAgIGlmIChsZW4gPD0gMCkgcmV0dXJuIDA7CistLS0gNTg4LDU5NyAtLS0tCisgIAorICAjaWZkZWYgSEFTX3NucHJpbnRmCisgICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCBmb3JtYXQsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwKKyEgICAgICAgICAgICAgIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMsIGExNCwgYTE1LCBhMTYsIGExNywgYTE4LCBhMTksIGEyMCk7CisgICNlbHNlCisgICAgICBzcHJpbnRmKGJ1ZiwgZm9ybWF0LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsCishICAgICAgICAgICAgIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMsIGExNCwgYTE1LCBhMTYsIGExNywgYTE4LCBhMTksIGEyMCk7CisgICNlbmRpZgorICAgICAgbGVuID0gc3RybGVuKGJ1Zik7IC8qIG9sZCBzcHJpbnRmIGRvZXNuJ3QgcmV0dXJuIHRoZSBuYiBvZiBieXRlcyB3cml0dGVuICovCisgICAgICBpZiAobGVuIDw9IDApIHJldHVybiAwOworKioqKioqKioqKioqKioqCisqKiogNjA0LDYwOSAqKioqCistLS0gNjM4LDY0NCAtLS0tCisgICAgICB1SW50IGxlbjsKKyAgICAgIGludCBkb25lID0gMDsKKyAgICAgIGd6X3N0cmVhbSAqcyA9IChnel9zdHJlYW0qKWZpbGU7CisrICAgICBEV09SRCBzaXplOworICAKKyAgICAgIGlmIChzID09IE5VTEwgfHwgcy0+bW9kZSAhPSAndycpIHJldHVybiBaX1NUUkVBTV9FUlJPUjsKKyAgCisqKioqKioqKioqKioqKioKKyoqKiA2MTMsNjE5ICoqKioKKyAgICAgICAgICBsZW4gPSBaX0JVRlNJWkUgLSBzLT5zdHJlYW0uYXZhaWxfb3V0OworICAKKyAgICAgICAgICBpZiAobGVuICE9IDApIHsKKyEgICAgICAgICAgICAgaWYgKCh1SW50KWZ3cml0ZShzLT5vdXRidWYsIDEsIGxlbiwgcy0+ZmlsZSkgIT0gbGVuKSB7CisgICAgICAgICAgICAgICAgICBzLT56X2VyciA9IFpfRVJSTk87CisgICAgICAgICAgICAgICAgICByZXR1cm4gWl9FUlJOTzsKKyAgICAgICAgICAgICAgfQorLS0tIDY0OCw2NTQgLS0tLQorICAgICAgICAgIGxlbiA9IFpfQlVGU0laRSAtIHMtPnN0cmVhbS5hdmFpbF9vdXQ7CisgIAorICAgICAgICAgIGlmIChsZW4gIT0gMCkgeworISAgICAgICAgICAgICBpZiAoIVdyaXRlRmlsZShzLT5maWxlLCBzLT5vdXRidWYsIGxlbiwgJnNpemUsIE5VTEwpIHx8ICh1SW50KXNpemUgIT0gbGVuKSB7CisgICAgICAgICAgICAgICAgICBzLT56X2VyciA9IFpfRVJSTk87CisgICAgICAgICAgICAgICAgICByZXR1cm4gWl9FUlJOTzsKKyAgICAgICAgICAgICAgfQorKioqKioqKioqKioqKioqCisqKiogNjIzLDYzMCAqKioqCisgICAgICAgICAgaWYgKGRvbmUpIGJyZWFrOworICAgICAgICAgIHMtPnpfZXJyID0gZGVmbGF0ZSgmKHMtPnN0cmVhbSksIGZsdXNoKTsKKyAgCishIAkvKiBJZ25vcmUgdGhlIHNlY29uZCBvZiB0d28gY29uc2VjdXRpdmUgZmx1c2hlczogKi8KKyEgCWlmIChsZW4gPT0gMCAmJiBzLT56X2VyciA9PSBaX0JVRl9FUlJPUikgcy0+el9lcnIgPSBaX09LOworICAKKyAgICAgICAgICAvKiBkZWZsYXRlIGhhcyBmaW5pc2hlZCBmbHVzaGluZyBvbmx5IHdoZW4gaXQgaGFzbid0IHVzZWQgdXAKKyAgICAgICAgICAgKiBhbGwgdGhlIGF2YWlsYWJsZSBzcGFjZSBpbiB0aGUgb3V0cHV0IGJ1ZmZlcjogCistLS0gNjU4LDY2NSAtLS0tCisgICAgICAgICAgaWYgKGRvbmUpIGJyZWFrOworICAgICAgICAgIHMtPnpfZXJyID0gZGVmbGF0ZSgmKHMtPnN0cmVhbSksIGZsdXNoKTsKKyAgCishICAgICAgICAgLyogSWdub3JlIHRoZSBzZWNvbmQgb2YgdHdvIGNvbnNlY3V0aXZlIGZsdXNoZXM6ICovCishICAgICAgICAgaWYgKGxlbiA9PSAwICYmIHMtPnpfZXJyID09IFpfQlVGX0VSUk9SKSBzLT56X2VyciA9IFpfT0s7CisgIAorICAgICAgICAgIC8qIGRlZmxhdGUgaGFzIGZpbmlzaGVkIGZsdXNoaW5nIG9ubHkgd2hlbiBpdCBoYXNuJ3QgdXNlZCB1cAorICAgICAgICAgICAqIGFsbCB0aGUgYXZhaWxhYmxlIHNwYWNlIGluIHRoZSBvdXRwdXQgYnVmZmVyOiAKKyoqKioqKioqKioqKioqKgorKioqIDY0NCw2NTAgKioqKgorICAgICAgaW50IGVyciA9IGRvX2ZsdXNoIChmaWxlLCBmbHVzaCk7CisgIAorICAgICAgaWYgKGVycikgcmV0dXJuIGVycjsKKyEgICAgIGZmbHVzaChzLT5maWxlKTsKKyAgICAgIHJldHVybiAgcy0+el9lcnIgPT0gWl9TVFJFQU1fRU5EID8gWl9PSyA6IHMtPnpfZXJyOworICB9CisgICNlbmRpZiAvKiBOT19ERUZMQVRFICovCistLS0gNjc5LDY4NSAtLS0tCisgICAgICBpbnQgZXJyID0gZG9fZmx1c2ggKGZpbGUsIGZsdXNoKTsKKyAgCisgICAgICBpZiAoZXJyKSByZXR1cm4gZXJyOworISAKKyAgICAgIHJldHVybiAgcy0+el9lcnIgPT0gWl9TVFJFQU1fRU5EID8gWl9PSyA6IHMtPnpfZXJyOworICB9CisgICNlbmRpZiAvKiBOT19ERUZMQVRFICovCisqKioqKioqKioqKioqKioKKyoqKiA2NjUsNjk4ICoqKioKKyAgICAgIGd6X3N0cmVhbSAqcyA9IChnel9zdHJlYW0qKWZpbGU7CisgIAorICAgICAgaWYgKHMgPT0gTlVMTCB8fCB3aGVuY2UgPT0gU0VFS19FTkQgfHwKKyEgCXMtPnpfZXJyID09IFpfRVJSTk8gfHwgcy0+el9lcnIgPT0gWl9EQVRBX0VSUk9SKSB7CishIAlyZXR1cm4gLTFMOworICAgICAgfQorICAgICAgCisgICAgICBpZiAocy0+bW9kZSA9PSAndycpIHsKKyAgI2lmZGVmIE5PX0RFRkxBVEUKKyEgCXJldHVybiAtMUw7CisgICNlbHNlCishIAlpZiAod2hlbmNlID09IFNFRUtfU0VUKSB7CishIAkgICAgb2Zmc2V0IC09IHMtPnN0cmVhbS50b3RhbF9pbjsKKyEgCX0KKyEgCWlmIChvZmZzZXQgPCAwKSByZXR1cm4gLTFMOworISAKKyEgCS8qIEF0IHRoaXMgcG9pbnQsIG9mZnNldCBpcyB0aGUgbnVtYmVyIG9mIHplcm8gYnl0ZXMgdG8gd3JpdGUuICovCishIAlpZiAocy0+aW5idWYgPT0gWl9OVUxMKSB7CishIAkgICAgcy0+aW5idWYgPSAoQnl0ZSopQUxMT0MoWl9CVUZTSVpFKTsgLyogZm9yIHNlZWtpbmcgKi8KKyEgCSAgICB6bWVtemVybyhzLT5pbmJ1ZiwgWl9CVUZTSVpFKTsKKyEgCX0KKyEgCXdoaWxlIChvZmZzZXQgPiAwKSAgeworISAJICAgIHVJbnQgc2l6ZSA9IFpfQlVGU0laRTsKKyEgCSAgICBpZiAob2Zmc2V0IDwgWl9CVUZTSVpFKSBzaXplID0gKHVJbnQpb2Zmc2V0OworISAKKyEgCSAgICBzaXplID0gZ3p3cml0ZShmaWxlLCBzLT5pbmJ1Ziwgc2l6ZSk7CishIAkgICAgaWYgKHNpemUgPT0gMCkgcmV0dXJuIC0xTDsKKyEgCishIAkgICAgb2Zmc2V0IC09IHNpemU7CishIAl9CishIAlyZXR1cm4gKHpfb2ZmX3Qpcy0+c3RyZWFtLnRvdGFsX2luOworICAjZW5kaWYKKyAgICAgIH0KKyAgICAgIC8qIFJlc3Qgb2YgZnVuY3Rpb24gaXMgZm9yIHJlYWRpbmcgb25seSAqLworLS0tIDcwMCw3MzMgLS0tLQorICAgICAgZ3pfc3RyZWFtICpzID0gKGd6X3N0cmVhbSopZmlsZTsKKyAgCisgICAgICBpZiAocyA9PSBOVUxMIHx8IHdoZW5jZSA9PSBTRUVLX0VORCB8fAorISAgICAgICAgIHMtPnpfZXJyID09IFpfRVJSTk8gfHwgcy0+el9lcnIgPT0gWl9EQVRBX0VSUk9SKSB7CishICAgICAgICAgcmV0dXJuIC0xTDsKKyAgICAgIH0KKyAgICAgIAorICAgICAgaWYgKHMtPm1vZGUgPT0gJ3cnKSB7CisgICNpZmRlZiBOT19ERUZMQVRFCishICAgICAgICAgcmV0dXJuIC0xTDsKKyAgI2Vsc2UKKyEgICAgICAgICBpZiAod2hlbmNlID09IFNFRUtfU0VUKSB7CishICAgICAgICAgICAgIG9mZnNldCAtPSBzLT5zdHJlYW0udG90YWxfaW47CishICAgICAgICAgfQorISAgICAgICAgIGlmIChvZmZzZXQgPCAwKSByZXR1cm4gLTFMOworISAKKyEgICAgICAgICAvKiBBdCB0aGlzIHBvaW50LCBvZmZzZXQgaXMgdGhlIG51bWJlciBvZiB6ZXJvIGJ5dGVzIHRvIHdyaXRlLiAqLworISAgICAgICAgIGlmIChzLT5pbmJ1ZiA9PSBaX05VTEwpIHsKKyEgICAgICAgICAgICAgcy0+aW5idWYgPSAoQnl0ZSopQUxMT0MoWl9CVUZTSVpFKTsgLyogZm9yIHNlZWtpbmcgKi8KKyEgICAgICAgICAgICAgem1lbXplcm8ocy0+aW5idWYsIFpfQlVGU0laRSk7CishICAgICAgICAgfQorISAgICAgICAgIHdoaWxlIChvZmZzZXQgPiAwKSAgeworISAgICAgICAgICAgICB1SW50IHNpemUgPSBaX0JVRlNJWkU7CishICAgICAgICAgICAgIGlmIChvZmZzZXQgPCBaX0JVRlNJWkUpIHNpemUgPSAodUludClvZmZzZXQ7CishIAorISAgICAgICAgICAgICBzaXplID0gZ3p3cml0ZShmaWxlLCBzLT5pbmJ1Ziwgc2l6ZSk7CishICAgICAgICAgICAgIGlmIChzaXplID09IDApIHJldHVybiAtMUw7CishIAorISAgICAgICAgICAgICBvZmZzZXQgLT0gc2l6ZTsKKyEgICAgICAgICB9CishICAgICAgICAgcmV0dXJuICh6X29mZl90KXMtPnN0cmVhbS50b3RhbF9pbjsKKyAgI2VuZGlmCisgICAgICB9CisgICAgICAvKiBSZXN0IG9mIGZ1bmN0aW9uIGlzIGZvciByZWFkaW5nIG9ubHkgKi8KKyoqKioqKioqKioqKioqKgorKioqIDY5OSw3MzYgKioqKgorICAKKyAgICAgIC8qIGNvbXB1dGUgYWJzb2x1dGUgcG9zaXRpb24gKi8KKyAgICAgIGlmICh3aGVuY2UgPT0gU0VFS19DVVIpIHsKKyEgCW9mZnNldCArPSBzLT5zdHJlYW0udG90YWxfb3V0OworICAgICAgfQorICAgICAgaWYgKG9mZnNldCA8IDApIHJldHVybiAtMUw7CisgIAorICAgICAgaWYgKHMtPnRyYW5zcGFyZW50KSB7CishIAkvKiBtYXAgdG8gZnNlZWsgKi8KKyEgCXMtPnN0cmVhbS5hdmFpbF9pbiA9IDA7CishIAlzLT5zdHJlYW0ubmV4dF9pbiA9IHMtPmluYnVmOworISAgICAgICAgIGlmIChmc2VlayhzLT5maWxlLCBvZmZzZXQsIFNFRUtfU0VUKSA8IDApIHJldHVybiAtMUw7CisgIAorISAJcy0+c3RyZWFtLnRvdGFsX2luID0gcy0+c3RyZWFtLnRvdGFsX291dCA9ICh1TG9uZylvZmZzZXQ7CishIAlyZXR1cm4gb2Zmc2V0OworICAgICAgfQorICAKKyAgICAgIC8qIEZvciBhIG5lZ2F0aXZlIHNlZWssIHJld2luZCBhbmQgdXNlIHBvc2l0aXZlIHNlZWsgKi8KKyAgICAgIGlmICgodUxvbmcpb2Zmc2V0ID49IHMtPnN0cmVhbS50b3RhbF9vdXQpIHsKKyEgCW9mZnNldCAtPSBzLT5zdHJlYW0udG90YWxfb3V0OworICAgICAgfSBlbHNlIGlmIChnenJld2luZChmaWxlKSA8IDApIHsKKyEgCXJldHVybiAtMUw7CisgICAgICB9CisgICAgICAvKiBvZmZzZXQgaXMgbm93IHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gc2tpcC4gKi8KKyAgCisgICAgICBpZiAob2Zmc2V0ICE9IDAgJiYgcy0+b3V0YnVmID09IFpfTlVMTCkgeworISAJcy0+b3V0YnVmID0gKEJ5dGUqKUFMTE9DKFpfQlVGU0laRSk7CisgICAgICB9CisgICAgICB3aGlsZSAob2Zmc2V0ID4gMCkgIHsKKyEgCWludCBzaXplID0gWl9CVUZTSVpFOworISAJaWYgKG9mZnNldCA8IFpfQlVGU0laRSkgc2l6ZSA9IChpbnQpb2Zmc2V0OworICAKKyEgCXNpemUgPSBnenJlYWQoZmlsZSwgcy0+b3V0YnVmLCAodUludClzaXplKTsKKyEgCWlmIChzaXplIDw9IDApIHJldHVybiAtMUw7CishIAlvZmZzZXQgLT0gc2l6ZTsKKyAgICAgIH0KKyAgICAgIHJldHVybiAoel9vZmZfdClzLT5zdHJlYW0udG90YWxfb3V0OworICB9CistLS0gNzM0LDc3MSAtLS0tCisgIAorICAgICAgLyogY29tcHV0ZSBhYnNvbHV0ZSBwb3NpdGlvbiAqLworICAgICAgaWYgKHdoZW5jZSA9PSBTRUVLX0NVUikgeworISAgICAgICAgIG9mZnNldCArPSBzLT5zdHJlYW0udG90YWxfb3V0OworICAgICAgfQorICAgICAgaWYgKG9mZnNldCA8IDApIHJldHVybiAtMUw7CisgIAorICAgICAgaWYgKHMtPnRyYW5zcGFyZW50KSB7CishICAgICAgICAgLyogbWFwIHRvIGZzZWVrICovCishICAgICAgICAgcy0+c3RyZWFtLmF2YWlsX2luID0gMDsKKyEgICAgICAgICBzLT5zdHJlYW0ubmV4dF9pbiA9IHMtPmluYnVmOworISAgICAgICAgIGlmIChTZXRGaWxlUG9pbnRlcihzLT5maWxlLCBvZmZzZXQsIE5VTEwsIEZJTEVfQkVHSU4pID09IDB4RkZGRkZGRkYpIHJldHVybiAtMUw7CisgIAorISAgICAgICAgIHMtPnN0cmVhbS50b3RhbF9pbiA9IHMtPnN0cmVhbS50b3RhbF9vdXQgPSAodUxvbmcpb2Zmc2V0OworISAgICAgICAgIHJldHVybiBvZmZzZXQ7CisgICAgICB9CisgIAorICAgICAgLyogRm9yIGEgbmVnYXRpdmUgc2VlaywgcmV3aW5kIGFuZCB1c2UgcG9zaXRpdmUgc2VlayAqLworICAgICAgaWYgKCh1TG9uZylvZmZzZXQgPj0gcy0+c3RyZWFtLnRvdGFsX291dCkgeworISAgICAgICAgIG9mZnNldCAtPSBzLT5zdHJlYW0udG90YWxfb3V0OworICAgICAgfSBlbHNlIGlmIChnenJld2luZChmaWxlKSA8IDApIHsKKyEgICAgICAgICByZXR1cm4gLTFMOworICAgICAgfQorICAgICAgLyogb2Zmc2V0IGlzIG5vdyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAuICovCisgIAorICAgICAgaWYgKG9mZnNldCAhPSAwICYmIHMtPm91dGJ1ZiA9PSBaX05VTEwpIHsKKyEgICAgICAgICBzLT5vdXRidWYgPSAoQnl0ZSopQUxMT0MoWl9CVUZTSVpFKTsKKyAgICAgIH0KKyAgICAgIHdoaWxlIChvZmZzZXQgPiAwKSAgeworISAgICAgICAgIGludCBzaXplID0gWl9CVUZTSVpFOworISAgICAgICAgIGlmIChvZmZzZXQgPCBaX0JVRlNJWkUpIHNpemUgPSAoaW50KW9mZnNldDsKKyAgCishICAgICAgICAgc2l6ZSA9IGd6cmVhZChmaWxlLCBzLT5vdXRidWYsICh1SW50KXNpemUpOworISAgICAgICAgIGlmIChzaXplIDw9IDApIHJldHVybiAtMUw7CishICAgICAgICAgb2Zmc2V0IC09IHNpemU7CisgICAgICB9CisgICAgICByZXR1cm4gKHpfb2ZmX3Qpcy0+c3RyZWFtLnRvdGFsX291dDsKKyAgfQorKioqKioqKioqKioqKioqCisqKiogNzQyLDc0OCAqKioqCisgICAgICBnekZpbGUgZmlsZTsKKyAgeworICAgICAgZ3pfc3RyZWFtICpzID0gKGd6X3N0cmVhbSopZmlsZTsKKyEgICAgIAorICAgICAgaWYgKHMgPT0gTlVMTCB8fCBzLT5tb2RlICE9ICdyJykgcmV0dXJuIC0xOworICAKKyAgICAgIHMtPnpfZXJyID0gWl9PSzsKKy0tLSA3NzcsNzgzIC0tLS0KKyAgICAgIGd6RmlsZSBmaWxlOworICB7CisgICAgICBnel9zdHJlYW0gKnMgPSAoZ3pfc3RyZWFtKilmaWxlOworISAKKyAgICAgIGlmIChzID09IE5VTEwgfHwgcy0+bW9kZSAhPSAncicpIHJldHVybiAtMTsKKyAgCisgICAgICBzLT56X2VyciA9IFpfT0s7CisqKioqKioqKioqKioqKioKKyoqKiA3NTAsNzYzICoqKioKKyAgICAgIHMtPnN0cmVhbS5hdmFpbF9pbiA9IDA7CisgICAgICBzLT5zdHJlYW0ubmV4dF9pbiA9IHMtPmluYnVmOworICAgICAgcy0+Y3JjID0gY3JjMzIoMEwsIFpfTlVMTCwgMCk7CishIAkKKyAgICAgIGlmIChzLT5zdGFydHBvcyA9PSAwKSB7IC8qIG5vdCBhIGNvbXByZXNzZWQgZmlsZSAqLworISAJcmV3aW5kKHMtPmZpbGUpOworISAJcmV0dXJuIDA7CisgICAgICB9CisgIAorICAgICAgKHZvaWQpIGluZmxhdGVSZXNldCgmcy0+c3RyZWFtKTsKKyEgICAgIHJldHVybiBmc2VlayhzLT5maWxlLCBzLT5zdGFydHBvcywgU0VFS19TRVQpOworICB9CisgIAorICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSA3ODUsNzk4IC0tLS0KKyAgICAgIHMtPnN0cmVhbS5hdmFpbF9pbiA9IDA7CisgICAgICBzLT5zdHJlYW0ubmV4dF9pbiA9IHMtPmluYnVmOworICAgICAgcy0+Y3JjID0gY3JjMzIoMEwsIFpfTlVMTCwgMCk7CishICAgICAgICAgCisgICAgICBpZiAocy0+c3RhcnRwb3MgPT0gMCkgeyAvKiBub3QgYSBjb21wcmVzc2VkIGZpbGUgKi8KKyEgICAgICAgICBTZXRGaWxlUG9pbnRlcihzLT5maWxlLCAwLCBOVUxMLCBGSUxFX0JFR0lOKTsKKyEgICAgICAgICByZXR1cm4gMDsKKyAgICAgIH0KKyAgCisgICAgICAodm9pZCkgaW5mbGF0ZVJlc2V0KCZzLT5zdHJlYW0pOworISAgICAgcmV0dXJuIFNldEZpbGVQb2ludGVyKHMtPmZpbGUsIHMtPnN0YXJ0cG9zLCBOVUxMLCBGSUxFX0JFR0lOKTsKKyAgfQorICAKKyAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisqKioqKioqKioqKioqKioKKyoqKiA3ODcsNzk4ICoqKioKKyAgICAgT3V0cHV0cyBhIGxvbmcgaW4gTFNCIG9yZGVyIHRvIHRoZSBnaXZlbiBmaWxlCisgICovCisgIGxvY2FsIHZvaWQgcHV0TG9uZyAoZmlsZSwgeCkKKyEgICAgIEZJTEUgKmZpbGU7CisgICAgICB1TG9uZyB4OworICB7CisgICAgICBpbnQgbjsKKyAgICAgIGZvciAobiA9IDA7IG4gPCA0OyBuKyspIHsKKyEgICAgICAgICBmcHV0YygoaW50KSh4ICYgMHhmZiksIGZpbGUpOworICAgICAgICAgIHggPj49IDg7CisgICAgICB9CisgIH0KKy0tLSA4MjIsODM2IC0tLS0KKyAgICAgT3V0cHV0cyBhIGxvbmcgaW4gTFNCIG9yZGVyIHRvIHRoZSBnaXZlbiBmaWxlCisgICovCisgIGxvY2FsIHZvaWQgcHV0TG9uZyAoZmlsZSwgeCkKKyEgICAgIEhBTkRMRSBmaWxlOworICAgICAgdUxvbmcgeDsKKyAgeworICAgICAgaW50IG47CisrICAgICBjaGFyIGNoWzFdOworKyAgICAgRFdPUkQgc2l6ZTsKKyAgICAgIGZvciAobiA9IDA7IG4gPCA0OyBuKyspIHsKKyEgICAgICAgICBjaFswXSA9IChpbnQpKHggJiAweGZmKTsKKyEgICAgICAgICBXcml0ZUZpbGUoZmlsZSwgY2gsIDEsICZzaXplLCBOVUxMKTsKKyAgICAgICAgICB4ID4+PSA4OworICAgICAgfQorICB9CisqKioqKioqKioqKioqKioKKyoqKiA4MTAsODE2ICoqKioKKyAgICAgIHggKz0gKCh1TG9uZylnZXRfYnl0ZShzKSk8PDg7CisgICAgICB4ICs9ICgodUxvbmcpZ2V0X2J5dGUocykpPDwxNjsKKyAgICAgIGMgPSBnZXRfYnl0ZShzKTsKKyEgICAgIGlmIChjID09IEVPRikgcy0+el9lcnIgPSBaX0RBVEFfRVJST1I7CisgICAgICB4ICs9ICgodUxvbmcpYyk8PDI0OworICAgICAgcmV0dXJuIHg7CisgIH0KKy0tLSA4NDgsODU0IC0tLS0KKyAgICAgIHggKz0gKCh1TG9uZylnZXRfYnl0ZShzKSk8PDg7CisgICAgICB4ICs9ICgodUxvbmcpZ2V0X2J5dGUocykpPDwxNjsKKyAgICAgIGMgPSBnZXRfYnl0ZShzKTsKKyEgICAgIGlmIChjID09IC0xKSBzLT56X2VyciA9IFpfREFUQV9FUlJPUjsKKyAgICAgIHggKz0gKCh1TG9uZyljKTw8MjQ7CisgICAgICByZXR1cm4geDsKKyAgfQorKioqKioqKioqKioqKioqCisqKiogODI5LDgzNSAqKioqCisgIAorICAgICAgaWYgKHMtPm1vZGUgPT0gJ3cnKSB7CisgICNpZmRlZiBOT19ERUZMQVRFCishIAlyZXR1cm4gWl9TVFJFQU1fRVJST1I7CisgICNlbHNlCisgICAgICAgICAgZXJyID0gZG9fZmx1c2ggKGZpbGUsIFpfRklOSVNIKTsKKyAgICAgICAgICBpZiAoZXJyICE9IFpfT0spIHJldHVybiBkZXN0cm95KChnel9zdHJlYW0qKWZpbGUpOworLS0tIDg2Nyw4NzMgLS0tLQorICAKKyAgICAgIGlmIChzLT5tb2RlID09ICd3JykgeworICAjaWZkZWYgTk9fREVGTEFURQorISAgICAgICAgIHJldHVybiBaX1NUUkVBTV9FUlJPUjsKKyAgI2Vsc2UKKyAgICAgICAgICBlcnIgPSBkb19mbHVzaCAoZmlsZSwgWl9GSU5JU0gpOworICAgICAgICAgIGlmIChlcnIgIT0gWl9PSykgcmV0dXJuIGRlc3Ryb3koKGd6X3N0cmVhbSopZmlsZSk7CisqKioqKioqKioqKioqKioKKyoqKiA4NjIsODY4ICoqKioKKyAgICAgICplcnJudW0gPSBzLT56X2VycjsKKyAgICAgIGlmICgqZXJybnVtID09IFpfT0spIHJldHVybiAoY29uc3QgY2hhciopIiI7CisgIAorISAgICAgbSA9ICAoY2hhciopKCplcnJudW0gPT0gWl9FUlJOTyA/IHpzdHJlcnJvcihlcnJubykgOiBzLT5zdHJlYW0ubXNnKTsKKyAgCisgICAgICBpZiAobSA9PSBOVUxMIHx8ICptID09ICdcMCcpIG0gPSAoY2hhciopRVJSX01TRyhzLT56X2Vycik7CisgIAorLS0tIDkwMCw5MDYgLS0tLQorICAgICAgKmVycm51bSA9IHMtPnpfZXJyOworICAgICAgaWYgKCplcnJudW0gPT0gWl9PSykgcmV0dXJuIChjb25zdCBjaGFyKikiIjsKKyAgCishICAgICBtID0gIChjaGFyKikoKmVycm51bSA9PSBaX0VSUk5PID8genN0cmVycm9yKEdldExhc3RFcnJvcigpKSA6IHMtPnN0cmVhbS5tc2cpOworICAKKyAgICAgIGlmIChtID09IE5VTEwgfHwgKm0gPT0gJ1wwJykgbSA9IChjaGFyKilFUlJfTVNHKHMtPnpfZXJyKTsKKyAgCisqKiogemxpYjExMy9taW5pZ3ppcC5jCVNhdCBKdWwgIDggMTM6NTk6NDkgMjAwMAorLS0tIHpsaWJ3Y2UvbWluaWd6aXAuYwlTYXQgSnVsICA4IDEzOjU4OjI5IDIwMDAKKyoqKioqKioqKioqKioqKgorKioqIDEsNSAqKioqCistLS0gMSw2IC0tLS0KKyAgLyogbWluaWd6aXAuYyAtLSBzaW11bGF0ZSBnemlwIHVzaW5nIHRoZSB6bGliIGNvbXByZXNzaW9uIGxpYnJhcnkKKyAgICogQ29weXJpZ2h0IChDKSAxOTk1LTE5OTggSmVhbi1sb3VwIEdhaWxseS4KKysgICogQ29weXJpZ2h0IChDKSAyMDAwICAgICAgVGVuaWsgQ28uLEx0ZC4KKyAgICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHpsaWIuaCAKKyAgICovCisgIAorKioqKioqKioqKioqKioqCisqKiogMTUsMjEgKioqKgorLS0tIDE2LDMwIC0tLS0KKyAgCisgIC8qIEAoIykgJElkJCAqLworICAKKysgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKKysgI2lmIF9XSU4zMl9XQ0UgPCAyMTEKKysgI2Vycm9yIChmfHcpcHJpbnRmIGZ1bmN0aW9ucyBpcyBub3Qgc3VwcG9ydCBvbGQgV2luZG93c0NFLgorKyAjZW5kaWYKKysgI3VuZGVmIFVTRV9NTUFQCisrICNpbmNsdWRlIDx3aW5kb3dzLmg+CisrICNlbHNlCisgICNpbmNsdWRlIDxzdGRpby5oPgorKyAjZW5kaWYKKyAgI2luY2x1ZGUgInpsaWIuaCIKKyAgCisgICNpZmRlZiBTVERDCisqKioqKioqKioqKioqKioKKyoqKiAzMSwzNyAqKioqCisgICMgIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CisgICNlbmRpZgorICAKKyEgI2lmIGRlZmluZWQoTVNET1MpIHx8IGRlZmluZWQoT1MyKSB8fCBkZWZpbmVkKFdJTjMyKQorICAjICBpbmNsdWRlIDxmY250bC5oPgorICAjICBpbmNsdWRlIDxpby5oPgorICAjICBkZWZpbmUgU0VUX0JJTkFSWV9NT0RFKGZpbGUpIHNldG1vZGUoZmlsZW5vKGZpbGUpLCBPX0JJTkFSWSkKKy0tLSA0MCw0NiAtLS0tCisgICMgIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CisgICNlbmRpZgorICAKKyEgI2lmIChkZWZpbmVkKE1TRE9TKSB8fCBkZWZpbmVkKE9TMikgfHwgZGVmaW5lZChXSU4zMikpICYmICFkZWZpbmVkKF9XSU4zMl9XQ0UpCisgICMgIGluY2x1ZGUgPGZjbnRsLmg+CisgICMgIGluY2x1ZGUgPGlvLmg+CisgICMgIGRlZmluZSBTRVRfQklOQVJZX01PREUoZmlsZSkgc2V0bW9kZShmaWxlbm8oZmlsZSksIE9fQklOQVJZKQorKioqKioqKioqKioqKioqCisqKiogNzEsODQgKioqKgorICAjICBkZWZpbmUgbG9jYWwKKyAgI2VuZGlmCisgIAorICBjaGFyICpwcm9nOworICAKKyAgdm9pZCBlcnJvciAgICAgICAgICAgIE9GKChjb25zdCBjaGFyICptc2cpKTsKKyEgdm9pZCBnel9jb21wcmVzcyAgICAgIE9GKChGSUxFICAgKmluLCBnekZpbGUgb3V0KSk7CisgICNpZmRlZiBVU0VfTU1BUAorISBpbnQgIGd6X2NvbXByZXNzX21tYXAgT0YoKEZJTEUgICAqaW4sIGd6RmlsZSBvdXQpKTsKKyAgI2VuZGlmCishIHZvaWQgZ3pfdW5jb21wcmVzcyAgICBPRigoZ3pGaWxlIGluLCBGSUxFICAgKm91dCkpOworICB2b2lkIGZpbGVfY29tcHJlc3MgICAgT0YoKGNoYXIgICpmaWxlLCBjaGFyICptb2RlKSk7CisgIHZvaWQgZmlsZV91bmNvbXByZXNzICBPRigoY2hhciAgKmZpbGUpKTsKKyAgaW50ICBtYWluICAgICAgICAgICAgIE9GKChpbnQgYXJnYywgY2hhciAqYXJndltdKSk7CistLS0gODAsMTAzIC0tLS0KKyAgIyAgZGVmaW5lIGxvY2FsCisgICNlbmRpZgorICAKKysgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKKysgI3VuZGVmICBzdGRlcnIKKysgI2RlZmluZSBzdGRlcnIgIHN0ZG91dAorKyAjZGVmaW5lIEZfRklMRSAgSEFORExFCisrICNkZWZpbmUgRl9OVUxMICBJTlZBTElEX0hBTkRMRV9WQUxVRQorKyAjZWxzZQorKyAjZGVmaW5lIEZfRklMRSAgRklMRSoKKysgI2RlZmluZSBGX05VTEwgIE5VTEwKKysgI2VuZGlmCisrIAorICBjaGFyICpwcm9nOworICAKKyAgdm9pZCBlcnJvciAgICAgICAgICAgIE9GKChjb25zdCBjaGFyICptc2cpKTsKKyEgdm9pZCBnel9jb21wcmVzcyAgICAgIE9GKChGX0ZJTEUgaW4sIGd6RmlsZSBvdXQpKTsKKyAgI2lmZGVmIFVTRV9NTUFQCishIGludCAgZ3pfY29tcHJlc3NfbW1hcCBPRigoRl9GSUxFIGluLCBnekZpbGUgb3V0KSk7CisgICNlbmRpZgorISB2b2lkIGd6X3VuY29tcHJlc3MgICAgT0YoKGd6RmlsZSBpbiwgRl9GSUxFIG91dCkpOworICB2b2lkIGZpbGVfY29tcHJlc3MgICAgT0YoKGNoYXIgICpmaWxlLCBjaGFyICptb2RlKSk7CisgIHZvaWQgZmlsZV91bmNvbXByZXNzICBPRigoY2hhciAgKmZpbGUpKTsKKyAgaW50ICBtYWluICAgICAgICAgICAgIE9GKChpbnQgYXJnYywgY2hhciAqYXJndltdKSk7CisqKioqKioqKioqKioqKioKKyoqKiA5MywxMDQgKioqKgorICAgICAgZXhpdCgxKTsKKyAgfQorICAKKyAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAqIENvbXByZXNzIGlucHV0IHRvIG91dHB1dCB0aGVuIGNsb3NlIGJvdGggZmlsZXMuCisgICAqLworICAKKyAgdm9pZCBnel9jb21wcmVzcyhpbiwgb3V0KQorISAgICAgRklMRSAgICppbjsKKyAgICAgIGd6RmlsZSBvdXQ7CisgIHsKKyAgICAgIGxvY2FsIGNoYXIgYnVmW0JVRkxFTl07CistLS0gMTEyLDE2MCAtLS0tCisgICAgICBleGl0KDEpOworICB9CisgIAorKyAjaWYgZGVmaW5lZChfV0lOMzJfV0NFKQorKyB2b2lkIHBlcnJvcihtc2cpCisrICAgICBjb25zdCBjaGFyICptc2c7CisrIHsKKysgICAgIERXT1JEIGR3RXJyb3I7CisrICAgICBMUFZPSUQgbHBNc2dCdWY7CisrIAorKyAgICAgZHdFcnJvciA9IEdldExhc3RFcnJvcigpOworKyAgICAgaWYgKCBGb3JtYXRNZXNzYWdlKEZPUk1BVF9NRVNTQUdFX0FMTE9DQVRFX0JVRkZFUiB8CisrICAgICAgICAgRk9STUFUX01FU1NBR0VfRlJPTV9TWVNURU0gfCBGT1JNQVRfTUVTU0FHRV9GUk9NX0hNT0RVTEUgfAorKyAgICAgICAgIEZPUk1BVF9NRVNTQUdFX0lHTk9SRV9JTlNFUlRTLAorKyAgICAgICAgIE5VTEwsCisrICAgICAgICAgZHdFcnJvciwKKysgICAgICAgICBNQUtFTEFOR0lEKExBTkdfTkVVVFJBTCwgU1VCTEFOR19ERUZBVUxUKSwgLy8gRGVmYXVsdCBsYW5ndWFnZQorKyAgICAgICAgIChMUFRTVFIpICZscE1zZ0J1ZiwKKysgICAgICAgICAwLAorKyAgICAgICAgIE5VTEwpICkKKysgICAgIHsKKysgICAgICAgICB3cHJpbnRmKFRFWFQoIiVTOiAlc1xuIiksIG1zZywgKExQVFNUUilscE1zZ0J1Zik7CisrICAgICAgICAgTG9jYWxGcmVlKGxwTXNnQnVmKTsKKysgICAgIH0KKysgICAgIGVsc2UKKysgICAgIHsKKysgICAgICAgICB3cHJpbnRmKFRFWFQoIiVTOiBFcnJvciAjJWRcbiIpLCBtc2csIGR3RXJyb3IpOworKyAgICAgfQorKyB9CisrIAorKyBpbnQgdW5saW5rKGZpbGVuYW1lKQorKyAgICAgY29uc3QgY2hhciAqZmlsZW5hbWU7CisrIHsKKysgICAgIFRDSEFSIHBhdGhbTUFYX1BBVEhdOworKyAKKysgICAgIE11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCAwLCBmaWxlbmFtZSwgLTEsIHBhdGgsIE1BWF9QQVRIKTsKKysgICAgIHJldHVybiBEZWxldGVGaWxlKHBhdGgpOworKyB9CisrICNlbmRpZgorKyAKKyAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAqIENvbXByZXNzIGlucHV0IHRvIG91dHB1dCB0aGVuIGNsb3NlIGJvdGggZmlsZXMuCisgICAqLworICAKKyAgdm9pZCBnel9jb21wcmVzcyhpbiwgb3V0KQorISAgICAgRl9GSUxFIGluOworICAgICAgZ3pGaWxlIG91dDsKKyAgeworICAgICAgbG9jYWwgY2hhciBidWZbQlVGTEVOXTsKKyoqKioqKioqKioqKioqKgorKioqIDExMiwxMTkgKioqKgorLS0tIDE2OCwxNzkgLS0tLQorICAgICAgaWYgKGd6X2NvbXByZXNzX21tYXAoaW4sIG91dCkgPT0gWl9PSykgcmV0dXJuOworICAjZW5kaWYKKyAgICAgIGZvciAoOzspIHsKKysgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKKysgICAgICAgICBpZiAoIVJlYWRGaWxlKGluLCBidWYsIHNpemVvZihidWYpLCAmbGVuLCBOVUxMKSkgeworKyAjZWxzZQorICAgICAgICAgIGxlbiA9IGZyZWFkKGJ1ZiwgMSwgc2l6ZW9mKGJ1ZiksIGluKTsKKyAgICAgICAgICBpZiAoZmVycm9yKGluKSkgeworKyAjZW5kaWYKKyAgICAgICAgICAgICAgcGVycm9yKCJmcmVhZCIpOworICAgICAgICAgICAgICBleGl0KDEpOworICAgICAgICAgIH0KKyoqKioqKioqKioqKioqKgorKioqIDEyMSwxMjcgKioqKgorLS0tIDE4MSwxOTEgLS0tLQorICAKKyAgICAgICAgICBpZiAoZ3p3cml0ZShvdXQsIGJ1ZiwgKHVuc2lnbmVkKWxlbikgIT0gbGVuKSBlcnJvcihnemVycm9yKG91dCwgJmVycikpOworICAgICAgfQorKyAjaWYgZGVmaW5lZChfV0lOMzJfV0NFKQorKyAgICAgQ2xvc2VIYW5kbGUoaW4pOworKyAjZWxzZQorICAgICAgZmNsb3NlKGluKTsKKysgI2VuZGlmCisgICAgICBpZiAoZ3pjbG9zZShvdXQpICE9IFpfT0spIGVycm9yKCJmYWlsZWQgZ3pjbG9zZSIpOworICB9CisgIAorKioqKioqKioqKioqKioqCisqKiogMTMxLDEzNyAqKioqCisgICAqIGlmIHN1Y2Nlc3MsIFpfRVJSTk8gb3RoZXJ3aXNlLgorICAgKi8KKyAgaW50IGd6X2NvbXByZXNzX21tYXAoaW4sIG91dCkKKyEgICAgIEZJTEUgICAqaW47CisgICAgICBnekZpbGUgb3V0OworICB7CisgICAgICBpbnQgbGVuOworLS0tIDE5NSwyMDEgLS0tLQorICAgKiBpZiBzdWNjZXNzLCBaX0VSUk5PIG90aGVyd2lzZS4KKyAgICovCisgIGludCBnel9jb21wcmVzc19tbWFwKGluLCBvdXQpCishICAgICBGX0ZJTEUgaW47CisgICAgICBnekZpbGUgb3V0OworICB7CisgICAgICBpbnQgbGVuOworKioqKioqKioqKioqKioqCisqKiogMTY3LDE3NyAqKioqCisgICAqLworICB2b2lkIGd6X3VuY29tcHJlc3MoaW4sIG91dCkKKyAgICAgIGd6RmlsZSBpbjsKKyEgICAgIEZJTEUgICAqb3V0OworICB7CisgICAgICBsb2NhbCBjaGFyIGJ1ZltCVUZMRU5dOworICAgICAgaW50IGxlbjsKKyAgICAgIGludCBlcnI7CisgIAorICAgICAgZm9yICg7OykgeworICAgICAgICAgIGxlbiA9IGd6cmVhZChpbiwgYnVmLCBzaXplb2YoYnVmKSk7CistLS0gMjMxLDI0NCAtLS0tCisgICAqLworICB2b2lkIGd6X3VuY29tcHJlc3MoaW4sIG91dCkKKyAgICAgIGd6RmlsZSBpbjsKKyEgICAgIEZfRklMRSBvdXQ7CisgIHsKKyAgICAgIGxvY2FsIGNoYXIgYnVmW0JVRkxFTl07CisgICAgICBpbnQgbGVuOworICAgICAgaW50IGVycjsKKysgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKKysgICAgIGludCBzaXplOworKyAjZW5kaWYKKyAgCisgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgbGVuID0gZ3pyZWFkKGluLCBidWYsIHNpemVvZihidWYpKTsKKyoqKioqKioqKioqKioqKgorKioqIDE3OCwxODggKioqKgorICAgICAgICAgIGlmIChsZW4gPCAwKSBlcnJvciAoZ3plcnJvcihpbiwgJmVycikpOworICAgICAgICAgIGlmIChsZW4gPT0gMCkgYnJlYWs7CisgIAorICAgICAgICAgIGlmICgoaW50KWZ3cml0ZShidWYsIDEsICh1bnNpZ25lZClsZW4sIG91dCkgIT0gbGVuKSB7CishIAkgICAgZXJyb3IoImZhaWxlZCBmd3JpdGUiKTsKKyEgCX0KKyAgICAgIH0KKyAgICAgIGlmIChmY2xvc2Uob3V0KSkgZXJyb3IoImZhaWxlZCBmY2xvc2UiKTsKKyAgCisgICAgICBpZiAoZ3pjbG9zZShpbikgIT0gWl9PSykgZXJyb3IoImZhaWxlZCBnemNsb3NlIik7CisgIH0KKy0tLSAyNDUsMjYzIC0tLS0KKyAgICAgICAgICBpZiAobGVuIDwgMCkgZXJyb3IgKGd6ZXJyb3IoaW4sICZlcnIpKTsKKyAgICAgICAgICBpZiAobGVuID09IDApIGJyZWFrOworICAKKysgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKKysgICAgICAgICBpZiAoIVdyaXRlRmlsZShvdXQsIGJ1ZiwgKHVuc2lnbmVkKWxlbiwgJnNpemUsIE5VTEwpIHx8IHNpemUgIT0gbGVuKSB7CisrICNlbHNlCisgICAgICAgICAgaWYgKChpbnQpZndyaXRlKGJ1ZiwgMSwgKHVuc2lnbmVkKWxlbiwgb3V0KSAhPSBsZW4pIHsKKyEgI2VuZGlmCishICAgICAgICAgICAgIGVycm9yKCJmYWlsZWQgZndyaXRlIik7CishICAgICAgICAgfQorICAgICAgfQorKyAjaWYgZGVmaW5lZChfV0lOMzJfV0NFKQorKyAgICAgaWYgKCFDbG9zZUhhbmRsZShvdXQpKSBlcnJvcigiZmFpbGVkIGZjbG9zZSIpOworKyAjZWxzZQorICAgICAgaWYgKGZjbG9zZShvdXQpKSBlcnJvcigiZmFpbGVkIGZjbG9zZSIpOworKyAjZW5kaWYKKyAgCisgICAgICBpZiAoZ3pjbG9zZShpbikgIT0gWl9PSykgZXJyb3IoImZhaWxlZCBnemNsb3NlIik7CisgIH0KKyoqKioqKioqKioqKioqKgorKioqIDE5NywyMTUgKioqKgorICAgICAgY2hhciAgKm1vZGU7CisgIHsKKyAgICAgIGxvY2FsIGNoYXIgb3V0ZmlsZVtNQVhfTkFNRV9MRU5dOworISAgICAgRklMRSAgKmluOworICAgICAgZ3pGaWxlIG91dDsKKyAgCisgICAgICBzdHJjcHkob3V0ZmlsZSwgZmlsZSk7CisgICAgICBzdHJjYXQob3V0ZmlsZSwgR1pfU1VGRklYKTsKKyAgCisgICAgICBpbiA9IGZvcGVuKGZpbGUsICJyYiIpOworISAgICAgaWYgKGluID09IE5VTEwpIHsKKyAgICAgICAgICBwZXJyb3IoZmlsZSk7CisgICAgICAgICAgZXhpdCgxKTsKKyAgICAgIH0KKyAgICAgIG91dCA9IGd6b3BlbihvdXRmaWxlLCBtb2RlKTsKKyEgICAgIGlmIChvdXQgPT0gTlVMTCkgeworICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IGNhbid0IGd6b3BlbiAlc1xuIiwgcHJvZywgb3V0ZmlsZSk7CisgICAgICAgICAgZXhpdCgxKTsKKyAgICAgIH0KKy0tLSAyNzIsMjk4IC0tLS0KKyAgICAgIGNoYXIgICptb2RlOworICB7CisgICAgICBsb2NhbCBjaGFyIG91dGZpbGVbTUFYX05BTUVfTEVOXTsKKyEgICAgIEZfRklMRSBpbjsKKyAgICAgIGd6RmlsZSBvdXQ7CisrICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCisrICAgICBUQ0hBUiBwYXRoW01BWF9QQVRIXTsKKysgI2VuZGlmCisgIAorICAgICAgc3RyY3B5KG91dGZpbGUsIGZpbGUpOworICAgICAgc3RyY2F0KG91dGZpbGUsIEdaX1NVRkZJWCk7CisgIAorKyAjaWYgZGVmaW5lZChfV0lOMzJfV0NFKQorKyAgICAgTXVsdGlCeXRlVG9XaWRlQ2hhcihDUF9BQ1AsIDAsIGZpbGUsIC0xLCBwYXRoLCBNQVhfUEFUSCk7CisrICAgICBpbiA9IENyZWF0ZUZpbGUocGF0aCwgR0VORVJJQ19SRUFELCAwLCBOVUxMLCBPUEVOX0VYSVNUSU5HLCAwLCBOVUxMKTsKKysgI2Vsc2UKKyAgICAgIGluID0gZm9wZW4oZmlsZSwgInJiIik7CishICNlbmRpZgorISAgICAgaWYgKGluID09IEZfTlVMTCkgeworICAgICAgICAgIHBlcnJvcihmaWxlKTsKKyAgICAgICAgICBleGl0KDEpOworICAgICAgfQorICAgICAgb3V0ID0gZ3pvcGVuKG91dGZpbGUsIG1vZGUpOworISAgICAgaWYgKG91dCA9PSBGX05VTEwpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiBjYW4ndCBnem9wZW4gJXNcbiIsIHByb2csIG91dGZpbGUpOworICAgICAgICAgIGV4aXQoMSk7CisgICAgICB9CisqKioqKioqKioqKioqKioKKyoqKiAyMjcsMjM1ICoqKioKKyAgeworICAgICAgbG9jYWwgY2hhciBidWZbTUFYX05BTUVfTEVOXTsKKyAgICAgIGNoYXIgKmluZmlsZSwgKm91dGZpbGU7CishICAgICBGSUxFICAqb3V0OworICAgICAgZ3pGaWxlIGluOworICAgICAgaW50IGxlbiA9IHN0cmxlbihmaWxlKTsKKyAgCisgICAgICBzdHJjcHkoYnVmLCBmaWxlKTsKKyAgCistLS0gMzEwLDMyMSAtLS0tCisgIHsKKyAgICAgIGxvY2FsIGNoYXIgYnVmW01BWF9OQU1FX0xFTl07CisgICAgICBjaGFyICppbmZpbGUsICpvdXRmaWxlOworISAgICAgRl9GSUxFIG91dDsKKyAgICAgIGd6RmlsZSBpbjsKKyAgICAgIGludCBsZW4gPSBzdHJsZW4oZmlsZSk7CisrICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCisrICAgICBUQ0hBUiBwYXRoW01BWF9QQVRIXTsKKysgI2VuZGlmCisgIAorICAgICAgc3RyY3B5KGJ1ZiwgZmlsZSk7CisgIAorKioqKioqKioqKioqKioqCisqKiogMjQzLDI1NCAqKioqCisgICAgICAgICAgc3RyY2F0KGluZmlsZSwgR1pfU1VGRklYKTsKKyAgICAgIH0KKyAgICAgIGluID0gZ3pvcGVuKGluZmlsZSwgInJiIik7CishICAgICBpZiAoaW4gPT0gTlVMTCkgeworICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IGNhbid0IGd6b3BlbiAlc1xuIiwgcHJvZywgaW5maWxlKTsKKyAgICAgICAgICBleGl0KDEpOworICAgICAgfQorICAgICAgb3V0ID0gZm9wZW4ob3V0ZmlsZSwgIndiIik7CishICAgICBpZiAob3V0ID09IE5VTEwpIHsKKyAgICAgICAgICBwZXJyb3IoZmlsZSk7CisgICAgICAgICAgZXhpdCgxKTsKKyAgICAgIH0KKy0tLSAzMjksMzQ1IC0tLS0KKyAgICAgICAgICBzdHJjYXQoaW5maWxlLCBHWl9TVUZGSVgpOworICAgICAgfQorICAgICAgaW4gPSBnem9wZW4oaW5maWxlLCAicmIiKTsKKyEgICAgIGlmIChpbiA9PSBGX05VTEwpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiBjYW4ndCBnem9wZW4gJXNcbiIsIHByb2csIGluZmlsZSk7CisgICAgICAgICAgZXhpdCgxKTsKKyAgICAgIH0KKysgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKKysgICAgIE11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCAwLCBvdXRmaWxlLCAtMSwgcGF0aCwgTUFYX1BBVEgpOworKyAgICAgb3V0ID0gQ3JlYXRlRmlsZShwYXRoLCBHRU5FUklDX1dSSVRFLCAwLCBOVUxMLCBDUkVBVEVfQUxXQVlTLCAwLCBOVUxMKTsKKysgI2Vsc2UKKyAgICAgIG91dCA9IGZvcGVuKG91dGZpbGUsICJ3YiIpOworISAjZW5kaWYKKyEgICAgIGlmIChvdXQgPT0gRl9OVUxMKSB7CisgICAgICAgICAgcGVycm9yKGZpbGUpOworICAgICAgICAgIGV4aXQoMSk7CisgICAgICB9CisqKioqKioqKioqKioqKioKKyoqKiAyNzIsMjc4ICoqKioKKy0tLSAzNjMsMzcxIC0tLS0KKyAgICAgIGNoYXIgKmFyZ3ZbXTsKKyAgeworICAgICAgaW50IHVuY29tcHIgPSAwOworKyAjaWYgIWRlZmluZWQoX1dJTjMyX1dDRSkKKyAgICAgIGd6RmlsZSBmaWxlOworKyAjZW5kaWYKKyAgICAgIGNoYXIgb3V0bW9kZVsyMF07CisgIAorICAgICAgc3RyY3B5KG91dG1vZGUsICJ3YjYgIik7CisqKioqKioqKioqKioqKioKKyoqKiAyODIsMzAwICoqKioKKyAgCisgICAgICB3aGlsZSAoYXJnYyA+IDApIHsKKyAgICAgICAgaWYgKHN0cmNtcCgqYXJndiwgIi1kIikgPT0gMCkKKyEgCXVuY29tcHIgPSAxOworICAgICAgICBlbHNlIGlmIChzdHJjbXAoKmFyZ3YsICItZiIpID09IDApCishIAlvdXRtb2RlWzNdID0gJ2YnOworICAgICAgICBlbHNlIGlmIChzdHJjbXAoKmFyZ3YsICItaCIpID09IDApCishIAlvdXRtb2RlWzNdID0gJ2gnOworICAgICAgICBlbHNlIGlmICgoKmFyZ3YpWzBdID09ICctJyAmJiAoKmFyZ3YpWzFdID49ICcxJyAmJiAoKmFyZ3YpWzFdIDw9ICc5JyAmJgorISAJICAgICAgICgqYXJndilbMl0gPT0gMCkKKyEgCW91dG1vZGVbMl0gPSAoKmFyZ3YpWzFdOworICAgICAgICBlbHNlCishIAlicmVhazsKKyAgICAgICAgYXJnYy0tLCBhcmd2Kys7CisgICAgICB9CisgICAgICBpZiAoYXJnYyA9PSAwKSB7CisgICAgICAgICAgU0VUX0JJTkFSWV9NT0RFKHN0ZGluKTsKKyAgICAgICAgICBTRVRfQklOQVJZX01PREUoc3Rkb3V0KTsKKyAgICAgICAgICBpZiAodW5jb21wcikgeworLS0tIDM3NSw0MDAgLS0tLQorICAKKyAgICAgIHdoaWxlIChhcmdjID4gMCkgeworICAgICAgICBpZiAoc3RyY21wKCphcmd2LCAiLWQiKSA9PSAwKQorISAgICAgICAgIHVuY29tcHIgPSAxOworICAgICAgICBlbHNlIGlmIChzdHJjbXAoKmFyZ3YsICItZiIpID09IDApCishICAgICAgICAgb3V0bW9kZVszXSA9ICdmJzsKKyAgICAgICAgZWxzZSBpZiAoc3RyY21wKCphcmd2LCAiLWgiKSA9PSAwKQorISAgICAgICAgIG91dG1vZGVbM10gPSAnaCc7CisgICAgICAgIGVsc2UgaWYgKCgqYXJndilbMF0gPT0gJy0nICYmICgqYXJndilbMV0gPj0gJzEnICYmICgqYXJndilbMV0gPD0gJzknICYmCishICAgICAgICAgICAgICAgICgqYXJndilbMl0gPT0gMCkKKyEgICAgICAgICBvdXRtb2RlWzJdID0gKCphcmd2KVsxXTsKKyAgICAgICAgZWxzZQorISAgICAgICAgIGJyZWFrOworICAgICAgICBhcmdjLS0sIGFyZ3YrKzsKKyAgICAgIH0KKyAgICAgIGlmIChhcmdjID09IDApIHsKKysgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKKysgICAgICAgICB3cHJpbnRmKFRFWFQoIlVzYWdlOiAgbWluaWd6aXAgWy1kXSBbLWZdIFstaF0gWy0xIHRvIC05XSBbZmlsZXMuLi5dXG4iKSk7CisrICAgICAgICAgd3ByaW50ZihURVhUKCIgIC1kIDogZGVjb21wcmVzc1xuIikpOworKyAgICAgICAgIHdwcmludGYoVEVYVCgiICAtZiA6IGNvbXByZXNzIHdpdGggWl9GSUxURVJFRFxuIikpOworKyAgICAgICAgIHdwcmludGYoVEVYVCgiICAtaCA6IGNvbXByZXNzIHdpdGggWl9IVUZGTUFOX09OTFlcbiIpKTsKKysgICAgICAgICB3cHJpbnRmKFRFWFQoIiAgLTEgdG8gLTkgOiBjb21wcmVzc2lvbiBsZXZlbFxuIikpOworKyAjZWxzZQorICAgICAgICAgIFNFVF9CSU5BUllfTU9ERShzdGRpbik7CisgICAgICAgICAgU0VUX0JJTkFSWV9NT0RFKHN0ZG91dCk7CisgICAgICAgICAgaWYgKHVuY29tcHIpIHsKKyoqKioqKioqKioqKioqKgorKioqIDMwNiwzMTEgKioqKgorLS0tIDQwNiw0MTIgLS0tLQorICAgICAgICAgICAgICBpZiAoZmlsZSA9PSBOVUxMKSBlcnJvcigiY2FuJ3QgZ3pkb3BlbiBzdGRvdXQiKTsKKyAgICAgICAgICAgICAgZ3pfY29tcHJlc3Moc3RkaW4sIGZpbGUpOworICAgICAgICAgIH0KKysgI2VuZGlmCisgICAgICB9IGVsc2UgeworICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgaWYgKHVuY29tcHIpIHsKKyoqKioqKioqKioqKioqKgorKioqIDMxOCwzMjAgKioqKgorLS0tIDQxOSw0NTcgLS0tLQorICAgICAgZXhpdCgwKTsKKyAgICAgIHJldHVybiAwOyAvKiB0byBhdm9pZCB3YXJuaW5nICovCisgIH0KKysgCisrICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCisrIGludCBXSU5BUEkgV2luTWFpbihISU5TVEFOQ0UgaEluc3QsIEhJTlNUQU5DRSBoUHJldkluc3QsIExQV1NUUiBscHN6Q21kTGluZSwgaW50IG5DbWRTaG93KQorKyB7CisrICAgICAjZGVmaW5lIFNJWkVfQVJHViAgICgzMikKKysgICAgIGludCBhcmdjOworKyAgICAgY2hhciAqYXJndltTSVpFX0FSR1ZdOworKyAgICAgaW50IHNpemU7CisrICAgICBjaGFyICpidWZmOworKyAgICAgY2hhciAqYXJncDsKKysgCisrICAgICBzaXplID0gV2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIDAsIGxwc3pDbWRMaW5lLCAtMSwgTlVMTCwgMCwgTlVMTCwgTlVMTCk7CisrICAgICBidWZmID0gKGNoYXIgKiltYWxsb2Moc2l6ZSk7CisrICAgICBzaXplID0gV2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIDAsIGxwc3pDbWRMaW5lLCAtMSwgYnVmZiwgc2l6ZSwgTlVMTCwgTlVMTCk7CisrICAgICBhcmdwID0gYnVmZjsKKysgICAgIGFyZ2MgPSAwOworKyAgICAgYXJndlthcmdjKytdID0gIm1pbmlnemlwLmV4ZSI7CisrICAgICBpZiAoKmFyZ3ApIHsKKysgICAgICAgICBhcmd2W2FyZ2MrK10gPSBhcmdwOworKyAgICAgICAgIHdoaWxlICgqYXJncCkgeworKyAgICAgICAgICAgICBpZiAoKmFyZ3AgPT0gJyAnKSB7CisrICAgICAgICAgICAgICAgICAqYXJncCsrID0gJ1wwJzsKKysgICAgICAgICAgICAgICAgIHdoaWxlICgqYXJncCAmJiAqYXJncCA9PSAnICcpIHsKKysgICAgICAgICAgICAgICAgICAgICBhcmdwKys7CisrICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICBpZiAoKmFyZ3AgJiYgYXJnYyA8IFNJWkVfQVJHVikgeworKyAgICAgICAgICAgICAgICAgICAgIGFyZ3ZbYXJnYysrXSA9IGFyZ3A7CisrICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICAgICBhcmdwKys7CisrICAgICAgICAgICAgIH0KKysgICAgICAgICB9CisrICAgICB9CisrICAgICByZXR1cm4gbWFpbihhcmdjLCBhcmd2KTsKKysgfQorKyAjZW5kaWYKKyoqKiB6bGliMTEzL2V4YW1wbGUuYwlTYXQgSnVsICA4IDEzOjU5OjQ5IDIwMDAKKy0tLSB6bGlid2NlL2V4YW1wbGUuYwlTYXQgSnVsICA4IDEzOjU4OjI5IDIwMDAKKyoqKioqKioqKioqKioqKgorKioqIDEsMTEgKioqKgorLS0tIDEsMTkgLS0tLQorICAvKiBleGFtcGxlLmMgLS0gdXNhZ2UgZXhhbXBsZSBvZiB0aGUgemxpYiBjb21wcmVzc2lvbiBsaWJyYXJ5CisgICAqIENvcHlyaWdodCAoQykgMTk5NS0xOTk4IEplYW4tbG91cCBHYWlsbHkuCisrICAqIENvcHlyaWdodCAoQykgMjAwMCAgICAgIFRlbmlrIENvLixMdGQuCisgICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiB6bGliLmggCisgICAqLworICAKKyAgLyogQCgjKSAkSWQkICovCisgIAorKyAjaWYgZGVmaW5lZChfV0lOMzJfV0NFKQorKyAjaWYgX1dJTjMyX1dDRSA8IDIxMQorKyAjZXJyb3IgKGZ8dylwcmludGYgZnVuY3Rpb25zIGlzIG5vdCBzdXBwb3J0IG9sZCBXaW5kb3dzQ0UuCisrICNlbmRpZgorKyAjaW5jbHVkZSA8d2luZG93cy5oPgorKyAjZWxzZQorICAjaW5jbHVkZSA8c3RkaW8uaD4KKysgI2VuZGlmCisgICNpbmNsdWRlICJ6bGliLmgiCisgIAorICAjaWZkZWYgU1REQworKioqKioqKioqKioqKioqCisqKiogMjEsMjYgKioqKgorLS0tIDI5LDQzIC0tLS0KKyAgIyAgZGVmaW5lIFRFU1RGSUxFICJmb28uZ3oiCisgICNlbmRpZgorICAKKysgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKKysgI2RlZmluZSBjYWxsb2MoeCx5KSBtYWxsb2MoKHgpKih5KSkKKysgI3VuZGVmICBzdGRlcnIKKysgI2RlZmluZSBzdGRlcnIgIHN0ZG91dAorKyAjZGVmaW5lIEZfTlVMTCAgSU5WQUxJRF9IQU5ETEVfVkFMVUUKKysgI2Vsc2UKKysgI2RlZmluZSBGX05VTEwgIE5VTEwKKysgI2VuZGlmCisrIAorICAjZGVmaW5lIENIRUNLX0VSUihlcnIsIG1zZykgeyBcCisgICAgICBpZiAoZXJyICE9IFpfT0spIHsgXAorICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgZXJyb3I6ICVkXG4iLCBtc2csIGVycik7IFwKKyoqKioqKioqKioqKioqKgorKioqIDM3LDU4ICoqKioKKyAgdUxvbmcgZGljdElkOyAvKiBBZGxlcjMyIHZhbHVlIG9mIHRoZSBkaWN0aW9uYXJ5ICovCisgIAorICB2b2lkIHRlc3RfY29tcHJlc3MgICAgICBPRigoQnl0ZSAqY29tcHIsIHVMb25nIGNvbXByTGVuLAorISAJCSAgICAgICAgICAgIEJ5dGUgKnVuY29tcHIsIHVMb25nIHVuY29tcHJMZW4pKTsKKyAgdm9pZCB0ZXN0X2d6aW8gICAgICAgICAgT0YoKGNvbnN0IGNoYXIgKm91dCwgY29uc3QgY2hhciAqaW4sIAorISAJCSAgICAgICAgICAgIEJ5dGUgKnVuY29tcHIsIGludCB1bmNvbXByTGVuKSk7CisgIHZvaWQgdGVzdF9kZWZsYXRlICAgICAgIE9GKChCeXRlICpjb21wciwgdUxvbmcgY29tcHJMZW4pKTsKKyAgdm9pZCB0ZXN0X2luZmxhdGUgICAgICAgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyBjb21wckxlbiwKKyEgCQkgICAgICAgICAgICBCeXRlICp1bmNvbXByLCB1TG9uZyB1bmNvbXByTGVuKSk7CisgIHZvaWQgdGVzdF9sYXJnZV9kZWZsYXRlIE9GKChCeXRlICpjb21wciwgdUxvbmcgY29tcHJMZW4sCishIAkJICAgICAgICAgICAgQnl0ZSAqdW5jb21wciwgdUxvbmcgdW5jb21wckxlbikpOworICB2b2lkIHRlc3RfbGFyZ2VfaW5mbGF0ZSBPRigoQnl0ZSAqY29tcHIsIHVMb25nIGNvbXByTGVuLAorISAJCSAgICAgICAgICAgIEJ5dGUgKnVuY29tcHIsIHVMb25nIHVuY29tcHJMZW4pKTsKKyAgdm9pZCB0ZXN0X2ZsdXNoICAgICAgICAgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyAqY29tcHJMZW4pKTsKKyAgdm9pZCB0ZXN0X3N5bmMgICAgICAgICAgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyBjb21wckxlbiwKKyEgCQkgICAgICAgICAgICBCeXRlICp1bmNvbXByLCB1TG9uZyB1bmNvbXByTGVuKSk7CisgIHZvaWQgdGVzdF9kaWN0X2RlZmxhdGUgIE9GKChCeXRlICpjb21wciwgdUxvbmcgY29tcHJMZW4pKTsKKyAgdm9pZCB0ZXN0X2RpY3RfaW5mbGF0ZSAgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyBjb21wckxlbiwKKyEgCQkgICAgICAgICAgICBCeXRlICp1bmNvbXByLCB1TG9uZyB1bmNvbXByTGVuKSk7CisgIGludCAgbWFpbiAgICAgICAgICAgICAgIE9GKChpbnQgYXJnYywgY2hhciAqYXJndltdKSk7CisgIAorICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSA1NCw3NSAtLS0tCisgIHVMb25nIGRpY3RJZDsgLyogQWRsZXIzMiB2YWx1ZSBvZiB0aGUgZGljdGlvbmFyeSAqLworICAKKyAgdm9pZCB0ZXN0X2NvbXByZXNzICAgICAgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyBjb21wckxlbiwKKyEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGUgKnVuY29tcHIsIHVMb25nIHVuY29tcHJMZW4pKTsKKyAgdm9pZCB0ZXN0X2d6aW8gICAgICAgICAgT0YoKGNvbnN0IGNoYXIgKm91dCwgY29uc3QgY2hhciAqaW4sIAorISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZSAqdW5jb21wciwgaW50IHVuY29tcHJMZW4pKTsKKyAgdm9pZCB0ZXN0X2RlZmxhdGUgICAgICAgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyBjb21wckxlbikpOworICB2b2lkIHRlc3RfaW5mbGF0ZSAgICAgICBPRigoQnl0ZSAqY29tcHIsIHVMb25nIGNvbXByTGVuLAorISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZSAqdW5jb21wciwgdUxvbmcgdW5jb21wckxlbikpOworICB2b2lkIHRlc3RfbGFyZ2VfZGVmbGF0ZSBPRigoQnl0ZSAqY29tcHIsIHVMb25nIGNvbXByTGVuLAorISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZSAqdW5jb21wciwgdUxvbmcgdW5jb21wckxlbikpOworICB2b2lkIHRlc3RfbGFyZ2VfaW5mbGF0ZSBPRigoQnl0ZSAqY29tcHIsIHVMb25nIGNvbXByTGVuLAorISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZSAqdW5jb21wciwgdUxvbmcgdW5jb21wckxlbikpOworICB2b2lkIHRlc3RfZmx1c2ggICAgICAgICBPRigoQnl0ZSAqY29tcHIsIHVMb25nICpjb21wckxlbikpOworICB2b2lkIHRlc3Rfc3luYyAgICAgICAgICBPRigoQnl0ZSAqY29tcHIsIHVMb25nIGNvbXByTGVuLAorISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZSAqdW5jb21wciwgdUxvbmcgdW5jb21wckxlbikpOworICB2b2lkIHRlc3RfZGljdF9kZWZsYXRlICBPRigoQnl0ZSAqY29tcHIsIHVMb25nIGNvbXByTGVuKSk7CisgIHZvaWQgdGVzdF9kaWN0X2luZmxhdGUgIE9GKChCeXRlICpjb21wciwgdUxvbmcgY29tcHJMZW4sCishICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlICp1bmNvbXByLCB1TG9uZyB1bmNvbXByTGVuKSk7CisgIGludCAgbWFpbiAgICAgICAgICAgICAgIE9GKChpbnQgYXJnYywgY2hhciAqYXJndltdKSk7CisgIAorICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyoqKioqKioqKioqKioqKgorKioqIDc1LDgxICoqKioKKyAgCisgICAgICBpZiAoc3RyY21wKChjaGFyKil1bmNvbXByLCBoZWxsbykpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImJhZCB1bmNvbXByZXNzXG4iKTsKKyEgCWV4aXQoMSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgIHByaW50ZigidW5jb21wcmVzcygpOiAlc1xuIiwgKGNoYXIgKil1bmNvbXByKTsKKyAgICAgIH0KKy0tLSA5Miw5OCAtLS0tCisgIAorICAgICAgaWYgKHN0cmNtcCgoY2hhciopdW5jb21wciwgaGVsbG8pKSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiYWQgdW5jb21wcmVzc1xuIik7CishICAgICAgICAgZXhpdCgxKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgICAgcHJpbnRmKCJ1bmNvbXByZXNzKCk6ICVzXG4iLCAoY2hhciAqKXVuY29tcHIpOworICAgICAgfQorKioqKioqKioqKioqKioqCisqKiogOTYsMTAyICoqKioKKyAgICAgIHpfb2ZmX3QgcG9zOworICAKKyAgICAgIGZpbGUgPSBnem9wZW4ob3V0LCAid2IiKTsKKyEgICAgIGlmIChmaWxlID09IE5VTEwpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImd6b3BlbiBlcnJvclxuIik7CisgICAgICAgICAgZXhpdCgxKTsKKyAgICAgIH0KKy0tLSAxMTMsMTE5IC0tLS0KKyAgICAgIHpfb2ZmX3QgcG9zOworICAKKyAgICAgIGZpbGUgPSBnem9wZW4ob3V0LCAid2IiKTsKKyEgICAgIGlmIChmaWxlID09IEZfTlVMTCkgeworICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZ3pvcGVuIGVycm9yXG4iKTsKKyAgICAgICAgICBleGl0KDEpOworICAgICAgfQorKioqKioqKioqKioqKioqCisqKiogMTAzLDExOSAqKioqCisgICAgICBnenB1dGMoZmlsZSwgJ2gnKTsKKyAgICAgIGlmIChnenB1dHMoZmlsZSwgImVsbG8iKSAhPSA0KSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJnenB1dHMgZXJyOiAlc1xuIiwgZ3plcnJvcihmaWxlLCAmZXJyKSk7CishIAlleGl0KDEpOworICAgICAgfQorICAgICAgaWYgKGd6cHJpbnRmKGZpbGUsICIsICVzISIsICJoZWxsbyIpICE9IDgpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImd6cHJpbnRmIGVycjogJXNcbiIsIGd6ZXJyb3IoZmlsZSwgJmVycikpOworISAJZXhpdCgxKTsKKyAgICAgIH0KKyAgICAgIGd6c2VlayhmaWxlLCAxTCwgU0VFS19DVVIpOyAvKiBhZGQgb25lIHplcm8gYnl0ZSAqLworICAgICAgZ3pjbG9zZShmaWxlKTsKKyAgCisgICAgICBmaWxlID0gZ3pvcGVuKGluLCAicmIiKTsKKyEgICAgIGlmIChmaWxlID09IE5VTEwpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImd6b3BlbiBlcnJvclxuIik7CisgICAgICB9CisgICAgICBzdHJjcHkoKGNoYXIqKXVuY29tcHIsICJnYXJiYWdlIik7CistLS0gMTIwLDEzNiAtLS0tCisgICAgICBnenB1dGMoZmlsZSwgJ2gnKTsKKyAgICAgIGlmIChnenB1dHMoZmlsZSwgImVsbG8iKSAhPSA0KSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJnenB1dHMgZXJyOiAlc1xuIiwgZ3plcnJvcihmaWxlLCAmZXJyKSk7CishICAgICAgICAgZXhpdCgxKTsKKyAgICAgIH0KKyAgICAgIGlmIChnenByaW50ZihmaWxlLCAiLCAlcyEiLCAiaGVsbG8iKSAhPSA4KSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJnenByaW50ZiBlcnI6ICVzXG4iLCBnemVycm9yKGZpbGUsICZlcnIpKTsKKyEgICAgICAgICBleGl0KDEpOworICAgICAgfQorICAgICAgZ3pzZWVrKGZpbGUsIDFMLCBTRUVLX0NVUik7IC8qIGFkZCBvbmUgemVybyBieXRlICovCisgICAgICBnemNsb3NlKGZpbGUpOworICAKKyAgICAgIGZpbGUgPSBnem9wZW4oaW4sICJyYiIpOworISAgICAgaWYgKGZpbGUgPT0gRl9OVUxMKSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJnem9wZW4gZXJyb3JcbiIpOworICAgICAgfQorICAgICAgc3RyY3B5KChjaGFyKil1bmNvbXByLCAiZ2FyYmFnZSIpOworKioqKioqKioqKioqKioqCisqKiogMTIxLDEzMSAqKioqCisgICAgICB1bmNvbXByTGVuID0gZ3pyZWFkKGZpbGUsIHVuY29tcHIsICh1bnNpZ25lZCl1bmNvbXByTGVuKTsKKyAgICAgIGlmICh1bmNvbXByTGVuICE9IGxlbikgeworICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZ3pyZWFkIGVycjogJXNcbiIsIGd6ZXJyb3IoZmlsZSwgJmVycikpOworISAJZXhpdCgxKTsKKyAgICAgIH0KKyAgICAgIGlmIChzdHJjbXAoKGNoYXIqKXVuY29tcHIsIGhlbGxvKSkgeworICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYmFkIGd6cmVhZDogJXNcbiIsIChjaGFyKil1bmNvbXByKTsKKyEgCWV4aXQoMSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgIHByaW50ZigiZ3pyZWFkKCk6ICVzXG4iLCAoY2hhciAqKXVuY29tcHIpOworICAgICAgfQorLS0tIDEzOCwxNDggLS0tLQorICAgICAgdW5jb21wckxlbiA9IGd6cmVhZChmaWxlLCB1bmNvbXByLCAodW5zaWduZWQpdW5jb21wckxlbik7CisgICAgICBpZiAodW5jb21wckxlbiAhPSBsZW4pIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImd6cmVhZCBlcnI6ICVzXG4iLCBnemVycm9yKGZpbGUsICZlcnIpKTsKKyEgICAgICAgICBleGl0KDEpOworICAgICAgfQorICAgICAgaWYgKHN0cmNtcCgoY2hhciopdW5jb21wciwgaGVsbG8pKSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiYWQgZ3pyZWFkOiAlc1xuIiwgKGNoYXIqKXVuY29tcHIpOworISAgICAgICAgIGV4aXQoMSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgIHByaW50ZigiZ3pyZWFkKCk6ICVzXG4iLCAoY2hhciAqKXVuY29tcHIpOworICAgICAgfQorKioqKioqKioqKioqKioqCisqKiogMTMyLDE0NSAqKioqCisgIAorICAgICAgcG9zID0gZ3pzZWVrKGZpbGUsIC04TCwgU0VFS19DVVIpOworICAgICAgaWYgKHBvcyAhPSA2IHx8IGd6dGVsbChmaWxlKSAhPSBwb3MpIHsKKyEgCWZwcmludGYoc3RkZXJyLCAiZ3pzZWVrIGVycm9yLCBwb3M9JWxkLCBnenRlbGw9JWxkXG4iLAorISAJCShsb25nKXBvcywgKGxvbmcpZ3p0ZWxsKGZpbGUpKTsKKyEgCWV4aXQoMSk7CisgICAgICB9CisgIAorICAgICAgaWYgKGd6Z2V0YyhmaWxlKSAhPSAnICcpIHsKKyEgCWZwcmludGYoc3RkZXJyLCAiZ3pnZXRjIGVycm9yXG4iKTsKKyEgCWV4aXQoMSk7CisgICAgICB9CisgIAorICAgICAgZ3pnZXRzKGZpbGUsIChjaGFyKil1bmNvbXByLCB1bmNvbXByTGVuKTsKKy0tLSAxNDksMTYyIC0tLS0KKyAgCisgICAgICBwb3MgPSBnenNlZWsoZmlsZSwgLThMLCBTRUVLX0NVUik7CisgICAgICBpZiAocG9zICE9IDYgfHwgZ3p0ZWxsKGZpbGUpICE9IHBvcykgeworISAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZ3pzZWVrIGVycm9yLCBwb3M9JWxkLCBnenRlbGw9JWxkXG4iLAorISAgICAgICAgICAgICAgICAgKGxvbmcpcG9zLCAobG9uZylnenRlbGwoZmlsZSkpOworISAgICAgICAgIGV4aXQoMSk7CisgICAgICB9CisgIAorICAgICAgaWYgKGd6Z2V0YyhmaWxlKSAhPSAnICcpIHsKKyEgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImd6Z2V0YyBlcnJvclxuIik7CishICAgICAgICAgZXhpdCgxKTsKKyAgICAgIH0KKyAgCisgICAgICBnemdldHMoZmlsZSwgKGNoYXIqKXVuY29tcHIsIHVuY29tcHJMZW4pOworKioqKioqKioqKioqKioqCisqKiogMTQ2LDE1NiAqKioqCisgICAgICB1bmNvbXByTGVuID0gc3RybGVuKChjaGFyKil1bmNvbXByKTsKKyAgICAgIGlmICh1bmNvbXByTGVuICE9IDYpIHsgLyogImhlbGxvISIgKi8KKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImd6Z2V0cyBlcnIgYWZ0ZXIgZ3pzZWVrOiAlc1xuIiwgZ3plcnJvcihmaWxlLCAmZXJyKSk7CishIAlleGl0KDEpOworICAgICAgfQorICAgICAgaWYgKHN0cmNtcCgoY2hhciopdW5jb21wciwgaGVsbG8rNykpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImJhZCBnemdldHMgYWZ0ZXIgZ3pzZWVrXG4iKTsKKyEgCWV4aXQoMSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgIHByaW50ZigiZ3pnZXRzKCkgYWZ0ZXIgZ3pzZWVrOiAlc1xuIiwgKGNoYXIgKil1bmNvbXByKTsKKyAgICAgIH0KKy0tLSAxNjMsMTczIC0tLS0KKyAgICAgIHVuY29tcHJMZW4gPSBzdHJsZW4oKGNoYXIqKXVuY29tcHIpOworICAgICAgaWYgKHVuY29tcHJMZW4gIT0gNikgeyAvKiAiaGVsbG8hIiAqLworICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZ3pnZXRzIGVyciBhZnRlciBnenNlZWs6ICVzXG4iLCBnemVycm9yKGZpbGUsICZlcnIpKTsKKyEgICAgICAgICBleGl0KDEpOworICAgICAgfQorICAgICAgaWYgKHN0cmNtcCgoY2hhciopdW5jb21wciwgaGVsbG8rNykpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImJhZCBnemdldHMgYWZ0ZXIgZ3pzZWVrXG4iKTsKKyEgICAgICAgICBleGl0KDEpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBwcmludGYoImd6Z2V0cygpIGFmdGVyIGd6c2VlazogJXNcbiIsIChjaGFyICopdW5jb21wcik7CisgICAgICB9CisqKioqKioqKioqKioqKioKKyoqKiAyMzEsMjM3ICoqKioKKyAgCisgICAgICBpZiAoc3RyY21wKChjaGFyKil1bmNvbXByLCBoZWxsbykpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImJhZCBpbmZsYXRlXG4iKTsKKyEgCWV4aXQoMSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgIHByaW50ZigiaW5mbGF0ZSgpOiAlc1xuIiwgKGNoYXIgKil1bmNvbXByKTsKKyAgICAgIH0KKy0tLSAyNDgsMjU0IC0tLS0KKyAgCisgICAgICBpZiAoc3RyY21wKChjaGFyKil1bmNvbXByLCBoZWxsbykpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImJhZCBpbmZsYXRlXG4iKTsKKyEgICAgICAgICBleGl0KDEpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBwcmludGYoImluZmxhdGUoKTogJXNcbiIsIChjaGFyICopdW5jb21wcik7CisgICAgICB9CisqKioqKioqKioqKioqKioKKyoqKiAyNjYsMjcyICoqKioKKyAgICAgIENIRUNLX0VSUihlcnIsICJkZWZsYXRlIik7CisgICAgICBpZiAoY19zdHJlYW0uYXZhaWxfaW4gIT0gMCkgeworICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZGVmbGF0ZSBub3QgZ3JlZWR5XG4iKTsKKyEgCWV4aXQoMSk7CisgICAgICB9CisgIAorICAgICAgLyogRmVlZCBpbiBhbHJlYWR5IGNvbXByZXNzZWQgZGF0YSBhbmQgc3dpdGNoIHRvIG5vIGNvbXByZXNzaW9uOiAqLworLS0tIDI4MywyODkgLS0tLQorICAgICAgQ0hFQ0tfRVJSKGVyciwgImRlZmxhdGUiKTsKKyAgICAgIGlmIChjX3N0cmVhbS5hdmFpbF9pbiAhPSAwKSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJkZWZsYXRlIG5vdCBncmVlZHlcbiIpOworISAgICAgICAgIGV4aXQoMSk7CisgICAgICB9CisgIAorICAgICAgLyogRmVlZCBpbiBhbHJlYWR5IGNvbXByZXNzZWQgZGF0YSBhbmQgc3dpdGNoIHRvIG5vIGNvbXByZXNzaW9uOiAqLworKioqKioqKioqKioqKioqCisqKiogMjg2LDI5MiAqKioqCisgICAgICBlcnIgPSBkZWZsYXRlKCZjX3N0cmVhbSwgWl9GSU5JU0gpOworICAgICAgaWYgKGVyciAhPSBaX1NUUkVBTV9FTkQpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImRlZmxhdGUgc2hvdWxkIHJlcG9ydCBaX1NUUkVBTV9FTkRcbiIpOworISAJZXhpdCgxKTsKKyAgICAgIH0KKyAgICAgIGVyciA9IGRlZmxhdGVFbmQoJmNfc3RyZWFtKTsKKyAgICAgIENIRUNLX0VSUihlcnIsICJkZWZsYXRlRW5kIik7CistLS0gMzAzLDMwOSAtLS0tCisgICAgICBlcnIgPSBkZWZsYXRlKCZjX3N0cmVhbSwgWl9GSU5JU0gpOworICAgICAgaWYgKGVyciAhPSBaX1NUUkVBTV9FTkQpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImRlZmxhdGUgc2hvdWxkIHJlcG9ydCBaX1NUUkVBTV9FTkRcbiIpOworISAgICAgICAgIGV4aXQoMSk7CisgICAgICB9CisgICAgICBlcnIgPSBkZWZsYXRlRW5kKCZjX3N0cmVhbSk7CisgICAgICBDSEVDS19FUlIoZXJyLCAiZGVmbGF0ZUVuZCIpOworKioqKioqKioqKioqKioqCisqKiogMzE2LDMyMiAqKioqCisgIAorICAgICAgZm9yICg7OykgeworICAgICAgICAgIGRfc3RyZWFtLm5leHRfb3V0ID0gdW5jb21wcjsgICAgICAgICAgICAvKiBkaXNjYXJkIHRoZSBvdXRwdXQgKi8KKyEgCWRfc3RyZWFtLmF2YWlsX291dCA9ICh1SW50KXVuY29tcHJMZW47CisgICAgICAgICAgZXJyID0gaW5mbGF0ZSgmZF9zdHJlYW0sIFpfTk9fRkxVU0gpOworICAgICAgICAgIGlmIChlcnIgPT0gWl9TVFJFQU1fRU5EKSBicmVhazsKKyAgICAgICAgICBDSEVDS19FUlIoZXJyLCAibGFyZ2UgaW5mbGF0ZSIpOworLS0tIDMzMywzMzkgLS0tLQorICAKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICBkX3N0cmVhbS5uZXh0X291dCA9IHVuY29tcHI7ICAgICAgICAgICAgLyogZGlzY2FyZCB0aGUgb3V0cHV0ICovCishICAgICAgICAgZF9zdHJlYW0uYXZhaWxfb3V0ID0gKHVJbnQpdW5jb21wckxlbjsKKyAgICAgICAgICBlcnIgPSBpbmZsYXRlKCZkX3N0cmVhbSwgWl9OT19GTFVTSCk7CisgICAgICAgICAgaWYgKGVyciA9PSBaX1NUUkVBTV9FTkQpIGJyZWFrOworICAgICAgICAgIENIRUNLX0VSUihlcnIsICJsYXJnZSBpbmZsYXRlIik7CisqKioqKioqKioqKioqKioKKyoqKiAzMjcsMzMzICoqKioKKyAgCisgICAgICBpZiAoZF9zdHJlYW0udG90YWxfb3V0ICE9IDIqdW5jb21wckxlbiArIGNvbXByTGVuLzIpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImJhZCBsYXJnZSBpbmZsYXRlOiAlbGRcbiIsIGRfc3RyZWFtLnRvdGFsX291dCk7CishIAlleGl0KDEpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBwcmludGYoImxhcmdlX2luZmxhdGUoKTogT0tcbiIpOworICAgICAgfQorLS0tIDM0NCwzNTAgLS0tLQorICAKKyAgICAgIGlmIChkX3N0cmVhbS50b3RhbF9vdXQgIT0gMip1bmNvbXByTGVuICsgY29tcHJMZW4vMikgeworICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYmFkIGxhcmdlIGluZmxhdGU6ICVsZFxuIiwgZF9zdHJlYW0udG90YWxfb3V0KTsKKyEgICAgICAgICBleGl0KDEpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBwcmludGYoImxhcmdlX2luZmxhdGUoKTogT0tcbiIpOworICAgICAgfQorKioqKioqKioqKioqKioqCisqKiogNDA3LDQxMyAqKioqCisgICAgICBpZiAoZXJyICE9IFpfREFUQV9FUlJPUikgeworICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiaW5mbGF0ZSBzaG91bGQgcmVwb3J0IERBVEFfRVJST1JcbiIpOworICAgICAgICAgIC8qIEJlY2F1c2Ugb2YgaW5jb3JyZWN0IGFkbGVyMzIgKi8KKyEgCWV4aXQoMSk7CisgICAgICB9CisgICAgICBlcnIgPSBpbmZsYXRlRW5kKCZkX3N0cmVhbSk7CisgICAgICBDSEVDS19FUlIoZXJyLCAiaW5mbGF0ZUVuZCIpOworLS0tIDQyNCw0MzAgLS0tLQorICAgICAgaWYgKGVyciAhPSBaX0RBVEFfRVJST1IpIHsKKyAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImluZmxhdGUgc2hvdWxkIHJlcG9ydCBEQVRBX0VSUk9SXG4iKTsKKyAgICAgICAgICAvKiBCZWNhdXNlIG9mIGluY29ycmVjdCBhZGxlcjMyICovCishICAgICAgICAgZXhpdCgxKTsKKyAgICAgIH0KKyAgICAgIGVyciA9IGluZmxhdGVFbmQoJmRfc3RyZWFtKTsKKyAgICAgIENIRUNLX0VSUihlcnIsICJpbmZsYXRlRW5kIik7CisqKioqKioqKioqKioqKioKKyoqKiA0MzMsNDM5ICoqKioKKyAgICAgIENIRUNLX0VSUihlcnIsICJkZWZsYXRlSW5pdCIpOworICAKKyAgICAgIGVyciA9IGRlZmxhdGVTZXREaWN0aW9uYXJ5KCZjX3N0cmVhbSwKKyEgCQkJICAgICAgIChjb25zdCBCeXRlZiopZGljdGlvbmFyeSwgc2l6ZW9mKGRpY3Rpb25hcnkpKTsKKyAgICAgIENIRUNLX0VSUihlcnIsICJkZWZsYXRlU2V0RGljdGlvbmFyeSIpOworICAKKyAgICAgIGRpY3RJZCA9IGNfc3RyZWFtLmFkbGVyOworLS0tIDQ1MCw0NTYgLS0tLQorICAgICAgQ0hFQ0tfRVJSKGVyciwgImRlZmxhdGVJbml0Iik7CisgIAorICAgICAgZXJyID0gZGVmbGF0ZVNldERpY3Rpb25hcnkoJmNfc3RyZWFtLAorISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IEJ5dGVmKilkaWN0aW9uYXJ5LCBzaXplb2YoZGljdGlvbmFyeSkpOworICAgICAgQ0hFQ0tfRVJSKGVyciwgImRlZmxhdGVTZXREaWN0aW9uYXJ5Iik7CisgIAorICAgICAgZGljdElkID0gY19zdHJlYW0uYWRsZXI7CisqKioqKioqKioqKioqKioKKyoqKiA0NDYsNDUyICoqKioKKyAgICAgIGVyciA9IGRlZmxhdGUoJmNfc3RyZWFtLCBaX0ZJTklTSCk7CisgICAgICBpZiAoZXJyICE9IFpfU1RSRUFNX0VORCkgeworICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZGVmbGF0ZSBzaG91bGQgcmVwb3J0IFpfU1RSRUFNX0VORFxuIik7CishIAlleGl0KDEpOworICAgICAgfQorICAgICAgZXJyID0gZGVmbGF0ZUVuZCgmY19zdHJlYW0pOworICAgICAgQ0hFQ0tfRVJSKGVyciwgImRlZmxhdGVFbmQiKTsKKy0tLSA0NjMsNDY5IC0tLS0KKyAgICAgIGVyciA9IGRlZmxhdGUoJmNfc3RyZWFtLCBaX0ZJTklTSCk7CisgICAgICBpZiAoZXJyICE9IFpfU1RSRUFNX0VORCkgeworICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZGVmbGF0ZSBzaG91bGQgcmVwb3J0IFpfU1RSRUFNX0VORFxuIik7CishICAgICAgICAgZXhpdCgxKTsKKyAgICAgIH0KKyAgICAgIGVyciA9IGRlZmxhdGVFbmQoJmNfc3RyZWFtKTsKKyAgICAgIENIRUNLX0VSUihlcnIsICJkZWZsYXRlRW5kIik7CisqKioqKioqKioqKioqKioKKyoqKiA0ODAsNDkzICoqKioKKyAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICBlcnIgPSBpbmZsYXRlKCZkX3N0cmVhbSwgWl9OT19GTFVTSCk7CisgICAgICAgICAgaWYgKGVyciA9PSBaX1NUUkVBTV9FTkQpIGJyZWFrOworISAJaWYgKGVyciA9PSBaX05FRURfRElDVCkgeworISAJICAgIGlmIChkX3N0cmVhbS5hZGxlciAhPSBkaWN0SWQpIHsKKyEgCQlmcHJpbnRmKHN0ZGVyciwgInVuZXhwZWN0ZWQgZGljdGlvbmFyeSIpOworISAJCWV4aXQoMSk7CishIAkgICAgfQorISAJICAgIGVyciA9IGluZmxhdGVTZXREaWN0aW9uYXJ5KCZkX3N0cmVhbSwgKGNvbnN0IEJ5dGVmKilkaWN0aW9uYXJ5LAorISAJCQkJICAgICAgIHNpemVvZihkaWN0aW9uYXJ5KSk7CishIAl9CisgICAgICAgICAgQ0hFQ0tfRVJSKGVyciwgImluZmxhdGUgd2l0aCBkaWN0Iik7CisgICAgICB9CisgIAorLS0tIDQ5Nyw1MTAgLS0tLQorICAgICAgZm9yICg7OykgeworICAgICAgICAgIGVyciA9IGluZmxhdGUoJmRfc3RyZWFtLCBaX05PX0ZMVVNIKTsKKyAgICAgICAgICBpZiAoZXJyID09IFpfU1RSRUFNX0VORCkgYnJlYWs7CishICAgICAgICAgaWYgKGVyciA9PSBaX05FRURfRElDVCkgeworISAgICAgICAgICAgICBpZiAoZF9zdHJlYW0uYWRsZXIgIT0gZGljdElkKSB7CishICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInVuZXhwZWN0ZWQgZGljdGlvbmFyeSIpOworISAgICAgICAgICAgICAgICAgZXhpdCgxKTsKKyEgICAgICAgICAgICAgfQorISAgICAgICAgICAgICBlcnIgPSBpbmZsYXRlU2V0RGljdGlvbmFyeSgmZF9zdHJlYW0sIChjb25zdCBCeXRlZiopZGljdGlvbmFyeSwKKyEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGRpY3Rpb25hcnkpKTsKKyEgICAgICAgICB9CisgICAgICAgICAgQ0hFQ0tfRVJSKGVyciwgImluZmxhdGUgd2l0aCBkaWN0Iik7CisgICAgICB9CisgIAorKioqKioqKioqKioqKioqCisqKiogNDk2LDUwMiAqKioqCisgIAorICAgICAgaWYgKHN0cmNtcCgoY2hhciopdW5jb21wciwgaGVsbG8pKSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiYWQgaW5mbGF0ZSB3aXRoIGRpY3RcbiIpOworISAJZXhpdCgxKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgICAgcHJpbnRmKCJpbmZsYXRlIHdpdGggZGljdGlvbmFyeTogJXNcbiIsIChjaGFyICopdW5jb21wcik7CisgICAgICB9CistLS0gNTEzLDUxOSAtLS0tCisgIAorICAgICAgaWYgKHN0cmNtcCgoY2hhciopdW5jb21wciwgaGVsbG8pKSB7CisgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiYWQgaW5mbGF0ZSB3aXRoIGRpY3RcbiIpOworISAgICAgICAgIGV4aXQoMSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgIHByaW50ZigiaW5mbGF0ZSB3aXRoIGRpY3Rpb25hcnk6ICVzXG4iLCAoY2hhciAqKXVuY29tcHIpOworICAgICAgfQorKioqKioqKioqKioqKioqCisqKiogNTMwLDU0MiAqKioqCisgICAgICAgKi8KKyAgICAgIGlmIChjb21wciA9PSBaX05VTEwgfHwgdW5jb21wciA9PSBaX05VTEwpIHsKKyAgICAgICAgICBwcmludGYoIm91dCBvZiBtZW1vcnlcbiIpOworISAJZXhpdCgxKTsKKyAgICAgIH0KKyAgICAgIHRlc3RfY29tcHJlc3MoY29tcHIsIGNvbXByTGVuLCB1bmNvbXByLCB1bmNvbXByTGVuKTsKKyAgCisgICAgICB0ZXN0X2d6aW8oKGFyZ2MgPiAxID8gYXJndlsxXSA6IFRFU1RGSUxFKSwKKyAgICAgICAgICAgICAgICAoYXJnYyA+IDIgPyBhcmd2WzJdIDogVEVTVEZJTEUpLAorISAJICAgICAgdW5jb21wciwgKGludCl1bmNvbXByTGVuKTsKKyAgCisgICAgICB0ZXN0X2RlZmxhdGUoY29tcHIsIGNvbXByTGVuKTsKKyAgICAgIHRlc3RfaW5mbGF0ZShjb21wciwgY29tcHJMZW4sIHVuY29tcHIsIHVuY29tcHJMZW4pOworLS0tIDU0Nyw1NTkgLS0tLQorICAgICAgICovCisgICAgICBpZiAoY29tcHIgPT0gWl9OVUxMIHx8IHVuY29tcHIgPT0gWl9OVUxMKSB7CisgICAgICAgICAgcHJpbnRmKCJvdXQgb2YgbWVtb3J5XG4iKTsKKyEgICAgICAgICBleGl0KDEpOworICAgICAgfQorICAgICAgdGVzdF9jb21wcmVzcyhjb21wciwgY29tcHJMZW4sIHVuY29tcHIsIHVuY29tcHJMZW4pOworICAKKyAgICAgIHRlc3RfZ3ppbygoYXJnYyA+IDEgPyBhcmd2WzFdIDogVEVTVEZJTEUpLAorICAgICAgICAgICAgICAgIChhcmdjID4gMiA/IGFyZ3ZbMl0gOiBURVNURklMRSksCishICAgICAgICAgICAgICAgdW5jb21wciwgKGludCl1bmNvbXByTGVuKTsKKyAgCisgICAgICB0ZXN0X2RlZmxhdGUoY29tcHIsIGNvbXByTGVuKTsKKyAgICAgIHRlc3RfaW5mbGF0ZShjb21wciwgY29tcHJMZW4sIHVuY29tcHIsIHVuY29tcHJMZW4pOworKioqKioqKioqKioqKioqCisqKiogNTU0LDU1NiAqKioqCistLS0gNTcxLDYwOSAtLS0tCisgICAgICBleGl0KDApOworICAgICAgcmV0dXJuIDA7IC8qIHRvIGF2b2lkIHdhcm5pbmcgKi8KKyAgfQorKyAKKysgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKKysgaW50IFdJTkFQSSBXaW5NYWluKEhJTlNUQU5DRSBoSW5zdCwgSElOU1RBTkNFIGhQcmV2SW5zdCwgTFBXU1RSIGxwc3pDbWRMaW5lLCBpbnQgbkNtZFNob3cpCisrIHsKKysgICAgICNkZWZpbmUgU0laRV9BUkdWICAgKDMyKQorKyAgICAgaW50IGFyZ2M7CisrICAgICBjaGFyICphcmd2W1NJWkVfQVJHVl07CisrICAgICBpbnQgc2l6ZTsKKysgICAgIGNoYXIgKmJ1ZmY7CisrICAgICBjaGFyICphcmdwOworKyAKKysgICAgIHNpemUgPSBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX0FDUCwgMCwgbHBzekNtZExpbmUsIC0xLCBOVUxMLCAwLCBOVUxMLCBOVUxMKTsKKysgICAgIGJ1ZmYgPSAoY2hhciAqKW1hbGxvYyhzaXplKTsKKysgICAgIHNpemUgPSBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX0FDUCwgMCwgbHBzekNtZExpbmUsIC0xLCBidWZmLCBzaXplLCBOVUxMLCBOVUxMKTsKKysgICAgIGFyZ3AgPSBidWZmOworKyAgICAgYXJnYyA9IDA7CisrICAgICBhcmd2W2FyZ2MrK10gPSAiZXhhbXBsZS5leGUiOworKyAgICAgaWYgKCphcmdwKSB7CisrICAgICAgICAgYXJndlthcmdjKytdID0gYXJncDsKKysgICAgICAgICB3aGlsZSAoKmFyZ3ApIHsKKysgICAgICAgICAgICAgaWYgKCphcmdwID09ICcgJykgeworKyAgICAgICAgICAgICAgICAgKmFyZ3ArKyA9ICdcMCc7CisrICAgICAgICAgICAgICAgICB3aGlsZSAoKmFyZ3AgJiYgKmFyZ3AgPT0gJyAnKSB7CisrICAgICAgICAgICAgICAgICAgICAgYXJncCsrOworKyAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgaWYgKCphcmdwICYmIGFyZ2MgPCBTSVpFX0FSR1YpIHsKKysgICAgICAgICAgICAgICAgICAgICBhcmd2W2FyZ2MrK10gPSBhcmdwOworKyAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgICAgICAgYXJncCsrOworKyAgICAgICAgICAgICB9CisrICAgICAgICAgfQorKyAgICAgfQorKyAgICAgcmV0dXJuIG1haW4oYXJnYywgYXJndik7CisrIH0KKysgI2VuZGlmCmRpZmYgLS1naXQgYS93aW5jZS96bGliY2UuZGVmIGIvZGxsL3dpbmNlL3psaWJjZS5kZWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHdpbmNlL3psaWJjZS5kZWYKcmVuYW1lIHRvIGRsbC93aW5jZS96bGliY2UuZGVmCmRpZmYgLS1naXQgYS93aW5jZS96bGliY2UuZHNwIGIvZGxsL3dpbmNlL3psaWJjZS5kc3AKc2ltaWxhcml0eSBpbmRleCA2MCUKcmVuYW1lIGZyb20gd2luY2UvemxpYmNlLmRzcApyZW5hbWUgdG8gZGxsL3dpbmNlL3psaWJjZS5kc3AKaW5kZXggYTg2Y2E1Yy4uYjI3OTdmZiAxMDA2NDQKLS0tIGEvd2luY2UvemxpYmNlLmRzcAorKysgYi9kbGwvd2luY2UvemxpYmNlLmRzcApAQCAtNjIsNyArNjIsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbG1pcHMuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NJChDRUNydCkgL1czIC9HWC0gL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL1lYIC9RTVJXQ0UgIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvR1gtIC9PMiAvSSAiLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9RTVJXQ0UgIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvR1gtIC9PMiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9RTVJXQ0UgIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCkBAIC05Myw3ICs5Myw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPWNsbWlwcy5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL00kKENFQ3J0RGVidWcpIC9XMyAvR1gtIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiWkxJQkNFX0VYUE9SVFMiIC9ZWCAvUU1SV0NFICAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0RGVidWcpIC9XMyAvR1gtIC9aaSAvT2QgL0kgIi4uXC4uXHpsaWIiIC9EICJERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9RTVJXQ0UgIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL1FNUldDRSAgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIk1JUFMiIC9kICJfTUlQU18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgpAQCAtMTI0LDcgKzEyNCw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPXNoY2wuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9Rc2g0IC9NQyAvVzMgL0dYLSAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNINCIgL0QgIl9TSDRfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvUXNoNCAvTUMgL1czIC9HWC0gL08yIC9JICIuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiU0h4IiAvRCAiU0g0IiAvRCAiX1NINF8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvUXNoNCAvTUMgL1czIC9HWC0gL08yIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiU0h4IiAvRCAiU0g0IiAvRCAiX1NINF8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDQiIC9kICJfU0g0XyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgpAQCAtMTU1LDcgKzE1NSw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPXNoY2wuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9Rc2g0IC9NQyAvVzMgL0dYLSAvWmkgL09kIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJERUJVRyIgL0QgIlNIeCIgL0QgIlNINCIgL0QgIl9TSDRfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvUXNoNCAvTUMgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0g0IiAvRCAiX1NINF8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvUXNoNCAvTUMgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0g0IiAvRCAiX1NINF8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDQiIC9kICJfU0g0XyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCkBAIC0xODYsNyArMTg2LDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9c2hjbC5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL0dYLSAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvR1gtIC9PMiAvSSAiLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlpMSUJfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL0dYLSAvTzIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJTSHgiIC9EICJTSDMiIC9EICJfU0gzXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNIMyIgL2QgIl9TSDNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCkBAIC0yMTcsNyArMjE3LDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9c2hjbC5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL00kKENFQ3J0RGVidWcpIC9XMyAvR1gtIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0gzIiAvRCAiX1NIM18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIlpMSUJDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NJChDRUNydERlYnVnKSAvVzMgL0dYLSAvWmkgL09kIC9JICIuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJTSHgiIC9EICJTSDMiIC9EICJfU0gzXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NJChDRUNydERlYnVnKSAvVzMgL0dYLSAvWmkgL09kIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJTSHgiIC9EICJTSDMiIC9EICJfU0gzXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNIMyIgL2QgIl9TSDNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKQEAgLTI0OCw3ICsyNDgsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbGFybS5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01DIC9XMyAvR1gtIC9PMiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiTkRFQlVHIiAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIlpMSUJDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NQyAvVzMgL0dYLSAvTzIgL0kgIi4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJBUk0iIC9EICJfQVJNXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NQyAvVzMgL0dYLSAvTzIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJBUk0iIC9EICJfQVJNXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIkFSTSIgL2QgIl9BUk1fIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCkBAIC0yNzksNyArMjc5LDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2xhcm0uZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NQyAvVzMgL0dYLSAvWmkgL09kIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJERUJVRyIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUMgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvTUMgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJBUk0iIC9kICJfQVJNXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCkBAIC0zMTAsNyArMzEwLDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2xtaXBzLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvUU1GV0NFIC9NQyAvVzMgL0dYLSAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIlpMSUJDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9RTUZXQ0UgL01DIC9XMyAvR1gtIC9PMiAvSSAiLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9jCisjIEFERCBDUFAgL25vbG9nbyAvUU1GV0NFIC9NQyAvVzMgL0dYLSAvTzIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlpMSUJfRExMIiAvYwogIyBTVUJUUkFDVCBDUFAgL1lYCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiTUlQUyIgL2QgIl9NSVBTXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgpAQCAtMzQxLDcgKzM0MSw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPWNsbWlwcy5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9HWC0gL1ppIC9PZCAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvUU1GV0NFIC9NQyAvVzMgL0dYLSAvWmkgL09kIC9JICIuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlpMSUJfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIk1JUFMiIC9kICJfTUlQU18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgpAQCAtMzcyLDcgKzM3Miw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPWNsLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTUwgL1czIC9HWC0gL08yIC9EICJ4ODYiIC9EICJfaTM4Nl8iIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiTkRFQlVHIiAvRCAiaV8zODZfIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiWkxJQkNFX0VYUE9SVFMiIC9HczgxOTIgL0dGICAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL01MIC9XMyAvR1gtIC9PMiAvSSAiLi5cLi5cemxpYiIgL0QgIng4NiIgL0QgIl9pMzg2XyIgL0QgIl94ODZfIiAvRCAiTkRFQlVHIiAvRCAiaV8zODZfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlpMSUJfRExMIiAvR3M4MTkyIC9HRiAgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NTCAvVzMgL0dYLSAvTzIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJ4ODYiIC9EICJfaTM4Nl8iIC9EICJfeDg2XyIgL0QgIk5ERUJVRyIgL0QgImlfMzg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL0dzODE5MiAvR0YgIC9jCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX3g4Nl8iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKICMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX3g4Nl8iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKQEAgLTQwMiw3ICs0MDIsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbC5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL0dYLSAvWmkgL09kIC9EICJ4ODYiIC9EICJfaTM4Nl8iIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiREVCVUciIC9EICJpXzM4Nl8iIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL0dzODE5MiAvR0YgIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUxkIC9XMyAvR1gtIC9aaSAvT2QgL0kgIi4uXC4uXHpsaWIiIC9EICJ4ODYiIC9EICJfaTM4Nl8iIC9EICJfeDg2XyIgL0QgIkRFQlVHIiAvRCAiaV8zODZfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlpMSUJfRExMIiAvR3M4MTkyIC9HRiAgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NTGQgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIng4NiIgL0QgIl9pMzg2XyIgL0QgIl94ODZfIiAvRCAiREVCVUciIC9EICJpXzM4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9HczgxOTIgL0dGICAvYwogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIng4NiIgL2QgIl9pMzg2XyIgL2QgIl94ODZfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKICMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX3g4Nl8iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgpAQCAtNDMyLDcgKzQzMiw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPWNsLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTUwgL1czIC9HWC0gL08yIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9VTklDT0RFIiAvRCAiV0lOMzIiIC9EICJTVFJJQ1QiIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJfV0lOMzJfV0NFX0VNVUxBVElPTiIgL0QgIklOVEVSTkFUSU9OQUwiIC9EICJVU0EiIC9EICJJTlRMTVNHX0NPREVQQUdFIiAvRCAiTkRFQlVHIiAvRCAieDg2IiAvRCAiaTQ4NiIgL0QgIl94ODZfIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiWkxJQkNFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL01MIC9XMyAvR1gtIC9PMiAvSSAiLi5cLi5cemxpYiIgL0QgIl9VTklDT0RFIiAvRCAiV0lOMzIiIC9EICJTVFJJQ1QiIC9EICJfV0lOMzJfV0NFX0VNVUxBVElPTiIgL0QgIklOVEVSTkFUSU9OQUwiIC9EICJVU0EiIC9EICJJTlRMTVNHX0NPREVQQUdFIiAvRCAiTkRFQlVHIiAvRCAieDg2IiAvRCAiaTQ4NiIgL0QgIl94ODZfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlpMSUJfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL01MIC9XMyAvR1gtIC9PMiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIl9VTklDT0RFIiAvRCAiV0lOMzIiIC9EICJTVFJJQ1QiIC9EICJfV0lOMzJfV0NFX0VNVUxBVElPTiIgL0QgIklOVEVSTkFUSU9OQUwiIC9EICJVU0EiIC9EICJJTlRMTVNHX0NPREVQQUdFIiAvRCAiTkRFQlVHIiAvRCAieDg2IiAvRCAiaTQ4NiIgL0QgIl94ODZfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlpMSUJfRExMIiAvYwogIyBTVUJUUkFDVCBDUFAgL1lYCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJfVU5JQ09ERSIgL2QgIldJTjMyIiAvZCAiU1RSSUNUIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9kICJJTlRFUk5BVElPTkFMIiAvZCAiVVNBIiAvZCAiSU5UTE1TR19DT0RFUEFHRSIgL2QgIk5ERUJVRyIKQEAgLTQ2MSw3ICs0NjEsNyBAQAogIyBQUk9QIFRhcmdldF9EaXIgIiIKIENQUD1jbC5leGUKICMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL0dtIC9HWC0gL1ppIC9PZCAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIl9ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIlpMSUJDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NTGQgL1czIC9HbSAvR1gtIC9aaSAvT2QgL0kgIi4uXC4uXHpsaWIiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIl9ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NTGQgL1czIC9HbSAvR1gtIC9aaSAvT2QgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIl9ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKICMgU1VCVFJBQ1QgQ1BQIC9ZWAogUlNDPXJjLmV4ZQogIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJXSU4zMiIgL2QgIlNUUklDVCIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvZCAiSU5URVJOQVRJT05BTCIgL2QgIlVTQSIgL2QgIklOVExNU0dfQ09ERVBBR0UiIC9kICJfREVCVUciIC9kICJ4ODYiIC9kICJpNDg2IiAvZCAiX3g4Nl8iCkBAIC00OTAsNyArNDkwLDcgQEAKICMgUFJPUCBUYXJnZXRfRGlyICIiCiBDUFA9Y2xwcGMuZXhlCiAjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NJChDRUNydCkgL1czIC9HWC0gL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJQUEMiIC9EICJfUFBDXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiWkxJQkNFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL0dYLSAvTzIgL0kgIi4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJQUEMiIC9EICJfUFBDXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKKyMgQUREIENQUCAvbm9sb2dvIC9NJChDRUNydCkgL1czIC9HWC0gL08yIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiUFBDIiAvRCAiX1BQQ18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9jCiAjIFNVQlRSQUNUIENQUCAvWVgKIFJTQz1yYy5leGUKICMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJwcGMiIC9kICJfcHBjXyIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgpAQCAtNTIxLDcgKzUyMSw3IEBACiAjIFBST1AgVGFyZ2V0X0RpciAiIgogQ1BQPWNscHBjLmV4ZQogIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9HWC0gL1ppIC9PZCAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiREVCVUciIC9EICJQUEMiIC9EICJfUFBDXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiWkxJQkNFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0RGVidWcpIC9XMyAvR1gtIC9aaSAvT2QgL0kgIi4uXC4uXHpsaWIiIC9EICJERUJVRyIgL0QgIlBQQyIgL0QgIl9QUENfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlpMSUJfRExMIiAvYworIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0RGVidWcpIC9XMyAvR1gtIC9aaSAvT2QgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJERUJVRyIgL0QgIlBQQyIgL0QgIl9QUENfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlpMSUJfRExMIiAvYwogIyBTVUJUUkFDVCBDUFAgL1lYCiBSU0M9cmMuZXhlCiAjIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAicHBjIiAvZCAiX3BwY18iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgpAQCAtNTYzLDExOCArNTYzLDExOCBAQAogIyBQUk9QIERlZmF1bHRfRmlsdGVyICJjcHA7YztjeHg7cmM7ZGVmO3I7b2RsO2lkbDtocGo7YmF0IgogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxhZGxlcjMyLmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGFkbGVyMzIuYwogCiAhSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCiAKIERFUF9DUFBfQURMRVI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCiAKIERFUF9DUFBfQURMRVI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX0FETEVSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCiAKIERFUF9DUFBfQURMRVI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgogCiBERVBfQ1BQX0FETEVSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfQURMRVI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgogCiBERVBfQ1BQX0FETEVSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCiAKIERFUF9DUFBfQURMRVI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX0FETEVSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCiAKIERFUF9DUFBfQURMRVI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgogCiBERVBfQ1BQX0FETEVSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfQURMRVI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCiAKIERFUF9DUFBfQURMRVI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgogCiBERVBfQ1BQX0FETEVSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9BRExFUj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgogCiBERVBfQ1BQX0FETEVSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTkRJRiAKQEAgLTY4MiwxMTggKzY4MiwxMTggQEAKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXGNvbXByZXNzLmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGNvbXByZXNzLmMKIAogIUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgogCiBERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgogCiBERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKIAogREVQX0NQUF9DT01QUj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgogCiBERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKIAogREVQX0NQUF9DT01QUj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgogCiBERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKIAogREVQX0NQUF9DT01QUj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgogCiBERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKIAogREVQX0NQUF9DT01QUj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgogCiBERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKIAogREVQX0NQUF9DT01QUj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgogCiBERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgogCiBERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKIAogREVQX0NQUF9DT01QUj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCiAKIERFUF9DUFBfQ09NUFI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKIAogREVQX0NQUF9DT01QUj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRU5ESUYgCkBAIC04MDEsMTE4ICs4MDEsMTE4IEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxjcmMzMi5jCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxjcmMzMi5jCiAKICFJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKIAogREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCiAKIERFUF9DUFBfQ1JDMzI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKIAogREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfQ1JDMzI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKIAogREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCiAKIERFUF9DUFBfQ1JDMzI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCiAKIERFUF9DUFBfQ1JDMzI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKIAogREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfQ1JDMzI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKIAogREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKIAogREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfQ1JDMzI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgogCiBERVBfQ1BQX0NSQzMyPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCiAKIERFUF9DUFBfQ1JDMzI9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVORElGIApAQCAtOTIwLDE1MCArOTIwLDE1MCBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcZGVmbGF0ZS5jCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxkZWZsYXRlLmMKIAogIUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgogCiBERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9ERUZMQT1cCi0JIi4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgogCiBERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfREVGTEE9XAotCSIuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfREVGTEE9XAotCSIuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKIAogREVQX0NQUF9ERUZMQT1cCi0JIi4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9ERUZMQT1cCi0JIi4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgogCiBERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfREVGTEE9XAotCSIuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfREVGTEE9XAotCSIuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgogCiBERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfREVGTEE9XAotCSIuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9ERUZMQT1cCi0JIi4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKIAogREVQX0NQUF9ERUZMQT1cCi0JIi4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVORElGIApAQCAtMTA3MSwxMzQgKzEwNzEsMTM0IEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxnemlvLmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGd6aW8uYwogCiAhSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCiAKIERFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgogCiBERVBfQ1BQX0daSU9fQz1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCiAKIERFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCiAKIERFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKIAogREVQX0NQUF9HWklPX0M9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKIAogREVQX0NQUF9HWklPX0M9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgogCiBERVBfQ1BQX0daSU9fQz1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgogCiBERVBfQ1BQX0daSU9fQz1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCiAKIERFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCiAKIERFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKIAogREVQX0NQUF9HWklPX0M9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKIAogREVQX0NQUF9HWklPX0M9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCiAKIERFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKIAogREVQX0NQUF9HWklPX0M9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgogCiBERVBfQ1BQX0daSU9fQz1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgogCiBERVBfQ1BQX0daSU9fQz1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRU5ESUYgCkBAIC0xMjA2LDE5OCArMTIwNiwxOTggQEAKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXGluZmJsb2NrLmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGluZmJsb2NrLmMKIAogIUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgogCiBERVBfQ1BQX0lORkJMPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX0lORkJMPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgogCiBERVBfQ1BQX0lORkJMPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GQkw9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfSU5GQkw9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX0lORkJMPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgogCiBERVBfQ1BQX0lORkJMPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GQkw9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfSU5GQkw9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgogCiBERVBfQ1BQX0lORkJMPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfSU5GQkw9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVORElGIApAQCAtMTQwNSwyMTQgKzE0MDUsMjE0IEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxpbmZjb2Rlcy5jCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZjb2Rlcy5jCiAKICFJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgogCiBERVBfQ1BQX0lORkNPPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX0lORkNPPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfSU5GQ089XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GQ089XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgogCiBERVBfQ1BQX0lORkNPPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX0lORkNPPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfSU5GQ089XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCiAKIERFUF9DUFBfSU5GQ089XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRU5ESUYgCkBAIC0xNjIwLDIxNCArMTYyMCwyMTQgQEAKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXGluZmZhc3QuYworU09VUkNFPS4uXC4uXC4uXHpsaWJcaW5mZmFzdC5jCiAKICFJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZGQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgogCiBERVBfQ1BQX0lORkZBPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX0lORkZBPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZGQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZGQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfSU5GRkE9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GRkE9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgogCiBERVBfQ1BQX0lORkZBPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX0lORkZBPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZGQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZGQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfSU5GRkE9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZGQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZGQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZGQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCiAKIERFUF9DUFBfSU5GRkE9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRU5ESUYgCkBAIC0xODM1LDE1MCArMTgzNSwxNTAgQEAKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXGluZmxhdGUuYworU09VUkNFPS4uXC4uXC4uXHpsaWJcaW5mbGF0ZS5jCiAKICFJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GTEE9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GTEE9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GTEE9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GTEE9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GTEE9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfSU5GTEE9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgogCiBERVBfQ1BQX0lORkxBPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCiAKIERFUF9DUFBfSU5GTEE9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVORElGIApAQCAtMTk4NiwxNjYgKzE5ODYsMTY2IEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxpbmZ0cmVlcy5jCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZ0cmVlcy5jCiAKICFJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GVFI9XAotCSIuLlwuLlx6bGliXGluZmZpeGVkLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GVFI9XAotCSIuLlwuLlx6bGliXGluZmZpeGVkLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GVFI9XAotCSIuLlwuLlx6bGliXGluZmZpeGVkLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GVFI9XAotCSIuLlwuLlx6bGliXGluZmZpeGVkLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GVFI9XAotCSIuLlwuLlx6bGliXGluZmZpeGVkLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfSU5GVFI9XAotCSIuLlwuLlx6bGliXGluZmZpeGVkLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgogCiBERVBfQ1BQX0lORlRSPVwKLQkiLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmZpeGVkLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCiAKIERFUF9DUFBfSU5GVFI9XAotCSIuLlwuLlx6bGliXGluZmZpeGVkLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVORElGIApAQCAtMjE1MywxOTggKzIxNTMsMTk4IEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxpbmZ1dGlsLmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGluZnV0aWwuYwogCiAhSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgogCiBERVBfQ1BQX0lORlVUPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCiAKIERFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgogCiBERVBfQ1BQX0lORlVUPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgogCiBERVBfQ1BQX0lORlVUPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCiAKIERFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKIAogREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCiAKIERFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKIAogREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgogCiBERVBfQ1BQX0lORlVUPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgogCiBERVBfQ1BQX0lORlVUPVwKLQkiLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRU5ESUYgCkBAIC0yMzUyLDE2NiArMjM1MiwxNjYgQEAKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXHRyZWVzLmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXHRyZWVzLmMKIAogIUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgogCiBERVBfQ1BQX1RSRUVTPVwKLQkiLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlx6bGliXHRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKKwkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKIAogREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCisJIi4uXC4uXC4uXHpsaWJcdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX1RSRUVTPVwKLQkiLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlx6bGliXHRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKKwkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgogCiBERVBfQ1BQX1RSRUVTPVwKLQkiLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlx6bGliXHRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKKwkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCiAKIERFUF9DUFBfVFJFRVM9XAotCSIuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXHpsaWJcdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAorCSIuLlwuLlwuLlx6bGliXHRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfVFJFRVM9XAotCSIuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXHpsaWJcdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAorCSIuLlwuLlwuLlx6bGliXHRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKIAogREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCisJIi4uXC4uXC4uXHpsaWJcdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKIAogREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCisJIi4uXC4uXC4uXHpsaWJcdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX1RSRUVTPVwKLQkiLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlx6bGliXHRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKKwkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgogCiBERVBfQ1BQX1RSRUVTPVwKLQkiLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlx6bGliXHRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKKwkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCiAKIERFUF9DUFBfVFJFRVM9XAotCSIuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXHpsaWJcdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAorCSIuLlwuLlwuLlx6bGliXHRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfVFJFRVM9XAotCSIuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXHpsaWJcdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAorCSIuLlwuLlwuLlx6bGliXHRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgogCiBERVBfQ1BQX1RSRUVTPVwKLQkiLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlx6bGliXHRyZWVzLmgiXAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKKwkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCiAKIERFUF9DUFBfVFJFRVM9XAotCSIuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXHpsaWJcdHJlZXMuaCJcCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAorCSIuLlwuLlwuLlx6bGliXHRyZWVzLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCisJIi4uXC4uXC4uXHpsaWJcdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKIAogREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCisJIi4uXC4uXC4uXHpsaWJcdHJlZXMuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVORElGIApAQCAtMjUxOSwxMTggKzI1MTksMTE4IEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlx1bmNvbXByLmMKK1NPVVJDRT0uLlwuLlwuLlx6bGliXHVuY29tcHIuYwogCiAhSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCiAKIERFUF9DUFBfVU5DT009XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCiAKIERFUF9DUFBfVU5DT009XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCiAKIERFUF9DUFBfVU5DT009XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgogCiBERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfVU5DT009XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgogCiBERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCiAKIERFUF9DUFBfVU5DT009XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCiAKIERFUF9DUFBfVU5DT009XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgogCiBERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfVU5DT009XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCiAKIERFUF9DUFBfVU5DT009XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgogCiBERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9VTkNPTT1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgogCiBERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCiAJCiAKICFFTkRJRiAKQEAgLTI2NDIsMTM0ICsyNjQyLDEzNCBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcenV0aWwuYworU09VUkNFPS4uXC4uXC4uXHpsaWJcenV0aWwuYwogCiAhSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCiAKIERFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCiAKIERFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgogCiBERVBfQ1BQX1pVVElMPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCiAKIERFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgogCiBERVBfQ1BQX1pVVElMPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCiAKIERFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgogCiBERVBfQ1BQX1pVVElMPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCiAKIERFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgogCiBERVBfQ1BQX1pVVElMPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCiAKIERFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgogCiBERVBfQ1BQX1pVVElMPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCiAKIERFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCiAKIERFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHpsaWJcenV0aWwuaCJcCisJIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCisJIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKIAkKIAogIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgogCiBERVBfQ1BQX1pVVElMPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKIAogREVQX0NQUF9aVVRJTD1cCi0JIi4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cemxpYlx6dXRpbC5oIlwKKwkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKKwkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAorCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAogCQogCiAhRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgogCiBERVBfQ1BQX1pVVElMPVwKLQkiLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlx6bGliXHp1dGlsLmgiXAorCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAorCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCisJIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCiAJCiAKICFFTkRJRiAKQEAgLTI3ODEsNDcgKzI3ODEsNDcgQEAKICMgUFJPUCBEZWZhdWx0X0ZpbHRlciAiaDtocHA7aHh4O2htO2lubCIKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcZGVmbGF0ZS5oCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxkZWZsYXRlLmgKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXGluZmJsb2NrLmgKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGluZmJsb2NrLmgKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXGluZmNvZGVzLmgKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGluZmNvZGVzLmgKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXGluZmZhc3QuaAorU09VUkNFPS4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxpbmZmaXhlZC5oCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZmaXhlZC5oCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxpbmZ0cmVlcy5oCitTT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oCiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Li5cLi5cemxpYlxpbmZ1dGlsLmgKK1NPVVJDRT0uLlwuLlwuLlx6bGliXGluZnV0aWwuaAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcdHJlZXMuaAorU09VUkNFPS4uXC4uXC4uXHpsaWJcdHJlZXMuaAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcemNvbmYuaAorU09VUkNFPS4uXC4uXC4uXHpsaWJcemNvbmYuaAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS4uXC4uXHpsaWJcemxpYi5oCitTT1VSQ0U9Li5cLi5cLi5cemxpYlx6bGliLmgKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEJlZ2luIFNvdXJjZSBGaWxlCiAKLVNPVVJDRT0uLlwuLlx6bGliXHp1dGlsLmgKK1NPVVJDRT0uLlwuLlwuLlx6bGliXHp1dGlsLmgKICMgRW5kIFNvdXJjZSBGaWxlCiAjIEVuZCBHcm91cAogIyBCZWdpbiBHcm91cCAiUmVzb3VyY2UgRmlsZXMiCmRpZmYgLS1naXQgYS9saWJwbmcuMyBiL2xpYnBuZy4zCmluZGV4IGU1Y2VhYjQuLjZmYTFjNzcgMTAwNjQ0Ci0tLSBhL2xpYnBuZy4zCisrKyBiL2xpYnBuZy4zCkBAIC0xLDYgKzEsNiBAQAotLlRIIExJQlBORyAzICJKdWx5IDI0LCAyMDAwIgorLlRIIExJQlBORyAzICJOb3ZlbWJlciAxMCwgMjAwMCIKIC5TSCBOQU1FCi1saWJwbmcgXC0gUG9ydGFibGUgTmV0d29yayBHcmFwaGljcyAoUE5HKSBSZWZlcmVuY2UgTGlicmFyeSAxLjAuOAorbGlicG5nIFwtIFBvcnRhYmxlIE5ldHdvcmsgR3JhcGhpY3MgKFBORykgUmVmZXJlbmNlIExpYnJhcnkgMS4wLjliZXRhMQogLlNIIFNZTk9QU0lTCiBcZklcZkIKIApAQCAtNDAsNyArNDAsNyBAQAogCiBcZklcZkIKIAotXGZCcG5nX3N0cnVjdHAgcG5nX2NyZWF0ZV9yZWFkX3N0cnVjdCAocG5nX2NvbnN0X2NoYXJwIFxmUFxmSXVzZXJfcG5nX3ZlclxmUFxmQiwgdm9pZHAgXGZQXGZJZXJyb3JfcHRyXGZQXGZCLCBwbmdfZXJyb3JfcHRyIFxmUFxmSWVycm9yX2ZuXGZQXGZCLCBwbmdfZXJyb3JfcHRyIFxmSXdhcm5fZm5cZlBcZkIpO1xmUAorXGZCcG5nX3N0cnVjdHAgcG5nX2NyZWF0ZV9yZWFkX3N0cnVjdCAocG5nX2NvbnN0X2NoYXJwIFxmUFxmSXVzZXJfcG5nX3ZlclxmUFxmQiwgcG5nX3ZvaWRwIFxmUFxmSWVycm9yX3B0clxmUFxmQiwgcG5nX2Vycm9yX3B0ciBcZlBcZkllcnJvcl9mblxmUFxmQiwgcG5nX2Vycm9yX3B0ciBcZkl3YXJuX2ZuXGZQXGZCKTtcZlAKIAogXGZJXGZCCiAKQEAgLTQ4LDcgKzQ4LDcgQEAKIAogXGZJXGZCCiAKLVxmQnBuZ19zdHJ1Y3RwIHBuZ19jcmVhdGVfd3JpdGVfc3RydWN0IChwbmdfY29uc3RfY2hhcnAgXGZQXGZJdXNlcl9wbmdfdmVyXGZQXGZCLCB2b2lkcCBcZlBcZkllcnJvcl9wdHJcZlBcZkIsIHBuZ19lcnJvcl9wdHIgXGZQXGZJZXJyb3JfZm5cZlBcZkIsIHBuZ19lcnJvcl9wdHIgXGZJd2Fybl9mblxmUFxmQik7XGZQCitcZkJwbmdfc3RydWN0cCBwbmdfY3JlYXRlX3dyaXRlX3N0cnVjdCAocG5nX2NvbnN0X2NoYXJwIFxmUFxmSXVzZXJfcG5nX3ZlclxmUFxmQiwgcG5nX3ZvaWRwIFxmUFxmSWVycm9yX3B0clxmUFxmQiwgcG5nX2Vycm9yX3B0ciBcZlBcZkllcnJvcl9mblxmUFxmQiwgcG5nX2Vycm9yX3B0ciBcZkl3YXJuX2ZuXGZQXGZCKTtcZlAKIAogXGZJXGZCCiAKQEAgLTM2OCw3ICszNjgsNyBAQAogCiBcZklcZkIKIAotXGZCdm9pZCBwbmdfcmVhZF9wbmcgKHBuZ19zdHJ1Y3RwIFxmUFxmSXBuZ19wdHJcZlBcZkIsIHBuZ19pbmZvcCBcZlBcZklpbmZvX3B0clxmUFxmQiwgaW50IFxmUFxmSXRyYW5zZm9ybXNcZlBcZkIsIHZvaWRwIFxmSXBhcmFtc1xmUFxmQik7XGZQCitcZkJ2b2lkIHBuZ19yZWFkX3BuZyAocG5nX3N0cnVjdHAgXGZQXGZJcG5nX3B0clxmUFxmQiwgcG5nX2luZm9wIFxmUFxmSWluZm9fcHRyXGZQXGZCLCBpbnQgXGZQXGZJdHJhbnNmb3Jtc1xmUFxmQiwgcG5nX3ZvaWRwIFxmSXBhcmFtc1xmUFxmQik7XGZQCiAKIFxmSVxmQgogCkBAIC03MjQsNyArNzI0LDcgQEAKIAogXGZJXGZCCiAKLVxmQnZvaWQgcG5nX3dyaXRlX3BuZyAocG5nX3N0cnVjdHAgXGZQXGZJcG5nX3B0clxmUFxmQiwgcG5nX2luZm9wIFxmUFxmSWluZm9fcHRyXGZQXGZCLCBpbnQgXGZQXGZJdHJhbnNmb3Jtc1xmUFxmQiwgdm9pZHAgXGZJcGFyYW1zXGZQXGZCKTtcZlAKK1xmQnZvaWQgcG5nX3dyaXRlX3BuZyAocG5nX3N0cnVjdHAgXGZQXGZJcG5nX3B0clxmUFxmQiwgcG5nX2luZm9wIFxmUFxmSWluZm9fcHRyXGZQXGZCLCBpbnQgXGZQXGZJdHJhbnNmb3Jtc1xmUFxmQiwgcG5nX3ZvaWRwIFxmSXBhcmFtc1xmUFxmQik7XGZQCiAKIFxmSVxmQgogCkBAIC03NDcsNyArNzQ3LDcgQEAKIC5TSCBMSUJQTkcuVFhUCiBsaWJwbmcudHh0IC0gQSBkZXNjcmlwdGlvbiBvbiBob3cgdG8gdXNlIGFuZCBtb2RpZnkgbGlicG5nCiAKLSBsaWJwbmcgdmVyc2lvbiAxLjAuOCAtIEp1bHkgMjQsIDIwMDAKKyBsaWJwbmcgdmVyc2lvbiAxLjAuOWJldGExIC0gTm92ZW1iZXIgMTAsIDIwMDAKICBVcGRhdGVkIGFuZCBkaXN0cmlidXRlZCBieSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICA8cmFuZGVnQGFsdW0ucnBpLmVkdT4KICBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCkBAIC03ODQsOCArNzg0LDcgQEAKIG9mIHJlZHVjaW5nIHRoZSBhbW91bnQgb2YgdGltZSBhbmQgZWZmb3J0IGl0IHRha2VzIHRvIHN1cHBvcnQgdGhlIFBORwogZmlsZSBmb3JtYXQgaW4gYXBwbGljYXRpb24gcHJvZ3JhbXMuCiAKLVRoZSBQTkctMS4yIHNwZWNpZmljYXRpb24gaXMgYXZhaWxhYmxlIGF0IDxodHRwOi8vd3d3LmNkcm9tLmNvbS9wdWIvcG5nPgotKHdpbGwgYmUgbW92aW5nIHRvIDxodHRwOi8vd3d3LmxpYnBuZy5vcmc+KQorVGhlIFBORy0xLjIgc3BlY2lmaWNhdGlvbiBpcyBhdmFpbGFibGUgYXQgPGh0dHA6Ly93d3cubGlicG5nLm9yZy9wdWIvcG5nPgogYW5kIGF0IDxmdHA6Ly9mdHAudXUubmV0L2dyYXBoaWNzL3BuZy9kb2N1bWVudHMvPi4KIAogVGhlIFBORy0xLjAgc3BlY2lmaWNhdGlvbiBpcyBhdmFpbGFibGUKQEAgLTc5Niw4ICs3OTUsNyBAQAogCiBPdGhlciBpbmZvcm1hdGlvbgogYWJvdXQgUE5HLCBhbmQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGxpYnBuZywgY2FuIGJlIGZvdW5kIGF0IHRoZSBQTkcgaG9tZQotcGFnZSwgPGh0dHA6Ly93d3cuY2Ryb20uY29tL3B1Yi9wbmcvPiAod2lsbCBiZSBtb3ZpbmcgdG8KLTxodHRwOi8vd3d3LmxpYnBuZy5vcmc+KQorcGFnZSwgPGh0dHA6Ly93d3cubGlicG5nLm9yZy9wdWIvcG5nLz4KIGFuZCBhdCA8ZnRwOi8vZnRwLnV1Lm5ldC9ncmFwaGljcy9wbmcvPi4KIAogTW9zdCB1c2VycyB3aWxsIG5vdCBoYXZlIHRvIG1vZGlmeSB0aGUgbGlicmFyeSBzaWduaWZpY2FudGx5OyBhZHZhbmNlZApAQCAtMzM4MSwxMyArMzM3OSwxMyBAQAogCiAuU0ggVklJLiBZMksgQ29tcGxpYW5jZSBpbiBsaWJwbmcKIAotSnVseSAyNCwgMjAwMAorTm92ZW1iZXIgMTAsIDIwMDAKIAogU2luY2UgdGhlIFBORyBEZXZlbG9wbWVudCBncm91cCBpcyBhbiBhZC1ob2MgYm9keSwgd2UgY2FuJ3QgbWFrZQogYW4gb2ZmaWNpYWwgZGVjbGFyYXRpb24uCiAKIFRoaXMgaXMgeW91ciB1bm9mZmljaWFsIGFzc3VyYW5jZSB0aGF0IGxpYnBuZyBmcm9tIHZlcnNpb24gMC43MSBhbmQKLXVwd2FyZCB0aHJvdWdoIDEuMC44IGFyZSBZMksgY29tcGxpYW50LiAgSXQgaXMgbXkgYmVsaWVmIHRoYXQgZWFybGllcgordXB3YXJkIHRocm91Z2ggMS4wLjliZXRhMSBhcmUgWTJLIGNvbXBsaWFudC4gIEl0IGlzIG15IGJlbGllZiB0aGF0IGVhcmxpZXIKIHZlcnNpb25zIHdlcmUgYWxzbyBZMksgY29tcGxpYW50LgogCiBMaWJwbmcgb25seSBoYXMgdGhyZWUgeWVhciBmaWVsZHMuICBPbmUgaXMgYSAyLWJ5dGUgdW5zaWduZWQgaW50ZWdlciB0aGF0CkBAIC0zNDg4LDcgKzM0ODYsNyBAQAogLklSIGxpYnBuZyA6CiAuSVAKIGZ0cDovL2Z0cC51dS5uZXQvZ3JhcGhpY3MvcG5nCi1odHRwOi8vd3d3LmNkcm9tLmNvbS9wdWIvcG5nCitodHRwOi8vd3d3LmxpYnBuZy5vcmcvcHViL3BuZwogCiAuTFAKIC5JUiB6bGliIDoKQEAgLTM0OTksNyArMzQ5Nyw3IEBACiAuYnIKIGZ0cDovL2Z0cC51dS5uZXQvcHViL2FyY2hpdmluZy96aXAvemxpYgogLmJyCi1mdHA6Ly9mdHAuZnJlZXNvZnR3YXJlLmNvbS9wdWIvaW5mb3ppcC96bGliCitmdHA6Ly9mdHAuaW5mby16aXAub3JnL3B1Yi9pbmZvemlwL3psaWIKIAogLkxQCiAuSVIgUE5HIHNwZWNpZmljYXRpb246IFJGQyAyMDgzCkBAIC0zNTI4LDcgKzM1MjYsNyBAQAogCiBUaGFua3MgdG8gRnJhbmsgSi4gVC4gV29qY2lrIGZvciBoZWxwaW5nIHdpdGggdGhlIGRvY3VtZW50YXRpb24uCiAKLUxpYnBuZyB2ZXJzaW9uIDEuMC44IC0gSnVseSAyNCwgMjAwMDoKK0xpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMDoKIEluaXRpYWxseSBjcmVhdGVkIGluIDE5OTUgYnkgR3V5IEVyaWMgU2NoYWxuYXQsIHRoZW4gb2YgR3JvdXAgNDIsIEluYy4KIEN1cnJlbnRseSBtYWludGFpbmVkIGJ5IEdsZW5uIFJhbmRlcnMtUGVocnNvbiAocmFuZGVnQGFsdW0ucnBpLmVkdSkuCiAKQEAgLTM1MzgsMTAgKzM1MzYsMTQgQEAKIAogLlNIIENPUFlSSUdIVCBOT1RJQ0UsIERJU0NMQUlNRVIsIGFuZCBMSUNFTlNFOgogCisoVGhpcyBjb3B5IG9mIHRoZSBsaWJwbmcgbm90aWNlcyBpcyBwcm92aWRlZCBmb3IgeW91ciBjb252ZW5pZW5jZS4gIEluIGNhc2Ugb2YKK2FueSBkaXNjcmVwYW5jeSBiZXR3ZWVuIHRoaXMgY29weSBhbmQgdGhlIG5vdGljZXMgaW4gdGhlIGZpbGUgcG5nLmggdGhhdCBpcworaW5jbHVkZWQgaW4gdGhlIGxpYnBuZyBkaXN0cmlidXRpb24sIHRoZSBsYXR0ZXIgc2hhbGwgcHJldmFpbC4pCisKIElmIHlvdSBtb2RpZnkgbGlicG5nIHlvdSBtYXkgaW5zZXJ0IGFkZGl0aW9uYWwgbm90aWNlcyBpbW1lZGlhdGVseSBmb2xsb3dpbmcKIHRoaXMgc2VudGVuY2UuCiAKLWxpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoICAxLjAuOCwgSnVseSAyNCwgMjAwMCwgYXJlCitsaWJwbmcgdmVyc2lvbnMgMS4wLjcsIEp1bHkgMSwgMjAwMCwgdGhyb3VnaCAgMS4wLjliZXRhMSwgTm92ZW1iZXIgMTAsIDIwMDAsIGFyZQogQ29weXJpZ2h0IChjKSAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbiwgYW5kIGFyZQogZGlzdHJpYnV0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzYW1lIGRpc2NsYWltZXIgYW5kIGxpY2Vuc2UgYXMgbGlicG5nLTEuMC42CiB3aXRoIHRoZSBmb2xsb3dpbmcgaW5kaXZpZHVhbHMgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgQ29udHJpYnV0aW5nIEF1dGhvcnMKQEAgLTM2MzIsNyArMzYzNCw3IEBACiAKIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogcmFuZGVnQGFsdW0ucnBpLmVkdQotSnVseSAyNCwgMjAwMAorTm92ZW1iZXIgMTAsIDIwMDAKIAogLlwiIGVuZCBvZiBtYW4gcGFnZQogCmRpZmYgLS1naXQgYS9saWJwbmcudHh0IGIvbGlicG5nLnR4dAppbmRleCAyNTlhMmYwLi4yODA5ZTI4IDEwMDY0NAotLS0gYS9saWJwbmcudHh0CisrKyBiL2xpYnBuZy50eHQKQEAgLTEsNiArMSw2IEBACiBsaWJwbmcudHh0IC0gQSBkZXNjcmlwdGlvbiBvbiBob3cgdG8gdXNlIGFuZCBtb2RpZnkgbGlicG5nCiAKLSBsaWJwbmcgdmVyc2lvbiAxLjAuOCAtIEp1bHkgMjQsIDIwMDAKKyBsaWJwbmcgdmVyc2lvbiAxLjAuOWJldGExIC0gTm92ZW1iZXIgMTAsIDIwMDAKICBVcGRhdGVkIGFuZCBkaXN0cmlidXRlZCBieSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICA8cmFuZGVnQGFsdW0ucnBpLmVkdT4KICBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCkBAIC0zNyw4ICszNyw3IEBACiBvZiByZWR1Y2luZyB0aGUgYW1vdW50IG9mIHRpbWUgYW5kIGVmZm9ydCBpdCB0YWtlcyB0byBzdXBwb3J0IHRoZSBQTkcKIGZpbGUgZm9ybWF0IGluIGFwcGxpY2F0aW9uIHByb2dyYW1zLgogCi1UaGUgUE5HLTEuMiBzcGVjaWZpY2F0aW9uIGlzIGF2YWlsYWJsZSBhdCA8aHR0cDovL3d3dy5jZHJvbS5jb20vcHViL3BuZz4KLSh3aWxsIGJlIG1vdmluZyB0byA8aHR0cDovL3d3dy5saWJwbmcub3JnPikKK1RoZSBQTkctMS4yIHNwZWNpZmljYXRpb24gaXMgYXZhaWxhYmxlIGF0IDxodHRwOi8vd3d3LmxpYnBuZy5vcmcvcHViL3BuZz4KIGFuZCBhdCA8ZnRwOi8vZnRwLnV1Lm5ldC9ncmFwaGljcy9wbmcvZG9jdW1lbnRzLz4uCiAKIFRoZSBQTkctMS4wIHNwZWNpZmljYXRpb24gaXMgYXZhaWxhYmxlCkBAIC00OSw4ICs0OCw3IEBACiAKIE90aGVyIGluZm9ybWF0aW9uCiBhYm91dCBQTkcsIGFuZCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgbGlicG5nLCBjYW4gYmUgZm91bmQgYXQgdGhlIFBORyBob21lCi1wYWdlLCA8aHR0cDovL3d3dy5jZHJvbS5jb20vcHViL3BuZy8+ICh3aWxsIGJlIG1vdmluZyB0bwotPGh0dHA6Ly93d3cubGlicG5nLm9yZz4pCitwYWdlLCA8aHR0cDovL3d3dy5saWJwbmcub3JnL3B1Yi9wbmcvPgogYW5kIGF0IDxmdHA6Ly9mdHAudXUubmV0L2dyYXBoaWNzL3BuZy8+LgogCiBNb3N0IHVzZXJzIHdpbGwgbm90IGhhdmUgdG8gbW9kaWZ5IHRoZSBsaWJyYXJ5IHNpZ25pZmljYW50bHk7IGFkdmFuY2VkCkBAIC0yNjM0LDEzICsyNjMyLDEzIEBACiAKIFZJSS4gWTJLIENvbXBsaWFuY2UgaW4gbGlicG5nCiAKLUp1bHkgMjQsIDIwMDAKK05vdmVtYmVyIDEwLCAyMDAwCiAKIFNpbmNlIHRoZSBQTkcgRGV2ZWxvcG1lbnQgZ3JvdXAgaXMgYW4gYWQtaG9jIGJvZHksIHdlIGNhbid0IG1ha2UKIGFuIG9mZmljaWFsIGRlY2xhcmF0aW9uLgogCiBUaGlzIGlzIHlvdXIgdW5vZmZpY2lhbCBhc3N1cmFuY2UgdGhhdCBsaWJwbmcgZnJvbSB2ZXJzaW9uIDAuNzEgYW5kCi11cHdhcmQgdGhyb3VnaCAxLjAuOCBhcmUgWTJLIGNvbXBsaWFudC4gIEl0IGlzIG15IGJlbGllZiB0aGF0IGVhcmxpZXIKK3Vwd2FyZCB0aHJvdWdoIDEuMC45YmV0YTEgYXJlIFkySyBjb21wbGlhbnQuICBJdCBpcyBteSBiZWxpZWYgdGhhdCBlYXJsaWVyCiB2ZXJzaW9ucyB3ZXJlIGFsc28gWTJLIGNvbXBsaWFudC4KIAogTGlicG5nIG9ubHkgaGFzIHRocmVlIHllYXIgZmllbGRzLiAgT25lIGlzIGEgMi1ieXRlIHVuc2lnbmVkIGludGVnZXIgdGhhdApkaWZmIC0tZ2l0IGEvbGlicG5ncGYuMyBiL2xpYnBuZ3BmLjMKaW5kZXggZTdlYmJkZS4uZDFjYzNlZCAxMDA2NDQKLS0tIGEvbGlicG5ncGYuMworKysgYi9saWJwbmdwZi4zCkBAIC0xLDYgKzEsNiBAQAotLlRIIExJQlBOR1BGIDMgIkp1bHkgMjQsIDIwMDAiCisuVEggTElCUE5HUEYgMyAiTm92ZW1iZXIgMTAsIDIwMDAiCiAuU0ggTkFNRQotbGlicG5nIFwtIFBvcnRhYmxlIE5ldHdvcmsgR3JhcGhpY3MgKFBORykgUmVmZXJlbmNlIExpYnJhcnkgMS4wLjgKK2xpYnBuZyBcLSBQb3J0YWJsZSBOZXR3b3JrIEdyYXBoaWNzIChQTkcpIFJlZmVyZW5jZSBMaWJyYXJ5IDEuMC45YmV0YTEKIChwcml2YXRlIGZ1bmN0aW9ucykKIC5TSCBTWU5PUFNJUwogXGZCI2luY2x1ZGUgPHBuZy5oPlxmUApkaWZmIC0tZ2l0IGEvcG5nLjUgYi9wbmcuNQppbmRleCA5ZmY1NGI0Li5lODA0ZTJlIDEwMDY0NAotLS0gYS9wbmcuNQorKysgYi9wbmcuNQpAQCAtMSw0ICsxLDQgQEAKLS5USCBQTkcgNSAiSnVseSAyNCwgMjAwMCIKKy5USCBQTkcgNSAiTm92ZW1iZXIgMTAsIDIwMDAiCiAuU0ggTkFNRQogcG5nIFwtIFBvcnRhYmxlIE5ldHdvcmsgR3JhcGhpY3MgKFBORykgZm9ybWF0CiAuU0ggREVTQ1JJUFRJT04KQEAgLTIzLDcgKzIzLDcgQEAKIFBORyAxLjIgc3BlY2lmaWNhdGlvbiwgSnVseSAxOTk5OgogLklQCiAuYnIKLWh0dHA6Ly93d3cuY2Ryb20uY29tL3B1Yi9wbmcgKG1vdmluZyB0byBodHRwOi8vd3d3LmxpYnBuZy5vcmcpCitodHRwOi8vd3d3LmxpYnBuZy5vcmcvcHViL3BuZwogLmJyCiBvciBmdHA6Ly9mdHAudXUubmV0L2dyYXBoaWNzL3BuZy9kb2N1bWVudHMKIC5MUApkaWZmIC0tZ2l0IGEvcG5nLmMgYi9wbmcuYwppbmRleCAxYjI1MzFjLi41MjU0MjJjIDEwMDY0NAotLS0gYS9wbmcuYworKysgYi9wbmcuYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5nLmMgLSBsb2NhdGlvbiBmb3IgZ2VuZXJhbCBwdXJwb3NlIGxpYnBuZyBmdW5jdGlvbnMKICAqCi0gKiBsaWJwbmcgdmVyc2lvbiAxLjAuOCAtIEp1bHkgMjQsIDIwMDAKKyAqIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCiAgKiAoVmVyc2lvbiAwLjg4IENvcHlyaWdodCAoYykgMTk5NSwgMTk5NiBHdXkgRXJpYyBTY2hhbG5hdCwgR3JvdXAgNDIsIEluYy4pCkBAIC0xMywxOCArMTMsMTggQEAKICNpbmNsdWRlICJwbmcuaCIKIAogLyogR2VuZXJhdGUgYSBjb21waWxlciBlcnJvciBpZiB0aGVyZSBpcyBhbiBvbGQgcG5nLmggaW4gdGhlIHNlYXJjaCBwYXRoLiAqLwotdHlwZWRlZiB2ZXJzaW9uXzFfMF84IFlvdXJfcG5nX2hfaXNfbm90X3ZlcnNpb25fMV8wXzg7Cit0eXBlZGVmIHZlcnNpb25fMV8wXzliZXRhMSBZb3VyX3BuZ19oX2lzX25vdF92ZXJzaW9uXzFfMF85YmV0YTE7CiAKIC8qIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yIEMgZmlsZXMuICBUaGlzIGhhZCBiZXR0ZXIgbWF0Y2ggdGhlIHZlcnNpb24KICAqIHN0cmluZyBkZWZpbmVkIGluIHBuZy5oLiAgKi8KIAogI2lmZGVmIFBOR19VU0VfR0xPQkFMX0FSUkFZUwogLyogcG5nX2xpYnBuZ192ZXIgd2FzIGNoYW5nZWQgdG8gYSBmdW5jdGlvbiBpbiB2ZXJzaW9uIDEuMC41YyAqLwotY2hhciBwbmdfbGlicG5nX3ZlclsxMl0gPSAiMS4wLjgiOworY29uc3QgY2hhciBwbmdfbGlicG5nX3ZlclsxOF0gPSAiMS4wLjliZXRhMSI7CiAKIC8qIHBuZ19zaWcgd2FzIGNoYW5nZWQgdG8gYSBmdW5jdGlvbiBpbiB2ZXJzaW9uIDEuMC41YyAqLwogLyogUGxhY2UgdG8gaG9sZCB0aGUgc2lnbmF0dXJlIHN0cmluZyBmb3IgYSBQTkcgZmlsZS4gKi8KLXBuZ19ieXRlIEZBUkRBVEEgcG5nX3NpZ1s4XSA9IHsxMzcsIDgwLCA3OCwgNzEsIDEzLCAxMCwgMjYsIDEwfTsKK2NvbnN0IHBuZ19ieXRlIEZBUkRBVEEgcG5nX3NpZ1s4XSA9IHsxMzcsIDgwLCA3OCwgNzEsIDEzLCAxMCwgMjYsIDEwfTsKIAogLyogSW52b2tlIGdsb2JhbCBkZWNsYXJhdGlvbnMgZm9yIGNvbnN0YW50IHN0cmluZ3MgZm9yIGtub3duIGNodW5rIHR5cGVzICovCiBQTkdfSUhEUjsKQEAgLTUyLDMyICs1MiwzMyBAQAogLyogYXJyYXlzIHRvIGZhY2lsaXRhdGUgZWFzeSBpbnRlcmxhY2luZyAtIHVzZSBwYXNzICgwIC0gNikgYXMgaW5kZXggKi8KIAogLyogc3RhcnQgb2YgaW50ZXJsYWNlIGJsb2NrICovCi1pbnQgRkFSREFUQSBwbmdfcGFzc19zdGFydFtdID0gezAsIDQsIDAsIDIsIDAsIDEsIDB9OworY29uc3QgaW50IEZBUkRBVEEgcG5nX3Bhc3Nfc3RhcnRbXSA9IHswLCA0LCAwLCAyLCAwLCAxLCAwfTsKIAogLyogb2Zmc2V0IHRvIG5leHQgaW50ZXJsYWNlIGJsb2NrICovCi1pbnQgRkFSREFUQSBwbmdfcGFzc19pbmNbXSA9IHs4LCA4LCA0LCA0LCAyLCAyLCAxfTsKK2NvbnN0IGludCBGQVJEQVRBIHBuZ19wYXNzX2luY1tdID0gezgsIDgsIDQsIDQsIDIsIDIsIDF9OwogCiAvKiBzdGFydCBvZiBpbnRlcmxhY2UgYmxvY2sgaW4gdGhlIHkgZGlyZWN0aW9uICovCi1pbnQgRkFSREFUQSBwbmdfcGFzc195c3RhcnRbXSA9IHswLCAwLCA0LCAwLCAyLCAwLCAxfTsKK2NvbnN0IGludCBGQVJEQVRBIHBuZ19wYXNzX3lzdGFydFtdID0gezAsIDAsIDQsIDAsIDIsIDAsIDF9OwogCiAvKiBvZmZzZXQgdG8gbmV4dCBpbnRlcmxhY2UgYmxvY2sgaW4gdGhlIHkgZGlyZWN0aW9uICovCi1pbnQgRkFSREFUQSBwbmdfcGFzc195aW5jW10gPSB7OCwgOCwgOCwgNCwgNCwgMiwgMn07Citjb25zdCBpbnQgRkFSREFUQSBwbmdfcGFzc195aW5jW10gPSB7OCwgOCwgOCwgNCwgNCwgMiwgMn07CiAKIC8qIHdpZHRoIG9mIGludGVybGFjZSBibG9jayAodXNlZCBpbiBhc3NlbWJsZXIgcm91dGluZXMgb25seSkgKi8KICNpZmRlZiBQTkdfSEFWRV9BU1NFTUJMRVJfQ09NQklORV9ST1cKLWludCBGQVJEQVRBIHBuZ19wYXNzX3dpZHRoW10gPSB7OCwgNCwgNCwgMiwgMiwgMSwgMX07Citjb25zdCBpbnQgRkFSREFUQSBwbmdfcGFzc193aWR0aFtdID0gezgsIDQsIDQsIDIsIDIsIDEsIDF9OwogI2VuZGlmCiAKIC8qIEhlaWdodCBvZiBpbnRlcmxhY2UgYmxvY2suICBUaGlzIGlzIG5vdCBjdXJyZW50bHkgdXNlZCAtIGlmIHlvdSBuZWVkCiAgKiBpdCwgdW5jb21tZW50IGl0IGhlcmUgYW5kIGluIHBuZy5oCi1pbnQgRkFSREFUQSBwbmdfcGFzc19oZWlnaHRbXSA9IHs4LCA4LCA0LCA0LCAyLCAyLCAxfTsKK2NvbnN0IGludCBGQVJEQVRBIHBuZ19wYXNzX2hlaWdodFtdID0gezgsIDgsIDQsIDQsIDIsIDIsIDF9OwogKi8KIAogLyogTWFzayB0byBkZXRlcm1pbmUgd2hpY2ggcGl4ZWxzIGFyZSB2YWxpZCBpbiBhIHBhc3MgKi8KLWludCBGQVJEQVRBIHBuZ19wYXNzX21hc2tbXSA9IHsweDgwLCAweDA4LCAweDg4LCAweDIyLCAweGFhLCAweDU1LCAweGZmfTsKK2NvbnN0IGludCBGQVJEQVRBIHBuZ19wYXNzX21hc2tbXSA9IHsweDgwLCAweDA4LCAweDg4LCAweDIyLCAweGFhLCAweDU1LCAweGZmfTsKIAogLyogTWFzayB0byBkZXRlcm1pbmUgd2hpY2ggcGl4ZWxzIHRvIG92ZXJ3cml0ZSB3aGlsZSBkaXNwbGF5aW5nICovCi1pbnQgRkFSREFUQSBwbmdfcGFzc19kc3BfbWFza1tdID0gezB4ZmYsIDB4MGYsIDB4ZmYsIDB4MzMsIDB4ZmYsIDB4NTUsIDB4ZmZ9OworY29uc3QgaW50IEZBUkRBVEEgcG5nX3Bhc3NfZHNwX21hc2tbXQorICAgPSB7MHhmZiwgMHgwZiwgMHhmZiwgMHgzMywgMHhmZiwgMHg1NSwgMHhmZn07CiAKICNlbmRpZgogCkBAIC02MjUsNyArNjI2LDcgQEAKIHBuZ19nZXRfY29weXJpZ2h0KHBuZ19zdHJ1Y3RwIHBuZ19wdHIpCiB7CiAgICBpZiAocG5nX3B0ciAhPSBOVUxMIHx8IHBuZ19wdHIgPT0gTlVMTCkgIC8qIHNpbGVuY2UgY29tcGlsZXIgd2FybmluZyAqLwotICAgcmV0dXJuICgocG5nX2NoYXJwKSAiXG4gbGlicG5nIHZlcnNpb24gMS4wLjggLSBKdWx5IDI0LCAyMDAwXG5cCisgICByZXR1cm4gKChwbmdfY2hhcnApICJcbiBsaWJwbmcgdmVyc2lvbiAxLjAuOWJldGExIC0gTm92ZW1iZXIgMTAsIDIwMDBcblwKICAgIENvcHlyaWdodCAoYykgMTk5OC0yMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvblxuXAogICAgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyXG5cCiAgICBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuXG4iKTsKQEAgLTY0Myw4ICs2NDQsOCBAQAogewogICAgLyogVmVyc2lvbiBvZiAqLmMgZmlsZXMgdXNlZCB3aGVuIGJ1aWxkaW5nIGxpYnBuZyAqLwogICAgaWYocG5nX3B0ciAhPSBOVUxMKSAvKiBzaWxlbmNlIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgdW51c2VkIHBuZ19wdHIgKi8KLSAgICAgIHJldHVybigocG5nX2NoYXJwKSAiMS4wLjgiKTsKLSAgIHJldHVybigocG5nX2NoYXJwKSAiMS4wLjgiKTsKKyAgICAgIHJldHVybigocG5nX2NoYXJwKSAiMS4wLjliZXRhMSIpOworICAgcmV0dXJuKChwbmdfY2hhcnApICIxLjAuOWJldGExIik7CiB9CiAKIHBuZ19jaGFycCBQTkdBUEkKQEAgLTY4OSw5ICs2OTAsMTAgQEAKICAgIHJldHVybiAoaW5mbGF0ZVJlc2V0KCZwbmdfcHRyLT56c3RyZWFtKSk7CiB9CiAKKy8qIFRoaXMgZnVuY3Rpb24gd2FzIGFkZGVkIHRvIGxpYnBuZy0xLjAuNyAqLwogcG5nX3VpbnRfMzIgUE5HQVBJCiBwbmdfYWNjZXNzX3ZlcnNpb25fbnVtYmVyKHZvaWQpCiB7CiAgICAvKiBWZXJzaW9uIG9mICouYyBmaWxlcyB1c2VkIHdoZW4gYnVpbGRpbmcgbGlicG5nICovCi0gICByZXR1cm4oKHBuZ191aW50XzMyKSAxMDAwOEwpOworICAgcmV0dXJuKChwbmdfdWludF8zMikgMTAwMDlMKTsKIH0KZGlmZiAtLWdpdCBhL3BuZy5oIGIvcG5nLmgKaW5kZXggMGQ4ZTBkYy4uZjI1ZTVlYiAxMDA2NDQKLS0tIGEvcG5nLmgKKysrIGIvcG5nLmgKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZy5oIC0gaGVhZGVyIGZpbGUgZm9yIFBORyByZWZlcmVuY2UgbGlicmFyeQogICoKLSAqIGxpYnBuZyB2ZXJzaW9uIDEuMC44IC0gSnVseSAyNCwgMjAwMAorICogbGlicG5nIHZlcnNpb24gMS4wLjliZXRhMSAtIE5vdmVtYmVyIDEwLCAyMDAwCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKICAqIChWZXJzaW9uIDAuODggQ29weXJpZ2h0IChjKSAxOTk1LCAxOTk2IEd1eSBFcmljIFNjaGFsbmF0LCBHcm91cCA0MiwgSW5jLikKQEAgLTksNyArOSw3IEBACiAgKiBBdXRob3JzIGFuZCBtYWludGFpbmVyczoKICAqICBsaWJwbmcgdmVyc2lvbnMgMC43MSwgTWF5IDE5OTUsIHRocm91Z2ggMC44OCwgSmFudWFyeSAxOTk2OiBHdXkgU2NoYWxuYXQKICAqICBsaWJwbmcgdmVyc2lvbnMgMC44OWMsIEp1bmUgMTk5NiwgdGhyb3VnaCAwLjk2LCBNYXkgMTk5NzogQW5kcmVhcyBEaWxnZXIKLSAqICBsaWJwbmcgdmVyc2lvbnMgMC45NywgSmFudWFyeSAxOTk4LCB0aHJvdWdoIDEuMC44IC0gSnVseSAyNCwgMjAwMDogR2xlbm4KKyAqICBsaWJwbmcgdmVyc2lvbnMgMC45NywgSmFudWFyeSAxOTk4LCB0aHJvdWdoIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMDogR2xlbm4KICAqICBTZWUgYWxzbyAiQ29udHJpYnV0aW5nIEF1dGhvcnMiLCBiZWxvdy4KICAqCiAgKiBOb3RlIGFib3V0IGxpYnBuZyB2ZXJzaW9uIG51bWJlcnM6CkBAIC01OCw2ICs1OCw3IEBACiAgKiAgICAxLjAuOGJldGExLTQgICAgICAgICAgICAgICAgICAxMDAwOCAgMi4xLjAuOGJldGExLTQKICAqICAgIDEuMC44cmMxICAgICAgICAgICAgICAgICAgICAgIDEwMDA4ICAyLjEuMC44cmMxCiAgKiAgICAxLjAuOCAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwOCAgMi4xLjAuOAorICogICAgMS4wLjliZXRhMSAgICAgICAgICAgICAgICAgICAgMTAwMDkgIDIuMS4wLjkKICAqCiAgKiAgICBIZW5jZWZvcnRoIHRoZSBzb3VyY2UgdmVyc2lvbiB3aWxsIG1hdGNoIHRoZSBzaGFyZWQtbGlicmFyeSBtYWpvcgogICogICAgYW5kIG1pbm9yIG51bWJlcnM7IHRoZSBzaGFyZWQtbGlicmFyeSBtYWpvciB2ZXJzaW9uIG51bWJlciB3aWxsIGJlCkBAIC04NCw3ICs4NSw3IEBACiAgKiBJZiB5b3UgbW9kaWZ5IGxpYnBuZyB5b3UgbWF5IGluc2VydCBhZGRpdGlvbmFsIG5vdGljZXMgaW1tZWRpYXRlbHkgZm9sbG93aW5nCiAgKiB0aGlzIHNlbnRlbmNlLgogICoKLSAqIGxpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoICAxLjAuOCwgSnVseSAyNCwgMjAwMCwgYXJlCisgKiBsaWJwbmcgdmVyc2lvbnMgMS4wLjcsIEp1bHkgMSwgMjAwMCwgdGhyb3VnaCAgMS4wLjliZXRhMSwgTm92ZW1iZXIgMTAsIDIwMDAsIGFyZQogICogQ29weXJpZ2h0IChjKSAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbiwgYW5kIGFyZQogICogZGlzdHJpYnV0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzYW1lIGRpc2NsYWltZXIgYW5kIGxpY2Vuc2UgYXMgbGlicG5nLTEuMC42CiAgKiB3aXRoIHRoZSBmb2xsb3dpbmcgaW5kaXZpZHVhbHMgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgQ29udHJpYnV0aW5nIEF1dGhvcnMKQEAgLTE4OSwxMyArMTkwLDEzIEBACiAgKiBZMksgY29tcGxpYW5jZSBpbiBsaWJwbmc6CiAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09CiAgKgotICogICAgSnVseSAyNCwgMjAwMAorICogICAgTm92ZW1iZXIgMTAsIDIwMDAKICAqCiAgKiAgICBTaW5jZSB0aGUgUE5HIERldmVsb3BtZW50IGdyb3VwIGlzIGFuIGFkLWhvYyBib2R5LCB3ZSBjYW4ndCBtYWtlCiAgKiAgICBhbiBvZmZpY2lhbCBkZWNsYXJhdGlvbi4KICAqCiAgKiAgICBUaGlzIGlzIHlvdXIgdW5vZmZpY2lhbCBhc3N1cmFuY2UgdGhhdCBsaWJwbmcgZnJvbSB2ZXJzaW9uIDAuNzEgYW5kCi0gKiAgICB1cHdhcmQgdGhyb3VnaCAxLjAuOCBhcmUgWTJLIGNvbXBsaWFudC4gIEl0IGlzIG15IGJlbGllZiB0aGF0IGVhcmxpZXIKKyAqICAgIHVwd2FyZCB0aHJvdWdoIDEuMC45YmV0YTEgYXJlIFkySyBjb21wbGlhbnQuICBJdCBpcyBteSBiZWxpZWYgdGhhdCBlYXJsaWVyCiAgKiAgICB2ZXJzaW9ucyB3ZXJlIGFsc28gWTJLIGNvbXBsaWFudC4KICAqCiAgKiAgICBMaWJwbmcgb25seSBoYXMgdGhyZWUgeWVhciBmaWVsZHMuICBPbmUgaXMgYSAyLWJ5dGUgdW5zaWduZWQgaW50ZWdlcgpAQCAtMjUxLDI0ICsyNTIsMjQgQEAKICAqLwogCiAvKiBWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBwbmcuaCAtIHRoaXMgc2hvdWxkIG1hdGNoIHRoZSB2ZXJzaW9uIGluIHBuZy5jICovCi0jZGVmaW5lIFBOR19MSUJQTkdfVkVSX1NUUklORyAiMS4wLjgiCisjZGVmaW5lIFBOR19MSUJQTkdfVkVSX1NUUklORyAiMS4wLjliZXRhMSIKIAogI2RlZmluZSBQTkdfTElCUE5HX1ZFUl9TT05VTSAgIDIKIAogLyogVGhlc2Ugc2hvdWxkIG1hdGNoIHRoZSBmaXJzdCAzIGNvbXBvbmVudHMgb2YgUE5HX0xJQlBOR19WRVJfU1RSSU5HOiAqLwogI2RlZmluZSBQTkdfTElCUE5HX1ZFUl9NQUpPUiAgIDEKICNkZWZpbmUgUE5HX0xJQlBOR19WRVJfTUlOT1IgICAwCi0jZGVmaW5lIFBOR19MSUJQTkdfVkVSX1JFTEVBU0UgOAorI2RlZmluZSBQTkdfTElCUE5HX1ZFUl9SRUxFQVNFIDkKIC8qIFRoaXMgc2hvdWxkIG1hdGNoIHRoZSBudW1lcmljIHBhcnQgb2YgdGhlIGZpbmFsIGNvbXBvbmVudCBvZgogICogUE5HX0xJQlBOR19WRVJfU1RSSU5HLCBvbWl0dGluZyBhbnkgbGVhZGluZyB6ZXJvOiAqLwotI2RlZmluZSBQTkdfTElCUE5HX1ZFUl9CVUlMRCAgIDAKKyNkZWZpbmUgUE5HX0xJQlBOR19WRVJfQlVJTEQgICAxCiAKIC8qIENhcmVmdWwgaGVyZS4gIEF0IG9uZSB0aW1lLCBHdXkgd2FudGVkIHRvIHVzZSAwODIsIGJ1dCB0aGF0IHdvdWxkIGJlIG9jdGFsLgogICogV2UgbXVzdCBub3QgaW5jbHVkZSBsZWFkaW5nIHplcm9zLgogICogVmVyc2lvbnMgMC43IHRocm91Z2ggMS4wLjAgd2VyZSBpbiB0aGUgcmFuZ2UgMCB0byAxMDAgaGVyZSAob25seQogICogdmVyc2lvbiAxLjAuMCB3YXMgbWlzLW51bWJlcmVkIDEwMCBpbnN0ZWFkIG9mIDEwMDAwKS4gIEZyb20KICAqIHZlcnNpb24gMS4wLjEgaXQncyAgICB4eHl5enosIHdoZXJlIHg9bWFqb3IsIHk9bWlub3IsIHo9cmVsZWFzZSAqLwotI2RlZmluZSBQTkdfTElCUE5HX1ZFUiAxMDAwOCAvKiAxLjAuOCAqLworI2RlZmluZSBQTkdfTElCUE5HX1ZFUiAxMDAwOSAvKiAxLjAuOSAqLwogCiAvKiBOb3RlIHRvIG1haW50YWluZXI6IHVwZGF0ZSB0aGlzIG51bWJlciBpbiBzY3JpcHRzL3BuZ2RlZi5wYXMgYXMgd2VsbCAqLwogCkBAIC0zMDIsOCArMzAzLDggQEAKICAqIHRoZSB2ZXJzaW9uIGFib3ZlLgogICovCiAjaWZkZWYgUE5HX1VTRV9HTE9CQUxfQVJSQVlTCi1QTkdfRVhQT1JUX1ZBUiAoY2hhcikgcG5nX2xpYnBuZ192ZXJbMTJdOyAvKiBuZWVkIHJvb20gZm9yIDk5Ljk5Ljk5LXBhdGNoLWFhMCovCi0gIC8qIE5vdGUgdG8gbWFpbnRhaW5lcjogaW5jcmVhc2UgdG8gMTggYXQgdGhlIG5leHQgb3Bwb3J0dW5pdHkgKi8KK1BOR19FWFBPUlRfVkFSIChjb25zdCBjaGFyKSBwbmdfbGlicG5nX3ZlclsxOF07CisgIC8qIG5lZWQgcm9vbSBmb3IgOTkuOTkuOTliZXRhOTl6Ki8KICNlbHNlCiAjZGVmaW5lIHBuZ19saWJwbmdfdmVyIHBuZ19nZXRfaGVhZGVyX3ZlcihOVUxMKQogI2VuZGlmCkBAIC0zMTEsMTcgKzMxMiwxNyBAQAogI2lmZGVmIFBOR19VU0VfR0xPQkFMX0FSUkFZUwogLyogVGhpcyB3YXMgcmVtb3ZlZCBpbiB2ZXJzaW9uIDEuMC41YyAqLwogLyogU3RydWN0dXJlcyB0byBmYWNpbGl0YXRlIGVhc3kgaW50ZXJsYWNpbmcuICBTZWUgcG5nLmMgZm9yIG1vcmUgZGV0YWlscyAqLwotUE5HX0VYUE9SVF9WQVIgKGludCBGQVJEQVRBKSBwbmdfcGFzc19zdGFydFs3XTsKLVBOR19FWFBPUlRfVkFSIChpbnQgRkFSREFUQSkgcG5nX3Bhc3NfaW5jWzddOwotUE5HX0VYUE9SVF9WQVIgKGludCBGQVJEQVRBKSBwbmdfcGFzc195c3RhcnRbN107Ci1QTkdfRVhQT1JUX1ZBUiAoaW50IEZBUkRBVEEpIHBuZ19wYXNzX3lpbmNbN107Ci1QTkdfRVhQT1JUX1ZBUiAoaW50IEZBUkRBVEEpIHBuZ19wYXNzX21hc2tbN107Ci1QTkdfRVhQT1JUX1ZBUiAoaW50IEZBUkRBVEEpIHBuZ19wYXNzX2RzcF9tYXNrWzddOworUE5HX0VYUE9SVF9WQVIgKGNvbnN0IGludCBGQVJEQVRBKSBwbmdfcGFzc19zdGFydFs3XTsKK1BOR19FWFBPUlRfVkFSIChjb25zdCBpbnQgRkFSREFUQSkgcG5nX3Bhc3NfaW5jWzddOworUE5HX0VYUE9SVF9WQVIgKGNvbnN0IGludCBGQVJEQVRBKSBwbmdfcGFzc195c3RhcnRbN107CitQTkdfRVhQT1JUX1ZBUiAoY29uc3QgaW50IEZBUkRBVEEpIHBuZ19wYXNzX3lpbmNbN107CitQTkdfRVhQT1JUX1ZBUiAoY29uc3QgaW50IEZBUkRBVEEpIHBuZ19wYXNzX21hc2tbN107CitQTkdfRVhQT1JUX1ZBUiAoY29uc3QgaW50IEZBUkRBVEEpIHBuZ19wYXNzX2RzcF9tYXNrWzddOwogI2lmZGVmIFBOR19IQVZFX0FTU0VNQkxFUl9DT01CSU5FX1JPVwotZXh0ZXJuIGludCBGQVJEQVRBIHBuZ19wYXNzX3dpZHRoWzddOyAgIC8qIG5vdyB1c2VkIGluIHBuZ3ZjcmQuYywgcG5nZ2NjcmQuYyAqLworUE5HX0VYUE9SVF9WQVIgKGNvbnN0IGludCBGQVJEQVRBKSBwbmdfcGFzc193aWR0aFs3XTsKICNlbmRpZgogLyogVGhpcyBpc24ndCBjdXJyZW50bHkgdXNlZC4gIElmIHlvdSBuZWVkIGl0LCBzZWUgcG5nLmMgZm9yIG1vcmUgZGV0YWlscy4KLWV4dGVybiBpbnQgRkFSREFUQSBwbmdfcGFzc19oZWlnaHRbN107CitQTkdfRVhQT1JUX1ZBUiAoY29uc3QgaW50IEZBUkRBVEEpIHBuZ19wYXNzX2hlaWdodFs3XTsKICovCiAjZW5kaWYKIApAQCAtNTIzLDYgKzUyNCw3IEBACiAgICBwbmdfdWludF8xNiBudW1fdHJhbnM7ICAgLyogbnVtYmVyIG9mIHRyYW5zcGFyZW50IHBhbGV0dGUgY29sb3IgKHRSTlMpICovCiAgICBwbmdfYnl0ZSBiaXRfZGVwdGg7ICAgICAgLyogMSwgMiwgNCwgOCwgb3IgMTYgYml0cy9jaGFubmVsIChmcm9tIElIRFIpICovCiAgICBwbmdfYnl0ZSBjb2xvcl90eXBlOyAgICAgLyogc2VlIFBOR19DT0xPUl9UWVBFXyBiZWxvdyAoZnJvbSBJSERSKSAqLworICAgLyogVGhlIGZvbGxvd2luZyB0aHJlZSBzaG91bGQgaGF2ZSBiZWVuIG5hbWVkICpfbWV0aG9kIG5vdCAqX3R5cGUgKi8KICAgIHBuZ19ieXRlIGNvbXByZXNzaW9uX3R5cGU7IC8qIG11c3QgYmUgUE5HX0NPTVBSRVNTSU9OX1RZUEVfQkFTRSAoSUhEUikgKi8KICAgIHBuZ19ieXRlIGZpbHRlcl90eXBlOyAgICAvKiBtdXN0IGJlIFBOR19GSUxURVJfVFlQRV9CQVNFIChmcm9tIElIRFIpICovCiAgICBwbmdfYnl0ZSBpbnRlcmxhY2VfdHlwZTsgLyogT25lIG9mIFBOR19JTlRFUkxBQ0VfTk9ORSwgUE5HX0lOVEVSTEFDRV9BREFNNyAqLwpAQCAtNzY0LDYgKzc2Niw5IEBACiAjZGVmaW5lIFBOR19DT0xPUl9UWVBFX1JHQiAgICAgICAgKFBOR19DT0xPUl9NQVNLX0NPTE9SKQogI2RlZmluZSBQTkdfQ09MT1JfVFlQRV9SR0JfQUxQSEEgIChQTkdfQ09MT1JfTUFTS19DT0xPUiB8IFBOR19DT0xPUl9NQVNLX0FMUEhBKQogI2RlZmluZSBQTkdfQ09MT1JfVFlQRV9HUkFZX0FMUEhBIChQTkdfQ09MT1JfTUFTS19BTFBIQSkKKy8qIGFsaWFzZXMgKi8KKyNkZWZpbmUgUE5HX0NPTE9SX1RZUEVfUkdCQSAgUE5HX0NPTE9SX1RZUEVfUkdCX0FMUEhBCisjZGVmaW5lIFBOR19DT0xPUl9UWVBFX0dBICBQTkdfQ09MT1JfVFlQRV9HUkFZX0FMUEhBCiAKIC8qIFRoaXMgaXMgZm9yIGNvbXByZXNzaW9uIHR5cGUuIFBORyAxLjAtMS4yIG9ubHkgZGVmaW5lIHRoZSBzaW5nbGUgdHlwZS4gKi8KICNkZWZpbmUgUE5HX0NPTVBSRVNTSU9OX1RZUEVfQkFTRSAwIC8qIERlZmxhdGUgbWV0aG9kIDgsIDMySyB3aW5kb3cgKi8KQEAgLTkwNCw2ICs5MDksMTAgQEAKICNkZWZpbmUgUE5HX1RSQU5TRk9STV9JTlZFUlRfQUxQSEEgICAweDA0MDAgICAgLyogcmVhZCBhbmQgd3JpdGUgKi8KICNkZWZpbmUgUE5HX1RSQU5TRk9STV9TVFJJUF9GSUxMRVIgICAweDA4MDAgICAgLyogV1JJVEUgb25seSAqLwogCisvKiBGbGFncyBmb3IgTU5HIHN1cHBvcnRlZCBmZWF0dXJlcyAqLworI2RlZmluZSBQTkdfRkxBR19NTkdfRU1QVFlfUExURSAweDAxCisjZGVmaW5lIFBOR19BTExfTU5HX0ZFQVRVUkVTICAgIDB4MDEKKwogdHlwZWRlZiBwbmdfdm9pZHAgKCpwbmdfbWFsbG9jX3B0cikgUE5HQVJHKChwbmdfc3RydWN0cCwgcG5nX3NpemVfdCkpOwogdHlwZWRlZiB2b2lkICgqcG5nX2ZyZWVfcHRyKSBQTkdBUkcoKHBuZ19zdHJ1Y3RwLCBwbmdfdm9pZHApKTsKIApAQCAtMTEzNyw5ICsxMTQ2LDExIEBACiAgICBwbmdfdWludF8xNiByZ2JfdG9fZ3JheV9ibHVlX2NvZWZmOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKFBOR19SRUFEX0VNUFRZX1BMVEVfU1VQUE9SVEVEKSB8fCBcCisjaWYgZGVmaW5lZChQTkdfTU5HX0ZFQVRVUkVTX1NVUFBPUlRFRCkgfHwgXAorICAgIGRlZmluZWQoUE5HX1JFQURfRU1QVFlfUExURV9TVVBQT1JURUQpIHx8IFwKICAgICBkZWZpbmVkKFBOR19XUklURV9FTVBUWV9QTFRFX1NVUFBPUlRFRCkKLSAgIHBuZ19ieXRlIGVtcHR5X3BsdGVfcGVybWl0dGVkOworLyogTm90ZSB0byBtYWludGFpbmVyOiBjaGFuZ2UgdGhpcyB0byBwbmdfdWludF8zMiBhdCBuZXh0IG9wcG9ydHVuaXR5ICovCisgICBwbmdfYnl0ZSBtbmdfZmVhdHVyZXNfcGVybWl0dGVkOwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKFBOR19SRUFEX0dBTU1BX1NVUFBPUlRFRCkgfHwgZGVmaW5lZChQTkdfUkVBRF9CQUNLR1JPVU5EX1NVUFBPUlRFRCkKQEAgLTExNDksOSArMTE2MCw5IEBACiB9OwogCiAvKiBUaGlzIHByZXZlbnRzIGEgY29tcGlsZXIgZXJyb3IgaW4gcG5nX2dldF9jb3B5cmlnaHQoKSBpbiBwbmcuYyBpZiBwbmcuYwotYW5kIHBuZy5oIGFyZSBib3RoIGF0ICogdmVyc2lvbiAxLjAuOAorYW5kIHBuZy5oIGFyZSBib3RoIGF0ICogdmVyc2lvbiAxLjAuOWJldGExCiAgKi8KLXR5cGVkZWYgcG5nX3N0cnVjdHAgdmVyc2lvbl8xXzBfODsKK3R5cGVkZWYgcG5nX3N0cnVjdHAgdmVyc2lvbl8xXzBfOWJldGExOwogCiB0eXBlZGVmIHBuZ19zdHJ1Y3QgRkFSICogRkFSICogcG5nX3N0cnVjdHBwOwogCkBAIC0xMzg3LDYgKzEzOTgsNyBAQAogI2lmIGRlZmluZWQoUE5HX1JFQURfRU1QVFlfUExURV9TVVBQT1JURUQpIHx8IFwKICAgICBkZWZpbmVkKFBOR19XUklURV9FTVBUWV9QTFRFX1NVUFBPUlRFRCkKIC8qIFBlcm1pdCBvciBkaXNhbGxvdyBlbXB0eSBQTFRFICgwOiBub3QgcGVybWl0dGVkLCAxOiBwZXJtaXR0ZWQpICovCisvKiBEZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuICBVc2UgcG5nX3Blcm1pdF9tbmdfZmVhdHVyZXMoKSBpbnN0ZWFkLiAqLwogZXh0ZXJuIFBOR19FWFBPUlQodm9pZCxwbmdfcGVybWl0X2VtcHR5X3BsdGUpIFBOR0FSRygocG5nX3N0cnVjdHAgcG5nX3B0ciwKICAgIGludCBlbXB0eV9wbHRlX3Blcm1pdHRlZCkpOwogI2VuZGlmCkBAIC0xOTI4LDEyICsxOTQwLDEzIEBACiAKIGV4dGVybiBQTkdfRVhQT1JUKHBuZ191aW50XzMyLHBuZ19nZXRfSUhEUikgUE5HQVJHKChwbmdfc3RydWN0cCBwbmdfcHRyLAogICAgcG5nX2luZm9wIGluZm9fcHRyLCBwbmdfdWludF8zMiAqd2lkdGgsIHBuZ191aW50XzMyICpoZWlnaHQsCi0gICBpbnQgKmJpdF9kZXB0aCwgaW50ICpjb2xvcl90eXBlLCBpbnQgKmludGVybGFjZV90eXBlLAotICAgaW50ICpjb21wcmVzc2lvbl90eXBlLCBpbnQgKmZpbHRlcl90eXBlKSk7CisgICBpbnQgKmJpdF9kZXB0aCwgaW50ICpjb2xvcl90eXBlLCBpbnQgKmludGVybGFjZV9tZXRob2QsCisgICBpbnQgKmNvbXByZXNzaW9uX21ldGhvZCwgaW50ICpmaWx0ZXJfbWV0aG9kKSk7CiAKIGV4dGVybiBQTkdfRVhQT1JUKHZvaWQscG5nX3NldF9JSERSKSBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsCiAgICBwbmdfaW5mb3AgaW5mb19wdHIsIHBuZ191aW50XzMyIHdpZHRoLCBwbmdfdWludF8zMiBoZWlnaHQsIGludCBiaXRfZGVwdGgsCi0gICBpbnQgY29sb3JfdHlwZSwgaW50IGludGVybGFjZV90eXBlLCBpbnQgY29tcHJlc3Npb25fdHlwZSwgaW50IGZpbHRlcl90eXBlKSk7CisgICBpbnQgY29sb3JfdHlwZSwgaW50IGludGVybGFjZV9tZXRob2QsIGludCBjb21wcmVzc2lvbl9tZXRob2QsCisgICBpbnQgZmlsdGVyX21ldGhvZCkpOwogCiAjaWYgZGVmaW5lZChQTkdfUkVBRF9vRkZzX1NVUFBPUlRFRCkKIGV4dGVybiBQTkdfRVhQT1JUKHBuZ191aW50XzMyLHBuZ19nZXRfb0ZGcykgUE5HQVJHKChwbmdfc3RydWN0cCBwbmdfcHRyLApAQCAtMjExNywxMSArMjEzMCwxMSBAQAogZXh0ZXJuIFBOR19FWFBPUlQodm9pZCwgcG5nX3JlYWRfcG5nKSBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICBwbmdfaW5mb3AgaW5mb19wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdHJhbnNmb3JtcywKLSAgICAgICAgICAgICAgICAgICAgICAgIHZvaWRwIHBhcmFtcykpOworICAgICAgICAgICAgICAgICAgICAgICAgcG5nX3ZvaWRwIHBhcmFtcykpOwogZXh0ZXJuIFBOR19FWFBPUlQodm9pZCwgcG5nX3dyaXRlX3BuZykgUE5HQVJHKChwbmdfc3RydWN0cCBwbmdfcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgcG5nX2luZm9wIGluZm9fcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRyYW5zZm9ybXMsCi0gICAgICAgICAgICAgICAgICAgICAgICB2b2lkcCBwYXJhbXMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBuZ192b2lkcCBwYXJhbXMpKTsKICNlbmRpZgogCiAvKiBEZWZpbmUgUE5HX0RFQlVHIGF0IGNvbXBpbGUgdGltZSBmb3IgZGVidWdnaW5nIGluZm9ybWF0aW9uLiAgSGlnaGVyCkBAIC0yMTgyLDggKzIxOTUsMTMgQEAKIGV4dGVybiBQTkdfRVhQT1JUKHBuZ19jaGFycCxwbmdfZ2V0X2hlYWRlcl92ZXJzaW9uKSBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIpKTsKIGV4dGVybiBQTkdfRVhQT1JUKHBuZ19jaGFycCxwbmdfZ2V0X2xpYnBuZ192ZXIpIFBOR0FSRygocG5nX3N0cnVjdHAgcG5nX3B0cikpOwogCisjaWZkZWYgUE5HX01OR19GRUFUVVJFU19TVVBQT1JURUQKK2V4dGVybiBQTkdfRVhQT1JUKHBuZ191aW50XzMyLHBuZ19wZXJtaXRfbW5nX2ZlYXR1cmVzKSBQTkdBUkcoKHBuZ19zdHJ1Y3RwCisgICBwbmdfcHRyLCBwbmdfdWludF8zMiBtbmdfZmVhdHVyZXNfcGVybWl0dGVkKSk7CisjZW5kaWYKKwogI2RlZmluZSBQTkdfSEVBREVSX1ZFUlNJT05fU1RSSU5HIFwKLSAgICIgbGlicG5nIHZlcnNpb24gMS4wLjggLSBKdWx5IDI0LCAyMDAwIChoZWFkZXIpXG4iCisgICAiIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMCAoaGVhZGVyKVxuIgogCiAjaWZkZWYgUE5HX1JFQURfQ09NUE9TSVRFX05PRElWX1NVUFBPUlRFRAogLyogV2l0aCB0aGVzZSByb3V0aW5lcyB3ZSBhdm9pZCBhbiBpbnRlZ2VyIGRpdmlkZSwgd2hpY2ggd2lsbCBiZSBzbG93ZXIgb24KQEAgLTIzMzAsNyArMjM0OCw3IEBACiAjaWYgIWRlZmluZWQoUE5HX05PX0VYVEVSTikgfHwgZGVmaW5lZChQTkdfQUxXQVlTX0VYVEVSTikKIC8qIHBsYWNlIHRvIGhvbGQgdGhlIHNpZ25hdHVyZSBzdHJpbmcgZm9yIGEgUE5HIGZpbGUuICovCiAjaWZkZWYgUE5HX1VTRV9HTE9CQUxfQVJSQVlTCi0gICBQTkdfRVhQT1JUX1ZBUiAocG5nX2J5dGUgRkFSREFUQSkgcG5nX3NpZ1s4XTsKKyAgIFBOR19FWFBPUlRfVkFSIChjb25zdCBwbmdfYnl0ZSBGQVJEQVRBKSBwbmdfc2lnWzhdOwogI2Vsc2UKICNkZWZpbmUgcG5nX3NpZyBwbmdfc2lnX2J5dGVzKE5VTEwpCiAjZW5kaWYKQEAgLTI1MTYsOCArMjUzNCw4IEBACiAgKi8KIFBOR19FWFRFUk4gdm9pZCBwbmdfd3JpdGVfSUhEUiBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ191aW50XzMyIHdpZHRoLAogICAgcG5nX3VpbnRfMzIgaGVpZ2h0LAotICAgaW50IGJpdF9kZXB0aCwgaW50IGNvbG9yX3R5cGUsIGludCBjb21wcmVzc2lvbl90eXBlLCBpbnQgZmlsdGVyX3R5cGUsCi0gICBpbnQgaW50ZXJsYWNlX3R5cGUpKTsKKyAgIGludCBiaXRfZGVwdGgsIGludCBjb2xvcl90eXBlLCBpbnQgY29tcHJlc3Npb25fbWV0aG9kLCBpbnQgZmlsdGVyX21ldGhvZCwKKyAgIGludCBpbnRlcmxhY2VfbWV0aG9kKSk7CiAKIFBOR19FWFRFUk4gdm9pZCBwbmdfd3JpdGVfUExURSBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19jb2xvcnAgcGFsZXR0ZSwKICAgIHBuZ191aW50XzMyIG51bV9wYWwpKTsKZGlmZiAtLWdpdCBhL3BuZ2FzbXJkLmggYi9wbmdhc21yZC5oCmluZGV4IDM1ZmUzYjIuLjlhZWE2NmMgMTAwNjQ0Ci0tLSBhL3BuZ2FzbXJkLmgKKysrIGIvcG5nYXNtcmQuaApAQCAtMSw2ICsxLDYgQEAKIC8qIHBuZ2FzbXJkLmggLSBhc3NlbWJsZXIgdmVyc2lvbiBvZiB1dGlsaXRpZXMgdG8gcmVhZCBhIFBORyBmaWxlCiAgKgotICogbGlicG5nIDEuMC44IC0gSnVseSAyNCwgMjAwMAorICogbGlicG5nIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMAogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKgpkaWZmIC0tZ2l0IGEvcG5nY29uZi5oIGIvcG5nY29uZi5oCmluZGV4IDY0ODYxNTkuLjE5YmFiYTAgMTAwNjQ0Ci0tLSBhL3BuZ2NvbmYuaAorKysgYi9wbmdjb25mLmgKQEAgLTEsNiArMSw2IEBACiAvKiBwbmdjb25mLmggLSBtYWNoaW5lIGNvbmZpZ3VyYWJsZSBmaWxlIGZvciBsaWJwbmcKICAqCi0gKiBsaWJwbmcgMS4wLjggLSBKdWx5IDI0LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMSAtIE5vdmVtYmVyIDEwLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpAQCAtMzk4LDYgKzM5OCw3IEBACiAjZGVmaW5lIFBOR19OT19XUklURV9VU0VSX1RSQU5TRk9STQogI2RlZmluZSBQTkdfTk9fVVNFUl9NRU0KICNkZWZpbmUgUE5HX05PX1JFQURfRU1QVFlfUExURQorI2RlZmluZSBQTkdfTk9fTU5HX0ZFQVRVUkVTCiAjZGVmaW5lIFBOR19OT19GSVhFRF9QT0lOVF9TVVBQT1JURUQKICNlbmRpZgogCkBAIC00OTAsOCArNDkxLDEyIEBACiAjZW5kaWYKICNlbmRpZgogCisjaWZuZGVmIFBOR19OT19NTkdfRkVBVFVSRVMKKyNkZWZpbmUgUE5HX01OR19GRUFUVVJFU19TVVBQT1JURUQgIC8qIFVzZWZ1bCBmb3IgTU5HIGFwcGxpY2F0aW9ucyAqLworI2VuZGlmCisvKiBEZXByZWNhdGVkLCB3aWxsIGJlIHJlbW92ZWQgKi8KICNpZm5kZWYgUE5HX05PX1JFQURfRU1QVFlfUExURQotI2RlZmluZSBQTkdfUkVBRF9FTVBUWV9QTFRFX1NVUFBPUlRFRCAgLyogdXNlZnVsIGZvciBNTkcgYXBwbGljYXRpb25zICovCisjZGVmaW5lIFBOR19SRUFEX0VNUFRZX1BMVEVfU1VQUE9SVEVECiAjZW5kaWYKIAogI2lmZGVmIFBOR19XUklURV9UUkFOU0ZPUk1TX1NVUFBPUlRFRApAQCAtNTQ3LDggKzU1Miw5IEBACiAjZGVmaW5lIFBOR19XUklURV9GTFVTSF9TVVBQT1JURUQKICNlbmRpZgogCisvKiBEZXByZWNhdGVkLCBzZWUgUE5HX01OR19GRUFUVVJFU19TVVBQT1JURUQsIGFib3ZlICovCiAjaWZuZGVmIFBOR19OT19XUklURV9FTVBUWV9QTFRFCi0jZGVmaW5lIFBOR19XUklURV9FTVBUWV9QTFRFX1NVUFBPUlRFRCAgLyogdXNlZnVsIGZvciBNTkcgYXBwbGljYXRpb25zICovCisjZGVmaW5lIFBOR19XUklURV9FTVBUWV9QTFRFX1NVUFBPUlRFRAogI2VuZGlmCiAKICNpZm5kZWYgUE5HX05PX1NURElPCkBAIC0xMTMyLDYgKzExMzgsMTMgQEAKICNlbmRpZgogI2VuZGlmCiAKKyNpZm5kZWYgUE5HQVBJCisjICBkZWZpbmUgUE5HQVBJCisjZW5kaWYKKyNpZm5kZWYgUE5HX0lNUEVYUAorIyAgZGVmaW5lIFBOR19JTVBFWFAKKyNlbmRpZgorCiAjaWZuZGVmIFBOR19FWFBPUlQKICMgIGRlZmluZSBQTkdfRVhQT1JUKHR5cGUsc3ltYm9sKSBQTkdfSU1QRVhQIHR5cGUgUE5HQVBJIHN5bWJvbAogI2VuZGlmCmRpZmYgLS1naXQgYS9wbmdlcnJvci5jIGIvcG5nZXJyb3IuYwppbmRleCAzZTQyMTBmLi5kOGE1YTM3IDEwMDY0NAotLS0gYS9wbmdlcnJvci5jCisrKyBiL3BuZ2Vycm9yLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ2Vycm9yLmMgLSBzdHViIGZ1bmN0aW9ucyBmb3IgaS9vIGFuZCBtZW1vcnkgYWxsb2NhdGlvbgogICoKLSAqIGxpYnBuZyAxLjAuOCAtIEp1bHkgMjQsIDIwMDAKKyAqIGxpYnBuZyAxLjAuOWJldGExIC0gTm92ZW1iZXIgMTAsIDIwMDAKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCmRpZmYgLS1naXQgYS9wbmdnY2NyZC5jIGIvcG5nZ2NjcmQuYwppbmRleCBlYTRmOTcyLi41MTNkZTlhIDEwMDY0NAotLS0gYS9wbmdnY2NyZC5jCisrKyBiL3BuZ2djY3JkLmMKQEAgLTYsMTQgKzYsMTQgQEAKICAqICAgICBhbmQgaHR0cDovL3d3dy5pbnRlbC5jb20vZHJnL3BlbnRpdW1JSS9hcHBub3Rlcy85MjMvOTIzLmh0bQogICogICAgIGZvciBJbnRlbCdzIHBlcmZvcm1hbmNlIGFuYWx5c2lzIG9mIHRoZSBNTVggdnMuIG5vbi1NTVggY29kZS4KICAqCi0gKiBsaWJwbmcgdmVyc2lvbiAxLjAuOCAtIEp1bHkgMjQsIDIwMDAKKyAqIGxpYnBuZyAxLjAuOWJldGExIC0gTm92ZW1iZXIgMTAsIDIwMDAKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogQ29weXJpZ2h0IChjKSAxOTk4LCBJbnRlbCBDb3Jwb3JhdGlvbgogICoKICAqIEJhc2VkIG9uIE1TVkMgY29kZSBjb250cmlidXRlZCBieSBOaXJhdiBDaGhhdHJhcGF0aSwgSW50ZWwgQ29ycC4sIDE5OTguCiAgKiBJbnRlcmZhY2UgdG8gbGlicG5nIGNvbnRyaWJ1dGVkIGJ5IEdpbGxlcyBWb2xsYW50LCAxOTk5LgotICogR05VIEMgcG9ydCBieSBHcmVnIFJvZWxvZnMsIDE5OTkuCisgKiBHTlUgQyBwb3J0IGJ5IEdyZWcgUm9lbG9mcywgMTk5OS0yMDAwLgogICoKICAqIExpbmVzIDIzNTAtNDMwMCBjb252ZXJ0ZWQgaW4gcGxhY2Ugd2l0aCBpbnRlbDJnYXMgMS4zLjE6CiAgKgpAQCAtNDMsOCArNDMsOCBAQAogICovCiAKIC8qCi0gKiBOT1RFUyAobW9zdGx5IGJ5IEdyZWcgUm9lbG9mcykKLSAqID09PT09CisgKiBURU1QT1JBUlkgUE9SVElORyBOT1RFUyBBTkQgQ0hBTkdFTE9HIChtb3N0bHkgYnkgR3JlZyBSb2Vsb2ZzKQorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICoKICAqIDE5OTkxMDA2OgogICogIC0gZml4ZWQgc2lnbiBlcnJvciBpbiBwb3N0LU1NWCBjbGVhbnVwIGNvZGUgKDE2LSAmIDMyLWJpdCBjYXNlcykKQEAgLTU1LDEzICs1NSwxMyBAQAogICogICAgIC0gd3JpdGUgTU1YIGNvZGUgZm9yIDQ4LWJpdCBjYXNlIChwaXhlbF9ieXRlcyA9PSA2KQogICogICAgIC0gZmlndXJlIG91dCB3aGF0J3MgdXAgd2l0aCAyNC1iaXQgY2FzZSAocGl4ZWxfYnl0ZXMgPT0gMyk6CiAgKiAgICAgICAgd2h5IHN1YnRyYWN0IDggZnJvbSB3aWR0aF9tbXggaW4gdGhlIHBhc3MgNC81IGNhc2U/Ci0gKiAgICAgICAgKG9ubHkgd2lkdGhfbW14IGNhc2UpCisgKiAgICAgICAgKG9ubHkgd2lkdGhfbW14IGNhc2UpIChuZWFyIGxpbmUgMTYwNikKICAqICAgICB4IFtET05FXSByZXBsYWNlIHBpeGVsX2J5dGVzIHdpdGhpbiBlYWNoIGJsb2NrIHdpdGggdGhlIHRydWUKICAqICAgICAgICBjb25zdGFudCB2YWx1ZSAob3IgYXJlIGNvbXBpbGVycyBzbWFydCBlbm91Z2ggdG8gZG8gdGhhdD8pCiAgKiAgICAgLSByZXdyaXRlIGFsbCBNTVggaW50ZXJsYWNpbmcgY29kZSBzbyBpdCdzIGFsaWduZWQgd2l0aAogICogICAgICAgIHRoZSAqYmVnaW5uaW5nKiBvZiB0aGUgcm93IGJ1ZmZlciwgbm90IHRoZSBlbmQuICBUaGlzCiAgKiAgICAgICAgd291bGQgbm90IG9ubHkgYWxsb3cgb25lIHRvIGVsaW1pbmF0ZSBoYWxmIG9mIHRoZSBtZW1vcnkKLSAqICAgICAgICB3cml0ZXMgZm9yIG9kZCBwYXNzZXMgKGkuZS4sIHBhc3MgPT0gb2RkKSwgaXQgbWF5IGFsc28KKyAqICAgICAgICB3cml0ZXMgZm9yIG9kZCBwYXNzZXMgKHRoYXQgaXMsIHBhc3MgPT0gb2RkKSwgaXQgbWF5IGFsc28KICAqICAgICAgICBlbGltaW5hdGUgc29tZSB1bmFsaWduZWQtZGF0YS1hY2Nlc3MgZXhjZXB0aW9ucyAoYXNzdW1pbmcKICAqICAgICAgICB0aGVyZSdzIGEgcGVuYWx0eSBmb3Igbm90IGFsaWduaW5nIDY0LWJpdCBhY2Nlc3NlcyBvbgogICogICAgICAgIDY0LWJpdCBib3VuZGFyaWVzKS4gIFRoZSBvbmx5IGNhdGNoIGlzIHRoYXQgdGhlICJsZWZ0b3ZlciIKQEAgLTExMyw3ICsxMTMsNyBAQAogICoKICAqIDE5OTkxMTA3OgogICogIC0gdmVyaWZpZWQgQ1BVSUQgY2xvYmJlcmFnZTogIDEyLWNoYXIgc3RyaW5nIGNvbnN0YW50ICgiR2VudWluZUludGVsIiwKLSAqICAgICAiQXV0aGVudGljQU1EIiwgZXRjLikgcGxhY2VkIGluIEVCWDpFQ1g6RURYLiAgU3RpbGwgbmVlZCB0byBwb2xpc2guCisgKiAgICAgIkF1dGhlbnRpY0FNRCIsIGV0Yy4pIHBsYWNlZCBpbiBlYng6ZWN4OmVkeC4gIFN0aWxsIG5lZWQgdG8gcG9saXNoLgogICoKICAqIDE5OTkxMTIwOgogICogIC0gbWFkZSAiZGlmZiIgdmFyaWFibGUgKG5vdyAiX2RpZiIpIGdsb2JhbCB0byBzaW1wbGlmeSBjb252ZXJzaW9uIG9mCkBAIC0xMjMsMTQgKzEyMywxNCBAQAogICogICAgIG1hY3JvIGRldGVybWluZXMgd2hpY2ggaXMgdXNlZCk7IG9yaWdpbmFsIG5vdCB5ZXQgdGVzdGVkLgogICoKICAqIDIwMDAwMjEzOgotICogIC0gV2hlbiBjb21waWxpbmcgd2l0aCBnY2MsIGJlIHN1cmUgdG8gdXNlICAtZm9taXQtZnJhbWUtcG9pbnRlcgorICogIC0gd2hlbiBjb21waWxpbmcgd2l0aCBnY2MsIGJlIHN1cmUgdG8gdXNlICAtZm9taXQtZnJhbWUtcG9pbnRlcgogICoKICAqIDIwMDAwMzE5OgogICogIC0gZml4ZWQgYSByZWdpc3Rlci1uYW1lIHR5cG8gaW4gcG5nX2RvX3JlYWRfaW50ZXJsYWNlKCksIGRlZmF1bHQgKE1NWCkgY2FzZSwKICAqICAgICBwYXNzID09IDQgb3IgNSwgdGhhdCBjYXVzZWQgdmlzaWJsZSBjb3JydXB0aW9uIG9mIGludGVybGFjZWQgaW1hZ2VzCiAgKgogICogMjAwMDA2MjM6Ci0gKiAgLSAgVmFyaW91cyBwcm9ibGVtcyB3ZXJlIHJlcG9ydGVkIHdpdGggZ2NjIDIuOTUuMiBpbiB0aGUgQ3lnd2luIGVudmlyb25tZW50LAorICogIC0gVmFyaW91cyBwcm9ibGVtcyB3ZXJlIHJlcG9ydGVkIHdpdGggZ2NjIDIuOTUuMiBpbiB0aGUgQ3lnd2luIGVudmlyb25tZW50LAogICogICAgIG1hbnkgb2YgdGhlIGZvcm0gImZvcmJpZGRlbiByZWdpc3RlciAwIChheCkgd2FzIHNwaWxsZWQgZm9yIGNsYXNzIEFSRUcuIgogICogICAgIFRoaXMgaXMgZXhwbGFpbmVkIGF0IGh0dHA6Ly9nY2MuZ251Lm9yZy9mb21fc2Vydi9jYWNoZS8yMy5odG1sLCBhbmQKICAqICAgICBDaHVjayBXaWxzb24gc3VwcGxpZWQgYSBwYXRjaCBpbnZvbHZpbmcgZHVtbXkgb3V0cHV0IHJlZ2lzdGVycy4gIFNlZQpAQCAtMTQ3LDEwICsxNDcsNzggQEAKICAqICAgICAgIHBuZ2djY3JkLmM6MTE3NzogbW9yZSB0aGFuIDEwIG9wZXJhbmRzIGluIGBhc20nCiAgKiAgICAgVGhleSBhcmUgYWxsIHRoZSBzYW1lIHByb2JsZW0gYW5kIGNhbiBiZSB3b3JrZWQgYXJvdW5kIGJ5IHVzaW5nIHRoZQogICogICAgIGdsb2JhbCBfdW5tYXNrIHZhcmlhYmxlIHVuY29uZGl0aW9uYWxseSwgbm90IGp1c3QgaW4gdGhlIC1mUElDIGNhc2UuCi0gKiAgICAgQXBwYXJlbnRseSBlYXJsaWVyIHZlcnNpb25zIG9mIGdjYyBhbHNvIGhhdmUgdGhlIHByb2JsZW0gd2l0aCBtb3JlIHRoYW4KKyAqICAgICBSZXBvcnRlZGx5IGVhcmxpZXIgdmVyc2lvbnMgb2YgZ2NjIGFsc28gaGF2ZSB0aGUgcHJvYmxlbSB3aXRoIG1vcmUgdGhhbgogICogICAgIDEwIG9wZXJhbmRzOyB0aGV5IGp1c3QgZG9uJ3QgcmVwb3J0IGl0LiAgTXVjaCBzdHJhbmdlbmVzcyBlbnN1ZXMsIGV0Yy4KKyAqCisgKiAyMDAwMDcyOToKKyAqICAtIGVuYWJsZWQgcG5nX3JlYWRfZmlsdGVyX3Jvd19tbXhfdXAoKSAoc2hvcnRlc3QgcmVtYWluaW5nIHVuY29udmVydGVkCisgKiAgICAgTU1YIHJvdXRpbmUpOyBiZWdhbiBjb252ZXJ0aW5nIHBuZ19yZWFkX2ZpbHRlcl9yb3dfbW14X3N1YigpCisgKiAgLSB0byBmaW5pc2ggcmVtYWluaW5nIHNlY3Rpb25zOgorICogICAgIC0gY2xlYW4gdXAgaW5kZW50YXRpb24gYW5kIGNvbW1lbnRzCisgKiAgICAgLSBwcmVsb2FkIGxvY2FsIHZhcmlhYmxlcworICogICAgIC0gYWRkIG91dHB1dCBhbmQgaW5wdXQgcmVncyAob3JkZXIgb2YgZm9ybWVyIGRldGVybWluZXMgbnVtZXJpY2FsCisgKiAgICAgICAgbWFwcGluZyBvZiBsYXR0ZXIpCisgKiAgICAgLSBhdm9pZCBhbGwgdXNhZ2Ugb2YgZWJ4IChpbmNsdWRpbmcgYngsIGJoLCBibCkgcmVnaXN0ZXIgWzIwMDAwODIzXQorICogICAgIC0gcmVtb3ZlICIkIiBmcm9tIGFkZHJlc3Npbmcgb2YgU2hpZnQgYW5kIE1hc2sgdmFyaWFibGVzIFsyMDAwMDgyM10KKyAqCisgKiAyMDAwMDczMToKKyAqICAtIGdsb2JhbCB1bmlvbiB2YXJzIGNhdXNpbmcgc2VnZmF1bHRzIGluIHBuZ19yZWFkX2ZpbHRlcl9yb3dfbW14X3N1YigpPworICoKKyAqIDIwMDAwODIyOgorICogIC0gQVJHSCwgc3R1cGlkIHBuZ19yZWFkX2ZpbHRlcl9yb3dfbW14X3N1YigpIHNlZ2ZhdWx0IG9ubHkgaGFwcGVucyB3aXRoCisgKiAgICAgc2hhcmVkLWxpYnJhcnkgKC1mUElDKSB2ZXJzaW9uISAgQ29kZSB3b3JrcyBqdXN0IGZpbmUgYXMgcGFydCBvZiBzdGF0aWMKKyAqICAgICBsaWJyYXJ5LiAgRGFtbiBkYW1uIGRhbW4gZGFtbiBkYW1uLCBzaG91bGQgaGF2ZSB0ZXN0ZWQgdGhhdCBzb29uZXIuCisgKiAgICAgZWJ4IGlzIGdldHRpbmcgY2xvYmJlcmVkIGFnYWluIChleHBsaWNpdGx5IHRoaXMgdGltZSk7IG5lZWQgdG8gc2F2ZSBpdAorICogICAgIG9uIHN0YWNrIG9yIHJld3JpdGUgYXNtIGNvZGUgdG8gYXZvaWQgdXNpbmcgaXQgYWx0b2dldGhlci4gIEJsYXJnaCEKKyAqCisgKiAyMDAwMDgyMzoKKyAqICAtIGZpcnN0IHNlY3Rpb24gd2FzIHRyaWNraWVzdDsgYWxsIHJlbWFpbmluZyBzZWN0aW9ucyBoYXZlIGVieCAtPiBlZHggbm93LgorICogICAgICgtZlBJQyB3b3JrcyBhZ2Fpbi4pICBBbHNvIGFkZGVkIG1pc3NpbmcgdW5kZXJzY29yZXMgdG8gdmFyaW91cyBTaGlmdCoKKyAqICAgICBhbmQgKk1hc2sqIGdsb2JhbHMgYW5kIGdvdCByaWQgb2YgbGVhZGluZyAiJCIgc2lnbnMuCisgKgorICogMjAwMDA4MjY6CisgKiAgLSBhZGRlZCB2aXN1YWwgc2VwYXJhdG9ycyB0byBoZWxwIG5hdmlnYXRlIG1pY3Jvc2NvcGljIHByaW50ZWQgY29waWVzCisgKiAgICAgKGh0dHA6Ly9wb2JveC5jb20vfm5ld3QvY29kZS9ncHItbGF0ZXN0LnppcCwgbW9kZSAxMCk7IHN0YXJ0ZWQgd29ya2luZworICogICAgIG9uIHBuZ19yZWFkX2ZpbHRlcl9yb3dfbW14X2F2ZygpCisgKgorICogMjAwMDA4Mjg6CisgKiAgLSBmaW5pc2hlZCBwbmdfcmVhZF9maWx0ZXJfcm93X21teF9hdmcoKTogIG9ubHkgUGFldGggbGVmdCEgKDkzMCBsaW5lcy4uLikKKyAqICAgICBXaGF0IHRoZSBoZWxsLCBkaWQgcG5nX3JlYWRfZmlsdGVyX3Jvd19tbXhfcGFldGgoKSwgdG9vLiAgQ29tbWVudHMgbm90CisgKiAgICAgY2xlYW5lZCB1cC9zaG9ydGVuZWQgaW4gZWl0aGVyIHJvdXRpbmUsIGJ1dCBmdW5jdGlvbmFsaXR5IGlzIGNvbXBsZXRlCisgKiAgICAgYW5kIHNlZW1zIHRvIGJlIHdvcmtpbmcgZmluZS4KKyAqCisgKiAyMDAwMDgyOToKKyAqICAtIGFoaGgsIGZpZ3VyZWQgb3V0IGxhc3QoPykgYml0IG9mIGdjYy9nYXMgYXNtLWZ1OiAgaWYgcmVnaXN0ZXIgaXMgbGlzdGVkCisgKiAgICAgYXMgYW4gaW5wdXQgcmVnICh3aXRoIGR1bW15IG91dHB1dCB2YXJpYWJsZXMsIGV0Yy4pLCB0aGVuIGl0ICpjYW5ub3QqCisgKiAgICAgYWxzbyBhcHBlYXIgaW4gdGhlIGNsb2JiZXIgbGlzdCBvciBnY2MgMi45NS4yIHdpbGwgYmFyZi4gIFRoZSBzb2x1dGlvbgorICogICAgIGlzIHNpbXBsZSBlbm91Z2guLi4KKyAqCisgKiAyMDAwMDkxNDoKKyAqICAtIGJ1ZyBpbiBwbmdfcmVhZF9maWx0ZXJfcm93X21teF9hdmcoKTogIDE2LWJpdCBncmF5c2NhbGUgbm90IGhhbmRsZWQKKyAqICAgICBjb3JyZWN0bHkgKGJ1dCA0OC1iaXQgUkdCIGp1c3QgZmluZSkKKyAqCisgKiAyMDAwMDkxNjoKKyAqICAtIGZpeGVkIGJ1ZyBpbiBwbmdfcmVhZF9maWx0ZXJfcm93X21teF9hdmcoKSwgYnBwID09IDIgY2FzZTsgdGhyZWUgZXJyb3JzOiAgCisgKiAgICAgLSAiX1NoaWZ0QnBwLnVzZSA9IDI0OyIgICAgICBzaG91bGQgaGF2ZSBiZWVuICAgIl9TaGlmdEJwcC51c2UgPSAxNjsiCisgKiAgICAgLSAiX1NoaWZ0UmVtLnVzZSA9IDQwOyIgICAgICBzaG91bGQgaGF2ZSBiZWVuICAgIl9TaGlmdFJlbS51c2UgPSA0ODsiCisgKiAgICAgLSAicHNsbHEgX1NoaWZ0UmVtLCAlJW1tMiIgICBzaG91bGQgaGF2ZSBiZWVuICAgInBzcmxxIF9TaGlmdFJlbSwgJSVtbTIiCisgKgorICogU1RJTEwgVE8gRE86CisgKiAgICAgLSB0ZXN0IHBuZ19kb19yZWFkX2ludGVybGFjZSgpIDY0LWJpdCBjYXNlIChwaXhlbF9ieXRlcyA9PSA4KQorICogICAgIC0gd3JpdGUgTU1YIGNvZGUgZm9yIDQ4LWJpdCBjYXNlIChwaXhlbF9ieXRlcyA9PSA2KQorICogICAgIC0gZmlndXJlIG91dCB3aGF0J3MgdXAgd2l0aCAyNC1iaXQgY2FzZSAocGl4ZWxfYnl0ZXMgPT0gMyk6CisgKiAgICAgICAgd2h5IHN1YnRyYWN0IDggZnJvbSB3aWR0aF9tbXggaW4gdGhlIHBhc3MgNC81IGNhc2U/CisgKiAgICAgICAgKG9ubHkgd2lkdGhfbW14IGNhc2UpIChuZWFyIGxpbmUgMTYwNikKKyAqICAgICAtIHJld3JpdGUgYWxsIE1NWCBpbnRlcmxhY2luZyBjb2RlIHNvIGl0J3MgYWxpZ25lZCB3aXRoIGJlZ2lubmluZworICogICAgICAgIG9mIHRoZSByb3cgYnVmZmVyLCBub3QgdGhlIGVuZCAoc2VlIDE5OTkxMDA3IGZvciBkZXRhaWxzKQorICogICAgIC0gcGljayBvbmUgdmVyc2lvbiBvZiBtbXhzdXBwb3J0KCkgYW5kIGdldCByaWQgb2YgdGhlIG90aGVyCisgKiAgICAgLSBhZGQgZXJyb3IgbWVzc2FnZXMgdG8gYW55IHJlbWFpbmluZyBib2d1cyBkZWZhdWx0IGNhc2VzCisgKiAgICAgLSBlbmFibGUgcGl4ZWxfZGVwdGggPT0gOCBjYXNlcyBpbiBwbmdfcmVhZF9maWx0ZXJfcm93KCk/ICh0ZXN0IHNwZWVkKQorICogICAgIC0gYWRkIHN1cHBvcnQgZm9yIHJ1bnRpbWUgZW5hYmxlL2Rpc2FibGUvcXVlcnkgb2YgdmFyaW91cyBNTVggcm91dGluZXMKICAqLwogCisvLyNkZWZpbmUgUE5HX0RFQlVHIDIgICAvLyBHUlIKKwogI2RlZmluZSBQTkdfSU5URVJOQUwKICNpbmNsdWRlICJwbmcuaCIKIApAQCAtMTYxLDM2ICsyMjksNDYgQEAKIHN0YXRpYyBpbnQgbW14X3N1cHBvcnRlZCA9IDI7CiAKICNpZmRlZiBQTkdfVVNFX0xPQ0FMX0FSUkFZUwotc3RhdGljIGNvbnN0IGludCBwbmdfcGFzc19zdGFydFs3XSA9IHswLCA0LCAwLCAyLCAwLCAxLCAwfTsKLXN0YXRpYyBjb25zdCBpbnQgcG5nX3Bhc3NfaW5jWzddICAgPSB7OCwgOCwgNCwgNCwgMiwgMiwgMX07Ci1zdGF0aWMgY29uc3QgaW50IHBuZ19wYXNzX3dpZHRoWzddID0gezgsIDQsIDQsIDIsIDIsIDEsIDF9Oworc3RhdGljIGNvbnN0IGludCBGQVJEQVRBIHBuZ19wYXNzX3N0YXJ0WzddID0gezAsIDQsIDAsIDIsIDAsIDEsIDB9Oworc3RhdGljIGNvbnN0IGludCBGQVJEQVRBIHBuZ19wYXNzX2luY1s3XSAgID0gezgsIDgsIDQsIDQsIDIsIDIsIDF9Oworc3RhdGljIGNvbnN0IGludCBGQVJEQVRBIHBuZ19wYXNzX3dpZHRoWzddID0gezgsIDQsIDQsIDIsIDIsIDEsIDF9OwogI2VuZGlmCiAKIC8vIGRqZ3BwLCBXaW4zMiwgYW5kIEN5Z3dpbiBhZGQgdGhlaXIgb3duIHVuZGVyc2NvcmVzIHRvIGdsb2JhbCB2YXJpYWJsZXMsCiAvLyBzbyBkZWZpbmUgdGhlbSB3aXRob3V0OgogI2lmIGRlZmluZWQoX19ESkdQUF9fKSB8fCBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9fQ1lHV0lOX18pCi0jICBkZWZpbmUgX3VubWFzayAgICAgIHVubWFzawotIyAgZGVmaW5lIF9jb25zdDQgICAgICBjb25zdDQKLSMgIGRlZmluZSBfY29uc3Q2ICAgICAgY29uc3Q2Ci0jICBkZWZpbmUgX21hc2s4XzAgICAgIG1hc2s4XzAgIAotIyAgZGVmaW5lIF9tYXNrMTZfMSAgICBtYXNrMTZfMSAKLSMgIGRlZmluZSBfbWFzazE2XzAgICAgbWFzazE2XzAgCi0jICBkZWZpbmUgX21hc2syNF8yICAgIG1hc2syNF8yIAotIyAgZGVmaW5lIF9tYXNrMjRfMSAgICBtYXNrMjRfMSAKLSMgIGRlZmluZSBfbWFzazI0XzAgICAgbWFzazI0XzAgCi0jICBkZWZpbmUgX21hc2szMl8zICAgIG1hc2szMl8zIAotIyAgZGVmaW5lIF9tYXNrMzJfMiAgICBtYXNrMzJfMiAKLSMgIGRlZmluZSBfbWFzazMyXzEgICAgbWFzazMyXzEgCi0jICBkZWZpbmUgX21hc2szMl8wICAgIG1hc2szMl8wIAotIyAgZGVmaW5lIF9tYXNrNDhfNSAgICBtYXNrNDhfNSAKLSMgIGRlZmluZSBfbWFzazQ4XzQgICAgbWFzazQ4XzQgCi0jICBkZWZpbmUgX21hc2s0OF8zICAgIG1hc2s0OF8zIAotIyAgZGVmaW5lIF9tYXNrNDhfMiAgICBtYXNrNDhfMiAKLSMgIGRlZmluZSBfbWFzazQ4XzEgICAgbWFzazQ4XzEgCi0jICBkZWZpbmUgX21hc2s0OF8wICAgIG1hc2s0OF8wIAotIyAgZGVmaW5lIF9GdWxsTGVuZ3RoICBGdWxsTGVuZ3RoCi0jICBkZWZpbmUgX01NWExlbmd0aCAgIE1NWExlbmd0aAotIyAgZGVmaW5lIF9kaWYgICAgICAgICBkaWYKKyMgIGRlZmluZSBfdW5tYXNrICAgICAgICAgdW5tYXNrCisjICBkZWZpbmUgX2NvbnN0NCAgICAgICAgIGNvbnN0NAorIyAgZGVmaW5lIF9jb25zdDYgICAgICAgICBjb25zdDYKKyMgIGRlZmluZSBfbWFzazhfMCAgICAgICAgbWFzazhfMCAgCisjICBkZWZpbmUgX21hc2sxNl8xICAgICAgIG1hc2sxNl8xIAorIyAgZGVmaW5lIF9tYXNrMTZfMCAgICAgICBtYXNrMTZfMCAKKyMgIGRlZmluZSBfbWFzazI0XzIgICAgICAgbWFzazI0XzIgCisjICBkZWZpbmUgX21hc2syNF8xICAgICAgIG1hc2syNF8xIAorIyAgZGVmaW5lIF9tYXNrMjRfMCAgICAgICBtYXNrMjRfMCAKKyMgIGRlZmluZSBfbWFzazMyXzMgICAgICAgbWFzazMyXzMgCisjICBkZWZpbmUgX21hc2szMl8yICAgICAgIG1hc2szMl8yIAorIyAgZGVmaW5lIF9tYXNrMzJfMSAgICAgICBtYXNrMzJfMSAKKyMgIGRlZmluZSBfbWFzazMyXzAgICAgICAgbWFzazMyXzAgCisjICBkZWZpbmUgX21hc2s0OF81ICAgICAgIG1hc2s0OF81IAorIyAgZGVmaW5lIF9tYXNrNDhfNCAgICAgICBtYXNrNDhfNCAKKyMgIGRlZmluZSBfbWFzazQ4XzMgICAgICAgbWFzazQ4XzMgCisjICBkZWZpbmUgX21hc2s0OF8yICAgICAgIG1hc2s0OF8yIAorIyAgZGVmaW5lIF9tYXNrNDhfMSAgICAgICBtYXNrNDhfMSAKKyMgIGRlZmluZSBfbWFzazQ4XzAgICAgICAgbWFzazQ4XzAgCisjICBkZWZpbmUgX0Z1bGxMZW5ndGggICAgIEZ1bGxMZW5ndGgKKyMgIGRlZmluZSBfTU1YTGVuZ3RoICAgICAgTU1YTGVuZ3RoCisjICBkZWZpbmUgX2RpZiAgICAgICAgICAgIGRpZgorIyAgZGVmaW5lIF9MQkNhcnJ5TWFzayAgICBMQkNhcnJ5TWFzaworIyAgZGVmaW5lIF9IQkNsZWFyTWFzayAgICBIQkNsZWFyTWFzaworIyAgZGVmaW5lIF9BY3RpdmVNYXNrICAgICBBY3RpdmVNYXNrCisjICBkZWZpbmUgX0FjdGl2ZU1hc2syICAgIEFjdGl2ZU1hc2syCisjICBkZWZpbmUgX0FjdGl2ZU1hc2tFbmQgIEFjdGl2ZU1hc2tFbmQKKyMgIGRlZmluZSBfU2hpZnRCcHAgICAgICAgU2hpZnRCcHAKKyMgIGRlZmluZSBfU2hpZnRSZW0gICAgICAgU2hpZnRSZW0KKyMgIGRlZmluZSBfcGF0ZW1wICAgICAgICAgcGF0ZW1wCisjICBkZWZpbmUgX3BidGVtcCAgICAgICAgIHBidGVtcAorIyAgZGVmaW5lIF9wY3RlbXAgICAgICAgICBwY3RlbXAKICNlbmRpZgogCiAvKiBUaGVzZSBjb25zdGFudHMgYXJlIHVzZWQgaW4gdGhlIGlubGluZWQgTU1YIGFzc2VtYmx5IGNvZGUuCkBAIC0yMzUsNiArMzEzLDkgQEAKIHN0YXRpYyBwbmdfdWludF8zMiAgX0Z1bGxMZW5ndGg7CiBzdGF0aWMgcG5nX3VpbnRfMzIgIF9NTVhMZW5ndGg7CiBzdGF0aWMgaW50ICAgICAgICAgIF9kaWY7CitzdGF0aWMgaW50ICAgICAgICAgIF9wYXRlbXA7CS8vIHRlbXAgdmFyaWFibGVzIGZvciBQYWV0aCByb3V0aW5lCitzdGF0aWMgaW50ICAgICAgICAgIF9wYnRlbXA7CitzdGF0aWMgaW50ICAgICAgICAgIF9wY3RlbXA7CiAKIAogdm9pZCAvKiBQUklWQVRFICovCkBAIC0yNDIsNiArMzIzLDE0IEBACiAgICBwbmdfYnl0ZXAgcm93LCBwbmdfYnl0ZXAgcHJldl9yb3csIGludCBmaWx0ZXIpOwogCiAKKworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgUCBOIEcgXyBDIE8gTSBCIEkgTiBFIF8gUiBPIFcgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS8vCisKICNpZiBkZWZpbmVkKFBOR19IQVZFX0FTU0VNQkxFUl9DT01CSU5FX1JPVykKIAogLyogQ29tYmluZXMgdGhlIHJvdyByZWNlbnRseSByZWFkIGluIHdpdGggdGhlIHByZXZpb3VzIHJvdy4KQEAgLTI2NiwxMCArMzU1LDYgQEAKICAgIGlmIChtbXhfc3VwcG9ydGVkID09IDIpCiAgICAgICAgbW14X3N1cHBvcnRlZCA9IG1teHN1cHBvcnQoKTsKIAotLyoKLWZwcmludGYoc3RkZXJyLCAiR1JSIERFQlVHOiAgcG5nX2NvbWJpbmVfcm93KCkgcGl4ZWxfZGVwdGggPSAlZCwgbWFzayA9IDB4JTAyeCwgdW5tYXNrID0gMHglMDJ4XG4iLCBwbmdfcHRyLT5yb3dfaW5mby5waXhlbF9kZXB0aCwgbWFzaywgfm1hc2spOwotZmZsdXNoKHN0ZGVycik7Ci0gKi8KICAgIGlmIChtYXNrID09IDB4ZmYpCiAgICB7CiAgICAgICBwbmdfbWVtY3B5KHJvdywgcG5nX3B0ci0+cm93X2J1ZiArIDEsCkBAIC01MzMsOSArNjE4LDggQEAKICAgICAgICAgICAgICAgICAgICAgIjIiIChsZW4pLCAgICAgICAgIC8vIGVjeAogICAgICAgICAgICAgICAgICAgICAiMSIgKG1hc2spICAgICAgICAgLy8gZWR4CiAKLS8vICAgICAgICAgICAgICAgICAgOiAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKICNpZiAwICAvKiBNTVggcmVncyAoJW1tMCwgZXRjLikgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLwotICAgICAgICAgICAgICAgICAgOiAiJW1tMCIsICIlbW00IiwgIiVtbTYiLCAiJW1tNyIKKyAgICAgICAgICAgICAgICAgIDogIiVtbTAiLCAiJW1tNCIsICIlbW02IiwgIiVtbTciICAvLyBjbG9iYmVyIGxpc3QKICNlbmRpZgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgIH0KQEAgLTY1MiwyMyArNzM2LDIyIEBACiAgICAgICAgICAgICAgICAgImVuZDE2OiAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBET05FCiAKLSAgICAgICAgICAgICAgICAgIDogIj1hIiAoZHVtbXlfdmFsdWVfYSksICAgICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCi0gICAgICAgICAgICAgICAgICAgICI9ZCIgKGR1bW15X3ZhbHVlX2QpLAorICAgICAgICAgICAgICAgICAgOiAiPWEiIChkdW1teV92YWx1ZV9hKSwgICAgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKICAgICAgICAgICAgICAgICAgICAgIj1jIiAoZHVtbXlfdmFsdWVfYyksCisgICAgICAgICAgICAgICAgICAgICI9ZCIgKGR1bW15X3ZhbHVlX2QpLAogICAgICAgICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKICAgICAgICAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKIAotICAgICAgICAgICAgICAgICAgOiAiMyIgKHNyY3B0ciksICAgICAgLy8gZXNpICAgICAgIC8vIGlucHV0IHJlZ3MKLSAgICAgICAgICAgICAgICAgICAgIjQiIChkc3RwdHIpLCAgICAgIC8vIGVkaQotICAgICAgICAgICAgICAgICAgICAiMCIgKGRpZmYpLCAgICAgICAgLy8gZWF4Ci0vLyB3YXMgKHVubWFzaykgICAgICJiIiAgICBSRVNFUlZFRCAgICAvLyBlYnggICAgICAgLy8gR2xvYmFsIE9mZnNldCBUYWJsZSBpZHgKLSAgICAgICAgICAgICAgICAgICAgIjIiIChsZW4pLCAgICAgICAgIC8vIGVjeAotICAgICAgICAgICAgICAgICAgICAiMSIgKG1hc2spICAgICAgICAgLy8gZWR4CisgICAgICAgICAgICAgICAgICA6ICIwIiAoZGlmZiksICAgICAgICAvLyBlYXggICAgICAgLy8gaW5wdXQgcmVncworLy8gd2FzICh1bm1hc2spICAgICAiICIgICAgUkVTRVJWRUQgICAgLy8gZWJ4ICAgICAgIC8vIEdsb2JhbCBPZmZzZXQgVGFibGUgaWR4CisgICAgICAgICAgICAgICAgICAgICIxIiAobGVuKSwgICAgICAgICAvLyBlY3gKKyAgICAgICAgICAgICAgICAgICAgIjIiIChtYXNrKSwgICAgICAgIC8vIGVkeAorICAgICAgICAgICAgICAgICAgICAiMyIgKHNyY3B0ciksICAgICAgLy8gZXNpCisgICAgICAgICAgICAgICAgICAgICI0IiAoZHN0cHRyKSAgICAgICAvLyBlZGkKIAotLy8gICAgICAgICAgICAgICAgICA6ICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAogI2lmIDAgIC8qIE1NWCByZWdzICglbW0wLCBldGMuKSBub3Qgc3VwcG9ydGVkIGJ5IGdjYyAyLjcuMi4zIG9yIGVnY3MgMS4xICovCi0gICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiLAotICAgICAgICAgICAgICAgICAgICAiJW1tNCIsICIlbW01IiwgIiVtbTYiLCAiJW1tNyIKKyAgICAgICAgICAgICAgICAgIDogIiVtbTAiLCAiJW1tMSIsICIlbW00IiAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKKyAgICAgICAgICAgICAgICAgICwgIiVtbTUiLCAiJW1tNiIsICIlbW03IgogI2VuZGlmCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgfQpAQCAtODAwLDcgKzg4Myw3IEBACiAgICAgICAgICAgICAgICAgImVuZDI0OiAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBET05FCiAKLSAgICAgICAgICAgICAgICAgIDogIj1hIiAoZHVtbXlfdmFsdWVfYSksICAgICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICAgICAgICAgICA6ICI9YSIgKGR1bW15X3ZhbHVlX2EpLCAgICAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQogICAgICAgICAgICAgICAgICAgICAiPWQiIChkdW1teV92YWx1ZV9kKSwKICAgICAgICAgICAgICAgICAgICAgIj1jIiAoZHVtbXlfdmFsdWVfYyksCiAgICAgICAgICAgICAgICAgICAgICI9UyIgKGR1bW15X3ZhbHVlX1MpLApAQCAtODEzLDEwICs4OTYsOSBAQAogICAgICAgICAgICAgICAgICAgICAiMiIgKGxlbiksICAgICAgICAgLy8gZWN4CiAgICAgICAgICAgICAgICAgICAgICIxIiAobWFzaykgICAgICAgICAvLyBlZHgKIAotLy8gICAgICAgICAgICAgICAgICA6ICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAogI2lmIDAgIC8qIE1NWCByZWdzICglbW0wLCBldGMuKSBub3Qgc3VwcG9ydGVkIGJ5IGdjYyAyLjcuMi4zIG9yIGVnY3MgMS4xICovCi0gICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiLCAiJW1tMiIsCi0gICAgICAgICAgICAgICAgICAgICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IgorICAgICAgICAgICAgICAgICAgOiAiJW1tMCIsICIlbW0xIiwgIiVtbTIiICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAorICAgICAgICAgICAgICAgICAgLCAiJW1tNCIsICIlbW01IiwgIiVtbTYiLCAiJW1tNyIKICNlbmRpZgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgIH0KQEAgLTk1NSw3ICsxMDM3LDcgQEAKICAgICAgICAgICAgICAgICAiZW5kMzI6ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICAgIkVNTVMgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIERPTkUKIAotICAgICAgICAgICAgICAgICAgOiAiPWEiIChkdW1teV92YWx1ZV9hKSwgICAgICAgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgICAgICAgICAgIDogIj1hIiAoZHVtbXlfdmFsdWVfYSksICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCiAgICAgICAgICAgICAgICAgICAgICI9ZCIgKGR1bW15X3ZhbHVlX2QpLAogICAgICAgICAgICAgICAgICAgICAiPWMiIChkdW1teV92YWx1ZV9jKSwKICAgICAgICAgICAgICAgICAgICAgIj1TIiAoZHVtbXlfdmFsdWVfUyksCkBAIC05NjgsMTAgKzEwNTAsOSBAQAogICAgICAgICAgICAgICAgICAgICAiMiIgKGxlbiksICAgICAgICAgLy8gZWN4CiAgICAgICAgICAgICAgICAgICAgICIxIiAobWFzaykgICAgICAgICAvLyBlZHgKIAotLy8gICAgICAgICAgICAgICAgICA6ICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAogI2lmIDAgIC8qIE1NWCByZWdzICglbW0wLCBldGMuKSBub3Qgc3VwcG9ydGVkIGJ5IGdjYyAyLjcuMi4zIG9yIGVnY3MgMS4xICovCi0gICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiLCAiJW1tMiIsICIlbW0zIiwKLSAgICAgICAgICAgICAgICAgICAgIiVtbTQiLCAiJW1tNSIsICIlbW02IiwgIiVtbTciCisgICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiLCAiJW1tMiIsICIlbW0zIiAgLy8gY2xvYmJlciBsaXN0CisgICAgICAgICAgICAgICAgICAsICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IgogI2VuZGlmCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgfQpAQCAtMTEyNyw3ICsxMjA4LDcgQEAKICAgICAgICAgICAgICAgICAiZW5kNDg6ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICAgIkVNTVMgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIERPTkUKIAotICAgICAgICAgICAgICAgICAgOiAiPWEiIChkdW1teV92YWx1ZV9hKSwgICAgICAgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgICAgICAgICAgIDogIj1hIiAoZHVtbXlfdmFsdWVfYSksICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCiAgICAgICAgICAgICAgICAgICAgICI9ZCIgKGR1bW15X3ZhbHVlX2QpLAogICAgICAgICAgICAgICAgICAgICAiPWMiIChkdW1teV92YWx1ZV9jKSwKICAgICAgICAgICAgICAgICAgICAgIj1TIiAoZHVtbXlfdmFsdWVfUyksCkBAIC0xMTQwLDEwICsxMjIxLDkgQEAKICAgICAgICAgICAgICAgICAgICAgIjIiIChsZW4pLCAgICAgICAgIC8vIGVjeAogICAgICAgICAgICAgICAgICAgICAiMSIgKG1hc2spICAgICAgICAgLy8gZWR4CiAKLS8vICAgICAgICAgICAgICAgICAgOiAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAogI2lmIDAgIC8qIE1NWCByZWdzICglbW0wLCBldGMuKSBub3Qgc3VwcG9ydGVkIGJ5IGdjYyAyLjcuMi4zIG9yIGVnY3MgMS4xICovCi0gICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiLCAiJW1tMiIsICIlbW0zIiwKLSAgICAgICAgICAgICAgICAgICAgIiVtbTQiLCAiJW1tNSIsICIlbW02IiwgIiVtbTciCisgICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiLCAiJW1tMiIsICIlbW0zIiAgLy8gY2xvYmJlciBsaXN0CisgICAgICAgICAgICAgICAgICAsICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IgogI2VuZGlmCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgfQpAQCAtMTIxNiw2ICsxMjk2LDEzIEBACiAKIAogCisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ly8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAgICBQIE4gRyBfIEQgTyBfIFIgRSBBIEQgXyBJIE4gVCBFIFIgTCBBIEMgRSAgICAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ly8KKwogI2lmIGRlZmluZWQoUE5HX1JFQURfSU5URVJMQUNJTkdfU1VQUE9SVEVEKQogI2lmIGRlZmluZWQoUE5HX0hBVkVfQVNTRU1CTEVSX1JFQURfSU5URVJMQUNFKQogCkBAIC0xMjI3LDQxICsxMzE0LDE3IEBACiBwbmdfZG9fcmVhZF9pbnRlcmxhY2UocG5nX3Jvd19pbmZvcCByb3dfaW5mbywgcG5nX2J5dGVwIHJvdywgaW50IHBhc3MsCiAgICBwbmdfdWludF8zMiB0cmFuc2Zvcm1hdGlvbnMpCiB7Ci0vKgotZnByaW50ZihzdGRlcnIsICJHUlIgREVCVUc6ICBlbnRlcmluZyBwbmdfZG9fcmVhZF9pbnRlcmxhY2UoKVxuIik7Ci1pZiAocm93ID09IE5VTEwpIGZwcmludGYoc3RkZXJyLCAiR1JSIERFQlVHOiAgcm93ID09IE5VTExcbiIpOwotaWYgKHJvd19pbmZvID09IE5VTEwpIGZwcmludGYoc3RkZXJyLCAiR1JSIERFQlVHOiAgcm93X2luZm8gPT0gTlVMTFxuIik7Ci1mZmx1c2goc3RkZXJyKTsKLSAqLwogICAgcG5nX2RlYnVnKDEsImluIHBuZ19kb19yZWFkX2ludGVybGFjZVxuIik7CiAKICAgIGlmIChtbXhfc3VwcG9ydGVkID09IDIpCiAgICAgICAgbW14X3N1cHBvcnRlZCA9IG1teHN1cHBvcnQoKTsKLS8qCi17Ci1mcHJpbnRmKHN0ZGVyciwgIkdSUiBERUJVRzogIGNhbGxpbmcgbW14c3VwcG9ydCgpXG4iKTsKLWZwcmludGYoc3RkZXJyLCAiR1JSIERFQlVHOiAgZG9uZSB3aXRoIG1teHN1cHBvcnQoKSAobW14X3N1cHBvcnRlZCA9ICVkKVxuIiwgbW14X3N1cHBvcnRlZCk7Ci19Ci0gKi8KIAotLyoKLXRoaXMgb25lIGhhcHBlbmVkIG9uIGZpcnN0IHJvdyBkdWUgdG8gd2VpcmRuZXNzIHdpdGggbW14c3VwcG9ydCgpOgotaWYgKHJvdyA9PSBOVUxMKSBmcHJpbnRmKHN0ZGVyciwgIkdSUiBERUJVRzogIG5vdyByb3cgPT0gTlVMTCEhIVxuIik7Ci0gIHJvdyB3YXMgaW4gZWJ4LCBhbmQgZXZlbiB0aG91Z2ggbm90aGluZyB0b3VjaGVkIGVieCwgaXQgc3RpbGwgZ290IHdpcGVkLi4uCi0gIFt3ZWlyZCBzaWRlIGVmZmVjdCBvZiBDUFVJRCBpbnN0cnVjdGlvbj9dCi1pZiAocm93X2luZm8gPT0gTlVMTCkgZnByaW50ZihzdGRlcnIsICJHUlIgREVCVUc6ICBub3cgcm93X2luZm8gPT0gTlVMTCEhIVxuIik7Ci0gKi8KICAgIGlmIChyb3cgIT0gTlVMTCAmJiByb3dfaW5mbyAhPSBOVUxMKQogICAgewogICAgICAgcG5nX3VpbnRfMzIgZmluYWxfd2lkdGg7CiAKICAgICAgIGZpbmFsX3dpZHRoID0gcm93X2luZm8tPndpZHRoICogcG5nX3Bhc3NfaW5jW3Bhc3NdOwogCi0vKgotZnByaW50ZihzdGRlcnIsICJHUlIgREVCVUc6ICBwbmdfZG9fcmVhZF9pbnRlcmxhY2UoKSByb3dfaW5mby0+d2lkdGggPSAlZCwgZmluYWxfd2lkdGggPSAlZFxuIiwgcm93X2luZm8tPndpZHRoLCBmaW5hbF93aWR0aCk7Ci1mcHJpbnRmKHN0ZGVyciwgIkdSUiBERUJVRzogIHBuZ19kb19yZWFkX2ludGVybGFjZSgpIHBpeGVsX2RlcHRoID0gJWRcbiIsIHJvd19pbmZvLT5waXhlbF9kZXB0aCk7Ci1mZmx1c2goc3RkZXJyKTsKLSAqLwogICAgICAgc3dpdGNoIChyb3dfaW5mby0+cGl4ZWxfZGVwdGgpCiAgICAgICB7CiAgICAgICAgICBjYXNlIDE6CkBAIC0xNDY3LDYgKzE1MzAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX2M7ICAgLy8gZml4ICdmb3JiaWRkZW4gcmVnaXN0ZXIgc3BpbGxlZCcKICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9TOwogICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX0Q7CisKICAgICAgICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJsICQyMSwgJSVlZGkgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIChwbmdfcGFzc19pbmNbcGFzc10gLSAxKSpwaXhlbF9ieXRlcwpAQCAtMTQ5Niw3ICsxNTYwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICJqbnogLmxvb3AzX3Bhc3MwICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICAgICAgICAgIkVNTVMgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIERPTkUKIAotICAgICAgICAgICAgICAgICAgICAgICAgOiAiPWMiIChkdW1teV92YWx1ZV9jKSwgICAgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgICAgICAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICI9UyIgKGR1bW15X3ZhbHVlX1MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKQogCkBAIC0xNTA1LDkgKzE1NjksOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAiMCIgKHdpZHRoKSAgICAgIC8vIGVjeAogLy8gZG9lc24ndCB3b3JrICAgICAgICAgICAiaSIgKDB4MDAwMDAwMDAwMEZGRkZGRkxMKSAgIC8vICUxIChhLmsuYS4gX2NvbnN0NCkKIAotLy8gICAgICAgICAgICAgICAgICAgICAgICA6ICAgICAgICAvLyBjbG9iYmVyIGxpc3QKICNpZiAwICAvKiAlbW0wLCAuLi4sICVtbTQgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgOiAiJW1tMCIsICIlbW0xIiwgIiVtbTIiLCAiJW1tMyIsICIlbW00IgorICAgICAgICAgICAgICAgICAgICAgICAgOiAiJW1tMCIsICIlbW0xIiwgIiVtbTIiICAgICAgIC8vIGNsb2JiZXIgbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgLCAiJW1tMyIsICIlbW00IgogI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgfQpAQCAtMTUxNiw2ICsxNTgwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9jOyAgIC8vIGZpeCAnZm9yYmlkZGVuIHJlZ2lzdGVyIHNwaWxsZWQnCiAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfUzsKICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9EOworCiAgICAgICAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCiAgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkOSwgJSVlZGkgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAocG5nX3Bhc3NfaW5jW3Bhc3NdIC0gMSkqcGl4ZWxfYnl0ZXMKQEAgLTE1MzksNyArMTYwNCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAiam56IC5sb29wM19wYXNzMiAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBET05FCiAKLSAgICAgICAgICAgICAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQogICAgICAgICAgICAgICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKIApAQCAtMTU0Nyw5ICsxNjEyLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiIChkcCksICAgICAgICAvLyBlZGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAiICh3aWR0aCkgICAgICAvLyBlY3gKIAotLy8gICAgICAgICAgICAgICAgICAgICAgICA6ICAgICAgICAvLyBjbG9iYmVyIGxpc3QKICNpZiAwICAvKiAlbW0wLCAuLi4sICVtbTIgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgOiAiJW1tMCIsICIlbW0xIiwgIiVtbTIiCisgICAgICAgICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiLCAiJW1tMiIgICAgICAgLy8gY2xvYmJlciBsaXN0CiAjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICB9CkBAIC0xNTY3LDYgKzE2MzEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX2M7ICAvLyBmaXggJ2ZvcmJpZGRlbiByZWdpc3RlciBzcGlsbGVkJwogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX1M7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfRDsKKwogICAgICAgICAgICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YmwgJDMsICUlZXNpICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkOSwgJSVlZGkgICAgICAgICAgXG5cdCIKQEAgLTE1OTMsNyArMTY1OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiam56IC5sb29wM19wYXNzNCAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBET05FCiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKIApAQCAtMTYwMSw5ICsxNjY2LDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiIChkcCksICAgICAgICAvLyBlZGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAiICh3aWR0aF9tbXgpICAvLyBlY3gKIAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgICAgICAvLyBjbG9iYmVyIGxpc3QKICNpZiAwICAvKiAlbW0wLCAuLi4sICVtbTMgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiJW1tMCIsICIlbW0xIiwgIiVtbTIiLCAiJW1tMyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiVtbTAiLCAiJW1tMSIgICAgICAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICwgIiVtbTIiLCAiJW1tMyIKICNlbmRpZgogICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTE2MzgsNiArMTcwMyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfYzsgIC8vIGZpeCAnZm9yYmlkZGVuIHJlZ2lzdGVyIHNwaWxsZWQnCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfUzsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9EOworCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkMywgJSVlc2kgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJsICQzMSwgJSVlZGkgICAgICAgICBcblx0IgpAQCAtMTY2NSw3ICsxNzMxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJqbnogLmxvb3AxX3Bhc3MwICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVNTVMgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIERPTkUKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPWMiIChkdW1teV92YWx1ZV9jKSwgICAgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9UyIgKGR1bW15X3ZhbHVlX1MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKQogCkBAIC0xNjczLDkgKzE3MzksOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMiIgKGRwKSwgICAgICAgIC8vIGVkaQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMCIgKHdpZHRoX21teCkgIC8vIGVjeAogCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAgICAgLy8gY2xvYmJlciBsaXN0CiAjaWYgMCAgLyogJW1tMCwgLi4uLCAlbW00IG5vdCBzdXBwb3J0ZWQgYnkgZ2NjIDIuNy4yLjMgb3IgZWdjcyAxLjEgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiVtbTAiLCAiJW1tMSIsICIlbW0yIiwgIiVtbTMiLCAiJW1tNCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiVtbTAiLCAiJW1tMSIsICIlbW0yIiAgICAgICAvLyBjbG9iYmVyIGxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICwgIiVtbTMiLCAiJW1tNCIKICNlbmRpZgogICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTE3MTgsNiArMTc4NCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfYzsgIC8vIGZpeCAnZm9yYmlkZGVuIHJlZ2lzdGVyIHNwaWxsZWQnCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfUzsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9EOworCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkMywgJSVlc2kgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJsICQxNSwgJSVlZGkgICAgICAgICBcblx0IgpAQCAtMTczNiw3ICsxODAzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJqbnogLmxvb3AxX3Bhc3MyICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVNTVMgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIERPTkUKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPWMiIChkdW1teV92YWx1ZV9jKSwgICAgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9UyIgKGR1bW15X3ZhbHVlX1MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKQogCkBAIC0xNzQ0LDkgKzE4MTEsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMiIgKGRwKSwgICAgICAgIC8vIGVkaQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMCIgKHdpZHRoX21teCkgIC8vIGVjeAogCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAgICAgIC8vIGNsb2JiZXIgbGlzdAogI2lmIDAgIC8qICVtbTAsICVtbTEgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiJW1tMCIsICIlbW0xIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiJW1tMCIsICIlbW0xIiAgICAgICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAogI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMTc3MSw2ICsxODM3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9jOyAgLy8gZml4ICdmb3JiaWRkZW4gcmVnaXN0ZXIgc3BpbGxlZCcKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9TOwogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX0Q7CisKICAgICAgICAgICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJsICQ3LCAlJWVzaSAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YmwgJDE1LCAlJWVkaSAgICAgICAgIFxuXHQiCkBAIC0xNzg4LDcgKzE4NTUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImpueiAubG9vcDFfcGFzczQgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRU1NUyAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gRE9ORQogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKG5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKG5vbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9UyIgKGR1bW15X3ZhbHVlX1MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKQogCkBAIC0xNzk2LDkgKzE4NjMsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMiIgKGRwKSwgICAgICAgIC8vIGVkaQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMCIgKHdpZHRoX21teCkgIC8vIGVjeAogCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAgICAgIC8vIGNsb2JiZXIgbGlzdAogI2lmIDAgIC8qICVtbTAsICVtbTEgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiJW1tMCIsICIlbW0xIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiJW1tMCIsICIlbW0xIiAgICAgICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAogI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMTgyOCw2ICsxODk0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9jOyAgLy8gZml4ICdmb3JiaWRkZW4gcmVnaXN0ZXIgc3BpbGxlZCcKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9TOwogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX0Q7CisKICAgICAgICAgICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJsICQyLCAlJWVzaSAgICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YmwgJDMwLCAlJWVkaSAgICAgICAgIFxuXHQiCkBAIC0xODQ4LDcgKzE5MTUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImpueiAubG9vcDJfcGFzczAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRU1NUyAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gRE9ORQogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPWMiIChkdW1teV92YWx1ZV9jKSwgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1TIiAoZHVtbXlfdmFsdWVfUyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9RCIgKGR1bW15X3ZhbHVlX0QpCiAKQEAgLTE4NTYsOSArMTkyMyw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyIiAoZHApLCAgICAgICAgLy8gZWRpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIwIiAod2lkdGhfbW14KSAgLy8gZWN4CiAKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgICAgICAgLy8gY2xvYmJlciBsaXN0CiAjaWYgMCAgLyogJW1tMCwgJW1tMSBub3Qgc3VwcG9ydGVkIGJ5IGdjYyAyLjcuMi4zIG9yIGVnY3MgMS4xICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiICAgICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CiAjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICB9CkBAIC0xODg3LDYgKzE5NTMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX2M7ICAvLyBmaXggJ2ZvcmJpZGRlbiByZWdpc3RlciBzcGlsbGVkJwogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX1M7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfRDsKKwogICAgICAgICAgICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YmwgJDIsICUlZXNpICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkMTQsICUlZWRpICAgICAgICAgXG5cdCIKQEAgLTE5MDUsNyArMTk3Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiam56IC5sb29wMl9wYXNzMiAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBET05FCiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKIApAQCAtMTkxMyw5ICsxOTgwLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiIChkcCksICAgICAgICAvLyBlZGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAiICh3aWR0aF9tbXgpICAvLyBlY3gKIAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgICAgICAvLyBjbG9iYmVyIGxpc3QKICNpZiAwICAvKiAlbW0wLCAlbW0xIG5vdCBzdXBwb3J0ZWQgYnkgZ2NjIDIuNy4yLjMgb3IgZWdjcyAxLjEgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiVtbTAiLCAiJW1tMSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiVtbTAiLCAiJW1tMSIgICAgICAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKICNlbmRpZgogICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTE5NDQsNiArMjAxMCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfYzsgIC8vIGZpeCAnZm9yYmlkZGVuIHJlZ2lzdGVyIHNwaWxsZWQnCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfUzsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9EOworCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkMiwgJSVlc2kgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJsICQ2LCAlJWVkaSAgICAgICAgICBcblx0IgpAQCAtMTk1OCw3ICsyMDI1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJqbnogLmxvb3AyX3Bhc3M0ICAgICAgICBcblx0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVNTVMgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIERPTkUKIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPWMiIChkdW1teV92YWx1ZV9jKSwgICAgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9UyIgKGR1bW15X3ZhbHVlX1MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKQogCkBAIC0xOTY2LDkgKzIwMzMsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMiIgKGRwKSwgICAgICAgIC8vIGVkaQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMCIgKHdpZHRoX21teCkgIC8vIGVjeAogCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAgICAgIC8vIGNsb2JiZXIgbGlzdAogI2lmIDAgIC8qICVtbTAgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiJW1tMCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiVtbTAiICAgICAgICAgICAgICAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKICNlbmRpZgogICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTE5OTcsMjEgKzIwNjMsMTIgQEAKICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aF9tbXggPSAoKHdpZHRoID4+IDEpIDw8IDEpOwogICAgICAgICAgICAgICAgICAgICAgd2lkdGggLT0gd2lkdGhfbW14OyAgICAgICAgLy8gMCwxIHBpeGVscyA9PiAwLDQgYnl0ZXMKLS8qCi1mcHJpbnRmKHN0ZGVyciwgIkdSUiBERUJVRzogIHBuZ19kb19yZWFkX2ludGVybGFjZSgpIHBhc3MgPSAlZCwgd2lkdGhfbW14ID0gJWQsIHdpZHRoID0gJWRcbiIsIHBhc3MsIHdpZHRoX21teCwgd2lkdGgpOwotZnByaW50ZihzdGRlcnIsICIgICAgICAgICAgICBzcHRyID0gMHglMDhseCwgZHAgPSAweCUwOGx4XG4iLCAodW5zaWduZWQgbG9uZylzcHRyLCAodW5zaWduZWQgbG9uZylkcCk7Ci1mZmx1c2goc3RkZXJyKTsKLSAqLwogICAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoX21teCkKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9jOyAgLy8gZml4ICdmb3JiaWRkZW4gcmVnaXN0ZXIgc3BpbGxlZCcKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9TOwogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX0Q7Ci0jaWZkZWYgR1JSX0RFQlVHCi0gICAgICAgICAgICAgICAgICAgICAgICBGSUxFICpqdW5rID0gZm9wZW4oImp1bmsuNGJ5dGVzIiwgIndiIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoanVuaykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZjbG9zZShqdW5rKTsKLSNlbmRpZiAvKiBHUlJfREVCVUcgKi8KKwogICAgICAgICAgICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YmwgJDQsICUlZXNpICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkNjAsICUlZWRpICAgICAgICAgXG5cdCIKQEAgLTIwMzUsNyArMjA5Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiam56IC5sb29wNF9wYXNzMCAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBET05FCiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKICAKQEAgLTIwNDMsOSArMjEwMCw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyIiAoZHApLCAgICAgICAgLy8gZWRpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIwIiAod2lkdGhfbW14KSAgLy8gZWN4CiAKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgICAgICAgLy8gY2xvYmJlciBsaXN0CiAjaWYgMCAgLyogJW1tMCwgJW1tMSBub3Qgc3VwcG9ydGVkIGJ5IGdjYyAyLjcuMi4zIG9yIGVnY3MgMS4xICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiICAgICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CiAjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICB9CkBAIC0yMDc0LDYgKzIxMzAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX2M7ICAvLyBmaXggJ2ZvcmJpZGRlbiByZWdpc3RlciBzcGlsbGVkJwogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX1M7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfRDsKKwogICAgICAgICAgICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YmwgJDQsICUlZXNpICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkMjgsICUlZWRpICAgICAgICAgXG5cdCIKQEAgLTIwOTMsNyArMjE1MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiam56IC5sb29wNF9wYXNzMiAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBET05FCiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKICAKQEAgLTIxMDEsOSArMjE1OCw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyIiAoZHApLCAgICAgICAgLy8gZWRpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIwIiAod2lkdGhfbW14KSAgLy8gZWN4CiAKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgICAgICAgLy8gY2xvYmJlciBsaXN0CiAjaWYgMCAgLyogJW1tMCwgJW1tMSBub3Qgc3VwcG9ydGVkIGJ5IGdjYyAyLjcuMi4zIG9yIGVnY3MgMS4xICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIlbW0wIiwgIiVtbTEiICAgICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CiAjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICB9CkBAIC0yMTMyLDYgKzIxODgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX2M7ICAvLyBmaXggJ2ZvcmJpZGRlbiByZWdpc3RlciBzcGlsbGVkJwogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX1M7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfRDsKKwogICAgICAgICAgICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YmwgJDQsICUlZXNpICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkMTIsICUlZWRpICAgICAgICAgXG5cdCIKQEAgLTIxNDksNyArMjIwNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiam56IC5sb29wNF9wYXNzNCAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBET05FCiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKIApAQCAtMjE1Nyw5ICsyMjE0LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiIChkcCksICAgICAgICAvLyBlZGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAiICh3aWR0aF9tbXgpICAvLyBlY3gKIAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgICAgICAvLyBjbG9iYmVyIGxpc3QKICNpZiAwICAvKiAlbW0wLCAlbW0xIG5vdCBzdXBwb3J0ZWQgYnkgZ2NjIDIuNy4yLjMgb3IgZWdjcyAxLjEgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiVtbTAiLCAiJW1tMSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiVtbTAiLCAiJW1tMSIgICAgICAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKICNlbmRpZgogICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTIxODEsNTggKzIyMzcsNTAgQEAKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gLyogZW5kIG9mIHBpeGVsX2J5dGVzID09IDQgKi8KIAotI2RlZmluZSBTVElMTF9XT1JLSU5HX09OX1RISVMKLSNpZmRlZiBTVElMTF9XT1JLSU5HX09OX1RISVMgIC8vIEdSUjogc2hvdWxkIHdvcmssIGJ1dCBuZWVkcyB0ZXN0aW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgIChzcGVjaWFsIDY0LWJpdCB2ZXJzaW9uIG9mIHJwbmcyKQotCiAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICBlbHNlIGlmIChwaXhlbF9ieXRlcyA9PSA4KQogICAgICAgICAgICAgICAgeworLy8gR1JSIFRFU1Q6ICBzaG91bGQgd29yaywgYnV0IG5lZWRzIHRlc3RpbmcgKHNwZWNpYWwgNjQtYml0IHZlcnNpb24gb2YgcnBuZzI/KQogICAgICAgICAgICAgICAgICAgLy8gR1JSIE5PVEU6ICBubyBuZWVkIHRvIGNvbWJpbmUgcGFzc2VzIGhlcmUhCiAgICAgICAgICAgICAgICAgICBpZiAoKChwYXNzID09IDApIHx8IChwYXNzID09IDEpKSAmJiB3aWR0aCkKICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9jOyAgLy8gZml4ICdmb3JiaWRkZW4gcmVnaXN0ZXIgc3BpbGxlZCcKKyAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9TOworICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX0Q7CisKICAgICAgICAgICAgICAgICAgICAgIC8vIHNvdXJjZSBpcyA4LWJ5dGUgUlJHR0JCQUEKICAgICAgICAgICAgICAgICAgICAgIC8vIGRlc3QgaXMgNjQtYnl0ZSBSUkdHQkJBQSBSUkdHQkJBQSBSUkdHQkJBQSBSUkdHQkJBQSAuLi4KLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9jOyAgLy8gZml4ICdmb3JiaWRkZW4gcmVnaXN0ZXIgc3BpbGxlZCcKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9TOwotICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX0Q7Ci0jaWZkZWYgR1JSX0RFQlVHCi0gICAgICAgICAgICAgICAgICAgICAgICBGSUxFICpqdW5rID0gZm9wZW4oImp1bmsuOGJ5dGVzIiwgIndiIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoanVuaykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmY2xvc2UoanVuayk7Ci0jZW5kaWYgLyogR1JSX0RFQlVHICovCi0gICAgICAgICAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkNTYsICUlZWRpICAgICAgICAgXG5cdCIgLy8gc3RhcnQgb2YgbGFzdCBibG9jaworICAgICAgICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgICAgICAgICAgICAgICAgICAgInN1YmwgJDU2LCAlJWVkaSAgICAgICAgIFxuXHQiIC8vIHN0YXJ0IG9mIGxhc3QgYmxvY2sKIAotICAgICAgICAgICAgICAgICAgICAgICAgIi5sb29wOF9wYXNzMDogICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAibW92cSAoJSVlc2kpLCAlJW1tMCAgICAgXG5cdCIgLy8gNyA2IDUgNCAzIDIgMSAwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAibW92cSAlJW1tMCwgKCUlZWRpKSAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3ZxICUlbW0wLCA4KCUlZWRpKSAgICBcblx0IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdnEgJSVtbTAsIDE2KCUlZWRpKSAgIFxuXHQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAibW92cSAlJW1tMCwgMjQoJSVlZGkpICAgXG5cdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3ZxICUlbW0wLCAzMiglJWVkaSkgICBcblx0IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdnEgJSVtbTAsIDQwKCUlZWRpKSAgIFxuXHQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAibW92cSAlJW1tMCwgNDgoJSVlZGkpICAgXG5cdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJsICQ4LCAlJWVzaSAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdnEgJSVtbTAsIDU2KCUlZWRpKSAgIFxuXHQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkNjQsICUlZWRpICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWNsICUlZWN4ICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgImpueiAubG9vcDhfcGFzczAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiRU1NUyAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gRE9ORQorICAgICAgICAgICAgICAgICAgICAgIi5sb29wOF9wYXNzMDogICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgICAgICAgICAibW92cSAoJSVlc2kpLCAlJW1tMCAgICAgXG5cdCIgLy8gNyA2IDUgNCAzIDIgMSAwCisgICAgICAgICAgICAgICAgICAgICAgICAibW92cSAlJW1tMCwgKCUlZWRpKSAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAgICAgICAgICJtb3ZxICUlbW0wLCA4KCUlZWRpKSAgICBcblx0IgorICAgICAgICAgICAgICAgICAgICAgICAgIm1vdnEgJSVtbTAsIDE2KCUlZWRpKSAgIFxuXHQiCisgICAgICAgICAgICAgICAgICAgICAgICAibW92cSAlJW1tMCwgMjQoJSVlZGkpICAgXG5cdCIKKyAgICAgICAgICAgICAgICAgICAgICAgICJtb3ZxICUlbW0wLCAzMiglJWVkaSkgICBcblx0IgorICAgICAgICAgICAgICAgICAgICAgICAgIm1vdnEgJSVtbTAsIDQwKCUlZWRpKSAgIFxuXHQiCisgICAgICAgICAgICAgICAgICAgICAgICAibW92cSAlJW1tMCwgNDgoJSVlZGkpICAgXG5cdCIKKyAgICAgICAgICAgICAgICAgICAgICAgICJzdWJsICQ4LCAlJWVzaSAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICAgICAgICAgIm1vdnEgJSVtbTAsIDU2KCUlZWRpKSAgIFxuXHQiCisgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkNjQsICUlZWRpICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICAgICAgICAgICAgICJkZWNsICUlZWN4ICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICAgICAgICAgImpueiAubG9vcDhfcGFzczAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAgICAgICAgICAgICAiRU1NUyAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gRE9ORQogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKKyAgICAgICAgICAgICAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICI9UyIgKGR1bW15X3ZhbHVlX1MpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKQogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIxIiAoc3B0ciksICAgICAgLy8gZXNpICAgICAgLy8gaW5wdXQgcmVncwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMiIgKGRwKSwgICAgICAgIC8vIGVkaQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMCIgKHdpZHRoKSAgICAgIC8vIGVjeAorICAgICAgICAgICAgICAgICAgICAgICAgOiAiMSIgKHNwdHIpLCAgICAgIC8vIGVzaSAgICAgIC8vIGlucHV0IHJlZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiIChkcCksICAgICAgICAvLyBlZGkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIjAiICh3aWR0aCkgICAgICAvLyBlY3gKIAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgICAgICAvLyBjbG9iYmVyIGxpc3QKICNpZiAwICAvKiAlbW0wIG5vdCBzdXBwb3J0ZWQgYnkgZ2NjIDIuNy4yLjMgb3IgZWdjcyAxLjEgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiVtbTAiCisgICAgICAgICAgICAgICAgICAgICAgICA6ICIlbW0wIiAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CiAjZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKChwYXNzID09IDIpIHx8IChwYXNzID09IDMpKSAmJiB3aWR0aCkKICAgICAgICAgICAgICAgICAgIHsKQEAgLTIyNDUsNiArMjI5Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfYzsgIC8vIGZpeCAnZm9yYmlkZGVuIHJlZ2lzdGVyIHNwaWxsZWQnCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHVtbXlfdmFsdWVfUzsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9EOworCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VibCAkMjQsICUlZWRpICAgICAgICAgXG5cdCIgLy8gc3RhcnQgb2YgbGFzdCBibG9jawogCkBAIC0yMjYwLDcgKzIzMDksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImpueiAubG9vcDhfcGFzczIgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRU1NUyAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gRE9ORQogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPWMiIChkdW1teV92YWx1ZV9jKSwgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1TIiAoZHVtbXlfdmFsdWVfUyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9RCIgKGR1bW15X3ZhbHVlX0QpCiAKQEAgLTIyNjgsOSArMjMxNyw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyIiAoZHApLCAgICAgICAgLy8gZWRpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIwIiAod2lkdGgpICAgICAgLy8gZWN4CiAKLS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgICAgICAgLy8gY2xvYmJlciBsaXN0CiAjaWYgMCAgLyogJW1tMCBub3Qgc3VwcG9ydGVkIGJ5IGdjYyAyLjcuMi4zIG9yIGVnY3MgMS4xICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIlbW0wIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiJW1tMCIgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAogI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMjI4Niw2ICsyMzM0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9jOyAgLy8gZml4ICdmb3JiaWRkZW4gcmVnaXN0ZXIgc3BpbGxlZCcKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkdW1teV92YWx1ZV9TOwogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR1bW15X3ZhbHVlX0Q7CisKICAgICAgICAgICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJsICQ4LCAlJWVkaSAgICAgICAgICBcblx0IiAvLyBzdGFydCBvZiBsYXN0IGJsb2NrCiAKQEAgLTIyOTksNyArMjM0OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiam56IC5sb29wOF9wYXNzNCAgICAgICAgXG5cdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBET05FCiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKIApAQCAtMjMwNyw5ICsyMzU2LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiIChkcCksICAgICAgICAvLyBlZGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAiICh3aWR0aCkgICAgICAvLyBlY3gKIAotLy8gICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgICAgICAvLyBjbG9iYmVyIGxpc3QKICNpZiAwICAvKiAlbW0wIG5vdCBzdXBwb3J0ZWQgYnkgZ2NjIDIuNy4yLjMgb3IgZWdjcyAxLjEgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiVtbTAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIlbW0wIiAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CiAjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICB9CkBAIC0yMzE3LDggKzIzNjUsNiBAQAogCiAgICAgICAgICAgICAgICB9IC8qIGVuZCBvZiBwaXhlbF9ieXRlcyA9PSA4ICovCiAKLSNlbmRpZiAvKiBTVElMTF9XT1JLSU5HX09OX1RISVMgKi8KLQogICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgICAgICAgZWxzZSBpZiAocGl4ZWxfYnl0ZXMgPT0gNikKICAgICAgICAgICAgICAgIHsKQEAgLTI0NzcsMTkgKzI1MjMsMzAgQEAKICNlbmRpZiAvKiBQTkdfUkVBRF9JTlRFUkxBQ0lOR19TVVBQT1JURUQgKi8KIAogCisKKwogLy8gVGhlc2UgdmFyaWFibGVzIGFyZSB1dGlsaXplZCBpbiB0aGUgZnVuY3Rpb25zIGJlbG93LiAgVGhleSBhcmUgZGVjbGFyZWQKIC8vIGdsb2JhbGx5IGhlcmUgdG8gZW5zdXJlIGFsaWdubWVudCBvbiA4LWJ5dGUgYm91bmRhcmllcy4KIAogdW5pb24gdUFsbCB7CiAgICBsb25nIGxvbmcgdXNlOwogICAgZG91YmxlICBhbGlnbjsKLX0gTEJDYXJyeU1hc2sgPSB7MHgwMTAxMDEwMTAxMDEwMTAxTEx9LAotICBIQkNsZWFyTWFzayA9IHsweDdmN2Y3ZjdmN2Y3ZjdmN2ZMTH0sCi0gIEFjdGl2ZU1hc2ssIEFjdGl2ZU1hc2syLCBBY3RpdmVNYXNrRW5kLCBTaGlmdEJwcCwgU2hpZnRSZW07Cit9IF9MQkNhcnJ5TWFzayA9IHsweDAxMDEwMTAxMDEwMTAxMDFMTH0sCisgIF9IQkNsZWFyTWFzayA9IHsweDdmN2Y3ZjdmN2Y3ZjdmN2ZMTH0sCisgIF9BY3RpdmVNYXNrLCBfQWN0aXZlTWFzazIsIF9BY3RpdmVNYXNrRW5kLCBfU2hpZnRCcHAsIF9TaGlmdFJlbTsKIAogCisKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy8gICAgICAgICAgIFAgTiBHIF8gUiBFIEEgRCBfIEYgSSBMIFQgRSBSIF8gUiBPIFcgXyBNIE0gWCBfIEEgViBHICAgICAgICAgICAvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vLworCiAvLyBPcHRpbWl6ZWQgY29kZSBmb3IgUE5HIEF2ZXJhZ2UgZmlsdGVyIGRlY29kZXIKLXZvaWQgLyogUFJJVkFURSAqLworCitzdGF0aWMgdm9pZCAvKiBQUklWQVRFICovCiBwbmdfcmVhZF9maWx0ZXJfcm93X21teF9hdmcocG5nX3Jvd19pbmZvcCByb3dfaW5mbywgcG5nX2J5dGVwIHJvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbmdfYnl0ZXAgcHJldl9yb3cpCiB7CkBAIC0yNDk3LDI5ICsyNTU0LDMyIEBACiAgICBpbnQgZHVtbXlfdmFsdWVfYzsgICAvLyBmaXggJ2ZvcmJpZGRlbiByZWdpc3RlciAyIChjeCkgd2FzIHNwaWxsZWQnIGVycm9yCiAgICBpbnQgZHVtbXlfdmFsdWVfUzsKICAgIGludCBkdW1teV92YWx1ZV9EOwotLy8gaW50IGRpZmY7ICBHUlI6IGdsb2JhbCBub3cgKHNob3J0ZW5lZCB0byBkaWYvX2RpZikKIAotICAgYnBwID0gKHJvd19pbmZvLT5waXhlbF9kZXB0aCArIDcpID4+IDM7ICAvLyBHZXQgIyBieXRlcyBwZXIgcGl4ZWwKLSAgIF9GdWxsTGVuZ3RoICA9IHJvd19pbmZvLT5yb3dieXRlczsgICAgICAgIC8vICMgb2YgYnl0ZXMgdG8gZmlsdGVyCisgICBicHAgPSAocm93X2luZm8tPnBpeGVsX2RlcHRoICsgNykgPj4gMzsgIC8vIGdldCAjIGJ5dGVzIHBlciBwaXhlbAorICAgX0Z1bGxMZW5ndGggID0gcm93X2luZm8tPnJvd2J5dGVzOyAgICAgICAvLyAjIG9mIGJ5dGVzIHRvIGZpbHRlcgorCiAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCi0gICAgICAvLyBJbml0IGFkZHJlc3MgcG9pbnRlcnMgYW5kIG9mZnNldAotLy9HUlIgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IiAvLyBlZGkgPT0+IEF2Zyh4KQotICAgICAgInhvcmwgJSVlYngsICUlZWJ4ICAgICAgICAgICBcblx0IiAvLyBlYnggPT0+IHgKKyAgICAgIC8vIGluaXRpYWxpemUgYWRkcmVzcyBwb2ludGVycyBhbmQgb2Zmc2V0CisjaWZkZWYgX19QSUNfXworICAgICAgInB1c2hsICUlZWJ4ICAgICAgICAgICAgICAgICBcblx0IiAvLyBzYXZlIGluZGV4IHRvIEdsb2JhbCBPZmZzZXQgVGFibGUKKyNlbmRpZgorLy9wcmUgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IiAvLyBlZGk6ICBBdmcoeCkKKyAgICAgICJ4b3JsICUlZWJ4LCAlJWVieCAgICAgICAgICAgXG5cdCIgLy8gZWJ4OiAgeAogICAgICAgIm1vdmwgJSVlZGksICUlZWR4ICAgICAgICAgICBcblx0IgotLy9HUlIgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IiAvLyBlc2kgPT0+IFByaW9yKHgpCi0vL0dSUiAic3VibCBicHAsICUlZWR4ICAgICAgICAgICAgIFxuXHQiIC8vIChicHAgaXMgcHJlbG9hZGVkIGludG8gZWN4KQotICAgICAgInN1YmwgJSVlY3gsICUlZWR4ICAgICAgICAgICBcblx0IiAvLyBlZHggPT0+IFJhdyh4LWJwcCkKKy8vcHJlICJtb3ZsIHByZXZfcm93LCAlJWVzaSAgICAgICAgXG5cdCIgLy8gZXNpOiAgUHJpb3IoeCkKKy8vcHJlICJzdWJsIGJwcCwgJSVlZHggICAgICAgICAgICAgXG5cdCIgLy8gKGJwcCBpcyBwcmVsb2FkZWQgaW50byBlY3gpCisgICAgICAic3VibCAlJWVjeCwgJSVlZHggICAgICAgICAgIFxuXHQiIC8vIGVkeDogIFJhdyh4LWJwcCkKIAogICAgICAgInhvcmwgJSVlYXgsJSVlYXggICAgICAgICAgICBcblx0IgogCiAgICAgICAvLyBDb21wdXRlIHRoZSBSYXcgdmFsdWUgZm9yIHRoZSBmaXJzdCBicHAgYnl0ZXMKICAgICAgIC8vICAgIFJhdyh4KSA9IEF2Zyh4KSArIChQcmlvcih4KS8yKQogICAgImF2Z19ybHA6ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgIm1vdmIgKCUlZXNpLCUlZWJ4LCksJSVhbCAgICBcblx0IiAvLyBMb2FkIGFsIHdpdGggUHJpb3IoeCkKKyAgICAgICJtb3ZiICglJWVzaSwlJWVieCwpLCUlYWwgICAgXG5cdCIgLy8gbG9hZCBhbCB3aXRoIFByaW9yKHgpCiAgICAgICAiaW5jbCAlJWVieCAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAic2hyYiAlJWFsICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSBieSAyCiAgICAgICAiYWRkYiAtMSglJWVkaSwlJWVieCwpLCUlYWwgIFxuXHQiIC8vIGFkZCBBdmcoeCk7IC0xIHRvIG9mZnNldCBpbmMgZWJ4Ci0vL0dSUiAiY21wbCBicHAsICUlZWJ4ICAgICAgICAgICAgIFxuXHQiIC8vIChicHAgaXMgcHJlbG9hZGVkIGludG8gZWN4KQorLy9wcmUgImNtcGwgYnBwLCAlJWVieCAgICAgICAgICAgICBcblx0IiAvLyAoYnBwIGlzIHByZWxvYWRlZCBpbnRvIGVjeCkKICAgICAgICJjbXBsICUlZWN4LCAlJWVieCAgICAgICAgICAgXG5cdCIKICAgICAgICJtb3ZiICUlYWwsLTEoJSVlZGksJSVlYngsKSAgXG5cdCIgLy8gd3JpdGUgUmF3KHgpOyAtMSB0byBvZmZzZXQgaW5jIGVieAogICAgICAgImpiIGF2Z19ybHAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBtb3YgZG9lcyBub3QgYWZmZWN0IGZsYWdzCkBAIC0yNTI5LDEzICsyNTg5LDE0IEBACiAgICAgICAiYWRkbCAlJWVieCwgX2RpZiAgICAgICAgICAgIFxuXHQiIC8vIGFkZCBicHAKICAgICAgICJhZGRsICQweGYsIF9kaWYgICAgICAgICAgICAgXG5cdCIgLy8gYWRkIDcrOCB0byBpbmNyIHBhc3QgYWxpZ25tZW50IGJkcnkKICAgICAgICJhbmRsICQweGZmZmZmZmY4LCBfZGlmICAgICAgXG5cdCIgLy8gbWFzayB0byBhbGlnbm1lbnQgYm91bmRhcnkKLSAgICAgICJzdWJsICUlZWRpLCBfZGlmICAgICAgICAgICAgXG5cdCIgLy8gc3VidHJhY3QgZnJvbSBzdGFydCA9PiB2YWx1ZSBlYnggYXQgYWxpZ25tZW50Ci0gICAgICAianogYXZnX2dvICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAic3VibCAlJWVkaSwgX2RpZiAgICAgICAgICAgIFxuXHQiIC8vIHN1YnRyYWN0IGZyb20gc3RhcnQgPT4gdmFsdWUgZWJ4IGF0CisgICAgICAianogYXZnX2dvICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vICBhbGlnbm1lbnQKIAogICAgICAgLy8gZml4IGFsaWdubWVudAogICAgICAgLy8gQ29tcHV0ZSB0aGUgUmF3IHZhbHVlIGZvciB0aGUgYnl0ZXMgdXAgdG8gdGhlIGFsaWdubWVudCBib3VuZGFyeQogICAgICAgLy8gICAgUmF3KHgpID0gQXZnKHgpICsgKChSYXcoeC1icHApICsgUHJpb3IoeCkpLzIpCiAgICAgICAieG9ybCAlJWVjeCwgJSVlY3ggICAgICAgICAgIFxuXHQiCisKICAgICJhdmdfbHAxOiAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICJ4b3JsICUlZWF4LCAlJWVheCAgICAgICAgICAgXG5cdCIKICAgICAgICJtb3ZiICglJWVzaSwlJWVieCwpLCAlJWNsICAgXG5cdCIgLy8gbG9hZCBjbCB3aXRoIFByaW9yKHgpCkBAIC0yNTU1LDEwOCArMjYxNiwxMTYgQEAKICAgICAgICJhbmRsICQweDAwMDAwMDA3LCAlJWVheCAgICAgXG5cdCIgLy8gY2FsYyBieXRlcyBvdmVyIG11bHQgb2YgOAogICAgICAgInN1YmwgJSVlYXgsICUlZWN4ICAgICAgICAgICBcblx0IiAvLyBkcm9wIG92ZXIgYnl0ZXMgZnJvbSBvcmlnaW5hbCBsZW5ndGgKICAgICAgICJtb3ZsICUlZWN4LCBfTU1YTGVuZ3RoICAgICAgXG5cdCIKKyNpZmRlZiBfX1BJQ19fCisgICAgICAicG9wbCAlJWVieCAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIHJlc3RvcmUgaW5kZXggdG8gR2xvYmFsIE9mZnNldCBUYWJsZQorI2VuZGlmCiAKLSAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksIC8vIG91dHB1dCByZWdzL3ZhcnMgaGVyZSwgZS5nLiwgIj1tIiAoX01NWExlbmd0aCkgaW5zdGVhZCBvZiBmaW5hbCBpbnN0cgorICAgICAgOiAiPWMiIChkdW1teV92YWx1ZV9jKSwgICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCiAgICAgICAgICI9UyIgKGR1bW15X3ZhbHVlX1MpLAogICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKQogCi0gICAgICA6ICIxIiAocHJldl9yb3cpLCAgLy8gZXNpICAgICAgICAgIC8vIGlucHV0IHJlZ3MKLSAgICAgICAgIjIiIChyb3cpLCAgICAgICAvLyBlZGkKLSAgICAgICAgIjAiIChicHApICAgICAgICAvLyBlY3gKKyAgICAgIDogIjAiIChicHApLCAgICAgICAvLyBlY3ggICAgICAgICAgLy8gaW5wdXQgcmVncworICAgICAgICAiMSIgKHByZXZfcm93KSwgIC8vIGVzaQorICAgICAgICAiMiIgKHJvdykgICAgICAgIC8vIGVkaQogCi0gICAgICA6ICIlZWF4IiwgIiVlYngiLCAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKLSAgICAgICAgIiVlZHgiCi0vLyBHUlI6IElOQ0xVREUgIm1lbW9yeSIgYXMgY2xvYmJlcmVkPyAoX2RpZiwgX01NWExlbmd0aCkgICAgIFBST0JBQkxZCisgICAgICA6ICIlZWF4IiwgIiVlZHgiICAgICAgICAgICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAorI2lmbmRlZiBfX1BJQ19fCisgICAgICAsICIlZWJ4IgorI2VuZGlmCisgICAgICAvLyBHUlI6IElOQ0xVREUgIm1lbW9yeSIgYXMgY2xvYmJlcmVkPyAoX2RpZiwgX01NWExlbmd0aCkKKyAgICAgIC8vIChzZWVtcyB0byB3b3JrIGZpbmUgd2l0aG91dC4uLikKICAgICk7CiAKLSNpZmRlZiBHUlJfR0NDX01NWF9DT05WRVJURUQKLSAgIC8vIE5vdyBkbyB0aGUgbWF0aCBmb3IgdGhlIHJlc3Qgb2YgdGhlIHJvdwotICAgc3dpdGNoICggYnBwICkKKyAgIC8vIG5vdyBkbyB0aGUgbWF0aCBmb3IgdGhlIHJlc3Qgb2YgdGhlIHJvdworICAgc3dpdGNoIChicHApCiAgICB7CiAgICAgICBjYXNlIDM6CiAgICAgICB7Ci0gICAgICAgICBBY3RpdmVNYXNrLnVzZSAgPSAweDAwMDAwMDAwMDBmZmZmZmY7Ci0gICAgICAgICBTaGlmdEJwcC51c2UgPSAyNDsgICAgLy8gPT0gMyAqIDgKLSAgICAgICAgIFNoaWZ0UmVtLnVzZSA9IDQwOyAgICAvLyA9PSA2NCAtIDI0Ci0gICAgICAgICBfX2FzbV9fICgKLSAgICAgICAgICAgIC8vIFJlLWluaXQgYWRkcmVzcyBwb2ludGVycyBhbmQgb2Zmc2V0Ci0gICAgICAgICAgICAibW92cSAkQWN0aXZlTWFzaywgJSVtbTcgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92bCBfZGlmLCAlJWVieCAgICAgICAgICAgIFxuXHQiIC8vIGVieCA9PT4geCA9IG9mZnNldCB0byBhbGlnbm1lbnQgYm91bmRhcnkKLSAgICAgICAgICAgICJtb3ZxICRMQkNhcnJ5TWFzaywgJSVtbTUgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIgLy8gZWRpID09PiBBdmcoeCkKLSAgICAgICAgICAgICJtb3ZxICRIQkNsZWFyTWFzaywgJSVtbTQgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZsIHByZXZfcm93LCAlJWVzaSAgICAgICAgXG5cdCIgLy8gZXNpID09PiBQcmlvcih4KQotICAgICAgICAgICAgLy8gUFJJTUUgdGhlIHB1bXAgKGxvYWQgdGhlIGZpcnN0IFJhdyh4LWJwcCkgZGF0YSBzZXQpCi0gICAgICAgICAgICAibW92cSAtOCglJWVkaSwlJWVieCwpLCAlJW1tMiBcblx0IiAvLyBMb2FkIHByZXZpb3VzIGFsaWduZWQgOCBieXRlcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKHdlIGNvcnJlY3QgcG9zaXRpb24gaW4gbG9vcCBiZWxvdykKLSAgICAgICAgICJhdmdfM2xwOiAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZxICglJWVkaSwlJWVieCwpLCAlJW1tMCAgXG5cdCIgLy8gTG9hZCBtbTAgd2l0aCBBdmcoeCkKLSAgICAgICAgICAgIC8vIEFkZCAoUHJldl9yb3cvMikgdG8gQXZlcmFnZQotICAgICAgICAgICAgIm1vdnEgJSVtbTUsICUlbW0zICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBzcmxxICRTaGlmdFJlbSwgJSVtbTIgICAgICBcblx0IiAvLyBDb3JyZWN0IHBvc2l0aW9uIFJhdyh4LWJwcCkgZGF0YQotICAgICAgICAgICAgIm1vdnEgKCUlZXNpLCUlZWJ4LCksICUlbW0xICBcblx0IiAvLyBMb2FkIG1tMSB3aXRoIFByaW9yKHgpCi0gICAgICAgICAgICAibW92cSAlJW1tNywgJSVtbTYgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGFuZCAlJW1tMSwgJSVtbTMgICAgICAgICAgIFxuXHQiIC8vIGdldCBsc2IgZm9yIGVhY2ggcHJldl9yb3cgYnl0ZQotICAgICAgICAgICAgInBzcmxxICQxLCAlJW1tMSAgICAgICAgICAgICBcblx0IiAvLyBkaXZpZGUgcHJldl9yb3cgYnl0ZXMgYnkgMgotICAgICAgICAgICAgInBhbmQgICUlbW00LCAlJW1tMSAgICAgICAgICBcblx0IiAvLyBjbGVhciBpbnZhbGlkIGJpdCA3IG9mIGVhY2ggYnl0ZQotICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMCAgICAgICAgICBcblx0IiAvLyBhZGQgKFByZXZfcm93LzIpIHRvIEF2ZyBmb3IgZWFjaCBieXRlCi0gICAgICAgICAgICAvLyBBZGQgMXN0IGFjdGl2ZSBncm91cCAoUmF3KHgtYnBwKS8yKSB0byBBdmVyYWdlIHdpdGggTEJDYXJyeQotICAgICAgICAgICAgIm1vdnEgJSVtbTMsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBub3cgdXNlIG1tMSBmb3IgZ2V0dGluZyBMQkNhcnJ5cwotICAgICAgICAgICAgInBhbmQgJSVtbTIsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBnZXQgTEJDYXJyeXMgZm9yIGVhY2ggYnl0ZSB3aGVyZSBib3RoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbHNiJ3Mgd2VyZSA9PSAxIChPbmx5IHZhbGlkIGZvciBhY3RpdmUgZ3JvdXApCi0gICAgICAgICAgICAicHNybHEgJDEsICUlbW0yICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSByYXcgYnl0ZXMgYnkgMgotICAgICAgICAgICAgInBhbmQgICUlbW00LCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBjbGVhciBpbnZhbGlkIGJpdCA3IG9mIGVhY2ggYnl0ZQotICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBhZGQgTEJDYXJyeXMgdG8gKFJhdyh4LWJwcCkvMikgZm9yIGVhY2ggYnl0ZQotICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBMZWF2ZSBvbmx5IEFjdGl2ZSBHcm91cCAxIGJ5dGVzIHRvIGFkZCB0byBBdmcKLSAgICAgICAgICAgICJwYWRkYiAlJW1tMiwgJSVtbTAgICAgICAgICAgXG5cdCIgLy8gYWRkIChSYXcvMikgKyBMQkNhcnJ5cyB0byBBdmcgZm9yIGVhY2ggQWN0aXZlCisgICAgICAgICBfQWN0aXZlTWFzay51c2UgID0gMHgwMDAwMDAwMDAwZmZmZmZmTEw7CisgICAgICAgICBfU2hpZnRCcHAudXNlID0gMjQ7ICAgIC8vID09IDMgKiA4CisgICAgICAgICBfU2hpZnRSZW0udXNlID0gNDA7ICAgIC8vID09IDY0IC0gMjQKKworICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgICAgICAgLy8gcmUtaW5pdCBhZGRyZXNzIHBvaW50ZXJzIGFuZCBvZmZzZXQKKyAgICAgICAgICAgICJtb3ZxIF9BY3RpdmVNYXNrLCAlJW1tNyAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92bCBfZGlmLCAlJWVjeCAgICAgICAgICAgICBcblx0IiAvLyBlY3g6ICB4ID0gb2Zmc2V0IHRvCisgICAgICAgICAgICAibW92cSBfTEJDYXJyeU1hc2ssICUlbW01ICAgICBcblx0IiAvLyAgYWxpZ25tZW50IGJvdW5kYXJ5CisvLyBwcmVsb2FkICAibW92bCByb3csICUlZWRpICAgICAgICAgICAgICBcblx0IiAvLyBlZGk6ICBBdmcoeCkKKyAgICAgICAgICAgICJtb3ZxIF9IQkNsZWFyTWFzaywgJSVtbTQgICAgIFxuXHQiCisvLyBwcmVsb2FkICAibW92bCBwcmV2X3JvdywgJSVlc2kgICAgICAgICBcblx0IiAvLyBlc2k6ICBQcmlvcih4KQorCisgICAgICAgICAgICAvLyBwcmltZSB0aGUgcHVtcDogIGxvYWQgdGhlIGZpcnN0IFJhdyh4LWJwcCkgZGF0YSBzZXQKKyAgICAgICAgICAgICJtb3ZxIC04KCUlZWRpLCUlZWN4LCksICUlbW0yIFxuXHQiIC8vIGxvYWQgcHJldmlvdXMgYWxpZ25lZCA4IGJ5dGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoY29ycmVjdCBwb3MuIGluIGxvb3AgYmVsb3cpCisgICAgICAgICAiYXZnXzNscDogICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgIm1vdnEgKCUlZWRpLCUlZWN4LCksICUlbW0wICAgXG5cdCIgLy8gbG9hZCBtbTAgd2l0aCBBdmcoeCkKKyAgICAgICAgICAgICJtb3ZxICUlbW01LCAlJW1tMyAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAicHNybHEgX1NoaWZ0UmVtLCAlJW1tMiAgICAgICBcblx0IiAvLyBjb3JyZWN0IHBvc2l0aW9uIFJhdyh4LWJwcCkgZGF0YQorICAgICAgICAgICAgIm1vdnEgKCUlZXNpLCUlZWN4LCksICUlbW0xICAgXG5cdCIgLy8gbG9hZCBtbTEgd2l0aCBQcmlvcih4KQorICAgICAgICAgICAgIm1vdnEgJSVtbTcsICUlbW02ICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJwYW5kICUlbW0xLCAlJW1tMyAgICAgICAgICAgIFxuXHQiIC8vIGdldCBsc2IgZm9yIGVhY2ggcHJldl9yb3cgYnl0ZQorICAgICAgICAgICAgInBzcmxxICQxLCAlJW1tMSAgICAgICAgICAgICAgXG5cdCIgLy8gZGl2aWRlIHByZXZfcm93IGJ5dGVzIGJ5IDIKKyAgICAgICAgICAgICJwYW5kICAlJW1tNCwgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIGNsZWFyIGludmFsaWQgYml0IDcgb2YgZWFjaCBieXRlCisgICAgICAgICAgICAicGFkZGIgJSVtbTEsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBhZGQgKFByZXZfcm93LzIpIHRvIEF2ZyBmb3IgZWFjaCBieXRlCisgICAgICAgICAgICAvLyBhZGQgMXN0IGFjdGl2ZSBncm91cCAoUmF3KHgtYnBwKS8yKSB0byBhdmVyYWdlIHdpdGggTEJDYXJyeQorICAgICAgICAgICAgIm1vdnEgJSVtbTMsICUlbW0xICAgICAgICAgICAgXG5cdCIgLy8gbm93IHVzZSBtbTEgZm9yIGdldHRpbmcgTEJDYXJyeXMKKyAgICAgICAgICAgICJwYW5kICUlbW0yLCAlJW1tMSAgICAgICAgICAgIFxuXHQiIC8vIGdldCBMQkNhcnJ5cyBmb3IgZWFjaCBieXRlIHdoZXJlIGJvdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsc2IncyB3ZXJlID09IDEgKG9ubHkgdmFsaWQgZm9yIGFjdGl2ZSBncm91cCkKKyAgICAgICAgICAgICJwc3JscSAkMSwgJSVtbTIgICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSByYXcgYnl0ZXMgYnkgMgorICAgICAgICAgICAgInBhbmQgICUlbW00LCAlJW1tMiAgICAgICAgICAgXG5cdCIgLy8gY2xlYXIgaW52YWxpZCBiaXQgNyBvZiBlYWNoIGJ5dGUKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTIgICAgICAgICAgIFxuXHQiIC8vIGFkZCBMQkNhcnJ5cyB0byAoUmF3KHgtYnBwKS8yKSBmb3IgZWFjaCBieXRlCisgICAgICAgICAgICAicGFuZCAlJW1tNiwgJSVtbTIgICAgICAgICAgICBcblx0IiAvLyBsZWF2ZSBvbmx5IEFjdGl2ZSBHcm91cCAxIGJ5dGVzIHRvIGFkZCB0byBBdmcKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMiwgJSVtbTAgICAgICAgICAgIFxuXHQiIC8vIGFkZCAoUmF3LzIpICsgTEJDYXJyeXMgdG8gQXZnIGZvciBlYWNoIEFjdGl2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBieXRlCi0gICAgICAgICAgICAvLyBBZGQgMm5kIGFjdGl2ZSBncm91cCAoUmF3KHgtYnBwKS8yKSB0byBBdmVyYWdlIHdpdGggTEJDYXJyeQotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTYgICAgICBcblx0IiAvLyBzaGlmdCB0aGUgbW02IG1hc2sgdG8gY292ZXIgYnl0ZXMgMy01Ci0gICAgICAgICAgICAibW92cSAlJW1tMCwgJSVtbTIgICAgICAgICAgIFxuXHQiIC8vIG1vdiB1cGRhdGVkIFJhd3MgdG8gbW0yCi0gICAgICAgICAgICAicHNsbHEgJFNoaWZ0QnBwLCAlJW1tMiAgICAgIFxuXHQiIC8vIHNoaWZ0IGRhdGEgdG8gcG9zaXRpb24gY29ycmVjdGx5Ci0gICAgICAgICAgICAibW92cSAlJW1tMywgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIG5vdyB1c2UgbW0xIGZvciBnZXR0aW5nIExCQ2FycnlzCi0gICAgICAgICAgICAicGFuZCAlJW1tMiwgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIGdldCBMQkNhcnJ5cyBmb3IgZWFjaCBieXRlIHdoZXJlIGJvdGgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsc2IncyB3ZXJlID09IDEgKE9ubHkgdmFsaWQgZm9yIGFjdGl2ZSBncm91cCkKLSAgICAgICAgICAgICJwc3JscSAkMSwgJSVtbTIgICAgICAgICAgICAgXG5cdCIgLy8gZGl2aWRlIHJhdyBieXRlcyBieSAyCi0gICAgICAgICAgICAicGFuZCAgJSVtbTQsICUlbW0yICAgICAgICAgIFxuXHQiIC8vIGNsZWFyIGludmFsaWQgYml0IDcgb2YgZWFjaCBieXRlCi0gICAgICAgICAgICAicGFkZGIgJSVtbTEsICUlbW0yICAgICAgICAgIFxuXHQiIC8vIGFkZCBMQkNhcnJ5cyB0byAoUmF3KHgtYnBwKS8yKSBmb3IgZWFjaCBieXRlCi0gICAgICAgICAgICAicGFuZCAlJW1tNiwgJSVtbTIgICAgICAgICAgIFxuXHQiIC8vIExlYXZlIG9ubHkgQWN0aXZlIEdyb3VwIDIgYnl0ZXMgdG8gYWRkIHRvIEF2ZwotICAgICAgICAgICAgInBhZGRiICUlbW0yLCAlJW1tMCAgICAgICAgICBcblx0IiAvLyBhZGQgKFJhdy8yKSArIExCQ2FycnlzIHRvIEF2ZyBmb3IgZWFjaCBBY3RpdmUKKyAgICAgICAgICAgIC8vIGFkZCAybmQgYWN0aXZlIGdyb3VwIChSYXcoeC1icHApLzIpIHRvIGF2ZXJhZ2Ugd2l0aCBfTEJDYXJyeQorICAgICAgICAgICAgInBzbGxxIF9TaGlmdEJwcCwgJSVtbTYgICAgICAgXG5cdCIgLy8gc2hpZnQgdGhlIG1tNiBtYXNrIHRvIGNvdmVyIGJ5dGVzIDMtNQorICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0yICAgICAgICAgICAgXG5cdCIgLy8gbW92IHVwZGF0ZWQgUmF3cyB0byBtbTIKKyAgICAgICAgICAgICJwc2xscSBfU2hpZnRCcHAsICUlbW0yICAgICAgIFxuXHQiIC8vIHNoaWZ0IGRhdGEgdG8gcG9zLiBjb3JyZWN0bHkKKyAgICAgICAgICAgICJtb3ZxICUlbW0zLCAlJW1tMSAgICAgICAgICAgIFxuXHQiIC8vIG5vdyB1c2UgbW0xIGZvciBnZXR0aW5nIExCQ2FycnlzCisgICAgICAgICAgICAicGFuZCAlJW1tMiwgJSVtbTEgICAgICAgICAgICBcblx0IiAvLyBnZXQgTEJDYXJyeXMgZm9yIGVhY2ggYnl0ZSB3aGVyZSBib3RoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbHNiJ3Mgd2VyZSA9PSAxIChvbmx5IHZhbGlkIGZvciBhY3RpdmUgZ3JvdXApCisgICAgICAgICAgICAicHNybHEgJDEsICUlbW0yICAgICAgICAgICAgICBcblx0IiAvLyBkaXZpZGUgcmF3IGJ5dGVzIGJ5IDIKKyAgICAgICAgICAgICJwYW5kICAlJW1tNCwgJSVtbTIgICAgICAgICAgIFxuXHQiIC8vIGNsZWFyIGludmFsaWQgYml0IDcgb2YgZWFjaCBieXRlCisgICAgICAgICAgICAicGFkZGIgJSVtbTEsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBhZGQgTEJDYXJyeXMgdG8gKFJhdyh4LWJwcCkvMikgZm9yIGVhY2ggYnl0ZQorICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0yICAgICAgICAgICAgXG5cdCIgLy8gbGVhdmUgb25seSBBY3RpdmUgR3JvdXAgMiBieXRlcyB0byBhZGQgdG8gQXZnCisgICAgICAgICAgICAicGFkZGIgJSVtbTIsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBhZGQgKFJhdy8yKSArIExCQ2FycnlzIHRvIEF2ZyBmb3IgZWFjaCBBY3RpdmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgYnl0ZQogCi0gICAgICAgICAgICAvLyBBZGQgM3JkIGFjdGl2ZSBncm91cCAoUmF3KHgtYnBwKS8yKSB0byBBdmVyYWdlIHdpdGggTEJDYXJyeQotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTYgICAgICBcblx0IiAvLyBzaGlmdCB0aGUgbW02IG1hc2sgdG8gY292ZXIgdGhlIGxhc3QgdHdvCisgICAgICAgICAgICAvLyBhZGQgM3JkIGFjdGl2ZSBncm91cCAoUmF3KHgtYnBwKS8yKSB0byBhdmVyYWdlIHdpdGggX0xCQ2FycnkKKyAgICAgICAgICAgICJwc2xscSBfU2hpZnRCcHAsICUlbW02ICAgICAgIFxuXHQiIC8vIHNoaWZ0IG1tNiBtYXNrIHRvIGNvdmVyIGxhc3QgdHdvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBieXRlcwotICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBtb3YgdXBkYXRlZCBSYXdzIHRvIG1tMgotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTIgICAgICBcblx0IiAvLyBzaGlmdCBkYXRhIHRvIHBvc2l0aW9uIGNvcnJlY3RseQorICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0yICAgICAgICAgICAgXG5cdCIgLy8gbW92IHVwZGF0ZWQgUmF3cyB0byBtbTIKKyAgICAgICAgICAgICJwc2xscSBfU2hpZnRCcHAsICUlbW0yICAgICAgIFxuXHQiIC8vIHNoaWZ0IGRhdGEgdG8gcG9zLiBjb3JyZWN0bHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERhdGEgb25seSBuZWVkcyB0byBiZSBzaGlmdGVkIG9uY2UgaGVyZSB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBjb3JyZWN0IHgtYnBwIG9mZnNldC4KLSAgICAgICAgICAgICJtb3ZxICUlbW0zLCAlJW1tMSAgICAgICAgICAgXG5cdCIgLy8gbm93IHVzZSBtbTEgZm9yIGdldHRpbmcgTEJDYXJyeXMKLSAgICAgICAgICAgICJwYW5kICUlbW0yLCAlJW1tMSAgICAgICAgICAgXG5cdCIgLy8gZ2V0IExCQ2FycnlzIGZvciBlYWNoIGJ5dGUgd2hlcmUgYm90aAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbHNiJ3Mgd2VyZSA9PSAxIChPbmx5IHZhbGlkIGZvciBhY3RpdmUgZ3JvdXApCi0gICAgICAgICAgICAicHNybHEgJDEsICUlbW0yICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSByYXcgYnl0ZXMgYnkgMgotICAgICAgICAgICAgInBhbmQgICUlbW00LCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBjbGVhciBpbnZhbGlkIGJpdCA3IG9mIGVhY2ggYnl0ZQotICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBhZGQgTEJDYXJyeXMgdG8gKFJhdyh4LWJwcCkvMikgZm9yIGVhY2ggYnl0ZQotICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBMZWF2ZSBvbmx5IEFjdGl2ZSBHcm91cCAyIGJ5dGVzIHRvIGFkZCB0byBBdmcKLSAgICAgICAgICAgICJhZGRsICQ4LCAlJWVieCAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwYWRkYiAlJW1tMiwgJSVtbTAgICAgICAgICAgXG5cdCIgLy8gYWRkIChSYXcvMikgKyBMQkNhcnJ5cyB0byBBdmcgZm9yIGVhY2ggQWN0aXZlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ5dGUKLSAgICAgICAgICAgIC8vIE5vdyByZWFkeSB0byB3cml0ZSBiYWNrIHRvIG1lbW9yeQotICAgICAgICAgICAgIm1vdnEgJSVtbTAsIC04KCUlZWRpLCUlZWJ4LCkgXG5cdCIKLSAgICAgICAgICAgIC8vIE1vdmUgdXBkYXRlZCBSYXcoeCkgdG8gdXNlIGFzIFJhdyh4LWJwcCkgZm9yIG5leHQgbG9vcAotICAgICAgICAgICAgImNtcGwgX01NWExlbmd0aCwgJSVlYnggICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBtb3YgdXBkYXRlZCBSYXcoeCkgdG8gbW0yCi0gICAgICAgICAgICAiamIgYXZnXzNscCAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAlJW1tMywgJSVtbTEgICAgICAgICAgICBcblx0IiAvLyBub3cgdXNlIG1tMSBmb3IgZ2V0dGluZyBMQkNhcnJ5cworICAgICAgICAgICAgInBhbmQgJSVtbTIsICUlbW0xICAgICAgICAgICAgXG5cdCIgLy8gZ2V0IExCQ2FycnlzIGZvciBlYWNoIGJ5dGUgd2hlcmUgYm90aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbHNiJ3Mgd2VyZSA9PSAxIChvbmx5IHZhbGlkIGZvciBhY3RpdmUgZ3JvdXApCisgICAgICAgICAgICAicHNybHEgJDEsICUlbW0yICAgICAgICAgICAgICBcblx0IiAvLyBkaXZpZGUgcmF3IGJ5dGVzIGJ5IDIKKyAgICAgICAgICAgICJwYW5kICAlJW1tNCwgJSVtbTIgICAgICAgICAgIFxuXHQiIC8vIGNsZWFyIGludmFsaWQgYml0IDcgb2YgZWFjaCBieXRlCisgICAgICAgICAgICAicGFkZGIgJSVtbTEsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBhZGQgTEJDYXJyeXMgdG8gKFJhdyh4LWJwcCkvMikgZm9yIGVhY2ggYnl0ZQorICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0yICAgICAgICAgICAgXG5cdCIgLy8gbGVhdmUgb25seSBBY3RpdmUgR3JvdXAgMiBieXRlcyB0byBhZGQgdG8gQXZnCisgICAgICAgICAgICAiYWRkbCAkOCwgJSVlY3ggICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgInBhZGRiICUlbW0yLCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gYWRkIChSYXcvMikgKyBMQkNhcnJ5cyB0byBBdmcgZm9yIGVhY2ggQWN0aXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBieXRlCisgICAgICAgICAgICAvLyBub3cgcmVhZHkgdG8gd3JpdGUgYmFjayB0byBtZW1vcnkKKyAgICAgICAgICAgICJtb3ZxICUlbW0wLCAtOCglJWVkaSwlJWVjeCwpIFxuXHQiCisgICAgICAgICAgICAvLyBtb3ZlIHVwZGF0ZWQgUmF3KHgpIHRvIHVzZSBhcyBSYXcoeC1icHApIGZvciBuZXh0IGxvb3AKKyAgICAgICAgICAgICJjbXBsIF9NTVhMZW5ndGgsICUlZWN4ICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAlJW1tMCwgJSVtbTIgICAgICAgICAgICBcblx0IiAvLyBtb3YgdXBkYXRlZCBSYXcoeCkgdG8gbW0yCisgICAgICAgICAgICAiamIgYXZnXzNscCAgICAgICAgICAgICAgICAgICBcblx0IgogCi0gICAgICAgICAgICA6IC8vIG91dHB1dCByZWdzL3ZhcnMgZ28gaGVyZSwgZS5nLjogICI9bSIgKG1lbW9yeV92YXIpCisgICAgICAgICAgICA6ICI9UyIgKGR1bW15X3ZhbHVlX1MpLCAgICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICAgICAgICI9RCIgKGR1bW15X3ZhbHVlX0QpCiAKLSAgICAgICAgICAgIDogIlMiIChwcmV2X3JvdyksICAvLyBlc2kgICAgICAgICAgLy8gaW5wdXQgcmVncwotICAgICAgICAgICAgICAiRCIgKHJvdykgICAgICAgIC8vIGVkaQorICAgICAgICAgICAgOiAiMCIgKHByZXZfcm93KSwgIC8vIGVzaSAgICAgICAgICAgLy8gaW5wdXQgcmVncworICAgICAgICAgICAgICAiMSIgKHJvdykgICAgICAgIC8vIGVkaQogCi0gICAgICAgICAgICA6ICIlZWJ4IiwgIiVlZGkiLCAiJWVzaSIgICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAotLy8gICAgICAgICAgICBHUlI6IElOQ0xVREUgIm1lbW9yeSIgYXMgY2xvYmJlcmVkPyAoX2RpZiwgX01NWExlbmd0aCkgICBQUk9CQUJMWQotLy8gICAgICAgICAgLCAiJW1tMCIsICIlbW0xIiwgIiVtbTIiLCAiJW1tMyIsCi0vLyAgICAgICAgICAgICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IgorICAgICAgICAgICAgOiAiJWVjeCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CisjaWYgMCAgLyogJW1tMCwgLi4uLCAlbW03IG5vdCBzdXBwb3J0ZWQgYnkgZ2NjIDIuNy4yLjMgb3IgZWdjcyAxLjEgKi8KKyAgICAgICAgICAgICwgIiVtbTAiLCAiJW1tMSIsICIlbW0yIiwgIiVtbTMiCisgICAgICAgICAgICAsICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IgorI2VuZGlmCiAgICAgICAgICApOwogICAgICAgfQogICAgICAgYnJlYWs7ICAvLyBlbmQgMyBicHAKQEAgLTI2NjQsMTg5ICsyNzMzLDIwNyBAQAogICAgICAgY2FzZSA2OgogICAgICAgY2FzZSA0OgogICAgICAgLy9jYXNlIDc6ICAgLy8gd2hvIHdyb3RlIHRoaXM/ICBQTkcgZG9lc24ndCBzdXBwb3J0IDUgb3IgNyBieXRlcy9waXhlbAotICAgICAgLy9jYXNlIDU6CisgICAgICAvL2Nhc2UgNTogICAvLyBHUlIgQk9HVVMKICAgICAgIHsKLSAgICAgICAgIEFjdGl2ZU1hc2sudXNlICA9IDB4ZmZmZmZmZmZmZmZmZmZmZjsgIC8vIHVzZSBzaGlmdCBiZWxvdyB0byBjbGVhcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXBwcm9wcmlhdGUgaW5hY3RpdmUgYnl0ZXMKLSAgICAgICAgIFNoaWZ0QnBwLnVzZSA9IGJwcCA8PCAzOwotICAgICAgICAgU2hpZnRSZW0udXNlID0gNjQgLSBTaGlmdEJwcC51c2U7Ci0gICAgICAgICBfX2FzbV9fICgKLSAgICAgICAgICAgICJtb3ZxICRIQkNsZWFyTWFzaywgJSVtbTQgICAgXG5cdCIKKyAgICAgICAgIF9BY3RpdmVNYXNrLnVzZSAgPSAweGZmZmZmZmZmZmZmZmZmZmZMTDsgLy8gdXNlIHNoaWZ0IGJlbG93IHRvIGNsZWFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFwcHJvcHJpYXRlIGluYWN0aXZlIGJ5dGVzCisgICAgICAgICBfU2hpZnRCcHAudXNlID0gYnBwIDw8IDM7CisgICAgICAgICBfU2hpZnRSZW0udXNlID0gNjQgLSBfU2hpZnRCcHAudXNlOwogCi0gICAgICAgICAgICAvLyBSZS1pbml0IGFkZHJlc3MgcG9pbnRlcnMgYW5kIG9mZnNldAotICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlYnggICAgICAgICAgICBcblx0IiAvLyBlYnggPT0+IHggPSBvZmZzZXQgdG8gYWxpZ25tZW50IGJvdW5kYXJ5CisgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCisgICAgICAgICAgICAibW92cSBfSEJDbGVhck1hc2ssICUlbW00ICAgIFxuXHQiCiAKLSAgICAgICAgICAgIC8vIExvYWQgQWN0aXZlTWFzayBhbmQgY2xlYXIgYWxsIGJ5dGVzIGV4Y2VwdCBmb3IgMXN0IGFjdGl2ZSBncm91cAotICAgICAgICAgICAgIm1vdnEgJEFjdGl2ZU1hc2ssICUlbW03ICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IiAvLyBlZGkgPT0+IEF2Zyh4KQotICAgICAgICAgICAgInBzcmxxICRTaGlmdFJlbSwgJSVtbTcgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IiAvLyBlc2kgPT0+IFByaW9yKHgpCisgICAgICAgICAgICAvLyByZS1pbml0IGFkZHJlc3MgcG9pbnRlcnMgYW5kIG9mZnNldAorICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlY3ggICAgICAgICAgICBcblx0IiAvLyBlY3g6ICB4ID0gb2Zmc2V0IHRvIGFsaWdubWVudCBib3VuZGFyeQorCisgICAgICAgICAgICAvLyBsb2FkIF9BY3RpdmVNYXNrIGFuZCBjbGVhciBhbGwgYnl0ZXMgZXhjZXB0IGZvciAxc3QgYWN0aXZlIGdyb3VwCisgICAgICAgICAgICAibW92cSBfQWN0aXZlTWFzaywgJSVtbTcgICAgIFxuXHQiCisvLyBwcmVsb2FkICAibW92bCByb3csICUlZWRpICAgICAgICAgICAgIFxuXHQiIC8vIGVkaTogIEF2Zyh4KQorICAgICAgICAgICAgInBzcmxxIF9TaGlmdFJlbSwgJSVtbTcgICAgICBcblx0IgorLy8gcHJlbG9hZCAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IiAvLyBlc2k6ICBQcmlvcih4KQogICAgICAgICAgICAgIm1vdnEgJSVtbTcsICUlbW02ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgJExCQ2FycnlNYXNrLCAlJW1tNSAgICBcblx0IgotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTYgICAgICBcblx0IiAvLyBDcmVhdGUgbWFzayBmb3IgMm5kIGFjdGl2ZSBncm91cAorICAgICAgICAgICAgIm1vdnEgX0xCQ2FycnlNYXNrLCAlJW1tNSAgICBcblx0IgorICAgICAgICAgICAgInBzbGxxIF9TaGlmdEJwcCwgJSVtbTYgICAgICBcblx0IiAvLyBjcmVhdGUgbWFzayBmb3IgMm5kIGFjdGl2ZSBncm91cAogCi0gICAgICAgICAgICAvLyBQUklNRSB0aGUgcHVtcCAobG9hZCB0aGUgZmlyc3QgUmF3KHgtYnBwKSBkYXRhIHNldAotICAgICAgICAgICAgIm1vdnEgLTgoJSVlZGksJSVlYngsKSwgJSVtbTIgXG5cdCIgLy8gTG9hZCBwcmV2aW91cyBhbGlnbmVkIDggYnl0ZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICh3ZSBjb3JyZWN0IHBvc2l0aW9uIGluIGxvb3AgYmVsb3cpCisgICAgICAgICAgICAvLyBwcmltZSB0aGUgcHVtcDogIGxvYWQgdGhlIGZpcnN0IFJhdyh4LWJwcCkgZGF0YSBzZXQKKyAgICAgICAgICAgICJtb3ZxIC04KCUlZWRpLCUlZWN4LCksICUlbW0yIFxuXHQiIC8vIGxvYWQgcHJldmlvdXMgYWxpZ25lZCA4IGJ5dGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAod2UgY29ycmVjdCBwb3MuIGluIGxvb3AgYmVsb3cpCiAgICAgICAgICAiYXZnXzRscDogICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92cSAoJSVlZGksJSVlYngsKSwgJSVtbTAgIFxuXHQiCi0gICAgICAgICAgICAicHNybHEgJFNoaWZ0UmVtLCAlJW1tMiAgICAgIFxuXHQiIC8vIHNoaWZ0IGRhdGEgdG8gcG9zaXRpb24gY29ycmVjdGx5Ci0gICAgICAgICAgICAibW92cSAoJSVlc2ksJSVlYngsKSwgJSVtbTEgIFxuXHQiCi0gICAgICAgICAgICAvLyBBZGQgKFByZXZfcm93LzIpIHRvIEF2ZXJhZ2UKKyAgICAgICAgICAgICJtb3ZxICglJWVkaSwlJWVjeCwpLCAlJW1tMCAgXG5cdCIKKyAgICAgICAgICAgICJwc3JscSBfU2hpZnRSZW0sICUlbW0yICAgICAgXG5cdCIgLy8gc2hpZnQgZGF0YSB0byBwb3MuIGNvcnJlY3RseQorICAgICAgICAgICAgIm1vdnEgKCUlZXNpLCUlZWN4LCksICUlbW0xICBcblx0IgorICAgICAgICAgICAgLy8gYWRkIChQcmV2X3Jvdy8yKSB0byBhdmVyYWdlCiAgICAgICAgICAgICAibW92cSAlJW1tNSwgJSVtbTMgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicGFuZCAlJW1tMSwgJSVtbTMgICAgICAgICAgIFxuXHQiIC8vIGdldCBsc2IgZm9yIGVhY2ggcHJldl9yb3cgYnl0ZQogICAgICAgICAgICAgInBzcmxxICQxLCAlJW1tMSAgICAgICAgICAgICBcblx0IiAvLyBkaXZpZGUgcHJldl9yb3cgYnl0ZXMgYnkgMgogICAgICAgICAgICAgInBhbmQgICUlbW00LCAlJW1tMSAgICAgICAgICBcblx0IiAvLyBjbGVhciBpbnZhbGlkIGJpdCA3IG9mIGVhY2ggYnl0ZQogICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMCAgICAgICAgICBcblx0IiAvLyBhZGQgKFByZXZfcm93LzIpIHRvIEF2ZyBmb3IgZWFjaCBieXRlCi0gICAgICAgICAgICAvLyBBZGQgMXN0IGFjdGl2ZSBncm91cCAoUmF3KHgtYnBwKS8yKSB0byBBdmVyYWdlIHdpdGggTEJDYXJyeQorICAgICAgICAgICAgLy8gYWRkIDFzdCBhY3RpdmUgZ3JvdXAgKFJhdyh4LWJwcCkvMikgdG8gYXZlcmFnZSB3aXRoIF9MQkNhcnJ5CiAgICAgICAgICAgICAibW92cSAlJW1tMywgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIG5vdyB1c2UgbW0xIGZvciBnZXR0aW5nIExCQ2FycnlzCiAgICAgICAgICAgICAicGFuZCAlJW1tMiwgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIGdldCBMQkNhcnJ5cyBmb3IgZWFjaCBieXRlIHdoZXJlIGJvdGgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxzYidzIHdlcmUgPT0gMSAoT25seSB2YWxpZCBmb3IgYWN0aXZlIGdyb3VwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbHNiJ3Mgd2VyZSA9PSAxIChvbmx5IHZhbGlkIGZvciBhY3RpdmUgZ3JvdXApCiAgICAgICAgICAgICAicHNybHEgJDEsICUlbW0yICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSByYXcgYnl0ZXMgYnkgMgogICAgICAgICAgICAgInBhbmQgICUlbW00LCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBjbGVhciBpbnZhbGlkIGJpdCA3IG9mIGVhY2ggYnl0ZQogICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBhZGQgTEJDYXJyeXMgdG8gKFJhdyh4LWJwcCkvMikgZm9yIGVhY2ggYnl0ZQotICAgICAgICAgICAgInBhbmQgJSVtbTcsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBMZWF2ZSBvbmx5IEFjdGl2ZSBHcm91cCAxIGJ5dGVzIHRvIGFkZCB0byBBdmcKKyAgICAgICAgICAgICJwYW5kICUlbW03LCAlJW1tMiAgICAgICAgICAgXG5cdCIgLy8gbGVhdmUgb25seSBBY3RpdmUgR3JvdXAgMSBieXRlcyB0byBhZGQgdG8gQXZnCiAgICAgICAgICAgICAicGFkZGIgJSVtbTIsICUlbW0wICAgICAgICAgIFxuXHQiIC8vIGFkZCAoUmF3LzIpICsgTEJDYXJyeXMgdG8gQXZnIGZvciBlYWNoIEFjdGl2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnl0ZQotICAgICAgICAgICAgLy8gQWRkIDJuZCBhY3RpdmUgZ3JvdXAgKFJhdyh4LWJwcCkvMikgdG8gQXZlcmFnZSB3aXRoIExCQ2FycnkKKyAgICAgICAgICAgIC8vIGFkZCAybmQgYWN0aXZlIGdyb3VwIChSYXcoeC1icHApLzIpIHRvIGF2ZXJhZ2Ugd2l0aCBfTEJDYXJyeQogICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBtb3YgdXBkYXRlZCBSYXdzIHRvIG1tMgotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTIgICAgICBcblx0IiAvLyBzaGlmdCBkYXRhIHRvIHBvc2l0aW9uIGNvcnJlY3RseQotICAgICAgICAgICAgImFkZGwgJDgsICUlZWJ4ICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgInBzbGxxIF9TaGlmdEJwcCwgJSVtbTIgICAgICBcblx0IiAvLyBzaGlmdCBkYXRhIHRvIHBvcy4gY29ycmVjdGx5CisgICAgICAgICAgICAiYWRkbCAkOCwgJSVlY3ggICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAibW92cSAlJW1tMywgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIG5vdyB1c2UgbW0xIGZvciBnZXR0aW5nIExCQ2FycnlzCiAgICAgICAgICAgICAicGFuZCAlJW1tMiwgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIGdldCBMQkNhcnJ5cyBmb3IgZWFjaCBieXRlIHdoZXJlIGJvdGgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxzYidzIHdlcmUgPT0gMSAoT25seSB2YWxpZCBmb3IgYWN0aXZlIGdyb3VwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbHNiJ3Mgd2VyZSA9PSAxIChvbmx5IHZhbGlkIGZvciBhY3RpdmUgZ3JvdXApCiAgICAgICAgICAgICAicHNybHEgJDEsICUlbW0yICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSByYXcgYnl0ZXMgYnkgMgogICAgICAgICAgICAgInBhbmQgICUlbW00LCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBjbGVhciBpbnZhbGlkIGJpdCA3IG9mIGVhY2ggYnl0ZQogICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBhZGQgTEJDYXJyeXMgdG8gKFJhdyh4LWJwcCkvMikgZm9yIGVhY2ggYnl0ZQotICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBMZWF2ZSBvbmx5IEFjdGl2ZSBHcm91cCAyIGJ5dGVzIHRvIGFkZCB0byBBdmcKKyAgICAgICAgICAgICJwYW5kICUlbW02LCAlJW1tMiAgICAgICAgICAgXG5cdCIgLy8gbGVhdmUgb25seSBBY3RpdmUgR3JvdXAgMiBieXRlcyB0byBhZGQgdG8gQXZnCiAgICAgICAgICAgICAicGFkZGIgJSVtbTIsICUlbW0wICAgICAgICAgIFxuXHQiIC8vIGFkZCAoUmF3LzIpICsgTEJDYXJyeXMgdG8gQXZnIGZvciBlYWNoIEFjdGl2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnl0ZQotICAgICAgICAgICAgImNtcGwgX01NWExlbmd0aCwgJSVlYnggICAgICBcblx0IgotICAgICAgICAgICAgLy8gTm93IHJlYWR5IHRvIHdyaXRlIGJhY2sgdG8gbWVtb3J5Ci0gICAgICAgICAgICAibW92cSAlJW1tMCwgLTgoJSVlZGksJSVlYngsKSBcblx0IgotICAgICAgICAgICAgLy8gUHJlcCBSYXcoeC1icHApIGZvciBuZXh0IGxvb3AKKyAgICAgICAgICAgICJjbXBsIF9NTVhMZW5ndGgsICUlZWN4ICAgICAgXG5cdCIKKyAgICAgICAgICAgIC8vIG5vdyByZWFkeSB0byB3cml0ZSBiYWNrIHRvIG1lbW9yeQorICAgICAgICAgICAgIm1vdnEgJSVtbTAsIC04KCUlZWRpLCUlZWN4LCkgXG5cdCIKKyAgICAgICAgICAgIC8vIHByZXAgUmF3KHgtYnBwKSBmb3IgbmV4dCBsb29wCiAgICAgICAgICAgICAibW92cSAlJW1tMCwgJSVtbTIgICAgICAgICAgIFxuXHQiIC8vIG1vdiB1cGRhdGVkIFJhd3MgdG8gbW0yCiAgICAgICAgICAgICAiamIgYXZnXzRscCAgICAgICAgICAgICAgICAgIFxuXHQiCiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBvdXRwdXQgcmVncy92YXJzIGdvIGhlcmUsIGUuZy46ICAiPW0iIChtZW1vcnlfdmFyKQorICAgICAgICAgICAgOiAiPVMiIChkdW1teV92YWx1ZV9TKSwgICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICAgICAgICI9RCIgKGR1bW15X3ZhbHVlX0QpCiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBpbnB1dCByZWdzLCBlLmcuOiAgImMiIChjb3VudCksICJTIiAoc3JjKSwgIkQiIChkZXN0KQorICAgICAgICAgICAgOiAiMCIgKHByZXZfcm93KSwgIC8vIGVzaSAgICAgICAgICAvLyBpbnB1dCByZWdzCisgICAgICAgICAgICAgICIxIiAocm93KSAgICAgICAgLy8gZWRpCiAKLSAgICAgICAgICAgIDogIiVlYngiLCAiJWVkaSIsICIlZXNpIiwgIiVtbTAiLCAiJW1tMSIsICIlbW0yIiwgIiVtbTMiLCAiJW1tNCIsICIlbW01IiwgIiVtbTYiLCAiJW1tNyIgLy8gQ0hFQ0tBU006IGNsb2JiZXIgbGlzdAorICAgICAgICAgICAgOiAiJWVjeCIgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKKyNpZiAwICAvKiAlbW0wLCAuLi4sICVtbTcgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLworICAgICAgICAgICAgLCAiJW1tMCIsICIlbW0xIiwgIiVtbTIiLCAiJW1tMyIKKyAgICAgICAgICAgICwgIiVtbTQiLCAiJW1tNSIsICIlbW02IiwgIiVtbTciCisjZW5kaWYKICAgICAgICAgICk7CiAgICAgICB9CiAgICAgICBicmVhazsgIC8vIGVuZCA0LDYgYnBwCiAKICAgICAgIGNhc2UgMjoKICAgICAgIHsKLSAgICAgICAgIEFjdGl2ZU1hc2sudXNlICA9IDB4MDAwMDAwMDAwMDAwZmZmZjsKLSAgICAgICAgIFNoaWZ0QnBwLnVzZSA9IDI0OyAgIC8vID09IDMgKiA4Ci0gICAgICAgICBTaGlmdFJlbS51c2UgPSA0MDsgICAvLyA9PSA2NCAtIDI0Ci0gICAgICAgICBfX2FzbV9fICgKLSAgICAgICAgICAgIC8vIExvYWQgQWN0aXZlTWFzawotICAgICAgICAgICAgIm1vdnEgJEFjdGl2ZU1hc2ssICUlbW03ICAgICBcblx0IgotICAgICAgICAgICAgLy8gUmUtaW5pdCBhZGRyZXNzIHBvaW50ZXJzIGFuZCBvZmZzZXQKLSAgICAgICAgICAgICJtb3ZsIF9kaWYsICUlZWJ4ICAgICAgICAgICAgXG5cdCIgLy8gZWJ4ID09PiB4ID0gb2Zmc2V0IHRvIGFsaWdubWVudCBib3VuZGFyeQotICAgICAgICAgICAgIm1vdnEgJExCQ2FycnlNYXNrLCAlJW1tNSAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IiAvLyBlZGkgPT0+IEF2Zyh4KQotICAgICAgICAgICAgIm1vdnEgJEhCQ2xlYXJNYXNrLCAlJW1tNCAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IiAvLyBlc2kgPT0+IFByaW9yKHgpCi0gICAgICAgICAgICAvLyBQUklNRSB0aGUgcHVtcCAobG9hZCB0aGUgZmlyc3QgUmF3KHgtYnBwKSBkYXRhIHNldAotICAgICAgICAgICAgIm1vdnEgLTgoJSVlZGksJSVlYngsKSwgJSVtbTIgXG5cdCIgLy8gTG9hZCBwcmV2aW91cyBhbGlnbmVkIDggYnl0ZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICh3ZSBjb3JyZWN0IHBvc2l0aW9uIGluIGxvb3AgYmVsb3cpCisgICAgICAgICBfQWN0aXZlTWFzay51c2UgID0gMHgwMDAwMDAwMDAwMDBmZmZmTEw7CisgICAgICAgICBfU2hpZnRCcHAudXNlID0gMTY7ICAgLy8gPT0gMiAqIDgKKyAgICAgICAgIF9TaGlmdFJlbS51c2UgPSA0ODsgICAvLyA9PSA2NCAtIDE2CisKKyAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICAgICAgIC8vIGxvYWQgX0FjdGl2ZU1hc2sKKyAgICAgICAgICAgICJtb3ZxIF9BY3RpdmVNYXNrLCAlJW1tNyAgICAgXG5cdCIKKyAgICAgICAgICAgIC8vIHJlLWluaXQgYWRkcmVzcyBwb2ludGVycyBhbmQgb2Zmc2V0CisgICAgICAgICAgICAibW92bCBfZGlmLCAlJWVjeCAgICAgICAgICAgIFxuXHQiIC8vIGVjeDogIHggPSBvZmZzZXQgdG8gYWxpZ25tZW50IGJvdW5kYXJ5CisgICAgICAgICAgICAibW92cSBfTEJDYXJyeU1hc2ssICUlbW01ICAgIFxuXHQiCisvLyBwcmVsb2FkICAibW92bCByb3csICUlZWRpICAgICAgICAgICAgIFxuXHQiIC8vIGVkaTogIEF2Zyh4KQorICAgICAgICAgICAgIm1vdnEgX0hCQ2xlYXJNYXNrLCAlJW1tNCAgICBcblx0IgorLy8gcHJlbG9hZCAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IiAvLyBlc2k6ICBQcmlvcih4KQorCisgICAgICAgICAgICAvLyBwcmltZSB0aGUgcHVtcDogIGxvYWQgdGhlIGZpcnN0IFJhdyh4LWJwcCkgZGF0YSBzZXQKKyAgICAgICAgICAgICJtb3ZxIC04KCUlZWRpLCUlZWN4LCksICUlbW0yIFxuXHQiIC8vIGxvYWQgcHJldmlvdXMgYWxpZ25lZCA4IGJ5dGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAod2UgY29ycmVjdCBwb3MuIGluIGxvb3AgYmVsb3cpCiAgICAgICAgICAiYXZnXzJscDogICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92cSAoJSVlZGksJSVlYngsKSwgJSVtbTAgIFxuXHQiCi0gICAgICAgICAgICAicHNsbHEgJFNoaWZ0UmVtLCAlJW1tMiAgICAgIFxuXHQiIC8vIHNoaWZ0IGRhdGEgdG8gcG9zaXRpb24gY29ycmVjdGx5Ci0gICAgICAgICAgICAibW92cSAoJSVlc2ksJSVlYngsKSwgJSVtbTEgIFxuXHQiCi0gICAgICAgICAgICAvLyBBZGQgKFByZXZfcm93LzIpIHRvIEF2ZXJhZ2UKKyAgICAgICAgICAgICJtb3ZxICglJWVkaSwlJWVjeCwpLCAlJW1tMCAgXG5cdCIKKyAgICAgICAgICAgICJwc3JscSBfU2hpZnRSZW0sICUlbW0yICAgICAgXG5cdCIgLy8gc2hpZnQgZGF0YSB0byBwb3MuIGNvcnJlY3RseQorICAgICAgICAgICAgIm1vdnEgKCUlZXNpLCUlZWN4LCksICUlbW0xICBcblx0IiAvLyAgKEdSUiBCVUdGSVg6ICB3YXMgcHNsbHEpCisgICAgICAgICAgICAvLyBhZGQgKFByZXZfcm93LzIpIHRvIGF2ZXJhZ2UKICAgICAgICAgICAgICJtb3ZxICUlbW01LCAlJW1tMyAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwYW5kICUlbW0xLCAlJW1tMyAgICAgICAgICAgXG5cdCIgLy8gZ2V0IGxzYiBmb3IgZWFjaCBwcmV2X3JvdyBieXRlCiAgICAgICAgICAgICAicHNybHEgJDEsICUlbW0xICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSBwcmV2X3JvdyBieXRlcyBieSAyCiAgICAgICAgICAgICAicGFuZCAgJSVtbTQsICUlbW0xICAgICAgICAgIFxuXHQiIC8vIGNsZWFyIGludmFsaWQgYml0IDcgb2YgZWFjaCBieXRlCiAgICAgICAgICAgICAibW92cSAlJW1tNywgJSVtbTYgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicGFkZGIgJSVtbTEsICUlbW0wICAgICAgICAgIFxuXHQiIC8vIGFkZCAoUHJldl9yb3cvMikgdG8gQXZnIGZvciBlYWNoIGJ5dGUKLSAgICAgICAgICAgIC8vIEFkZCAxc3QgYWN0aXZlIGdyb3VwIChSYXcoeC1icHApLzIpIHRvIEF2ZXJhZ2Ugd2l0aCBMQkNhcnJ5CisKKyAgICAgICAgICAgIC8vIGFkZCAxc3QgYWN0aXZlIGdyb3VwIChSYXcoeC1icHApLzIpIHRvIGF2ZXJhZ2Ugd2l0aCBfTEJDYXJyeQogICAgICAgICAgICAgIm1vdnEgJSVtbTMsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBub3cgdXNlIG1tMSBmb3IgZ2V0dGluZyBMQkNhcnJ5cwogICAgICAgICAgICAgInBhbmQgJSVtbTIsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBnZXQgTEJDYXJyeXMgZm9yIGVhY2ggYnl0ZSB3aGVyZSBib3RoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsc2IncyB3ZXJlID09IDEgKE9ubHkgdmFsaWQgZm9yIGFjdGl2ZSBncm91cCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbHNiJ3Mgd2VyZSA9PSAxIChvbmx5IHZhbGlkIGZvciBhY3RpdmUgZ3JvdXApCiAgICAgICAgICAgICAicHNybHEgJDEsICUlbW0yICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSByYXcgYnl0ZXMgYnkgMgogICAgICAgICAgICAgInBhbmQgICUlbW00LCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBjbGVhciBpbnZhbGlkIGJpdCA3IG9mIGVhY2ggYnl0ZQogICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBhZGQgTEJDYXJyeXMgdG8gKFJhdyh4LWJwcCkvMikgZm9yIGVhY2ggYnl0ZQotICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBMZWF2ZSBvbmx5IEFjdGl2ZSBHcm91cCAxIGJ5dGVzIHRvIGFkZCB0byBBdmcKLSAgICAgICAgICAgICJwYWRkYiAlJW1tMiwgJSVtbTAgICAgICAgICAgXG5cdCIgLy8gYWRkIChSYXcvMikgKyBMQkNhcnJ5cyB0byBBdmcgZm9yIGVhY2ggQWN0aXZlIGJ5dGUKLSAgICAgICAgICAgIC8vIEFkZCAybmQgYWN0aXZlIGdyb3VwIChSYXcoeC1icHApLzIpIHRvIEF2ZXJhZ2Ugd2l0aCBMQkNhcnJ5Ci0gICAgICAgICAgICAicHNsbHEgJFNoaWZ0QnBwLCAlJW1tNiAgICAgIFxuXHQiIC8vIHNoaWZ0IHRoZSBtbTYgbWFzayB0byBjb3ZlciBieXRlcyAyICYgMwotICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBtb3YgdXBkYXRlZCBSYXdzIHRvIG1tMgotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTIgICAgICBcblx0IiAvLyBzaGlmdCBkYXRhIHRvIHBvc2l0aW9uIGNvcnJlY3RseQotICAgICAgICAgICAgIm1vdnEgJSVtbTMsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBub3cgdXNlIG1tMSBmb3IgZ2V0dGluZyBMQkNhcnJ5cwotICAgICAgICAgICAgInBhbmQgJSVtbTIsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBnZXQgTEJDYXJyeXMgZm9yIGVhY2ggYnl0ZSB3aGVyZSBib3RoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxzYidzIHdlcmUgPT0gMSAoT25seSB2YWxpZCBmb3IgYWN0aXZlIGdyb3VwKQotICAgICAgICAgICAgInBzcmxxICQxLCAlJW1tMiAgICAgICAgICAgICBcblx0IiAvLyBkaXZpZGUgcmF3IGJ5dGVzIGJ5IDIKLSAgICAgICAgICAgICJwYW5kICAlJW1tNCwgJSVtbTIgICAgICAgICAgXG5cdCIgLy8gY2xlYXIgaW52YWxpZCBiaXQgNyBvZiBlYWNoIGJ5dGUKLSAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTIgICAgICAgICAgXG5cdCIgLy8gYWRkIExCQ2FycnlzIHRvIChSYXcoeC1icHApLzIpIGZvciBlYWNoIGJ5dGUKLSAgICAgICAgICAgICJwYW5kICUlbW02LCAlJW1tMiAgICAgICAgICAgXG5cdCIgLy8gTGVhdmUgb25seSBBY3RpdmUgR3JvdXAgMiBieXRlcyB0byBhZGQgdG8gQXZnCisgICAgICAgICAgICAicGFuZCAlJW1tNiwgJSVtbTIgICAgICAgICAgIFxuXHQiIC8vIGxlYXZlIG9ubHkgQWN0aXZlIEdyb3VwIDEgYnl0ZXMgdG8gYWRkIHRvIEF2ZwogICAgICAgICAgICAgInBhZGRiICUlbW0yLCAlJW1tMCAgICAgICAgICBcblx0IiAvLyBhZGQgKFJhdy8yKSArIExCQ2FycnlzIHRvIEF2ZyBmb3IgZWFjaCBBY3RpdmUgYnl0ZQogCi0gICAgICAgICAgICAvLyBBZGQgcmRkIGFjdGl2ZSBncm91cCAoUmF3KHgtYnBwKS8yKSB0byBBdmVyYWdlIHdpdGggTEJDYXJyeQotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTYgICAgICBcblx0IiAvLyBzaGlmdCB0aGUgbW02IG1hc2sgdG8gY292ZXIgYnl0ZXMgNCAmIDUKKyAgICAgICAgICAgIC8vIGFkZCAybmQgYWN0aXZlIGdyb3VwIChSYXcoeC1icHApLzIpIHRvIGF2ZXJhZ2Ugd2l0aCBfTEJDYXJyeQorICAgICAgICAgICAgInBzbGxxIF9TaGlmdEJwcCwgJSVtbTYgICAgICBcblx0IiAvLyBzaGlmdCB0aGUgbW02IG1hc2sgdG8gY292ZXIgYnl0ZXMgMiAmIDMKICAgICAgICAgICAgICJtb3ZxICUlbW0wLCAlJW1tMiAgICAgICAgICAgXG5cdCIgLy8gbW92IHVwZGF0ZWQgUmF3cyB0byBtbTIKLSAgICAgICAgICAgICJwc2xscSAkU2hpZnRCcHAsICUlbW0yICAgICAgXG5cdCIgLy8gc2hpZnQgZGF0YSB0byBwb3NpdGlvbiBjb3JyZWN0bHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGF0YSBvbmx5IG5lZWRzIHRvIGJlIHNoaWZ0ZWQgb25jZSBoZXJlIHRvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgY29ycmVjdCB4LWJwcCBvZmZzZXQuCisgICAgICAgICAgICAicHNsbHEgX1NoaWZ0QnBwLCAlJW1tMiAgICAgIFxuXHQiIC8vIHNoaWZ0IGRhdGEgdG8gcG9zLiBjb3JyZWN0bHkKICAgICAgICAgICAgICJtb3ZxICUlbW0zLCAlJW1tMSAgICAgICAgICAgXG5cdCIgLy8gbm93IHVzZSBtbTEgZm9yIGdldHRpbmcgTEJDYXJyeXMKICAgICAgICAgICAgICJwYW5kICUlbW0yLCAlJW1tMSAgICAgICAgICAgXG5cdCIgLy8gZ2V0IExCQ2FycnlzIGZvciBlYWNoIGJ5dGUgd2hlcmUgYm90aAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsc2IncyB3ZXJlID09IDEgKE9ubHkgdmFsaWQgZm9yIGFjdGl2ZSBncm91cCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbHNiJ3Mgd2VyZSA9PSAxIChvbmx5IHZhbGlkIGZvciBhY3RpdmUgZ3JvdXApCiAgICAgICAgICAgICAicHNybHEgJDEsICUlbW0yICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSByYXcgYnl0ZXMgYnkgMgogICAgICAgICAgICAgInBhbmQgICUlbW00LCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBjbGVhciBpbnZhbGlkIGJpdCA3IG9mIGVhY2ggYnl0ZQogICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBhZGQgTEJDYXJyeXMgdG8gKFJhdyh4LWJwcCkvMikgZm9yIGVhY2ggYnl0ZQotICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBMZWF2ZSBvbmx5IEFjdGl2ZSBHcm91cCAyIGJ5dGVzIHRvIGFkZCB0byBBdmcKKyAgICAgICAgICAgICJwYW5kICUlbW02LCAlJW1tMiAgICAgICAgICAgXG5cdCIgLy8gbGVhdmUgb25seSBBY3RpdmUgR3JvdXAgMiBieXRlcyB0byBhZGQgdG8gQXZnCiAgICAgICAgICAgICAicGFkZGIgJSVtbTIsICUlbW0wICAgICAgICAgIFxuXHQiIC8vIGFkZCAoUmF3LzIpICsgTEJDYXJyeXMgdG8gQXZnIGZvciBlYWNoIEFjdGl2ZSBieXRlCiAKLSAgICAgICAgICAgIC8vIEFkZCA0dGggYWN0aXZlIGdyb3VwIChSYXcoeC1icHApLzIpIHRvIEF2ZXJhZ2Ugd2l0aCBMQkNhcnJ5Ci0gICAgICAgICAgICAicHNsbHEgJFNoaWZ0QnBwLCAlJW1tNiAgICAgIFxuXHQiIC8vIHNoaWZ0IHRoZSBtbTYgbWFzayB0byBjb3ZlciBieXRlcyA2ICYgNworICAgICAgICAgICAgLy8gYWRkIDNyZCBhY3RpdmUgZ3JvdXAgKFJhdyh4LWJwcCkvMikgdG8gYXZlcmFnZSB3aXRoIF9MQkNhcnJ5CisgICAgICAgICAgICAicHNsbHEgX1NoaWZ0QnBwLCAlJW1tNiAgICAgIFxuXHQiIC8vIHNoaWZ0IHRoZSBtbTYgbWFzayB0byBjb3ZlciBieXRlcyA0ICYgNQogICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBtb3YgdXBkYXRlZCBSYXdzIHRvIG1tMgotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTIgICAgICBcblx0IiAvLyBzaGlmdCBkYXRhIHRvIHBvc2l0aW9uIGNvcnJlY3RseQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGF0YSBvbmx5IG5lZWRzIHRvIGJlIHNoaWZ0ZWQgb25jZSBoZXJlIHRvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIGNvcnJlY3QgeC1icHAgb2Zmc2V0LgotICAgICAgICAgICAgImFkZGwgJDgsICUlZWJ4ICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgInBzbGxxIF9TaGlmdEJwcCwgJSVtbTIgICAgICBcblx0IiAvLyBzaGlmdCBkYXRhIHRvIHBvcy4gY29ycmVjdGx5CiAgICAgICAgICAgICAibW92cSAlJW1tMywgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIG5vdyB1c2UgbW0xIGZvciBnZXR0aW5nIExCQ2FycnlzCiAgICAgICAgICAgICAicGFuZCAlJW1tMiwgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIGdldCBMQkNhcnJ5cyBmb3IgZWFjaCBieXRlIHdoZXJlIGJvdGgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbHNiJ3Mgd2VyZSA9PSAxIChPbmx5IHZhbGlkIGZvciBhY3RpdmUgZ3JvdXApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxzYidzIHdlcmUgPT0gMSAob25seSB2YWxpZCBmb3IgYWN0aXZlIGdyb3VwKQogICAgICAgICAgICAgInBzcmxxICQxLCAlJW1tMiAgICAgICAgICAgICBcblx0IiAvLyBkaXZpZGUgcmF3IGJ5dGVzIGJ5IDIKICAgICAgICAgICAgICJwYW5kICAlJW1tNCwgJSVtbTIgICAgICAgICAgXG5cdCIgLy8gY2xlYXIgaW52YWxpZCBiaXQgNyBvZiBlYWNoIGJ5dGUKICAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTIgICAgICAgICAgXG5cdCIgLy8gYWRkIExCQ2FycnlzIHRvIChSYXcoeC1icHApLzIpIGZvciBlYWNoIGJ5dGUKLSAgICAgICAgICAgICJwYW5kICUlbW02LCAlJW1tMiAgICAgICAgICAgXG5cdCIgLy8gTGVhdmUgb25seSBBY3RpdmUgR3JvdXAgMiBieXRlcyB0byBhZGQgdG8gQXZnCisgICAgICAgICAgICAicGFuZCAlJW1tNiwgJSVtbTIgICAgICAgICAgIFxuXHQiIC8vIGxlYXZlIG9ubHkgQWN0aXZlIEdyb3VwIDIgYnl0ZXMgdG8gYWRkIHRvIEF2ZwogICAgICAgICAgICAgInBhZGRiICUlbW0yLCAlJW1tMCAgICAgICAgICBcblx0IiAvLyBhZGQgKFJhdy8yKSArIExCQ2FycnlzIHRvIEF2ZyBmb3IgZWFjaCBBY3RpdmUgYnl0ZQogCi0gICAgICAgICAgICAiY21wbCBfTU1YTGVuZ3RoLCAlJWVieCAgICAgIFxuXHQiCi0gICAgICAgICAgICAvLyBOb3cgcmVhZHkgdG8gd3JpdGUgYmFjayB0byBtZW1vcnkKLSAgICAgICAgICAgICJtb3ZxICUlbW0wLCAtOCglJWVkaSwlJWVieCwpIFxuXHQiCi0gICAgICAgICAgICAvLyBQcmVwIFJhdyh4LWJwcCkgZm9yIG5leHQgbG9vcAorICAgICAgICAgICAgLy8gYWRkIDR0aCBhY3RpdmUgZ3JvdXAgKFJhdyh4LWJwcCkvMikgdG8gYXZlcmFnZSB3aXRoIF9MQkNhcnJ5CisgICAgICAgICAgICAicHNsbHEgX1NoaWZ0QnBwLCAlJW1tNiAgICAgIFxuXHQiIC8vIHNoaWZ0IHRoZSBtbTYgbWFzayB0byBjb3ZlciBieXRlcyA2ICYgNworICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBtb3YgdXBkYXRlZCBSYXdzIHRvIG1tMgorICAgICAgICAgICAgInBzbGxxIF9TaGlmdEJwcCwgJSVtbTIgICAgICBcblx0IiAvLyBzaGlmdCBkYXRhIHRvIHBvcy4gY29ycmVjdGx5CisgICAgICAgICAgICAiYWRkbCAkOCwgJSVlY3ggICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAlJW1tMywgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIG5vdyB1c2UgbW0xIGZvciBnZXR0aW5nIExCQ2FycnlzCisgICAgICAgICAgICAicGFuZCAlJW1tMiwgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIGdldCBMQkNhcnJ5cyBmb3IgZWFjaCBieXRlIHdoZXJlIGJvdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbHNiJ3Mgd2VyZSA9PSAxIChvbmx5IHZhbGlkIGZvciBhY3RpdmUgZ3JvdXApCisgICAgICAgICAgICAicHNybHEgJDEsICUlbW0yICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSByYXcgYnl0ZXMgYnkgMgorICAgICAgICAgICAgInBhbmQgICUlbW00LCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBjbGVhciBpbnZhbGlkIGJpdCA3IG9mIGVhY2ggYnl0ZQorICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBhZGQgTEJDYXJyeXMgdG8gKFJhdyh4LWJwcCkvMikgZm9yIGVhY2ggYnl0ZQorICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0yICAgICAgICAgICBcblx0IiAvLyBsZWF2ZSBvbmx5IEFjdGl2ZSBHcm91cCAyIGJ5dGVzIHRvIGFkZCB0byBBdmcKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMiwgJSVtbTAgICAgICAgICAgXG5cdCIgLy8gYWRkIChSYXcvMikgKyBMQkNhcnJ5cyB0byBBdmcgZm9yIGVhY2ggQWN0aXZlIGJ5dGUKKworICAgICAgICAgICAgImNtcGwgX01NWExlbmd0aCwgJSVlY3ggICAgICBcblx0IgorICAgICAgICAgICAgLy8gbm93IHJlYWR5IHRvIHdyaXRlIGJhY2sgdG8gbWVtb3J5CisgICAgICAgICAgICAibW92cSAlJW1tMCwgLTgoJSVlZGksJSVlY3gsKSBcblx0IgorICAgICAgICAgICAgLy8gcHJlcCBSYXcoeC1icHApIGZvciBuZXh0IGxvb3AKICAgICAgICAgICAgICJtb3ZxICUlbW0wLCAlJW1tMiAgICAgICAgICAgXG5cdCIgLy8gbW92IHVwZGF0ZWQgUmF3cyB0byBtbTIKICAgICAgICAgICAgICJqYiBhdmdfMmxwICAgICAgICAgICAgICAgICAgXG5cdCIKIAotICAgICAgICAgICAgOiAvLyBGSVhBU006IG91dHB1dCByZWdzL3ZhcnMgZ28gaGVyZSwgZS5nLjogICI9bSIgKG1lbW9yeV92YXIpCisgICAgICAgICAgICA6ICI9UyIgKGR1bW15X3ZhbHVlX1MpLCAgICAgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKIAotICAgICAgICAgICAgOiAvLyBGSVhBU006IGlucHV0IHJlZ3MsIGUuZy46ICAiYyIgKGNvdW50KSwgIlMiIChzcmMpLCAiRCIgKGRlc3QpCisgICAgICAgICAgICA6ICIwIiAocHJldl9yb3cpLCAgLy8gZXNpICAgICAgICAgIC8vIGlucHV0IHJlZ3MKKyAgICAgICAgICAgICAgIjEiIChyb3cpICAgICAgICAvLyBlZGkKIAotICAgICAgICAgICAgOiAiJWVieCIsICIlZWRpIiwgIiVlc2kiLCAiJW1tMCIsICIlbW0xIiwgIiVtbTIiLCAiJW1tMyIsICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IiAvLyBDSEVDS0FTTTogY2xvYmJlciBsaXN0CisgICAgICAgICAgICA6ICIlZWN4IiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAorI2lmIDAgIC8qICVtbTAsIC4uLiwgJW1tNyBub3Qgc3VwcG9ydGVkIGJ5IGdjYyAyLjcuMi4zIG9yIGVnY3MgMS4xICovCisgICAgICAgICAgICAsICIlbW0wIiwgIiVtbTEiLCAiJW1tMiIsICIlbW0zIgorICAgICAgICAgICAgLCAiJW1tNCIsICIlbW01IiwgIiVtbTYiLCAiJW1tNyIKKyNlbmRpZgogICAgICAgICAgKTsKICAgICAgIH0KICAgICAgIGJyZWFrOyAgLy8gZW5kIDIgYnBwCiAKICAgICAgIGNhc2UgMToKICAgICAgIHsKLSAgICAgICAgIF9fYXNtX18gKAotICAgICAgICAgICAgLy8gUmUtaW5pdCBhZGRyZXNzIHBvaW50ZXJzIGFuZCBvZmZzZXQKLSAgICAgICAgICAgICJtb3ZsIF9kaWYsICUlZWJ4ICAgICAgICAgICAgXG5cdCIgLy8gZWJ4ID09PiB4ID0gb2Zmc2V0IHRvIGFsaWdubWVudCBib3VuZGFyeQotICAgICAgICAgICAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IiAvLyBlZGkgPT0+IEF2Zyh4KQotICAgICAgICAgICAgImNtcGwgX0Z1bGxMZW5ndGgsICUlZWJ4ICAgICBcblx0IiAvLyBUZXN0IGlmIG9mZnNldCBhdCBlbmQgb2YgYXJyYXkKKyAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICAgICAgIC8vIHJlLWluaXQgYWRkcmVzcyBwb2ludGVycyBhbmQgb2Zmc2V0CisjaWZkZWYgX19QSUNfXworICAgICAgICAgICAgInB1c2hsICUlZWJ4ICAgICAgICAgICAgICAgICBcblx0IiAvLyBzYXZlIEdsb2JhbCBPZmZzZXQgVGFibGUgaW5kZXgKKyNlbmRpZgorICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlYnggICAgICAgICAgICBcblx0IiAvLyBlYng6ICB4ID0gb2Zmc2V0IHRvIGFsaWdubWVudCBib3VuZGFyeQorLy8gcHJlbG9hZCAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IiAvLyBlZGk6ICBBdmcoeCkKKyAgICAgICAgICAgICJjbXBsIF9GdWxsTGVuZ3RoLCAlJWVieCAgICAgXG5cdCIgLy8gdGVzdCBpZiBvZmZzZXQgYXQgZW5kIG9mIGFycmF5CiAgICAgICAgICAgICAiam5iIGF2Z18xZW5kICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAvLyBEbyBQYWV0aCBkZWNvZGUgZm9yIHJlbWFpbmluZyBieXRlcwotICAgICAgICAgICAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IiAvLyBlc2kgPT0+IFByaW9yKHgpCisgICAgICAgICAgICAvLyBkbyBQYWV0aCBkZWNvZGUgZm9yIHJlbWFpbmluZyBieXRlcworLy8gcHJlbG9hZCAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IiAvLyBlc2k6ICBQcmlvcih4KQogICAgICAgICAgICAgIm1vdmwgJSVlZGksICUlZWR4ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInhvcmwgJSVlY3gsICUlZWN4ICAgICAgICAgICBcblx0IiAvLyB6ZXJvIGVjeCBiZWZvcmUgdXNpbmcgY2wgJiBjeCBpbiBsb29wIGJlbG93Ci0gICAgICAgICAgICAic3VibCBicHAsICUlZWR4ICAgICAgICAgICAgIFxuXHQiIC8vIGVkeCA9PT4gUmF3KHgtYnBwKQorLy8gcHJlbG9hZCAgInN1YmwgYnBwLCAlJWVkeCAgICAgICAgICAgICBcblx0IiAvLyAoYnBwIGlzIHByZWxvYWRlZCBpbnRvIGVjeCkKKyAgICAgICAgICAgICJzdWJsICUlZWN4LCAlJWVkeCAgICAgICAgICAgXG5cdCIgLy8gZWR4OiAgUmF3KHgtYnBwKQorICAgICAgICAgICAgInhvcmwgJSVlY3gsICUlZWN4ICAgICAgICAgICBcblx0IiAvLyB6ZXJvIGVjeCBiZWZvcmUgdXNpbmcgY2wgJiBjeAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgaW4gbG9vcCBiZWxvdwogICAgICAgICAgImF2Z18xbHA6ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgLy8gUmF3KHgpID0gQXZnKHgpICsgKChSYXcoeC1icHApICsgUHJpb3IoeCkpLzIpCiAgICAgICAgICAgICAieG9ybCAlJWVheCwgJSVlYXggICAgICAgICAgIFxuXHQiCkBAIC0yODU1LDc3ICsyOTQyLDk5IEBACiAgICAgICAgICAgICAiYWRkdyAlJWN4LCAlJWF4ICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAiaW5jbCAlJWVieCAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAic2hydyAlJWF4ICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSBieSAyCi0gICAgICAgICAgICAiYWRkYiAtMSglJWVkaSwlJWVieCwpLCAlJWFsIFxuXHQiIC8vIEFkZCBBdmcoeCk7IC0xIHRvIG9mZnNldCBpbmMgZWJ4Ci0gICAgICAgICAgICAiY21wbCBfRnVsbExlbmd0aCwgJSVlYnggICAgIFxuXHQiIC8vIENoZWNrIGlmIGF0IGVuZCBvZiBhcnJheQotICAgICAgICAgICAgIm1vdmIgJSVhbCwgLTEoJSVlZGksJSVlYngsKSBcblx0IiAvLyBXcml0ZSBiYWNrIFJhdyh4KTsKKyAgICAgICAgICAgICJhZGRiIC0xKCUlZWRpLCUlZWJ4LCksICUlYWwgXG5cdCIgLy8gYWRkIEF2Zyh4KTsgLTEgdG8gb2Zmc2V0IGluYyBlYngKKyAgICAgICAgICAgICJjbXBsIF9GdWxsTGVuZ3RoLCAlJWVieCAgICAgXG5cdCIgLy8gY2hlY2sgaWYgYXQgZW5kIG9mIGFycmF5CisgICAgICAgICAgICAibW92YiAlJWFsLCAtMSglJWVkaSwlJWVieCwpIFxuXHQiIC8vIHdyaXRlIGJhY2sgUmF3KHgpOwogICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vdiBkb2VzIG5vdCBhZmZlY3QgZmxhZ3M7IC0xIHRvIG9mZnNldCBpbmMgZWJ4CiAgICAgICAgICAgICAiamIgYXZnXzFscCAgICAgICAgICAgICAgICAgIFxuXHQiCisKICAgICAgICAgICJhdmdfMWVuZDogICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyNpZmRlZiBfX1BJQ19fCisgICAgICAgICAgICAicG9wbCAlJWVieCAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIEdsb2JhbCBPZmZzZXQgVGFibGUgaW5kZXgKKyNlbmRpZgogCi0gICAgICAgICAgICA6IC8vIEZJWEFTTTogb3V0cHV0IHJlZ3MvdmFycyBnbyBoZXJlLCBlLmcuOiAgIj1tIiAobWVtb3J5X3ZhcikKKyAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQorICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKKyAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKIAotICAgICAgICAgICAgOiAvLyBGSVhBU006IGlucHV0IHJlZ3MsIGUuZy46ICAiYyIgKGNvdW50KSwgIlMiIChzcmMpLCAiRCIgKGRlc3QpCisgICAgICAgICAgICA6ICIwIiAoYnBwKSwgICAgICAgLy8gZWN4ICAgICAgICAgIC8vIGlucHV0IHJlZ3MKKyAgICAgICAgICAgICAgIjEiIChwcmV2X3JvdyksICAvLyBlc2kKKyAgICAgICAgICAgICAgIjIiIChyb3cpICAgICAgICAvLyBlZGkKIAotICAgICAgICAgICAgOiAiJWVheCIsICIlZWJ4IiwgIiVlY3giLCAiJWVkeCIsICIlZWRpIiwgIiVlc2kiIC8vIENIRUNLQVNNOiBjbG9iYmVyIGxpc3QKKyAgICAgICAgICAgIDogIiVlYXgiLCAiJWVkeCIgICAgICAgICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CisjaWZuZGVmIF9fUElDX18KKyAgICAgICAgICAgICwgIiVlYngiCisjZW5kaWYKICAgICAgICAgICk7CiAgICAgICB9CiAgICAgICByZXR1cm47ICAvLyBlbmQgMSBicHAKIAogICAgICAgY2FzZSA4OgogICAgICAgewotICAgICAgICAgX19hc21fXyAoCi0gICAgICAgICAgICAvLyBSZS1pbml0IGFkZHJlc3MgcG9pbnRlcnMgYW5kIG9mZnNldAotICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlYnggICAgICAgICAgICBcblx0IiAvLyBlYnggPT0+IHggPSBvZmZzZXQgdG8gYWxpZ25tZW50IGJvdW5kYXJ5Ci0gICAgICAgICAgICAibW92cSAkTEJDYXJyeU1hc2ssICUlbW01ICAgIFxuXHQiCi0gICAgICAgICAgICAibW92bCByb3csICUlZWRpICAgICAgICAgICAgIFxuXHQiIC8vIGVkaSA9PT4gQXZnKHgpCi0gICAgICAgICAgICAibW92cSAkSEJDbGVhck1hc2ssICUlbW00ICAgIFxuXHQiCi0gICAgICAgICAgICAibW92bCBwcmV2X3JvdywgJSVlc2kgICAgICAgIFxuXHQiIC8vIGVzaSA9PT4gUHJpb3IoeCkKLSAgICAgICAgICAgIC8vIFBSSU1FIHRoZSBwdW1wIChsb2FkIHRoZSBmaXJzdCBSYXcoeC1icHApIGRhdGEgc2V0Ci0gICAgICAgICAgICAibW92cSAtOCglJWVkaSwlJWVieCwpLCAlJW1tMiBcblx0IiAvLyBMb2FkIHByZXZpb3VzIGFsaWduZWQgOCBieXRlcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoTk8gTkVFRCB0byBjb3JyZWN0IHBvc2l0aW9uIGluIGxvb3AgYmVsb3cpCisgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCisgICAgICAgICAgICAvLyByZS1pbml0IGFkZHJlc3MgcG9pbnRlcnMgYW5kIG9mZnNldAorICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlY3ggICAgICAgICAgICBcblx0IiAvLyBlY3g6ICB4ID09IG9mZnNldCB0byBhbGlnbm1lbnQKKyAgICAgICAgICAgICJtb3ZxIF9MQkNhcnJ5TWFzaywgJSVtbTUgICAgXG5cdCIgLy8gICAgICAgICAgICBib3VuZGFyeQorLy8gcHJlbG9hZCAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IiAvLyBlZGk6ICBBdmcoeCkKKyAgICAgICAgICAgICJtb3ZxIF9IQkNsZWFyTWFzaywgJSVtbTQgICAgXG5cdCIKKy8vIHByZWxvYWQgICJtb3ZsIHByZXZfcm93LCAlJWVzaSAgICAgICAgXG5cdCIgLy8gZXNpOiAgUHJpb3IoeCkKKworICAgICAgICAgICAgLy8gcHJpbWUgdGhlIHB1bXA6ICBsb2FkIHRoZSBmaXJzdCBSYXcoeC1icHApIGRhdGEgc2V0CisgICAgICAgICAgICAibW92cSAtOCglJWVkaSwlJWVjeCwpLCAlJW1tMiBcblx0IiAvLyBsb2FkIHByZXZpb3VzIGFsaWduZWQgOCBieXRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoTk8gTkVFRCB0byBjb3JyZWN0IHBvcy4gaW4gbG9vcCBiZWxvdykKKwogICAgICAgICAgImF2Z184bHA6ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgKCUlZWRpLCUlZWJ4LCksICUlbW0wICBcblx0IgorICAgICAgICAgICAgIm1vdnEgKCUlZWRpLCUlZWN4LCksICUlbW0wICBcblx0IgogICAgICAgICAgICAgIm1vdnEgJSVtbTUsICUlbW0zICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgKCUlZXNpLCUlZWJ4LCksICUlbW0xICBcblx0IgotICAgICAgICAgICAgImFkZGwgJDgsICUlZWJ4ICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgIm1vdnEgKCUlZXNpLCUlZWN4LCksICUlbW0xICBcblx0IgorICAgICAgICAgICAgImFkZGwgJDgsICUlZWN4ICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInBhbmQgJSVtbTEsICUlbW0zICAgICAgICAgICBcblx0IiAvLyBnZXQgbHNiIGZvciBlYWNoIHByZXZfcm93IGJ5dGUKICAgICAgICAgICAgICJwc3JscSAkMSwgJSVtbTEgICAgICAgICAgICAgXG5cdCIgLy8gZGl2aWRlIHByZXZfcm93IGJ5dGVzIGJ5IDIKLSAgICAgICAgICAgICJwYW5kICUlbW0yLCAlJW1tMyAgICAgICAgICAgXG5cdCIgLy8gZ2V0IExCQ2FycnlzIGZvciBlYWNoIGJ5dGUgd2hlcmUgYm90aAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsc2IncyB3ZXJlID09IDEKKyAgICAgICAgICAgICJwYW5kICUlbW0yLCAlJW1tMyAgICAgICAgICAgXG5cdCIgLy8gZ2V0IExCQ2FycnlzIGZvciBlYWNoIGJ5dGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIHdoZXJlIGJvdGggbHNiJ3Mgd2VyZSA9PSAxCiAgICAgICAgICAgICAicHNybHEgJDEsICUlbW0yICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSByYXcgYnl0ZXMgYnkgMgotICAgICAgICAgICAgInBhbmQgICUlbW00LCAlJW1tMSAgICAgICAgICBcblx0IiAvLyBjbGVhciBpbnZhbGlkIGJpdCA3IG9mIGVhY2ggYnl0ZQotICAgICAgICAgICAgInBhZGRiICUlbW0zLCAlJW1tMCAgICAgICAgICBcblx0IiAvLyBhZGQgTEJDYXJyeXMgdG8gQXZnIGZvciBlYWNoIGJ5dGUKLSAgICAgICAgICAgICJwYW5kICAlJW1tNCwgJSVtbTIgICAgICAgICAgXG5cdCIgLy8gY2xlYXIgaW52YWxpZCBiaXQgNyBvZiBlYWNoIGJ5dGUKLSAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgXG5cdCIgLy8gYWRkIChQcmV2X3Jvdy8yKSB0byBBdmcgZm9yIGVhY2ggYnl0ZQotICAgICAgICAgICAgInBhZGRiICUlbW0yLCAlJW1tMCAgICAgICAgICBcblx0IiAvLyBhZGQgKFJhdy8yKSB0byBBdmcgZm9yIGVhY2ggYnl0ZQotICAgICAgICAgICAgImNtcGwgX01NWExlbmd0aCwgJSVlYnggICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgJSVtbTAsIC04KCUlZWRpLCUlZWJ4LCkgXG5cdCIKKyAgICAgICAgICAgICJwYW5kICAlJW1tNCwgJSVtbTEgICAgICAgICAgXG5cdCIgLy8gY2xlYXIgaW52YWxpZCBiaXQgNywgZWFjaCBieXRlCisgICAgICAgICAgICAicGFkZGIgJSVtbTMsICUlbW0wICAgICAgICAgIFxuXHQiIC8vIGFkZCBMQkNhcnJ5cyB0byBBdmcsIGVhY2ggYnl0ZQorICAgICAgICAgICAgInBhbmQgICUlbW00LCAlJW1tMiAgICAgICAgICBcblx0IiAvLyBjbGVhciBpbnZhbGlkIGJpdCA3LCBlYWNoIGJ5dGUKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgXG5cdCIgLy8gYWRkIChQcmV2X3Jvdy8yKSB0byBBdmcsIGVhY2gKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMiwgJSVtbTAgICAgICAgICAgXG5cdCIgLy8gYWRkIChSYXcvMikgdG8gQXZnIGZvciBlYWNoCisgICAgICAgICAgICAiY21wbCBfTU1YTGVuZ3RoLCAlJWVjeCAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAlJW1tMCwgLTgoJSVlZGksJSVlY3gsKSBcblx0IgogICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0yICAgICAgICAgICBcblx0IiAvLyByZXVzZSBhcyBSYXcoeC1icHApCiAgICAgICAgICAgICAiamIgYXZnXzhscCAgICAgICAgICAgICAgICAgIFxuXHQiCiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBvdXRwdXQgcmVncy92YXJzIGdvIGhlcmUsIGUuZy46ICAiPW0iIChtZW1vcnlfdmFyKQorICAgICAgICAgICAgOiAiPVMiIChkdW1teV92YWx1ZV9TKSwgICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICAgICAgICI9RCIgKGR1bW15X3ZhbHVlX0QpCiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBpbnB1dCByZWdzLCBlLmcuOiAgImMiIChjb3VudCksICJTIiAoc3JjKSwgIkQiIChkZXN0KQorICAgICAgICAgICAgOiAiMCIgKHByZXZfcm93KSwgIC8vIGVzaSAgICAgICAgICAvLyBpbnB1dCByZWdzCisgICAgICAgICAgICAgICIxIiAocm93KSAgICAgICAgLy8gZWRpCiAKLSAgICAgICAgICAgIDogIiVlYngiLCAiJWVkaSIsICIlZXNpIiwgIiVtbTAiLCAiJW1tMSIsICIlbW0yIiwgIiVtbTMiLCAiJW1tNCIsICIlbW01IiAvLyBDSEVDS0FTTTogY2xvYmJlciBsaXN0CisgICAgICAgICAgICA6ICIlZWN4IiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAorI2lmIDAgIC8qICVtbTAsIC4uLiwgJW1tNSBub3Qgc3VwcG9ydGVkIGJ5IGdjYyAyLjcuMi4zIG9yIGVnY3MgMS4xICovCisgICAgICAgICAgICAsICIlbW0wIiwgIiVtbTEiLCAiJW1tMiIKKyAgICAgICAgICAgICwgIiVtbTMiLCAiJW1tNCIsICIlbW01IgorI2VuZGlmCiAgICAgICAgICApOwogICAgICAgfQogICAgICAgYnJlYWs7ICAvLyBlbmQgOCBicHAKIAotICAgICAgZGVmYXVsdDogICAgICAgICAgICAgICAgICAvLyBicHAgZ3JlYXRlciB0aGFuIDggKCE9IDEsMiwzLDQsNiw4KQorICAgICAgZGVmYXVsdDogICAgICAgICAgICAgICAgICAvLyBicHAgZ3JlYXRlciB0aGFuIDggKCE9IDEsMiwzLDQsWzVdLDYsWzddLDgpCiAgICAgICB7CiAKLSAgICAgIEdSUjogIFBSSU5UIEVSUk9SIEhFUkU6ICBTSE9VTEQgTkVWRVIgQkUgUkVBQ0hFRCAodW5sZXNzIHNtYWxsZXIgdGhhbiAxPykKKyAgICAgICAgIC8vIEdSUjogIFBSSU5UIEVSUk9SIEhFUkU6ICBTSE9VTEQgTkVWRVIgQkUgUkVBQ0hFRAorICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICJsaWJwbmc6ICBpbnRlcm5hbCBsb2dpYyBlcnJvciAocG5nX3JlYWRfZmlsdGVyX3Jvd19tbXhfYXZnKCkpXG4iKTsKIAotICAgICAgICBfX2FzbV9fICgKLSAgICAgICAgICAgICJtb3ZxICRMQkNhcnJ5TWFzaywgJSVtbTUgICAgXG5cdCIKLSAgICAgICAgICAgIC8vIFJlLWluaXQgYWRkcmVzcyBwb2ludGVycyBhbmQgb2Zmc2V0Ci0gICAgICAgICAgICAibW92bCBfZGlmLCAlJWVieCAgICAgICAgICAgIFxuXHQiIC8vIGVieCA9PT4geCA9IG9mZnNldCB0byBhbGlnbm1lbnQgYm91bmRhcnkKLSAgICAgICAgICAgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIgLy8gZWRpID09PiBBdmcoeCkKLSAgICAgICAgICAgICJtb3ZxICRIQkNsZWFyTWFzaywgJSVtbTQgICAgXG5cdCIKKyNpZiAwCisgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICAgICAgICJtb3ZxIF9MQkNhcnJ5TWFzaywgJSVtbTUgICAgXG5cdCIKKyAgICAgICAgICAgIC8vIHJlLWluaXQgYWRkcmVzcyBwb2ludGVycyBhbmQgb2Zmc2V0CisgICAgICAgICAgICAibW92bCBfZGlmLCAlJWVieCAgICAgICAgICAgIFxuXHQiIC8vIGVieDogIHggPSBvZmZzZXQgdG8gYWxpZ25tZW50IGJvdW5kYXJ5CisgICAgICAgICAgICAibW92bCByb3csICUlZWRpICAgICAgICAgICAgIFxuXHQiIC8vIGVkaTogIEF2Zyh4KQorICAgICAgICAgICAgIm1vdnEgX0hCQ2xlYXJNYXNrLCAlJW1tNCAgICBcblx0IgogICAgICAgICAgICAgIm1vdmwgJSVlZGksICUlZWR4ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IiAvLyBlc2kgPT0+IFByaW9yKHgpCi0gICAgICAgICAgICAic3VibCBicHAsICUlZWR4ICAgICAgICAgICAgIFxuXHQiIC8vIGVkeCA9PT4gUmF3KHgtYnBwKQorICAgICAgICAgICAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IiAvLyBlc2k6ICBQcmlvcih4KQorICAgICAgICAgICAgInN1YmwgYnBwLCAlJWVkeCAgICAgICAgICAgICBcblx0IiAvLyBlZHg6ICBSYXcoeC1icHApCiAgICAgICAgICAiYXZnX0FscDogICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAibW92cSAoJSVlZGksJSVlYngsKSwgJSVtbTAgIFxuXHQiCiAgICAgICAgICAgICAibW92cSAlJW1tNSwgJSVtbTMgICAgICAgICAgIFxuXHQiCkBAIC0yOTUwLDI0ICszMDU5LDMyIEBACiAKICAgICAgICAgICAgIDogLy8gRklYQVNNOiBpbnB1dCByZWdzLCBlLmcuOiAgImMiIChjb3VudCksICJTIiAoc3JjKSwgIkQiIChkZXN0KQogCi0gICAgICAgICAgICA6ICIlZWJ4IiwgIiVlZHgiLCAiJWVkaSIsICIlZXNpIiwgIiVtbTAiLCAiJW1tMSIsICIlbW0yIiwgIiVtbTMiLCAiJW1tNCIsICIlbW01IiAvLyBDSEVDS0FTTTogY2xvYmJlciBsaXN0CisgICAgICAgICAgICA6ICIlZWJ4IiwgIiVlZHgiLCAiJWVkaSIsICIlZXNpIiAvLyBDSEVDS0FTTTogY2xvYmJlciBsaXN0CiAgICAgICAgICApOworI2VuZGlmIC8qIDAgLSBORVZFUiBSRUFDSEVEICovCiAgICAgICB9CiAgICAgICBicmVhazsKLSAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gZW5kIHN3aXRjaCAoIGJwcCApCiAKLSAgIF9fYXNtX18gKAotICAgICAgLy8gTU1YIGFjY2VsZXJhdGlvbiBjb21wbGV0ZSBub3cgZG8gY2xlYW4tdXAKLSAgICAgIC8vIENoZWNrIGlmIGFueSByZW1haW5pbmcgYnl0ZXMgbGVmdCB0byBkZWNvZGUKLSAgICAgICJtb3ZsIF9NTVhMZW5ndGgsICUlZWJ4ICAgICAgXG5cdCIgLy8gZWJ4ID09PiB4ID0gb2Zmc2V0IGJ5dGVzIHJlbWFpbmluZyBhZnRlciBNTVgKLSAgICAgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIgLy8gZWRpID09PiBBdmcoeCkKLSAgICAgICJjbXBsIF9GdWxsTGVuZ3RoLCAlJWVieCAgICAgXG5cdCIgLy8gVGVzdCBpZiBvZmZzZXQgYXQgZW5kIG9mIGFycmF5CisgICB9IC8vIGVuZCBzd2l0Y2ggKGJwcCkKKworICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgLy8gTU1YIGFjY2VsZXJhdGlvbiBjb21wbGV0ZTsgbm93IGRvIGNsZWFuLXVwCisgICAgICAvLyBjaGVjayBpZiBhbnkgcmVtYWluaW5nIGJ5dGVzIGxlZnQgdG8gZGVjb2RlCisjaWZkZWYgX19QSUNfXworICAgICAgInB1c2hsICUlZWJ4ICAgICAgICAgICAgICAgICBcblx0IiAvLyBzYXZlIGluZGV4IHRvIEdsb2JhbCBPZmZzZXQgVGFibGUKKyNlbmRpZgorICAgICAgIm1vdmwgX01NWExlbmd0aCwgJSVlYnggICAgICBcblx0IiAvLyBlYng6ICB4ID09IG9mZnNldCBieXRlcyBhZnRlciBNTVgKKy8vcHJlICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIgLy8gZWRpOiAgQXZnKHgpCisgICAgICAiY21wbCBfRnVsbExlbmd0aCwgJSVlYnggICAgIFxuXHQiIC8vIHRlc3QgaWYgb2Zmc2V0IGF0IGVuZCBvZiBhcnJheQogICAgICAgImpuYiBhdmdfZW5kICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgLy8gRG8gUGFldGggZGVjb2RlIGZvciByZW1haW5pbmcgYnl0ZXMKLSAgICAgICJtb3ZsIHByZXZfcm93LCAlJWVzaSAgICAgICAgXG5cdCIgLy8gZXNpID09PiBQcmlvcih4KQorCisgICAgICAvLyBkbyBBdmcgZGVjb2RlIGZvciByZW1haW5pbmcgYnl0ZXMKKy8vcHJlICJtb3ZsIHByZXZfcm93LCAlJWVzaSAgICAgICAgXG5cdCIgLy8gZXNpOiAgUHJpb3IoeCkKICAgICAgICJtb3ZsICUlZWRpLCAlJWVkeCAgICAgICAgICAgXG5cdCIKLSAgICAgICJ4b3JsICUlZWN4LCAlJWVjeCAgICAgICAgICAgXG5cdCIgLy8gemVybyBlY3ggYmVmb3JlIHVzaW5nIGNsICYgY3ggaW4gbG9vcCBiZWxvdwotICAgICAgInN1YmwgYnBwLCAlJWVkeCAgICAgICAgICAgICBcblx0IiAvLyBlZHggPT0+IFJhdyh4LWJwcCkKKy8vcHJlICJzdWJsIGJwcCwgJSVlZHggICAgICAgICAgICAgXG5cdCIgLy8gKGJwcCBpcyBwcmVsb2FkZWQgaW50byBlY3gpCisgICAgICAic3VibCAlJWVjeCwgJSVlZHggICAgICAgICAgIFxuXHQiIC8vIGVkeDogIFJhdyh4LWJwcCkKKyAgICAgICJ4b3JsICUlZWN4LCAlJWVjeCAgICAgICAgICAgXG5cdCIgLy8gemVybyBlY3ggYmVmb3JlIHVzaW5nIGNsICYgY3ggYmVsb3cKKwogICAgImF2Z19scDI6ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgogICAgICAgLy8gUmF3KHgpID0gQXZnKHgpICsgKChSYXcoeC1icHApICsgUHJpb3IoeCkpLzIpCiAgICAgICAieG9ybCAlJWVheCwgJSVlYXggICAgICAgICAgIFxuXHQiCkBAIC0yOTc2LDM5ICszMDkzLDY0IEBACiAgICAgICAiYWRkdyAlJWN4LCAlJWF4ICAgICAgICAgICAgIFxuXHQiCiAgICAgICAiaW5jbCAlJWVieCAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAic2hydyAlJWF4ICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIGRpdmlkZSBieSAyCi0gICAgICAiYWRkYiAtMSglJWVkaSwlJWVieCwpLCAlJWFsIFxuXHQiIC8vIEFkZCBBdmcoeCk7IC0xIHRvIG9mZnNldCBpbmMgZWJ4Ci0gICAgICAiY21wbCBfRnVsbExlbmd0aCwgJSVlYnggICAgIFxuXHQiIC8vIENoZWNrIGlmIGF0IGVuZCBvZiBhcnJheQotICAgICAgIm1vdmIgJSVhbCwgLTEoJSVlZGksJSVlYngsKSBcblx0IiAvLyBXcml0ZSBiYWNrIFJhdyh4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgLy8gbW92IGRvZXMgbm90IGFmZmVjdCBmbGFnczsgLTEgdG8gb2Zmc2V0IGluYyBlYngKLSAgICAgICJqYiBhdmdfbHAyICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICJhZGRiIC0xKCUlZWRpLCUlZWJ4LCksICUlYWwgXG5cdCIgLy8gYWRkIEF2Zyh4KTsgLTEgdG8gb2Zmc2V0IGluYyBlYngKKyAgICAgICJjbXBsIF9GdWxsTGVuZ3RoLCAlJWVieCAgICAgXG5cdCIgLy8gY2hlY2sgaWYgYXQgZW5kIG9mIGFycmF5CisgICAgICAibW92YiAlJWFsLCAtMSglJWVkaSwlJWVieCwpIFxuXHQiIC8vIHdyaXRlIGJhY2sgUmF3KHgpIFttb3YgZG9lcyBub3QKKyAgICAgICJqYiBhdmdfbHAyICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gIGFmZmVjdCBmbGFnczsgLTEgdG8gb2Zmc2V0IGluYyBlYnhdCisKICAgICJhdmdfZW5kOiAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICJlbW1zICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gRW5kIE1NWCBpbnN0cnVjdGlvbnM7IHByZXAgZm9yIHBvc3NpYmxlIEZQIGluc3Rycy4KKyAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gZW5kIE1NWDsgcHJlcCBmb3IgcG9zcy4gRlAgaW5zdHJzLgorI2lmZGVmIF9fUElDX18KKyAgICAgICJwb3BsICUlZWJ4ICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gcmVzdG9yZSBpbmRleCB0byBHbG9iYWwgT2Zmc2V0IFRhYmxlCisjZW5kaWYKIAotICAgICAgOiAvLyBGSVhBU006IG91dHB1dCByZWdzL3ZhcnMgZ28gaGVyZSwgZS5nLjogICI9bSIgKG1lbW9yeV92YXIpCisgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgIj1TIiAoZHVtbXlfdmFsdWVfUyksCisgICAgICAgICI9RCIgKGR1bW15X3ZhbHVlX0QpCiAKLSAgICAgIDogLy8gRklYQVNNOiBpbnB1dCByZWdzLCBlLmcuOiAgImMiIChjb3VudCksICJTIiAoc3JjKSwgIkQiIChkZXN0KQorICAgICAgOiAiMCIgKGJwcCksICAgICAgIC8vIGVjeCAgICAgICAgICAvLyBpbnB1dCByZWdzCisgICAgICAgICIxIiAocHJldl9yb3cpLCAgLy8gZXNpCisgICAgICAgICIyIiAocm93KSAgICAgICAgLy8gZWRpCiAKLSAgICAgIDogIiVlYXgiLCAiJWVieCIsICIlZWN4IiwgIiVlZHgiLCAiJWVkaSIsICIlZXNpIiAvLyBDSEVDS0FTTTogY2xvYmJlciBsaXN0CisgICAgICA6ICIlZWF4IiwgIiVlZHgiICAgICAgICAgICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAorI2lmbmRlZiBfX1BJQ19fCisgICAgICAsICIlZWJ4IgorI2VuZGlmCiAgICApOwotI2VuZGlmIC8qIEdSUl9HQ0NfTU1YX0NPTlZFUlRFRCAqLwotfQorCit9IC8qIGVuZCBwbmdfcmVhZF9maWx0ZXJfcm93X21teF9hdmcoKSAqLworCisKKworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLyAgICAgICAgIFAgTiBHIF8gUiBFIEEgRCBfIEYgSSBMIFQgRSBSIF8gUiBPIFcgXyBNIE0gWCBfIFAgQSBFIFQgSCAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS8vCiAKIC8vIE9wdGltaXplZCBjb2RlIGZvciBQTkcgUGFldGggZmlsdGVyIGRlY29kZXIKLXZvaWQgLyogUFJJVkFURSAqLworCitzdGF0aWMgdm9pZCAvKiBQUklWQVRFICovCiBwbmdfcmVhZF9maWx0ZXJfcm93X21teF9wYWV0aChwbmdfcm93X2luZm9wIHJvd19pbmZvLCBwbmdfYnl0ZXAgcm93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG5nX2J5dGVwIHByZXZfcm93KQogewotI2lmZGVmIEdSUl9HQ0NfTU1YX0NPTlZFUlRFRAogICAgaW50IGJwcDsKLSAgIGludCBwYXRlbXAsIHBidGVtcCwgcGN0ZW1wOworICAgaW50IGR1bW15X3ZhbHVlX2M7ICAgLy8gZml4ICdmb3JiaWRkZW4gcmVnaXN0ZXIgMiAoY3gpIHdhcyBzcGlsbGVkJyBlcnJvcgorICAgaW50IGR1bW15X3ZhbHVlX1M7CisgICBpbnQgZHVtbXlfdmFsdWVfRDsKIAogICAgYnBwID0gKHJvd19pbmZvLT5waXhlbF9kZXB0aCArIDcpID4+IDM7IC8vIEdldCAjIGJ5dGVzIHBlciBwaXhlbAogICAgX0Z1bGxMZW5ndGggID0gcm93X2luZm8tPnJvd2J5dGVzOyAvLyAjIG9mIGJ5dGVzIHRvIGZpbHRlcgotICAgX19hc21fXyAoCi0gICAgICAieG9ybCAlJWVieCwgJSVlYnggICAgICAgICAgIFxuXHQiIC8vIGVieCA9PT4geCBvZmZzZXQKLSAgICAgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIKLSAgICAgICJ4b3JsICUlZWR4LCAlJWVkeCAgICAgICAgICAgXG5cdCIgLy8gZWR4ID09PiB4LWJwcCBvZmZzZXQKLSAgICAgICJtb3ZsIHByZXZfcm93LCAlJWVzaSAgICAgICAgXG5cdCIKKworICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorI2lmZGVmIF9fUElDX18KKyAgICAgICJwdXNobCAlJWVieCAgICAgICAgICAgICAgICAgXG5cdCIgLy8gc2F2ZSBpbmRleCB0byBHbG9iYWwgT2Zmc2V0IFRhYmxlCisjZW5kaWYKKyAgICAgICJ4b3JsICUlZWJ4LCAlJWVieCAgICAgICAgICAgXG5cdCIgLy8gZWJ4OiAgeCBvZmZzZXQKKy8vcHJlICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIKKyAgICAgICJ4b3JsICUlZWR4LCAlJWVkeCAgICAgICAgICAgXG5cdCIgLy8gZWR4OiAgeC1icHAgb2Zmc2V0CisvL3ByZSAibW92bCBwcmV2X3JvdywgJSVlc2kgICAgICAgIFxuXHQiCiAgICAgICAieG9ybCAlJWVheCwgJSVlYXggICAgICAgICAgIFxuXHQiCiAKICAgICAgIC8vIENvbXB1dGUgdGhlIFJhdyB2YWx1ZSBmb3IgdGhlIGZpcnN0IGJwcCBieXRlcwpAQCAtMzAxOCw3ICszMTYwLDggQEAKICAgICAgICJtb3ZiICglJWVkaSwlJWVieCwpLCAlJWFsICAgXG5cdCIKICAgICAgICJhZGRiICglJWVzaSwlJWVieCwpLCAlJWFsICAgXG5cdCIKICAgICAgICJpbmNsICUlZWJ4ICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICJjbXBsIGJwcCwgJSVlYnggICAgICAgICAgICAgXG5cdCIKKy8vcHJlICJjbXBsIGJwcCwgJSVlYnggICAgICAgICAgICAgXG5cdCIgKGJwcCBpcyBwcmVsb2FkZWQgaW50byBlY3gpCisgICAgICAiY21wbCAlJWVjeCwgJSVlYnggICAgICAgICAgIFxuXHQiCiAgICAgICAibW92YiAlJWFsLCAtMSglJWVkaSwlJWVieCwpIFxuXHQiCiAgICAgICAiamIgcGFldGhfcmxwICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAvLyBnZXQgIyBvZiBieXRlcyB0byBhbGlnbm1lbnQKQEAgLTMwMzAsNjIgKzMxNzMsNzAgQEAKICAgICAgICJzdWJsICUlZWRpLCBfZGlmICAgICAgICAgICAgXG5cdCIgLy8gc3VidHJhY3QgZnJvbSBzdGFydCA9PT4gdmFsdWUgZWJ4IGF0IGFsaWdubWVudAogICAgICAgImp6IHBhZXRoX2dvICAgICAgICAgICAgICAgICBcblx0IgogICAgICAgLy8gZml4IGFsaWdubWVudAorCiAgICAicGFldGhfbHAxOiAgICAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAieG9ybCAlJWVheCwgJSVlYXggICAgICAgICAgIFxuXHQiCiAgICAgICAvLyBwYXYgPSBwIC0gYSA9IChhICsgYiAtIGMpIC0gYSA9IGIgLSBjCiAgICAgICAibW92YiAoJSVlc2ksJSVlYngsKSwgJSVhbCAgIFxuXHQiIC8vIGxvYWQgUHJpb3IoeCkgaW50byBhbAogICAgICAgIm1vdmIgKCUlZXNpLCUlZWR4LCksICUlY2wgICBcblx0IiAvLyBsb2FkIFByaW9yKHgtYnBwKSBpbnRvIGNsCiAgICAgICAic3VibCAlJWVjeCwgJSVlYXggICAgICAgICAgIFxuXHQiIC8vIHN1YnRyYWN0IFByaW9yKHgtYnBwKQotICAgICAgIm1vdmwgJSVlYXgsIHBhdGVtcCAgICAgICAgICBcblx0IiAvLyBTYXZlIHBhdiBmb3IgbGF0ZXIgdXNlCisgICAgICAibW92bCAlJWVheCwgX3BhdGVtcCAgICAgICAgIFxuXHQiIC8vIFNhdmUgcGF2IGZvciBsYXRlciB1c2UKICAgICAgICJ4b3JsICUlZWF4LCAlJWVheCAgICAgICAgICAgXG5cdCIKICAgICAgIC8vIHBidiA9IHAgLSBiID0gKGEgKyBiIC0gYykgLSBiID0gYSAtIGMKICAgICAgICJtb3ZiICglJWVkaSwlJWVkeCwpLCAlJWFsICAgXG5cdCIgLy8gbG9hZCBSYXcoeC1icHApIGludG8gYWwKICAgICAgICJzdWJsICUlZWN4LCAlJWVheCAgICAgICAgICAgXG5cdCIgLy8gc3VidHJhY3QgUHJpb3IoeC1icHApCiAgICAgICAibW92bCAlJWVheCwgJSVlY3ggICAgICAgICAgIFxuXHQiCiAgICAgICAvLyBwY3YgPSBwIC0gYyA9IChhICsgYiAtIGMpIC1jID0gKGEgLSBjKSArIChiIC0gYykgPSBwYXYgKyBwYnYKLSAgICAgICJhZGRsIHBhdGVtcCwgJSVlYXggICAgICAgICAgXG5cdCIgLy8gcGN2ID0gcGF2ICsgcGJ2CisgICAgICAiYWRkbCBfcGF0ZW1wLCAlJWVheCAgICAgICAgIFxuXHQiIC8vIHBjdiA9IHBhdiArIHBidgogICAgICAgLy8gcGMgPSBhYnMocGN2KQogICAgICAgInRlc3RsICQweDgwMDAwMDAwLCAlJWVheCAgICBcblx0IgogICAgICAgImp6IHBhZXRoX3BjYSAgICAgICAgICAgICAgICBcblx0IgogICAgICAgIm5lZ2wgJSVlYXggICAgICAgICAgICAgICAgICBcblx0IiAvLyByZXZlcnNlIHNpZ24gb2YgbmVnIHZhbHVlcworCiAgICAicGFldGhfcGNhOiAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAibW92bCAlJWVheCwgcGN0ZW1wICAgICAgICAgIFxuXHQiIC8vIHNhdmUgcGMgZm9yIGxhdGVyIHVzZQorICAgICAgIm1vdmwgJSVlYXgsIF9wY3RlbXAgICAgICAgICBcblx0IiAvLyBzYXZlIHBjIGZvciBsYXRlciB1c2UKICAgICAgIC8vIHBiID0gYWJzKHBidikKICAgICAgICJ0ZXN0bCAkMHg4MDAwMDAwMCwgJSVlY3ggICAgXG5cdCIKICAgICAgICJqeiBwYWV0aF9wYmEgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICJuZWdsICUlZWN4ICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gcmV2ZXJzZSBzaWduIG9mIG5lZyB2YWx1ZXMKKwogICAgInBhZXRoX3BiYTogICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgIm1vdmwgJSVlY3gsIHBidGVtcCAgICAgICAgICBcblx0IiAvLyBzYXZlIHBiIGZvciBsYXRlciB1c2UKKyAgICAgICJtb3ZsICUlZWN4LCBfcGJ0ZW1wICAgICAgICAgXG5cdCIgLy8gc2F2ZSBwYiBmb3IgbGF0ZXIgdXNlCiAgICAgICAvLyBwYSA9IGFicyhwYXYpCi0gICAgICAibW92bCBwYXRlbXAsICUlZWF4ICAgICAgICAgIFxuXHQiCisgICAgICAibW92bCBfcGF0ZW1wLCAlJWVheCAgICAgICAgIFxuXHQiCiAgICAgICAidGVzdGwgJDB4ODAwMDAwMDAsICUlZWF4ICAgIFxuXHQiCiAgICAgICAianogcGFldGhfcGFhICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAibmVnbCAlJWVheCAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIHJldmVyc2Ugc2lnbiBvZiBuZWcgdmFsdWVzCisKICAgICJwYWV0aF9wYWE6ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICJtb3ZsICUlZWF4LCBwYXRlbXAgICAgICAgICAgXG5cdCIgLy8gc2F2ZSBwYSBmb3IgbGF0ZXIgdXNlCisgICAgICAibW92bCAlJWVheCwgX3BhdGVtcCAgICAgICAgIFxuXHQiIC8vIHNhdmUgcGEgZm9yIGxhdGVyIHVzZQogICAgICAgLy8gdGVzdCBpZiBwYSA8PSBwYgogICAgICAgImNtcGwgJSVlY3gsICUlZWF4ICAgICAgICAgICBcblx0IgogICAgICAgImpuYSBwYWV0aF9hYmIgICAgICAgICAgICAgICBcblx0IgogICAgICAgLy8gcGEgPiBwYjsgbm93IHRlc3QgaWYgcGIgPD0gcGMKLSAgICAgICJjbXBsIHBjdGVtcCwgJSVlY3ggICAgICAgICAgXG5cdCIKKyAgICAgICJjbXBsIF9wY3RlbXAsICUlZWN4ICAgICAgICAgXG5cdCIKICAgICAgICJqbmEgcGFldGhfYmJjICAgICAgICAgICAgICAgXG5cdCIKICAgICAgIC8vIHBiID4gcGM7IFJhdyh4KSA9IFBhZXRoKHgpICsgUHJpb3IoeC1icHApCiAgICAgICAibW92YiAoJSVlc2ksJSVlZHgsKSwgJSVjbCAgIFxuXHQiIC8vIGxvYWQgUHJpb3IoeC1icHApIGludG8gY2wKICAgICAgICJqbXAgcGFldGhfcGFldGggICAgICAgICAgICAgXG5cdCIKKwogICAgInBhZXRoX2JiYzogICAgICAgICAgICAgICAgICAgICBcblx0IgogICAgICAgLy8gcGIgPD0gcGM7IFJhdyh4KSA9IFBhZXRoKHgpICsgUHJpb3IoeCkKICAgICAgICJtb3ZiICglJWVzaSwlJWVieCwpLCAlJWNsICAgXG5cdCIgLy8gbG9hZCBQcmlvcih4KSBpbnRvIGNsCiAgICAgICAiam1wIHBhZXRoX3BhZXRoICAgICAgICAgICAgIFxuXHQiCisKICAgICJwYWV0aF9hYmI6ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgIC8vIHBhIDw9IHBiOyBub3cgdGVzdCBpZiBwYSA8PSBwYwotICAgICAgImNtcGwgcGN0ZW1wLCAlJWVheCAgICAgICAgICBcblx0IgorICAgICAgImNtcGwgX3BjdGVtcCwgJSVlYXggICAgICAgICBcblx0IgogICAgICAgImpuYSBwYWV0aF9hYmMgICAgICAgICAgICAgICBcblx0IgogICAgICAgLy8gcGEgPiBwYzsgUmF3KHgpID0gUGFldGgoeCkgKyBQcmlvcih4LWJwcCkKICAgICAgICJtb3ZiICglJWVzaSwlJWVkeCwpLCAlJWNsICAgXG5cdCIgLy8gbG9hZCBQcmlvcih4LWJwcCkgaW50byBjbAogICAgICAgImptcCBwYWV0aF9wYWV0aCAgICAgICAgICAgICBcblx0IgorCiAgICAicGFldGhfYWJjOiAgICAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAvLyBwYSA8PSBwYzsgUmF3KHgpID0gUGFldGgoeCkgKyBSYXcoeC1icHApCiAgICAgICAibW92YiAoJSVlZGksJSVlZHgsKSwgJSVjbCAgIFxuXHQiIC8vIGxvYWQgUmF3KHgtYnBwKSBpbnRvIGNsCisKICAgICJwYWV0aF9wYWV0aDogICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICJpbmNsICUlZWJ4ICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICJpbmNsICUlZWR4ICAgICAgICAgICAgICAgICAgXG5cdCIKQEAgLTMwOTMsNiArMzI0NCw3IEBACiAgICAgICAiYWRkYiAlJWNsLCAtMSglJWVkaSwlJWVieCwpIFxuXHQiCiAgICAgICAiY21wbCBfZGlmLCAlJWVieCAgICAgICAgICAgIFxuXHQiCiAgICAgICAiamIgcGFldGhfbHAxICAgICAgICAgICAgICAgIFxuXHQiCisKICAgICJwYWV0aF9nbzogICAgICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICJtb3ZsIF9GdWxsTGVuZ3RoLCAlJWVjeCAgICAgXG5cdCIKICAgICAgICJtb3ZsICUlZWN4LCAlJWVheCAgICAgICAgICAgXG5cdCIKQEAgLTMxMDAsNDAgKzMyNTIsNTEgQEAKICAgICAgICJhbmRsICQweDAwMDAwMDA3LCAlJWVheCAgICAgXG5cdCIgLy8gY2FsYyBieXRlcyBvdmVyIG11bHQgb2YgOAogICAgICAgInN1YmwgJSVlYXgsICUlZWN4ICAgICAgICAgICBcblx0IiAvLyBkcm9wIG92ZXIgYnl0ZXMgZnJvbSBvcmlnaW5hbCBsZW5ndGgKICAgICAgICJtb3ZsICUlZWN4LCBfTU1YTGVuZ3RoICAgICAgXG5cdCIKKyNpZmRlZiBfX1BJQ19fCisgICAgICAicG9wbCAlJWVieCAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIHJlc3RvcmUgaW5kZXggdG8gR2xvYmFsIE9mZnNldCBUYWJsZQorI2VuZGlmCiAKLSAgICAgIDogLy8gRklYQVNNOiBvdXRwdXQgcmVncy92YXJzIGdvIGhlcmUsIGUuZy46ICAiPW0iIChtZW1vcnlfdmFyKQorICAgICAgOiAiPWMiIChkdW1teV92YWx1ZV9jKSwgICAgICAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICI9UyIgKGR1bW15X3ZhbHVlX1MpLAorICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKQogCi0gICAgICA6IC8vIEZJWEFTTTogaW5wdXQgcmVncywgZS5nLjogICJjIiAoY291bnQpLCAiUyIgKHNyYyksICJEIiAoZGVzdCkKKyAgICAgIDogIjAiIChicHApLCAgICAgICAvLyBlY3ggICAgICAgICAgLy8gaW5wdXQgcmVncworICAgICAgICAiMSIgKHByZXZfcm93KSwgIC8vIGVzaQorICAgICAgICAiMiIgKHJvdykgICAgICAgIC8vIGVkaQogCi0gICAgICA6ICIlZWF4IiwgIiVlYngiLCAiJWVjeCIsICIlZWR4IiwgIiVlZGkiLCAiJWVzaSIgLy8gQ0hFQ0tBU006IGNsb2JiZXIgbGlzdAorICAgICAgOiAiJWVheCIsICIlZWR4IiAgICAgICAgICAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKKyNpZm5kZWYgX19QSUNfXworICAgICAgLCAiJWVieCIKKyNlbmRpZgogICAgKTsKIAotICAgLy8gTm93IGRvIHRoZSBtYXRoIGZvciB0aGUgcmVzdCBvZiB0aGUgcm93Ci0gICBzd2l0Y2ggKCBicHAgKQorICAgLy8gbm93IGRvIHRoZSBtYXRoIGZvciB0aGUgcmVzdCBvZiB0aGUgcm93CisgICBzd2l0Y2ggKGJwcCkKICAgIHsKICAgICAgIGNhc2UgMzoKICAgICAgIHsKLSAgICAgICAgIEFjdGl2ZU1hc2sudXNlID0gMHgwMDAwMDAwMDAwZmZmZmZmOwotICAgICAgICAgQWN0aXZlTWFza0VuZC51c2UgPSAweGZmZmYwMDAwMDAwMDAwMDA7Ci0gICAgICAgICBTaGlmdEJwcC51c2UgPSAyNDsgICAgLy8gPT0gYnBwKDMpICogOAotICAgICAgICAgU2hpZnRSZW0udXNlID0gNDA7ICAgIC8vID09IDY0IC0gMjQKLSAgICAgICAgIF9fYXNtX18gKAotICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlYnggICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IgorICAgICAgICAgX0FjdGl2ZU1hc2sudXNlID0gMHgwMDAwMDAwMDAwZmZmZmZmTEw7CisgICAgICAgICBfQWN0aXZlTWFza0VuZC51c2UgPSAweGZmZmYwMDAwMDAwMDAwMDBMTDsKKyAgICAgICAgIF9TaGlmdEJwcC51c2UgPSAyNDsgICAgLy8gPT0gYnBwKDMpICogOAorICAgICAgICAgX1NoaWZ0UmVtLnVzZSA9IDQwOyAgICAvLyA9PSA2NCAtIDI0CisKKyAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICAgICAgICJtb3ZsIF9kaWYsICUlZWN4ICAgICAgICAgICAgXG5cdCIKKy8vIHByZWxvYWQgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIKKy8vIHByZWxvYWQgICJtb3ZsIHByZXZfcm93LCAlJWVzaSAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJweG9yICUlbW0wLCAlJW1tMCAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgIC8vIFBSSU1FIHRoZSBwdW1wIChsb2FkIHRoZSBmaXJzdCBSYXcoeC1icHApIGRhdGEgc2V0Ci0gICAgICAgICAgICAibW92cSAtOCglJWVkaSwlJWVieCwpLCAlJW1tMSBcblx0IgorICAgICAgICAgICAgLy8gcHJpbWUgdGhlIHB1bXA6ICBsb2FkIHRoZSBmaXJzdCBSYXcoeC1icHApIGRhdGEgc2V0CisgICAgICAgICAgICAibW92cSAtOCglJWVkaSwlJWVjeCwpLCAlJW1tMSBcblx0IgogICAgICAgICAgInBhZXRoXzNscDogICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBzcmxxICRTaGlmdFJlbSwgJSVtbTEgICAgICBcblx0IiAvLyBzaGlmdCBsYXN0IDMgYnl0ZXMgdG8gMXN0IDMgYnl0ZXMKLSAgICAgICAgICAgICJtb3ZxICglJWVzaSwlJWVieCwpLCAlJW1tMiAgXG5cdCIgLy8gbG9hZCBiPVByaW9yKHgpCi0gICAgICAgICAgICAicHVucGNrbGJ3ICUlbW0wLCAlJW1tMSAgICAgIFxuXHQiIC8vIFVucGFjayBIaWdoIGJ5dGVzIG9mIGEKLSAgICAgICAgICAgICJtb3ZxIC04KCUlZXNpLCUlZWJ4LCksICUlbW0zIFxuXHQiIC8vIFByZXAgYz1Qcmlvcih4LWJwcCkgYnl0ZXMKLSAgICAgICAgICAgICJwdW5wY2tsYncgJSVtbTAsICUlbW0yICAgICAgXG5cdCIgLy8gVW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYgotICAgICAgICAgICAgInBzcmxxICRTaGlmdFJlbSwgJSVtbTMgICAgICBcblx0IiAvLyBzaGlmdCBsYXN0IDMgYnl0ZXMgdG8gMXN0IDMgYnl0ZXMKKyAgICAgICAgICAgICJwc3JscSBfU2hpZnRSZW0sICUlbW0xICAgICAgXG5cdCIgLy8gc2hpZnQgbGFzdCAzIGJ5dGVzIHRvIDFzdCAzIGJ5dGVzCisgICAgICAgICAgICAibW92cSAoJSVlc2ksJSVlY3gsKSwgJSVtbTIgIFxuXHQiIC8vIGxvYWQgYj1Qcmlvcih4KQorICAgICAgICAgICAgInB1bnBja2xidyAlJW1tMCwgJSVtbTEgICAgICBcblx0IiAvLyB1bnBhY2sgSGlnaCBieXRlcyBvZiBhCisgICAgICAgICAgICAibW92cSAtOCglJWVzaSwlJWVjeCwpLCAlJW1tMyBcblx0IiAvLyBwcmVwIGM9UHJpb3IoeC1icHApIGJ5dGVzCisgICAgICAgICAgICAicHVucGNrbGJ3ICUlbW0wLCAlJW1tMiAgICAgIFxuXHQiIC8vIHVucGFjayBIaWdoIGJ5dGVzIG9mIGIKKyAgICAgICAgICAgICJwc3JscSBfU2hpZnRSZW0sICUlbW0zICAgICAgXG5cdCIgLy8gc2hpZnQgbGFzdCAzIGJ5dGVzIHRvIDFzdCAzIGJ5dGVzCiAgICAgICAgICAgICAvLyBwYXYgPSBwIC0gYSA9IChhICsgYiAtIGMpIC0gYSA9IGIgLSBjCiAgICAgICAgICAgICAibW92cSAlJW1tMiwgJSVtbTQgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicHVucGNrbGJ3ICUlbW0wLCAlJW1tMyAgICAgIFxuXHQiIC8vIFVucGFjayBIaWdoIGJ5dGVzIG9mIGMKKyAgICAgICAgICAgICJwdW5wY2tsYncgJSVtbTAsICUlbW0zICAgICAgXG5cdCIgLy8gdW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYwogICAgICAgICAgICAgLy8gcGJ2ID0gcCAtIGIgPSAoYSArIGIgLSBjKSAtIGIgPSBhIC0gYwogICAgICAgICAgICAgIm1vdnEgJSVtbTEsICUlbW01ICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInBzdWJ3ICUlbW0zLCAlJW1tNCAgICAgICAgICBcblx0IgpAQCAtMzE0NSwxNyArMzMwOCwxNyBAQAogICAgICAgICAgICAgLy8gcGEgPSBhYnMocC1hKSA9IGFicyhwYXYpCiAgICAgICAgICAgICAvLyBwYiA9IGFicyhwLWIpID0gYWJzKHBidikKICAgICAgICAgICAgIC8vIHBjID0gYWJzKHAtYykgPSBhYnMocGN2KQotICAgICAgICAgICAgInBjbXBndHcgJSVtbTQsICUlbW0wICAgICAgICBcblx0IiAvLyBDcmVhdGUgbWFzayBwYXYgYnl0ZXMgPCAwCisgICAgICAgICAgICAicGNtcGd0dyAlJW1tNCwgJSVtbTAgICAgICAgIFxuXHQiIC8vIGNyZWF0ZSBtYXNrIHBhdiBieXRlcyA8IDAKICAgICAgICAgICAgICJwYWRkdyAlJW1tNSwgJSVtbTYgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwYW5kICUlbW00LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gT25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNwotICAgICAgICAgICAgInBjbXBndHcgJSVtbTUsICUlbW03ICAgICAgICBcblx0IiAvLyBDcmVhdGUgbWFzayBwYnYgYnl0ZXMgPCAwCisgICAgICAgICAgICAicGFuZCAlJW1tNCwgJSVtbTAgICAgICAgICAgIFxuXHQiIC8vIG9ubHkgcGF2IGJ5dGVzIDwgMCBpbiBtbTcKKyAgICAgICAgICAgICJwY21wZ3R3ICUlbW01LCAlJW1tNyAgICAgICAgXG5cdCIgLy8gY3JlYXRlIG1hc2sgcGJ2IGJ5dGVzIDwgMAogICAgICAgICAgICAgInBzdWJ3ICUlbW0wLCAlJW1tNCAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBhbmQgJSVtbTUsICUlbW03ICAgICAgICAgICBcblx0IiAvLyBPbmx5IHBidiBieXRlcyA8IDAgaW4gbW0wCisgICAgICAgICAgICAicGFuZCAlJW1tNSwgJSVtbTcgICAgICAgICAgIFxuXHQiIC8vIG9ubHkgcGJ2IGJ5dGVzIDwgMCBpbiBtbTAKICAgICAgICAgICAgICJwc3VidyAlJW1tMCwgJSVtbTQgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwc3VidyAlJW1tNywgJSVtbTUgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJweG9yICUlbW0wLCAlJW1tMCAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwY21wZ3R3ICUlbW02LCAlJW1tMCAgICAgICAgXG5cdCIgLy8gQ3JlYXRlIG1hc2sgcGN2IGJ5dGVzIDwgMAotICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBPbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03CisgICAgICAgICAgICAicGNtcGd0dyAlJW1tNiwgJSVtbTAgICAgICAgIFxuXHQiIC8vIGNyZWF0ZSBtYXNrIHBjdiBieXRlcyA8IDAKKyAgICAgICAgICAgICJwYW5kICUlbW02LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gb25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNwogICAgICAgICAgICAgInBzdWJ3ICUlbW03LCAlJW1tNSAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInBzdWJ3ICUlbW0wLCAlJW1tNiAgICAgICAgICBcblx0IgogICAgICAgICAgICAgLy8gIHRlc3QgcGEgPD0gcGIKQEAgLTMxNzksMTggKzMzNDIsMTggQEAKICAgICAgICAgICAgICJwYWRkdyAlJW1tMywgJSVtbTcgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJweG9yICUlbW0wLCAlJW1tMCAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwYWNrdXN3YiAlJW1tMSwgJSVtbTcgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZxICglJWVzaSwlJWVieCwpLCAlJW1tMyAgXG5cdCIgLy8gbG9hZCBjPVByaW9yKHgtYnBwKQotICAgICAgICAgICAgInBhbmQgJEFjdGl2ZU1hc2ssICUlbW03ICAgICBcblx0IgorICAgICAgICAgICAgIm1vdnEgKCUlZXNpLCUlZWN4LCksICUlbW0zICBcblx0IiAvLyBsb2FkIGM9UHJpb3IoeC1icHApCisgICAgICAgICAgICAicGFuZCBfQWN0aXZlTWFzaywgJSVtbTcgICAgIFxuXHQiCiAgICAgICAgICAgICAibW92cSAlJW1tMywgJSVtbTIgICAgICAgICAgIFxuXHQiIC8vIGxvYWQgYj1Qcmlvcih4KSBzdGVwIDEKLSAgICAgICAgICAgICJwYWRkYiAoJSVlZGksJSVlYngsKSwgJSVtbTcgXG5cdCIgLy8gYWRkIFBhZXRoIHByZWRpY3RvciB3aXRoIFJhdyh4KQotICAgICAgICAgICAgInB1bnBja2xidyAlJW1tMCwgJSVtbTMgICAgICBcblx0IiAvLyBVbnBhY2sgSGlnaCBieXRlcyBvZiBjCi0gICAgICAgICAgICAibW92cSAlJW1tNywgKCUlZWRpLCUlZWJ4LCkgIFxuXHQiIC8vIHdyaXRlIGJhY2sgdXBkYXRlZCB2YWx1ZQotICAgICAgICAgICAgIm1vdnEgJSVtbTcsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBOb3cgbW0xIHdpbGwgYmUgdXNlZCBhcyBSYXcoeC1icHApCi0gICAgICAgICAgICAvLyBOb3cgZG8gUGFldGggZm9yIDJuZCBzZXQgb2YgYnl0ZXMgKDMtNSkKLSAgICAgICAgICAgICJwc3JscSAkU2hpZnRCcHAsICUlbW0yICAgICAgXG5cdCIgLy8gbG9hZCBiPVByaW9yKHgpIHN0ZXAgMgotICAgICAgICAgICAgInB1bnBja2xidyAlJW1tMCwgJSVtbTEgICAgICBcblx0IiAvLyBVbnBhY2sgSGlnaCBieXRlcyBvZiBhCisgICAgICAgICAgICAicGFkZGIgKCUlZWRpLCUlZWN4LCksICUlbW03IFxuXHQiIC8vIGFkZCBQYWV0aCBwcmVkaWN0b3Igd2l0aCBSYXcoeCkKKyAgICAgICAgICAgICJwdW5wY2tsYncgJSVtbTAsICUlbW0zICAgICAgXG5cdCIgLy8gdW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYworICAgICAgICAgICAgIm1vdnEgJSVtbTcsICglJWVkaSwlJWVjeCwpICBcblx0IiAvLyB3cml0ZSBiYWNrIHVwZGF0ZWQgdmFsdWUKKyAgICAgICAgICAgICJtb3ZxICUlbW03LCAlJW1tMSAgICAgICAgICAgXG5cdCIgLy8gbm93IG1tMSB3aWxsIGJlIHVzZWQgYXMgUmF3KHgtYnBwKQorICAgICAgICAgICAgLy8gbm93IGRvIFBhZXRoIGZvciAybmQgc2V0IG9mIGJ5dGVzICgzLTUpCisgICAgICAgICAgICAicHNybHEgX1NoaWZ0QnBwLCAlJW1tMiAgICAgIFxuXHQiIC8vIGxvYWQgYj1Qcmlvcih4KSBzdGVwIDIKKyAgICAgICAgICAgICJwdW5wY2tsYncgJSVtbTAsICUlbW0xICAgICAgXG5cdCIgLy8gdW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYQogICAgICAgICAgICAgInB4b3IgJSVtbTcsICUlbW03ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInB1bnBja2xidyAlJW1tMCwgJSVtbTIgICAgICBcblx0IiAvLyBVbnBhY2sgSGlnaCBieXRlcyBvZiBiCisgICAgICAgICAgICAicHVucGNrbGJ3ICUlbW0wLCAlJW1tMiAgICAgIFxuXHQiIC8vIHVucGFjayBIaWdoIGJ5dGVzIG9mIGIKICAgICAgICAgICAgIC8vIHBidiA9IHAgLSBiID0gKGEgKyBiIC0gYykgLSBiID0gYSAtIGMKICAgICAgICAgICAgICJtb3ZxICUlbW0xLCAlJW1tNSAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgIC8vIHBhdiA9IHAgLSBhID0gKGEgKyBiIC0gYykgLSBhID0gYiAtIGMKQEAgLTMyMDUsMTcgKzMzNjgsMTcgQEAKICAgICAgICAgICAgIC8vIHBhID0gYWJzKHAtYSkgPSBhYnMocGF2KQogICAgICAgICAgICAgLy8gcGIgPSBhYnMocC1iKSA9IGFicyhwYnYpCiAgICAgICAgICAgICAvLyBwYyA9IGFicyhwLWMpID0gYWJzKHBjdikKLSAgICAgICAgICAgICJwY21wZ3R3ICUlbW01LCAlJW1tMCAgICAgICAgXG5cdCIgLy8gQ3JlYXRlIG1hc2sgcGJ2IGJ5dGVzIDwgMAotICAgICAgICAgICAgInBjbXBndHcgJSVtbTQsICUlbW03ICAgICAgICBcblx0IiAvLyBDcmVhdGUgbWFzayBwYXYgYnl0ZXMgPCAwCi0gICAgICAgICAgICAicGFuZCAlJW1tNSwgJSVtbTAgICAgICAgICAgIFxuXHQiIC8vIE9ubHkgcGJ2IGJ5dGVzIDwgMCBpbiBtbTAKLSAgICAgICAgICAgICJwYW5kICUlbW00LCAlJW1tNyAgICAgICAgICAgXG5cdCIgLy8gT25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNworICAgICAgICAgICAgInBjbXBndHcgJSVtbTUsICUlbW0wICAgICAgICBcblx0IiAvLyBjcmVhdGUgbWFzayBwYnYgYnl0ZXMgPCAwCisgICAgICAgICAgICAicGNtcGd0dyAlJW1tNCwgJSVtbTcgICAgICAgIFxuXHQiIC8vIGNyZWF0ZSBtYXNrIHBhdiBieXRlcyA8IDAKKyAgICAgICAgICAgICJwYW5kICUlbW01LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gb25seSBwYnYgYnl0ZXMgPCAwIGluIG1tMAorICAgICAgICAgICAgInBhbmQgJSVtbTQsICUlbW03ICAgICAgICAgICBcblx0IiAvLyBvbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03CiAgICAgICAgICAgICAicHN1YncgJSVtbTAsICUlbW01ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHN1YncgJSVtbTcsICUlbW00ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHN1YncgJSVtbTAsICUlbW01ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHN1YncgJSVtbTcsICUlbW00ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHhvciAlJW1tMCwgJSVtbTAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGNtcGd0dyAlJW1tNiwgJSVtbTAgICAgICAgIFxuXHQiIC8vIENyZWF0ZSBtYXNrIHBjdiBieXRlcyA8IDAKLSAgICAgICAgICAgICJwYW5kICUlbW02LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gT25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNworICAgICAgICAgICAgInBjbXBndHcgJSVtbTYsICUlbW0wICAgICAgICBcblx0IiAvLyBjcmVhdGUgbWFzayBwY3YgYnl0ZXMgPCAwCisgICAgICAgICAgICAicGFuZCAlJW1tNiwgJSVtbTAgICAgICAgICAgIFxuXHQiIC8vIG9ubHkgcGF2IGJ5dGVzIDwgMCBpbiBtbTcKICAgICAgICAgICAgICJwc3VidyAlJW1tMCwgJSVtbTYgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgIC8vICB0ZXN0IHBhIDw9IHBiCiAgICAgICAgICAgICAibW92cSAlJW1tNCwgJSVtbTcgICAgICAgICAgIFxuXHQiCkBAIC0zMjMyLDcgKzMzOTUsNyBAQAogICAgICAgICAgICAgInBhZGR3ICUlbW0yLCAlJW1tMCAgICAgICAgICBcblx0IgogICAgICAgICAgICAgLy8gIHRlc3QgICgocGEgPD0gcGIpPyBwYTpwYikgPD0gcGMKICAgICAgICAgICAgICJwY21wZ3R3ICUlbW02LCAlJW1tNyAgICAgICAgXG5cdCIgLy8gcGFiID4gcGM/Ci0gICAgICAgICAgICAibW92cSAoJSVlc2ksJSVlYngsKSwgJSVtbTIgIFxuXHQiIC8vIGxvYWQgYj1Qcmlvcih4KQorICAgICAgICAgICAgIm1vdnEgKCUlZXNpLCUlZWN4LCksICUlbW0yICBcblx0IiAvLyBsb2FkIGI9UHJpb3IoeCkKICAgICAgICAgICAgICJwYW5kICUlbW03LCAlJW1tMyAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwYW5kbiAlJW1tMCwgJSVtbTcgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJweG9yICUlbW0xLCAlJW1tMSAgICAgICAgICAgXG5cdCIKQEAgLTMyNDAsMjEgKzM0MDMsMjEgQEAKICAgICAgICAgICAgICJweG9yICUlbW0wLCAlJW1tMCAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwYWNrdXN3YiAlJW1tMSwgJSVtbTcgICAgICAgXG5cdCIKICAgICAgICAgICAgICJtb3ZxICUlbW0yLCAlJW1tMyAgICAgICAgICAgXG5cdCIgLy8gbG9hZCBjPVByaW9yKHgtYnBwKSBzdGVwIDEKLSAgICAgICAgICAgICJwYW5kICRBY3RpdmVNYXNrLCAlJW1tNyAgICAgXG5cdCIKLSAgICAgICAgICAgICJwdW5wY2toYncgJSVtbTAsICUlbW0yICAgICAgXG5cdCIgLy8gVW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYgotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTcgICAgICBcblx0IiAvLyBTaGlmdCBieXRlcyB0byAybmQgZ3JvdXAgb2YgMyBieXRlcworICAgICAgICAgICAgInBhbmQgX0FjdGl2ZU1hc2ssICUlbW03ICAgICBcblx0IgorICAgICAgICAgICAgInB1bnBja2hidyAlJW1tMCwgJSVtbTIgICAgICBcblx0IiAvLyB1bnBhY2sgSGlnaCBieXRlcyBvZiBiCisgICAgICAgICAgICAicHNsbHEgX1NoaWZ0QnBwLCAlJW1tNyAgICAgIFxuXHQiIC8vIHNoaWZ0IGJ5dGVzIHRvIDJuZCBncm91cCBvZiAzIGJ5dGVzCiAgICAgICAgICAgICAgLy8gcGF2ID0gcCAtIGEgPSAoYSArIGIgLSBjKSAtIGEgPSBiIC0gYwogICAgICAgICAgICAgIm1vdnEgJSVtbTIsICUlbW00ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBhZGRiICglJWVkaSwlJWVieCwpLCAlJW1tNyBcblx0IiAvLyBhZGQgUGFldGggcHJlZGljdG9yIHdpdGggUmF3KHgpCi0gICAgICAgICAgICAicHNsbHEgJFNoaWZ0QnBwLCAlJW1tMyAgICAgIFxuXHQiIC8vIGxvYWQgYz1Qcmlvcih4LWJwcCkgc3RlcCAyCi0gICAgICAgICAgICAibW92cSAlJW1tNywgKCUlZWRpLCUlZWJ4LCkgIFxuXHQiIC8vIHdyaXRlIGJhY2sgdXBkYXRlZCB2YWx1ZQorICAgICAgICAgICAgInBhZGRiICglJWVkaSwlJWVjeCwpLCAlJW1tNyBcblx0IiAvLyBhZGQgUGFldGggcHJlZGljdG9yIHdpdGggUmF3KHgpCisgICAgICAgICAgICAicHNsbHEgX1NoaWZ0QnBwLCAlJW1tMyAgICAgIFxuXHQiIC8vIGxvYWQgYz1Qcmlvcih4LWJwcCkgc3RlcCAyCisgICAgICAgICAgICAibW92cSAlJW1tNywgKCUlZWRpLCUlZWN4LCkgIFxuXHQiIC8vIHdyaXRlIGJhY2sgdXBkYXRlZCB2YWx1ZQogICAgICAgICAgICAgIm1vdnEgJSVtbTcsICUlbW0xICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInB1bnBja2hidyAlJW1tMCwgJSVtbTMgICAgICBcblx0IiAvLyBVbnBhY2sgSGlnaCBieXRlcyBvZiBjCi0gICAgICAgICAgICAicHNsbHEgJFNoaWZ0QnBwLCAlJW1tMSAgICAgIFxuXHQiIC8vIFNoaWZ0IGJ5dGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3cgbW0xIHdpbGwgYmUgdXNlZCBhcyBSYXcoeC1icHApCi0gICAgICAgICAgICAvLyBOb3cgZG8gUGFldGggZm9yIDNyZCwgYW5kIGZpbmFsLCBzZXQgb2YgYnl0ZXMgKDYtNykKKyAgICAgICAgICAgICJwdW5wY2toYncgJSVtbTAsICUlbW0zICAgICAgXG5cdCIgLy8gdW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYworICAgICAgICAgICAgInBzbGxxIF9TaGlmdEJwcCwgJSVtbTEgICAgICBcblx0IiAvLyBzaGlmdCBieXRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm93IG1tMSB3aWxsIGJlIHVzZWQgYXMgUmF3KHgtYnBwKQorICAgICAgICAgICAgLy8gbm93IGRvIFBhZXRoIGZvciAzcmQsIGFuZCBmaW5hbCwgc2V0IG9mIGJ5dGVzICg2LTcpCiAgICAgICAgICAgICAicHhvciAlJW1tNywgJSVtbTcgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicHVucGNraGJ3ICUlbW0wLCAlJW1tMSAgICAgIFxuXHQiIC8vIFVucGFjayBIaWdoIGJ5dGVzIG9mIGEKKyAgICAgICAgICAgICJwdW5wY2toYncgJSVtbTAsICUlbW0xICAgICAgXG5cdCIgLy8gdW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYQogICAgICAgICAgICAgInBzdWJ3ICUlbW0zLCAlJW1tNCAgICAgICAgICBcblx0IgogICAgICAgICAgICAgLy8gcGJ2ID0gcCAtIGIgPSAoYSArIGIgLSBjKSAtIGIgPSBhIC0gYwogICAgICAgICAgICAgIm1vdnEgJSVtbTEsICUlbW01ICAgICAgICAgICBcblx0IgpAQCAtMzI2NywxNyArMzQzMCwxNyBAQAogICAgICAgICAgICAgLy8gcGEgPSBhYnMocC1hKSA9IGFicyhwYXYpCiAgICAgICAgICAgICAvLyBwYiA9IGFicyhwLWIpID0gYWJzKHBidikKICAgICAgICAgICAgIC8vIHBjID0gYWJzKHAtYykgPSBhYnMocGN2KQotICAgICAgICAgICAgInBjbXBndHcgJSVtbTQsICUlbW0wICAgICAgICBcblx0IiAvLyBDcmVhdGUgbWFzayBwYXYgYnl0ZXMgPCAwCi0gICAgICAgICAgICAicGNtcGd0dyAlJW1tNSwgJSVtbTcgICAgICAgIFxuXHQiIC8vIENyZWF0ZSBtYXNrIHBidiBieXRlcyA8IDAKLSAgICAgICAgICAgICJwYW5kICUlbW00LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gT25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNwotICAgICAgICAgICAgInBhbmQgJSVtbTUsICUlbW03ICAgICAgICAgICBcblx0IiAvLyBPbmx5IHBidiBieXRlcyA8IDAgaW4gbW0wCisgICAgICAgICAgICAicGNtcGd0dyAlJW1tNCwgJSVtbTAgICAgICAgIFxuXHQiIC8vIGNyZWF0ZSBtYXNrIHBhdiBieXRlcyA8IDAKKyAgICAgICAgICAgICJwY21wZ3R3ICUlbW01LCAlJW1tNyAgICAgICAgXG5cdCIgLy8gY3JlYXRlIG1hc2sgcGJ2IGJ5dGVzIDwgMAorICAgICAgICAgICAgInBhbmQgJSVtbTQsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBvbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03CisgICAgICAgICAgICAicGFuZCAlJW1tNSwgJSVtbTcgICAgICAgICAgIFxuXHQiIC8vIG9ubHkgcGJ2IGJ5dGVzIDwgMCBpbiBtbTAKICAgICAgICAgICAgICJwc3VidyAlJW1tMCwgJSVtbTQgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwc3VidyAlJW1tNywgJSVtbTUgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwc3VidyAlJW1tMCwgJSVtbTQgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwc3VidyAlJW1tNywgJSVtbTUgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJweG9yICUlbW0wLCAlJW1tMCAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwY21wZ3R3ICUlbW02LCAlJW1tMCAgICAgICAgXG5cdCIgLy8gQ3JlYXRlIG1hc2sgcGN2IGJ5dGVzIDwgMAotICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBPbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03CisgICAgICAgICAgICAicGNtcGd0dyAlJW1tNiwgJSVtbTAgICAgICAgIFxuXHQiIC8vIGNyZWF0ZSBtYXNrIHBjdiBieXRlcyA8IDAKKyAgICAgICAgICAgICJwYW5kICUlbW02LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gb25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNwogICAgICAgICAgICAgInBzdWJ3ICUlbW0wLCAlJW1tNiAgICAgICAgICBcblx0IgogICAgICAgICAgICAgLy8gIHRlc3QgcGEgPD0gcGIKICAgICAgICAgICAgICJtb3ZxICUlbW00LCAlJW1tNyAgICAgICAgICAgXG5cdCIKQEAgLTMyOTksNTUgKzM0NjIsNjMgQEAKICAgICAgICAgICAgICJwYWRkdyAlJW1tMywgJSVtbTcgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJweG9yICUlbW0xLCAlJW1tMSAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwYWNrdXN3YiAlJW1tNywgJSVtbTEgICAgICAgXG5cdCIKLSAgICAgICAgICAgIC8vIFN0ZXAgZWJ4IHRvIG5leHQgc2V0IG9mIDggYnl0ZXMgYW5kIHJlcGVhdCBsb29wIHRpbCBkb25lCi0gICAgICAgICAgICAiYWRkbCAkOCwgJSVlYnggICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGFuZCAkQWN0aXZlTWFza0VuZCwgJSVtbTEgIFxuXHQiCi0gICAgICAgICAgICAicGFkZGIgLTgoJSVlZGksJSVlYngsKSwgJSVtbTEgXG5cdCIgLy8gYWRkIFBhZXRoIHByZWRpY3RvciB3aXRoIFJhdyh4KQorICAgICAgICAgICAgLy8gc3RlcCBlY3ggdG8gbmV4dCBzZXQgb2YgOCBieXRlcyBhbmQgcmVwZWF0IGxvb3AgdGlsIGRvbmUKKyAgICAgICAgICAgICJhZGRsICQ4LCAlJWVjeCAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJwYW5kIF9BY3RpdmVNYXNrRW5kLCAlJW1tMSAgXG5cdCIKKyAgICAgICAgICAgICJwYWRkYiAtOCglJWVkaSwlJWVjeCwpLCAlJW1tMSBcblx0IiAvLyBhZGQgUGFldGggcHJlZGljdG9yIHdpdGggUmF3KHgpCiAKLSAgICAgICAgICAgICJjbXBsIF9NTVhMZW5ndGgsICUlZWJ4ICAgICAgXG5cdCIKKyAgICAgICAgICAgICJjbXBsIF9NTVhMZW5ndGgsICUlZWN4ICAgICAgXG5cdCIKICAgICAgICAgICAgICJweG9yICUlbW0wLCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gcHhvciBkb2VzIG5vdCBhZmZlY3QgZmxhZ3MKLSAgICAgICAgICAgICJtb3ZxICUlbW0xLCAtOCglJWVkaSwlJWVieCwpIFxuXHQiIC8vIHdyaXRlIGJhY2sgdXBkYXRlZCB2YWx1ZQorICAgICAgICAgICAgIm1vdnEgJSVtbTEsIC04KCUlZWRpLCUlZWN4LCkgXG5cdCIgLy8gd3JpdGUgYmFjayB1cGRhdGVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtbTEgd2lsbCBiZSB1c2VkIGFzIFJhdyh4LWJwcCkgbmV4dCBsb29wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtbTMgcmVhZHkgdG8gYmUgdXNlZCBhcyBQcmlvcih4LWJwcCkgbmV4dCBsb29wCiAgICAgICAgICAgICAiamIgcGFldGhfM2xwICAgICAgICAgICAgICAgIFxuXHQiCiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBvdXRwdXQgcmVncy92YXJzIGdvIGhlcmUsIGUuZy46ICAiPW0iIChtZW1vcnlfdmFyKQorICAgICAgICAgICAgOiAiPVMiIChkdW1teV92YWx1ZV9TKSwgICAgICAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQorICAgICAgICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKQogCi0gICAgICAgICAgICA6IC8vIEZJWEFTTTogaW5wdXQgcmVncywgZS5nLjogICJjIiAoY291bnQpLCAiUyIgKHNyYyksICJEIiAoZGVzdCkKKyAgICAgICAgICAgIDogIjAiIChwcmV2X3JvdyksICAvLyBlc2kgICAgICAgICAgIC8vIGlucHV0IHJlZ3MKKyAgICAgICAgICAgICAgIjEiIChyb3cpICAgICAgICAvLyBlZGkKIAotICAgICAgICAgICAgOiAiJWVieCIsICIlZWRpIiwgIiVlc2kiLCAiJW1tMCIsICIlbW0xIiwgIiVtbTIiLCAiJW1tMyIsICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IiAvLyBDSEVDS0FTTTogY2xvYmJlciBsaXN0CisgICAgICAgICAgICA6ICIlZWN4IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKKyNpZiAwICAvKiAlbW0wLCAuLi4sICVtbTcgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLworICAgICAgICAgICAgLCAiJW1tMCIsICIlbW0xIiwgIiVtbTIiLCAiJW1tMyIKKyAgICAgICAgICAgICwgIiVtbTQiLCAiJW1tNSIsICIlbW02IiwgIiVtbTciCisjZW5kaWYKICAgICAgICAgICk7CiAgICAgICB9Ci0gICAgICBicmVhazsKKyAgICAgIGJyZWFrOyAgLy8gZW5kIDMgYnBwCiAKICAgICAgIGNhc2UgNjoKICAgICAgIC8vY2FzZSA3OiAgIC8vIEdSUiBCT0dVUwogICAgICAgLy9jYXNlIDU6ICAgLy8gR1JSIEJPR1VTCiAgICAgICB7Ci0gICAgICAgICBBY3RpdmVNYXNrLnVzZSAgPSAweDAwMDAwMDAwZmZmZmZmZmY7Ci0gICAgICAgICBBY3RpdmVNYXNrMi51c2UgPSAweGZmZmZmZmZmMDAwMDAwMDA7Ci0gICAgICAgICBTaGlmdEJwcC51c2UgPSBicHAgPDwgMzsgICAgLy8gPT0gYnBwICogOAotICAgICAgICAgU2hpZnRSZW0udXNlID0gNjQgLSBTaGlmdEJwcC51c2U7Ci0gICAgICAgICBfX2FzbV9fICgKLSAgICAgICAgICAgICJtb3ZsIF9kaWYsICUlZWJ4ICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZsIHByZXZfcm93LCAlJWVzaSAgICAgICAgXG5cdCIKLSAgICAgICAgICAgIC8vIFBSSU1FIHRoZSBwdW1wIChsb2FkIHRoZSBmaXJzdCBSYXcoeC1icHApIGRhdGEgc2V0Ci0gICAgICAgICAgICAibW92cSAtOCglJWVkaSwlJWVieCwpLCAlJW1tMSBcblx0IgorICAgICAgICAgX0FjdGl2ZU1hc2sudXNlICA9IDB4MDAwMDAwMDBmZmZmZmZmZkxMOworICAgICAgICAgX0FjdGl2ZU1hc2syLnVzZSA9IDB4ZmZmZmZmZmYwMDAwMDAwMExMOworICAgICAgICAgX1NoaWZ0QnBwLnVzZSA9IGJwcCA8PCAzOyAgICAvLyA9PSBicHAgKiA4CisgICAgICAgICBfU2hpZnRSZW0udXNlID0gNjQgLSBfU2hpZnRCcHAudXNlOworCisgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCisgICAgICAgICAgICAibW92bCBfZGlmLCAlJWVjeCAgICAgICAgICAgIFxuXHQiCisvLyBwcmVsb2FkICAibW92bCByb3csICUlZWRpICAgICAgICAgICAgIFxuXHQiCisvLyBwcmVsb2FkICAibW92bCBwcmV2X3JvdywgJSVlc2kgICAgICAgIFxuXHQiCisgICAgICAgICAgICAvLyBwcmltZSB0aGUgcHVtcDogIGxvYWQgdGhlIGZpcnN0IFJhdyh4LWJwcCkgZGF0YSBzZXQKKyAgICAgICAgICAgICJtb3ZxIC04KCUlZWRpLCUlZWN4LCksICUlbW0xIFxuXHQiCiAgICAgICAgICAgICAicHhvciAlJW1tMCwgJSVtbTAgICAgICAgICAgIFxuXHQiCisKICAgICAgICAgICJwYWV0aF82bHA6ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgIC8vIE11c3Qgc2hpZnQgdG8gcG9zaXRpb24gUmF3KHgtYnBwKSBkYXRhCi0gICAgICAgICAgICAicHNybHEgJFNoaWZ0UmVtLCAlJW1tMSAgICAgIFxuXHQiCi0gICAgICAgICAgICAvLyBEbyBmaXJzdCBzZXQgb2YgNCBieXRlcwotICAgICAgICAgICAgIm1vdnEgLTgoJSVlc2ksJSVlYngsKSwgJSVtbTMgXG5cdCIgLy8gcmVhZCBjPVByaW9yKHgtYnBwKSBieXRlcwotICAgICAgICAgICAgInB1bnBja2xidyAlJW1tMCwgJSVtbTEgICAgICBcblx0IiAvLyBVbnBhY2sgTG93IGJ5dGVzIG9mIGEKLSAgICAgICAgICAgICJtb3ZxICglJWVzaSwlJWVieCwpLCAlJW1tMiAgXG5cdCIgLy8gbG9hZCBiPVByaW9yKHgpCi0gICAgICAgICAgICAicHVucGNrbGJ3ICUlbW0wLCAlJW1tMiAgICAgIFxuXHQiIC8vIFVucGFjayBMb3cgYnl0ZXMgb2YgYgotICAgICAgICAgICAgLy8gTXVzdCBzaGlmdCB0byBwb3NpdGlvbiBQcmlvcih4LWJwcCkgZGF0YQotICAgICAgICAgICAgInBzcmxxICRTaGlmdFJlbSwgJSVtbTMgICAgICBcblx0IgorICAgICAgICAgICAgLy8gbXVzdCBzaGlmdCB0byBwb3NpdGlvbiBSYXcoeC1icHApIGRhdGEKKyAgICAgICAgICAgICJwc3JscSBfU2hpZnRSZW0sICUlbW0xICAgICAgXG5cdCIKKyAgICAgICAgICAgIC8vIGRvIGZpcnN0IHNldCBvZiA0IGJ5dGVzCisgICAgICAgICAgICAibW92cSAtOCglJWVzaSwlJWVjeCwpLCAlJW1tMyBcblx0IiAvLyByZWFkIGM9UHJpb3IoeC1icHApIGJ5dGVzCisgICAgICAgICAgICAicHVucGNrbGJ3ICUlbW0wLCAlJW1tMSAgICAgIFxuXHQiIC8vIHVucGFjayBMb3cgYnl0ZXMgb2YgYQorICAgICAgICAgICAgIm1vdnEgKCUlZXNpLCUlZWN4LCksICUlbW0yICBcblx0IiAvLyBsb2FkIGI9UHJpb3IoeCkKKyAgICAgICAgICAgICJwdW5wY2tsYncgJSVtbTAsICUlbW0yICAgICAgXG5cdCIgLy8gdW5wYWNrIExvdyBieXRlcyBvZiBiCisgICAgICAgICAgICAvLyBtdXN0IHNoaWZ0IHRvIHBvc2l0aW9uIFByaW9yKHgtYnBwKSBkYXRhCisgICAgICAgICAgICAicHNybHEgX1NoaWZ0UmVtLCAlJW1tMyAgICAgIFxuXHQiCiAgICAgICAgICAgICAvLyBwYXYgPSBwIC0gYSA9IChhICsgYiAtIGMpIC0gYSA9IGIgLSBjCiAgICAgICAgICAgICAibW92cSAlJW1tMiwgJSVtbTQgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicHVucGNrbGJ3ICUlbW0wLCAlJW1tMyAgICAgIFxuXHQiIC8vIFVucGFjayBMb3cgYnl0ZXMgb2YgYworICAgICAgICAgICAgInB1bnBja2xidyAlJW1tMCwgJSVtbTMgICAgICBcblx0IiAvLyB1bnBhY2sgTG93IGJ5dGVzIG9mIGMKICAgICAgICAgICAgIC8vIHBidiA9IHAgLSBiID0gKGEgKyBiIC0gYykgLSBiID0gYSAtIGMKICAgICAgICAgICAgICJtb3ZxICUlbW0xLCAlJW1tNSAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwc3VidyAlJW1tMywgJSVtbTQgICAgICAgICAgXG5cdCIKQEAgLTMzNTgsMTcgKzM1MjksMTcgQEAKICAgICAgICAgICAgIC8vIHBhID0gYWJzKHAtYSkgPSBhYnMocGF2KQogICAgICAgICAgICAgLy8gcGIgPSBhYnMocC1iKSA9IGFicyhwYnYpCiAgICAgICAgICAgICAvLyBwYyA9IGFicyhwLWMpID0gYWJzKHBjdikKLSAgICAgICAgICAgICJwY21wZ3R3ICUlbW00LCAlJW1tMCAgICAgICAgXG5cdCIgLy8gQ3JlYXRlIG1hc2sgcGF2IGJ5dGVzIDwgMAorICAgICAgICAgICAgInBjbXBndHcgJSVtbTQsICUlbW0wICAgICAgICBcblx0IiAvLyBjcmVhdGUgbWFzayBwYXYgYnl0ZXMgPCAwCiAgICAgICAgICAgICAicGFkZHcgJSVtbTUsICUlbW02ICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGFuZCAlJW1tNCwgJSVtbTAgICAgICAgICAgIFxuXHQiIC8vIE9ubHkgcGF2IGJ5dGVzIDwgMCBpbiBtbTcKLSAgICAgICAgICAgICJwY21wZ3R3ICUlbW01LCAlJW1tNyAgICAgICAgXG5cdCIgLy8gQ3JlYXRlIG1hc2sgcGJ2IGJ5dGVzIDwgMAorICAgICAgICAgICAgInBhbmQgJSVtbTQsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBvbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03CisgICAgICAgICAgICAicGNtcGd0dyAlJW1tNSwgJSVtbTcgICAgICAgIFxuXHQiIC8vIGNyZWF0ZSBtYXNrIHBidiBieXRlcyA8IDAKICAgICAgICAgICAgICJwc3VidyAlJW1tMCwgJSVtbTQgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwYW5kICUlbW01LCAlJW1tNyAgICAgICAgICAgXG5cdCIgLy8gT25seSBwYnYgYnl0ZXMgPCAwIGluIG1tMAorICAgICAgICAgICAgInBhbmQgJSVtbTUsICUlbW03ICAgICAgICAgICBcblx0IiAvLyBvbmx5IHBidiBieXRlcyA8IDAgaW4gbW0wCiAgICAgICAgICAgICAicHN1YncgJSVtbTAsICUlbW00ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHN1YncgJSVtbTcsICUlbW01ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHhvciAlJW1tMCwgJSVtbTAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGNtcGd0dyAlJW1tNiwgJSVtbTAgICAgICAgIFxuXHQiIC8vIENyZWF0ZSBtYXNrIHBjdiBieXRlcyA8IDAKLSAgICAgICAgICAgICJwYW5kICUlbW02LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gT25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNworICAgICAgICAgICAgInBjbXBndHcgJSVtbTYsICUlbW0wICAgICAgICBcblx0IiAvLyBjcmVhdGUgbWFzayBwY3YgYnl0ZXMgPCAwCisgICAgICAgICAgICAicGFuZCAlJW1tNiwgJSVtbTAgICAgICAgICAgIFxuXHQiIC8vIG9ubHkgcGF2IGJ5dGVzIDwgMCBpbiBtbTcKICAgICAgICAgICAgICJwc3VidyAlJW1tNywgJSVtbTUgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwc3VidyAlJW1tMCwgJSVtbTYgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgIC8vICB0ZXN0IHBhIDw9IHBiCkBAIC0zMzkyLDI0ICszNTYzLDI0IEBACiAgICAgICAgICAgICAicGFkZHcgJSVtbTMsICUlbW03ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHhvciAlJW1tMCwgJSVtbTAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicGFja3Vzd2IgJSVtbTEsICUlbW03ICAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92cSAtOCglJWVzaSwlJWVieCwpLCAlJW1tMyBcblx0IiAvLyBsb2FkIGM9UHJpb3IoeC1icHApCi0gICAgICAgICAgICAicGFuZCAkQWN0aXZlTWFzaywgJSVtbTcgICAgIFxuXHQiCi0gICAgICAgICAgICAicHNybHEgJFNoaWZ0UmVtLCAlJW1tMyAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92cSAoJSVlc2ksJSVlYngsKSwgJSVtbTIgIFxuXHQiIC8vIGxvYWQgYj1Qcmlvcih4KSBzdGVwIDEKLSAgICAgICAgICAgICJwYWRkYiAoJSVlZGksJSVlYngsKSwgJSVtbTcgXG5cdCIgLy8gYWRkIFBhZXRoIHByZWRpY3RvciB3aXRoIFJhdyh4KQorICAgICAgICAgICAgIm1vdnEgLTgoJSVlc2ksJSVlY3gsKSwgJSVtbTMgXG5cdCIgLy8gbG9hZCBjPVByaW9yKHgtYnBwKQorICAgICAgICAgICAgInBhbmQgX0FjdGl2ZU1hc2ssICUlbW03ICAgICBcblx0IgorICAgICAgICAgICAgInBzcmxxIF9TaGlmdFJlbSwgJSVtbTMgICAgICBcblx0IgorICAgICAgICAgICAgIm1vdnEgKCUlZXNpLCUlZWN4LCksICUlbW0yICBcblx0IiAvLyBsb2FkIGI9UHJpb3IoeCkgc3RlcCAxCisgICAgICAgICAgICAicGFkZGIgKCUlZWRpLCUlZWN4LCksICUlbW03IFxuXHQiIC8vIGFkZCBQYWV0aCBwcmVkaWN0b3IgYW5kIFJhdyh4KQogICAgICAgICAgICAgIm1vdnEgJSVtbTIsICUlbW02ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgJSVtbTcsICglJWVkaSwlJWVieCwpICBcblx0IiAvLyB3cml0ZSBiYWNrIHVwZGF0ZWQgdmFsdWUKLSAgICAgICAgICAgICJtb3ZxIC04KCUlZWRpLCUlZWJ4LCksICUlbW0xIFxuXHQiCi0gICAgICAgICAgICAicHNsbHEgJFNoaWZ0QnBwLCAlJW1tNiAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAlJW1tNywgKCUlZWRpLCUlZWN4LCkgIFxuXHQiIC8vIHdyaXRlIGJhY2sgdXBkYXRlZCB2YWx1ZQorICAgICAgICAgICAgIm1vdnEgLTgoJSVlZGksJSVlY3gsKSwgJSVtbTEgXG5cdCIKKyAgICAgICAgICAgICJwc2xscSBfU2hpZnRCcHAsICUlbW02ICAgICAgXG5cdCIKICAgICAgICAgICAgICJtb3ZxICUlbW03LCAlJW1tNSAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwc3JscSAkU2hpZnRSZW0sICUlbW0xICAgICAgXG5cdCIKKyAgICAgICAgICAgICJwc3JscSBfU2hpZnRSZW0sICUlbW0xICAgICAgXG5cdCIKICAgICAgICAgICAgICJwb3IgJSVtbTYsICUlbW0zICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwc2xscSAkU2hpZnRCcHAsICUlbW01ICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwdW5wY2toYncgJSVtbTAsICUlbW0zICAgICAgXG5cdCIgLy8gVW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYworICAgICAgICAgICAgInBzbGxxIF9TaGlmdEJwcCwgJSVtbTUgICAgICBcblx0IgorICAgICAgICAgICAgInB1bnBja2hidyAlJW1tMCwgJSVtbTMgICAgICBcblx0IiAvLyB1bnBhY2sgSGlnaCBieXRlcyBvZiBjCiAgICAgICAgICAgICAicG9yICUlbW01LCAlJW1tMSAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAvLyBEbyBzZWNvbmQgc2V0IG9mIDQgYnl0ZXMKLSAgICAgICAgICAgICJwdW5wY2toYncgJSVtbTAsICUlbW0yICAgICAgXG5cdCIgLy8gVW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYgotICAgICAgICAgICAgInB1bnBja2hidyAlJW1tMCwgJSVtbTEgICAgICBcblx0IiAvLyBVbnBhY2sgSGlnaCBieXRlcyBvZiBhCisgICAgICAgICAgICAvLyBkbyBzZWNvbmQgc2V0IG9mIDQgYnl0ZXMKKyAgICAgICAgICAgICJwdW5wY2toYncgJSVtbTAsICUlbW0yICAgICAgXG5cdCIgLy8gdW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYgorICAgICAgICAgICAgInB1bnBja2hidyAlJW1tMCwgJSVtbTEgICAgICBcblx0IiAvLyB1bnBhY2sgSGlnaCBieXRlcyBvZiBhCiAgICAgICAgICAgICAvLyBwYXYgPSBwIC0gYSA9IChhICsgYiAtIGMpIC0gYSA9IGIgLSBjCiAgICAgICAgICAgICAibW92cSAlJW1tMiwgJSVtbTQgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAvLyBwYnYgPSBwIC0gYiA9IChhICsgYiAtIGMpIC0gYiA9IGEgLSBjCkBAIC0zNDIyLDE3ICszNTkzLDE3IEBACiAgICAgICAgICAgICAvLyBwYSA9IGFicyhwLWEpID0gYWJzKHBhdikKICAgICAgICAgICAgIC8vIHBiID0gYWJzKHAtYikgPSBhYnMocGJ2KQogICAgICAgICAgICAgLy8gcGMgPSBhYnMocC1jKSA9IGFicyhwY3YpCi0gICAgICAgICAgICAicGNtcGd0dyAlJW1tNCwgJSVtbTAgICAgICAgIFxuXHQiIC8vIENyZWF0ZSBtYXNrIHBhdiBieXRlcyA8IDAKKyAgICAgICAgICAgICJwY21wZ3R3ICUlbW00LCAlJW1tMCAgICAgICAgXG5cdCIgLy8gY3JlYXRlIG1hc2sgcGF2IGJ5dGVzIDwgMAogICAgICAgICAgICAgInBhZGR3ICUlbW01LCAlJW1tNiAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBhbmQgJSVtbTQsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBPbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03Ci0gICAgICAgICAgICAicGNtcGd0dyAlJW1tNSwgJSVtbTcgICAgICAgIFxuXHQiIC8vIENyZWF0ZSBtYXNrIHBidiBieXRlcyA8IDAKKyAgICAgICAgICAgICJwYW5kICUlbW00LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gb25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNworICAgICAgICAgICAgInBjbXBndHcgJSVtbTUsICUlbW03ICAgICAgICBcblx0IiAvLyBjcmVhdGUgbWFzayBwYnYgYnl0ZXMgPCAwCiAgICAgICAgICAgICAicHN1YncgJSVtbTAsICUlbW00ICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGFuZCAlJW1tNSwgJSVtbTcgICAgICAgICAgIFxuXHQiIC8vIE9ubHkgcGJ2IGJ5dGVzIDwgMCBpbiBtbTAKKyAgICAgICAgICAgICJwYW5kICUlbW01LCAlJW1tNyAgICAgICAgICAgXG5cdCIgLy8gb25seSBwYnYgYnl0ZXMgPCAwIGluIG1tMAogICAgICAgICAgICAgInBzdWJ3ICUlbW0wLCAlJW1tNCAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInBzdWJ3ICUlbW03LCAlJW1tNSAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInB4b3IgJSVtbTAsICUlbW0wICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBjbXBndHcgJSVtbTYsICUlbW0wICAgICAgICBcblx0IiAvLyBDcmVhdGUgbWFzayBwY3YgYnl0ZXMgPCAwCi0gICAgICAgICAgICAicGFuZCAlJW1tNiwgJSVtbTAgICAgICAgICAgIFxuXHQiIC8vIE9ubHkgcGF2IGJ5dGVzIDwgMCBpbiBtbTcKKyAgICAgICAgICAgICJwY21wZ3R3ICUlbW02LCAlJW1tMCAgICAgICAgXG5cdCIgLy8gY3JlYXRlIG1hc2sgcGN2IGJ5dGVzIDwgMAorICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBvbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03CiAgICAgICAgICAgICAicHN1YncgJSVtbTcsICUlbW01ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHN1YncgJSVtbTAsICUlbW02ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAvLyAgdGVzdCBwYSA8PSBwYgpAQCAtMzQ1Niw0NCArMzYyNyw1MSBAQAogICAgICAgICAgICAgInB4b3IgJSVtbTEsICUlbW0xICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInBhZGR3ICUlbW0zLCAlJW1tNyAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInB4b3IgJSVtbTAsICUlbW0wICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgLy8gU3RlcCBleCB0byBuZXh0IHNldCBvZiA4IGJ5dGVzIGFuZCByZXBlYXQgbG9vcCB0aWwgZG9uZQotICAgICAgICAgICAgImFkZGwgJDgsICUlZWJ4ICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgLy8gc3RlcCBlY3ggdG8gbmV4dCBzZXQgb2YgOCBieXRlcyBhbmQgcmVwZWF0IGxvb3AgdGlsIGRvbmUKKyAgICAgICAgICAgICJhZGRsICQ4LCAlJWVjeCAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwYWNrdXN3YiAlJW1tNywgJSVtbTEgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwYWRkYiAtOCglJWVkaSwlJWVieCwpLCAlJW1tMSBcblx0IiAvLyBhZGQgUGFldGggcHJlZGljdG9yIHdpdGggUmF3KHgpCi0gICAgICAgICAgICAiY21wbCBfTU1YTGVuZ3RoLCAlJWVieCAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92cSAlJW1tMSwgLTgoJSVlZGksJSVlYngsKSBcblx0IiAvLyB3cml0ZSBiYWNrIHVwZGF0ZWQgdmFsdWUKKyAgICAgICAgICAgICJwYWRkYiAtOCglJWVkaSwlJWVjeCwpLCAlJW1tMSBcblx0IiAvLyBhZGQgUGFldGggcHJlZGljdG9yIHdpdGggUmF3KHgpCisgICAgICAgICAgICAiY21wbCBfTU1YTGVuZ3RoLCAlJWVjeCAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAlJW1tMSwgLTgoJSVlZGksJSVlY3gsKSBcblx0IiAvLyB3cml0ZSBiYWNrIHVwZGF0ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW0xIHdpbGwgYmUgdXNlZCBhcyBSYXcoeC1icHApIG5leHQgbG9vcAogICAgICAgICAgICAgImpiIHBhZXRoXzZscCAgICAgICAgICAgICAgICBcblx0IgogCi0gICAgICAgICAgICA6IC8vIEZJWEFTTTogb3V0cHV0IHJlZ3MvdmFycyBnbyBoZXJlLCBlLmcuOiAgIj1tIiAobWVtb3J5X3ZhcikKKyAgICAgICAgICAgIDogIj1TIiAoZHVtbXlfdmFsdWVfUyksICAgICAgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKIAotICAgICAgICAgICAgOiAvLyBGSVhBU006IGlucHV0IHJlZ3MsIGUuZy46ICAiYyIgKGNvdW50KSwgIlMiIChzcmMpLCAiRCIgKGRlc3QpCisgICAgICAgICAgICA6ICIwIiAocHJldl9yb3cpLCAgLy8gZXNpICAgICAgICAgICAvLyBpbnB1dCByZWdzCisgICAgICAgICAgICAgICIxIiAocm93KSAgICAgICAgLy8gZWRpCiAKLSAgICAgICAgICAgIDogIiVlYngiLCAiJWVkaSIsICIlZXNpIiwgIiVtbTAiLCAiJW1tMSIsICIlbW0yIiwgIiVtbTMiLCAiJW1tNCIsICIlbW01IiwgIiVtbTYiLCAiJW1tNyIgLy8gQ0hFQ0tBU006IGNsb2JiZXIgbGlzdAorICAgICAgICAgICAgOiAiJWVjeCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CisjaWYgMCAgLyogJW1tMCwgLi4uLCAlbW03IG5vdCBzdXBwb3J0ZWQgYnkgZ2NjIDIuNy4yLjMgb3IgZWdjcyAxLjEgKi8KKyAgICAgICAgICAgICwgIiVtbTAiLCAiJW1tMSIsICIlbW0yIiwgIiVtbTMiCisgICAgICAgICAgICAsICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IgorI2VuZGlmCiAgICAgICAgICApOwogICAgICAgfQotICAgICAgYnJlYWs7CisgICAgICBicmVhazsgIC8vIGVuZCA2IGJwcAogCiAgICAgICBjYXNlIDQ6CiAgICAgICB7Ci0gICAgICAgICBBY3RpdmVNYXNrLnVzZSAgPSAweDAwMDAwMDAwZmZmZmZmZmY7Ci0gICAgICAgICBfX2FzbV9fICgKLSAgICAgICAgICAgICJtb3ZsIF9kaWYsICUlZWJ4ICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZsIHByZXZfcm93LCAlJWVzaSAgICAgICAgXG5cdCIKKyAgICAgICAgIF9BY3RpdmVNYXNrLnVzZSAgPSAweDAwMDAwMDAwZmZmZmZmZmZMTDsKKworICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlY3ggICAgICAgICAgICBcblx0IgorLy8gcHJlbG9hZCAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IgorLy8gcHJlbG9hZCAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IgogICAgICAgICAgICAgInB4b3IgJSVtbTAsICUlbW0wICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgLy8gUFJJTUUgdGhlIHB1bXAgKGxvYWQgdGhlIGZpcnN0IFJhdyh4LWJwcCkgZGF0YSBzZXQKLSAgICAgICAgICAgICJtb3ZxIC04KCUlZWRpLCUlZWJ4LCksICUlbW0xIFxuXHQiIC8vIE9ubHkgdGltZSBzaG91bGQgbmVlZCB0byByZWFkCisgICAgICAgICAgICAvLyBwcmltZSB0aGUgcHVtcDogIGxvYWQgdGhlIGZpcnN0IFJhdyh4LWJwcCkgZGF0YSBzZXQKKyAgICAgICAgICAgICJtb3ZxIC04KCUlZWRpLCUlZWN4LCksICUlbW0xIFxuXHQiIC8vIG9ubHkgdGltZSBzaG91bGQgbmVlZCB0byByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGE9UmF3KHgtYnBwKSBieXRlcwogICAgICAgICAgInBhZXRoXzRscDogICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgLy8gRG8gZmlyc3Qgc2V0IG9mIDQgYnl0ZXMKLSAgICAgICAgICAgICJtb3ZxIC04KCUlZXNpLCUlZWJ4LCksICUlbW0zIFxuXHQiIC8vIHJlYWQgYz1Qcmlvcih4LWJwcCkgYnl0ZXMKLSAgICAgICAgICAgICJwdW5wY2toYncgJSVtbTAsICUlbW0xICAgICAgXG5cdCIgLy8gVW5wYWNrIExvdyBieXRlcyBvZiBhCi0gICAgICAgICAgICAibW92cSAoJSVlc2ksJSVlYngsKSwgJSVtbTIgIFxuXHQiIC8vIGxvYWQgYj1Qcmlvcih4KQotICAgICAgICAgICAgInB1bnBja2xidyAlJW1tMCwgJSVtbTIgICAgICBcblx0IiAvLyBVbnBhY2sgSGlnaCBieXRlcyBvZiBiCisgICAgICAgICAgICAvLyBkbyBmaXJzdCBzZXQgb2YgNCBieXRlcworICAgICAgICAgICAgIm1vdnEgLTgoJSVlc2ksJSVlY3gsKSwgJSVtbTMgXG5cdCIgLy8gcmVhZCBjPVByaW9yKHgtYnBwKSBieXRlcworICAgICAgICAgICAgInB1bnBja2hidyAlJW1tMCwgJSVtbTEgICAgICBcblx0IiAvLyB1bnBhY2sgTG93IGJ5dGVzIG9mIGEKKyAgICAgICAgICAgICJtb3ZxICglJWVzaSwlJWVjeCwpLCAlJW1tMiAgXG5cdCIgLy8gbG9hZCBiPVByaW9yKHgpCisgICAgICAgICAgICAicHVucGNrbGJ3ICUlbW0wLCAlJW1tMiAgICAgIFxuXHQiIC8vIHVucGFjayBIaWdoIGJ5dGVzIG9mIGIKICAgICAgICAgICAgIC8vIHBhdiA9IHAgLSBhID0gKGEgKyBiIC0gYykgLSBhID0gYiAtIGMKICAgICAgICAgICAgICJtb3ZxICUlbW0yLCAlJW1tNCAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwdW5wY2toYncgJSVtbTAsICUlbW0zICAgICAgXG5cdCIgLy8gVW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYworICAgICAgICAgICAgInB1bnBja2hidyAlJW1tMCwgJSVtbTMgICAgICBcblx0IiAvLyB1bnBhY2sgSGlnaCBieXRlcyBvZiBjCiAgICAgICAgICAgICAvLyBwYnYgPSBwIC0gYiA9IChhICsgYiAtIGMpIC0gYiA9IGEgLSBjCiAgICAgICAgICAgICAibW92cSAlJW1tMSwgJSVtbTUgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHN1YncgJSVtbTMsICUlbW00ICAgICAgICAgIFxuXHQiCkBAIC0zNTA0LDE3ICszNjgyLDE3IEBACiAgICAgICAgICAgICAvLyBwYSA9IGFicyhwLWEpID0gYWJzKHBhdikKICAgICAgICAgICAgIC8vIHBiID0gYWJzKHAtYikgPSBhYnMocGJ2KQogICAgICAgICAgICAgLy8gcGMgPSBhYnMocC1jKSA9IGFicyhwY3YpCi0gICAgICAgICAgICAicGNtcGd0dyAlJW1tNCwgJSVtbTAgICAgICAgIFxuXHQiIC8vIENyZWF0ZSBtYXNrIHBhdiBieXRlcyA8IDAKKyAgICAgICAgICAgICJwY21wZ3R3ICUlbW00LCAlJW1tMCAgICAgICAgXG5cdCIgLy8gY3JlYXRlIG1hc2sgcGF2IGJ5dGVzIDwgMAogICAgICAgICAgICAgInBhZGR3ICUlbW01LCAlJW1tNiAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBhbmQgJSVtbTQsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBPbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03Ci0gICAgICAgICAgICAicGNtcGd0dyAlJW1tNSwgJSVtbTcgICAgICAgIFxuXHQiIC8vIENyZWF0ZSBtYXNrIHBidiBieXRlcyA8IDAKKyAgICAgICAgICAgICJwYW5kICUlbW00LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gb25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNworICAgICAgICAgICAgInBjbXBndHcgJSVtbTUsICUlbW03ICAgICAgICBcblx0IiAvLyBjcmVhdGUgbWFzayBwYnYgYnl0ZXMgPCAwCiAgICAgICAgICAgICAicHN1YncgJSVtbTAsICUlbW00ICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGFuZCAlJW1tNSwgJSVtbTcgICAgICAgICAgIFxuXHQiIC8vIE9ubHkgcGJ2IGJ5dGVzIDwgMCBpbiBtbTAKKyAgICAgICAgICAgICJwYW5kICUlbW01LCAlJW1tNyAgICAgICAgICAgXG5cdCIgLy8gb25seSBwYnYgYnl0ZXMgPCAwIGluIG1tMAogICAgICAgICAgICAgInBzdWJ3ICUlbW0wLCAlJW1tNCAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInBzdWJ3ICUlbW03LCAlJW1tNSAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInB4b3IgJSVtbTAsICUlbW0wICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBjbXBndHcgJSVtbTYsICUlbW0wICAgICAgICBcblx0IiAvLyBDcmVhdGUgbWFzayBwY3YgYnl0ZXMgPCAwCi0gICAgICAgICAgICAicGFuZCAlJW1tNiwgJSVtbTAgICAgICAgICAgIFxuXHQiIC8vIE9ubHkgcGF2IGJ5dGVzIDwgMCBpbiBtbTcKKyAgICAgICAgICAgICJwY21wZ3R3ICUlbW02LCAlJW1tMCAgICAgICAgXG5cdCIgLy8gY3JlYXRlIG1hc2sgcGN2IGJ5dGVzIDwgMAorICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBvbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03CiAgICAgICAgICAgICAicHN1YncgJSVtbTcsICUlbW01ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHN1YncgJSVtbTAsICUlbW02ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAvLyAgdGVzdCBwYSA8PSBwYgpAQCAtMzUzOCwxNiArMzcxNiwxNiBAQAogICAgICAgICAgICAgInBhZGR3ICUlbW0zLCAlJW1tNyAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInB4b3IgJSVtbTAsICUlbW0wICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInBhY2t1c3diICUlbW0xLCAlJW1tNyAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgKCUlZXNpLCUlZWJ4LCksICUlbW0zICBcblx0IiAvLyBsb2FkIGM9UHJpb3IoeC1icHApCi0gICAgICAgICAgICAicGFuZCAkQWN0aXZlTWFzaywgJSVtbTcgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAoJSVlc2ksJSVlY3gsKSwgJSVtbTMgIFxuXHQiIC8vIGxvYWQgYz1Qcmlvcih4LWJwcCkKKyAgICAgICAgICAgICJwYW5kIF9BY3RpdmVNYXNrLCAlJW1tNyAgICAgXG5cdCIKICAgICAgICAgICAgICJtb3ZxICUlbW0zLCAlJW1tMiAgICAgICAgICAgXG5cdCIgLy8gbG9hZCBiPVByaW9yKHgpIHN0ZXAgMQotICAgICAgICAgICAgInBhZGRiICglJWVkaSwlJWVieCwpLCAlJW1tNyBcblx0IiAvLyBhZGQgUGFldGggcHJlZGljdG9yIHdpdGggUmF3KHgpCi0gICAgICAgICAgICAicHVucGNrbGJ3ICUlbW0wLCAlJW1tMyAgICAgIFxuXHQiIC8vIFVucGFjayBIaWdoIGJ5dGVzIG9mIGMKLSAgICAgICAgICAgICJtb3ZxICUlbW03LCAoJSVlZGksJSVlYngsKSAgXG5cdCIgLy8gd3JpdGUgYmFjayB1cGRhdGVkIHZhbHVlCi0gICAgICAgICAgICAibW92cSAlJW1tNywgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIE5vdyBtbTEgd2lsbCBiZSB1c2VkIGFzIFJhdyh4LWJwcCkKLSAgICAgICAgICAgIC8vIERvIHNlY29uZCBzZXQgb2YgNCBieXRlcwotICAgICAgICAgICAgInB1bnBja2hidyAlJW1tMCwgJSVtbTIgICAgICBcblx0IiAvLyBVbnBhY2sgTG93IGJ5dGVzIG9mIGIKLSAgICAgICAgICAgICJwdW5wY2tsYncgJSVtbTAsICUlbW0xICAgICAgXG5cdCIgLy8gVW5wYWNrIExvdyBieXRlcyBvZiBhCisgICAgICAgICAgICAicGFkZGIgKCUlZWRpLCUlZWN4LCksICUlbW03IFxuXHQiIC8vIGFkZCBQYWV0aCBwcmVkaWN0b3Igd2l0aCBSYXcoeCkKKyAgICAgICAgICAgICJwdW5wY2tsYncgJSVtbTAsICUlbW0zICAgICAgXG5cdCIgLy8gdW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYworICAgICAgICAgICAgIm1vdnEgJSVtbTcsICglJWVkaSwlJWVjeCwpICBcblx0IiAvLyB3cml0ZSBiYWNrIHVwZGF0ZWQgdmFsdWUKKyAgICAgICAgICAgICJtb3ZxICUlbW03LCAlJW1tMSAgICAgICAgICAgXG5cdCIgLy8gbm93IG1tMSB3aWxsIGJlIHVzZWQgYXMgUmF3KHgtYnBwKQorICAgICAgICAgICAgLy8gZG8gc2Vjb25kIHNldCBvZiA0IGJ5dGVzCisgICAgICAgICAgICAicHVucGNraGJ3ICUlbW0wLCAlJW1tMiAgICAgIFxuXHQiIC8vIHVucGFjayBMb3cgYnl0ZXMgb2YgYgorICAgICAgICAgICAgInB1bnBja2xidyAlJW1tMCwgJSVtbTEgICAgICBcblx0IiAvLyB1bnBhY2sgTG93IGJ5dGVzIG9mIGEKICAgICAgICAgICAgIC8vIHBhdiA9IHAgLSBhID0gKGEgKyBiIC0gYykgLSBhID0gYiAtIGMKICAgICAgICAgICAgICJtb3ZxICUlbW0yLCAlJW1tNCAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgIC8vIHBidiA9IHAgLSBiID0gKGEgKyBiIC0gYykgLSBiID0gYSAtIGMKQEAgLTM1NjAsMTcgKzM3MzgsMTcgQEAKICAgICAgICAgICAgIC8vIHBhID0gYWJzKHAtYSkgPSBhYnMocGF2KQogICAgICAgICAgICAgLy8gcGIgPSBhYnMocC1iKSA9IGFicyhwYnYpCiAgICAgICAgICAgICAvLyBwYyA9IGFicyhwLWMpID0gYWJzKHBjdikKLSAgICAgICAgICAgICJwY21wZ3R3ICUlbW00LCAlJW1tMCAgICAgICAgXG5cdCIgLy8gQ3JlYXRlIG1hc2sgcGF2IGJ5dGVzIDwgMAorICAgICAgICAgICAgInBjbXBndHcgJSVtbTQsICUlbW0wICAgICAgICBcblx0IiAvLyBjcmVhdGUgbWFzayBwYXYgYnl0ZXMgPCAwCiAgICAgICAgICAgICAicGFkZHcgJSVtbTUsICUlbW02ICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGFuZCAlJW1tNCwgJSVtbTAgICAgICAgICAgIFxuXHQiIC8vIE9ubHkgcGF2IGJ5dGVzIDwgMCBpbiBtbTcKLSAgICAgICAgICAgICJwY21wZ3R3ICUlbW01LCAlJW1tNyAgICAgICAgXG5cdCIgLy8gQ3JlYXRlIG1hc2sgcGJ2IGJ5dGVzIDwgMAorICAgICAgICAgICAgInBhbmQgJSVtbTQsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBvbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03CisgICAgICAgICAgICAicGNtcGd0dyAlJW1tNSwgJSVtbTcgICAgICAgIFxuXHQiIC8vIGNyZWF0ZSBtYXNrIHBidiBieXRlcyA8IDAKICAgICAgICAgICAgICJwc3VidyAlJW1tMCwgJSVtbTQgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwYW5kICUlbW01LCAlJW1tNyAgICAgICAgICAgXG5cdCIgLy8gT25seSBwYnYgYnl0ZXMgPCAwIGluIG1tMAorICAgICAgICAgICAgInBhbmQgJSVtbTUsICUlbW03ICAgICAgICAgICBcblx0IiAvLyBvbmx5IHBidiBieXRlcyA8IDAgaW4gbW0wCiAgICAgICAgICAgICAicHN1YncgJSVtbTAsICUlbW00ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHN1YncgJSVtbTcsICUlbW01ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHhvciAlJW1tMCwgJSVtbTAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGNtcGd0dyAlJW1tNiwgJSVtbTAgICAgICAgIFxuXHQiIC8vIENyZWF0ZSBtYXNrIHBjdiBieXRlcyA8IDAKLSAgICAgICAgICAgICJwYW5kICUlbW02LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gT25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNworICAgICAgICAgICAgInBjbXBndHcgJSVtbTYsICUlbW0wICAgICAgICBcblx0IiAvLyBjcmVhdGUgbWFzayBwY3YgYnl0ZXMgPCAwCisgICAgICAgICAgICAicGFuZCAlJW1tNiwgJSVtbTAgICAgICAgICAgIFxuXHQiIC8vIG9ubHkgcGF2IGJ5dGVzIDwgMCBpbiBtbTcKICAgICAgICAgICAgICJwc3VidyAlJW1tNywgJSVtbTUgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwc3VidyAlJW1tMCwgJSVtbTYgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgIC8vICB0ZXN0IHBhIDw9IHBiCkBAIC0zNTk0LDQzICszNzcyLDUxIEBACiAgICAgICAgICAgICAicHhvciAlJW1tMSwgJSVtbTEgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicGFkZHcgJSVtbTMsICUlbW03ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHhvciAlJW1tMCwgJSVtbTAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAvLyBTdGVwIGV4IHRvIG5leHQgc2V0IG9mIDggYnl0ZXMgYW5kIHJlcGVhdCBsb29wIHRpbCBkb25lCi0gICAgICAgICAgICAiYWRkbCAkOCwgJSVlYnggICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAvLyBzdGVwIGVjeCB0byBuZXh0IHNldCBvZiA4IGJ5dGVzIGFuZCByZXBlYXQgbG9vcCB0aWwgZG9uZQorICAgICAgICAgICAgImFkZGwgJDgsICUlZWN4ICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInBhY2t1c3diICUlbW03LCAlJW1tMSAgICAgICBcblx0IgotICAgICAgICAgICAgInBhZGRiIC04KCUlZWRpLCUlZWJ4LCksICUlbW0xIFxuXHQiIC8vIGFkZCBQYWV0aCBwcmVkaWN0b3Igd2l0aCBSYXcoeCkKLSAgICAgICAgICAgICJjbXBsIF9NTVhMZW5ndGgsICUlZWJ4ICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZxICUlbW0xLCAtOCglJWVkaSwlJWVieCwpIFxuXHQiIC8vIHdyaXRlIGJhY2sgdXBkYXRlZCB2YWx1ZQorICAgICAgICAgICAgInBhZGRiIC04KCUlZWRpLCUlZWN4LCksICUlbW0xIFxuXHQiIC8vIGFkZCBwcmVkaWN0b3Igd2l0aCBSYXcoeCkKKyAgICAgICAgICAgICJjbXBsIF9NTVhMZW5ndGgsICUlZWN4ICAgICAgXG5cdCIKKyAgICAgICAgICAgICJtb3ZxICUlbW0xLCAtOCglJWVkaSwlJWVjeCwpIFxuXHQiIC8vIHdyaXRlIGJhY2sgdXBkYXRlZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtbTEgd2lsbCBiZSB1c2VkIGFzIFJhdyh4LWJwcCkgbmV4dCBsb29wCiAgICAgICAgICAgICAiamIgcGFldGhfNGxwICAgICAgICAgICAgICAgIFxuXHQiCiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBvdXRwdXQgcmVncy92YXJzIGdvIGhlcmUsIGUuZy46ICAiPW0iIChtZW1vcnlfdmFyKQorICAgICAgICAgICAgOiAiPVMiIChkdW1teV92YWx1ZV9TKSwgICAgICAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQorICAgICAgICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKQogCi0gICAgICAgICAgICA6IC8vIEZJWEFTTTogaW5wdXQgcmVncywgZS5nLjogICJjIiAoY291bnQpLCAiUyIgKHNyYyksICJEIiAoZGVzdCkKKyAgICAgICAgICAgIDogIjAiIChwcmV2X3JvdyksICAvLyBlc2kgICAgICAgICAgIC8vIGlucHV0IHJlZ3MKKyAgICAgICAgICAgICAgIjEiIChyb3cpICAgICAgICAvLyBlZGkKIAotICAgICAgICAgICAgOiAiJWVieCIsICIlZWRpIiwgIiVlc2kiLCAiJW1tMCIsICIlbW0xIiwgIiVtbTIiLCAiJW1tMyIsICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IiAvLyBDSEVDS0FTTTogY2xvYmJlciBsaXN0CisgICAgICAgICAgICA6ICIlZWN4IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKKyNpZiAwICAvKiAlbW0wLCAuLi4sICVtbTcgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLworICAgICAgICAgICAgLCAiJW1tMCIsICIlbW0xIiwgIiVtbTIiLCAiJW1tMyIKKyAgICAgICAgICAgICwgIiVtbTQiLCAiJW1tNSIsICIlbW02IiwgIiVtbTciCisjZW5kaWYKICAgICAgICAgICk7CiAgICAgICB9Ci0gICAgICBicmVhazsKKyAgICAgIGJyZWFrOyAgLy8gZW5kIDQgYnBwCisKICAgICAgIGNhc2UgODogICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJwcCA9PSA4CiAgICAgICB7Ci0gICAgICAgICBBY3RpdmVNYXNrLnVzZSAgPSAweDAwMDAwMDAwZmZmZmZmZmY7Ci0gICAgICAgICBfX2FzbV9fICgKLSAgICAgICAgICAgICJtb3ZsIF9kaWYsICUlZWJ4ICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZsIHByZXZfcm93LCAlJWVzaSAgICAgICAgXG5cdCIKKyAgICAgICAgIF9BY3RpdmVNYXNrLnVzZSAgPSAweDAwMDAwMDAwZmZmZmZmZmZMTDsKKworICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlY3ggICAgICAgICAgICBcblx0IgorLy8gcHJlbG9hZCAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IgorLy8gcHJlbG9hZCAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IgogICAgICAgICAgICAgInB4b3IgJSVtbTAsICUlbW0wICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgLy8gUFJJTUUgdGhlIHB1bXAgKGxvYWQgdGhlIGZpcnN0IFJhdyh4LWJwcCkgZGF0YSBzZXQKLSAgICAgICAgICAgICJtb3ZxIC04KCUlZWRpLCUlZWJ4LCksICUlbW0xIFxuXHQiIC8vIE9ubHkgdGltZSBzaG91bGQgbmVlZCB0byByZWFkCisgICAgICAgICAgICAvLyBwcmltZSB0aGUgcHVtcDogIGxvYWQgdGhlIGZpcnN0IFJhdyh4LWJwcCkgZGF0YSBzZXQKKyAgICAgICAgICAgICJtb3ZxIC04KCUlZWRpLCUlZWN4LCksICUlbW0xIFxuXHQiIC8vIG9ubHkgdGltZSBzaG91bGQgbmVlZCB0byByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgYT1SYXcoeC1icHApIGJ5dGVzCiAgICAgICAgICAicGFldGhfOGxwOiAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAvLyBEbyBmaXJzdCBzZXQgb2YgNCBieXRlcwotICAgICAgICAgICAgIm1vdnEgLTgoJSVlc2ksJSVlYngsKSwgJSVtbTMgXG5cdCIgLy8gcmVhZCBjPVByaW9yKHgtYnBwKSBieXRlcwotICAgICAgICAgICAgInB1bnBja2xidyAlJW1tMCwgJSVtbTEgICAgICBcblx0IiAvLyBVbnBhY2sgTG93IGJ5dGVzIG9mIGEKLSAgICAgICAgICAgICJtb3ZxICglJWVzaSwlJWVieCwpLCAlJW1tMiAgXG5cdCIgLy8gbG9hZCBiPVByaW9yKHgpCi0gICAgICAgICAgICAicHVucGNrbGJ3ICUlbW0wLCAlJW1tMiAgICAgIFxuXHQiIC8vIFVucGFjayBMb3cgYnl0ZXMgb2YgYgorICAgICAgICAgICAgLy8gZG8gZmlyc3Qgc2V0IG9mIDQgYnl0ZXMKKyAgICAgICAgICAgICJtb3ZxIC04KCUlZXNpLCUlZWN4LCksICUlbW0zIFxuXHQiIC8vIHJlYWQgYz1Qcmlvcih4LWJwcCkgYnl0ZXMKKyAgICAgICAgICAgICJwdW5wY2tsYncgJSVtbTAsICUlbW0xICAgICAgXG5cdCIgLy8gdW5wYWNrIExvdyBieXRlcyBvZiBhCisgICAgICAgICAgICAibW92cSAoJSVlc2ksJSVlY3gsKSwgJSVtbTIgIFxuXHQiIC8vIGxvYWQgYj1Qcmlvcih4KQorICAgICAgICAgICAgInB1bnBja2xidyAlJW1tMCwgJSVtbTIgICAgICBcblx0IiAvLyB1bnBhY2sgTG93IGJ5dGVzIG9mIGIKICAgICAgICAgICAgIC8vIHBhdiA9IHAgLSBhID0gKGEgKyBiIC0gYykgLSBhID0gYiAtIGMKICAgICAgICAgICAgICJtb3ZxICUlbW0yLCAlJW1tNCAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwdW5wY2tsYncgJSVtbTAsICUlbW0zICAgICAgXG5cdCIgLy8gVW5wYWNrIExvdyBieXRlcyBvZiBjCisgICAgICAgICAgICAicHVucGNrbGJ3ICUlbW0wLCAlJW1tMyAgICAgIFxuXHQiIC8vIHVucGFjayBMb3cgYnl0ZXMgb2YgYwogICAgICAgICAgICAgLy8gcGJ2ID0gcCAtIGIgPSAoYSArIGIgLSBjKSAtIGIgPSBhIC0gYwogICAgICAgICAgICAgIm1vdnEgJSVtbTEsICUlbW01ICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInBzdWJ3ICUlbW0zLCAlJW1tNCAgICAgICAgICBcblx0IgpAQCAtMzY0MSwxNyArMzgyNywxNyBAQAogICAgICAgICAgICAgLy8gcGEgPSBhYnMocC1hKSA9IGFicyhwYXYpCiAgICAgICAgICAgICAvLyBwYiA9IGFicyhwLWIpID0gYWJzKHBidikKICAgICAgICAgICAgIC8vIHBjID0gYWJzKHAtYykgPSBhYnMocGN2KQotICAgICAgICAgICAgInBjbXBndHcgJSVtbTQsICUlbW0wICAgICAgICBcblx0IiAvLyBDcmVhdGUgbWFzayBwYXYgYnl0ZXMgPCAwCisgICAgICAgICAgICAicGNtcGd0dyAlJW1tNCwgJSVtbTAgICAgICAgIFxuXHQiIC8vIGNyZWF0ZSBtYXNrIHBhdiBieXRlcyA8IDAKICAgICAgICAgICAgICJwYWRkdyAlJW1tNSwgJSVtbTYgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwYW5kICUlbW00LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gT25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNwotICAgICAgICAgICAgInBjbXBndHcgJSVtbTUsICUlbW03ICAgICAgICBcblx0IiAvLyBDcmVhdGUgbWFzayBwYnYgYnl0ZXMgPCAwCisgICAgICAgICAgICAicGFuZCAlJW1tNCwgJSVtbTAgICAgICAgICAgIFxuXHQiIC8vIG9ubHkgcGF2IGJ5dGVzIDwgMCBpbiBtbTcKKyAgICAgICAgICAgICJwY21wZ3R3ICUlbW01LCAlJW1tNyAgICAgICAgXG5cdCIgLy8gY3JlYXRlIG1hc2sgcGJ2IGJ5dGVzIDwgMAogICAgICAgICAgICAgInBzdWJ3ICUlbW0wLCAlJW1tNCAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBhbmQgJSVtbTUsICUlbW03ICAgICAgICAgICBcblx0IiAvLyBPbmx5IHBidiBieXRlcyA8IDAgaW4gbW0wCisgICAgICAgICAgICAicGFuZCAlJW1tNSwgJSVtbTcgICAgICAgICAgIFxuXHQiIC8vIG9ubHkgcGJ2IGJ5dGVzIDwgMCBpbiBtbTAKICAgICAgICAgICAgICJwc3VidyAlJW1tMCwgJSVtbTQgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwc3VidyAlJW1tNywgJSVtbTUgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJweG9yICUlbW0wLCAlJW1tMCAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwY21wZ3R3ICUlbW02LCAlJW1tMCAgICAgICAgXG5cdCIgLy8gQ3JlYXRlIG1hc2sgcGN2IGJ5dGVzIDwgMAotICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBPbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03CisgICAgICAgICAgICAicGNtcGd0dyAlJW1tNiwgJSVtbTAgICAgICAgIFxuXHQiIC8vIGNyZWF0ZSBtYXNrIHBjdiBieXRlcyA8IDAKKyAgICAgICAgICAgICJwYW5kICUlbW02LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gb25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNwogICAgICAgICAgICAgInBzdWJ3ICUlbW03LCAlJW1tNSAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInBzdWJ3ICUlbW0wLCAlJW1tNiAgICAgICAgICBcblx0IgogICAgICAgICAgICAgLy8gIHRlc3QgcGEgPD0gcGIKQEAgLTM2NzUsMTcgKzM4NjEsMTcgQEAKICAgICAgICAgICAgICJwYWRkdyAlJW1tMywgJSVtbTcgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJweG9yICUlbW0wLCAlJW1tMCAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwYWNrdXN3YiAlJW1tMSwgJSVtbTcgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZxIC04KCUlZXNpLCUlZWJ4LCksICUlbW0zIFxuXHQiIC8vIHJlYWQgYz1Qcmlvcih4LWJwcCkgYnl0ZXMKLSAgICAgICAgICAgICJwYW5kICRBY3RpdmVNYXNrLCAlJW1tNyAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZxICglJWVzaSwlJWVieCwpLCAlJW1tMiAgXG5cdCIgLy8gbG9hZCBiPVByaW9yKHgpCi0gICAgICAgICAgICAicGFkZGIgKCUlZWRpLCUlZWJ4LCksICUlbW03IFxuXHQiIC8vIGFkZCBQYWV0aCBwcmVkaWN0b3Igd2l0aCBSYXcoeCkKLSAgICAgICAgICAgICJwdW5wY2toYncgJSVtbTAsICUlbW0zICAgICAgXG5cdCIgLy8gVW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYwotICAgICAgICAgICAgIm1vdnEgJSVtbTcsICglJWVkaSwlJWVieCwpICBcblx0IiAvLyB3cml0ZSBiYWNrIHVwZGF0ZWQgdmFsdWUKLSAgICAgICAgICAgICJtb3ZxIC04KCUlZWRpLCUlZWJ4LCksICUlbW0xIFxuXHQiIC8vIHJlYWQgYT1SYXcoeC1icHApIGJ5dGVzCisgICAgICAgICAgICAibW92cSAtOCglJWVzaSwlJWVjeCwpLCAlJW1tMyBcblx0IiAvLyByZWFkIGM9UHJpb3IoeC1icHApIGJ5dGVzCisgICAgICAgICAgICAicGFuZCBfQWN0aXZlTWFzaywgJSVtbTcgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAoJSVlc2ksJSVlY3gsKSwgJSVtbTIgIFxuXHQiIC8vIGxvYWQgYj1Qcmlvcih4KQorICAgICAgICAgICAgInBhZGRiICglJWVkaSwlJWVjeCwpLCAlJW1tNyBcblx0IiAvLyBhZGQgUGFldGggcHJlZGljdG9yIHdpdGggUmF3KHgpCisgICAgICAgICAgICAicHVucGNraGJ3ICUlbW0wLCAlJW1tMyAgICAgIFxuXHQiIC8vIHVucGFjayBIaWdoIGJ5dGVzIG9mIGMKKyAgICAgICAgICAgICJtb3ZxICUlbW03LCAoJSVlZGksJSVlY3gsKSAgXG5cdCIgLy8gd3JpdGUgYmFjayB1cGRhdGVkIHZhbHVlCisgICAgICAgICAgICAibW92cSAtOCglJWVkaSwlJWVjeCwpLCAlJW1tMSBcblx0IiAvLyByZWFkIGE9UmF3KHgtYnBwKSBieXRlcwogCi0gICAgICAgICAgICAvLyBEbyBzZWNvbmQgc2V0IG9mIDQgYnl0ZXMKLSAgICAgICAgICAgICJwdW5wY2toYncgJSVtbTAsICUlbW0yICAgICAgXG5cdCIgLy8gVW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYgotICAgICAgICAgICAgInB1bnBja2hidyAlJW1tMCwgJSVtbTEgICAgICBcblx0IiAvLyBVbnBhY2sgSGlnaCBieXRlcyBvZiBhCisgICAgICAgICAgICAvLyBkbyBzZWNvbmQgc2V0IG9mIDQgYnl0ZXMKKyAgICAgICAgICAgICJwdW5wY2toYncgJSVtbTAsICUlbW0yICAgICAgXG5cdCIgLy8gdW5wYWNrIEhpZ2ggYnl0ZXMgb2YgYgorICAgICAgICAgICAgInB1bnBja2hidyAlJW1tMCwgJSVtbTEgICAgICBcblx0IiAvLyB1bnBhY2sgSGlnaCBieXRlcyBvZiBhCiAgICAgICAgICAgICAvLyBwYXYgPSBwIC0gYSA9IChhICsgYiAtIGMpIC0gYSA9IGIgLSBjCiAgICAgICAgICAgICAibW92cSAlJW1tMiwgJSVtbTQgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAvLyBwYnYgPSBwIC0gYiA9IChhICsgYiAtIGMpIC0gYiA9IGEgLSBjCkBAIC0zNjk4LDE3ICszODg0LDE3IEBACiAgICAgICAgICAgICAvLyBwYSA9IGFicyhwLWEpID0gYWJzKHBhdikKICAgICAgICAgICAgIC8vIHBiID0gYWJzKHAtYikgPSBhYnMocGJ2KQogICAgICAgICAgICAgLy8gcGMgPSBhYnMocC1jKSA9IGFicyhwY3YpCi0gICAgICAgICAgICAicGNtcGd0dyAlJW1tNCwgJSVtbTAgICAgICAgIFxuXHQiIC8vIENyZWF0ZSBtYXNrIHBhdiBieXRlcyA8IDAKKyAgICAgICAgICAgICJwY21wZ3R3ICUlbW00LCAlJW1tMCAgICAgICAgXG5cdCIgLy8gY3JlYXRlIG1hc2sgcGF2IGJ5dGVzIDwgMAogICAgICAgICAgICAgInBhZGR3ICUlbW01LCAlJW1tNiAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBhbmQgJSVtbTQsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBPbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03Ci0gICAgICAgICAgICAicGNtcGd0dyAlJW1tNSwgJSVtbTcgICAgICAgIFxuXHQiIC8vIENyZWF0ZSBtYXNrIHBidiBieXRlcyA8IDAKKyAgICAgICAgICAgICJwYW5kICUlbW00LCAlJW1tMCAgICAgICAgICAgXG5cdCIgLy8gb25seSBwYXYgYnl0ZXMgPCAwIGluIG1tNworICAgICAgICAgICAgInBjbXBndHcgJSVtbTUsICUlbW03ICAgICAgICBcblx0IiAvLyBjcmVhdGUgbWFzayBwYnYgYnl0ZXMgPCAwCiAgICAgICAgICAgICAicHN1YncgJSVtbTAsICUlbW00ICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGFuZCAlJW1tNSwgJSVtbTcgICAgICAgICAgIFxuXHQiIC8vIE9ubHkgcGJ2IGJ5dGVzIDwgMCBpbiBtbTAKKyAgICAgICAgICAgICJwYW5kICUlbW01LCAlJW1tNyAgICAgICAgICAgXG5cdCIgLy8gb25seSBwYnYgYnl0ZXMgPCAwIGluIG1tMAogICAgICAgICAgICAgInBzdWJ3ICUlbW0wLCAlJW1tNCAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInBzdWJ3ICUlbW03LCAlJW1tNSAgICAgICAgICBcblx0IgogICAgICAgICAgICAgInB4b3IgJSVtbTAsICUlbW0wICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBjbXBndHcgJSVtbTYsICUlbW0wICAgICAgICBcblx0IiAvLyBDcmVhdGUgbWFzayBwY3YgYnl0ZXMgPCAwCi0gICAgICAgICAgICAicGFuZCAlJW1tNiwgJSVtbTAgICAgICAgICAgIFxuXHQiIC8vIE9ubHkgcGF2IGJ5dGVzIDwgMCBpbiBtbTcKKyAgICAgICAgICAgICJwY21wZ3R3ICUlbW02LCAlJW1tMCAgICAgICAgXG5cdCIgLy8gY3JlYXRlIG1hc2sgcGN2IGJ5dGVzIDwgMAorICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0wICAgICAgICAgICBcblx0IiAvLyBvbmx5IHBhdiBieXRlcyA8IDAgaW4gbW03CiAgICAgICAgICAgICAicHN1YncgJSVtbTcsICUlbW01ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicHN1YncgJSVtbTAsICUlbW02ICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAvLyAgdGVzdCBwYSA8PSBwYgpAQCAtMzczMiw5NCArMzkxOCwxMTMgQEAKICAgICAgICAgICAgICJweG9yICUlbW0xLCAlJW1tMSAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJwYWRkdyAlJW1tMywgJSVtbTcgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJweG9yICUlbW0wLCAlJW1tMCAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgIC8vIFN0ZXAgZXggdG8gbmV4dCBzZXQgb2YgOCBieXRlcyBhbmQgcmVwZWF0IGxvb3AgdGlsIGRvbmUKLSAgICAgICAgICAgICJhZGRsICQ4LCAlJWVieCAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgIC8vIHN0ZXAgZWN4IHRvIG5leHQgc2V0IG9mIDggYnl0ZXMgYW5kIHJlcGVhdCBsb29wIHRpbCBkb25lCisgICAgICAgICAgICAiYWRkbCAkOCwgJSVlY3ggICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAicGFja3Vzd2IgJSVtbTcsICUlbW0xICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGFkZGIgLTgoJSVlZGksJSVlYngsKSwgJSVtbTEgXG5cdCIgLy8gYWRkIFBhZXRoIHByZWRpY3RvciB3aXRoIFJhdyh4KQotICAgICAgICAgICAgImNtcGwgX01NWExlbmd0aCwgJSVlYnggICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgJSVtbTEsIC04KCUlZWRpLCUlZWJ4LCkgXG5cdCIgLy8gd3JpdGUgYmFjayB1cGRhdGVkIHZhbHVlCisgICAgICAgICAgICAicGFkZGIgLTgoJSVlZGksJSVlY3gsKSwgJSVtbTEgXG5cdCIgLy8gYWRkIFBhZXRoIHByZWRpY3RvciB3aXRoIFJhdyh4KQorICAgICAgICAgICAgImNtcGwgX01NWExlbmd0aCwgJSVlY3ggICAgICBcblx0IgorICAgICAgICAgICAgIm1vdnEgJSVtbTEsIC04KCUlZWRpLCUlZWN4LCkgXG5cdCIgLy8gd3JpdGUgYmFjayB1cGRhdGVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW0xIHdpbGwgYmUgdXNlZCBhcyBSYXcoeC1icHApIG5leHQgbG9vcAogICAgICAgICAgICAgImpiIHBhZXRoXzhscCAgICAgICAgICAgICAgICBcblx0IgogCi0gICAgICAgICAgICA6IC8vIEZJWEFTTTogb3V0cHV0IHJlZ3MvdmFycyBnbyBoZXJlLCBlLmcuOiAgIj1tIiAobWVtb3J5X3ZhcikKKyAgICAgICAgICAgIDogIj1TIiAoZHVtbXlfdmFsdWVfUyksICAgICAgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKIAotICAgICAgICAgICAgOiAvLyBGSVhBU006IGlucHV0IHJlZ3MsIGUuZy46ICAiYyIgKGNvdW50KSwgIlMiIChzcmMpLCAiRCIgKGRlc3QpCisgICAgICAgICAgICA6ICIwIiAocHJldl9yb3cpLCAgLy8gZXNpICAgICAgICAgICAvLyBpbnB1dCByZWdzCisgICAgICAgICAgICAgICIxIiAocm93KSAgICAgICAgLy8gZWRpCiAKLSAgICAgICAgICAgIDogIiVlYngiLCAiJWVkaSIsICIlZXNpIiwgIiVtbTAiLCAiJW1tMSIsICIlbW0yIiwgIiVtbTMiLCAiJW1tNCIsICIlbW01IiwgIiVtbTYiLCAiJW1tNyIgLy8gQ0hFQ0tBU006IGNsb2JiZXIgbGlzdAorICAgICAgICAgICAgOiAiJWVjeCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CisjaWYgMCAgLyogJW1tMCwgLi4uLCAlbW03IG5vdCBzdXBwb3J0ZWQgYnkgZ2NjIDIuNy4yLjMgb3IgZWdjcyAxLjEgKi8KKyAgICAgICAgICAgICwgIiVtbTAiLCAiJW1tMSIsICIlbW0yIiwgIiVtbTMiCisgICAgICAgICAgICAsICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IgorI2VuZGlmCiAgICAgICAgICApOwogICAgICAgfQotICAgICAgYnJlYWs7CisgICAgICBicmVhazsgIC8vIGVuZCA4IGJwcAogCiAgICAgICBjYXNlIDE6ICAgICAgICAgICAgICAgIC8vIGJwcCA9IDEKICAgICAgIGNhc2UgMjogICAgICAgICAgICAgICAgLy8gYnBwID0gMgogICAgICAgZGVmYXVsdDogICAgICAgICAgICAgICAvLyBicHAgPiA4CiAgICAgICB7Ci0gICAgICAgICBfX2FzbV9fICgKKyAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyNpZmRlZiBfX1BJQ19fCisgICAgICAgICAgICAicHVzaGwgJSVlYnggICAgICAgICAgICAgICAgIFxuXHQiIC8vIHNhdmUgR2xvYmFsIE9mZnNldCBUYWJsZSBpbmRleAorI2VuZGlmCiAgICAgICAgICAgICAibW92bCBfZGlmLCAlJWVieCAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAiY21wbCBfRnVsbExlbmd0aCwgJSVlYnggICAgIFxuXHQiCiAgICAgICAgICAgICAiam5iIHBhZXRoX2RlbmQgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92bCByb3csICUlZWRpICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92bCBwcmV2X3JvdywgJSVlc2kgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAvLyBEbyBQYWV0aCBkZWNvZGUgZm9yIHJlbWFpbmluZyBieXRlcworCisvLyBwcmVsb2FkICAibW92bCByb3csICUlZWRpICAgICAgICAgICAgIFxuXHQiCisvLyBwcmVsb2FkICAibW92bCBwcmV2X3JvdywgJSVlc2kgICAgICAgIFxuXHQiCisgICAgICAgICAgICAvLyBkbyBQYWV0aCBkZWNvZGUgZm9yIHJlbWFpbmluZyBieXRlcwogICAgICAgICAgICAgIm1vdmwgJSVlYngsICUlZWR4ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInhvcmwgJSVlY3gsICUlZWN4ICAgICAgICAgICBcblx0IiAvLyB6ZXJvIGVjeCBiZWZvcmUgdXNpbmcgY2wgJiBjeCBpbiBsb29wIGJlbG93Ci0gICAgICAgICAgICAic3VibCBicHAsICUlZWR4ICAgICAgICAgICAgIFxuXHQiIC8vIFNldCBlZHggPSBlYnggLSBicHAKKy8vIHByZWxvYWQgICJzdWJsIGJwcCwgJSVlZHggICAgICAgICAgICAgXG5cdCIgLy8gKGJwcCBpcyBwcmVsb2FkZWQgaW50byBlY3gpCisgICAgICAgICAgICAic3VibCAlJWVjeCwgJSVlZHggICAgICAgICAgIFxuXHQiIC8vIGVkeCA9IGVieCAtIGJwcAorICAgICAgICAgICAgInhvcmwgJSVlY3gsICUlZWN4ICAgICAgICAgICBcblx0IiAvLyB6ZXJvIGVjeCBiZWZvcmUgdXNpbmcgY2wgJiBjeAorCiAgICAgICAgICAicGFldGhfZGxwOiAgICAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAieG9ybCAlJWVheCwgJSVlYXggICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAvLyBwYXYgPSBwIC0gYSA9IChhICsgYiAtIGMpIC0gYSA9IGIgLSBjCiAgICAgICAgICAgICAibW92YiAoJSVlc2ksJSVlYngsKSwgJSVhbCAgIFxuXHQiIC8vIGxvYWQgUHJpb3IoeCkgaW50byBhbAogICAgICAgICAgICAgIm1vdmIgKCUlZXNpLCUlZWR4LCksICUlY2wgICBcblx0IiAvLyBsb2FkIFByaW9yKHgtYnBwKSBpbnRvIGNsCiAgICAgICAgICAgICAic3VibCAlJWVjeCwgJSVlYXggICAgICAgICAgIFxuXHQiIC8vIHN1YnRyYWN0IFByaW9yKHgtYnBwKQotICAgICAgICAgICAgIm1vdmwgJSVlYXgsIHBhdGVtcCAgICAgICAgICBcblx0IiAvLyBTYXZlIHBhdiBmb3IgbGF0ZXIgdXNlCisgICAgICAgICAgICAibW92bCAlJWVheCwgX3BhdGVtcCAgICAgICAgIFxuXHQiIC8vIFNhdmUgcGF2IGZvciBsYXRlciB1c2UKICAgICAgICAgICAgICJ4b3JsICUlZWF4LCAlJWVheCAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgIC8vIHBidiA9IHAgLSBiID0gKGEgKyBiIC0gYykgLSBiID0gYSAtIGMKICAgICAgICAgICAgICJtb3ZiICglJWVkaSwlJWVkeCwpLCAlJWFsICAgXG5cdCIgLy8gbG9hZCBSYXcoeC1icHApIGludG8gYWwKICAgICAgICAgICAgICJzdWJsICUlZWN4LCAlJWVheCAgICAgICAgICAgXG5cdCIgLy8gc3VidHJhY3QgUHJpb3IoeC1icHApCiAgICAgICAgICAgICAibW92bCAlJWVheCwgJSVlY3ggICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAvLyBwY3YgPSBwIC0gYyA9IChhICsgYiAtIGMpIC1jID0gKGEgLSBjKSArIChiIC0gYykgPSBwYXYgKyBwYnYKLSAgICAgICAgICAgICJhZGRsIHBhdGVtcCwgJSVlYXggICAgICAgICAgXG5cdCIgLy8gcGN2ID0gcGF2ICsgcGJ2CisgICAgICAgICAgICAiYWRkbCBfcGF0ZW1wLCAlJWVheCAgICAgICAgIFxuXHQiIC8vIHBjdiA9IHBhdiArIHBidgogICAgICAgICAgICAgLy8gcGMgPSBhYnMocGN2KQogICAgICAgICAgICAgInRlc3RsICQweDgwMDAwMDAwLCAlJWVheCAgICBcblx0IgogICAgICAgICAgICAgImp6IHBhZXRoX2RwY2EgICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgIm5lZ2wgJSVlYXggICAgICAgICAgICAgICAgICBcblx0IiAvLyByZXZlcnNlIHNpZ24gb2YgbmVnIHZhbHVlcworCiAgICAgICAgICAicGFldGhfZHBjYTogICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92bCAlJWVheCwgcGN0ZW1wICAgICAgICAgIFxuXHQiIC8vIHNhdmUgcGMgZm9yIGxhdGVyIHVzZQorICAgICAgICAgICAgIm1vdmwgJSVlYXgsIF9wY3RlbXAgICAgICAgICBcblx0IiAvLyBzYXZlIHBjIGZvciBsYXRlciB1c2UKICAgICAgICAgICAgIC8vIHBiID0gYWJzKHBidikKICAgICAgICAgICAgICJ0ZXN0bCAkMHg4MDAwMDAwMCwgJSVlY3ggICAgXG5cdCIKICAgICAgICAgICAgICJqeiBwYWV0aF9kcGJhICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJuZWdsICUlZWN4ICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gcmV2ZXJzZSBzaWduIG9mIG5lZyB2YWx1ZXMKKwogICAgICAgICAgInBhZXRoX2RwYmE6ICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgJSVlY3gsIHBidGVtcCAgICAgICAgICBcblx0IiAvLyBzYXZlIHBiIGZvciBsYXRlciB1c2UKKyAgICAgICAgICAgICJtb3ZsICUlZWN4LCBfcGJ0ZW1wICAgICAgICAgXG5cdCIgLy8gc2F2ZSBwYiBmb3IgbGF0ZXIgdXNlCiAgICAgICAgICAgICAvLyBwYSA9IGFicyhwYXYpCi0gICAgICAgICAgICAibW92bCBwYXRlbXAsICUlZWF4ICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92bCBfcGF0ZW1wLCAlJWVheCAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAidGVzdGwgJDB4ODAwMDAwMDAsICUlZWF4ICAgIFxuXHQiCiAgICAgICAgICAgICAianogcGFldGhfZHBhYSAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAibmVnbCAlJWVheCAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIHJldmVyc2Ugc2lnbiBvZiBuZWcgdmFsdWVzCisKICAgICAgICAgICJwYWV0aF9kcGFhOiAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZsICUlZWF4LCBwYXRlbXAgICAgICAgICAgXG5cdCIgLy8gc2F2ZSBwYSBmb3IgbGF0ZXIgdXNlCisgICAgICAgICAgICAibW92bCAlJWVheCwgX3BhdGVtcCAgICAgICAgIFxuXHQiIC8vIHNhdmUgcGEgZm9yIGxhdGVyIHVzZQogICAgICAgICAgICAgLy8gdGVzdCBpZiBwYSA8PSBwYgogICAgICAgICAgICAgImNtcGwgJSVlY3gsICUlZWF4ICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgImpuYSBwYWV0aF9kYWJiICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgLy8gcGEgPiBwYjsgbm93IHRlc3QgaWYgcGIgPD0gcGMKLSAgICAgICAgICAgICJjbXBsIHBjdGVtcCwgJSVlY3ggICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJjbXBsIF9wY3RlbXAsICUlZWN4ICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJqbmEgcGFldGhfZGJiYyAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgIC8vIHBiID4gcGM7IFJhdyh4KSA9IFBhZXRoKHgpICsgUHJpb3IoeC1icHApCiAgICAgICAgICAgICAibW92YiAoJSVlc2ksJSVlZHgsKSwgJSVjbCAgIFxuXHQiIC8vIGxvYWQgUHJpb3IoeC1icHApIGludG8gY2wKICAgICAgICAgICAgICJqbXAgcGFldGhfZHBhZXRoICAgICAgICAgICAgXG5cdCIKKwogICAgICAgICAgInBhZXRoX2RiYmM6ICAgICAgICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgLy8gcGIgPD0gcGM7IFJhdyh4KSA9IFBhZXRoKHgpICsgUHJpb3IoeCkKICAgICAgICAgICAgICJtb3ZiICglJWVzaSwlJWVieCwpLCAlJWNsICAgXG5cdCIgLy8gbG9hZCBQcmlvcih4KSBpbnRvIGNsCiAgICAgICAgICAgICAiam1wIHBhZXRoX2RwYWV0aCAgICAgICAgICAgIFxuXHQiCisKICAgICAgICAgICJwYWV0aF9kYWJiOiAgICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgIC8vIHBhIDw9IHBiOyBub3cgdGVzdCBpZiBwYSA8PSBwYwotICAgICAgICAgICAgImNtcGwgcGN0ZW1wLCAlJWVheCAgICAgICAgICBcblx0IgorICAgICAgICAgICAgImNtcGwgX3BjdGVtcCwgJSVlYXggICAgICAgICBcblx0IgogICAgICAgICAgICAgImpuYSBwYWV0aF9kYWJjICAgICAgICAgICAgICBcblx0IgogICAgICAgICAgICAgLy8gcGEgPiBwYzsgUmF3KHgpID0gUGFldGgoeCkgKyBQcmlvcih4LWJwcCkKICAgICAgICAgICAgICJtb3ZiICglJWVzaSwlJWVkeCwpLCAlJWNsICAgXG5cdCIgLy8gbG9hZCBQcmlvcih4LWJwcCkgaW50byBjbAogICAgICAgICAgICAgImptcCBwYWV0aF9kcGFldGggICAgICAgICAgICBcblx0IgorCiAgICAgICAgICAicGFldGhfZGFiYzogICAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAgICAgICAvLyBwYSA8PSBwYzsgUmF3KHgpID0gUGFldGgoeCkgKyBSYXcoeC1icHApCiAgICAgICAgICAgICAibW92YiAoJSVlZGksJSVlZHgsKSwgJSVjbCAgIFxuXHQiIC8vIGxvYWQgUmF3KHgtYnBwKSBpbnRvIGNsCisKICAgICAgICAgICJwYWV0aF9kcGFldGg6ICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJpbmNsICUlZWJ4ICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJpbmNsICUlZWR4ICAgICAgICAgICAgICAgICAgXG5cdCIKQEAgLTM4MjcsODUgKzQwMzIsMTEwIEBACiAgICAgICAgICAgICAiYWRkYiAlJWNsLCAtMSglJWVkaSwlJWVieCwpIFxuXHQiCiAgICAgICAgICAgICAiY21wbCBfRnVsbExlbmd0aCwgJSVlYnggICAgIFxuXHQiCiAgICAgICAgICAgICAiamIgcGFldGhfZGxwICAgICAgICAgICAgICAgIFxuXHQiCisKICAgICAgICAgICJwYWV0aF9kZW5kOiAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyNpZmRlZiBfX1BJQ19fCisgICAgICAgICAgICAicG9wbCAlJWVieCAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIGluZGV4IHRvIEdsb2JhbCBPZmZzZXQgVGFibGUKKyNlbmRpZgogCi0gICAgICAgICAgICA6IC8vIEZJWEFTTTogb3V0cHV0IHJlZ3MvdmFycyBnbyBoZXJlLCBlLmcuOiAgIj1tIiAobWVtb3J5X3ZhcikKKyAgICAgICAgICAgIDogIj1jIiAoZHVtbXlfdmFsdWVfYyksICAgICAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQorICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKKyAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKIAotICAgICAgICAgICAgOiAvLyBGSVhBU006IGlucHV0IHJlZ3MsIGUuZy46ICAiYyIgKGNvdW50KSwgIlMiIChzcmMpLCAiRCIgKGRlc3QpCisgICAgICAgICAgICA6ICIwIiAoYnBwKSwgICAgICAgLy8gZWN4ICAgICAgICAgIC8vIGlucHV0IHJlZ3MKKyAgICAgICAgICAgICAgIjEiIChwcmV2X3JvdyksICAvLyBlc2kKKyAgICAgICAgICAgICAgIjIiIChyb3cpICAgICAgICAvLyBlZGkKIAotICAgICAgICAgICAgOiAiJWVheCIsICIlZWJ4IiwgIiVlY3giLCAiJWVkeCIsICIlZWRpIiwgIiVlc2kiIC8vIENIRUNLQVNNOiBjbG9iYmVyIGxpc3QKKyAgICAgICAgICAgIDogIiVlYXgiLCAiJWVkeCIgICAgICAgICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CisjaWZuZGVmIF9fUElDX18KKyAgICAgICAgICAgICwgIiVlYngiCisjZW5kaWYKICAgICAgICAgICk7CiAgICAgICB9CiAgICAgICByZXR1cm47ICAgICAgICAgICAgICAgICAgIC8vIE5vIG5lZWQgdG8gZ28gZnVydGhlciB3aXRoIHRoaXMgb25lCi0gICB9ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuZCBzd2l0Y2ggKCBicHAgKQotICAgX19hc21fXyAoCi0gICAgICAvLyBNTVggYWNjZWxlcmF0aW9uIGNvbXBsZXRlIG5vdyBkbyBjbGVhbi11cAotICAgICAgLy8gQ2hlY2sgaWYgYW55IHJlbWFpbmluZyBieXRlcyBsZWZ0IHRvIGRlY29kZQorCisgICB9IC8vIGVuZCBzd2l0Y2ggKGJwcCkKKworICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgLy8gTU1YIGFjY2VsZXJhdGlvbiBjb21wbGV0ZTsgbm93IGRvIGNsZWFuLXVwCisgICAgICAvLyBjaGVjayBpZiBhbnkgcmVtYWluaW5nIGJ5dGVzIGxlZnQgdG8gZGVjb2RlCisjaWZkZWYgX19QSUNfXworICAgICAgInB1c2hsICUlZWJ4ICAgICAgICAgICAgICAgICBcblx0IiAvLyBzYXZlIGluZGV4IHRvIEdsb2JhbCBPZmZzZXQgVGFibGUKKyNlbmRpZgogICAgICAgIm1vdmwgX01NWExlbmd0aCwgJSVlYnggICAgICBcblx0IgogICAgICAgImNtcGwgX0Z1bGxMZW5ndGgsICUlZWJ4ICAgICBcblx0IgogICAgICAgImpuYiBwYWV0aF9lbmQgICAgICAgICAgICAgICBcblx0IgotICAgICAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IgotICAgICAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IgotICAgICAgLy8gRG8gUGFldGggZGVjb2RlIGZvciByZW1haW5pbmcgYnl0ZXMKKy8vcHJlICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIKKy8vcHJlICJtb3ZsIHByZXZfcm93LCAlJWVzaSAgICAgICAgXG5cdCIKKyAgICAgIC8vIGRvIFBhZXRoIGRlY29kZSBmb3IgcmVtYWluaW5nIGJ5dGVzCiAgICAgICAibW92bCAlJWVieCwgJSVlZHggICAgICAgICAgIFxuXHQiCi0gICAgICAieG9ybCAlJWVjeCwgJSVlY3ggICAgICAgICAgIFxuXHQiIC8vIHplcm8gZWN4IGJlZm9yZSB1c2luZyBjbCAmIGN4IGluIGxvb3AgYmVsb3cKLSAgICAgICJzdWJsIGJwcCwgJSVlZHggICAgICAgICAgICAgXG5cdCIgLy8gU2V0IGVkeCA9IGVieCAtIGJwcAorLy9wcmUgInN1YmwgYnBwLCAlJWVkeCAgICAgICAgICAgICBcblx0IiAvLyAoYnBwIGlzIHByZWxvYWRlZCBpbnRvIGVjeCkKKyAgICAgICJzdWJsICUlZWN4LCAlJWVkeCAgICAgICAgICAgXG5cdCIgLy8gZWR4ID0gZWJ4IC0gYnBwCisgICAgICAieG9ybCAlJWVjeCwgJSVlY3ggICAgICAgICAgIFxuXHQiIC8vIHplcm8gZWN4IGJlZm9yZSB1c2luZyBjbCAmIGN4IGJlbG93CisKICAgICJwYWV0aF9scDI6ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICJ4b3JsICUlZWF4LCAlJWVheCAgICAgICAgICAgXG5cdCIKICAgICAgIC8vIHBhdiA9IHAgLSBhID0gKGEgKyBiIC0gYykgLSBhID0gYiAtIGMKICAgICAgICJtb3ZiICglJWVzaSwlJWVieCwpLCAlJWFsICAgXG5cdCIgLy8gbG9hZCBQcmlvcih4KSBpbnRvIGFsCiAgICAgICAibW92YiAoJSVlc2ksJSVlZHgsKSwgJSVjbCAgIFxuXHQiIC8vIGxvYWQgUHJpb3IoeC1icHApIGludG8gY2wKICAgICAgICJzdWJsICUlZWN4LCAlJWVheCAgICAgICAgICAgXG5cdCIgLy8gc3VidHJhY3QgUHJpb3IoeC1icHApCi0gICAgICAibW92bCAlJWVheCwgcGF0ZW1wICAgICAgICAgIFxuXHQiIC8vIFNhdmUgcGF2IGZvciBsYXRlciB1c2UKKyAgICAgICJtb3ZsICUlZWF4LCBfcGF0ZW1wICAgICAgICAgXG5cdCIgLy8gU2F2ZSBwYXYgZm9yIGxhdGVyIHVzZQogICAgICAgInhvcmwgJSVlYXgsICUlZWF4ICAgICAgICAgICBcblx0IgogICAgICAgLy8gcGJ2ID0gcCAtIGIgPSAoYSArIGIgLSBjKSAtIGIgPSBhIC0gYwogICAgICAgIm1vdmIgKCUlZWRpLCUlZWR4LCksICUlYWwgICBcblx0IiAvLyBsb2FkIFJhdyh4LWJwcCkgaW50byBhbAogICAgICAgInN1YmwgJSVlY3gsICUlZWF4ICAgICAgICAgICBcblx0IiAvLyBzdWJ0cmFjdCBQcmlvcih4LWJwcCkKICAgICAgICJtb3ZsICUlZWF4LCAlJWVjeCAgICAgICAgICAgXG5cdCIKICAgICAgIC8vIHBjdiA9IHAgLSBjID0gKGEgKyBiIC0gYykgLWMgPSAoYSAtIGMpICsgKGIgLSBjKSA9IHBhdiArIHBidgotICAgICAgImFkZGwgcGF0ZW1wLCAlJWVheCAgICAgICAgICBcblx0IiAvLyBwY3YgPSBwYXYgKyBwYnYKKyAgICAgICJhZGRsIF9wYXRlbXAsICUlZWF4ICAgICAgICAgXG5cdCIgLy8gcGN2ID0gcGF2ICsgcGJ2CiAgICAgICAvLyBwYyA9IGFicyhwY3YpCiAgICAgICAidGVzdGwgJDB4ODAwMDAwMDAsICUlZWF4ICAgIFxuXHQiCiAgICAgICAianogcGFldGhfcGNhMiAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAibmVnbCAlJWVheCAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIHJldmVyc2Ugc2lnbiBvZiBuZWcgdmFsdWVzCisKICAgICJwYWV0aF9wY2EyOiAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICJtb3ZsICUlZWF4LCBwY3RlbXAgICAgICAgICAgXG5cdCIgLy8gc2F2ZSBwYyBmb3IgbGF0ZXIgdXNlCisgICAgICAibW92bCAlJWVheCwgX3BjdGVtcCAgICAgICAgIFxuXHQiIC8vIHNhdmUgcGMgZm9yIGxhdGVyIHVzZQogICAgICAgLy8gcGIgPSBhYnMocGJ2KQogICAgICAgInRlc3RsICQweDgwMDAwMDAwLCAlJWVjeCAgICBcblx0IgogICAgICAgImp6IHBhZXRoX3BiYTIgICAgICAgICAgICAgICBcblx0IgogICAgICAgIm5lZ2wgJSVlY3ggICAgICAgICAgICAgICAgICBcblx0IiAvLyByZXZlcnNlIHNpZ24gb2YgbmVnIHZhbHVlcworCiAgICAicGFldGhfcGJhMjogICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAibW92bCAlJWVjeCwgcGJ0ZW1wICAgICAgICAgIFxuXHQiIC8vIHNhdmUgcGIgZm9yIGxhdGVyIHVzZQorICAgICAgIm1vdmwgJSVlY3gsIF9wYnRlbXAgICAgICAgICBcblx0IiAvLyBzYXZlIHBiIGZvciBsYXRlciB1c2UKICAgICAgIC8vIHBhID0gYWJzKHBhdikKLSAgICAgICJtb3ZsIHBhdGVtcCwgJSVlYXggICAgICAgICAgXG5cdCIKKyAgICAgICJtb3ZsIF9wYXRlbXAsICUlZWF4ICAgICAgICAgXG5cdCIKICAgICAgICJ0ZXN0bCAkMHg4MDAwMDAwMCwgJSVlYXggICAgXG5cdCIKICAgICAgICJqeiBwYWV0aF9wYWEyICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICJuZWdsICUlZWF4ICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gcmV2ZXJzZSBzaWduIG9mIG5lZyB2YWx1ZXMKKwogICAgInBhZXRoX3BhYTI6ICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgIm1vdmwgJSVlYXgsIHBhdGVtcCAgICAgICAgICBcblx0IiAvLyBzYXZlIHBhIGZvciBsYXRlciB1c2UKKyAgICAgICJtb3ZsICUlZWF4LCBfcGF0ZW1wICAgICAgICAgXG5cdCIgLy8gc2F2ZSBwYSBmb3IgbGF0ZXIgdXNlCiAgICAgICAvLyB0ZXN0IGlmIHBhIDw9IHBiCiAgICAgICAiY21wbCAlJWVjeCwgJSVlYXggICAgICAgICAgIFxuXHQiCiAgICAgICAiam5hIHBhZXRoX2FiYjIgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAvLyBwYSA+IHBiOyBub3cgdGVzdCBpZiBwYiA8PSBwYwotICAgICAgImNtcGwgcGN0ZW1wLCAlJWVjeCAgICAgICAgICBcblx0IgorICAgICAgImNtcGwgX3BjdGVtcCwgJSVlY3ggICAgICAgICBcblx0IgogICAgICAgImpuYSBwYWV0aF9iYmMyICAgICAgICAgICAgICBcblx0IgogICAgICAgLy8gcGIgPiBwYzsgUmF3KHgpID0gUGFldGgoeCkgKyBQcmlvcih4LWJwcCkKICAgICAgICJtb3ZiICglJWVzaSwlJWVkeCwpLCAlJWNsICAgXG5cdCIgLy8gbG9hZCBQcmlvcih4LWJwcCkgaW50byBjbAogICAgICAgImptcCBwYWV0aF9wYWV0aDIgICAgICAgICAgICBcblx0IgorCiAgICAicGFldGhfYmJjMjogICAgICAgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAvLyBwYiA8PSBwYzsgUmF3KHgpID0gUGFldGgoeCkgKyBQcmlvcih4KQogICAgICAgIm1vdmIgKCUlZXNpLCUlZWJ4LCksICUlY2wgICBcblx0IiAvLyBsb2FkIFByaW9yKHgpIGludG8gY2wKICAgICAgICJqbXAgcGFldGhfcGFldGgyICAgICAgICAgICAgXG5cdCIKKwogICAgInBhZXRoX2FiYjI6ICAgICAgICAgICAgICAgICAgICBcblx0IgogICAgICAgLy8gcGEgPD0gcGI7IG5vdyB0ZXN0IGlmIHBhIDw9IHBjCi0gICAgICAiY21wbCBwY3RlbXAsICUlZWF4ICAgICAgICAgIFxuXHQiCisgICAgICAiY21wbCBfcGN0ZW1wLCAlJWVheCAgICAgICAgIFxuXHQiCiAgICAgICAiam5hIHBhZXRoX2FiYzIgICAgICAgICAgICAgIFxuXHQiCiAgICAgICAvLyBwYSA+IHBjOyBSYXcoeCkgPSBQYWV0aCh4KSArIFByaW9yKHgtYnBwKQogICAgICAgIm1vdmIgKCUlZXNpLCUlZWR4LCksICUlY2wgICBcblx0IiAvLyBsb2FkIFByaW9yKHgtYnBwKSBpbnRvIGNsCiAgICAgICAiam1wIHBhZXRoX3BhZXRoMiAgICAgICAgICAgIFxuXHQiCisKICAgICJwYWV0aF9hYmMyOiAgICAgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgIC8vIHBhIDw9IHBjOyBSYXcoeCkgPSBQYWV0aCh4KSArIFJhdyh4LWJwcCkKICAgICAgICJtb3ZiICglJWVkaSwlJWVkeCwpLCAlJWNsICAgXG5cdCIgLy8gbG9hZCBSYXcoeC1icHApIGludG8gY2wKKwogICAgInBhZXRoX3BhZXRoMjogICAgICAgICAgICAgICAgICBcblx0IgogICAgICAgImluY2wgJSVlYnggICAgICAgICAgICAgICAgICBcblx0IgogICAgICAgImluY2wgJSVlZHggICAgICAgICAgICAgICAgICBcblx0IgpAQCAtMzkxMyw0OTEgKzQxNDMsNjAyIEBACiAgICAgICAiYWRkYiAlJWNsLCAtMSglJWVkaSwlJWVieCwpIFxuXHQiCiAgICAgICAiY21wbCBfRnVsbExlbmd0aCwgJSVlYnggICAgIFxuXHQiCiAgICAgICAiamIgcGFldGhfbHAyICAgICAgICAgICAgICAgIFxuXHQiCisKICAgICJwYWV0aF9lbmQ6ICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICJlbW1zICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gRW5kIE1NWCBpbnN0cnVjdGlvbnM7IHByZXAgZm9yIHBvc3NpYmxlIEZQIGluc3Rycy4KKyAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gZW5kIE1NWDsgcHJlcCBmb3IgcG9zcy4gRlAgaW5zdHJzLgorI2lmZGVmIF9fUElDX18KKyAgICAgICJwb3BsICUlZWJ4ICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gcmVzdG9yZSBpbmRleCB0byBHbG9iYWwgT2Zmc2V0IFRhYmxlCisjZW5kaWYKIAotICAgICAgOiAvLyBGSVhBU006IG91dHB1dCByZWdzL3ZhcnMgZ28gaGVyZSwgZS5nLjogICI9bSIgKG1lbW9yeV92YXIpCisgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgIj1TIiAoZHVtbXlfdmFsdWVfUyksCisgICAgICAgICI9RCIgKGR1bW15X3ZhbHVlX0QpCiAKLSAgICAgIDogLy8gRklYQVNNOiBpbnB1dCByZWdzLCBlLmcuOiAgImMiIChjb3VudCksICJTIiAoc3JjKSwgIkQiIChkZXN0KQorICAgICAgOiAiMCIgKGJwcCksICAgICAgIC8vIGVjeCAgICAgICAgICAvLyBpbnB1dCByZWdzCisgICAgICAgICIxIiAocHJldl9yb3cpLCAgLy8gZXNpCisgICAgICAgICIyIiAocm93KSAgICAgICAgLy8gZWRpCiAKLSAgICAgIDogIiVlYXgiLCAiJWVieCIsICIlZWN4IiwgIiVlZHgiLCAiJWVkaSIsICIlZXNpIiAvLyBDSEVDS0FTTTogY2xvYmJlciBsaXN0CisgICAgICA6ICIlZWF4IiwgIiVlZHgiICAgICAgICAgICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdCAobm8gaW5wdXQgcmVncyEpCisjaWZuZGVmIF9fUElDX18KKyAgICAgICwgIiVlYngiCisjZW5kaWYKICAgICk7Ci0jZW5kaWYgLyogR1JSX0dDQ19NTVhfQ09OVkVSVEVEICovCi19CisKK30gLyogZW5kIHBuZ19yZWFkX2ZpbHRlcl9yb3dfbW14X3BhZXRoKCkgKi8KKworCisKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy8gICAgICAgICAgIFAgTiBHIF8gUiBFIEEgRCBfIEYgSSBMIFQgRSBSIF8gUiBPIFcgXyBNIE0gWCBfIFMgVSBCICAgICAgICAgICAvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vLwogCiAvLyBPcHRpbWl6ZWQgY29kZSBmb3IgUE5HIFN1YiBmaWx0ZXIgZGVjb2Rlcgotdm9pZCAvKiBQUklWQVRFICovCisKK3N0YXRpYyB2b2lkIC8qIFBSSVZBVEUgKi8KIHBuZ19yZWFkX2ZpbHRlcl9yb3dfbW14X3N1Yihwbmdfcm93X2luZm9wIHJvd19pbmZvLCBwbmdfYnl0ZXAgcm93KQogewotI2lmZGVmIEdSUl9HQ0NfTU1YX0NPTlZFUlRFRAogICAgaW50IGJwcDsKKyAgIGludCBkdW1teV92YWx1ZV9hOworICAgaW50IGR1bW15X3ZhbHVlX0Q7CiAKLSAgIGJwcCA9IChyb3dfaW5mby0+cGl4ZWxfZGVwdGggKyA3KSA+PiAzOyAvLyBHZXQgIyBieXRlcyBwZXIgcGl4ZWwKLSAgIF9GdWxsTGVuZ3RoICA9IHJvd19pbmZvLT5yb3dieXRlcyAtIGJwcDsgLy8gIyBvZiBieXRlcyB0byBmaWx0ZXIKLSAgIF9fYXNtX18gKAotICAgICAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IgorICAgYnBwID0gKHJvd19pbmZvLT5waXhlbF9kZXB0aCArIDcpID4+IDM7ICAgLy8gY2FsYyBudW1iZXIgb2YgYnl0ZXMgcGVyIHBpeGVsCisgICBfRnVsbExlbmd0aCA9IHJvd19pbmZvLT5yb3dieXRlcyAtIGJwcDsgICAvLyBudW1iZXIgb2YgYnl0ZXMgdG8gZmlsdGVyCisKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKy8vcHJlICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIKICAgICAgICJtb3ZsICUlZWRpLCAlJWVzaSAgICAgICAgICAgXG5cdCIgLy8gbHAgPSByb3cKLSAgICAgICJhZGRsIGJwcCwgJSVlZGkgICAgICAgICAgICAgXG5cdCIgLy8gcnAgPSByb3cgKyBicHAKLSAgICAgICJ4b3JsICUlZWF4LCAlJWVheCAgICAgICAgICAgXG5cdCIKKy8vcHJlICJtb3ZsIGJwcCwgJSVlYXggICAgICAgICAgICAgXG5cdCIKKyAgICAgICJhZGRsICUlZWF4LCAlJWVkaSAgICAgICAgICAgXG5cdCIgLy8gcnAgPSByb3cgKyBicHAKKy8vaXJyICJ4b3JsICUlZWF4LCAlJWVheCAgICAgICAgICAgXG5cdCIKICAgICAgIC8vIGdldCAjIG9mIGJ5dGVzIHRvIGFsaWdubWVudAogICAgICAgIm1vdmwgJSVlZGksIF9kaWYgICAgICAgICAgICBcblx0IiAvLyB0YWtlIHN0YXJ0IG9mIHJvdwogICAgICAgImFkZGwgJDB4ZiwgX2RpZiAgICAgICAgICAgICBcblx0IiAvLyBhZGQgNyArIDggdG8gaW5jciBwYXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsaWdubWVudCBib3VuZGFyeQotICAgICAgInhvcmwgJSVlYngsICUlZWJ4ICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgYWxpZ25tZW50IGJvdW5kYXJ5CisgICAgICAieG9ybCAlJWVjeCwgJSVlY3ggICAgICAgICAgIFxuXHQiCiAgICAgICAiYW5kbCAkMHhmZmZmZmZmOCwgX2RpZiAgICAgIFxuXHQiIC8vIG1hc2sgdG8gYWxpZ25tZW50IGJvdW5kYXJ5CiAgICAgICAic3VibCAlJWVkaSwgX2RpZiAgICAgICAgICAgIFxuXHQiIC8vIHN1YnRyYWN0IGZyb20gc3RhcnQgPT0+IHZhbHVlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBlYnggYXQgYWxpZ25tZW50Ci0gICAgICAianogc3ViX2dvICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAvLyBmaXggYWxpZ25tZW50Ci0gICAic3ViX2xwMTogICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAibW92YiAoJSVlc2ksJSVlYngsKSwgJSVhbCAgIFxuXHQiCi0gICAgICAiYWRkYiAlJWFsLCAoJSVlZGksJSVlYngsKSAgIFxuXHQiCi0gICAgICAiaW5jbCAlJWVieCAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAiY21wbCBfZGlmLCAlJWVieCAgICAgICAgICAgIFxuXHQiCisgICAgICAianogc3ViX2dvICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vICBlY3ggYXQgYWxpZ25tZW50CisKKyAgICJzdWJfbHAxOiAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gZml4IGFsaWdubWVudAorICAgICAgIm1vdmIgKCUlZXNpLCUlZWN4LCksICUlYWwgICBcblx0IgorICAgICAgImFkZGIgJSVhbCwgKCUlZWRpLCUlZWN4LCkgICBcblx0IgorICAgICAgImluY2wgJSVlY3ggICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgImNtcGwgX2RpZiwgJSVlY3ggICAgICAgICAgICBcblx0IgogICAgICAgImpiIHN1Yl9scDEgICAgICAgICAgICAgICAgICBcblx0IgorCiAgICAic3ViX2dvOiAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAibW92bCBfRnVsbExlbmd0aCwgJSVlY3ggICAgIFxuXHQiCi0gICAgICAibW92bCAlJWVjeCwgJSVlZHggICAgICAgICAgIFxuXHQiCi0gICAgICAic3VibCAlJWVieCwgJSVlZHggICAgICAgICAgIFxuXHQiIC8vIHN1YnRyYWN0IGFsaWdubWVudCBmaXgKKyAgICAgICJtb3ZsIF9GdWxsTGVuZ3RoLCAlJWVheCAgICAgXG5cdCIKKyAgICAgICJtb3ZsICUlZWF4LCAlJWVkeCAgICAgICAgICAgXG5cdCIKKyAgICAgICJzdWJsICUlZWN4LCAlJWVkeCAgICAgICAgICAgXG5cdCIgLy8gc3VidHJhY3QgYWxpZ25tZW50IGZpeAogICAgICAgImFuZGwgJDB4MDAwMDAwMDcsICUlZWR4ICAgICBcblx0IiAvLyBjYWxjIGJ5dGVzIG92ZXIgbXVsdCBvZiA4Ci0gICAgICAic3VibCAlJWVkeCwgJSVlY3ggICAgICAgICAgIFxuXHQiIC8vIGRyb3Agb3ZlciBieXRlcyBmcm9tIGxlbmd0aAotICAgICAgIm1vdmwgJSVlY3gsIF9NTVhMZW5ndGggICAgICBcblx0IgorICAgICAgInN1YmwgJSVlZHgsICUlZWF4ICAgICAgICAgICBcblx0IiAvLyBkcm9wIG92ZXIgYnl0ZXMgZnJvbSBsZW5ndGgKKyAgICAgICJtb3ZsICUlZWF4LCBfTU1YTGVuZ3RoICAgICAgXG5cdCIKIAotICAgICAgOiAvLyBGSVhBU006IG91dHB1dCByZWdzL3ZhcnMgZ28gaGVyZSwgZS5nLjogICI9bSIgKG1lbW9yeV92YXIpCisgICAgICA6ICI9YSIgKGR1bW15X3ZhbHVlX2EpLCAgIC8vIDAgICAgICAvLyBvdXRwdXQgcmVncyAoZHVtbXkpCisgICAgICAgICI9RCIgKGR1bW15X3ZhbHVlX0QpICAgIC8vIDEKIAotICAgICAgOiAvLyBGSVhBU006IGlucHV0IHJlZ3MsIGUuZy46ICAiYyIgKGNvdW50KSwgIlMiIChzcmMpLCAiRCIgKGRlc3QpCisgICAgICA6ICIwIiAoYnBwKSwgICAgICAgICAgICAgIC8vIGVheCAgICAvLyBpbnB1dCByZWdzCisgICAgICAgICIxIiAocm93KSAgICAgICAgICAgICAgIC8vIGVkaQogCi0gICAgICA6ICIlZWF4IiwgIiVlYngiLCAiJWVjeCIsICIlZWR4IiwgIiVlZGkiLCAiJWVzaSIgLy8gQ0hFQ0tBU006IGNsb2JiZXIgbGlzdAorICAgICAgOiAiJWVieCIsICIlZWN4IiwgIiVlZHgiICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CisgICAgICAsICIlZXNpIgorCisjaWYgMCAgLyogTU1YIHJlZ3MgKCVtbTAsIGV0Yy4pIG5vdCBzdXBwb3J0ZWQgYnkgZ2NjIDIuNy4yLjMgb3IgZWdjcyAxLjEgKi8KKyAgICAgICwgIiVtbTAiLCAiJW1tMSIsICIlbW0yIiwgIiVtbTMiCisgICAgICAsICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IgorI2VuZGlmCiAgICApOwogCi0gICAvLyBOb3cgZG8gdGhlIG1hdGggZm9yIHRoZSByZXN0IG9mIHRoZSByb3cKLSAgIHN3aXRjaCAoIGJwcCApCisgICAvLyBub3cgZG8gdGhlIG1hdGggZm9yIHRoZSByZXN0IG9mIHRoZSByb3cKKyAgIHN3aXRjaCAoYnBwKQogICAgewotICAgICAgICBjYXNlIDM6Ci0gICAgICAgIHsKLSAgICAgICAgIEFjdGl2ZU1hc2sudXNlICA9IDB4MDAwMGZmZmZmZjAwMDAwMDsKLSAgICAgICAgIFNoaWZ0QnBwLnVzZSA9IDI0OyAgICAgICAvLyA9PSAzICogOAotICAgICAgICAgU2hpZnRSZW0udXNlICA9IDQwOyAgICAgIC8vID09IDY0IC0gMjQKLSAgICAgICAgIF9fYXNtX18gKAotICAgICAgICAgICAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgJEFjdGl2ZU1hc2ssICUlbW03ICAgICBcblx0IiAvLyBMb2FkIEFjdGl2ZU1hc2sgZm9yIDJuZCBhY3RpdmUgYnl0ZSBncm91cAotICAgICAgICAgICAgIm1vdmwgJSVlZGksICUlZXNpICAgICAgICAgICBcblx0IiAvLyBscCA9IHJvdwotICAgICAgICAgICAgImFkZGwgYnBwLCAlJWVkaSAgICAgICAgICAgICBcblx0IiAvLyBycCA9IHJvdyArIGJwcAotICAgICAgICAgICAgIm1vdnEgJSVtbTcsICUlbW02ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlYnggICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTYgICAgICBcblx0IiAvLyBNb3ZlIG1hc2sgaW4gbW02IHRvIGNvdmVyIDNyZCBhY3RpdmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBieXRlIGdyb3VwCi0gICAgICAgICAgICAvLyBQUklNRSB0aGUgcHVtcCAobG9hZCB0aGUgZmlyc3QgUmF3KHgtYnBwKSBkYXRhIHNldAotICAgICAgICAgICAgIm1vdnEgLTgoJSVlZGksJSVlYngsKSwgJSVtbTEgXG5cdCIKLSAgICAgICAgICJzdWJfM2xwOiAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwc3JscSAkU2hpZnRSZW0sICUlbW0xICAgICAgXG5cdCIgLy8gU2hpZnQgZGF0YSBmb3IgYWRkaW5nIDFzdCBicHAgYnl0ZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm8gbmVlZCBmb3IgbWFzazsgc2hpZnQgY2xlYXJzIGluYWN0aXZlIGJ5dGVzCi0gICAgICAgICAgICAvLyBBZGQgMXN0IGFjdGl2ZSBncm91cAotICAgICAgICAgICAgIm1vdnEgKCUlZWRpLCUlZWJ4LCksICUlbW0wICBcblx0IgotICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMCAgICAgICAgICBcblx0IgotICAgICAgICAgICAgLy8gQWRkIDJuZCBhY3RpdmUgZ3JvdXAKLSAgICAgICAgICAgICJtb3ZxICUlbW0wLCAlJW1tMSAgICAgICAgICAgXG5cdCIgLy8gbW92IHVwZGF0ZWQgUmF3cyB0byBtbTEKLSAgICAgICAgICAgICJwc2xscSAkU2hpZnRCcHAsICUlbW0xICAgICAgXG5cdCIgLy8gc2hpZnQgZGF0YSB0byBwb3NpdGlvbiBjb3JyZWN0bHkKLSAgICAgICAgICAgICJwYW5kICUlbW03LCAlJW1tMSAgICAgICAgICAgXG5cdCIgLy8gbWFzayB0byB1c2Ugb25seSAybmQgYWN0aXZlIGdyb3VwCi0gICAgICAgICAgICAicGFkZGIgJSVtbTEsICUlbW0wICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAvLyBBZGQgM3JkIGFjdGl2ZSBncm91cAotICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBtb3YgdXBkYXRlZCBSYXdzIHRvIG1tMQotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTEgICAgICBcblx0IiAvLyBzaGlmdCBkYXRhIHRvIHBvc2l0aW9uIGNvcnJlY3RseQotICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBtYXNrIHRvIHVzZSBvbmx5IDNyZCBhY3RpdmUgZ3JvdXAKLSAgICAgICAgICAgICJhZGRsICQ4LCAlJWVieCAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJjbXBsIF9NTVhMZW5ndGgsICUlZWJ4ICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZxICUlbW0wLCAtOCglJWVkaSwlJWVieCwpIFxuXHQiIC8vIFdyaXRlIHVwZGF0ZWQgUmF3cyBiYWNrIHRvIGFycmF5Ci0gICAgICAgICAgICAvLyBQcmVwIGZvciBkb2luZyAxc3QgYWRkIGF0IHRvcCBvZiBsb29wCi0gICAgICAgICAgICAibW92cSAlJW1tMCwgJSVtbTEgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAiamIgc3ViXzNscCAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICBjYXNlIDM6CisgICAgICB7CisgICAgICAgICBfQWN0aXZlTWFzay51c2UgID0gMHgwMDAwZmZmZmZmMDAwMDAwTEw7CisgICAgICAgICBfU2hpZnRCcHAudXNlID0gMjQ7ICAgICAgIC8vID09IDMgKiA4CisgICAgICAgICBfU2hpZnRSZW0udXNlICA9IDQwOyAgICAgIC8vID09IDY0IC0gMjQKIAotICAgICAgICAgICAgOiAvLyBGSVhBU006IG91dHB1dCByZWdzL3ZhcnMgZ28gaGVyZSwgZS5nLjogICI9bSIgKG1lbW9yeV92YXIpCisgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCisvLyBwcmVsb2FkICAibW92bCByb3csICUlZWRpICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgIm1vdnEgX0FjdGl2ZU1hc2ssICUlbW03ICAgICAgIFxuXHQiIC8vIGxvYWQgX0FjdGl2ZU1hc2sgZm9yIDJuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGFjdGl2ZSBieXRlIGdyb3VwCisgICAgICAgICAgICAibW92bCAlJWVkaSwgJSVlc2kgICAgICAgICAgICBcblx0IiAvLyBscCA9IHJvdworLy8gcHJlbG9hZCAgIm1vdmwgYnBwLCAlJWVheCAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJhZGRsICUlZWF4LCAlJWVkaSAgICAgICAgICAgIFxuXHQiIC8vIHJwID0gcm93ICsgYnBwCisgICAgICAgICAgICAibW92cSAlJW1tNywgJSVtbTYgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlZHggICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJwc2xscSBfU2hpZnRCcHAsICUlbW02ICAgICAgIFxuXHQiIC8vIG1vdmUgbWFzayBpbiBtbTYgdG8gY292ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzcmQgYWN0aXZlIGJ5dGUgZ3JvdXAKKyAgICAgICAgICAgIC8vIHByaW1lIHRoZSBwdW1wOiAgbG9hZCB0aGUgZmlyc3QgUmF3KHgtYnBwKSBkYXRhIHNldAorICAgICAgICAgICAgIm1vdnEgLTgoJSVlZGksJSVlZHgsKSwgJSVtbTEgXG5cdCIKIAotICAgICAgICAgICAgOiAvLyBGSVhBU006IGlucHV0IHJlZ3MsIGUuZy46ICAiYyIgKGNvdW50KSwgIlMiIChzcmMpLCAiRCIgKGRlc3QpCisgICAgICAgICAic3ViXzNscDogICAgICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBzaGlmdCBkYXRhIGZvciBhZGRpbmcgZmlyc3QKKyAgICAgICAgICAgICJwc3JscSBfU2hpZnRSZW0sICUlbW0xICAgICAgIFxuXHQiIC8vICBicHAgYnl0ZXMgKG5vIG5lZWQgZm9yIG1hc2s7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgc2hpZnQgY2xlYXJzIGluYWN0aXZlIGJ5dGVzKQorICAgICAgICAgICAgLy8gYWRkIDFzdCBhY3RpdmUgZ3JvdXAKKyAgICAgICAgICAgICJtb3ZxICglJWVkaSwlJWVkeCwpLCAlJW1tMCAgIFxuXHQiCisgICAgICAgICAgICAicGFkZGIgJSVtbTEsICUlbW0wICAgICAgICAgICBcblx0IgogCi0gICAgICAgICAgICA6ICIlZWJ4IiwgIiVlZGkiLCAiJWVzaSIsICIlbW0wIiwgIiVtbTEiLCAiJW1tNiIsICIlbW03IiAvLyBDSEVDS0FTTTogY2xvYmJlciBsaXN0CisgICAgICAgICAgICAvLyBhZGQgMm5kIGFjdGl2ZSBncm91cAorICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0xICAgICAgICAgICAgXG5cdCIgLy8gbW92IHVwZGF0ZWQgUmF3cyB0byBtbTEKKyAgICAgICAgICAgICJwc2xscSBfU2hpZnRCcHAsICUlbW0xICAgICAgIFxuXHQiIC8vIHNoaWZ0IGRhdGEgdG8gcG9zLiBjb3JyZWN0bHkKKyAgICAgICAgICAgICJwYW5kICUlbW03LCAlJW1tMSAgICAgICAgICAgIFxuXHQiIC8vIG1hc2sgdG8gdXNlIDJuZCBhY3RpdmUgZ3JvdXAKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgIFxuXHQiCisKKyAgICAgICAgICAgIC8vIGFkZCAzcmQgYWN0aXZlIGdyb3VwCisgICAgICAgICAgICAibW92cSAlJW1tMCwgJSVtbTEgICAgICAgICAgICBcblx0IiAvLyBtb3YgdXBkYXRlZCBSYXdzIHRvIG1tMQorICAgICAgICAgICAgInBzbGxxIF9TaGlmdEJwcCwgJSVtbTEgICAgICAgXG5cdCIgLy8gc2hpZnQgZGF0YSB0byBwb3MuIGNvcnJlY3RseQorICAgICAgICAgICAgInBhbmQgJSVtbTYsICUlbW0xICAgICAgICAgICAgXG5cdCIgLy8gbWFzayB0byB1c2UgM3JkIGFjdGl2ZSBncm91cAorICAgICAgICAgICAgImFkZGwgJDgsICUlZWR4ICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgIFxuXHQiCisKKyAgICAgICAgICAgICJjbXBsIF9NTVhMZW5ndGgsICUlZWR4ICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAlJW1tMCwgLTgoJSVlZGksJSVlZHgsKSBcblx0IiAvLyB3cml0ZSB1cGRhdGVkIFJhd3MgdG8gYXJyYXkKKyAgICAgICAgICAgICJtb3ZxICUlbW0wLCAlJW1tMSAgICAgICAgICAgIFxuXHQiIC8vIHByZXAgMXN0IGFkZCBhdCB0b3Agb2YgbG9vcAorICAgICAgICAgICAgImpiIHN1Yl8zbHAgICAgICAgICAgICAgICAgICAgXG5cdCIKKworICAgICAgICAgICAgOiAiPWEiIChkdW1teV92YWx1ZV9hKSwgICAvLyAwICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQorICAgICAgICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKSAgICAvLyAxCisKKyAgICAgICAgICAgIDogIjAiIChicHApLCAgICAgICAgICAgICAgLy8gZWF4ICAgIC8vIGlucHV0IHJlZ3MKKyAgICAgICAgICAgICAgIjEiIChyb3cpICAgICAgICAgICAgICAgLy8gZWRpCisKKyAgICAgICAgICAgIDogIiVlZHgiLCAiJWVzaSIgICAgICAgICAgICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAorI2lmIDAgIC8qIE1NWCByZWdzICglbW0wLCBldGMuKSBub3Qgc3VwcG9ydGVkIGJ5IGdjYyAyLjcuMi4zIG9yIGVnY3MgMS4xICovCisgICAgICAgICAgICAsICIlbW0wIiwgIiVtbTEiLCAiJW1tNiIsICIlbW03IgorI2VuZGlmCiAgICAgICAgICApOwogICAgICAgfQogICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMToKICAgICAgIHsKLSAgICAgICAgIC8vIFBsYWNlZCBoZXJlIGp1c3QgaW4gY2FzZSB0aGlzIGlzIGEgZHVwbGljYXRlIG9mIHRoZQotICAgICAgICAgLy8gbm9uLU1NWCBjb2RlIGZvciB0aGUgU1VCIGZpbHRlciBpbiBwbmdfcmVhZF9maWx0ZXJfcm93IGFib3ZlCi0gICAgICAgICAvLwotICAgICAgICAgLy8gICAgICAgICBwbmdfYnl0ZXAgcnA7Ci0gICAgICAgICAvLyAgICAgICAgIHBuZ19ieXRlcCBscDsKLSAgICAgICAgIC8vICAgICAgICAgcG5nX3VpbnRfMzIgaTsKLSAgICAgICAgIC8vICAgICAgICAgYnBwID0gKHJvd19pbmZvLT5waXhlbF9kZXB0aCArIDcpID4+IDM7Ci0gICAgICAgICAvLyAgICAgICAgIGZvciAoaSA9IChwbmdfdWludF8zMilicHAsIHJwID0gcm93ICsgYnBwLCBscCA9IHJvdzsKLSAgICAgICAgIC8vICAgICAgICAgICAgaSA8IHJvd19pbmZvLT5yb3dieXRlczsgaSsrLCBycCsrLCBscCsrKQotICAgICAgICAgLy8gICAgICB7Ci0gICAgICAgICAvLyAgICAgICAgICAgICpycCA9IChwbmdfYnl0ZSkoKChpbnQpKCpycCkgKyAoaW50KSgqbHApKSAmIDB4ZmYpOwotICAgICAgICAgLy8gICAgICB9Ci0gICAgICAgICBfX2FzbV9fICgKLSAgICAgICAgICAgICJtb3ZsIF9kaWYsICUlZWJ4ICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJjbXBsIF9GdWxsTGVuZ3RoLCAlJWVieCAgICAgXG5cdCIKKyAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICAgICAgICJtb3ZsIF9kaWYsICUlZWR4ICAgICAgICAgICAgXG5cdCIKKy8vIHByZWxvYWQgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJjbXBsIF9GdWxsTGVuZ3RoLCAlJWVkeCAgICAgXG5cdCIKICAgICAgICAgICAgICJqbmIgc3ViXzFlbmQgICAgICAgICAgICAgICAgXG5cdCIKICAgICAgICAgICAgICJtb3ZsICUlZWRpLCAlJWVzaSAgICAgICAgICAgXG5cdCIgLy8gbHAgPSByb3cKICAgICAgICAgICAgICJ4b3JsICUlZWF4LCAlJWVheCAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJhZGRsIGJwcCwgJSVlZGkgICAgICAgICAgICAgXG5cdCIgLy8gcnAgPSByb3cgKyBicHAKKy8vIHByZWxvYWQgICJtb3ZsIGJwcCwgJSVlYXggICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJhZGRsICUlZWF4LCAlJWVkaSAgICAgICAgICAgXG5cdCIgLy8gcnAgPSByb3cgKyBicHAKKwogICAgICAgICAgInN1Yl8xbHA6ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmIgKCUlZXNpLCUlZWJ4LCksICUlYWwgICBcblx0IgotICAgICAgICAgICAgImFkZGIgJSVhbCwgKCUlZWRpLCUlZWJ4LCkgICBcblx0IgotICAgICAgICAgICAgImluY2wgJSVlYnggICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgImNtcGwgX0Z1bGxMZW5ndGgsICUlZWJ4ICAgICBcblx0IgorICAgICAgICAgICAgIm1vdmIgKCUlZXNpLCUlZWR4LCksICUlYWwgICBcblx0IgorICAgICAgICAgICAgImFkZGIgJSVhbCwgKCUlZWRpLCUlZWR4LCkgICBcblx0IgorICAgICAgICAgICAgImluY2wgJSVlZHggICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgImNtcGwgX0Z1bGxMZW5ndGgsICUlZWR4ICAgICBcblx0IgogICAgICAgICAgICAgImpiIHN1Yl8xbHAgICAgICAgICAgICAgICAgICBcblx0IgorCiAgICAgICAgICAic3ViXzFlbmQ6ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBvdXRwdXQgcmVncy92YXJzIGdvIGhlcmUsIGUuZy46ICAiPW0iIChtZW1vcnlfdmFyKQorICAgICAgICAgICAgOiAiPWEiIChkdW1teV92YWx1ZV9hKSwgICAvLyAwICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQorICAgICAgICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKSAgICAvLyAxCiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBpbnB1dCByZWdzLCBlLmcuOiAgImMiIChjb3VudCksICJTIiAoc3JjKSwgIkQiIChkZXN0KQorICAgICAgICAgICAgOiAiMCIgKGJwcCksICAgICAgICAgICAgICAvLyBlYXggICAgLy8gaW5wdXQgcmVncworICAgICAgICAgICAgICAiMSIgKHJvdykgICAgICAgICAgICAgICAvLyBlZGkKIAotICAgICAgICAgICAgOiAiJWVheCIsICIlZWJ4IiwgIiVlZGkiLCAiJWVzaSIgLy8gQ0hFQ0tBU006IGNsb2JiZXIgbGlzdAorICAgICAgICAgICAgOiAiJWVkeCIsICIlZXNpIiAgICAgICAgICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CiAgICAgICAgICApOwogICAgICAgfQogICAgICAgcmV0dXJuOwogCiAgICAgICBjYXNlIDY6Ci0gICAgICBjYXNlIDc6CiAgICAgICBjYXNlIDQ6Ci0gICAgICBjYXNlIDU6CisgICAgICAvL2Nhc2UgNzogICAvLyBHUlIgQk9HVVMKKyAgICAgIC8vY2FzZSA1OiAgIC8vIEdSUiBCT0dVUwogICAgICAgewotICAgICAgICAgU2hpZnRCcHAudXNlID0gYnBwIDw8IDM7Ci0gICAgICAgICBTaGlmdFJlbS51c2UgPSA2NCAtIFNoaWZ0QnBwLnVzZTsKLSAgICAgICAgIF9fYXNtX18gKAotICAgICAgICAgICAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlYnggICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgJSVlZGksICUlZXNpICAgICAgICAgICBcblx0IiAvLyBscCA9IHJvdwotICAgICAgICAgICAgImFkZGwgYnBwLCAlJWVkaSAgICAgICAgICAgICBcblx0IiAvLyBycCA9IHJvdyArIGJwcAotICAgICAgICAgICAgLy8gUFJJTUUgdGhlIHB1bXAgKGxvYWQgdGhlIGZpcnN0IFJhdyh4LWJwcCkgZGF0YSBzZXQKLSAgICAgICAgICAgICJtb3ZxIC04KCUlZWRpLCUlZWJ4LCksICUlbW0xIFxuXHQiCi0gICAgICAgICAic3ViXzRscDogICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicHNybHEgJFNoaWZ0UmVtLCAlJW1tMSAgICAgIFxuXHQiIC8vIFNoaWZ0IGRhdGEgZm9yIGFkZGluZyAxc3QgYnBwIGJ5dGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIG5lZWQgZm9yIG1hc2s7IHNoaWZ0IGNsZWFycyBpbmFjdGl2ZSBieXRlcwotICAgICAgICAgICAgIm1vdnEgKCUlZWRpLCUlZWJ4LCksICUlbW0wICBcblx0IgotICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMCAgICAgICAgICBcblx0IgotICAgICAgICAgICAgLy8gQWRkIDJuZCBhY3RpdmUgZ3JvdXAKLSAgICAgICAgICAgICJtb3ZxICUlbW0wLCAlJW1tMSAgICAgICAgICAgXG5cdCIgLy8gbW92IHVwZGF0ZWQgUmF3cyB0byBtbTEKLSAgICAgICAgICAgICJwc2xscSAkU2hpZnRCcHAsICUlbW0xICAgICAgXG5cdCIgLy8gc2hpZnQgZGF0YSB0byBwb3NpdGlvbiBjb3JyZWN0bHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlcmUgaXMgbm8gbmVlZCBmb3IgYW55IG1hc2sKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2luY2Ugc2hpZnQgY2xlYXJzIGluYWN0aXZlIGJpdHMvYnl0ZXMKLSAgICAgICAgICAgICJhZGRsICQ4LCAlJWVieCAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJjbXBsIF9NTVhMZW5ndGgsICUlZWJ4ICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZxICUlbW0wLCAtOCglJWVkaSwlJWVieCwpIFxuXHQiCi0gICAgICAgICAgICAibW92cSAlJW1tMCwgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIFByZXAgZm9yIGRvaW5nIDFzdCBhZGQgYXQgdG9wIG9mIGxvb3AKLSAgICAgICAgICAgICJqYiBzdWJfNGxwICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgIF9TaGlmdEJwcC51c2UgPSBicHAgPDwgMzsKKyAgICAgICAgIF9TaGlmdFJlbS51c2UgPSA2NCAtIF9TaGlmdEJwcC51c2U7CiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBvdXRwdXQgcmVncy92YXJzIGdvIGhlcmUsIGUuZy46ICAiPW0iIChtZW1vcnlfdmFyKQorICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorLy8gcHJlbG9hZCAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJtb3ZsIF9kaWYsICUlZWR4ICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92bCAlJWVkaSwgJSVlc2kgICAgICAgICAgICBcblx0IiAvLyBscCA9IHJvdworLy8gcHJlbG9hZCAgIm1vdmwgYnBwLCAlJWVheCAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJhZGRsICUlZWF4LCAlJWVkaSAgICAgICAgICAgIFxuXHQiIC8vIHJwID0gcm93ICsgYnBwCiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBpbnB1dCByZWdzLCBlLmcuOiAgImMiIChjb3VudCksICJTIiAoc3JjKSwgIkQiIChkZXN0KQorICAgICAgICAgICAgLy8gcHJpbWUgdGhlIHB1bXA6ICBsb2FkIHRoZSBmaXJzdCBSYXcoeC1icHApIGRhdGEgc2V0CisgICAgICAgICAgICAibW92cSAtOCglJWVkaSwlJWVkeCwpLCAlJW1tMSBcblx0IgogCi0gICAgICAgICAgICA6ICIlZWJ4IiwgIiVlZGkiLCAiJWVzaSIsICIlbW0wIiwgIiVtbTEiIC8vIENIRUNLQVNNOiBjbG9iYmVyIGxpc3QKKyAgICAgICAgICJzdWJfNGxwOiAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIHNoaWZ0IGRhdGEgZm9yIGFkZGluZyBmaXJzdAorICAgICAgICAgICAgInBzcmxxIF9TaGlmdFJlbSwgJSVtbTEgICAgICAgXG5cdCIgLy8gIGJwcCBieXRlcyAobm8gbmVlZCBmb3IgbWFzazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBzaGlmdCBjbGVhcnMgaW5hY3RpdmUgYnl0ZXMpCisgICAgICAgICAgICAibW92cSAoJSVlZGksJSVlZHgsKSwgJSVtbTAgICBcblx0IgorICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMCAgICAgICAgICAgXG5cdCIKKworICAgICAgICAgICAgLy8gYWRkIDJuZCBhY3RpdmUgZ3JvdXAKKyAgICAgICAgICAgICJtb3ZxICUlbW0wLCAlJW1tMSAgICAgICAgICAgIFxuXHQiIC8vIG1vdiB1cGRhdGVkIFJhd3MgdG8gbW0xCisgICAgICAgICAgICAicHNsbHEgX1NoaWZ0QnBwLCAlJW1tMSAgICAgICBcblx0IiAvLyBzaGlmdCBkYXRhIHRvIHBvcy4gY29ycmVjdGx5CisgICAgICAgICAgICAiYWRkbCAkOCwgJSVlZHggICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMCAgICAgICAgICAgXG5cdCIKKworICAgICAgICAgICAgImNtcGwgX01NWExlbmd0aCwgJSVlZHggICAgICAgXG5cdCIKKyAgICAgICAgICAgICJtb3ZxICUlbW0wLCAtOCglJWVkaSwlJWVkeCwpIFxuXHQiCisgICAgICAgICAgICAibW92cSAlJW1tMCwgJSVtbTEgICAgICAgICAgICBcblx0IiAvLyBwcmVwIDFzdCBhZGQgYXQgdG9wIG9mIGxvb3AKKyAgICAgICAgICAgICJqYiBzdWJfNGxwICAgICAgICAgICAgICAgICAgIFxuXHQiCisKKyAgICAgICAgICAgIDogIj1hIiAoZHVtbXlfdmFsdWVfYSksICAgLy8gMCAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkgICAgLy8gMQorCisgICAgICAgICAgICA6ICIwIiAoYnBwKSwgICAgICAgICAgICAgIC8vIGVheCAgICAvLyBpbnB1dCByZWdzCisgICAgICAgICAgICAgICIxIiAocm93KSAgICAgICAgICAgICAgIC8vIGVkaQorCisgICAgICAgICAgICA6ICIlZWR4IiwgIiVlc2kiICAgICAgICAgICAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKKyNpZiAwICAvKiBNTVggcmVncyAoJW1tMCwgZXRjLikgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLworICAgICAgICAgICAgLCAiJW1tMCIsICIlbW0xIgorI2VuZGlmCiAgICAgICAgICApOwogICAgICAgfQogICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMjoKICAgICAgIHsKLSAgICAgICAgIEFjdGl2ZU1hc2sudXNlICA9IDB4MDAwMDAwMDBmZmZmMDAwMDsKLSAgICAgICAgIFNoaWZ0QnBwLnVzZSA9IDE2OyAgICAgICAvLyA9PSAyICogOAotICAgICAgICAgU2hpZnRSZW0udXNlID0gNDg7ICAgICAgIC8vID09IDY0IC0gMTYKLSAgICAgICAgIF9fYXNtX18gKAotICAgICAgICAgICAgIm1vdnEgJEFjdGl2ZU1hc2ssICUlbW03ICAgICBcblx0IiAvLyBMb2FkIEFjdGl2ZU1hc2sgZm9yIDJuZCBhY3RpdmUgYnl0ZSBncm91cAotICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlYnggICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgJSVtbTcsICUlbW02ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTYgICAgICBcblx0IiAvLyBNb3ZlIG1hc2sgaW4gbW02IHRvIGNvdmVyIDNyZCBhY3RpdmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBieXRlIGdyb3VwCi0gICAgICAgICAgICAibW92bCAlJWVkaSwgJSVlc2kgICAgICAgICAgIFxuXHQiIC8vIGxwID0gcm93Ci0gICAgICAgICAgICAibW92cSAlJW1tNiwgJSVtbTUgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAiYWRkbCBicHAsICUlZWRpICAgICAgICAgICAgIFxuXHQiIC8vIHJwID0gcm93ICsgYnBwCi0gICAgICAgICAgICAicHNsbHEgJFNoaWZ0QnBwLCAlJW1tNSAgICAgIFxuXHQiIC8vIE1vdmUgbWFzayBpbiBtbTUgdG8gY292ZXIgNHRoIGFjdGl2ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGJ5dGUgZ3JvdXAKLSAgICAgICAgICAgIC8vIFBSSU1FIHRoZSBwdW1wIChsb2FkIHRoZSBmaXJzdCBSYXcoeC1icHApIGRhdGEgc2V0Ci0gICAgICAgICAgICAibW92cSAtOCglJWVkaSwlJWVieCwpLCAlJW1tMSBcblx0IgotICAgICAgICAgInN1Yl8ybHA6ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgLy8gQWRkIDFzdCBhY3RpdmUgZ3JvdXAKLSAgICAgICAgICAgICJwc3JscSAkU2hpZnRSZW0sICUlbW0xICAgICAgXG5cdCIgLy8gU2hpZnQgZGF0YSBmb3IgYWRkaW5nIDFzdCBicHAgYnl0ZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIG5lZWQgZm9yIG1hc2s7IHNoaWZ0IGNsZWFycyBpbmFjdGl2ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGJ5dGVzCi0gICAgICAgICAgICAibW92cSAoJSVlZGksJSVlYngsKSwgJSVtbTAgIFxuXHQiCi0gICAgICAgICAgICAicGFkZGIgJSVtbTEsICUlbW0wICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAvLyBBZGQgMm5kIGFjdGl2ZSBncm91cAotICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBtb3YgdXBkYXRlZCBSYXdzIHRvIG1tMQotICAgICAgICAgICAgInBzbGxxICRTaGlmdEJwcCwgJSVtbTEgICAgICBcblx0IiAvLyBzaGlmdCBkYXRhIHRvIHBvc2l0aW9uIGNvcnJlY3RseQotICAgICAgICAgICAgInBhbmQgJSVtbTcsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBtYXNrIHRvIHVzZSBvbmx5IDJuZCBhY3RpdmUgZ3JvdXAKLSAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgIC8vIEFkZCAzcmQgYWN0aXZlIGdyb3VwCi0gICAgICAgICAgICAibW92cSAlJW1tMCwgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIG1vdiB1cGRhdGVkIFJhd3MgdG8gbW0xCi0gICAgICAgICAgICAicHNsbHEgJFNoaWZ0QnBwLCAlJW1tMSAgICAgIFxuXHQiIC8vIHNoaWZ0IGRhdGEgdG8gcG9zaXRpb24gY29ycmVjdGx5Ci0gICAgICAgICAgICAicGFuZCAlJW1tNiwgJSVtbTEgICAgICAgICAgIFxuXHQiIC8vIG1hc2sgdG8gdXNlIG9ubHkgM3JkIGFjdGl2ZSBncm91cAotICAgICAgICAgICAgInBhZGRiICUlbW0xLCAlJW1tMCAgICAgICAgICBcblx0IgotICAgICAgICAgICAgLy8gQWRkIDR0aCBhY3RpdmUgZ3JvdXAKLSAgICAgICAgICAgICJtb3ZxICUlbW0wLCAlJW1tMSAgICAgICAgICAgXG5cdCIgLy8gbW92IHVwZGF0ZWQgUmF3cyB0byBtbTEKLSAgICAgICAgICAgICJwc2xscSAkU2hpZnRCcHAsICUlbW0xICAgICAgXG5cdCIgLy8gc2hpZnQgZGF0YSB0byBwb3NpdGlvbiBjb3JyZWN0bHkKLSAgICAgICAgICAgICJwYW5kICUlbW01LCAlJW1tMSAgICAgICAgICAgXG5cdCIgLy8gbWFzayB0byB1c2Ugb25seSA0dGggYWN0aXZlIGdyb3VwCi0gICAgICAgICAgICAiYWRkbCAkOCwgJSVlYnggICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGFkZGIgJSVtbTEsICUlbW0wICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAiY21wbCBfTU1YTGVuZ3RoLCAlJWVieCAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92cSAlJW1tMCwgLTgoJSVlZGksJSVlYngsKSBcblx0IiAvLyBXcml0ZSB1cGRhdGVkIFJhd3MgYmFjayB0byBhcnJheQotICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0xICAgICAgICAgICBcblx0IiAvLyBQcmVwIGZvciBkb2luZyAxc3QgYWRkIGF0IHRvcCBvZiBsb29wCi0gICAgICAgICAgICAiamIgc3ViXzJscCAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICBfQWN0aXZlTWFzay51c2UgPSAweDAwMDAwMDAwZmZmZjAwMDBMTDsKKyAgICAgICAgIF9TaGlmdEJwcC51c2UgPSAxNjsgICAgICAgLy8gPT0gMiAqIDgKKyAgICAgICAgIF9TaGlmdFJlbS51c2UgPSA0ODsgICAgICAgLy8gPT0gNjQgLSAxNgogCi0gICAgICAgICAgICA6IC8vIEZJWEFTTTogb3V0cHV0IHJlZ3MvdmFycyBnbyBoZXJlLCBlLmcuOiAgIj1tIiAobWVtb3J5X3ZhcikKKyAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICAgICAgICJtb3ZxIF9BY3RpdmVNYXNrLCAlJW1tNyAgICAgIFxuXHQiIC8vIGxvYWQgX0FjdGl2ZU1hc2sgZm9yIDJuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGFjdGl2ZSBieXRlIGdyb3VwCisgICAgICAgICAgICAibW92bCBfZGlmLCAlJWVkeCAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgIm1vdnEgJSVtbTcsICUlbW02ICAgICAgICAgICAgXG5cdCIKKy8vIHByZWxvYWQgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAicHNsbHEgX1NoaWZ0QnBwLCAlJW1tNiAgICAgICBcblx0IiAvLyBtb3ZlIG1hc2sgaW4gbW02IHRvIGNvdmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgM3JkIGFjdGl2ZSBieXRlIGdyb3VwCisgICAgICAgICAgICAibW92bCAlJWVkaSwgJSVlc2kgICAgICAgICAgICBcblx0IiAvLyBscCA9IHJvdworICAgICAgICAgICAgIm1vdnEgJSVtbTYsICUlbW01ICAgICAgICAgICAgXG5cdCIKKy8vIHByZWxvYWQgICJtb3ZsIGJwcCwgJSVlYXggICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAiYWRkbCAlJWVheCwgJSVlZGkgICAgICAgICAgICBcblx0IiAvLyBycCA9IHJvdyArIGJwcAorICAgICAgICAgICAgInBzbGxxIF9TaGlmdEJwcCwgJSVtbTUgICAgICAgXG5cdCIgLy8gbW92ZSBtYXNrIGluIG1tNSB0byBjb3ZlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDR0aCBhY3RpdmUgYnl0ZSBncm91cAorICAgICAgICAgICAgLy8gcHJpbWUgdGhlIHB1bXA6ICBsb2FkIHRoZSBmaXJzdCBSYXcoeC1icHApIGRhdGEgc2V0CisgICAgICAgICAgICAibW92cSAtOCglJWVkaSwlJWVkeCwpLCAlJW1tMSBcblx0IgogCi0gICAgICAgICAgICA6IC8vIEZJWEFTTTogaW5wdXQgcmVncywgZS5nLjogICJjIiAoY291bnQpLCAiUyIgKHNyYyksICJEIiAoZGVzdCkKKyAgICAgICAgICJzdWJfMmxwOiAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIHNoaWZ0IGRhdGEgZm9yIGFkZGluZyBmaXJzdAorICAgICAgICAgICAgInBzcmxxIF9TaGlmdFJlbSwgJSVtbTEgICAgICAgXG5cdCIgLy8gIGJwcCBieXRlcyAobm8gbmVlZCBmb3IgbWFzazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBzaGlmdCBjbGVhcnMgaW5hY3RpdmUgYnl0ZXMpCisgICAgICAgICAgICAvLyBhZGQgMXN0IGFjdGl2ZSBncm91cAorICAgICAgICAgICAgIm1vdnEgKCUlZWRpLCUlZWR4LCksICUlbW0wICAgXG5cdCIKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgIFxuXHQiCiAKLSAgICAgICAgICAgIDogIiVlYngiLCAiJWVkaSIsICIlZXNpIiwgIiVtbTAiLCAiJW1tMSIsICIlbW01IiwgIiVtbTYiLCAiJW1tNyIgLy8gQ0hFQ0tBU006IGNsb2JiZXIgbGlzdAorICAgICAgICAgICAgLy8gYWRkIDJuZCBhY3RpdmUgZ3JvdXAKKyAgICAgICAgICAgICJtb3ZxICUlbW0wLCAlJW1tMSAgICAgICAgICAgIFxuXHQiIC8vIG1vdiB1cGRhdGVkIFJhd3MgdG8gbW0xCisgICAgICAgICAgICAicHNsbHEgX1NoaWZ0QnBwLCAlJW1tMSAgICAgICBcblx0IiAvLyBzaGlmdCBkYXRhIHRvIHBvcy4gY29ycmVjdGx5CisgICAgICAgICAgICAicGFuZCAlJW1tNywgJSVtbTEgICAgICAgICAgICBcblx0IiAvLyBtYXNrIHRvIHVzZSAybmQgYWN0aXZlIGdyb3VwCisgICAgICAgICAgICAicGFkZGIgJSVtbTEsICUlbW0wICAgICAgICAgICBcblx0IgorCisgICAgICAgICAgICAvLyBhZGQgM3JkIGFjdGl2ZSBncm91cAorICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW0xICAgICAgICAgICAgXG5cdCIgLy8gbW92IHVwZGF0ZWQgUmF3cyB0byBtbTEKKyAgICAgICAgICAgICJwc2xscSBfU2hpZnRCcHAsICUlbW0xICAgICAgIFxuXHQiIC8vIHNoaWZ0IGRhdGEgdG8gcG9zLiBjb3JyZWN0bHkKKyAgICAgICAgICAgICJwYW5kICUlbW02LCAlJW1tMSAgICAgICAgICAgIFxuXHQiIC8vIG1hc2sgdG8gdXNlIDNyZCBhY3RpdmUgZ3JvdXAKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgIFxuXHQiCisKKyAgICAgICAgICAgIC8vIGFkZCA0dGggYWN0aXZlIGdyb3VwCisgICAgICAgICAgICAibW92cSAlJW1tMCwgJSVtbTEgICAgICAgICAgICBcblx0IiAvLyBtb3YgdXBkYXRlZCBSYXdzIHRvIG1tMQorICAgICAgICAgICAgInBzbGxxIF9TaGlmdEJwcCwgJSVtbTEgICAgICAgXG5cdCIgLy8gc2hpZnQgZGF0YSB0byBwb3MuIGNvcnJlY3RseQorICAgICAgICAgICAgInBhbmQgJSVtbTUsICUlbW0xICAgICAgICAgICAgXG5cdCIgLy8gbWFzayB0byB1c2UgNHRoIGFjdGl2ZSBncm91cAorICAgICAgICAgICAgImFkZGwgJDgsICUlZWR4ICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAiY21wbCBfTU1YTGVuZ3RoLCAlJWVkeCAgICAgICBcblx0IgorICAgICAgICAgICAgIm1vdnEgJSVtbTAsIC04KCUlZWRpLCUlZWR4LCkgXG5cdCIgLy8gd3JpdGUgdXBkYXRlZCBSYXdzIHRvIGFycmF5CisgICAgICAgICAgICAibW92cSAlJW1tMCwgJSVtbTEgICAgICAgICAgICBcblx0IiAvLyBwcmVwIDFzdCBhZGQgYXQgdG9wIG9mIGxvb3AKKyAgICAgICAgICAgICJqYiBzdWJfMmxwICAgICAgICAgICAgICAgICAgIFxuXHQiCisKKyAgICAgICAgICAgIDogIj1hIiAoZHVtbXlfdmFsdWVfYSksICAgLy8gMCAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkgICAgLy8gMQorCisgICAgICAgICAgICA6ICIwIiAoYnBwKSwgICAgICAgICAgICAgIC8vIGVheCAgICAvLyBpbnB1dCByZWdzCisgICAgICAgICAgICAgICIxIiAocm93KSAgICAgICAgICAgICAgIC8vIGVkaQorCisgICAgICAgICAgICA6ICIlZWR4IiwgIiVlc2kiICAgICAgICAgICAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKKyNpZiAwICAvKiBNTVggcmVncyAoJW1tMCwgZXRjLikgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLworICAgICAgICAgICAgLCAiJW1tMCIsICIlbW0xIiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IgorI2VuZGlmCiAgICAgICAgICApOwogICAgICAgfQogICAgICAgYnJlYWs7CisKICAgICAgIGNhc2UgODoKICAgICAgIHsKLSAgICAgICAgIF9fYXNtX18gKAotICAgICAgICAgICAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlYnggICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdmwgJSVlZGksICUlZXNpICAgICAgICAgICBcblx0IiAvLyBscCA9IHJvdwotICAgICAgICAgICAgImFkZGwgYnBwLCAlJWVkaSAgICAgICAgICAgICBcblx0IiAvLyBycCA9IHJvdyArIGJwcAotICAgICAgICAgICAgIm1vdmwgX01NWExlbmd0aCwgJSVlY3ggICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgLTgoJSVlZGksJSVlYngsKSwgJSVtbTcgXG5cdCIgLy8gUFJJTUUgdGhlIHB1bXAgKGxvYWQgdGhlIGZpcnN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSYXcoeC1icHApIGRhdGEgc2V0Ci0gICAgICAgICAgICAiYW5kbCAkMHgwMDAwMDAzZiwgJSVlY3ggICAgIFxuXHQiIC8vIGNhbGMgYnl0ZXMgb3ZlciBtdWx0IG9mIDY0Ci0gICAgICAgICAic3ViXzhscDogICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92cSAoJSVlZGksJSVlYngsKSwgJSVtbTAgIFxuXHQiIC8vIExvYWQgU3ViKHgpIGZvciAxc3QgOCBieXRlcwotICAgICAgICAgICAgInBhZGRiICUlbW03LCAlJW1tMCAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgOCglJWVkaSwlJWVieCwpLCAlJW1tMSBcblx0IiAvLyBMb2FkIFN1Yih4KSBmb3IgMm5kIDggYnl0ZXMKLSAgICAgICAgICAgICJtb3ZxICUlbW0wLCAoJSVlZGksJSVlYngsKSAgXG5cdCIgLy8gV3JpdGUgUmF3KHgpIGZvciAxc3QgOCBieXRlcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3cgbW0wIHdpbGwgYmUgdXNlZCBhcyBSYXcoeC1icHApIGZvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgMm5kIGdyb3VwIG9mIDggYnl0ZXMuICBUaGlzIHdpbGwgYmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVwZWF0ZWQgZm9yIGVhY2ggZ3JvdXAgb2YgOCBieXRlcyB3aXRoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSA4dGggZ3JvdXAgYmVpbmcgdXNlZCBhcyB0aGUgUmF3KHgtYnBwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIDFzdCBncm91cCBvZiB0aGUgbmV4dCBsb29wLgotICAgICAgICAgICAgInBhZGRiICUlbW0wLCAlJW1tMSAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgMTYoJSVlZGksJSVlYngsKSwgJSVtbTIgXG5cdCIgLy8gTG9hZCBTdWIoeCkgZm9yIDNyZCA4IGJ5dGVzCi0gICAgICAgICAgICAibW92cSAlJW1tMSwgOCglJWVkaSwlJWVieCwpIFxuXHQiIC8vIFdyaXRlIFJhdyh4KSBmb3IgMm5kIDggYnl0ZXMKLSAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTIgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZxIDI0KCUlZWRpLCUlZWJ4LCksICUlbW0zIFxuXHQiIC8vIExvYWQgU3ViKHgpIGZvciA0dGggOCBieXRlcwotICAgICAgICAgICAgIm1vdnEgJSVtbTIsIDE2KCUlZWRpLCUlZWJ4LCkgXG5cdCIgLy8gV3JpdGUgUmF3KHgpIGZvciAzcmQgOCBieXRlcwotICAgICAgICAgICAgInBhZGRiICUlbW0yLCAlJW1tMyAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgMzIoJSVlZGksJSVlYngsKSwgJSVtbTQgXG5cdCIgLy8gTG9hZCBTdWIoeCkgZm9yIDV0aCA4IGJ5dGVzCi0gICAgICAgICAgICAibW92cSAlJW1tMywgMjQoJSVlZGksJSVlYngsKSBcblx0IiAvLyBXcml0ZSBSYXcoeCkgZm9yIDR0aCA4IGJ5dGVzCi0gICAgICAgICAgICAicGFkZGIgJSVtbTMsICUlbW00ICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92cSA0MCglJWVkaSwlJWVieCwpLCAlJW1tNSBcblx0IiAvLyBMb2FkIFN1Yih4KSBmb3IgNnRoIDggYnl0ZXMKLSAgICAgICAgICAgICJtb3ZxICUlbW00LCAzMiglJWVkaSwlJWVieCwpIFxuXHQiIC8vIFdyaXRlIFJhdyh4KSBmb3IgNXRoIDggYnl0ZXMKLSAgICAgICAgICAgICJwYWRkYiAlJW1tNCwgJSVtbTUgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZxIDQ4KCUlZWRpLCUlZWJ4LCksICUlbW02IFxuXHQiIC8vIExvYWQgU3ViKHgpIGZvciA3dGggOCBieXRlcwotICAgICAgICAgICAgIm1vdnEgJSVtbTUsIDQwKCUlZWRpLCUlZWJ4LCkgXG5cdCIgLy8gV3JpdGUgUmF3KHgpIGZvciA2dGggOCBieXRlcwotICAgICAgICAgICAgInBhZGRiICUlbW01LCAlJW1tNiAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIm1vdnEgNTYoJSVlZGksJSVlYngsKSwgJSVtbTcgXG5cdCIgLy8gTG9hZCBTdWIoeCkgZm9yIDh0aCA4IGJ5dGVzCi0gICAgICAgICAgICAibW92cSAlJW1tNiwgNDgoJSVlZGksJSVlYngsKSBcblx0IiAvLyBXcml0ZSBSYXcoeCkgZm9yIDd0aCA4IGJ5dGVzCi0gICAgICAgICAgICAiYWRkbCAkNjQsICUlZWJ4ICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGFkZGIgJSVtbTYsICUlbW03ICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAiY21wbCAlJWVjeCwgJSVlYnggICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92cSAlJW1tNywgLTgoJSVlZGksJSVlYngsKSBcblx0IiAvLyBXcml0ZSBSYXcoeCkgZm9yIDh0aCA4IGJ5dGVzCi0gICAgICAgICAgICAiamIgc3ViXzhscCAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAiY21wbCBfTU1YTGVuZ3RoLCAlJWVieCAgICAgIFxuXHQiCi0gICAgICAgICAgICAiam5iIHN1Yl84bHQ4ICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAic3ViXzhscEE6ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92cSAoJSVlZGksJSVlYngsKSwgJSVtbTAgIFxuXHQiCi0gICAgICAgICAgICAiYWRkbCAkOCwgJSVlYnggICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAicGFkZGIgJSVtbTcsICUlbW0wICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAiY21wbCBfTU1YTGVuZ3RoLCAlJWVieCAgICAgIFxuXHQiCi0gICAgICAgICAgICAibW92cSAlJW1tMCwgLTgoJSVlZGksJSVlYngsKSBcblx0IiAvLyB1c2UgLTggdG8gb2Zmc2V0IGVhcmx5IGFkZCB0byBlYngKLSAgICAgICAgICAgICJtb3ZxICUlbW0wLCAlJW1tNyAgICAgICAgICAgXG5cdCIgLy8gTW92ZSBjYWxjdWxhdGVkIFJhdyh4KSBkYXRhIHRvIG1tMSB0bwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmUgdGhlIG5ldyBSYXcoeC1icHApIGZvciB0aGUgbmV4dCBsb29wCi0gICAgICAgICAgICAiamIgc3ViXzhscEEgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAic3ViXzhsdDg6ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCisvLyBwcmVsb2FkICAibW92bCByb3csICUlZWRpICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlZHggICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJtb3ZsICUlZWRpLCAlJWVzaSAgICAgICAgICAgIFxuXHQiIC8vIGxwID0gcm93CisvLyBwcmVsb2FkICAibW92bCBicHAsICUlZWF4ICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgImFkZGwgJSVlYXgsICUlZWRpICAgICAgICAgICAgXG5cdCIgLy8gcnAgPSByb3cgKyBicHAKKyAgICAgICAgICAgICJtb3ZsIF9NTVhMZW5ndGgsICUlZWN4ICAgICAgIFxuXHQiCiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBvdXRwdXQgcmVncy92YXJzIGdvIGhlcmUsIGUuZy46ICAiPW0iIChtZW1vcnlfdmFyKQorICAgICAgICAgICAgLy8gcHJpbWUgdGhlIHB1bXA6ICBsb2FkIHRoZSBmaXJzdCBSYXcoeC1icHApIGRhdGEgc2V0CisgICAgICAgICAgICAibW92cSAtOCglJWVkaSwlJWVkeCwpLCAlJW1tNyBcblx0IgorICAgICAgICAgICAgImFuZGwgJDB4MDAwMDAwM2YsICUlZWN4ICAgICAgXG5cdCIgLy8gY2FsYyBieXRlcyBvdmVyIG11bHQgb2YgNjQKIAotICAgICAgICAgICAgOiAvLyBGSVhBU006IGlucHV0IHJlZ3MsIGUuZy46ICAiYyIgKGNvdW50KSwgIlMiIChzcmMpLCAiRCIgKGRlc3QpCisgICAgICAgICAic3ViXzhscDogICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgIm1vdnEgKCUlZWRpLCUlZWR4LCksICUlbW0wICAgXG5cdCIgLy8gbG9hZCBTdWIoeCkgZm9yIDFzdCA4IGJ5dGVzCisgICAgICAgICAgICAicGFkZGIgJSVtbTcsICUlbW0wICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgIm1vdnEgOCglJWVkaSwlJWVkeCwpLCAlJW1tMSAgXG5cdCIgLy8gbG9hZCBTdWIoeCkgZm9yIDJuZCA4IGJ5dGVzCisgICAgICAgICAgICAibW92cSAlJW1tMCwgKCUlZWRpLCUlZWR4LCkgICBcblx0IiAvLyB3cml0ZSBSYXcoeCkgZm9yIDFzdCA4IGJ5dGVzCiAKLSAgICAgICAgICAgIDogIiVlYngiLCAiJWVjeCIsICIlZWRpIiwgIiVlc2kiLCAiJW1tMCIsICIlbW0xIiwgIiVtbTIiLCAiJW1tMyIsICIlbW00IiwgIiVtbTUiLCAiJW1tNiIsICIlbW03IiAvLyBDSEVDS0FTTTogY2xvYmJlciBsaXN0CisgICAgICAgICAgICAvLyBOb3cgbW0wIHdpbGwgYmUgdXNlZCBhcyBSYXcoeC1icHApIGZvciB0aGUgMm5kIGdyb3VwIG9mIDggYnl0ZXMuCisgICAgICAgICAgICAvLyBUaGlzIHdpbGwgYmUgcmVwZWF0ZWQgZm9yIGVhY2ggZ3JvdXAgb2YgOCBieXRlcyB3aXRoIHRoZSA4dGgKKyAgICAgICAgICAgIC8vIGdyb3VwIGJlaW5nIHVzZWQgYXMgdGhlIFJhdyh4LWJwcCkgZm9yIHRoZSAxc3QgZ3JvdXAgb2YgdGhlCisgICAgICAgICAgICAvLyBuZXh0IGxvb3AuCisKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMCwgJSVtbTEgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAxNiglJWVkaSwlJWVkeCwpLCAlJW1tMiBcblx0IiAvLyBsb2FkIFN1Yih4KSBmb3IgM3JkIDggYnl0ZXMKKyAgICAgICAgICAgICJtb3ZxICUlbW0xLCA4KCUlZWRpLCUlZWR4LCkgIFxuXHQiIC8vIHdyaXRlIFJhdyh4KSBmb3IgMm5kIDggYnl0ZXMKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTIgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAyNCglJWVkaSwlJWVkeCwpLCAlJW1tMyBcblx0IiAvLyBsb2FkIFN1Yih4KSBmb3IgNHRoIDggYnl0ZXMKKyAgICAgICAgICAgICJtb3ZxICUlbW0yLCAxNiglJWVkaSwlJWVkeCwpIFxuXHQiIC8vIHdyaXRlIFJhdyh4KSBmb3IgM3JkIDggYnl0ZXMKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMiwgJSVtbTMgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAzMiglJWVkaSwlJWVkeCwpLCAlJW1tNCBcblx0IiAvLyBsb2FkIFN1Yih4KSBmb3IgNXRoIDggYnl0ZXMKKyAgICAgICAgICAgICJtb3ZxICUlbW0zLCAyNCglJWVkaSwlJWVkeCwpIFxuXHQiIC8vIHdyaXRlIFJhdyh4KSBmb3IgNHRoIDggYnl0ZXMKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMywgJSVtbTQgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSA0MCglJWVkaSwlJWVkeCwpLCAlJW1tNSBcblx0IiAvLyBsb2FkIFN1Yih4KSBmb3IgNnRoIDggYnl0ZXMKKyAgICAgICAgICAgICJtb3ZxICUlbW00LCAzMiglJWVkaSwlJWVkeCwpIFxuXHQiIC8vIHdyaXRlIFJhdyh4KSBmb3IgNXRoIDggYnl0ZXMKKyAgICAgICAgICAgICJwYWRkYiAlJW1tNCwgJSVtbTUgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSA0OCglJWVkaSwlJWVkeCwpLCAlJW1tNiBcblx0IiAvLyBsb2FkIFN1Yih4KSBmb3IgN3RoIDggYnl0ZXMKKyAgICAgICAgICAgICJtb3ZxICUlbW01LCA0MCglJWVkaSwlJWVkeCwpIFxuXHQiIC8vIHdyaXRlIFJhdyh4KSBmb3IgNnRoIDggYnl0ZXMKKyAgICAgICAgICAgICJwYWRkYiAlJW1tNSwgJSVtbTYgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92cSA1NiglJWVkaSwlJWVkeCwpLCAlJW1tNyBcblx0IiAvLyBsb2FkIFN1Yih4KSBmb3IgOHRoIDggYnl0ZXMKKyAgICAgICAgICAgICJtb3ZxICUlbW02LCA0OCglJWVkaSwlJWVkeCwpIFxuXHQiIC8vIHdyaXRlIFJhdyh4KSBmb3IgN3RoIDggYnl0ZXMKKyAgICAgICAgICAgICJhZGRsICQ2NCwgJSVlZHggICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAicGFkZGIgJSVtbTYsICUlbW03ICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgImNtcGwgJSVlY3gsICUlZWR4ICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJtb3ZxICUlbW03LCAtOCglJWVkaSwlJWVkeCwpIFxuXHQiIC8vIHdyaXRlIFJhdyh4KSBmb3IgOHRoIDggYnl0ZXMKKyAgICAgICAgICAgICJqYiBzdWJfOGxwICAgICAgICAgICAgICAgICAgIFxuXHQiCisKKyAgICAgICAgICAgICJjbXBsIF9NTVhMZW5ndGgsICUlZWR4ICAgICAgIFxuXHQiCisgICAgICAgICAgICAiam5iIHN1Yl84bHQ4ICAgICAgICAgICAgICAgICBcblx0IgorCisgICAgICAgICAic3ViXzhscEE6ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgIm1vdnEgKCUlZWRpLCUlZWR4LCksICUlbW0wICAgXG5cdCIKKyAgICAgICAgICAgICJhZGRsICQ4LCAlJWVkeCAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAicGFkZGIgJSVtbTcsICUlbW0wICAgICAgICAgICBcblx0IgorICAgICAgICAgICAgImNtcGwgX01NWExlbmd0aCwgJSVlZHggICAgICAgXG5cdCIKKyAgICAgICAgICAgICJtb3ZxICUlbW0wLCAtOCglJWVkaSwlJWVkeCwpIFxuXHQiIC8vIC04IHRvIG9mZnNldCBlYXJseSBhZGRsIGVkeAorICAgICAgICAgICAgIm1vdnEgJSVtbTAsICUlbW03ICAgICAgICAgICAgXG5cdCIgLy8gbW92ZSBjYWxjdWxhdGVkIFJhdyh4KSBkYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgdG8gbW0xIHRvIGJlIG5ldyBSYXcoeC1icHApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgZm9yIG5leHQgbG9vcAorICAgICAgICAgICAgImpiIHN1Yl84bHBBICAgICAgICAgICAgICAgICAgXG5cdCIKKworICAgICAgICAgInN1Yl84bHQ4OiAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKworICAgICAgICAgICAgOiAiPWEiIChkdW1teV92YWx1ZV9hKSwgICAvLyAwICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQorICAgICAgICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKSAgICAvLyAxCisKKyAgICAgICAgICAgIDogIjAiIChicHApLCAgICAgICAgICAgICAgLy8gZWF4ICAgIC8vIGlucHV0IHJlZ3MKKyAgICAgICAgICAgICAgIjEiIChyb3cpICAgICAgICAgICAgICAgLy8gZWRpCisKKyAgICAgICAgICAgIDogIiVlY3giLCAiJWVkeCIsICIlZXNpIiAgICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdAorI2lmIDAgIC8qIE1NWCByZWdzICglbW0wLCBldGMuKSBub3Qgc3VwcG9ydGVkIGJ5IGdjYyAyLjcuMi4zIG9yIGVnY3MgMS4xICovCisgICAgICAgICAgICAsICIlbW0wIiwgIiVtbTEiLCAiJW1tMiIsICIlbW0zIiwgIiVtbTQiLCAiJW1tNSIsICIlbW02IiwgIiVtbTciCisjZW5kaWYKICAgICAgICAgICk7CiAgICAgICB9CiAgICAgICBicmVhazsKIAotICAgICAgZGVmYXVsdDogICAgICAgICAgICAgICAgLy8gYnBwIGdyZWF0ZXIgdGhhbiA4IGJ5dGVzCisgICAgICBkZWZhdWx0OiAgICAgICAgICAgICAgICAvLyBicHAgZ3JlYXRlciB0aGFuIDggYnl0ZXMJR1JSIEJPR1VTCiAgICAgICB7Ci0gICAgICAgICBfX2FzbV9fICgKLSAgICAgICAgICAgICJtb3ZsIF9kaWYsICUlZWJ4ICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZsICUlZWRpLCAlJWVzaSAgICAgICAgICAgXG5cdCIgLy8gbHAgPSByb3cKLSAgICAgICAgICAgICJhZGRsIGJwcCwgJSVlZGkgICAgICAgICAgICAgXG5cdCIgLy8gcnAgPSByb3cgKyBicHAKLSAgICAgICAgICJzdWJfQWxwOiAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZxICglJWVkaSwlJWVieCwpLCAlJW1tMCAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZxICglJWVzaSwlJWVieCwpLCAlJW1tMSAgXG5cdCIKLSAgICAgICAgICAgICJhZGRsICQ4LCAlJWVieCAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICJjbXBsIF9NTVhMZW5ndGgsICUlZWJ4ICAgICAgXG5cdCIKLSAgICAgICAgICAgICJtb3ZxICUlbW0wLCAtOCglJWVkaSwlJWVieCwpIFxuXHQiIC8vIG1vdiBkb2VzIG5vdCBhZmZlY3QgZmxhZ3M7IC04IHRvIG9mZnNldAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgYWRkIGVieAotICAgICAgICAgICAgImpiIHN1Yl9BbHAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgICAgICAgIm1vdmwgX2RpZiwgJSVlZHggICAgICAgICAgICAgXG5cdCIKKy8vIHByZWxvYWQgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAibW92bCAlJWVkaSwgJSVlc2kgICAgICAgICAgICBcblx0IiAvLyBscCA9IHJvdworLy8gcHJlbG9hZCAgIm1vdmwgYnBwLCAlJWVheCAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJhZGRsICUlZWF4LCAlJWVkaSAgICAgICAgICAgIFxuXHQiIC8vIHJwID0gcm93ICsgYnBwCiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBvdXRwdXQgcmVncy92YXJzIGdvIGhlcmUsIGUuZy46ICAiPW0iIChtZW1vcnlfdmFyKQorICAgICAgICAgInN1Yl9BbHA6ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJtb3ZxICglJWVkaSwlJWVkeCwpLCAlJW1tMCAgIFxuXHQiCisgICAgICAgICAgICAibW92cSAoJSVlc2ksJSVlZHgsKSwgJSVtbTEgICBcblx0IgorICAgICAgICAgICAgImFkZGwgJDgsICUlZWR4ICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgIFxuXHQiCisgICAgICAgICAgICAiY21wbCBfTU1YTGVuZ3RoLCAlJWVkeCAgICAgICBcblx0IgorICAgICAgICAgICAgIm1vdnEgJSVtbTAsIC04KCUlZWRpLCUlZWR4LCkgXG5cdCIgLy8gbW92IGRvZXMgbm90IGFmZmVjdCBmbGFnczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAtOCB0byBvZmZzZXQgYWRkbCBlZHgKKyAgICAgICAgICAgICJqYiBzdWJfQWxwICAgICAgICAgICAgICAgICAgIFxuXHQiCiAKLSAgICAgICAgICAgIDogLy8gRklYQVNNOiBpbnB1dCByZWdzLCBlLmcuOiAgImMiIChjb3VudCksICJTIiAoc3JjKSwgIkQiIChkZXN0KQorICAgICAgICAgICAgOiAiPWEiIChkdW1teV92YWx1ZV9hKSwgICAvLyAwICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQorICAgICAgICAgICAgICAiPUQiIChkdW1teV92YWx1ZV9EKSAgICAvLyAxCiAKLSAgICAgICAgICAgIDogIiVlYngiLCAiJWVkaSIsICIlZXNpIiwgIiVtbTAiLCAiJW1tMSIgLy8gQ0hFQ0tBU006IGNsb2JiZXIgbGlzdAorICAgICAgICAgICAgOiAiMCIgKGJwcCksICAgICAgICAgICAgICAvLyBlYXggICAgLy8gaW5wdXQgcmVncworICAgICAgICAgICAgICAiMSIgKHJvdykgICAgICAgICAgICAgICAvLyBlZGkKKworICAgICAgICAgICAgOiAiJWVkeCIsICIlZXNpIiAgICAgICAgICAgICAgICAgICAgLy8gY2xvYmJlciBsaXN0CisjaWYgMCAgLyogTU1YIHJlZ3MgKCVtbTAsIGV0Yy4pIG5vdCBzdXBwb3J0ZWQgYnkgZ2NjIDIuNy4yLjMgb3IgZWdjcyAxLjEgKi8KKyAgICAgICAgICAgICwgIiVtbTAiLCAiJW1tMSIKKyNlbmRpZgogICAgICAgICAgKTsKICAgICAgIH0KICAgICAgIGJyZWFrOwogCi0gICB9IC8vIGVuZCBzd2l0Y2ggKCBicHAgKQorICAgfSAvLyBlbmQgc3dpdGNoIChicHApCiAKLSAgIF9fYXNtX18gKAotICAgICAgIm1vdmwgX01NWExlbmd0aCwgJSVlYnggICAgICBcblx0IgotICAgICAgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICBcblx0IgotICAgICAgImNtcGwgX0Z1bGxMZW5ndGgsICUlZWJ4ICAgICBcblx0IgotICAgICAgImpuYiBzdWJfZW5kICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgIm1vdmwgJSVlZGksICUlZXNpICAgICAgICAgICBcblx0IiAvLyBscCA9IHJvdwotICAgICAgInhvcmwgJSVlYXgsICUlZWF4ICAgICAgICAgICBcblx0IgotICAgICAgImFkZGwgYnBwLCAlJWVkaSAgICAgICAgICAgICBcblx0IiAvLyBycCA9IHJvdyArIGJwcAotICAgInN1Yl9scDI6ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgIm1vdmIgKCUlZXNpLCUlZWJ4LCksICUlYWwgICBcblx0IgotICAgICAgImFkZGIgJSVhbCwgKCUlZWRpLCUlZWJ4LCkgICBcblx0IgotICAgICAgImluY2wgJSVlYnggICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgImNtcGwgX0Z1bGxMZW5ndGgsICUlZWJ4ICAgICBcblx0IgotICAgICAgImpiIHN1Yl9scDIgICAgICAgICAgICAgICAgICBcblx0IgotICAgInN1Yl9lbmQ6ICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgImVtbXMgICAgICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBlbmQgTU1YIGluc3RydWN0aW9ucworICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgIm1vdmwgX01NWExlbmd0aCwgJSVlZHggICAgICAgXG5cdCIKKy8vcHJlICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgIFxuXHQiCisgICAgICAiY21wbCBfRnVsbExlbmd0aCwgJSVlZHggICAgICBcblx0IgorICAgICAgImpuYiBzdWJfZW5kICAgICAgICAgICAgICAgICAgXG5cdCIKIAotICAgICAgOiAvLyBGSVhBU006IG91dHB1dCByZWdzL3ZhcnMgZ28gaGVyZSwgZS5nLjogICI9bSIgKG1lbW9yeV92YXIpCisgICAgICAibW92bCAlJWVkaSwgJSVlc2kgICAgICAgICAgICBcblx0IiAvLyBscCA9IHJvdworLy9wcmUgIm1vdmwgYnBwLCAlJWVheCAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICJhZGRsICUlZWF4LCAlJWVkaSAgICAgICAgICAgIFxuXHQiIC8vIHJwID0gcm93ICsgYnBwCisgICAgICAieG9ybCAlJWVheCwgJSVlYXggICAgICAgICAgICBcblx0IgogCi0gICAgICA6IC8vIEZJWEFTTTogaW5wdXQgcmVncywgZS5nLjogICJjIiAoY291bnQpLCAiUyIgKHNyYyksICJEIiAoZGVzdCkKKyAgICJzdWJfbHAyOiAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAibW92YiAoJSVlc2ksJSVlZHgsKSwgJSVhbCAgICBcblx0IgorICAgICAgImFkZGIgJSVhbCwgKCUlZWRpLCUlZWR4LCkgICAgXG5cdCIKKyAgICAgICJpbmNsICUlZWR4ICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAiY21wbCBfRnVsbExlbmd0aCwgJSVlZHggICAgICBcblx0IgorICAgICAgImpiIHN1Yl9scDIgICAgICAgICAgICAgICAgICAgXG5cdCIKIAotICAgICAgOiAiJWVheCIsICIlZWJ4IiwgIiVlZGkiLCAiJWVzaSIgLy8gQ0hFQ0tBU006IGNsb2JiZXIgbGlzdAorICAgInN1Yl9lbmQ6ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIGVuZCBNTVggaW5zdHJ1Y3Rpb25zCisKKyAgICAgIDogIj1hIiAoZHVtbXlfdmFsdWVfYSksICAgLy8gMCAgICAgIC8vIG91dHB1dCByZWdzIChkdW1teSkKKyAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkgICAgLy8gMQorCisgICAgICA6ICIwIiAoYnBwKSwgICAgICAgICAgICAgIC8vIGVheCAgICAvLyBpbnB1dCByZWdzCisgICAgICAgICIxIiAocm93KSAgICAgICAgICAgICAgIC8vIGVkaQorCisgICAgICA6ICIlZWR4IiwgIiVlc2kiICAgICAgICAgICAgICAgICAgICAvLyBjbG9iYmVyIGxpc3QKICAgICk7Ci0jZW5kaWYgLyogR1JSX0dDQ19NTVhfQ09OVkVSVEVEICovCi19CisKK30gLy8gZW5kIG9mIHBuZ19yZWFkX2ZpbHRlcl9yb3dfbW14X3N1YigpCisKKworCisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ly8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgUCBOIEcgXyBSIEUgQSBEIF8gRiBJIEwgVCBFIFIgXyBSIE8gVyBfIE0gTSBYIF8gVSBQICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ly8KIAogLy8gT3B0aW1pemVkIGNvZGUgZm9yIFBORyBVcCBmaWx0ZXIgZGVjb2Rlcgotdm9pZCAvKiBQUklWQVRFICovCisKK3N0YXRpYyB2b2lkIC8qIFBSSVZBVEUgKi8KIHBuZ19yZWFkX2ZpbHRlcl9yb3dfbW14X3VwKHBuZ19yb3dfaW5mb3Agcm93X2luZm8sIHBuZ19ieXRlcCByb3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbmdfYnl0ZXAgcHJldl9yb3cpCiB7Ci0jaWZkZWYgR1JSX0dDQ19NTVhfQ09OVkVSVEVECiAgICBwbmdfdWludF8zMiBsZW47CisgICBpbnQgZHVtbXlfdmFsdWVfZDsgICAvLyBmaXggJ2ZvcmJpZGRlbiByZWdpc3RlciAzIChkeCkgd2FzIHNwaWxsZWQnIGVycm9yCisgICBpbnQgZHVtbXlfdmFsdWVfUzsKKyAgIGludCBkdW1teV92YWx1ZV9EOwogCi0gICBsZW4gPSByb3dfaW5mby0+cm93Ynl0ZXM7ICAgICAgIC8vICMgb2YgYnl0ZXMgdG8gZmlsdGVyCi0gICBfX2FzbV9fICgKLSAgICAgICJtb3ZsIHJvdywgJSVlZGkgICAgICAgICAgICAgXG5cdCIKKyAgIGxlbiA9IHJvd19pbmZvLT5yb3dieXRlczsgICAgICAgICAgICAgIC8vIG51bWJlciBvZiBieXRlcyB0byBmaWx0ZXIKKworICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorLy9wcmUgIm1vdmwgcm93LCAlJWVkaSAgICAgICAgICAgICAgXG5cdCIKICAgICAgIC8vIGdldCAjIG9mIGJ5dGVzIHRvIGFsaWdubWVudAotICAgICAgIm1vdmwgJSVlZGksICUlZWN4ICAgICAgICAgICBcblx0IgotICAgICAgInhvcmwgJSVlYngsICUlZWJ4ICAgICAgICAgICBcblx0IgotICAgICAgImFkZGwgJDB4NywgJSVlY3ggICAgICAgICAgICBcblx0IgotICAgICAgInhvcmwgJSVlYXgsICUlZWF4ICAgICAgICAgICBcblx0IgotICAgICAgImFuZGwgJDB4ZmZmZmZmZjgsICUlZWN4ICAgICBcblx0IgotICAgICAgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICBcblx0IgotICAgICAgInN1YmwgJSVlZGksICUlZWN4ICAgICAgICAgICBcblx0IgotICAgICAgImp6IHVwX2dvICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgLy8gZml4IGFsaWdubWVudAotICAgInVwX2xwMTogICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgIm1vdmIgKCUlZWRpLCUlZWJ4LCksICUlYWwgICBcblx0IgotICAgICAgImFkZGIgKCUlZXNpLCUlZWJ4LCksICUlYWwgICBcblx0IgotICAgICAgImluY2wgJSVlYnggICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgImNtcGwgJSVlY3gsICUlZWJ4ICAgICAgICAgICBcblx0IgotICAgICAgIm1vdmIgJSVhbCwgLTEoJSVlZGksJSVlYngsKSBcblx0IiAvLyBtb3YgZG9lcyBub3QgYWZmZWN0IGZsYWdzOyAtMSB0byBvZmZzZXQgaW5jIGVieAotICAgICAgImpiIHVwX2xwMSAgICAgICAgICAgICAgICAgICBcblx0IgotICAgInVwX2dvOiAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgIm1vdmwgbGVuLCAlJWVjeCAgICAgICAgICAgICBcblx0IgotICAgICAgIm1vdmwgJSVlY3gsICUlZWR4ICAgICAgICAgICBcblx0IgotICAgICAgInN1YmwgJSVlYngsICUlZWR4ICAgICAgICAgICBcblx0IiAvLyBzdWJ0cmFjdCBhbGlnbm1lbnQgZml4Ci0gICAgICAiYW5kbCAkMHgwMDAwMDAzZiwgJSVlZHggICAgIFxuXHQiIC8vIGNhbGMgYnl0ZXMgb3ZlciBtdWx0IG9mIDY0Ci0gICAgICAic3VibCAlJWVkeCwgJSVlY3ggICAgICAgICAgIFxuXHQiIC8vIGRyb3Agb3ZlciBieXRlcyBmcm9tIGxlbmd0aAotICAgICAgLy8gVW5yb2xsZWQgbG9vcCAtIHVzZSBhbGwgTU1YIHJlZ2lzdGVycyBhbmQgaW50ZXJsZWF2ZSB0byByZWR1Y2UKKyAgICAgICJtb3ZsICUlZWRpLCAlJWVjeCAgICAgICAgICAgIFxuXHQiCisgICAgICAieG9ybCAlJWVieCwgJSVlYnggICAgICAgICAgICBcblx0IgorICAgICAgImFkZGwgJDB4NywgJSVlY3ggICAgICAgICAgICAgXG5cdCIKKyAgICAgICJ4b3JsICUlZWF4LCAlJWVheCAgICAgICAgICAgIFxuXHQiCisgICAgICAiYW5kbCAkMHhmZmZmZmZmOCwgJSVlY3ggICAgICBcblx0IgorLy9wcmUgIm1vdmwgcHJldl9yb3csICUlZXNpICAgICAgICAgXG5cdCIKKyAgICAgICJzdWJsICUlZWRpLCAlJWVjeCAgICAgICAgICAgIFxuXHQiCisgICAgICAianogdXBfZ28gICAgICAgICAgICAgICAgICAgICBcblx0IgorCisgICAidXBfbHAxOiAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyBmaXggYWxpZ25tZW50CisgICAgICAibW92YiAoJSVlZGksJSVlYngsKSwgJSVhbCAgICBcblx0IgorICAgICAgImFkZGIgKCUlZXNpLCUlZWJ4LCksICUlYWwgICAgXG5cdCIKKyAgICAgICJpbmNsICUlZWJ4ICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAiY21wbCAlJWVjeCwgJSVlYnggICAgICAgICAgICBcblx0IgorICAgICAgIm1vdmIgJSVhbCwgLTEoJSVlZGksJSVlYngsKSAgXG5cdCIgLy8gbW92IGRvZXMgbm90IGFmZmVjdCBmbGFnczsgLTEgdG8KKyAgICAgICJqYiB1cF9scDEgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vICBvZmZzZXQgaW5jbCBlYngKKworICAgInVwX2dvOiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKy8vcHJlICJtb3ZsIGxlbiwgJSVlZHggICAgICAgICAgICAgIFxuXHQiCisgICAgICAibW92bCAlJWVkeCwgJSVlY3ggICAgICAgICAgICBcblx0IgorICAgICAgInN1YmwgJSVlYngsICUlZWR4ICAgICAgICAgICAgXG5cdCIgLy8gc3VidHJhY3QgYWxpZ25tZW50IGZpeAorICAgICAgImFuZGwgJDB4MDAwMDAwM2YsICUlZWR4ICAgICAgXG5cdCIgLy8gY2FsYyBieXRlcyBvdmVyIG11bHQgb2YgNjQKKyAgICAgICJzdWJsICUlZWR4LCAlJWVjeCAgICAgICAgICAgIFxuXHQiIC8vIGRyb3Agb3ZlciBieXRlcyBmcm9tIGxlbmd0aAorCisgICAgICAvLyB1bnJvbGxlZCBsb29wIC0gdXNlIGFsbCBNTVggcmVnaXN0ZXJzIGFuZCBpbnRlcmxlYXZlIHRvIHJlZHVjZQogICAgICAgLy8gbnVtYmVyIG9mIGJyYW5jaCBpbnN0cnVjdGlvbnMgKGxvb3BzKSBhbmQgcmVkdWNlIHBhcnRpYWwgc3RhbGxzCi0gICAidXBfbG9vcDogICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAibW92cSAoJSVlc2ksJSVlYngsKSwgJSVtbTEgIFxuXHQiCi0gICAgICAibW92cSAoJSVlZGksJSVlYngsKSwgJSVtbTAgIFxuXHQiCi0gICAgICAibW92cSA4KCUlZXNpLCUlZWJ4LCksICUlbW0zIFxuXHQiCi0gICAgICAicGFkZGIgJSVtbTEsICUlbW0wICAgICAgICAgIFxuXHQiCi0gICAgICAibW92cSA4KCUlZWRpLCUlZWJ4LCksICUlbW0yIFxuXHQiCi0gICAgICAibW92cSAlJW1tMCwgKCUlZWRpLCUlZWJ4LCkgIFxuXHQiCi0gICAgICAicGFkZGIgJSVtbTMsICUlbW0yICAgICAgICAgIFxuXHQiCisgICAidXBfbG9vcDogICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgIm1vdnEgKCUlZXNpLCUlZWJ4LCksICUlbW0xICAgXG5cdCIKKyAgICAgICJtb3ZxICglJWVkaSwlJWVieCwpLCAlJW1tMCAgIFxuXHQiCisgICAgICAibW92cSA4KCUlZXNpLCUlZWJ4LCksICUlbW0zICBcblx0IgorICAgICAgInBhZGRiICUlbW0xLCAlJW1tMCAgICAgICAgICAgXG5cdCIKKyAgICAgICJtb3ZxIDgoJSVlZGksJSVlYngsKSwgJSVtbTIgIFxuXHQiCisgICAgICAibW92cSAlJW1tMCwgKCUlZWRpLCUlZWJ4LCkgICBcblx0IgorICAgICAgInBhZGRiICUlbW0zLCAlJW1tMiAgICAgICAgICAgXG5cdCIKICAgICAgICJtb3ZxIDE2KCUlZXNpLCUlZWJ4LCksICUlbW01IFxuXHQiCi0gICAgICAibW92cSAlJW1tMiwgOCglJWVkaSwlJWVieCwpIFxuXHQiCisgICAgICAibW92cSAlJW1tMiwgOCglJWVkaSwlJWVieCwpICBcblx0IgogICAgICAgIm1vdnEgMTYoJSVlZGksJSVlYngsKSwgJSVtbTQgXG5cdCIKICAgICAgICJtb3ZxIDI0KCUlZXNpLCUlZWJ4LCksICUlbW03IFxuXHQiCi0gICAgICAicGFkZGIgJSVtbTUsICUlbW00ICAgICAgICAgIFxuXHQiCisgICAgICAicGFkZGIgJSVtbTUsICUlbW00ICAgICAgICAgICBcblx0IgogICAgICAgIm1vdnEgMjQoJSVlZGksJSVlYngsKSwgJSVtbTYgXG5cdCIKICAgICAgICJtb3ZxICUlbW00LCAxNiglJWVkaSwlJWVieCwpIFxuXHQiCi0gICAgICAicGFkZGIgJSVtbTcsICUlbW02ICAgICAgICAgIFxuXHQiCisgICAgICAicGFkZGIgJSVtbTcsICUlbW02ICAgICAgICAgICBcblx0IgogICAgICAgIm1vdnEgMzIoJSVlc2ksJSVlYngsKSwgJSVtbTEgXG5cdCIKICAgICAgICJtb3ZxICUlbW02LCAyNCglJWVkaSwlJWVieCwpIFxuXHQiCiAgICAgICAibW92cSAzMiglJWVkaSwlJWVieCwpLCAlJW1tMCBcblx0IgogICAgICAgIm1vdnEgNDAoJSVlc2ksJSVlYngsKSwgJSVtbTMgXG5cdCIKLSAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgXG5cdCIKKyAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgIFxuXHQiCiAgICAgICAibW92cSA0MCglJWVkaSwlJWVieCwpLCAlJW1tMiBcblx0IgogICAgICAgIm1vdnEgJSVtbTAsIDMyKCUlZWRpLCUlZWJ4LCkgXG5cdCIKLSAgICAgICJwYWRkYiAlJW1tMywgJSVtbTIgICAgICAgICAgXG5cdCIKKyAgICAgICJwYWRkYiAlJW1tMywgJSVtbTIgICAgICAgICAgIFxuXHQiCiAgICAgICAibW92cSA0OCglJWVzaSwlJWVieCwpLCAlJW1tNSBcblx0IgogICAgICAgIm1vdnEgJSVtbTIsIDQwKCUlZWRpLCUlZWJ4LCkgXG5cdCIKICAgICAgICJtb3ZxIDQ4KCUlZWRpLCUlZWJ4LCksICUlbW00IFxuXHQiCiAgICAgICAibW92cSA1NiglJWVzaSwlJWVieCwpLCAlJW1tNyBcblx0IgotICAgICAgInBhZGRiICUlbW01LCAlJW1tNCAgICAgICAgICBcblx0IgorICAgICAgInBhZGRiICUlbW01LCAlJW1tNCAgICAgICAgICAgXG5cdCIKICAgICAgICJtb3ZxIDU2KCUlZWRpLCUlZWJ4LCksICUlbW02IFxuXHQiCiAgICAgICAibW92cSAlJW1tNCwgNDgoJSVlZGksJSVlYngsKSBcblx0IgotICAgICAgImFkZGwgJDY0LCAlJWVieCAgICAgICAgICAgICBcblx0IgotICAgICAgInBhZGRiICUlbW03LCAlJW1tNiAgICAgICAgICBcblx0IgotICAgICAgImNtcGwgJSVlY3gsICUlZWJ4ICAgICAgICAgICBcblx0IgorICAgICAgImFkZGwgJDY0LCAlJWVieCAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICJwYWRkYiAlJW1tNywgJSVtbTYgICAgICAgICAgIFxuXHQiCisgICAgICAiY21wbCAlJWVjeCwgJSVlYnggICAgICAgICAgICBcblx0IgogICAgICAgIm1vdnEgJSVtbTYsIC04KCUlZWRpLCUlZWJ4LCkgXG5cdCIgLy8gKCs1Niltb3ZxIGRvZXMgbm90IGFmZmVjdCBmbGFnczsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtOCB0byBvZmZzZXQgYWRkIGVieAotICAgICAgImpiIHVwX2xvb3AgICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgImpiIHVwX2xvb3AgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gIC04IHRvIG9mZnNldCBhZGRsIGVieAogCi0gICAgICAiY21wbCAkMCwgJSVlZHggICAgICAgICAgICAgIFxuXHQiIC8vIFRlc3QgZm9yIGJ5dGVzIG92ZXIgbXVsdCBvZiA2NAotICAgICAgImp6IHVwX2VuZCAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgImNtcGwgJDAsICUlZWR4ICAgICAgICAgICAgICAgXG5cdCIgLy8gdGVzdCBmb3IgYnl0ZXMgb3ZlciBtdWx0IG9mIDY0CisgICAgICAianogdXBfZW5kICAgICAgICAgICAgICAgICAgICBcblx0IgogCisgICAgICAiY21wbCAkOCwgJSVlZHggICAgICAgICAgICAgICBcblx0IiAvLyB0ZXN0IGZvciBsZXNzIHRoYW4gOCBieXRlcworICAgICAgImpiIHVwX2x0OCAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gIFthZGRlZCBieSBsY3JlZXZlQG5ldGlucy5uZXRdCiAKLSAgICAgIC8vIDIgbGluZXMgYWRkZWQgYnkgbGNyZWV2ZUBuZXRpbnMubmV0Ci0gICAgICAvLyAobWFpbCAxMSBKdWwgOTggaW4gcG5nLWltcGxlbWVudCBsaXN0KQotICAgICAgImNtcGwgJDgsICUlZWR4ICAgICAgICAgICAgICBcblx0IiAvL3Rlc3QgZm9yIGxlc3MgdGhhbiA4IGJ5dGVzCi0gICAgICAiamIgdXBfbHQ4ICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAiYWRkbCAlJWVkeCwgJSVlY3ggICAgICAgICAgICBcblx0IgorICAgICAgImFuZGwgJDB4MDAwMDAwMDcsICUlZWR4ICAgICAgXG5cdCIgLy8gY2FsYyBieXRlcyBvdmVyIG11bHQgb2YgOAorICAgICAgInN1YmwgJSVlZHgsICUlZWN4ICAgICAgICAgICAgXG5cdCIgLy8gZHJvcCBvdmVyIGJ5dGVzIGZyb20gbGVuZ3RoCisgICAgICAianogdXBfbHQ4ICAgICAgICAgICAgICAgICAgICBcblx0IgogCisgICAidXBfbHBBOiAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IiAvLyB1c2UgTU1YIHJlZ3MgdG8gdXBkYXRlIDggYnl0ZXMgc2ltLgorICAgICAgIm1vdnEgKCUlZXNpLCUlZWJ4LCksICUlbW0xICAgXG5cdCIKKyAgICAgICJtb3ZxICglJWVkaSwlJWVieCwpLCAlJW1tMCAgIFxuXHQiCisgICAgICAiYWRkbCAkOCwgJSVlYnggICAgICAgICAgICAgICBcblx0IgorICAgICAgInBhZGRiICUlbW0xLCAlJW1tMCAgICAgICAgICAgXG5cdCIKKyAgICAgICJjbXBsICUlZWN4LCAlJWVieCAgICAgICAgICAgIFxuXHQiCisgICAgICAibW92cSAlJW1tMCwgLTgoJSVlZGksJSVlYngsKSBcblx0IiAvLyBtb3ZxIGRvZXMgbm90IGFmZmVjdCBmbGFnczsgLTggdG8KKyAgICAgICJqYiB1cF9scEEgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vICBvZmZzZXQgYWRkIGVieAorICAgICAgImNtcGwgJDAsICUlZWR4ICAgICAgICAgICAgICAgXG5cdCIgLy8gdGVzdCBmb3IgYnl0ZXMgb3ZlciBtdWx0IG9mIDgKKyAgICAgICJqeiB1cF9lbmQgICAgICAgICAgICAgICAgICAgIFxuXHQiCiAKLSAgICAgICJhZGRsICUlZWR4LCAlJWVjeCAgICAgICAgICAgXG5cdCIKLSAgICAgICJhbmRsICQweDAwMDAwMDA3LCAlJWVkeCAgICAgXG5cdCIgLy8gY2FsYyBieXRlcyBvdmVyIG11bHQgb2YgOAotICAgICAgInN1YmwgJSVlZHgsICUlZWN4ICAgICAgICAgICBcblx0IiAvLyBkcm9wIG92ZXIgYnl0ZXMgZnJvbSBsZW5ndGgKLSAgICAgICJqeiB1cF9sdDggICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgIC8vIExvb3AgdXNpbmcgTU1YIHJlZ2lzdGVycyBtbTAgJiBtbTEgdG8gdXBkYXRlIDggYnl0ZXMgc2ltdWx0YW5lb3VzbHkKLSAgICJ1cF9scEE6ICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICJtb3ZxICglJWVzaSwlJWVieCwpLCAlJW1tMSAgXG5cdCIKLSAgICAgICJtb3ZxICglJWVkaSwlJWVieCwpLCAlJW1tMCAgXG5cdCIKLSAgICAgICJhZGRsICQ4LCAlJWVieCAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICJwYWRkYiAlJW1tMSwgJSVtbTAgICAgICAgICAgXG5cdCIKLSAgICAgICJjbXBsICUlZWN4LCAlJWVieCAgICAgICAgICAgXG5cdCIKLSAgICAgICJtb3ZxICUlbW0wLCAtOCglJWVkaSwlJWVieCwpIFxuXHQiIC8vIG1vdnEgZG9lcyBub3QgYWZmZWN0IGZsYWdzOyAtOCB0byBvZmZzZXQgYWRkIGVieAotICAgICAgImpiIHVwX2xwQSAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgImNtcGwgJDAsICUlZWR4ICAgICAgICAgICAgICBcblx0IiAvLyBUZXN0IGZvciBieXRlcyBvdmVyIG11bHQgb2YgOAotICAgICAgImp6IHVwX2VuZCAgICAgICAgICAgICAgICAgICBcblx0IgotICAgInVwX2x0ODogICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgInhvcmwgJSVlYXgsICUlZWF4ICAgICAgICAgICBcblx0IgotICAgICAgImFkZGwgJSVlZHgsICUlZWN4ICAgICAgICAgICBcblx0IiAvLyBtb3ZlIG92ZXIgYnl0ZSBjb3VudCBpbnRvIGNvdW50ZXIKLSAgICAgIC8vIExvb3AgdXNpbmcgeDg2IHJlZ2lzdGVycyB0byB1cGRhdGUgcmVtYWluaW5nIGJ5dGVzCi0gICAidXBfbHAyOiAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAibW92YiAoJSVlZGksJSVlYngsKSwgJSVhbCAgIFxuXHQiCi0gICAgICAiYWRkYiAoJSVlc2ksJSVlYngsKSwgJSVhbCAgIFxuXHQiCi0gICAgICAiaW5jbCAlJWVieCAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAiY21wbCAlJWVjeCwgJSVlYnggICAgICAgICAgIFxuXHQiCi0gICAgICAibW92YiAlJWFsLCAtMSglJWVkaSwlJWVieCwpIFxuXHQiIC8vIG1vdiBkb2VzIG5vdCBhZmZlY3QgZmxhZ3M7IC0xIHRvIG9mZnNldCBpbmMgZWJ4Ci0gICAgICAiamIgdXBfbHAyICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAidXBfZW5kOiAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAvLyBDb252ZXJzaW9uIG9mIGZpbHRlcmVkIHJvdyBjb21wbGV0ZWQKLSAgICAgICJlbW1zICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gRW5kIE1NWCBpbnN0cnVjdGlvbnM7IHByZXAgZm9yIHBvc3NpYmxlIEZQIGluc3Rycy4KKyAgICJ1cF9sdDg6ICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAieG9ybCAlJWVheCwgJSVlYXggICAgICAgICAgICBcblx0IgorICAgICAgImFkZGwgJSVlZHgsICUlZWN4ICAgICAgICAgICAgXG5cdCIgLy8gbW92ZSBvdmVyIGJ5dGUgY291bnQgaW50byBjb3VudGVyCiAKLSAgICAgIDogLy8gRklYQVNNOiBvdXRwdXQgcmVncy92YXJzIGdvIGhlcmUsIGUuZy46ICAiPW0iIChtZW1vcnlfdmFyKQorICAgInVwX2xwMjogICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gdXNlIHg4NiByZWdzIGZvciByZW1haW5pbmcgYnl0ZXMKKyAgICAgICJtb3ZiICglJWVkaSwlJWVieCwpLCAlJWFsICAgIFxuXHQiCisgICAgICAiYWRkYiAoJSVlc2ksJSVlYngsKSwgJSVhbCAgICBcblx0IgorICAgICAgImluY2wgJSVlYnggICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICJjbXBsICUlZWN4LCAlJWVieCAgICAgICAgICAgIFxuXHQiCisgICAgICAibW92YiAlJWFsLCAtMSglJWVkaSwlJWVieCwpICBcblx0IiAvLyBtb3YgZG9lcyBub3QgYWZmZWN0IGZsYWdzOyAtMSB0bworICAgICAgImpiIHVwX2xwMiAgICAgICAgICAgICAgICAgICAgXG5cdCIgLy8gIG9mZnNldCBpbmMgZWJ4CiAKLSAgICAgIDogLy8gRklYQVNNOiBpbnB1dCByZWdzLCBlLmcuOiAgImMiIChjb3VudCksICJTIiAoc3JjKSwgIkQiIChkZXN0KQorICAgInVwX2VuZDogICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICJFTU1TICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiIC8vIGNvbnZlcnNpb24gb2YgZmlsdGVyZWQgcm93IGNvbXBsZXRlCiAKLSAgICAgIDogIiVlYXgiLCAiJWVieCIsICIlZWN4IiwgIiVlZHgiLCAiJWVkaSIsICIlZXNpIiwgIiVtbTAiLCAiJW1tMSIsICIlbW0yIiwgIiVtbTMiLCAiJW1tNCIsICIlbW01IiwgIiVtbTYiLCAiJW1tNyIgLy8gQ0hFQ0tBU006IGNsb2JiZXIgbGlzdAorICAgICAgOiAiPWQiIChkdW1teV92YWx1ZV9kKSwgICAvLyAwICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQorICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwgICAvLyAxCisgICAgICAgICI9RCIgKGR1bW15X3ZhbHVlX0QpICAgIC8vIDIKKworICAgICAgOiAiMCIgKGxlbiksICAgICAgICAgICAgICAvLyBlZHggICAgLy8gaW5wdXQgcmVncworICAgICAgICAiMSIgKHByZXZfcm93KSwgICAgICAgICAvLyBlc2kKKyAgICAgICAgIjIiIChyb3cpICAgICAgICAgICAgICAgLy8gZWRpCisKKyAgICAgIDogIiVlYXgiLCAiJWVieCIsICIlZWN4IiAgICAgICAgICAgIC8vIGNsb2JiZXIgbGlzdCAobm8gaW5wdXQgcmVncyEpCisKKyNpZiAwICAvKiBNTVggcmVncyAoJW1tMCwgZXRjLikgbm90IHN1cHBvcnRlZCBieSBnY2MgMi43LjIuMyBvciBlZ2NzIDEuMSAqLworICAgICAgLCAiJW1tMCIsICIlbW0xIiwgIiVtbTIiLCAiJW1tMyIKKyAgICAgICwgIiVtbTQiLCAiJW1tNSIsICIlbW02IiwgIiVtbTciCisjZW5kaWYKICAgICk7Ci0jZW5kaWYgLyogR1JSX0dDQ19NTVhfQ09OVkVSVEVEICovCi19CiAKK30gLy8gZW5kIG9mIHBuZ19yZWFkX2ZpbHRlcl9yb3dfbW14X3VwKCkKKworCisKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy8gICAgICAgICAgICAgICAgICAgUCBOIEcgXyBSIEUgQSBEIF8gRiBJIEwgVCBFIFIgXyBSIE8gVyAgICAgICAgICAgICAgICAgICAvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vLwogCiAjaWYgZGVmaW5lZChQTkdfSEFWRV9BU1NFTUJMRVJfUkVBRF9GSUxURVJfUk9XKQogCkBAIC00NDEwLDE3ICs0NzUxLDIxIEBACiAjaWZkZWYgUE5HX0RFQlVHCiAgICBjaGFyIGZpbG5tWzZdOwogI2VuZGlmCi0gICAjZGVmaW5lIFVzZU1NWCAxCisKKyNkZWZpbmUgVXNlTU1YIDEKKworI2RlZmluZSBVc2VNTVhfc3ViICAgIDEgICAvLyBHUlI6ICBjb252ZXJ0ZWQgMjAwMDA3MzAKKyNkZWZpbmUgVXNlTU1YX3VwICAgICAxICAgLy8gR1JSOiAgY29udmVydGVkIDIwMDAwNzI5CisjZGVmaW5lIFVzZU1NWF9hdmcgICAgMSAgIC8vIEdSUjogIGNvbnZlcnRlZCAyMDAwMDgyOCAoKyAxNi1iaXQgYnVnZml4IDIwMDAwOTE2KQorI2RlZmluZSBVc2VNTVhfcGFldGggIDEgICAvLyBHUlI6ICBjb252ZXJ0ZWQgMjAwMDA4MjgKIAogICAgaWYgKG1teF9zdXBwb3J0ZWQgPT0gMikKICAgICAgICBtbXhfc3VwcG9ydGVkID0gbW14c3VwcG9ydCgpOwogCi0jaWZkZWYgR1JSX0dDQ19NTVhfQ09OVkVSVEVECiAgICBpZiAoIW1teF9zdXBwb3J0ZWQpCi0jZW5kaWYKICAgIHsKICAgICAgICBwbmdfcmVhZF9maWx0ZXJfcm93X2MocG5nX3B0ciwgcm93X2luZm8sIHJvdywgcHJldl9yb3csIGZpbHRlcik7Ci0gICAgICAgcmV0dXJuIDsKKyAgICAgICByZXR1cm47CiAgICB9CiAKICNpZmRlZiBQTkdfREVCVUcKQEAgLTQ0MzIsMjMgKzQ3NzcsMjQgQEAKICNlbmRpZgogICAgc3dpdGNoIChmaWx0ZXIpCiAgICB7Ci0gICAgICBjYXNlIDA6IHNwcmludGYoZmlsbm0sICJOb25lICIpOworICAgICAgY2FzZSAwOiBzcHJpbnRmKGZpbG5tLCAibm9uZSIpOwogICAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIDE6IHNwcmludGYoZmlsbm0sICJTdWIgICIpOworICAgICAgY2FzZSAxOiBzcHJpbnRmKGZpbG5tLCAic3ViIik7CiAgICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgMjogc3ByaW50ZihmaWxubSwgIlVwICAgIik7CisgICAgICBjYXNlIDI6IHNwcmludGYoZmlsbm0sICJ1cCIpOwogICAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIDM6IHNwcmludGYoZmlsbm0sICJBdmcgICIpOworICAgICAgY2FzZSAzOiBzcHJpbnRmKGZpbG5tLCAiYXZnIik7CiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgNDogc3ByaW50ZihmaWxubSwgIlBhZXRoIik7CiAgICAgICAgICBicmVhazsKLSAgICAgIGRlZmF1bHQ6IHNwcmludGYoZmlsbm0sICJVbmtudyIpOworICAgICAgZGVmYXVsdDogc3ByaW50ZihmaWxubSwgInVua253Iik7CiAgICAgICAgICBicmVhazsKICAgIH0KLSAgIHBuZ19kZWJ1ZzIoMCwicm93PSU1ZCwgJXMsICIsIHBuZ19wdHItPnJvd19udW1iZXIsIGZpbG5tKTsKLSAgIHBuZ19kZWJ1ZzIoMCwgInBkPSUyZCwgYj0lZCwgIiwgKGludClyb3dfaW5mby0+cGl4ZWxfZGVwdGgsCisgICBwbmdfZGVidWcyKDAsICJyb3dfbnVtYmVyPSU1bGQsICU1cywgIiwgcG5nX3B0ci0+cm93X251bWJlciwgZmlsbm0pOworICAgcG5nX2RlYnVnMSgwLCAicm93PTB4JTA4bHgsICIsICh1bnNpZ25lZCBsb25nKXJvdyk7CisgICBwbmdfZGVidWcyKDAsICJwaXhkZXB0aD0lMmQsIGJ5dGVzPSVkLCAiLCAoaW50KXJvd19pbmZvLT5waXhlbF9kZXB0aCwKICAgICAgIChpbnQpKChyb3dfaW5mby0+cGl4ZWxfZGVwdGggKyA3KSA+PiAzKSk7Ci0gICBwbmdfZGVidWcxKDAsImxlbj0lOGQsICIsIHJvd19pbmZvLT5yb3dieXRlcyk7CisgICBwbmdfZGVidWcxKDAsInJvd2J5dGVzPSU4bGRcbiIsIHJvd19pbmZvLT5yb3dieXRlcyk7CiAjZW5kaWYKIAogICAgc3dpdGNoIChmaWx0ZXIpCkBAIC00NDU3LDcgKzQ4MDMsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgUE5HX0ZJTFRFUl9WQUxVRV9TVUI6Ci0jaWYgKFVzZU1NWCA9PSAxKQorI2lmIChVc2VNTVhfc3ViID09IDEpCiAgICAgICAgICBpZiAoKHJvd19pbmZvLT5waXhlbF9kZXB0aCA+IDgpICYmIChyb3dfaW5mby0+cm93Ynl0ZXMgPj0gMTI4KSkKICAgICAgICAgIHsKICAgICAgICAgICAgIHBuZ19yZWFkX2ZpbHRlcl9yb3dfbW14X3N1Yihyb3dfaW5mbywgcm93KTsKQEAgLTQ0NzYsMTEgKzQ4MjIsMTEgQEAKICAgICAgICAgICAgICAgICpycCA9IChwbmdfYnl0ZSkoKChpbnQpKCpycCkgKyAoaW50KSgqbHArKykpICYgMHhmZik7CiAgICAgICAgICAgICAgICBycCsrOwogICAgICAgICAgICAgfQotICAgICAgICAgfSAgLy9lbmQgIVVzZU1NWAorICAgICAgICAgfSAgLy9lbmQgIVVzZU1NWF9zdWIKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIFBOR19GSUxURVJfVkFMVUVfVVA6Ci0jaWYgKFVzZU1NWCA9PSAxKQorI2lmIChVc2VNTVhfdXAgPT0gMSkKICAgICAgICAgIGlmICgocm93X2luZm8tPnBpeGVsX2RlcHRoID4gOCkgJiYgKHJvd19pbmZvLT5yb3dieXRlcyA+PSAxMjgpKQogICAgICAgICAgewogICAgICAgICAgICAgcG5nX3JlYWRfZmlsdGVyX3Jvd19tbXhfdXAocm93X2luZm8sIHJvdywgcHJldl9yb3cpOwpAQCAtNDQ5NiwxMSArNDg0MiwxMSBAQAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgKnJwID0gKHBuZ19ieXRlKSgoKGludCkoKnJwKSArIChpbnQpKCpwcCkpICYgMHhmZik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICB9ICAvL2VuZCAhVXNlTU1YCisgICAgICAgICB9ICAvL2VuZCAhVXNlTU1YX3VwCiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSBQTkdfRklMVEVSX1ZBTFVFX0FWRzoKLSNpZiAoVXNlTU1YID09IDEpCisjaWYgKFVzZU1NWF9hdmcgPT0gMSkKICAgICAgICAgIGlmICgocm93X2luZm8tPnBpeGVsX2RlcHRoID4gOCkgJiYgKHJvd19pbmZvLT5yb3dieXRlcyA+PSAxMjgpKQogICAgICAgICAgewogICAgICAgICAgICAgcG5nX3JlYWRfZmlsdGVyX3Jvd19tbXhfYXZnKHJvd19pbmZvLCByb3csIHByZXZfcm93KTsKQEAgLTQ1MjgsMTEgKzQ4NzQsMTEgQEAKICAgICAgICAgICAgICAgICAgICgoaW50KSgqcHArKyArICpscCsrKSA+PiAxKSkgJiAweGZmKTsKICAgICAgICAgICAgICAgIHJwKys7CiAgICAgICAgICAgICB9Ci0gICAgICAgICB9ICAvL2VuZCAhVXNlTU1YCisgICAgICAgICB9ICAvL2VuZCAhVXNlTU1YX2F2ZwogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgUE5HX0ZJTFRFUl9WQUxVRV9QQUVUSDoKLSNpZiAoVXNlTU1YID09IDEpCisjaWYgKFVzZU1NWF9wYWV0aCA9PSAxKQogICAgICAgICAgaWYgKChyb3dfaW5mby0+cGl4ZWxfZGVwdGggPiA4KSAmJiAocm93X2luZm8tPnJvd2J5dGVzID49IDEyOCkpCiAgICAgICAgICB7CiAgICAgICAgICAgICBwbmdfcmVhZF9maWx0ZXJfcm93X21teF9wYWV0aChyb3dfaW5mbywgcm93LCBwcmV2X3Jvdyk7CkBAIC00NTg5LDcgKzQ5MzUsNyBAQAogICAgICAgICAgICAgICAgKnJwID0gKHBuZ19ieXRlKSgoKGludCkoKnJwKSArIHApICYgMHhmZik7CiAgICAgICAgICAgICAgICBycCsrOwogICAgICAgICAgICAgfQotICAgICAgICAgfSAgLy9lbmQgIVVzZU1NWAorICAgICAgICAgfSAgLy9lbmQgIVVzZU1NWF9wYWV0aAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGRlZmF1bHQ6CkBAIC00NjAyLDYgKzQ5NDgsMTQgQEAKICNlbmRpZiAvKiBQTkdfSEFWRV9BU1NFTUJMRVJfUkVBRF9GSUxURVJfUk9XICovCiAKIAorCisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ly8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0gTSBYIFMgVSBQIFAgTyBSIFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ly8KKwogLy8gR1JSIE5PVEVTOiAgKDEpIHRoZSBmb2xsb3dpbmcgY29kZSBhc3N1bWVzIDM4NiBvciBiZXR0ZXIgKHB1c2hmbC9wb3BmbCkKIC8vICAgICAgICAgICAgICgyKSBhbGwgaW5zdHJ1Y3Rpb25zIGNvbXBpbGUgd2l0aCBnY2MgMi43LjIuMyBhbmQgbGF0ZXIKIC8vICAgICAgICAgICAgICgzKSB0aGUgZnVuY3Rpb24gaXMgbW92ZWQgZG93biBoZXJlIHRvIHByZXZlbnQgZ2NjIGZyb20KQEAgLTQ2MTgsNyArNDk3Miw3IEBACiB7CiAgICAgaW50IG1teF9zdXBwb3J0ZWRfbG9jYWwgPSAwOwogCi0gICAgX19hc21fXyAoCisgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAogLy8gICAgICAiLmJ5dGUgIDB4NjYgICAgICAgICAgXG5cdCIgIC8vIGNvbnZlcnQgMTYtYml0IHB1c2hmIHRvIDMyLWJpdCBwdXNoZmQKIC8vICAgICAgInB1c2hmICAgICAgICAgICAgICAgIFxuXHQiICAvLyBzYXZlIEVmbGFnIHRvIHN0YWNrCiAgICAgICAgICJwdXNoZmwgICAgICAgICAgICAgICBcblx0IiAgLy8gc2F2ZSBFZmxhZyB0byBzdGFjawpAQCAtNDY3MCwxMSArNTAyNCwxMyBAQAogICAgIHJldHVybiBtbXhfc3VwcG9ydGVkX2xvY2FsOwogfQogCisKICNlbHNlIC8qICFPUklHX1RIQVRfVVNFRF9UT19DTE9CQkVSX0VCWCAqLwogCisKIGludCBtbXhzdXBwb3J0KHZvaWQpCiB7Ci0gICAgX19hc21fXyAoCisgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAogICAgICAgICAicHVzaGwgJSVlYnggICAgICAgICAgXG5cdCIgIC8vIGVieCBnZXRzIGNsb2JiZXJlZCBieSBDUFVJRCBpbnN0cnVjdGlvbgogICAgICAgICAicHVzaGwgJSVlY3ggICAgICAgICAgXG5cdCIgIC8vIHNvIGRvZXMgZWN4Li4uCiAgICAgICAgICJwdXNobCAlJWVkeCAgICAgICAgICBcblx0IiAgLy8gLi4uYW5kIGVkeCAoYnV0IGVjeCAmIGVkeCBzYWZlIG9uIExpbnV4KQpAQCAtNDc0MCw1ICs1MDk2LDMgQEAKICNlbmRpZiAvKiA/T1JJR19USEFUX1VTRURfVE9fQ0xPQkJFUl9FQlggKi8KIAogI2VuZGlmIC8qIFBOR19BU1NFTUJMRVJfQ09ERV9TVVBQT1JURUQgJiYgUE5HX1VTRV9QTkdHQ0NSRCAqLwotCi0KZGlmZiAtLWdpdCBhL3BuZ2dldC5jIGIvcG5nZ2V0LmMKaW5kZXggMjY2ZGMzYi4uYjViZDg0NiAxMDA2NDQKLS0tIGEvcG5nZ2V0LmMKKysrIGIvcG5nZ2V0LmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ2dldC5jIC0gcmV0cmlldmFsIG9mIHZhbHVlcyBmcm9tIGluZm8gc3RydWN0CiAgKgotICogbGlicG5nIDEuMC44IC0gSnVseSAyNCwgMjAwMAorICogbGlicG5nIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMAogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKZGlmZiAtLWdpdCBhL3BuZ21lbS5jIGIvcG5nbWVtLmMKaW5kZXggMjJjNzdiZS4uMWQzNGM5ZCAxMDA2NDQKLS0tIGEvcG5nbWVtLmMKKysrIGIvcG5nbWVtLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ21lbS5jIC0gc3R1YiBmdW5jdGlvbnMgZm9yIG1lbW9yeSBhbGxvY2F0aW9uCiAgKgotICogbGlicG5nIDEuMC44IC0gSnVseSAyNCwgMjAwMAorICogbGlicG5nIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMAogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKZGlmZiAtLWdpdCBhL3BuZ3ByZWFkLmMgYi9wbmdwcmVhZC5jCmluZGV4IDZkZmQwMTguLjBmM2JhNzYgMTAwNjQ0Ci0tLSBhL3BuZ3ByZWFkLmMKKysrIGIvcG5ncHJlYWQuYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5ncHJlYWQuYyAtIHJlYWQgYSBwbmcgZmlsZSBpbiBwdXNoIG1vZGUKICAqCi0gKiBsaWJwbmcgMS4wLjggLSBKdWx5IDI0LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMSAtIE5vdmVtYmVyIDEwLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpAQCAtODk0LDI1ICs4OTQsMjUgQEAKICAgIC8qIGFycmF5cyB0byBmYWNpbGl0YXRlIGVhc3kgaW50ZXJsYWNpbmcgLSB1c2UgcGFzcyAoMCAtIDYpIGFzIGluZGV4ICovCiAKICAgIC8qIHN0YXJ0IG9mIGludGVybGFjZSBibG9jayAqLwotICAgY29uc3QgaW50IHBuZ19wYXNzX3N0YXJ0W10gPSB7MCwgNCwgMCwgMiwgMCwgMSwgMH07CisgICBjb25zdCBpbnQgRkFSREFUQSBwbmdfcGFzc19zdGFydFtdID0gezAsIDQsIDAsIDIsIDAsIDEsIDB9OwogCiAgICAvKiBvZmZzZXQgdG8gbmV4dCBpbnRlcmxhY2UgYmxvY2sgKi8KLSAgIGNvbnN0IGludCBwbmdfcGFzc19pbmNbXSA9IHs4LCA4LCA0LCA0LCAyLCAyLCAxfTsKKyAgIGNvbnN0IGludCBGQVJEQVRBIHBuZ19wYXNzX2luY1tdID0gezgsIDgsIDQsIDQsIDIsIDIsIDF9OwogCiAgICAvKiBzdGFydCBvZiBpbnRlcmxhY2UgYmxvY2sgaW4gdGhlIHkgZGlyZWN0aW9uICovCi0gICBjb25zdCBpbnQgcG5nX3Bhc3NfeXN0YXJ0W10gPSB7MCwgMCwgNCwgMCwgMiwgMCwgMX07CisgICBjb25zdCBpbnQgRkFSREFUQSBwbmdfcGFzc195c3RhcnRbXSA9IHswLCAwLCA0LCAwLCAyLCAwLCAxfTsKIAogICAgLyogb2Zmc2V0IHRvIG5leHQgaW50ZXJsYWNlIGJsb2NrIGluIHRoZSB5IGRpcmVjdGlvbiAqLwotICAgY29uc3QgaW50IHBuZ19wYXNzX3lpbmNbXSA9IHs4LCA4LCA4LCA0LCA0LCAyLCAyfTsKKyAgIGNvbnN0IGludCBGQVJEQVRBIHBuZ19wYXNzX3lpbmNbXSA9IHs4LCA4LCA4LCA0LCA0LCAyLCAyfTsKIAogICAgLyogV2lkdGggb2YgaW50ZXJsYWNlIGJsb2NrLiAgVGhpcyBpcyBub3QgY3VycmVudGx5IHVzZWQgLSBpZiB5b3UgbmVlZAogICAgICogaXQsIHVuY29tbWVudCBpdCBoZXJlIGFuZCBpbiBwbmcuaAotICAgY29uc3QgaW50IHBuZ19wYXNzX3dpZHRoW10gPSB7OCwgNCwgNCwgMiwgMiwgMSwgMX07CisgICBjb25zdCBpbnQgRkFSREFUQSBwbmdfcGFzc193aWR0aFtdID0gezgsIDQsIDQsIDIsIDIsIDEsIDF9OwogICAgKi8KIAogICAgLyogSGVpZ2h0IG9mIGludGVybGFjZSBibG9jay4gIFRoaXMgaXMgbm90IGN1cnJlbnRseSB1c2VkIC0gaWYgeW91IG5lZWQKICAgICAqIGl0LCB1bmNvbW1lbnQgaXQgaGVyZSBhbmQgaW4gcG5nLmgKLSAgIGNvbnN0IGludCBwbmdfcGFzc19oZWlnaHRbXSA9IHs4LCA4LCA0LCA0LCAyLCAyLCAxfTsKKyAgIGNvbnN0IGludCBGQVJEQVRBIHBuZ19wYXNzX2hlaWdodFtdID0gezgsIDgsIDQsIDQsIDIsIDIsIDF9OwogICAgKi8KICNlbmRpZgogCkBAIC0xNDI5LDcgKzE0MjksOCBAQAogICAgcG5nX2J5dGVwIG9sZF9yb3csIHBuZ19ieXRlcCBuZXdfcm93KQogewogI2lmZGVmIFBOR19VU0VfTE9DQUxfQVJSQVlTCi0gICBjb25zdCBpbnQgcG5nX3Bhc3NfZHNwX21hc2tbN10gPSB7MHhmZiwgMHgwZiwgMHhmZiwgMHgzMywgMHhmZiwgMHg1NSwgMHhmZn07CisgICBjb25zdCBpbnQgRkFSREFUQSBwbmdfcGFzc19kc3BfbWFza1s3XSA9CisgICAgICB7MHhmZiwgMHgwZiwgMHhmZiwgMHgzMywgMHhmZiwgMHg1NSwgMHhmZn07CiAjZW5kaWYKICAgIGlmIChuZXdfcm93ICE9IE5VTEwpICAgIC8qIG5ld19yb3cgbXVzdCA9PSBwbmdfcHRyLT5yb3dfYnVmIGhlcmUuICovCiAgICAgICBwbmdfY29tYmluZV9yb3cocG5nX3B0ciwgb2xkX3JvdywgcG5nX3Bhc3NfZHNwX21hc2tbcG5nX3B0ci0+cGFzc10pOwpkaWZmIC0tZ2l0IGEvcG5ncmVhZC5jIGIvcG5ncmVhZC5jCmluZGV4IGQxY2JjNTEuLjdhODQ5YmMgMTAwNjQ0Ci0tLSBhL3BuZ3JlYWQuYworKysgYi9wbmdyZWFkLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ3JlYWQuYyAtIHJlYWQgYSBQTkcgZmlsZQogICoKLSAqIGxpYnBuZyAxLjAuOCAtIEp1bHkgMjQsIDIwMDAKKyAqIGxpYnBuZyAxLjAuOWJldGExIC0gTm92ZW1iZXIgMTAsIDIwMDAKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCkBAIC00NDAsNiArNDQwLDkgQEAKICAgIC8qIHNhdmUganVtcCBidWZmZXIgYW5kIGVycm9yIGZ1bmN0aW9ucyAqLwogICAgaWYgKCEocG5nX3B0ci0+ZmxhZ3MgJiBQTkdfRkxBR19ST1dfSU5JVCkpCiAgICAgICBwbmdfcmVhZF9zdGFydF9yb3cocG5nX3B0cik7CisgICBlbHNlCisgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLAorICAgICAgIklnbm9yaW5nIGV4dHJhIHBuZ19yZWFkX3VwZGF0ZV9pbmZvKCkgY2FsbDsgcm93IGJ1ZmZlciBub3QgcmVhbGxvY2F0ZWQiKTsKICAgIHBuZ19yZWFkX3RyYW5zZm9ybV9pbmZvKHBuZ19wdHIsIGluZm9fcHRyKTsKIH0KIApAQCAtNjk4LDcgKzcwMSw3IEBACiAgKiBub3QgY2FsbGVkIHBuZ19zZXRfaW50ZXJsYWNlX2hhbmRsaW5nKCksIHRoZSBkaXNwbGF5X3JvdyBidWZmZXIgd2lsbAogICogYmUgaWdub3JlZCwgc28gcGFzcyBOVUxMIHRvIGl0LgogICoKLSAqIFsqXSBwbmdfaGFuZGxlX2FscGhhKCkgZG9lcyBub3QgZXhpc3QgeWV0LCBhcyBvZiBsaWJwbmcgdmVyc2lvbiAxLjAuOAorICogWypdIHBuZ19oYW5kbGVfYWxwaGEoKSBkb2VzIG5vdCBleGlzdCB5ZXQsIGFzIG9mIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTEKICAqLwogCiB2b2lkIFBOR0FQSQpAQCAtNzQ3LDcgKzc1MCw3IEBACiAgKiBvbmx5IGNhbGwgdGhpcyBmdW5jdGlvbiBvbmNlLiAgSWYgeW91IGRlc2lyZSB0byBoYXZlIGFuIGltYWdlIGZvcgogICogZWFjaCBwYXNzIG9mIGEgaW50ZXJsYWNlZCBpbWFnZSwgdXNlIHBuZ19yZWFkX3Jvd3MoKSBpbnN0ZWFkLgogICoKLSAqIFsqXSBwbmdfaGFuZGxlX2FscGhhKCkgZG9lcyBub3QgZXhpc3QgeWV0LCBhcyBvZiBsaWJwbmcgdmVyc2lvbiAxLjAuOAorICogWypdIHBuZ19oYW5kbGVfYWxwaGEoKSBkb2VzIG5vdCBleGlzdCB5ZXQsIGFzIG9mIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTEKICAqLwogdm9pZCBQTkdBUEkKIHBuZ19yZWFkX2ltYWdlKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19ieXRlcHAgaW1hZ2UpCmRpZmYgLS1naXQgYS9wbmdyaW8uYyBiL3BuZ3Jpby5jCmluZGV4IGI2ZTU5MjIuLjI1NzFiMDAgMTAwNjQ0Ci0tLSBhL3BuZ3Jpby5jCisrKyBiL3BuZ3Jpby5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmdyaW8uYyAtIGZ1bmN0aW9ucyBmb3IgZGF0YSBpbnB1dAogICoKLSAqIGxpYnBuZyAxLjAuOCAtIEp1bHkgMjQsIDIwMDAKKyAqIGxpYnBuZyAxLjAuOWJldGExIC0gTm92ZW1iZXIgMTAsIDIwMDAKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCmRpZmYgLS1naXQgYS9wbmdydHJhbi5jIGIvcG5ncnRyYW4uYwppbmRleCBkYTc1ZjBhLi5hN2RhMGMxIDEwMDY0NAotLS0gYS9wbmdydHJhbi5jCisrKyBiL3BuZ3J0cmFuLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ3J0cmFuLmMgLSB0cmFuc2Zvcm1zIHRoZSBkYXRhIGluIGEgcm93IGZvciBQTkcgcmVhZGVycwogICoKLSAqIGxpYnBuZyAxLjAuOCAtIEp1bHkgMjQsIDIwMDAKKyAqIGxpYnBuZyAxLjAuOWJldGExIC0gTm92ZW1iZXIgMTAsIDIwMDAKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCkBAIC0xMDkwLDcgKzEwOTAsMTIgQEAKICAgIGlmICgocG5nX3B0ci0+dHJhbnNmb3JtYXRpb25zICYgUE5HX0ZJTExFUikgJiYKICAgICAgICAoKGluZm9fcHRyLT5jb2xvcl90eXBlID09IFBOR19DT0xPUl9UWVBFX1JHQikgfHwKICAgICAgICAoaW5mb19wdHItPmNvbG9yX3R5cGUgPT0gUE5HX0NPTE9SX1RZUEVfR1JBWSkpKQorICAgewogICAgICAgaW5mb19wdHItPmNoYW5uZWxzKys7CisjaWYgMCAvKiBpZiBhZGRpbmcgYSB0cnVlIGFscGhhIGNoYW5uZWwgbm90IGp1c3QgZmlsbGVyICovCisgICAgICBpbmZvX3B0ci0+Y29sb3JfdHlwZSB8PSBQTkdfQ09MT1JfTUFTS19BTFBIQTsKKyNlbmRpZgorICAgfQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKFBOR19VU0VSX1RSQU5TRk9STV9QVFJfU1VQUE9SVEVEKSAmJiBcCmRpZmYgLS1naXQgYS9wbmdydXRpbC5jIGIvcG5ncnV0aWwuYwppbmRleCBmYzYyNDIwLi40OTEyNzE2IDEwMDY0NAotLS0gYS9wbmdydXRpbC5jCisrKyBiL3BuZ3J1dGlsLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ3J1dGlsLmMgLSB1dGlsaXRpZXMgdG8gcmVhZCBhIFBORyBmaWxlCiAgKgotICogbGlicG5nIDEuMC44IC0gSnVseSAyNCwgMjAwMAorICogbGlicG5nIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMAogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKQEAgLTk3Niw2ICs5NzYsOCBAQAogICAgcG5nX2J5dGUgY29tcHJlc3Npb25fdHlwZTsKICAgIHBuZ19jaGFycCBwcm9maWxlOwogICAgcG5nX3VpbnRfMzIgc2tpcCA9IDA7CisgICBwbmdfdWludF8zMiBwcm9maWxlX3NpemUgPSAwOworICAgcG5nX3VpbnRfMzIgcHJvZmlsZV9sZW5ndGggPSAwOwogICAgcG5nX3NpemVfdCBzbGVuZ3RoLCBwcmVmaXhfbGVuZ3RoLCBkYXRhX2xlbmd0aDsKIAogICAgcG5nX2RlYnVnKDEsICJpbiBwbmdfaGFuZGxlX2lDQ1BcbiIpOwpAQCAtMTAyNywyMiArMTAyOSw0MyBAQAogCiAgICAvKiB0aGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIHplcm8gKHRoZSBjb21wcmVzc2lvbiB0eXBlIGJ5dGUpCiAgICAgICBmb2xsb3dpbmcgdGhlIHNlcGFyYXRvciwgYW5kIHdlIHNob3VsZCBiZSBvbiBpdCAgKi8KLSAgIGlmICgqcHJvZmlsZSB8fCBwcm9maWxlID49IGNodW5rZGF0YSArIHNsZW5ndGgpCisgICBpZiAoIHByb2ZpbGUgPj0gY2h1bmtkYXRhICsgc2xlbmd0aCkKICAgIHsKICAgICAgIHBuZ19mcmVlKHBuZ19wdHIsIGNodW5rZGF0YSk7Ci0gICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCAibWFsZm9ybWVkIGlDQ1AgY2h1bmsiKTsKKyAgICAgIHBuZ193YXJuaW5nKHBuZ19wdHIsICJNYWxmb3JtZWQgaUNDUCBjaHVuayIpOwogICAgICAgcmV0dXJuOwogICAgfQogCiAgICAvKiBjb21wcmVzc2lvbl90eXBlIHNob3VsZCBhbHdheXMgYmUgemVybyAqLwogICAgY29tcHJlc3Npb25fdHlwZSA9ICpwcm9maWxlKys7CisgICBpZiAoY29tcHJlc3Npb25fdHlwZSkKKyAgIHsKKyAgICAgIHBuZ193YXJuaW5nKHBuZ19wdHIsICJJZ25vcmluZyBub256ZXJvIGNvbXByZXNzaW9uIHR5cGUgaW4gaUNDUCBjaHVuayIpOworICAgICAgY29tcHJlc3Npb25fdHlwZT0weDAwOyAgLyogUmVzZXQgaXQgdG8gemVybyAobGlicG5nLTEuMC42IHRocm91Z2ggMS4wLjgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyb3RlIG5vbnplcm8pICovCisgICB9CiAKICAgIHByZWZpeF9sZW5ndGggPSBwcm9maWxlIC0gY2h1bmtkYXRhOwogICAgY2h1bmtkYXRhID0gcG5nX2RlY29tcHJlc3NfY2h1bmsocG5nX3B0ciwgY29tcHJlc3Npb25fdHlwZSwgY2h1bmtkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xlbmd0aCwgcHJlZml4X2xlbmd0aCwgJmRhdGFfbGVuZ3RoKTsKIAorICAgcHJvZmlsZV9sZW5ndGggPSBkYXRhX2xlbmd0aCAtIHByZWZpeF9sZW5ndGg7CisgICBwcm9maWxlX3NpemUgPSAoKCooY2h1bmtkYXRhK3ByZWZpeF9sZW5ndGgpKTw8MjQpIHwKKyAgICAgICAgICAgICAgICAgICgoKihjaHVua2RhdGErcHJlZml4X2xlbmd0aCsxKSk8PDE2KSB8CisgICAgICAgICAgICAgICAgICAoKCooY2h1bmtkYXRhK3ByZWZpeF9sZW5ndGgrMikpPDwgOCkgfAorICAgICAgICAgICAgICAgICAgKCgqKGNodW5rZGF0YStwcmVmaXhfbGVuZ3RoKzMpKSAgICApOworCisgICBpZihwcm9maWxlX3NpemUgPCBwcm9maWxlX2xlbmd0aCkKKyAgICAgIHByb2ZpbGVfbGVuZ3RoID0gcHJvZmlsZV9zaXplOworCisgICBpZihwcm9maWxlX3NpemUgPiBwcm9maWxlX2xlbmd0aCkKKyAgIHsKKyAgICAgIHBuZ193YXJuaW5nKHBuZ19wdHIsICJJZ25vcmluZyB0cnVuY2F0ZWQgaUNDUCBwcm9maWxlLlxuIik7CisgICAgICByZXR1cm47CisgICB9CisKICAgIHBuZ19zZXRfaUNDUChwbmdfcHRyLCBpbmZvX3B0ciwgY2h1bmtkYXRhLCBjb21wcmVzc2lvbl90eXBlLAotICAgICAgICAgICAgICAgIGNodW5rZGF0YSArIHByZWZpeF9sZW5ndGgsIGRhdGFfbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBjaHVua2RhdGEgKyBwcmVmaXhfbGVuZ3RoLCBkYXRhX2xlbmd0aC1wcmVmaXhfbGVuZ3RoKTsKICAgIHBuZ19mcmVlKHBuZ19wdHIsIGNodW5rZGF0YSk7CiB9CiAjZW5kaWYgLyogUE5HX1JFQURfaUNDUF9TVVBQT1JURUQgKi8KQEAgLTEzMzYsNyArMTM1OSw2IEBACiAgICAgICAgICAgaWYoYnVmWzBdID4gaW5mb19wdHItPm51bV9wYWxldHRlKQogICAgICAgICAgIHsKICAgICAgICAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCAiSW5jb3JyZWN0IGJLR0QgY2h1bmsgaW5kZXggdmFsdWUiKTsKLSAgICAgICAgICAgICBwbmdfY3JjX2ZpbmlzaChwbmdfcHRyLCBsZW5ndGgpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICB9CiAgICAgICAgICAgcG5nX3B0ci0+YmFja2dyb3VuZC5yZWQgPQpkaWZmIC0tZ2l0IGEvcG5nc2V0LmMgYi9wbmdzZXQuYwppbmRleCA2MDkyMzI4Li4yMTBmNDczIDEwMDY0NAotLS0gYS9wbmdzZXQuYworKysgYi9wbmdzZXQuYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5nc2V0LmMgLSBzdG9yYWdlIG9mIGltYWdlIGluZm9ybWF0aW9uIGludG8gaW5mbyBzdHJ1Y3QKICAqCi0gKiBsaWJwbmcgMS4wLjggLSBKdWx5IDI0LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMSAtIE5vdmVtYmVyIDEwLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpAQCAtNzQxLDEwICs3NDEsMjcgQEAKIHZvaWQgUE5HQVBJCiBwbmdfcGVybWl0X2VtcHR5X3BsdGUgKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIGludCBlbXB0eV9wbHRlX3Blcm1pdHRlZCkKIHsKLSAgIHBuZ19kZWJ1ZygxLCAiaW4gcG5nX3Blcm1pdF9lbXB0eV9wbHRlXG4iKTsKKyAgIC8qIFRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBwbmdfcGVybWl0X21uZ19mZWF0dXJlcygpCisgICAgICBhbmQgd2lsbCBiZSByZW1vdmVkIGZyb20gbGlicG5nLTIuMC4wICovCisgICBwbmdfZGVidWcoMSwgImluIHBuZ19wZXJtaXRfZW1wdHlfcGx0ZSwgREVQUkVDQVRFRC5cbiIpOwogICAgaWYgKHBuZ19wdHIgPT0gTlVMTCkKICAgICAgIHJldHVybjsKLSAgIHBuZ19wdHItPmVtcHR5X3BsdGVfcGVybWl0dGVkPShwbmdfYnl0ZSllbXB0eV9wbHRlX3Blcm1pdHRlZDsKKyAgIHBuZ19wdHItPm1uZ19mZWF0dXJlc19wZXJtaXR0ZWQgPSAocG5nX2J5dGUpCisgICAgICgocG5nX3B0ci0+bW5nX2ZlYXR1cmVzX3Blcm1pdHRlZCAmICh+KFBOR19GTEFHX01OR19FTVBUWV9QTFRFKSkpIHwKKyAgICAgKChlbXB0eV9wbHRlX3Blcm1pdHRlZCAmIFBOR19GTEFHX01OR19FTVBUWV9QTFRFKSkpOworfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBOR19NTkdfRkVBVFVSRVNfU1VQUE9SVEVEKQorcG5nX3VpbnRfMzIgUE5HQVBJCitwbmdfcGVybWl0X21uZ19mZWF0dXJlcyAocG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5nX3VpbnRfMzIgbW5nX2ZlYXR1cmVzKQoreworICAgcG5nX2RlYnVnKDEsICJpbiBwbmdfcGVybWl0X21uZ19mZWF0dXJlc1xuIik7CisgICBpZiAocG5nX3B0ciA9PSBOVUxMKQorICAgICAgcmV0dXJuIChwbmdfdWludF8zMikwOworICAgcG5nX3B0ci0+bW5nX2ZlYXR1cmVzX3Blcm1pdHRlZCA9CisgICAgIChwbmdfYnl0ZSkobW5nX2ZlYXR1cmVzICYgUE5HX0FMTF9NTkdfRkVBVFVSRVMpOworICAgcmV0dXJuIChwbmdfdWludF8zMilwbmdfcHRyLT5tbmdfZmVhdHVyZXNfcGVybWl0dGVkOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL3BuZ3Rlc3QuYyBiL3BuZ3Rlc3QuYwppbmRleCAxNDM3YmE3Li5mMzk3YmNjIDEwMDY0NAotLS0gYS9wbmd0ZXN0LmMKKysrIGIvcG5ndGVzdC5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmd0ZXN0LmMgLSBhIHNpbXBsZSB0ZXN0IHByb2dyYW0gdG8gdGVzdCBsaWJwbmcKICAqCi0gKiBsaWJwbmcgMS4wLjggLSBKdWx5IDI0LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMSAtIE5vdmVtYmVyIDEwLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpAQCAtMTYsNyArMTYsOCBAQAogICogVGhlIHByb2dyYW0gd2lsbCByZXBvcnQgIkZBSUwiIGluIGNlcnRhaW4gbGVnaXRpbWF0ZSBjYXNlczoKICAqIDEpIHdoZW4gdGhlIGNvbXByZXNzaW9uIGxldmVsIG9yIGZpbHRlciBzZWxlY3Rpb24gbWV0aG9kIGlzIGNoYW5nZWQuCiAgKiAyKSB3aGVuIHRoZSBtYXhpbXVtIElEQVQgc2l6ZSAoUE5HX1pCVUZfU0laRSBpbiBwbmdjb25mLmgpIGlzIG5vdCA4MTkyLgotICogMykgdW5rbm93biBhbmNpbGxhcnkgY2h1bmtzIGV4aXN0IGluIHRoZSBpbnB1dCBmaWxlLgorICogMykgdW5rbm93biB1bnNhZmUtdG8tY29weSBhbmNpbGxhcnkgY2h1bmtzIG9yIHVua25vd24gY3JpdGljYWwgY2h1bmtzCisgKiAgICBleGlzdCBpbiB0aGUgaW5wdXQgZmlsZS4KICAqIDQpIG90aGVycyBub3QgbGlzdGVkIGhlcmUuLi4KICAqIEluIHRoZXNlIGNhc2VzLCBpdCBpcyBiZXN0IHRvIGNoZWNrIHdpdGggYW5vdGhlciB0b29sIHN1Y2ggYXMgInBuZ2NoZWNrIgogICogdG8gc2VlIHdoYXQgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHR3byBmaWxlcyBhcmUuCkBAIC0zNDUsNyArMzQ2LDcgQEAKIHsKICAgIHBuZ191aW50XzMyIGNoZWNrOwogCi0gICBXUklURUZJTEUoKHBuZ19GSUxFX3ApcG5nX3B0ci0+aW9fcHRyLCAgZGF0YSwgMSwgY2hlY2spOworICAgV1JJVEVGSUxFKChwbmdfRklMRV9wKXBuZ19wdHItPmlvX3B0ciwgIGRhdGEsIGxlbmd0aCwgY2hlY2spOwogICAgaWYgKGNoZWNrICE9IGxlbmd0aCkKICAgIHsKICAgICAgIHBuZ19lcnJvcihwbmdfcHRyLCAiV3JpdGUgRXJyb3IiKTsKQEAgLTM3Miw3ICszNzMsNyBAQAogICAgaW9fcHRyID0gKHBuZ19GSUxFX3ApQ1ZUX1BUUihwbmdfcHRyLT5pb19wdHIpOwogICAgaWYgKChwbmdfYnl0ZXApbmVhcl9kYXRhID09IGRhdGEpCiAgICB7Ci0gICAgICBXUklURUZJTEUoaW9fcHRyLCBuZWFyX2RhdGEsIDEsIGNoZWNrKTsKKyAgICAgIFdSSVRFRklMRShpb19wdHIsIG5lYXJfZGF0YSwgbGVuZ3RoLCBjaGVjayk7CiAgICB9CiAgICBlbHNlCiAgICB7CkBAIC0zODQsNyArMzg1LDcgQEAKICAgICAgIHsKICAgICAgICAgIHdyaXR0ZW4gPSBNSU4oTkVBUl9CVUZfU0laRSwgcmVtYWluaW5nKTsKICAgICAgICAgIHBuZ19tZW1jcHkoYnVmLCBkYXRhLCB3cml0dGVuKTsgLyogY29weSBmYXIgYnVmZmVyIHRvIG5lYXIgYnVmZmVyICovCi0gICAgICAgICBXUklURUZJTEUoaW9fcHRyLCB3cml0dGVuLCAxLCBlcnIpOworICAgICAgICAgV1JJVEVGSUxFKGlvX3B0ciwgYnVmLCB3cml0dGVuLCBlcnIpOwogICAgICAgICAgaWYgKGVyciAhPSB3cml0dGVuKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBlbHNlCkBAIC0xNDQ4LDQgKzE0NDksNCBAQAogfQogCiAvKiBHZW5lcmF0ZSBhIGNvbXBpbGVyIGVycm9yIGlmIHRoZXJlIGlzIGFuIG9sZCBwbmcuaCBpbiB0aGUgc2VhcmNoIHBhdGguICovCi10eXBlZGVmIHZlcnNpb25fMV8wXzggeW91cl9wbmdfaF9pc19ub3RfdmVyc2lvbl8xXzBfODsKK3R5cGVkZWYgdmVyc2lvbl8xXzBfOWJldGExIHlvdXJfcG5nX2hfaXNfbm90X3ZlcnNpb25fMV8wXzliZXRhMTsKZGlmZiAtLWdpdCBhL3BuZ3RyYW5zLmMgYi9wbmd0cmFucy5jCmluZGV4IGI5NzRhNjYuLjgzNGRjNDIgMTAwNjQ0Ci0tLSBhL3BuZ3RyYW5zLmMKKysrIGIvcG5ndHJhbnMuYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5ndHJhbnMuYyAtIHRyYW5zZm9ybXMgdGhlIGRhdGEgaW4gYSByb3cgKHVzZWQgYnkgYm90aCByZWFkZXJzIGFuZCB3cml0ZXJzKQogICoKLSAqIGxpYnBuZyAxLjAuOCAtIEp1bHkgMjQsIDIwMDAKKyAqIGxpYnBuZyAxLjAuOWJldGExIC0gTm92ZW1iZXIgMTAsIDIwMDAKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCmRpZmYgLS1naXQgYS9wbmd2Y3JkLmMgYi9wbmd2Y3JkLmMKaW5kZXggZWQwOWFhZS4uZWFmZGMyOSAxMDA2NDQKLS0tIGEvcG5ndmNyZC5jCisrKyBiL3BuZ3ZjcmQuYwpAQCAtMiw3ICsyLDcgQEAKICAqCiAgKiBGb3IgSW50ZWwgeDg2IENQVSBhbmQgTWljcm9zb2Z0IFZpc3VhbCBDKysgY29tcGlsZXIKICAqCi0gKiBsaWJwbmcgMS4wLjggLSBKdWx5IDI0LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMSAtIE5vdmVtYmVyIDEwLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIENvcHlyaWdodCAoYykgMTk5OCwgSW50ZWwgQ29ycG9yYXRpb24KQEAgLTEwLDYgKzEwLDggQEAKICAqIENvbnRyaWJ1dGVkIGJ5IE5pcmF2IENoaGF0cmFwYXRpLCBJbnRlbCBDb3Jwb3JhdGlvbiwgMTk5OAogICogSW50ZXJmYWNlIHRvIGxpYnBuZyBjb250cmlidXRlZCBieSBHaWxsZXMgVm9sbGFudCwgMTk5OQogICoKKyAqIFtwbmdfcmVhZF9maWx0ZXJfcm93X21teF9hdmcoKSBicHAgPT0gMiBidWdmaXgsIEdSUiAyMDAwMDkxNl0KKyAqCiAgKi8KIAogI2RlZmluZSBQTkdfSU5URVJOQUwKQEAgLTIxMTcsOCArMjExOSw4IEBACiAgICAgICBjYXNlIDI6CiAgICAgICB7CiAgICAgICAgICBBY3RpdmVNYXNrLnVzZSAgPSAweDAwMDAwMDAwMDAwMGZmZmY7Ci0gICAgICAgICBTaGlmdEJwcC51c2UgPSAyNDsgICAvLyA9PSAzICogOAotICAgICAgICAgU2hpZnRSZW0udXNlID0gNDA7ICAgLy8gPT0gNjQgLSAyNAorICAgICAgICAgU2hpZnRCcHAudXNlID0gMTY7ICAgLy8gPT0gMiAqIDggICAgIFtCVUdGSVhdCisgICAgICAgICBTaGlmdFJlbS51c2UgPSA0ODsgICAvLyA9PSA2NCAtIDE2ICAgW0JVR0ZJWF0KICAgICAgICAgIF9hc20gewogICAgICAgICAgICAgLy8gTG9hZCBBY3RpdmVNYXNrCiAgICAgICAgICAgICBtb3ZxIG1tNywgQWN0aXZlTWFzawpAQCAtMjEzMyw3ICsyMTM1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICh3ZSBjb3JyZWN0IHBvc2l0aW9uIGluIGxvb3AgYmVsb3cpCiBkYXZnMmxwOgogICAgICAgICAgICAgbW92cSBtbTAsIFtlZGkgKyBlYnhdCi0gICAgICAgICAgICBwc2xscSBtbTIsIFNoaWZ0UmVtICAvLyBzaGlmdCBkYXRhIHRvIHBvc2l0aW9uIGNvcnJlY3RseQorICAgICAgICAgICAgcHNybHEgbW0yLCBTaGlmdFJlbSAgLy8gc2hpZnQgZGF0YSB0byBwb3NpdGlvbiBjb3JyZWN0bHkgICBbQlVHRklYXQogICAgICAgICAgICAgbW92cSBtbTEsIFtlc2kgKyBlYnhdCiAgICAgICAgICAgICAvLyBBZGQgKFByZXZfcm93LzIpIHRvIEF2ZXJhZ2UKICAgICAgICAgICAgIG1vdnEgbW0zLCBtbTUKZGlmZiAtLWdpdCBhL3BuZ3dpby5jIGIvcG5nd2lvLmMKaW5kZXggYzcwMDYyNC4uYjgwOGQwYyAxMDA2NDQKLS0tIGEvcG5nd2lvLmMKKysrIGIvcG5nd2lvLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ3dpby5jIC0gZnVuY3Rpb25zIGZvciBkYXRhIG91dHB1dAogICoKLSAqIGxpYnBuZyAxLjAuOCAtIEp1bHkgMjQsIDIwMDAKKyAqIGxpYnBuZyAxLjAuOWJldGExIC0gTm92ZW1iZXIgMTAsIDIwMDAKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCmRpZmYgLS1naXQgYS9wbmd3cml0ZS5jIGIvcG5nd3JpdGUuYwppbmRleCAxNjdlNzcwLi4yMDNhZDdiIDEwMDY0NAotLS0gYS9wbmd3cml0ZS5jCisrKyBiL3BuZ3dyaXRlLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ3dyaXRlLmMgLSBnZW5lcmFsIHJvdXRpbmVzIHRvIHdyaXRlIGEgUE5HIGZpbGUKICAqCi0gKiBsaWJwbmcgMS4wLjggLSBKdWx5IDI0LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMSAtIE5vdmVtYmVyIDEwLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpAQCAtOTY0LDcgKzk2NCw2IEBACiBwbmdfc2V0X2ZpbHRlcihwbmdfc3RydWN0cCBwbmdfcHRyLCBpbnQgbWV0aG9kLCBpbnQgZmlsdGVycykKIHsKICAgIHBuZ19kZWJ1ZygxLCAiaW4gcG5nX3NldF9maWx0ZXJcbiIpOwotICAgLyogV2UgYWxsb3cgJ21ldGhvZCcgb25seSBmb3IgZnV0dXJlIGV4cGFuc2lvbiBvZiB0aGUgYmFzZSBmaWx0ZXIgbWV0aG9kLiAqLwogICAgaWYgKG1ldGhvZCA9PSBQTkdfRklMVEVSX1RZUEVfQkFTRSkKICAgIHsKICAgICAgIHN3aXRjaCAoZmlsdGVycyAmIChQTkdfQUxMX0ZJTFRFUlMgfCAweDA3KSkKZGlmZiAtLWdpdCBhL3BuZ3d0cmFuLmMgYi9wbmd3dHJhbi5jCmluZGV4IDI1N2NjZDEuLjExMGM2ZTcgMTAwNjQ0Ci0tLSBhL3BuZ3d0cmFuLmMKKysrIGIvcG5nd3RyYW4uYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5nd3RyYW4uYyAtIHRyYW5zZm9ybXMgdGhlIGRhdGEgaW4gYSByb3cgZm9yIFBORyB3cml0ZXJzCiAgKgotICogbGlicG5nIDEuMC44IC0gSnVseSAyNCwgMjAwMAorICogbGlicG5nIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMAogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKZGlmZiAtLWdpdCBhL3BuZ3d1dGlsLmMgYi9wbmd3dXRpbC5jCmluZGV4IGZiNzAyYzkuLmVhNThkMTUgMTAwNjQ0Ci0tLSBhL3BuZ3d1dGlsLmMKKysrIGIvcG5nd3V0aWwuYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5nd3V0aWwuYyAtIHV0aWxpdGllcyB0byB3cml0ZSBhIFBORyBmaWxlCiAgKgotICogbGlicG5nIDEuMC44IC0gSnVseSAyNCwgMjAwMAorICogbGlicG5nIDEuMC45YmV0YTEgLSBOb3ZlbWJlciAxMCwgMjAwMAogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKQEAgLTUxNCw4ICs1MTQsOCBAQAogCiAgICBwbmdfZGVidWcoMSwgImluIHBuZ193cml0ZV9QTFRFXG4iKTsKICAgIGlmICgoCi0jaWZkZWYgUE5HX1dSSVRFX0VNUFRZX1BMVEVfU1VQUE9SVEVECi0gICAgICAgICFwbmdfcHRyLT5lbXB0eV9wbHRlX3Blcm1pdHRlZCAmJgorI2lmIGRlZmluZWQoUE5HX01OR19GRUFUVVJFU19TVVBQT1JURUQpCisgICAgICAgICEocG5nX3B0ci0+bW5nX2ZlYXR1cmVzX3Blcm1pdHRlZCAmIFBOR19GTEFHX01OR19FTVBUWV9QTFRFKSAmJgogI2VuZGlmCiAgICAgICAgIG51bV9wYWwgPT0gMCkgfHwgbnVtX3BhbCA+IDI1NikKICAgICAgewpAQCAtNjcwLDYgKzY3MCw3IEBACiAgICAvKiBtYWtlIHN1cmUgd2UgaW5jbHVkZSB0aGUgTlVMTCBhZnRlciB0aGUgbmFtZSBhbmQgdGhlIGNvbXByZXNzaW9uIHR5cGUgKi8KICAgIHBuZ193cml0ZV9jaHVua19zdGFydChwbmdfcHRyLCAocG5nX2J5dGVwKXBuZ19pQ0NQLAogICAgICAgICAgIChwbmdfdWludF8zMiluYW1lX2xlbitwcm9maWxlX2xlbisyKTsKKyAgIG5ld19uYW1lW25hbWVfbGVuKzFdPTB4MDA7CiAgICBwbmdfd3JpdGVfY2h1bmtfZGF0YShwbmdfcHRyLCAocG5nX2J5dGVwKW5ld19uYW1lLCBuYW1lX2xlbiArIDIpOwogCiAgICBpZiAocHJvZmlsZV9sZW4pCkBAIC05OTYsOSArOTk3LDkgQEAKICAgIGlmIChjb2xvcl90eXBlID09IFBOR19DT0xPUl9UWVBFX1BBTEVUVEUpCiAgICB7CiAgICAgICBpZiAoCi0jaWZkZWYgUE5HX1dSSVRFX0VNUFRZX1BMVEVfU1VQUE9SVEVECi0gICAgICAgICAgKCFwbmdfcHRyLT5lbXB0eV9wbHRlX3Blcm1pdHRlZCB8fAotICAgICAgICAgIChwbmdfcHRyLT5lbXB0eV9wbHRlX3Blcm1pdHRlZCAmJiBwbmdfcHRyLT5udW1fcGFsZXR0ZSkpICYmCisjaWYgZGVmaW5lZChQTkdfTU5HX0ZFQVRVUkVTX1NVUFBPUlRFRCkKKyAgICAgICAgICAocG5nX3B0ci0+bnVtX3BhbGV0dGUgfHwKKyAgICAgICAgICAoIShwbmdfcHRyLT5tbmdfZmVhdHVyZXNfcGVybWl0dGVkICYgUE5HX0ZMQUdfTU5HX0VNUFRZX1BMVEUpKSkgJiYKICNlbmRpZgogICAgICAgICAgYmFjay0+aW5kZXggPiBwbmdfcHRyLT5udW1fcGFsZXR0ZSkKICAgICAgIHsKQEAgLTEwODMsNyArMTA4NCw3IEBACiAKICAgIHBuZ19kZWJ1ZzEoMiwgIktleXdvcmQgdG8gYmUgY2hlY2tlZCBpcyAnJXMnXG4iLCBrZXkpOwogCi0gICAqbmV3X2tleSA9IChwbmdfY2hhcnApcG5nX21hbGxvYyhwbmdfcHRyLCAocG5nX3VpbnRfMzIpKGtleV9sZW4gKyAxKSk7CisgICAqbmV3X2tleSA9IChwbmdfY2hhcnApcG5nX21hbGxvYyhwbmdfcHRyLCAocG5nX3VpbnRfMzIpKGtleV9sZW4gKyAyKSk7CiAKICAgIC8qIFJlcGxhY2Ugbm9uLXByaW50aW5nIGNoYXJhY3RlcnMgd2l0aCBhIGJsYW5rIGFuZCBwcmludCBhIHdhcm5pbmcgKi8KICAgIGZvciAoa3AgPSBrZXksIGRwID0gKm5ld19rZXk7ICprcCAhPSAnXDAnOyBrcCsrLCBkcCsrKQpAQCAtMjU1Myw2ICsyNTU0LDcgQEAKICAgIHBuZ19kZWJ1ZygxLCAiaW4gcG5nX3dyaXRlX2ZpbHRlcmVkX3Jvd1xuIik7CiAgICBwbmdfZGVidWcxKDIsICJmaWx0ZXIgPSAlZFxuIiwgZmlsdGVyZWRfcm93WzBdKTsKICAgIC8qIHNldCB1cCB0aGUgemxpYiBpbnB1dCBidWZmZXIgKi8KKwogICAgcG5nX3B0ci0+enN0cmVhbS5uZXh0X2luID0gZmlsdGVyZWRfcm93OwogICAgcG5nX3B0ci0+enN0cmVhbS5hdmFpbF9pbiA9ICh1SW50KXBuZ19wdHItPnJvd19pbmZvLnJvd2J5dGVzICsgMTsKICAgIC8qIHJlcGVhdCB1bnRpbCB3ZSBoYXZlIGNvbXByZXNzZWQgYWxsIHRoZSBkYXRhICovCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLmJlb3MgYi9zY3JpcHRzL21ha2VmaWxlLmJlb3MKaW5kZXggN2YzOTc5OS4uMzg5M2YyZSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5iZW9zCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuYmVvcwpAQCAtMzEsNyArMzEsNyBAQAogIyByZWFkIGxpYnBuZy50eHQgb3IgcG5nLmggdG8gc2VlIHdoeSBQTkdNQUogaXMgMi4gIFlvdSBzaG91bGQgbm90CiAjIGhhdmUgdG8gY2hhbmdlIGl0LgogUE5HTUFKID0gMgotUE5HTUlOID0gMS4wLjgKK1BOR01JTiA9IDEuMC45YmV0YTEKIFBOR1ZFUiA9ICQoUE5HTUFKKS4kKFBOR01JTikKIAogIyB3aGVyZSBtYWtlIGluc3RhbGwgcHV0cyBsaWJwbmcuYSwgbGlicG5nLnNvKiwgYW5kIHBuZy5oCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLmN5Z3dpbiBiL3NjcmlwdHMvbWFrZWZpbGUuY3lnd2luCmluZGV4IDQ2M2E2ZjcuLjNiOWU4YmEgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuY3lnd2luCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuY3lnd2luCkBAIC0yMiwxMyArMjIsNiBAQAogI1pMSUJMSUI9Li4vemxpYgogI1pMSUJJTkM9Li4vemxpYgogCi1TSEFSRURMSUI9bGlicG5nLmRsbAotU1RBVExJQj1saWJwbmcuYQotSU1QTElCPWxpYnBuZy5kbGwuYQotU0hBUkVEREVGPWxpYnBuZy5kZWYKLUxJQlM9JChTSEFSRURMSUIpICQoU1RBVExJQikKLUVYRT0uZXhlCi0KIEFMSUdOPQogIyBmb3IgaTM4NjoKICNBTElHTj0tbWFsaWduLWxvb3BzPTIgLW1hbGlnbi1mdW5jdGlvbnM9MgpAQCAtNDIsNiArMzUsMTkgQEAKIENGTEFHUz0tSSQoWkxJQklOQykgLVdhbGwgLU8zICQoQUxJR04pIC1mdW5yb2xsLWxvb3BzIFwKICAgICAgICAgLWZvbWl0LWZyYW1lLXBvaW50ZXIgCiAKKyMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDIuICBZb3Ugc2hvdWxkIG5vdAorIyBoYXZlIHRvIGNoYW5nZSBpdC4KK1BOR01BSiA9IDIKK1BOR01JTiA9IDEuMC45YmV0YTEKK1BOR1ZFUiA9ICQoUE5HTUFKKS4kKFBOR01JTikKKworU0hBUkVETElCPWN5Z3BuZyQoUE5HTUFKKS5kbGwKK1NUQVRMSUI9bGlicG5nLmEKK0lNUExJQj1saWJwbmcuZGxsLmEKK1NIQVJFRERFRj1saWJwbmcuZGVmCitMSUJTPSQoU0hBUkVETElCKSAkKFNUQVRMSUIpCitFWEU9LmV4ZQorCiBMREZMQUdTPS1MLiAtTCQoWkxJQkxJQikgLWxwbmcgLWx6CiBMRFNIQVJFRD1nY2MgLXNoYXJlZCAtV2wsLS1lbmFibGUtYXV0by1pbWFnZS1iYXNlCiBMREVYVFJBPS1XbCwtLW91dC1pbXBsaWI9JChJTVBMSUIpICQoU0hBUkVEREVGKQpAQCAtNDksMTkgKzU1LDEyIEBACiBSQU5MSUI9cmFubGliCiAjUkFOTElCPWVjaG8KIAotIyByZWFkIGxpYnBuZy50eHQgb3IgcG5nLmggdG8gc2VlIHdoeSBQTkdNQUogaXMgMi4gIFlvdSBzaG91bGQgbm90Ci0jIGhhdmUgdG8gY2hhbmdlIGl0LgotUE5HTUFKID0gMgotUE5HTUlOID0gMS4wLjhiZXRhMwotUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQotCiBJTkNQQVRIPSQocHJlZml4KS9pbmNsdWRlCiBMSUJQQVRIPSQocHJlZml4KS9saWIKIEJJTlBBVEg9JChwcmVmaXgpL2JpbgogTUFOUEFUSD0kKHByZWZpeCkvbWFuCiBNQU4zUEFUSD0kKE1BTlBBVEgpL21hbjMKIERPQ1BBVEg9JChwcmVmaXgpL2RvYy9saWJwbmctJChQTkdNSU4pCi1DWUdET0NQQVRIPSQocHJlZml4KS9kb2MvQ3lnd2luCiAKIE9CSlMgPSBwbmcubyBwbmdzZXQubyBwbmdnZXQubyBwbmdydXRpbC5vIHBuZ3RyYW5zLm8gcG5nd3V0aWwubyBcCiAJcG5ncmVhZC5vIHBuZ3Jpby5vIHBuZ3dpby5vIHBuZ3dyaXRlLm8gcG5ncnRyYW4ubyBcCkBAIC03Nyw3ICs3NiwxNSBAQAogJS5waWMubyA6ICUuYwogCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtRFBOR19CVUlMRF9ETEwgLW8gJEAgJDwKIAotYWxsOiAkKFNIQVJFRExJQikgJChTVEFUTElCKSBwbmd0ZXN0JChFWEUpIHBuZ3Rlc3Qtc3RhdCQoRVhFKQorYWxsOiBhbGwtc3RhdGljIGFsbC1zaGFyZWQKKworc3RhdGljOiBhbGwtc3RhdGljCisKK3NoYXJlZDogYWxsLXNoYXJlZAorCithbGwtc3RhdGljOiAkKFNUQVRMSUIpIHBuZ3Rlc3Qtc3RhdCQoRVhFKQorCithbGwtc2hhcmVkOiAkKFNIQVJFRExJQikgcG5ndGVzdCQoRVhFKQogCiBwbmdnY2NyZC5vOglwbmcuaCBwbmdjb25mLmggcG5nYXNtcmQuaAogCUBlY2hvICIiCkBAIC05MSw3ICs5OCw3IEBACiAJQGVjaG8gJyAgICBZb3UgY2FuIGlnbm9yZSB0aGUgc2luZ2xlICJjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uIicKIAlAZWNobyAnICAgIHdhcm5pbmcgYW5kIG11bHRpcGxlICI8dmFyaWFibGU+IGRlZmluZWQgYnV0IG5vdCB1c2VkIiB3YXJuaW5nczonCiAJQGVjaG8gIiIKLQkkKENDKSAtYyAkKENGTEFHUykgLW8gJEAgcG5nZ2NjcmQuYworCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtRFBOR19CVUlMRF9ETEwgLW8gJEAgcG5nZ2NjcmQuYwogCiAkKFNUQVRMSUIpOiAkKE9CSlMpCiAJYXIgcmMgJEAgJChPQkpTKQpAQCAtMTE1LDI0ICsxMjIsMzYgQEAKIHBuZ3Rlc3QubzogcG5ndGVzdC5jCiAJJChDQykgJChDRkxBR1MpIC1EUE5HX1NUQVRJQyAtRFpMSUJfU1RBVElDIC1jICQ8IC1vICRACiAKLXRlc3Q6IHRlc3QtZGxsIHRlc3Qtc3RhdAordGVzdDogdGVzdC1zdGF0aWMgdGVzdC1zaGFyZWQKIAotdGVzdC1zdGF0OiBwbmd0ZXN0LXN0YXQkKEVYRSkKK3Rlc3Qtc3RhdGljOiBwbmd0ZXN0LXN0YXQkKEVYRSkKIAkuL3BuZ3Rlc3Qtc3RhdAogCi10ZXN0LWRsbDogcG5ndGVzdCQoRVhFKQordGVzdC1zaGFyZWQ6IHBuZ3Rlc3QkKEVYRSkKIAkuL3BuZ3Rlc3QKIAotaW5zdGFsbDogJChTVEFUTElCKSAkKFNIQVJFRExJQikKLQktQGlmIFsgISAtZCAkKElOQ1BBVEgpICBdOyB0aGVuIG1rZGlyIC1wICQoSU5DUEFUSCk7IGZpCitpbnN0YWxsOiBpbnN0YWxsLXN0YXRpYyBpbnN0YWxsLXNoYXJlZAorCitpbnN0YWxsLXN0YXRpYzogJChTVEFUTElCKSBpbnN0YWxsLWhlYWRlcnMgaW5zdGFsbC1kb2NzIGluc3RhbGwtbWFuIAorCS1AaWYgWyAhIC1kICQoTElCUEFUSCkgXTsgdGhlbiBta2RpciAtcCAkKExJQlBBVEgpOyBmaQorCWluc3RhbGwgLW0gNzU1ICQoU1RBVExJQikgJChMSUJQQVRIKQorCitpbnN0YWxsLXNoYXJlZDogJChTSEFSRURMSUIpIGluc3RhbGwtaGVhZGVycyBpbnN0YWxsLWRvY3MgaW5zdGFsbC1tYW4KIAktQGlmIFsgISAtZCAkKExJQlBBVEgpIF07IHRoZW4gbWtkaXIgLXAgJChMSUJQQVRIKTsgZmkKIAktQGlmIFsgISAtZCAkKEJJTlBBVEgpIF07IHRoZW4gbWtkaXIgLXAgJChCSU5QQVRIKTsgZmkKLQktQGlmIFsgISAtZCAkKE1BTjNQQVRIKSBdOyB0aGVuIG1rZGlyIC1wICQoTUFOM1BBVEgpOyBmaQotCS1AaWYgWyAhIC1kICQoRE9DUEFUSCkgXTsgdGhlbiBta2RpciAtcCAkKERPQ1BBVEgpOyBmaQotCWluc3RhbGwgLW0gNjQ0IHBuZy5oIHBuZ2NvbmYuaCAkKElOQ1BBVEgpCi0JaW5zdGFsbCAtbSA3NTUgJChTVEFUTElCKSAkKElNUExJQikgJChMSUJQQVRIKQorCWluc3RhbGwgLW0gNzU1ICQoSU1QTElCKSAkKExJQlBBVEgpCiAJaW5zdGFsbCAtcyAtbSA3NTUgJChTSEFSRURMSUIpICQoQklOUEFUSCkKKworaW5zdGFsbC1oZWFkZXJzOgorCS1AaWYgWyAhIC1kICQoSU5DUEFUSCkgIF07IHRoZW4gbWtkaXIgLXAgJChJTkNQQVRIKTsgZmkKKwlpbnN0YWxsIC1tIDY0NCBwbmcuaCBwbmdjb25mLmggJChJTkNQQVRIKQorCitpbnN0YWxsLWRvY3M6CisJLUBpZiBbICEgLWQgJChET0NQQVRIKSBdOyB0aGVuIG1rZGlyIC1wICQoRE9DUEFUSCk7IGZpCiAJaW5zdGFsbCAtbSA2NDQgJChET0NTKSAkKERPQ1BBVEgpCisKK2luc3RhbGwtbWFuOgorCS1AaWYgWyAhIC1kICQoTUFOM1BBVEgpIF07IHRoZW4gbWtkaXIgLXAgJChNQU4zUEFUSCk7IGZpCiAJaW5zdGFsbCAtbSA2NDQgbGlicG5ncGYuMyBsaWJwbmcuMyAkKE1BTjNQQVRIKQogCiBjbGVhbjoKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuZGVjIGIvc2NyaXB0cy9tYWtlZmlsZS5kZWMKaW5kZXggYjg1NTJjMC4uOTFmNDU0MCAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5kZWMKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5kZWMKQEAgLTEsOSArMSwxMiBAQAogIyBtYWtlZmlsZSBmb3IgbGlicG5nIG9uIERFQyBBbHBoYSBVbml4CisjIENvcHlyaWdodCAoQykgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICMgQ29weXJpZ2h0IChDKSAxOTk1IEd1eSBFcmljIFNjaGFsbmF0LCBHcm91cCA0MiwgSW5jLgogIyBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKIAogIyB3aGVyZSBtYWtlIGluc3RhbGwgcHV0cyBsaWJwbmcuYSBhbmQgcG5nLmgKIHByZWZpeD0vdXNyL2xvY2FsCitJTkNQQVRIPSQocHJlZml4KS9pbmNsdWRlCitMSUJQQVRIPSQocHJlZml4KS9saWIKIAogIyBXaGVyZSB0aGUgemxpYiBsaWJyYXJ5IGFuZCBpbmNsdWRlIGZpbGVzIGFyZSBsb2NhdGVkCiAjWkxJQkxJQj0vdXNyL2xvY2FsL2xpYgpAQCAtMTQsNyArMTcsNyBAQAogIyByZWFkIGxpYnBuZy50eHQgb3IgcG5nLmggdG8gc2VlIHdoeSBQTkdNQUogaXMgMi4gIFlvdSBzaG91bGQgbm90CiAjIGhhdmUgdG8gY2hhbmdlIGl0LgogUE5HTUFKID0gMgotUE5HTUlOID0gMS4wLjgKK1BOR01JTiA9IDEuMC45YmV0YTEKIFBOR1ZFUiA9ICQoUE5HTUFKKS4kKFBOR01JTikKIAogQ0M9Y2MKQEAgLTI0LDcgKzI3LDYgQEAKICNSQU5MSUI9ZWNobwogUkFOTElCPXJhbmxpYgogCi0KIE9CSlMgPSBwbmcubyBwbmdzZXQubyBwbmdnZXQubyBwbmdydXRpbC5vIHBuZ3RyYW5zLm8gcG5nd3V0aWwubyBcCiAJcG5ncmVhZC5vIHBuZ3Jpby5vIHBuZ3dpby5vIHBuZ3dyaXRlLm8gcG5ncnRyYW4ubyBcCiAJcG5nd3RyYW4ubyBwbmdtZW0ubyBwbmdlcnJvci5vIHBuZ3ByZWFkLm8KQEAgLTUxLDE4ICs1MywxOCBAQAogCS4vcG5ndGVzdAogCiBpbnN0YWxsOiBsaWJwbmcuYSBsaWJwbmcuc28uJChQTkdWRVIpCi0JLUBta2RpciAkKHByZWZpeCkvaW5jbHVkZQotCS1AbWtkaXIgJChwcmVmaXgpL2xpYgotCWNwIHBuZy5oICQocHJlZml4KS9pbmNsdWRlCi0JY3AgcG5nY29uZi5oICQocHJlZml4KS9pbmNsdWRlCi0JY2htb2QgNjQ0ICQocHJlZml4KS9pbmNsdWRlL3BuZy5oCi0JY2htb2QgNjQ0ICQocHJlZml4KS9pbmNsdWRlL3BuZ2NvbmYuaAotCWNwIGxpYnBuZy5hICQocHJlZml4KS9saWIKLQljcCBsaWJwbmcuc28uJChQTkdWRVIpICQocHJlZml4KS9saWIKLQljaG1vZCA2NDQgJChwcmVmaXgpL2xpYi9saWJwbmcuYQotCWNobW9kIDY0NCAkKHByZWZpeCkvbGliL2xpYnBuZy5zby4kKFBOR1ZFUikKKwktQG1rZGlyICQoSU5DUEFUSCkKKwktQG1rZGlyICQoTElCUEFUSCkKKwljcCBwbmcuaCAkKElOQ1BBVEgpCisJY3AgcG5nY29uZi5oICQoSU5DUEFUSCkKKwljaG1vZCA2NDQgJChJTkNQQVRIKS9wbmcuaAorCWNobW9kIDY0NCAkKElOQ1BBVEgpL3BuZ2NvbmYuaAorCWNwIGxpYnBuZy5hICQoTElCUEFUSCkKKwljcCBsaWJwbmcuc28uJChQTkdWRVIpICQoTElCUEFUSCkKKwljaG1vZCA2NDQgJChMSUJQQVRIKS9saWJwbmcuYQorCWNobW9kIDY0NCAkKExJQlBBVEgpL2xpYnBuZy5zby4kKFBOR1ZFUikKIAktQC9iaW4vcm0gLWYgJChMSUJQQVRIKS9saWJwbmcuc28uJChQTkdNQUopICQoTElCUEFUSCkvbGlicG5nLnNvCi0JKGNkICQoTElCUEFUSCk7IGxuIC1mIC1zIGxpYnBuZy5zby4kKFBOR1ZFUikgbGlicG5nLnNvLiQoUE5HTUFKKTsgXAorCShjZCAkKExJQlBBVEgpKTsgbG4gLWYgLXMgbGlicG5nLnNvLiQoUE5HVkVSKSBsaWJwbmcuc28uJChQTkdNQUopOyBcCiAJIGxuIC1mIC1zIGxpYnBuZy5zby4kKFBOR01BSikgbGlicG5nLnNvKQogCiBjbGVhbjoKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuZ2NtbXggYi9zY3JpcHRzL21ha2VmaWxlLmdjbW14CmluZGV4IDg3N2JiNDkuLmY5N2IyZmYgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuZ2NtbXgKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5nY21teApAQCAtMjksNiArMjksNyBAQAogQ0ZMQUdTPS1EUE5HX1VTRV9QTkdHQ0NSRCAtSSQoWkxJQklOQykgLVdhbGwgLU8zICQoQUxJR04pIC1mdW5yb2xsLWxvb3BzIFwKICAgICAgICAgLWZvbWl0LWZyYW1lLXBvaW50ZXIgICMgJChXQVJOTU9SRSkgLWcgLURQTkdfREVCVUc9NQogTERGTEFHUz0tTC4gLVdsLC1ycGF0aCwuIC1MJChaTElCTElCKSAtV2wsLXJwYXRoLCQoWkxJQkxJQikgLWxwbmcgLWx6IC1sbQorTERGTEFHU19BPS1MJChaTElCTElCKSAtV2wsLXJwYXRoLCQoWkxJQkxJQikgbGlicG5nLmEgLWx6IC1sbQogCiBSQU5MSUI9cmFubGliCiAjUkFOTElCPWVjaG8KQEAgLTM2LDcgKzM3LDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDIuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDIKLVBOR01JTiA9IDEuMC44CitQTkdNSU4gPSAxLjAuOWJldGExCiBQTkdWRVIgPSAkKFBOR01BSikuJChQTkdNSU4pCiAKIElOQ1BBVEg9JChwcmVmaXgpL2luY2x1ZGUKQEAgLTUzLDcgKzU0LDcgQEAKIC5jLnBpYy5vOgogCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtZlBJQyAtbyAkQCAkKi5jCiAKLWFsbDogbGlicG5nLmEgbGlicG5nLnNvIHBuZ3Rlc3QKK2FsbDogbGlicG5nLmEgbGlicG5nLnNvIHBuZ3Rlc3QgcG5ndGVzdC1zdGF0aWMKIAogcG5nZ2NjcmQubzoJcG5nZ2NjcmQuYyBwbmcuaCBwbmdjb25mLmggcG5nYXNtcmQuaAogCUBlY2hvICIiCkBAIC04Niw4ICs4NywxOCBAQAogcG5ndGVzdDogcG5ndGVzdC5vIGxpYnBuZy5zbwogCSQoQ0MpIC1vIHBuZ3Rlc3QgJChDRkxBR1MpIHBuZ3Rlc3QubyAkKExERkxBR1MpCiAKLXRlc3Q6IHBuZ3Rlc3QKK3BuZ3Rlc3Qtc3RhdGljOiBwbmd0ZXN0Lm8gbGlicG5nLmEKKwkkKENDKSAtbyBwbmd0ZXN0LXN0YXRpYyAkKENGTEFHUykgcG5ndGVzdC5vICQoTERGTEFHU19BKQorCit0ZXN0OiBwbmd0ZXN0IHBuZ3Rlc3Qtc3RhdGljCisJQGVjaG8gIiIKKwlAZWNobyAiICAgVGVzdGluZyBkeW5hbWljYWxseSBsaW5rZWQgdmVyc2lvbjoiCisJQGVjaG8gIiIKIAkuL3BuZ3Rlc3QKKwlAZWNobyAiIgorCUBlY2hvICIgICBUZXN0aW5nIHN0YXRpY2FsbHkgbGlua2VkIHZlcnNpb246IgorCUBlY2hvICIiCisJLi9wbmd0ZXN0LXN0YXRpYwogCiBpbnN0YWxsOiBsaWJwbmcuYSBsaWJwbmcuc28uJChQTkdWRVIpCiAJLUBpZiBbICEgLWQgJChJTkNQQVRIKSAgXTsgdGhlbiBta2RpciAkKElOQ1BBVEgpOyBmaQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5ocHV4IGIvc2NyaXB0cy9tYWtlZmlsZS5ocHV4CmluZGV4IDdmZTU1YjAuLmYxM2EwMTQgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuaHB1eAorKysgYi9zY3JpcHRzL21ha2VmaWxlLmhwdXgKQEAgLTE4LDcgKzE4LDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDIuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDIKLVBOR01JTiA9IDEuMC44CitQTkdNSU4gPSAxLjAuOWJldGExCiBQTkdWRVIgPSAkKFBOR01BSikuJChQTkdNSU4pCiAKICMgd2hlcmUgbWFrZSBpbnN0YWxsIHB1dHMgbGlicG5nLmEgYW5kIHBuZy5oCkBAIC02Nyw3ICs2Nyw3IEBACiAJY3AgbGlicG5nLmEgbGlicG5nLnNsLiQoUE5HVkVSKSAkKHByZWZpeCkvbGliCiAJY2htb2QgNjQ0ICQocHJlZml4KS9saWIvbGlicG5nLmEKIAljaG1vZCA3NTUgJChwcmVmaXgpL2xpYi9saWJwbmcuc2wuJChQTkdWRVIpCi0JKGNkICQocHJlZml4KS9saWI7IGxuIC1mIC1zIGxpYnBuZy5zbC4kKFBOR1ZFUikgbGlicG5nLnNsLiQoTU5HTUFKKTsgXAorCShjZCAkKHByZWZpeCkvbGliOyBsbiAtZiAtcyBsaWJwbmcuc2wuJChQTkdWRVIpIGxpYnBuZy5zbC4kKFBOR01BSik7IFwKIAlsbiAtZiAtcyBsaWJwbmcuc2wuJChQTkdNQUopIGxpYnBuZy5zbCkKIAogY2xlYW46CmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLmxpbnV4IGIvc2NyaXB0cy9tYWtlZmlsZS5saW51eAppbmRleCAyNjgwZThhLi4zNTEyYmZiIDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLmxpbnV4CisrKyBiL3NjcmlwdHMvbWFrZWZpbGUubGludXgKQEAgLTM0LDcgKzM0LDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDIuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDIKLVBOR01JTiA9IDEuMC44CitQTkdNSU4gPSAxLjAuOWJldGExCiBQTkdWRVIgPSAkKFBOR01BSikuJChQTkdNSU4pCiAKIElOQ1BBVEg9JChwcmVmaXgpL2luY2x1ZGUKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuc2NvIGIvc2NyaXB0cy9tYWtlZmlsZS5zY28KaW5kZXggNjA0ZDYxNC4uZGZiZjgxMyAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5zY28KKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5zY28KQEAgLTI1LDcgKzI1LDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDIuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDIKLVBOR01JTiA9IDEuMC44CitQTkdNSU4gPSAxLjAuOWJldGExCiBQTkdWRVIgPSAkKFBOR01BSikuJChQTkdNSU4pCiAKIElOQ1BBVEg9JChwcmVmaXgpL2luY2x1ZGUKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuc2dnY2MgYi9zY3JpcHRzL21ha2VmaWxlLnNnZ2NjCmluZGV4IDc4MmZjNzQuLjA3YWU4MDUgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuc2dnY2MKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5zZ2djYwpAQCAtMTksOCArMTksOCBAQAogTERGTEFHUz0tTC4gLUwkKFpMSUJMSUIpIC1scG5nIC1seiAtbG0KIExEU0hBUkVEPWdjYyAtc2hhcmVkCiAKLVZFUj0xLjAuOAotTElCUz1saWJwbmcuc28uMS4wLjgKK1ZFUj0xLjAuOWJldGExCitMSUJTPWxpYnBuZy5zby4xLjAuOWJldGExCiBTSEFSRURMSUI9bGlicG5nLnNvCiBsaWJkaXI9JChwcmVmaXgpL2xpYjMyCiAKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuc29sYXJpcyBiL3NjcmlwdHMvbWFrZWZpbGUuc29sYXJpcwppbmRleCA4MjA5MjU1Li4yYTIxNDExIDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLnNvbGFyaXMKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5zb2xhcmlzCkBAIC0zMSw3ICszMSw3IEBACiAjIHJlYWQgbGlicG5nLnR4dCBvciBwbmcuaCB0byBzZWUgd2h5IFBOR01BSiBpcyAyLiAgWW91IHNob3VsZCBub3QKICMgaGF2ZSB0byBjaGFuZ2UgaXQuCiBQTkdNQUogPSAyCi1QTkdNSU4gPSAxLjAuOAorUE5HTUlOID0gMS4wLjliZXRhMQogUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQogCiBJTkNQQVRIPSQocHJlZml4KS9pbmNsdWRlCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2V2bXMuY29tIGIvc2NyaXB0cy9tYWtldm1zLmNvbQppbmRleCA4ZjhiZjMyLi4wMDM3MzI2IDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2V2bXMuY29tCisrKyBiL3NjcmlwdHMvbWFrZXZtcy5jb20KQEAgLTMsNiArMywxOSBAQAogJCEKICQhIENoZWNrIGZvciBNTUsvTU1TCiAkIQorJCEgVGhpcyBwcm9jZWR1cmUgYWNjZXB0cyBvbmUgcGFyYW1ldGVyIChjb250cmliKSwgd2hpY2ggY2F1c2VzIGl0IHRvIGJ1aWxkCiskISB0aGUgcHJvZ3JhbXMgZnJvbSB0aGUgY29udHJpYiBkaXJlY3RvcnkgaW5zdGVhZCBvZiBsaWJwbmcuCiskIQorJCBwMSA9IGYkZWRpdChwMSwiVVBDQVNFIikKKyQgaWYgcDEgLmVxcy4gIkNPTlRSSUIiCiskIHRoZW4KKyQgICBzZXQgZGVmIFsuY29udHJpYi5ncmVnYm9va10KKyQgICBAbWFrZXZtcworJCAgIHNldCBkZWYgWy0ucG5nbWludXNdCiskICAgQG1ha2V2bXMKKyQgICBzZXQgZGVmIFstLV0KKyQgICBleGl0IAorJCBlbmRpZgogJCBNYWtlID0gIiIKICQgSWYgRiRTZWFyY2ggKCJTeXMkU3lzdGVtOk1NUy5FWEUiKSAubmVzLiAiIiBUaGVuIE1ha2UgPSAiTU1TIgogJCBJZiBGJFR5cGUgKE1NSykgLmVxcy4gIlNUUklORyIgVGhlbiBNYWtlID0gIk1NSyIKQEAgLTgzLDYgKzk2LDcgQEAKICQgICB3cml0ZSBzeXMkb3V0cHV0ICJUZXN0aW5nIExpYnBuZy4uLiIKICQgICBydW4gcG5ndGVzdAogJCAgZWxzZQorJCAgIGlmIGYkc2VhcmNoKCJERVNDUklQLk1NUyIpIC5lcXMuICIiIHRoZW4gY29weS9ub2xvZyBbLlNDUklQVFNdREVTQ1JJUC5NTVMgW10KICQgICAnbWFrZScvbWFjcm89KCdjb21wJyx6bGlic3JjPSd6bGlic3JjJykKICQgIGVuZGlmCiAkIHdyaXRlIHN5cyRvdXRwdXQgIkxpYnBuZyBidWlsZCBjb21wbGV0ZWQiCkBAIC0xMjgsNCArMTQyLDMgQEAKICRFeGl0OgogJCBJZiBWIFRoZW4gU2V0IFZlcmlmeQogJEVORFNVQlJPVVRJTkUKLQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9wbmdkZWYucGFzIGIvc2NyaXB0cy9wbmdkZWYucGFzCmluZGV4IDE5MDU5MzEuLjdmMGQ1YWQgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvcG5nZGVmLnBhcworKysgYi9zY3JpcHRzL3BuZ2RlZi5wYXMKQEAgLTUsOCArNSw4IEBACiBpbnRlcmZhY2UKIAogY29uc3QKLSAgUE5HX0xJQlBOR19WRVJfU1RSSU5HID0gJzEuMC44JzsKLSAgUE5HX0xJQlBOR19WRVIgICAgICAgID0gIDEwMDA4OworICBQTkdfTElCUE5HX1ZFUl9TVFJJTkcgPSAnMS4wLjliZXRhMSc7CisgIFBOR19MSUJQTkdfVkVSICAgICAgICA9ICAxMDAwOTsKIAogdHlwZQogICBwbmdfdWludF8zMiA9IENhcmRpbmFsOwo=