From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Natarajan, Mekala (CTS)" To: "'ecos-discuss@sourceware.cygnus.com'" Subject: [ECOS] config Date: Fri, 09 Feb 2001 05:22:00 -0000 Message-id: <8F1D166D08ACD41196EE00B0D020944B68B663@CTSINENTSXUB> X-SW-Source: 2001-02/msg00137.html Content-type: multipart/mixed; boundary="----------=_1583532882-474-7" This is a multi-part message in MIME format... ------------=_1583532882-474-7 Content-length: 1075 > <> <> > [Natarajan] > Hi, > i added the patches which was contributed by fabrice for ethernet > support. > i am using i386-pc target..has anyone else tried with his patch included > into the hal of i386.. > to get the diagnostic output in the output(diag_printf). It has been > specified in the user manual to enable the > CYGSEM_HAL_VIRTUAL_VECTOR_DIAG . I enabled that and tried but the system > hangs. > > How can see the diagnostic output in the console through virtual vector > table. > > regards, > mekala > > This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Any unauthorised review, use, disclosure, dissemination, forwarding, printing or copying of this email or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful. Visit us at http://www.cognizant.com ------------=_1583532882-474-7 Content-Type: text/plain; charset=us-ascii; name="application.ecc" Content-Disposition: inline; filename="application.ecc" Content-Transfer-Encoding: base64 Content-Length: 498854 IyBlQ29zIHNhdmVkIGNvbmZpZ3VyYXRpb24KCiMgLS0tLSBjb21tYW5kcyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQojIFRoaXMgc2VjdGlvbiBjb250YWlucyBpbmZvcm1hdGlv biBhYm91dCB0aGUgc2F2ZWZpbGUgZm9ybWF0LgojIEl0IHNob3VsZCBub3Qg YmUgZWRpdGVkLiBBbnkgbW9kaWZpY2F0aW9ucyBtYWRlIHRvIHRoaXMgc2Vj dGlvbgojIG1heSBtYWtlIGl0IGltcG9zc2libGUgZm9yIHRoZSBjb25maWd1 cmF0aW9uIHRvb2xzIHRvIHJlYWQKIyB0aGUgc2F2ZWZpbGUuCgpjZGxfc2F2 ZWZpbGVfdmVyc2lvbiAxOwpjZGxfc2F2ZWZpbGVfY29tbWFuZCBjZGxfc2F2 ZWZpbGVfdmVyc2lvbiB7fTsKY2RsX3NhdmVmaWxlX2NvbW1hbmQgY2RsX3Nh dmVmaWxlX2NvbW1hbmQge307CmNkbF9zYXZlZmlsZV9jb21tYW5kIGNkbF9j b25maWd1cmF0aW9uIHsgZGVzY3JpcHRpb24gaGFyZHdhcmUgdGVtcGxhdGUg cGFja2FnZSB9OwpjZGxfc2F2ZWZpbGVfY29tbWFuZCBjZGxfcGFja2FnZSB7 IHZhbHVlX3NvdXJjZSB1c2VyX3ZhbHVlIHdpemFyZF92YWx1ZSBpbmZlcnJl ZF92YWx1ZSB9OwpjZGxfc2F2ZWZpbGVfY29tbWFuZCBjZGxfY29tcG9uZW50 IHsgdmFsdWVfc291cmNlIHVzZXJfdmFsdWUgd2l6YXJkX3ZhbHVlIGluZmVy cmVkX3ZhbHVlIH07CmNkbF9zYXZlZmlsZV9jb21tYW5kIGNkbF9vcHRpb24g eyB2YWx1ZV9zb3VyY2UgdXNlcl92YWx1ZSB3aXphcmRfdmFsdWUgaW5mZXJy ZWRfdmFsdWUgfTsKY2RsX3NhdmVmaWxlX2NvbW1hbmQgY2RsX2ludGVyZmFj ZSB7IHZhbHVlX3NvdXJjZSB1c2VyX3ZhbHVlIHdpemFyZF92YWx1ZSBpbmZl cnJlZF92YWx1ZSB9OwoKIyAtLS0tIHRvcGxldmVsIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMg VGhpcyBzZWN0aW9uIGRlZmluZXMgdGhlIHRvcGxldmVsIGNvbmZpZ3VyYXRp b24gb2JqZWN0LiBUaGUgb25seQojIHZhbHVlcyB0aGF0IGNhbiBiZSBjaGFu Z2VkIGFyZSB0aGUgbmFtZSBvZiB0aGUgY29uZmlndXJhdGlvbiBhbmQKIyB0 aGUgZGVzY3JpcHRpb24gZmllbGQuIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBt b2RpZnkgdGhlIHRhcmdldCwKIyB0aGUgdGVtcGxhdGUgb3IgdGhlIHNldCBv ZiBwYWNrYWdlcyBzaW1wbHkgYnkgZWRpdGluZyB0aGUgbGluZXMKIyBiZWxv dyBiZWNhdXNlIHRoZXNlIGNoYW5nZXMgaGF2ZSB3aWRlLXJhbmdpbmcgZWZm ZWN0cy4gSW5zdGVhZAojIHRoZSBhcHByb3ByaWF0ZSB0b29scyBzaG91bGQg YmUgdXNlZCB0byBtYWtlIHN1Y2ggbW9kaWZpY2F0aW9ucy4KCmNkbF9jb25m aWd1cmF0aW9uIGVDb3MgewogICAgZGVzY3JpcHRpb24gIiIgOwoKICAgICMg VGhlc2UgZmllbGRzIHNob3VsZCBub3QgYmUgbW9kaWZpZWQuCiAgICBoYXJk d2FyZSAgICBwYyA7CiAgICB0ZW1wbGF0ZSAgICBkZWZhdWx0IDsKICAgIHBh Y2thZ2UgLXRlbXBsYXRlIENZR1BLR19IQUwgY3VycmVudCA7CiAgICBwYWNr YWdlIC10ZW1wbGF0ZSBDWUdQS0dfSU8gY3VycmVudCA7CiAgICBwYWNrYWdl IC10ZW1wbGF0ZSBDWUdQS0dfSU9fU0VSSUFMIGN1cnJlbnQgOwogICAgcGFj a2FnZSAtdGVtcGxhdGUgQ1lHUEtHX0lORlJBIGN1cnJlbnQgOwogICAgcGFj a2FnZSAtdGVtcGxhdGUgQ1lHUEtHX0tFUk5FTCBjdXJyZW50IDsKICAgIHBh Y2thZ2UgLXRlbXBsYXRlIENZR1BLR19NRU1BTExPQyBjdXJyZW50IDsKICAg IHBhY2thZ2UgLXRlbXBsYXRlIENZR1BLR19JU09JTkZSQSBjdXJyZW50IDsK ICAgIHBhY2thZ2UgLXRlbXBsYXRlIENZR1BLR19MSUJDIGN1cnJlbnQgOwog ICAgcGFja2FnZSAtdGVtcGxhdGUgQ1lHUEtHX0xJQkNfSTE4TiBjdXJyZW50 IDsKICAgIHBhY2thZ2UgLXRlbXBsYXRlIENZR1BLR19MSUJDX1NFVEpNUCBj dXJyZW50IDsKICAgIHBhY2thZ2UgLXRlbXBsYXRlIENZR1BLR19MSUJDX1NJ R05BTFMgY3VycmVudCA7CiAgICBwYWNrYWdlIC10ZW1wbGF0ZSBDWUdQS0df TElCQ19TVEFSVFVQIGN1cnJlbnQgOwogICAgcGFja2FnZSAtdGVtcGxhdGUg Q1lHUEtHX0xJQkNfU1RESU8gY3VycmVudCA7CiAgICBwYWNrYWdlIC10ZW1w bGF0ZSBDWUdQS0dfTElCQ19TVERMSUIgY3VycmVudCA7CiAgICBwYWNrYWdl IC10ZW1wbGF0ZSBDWUdQS0dfTElCQ19TVFJJTkcgY3VycmVudCA7CiAgICBw YWNrYWdlIC10ZW1wbGF0ZSBDWUdQS0dfTElCQ19USU1FIGN1cnJlbnQgOwog ICAgcGFja2FnZSAtdGVtcGxhdGUgQ1lHUEtHX0xJQk0gY3VycmVudCA7CiAg ICBwYWNrYWdlIC10ZW1wbGF0ZSBDWUdQS0dfSU9fV0FMTENMT0NLIGN1cnJl bnQgOwogICAgcGFja2FnZSAtdGVtcGxhdGUgQ1lHUEtHX0VSUk9SIGN1cnJl bnQgOwogICAgcGFja2FnZSAtaGFyZHdhcmUgQ1lHUEtHX0hBTF9JMzg2IGN1 cnJlbnQgOwogICAgcGFja2FnZSAtaGFyZHdhcmUgQ1lHUEtHX0hBTF9JMzg2 X1BDIGN1cnJlbnQgOwogICAgcGFja2FnZSAtaGFyZHdhcmUgQ1lHUEtHX0lP X1NFUklBTF9JMzg2X1BDIGN1cnJlbnQgOwogICAgcGFja2FnZSAtaGFyZHdh cmUgQ1lHUEtHX0lPX1BDSSBjdXJyZW50IDsKICAgIHBhY2thZ2UgLWhhcmR3 YXJlIENZR1BLR19ERVZTX0VUSF9JODI1NTkgY3VycmVudCA7CiAgICBwYWNr YWdlIENZR1BLR19ORVQgY3VycmVudCA7CiAgICBwYWNrYWdlIENZR1BLR19J T19FVEhfRFJJVkVSUyBjdXJyZW50IDsKfTsKCiMgLS0tLSBjb25mbGljdHMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQojIFRoZXJlIGFyZSBubyBjb25mbGljdHMuCgojIC0tLS0g Y29udGVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIyA+CiMgPgojIEdsb2JhbCBidWlsZCBv cHRpb25zCiMgR2xvYmFsIGJ1aWxkIG9wdGlvbnMgaW5jbHVkaW5nIGNvbnRy b2wgb3ZlcgojIGNvbXBpbGVyIGZsYWdzLCBsaW5rZXIgZmxhZ3MgYW5kIGNo b2ljZSBvZiB0b29sY2hhaW4uCiMKY2RsX2NvbXBvbmVudCBDWUdCTERfR0xP QkFMX09QVElPTlMgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZh bHVlLgoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZl Y3RlZCBieSB0aGlzIHZhbHVlCn07CgojID4KIyBHbG9iYWwgY29tbWFuZCBw cmVmaXgKIyBUaGlzIG9wdGlvbiBzcGVjaWZpZXMgdGhlIGNvbW1hbmQgcHJl Zml4IHVzZWQgd2hlbgojIGludm9raW5nIHRoZSBidWlsZCB0b29scy4gSWYg eW91ciBob3N0IG9wZXJhdGluZyBzeXN0ZW0KIyBpcyBMaW51eCB5b3UgY2Fu IHNldCB0aGlzIHRvIGVtcHR5IHRvIHVzZSB5b3VyIG5hdGl2ZSB0b29scy4K IyBJZiBzbywgeW91ciBuYXRpdmUgZ2NjIG11c3QgYmUgZ2NjLTIuOTUuMiBv ciBsYXRlciwgYW5kCiMgImxkIC12IiBtdXN0IHJlcG9ydCBhIHZlcnNpb24g bW9yZSByZWNlbnQgdGhhbiAyLjkuMS4KIwpjZGxfb3B0aW9uIENZR0JMRF9H TE9CQUxfQ09NTUFORF9QUkVGSVggewogICAgIyBGbGF2b3I6IGRhdGEKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSBpMzg2LWVsZgog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiBpMzg2LWVsZgp9OwoKIyBHbG9iYWwgY29tcGlsZXIgZmxhZ3MKIyBUaGlz IG9wdGlvbiBjb250cm9scyB0aGUgZ2xvYmFsIGNvbXBpbGVyIGZsYWdzIHdo aWNoCiMgYXJlIHVzZWQgdG8gY29tcGlsZSBhbGwgcGFja2FnZXMgYnkKIyBk ZWZhdWx0LiBJbmRpdmlkdWFsIHBhY2thZ2VzIG1heSBkZWZpbmUKIyBvcHRp b25zIHdoaWNoIG92ZXJyaWRlIHRoZXNlIGdsb2JhbCBmbGFncy4KIwpjZGxf b3B0aW9uIENZR0JMRF9HTE9CQUxfQ0ZMQUdTIHsKICAgICMgRmxhdm9yOiBk YXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgIi1X YWxsIC1XcG9pbnRlci1hcml0aCAtV3N0cmljdC1wcm90b3R5cGVzIC1XaW5s aW5lIC1XdW5kZWYgLVdvdmVybG9hZGVkLXZpcnR1YWwgLWcgLU8yIC1mZnVu Y3Rpb24tc2VjdGlvbnMgLWZkYXRhLXNlY3Rpb25zIC1mbm8tcnR0aSAtZm5v LWV4Y2VwdGlvbnMgLWZ2dGFibGUtZ2MgLWZpbml0LXByaW9yaXR5IgogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAi LVdhbGwgLVdwb2ludGVyLWFyaXRoIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdp bmxpbmUgLVd1bmRlZiAtV292ZXJsb2FkZWQtdmlydHVhbCAtZyAtTzIgLWZm dW5jdGlvbi1zZWN0aW9ucyAtZmRhdGEtc2VjdGlvbnMgLWZuby1ydHRpIC1m bm8tZXhjZXB0aW9ucyAtZnZ0YWJsZS1nYyAtZmluaXQtcHJpb3JpdHkiCn07 CgojIEdsb2JhbCBsaW5rZXIgZmxhZ3MKIyBUaGlzIG9wdGlvbiBjb250cm9s cyB0aGUgZ2xvYmFsIGxpbmtlciBmbGFncy4gSW5kaXZpZHVhbAojIHBhY2th Z2VzIG1heSBkZWZpbmUgb3B0aW9ucyB3aGljaCBvdmVycmlkZSB0aGVzZSBn bG9iYWwgZmxhZ3MuCiMKY2RsX29wdGlvbiBDWUdCTERfR0xPQkFMX0xERkxB R1MgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAiLWcgLW5vc3RkbGliIC1XbCwtLWdjLXNlY3Rp b25zIC1XbCwtc3RhdGljIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAog ICAgIyBEZWZhdWx0IHZhbHVlOiAiLWcgLW5vc3RkbGliIC1XbCwtLWdjLXNl Y3Rpb25zIC1XbCwtc3RhdGljIgp9OwoKIyBCdWlsZCBHREIgc3R1YiBsb2Fk ZXIgaW1hZ2UKIyBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBidWlsZGluZyBv ZiB0aGUgR0RCIHN0dWJzIGZvciB0aGUKIyBib2FyZC4gVGhlIGNvbW1vbiBI QUwgY29udHJvbHMgdGFrZXMgY2FyZSBvZiBtb3N0IG9mIHRoZQojIGJ1aWxk IHByb2Nlc3MsIGJ1dCB0aGUgZmluYWwgY29udmVyc2lvbiBmcm9tIEVMRiBp bWFnZSB0bwojIGJpbmFyeSBkYXRhIGlzIGhhbmRsZWQgYnkgdGhlIHBsYXRm b3JtIENETCwgYWxsb3dpbmcKIyByZWxvY2F0aW9uIG9mIHRoZSBkYXRhIGlm IG5lY2Vzc2FyeS4KIwpjZGxfb3B0aW9uIENZR0JMRF9CVUlMRF9HREJfU1RV QlMgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICBDWUdf SEFMX1NUQVJUVVAgPT0gIkZMT1BQWSIgCiAgICAjICAgICBDWUdfSEFMX1NU QVJUVVAgPT0gUkFNCiAgICAjICAgLS0+IDAKICAgICMgUmVxdWlyZXM6IENZ R1NFTV9IQUxfUk9NX01PTklUT1IKICAgICMgICAgIENZR1NFTV9IQUxfUk9N X01PTklUT1IgPT0gMAogICAgIyAgIC0tPiAwCiAgICAjIFJlcXVpcmVzOiBD WUdCTERfQlVJTERfQ09NTU9OX0dEQl9TVFVCUwogICAgIyAgICAgQ1lHQkxE X0JVSUxEX0NPTU1PTl9HREJfU1RVQlMgPT0gMAogICAgIyAgIC0tPiAwCiAg ICAjIFJlcXVpcmVzOiBDWUdEQkdfSEFMX0RFQlVHX0dEQl9JTkNMVURFX1NU VUJTCiAgICAjICAgICBDWUdEQkdfSEFMX0RFQlVHX0dEQl9JTkNMVURFX1NU VUJTID09IDAKICAgICMgICAtLT4gMAogICAgIyBSZXF1aXJlczogISBDWUdE QkdfSEFMX0RFQlVHX0dEQl9CUkVBS19TVVBQT1JUCiAgICAjICAgICBDWUdE QkdfSEFMX0RFQlVHX0dEQl9CUkVBS19TVVBQT1JUID09IDAKICAgICMgICAt LT4gMQogICAgIyBSZXF1aXJlczogISBDWUdEQkdfSEFMX0RFQlVHX0dEQl9D VFJMQ19TVVBQT1JUCiAgICAjICAgICBDWUdEQkdfSEFMX0RFQlVHX0dEQl9D VFJMQ19TVVBQT1JUID09IDEKICAgICMgICAtLT4gMAogICAgIyBSZXF1aXJl czogISBDWUdEQkdfSEFMX0RFQlVHX0dEQl9USFJFQURfU1VQUE9SVAogICAg IyAgICAgQ1lHREJHX0hBTF9ERUJVR19HREJfVEhSRUFEX1NVUFBPUlQgPT0g MQogICAgIyAgIC0tPiAwCiAgICAjIFJlcXVpcmVzOiAhIENZR0RCR19IQUxf Q09NTU9OX0lOVEVSUlVQVFNfU0FWRV9NSU5JTVVNX0NPTlRFWFQKICAgICMg ICAgIENZR0RCR19IQUxfQ09NTU9OX0lOVEVSUlVQVFNfU0FWRV9NSU5JTVVN X0NPTlRFWFQgPT0gMQogICAgIyAgIC0tPiAwCiAgICAjIFJlcXVpcmVzOiAh IENZR0RCR19IQUxfQ09NTU9OX0NPTlRFWFRfU0FWRV9NSU5JTVVNCiAgICAj ICAgICBDWUdEQkdfSEFMX0NPTU1PTl9DT05URVhUX1NBVkVfTUlOSU1VTSA9 PSAxCiAgICAjICAgLS0+IDAKfTsKCiMgQnVpbGQgY29tbW9uIEdEQiBzdHVi IFJPTSBpbWFnZQojIFVubGVzcyBhIHRhcmdldCBib2FyZCBoYXMgc3BlY2lm aWMgcmVxdWlyZW1lbnRzIHRvIHRoZQojIHN0dWIgaW1wbGVtZW50YXRpb24s IGl0IGNhbiB1c2UgYSBzaW1wbGUgY29tbW9uIHN0dWIuCiMgVGhpcyBvcHRp b24sIHdoaWNoIGdldHMgZW5hYmxlZCBieSBwbGF0Zm9ybSBIQUxzIGFzCiMg YXBwcm9wcmlhdGUsIGNvbnRyb2xzIHRoZSBidWlsZGluZyBvZiB0aGUgY29t bW9uIHN0dWIuCiMKY2RsX29wdGlvbiBDWUdCTERfQlVJTERfQ09NTU9OX0dE Ql9TVFVCUyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRl ZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAogICAgIyBSZXF1aXJlczog Q1lHREJHX0hBTF9ERUJVR19HREJfSU5DTFVERV9TVFVCUwogICAgIyAgICAg Q1lHREJHX0hBTF9ERUJVR19HREJfSU5DTFVERV9TVFVCUyA9PSAwCiAgICAj ICAgLS0+IDAKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUg YWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHQkxEX0JV SUxEX0dEQl9TVFVCUwogICAgIyAgICAgUmVxdWlyZXM6IENZR0JMRF9CVUlM RF9DT01NT05fR0RCX1NUVUJTCn07CgojIDwKIyA8CiMgZUNvcyBIQUwKIyBk b2M6IHJlZGlyZWN0L3RoZS1lY29zLWhhcmR3YXJlLWFic3RyYWN0aW9uLWxh eWVyLWhhbC5odG1sCiMgVGhlIGVDb3MgSEFMIHBhY2thZ2UgcHJvdmlkZSBh IHBvcnRpbmcgbGF5ZXIgZm9yCiMgaGlnaGVyLWxldmVsIHBhcnRzIG9mIHRo ZSBzeXN0ZW0gc3VjaCBhcyB0aGUga2VybmVsIGFuZCB0aGUKIyBDIGxpYnJh cnkuIEVhY2ggaW5zdGFsbGF0aW9uIHNob3VsZCBoYXZlIEhBTCBwYWNrYWdl cyBmb3IKIyBvbmUgb3IgbW9yZSBhcmNoaXRlY3R1cmVzLCBhbmQgZm9yIGVh Y2ggYXJjaGl0ZWN0dXJlIHRoZXJlCiMgbWF5IGJlIG9uZSBvciBtb3JlIHN1 cHBvcnRlZCBwbGF0Zm9ybXMuIEl0IGlzIG5lY2Vzc2FyeSB0bwojIHNlbGVj dCBvbmUgdGFyZ2V0IGFyY2hpdGVjdHVyZSBhbmQgb25lIHBsYXRmb3JtIGZv ciB0aGF0CiMgYXJjaGl0ZWN0dXJlLiBUaGVyZSBhcmUgYWxzbyBhIG51bWJl ciBvZiBjb25maWd1cmF0aW9uCiMgb3B0aW9ucyB0aGF0IGFyZSBjb21tb24g dG8gYWxsIEhBTCBwYWNrYWdlcy4KIwpjZGxfcGFja2FnZSBDWUdQS0dfSEFM IHsKICAgICMgUGFja2FnZXMgY2Fubm90IGJlIGFkZGVkIG9yIHJlbW92ZWQs IG5vciBjYW4gdGhlaXIgdmVyc2lvbiBiZSBjaGFuZ2VkLAogICAgIyBzaW1w bHkgYnkgZWRpdGluZyB0aGVpciB2YWx1ZS4gSW5zdGVhZCB0aGUgYXBwcm9w cmlhdGUgY29uZmlndXJhdGlvbgogICAgIyBzaG91bGQgYmUgdXNlZCB0byBw ZXJmb3JtIHRoZXNlIGFjdGlvbnMuCgogICAgIyBUaGlzIHZhbHVlIGNhbm5v dCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAg ICAjIEN1cnJlbnQgdmFsdWU6IDEgY3VycmVudAoKICAgICMgVGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCn07 CgojID4KIyBQbGF0Zm9ybS1pbmRlcGVuZGVudCBIQUwgb3B0aW9ucwojIEEg bnVtYmVyIG9mIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgY29tbW9uIHRv IG1vc3Qgb3IgYWxsCiMgSEFMIHBhY2thZ2VzLCBmb3IgZXhhbXBsZSBvcHRp b25zIGNvbnRyb2xsaW5nIGhvdyBtdWNoIHN0YXRlCiMgc2hvdWxkIGJlIHNh dmVkIGR1cmluZyBhIGNvbnRleHQgc3dpdGNoLiBUaGUgaW1wbGVtZW50YXRp b25zCiMgb2YgdGhlc2Ugb3B0aW9ucyB3aWxsIHZhcnkgZnJvbSBhcmNoaXRl Y3R1cmUgdG8gYXJjaGl0ZWN0dXJlLgojCmNkbF9jb21wb25lbnQgQ1lHUEtH X0hBTF9DT01NT04gewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZh bHVlLgp9OwoKIyA+CiMgUHJvdmlkZSBlQ29zIGtlcm5lbCBzdXBwb3J0CiMg VGhlIEhBTCBjYW4gYmUgY29uZmlndXJlZCB0byBlaXRoZXIgc3VwcG9ydCB0 aGUgZnVsbCBlQ29zCiMga2VybmVsLCBvciB0byBzdXBwb3J0IG9ubHkgdmVy eSBzaW1wbGUgYXBwbGljYXRpb25zIHdoaWNoIGRvCiMgbm90IHJlcXVpcmUg YSBmdWxsIGtlcm5lbC4gSWYga2VybmVsIHN1cHBvcnQgaXMgbm90IHJlcXVp cmVkCiMgdGhlbiBzb21lIG9mIHRoZSBzdGFydHVwLCBleGNlcHRpb24sIGFu ZCBpbnRlcnJ1cHQgaGFuZGxpbmcKIyBjb2RlIGNhbiBiZSBlbGltaW5hdGVk LgojCmNkbF9vcHRpb24gQ1lHRlVOX0hBTF9DT01NT05fS0VSTkVMX1NVUFBP UlQgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IENZR1BLR19LRVJORUwKICAgICMgICAg IENZR1BLR19LRVJORUwgPT0gY3VycmVudAogICAgIyAgIC0tPiAxCiAgICAj IFJlcXVpcmVzOiBDWUdQS0dfS0VSTkVMCiAgICAjICAgICBDWUdQS0dfS0VS TkVMID09IGN1cnJlbnQKICAgICMgICAtLT4gMQp9OwoKIyBIQUwgYWxsb3dz IEdEQiBwcm90b2NvbCB0byBiZSBkaXNhYmxlZCBmb3IuLi4KIwpjZGxfaW50 ZXJmYWNlIENZR0lOVF9IQUxfRElBR19ESVNBQkxFX0dEQl9QUk9UT0NPTF9T VVBQT1JURUQgewogICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlzIGlu ZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBo ZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTog MAoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3Rl ZCBieSB0aGlzIHZhbHVlCiAgICAjIG9wdGlvbiBDWUdEQkdfSEFMX0RJQUdf RElTQUJMRV9HREJfUFJPVE9DT0wKICAgICMgICAgIEFjdGl2ZUlmOiBDWUdJ TlRfSEFMX0RJQUdfRElTQUJMRV9HREJfUFJPVE9DT0xfU1VQUE9SVEVECn07 CgojIERpc2FibGUgR0RCIHByb3RvY29sIGZvciBkaWFnbm9zdGljIG91dHB1 dAojIFRoaXMgb3B0aW9uIGZvcmNlcyBkaWFnbm9zdGljIG91dHB1dCB0byBu b3QgdXNlIHRoZSBHREIKIyBwcm90b2NvbC4gIE1vc3QgcHJvZ3JhbXMgd2ls bCB1c2UgdGhlIEdEQiBwcm90b2NvbCBmb3IKIyBkaWFnbm9zdGljIEkvTyBi ZWNhdXNlIG9mIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgb3B0aW9uCiMgYWxs b3dzIGZvciBhbiBleHBsaWNpdCBvdmVycmlkZSBpbiB0aGVzZSBjYXNlcy4K IwpjZGxfb3B0aW9uIENZR0RCR19IQUxfRElBR19ESVNBQkxFX0dEQl9QUk9U T0NPTCB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMg QWN0aXZlSWYgY29uc3RyYWludDogQ1lHSU5UX0hBTF9ESUFHX0RJU0FCTEVf R0RCX1BST1RPQ09MX1NVUFBPUlRFRAogICAgIyAgICAgQ1lHSU5UX0hBTF9E SUFHX0RJU0FCTEVfR0RCX1BST1RPQ09MX1NVUFBPUlRFRCA9PSAwCiAgICAj ICAgLS0+IDAKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRl ZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAp9OwoKIyBIQUwgZXhjZXB0 aW9uIHN1cHBvcnQKIyBXaGVuIGEgcHJvY2Vzc29yIGV4Y2VwdGlvbiBvY2N1 cnMsIGZvciBleGFtcGxlIGFuIGF0dGVtcHQgdG8KIyBleGVjdXRlIGFuIGls bGVnYWwgaW5zdHJ1Y3Rpb24gb3IgdG8gcGVyZm9ybSBhIGRpdmlkZSBieQoj IHplcm8sIHRoaXMgZXhjZXB0aW9uIG1heSBiZSBoYW5kbGVkIGluIGEgbnVt YmVyIG9mIGRpZmZlcmVudAojIHdheXMuIElmIHRoZSB0YXJnZXQgc3lzdGVt IGhhcyBnZGIgc3VwcG9ydCB0aGVuIHR5cGljYWxseQojIHRoZSBleGNlcHRp b24gd2lsbCBiZSBoYW5kbGVkIGJ5IGdkYiBjb2RlLiBPdGhlcndpc2UgaWYg dGhlCiMgSEFMIGV4Y2VwdGlvbiBzdXBwb3J0IGlzIGVuYWJsZWQgdGhlbiB0 aGUgSEFMIHdpbGwgaW52b2tlIGEKIyByb3V0aW5lIGRlbGl2ZXJfZXhjZXB0 aW9uKCkuIFR5cGljYWxseSB0aGlzIHJvdXRpbmUgd2lsbCBiZQojIHByb3Zp ZGVkIGJ5IHRoZSBlQ29zIGtlcm5lbCwgYnV0IGl0IGlzIHBvc3NpYmxlIGZv cgojIGFwcGxpY2F0aW9uIGNvZGUgdG8gcHJvdmlkZSBpdHMgb3duIGltcGxl bWVudGF0aW9uLiBJZiB0aGUKIyBIQUwgZXhjZXB0aW9uIHN1cHBvcnQgaXMg bm90IGVuYWJsZWQgYW5kIGEgcHJvY2Vzc29yCiMgZXhjZXB0aW9uIG9jY3Vy cyB0aGVuIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHN5c3RlbSBpcwojIHVuZGVm aW5lZC4KIwpjZGxfb3B0aW9uIENZR1BLR19IQUxfRVhDRVBUSU9OUyB7CiAg ICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogQ1lHUEtHX0tFUk5FTF9FWENFUFRJT05TCiAgICAj ICAgICBDWUdQS0dfS0VSTkVMX0VYQ0VQVElPTlMgPT0gMQogICAgIyAgIC0t PiAxCiAgICAjIFJlcXVpcmVzOiBDWUdQS0dfS0VSTkVMX0VYQ0VQVElPTlMK ICAgICMgICAgIENZR1BLR19LRVJORUxfRVhDRVBUSU9OUyA9PSAxCiAgICAj ICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUg YWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBjb21wb25lbnQgQ1lHUEtH X0tFUk5FTF9FWENFUFRJT05TCiAgICAjICAgICBSZXF1aXJlczogQ1lHUEtH X0hBTF9FWENFUFRJT05TCn07CgojIFN0b3AgY2FsbGluZyBjb25zdHJ1Y3Rv cnMgZWFybHkKIyBUaGlzIG9wdGlvbiBzdXBwb3J0cyBlbnZpcm9ubWVudHMg d2hlcmUgc29tZSBjb25zdHJ1Y3RvcnMKIyBtdXN0IGJlIHJ1biBpbiB0aGUg Y29udGV4dCBvZiBhIHRocmVhZCByYXRoZXIgdGhhbiBhdAojIHNpbXBsZSBz eXN0ZW0gc3RhcnR1cCB0aW1lLiBBIGJvb2xlYW4gZmxhZyBuYW1lZAojIGN5 Z19oYWxfc3RvcF9jb25zdHJ1Y3RvcnMgaXMgc2V0IHRvIDEgd2hlbiBjb25z dHJ1Y3RvcnMKIyBzaG91bGQgbm8gbG9uZ2VyIGJlIGludm9rZWQuIEl0IGlz IHVwIHRvIHNvbWUgb3RoZXIKIyBwYWNrYWdlIHRvIGRlYWwgd2l0aCB0aGUg cmVzdCBvZiB0aGUgY29uc3RydWN0b3JzLgojIEluIHRoZSBjdXJyZW50IHZl cnNpb24gdGhpcyBpcyBvbmx5IHBvc3NpYmxlIHdpdGggdGhlCiMgQyBsaWJy YXJ5LgojCmNkbF9vcHRpb24gQ1lHU0VNX0hBTF9TVE9QX0NPTlNUUlVDVE9S U19PTl9GTEFHIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCiAgICAjIFJlcXVpcmVz OiBDWUdTRU1fTElCQ19JTlZPS0VfREVGQVVMVF9TVEFUSUNfQ09OU1RSVUNU T1JTCiAgICAjICAgICBDWUdTRU1fTElCQ19JTlZPS0VfREVGQVVMVF9TVEFU SUNfQ09OU1RSVUNUT1JTID09IDAKICAgICMgICAtLT4gMAoKICAgICMgVGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZh bHVlCiAgICAjIG9wdGlvbiBDWUdTRU1fTElCQ19JTlZPS0VfREVGQVVMVF9T VEFUSUNfQ09OU1RSVUNUT1JTCiAgICAjICAgICBSZXF1aXJlczogQ1lHU0VN X0hBTF9TVE9QX0NPTlNUUlVDVE9SU19PTl9GTEFHCn07CgojIEluc3RhbGwg TU1VIHRhYmxlcy4KIyBUaGlzIG9wdGlvbiBjb250cm9scyB3aGV0aGVyIHRo aXMgYXBwbGljYXRpb24gaW5zdGFsbHMKIyBpdHMgb3duIE1lbW9yeSBNYW5h Z2VtZW50IFVuaXQgKE1NVSkgdGFibGVzLCBvciByZWxpZXMgb24gdGhlCiMg ZXhpc3RpbmcgZW52aXJvbm1lbnQgdG8gcnVuLgojCmNkbF9vcHRpb24gQ1lH U0VNX0hBTF9JTlNUQUxMX01NVV9UQUJMRVMgewogICAgIyBGbGF2b3I6IGJv b2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAg ICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6 IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0 ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHU0VNX0hBTF9TVEFU SUNfTU1VX1RBQkxFUwogICAgIyAgICAgUmVxdWlyZXM6IENZR1NFTV9IQUxf SU5TVEFMTF9NTVVfVEFCTEVTCn07CgojIFVzZSBzdGF0aWMgTU1VIHRhYmxl cy4KIyBUaGlzIG9wdGlvbiBkZWZpbmVzIGFuIGVudmlyb25tZW50IHdoZXJl IGFueSBNZW1vcnkKIyBNYW5hZ2VtZW50IFVuaXQgKE1NVSkgdGFibGVzIGFy ZSBjb25zdGFudC4gIE5vcm1hbGx5IHVzZWQgYnkgUk9NCiMgYmFzZWQgZW52 aXJvbm1lbnRzLCB0aGlzIHByb3ZpZGVzIGEgd2F5IHRvIHNhdmUgUkFNIHVz YWdlIHdoaWNoCiMgd291bGQgb3RoZXJ3aXNlIGJlIHJlcXVpcmVkIGZvciB0 aGVzZSB0YWJsZXMuCiMKY2RsX29wdGlvbiBDWUdTRU1fSEFMX1NUQVRJQ19N TVVfVEFCTEVTIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCiAgICAjIFJlcXVpcmVz OiBDWUdTRU1fSEFMX0lOU1RBTExfTU1VX1RBQkxFUwogICAgIyAgICAgQ1lH U0VNX0hBTF9JTlNUQUxMX01NVV9UQUJMRVMgPT0gMQogICAgIyAgIC0tPiAx Cn07CgojIDwKIyBIQUwgaW50ZXJydXB0IGhhbmRsaW5nCiMgQSBudW1iZXIg b2YgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gaW50ZXJydXB0 CiMgaGFuZGxpbmcgYXJlIGNvbW1vbiB0byBtb3N0IG9yIGFsbCBIQUwgcGFj a2FnZXMsIGV2ZW4gdGhvdWdoCiMgdGhlIGltcGxlbWVudGF0aW9ucyB3aWxs IHZhcnkgZnJvbSBhcmNoaXRlY3R1cmUgdG8KIyBhcmNoaXRlY3R1cmUuCiMK Y2RsX2NvbXBvbmVudCBDWUdQS0dfSEFMX0NPTU1PTl9JTlRFUlJVUFRTIHsK ICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgoj IFVzZSBzZXBhcmF0ZSBzdGFjayBmb3IgaW50ZXJydXB0cwojIFdoZW4gYW4g aW50ZXJydXB0IG9jY3VycyB0aGlzIGludGVycnVwdCBjYW4gYmUgaGFuZGxl ZCBlaXRoZXIKIyBvbiB0aGUgY3VycmVudCBzdGFjayBvciBvbiBhIHNlcGFy YXRlIHN0YWNrIG1haW50YWluZWQgYnkgdGhlCiMgSEFMLiBVc2luZyBhIHNl cGFyYXRlIHN0YWNrIHJlcXVpcmVzIGEgc21hbGwgbnVtYmVyIG9mIGV4dHJh CiMgaW5zdHJ1Y3Rpb25zIGluIHRoZSBpbnRlcnJ1cHQgaGFuZGxpbmcgY29k ZSwgYnV0IGl0IGhhcyB0aGUKIyBhZHZhbnRhZ2UgdGhhdCBpdCBpcyBubyBs b25nZXIgbmVjZXNzYXJ5IHRvIGFsbG93IGV4dHJhIHNwYWNlCiMgaW4gZXZl cnkgdGhyZWFkIHN0YWNrIGZvciB0aGUgaW50ZXJydXB0IGhhbmRsZXJzLiBU aGUgYW1vdW50CiMgb2YgZXh0cmEgc3BhY2UgcmVxdWlyZWQgZGVwZW5kcyBv biB0aGUgaW50ZXJydXB0IGhhbmRsZXJzCiMgdGhhdCBhcmUgYmVpbmcgdXNl ZC4KIwpjZGxfb3B0aW9uIENZR0lNUF9IQUxfQ09NTU9OX0lOVEVSUlVQVFNf VVNFX0lOVEVSUlVQVF9TVEFDSyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAg dXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSB1c2VyCiAgICAjIERl ZmF1bHQgdmFsdWU6IDEKfTsKCiMgSW50ZXJydXB0IHN0YWNrIHNpemUKIyBU aGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHNwZWNpZmllcyB0aGUgc3RhY2sg c2l6ZSBpbiBieXRlcwojIGZvciB0aGUgaW50ZXJydXB0IHN0YWNrLiBUeXBp Y2FsbHkgdGhpcyBzaG91bGQgYmUgYSBtdWx0aXBsZQojIG9mIDE2LCBidXQg dGhlIGV4YWN0IHJlcXVpcmVtZW50cyB3aWxsIHZhcnkgZnJvbSBhcmNoaXRl Y3R1cmUKIyB0byBhcmNoaXRlY3R1cmUuIFRoZSBpbnRlcnJ1cHQgc3RhY2sg c2VydmVzIHR3byBzZXBhcmF0ZQojIHB1cnBvc2VzLiBJdCBpcyB1c2VkIGFz IHRoZSBzdGFjayBkdXJpbmcgc3lzdGVtCiMgaW5pdGlhbGl6YXRpb24uIElu IGFkZGl0aW9uLCBpZiB0aGUgaW50ZXJydXB0IHN5c3RlbSBpcwojIGNvbmZp Z3VyZWQgdG8gdXNlIGEgc2VwYXJhdGUgc3RhY2sgdGhlbiBhbGwgaW50ZXJy dXB0cyB3aWxsCiMgYmUgcHJvY2Vzc2VkIG9uIHRoaXMgc3RhY2suIFRoZSBl eGFjdCBtZW1vcnkgcmVxdWlyZW1lbnRzCiMgd2lsbCB2YXJ5IGZyb20gYXBw bGljYXRpb24gdG8gYXBwbGljYXRpb24sIGFuZCB3aWxsIGRlcGVuZAojIGhl YXZpbHkgb24gd2hldGhlciBvciBub3Qgb3RoZXIgaW50ZXJydXB0LXJlbGF0 ZWQgb3B0aW9ucywKIyBmb3IgZXhhbXBsZSBuZXN0ZWQgaW50ZXJydXB0cywg YXJlIGVuYWJsZWQuCiMKY2RsX29wdGlvbiBDWUdOVU1fSEFMX0NPTU1PTl9J TlRFUlJVUFRTX1NUQUNLX1NJWkUgewogICAgIyBGbGF2b3I6IGRhdGEKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSA0MDk2CiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDQw OTYKICAgICMgTGVnYWwgdmFsdWVzOiAxMDI0IHRvIDEwNDg1NzYKfTsKCiMg QWxsb3cgbmVzdGVkIGludGVycnVwdHMKIyBXaGVuIGFuIGludGVycnVwdCBv Y2N1cnMgdGhlIEhBTCBpbnRlcnJ1cHQgaGFuZGxpbmcgY29kZSBjYW4KIyBl aXRoZXIgbGVhdmUgaW50ZXJydXB0cyBkaXNhYmxlZCBmb3IgdGhlIGR1cmF0 aW9uIG9mIHRoZQojIGludGVycnVwdCBoYW5kbGluZyBjb2RlLCBvciBieSBk b2luZyBzb21lIGV4dHJhIHdvcmsgaXQgY2FuCiMgcmVlbmFibGUgaW50ZXJy dXB0cyBiZWZvcmUgaW52b2tpbmcgdGhlIGludGVycnVwdCBoYW5kbGVyIGFu ZAojIHRodXMgYWxsb3cgbmVzdGVkIGludGVycnVwdHMgdG8gaGFwcGVuLiBJ ZiBhbGwgdGhlIGludGVycnVwdAojIGhhbmRsZXJzIGJlaW5nIHVzZWQgYXJl IHNtYWxsIGFuZCBkbyBub3QgaW52b2x2ZSBhbnkgbG9vcHMKIyB0aGVuIGl0 IGlzIHVzdWFsbHkgYmV0dGVyIHRvIGRpc2FsbG93IG5lc3RlZCBpbnRlcnJ1 cHRzLgojIEhvd2V2ZXIgaWYgYW55IG9mIHRoZSBpbnRlcnJ1cHQgaGFuZGxl cnMgYXJlIG1vcmUgY29tcGxpY2F0ZWQKIyB0aGFuIG5lc3RlZCBpbnRlcnJ1 cHRzIHdpbGwgdXN1YWxseSBiZSByZXF1aXJlZC4KIwpjZGxfb3B0aW9uIENZ R1NFTV9IQUxfQ09NTU9OX0lOVEVSUlVQVFNfQUxMT1dfTkVTVElORyB7CiAg ICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogMAp9OwoKIyBTYXZlIG1pbmltdW0gY29udGV4dCBv biBpbnRlcnJ1cHQKIyBUaGUgSEFMIGludGVycnVwdCBoYW5kbGluZyBjb2Rl IGNhbiBleHBsb2l0IHRoZSBjYWxsaW5nIGNvbnZlbnRpb25zCiMgZGVmaW5l ZCBmb3IgYSBnaXZlbiBhcmNoaXRlY3R1cmUgdG8gcmVkdWNlIHRoZSBhbW91 bnQgb2Ygc3RhdGUKIyB0aGF0IGhhcyB0byBiZSBzYXZlZC4gR2VuZXJhbGx5 IHRoaXMgaW1wcm92ZXMgcGVyZm9ybWFuY2UgYW5kCiMgcmVkdWNlcyBjb2Rl IHNpemUuIEhvd2V2ZXIgaXQgY2FuIG1ha2Ugc291cmNlLWxldmVsIGRlYnVn Z2luZwojIG1vcmUgZGlmZmljdWx0LgojCmNkbF9vcHRpb24gQ1lHREJHX0hB TF9DT01NT05fSU5URVJSVVBUU19TQVZFX01JTklNVU1fQ09OVEVYVCB7CiAg ICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0 aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIG9wdGlvbiBD WUdCTERfQlVJTERfR0RCX1NUVUJTCiAgICAjICAgICBSZXF1aXJlczogISBD WUdEQkdfSEFMX0NPTU1PTl9JTlRFUlJVUFRTX1NBVkVfTUlOSU1VTV9DT05U RVhUCn07CgojIENoYWluIGFsbCBpbnRlcnJ1cHRzIHRvZ2V0aGVyCiMgSW50 ZXJydXB0cyBjYW4gYmUgYXR0YWNoZWQgdG8gdmVjdG9ycyBlaXRoZXIgc2lu Z2x5LCBvciBiZQojIGNoYWluZWQgdG9nZXRoZXIuIFRoZSBsYXR0ZXIgaXMg bmVjZXNzYXJ5IGlmIHRoZXJlIGlzIG5vIHdheQojIG9mIGRpc2NvdmVyaW5n IHdoaWNoIGRldmljZSBoYXMgaW50ZXJydXB0ZWQgd2l0aG91dAojIGluc3Bl Y3RpbmcgdGhlIGRldmljZSBpdHNlbGYuIEl0IGNhbiBhbHNvIHJlZHVjZSB0 aGUgYW1vdW50CiMgb2YgUkFNIG5lZWRlZCBmb3IgaW50ZXJydXB0IGRlY29k aW5nIHRhYmxlcyBhbmQgY29kZS4KIwpjZGxfb3B0aW9uIENZR0lNUF9IQUxf Q09NTU9OX0lOVEVSUlVQVFNfQ0hBSU4gewogICAgIyBGbGF2b3I6IGJvb2wK ICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAK CiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQg YnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHSU1QX0tFUk5FTF9JTlRF UlJVUFRTX0NIQUlOCiAgICAjICAgICBSZXF1aXJlczogQ1lHSU1QX0hBTF9D T01NT05fSU5URVJSVVBUU19DSEFJTgp9OwoKIyBJZ25vcmUgc3B1cmlvdXMg W2ZsZWV0aW5nXSBpbnRlcnJ1cHRzCiMgT24gc29tZSBoYXJkd2FyZSwgaW50 ZXJydXB0IHNvdXJjZXMgbWF5IG5vdCBiZSBkZS1ib3VuY2VkIG9yCiMgZGUt Z2xpdGNoZWQuICBSYXRoZXIgdGhhbiB0cnkgdG8gaGFuZGxlIHRoZXNlIGlu dGVycnVwdHMgKG5vCiMgaGFuZGxpbmcgbWF5IGJlIHBvc3NpYmxlKSwgdGhp cyBvcHRpb24gYWxsb3dzIHRoZSBIQUwgdG8gc2ltcGx5CiMgaWdub3JlIHRo ZW0uICBJbiBtb3N0IGNhc2VzLCBpZiB0aGUgaW50ZXJydXB0IGlzIHJlYWwg aXQgd2lsbAojIHJlb2NjdXIgaW4gYSBkZXRlY3RhYmxlIGZvcm0uCiMKY2Rs X29wdGlvbiBDWUdJTVBfSEFMX0NPTU1PTl9JTlRFUlJVUFRTX0lHTk9SRV9T UFVSSU9VUyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRl ZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAp9OwoKIyA8CiMgSEFMIGNv bnRleHQgc3dpdGNoIHN1cHBvcnQKIyBBIG51bWJlciBvZiBjb25maWd1cmF0 aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aHJlYWQgY29udGV4dHMKIyBhcmUg Y29tbW9uIHRvIG1vc3Qgb3IgYWxsIEhBTCBwYWNrYWdlcywgZXZlbiB0aG91 Z2ggdGhlCiMgaW1wbGVtZW50YXRpb25zIHdpbGwgdmFyeSBmcm9tIGFyY2hp dGVjdHVyZSB0byBhcmNoaXRlY3R1cmUuCiMKY2RsX2NvbXBvbmVudCBDWUdQ S0dfSEFMX0NPTU1PTl9DT05URVhUIHsKICAgICMgVGhlcmUgaXMgbm8gYXNz b2NpYXRlZCB2YWx1ZS4KCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGll cyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQp9OwoKIyA+CiMgVXNlIG1p bmltdW0gdGhyZWFkIGNvbnRleHQKIyBUaGUgdGhyZWFkIGNvbnRleHQgc3dp dGNoIGNvZGUgY2FuIGV4cGxvaXQgdGhlIGNhbGxpbmcKIyBjb252ZW50aW9u cyBkZWZpbmVkIGZvciBhIGdpdmVuIGFyY2hpdGVjdHVyZSB0byByZWR1Y2Ug dGhlCiMgYW1vdW50IG9mIHN0YXRlIHRoYXQgaGFzIHRvIGJlIHNhdmVkIGR1 cmluZyBhIGNvbnRleHQKIyBzd2l0Y2guIEdlbmVyYWxseSB0aGlzIGltcHJv dmVzIHBlcmZvcm1hbmNlIGFuZCByZWR1Y2VzCiMgY29kZSBzaXplLiBIb3dl dmVyIGl0IGNhbiBtYWtlIHNvdXJjZS1sZXZlbCBkZWJ1Z2dpbmcgbW9yZQoj IGRpZmZpY3VsdC4KIwpjZGxfb3B0aW9uIENZR0RCR19IQUxfQ09NTU9OX0NP TlRFWFRfU0FWRV9NSU5JTVVNIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAj IE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUg dG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1 ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCgogICAg IyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRo aXMgdmFsdWUKICAgICMgb3B0aW9uIENZR0JMRF9CVUlMRF9HREJfU1RVQlMK ICAgICMgICAgIFJlcXVpcmVzOiAhIENZR0RCR19IQUxfQ09NTU9OX0NPTlRF WFRfU0FWRV9NSU5JTVVNCn07CgojIDwKIyBTb3VyY2UtbGV2ZWwgZGVidWdn aW5nIHN1cHBvcnQKIyBJZiB0aGUgc291cmNlIGxldmVsIGRlYnVnZ2VyIGdk YiBpcyB0byBiZSB1c2VkIGZvciBkZWJ1Z2dpbmcKIyBhcHBsaWNhdGlvbiBj b2RlIHRoZW4gaXQgbWF5IGJlIG5lY2Vzc2FyeSB0byBjb25maWd1cmUgaW4g c3VwcG9ydAojIGZvciB0aGlzIGluIHRoZSBIQUwuCiMKY2RsX2NvbXBvbmVu dCBDWUdQS0dfSEFMX0RFQlVHIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2Np YXRlZCB2YWx1ZS4KfTsKCiMgPgojIFN1cHBvcnQgZm9yIEdEQiBzdHVicwoj IFRoZSBIQUwgaW1wbGVtZW50cyBHREIgc3R1YnMgZm9yIHRoZSB0YXJnZXQu CiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSEFMX0RFQlVHX0dEQl9TVFVCUyB7 CiAgICAjIEltcGxlbWVudGVkIGJ5IENZR1BLR19IQUxfSTM4Nl9QQywgYWN0 aXZlLCBlbmFibGVkCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlm aWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3Zh bHVlOiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFm ZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR0RCR19IQUxf REVCVUdfR0RCX0lOQ0xVREVfU1RVQlMKICAgICMgICAgIEFjdGl2ZUlmOiBD WUdJTlRfSEFMX0RFQlVHX0dEQl9TVFVCUwp9OwoKIyBJbmNsdWRlIEdEQiBz dHVicyBpbiBIQUwKIyBUaGlzIG9wdGlvbiBjYXVzZXMgYSBzZXQgb2YgR0RC IHN0dWJzIHRvIGJlIGluY2x1ZGVkIGludG8gdGhlCiMgc3lzdGVtLiBPbiBz b21lIHRhcmdldCBzeXN0ZW1zIHRoZSBHREIgc3VwcG9ydCB3aWxsIGJlCiMg cHJvdmlkZWQgYnkgb3RoZXIgbWVhbnMsIGZvciBleGFtcGxlIGJ5IGEgUk9N IG1vbml0b3IuIE9uCiMgb3RoZXIgdGFyZ2V0cywgZXNwZWNpYWxseSB3aGVu IGJ1aWxkaW5nIGEgUk9NLWJvb3Rpbmcgc3lzdGVtLAojIHRoZSBuZWNlc3Nh cnkgc3VwcG9ydCBoYXMgdG8gZ28gaW50byB0aGUgdGFyZ2V0IGxpYnJhcnkK IyBpdHNlbGYuCiMKY2RsX29wdGlvbiBDWUdEQkdfSEFMX0RFQlVHX0dEQl9J TkNMVURFX1NUVUJTIHsKICAgICMgQWN0aXZlSWYgY29uc3RyYWludDogQ1lH SU5UX0hBTF9ERUJVR19HREJfU1RVQlMKICAgICMgICAgIENZR0lOVF9IQUxf REVCVUdfR0RCX1NUVUJTID09IDEKICAgICMgICAtLT4gMQoKICAgICMgRmxh dm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0 IHZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAhIENZR1NFTV9IQUxfVVNFX1JP TV9NT05JVE9SCiAgICAjICAgICBDWUdTRU1fSEFMX1VTRV9ST01fTU9OSVRP UiA9PSBHREJfc3R1YnMKICAgICMgICAtLT4gMAoKICAgICMgVGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAg ICAjIG9wdGlvbiBDWUdEQkdfSEFMX0RFQlVHX0dEQl9CUkVBS19TVVBQT1JU CiAgICAjICAgICBSZXF1aXJlczogQ1lHREJHX0hBTF9ERUJVR19HREJfSU5D TFVERV9TVFVCUwogICAgIyBvcHRpb24gQ1lHREJHX0hBTF9ERUJVR19HREJf Q1RSTENfU1VQUE9SVAogICAgIyAgICAgQWN0aXZlSWY6ICBDWUdTRU1fSEFM X1VTRV9ST01fTU9OSVRPUiB8fCBDWUdEQkdfSEFMX0RFQlVHX0dEQl9JTkNM VURFX1NUVUJTIAogICAgIyBvcHRpb24gQ1lHQkxEX0JVSUxEX0NPTU1PTl9H REJfU1RVQlMKICAgICMgICAgIFJlcXVpcmVzOiBDWUdEQkdfSEFMX0RFQlVH X0dEQl9JTkNMVURFX1NUVUJTCiAgICAjIG9wdGlvbiBDWUdCTERfQlVJTERf R0RCX1NUVUJTCiAgICAjICAgICBSZXF1aXJlczogQ1lHREJHX0hBTF9ERUJV R19HREJfSU5DTFVERV9TVFVCUwp9OwoKIyBTdXBwb3J0IGZvciBleHRlcm5h bCBicmVhayBzdXBwb3J0IGluIEdEQiBzdHVicwojIFRoZSBIQUwgaW1wbGVt ZW50cyBleHRlcm5hbCBicmVhayAob3IgYXN5bmNocm9ub3VzIGludGVycnVw dCkKIyBpbiB0aGUgR0RCIHN0dWJzIGZvciB0aGUgdGFyZ2V0LgojCmNkbF9p bnRlcmZhY2UgQ1lHSU5UX0hBTF9ERUJVR19HREJfU1RVQlNfQlJFQUsgewog ICAgIyBJbXBsZW1lbnRlZCBieSBDWUdQS0dfSEFMX0kzODZfUEMsIGFjdGl2 ZSwgZW5hYmxlZAogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmll ZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1 ZTogMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZl Y3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIG9wdGlvbiBDWUdEQkdfSEFMX0RF QlVHX0dEQl9CUkVBS19TVVBQT1JUCiAgICAjICAgICBBY3RpdmVJZjogQ1lH SU5UX0hBTF9ERUJVR19HREJfU1RVQlNfQlJFQUsKfTsKCiMgSW5jbHVkZSBH REIgZXh0ZXJuYWwgYnJlYWsgc3VwcG9ydCBmb3Igc3R1YnMKIyBUaGlzIG9w dGlvbiBjYXVzZXMgdGhlIEdEQiBzdHViIHRvIGFkZCBhIHNlcmlhbCBpbnRl cnJ1cHQgaGFuZGxlcgojIHdoaWNoIHdpbGwgbGlzdGVuIGZvciBHREIgYnJl YWsgcGFja2V0cy4gVGhpcyBsZXRzIHlvdSBzdG9wIHRoZQojIHRhcmdldCBh c3luY2hyb25vdXNseSB3aGVuIHVzaW5nIEdEQiwgdXN1YWxseSBieSBoaXR0 aW5nIENvbnRyb2wrQwojIG9yIHByZXNzaW5nIHRoZSBTVE9QIGJ1dHRvbi4g VGhpcyBvcHRpb24gZGlmZmVycyBmcm9tCiMgQ1lHREJHX0hBTF9ERUJVR19H REJfQ1RSTENfU1VQUE9SVCBpbiB0aGF0IGl0IGlzIHVzZWQgd2hlbgojIEdE QiBzdHVicyBhcmUgcHJlc2VudC4KIwpjZGxfb3B0aW9uIENZR0RCR19IQUxf REVCVUdfR0RCX0JSRUFLX1NVUFBPUlQgewogICAgIyBBY3RpdmVJZiBjb25z dHJhaW50OiBDWUdJTlRfSEFMX0RFQlVHX0dEQl9TVFVCU19CUkVBSwogICAg IyAgICAgQ1lHSU5UX0hBTF9ERUJVR19HREJfU1RVQlNfQlJFQUsgPT0gMQog ICAgIyAgIC0tPiAxCgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNl ciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92 aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKICAgICMgUmVxdWly ZXM6IENZR0RCR19IQUxfREVCVUdfR0RCX0lOQ0xVREVfU1RVQlMKICAgICMg ICAgIENZR0RCR19IQUxfREVCVUdfR0RCX0lOQ0xVREVfU1RVQlMgPT0gMAog ICAgIyAgIC0tPiAwCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMg YXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR0RC R19IQUxfREVCVUdfR0RCX0NUUkxDX1NVUFBPUlQKICAgICMgICAgIFJlcXVp cmVzOiAhQ1lHREJHX0hBTF9ERUJVR19HREJfQlJFQUtfU1VQUE9SVAogICAg IyBvcHRpb24gQ1lHQkxEX0JVSUxEX0dEQl9TVFVCUwogICAgIyAgICAgUmVx dWlyZXM6ICEgQ1lHREJHX0hBTF9ERUJVR19HREJfQlJFQUtfU1VQUE9SVAp9 OwoKIyBQbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IENUUkxDCiMKY2RsX2lu dGVyZmFjZSBDWUdJTlRfSEFMX0RFQlVHX0dEQl9DVFJMQ19VTlNVUFBPUlRF RCB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNl CiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAg ICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCgogICAg IyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRo aXMgdmFsdWUKICAgICMgb3B0aW9uIENZR0RCR19IQUxfREVCVUdfR0RCX0NU UkxDX1NVUFBPUlQKICAgICMgICAgIEFjdGl2ZUlmOiAgQ1lHSU5UX0hBTF9E RUJVR19HREJfQ1RSTENfVU5TVVBQT1JURUQgPT0gMCAKfTsKCiMgSW5jbHVk ZSBHREIgZXh0ZXJuYWwgYnJlYWsgc3VwcG9ydCB3aGVuIG5vIHN0dWJzCiMg VGhpcyBvcHRpb24gYWRkcyBhbiBpbnRlcnJ1cHQgaGFuZGxlciBmb3IgdGhl IEdEQiBzZXJpYWwgbGluZQojIHdoaWNoIHdpbGwgbGlzdGVuIGZvciBHREIg YnJlYWsgcGFja2V0cy4gVGhpcyBsZXRzIHlvdSBzdG9wIHRoZQojIHRhcmdl dCBhc3luY2hyb25vdXNseSB3aGVuIHVzaW5nIEdEQiwgdXN1YWxseSBieSBo aXR0aW5nIENvbnRyb2wrQwojIG9yIHByZXNzaW5nIHRoZSBTVE9QIGJ1dHRv bi4gVGhpcyBvcHRpb24gZGlmZmVycyBmcm9tCiMgQ1lHREJHX0hBTF9ERUJV R19HREJfQlJFQUtfU1VQUE9SVCBpbiB0aGF0IGl0IGlzIHVzZWQgd2hlbiB0 aGUgR0RCCiMgc3R1YnMgYXJlIE5PVCBwcmVzZW50LgojCmNkbF9vcHRpb24g Q1lHREJHX0hBTF9ERUJVR19HREJfQ1RSTENfU1VQUE9SVCB7CiAgICAjIEFj dGl2ZUlmIGNvbnN0cmFpbnQ6ICBDWUdTRU1fSEFMX1VTRV9ST01fTU9OSVRP UiB8fCBDWUdEQkdfSEFMX0RFQlVHX0dEQl9JTkNMVURFX1NUVUJTIAogICAg IyAgICAgQ1lHU0VNX0hBTF9VU0VfUk9NX01PTklUT1IgPT0gR0RCX3N0dWJz CiAgICAjICAgICBDWUdEQkdfSEFMX0RFQlVHX0dEQl9JTkNMVURFX1NUVUJT ID09IDAKICAgICMgICAtLT4gMQogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50 OiAgQ1lHSU5UX0hBTF9ERUJVR19HREJfQ1RSTENfVU5TVVBQT1JURUQgPT0g MCAKICAgICMgICAgIENZR0lOVF9IQUxfREVCVUdfR0RCX0NUUkxDX1VOU1VQ UE9SVEVEID09IDAKICAgICMgICAtLT4gMQoKICAgICMgRmxhdm9yOiBib29s CiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5n IGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAx CiAgICAjIFJlcXVpcmVzOiAhQ1lHREJHX0hBTF9ERUJVR19HREJfQlJFQUtf U1VQUE9SVAogICAgIyAgICAgQ1lHREJHX0hBTF9ERUJVR19HREJfQlJFQUtf U1VQUE9SVCA9PSAwCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dp bmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAg IyBvcHRpb24gQ1lHQkxEX0JVSUxEX0dEQl9TVFVCUwogICAgIyAgICAgUmVx dWlyZXM6ICEgQ1lHREJHX0hBTF9ERUJVR19HREJfQ1RSTENfU1VQUE9SVAp9 OwoKIyBJbmNsdWRlIEdEQiBtdWx0aS10aHJlYWRpbmcgZGVidWcgc3VwcG9y dAojIFRoaXMgb3B0aW9uIGVuYWJsZXMgc29tZSBleHRyYSBIQUwgY29kZSB3 aGljaCBpcyBuZWVkZWQKIyB0byBzdXBwb3J0IG11bHRpLXRocmVhZGVkIHNv dXJjZSBsZXZlbCBkZWJ1Z2dpbmcuCiMKY2RsX29wdGlvbiBDWUdEQkdfSEFM X0RFQlVHX0dEQl9USFJFQURfU1VQUE9SVCB7CiAgICAjIEFjdGl2ZUlmIGNv bnN0cmFpbnQ6ICBDWUdTRU1fSEFMX1JPTV9NT05JVE9SIHx8IENZR0RCR19L RVJORUxfREVCVUdfR0RCX1RIUkVBRF9TVVBQT1JUIAogICAgIyAgICAgQ1lH U0VNX0hBTF9ST01fTU9OSVRPUiA9PSAwCiAgICAjICAgICBDWUdEQkdfS0VS TkVMX0RFQlVHX0dEQl9USFJFQURfU1VQUE9SVCA9PSAxCiAgICAjICAgLS0+ IDEKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMQoKICAgICMgVGhlIGZvbGxvd2luZyBw cm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIG9w dGlvbiBDWUdEQkdfS0VSTkVMX0RFQlVHX0dEQl9USFJFQURfU1VQUE9SVAog ICAgIyAgICAgUmVxdWlyZXM6IENZR0RCR19IQUxfREVCVUdfR0RCX1RIUkVB RF9TVVBQT1JUCiAgICAjIG9wdGlvbiBDWUdCTERfQlVJTERfR0RCX1NUVUJT CiAgICAjICAgICBSZXF1aXJlczogISBDWUdEQkdfSEFMX0RFQlVHX0dEQl9U SFJFQURfU1VQUE9SVAp9OwoKIyA8CiMgUk9NIG1vbml0b3Igc3VwcG9ydAoj IFN1cHBvcnQgZm9yIFJPTSBtb25pdG9ycyBjYW4gYmUgYnVpbHQgaW4gdG8g eW91ciBhcHBsaWNhdGlvbi4gCiMgSXQgbWF5IGFsc28gYmUgcmVsZXZhbnQg dG8gYnVpbGQgeW91ciBhcHBsaWNhdGlvbiBhcyBhIFJPTSBtb25pdG9yCiMg aXRzZWxmLiBTdWNoIG9wdGlvbnMgYXJlIGNvbnRhaW5lZCBoZXJlIGlmIHJl bGV2YW50IGZvciB5b3VyIGNob3NlbgojIHBsYXRmb3JtLiBUaGUgb3B0aW9u cyBhbmQgUk9NIG1vbml0b3JzIGF2YWlsYWJsZSB0byBjaG9vc2UgYXJlCiMg cGxhdGZvcm0tZGVwZW5kZW50LgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0hB TF9ST01fTU9OSVRPUiB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQg dmFsdWUuCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFm ZmVjdGVkIGJ5IHRoaXMgdmFsdWUKfTsKCiMgPgojIFRhcmdldCBoYXMgdmly dHVhbCB2ZWN0b3Igc3VwcG9ydAojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0hB TF9WSVJUVUFMX1ZFQ1RPUl9TVVBQT1JUIHsKICAgICMgSW1wbGVtZW50ZWQg YnkgQ1lHUEtHX0hBTF9JMzg2X1BDLCBhY3RpdmUsIGVuYWJsZWQKICAgICMg VGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxh dm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDEKCiAgICAjIFRoZSBm b2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1 ZQogICAgIyBjb21wb25lbnQgQ1lHU0VNX0hBTF9WSVJUVUFMX1ZFQ1RPUl9T VVBQT1JUCiAgICAjICAgICBBY3RpdmVJZjogQ1lHSU5UX0hBTF9WSVJUVUFM X1ZFQ1RPUl9TVVBQT1JUCn07CgojIFRoZSBwbGF0Zm9ybSBwb3J0IHdhcyB3 cml0dGVuIHdpdGggdmVjdG9yIHN1cHBvcnQKIyBNYW55IHBsYXRmb3JtIEhB THMgaGF2ZSBhZG9wdGVkIHRoZSB2aXJ0dWFsIHZlY3RvciBzdXBwb3J0CiMg YWZ0ZXIgaXRzIGludHJvZHVjdGlvbi4gT24gdGhvc2UgcGxhdGZvcm1zLCBv bGQgUk9NCiMgbW9uaXRvcnMgd2lsbCBub3QgcHJvdmlkZSB0aGUgbmVjZXNz YXJ5IHNlcnZpY2VzIC0gYW5kCiMgc28gdGhlIHVzZSBvZiB0aGVzZSBzZXJ2 aWNlcyBzaG91bGQgYmUgZGlzYWJsZWQgcGVyIGRlZmF1bHQuCiMgTmV3ZXIg cG9ydHMsIGhvd2V2ZXIsIGd1YXJhbnRlZSB0byBwcm92aWRlIHRoZSBuZWNl c3NhcnkKIyBzZXJ2aWNlcyBpbiBhbGwgUk9NIG1vbml0b3JzLCBhbmQgc28g ZGVmYXVsdCB0byB1c2UgdGhlCiMgc2VydmljZXMuCiMKY2RsX2ludGVyZmFj ZSBDWUdJTlRfSEFMX1ZJUlRVQUxfVkVDVE9SX1NVUFBPUlRfR1VBUkFOVEVF RCB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNl CiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAg ICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCgogICAg IyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRo aXMgdmFsdWUKICAgICMgb3B0aW9uIENZR1NFTV9IQUxfVklSVFVBTF9WRUNU T1JfRElBRwogICAgIyAgICAgRGVmYXVsdFZhbHVlOiAgQ1lHSU5UX0hBTF9W SVJUVUFMX1ZFQ1RPUl9TVVBQT1JUX0dVQVJBTlRFRUQgCn07CgojIEVuYWJs ZSB1c2Ugb2YgdmlydHVhbCB2ZWN0b3IgY2FsbGluZyBpbnRlcmZhY2UKIyBW aXJ0dWFsIHZlY3RvciBzdXBwb3J0IGFsbG93cyB0aGUgSEFMIHRvIGxldCB0 aGUgUk9NCiMgbW9uaXRvciBoYW5kbGUgY2VydGFpbiBvcGVyYXRpb25zLiBU aGUgdmlydHVhbCB2ZWN0b3IgdGFibGUKIyBkZWZpbmVzIGEgY2FsbGluZyBp bnRlcmZhY2UgYmV0d2VlbiBhcHBsaWNhdGlvbnMgcnVubmluZyBpbgojIFJB TSBhbmQgdGhlIFJPTSBtb25pdG9yLgojCmNkbF9jb21wb25lbnQgQ1lHU0VN X0hBTF9WSVJUVUFMX1ZFQ1RPUl9TVVBQT1JUIHsKICAgICMgQWN0aXZlSWYg Y29uc3RyYWludDogQ1lHSU5UX0hBTF9WSVJUVUFMX1ZFQ1RPUl9TVVBQT1JU CiAgICAjICAgICBDWUdJTlRfSEFMX1ZJUlRVQUxfVkVDVE9SX1NVUFBPUlQg PT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBDYWxjdWxhdGVkIHZhbHVlOiAx CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBDdXJyZW50IHZhbHVlOiAxCn07 CgojID4KIyBEbyBkaWFnbm9zdGljIElPIHZpYSB2aXJ0dWFsIHZlY3RvciB0 YWJsZQojIFRoZSB2aXJ0dWFsIHZlY3RvciB0YWJsZSBwcm92aWRlcyBmdW5j dGlvbnMgZm9yCiMgZGlhZ25vc3RpYyBJTy4gVXNpbmcgdGhlc2UgYm90aCBy ZWR1Y2UgdGhlIGFwcGxpY2F0aW9uCiMgc2l6ZSBhIGJpdCwgYW5kIGFsbG93 IHRoZSBST00gbW9uaXRvciB0byBjb250cm9sIHdoaWNoCiMgY29tbXVuaWNh dGlvbiBpbnRlcmVyZmFjZSB0byB1c2UuIENhcmVmdWwgd2hlbiBlbmFibGlu ZwojIHRoaXMgb3B0aW9uIGFzIGl0IG1heSBjYXVzZSBvdXRwdXQgdG8gZGlz YXBwZWFyIChpZgojIHRoZSBST00gbW9uaXRvciBkb2VzIG5vdCBwcm92aWRl IHRoZSBuZWNlc3NhcnkKIyBzZXJ2aWNlcykuCiMKY2RsX29wdGlvbiBDWUdT RU1fSEFMX1ZJUlRVQUxfVkVDVE9SX0RJQUcgewogICAgIyBGbGF2b3I6IGJv b2wKICAgIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgdXNlcgog ICAgIyBEZWZhdWx0IHZhbHVlOiAgQ1lHSU5UX0hBTF9WSVJUVUFMX1ZFQ1RP Ul9TVVBQT1JUX0dVQVJBTlRFRUQgCiAgICAjICAgICBDWUdJTlRfSEFMX1ZJ UlRVQUxfVkVDVE9SX1NVUFBPUlRfR1VBUkFOVEVFRCA9PSAwCiAgICAjICAg LS0+IDAKfTsKCiMgPAojIEJlaGF2ZSBhcyBhIFJPTSBtb25pdG9yCiMgRW5h YmxlIHRoaXMgb3B0aW9uIGlmIHRoaXMgcHJvZ3JhbSBpcyB0byBiZSB1c2Vk IGFzIGEgUk9NIG1vbml0b3IsCiMgaS5lLiBhcHBsaWNhdGlvbnMgd2lsbCBi ZSBsb2FkZWQgaW50byBSQU0gb24gdGhlIGJvYXJkLCBhbmQgdGhpcwojIFJP TSBtb25pdG9yIG1heSBwcm9jZXNzIGV4Y2VwdGlvbnMgb3IgaW50ZXJydXB0 cyBnZW5lcmF0ZWQgZnJvbSB0aGUKIyBhcHBsaWNhdGlvbi4gVGhpcyBlbmFi bGVzIGZlYXR1cmVzIHN1Y2ggYXMgdXRpbGl6aW5nIGEgc2VwYXJhdGUKIyBp bnRlcnJ1cHQgc3RhY2sgd2hlbiBleGNlcHRpb25zIGFyZSBnZW5lcmF0ZWQu CiMKY2RsX29wdGlvbiBDWUdTRU1fSEFMX1JPTV9NT05JVE9SIHsKICAgICMg Rmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAgQ1lHX0hBTF9TVEFSVFVQ ID09ICJGTE9QUFkiIAogICAgIyAgICAgQ1lHX0hBTF9TVEFSVFVQID09IFJB TQogICAgIyAgIC0tPiAwCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRp ZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZ R0JMRF9CVUlMRF9HREJfU1RVQlMKICAgICMgICAgIFJlcXVpcmVzOiBDWUdT RU1fSEFMX1JPTV9NT05JVE9SCiAgICAjIG9wdGlvbiBDWUdEQkdfSEFMX0RF QlVHX0dEQl9USFJFQURfU1VQUE9SVAogICAgIyAgICAgQWN0aXZlSWY6ICBD WUdTRU1fSEFMX1JPTV9NT05JVE9SIHx8IENZR0RCR19LRVJORUxfREVCVUdf R0RCX1RIUkVBRF9TVVBQT1JUIAp9OwoKIyBXb3JrIHdpdGggYSBST00gbW9u aXRvcgojIFN1cHBvcnQgY2FuIGJlIGVuYWJsZWQgZm9yIGRpZmZlcmVudCB2 YXJpZXRpZXMgb2YgUk9NIG1vbml0b3IuCiMgVGhpcyBzdXBwb3J0IGNoYW5n ZXMgdmFyaW91cyBlQ29zIHNlbWFudGljcyBzdWNoIGFzIHRoZSBlbmNvZGlu ZwojIG9mIGRpYWdub3N0aWMgb3V0cHV0LCBvciB0aGUgb3ZlcnJpZGluZyBv ZiBoYXJkd2FyZSBpbnRlcnJ1cHQKIyB2ZWN0b3JzLgojIEZpcnN0bHkgdGhl cmUgaXMgIkdlbmVyaWMiIHN1cHBvcnQgd2hpY2ggcHJldmVudHMgdGhlIEhB TAojIGZyb20gb3ZlcnJpZGluZyB0aGUgaGFyZHdhcmUgdmVjdG9ycyB0aGF0 IGl0IGRvZXMgbm90IHVzZSwgdG8KIyBpbnN0ZWFkIGFsbG93IGFuIGluc3Rh bGxlZCBST00gbW9uaXRvciB0byBoYW5kbGUgdGhlbS4gVGhpcyBpcwojIHRo ZSBtb3N0IGJhc2ljIHN1cHBvcnQgd2hpY2ggaXMgbGlrZWx5IHRvIGJlIGNv bW1vbiB0byBtb3N0CiMgaW1wbGVtZW50YXRpb25zIG9mIFJPTSBtb25pdG9y LgojICJHREJfc3R1YnMiIHByb3ZpZGVzIHN1cHBvcnQgd2hlbiBHREIgc3R1 YnMgYXJlIGluY2x1ZGVkIGluCiMgdGhlIFJPTSBtb25pdG9yIG9yIGJvb3Qg Uk9NLgojCmNkbF9vcHRpb24gQ1lHU0VNX0hBTF9VU0VfUk9NX01PTklUT1Ig ewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMSBHREJfc3R1YnMKICAgICMgdmFsdWVfc291 cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIENZR19IQUxfU1RB UlRVUCA9PSAiUkFNIiA/ICJHREJfc3R1YnMiIDogMCAKICAgICMgICAgIENZ R19IQUxfU1RBUlRVUCA9PSBSQU0KICAgICMgICAtLT4gMSBHREJfc3R1YnMK ICAgICMgTGVnYWwgdmFsdWVzOiAgIkdlbmVyaWMiICJHREJfc3R1YnMiIAog ICAgIyBSZXF1aXJlczogIENZR19IQUxfU1RBUlRVUCA9PSAiUkFNIiAKICAg ICMgICAgIENZR19IQUxfU1RBUlRVUCA9PSBSQU0KICAgICMgICAtLT4gMQoK ICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBi eSB0aGlzIHZhbHVlCiAgICAjIG9wdGlvbiBDWUdEQkdfSEFMX0RFQlVHX0dE Ql9JTkNMVURFX1NUVUJTCiAgICAjICAgICBSZXF1aXJlczogISBDWUdTRU1f SEFMX1VTRV9ST01fTU9OSVRPUgogICAgIyBvcHRpb24gQ1lHREJHX0hBTF9E RUJVR19HREJfQ1RSTENfU1VQUE9SVAogICAgIyAgICAgQWN0aXZlSWY6ICBD WUdTRU1fSEFMX1VTRV9ST01fTU9OSVRPUiB8fCBDWUdEQkdfSEFMX0RFQlVH X0dEQl9JTkNMVURFX1NUVUJTIAp9OwoKIyA8CiMgQ29tbW9uIEhBTCB0ZXN0 cwojIFRoaXMgb3B0aW9uIHNwZWNpZmllcyB0aGUgc2V0IG9mIHRlc3RzIGZv ciB0aGUgY29tbW9uIEhBTC4KIwpjZGxfb3B0aW9uIENZR1BLR19IQUxfVEVT VFMgewogICAgIyBDYWxjdWxhdGVkIHZhbHVlOiAgInRlc3RzL2NhY2hlIHRl c3RzL2NvbnRleHQgdGVzdHMvaW50ciIgCiAgICAjIEZsYXZvcjogZGF0YQog ICAgIyBDdXJyZW50X3ZhbHVlOiB0ZXN0cy9jYWNoZSB0ZXN0cy9jb250ZXh0 IHRlc3RzL2ludHIKfTsKCiMgaTM4NiBhcmNoaXRlY3R1cmUKIyBUaGUgaTM4 NiBhcmNoaXRlY3R1cmUgSEFMIHBhY2thZ2UgcHJvdmlkZXMgZ2VuZXJpYwoj IHN1cHBvcnQgZm9yIHRoaXMgcHJvY2Vzc29yIGFyY2hpdGVjdHVyZS4gSXQg aXMgYWxzbwojIG5lY2Vzc2FyeSB0byBzZWxlY3QgYSBzcGVjaWZpYyB0YXJn ZXQgcGxhdGZvcm0gSEFMCiMgcGFja2FnZS4KIwpjZGxfcGFja2FnZSBDWUdQ S0dfSEFMX0kzODYgewogICAgIyBQYWNrYWdlcyBjYW5ub3QgYmUgYWRkZWQg b3IgcmVtb3ZlZCwgbm9yIGNhbiB0aGVpciB2ZXJzaW9uIGJlIGNoYW5nZWQs CiAgICAjIHNpbXBseSBieSBlZGl0aW5nIHRoZWlyIHZhbHVlLiBJbnN0ZWFk IHRoZSBhcHByb3ByaWF0ZSBjb25maWd1cmF0aW9uCiAgICAjIHNob3VsZCBi ZSB1c2VkIHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucy4KCiAgICAjIFRoaXMg dmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjog Ym9vbGRhdGEKICAgICMgQ3VycmVudCB2YWx1ZTogMSBjdXJyZW50CgogICAg IyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRo aXMgdmFsdWUKICAgICMgb3B0aW9uIENZR1BLR19MSUJNX0NGTEFHU19BREQK ICAgICMgICAgIERlZmF1bHRWYWx1ZTogIDAgPT0gQ1lHUEtHX0hBTF9JMzg2 ID8gIiIgOiAiLWZmbG9hdC1zdG9yZSIgCn07CgojID4KIyBMaW5rZXIgc2Ny aXB0CiMKY2RsX29wdGlvbiBDWUdCTERfTElOS0VSX1NDUklQVCB7CiAgICAj IENhbGN1bGF0ZWQgdmFsdWU6ICAic3JjL2kzODYubGQiIAogICAgIyBGbGF2 b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogc3JjL2kzODYubGQKfTsK CiMgaTM4NiBQQyB0YXJnZXQKIyBUaGUgaTM4NiBQQyBUYXJnZXQgSEFMIHBh Y2thZ2UgcHJvdmlkZXMgdGhlIAojIHN1cHBvcnQgbmVlZGVkIHRvIHJ1biBl Q29zIGJpbmFyaWVzIG9uIGFuIGkzODYgUEMuCiMKY2RsX3BhY2thZ2UgQ1lH UEtHX0hBTF9JMzg2X1BDIHsKICAgICMgUGFja2FnZXMgY2Fubm90IGJlIGFk ZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVyc2lvbiBiZSBjaGFu Z2VkLAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVpciB2YWx1ZS4gSW5z dGVhZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbgogICAgIyBzaG91 bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnMuCgogICAgIyBU aGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2 b3I6IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6IDEgY3VycmVudAoK ICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBi eSB0aGlzIHZhbHVlCiAgICAjIHBhY2thZ2UgQ1lHUEtHX0lPX1NFUklBTF9J Mzg2X1BDCiAgICAjICAgICBBY3RpdmVJZjogQ1lHUEtHX0hBTF9JMzg2X1BD Cn07CgojID4KIyBTdGFydHVwIHR5cGUKIyBBdCB0aGUgbW9tZW50IG9ubHkg UkFNIHN0YXJ0dXAgaXMgc3VwcG9ydGVkLiBUaGlzIHNob3VsZAojIGJlIGV4 dGVuZGVkIHRvIGluY2x1ZGUgUk9NIHN0YXJ0dXAgd2hpY2ggd291bGQgYmUg dXNlZCB0bwojIHRlc3QgZWFybHkgaW5pdGlhbGl6YXRpb24gY29kZSBjb3B5 aW5nIGRhdGEvY29kZSB0byAiUkFNIi4KIwpjZGxfY29tcG9uZW50IENZR19I QUxfU1RBUlRVUCB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2Vy IHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3Zp ZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIFJBTQogICAgIyB2YWx1ZV9zb3Vy Y2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiBSQU0KICAgICMgTGVn YWwgdmFsdWVzOiAiUkFNIiAiRkxPUFBZIgoKICAgICMgVGhlIGZvbGxvd2lu ZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAj IG9wdGlvbiBDWUdCTERfQlVJTERfR0RCX1NUVUJTCiAgICAjICAgICBSZXF1 aXJlczogIENZR19IQUxfU1RBUlRVUCA9PSAiRkxPUFBZIiAKICAgICMgY29t cG9uZW50IENZR0hXUl9NRU1PUllfTEFZT1VUCiAgICAjICAgICBDYWxjdWxh dGVkOiAgQ1lHX0hBTF9TVEFSVFVQID09ICJSQU0iID8gImkzODZfcGNfcmFt IiA6ICAiaTM4Nl9wY19mbG9wcHkiIAogICAgIyBvcHRpb24gQ1lHSFdSX01F TU9SWV9MQVlPVVRfTERJCiAgICAjICAgICBDYWxjdWxhdGVkOiAgQ1lHX0hB TF9TVEFSVFVQID09ICJSQU0iID8gIjxwa2djb25mL21sdF9pMzg2X3BjX3Jh bS5sZGk+IiA6ICAiPHBrZ2NvbmYvbWx0X2kzODZfcGNfZmxvcHB5LmxkaT4i IAogICAgIyBvcHRpb24gQ1lHSFdSX01FTU9SWV9MQVlPVVRfSAogICAgIyAg ICAgQ2FsY3VsYXRlZDogIENZR19IQUxfU1RBUlRVUCA9PSAiUkFNIiA/ICI8 cGtnY29uZi9tbHRfaTM4Nl9wY19yYW0uaD4iIDogICI8cGtnY29uZi9tbHRf aTM4Nl9wY19mbG9wcHkuaD4iIAogICAgIyBvcHRpb24gQ1lHU0VNX0hBTF9S T01fTU9OSVRPUgogICAgIyAgICAgUmVxdWlyZXM6ICBDWUdfSEFMX1NUQVJU VVAgPT0gIkZMT1BQWSIgCiAgICAjIG9wdGlvbiBDWUdTRU1fSEFMX1VTRV9S T01fTU9OSVRPUgogICAgIyAgICAgRGVmYXVsdFZhbHVlOiAgQ1lHX0hBTF9T VEFSVFVQID09ICJSQU0iID8gIkdEQl9zdHVicyIgOiAwIAogICAgIyBvcHRp b24gQ1lHU0VNX0hBTF9VU0VfUk9NX01PTklUT1IKICAgICMgICAgIFJlcXVp cmVzOiAgQ1lHX0hBTF9TVEFSVFVQID09ICJSQU0iIAp9OwoKIyBEaWFnbm9z dGljIHNlcmlhbCBwb3J0IGJhdWQgcmF0ZQojIFRoaXMgb3B0aW9uIHNlbGVj dHMgdGhlIGJhdWQgcmF0ZSB1c2VkIGZvciB0aGUgZGlhZ25vc3RpYyBwb3J0 LgojIE5vdGU6IHRoaXMgc2hvdWxkIG1hdGNoIHRoZSB2YWx1ZSBjaG9zZW4g Zm9yIHRoZSBHREIgcG9ydCBpZiB0aGUKIyBkaWFnbm9zdGljIGFuZCBHREIg cG9ydCBhcmUgdGhlIHNhbWUuCiMKY2RsX29wdGlvbiBDWUdOVU1fSEFMX1ZJ UlRVQUxfVkVDVE9SX0NPTlNPTEVfQ0hBTk5FTF9CQVVEIHsKICAgICMgRmxh dm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgMzg0MDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogMzg0MDAKICAgICMgTGVnYWwgdmFsdWVzOiA5NjAwIDE5 MjAwIDM4NDAwIDU3NjAwIDExNTIwMAp9OwoKIyBHREIgc2VyaWFsIHBvcnQg YmF1ZCByYXRlCiMgVGhpcyBvcHRpb24gY29udHJvbHMgdGhlIGJhdWQgcmF0 ZSB1c2VkIGZvciB0aGUgR0RCIGNvbm5lY3Rpb24uCiMKY2RsX29wdGlvbiBD WUdOVU1fSEFMX1ZJUlRVQUxfVkVDVE9SX0RFQlVHX0NIQU5ORUxfQkFVRCB7 CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNv bW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAg IyB1c2VyX3ZhbHVlIDM4NDAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDM4NDAwCiAgICAjIExlZ2FsIHZhbHVl czogOTYwMCAxOTIwMCAzODQwMCA1NzYwMCAxMTUyMDAKfTsKCiMgTnVtYmVy IG9mIGNvbW11bmljYXRpb24gY2hhbm5lbHMgb24gdGhlIGJvYXJkCiMgVGhp cyBkZWZpbmUgdGhlIG51bWJlciBvZiBzZXJpYWwgcG9ydHMgdGhhdCB3aWxs IGJlIHVzZWQgYnkgdGhlIEhBTAojCmNkbF9vcHRpb24gQ1lHTlVNX0hBTF9W SVJUVUFMX1ZFQ1RPUl9DT01NX0NIQU5ORUxTIHsKICAgICMgRmxhdm9yOiBk YXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAxCiAgICAjIExlZ2FsIHZhbHVlczogMSB0byAyCgogICAgIyBUaGUgZm9s bG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUK ICAgICMgb3B0aW9uIENZR05VTV9IQUxfVklSVFVBTF9WRUNUT1JfREVCVUdf Q0hBTk5FTAogICAgIyAgICAgTGVnYWxWYWx1ZXM6IDAgdG8gQ1lHTlVNX0hB TF9WSVJUVUFMX1ZFQ1RPUl9DT01NX0NIQU5ORUxTLTEKICAgICMgb3B0aW9u IENZR05VTV9IQUxfVklSVFVBTF9WRUNUT1JfQ09OU09MRV9DSEFOTkVMCiAg ICAjICAgICBMZWdhbFZhbHVlczogMCB0byBDWUdOVU1fSEFMX1ZJUlRVQUxf VkVDVE9SX0NPTU1fQ0hBTk5FTFMtMQogICAgIyBvcHRpb24gQ1lHTlVNX0hB TF9WSVJUVUFMX1ZFQ1RPUl9DT05TT0xFX0NIQU5ORUxfREVGQVVMVAogICAg IyAgICAgTGVnYWxWYWx1ZXM6IDAgdG8gQ1lHTlVNX0hBTF9WSVJUVUFMX1ZF Q1RPUl9DT01NX0NIQU5ORUxTLTEKfTsKCiMgRGVidWcgc2VyaWFsIHBvcnQK IyBPbiBQQ3Mgd2l0aCB0d28gc2VyaWFsIHBvcnRzLCB0aGlzIG9wdGlvbgoj IGNob29zZXMgd2hpY2ggcG9ydCB3aWxsIGJlIHVzZWQgdG8gY29ubmVjdCB0 byBhIGhvc3QKIyBydW5uaW5nIEdEQi4KIwpjZGxfb3B0aW9uIENZR05VTV9I QUxfVklSVFVBTF9WRUNUT1JfREVCVUdfQ0hBTk5FTCB7CiAgICAjIEZsYXZv cjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2 YWx1ZTogMAogICAgIyBMZWdhbCB2YWx1ZXM6IDAgdG8gQ1lHTlVNX0hBTF9W SVJUVUFMX1ZFQ1RPUl9DT01NX0NIQU5ORUxTLTEKICAgICMgICAgIENZR05V TV9IQUxfVklSVFVBTF9WRUNUT1JfQ09NTV9DSEFOTkVMUyA9PSAxCn07Cgoj IERpYWdub3N0aWMgc2VyaWFsIHBvcnQKIyBPbiBQQ3Mgd2l0aCB0d28gc2Vy aWFsIHBvcnRzLCB0aGlzIG9wdGlvbgojIGNob29zZXMgd2hpY2ggcG9ydCB3 aWxsIGJlIHVzZWQgZm9yIGRpYWdub3N0aWMgb3V0cHV0LgojCmNkbF9vcHRp b24gQ1lHTlVNX0hBTF9WSVJUVUFMX1ZFQ1RPUl9DT05TT0xFX0NIQU5ORUwg ewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6IDAKICAgICMgTGVnYWwgdmFsdWVzOiAwIHRv IENZR05VTV9IQUxfVklSVFVBTF9WRUNUT1JfQ09NTV9DSEFOTkVMUy0xCiAg ICAjICAgICBDWUdOVU1fSEFMX1ZJUlRVQUxfVkVDVE9SX0NPTU1fQ0hBTk5F TFMgPT0gMQp9OwoKIyBEZWZhdWx0IGNvbnNvbGUgY2hhbm5lbC4KIwpjZGxf b3B0aW9uIENZR05VTV9IQUxfVklSVFVBTF9WRUNUT1JfQ09OU09MRV9DSEFO TkVMX0RFRkFVTFQgewogICAgIyBDYWxjdWxhdGVkIHZhbHVlOiAwCiAgICAj IEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCiAgICAjIExl Z2FsIHZhbHVlczogMCB0byBDWUdOVU1fSEFMX1ZJUlRVQUxfVkVDVE9SX0NP TU1fQ0hBTk5FTFMtMQogICAgIyAgICAgQ1lHTlVNX0hBTF9WSVJUVUFMX1ZF Q1RPUl9DT01NX0NIQU5ORUxTID09IDEKfTsKCiMgUmVhbC10aW1lIGNsb2Nr IGNvbnN0YW50cy4KIyBUaGUgUlRDIHBlcmlvZCBpcyBiYXNlZAojIG9uIHRo ZSBjbG9jayBpbnB1dCB0byB0aGUgODI1NCwgd2hpY2ggaXMgMTE5MzE4MCBI ei4gIENZR05VTV9IQUxfUlRDX1BFUklPRAojIGlzIHNldCBmb3IgMTAwIHRp Y2tzIHBlciBzZWNvbmQuCiMKY2RsX2NvbXBvbmVudCBDWUdOVU1fSEFMX1JU Q19DT05TVEFOVFMgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZh bHVlLgp9OwoKIyA+CiMgUmVhbC10aW1lIGNsb2NrIG51bWVyYXRvcgojCmNk bF9vcHRpb24gQ1lHTlVNX0hBTF9SVENfTlVNRVJBVE9SIHsKICAgICMgQ2Fs Y3VsYXRlZCB2YWx1ZTogMTAwMDAwMDAwMAogICAgIyBGbGF2b3I6IGRhdGEK ICAgICMgQ3VycmVudF92YWx1ZTogMTAwMDAwMDAwMAp9OwoKIyBSZWFsLXRp bWUgY2xvY2sgZGVub21pbmF0b3IKIwpjZGxfb3B0aW9uIENZR05VTV9IQUxf UlRDX0RFTk9NSU5BVE9SIHsKICAgICMgQ2FsY3VsYXRlZCB2YWx1ZTogMTAw CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAxMDAK fTsKCiMgUmVhbC10aW1lIGNsb2NrIHBlcmlvZAojCmNkbF9vcHRpb24gQ1lH TlVNX0hBTF9SVENfUEVSSU9EIHsKICAgICMgQ2FsY3VsYXRlZCB2YWx1ZTog MTE5MzIKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6 IDExOTMyCn07CgojIDwKIyBNZW1vcnkgbGF5b3V0CiMKY2RsX2NvbXBvbmVu dCBDWUdIV1JfTUVNT1JZX0xBWU9VVCB7CiAgICAjIENhbGN1bGF0ZWQgdmFs dWU6ICBDWUdfSEFMX1NUQVJUVVAgPT0gIlJBTSIgPyAiaTM4Nl9wY19yYW0i IDogICJpMzg2X3BjX2Zsb3BweSIgCiAgICAjICAgICBDWUdfSEFMX1NUQVJU VVAgPT0gUkFNCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3Zh bHVlOiBpMzg2X3BjX3JhbQp9OwoKIyA+CiMgTWVtb3J5IGxheW91dCBsaW5r ZXIgc2NyaXB0IGZyYWdtZW50CiMKY2RsX29wdGlvbiBDWUdIV1JfTUVNT1JZ X0xBWU9VVF9MREkgewogICAgIyBDYWxjdWxhdGVkIHZhbHVlOiAgQ1lHX0hB TF9TVEFSVFVQID09ICJSQU0iID8gIjxwa2djb25mL21sdF9pMzg2X3BjX3Jh bS5sZGk+IiA6ICAiPHBrZ2NvbmYvbWx0X2kzODZfcGNfZmxvcHB5LmxkaT4i IAogICAgIyAgICAgQ1lHX0hBTF9TVEFSVFVQID09IFJBTQogICAgIyBGbGF2 b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogPHBrZ2NvbmYvbWx0X2kz ODZfcGNfcmFtLmxkaT4KfTsKCiMgTWVtb3J5IGxheW91dCBoZWFkZXIgZmls ZQojCmNkbF9vcHRpb24gQ1lHSFdSX01FTU9SWV9MQVlPVVRfSCB7CiAgICAj IENhbGN1bGF0ZWQgdmFsdWU6ICBDWUdfSEFMX1NUQVJUVVAgPT0gIlJBTSIg PyAiPHBrZ2NvbmYvbWx0X2kzODZfcGNfcmFtLmg+IiA6ICAiPHBrZ2NvbmYv bWx0X2kzODZfcGNfZmxvcHB5Lmg+IiAKICAgICMgICAgIENZR19IQUxfU1RB UlRVUCA9PSBSQU0KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRf dmFsdWU6IDxwa2djb25mL21sdF9pMzg2X3BjX3JhbS5oPgp9OwoKIyA8CiMg RGlhZ25vc3RpYyBvdXRwdXQgb3B0aW9ucwojCmNkbF9jb21wb25lbnQgQ1lH U0VNX0hBTF9JMzg2X1BDX0RJQUcgewogICAgIyBUaGVyZSBpcyBubyBhc3Nv Y2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgT3V0cHV0IHRvIFBDIHNjcmVlbgoj IFRoaXMgb3B0aW9uIGNhdXNlcyBhbnkgZGlhZ25vc3RpYyBvdXRwdXQgdG8K IyBiZSBzZW50IHRvIHRoZSBQQyBtb25pdG9yIHNjcmVlbi4KIwpjZGxfb3B0 aW9uIENZR1NFTV9IQUxfSTM4Nl9QQ19ESUFHX1NDUkVFTiB7CiAgICAjIEZs YXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMAogICAgIyBSZXF1aXJlczogIUNZR1NFTV9IQUxfSTM4Nl9Q Q19ESUFHX1NFUklBTDEKICAgICMgICAgIENZR1NFTV9IQUxfSTM4Nl9QQ19E SUFHX1NFUklBTDEgPT0gMQogICAgIyAgIC0tPiAwCiAgICAjIFJlcXVpcmVz OiAhQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VSSUFMMgogICAgIyAgICAg Q1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VSSUFMMiA9PSAwCiAgICAjICAg LS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZm ZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHU0VNX0hBTF9J Mzg2X1BDX0RJQUdfU0VSSUFMMQogICAgIyAgICAgUmVxdWlyZXM6ICFDWUdT RU1fSEFMX0kzODZfUENfRElBR19TQ1JFRU4KICAgICMgb3B0aW9uIENZR1NF TV9IQUxfSTM4Nl9QQ19ESUFHX1NFUklBTDIKICAgICMgICAgIFJlcXVpcmVz OiAhQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0NSRUVOCn07CgojIE91dHB1 dCB0byBzZXJpYWwgbGluZSAxCiMgVGhpcyBvcHRpb24gY2F1c2VzIGFueSBk aWFnbm9zdGljIG91dHB1dCB0bwojIGJlIHNlbnQgdG8gc2VyaWFsIGxpbmUg MS4KIwpjZGxfb3B0aW9uIENZR1NFTV9IQUxfSTM4Nl9QQ19ESUFHX1NFUklB TDEgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6ICFDWUdT RU1fSEFMX0kzODZfUENfRElBR19TQ1JFRU4KICAgICMgICAgIENZR1NFTV9I QUxfSTM4Nl9QQ19ESUFHX1NDUkVFTiA9PSAwCiAgICAjICAgLS0+IDEKICAg ICMgUmVxdWlyZXM6ICFDWUdTRU1fSEFMX0kzODZfUENfRElBR19TRVJJQUwy CiAgICAjICAgICBDWUdTRU1fSEFMX0kzODZfUENfRElBR19TRVJJQUwyID09 IDAKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0 aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIG9wdGlvbiBD WUdTRU1fSEFMX0kzODZfUENfRElBR19TQ1JFRU4KICAgICMgICAgIFJlcXVp cmVzOiAhQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VSSUFMMQogICAgIyBv cHRpb24gQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VSSUFMMgogICAgIyAg ICAgUmVxdWlyZXM6ICFDWUdTRU1fSEFMX0kzODZfUENfRElBR19TRVJJQUwx Cn07CgojIE91dHB1dCB0byBzZXJpYWwgbGluZSAxCiMgVGhpcyBvcHRpb24g Y2F1c2VzIGFueSBkaWFnbm9zdGljIG91dHB1dCB0bwojIGJlIHNlbnQgdG8g c2VyaWFsIGxpbmUgMi4KIwpjZGxfb3B0aW9uIENZR1NFTV9IQUxfSTM4Nl9Q Q19ESUFHX1NFUklBTDIgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKICAgICMgUmVx dWlyZXM6ICFDWUdTRU1fSEFMX0kzODZfUENfRElBR19TQ1JFRU4KICAgICMg ICAgIENZR1NFTV9IQUxfSTM4Nl9QQ19ESUFHX1NDUkVFTiA9PSAwCiAgICAj ICAgLS0+IDEKICAgICMgUmVxdWlyZXM6ICFDWUdTRU1fSEFMX0kzODZfUENf RElBR19TRVJJQUwxCiAgICAjICAgICBDWUdTRU1fSEFMX0kzODZfUENfRElB R19TRVJJQUwxID09IDEKICAgICMgICAtLT4gMAoKICAgICMgVGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAg ICAjIG9wdGlvbiBDWUdTRU1fSEFMX0kzODZfUENfRElBR19TQ1JFRU4KICAg ICMgICAgIFJlcXVpcmVzOiAhQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VS SUFMMgogICAgIyBvcHRpb24gQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VS SUFMMQogICAgIyAgICAgUmVxdWlyZXM6ICFDWUdTRU1fSEFMX0kzODZfUENf RElBR19TRVJJQUwyCn07CgojIFNlcmlhbCBQb3J0IFNwZWVkCiMgVGhpcyBv cHRpb24gc2VsZWN0cyB0aGUgYmF1ZCByYXRlIHVzZWQgZm9yIHRoZSBkaWFn bm9zdGljIHBvcnQuCiMKY2RsX29wdGlvbiBDWUdTRU1fSEFMX0kzODZfUENf RElBR19TRVJJQUxfU1BFRUQgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMg Tm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0 byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAzODQwMAogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAzODQw MAogICAgIyBMZWdhbCB2YWx1ZXM6IDk2MDAgMTkyMDAgMzg0MDAgNTc2MDAg MTE1MjAwCn07CgojIDwKIyA8CiMgPAojIDwKIyBJL08gc3ViLXN5c3RlbQoj IGRvYzogcmVkaXJlY3QvZWNvcy1kZXZpY2UtZHJpdmVycy5odG1sCiMgVGhl IGVDb3Mgc3lzdGVtIGlzIHN1cHBsaWVkIHdpdGggYSBudW1iZXIgb2YgZGlm ZmVyZW50CiMgZGV2aWNlIGRyaXZlcnMuICBUaGlzIG9wdGlvbiBlbmFibGVz IHRoZSBiYXNpYyBJL08gc3lzdGVtCiMgc3VwcG9ydCB3aGljaCBpcyB0aGUg YmFzaXMgZm9yIGFsbCBkcml2ZXJzLgojCmNkbF9wYWNrYWdlIENZR1BLR19J TyB7CiAgICAjIFBhY2thZ2VzIGNhbm5vdCBiZSBhZGRlZCBvciByZW1vdmVk LCBub3IgY2FuIHRoZWlyIHZlcnNpb24gYmUgY2hhbmdlZCwKICAgICMgc2lt cGx5IGJ5IGVkaXRpbmcgdGhlaXIgdmFsdWUuIEluc3RlYWQgdGhlIGFwcHJv cHJpYXRlIGNvbmZpZ3VyYXRpb24KICAgICMgc2hvdWxkIGJlIHVzZWQgdG8g cGVyZm9ybSB0aGVzZSBhY3Rpb25zLgoKICAgICMgVGhpcyB2YWx1ZSBjYW5u b3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBib29sZGF0YQog ICAgIyBDdXJyZW50IHZhbHVlOiAxIGN1cnJlbnQKICAgICMgUmVxdWlyZXM6 IENZR1BLR19FUlJPUgogICAgIyAgICAgQ1lHUEtHX0VSUk9SID09IGN1cnJl bnQKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0 aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIHBhY2thZ2Ug Q1lHUEtHX0lPX1NFUklBTAogICAgIyAgICAgQWN0aXZlSWY6IENZR1BLR19J TwogICAgIyBwYWNrYWdlIENZR1BLR19MSUJDX1NURElPCiAgICAjICAgICBS ZXF1aXJlczogQ1lHUEtHX0lPCiAgICAjIHBhY2thZ2UgQ1lHUEtHX05FVAog ICAgIyAgICAgUmVxdWlyZXM6IENZR1BLR19JTwp9OwoKIyA+CiMgRGVidWcg SS9PIHN1Yi1zeXN0ZW0KIyBUaGlzIG9wdGlvbiBlbmFibGVzIHZlcmJvc2Ug bWVzc2FnZXMgdG8gYmUgZGlzcGxheWVkIG9uIHRoZQojIHN5c3RlbSAnZGlh ZycgZGV2aWNlIGR1cmluZyBJL08gc3lzdGVtIGluaXRpYWxpemF0aW9uLgoj CmNkbF9vcHRpb24gQ1lHREJHX0lPX0lOSVQgewogICAgIyBGbGF2b3I6IGJv b2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAg ICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6 IDAKfTsKCiMgQmFzaWMgc3VwcG9ydCBmb3IgZmlsZSBiYXNlZCBJL08KIyBU aGlzIG9wdGlvbiBjb250cm9sIHN1cHBvcnQgZm9yIHNpbXBsZSBmaWxlIEkv TyBwcmltaXRpdmVzLiBJdCBpcyBvbmx5CiMgcHJlc2VudCBpZiB0aGUgRklM RUlPIHBhY2thZ2UgaXMgbm90IGluY2x1ZGVkLgojCmNkbF9jb21wb25lbnQg Q1lHUEtHX0lPX0ZJTEVfU1VQUE9SVCB7CiAgICAjIEFjdGl2ZUlmIGNvbnN0 cmFpbnQ6ICFDWUdQS0dfSU9fRklMRUlPCiAgICAjICAgICBDWUdQS0dfSU9f RklMRUlPICh1bmtub3duKSA9PSAwCiAgICAjICAgLS0+IDEKCiAgICAjIEZs YXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMQp9OwoKIyA+CiMgTnVtYmVyIG9mIG9wZW4gZmlsZXMKIyBU aGlzIG9wdGlvbiBjb250cm9scyB0aGUgbnVtYmVyIG9mIG9wZW4gZmlsZXMu CiMKY2RsX29wdGlvbiBDWUdQS0dfSU9fTkZJTEUgewogICAgIyBGbGF2b3I6 IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAx NgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiAxNgp9OwoKIyA8CiMgUENJIGNvbmZpZ3VyYXRpb24gbGlicmFyeQoj IGRvYzogcmVkaXJlY3QvZWNvcy1kZXZpY2UtZHJpdmVycy5odG1sCiMgVGhl IFBDSSBjb25maWd1cmF0aW9uIGxpYnJhcnkgcHJvdmlkZXMgaW5pdGlhbGl6 YXRpb24gb2YgZGV2aWNlcwojIG9uIHRoZSBQQ0kgYnVzLiBGdW5jdGlvbnMg dG8gZmluZCBhbmQgYWNjZXNzIHRoZXNlIGRldmljZXMgYXJlCiMgYWxzbyBw cm92aWRlZC4KIwpjZGxfcGFja2FnZSBDWUdQS0dfSU9fUENJIHsKICAgICMg UGFja2FnZXMgY2Fubm90IGJlIGFkZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4g dGhlaXIgdmVyc2lvbiBiZSBjaGFuZ2VkLAogICAgIyBzaW1wbHkgYnkgZWRp dGluZyB0aGVpciB2YWx1ZS4gSW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUgY29u ZmlndXJhdGlvbgogICAgIyBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRo ZXNlIGFjdGlvbnMuCgogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2Rp ZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1cnJl bnQgdmFsdWU6IDEgY3VycmVudAp9OwoKIyA+CiMgUENJIGJ1aWxkIG9wdGlv bnMKIyBQYWNrYWdlIHNwZWNpZmljIGJ1aWxkIG9wdGlvbnMgaW5jbHVkaW5n IGNvbnRyb2wgb3ZlcgojIGNvbXBpbGVyIGZsYWdzIHVzZWQgb25seSBpbiBi dWlsZGluZyB0aGlzIHBhY2thZ2UsCiMgYW5kIGRldGFpbHMgb2Ygd2hpY2gg dGVzdHMgYXJlIGJ1aWx0LgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lPX1BD SV9PUFRJT05TIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1 ZS4KfTsKCiMgPgojIEFkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3MKIyBUaGlz IG9wdGlvbiBtb2RpZmllcyB0aGUgc2V0IG9mIGNvbXBpbGVyIGZsYWdzIGZv cgojIGJ1aWxkaW5nIHRoZSBQQ0kgY29uZmlndXJhdGlvbiBsaWJyYXJ5LiBU aGVzZSBmbGFncyBhcmUgdXNlZCBpbiBhZGRpdGlvbgojIHRvIHRoZSBzZXQg b2YgZ2xvYmFsIGZsYWdzLgojCmNkbF9vcHRpb24gQ1lHUEtHX0lPX1BDSV9D RkxBR1NfQUREIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgIiIKICAgICMgdmFsdWVfc291cmNl IGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIiIKfTsKCiMgU3VwcHJl c3NlZCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRo ZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhlIFBD SSBjb25maWd1cmF0aW9uIGxpYnJhcnkuIFRoZXNlIGZsYWdzIGFyZSByZW1v dmVkIGZyb20KIyB0aGUgc2V0IG9mIGdsb2JhbCBmbGFncyBpZiBwcmVzZW50 LgojCmNkbF9vcHRpb24gQ1lHUEtHX0lPX1BDSV9DRkxBR1NfUkVNT1ZFIHsK ICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29t bWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAj IHVzZXJfdmFsdWUgIiIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAg ICMgRGVmYXVsdCB2YWx1ZTogIiIKfTsKCiMgUENJIHRlc3RzCiMgVGhpcyBv cHRpb24gc3BlY2lmaWVzIHRoZSBzZXQgb2YgdGVzdHMgZm9yIHRoZSBQQ0kg Y29uZmlndXJhdGlvbiBsaWJyYXJ5LgojCmNkbF9vcHRpb24gQ1lHUEtHX0lP X1BDSV9URVNUUyB7CiAgICAjIENhbGN1bGF0ZWQgdmFsdWU6ICAidGVzdHMv cGNpMSB0ZXN0cy9wY2kyIiAKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1 cnJlbnRfdmFsdWU6IHRlc3RzL3BjaTEgdGVzdHMvcGNpMgp9OwoKIyA8CiMg PAojIENvbW1vbiBldGhlcm5ldCBzdXBwb3J0CiMgUGxhdGZvcm0gaW5kZXBl bmRlbnQgZXRoZXJuZXQgZHJpdmVycwojCmNkbF9wYWNrYWdlIENZR1BLR19J T19FVEhfRFJJVkVSUyB7CiAgICAjIFBhY2thZ2VzIGNhbm5vdCBiZSBhZGRl ZCBvciByZW1vdmVkLCBub3IgY2FuIHRoZWlyIHZlcnNpb24gYmUgY2hhbmdl ZCwKICAgICMgc2ltcGx5IGJ5IGVkaXRpbmcgdGhlaXIgdmFsdWUuIEluc3Rl YWQgdGhlIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24KICAgICMgc2hvdWxk IGJlIHVzZWQgdG8gcGVyZm9ybSB0aGVzZSBhY3Rpb25zLgoKICAgICMgVGhp cyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9y OiBib29sZGF0YQogICAgIyBDdXJyZW50IHZhbHVlOiAxIGN1cnJlbnQKCiAg ICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkg dGhpcyB2YWx1ZQogICAgIyBwYWNrYWdlIENZR1BLR19ERVZTX0VUSF9JODI1 NTkKICAgICMgICAgIEFjdGl2ZUlmOiBDWUdQS0dfSU9fRVRIX0RSSVZFUlMK fTsKCiMgPgojIFN1cHBvcnQgZm9yIHN0YW5kYXJkIGVDb3MgVENQL0lQIHN0 YWNrLgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lPX0VUSF9EUklWRVJTX05F VCB7CiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFpbnQ6IENZR1BLR19ORVQKICAg ICMgICAgIENZR1BLR19ORVQgPT0gY3VycmVudAogICAgIyAgIC0tPiAxCgog ICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAj IERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgPgojIFdhcm4gd2hlbiB0aGVyZSBh cmUgbm8gbW9yZSBtYnVmcwojIFdhcm5pbmdzIGFib3V0IHJ1bm5pbmcgb3V0 IG9mIG1idWZzIGFyZSBwcmludGVkIHRvIHRoZQojIGRpYWdub3N0aWMgb3V0 cHV0IGNoYW5uZWwgdmlhIGRpYWdfcHJpbnRmKCkgaWYgdGhpcyBvcHRpb24K IyBpcyBlbmFibGVkLiAgTWJ1ZnMgYXJlIHRoZSBuZXR3b3JrIHN0YWNrJ3Mg YmFzaWMgZHluYW1pYwojIG1lbW9yeSBvYmplY3RzIHRoYXQgaG9sZCBhbGwg cGFja2V0cyBpbiB0cmFuc2l0OyBydW5uaW5nCiMgb3V0IGlzIGJhZCBmb3Ig cGVyZm9ybWFuY2UgYnV0IG5vdCBmYXRhbCwgbm90IGEgY3Jhc2guCiMgWW91 IG1pZ2h0IHdhbnQgdG8gdHVybiBvZmYgdGhlIHdhcm5pbmdzIHRvIHByZXNl cnZlIHJlYWx0aW1lCiMgcHJvcGVydGllcyBvZiB0aGUgc3lzdGVtIGV2ZW4g aW4gZXh0cmVtaXMuCiMKY2RsX29wdGlvbiBDWUdQS0dfSU9fRVRIX0RSSVZF UlNfV0FSTl9OT19NQlVGUyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVf c291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyBT aW11bGF0ZSBuZXR3b3JrIGZhaWx1cmVzIGZvciB0ZXN0aW5nCiMgVGhpcyBw YWNrYWdlIGNvbnRhaW5zIGEgc3VpdGUgb2Ygc2ltdWxhdGVkIGZhaWx1cmUg bW9kZXMKIyBmb3IgdGhlIGV0aGVybmV0IGRldmljZSBsYXllciwgaW5jbHVk aW5nIGRyb3BwaW5nIGFuZC9vcgojIGNvcnJ1cHRpbmcgcmVjZWl2ZWQgcGFj a2V0cywgZHJvcHBpbmcgcGFja2V0cyBxdWV1ZWQgZm9yCiMgdHJhbnNtaXNz aW9uLCBhbmQgc2ltdWxhdGluZyBhIGNvbXBsZXRlIG5ldHdvcmsgYnJlYWsu CiMgSXQgcmVxdWlyZXMgdGhlIGtlcm5lbCBhcyBhIHNvdXJjZSBvZiB0aW1l IGluZm9ybWF0aW9uLgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lPX0VUSF9E UklWRVJTX1NJTVVMQVRFRF9GQUlMVVJFUyB7CiAgICAjIEZsYXZvcjogYm9v bAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAg ICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTog MAp9OwoKIyA+CiMgRHJvcCBpbmNvbWluZyBwYWNrZXRzIChwZXJjZW50YWdl KQojCmNkbF9vcHRpb24gQ1lHUEtHX0lPX0VUSF9EUklWRVJTX1NJTVVMQVRF X0RST1BfUlggewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAg ICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lPX0VUSF9EUklWRVJTX1NJTVVMQVRF RF9GQUlMVVJFUyBpcyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBib29sZGF0 YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEgMTAK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMSAxMAogICAgIyBMZWdhbCB2YWx1ZXM6IDEwIDUwIDgwCn07CgojIENv cnJ1cHQgaW5jb21pbmcgcGFja2V0cyAocGVyY2VudGFnZSkKIwpjZGxfb3B0 aW9uIENZR1BLR19JT19FVEhfRFJJVkVSU19TSU1VTEFURV9DT1JSVVBUX1JY IHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUg cGFyZW50IENZR1BLR19JT19FVEhfRFJJVkVSU19TSU1VTEFURURfRkFJTFVS RVMgaXMgZGlzYWJsZWQKCiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMg Tm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0 byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxIDEwCiAgICAjIHZh bHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEgMTAK ICAgICMgTGVnYWwgdmFsdWVzOiAxMCA1MCA4MAp9OwoKIyBEcm9wIG91dGdv aW5nIHBhY2tldHMgKHBlcmNlbnRhZ2UpCiMKY2RsX29wdGlvbiBDWUdQS0df SU9fRVRIX0RSSVZFUlNfU0lNVUxBVEVfRFJPUF9UWCB7CiAgICAjIFRoaXMg b3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0df SU9fRVRIX0RSSVZFUlNfU0lNVUxBVEVEX0ZBSUxVUkVTIGlzIGRpc2FibGVk CgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMSAxMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVm YXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxIDEwCiAgICAjIExlZ2FsIHZh bHVlczogMTAgNTAgODAKfTsKCiMgU2ltdWxhdGUgYSBsaW5lIGN1dCBmcm9t IHRpbWUgdG8gdGltZQojIFRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgc3lzdGVt IHRvIGRyb3AgYWxsIHBhY2tldHMgZm9yIGEKIyBzaG9ydCByYW5kb20gcGVy aW9kICgxMHMgb2Ygc2Vjb25kcyksIGFuZCB0aGVuIGFjdAojIG5vcm1hbGx5 IGZvciB1cCB0byA0IHRpbWVzIHRoYXQgbG9uZy4gIFRoaXMgc2ltdWxhdGVz IHlvdXIKIyBzeXNhZG1pbiBmaWRkbGluZyB3aXRoIHBsdWdzIGluIHRoZSBu ZXR3b3JrIHN3aXRjaAojIGN1cGJvYXJkLgojCmNkbF9vcHRpb24gQ1lHUEtH X0lPX0VUSF9EUklWRVJTX1NJTVVMQVRFX0xJTkVfQ1VUIHsKICAgICMgVGhp cyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BL R19JT19FVEhfRFJJVkVSU19TSU1VTEFURURfRkFJTFVSRVMgaXMgZGlzYWJs ZWQKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMAp9OwoKIyA8CiMgPAojIFN1cHBvcnQg Zm9yIHN0YW5kLWFsb25lIG5ldHdvcmsgc3RhY2suCiMKY2RsX2NvbXBvbmVu dCBDWUdQS0dfSU9fRVRIX0RSSVZFUlNfU1RBTkRfQUxPTkUgewogICAgIyBU aGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIEFjdGl2ZUlmIGNvbnN0 cmFpbnQ6ICFDWUdQS0dfTkVUCiAgICAjICAgICBDWUdQS0dfTkVUID09IGN1 cnJlbnQKICAgICMgICAtLT4gMAoKICAgICMgRmxhdm9yOiBib29sCiAgICAj IE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUg dG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1 ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07Cgoj ID4KIyBOdW1iZXIgb2YgW25ldHdvcmtdIGJ1ZmZlcnMKIyBUaGlzIG9wdGlv biBpcyB1c2VkIHRvIGFsbG9jYXRlIHNwYWNlIHRvIGJ1ZmZlciBpbmNvbWlu ZyBuZXR3b3JrCiMgcGFja2V0cy4gIFRoZXNlIGJ1ZmZlcnMgYXJlIHVzZWQg dG8gaG9sZCBkYXRhIHVudGlsIHRoZXkgY2FuIGJlCiMgbG9naWNhbGx5IHBy b2Nlc3NlZCBieSBoaWdoZXIgbGF5ZXJzLgojCmNkbF9vcHRpb24gQ1lHTlVN X0lPX0VUSF9EUklWRVJTX05VTV9QS1QgewogICAgIyBUaGlzIG9wdGlvbiBp cyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lPX0VUSF9E UklWRVJTX1NUQU5EX0FMT05FIGlzIG5vdCBhY3RpdmUKCiAgICAjIEZsYXZv cjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDE2CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDE2CiAgICAjIExlZ2FsIHZhbHVlczogMiB0byAzMgp9OwoKIyBT aG93IGRyaXZlciB3YXJuaW5ncwojIFNlbGVjdGluZyB0aGlzIG9wdGlvbiB3 aWxsIGFsbG93cyB0aGUgc3RhbmQtYWxvbmUgZXRoZXJuZXQgZHJpdmVyCiMg dG8gZGlzcGxheSB3YXJuaW5ncyBvbiB0aGUgc3lzdGVtIGNvbnNvbGUgd2hl biBpbmNvbWluZyBuZXR3b3JrCiMgcGFja2V0cyBhcmUgYmVpbmcgZGlzY2Fy ZGVkIGR1ZSB0byBsYWNrIG9mIGJ1ZmZlciBzcGFjZS4KIwpjZGxfb3B0aW9u IENZR1NFTV9JT19FVEhfRFJJVkVSU19XQVJOIHsKICAgICMgVGhpcyBvcHRp b24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19JT19F VEhfRFJJVkVSU19TVEFORF9BTE9ORSBpcyBub3QgYWN0aXZlCgogICAgIyBG bGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1 bHQgdmFsdWU6IDAKfTsKCiMgUHJpbnQgZHJpdmVyIGRlYnVnIGluZm9ybWF0 aW9uCiMgU2VsZWN0aW5nIHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHRoZSBz dGFuZC1hbG9uZSBkcml2ZXIgdG8gcHJpbnQKIyBsb3RzIG9mIGluZm9ybWF0 aW9uLiAgVXNlZnVsIG9ubHkgd2hlbiBnZXR0aW5nIGEgbG93LWxldmVsIGhh cmR3YXJlCiMgZHJpdmVyIHRvIHdvcmsuCiMKY2RsX29wdGlvbiBDWUdTRU1f SU9fRVRIX0RSSVZFUlNfREVCVUcgewogICAgIyBUaGlzIG9wdGlvbiBpcyBu b3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lPX0VUSF9EUklW RVJTX1NUQU5EX0FMT05FIGlzIG5vdCBhY3RpdmUKCiAgICAjIEZsYXZvcjog Ym9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMAp9OwoKIyA8CiMgQ29tbW9uIGV0aGVybmV0IHN1cHBvcnQgYnVpbGQg b3B0aW9ucwojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lPX0VUSF9EUklWRVJT X09QVElPTlMgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVl Lgp9OwoKIyA+CiMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncwojIFRoaXMg b3B0aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9y CiMgYnVpbGRpbmcgdGhlIGNvbW1vbiBldGhlcm5ldCBzdXBwb3J0IHBhY2th Z2UuIFRoZXNlIGZsYWdzIGFyZSB1c2VkIGluIGFkZGl0aW9uCiMgdG8gdGhl IHNldCBvZiBnbG9iYWwgZmxhZ3MuCiMKY2RsX29wdGlvbiBDWUdQS0dfSU9f RVRIX0RSSVZFUlNfQ0ZMQUdTX0FERCB7CiAgICAjIEZsYXZvcjogZGF0YQog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICItRF9LRVJO RUwgLURfX0VDT1MiCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAj IERlZmF1bHQgdmFsdWU6ICItRF9LRVJORUwgLURfX0VDT1MiCn07CgojIDwK IyBJbnRlbCBQUk8vMTAwKyBldGhlcm5ldCBkcml2ZXIKIyBFdGhlcm5ldCBk cml2ZXIgZm9yIEludGVsIFBSTy8xMDArIGJvYXJkcy4KIwpjZGxfcGFja2Fn ZSBDWUdQS0dfREVWU19FVEhfSTgyNTU5IHsKICAgICMgUGFja2FnZXMgY2Fu bm90IGJlIGFkZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVyc2lv biBiZSBjaGFuZ2VkLAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVpciB2 YWx1ZS4gSW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbgog ICAgIyBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnMu CgogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBDWUdQS0dfSU9fRVRIX0RS SVZFUlMKICAgICMgICAgIENZR1BLR19JT19FVEhfRFJJVkVSUyA9PSBjdXJy ZW50CiAgICAjICAgLS0+IDEKCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJl IG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMg Q3VycmVudCB2YWx1ZTogMSBjdXJyZW50Cn07CgojID4KIyBQcmludHMgZXRo ZXJuZXQgZGV2aWNlIHN0YXR1cyBpbmZvIGR1cmluZyBzdGFydHVwCiMgVGhl IGV0aGVybmV0IGRldmljZSBpbml0aWFsaXphdGlvbiBjb2RlIGNhbiBwcmlu dCBsb3RzIG9mIGluZm8KIyB0byBjb25maXJtIHRoYXQgaXQgaGFzIGZvdW5k IHRoZSBkZXZpY2VzIG9uIHRoZSBQQ0kgYnVzLCByZWFkCiMgdGhlIE1BQyBh ZGRyZXNzIGZyb20gRUVQUk9NIGNvcnJlY3RseSwgYW5kIHNvIG9uLCBhbmQg YWxzbwojIGRpc3BsYXlzIHRoZSBtb2RlICgxMC8xMDBNSHosIGhhbGYvZnVs bCBkdXBsZXgpIG9mIHRoZQojIGNvbm5lY3Rpb24uCiMKY2RsX29wdGlvbiBD WUdEQkdfREVWU19FVEhfUENfSTgyNTU5X0NIQVRURVIgewogICAgIyBGbGF2 b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAKfTsKCiMgTnVtYmVyIG9mIHN1cHBvcnRlZCBpbnRlcmZhY2Vz LgojIFRoaXMgb3B0aW9uIHNlbGVjdHMgdGhlIG51bWJlciBvZiBQQ0kgZXRo ZXJuZXQgaW50ZXJmYWNlcyB0bwojIGJlIHN1cHBvcnRlZCBieSB0aGUgZHJp dmVyLgojCmNkbF9vcHRpb24gQ1lHTlVNX0RFVlNfRVRIX1BDX0k4MjU1OV9E RVZfQ09VTlQgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2 YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRl IG9uZS4KICAgICMgdXNlcl92YWx1ZSAyCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDIKICAgICMgTGVnYWwgdmFs dWVzOiAxIDIKfTsKCiMgS2VlcCBFdGhlcm5ldCBzdGF0aXN0aWNzCiMgVGhl IGV0aGVybmV0IGRldmljZSBjYW4gbWFpbnRhaW4gc3RhdGlzdGljcyBhYm91 dCB0aGUgbmV0d29yaywKIyBzcGVjaWZpY2FsbHkgYSBncmVhdCB2YXJpZXR5 IG9mIGVycm9yIHJhdGVzIHdoaWNoIGFyZSB1c2VmdWwKIyBmb3IgbmV0d29y ayBtYW5hZ2VtZW50LiAgU05NUCBmb3IgZXhhbXBsZSB1c2VzIHRoaXMKIyBp bmZvcm1hdGlvbi4gIFRoZXJlIGlzIHNvbWUgcGVyZm9ybWFuY2UgY29zdCBp biBtYWludGFpbmluZwojIHRoaXMgaW5mb3JtYXRpb247IGRpc2FibGUgdGhp cyBvcHRpb24gdG8gcmVjb3VwIHRoYXQuCiMKY2RsX2NvbXBvbmVudCBDWUdE QkdfREVWU19FVEhfUENfSTgyNTU5X0tFRVBfU1RBVElTVElDUyB7CiAgICAj IEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogMQp9OwoKIyA+CiMgS2VlcCBpODI1NTkgSW50ZXJuYWwg c3RhdGlzdGljcwojIFRoZSBpODI1NTkga2VlcHMgaW50ZXJuYWwgY291bnRl cnMsIGFuZCBpdCBpcyBwb3NzaWJsZSB0bwojIGFjcXVpcmUgdGhlc2UuICBC dXQgdGhlIGk4MjU1OSAocmVwdXRlZGx5KSBkb2VzIG5vdCBzZXJ2aWNlCiMg dGhlIG5ldHdvcmsgd2hpbHN0IHVwbG9hZGluZyB0aGUgZGF0YSB0byBSQU0g ZnJvbSBpdHMKIyBpbnRlcm5hbCByZWdpc3RlcnMuICBJZiB0aHJvdWdocHV0 IGlzIGEgcHJvYmxlbSwgZGlzYWJsZQojIHRoaXMgb3B0aW9uIHRvIGFjcXVp cmUgb25seSB0aG9zZSBzdGF0aXN0aWNzIGdhdGhlcmVkIGJ5CiMgc29mdHdh cmUsIHNvIHRoYXQgdGhlIGk4MjU1OSBuZXZlciBzbGVlcHMuCiMKY2RsX29w dGlvbiBDWUdEQkdfREVWU19FVEhfUENfSTgyNTU5X0tFRVBfODI1NTlfU1RB VElTVElDUyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRl ZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyA8CiMgU0lPQ1NJ RkhXQUREUiByZWNvcmRzIE1BQyBhZGRyZXNzIGluIEVFUFJPTQojIFRoZSBp b2N0bCgpIHNvY2tldCBjYWxsIHdpdGggb3BlcmFuZCBTSU9DU0lGSFdBRERS IHNldHMgdGhlCiMgaW50ZXJmYWNlIGhhcmR3YXJlIGFkZHJlc3MgLSB0aGUg TUFDIGFkZHJlc3Mgb3IgZXRoZXJuZXQKIyBhZGRyZXNzLiAgVGhpcyBvcHRp b24gY2F1c2VzIHRoZSBuZXcgTUFDIGFkZHJlc3MgdG8gYmUgd3JpdHRlbgoj IGludG8gdGhlIEVFUFJPTSBhc3NvY2lhdGVkIHdpdGggdGhlIGludGVyZmFj ZSwgc28gdGhhdCB0aGUgbmV3CiMgTUFDIGFkZHJlc3MgaXMgcGVybWFuZW50 bHkgcmVjb3JkZWQuICBEb2luZyB0aGlzIHNob3VsZCBiZSBhCiMgY2FyZWZ1 bGx5IGNob3NlbiBkZWNpc2lvbiwgaGVuY2UgdGhpcyBvcHRpb24uCiMKY2Rs X2NvbXBvbmVudCBDWUdQS0dfREVWU19FVEhfUENfSTgyNTU5X1dSSVRFX0VF UFJPTSB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVl LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25l LgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAp9OwoKIyBJbnRlbCBQUk8vMTAw KyBldGhlcm5ldCBkcml2ZXIgYnVpbGQgb3B0aW9ucwojCmNkbF9jb21wb25l bnQgQ1lHUEtHX0RFVlNfRVRIX0k4MjU1OV9PUFRJT05TIHsKICAgICMgVGhl cmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIEFkZGl0aW9u YWwgY29tcGlsZXIgZmxhZ3MKIyBUaGlzIG9wdGlvbiBtb2RpZmllcyB0aGUg c2V0IG9mIGNvbXBpbGVyIGZsYWdzIGZvcgojIGJ1aWxkaW5nIHRoZSBJbnRl bCBQUk8vMTAwKyBldGhlcm5ldCBkcml2ZXIKIyBwYWNrYWdlLiBUaGVzZSBm bGFncyBhcmUgdXNlZCBpbiBhZGRpdGlvbiB0byB0aGUgc2V0IG9mCiMgZ2xv YmFsIGZsYWdzLgojCmNkbF9vcHRpb24gQ1lHUEtHX0RFVlNfRVRIX0k4MjU1 OV9DRkxBR1NfQUREIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVz ZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJv dmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgIi1EX0tFUk5FTCAtRF9fRUNP UyIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2 YWx1ZTogIi1EX0tFUk5FTCAtRF9fRUNPUyIKfTsKCiMgPAojIDwKIyA8CiMg PAojIFNlcmlhbCBkZXZpY2UgZHJpdmVycwojIGRvYzogcmVkaXJlY3QvZWNv cy1kZXZpY2UtZHJpdmVycy5odG1sCiMgVGhpcyBvcHRpb24gZW5hYmxlcyBk cml2ZXJzIGZvciBiYXNpYyBJL08gc2VydmljZXMgb24KIyBzZXJpYWwgZGV2 aWNlcy4KIwpjZGxfcGFja2FnZSBDWUdQS0dfSU9fU0VSSUFMIHsKICAgICMg UGFja2FnZXMgY2Fubm90IGJlIGFkZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4g dGhlaXIgdmVyc2lvbiBiZSBjaGFuZ2VkLAogICAgIyBzaW1wbHkgYnkgZWRp dGluZyB0aGVpciB2YWx1ZS4gSW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUgY29u ZmlndXJhdGlvbgogICAgIyBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRo ZXNlIGFjdGlvbnMuCgogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBDWUdQ S0dfSU8KICAgICMgICAgIENZR1BLR19JTyA9PSBjdXJyZW50CiAgICAjICAg LS0+IDEKCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhl cmUuCiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgQ3VycmVudCB2YWx1 ZTogMSBjdXJyZW50CiAgICAjIFJlcXVpcmVzOiBDWUdQS0dfRVJST1IKICAg ICMgICAgIENZR1BLR19FUlJPUiA9PSBjdXJyZW50CiAgICAjICAgLS0+IDEK CiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQg YnkgdGhpcyB2YWx1ZQogICAgIyBwYWNrYWdlIENZR1BLR19JT19TRVJJQUxf STM4Nl9QQwogICAgIyAgICAgQWN0aXZlSWY6IENZR1BLR19JT19TRVJJQUwK fTsKCiMgPgojIFN1cHBvcnQgbm9uLWJsb2NraW5nIHJlYWQgYW5kIHdyaXRl IGNhbGxzCiMgVGhpcyBvcHRpb24gZW5hYmxlcyBleHRyYSBjb2RlIGluIHRo ZSBnZW5lcmljIHNlcmlhbCBkcml2ZXIKIyB3aGljaCBhbGxvd3MgY2xpZW50 cyB0byBzd2l0Y2ggcmVhZCgpIGFuZCB3cml0ZSgpIGNhbGwKIyBzZW1hbnRp Y3MgZnJvbSBibG9ja2luZyB0byBub24tYmxvY2tpbmcuCiMKY2RsX29wdGlv biBDWUdPUFRfSU9fU0VSSUFMX1NVUFBPUlRfTk9OQkxPQ0tJTkcgewogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDAKfTsKCiMgRHJpdmVyIHJlcXVpcmVzIGJsb2NrIHRy YW5zZmVyIGNhbGxiYWNrIGZ1bmN0aW9ucwojIFNvbWUgbG93LWxldmVsIGRy aXZlcnMgY2FuIGJlIG9wdGltaXplZCB0byB0cmFuc2ZlciBibG9ja3MKIyBv ZiBkYXRhIGluc3RlYWQgb2YgYSBzaW5nbGUgY2hhcmFjdGVyIGF0IGEgdGlt ZS4gVGhlc2UgdXN1YWxseQojIHJlbHkgb24gYSBoYXJkd2FyZSBGSUZPIG9m IHNvbWUgc29ydC4KIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JT19TRVJJQUxf QkxPQ0tfVFJBTlNGRVIgewogICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0 aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2Rp ZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92 YWx1ZTogMAp9OwoKIyBTZXJpYWwgZHJpdmVyIHN1cHBvcnRzIGxpbmUgc3Rh dHVzCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSU9fU0VSSUFMX0xJTkVfU1RB VFVTX0hXIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZl cmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVy ZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAK CiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQg YnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHT1BUX0lPX1NFUklBTF9T VVBQT1JUX0xJTkVfU1RBVFVTCiAgICAjICAgICBSZXF1aXJlczogIENZR0lO VF9JT19TRVJJQUxfTElORV9TVEFUVVNfSFcgPiAwIAogICAgIyBvcHRpb24g Q1lHT1BUX0lPX1NFUklBTF9TVVBQT1JUX0xJTkVfU1RBVFVTCiAgICAjICAg ICBEZWZhdWx0VmFsdWU6ICAwICE9IENZR0lOVF9JT19TRVJJQUxfTElORV9T VEFUVVNfSFcgCn07CgojIFN1cHBvcnQgbGluZSBzdGF0dXMgY2FsbGJhY2tz CiMgVGhpcyBvcHRpb24gaW5kaWNhdGVzIHRoYXQgaWYgdGhlIHNlcmlhbCBk cml2ZXIgc3VwcG9ydHMgaXQsCiMgc2VyaWFsIGxpbmUgc3RhdHVzIGFuZCBt b2RlbSBzdGF0dXMgaW5mb3JtYXRpb24gc2hvdWxkIGJlCiMgcHJvcGFnYXRl ZCB0byBoaWdoZXIgbGF5ZXJzIHZpYSBjYWxsYmFja3MuCiMKY2RsX29wdGlv biBDWUdPUFRfSU9fU0VSSUFMX1NVUFBPUlRfTElORV9TVEFUVVMgewogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6ICAwICE9IENZR0lOVF9JT19TRVJJQUxfTElORV9TVEFU VVNfSFcgCiAgICAjICAgICBDWUdJTlRfSU9fU0VSSUFMX0xJTkVfU1RBVFVT X0hXID09IDAKICAgICMgICAtLT4gMAogICAgIyBSZXF1aXJlczogIENZR0lO VF9JT19TRVJJQUxfTElORV9TVEFUVVNfSFcgPiAwIAogICAgIyAgICAgQ1lH SU5UX0lPX1NFUklBTF9MSU5FX1NUQVRVU19IVyA9PSAwCiAgICAjICAgLS0+ IDAKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0 ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHT1BUX0lPX1NFUklB TF9GTE9XX0NPTlRST0xfSFcKICAgICMgICAgIFJlcXVpcmVzOiBDWUdPUFRf SU9fU0VSSUFMX1NVUFBPUlRfTElORV9TVEFUVVMKICAgICMgb3B0aW9uIENZ R09QVF9JT19TRVJJQUxfRkxPV19DT05UUk9MX0hXCiAgICAjICAgICBEZWZh dWx0VmFsdWU6ICBDWUdJTlRfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9IVyA+ IDAgPyAgQ1lHT1BUX0lPX1NFUklBTF9TVVBQT1JUX0xJTkVfU1RBVFVTIDog MCAKfTsKCiMgRmxvdyBjb250cm9sCiMgVGhpcyBjb21wb25lbnQgY29udGFp bnMgb3B0aW9ucyByZWxhdGVkIHRvIGZsb3cgY29udHJvbC4KIwpjZGxfY29t cG9uZW50IENZR1BLR19JT19TRVJJQUxfRkxPV19DT05UUk9MIHsKICAgICMg Rmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAoQ1lHT1BUX0lPX1NFUklB TF9GTE9XX0NPTlRST0xfU09GVFdBUkUgfHwgQ1lHT1BUX0lPX1NFUklBTF9G TE9XX0NPTlRST0xfSFcpCiAgICAjICAgICBDWUdPUFRfSU9fU0VSSUFMX0ZM T1dfQ09OVFJPTF9TT0ZUV0FSRSA9PSAwCiAgICAjICAgICBDWUdPUFRfSU9f U0VSSUFMX0ZMT1dfQ09OVFJPTF9IVyA9PSAwCiAgICAjICAgLS0+IDAKfTsK CiMgPgojIFNvZnR3YXJlIGZsb3cgY29udHJvbAojIFRoaXMgY29tcG9uZW50 IGVuYWJsZXMgc3VwcG9ydCBvZiBzb2Z0d2FyZSBmbG93IGNvbnRyb2wuCiMK Y2RsX2NvbXBvbmVudCBDWUdPUFRfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9T T0ZUV0FSRSB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAg ICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTCBp cyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCgogICAgIyBUaGUgZm9s bG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUK ICAgICMgY29tcG9uZW50IENZR1BLR19JT19TRVJJQUxfRkxPV19DT05UUk9M CiAgICAjICAgICBSZXF1aXJlczogKENZR09QVF9JT19TRVJJQUxfRkxPV19D T05UUk9MX1NPRlRXQVJFIHx8IENZR09QVF9JT19TRVJJQUxfRkxPV19DT05U Uk9MX0hXKQp9OwoKIyA+CiMgU3RhcnQgY2hhcmFjdGVyCiMgVGhpcyBvcHRp b24gc3BlY2lmaWVzIHRoZSBhc2NpaSBjaGFyYWN0ZXIgdXNlZCB0bwojIGlu ZGljYXRlIHRoYXQgdHJhbnNtaXNzaW9uIHNob3VsZCBzdGFydC4KIwpjZGxf b3B0aW9uIENZR0RBVF9JT19TRVJJQUxfRkxPV19DT05UUk9MX1hPTl9DSEFS IHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUg cGFyZW50IENZR09QVF9JT19TRVJJQUxfRkxPV19DT05UUk9MX1NPRlRXQVJF IGlzIG5vdCBhY3RpdmUKCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDE3CiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDE3CiAgICAjIExl Z2FsIHZhbHVlczogMCB0byAyNTUKfTsKCiMgU3RvcCBjaGFyYWN0ZXIKIyBU aGlzIG9wdGlvbiBzcGVjaWZpZXMgdGhlIGFzY2lpIGNoYXJhY3RlciB1c2Vk IHRvCiMgaW5kaWNhdGUgdGhhdCB0cmFuc21pc3Npb24gc2hvdWxkIHN0b3Au CiMKY2RsX29wdGlvbiBDWUdEQVRfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9Y T0ZGX0NIQVIgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAg ICAjIFRoZSBwYXJlbnQgQ1lHT1BUX0lPX1NFUklBTF9GTE9XX0NPTlRST0xf U09GVFdBUkUgaXMgbm90IGFjdGl2ZQoKICAgICMgRmxhdm9yOiBkYXRhCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMTkKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMTkK ICAgICMgTGVnYWwgdmFsdWVzOiAwIHRvIDI1NQp9OwoKIyA8CiMgSGFyZHdh cmUgZmxvdyBjb250cm9sCiMgSWYgdGhlIGhhcmR3YXJlIHN1cHBvcnRzIGl0 LCB0aGlzIG9wdGlvbiBhbGxvd3MgaGFyZHdhcmUKIyBmbG93IGNvbnRyb2wg dG8gYmUgZW5hYmxlZC4gVGhpcyBtYXkgYmUgaW4gdGhlIGZvcm0gb2YKIyBl aXRoZXIgb3IgYm90aCBvZiBSVFMvQ1RTLCBvciBEU1IvRFRSIGZsb3cgY29u dHJvbC4KIwpjZGxfb3B0aW9uIENZR09QVF9JT19TRVJJQUxfRkxPV19DT05U Uk9MX0hXIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAg IyBUaGUgcGFyZW50IENZR1BLR19JT19TRVJJQUxfRkxPV19DT05UUk9MIGlz IGRpc2FibGVkCiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFpbnQ6ICBDWUdJTlRf SU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9IVyA+IDAgCiAgICAjICAgICBDWUdJ TlRfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9IVyA9PSAwCiAgICAjICAgLS0+ IDAKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogIENZR0lOVF9JT19TRVJJQUxfRkxPV19D T05UUk9MX0hXID4gMCA/ICBDWUdPUFRfSU9fU0VSSUFMX1NVUFBPUlRfTElO RV9TVEFUVVMgOiAwIAogICAgIyAgICAgQ1lHSU5UX0lPX1NFUklBTF9GTE9X X0NPTlRST0xfSFcgPT0gMAogICAgIyAgICAgQ1lHT1BUX0lPX1NFUklBTF9T VVBQT1JUX0xJTkVfU1RBVFVTID09IDAKICAgICMgICAtLT4gMAogICAgIyBS ZXF1aXJlczogIENZR0lOVF9JT19TRVJJQUxfRkxPV19DT05UUk9MX0hXID4g MCAKICAgICMgICAgIENZR0lOVF9JT19TRVJJQUxfRkxPV19DT05UUk9MX0hX ID09IDAKICAgICMgICAtLT4gMAogICAgIyBSZXF1aXJlczogQ1lHT1BUX0lP X1NFUklBTF9TVVBQT1JUX0xJTkVfU1RBVFVTCiAgICAjICAgICBDWUdPUFRf SU9fU0VSSUFMX1NVUFBPUlRfTElORV9TVEFUVVMgPT0gMAogICAgIyAgIC0t PiAwCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVj dGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgY29tcG9uZW50IENZR1BLR19JT19T RVJJQUxfRkxPV19DT05UUk9MCiAgICAjICAgICBSZXF1aXJlczogKENZR09Q VF9JT19TRVJJQUxfRkxPV19DT05UUk9MX1NPRlRXQVJFIHx8IENZR09QVF9J T19TRVJJQUxfRkxPV19DT05UUk9MX0hXKQp9OwoKIyBTZXJpYWwgaC93IHN1 cHBvcnRzIGhhcmR3YXJlIGZsb3cgY29udHJvbAojCmNkbF9pbnRlcmZhY2Ug Q1lHSU5UX0lPX1NFUklBTF9GTE9XX0NPTlRST0xfSFcgewogICAgIyBObyBv cHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIG9w dGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lP X1NFUklBTF9GTE9XX0NPTlRST0wgaXMgZGlzYWJsZWQKCiAgICAjIFRoaXMg dmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjog ZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCgogICAgIyBUaGUgZm9sbG93 aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAg ICMgb3B0aW9uIENZR09QVF9JT19TRVJJQUxfRkxPV19DT05UUk9MX0hXCiAg ICAjICAgICBBY3RpdmVJZjogIENZR0lOVF9JT19TRVJJQUxfRkxPV19DT05U Uk9MX0hXID4gMCAKICAgICMgb3B0aW9uIENZR09QVF9JT19TRVJJQUxfRkxP V19DT05UUk9MX0hXCiAgICAjICAgICBSZXF1aXJlczogIENZR0lOVF9JT19T RVJJQUxfRkxPV19DT05UUk9MX0hXID4gMCAKICAgICMgb3B0aW9uIENZR09Q VF9JT19TRVJJQUxfRkxPV19DT05UUk9MX0hXCiAgICAjICAgICBEZWZhdWx0 VmFsdWU6ICBDWUdJTlRfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9IVyA+IDAg PyAgQ1lHT1BUX0lPX1NFUklBTF9TVVBQT1JUX0xJTkVfU1RBVFVTIDogMCAK fTsKCiMgRGVmYXVsdCBmbG93IGNvbnRyb2wgbWV0aG9kCiMgVGhpcyBvcHRp b24gYWxsb3dzIGEgZGVmYXVsdCBmbG93IGNvbnRyb2wgbWV0aG9kCiMgdG8g YmUgZGVmaW5lZC4gQ29tYmluYXRpb25zIG9mIGZsb3cgY29udHJvbCBtZXRo b2RzCiMgbWF5IGFsc28gYmUgc2V0LCBidXQgdGhpcyBpcyBvbmx5IHBvc3Np YmxlIGJ5CiMgdXNpbmcgdGhlIGN5Z19pb19zZXRfY29uZmlnKCkgQVBJIGlu IHNvdXJjZSBjb2RlLgojCmNkbF9vcHRpb24gQ1lHREFUX0lPX1NFUklBTF9G TE9XX0NPTlRST0xfREVGQVVMVCB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5v dCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX0ZM T1dfQ09OVFJPTCBpcyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBkYXRhCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgTk9ORQogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiBO T05FCiAgICAjIExlZ2FsIHZhbHVlczogICJOT05FIiAiWE9OWE9GRiIgIlJU U0NUUyIgIkRTUkRUUiIgCn07CgojIFJ4IGZsb3cgY29udHJvbCBsb3cgd2F0 ZXIgbWFyawojIFRoaXMgc2V0cyB0aGUgd2F0ZXIgbWFyayB1c2VkIGZvciBk ZXRlcm1pbmluZwojIHdoZW4gdG8gZGlzYWJsZSBmbG93IGNvbnRyb2wsIGV4 cHJlc3NlZAojIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgYnVmZmVyIHNpemUu IFdoZW4gdGhlCiMgcmVjZWl2ZSBidWZmZXIgc2l6ZSBpcyBsb3dlciB0aGFu IHRoaXMgcGVyY2VudGFnZSwKIyBpZiB0aGUgdHJhbnNtaXR0ZXIgaGFkIHBy ZXZpb3VzbHkgYmVlbiB0aHJvdHRsZWQsIGl0CiMgd2lsbCBub3cgYmUgaW5m b3JtZWQgaXQgY2FuIHJlc3RhcnQuCiMKY2RsX29wdGlvbiBDWUdOVU1fSU9f U0VSSUFMX0ZMT1dfQ09OVFJPTF9MT1dfV0FURVJfUEVSQ0VOVCB7CiAgICAj IFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBD WUdQS0dfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTCBpcyBkaXNhYmxlZAoKICAg ICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgMzMKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogMzMKICAgICMgTGVnYWwgdmFsdWVzOiAxIHRvIDEw MAoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3Rl ZCBieSB0aGlzIHZhbHVlCiAgICAjIG9wdGlvbiBDWUdOVU1fSU9fU0VSSUFM X0ZMT1dfQ09OVFJPTF9ISUdIX1dBVEVSX1BFUkNFTlQKICAgICMgICAgIFJl cXVpcmVzOiAgQ1lHTlVNX0lPX1NFUklBTF9GTE9XX0NPTlRST0xfSElHSF9X QVRFUl9QRVJDRU5UID49ICBDWUdOVU1fSU9fU0VSSUFMX0ZMT1dfQ09OVFJP TF9MT1dfV0FURVJfUEVSQ0VOVCAKfTsKCiMgUnggZmxvdyBjb250cm9sIGhp Z2ggd2F0ZXIgbWFyawojIFRoaXMgc2V0cyB0aGUgd2F0ZXIgbWFyayB1c2Vk IGZvciBkZXRlcm1pbmluZwojIHdoZW4gdG8gZW5hYmxlIGZsb3cgY29udHJv bCwgZXhwcmVzc2VkCiMgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBidWZmZXIg c2l6ZS4gV2hlbiB0aGUKIyByZWNlaXZlIGJ1ZmZlciBzaXplIGV4Y2VlZHMg dGhpcyBwZXJjZW50YWdlLAojIHNpZ25hbHMgYXJlIHNlbnQgdG8gdGhlIHRy YW5zbWl0dGVyIHRvIHRlbGwgaXQKIyB0byB0aHJvdHRsZSB0cmFubWlzc2lv bi4KIwpjZGxfb3B0aW9uIENZR05VTV9JT19TRVJJQUxfRkxPV19DT05UUk9M X0hJR0hfV0FURVJfUEVSQ0VOVCB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5v dCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX0ZM T1dfQ09OVFJPTCBpcyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBkYXRhCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgNjYKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogNjYK ICAgICMgTGVnYWwgdmFsdWVzOiAxIHRvIDEwMAogICAgIyBSZXF1aXJlczog IENZR05VTV9JT19TRVJJQUxfRkxPV19DT05UUk9MX0hJR0hfV0FURVJfUEVS Q0VOVCA+PSAgQ1lHTlVNX0lPX1NFUklBTF9GTE9XX0NPTlRST0xfTE9XX1dB VEVSX1BFUkNFTlQgCiAgICAjICAgICBDWUdOVU1fSU9fU0VSSUFMX0ZMT1df Q09OVFJPTF9ISUdIX1dBVEVSX1BFUkNFTlQgPT0gMAogICAgIyAgICAgQ1lH TlVNX0lPX1NFUklBTF9GTE9XX0NPTlRST0xfTE9XX1dBVEVSX1BFUkNFTlQg PT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3Bl cnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9u IENZR05VTV9JT19TRVJJQUxfRkxPV19DT05UUk9MX0hJR0hfV0FURVJfUEVS Q0VOVAogICAgIyAgICAgUmVxdWlyZXM6ICBDWUdOVU1fSU9fU0VSSUFMX0ZM T1dfQ09OVFJPTF9ISUdIX1dBVEVSX1BFUkNFTlQgPj0gIENZR05VTV9JT19T RVJJQUxfRkxPV19DT05UUk9MX0xPV19XQVRFUl9QRVJDRU5UIAp9OwoKIyA8 CiMgVFRZLW1vZGUgc2VyaWFsIGRldmljZSBkcml2ZXJzCiMgVGhpcyBvcHRp b24gZW5hYmxlcyBhIHNpbXBsZSB0ZXJtaW5hbC1saWtlIGRldmljZSBkcml2 ZXIgCiMgdGhhdCBjYW4gYmUgdXNlZCBmb3Igc2VyaWFsIGRldmljZXMgdGhh dCBpbnRlcmFjdCB3aXRoIGh1bWFucywKIyBzdWNoIGFzIGEgc3lzdGVtIGNv bnNvbGUuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfSU9fU0VSSUFMX1RUWSB7 CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNv bW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAg IyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAg ICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyA+CiMgSEFML2RpYWcgc2VyaWFs IGRldmljZSBkcml2ZXIKIyBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSB1c2Ug b2YgdGhlIEhBTCBkaWFnbm9zdGljIGNoYW5uZWwKIyB2aWEgdGhlIHN0YW5k YXJkIEkvTyBkcml2ZXJzLgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lPX1NF UklBTF9IQUxESUFHIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVz ZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJv dmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3Vy Y2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCgogICAgIyBUaGUg Zm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFs dWUKICAgICMgcGFja2FnZSBDWUdQS0dfTElCQ19TVERJTwogICAgIyAgICAg UmVxdWlyZXM6IENZR1BLR19JT19TRVJJQUxfSEFMRElBRwp9OwoKIyBDb25z b2xlIGRldmljZSBuYW1lCiMgVGhpcyBvcHRpb24gc2VsZWN0cyB0aGUgVFRZ IGRldmljZSB0byB1c2UgZm9yIHRoZSBjb25zb2xlLgojCmNkbF9vcHRpb24g Q1lHREFUX0lPX1NFUklBTF9UVFlfQ09OU09MRSB7CiAgICAjIEZsYXZvcjog ZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICJc Ii9kZXYvdHR5ZGlhZ1wiIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAog ICAgIyBEZWZhdWx0IHZhbHVlOiAiXCIvZGV2L3R0eWRpYWdcIiIKfTsKCiMg VFRZIG1vZGUgSEFML2RpYWcgY2hhbm5lbAojIFRoaXMgb3B0aW9uIGNhdXNl cyAnL2Rldi90dHlkaWFnJyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgc3RhbmRh cmQKIyBkcml2ZXJzLgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lPX1NFUklB TF9UVFlfVFRZRElBRyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291 cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyBUVFkg bW9kZSBjaGFubmVsICMwCiMgVGhpcyBvcHRpb24gY2F1c2VzICcvZGV2L3R0 eTAnIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBzdGFuZGFyZCAKIyBkcml2ZXJz LgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lPX1NFUklBTF9UVFlfVFRZMCB7 CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNv bW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAg IyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAg ICMgRGVmYXVsdCB2YWx1ZTogMAp9OwoKIyA+CiMgVFRZIG1vZGUgY2hhbm5l bCAjMCBkZXZpY2UKIyBUaGlzIG9wdGlvbiBzZWxlY3RzIHRoZSBwaHlzaWNh bCBkZXZpY2UgdG8gdXNlIGZvciAKIyAnL2Rldi90dHkwJy4KIwpjZGxfb3B0 aW9uIENZR0RBVF9JT19TRVJJQUxfVFRZX1RUWTBfREVWIHsKICAgICMgVGhp cyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BL R19JT19TRVJJQUxfVFRZX1RUWTAgaXMgZGlzYWJsZWQKCiAgICAjIEZsYXZv cjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl ICJcIi9kZXYvc2VyMFwiIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAog ICAgIyBEZWZhdWx0IHZhbHVlOiAiXCIvZGV2L3NlcjBcIiIKfTsKCiMgPAoj IFRUWSBtb2RlIGNoYW5uZWwgIzEKIyBUaGlzIG9wdGlvbiBjYXVzZXMgJy9k ZXYvdHR5MScgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHN0YW5kYXJkIAojIGRy aXZlcnMuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfSU9fU0VSSUFMX1RUWV9U VFkxIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVs dAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCn07CgojID4KIyBUVFkgbW9kZSBj aGFubmVsICMxIGRldmljZQojIFRoaXMgb3B0aW9uIHNlbGVjdHMgdGhlIHBo eXNpY2FsIGRldmljZSB0byB1c2UgZm9yIAojICcvZGV2L3R0eTEnLgojCmNk bF9vcHRpb24gQ1lHREFUX0lPX1NFUklBTF9UVFlfVFRZMV9ERVYgewogICAg IyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQg Q1lHUEtHX0lPX1NFUklBTF9UVFlfVFRZMSBpcyBkaXNhYmxlZAoKICAgICMg Rmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgIlwiL2Rldi9zZXIxXCIiCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICJcIi9kZXYvc2VyMVwiIgp9OwoK IyA8CiMgVFRZIG1vZGUgY2hhbm5lbCAjMgojIFRoaXMgb3B0aW9uIGNhdXNl cyAnL2Rldi90dHkyJyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgc3RhbmRhcmQg CiMgZHJpdmVycy4KIwpjZGxfY29tcG9uZW50IENZR1BLR19JT19TRVJJQUxf VFRZX1RUWTIgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2 YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRl IG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKfTsKCiMgPgojIFRUWSBt b2RlIGNoYW5uZWwgIzIgZGV2aWNlCiMgVGhpcyBvcHRpb24gc2VsZWN0cyB0 aGUgcGh5c2ljYWwgZGV2aWNlIHRvIHVzZSBmb3IgCiMgJy9kZXYvdHR5Micu CiMKY2RsX29wdGlvbiBDWUdEQVRfSU9fU0VSSUFMX1RUWV9UVFkyX0RFViB7 CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBh cmVudCBDWUdQS0dfSU9fU0VSSUFMX1RUWV9UVFkyIGlzIGRpc2FibGVkCgog ICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAiXCIvZGV2L3NlcjJcIiIKICAgICMgdmFsdWVfc291cmNl IGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIlwiL2Rldi9zZXIyXCIi Cn07CgojIDwKIyA8CiMgVGVybWlvcyBjb21wYXRpYmxlIFRUWSBkcml2ZXJz CiMgVGhpcyBvcHRpb24gZW5hYmxlcyB0ZXJtaW5hbCBkcml2ZXJzIGNvbXBh dGlibGUgd2l0aAojIFBPU0lYIHRlcm1pb3MuCiMKY2RsX2NvbXBvbmVudCBD WUdQS0dfSU9fU0VSSUFMX1RFUk1JT1MgewogICAgIyBGbGF2b3I6IGJvb2wK ICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICAw ICE9IENZR1BLR19JU09JTkZSQSAmJiAwICE9IENZR1BLR19JT19GSUxFSU8g JiYgIDAgIT0gQ1lHSU5UX0lTT19FUlJOT19DT0RFUyAmJiAgMCAhPSBDWUdJ TlRfSVNPX0VSUk5PIAogICAgIyAgICAgQ1lHUEtHX0lTT0lORlJBID09IGN1 cnJlbnQKICAgICMgICAgIENZR1BLR19JT19GSUxFSU8gKHVua25vd24pID09 IDAKICAgICMgICAgIENZR0lOVF9JU09fRVJSTk9fQ09ERVMgPT0gMQogICAg IyAgICAgQ1lHSU5UX0lTT19FUlJOTyA9PSAxCiAgICAjICAgLS0+IDAKICAg ICMgUmVxdWlyZXM6IENZR1BLR19JU09JTkZSQQogICAgIyAgICAgQ1lHUEtH X0lTT0lORlJBID09IGN1cnJlbnQKICAgICMgICAtLT4gMQogICAgIyBSZXF1 aXJlczogQ1lHUEtHX0lPX0ZJTEVJTwogICAgIyAgICAgQ1lHUEtHX0lPX0ZJ TEVJTyAodW5rbm93bikgPT0gMAogICAgIyAgIC0tPiAwCiAgICAjIFJlcXVp cmVzOiBDWUdJTlRfSVNPX0VSUk5PX0NPREVTCiAgICAjICAgICBDWUdJTlRf SVNPX0VSUk5PX0NPREVTID09IDEKICAgICMgICAtLT4gMQogICAgIyBSZXF1 aXJlczogQ1lHSU5UX0lTT19FUlJOTwogICAgIyAgICAgQ1lHSU5UX0lTT19F UlJOTyA9PSAxCiAgICAjICAgLS0+IDEKICAgICMgUmVxdWlyZXM6IENZR0lO VF9JU09fTUFMTE9DCiAgICAjICAgICBDWUdJTlRfSVNPX01BTExPQyA9PSAx CiAgICAjICAgLS0+IDEKfTsKCiMgPgojIFRlcm1pb3MgVFRZIGNoYW5uZWwg IzAKIyBUaGlzIG9wdGlvbiBjYXVzZXMgJy9kZXYvdGVybWlvczAnIHRvIGJl IGluY2x1ZGVkIGluIHRoZSBzdGFuZGFyZCAKIyBkcml2ZXJzLgojCmNkbF9j b21wb25lbnQgQ1lHUEtHX0lPX1NFUklBTF9URVJNSU9TX1RFUk1JT1MwIHsK ICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFy ZW50IENZR1BLR19JT19TRVJJQUxfVEVSTUlPUyBpcyBkaXNhYmxlZAoKICAg ICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAwCn07CgojID4KIyBUZXJtaW9zIFRUWSBjaGFubmVs ICMwIGRldmljZQojIFRoaXMgb3B0aW9uIHNlbGVjdHMgdGhlIHBoeXNpY2Fs IGRldmljZSB0byB1c2UgZm9yIAojICcvZGV2L3Rlcm1pb3MwJy4KIwpjZGxf b3B0aW9uIENZR0RBVF9JT19TRVJJQUxfVEVSTUlPU19URVJNSU9TMF9ERVYg ewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBw YXJlbnQgQ1lHUEtHX0lPX1NFUklBTF9URVJNSU9TX1RFUk1JT1MwIGlzIG5v dCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX1RF Uk1JT1NfVEVSTUlPUzAgaXMgZGlzYWJsZWQKCiAgICAjIEZsYXZvcjogZGF0 YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICJcIi9k ZXYvc2VyMFwiIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAiXCIvZGV2L3NlcjBcIiIKfTsKCiMgPAojIFRlcm1p b3MgVFRZIGNoYW5uZWwgIzEKIyBUaGlzIG9wdGlvbiBjYXVzZXMgJy9kZXYv dGVybWlvczEnIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBzdGFuZGFyZCAKIyBk cml2ZXJzLgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lPX1NFUklBTF9URVJN SU9TX1RFUk1JT1MxIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2 ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19JT19TRVJJQUxfVEVSTUlPUyBp cyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCn07CgojID4KIyBUZXJt aW9zIFRUWSBjaGFubmVsICMxIGRldmljZQojIFRoaXMgb3B0aW9uIHNlbGVj dHMgdGhlIHBoeXNpY2FsIGRldmljZSB0byB1c2UgZm9yIAojICcvZGV2L3Rl cm1pb3MxJy4KIwpjZGxfb3B0aW9uIENZR0RBVF9JT19TRVJJQUxfVEVSTUlP U19URVJNSU9TMV9ERVYgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0 aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lPX1NFUklBTF9URVJNSU9T X1RFUk1JT1MxIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQ S0dfSU9fU0VSSUFMX1RFUk1JT1NfVEVSTUlPUzEgaXMgZGlzYWJsZWQKCiAg ICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlICJcIi9kZXYvc2VyMVwiIgogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAiXCIvZGV2L3NlcjFcIiIK fTsKCiMgPAojIFRlcm1pb3MgVFRZIGNoYW5uZWwgIzIKIyBUaGlzIG9wdGlv biBjYXVzZXMgJy9kZXYvdGVybWlvczInIHRvIGJlIGluY2x1ZGVkIGluIHRo ZSBzdGFuZGFyZCAKIyBkcml2ZXJzLgojCmNkbF9jb21wb25lbnQgQ1lHUEtH X0lPX1NFUklBTF9URVJNSU9TX1RFUk1JT1MyIHsKICAgICMgVGhpcyBvcHRp b24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19JT19T RVJJQUxfVEVSTUlPUyBpcyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBib29s CiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5n IGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAw Cn07CgojID4KIyBUZXJtaW9zIFRUWSBjaGFubmVsICMyIGRldmljZQojIFRo aXMgb3B0aW9uIHNlbGVjdHMgdGhlIHBoeXNpY2FsIGRldmljZSB0byB1c2Ug Zm9yIAojICcvZGV2L3Rlcm1pb3MyJy4KIwpjZGxfb3B0aW9uIENZR0RBVF9J T19TRVJJQUxfVEVSTUlPU19URVJNSU9TMl9ERVYgewogICAgIyBUaGlzIG9w dGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lP X1NFUklBTF9URVJNSU9TX1RFUk1JT1MyIGlzIG5vdCBhY3RpdmUKICAgICMg VGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX1RFUk1JT1NfVEVSTUlPUzIg aXMgZGlzYWJsZWQKCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2Vy IHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3Zp ZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICJcIi9kZXYvc2VyMlwiIgogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAi XCIvZGV2L3NlcjJcIiIKfTsKCiMgPAojIFN1cHBvcnQgc2lnbmFscwojIFRo aXMgb3B0aW9uIHNlbGVjdHMgd2hldGhlciB0aG9zZSBwYXJ0cyBvZiB0aGUg dGVybWlvcwojIGludGVyZmFjZSBpbnZvbHZpbmcgc2lnbmFscyBpcyBzdXBw b3J0ZWQuIFRoaXMgaW5jbHVkZXMKIyBCUktJTlQgbW9kZSwgdGhlIElOVFIg YW5kIFFVSVQgY2hhcmFjdGVycywgYW5kIHdoZXRoZXIKIyBTSUdIVVAgaXMg c2VudCBvbiB0ZXJtaW5hbCBjbG9zZS4KIwpjZGxfb3B0aW9uIENZR1NFTV9J T19TRVJJQUxfVEVSTUlPU19VU0VfU0lHTkFMUyB7CiAgICAjIFRoaXMgb3B0 aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9f U0VSSUFMX1RFUk1JT1MgaXMgZGlzYWJsZWQKCiAgICAjIEZsYXZvcjogYm9v bAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAg ICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTog IENZR0lOVF9JU09fU0lHTkFMX05VTUJFUlMgIT0gMCAmJiAgQ1lHSU5UX0lT T19TSUdOQUxfSU1QTCAhPSAwIAogICAgIyAgICAgQ1lHSU5UX0lTT19TSUdO QUxfTlVNQkVSUyA9PSAxCiAgICAjICAgICBDWUdJTlRfSVNPX1NJR05BTF9J TVBMID09IDEKICAgICMgICAtLT4gMQogICAgIyBSZXF1aXJlczogQ1lHSU5U X0lTT19TSUdOQUxfTlVNQkVSUwogICAgIyAgICAgQ1lHSU5UX0lTT19TSUdO QUxfTlVNQkVSUyA9PSAxCiAgICAjICAgLS0+IDEKICAgICMgUmVxdWlyZXM6 IENZR0lOVF9JU09fU0lHTkFMX0lNUEwKICAgICMgICAgIENZR0lOVF9JU09f U0lHTkFMX0lNUEwgPT0gMQogICAgIyAgIC0tPiAxCn07CgojIDwKIyBIYXJk d2FyZSBzZXJpYWwgZGV2aWNlIGRyaXZlcnMKIyBUaGlzIG9wdGlvbiBlbmFi bGVzIHRoZSBoYXJkd2FyZSBkZXZpY2UgZHJpdmVycwojIGZvciB0aGUgY3Vy cmVudCBwbGF0Zm9ybS4KIwpjZGxfY29tcG9uZW50IENZR1BLR19JT19TRVJJ QUxfREVWSUNFUyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2Vy IHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3Zp ZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNl IGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAoKICAgICMgVGhlIGZv bGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVl CiAgICAjIG9wdGlvbiBDWUdQS0dfSU9fU0VSSUFMX1RFU1RTCiAgICAjICAg ICBDYWxjdWxhdGVkOiAgQ1lHUEtHX0lPX1NFUklBTF9ERVZJQ0VTID8gInRl c3RzL3NlcmlhbDEgdGVzdHMvc2VyaWFsMiB0ZXN0cy9zZXJpYWwzIHRlc3Rz L3NlcmlhbDQgdGVzdHMvc2VyaWFsNSB0ZXN0cy90dHkxIHRlc3RzL3R0eTIg dGVzdHMvZmxvdzEgdGVzdHMvZmxvdzIiIDogIiIgCn07CgojID4KIyBQQyBz ZXJpYWwgZGV2aWNlIGRyaXZlcnMKIyBkb2M6IHJlZGlyZWN0L2Vjb3MtZGV2 aWNlLWRyaXZlcnMuaHRtbAojIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIHNl cmlhbCBkZXZpY2UgZHJpdmVycyBmb3IgdGhlCiMgUEMuCiMKY2RsX3BhY2th Z2UgQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDIHsKICAgICMgUGFja2FnZXMg Y2Fubm90IGJlIGFkZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVy c2lvbiBiZSBjaGFuZ2VkLAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVp ciB2YWx1ZS4gSW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlv bgogICAgIyBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlv bnMuCgogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRo ZSBwYXJlbnQgQ1lHUEtHX0lPX1NFUklBTF9ERVZJQ0VTIGlzIGRpc2FibGVk CiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFpbnQ6IENZR1BLR19JT19TRVJJQUwK ICAgICMgICAgIENZR1BLR19JT19TRVJJQUwgPT0gY3VycmVudAogICAgIyAg IC0tPiAxCiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFpbnQ6IENZR1BLR19IQUxf STM4Nl9QQwogICAgIyAgICAgQ1lHUEtHX0hBTF9JMzg2X1BDID09IGN1cnJl bnQKICAgICMgICAtLT4gMQoKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUg bW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBD dXJyZW50IHZhbHVlOiAxIGN1cnJlbnQKICAgICMgUmVxdWlyZXM6IENZR1BL R19FUlJPUgogICAgIyAgICAgQ1lHUEtHX0VSUk9SID09IGN1cnJlbnQKICAg ICMgICAtLT4gMQp9OwoKIyA+CiMgUEMgc2VyaWFsIHBvcnQgMCBkcml2ZXIK IyBUaGlzIG9wdGlvbiBpbmNsdWRlcyB0aGUgc2VyaWFsIGRldmljZSBkcml2 ZXIgZm9yIHBvcnQgMCBvbiB0aGUgCiMgUEMuCiMKY2RsX2NvbXBvbmVudCBD WUdQS0dfSU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMCB7CiAgICAjIFRoaXMg b3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0df SU9fU0VSSUFMX0kzODZfUEMgaXMgbm90IGFjdGl2ZQoKICAgICMgRmxhdm9y OiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg MQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFm ZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgY29tcG9uZW50IENZR1BLR19J T19TRVJJQUxfSTM4Nl9QQ19URVNUSU5HCiAgICAjICAgICBBY3RpdmVJZjog Q1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDAKfTsKCiMgPgojIERl dmljZSBuYW1lIGZvciBQQyBzZXJpYWwgcG9ydCAwCiMgVGhpcyBvcHRpb24g c3BlY2lmaWVzIHRoZSBkZXZpY2UgbmFtZSBwb3J0IDAgb24gdGhlIFBDLgoj CmNkbF9vcHRpb24gQ1lHREFUX0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDBf TkFNRSB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMg VGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMCBp cyBub3QgYWN0aXZlCgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNl ciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92 aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAiXCIvZGV2L3NlcjBcIiIKICAg ICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTog IlwiL2Rldi9zZXIwXCIiCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRp ZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZ R1BSSV9TRVJfVEVTVF9TRVJfREVWCiAgICAjICAgICBEZWZhdWx0VmFsdWU6 ICBDWUdEQVRfSU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMF9OQU1FIAp9OwoK IyBCYXVkIHJhdGUgZm9yIHRoZSBQQyBzZXJpYWwgcG9ydCAwIGRyaXZlcgoj IFRoaXMgb3B0aW9uIHNwZWNpZmllcyB0aGUgZGVmYXVsdCBiYXVkIHJhdGUg KHNwZWVkKSBmb3IgdGhlCiMgUEMgcG9ydCAwLgojCmNkbF9vcHRpb24gQ1lH TlVNX0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDBfQkFVRCB7CiAgICAjIFRo aXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQ S0dfSU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMCBpcyBub3QgYWN0aXZlCgog ICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAzODQwMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAog ICAgIyBEZWZhdWx0IHZhbHVlOiAzODQwMAogICAgIyBMZWdhbCB2YWx1ZXM6 ICA1MCA3NSAxMTAgIjEzNF81IiAxNTAgMjAwIDMwMCA2MDAgMTIwMCAxODAw IDI0MDAgMzYwMAogICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4 MDAgNzIwMCA5NjAwIDE0NDAwIDE5MjAwIDM4NDAwIDU3NjAwIDExNTIwMCAy MzQwMDAKICAgICMgICAgICAgICAgICAgCn07CgojIEJ1ZmZlciBzaXplIGZv ciB0aGUgUEMgc2VyaWFsIHBvcnQgMCBkcml2ZXIKIyBUaGlzIG9wdGlvbiBz cGVjaWZpZXMgdGhlIHNpemUgb2YgdGhlIGludGVybmFsIGJ1ZmZlcnMgdXNl ZAojIGZvciB0aGUgUEMgcG9ydCAwLgojCmNkbF9vcHRpb24gQ1lHTlVNX0lP X1NFUklBTF9JMzg2X1BDX1NFUklBTDBfQlVGU0laRSB7CiAgICAjIFRoaXMg b3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0df SU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMCBpcyBub3QgYWN0aXZlCgogICAg IyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAxMjgKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogMTI4CiAgICAjIExlZ2FsIHZhbHVlczogMCB0byA4 MTkyCn07CgojIEkvTyBiYXNlIGFkZHJlc3MgZm9yIHRoZSBpMzg2LVBDIHNl cmlhbCBwb3J0IDAKIyBUaGlzIG9wdGlvbiBzcGVjaWZpZXMgdGhlIEkvTyBh ZGRyZXNzIG9mIHRoZSA4MjUwIG9yIDE2NTUwIGZvciBzZXJpYWwgcG9ydCAw LgojCmNkbF9vcHRpb24gQ1lHTlVNX0lPX1NFUklBTF9JMzg2X1BDX1NFUklB TDBfSU9CQVNFIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQog ICAgIyBUaGUgcGFyZW50IENZR1BLR19JT19TRVJJQUxfSTM4Nl9QQ19TRVJJ QUwwIGlzIG5vdCBhY3RpdmUKCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDB4MDAwMDAzRjgKICAg ICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTog MHgwMDAwMDNGOAogICAgIyBMZWdhbCB2YWx1ZXM6IDAgdG8gMHhGRjgKfTsK CiMgSVJRIGZvciB0aGUgaTM4Ni1QQyBzZXJpYWwgcG9ydCAwCiMgVGhpcyBv cHRpb24gc3BlY2lmaWVzIHRoZSBJUlEgb2YgdGhlIDgyNTAgb3IgMTY1NTAg Zm9yIHNlcmlhbCBwb3J0IDAuCiMKY2RsX29wdGlvbiBDWUdOVU1fSU9fU0VS SUFMX0kzODZfUENfU0VSSUFMMF9JUlEgewogICAgIyBUaGlzIG9wdGlvbiBp cyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lPX1NFUklB TF9JMzg2X1BDX1NFUklBTDAgaXMgbm90IGFjdGl2ZQoKICAgICMgRmxhdm9y OiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg NAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiA0CiAgICAjIExlZ2FsIHZhbHVlczogMCB0byAxNQoKICAgICMgVGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZh bHVlCiAgICAjIG9wdGlvbiBDWUdOVU1fSU9fU0VSSUFMX0kzODZfUENfU0VS SUFMMF9JTlQKICAgICMgICAgIERlZmF1bHRWYWx1ZTogIENZR05VTV9JT19T RVJJQUxfSTM4Nl9QQ19TRVJJQUwwX0lSUSArIDMyIAp9OwoKIyBJUlEgZm9y IHRoZSBpMzg2LVBDIHNlcmlhbCBwb3J0IDAKIyBUaGlzIG9wdGlvbiBzcGVj aWZpZXMgdGhlIGludGVycnVwdCB2ZWN0b3Igb2YgdGhlIDgyNTAgb3IgMTY1 NTAgZm9yIHNlcmlhbCBwb3J0IDAuCiMKY2RsX29wdGlvbiBDWUdOVU1fSU9f U0VSSUFMX0kzODZfUENfU0VSSUFMMF9JTlQgewogICAgIyBUaGlzIG9wdGlv biBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lPX1NF UklBTF9JMzg2X1BDX1NFUklBTDAgaXMgbm90IGFjdGl2ZQoKICAgICMgRmxh dm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgMzIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogIENZR05VTV9JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwwX0lS USArIDMyIAogICAgIyAgICAgQ1lHTlVNX0lPX1NFUklBTF9JMzg2X1BDX1NF UklBTDBfSVJRID09IDAKICAgICMgICAtLT4gMzIKICAgICMgTGVnYWwgdmFs dWVzOiAzMiB0byA0Nwp9OwoKIyA8CiMgUEMgc2VyaWFsIHBvcnQgMSBkcml2 ZXIKIyBUaGlzIG9wdGlvbiBpbmNsdWRlcyB0aGUgc2VyaWFsIGRldmljZSBk cml2ZXIgZm9yIHBvcnQgMSBvbgojIHRoZSBQQy4KIwpjZGxfY29tcG9uZW50 IENZR1BLR19JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwxIHsKICAgICMgVGhp cyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BL R19JT19TRVJJQUxfSTM4Nl9QQyBpcyBub3QgYWN0aXZlCgogICAgIyBGbGF2 b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDEKfTsKCiMgPgojIERldmljZSBuYW1lIGZvciBQQyBzZXJpYWwg cG9ydCAxCiMgVGhpcyBvcHRpb24gc3BlY2lmaWVzIHRoZSBkZXZpY2UgbmFt ZSBwb3J0IDEgb24gdGhlIFBDLgojCmNkbF9vcHRpb24gQ1lHREFUX0lPX1NF UklBTF9JMzg2X1BDX1NFUklBTDFfTkFNRSB7CiAgICAjIFRoaXMgb3B0aW9u IGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VS SUFMX0kzODZfUENfU0VSSUFMMSBpcyBub3QgYWN0aXZlCgogICAgIyBGbGF2 b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAiXCIvZGV2L3NlcjFcIiIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogIlwiL2Rldi9zZXIxXCIiCn07CgojIEJh dWQgcmF0ZSBmb3IgdGhlIFBDIHNlcmlhbCBwb3J0IDEgZHJpdmVyCiMgVGhp cyBvcHRpb24gc3BlY2lmaWVzIHRoZSBkZWZhdWx0IGJhdWQgcmF0ZSAoc3Bl ZWQpIGZvciB0aGUKIyBQQyBwb3J0IDEuCiMKY2RsX29wdGlvbiBDWUdOVU1f SU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMV9CQVVEIHsKICAgICMgVGhpcyBv cHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19J T19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwxIGlzIG5vdCBhY3RpdmUKCiAgICAj IEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDM4NDAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAj IERlZmF1bHQgdmFsdWU6IDM4NDAwCiAgICAjIExlZ2FsIHZhbHVlczogIDUw IDc1IDExMCAiMTM0XzUiIDE1MCAyMDAgMzAwIDYwMCAxMjAwIDE4MDAgMjQw MCAzNjAwCiAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgNDgwMCA3 MjAwIDk2MDAgMTQ0MDAgMTkyMDAgMzg0MDAgNTc2MDAgMTE1MjAwIDIzNDAw MAogICAgIyAgICAgICAgICAgICAKfTsKCiMgQnVmZmVyIHNpemUgZm9yIHRo ZSBQQyBzZXJpYWwgcG9ydCAxIGRyaXZlcgojIFRoaXMgb3B0aW9uIHNwZWNp ZmllcyB0aGUgc2l6ZSBvZiB0aGUgaW50ZXJuYWwgYnVmZmVycyB1c2VkCiMg Zm9yIHRoZSBQQyBwb3J0IDEuCiMKY2RsX29wdGlvbiBDWUdOVU1fSU9fU0VS SUFMX0kzODZfUENfU0VSSUFMMV9CVUZTSVpFIHsKICAgICMgVGhpcyBvcHRp b24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19JT19T RVJJQUxfSTM4Nl9QQ19TRVJJQUwxIGlzIG5vdCBhY3RpdmUKCiAgICAjIEZs YXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDEyOAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAxMjgKICAgICMgTGVnYWwgdmFsdWVzOiAwIHRvIDgxOTIK fTsKCiMgSS9PIGJhc2UgYWRkcmVzcyBmb3IgdGhlIGkzODYtUEMgc2VyaWFs IHBvcnQgMQojIFRoaXMgb3B0aW9uIHNwZWNpZmllcyB0aGUgSS9PIGFkZHJl c3Mgb2YgdGhlIDgyNTAgb3IgMTY1NTAgZm9yIHNlcmlhbCBwb3J0IDEuCiMK Y2RsX29wdGlvbiBDWUdOVU1fSU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMV9J T0JBU0UgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAj IFRoZSBwYXJlbnQgQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDEg aXMgbm90IGFjdGl2ZQoKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVz ZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJv dmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMHgwMDAwMDJGOAogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAweDAw MDAwMkY4CiAgICAjIExlZ2FsIHZhbHVlczogMCB0byAweEZGOAp9OwoKIyBJ UlEgZm9yIHRoZSBpMzg2LVBDIHNlcmlhbCBwb3J0IDEKIyBUaGlzIG9wdGlv biBzcGVjaWZpZXMgdGhlIElSUSBvZiB0aGUgODI1MCBvciAxNjU1MCBmb3Ig c2VyaWFsIHBvcnQgMS4KIwpjZGxfb3B0aW9uIENZR05VTV9JT19TRVJJQUxf STM4Nl9QQ19TRVJJQUwxX0lSUSB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5v dCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX0kz ODZfUENfU0VSSUFMMSBpcyBub3QgYWN0aXZlCgogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAzCiAg ICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6 IDMKICAgICMgTGVnYWwgdmFsdWVzOiAwIHRvIDE1CgogICAgIyBUaGUgZm9s bG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUK ICAgICMgb3B0aW9uIENZR05VTV9JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwx X0lOVAogICAgIyAgICAgRGVmYXVsdFZhbHVlOiAgQ1lHTlVNX0lPX1NFUklB TF9JMzg2X1BDX1NFUklBTDFfSVJRICsgMzIgCn07CgojIElSUSBmb3IgdGhl IGkzODYtUEMgc2VyaWFsIHBvcnQgMQojIFRoaXMgb3B0aW9uIHNwZWNpZmll cyB0aGUgaW50ZXJydXB0IHZlY3RvciBvZiB0aGUgODI1MCBvciAxNjU1MCBm b3Igc2VyaWFsIHBvcnQgMS4KIwpjZGxfb3B0aW9uIENZR05VTV9JT19TRVJJ QUxfSTM4Nl9QQ19TRVJJQUwxX0lOVCB7CiAgICAjIFRoaXMgb3B0aW9uIGlz IG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFM X0kzODZfUENfU0VSSUFMMSBpcyBub3QgYWN0aXZlCgogICAgIyBGbGF2b3I6 IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAz MgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiAgQ1lHTlVNX0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDFfSVJRICsg MzIgCiAgICAjICAgICBDWUdOVU1fSU9fU0VSSUFMX0kzODZfUENfU0VSSUFM MV9JUlEgPT0gMAogICAgIyAgIC0tPiAzMgogICAgIyBMZWdhbCB2YWx1ZXM6 IDMyIHRvIDQ3Cn07CgojIDwKIyBTZXJpYWwgZGV2aWNlIGRyaXZlciBidWls ZCBvcHRpb25zCiMgUGFja2FnZSBzcGVjaWZpYyBidWlsZCBvcHRpb25zIGlu Y2x1ZGluZyBjb250cm9sIG92ZXIKIyBjb21waWxlciBmbGFncyB1c2VkIG9u bHkgaW4gYnVpbGRpbmcgdGhpcyBwYWNrYWdlLAojIGFuZCBkZXRhaWxzIG9m IHdoaWNoIHRlc3RzIGFyZSBidWlsdC4KIwpjZGxfY29tcG9uZW50IENZR1BL R19JT19TRVJJQUxfSTM4Nl9QQ19PUFRJT05TIHsKICAgICMgVGhpcyBvcHRp b24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19JT19T RVJJQUxfSTM4Nl9QQyBpcyBub3QgYWN0aXZlCgogICAgIyBUaGVyZSBpcyBu byBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgQWRkaXRpb25hbCBjb21w aWxlciBmbGFncwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2Yg Y29tcGlsZXIgZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhlc2Ugc2VyaWFsIGRl dmljZSBkcml2ZXJzLiBUaGVzZSBmbGFncyBhcmUgdXNlZCBpbiBhZGRpdGlv bgojIHRvIHRoZSBzZXQgb2YgZ2xvYmFsIGZsYWdzLgojCmNkbF9vcHRpb24g Q1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDX0NGTEFHU19BREQgewogICAgIyBU aGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lH UEtHX0lPX1NFUklBTF9JMzg2X1BDX09QVElPTlMgaXMgbm90IGFjdGl2ZQoK ICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29t bWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAj IHVzZXJfdmFsdWUgIiIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAg ICMgRGVmYXVsdCB2YWx1ZTogIiIKfTsKCiMgU3VwcHJlc3NlZCBjb21waWxl ciBmbGFncwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29t cGlsZXIgZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhlc2Ugc2VyaWFsIGRldmlj ZSBkcml2ZXJzLiBUaGVzZSBmbGFncyBhcmUgcmVtb3ZlZCBmcm9tCiMgdGhl IHNldCBvZiBnbG9iYWwgZmxhZ3MgaWYgcHJlc2VudC4KIwpjZGxfb3B0aW9u IENZR1BLR19JT19TRVJJQUxfSTM4Nl9QQ19DRkxBR1NfUkVNT1ZFIHsKICAg ICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50 IENZR1BLR19JT19TRVJJQUxfSTM4Nl9QQ19PUFRJT05TIGlzIG5vdCBhY3Rp dmUKCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlICIiCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6ICIiCn07CgojIDwKIyBUZXN0aW5nIHBh cmFtZXRlcnMKIwpjZGxfY29tcG9uZW50IENZR1BLR19JT19TRVJJQUxfSTM4 Nl9QQ19URVNUSU5HIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2 ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19JT19TRVJJQUxfSTM4Nl9QQyBp cyBub3QgYWN0aXZlCiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFpbnQ6IENZR1BL R19JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwwCiAgICAjICAgICBDWUdQS0df SU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMCA9PSAwCiAgICAjICAgLS0+IDAK CiAgICAjIENhbGN1bGF0ZWQgdmFsdWU6IDEKICAgICMgRmxhdm9yOiBib29s CiAgICAjIEN1cnJlbnQgdmFsdWU6IDEKfTsKCiMgPgojIFNlcmlhbCBkZXZp Y2UgdXNlZCBmb3IgdGVzdGluZwojCmNkbF9vcHRpb24gQ1lHUFJJX1NFUl9U RVNUX1NFUl9ERVYgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZl CiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDX1RF U1RJTkcgaXMgbm90IGFjdGl2ZQoKICAgICMgRmxhdm9yOiBkYXRhCiAgICAj IE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUg dG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1 ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAgQ1lHREFU X0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDBfTkFNRSAKICAgICMgICAgIENZ R0RBVF9JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwwX05BTUUgPT0gMAogICAg IyAgIC0tPiAwCn07CgojIDwKIyA8CiMgPAojIEJ1aWxkIGV4dHJhIHNlcmlh bCB0ZXN0cwojIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIGJ1aWxkaW5nIG9m IHNvbWUgZXh0cmEgdGVzdHMgd2hpY2gKIyBjYW4gYmUgdXNlZCB3aGVuIHRl c3RpbmcgLyBkZWJ1Z2dpbmcgc2VyaWFsIGRyaXZlcnMuIFRoZXNlCiMgYXJl IG5vdCBidWlsdCBieSBkZWZhdWx0IHNpbmNlIHRoZXkgZG8gbm90IHVzZSB0 aGUgZGVkaWNhdGVkCiMgdGVzdGluZyBpbmZyYXN0cnVjdHVyZS4KIwpjZGxf b3B0aW9uIENZR0JMRF9JT19TRVJJQUxfRVhUUkFfVEVTVFMgewogICAgIyBG bGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1 bHQgdmFsdWU6IDAKfTsKCiMgU2VyaWFsIGRldmljZSBkcml2ZXIgYnVpbGQg b3B0aW9ucwojIFBhY2thZ2Ugc3BlY2lmaWMgYnVpbGQgb3B0aW9ucyBpbmNs dWRpbmcgY29udHJvbCBvdmVyCiMgY29tcGlsZXIgZmxhZ3MgdXNlZCBvbmx5 IGluIGJ1aWxkaW5nIHRoaXMgcGFja2FnZSwKIyBhbmQgZGV0YWlscyBvZiB3 aGljaCB0ZXN0cyBhcmUgYnVpbHQuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0df SU9fU0VSSUFMX09QVElPTlMgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lh dGVkIHZhbHVlLgp9OwoKIyA+CiMgQWRkaXRpb25hbCBjb21waWxlciBmbGFn cwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIg ZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhlIHNlcmlhbCBkZXZpY2UgZHJpdmVy cy4gVGhlc2UgZmxhZ3MgYXJlIHVzZWQgaW4gYWRkaXRpb24KIyB0byB0aGUg c2V0IG9mIGdsb2JhbCBmbGFncy4KIwpjZGxfb3B0aW9uIENZR1BLR19JT19T RVJJQUxfQ0ZMQUdTX0FERCB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICIiCiAgICAjIHZhbHVl X3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICIiCn07Cgoj IFN1cHByZXNzZWQgY29tcGlsZXIgZmxhZ3MKIyBUaGlzIG9wdGlvbiBtb2Rp ZmllcyB0aGUgc2V0IG9mIGNvbXBpbGVyIGZsYWdzIGZvcgojIGJ1aWxkaW5n IHRoZSBzZXJpYWwgZGV2aWNlIGRyaXZlcnMuIFRoZXNlIGZsYWdzIGFyZSBy ZW1vdmVkIGZyb20KIyB0aGUgc2V0IG9mIGdsb2JhbCBmbGFncyBpZiBwcmVz ZW50LgojCmNkbF9vcHRpb24gQ1lHUEtHX0lPX1NFUklBTF9DRkxBR1NfUkVN T1ZFIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgIiIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIiIKfTsKCiMgU2VyaWFsIGRldmlj ZSBkcml2ZXIgdGVzdHMKIyBUaGlzIG9wdGlvbiBzcGVjaWZpZXMgdGhlIHNl dCBvZiB0ZXN0cyBmb3IgdGhlIHNlcmlhbCBkZXZpY2UgZHJpdmVycy4KIwpj ZGxfb3B0aW9uIENZR1BLR19JT19TRVJJQUxfVEVTVFMgewogICAgIyBDYWxj dWxhdGVkIHZhbHVlOiAgQ1lHUEtHX0lPX1NFUklBTF9ERVZJQ0VTID8gInRl c3RzL3NlcmlhbDEgdGVzdHMvc2VyaWFsMiB0ZXN0cy9zZXJpYWwzIHRlc3Rz L3NlcmlhbDQgdGVzdHMvc2VyaWFsNSB0ZXN0cy90dHkxIHRlc3RzL3R0eTIg dGVzdHMvZmxvdzEgdGVzdHMvZmxvdzIiIDogIiIgCiAgICAjICAgICBDWUdQ S0dfSU9fU0VSSUFMX0RFVklDRVMgPT0gMAogICAgIyBGbGF2b3I6IGRhdGEK ICAgICMgQ3VycmVudF92YWx1ZTogCn07CgojIDwKIyBFbmFibGUgc2VyaWFs IGRldmljZSBzZWxlY3Qgc3VwcG9ydAojIFRoaXMgb3B0aW9uIGVuYWJsZXMg c3VwcG9ydCBmb3IgdGhlIHNlbGVjdCgpIEFQSSBmdW5jdGlvbiBvbiBhbGwK IyBzZXJpYWwgZGV2aWNlcy4KIwpjZGxfb3B0aW9uIENZR1BLR19JT19TRVJJ QUxfU0VMRUNUX1NVUFBPUlQgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3Qg YWN0aXZlCiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFpbnQ6IENZR1BLR19JT19G SUxFSU8KICAgICMgICAgIENZR1BLR19JT19GSUxFSU8gKHVua25vd24pID09 IDAKICAgICMgICAtLT4gMAoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5v IHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8g cHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCiAgICAjIFJl cXVpcmVzOiBDWUdQS0dfSU9fRklMRUlPCiAgICAjICAgICBDWUdQS0dfSU9f RklMRUlPICh1bmtub3duKSA9PSAwCiAgICAjICAgLS0+IDAKfTsKCiMgU2Vy aWFsIHRlc3Rpbmcgc3BlY2lmaWNhdGlvbgojCmNkbF9jb21wb25lbnQgQ1lH UEtHX0lPX1NFUklBTF9URVNUX1NQRUNTIHsKICAgICMgQ2FsY3VsYXRlZCB2 YWx1ZTogMQogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgQ3VycmVudCB2YWx1 ZTogMQp9OwoKIyA+CiMgU2tpcCA5NjAwIGJhdWQgdGVzdGluZwojCmNkbF9p bnRlcmZhY2UgQ1lHSU5UX0lPX1NFUklBTF9URVNUX1NLSVBfOTYwMCB7CiAg ICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAj IFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZs YXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCn07CgojIFNraXAg MTQ0MDAgYmF1ZCB0ZXN0aW5nCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSU9f U0VSSUFMX1RFU1RfU0tJUF8xNDQwMCB7CiAgICAjIE5vIG9wdGlvbnMgaW1w bGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90 IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBD dXJyZW50X3ZhbHVlOiAwCn07CgojIFNraXAgMTkyMDAgYmF1ZCB0ZXN0aW5n CiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSU9fU0VSSUFMX1RFU1RfU0tJUF8x OTIwMCB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJm YWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUu CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCn07 CgojIFNraXAgMzg0MDAgYmF1ZCB0ZXN0aW5nCiMKY2RsX2ludGVyZmFjZSBD WUdJTlRfSU9fU0VSSUFMX1RFU1RfU0tJUF8zODQwMCB7CiAgICAjIE5vIG9w dGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFs dWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0 YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCn07CgojIFNraXAgNTc2MDAgYmF1 ZCB0ZXN0aW5nCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSU9fU0VSSUFMX1RF U1RfU0tJUF81NzYwMCB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRo aXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlm aWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3Zh bHVlOiAwCn07CgojIFNraXAgMTE1MjAwIGJhdWQgdGVzdGluZwojCmNkbF9p bnRlcmZhY2UgQ1lHSU5UX0lPX1NFUklBTF9URVNUX1NLSVBfMTE1MjAwIHsK ICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAg ICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMg Rmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKfTsKCiMgU2tp cCBldmVuLXBhcml0eSB0ZXN0aW5nCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRf SU9fU0VSSUFMX1RFU1RfU0tJUF9QQVJJVFlfRVZFTiB7CiAgICAjIE5vIG9w dGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFs dWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0 YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCn07CgojIFNraXAgb2RkLXBhcml0 eSB0ZXN0aW5nCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSU9fU0VSSUFMX1RF U1RfU0tJUF9QQVJJVFlfT0REIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1l bnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUg bW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJl bnRfdmFsdWU6IDAKfTsKCiMgU2tpcCAyLXN0b3AgYml0IHRlc3RpbmcKIwpj ZGxfaW50ZXJmYWNlIENZR0lOVF9JT19TRVJJQUxfVEVTVF9TS0lQX1NUT1Bf MiB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNl CiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAg ICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCn07Cgoj IDwKIyA8CiMgSW5mcmFzdHJ1Y3R1cmUKIyBDb21tb24gdHlwZXMgYW5kIHVz ZWZ1bCBtYWNyb3MuCiMgVHJhY2luZyBhbmQgYXNzZXJ0aW9uIGZhY2lsaXRp ZXMuCiMgUGFja2FnZSBzdGFydHVwIG9wdGlvbnMuCiMKY2RsX3BhY2thZ2Ug Q1lHUEtHX0lORlJBIHsKICAgICMgUGFja2FnZXMgY2Fubm90IGJlIGFkZGVk IG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVyc2lvbiBiZSBjaGFuZ2Vk LAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVpciB2YWx1ZS4gSW5zdGVh ZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbgogICAgIyBzaG91bGQg YmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnMuCgogICAgIyBUaGlz IHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6 IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6IDEgY3VycmVudAp9OwoK IyA+CiMgVXNlIHZhcmFyZ3MgaW4gZGlhZ19wcmludGYoKQojIFRoZSBkaWFn bm9zdGljIHJvdXRpbmUgZGlhZ19wcmludGYoKSBjYW4gYmUgZGVmaW5lZAoj IHVzaW5nIGVpdGhlciB2YXJpYWRpYyBhcmd1bWVudHMgb3IgYSBLJlIgc3R5 bGUgZGVmaW5pdGlvbi4KIyBUaGUgZm9ybWVyIHdpbGwgd29yayBpbiBtb3N0 IGNpcmN1bXN0YW5jZXMsIGJ1dCBpZiB2YXJpYWJsZQojIGFyZ3VtZW50IGhh bmRsaW5nIGlzIGJyb2tlbiBvciBtaXNzaW5nIHRoZW4gdGhlIEsmUiB2YXJp YW50CiMgbWF5IGJlIHVzZWQuIFRoaXMgd2lsbCBhbHNvIGdlbmVyYXRlIHdh cm5pbmdzIGFib3V0IHRoZQojIGRlY2xhcmF0aW9uIG9mIGRpYWdfcHJpbnRm KCkgbm90IGJlaW5nIGEgcHJvdG90eXBlLgojIFRoZXNlIG1heSBzYWZlbHkg YmUgaWdub3JlZC4KIwpjZGxfb3B0aW9uIENZR0RCR19JTkZSQV9ESUFHX1BS SU5URl9VU0VfVkFSQVJHIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5v IHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8g cHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07CgojIEFz c2VydHMgJiBUcmFjaW5nCiMgVGhlIGVDb3Mgc291cmNlIGNvZGUgY29udGFp bnMgYSBzaWduaWZpY2FudCBhbW91bnQgb2YKIyBpbnRlcm5hbCBkZWJ1Z2dp bmcgc3VwcG9ydCwgaW4gdGhlIGZvcm0gb2YgYXNzZXJ0aW9ucyBhbmQKIyB0 cmFjaW5nLgojIEFzc2VydGlvbnMgY2hlY2sgYXQgcnVudGltZSB0aGF0IHZh cmlvdXMgY29uZGl0aW9ucyBhcmUgYXMKIyBleHBlY3RlZDsgaWYgbm90LCBl eGVjdXRpb24gaXMgaGFsdGVkLgojIFRyYWNpbmcgdGFrZXMgdGhlIGZvcm0g b2YgdGV4dCBtZXNzYWdlcyB0aGF0IGFyZSBvdXRwdXQKIyB3aGVuZXZlciBj ZXJ0YWluIGV2ZW50cyBvY2N1ciwgb3Igd2hlbmV2ZXIgZnVuY3Rpb25zIGFy ZQojIGNhbGxlZCBvciByZXR1cm4uCiMgVGhlIG1vc3QgaW1wb3J0YW50IHBy b3BlcnR5IG9mIHRoZXNlIGNoZWNrcyBhbmQgbWVzc2FnZXMgaXMKIyB0aGF0 IHRoZXkgYXJlIG5vdCByZXF1aXJlZCBmb3IgdGhlIHByb2dyYW0gdG8gcnVu LgojIEl0IGlzIHBydWRlbnQgdG8gZGV2ZWxvcCBzb2Z0d2FyZSB3aXRoIGFz c2VydGlvbnMgZW5hYmxlZCwKIyBidXQgZGlzYWJsZSB0aGVtIHdoZW4gbWFr aW5nIGEgcHJvZHVjdCByZWxlYXNlLCB0aHVzCiMgcmVtb3ZpbmcgdGhlIG92 ZXJoZWFkIG9mIHRoYXQgY2hlY2tpbmcuCiMgSXQgaXMgcG9zc2libGUgdG8g ZW5hYmxlIGFzc2VydGlvbnMgYW5kIHRyYWNpbmcKIyBpbmRlcGVuZGVudGx5 LgojIFRoZXJlIGFyZSBhbHNvIG9wdGlvbnMgY29udHJvbGxpbmcgdGhlIGV4 YWN0IGJlaGF2aW91ciBvZgojIHRoZSBhc3NlcnRpb24gYW5kIHRyYWNpbmcg ZmFjaWxpdGllcywgdGh1cyBnaXZpbmcgdXNlcnMKIyBmaW5lciBjb250cm9s IG92ZXIgdGhlIGNvZGUgYW5kIGRhdGEgc2l6ZSByZXF1aXJlbWVudHMuCiMK Y2RsX2NvbXBvbmVudCBDWUdQS0dfSU5GUkFfREVCVUcgewogICAgIyBGbGF2 b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAKfTsKCiMgPgojIFVzZSBhc3NlcnRzCiMgSWYgdGhpcyBvcHRp b24gaXMgZGVmaW5lZCwgYXNzZXJ0cyBpbiB0aGUgY29kZSBhcmUgdGVzdGVk LgojIEFzc2VydCBmdW5jdGlvbnMgKENZR19BU1NFUlQoKSkgYXJlIGRlZmlu ZWQgaW4KIyAnaW5jbHVkZS9jeWcvaW5mcmEvY3lnX2Fzcy5oJyB3aXRoaW4g dGhlICdpbnN0YWxsJyB0cmVlLgojIElmIGl0IGlzIG5vdCBkZWZpbmVkLCB0 aGVzZSByZXN1bHQgaW4gbm8gYWRkaXRpb25hbAojIG9iamVjdCBjb2RlIGFu ZCBubyBjaGVja2luZyBvZiB0aGUgYXNzZXJ0ZWQgY29uZGl0aW9ucy4KIwpj ZGxfY29tcG9uZW50IENZR0RCR19VU0VfQVNTRVJUUyB7CiAgICAjIFRoaXMg b3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0df SU5GUkFfREVCVUcgaXMgZGlzYWJsZWQKCiAgICAjIEZsYXZvcjogYm9vbAog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQoK ICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBi eSB0aGlzIHZhbHVlCiAgICAjIG9wdGlvbiBDWUdEQkdfTUVNQUxMT0NfQUxM T0NBVE9SX0RMTUFMTE9DX0RFQlVHCiAgICAjICAgICBSZXF1aXJlczogQ1lH REJHX1VTRV9BU1NFUlRTCiAgICAjIG9wdGlvbiBDWUdEQkdfTUVNQUxMT0Nf QUxMT0NBVE9SX0RMTUFMTE9DX0RFQlVHCiAgICAjICAgICBEZWZhdWx0VmFs dWU6ICAwICE9IENZR0RCR19VU0VfQVNTRVJUUyAKICAgICMgb3B0aW9uIENZ R1NFTV9MSUJDX1NJR05BTFNfQkFEX1NJR05BTF9GQVRBTAogICAgIyAgICAg UmVxdWlyZXM6IENZR0RCR19VU0VfQVNTRVJUUwp9OwoKIyA+CiMgUHJlY29u ZGl0aW9ucwojIFRoaXMgb3B0aW9uIGFsbG93cyBpbmRpdmlkdWFsIGNvbnRy b2wgb2YgcHJlY29uZGl0aW9ucy4KIyBBIHByZWNvbmRpdGlvbiBpcyBvbmUg dHlwZSBvZiBhc3NlcnQsIHdoaWNoIGl0IGlzCiMgdXNlZnVsIHRvIGNvbnRy b2wgc2VwYXJhdGVseSBmcm9tIG1vcmUgZ2VuZXJhbCBhc3NlcnRzLgojIFRo ZSBmdW5jdGlvbiBpcyBDWUdfUFJFQ09ORElUSU9OKGNvbmRpdGlvbixtc2cp LgojCmNkbF9vcHRpb24gQ1lHREJHX0lORlJBX0RFQlVHX1BSRUNPTkRJVElP TlMgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRo ZSBwYXJlbnQgQ1lHREJHX1VTRV9BU1NFUlRTIGlzIG5vdCBhY3RpdmUKCiAg ICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogMQp9OwoKIyBQb3N0Y29uZGl0aW9ucwojIFRoaXMg b3B0aW9uIGFsbG93cyBpbmRpdmlkdWFsIGNvbnRyb2wgb2YgcG9zdGNvbmRp dGlvbnMuCiMgQSBwb3N0Y29uZGl0aW9uIGlzIG9uZSB0eXBlIG9mIGFzc2Vy dCwgd2hpY2ggaXQgaXMKIyB1c2VmdWwgdG8gY29udHJvbCBzZXBhcmF0ZWx5 IGZyb20gbW9yZSBnZW5lcmFsIGFzc2VydHMuCiMgVGhlIGZ1bmN0aW9uIGlz IENZR19QT1NUQ09ORElUSU9OKGNvbmRpdGlvbixtc2cpLgojCmNkbF9vcHRp b24gQ1lHREJHX0lORlJBX0RFQlVHX1BPU1RDT05ESVRJT05TIHsKICAgICMg VGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZ R0RCR19VU0VfQVNTRVJUUyBpcyBub3QgYWN0aXZlCgogICAgIyBGbGF2b3I6 IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAx CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFs dWU6IDEKfTsKCiMgTG9vcCBpbnZhcmlhbnRzCiMgVGhpcyBvcHRpb24gYWxs b3dzIGluZGl2aWR1YWwgY29udHJvbCBvZiBsb29wIGludmFyaWFudHMuCiMg QSBsb29wIGludmFyaWFudCBpcyBvbmUgdHlwZSBvZiBhc3NlcnQsIHdoaWNo IGl0IGlzCiMgdXNlZnVsIHRvIGNvbnRyb2wgc2VwYXJhdGVseSBmcm9tIG1v cmUgZ2VuZXJhbCBhc3NlcnRzLAojIHBhcnRpY3VsYXJseSBzaW5jZSBhIGxv b3AgaW52YXJpYW50IGlzIHR5cGljYWxseSBldmFsdWF0ZWQKIyBhIGdyZWF0 IG1hbnkgdGltZXMgd2hlbiB1c2VkIGNvcnJlY3RseS4KIyBUaGUgZnVuY3Rp b24gaXMgQ1lHX0xPT1BfSU5WQVJJQU5UKGNvbmRpdGlvbixtc2cpLgojCmNk bF9vcHRpb24gQ1lHREJHX0lORlJBX0RFQlVHX0xPT1BfSU5WQVJJQU5UUyB7 CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBh cmVudCBDWUdEQkdfVVNFX0FTU0VSVFMgaXMgbm90IGFjdGl2ZQoKICAgICMg Rmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAxCn07CgojIFVzZSBhc3NlcnQgdGV4dAojIEFsbCBhc3Nl cnRpb25zIHdpdGhpbiBlQ29zIGNvbnRhaW4gYSB0ZXh0IG1lc3NhZ2UKIyB3 aGljaCBzaG91bGQgZ2l2ZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBj b25kaXRpb24KIyBiZWluZyB0ZXN0ZWQuCiMgVGhlc2UgdGV4dCBtZXNzYWdl cyB3aWxsIGVuZCB1cCBiZWluZyBlbWJlZGRlZCBpbiB0aGUKIyBhcHBsaWNh dGlvbiBpbWFnZSBhbmQgaGVuY2UgdGhlcmUgaXMgYSBzaWduaWZpY2FudCBw ZW5hbHR5CiMgaW4gdGVybXMgb2YgaW1hZ2Ugc2l6ZS4KIyBJdCBpcyBwb3Nz aWJsZSB0byBzdXBwcmVzcyB0aGUgdXNlIG9mIHRoZXNlIG1lc3NhZ2VzIGJ5 CiMgZGlzYWJsaW5nIHRoaXMgb3B0aW9uLgojIFRoaXMgcmVzdWx0cyBpbiBz bWFsbGVyIGNvZGUgc2l6ZSwgYnV0IHRoZXJlIGlzIGxlc3MKIyBodW1hbi1y ZWFkYWJsZSBpbmZvcm1hdGlvbiBpZiBhbiBhc3NlcnRpb24gYWN0dWFsbHkg Z2V0cwojIHRyaWdnZXJlZC4KIwpjZGxfb3B0aW9uIENZR0RCR19JTkZSQV9E RUJVR19BU1NFUlRfTUVTU0FHRSB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5v dCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdEQkdfVVNFX0FTU0VSVFMg aXMgbm90IGFjdGl2ZQoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVz ZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJv dmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3Vy Y2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07CgojIDwKIyBV c2UgdHJhY2luZwojIElmIHRoaXMgb3B0aW9uIGlzIGRlZmluZWQsIHRyYWNp bmcgb3BlcmF0aW9ucwojIHJlc3VsdCBpbiBvdXRwdXQgb3IgbG9nZ2luZywg ZGVwZW5kaW5nIG9uIG90aGVyIG9wdGlvbnMuCiMgVGhpcyBtYXkgaGF2ZSBh ZHZlcnNlIGVmZmVjdHMgb24gcGVyZm9ybWFuY2UsIGlmIHRoZSB0aW1lCiMg dGFrZW4gdG8gb3V0cHV0IG1lc3NhZ2Ugb3ZlcndoZWxtcyB0aGUgYXZhaWxh YmxlIENQVQojIHBvd2VyIG9yIG91dHB1dCBiYW5kd2lkdGguCiMgVHJhY2Ug ZnVuY3Rpb25zIChDWUdfVFJBQ0UoKSkgYXJlIGRlZmluZWQgaW4KIyAnaW5j bHVkZS9jeWcvaW5mcmEvY3lnX3RyYWMuaCcgd2l0aGluIHRoZSAnaW5zdGFs bCcgdHJlZS4KIyBJZiBpdCBpcyBub3QgZGVmaW5lZCwgdGhlc2UgcmVzdWx0 IGluIG5vIGFkZGl0aW9uYWwKIyBvYmplY3QgY29kZSBhbmQgbm8gdHJhY2Ug aW5mb3JtYXRpb24uCiMKY2RsX2NvbXBvbmVudCBDWUdEQkdfVVNFX1RSQUNJ TkcgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRo ZSBwYXJlbnQgQ1lHUEtHX0lORlJBX0RFQlVHIGlzIGRpc2FibGVkCgogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDAKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGll cyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lH REJHX0lORlJBX0RFQlVHX1RSQUNFX0JVRkZFUl9TSVpFCiAgICAjICAgICBB Y3RpdmVJZjogQ1lHREJHX1VTRV9UUkFDSU5HCiAgICAjIG9wdGlvbiBDWUdE QkdfSU5GUkFfREVCVUdfVFJBQ0VfQlVGRkVSX1dSQVAKICAgICMgICAgIEFj dGl2ZUlmOiBDWUdEQkdfVVNFX1RSQUNJTkcKICAgICMgb3B0aW9uIENZR0RC R19JTkZSQV9ERUJVR19UUkFDRV9CVUZGRVJfSEFMVAogICAgIyAgICAgQWN0 aXZlSWY6IENZR0RCR19VU0VfVFJBQ0lORwogICAgIyBvcHRpb24gQ1lHREJH X0lORlJBX0RFQlVHX1RSQUNFX0JVRkZFUl9QUklOVAogICAgIyAgICAgQWN0 aXZlSWY6IENZR0RCR19VU0VfVFJBQ0lORwogICAgIyBvcHRpb24gQ1lHREJH X0lORlJBX0RFQlVHX1RSQUNFX0JVRkZFUl9QUklOVF9PTl9BU1NFUlQKICAg ICMgICAgIEFjdGl2ZUlmOiBDWUdEQkdfVVNFX1RSQUNJTkcKICAgICMgY29t cG9uZW50IENZR1BLR19MSUJNX1RSQUNFCiAgICAjICAgICBSZXF1aXJlczog Q1lHREJHX1VTRV9UUkFDSU5HCn07CgojID4KIyBUcmFjZSBmdW5jdGlvbiBy ZXBvcnRzCiMgVGhpcyBvcHRpb24gYWxsb3dzIGluZGl2aWR1YWwgY29udHJv bCBvZgojIGZ1bmN0aW9uIGVudHJ5L2V4aXQgdHJhY2luZywgaW5kZXBlbmRl bnQgb2YKIyBtb3JlIGdlbmVyYWwgdHJhY2luZyBvdXRwdXQuCiMgVGhpcyBt YXkgYmUgdXNlZnVsIHRvIHJlbW92ZSBjbHV0dGVyIGZyb20gYQojIHRyYWNl IGxvZy4KIwpjZGxfb3B0aW9uIENZR0RCR19JTkZSQV9ERUJVR19GVU5DVElP Tl9SRVBPUlRTIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQog ICAgIyBUaGUgcGFyZW50IENZR0RCR19VU0VfVFJBQ0lORyBpcyBub3QgYWN0 aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHREJHX1VTRV9UUkFDSU5HIGlzIGRp c2FibGVkCgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgVXNlIHRyYWNlIHRl eHQKIyBBbGwgdHJhY2UgY2FsbHMgd2l0aGluIGVDb3MgY29udGFpbiBhIHRl eHQgbWVzc2FnZQojIHdoaWNoIHNob3VsZCBnaXZlIHNvbWUgaW5mb3JtYXRp b24gYWJvdXQgdGhlIGNpcmN1bXN0YW5jZXMuCiMgVGhlc2UgdGV4dCBtZXNz YWdlcyB3aWxsIGVuZCB1cCBiZWluZyBlbWJlZGRlZCBpbiB0aGUKIyBhcHBs aWNhdGlvbiBpbWFnZSBhbmQgaGVuY2UgdGhlcmUgaXMgYSBzaWduaWZpY2Fu dCBwZW5hbHR5CiMgaW4gdGVybXMgb2YgaW1hZ2Ugc2l6ZS4KIyBJdCBpcyBw b3NzaWJsZSB0byBzdXBwcmVzcyB0aGUgdXNlIG9mIHRoZXNlIG1lc3NhZ2Vz IGJ5CiMgZGlzYWJsaW5nIHRoaXMgb3B0aW9uLgojIFRoaXMgcmVzdWx0cyBp biBzbWFsbGVyIGNvZGUgc2l6ZSwgYnV0IHRoZXJlIGlzIGxlc3MKIyBodW1h bi1yZWFkYWJsZSBpbmZvcm1hdGlvbiBhdmFpbGFibGUgaW4gdGhlIHRyYWNl IG91dHB1dCwKIyBwb3NzaWJseSBvbmx5IGZpbGVuYW1lcyBhbmQgbGluZSBu dW1iZXJzLgojCmNkbF9vcHRpb24gQ1lHREJHX0lORlJBX0RFQlVHX1RSQUNF X01FU1NBR0UgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAg ICAjIFRoZSBwYXJlbnQgQ1lHREJHX1VTRV9UUkFDSU5HIGlzIG5vdCBhY3Rp dmUKICAgICMgVGhlIHBhcmVudCBDWUdEQkdfVVNFX1RSQUNJTkcgaXMgZGlz YWJsZWQKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVl LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25l LgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyA8CiMgTnVsbCBvdXRw dXQKIyBBIG51bGwgb3V0cHV0IG1vZHVsZSB3aGljaCBpcyB1c2VmdWwgd2hl bgojIGRlYnVnZ2luZyBpbnRlcmFjdGl2ZWx5OyB0aGUgb3V0cHV0IHJvdXRp bmVzCiMgY2FuIGJlIGJyZWFrcG9pbnRlZCByYXRoZXIgdGhhbiBoYXZlIHRo ZW0gYWN0dWFsbHkKIyAncHJpbnQnIHNvbWV0aGluZy4KIwpjZGxfb3B0aW9u IENZR0RCR19JTkZSQV9ERUJVR19UUkFDRV9BU1NFUlRfTlVMTCB7CiAgICAj IFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBD WUdQS0dfSU5GUkFfREVCVUcgaXMgZGlzYWJsZWQKCiAgICAjIEZsYXZvcjog Ym9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMAp9OwoKIyBTaW1wbGUgb3V0cHV0CiMgQW4gb3V0cHV0IG1vZHVsZSB3 aGljaCBwcm9kdWNlcyBzaW1wbGUgb3V0cHV0CiMgZnJvbSB0cmFjaW5nIGFu ZCBhc3NlcnRpb24gZXZlbnRzLgojCmNkbF9vcHRpb24gQ1lHREJHX0lORlJB X0RFQlVHX1RSQUNFX0FTU0VSVF9TSU1QTEUgewogICAgIyBUaGlzIG9wdGlv biBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lORlJB X0RFQlVHIGlzIGRpc2FibGVkCgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMg Tm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0 byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVl X3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKfTsKCiMg RmFuY3kgb3V0cHV0CiMgQW4gb3V0cHV0IG1vZHVsZSB3aGljaCBwcm9kdWNl cyBmYW5jeSBvdXRwdXQKIyBmcm9tIHRyYWNpbmcgYW5kIGFzc2VydGlvbiBl dmVudHMuCiMKY2RsX29wdGlvbiBDWUdEQkdfSU5GUkFfREVCVUdfVFJBQ0Vf QVNTRVJUX0ZBTkNZIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2 ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19JTkZSQV9ERUJVRyBpcyBkaXNh YmxlZAoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVs dAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCn07CgojIEJ1ZmZlcmVkIHRyYWNp bmcKIyBBbiBvdXRwdXQgbW9kdWxlIHdoaWNoIGJ1ZmZlcnMgb3V0cHV0CiMg ZnJvbSB0cmFjaW5nIGFuZCBhc3NlcnRpb24gZXZlbnRzLiBUaGUgc3RvcmVk CiMgbWVzc2FnZXMgYXJlIG91dHB1dCB3aGVuIGFuIGFzc2VydCBmaXJlcywg b3IKIyBDWUdfVFJBQ0VfUFJJTlQoKSAoZGVmaW5lZCBpbiA8Y3lnL2luZnJh L2N5Z190cmFjLmg+KQojIGlzIGNhbGxlZC4KIyBPZiBjb3Vyc2UsIHRoZXJl IHdpbGwgb25seSBiZSBzdG9yZWQgbWVzc2FnZXMKIyBpZiB0cmFjaW5nIHBl ciBzZSAoQ1lHREJHX1VTRV9UUkFDSU5HKQojIGlzIGVuYWJsZWQgYWJvdmUu CiMKY2RsX2NvbXBvbmVudCBDWUdEQkdfSU5GUkFfREVCVUdfVFJBQ0VfQVNT RVJUX0JVRkZFUiB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUK ICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU5GUkFfREVCVUcgaXMgZGlzYWJs ZWQKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyA+CiMgVHJhY2UgYnVmZmVy IHNpemUKIyBUaGUgc2l6ZSBvZiB0aGUgdHJhY2UgYnVmZmVyLiBUaGlzIGNv dW50cyB0aGUgbnVtYmVyCiMgb2YgdHJhY2UgcmVjb3JkcyBzdG9yZWQuIFdo ZW4gdGhlIGJ1ZmZlciBmaWxscyBpdAojIGVpdGhlciB3cmFwcywgc3RvcHMg cmVjb3JkaW5nLCBvciBnZW5lcmF0ZXMgb3V0cHV0LgojCmNkbF9vcHRpb24g Q1lHREJHX0lORlJBX0RFQlVHX1RSQUNFX0JVRkZFUl9TSVpFIHsKICAgICMg VGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZ R0RCR19JTkZSQV9ERUJVR19UUkFDRV9BU1NFUlRfQlVGRkVSIGlzIG5vdCBh Y3RpdmUKICAgICMgQWN0aXZlSWYgY29uc3RyYWludDogQ1lHREJHX1VTRV9U UkFDSU5HCiAgICAjICAgICBDWUdEQkdfVVNFX1RSQUNJTkcgPT0gMAogICAg IyAgIC0tPiAwCgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2 YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRl IG9uZS4KICAgICMgdXNlcl92YWx1ZSAzMgogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAzMgogICAgIyBMZWdhbCB2 YWx1ZXM6IDUgdG8gNjU1MzUKfTsKCiMgV3JhcCB0cmFjZSBidWZmZXIgd2hl biBmdWxsCiMgV2hlbiB0aGUgdHJhY2UgYnVmZmVyIGhhcyBmaWxsZWQgd2l0 aCByZWNvcmRzIGl0CiMgc3RhcnRzIGFnYWluIGF0IHRoZSBiZWdpbm5pbmcu IEhlbmNlIG9ubHkgdGhlIGxhc3QKIyBDWUdEQkdfSU5GUkFfREVCVUdfVFJB Q0VfQlVGRkVSX1NJWkUgbWVzc2FnZXMgd2lsbAojIGJlIHJlY29yZGVkLgoj CmNkbF9vcHRpb24gQ1lHREJHX0lORlJBX0RFQlVHX1RSQUNFX0JVRkZFUl9X UkFQIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBU aGUgcGFyZW50IENZR0RCR19JTkZSQV9ERUJVR19UUkFDRV9BU1NFUlRfQlVG RkVSIGlzIG5vdCBhY3RpdmUKICAgICMgQWN0aXZlSWYgY29uc3RyYWludDog Q1lHREJHX1VTRV9UUkFDSU5HCiAgICAjICAgICBDWUdEQkdfVVNFX1RSQUNJ TkcgPT0gMAogICAgIyAgIC0tPiAwCgogICAgIyBGbGF2b3I6IGJvb2wKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZh bHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsK CiMgSGFsdCB0cmFjZSBidWZmZXIgd2hlbiBmdWxsCiMgV2hlbiB0aGUgdHJh Y2UgYnVmZmVyIGhhcyBmaWxsZWQgd2l0aCByZWNvcmRzIGl0CiMgc3RvcHMg cmVjb3JkaW5nLiBIZW5jZSBvbmx5IHRoZSBmaXJzdAojIENZR0RCR19JTkZS QV9ERUJVR19UUkFDRV9CVUZGRVJfU0laRSBtZXNzYWdlcyB3aWxsCiMgYmUg cmVjb3JkZWQuCiMKY2RsX29wdGlvbiBDWUdEQkdfSU5GUkFfREVCVUdfVFJB Q0VfQlVGRkVSX0hBTFQgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0 aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHREJHX0lORlJBX0RFQlVHX1RSQUNF X0FTU0VSVF9CVUZGRVIgaXMgbm90IGFjdGl2ZQogICAgIyBBY3RpdmVJZiBj b25zdHJhaW50OiBDWUdEQkdfVVNFX1RSQUNJTkcKICAgICMgICAgIENZR0RC R19VU0VfVFJBQ0lORyA9PSAwCiAgICAjICAgLS0+IDAKCiAgICAjIEZsYXZv cjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2 YWx1ZTogMAp9OwoKIyBQcmludCB0cmFjZSBidWZmZXIgd2hlbiBmdWxsCiMg V2hlbiB0aGUgdHJhY2UgYnVmZmVyIGhhcyBmaWxsZWQgd2l0aCByZWNvcmRz IGl0CiMgcHJpbnRzIHRoZSBjb250ZW50cyBvZiB0aGUgYnVmZmVyLiBUaGUg YnVmZmVyIGlzIHRoZW4KIyBlbXB0aWVkIGFuZCB0aGUgc3lzdGVtIGNvbnRp bnVlcy4KIwpjZGxfb3B0aW9uIENZR0RCR19JTkZSQV9ERUJVR19UUkFDRV9C VUZGRVJfUFJJTlQgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZl CiAgICAjIFRoZSBwYXJlbnQgQ1lHREJHX0lORlJBX0RFQlVHX1RSQUNFX0FT U0VSVF9CVUZGRVIgaXMgbm90IGFjdGl2ZQogICAgIyBBY3RpdmVJZiBjb25z dHJhaW50OiBDWUdEQkdfVVNFX1RSQUNJTkcKICAgICMgICAgIENZR0RCR19V U0VfVFJBQ0lORyA9PSAwCiAgICAjICAgLS0+IDAKCiAgICAjIEZsYXZvcjog Ym9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMAp9OwoKIyBQcmludCB0cmFjZSBidWZmZXIgb24gYXNzZXJ0IGZhaWwK IyBXaGVuIGFuIGFzc2VydGlvbiBmYWlscyB0aGUgdHJhY2UgYnVmZmVyIHdp bGwgYmUgCiMgcHJpbnRlZCB0byB0aGUgZGVmYXVsdCBkaWFnbm9zdGljIGRl dmljZS4KIwpjZGxfb3B0aW9uIENZR0RCR19JTkZSQV9ERUJVR19UUkFDRV9C VUZGRVJfUFJJTlRfT05fQVNTRVJUIHsKICAgICMgVGhpcyBvcHRpb24gaXMg bm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR0RCR19JTkZSQV9ERUJV R19UUkFDRV9BU1NFUlRfQlVGRkVSIGlzIG5vdCBhY3RpdmUKICAgICMgQWN0 aXZlSWYgY29uc3RyYWludDogQ1lHREJHX1VTRV9UUkFDSU5HCiAgICAjICAg ICBDWUdEQkdfVVNFX1RSQUNJTkcgPT0gMAogICAgIyAgIC0tPiAwCgogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDEKfTsKCiMgPAojIFVzZSBmdW5jdGlvbiBuYW1lcwoj IEFsbCB0cmFjZSBhbmQgYXNzZXJ0IGNhbGxzIHdpdGhpbiBlQ29zIGNvbnRh aW4gYQojIHJlZmVyZW5jZSB0byB0aGUgYnVpbHRpbiBtYWNybyAnX19QUkVU VFlfRlVOQ1RJT05fXycsCiMgd2hpY2ggZXZhbHVhdGVzIHRvIGEgc3RyaW5n IGNvbnRhaW5pbmcKIyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBmdW5jdGlv bi4KIyBUaGlzIGlzIHVzZWZ1bCB3aGVuIHJlYWRpbmcgYSB0cmFjZSBsb2cu CiMgSXQgaXMgcG9zc2libGUgdG8gc3VwcHJlc3MgdGhlIHVzZSBvZiB0aGUg ZnVuY3Rpb24gbmFtZQojIGJ5IGRpc2FibGluZyB0aGlzIG9wdGlvbi4KIyBU aGlzIHJlc3VsdHMgaW4gc21hbGxlciBjb2RlIHNpemUsIGJ1dCB0aGVyZSBp cyBsZXNzCiMgaHVtYW4tcmVhZGFibGUgaW5mb3JtYXRpb24gYXZhaWxhYmxl IGluIHRoZSB0cmFjZSBvdXRwdXQsCiMgcG9zc2libHkgb25seSBmaWxlbmFt ZXMgYW5kIGxpbmUgbnVtYmVycy4KIwpjZGxfb3B0aW9uIENZR0RCR19JTkZS QV9ERUJVR19GVU5DVElPTl9QU0VVRE9NQUNSTyB7CiAgICAjIFRoaXMgb3B0 aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU5G UkFfREVCVUcgaXMgZGlzYWJsZWQKCiAgICAjIEZsYXZvcjogYm9vbAogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoK IyA8CiMgU3RhcnR1cCBvcHRpb25zCiMgU29tZSBwYWNrYWdlcyByZXF1aXJl IGEgc3RhcnR1cCByb3V0aW5lIHRvIGJlIGNhbGxlZC4KIyBUaGlzIGNhbiBi ZSBjYXJyaWVkIG91dCBieSBhcHBsaWNhdGlvbiBjb2RlLCBieSBzdXBwbHlp bmcKIyBhIHJvdXRpbmUgY2FsbGVkIGN5Z19wYWNrYWdlX3N0YXJ0KCkgd2hp Y2ggY2FsbHMgdGhlCiMgYXBwcm9wcmlhdGUgcGFja2FnZSBzdGFydHVwIHJv dXRpbmUocykuCiMgQWx0ZXJuYXRpdmVseSwgdGhpcyByb3V0aW5lIGNhbiBi ZSBjb25zdHJ1Y3RlZCBhdXRvbWF0aWNhbGx5CiMgYW5kIGNvbmZpZ3VyZWQg dG8gY2FsbCB0aGUgc3RhcnR1cCByb3V0aW5lcyBvZiB5b3VyIGNob2ljZS4K IwpjZGxfY29tcG9uZW50IENZR1BLR19JTkZSQV9TVEFSVFVQIHsKICAgICMg VGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIFN0YXJ0 IHVJVFJPTiBzdWJzeXN0ZW0KIyBHZW5lcmF0ZSBhIGNhbGwgdG8gaW5pdGlh bGl6ZSB0aGUKIyB1SVRST04gY29tcGF0aWJpbGl0eSBzdWJzeXN0ZW0KIyB3 aXRoaW4gdGhlIHN5c3RlbSB2ZXJzaW9uIG9mIGN5Z19wYWNrYWdlX3N0YXJ0 KCkuCiMgVGhpcyBlbmFibGVzIGNvbXBhdGliaWxpdHkgd2l0aCB1SVRST04u CiMgWW91IG11c3QgY29uZmlndXJlIHVJVFJPTiB3aXRoIHRoZSBjb3JyZWN0 IHRhc2tzIGJlZm9yZQojIHN0YXJ0aW5nIHRoZSB1SXRyb24gc3Vic3lzdGVt LgojIElmIHRoaXMgaXMgZGlzYWJsZWQsIGFuZCB5b3Ugd2FudCB0byB1c2Ug dUlUUk9OLAojIHlvdSBtdXN0IGNhbGwgY3lnX3VpdHJvbl9zdGFydCgpIGZy b20geW91ciBvd24KIyBjeWdfcGFja2FnZV9zdGFydCgpIG9yIGN5Z191c2Vy c3RhcnQoKS4KIwpjZGxfb3B0aW9uIENZR1NFTV9TVEFSVF9VSVRST05fQ09N UEFUSUJJTElUWSB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUK ICAgICMgQWN0aXZlSWYgY29uc3RyYWludDogQ1lHUEtHX1VJVFJPTgogICAg IyAgICAgQ1lHUEtHX1VJVFJPTiAodW5rbm93bikgPT0gMAogICAgIyAgIC0t PiAwCgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6IENZR1BL R19VSVRST04KICAgICMgICAgIENZR1BLR19VSVRST04gKHVua25vd24pID09 IDAKICAgICMgICAtLT4gMAp9OwoKIyA8CiMgU21hbGxlciBzbG93ZXIgbWVt Y3B5KCkKIyBFbmFibGluZyB0aGlzIG9wdGlvbiBjYXVzZXMgdGhlIGltcGxl bWVudGF0aW9uIG9mCiMgdGhlIHN0YW5kYXJkIG1lbWNweSgpIHJvdXRpbmUg dG8gcmVkdWNlIGNvZGUKIyBzaXplIGF0IHRoZSBleHBlbnNlIG9mIGV4ZWN1 dGlvbiBzcGVlZC4gVGhpcwojIG9wdGlvbiBpcyBhdXRvbWF0aWNhbGx5IGVu YWJsZWQgd2l0aCB0aGUgdXNlIG9mCiMgdGhlIC1PcyBvcHRpb24gdG8gdGhl IGNvbXBpbGVyLiBBbHNvIG5vdGUgdGhhdAojIHRoZSBjb21waWxlciB3aWxs IHRyeSB0byB1c2UgaXRzIG93biBidWlsdGluCiMgdmVyc2lvbiBvZiBtZW1j cHkoKSBpZiBwb3NzaWJsZSwgaWdub3JpbmcgdGhlCiMgaW1wbGVtZW50YXRp b24gaW4gdGhpcyBwYWNrYWdlLCB1bmxlc3MgZ2l2ZW4KIyB0aGUgLWZuby1i dWlsdGluIGNvbXBpbGVyIG9wdGlvbi4KIwpjZGxfb3B0aW9uIENZR0lNUF9J TkZSQV9QUkVGRVJfU01BTExfVE9fRkFTVF9NRU1DUFkgewogICAgIyBGbGF2 b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAKfTsKCiMgU21hbGxlciBzbG93ZXIgbWVtc2V0KCkKIyBFbmFi bGluZyB0aGlzIG9wdGlvbiBjYXVzZXMgdGhlIGltcGxlbWVudGF0aW9uIG9m CiMgdGhlIHN0YW5kYXJkIG1lbXNldCgpIHJvdXRpbmUgdG8gcmVkdWNlIGNv ZGUKIyBzaXplIGF0IHRoZSBleHBlbnNlIG9mIGV4ZWN1dGlvbiBzcGVlZC4g VGhpcwojIG9wdGlvbiBpcyBhdXRvbWF0aWNhbGx5IGVuYWJsZWQgd2l0aCB0 aGUgdXNlIG9mCiMgdGhlIC1PcyBvcHRpb24gdG8gdGhlIGNvbXBpbGVyLiBB bHNvIG5vdGUgdGhhdAojIHRoZSBjb21waWxlciB3aWxsIHRyeSB0byB1c2Ug aXRzIG93biBidWlsdGluCiMgdmVyc2lvbiBvZiBtZW1zZXQoKSBpZiBwb3Nz aWJsZSwgaWdub3JpbmcgdGhlCiMgaW1wbGVtZW50YXRpb24gaW4gdGhpcyBw YWNrYWdlLCB1bmxlc3MgZ2l2ZW4KIyB0aGUgLWZuby1idWlsdGluIGNvbXBp bGVyIG9wdGlvbi4KIwpjZGxfb3B0aW9uIENZR0lNUF9JTkZSQV9QUkVGRVJf U01BTExfVE9fRkFTVF9NRU1TRVQgewogICAgIyBGbGF2b3I6IGJvb2wKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZh bHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKfTsK CiMgUHJvdmlkZSBlbXB0eSBDKysgZGVsZXRlIGZ1bmN0aW9ucwojIFRvIGRl YWwgd2l0aCB2aXJ0dWFsIGRlc3RydWN0b3JzLCB3aGVyZSB0aGUgY29ycmVj dCBkZWxldGUoKQojIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGZvciB0aGUg ZGVyaXZlZCBjbGFzcyBpbiBxdWVzdGlvbiwgdGhlCiMgdW5kZXJseWluZyBk ZWxldGUgaXMgY2FsbGVkIHdoZW4gbmVlZGVkLCBmcm9tIGRlc3RydWN0b3Jz LiAgVGhpcwojIGlzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgZGVzdHJ1 Y3RvciBpcyBjYWxsZWQgYnkgZGVsZXRlIGl0c2VsZi4KIyBTbyB0aGVyZSBp cyBhIHJlZmVyZW5jZSB0byBkZWxldGUoKSBmcm9tIGFsbCBkZXN0cnVjdG9y cy4gIFRoZQojIGRlZmF1bHQgYnVpbHRpbiBkZWxldGUoKSBhdHRlbXB0cyB0 byBjYWxsIGZyZWUoKSBpZiB0aGVyZSBpcwojIG9uZSBkZWZpbmVkLiAgU28s IGlmIHlvdSBoYXZlIGRlc3RydWN0b3JzLCBhbmQgeW91IGhhdmUgZnJlZSgp LAojIGFzIGluIG1hbGxvYygpIGFuZCBmcmVlKCksIGFueSBkZXN0cnVjdG9y IGNvdW50cyBhcyBhIHJlZmVyZW5jZQojIHRvIGZyZWUoKS4gIFNvIHRoZSBk eW5hbWljIG1lbW9yeSBhbGxvY2F0aW9uIGNvZGUgaXMgbGlua2VkCiMgaW4g cmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGdldHMgZXhwbGljaXRseSBjYWxs ZWQuIFRoaXMKIyBpbmNyZWFzZXMgY29kZSBhbmQgZGF0YSBzaXplIG5lZWRs ZXNzbHkuCiMgVG8gZGVmZWF0IHRoaXMgdW5kZXNpcmFibGUgYmVoYXZpb3Vy LCB3ZSBkZWZpbmUgZW1wdHkgdmVyc2lvbnMKIyBvZiBkZWxldGUgYW5kIGRl bGV0ZS4gIEJ1dCBkb2luZyB0aGlzIHByZXZlbnRzIHByb3BlciB1c2UKIyBv ZiBkeW5hbWljIG1lbW9yeSBpbiBDKysgcHJvZ3JhbXMgdmlhIEMrKydzIG5l dyBhbmQgZGVsZXRlCiMgb3BlcmF0b3JzLgojIFRoZXJlZm9yZSwgdGhpcyBv cHRpb24gaXMgcHJvdmlkZWQKIyBmb3IgZXhwbGljaXRseSBkaXNhYmxpbmcg dGhlIHByb3Zpc2lvbiBvZiB0aGVzZSBlbXB0eSBmdW5jdGlvbnMsCiMgc28g dGhhdCBuZXcgYW5kIGRlbGV0ZSBjYW4gYmUgdXNlZCwgaWYgdGhhdCBpcyB3 aGF0IGlzIHJlcXVpcmVkLgojCmNkbF9vcHRpb24gQ1lHRlVOX0lORlJBX0VN UFRZX0RFTEVURV9GVU5DVElPTlMgewogICAgIyBGbGF2b3I6IGJvb2wKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZh bHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsK CiMgSW5mcmEgYnVpbGQgb3B0aW9ucwojIFBhY2thZ2Ugc3BlY2lmaWMgYnVp bGQgb3B0aW9ucyBpbmNsdWRpbmcgY29udHJvbCBvdmVyCiMgY29tcGlsZXIg ZmxhZ3MgdXNlZCBvbmx5IGluIGJ1aWxkaW5nIHRoaXMgcGFja2FnZS4KIwpj ZGxfY29tcG9uZW50IENZR1BLR19JTkZSQV9PUFRJT05TIHsKICAgICMgVGhl cmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIEFkZGl0aW9u YWwgY29tcGlsZXIgZmxhZ3MKIyBUaGlzIG9wdGlvbiBtb2RpZmllcyB0aGUg c2V0IG9mIGNvbXBpbGVyIGZsYWdzIGZvcgojIGJ1aWxkaW5nIHRoZSBlQ29z IGluZnJhIHBhY2thZ2UuIFRoZXNlIGZsYWdzIGFyZSB1c2VkCiMgaW4gYWRk aXRpb24gdG8gdGhlIHNldCBvZiBnbG9iYWwgZmxhZ3MuCiMKY2RsX29wdGlv biBDWUdQS0dfSU5GUkFfQ0ZMQUdTX0FERCB7CiAgICAjIEZsYXZvcjogZGF0 YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICIiCiAg ICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6 ICIiCn07CgojIFN1cHByZXNzZWQgY29tcGlsZXIgZmxhZ3MKIyBUaGlzIG9w dGlvbiBtb2RpZmllcyB0aGUgc2V0IG9mIGNvbXBpbGVyIGZsYWdzIGZvcgoj IGJ1aWxkaW5nIHRoZSBlQ29zIGluZnJhIHBhY2thZ2UuIFRoZXNlIGZsYWdz IGFyZSByZW1vdmVkIGZyb20KIyB0aGUgc2V0IG9mIGdsb2JhbCBmbGFncyBp ZiBwcmVzZW50LgojCmNkbF9vcHRpb24gQ1lHUEtHX0lORlJBX0NGTEFHU19S RU1PVkUgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAiIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVm YXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAiIgp9OwoKIyA8CiMgPAojIGVD b3Mga2VybmVsCiMgZG9jOiByZWRpcmVjdC9lY29zLWtlcm5lbC1vdmVydmll dy5odG1sCiMgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBjb3JlIGZ1bmN0 aW9uYWxpdHkgb2YgdGhlIGVDb3MKIyBrZXJuZWwuIEl0IHJlbGllcyBvbiBm dW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHZhcmlvdXMgSEFMCiMgcGFja2Fn ZXMgYW5kIGJ5IHRoZSBlQ29zIGluZnJhc3RydWN0dXJlLiBJbiB0dXJuIHRo ZSBlQ29zCiMga2VybmVsIHByb3ZpZGVzIHN1cHBvcnQgZm9yIG90aGVyIHBh Y2thZ2VzIHN1Y2ggYXMgdGhlIGRldmljZQojIGRyaXZlcnMgYW5kIHRoZSB1 SVRST04gY29tcGF0aWJpbGl0eSBsYXllci4KIwpjZGxfcGFja2FnZSBDWUdQ S0dfS0VSTkVMIHsKICAgICMgUGFja2FnZXMgY2Fubm90IGJlIGFkZGVkIG9y IHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVyc2lvbiBiZSBjaGFuZ2VkLAog ICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVpciB2YWx1ZS4gSW5zdGVhZCB0 aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbgogICAgIyBzaG91bGQgYmUg dXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnMuCgogICAgIyBUaGlzIHZh bHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGJv b2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6IDEgY3VycmVudAoKICAgICMg VGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlz IHZhbHVlCiAgICAjIG9wdGlvbiBDWUdGVU5fSEFMX0NPTU1PTl9LRVJORUxf U1VQUE9SVAogICAgIyAgICAgUmVxdWlyZXM6IENZR1BLR19LRVJORUwKICAg ICMgb3B0aW9uIENZR0ZVTl9IQUxfQ09NTU9OX0tFUk5FTF9TVVBQT1JUCiAg ICAjICAgICBEZWZhdWx0VmFsdWU6IENZR1BLR19LRVJORUwKICAgICMgb3B0 aW9uIENZR1NFTV9NRU1BTExPQ19BTExPQ0FUT1JfRklYRURfVEhSRUFEQVdB UkUKICAgICMgICAgIEFjdGl2ZUlmOiBDWUdQS0dfS0VSTkVMCiAgICAjIG9w dGlvbiBDWUdTRU1fTUVNQUxMT0NfQUxMT0NBVE9SX1ZBUklBQkxFX1RIUkVB REFXQVJFCiAgICAjICAgICBBY3RpdmVJZjogQ1lHUEtHX0tFUk5FTAogICAg IyBvcHRpb24gQ1lHSU1QX01FTUFMTE9DX0FMTE9DQVRPUl9ETE1BTExPQ19U SFJFQURBV0FSRQogICAgIyAgICAgQWN0aXZlSWY6IENZR1BLR19LRVJORUwK ICAgICMgb3B0aW9uIENZR0lNUF9NRU1BTExPQ19BTExPQ0FUT1JfRExNQUxM T0NfVEhSRUFEQVdBUkUKICAgICMgICAgIFJlcXVpcmVzOiBDWUdQS0dfS0VS TkVMCiAgICAjIG9wdGlvbiBDWUdGVU5fTUVNQUxMT0NfS0FQSQogICAgIyAg ICAgQWN0aXZlSWY6IENZR1BLR19LRVJORUwKICAgICMgb3B0aW9uIENZR1NF TV9MSUJDX1NJR05BTFNfVEhSRUFEX1NBRkUKICAgICMgICAgIFJlcXVpcmVz OiBDWUdQS0dfS0VSTkVMCiAgICAjIG9wdGlvbiBDWUdTRU1fTElCQ19TVEFS VFVQX01BSU5fSU5JVENPTlRFWFQKICAgICMgICAgIERlZmF1bHRWYWx1ZTog IDAgPT0gQ1lHUEtHX0tFUk5FTCAmJiAwID09IENZR1BLR19QT1NJWF9QVEhS RUFEIAogICAgIyBjb21wb25lbnQgQ1lHU0VNX0xJQkNfU1RBUlRVUF9NQUlO X1RIUkVBRAogICAgIyAgICAgUmVxdWlyZXM6IENZR1BLR19LRVJORUwKICAg ICMgY29tcG9uZW50IENZR1NFTV9MSUJDX1NUQVJUVVBfTUFJTl9USFJFQUQK ICAgICMgICAgIERlZmF1bHRWYWx1ZTogIDAgIT0gQ1lHUEtHX0tFUk5FTCAm JiAwID09IENZR1BLR19QT1NJWF9QVEhSRUFEIAogICAgIyBvcHRpb24gQ1lH U0VNX0xJQkNfRVhJVF9TVE9QU19TWVNURU0KICAgICMgICAgIFJlcXVpcmVz OiBDWUdQS0dfS0VSTkVMCiAgICAjIG9wdGlvbiBDWUdTRU1fTElCQ19TVERJ T19USFJFQURfU0FGRV9TVFJFQU1TCiAgICAjICAgICBSZXF1aXJlczogQ1lH UEtHX0tFUk5FTAogICAgIyBvcHRpb24gQ1lHU0VNX0xJQkNfU1RESU9fVEhS RUFEX1NBRkVfU1RSRUFNUwogICAgIyAgICAgRGVmYXVsdFZhbHVlOiAgMCAh PSBDWUdQS0dfS0VSTkVMIAogICAgIyBvcHRpb24gQ1lHUEtHX1dBTExDTE9D S19FTVVMQVRFCiAgICAjICAgICBSZXF1aXJlczogQ1lHUEtHX0tFUk5FTAog ICAgIyBvcHRpb24gQ1lHSU1QX1dBTExDTE9DS19OT05FCiAgICAjICAgICBE ZWZhdWx0VmFsdWU6ICAhQ1lHUEtHX0tFUk5FTCAmJiAwID09IENZR0lOVF9X QUxMQ0xPQ0tfSFdfSU1QTEVNRU5UQVRJT05TIAogICAgIyBvcHRpb24gQ1lH UEtHX0lPX1dBTExDTE9DS19URVNUUwogICAgIyAgICAgQ2FsY3VsYXRlZDog IENZR1BLR19LRVJORUwgPyAidGVzdHMvd2FsbGNsb2NrIHRlc3RzL3dhbGxj bG9jazIiIDogIiIgCn07CgojID4KIyBLZXJuZWwgaW50ZXJydXB0IGhhbmRs aW5nCiMgZG9jOiByZWRpcmVjdC9pbnRlcnJ1cHRzLmh0bWwKIyBUaGUgbWFq b3JpdHkgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gaW50 ZXJydXB0CiMgaGFuZGxpbmcgYXJlIGluIHRoZSBIQUwgcGFja2FnZXMsIHNp bmNlIHVzdWFsbHkgdGhlIGNvZGUgaGFzCiMgdG8gYmUgcGxhdGZvcm0tc3Bl Y2lmaWMuIFRoZXJlIGFyZSBhIG51bWJlciBvZiBvcHRpb25zCiMgcHJvdmlk ZWQgd2l0aGluIHRoZSBrZXJuZWwgcmVsYXRlZCB0byBzbGlnaHRseSBoaWdo ZXItbGV2ZWwKIyBjb25jZXB0cywgZm9yIGV4YW1wbGUgRGVsYXllZCBTZXJ2 aWNlIFJvdXRpbmVzLgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0tFUk5FTF9J TlRFUlJVUFRTIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1 ZS4KCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0 ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHREJHX0tFUk5FTF9J TlNUUlVNRU5UX0lOVFIKICAgICMgICAgIEFjdGl2ZUlmOiBDWUdQS0dfS0VS TkVMX0lOVEVSUlVQVFMKfTsKCiMgPgojIFVzZSBkZWxheWVkIHNlcnZpY2Ug cm91dGluZXMgKERTUnMpCiMgSW4gZUNvcyB0aGUgcmVjb21tZW5kZWQgd2F5 IHRvIGhhbmRsZSBkZXZpY2UgaW50ZXJydXB0cyBpcyB0bwojIGRvIGEgbWlu aW11bSBhbW91bnQgb2Ygd29yayBpbnNpZGUgdGhlIGxvdyBsZXZlbCBpbnRl cnJ1cHQKIyBoYW5kbGVyIGl0c2VsZiwgYW5kIGluc3RlYWQgZG8gYXMgbXVj aCBhcyBwb3NzaWJsZSBpbiBhCiMgRGVsYXllZCBTZXJ2aWNlIFJvdXRpbmUg b3IgRFNSLiBJZiBhbiBhcHBsaWNhdGlvbiBkb2VzIG5vdAojIG1ha2UgdXNl IG9mIERTUnMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aGVuIGl0IGlzIHBv c3NpYmxlCiMgdG8gZGlzYWJsZSB0aGUgRFNSIHN1cHBvcnQgY29tcGxldGVs eSwgd2hpY2ggcmVkdWNlcyB0aGUKIyBvdmVyaGVhZHMgb2YgY29udGV4dCBz d2l0Y2hlcyBhbmQgaW50ZXJydXB0IGhhbmRsaW5nLiBOb3RlCiMgdGhhdCB0 aGUga2VybmVsIHJlYWwtdGltZSBjbG9jayBtYWtlcyB1c2Ugb2YgRFNScywg YXMgZG8gbWFueQojIG9mIHRoZSBkZXZpY2UgZHJpdmVycy4gCiMKY2RsX2Nv bXBvbmVudCBDWUdJTVBfS0VSTkVMX0lOVEVSUlVQVFNfRFNSUyB7CiAgICAj IEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVz IGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIG9wdGlvbiBDWUdW QVJfS0VSTkVMX0NPVU5URVJTX0NMT0NLCiAgICAjICAgICBSZXF1aXJlczog Q1lHSU1QX0tFUk5FTF9JTlRFUlJVUFRTX0RTUlMKfTsKCiMgPgojCmNkbF9p bnRlcmZhY2UgQ1lHSU5UX0tFUk5FTF9JTlRFUlJVUFRTX0RTUlMgewogICAg IyBJbXBsZW1lbnRlZCBieSBDWUdJTVBfS0VSTkVMX0lOVEVSUlVQVFNfRFNS U19MSVNULCBhY3RpdmUsIGVuYWJsZWQKICAgICMgSW1wbGVtZW50ZWQgYnkg Q1lHSU1QX0tFUk5FTF9JTlRFUlJVUFRTX0RTUlNfVEFCTEUsIGFjdGl2ZSwg ZGlzYWJsZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQg aGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6 IDEKICAgICMgUmVxdWlyZXM6IDEgPT0gQ1lHSU5UX0tFUk5FTF9JTlRFUlJV UFRTX0RTUlMKICAgICMgICAgIENZR0lOVF9LRVJORUxfSU5URVJSVVBUU19E U1JTID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBw cm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGlu dGVyZmFjZSBDWUdJTlRfS0VSTkVMX0lOVEVSUlVQVFNfRFNSUwogICAgIyAg ICAgUmVxdWlyZXM6IDEgPT0gQ1lHSU5UX0tFUk5FTF9JTlRFUlJVUFRTX0RT UlMKfTsKCiMgVXNlIGxpbmtlZCBsaXN0cyBmb3IgRFNScwojIFdoZW4gRFNS IHN1cHBvcnQgaXMgZW5hYmxlZCB0aGUga2VybmVsIG11c3Qga2VlcCB0cmFj ayBvZiBhbGwKIyB0aGUgRFNScyB0aGF0IGFyZSBwZW5kaW5nLiBUaGlzIGlu Zm9ybWF0aW9uIGNhbiBiZSBrZXB0IGluIGEKIyBmaXhlZC1zaXplIHRhYmxl IG9yIGluIGEgbGlua2VkIGxpc3QuIFRoZSBsaXN0IGltcGxlbWVudGF0aW9u CiMgcmVxdWlyZXMgdGhhdCB0aGUga2VybmVsIGRpc2FibGUgaW50ZXJydXB0 cyBmb3IgYSB2ZXJ5IHNob3J0CiMgcGVyaW9kIG9mIHRpbWUgb3V0c2lkZSBp bnRlcnJ1cHQgaGFuZGxlcnMsIGJ1dCB0aGVyZSBpcyBubwojIHBvc3NpYmls aXR5IG9mIGEgdGFibGUgb3ZlcmZsb3cgb2NjdXJyaW5nLgojCmNkbF9vcHRp b24gQ1lHSU1QX0tFUk5FTF9JTlRFUlJVUFRTX0RTUlNfTElTVCB7CiAgICAj IEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogMQp9OwoKIyBVc2UgZml4ZWQtc2l6ZSB0YWJsZSBmb3Ig RFNScwojIFdoZW4gRFNSIHN1cHBvcnQgaXMgZW5hYmxlZCB0aGUga2VybmVs IG11c3Qga2VlcCB0cmFjayBvZiBhbGwKIyB0aGUgRFNScyB0aGF0IGFyZSBw ZW5kaW5nLiBUaGlzIGluZm9ybWF0aW9uIGNhbiBiZSBrZXB0IGluIGEKIyBm aXhlZC1zaXplIHRhYmxlIG9yIGluIGEgbGlua2VkIGxpc3QuIFRoZSB0YWJs ZQojIGltcGxlbWVudGF0aW9uIGludm9sdmVzIGEgdmVyeSBzbWFsbCByaXNr IG9mIG92ZXJmbG93IGF0CiMgcnVuLXRpbWUgaWYgYSBnaXZlbiBpbnRlcnJ1 cHQgc291cmNlIGlzIGFibGUgdG8gaGF2ZSBtb3JlCiMgdGhhbiBvbmUgcGVu ZGluZyBEU1IuIEhvd2V2ZXIgaXQgaGFzIHRoZSBhZHZhbnRhZ2UgdGhhdAoj IHRoZSBrZXJuZWwgZG9lcyBub3QgbmVlZCB0byBkaXNhYmxlIGludGVycnVw dHMgb3V0c2lkZQojIGludGVycnVwdCBoYW5kbGVycy4KIwpjZGxfY29tcG9u ZW50IENZR0lNUF9LRVJORUxfSU5URVJSVVBUU19EU1JTX1RBQkxFIHsKICAg ICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAwCn07CgojID4KIyBOdW1iZXIgb2YgZW50cmllcyBp biBmaXhlZC1zaXplIERTUiB0YWJsZQojIFdoZW4gRFNSIHN1cHBvcnQgaXMg ZW5hYmxlZCB0aGUga2VybmVsIG11c3Qga2VlcCB0cmFjayBvZiBhbGwKIyB0 aGUgRFNScyB0aGF0IGFyZSBwZW5kaW5nLiBPbmUgYXBwcm9hY2ggaW52b2x2 ZXMgYSBmaXhlZC1zaXplCiMgdGFibGUsIHdoaWNoIGludm9sdmVzIGEgdmVy eSBzbWFsbCByaXNrIG9mIG92ZXJmbG93IGF0CiMgcnVuLXRpbWUuIEJ5IGlu Y3JlYXNpbmcgdGhlIHRhYmxlIHNpemUgaXQgaXMgcG9zc2libGUgdG8gcmVk dWNlCiMgdGhpcyByaXNrLgojCmNkbF9vcHRpb24gQ1lHTlVNX0tFUk5FTF9J TlRFUlJVUFRTX0RTUlNfVEFCTEVfU0laRSB7CiAgICAjIFRoaXMgb3B0aW9u IGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdJTVBfS0VSTkVM X0lOVEVSUlVQVFNfRFNSU19UQUJMRSBpcyBkaXNhYmxlZAoKICAgICMgRmxh dm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgMzIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMzIKICAgICMgTGVnYWwgdmFsdWVzOiAyIHRvIDEwMjQKfTsK CiMgPAojIENoYWluIGFsbCBpbnRlcnJ1cHRzIHRvZ2V0aGVyCiMgSW50ZXJy dXB0cyBjYW4gYmUgYXR0YWNoZWQgdG8gdmVjdG9ycyBlaXRoZXIgc2luZ2x5 LCBvciBiZQojIGNoYWluZWQgdG9nZXRoZXIuIFRoZSBsYXR0ZXIgaXMgbmVj ZXNzYXJ5IGlmIHRoZXJlIGlzIG5vIHdheQojIG9mIGRpc2NvdmVyaW5nIHdo aWNoIGRldmljZSBoYXMgaW50ZXJydXB0ZWQgd2l0aG91dAojIGluc3BlY3Rp bmcgdGhlIGRldmljZSBpdHNlbGYuIEl0IGNhbiBhbHNvIHJlZHVjZSB0aGUg YW1vdW50CiMgb2YgUkFNIG5lZWRlZCBmb3IgaW50ZXJydXB0IGRlY29kaW5n IHRhYmxlcyBhbmQgY29kZS4KIwpjZGxfb3B0aW9uIENZR0lNUF9LRVJORUxf SU5URVJSVVBUU19DSEFJTiB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVf c291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAogICAgIyBS ZXF1aXJlczogQ1lHSU1QX0hBTF9DT01NT05fSU5URVJSVVBUU19DSEFJTgog ICAgIyAgICAgQ1lHSU1QX0hBTF9DT01NT05fSU5URVJSVVBUU19DSEFJTiA9 PSAwCiAgICAjICAgLS0+IDAKfTsKCiMgPAojIDwKIyBFeGNlcHRpb24gaGFu ZGxpbmcKIyBkb2M6IHJlZGlyZWN0L2V4Y2VwdGlvbnMuaHRtbAojIEluIHRo ZSBjb250ZXh0IG9mIHRoZSBlQ29zIGtlcm5lbCBleGNlcHRpb25zIGFyZSB1 bmV4cGVjdGVkCiMgZXZlbnRzIGRldGVjdGVkIGJ5IHRoZSBoYXJkd2FyZSwg Zm9yIGV4YW1wbGUgYW4gYXR0ZW1wdCB0bwojIGV4ZWN1dGUgYW4gaWxsZWdh bCBpbnN0cnVjdGlvbi4gVGhlcmUgaXMgbm8gcmVsYXRpb24gd2l0aAojIG90 aGVyIGZvcm1zIG9mIGV4Y2VwdGlvbiwgZm9yIGV4YW1wbGUgdGhlIGNhdGNo IGFuZCB0aHJvdwojIGZhY2lsaXRpZXMgb2YgbGFuZ3VhZ2VzIGxpa2UgQysr LiBJdCBpcyBwb3NzaWJsZSB0byBkaXNhYmxlCiMgYWxsIHN1cHBvcnQgZm9y IGV4Y2VwdGlvbnMgYW5kIHRodXMgc2F2ZSBzb21lIG1lbW9yeS4KIwpjZGxf Y29tcG9uZW50IENZR1BLR19LRVJORUxfRVhDRVBUSU9OUyB7CiAgICAjIEZs YXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMQogICAgIyBSZXF1aXJlczogQ1lHUEtHX0hBTF9FWENFUFRJ T05TCiAgICAjICAgICBDWUdQS0dfSEFMX0VYQ0VQVElPTlMgPT0gMQogICAg IyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJl IGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR1BLR19I QUxfRVhDRVBUSU9OUwogICAgIyAgICAgUmVxdWlyZXM6IENZR1BLR19LRVJO RUxfRVhDRVBUSU9OUwogICAgIyBvcHRpb24gQ1lHUEtHX0hBTF9FWENFUFRJ T05TCiAgICAjICAgICBEZWZhdWx0VmFsdWU6IENZR1BLR19LRVJORUxfRVhD RVBUSU9OUwp9OwoKIyA+CiMgRGVjb2RlIGV4Y2VwdGlvbiB0eXBlcyBpbiBr ZXJuZWwKIyBPbiB0YXJnZXRzIHdoZXJlIHNldmVyYWwgZGlmZmVyZW50IHR5 cGVzIG9mIGV4Y2VwdGlvbiBhcmUKIyBwb3NzaWJsZSwgZm9yIGV4YW1wbGUg ZXhlY3V0aW5nIGFuIGlsbGVnYWwgaW5zdHJ1Y3Rpb24gYW5kCiMgZGl2aXNp b24gYnkgemVybywgaXQgaXMgcG9zc2libGUgZm9yIHRoZSBrZXJuZWwgdG8g ZG8gc29tZQojIGRlY29kaW5nIG9mIHRoZSBleGNlcHRpb24gdHlwZSBhbmQg ZGVsaXZlciB0aGUgZGlmZmVyZW50CiMgdHlwZXMgb2YgZXhjZXB0aW9uIHRv IGRpZmZlcmVudCBoYW5kbGVycyBpbiB0aGUgYXBwbGljYXRpb24KIyBjb2Rl LiBBbHRlcm5hdGl2ZWx5IHRoZSBrZXJuZWwgY2FuIHNpbXBseSBwYXNzIGFs bAojIGV4Y2VwdGlvbnMgZGlyZWN0bHkgdG8gYXBwbGljYXRpb24gY29kZSwg bGVhdmluZyB0aGUKIyBkZWNvZGluZyB0byBiZSBkb25lIGJ5IHRoZSBhcHBs aWNhdGlvbgojCmNkbF9vcHRpb24gQ1lHU0VNX0tFUk5FTF9FWENFUFRJT05T X0RFQ09ERSB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRl ZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAoKICAgICMgVGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAg ICAjIGNvbXBvbmVudCBDWUdTRU1fTElCQ19TSUdOQUxTX0hXRVhDRVBUSU9O UwogICAgIyAgICAgUmVxdWlyZXM6IENZR1NFTV9LRVJORUxfRVhDRVBUSU9O U19ERUNPREUKfTsKCiMgVXNlIGdsb2JhbCBleGNlcHRpb24gaGFuZGxlcnMK IyBJbiB0aGUgY29udGV4dCBvZiB0aGUgZUNvcyBrZXJuZWwgZXhjZXB0aW9u cyBhcmUKIyB1bmV4cGVjdGVkIGV2ZW50cyBkZXRlY3RlZCBieSB0aGUgaGFy ZHdhcmUsIGZvcgojIGV4YW1wbGUgYW4gYXR0ZW1wdCB0byBleGVjdXRlIGFu IGlsbGVnYWwKIyBpbnN0cnVjdGlvbi4gSWYgdGhlIGtlcm5lbCBpcyBjb25m aWd1cmVkCiMgdG8gc3VwcG9ydCBleGNlcHRpb25zIHRoZW4gdHdvIGltcGxl bWVudGF0aW9ucyBhcmUKIyBwb3NzaWJsZS4gVGhlIGRlZmF1bHQgaW1wbGVt ZW50YXRpb24gaW52b2x2ZXMgYSBzaW5nbGUgc2V0CiMgb2YgZXhjZXB0aW9u IGhhbmRsZXJzIHRoYXQgYXJlIGluIHVzZSBmb3IgdGhlIGVudGlyZQojIHN5 c3RlbS4gVGhlIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uIGFsbG93cyBk aWZmZXJlbnQKIyBleGNlcHRpb24gaGFuZGxlcnMgdG8gYmUgc3BlY2lmaWVk IGZvciBlYWNoIHRocmVhZC4KIwpjZGxfb3B0aW9uIENZR1NFTV9LRVJORUxf RVhDRVBUSU9OU19HTE9CQUwgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMg Tm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0 byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVl X3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKCiAgICAj IFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhp cyB2YWx1ZQogICAgIyBjb21wb25lbnQgQ1lHU0VNX0xJQkNfU0lHTkFMU19I V0VYQ0VQVElPTlMKICAgICMgICAgIFJlcXVpcmVzOiBDWUdTRU1fS0VSTkVM X0VYQ0VQVElPTlNfR0xPQkFMCn07CgojIDwKIyBLZXJuZWwgc2NoZWR1bGVy cwojIGRvYzogcmVkaXJlY3QvdGhlLXNjaGVkdWxlci5odG1sCiMgVGhlIGVD b3Mga2VybmVsIHByb3ZpZGVzIGEgY2hvaWNlIG9mIHNjaGVkdWxlcnMuIElu IGFkZGl0aW9uCiMgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIGNvbmZpZ3VyYXRp b24gb3B0aW9ucyB0byBjb250cm9sIHRoZQojIGRldGFpbGVkIGJlaGF2aW91 ciBvZiB0aGVzZSBzY2hlZHVsZXJzLgojCmNkbF9jb21wb25lbnQgQ1lHUEtH X0tFUk5FTF9TQ0hFRCB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQg dmFsdWUuCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFm ZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR0RCR19LRVJO RUxfSU5TVFJVTUVOVF9TQ0hFRAogICAgIyAgICAgQWN0aXZlSWY6IENZR1BL R19LRVJORUxfU0NIRUQKfTsKCiMgPgojIE51bWJlciBvZiBzY2hlZHVsZXJz IGluIHRoaXMgY29uZmlndXJhdGlvbgojCmNkbF9pbnRlcmZhY2UgQ1lHSU5U X0tFUk5FTF9TQ0hFRFVMRVIgewogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdT RU1fS0VSTkVMX1NDSEVEX01MUVVFVUUsIGFjdGl2ZSwgZW5hYmxlZAogICAg IyBJbXBsZW1lbnRlZCBieSBDWUdTRU1fS0VSTkVMX1NDSEVEX0JJVE1BUCwg YWN0aXZlLCBkaXNhYmxlZAogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBt b2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVu dF92YWx1ZTogMQogICAgIyBSZXF1aXJlczogMSA9PSBDWUdJTlRfS0VSTkVM X1NDSEVEVUxFUgogICAgIyAgICAgQ1lHSU5UX0tFUk5FTF9TQ0hFRFVMRVIg PT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3Bl cnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJm YWNlIENZR0lOVF9LRVJORUxfU0NIRURVTEVSCiAgICAjICAgICBSZXF1aXJl czogMSA9PSBDWUdJTlRfS0VSTkVMX1NDSEVEVUxFUgp9OwoKIyBOb24temVy byBpZiB0aGUgYWN0aXZlIHNjaGVkdWxlIG9ubHkgaGFzIHVuaXF1ZSBwcmlv cml0aWVzCiMgTm90IGFsbCBzY2hlZHVsZXJzIGFsbG93IG11dGlwbGUgdGhy ZWFkcyB0byB1c2UgdGhlIHNhbWUKIyBwcmlvcml0eS4gVGhhdCBwcm9wZXJ0 eSBpcyBzaWduYWxsZWQgdmlhIHRoaXMgb3B0aW9uLCBhbGxvd2luZwojIHNj aGVkdWxlciBhbmQgdGVzdHMgdG8gYmVoYXZlIGFjY29yZGluZ2x5LgojCmNk bF9pbnRlcmZhY2UgQ1lHSU5UX0tFUk5FTF9TQ0hFRFVMRVJfVU5JUVVFX1BS SU9SSVRJRVMgewogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdTRU1fS0VSTkVM X1NDSEVEX0JJVE1BUCwgYWN0aXZlLCBkaXNhYmxlZAogICAgIyBUaGlzIHZh bHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgQ3VycmVudF92YWx1ZTogMAoKICAgICMgVGhlIGZvbGxvd2lu ZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAj IGNvbXBvbmVudCBDWUdTRU1fS0VSTkVMX1NZTkNIX01VVEVYX1BSSU9SSVRZ X0lOVkVSU0lPTl9QUk9UT0NPTAogICAgIyAgICAgUmVxdWlyZXM6ICBDWUdJ TlRfS0VSTkVMX1NDSEVEVUxFUl9VTklRVUVfUFJJT1JJVElFUyA9PSAwIAp9 OwoKIyBNdWx0aS1sZXZlbCBxdWV1ZSBzY2hlZHVsZXIKIyBUaGUgbXVsdGkt bGV2ZWwgcXVldWUgc2NoZWR1bGVyIHN1cHBvcnRzIG11bHRpcGxlIHByaW9y aXR5CiMgbGV2ZWxzIGFuZCBtdWx0aXBsZSB0aHJlYWRzIGF0IGVhY2ggcHJp b3JpdHkgbGV2ZWwuCiMgUHJlZW1wdGlvbiBiZXR3ZWVuIHByaW9yaXR5IGxl dmVscyBpcyBhdXRvbWF0aWMuIFRpbWVzbGljaW5nCiMgd2l0aGluIGEgZ2l2 ZW4gcHJpb3JpdHkgbGV2ZWwgaXMgY29udHJvbGxlZCBieSBhIHNlcGFyYXRl CiMgY29uZmlndXJhdGlvbiBvcHRpb24uCiMKY2RsX29wdGlvbiBDWUdTRU1f S0VSTkVMX1NDSEVEX01MUVVFVUUgewogICAgIyBGbGF2b3I6IGJvb2wKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZh bHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKCiAg ICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkg dGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHUFJJX0tFUk5FTF9TQ0hFRF9J TVBMX0hYWAogICAgIyAgICAgQ2FsY3VsYXRlZDogICBDWUdTRU1fS0VSTkVM X1NDSEVEX0JJVE1BUCAgPyAiPGN5Zy9rZXJuZWwvYml0bWFwLmh4eD4iICA6 IENZR1NFTV9LRVJORUxfU0NIRURfTUxRVUVVRSA/ICI8Y3lnL2tlcm5lbC9t bHF1ZXVlLmh4eD4iIDogQ1lHU0VNX0tFUk5FTF9TQ0hFRF9MT1RURVJZID8g IjxjeWcva2VybmVsL2xvdHRlcnkuaHh4PiIgOiAiISEhLS0gQ29uZmlndXJh dGlvbiBicm9rZW4gLSBubyBzY2hlZHVsZXIgc2VsZWN0ZWQgLS0hISEiCiAg ICAjIGNvbXBvbmVudCBDWUdTRU1fS0VSTkVMX1NZTkNIX01VVEVYX1BSSU9S SVRZX0lOVkVSU0lPTl9QUk9UT0NPTAogICAgIyAgICAgQWN0aXZlSWY6ICBD WUdTRU1fS0VSTkVMX1NDSEVEX01MUVVFVUUgCn07CgojIEJpdG1hcCBzY2hl ZHVsZXIKIyBUaGUgYml0bWFwIHNjaGVkdWxlciBzdXBwb3J0cyBtdWx0aXBs ZSBwcmlvcml0eSBsZXZlbHMgYnV0CiMgb25seSBvbmUgdGhyZWFkIGNhbiBl eGlzdCBhdCBlYWNoIHByaW9yaXR5IGxldmVsLiBUaGlzIG1lYW5zCiMgdGhh dCBzY2hlZHVsaW5nIGRlY2lzaW9ucyBhcmUgdmVyeSBzaW1wbGUgYW5kIGhl bmNlIHRoZQojIHNjaGVkdWxlciBpcyBlZmZpY2llbnQuIFByZWVtcHRpb24g YmV0d2VlbiBwcmlvcml0eSBsZXZlbHMgaXMKIyBhdXRvbWF0aWMuIFRpbWVz bGljaW5nIHdpdGhpbiBhIGdpdmVuIHByaW9yaXR5IGxldmVsIGlzCiMgaXJy ZWxldmFudCBzaW5jZSB0aGVyZSBjYW4gYmUgb25seSBvbmUgdGhyZWFkIGF0 IGVhY2gKIyBwcmlvcml0eSBsZXZlbC4KIwpjZGxfb3B0aW9uIENZR1NFTV9L RVJORUxfU0NIRURfQklUTUFQIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAj IE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUg dG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1 ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCgogICAg IyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRo aXMgdmFsdWUKICAgICMgb3B0aW9uIENZR1BSSV9LRVJORUxfU0NIRURfSU1Q TF9IWFgKICAgICMgICAgIENhbGN1bGF0ZWQ6ICAgQ1lHU0VNX0tFUk5FTF9T Q0hFRF9CSVRNQVAgID8gIjxjeWcva2VybmVsL2JpdG1hcC5oeHg+IiAgOiBD WUdTRU1fS0VSTkVMX1NDSEVEX01MUVVFVUUgPyAiPGN5Zy9rZXJuZWwvbWxx dWV1ZS5oeHg+IiA6IENZR1NFTV9LRVJORUxfU0NIRURfTE9UVEVSWSA/ICI8 Y3lnL2tlcm5lbC9sb3R0ZXJ5Lmh4eD4iIDogIiEhIS0tIENvbmZpZ3VyYXRp b24gYnJva2VuIC0gbm8gc2NoZWR1bGVyIHNlbGVjdGVkIC0tISEhIgogICAg IyBjb21wb25lbnQgQ1lHU0VNX0tFUk5FTF9TQ0hFRF9USU1FU0xJQ0UKICAg ICMgICAgIFJlcXVpcmVzOiAhQ1lHU0VNX0tFUk5FTF9TQ0hFRF9CSVRNQVAK fTsKCiMgU2NoZWR1bGVyIGhlYWRlciBmaWxlCiMgVGhpcyBvcHRpb24gc2V0 cyBhIHByZXByb2Nlc3NvciBzeW1ib2wgd2hpY2ggbmFtZXMgdGhlIGhlYWRl cgojIGZpbGUgZm9yIHRoZSBzZWxlY3RlZCBzY2hlZHVsZXIuICBJdCBpcyB1 c2VkIGludGVybmFsbHkgYnkgdGhlCiMgY29tbW9uIHNjaGVkdWxlciBjb2Rl IHRvIGluY2x1ZGUgdGhlIGNvcnJlY3QgaGVhZGVyIGZpbGUuCiMKY2RsX29w dGlvbiBDWUdQUklfS0VSTkVMX1NDSEVEX0lNUExfSFhYIHsKICAgICMgQ2Fs Y3VsYXRlZCB2YWx1ZTogICBDWUdTRU1fS0VSTkVMX1NDSEVEX0JJVE1BUCAg PyAiPGN5Zy9rZXJuZWwvYml0bWFwLmh4eD4iICA6IENZR1NFTV9LRVJORUxf U0NIRURfTUxRVUVVRSA/ICI8Y3lnL2tlcm5lbC9tbHF1ZXVlLmh4eD4iIDog Q1lHU0VNX0tFUk5FTF9TQ0hFRF9MT1RURVJZID8gIjxjeWcva2VybmVsL2xv dHRlcnkuaHh4PiIgOiAiISEhLS0gQ29uZmlndXJhdGlvbiBicm9rZW4gLSBu byBzY2hlZHVsZXIgc2VsZWN0ZWQgLS0hISEiCiAgICAjICAgICBDWUdTRU1f S0VSTkVMX1NDSEVEX0JJVE1BUCA9PSAwCiAgICAjICAgICBDWUdTRU1fS0VS TkVMX1NDSEVEX01MUVVFVUUgPT0gMQogICAgIyAgICAgQ1lHU0VNX0tFUk5F TF9TQ0hFRF9MT1RURVJZICh1bmtub3duKSA9PSAwCiAgICAjIEZsYXZvcjog ZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiA8Y3lnL2tlcm5lbC9tbHF1ZXVl Lmh4eD4KfTsKCiMgTnVtYmVyIG9mIHByaW9yaXR5IGxldmVscwojIFRoaXMg b3B0aW9uIGNvbnRyb2xzIHRoZSBudW1iZXIgb2YgcHJpb3JpdHkgbGV2ZWxz IHRoYXQgYXJlCiMgYXZhaWxhYmxlLiBGb3Igc29tZSB0eXBlcyBvZiBzY2hl ZHVsZXIgaW5jbHVkaW5nIHRoZSBiaXRtYXAKIyBzY2hlZHVsZXIgdGhpcyBt YXkgaW1wb3NlIGFuIHVwcGVyIGJvdW5kIG9uIHRoZSBudW1iZXIgb2YKIyB0 aHJlYWRzIGluIHRoZSBzeXN0ZW0uIEZvciBvdGhlciBzY2hlZHVsZXJzIHN1 Y2ggYXMgdGhlCiMgbWxxdWV1ZSBzY2hlZHVsZXIgdGhlIG51bWJlciBvZiB0 aHJlYWRzIGlzIGluZGVwZW5kZW50IGZyb20KIyB0aGUgbnVtYmVyIG9mIHBy aW9yaXR5IGxldmVscy4gTm90ZSB0aGF0IHRoZSBsb3dlc3QgcHJpb3JpdHkK IyBsZXZlbCBpcyBub3JtYWxseSB1c2VkIG9ubHkgYnkgdGhlIGlkbGUgdGhy ZWFkLCBhbHRob3VnaAojIGFwcGxpY2F0aW9uIHRocmVhZHMgY2FuIHJ1biBh dCB0aGlzIHByaW9yaXR5IGlmIG5lY2Vzc2FyeS4KIwpjZGxfY29tcG9uZW50 IENZR05VTV9LRVJORUxfU0NIRURfUFJJT1JJVElFUyB7CiAgICAjIEZsYXZv cjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDMyCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDMyCiAgICAjIExlZ2FsIHZhbHVlczogMSB0byAzMgoKICAgICMg VGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlz IHZhbHVlCiAgICAjIG9wdGlvbiBDWUdJTVBfSURMRV9USFJFQURfWUlFTEQK ICAgICMgICAgIEFjdGl2ZUlmOiAoQ1lHTlVNX0tFUk5FTF9TQ0hFRF9QUklP UklUSUVTID09IDEpCiAgICAjIG9wdGlvbiBDWUdTRU1fS0VSTkVMX1NZTkNI X01VVEVYX1BSSU9SSVRZX0lOVkVSU0lPTl9QUk9UT0NPTF9ERUZBVUxUX1BS SU9SSVRZCiAgICAjICAgICBMZWdhbFZhbHVlczogMCB0byAgQ1lHTlVNX0tF Uk5FTF9TQ0hFRF9QUklPUklUSUVTIC0gMSAKfTsKCiMgPgojIEJpdG1hcCBz aXplCiMgVGhpcyBvcHRpb24gYXV0b21hdGljYWxseSBkZWZpbmVzIHRoZSBz aXplIG9mIGJpdG1hcAojIHVzZWQgdG8gdHJhY2sgb2NjdXBpZWQgcHJpb3Jp dHkgbGV2ZWxzLgojCmNkbF9vcHRpb24gQ1lHTlVNX0tFUk5FTF9TQ0hFRF9C SVRNQVBfU0laRSB7CiAgICAjIENhbGN1bGF0ZWQgdmFsdWU6ICJDWUdOVU1f S0VSTkVMX1NDSEVEX1BSSU9SSVRJRVMiCiAgICAjIEZsYXZvcjogZGF0YQog ICAgIyBDdXJyZW50X3ZhbHVlOiBDWUdOVU1fS0VSTkVMX1NDSEVEX1BSSU9S SVRJRVMKfTsKCiMgRGVxdWV1ZSBvbGRlc3QgdGhyZWFkcyBmaXJzdAojIFdp dGggdGhpcyBvcHRpb24gZW5hYmxlZCwgdGhyZWFkcyBxdWV1ZWQgaW4gYSB0 aHJlYWQgcXVldWUKIyB3aWxsIGJlIGRlcXVldWVkIGluIHByaW9yaXR5IG9y ZGVyLCByYXRoZXIgdGhhbiBsYXN0IGluLAojIGZpcnN0IG91dCAoTElGTyku IFRocmVhZHMgb2YgZXF1YWwgcHJpb3JpdHkgYXJlIGRlcXVldWVkCiMgb2xk ZXN0IGZpcnN0LiBUaGUgb25seSBleGNlcHRpb24gaXMgdGhlIHNjaGVkdWxl ciBydW4gCiMgcXVldWVzIHdoZXJlIG9yZGVyIGlzIGxlc3MgaW1wb3J0YW50 IGFzIGVhY2ggaXMgYWxyZWFkeQojIHNvcnRlZCBieSBwcmlvcml0eS4gTm90 ZSB0aGF0IHRoaXMgbWFrZXMgdGhlIHRocmVhZCBxdWV1ZWluZwojIGxlc3Mg ZGV0ZXJtaW5pc3RpYy4KIwpjZGxfb3B0aW9uIENZR0lNUF9LRVJORUxfU0NI RURfU09SVEVEX1FVRVVFUyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVf c291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAp9OwoKIyA8 CiMgU2NoZWR1bGVyIHRpbWVzbGljaW5nCiMgU29tZSBzY2hlZHVsZXJzIGlu Y2x1ZGluZyB0aGUgbWxxdWV1ZSBzY2hlZHVsZXIgc3VwcG9ydAojIHRpbWVz bGljaW5nLiBUaGlzIG1lYW5zIHRoYXQgdGhlIGtlcm5lbCB3aWxsIGNoZWNr IHJlZ3VsYXJseQojIHdoZXRoZXIgb3Igbm90IHRoZXJlIGlzIGFub3RoZXIg cnVubmFibGUgdGhyZWFkIHdpdGggdGhlCiMgc2FtZSBwcmlvcml0eSwgYW5k IGlmIHRoZXJlIGlzIHN1Y2ggYSB0aHJlYWQgdGhlcmUgd2lsbCBiZQojIGFu IGF1dG9tYXRpYyBjb250ZXh0IHN3aXRjaC4gTm90IGFsbCBhcHBsaWNhdGlv bnMgcmVxdWlyZQojIHRpbWVzbGljaW5nLCBmb3IgZXhhbXBsZSBiZWNhdXNl IGV2ZXJ5IHRocmVhZCBwZXJmb3JtcyBhCiMgYmxvY2tpbmcgb3BlcmF0aW9u IHJlZ3VsYXJseS4gRm9yIHRoZXNlIGFwcGxpY2F0aW9ucyBpdCBpcwojIHBv c3NpYmxlIHRvIGRpc2FibGUgdGltZXNsaWNpbmcsIHdoaWNoIHJlZHVjZXMg dGhlIG92ZXJoZWFkcwojIGFzc29jaWF0ZWQgd2l0aCB0aW1lciBpbnRlcnJ1 cHRzLgojCmNkbF9jb21wb25lbnQgQ1lHU0VNX0tFUk5FTF9TQ0hFRF9USU1F U0xJQ0UgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6ICFD WUdTRU1fS0VSTkVMX1NDSEVEX0JJVE1BUAogICAgIyAgICAgQ1lHU0VNX0tF Uk5FTF9TQ0hFRF9CSVRNQVAgPT0gMAogICAgIyAgIC0tPiAxCiAgICAjIFJl cXVpcmVzOiBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NMT0NLCiAgICAjICAg ICBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NMT0NLID09IDEKICAgICMgICAt LT4gMQp9OwoKIyA+CiMgTnVtYmVyIG9mIGNsb2NrIHRpY2tzIGJldHdlZW4g dGltZXNsaWNlcwojIEFzc3VtaW5nIHRpbWVzbGljaW5nIGlzIGVuYWJsZWQs IGhvdyBmcmVxdWVudGx5IHNob3VsZCBpdAojIHRha2UgcGxhY2U/IFRoZSB2 YWx1ZSBvZiB0aGlzIG9wdGlvbiBjb3JyZXNwb25kcyB0byB0aGUKIyBudW1i ZXIgb2YgY2xvY2sgdGlja3MgdGhhdCBzaG91bGQgb2NjdXIgYmVmb3JlIGEg dGltZXNsaWNlCiMgdGFrZXMgcGxhY2UsIHNvIGluY3JlYXNpbmcgdGhlIHZh bHVlIHJlZHVjZXMgdGhlIGZyZXF1ZW5jeQojIG9mIHRpbWVzbGljZXMuCiMK Y2RsX29wdGlvbiBDWUdOVU1fS0VSTkVMX1NDSEVEX1RJTUVTTElDRV9USUNL UyB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDUKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogNQogICAgIyBMZWdhbCB2YWx1ZXM6IDEg dG8gNjU1MzUKfTsKCiMgU3VwcG9ydCBydW50aW1lIGVuYWJsZSBvZiB0aW1l c2xpY2UgcGVyLXRocmVhZAojIFRoaXMgb3B0aW9uIG1ha2VzIHRpbXNsaWNp bmcgYSBwZXItdGhyZWFkIHJ1bnRpbWUKIyBvcHRpb24uIFdoZW4gZW5hYmxl ZCwgdGhyZWFkcyBtYXkgaGF2ZSB0aW1lc2xpY2luZwojIHR1cm5lZCBvbiBv ciBvZmYgZHluYW1pY2FsbHkuIFRoaXMgaXMgZ2VuZXJhbGx5IHVzZWQKIyBi eSBoaWdoZXIgbGV2ZWwgQVBJcyAoc3VjaCBhcyBQT1NJWCkgdG8gaW1wbGVt ZW50CiMgZGlmZmVyaW5nIHNjaGVkdWxpbmcgcG9saWNpZXMuCiMKY2RsX29w dGlvbiBDWUdTRU1fS0VSTkVMX1NDSEVEX1RJTUVTTElDRV9FTkFCTEUgewog ICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAj IERlZmF1bHQgdmFsdWU6IGZhbHNlCiAgICAjICAgICBmYWxzZSAodW5rbm93 bikgPT0gMAogICAgIyAgIC0tPiAwCn07CgojIDwKIyBFbmFibGUgQVNSIHN1 cHBvcnQKIyBUaGlzIGNvbXBvbmVudCBjb250cm9scyBzdXBwb3J0IGZvciBB c3luY2hyb25vdXMgU2VydmljZQojIFJvdXRpbmVzIChBU1JzKS4gVGhpcyBp cyBhIGZ1bmN0aW9uIHRoYXQgbWF5IGJlIGNhbGxlZAojIGZyb20gdGhlIHNj aGVkdWxlciB3aGVuIGl0IGhhcyBqdXN0IGV4aXRlZCB0aGUgc2NoZWR1bGVy CiMgbG9jay4gVGhpcyBpcyBwcmltYXJpbHkgZm9yIHVzZSBieSBBUEkgY29t cGF0aWJpbGl0eSBsYXllcnMuCiMKY2RsX2NvbXBvbmVudCBDWUdTRU1fS0VS TkVMX1NDSEVEX0FTUl9TVVBQT1JUIHsKICAgICMgRmxhdm9yOiBib29sCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiBmYWxz ZQogICAgIyAgICAgZmFsc2UgKHVua25vd24pID09IDAKICAgICMgICAtLT4g MAp9OwoKIyA+CiMgTWFrZSBBU1IgZnVuY3Rpb24gZ2xvYmFsCiMgVGhpcyBv cHRpb24gY29udHJvbHMgd2hldGhlciB0aGUgQVNSIGZ1bmN0aW9uIGlzIHNo YXJlZCBieQojIGFsbCB0aHJlYWRzLCBvciB3aGV0aGVyIGVhY2ggdGhyZWFk IG1heSBoYXZlIGl0cyBvd24gQVNSCiMgZnVuY3Rpb24uCiMKY2RsX29wdGlv biBDWUdTRU1fS0VSTkVMX1NDSEVEX0FTUl9HTE9CQUwgewogICAgIyBUaGlz IG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHU0VN X0tFUk5FTF9TQ0hFRF9BU1JfU1VQUE9SVCBpcyBkaXNhYmxlZAoKICAgICMg Rmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiB0cnVlCiAgICAjICAgICB0cnVlICh1bmtub3duKSA9PSAw CiAgICAjICAgLS0+IDAKfTsKCiMgTWFrZSBBU1IgZGF0YSBnbG9iYWwKIyBU aGlzIG9wdGlvbiBjb250cm9scyB3aGV0aGVyIHRoZSBBU1IgZGF0YSBpcyBz aGFyZWQgYnkKIyBhbGwgdGhyZWFkcywgb3Igd2hldGhlciBlYWNoIHRocmVh ZCBtYXkgaGF2ZSBpdHMgb3duIEFTUgojIGRhdGEuIFRoaXMgaXMgaW5kZXBl bmRlbnQgb2YgdGhlIHByZXZpb3VzIG9wdGlvbiBiZWNhdXNlCiMgaXQgbWF5 IGJlIHVzZWZ1bCB0byBwYXNzIHBlci10aHJlYWQgZGF0YSB0byBhIHNoYXJl ZCBBU1IKIyBmdW5jdGlvbi4KIwpjZGxfb3B0aW9uIENZR1NFTV9LRVJORUxf U0NIRURfQVNSX0RBVEFfR0xPQkFMIHsKICAgICMgVGhpcyBvcHRpb24gaXMg bm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1NFTV9LRVJORUxfU0NI RURfQVNSX1NVUFBPUlQgaXMgZGlzYWJsZWQKCiAgICAjIEZsYXZvcjogYm9v bAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAg ICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTog dHJ1ZQogICAgIyAgICAgdHJ1ZSAodW5rbm93bikgPT0gMAogICAgIyAgIC0t PiAwCn07CgojIDwKIyA8CiMgQ291bnRlcnMgYW5kIGNsb2NrcwojIGRvYzog cmVkaXJlY3QvY291bnRlcnMtY2xvY2tzLWFuZC1hbGFybXMuaHRtbAojIFRo ZSBjb3VudGVyIG9iamVjdHMgcHJvdmlkZWQgYnkgdGhlIGtlcm5lbCBwcm92 aWRlIGFuCiMgYWJzdHJhY3Rpb24gb2YgdGhlIGNsb2NrIGZhY2lsaXR5IHRo YXQgaXMgZ2VuZXJhbGx5IHByb3ZpZGVkLgojIEFwcGxpY2F0aW9uIGNvZGUg Y2FuIGFzc29jaWF0ZSBhbGFybXMgd2l0aCBjb3VudGVycywgd2hlcmUgYW4K IyBhbGFybSBpcyBpZGVudGlmaWVkIGJ5IHRoZSBudW1iZXIgb2YgdGlja3Mg dW50aWwgaXQgdHJpZ2dlcnMsCiMgdGhlIGFjdGlvbiB0byBiZSB0YWtlbiBv biB0cmlnZ2VyaW5nLCBhbmQgd2hldGhlciBvciBub3QgdGhlCiMgYWxhcm0g c2hvdWxkIGJlIHJlcGVhdGVkLgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0tF Uk5FTF9DT1VOVEVSUyB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQg dmFsdWUuCn07CgojID4KIyBQcm92aWRlIHJlYWwtdGltZSBjbG9jawojIE9u IGFsbCBjdXJyZW50IHRhcmdldCBzeXN0ZW1zIHRoZSBrZXJuZWwgY2FuIHBy b3ZpZGUgYQojIHJlYWwtdGltZSBjbG9jay4gVGhpcyBjbG9jayBzZXJ2ZXMg dHdvIHB1cnBvc2VzLiBGaXJzdCBpdCBpcwojIG5lY2Vzc2FyeSB0byBzdXBw b3J0IGNsb2NrIGFuZCBhbGFybSByZWxhdGVkIGZ1bmN0aW9ucy4KIyBTZWNv bmQgaXQgaXMgbmVlZGVkIHRvIGltcGxlbWVudCB0aW1lc2xpY2luZyBpbiBz b21lIG9mIHRoZQojIHNjaGVkdWxlcnMgaW5jbHVkaW5nIHRoZSBtbHF1ZXVl IHNjaGVkdWxlci4gSWYgdGhlCiMgYXBwbGljYXRpb24gZG9lcyBub3QgcmVx dWlyZSBhbnkgb2YgdGhlc2UgZmFjaWxpdGllcyB0aGVuIGl0CiMgaXMgcG9z c2libGUgdG8gZGlzYWJsZSB0aGUgcmVhbCB0aW1lIGNsb2NrIHN1cHBvcnQK IyBjb21wbGV0ZWx5LgojCmNkbF9vcHRpb24gQ1lHVkFSX0tFUk5FTF9DT1VO VEVSU19DTE9DSyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2Vy IHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3Zp ZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNl IGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQogICAgIyBSZXF1aXJl czogQ1lHSU1QX0tFUk5FTF9JTlRFUlJVUFRTX0RTUlMKICAgICMgICAgIENZ R0lNUF9LRVJORUxfSU5URVJSVVBUU19EU1JTID09IDEKICAgICMgICAtLT4g MQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3Rl ZCBieSB0aGlzIHZhbHVlCiAgICAjIGNvbXBvbmVudCBDWUdTRU1fS0VSTkVM X1NDSEVEX1RJTUVTTElDRQogICAgIyAgICAgUmVxdWlyZXM6IENZR1ZBUl9L RVJORUxfQ09VTlRFUlNfQ0xPQ0sKICAgICMgY29tcG9uZW50IENZR1BLR19L RVJORUxfQ09VTlRFUlNfQ0xPQ0tfT1ZFUlJJREUKICAgICMgICAgIFJlcXVp cmVzOiBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NMT0NLCiAgICAjIG9wdGlv biBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NMT0NLX0xBVEVOQ1kKICAgICMg ICAgIFJlcXVpcmVzOiBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NMT0NLCiAg ICAjIG9wdGlvbiBDWUdGVU5fS0VSTkVMX1RIUkVBRFNfVElNRVIKICAgICMg ICAgIFJlcXVpcmVzOiBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NMT0NLCiAg ICAjIG9wdGlvbiBDWUdEQkdfS0VSTkVMX0lOU1RSVU1FTlRfQ0xPQ0sKICAg ICMgICAgIEFjdGl2ZUlmOiBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NMT0NL CiAgICAjIG9wdGlvbiBDWUdEQkdfS0VSTkVMX0lOU1RSVU1FTlRfQUxBUk0K ICAgICMgICAgIEFjdGl2ZUlmOiBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NM T0NLCiAgICAjIG9wdGlvbiBDWUdTRU1fTElCQ19USU1FX0NMT0NLX1dPUktJ TkcKICAgICMgICAgIFJlcXVpcmVzOiBDWUdWQVJfS0VSTkVMX0NPVU5URVJT X0NMT0NLCn07CgojIE92ZXJyaWRlIGRlZmF1bHQgY2xvY2sgc2V0dGluZ3MK IyBUaGUga2VybmVsIGhhcyBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgY2xv Y2sgaW50ZXJydXB0CiMgZnJlcXVlbmN5LiBUaGVzZSBzZXR0aW5ncyB3aWxs IHZhcnkgZnJvbSBwbGF0Zm9ybSB0bwojIHBsYXRmb3JtLCBidXQgdHlwaWNh bGx5IHRoZXJlIHdpbGwgYmUgYSAxMDAgY2xvY2sgaW50ZXJydXB0cwojIGV2 ZXJ5IHNlY29uZC4gSXQgaXMgcG9zc2libGUgdG8gY2hhbmdlIHRoaXMgZnJl cXVlbmN5LCBidXQKIyBpdCByZXF1aXJlcyBzb21lIGtub3dsZWRnZSBvZiB0 aGUgdGFyZ2V0IGhhcmR3YXJlLgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0tF Uk5FTF9DT1VOVEVSU19DTE9DS19PVkVSUklERSB7CiAgICAjIEZsYXZvcjog Ym9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMAogICAgIyBSZXF1aXJlczogQ1lHVkFSX0tFUk5FTF9DT1VOVEVSU19D TE9DSwogICAgIyAgICAgQ1lHVkFSX0tFUk5FTF9DT1VOVEVSU19DTE9DSyA9 PSAxCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVy dGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24g Q1lHTlVNX0tFUk5FTF9DT1VOVEVSU19SVENfUkVTT0xVVElPTgogICAgIyAg ICAgQ2FsY3VsYXRlZDogIENZR1BLR19LRVJORUxfQ09VTlRFUlNfQ0xPQ0tf T1ZFUlJJREUgPyAgICAgICAgICAgICAgICAgIntDWUdOVU1fS0VSTkVMX0NP VU5URVJTX0NMT0NLX09WRVJSSURFX05VTUVSQVRPUiwgICAgIENZR05VTV9L RVJORUxfQ09VTlRFUlNfQ0xPQ0tfT1ZFUlJJREVfREVOT01JTkFUT1J9IiAg IDogIntDWUdOVU1fSEFMX1JUQ19OVU1FUkFUT1IsIENZR05VTV9IQUxfUlRD X0RFTk9NSU5BVE9SfSIKICAgICMgb3B0aW9uIENZR05VTV9LRVJORUxfQ09V TlRFUlNfUlRDX1BFUklPRAogICAgIyAgICAgQ2FsY3VsYXRlZDogIENZR1BL R19LRVJORUxfQ09VTlRFUlNfQ0xPQ0tfT1ZFUlJJREUgPyAgICAgICAgICAg ICAgICAgIkNZR05VTV9LRVJORUxfQ09VTlRFUlNfQ0xPQ0tfT1ZFUlJJREVf UEVSSU9EIiAgICAgICAgIDogIkNZR05VTV9IQUxfUlRDX1BFUklPRCIKfTsK CiMgPgojIENsb2NrIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIHZhbHVlCiMg RHVyaW5nIHN5c3RlbSBpbml0aWFsaXphdGlvbiB0aGlzIHZhbHVlIGlzIHVz ZWQgdG8gaW5pdGlhbGl6ZQojIHRoZSBjbG9jayBoYXJkd2FyZS4gVGhlIGV4 YWN0IG1lYW5pbmcgb2YgdGhlIHZhbHVlIGFuZCB0aGUKIyByYW5nZSBvZiBs ZWdhbCB2YWx1ZXMgdGhlcmVmb3JlIGRlcGVuZHMgb24gdGhlIHRhcmdldCBo YXJkd2FyZSwKIyBhbmQgdGhlIGhhcmR3YXJlIGRvY3VtZW50YXRpb24gc2hv dWxkIGJlIGNvbnN1bHRlZCBmb3IgZnVydGhlcgojIGRldGFpbHMuIEluIGFk ZGl0aW9uIHRoZSBjbG9jayByZXNvbHV0aW9uIG51bWVyYXRvciBhbmQKIyBk ZW5vbWluYXRvciB2YWx1ZXMgc2hvdWxkIGJlIHVwZGF0ZWQuIFR5cGljYWwg dmFsdWVzIGZvcgojIHRoaXMgb3B0aW9uIHdvdWxkIGJlIDE1MDAwMCBvbiB0 aGUgTU4xMDMwMCBzdGRldmFsMSBib2FyZCwKIyAxNTYyNSBvbiB0aGUgdHgz OSBqbXIzOTA0IGJvYXJkLCBhbmQgMjA4MzMgb24gdGhlIHBvd2VycGMKIyBj b2dlbnQgYm9hcmQuCiMKY2RsX29wdGlvbiBDWUdOVU1fS0VSTkVMX0NPVU5U RVJTX0NMT0NLX09WRVJSSURFX1BFUklPRCB7CiAgICAjIFRoaXMgb3B0aW9u IGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfS0VSTkVM X0NPVU5URVJTX0NMT0NLX09WRVJSSURFIGlzIGRpc2FibGVkCgogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSA5OTk5CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDk5OTkKICAgICMgTGVnYWwgdmFsdWVzOiAxIHRvIDB4 N2ZmZmZmZmYKfTsKCiMgQ2xvY2sgcmVzb2x1dGlvbiBudW1lcmF0b3IKIyBJ ZiBhIG5vbi1kZWZhdWx0IGNsb2NrIGludGVycnVwdCBmcmVxdWVuY3kgaXMg dXNlZCB0aGVuIGl0CiMgaXMgbmVjZXNzYXJ5IHRvIHNwZWNpZnkgdGhlIGNs b2NrIHJlc29sdXRpb24gZXhwbGljaXRseS4KIyBUaGlzIHJlc29sdXRpb24g aW52b2x2ZXMgdHdvIHNlcGFyYXRlIHZhbHVlcywgdGhlIG51bWVyYXRvcgoj IGFuZCB0aGUgZGVub21pbmF0b3IuIFRoZSByZXN1bHQgb2YgZGl2aWRpbmcg dGhlIG51bWVyYXRvciBieQojIHRoZSBkZW5vbWluYXRvciBzaG91bGQgY29y cmVzcG9uZCB0byB0aGUgbnVtYmVyIG9mCiMgbmFub3NlY29uZHMgYmV0d2Vl biBjbG9jayBpbnRlcnJ1cHRzLiBGb3IgZXhhbXBsZSBhCiMgbnVtZXJhdG9y IG9mIDEwMDAwMDAwMDAgYW5kIGEgZGVub21pbmF0b3Igb2YgMTAwIG1lYW5z IHRoYXQKIyB0aGVyZSBhcmUgMTAwMDAwMDAgbmFub3NlY29uZHMgKG9yIDEw IG1pbGxpc2Vjb25kcykgYmV0d2VlbgojIGNsb2NrIGludGVycnVwdHMuIEV4 cHJlc3NpbmcgdGhlIHJlc29sdXRpb24gYXMgYSBmcmFjdGlvbgojIHNob3Vs ZCBtaW5pbWl6ZSBjbG9jayBkcmlmdCBldmVuIGZvciBmcmVxdWVuY2llcyB0 aGF0IGNhbm5vdAojIGJlIGV4cHJlc3NlZCBhcyBhIHNpbXBsZSBpbnRlZ2Vy LiBGb3IgZXhhbXBsZSBhIGZyZXF1ZW5jeSBvZgojIDYwSHogY29ycmVzcG9u ZHMgdG8gYSBjbG9jayByZXNvbHV0aW9uIG9mIDE2NjY2NjY2LjY2Li4uCiMg bmFub3NlY29uZHMuIFRoaXMgY2FuIGJlIGV4cHJlc3NlZCBhY2N1cmF0ZWx5 IGFzIDEwMDAwMDAwMDAKIyBvdmVyIDYwLgojCmNkbF9vcHRpb24gQ1lHTlVN X0tFUk5FTF9DT1VOVEVSU19DTE9DS19PVkVSUklERV9OVU1FUkFUT1Igewog ICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJl bnQgQ1lHUEtHX0tFUk5FTF9DT1VOVEVSU19DTE9DS19PVkVSUklERSBpcyBk aXNhYmxlZAoKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMTAwMDAwMDAwMAogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxMDAwMDAwMDAw CiAgICAjIExlZ2FsIHZhbHVlczogMSB0byAweDdmZmZmZmZmCn07CgojIENs b2NrIHJlc29sdXRpb24gZGVub21pbmF0b3IKIyBJZiBhIG5vbi1kZWZhdWx0 IGNsb2NrIGludGVycnVwdCBmcmVxdWVuY3kgaXMgdXNlZCB0aGVuIGl0CiMg aXMgbmVjZXNzYXJ5IHRvIHNwZWNpZnkgdGhlIGNsb2NrIHJlc29sdXRpb24g ZXhwbGljaXRseS4KIyBUaGlzIHJlc29sdXRpb24gaW52b2x2ZXMgdHdvIHNl cGFyYXRlIHZhbHVlcywgdGhlIG51bWVyYXRvcgojIGFuZCB0aGUgZGVub21p bmF0b3IuIFRoZSByZXN1bHQgb2YgZGl2aWRpbmcgdGhlIG51bWVyYXRvciBi eQojIHRoZSBkZW5vbWluYXRvciBzaG91bGQgY29ycmVzcG9uZCB0byB0aGUg bnVtYmVyIG9mCiMgbmFub3NlY29uZHMgYmV0d2VlbiBjbG9jayBpbnRlcnJ1 cHRzLiBGb3IgZXhhbXBsZSBhCiMgbnVtZXJhdG9yIG9mIDEwMDAwMDAwMDAg YW5kIGEgZGVub21pbmF0b3Igb2YgMTAwIG1lYW5zIHRoYXQKIyB0aGVyZSBh cmUgMTAwMDAwMDAgbmFub3NlY29uZHMgKG9yIDEwIG1pbGxpc2Vjb25kcykg YmV0d2VlbgojIGNsb2NrIGludGVycnVwdHMuIEV4cHJlc3NpbmcgdGhlIHJl c29sdXRpb24gYXMgYSBmcmFjdGlvbgojIHNob3VsZCBtaW5pbWl6ZSBjbG9j ayBkcmlmdCBldmVuIGZvciBmcmVxdWVuY2llcyB0aGF0IGNhbm5vdAojIGJl IGV4cHJlc3NlZCBhcyBhIHNpbXBsZSBpbnRlZ2VyLiBGb3IgZXhhbXBsZSBh IGZyZXF1ZW5jeSBvZgojIDYwSHogY29ycmVzcG9uZHMgdG8gYSBjbG9jayBy ZXNvbHV0aW9uIG9mIDE2NjY2NjY2LjY2Li4uCiMgbmFub3NlY29uZHMuIFRo aXMgY2FuIGJlIGV4cHJlc3NlZCBhY2N1cmF0ZWx5IGFzIDEwMDAwMDAwMDAK IyBvdmVyIDYwLgojCmNkbF9vcHRpb24gQ1lHTlVNX0tFUk5FTF9DT1VOVEVS U19DTE9DS19PVkVSUklERV9ERU5PTUlOQVRPUiB7CiAgICAjIFRoaXMgb3B0 aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfS0VS TkVMX0NPVU5URVJTX0NMT0NLX09WRVJSSURFIGlzIGRpc2FibGVkCgogICAg IyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAxMDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogMTAwCiAgICAjIExlZ2FsIHZhbHVlczogMSB0byAw eDdmZmZmZmZmCn07CgojIDwKIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9LRVJO RUxfQ09VTlRFUlMgewogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdJTVBfS0VS TkVMX0NPVU5URVJTX1NJTkdMRV9MSVNULCBhY3RpdmUsIGVuYWJsZWQKICAg ICMgSW1wbGVtZW50ZWQgYnkgQ1lHSU1QX0tFUk5FTF9DT1VOVEVSU19NVUxU SV9MSVNULCBhY3RpdmUsIGRpc2FibGVkCiAgICAjIFRoaXMgdmFsdWUgY2Fu bm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAg IyBDdXJyZW50X3ZhbHVlOiAxCiAgICAjIFJlcXVpcmVzOiAxID09IENZR0lO VF9LRVJORUxfQ09VTlRFUlMKICAgICMgICAgIENZR0lOVF9LRVJORUxfQ09V TlRFUlMgPT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5n IHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMg aW50ZXJmYWNlIENZR0lOVF9LRVJORUxfQ09VTlRFUlMKICAgICMgICAgIFJl cXVpcmVzOiAxID09IENZR0lOVF9LRVJORUxfQ09VTlRFUlMKfTsKCiMgSW1w bGVtZW50IGNvdW50ZXJzIHVzaW5nIGEgc2luZ2xlIGxpc3QKIyBUaGVyZSBh cmUgdHdvIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGNvdW50 ZXIKIyBvYmplY3RzLiBUaGUgZmlyc3QgaW1wbGVtZW50YXRpb24gc3RvcmVz IGFsbCBhbGFybXMgaW4gYQojIHNpbmdsZSBsaW5rZWQgbGlzdC4gVGhlIGFs dGVybmF0aXZlIGltcGxlbWVudGF0aW9uIHVzZXMgYQojIHRhYmxlIG9mIGxp bmtlZCBsaXN0cy4gQSBzaW5nbGUgbGlzdCBpcyBtb3JlIGVmZmljaWVudCBp bgojIHRlcm1zIG9mIG1lbW9yeSB1c2FnZSBhbmQgaXMgZ2VuZXJhbGx5IGFk ZXF1YXRlIHdoZW4gdGhlCiMgYXBwbGljYXRpb24gb25seSBtYWtlcyB1c2Ug b2YgYSBzbWFsbCBudW1iZXIgb2YgYWxhcm1zLgojCmNkbF9vcHRpb24gQ1lH SU1QX0tFUk5FTF9DT1VOVEVSU19TSU5HTEVfTElTVCB7CiAgICAjIEZsYXZv cjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2 YWx1ZTogMQp9OwoKIyBJbXBsZW1lbnQgY291bnRlcnMgdXNpbmcgYSB0YWJs ZSBvZiBsaXN0cwojIFRoZXJlIGFyZSB0d28gZGlmZmVyZW50IGltcGxlbWVu dGF0aW9ucyBvZiB0aGUgY291bnRlcgojIG9iamVjdHMuIFRoZSBmaXJzdCBp bXBsZW1lbnRhdGlvbiBzdG9yZXMgYWxsIGFsYXJtcyBpbiBhCiMgc2luZ2xl IGxpbmtlZCBsaXN0LiBUaGUgYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb24g dXNlcyBhCiMgdGFibGUgb2YgbGlua2VkIGxpc3RzLCB3aXRoIHRoZSBzaXpl IG9mIHRoZSB0YWJsZSBiZWluZyBhCiMgc2VwYXJhdGUgY29uZmlndXJhYmxl IG9wdGlvbi4gRm9yIG1vcmUgY29tcGxpY2F0ZWQKIyBvcGVyYXRpb25zIGl0 IGlzIGJldHRlciB0byBoYXZlIGEgdGFibGUgb2YgbGlzdHMgc2luY2UgdGhp cwojIHJlZHVjZXMgdGhlIGFtb3VudCBvZiBjb21wdXRhdGlvbiB3aGVuZXZl ciB0aGUgdGltZXIgZ29lcwojIG9mZi4gQXNzdW1pbmcgYSB0YWJsZSBzaXpl IG9mIDggKHRoZSBkZWZhdWx0IHZhbHVlKSBvbgojIGF2ZXJhZ2UgdGhlIHRp bWVyIGNvZGUgd2lsbCBvbmx5IG5lZWQgdG8gY2hlY2sgMS84IG9mIHRoZQoj IHBlbmRpbmcgYWxhcm1zIGluc3RlYWQgb2YgYWxsIG9mIHRoZW0uCiMKY2Rs X2NvbXBvbmVudCBDWUdJTVBfS0VSTkVMX0NPVU5URVJTX01VTFRJX0xJU1Qg ewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6IDAKfTsKCiMgPgojIFNpemUgb2YgY291bnRl ciBsaXN0IHRhYmxlCiMgSWYgY291bnRlcnMgYXJlIGltcGxlbWVudGVkIHVz aW5nIGFuIGFycmF5IG9mIGxpbmtlZCBsaXN0cwojIHRoZW4gdGhpcyBvcHRp b24gY29udHJvbHMgdGhlIHNpemUgb2YgdGhlIGFycmF5LiBBIGxhcmdlcgoj IHNpemUgcmVkdWNlcyB0aGUgYW1vdW50IG9mIGNvbXB1dGF0aW9uIHRoYXQg bmVlZHMgdG8gdGFrZQojIHBsYWNlIHdoZW5ldmVyIHRoZSB0aW1lciBnb2Vz IG9mZiwgYnV0IHJlcXVpcmVzIGV4dHJhCiMgbWVtb3J5LgojCmNkbF9vcHRp b24gQ1lHTlVNX0tFUk5FTF9DT1VOVEVSU19NVUxUSV9MSVNUX1NJWkUgewog ICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJl bnQgQ1lHSU1QX0tFUk5FTF9DT1VOVEVSU19NVUxUSV9MSVNUIGlzIGRpc2Fi bGVkCgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSA4CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDgKICAgICMgTGVnYWwgdmFsdWVzOiAx IHRvIDEwMjQKfTsKCiMgPAojIFNvcnQgdGhlIGNvdW50ZXIgbGlzdAojIFNv cnRpbmcgdGhlIGNvdW50ZXIgbGlzdHMgcmVkdWNlcyB0aGUgYW1vdW50IG9m IHdvcmsgdGhhdAojIGhhcyB0byBiZSBkb25lIHdoZW4gYSBjb3VudGVyIHRp Y2sgaXMgcHJvY2Vzc2VkLCBzaW5jZSB0aGUKIyBuZXh0IGFsYXJtIHRvIGV4 cGlyZSBpcyBhbHdheXMgYXQgdGhlIGZyb250IG9mIHRoZSBsaXN0LgojIEhv d2V2ZXIsIGl0IG1ha2VzIGFkZGluZyBhbiBhbGFybSB0byB0aGUgbGlzdCBt b3JlIGV4cGVuc2l2ZQojIHNpbmNlIGEgc2VhcmNoIG11c3QgYmUgZG9uZSBm b3IgdGhlIGNvcnJlY3QgcGxhY2UgdG8gcHV0IGl0LgojIE1hbnkgYWxhcm1z IGFyZSB1c2VkIHRvIGltcGxlbWVudCB0aW1lb3V0cywgd2hpY2ggc2VsZG9t IHRyaWdnZXIsCiMgc28gaXQgaXMgd29ydGh3aGlsZSBvcHRpbWl6aW5nIHRo aXMgY2FzZS4gRm9yIHRoaXMgcmVhc29uCiMgc29ydGVkIGxpc3QgYXJlIGRp c2FibGVkIGJ5IGRlZmF1bHQuCiMKY2RsX29wdGlvbiBDWUdJTVBfS0VSTkVM X0NPVU5URVJTX1NPUlRfTElTVCB7CiAgICAjIEZsYXZvcjogYm9vbAogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAp9OwoK IyBNZWFzdXJlIHJlYWwtdGltZSBbY2xvY2tdIGludGVycnVwdCBsYXRlbmN5 CiMgTWVhc3VyZSB0aGUgaW50ZXJydXB0IGxhdGVuY3kgYXMgc2VlbiBieSB0 aGUgcmVhbC10aW1lIGNsb2NrCiMgdGltZXIgaW50ZXJydXB0LiAgVGhpcyBy ZXF1aXJlcyBoYXJkd2FyZSBzdXBwb3J0LCBkZWZpbmVkIGJ5CiMgdGhlIEhB TF9DTE9DS19MQVRFTkNZKCkgbWFjcm8uCiMKY2RsX29wdGlvbiBDWUdWQVJf S0VSTkVMX0NPVU5URVJTX0NMT0NLX0xBVEVOQ1kgewogICAgIyBGbGF2b3I6 IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAw CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFs dWU6IDAKICAgICMgUmVxdWlyZXM6IENZR1ZBUl9LRVJORUxfQ09VTlRFUlNf Q0xPQ0sKICAgICMgICAgIENZR1ZBUl9LRVJORUxfQ09VTlRFUlNfQ0xPQ0sg PT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3Bl cnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9u IENZR1ZBUl9LRVJORUxfQ09VTlRFUlNfQ0xPQ0tfRFNSX0xBVEVOQ1kKICAg ICMgICAgIFJlcXVpcmVzOiBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NMT0NL X0xBVEVOQ1kKICAgICMgb3B0aW9uIENZR1ZBUl9LRVJORUxfQ09VTlRFUlNf Q0xPQ0tfRFNSX0xBVEVOQ1kKICAgICMgICAgIERlZmF1bHRWYWx1ZTogQ1lH VkFSX0tFUk5FTF9DT1VOVEVSU19DTE9DS19MQVRFTkNZCn07CgojIE1lYXN1 cmUgcmVhbC10aW1lIFtjbG9ja10gRFNSIGxhdGVuY3kKIyBNZWFzdXJlIHRo ZSBEU1IgbGF0ZW5jeSBhcyBzZWVuIGJ5IHRoZSByZWFsLXRpbWUgY2xvY2sK IyB0aW1lciBpbnRlcnJ1cHQuICBUaGlzIHJlcXVpcmVzIGhhcmR3YXJlIHN1 cHBvcnQsIGRlZmluZWQgYnkKIyB0aGUgSEFMX0NMT0NLX0xBVEVOQ1koKSBt YWNyby4KIwpjZGxfb3B0aW9uIENZR1ZBUl9LRVJORUxfQ09VTlRFUlNfQ0xP Q0tfRFNSX0xBVEVOQ1kgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IENZR1ZBUl9LRVJO RUxfQ09VTlRFUlNfQ0xPQ0tfTEFURU5DWQogICAgIyAgICAgQ1lHVkFSX0tF Uk5FTF9DT1VOVEVSU19DTE9DS19MQVRFTkNZID09IDAKICAgICMgICAtLT4g MAogICAgIyBSZXF1aXJlczogQ1lHVkFSX0tFUk5FTF9DT1VOVEVSU19DTE9D S19MQVRFTkNZCiAgICAjICAgICBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NM T0NLX0xBVEVOQ1kgPT0gMAogICAgIyAgIC0tPiAwCn07CgojIFJUQyByZXNv bHV0aW9uCiMgVGhpcyBvcHRpb24gYXV0b21hdGljYWxseSBkZWZpbmVzIHRo ZSB0dXBsZSB3aGljaCBpcyB1c2VkIHRvCiMgaW5pdGlhbGl6ZSB0aGUgUlRD IHJlc29sdXRpb24sIGNvbnNpc3Rpbmcgb2YgYSBudW1lcmF0b3IgYW5kCiMg ZGVub21pbmF0b3IuICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBv cHRpb24gdG8gCiMgb3ZlcnJpZGUgZGVmYXVsdCBjbG9jayBzZXR0aW5ncwoj IChDWUdQS0dfS0VSTkVMX0NPVU5URVJTX0NMT0NLX09WRVJSSURFKSBhbmQg YXNzb2NpYXRlZCBvcHRpb25zLgojCmNkbF9vcHRpb24gQ1lHTlVNX0tFUk5F TF9DT1VOVEVSU19SVENfUkVTT0xVVElPTiB7CiAgICAjIENhbGN1bGF0ZWQg dmFsdWU6ICBDWUdQS0dfS0VSTkVMX0NPVU5URVJTX0NMT0NLX09WRVJSSURF ID8gICAgICAgICAgICAgICAgICJ7Q1lHTlVNX0tFUk5FTF9DT1VOVEVSU19D TE9DS19PVkVSUklERV9OVU1FUkFUT1IsICAgICBDWUdOVU1fS0VSTkVMX0NP VU5URVJTX0NMT0NLX09WRVJSSURFX0RFTk9NSU5BVE9SfSIgICA6ICJ7Q1lH TlVNX0hBTF9SVENfTlVNRVJBVE9SLCBDWUdOVU1fSEFMX1JUQ19ERU5PTUlO QVRPUn0iCiAgICAjICAgICBDWUdQS0dfS0VSTkVMX0NPVU5URVJTX0NMT0NL X09WRVJSSURFID09IDAKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJl bnRfdmFsdWU6IHtDWUdOVU1fSEFMX1JUQ19OVU1FUkFUT1IsIENZR05VTV9I QUxfUlRDX0RFTk9NSU5BVE9SfQp9OwoKIyBSVEMgcGVyaW9kCiMgVGhpcyBv cHRpb24gYXV0b21hdGljYWxseSBkZWZpbmVzIHRoZSBSVEMgcGVyaW9kIHRv IGJlIHVzZWQgaW4KIyBzZXR0aW5nIHRoZSBzeXN0ZW0gY2xvY2sgaGFyZHdh cmUuICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZQojIG9wdGlvbiB0 byBvdmVycmlkZSBkZWZhdWx0IGNsb2NrIHNldHRpbmdzCiMgKENZR1BLR19L RVJORUxfQ09VTlRFUlNfQ0xPQ0tfT1ZFUlJJREUpIGFuZCBhc3NvY2lhdGVk IG9wdGlvbnMuCiMKY2RsX29wdGlvbiBDWUdOVU1fS0VSTkVMX0NPVU5URVJT X1JUQ19QRVJJT0QgewogICAgIyBDYWxjdWxhdGVkIHZhbHVlOiAgQ1lHUEtH X0tFUk5FTF9DT1VOVEVSU19DTE9DS19PVkVSUklERSA/ICAgICAgICAgICAg ICAgICAiQ1lHTlVNX0tFUk5FTF9DT1VOVEVSU19DTE9DS19PVkVSUklERV9Q RVJJT0QiICAgICAgICAgOiAiQ1lHTlVNX0hBTF9SVENfUEVSSU9EIgogICAg IyAgICAgQ1lHUEtHX0tFUk5FTF9DT1VOVEVSU19DTE9DS19PVkVSUklERSA9 PSAwCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiBD WUdOVU1fSEFMX1JUQ19QRVJJT0QKfTsKCiMgPAojIFRocmVhZC1yZWxhdGVk IG9wdGlvbnMKIyBkb2M6IHJlZGlyZWN0L3RocmVhZC1vcGVyYXRpb25zLmh0 bWwKIyBUaGVyZSBhcmUgYSBudW1iZXIgb2YgY29uZmlndXJhdGlvbiBvcHRp b25zIHJlbGF0ZWQgdG8gdGhlCiMgaW1wbGVtZW50YXRpb24gb2YgdGhyZWFk cywgZm9yIGV4YW1wbGUgd2hldGhlciBvciBub3QgdGhlCiMgZUNvcyBrZXJu ZWwgc3VwcG9ydHMgcGVyLXRocmVhZCBkYXRhLgojCmNkbF9jb21wb25lbnQg Q1lHUEtHX0tFUk5FTF9USFJFQURTIHsKICAgICMgVGhlcmUgaXMgbm8gYXNz b2NpYXRlZCB2YWx1ZS4KCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGll cyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lH REJHX0tFUk5FTF9JTlNUUlVNRU5UX1RIUkVBRAogICAgIyAgICAgQWN0aXZl SWY6IENZR1BLR19LRVJORUxfVEhSRUFEUwp9OwoKIyA+CiMgQWxsb3cgcGVy LXRocmVhZCB0aW1lcnMKIyBUaGlzIG9wdGlvbiBjb250cm9scyB3aGV0aGVy IG9yIG5vdCB0aGUga2VybmVsIHNob3VsZCBzdXBwb3J0CiMgcGVyLXRocmVh ZCBjbG9jayBhbmQgYWxhcm0gcmVsYXRlZCBmdW5jdGlvbnMuIEFsc28gc29t ZSBvZgojIHRoZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlcyBzdWNoIGFz IHNlbWFwaG9yZSBhbmQKIyBjb25kaXRpb24gdmFyaWFibGUgdGltZWQgd2Fp dCBvcGVyYXRpb25zIHJlcXVpcmUgcGVyLXRocmVhZAojIHRpbWVyIHN1cHBv cnQuIElmIG5vbmUgb2YgdGhlc2UgZmFjaWxpdGllcyBhcmUgcmVxdWlyZWQg dGhlbgojIHRoZSBvcHRpb24gY2FuIGJlIGRpc2FibGVkLgojCmNkbF9vcHRp b24gQ1lHRlVOX0tFUk5FTF9USFJFQURTX1RJTUVSIHsKICAgICMgRmxhdm9y OiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg MQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiAxCiAgICAjIFJlcXVpcmVzOiBDWUdWQVJfS0VSTkVMX0NPVU5URVJT X0NMT0NLCiAgICAjICAgICBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NMT0NL ID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9w ZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIG9wdGlv biBDWUdNRk5fS0VSTkVMX1NZTkNIX0NPTkRWQVJfVElNRURfV0FJVAogICAg IyAgICAgUmVxdWlyZXM6IENZR0ZVTl9LRVJORUxfVEhSRUFEU19USU1FUgog ICAgIyBvcHRpb24gQ1lHU0VNX0xJQkNfVElNRV9DTE9DS19XT1JLSU5HCiAg ICAjICAgICBSZXF1aXJlczogQ1lHRlVOX0tFUk5FTF9USFJFQURTX1RJTUVS Cn07CgojIFN1cHBvcnQgb3B0aW9uYWwgbmFtZSBmb3IgZWFjaCB0aHJlYWQK IyBUaHJlYWRzIG1heSBvcHRpb25hbGx5IGJlIHN1cHBsaWVkIHdpdGggYSBu YW1lIHN0cmluZyB0aGF0IGlzCiMgdXNlZCB0byBpZGVudGlmeSB0aGVtIGR1 cmluZyBkZWJ1Z2dpbmcuIFRoaXMgbmFtZSBpcyBvbmx5CiMgcHJlc2VudCBp ZiBgdGhpcyBvcHRpb24gaXMgZGVmaW5lZC4gRGlzYWJsaW5nIGl0IHJlZHVj ZXMgYm90aAojIGNvZGUgYW5kIGRhdGEgc2l6ZS4KIwpjZGxfb3B0aW9uIENZ R1ZBUl9LRVJORUxfVEhSRUFEU19OQU1FIHsKICAgICMgRmxhdm9yOiBib29s CiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5n IGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAx Cn07CgojIEtlZXAgdHJhY2sgb2YgYWxsIHRocmVhZHMgdXNpbmcgYSBsaW5r ZWQgbGlzdAojIFRocmVhZHMgbWF5IG9wdGlvbmFsbHkgYmUgcGxhY2VkIG9u IGEgaG91c2VrZWVwaW5nIGxpc3Qgc28KIyB0aGF0IGFsbCB0aHJlYWRzIG1h eSBiZSBsb2NhdGVkIGVhc2lseS4gVGhpcyBpcyB1c2VmdWwgbWFpbmx5CiMg aW4gY29uanVuY3Rpb24gd2l0aCBzb3VyY2UtbGV2ZWwgZGVidWdnaW5nLgoj CmNkbF9vcHRpb24gQ1lHVkFSX0tFUk5FTF9USFJFQURTX0xJU1QgewogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGll cyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lH REJHX0tFUk5FTF9ERUJVR19HREJfVEhSRUFEX1NVUFBPUlQKICAgICMgICAg IFJlcXVpcmVzOiBDWUdWQVJfS0VSTkVMX1RIUkVBRFNfTElTVAp9OwoKIyBL ZWVwIHRyYWNrIG9mIHRoZSBiYXNlIG9mIGVhY2ggdGhyZWFkJ3Mgc3RhY2sK IyBUaGlzIG9wdGlvbiBtYWtlcyB0aGUga2VybmVsIGtlZXAgdHJhY2sgb2Yg dGhlIGxvd2VyIGxpbWl0IG9uCiMgZWFjaCB0aHJlYWQncyBzdGFjay4gSXQg YWxsb3dzIHRoZSBrZXJuZWwgdG8gYWRqdXN0IHRoZSBsb3dlcgojIGxpbWl0 LCB0aHVzIG1ha2luZyBzcGFjZSBmb3IgcGVyLXRocmVhZCBkYXRhLiBOb3Rl IHRoYXQgaXQKIyBkb2VzIG5vdCBpbXBseSBhbnkgZm9ybSBvZiBydW4tdGlt ZSBzdGFjayBvdmVyZmxvdyBjaGVja2luZy4KIwpjZGxfb3B0aW9uIENZR0ZV Tl9LRVJORUxfVEhSRUFEU19TVEFDS19MSU1JVCB7CiAgICAjIEZsYXZvcjog Ym9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZl Y3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGNvbXBvbmVudCBDWUdWQVJfS0VS TkVMX1RIUkVBRFNfREFUQQogICAgIyAgICAgUmVxdWlyZXM6IENZR0ZVTl9L RVJORUxfVEhSRUFEU19TVEFDS19MSU1JVAp9OwoKIyBTdXBwb3J0IGZvciBw ZXItdGhyZWFkIGRhdGEKIyBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIGtlcm5l bCB0byBzdXBwb3J0IHBlci10aHJlYWQgZGF0YSwgaW4KIyBvdGhlciB3b3Jk cyBhbiBhcmVhIG9mIG1lbW9yeSBzcGVjaWZpYyB0byBlYWNoIHRocmVhZCB3 aGljaAojIGNhbiBiZSB1c2VkIHRvIHN0b3JlIGRhdGEgZm9yIHRoYXQgdGhy ZWFkLiBUaGlzIHBlci10aHJlYWQKIyBkYXRhIGNhbiBiZSB1c2VkIGJ5IGFw cGxpY2F0aW9ucyBvciBieSBvdGhlciBwYWNrYWdlcyBzdWNoIGFzCiMgdGhl IElTTyBDIGxpYnJhcnkuCiMKY2RsX2NvbXBvbmVudCBDWUdWQVJfS0VSTkVM X1RIUkVBRFNfREFUQSB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291 cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQogICAgIyBSZXF1 aXJlczogQ1lHRlVOX0tFUk5FTF9USFJFQURTX1NUQUNLX0xJTUlUCiAgICAj ICAgICBDWUdGVU5fS0VSTkVMX1RIUkVBRFNfU1RBQ0tfTElNSVQgPT0gMQog ICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMg YXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR1NF TV9MSUJDX1BFUl9USFJFQURfUkFORAogICAgIyAgICAgUmVxdWlyZXM6IENZ R1ZBUl9LRVJORUxfVEhSRUFEU19EQVRBCiAgICAjIG9wdGlvbiBDWUdTRU1f TElCQ19TVFJJTkdfUEVSX1RIUkVBRF9TVFJUT0sKICAgICMgICAgIFJlcXVp cmVzOiBDWUdWQVJfS0VSTkVMX1RIUkVBRFNfREFUQQogICAgIyBvcHRpb24g Q1lHU0VNX0xJQk1fVEhSRUFEX1NBRkVfQ09NUEFUX01PREUKICAgICMgICAg IFJlcXVpcmVzOiBDWUdWQVJfS0VSTkVMX1RIUkVBRFNfREFUQQogICAgIyBv cHRpb24gQ1lHU0VNX0VSUk9SX1BFUl9USFJFQURfRVJSTk8KICAgICMgICAg IFJlcXVpcmVzOiBDWUdWQVJfS0VSTkVMX1RIUkVBRFNfREFUQQp9OwoKIyA+ CiMgTnVtYmVyIG9mIHdvcmRzIG9mIHBlci10aHJlYWQgZGF0YQojIEl0IGlz IHBvc3NpYmxlIGZvciB0aGUga2VybmVsIHRvIHN1cHBvcnQgcGVyLXRocmVh ZCBkYXRhLCBpbgojIG90aGVyIHdvcmRzIGFuIGFyZWEgb2YgbWVtb3J5IHNw ZWNpZmljIHRvIGVhY2ggdGhyZWFkIHdoaWNoCiMgY2FuIGJlIHVzZWQgdG8g c3RvcmUgZGF0YSBmb3IgdGhhdCB0aHJlYWQuIFRoaXMgcGVyLXRocmVhZAoj IGRhdGEgY2FuIGJlIHVzZWQgYnkgYXBwbGljYXRpb25zIG9yIGJ5IG90aGVy IHBhY2thZ2VzIHN1Y2ggYXMKIyB0aGUgSVNPIEMgbGlicmFyeS4gVGhpcyBj b25maWd1cmF0aW9uIG9wdGlvbiBjb250cm9scyB0aGUKIyBudW1iZXIgb2Yg d29yZHMgb2YgcGVyLXRocmVhZCBkYXRhIHRoYXQgdGhlIGtlcm5lbCB3aWxs CiMgYWxsb3cuCiMKY2RsX29wdGlvbiBDWUdOVU1fS0VSTkVMX1RIUkVBRFNf REFUQV9NQVggewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2 YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRl IG9uZS4KICAgICMgdXNlcl92YWx1ZSA2CiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDYKICAgICMgTGVnYWwgdmFs dWVzOiA0IHRvIDY1NTM1Cn07CgojIEJpdG1hcCBvZiBwcmVhbGxvY2F0ZWQg c2xvdHMgb2YgdGhyZWFkIGRhdGEKIyBQZXIgdGhyZWFkIGRhdGEgb3B0aW9u cy4gUGVyIHRocmVhZCBkYXRhIHN1cHBvcnQgaXMgYmFzZWQgbG9vc2VseQoj IG9uIHRoYXQgZGVmaW5lZCBieSBQT1NJWC4gRWFjaCB0aHJlYWQgaGFzIGFu IGFycmF5IG9mIHNsb3RzLCB1cCB0bwojIENZR05VTV9LRVJORUxfVEhSRUFE U19EQVRBX01BWCwgdGhhdCBtYXkgY29udGFpbiBkYXRhLiBTb21lIG9mIHRo ZQojIHNsb3RzIGhhdmUgYmVlbiBwcmVhbGxvY2F0ZWQgdG8gc3BlY2lmaWMg cGFja2FnZXMuIE90aGVycyBtYXkgYmUKIyBhbGxvY2F0ZWQgZHluYW1pY2Fs bHkuCiMKY2RsX2NvbXBvbmVudCBDWUdOVU1fS0VSTkVMX1RIUkVBRFNfREFU QV9BTEwgewogICAgIyBDYWxjdWxhdGVkIHZhbHVlOiAxNQogICAgIyBGbGF2 b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMTUKfTsKCiMgPgojIFNs b3QgMCBwcmVhbGxvY2F0ZWQgZm9yIHRoZSBrZXJuZWwKIyBUaGlzIG9wdGlv biBkZWZpbmVzIHRoZSBpbmRleCBvZiBhIHBlci10aHJlYWQgZGF0YQojIHNs b3Qgd2hpY2ggaXMgcmVzZXJ2ZWQgYnkKIyB0aGUgZUNvcyBrZXJuZWwKIyBm b3IgcHJpdmF0ZSB1c2UuCiMKY2RsX29wdGlvbiBDWUdOVU1fS0VSTkVMX1RI UkVBRFNfREFUQV9LRVJORUwgewogICAgIyBDYWxjdWxhdGVkIHZhbHVlOiAw CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCn07 CgojIFNsb3QgMSBwcmVhbGxvY2F0ZWQgZm9yIHVJVFJPTgojIFRoaXMgb3B0 aW9uIGRlZmluZXMgdGhlIGluZGV4IG9mIGEgcGVyLXRocmVhZCBkYXRhCiMg c2xvdCB3aGljaCBpcyByZXNlcnZlZCBieQojIHRoZSB1SVRST04gY29tcGF0 aWJpbGl0eSBsYXllcgojIGZvciBwcml2YXRlIHVzZS4KIwpjZGxfb3B0aW9u IENZR05VTV9LRVJORUxfVEhSRUFEU19EQVRBX0lUUk9OIHsKICAgICMgQ2Fs Y3VsYXRlZCB2YWx1ZTogMQogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3Vy cmVudF92YWx1ZTogMQp9OwoKIyBTbG90IDIgcHJlYWxsb2NhdGVkIGZvciBl cnJubwojIFRoaXMgb3B0aW9uIGRlZmluZXMgdGhlIGluZGV4IG9mIGEgcGVy LXRocmVhZCBkYXRhCiMgc2xvdCB3aGljaCBpcyByZXNlcnZlZCBmb3IgdXNl IGJ5IGFuIGVycm5vIHZhcmlhYmxlLgojCmNkbF9vcHRpb24gQ1lHTlVNX0tF Uk5FTF9USFJFQURTX0RBVEFfRVJSTk8gewogICAgIyBDYWxjdWxhdGVkIHZh bHVlOiAyCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVl OiAyCn07CgojIFNsb3QgMyBwcmVhbGxvY2F0ZWQgZm9yIFBPU0lYCiMgVGhp cyBvcHRpb24gZGVmaW5lcyB0aGUgaW5kZXggb2YgYSBwZXItdGhyZWFkIGRh dGEKIyBzbG90IHdoaWNoIGlzIHJlc2VydmVkIGJ5CiMgUE9TSVgKIyBmb3Ig cHJpdmF0ZSB1c2UuCiMKY2RsX29wdGlvbiBDWUdOVU1fS0VSTkVMX1RIUkVB RFNfREFUQV9QT1NJWCB7CiAgICAjIENhbGN1bGF0ZWQgdmFsdWU6IDMKICAg ICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDMKfTsKCiMg PAojIDwKIyBTdGFjayBzaXplIGZvciB0aGUgaWRsZSB0aHJlYWQKIyBUaGlz IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHNwZWNpZmllcyB0aGUgc3RhY2sgc2l6 ZSBpbiBieXRlcwojIGZvciB0aGUgaWRsZSB0aHJlYWQuIFVubGVzcyB0aGUg SEFMIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGEKIyBzZXBhcmF0ZSBpbnRlcnJ1 cHQgc3RhY2sgdGhpcyBzaXplIG11c3QgYmUgc3VmZmljaWVudCB0byBtZWV0 CiMgdGhlIHJlcXVpcmVtZW50cyBvZiBhbGwgaW50ZXJydXB0IGhhbmRsZXJz IC0gdGhlc2UKIyByZXF1aXJlbWVudHMgYXJlIGN1bXVsYXRpdmUgaWYgbmVz dGVkIGludGVycnVwdGVkIGFyZQojIGVuYWJsZWQuIERlcGVuZGluZyBvbiB0 aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSwgdGhlIHN0YWNrIHNpemUKIyB0eXBp Y2FsbHkgaGFzIHRvIGJlIGEgbXVsdGlwbGUgb2YgZWlnaHQgb3Igc2l4dGVl biBieXRlcy4KIyBUaGlzIHdpbGwgYmUgb3ZlcnJpZGRlbiB3aGVyZSBpdCBp cyB1c2VkIGlmIHRoZQojIGFyY2hpdGVjdHVyYWwgSEFMIHJlcXVpcmVzIGEg bWluaW11bSBzdGFjayBzaXplCiMgdG8gaGFuZGxlIGludGVycnVwdHMgY29y cmVjdGx5LgojCmNkbF9vcHRpb24gQ1lHTlVNX0tFUk5FTF9USFJFQURTX0lE TEVfU1RBQ0tfU0laRSB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDIwNDgKICAgICMgdmFsdWVf c291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMjA0OAogICAg IyBMZWdhbCB2YWx1ZXM6IDUxMiB0byA2NTUzNgp9OwoKIyBNYXhpbWFsIHN1 c3BlbmQgY291bnQKIyBUaGlzIG9wdGlvbiBwcm92aWRlcyBmb3IgYW4gYXNz ZXJ0aW9uIHRoYXQgdGhlIGNvdW50IHZhbHVlIGZvcgojIGNvdW50ZWQgdGhy ZWFkIHN1c3BlbmRzIGRvIG5vdCBleGNlZWQgc2V0IGxpbWl0cy4gIFRoaXMg aXMgdG8gaGVscAojIHdpdGggZGVidWdnaW5nLCB0byBhbGxvdyBhIHJ1bmFh d2F5IGxvb3AsIGZvciBleGFtcGxlLCB0byBiZQojIGRldGVjdGVkIG1vcmUg ZWFzaWx5LgojIElmIHRoZSBvcHRpb24gaXMgbm90IGRlZmluZWQsIG5vIGFz c2VydCBpcyBpbmNsdWRlZC4gIFdoZXRoZXIgYXNzZXJ0cwojIGFyZSB0aGVt c2VsdmVzIGluY2x1ZGVkIGRlcGVuZHMgb24gaW5mcmFzdHJ1Y3R1cmUgY29u ZmlndXJ5IGluCiMgaW5mcmEuaAojCmNkbF9vcHRpb24gQ1lHTlVNX0tFUk5F TF9NQVhfU1VTUEVORF9DT1VOVF9BU1NFUlQgewogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSA1MDAK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogNTAwCn07CgojIE1heGltYWwgd2FrZSBjb3VudAojIFRoaXMgb3B0aW9u IHByb3ZpZGVzIGZvciBhbiBhc3NlcnRpb24gdGhhdCB0aGUgY291bnQgdmFs dWUgZm9yCiMgY291bnRlZCB0aHJlYWQgd2FrZXVwcyBkbyBub3QgZXhjZWVk IHNldCBsaW1pdHMuICBUaGlzIGlzIHRvCiMgaGVscCB3aXRoIGRlYnVnZ2lu ZywgdG8gYWxsb3cgYSBydW5hYXdheSBsb29wLCBmb3IgZXhhbXBsZSwgdG8K IyBiZSBkZXRlY3RlZCBtb3JlIGVhc2lseS4KIyBJZiB0aGUgb3B0aW9uIGlz IG5vdCBkZWZpbmVkLCBubyBhc3NlcnQgaXMgaW5jbHVkZWQuICBXaGV0aGVy IGFzc2VydHMKIyBhcmUgdGhlbXNlbHZlcyBpbmNsdWRlZCBkZXBlbmRzIG9u IGluZnJhc3RydWN0dXJlIGNvbmZpZ3VyeSBpbgojIGluZnJhLmgKIwpjZGxf b3B0aW9uIENZR05VTV9LRVJORUxfTUFYX0NPVU5URURfV0FLRV9DT1VOVF9B U1NFUlQgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSA1MDAKICAgICMgdmFsdWVfc291cmNlIGRl ZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogNTAwCn07CgojIElkbGUgdGhy ZWFkIG11c3QgYWx3YXlzIHlpZWxkCiMgSWYgdGhlIHNjaGVkdWxlciBjb25m aWd1cmF0aW9uIG9ubHkgaGFzIGEgc2luZ2xlIHByaW9yaXR5CiMgbGV2ZWws IHRoZW4gdGhlIGlkbGUgdGhyZWFkIG11c3QgeWllbGQgZWFjaCB0aW1lIGFy b3VuZCBpdHMgbG9vcC4KIwpjZGxfb3B0aW9uIENZR0lNUF9JRExFX1RIUkVB RF9ZSUVMRCB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAg ICMgQWN0aXZlSWYgY29uc3RyYWludDogKENZR05VTV9LRVJORUxfU0NIRURf UFJJT1JJVElFUyA9PSAxKQogICAgIyAgICAgQ1lHTlVNX0tFUk5FTF9TQ0hF RF9QUklPUklUSUVTID09IDMyCiAgICAjICAgLS0+IDAKCiAgICAjIENhbGN1 bGF0ZWQgdmFsdWU6IDEKICAgICMgRmxhdm9yOiBib29sCiAgICAjIEN1cnJl bnQgdmFsdWU6IDEKfTsKCiMgPAojIFN5bmNocm9uaXphdGlvbiBwcmltaXRp dmVzCiMgZG9jOiByZWRpcmVjdC90aHJlYWQtc3luY2hyb25pemF0aW9uLmh0 bWwKIyBUaGUgZUNvcyBrZXJuZWwgc3VwcG9ydHMgYSBudW1iZXIgb2YgZGlm ZmVyZW50CiMgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXMgc3VjaCBhcyBt dXRleGVzLCBzZW1hcGhvcmVzLAojIGNvbmRpdGlvbiB2YXJpYWJsZXMsIGFu ZCBtZXNzYWdlIGJveGVzLiBUaGVyZSBhcmUKIyBjb25maWd1cmF0aW9uIG9w dGlvbnMgdG8gY29udHJvbCB0aGUgZXhhY3QgYmVoYXZpb3VyIG9mIHNvbWUK IyBvZiB0aGVzZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlcy4KIwpjZGxf Y29tcG9uZW50IENZR1BLR19LRVJORUxfU1lOQ0ggewogICAgIyBUaGVyZSBp cyBubyBhc3NvY2lhdGVkIHZhbHVlLgoKICAgICMgVGhlIGZvbGxvd2luZyBw cm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIG9w dGlvbiBDWUdEQkdfS0VSTkVMX0lOU1RSVU1FTlRfTVVURVgKICAgICMgICAg IEFjdGl2ZUlmOiBDWUdQS0dfS0VSTkVMX1NZTkNICiAgICAjIG9wdGlvbiBD WUdEQkdfS0VSTkVMX0lOU1RSVU1FTlRfQ09ORFZBUgogICAgIyAgICAgQWN0 aXZlSWY6IENZR1BLR19LRVJORUxfU1lOQ0gKICAgICMgb3B0aW9uIENZR0RC R19LRVJORUxfSU5TVFJVTUVOVF9CSU5TRU0KICAgICMgICAgIEFjdGl2ZUlm OiBDWUdQS0dfS0VSTkVMX1NZTkNICiAgICAjIG9wdGlvbiBDWUdEQkdfS0VS TkVMX0lOU1RSVU1FTlRfQ05UU0VNCiAgICAjICAgICBBY3RpdmVJZjogQ1lH UEtHX0tFUk5FTF9TWU5DSAogICAgIyBvcHRpb24gQ1lHREJHX0tFUk5FTF9J TlNUUlVNRU5UX01CT1hUCiAgICAjICAgICBBY3RpdmVJZjogQ1lHUEtHX0tF Uk5FTF9TWU5DSAp9OwoKIyA+CiMgUHJpb3JpdHkgaW52ZXJzaW9uIHByb3Rl Y3Rpb24gcHJvdG9jb2xzCiMgVGhpcyBjb21wb25lbnQgY29udHJvbHMgdGhl IHByb3RvY29scyB1c2VkIHRvIHByb3RlY3QgbXV0ZXhlcyBhZ2FpbnN0CiMg cHJpb3JpdHkgaW52ZXJzaW9uLiBJZiB0aGlzIG9wdGlvbiBpcyBlbmFibGVk IGl0IGRlZmluZXMgd2hpY2gKIyBhbGdvcml0aG0gaXMgdXNlZCB0byBpbXBs ZW1lbnQgdGhpcyBwcm90ZWN0aW9uLiBBdCBwcmVzZW50IG9ubHkKIyBvbmUg c3VjaCBhbGdvcml0aG0gaXMgZGVmaW5lZDogIlNJTVBMRSIuIFRoZSBpbXBs ZW1lbnRhdGlvbgojIHdpbGwgb25seSB3b3JrIGluIHRoZSBtbHF1ZXVlIHNj aGVkdWxlciwgYW5kIGl0IGRvZXMgbm90IGhhbmRsZSB0aGUKIyByYXJlIGNh c2Ugb2YgbmVzdGVkIG11dGV4ZXMgY29tcGxldGVseSBjb3JyZWN0bHkuIEhv d2V2ZXIgaXQgaXMKIyBib3RoIGZhc3QgYW5kIGRldGVybWluaXN0aWMuCiMK Y2RsX2NvbXBvbmVudCBDWUdTRU1fS0VSTkVMX1NZTkNIX01VVEVYX1BSSU9S SVRZX0lOVkVSU0lPTl9QUk9UT0NPTCB7CiAgICAjIEFjdGl2ZUlmIGNvbnN0 cmFpbnQ6ICBDWUdTRU1fS0VSTkVMX1NDSEVEX01MUVVFVUUgCiAgICAjICAg ICBDWUdTRU1fS0VSTkVMX1NDSEVEX01MUVVFVUUgPT0gMQogICAgIyAgIC0t PiAxCgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMSBTSU1QTEUKICAgICMgdmFsdWVfc291 cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMSBTSU1QTEUKICAg ICMgTGVnYWwgdmFsdWVzOiAgIlNJTVBMRSIgCiAgICAjIFJlcXVpcmVzOiAg Q1lHSU5UX0tFUk5FTF9TQ0hFRFVMRVJfVU5JUVVFX1BSSU9SSVRJRVMgPT0g MCAKICAgICMgICAgIENZR0lOVF9LRVJORUxfU0NIRURVTEVSX1VOSVFVRV9Q UklPUklUSUVTID09IDAKICAgICMgICAtLT4gMQp9OwoKIyA+CiMgRW5hYmxl IHByaW9yaXR5IGluaGVyaXRhbmNlIHByb3RvY29sCiMgVGhpcyBvcHRpb24g ZW5hYmxlcyBwcmlvcml0eSBpbmhlcml0YW5jZSBwcm90b2NvbC4gVGhpcyBw cm90b2NvbAojIGNhdXNlcyB0aGUgb3duZXIgb2YgYSBtdXRleCB0byBiZSBl eGVjdXRlZCBhdCB0aGUgaGlnaGVzdCBwcmlvcml0eQojIG9mIHRoZSB0aHJl YWRzIHdhaXRpbmcgZm9yIGFjY2VzcyB0byB0aGUgbXV0ZXguCiMKY2RsX29w dGlvbiBDWUdTRU1fS0VSTkVMX1NZTkNIX01VVEVYX1BSSU9SSVRZX0lOVkVS U0lPTl9QUk9UT0NPTF9JTkhFUklUIHsKICAgICMgRmxhdm9yOiBib29sCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCgog ICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5 IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR1NFTV9LRVJORUxfU1lOQ0hf TVVURVhfUFJJT1JJVFlfSU5WRVJTSU9OX1BST1RPQ09MX0RFRkFVTFQKICAg ICMgICAgIERlZmF1bHRWYWx1ZTogIENZR1NFTV9LRVJORUxfU1lOQ0hfTVVU RVhfUFJJT1JJVFlfSU5WRVJTSU9OX1BST1RPQ09MX0lOSEVSSVQgPwogICAg IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklOSEVSSVQiIDoKICAg ICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENZR1NFTV9LRVJORUxf U1lOQ0hfTVVURVhfUFJJT1JJVFlfSU5WRVJTSU9OX1BST1RPQ09MX0NFSUxJ TkcgPwogICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNFSUxJ TkciIDogIk5PTkUiIAp9OwoKIyBFbmFibGUgcHJpb3JpdHkgY2VpbGluZyBw cm90b2NvbAojIFRoaXMgb3B0aW9uIGVuYWJsZXMgcHJpb3JpdHkgY2VpbGlu ZyBwcm90b2NvbC4gVGhpcyBwcm90b2NvbAojIGNhdXNlcyB0aGUgb3duZXIg b2YgYSBtdXRleCB0byBiZSBleGVjdXRlZCBhdCBhICBwcmlvcml0eQojIGFz c29jaWF0ZWQgd2l0aCB0aGUgbXV0ZXguCiMKY2RsX29wdGlvbiBDWUdTRU1f S0VSTkVMX1NZTkNIX01VVEVYX1BSSU9SSVRZX0lOVkVSU0lPTl9QUk9UT0NP TF9DRUlMSU5HIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCgogICAgIyBUaGUgZm9s bG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUK ICAgICMgb3B0aW9uIENZR1NFTV9LRVJORUxfU1lOQ0hfTVVURVhfUFJJT1JJ VFlfSU5WRVJTSU9OX1BST1RPQ09MX0RFRkFVTFQKICAgICMgICAgIERlZmF1 bHRWYWx1ZTogIENZR1NFTV9LRVJORUxfU1lOQ0hfTVVURVhfUFJJT1JJVFlf SU5WRVJTSU9OX1BST1RPQ09MX0lOSEVSSVQgPwogICAgIyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIklOSEVSSVQiIDoKICAgICMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENZR1NFTV9LRVJORUxfU1lOQ0hfTVVURVhf UFJJT1JJVFlfSU5WRVJTSU9OX1BST1RPQ09MX0NFSUxJTkcgPwogICAgIyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNFSUxJTkciIDogIk5PTkUi IAp9OwoKIyBObyBwcmlvcml0eSBpbnZlcnNpb24gcHJvdG9jb2wKIyBUaGlz IG9wdGlvbiBlbmFibGVzIHRoZSBhYmlsaXR5IHRvIGhhdmUgbm8gcHJpb3Jp dHkgaW52ZXJzaW9uIHByb3RvY29sLgojIEl0IGlzIGVxdWl2YWxlbnQgdG8g ZGlzYWJsaW5nIHRoZSBwcmlvcml0eSBpbnZlcnNpb24gcHJvdG9jb2wgYXQK IyB0aGUgdG9wIGxldmVsLCBidXQgaXMgbmVjZXNzYXJ5IGZvciB0aGUgcnVu dGltZSBhbmQgZGVmYXVsdAojIHNlbGVjdGlvbiBvcHRpb25zLgojCmNkbF9v cHRpb24gQ1lHU0VNX0tFUk5FTF9TWU5DSF9NVVRFWF9QUklPUklUWV9JTlZF UlNJT05fUFJPVE9DT0xfTk9ORSB7CiAgICAjIEZsYXZvcjogYm9vbAogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoK IyBEZWZhdWx0IHByaW9yaXR5IGludmVyc2lvbiBwcm90b2NvbAojIFRoaXMg b3B0aW9uIGRlZmluZXMgdGhlIGRlZmF1bHQgaW52ZXJzaW9uIHByb3RvY29s IHVzZWQgZm9yIG11dGV4ZXMgdGhhdAojIGFyZSBjcmVhdGVkIHdpdGhvdXQg YW4gZXhwbGljaXQgcHJvdG9jb2wgYmVpbmcgc3BlY2lmaWVkLiBUaGUgcHJv dG9jb2wKIyBjaG9zZW4gYnkgZGVmYXVsdCBpcyB0byB1c2UgcHJpb3JpdHkg aW5oZXJpdGFuY2UgaWYgaXQgaXMgcHJlc2VudCBvdGhlcndpc2UKIyBwcmlv cml0eSBjZWlsaW5nLCBvciBub25lIGlmIG5laXRoZXIgaXMgcHJlc2VudC4K IwpjZGxfb3B0aW9uIENZR1NFTV9LRVJORUxfU1lOQ0hfTVVURVhfUFJJT1JJ VFlfSU5WRVJTSU9OX1BST1RPQ09MX0RFRkFVTFQgewogICAgIyBGbGF2b3I6 IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSBJ TkhFUklUCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1 bHQgdmFsdWU6ICBDWUdTRU1fS0VSTkVMX1NZTkNIX01VVEVYX1BSSU9SSVRZ X0lOVkVSU0lPTl9QUk9UT0NPTF9JTkhFUklUID8KICAgICMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJJTkhFUklUIiA6CiAgICAjICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDWUdTRU1fS0VSTkVMX1NZTkNIX01VVEVY X1BSSU9SSVRZX0lOVkVSU0lPTl9QUk9UT0NPTF9DRUlMSU5HID8KICAgICMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDRUlMSU5HIiA6ICJOT05F IiAKICAgICMgICAgIENZR1NFTV9LRVJORUxfU1lOQ0hfTVVURVhfUFJJT1JJ VFlfSU5WRVJTSU9OX1BST1RPQ09MX0lOSEVSSVQgPT0gMQogICAgIyAgICAg Q1lHU0VNX0tFUk5FTF9TWU5DSF9NVVRFWF9QUklPUklUWV9JTlZFUlNJT05f UFJPVE9DT0xfQ0VJTElORyA9PSAxCiAgICAjICAgLS0+IElOSEVSSVQKICAg ICMgTGVnYWwgdmFsdWVzOiAgIklOSEVSSVQiICJDRUlMSU5HIiAiTk9ORSIg CgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVk IGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR1NFTV9LRVJORUxfU1lO Q0hfTVVURVhfUFJJT1JJVFlfSU5WRVJTSU9OX1BST1RPQ09MX0RFRkFVTFRf UFJJT1JJVFkKICAgICMgICAgIEFjdGl2ZUlmOiAgQ1lHU0VNX0tFUk5FTF9T WU5DSF9NVVRFWF9QUklPUklUWV9JTlZFUlNJT05fUFJPVE9DT0xfREVGQVVM VCA9PSAiQ0VJTElORyIgCn07CgojIERlZmF1bHQgcHJpb3JpdHkgY2VpbGlu ZwojIFRoaXMgb3B0aW9uIGRlZmluZXMgdGhlIGRlZmF1bHQgcHJpb3JpdHkg Y2VpbGluZyB0byBiZQojIHVzZWQgaWYgdGhlIGNob3NlbiBkZWZhdWx0IHBy aW9yaXR5IGludmVyc2lvbiBwcm90b2NvbCBpcwojIHByaW9yaXR5IGNlaWxp bmcgcHJvdG9jb2wuIFRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGlzIGlzIHpl cm8sCiMgbWFraW5nIGFsbCBzdWNoIG11dGV4ZXMgYm9vc3QgdGhyZWFkcyB0 byB0aGUgbWF4aW11bSBwcmlvcml0eS4KIwpjZGxfb3B0aW9uIENZR1NFTV9L RVJORUxfU1lOQ0hfTVVURVhfUFJJT1JJVFlfSU5WRVJTSU9OX1BST1RPQ09M X0RFRkFVTFRfUFJJT1JJVFkgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3Qg YWN0aXZlCiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFpbnQ6ICBDWUdTRU1fS0VS TkVMX1NZTkNIX01VVEVYX1BSSU9SSVRZX0lOVkVSU0lPTl9QUk9UT0NPTF9E RUZBVUxUID09ICJDRUlMSU5HIiAKICAgICMgICAgIENZR1NFTV9LRVJORUxf U1lOQ0hfTVVURVhfUFJJT1JJVFlfSU5WRVJTSU9OX1BST1RPQ09MX0RFRkFV TFQgPT0gSU5IRVJJVAogICAgIyAgIC0tPiAwCgogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAg ICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6 IDAKICAgICMgTGVnYWwgdmFsdWVzOiAwIHRvICBDWUdOVU1fS0VSTkVMX1ND SEVEX1BSSU9SSVRJRVMgLSAxIAogICAgIyAgICAgQ1lHTlVNX0tFUk5FTF9T Q0hFRF9QUklPUklUSUVTID09IDMyCn07CgojIFNwZWNpZnkgbXV0ZXggcHJp b3JpdHkgaW52ZXJzaW9uIHByb3RvY29sIGF0IHJ1bnRpbWUKIyBUaGlzIG9w dGlvbiBjb250cm9scyB3aGV0aGVyIHRoZSBwcmlvcml0eSBpbnZlcnNpb24g cHJvdG9jb2wgdXNlZCBieQojIGEgbXV0ZXggY2FuIGJlIHNwZWNpZmllZCB3 aGVuIHRoYXQgbXV0ZXggaXMgY3JlYXRlZC4KIwpjZGxfb3B0aW9uIENZR1NF TV9LRVJORUxfU1lOQ0hfTVVURVhfUFJJT1JJVFlfSU5WRVJTSU9OX1BST1RP Q09MX0RZTkFNSUMgewogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiAgQ1lH SU5UX0tFUk5FTF9TWU5DSF9NVVRFWF9QUklPUklUWV9JTlZFUlNJT05fUFJP VE9DT0xfQ09VTlQgPiAxIAogICAgIyAgICAgQ1lHSU5UX0tFUk5FTF9TWU5D SF9NVVRFWF9QUklPUklUWV9JTlZFUlNJT05fUFJPVE9DT0xfQ09VTlQgPT0g MwogICAgIyAgIC0tPiAxCgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgTnVt YmVyIG9mIHByb3RvY29scyBzZWxlY3RlZAojCmNkbF9pbnRlcmZhY2UgQ1lH SU5UX0tFUk5FTF9TWU5DSF9NVVRFWF9QUklPUklUWV9JTlZFUlNJT05fUFJP VE9DT0xfQ09VTlQgewogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdTRU1fS0VS TkVMX1NZTkNIX01VVEVYX1BSSU9SSVRZX0lOVkVSU0lPTl9QUk9UT0NPTF9J TkhFUklULCBhY3RpdmUsIGVuYWJsZWQKICAgICMgSW1wbGVtZW50ZWQgYnkg Q1lHU0VNX0tFUk5FTF9TWU5DSF9NVVRFWF9QUklPUklUWV9JTlZFUlNJT05f UFJPVE9DT0xfQ0VJTElORywgYWN0aXZlLCBlbmFibGVkCiAgICAjIEltcGxl bWVudGVkIGJ5IENZR1NFTV9LRVJORUxfU1lOQ0hfTVVURVhfUFJJT1JJVFlf SU5WRVJTSU9OX1BST1RPQ09MX05PTkUsIGFjdGl2ZSwgZW5hYmxlZAogICAg IyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMwoKICAgICMgVGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZh bHVlCiAgICAjIG9wdGlvbiBDWUdTRU1fS0VSTkVMX1NZTkNIX01VVEVYX1BS SU9SSVRZX0lOVkVSU0lPTl9QUk9UT0NPTF9EWU5BTUlDCiAgICAjICAgICBB Y3RpdmVJZjogIENZR0lOVF9LRVJORUxfU1lOQ0hfTVVURVhfUFJJT1JJVFlf SU5WRVJTSU9OX1BST1RPQ09MX0NPVU5UID4gMSAKfTsKCiMgPAojIE1lc3Nh Z2UgYm94IGJsb2NraW5nIHB1dCBzdXBwb3J0CiMgTWVzc2FnZSBib3hlcyBj YW4gc3VwcG9ydCB0aHJlZSBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlCiMg cHV0LW1lc3NhZ2Ugb3BlcmF0aW9uLiBUaGUgZmlyc3QgaXMgdHJ5cHV0KCks IHdoaWNoIHdpbGwgZmFpbAojIGlmIHRoZSBtZXNzYWdlIGJveCBpcyBhbHJl YWR5IGZ1bGwuIFRoZSBvdGhlciB0d28gYXJlIHRoZQojIG9yZGluYXJ5IHB1 dCgpIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmxvY2sgaWYgdGhlIG1lc3NhZ2Ug Ym94CiMgaXMgZnVsbCwgYW5kIGEgdGltZWQgcHV0KCkgb3BlcmF0aW9uIHdo aWNoIHdpbGwgYmxvY2sgZm9yCiMgdXB0byBhIGNlcnRhaW4gbGVuZ3RoIG9m IHRpbWUgaWYgdGhlIG1lc3NhZ2UgYm94IGlzIGN1cnJlbnRseQojIGZ1bGwu IFRoZSBibG9ja2luZyB2ZXJzaW9ucyByZXF1aXJlIGV4dHJhIG1lbW9yeSBp biB0aGUKIyBtZXNzYWdlIGJveCBkYXRhIHN0cnVjdHVyZSBhbmQgZXh0cmEg Y29kZSBpbiB0aGUgb3RoZXIKIyBtZXNzYWdlIGJveCBmdW5jdGlvbnMsIHNv IHRoZXkgY2FuIGJlIGRpc2FibGVkIGlmIHRoZQojIGFwcGxpY2F0aW9uIGRv ZXMgbm90IHJlcXVpcmUgdGhlbS4gSWYgdGhpcyBvcHRpb24gaXMgZW5hYmxl ZAojIHRoZW4gdGhlIHN5c3RlbSB3aWxsIGFsd2F5cyBwcm92aWRlIHRoZSBi bG9ja2luZyBwdXQoKQojIGZ1bmN0aW9uLCBhbmQgaXQgd2lsbCBhbHNvIHBy b3ZpZGUgdGhlIHRpbWVkIHB1dCgpIGZ1bmN0aW9uCiMgaWYgdGhyZWFkIHRp bWVycyBhcmUgZW5hYmxlZC4KIwpjZGxfb3B0aW9uIENZR01GTl9LRVJORUxf U1lOQ0hfTUJPWFRfUFVUX0NBTl9XQUlUIHsKICAgICMgRmxhdm9yOiBib29s CiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5n IGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAx Cn07CgojIE1lc3NhZ2UgYm94IHF1ZXVlIHNpemUKIyBUaGlzIGNvbmZpZ3Vy YXRpb24gb3B0aW9uIGNvbnRyb2xzIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMK IyB0aGF0IGNhbiBiZSBxdWV1ZWQgaW4gYSBtZXNzYWdlIGJveCBiZWZvcmUg YSBub24tYmxvY2tpbmcKIyBwdXQoKSBvcGVyYXRpb24gd2lsbCBmYWlsIG9y IGEgYmxvY2tpbmcgcHV0KCkgb3BlcmF0aW9uIHdpbGwKIyBibG9jay4gVGhl IGNvc3QgaW4gbWVtb3J5IGlzIG9uZSBwb2ludGVyIHBlciBtZXNzYWdlIGJv eCBmb3IKIyBlYWNoIHBvc3NpYmxlIG1lc3NhZ2UuCiMKY2RsX29wdGlvbiBD WUdOVU1fS0VSTkVMX1NZTkNIX01CT1hfUVVFVUVfU0laRSB7CiAgICAjIEZs YXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDEwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1 bHQgdmFsdWU6IDEwCiAgICAjIExlZ2FsIHZhbHVlczogMSB0byA2NTUzNQp9 OwoKIyBDb25kaXRpb24gdmFyaWFibGUgdGltZWQtd2FpdCBzdXBwb3J0CiMg VGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgY29uZGl0aW9uIHZhcmlhYmxlIHRp bWVkIHdhaXQKIyBmYWNpbGl0eS4KIwpjZGxfb3B0aW9uIENZR01GTl9LRVJO RUxfU1lOQ0hfQ09ORFZBUl9USU1FRF9XQUlUIHsKICAgICMgRmxhdm9yOiBi b29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAxCiAgICAjIFJlcXVpcmVzOiBDWUdGVU5fS0VSTkVMX1RIUkVBRFNfVElN RVIKICAgICMgICAgIENZR0ZVTl9LRVJORUxfVEhSRUFEU19USU1FUiA9PSAx CiAgICAjICAgLS0+IDEKfTsKCiMgQ29uZGl0aW9uIHZhcmlhYmxlIGV4cGxp Y2l0IG11dGV4IHdhaXQgc3VwcG9ydAojIFRoaXMgb3B0aW9uIGVuYWJsZXMg dGhlIGNvbmRpdGlvbiB2YXJpYWJsZSBleHBsaWNpdCBtdXRleCB3YWl0CiMg ZmFjaWxpdHkuIEJ5IGRlZmF1bHQgY29uZGl0aW9uIHZhcmlhYmxlcyBpbiBl Q29zIGFyZSBjcmVhdGVkIHdpdGgKIyBhIHN0YXRpY2FsbHkgYXNzb2NpYXRl ZCBtdXRleC4gVGhpcyBvcHRpb24gcGVybWl0cyB3YWl0IChhbmQgdGltZWQg d2FpdAojIGlmIENZR01GTl9LRVJORUxfU1lOQ0hfQ09ORFZBUl9USU1FRF9X QUlUIGlzIGVuYWJsZWQpIHRvIHByb3ZpZGUgYQojIGRpZmZlcmVudCBtdXRl eCBhcyBhbiBhcmd1bWVudC4gVGhpcyBtYWtlcyBubyBkaWZmZXJlbmNlIHRv IHRoZSBzZW1hbnRpY3MKIyB0aGUgd2FpdCBvcGVyYXRpb24gZXhjZXB0IHRo YXQgYSBkaWZmZXJlbnQgbXV0ZXggd2lsbCBiZSB1c2VkIGR1cmluZyBpdC4K IwpjZGxfb3B0aW9uIENZR01GTl9LRVJORUxfU1lOQ0hfQ09ORFZBUl9XQUlU X01VVEVYIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVm YXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07CgojIDwKIyBLZXJuZWwg aW5zdHJ1bWVudGF0aW9uCiMgVGhlIGN1cnJlbnQgcmVsZWFzZSBvZiB0aGUg a2VybmVsIGNvbnRhaW5zIGFuIGluaXRpYWwgdmVyc2lvbgojIG9mIGluc3Ry dW1lbnRhdGlvbiBzdXBwb3J0LiBUaGUgdmFyaW91cyBwYXJ0cyBvZiB0aGUg a2VybmVsCiMgd2lsbCBpbnZva2UgaW5zdHJ1bWVudGF0aW9uIHJvdXRpbmVz IHdoZW5ldmVyIGFwcHJvcHJpYXRlCiMgZXZlbnRzIG9jY3VyLCBhbmQgdGhl c2Ugd2lsbCBiZSBzdG9yZWQgaW4gYSBjaXJjdWxhciBidWZmZXIKIyBmb3Ig bGF0ZXIgcmVmZXJlbmNlLgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0tFUk5F TF9JTlNUUlVNRU5UIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVz ZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJv dmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3Vy Y2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCn07CgojID4KIyBV c2UgYnVmZmVyIHByb3ZpZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbgojIEluIG1v c3QgY2lyY3Vtc3RhbmNlcyB0aGUga2VybmVsIHNob3VsZCBwcm92aWRlIHRo ZQojIGluc3RydW1lbnRhdGlvbiBjaXJjdWxhciBidWZmZXIgaXRzZWxmLiBP Y2Nhc2lvbmFsbHkKIyBhcHBsaWNhdGlvbiBjb2RlIG1heSB3aXNoIHRvIHBy b3ZpZGUgdGhlIGJ1ZmZlciBpbnN0ZWFkLAojIGdpdmluZyB0aGUgYXBwbGlj YXRpb24gY29kZSBtb3JlIGNvbnZlbmllbnQgYWNjZXNzIHRvIHRoZQojIGJ1 ZmZlci4gVGhpcyBhbHNvIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHB1dCB0aGUg Y2lyY3VsYXIKIyBidWZmZXIgaW4gc3BlY2lhbCBhcmVhcyBvZiBtZW1vcnks IGZvciBleGFtcGxlIGEgcmVnaW9uIHRoYXQKIyBpcyBzaGFyZWQgd2l0aCB0 aGUgaG9zdC4KIwpjZGxfb3B0aW9uIENZR1ZBUl9LRVJORUxfSU5TVFJVTUVO VF9FWFRFUk5BTF9CVUZGRVIgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3Qg YWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0tFUk5FTF9JTlNUUlVN RU5UIGlzIGRpc2FibGVkCgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKfTsKCiMgU2l6 ZSBvZiBpbnN0cnVtZW50YXRpb24gYnVmZmVyIHNpemUKIyBJZiBrZXJuZWwg aW5zdHJ1bWVudGF0aW9uIGlzIGVuYWJsZWQgdGhlbiB0aGUgaW5zdHJ1bWVu dGF0aW9uCiMgZGF0YSBnb2VzIGludG8gYSBjaXJjdWxhciBidWZmZXIuIEEg bGFyZ2VyIGJ1ZmZlciBhbGxvd3MKIyBtb3JlIGRhdGEgdG8gYmUgc3RvcmVk LCBidXQgYXQgYSBzaWduaWZpY2FudCBjb3N0IGluIG1lbW9yeS4KIyBUaGUg dmFsdWUgb2YgdGhpcyBvcHRpb24gY29ycmVzcG9uZHMgdG8gdGhlIG51bWJl ciBvZiBlbnRyaWVzCiMgaW4gdGhlIHRhYmxlLCBhbmQgdHlwaWNhbGx5IGVh Y2ggZW50cnkgd2lsbCByZXF1aXJlIDE2IGJ5dGVzCiMgb2YgbWVtb3J5Lgoj CmNkbF9vcHRpb24gQ1lHTlVNX0tFUk5FTF9JTlNUUlVNRU5UX0JVRkZFUl9T SVpFIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBU aGUgcGFyZW50IENZR1BLR19LRVJORUxfSU5TVFJVTUVOVCBpcyBkaXNhYmxl ZAoKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVu Y29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAg ICAjIHVzZXJfdmFsdWUgMjU2CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDI1NgogICAgIyBMZWdhbCB2YWx1ZXM6 IDE2IHRvIDB4MTAwMDAwCn07CgojIFdyYXAgaW5zdHJ1bWVudCBidWZmZXIK IyBXaGVuIHRoZSBpbnN0cnVtZW50YXRpb24gYnVmZmVyIGlzIGZ1bGwgaXQg Y2FuIGVpdGhlciBiZSByZXN0YXJ0ZWQKIyBmcm9tIHRoZSBiZWdpbm5pbmcs IG92ZXJ3cml0aW5nIG9sZGVyIGRhdGEsIG9yIGl0IGNhbiBzdG9wIGF0IHRo ZQojIGVuZC4gVGhlIGZvcm1lciBpcyB1c2VmdWwgaWYgeW91IHdhbnQgdG8g bG9vayBhdCB0aGUgbGFzdCBlbnRyaWVzCiMgbWFkZSB3aGlsZSB0aGUgbGF0 dGVyIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byBsb29rIGF0IHRoZSBmaXJz dAojIGZldy4KIwpjZGxfb3B0aW9uIENZR05VTV9LRVJORUxfSU5TVFJVTUVO VF9CVUZGRVJfV1JBUCB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3Rp dmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfS0VSTkVMX0lOU1RSVU1FTlQg aXMgZGlzYWJsZWQKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2Vy IHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3Zp ZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNl IGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyBQZXJmb3Jt IHNlbGVjdGl2ZSBpbnN0cnVtZW50YXRpb24KIyBUaGUga2VybmVsIGNhbiBl aXRoZXIgY29sbGVjdCBhbGwgaW5zdHJ1bWVudGF0aW9uIGV2ZW50cywgb3IK IyBpdCBjYW4gZmlsdGVyIG91dCBldmVudHMgYXQgcnVudGltZSBiYXNlZCBv biBhIHNldCBvZiBmbGFncy4KIyBGb3IgZXhhbXBsZSBpdCB3b3VsZCBiZSBw b3NzaWJsZSB0byBkZWNpZGUgYXQgcnVudGltZSB0aGF0CiMgb25seSBzY2hl ZHVsZXIgYW5kIGludGVycnVwdCBpbnN0cnVtZW50YXRpb24gZmxhZ3MgYXJl IG9mCiMgaW50ZXJlc3QgYW5kIHRoYXQgYWxsIG90aGVyIGZsYWdzIHNob3Vs ZCBiZSBpZ25vcmVkLiBUaGlzCiMgZmxhZyBtZWNoYW5pc20gaW52b2x2ZXMg ZXh0cmEgY29kZSBhbmQgcHJvY2Vzc29yIGN5Y2xlCiMgb3ZlcmhlYWQgaW4g dGhlIGluc3RydW1lbnRhdGlvbiBjb2RlLCBzbyBpdCBjYW4gYmUgZGlzYWJs ZWQKIyBpZiB0aGUgYXBwbGljYXRpb24gZGV2ZWxvcGVyIGlzIGludGVyZXN0 ZWQgaW4gYWxsCiMgaW5zdHJ1bWVudGF0aW9uIGV2ZW50cy4KIwpjZGxfb3B0 aW9uIENZR0RCR19LRVJORUxfSU5TVFJVTUVOVF9GTEFHUyB7CiAgICAjIFRo aXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQ S0dfS0VSTkVMX0lOU1RSVU1FTlQgaXMgZGlzYWJsZWQKCiAgICAjIEZsYXZv cjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2 YWx1ZTogMQp9OwoKIyBJbnN0cnVtZW50IHRoZSBzY2hlZHVsZXIKIyBJdCBp cyBwb3NzaWJsZSB0byBwZXJmb3JtIHNlbGVjdGl2ZSBpbnN0cnVtZW50YXRp b24gYXQKIyBydW4tdGltZS4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBkaXNh YmxlIGluc3RydW1lbnRhdGlvbgojIGluIHZhcmlvdXMga2VybmVsIGNvbXBv bmVudHMgYXQgY29tcGlsZS10aW1lLCB0aHVzCiMgcmVkdWNpbmcgdGhlIGNv ZGUgc2l6ZSBvdmVyaGVhZHMuIFRoaXMgb3B0aW9uIGNvbnRyb2xzCiMgd2hl dGhlciBvciBub3QgaW5zdHJ1bWVudGF0aW9uIHN1cHBvcnQgaXMgY29tcGls ZWQgaW50bwojIHRoZSBzY2hlZHVsaW5nIGNvZGUuCiMKY2RsX29wdGlvbiBD WUdEQkdfS0VSTkVMX0lOU1RSVU1FTlRfU0NIRUQgewogICAgIyBUaGlzIG9w dGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0tF Uk5FTF9JTlNUUlVNRU5UIGlzIGRpc2FibGVkCiAgICAjIEFjdGl2ZUlmIGNv bnN0cmFpbnQ6IENZR1BLR19LRVJORUxfU0NIRUQKICAgICMgICAgIENZR1BL R19LRVJORUxfU0NIRUQgPT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBGbGF2 b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDEKfTsKCiMgSW5zdHJ1bWVudCB0aHJlYWQgb3BlcmF0aW9ucwoj IEl0IGlzIHBvc3NpYmxlIHRvIHBlcmZvcm0gc2VsZWN0aXZlIGluc3RydW1l bnRhdGlvbiBhdAojIHJ1bi10aW1lLiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRv IGRpc2FibGUgaW5zdHJ1bWVudGF0aW9uCiMgaW4gdmFyaW91cyBrZXJuZWwg Y29tcG9uZW50cyBhdCBjb21waWxlLXRpbWUsIHRodXMKIyByZWR1Y2luZyB0 aGUgY29kZSBzaXplIG92ZXJoZWFkcy4gVGhpcyBvcHRpb24gY29udHJvbHMK IyB3aGV0aGVyIG9yIG5vdCBpbnN0cnVtZW50YXRpb24gc3VwcG9ydCBpcyBj b21waWxlZCBpbnRvCiMgdGhlIGNvZGUgdGhhdCBtYW5pcHVsYXRlcyB0aHJl YWRzLgojCmNkbF9vcHRpb24gQ1lHREJHX0tFUk5FTF9JTlNUUlVNRU5UX1RI UkVBRCB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMg VGhlIHBhcmVudCBDWUdQS0dfS0VSTkVMX0lOU1RSVU1FTlQgaXMgZGlzYWJs ZWQKICAgICMgQWN0aXZlSWYgY29uc3RyYWludDogQ1lHUEtHX0tFUk5FTF9U SFJFQURTCiAgICAjICAgICBDWUdQS0dfS0VSTkVMX1RIUkVBRFMgPT0gMQog ICAgIyAgIC0tPiAxCgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNl ciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92 aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgSW5zdHJ1 bWVudCBpbnRlcnJ1cHRzCiMgSXQgaXMgcG9zc2libGUgdG8gcGVyZm9ybSBz ZWxlY3RpdmUgaW5zdHJ1bWVudGF0aW9uIGF0CiMgcnVuLXRpbWUuIEl0IGlz IGFsc28gcG9zc2libGUgdG8gZGlzYWJsZSBpbnN0cnVtZW50YXRpb24KIyBp biB2YXJpb3VzIGtlcm5lbCBjb21wb25lbnRzIGF0IGNvbXBpbGUtdGltZSwg dGh1cwojIHJlZHVjaW5nIHRoZSBjb2RlIHNpemUgb3ZlcmhlYWRzLiBUaGlz IG9wdGlvbiBjb250cm9scwojIHdoZXRoZXIgb3Igbm90IGluc3RydW1lbnRh dGlvbiBzdXBwb3J0IGlzIGNvbXBpbGVkIGludG8KIyB0aGUgaW50ZXJydXB0 IGhhbmRsaW5nIGNvZGUuCiMKY2RsX29wdGlvbiBDWUdEQkdfS0VSTkVMX0lO U1RSVU1FTlRfSU5UUiB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3Rp dmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfS0VSTkVMX0lOU1RSVU1FTlQg aXMgZGlzYWJsZWQKICAgICMgQWN0aXZlSWYgY29uc3RyYWludDogQ1lHUEtH X0tFUk5FTF9JTlRFUlJVUFRTCiAgICAjICAgICBDWUdQS0dfS0VSTkVMX0lO VEVSUlVQVFMgPT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBGbGF2b3I6IGJv b2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAg ICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6 IDEKfTsKCiMgSW5zdHJ1bWVudCBtdXRleCBvcGVyYXRpb25zCiMgSXQgaXMg cG9zc2libGUgdG8gcGVyZm9ybSBzZWxlY3RpdmUgaW5zdHJ1bWVudGF0aW9u IGF0CiMgcnVuLXRpbWUuIEl0IGlzIGFsc28gcG9zc2libGUgdG8gZGlzYWJs ZSBpbnN0cnVtZW50YXRpb24KIyBpbiB2YXJpb3VzIGtlcm5lbCBjb21wb25l bnRzIGF0IGNvbXBpbGUtdGltZSwgdGh1cwojIHJlZHVjaW5nIHRoZSBjb2Rl IHNpemUgb3ZlcmhlYWRzLiBUaGlzIG9wdGlvbiBjb250cm9scwojIHdoZXRo ZXIgb3Igbm90IGluc3RydW1lbnRhdGlvbiBzdXBwb3J0IGlzIGNvbXBpbGVk IGludG8KIyB0aGUgbXV0ZXggY29kZS4KIwpjZGxfb3B0aW9uIENZR0RCR19L RVJORUxfSU5TVFJVTUVOVF9NVVRFWCB7CiAgICAjIFRoaXMgb3B0aW9uIGlz IG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfS0VSTkVMX0lO U1RSVU1FTlQgaXMgZGlzYWJsZWQKICAgICMgQWN0aXZlSWYgY29uc3RyYWlu dDogQ1lHUEtHX0tFUk5FTF9TWU5DSAogICAgIyAgICAgQ1lHUEtHX0tFUk5F TF9TWU5DSCA9PSAxCiAgICAjICAgLS0+IDEKCiAgICAjIEZsYXZvcjogYm9v bAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAg ICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTog MQp9OwoKIyBJbnN0cnVtZW50IGNvbmRpdGlvbiB2YXJpYWJsZSBvcGVyYXRp b25zCiMgSXQgaXMgcG9zc2libGUgdG8gcGVyZm9ybSBzZWxlY3RpdmUgaW5z dHJ1bWVudGF0aW9uIGF0CiMgcnVuLXRpbWUuIEl0IGlzIGFsc28gcG9zc2li bGUgdG8gZGlzYWJsZSBpbnN0cnVtZW50YXRpb24KIyBpbiB2YXJpb3VzIGtl cm5lbCBjb21wb25lbnRzIGF0IGNvbXBpbGUtdGltZSwgdGh1cwojIHJlZHVj aW5nIHRoZSBjb2RlIHNpemUgb3ZlcmhlYWRzLiBUaGlzIG9wdGlvbiBjb250 cm9scwojIHdoZXRoZXIgb3Igbm90IGluc3RydW1lbnRhdGlvbiBzdXBwb3J0 IGlzIGNvbXBpbGVkIGludG8KIyB0aGUgY29uZGl0aW9uIHZhcmlhYmxlIGNv ZGUuCiMKY2RsX29wdGlvbiBDWUdEQkdfS0VSTkVMX0lOU1RSVU1FTlRfQ09O RFZBUiB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMg VGhlIHBhcmVudCBDWUdQS0dfS0VSTkVMX0lOU1RSVU1FTlQgaXMgZGlzYWJs ZWQKICAgICMgQWN0aXZlSWYgY29uc3RyYWludDogQ1lHUEtHX0tFUk5FTF9T WU5DSAogICAgIyAgICAgQ1lHUEtHX0tFUk5FTF9TWU5DSCA9PSAxCiAgICAj ICAgLS0+IDEKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRl ZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyBJbnN0cnVtZW50 IGJpbmFyeSBzZW1hcGhvcmUgb3BlcmF0aW9ucwojIEl0IGlzIHBvc3NpYmxl IHRvIHBlcmZvcm0gc2VsZWN0aXZlIGluc3RydW1lbnRhdGlvbiBhdAojIHJ1 bi10aW1lLiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGRpc2FibGUgaW5zdHJ1 bWVudGF0aW9uCiMgaW4gdmFyaW91cyBrZXJuZWwgY29tcG9uZW50cyBhdCBj b21waWxlLXRpbWUsIHRodXMKIyByZWR1Y2luZyB0aGUgY29kZSBzaXplIG92 ZXJoZWFkcy4gVGhpcyBvcHRpb24gY29udHJvbHMKIyB3aGV0aGVyIG9yIG5v dCBpbnN0cnVtZW50YXRpb24gc3VwcG9ydCBpcyBjb21waWxlZCBpbnRvCiMg dGhlIGJpbmFyeSBzZW1hcGhvcmUgY29kZS4KIwpjZGxfb3B0aW9uIENZR0RC R19LRVJORUxfSU5TVFJVTUVOVF9CSU5TRU0gewogICAgIyBUaGlzIG9wdGlv biBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0tFUk5F TF9JTlNUUlVNRU5UIGlzIGRpc2FibGVkCiAgICAjIEFjdGl2ZUlmIGNvbnN0 cmFpbnQ6IENZR1BLR19LRVJORUxfU1lOQ0gKICAgICMgICAgIENZR1BLR19L RVJORUxfU1lOQ0ggPT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBGbGF2b3I6 IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAx CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFs dWU6IDEKfTsKCiMgSW5zdHJ1bWVudCBjb3VudGluZyBzZW1hcGhvcmUgb3Bl cmF0aW9ucwojIEl0IGlzIHBvc3NpYmxlIHRvIHBlcmZvcm0gc2VsZWN0aXZl IGluc3RydW1lbnRhdGlvbiBhdAojIHJ1bi10aW1lLiBJdCBpcyBhbHNvIHBv c3NpYmxlIHRvIGRpc2FibGUgaW5zdHJ1bWVudGF0aW9uCiMgaW4gdmFyaW91 cyBrZXJuZWwgY29tcG9uZW50cyBhdCBjb21waWxlLXRpbWUsIHRodXMKIyBy ZWR1Y2luZyB0aGUgY29kZSBzaXplIG92ZXJoZWFkcy4gVGhpcyBvcHRpb24g Y29udHJvbHMKIyB3aGV0aGVyIG9yIG5vdCBpbnN0cnVtZW50YXRpb24gc3Vw cG9ydCBpcyBjb21waWxlZCBpbnRvCiMgdGhlIGNvdW50aW5nIHNlbWFwaG9y ZSBjb2RlLgojCmNkbF9vcHRpb24gQ1lHREJHX0tFUk5FTF9JTlNUUlVNRU5U X0NOVFNFTSB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAg ICMgVGhlIHBhcmVudCBDWUdQS0dfS0VSTkVMX0lOU1RSVU1FTlQgaXMgZGlz YWJsZWQKICAgICMgQWN0aXZlSWYgY29uc3RyYWludDogQ1lHUEtHX0tFUk5F TF9TWU5DSAogICAgIyAgICAgQ1lHUEtHX0tFUk5FTF9TWU5DSCA9PSAxCiAg ICAjICAgLS0+IDEKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2Vy IHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3Zp ZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNl IGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyBJbnN0cnVt ZW50IG1lc3NhZ2UgYm94IG9wZXJhdGlvbnMKIyBJdCBpcyBwb3NzaWJsZSB0 byBwZXJmb3JtIHNlbGVjdGl2ZSBpbnN0cnVtZW50YXRpb24gYXQKIyBydW4t dGltZS4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBkaXNhYmxlIGluc3RydW1l bnRhdGlvbgojIGluIHZhcmlvdXMga2VybmVsIGNvbXBvbmVudHMgYXQgY29t cGlsZS10aW1lLCB0aHVzCiMgcmVkdWNpbmcgdGhlIGNvZGUgc2l6ZSBvdmVy aGVhZHMuIFRoaXMgb3B0aW9uIGNvbnRyb2xzCiMgd2hldGhlciBvciBub3Qg aW5zdHJ1bWVudGF0aW9uIHN1cHBvcnQgaXMgY29tcGlsZWQgaW50bwojIHRo ZSBtZXNzYWdlIGJveCBjb2RlLgojCmNkbF9vcHRpb24gQ1lHREJHX0tFUk5F TF9JTlNUUlVNRU5UX01CT1hUIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90 IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19LRVJORUxfSU5TVFJV TUVOVCBpcyBkaXNhYmxlZAogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBD WUdQS0dfS0VSTkVMX1NZTkNICiAgICAjICAgICBDWUdQS0dfS0VSTkVMX1NZ TkNIID09IDEKICAgICMgICAtLT4gMQoKICAgICMgRmxhdm9yOiBib29sCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07 CgojIEluc3RydW1lbnQgY2xvY2sgb3BlcmF0aW9ucwojIEl0IGlzIHBvc3Np YmxlIHRvIHBlcmZvcm0gc2VsZWN0aXZlIGluc3RydW1lbnRhdGlvbiBhdAoj IHJ1bi10aW1lLiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGRpc2FibGUgaW5z dHJ1bWVudGF0aW9uCiMgaW4gdmFyaW91cyBrZXJuZWwgY29tcG9uZW50cyBh dCBjb21waWxlLXRpbWUsIHRodXMKIyByZWR1Y2luZyB0aGUgY29kZSBzaXpl IG92ZXJoZWFkcy4gVGhpcyBvcHRpb24gY29udHJvbHMKIyB3aGV0aGVyIG9y IG5vdCBpbnN0cnVtZW50YXRpb24gc3VwcG9ydCBpcyBjb21waWxlZCBpbnRv CiMgdGhlIHJlYWwtdGltZSBjbG9jayBjb2RlLgojCmNkbF9vcHRpb24gQ1lH REJHX0tFUk5FTF9JTlNUUlVNRU5UX0NMT0NLIHsKICAgICMgVGhpcyBvcHRp b24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19LRVJO RUxfSU5TVFJVTUVOVCBpcyBkaXNhYmxlZAogICAgIyBBY3RpdmVJZiBjb25z dHJhaW50OiBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NMT0NLCiAgICAjICAg ICBDWUdWQVJfS0VSTkVMX0NPVU5URVJTX0NMT0NLID09IDEKICAgICMgICAt LT4gMQoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVs dAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07CgojIEluc3RydW1lbnQgYWxh cm0tcmVsYXRlZCBvcGVyYXRpb25zCiMgSXQgaXMgcG9zc2libGUgdG8gcGVy Zm9ybSBzZWxlY3RpdmUgaW5zdHJ1bWVudGF0aW9uIGF0CiMgcnVuLXRpbWUu IEl0IGlzIGFsc28gcG9zc2libGUgdG8gZGlzYWJsZSBpbnN0cnVtZW50YXRp b24KIyBpbiB2YXJpb3VzIGtlcm5lbCBjb21wb25lbnRzIGF0IGNvbXBpbGUt dGltZSwgdGh1cwojIHJlZHVjaW5nIHRoZSBjb2RlIHNpemUgb3ZlcmhlYWRz LiBUaGlzIG9wdGlvbiBjb250cm9scwojIHdoZXRoZXIgb3Igbm90IGluc3Ry dW1lbnRhdGlvbiBzdXBwb3J0IGlzIGNvbXBpbGVkIGludG8KIyB0aGUgY29k ZSByZWxhdGVkIHRvIGFsYXJtIG9wZXJhdGlvbnMuCiMKY2RsX29wdGlvbiBD WUdEQkdfS0VSTkVMX0lOU1RSVU1FTlRfQUxBUk0gewogICAgIyBUaGlzIG9w dGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0tF Uk5FTF9JTlNUUlVNRU5UIGlzIGRpc2FibGVkCiAgICAjIEFjdGl2ZUlmIGNv bnN0cmFpbnQ6IENZR1ZBUl9LRVJORUxfQ09VTlRFUlNfQ0xPQ0sKICAgICMg ICAgIENZR1ZBUl9LRVJORUxfQ09VTlRFUlNfQ0xPQ0sgPT0gMQogICAgIyAg IC0tPiAxCgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgU3VwcG9ydCBhcHBs aWNhdGlvbi1sZXZlbCBpbnN0cnVtZW50YXRpb24KIyBJdCBpcyBwb3NzaWJs ZSB0byBwZXJmb3JtIHNlbGVjdGl2ZSBpbnN0cnVtZW50YXRpb24gYXQKIyBy dW4tdGltZS4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBkaXNhYmxlIGluc3Ry dW1lbnRhdGlvbgojIGluIHZhcmlvdXMga2VybmVsIGNvbXBvbmVudHMgYXQg Y29tcGlsZS10aW1lLCB0aHVzCiMgcmVkdWNpbmcgdGhlIGNvZGUgc2l6ZSBv dmVyaGVhZHMuIFRoaXMgb3B0aW9uIGNvbnRyb2xzCiMgd2hldGhlciBvciBu b3QgYXBwbGljYXRpb24tbGV2ZWwgaW5zdHJ1bWVudGF0aW9uIGdldHMKIyBj b21waWxlZCBpbi4KIwpjZGxfb3B0aW9uIENZR0RCR19LRVJORUxfSU5TVFJV TUVOVF9VU0VSIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQog ICAgIyBUaGUgcGFyZW50IENZR1BLR19LRVJORUxfSU5TVFJVTUVOVCBpcyBk aXNhYmxlZAoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVm YXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07CgojIDwKIyBTb3VyY2Ut bGV2ZWwgZGVidWdnaW5nIHN1cHBvcnQKIyBJZiB0aGUgc291cmNlIGxldmVs IGRlYnVnZ2VyIGdkYiBpcyB0byBiZSB1c2VkIGZvciBkZWJ1Z2dpbmcKIyBh cHBsaWNhdGlvbiBjb2RlIHRoZW4gaXQgbWF5IGJlIG5lY2Vzc2FyeSB0byBj b25maWd1cmUgaW4gc3VwcG9ydAojIGZvciB0aGlzIGluIHRoZSBrZXJuZWwu CiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfS0VSTkVMX0RFQlVHIHsKICAgICMg VGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIEluY2x1 ZGUgR0RCIG11bHRpLXRocmVhZGluZyBkZWJ1ZyBzdXBwb3J0CiMgVGhpcyBv cHRpb24gZW5hYmxlcyBzb21lIGV4dHJhIGtlcm5lbCBjb2RlIHdoaWNoIGlz IG5lZWRlZAojIHRvIHN1cHBvcnQgbXVsdGktdGhyZWFkZWQgc291cmNlIGxl dmVsIGRlYnVnZ2luZy4KIwpjZGxfb3B0aW9uIENZR0RCR19LRVJORUxfREVC VUdfR0RCX1RIUkVBRF9TVVBQT1JUIHsKICAgICMgRmxhdm9yOiBib29sCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCiAg ICAjIFJlcXVpcmVzOiBDWUdWQVJfS0VSTkVMX1RIUkVBRFNfTElTVAogICAg IyAgICAgQ1lHVkFSX0tFUk5FTF9USFJFQURTX0xJU1QgPT0gMQogICAgIyAg IC0tPiAxCiAgICAjIFJlcXVpcmVzOiBDWUdEQkdfSEFMX0RFQlVHX0dEQl9U SFJFQURfU1VQUE9SVAogICAgIyAgICAgQ1lHREJHX0hBTF9ERUJVR19HREJf VEhSRUFEX1NVUFBPUlQgPT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBUaGUg Zm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFs dWUKICAgICMgb3B0aW9uIENZR0RCR19IQUxfREVCVUdfR0RCX1RIUkVBRF9T VVBQT1JUCiAgICAjICAgICBBY3RpdmVJZjogIENZR1NFTV9IQUxfUk9NX01P TklUT1IgfHwgQ1lHREJHX0tFUk5FTF9ERUJVR19HREJfVEhSRUFEX1NVUFBP UlQgCn07CgojIDwKIyBLZXJuZWwgQVBJcwojIGRvYzogcmVkaXJlY3Qva2Vy bmVsLWFwaXMuaHRtbAojIFRoZSBlQ29zIGtlcm5lbCBpcyBpbXBsZW1lbnRl ZCBpbiBDKyssIHNvIGEgQysrIGludGVyZmFjZQojIHRvIHRoZSBrZXJuZWwg aXMgYWx3YXlzIGF2YWlsYWJsZS4gVGhlcmUgaXMgYWxzbyBhbiBvcHRpb25h bAojIEMgQVBJLiBBZGRpdGlvbmFsIEFQSSdzIG1heSBiZSBwcm92aWRlZCBp biBmdXR1cmUgdmVyc2lvbnMuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfS0VS TkVMX0FQSSB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUu Cn07CgojID4KIyBQcm92aWRlIEMgQVBJCiMgVGhlIGVDb3Mga2VybmVsIGlz IGltcGxlbWVudGVkIGluIEMrKywgYnV0IHRoZXJlIGlzIGFuCiMgb3B0aW9u YWwgQyBBUEkgZm9yIHVzZSBieSBhcHBsaWNhdGlvbiBjb2RlLiBUaGlzIEMg QVBJIGNhbiBiZQojIGRpc2FibGVkIGlmIHRoZSBhcHBsaWNhdGlvbiBjb2Rl IGRvZXMgbm90IGludm9rZSB0aGUga2VybmVsCiMgZGlyZWN0bHksIGJ1dCBp bnN0ZWFkIHVzZXMgaGlnaGVyIGxldmVsIGNvZGUgc3VjaCBhcyB0aGUKIyB1 SVRST04gY29tcGF0aWJpbGl0eSBsYXllci4KIwpjZGxfb3B0aW9uIENZR0ZV Tl9LRVJORUxfQVBJX0MgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKICAgICMgUmVx dWlyZXM6IENZR1BLR19NRU1BTExPQwogICAgIyAgICAgQ1lHUEtHX01FTUFM TE9DID09IGN1cnJlbnQKICAgICMgICAtLT4gMQogICAgIyBSZXF1aXJlczog Q1lHRlVOX01FTUFMTE9DX0tBUEkKICAgICMgICAgIENZR0ZVTl9NRU1BTExP Q19LQVBJID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2lu ZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAj IG9wdGlvbiBDWUdGVU5fTUVNQUxMT0NfS0FQSQogICAgIyAgICAgRGVmYXVs dFZhbHVlOiBDWUdGVU5fS0VSTkVMX0FQSV9DCn07CgojIDwKIyBLZXJuZWwg YnVpbGQgb3B0aW9ucwojIFBhY2thZ2Ugc3BlY2lmaWMgYnVpbGQgb3B0aW9u cyBpbmNsdWRpbmcgY29udHJvbCBvdmVyCiMgY29tcGlsZXIgZmxhZ3MgdXNl ZCBvbmx5IGluIGJ1aWxkaW5nIHRoaXMgcGFja2FnZSwKIyBhbmQgZGV0YWls cyBvZiB3aGljaCB0ZXN0cyBhcmUgYnVpbHQuCiMKY2RsX2NvbXBvbmVudCBD WUdQS0dfS0VSTkVMX09QVElPTlMgewogICAgIyBUaGVyZSBpcyBubyBhc3Nv Y2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgQWRkaXRpb25hbCBjb21waWxlciBm bGFncwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGls ZXIgZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhlIGVDb3Mga2VybmVsLiBUaGVz ZSBmbGFncyBhcmUgdXNlZCBpbiBhZGRpdGlvbgojIHRvIHRoZSBzZXQgb2Yg Z2xvYmFsIGZsYWdzLgojCmNkbF9vcHRpb24gQ1lHUEtHX0tFUk5FTF9DRkxB R1NfQUREIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgIiIKICAgICMgdmFsdWVfc291cmNlIGRl ZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIiIKfTsKCiMgU3VwcHJlc3Nl ZCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBz ZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhlIGVDb3Mg a2VybmVsLiBUaGVzZSBmbGFncyBhcmUgcmVtb3ZlZCBmcm9tCiMgdGhlIHNl dCBvZiBnbG9iYWwgZmxhZ3MgaWYgcHJlc2VudC4KIwpjZGxfb3B0aW9uIENZ R1BLR19LRVJORUxfQ0ZMQUdTX1JFTU9WRSB7CiAgICAjIEZsYXZvcjogZGF0 YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICIiCiAg ICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6 ICIiCn07CgojIEtlcm5lbCB0ZXN0cwojIFRoaXMgb3B0aW9uIHNwZWNpZmll cyB0aGUgc2V0IG9mIHRlc3RzIGZvciB0aGUgZUNvcyBrZXJuZWwuCiMKY2Rs X29wdGlvbiBDWUdQS0dfS0VSTkVMX1RFU1RTIHsKICAgICMgQ2FsY3VsYXRl ZCB2YWx1ZTogIAogICAgIyAgICAgICAgICAgICAgICAgICAgIENZR1BLR19I QUxfQVJNX0FFQiA/ICJ0ZXN0cy9iaW5fc2VtMCB0ZXN0cy9iaW5fc2VtMSB0 ZXN0cy9iaW5fc2VtMiB0ZXN0cy9jbG9jazAgdGVzdHMvY2xvY2sxIHRlc3Rz L2Nsb2NrY252IHRlc3RzL2NudF9zZW0wIHRlc3RzL2NudF9zZW0xIHRlc3Rz L2V4Y2VwdDEgdGVzdHMvZmxhZzAgdGVzdHMvZmxhZzEgdGVzdHMvaW50cjAg dGVzdHMva2Nsb2NrMCB0ZXN0cy9rY2xvY2sxIHRlc3RzL2tleGNlcHQxIHRl c3RzL2tpbnRyMCB0ZXN0cy9rbWJveDEgdGVzdHMva211dGV4MCB0ZXN0cy9r bXV0ZXgxIHRlc3RzL2tzY2hlZDEgdGVzdHMva3NlbTAgdGVzdHMva3NlbTEg dGVzdHMva2ZsYWcwIHRlc3RzL2tmbGFnMSB0ZXN0cy9rbG9jayB0ZXN0cy9r dGhyZWFkMCB0ZXN0cy9rdGhyZWFkMSB0ZXN0cy9tYm94MSB0ZXN0cy9tcXVl dWUxIHRlc3RzL211dGV4MCB0ZXN0cy9tdXRleDEgdGVzdHMvbXV0ZXgyIHRl c3RzL211dGV4MyB0ZXN0cy9zY2hlZDEgdGVzdHMvc3luYzIgdGVzdHMvc3lu YzMgdGVzdHMvdGhyZWFkMCB0ZXN0cy90aHJlYWQxIHRlc3RzL3RocmVhZDIg dGVzdHMvcmVsZWFzZSB0ZXN0cy9raWxsIHRlc3RzL3RocmVhZF9nZGIgdGVz dHMvdG1fYmFzaWMgdGVzdHMvZGhyeXN0b25lIiA6ICBDWUdQS0dfSEFMX0FS TV9FQlNBMjg1ID8gInRlc3RzL2Jpbl9zZW0wIHRlc3RzL2Jpbl9zZW0xIHRl c3RzL2Jpbl9zZW0yIHRlc3RzL2Nsb2NrMCB0ZXN0cy9jbG9jazEgdGVzdHMv Y2xvY2tjbnYgdGVzdHMvY250X3NlbTAgdGVzdHMvY250X3NlbTEgdGVzdHMv ZXhjZXB0MSB0ZXN0cy9mbGFnMCB0ZXN0cy9mbGFnMSB0ZXN0cy9pbnRyMCB0 ZXN0cy9rY2xvY2swIHRlc3RzL2tjbG9jazEgdGVzdHMva2V4Y2VwdDEgdGVz dHMva2ludHIwIHRlc3RzL2ttYm94MSB0ZXN0cy9rbXV0ZXgwIHRlc3RzL2tt dXRleDEgdGVzdHMva3NjaGVkMSB0ZXN0cy9rc2VtMCB0ZXN0cy9rc2VtMSB0 ZXN0cy9rZmxhZzAgdGVzdHMva2ZsYWcxIHRlc3RzL2tsb2NrIHRlc3RzL2t0 aHJlYWQwIHRlc3RzL2t0aHJlYWQxIHRlc3RzL21ib3gxIHRlc3RzL21xdWV1 ZTEgdGVzdHMvbXV0ZXgwIHRlc3RzL211dGV4MSB0ZXN0cy9tdXRleDIgdGVz dHMvbXV0ZXgzIHRlc3RzL3NjaGVkMSB0ZXN0cy9zeW5jMiB0ZXN0cy9zeW5j MyB0ZXN0cy90aHJlYWQwIHRlc3RzL3RocmVhZDEgdGVzdHMvdGhyZWFkMiB0 ZXN0cy9yZWxlYXNlIHRlc3RzL2tpbGwgdGVzdHMvdGhyZWFkX2dkYiB0ZXN0 cy90bV9iYXNpYyB0ZXN0cy9kaHJ5c3RvbmUgdGVzdHMvc3RyZXNzX3RocmVh ZHMgdGVzdHMva2NhY2hlMSB0ZXN0cy9rY2FjaGUyIiA6ICBDWUdQS0dfSEFM X0FSTV9FREI3WFhYID8gInRlc3RzL2Jpbl9zZW0wIHRlc3RzL2Jpbl9zZW0x IHRlc3RzL2Jpbl9zZW0yIHRlc3RzL2Nsb2NrMCB0ZXN0cy9jbG9jazEgdGVz dHMvY2xvY2tjbnYgdGVzdHMvY250X3NlbTAgdGVzdHMvY250X3NlbTEgdGVz dHMvZXhjZXB0MSB0ZXN0cy9mbGFnMCB0ZXN0cy9mbGFnMSB0ZXN0cy9pbnRy MCB0ZXN0cy9rY2xvY2swIHRlc3RzL2tjbG9jazEgdGVzdHMva2V4Y2VwdDEg dGVzdHMva2ludHIwIHRlc3RzL2ttYm94MSB0ZXN0cy9rbXV0ZXgwIHRlc3Rz L2ttdXRleDEgdGVzdHMva3NjaGVkMSB0ZXN0cy9rc2VtMCB0ZXN0cy9rc2Vt MSB0ZXN0cy9rZmxhZzAgdGVzdHMva2ZsYWcxIHRlc3RzL2tsb2NrIHRlc3Rz L2t0aHJlYWQwIHRlc3RzL2t0aHJlYWQxIHRlc3RzL21ib3gxIHRlc3RzL21x dWV1ZTEgdGVzdHMvbXV0ZXgwIHRlc3RzL211dGV4MSB0ZXN0cy9tdXRleDIg dGVzdHMvbXV0ZXgzIHRlc3RzL3NjaGVkMSB0ZXN0cy9zeW5jMiB0ZXN0cy9z eW5jMyB0ZXN0cy90aHJlYWQwIHRlc3RzL3RocmVhZDEgdGVzdHMvdGhyZWFk MiB0ZXN0cy9yZWxlYXNlIHRlc3RzL2tpbGwgdGVzdHMvdGhyZWFkX2dkYiB0 ZXN0cy90bV9iYXNpYyB0ZXN0cy9kaHJ5c3RvbmUgdGVzdHMvc3RyZXNzX3Ro cmVhZHMgdGVzdHMva2NhY2hlMSB0ZXN0cy9rY2FjaGUyIiA6ICBDWUdQS0df SEFMX0FSTV9DTUEyMzAgPyAidGVzdHMvYmluX3NlbTAgdGVzdHMvYmluX3Nl bTEgdGVzdHMvYmluX3NlbTIgdGVzdHMvY2xvY2swIHRlc3RzL2Nsb2NrMSB0 ZXN0cy9jbG9ja2NudiB0ZXN0cy9jbnRfc2VtMCB0ZXN0cy9jbnRfc2VtMSB0 ZXN0cy9mbGFnMCB0ZXN0cy9mbGFnMSB0ZXN0cy9pbnRyMCB0ZXN0cy9rY2xv Y2swIHRlc3RzL2tjbG9jazEgdGVzdHMva2ludHIwIHRlc3RzL2ttYm94MSB0 ZXN0cy9rbXV0ZXgwIHRlc3RzL2ttdXRleDEgdGVzdHMva3NjaGVkMSB0ZXN0 cy9rc2VtMCB0ZXN0cy9rc2VtMSB0ZXN0cy9rZmxhZzAgdGVzdHMva2ZsYWcx IHRlc3RzL2tsb2NrIHRlc3RzL2t0aHJlYWQwIHRlc3RzL2t0aHJlYWQxIHRl c3RzL21ib3gxIHRlc3RzL21xdWV1ZTEgdGVzdHMvbXV0ZXgwIHRlc3RzL211 dGV4MSB0ZXN0cy9tdXRleDIgdGVzdHMvbXV0ZXgzIHRlc3RzL3NjaGVkMSB0 ZXN0cy9zeW5jMiB0ZXN0cy9zeW5jMyB0ZXN0cy90aHJlYWQwIHRlc3RzL3Ro cmVhZDEgdGVzdHMvdGhyZWFkMiB0ZXN0cy9yZWxlYXNlIHRlc3RzL2tpbGwg dGVzdHMvdGhyZWFkX2dkYiB0ZXN0cy90bV9iYXNpYyB0ZXN0cy9kaHJ5c3Rv bmUiIDogIENZR1BLR19IQUxfQVJNID8gInRlc3RzL2Jpbl9zZW0wIHRlc3Rz L2Jpbl9zZW0xIHRlc3RzL2Jpbl9zZW0yIHRlc3RzL2Nsb2NrMCB0ZXN0cy9j bG9jazEgdGVzdHMvY2xvY2tjbnYgdGVzdHMvY250X3NlbTAgdGVzdHMvY250 X3NlbTEgdGVzdHMvZXhjZXB0MSB0ZXN0cy9mbGFnMCB0ZXN0cy9mbGFnMSB0 ZXN0cy9pbnRyMCB0ZXN0cy9rY2xvY2swIHRlc3RzL2tjbG9jazEgdGVzdHMv a2V4Y2VwdDEgdGVzdHMva2ludHIwIHRlc3RzL2ttYm94MSB0ZXN0cy9rbXV0 ZXgwIHRlc3RzL2ttdXRleDEgdGVzdHMva3NjaGVkMSB0ZXN0cy9rc2VtMCB0 ZXN0cy9rc2VtMSB0ZXN0cy9rZmxhZzAgdGVzdHMva2ZsYWcxIHRlc3RzL2ts b2NrIHRlc3RzL2t0aHJlYWQwIHRlc3RzL2t0aHJlYWQxIHRlc3RzL21ib3gx IHRlc3RzL21xdWV1ZTEgdGVzdHMvbXV0ZXgwIHRlc3RzL211dGV4MSB0ZXN0 cy9tdXRleDIgdGVzdHMvbXV0ZXgzIHRlc3RzL3NjaGVkMSB0ZXN0cy9zeW5j MiB0ZXN0cy9zeW5jMyB0ZXN0cy90aHJlYWQwIHRlc3RzL3RocmVhZDEgdGVz dHMvdGhyZWFkMiB0ZXN0cy9yZWxlYXNlIHRlc3RzL2tpbGwgdGVzdHMvdGhy ZWFkX2dkYiB0ZXN0cy90bV9iYXNpYyB0ZXN0cy9kaHJ5c3RvbmUiIDogICJ0 ZXN0cy9iaW5fc2VtMCB0ZXN0cy9iaW5fc2VtMSB0ZXN0cy9iaW5fc2VtMiB0 ZXN0cy9jbG9jazAgdGVzdHMvY2xvY2sxIHRlc3RzL2Nsb2NrY252IHRlc3Rz L2NudF9zZW0wIHRlc3RzL2NudF9zZW0xIHRlc3RzL2V4Y2VwdDEgdGVzdHMv ZmxhZzAgdGVzdHMvZmxhZzEgdGVzdHMvaW50cjAgdGVzdHMva2Nsb2NrMCB0 ZXN0cy9rY2xvY2sxIHRlc3RzL2tleGNlcHQxIHRlc3RzL2tpbnRyMCB0ZXN0 cy9rbWJveDEgdGVzdHMva211dGV4MCB0ZXN0cy9rbXV0ZXgxIHRlc3RzL2tz Y2hlZDEgdGVzdHMva3NlbTAgdGVzdHMva3NlbTEgdGVzdHMva2ZsYWcwIHRl c3RzL2tmbGFnMSB0ZXN0cy9rbG9jayB0ZXN0cy9rdGhyZWFkMCB0ZXN0cy9r dGhyZWFkMSB0ZXN0cy9tYm94MSB0ZXN0cy9tcXVldWUxIHRlc3RzL211dGV4 MCB0ZXN0cy9tdXRleDEgdGVzdHMvbXV0ZXgyIHRlc3RzL211dGV4MyB0ZXN0 cy9zY2hlZDEgdGVzdHMvc3luYzIgdGVzdHMvc3luYzMgdGVzdHMvdGhyZWFk MCB0ZXN0cy90aHJlYWQxIHRlc3RzL3RocmVhZDIgdGVzdHMvcmVsZWFzZSB0 ZXN0cy9raWxsIHRlc3RzL3RocmVhZF9nZGIgdGVzdHMvdG1fYmFzaWMgdGVz dHMvZGhyeXN0b25lIHRlc3RzL3N0cmVzc190aHJlYWRzIHRlc3RzL2tjYWNo ZTEgdGVzdHMva2NhY2hlMiIgCiAgICAjICAgICAgICAgICAgICAgICAKICAg ICMgICAgIENZR1BLR19IQUxfQVJNX0FFQiAodW5rbm93bikgPT0gMAogICAg IyAgICAgQ1lHUEtHX0hBTF9BUk1fRUJTQTI4NSAodW5rbm93bikgPT0gMAog ICAgIyAgICAgQ1lHUEtHX0hBTF9BUk1fRURCN1hYWCAodW5rbm93bikgPT0g MAogICAgIyAgICAgQ1lHUEtHX0hBTF9BUk1fQ01BMjMwICh1bmtub3duKSA9 PSAwCiAgICAjICAgICBDWUdQS0dfSEFMX0FSTSAodW5rbm93bikgPT0gMAog ICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogdGVzdHMv YmluX3NlbTAgdGVzdHMvYmluX3NlbTEgdGVzdHMvYmluX3NlbTIgdGVzdHMv Y2xvY2swIHRlc3RzL2Nsb2NrMSB0ZXN0cy9jbG9ja2NudiB0ZXN0cy9jbnRf c2VtMCB0ZXN0cy9jbnRfc2VtMSB0ZXN0cy9leGNlcHQxIHRlc3RzL2ZsYWcw IHRlc3RzL2ZsYWcxIHRlc3RzL2ludHIwIHRlc3RzL2tjbG9jazAgdGVzdHMv a2Nsb2NrMSB0ZXN0cy9rZXhjZXB0MSB0ZXN0cy9raW50cjAgdGVzdHMva21i b3gxIHRlc3RzL2ttdXRleDAgdGVzdHMva211dGV4MSB0ZXN0cy9rc2NoZWQx IHRlc3RzL2tzZW0wIHRlc3RzL2tzZW0xIHRlc3RzL2tmbGFnMCB0ZXN0cy9r ZmxhZzEgdGVzdHMva2xvY2sgdGVzdHMva3RocmVhZDAgdGVzdHMva3RocmVh ZDEgdGVzdHMvbWJveDEgdGVzdHMvbXF1ZXVlMSB0ZXN0cy9tdXRleDAgdGVz dHMvbXV0ZXgxIHRlc3RzL211dGV4MiB0ZXN0cy9tdXRleDMgdGVzdHMvc2No ZWQxIHRlc3RzL3N5bmMyIHRlc3RzL3N5bmMzIHRlc3RzL3RocmVhZDAgdGVz dHMvdGhyZWFkMSB0ZXN0cy90aHJlYWQyIHRlc3RzL3JlbGVhc2UgdGVzdHMv a2lsbCB0ZXN0cy90aHJlYWRfZ2RiIHRlc3RzL3RtX2Jhc2ljIHRlc3RzL2Ro cnlzdG9uZSB0ZXN0cy9zdHJlc3NfdGhyZWFkcyB0ZXN0cy9rY2FjaGUxIHRl c3RzL2tjYWNoZTIKfTsKCiMgPAojIDwKIyBEeW5hbWljIG1lbW9yeSBhbGxv Y2F0aW9uCiMgVGhpcyBwYWNrYWdlIHByb3ZpZGVzIG1lbW9yeSBhbGxvY2F0 b3IgaW5mcmFzdHJ1Y3R1cmUgcmVxdWlyZWQgZm9yCiMgZHluYW1pYyBtZW1v cnkgYWxsb2NhdG9ycywgaW5jbHVkaW5nIHRoZSBJU08gc3RhbmRhcmQgbWFs bG9jCiMgaW50ZXJmYWNlLiBJdCBhbHNvIGNvbnRhaW5zIHNvbWUgc2FtcGxl IGltcGxlbWVudGF0aW9ucy4KIwpjZGxfcGFja2FnZSBDWUdQS0dfTUVNQUxM T0MgewogICAgIyBQYWNrYWdlcyBjYW5ub3QgYmUgYWRkZWQgb3IgcmVtb3Zl ZCwgbm9yIGNhbiB0aGVpciB2ZXJzaW9uIGJlIGNoYW5nZWQsCiAgICAjIHNp bXBseSBieSBlZGl0aW5nIHRoZWlyIHZhbHVlLiBJbnN0ZWFkIHRoZSBhcHBy b3ByaWF0ZSBjb25maWd1cmF0aW9uCiAgICAjIHNob3VsZCBiZSB1c2VkIHRv IHBlcmZvcm0gdGhlc2UgYWN0aW9ucy4KCiAgICAjIFRoaXMgdmFsdWUgY2Fu bm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogYm9vbGRhdGEK ICAgICMgQ3VycmVudCB2YWx1ZTogMSBjdXJyZW50CgogICAgIyBUaGUgZm9s bG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUK ICAgICMgb3B0aW9uIENZR0ZVTl9LRVJORUxfQVBJX0MKICAgICMgICAgIFJl cXVpcmVzOiBDWUdQS0dfTUVNQUxMT0MKICAgICMgcGFja2FnZSBDWUdQS0df TkVUCiAgICAjICAgICBSZXF1aXJlczogQ1lHUEtHX01FTUFMTE9DCn07Cgoj ID4KIyBNZW1vcnkgYWxsb2NhdG9yIGltcGxlbWVudGF0aW9ucwojIFRoaXMg Y29tcG9uZW50IGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxh dGVkIHRvIHRoZSAKIyB2YXJpb3VzIG1lbW9yeSBhbGxvY2F0b3JzIGF2YWls YWJsZS4KIwpjZGxfY29tcG9uZW50IENZR1BLR19NRU1BTExPQ19BTExPQ0FU T1JTIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsK CiMgPgojIEZpeGVkIGJsb2NrIGFsbG9jYXRvcgojIFRoaXMgY29tcG9uZW50 IGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRo ZSAKIyBmaXhlZCBibG9jayBtZW1vcnkgYWxsb2NhdG9yLgojCmNkbF9jb21w b25lbnQgQ1lHUEtHX01FTUFMTE9DX0FMTE9DQVRPUl9GSVhFRCB7CiAgICAj IFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUuCn07CgojID4KIyBNYWtl IHRocmVhZCBzYWZlCiMgV2l0aCB0aGlzIG9wdGlvbiBlbmFibGVkLCB0aGlz IGFsbG9jYXRvciB3aWxsIGJlCiMgbWFkZSB0aHJlYWQtc2FmZS4gQWRkaXRp b25hbGx5IGFsbG9jYXRpb24gZnVuY3Rpb25zCiMgYXJlIG1hZGUgYXZhaWxh YmxlIHRoYXQgYWxsb3cgYSB0aHJlYWQgdG8gd2FpdAojIHVudGlsIG1lbW9y eSBpcyBhdmFpbGFibGUuCiMKY2RsX29wdGlvbiBDWUdTRU1fTUVNQUxMT0Nf QUxMT0NBVE9SX0ZJWEVEX1RIUkVBREFXQVJFIHsKICAgICMgQWN0aXZlSWYg Y29uc3RyYWludDogQ1lHUEtHX0tFUk5FTAogICAgIyAgICAgQ1lHUEtHX0tF Uk5FTCA9PSBjdXJyZW50CiAgICAjICAgLS0+IDEKCiAgICAjIEZsYXZvcjog Ym9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMQp9OwoKIyA8CiMgU2ltcGxlIHZhcmlhYmxlIGJsb2NrIGFsbG9jYXRv cgojIFRoaXMgY29tcG9uZW50IGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb3B0 aW9ucyByZWxhdGVkIHRvIHRoZSAKIyBzaW1wbGUgdmFyaWFibGUgYmxvY2sg bWVtb3J5IGFsbG9jYXRvci4gVGhpcyBhbGxvY2F0b3IgaXMgbm90CiMgdmVy eSBmYXN0LCBhbmQgaW4gcGFydGljdWxhciBkb2VzIG5vdCBzY2FsZSB3ZWxs IHdpdGggbGFyZ2UKIyBudW1iZXJzIG9mIGFsbG9jYXRpb25zLiBJdCBpcyBo b3dldmVyIHZlcnkgY29tcGFjdCBpbiB0ZXJtcyBvZgojIGNvZGUgc2l6ZSBh bmQgZG9lcyBub3QgaGF2ZSB2ZXJ5IG11Y2ggb3ZlcmhlYWQgcGVyIGFsbG9j YXRpb24uCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfTUVNQUxMT0NfQUxMT0NB VE9SX1ZBUklBQkxFIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2 YWx1ZS4KfTsKCiMgPgojIE1ha2UgdGhyZWFkIHNhZmUKIyBXaXRoIHRoaXMg b3B0aW9uIGVuYWJsZWQsIHRoaXMgYWxsb2NhdG9yIHdpbGwgYmUKIyBtYWRl IHRocmVhZC1zYWZlLiBBZGRpdGlvbmFsbHkgYWxsb2NhdGlvbiBmdW5jdGlv bnMKIyBhcmUgYWRkZWQgdGhhdCBhbGxvdyBhIHRocmVhZCB0byB3YWl0IHVu dGlsIG1lbW9yeQojIGFyZSBtYWRlIGF2YWlsYWJsZSB0aGF0IGFsbG93IGEg dGhyZWFkIHRvIHdhaXQKIyB1bnRpbCBtZW1vcnkgaXMgYXZhaWxhYmxlLgoj CmNkbF9vcHRpb24gQ1lHU0VNX01FTUFMTE9DX0FMTE9DQVRPUl9WQVJJQUJM RV9USFJFQURBV0FSRSB7CiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFpbnQ6IENZ R1BLR19LRVJORUwKICAgICMgICAgIENZR1BLR19LRVJORUwgPT0gY3VycmVu dAogICAgIyAgIC0tPiAxCgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgQ29h bGVzY2UgbWVtb3J5CiMgVGhlIHZhcmlhYmxlLWJsb2NrIG1lbW9yeSBhbGxv Y2F0b3IgY2FuIHBlcmZvcm0gY29hbGVzY2luZwojIG9mIG1lbW9yeSB3aGVu ZXZlciB0aGUgYXBwbGljYXRpb24gY29kZSByZWxlYXNlcyBtZW1vcnkgYmFj awojIHRvIHRoZSBwb29sLiBUaGlzIGNvYWxlc2NpbmcgcmVkdWNlcyB0aGUg cG9zc2liaWxpdHkgb2YKIyBtZW1vcnkgZnJhZ21lbnRhdGlvbiBwcm9ibGVt cywgYnV0IGludm9sdmVzIGV4dHJhIGNvZGUgYW5kCiMgcHJvY2Vzc29yIGN5 Y2xlcy4KIwpjZGxfb3B0aW9uIENZR1NFTV9NRU1BTExPQ19BTExPQ0FUT1Jf VkFSSUFCTEVfQ09BTEVTQ0UgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMg Tm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0 byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVl X3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKCiAgICAj IFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhp cyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHSU1QX01FTUFMTE9DX01BTExPQ19W QVJJQUJMRV9TSU1QTEUKICAgICMgICAgIFJlcXVpcmVzOiBDWUdTRU1fTUVN QUxMT0NfQUxMT0NBVE9SX1ZBUklBQkxFX0NPQUxFU0NFCn07CgojIDwKIyBE b3VnIExlYSdzIG1hbGxvYwojIFRoaXMgY29tcG9uZW50IGNvbnRhaW5zIGNv bmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSAKIyBwb3J0IG9m IERvdWcgTGVhJ3MgbWVtb3J5IGFsbG9jYXRvciwgbm9ybWFsbHkga25vd24g YXMKIyBkbG1hbGxvYy4gZGxtYWxsb2MgaGFzIGEgcmVwdXRhdGlvbiBmb3Ig YmVpbmcgYm90aCBmYXN0CiMgYW5kIHNwYWNlLWNvbnNlcnZpbmcsIGFzIHdl bGwgYXMgcmVzaXN0aW5nIGZyYWdtZW50YXRpb24gd2VsbC4KIyBJdCBpcyBh IGNvbW1vbiBjaG9pY2UgZm9yIGEgZ2VuZXJhbCBwdXJwb3NlIGFsbG9jYXRv ciBhbmQKIyBoYXMgYmVlbiB1c2VkIGluIGJvdGggbmV3bGliIGFuZCBMaW51 eCBnbGliYy4KIwpjZGxfY29tcG9uZW50IENZR1BLR19NRU1BTExPQ19BTExP Q0FUT1JfRExNQUxMT0MgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVk IHZhbHVlLgp9OwoKIyA+CiMgRGVidWcgYnVpbGQKIyBEb3VnIExlYSdzIG1h bGxvYyBpbXBsZW1lbnRhdGlvbiBoYXMgc3Vic3RhbnRpYWwgYW1vdW50cwoj IG9mIGludGVybmFsIGNoZWNraW5nIGluIG9yZGVyIHRvIHZlcmlmeSB0aGUg b3BlcmF0aW9uCiMgYW5kIGNvbnNpc3RlbmN5IG9mIHRoZSBhbGxvY2F0b3Iu IEhvd2V2ZXIgdGhpcyBpbXBvc2VzCiMgc3Vic3RhbnRpYWwgb3ZlcmhlYWQg b24gZWFjaCBvcGVyYXRpb24uIFRoZXJlZm9yZSB0aGlzCiMgY2hlY2tpbmcg bWF5IGJlIGluZGl2aWR1YWxseSBkaXNhYmxlZC4KIwpjZGxfb3B0aW9uIENZ R0RCR19NRU1BTExPQ19BTExPQ0FUT1JfRExNQUxMT0NfREVCVUcgewogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6ICAwICE9IENZR0RCR19VU0VfQVNTRVJUUyAKICAgICMg ICAgIENZR0RCR19VU0VfQVNTRVJUUyA9PSAwCiAgICAjICAgLS0+IDAKICAg ICMgUmVxdWlyZXM6IENZR0RCR19VU0VfQVNTRVJUUwogICAgIyAgICAgQ1lH REJHX1VTRV9BU1NFUlRTID09IDAKICAgICMgICAtLT4gMAp9OwoKIyBNYWtl IHRocmVhZCBzYWZlCiMgV2l0aCB0aGlzIG9wdGlvbiBlbmFibGVkLCB0aGlz IGFsbG9jYXRvciB3aWxsIGJlCiMgbWFkZSB0aHJlYWQtc2FmZS4gQWRkaXRp b25hbGx5IGFsbG9jYXRpb24gZnVuY3Rpb25zCiMgYXJlIG1hZGUgYXZhaWxh YmxlIHRoYXQgYWxsb3cgYSB0aHJlYWQgdG8gd2FpdAojIHVudGlsIG1lbW9y eSBpcyBhdmFpbGFibGUuCiMKY2RsX29wdGlvbiBDWUdJTVBfTUVNQUxMT0Nf QUxMT0NBVE9SX0RMTUFMTE9DX1RIUkVBREFXQVJFIHsKICAgICMgQWN0aXZl SWYgY29uc3RyYWludDogQ1lHUEtHX0tFUk5FTAogICAgIyAgICAgQ1lHUEtH X0tFUk5FTCA9PSBjdXJyZW50CiAgICAjICAgLS0+IDEKCiAgICAjIEZsYXZv cjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2 YWx1ZTogMQogICAgIyBSZXF1aXJlczogQ1lHUEtHX0tFUk5FTAogICAgIyAg ICAgQ1lHUEtHX0tFUk5FTCA9PSBjdXJyZW50CiAgICAjICAgLS0+IDEKfTsK CiMgU3VwcG9ydCBtb3JlIHRoYW4gb25lIGluc3RhbmNlCiMgSGF2aW5nIHRo aXMgb3B0aW9uIGRpc2FibGVkIGFsbG93cyBpbXBvcnRhbnQKIyBpbXBsZW1l bnRhdGlvbiBzdHJ1Y3R1cmVzIHRvIGJlIGRlY2xhcmVkIGFzIGEgc2luZ2xl CiMgc3RhdGljIGluc3RhbmNlLCBhbGxvd2luZyBmYXN0ZXIgYWNjZXNzLiBI b3dldmVyIHRoaXMKIyB3b3VsZCBmYWlsIGlmIHRoZXJlIGlzIG1vcmUgdGhh biBvbmUgaW5zdGFuY2Ugb2YKIyB0aGUgZGxtYWxsb2MgYWxsb2NhdG9yIGNs YXNzLiBUaGVyZWZvcmUgdGhpcyBvcHRpb24gY2FuCiMgYmUgZW5hYmxlZCBp ZiBtdWx0aXBsZSBpbnN0YW5jZXMgYXJlIHJlcXVpcmVkLiBOb3RlOiBhcwoj IGEgc3BlY2lhbCBjYXNlLCBpZiB0aGlzIGFsbG9jYXRvciBpcyB1c2VkIGFz IHRoZQojIGltcGxlbWVudGF0aW9uIG9mIG1hbGxvYywgYW5kIGl0IGNhbiBi ZSBkZXRlcm1pbmVkIHRoZXJlCiMgaXMgbW9yZSB0aGFuIG9uZSBtYWxsb2Mg cG9vbCwgdGhlbiB0aGlzIG9wdGlvbiB3aWxsIGJlCiMgc2lsZW50bHkgZW5h YmxlZC4KIwpjZGxfb3B0aW9uIENZR0lNUF9NRU1BTExPQ19BTExPQ0FUT1Jf RExNQUxMT0NfU0FGRV9NVUxUSVBMRSB7CiAgICAjIEZsYXZvcjogYm9vbAog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9 OwoKIyBVc2Ugc3lzdGVtIG1lbWNweSgpIGFuZCBtZW1zZXQoKQojIFRoaXMg bWF5IGJlIHVzZWQgdG8gY29udHJvbCB3aGV0aGVyIG1lbXNldCgpIGFuZCBt ZW1jcHkoKQojIGFyZSB1c2VkIHdpdGhpbiB0aGUgaW1wbGVtZW50YXRpb24u IFRoZSBhbHRlcm5hdGl2ZSBpcwojIHRvIHVzZSBzb21lIG1hY3JvIGVxdWl2 YWxlbnRzLCB3aGljaCBzb21lIHBlb3BsZSByZXBvcnQKIyBhcmUgZmFzdGVy IGluIHNvbWUgY2lyY3Vtc3RhbmNlcy4KIwpjZGxfb3B0aW9uIENZR0lNUF9N RU1BTExPQ19BTExPQ0FUT1JfRExNQUxMT0NfVVNFX01FTUNQWSB7CiAgICAj IEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogIDAgIT0gQ1lHUEtHX0lTT0lORlJBIAogICAgIyAgICAg Q1lHUEtHX0lTT0lORlJBID09IGN1cnJlbnQKICAgICMgICAtLT4gMQogICAg IyBSZXF1aXJlczogQ1lHUEtHX0lTT0lORlJBCiAgICAjICAgICBDWUdQS0df SVNPSU5GUkEgPT0gY3VycmVudAogICAgIyAgIC0tPiAxCn07CgojIDwKIyA8 CiMgS2VybmVsIEMgQVBJIHN1cHBvcnQgZm9yIG1lbW9yeSBhbGxvY2F0aW9u CiMgVGhpcyBvcHRpb24gbXVzdCBiZSBlbmFibGVkIHRvIHByb3ZpZGUgdGhl IGV4dGVuc2lvbnMgcmVxdWlyZWQKIyB0byBzdXBwb3J0IGludGVncmF0aW9u IGludG8gdGhlIGtlcm5lbCBDIEFQSS4KIwpjZGxfb3B0aW9uIENZR0ZVTl9N RU1BTExPQ19LQVBJIHsKICAgICMgQWN0aXZlSWYgY29uc3RyYWludDogQ1lH UEtHX0tFUk5FTAogICAgIyAgICAgQ1lHUEtHX0tFUk5FTCA9PSBjdXJyZW50 CiAgICAjICAgLS0+IDEKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291 cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogQ1lHRlVOX0tFUk5F TF9BUElfQwogICAgIyAgICAgQ1lHRlVOX0tFUk5FTF9BUElfQyA9PSAxCiAg ICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBh cmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHRlVO X0tFUk5FTF9BUElfQwogICAgIyAgICAgUmVxdWlyZXM6IENZR0ZVTl9NRU1B TExPQ19LQVBJCn07CgojIG1hbGxvYygwKSByZXR1cm5zIE5VTEwKIyBUaGlz IG9wdGlvbiBjb250cm9scyB0aGUgYmVoYXZpb3Igb2YgbWFsbG9jKDApICgg b3IgY2FsbG9jIHdpdGgKIyBlaXRoZXIgYXJndW1lbnQgMCApLiBJdCBpcyBw ZXJtaXR0ZWQgYnkgdGhlIHN0YW5kYXJkIHRvIHJldHVybgojIGVpdGhlciBh IE5VTEwgcG9pbnRlciBvciBhIHVuaXF1ZSBwb2ludGVyLiBFbmFibGluZyB0 aGlzIG9wdGlvbgojIGZvcmNlcyBhIE5VTEwgcG9pbnRlciB0byBiZSByZXR1 cm5lZC4KIwpjZGxfb3B0aW9uIENZR1NFTV9NRU1BTExPQ19NQUxMT0NfWkVS T19SRVRVUk5TX05VTEwgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKfTsKCiMgbWFs bG9jKCkgYW5kIHN1cHBvcnRpbmcgYWxsb2NhdG9ycwojIFRoaXMgY29tcG9u ZW50IGVuYWJsZXMgc3VwcG9ydCBmb3IgZHluYW1pYyBtZW1vcnkKIyBhbGxv Y2F0aW9uIGFzIHN1cHBsaWVkIGJ5IHRoZSBmdW5jdGlvbnMgbWFsbG9jKCks CiMgZnJlZSgpLCBjYWxsb2MoKSBhbmQgcmVhbGxvYygpLiBBcyB0aGVzZQoj IGZ1bmN0aW9ucyBhcmUgb2Z0ZW4gdXNlZCwgYnV0IGNhbiBoYXZlIHF1aXRl IGFuCiMgb3ZlcmhlYWQsIGRpc2FibGluZyB0aGVtIGhlcmUgY2FuIGVuc3Vy ZSB0aGV5CiMgY2Fubm90IGV2ZW4gYmUgdXNlZCBhY2NpZGVudGFsbHkgd2hl biBzdGF0aWMKIyBhbGxvY2F0aW9uIGlzIHByZWZlcnJlZC4gV2l0aGluIHRo aXMgY29tcG9uZW50IGFyZQojIHZhcmlvdXMgYWxsb2NhdG9ycyB0aGF0IGNh biBiZSBzZWxlY3RlZCBmb3IgdXNlCiMgYXMgdGhlIHVuZGVybHlpbmcgaW1w bGVtZW50YXRpb24gb2YgdGhlIGR5bmFtaWMKIyBhbGxvY2F0aW9uIGZ1bmN0 aW9ucy4KIwpjZGxfY29tcG9uZW50IENZR1BLR19NRU1BTExPQ19NQUxMT0Nf QUxMT0NBVE9SUyB7CiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFpbnQ6IENZR1BL R19JU09JTkZSQQogICAgIyAgICAgQ1lHUEtHX0lTT0lORlJBID09IGN1cnJl bnQKICAgICMgICAtLT4gMQoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5v IHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8g cHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07CgojID4K IyBtYWxsb2MoKSBhbGxvY2F0b3IgaW1wbGVtZW50YXRpb25zCiMKY2RsX2lu dGVyZmFjZSBDWUdJTlRfTUVNQUxMT0NfTUFMTE9DX0FMTE9DQVRPUlMgewog ICAgIyBJbXBsZW1lbnRlZCBieSBDWUdJTVBfTUVNQUxMT0NfTUFMTE9DX1ZB UklBQkxFX1NJTVBMRSwgYWN0aXZlLCBkaXNhYmxlZAogICAgIyBJbXBsZW1l bnRlZCBieSBDWUdJTVBfTUVNQUxMT0NfTUFMTE9DX0RMTUFMTE9DLCBhY3Rp dmUsIGVuYWJsZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZp ZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFs dWU6IDEKICAgICMgUmVxdWlyZXM6ICBDWUdJTlRfTUVNQUxMT0NfTUFMTE9D X0FMTE9DQVRPUlMgPT0gMSAKICAgICMgICAgIENZR0lOVF9NRU1BTExPQ19N QUxMT0NfQUxMT0NBVE9SUyA9PSAxCiAgICAjICAgLS0+IDEKCiAgICAjIFRo ZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2 YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX01FTUFMTE9DX01BTExPQ19B TExPQ0FUT1JTCiAgICAjICAgICBSZXF1aXJlczogIENZR0lOVF9NRU1BTExP Q19NQUxMT0NfQUxMT0NBVE9SUyA9PSAxIAp9OwoKIyBtYWxsb2MoKSBpbXBs ZW1lbnRhdGlvbiBpbnN0YW50aWF0aW9uIGRhdGEKIyBNZW1vcnkgYWxsb2Nh dG9yIGltcGxlbWVudGF0aW9ucyB0aGF0IGFyZSBjYXBhYmxlIG9mIGJlaW5n CiMgdXNlZCB1bmRlcm5lYXRoIG1hbGxvYygpIG11c3QgYmUgaW5zdGFudGlh dGVkLiBUaGUgY29kZQojIHRvIGRvIHRoaXMgaXMgc2V0IGluIHRoaXMgb3B0 aW9uLiBJdCBpcyBvbmx5IGludGVuZGVkIHRvCiMgYmUgc2V0IGJ5IHRoZSBp bXBsZW1lbnRhdGlvbiwgbm90IHRoZSB1c2VyLgojCmNkbF9vcHRpb24gQ1lH QkxEX01FTUFMTE9DX01BTExPQ19JTVBMRU1FTlRBVElPTl9IRUFERVIgewog ICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSA8Y3lnL21lbWFsbG9jL2RsbWFsbG9jLmh4eD4KICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogPGN5 Zy9tZW1hbGxvYy9kbG1hbGxvYy5oeHg+CgogICAgIyBUaGUgZm9sbG93aW5n IHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMg b3B0aW9uIENZR0lNUF9NRU1BTExPQ19NQUxMT0NfVkFSSUFCTEVfU0lNUExF CiAgICAjICAgICBSZXF1aXJlczogIENZR0JMRF9NRU1BTExPQ19NQUxMT0Nf SU1QTEVNRU5UQVRJT05fSEVBREVSID09ICAiPGN5Zy9tZW1hbGxvYy9tZW12 YXIuaHh4PiIgCiAgICAjIG9wdGlvbiBDWUdJTVBfTUVNQUxMT0NfTUFMTE9D X0RMTUFMTE9DCiAgICAjICAgICBSZXF1aXJlczogIENZR0JMRF9NRU1BTExP Q19NQUxMT0NfSU1QTEVNRU5UQVRJT05fSEVBREVSID09ICAiPGN5Zy9tZW1h bGxvYy9kbG1hbGxvYy5oeHg+IiAKfTsKCiMgU2ltcGxlIHZhcmlhYmxlIGJs b2NrIGltcGxlbWVudGF0aW9uCiMgVGhpcyBjYXVzZXMgbWFsbG9jKCkgdG8g dXNlIHRoZSBzaW1wbGUKIyB2YXJpYWJsZSBibG9jayBhbGxvY2F0b3IuCiMK Y2RsX29wdGlvbiBDWUdJTVBfTUVNQUxMT0NfTUFMTE9DX1ZBUklBQkxFX1NJ TVBMRSB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVl LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25l LgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAogICAgIyBSZXF1aXJlczogIENZ R0JMRF9NRU1BTExPQ19NQUxMT0NfSU1QTEVNRU5UQVRJT05fSEVBREVSID09 ICAiPGN5Zy9tZW1hbGxvYy9tZW12YXIuaHh4PiIgCiAgICAjICAgICBDWUdC TERfTUVNQUxMT0NfTUFMTE9DX0lNUExFTUVOVEFUSU9OX0hFQURFUiA9PSA8 Y3lnL21lbWFsbG9jL2RsbWFsbG9jLmh4eD4KICAgICMgICAtLT4gMAogICAg IyBSZXF1aXJlczogQ1lHU0VNX01FTUFMTE9DX0FMTE9DQVRPUl9WQVJJQUJM RV9DT0FMRVNDRQogICAgIyAgICAgQ1lHU0VNX01FTUFMTE9DX0FMTE9DQVRP Ul9WQVJJQUJMRV9DT0FMRVNDRSA9PSAxCiAgICAjICAgLS0+IDEKfTsKCiMg RG91ZyBMZWEncyBtYWxsb2MgaW1wbGVtZW50YXRpb24KIyBUaGlzIGNhdXNl cyBtYWxsb2MoKSB0byB1c2UgYSB2ZXJzaW9uIG9mIERvdWcgTGVhJ3MKIyBt YWxsb2MgKGRsbWFsbG9jKSBhcyB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRh dGlvbi4KIwpjZGxfb3B0aW9uIENZR0lNUF9NRU1BTExPQ19NQUxMT0NfRExN QUxMT0MgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6ICBD WUdCTERfTUVNQUxMT0NfTUFMTE9DX0lNUExFTUVOVEFUSU9OX0hFQURFUiA9 PSAgIjxjeWcvbWVtYWxsb2MvZGxtYWxsb2MuaHh4PiIgCiAgICAjICAgICBD WUdCTERfTUVNQUxMT0NfTUFMTE9DX0lNUExFTUVOVEFUSU9OX0hFQURFUiA9 PSA8Y3lnL21lbWFsbG9jL2RsbWFsbG9jLmh4eD4KICAgICMgICAtLT4gMQp9 OwoKIyA8CiMgU2l6ZSBvZiB0aGUgZmFsbGJhY2sgZHluYW1pYyBtZW1vcnkg cG9vbCBpbiBieXRlcwojIElmICpubyogaGVhcHMgYXJlIGNvbmZpZ3VyZWQg aW4geW91ciBtZW1vcnkgbGF5b3V0LAojIGR5bmFtaWMgbWVtb3J5IGFsbG9j YXRpb24gYnkKIyBtYWxsb2MoKSBhbmQgY2FsbG9jKCkgbXVzdCBiZSBmcm9t IGEgZml4ZWQtc2l6ZSwKIyBjb250aWd1b3VzIG1lbW9yeSBwb29sIChub3Rl IGhlcmUgdGhhdCBpdCBpcyB0aGUKIyBwb29sIHRoYXQgaXMgb2YgYSBmaXhl ZCBzaXplLCBidXQgbWFsbG9jKCkgaXMgc3RpbGwKIyBhYmxlIHRvIGFsbG9j YXRlIHZhcmlhYmxlIHNpemVkIGNodW5rcyBvZiBtZW1vcnkKIyBmcm9tIGl0 KS4gVGhpcyBvcHRpb24gaXMgdGhlIHNpemUKIyBvZiB0aGF0IHBvb2wsIGlu IGJ5dGVzLiBOb3RlIHRoYXQgbm90IGFsbCBvZgojIHRoaXMgaXMgYXZhaWxh YmxlIGZvciBwcm9ncmFtcyB0bwojIHVzZSAtIHNvbWUgaXMgbmVlZGVkIGZv ciBpbnRlcm5hbCBpbmZvcm1hdGlvbgojIGFib3V0IG1lbW9yeSByZWdpb25z LCBhbmQgc29tZSBtYXkgYmUgbG9zdCB0bwojIGVuc3VyZSB0aGF0IG1lbW9y eSBhbGxvY2F0aW9uIG9ubHkgcmV0dXJucwojIG1lbW9yeSBhbGlnbmVkIG9u IHdvcmQgKG9yIGRvdWJsZSB3b3JkKQojIGJvdW5kYXJpZXMgLSBhIHZlcnkg Y29tbW9uIGFyY2hpdGVjdHVyZQojIGNvbnN0cmFpbnQuCiMKY2RsX29wdGlv biBDWUdOVU1fTUVNQUxMT0NfRkFMTEJBQ0tfTUFMTE9DX1BPT0xfU0laRSB7 CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNv bW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAg IyB1c2VyX3ZhbHVlIDE2Mzg0CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDE2Mzg0CiAgICAjIExlZ2FsIHZhbHVl czogMzIgdG8gMHg3ZmZmZmZmZgp9OwoKIyBDb21tb24gbWVtb3J5IGFsbG9j YXRvciBwYWNrYWdlIGJ1aWxkIG9wdGlvbnMKIyBQYWNrYWdlIHNwZWNpZmlj IGJ1aWxkIG9wdGlvbnMgaW5jbHVkaW5nIGNvbnRyb2wgb3ZlcgojIGNvbXBp bGVyIGZsYWdzIHVzZWQgb25seSBpbiBidWlsZGluZyB0aGlzIHBhY2thZ2Us CiMgYW5kIGRldGFpbHMgb2Ygd2hpY2ggdGVzdHMgYXJlIGJ1aWx0LgojCmNk bF9jb21wb25lbnQgQ1lHUEtHX01FTUFMTE9DX09QVElPTlMgewogICAgIyBU aGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgQWRkaXRp b25hbCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRo ZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhpcyBw YWNrYWdlLiBUaGVzZSBmbGFncyBhcmUgdXNlZCBpbiBhZGRpdGlvbgojIHRv IHRoZSBzZXQgb2YgZ2xvYmFsIGZsYWdzLgojCmNkbF9vcHRpb24gQ1lHUEtH X01FTUFMTE9DX0NGTEFHU19BREQgewogICAgIyBGbGF2b3I6IGRhdGEKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAiIgogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAiIgp9 OwoKIyBTdXBwcmVzc2VkIGNvbXBpbGVyIGZsYWdzCiMgVGhpcyBvcHRpb24g bW9kaWZpZXMgdGhlIHNldCBvZiBjb21waWxlciBmbGFncyBmb3IKIyBidWls ZGluZyB0aGlzIHBhY2thZ2UuIFRoZXNlIGZsYWdzIGFyZSByZW1vdmVkIGZy b20KIyB0aGUgc2V0IG9mIGdsb2JhbCBmbGFncyBpZiBwcmVzZW50LgojCmNk bF9vcHRpb24gQ1lHUEtHX01FTUFMTE9DX0NGTEFHU19SRU1PVkUgewogICAg IyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAiIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAiIgp9OwoKIyBUZXN0cwojIFRoaXMgb3B0aW9uIHNw ZWNpZmllcyB0aGUgc2V0IG9mIHRlc3RzIGZvciB0aGlzIHBhY2thZ2UuCiMK Y2RsX29wdGlvbiBDWUdQS0dfTUVNQUxMT0NfVEVTVFMgewogICAgIyBDYWxj dWxhdGVkIHZhbHVlOiAgInRlc3RzL2RsbWFsbG9jMSB0ZXN0cy9kbG1hbGxv YzIgdGVzdHMva21lbWZpeDEgdGVzdHMva21lbXZhcjEgdGVzdHMvbWFsbG9j MSB0ZXN0cy9tYWxsb2MyIHRlc3RzL21hbGxvYzMgdGVzdHMvbWFsbG9jNCB0 ZXN0cy9tZW1maXgxIHRlc3RzL21lbWZpeDIgdGVzdHMvbWVtdmFyMSB0ZXN0 cy9tZW12YXIyIHRlc3RzL3JlYWxsb2MiIAogICAgIyBGbGF2b3I6IGRhdGEK ICAgICMgQ3VycmVudF92YWx1ZTogdGVzdHMvZGxtYWxsb2MxIHRlc3RzL2Rs bWFsbG9jMiB0ZXN0cy9rbWVtZml4MSB0ZXN0cy9rbWVtdmFyMSB0ZXN0cy9t YWxsb2MxIHRlc3RzL21hbGxvYzIgdGVzdHMvbWFsbG9jMyB0ZXN0cy9tYWxs b2M0IHRlc3RzL21lbWZpeDEgdGVzdHMvbWVtZml4MiB0ZXN0cy9tZW12YXIx IHRlc3RzL21lbXZhcjIgdGVzdHMvcmVhbGxvYwp9OwoKIyA8CiMgPAojIElT TyBDIGFuZCBQT1NJWCBpbmZyYXN0cnVjdHVyZQojIGVDb3Mgc3VwcG9ydHMg aW1wbGVtZW50YXRpb25zIG9mIElTTyBDIGxpYnJhcmllcyBhbmQgUE9TSVgK IyBpbXBsZW1lbnRhdGlvbnMuIFRoaXMgcGFja2FnZSBwcm92aWRlcyBpbmZy YXN0cnVjdHVyZSB1c2VkIGJ5CiMgYWxsIHN1Y2ggaW1wbGVtZW50YXRpb25z LgojCmNkbF9wYWNrYWdlIENZR1BLR19JU09JTkZSQSB7CiAgICAjIFBhY2th Z2VzIGNhbm5vdCBiZSBhZGRlZCBvciByZW1vdmVkLCBub3IgY2FuIHRoZWly IHZlcnNpb24gYmUgY2hhbmdlZCwKICAgICMgc2ltcGx5IGJ5IGVkaXRpbmcg dGhlaXIgdmFsdWUuIEluc3RlYWQgdGhlIGFwcHJvcHJpYXRlIGNvbmZpZ3Vy YXRpb24KICAgICMgc2hvdWxkIGJlIHVzZWQgdG8gcGVyZm9ybSB0aGVzZSBh Y3Rpb25zLgoKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQg aGVyZS4KICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBDdXJyZW50IHZh bHVlOiAxIGN1cnJlbnQKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGll cyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBjb21wb25lbnQg Q1lHUEtHX0lPX1NFUklBTF9URVJNSU9TCiAgICAjICAgICBSZXF1aXJlczog Q1lHUEtHX0lTT0lORlJBCiAgICAjIGNvbXBvbmVudCBDWUdQS0dfSU9fU0VS SUFMX1RFUk1JT1MKICAgICMgICAgIERlZmF1bHRWYWx1ZTogIDAgIT0gQ1lH UEtHX0lTT0lORlJBICYmIDAgIT0gQ1lHUEtHX0lPX0ZJTEVJTyAmJiAgMCAh PSBDWUdJTlRfSVNPX0VSUk5PX0NPREVTICYmICAwICE9IENZR0lOVF9JU09f RVJSTk8gCiAgICAjIG9wdGlvbiBDWUdJTVBfTUVNQUxMT0NfQUxMT0NBVE9S X0RMTUFMTE9DX1VTRV9NRU1DUFkKICAgICMgICAgIFJlcXVpcmVzOiBDWUdQ S0dfSVNPSU5GUkEKICAgICMgb3B0aW9uIENZR0lNUF9NRU1BTExPQ19BTExP Q0FUT1JfRExNQUxMT0NfVVNFX01FTUNQWQogICAgIyAgICAgRGVmYXVsdFZh bHVlOiAgMCAhPSBDWUdQS0dfSVNPSU5GUkEgCiAgICAjIGNvbXBvbmVudCBD WUdQS0dfTUVNQUxMT0NfTUFMTE9DX0FMTE9DQVRPUlMKICAgICMgICAgIEFj dGl2ZUlmOiBDWUdQS0dfSVNPSU5GUkEKICAgICMgcGFja2FnZSBDWUdQS0df TElCQ19JMThOCiAgICAjICAgICBSZXF1aXJlczogQ1lHUEtHX0lTT0lORlJB CiAgICAjIHBhY2thZ2UgQ1lHUEtHX0xJQkNfU0VUSk1QCiAgICAjICAgICBS ZXF1aXJlczogQ1lHUEtHX0lTT0lORlJBCiAgICAjIHBhY2thZ2UgQ1lHUEtH X0xJQkNfU0lHTkFMUwogICAgIyAgICAgUmVxdWlyZXM6IENZR1BLR19JU09J TkZSQQogICAgIyBwYWNrYWdlIENZR1BLR19MSUJDX1NUQVJUVVAKICAgICMg ICAgIFJlcXVpcmVzOiBDWUdQS0dfSVNPSU5GUkEKICAgICMgcGFja2FnZSBD WUdQS0dfTElCQ19TVERJTwogICAgIyAgICAgUmVxdWlyZXM6IENZR1BLR19J U09JTkZSQQogICAgIyBwYWNrYWdlIENZR1BLR19MSUJDX1NURExJQgogICAg IyAgICAgUmVxdWlyZXM6IENZR1BLR19JU09JTkZSQQogICAgIyBwYWNrYWdl IENZR1BLR19MSUJDX1NUUklORwogICAgIyAgICAgUmVxdWlyZXM6IENZR1BL R19JU09JTkZSQQogICAgIyBwYWNrYWdlIENZR1BLR19MSUJDX1RJTUUKICAg ICMgICAgIFJlcXVpcmVzOiBDWUdQS0dfSVNPSU5GUkEKICAgICMgcGFja2Fn ZSBDWUdQS0dfTkVUCiAgICAjICAgICBSZXF1aXJlczogQ1lHUEtHX0lTT0lO RlJBCn07CgojID4KIyBTdGFydHVwIGFuZCB0ZXJtaW5hdGlvbgojCmNkbF9j b21wb25lbnQgQ1lHUEtHX0lTT19TVEFSVFVQIHsKICAgICMgVGhlcmUgaXMg bm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIG1haW4oKSBzdGFydHVw IGltcGxlbWVudGF0aW9ucwojIEltcGxlbWVudGF0aW9ucyBvZiB0aGlzIGlu dGVyZmFjZSBhcnJhbmdlIGZvciBhIHVzZXItc3VwcGxpZWQKIyBtYWluKCkg dG8gYmUgY2FsbGVkIGluIGFuIElTTyBjb21wYXRpYmxlIGVudmlyb25tZW50 LgojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19NQUlOX1NUQVJUVVAgewog ICAgIyBJbXBsZW1lbnRlZCBieSBDWUdQS0dfTElCQ19TVEFSVFVQLCBhY3Rp dmUsIGVuYWJsZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZp ZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFs dWU6IDEKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fTUFJTl9T VEFSVFVQIAogICAgIyAgICAgQ1lHSU5UX0lTT19NQUlOX1NUQVJUVVAgPT0g MQogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRp ZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNl IENZR0lOVF9JU09fTUFJTl9TVEFSVFVQCiAgICAjICAgICBSZXF1aXJlczog IDEgPj0gQ1lHSU5UX0lTT19NQUlOX1NUQVJUVVAgCn07CgojIGVudmlyb24g aW1wbGVtZW50YXRpb25zCiMgSW1wbGVtZW50YXRpb25zIG9mIHRoaXMgaW50 ZXJmYWNlIHByb3ZpZGUgdGhlIGVudmlyb24KIyB2YXJpYWJsZSByZXF1aXJl ZCBieSBQT1NJWC4KIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fRU5WSVJP TiB7CiAgICAjIEltcGxlbWVudGVkIGJ5IENZR1BLR19MSUJDX1NUQVJUVVAs IGFjdGl2ZSwgZW5hYmxlZAogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBt b2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVu dF92YWx1ZTogMQogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19F TlZJUk9OIAogICAgIyAgICAgQ1lHSU5UX0lTT19FTlZJUk9OID09IDEKICAg ICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFy ZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJ TlRfSVNPX0VOVklST04KICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJ TlRfSVNPX0VOVklST04gCn07CgojIDwKIyBjdHlwZS5oIGZ1bmN0aW9ucwoj CmNkbF9jb21wb25lbnQgQ1lHUEtHX0lTT19DVFlQRV9IIHsKICAgICMgVGhl cmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIE51bWJlciBv ZiBpbXBsZW1lbnRhdGlvbnMgb2YgY3R5cGUgZnVuY3Rpb25zCiMKY2RsX2lu dGVyZmFjZSBDWUdJTlRfSVNPX0NUWVBFIHsKICAgICMgSW1wbGVtZW50ZWQg YnkgQ1lHUEtHX0xJQkNfSTE4TiwgYWN0aXZlLCBlbmFibGVkCiAgICAjIFRo aXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZv cjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAxCiAgICAjIFJlcXVpcmVz OiAgMSA+PSBDWUdJTlRfSVNPX0NUWVBFIAogICAgIyAgICAgQ1lHSU5UX0lT T19DVFlQRSA9PSAxCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dp bmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAg IyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19DVFlQRQogICAgIyAgICAgUmVxdWly ZXM6ICAxID49IENZR0lOVF9JU09fQ1RZUEUgCiAgICAjIHBhY2thZ2UgQ1lH UEtHX0xJQkNfU1RETElCCiAgICAjICAgICBSZXF1aXJlczogQ1lHSU5UX0lT T19DVFlQRQp9OwoKIyBDdHlwZSBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpj ZGxfb3B0aW9uIENZR0JMRF9JU09fQ1RZUEVfSEVBREVSIHsKICAgICMgRmxh dm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDAgMAogICAgIyBUaGUgaW5mZXJyZWQgdmFsdWUgc2hvdWxkIG5v dCBiZSBlZGl0ZWQgZGlyZWN0bHkuCiAgICBpbmZlcnJlZF92YWx1ZSAxIDxj eWcvbGliYy9pMThuL2N0eXBlLmlubD4KICAgICMgdmFsdWVfc291cmNlIGlu ZmVycmVkCiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAoKICAgICMgVGhlIGZv bGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVl CiAgICAjIG9wdGlvbiBDWUdJTVBfTElCQ19JMThOX0NUWVBFX0lOTElORVMK ICAgICMgICAgIFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19DVFlQRV9IRUFERVIg PT0gICI8Y3lnL2xpYmMvaTE4bi9jdHlwZS5pbmw+IiAKfTsKCiMgPAojIEVy cm9yIGhhbmRsaW5nCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfSVNPX0VSUk5P IHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMg PgojIE51bWJlciBvZiBpbXBsZW1lbnRhdGlvbnMgb2YgZXJyb3IgY29kZXMK IwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fRVJSTk9fQ09ERVMgewogICAg IyBJbXBsZW1lbnRlZCBieSBDWUdQS0dfRVJST1IsIGFjdGl2ZSwgZW5hYmxl ZAogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgog ICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMQogICAg IyBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19FUlJOT19DT0RFUyAKICAg ICMgICAgIENZR0lOVF9JU09fRVJSTk9fQ09ERVMgPT0gMQogICAgIyAgIC0t PiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVj dGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09f RVJSTk9fQ09ERVMKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRf SVNPX0VSUk5PX0NPREVTIAogICAgIyBjb21wb25lbnQgQ1lHUEtHX0lPX1NF UklBTF9URVJNSU9TCiAgICAjICAgICBSZXF1aXJlczogQ1lHSU5UX0lTT19F UlJOT19DT0RFUwogICAgIyBjb21wb25lbnQgQ1lHUEtHX0lPX1NFUklBTF9U RVJNSU9TCiAgICAjICAgICBEZWZhdWx0VmFsdWU6ICAwICE9IENZR1BLR19J U09JTkZSQSAmJiAwICE9IENZR1BLR19JT19GSUxFSU8gJiYgIDAgIT0gQ1lH SU5UX0lTT19FUlJOT19DT0RFUyAmJiAgMCAhPSBDWUdJTlRfSVNPX0VSUk5P IAogICAgIyBvcHRpb24gQ1lHU0VNX0xJQkNfU0lHTkFMU19SQUlTRV9TRVRT X0VSUk5PCiAgICAjICAgICBSZXF1aXJlczogQ1lHSU5UX0lTT19FUlJOT19D T0RFUwogICAgIyBvcHRpb24gQ1lHU0VNX0xJQkNfU0lHTkFMU19TSUdOQUxf U0VUU19FUlJOTwogICAgIyAgICAgUmVxdWlyZXM6IENZR0lOVF9JU09fRVJS Tk9fQ09ERVMKICAgICMgcGFja2FnZSBDWUdQS0dfTElCQ19TVERJTwogICAg IyAgICAgUmVxdWlyZXM6IENZR0lOVF9JU09fRVJSTk9fQ09ERVMKfTsKCiMg RXJyb3IgY29kZXMgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlv biBDWUdCTERfSVNPX0VSUk5PX0NPREVTX0hFQURFUiB7CiAgICAjIEZsYXZv cjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAwIDAKICAgICMgVGhlIGluZmVycmVkIHZhbHVlIHNob3VsZCBub3Qg YmUgZWRpdGVkIGRpcmVjdGx5LgogICAgaW5mZXJyZWRfdmFsdWUgMSA8Y3ln L2Vycm9yL2NvZGVzLmg+CiAgICAjIHZhbHVlX3NvdXJjZSBpbmZlcnJlZAog ICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKCiAgICAjIFRoZSBmb2xsb3dpbmcg cHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBw YWNrYWdlIENZR1BLR19FUlJPUgogICAgIyAgICAgUmVxdWlyZXM6ICBDWUdC TERfSVNPX0VSUk5PX0NPREVTX0hFQURFUiA9PSAiPGN5Zy9lcnJvci9jb2Rl cy5oPiIgCn07CgojIE51bWJlciBvZiBpbXBsZW1lbnRhdGlvbnMgb2YgZXJy bm8gdmFyaWFibGUKIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fRVJSTk8g ewogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdQS0dfRVJST1JfRVJSTk8sIGFj dGl2ZSwgZW5hYmxlZAogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2Rp ZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92 YWx1ZTogMQogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19FUlJO TyAKICAgICMgICAgIENZR0lOVF9JU09fRVJSTk8gPT0gMQogICAgIyAgIC0t PiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVj dGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09f RVJSTk8KICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX0VS Uk5PIAogICAgIyBjb21wb25lbnQgQ1lHUEtHX0lPX1NFUklBTF9URVJNSU9T CiAgICAjICAgICBSZXF1aXJlczogQ1lHSU5UX0lTT19FUlJOTwogICAgIyBj b21wb25lbnQgQ1lHUEtHX0lPX1NFUklBTF9URVJNSU9TCiAgICAjICAgICBE ZWZhdWx0VmFsdWU6ICAwICE9IENZR1BLR19JU09JTkZSQSAmJiAwICE9IENZ R1BLR19JT19GSUxFSU8gJiYgIDAgIT0gQ1lHSU5UX0lTT19FUlJOT19DT0RF UyAmJiAgMCAhPSBDWUdJTlRfSVNPX0VSUk5PIAogICAgIyBvcHRpb24gQ1lH U0VNX0xJQkNfU0lHTkFMU19SQUlTRV9TRVRTX0VSUk5PCiAgICAjICAgICBS ZXF1aXJlczogQ1lHSU5UX0lTT19FUlJOTwogICAgIyBvcHRpb24gQ1lHU0VN X0xJQkNfU0lHTkFMU19TSUdOQUxfU0VUU19FUlJOTwogICAgIyAgICAgUmVx dWlyZXM6IENZR0lOVF9JU09fRVJSTk8KICAgICMgcGFja2FnZSBDWUdQS0df TElCQ19TVERJTwogICAgIyAgICAgUmVxdWlyZXM6IENZR0lOVF9JU09fRVJS Tk8KfTsKCiMgZXJybm8gdmFyaWFibGUgaW1wbGVtZW50YXRpb24gaGVhZGVy CiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX0VSUk5PX0hFQURFUiB7CiAgICAj IEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAwIDAKICAgICMgVGhlIGluZmVycmVkIHZhbHVlIHNob3Vs ZCBub3QgYmUgZWRpdGVkIGRpcmVjdGx5LgogICAgaW5mZXJyZWRfdmFsdWUg MSA8Y3lnL2Vycm9yL2Vycm5vLmg+CiAgICAjIHZhbHVlX3NvdXJjZSBpbmZl cnJlZAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKCiAgICAjIFRoZSBmb2xs b3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQog ICAgIyBjb21wb25lbnQgQ1lHUEtHX0VSUk9SX0VSUk5PCiAgICAjICAgICBS ZXF1aXJlczogIENZR0JMRF9JU09fRVJSTk9fSEVBREVSID09ICI8Y3lnL2Vy cm9yL2Vycm5vLmg+IiAKfTsKCiMgPAojIExvY2FsZS1yZWxhdGVkIGZ1bmN0 aW9ucwojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lTT19MT0NBTEUgewogICAg IyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgTnVt YmVyIG9mIGltcGxlbWVudGF0aW9ucyBvZiBsb2NhbGUgZnVuY3Rpb25zCiMK Y2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX0xPQ0FMRSB7CiAgICAjIEltcGxl bWVudGVkIGJ5IENZR1BLR19MSUJDX0kxOE4sIGFjdGl2ZSwgZW5hYmxlZAog ICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAg IyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMQogICAgIyBS ZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19MT0NBTEUgCiAgICAjICAgICBD WUdJTlRfSVNPX0xPQ0FMRSA9PSAxCiAgICAjICAgLS0+IDEKCiAgICAjIFRo ZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2 YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19MT0NBTEUKICAgICMg ICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX0xPQ0FMRSAKfTsKCiMg TG9jYWxlIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lH QkxEX0lTT19MT0NBTEVfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0 YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAwIDAKfTsKCiMgPAojIFN0YW5kYXJkIEkvTy1yZWxhdGVkIGZ1bmN0aW9u YWxpdHkKIwpjZGxfY29tcG9uZW50IENZR1BLR19JU09fU1RESU8gewogICAg IyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgTnVt YmVyIG9mIGltcGxlbWVudGF0aW9ucyBvZiBzdGRpbyBmaWxlIHR5cGVzCiMK Y2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1NURElPX0ZJTEVUWVBFUyB7CiAg ICAjIEltcGxlbWVudGVkIGJ5IENZR1BLR19MSUJDX1NURElPLCBhY3RpdmUs IGVuYWJsZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQg aGVyZS4KICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBDdXJyZW50IHZh bHVlOiAxIDEKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RE SU9fRklMRVRZUEVTIAogICAgIyAgICAgQ1lHSU5UX0lTT19TVERJT19GSUxF VFlQRVMgPT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5n IHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMg aW50ZXJmYWNlIENZR0lOVF9JU09fU1RESU9fRklMRVRZUEVTCiAgICAjICAg ICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVERJT19GSUxFVFlQRVMg Cn07CgojIFN0ZGlvIGZpbGUgdHlwZXMgaW1wbGVtZW50YXRpb24gaGVhZGVy CiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX1NURElPX0ZJTEVUWVBFU19IRUFE RVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIFRoZSBpbmZlcnJlZCB2 YWx1ZSBzaG91bGQgbm90IGJlIGVkaXRlZCBkaXJlY3RseS4KICAgIGluZmVy cmVkX3ZhbHVlIDEgPGN5Zy9saWJjL3N0ZGlvL3N0ZGlvLmg+CiAgICAjIHZh bHVlX3NvdXJjZSBpbmZlcnJlZAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAK CiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQg YnkgdGhpcyB2YWx1ZQogICAgIyBwYWNrYWdlIENZR1BLR19MSUJDX1NURElP CiAgICAjICAgICBSZXF1aXJlczogIENZR0JMRF9JU09fU1RESU9fRklMRVRZ UEVTX0hFQURFUiA9PSAgIjxjeWcvbGliYy9zdGRpby9zdGRpby5oPiIgCn07 CgojIFN0ZGlvIHN0YW5kYXJkIHN0cmVhbXMgaW1wbGVtZW50YXRpb25zCiMK Y2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1NURElPX1NUUkVBTVMgewogICAg IyBJbXBsZW1lbnRlZCBieSBDWUdQS0dfTElCQ19TVERJTywgYWN0aXZlLCBl bmFibGVkCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhl cmUuCiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgQ3VycmVudCB2YWx1 ZTogMSAxCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NURElP X1NUUkVBTVMgCiAgICAjICAgICBDWUdJTlRfSVNPX1NURElPX1NUUkVBTVMg PT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3Bl cnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJm YWNlIENZR0lOVF9JU09fU1RESU9fU1RSRUFNUwogICAgIyAgICAgUmVxdWly ZXM6ICAxID49IENZR0lOVF9JU09fU1RESU9fU1RSRUFNUyAKfTsKCiMgU3Rk aW8gc3RhbmRhcmQgc3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIyBU aGlzIGhlYWRlciBmaWxlIG11c3QgZGVmaW5lIHN0ZGluLCBzdGRvdXQKIyBh bmQgc3RkZXJyLgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19TVERJT19TVFJF QU1TX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgVGhlIGlu ZmVycmVkIHZhbHVlIHNob3VsZCBub3QgYmUgZWRpdGVkIGRpcmVjdGx5Lgog ICAgaW5mZXJyZWRfdmFsdWUgMSA8Y3lnL2xpYmMvc3RkaW8vc3RkaW8uaD4K ICAgICMgdmFsdWVfc291cmNlIGluZmVycmVkCiAgICAjIERlZmF1bHQgdmFs dWU6IDAgMAoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBh ZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIHBhY2thZ2UgQ1lHUEtHX0xJ QkNfU1RESU8KICAgICMgICAgIFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19TVERJ T19TVFJFQU1TX0hFQURFUiA9PSAgIjxjeWcvbGliYy9zdGRpby9zdGRpby5o PiIgCn07CgojIE51bWJlciBvZiBpbXBsZW1lbnRhdGlvbnMgb2Ygc3RkaW8g ZmlsZSBvcGVyYXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1NU RElPX0ZJTEVPUFMgewogICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlz IGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmll ZCBoZXJlLgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQg dmFsdWU6IDAgMAogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19T VERJT19GSUxFT1BTIAogICAgIyAgICAgQ1lHSU5UX0lTT19TVERJT19GSUxF T1BTID09IDAKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBw cm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGlu dGVyZmFjZSBDWUdJTlRfSVNPX1NURElPX0ZJTEVPUFMKICAgICMgICAgIFJl cXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NURElPX0ZJTEVPUFMgCn07Cgoj IFN0ZGlvIGZpbGUgb3BlcmF0aW9ucyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIK IyBUaGlzIGhlYWRlciBjb250cm9scyB0aGUgZmlsZSBzeXN0ZW0gb3BlcmF0 aW9ucyBvbiBhIGZpbGUKIyBzdWNoIGFzIHJlbW92ZSgpLCByZW5hbWUoKSwg dG1wZmlsZSgpLCB0bXBuYW0oKSBhbmQgYXNzb2NpYXRlZAojIGNvbnN0YW50 cy4KIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU1RESU9fRklMRU9QU19IRUFE RVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBOdW1iZXIg b2YgaW1wbGVtZW50YXRpb25zIG9mIHN0ZGlvIGZpbGUgYWNjZXNzICBmdW5j dGlvbmFscwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19TVERJT19GSUxF QUNDRVNTIHsKICAgICMgSW1wbGVtZW50ZWQgYnkgQ1lHUEtHX0xJQkNfU1RE SU8sIGFjdGl2ZSwgZW5hYmxlZAogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBi ZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAj IEN1cnJlbnQgdmFsdWU6IDEgMQogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lH SU5UX0lTT19TVERJT19GSUxFQUNDRVNTIAogICAgIyAgICAgQ1lHSU5UX0lT T19TVERJT19GSUxFQUNDRVNTID09IDEKICAgICMgICAtLT4gMQoKICAgICMg VGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlz IHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX1NURElPX0ZJTEVB Q0NFU1MKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NU RElPX0ZJTEVBQ0NFU1MgCiAgICAjIG9wdGlvbiBDWUdTRU1fTElCQ19FWElU X0NBTExTX0ZGTFVTSAogICAgIyAgICAgUmVxdWlyZXM6IENZR0lOVF9JU09f U1RESU9fRklMRUFDQ0VTUwogICAgIyBvcHRpb24gQ1lHU0VNX0xJQkNfRVhJ VF9DQUxMU19GRkxVU0gKICAgICMgICAgIERlZmF1bHRWYWx1ZTogIDAgIT0g Q1lHSU5UX0lTT19TVERJT19GSUxFQUNDRVNTIAp9OwoKIyBTdGRpbyBmaWxl IGFjY2VzcyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIyBUaGlzIGhlYWRlciBj b250cm9scyB0aGUgZmlsZSBhY2Nlc3Mgb3BlcmF0aW9ucwojIHN1Y2ggYXMg ZmNsb3NlKCksIGZmbHVzaCgpLCBmb3BlbigpLCBmcmVvcGVuKCksIHNldGJ1 ZigpLAojIHNldHZidWYoKSwgYW5kIGFzc29jaWF0ZWQgY29uc3RhbnRzLgoj CmNkbF9vcHRpb24gQ1lHQkxEX0lTT19TVERJT19GSUxFQUNDRVNTX0hFQURF UiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgVGhlIGluZmVycmVkIHZh bHVlIHNob3VsZCBub3QgYmUgZWRpdGVkIGRpcmVjdGx5LgogICAgaW5mZXJy ZWRfdmFsdWUgMSA8Y3lnL2xpYmMvc3RkaW8vc3RkaW8uaD4KICAgICMgdmFs dWVfc291cmNlIGluZmVycmVkCiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAoK ICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBi eSB0aGlzIHZhbHVlCiAgICAjIHBhY2thZ2UgQ1lHUEtHX0xJQkNfU1RESU8K ICAgICMgICAgIFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19TVERJT19GSUxFQUND RVNTX0hFQURFUiA9PSAgIjxjeWcvbGliYy9zdGRpby9zdGRpby5oPiIgCn07 CgojIE51bWJlciBvZiBpbXBsZW1lbnRhdGlvbnMgb2Ygc3RkaW8gZm9ybWF0 dGVkIEkvTwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19TVERJT19GT1JN QVRURURfSU8gewogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdQS0dfTElCQ19T VERJTywgYWN0aXZlLCBlbmFibGVkCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90 IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAg ICMgQ3VycmVudCB2YWx1ZTogMSAxCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBD WUdJTlRfSVNPX1NURElPX0ZPUk1BVFRFRF9JTyAKICAgICMgICAgIENZR0lO VF9JU09fU1RESU9fRk9STUFUVEVEX0lPID09IDEKICAgICMgICAtLT4gMQoK ICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBi eSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX1NURElP X0ZPUk1BVFRFRF9JTwogICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lO VF9JU09fU1RESU9fRk9STUFUVEVEX0lPIAp9OwoKIyBTdGRpbyBmb3JtYXR0 ZWQgSS9PIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lH QkxEX0lTT19TVERJT19GT1JNQVRURURfSU9fSEVBREVSIHsKICAgICMgRmxh dm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDAgMAogICAgIyBUaGUgaW5mZXJyZWQgdmFsdWUgc2hvdWxkIG5v dCBiZSBlZGl0ZWQgZGlyZWN0bHkuCiAgICBpbmZlcnJlZF92YWx1ZSAxIDxj eWcvbGliYy9zdGRpby9zdGRpby5oPgogICAgIyB2YWx1ZV9zb3VyY2UgaW5m ZXJyZWQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCgogICAgIyBUaGUgZm9s bG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUK ICAgICMgcGFja2FnZSBDWUdQS0dfTElCQ19TVERJTwogICAgIyAgICAgUmVx dWlyZXM6ICBDWUdCTERfSVNPX1NURElPX0ZPUk1BVFRFRF9JT19IRUFERVIg PT0gICI8Y3lnL2xpYmMvc3RkaW8vc3RkaW8uaD4iIAp9OwoKIyBOdW1iZXIg b2YgaW1wbGVtZW50YXRpb25zIG9mIHN0ZGlvIGNoYXJhY3RlciBJL08KIwpj ZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fU1RESU9fQ0hBUl9JTyB7CiAgICAj IEltcGxlbWVudGVkIGJ5IENZR1BLR19MSUJDX1NURElPLCBhY3RpdmUsIGVu YWJsZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVy ZS4KICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBDdXJyZW50IHZhbHVl OiAxIDEKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RESU9f Q0hBUl9JTyAKICAgICMgICAgIENZR0lOVF9JU09fU1RESU9fQ0hBUl9JTyA9 PSAxCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVy dGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZh Y2UgQ1lHSU5UX0lTT19TVERJT19DSEFSX0lPCiAgICAjICAgICBSZXF1aXJl czogIDEgPj0gQ1lHSU5UX0lTT19TVERJT19DSEFSX0lPIAp9OwoKIyBTdGRp byBjaGFyYWN0ZXIgSS9PIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9v cHRpb24gQ1lHQkxEX0lTT19TVERJT19DSEFSX0lPX0hFQURFUiB7CiAgICAj IEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAwIDAKICAgICMgVGhlIGluZmVycmVkIHZhbHVlIHNob3Vs ZCBub3QgYmUgZWRpdGVkIGRpcmVjdGx5LgogICAgaW5mZXJyZWRfdmFsdWUg MSA8Y3lnL2xpYmMvc3RkaW8vc3RkaW8uaD4KICAgICMgdmFsdWVfc291cmNl IGluZmVycmVkCiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAoKICAgICMgVGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZh bHVlCiAgICAjIHBhY2thZ2UgQ1lHUEtHX0xJQkNfU1RESU8KICAgICMgICAg IFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19TVERJT19DSEFSX0lPX0hFQURFUiA9 PSAgIjxjeWcvbGliYy9zdGRpby9zdGRpby5oPiIgCn07CgojIE51bWJlciBv ZiBpbXBsZW1lbnRhdGlvbnMgb2Ygc3RkaW8gZGlyZWN0IEkvTwojCmNkbF9p bnRlcmZhY2UgQ1lHSU5UX0lTT19TVERJT19ESVJFQ1RfSU8gewogICAgIyBJ bXBsZW1lbnRlZCBieSBDWUdQS0dfTElCQ19TVERJTywgYWN0aXZlLCBlbmFi bGVkCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUu CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgQ3VycmVudCB2YWx1ZTog MSAxCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NURElPX0RJ UkVDVF9JTyAKICAgICMgICAgIENZR0lOVF9JU09fU1RESU9fRElSRUNUX0lP ID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9w ZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVy ZmFjZSBDWUdJTlRfSVNPX1NURElPX0RJUkVDVF9JTwogICAgIyAgICAgUmVx dWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RESU9fRElSRUNUX0lPIAp9OwoK IyBTdGRpbyBkaXJlY3QgSS9PIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNk bF9vcHRpb24gQ1lHQkxEX0lTT19TVERJT19ESVJFQ1RfSU9fSEVBREVSIHsK ICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDAgMAogICAgIyBUaGUgaW5mZXJyZWQgdmFsdWUg c2hvdWxkIG5vdCBiZSBlZGl0ZWQgZGlyZWN0bHkuCiAgICBpbmZlcnJlZF92 YWx1ZSAxIDxjeWcvbGliYy9zdGRpby9zdGRpby5oPgogICAgIyB2YWx1ZV9z b3VyY2UgaW5mZXJyZWQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCgogICAg IyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRo aXMgdmFsdWUKICAgICMgcGFja2FnZSBDWUdQS0dfTElCQ19TVERJTwogICAg IyAgICAgUmVxdWlyZXM6ICBDWUdCTERfSVNPX1NURElPX0RJUkVDVF9JT19I RUFERVIgPT0gICI8Y3lnL2xpYmMvc3RkaW8vc3RkaW8uaD4iIAp9OwoKIyBO dW1iZXIgb2YgaW1wbGVtZW50YXRpb25zIG9mIHN0ZGlvIGZpbGUgcG9zaXRp b25pbmcKIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fU1RESU9fRklMRVBP UyB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNl CiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAg ICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgQ3VycmVudCB2YWx1ZTogMCAw CiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NURElPX0ZJTEVQ T1MgCiAgICAjICAgICBDWUdJTlRfSVNPX1NURElPX0ZJTEVQT1MgPT0gMAog ICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMg YXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZ R0lOVF9JU09fU1RESU9fRklMRVBPUwogICAgIyAgICAgUmVxdWlyZXM6ICAx ID49IENZR0lOVF9JU09fU1RESU9fRklMRVBPUyAKfTsKCiMgU3RkaW8gZmls ZSBwb3NpdGlvbmluZyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0 aW9uIENZR0JMRF9JU09fU1RESU9fRklMRVBPUyB7CiAgICAjIEZsYXZvcjog Ym9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMCAwCn07CgojIE51bWJlciBvZiBpbXBsZW1lbnRhdGlvbnMg b2Ygc3RkaW8gZXJyb3IgaGFuZGxpbmcKIwpjZGxfaW50ZXJmYWNlIENZR0lO VF9JU09fU1RESU9fRVJST1IgewogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdQ S0dfTElCQ19TVERJTywgYWN0aXZlLCBlbmFibGVkCiAgICAjIFRoaXMgdmFs dWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogYm9v bGRhdGEKICAgICMgQ3VycmVudCB2YWx1ZTogMSAxCiAgICAjIFJlcXVpcmVz OiAgMSA+PSBDWUdJTlRfSVNPX1NURElPX0VSUk9SIAogICAgIyAgICAgQ1lH SU5UX0lTT19TVERJT19FUlJPUiA9PSAxCiAgICAjICAgLS0+IDEKCiAgICAj IFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhp cyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19TVERJT19FUlJP UgogICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RESU9f RVJST1IgCn07CgojIFN0ZGlvIGVycm9yIGhhbmRsaW5nIGltcGxlbWVudGF0 aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19TVERJT19FUlJP Ul9IRUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVz ZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJv dmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIFRoZSBpbmZl cnJlZCB2YWx1ZSBzaG91bGQgbm90IGJlIGVkaXRlZCBkaXJlY3RseS4KICAg IGluZmVycmVkX3ZhbHVlIDEgPGN5Zy9saWJjL3N0ZGlvL3N0ZGlvLmg+CiAg ICAjIHZhbHVlX3NvdXJjZSBpbmZlcnJlZAogICAgIyBEZWZhdWx0IHZhbHVl OiAwIDAKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZm ZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBwYWNrYWdlIENZR1BLR19MSUJD X1NURElPCiAgICAjICAgICBSZXF1aXJlczogIENZR0JMRF9JU09fU1RESU9f RVJST1JfSEVBREVSID09ICAiPGN5Zy9saWJjL3N0ZGlvL3N0ZGlvLmg+IiAK fTsKCiMgPAojIFN0YW5kYXJkIGdlbmVyYWwgdXRpbGl0eSBmdW5jdGlvbnMK IwpjZGxfY29tcG9uZW50IENZR1BLR19JU09fU1RETElCIHsKICAgICMgVGhl cmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIFN0cmluZyBj b252ZXJzaW9uIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9ucwojCmNkbF9pbnRl cmZhY2UgQ1lHSU5UX0lTT19TVERMSUJfU1RSQ09OViB7CiAgICAjIEltcGxl bWVudGVkIGJ5IENZR1BLR19MSUJDX1NURExJQiwgYWN0aXZlLCBlbmFibGVk CiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAg ICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAxCiAgICAj IFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NURExJQl9TVFJDT05WIAog ICAgIyAgICAgQ1lHSU5UX0lTT19TVERMSUJfU1RSQ09OViA9PSAxCiAgICAj ICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUg YWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5U X0lTT19TVERMSUJfU1RSQ09OVgogICAgIyAgICAgUmVxdWlyZXM6ICAxID49 IENZR0lOVF9JU09fU1RETElCX1NUUkNPTlYgCn07CgojIFN0cmluZyBjb252 ZXJzaW9uIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9v cHRpb24gQ1lHQkxEX0lTT19TVERMSUJfU1RSQ09OVl9IRUFERVIgewogICAg IyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29t bWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAj IHVzZXJfdmFsdWUgMCAwCiAgICAjIFRoZSBpbmZlcnJlZCB2YWx1ZSBzaG91 bGQgbm90IGJlIGVkaXRlZCBkaXJlY3RseS4KICAgIGluZmVycmVkX3ZhbHVl IDEgPGN5Zy9saWJjL3N0ZGxpYi9hdG94LmlubD4KICAgICMgdmFsdWVfc291 cmNlIGluZmVycmVkCiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAoKICAgICMg VGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlz IHZhbHVlCiAgICAjIG9wdGlvbiBDWUdJTVBfTElCQ19TVERMSUJfSU5MSU5F X0FUT1gKICAgICMgICAgIFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19TVERMSUJf U1RSQ09OVl9IRUFERVIgPT0gICI8Y3lnL2xpYmMvc3RkbGliL2F0b3guaW5s PiIgCn07CgojIFN0cmluZyB0byBGUCBjb252ZXJzaW9uIGZ1bmN0aW9uIGlt cGxlbWVudGF0aW9ucwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19TVERM SUJfU1RSQ09OVl9GTE9BVCB7CiAgICAjIEltcGxlbWVudGVkIGJ5IENZR0ZV Tl9MSUJDX3N0cnRvZCwgYWN0aXZlLCBlbmFibGVkCiAgICAjIFRoaXMgdmFs dWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0 YQogICAgIyBDdXJyZW50X3ZhbHVlOiAxCiAgICAjIFJlcXVpcmVzOiAgMSA+ PSBDWUdJTlRfSVNPX1NURExJQl9TVFJDT05WX0ZMT0FUIAogICAgIyAgICAg Q1lHSU5UX0lTT19TVERMSUJfU1RSQ09OVl9GTE9BVCA9PSAxCiAgICAjICAg LS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZm ZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lT T19TVERMSUJfU1RSQ09OVl9GTE9BVAogICAgIyAgICAgUmVxdWlyZXM6ICAx ID49IENZR0lOVF9JU09fU1RETElCX1NUUkNPTlZfRkxPQVQgCiAgICAjIG9w dGlvbiBDWUdTRU1fTElCQ19TVERJT19TQ0FORl9GTE9BVElOR19QT0lOVAog ICAgIyAgICAgUmVxdWlyZXM6IENZR0lOVF9JU09fU1RETElCX1NUUkNPTlZf RkxPQVQKICAgICMgb3B0aW9uIENZR1NFTV9MSUJDX1NURElPX1NDQU5GX0ZM T0FUSU5HX1BPSU5UCiAgICAjICAgICBEZWZhdWx0VmFsdWU6ICAwICE9IENZ R1BLR19MSUJNICYmCiAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMCAhPSBDWUdJTlRfSVNPX1NURExJQl9TVFJDT05WX0ZMT0FUIAp9 OwoKIyBTdHJpbmcgdG8gRlAgY29udmVyc2lvbiBmdW5jdGlvbiBpbXBsZW1l bnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU1RETElC X1NUUkNPTlZfRkxPQVRfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0 YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAwIDAKfTsKCiMgUmFuZG9tIG51bWJlciBnZW5lcmF0b3IgaW1wbGVtZW50 YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1JBTkQgewogICAg IyBJbXBsZW1lbnRlZCBieSBDWUdJTVBfTElCQ19SQU5EX1NJTVBMRVNULCBh Y3RpdmUsIGRpc2FibGVkCiAgICAjIEltcGxlbWVudGVkIGJ5IENZR0lNUF9M SUJDX1JBTkRfU0lNUExFMSwgYWN0aXZlLCBlbmFibGVkCiAgICAjIEltcGxl bWVudGVkIGJ5IENZR0lNUF9MSUJDX1JBTkRfS05VVEgxLCBhY3RpdmUsIGRp c2FibGVkCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhl cmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAx CiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1JBTkQgCiAgICAj ICAgICBDWUdJTlRfSVNPX1JBTkQgPT0gMQogICAgIyAgIC0tPiAxCgogICAg IyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRo aXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09fUkFORAogICAg IyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fUkFORCAKfTsKCiMg UmFuZG9tIG51bWJlciBnZW5lcmF0b3IgaW1wbGVtZW50YXRpb24gaGVhZGVy CiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX1JBTkRfSEVBREVSIHsKICAgICMg Rmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAg IyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsKCiMgTWFsbG9jIGltcGxlbWVudGF0 aW9ucwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19NQUxMT0MgewogICAg IyBJbXBsZW1lbnRlZCBieSBDWUdQS0dfTUVNQUxMT0NfTUFMTE9DX0FMTE9D QVRPUlMsIGFjdGl2ZSwgZW5hYmxlZAogICAgIyBUaGlzIHZhbHVlIGNhbm5v dCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMg Q3VycmVudF92YWx1ZTogMQogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5U X0lTT19NQUxMT0MgCiAgICAjICAgICBDWUdJTlRfSVNPX01BTExPQyA9PSAx CiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGll cyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2Ug Q1lHSU5UX0lTT19NQUxMT0MKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBD WUdJTlRfSVNPX01BTExPQyAKICAgICMgY29tcG9uZW50IENZR1BLR19JT19T RVJJQUxfVEVSTUlPUwogICAgIyAgICAgUmVxdWlyZXM6IENZR0lOVF9JU09f TUFMTE9DCiAgICAjIG9wdGlvbiBDWUdTRU1fTElCQ19TVERJT19TRVRWQlVG X01BTExPQwogICAgIyAgICAgUmVxdWlyZXM6IENZR0lOVF9JU09fTUFMTE9D CiAgICAjIG9wdGlvbiBDWUdTRU1fTElCQ19TVERJT19TRVRWQlVGX01BTExP QwogICAgIyAgICAgRGVmYXVsdFZhbHVlOiAgMCAhPSBDWUdJTlRfSVNPX01B TExPQyAKICAgICMgb3B0aW9uIENZR1BLR19MSUJDX1NURElPX09QRU4KICAg ICMgICAgIFJlcXVpcmVzOiBDWUdJTlRfSVNPX01BTExPQwogICAgIyBvcHRp b24gQ1lHUEtHX0xJQkNfU1RESU9fT1BFTgogICAgIyAgICAgRGVmYXVsdFZh bHVlOiAgMCAhPSBDWUdJTlRfSVNPX01BTExPQyAKfTsKCiMgTWFsbG9jIGlt cGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19N QUxMT0NfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1 ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsK CiMgTWFsbGluZm8oKSBpbXBsZW1lbnRhdGlvbnMKIwpjZGxfaW50ZXJmYWNl IENZR0lOVF9JU09fTUFMTElORk8gewogICAgIyBJbXBsZW1lbnRlZCBieSBD WUdQS0dfTUVNQUxMT0NfTUFMTE9DX0FMTE9DQVRPUlMsIGFjdGl2ZSwgZW5h YmxlZAogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJl LgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMQog ICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19NQUxMSU5GTyAKICAg ICMgICAgIENZR0lOVF9JU09fTUFMTElORk8gPT0gMQogICAgIyAgIC0tPiAx CgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVk IGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09fTUFM TElORk8KICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX01B TExJTkZPIAp9OwoKIyBNYWxsaW5mbygpIGltcGxlbWVudGF0aW9uIGhlYWRl cgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19NQUxMSU5GT19IRUFERVIgewog ICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVu Y29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAg ICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBQcm9ncmFtIGV4aXQg ZnVuY3Rpb25hbGl0eSBpbXBsZW1lbnRhdGlvbnMKIwpjZGxfaW50ZXJmYWNl IENZR0lOVF9JU09fRVhJVCB7CiAgICAjIEltcGxlbWVudGVkIGJ5IENZR1BL R19MSUJDX1NUQVJUVVAsIGFjdGl2ZSwgZW5hYmxlZAogICAgIyBUaGlzIHZh bHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgQ3VycmVudF92YWx1ZTogMQogICAgIyBSZXF1aXJlczogIDEg Pj0gQ1lHSU5UX0lTT19FWElUIAogICAgIyAgICAgQ1lHSU5UX0lTT19FWElU ID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9w ZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVy ZmFjZSBDWUdJTlRfSVNPX0VYSVQKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+ PSBDWUdJTlRfSVNPX0VYSVQgCn07CgojIFByb2dyYW0gZXhpdCBmdW5jdGlv bmFsaXR5IGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lH QkxEX0lTT19FWElUX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEK ICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAg ICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTog MCAwCn07CgojIFByb2dyYW0gZW52aXJvbm1lbnQgaW1wbGVtZW50YXRpb25z CiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1NURExJQl9FTlZJUk9OIHsK ICAgICMgSW1wbGVtZW50ZWQgYnkgQ1lHUEtHX0xJQkNfU1RETElCLCBhY3Rp dmUsIGVuYWJsZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZp ZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFs dWU6IDEKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RETElC X0VOVklST04gCiAgICAjICAgICBDWUdJTlRfSVNPX1NURExJQl9FTlZJUk9O ID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9w ZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVy ZmFjZSBDWUdJTlRfSVNPX1NURExJQl9FTlZJUk9OCiAgICAjICAgICBSZXF1 aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVERMSUJfRU5WSVJPTiAKfTsKCiMg UHJvZ3JhbSBlbnZpcm9ubWVudCBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpj ZGxfb3B0aW9uIENZR0JMRF9JU09fU1RETElCX0VOVklST05fSEVBREVSIHsK ICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVs dAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsKCiMgc3lzdGVtKCkgaW1w bGVtZW50YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1NURExJ Ql9TWVNURU0gewogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdQS0dfTElCQ19T VERMSUIsIGFjdGl2ZSwgZW5hYmxlZAogICAgIyBUaGlzIHZhbHVlIGNhbm5v dCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMg Q3VycmVudF92YWx1ZTogMQogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5U X0lTT19TVERMSUJfU1lTVEVNIAogICAgIyAgICAgQ1lHSU5UX0lTT19TVERM SUJfU1lTVEVNID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAg ICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX1NURExJQl9TWVNURU0KICAgICMg ICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NURExJQl9TWVNURU0g Cn07CgojIHN5c3RlbSgpIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9v cHRpb24gQ1lHQkxEX0lTT19TVERMSUJfU1lTVEVNX0hFQURFUiB7CiAgICAj IEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAg ICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIGJzZWFyY2goKSBpbXBsZW1l bnRhdGlvbnMKIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fQlNFQVJDSCB7 CiAgICAjIEltcGxlbWVudGVkIGJ5IENZR1BLR19MSUJDX1NURExJQiwgYWN0 aXZlLCBlbmFibGVkCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlm aWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3Zh bHVlOiAxCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX0JTRUFS Q0ggCiAgICAjICAgICBDWUdJTlRfSVNPX0JTRUFSQ0ggPT0gMQogICAgIyAg IC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFm ZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9J U09fQlNFQVJDSAogICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lOVF9J U09fQlNFQVJDSCAKfTsKCiMgYnNlYXJjaCgpIGltcGxlbWVudGF0aW9uIGhl YWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19CU0VBUkNIX0hFQURFUiB7 CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIHFzb3J0KCkgaW1w bGVtZW50YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1FTT1JU IHsKICAgICMgSW1wbGVtZW50ZWQgYnkgQ1lHUEtHX0xJQkNfU1RETElCLCBh Y3RpdmUsIGVuYWJsZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9k aWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRf dmFsdWU6IDEKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RE TElCX1FTT1JUIAogICAgIyAgICAgQ1lHSU5UX0lTT19TVERMSUJfUVNPUlQg KHVua25vd24pID09IDAKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCn07 CgojIHFzb3J0KCkgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlv biBDWUdCTERfSVNPX1FTT1JUX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9v bGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAw IDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2 YWx1ZTogMCAwCn07CgojIGFicygpL2xhYnMoKSBpbXBsZW1lbnRhdGlvbnMK IwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fQUJTIHsKICAgICMgSW1wbGVt ZW50ZWQgYnkgQ1lHUEtHX0xJQkNfU1RETElCLCBhY3RpdmUsIGVuYWJsZWQK ICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAg ICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDEKICAgICMg UmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RETElCX0FCUyAKICAgICMg ICAgIENZR0lOVF9JU09fU1RETElCX0FCUyAodW5rbm93bikgPT0gMAogICAg IyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJl IGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgcGFja2FnZSBDWUdQS0df TElCQ19USU1FCiAgICAjICAgICBSZXF1aXJlczogQ1lHSU5UX0lTT19BQlMK fTsKCiMgYWJzKCkvbGFicygpIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNk bF9vcHRpb24gQ1lHQkxEX0lTT19TVERMSUJfQUJTX0hFQURFUiB7CiAgICAj IEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAwIDAKICAgICMgVGhlIGluZmVycmVkIHZhbHVlIHNob3Vs ZCBub3QgYmUgZWRpdGVkIGRpcmVjdGx5LgogICAgaW5mZXJyZWRfdmFsdWUg MSA8Y3lnL2xpYmMvc3RkbGliL2Ficy5pbmw+CiAgICAjIHZhbHVlX3NvdXJj ZSBpbmZlcnJlZAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKCiAgICAjIFRo ZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2 YWx1ZQogICAgIyBvcHRpb24gQ1lHSU1QX0xJQkNfU1RETElCX0lOTElORV9B QlMKICAgICMgICAgIFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19TVERMSUJfQUJT X0hFQURFUiA9PSAgIjxjeWcvbGliYy9zdGRsaWIvYWJzLmlubD4iIAp9OwoK IyBkaXYoKS9sZGl2KCkgaW1wbGVtZW50YXRpb25zCiMKY2RsX2ludGVyZmFj ZSBDWUdJTlRfSVNPX0RJViB7CiAgICAjIEltcGxlbWVudGVkIGJ5IENZR1BL R19MSUJDX1NURExJQiwgYWN0aXZlLCBlbmFibGVkCiAgICAjIFRoaXMgdmFs dWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0 YQogICAgIyBDdXJyZW50X3ZhbHVlOiAxCiAgICAjIFJlcXVpcmVzOiAgMSA+ PSBDWUdJTlRfSVNPX1NURExJQl9ESVYgCiAgICAjICAgICBDWUdJTlRfSVNP X1NURExJQl9ESVYgKHVua25vd24pID09IDAKICAgICMgICAtLT4gMQoKICAg ICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0 aGlzIHZhbHVlCiAgICAjIHBhY2thZ2UgQ1lHUEtHX0xJQkNfVElNRQogICAg IyAgICAgUmVxdWlyZXM6IENZR0lOVF9JU09fRElWCn07CgojIGRpdigpL2xk aXYoKSBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JM RF9JU09fU1RETElCX0RJVl9IRUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xk YXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAw CiAgICAjIFRoZSBpbmZlcnJlZCB2YWx1ZSBzaG91bGQgbm90IGJlIGVkaXRl ZCBkaXJlY3RseS4KICAgIGluZmVycmVkX3ZhbHVlIDEgPGN5Zy9saWJjL3N0 ZGxpYi9kaXYuaW5sPgogICAgIyB2YWx1ZV9zb3VyY2UgaW5mZXJyZWQKICAg ICMgRGVmYXVsdCB2YWx1ZTogMCAwCgogICAgIyBUaGUgZm9sbG93aW5nIHBy b3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0 aW9uIENZR0lNUF9MSUJDX1NURExJQl9JTkxJTkVfRElWCiAgICAjICAgICBS ZXF1aXJlczogIENZR0JMRF9JU09fU1RETElCX0RJVl9IRUFERVIgPT0gICI8 Y3lnL2xpYmMvc3RkbGliL2Rpdi5pbmw+IiAKfTsKCiMgTXVsdGlieXRlIGNo YXJhY3RlciBpbXBsZW1lbnRhdGlvbnMKIwpjZGxfaW50ZXJmYWNlIENZR0lO VF9JU09fU1RETElCX01VTFRJQllURSB7CiAgICAjIE5vIG9wdGlvbnMgaW1w bGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90 IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBD dXJyZW50X3ZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRf SVNPX1NURExJQl9NVUxUSUJZVEUgCiAgICAjICAgICBDWUdJTlRfSVNPX1NU RExJQl9NVUxUSUJZVEUgPT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUg Zm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFs dWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09fU1RETElCX01VTFRJQllU RQogICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RETElC X01VTFRJQllURSAKfTsKCiMgTXVsdGlieXRlIGNoYXJhY3RlciBpbXBsZW1l bnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU1RETElC X01VTFRJQllURV9IRUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAg MAp9OwoKIyA8CiMgU3RyaW5nIGZ1bmN0aW9ucwojCmNkbF9jb21wb25lbnQg Q1lHUEtHX0lTT19TVFJJTkcgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lh dGVkIHZhbHVlLgp9OwoKIyA+CiMgTnVtYmVyIG9mIGltcGxlbWVudGF0aW9u cyBvZiBzdHJlcnJvcigpIGZ1bmN0aW9uCiMKY2RsX2ludGVyZmFjZSBDWUdJ TlRfSVNPX1NUUkVSUk9SIHsKICAgICMgSW1wbGVtZW50ZWQgYnkgQ1lHUEtH X0VSUk9SX1NUUkVSUk9SLCBhY3RpdmUsIGVuYWJsZWQKICAgICMgVGhpcyB2 YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBk YXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6ICAx ID49IENZR0lOVF9JU09fU1RSRVJST1IgCiAgICAjICAgICBDWUdJTlRfSVNP X1NUUkVSUk9SID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAg ICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX1NUUkVSUk9SCiAgICAjICAgICBS ZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVFJFUlJPUiAKICAgICMgcGFj a2FnZSBDWUdQS0dfTElCQ19TVERJTwogICAgIyAgICAgUmVxdWlyZXM6IENZ R0lOVF9JU09fU1RSRVJST1IKfTsKCiMgc3RyZXJyb3IoKSBpbXBsZW1lbnRh dGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU1RSRVJST1Jf SEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1c2Vy IHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3Zp ZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAogICAgIyBUaGUgaW5mZXJy ZWQgdmFsdWUgc2hvdWxkIG5vdCBiZSBlZGl0ZWQgZGlyZWN0bHkuCiAgICBp bmZlcnJlZF92YWx1ZSAxIDxjeWcvZXJyb3Ivc3RyZXJyb3IuaD4KICAgICMg dmFsdWVfc291cmNlIGluZmVycmVkCiAgICAjIERlZmF1bHQgdmFsdWU6IDAg MAoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3Rl ZCBieSB0aGlzIHZhbHVlCiAgICAjIG9wdGlvbiBDWUdQS0dfRVJST1JfU1RS RVJST1IKICAgICMgICAgIFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19TVFJFUlJP Ul9IRUFERVIgPT0gIjxjeWcvZXJyb3Ivc3RyZXJyb3IuaD4iIAp9OwoKIyBt ZW1jcHkoKSBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZ R0JMRF9JU09fTUVNQ1BZX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRh dGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMCAwCn07CgojIG1lbXNldCgpIGltcGxlbWVudGF0aW9uIGhlYWRlcgoj CmNkbF9vcHRpb24gQ1lHQkxEX0lTT19NRU1TRVRfSEVBREVSIHsKICAgICMg Rmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAg IyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsKCiMgTnVtYmVyIG9mIGltcGxlbWVu dGF0aW9ucyBvZiBzdHJ0b2tfcigpIGZ1bmN0aW9uCiMKY2RsX2ludGVyZmFj ZSBDWUdJTlRfSVNPX1NUUlRPS19SIHsKICAgICMgSW1wbGVtZW50ZWQgYnkg Q1lHUEtHX0xJQkNfU1RSSU5HLCBhY3RpdmUsIGVuYWJsZWQKICAgICMgVGhp cyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9y OiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6 ICAxID49IENZR0lOVF9JU09fU1RSVE9LX1IgCiAgICAjICAgICBDWUdJTlRf SVNPX1NUUlRPS19SID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZv bGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVl CiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX1NUUlRPS19SCiAgICAjICAg ICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVFJUT0tfUiAKfTsKCiMg c3RydG9rX3IoKSBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9u IENZR0JMRF9JU09fU1RSVE9LX1JfSEVBREVSIHsKICAgICMgRmxhdm9yOiBi b29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDAgMAogICAgIyBUaGUgaW5mZXJyZWQgdmFsdWUgc2hvdWxkIG5vdCBiZSBl ZGl0ZWQgZGlyZWN0bHkuCiAgICBpbmZlcnJlZF92YWx1ZSAxIDxjeWcvbGli Yy9zdHJpbmcvc3RyaW5nLmg+CiAgICAjIHZhbHVlX3NvdXJjZSBpbmZlcnJl ZAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKCiAgICAjIFRoZSBmb2xsb3dp bmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAg IyBwYWNrYWdlIENZR1BLR19MSUJDX1NUUklORwogICAgIyAgICAgUmVxdWly ZXM6ICBDWUdCTERfSVNPX1NUUlRPS19SX0hFQURFUiA9PSAgIjxjeWcvbGli Yy9zdHJpbmcvc3RyaW5nLmg+IiAKfTsKCiMgTnVtYmVyIG9mIGltcGxlbWVu dGF0aW9ucyBvZiBsb2NhbGUtc3BlY2lmaWMgc3RyaW5nICBmdW5jdGlvbnMK IyBUaGlzIGNvdmVycyBsb2NhbGUtZGVwZW5kZW50IHN0cmluZyBmdW5jdGlv bnMgc3VjaCBhcyBzdHJjb2xsKCkKIyBhbmQgc3RyeGZybSgpLgojCmNkbF9p bnRlcmZhY2UgQ1lHSU5UX0lTT19TVFJJTkdfTE9DQUxFX0ZVTkNTIHsKICAg ICMgSW1wbGVtZW50ZWQgYnkgQ1lHUEtHX0xJQkNfU1RSSU5HLCBhY3RpdmUs IGVuYWJsZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQg aGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6 IDEKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RSSU5HX0xP Q0FMRV9GVU5DUyAKICAgICMgICAgIENZR0lOVF9JU09fU1RSSU5HX0xPQ0FM RV9GVU5DUyA9PSAxCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dp bmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAg IyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19TVFJJTkdfTE9DQUxFX0ZVTkNTCiAg ICAjICAgICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVFJJTkdfTE9D QUxFX0ZVTkNTIAp9OwoKIyBMb2NhbGUtc3BlY2lmaWMgc3RyaW5nIGZ1bmN0 aW9ucycgaW1wbGVtZW50YXRpb24gIGhlYWRlcgojIFRoaXMgY292ZXJzIGxv Y2FsZS1kZXBlbmRlbnQgc3RyaW5nIGZ1bmN0aW9ucyBzdWNoIGFzIHN0cmNv bGwoKQojIGFuZCBzdHJ4ZnJtKCkuCiMKY2RsX29wdGlvbiBDWUdCTERfSVNP X1NUUklOR19MT0NBTEVfRlVOQ1NfSEVBREVSIHsKICAgICMgRmxhdm9yOiBi b29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDAgMAogICAgIyBUaGUgaW5mZXJyZWQgdmFsdWUgc2hvdWxkIG5vdCBiZSBl ZGl0ZWQgZGlyZWN0bHkuCiAgICBpbmZlcnJlZF92YWx1ZSAxIDxjeWcvbGli Yy9zdHJpbmcvc3RyaW5nLmg+CiAgICAjIHZhbHVlX3NvdXJjZSBpbmZlcnJl ZAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKCiAgICAjIFRoZSBmb2xsb3dp bmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAg IyBwYWNrYWdlIENZR1BLR19MSUJDX1NUUklORwogICAgIyAgICAgUmVxdWly ZXM6ICBDWUdCTERfSVNPX1NUUklOR19MT0NBTEVfRlVOQ1NfSEVBREVSID09 ICAiPGN5Zy9saWJjL3N0cmluZy9zdHJpbmcuaD4iIAp9OwoKIyBOdW1iZXIg b2YgaW1wbGVtZW50YXRpb25zIG9mIEJTRCBzdHJpbmcgZnVuY3Rpb25zCiMK Y2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1NUUklOR19CU0RfRlVOQ1Mgewog ICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAg IyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMAogICAgIyBSZXF1 aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVFJJTkdfQlNEX0ZVTkNTIAogICAg IyAgICAgQ1lHSU5UX0lTT19TVFJJTkdfQlNEX0ZVTkNTID09IDAKICAgICMg ICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBh ZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRf SVNPX1NUUklOR19CU0RfRlVOQ1MKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+ PSBDWUdJTlRfSVNPX1NUUklOR19CU0RfRlVOQ1MgCn07CgojIEJTRCBzdHJp bmcgZnVuY3Rpb25zJyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0 aW9uIENZR0JMRF9JU09fU1RSSU5HX0JTRF9GVU5DU19IRUFERVIgewogICAg IyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29t bWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAj IHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBOdW1iZXIgb2YgaW1wbGVt ZW50YXRpb25zIG9mIG90aGVyIG1lbSooKSBmdW5jdGlvbnMKIwpjZGxfaW50 ZXJmYWNlIENZR0lOVF9JU09fU1RSSU5HX01FTUZVTkNTIHsKICAgICMgSW1w bGVtZW50ZWQgYnkgQ1lHUEtHX0xJQkNfU1RSSU5HLCBhY3RpdmUsIGVuYWJs ZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4K ICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDEKICAg ICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RSSU5HX01FTUZVTkNT IAogICAgIyAgICAgQ1lHSU5UX0lTT19TVFJJTkdfTUVNRlVOQ1MgPT0gMQog ICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMg YXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZ R0lOVF9JU09fU1RSSU5HX01FTUZVTkNTCiAgICAjICAgICBSZXF1aXJlczog IDEgPj0gQ1lHSU5UX0lTT19TVFJJTkdfTUVNRlVOQ1MgCiAgICAjIHBhY2th Z2UgQ1lHUEtHX0xJQkNfU1RESU8KICAgICMgICAgIFJlcXVpcmVzOiBDWUdJ TlRfSVNPX1NUUklOR19NRU1GVU5DUwp9OwoKIyBPdGhlciBtZW0qKCkgZnVu Y3Rpb25zJyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZ R0JMRF9JU09fU1RSSU5HX01FTUZVTkNTX0hFQURFUiB7CiAgICAjIEZsYXZv cjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAwIDAKICAgICMgVGhlIGluZmVycmVkIHZhbHVlIHNob3VsZCBub3Qg YmUgZWRpdGVkIGRpcmVjdGx5LgogICAgaW5mZXJyZWRfdmFsdWUgMSA8Y3ln L2xpYmMvc3RyaW5nL3N0cmluZy5oPgogICAgIyB2YWx1ZV9zb3VyY2UgaW5m ZXJyZWQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCgogICAgIyBUaGUgZm9s bG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUK ICAgICMgcGFja2FnZSBDWUdQS0dfTElCQ19TVFJJTkcKICAgICMgICAgIFJl cXVpcmVzOiAgQ1lHQkxEX0lTT19TVFJJTkdfTUVNRlVOQ1NfSEVBREVSID09 ICAiPGN5Zy9saWJjL3N0cmluZy9zdHJpbmcuaD4iIAp9OwoKIyBOdW1iZXIg b2YgaW1wbGVtZW50YXRpb25zIG9mIG90aGVyIElTTyBDIHN0ciooKSAgZnVu Y3Rpb25zCiMgVGhpcyBjb3ZlcnMgdGhlIG90aGVyIHN0ciooKSBmdW5jdGlv bnMgZGVmaW5lZCBieSBJU08gQy4KIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9J U09fU1RSSU5HX1NUUkZVTkNTIHsKICAgICMgSW1wbGVtZW50ZWQgYnkgQ1lH UEtHX0xJQkNfU1RSSU5HLCBhY3RpdmUsIGVuYWJsZWQKICAgICMgVGhpcyB2 YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBk YXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6ICAx ID49IENZR0lOVF9JU09fU1RSSU5HX1NUUkZVTkNTIAogICAgIyAgICAgQ1lH SU5UX0lTT19TVFJJTkdfU1RSRlVOQ1MgPT0gMQogICAgIyAgIC0tPiAxCgog ICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5 IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09fU1RSSU5H X1NUUkZVTkNTCiAgICAjICAgICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lT T19TVFJJTkdfU1RSRlVOQ1MgCiAgICAjIHBhY2thZ2UgQ1lHUEtHX0xJQkNf U1RESU8KICAgICMgICAgIFJlcXVpcmVzOiBDWUdJTlRfSVNPX1NUUklOR19T VFJGVU5DUwp9OwoKIyBPdGhlciBJU08gQyBzdHIqKCkgZnVuY3Rpb25zJyBp bXBsZW1lbnRhdGlvbiAgaGVhZGVyCiMgVGhpcyBjb3ZlcnMgdGhlIG90aGVy IHN0ciooKSBmdW5jdGlvbnMgZGVmaW5lZCBieSBJU08gQy4KIwpjZGxfb3B0 aW9uIENZR0JMRF9JU09fU1RSSU5HX1NUUkZVTkNTX0hFQURFUiB7CiAgICAj IEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAwIDAKICAgICMgVGhlIGluZmVycmVkIHZhbHVlIHNob3Vs ZCBub3QgYmUgZWRpdGVkIGRpcmVjdGx5LgogICAgaW5mZXJyZWRfdmFsdWUg MSA8Y3lnL2xpYmMvc3RyaW5nL3N0cmluZy5oPgogICAgIyB2YWx1ZV9zb3Vy Y2UgaW5mZXJyZWQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCgogICAgIyBU aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMg dmFsdWUKICAgICMgcGFja2FnZSBDWUdQS0dfTElCQ19TVFJJTkcKICAgICMg ICAgIFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19TVFJJTkdfU1RSRlVOQ1NfSEVB REVSID09ICAiPGN5Zy9saWJjL3N0cmluZy9zdHJpbmcuaD4iIAp9OwoKIyA8 CiMgQ2xvY2sgYW5kIHRpbWUgZnVuY3Rpb25hbGl0eQojCmNkbF9jb21wb25l bnQgQ1lHUEtHX0lTT19USU1FIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2Np YXRlZCB2YWx1ZS4KfTsKCiMgPgojIHRpbWVfdCBpbXBsZW1lbnRhdGlvbiBo ZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fVElNRV9UX0hFQURFUiB7 CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIGNsb2NrX3QgaW1w bGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX0NM T0NLX1RfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1 ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsK CiMgc3RydWN0IHRpbWV2YWwgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2Rs X29wdGlvbiBDWUdCTERfSVNPX1NUUlVDVFRJTUVWQUxfSEVBREVSIHsKICAg ICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNv bW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAg IyB1c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAog ICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsKCiMgTnVtYmVyIG9mIGltcGxl bWVudGF0aW9ucyBvZiBQT1NJWCB0aW1lciB0eXBlcwojCmNkbF9pbnRlcmZh Y2UgQ1lHSU5UX0lTT19QT1NJWF9USU1FUl9UWVBFUyB7CiAgICAjIE5vIG9w dGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFs dWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0 YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAgMSA+ PSBDWUdJTlRfSVNPX1BPU0lYX1RJTUVSX1RZUEVTIAogICAgIyAgICAgQ1lH SU5UX0lTT19QT1NJWF9USU1FUl9UWVBFUyA9PSAwCiAgICAjICAgLS0+IDEK CiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQg YnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19QT1NJ WF9USU1FUl9UWVBFUwogICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lO VF9JU09fUE9TSVhfVElNRVJfVFlQRVMgCn07CgojIFBPU0lYIHRpbWVyIHR5 cGVzIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxE X0lTT19QT1NJWF9USU1FUl9UWVBFU19IRUFERVIgewogICAgIyBGbGF2b3I6 IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1 bHQgdmFsdWU6IDAgMAp9OwoKIyBOdW1iZXIgb2YgaW1wbGVtZW50YXRpb25z IG9mIElTTyBDIHR5cGVzCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX0Nf VElNRV9UWVBFUyB7CiAgICAjIEltcGxlbWVudGVkIGJ5IENZR1BLR19MSUJD X1RJTUUsIGFjdGl2ZSwgZW5hYmxlZAogICAgIyBUaGlzIHZhbHVlIGNhbm5v dCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMg Q3VycmVudF92YWx1ZTogMQogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5U X0lTT19DX1RJTUVfVFlQRVMgCiAgICAjICAgICBDWUdJTlRfSVNPX0NfVElN RV9UWVBFUyA9PSAxCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dp bmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAg IyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19DX1RJTUVfVFlQRVMKICAgICMgICAg IFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX0NfVElNRV9UWVBFUyAKfTsK CiMgSVNPIEMgdGltZSB0eXBlcyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpj ZGxfb3B0aW9uIENZR0JMRF9JU09fQ19USU1FX1RZUEVTX0hFQURFUiB7CiAg ICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSAwIDAKICAgICMgVGhlIGluZmVycmVkIHZhbHVlIHNo b3VsZCBub3QgYmUgZWRpdGVkIGRpcmVjdGx5LgogICAgaW5mZXJyZWRfdmFs dWUgMSA8Y3lnL2xpYmMvdGltZS90aW1lLmg+CiAgICAjIHZhbHVlX3NvdXJj ZSBpbmZlcnJlZAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKCiAgICAjIFRo ZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2 YWx1ZQogICAgIyBwYWNrYWdlIENZR1BLR19MSUJDX1RJTUUKICAgICMgICAg IFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19DX1RJTUVfVFlQRVNfSEVBREVSID09 ICI8Y3lnL2xpYmMvdGltZS90aW1lLmg+IiAKfTsKCiMgTnVtYmVyIG9mIGlt cGxlbWVudGF0aW9ucyBvZiBQT1NJWCB0aW1lcnMKIwpjZGxfaW50ZXJmYWNl IENZR0lOVF9JU09fUE9TSVhfVElNRVJTIHsKICAgICMgTm8gb3B0aW9ucyBp bXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5u b3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAj IEN1cnJlbnRfdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lO VF9JU09fUE9TSVhfVElNRVJTIAogICAgIyAgICAgQ1lHSU5UX0lTT19QT1NJ WF9USU1FUlMgPT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93 aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAg ICMgaW50ZXJmYWNlIENZR0lOVF9JU09fUE9TSVhfVElNRVJTCiAgICAjICAg ICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19QT1NJWF9USU1FUlMgCn07 CgojIFBPU0lYIHRpbWVyIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9v cHRpb24gQ1lHQkxEX0lTT19QT1NJWF9USU1FUlNfSEVBREVSIHsKICAgICMg Rmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAg IyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsKCiMgTnVtYmVyIG9mIGltcGxlbWVu dGF0aW9ucyBvZiBJU08gQyBjbG9jayBmdW5jdGlvbnMKIwpjZGxfaW50ZXJm YWNlIENZR0lOVF9JU09fQ19DTE9DS19GVU5DUyB7CiAgICAjIEltcGxlbWVu dGVkIGJ5IENZR1BLR19MSUJDX1RJTUUsIGFjdGl2ZSwgZW5hYmxlZAogICAg IyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMQogICAgIyBSZXF1 aXJlczogIDEgPj0gQ1lHSU5UX0lTT19DX0NMT0NLX0ZVTkNTIAogICAgIyAg ICAgQ1lHSU5UX0lTT19DX0NMT0NLX0ZVTkNTID09IDEKICAgICMgICAtLT4g MQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3Rl ZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX0Nf Q0xPQ0tfRlVOQ1MKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRf SVNPX0NfQ0xPQ0tfRlVOQ1MgCn07CgojIElTTyBDIGNsb2NrIGZ1bmN0aW9u cycgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdCTERf SVNPX0NfQ0xPQ0tfRlVOQ1NfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29s ZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAg MAogICAgIyBUaGUgaW5mZXJyZWQgdmFsdWUgc2hvdWxkIG5vdCBiZSBlZGl0 ZWQgZGlyZWN0bHkuCiAgICBpbmZlcnJlZF92YWx1ZSAxIDxjeWcvbGliYy90 aW1lL3RpbWUuaD4KICAgICMgdmFsdWVfc291cmNlIGluZmVycmVkCiAgICAj IERlZmF1bHQgdmFsdWU6IDAgMAoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9w ZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIHBhY2th Z2UgQ1lHUEtHX0xJQkNfVElNRQogICAgIyAgICAgUmVxdWlyZXM6ICBDWUdC TERfSVNPX0NfQ0xPQ0tfRlVOQ1NfSEVBREVSID09ICAiPGN5Zy9saWJjL3Rp bWUvdGltZS5oPiIgCn07CgojIE51bWJlciBvZiBpbXBsZW1lbnRhdGlvbnMg b2YgdHpzZXQoKSBmdW5jdGlvbgojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lT T19UWlNFVCB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5m ZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhl cmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAw CiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1RaU0VUIAogICAg IyAgICAgQ1lHSU5UX0lTT19UWlNFVCA9PSAwCiAgICAjICAgLS0+IDEKCiAg ICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkg dGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19UWlNFVAog ICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fVFpTRVQgCn07 CgojIHR6c2V0KCkgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlv biBDWUdCTERfSVNPX1RaU0VUX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9v bGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAw IDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2 YWx1ZTogMCAwCn07CgojIDwKIyBTaWduYWwgZnVuY3Rpb25hbGl0eQojCmNk bF9jb21wb25lbnQgQ1lHUEtHX0lTT19TSUdOQUwgewogICAgIyBUaGVyZSBp cyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgTnVtYmVyIG9mIGlt cGxlbWVudGF0aW9ucyBvZiBzaWduYWwgbnVtYmVycwojCmNkbF9pbnRlcmZh Y2UgQ1lHSU5UX0lTT19TSUdOQUxfTlVNQkVSUyB7CiAgICAjIEltcGxlbWVu dGVkIGJ5IENZR1BLR19MSUJDX1NJR05BTFMsIGFjdGl2ZSwgZW5hYmxlZAog ICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAg IyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMQogICAgIyBS ZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TSUdOQUxfTlVNQkVSUyAKICAg ICMgICAgIENZR0lOVF9JU09fU0lHTkFMX05VTUJFUlMgPT0gMQogICAgIyAg IC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFm ZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9J U09fU0lHTkFMX05VTUJFUlMKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBD WUdJTlRfSVNPX1NJR05BTF9OVU1CRVJTIAogICAgIyBvcHRpb24gQ1lHU0VN X0lPX1NFUklBTF9URVJNSU9TX1VTRV9TSUdOQUxTCiAgICAjICAgICBSZXF1 aXJlczogQ1lHSU5UX0lTT19TSUdOQUxfTlVNQkVSUwogICAgIyBvcHRpb24g Q1lHU0VNX0lPX1NFUklBTF9URVJNSU9TX1VTRV9TSUdOQUxTCiAgICAjICAg ICBEZWZhdWx0VmFsdWU6ICBDWUdJTlRfSVNPX1NJR05BTF9OVU1CRVJTICE9 IDAgJiYgIENZR0lOVF9JU09fU0lHTkFMX0lNUEwgIT0gMCAKfTsKCiMgU2ln bmFsIG51bWJlcmluZyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIyBUaGlzIGhl YWRlciBwcm92aWRlcyB0aGUgbWFwcGluZyBvZiBzaWduYWwKIyBuYW1lcyAo ZS5nLiBTSUdCVVMpIHRvIG51bWJlcnMuCiMKY2RsX29wdGlvbiBDWUdCTERf SVNPX1NJR05BTF9OVU1CRVJTX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9v bGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAw IDAKICAgICMgVGhlIGluZmVycmVkIHZhbHVlIHNob3VsZCBub3QgYmUgZWRp dGVkIGRpcmVjdGx5LgogICAgaW5mZXJyZWRfdmFsdWUgMSA8Y3lnL2xpYmMv c2lnbmFscy9zaWduYWwuaD4KICAgICMgdmFsdWVfc291cmNlIGluZmVycmVk CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAoKICAgICMgVGhlIGZvbGxvd2lu ZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAj IHBhY2thZ2UgQ1lHUEtHX0xJQkNfU0lHTkFMUwogICAgIyAgICAgUmVxdWly ZXM6ICBDWUdCTERfSVNPX1NJR05BTF9OVU1CRVJTX0hFQURFUiA9PSAgIjxj eWcvbGliYy9zaWduYWxzL3NpZ25hbC5oPiIgCn07CgojIE51bWJlciBvZiBz aWduYWwgaW1wbGVtZW50YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRf SVNPX1NJR05BTF9JTVBMIHsKICAgICMgSW1wbGVtZW50ZWQgYnkgQ1lHUEtH X0xJQkNfU0lHTkFMUywgYWN0aXZlLCBlbmFibGVkCiAgICAjIFRoaXMgdmFs dWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0 YQogICAgIyBDdXJyZW50X3ZhbHVlOiAxCiAgICAjIFJlcXVpcmVzOiAgMSA+ PSBDWUdJTlRfSVNPX1NJR05BTF9JTVBMIAogICAgIyAgICAgQ1lHSU5UX0lT T19TSUdOQUxfSU1QTCA9PSAxCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBm b2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1 ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19TSUdOQUxfSU1QTAogICAg IyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU0lHTkFMX0lNUEwg CiAgICAjIG9wdGlvbiBDWUdTRU1fSU9fU0VSSUFMX1RFUk1JT1NfVVNFX1NJ R05BTFMKICAgICMgICAgIFJlcXVpcmVzOiBDWUdJTlRfSVNPX1NJR05BTF9J TVBMCiAgICAjIG9wdGlvbiBDWUdTRU1fSU9fU0VSSUFMX1RFUk1JT1NfVVNF X1NJR05BTFMKICAgICMgICAgIERlZmF1bHRWYWx1ZTogIENZR0lOVF9JU09f U0lHTkFMX05VTUJFUlMgIT0gMCAmJiAgQ1lHSU5UX0lTT19TSUdOQUxfSU1Q TCAhPSAwIAp9OwoKIyBTaWduYWxzIGltcGxlbWVudGF0aW9uIGhlYWRlcgoj CmNkbF9vcHRpb24gQ1lHQkxEX0lTT19TSUdOQUxfSU1QTF9IRUFERVIgewog ICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVu Y29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAg ICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIFRoZSBpbmZlcnJlZCB2YWx1ZSBz aG91bGQgbm90IGJlIGVkaXRlZCBkaXJlY3RseS4KICAgIGluZmVycmVkX3Zh bHVlIDEgPGN5Zy9saWJjL3NpZ25hbHMvc2lnbmFsLmg+CiAgICAjIHZhbHVl X3NvdXJjZSBpbmZlcnJlZAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKCiAg ICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkg dGhpcyB2YWx1ZQogICAgIyBwYWNrYWdlIENZR1BLR19MSUJDX1NJR05BTFMK ICAgICMgICAgIFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19TSUdOQUxfSU1QTF9I RUFERVIgPT0gICI8Y3lnL2xpYmMvc2lnbmFscy9zaWduYWwuaD4iIAp9OwoK IyBQT1NJWCByZWFsIHRpbWUgc2lnbmFscyBmZWF0dXJlIHRlc3QgbWFjcm8K IyBUaGlzIGRlZmluZXMgdGhlIFBPU0lYIGZlYXR1cmUgdGVzdCBtYWNybwoj IHRoYXQgaW5kaWNhdGVzIHRoYXQgdGhlIFBPU0lYIHJlYWwgdGltZSBzaWdu YWxzCiMgYXJlIHByZXNlbnQuCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfUE9T SVhfUkVBTFRJTUVfU0lHTkFMUyB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVt ZW50IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJl IG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJy ZW50X3ZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfUE9T SVhfUkVBTFRJTUVfU0lHTkFMUyAKICAgICMgICAgIENZR0lOVF9QT1NJWF9S RUFMVElNRV9TSUdOQUxTID09IDAKICAgICMgICAtLT4gMQoKICAgICMgVGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZh bHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfUE9TSVhfUkVBTFRJTUVfU0lH TkFMUwogICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lOVF9QT1NJWF9S RUFMVElNRV9TSUdOQUxTIAp9OwoKIyA8CiMgTm9uLWxvY2FsIGp1bXBzIGZ1 bmN0aW9uYWxpdHkKIwpjZGxfY29tcG9uZW50IENZR1BLR19JU09fU0VUSk1Q IHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMg PgojIHNldGptcCgpIC8gbG9uZ2ptcCgpIGltcGxlbWVudGF0aW9ucwojCmNk bF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19TRVRKTVAgewogICAgIyBJbXBsZW1l bnRlZCBieSBDWUdQS0dfTElCQ19TRVRKTVAsIGFjdGl2ZSwgZW5hYmxlZAog ICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAg IyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMQogICAgIyBS ZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TRVRKTVAgCiAgICAjICAgICBD WUdJTlRfSVNPX1NFVEpNUCA9PSAxCiAgICAjICAgLS0+IDEKCiAgICAjIFRo ZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2 YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19TRVRKTVAKICAgICMg ICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NFVEpNUCAKfTsKCiMg c2V0am1wKCkgLyBsb25nam1wKCkgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMK Y2RsX29wdGlvbiBDWUdCTERfSVNPX1NFVEpNUF9IRUFERVIgewogICAgIyBG bGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgMCAwCiAgICAjIFRoZSBpbmZlcnJlZCB2YWx1ZSBzaG91bGQg bm90IGJlIGVkaXRlZCBkaXJlY3RseS4KICAgIGluZmVycmVkX3ZhbHVlIDEg PGN5Zy9saWJjL3NldGptcC9zZXRqbXAuaD4KICAgICMgdmFsdWVfc291cmNl IGluZmVycmVkCiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAoKICAgICMgVGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZh bHVlCiAgICAjIHBhY2thZ2UgQ1lHUEtHX0xJQkNfU0VUSk1QCiAgICAjICAg ICBSZXF1aXJlczogIENZR0JMRF9JU09fU0VUSk1QX0hFQURFUiA9PSAiPGN5 Zy9saWJjL3NldGptcC9zZXRqbXAuaD4iIAp9OwoKIyBzaWdzZXRqbXAoKSAv IHNpZ2xvbmdqbXAoKSBpbXBsZW1lbnRhdGlvbnMKIwpjZGxfaW50ZXJmYWNl IENZR0lOVF9JU09fU0lHU0VUSk1QIHsKICAgICMgTm8gb3B0aW9ucyBpbXBs ZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3Qg YmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1 cnJlbnRfdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9J U09fU0lHU0VUSk1QIAogICAgIyAgICAgQ1lHSU5UX0lTT19TSUdTRVRKTVAg PT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3Bl cnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJm YWNlIENZR0lOVF9JU09fU0lHU0VUSk1QCiAgICAjICAgICBSZXF1aXJlczog IDEgPj0gQ1lHSU5UX0lTT19TSUdTRVRKTVAgCn07CgojIHNpZ3NldGptcCgp IC8gc2lnbG9uZ2ptcCgpIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9v cHRpb24gQ1lHQkxEX0lTT19TSUdTRVRKTVBfSEVBREVSIHsKICAgICMgRmxh dm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAwIDAKfTsKCiMgPAojIEFzc2VydGlvbnMgaW1wbGVt ZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX0FTU0VS VF9IRUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVz ZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJv dmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBQ T1NJWCBmaWxlIGNvbnRyb2wKIyBUaGlzIGNvdmVycyB0aGUgUE9TSVggZmls ZSBjb250cm9sIGRlZmluaXRpb25zLAojIG5vcm1hbGx5IGZvdW5kIGluIDxm Y250bC5oPgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lTT19QT1NJWF9GQ05U TCB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUuCn07Cgoj ID4KIyBQT1NJWCBvcGVuIGZsYWdzIGltcGxlbWVudGF0aW9uIGhlYWRlcgoj CmNkbF9vcHRpb24gQ1lHQkxEX0lTT19PRkxBR19IRUFERVIgewogICAgIyBG bGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAj IERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBQT1NJWCBmY250bCgpIGltcGxl bWVudGF0aW9ucwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19GQ05UTCB7 CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAg ICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAj IEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCiAgICAjIFJl cXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX0ZDTlRMIAogICAgIyAgICAgQ1lH SU5UX0lTT19GQ05UTCA9PSAwCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBm b2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1 ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19GQ05UTAogICAgIyAgICAg UmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fRkNOVEwgCn07CgojIFBPU0lY IGZjbnRsKCkgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBD WUdCTERfSVNPX0ZDTlRMX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRh dGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMCAwCn07CgojIFBPU0lYIGZpbGUgb3BlbiBpbXBsZW1lbnRhdGlvbnMK IwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fT1BFTiB7CiAgICAjIE5vIG9w dGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFs dWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0 YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAgMSA+ PSBDWUdJTlRfSVNPX09QRU4gCiAgICAjICAgICBDWUdJTlRfSVNPX09QRU4g PT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3Bl cnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJm YWNlIENZR0lOVF9JU09fT1BFTgogICAgIyAgICAgUmVxdWlyZXM6ICAxID49 IENZR0lOVF9JU09fT1BFTiAKfTsKCiMgUE9TSVggZmlsZSBvcGVuIGltcGxl bWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19PUEVO X0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNl ciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92 aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291 cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIDwK IyA8c3lzL3N0YXQuaD4gZGVmaW5pdGlvbnMgaW1wbGVtZW50YXRpb24gaGVh ZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX1NUQVRfREVGU19IRUFERVIg ewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBQT1NJWCBkaXJl Y3RvcnkgcmVhZGluZyBpbXBsZW1lbnRhdGlvbgojCmNkbF9pbnRlcmZhY2Ug Q1lHSU5UX0lTT19ESVJFTlQgewogICAgIyBObyBvcHRpb25zIGltcGxlbWVu dCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBt b2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVu dF92YWx1ZTogMAogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19E SVJFTlQgCiAgICAjICAgICBDWUdJTlRfSVNPX0RJUkVOVCA9PSAwCiAgICAj ICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUg YWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5U X0lTT19ESVJFTlQKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRf SVNPX0RJUkVOVCAKfTsKCiMgPGRpcmVudC5oPiBkZWZpbml0aW9ucyBpbXBs ZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fRElS RU5UX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgIHVzZXJf dmFsdWUgMSAwCiAgICAjIHZhbHVlX3NvdXJjZSB1c2VyCiAgICAjIERlZmF1 bHQgdmFsdWU6IDAgMAp9OwoKIyBQT1NJWCA8c3lzL3R5cGVzLmg+IGNvbnRl bnRzCiMgVGhpcyBjb3ZlcnMgdGhlIHR5cGVzIHJlcXVpcmVkIGJ5IFBPU0lY IHRvIGJlIGluCiMgPHN5cy90eXBlcy5oPgojCmNkbF9jb21wb25lbnQgQ1lH UEtHX0lTT19QT1NJWF9UWVBFUyB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29j aWF0ZWQgdmFsdWUuCn07CgojID4KIyBQT1NJWCB0aHJlYWQgdHlwZXMgaW1w bGVtZW50YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1BUSFJF QURUWVBFUyB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5m ZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhl cmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAw CiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1BUSFJFQURUWVBF UyAKICAgICMgICAgIENZR0lOVF9JU09fUFRIUkVBRFRZUEVTID09IDAKICAg ICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFy ZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJ TlRfSVNPX1BUSFJFQURUWVBFUwogICAgIyAgICAgUmVxdWlyZXM6ICAxID49 IENZR0lOVF9JU09fUFRIUkVBRFRZUEVTIAp9OwoKIyBQT1NJWCB0aHJlYWQg dHlwZXMgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdC TERfSVNPX1BUSFJFQURUWVBFU19IRUFERVIgewogICAgIyBGbGF2b3I6IGJv b2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg MCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAgMAp9OwoKIyBzc2l6ZV90IGltcGxlbWVudGF0aW9uIGhlYWRl cgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19TU0laRV9UX0hFQURFUiB7CiAg ICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIEZpbGVzeXN0ZW0gdHlw ZXMgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdCTERf SVNPX0ZTVFlQRVNfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAw IDAKfTsKCiMgZ2lkX3QsIHBpZF90LCB1aWRfdCBpbXBsZW1lbnRhdGlvbiBo ZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU0NIRURUWVBFU19IRUFE RVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyA8CiMgTm9u LVBPU0lYIDxzeXMvdHlwZXMuaD4gY29udGVudHMKIyBUaGlzIGNvdmVycyB0 aGUgZXh0cmEgdHlwZXMgcmVxdWlyZWQgYnkgbm9uLVBPU0lYCiMgcGFja2Fn ZXMgdG8gYmUgaW4gPHN5cy90eXBlcy5oPi4gVGhlc2Ugd291bGQgbm9ybWFs bHkKIyBvbmx5IGJlIHZpc2libGUgaWYgX1BPU0lYX1NPVVJDRSBpcyBub3Qg ZGVmaW5lZC4KIwpjZGxfY29tcG9uZW50IENZR1BLR19JU09fRVhUUkFfVFlQ RVMgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoK IyA+CiMgQlNEIGNvbXBhdGlibGUgdHlwZXMKIwpjZGxfaW50ZXJmYWNlIENZ R0lOVF9JU09fQlNEVFlQRVMgewogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdQ S0dfTkVULCBhY3RpdmUsIGVuYWJsZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5u b3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAj IEN1cnJlbnRfdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lO VF9JU09fQlNEVFlQRVMgCiAgICAjICAgICBDWUdJTlRfSVNPX0JTRFRZUEVT ID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9w ZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVy ZmFjZSBDWUdJTlRfSVNPX0JTRFRZUEVTCiAgICAjICAgICBSZXF1aXJlczog IDEgPj0gQ1lHSU5UX0lTT19CU0RUWVBFUyAKfTsKCiMgQlNEIHR5cGVzIGhl YWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19CU0RUWVBFU19IRUFERVIg ewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICB1c2VyX3ZhbHVlIDEgPHN5 cy9ic2R0eXBlcy5oPgogICAgIyB2YWx1ZV9zb3VyY2UgdXNlcgogICAgIyBE ZWZhdWx0IHZhbHVlOiAwIDAKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVy dGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBwYWNrYWdl IENZR1BLR19ORVQKICAgICMgICAgIFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19C U0RUWVBFU19IRUFERVIgPT0gIjxzeXMvYnNkdHlwZXMuaD4iIAp9OwoKIyA8 CiMgVXRzbmFtZSBzdHJ1Y3R1cmUKIwpjZGxfY29tcG9uZW50IENZR1BLR19J U09fVVRTTkFNRSB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFs dWUuCn07CgojID4KIyBVdHNuYW1lIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lH QkxEX0lTT19VVFNOQU1FX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRh dGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMCAwCn07CgojIDwKIyBQT1NJWCBzY2hlZHVsZXIKIwpjZGxfY29tcG9u ZW50IENZR1BLR19JU09fU0NIRUQgewogICAgIyBUaGVyZSBpcyBubyBhc3Nv Y2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgUE9TSVggc2NoZWR1bGVyIGltcGxl bWVudGF0aW9ucwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19TQ0hFRF9J TVBMIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZh Y2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4K ICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKICAg ICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU0NIRURfSU1QTCAKICAg ICMgICAgIENZR0lOVF9JU09fU0NIRURfSU1QTCA9PSAwCiAgICAjICAgLS0+ IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0 ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19T Q0hFRF9JTVBMCiAgICAjICAgICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lT T19TQ0hFRF9JTVBMIAp9OwoKIyBQT1NJWCBzY2hlZHVsZXIgaW1wbGVtZW50 YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX1NDSEVEX0lN UExfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsKCiMg PAojIFBPU0lYIHNlbWFwaG9yZXMKIwpjZGxfY29tcG9uZW50IENZR1BLR19J U09fU0VNQVBIT1JFUyB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQg dmFsdWUuCn07CgojID4KIyBQT1NJWCBzZW1hcGhvcmUgaW1wbGVtZW50YXRp b25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1NFTUFQSE9SRVMgewog ICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAg IyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMAogICAgIyBSZXF1 aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TRU1BUEhPUkVTIAogICAgIyAgICAg Q1lHSU5UX0lTT19TRU1BUEhPUkVTID09IDAKICAgICMgICAtLT4gMQoKICAg ICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0 aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX1NFTUFQSE9S RVMKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NFTUFQ SE9SRVMgCn07CgojIFBPU0lYIHNlbWFwaG9yZSBpbXBsZW1lbnRhdGlvbiBo ZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU0VNQVBIT1JFU19IRUFE RVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICB1c2VyX3ZhbHVlIDAg MAogICAgIyB2YWx1ZV9zb3VyY2UgdXNlcgogICAgIyBEZWZhdWx0IHZhbHVl OiAwIDAKfTsKCiMgPAojIFBPU0lYIG1lc3NhZ2UgcXVldWVzCiMKY2RsX2Nv bXBvbmVudCBDWUdQS0dfSVNPX01RVUVVRSB7CiAgICAjIFRoZXJlIGlzIG5v IGFzc29jaWF0ZWQgdmFsdWUuCn07CgojID4KIyBJbXBsZW1lbnRhdGlvbnMK IwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fTVFVRVVFIHsKICAgICMgTm8g b3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2 YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBk YXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICAx ID49IENZR0lOVF9JU09fTVFVRVVFIAogICAgIyAgICAgQ1lHSU5UX0lTT19N UVVFVUUgPT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5n IHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMg aW50ZXJmYWNlIENZR0lOVF9JU09fTVFVRVVFCiAgICAjICAgICBSZXF1aXJl czogIDEgPj0gQ1lHSU5UX0lTT19NUVVFVUUgCiAgICAjIG9wdGlvbiBDWUdO VU1fSVNPX01RVUVVRV9PUEVOX01BWAogICAgIyAgICAgQWN0aXZlSWY6IENZ R0lOVF9JU09fTVFVRVVFCiAgICAjIG9wdGlvbiBDWUdOVU1fSVNPX01RVUVV RV9QUklPX01BWAogICAgIyAgICAgQWN0aXZlSWY6IENZR0lOVF9JU09fTVFV RVVFCn07CgojIEltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24g Q1lHQkxEX0lTT19NUVVFVUVfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29s ZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAg MAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiAwIDAKfTsKCiMgTWF4aW11bSBudW1iZXIgb2Ygb3BlbiBtZXNzYWdl IHF1ZXVlcwojCmNkbF9vcHRpb24gQ1lHTlVNX0lTT19NUVVFVUVfT1BFTl9N QVggewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIEFj dGl2ZUlmIGNvbnN0cmFpbnQ6IENZR0lOVF9JU09fTVFVRVVFCiAgICAjICAg ICBDWUdJTlRfSVNPX01RVUVVRSA9PSAwCiAgICAjICAgLS0+IDAKCiAgICAj IEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAg ICMgRGVmYXVsdCB2YWx1ZTogIENZR05VTV9QT1NJWF9NUVVFVUVfT1BFTl9N QVggPiAwID8gQ1lHTlVNX1BPU0lYX01RVUVVRV9PUEVOX01BWCA6IDAgCiAg ICAjICAgICBDWUdOVU1fUE9TSVhfTVFVRVVFX09QRU5fTUFYICh1bmtub3du KSA9PSAwCiAgICAjICAgICBDWUdOVU1fUE9TSVhfTVFVRVVFX09QRU5fTUFY ICh1bmtub3duKSA9PSAwCiAgICAjICAgLS0+IDAgMAp9OwoKIyBNYXhpbXVt IG51bWJlciBvZiBtZXNzYWdlIHByaW9yaXRpZXMKIwpjZGxfb3B0aW9uIENZ R05VTV9JU09fTVFVRVVFX1BSSU9fTUFYIHsKICAgICMgVGhpcyBvcHRpb24g aXMgbm90IGFjdGl2ZQogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBDWUdJ TlRfSVNPX01RVUVVRQogICAgIyAgICAgQ1lHSU5UX0lTT19NUVVFVUUgPT0g MAogICAgIyAgIC0tPiAwCgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAj IE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUg dG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMSA2NTUzNQogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAx IDY1NTM1Cn07CgojIDwKIyBQT1NJWCB0aHJlYWRzCiMKY2RsX2NvbXBvbmVu dCBDWUdQS0dfSVNPX1BUSFJFQUQgewogICAgIyBUaGVyZSBpcyBubyBhc3Nv Y2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgUE9TSVggcHRocmVhZCBpbXBsZW1l bnRhdGlvbnMKIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fUFRIUkVBRF9J TVBMIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZh Y2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4K ICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKICAg ICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fUFRIUkVBRF9JTVBMIAog ICAgIyAgICAgQ1lHSU5UX0lTT19QVEhSRUFEX0lNUEwgPT0gMAogICAgIyAg IC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFm ZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9J U09fUFRIUkVBRF9JTVBMCiAgICAjICAgICBSZXF1aXJlczogIDEgPj0gQ1lH SU5UX0lTT19QVEhSRUFEX0lNUEwgCn07CgojIFBPU0lYIHB0aHJlYWQgaW1w bGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX1BU SFJFQURfSU1QTF9IRUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAg MAp9OwoKIyA8CiMgTGltaXRzCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfSVNP X0xJTUlUUyB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUu Cn07CgojID4KIyBQT1NJWCBwdGhyZWFkIGxpbWl0cyBpbXBsZW1lbnRhdGlv bnMKIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fUE9TSVhfTElNSVRTIHsK ICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAg ICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMg Rmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKICAgICMgUmVx dWlyZXM6ICAxID49IENZR0lOVF9JU09fUE9TSVhfTElNSVRTIAogICAgIyAg ICAgQ1lHSU5UX0lTT19QT1NJWF9MSU1JVFMgPT0gMAogICAgIyAgIC0tPiAx CgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVk IGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09fUE9T SVhfTElNSVRTCiAgICAjICAgICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lT T19QT1NJWF9MSU1JVFMgCn07CgojIFBPU0lYIHB0aHJlYWQgbGltaXRzIGlt cGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19Q T1NJWF9MSU1JVFNfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAw IDAKfTsKCiMgT1BFTl9NQVggaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2Rs X29wdGlvbiBDWUdCTERfSVNPX09QRU5fTUFYX0hFQURFUiB7CiAgICAjIEZs YXZvcjogYm9vbGRhdGEKICAgIHVzZXJfdmFsdWUgMSAxCiAgICAjIHZhbHVl X3NvdXJjZSB1c2VyCiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBM SU5LX01BWCBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZ R0JMRF9JU09fTElOS19NQVhfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29s ZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAg MAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiAwIDAKfTsKCiMgTkFNRV9NQVggaW1wbGVtZW50YXRpb24gaGVhZGVy CiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX05BTUVfTUFYX0hFQURFUiB7CiAg ICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIFBBVEhfTUFYIGltcGxl bWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19QQVRI X01BWF9IRUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5v IHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8g cHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVl X3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoK IyA8CiMgUE9TSVggdGVybWlvcwojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lT T19URVJNSU9TIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1 ZS4KfTsKCiMgPgojIFBPU0lYIHRlcm1pb3MgaW1wbGVtZW50YXRpb25zCiMK Y2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1RFUk1JT1MgewogICAgIyBJbXBs ZW1lbnRlZCBieSBDWUdQS0dfSU9fU0VSSUFMX1RFUk1JT1MsIGFjdGl2ZSwg ZGlzYWJsZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQg aGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6 IDAKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fVEVSTUlPUyAK ICAgICMgICAgIENZR0lOVF9JU09fVEVSTUlPUyA9PSAwCiAgICAjICAgLS0+ IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0 ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19U RVJNSU9TCiAgICAjICAgICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19U RVJNSU9TIAp9OwoKIyBQT1NJWCB0ZXJtaW9zIGltcGxlbWVudGF0aW9uIGhl YWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19URVJNSU9TX0hFQURFUiB7 CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIDwKIyBCdWlsZCBv cHRpb25zCiMgUGFja2FnZSBzcGVjaWZpYyBidWlsZCBvcHRpb25zIGluY2x1 ZGluZyBjb250cm9sIG92ZXIKIyBjb21waWxlciBmbGFncyB1c2VkIG9ubHkg aW4gYnVpbGRpbmcgdGhpcyBwYWNrYWdlLAojIGFuZCBkZXRhaWxzIG9mIHdo aWNoIHRlc3RzIGFyZSBidWlsdC4KIwpjZGxfY29tcG9uZW50IENZR1BLR19J U09JTkZSQV9PUFRJT05TIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRl ZCB2YWx1ZS4KfTsKCiMgPgojIEFkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3MK IyBUaGlzIG9wdGlvbiBtb2RpZmllcyB0aGUgc2V0IG9mIGNvbXBpbGVyIGZs YWdzIGZvcgojIGJ1aWxkaW5nIHRoZSBJU08gQyBhbmQgUE9TSVggaW5mcmFz dHJ1Y3R1cmUgcGFja2FnZS4KIyBUaGVzZSBmbGFncyBhcmUgdXNlZCBpbiBh ZGRpdGlvbiB0byB0aGUgc2V0IG9mIGdsb2JhbCBmbGFncy4KIwpjZGxfb3B0 aW9uIENZR1BLR19JU09JTkZSQV9DRkxBR1NfQUREIHsKICAgICMgRmxhdm9y OiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg IiIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2 YWx1ZTogIiIKfTsKCiMgU3VwcHJlc3NlZCBjb21waWxlciBmbGFncwojIFRo aXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3Mg Zm9yCiMgYnVpbGRpbmcgdGhlIElTTyBDIGFuZCBQT1NJWCBpbmZyYXN0cnVj dHVyZSBwYWNrYWdlLgojIFRoZXNlIGZsYWdzIGFyZSByZW1vdmVkIGZyb20g dGhlIHNldCBvZiBnbG9iYWwgZmxhZ3MKIyBpZiBwcmVzZW50LgojCmNkbF9v cHRpb24gQ1lHUEtHX0lTT0lORlJBX0NGTEFHU19SRU1PVkUgewogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAiIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAiIgp9OwoKIyA8CiMgPAojIElTTyBDIGxpYnJhcnkKIyBk b2M6IHJlZGlyZWN0L3RoZS1pc28tc3RhbmRhcmQtYy1hbmQtbWF0aC1saWJy YXJpZXMuaHRtbAojIFRoZSBwYWNrYWdlcyB1bmRlciB0aGlzIHBhY2thZ2Ug ZW5hYmxlIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgSVNPIEMKIyBzdGFuZGFy ZCAtIElTTy9JRUMgOTg5OToxOTkwLiBUaGlzIGFsbG93cyB0aGUgdXNlciBh cHBsaWNhdGlvbiB0byB1c2UKIyB3ZWxsIGtub3duIHN0YW5kYXJkIEMgbGli cmFyeSBmdW5jdGlvbnMsIGFuZCBpbiBlQ29zIHN0YXJ0cyBhIHRocmVhZAoj IHRvIGludm9rZSB0aGUgdXNlciBmdW5jdGlvbiBtYWluKCkuIFRoaXMgcGFj a2FnZSBpcyBhIHRvcC1sZXZlbCBwbGFjZWhvbGRlcgojIHRvIGNvbnRhaW4g dGhlIGltcGxlbWVudGF0aW9ucy4KIwpjZGxfcGFja2FnZSBDWUdQS0dfTElC QyB7CiAgICAjIFBhY2thZ2VzIGNhbm5vdCBiZSBhZGRlZCBvciByZW1vdmVk LCBub3IgY2FuIHRoZWlyIHZlcnNpb24gYmUgY2hhbmdlZCwKICAgICMgc2lt cGx5IGJ5IGVkaXRpbmcgdGhlaXIgdmFsdWUuIEluc3RlYWQgdGhlIGFwcHJv cHJpYXRlIGNvbmZpZ3VyYXRpb24KICAgICMgc2hvdWxkIGJlIHVzZWQgdG8g cGVyZm9ybSB0aGVzZSBhY3Rpb25zLgoKICAgICMgVGhpcyB2YWx1ZSBjYW5u b3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBib29sZGF0YQog ICAgIyBDdXJyZW50IHZhbHVlOiAxIGN1cnJlbnQKCiAgICAjIFRoZSBmb2xs b3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQog ICAgIyBjb21wb25lbnQgQ1lHTlVNX0xJQk1fQ09NUEFUSUJJTElUWQogICAg IyAgICAgUmVxdWlyZXM6IENZR1BLR19MSUJDCn07CgojID4KIyBJU08gQyBs aWJyYXJ5IGludGVybmF0aW9uYWxpemF0aW9uIGZ1bmN0aW9ucwojIGRvYzog cmVkaXJlY3QvdGhlLWlzby1zdGFuZGFyZC1jLWFuZC1tYXRoLWxpYnJhcmll cy5odG1sCiMgVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGludGVybmF0aW9uYWxp emF0aW9uIGZ1bmN0aW9ucyBzcGVjaWZpZWQgYnkgdGhlCiMgSVNPIEMgc3Rh bmRhcmQgLSBJU08vSUVDIDk4OTk6MTk5MC4gVGhlc2UgaW5jbHVkZSBsb2Nh bGUtcmVsYXRlZAojIGZ1bmN0aW9uYWxpdHkgYW5kIDxjdHlwZS5oPiBmdW5j dGlvbmFsaXR5LgojCmNkbF9wYWNrYWdlIENZR1BLR19MSUJDX0kxOE4gewog ICAgIyBQYWNrYWdlcyBjYW5ub3QgYmUgYWRkZWQgb3IgcmVtb3ZlZCwgbm9y IGNhbiB0aGVpciB2ZXJzaW9uIGJlIGNoYW5nZWQsCiAgICAjIHNpbXBseSBi eSBlZGl0aW5nIHRoZWlyIHZhbHVlLiBJbnN0ZWFkIHRoZSBhcHByb3ByaWF0 ZSBjb25maWd1cmF0aW9uCiAgICAjIHNob3VsZCBiZSB1c2VkIHRvIHBlcmZv cm0gdGhlc2UgYWN0aW9ucy4KCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJl IG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMg Q3VycmVudCB2YWx1ZTogMSBjdXJyZW50CiAgICAjIFJlcXVpcmVzOiBDWUdQ S0dfSVNPSU5GUkEKICAgICMgICAgIENZR1BLR19JU09JTkZSQSA9PSBjdXJy ZW50CiAgICAjICAgLS0+IDEKfTsKCiMgPgojIFNpemUgb2YgbG9jYWxlIG5h bWUgc3RyaW5ncwojIFRoaXMgb3B0aW9uIGNvbnRyb2xzIHRoZSBtYXhpbXVt IHNpemUgb2YKIyBsb2NhbGUgbmFtZXMgYW5kIGlzIHVzZWQsIGFtb25nIG90 aGVyIHRoaW5ncwojIHRvIGluc3RhbnRpYXRlIGEgc3RhdGljIHN0cmluZyB1 c2VkCiMgYXMgYSByZXR1cm4gdmFsdWUgZnJvbSB0aGUKIyBzZXRsb2NhbGUo KSBmdW5jdGlvbi4gV2hlbiByZXF1ZXN0aW5nIHRoZQojIGN1cnJlbnQgbG9j YWxlIHNldHRpbmdzIHdpdGggTENfQUxMLCBhIHN0cmluZwojIG11c3QgYmUg Y29uc3RydWN0ZWQgdG8gY29udGFpbiB0aGlzIGRhdGEsIHJhdGhlcgojIHRo YW4ganVzdCByZXR1cm5pbmcgYSBjb25zdGFudCBzdHJpbmcuIFRoaXMKIyBz dHJpbmcgZGF0YSBpcyBzdG9yZWQgaW4gdGhlIHN0YXRpYyBzdHJpbmcuCiMg VGhpcyBkZXBlbmRzIG9uIHRoZSBsZW5ndGggb2YgbG9jYWxlIG5hbWVzLAoj IGhlbmNlIHRoaXMgb3B0aW9uLiBJZiBqdXN0IHRoZSBDIGxvY2FsZSBpcwoj IHByZXNlbnQsIHRoaXMgb3B0aW9uIGNhbiBiZSBzZXQgYXMgbG93IGFzIDIu CiMKY2RsX29wdGlvbiBDWUdOVU1fTElCQ19JMThOX01BWF9MT0NBTEVfTkFN RV9TSVpFIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMgogICAgIyB2YWx1ZV9zb3VyY2UgZGVm YXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAyCiAgICAjIExlZ2FsIHZhbHVl czogMiB0byAweDdmZmZmZmZmCn07CgojIElubGluZSB2ZXJzaW9ucyBvZiA8 Y3R5cGUuaD4gZnVuY3Rpb25zCiMgVGhpcyBvcHRpb24gY2hvb3NlcyB3aGV0 aGVyIHRoZSBzaW1wbGUgY2hhcmFjdGVyCiMgY2xhc3NpZmljYXRpb24gYW5k IGNvbnZlcnNpb24gZnVuY3Rpb25zIChlLmcuCiMgaXN1cHBlcigpLCBpc2Fs cGhhKCksIHRvdXBwZXIoKSwgZXRjLikKIyBmcm9tIDxjdHlwZS5oPiBhcmUg YXZhaWxhYmxlIGFzIGlubGluZQojIGZ1bmN0aW9ucy4gVGhpcyBtYXkgaW1w cm92ZSBwZXJmb3JtYW5jZSBhbmQgYXMKIyB0aGUgZnVuY3Rpb25zIGFyZSBz bWFsbCwgbWF5IGV2ZW4gaW1wcm92ZSBjb2RlCiMgc2l6ZS4KIwpjZGxfb3B0 aW9uIENZR0lNUF9MSUJDX0kxOE5fQ1RZUEVfSU5MSU5FUyB7CiAgICAjIEZs YXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMQogICAgIyBSZXF1aXJlczogIENZR0JMRF9JU09fQ1RZUEVf SEVBREVSID09ICAiPGN5Zy9saWJjL2kxOG4vY3R5cGUuaW5sPiIgCiAgICAj ICAgICBDWUdCTERfSVNPX0NUWVBFX0hFQURFUiA9PSA8Y3lnL2xpYmMvaTE4 bi9jdHlwZS5pbmw+CiAgICAjICAgLS0+IDEKfTsKCiMgQyBsaWJyYXJ5IGkx OG4gZnVuY3Rpb25zIGJ1aWxkIG9wdGlvbnMKIyBQYWNrYWdlIHNwZWNpZmlj IGJ1aWxkIG9wdGlvbnMgaW5jbHVkaW5nIGNvbnRyb2wgb3ZlcgojIGNvbXBp bGVyIGZsYWdzIHVzZWQgb25seSBpbiBidWlsZGluZyB0aGlzIHBhY2thZ2Us CiMgYW5kIGRldGFpbHMgb2Ygd2hpY2ggdGVzdHMgYXJlIGJ1aWx0LgojCmNk bF9jb21wb25lbnQgQ1lHUEtHX0xJQkNfSTE4Tl9PUFRJT05TIHsKICAgICMg VGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIEFkZGl0 aW9uYWwgY29tcGlsZXIgZmxhZ3MKIyBUaGlzIG9wdGlvbiBtb2RpZmllcyB0 aGUgc2V0IG9mIGNvbXBpbGVyIGZsYWdzIGZvcgojIGJ1aWxkaW5nIHRoZSBD IGxpYnJhcnkuIFRoZXNlIGZsYWdzIGFyZSB1c2VkIGluIGFkZGl0aW9uCiMg dG8gdGhlIHNldCBvZiBnbG9iYWwgZmxhZ3MuCiMKY2RsX29wdGlvbiBDWUdQ S0dfTElCQ19JMThOX0NGTEFHU19BREQgewogICAgIyBGbGF2b3I6IGRhdGEK ICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAiIgogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAi Igp9OwoKIyBTdXBwcmVzc2VkIGNvbXBpbGVyIGZsYWdzCiMgVGhpcyBvcHRp b24gbW9kaWZpZXMgdGhlIHNldCBvZiBjb21waWxlciBmbGFncyBmb3IKIyBi dWlsZGluZyB0aGUgQyBsaWJyYXJ5LiBUaGVzZSBmbGFncyBhcmUgcmVtb3Zl ZCBmcm9tCiMgdGhlIHNldCBvZiBnbG9iYWwgZmxhZ3MgaWYgcHJlc2VudC4K IwpjZGxfb3B0aW9uIENZR1BLR19MSUJDX0kxOE5fQ0ZMQUdTX1JFTU9WRSB7 CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNv bW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAg IyB1c2VyX3ZhbHVlICIiCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6ICIiCn07CgojIEMgbGlicmFyeSBpMThuIGZ1 bmN0aW9uIHRlc3RzCiMgVGhpcyBvcHRpb24gc3BlY2lmaWVzIHRoZSBzZXQg b2YgdGVzdHMgZm9yIHRoZSBDIGxpYnJhcnkKIyBpMThuIGZ1bmN0aW9ucy4K IwpjZGxfb3B0aW9uIENZR1BLR19MSUJDX0kxOE5fVEVTVFMgewogICAgIyBD YWxjdWxhdGVkIHZhbHVlOiAgInRlc3RzL2N0eXBlIHRlc3RzL3NldGxvY2Fs ZSIgCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiB0 ZXN0cy9jdHlwZSB0ZXN0cy9zZXRsb2NhbGUKfTsKCiMgPAojIDwKIyBJU08g QyBsaWJyYXJ5IHNldGptcC9sb25nam1wIGZ1bmN0aW9ucwojIGRvYzogcmVk aXJlY3QvdGhlLWlzby1zdGFuZGFyZC1jLWFuZC1tYXRoLWxpYnJhcmllcy5o dG1sCiMgVGhpcyBwYWNrYWdlIHByb3ZpZGVzIG5vbi1sb2NhbCBqdW1wcyBi YXNlZCBvbiBzZXRqbXAoKSBhbmQKIyBsb25nam1wKCkgaW4gPHNldGptcC5o PiBhcyBzcGVjaWZpZWQgYnkgdGhlIElTTyBDCiMgc3RhbmRhcmQgLSBJU08v SUVDIDk4OTk6MTk5MC4KIwpjZGxfcGFja2FnZSBDWUdQS0dfTElCQ19TRVRK TVAgewogICAgIyBQYWNrYWdlcyBjYW5ub3QgYmUgYWRkZWQgb3IgcmVtb3Zl ZCwgbm9yIGNhbiB0aGVpciB2ZXJzaW9uIGJlIGNoYW5nZWQsCiAgICAjIHNp bXBseSBieSBlZGl0aW5nIHRoZWlyIHZhbHVlLiBJbnN0ZWFkIHRoZSBhcHBy b3ByaWF0ZSBjb25maWd1cmF0aW9uCiAgICAjIHNob3VsZCBiZSB1c2VkIHRv IHBlcmZvcm0gdGhlc2UgYWN0aW9ucy4KCiAgICAjIFRoaXMgdmFsdWUgY2Fu bm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogYm9vbGRhdGEK ICAgICMgQ3VycmVudCB2YWx1ZTogMSBjdXJyZW50CiAgICAjIFJlcXVpcmVz OiBDWUdQS0dfSVNPSU5GUkEKICAgICMgICAgIENZR1BLR19JU09JTkZSQSA9 PSBjdXJyZW50CiAgICAjICAgLS0+IDEKICAgICMgUmVxdWlyZXM6ICBDWUdC TERfSVNPX1NFVEpNUF9IRUFERVIgPT0gIjxjeWcvbGliYy9zZXRqbXAvc2V0 am1wLmg+IiAKICAgICMgICAgIENZR0JMRF9JU09fU0VUSk1QX0hFQURFUiA9 PSA8Y3lnL2xpYmMvc2V0am1wL3NldGptcC5oPgogICAgIyAgIC0tPiAxCn07 CgojID4KIyBDIGxpYnJhcnkgc2V0am1wIGJ1aWxkIG9wdGlvbnMKIyBQYWNr YWdlIHNwZWNpZmljIGJ1aWxkIG9wdGlvbnMgaW5jbHVkaW5nIGNvbnRyb2wg b3ZlcgojIGNvbXBpbGVyIGZsYWdzIHVzZWQgb25seSBpbiBidWlsZGluZyB0 aGlzIHBhY2thZ2UsCiMgYW5kIGRldGFpbHMgb2Ygd2hpY2ggdGVzdHMgYXJl IGJ1aWx0LgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0xJQkNfU0VUSk1QX09Q VElPTlMgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9 OwoKIyA+CiMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0 aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMg YnVpbGRpbmcgdGhpcyBwYWNrYWdlLiBUaGVzZSBmbGFncyBhcmUgdXNlZCBp biBhZGRpdGlvbgojIHRvIHRoZSBzZXQgb2YgZ2xvYmFsIGZsYWdzLgojCmNk bF9vcHRpb24gQ1lHUEtHX0xJQkNfU0VUSk1QX0NGTEFHU19BREQgewogICAg IyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAiIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAiIgp9OwoKIyBTdXBwcmVzc2VkIGNvbXBpbGVyIGZs YWdzCiMgVGhpcyBvcHRpb24gbW9kaWZpZXMgdGhlIHNldCBvZiBjb21waWxl ciBmbGFncyBmb3IKIyBidWlsZGluZyB0aGlzIHBhY2thZ2UuIFRoZXNlIGZs YWdzIGFyZSByZW1vdmVkIGZyb20KIyB0aGUgc2V0IG9mIGdsb2JhbCBmbGFn cyBpZiBwcmVzZW50LgojCmNkbF9vcHRpb24gQ1lHUEtHX0xJQkNfU0VUSk1Q X0NGTEFHU19SRU1PVkUgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAiIgogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAiIgp9OwoKIyBD IGxpYnJhcnkgc2V0am1wIHRlc3RzCiMgVGhpcyBvcHRpb24gc3BlY2lmaWVz IHRoZSBzZXQgb2YgdGVzdHMgZm9yIHRoaXMgcGFja2FnZS4KIwpjZGxfb3B0 aW9uIENZR1BLR19MSUJDX1NFVEpNUF9URVNUUyB7CiAgICAjIENhbGN1bGF0 ZWQgdmFsdWU6ICAidGVzdHMvc2V0am1wIiAKICAgICMgRmxhdm9yOiBkYXRh CiAgICAjIEN1cnJlbnRfdmFsdWU6IHRlc3RzL3NldGptcAp9OwoKIyA8CiMg PAojIElTTyBDIGxpYnJhcnkgc2lnbmFsIGZ1bmN0aW9ucwojIGRvYzogcmVk aXJlY3QvdGhlLWlzby1zdGFuZGFyZC1jLWFuZC1tYXRoLWxpYnJhcmllcy5o dG1sCiMgVGhpcyBjb21wb25lbnQgY29udHJvbHMgc2lnbmFsIGZ1bmN0aW9u YWxpdHksCiMgYXMgaW1wbGVtZW50ZWQgaW4gSVNPL0lFQyA5ODk5OjE5OTAg Y2hhcHRlciA3Ljcgd2l0aAojIHRoZSBzaWduYWwoKSBhbmQgcmFpc2UoKSBm dW5jdGlvbnMuIEFzIHdlbGwgYXMKIyBhbGxvd2luZyBhIHByb2dyYW0gdG8g c2VuZCBpdHNlbGYgc2lnbmFscywgaXQgaXMKIyBhbHNvIHBvc3NpYmxlIHRv IGNhdXNlIGhhcmR3YXJlIGV4Y2VwdGlvbnMgdG8KIyBiZSBzaWduYWxsZWQg dG8gdGhlIHByb2dyYW0gaW4gYSBzaW1pbGFyIHdheS4KIwpjZGxfcGFja2Fn ZSBDWUdQS0dfTElCQ19TSUdOQUxTIHsKICAgICMgUGFja2FnZXMgY2Fubm90 IGJlIGFkZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVyc2lvbiBi ZSBjaGFuZ2VkLAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVpciB2YWx1 ZS4gSW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbgogICAg IyBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnMuCgog ICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAg IyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6IDEgY3Vy cmVudAogICAgIyBSZXF1aXJlczogIENZR0JMRF9JU09fU0lHTkFMX05VTUJF UlNfSEVBREVSID09ICAiPGN5Zy9saWJjL3NpZ25hbHMvc2lnbmFsLmg+IiAK ICAgICMgICAgIENZR0JMRF9JU09fU0lHTkFMX05VTUJFUlNfSEVBREVSID09 IDxjeWcvbGliYy9zaWduYWxzL3NpZ25hbC5oPgogICAgIyAgIC0tPiAxCiAg ICAjIFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19TSUdOQUxfSU1QTF9IRUFERVIg PT0gICI8Y3lnL2xpYmMvc2lnbmFscy9zaWduYWwuaD4iIAogICAgIyAgICAg Q1lHQkxEX0lTT19TSUdOQUxfSU1QTF9IRUFERVIgPT0gPGN5Zy9saWJjL3Np Z25hbHMvc2lnbmFsLmg+CiAgICAjICAgLS0+IDEKICAgICMgUmVxdWlyZXM6 IENZR1BLR19JU09JTkZSQQogICAgIyAgICAgQ1lHUEtHX0lTT0lORlJBID09 IGN1cnJlbnQKICAgICMgICAtLT4gMQp9OwoKIyA+CiMgVGhyZWFkIHNhZmUg c2lnbmFscwojIEJlY2F1c2Ugc2lnbmFsIGhhbmRsZXJzIGFyZSBnbG9iYWws IGFuZCBub3QKIyB0aHJlYWQtc3BlY2lmaWMgKGFzIG1hbmRhdGVkIGJ5IFBP U0lYIDEwMDMuMSkKIyBpdCBpcyBwb3NzaWJsZSBmb3IgbXVsdGlwbGUgdGhy ZWFkcyB0byBjbGFzaAojIGFuZCBjb3JydXB0IGRhdGEgaWYgc2V0dGluZyB0 aGUgc2FtZSBzaWduYWwKIyBoYW5kbGVyIGF0IHRoZSBzYW1lIHRpbWUuIFdp dGggdGhpcyBvcHRpb24KIyBlbmFibGVkLCBhIGtlcm5lbCBtdXRleCB3aWxs IGJlIHVzZWQgdG8gcHJvdGVjdAojIHRoZSBzaGFyZWQgZGF0YS4KIwpjZGxf b3B0aW9uIENZR1NFTV9MSUJDX1NJR05BTFNfVEhSRUFEX1NBRkUgewogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6IENZR1BLR19LRVJORUwK ICAgICMgICAgIENZR1BLR19LRVJORUwgPT0gY3VycmVudAogICAgIyAgIC0t PiAxCn07CgojIEhhcmR3YXJlIGV4Y2VwdGlvbnMgY2F1c2Ugc2lnbmFscwoj IFRoaXMgY2F1c2VzIGhhcmR3YXJlIGV4Y2VwdGlvbnMgbGlrZQojIGFyaXRo bWV0aWMgZXhjZXB0aW9ucyAoZS5nLiBkaXZpZGUgYnkgemVybykKIyBvciBi YWQgbWVtb3J5IGFjY2Vzc2VzIHRvIGJlIHBhc3NlZCB0aHJvdWdoIGFzCiMg c2lnbmFscy4gSXQgaXMgdGh1cyBwb3NzaWJsZSBmb3IgYSBwcm9ncmFtIHRv CiMgaGFuZGxlIHRoZXNlIGV4Y2VwdGlvbnMgaW4gYSBnZW5lcmljIHdheSB1 c2luZwojIHRoZSBhcHByb3ByaWF0ZSBzaWduYWwgaGFuZGxlcnMuIFRoZSBk ZXRhaWxzIG9mCiMgZXhhY3RseSB3aGljaCBleGNlcHRpb25zIGFyZSBwYXNz ZWQgdGhyb3VnaAojIHVuZGVyIHdoYXQgY2lyY3Vtc3RhbmNlcyBkZXBlbmQg b24gdGhlCiMgdW5kZXJseWluZyBIQUwgaW1wbGVtZW50YXRpb24uIENvbnNl cXVlbnRseSBpdAojIG11c3QgYmUgcmVtZW1iZXJlZCB0aGF0IHNpZ25hbCBo YW5kbGVycyBjYW5ub3QKIyBiZSBndWFyYW50ZWVkIHRvIGJlIGludm9rZWQg aW4gdGhlIGV4cGVjdGVkCiMgY2lyY3Vtc3RhbmNlcyBpZiB5b3UgZG8gbm90 IGtub3cgYWJvdXQgdGhlCiMgdW5kZXJseWluZyBIQUwgaW1wbGVtZW50YXRp b24gLSBpdCBpcyBwb3NzaWJsZQojIHRoYXQgdGhlIGFyY2hpdGVjdHVyZSBp cyB1bmFibGUgdG8gZGV0ZWN0IHRoYXQKIyBleGNlcHRpb24uCiMKY2RsX2Nv bXBvbmVudCBDWUdTRU1fTElCQ19TSUdOQUxTX0hXRVhDRVBUSU9OUyB7CiAg ICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogMAogICAgIyBSZXF1aXJlczogQ1lHU0VNX0tFUk5F TF9FWENFUFRJT05TX0dMT0JBTAogICAgIyAgICAgQ1lHU0VNX0tFUk5FTF9F WENFUFRJT05TX0dMT0JBTCA9PSAxCiAgICAjICAgLS0+IDEKICAgICMgUmVx dWlyZXM6IENZR1NFTV9LRVJORUxfRVhDRVBUSU9OU19ERUNPREUKICAgICMg ICAgIENZR1NFTV9LRVJORUxfRVhDRVBUSU9OU19ERUNPREUgPT0gMAogICAg IyAgIC0tPiAwCn07CgojID4KIyBDaGFpbiBvbGQgZXhjZXB0aW9uIGhhbmRs ZXJzCiMgV2hlbiBoYXJkd2FyZSBleGNlcHRpb25zIGFyZSBnZW5lcmF0ZWQs IGl0CiMgaXMgcG9zc2libGUgdG8gY2hhaW4gaW50byB0aGUgb2xkIGtlcm5l bCBleGNlcHRpb24KIyBoYW5kbGVyIGJlZm9yZSBjYWxsaW5nIGFueSByZWdp c3RlcmVkIHNpZ25hbAojIGhhbmRsZXIuIElmIHRoaXMgaXMgbm90IHJlcXVp cmVkLCBkaXNhYmxlIHRoaXMKIyBvcHRpb24gYW5kIG9ubHkgdGhlIHNpZ25h bCBoYW5kbGVyIHdpbGwgYmUKIyBjYWxsZWQgd2hlbiB0aGlzIGV4Y2VwdGlv biBvY2N1cnMuIERpc2FibGluZwojIHRoaXMgb3B0aW9uIHdpbGwgYWxzbyBz YXZlIHNvbWUgc3BhY2UgYW5kIGNvZGUKIyB1c2FnZS4KIwpjZGxfb3B0aW9u IENZR1NFTV9MSUJDX1NJR05BTFNfQ0hBSU5fSFdFWENFUFRJT05TIHsKICAg ICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50 IENZR1NFTV9MSUJDX1NJR05BTFNfSFdFWENFUFRJT05TIGlzIGRpc2FibGVk CgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6ICFDWUdQS0df SEFMX0kzODZfTElOVVgKICAgICMgICAgIENZR1BLR19IQUxfSTM4Nl9MSU5V WCAodW5rbm93bikgPT0gMAogICAgIyAgIC0tPiAxCn07CgojIDwKIyBJbmxp bmUgdmVyc2lvbnMgb2YgZnVuY3Rpb25zCiMgU29tZSBmdW5jdGlvbnMgY2Fu IGJlIG1hZGUgaW5saW5lIGluc3RlYWQgb2YKIyBiZWluZyBmdW5jdGlvbiBj YWxscy4gVGhlc2UgY2FuIGJlIHNldCBoZXJlLgojCmNkbF9jb21wb25lbnQg Q1lHUEtHX0xJQkNfU0lHTkFMU19JTkxJTkUgewogICAgIyBUaGVyZSBpcyBu byBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgcmFpc2UoKQojIEVuYWJs aW5nIHRoaXMgb3B0aW9uIG1ha2VzIHJhaXNlKCkgYW4gaW5saW5lIGZ1bmN0 aW9uLgojCmNkbF9vcHRpb24gQ1lHSU1QX0xJQkNfU0lHTkFMU19SQUlTRV9J TkxJTkUgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgc2lnbmFsKCkKIyBF bmFibGluZyB0aGlzIG9wdGlvbiBtYWtlcyBzaWduYWwoKSBhbiBpbmxpbmUg ZnVuY3Rpb24uCiMKY2RsX29wdGlvbiBDWUdJTVBfTElCQ19TSUdOQUxTX1NJ R05BTF9JTkxJTkUgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNl ciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92 aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgPAojIEVy cm9yIGhhbmRsaW5nCiMgWW91IG1heSBvciBtYXkgbm90IHdhbnQgZXJybm8g dG8gYmUgc2V0IGJ5CiMgY2VydGFpbiBmdW5jdGlvbnMuIE5vdCB1c2luZyBl cnJubyBjb3VsZCBzYXZlCiMgYm90aCBzcGFjZSwgY29kZSwgYW5kIGF2b2lk IHdvcnJ5aW5nIGFib3V0CiMgaW50ZXJhY3Rpb25zIGJldHdlZW4gbXVsdGlw bGUgdGhyZWFkcyB3aGVuCiMgc2V0dGluZyBpdC4KIwpjZGxfY29tcG9uZW50 IENZR1BLR19MSUJDX1NJR05BTFNfRVJST1JfSEFORExJTkcgewogICAgIyBU aGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgQmFkIHNp Z25hbCBmYXRhbAojIEVuYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgY2F1c2Ug YW4gYXNzZXJ0aW9uCiMgZmFpbHVyZSBpZiB0aGUgc2lnbmFsIGhhbmRsaW5n IGNvZGUgaXMKIyBwYXNzZWQgYSBiYWQgc2lnbmFsLiBPdGhlcndpc2UgYW4g ZXJyb3Igd2lsbAojIGJlIHJldHVybmVkLCBvciBpbiB0aGUgY2FzZSBvZiBh CiMgaGFyZHdhcmUtZ2VuZXJhdGVkIGV4Y2VwdGlvbiBpdCB3aWxsIGJlIHNp bGVudGx5CiMgaWdub3JlZC4KIwpjZGxfb3B0aW9uIENZR1NFTV9MSUJDX1NJ R05BTFNfQkFEX1NJR05BTF9GQVRBTCB7CiAgICAjIEZsYXZvcjogYm9vbAog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAog ICAgIyBSZXF1aXJlczogQ1lHREJHX1VTRV9BU1NFUlRTCiAgICAjICAgICBD WUdEQkdfVVNFX0FTU0VSVFMgPT0gMAogICAgIyAgIC0tPiAwCn07CgojIHJh aXNlKCkgc2V0cyBlcnJubwojIFlvdSBtYXkgb3IgbWF5IG5vdCB3YW50IGVy cm5vIHRvIGJlIHNldCBieQojIHJhaXNlKCkgb24gZXJyb3IgY29uZGl0aW9u cy4gTm90IHVzaW5nIGVycm5vCiMgY291bGQgc2F2ZSBib3RoIHNwYWNlLCBj b2RlLCBhbmQgYXZvaWQgd29ycnlpbmcKIyBhYm91dCBpbnRlcmFjdGlvbnMg YmV0d2VlbiBtdWx0aXBsZSB0aHJlYWRzIHdoZW4KIyBzZXR0aW5nIGl0LiBT dHJpY3RseSBJU08gQyBkb2VzIG5vdCBtYW5kYXRlCiMgdGhhdCBlcnJubyBi ZSBzZXQgYnkgcmFpc2UoKS4KIwpjZGxfb3B0aW9uIENZR1NFTV9MSUJDX1NJ R05BTFNfUkFJU0VfU0VUU19FUlJOTyB7CiAgICAjIEZsYXZvcjogYm9vbAog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQog ICAgIyBSZXF1aXJlczogQ1lHSU5UX0lTT19FUlJOTwogICAgIyAgICAgQ1lH SU5UX0lTT19FUlJOTyA9PSAxCiAgICAjICAgLS0+IDEKICAgICMgUmVxdWly ZXM6IENZR0lOVF9JU09fRVJSTk9fQ09ERVMKICAgICMgICAgIENZR0lOVF9J U09fRVJSTk9fQ09ERVMgPT0gMQogICAgIyAgIC0tPiAxCn07CgojIHNpZ25h bCgpIHNldHMgZXJybm8KIyBZb3UgbWF5IG9yIG1heSBub3Qgd2FudCBlcnJu byB0byBiZSBzZXQgYnkKIyBzaWduYWwoKSBvbiBlcnJvciBjb25kaXRpb25z LiBOb3QgdXNpbmcgZXJybm8KIyBjb3VsZCBzYXZlIGJvdGggc3BhY2UsIGNv ZGUsIGFuZCBhdm9pZCB3b3JyeWluZwojIGFib3V0IGludGVyYWN0aW9ucyBi ZXR3ZWVuIG11bHRpcGxlIHRocmVhZHMgd2hlbgojIHNldHRpbmcgaXQuIFN0 cmljdGx5IElTTyBDIG1hbmRhdGVzCiMgdGhhdCBlcnJubyBiZSBzZXQgYnkg c2lnbmFsKCkuCiMKY2RsX29wdGlvbiBDWUdTRU1fTElCQ19TSUdOQUxTX1NJ R05BTF9TRVRTX0VSUk5PIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5v IHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8g cHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCiAgICAjIFJl cXVpcmVzOiBDWUdJTlRfSVNPX0VSUk5PCiAgICAjICAgICBDWUdJTlRfSVNP X0VSUk5PID09IDEKICAgICMgICAtLT4gMQogICAgIyBSZXF1aXJlczogQ1lH SU5UX0lTT19FUlJOT19DT0RFUwogICAgIyAgICAgQ1lHSU5UX0lTT19FUlJO T19DT0RFUyA9PSAxCiAgICAjICAgLS0+IDEKfTsKCiMgPAojIFRyYWNpbmcK IyBUaGVzZSBvcHRpb25zIGNvbnRyb2wgdGhlIHRyYWNlIG91dHB1dCBmb3Ig dGhlIEMKIyBsaWJyYXJ5IGludGVybmFsIHNpZ25hbCBpbXBsZW1lbnRhdGlv bi4KIwpjZGxfY29tcG9uZW50IENZR1BLR19MSUJDX1NJR05BTFNfVFJBQ0lO RyB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUuCn07Cgoj ID4KIyBEZWZhdWx0IHRyYWNlIGxldmVsIGZvciByYWlzZSgpCiMgVGhpcyBn aXZlcyB0aGUgZGVmYXVsdCB0cmFjaW5nIGxldmVsIGZvciB0aGUKIyByYWlz ZSgpIGZ1bmN0aW9uLiBIaWdoZXIgbnVtYmVycyBhcmUgbW9yZQojIHZlcmJv c2UuCiMKY2RsX29wdGlvbiBDWUdOVU1fTElCQ19TSUdOQUxTX1JBSVNFX1RS QUNFX0xFVkVMIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCiAgICAjIExlZ2FsIHZh bHVlczogMCB0byAxCn07CgojIERlZmF1bHQgaGFyZHdhcmUgZXhjZXB0aW9u IGhhbmRsZXIgdHJhY2UgbGV2ZWwKIyBUaGlzIGdpdmVzIHRoZSBkZWZhdWx0 IHRyYWNpbmcgbGV2ZWwgZm9yIHRoZQojIGhhcmR3YXJlIGV4Y2VwdGlvbiBo YW5kbGVyIGZ1bmN0aW9uIChpZiBlbmFibGVkKS4KIyBIaWdoZXIgbnVtYmVy cyBhcmUgbW9yZSB2ZXJib3NlLgojCmNkbF9vcHRpb24gQ1lHTlVNX0xJQkNf U0lHTkFMU19IV0hBTkRMRVJfVFJBQ0VfTEVWRUwgewogICAgIyBGbGF2b3I6 IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAw CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFs dWU6IDAKICAgICMgTGVnYWwgdmFsdWVzOiAwIHRvIDEKfTsKCiMgPAojIEMg bGlicmFyeSBzaWduYWwgZnVuY3Rpb25zIGJ1aWxkIG9wdGlvbnMKIyBQYWNr YWdlIHNwZWNpZmljIGJ1aWxkIG9wdGlvbnMgaW5jbHVkaW5nIGNvbnRyb2wg b3ZlcgojIGNvbXBpbGVyIGZsYWdzIHVzZWQgb25seSBpbiBidWlsZGluZyB0 aGlzIHBhY2thZ2UsCiMgYW5kIGRldGFpbHMgb2Ygd2hpY2ggdGVzdHMgYXJl IGJ1aWx0LgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0xJQkNfU0lHTkFMU19P UFRJT05TIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4K fTsKCiMgPgojIEFkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3MKIyBUaGlzIG9w dGlvbiBtb2RpZmllcyB0aGUgc2V0IG9mIGNvbXBpbGVyIGZsYWdzIGZvcgoj IGJ1aWxkaW5nIHRoZSBDIGxpYnJhcnkuIFRoZXNlIGZsYWdzIGFyZSB1c2Vk IGluIGFkZGl0aW9uCiMgdG8gdGhlIHNldCBvZiBnbG9iYWwgZmxhZ3MuCiMK Y2RsX29wdGlvbiBDWUdQS0dfTElCQ19TSUdOQUxTX0NGTEFHU19BREQgewog ICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAiIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAg IyBEZWZhdWx0IHZhbHVlOiAiIgp9OwoKIyBTdXBwcmVzc2VkIGNvbXBpbGVy IGZsYWdzCiMgVGhpcyBvcHRpb24gbW9kaWZpZXMgdGhlIHNldCBvZiBjb21w aWxlciBmbGFncyBmb3IKIyBidWlsZGluZyB0aGUgQyBsaWJyYXJ5LiBUaGVz ZSBmbGFncyBhcmUgcmVtb3ZlZCBmcm9tCiMgdGhlIHNldCBvZiBnbG9iYWwg ZmxhZ3MgaWYgcHJlc2VudC4KIwpjZGxfb3B0aW9uIENZR1BLR19MSUJDX1NJ R05BTFNfQ0ZMQUdTX1JFTU9WRSB7CiAgICAjIEZsYXZvcjogZGF0YQogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICIiCiAgICAjIHZh bHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICIiCn07 CgojIEMgbGlicmFyeSBzaWduYWwgZnVuY3Rpb24gdGVzdHMKIyBUaGlzIG9w dGlvbiBzcGVjaWZpZXMgdGhlIHNldCBvZiB0ZXN0cyBmb3IgdGhlIEMgbGli cmFyeQojIHNpZ25hbCBmdW5jdGlvbnMuCiMKY2RsX29wdGlvbiBDWUdQS0df TElCQ19TSUdOQUxTX1RFU1RTIHsKICAgICMgQ2FsY3VsYXRlZCB2YWx1ZTog ICJ0ZXN0cy9zaWduYWwxIHRlc3RzL3NpZ25hbDIiIAogICAgIyBGbGF2b3I6 IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogdGVzdHMvc2lnbmFsMSB0ZXN0 cy9zaWduYWwyCn07CgojIDwKIyA8CiMgSVNPIGVudmlyb25tZW50IHN0YXJ0 dXAvdGVybWluYXRpb24KIyBkb2M6IHJlZGlyZWN0L2MtbGlicmFyeS1zdGFy dHVwLmh0bWwKIyBUaGlzIHBhY2thZ2UgbWFuYWdlcyB0aGUgY29udHJvbCBv ZiB0aGUKIyBlbnZpcm9ubWVudCAoaW4gdGhlIGdlbmVyYWwgc2Vuc2UpIHRo YXQgYW4KIyBhcHBsaWNhdGlvbiB3b3VsZCByZXF1aXJlIGZvciBmdWxsIElT TyBDIC8gUE9TSVgKIyBjb21wYXRpYmlsaXR5LCBpbmNsdWRpbmcgYSBtYWlu KCkgZW50cnkgcG9pbnQKIyBzdXBwbGllZCB3aXRoIGFyZ3VtZW50cyBhbmQg YW4gZW52aXJvbm1lbnQKIyAoYXMgcmV0cmlldmFibGUgYnkgdGhlIGdldGVu digpIGZ1bmN0aW9uKS4KIyBJdCBhbHNvIGluY2x1ZGVzIGF0IHRoZSBvdGhl ciBlbmQgb2YgdGhpbmdzLAojIHdoYXQgaGFwcGVucyB3aGVuIG1haW4oKSBy ZXR1cm5zIG9yIGV4aXQoKSBpcwojIGNhbGxlZC4KIwpjZGxfcGFja2FnZSBD WUdQS0dfTElCQ19TVEFSVFVQIHsKICAgICMgUGFja2FnZXMgY2Fubm90IGJl IGFkZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVyc2lvbiBiZSBj aGFuZ2VkLAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVpciB2YWx1ZS4g SW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbgogICAgIyBz aG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnMuCgogICAg IyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBG bGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6IDEgY3VycmVu dAogICAgIyBSZXF1aXJlczogQ1lHUEtHX0lTT0lORlJBCiAgICAjICAgICBD WUdQS0dfSVNPSU5GUkEgPT0gY3VycmVudAogICAgIyAgIC0tPiAxCiAgICAj IFJlcXVpcmVzOiAgQ1lHSU5UX0xJQkNfU1RBUlRVUF9DT05URVhUID09IDEg CiAgICAjICAgICBDWUdJTlRfTElCQ19TVEFSVFVQX0NPTlRFWFQgPT0gMQog ICAgIyAgIC0tPiAxCn07CgojID4KIyBBcmd1bWVudHMgdG8gbWFpbigpCiMg VGhpcyBvcHRpb24gYWxsb3dzIHRoZSBzZXR0aW5nIG9mIHRoZSBhcmd1bWVu dHMKIyB0byB0aGUgbWFpbiBmdW5jdGlvbi4gVGhpcyBvbmx5IGhhcyBhbnkg ZWZmZWN0CiMgd2hlbiBjeWdfaXNvX2Nfc3RhcnQoKSBpcyB1c2VkIHRvIHN0 YXJ0IHRoZQojIElTTyBDIGNvbXBhdGliaWxpdHkuIFRoaXMgd2lsbCBhdXRv bWF0aWNhbGx5CiMgaW52b2tlIG1haW4oKSBpbiBhbiBJU08gQyBjb21wYXRp YmxlIGZhc2hpb24uCiMgVGhpcyBvcHRpb24gaXMgaW4gZmFjdCB1c2VkIGFz IGFyZ3YsIGFuZCBzbyBpcwojIGFuIG4tdHVwbGUgb2Ygc3RyaW5nIGNvbnN0 YW50cy4gVGhlIGZpbmFsCiMgZW50cnkgbXVzdCBiZSBOVUxMLiBDb252ZW50 aW9uYWxseSBpZiBhcmd2WzBdCiMgaXMgc3VwcGxpZWQsIGl0IGlzIHVzZWQg dG8gaW5mb3JtIHRoZSBwcm9ncmFtCiMgb2YgaXRzIG5hbWUuCiMKY2RsX29w dGlvbiBDWUdEQVRfTElCQ19BUkdVTUVOVFMgewogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAie1wi XCIsIE5VTEx9IgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAie1wiXCIsIE5VTEx9Igp9OwoKIyBTdGFydHVwIGNv bnRleHQgZm9yIG1haW4oKQojIFRoaXMgY29tcG9uZW50IGRlc2NyaWJlcyB0 aGUgb3B0aW9ucyBhdmFpbGFibGUgZm9yCiMgd2hhdCBjb250ZXh0IG1haW4o KSBpcyBpbnZva2VkIGluLCBzdWNoIGFzIGluIGEgdGhyZWFkCiMgZXRjLgoj CmNkbF9jb21wb25lbnQgQ1lHUEtHX0xJQkNfU1RBUlRVUF9DT05URVhUIHsK ICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgoj IFN0YXJ0dXAgY29udGV4dCBpbXBsZW1lbnRvcnMKIwpjZGxfaW50ZXJmYWNl IENZR0lOVF9MSUJDX1NUQVJUVVBfQ09OVEVYVCB7CiAgICAjIEltcGxlbWVu dGVkIGJ5IENZR1NFTV9MSUJDX1NUQVJUVVBfTUFJTl9JTklUQ09OVEVYVCwg YWN0aXZlLCBkaXNhYmxlZAogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdTRU1f TElCQ19TVEFSVFVQX01BSU5fVEhSRUFELCBhY3RpdmUsIGVuYWJsZWQKICAg ICMgSW1wbGVtZW50ZWQgYnkgQ1lHU0VNX0xJQkNfU1RBUlRVUF9NQUlOX09U SEVSLCBhY3RpdmUsIGRpc2FibGVkCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90 IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBD dXJyZW50X3ZhbHVlOiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRp ZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgcGFja2FnZSBD WUdQS0dfTElCQ19TVEFSVFVQCiAgICAjICAgICBSZXF1aXJlczogIENZR0lO VF9MSUJDX1NUQVJUVVBfQ09OVEVYVCA9PSAxIAp9OwoKIyBJbnZva2VkIGZy b20gaW5pdGlhbGl6YXRpb24gY29udGV4dAojIFdpdGggdGhpcyBvcHRpb24g c2VsZWN0ZWQsIG1haW4oKSB3aWxsIGJlCiMgY2FsbGVkIHZpYSBjeWdfdXNl cl9zdGFydCgpICh1bmxlc3MgdGhlIHByb2dyYW0KIyBvdmVycmlkZXMgdGhl IGRlZmF1bHQgY3lnX3VzZXJfc3RhcnQoKSkuIFRoaXMKIyBtZWFucyBpdCBp cyBydW4gaW4gdGhlIGNvbnRleHQgb2YgdGhlIHN5c3RlbQojIGluaXRpYWxp emF0aW9uIGNvZGUsIHdpdGhvdXQgdGhlIGVDb3Mga2VybmVsCiMgc2NoZWR1 bGVyIHJ1bm5pbmcsIGFuZCB1c2luZyB0aGUgc3RhcnR1cCBzdGFjay4KIyBU aGlzIG1lYW5zIHRoYXQgYW55IGZ1bmN0aW9ucyB0aGF0IG1heSByZXF1aXJl IAojIGludGVyYWN0aW9ucyB3aXRoIGEgcnVubmluZyBrZXJuZWwgd2lsbCBu b3QKIyB3b3JrIChpbmNsdWRpbmcgbGliYyBmdW5jdGlvbnMsIGlmIGNvbmZp Z3VyZWQKIyB0byBiZSB0aHJlYWQgc2FmZSBmb3IgZXhhbXBsZSksIHNvIHlv dSBzaG91bGQKIyByZXN0cmljdCB5b3Vyc2VsZiB0byBvbmx5IGNhbGxpbmcg ZnVsbHkKIyByZS1lbnRyYW50IGZ1bmN0aW9ucyBmcm9tIHdpdGhpbiBtYWlu KCkgaW4KIyB0aGlzIGNhc2UuCiMKY2RsX29wdGlvbiBDWUdTRU1fTElCQ19T VEFSVFVQX01BSU5fSU5JVENPTlRFWFQgewogICAgIyBGbGF2b3I6IGJvb2wK ICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICAw ID09IENZR1BLR19LRVJORUwgJiYgMCA9PSBDWUdQS0dfUE9TSVhfUFRIUkVB RCAKICAgICMgICAgIENZR1BLR19LRVJORUwgPT0gY3VycmVudAogICAgIyAg ICAgQ1lHUEtHX1BPU0lYX1BUSFJFQUQgKHVua25vd24pID09IDAKICAgICMg ICAtLT4gMAp9OwoKIyBJbnZva2VkIGFzIGVDb3MgdGhyZWFkCiMgV2l0aCB0 aGlzIG9wdGlvbiBzZWxlY3RlZCwgbWFpbigpIGlzIGludm9rZWQgZnJvbSBh biBlQ29zCiMgdGhyZWFkLgojCmNkbF9jb21wb25lbnQgQ1lHU0VNX0xJQkNf U1RBUlRVUF9NQUlOX1RIUkVBRCB7CiAgICAjIEZsYXZvcjogYm9vbAogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIDAgIT0g Q1lHUEtHX0tFUk5FTCAmJiAwID09IENZR1BLR19QT1NJWF9QVEhSRUFEIAog ICAgIyAgICAgQ1lHUEtHX0tFUk5FTCA9PSBjdXJyZW50CiAgICAjICAgICBD WUdQS0dfUE9TSVhfUFRIUkVBRCAodW5rbm93bikgPT0gMAogICAgIyAgIC0t PiAxCiAgICAjIFJlcXVpcmVzOiBDWUdQS0dfS0VSTkVMCiAgICAjICAgICBD WUdQS0dfS0VSTkVMID09IGN1cnJlbnQKICAgICMgICAtLT4gMQoKICAgICMg VGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlz IHZhbHVlCiAgICAjIG9wdGlvbiBDWUdTRU1fTElCQ19JTlZPS0VfREVGQVVM VF9TVEFUSUNfQ09OU1RSVUNUT1JTCiAgICAjICAgICBSZXF1aXJlczogIENZ R1NFTV9MSUJDX1NUQVJUVVBfTUFJTl9USFJFQUQgfHwgIChDWUdTRU1fTElC Q19TVEFSVFVQX01BSU5fT1RIRVIgJiYgQ1lHUEtHX1BPU0lYX1BUSFJFQUQp IAp9OwoKIyA+CiMgU3lzdGVtIHByb3ZpZGVzIHN0YWNrIGZvciBtYWluKCkn cyB0aHJlYWQKIyBUaGlzIG9wdGlvbiBjb250cm9scyB3aGV0aGVyIHRoZSBz dGFjayBvZgojIG1haW4oKSdzIHRocmVhZCBpcyBwcm92aWRlZCBieSB0aGUg YXBwbGljYXRpb24gb3IKIyBwcm92aWRlZCBieSB0aGUgc3lzdGVtLiBXaGVu IGRpc2FibGVkLCB0aGUKIyBhcHBsaWNhdGlvbiBtdXN0IGRlY2xhcmUgYSBw b2ludGVyIHZhcmlhYmxlCiMgY3lnX2xpYmNfbWFpbl9zdGFjayB3aGljaCBp cyBhIHBvaW50ZXIgdG8gYW4KIyBhcHByb3ByaWF0ZWx5IGFsaWduZWQgcmVn aW9uIG9mIG1lbW9yeS4gVGhlCiMgYXBwbGljYXRpb24gbXVzdCBhbHNvIGRl Y2xhcmUgYSB2YXJpYWJsZSBvZgojIHR5cGUgYGludCcgY2FsbGVkIGN5Z19s aWJjX21haW5fc3RhY2tfc2l6ZQojIHdoaWNoIGNvbnRhaW5zIHRoZSBzaXpl IG9mIHRoZSBzdGFjayBpbiBieXRlcy4KIyBUaGlzIG11c3QgYmUgYSBtdWx0 aXBsZSBvZiA4LgojCmNkbF9jb21wb25lbnQgQ1lHU0VNX0xJQkNfTUFJTl9T VEFDS19GUk9NX1NZU1RFTSB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVf c291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyA+ CiMgbWFpbigpJ3MgZGVmYXVsdCB0aHJlYWQgc3RhY2sgc2l6ZQojIFdpdGgg YW4gZUNvcyBrZXJuZWwsIHdoZW4gdGhlIGN5Z19pc29fY19zdGFydCgpCiMg ZnVuY3Rpb24gaXMgdXNlZCB0byBpbnZva2UgdGhlIHVzZXItc3VwcGxpZWQK IyBtYWluKCkgZnVuY3Rpb24gaW4gYW4gSVNPIEMgY29tcGF0aWJsZSBmYXNo aW9uLAojIGEgc2VwYXJhdGUgdGhyZWFkIGlzIGNyZWF0ZWQgdG8gY2FsbCBt YWluKCkuCiMgVGhpcyBvcHRpb24gY29udHJvbHMgdGhlIHNpemUgb2YgdGhh dCB0aHJlYWQncwojIHN0YWNrLCB3aGljaCBpcyBhbGxvY2F0ZWQgaW4gdGhl IEJTUy4gSXQKIyBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgOC4gTm90ZSwgYSBs b3cgbnVtYmVyCiMgaGVyZSBtYXkgYmUgb3ZlcnJpZGVuIGJ5IHRoZSBIQUwg aWYgdGhlcmUgaXMKIyBhIG1pbmltdW0gcmVxdWlyZW1lbnQgdG8gcHJvY2Vz cyBpbnRlcnJ1cHRzCiMgZXRjLgojCmNkbF9vcHRpb24gQ1lHTlVNX0xJQkNf TUFJTl9ERUZBVUxUX1NUQUNLX1NJWkUgewogICAgIyBGbGF2b3I6IGRhdGEK ICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSA4MTkyCiAg ICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6 IDgxOTIKICAgICMgTGVnYWwgdmFsdWVzOiAxNiB0byAweDdmZmZmZmZmCn07 CgojIDwKIyBQcmlvcml0eSBvZiBtYWluKCkncyB0aHJlYWQKIyBUaGlzIG9w dGlvbiBpcyB1c2VkIHRvIHByb3ZpZGUgdGhlIHRocmVhZAojIHByaW9yaXR5 IHdoaWNoIG1haW4oKSdzIHRocmVhZCBydW5zIGF0LiBCZQojIHN1cmUgdG8g Y2hlY2sgdGhhdCB0aGlzIG51bWJlciBpcyBhcHByb3ByaWF0ZQojIGZvciB0 aGUga2VybmVsIHNjaGVkdWxlciBjaG9zZW4uIERpZmZlcmVudAojIGtlcm5l bCBzY2hlZHVsZXJzIGltcG9zZSBkaWZmZXJlbnQgcmVzdHJpY3Rpb25zCiMg b24gdGhlIHVzYWJsZSBwcmlvcml0aWVzLgojCmNkbF9vcHRpb24gQ1lHTlVN X0xJQkNfTUFJTl9USFJFQURfUFJJT1JJVFkgewogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxMAog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAxMAogICAgIyBMZWdhbCB2YWx1ZXM6IDAgdG8gMHg3ZmZmZmZmZgp9OwoK IyA8CiMgSW52b2tlZCBlbHNld2hlcmUKIyBXaXRoIHRoaXMgb3B0aW9uIHNl bGVjdGVkLCBtYWluKCkgbXVzdCBiZQojIGludm9rZWQgYnkgYSBzZXBhcmF0 ZSBwYWNrYWdlLCBvciBieSB0aGUgdXNlci4KIwpjZGxfb3B0aW9uIENZR1NF TV9MSUJDX1NUQVJUVVBfTUFJTl9PVEhFUiB7CiAgICAjIEZsYXZvcjogYm9v bAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAg ICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTog IDAgIT0gQ1lHUEtHX1BPU0lYX1BUSFJFQUQgCiAgICAjICAgICBDWUdQS0df UE9TSVhfUFRIUkVBRCAodW5rbm93bikgPT0gMAogICAgIyAgIC0tPiAwCgog ICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5 IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR1NFTV9MSUJDX0lOVk9LRV9E RUZBVUxUX1NUQVRJQ19DT05TVFJVQ1RPUlMKICAgICMgICAgIFJlcXVpcmVz OiAgQ1lHU0VNX0xJQkNfU1RBUlRVUF9NQUlOX1RIUkVBRCB8fCAgKENZR1NF TV9MSUJDX1NUQVJUVVBfTUFJTl9PVEhFUiAmJiBDWUdQS0dfUE9TSVhfUFRI UkVBRCkgCn07CgojIDwKIyBJbmNsdWRlIGF0ZXhpdCgpIGZ1bmN0aW9uCiMg VGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgdXNlIG9mIHRoZSBhdGV4aXQoKQoj IGZ1bmN0aW9uLCBhbmQgZW5zdXJlIHRoYXQgdGhlIGF0ZXhpdCBoYW5kbGVy cwojIGFyZSBpbnZva2VkIGZyb20gd2l0aGluIGV4aXQoKSBhcyBkZWZpbmVk IGluCiMgdGhlIElTTyBDIHN0YW5kYXJkLgojCmNkbF9jb21wb25lbnQgQ1lH RlVOX0xJQkNfQVRFWElUIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5v IHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8g cHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07CgojID4K IyBOdW1iZXIgb2YgZnVuY3Rpb25zIGF0ZXhpdCgpIHN1cHBvcnRzCiMgVGhp cyBvcHRpb24gc2V0cyB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucwojIHRoYXQg YXRleGl0KCkgaGFzIHJvb20gZm9yLiBJbiBvdGhlciB3b3JkcywKIyB0aGUg bnVtYmVyIG9mIHNlcGFyYXRlIGF0ZXhpdCgpIGNhbGxzIHRoYXQKIyBjYW4g YmUgbWFkZSBiZWZvcmUgY2FsbGluZyBleGl0KCkgb3IgcmV0dXJuaW5nCiMg ZnJvbSBtYWluKCkgKCBpbiBhbiBlbnZpcm9ubWVudCBjb250cm9sbGVkIGJ5 CiMgY3lnX2lzb19jX3N0YXJ0KCkgKS4gRm9yIHN0cmljdCBjb21wbGlhbmNl CiMgd2l0aCB0aGUgSVNPIEMgc3RhbmRhcmQgdGhpcyBzaG91bGQgYmUgYXQK IyBsZWFzdCAzMi4KIwpjZGxfb3B0aW9uIENZR05VTV9MSUJDX0FURVhJVF9I QU5ETEVSUyB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDMyCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDMyCiAgICAjIExlZ2FsIHZh bHVlczogMSB0byAweDdmZmZmZmZmCn07CgojIDwKIyBNYWtlIGV4aXQoKSBj YWxsIGZmbHVzaCgpCiMgVGhpcyBvcHRpb24gd2lsbCBlbnN1cmUgdGhhdCBh bGwgb3V0cHV0CiMgc3RyZWFtcyBhcmUgZmx1c2hlZCB3aGVuIGV4aXR0aW5n IHVzaW5nCiMgZXhpdCgpIGFzIHByZXNjcmliZWQgYnkgdGhlIElTTyBDIHN0 YW5kYXJkLgojCmNkbF9vcHRpb24gQ1lHU0VNX0xJQkNfRVhJVF9DQUxMU19G RkxVU0ggewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICAwICE9IENZR0lOVF9JU09fU1RE SU9fRklMRUFDQ0VTUyAKICAgICMgICAgIENZR0lOVF9JU09fU1RESU9fRklM RUFDQ0VTUyA9PSAxCiAgICAjICAgLS0+IDEKICAgICMgUmVxdWlyZXM6IENZ R0lOVF9JU09fU1RESU9fRklMRUFDQ0VTUwogICAgIyAgICAgQ1lHSU5UX0lT T19TVERJT19GSUxFQUNDRVNTID09IDEKICAgICMgICAtLT4gMQp9OwoKIyBf ZXhpdCgpIHN0b3BzIGFsbCB0aHJlYWRzCiMgSWYgdGhpcyBvcHRpb24gaXMg ZW5hYmxlZCB0aGVuIF9leGl0KCksCiMgd2hpY2ggaXMgY2FsbGVkIGZyb20g ZXhpdCgpIHdoaWNoIGl0c2VsZiBpcwojIGNhbGxlZCBvbiByZXR1cm4gZnJv bSBtYWluKCksIHN0b3BzIHRoZSBlQ29zCiMgc2NoZWR1bGVyLiBGb3Igc3Ry aWN0IFBPU0lYIDEwMDMuMQojIGNvbXBhdGliaWxpdHkgdGhpcyB3b3VsZCBi ZSB0aGUgbm9ybWFsCiMgYmVoYXZpb3VyLiBUbyBhbGxvdyB0aGUgdGhyZWFk IHRvIHNpbXBseQojIGV4aXQsIHdpdGhvdXQgYWZmZWN0aW5nIG90aGVyIHRo cmVhZHMsIHNpbXBseQojIGxlYXZlIHRoaXMgb3B0aW9uIGRpc2FibGVkLiBJ ZiB0aGVyZSBpcyBubyBlQ29zCiMgc2NoZWR1bGVyLCB0aGVuIF9leGl0KCkg c2ltcGx5IGxvb3BzCiMgaXJyZXNwZWN0aXZlIG9mIHRoZSBzZXR0aW5nIG9m IHRoaXMgb3B0aW9uLgojCmNkbF9vcHRpb24gQ1lHU0VNX0xJQkNfRVhJVF9T VE9QU19TWVNURU0gewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNl ciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92 aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKICAgICMgUmVxdWly ZXM6IENZR1BLR19LRVJORUwKICAgICMgICAgIENZR1BLR19LRVJORUwgPT0g Y3VycmVudAogICAgIyAgIC0tPiAxCn07CgojIERlZmF1bHQgZW52aXJvbm1l bnQKIyBUaGlzIG9wdGlvbiBhbGxvd3MgdGhlIHNldHRpbmcgb2YgdGhlIGRl ZmF1bHQKIyBjb250ZW50cyBvZiB0aGUgZW52aXJvbm1lbnQuIFRoaXMgaXMg aW4gZmFjdAojIHRoZSBjb250ZW50cyBvZiB0aGUgZ2xvYmFsIGVudmlyb25t ZW50IHBvaW50ZXIKIyBjaGFyICoqZW52aXJvbiBkZWZpbmVkIGJ5IFBPU0lY IDEwMDMuMS4gU3RyaW5ncwojIG11c3QgYmUgb2YgdGhlIGZvcm0gTkFNRT1W QUxVRSwgYW5kIHRoZSBmaW5hbAojIGVudHJ5IG11c3QgYmUgTlVMTC4KIwpj ZGxfb3B0aW9uIENZR0RBVF9MSUJDX0RFRkFVTFRfRU5WSVJPTk1FTlQgewog ICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAieyBOVUxMIH0iCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICJ7IE5VTEwgfSIKfTsKCiMgSW52 b2tlIGRlZmF1bHQgc3RhdGljIGNvbnN0cnVjdG9ycwojIFRoaXMgb3B0aW9u IGNhdXNlcyB0aGUgQyBsaWJyYXJ5IHRvIGNhbGwKIyBzdGF0aWMgY29uc3Ry dWN0b3JzIHdpdGggZGVmYXVsdCBwcmlvcml0eQojIGZyb20gd2l0aGluIHRo ZSBjb250ZXh0IG9mIHRoZSBtYWluKCkgdGhyZWFkLAojIHdvcmtpbmcgd2l0 aCB0aGUgY28tb3BlcmF0aW9uIG9mIHRoZSBIQUwuCiMgVGhpcyBtYXkgYmUg bmVlZGVkIGZvciBlbnZpcm9ubWVudHMgdGhhdAojIGV4cGVjdCBzdGF0aWMg Y29uc3RydWN0b3JzIHRvIGJlIHJ1biBpbiBhCiMgdGhyZWFkIGNvbnRleHQu IE5vdGUgdGhhdCB0aGlzIHVzZXMgYW4gb2JqZWN0CiMgd2l0aCBwcmlvcml0 eSA2NTUzNC4gVGhlcmVmb3JlIGRvIG5vdCB1c2UKIyBwcmlvcml0eSA2NTUz NCBmb3IgYW55IG90aGVyIHN0YXRpYyBvYmplY3RzCiMgd2l0aCB0aGlzIG9w dGlvbiBlbmFibGVkLgojCmNkbF9vcHRpb24gQ1lHU0VNX0xJQkNfSU5WT0tF X0RFRkFVTFRfU1RBVElDX0NPTlNUUlVDVE9SUyB7CiAgICAjIEZsYXZvcjog Ym9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMAogICAgIyBSZXF1aXJlczogQ1lHU0VNX0hBTF9TVE9QX0NPTlNUUlVD VE9SU19PTl9GTEFHCiAgICAjICAgICBDWUdTRU1fSEFMX1NUT1BfQ09OU1RS VUNUT1JTX09OX0ZMQUcgPT0gMAogICAgIyAgIC0tPiAwCiAgICAjIFJlcXVp cmVzOiAgQ1lHU0VNX0xJQkNfU1RBUlRVUF9NQUlOX1RIUkVBRCB8fCAgKENZ R1NFTV9MSUJDX1NUQVJUVVBfTUFJTl9PVEhFUiAmJiBDWUdQS0dfUE9TSVhf UFRIUkVBRCkgCiAgICAjICAgICBDWUdTRU1fTElCQ19TVEFSVFVQX01BSU5f VEhSRUFEID09IDEKICAgICMgICAgIENZR1NFTV9MSUJDX1NUQVJUVVBfTUFJ Tl9PVEhFUiA9PSAwCiAgICAjICAgICBDWUdQS0dfUE9TSVhfUFRIUkVBRCAo dW5rbm93bikgPT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93 aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAg ICMgb3B0aW9uIENZR1NFTV9IQUxfU1RPUF9DT05TVFJVQ1RPUlNfT05fRkxB RwogICAgIyAgICAgUmVxdWlyZXM6IENZR1NFTV9MSUJDX0lOVk9LRV9ERUZB VUxUX1NUQVRJQ19DT05TVFJVQ1RPUlMKfTsKCiMgSVNPIGVudmlyb25tZW50 IHN0YXJ0dXAvdGVybWluYXRpb24gYnVpbGQgb3B0aW9ucwojIFBhY2thZ2Ug c3BlY2lmaWMgYnVpbGQgb3B0aW9ucyBpbmNsdWRpbmcgY29udHJvbCBvdmVy CiMgY29tcGlsZXIgZmxhZ3MgdXNlZCBvbmx5IGluIGJ1aWxkaW5nIHRoaXMg cGFja2FnZSwKIyBhbmQgZGV0YWlscyBvZiB3aGljaCB0ZXN0cyBhcmUgYnVp bHQuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfTElCQ19TVEFSVFVQX09QVElP TlMgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoK IyA+CiMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0aW9u IG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMgYnVp bGRpbmcgdGhpcyBwYWNrYWdlLiBUaGVzZSBmbGFncyBhcmUgdXNlZCBpbiBh ZGRpdGlvbgojIHRvIHRoZSBzZXQgb2YgZ2xvYmFsIGZsYWdzLgojCmNkbF9v cHRpb24gQ1lHUEtHX0xJQkNfU1RBUlRVUF9DRkxBR1NfQUREIHsKICAgICMg Rmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgIiIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogIiIKfTsKCiMgU3VwcHJlc3NlZCBjb21waWxlciBmbGFn cwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIg ZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhpcyBwYWNrYWdlLiBUaGVzZSBmbGFn cyBhcmUgcmVtb3ZlZCBmcm9tCiMgdGhlIHNldCBvZiBnbG9iYWwgZmxhZ3Mg aWYgcHJlc2VudC4KIwpjZGxfb3B0aW9uIENZR1BLR19MSUJDX1NUQVJUVVBf Q0ZMQUdTX1JFTU9WRSB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICIiCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICIiCn07CgojIElT TyBlbnZpcm9ubWVudCBzdGFydHVwL3Rlcm1pbmF0aW9uIHRlc3RzCiMgVGhp cyBvcHRpb24gc3BlY2lmaWVzIHRoZSBzZXQgb2YgdGVzdHMgZm9yIHRoaXMg cGFja2FnZS4KIwpjZGxfb3B0aW9uIENZR1BLR19MSUJDX1NUQVJUVVBfVEVT VFMgewogICAgIyBDYWxjdWxhdGVkIHZhbHVlOiAgInRlc3RzL2F0ZXhpdCIg CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiB0ZXN0 cy9hdGV4aXQKfTsKCiMgPAojIDwKIyBJU08gQyBsaWJyYXJ5IHN0YW5kYXJk IGlucHV0L291dHB1dCBmdW5jdGlvbnMKIyBkb2M6IHJlZGlyZWN0L3RoZS1p c28tc3RhbmRhcmQtYy1hbmQtbWF0aC1saWJyYXJpZXMuaHRtbAojIFRoaXMg cGFja2FnZSBwcm92aWRlcyBzdGFuZGFyZCBpbnB1dC9vdXRwdXQgZnVuY3Rp b25zIGFzc29jaWF0ZWQKIyB3aXRoIHRoZSBoZWFkZXIgZmlsZSA8c3RkaW8u aD4gYXMgc3BlY2lmaWVkIGJ5IHRoZQojIElTTyBDIHN0YW5kYXJkIC0gSVNP L0lFQyA5ODk5OjE5OTAuCiMKY2RsX3BhY2thZ2UgQ1lHUEtHX0xJQkNfU1RE SU8gewogICAgIyBQYWNrYWdlcyBjYW5ub3QgYmUgYWRkZWQgb3IgcmVtb3Zl ZCwgbm9yIGNhbiB0aGVpciB2ZXJzaW9uIGJlIGNoYW5nZWQsCiAgICAjIHNp bXBseSBieSBlZGl0aW5nIHRoZWlyIHZhbHVlLiBJbnN0ZWFkIHRoZSBhcHBy b3ByaWF0ZSBjb25maWd1cmF0aW9uCiAgICAjIHNob3VsZCBiZSB1c2VkIHRv IHBlcmZvcm0gdGhlc2UgYWN0aW9ucy4KCiAgICAjIFRoaXMgdmFsdWUgY2Fu bm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogYm9vbGRhdGEK ICAgICMgQ3VycmVudCB2YWx1ZTogMSBjdXJyZW50CiAgICAjIFJlcXVpcmVz OiBDWUdQS0dfSU8KICAgICMgICAgIENZR1BLR19JTyA9PSBjdXJyZW50CiAg ICAjICAgLS0+IDEKICAgICMgUmVxdWlyZXM6IENZR1BLR19JT19TRVJJQUxf SEFMRElBRwogICAgIyAgICAgQ1lHUEtHX0lPX1NFUklBTF9IQUxESUFHID09 IDEKICAgICMgICAtLT4gMQogICAgIyBSZXF1aXJlczogIENZR0JMRF9JU09f U1RESU9fRklMRVRZUEVTX0hFQURFUiA9PSAgIjxjeWcvbGliYy9zdGRpby9z dGRpby5oPiIgCiAgICAjICAgICBDWUdCTERfSVNPX1NURElPX0ZJTEVUWVBF U19IRUFERVIgPT0gPGN5Zy9saWJjL3N0ZGlvL3N0ZGlvLmg+CiAgICAjICAg LS0+IDEKICAgICMgUmVxdWlyZXM6ICBDWUdCTERfSVNPX1NURElPX0ZJTEVB Q0NFU1NfSEVBREVSID09ICAiPGN5Zy9saWJjL3N0ZGlvL3N0ZGlvLmg+IiAK ICAgICMgICAgIENZR0JMRF9JU09fU1RESU9fRklMRUFDQ0VTU19IRUFERVIg PT0gPGN5Zy9saWJjL3N0ZGlvL3N0ZGlvLmg+CiAgICAjICAgLS0+IDEKICAg ICMgUmVxdWlyZXM6ICBDWUdCTERfSVNPX1NURElPX0ZPUk1BVFRFRF9JT19I RUFERVIgPT0gICI8Y3lnL2xpYmMvc3RkaW8vc3RkaW8uaD4iIAogICAgIyAg ICAgQ1lHQkxEX0lTT19TVERJT19GT1JNQVRURURfSU9fSEVBREVSID09IDxj eWcvbGliYy9zdGRpby9zdGRpby5oPgogICAgIyAgIC0tPiAxCiAgICAjIFJl cXVpcmVzOiAgQ1lHQkxEX0lTT19TVERJT19DSEFSX0lPX0hFQURFUiA9PSAg IjxjeWcvbGliYy9zdGRpby9zdGRpby5oPiIgCiAgICAjICAgICBDWUdCTERf SVNPX1NURElPX0NIQVJfSU9fSEVBREVSID09IDxjeWcvbGliYy9zdGRpby9z dGRpby5oPgogICAgIyAgIC0tPiAxCiAgICAjIFJlcXVpcmVzOiAgQ1lHQkxE X0lTT19TVERJT19ESVJFQ1RfSU9fSEVBREVSID09ICAiPGN5Zy9saWJjL3N0 ZGlvL3N0ZGlvLmg+IiAKICAgICMgICAgIENZR0JMRF9JU09fU1RESU9fRElS RUNUX0lPX0hFQURFUiA9PSA8Y3lnL2xpYmMvc3RkaW8vc3RkaW8uaD4KICAg ICMgICAtLT4gMQogICAgIyBSZXF1aXJlczogIENZR0JMRF9JU09fU1RESU9f RVJST1JfSEVBREVSID09ICAiPGN5Zy9saWJjL3N0ZGlvL3N0ZGlvLmg+IiAK ICAgICMgICAgIENZR0JMRF9JU09fU1RESU9fRVJST1JfSEVBREVSID09IDxj eWcvbGliYy9zdGRpby9zdGRpby5oPgogICAgIyAgIC0tPiAxCiAgICAjIFJl cXVpcmVzOiAgQ1lHQkxEX0lTT19TVERJT19TVFJFQU1TX0hFQURFUiA9PSAg IjxjeWcvbGliYy9zdGRpby9zdGRpby5oPiIgCiAgICAjICAgICBDWUdCTERf SVNPX1NURElPX1NUUkVBTVNfSEVBREVSID09IDxjeWcvbGliYy9zdGRpby9z dGRpby5oPgogICAgIyAgIC0tPiAxCiAgICAjIFJlcXVpcmVzOiBDWUdQS0df SVNPSU5GUkEKICAgICMgICAgIENZR1BLR19JU09JTkZSQSA9PSBjdXJyZW50 CiAgICAjICAgLS0+IDEKICAgICMgUmVxdWlyZXM6IENZR0lOVF9JU09fRVJS Tk9fQ09ERVMKICAgICMgICAgIENZR0lOVF9JU09fRVJSTk9fQ09ERVMgPT0g MQogICAgIyAgIC0tPiAxCiAgICAjIFJlcXVpcmVzOiBDWUdJTlRfSVNPX0VS Uk5PCiAgICAjICAgICBDWUdJTlRfSVNPX0VSUk5PID09IDEKICAgICMgICAt LT4gMQogICAgIyBSZXF1aXJlczogQ1lHSU5UX0lTT19TVFJFUlJPUgogICAg IyAgICAgQ1lHSU5UX0lTT19TVFJFUlJPUiA9PSAxCiAgICAjICAgLS0+IDEK ICAgICMgUmVxdWlyZXM6IENZR0lOVF9JU09fU1RSSU5HX1NUUkZVTkNTCiAg ICAjICAgICBDWUdJTlRfSVNPX1NUUklOR19TVFJGVU5DUyA9PSAxCiAgICAj ICAgLS0+IDEKICAgICMgUmVxdWlyZXM6IENZR0lOVF9JU09fU1RSSU5HX01F TUZVTkNTCiAgICAjICAgICBDWUdJTlRfSVNPX1NUUklOR19NRU1GVU5DUyA9 PSAxCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVy dGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24g Q1lHU0VNX0xJQk1fVVNFX1NUREVSUgogICAgIyAgICAgUmVxdWlyZXM6IENZ R1BLR19MSUJDX1NURElPCiAgICAjIG9wdGlvbiBDWUdQS0dfTkVUX05MT09Q CiAgICAjICAgICBSZXF1aXJlczogIChDWUdQS0dfTkVUX05MT09QID4gMSkg PyBDWUdQS0dfTElCQ19TVERJTyA6IDEgIAp9OwoKIyA+CiMgSW5saW5lIHZl cnNpb25zIG9mIDxzdGRpby5oPiBmdW5jdGlvbnMKIyBUaGlzIG9wdGlvbiBj aG9vc2VzIHdoZXRoZXIgc29tZSBvZiB0aGUKIyBwYXJ0aWN1bGFybHkgc2lt cGxlIGZ1bmN0aW9ucyBmcm9tCiMgPHN0ZGlvLmg+IGFyZSBhdmFpbGFibGUg YXMgaW5saW5lCiMgZnVuY3Rpb25zLiBUaGlzIG1heSBpbXByb3ZlIHBlcmZv cm1hbmNlLCBhbmQgYXMKIyB0aGUgZnVuY3Rpb25zIGFyZSBzbWFsbCwgbWF5 IGV2ZW4gaW1wcm92ZSBjb2RlCiMgc2l6ZS4KIwpjZGxfb3B0aW9uIENZR0lN UF9MSUJDX1NURElPX0lOTElORVMgewogICAgIyBGbGF2b3I6IGJvb2wKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZh bHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsK CiMgUGVybWl0dGVkIG51bWJlciBvZiBvcGVuIGZpbGVzCiMgVGhpcyBvcHRp b24gY29udHJvbHMgdGhlIGd1YXJhbnRlZWQgbWluaW11bQojIG51bWJlciBv ZiBzaW11bHRhbmVvdXNseSBvcGVuIGZpbGVzLiBUaGUgSVNPCiMgQyBzdGFu ZGFyZCByZXF1aXJlcyBpdCB0byBiZSBkZWZpbmVkIChwYXJhCiMgNy45LjEp LCBhbmQgaWYgc3RyaWN0bHkgY29tcGxpYW50LCBpdCBtdXN0IGJlCiMgYXQg bGVhc3QgOCAocGFyYSA3LjkuMykuIEluIHByYWN0aWNlIGl0IGNhbiBiZQoj IGFzIGxvdyBhcyAzIC0gZm9yIHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyci4K IwpjZGxfb3B0aW9uIEZPUEVOX01BWCB7CiAgICAjIEZsYXZvcjogZGF0YQog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDgKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogOAog ICAgIyBMZWdhbCB2YWx1ZXM6IDMgdG8gMHg3ZmZmZmZmZgp9OwoKIyBNYXhp bXVtIGxlbmd0aCBvZiBmaWxlbmFtZQojIFRoaXMgb3B0aW9uIGRlZmluZXMg dGhlIG1heGltdW0gYWxsb3dlZCBzaXplIG9mCiMgYSBmaWxlbmFtZSBpbiBj aGFyYWN0ZXJzLiBUaGUgSVNPIEMgc3RhbmRhcmQKIyByZXF1aXJlcyBpdCB0 byBiZSBkZWZpbmVkIChwYXJhIDcuOS4xKS4KIwpjZGxfb3B0aW9uIEZJTEVO QU1FX01BWCB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDE2CiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDE2CiAgICAjIExlZ2FsIHZh bHVlczogMSB0byAweDdmZmZmZmZmCn07CgojIE1heGltdW0gbGVuZ3RoIG9m IGZpbGVuYW1lcyBmb3IgdGVtcG9yYXJ5IGZpbGVzCiMgVGhpcyBvcHRpb24g ZGVmaW5lcyB0aGUgbWF4aW11bSBhbGxvd2VkIHNpemUgb2YKIyBmaWxlbmFt ZXMgZm9yIHRlbXBvcmFyeSBmaWxlcyBhcyBnZW5lcmF0ZWQgYnkKIyB0bXBu YW0oKS4gSXQgaXMgbWVhc3VyZWQgaW4gY2hhcmFjdGVycywgYW5kIHRoZQoj IElTTyBDIHN0YW5kYXJkIHJlcXVpcmVzIGl0IHRvIGJlIGRlZmluZWQgKHBh cmEgCiMgNy45LjEpLgojCmNkbF9vcHRpb24gTF90bXBuYW0gewogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAxNgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAxNgogICAgIyBMZWdhbCB2YWx1ZXM6IDEgdG8gMHg3ZmZm ZmZmZgp9OwoKIyBVbmlxdWUgZmlsZSBuYW1lcyBnZW5lcmF0ZWQgYnkgdG1w bmFtKCkKIyBUaGlzIG9wdGlvbiBkZWZpbmVzIHRoZSBtaW5pbXVtIG51bWJl ciBvZgojIHVuaXF1ZSBmaWxlIG5hbWVzIGdlbmVyYXRlZCBieSB0bXBuYW0o KS4gVGhlCiMgSVNPIEMgc3RhbmRhcmQgcmVxdWlyZXMgaXQgdG8gYmUgZGVm aW5lZCAocGFyYQojIDcuOS4xKS4KIwpjZGxfb3B0aW9uIFRNUF9NQVggewog ICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAj IERlZmF1bHQgdmFsdWU6IDAKICAgICMgTGVnYWwgdmFsdWVzOiAwIHRvIDB4 N2ZmZmZmZmYKfTsKCiMgQnVmZmVyZWQgSS9PCiMgVGhpcyBvcHRpb24gY29u dHJvbHMgd2hldGhlciBpbnB1dC9vdXRwdXQKIyB0aHJvdWdoIHRoZSA8c3Rk aW8uaD4gZnVuY3Rpb25zIGlzIGJ1ZmZlcmVkLgojIFRoaXMgbWF5IHNhdmUg c29tZSBtZW1vcnkgcGVyIGZpbGUuIEl0CiMgaXMgZXF1aXZhbGVudCB0byBw dXR0aW5nIGV2ZXJ5IGZpbGUgaW50bwojIG5vbi1idWZmZXJlZCBtb2RlIChf SU9OQkYpIHRocm91Z2ggc2V0dmJ1ZigpLAojIGV4Y2VwdCBub3cgaXQgY2Fu IG5ldmVyIGJlIGFsdGVyZWQgYmFjayB0bwojIGJ1ZmZlcmVkIG1vZGUuIERp c2FibGluZyBidWZmZXJpbmcgaXMgc3RyaWN0bHkgCiMgbm9uLWNvbXBsaWFu dCB3aXRoIHRoZSBJU08gQyBzdGFuZGFyZC4KIwpjZGxfY29tcG9uZW50IENZ R1NFTV9MSUJDX1NURElPX1dBTlRfQlVGRkVSRURfSU8gewogICAgIyBGbGF2 b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUg YWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQlVGU0laCiAg ICAjICAgICBDYWxjdWxhdGVkOiBDWUdTRU1fTElCQ19TVERJT19XQU5UX0JV RkZFUkVEX0lPID8gQ1lHTlVNX0xJQkNfU1RESU9fQlVGU0laRSA6IDAKICAg ICMgb3B0aW9uIENZR1BLR19MSUJDX1NURElPX0ZJTEVJTwogICAgIyAgICAg UmVxdWlyZXM6IENZR1NFTV9MSUJDX1NURElPX1dBTlRfQlVGRkVSRURfSU8K fTsKCiMgPgojIERlZmF1bHQgYnVmZmVyIHNpemUKIyBUaGlzIG9wdGlvbiBk ZWZpbmVzIHRoZSBkZWZhdWx0IHNpemUgb2YgYnVmZmVyCiMgdXNlZCB3aXRo IGNhbGxzIHRvIHNldGJ1ZigpLCBhbmQgaXMgdGhlIGRlZmF1bHQKIyBzaXpl IGZvciBidWZmZXJlZCBzdHJlYW1zIHRoYXQgaGF2ZSBub3QgaGFkCiMgZWl0 aGVyIHNldGJ1ZigpIG9yIHNldHZidWYoKSBpbnZva2VkIG9uIHRoZW0uCiMg SXQgaXMgZXhhY3RseSBlcXVpdmFsZW50IHRvIHRoZSBzdGFuZGFyZAojIGNv bnN0YW50IEJVRlNJWiwgZXhjZXB0IHRoYXQgaXQgaXMgMCBpZgojIENZR1NF TV9MSUJDX1NURElPX1dBTlRfQlVGRkVSRURfSU8gaXMgZGlzYWJsZWQuCiMg VGhlIElTTyBDIHN0YW5kYXJkIHJlcXVpcmVzIHRoaXMgdG8gYmUgZGVmaW5l ZAojIChwYXJhIDcuOS4xKSwgYW5kIHNheXMgaXQgbXVzdCBiZSBhdCBsZWFz dCAyNTYKIyAocGFyYSA3LjkuMikuCiMKY2RsX29wdGlvbiBDWUdOVU1fTElC Q19TVERJT19CVUZTSVpFIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5v IHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8g cHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMjU2CiAgICAjIHZhbHVl X3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDI1NgogICAg IyBMZWdhbCB2YWx1ZXM6IDEgdG8gMHg3ZmZmZmZmZgoKICAgICMgVGhlIGZv bGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVl CiAgICAjIG9wdGlvbiBCVUZTSVoKICAgICMgICAgIENhbGN1bGF0ZWQ6IENZ R1NFTV9MSUJDX1NURElPX1dBTlRfQlVGRkVSRURfSU8gPyBDWUdOVU1fTElC Q19TVERJT19CVUZTSVpFIDogMAp9OwoKIyBzZXRidWYoKS9zZXR2YnVmKCkg YWxsb3dzIGR5bmFtaWMgc2V0dGluZwojIFRoaXMgb3B0aW9uIGNvbnRyb2xz IHdoZXRoZXIgSS9PIGJ1ZmZlcnMgYXJlCiMgaW1wbGVtZW50ZWQgZHluYW1p Y2FsbHkgd2l0aGluIHRoZSBzdGRpbwojIGltcGxlbWVudGF0aW9uLiBPdGhl cndpc2UgdGhleSB3aWxsIGJlIHN0YXRpYywKIyBhbmQgY2Fubm90IGJlIGNo YW5nZWQgYnkgc2V0YnVmKCkvc2V0dmJ1ZigpLiBJZgojIHRoZXkgYXJlIHN0 YXRpYyAoaS5lLiB0aGlzIG9wdGlvbiBpcyBkaXNhYmxlZCksCiMgYW55IGF0 dGVtcHQgdG8gdXNlIGFuIGFyYml0cmFyeSBidWZmZXIgc2l6ZSwgb3IKIyB0 byBwYXNzIGEgdXNlci1zdXBwbGllZCBidWZmZXIgdG8gc2V0YnVmKCkgb3IK IyBzZXR2YnVmKCkgd2lsbCBmYWlsIC0gdGhlIGJ1ZmZlciBpcyBpbXBsZW1l bnRlZAojIGludGVybmFsbHkgYXMgYSBzdGF0aWMgYXJyYXkgdGFraW5nIHRo ZSBzaXplCiMgb2YgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIEJVRlNJWi4g VGhlIG9ubHkKIyBleGNlcHRpb24gaXMgaWYgYSB1c2VyIGJ1ZmZlciBpcyBu b3Qgc3VwcGxpZWQsCiMgYW5kIHRoZSBidWZmZXIgc2l6ZSByZXF1ZXN0ZWQg aXMgbGVzcyB0aGFuCiMgQlVGU0laLiBJbiB0aGlzIGNhc2UsIHRoZSBidWZm ZXIgd2lsbAojIGJlIGNvbmZpZ3VyZWQgdG8gb25seSB1c2UgdGhhdCBhbW91 bnQgb2YKIyBidWZmZXJpbmcuIEhvd2V2ZXIgdGhlIHVudXNlZCBtZW1vcnkg bGVmdCBvdmVyCiMgd2lsbCBOT1QgYmUgZnJlZWQuIElmIHRoaXMgb3B0aW9u IGlzIGVuYWJsZWQsCiMgdGhlbiBzZXR2YnVmKCkgY2FuIGJlIHVzZWQgdG8g YXNzaWduIGEgdXNlciBzdXBwbGllZAojIGJ1ZmZlciB0byB0aGUgc3RyZWFt LgojIEVpdGhlciBzZXR0aW5nIGNhbiBiZSBjb25zaWRlcmVkIHRvCiMgYmUg Y29tcGxpYW50IHdpdGggdGhlIElTTyBDIHN0YW5kYXJkLgojCmNkbF9vcHRp b24gQ1lHU0VNX0xJQkNfU1RESU9fRFlOQU1JQ19TRVRWQlVGIHsKICAgICMg Rmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMg YXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR1NF TV9MSUJDX1NURElPX1NFVFZCVUZfTUFMTE9DCiAgICAjICAgICBSZXF1aXJl czogQ1lHU0VNX0xJQkNfU1RESU9fRFlOQU1JQ19TRVRWQlVGCn07CgojIHNl dGJ1ZigpL3NldHZidWYoKSB1c2VzIG1hbGxvYygpCiMgVGhpcyBvcHRpb24g Y29udHJvbHMgd2hldGhlciBidWZmZXJzIHNldCBieSBzZXRidWYoKSBhbmQK IyBzZXR2YnVmKCkgbWF5IGJlIGFsbG9jYXRlZCB1c2luZyBtYWxsb2MoKS4K IwpjZGxfb3B0aW9uIENZR1NFTV9MSUJDX1NURElPX1NFVFZCVUZfTUFMTE9D IHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVu Y29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAg ICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAog ICAgIyBEZWZhdWx0IHZhbHVlOiAgMCAhPSBDWUdJTlRfSVNPX01BTExPQyAK ICAgICMgICAgIENZR0lOVF9JU09fTUFMTE9DID09IDEKICAgICMgICAtLT4g MQogICAgIyBSZXF1aXJlczogQ1lHSU5UX0lTT19NQUxMT0MKICAgICMgICAg IENZR0lOVF9JU09fTUFMTE9DID09IDEKICAgICMgICAtLT4gMQogICAgIyBS ZXF1aXJlczogQ1lHU0VNX0xJQkNfU1RESU9fRFlOQU1JQ19TRVRWQlVGCiAg ICAjICAgICBDWUdTRU1fTElCQ19TVERJT19EWU5BTUlDX1NFVFZCVUYgPT0g MQogICAgIyAgIC0tPiAxCn07CgojIDwKIyBEZWZhdWx0IGJ1ZmZlciBzaXpl IChCVUZTSVopCiMKY2RsX29wdGlvbiBCVUZTSVogewogICAgIyBDYWxjdWxh dGVkIHZhbHVlOiBDWUdTRU1fTElCQ19TVERJT19XQU5UX0JVRkZFUkVEX0lP ID8gQ1lHTlVNX0xJQkNfU1RESU9fQlVGU0laRSA6IDAKICAgICMgICAgIENZ R1NFTV9MSUJDX1NURElPX1dBTlRfQlVGRkVSRURfSU8gPT0gMQogICAgIyAg ICAgQ1lHTlVNX0xJQkNfU1RESU9fQlVGU0laRSA9PSAyNTYKICAgICMgRmxh dm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDI1Ngp9OwoKIyBTdXBw b3J0IGZvciB1bmdldGMoKQojIFRoaXMgb3B0aW9uIGNvbnRyb2xzIHdoZXRo ZXIgdW5nZXRjKCkgaXMKIyBzdXBwb3J0ZWQuIElmIG5vdCwgdGhlbiBzb21l IHNwYWNlIGNhbiBiZQojIHNhdmVkLCBhbmQgc3BlZWQgaXMgaW1wcm92ZWQu IE5vdGUgdGhhdCB5b3UKIyBNVVNUIGhhdmUgdGhpcyBkZWZpbmVkIGlmIHlv dSB3YW50IHRvIHVzZSB0aGUKIyBzY2FuZigpIGZhbWlseSBvZiBmdW5jdGlv bnMuCiMKY2RsX29wdGlvbiBDWUdGVU5fTElCQ19TVERJT191bmdldGMgewog ICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAj IERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgRHluYW1pYyBvcGVuaW5nL2Nsb3Np bmcgb2YgZmlsZXMKIyBmb3BlbigpIGFuZCBmY2xvc2UoKSB1c2UgZHluYW1p YyBtZW1vcnkKIyBhbGxvY2F0aW9uIHJvdXRpbmVzIHRvIGFsbG9jYXRlIG1l bW9yeSBmb3IKIyBuZXcgRklMRSBzdHJ1Y3R1cmUgcG9pbnRlcnMuIElmIGEg bWFsbG9jCiMgaW1wbGVtZW50YXRpb24gaXMgYXZhaWxhYmxlLCB0aGlzIG9w dGlvbgojIG1heSBiZSBlbmFibGVkIHRvIHVzZQojIGZvcGVuKCkgYW5kIGZj bG9zZSgpLiBJZiBkaXNhYmxlZCwgb25seSB0aGUKIyBkZWZhdWx0IGNvbnNv bGUgc3RyZWFtcyAtIHN0ZGluLCBzdGRvdXQgYW5kCiMgc3RkZXJyIC0gd2ls bCBiZSBhdmFpbGFibGUuCiMKY2RsX29wdGlvbiBDWUdQS0dfTElCQ19TVERJ T19PUEVOIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVm YXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAgMCAhPSBDWUdJTlRfSVNPX01B TExPQyAKICAgICMgICAgIENZR0lOVF9JU09fTUFMTE9DID09IDEKICAgICMg ICAtLT4gMQogICAgIyBSZXF1aXJlczogQ1lHSU5UX0lTT19NQUxMT0MKICAg ICMgICAgIENZR0lOVF9JU09fTUFMTE9DID09IDEKICAgICMgICAtLT4gMQp9 OwoKIyBEZWZhdWx0IGNvbnNvbGUgZGV2aWNlCiMgVGhpcyBvcHRpb24gYWxs b3dzIHlvdSB0byBjaG9vc2UgdGhlCiMgZGVmYXVsdCBjb25zb2xlIGRldmlj ZS4gSW4gdGhlIGN1cnJlbnQKIyBpbXBsZW1lbnRhdGlvbiwgYWxsIHRoZXNl IGRldmljZXMgYmVnaW4KIyB3aXRoIHRoZSBwcmVmaXggL2Rldi8gYW5kIGFy ZSBmb2xsb3dlZCBieQojIHRoZSBuYW1lIG9mIGEgZGV2aWNlLiBUaGUgbmFt ZSBvZiB0aGUgZGV2aWNlCiMgZGVwZW5kcyBvbiB0aGUgZGV2aWNlIGRyaXZl cnMgeW91IGhhdmUKIyBjb25maWd1cmVkIGluIHlvdXIgc3lzdGVtLiBGb3Ig ZXhhbXBsZSwKIyAvZGV2L3R0eWRpYWcgY291bGQgYmUgdGhlIEhBTCBkaWFn bm9zdGljIG91dHB1dAojIHBzZXVkby1kZXZpY2UsIG9yIC9kZXYvdHR5MCBj b3VsZCBiZSB5b3VyCiMgZmlyc3Qgc2VyaWFsIGRyaXZlciwgZGVwZW5kaW5n IG9uIHlvdXIKIyBjb25maWd1cmF0aW9uLgojCmNkbF9vcHRpb24gQ1lHREFU X0xJQkNfU1RESU9fREVGQVVMVF9DT05TT0xFIHsKICAgICMgRmxhdm9yOiBk YXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgIlwi L2Rldi90dHlkaWFnXCIiCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6ICJcIi9kZXYvdHR5ZGlhZ1wiIgp9OwoKIyBG bG9hdGluZyBwb2ludCBzdXBwb3J0CiMgVGhpcyBjb21wb25lbnQgYWxsb3dz IGZsb2F0aW5nIHBvaW50IHN1cHBvcnQKIyB0byBiZSBlbmFibGVkIGluIGNl cnRhaW4gc3RhbmRhcmQgSS9PCiMgZnVuY3Rpb25zLgojCmNkbF9jb21wb25l bnQgQ1lHUEtHX0xJQkNfU1RESU9fRkxPQVRJTkdfUE9JTlQgewogICAgIyBU aGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgcHJpbnRm KCkgZmFtaWx5CiMgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgdXNlIG9mIGZs b2F0aW5nIHBvaW50CiMgbnVtYmVyIG91dHB1dCBpbiB0aGUgcHJpbnRmKCkg ZmFtaWx5IChpLmUuCiMgcHJpbnRmKCksIHNwcmludGYoKSwgdnByaW50Zigp LCBldGMuKSBvZgojIGZ1bmN0aW9ucy4gQSBzdWJzdGFudGlhbCBhbW91bnQg b2YgY29kZSBzcGFjZQojIGNhbiBiZSBzYXZlZCBpZiB0aGlzIG9wdGlvbiBp cyBkaXNhYmxlZC4gSWYgaXQKIyBpcyBkaXNhYmxlZCB0aGVuIGZsb2F0aW5n IHBvaW50IHNwZWNpZmllcnMKIyAoJWUsICVmLCAlZykgYXJlIGlnbm9yZWQs IGFuZCBub3RoaW5nIGlzCiMgb3V0cHV0LgojCmNkbF9vcHRpb24gQ1lHU0VN X0xJQkNfU1RESU9fUFJJTlRGX0ZMT0FUSU5HX1BPSU5UIHsKICAgICMgRmxh dm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0 IHZhbHVlOiAgMCAhPSBDWUdQS0dfTElCTSAKICAgICMgICAgIENZR1BLR19M SUJNID09IGN1cnJlbnQKICAgICMgICAtLT4gMQogICAgIyBSZXF1aXJlczog Q1lHUEtHX0xJQk0KICAgICMgICAgIENZR1BLR19MSUJNID09IGN1cnJlbnQK ICAgICMgICAtLT4gMQp9OwoKIyBzY2FuZigpIGZhbWlseQojIFRoaXMgb3B0 aW9uIGVuYWJsZXMgdGhlIHVzZSBvZiBmbG9hdGluZyBwb2ludAojIG51bWJl ciBjb252ZXJzaW9uIGluIHRoZSBzY2FuZigpIGZhbWlseSAoaS5lLgojIHNj YW5mKCksIHNzY2FuZigpLCB2c2NhbmYoKSwgZXRjLikgb2YKIyBmdW5jdGlv bnMuIEEgc3Vic3RhbnRpYWwgYW1vdW50IG9mIGNvZGUgc3BhY2UKIyBjYW4g YmUgc2F2ZWQgaWYgdGhpcyBvcHRpb24gaXMgZGlzYWJsZWQuIElmIGl0CiMg aXMgZGlzYWJsZWQgdGhlbiBmbG9hdGluZyBwb2ludCBzcGVjaWZpZXJzCiMg KCVlLCAlZiwgJWcpIGFyZSBpZ25vcmVkLCBhbmQgbm90aGluZyBpcwojIGNv bnZlcnRlZC4KIwpjZGxfb3B0aW9uIENZR1NFTV9MSUJDX1NURElPX1NDQU5G X0ZMT0FUSU5HX1BPSU5UIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5v IHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8g cHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAgMCAhPSBDWUdQ S0dfTElCTSAmJgogICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDAgIT0gQ1lHSU5UX0lTT19TVERMSUJfU1RSQ09OVl9GTE9BVCAKICAg ICMgICAgIENZR1BLR19MSUJNID09IGN1cnJlbnQKICAgICMgICAgIENZR0lO VF9JU09fU1RETElCX1NUUkNPTlZfRkxPQVQgPT0gMQogICAgIyAgIC0tPiAx CiAgICAjIFJlcXVpcmVzOiBDWUdQS0dfTElCTQogICAgIyAgICAgQ1lHUEtH X0xJQk0gPT0gY3VycmVudAogICAgIyAgIC0tPiAxCiAgICAjIFJlcXVpcmVz OiBDWUdJTlRfSVNPX1NURExJQl9TVFJDT05WX0ZMT0FUCiAgICAjICAgICBD WUdJTlRfSVNPX1NURExJQl9TVFJDT05WX0ZMT0FUID09IDEKICAgICMgICAt LT4gMQp9OwoKIyA8CiMgVGhyZWFkIHNhZmUgSS9PIHN0cmVhbXMKIyBUaGlz IG9wdGlvbiBjb250cm9scyB3aGV0aGVyIHN0YW5kYXJkIEkvTyBzdHJlYW1z CiMgYXJlIHRocmVhZC1zYWZlLiBIYXZpbmcgdGhpcyBvcHRpb24gc2V0IGFs bG93cwojIHRoZSBzdHJlYW1zIHRvIGJlIGxvY2tlZCB3aGVuIGFjY2Vzc2Vk IGJ5CiMgbXVsdGlwbGUgdGhyZWFkcyBzaW11bHRhbmVvdXNseS4KIwpjZGxf b3B0aW9uIENZR1NFTV9MSUJDX1NURElPX1RIUkVBRF9TQUZFX1NUUkVBTVMg ewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6ICAwICE9IENZR1BLR19LRVJORUwgCiAgICAj ICAgICBDWUdQS0dfS0VSTkVMID09IGN1cnJlbnQKICAgICMgICAtLT4gMQog ICAgIyBSZXF1aXJlczogQ1lHUEtHX0tFUk5FTAogICAgIyAgICAgQ1lHUEtH X0tFUk5FTCA9PSBjdXJyZW50CiAgICAjICAgLS0+IDEKfTsKCiMgQyBsaWJy YXJ5IHN0ZGlvIGZ1bmN0aW9ucyBidWlsZCBvcHRpb25zCiMgUGFja2FnZSBz cGVjaWZpYyBidWlsZCBvcHRpb25zIGluY2x1ZGluZyBjb250cm9sIG92ZXIK IyBjb21waWxlciBmbGFncyB1c2VkIG9ubHkgaW4gYnVpbGRpbmcgdGhpcyBw YWNrYWdlLAojIGFuZCBkZXRhaWxzIG9mIHdoaWNoIHRlc3RzIGFyZSBidWls dC4KIwpjZGxfY29tcG9uZW50IENZR1BLR19MSUJDX1NURElPX09QVElPTlMg ewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+ CiMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0aW9uIG1v ZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMgYnVpbGRp bmcgdGhlIEMgbGlicmFyeS4gVGhlc2UgZmxhZ3MgYXJlIHVzZWQgaW4gYWRk aXRpb24KIyB0byB0aGUgc2V0IG9mIGdsb2JhbCBmbGFncy4KIwpjZGxfb3B0 aW9uIENZR1BLR19MSUJDX1NURElPX0NGTEFHU19BREQgewogICAgIyBGbGF2 b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAiIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0 IHZhbHVlOiAiIgp9OwoKIyBTdXBwcmVzc2VkIGNvbXBpbGVyIGZsYWdzCiMg VGhpcyBvcHRpb24gbW9kaWZpZXMgdGhlIHNldCBvZiBjb21waWxlciBmbGFn cyBmb3IKIyBidWlsZGluZyB0aGUgQyBsaWJyYXJ5LiBUaGVzZSBmbGFncyBh cmUgcmVtb3ZlZCBmcm9tCiMgdGhlIHNldCBvZiBnbG9iYWwgZmxhZ3MgaWYg cHJlc2VudC4KIwpjZGxfb3B0aW9uIENZR1BLR19MSUJDX1NURElPX0NGTEFH U19SRU1PVkUgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2 YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRl IG9uZS4KICAgICMgdXNlcl92YWx1ZSAiIgogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAiIgp9OwoKIyBDIGxpYnJh cnkgc3RkaW8gZnVuY3Rpb24gdGVzdHMKIyBUaGlzIG9wdGlvbiBzcGVjaWZp ZXMgdGhlIHNldCBvZiB0ZXN0cyBmb3IgdGhlIEMgbGlicmFyeQojIHN0ZGlv IGZ1bmN0aW9ucy4KIwpjZGxfb3B0aW9uIENZR1BLR19MSUJDX1NURElPX1RF U1RTIHsKICAgICMgQ2FsY3VsYXRlZCB2YWx1ZTogICJ0ZXN0cy9zcHJpbnRm MSB0ZXN0cy9zcHJpbnRmMiB0ZXN0cy9zc2NhbmYgdGVzdHMvc3RkaW9vdXRw dXQiIAogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTog dGVzdHMvc3ByaW50ZjEgdGVzdHMvc3ByaW50ZjIgdGVzdHMvc3NjYW5mIHRl c3RzL3N0ZGlvb3V0cHV0Cn07CgojIDwKIyBFbmFibGUgdXNlIG9mIEZJTEVJ TyBwYWNrYWdlIGZvciBJTyBvcGVyYXRpb25zLgojCmNkbF9vcHRpb24gQ1lH UEtHX0xJQkNfU1RESU9fRklMRUlPIHsKICAgICMgVGhpcyBvcHRpb24gaXMg bm90IGFjdGl2ZQogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBDWUdQS0df SU9fRklMRUlPCiAgICAjICAgICBDWUdQS0dfSU9fRklMRUlPICh1bmtub3du KSA9PSAwCiAgICAjICAgLS0+IDAKCiAgICAjIENhbGN1bGF0ZWQgdmFsdWU6 IDEKICAgICMgRmxhdm9yOiBib29sCiAgICAjIEN1cnJlbnQgdmFsdWU6IDEK ICAgICMgUmVxdWlyZXM6IENZR1NFTV9MSUJDX1NURElPX1dBTlRfQlVGRkVS RURfSU8KICAgICMgICAgIENZR1NFTV9MSUJDX1NURElPX1dBTlRfQlVGRkVS RURfSU8gPT0gMQogICAgIyAgIC0tPiAxCn07CgojIDwKIyBJU08gQyBsaWJy YXJ5IGdlbmVyYWwgdXRpbGl0eSBmdW5jdGlvbnMKIyBkb2M6IHJlZGlyZWN0 L3RoZS1pc28tc3RhbmRhcmQtYy1hbmQtbWF0aC1saWJyYXJpZXMuaHRtbAoj IFRoaXMgcGFja2FnZSBwcm92aWRlcyBnZW5lcmFsIHV0aWxpdHkgZnVuY3Rp b25zIGluIDxzdGRsaWIuaD4KIyBhcyBzcGVjaWZpZWQgYnkgdGhlIElTTyBD IHN0YW5kYXJkIC0gSVNPL0lFQyA5ODk5OjE5OTAuCiMKY2RsX3BhY2thZ2Ug Q1lHUEtHX0xJQkNfU1RETElCIHsKICAgICMgUGFja2FnZXMgY2Fubm90IGJl IGFkZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVyc2lvbiBiZSBj aGFuZ2VkLAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVpciB2YWx1ZS4g SW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbgogICAgIyBz aG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnMuCgogICAg IyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBG bGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6IDEgY3VycmVu dAogICAgIyBSZXF1aXJlczogQ1lHUEtHX0lTT0lORlJBCiAgICAjICAgICBD WUdQS0dfSVNPSU5GUkEgPT0gY3VycmVudAogICAgIyAgIC0tPiAxCiAgICAj IFJlcXVpcmVzOiBDWUdJTlRfSVNPX0NUWVBFCiAgICAjICAgICBDWUdJTlRf SVNPX0NUWVBFID09IDEKICAgICMgICAtLT4gMQp9OwoKIyA+CiMgSW5saW5l IHZlcnNpb25zIG9mIDxzdGRsaWIuaD4gZnVuY3Rpb25zCiMgVGhpcyBvcHRp b24gY2hvb3NlcyB3aGV0aGVyIHNvbWUgb2YgdGhlCiMgcGFydGljdWxhcmx5 IHNpbXBsZSBzdGFuZGFyZCB1dGlsaXR5IGZ1bmN0aW9ucwojIGZyb20gPHN0 ZGxpYi5oPiBhcmUgYXZhaWxhYmxlIGFzIGlubGluZQojIGZ1bmN0aW9ucy4g VGhpcyBtYXkgaW1wcm92ZSBwZXJmb3JtYW5jZSwgYW5kIGFzCiMgdGhlIGZ1 bmN0aW9ucyBhcmUgc21hbGwsIG1heSBldmVuIGltcHJvdmUgY29kZQojIHNp emUuCiMKY2RsX2NvbXBvbmVudCBDWUdJTVBfTElCQ19TVERMSUJfSU5MSU5F UyB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUuCn07Cgoj ID4KIyBhYnMoKSAvIGxhYnMoKQojCmNkbF9vcHRpb24gQ1lHSU1QX0xJQkNf U1RETElCX0lOTElORV9BQlMgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMg Tm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0 byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVl X3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKICAgICMg UmVxdWlyZXM6ICBDWUdCTERfSVNPX1NURExJQl9BQlNfSEVBREVSID09ICAi PGN5Zy9saWJjL3N0ZGxpYi9hYnMuaW5sPiIgCiAgICAjICAgICBDWUdCTERf SVNPX1NURExJQl9BQlNfSEVBREVSID09IDxjeWcvbGliYy9zdGRsaWIvYWJz LmlubD4KICAgICMgICAtLT4gMQp9OwoKIyBkaXYoKSAvIGxkaXYoKQojCmNk bF9vcHRpb24gQ1lHSU1QX0xJQkNfU1RETElCX0lOTElORV9ESVYgewogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6ICBDWUdCTERfSVNPX1NU RExJQl9ESVZfSEVBREVSID09ICAiPGN5Zy9saWJjL3N0ZGxpYi9kaXYuaW5s PiIgCiAgICAjICAgICBDWUdCTERfSVNPX1NURExJQl9ESVZfSEVBREVSID09 IDxjeWcvbGliYy9zdGRsaWIvZGl2LmlubD4KICAgICMgICAtLT4gMQp9OwoK IyBhdG9mKCkgLyBhdG9pKCkgLyBhdG9sKCkKIwpjZGxfb3B0aW9uIENZR0lN UF9MSUJDX1NURExJQl9JTkxJTkVfQVRPWCB7CiAgICAjIEZsYXZvcjogYm9v bAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAg ICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTog MQogICAgIyBSZXF1aXJlczogIENZR0JMRF9JU09fU1RETElCX1NUUkNPTlZf SEVBREVSID09ICAiPGN5Zy9saWJjL3N0ZGxpYi9hdG94LmlubD4iIAogICAg IyAgICAgQ1lHQkxEX0lTT19TVERMSUJfU1RSQ09OVl9IRUFERVIgPT0gPGN5 Zy9saWJjL3N0ZGxpYi9hdG94LmlubD4KICAgICMgICAtLT4gMQp9OwoKIyA8 CiMgUmFuZG9tIG51bWJlciBnZW5lcmF0aW9uCiMgVGhlc2Ugb3B0aW9ucyBj b250cm9sIHRoZSBiZWhhdmlvdXIgb2YgdGhlCiMgZnVuY3Rpb25zIHJhbmQo KSwgc3JhbmQoKSBhbmQgcmFuZF9yKCkKIwpjZGxfY29tcG9uZW50IENZR1BL R19MSUJDX1JBTkQgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZh bHVlLgp9OwoKIyA+CiMgUGVyLXRocmVhZCByYW5kb20gc2VlZAojIFRoaXMg b3B0aW9uIGNvbnRyb2xzIHdoZXRoZXIgdGhlIHBzZXVkby1yYW5kb20KIyBu dW1iZXIgZ2VuZXJhdGlvbiBmdW5jdGlvbnMgcmFuZCgpIGFuZCBzcmFuZCgp CiMgaGF2ZSB0aGVpciBzdGF0ZSByZWNvcmRlZCBvbiBhIHBlci10aHJlYWQK IyBiYXNpcyByYXRoZXIgdGhhbiBnbG9iYWwuIElmIHRoaXMgb3B0aW9uIGlz CiMgZGlzYWJsZWQsIHNvbWUgcGVyLXRocmVhZCBzcGFjZSBjYW4gYmUgc2F2 ZWQuCiMgTm90ZSB0aGVyZSBpcyBhbHNvIGEgUE9TSVgtc3RhbmRhcmQgcmFu ZF9yKCkKIyBmdW5jdGlvbiB0byBhY2hpZXZlIGEgc2ltaWxhciBlZmZlY3Qg d2l0aCB1c2VyCiMgc3VwcG9ydC4gRW5hYmxpbmcgdGhpcyBvcHRpb24gd2ls bCB1c2Ugb25lIHNsb3QKIyBvZiBrZXJuZWwgcGVyLXRocmVhZCBkYXRhLiBZ b3Ugc2hvdWxkIGVuc3VyZSB5b3UKIyBoYXZlIGVub3VnaCBzbG90cyBjb25m aWd1cmVkIGZvciBhbGwgeW91cgojIHBlci10aHJlYWQgZGF0YS4KIwpjZGxf b3B0aW9uIENZR1NFTV9MSUJDX1BFUl9USFJFQURfUkFORCB7CiAgICAjIEZs YXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMAogICAgIyBSZXF1aXJlczogQ1lHVkFSX0tFUk5FTF9USFJF QURTX0RBVEEKICAgICMgICAgIENZR1ZBUl9LRVJORUxfVEhSRUFEU19EQVRB ID09IDEKICAgICMgICAtLT4gMQp9OwoKIyBSYW5kb20gbnVtYmVyIHNlZWQK IyBUaGlzIHNlbGVjdHMgdGhlIGluaXRpYWwgcmFuZG9tIG51bWJlciBzZWVk IGZvcgojIHJhbmQoKSdzIHBzZXVkby1yYW5kb20gbnVtYmVyIGdlbmVyYXRv ci4gRm9yCiMgc3RyaWN0IElTTyBzdGFuZGFyZCBjb21wbGlhbmNlLCB0aGlz IHNob3VsZCBiZSAxLAojIGFzIHBlciBzZWN0aW9uIDcuMTAuMi4yIG9mIHRo ZSBzdGFuZGFyZC4KIwpjZGxfb3B0aW9uIENZR05VTV9MSUJDX1JBTkRfU0VF RCB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMQogICAgIyBMZWdhbCB2YWx1ZXM6IDAg dG8gMHg3ZmZmZmZmZgp9OwoKIyBUcmFjaW5nIGxldmVsCiMgVHJhY2UgdmVy Ym9zaXR5IGxldmVsIGZvciBkZWJ1Z2dpbmcgdGhlIHJhbmQoKSwKIyBzcmFu ZCgpIGFuZCByYW5kX3IoKSBmdW5jdGlvbnMuIEluY3JlYXNlIHRoaXMKIyB2 YWx1ZSB0byBnZXQgYWRkaXRpb25hbCB0cmFjZSBvdXRwdXQuCiMKY2RsX29w dGlvbiBDWUdOVU1fTElCQ19SQU5EX1RSQUNFX0xFVkVMIHsKICAgICMgRmxh dm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0 IHZhbHVlOiAwCiAgICAjIExlZ2FsIHZhbHVlczogMCB0byAxCn07CgojIFNp bXBsZXN0IGltcGxlbWVudGF0aW9uCiMgVGhpcyBwcm92aWRlcyBhIHZlcnkg c2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIHJhbmQoKQojIHRoYXQgZG9lcyBu b3QgcGVyZm9ybSB3ZWxsIHdpdGggcmFuZG9tbmVzcyBpbiB0aGUKIyBsb3dl ciBzaWduaWZpY2FudCBiaXRzLiBIb3dldmVyIGl0IGlzIGV4Y2VwdGlvbmFs bHkKIyBmYXN0LiBJdCB1c2VzIHRoZSBzYW1wbGUgYWxnb3JpdGhtIGZyb20g dGhlIElTTyBDCiMgc3RhbmRhcmQgaXRzZWxmLgojCmNkbF9vcHRpb24gQ1lH SU1QX0xJQkNfUkFORF9TSU1QTEVTVCB7CiAgICAjIEZsYXZvcjogYm9vbAog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAp9 OwoKIyBTaW1wbGUgaW1wbGVtZW50YXRpb24gIzEKIyBUaGlzIHByb3ZpZGVz IGEgdmVyeSBzaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgcmFuZCgpCiMgYmFz ZWQgb24gdGhlIHNpbXBsZXN0IGltcGxlbWVudGF0aW9uIGFib3ZlLiBIb3dl dmVyCiMgaXQgZG9lcyB0cnkgdG8gd29yayBhcm91bmQgdGhlIGxhY2sgb2Yg cmFuZG9tbmVzcwojIGluIHRoZSBsb3dlciBzaWduaWZpY2FudCBiaXRzLCBh dCB0aGUgZXhwZW5zZSBvZiBhCiMgbGl0dGxlIHNwZWVkLgojCmNkbF9vcHRp b24gQ1lHSU1QX0xJQkNfUkFORF9TSU1QTEUxIHsKICAgICMgRmxhdm9yOiBi b29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAxCn07CgojIEtudXRoIGltcGxlbWVudGF0aW9uICMxCiMgVGhpcyBpbXBs ZW1lbnRzIGEgc2xpZ2h0bHkgbW9yZSBjb21wbGV4IGFsZ29yaXRobQojIHB1 Ymxpc2hlZCBpbiBEb25hbGQgRS4gS251dGgncyBBcnQgb2YgQ29tcHV0ZXIK IyBQcm9ncmFtbWluZyBWb2wuMiBzZWN0aW9uIDMuNiAocC4xODUgaW4gdGhl IDNyZCBlZC4pLgojIFRoaXMgcHJvZHVjZXMgYmV0dGVyIHJhbmRvbSBudW1i ZXJzIHRoYW4gdGhlCiMgc2ltcGxlc3QgYXBwcm9hY2ggYnV0IGlzIHNsb3dl ci4KIwpjZGxfb3B0aW9uIENZR0lNUF9MSUJDX1JBTkRfS05VVEgxIHsKICAg ICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAwCn07CgojIDwKIyBQcm92aWRlcyBzdHJ0b2QoKQoj IFRoaXMgb3B0aW9uIGFsbG93cyB1c2Ugb2YgdGhlIHV0aWxpdHkgZnVuY3Rp b24KIyBzdHJ0b2QoKSAoYW5kIGNvbnNlcXVlbnRseSBhdG9mKCkpIHRvIGNv bnZlcnQKIyBmcm9tIHN0cmluZyB0byBkb3VibGUgcHJlY2lzaW9uIGZsb2F0 aW5nIHBvaW50CiMgbnVtYmVycy4gRGlzYWJsaW5nIHRoaXMgb3B0aW9uIHJl bW92ZXMgdGhlCiMgZGVwZW5kZW5jeSBvbiB0aGUgbWF0aCBsaWJyYXJ5IHBh Y2thZ2UuCiMKY2RsX29wdGlvbiBDWUdGVU5fTElCQ19zdHJ0b2QgewogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6ICAwICE9IENZR1BLR19MSUJNIAogICAgIyAgICAgQ1lH UEtHX0xJQk0gPT0gY3VycmVudAogICAgIyAgIC0tPiAxCiAgICAjIFJlcXVp cmVzOiBDWUdQS0dfTElCTQogICAgIyAgICAgQ1lHUEtHX0xJQk0gPT0gY3Vy cmVudAogICAgIyAgIC0tPiAxCn07CgojIGJzZWFyY2goKSB0cmFjaW5nIGxl dmVsCiMgVHJhY2UgdmVyYm9zaXR5IGxldmVsIGZvciBkZWJ1Z2dpbmcgdGhl IDxzdGRsaWIuaD4KIyBiaW5hcnkgc2VhcmNoIGZ1bmN0aW9uIGJzZWFyY2go KS4gSW5jcmVhc2UgdGhpcwojIHZhbHVlIHRvIGdldCBhZGRpdGlvbmFsIHRy YWNlIG91dHB1dC4KIwpjZGxfb3B0aW9uIENZR05VTV9MSUJDX0JTRUFSQ0hf VFJBQ0VfTEVWRUwgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNl ciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92 aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKICAgICMgTGVnYWwg dmFsdWVzOiAwIHRvIDEKfTsKCiMgcXNvcnQoKSB0cmFjaW5nIGxldmVsCiMg VHJhY2UgdmVyYm9zaXR5IGxldmVsIGZvciBkZWJ1Z2dpbmcgdGhlIDxzdGRs aWIuaD4KIyBxdWlja3NvcnQgZnVuY3Rpb24gcXNvcnQoKS4gSW5jcmVhc2Ug dGhpcyB2YWx1ZQojIHRvIGdldCBhZGRpdGlvbmFsIHRyYWNlIG91dHB1dC4K IwpjZGxfb3B0aW9uIENZR05VTV9MSUJDX1FTT1JUX1RSQUNFX0xFVkVMIHsK ICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29t bWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAj IHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAg IyBEZWZhdWx0IHZhbHVlOiAwCiAgICAjIExlZ2FsIHZhbHVlczogMCB0byAx Cn07CgojIEMgbGlicmFyeSBzdGRsaWIgYnVpbGQgb3B0aW9ucwojIFBhY2th Z2Ugc3BlY2lmaWMgYnVpbGQgb3B0aW9ucyBpbmNsdWRpbmcgY29udHJvbCBv dmVyCiMgY29tcGlsZXIgZmxhZ3MgdXNlZCBvbmx5IGluIGJ1aWxkaW5nIHRo aXMgcGFja2FnZSwKIyBhbmQgZGV0YWlscyBvZiB3aGljaCB0ZXN0cyBhcmUg YnVpbHQuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfTElCQ19TVERMSUJfT1BU SU9OUyB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUuCn07 CgojID4KIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzCiMgVGhpcyBvcHRp b24gbW9kaWZpZXMgdGhlIHNldCBvZiBjb21waWxlciBmbGFncyBmb3IKIyBi dWlsZGluZyB0aGlzIHBhY2thZ2UuIFRoZXNlIGZsYWdzIGFyZSB1c2VkIGlu IGFkZGl0aW9uCiMgdG8gdGhlIHNldCBvZiBnbG9iYWwgZmxhZ3MuCiMKY2Rs X29wdGlvbiBDWUdQS0dfTElCQ19TVERMSUJfQ0ZMQUdTX0FERCB7CiAgICAj IEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlICIiCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6ICIiCn07CgojIFN1cHByZXNzZWQgY29tcGlsZXIgZmxh Z3MKIyBUaGlzIG9wdGlvbiBtb2RpZmllcyB0aGUgc2V0IG9mIGNvbXBpbGVy IGZsYWdzIGZvcgojIGJ1aWxkaW5nIHRoaXMgcGFja2FnZS4gVGhlc2UgZmxh Z3MgYXJlIHJlbW92ZWQgZnJvbQojIHRoZSBzZXQgb2YgZ2xvYmFsIGZsYWdz IGlmIHByZXNlbnQuCiMKY2RsX29wdGlvbiBDWUdQS0dfTElCQ19TVERMSUJf Q0ZMQUdTX1JFTU9WRSB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICIiCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICIiCn07CgojIEMg bGlicmFyeSBzdGRsaWIgdGVzdHMKIyBUaGlzIG9wdGlvbiBzcGVjaWZpZXMg dGhlIHNldCBvZiB0ZXN0cyBmb3IgdGhpcyBwYWNrYWdlLgojCmNkbF9vcHRp b24gQ1lHUEtHX0xJQkNfU1RETElCX1RFU1RTIHsKICAgICMgQ2FsY3VsYXRl ZCB2YWx1ZTogICJ0ZXN0cy9hYnMgdGVzdHMvYXRvaSB0ZXN0cy9hdG9sIHRl c3RzL2JzZWFyY2ggdGVzdHMvZGl2IHRlc3RzL2dldGVudiB0ZXN0cy9sYWJz IHRlc3RzL2xkaXYgdGVzdHMvcXNvcnQgdGVzdHMvcmFuZDEgdGVzdHMvcmFu ZDIgdGVzdHMvcmFuZDMgdGVzdHMvcmFuZDQgdGVzdHMvc3JhbmQgdGVzdHMv c3RydG9sIHRlc3RzL3N0cnRvdWwiIAogICAgIyBGbGF2b3I6IGRhdGEKICAg ICMgQ3VycmVudF92YWx1ZTogdGVzdHMvYWJzIHRlc3RzL2F0b2kgdGVzdHMv YXRvbCB0ZXN0cy9ic2VhcmNoIHRlc3RzL2RpdiB0ZXN0cy9nZXRlbnYgdGVz dHMvbGFicyB0ZXN0cy9sZGl2IHRlc3RzL3Fzb3J0IHRlc3RzL3JhbmQxIHRl c3RzL3JhbmQyIHRlc3RzL3JhbmQzIHRlc3RzL3JhbmQ0IHRlc3RzL3NyYW5k IHRlc3RzL3N0cnRvbCB0ZXN0cy9zdHJ0b3VsCn07CgojIDwKIyA8CiMgSVNP IEMgbGlicmFyeSBzdHJpbmcgZnVuY3Rpb25zCiMgZG9jOiByZWRpcmVjdC90 aGUtaXNvLXN0YW5kYXJkLWMtYW5kLW1hdGgtbGlicmFyaWVzLmh0bWwKIyBU aGlzIHBhY2thZ2UgcHJvdmlkZXMgc3RyaW5nIGZ1bmN0aW9ucyBzcGVjaWZp ZWQgYnkgdGhlCiMgSVNPIEMgc3RhbmRhcmQgLSBJU08vSUVDIDk4OTk6MTk5 MC4KIwpjZGxfcGFja2FnZSBDWUdQS0dfTElCQ19TVFJJTkcgewogICAgIyBQ YWNrYWdlcyBjYW5ub3QgYmUgYWRkZWQgb3IgcmVtb3ZlZCwgbm9yIGNhbiB0 aGVpciB2ZXJzaW9uIGJlIGNoYW5nZWQsCiAgICAjIHNpbXBseSBieSBlZGl0 aW5nIHRoZWlyIHZhbHVlLiBJbnN0ZWFkIHRoZSBhcHByb3ByaWF0ZSBjb25m aWd1cmF0aW9uCiAgICAjIHNob3VsZCBiZSB1c2VkIHRvIHBlcmZvcm0gdGhl c2UgYWN0aW9ucy4KCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlm aWVkIGhlcmUuCiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgQ3VycmVu dCB2YWx1ZTogMSBjdXJyZW50CiAgICAjIFJlcXVpcmVzOiAgQ1lHQkxEX0lT T19TVFJJTkdfTE9DQUxFX0ZVTkNTX0hFQURFUiA9PSAgIjxjeWcvbGliYy9z dHJpbmcvc3RyaW5nLmg+IiAKICAgICMgICAgIENZR0JMRF9JU09fU1RSSU5H X0xPQ0FMRV9GVU5DU19IRUFERVIgPT0gPGN5Zy9saWJjL3N0cmluZy9zdHJp bmcuaD4KICAgICMgICAtLT4gMQogICAgIyBSZXF1aXJlczogIENZR0JMRF9J U09fU1RSSU5HX01FTUZVTkNTX0hFQURFUiA9PSAgIjxjeWcvbGliYy9zdHJp bmcvc3RyaW5nLmg+IiAKICAgICMgICAgIENZR0JMRF9JU09fU1RSSU5HX01F TUZVTkNTX0hFQURFUiA9PSA8Y3lnL2xpYmMvc3RyaW5nL3N0cmluZy5oPgog ICAgIyAgIC0tPiAxCiAgICAjIFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19TVFJJ TkdfU1RSRlVOQ1NfSEVBREVSID09ICAiPGN5Zy9saWJjL3N0cmluZy9zdHJp bmcuaD4iIAogICAgIyAgICAgQ1lHQkxEX0lTT19TVFJJTkdfU1RSRlVOQ1Nf SEVBREVSID09IDxjeWcvbGliYy9zdHJpbmcvc3RyaW5nLmg+CiAgICAjICAg LS0+IDEKICAgICMgUmVxdWlyZXM6ICBDWUdCTERfSVNPX1NUUlRPS19SX0hF QURFUiA9PSAgIjxjeWcvbGliYy9zdHJpbmcvc3RyaW5nLmg+IiAKICAgICMg ICAgIENZR0JMRF9JU09fU1RSVE9LX1JfSEVBREVSID09IDxjeWcvbGliYy9z dHJpbmcvc3RyaW5nLmg+CiAgICAjICAgLS0+IDEKICAgICMgUmVxdWlyZXM6 IENZR1BLR19JU09JTkZSQQogICAgIyAgICAgQ1lHUEtHX0lTT0lORlJBID09 IGN1cnJlbnQKICAgICMgICAtLT4gMQp9OwoKIyA+CiMgSW5saW5lIHZlcnNp b25zIG9mIDxzdHJpbmcuaD4gZnVuY3Rpb25zCiMgVGhpcyBvcHRpb24gY2hv b3NlcyB3aGV0aGVyIHNvbWUgb2YgdGhlCiMgcGFydGljdWxhcmx5IHNpbXBs ZSBzdHJpbmcgZnVuY3Rpb25zIGZyb20KIyA8c3RyaW5nLmg+IGFyZSBhdmFp bGFibGUgYXMgaW5saW5lCiMgZnVuY3Rpb25zLiBUaGlzIG1heSBpbXByb3Zl IHBlcmZvcm1hbmNlLCBhbmQgYXMKIyB0aGUgZnVuY3Rpb25zIGFyZSBzbWFs bCwgbWF5IGV2ZW4gaW1wcm92ZSBjb2RlCiMgc2l6ZS4KIwpjZGxfb3B0aW9u IENZR0lNUF9MSUJDX1NUUklOR19JTkxJTkVTIHsKICAgICMgRmxhdm9yOiBi b29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAxCn07CgojIE9wdGltaXplIHN0cmluZyBmdW5jdGlvbnMgZm9yIGNvZGUg c2l6ZQojIFRoaXMgb3B0aW9uIHRyaWVzIHRvIHJlZHVjZSBzdHJpbmcgZnVu Y3Rpb24KIyBjb2RlIHNpemUgYXQgdGhlIGV4cGVuc2Ugb2YgZXhlY3V0aW9u IHNwZWVkLiBUaGUKIyBzYW1lIGVmZmVjdCBjYW4gYmUgcHJvZHVjZWQgaWYg dGhlIGNvZGUgaXMKIyBjb21waWxlZCB3aXRoIHRoZSAtT3Mgb3B0aW9uIHRv IHRoZSBjb21waWxlci4KIwpjZGxfb3B0aW9uIENZR0lNUF9MSUJDX1NUUklO R19QUkVGRVJfU01BTExfVE9fRkFTVCB7CiAgICAjIEZsYXZvcjogYm9vbAog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAp9 OwoKIyBzdHJ0b2sKIyBUaGVzZSBvcHRpb25zIGNvbnRyb2wgdGhlIGJlaGF2 aW91ciBvZiB0aGUKIyBzdHJ0b2soKSBhbmQgc3RydG9rX3IoKSBzdHJpbmcg dG9rZW5pemF0aW9uCiMgZnVuY3Rpb25zLgojCmNkbF9jb21wb25lbnQgQ1lH UEtHX0xJQkNfU1RSSU5HX1NUUlRPSyB7CiAgICAjIFRoZXJlIGlzIG5vIGFz c29jaWF0ZWQgdmFsdWUuCn07CgojID4KIyBQZXItdGhyZWFkIHN0cnRvaygp CiMgVGhpcyBvcHRpb24gY29udHJvbHMgd2hldGhlciB0aGUgc3RyaW5nIGZ1 bmN0aW9uCiMgc3RydG9rKCkgaGFzIGl0cyBzdGF0ZSByZWNvcmRlZCBvbiBh IHBlci10aHJlYWQKIyBiYXNpcyByYXRoZXIgdGhhbiBnbG9iYWwuIElmIHRo aXMgb3B0aW9uIGlzCiMgZGlzYWJsZWQsIHNvbWUgcGVyLXRocmVhZCBzcGFj ZSBjYW4gYmUgc2F2ZWQuCiMgTm90ZSB0aGVyZSBpcyBhbHNvIGEgUE9TSVgt c3RhbmRhcmQgc3RydG9rX3IoKQojIGZ1bmN0aW9uIHRvIGFjaGlldmUgYSBz aW1pbGFyIGVmZmVjdCB3aXRoIHVzZXIKIyBzdXBwb3J0LiBFbmFibGluZyB0 aGlzIG9wdGlvbiB3aWxsIHVzZSBvbmUgc2xvdAojIG9mIGtlcm5lbCBwZXIt dGhyZWFkIGRhdGEuIFlvdSBzaG91bGQgZW5zdXJlIHlvdQojIGhhdmUgZW5v dWdoIHNsb3RzIGNvbmZpZ3VyZWQgZm9yIGFsbCB5b3VyCiMgcGVyLXRocmVh ZCBkYXRhLgojCmNkbF9vcHRpb24gQ1lHU0VNX0xJQkNfU1RSSU5HX1BFUl9U SFJFQURfU1RSVE9LIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVz ZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJv dmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3Vy Y2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCiAgICAjIFJlcXVp cmVzOiBDWUdWQVJfS0VSTkVMX1RIUkVBRFNfREFUQQogICAgIyAgICAgQ1lH VkFSX0tFUk5FTF9USFJFQURTX0RBVEEgPT0gMQogICAgIyAgIC0tPiAxCn07 CgojIFRyYWNpbmcgbGV2ZWwKIyBUcmFjZSB2ZXJib3NpdHkgbGV2ZWwgZm9y IGRlYnVnZ2luZyB0aGUgPHN0cmluZy5oPgojIGZ1bmN0aW9ucyBzdHJ0b2so KSBhbmQgc3RydG9rX3IoKS4gSW5jcmVhc2UgdGhpcwojIHZhbHVlIHRvIGdl dCBhZGRpdGlvbmFsIHRyYWNlIG91dHB1dC4KIwpjZGxfb3B0aW9uIENZR05V TV9MSUJDX1NUUklOR19TVFJUT0tfVFJBQ0VfTEVWRUwgewogICAgIyBGbGF2 b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAKICAgICMgTGVnYWwgdmFsdWVzOiAwIHRvIDEKfTsKCiMgPAoj IEMgbGlicmFyeSBzdHJpbmcgZnVuY3Rpb25zIGJ1aWxkIG9wdGlvbnMKIyBQ YWNrYWdlIHNwZWNpZmljIGJ1aWxkIG9wdGlvbnMgaW5jbHVkaW5nIGNvbnRy b2wgb3ZlcgojIGNvbXBpbGVyIGZsYWdzIHVzZWQgb25seSBpbiBidWlsZGlu ZyB0aGlzIHBhY2thZ2UsCiMgYW5kIGRldGFpbHMgb2Ygd2hpY2ggdGVzdHMg YXJlIGJ1aWx0LgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0xJQkNfU1RSSU5H X09QVElPTlMgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVl Lgp9OwoKIyA+CiMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncwojIFRoaXMg b3B0aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9y CiMgYnVpbGRpbmcgdGhlIEMgbGlicmFyeS4gVGhlc2UgZmxhZ3MgYXJlIHVz ZWQgaW4gYWRkaXRpb24KIyB0byB0aGUgc2V0IG9mIGdsb2JhbCBmbGFncy4K IwpjZGxfb3B0aW9uIENZR1BLR19MSUJDX1NUUklOR19DRkxBR1NfQUREIHsK ICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29t bWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAj IHVzZXJfdmFsdWUgIiIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAg ICMgRGVmYXVsdCB2YWx1ZTogIiIKfTsKCiMgU3VwcHJlc3NlZCBjb21waWxl ciBmbGFncwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29t cGlsZXIgZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhlIEMgbGlicmFyeS4gVGhl c2UgZmxhZ3MgYXJlIHJlbW92ZWQgZnJvbQojIHRoZSBzZXQgb2YgZ2xvYmFs IGZsYWdzIGlmIHByZXNlbnQuCiMKY2RsX29wdGlvbiBDWUdQS0dfTElCQ19T VFJJTkdfQ0ZMQUdTX1JFTU9WRSB7CiAgICAjIEZsYXZvcjogZGF0YQogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICIiCiAgICAjIHZh bHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICIiCn07 CgojIEMgbGlicmFyeSBzdHJpbmcgZnVuY3Rpb24gdGVzdHMKIyBUaGlzIG9w dGlvbiBzcGVjaWZpZXMgdGhlIHNldCBvZiB0ZXN0cyBmb3IgdGhlIEMgbGli cmFyeQojIHN0cmluZyBmdW5jdGlvbnMuCiMKY2RsX29wdGlvbiBDWUdQS0df TElCQ19TVFJJTkdfVEVTVFMgewogICAgIyBDYWxjdWxhdGVkIHZhbHVlOiAg InRlc3RzL21lbWNociB0ZXN0cy9tZW1jbXAxIHRlc3RzL21lbWNtcDIgdGVz dHMvbWVtY3B5MSB0ZXN0cy9tZW1jcHkyIHRlc3RzL21lbW1vdmUxIHRlc3Rz L21lbW1vdmUyIHRlc3RzL21lbXNldCB0ZXN0cy9zdHJjYXQxIHRlc3RzL3N0 cmNhdDIgdGVzdHMvc3RyY2hyIHRlc3RzL3N0cmNtcDEgdGVzdHMvc3RyY21w MiB0ZXN0cy9zdHJjb2xsMSB0ZXN0cy9zdHJjb2xsMiB0ZXN0cy9zdHJjcHkx IHRlc3RzL3N0cmNweTIgdGVzdHMvc3RyY3NwbiB0ZXN0cy9zdHJjc3BuIHRl c3RzL3N0cmxlbiB0ZXN0cy9zdHJuY2F0MSB0ZXN0cy9zdHJuY2F0MiB0ZXN0 cy9zdHJuY3B5MSB0ZXN0cy9zdHJuY3B5MiB0ZXN0cy9zdHJwYnJrIHRlc3Rz L3N0cnJjaHIgdGVzdHMvc3Ryc3BuIHRlc3RzL3N0cnN0ciB0ZXN0cy9zdHJ0 b2sgdGVzdHMvc3RyeGZybTEgdGVzdHMvc3RyeGZybTIiIAogICAgIyBGbGF2 b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogdGVzdHMvbWVtY2hyIHRl c3RzL21lbWNtcDEgdGVzdHMvbWVtY21wMiB0ZXN0cy9tZW1jcHkxIHRlc3Rz L21lbWNweTIgdGVzdHMvbWVtbW92ZTEgdGVzdHMvbWVtbW92ZTIgdGVzdHMv bWVtc2V0IHRlc3RzL3N0cmNhdDEgdGVzdHMvc3RyY2F0MiB0ZXN0cy9zdHJj aHIgdGVzdHMvc3RyY21wMSB0ZXN0cy9zdHJjbXAyIHRlc3RzL3N0cmNvbGwx IHRlc3RzL3N0cmNvbGwyIHRlc3RzL3N0cmNweTEgdGVzdHMvc3RyY3B5MiB0 ZXN0cy9zdHJjc3BuIHRlc3RzL3N0cmNzcG4gdGVzdHMvc3RybGVuIHRlc3Rz L3N0cm5jYXQxIHRlc3RzL3N0cm5jYXQyIHRlc3RzL3N0cm5jcHkxIHRlc3Rz L3N0cm5jcHkyIHRlc3RzL3N0cnBicmsgdGVzdHMvc3RycmNociB0ZXN0cy9z dHJzcG4gdGVzdHMvc3Ryc3RyIHRlc3RzL3N0cnRvayB0ZXN0cy9zdHJ4ZnJt MSB0ZXN0cy9zdHJ4ZnJtMgp9OwoKIyA8CiMgPAojIElTTyBDIGxpYnJhcnkg ZGF0ZSBhbmQgdGltZSBmdW5jdGlvbnMKIyBkb2M6IHJlZGlyZWN0L3RoZS1p c28tc3RhbmRhcmQtYy1hbmQtbWF0aC1saWJyYXJpZXMuaHRtbAojIFRoaXMg cGFja2FnZSBwcm92aWRlcyB0aW1lIGZ1bmN0aW9ucyBzcGVjaWZpZWQgYnkg dGhlCiMgSVNPIEMgc3RhbmRhcmQgLSBJU08vSUVDIDk4OTk6MTk5MC4KIwpj ZGxfcGFja2FnZSBDWUdQS0dfTElCQ19USU1FIHsKICAgICMgUGFja2FnZXMg Y2Fubm90IGJlIGFkZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVy c2lvbiBiZSBjaGFuZ2VkLAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVp ciB2YWx1ZS4gSW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlv bgogICAgIyBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlv bnMuCgogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJl LgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6 IDEgY3VycmVudAogICAgIyBSZXF1aXJlczogIENZR0JMRF9JU09fQ19USU1F X1RZUEVTX0hFQURFUiA9PSAiPGN5Zy9saWJjL3RpbWUvdGltZS5oPiIgCiAg ICAjICAgICBDWUdCTERfSVNPX0NfVElNRV9UWVBFU19IRUFERVIgPT0gPGN5 Zy9saWJjL3RpbWUvdGltZS5oPgogICAgIyAgIC0tPiAxCiAgICAjIFJlcXVp cmVzOiAgQ1lHQkxEX0lTT19DX0NMT0NLX0ZVTkNTX0hFQURFUiA9PSAgIjxj eWcvbGliYy90aW1lL3RpbWUuaD4iIAogICAgIyAgICAgQ1lHQkxEX0lTT19D X0NMT0NLX0ZVTkNTX0hFQURFUiA9PSA8Y3lnL2xpYmMvdGltZS90aW1lLmg+ CiAgICAjICAgLS0+IDEKICAgICMgUmVxdWlyZXM6IENZR1BLR19JU09JTkZS QQogICAgIyAgICAgQ1lHUEtHX0lTT0lORlJBID09IGN1cnJlbnQKICAgICMg ICAtLT4gMQogICAgIyBSZXF1aXJlczogQ1lHSU5UX0lTT19ESVYKICAgICMg ICAgIENZR0lOVF9JU09fRElWID09IDEKICAgICMgICAtLT4gMQogICAgIyBS ZXF1aXJlczogQ1lHSU5UX0lTT19BQlMKICAgICMgICAgIENZR0lOVF9JU09f QUJTID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBw cm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIHBh Y2thZ2UgQ1lHUEtHX05FVAogICAgIyAgICAgUmVxdWlyZXM6IENZR1BLR19M SUJDX1RJTUUKfTsKCiMgPgojIFdvcmtpbmcgY2xvY2soKSBmdW5jdGlvbgoj IFRoaXMgb3B0aW9uIGNvbnRyb2xzIHdoZXRoZXIgY2xvY2soKSB3aWxsCiMg YWN0dWFsbHkgdHJ5IGFuZCBkZXRlcm1pbmUgdGhlIHByb2Nlc3MgdGltZQoj IHVzYWdlLiBXaXRoIHRoaXMgb3B0aW9uIGRpc2FibGVkLCBjbG9jaygpIGRv ZXMKIyBub3QgZGlzYXBwZWFyLCBidXQgd2lsbCBwZXJtYW5lbnRseSByZXR1 cm4KIyAoY2xvY2tfdCktMSBhcyBtYW5kYXRlZCBieSB0aGUgSVNPIEMgc3Rh bmRhcmQuCiMKY2RsX29wdGlvbiBDWUdTRU1fTElCQ19USU1FX0NMT0NLX1dP UktJTkcgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6IENZ R0ZVTl9LRVJORUxfVEhSRUFEU19USU1FUgogICAgIyAgICAgQ1lHRlVOX0tF Uk5FTF9USFJFQURTX1RJTUVSID09IDEKICAgICMgICAtLT4gMQogICAgIyBS ZXF1aXJlczogQ1lHVkFSX0tFUk5FTF9DT1VOVEVSU19DTE9DSwogICAgIyAg ICAgQ1lHVkFSX0tFUk5FTF9DT1VOVEVSU19DTE9DSyA9PSAxCiAgICAjICAg LS0+IDEKfTsKCiMgV29ya2luZyB0aW1lKCkgZnVuY3Rpb24KIyBUaGlzIG9w dGlvbiBjb250cm9scyB3aGV0aGVyIHRpbWUoKSB3aWxsCiMgYWN0dWFsbHkg dHJ5IGFuZCBkZXRlcm1pbmUgdGhlIGN1cnJlbnQgY2FsZW5kYXIKIyB0aW1l LiBXaXRoIHRoaXMgb3B0aW9uIGRpc2FibGVkLCB0aW1lKCkgZG9lcwojIG5v dCBkaXNhcHBlYXIsIGJ1dCB3aWxsIHBlcm1hbmVudGx5IHJldHVybgojICh0 aW1lX3QpLTEgYXMgbWFuZGF0ZWQgYnkgdGhlIElTTyBDIHN0YW5kYXJkLgoj CmNkbF9vcHRpb24gQ1lHU0VNX0xJQkNfVElNRV9USU1FX1dPUktJTkcgewog ICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAj IERlZmF1bHQgdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6IENZR1BLR19JT19X QUxMQ0xPQ0sKICAgICMgICAgIENZR1BLR19JT19XQUxMQ0xPQ0sgPT0gY3Vy cmVudAogICAgIyAgIC0tPiAxCn07CgojIFdvcmtpbmcgY3lnX2xpYmNfdGlt ZV9zZXR0aW1lKCkgZnVuY3Rpb24KIyBUaGlzIG9wdGlvbiBjb250cm9scyB3 aGV0aGVyIGN5Z19saWJjX3RpbWVfc2V0dGltZSgpCiMgd2lsbCBhY3R1YWxs eSB0cnkgYW5kIHNldCB0aGUgY3VycmVudCBjYWxlbmRhcgojIHRpbWUuIFdp dGggdGhpcyBvcHRpb24gZGlzYWJsZWQsCiMgY3lnX2xpYmNfdGltZV9zZXR0 aW1lKCkgZG9lcyBub3QgZGlzYXBwZWFyLCBidXQKIyB3aWxsIHBlcm1hbmVu dGx5IHJldHVybiBhbiBlcnJvci4KIwpjZGxfb3B0aW9uIENZR1NFTV9MSUJD X1RJTUVfU0VUVElNRV9XT1JLSU5HIHsKICAgICMgRmxhdm9yOiBib29sCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCiAg ICAjIFJlcXVpcmVzOiBDWUdQS0dfSU9fV0FMTENMT0NLCiAgICAjICAgICBD WUdQS0dfSU9fV0FMTENMT0NLID09IGN1cnJlbnQKICAgICMgICAtLT4gMQp9 OwoKIyBQT1NJWCB0aW1lIGZ1bmN0aW9ucwojIEVuYWJsaW5nIHRoaXMgb3B0 aW9uIGFsbG93cyB0aGUgdXNlIG9mIHRoZQojIGZvbGxvd2luZyBmdW5jdGlv bnMgZGVmaW5lZCBpbiBQT1NJWCAxMDAzLjE6CiMgYXNjdGltZV9yKCksIGN0 aW1lX3IoKSwgZ210aW1lX3IoKSwgYW5kCiMgbG9jYWx0aW1lX3IoKS4KIwpj ZGxfb3B0aW9uIENZR0ZVTl9MSUJDX1RJTUVfUE9TSVggewogICAgIyBGbGF2 b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUg YWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHSU1QX0xJ QkNfVElNRV9BU0NUSU1FX1JfSU5MSU5FCiAgICAjICAgICBSZXF1aXJlczog Q1lHRlVOX0xJQkNfVElNRV9QT1NJWAogICAgIyBvcHRpb24gQ1lHSU1QX0xJ QkNfVElNRV9DVElNRV9SX0lOTElORQogICAgIyAgICAgUmVxdWlyZXM6IENZ R0ZVTl9MSUJDX1RJTUVfUE9TSVgKICAgICMgb3B0aW9uIENZR0lNUF9MSUJD X1RJTUVfR01USU1FX1JfSU5MSU5FCiAgICAjICAgICBSZXF1aXJlczogQ1lH RlVOX0xJQkNfVElNRV9QT1NJWAogICAgIyBvcHRpb24gQ1lHSU1QX0xJQkNf VElNRV9MT0NBTFRJTUVfUl9JTkxJTkUKICAgICMgICAgIFJlcXVpcmVzOiBD WUdGVU5fTElCQ19USU1FX1BPU0lYCn07CgojIFRpbWUgem9uZSBvZmZzZXRz CiMgVGhlc2Ugb3B0aW9ucyBjb250cm9sIHRoZSBkZWZhdWx0IFNUYW5kYXJE IChTVEQpCiMgYW5kIERheWxpZ2h0IFNhdmluZ3MgVGltZSAoRFNUKQojIHRp bWUgb2Zmc2V0cyBzbyB0aGF0IGRhdGVzIGNhbiBiZSBzZXQgY29ycmVjdGx5 CiMgZm9yIHRoZSBsb2NhbCBlbnZpcm9ubWVudC4KIwpjZGxfY29tcG9uZW50 IENZR1BLR19MSUJDX1RJTUVfWk9ORVMgewogICAgIyBUaGVyZSBpcyBubyBh c3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgRGVmYXVsdCBEYXlsaWdodCBT YXZpbmdzIFRpbWUgc3RhdGUKIyBUaGlzIG9wdGlvbiBjb250cm9scyB3aGV0 aGVyIHRoZSBpbml0aWFsCiMgdGltZSBlbnZpcm9ubWVudCBpcyBzZXQgdXAg YXMgU1RELCBEU1Qgb3IKIyB1bmtub3duLiBVc2UgdGhlIHZhbHVlIDEgZm9y IERTVCwgMCBmb3IgU1RELCAKIyBhbmQgKC0xKSBmb3IgdW5rbm93bi4gVGhp cyBjYW4gYWxzbyBiZSBzZXQgYXQKIyBydW50aW1lIHVzaW5nIHRoZSBjeWdf bGliY190aW1lX3NldGRzdCgpCiMgZnVuY3Rpb24uCiMKY2RsX29wdGlvbiBD WUdOVU1fTElCQ19USU1FX0RTVF9ERUZBVUxUX1NUQVRFIHsKICAgICMgRmxh dm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgLTEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogLTEKICAgICMgTGVnYWwgdmFsdWVzOiAtMSB0byAxCn07Cgoj IERlZmF1bHQgU3RhbmRhcmQgVGltZSBvZmZzZXQKIyBUaGlzIG9wdGlvbiBj b250cm9scyB0aGUgb2Zmc2V0IGZyb20gVVRDIGluCiMgc2Vjb25kcyB3aGVu IGluIGxvY2FsIFN0YW5kYXJkIFRpbWUuIFRoaXMKIyB2YWx1ZSBjYW4gYmUg cG9zaXRpdmUgb3IgbmVnYXRpdmUuIEl0CiMgY2FuIGFsc28gYmUgc2V0IGF0 IHJ1biB0aW1lIHVzaW5nIHRoZQojIGN5Z19saWJjX3RpbWVfc2V0em9uZW9m ZnNldHMoKSBmdW5jdGlvbi4KIwpjZGxfb3B0aW9uIENZR05VTV9MSUJDX1RJ TUVfU1REX0RFRkFVTFRfT0ZGU0VUIHsKICAgICMgRmxhdm9yOiBkYXRhCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCiAg ICAjIExlZ2FsIHZhbHVlczogLTkwMDAwIHRvIDkwMDAwCn07CgojIERlZmF1 bHQgRGF5bGlnaHQgU2F2aW5ncyBUaW1lIG9mZnNldAojIFRoaXMgb3B0aW9u IGNvbnRyb2xzIHRoZSBvZmZzZXQgZnJvbSBVVEMgaW4KIyBzZWNvbmRzIHdo ZW4gaW4gbG9jYWwgRGF5bGlnaHQgU2F2aW5ncyBUaW1lLiBUaGlzCiMgdmFs dWUgY2FuIGJlIHBvc2l0aXZlIG9yIG5lZ2F0aXZlLiBJdAojIGNhbiBhbHNv IGJlIHNldCBhdCBydW4gdGltZSB1c2luZyB0aGUKIyBjeWdfbGliY190aW1l X3NldHpvbmVvZmZzZXRzKCkgZnVuY3Rpb24uCiMKY2RsX29wdGlvbiBDWUdO VU1fTElCQ19USU1FX0RTVF9ERUZBVUxUX09GRlNFVCB7CiAgICAjIEZsYXZv cjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDM2MDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMzYwMAogICAgIyBMZWdhbCB2YWx1ZXM6IC05MDAwMCB0byA5 MDAwMAp9OwoKIyA8CiMgSW5saW5lIGZ1bmN0aW9ucwojIFRoZXNlIG9wdGlv bnMgY29udHJvbCB3aGV0aGVyIGNlcnRhaW4gZnVuY3Rpb25zCiMgYXJlIGF2 YWlsYWJsZSBpbiBpbmxpbmUgZm9ybS4gVGhpcyBtYXkgbGVhZCB0bwojIGZh c3RlciBjb2RlIGF0IHRoZSBleHBlbnNlIG9mIGNvZGUgc3BhY2UuIEJ1dCBm b3IKIyBzb21lIGZ1bmN0aW9ucywgb3Igc29tZSBmdW5jdGlvbnMgd2l0aCBj b25zdGFudAojIGFyZ3VtZW50cywgaXQgbWF5IGluIGZhY3QgbGVhZCB0byBz bWFsbGVyIGNvZGUuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfTElCQ19USU1F X0lOTElORVMgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVl Lgp9OwoKIyA+CiMgYXNjdGltZSgpCiMgQWxsb3cgdGhlIGFzY3RpbWUoKSBm dW5jdGlvbiB0byBiZSBpbmxpbmVkCiMKY2RsX29wdGlvbiBDWUdJTVBfTElC Q19USU1FX0FTQ1RJTUVfSU5MSU5FIHsKICAgICMgRmxhdm9yOiBib29sCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07 CgojIGN0aW1lKCkKIyBBbGxvdyB0aGUgY3RpbWUoKSBmdW5jdGlvbiB0byBi ZSBpbmxpbmVkCiMKY2RsX29wdGlvbiBDWUdJTVBfTElCQ19USU1FX0NUSU1F X0lOTElORSB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRl ZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyBkaWZmdGltZSgp CiMgQWxsb3cgdGhlIGRpZmZ0aW1lKCkgZnVuY3Rpb24gdG8gYmUgaW5saW5l ZAojCmNkbF9vcHRpb24gQ1lHSU1QX0xJQkNfVElNRV9ESUZGVElNRV9JTkxJ TkUgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgZ210aW1lKCkKIyBBbGxv dyB0aGUgZ210aW1lKCkgZnVuY3Rpb24gdG8gYmUgaW5saW5lZAojCmNkbF9v cHRpb24gQ1lHSU1QX0xJQkNfVElNRV9HTVRJTUVfSU5MSU5FIHsKICAgICMg Rmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAxCn07CgojIGxvY2FsdGltZSgpCiMgQWxsb3cgdGhlIGxv Y2FsdGltZSgpIGZ1bmN0aW9uIHRvIGJlIGlubGluZWQKIwpjZGxfb3B0aW9u IENZR0lNUF9MSUJDX1RJTUVfTE9DQUxUSU1FX0lOTElORSB7CiAgICAjIEZs YXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMQp9OwoKIyBta3RpbWUoKQojIEFsbG93IHRoZSBta3RpbWUo KSBmdW5jdGlvbiB0byBiZSBpbmxpbmVkCiMKY2RsX29wdGlvbiBDWUdJTVBf TElCQ19USU1FX01LVElNRV9JTkxJTkUgewogICAgIyBGbGF2b3I6IGJvb2wK ICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEK fTsKCiMgYXNjdGltZV9yKCkKIyBBbGxvdyB0aGUgYXNjdGltZV9yKCkgZnVu Y3Rpb24gdG8gYmUgaW5saW5lZAojCmNkbF9vcHRpb24gQ1lHSU1QX0xJQkNf VElNRV9BU0NUSU1FX1JfSU5MSU5FIHsKICAgICMgRmxhdm9yOiBib29sCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCiAg ICAjIFJlcXVpcmVzOiBDWUdGVU5fTElCQ19USU1FX1BPU0lYCiAgICAjICAg ICBDWUdGVU5fTElCQ19USU1FX1BPU0lYID09IDEKICAgICMgICAtLT4gMQp9 OwoKIyBjdGltZV9yKCkKIyBBbGxvdyB0aGUgY3RpbWVfcigpIGZ1bmN0aW9u IHRvIGJlIGlubGluZWQKIwpjZGxfb3B0aW9uIENZR0lNUF9MSUJDX1RJTUVf Q1RJTUVfUl9JTkxJTkUgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKICAgICMgUmVx dWlyZXM6IENZR0ZVTl9MSUJDX1RJTUVfUE9TSVgKICAgICMgICAgIENZR0ZV Tl9MSUJDX1RJTUVfUE9TSVggPT0gMQogICAgIyAgIC0tPiAxCn07CgojIGdt dGltZV9yKCkKIyBBbGxvdyB0aGUgZ210aW1lX3IoKSBmdW5jdGlvbiB0byBi ZSBpbmxpbmVkCiMKY2RsX29wdGlvbiBDWUdJTVBfTElCQ19USU1FX0dNVElN RV9SX0lOTElORSB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2Vy IHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3Zp ZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNl IGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQogICAgIyBSZXF1aXJl czogQ1lHRlVOX0xJQkNfVElNRV9QT1NJWAogICAgIyAgICAgQ1lHRlVOX0xJ QkNfVElNRV9QT1NJWCA9PSAxCiAgICAjICAgLS0+IDEKfTsKCiMgbG9jYWx0 aW1lX3IoKQojIEFsbG93IHRoZSBsb2NhbHRpbWVfcigpIGZ1bmN0aW9uIHRv IGJlIGlubGluZWQKIwpjZGxfb3B0aW9uIENZR0lNUF9MSUJDX1RJTUVfTE9D QUxUSU1FX1JfSU5MSU5FIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5v IHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8g cHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCiAgICAjIFJl cXVpcmVzOiBDWUdGVU5fTElCQ19USU1FX1BPU0lYCiAgICAjICAgICBDWUdG VU5fTElCQ19USU1FX1BPU0lYID09IDEKICAgICMgICAtLT4gMQp9OwoKIyA8 CiMgY2xvY2soKSB0cmFjaW5nIGxldmVsCiMgVHJhY2UgdmVyYm9zaXR5IGxl dmVsIGZvciBkZWJ1Z2dpbmcgdGhlIGNsb2NrKCkKIyBmdW5jdGlvbi4gSW5j cmVhc2UgdGhpcyB2YWx1ZSB0byBnZXQKIyBhZGRpdGlvbmFsIHRyYWNlIG91 dHB1dCB3aGVuIHRyYWNpbmcgaXMgZW5hYmxlZC4KIwpjZGxfb3B0aW9uIENZ R05VTV9MSUJDX1RJTUVfQ0xPQ0tfVFJBQ0VfTEVWRUwgewogICAgIyBGbGF2 b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAKICAgICMgTGVnYWwgdmFsdWVzOiAwIHRvIDEKfTsKCiMgQyBs aWJyYXJ5IHRpbWUgZnVuY3Rpb25zIGJ1aWxkIG9wdGlvbnMKIyBQYWNrYWdl IHNwZWNpZmljIGJ1aWxkIG9wdGlvbnMgaW5jbHVkaW5nIGNvbnRyb2wgb3Zl cgojIGNvbXBpbGVyIGZsYWdzIHVzZWQgb25seSBpbiBidWlsZGluZyB0aGlz IHBhY2thZ2UsCiMgYW5kIGRldGFpbHMgb2Ygd2hpY2ggdGVzdHMgYXJlIGJ1 aWx0LgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0xJQkNfVElNRV9PUFRJT05T IHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMg PgojIEFkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3MKIyBUaGlzIG9wdGlvbiBt b2RpZmllcyB0aGUgc2V0IG9mIGNvbXBpbGVyIGZsYWdzIGZvcgojIGJ1aWxk aW5nIHRoZSBDIGxpYnJhcnkuIFRoZXNlIGZsYWdzIGFyZSB1c2VkIGluIGFk ZGl0aW9uCiMgdG8gdGhlIHNldCBvZiBnbG9iYWwgZmxhZ3MuCiMKY2RsX29w dGlvbiBDWUdQS0dfTElCQ19USU1FX0NGTEFHU19BREQgewogICAgIyBGbGF2 b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAiIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0 IHZhbHVlOiAiIgp9OwoKIyBTdXBwcmVzc2VkIGNvbXBpbGVyIGZsYWdzCiMg VGhpcyBvcHRpb24gbW9kaWZpZXMgdGhlIHNldCBvZiBjb21waWxlciBmbGFn cyBmb3IKIyBidWlsZGluZyB0aGUgQyBsaWJyYXJ5LiBUaGVzZSBmbGFncyBh cmUgcmVtb3ZlZCBmcm9tCiMgdGhlIHNldCBvZiBnbG9iYWwgZmxhZ3MgaWYg cHJlc2VudC4KIwpjZGxfb3B0aW9uIENZR1BLR19MSUJDX1RJTUVfQ0ZMQUdT X1JFTU9WRSB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlICIiCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICIiCn07CgojIEMgbGlicmFy eSB0aW1lIGFuZCBkYXRlIGZ1bmN0aW9uIHRlc3RzCiMgVGhpcyBvcHRpb24g c3BlY2lmaWVzIHRoZSBzZXQgb2YgdGVzdHMgZm9yIHRoZSBDIGxpYnJhcnkK IyB0aW1lIGFuZCBkYXRlIGZ1bmN0aW9ucy4KIwpjZGxfb3B0aW9uIENZR1BL R19MSUJDX1RJTUVfVEVTVFMgewogICAgIyBDYWxjdWxhdGVkIHZhbHVlOiAg InRlc3RzL2FzY3RpbWUgdGVzdHMvY2xvY2sgdGVzdHMvY3RpbWUgdGVzdHMv Z210aW1lIHRlc3RzL2xvY2FsdGltZSB0ZXN0cy9ta3RpbWUgdGVzdHMvc3Ry ZnRpbWUgdGVzdHMvdGltZSIgCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBD dXJyZW50X3ZhbHVlOiB0ZXN0cy9hc2N0aW1lIHRlc3RzL2Nsb2NrIHRlc3Rz L2N0aW1lIHRlc3RzL2dtdGltZSB0ZXN0cy9sb2NhbHRpbWUgdGVzdHMvbWt0 aW1lIHRlc3RzL3N0cmZ0aW1lIHRlc3RzL3RpbWUKfTsKCiMgPAojIDwKIyA8 CiMgTWF0aCBsaWJyYXJ5CiMgZG9jOiByZWRpcmVjdC90aGUtaXNvLXN0YW5k YXJkLWMtYW5kLW1hdGgtbGlicmFyaWVzLmh0bWwKIyBJU08gc3RhbmRhcmQg ZmxvYXRpbmcgcG9pbnQgbWF0aGVtYXRpY2FsIGxpYnJhcnkKIyBjb250YWlu aW5nIG1hbnkgdXNlZnVsIGZ1bmN0aW9ucyBmb3IgbWF0aGVtYXRpY2FsCiMg Y2FsY3VsYXRpb25zLgojCmNkbF9wYWNrYWdlIENZR1BLR19MSUJNIHsKICAg ICMgUGFja2FnZXMgY2Fubm90IGJlIGFkZGVkIG9yIHJlbW92ZWQsIG5vciBj YW4gdGhlaXIgdmVyc2lvbiBiZSBjaGFuZ2VkLAogICAgIyBzaW1wbHkgYnkg ZWRpdGluZyB0aGVpciB2YWx1ZS4gSW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUg Y29uZmlndXJhdGlvbgogICAgIyBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3Jt IHRoZXNlIGFjdGlvbnMuCgogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBt b2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1 cnJlbnQgdmFsdWU6IDEgY3VycmVudAoKICAgICMgVGhlIGZvbGxvd2luZyBw cm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIG9w dGlvbiBDWUdTRU1fTElCQ19TVERJT19QUklOVEZfRkxPQVRJTkdfUE9JTlQK ICAgICMgICAgIFJlcXVpcmVzOiBDWUdQS0dfTElCTQogICAgIyBvcHRpb24g Q1lHU0VNX0xJQkNfU1RESU9fUFJJTlRGX0ZMT0FUSU5HX1BPSU5UCiAgICAj ICAgICBEZWZhdWx0VmFsdWU6ICAwICE9IENZR1BLR19MSUJNIAogICAgIyBv cHRpb24gQ1lHU0VNX0xJQkNfU1RESU9fU0NBTkZfRkxPQVRJTkdfUE9JTlQK ICAgICMgICAgIFJlcXVpcmVzOiBDWUdQS0dfTElCTQogICAgIyBvcHRpb24g Q1lHU0VNX0xJQkNfU1RESU9fU0NBTkZfRkxPQVRJTkdfUE9JTlQKICAgICMg ICAgIERlZmF1bHRWYWx1ZTogIDAgIT0gQ1lHUEtHX0xJQk0gJiYKICAgICMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwICE9IENZR0lOVF9J U09fU1RETElCX1NUUkNPTlZfRkxPQVQgCiAgICAjIG9wdGlvbiBDWUdGVU5f TElCQ19zdHJ0b2QKICAgICMgICAgIFJlcXVpcmVzOiBDWUdQS0dfTElCTQog ICAgIyBvcHRpb24gQ1lHRlVOX0xJQkNfc3RydG9kCiAgICAjICAgICBEZWZh dWx0VmFsdWU6ICAwICE9IENZR1BLR19MSUJNIAp9OwoKIyA+CiMgQ29tcGF0 aWJpbGl0eSBtb2RlCiMgVGhlc2Ugb3B0aW9ucyBkZWFsIHdpdGggYmVoYXZp b3VyIHJlbGF0ZWQgdG8KIyB0aGUgdmFyaW91cyBjb21wYXRpYmlsaXR5IG1v ZGVzIC0gUE9TSVgsIElFRUUsCiMgWC9PUEVOIGFuZCBTVklELgojCmNkbF9j b21wb25lbnQgQ1lHUEtHX0xJQk1fQ09NUEFUSUJJTElUWSB7CiAgICAjIFRo ZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUuCn07CgojID4KIwpjZGxfaW50 ZXJmYWNlIENZR0lOVF9MSUJNX0NPTVBBVCB7CiAgICAjIEltcGxlbWVudGVk IGJ5IENZR1NFTV9MSUJNX0NPTVBBVF9JRUVFX09OTFksIGFjdGl2ZSwgZGlz YWJsZWQKICAgICMgSW1wbGVtZW50ZWQgYnkgQ1lHTlVNX0xJQk1fQ09NUEFU SUJJTElUWSwgYWN0aXZlLCBlbmFibGVkCiAgICAjIFRoaXMgdmFsdWUgY2Fu bm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAg IyBDdXJyZW50X3ZhbHVlOiAxCiAgICAjIFJlcXVpcmVzOiAxID09IENZR0lO VF9MSUJNX0NPTVBBVAogICAgIyAgICAgQ1lHSU5UX0xJQk1fQ09NUEFUID09 IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0 aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFj ZSBDWUdJTlRfTElCTV9DT01QQVQKICAgICMgICAgIFJlcXVpcmVzOiAxID09 IENZR0lOVF9MSUJNX0NPTVBBVAp9OwoKIyBJRUVFLW9ubHkKIyBUaGUgbWF0 aCBsaWJyYXJ5IGNhbiBiZSBoYXJkLWNvZGVkIHRvIG9ubHkKIyBiZWhhdmUg aW4gb25lIGNvbXBhdGliaWxpdHkgbW9kZSAtIElFRUUuIFRoaXMKIyBjYW5u b3QgYmUgY2hhbmdlZCBhdCBydW4tdGltZS4gSUVFRSBtb2RlIGlzIHRoZQoj IG1vc3QgbWluaW1hbCBvZiB0aGUgY29tcGF0aWJpbGl0eSBtb2RlcywgYW5k IHNvCiMgdGhpcyB3aWxsIGJlc3QgaGVscCBjb2RlIHNpemUgYW5kIHNwZWVk LCBhcyB3ZWxsCiMgYXMgb21pdHRpbmcgdGhlIGNvZGUgZm9yIG90aGVyIGNv bXBhdGliaWxpdHkKIyBtb2Rlcy4gSWYgbm90IGRlZmluZWQsIHRoZSBtYXRo IGxpYnJhcnkgY2FuIGJlCiMgc2V0IGF0IHJ1bi10aW1lIHRvIGFueSBvZiB0 aGUgc3VwcG9ydGVkCiMgY29tcGF0aWJpbGl0eSBtb2Rlcy4KIwpjZGxfb3B0 aW9uIENZR1NFTV9MSUJNX0NPTVBBVF9JRUVFX09OTFkgewogICAgIyBGbGF2 b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUg YWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHU0VNX0xJ Qk1fVVNFX1NUREVSUgogICAgIyAgICAgUmVxdWlyZXM6ICFDWUdTRU1fTElC TV9DT01QQVRfSUVFRV9PTkxZCiAgICAjIG9wdGlvbiBDWUdTRU1fTElCTV9U SFJFQURfU0FGRV9DT01QQVRfTU9ERQogICAgIyAgICAgUmVxdWlyZXM6ICFD WUdTRU1fTElCTV9DT01QQVRfSUVFRV9PTkxZCn07CgojIERlZmF1bHQgbW9k ZQojIElmIHlvdSB3YW50IHRvIGhhdmUgc3VwcG9ydCBmb3IgbW9yZSB0aGFu IG9uZQojIGNvbXBhdGliaWxpdHkgbW9kZSBzZXR0YWJsZSBhdCBydW4tdGlt ZSwgcmF0aGVyCiMgdGhhbiBoYXJkLWNvZGVkIElFRUUgbW9kZSwgdGhpcyBj b21wb25lbnQgbGV0cwojIHlvdSBjaG9vc2Ugd2hpY2ggbW9kZSBzaG91bGQg YmUgdGhlIGRlZmF1bHQuCiMKY2RsX2NvbXBvbmVudCBDWUdOVU1fTElCTV9D T01QQVRJQklMSVRZIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEgUE9TSVgKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMSBQ T1NJWAogICAgIyBMZWdhbCB2YWx1ZXM6ICAiUE9TSVgiICJJRUVFIiAiWE9Q RU4iICJTVklEIiAKICAgICMgUmVxdWlyZXM6IENZR1BLR19MSUJDCiAgICAj ICAgICBDWUdQS0dfTElCQyA9PSBjdXJyZW50CiAgICAjICAgLS0+IDEKCiAg ICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkg dGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHTlVNX0xJQk1fQ09NUEFUX0RF RkFVTFQKICAgICMgICAgIENhbGN1bGF0ZWQ6ICAgQ1lHTlVNX0xJQk1fQ09N UEFUSUJJTElUWSA9PSAiUE9TSVgiID8gIkNZR05VTV9MSUJNX0NPTVBBVF9Q T1NJWCIgOiBDWUdOVU1fTElCTV9DT01QQVRJQklMSVRZID09ICJJRUVFIiAg PyAiQ1lHTlVNX0xJQk1fQ09NUEFUX0lFRUUiIDogQ1lHTlVNX0xJQk1fQ09N UEFUSUJJTElUWSA9PSAiWE9QRU4iID8gIkNZR05VTV9MSUJNX0NPTVBBVF9Y T1BFTiIgOiBDWUdOVU1fTElCTV9DT01QQVRJQklMSVRZID09ICJTVklEIiAg PyAiQ1lHTlVNX0xJQk1fQ09NUEFUX1NWSUQiIDogIjx1bmRlZmluZWQ+IiAg CiAgICAjIG9wdGlvbiBDWUdOVU1fTElCTV9DT01QQVRfREVGQVVMVAogICAg IyAgICAgQ2FsY3VsYXRlZDogICBDWUdOVU1fTElCTV9DT01QQVRJQklMSVRZ ID09ICJQT1NJWCIgPyAiQ1lHTlVNX0xJQk1fQ09NUEFUX1BPU0lYIiA6IENZ R05VTV9MSUJNX0NPTVBBVElCSUxJVFkgPT0gIklFRUUiICA/ICJDWUdOVU1f TElCTV9DT01QQVRfSUVFRSIgOiBDWUdOVU1fTElCTV9DT01QQVRJQklMSVRZ ID09ICJYT1BFTiIgPyAiQ1lHTlVNX0xJQk1fQ09NUEFUX1hPUEVOIiA6IENZ R05VTV9MSUJNX0NPTVBBVElCSUxJVFkgPT0gIlNWSUQiICA/ICJDWUdOVU1f TElCTV9DT01QQVRfU1ZJRCIgOiAiPHVuZGVmaW5lZD4iICAKICAgICMgb3B0 aW9uIENZR05VTV9MSUJNX0NPTVBBVF9ERUZBVUxUCiAgICAjICAgICBDYWxj dWxhdGVkOiAgIENZR05VTV9MSUJNX0NPTVBBVElCSUxJVFkgPT0gIlBPU0lY IiA/ICJDWUdOVU1fTElCTV9DT01QQVRfUE9TSVgiIDogQ1lHTlVNX0xJQk1f Q09NUEFUSUJJTElUWSA9PSAiSUVFRSIgID8gIkNZR05VTV9MSUJNX0NPTVBB VF9JRUVFIiA6IENZR05VTV9MSUJNX0NPTVBBVElCSUxJVFkgPT0gIlhPUEVO IiA/ICJDWUdOVU1fTElCTV9DT01QQVRfWE9QRU4iIDogQ1lHTlVNX0xJQk1f Q09NUEFUSUJJTElUWSA9PSAiU1ZJRCIgID8gIkNZR05VTV9MSUJNX0NPTVBB VF9TVklEIiA6ICI8dW5kZWZpbmVkPiIgIAogICAgIyBvcHRpb24gQ1lHTlVN X0xJQk1fQ09NUEFUX0RFRkFVTFQKICAgICMgICAgIENhbGN1bGF0ZWQ6ICAg Q1lHTlVNX0xJQk1fQ09NUEFUSUJJTElUWSA9PSAiUE9TSVgiID8gIkNZR05V TV9MSUJNX0NPTVBBVF9QT1NJWCIgOiBDWUdOVU1fTElCTV9DT01QQVRJQklM SVRZID09ICJJRUVFIiAgPyAiQ1lHTlVNX0xJQk1fQ09NUEFUX0lFRUUiIDog Q1lHTlVNX0xJQk1fQ09NUEFUSUJJTElUWSA9PSAiWE9QRU4iID8gIkNZR05V TV9MSUJNX0NPTVBBVF9YT1BFTiIgOiBDWUdOVU1fTElCTV9DT01QQVRJQklM SVRZID09ICJTVklEIiAgPyAiQ1lHTlVNX0xJQk1fQ09NUEFUX1NWSUQiIDog Ijx1bmRlZmluZWQ+IiAgCn07CgojID4KIyBOdW1lcmljIHJlcHJlc2VudGF0 aW9uCiMgVGhpcyBvcHRpb24gYXV0b21hdGljYWxseSBkZWZpbmVzIHRoZSBk ZWZhdWx0IGNvbXBhdGliaWxpdHkKIyBtb2RlIGZvciBudW1lcmljIHJlcHJl c2VudGF0aW9uIGluIHRlcm1zIG9mIHRoZSB2YWx1ZXMgdXNlZAojIHRvIHNl dCB0aGF0IG1vZGUgYXQgcnVuLXRpbWUuCiMKY2RsX29wdGlvbiBDWUdOVU1f TElCTV9DT01QQVRfREVGQVVMVCB7CiAgICAjIENhbGN1bGF0ZWQgdmFsdWU6 ICAgQ1lHTlVNX0xJQk1fQ09NUEFUSUJJTElUWSA9PSAiUE9TSVgiID8gIkNZ R05VTV9MSUJNX0NPTVBBVF9QT1NJWCIgOiBDWUdOVU1fTElCTV9DT01QQVRJ QklMSVRZID09ICJJRUVFIiAgPyAiQ1lHTlVNX0xJQk1fQ09NUEFUX0lFRUUi IDogQ1lHTlVNX0xJQk1fQ09NUEFUSUJJTElUWSA9PSAiWE9QRU4iID8gIkNZ R05VTV9MSUJNX0NPTVBBVF9YT1BFTiIgOiBDWUdOVU1fTElCTV9DT01QQVRJ QklMSVRZID09ICJTVklEIiAgPyAiQ1lHTlVNX0xJQk1fQ09NUEFUX1NWSUQi IDogIjx1bmRlZmluZWQ+IiAgCiAgICAjICAgICBDWUdOVU1fTElCTV9DT01Q QVRJQklMSVRZID09IFBPU0lYCiAgICAjICAgICBDWUdOVU1fTElCTV9DT01Q QVRJQklMSVRZID09IFBPU0lYCiAgICAjICAgICBDWUdOVU1fTElCTV9DT01Q QVRJQklMSVRZID09IFBPU0lYCiAgICAjICAgICBDWUdOVU1fTElCTV9DT01Q QVRJQklMSVRZID09IFBPU0lYCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBD dXJyZW50X3ZhbHVlOiBDWUdOVU1fTElCTV9DT01QQVRfUE9TSVgKfTsKCiMg PAojIFNWSUQzLXN0eWxlIHNjYWxiKCkKIyBTVklEMyBkZWZpbmVkIHRoZSBz Y2FsYigpIGZ1bmN0aW9uIGFzIGRvdWJsZQojIHNjYWxiKGRvdWJsZSwgZG91 YmxlKSByYXRoZXIgdGhhbiBkb3VibGUKIyBzY2FsYihkb3VibGUsIGludCkg d2hpY2ggaXMgdXNlZCBieSBJQk0sIERFQywgYW5kCiMgcHJvYmFibHkgb3Ro ZXJzLiBFbmFibGluZyB0aGlzIG9wdGlvbiBjaG9vc2VzCiMgdGhlIChkb3Vi bGUsIGRvdWJsZSkgdmVyc2lvbi4gTm90ZSB0aGVyZSBpcyBhCiMgZnVuY3Rp b24gZG91YmxlIHNjYWxibihkb3VibGUsIGludCkgd2hpY2ggaXMKIyB1bmFm ZmVjdGVkIGJ5IHRoaXMgY2hvaWNlLgojCmNkbF9vcHRpb24gQ1lHRlVOX0xJ Qk1fU1ZJRDNfc2NhbGIgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgUmVk dWNlIG5hbWVzcGFjZSBwb2xsdXRpb24KIyBJZiB5b3UgZG8gbm90IHdhbnQg dG8gdXNlIGVpdGhlciB0aGUgWC9PcGVuIG9yCiMgU1ZJRDMgY29tcGF0aWJp bGl0eSBtb2RlcywgeW91IG1heSB3YW50IHRvIGRlZmluZQojIHRoaXMgb3B0 aW9uIHRvIHJlZHVjZSB0aGUgY2hhbmNlIG9mIG5hbWVzcGFjZQojIHBvbGx1 dGlvbi4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgbGlrZWx5IHRvIG9jY3VyCiMg aGVyZSBhcyB0aGVzZSBzdGFuZGFyZHMgZGVmaW5lIHN5bWJvbHMgd2l0aAoj IG5hbWVzIHRoYXQgb2Z0ZW4gYXBwZWFyIGluIGFwcGxpY2F0aW9ucywgc3Vj aCBhcwojIGV4Y2VwdGlvbiwgRE9NQUlOLCBPVkVSRkxPVywgZXRjLiBJZiB5 b3VyCiMgYXBwbGljYXRpb24gYWxzbyB1c2VkIHRoZXNlIG5hbWVzLCBpdCBt YXkgY2F1c2UKIyBwcm9ibGVtcy4KIwpjZGxfb3B0aW9uIENZR1NZTV9MSUJN X05PX1hPUEVOX1NWSURfTkFNRVNQQUNFX1BPTExVVElPTiB7CiAgICAjIEZs YXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMAp9OwoKIyBPdXRwdXQgdG8gc3RkZXJyIGZvciBtYXRoIGVy cm9ycwojIFRoZSBTVklEMyBzdGFuZGFyZCBzYXlzIHRoYXQgZXJyb3IKIyBt ZXNzYWdlcyBzaG91bGQgYmUgb3V0cHV0IG9uIHRoZSBzdGRlcnIgY29uc29s ZQojIG91dHB1dCBzdHJlYW0uIFRoaXMgb3B0aW9uIGFsbG93cyB0aGlzIGFi aWxpdHkKIyB0byBiZSBleHBsaWNpdGx5IGNvbnRyb2xsZWQuIEhvd2V2ZXIs IHRoaXMgc3RpbGwKIyBvbmx5IGhhcyBhbiBlZmZlY3QgaW4gU1ZJRDMgY29t cGF0aWJpbGl0eSBtb2RlLgojCmNkbF9vcHRpb24gQ1lHU0VNX0xJQk1fVVNF X1NUREVSUiB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRl ZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAogICAgIyBSZXF1aXJlczog IUNZR1NFTV9MSUJNX0NPTVBBVF9JRUVFX09OTFkKICAgICMgICAgIENZR1NF TV9MSUJNX0NPTVBBVF9JRUVFX09OTFkgPT0gMAogICAgIyAgIC0tPiAxCiAg ICAjIFJlcXVpcmVzOiBDWUdQS0dfTElCQ19TVERJTwogICAgIyAgICAgQ1lH UEtHX0xJQkNfU1RESU8gPT0gY3VycmVudAogICAgIyAgIC0tPiAxCn07Cgoj IDwKIyBUaHJlYWQgc2FmZXR5CiMgVGhpcyBvcHRpb24gY29udHJvbHMgd2hl dGhlciB0aGUgQyBsaWJyYXJ5IGhhcwojIHN1cHBvcnQgZm9yIHRocmVhZCBz YWZlIG9wZXJhdGlvbiBpbiBnZW5lcmFsLgojIFRoaXMgcmVxdWlyZXMgZUNv cyBrZXJuZWwgc3VwcG9ydCBmb3IgcGVyLXRocmVhZAojIGRhdGEsIGFuZCBh ZGp1c3RtZW50IG9mIHRoZSBzdGFjayBsaW1pdC4KIwpjZGxfY29tcG9uZW50 IENZR1BLR19MSUJNX1RIUkVBRF9TQUZFVFkgewogICAgIyBUaGVyZSBpcyBu byBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgQ29tcGF0aWJpbGl0eSBt b2RlIHNldHRpbmcKIyBUaGlzIG9wdGlvbiBtYWtlcyB0aGUgc2V0dGluZyBv ZiB0aGUgY29tcGF0aWJsaXR5CiMgbW9kZSBiZSBhIHBlci10aHJlYWQgcHJv cGVydHkuIFRoaXMgZGlyZWN0bHkKIyBpbXBsaWVzIHRoYXQgaXQgYWxzbyBi ZWNvbWVzIHRocmVhZC1zYWZlLgojCmNkbF9vcHRpb24gQ1lHU0VNX0xJQk1f VEhSRUFEX1NBRkVfQ09NUEFUX01PREUgewogICAgIyBGbGF2b3I6IGJvb2wK ICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAK ICAgICMgUmVxdWlyZXM6ICFDWUdTRU1fTElCTV9DT01QQVRfSUVFRV9PTkxZ CiAgICAjICAgICBDWUdTRU1fTElCTV9DT01QQVRfSUVFRV9PTkxZID09IDAK ICAgICMgICAtLT4gMQogICAgIyBSZXF1aXJlczogQ1lHVkFSX0tFUk5FTF9U SFJFQURTX0RBVEEKICAgICMgICAgIENZR1ZBUl9LRVJORUxfVEhSRUFEU19E QVRBID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBw cm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIG9w dGlvbiBDWUdOVU1fTElCTV9DT01QQVRNT0RFX1RSQUNFX0xFVkVMCiAgICAj ICAgICBSZXF1aXJlczogQ1lHU0VNX0xJQk1fVEhSRUFEX1NBRkVfQ09NUEFU X01PREUKfTsKCiMgPAojIFRyYWNpbmcgb3V0cHV0IGxldmVscyBpbiBtYXRo IGxpYnJhcnkKIyBUcmFjaW5nIHN1cHBvcnQgaXMgdXNlZnVsIGZvciBkZWJ1 Z2dpbmcuIFNvbWUKIyBNYXRoIGxpYnJhcnkgbW9kdWxlcyBjYW4gYmUgY29u ZmlndXJlZCB3aXRoCiMgZGlmZmVyZW50IGxldmVscyBvZiB0cmFjaW5nIHZl cmJvc2l0eS4gVGhlc2UKIyBsZXZlbHMgY2FuIGJlIGNvbmZpZ3VyZWQgaGVy ZS4KIwpjZGxfY29tcG9uZW50IENZR1BLR19MSUJNX1RSQUNFIHsKICAgICMg Rmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiBDWUdEQkdfVVNFX1RSQUNJ TkcKICAgICMgICAgIENZR0RCR19VU0VfVFJBQ0lORyA9PSAwCiAgICAjICAg LS0+IDAKfTsKCiMgPgojIENvbXBhdGliaWxpdHkgbW9kZSBnZXQvc2V0CiMg VHJhY2UgbGV2ZWwgZm9yIGRlYnVnZ2luZyB0aGUgZ2V0dGluZyBhbmQKIyBz ZXR0aW5nIG9mIHRoZSBjb21wYXRpYmlsaXR5IG1vZGUgd2hlbiBpdCBpcwoj IGNvbmZpZ3VyZWQgdG8gYmUgdGhyZWFkLXNhZmUuCiMKY2RsX29wdGlvbiBD WUdOVU1fTElCTV9DT01QQVRNT0RFX1RSQUNFX0xFVkVMIHsKICAgICMgVGhp cyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BL R19MSUJNX1RSQUNFIGlzIGRpc2FibGVkCgogICAgIyBGbGF2b3I6IGRhdGEK ICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAK ICAgICMgTGVnYWwgdmFsdWVzOiAwIHRvIDEKICAgICMgUmVxdWlyZXM6IENZ R1NFTV9MSUJNX1RIUkVBRF9TQUZFX0NPTVBBVF9NT0RFCiAgICAjICAgICBD WUdTRU1fTElCTV9USFJFQURfU0FGRV9DT01QQVRfTU9ERSA9PSAwCiAgICAj ICAgLS0+IDAKfTsKCiMgPAojIE1hdGggbGlicmFyeSBidWlsZCBvcHRpb25z CiMgUGFja2FnZSBzcGVjaWZpYyBidWlsZCBvcHRpb25zIGluY2x1ZGluZyBj b250cm9sIG92ZXIKIyBjb21waWxlciBmbGFncyB1c2VkIG9ubHkgaW4gYnVp bGRpbmcgdGhpcyBwYWNrYWdlLAojIGFuZCBkZXRhaWxzIG9mIHdoaWNoIHRl c3RzIGFyZSBidWlsdC4KIwpjZGxfY29tcG9uZW50IENZR1BLR19MSUJNX09Q VElPTlMgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9 OwoKIyA+CiMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0 aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMg YnVpbGRpbmcgdGhlIG1hdGggbGlicmFyeS4gVGhlc2UgZmxhZ3MgYXJlIHVz ZWQgaW4gYWRkaXRpb24KIyB0byB0aGUgc2V0IG9mIGdsb2JhbCBmbGFncy4K IwpjZGxfb3B0aW9uIENZR1BLR19MSUJNX0NGTEFHU19BREQgewogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAtZmZsb2F0LXN0b3JlCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6ICAwID09IENZR1BLR19IQUxfSTM4NiA/ ICIiIDogIi1mZmxvYXQtc3RvcmUiIAogICAgIyAgICAgQ1lHUEtHX0hBTF9J Mzg2ID09IGN1cnJlbnQKICAgICMgICAtLT4gLWZmbG9hdC1zdG9yZQp9OwoK IyBTdXBwcmVzc2VkIGNvbXBpbGVyIGZsYWdzCiMgVGhpcyBvcHRpb24gbW9k aWZpZXMgdGhlIHNldCBvZiBjb21waWxlciBmbGFncyBmb3IKIyBidWlsZGlu ZyB0aGUgbWF0aCBsaWJyYXJ5LiBUaGVzZSBmbGFncyBhcmUgcmVtb3ZlZCBm cm9tCiMgdGhlIHNldCBvZiBnbG9iYWwgZmxhZ3MgaWYgcHJlc2VudC4KIwpj ZGxfb3B0aW9uIENZR1BLR19MSUJNX0NGTEFHU19SRU1PVkUgewogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAiIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAiIgp9OwoKIyBNYXRoIGxpYnJhcnkgdGVzdHMKIyBUaGlz IG9wdGlvbiBzcGVjaWZpZXMgdGhlIHNldCBvZiB0ZXN0cyBmb3IgdGhlIG1h dGggbGlicmFyeS4KIwpjZGxfb3B0aW9uIENZR1BLR19MSUJNX1RFU1RTIHsK ICAgICMgQ2FsY3VsYXRlZCB2YWx1ZTogICJ0ZXN0cy92ZWN0b3JzL2Fjb3Mg dGVzdHMvdmVjdG9ycy9hc2luIHRlc3RzL3ZlY3RvcnMvYXRhbiB0ZXN0cy92 ZWN0b3JzL2F0YW4yIHRlc3RzL3ZlY3RvcnMvY2VpbCB0ZXN0cy92ZWN0b3Jz L2NvcyB0ZXN0cy92ZWN0b3JzL2Nvc2ggdGVzdHMvdmVjdG9ycy9leHAgdGVz dHMvdmVjdG9ycy9mYWJzIHRlc3RzL3ZlY3RvcnMvZmxvb3IgdGVzdHMvdmVj dG9ycy9mbW9kIHRlc3RzL3ZlY3RvcnMvZnJleHAgdGVzdHMvdmVjdG9ycy9s ZGV4cCB0ZXN0cy92ZWN0b3JzL2xvZyB0ZXN0cy92ZWN0b3JzL2xvZzEwIHRl c3RzL3ZlY3RvcnMvbW9kZiB0ZXN0cy92ZWN0b3JzL3BvdyB0ZXN0cy92ZWN0 b3JzL3NpbiB0ZXN0cy92ZWN0b3JzL3NpbmggdGVzdHMvdmVjdG9ycy9zcXJ0 IHRlc3RzL3ZlY3RvcnMvdGFuIHRlc3RzL3ZlY3RvcnMvdGFuaCIgCiAgICAj IEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiB0ZXN0cy92ZWN0 b3JzL2Fjb3MgdGVzdHMvdmVjdG9ycy9hc2luIHRlc3RzL3ZlY3RvcnMvYXRh biB0ZXN0cy92ZWN0b3JzL2F0YW4yIHRlc3RzL3ZlY3RvcnMvY2VpbCB0ZXN0 cy92ZWN0b3JzL2NvcyB0ZXN0cy92ZWN0b3JzL2Nvc2ggdGVzdHMvdmVjdG9y cy9leHAgdGVzdHMvdmVjdG9ycy9mYWJzIHRlc3RzL3ZlY3RvcnMvZmxvb3Ig dGVzdHMvdmVjdG9ycy9mbW9kIHRlc3RzL3ZlY3RvcnMvZnJleHAgdGVzdHMv dmVjdG9ycy9sZGV4cCB0ZXN0cy92ZWN0b3JzL2xvZyB0ZXN0cy92ZWN0b3Jz L2xvZzEwIHRlc3RzL3ZlY3RvcnMvbW9kZiB0ZXN0cy92ZWN0b3JzL3BvdyB0 ZXN0cy92ZWN0b3JzL3NpbiB0ZXN0cy92ZWN0b3JzL3NpbmggdGVzdHMvdmVj dG9ycy9zcXJ0IHRlc3RzL3ZlY3RvcnMvdGFuIHRlc3RzL3ZlY3RvcnMvdGFu aAp9OwoKIyA8CiMgPAojIFdhbGxjbG9jayBkZXZpY2UKIyBUaGUgd2FsbGNs b2NrIGRldmljZSBwcm92aWRlcyByZWFsIHRpbWUgc3RhbXBzLCBhcyBvcHBv c2VkCiMgdG8gdGhlIGVDb3Mga2VybmVsIHRpbWVycyB3aGljaCB0eXBpY2Fs bHkganVzdCBjb3VudCB0aGUKIyBudW1iZXIgb2YgY2xvY2sgdGlja3Mgc2lu Y2UgdGhlIGhhcmR3YXJlIHdhcyBwb3dlcmVkIHVwLgojIERlcGVuZGluZyBv biB0aGUgdGFyZ2V0IHBsYXRmb3JtIHRoaXMgZGV2aWNlIG1heSBpbnZvbHZl CiMgaW50ZXJhY3Rpbmcgd2l0aCBhIHN1aXRhYmxlIGNsb2NrIGNoaXAsIG9y IGl0IG1heSBiZQojIGVtdWxhdGVkIGJ5IHVzaW5nIHRoZSBrZXJuZWwgdGlt ZXJzLgojCmNkbF9wYWNrYWdlIENZR1BLR19JT19XQUxMQ0xPQ0sgewogICAg IyBQYWNrYWdlcyBjYW5ub3QgYmUgYWRkZWQgb3IgcmVtb3ZlZCwgbm9yIGNh biB0aGVpciB2ZXJzaW9uIGJlIGNoYW5nZWQsCiAgICAjIHNpbXBseSBieSBl ZGl0aW5nIHRoZWlyIHZhbHVlLiBJbnN0ZWFkIHRoZSBhcHByb3ByaWF0ZSBj b25maWd1cmF0aW9uCiAgICAjIHNob3VsZCBiZSB1c2VkIHRvIHBlcmZvcm0g dGhlc2UgYWN0aW9ucy4KCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1v ZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgQ3Vy cmVudCB2YWx1ZTogMSBjdXJyZW50CgogICAgIyBUaGUgZm9sbG93aW5nIHBy b3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0 aW9uIENZR1NFTV9MSUJDX1RJTUVfVElNRV9XT1JLSU5HCiAgICAjICAgICBS ZXF1aXJlczogQ1lHUEtHX0lPX1dBTExDTE9DSwogICAgIyBvcHRpb24gQ1lH U0VNX0xJQkNfVElNRV9TRVRUSU1FX1dPUktJTkcKICAgICMgICAgIFJlcXVp cmVzOiBDWUdQS0dfSU9fV0FMTENMT0NLCn07CgojID4KIyBOdW1iZXIgb2Yg d2FsbGNsb2NrIGhhcmR3YXJlIGltcGxlbWVudGF0aW9ucwojCmNkbF9pbnRl cmZhY2UgQ1lHSU5UX1dBTExDTE9DS19IV19JTVBMRU1FTlRBVElPTlMgewog ICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAg IyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMAoKICAgICMgVGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZh bHVlCiAgICAjIG9wdGlvbiBDWUdQS0dfV0FMTENMT0NLX0VNVUxBVEUKICAg ICMgICAgIERlZmF1bHRWYWx1ZTogIDAgPT0gQ1lHSU5UX1dBTExDTE9DS19I V19JTVBMRU1FTlRBVElPTlMgCiAgICAjIG9wdGlvbiBDWUdJTVBfV0FMTENM T0NLX05PTkUKICAgICMgICAgIERlZmF1bHRWYWx1ZTogICFDWUdQS0dfS0VS TkVMICYmIDAgPT0gQ1lHSU5UX1dBTExDTE9DS19IV19JTVBMRU1FTlRBVElP TlMgCn07CgojIE51bWJlciBvZiB3YWxsY2xvY2sgaW1wbGVtZW50YXRpb25z CiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfV0FMTENMT0NLX0lNUExFTUVOVEFU SU9OUyB7CiAgICAjIEltcGxlbWVudGVkIGJ5IENZR1BLR19XQUxMQ0xPQ0tf RU1VTEFURSwgYWN0aXZlLCBlbmFibGVkCiAgICAjIEltcGxlbWVudGVkIGJ5 IENZR0lNUF9XQUxMQ0xPQ0tfTk9ORSwgYWN0aXZlLCBkaXNhYmxlZAogICAg IyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMQogICAgIyBSZXF1 aXJlczogMSA9PSBDWUdJTlRfV0FMTENMT0NLX0lNUExFTUVOVEFUSU9OUwog ICAgIyAgICAgQ1lHSU5UX1dBTExDTE9DS19JTVBMRU1FTlRBVElPTlMgPT0g MQogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRp ZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNl IENZR0lOVF9XQUxMQ0xPQ0tfSU1QTEVNRU5UQVRJT05TCiAgICAjICAgICBS ZXF1aXJlczogMSA9PSBDWUdJTlRfV0FMTENMT0NLX0lNUExFTUVOVEFUSU9O Uwp9OwoKIyBXYWxsY2xvY2sgZHJpdmVyIHN1cHBvcnRzIHNldC9nZXQgbW9k ZQojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX1dBTExDTE9DS19TRVRfR0VUX01P REVfU1VQUE9SVEVEIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhp cyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZp ZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFs dWU6IDAKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZm ZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHU0VNX1dBTExD TE9DS19NT0RFCiAgICAjICAgICBEZWZhdWx0VmFsdWU6ICBDWUdJTlRfV0FM TENMT0NLX1NFVF9HRVRfTU9ERV9TVVBQT1JURUQgPyAgInNldF9nZXQiIDog ImluaXRfZ2V0IiAKICAgICMgb3B0aW9uIENZR1NFTV9XQUxMQ0xPQ0tfTU9E RQogICAgIyAgICAgUmVxdWlyZXM6ICBDWUdJTlRfV0FMTENMT0NLX1NFVF9H RVRfTU9ERV9TVVBQT1JURUQgfHwgIENZR1NFTV9XQUxMQ0xPQ0tfTU9ERSA9 PSAiaW5pdF9nZXQiIAp9OwoKIyBXYWxsY2xvY2sgbW9kZQojIFRoZSB3YWxs Y2xvY2sgZHJpdmVyIGNhbiBiZSB1c2VkIGluIG9uZSBvZiB0d28KIyBtb2Rl cy4gU2V0L2dldCBtb2RlIGFsbG93cyB0aW1lIHRvIGJlIGtlcHQgZHVyaW5n IHBvd2VyCiMgb2ZmIChhc3N1bWluZyB0aGVyZSdzIGEgYmF0dGVyeSBiYWNr ZWQgY2xvY2spLiBJbml0L2dldAojIG1vZGUgaXMgc2xpZ2h0bHkgc21hbGxl ciBhbmQgY2FuIGJlIHVzZWQgd2hlbiB0aGVyZSBpcyBubwojIGJhdHRlcnkg YmFja2VkIGNsb2NrIC0gaW4gdGhpcyBtb2RlIHRpbWUgMCBpcyB0aGUgdGlt ZSBvZgojIHRoZSBib2FyZCBwb3dlciB1cC4KIwpjZGxfb3B0aW9uIENZR1NF TV9XQUxMQ0xPQ0tfTU9ERSB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIGluaXRfZ2V0CiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICBD WUdJTlRfV0FMTENMT0NLX1NFVF9HRVRfTU9ERV9TVVBQT1JURUQgPyAgInNl dF9nZXQiIDogImluaXRfZ2V0IiAKICAgICMgICAgIENZR0lOVF9XQUxMQ0xP Q0tfU0VUX0dFVF9NT0RFX1NVUFBPUlRFRCA9PSAwCiAgICAjICAgLS0+IGlu aXRfZ2V0CiAgICAjIExlZ2FsIHZhbHVlczogICJpbml0X2dldCIgInNldF9n ZXQiIAogICAgIyBSZXF1aXJlczogIENZR0lOVF9XQUxMQ0xPQ0tfU0VUX0dF VF9NT0RFX1NVUFBPUlRFRCB8fCAgQ1lHU0VNX1dBTExDTE9DS19NT0RFID09 ICJpbml0X2dldCIgCiAgICAjICAgICBDWUdJTlRfV0FMTENMT0NLX1NFVF9H RVRfTU9ERV9TVVBQT1JURUQgPT0gMAogICAgIyAgICAgQ1lHU0VNX1dBTExD TE9DS19NT0RFID09IGluaXRfZ2V0CiAgICAjICAgLS0+IDEKCiAgICAjIFRo ZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2 YWx1ZQogICAgIyBvcHRpb24gQ1lHU0VNX1dBTExDTE9DS19NT0RFCiAgICAj ICAgICBSZXF1aXJlczogIENZR0lOVF9XQUxMQ0xPQ0tfU0VUX0dFVF9NT0RF X1NVUFBPUlRFRCB8fCAgQ1lHU0VNX1dBTExDTE9DS19NT0RFID09ICJpbml0 X2dldCIgCiAgICAjIG9wdGlvbiBDWUdTRU1fV0FMTENMT0NLX1NFVF9HRVRf TU9ERQogICAgIyAgICAgQ2FsY3VsYXRlZDogIENZR1NFTV9XQUxMQ0xPQ0tf TU9ERSA9PSAic2V0X2dldCIgPyAxIDogMCAKfTsKCiMgV2FsbGNsb2NrIHNl dC9nZXQgbW9kZQojCmNkbF9vcHRpb24gQ1lHU0VNX1dBTExDTE9DS19TRVRf R0VUX01PREUgewogICAgIyBDYWxjdWxhdGVkIHZhbHVlOiAgQ1lHU0VNX1dB TExDTE9DS19NT0RFID09ICJzZXRfZ2V0IiA/IDEgOiAwIAogICAgIyAgICAg Q1lHU0VNX1dBTExDTE9DS19NT0RFID09IGluaXRfZ2V0CiAgICAjIEZsYXZv cjogYm9vbAogICAgIyBDdXJyZW50IHZhbHVlOiAwCn07CgojIFdhbGxjbG9j ayBpbXBsZW1lbnRhdGlvbgojIEltcGxlbWVudGF0aW9ucyBvZiB0aGUgd2Fs bGNsb2NrIGRldmljZS4KIwpjZGxfY29tcG9uZW50IENZR1BLR19JT19XQUxM Q0xPQ0tfSU1QTEVNRU5UQVRJT04gewogICAgIyBUaGVyZSBpcyBubyBhc3Nv Y2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgV2FsbGNsb2NrIGVtdWxhdG9yCiMg V2hlbiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkLCBhIHdhbGxjbG9jayBkZXZp Y2Ugd2lsbCBiZQojIGVtdWxhdGVkIHVzaW5nIHRoZSBrZXJuZWwgcmVhbC10 aW1lIGNsb2NrLgojCmNkbF9vcHRpb24gQ1lHUEtHX1dBTExDTE9DS19FTVVM QVRFIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVs dAogICAgIyBEZWZhdWx0IHZhbHVlOiAgMCA9PSBDWUdJTlRfV0FMTENMT0NL X0hXX0lNUExFTUVOVEFUSU9OUyAKICAgICMgICAgIENZR0lOVF9XQUxMQ0xP Q0tfSFdfSU1QTEVNRU5UQVRJT05TID09IDAKICAgICMgICAtLT4gMQogICAg IyBSZXF1aXJlczogQ1lHUEtHX0tFUk5FTAogICAgIyAgICAgQ1lHUEtHX0tF Uk5FTCA9PSBjdXJyZW50CiAgICAjICAgLS0+IDEKfTsKCiMgTm8gd2FsbGNs b2NrCiMgRGlzYWJsZXMgdGhlIHdhbGxjbG9jay4KIwpjZGxfb3B0aW9uIENZ R0lNUF9XQUxMQ0xPQ0tfTk9ORSB7CiAgICAjIEZsYXZvcjogYm9vbAogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogICFDWUdQ S0dfS0VSTkVMICYmIDAgPT0gQ1lHSU5UX1dBTExDTE9DS19IV19JTVBMRU1F TlRBVElPTlMgCiAgICAjICAgICBDWUdQS0dfS0VSTkVMID09IGN1cnJlbnQK ICAgICMgICAgIENZR0lOVF9XQUxMQ0xPQ0tfSFdfSU1QTEVNRU5UQVRJT05T ID09IDAKICAgICMgICAtLT4gMAp9OwoKIyA8CiMgV2FsbGNsb2NrIGJ1aWxk IG9wdGlvbnMKIyBQYWNrYWdlIHNwZWNpZmljIGJ1aWxkIG9wdGlvbnMgaW5j bHVkaW5nIGNvbnRyb2wgb3ZlcgojIGNvbXBpbGVyIGZsYWdzIHVzZWQgb25s eSBpbiBidWlsZGluZyB0aGlzIHBhY2thZ2UsCiMgYW5kIGRldGFpbHMgb2Yg d2hpY2ggdGVzdHMgYXJlIGJ1aWx0LgojCmNkbF9jb21wb25lbnQgQ1lHUEtH X0lPX1dBTExDTE9DS19PUFRJT05TIHsKICAgICMgVGhlcmUgaXMgbm8gYXNz b2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIEFkZGl0aW9uYWwgY29tcGlsZXIg ZmxhZ3MKIyBUaGlzIG9wdGlvbiBtb2RpZmllcyB0aGUgc2V0IG9mIGNvbXBp bGVyIGZsYWdzIGZvcgojIGJ1aWxkaW5nIHRoZSB3YWxsY2xvY2sgZGV2aWNl LiBUaGVzZSBmbGFncyBhcmUgdXNlZCBpbiBhZGRpdGlvbgojIHRvIHRoZSBz ZXQgb2YgZ2xvYmFsIGZsYWdzLgojCmNkbF9vcHRpb24gQ1lHUEtHX0lPX1dB TExDTE9DS19DRkxBR1NfQUREIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAj IE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUg dG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgIiIKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIiIKfTsK CiMgU3VwcHJlc3NlZCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0aW9uIG1v ZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMgYnVpbGRp bmcgdGhlIHdhbGxjbG9jayBkZXZpY2UuIFRoZXNlIGZsYWdzIGFyZSByZW1v dmVkIGZyb20KIyB0aGUgc2V0IG9mIGdsb2JhbCBmbGFncyBpZiBwcmVzZW50 LgojCmNkbF9vcHRpb24gQ1lHUEtHX0lPX1dBTExDTE9DS19DRkxBR1NfUkVN T1ZFIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgIiIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIiIKfTsKCiMgV2FsbGNsb2NrIHRl c3RzCiMgVGhpcyBvcHRpb24gc3BlY2lmaWVzIHRoZSBzZXQgb2YgdGVzdHMg Zm9yIHRoZQojIHdhbGxjbG9jayBkZXZpY2UuCiMKY2RsX29wdGlvbiBDWUdQ S0dfSU9fV0FMTENMT0NLX1RFU1RTIHsKICAgICMgQ2FsY3VsYXRlZCB2YWx1 ZTogIENZR1BLR19LRVJORUwgPyAidGVzdHMvd2FsbGNsb2NrIHRlc3RzL3dh bGxjbG9jazIiIDogIiIgCiAgICAjICAgICBDWUdQS0dfS0VSTkVMID09IGN1 cnJlbnQKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6 IHRlc3RzL3dhbGxjbG9jayB0ZXN0cy93YWxsY2xvY2syCn07CgojIDwKIyA8 CiMgQ29tbW9uIGVycm9yIGNvZGUgc3VwcG9ydAojIFRoaXMgcGFja2FnZSBj b250YWlucyB0aGUgY29tbW9uIGxpc3Qgb2YgZXJyb3IgYW5kCiMgc3RhdHVz IGNvZGVzLiBJdCBpcyBoZWxkIGNlbnRyYWxseSB0byBhbGxvdwojIHBhY2th Z2VzIHRvIGludGVyY2hhbmdlIGVycm9yIGNvZGVzIGFuZCBzdGF0dXMKIyBj b2RlcyBpbiBhIGNvbW1vbiB3YXksIHJhdGhlciB0aGFuIGVhY2ggcGFja2Fn ZQojIGhhdmluZyBpdHMgb3duIGNvbnZlbnRpb25zIGZvciBlcnJvci9zdGF0 dXMKIyByZXBvcnRpbmcuIFRoZSBlcnJvciBjb2RlcyBhcmUgbW9kZWxsZWQg b24gdGhlCiMgUE9TSVggc3R5bGUgbmFtaW5nIGUuZy4gRUlOVkFMIGV0Yy4g VGhpcyBwYWNrYWdlCiMgYWxzbyBwcm92aWRlcyB0aGUgc3RhbmRhcmQgc3Ry ZXJyb3IoKSBmdW5jdGlvbiB0bwojIGNvbnZlcnQgZXJyb3IgY29kZXMgdG8g dGV4dHVhbCByZXByZXNlbnRhdGlvbiwgYXMKIyB3ZWxsIGFzIGFuIGltcGxl bWVudGF0aW9uIG9mIHRoZSBlcnJubyBpZGlvbS4KIwpjZGxfcGFja2FnZSBD WUdQS0dfRVJST1IgewogICAgIyBQYWNrYWdlcyBjYW5ub3QgYmUgYWRkZWQg b3IgcmVtb3ZlZCwgbm9yIGNhbiB0aGVpciB2ZXJzaW9uIGJlIGNoYW5nZWQs CiAgICAjIHNpbXBseSBieSBlZGl0aW5nIHRoZWlyIHZhbHVlLiBJbnN0ZWFk IHRoZSBhcHByb3ByaWF0ZSBjb25maWd1cmF0aW9uCiAgICAjIHNob3VsZCBi ZSB1c2VkIHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucy4KCiAgICAjIFRoaXMg dmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjog Ym9vbGRhdGEKICAgICMgQ3VycmVudCB2YWx1ZTogMSBjdXJyZW50CiAgICAj IFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19FUlJOT19DT0RFU19IRUFERVIgPT0g IjxjeWcvZXJyb3IvY29kZXMuaD4iIAogICAgIyAgICAgQ1lHQkxEX0lTT19F UlJOT19DT0RFU19IRUFERVIgPT0gPGN5Zy9lcnJvci9jb2Rlcy5oPgogICAg IyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJl IGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgcGFja2FnZSBDWUdQS0df SU8KICAgICMgICAgIFJlcXVpcmVzOiBDWUdQS0dfRVJST1IKICAgICMgcGFj a2FnZSBDWUdQS0dfSU9fU0VSSUFMCiAgICAjICAgICBSZXF1aXJlczogQ1lH UEtHX0VSUk9SCiAgICAjIHBhY2thZ2UgQ1lHUEtHX0lPX1NFUklBTF9JMzg2 X1BDCiAgICAjICAgICBSZXF1aXJlczogQ1lHUEtHX0VSUk9SCiAgICAjIHBh Y2thZ2UgQ1lHUEtHX05FVAogICAgIyAgICAgUmVxdWlyZXM6IENZR1BLR19F UlJPUgp9OwoKIyA+CiMgZXJybm8gdmFyaWFibGUKIyBUaGlzIHBhY2thZ2Ug Y29udHJvbHMgdGhlIGJlaGF2aW91ciBvZiB0aGUKIyBlcnJubyB2YXJpYWJs ZSAob3IgbW9yZSBzdHJpY3RseSwgZXhwcmVzc2lvbikKIyBmcm9tIDxlcnJu by5oPi4KIwpjZGxfY29tcG9uZW50IENZR1BLR19FUlJPUl9FUlJOTyB7CiAg ICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogMQogICAgIyBSZXF1aXJlczogIENZR0JMRF9JU09f RVJSTk9fSEVBREVSID09ICI8Y3lnL2Vycm9yL2Vycm5vLmg+IiAKICAgICMg ICAgIENZR0JMRF9JU09fRVJSTk9fSEVBREVSID09IDxjeWcvZXJyb3IvZXJy bm8uaD4KICAgICMgICAtLT4gMQp9OwoKIyA+CiMgUGVyLXRocmVhZCBlcnJu bwojIFRoaXMgb3B0aW9uIGNvbnRyb2xzIHdoZXRoZXIgdGhlIHN0YW5kYXJk IGVycm9yCiMgY29kZSByZXBvcnRpbmcgdmFyaWFibGUgZXJybm8gaXMgYSBw ZXItdGhyZWFkCiMgdmFyaWFibGUsIHJhdGhlciB0aGFuIGdsb2JhbC4KIwpj ZGxfb3B0aW9uIENZR1NFTV9FUlJPUl9QRVJfVEhSRUFEX0VSUk5PIHsKICAg ICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAxCiAgICAjIFJlcXVpcmVzOiBDWUdWQVJfS0VSTkVM X1RIUkVBRFNfREFUQQogICAgIyAgICAgQ1lHVkFSX0tFUk5FTF9USFJFQURT X0RBVEEgPT0gMQogICAgIyAgIC0tPiAxCn07CgojIFRyYWNpbmcgbGV2ZWwK IyBUcmFjZSB2ZXJib3NpdHkgbGV2ZWwgZm9yIGRlYnVnZ2luZyB0aGUgZXJy bm8KIyByZXRyaWV2YWwgbWVjaGFuaXNtIGluIGVycm5vLmN4eC4gSW5jcmVh c2UgdGhpcwojIHZhbHVlIHRvIGdldCBhZGRpdGlvbmFsIHRyYWNlIG91dHB1 dC4KIwpjZGxfb3B0aW9uIENZR05VTV9FUlJPUl9FUlJOT19UUkFDRV9MRVZF TCB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMAogICAgIyBMZWdhbCB2YWx1ZXM6IDAg dG8gMQp9OwoKIyA8CiMgc3RyZXJyb3IgZnVuY3Rpb24KIyBUaGlzIHBhY2th Z2UgY29udHJvbHMgdGhlIHByZXNlbmNlIGFuZCBiZWhhdmlvdXIgb2YgdGhl CiMgc3RyZXJyb3IoKSBmdW5jdGlvbiBmcm9tIDxzdHJpbmcuaD4KIwpjZGxf b3B0aW9uIENZR1BLR19FUlJPUl9TVFJFUlJPUiB7CiAgICAjIEZsYXZvcjog Ym9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMQogICAgIyBSZXF1aXJlczogIENZR0JMRF9JU09fU1RSRVJST1JfSEVB REVSID09ICI8Y3lnL2Vycm9yL3N0cmVycm9yLmg+IiAKICAgICMgICAgIENZ R0JMRF9JU09fU1RSRVJST1JfSEVBREVSID09IDxjeWcvZXJyb3Ivc3RyZXJy b3IuaD4KICAgICMgICAtLT4gMQp9OwoKIyBFcnJvciBwYWNrYWdlIGJ1aWxk IG9wdGlvbnMKIyBQYWNrYWdlIHNwZWNpZmljIGJ1aWxkIG9wdGlvbnMgaW5j bHVkaW5nIGNvbnRyb2wgb3ZlcgojIGNvbXBpbGVyIGZsYWdzIHVzZWQgb25s eSBpbiBidWlsZGluZyB0aGlzIHBhY2thZ2UsCiMgYW5kIGRldGFpbHMgb2Yg d2hpY2ggdGVzdHMgYXJlIGJ1aWx0LgojCmNkbF9jb21wb25lbnQgQ1lHUEtH X0VSUk9SX09QVElPTlMgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVk IHZhbHVlLgp9OwoKIyA+CiMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncwoj IFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIgZmxh Z3MgZm9yCiMgYnVpbGRpbmcgdGhlIGVycm9yIHBhY2thZ2UuIFRoZXNlIGZs YWdzIGFyZSB1c2VkIGluIGFkZGl0aW9uCiMgdG8gdGhlIHNldCBvZiBnbG9i YWwgZmxhZ3MuCiMKY2RsX29wdGlvbiBDWUdQS0dfRVJST1JfQ0ZMQUdTX0FE RCB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlICIiCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6ICIiCn07CgojIFN1cHByZXNzZWQgY29t cGlsZXIgZmxhZ3MKIyBUaGlzIG9wdGlvbiBtb2RpZmllcyB0aGUgc2V0IG9m IGNvbXBpbGVyIGZsYWdzIGZvcgojIGJ1aWxkaW5nIHRoZSBlcnJvciBwYWNr YWdlLiBUaGVzZSBmbGFncyBhcmUgcmVtb3ZlZCBmcm9tCiMgdGhlIHNldCBv ZiBnbG9iYWwgZmxhZ3MgaWYgcHJlc2VudC4KIwpjZGxfb3B0aW9uIENZR1BL R19FUlJPUl9DRkxBR1NfUkVNT1ZFIHsKICAgICMgRmxhdm9yOiBkYXRhCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgIiIKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIiIK fTsKCiMgPAojIDwKIyBOZXR3b3JraW5nCiMgZG9jOiBkb2MvaW5kZXguaHRt bAojIEJhc2ljIG5ldHdvcmtpbmcgc3VwcG9ydCwgaW5jbHVkaW5nIFRDUC9J UC4KIwpjZGxfcGFja2FnZSBDWUdQS0dfTkVUIHsKICAgICMgUGFja2FnZXMg Y2Fubm90IGJlIGFkZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVy c2lvbiBiZSBjaGFuZ2VkLAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVp ciB2YWx1ZS4gSW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlv bgogICAgIyBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlv bnMuCgogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJl LgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6 IDEgY3VycmVudAogICAgIyBSZXF1aXJlczogQ1lHUEtHX0lPCiAgICAjICAg ICBDWUdQS0dfSU8gPT0gY3VycmVudAogICAgIyAgIC0tPiAxCiAgICAjIFJl cXVpcmVzOiBDWUdQS0dfSVNPSU5GUkEKICAgICMgICAgIENZR1BLR19JU09J TkZSQSA9PSBjdXJyZW50CiAgICAjICAgLS0+IDEKICAgICMgUmVxdWlyZXM6 IENZR1BLR19MSUJDX1RJTUUKICAgICMgICAgIENZR1BLR19MSUJDX1RJTUUg PT0gY3VycmVudAogICAgIyAgIC0tPiAxCiAgICAjIFJlcXVpcmVzOiBDWUdQ S0dfRVJST1IKICAgICMgICAgIENZR1BLR19FUlJPUiA9PSBjdXJyZW50CiAg ICAjICAgLS0+IDEKICAgICMgUmVxdWlyZXM6IENZR1BLR19NRU1BTExPQwog ICAgIyAgICAgQ1lHUEtHX01FTUFMTE9DID09IGN1cnJlbnQKICAgICMgICAt LT4gMQogICAgIyBSZXF1aXJlczogIENZR0JMRF9JU09fQlNEVFlQRVNfSEVB REVSID09ICI8c3lzL2JzZHR5cGVzLmg+IiAKICAgICMgICAgIENZR0JMRF9J U09fQlNEVFlQRVNfSEVBREVSID09IDxzeXMvYnNkdHlwZXMuaD4KICAgICMg ICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBh ZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGNvbXBvbmVudCBDWUdQS0df SU9fRVRIX0RSSVZFUlNfTkVUCiAgICAjICAgICBBY3RpdmVJZjogQ1lHUEtH X05FVAogICAgIyBjb21wb25lbnQgQ1lHUEtHX0lPX0VUSF9EUklWRVJTX1NU QU5EX0FMT05FCiAgICAjICAgICBBY3RpdmVJZjogIUNZR1BLR19ORVQKfTsK CiMgPgojIEltcGxlbWVudCB0aGUgc29ja2V0IEFQSSBsb2NhbGx5CiMgVGhp cyBvcHRpb24gY29udHJvbHMgc3VwcG9ydCBmb3IgdGhlIG5ldHdvcmstc3Rh Y2sgc3VwcGxpZWQKIyBBUEkuCiMKY2RsX29wdGlvbiBDWUdQS0dfTkVUX0FQ SV9MT0NBTCB7CiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFpbnQ6ICFDWUdQS0df SU9fRklMRUlPCiAgICAjICAgICBDWUdQS0dfSU9fRklMRUlPICh1bmtub3du KSA9PSAwCiAgICAjICAgLS0+IDEKCiAgICAjIEZsYXZvcjogYm9vbAogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoK IyBJbXBsZW1lbnQgdGhlIHNvY2tldCBBUEkgdmlhIEZpbGVpbyBwYWNrYWdl CiMgVGhpcyBvcHRpb24gY29udHJvbHMgc3VwcG9ydCBmb3IgdGhlIGZpbGVp byBzdWJzeXN0ZW0gc3VwcGxpZWQgQVBJLgojCmNkbF9vcHRpb24gQ1lHUEtH X05FVF9BUElfRklMRUlPIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFj dGl2ZQogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBDWUdQS0dfSU9fRklM RUlPCiAgICAjICAgICBDWUdQS0dfSU9fRklMRUlPICh1bmtub3duKSA9PSAw CiAgICAjICAgLS0+IDAKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291 cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyBJTkVU IHN1cHBvcnQKIyBUaGlzIG9wdGlvbiBlbmFibGVzIHN1cHBvcnQgZm9yIElO RVQgKElQKSBuZXR3b3JrIHByb2Nlc3NpbmcuCiMKY2RsX2NvbXBvbmVudCBD WUdQS0dfTkVUX0lORVQgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgPgoj IElQdjYgc3VwcG9ydAojIFRoaXMgb3B0aW9uIGVuYWJsZXMgc3VwcG9ydCBm b3IgbmV3IElQdjYuCiMKY2RsX29wdGlvbiBDWUdQS0dfTkVUX0lORVQ2IHsK ICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29t bWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAj IHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAg IyBEZWZhdWx0IHZhbHVlOiAwCn07CgojIFJvdXRpbmcgc3VwcG9ydAojIFRo aXMgb3B0aW9uIGVuYWJsZXMgc3VwcG9ydCBmb3IgcGFja2V0IHJvdXRpbmcu CiMKY2RsX29wdGlvbiBDWUdQS0dfTkVUX1JPVVRJTkcgewogICAgIyBGbGF2 b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAKfTsKCiMgPAojIFRGVFAgKFJGQy0xMzUwKSBzdXBwb3J0CiMg VGhpcyBvcHRpb24gcHJvdmlkZXMgYWRkaXRpb25hbCBsaWJyYXJ5IHN1cHBv cnQgZm9yCiMgdGhlIFRGVFAgKFRyaXZpYWwgRmlsZSBUcmFuc2ZlciBQcm90 b2NvbCkuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfTkVUX1RGVFAgewogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDEKfTsKCiMgPgojIFByaW9yaXR5IGxldmVsIGZvciBU RlRQIGRhZW1vbiB0aHJlYWQuCiMgVGhpcyBvcHRpb24gYWxsb3dzIHRoZSB0 aHJlYWQgcHJpb3JpdHkgbGV2ZWwgdXNlZCBieSB0aGUKIyBURlRQIHNlcnZl ciB0aHJlYWQgdG8gYmUgYWRqdXN0ZWQgYnkgdGhlIHVzZXIuICBJdCBzaG91 bGQgYmUgc2V0CiMgaGlnaCBlbm91Z2ggdGhhdCBzdWZmaWNpZW50IENQVSBy ZXNvdXJjZXMgYXJlIGF2YWlsYWJsZSB0bwojIHByb2Nlc3MgbmV0d29yayBk YXRhLCBidXQgbWF5IGJlIGFkanVzdGVkIHNvIHRoYXQgYXBwbGljYXRpb24K IyB0aHJlYWRzIGNhbiBoYXZlIHByZWNlZGVuY2Ugb3ZlciBURlRQIHNlcnZl ciBwcm9jZXNzaW5nLgojCmNkbF9vcHRpb24gQ1lHUEtHX05FVF9URlRQRF9U SFJFQURfUFJJT1JJVFkgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxMAogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxMAp9OwoKIyBG aWxlIEkvTyBmdW5jdGlvbnMgZm9yIFRGVFAgc2VydmVyCiMgTWluaW1hbCBp bi1tZW1vcnkgZmlsZSBJL08gc3VwcG9ydCBmb3IgVEZUUCBzZXJ2ZXIuCiMK Y2RsX29wdGlvbiBDWUdQS0dfTkVUX1RGVFBfRklMRV9BQ0NFU1MgewogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDEKfTsKCiMgPAojIFVzZSBmdWxsIERIQ1AgaW5zdGVh ZCBvZiBCT09UUAojIFByb3ZpZGUgREhDUCBmb3IgaW5pdGlhbGl6aW5nIHRo ZSBJUCBhZGRyZXNzCiMgb2YgbmV0d29yayBpbnRlcmZhY2VzLiAgVGhlIERI Q1AgY2xpZW50IGlzIGNhcGFibGUgb2YgZmFsbGluZwojIGJhY2sgdG8gQk9P VFAgdXNhZ2UgaWYgdGhlIHNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IERIQ1As IHNvIGl0CiMgc2hvdWxkIG5ldmVyIGJlIG5lY2Vzc2FyeSB0byBkaXNhYmxl IHRoaXMgb3B0aW9uLiAgSG93ZXZlciwKIyBkZXBlbmRpbmcgb24gb3RoZXIg Y29uZmlndXJhdGlvbiB0aGUgREhDUCBjbGllbnQgbWF5IHByb3ZpZGUgb3IK IyByZXF1aXJlIGEga2VybmVsIHRocmVhZCBvZiBpdHMgb3duOyB0aGlzIGNv bnN1bWVzIHF1aXRlIGEgbG90CiMgb2YgcmVzb3VyY2Ugd2hpY2ggYSBCT09U UCBzb2x1dGlvbiBkb2VzIG5vdCByZXF1aXJlLgojCmNkbF9jb21wb25lbnQg Q1lHUEtHX05FVF9ESENQIHsKICAgICMgQWN0aXZlSWYgY29uc3RyYWludDog KENZR0hXUl9ORVRfRFJJVkVSUyA+IDApCiAgICAjICAgICBDWUdIV1JfTkVU X0RSSVZFUlMgPT0gMgogICAgIyAgIC0tPiAxCgogICAgIyBGbGF2b3I6IGJv b2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAg ICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6 IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0 ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHSFdSX05FVF9EUklW RVJfRVRIMF9ESENQCiAgICAjICAgICBBY3RpdmVJZjogQ1lHUEtHX05FVF9E SENQCiAgICAjIG9wdGlvbiBDWUdIV1JfTkVUX0RSSVZFUl9FVEgxX0RIQ1AK ICAgICMgICAgIEFjdGl2ZUlmOiBDWUdQS0dfTkVUX0RIQ1AKfTsKCiMgPgoj IERIQ1AgbWFuYWdlbWVudCB0aHJlYWQKIyBQcm92aWRlIGEgc2VwYXJhdGUg dGhyZWFkIHRvIHJlbmV3IERIQ1AgbGVhc2VzOyBvdGhlcndpc2UKIyB0aGUg YXBwbGljYXRpb24gTVVTVCBwZXJpb2RpY2FsbHkgZXhhbWluZSB0aGUgc2Vt YXBob3JlCiMgZGhjcF9uZWVkc19hdHRlbnRpb24gYW5kIGNhbGwgZGhjcF9i aW5kKCkgaWYgaXQgaXMKIyBzaWduYWxsZWQuICBJZiBlbmFibGVkLCB0aGlz IHRocmVhZCBkb2VzIGFsbCB0aGF0IGZvciB5b3UuCiMgSW5kZXBlbmRlbnQg b2YgdGhpcyBvcHRpb24sIGluaXRpYWxpemF0aW9uIG9mIHRoZQojIGludGVy ZmFjZXMgc3RpbGwgb2NjdXJzIGluIGluaXRfYWxsX25ldHdvcmtfaW50ZXJm YWNlcygpCiMgYW5kIHlvdXIgc3RhcnR1cCBjb2RlIG11c3QgY2FsbCB0aGF0 LiAgSXQgd2lsbCBzdGFydCB0aGUKIyBESENQIG1hbmFnZW1lbnQgdGhyZWFk IGlmIG5lY2Vzc2FyeS4gIElmIGEgbGVhc2UgZmFpbHMgdG8KIyBiZSByZW5l d2VkLCB0aGUgbWFuYWdlbWVudCB0aHJlYWQgd2lsbCBzaHV0IGRvd24gYWxs CiMgaW50ZXJmYWNlcyBhbmQgYXR0ZW1wdCB0byBpbml0aWFsaXplIGFsbCB0 aGUgaW50ZXJmYWNlcwojIGFnYWluIGZyb20gc2NyYXRjaC4gIFRoaXMgbWF5 IGNhdXNlIGFwcGxpY2F0aW9uIHByb2JsZW1zLAojIGluIHdoaWNoIGNhc2Ug bWFuYWdpbmcgdGhlIERIQ1Agc3RhdGUgaW4gYW4gYXBwbGljYXRpb24KIyBh d2FyZSB0aHJlYWQgaXMgcmVjb21tZW5kZWQuICBTZWUgY29tbWVudHMgaW4g ZGhjcC5oCiMKY2RsX29wdGlvbiBDWUdPUFRfTkVUX0RIQ1BfREhDUF9USFJF QUQgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcg cHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBv cHRpb24gQ1lHT1BUX05FVF9ESENQX0RIQ1BfVEhSRUFEX1BBUkFNCiAgICAj ICAgICBBY3RpdmVJZjogQ1lHT1BUX05FVF9ESENQX0RIQ1BfVEhSRUFECiAg ICAjIG9wdGlvbiBDWUdQS0dfTkVUX0RIQ1BfVEhSRUFEX1BSSU9SSVRZCiAg ICAjICAgICBBY3RpdmVJZjogQ1lHT1BUX05FVF9ESENQX0RIQ1BfVEhSRUFE Cn07CgojIERIQ1AgbWFuYWdlbWVudCB0aHJlYWQgbG9vcHMgZm9yZXZlcgoj IElmIHRoZSBwYXJhbWV0ZXIgaXMgbm9uemVybywgaXQgbG9vcHMgZm9yZXZl cjsgaWYgemVybywKIyB0aGUgdGhyZWFkIGV4aXRzIGlmIGEgbGVhc2UgZXhw aXJlcywgYW5kIHRoZSBhcHBsaWNhdGlvbgojIG11c3QgZGV0ZWN0IHRoaXMg YW5kIHRpZHkgdXAgb3IgcmVib290IHRoZSB3aG9sZSBtYWNoaW5lLgojCmNk bF9vcHRpb24gQ1lHT1BUX05FVF9ESENQX0RIQ1BfVEhSRUFEX1BBUkFNIHsK ICAgICMgQWN0aXZlSWYgY29uc3RyYWludDogQ1lHT1BUX05FVF9ESENQX0RI Q1BfVEhSRUFECiAgICAjICAgICBDWUdPUFRfTkVUX0RIQ1BfREhDUF9USFJF QUQgPT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBGbGF2b3I6IGRhdGEKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZh bHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsK CiMgREhDUCBtYW5hZ2VtZW50IHRocmVhZCBwcmlvcml0eQojIFRoaXMgb3B0 aW9uIHNldHMgdGhlIHRocmVhZCBwcmlvcml0eSBsZXZlbCB1c2VkIGJ5IHRo ZSBESENQCiMgbWFuYWdlbWVudCB0aHJlYWQuICBJdCBzaG91bGQgYmUgaGln aCBlbm91Z2ggdGhhdCBpdCBjYW4gcnVuCiMgd2hlbiBuZWNlc3NhcnksIGJ1 dCBpdCBkb2VzIG5vdCBuZWVkIHRvIGJlIGFzIGhpZ2ggYXMgdGhlCiMgbmV0 d29yayB0aHJlYWQgaXRzZWxmLgojCmNkbF9vcHRpb24gQ1lHUEtHX05FVF9E SENQX1RIUkVBRF9QUklPUklUWSB7CiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFp bnQ6IENZR09QVF9ORVRfREhDUF9ESENQX1RIUkVBRAogICAgIyAgICAgQ1lH T1BUX05FVF9ESENQX0RIQ1BfVEhSRUFEID09IDEKICAgICMgICAtLT4gMQoK ICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29t bWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAj IHVzZXJfdmFsdWUgOAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAg IyBEZWZhdWx0IHZhbHVlOiBDWUdQS0dfTkVUX1RIUkVBRF9QUklPUklUWSAr IDEKICAgICMgICAgIENZR1BLR19ORVRfVEhSRUFEX1BSSU9SSVRZID09IDcK ICAgICMgICAtLT4gOAp9OwoKIyA8CiMgU3VwcG9ydCBCU0QgJ3N5c2N0bCgp JyBmdW5jdGlvbgojIFRoaXMgb3B0aW9uIGluY2x1ZGVzIHN1cHBvcnQgZm9y IHRoZSAnc3lzY3RsKCknIGZ1bmN0aW9ucy4KIwpjZGxfb3B0aW9uIENZR1BL R19ORVRfU1lTQ1RMIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVz ZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJv dmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3Vy Y2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCn07CgojIFByaW9y aXR5IGxldmVsIGZvciBiYWNrZ291bmQgbmV0d29yayBwcm9jZXNzaW5nLgoj IFRoaXMgb3B0aW9uIGFsbG93cyB0aGUgdGhyZWFkIHByaW9yaXR5IGxldmVs IHVzZWQgYnkgdGhlCiMgbmV0d29ya2luZyBzdGFjayB0byBiZSBhZGp1c3Rl ZCBieSB0aGUgdXNlci4gIEl0IHNob3VsZCBiZSBzZXQKIyBoaWdoIGVub3Vn aCB0aGF0IHN1ZmZpY2llbnQgQ1BVIHJlc291cmNlcyBhcmUgYXZhaWxhYmxl IHRvCiMgcHJvY2VzcyBuZXR3b3JrIGRhdGEsIGJ1dCBtYXkgYmUgYWRqdXN0 ZWQgc28gdGhhdCBhcHBsaWNhdGlvbgojIHRocmVhZHMgY2FuIGhhdmUgcHJl Y2VkZW5jZSBvdmVyIG5ldHdvcmsgcHJvY2Vzc2luZy4KIwpjZGxfb3B0aW9u IENZR1BLR19ORVRfVEhSRUFEX1BSSU9SSVRZIHsKICAgICMgRmxhdm9yOiBk YXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgNwog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiA3CgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVj dGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR1BLR19ORVRfREhD UF9USFJFQURfUFJJT1JJVFkKICAgICMgICAgIERlZmF1bHRWYWx1ZTogQ1lH UEtHX05FVF9USFJFQURfUFJJT1JJVFkgKyAxCiAgICAjIG9wdGlvbiBDWUdQ S0dfTkVUX0ZBU1RfVEhSRUFEX1BSSU9SSVRZCiAgICAjICAgICBEZWZhdWx0 VmFsdWU6IENZR1BLR19ORVRfVEhSRUFEX1BSSU9SSVRZIC0gMQp9OwoKIyBQ cmlvcml0eSBsZXZlbCBmb3IgZmFzdCBuZXR3b3JrIHByb2Nlc3NpbmcuCiMg VGhpcyBvcHRpb24gc2V0cyB0aGUgdGhyZWFkIHByaW9yaXR5IGxldmVsIHVz ZWQgYnkgdGhlIGZhc3QKIyBuZXR3b3JrIHRocmVhZC4gIFRoZSBmYXN0IG5l dHdvcmsgdGhyZWFkIHJ1bnMgb2Z0ZW4gYnV0IGJyaWVmbHksIHRvCiMgc2Vy dmljZSBuZXR3b3JrIGRldmljZSBpbnRlcnJ1cHRzIGFuZCBuZXR3b3JrIHRp bWVvdXQgZXZlbnRzLiAgVGhpcwojIHRocmVhZCBzaG91bGQgaGF2ZSBoaWdo ZXIgcHJpb3JpdHkgdGhhbiB0aGUgYmFja2dyb3VuZCBuZXR3b3JrCiMgdGhy ZWFkLiAgSXQgaXMgcmVhc29uYWJsZSB0byBzZXQgdGhpcyB0aHJlYWQncyBw cmlvcml0eSBoaWdoZXIgdGhhbgojIGFwcGxpY2F0aW9uIHRocmVhZHMgZm9y IGJlc3QgbmV0d29yayB0aHJvdWdocHV0LCBvciB0byBzZXQgaXQgbG93ZXIK IyB0aGFuIGFwcGxpY2F0aW9uIHRocmVhZHMgZm9yIGJlc3QgbGF0ZW5jeSBm b3IgdGhvc2UgYXBwbGljYXRpb24KIyB0aHJlYWRzIHRoZW1zZWx2ZXMsIHBv dGVudGlhbGx5IGF0IGEgY29zdCB0byBuZXR3b3JrIHRocm91Z2hwdXQuCiMK Y2RsX29wdGlvbiBDWUdQS0dfTkVUX0ZBU1RfVEhSRUFEX1BSSU9SSVRZIHsK ICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29t bWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAj IHVzZXJfdmFsdWUgNgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAg IyBEZWZhdWx0IHZhbHVlOiBDWUdQS0dfTkVUX1RIUkVBRF9QUklPUklUWSAt IDEKICAgICMgICAgIENZR1BLR19ORVRfVEhSRUFEX1BSSU9SSVRZID09IDcK ICAgICMgICAtLT4gNgp9OwoKIyBOdW1iZXIgb2YgQlBGIGZpbHRlcnMKIyBU aGlzIG9wdGlvbiBjb250cm9scyB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBCUEYg ZmlsdGVycy4KIwpjZGxfb3B0aW9uIENZR1BLR19ORVRfTkJQRiB7CiAgICAj IEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogMAp9OwoKIyBOdW1iZXIgb2YgYnJpZGdlIGJ1ZmZlcnM/ CiMgVGhpcyBvcHRpb24gY29udHJvbHMgdGhlIG51bWJlciBvZiBicmlkZ2Ug YnVmZmVycyBhbmQgaW5kZWVkCiMgd2hldGhlciBicmlkZ2luZyBjb2RlIGlz IGVuYWJsZWQgYXQgYWxsIHZpYSAnc3RhbmRhcmQnCiMgc3ltYm9sIE5CUklE R0UuCiMKY2RsX29wdGlvbiBDWUdQS0dfTkVUX05CUklER0UgewogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1 bHQgdmFsdWU6IDAKfTsKCiMgTnVtYmVyIG9mIEdJRiB0aGluZ3MKIyBUaGlz IG9wdGlvbiBjb250cm9scyB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBHSUYgdGhp bmdzLgojCmNkbF9vcHRpb24gQ1lHUEtHX05FVF9OR0lGIHsKICAgICMgRmxh dm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0 IHZhbHVlOiAwCn07CgojIE51bWJlciBvZiBsb29wYmFjayBpbnRlcmZhY2Vz CiMgVGhpcyBvcHRpb24gY29udHJvbHMgdGhlIG51bWJlciBvZiBsb29wYmFj aywgaS5lLiBsb2NhbCwgaW50ZXJmYWNlcy4KIyBUaGVyZSBpcyBzZWxkb20g bmVlZCBmb3IgdGhpcyB2YWx1ZSB0byBiZSBhbnl0aGluZyBvdGhlciB0aGFu IG9uZS4KIyBJZiBhIGRpZmZlcmVudCB2YWx1ZSBpcyByZXF1aXJlZCwgdGhl biB0aGUgQyBsaWJyYXJ5IFNURElPIHBhY2thZ2UKIyBpcyByZXF1aXJlZCBm b3Igc3ByaW50ZigpLgojCmNkbF9vcHRpb24gQ1lHUEtHX05FVF9OTE9PUCB7 CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNv bW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAg IyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAg ICMgRGVmYXVsdCB2YWx1ZTogMQogICAgIyBSZXF1aXJlczogIChDWUdQS0df TkVUX05MT09QID4gMSkgPyBDWUdQS0dfTElCQ19TVERJTyA6IDEgIAogICAg IyAgICAgQ1lHUEtHX05FVF9OTE9PUCA9PSAxCiAgICAjICAgICBDWUdQS0df TElCQ19TVERJTyA9PSBjdXJyZW50CiAgICAjICAgLS0+IDEKCiAgICAjIFRo ZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2 YWx1ZQogICAgIyBvcHRpb24gQ1lHUEtHX05FVF9OTE9PUAogICAgIyAgICAg UmVxdWlyZXM6ICAoQ1lHUEtHX05FVF9OTE9PUCA+IDEpID8gQ1lHUEtHX0xJ QkNfU1RESU8gOiAxICAKfTsKCiMgTWVtb3J5IGRlc2lnbmF0ZWQgZm9yIG5l dHdvcmtpbmcgYnVmZmVycy4KIyBUaGlzIG9wdGlvbiBjb250cm9scyB0aGUg YW1vdW50IG9mIG1lbW9yeSBwcmUtYWxsb2NhdGVkCiMgZm9yIGJ1ZmZlcnMg dXNlZCBieSB0aGUgbmV0d29ya2luZyBjb2RlLgojCmNkbF9vcHRpb24gQ1lH UEtHX05FVF9NRU1fVVNBR0UgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMg Tm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0 byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAyNjIxNDQKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMjYy MTQ0Cn07CgojIE51bWJlciBvZiBzdXBwb3J0ZWQgcGVuZGluZyBuZXR3b3Jr IGV2ZW50cwojIFRoaXMgb3B0aW9uIGNvbnRyb2xzIHRoZSBudW1iZXIgb2Yg cGVuZGluZyBuZXR3b3JrIGV2ZW50cwojIHVzZWQgYnkgdGhlIG5ldHdvcmtp bmcgY29kZS4KIwpjZGxfb3B0aW9uIENZR1BLR19ORVRfTlVNX1dBS0VVUF9F VkVOVFMgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSA4CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDgKfTsKCiMgTmV0d29ya2luZyBz dXBwb3J0IGJ1aWxkIG9wdGlvbnMKIwpjZGxfY29tcG9uZW50IENZR1BLR19O RVRfT1BUSU9OUyB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFs dWUuCn07CgojID4KIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzCiMgVGhp cyBvcHRpb24gbW9kaWZpZXMgdGhlIHNldCBvZiBjb21waWxlciBmbGFncyBm b3IKIyBidWlsZGluZyB0aGUgbmV0d29ya2luZyBwYWNrYWdlLgojIFRoZXNl IGZsYWdzIGFyZSB1c2VkIGluIGFkZGl0aW9uCiMgdG8gdGhlIHNldCBvZiBn bG9iYWwgZmxhZ3MuCiMKY2RsX29wdGlvbiBDWUdQS0dfTkVUX0NGTEFHU19B REQgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAiLURfS0VSTkVMIC1EX19FQ09TIgogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAiLURf S0VSTkVMIC1EX19FQ09TIgp9OwoKIyBTdXBwcmVzc2VkIGNvbXBpbGVyIGZs YWdzCiMgVGhpcyBvcHRpb24gbW9kaWZpZXMgdGhlIHNldCBvZiBjb21waWxl ciBmbGFncyBmb3IKIyBidWlsZGluZyB0aGUgbmV0d29ya2luZyBwYWNrYWdl LiBUaGVzZSBmbGFncyBhcmUgcmVtb3ZlZCBmcm9tCiMgdGhlIHNldCBvZiBn bG9iYWwgZmxhZ3MgaWYgcHJlc2VudC4KIwpjZGxfb3B0aW9uIENZR1BLR19O RVRfQ0ZMQUdTX1JFTU9WRSB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICIiCiAgICAjIHZhbHVl X3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICIiCn07Cgoj IDwKIyBCdWlsZCBuZXR3b3JraW5nIHRlc3RzIChkZW1vIHByb2dyYW1zKQoj IFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIGJ1aWxkaW5nIG9mIGFkZGl0aW9u YWwgbmV0d29yayB0ZXN0cwojIHdoaWNoIGF0IHRoaXMgdGltZSBhcmUganVz dCBkZW1vczsgb3RoZXJ3aXNlIG9ubHkgbG9vcGJhY2sKIyBpbnRlcmZhY2Ug dGVzdHMgd2lsbCBiZSBidWlsdC4KIwpjZGxfY29tcG9uZW50IENZR1BLR19O RVRfQlVJTERfVEVTVFMgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKCiAgICAjIFRo ZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2 YWx1ZQogICAgIyBvcHRpb24gQ1lHUEtHX05FVF9URVNUUwogICAgIyAgICAg Q2FsY3VsYXRlZDogIENZR1BLR19ORVRfQlVJTERfVEVTVFMgPyAgInRlc3Rz L21idWZfdGVzdCAgdGVzdHMvc29ja2V0X3Rlc3QgIHRlc3RzL2Z0cF90ZXN0 ICB0ZXN0cy9zZXJ2ZXJfdGVzdCAgdGVzdHMvbmNfdGVzdF9tYXN0ZXIgIHRl c3RzL25jX3Rlc3Rfc2xhdmUgIHRlc3RzL3RmdHBfY2xpZW50X3Rlc3QgIHRl c3RzL3RmdHBfc2VydmVyX3Rlc3QgIHRlc3RzL3RjcF9lY2hvICB0ZXN0cy9z ZXRfbWFjX2FkZHJlc3MgIHRlc3RzL2JyaWRnZSAgdGVzdHMvZmxvb2QgIHRl c3RzL3BpbmdfdGVzdCAgdGVzdHMvZGhjcF90ZXN0ICB0ZXN0cy9waW5nX2xv X3Rlc3QgIHRlc3RzL3RjcF9sb190ZXN0ICB0ZXN0cy91ZHBfbG9fdGVzdCAg dGVzdHMvbXVsdGlfbG9fc2VsZWN0ICB0ZXN0cy90Y3BfbG9fc2VsZWN0Igog ICAgIyAgICAgCSAgICA6CiAgICAjICAgICAJICAgICAgICAgICAgInRlc3Rz L3BpbmdfbG9fdGVzdCAgdGVzdHMvdGNwX2xvX3Rlc3QgIHRlc3RzL3VkcF9s b190ZXN0ICB0ZXN0cy9tdWx0aV9sb19zZWxlY3QgIHRlc3RzL3RjcF9sb19z ZWxlY3QiCiAgICAjICAgICAJCn07CgojID4KIyBOZXR3b3JraW5nIHRlc3Rz CiMgVGhpcyBvcHRpb24gc3BlY2lmaWVzIHRoZSBzZXQgb2YgdGVzdHMKIyBm b3IgdGhlIG5ldHdvcmtpbmcgcGFja2FnZS4KIwpjZGxfb3B0aW9uIENZR1BL R19ORVRfVEVTVFMgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZl CiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX05FVF9CVUlMRF9URVNUUyBpcyBk aXNhYmxlZAoKICAgICMgQ2FsY3VsYXRlZCB2YWx1ZTogIENZR1BLR19ORVRf QlVJTERfVEVTVFMgPyAgInRlc3RzL21idWZfdGVzdCAgdGVzdHMvc29ja2V0 X3Rlc3QgIHRlc3RzL2Z0cF90ZXN0ICB0ZXN0cy9zZXJ2ZXJfdGVzdCAgdGVz dHMvbmNfdGVzdF9tYXN0ZXIgIHRlc3RzL25jX3Rlc3Rfc2xhdmUgIHRlc3Rz L3RmdHBfY2xpZW50X3Rlc3QgIHRlc3RzL3RmdHBfc2VydmVyX3Rlc3QgIHRl c3RzL3RjcF9lY2hvICB0ZXN0cy9zZXRfbWFjX2FkZHJlc3MgIHRlc3RzL2Jy aWRnZSAgdGVzdHMvZmxvb2QgIHRlc3RzL3BpbmdfdGVzdCAgdGVzdHMvZGhj cF90ZXN0ICB0ZXN0cy9waW5nX2xvX3Rlc3QgIHRlc3RzL3RjcF9sb190ZXN0 ICB0ZXN0cy91ZHBfbG9fdGVzdCAgdGVzdHMvbXVsdGlfbG9fc2VsZWN0ICB0 ZXN0cy90Y3BfbG9fc2VsZWN0IgogICAgIyAgICAgCSAgICA6CiAgICAjICAg ICAJICAgICAgICAgICAgInRlc3RzL3BpbmdfbG9fdGVzdCAgdGVzdHMvdGNw X2xvX3Rlc3QgIHRlc3RzL3VkcF9sb190ZXN0ICB0ZXN0cy9tdWx0aV9sb19z ZWxlY3QgIHRlc3RzL3RjcF9sb19zZWxlY3QiCiAgICAjICAgICAJCiAgICAj ICAgICBDWUdQS0dfTkVUX0JVSUxEX1RFU1RTID09IDAKICAgICMgRmxhdm9y OiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IHRlc3RzL3BpbmdfbG9fdGVz dCAgdGVzdHMvdGNwX2xvX3Rlc3QgIHRlc3RzL3VkcF9sb190ZXN0ICB0ZXN0 cy9tdWx0aV9sb19zZWxlY3QgIHRlc3RzL3RjcF9sb19zZWxlY3QKfTsKCiMg VXNlIHJlYWwtdGltZSByZXNwb25zZSB0ZXN0IGhhcm5lc3MgKGlmIGF2YWls YWJsZSkKIyBQbGF0Zm9ybSBhbmQvb3IgZXRoZXJuZXQgZGV2aWNlIGRyaXZl ciBwYWNrYWdlcyBtYXkKIyBwcm92aWRlIGEgdGVzdCBoYXJuZXNzIHRvIHZl cmlmeSB0aGF0IGludGVycnVwdHMgYXJlCiMgbm90IGRpc2FibGVkIG9yIGZs b29kZWQgZm9yIHRvbyBsb25nIGR1cmluZyBhIHRlc3QuICBJZgojIHN1Y2gg aXMgcHJvdmlkZWQsIENZR1RTVF9ERVZTX0VUSF9URVNUX05FVF9SRUFMVElN RSBpcwojIGRlZmluZWQgYW5kIGNhbiBiZSAjaW5jbHVkZSdkIHRvIGFjcXVp cmUgdGhlIHN1cHBvcnQuCiMgU29tZSB0ZXN0cyBpbiB0aGUgVENQL0lQIHN0 YWNrIGNhbiB1c2UgdGhpcyBoYXJuZXNzOwojIHRoaXMgb3B0aW9uIGNvbnRy b2xzIHdoZXRoZXIgdGhleSBkby4gIFRoZSBTdHJvbmdBUk0KIyBFQlNBMjg1 IEV0aGVybmV0IGRldmljZSBkcml2ZXIgaXMgb25lIHBhY2thZ2UgdGhhdAoj IHByb3ZpZGVzIHN1Y2ggYSBoYXJuZXNzLiAgU2VlIHRoZSBmaWxlCiMgdGVz dHMvdGVzdF9uZXRfcmVhbHRpbWUuaCBpbiB0aGVyZSBmb3IgZGV0YWlscy4K IwpjZGxfb3B0aW9uIENZR1BLR19ORVRfVEVTVFNfVVNFX1JUX1RFU1RfSEFS TkVTUyB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMg VGhlIHBhcmVudCBDWUdQS0dfTkVUX0JVSUxEX1RFU1RTIGlzIGRpc2FibGVk CgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6IDAKfTsKCiMgPAojIE5ldHdvcmsgZHJpdmVy cwojCmNkbF9pbnRlcmZhY2UgQ1lHSFdSX05FVF9EUklWRVJTIHsKICAgICMg SW1wbGVtZW50ZWQgYnkgQ1lHUEtHX0RFVlNfRVRIX0k4MjU1OSwgYWN0aXZl LCBlbmFibGVkCiAgICAjIEltcGxlbWVudGVkIGJ5IENZR1BLR19ERVZTX0VU SF9JODI1NTksIGFjdGl2ZSwgZW5hYmxlZAogICAgIyBUaGlzIHZhbHVlIGNh bm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAg ICMgQ3VycmVudF92YWx1ZTogMgoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9w ZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGNvbXBv bmVudCBDWUdQS0dfTkVUX0RIQ1AKICAgICMgICAgIEFjdGl2ZUlmOiAoQ1lH SFdSX05FVF9EUklWRVJTID4gMCkKfTsKCiMgRG9lcyB0aGUgaGFyZHdhcmUg cHJvdmlkZSBhbiAnZXRoMCcgZGV2aWNlPwojCmNkbF9pbnRlcmZhY2UgQ1lH SFdSX05FVF9EUklWRVJfRVRIMCB7CiAgICAjIEltcGxlbWVudGVkIGJ5IENZ R1BLR19ERVZTX0VUSF9JODI1NTksIGFjdGl2ZSwgZW5hYmxlZAogICAgIyBU aGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2 b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMQoKICAgICMgVGhlIGZv bGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVl CiAgICAjIGNvbXBvbmVudCBDWUdIV1JfTkVUX0RSSVZFUl9FVEgwX1NFVFVQ X09QVElPTlMKICAgICMgICAgIEFjdGl2ZUlmOiAoQ1lHSFdSX05FVF9EUklW RVJfRVRIMCA9PSAxKQp9OwoKIyBJbml0aWFsaXphdGlvbiBvcHRpb25zIGZv ciAnZXRoMCcKIwpjZGxfY29tcG9uZW50IENZR0hXUl9ORVRfRFJJVkVSX0VU SDBfU0VUVVBfT1BUSU9OUyB7CiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFpbnQ6 IChDWUdIV1JfTkVUX0RSSVZFUl9FVEgwID09IDEpCiAgICAjICAgICBDWUdI V1JfTkVUX0RSSVZFUl9FVEgwID09IDEKICAgICMgICAtLT4gMQoKICAgICMg VGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIEluaXRp YWxpemF0aW9uIG9wdGlvbnMgZm9yICdldGgwJwojCmNkbF9pbnRlcmZhY2Ug Q1lHSFdSX05FVF9EUklWRVJfRVRIMF9TRVRVUCB7CiAgICAjIEltcGxlbWVu dGVkIGJ5IENZR0hXUl9ORVRfRFJJVkVSX0VUSDBfTUFOVUFMLCBhY3RpdmUs IGRpc2FibGVkCiAgICAjIEltcGxlbWVudGVkIGJ5IENZR0hXUl9ORVRfRFJJ VkVSX0VUSDBfQk9PVFAsIGFjdGl2ZSwgZW5hYmxlZAogICAgIyBJbXBsZW1l bnRlZCBieSBDWUdIV1JfTkVUX0RSSVZFUl9FVEgwX0FERFJTLCBhY3RpdmUs IGRpc2FibGVkCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVk IGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVl OiAxCiAgICAjIFJlcXVpcmVzOiAxID09IENZR0hXUl9ORVRfRFJJVkVSX0VU SDBfU0VUVVAKICAgICMgICAgIENZR0hXUl9ORVRfRFJJVkVSX0VUSDBfU0VU VVAgPT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHBy b3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50 ZXJmYWNlIENZR0hXUl9ORVRfRFJJVkVSX0VUSDBfU0VUVVAKICAgICMgICAg IFJlcXVpcmVzOiAxID09IENZR0hXUl9ORVRfRFJJVkVSX0VUSDBfU0VUVVAK fTsKCiMgSW5pdGlhbGl6ZSAnZXRoMCcgbWFudWFsbHk/CiMgSWYgdGhpcyBv cHRpb24gaXMgc2VsZWN0ZWQsIHRoZSBlQ29zIGxpYnJhcnkgcHJvdmlkZXMg bm8KIyBpbml0aWFsaXphdGlvbiBjb2RlIGZvciB0aGlzIGludGVyZmFjZTsg eW91IG11c3QgcGVyZm9ybQojIGFsbCB0aGUgaW5pdGlhbGl6YXRpb24gaW4g dGhlIGFwcGxpY2F0aW9uLCBieSBtZWFucyBvZgojIGFwcHJvcHJpYXRlIGlv Y3RsKCkgY2FsbHMsIG9yIGJ5IGNhbGxpbmcgaW5pdF9uZXQoKSB3aXRoIGFu CiMgYXBwcm9wcmlhdGUgYm9vdHAgcmVjb3JkIHlvdSBoYXZlIGNvbnN0cnVj dGVkIHlvdXJzZWxmLgojCmNkbF9jb21wb25lbnQgQ1lHSFdSX05FVF9EUklW RVJfRVRIMF9NQU5VQUwgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKfTsKCiMgVXNl IEJPT1RQL0RIQ1AgdG8gaW5pdGlhbGl6ZSAnZXRoMCc/CiMgSWYgdGhpcyBv cHRpb24gaXMgc2VsZWN0ZWQsIGluaXRfYWxsX25ldHdvcmtfaW50ZXJmYWNl cygpCiMgd2lsbCB1c2UgREhDUCBvciBCT09UUCB0byBhY3F1aXJlIGluaXRp YWxpemF0aW9uIGRhdGEgZm9yCiMgdGhpcyBpbnRlcmZhY2UsIGFuZCB0aGVu IHNldCBpdCB1cCBhY2NvcmRpbmdseS4KIwpjZGxfY29tcG9uZW50IENZR0hX Ul9ORVRfRFJJVkVSX0VUSDBfQk9PVFAgewogICAgIyBGbGF2b3I6IGJvb2wK ICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEK fTsKCiMgPgojIFVzZSBESENQIHJhdGhlciB0aGFuIEJPT1RQIGZvciAnZXRo MCc/CiMKY2RsX29wdGlvbiBDWUdIV1JfTkVUX0RSSVZFUl9FVEgwX0RIQ1Ag ewogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBDWUdQS0dfTkVUX0RIQ1AK ICAgICMgICAgIENZR1BLR19ORVRfREhDUCA9PSAxCiAgICAjICAgLS0+IDEK CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNv bW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAg IyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAg ICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyBTaG93IEJPT1RQL0RIQ1AgaW5p dGlhbGl6YXRpb24gdmFsdWVzPwojCmNkbF9vcHRpb24gQ1lHSFdSX05FVF9E UklWRVJfRVRIMF9CT09UUF9TSE9XIHsKICAgICMgRmxhdm9yOiBib29sCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07 CgojIDwKIyBBZGRyZXNzIHNldHVwcyBmb3IgJ2V0aDAnCiMgVGhlc2Ugb3B0 aW9ucyBsZXQgeW91IGNvbmZpZ3VyZSBhbGwgdGhlIGluaXRpYWxpemF0aW9u IGRhdGEKIyB0aGF0IGluaXRfYWxsX25ldHdvcmtfaW50ZXJmYWNlcygpIHdp bGwgdXNlCiMgZm9yICdldGgwJyBzdGF0aWNhbGx5LiAgQmUgY2FyZWZ1bCB3 aGVuIGRvaW5nIHRoaXMsIGJlY2F1c2UKIyBpZiB5b3UgcnVuIHRoZSBzYW1l IGFwcGxpY2F0aW9uIGltYWdlIG9uIG11bHRpcGxlIGJvYXJkcywKIyB0aGV5 IHdpbGwgaGF2ZSBpZGVudGljYWwgSVAgYWRkcmVzc2VzIGFuZCBzbyBvbjsg dGhpcyBpcyBhCiMgQmFkIFRoaW5nLgojIFRoZSB2YWx1ZXMgeW91IHNldCBh cmUgaW5zZXJ0ZWQgaW4gYSBib290cC1zdHlsZSByZWNvcmQKIyB0aGF0IGlz IGZlZCBpbnRvIGEgY29tbW9uIHNldHVwIHJvdXRpbmUgdG8gY29uZmlndXJl IHRoZQojIGludGVyZmFjZS4gIFRoYXQgcm91dGluZSBkb2VzIG5vdCBpbiBm YWN0IHVzZSB0aGUgJ1NlcnZlcgojIElQIGFkZHJlc3MnIGZpZWxkLgojIFRo ZSBib290cCByZWNvcmQgaXMgYWxzbyBhdmFpbGFibGUgdG8gYXBwbGljYXRp b24gY29kZSwgYW5kCiMgc29tZSBlQ29zIG5ldHdvcmtpbmcgdGVzdCBwcm9n cmFtcyB1c2UgdGhlICdTZXJ2ZXIgSVAKIyBhZGRyZXNzJyBmaWVsZCB0byBt ZWFuICdhIG1hY2hpbmUgd2UgY2FuIGludGVyYWN0IHdpdGgnIGZvcgojIGV4 YW1wbGUgdG8gcGluZyBvciBwZXJmb3JtIGZ0cCB3aXRoLiAgVGhhdCBpcyB0 aGUgcmF0aW9uYWxlCiMgZm9yIGl0cyBpbmNsdXNpb24gaGVyZS4KIyBUaGUg Z2F0ZXdheSBhZGRyZXNzIGlzIHVzZWQgdG8gc2V0IHVwIGEgZGVmYXVsdCBy b3V0ZSBpZgojIG5vbnplcm8uICBJZiB5b3UgaGF2ZSBtb3JlIHRoYW4gb25l IGludGVyZmFjZSwgc2V0dGluZyB1cAojIG1vcmUgdGhhbiBvbmUgZGVmYXVs dCByb3V0ZSBpcyB3aWxsIGNhdXNlIG1hbGZ1bmN0aW9ucy4gIEEKIyBnYXRl d2F5IGFkZHJlc3Mgb2YgMC4wLjAuMCBjYW4gYmUgc2V0IHRvIHByZXZlbnQg dGhhdCByb3V0ZQojIHNldHVwLiAgT2YgY291cnNlLCB5b3VyIGFwcGxpY2F0 aW9uIGNhbiBhZGQgcmVhbCByb3V0ZXMKIyBvbmNlIHRoZSBpbnRlcmZhY2Uo cykgaW5pdGlhbGl6YXRpb24gaXMgY29tcGxldGUuCiMKY2RsX2NvbXBvbmVu dCBDWUdIV1JfTkVUX0RSSVZFUl9FVEgwX0FERFJTIHsKICAgICMgRmxhdm9y OiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg MAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiAwCn07CgojID4KIyBJUCBhZGRyZXNzIGZvciAnZXRoMCcKIwpjZGxf b3B0aW9uIENZR0hXUl9ORVRfRFJJVkVSX0VUSDBfQUREUlNfSVAgewogICAg IyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQg Q1lHSFdSX05FVF9EUklWRVJfRVRIMF9BRERSUyBpcyBkaXNhYmxlZAoKICAg ICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgMTkyLjE2OC4xLjIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMTkyLjE2OC4xLjIKfTsKCiMgTmV0 d29yayBtYXNrIGFkZHJlc3MgZm9yICdldGgwJwojCmNkbF9vcHRpb24gQ1lH SFdSX05FVF9EUklWRVJfRVRIMF9BRERSU19ORVRNQVNLIHsKICAgICMgVGhp cyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR0hX Ul9ORVRfRFJJVkVSX0VUSDBfQUREUlMgaXMgZGlzYWJsZWQKCiAgICAjIEZs YXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDI1NS4yNTUuMjU1LjAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMjU1LjI1NS4yNTUuMAp9OwoKIyBCcm9h ZGNhc3QgYWRkcmVzcyBmb3IgJ2V0aDAnCiMKY2RsX29wdGlvbiBDWUdIV1Jf TkVUX0RSSVZFUl9FVEgwX0FERFJTX0JST0FEQ0FTVCB7CiAgICAjIFRoaXMg b3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdIV1Jf TkVUX0RSSVZFUl9FVEgwX0FERFJTIGlzIGRpc2FibGVkCgogICAgIyBGbGF2 b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAxOTIuMTY4LjEuMjU1CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6IDE5Mi4xNjguMS4yNTUKfTsKCiMgR2F0ZXdh eS9yb3V0ZXIgSVAgYWRkcmVzcyBmb3IgJ2V0aDAnCiMKY2RsX29wdGlvbiBD WUdIV1JfTkVUX0RSSVZFUl9FVEgwX0FERFJTX0dBVEVXQVkgewogICAgIyBU aGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lH SFdSX05FVF9EUklWRVJfRVRIMF9BRERSUyBpcyBkaXNhYmxlZAoKICAgICMg Rmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgMTkyLjE2OC4xLjEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMTkyLjE2OC4xLjEKfTsKCiMgU2VydmVy IElQIGFkZHJlc3MgZm9yICdldGgwJwojCmNkbF9vcHRpb24gQ1lHSFdSX05F VF9EUklWRVJfRVRIMF9BRERSU19TRVJWRVIgewogICAgIyBUaGlzIG9wdGlv biBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHSFdSX05FVF9E UklWRVJfRVRIMF9BRERSUyBpcyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBk YXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMTky LjE2OC4xLjEwMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAxOTIuMTY4LjEuMTAxCn07CgojIDwKIyA8CiMgRG9l cyB0aGUgaGFyZHdhcmUgcHJvdmlkZSBhbiAnZXRoMScgZGV2aWNlPwojCmNk bF9pbnRlcmZhY2UgQ1lHSFdSX05FVF9EUklWRVJfRVRIMSB7CiAgICAjIElt cGxlbWVudGVkIGJ5IENZR1BLR19ERVZTX0VUSF9JODI1NTksIGFjdGl2ZSwg ZW5hYmxlZAogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBo ZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTog MQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3Rl ZCBieSB0aGlzIHZhbHVlCiAgICAjIGNvbXBvbmVudCBDWUdIV1JfTkVUX0RS SVZFUl9FVEgxX1NFVFVQX09QVElPTlMKICAgICMgICAgIEFjdGl2ZUlmOiAo Q1lHSFdSX05FVF9EUklWRVJfRVRIMSA9PSAxKQp9OwoKIyBJbml0aWFsaXph dGlvbiBvcHRpb25zIGZvciAnZXRoMScKIwpjZGxfY29tcG9uZW50IENZR0hX Ul9ORVRfRFJJVkVSX0VUSDFfU0VUVVBfT1BUSU9OUyB7CiAgICAjIEFjdGl2 ZUlmIGNvbnN0cmFpbnQ6IChDWUdIV1JfTkVUX0RSSVZFUl9FVEgxID09IDEp CiAgICAjICAgICBDWUdIV1JfTkVUX0RSSVZFUl9FVEgxID09IDEKICAgICMg ICAtLT4gMQoKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4K fTsKCiMgPgojIEluaXRpYWxpemF0aW9uIG9wdGlvbnMgZm9yICdldGgxJwoj CmNkbF9pbnRlcmZhY2UgQ1lHSFdSX05FVF9EUklWRVJfRVRIMV9TRVRVUCB7 CiAgICAjIEltcGxlbWVudGVkIGJ5IENZR0hXUl9ORVRfRFJJVkVSX0VUSDFf TUFOVUFMLCBhY3RpdmUsIGRpc2FibGVkCiAgICAjIEltcGxlbWVudGVkIGJ5 IENZR0hXUl9ORVRfRFJJVkVSX0VUSDFfQk9PVFAsIGFjdGl2ZSwgZW5hYmxl ZAogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdIV1JfTkVUX0RSSVZFUl9FVEgx X0FERFJTLCBhY3RpdmUsIGRpc2FibGVkCiAgICAjIFRoaXMgdmFsdWUgY2Fu bm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAg IyBDdXJyZW50X3ZhbHVlOiAxCiAgICAjIFJlcXVpcmVzOiAxID09IENZR0hX Ul9ORVRfRFJJVkVSX0VUSDFfU0VUVVAKICAgICMgICAgIENZR0hXUl9ORVRf RFJJVkVSX0VUSDFfU0VUVVAgPT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBU aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMg dmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0hXUl9ORVRfRFJJVkVSX0VUSDFf U0VUVVAKICAgICMgICAgIFJlcXVpcmVzOiAxID09IENZR0hXUl9ORVRfRFJJ VkVSX0VUSDFfU0VUVVAKfTsKCiMgSW5pdGlhbGl6ZSAnZXRoMScgbWFudWFs bHk/CiMgSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRoZSBlQ29zIGxp YnJhcnkgcHJvdmlkZXMgbm8KIyBpbml0aWFsaXphdGlvbiBjb2RlIGZvciB0 aGlzIGludGVyZmFjZTsgeW91IG11c3QgcGVyZm9ybQojIGFsbCB0aGUgaW5p dGlhbGl6YXRpb24gaW4gdGhlIGFwcGxpY2F0aW9uLCBieSBtZWFucyBvZgoj IGFwcHJvcHJpYXRlIGlvY3RsKCkgY2FsbHMsIG9yIGJ5IGNhbGxpbmcgaW5p dF9uZXQoKSB3aXRoIGFuCiMgYXBwcm9wcmlhdGUgYm9vdHAgcmVjb3JkIHlv dSBoYXZlIGNvbnN0cnVjdGVkIHlvdXJzZWxmLgojCmNkbF9jb21wb25lbnQg Q1lHSFdSX05FVF9EUklWRVJfRVRIMV9NQU5VQUwgewogICAgIyBGbGF2b3I6 IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAw CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFs dWU6IDAKfTsKCiMgVXNlIEJPT1RQL0RIQ1AgdG8gaW5pdGlhbGl6ZSAnZXRo MSc/CiMgSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIGluaXRfYWxsX25l dHdvcmtfaW50ZXJmYWNlcygpCiMgd2lsbCB1c2UgREhDUCBvciBCT09UUCB0 byBhY3F1aXJlIGluaXRpYWxpemF0aW9uIGRhdGEgZm9yCiMgdGhpcyBpbnRl cmZhY2UsIGFuZCB0aGVuIHNldCBpdCB1cCBhY2NvcmRpbmdseS4KIwpjZGxf Y29tcG9uZW50IENZR0hXUl9ORVRfRFJJVkVSX0VUSDFfQk9PVFAgewogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDEKfTsKCiMgPgojIFVzZSBESENQIHJhdGhlciB0aGFu IEJPT1RQIGZvciAnZXRoMSc/CiMKY2RsX29wdGlvbiBDWUdIV1JfTkVUX0RS SVZFUl9FVEgxX0RIQ1AgewogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBD WUdQS0dfTkVUX0RIQ1AKICAgICMgICAgIENZR1BLR19ORVRfREhDUCA9PSAx CiAgICAjICAgLS0+IDEKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291 cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyBTaG93 IEJPT1RQL0RIQ1AgaW5pdGlhbGl6YXRpb24gdmFsdWVzPwojCmNkbF9vcHRp b24gQ1lHSFdSX05FVF9EUklWRVJfRVRIMV9CT09UUF9TSE9XIHsKICAgICMg Rmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAxCn07CgojIDwKIyBBZGRyZXNzIHNldHVwcyBmb3IgJ2V0 aDEnCiMgVGhlc2Ugb3B0aW9ucyBsZXQgeW91IGNvbmZpZ3VyZSBhbGwgdGhl IGluaXRpYWxpemF0aW9uIGRhdGEKIyB0aGF0IGluaXRfYWxsX25ldHdvcmtf aW50ZXJmYWNlcygpIHdpbGwgdXNlCiMgZm9yICdldGgxJyBzdGF0aWNhbGx5 LiAgQmUgY2FyZWZ1bCB3aGVuIGRvaW5nIHRoaXMsIGJlY2F1c2UKIyBpZiB5 b3UgcnVuIHRoZSBzYW1lIGFwcGxpY2F0aW9uIGltYWdlIG9uIG11bHRpcGxl IGJvYXJkcywKIyB0aGV5IHdpbGwgaGF2ZSBpZGVudGljYWwgSVAgYWRkcmVz c2VzIGFuZCBzbyBvbjsgdGhpcyBpcyBhCiMgQmFkIFRoaW5nLgojIFRoZSB2 YWx1ZXMgeW91IHNldCBhcmUgaW5zZXJ0ZWQgaW4gYSBib290cC1zdHlsZSBy ZWNvcmQKIyB0aGF0IGlzIGZlZCBpbnRvIGEgY29tbW9uIHNldHVwIHJvdXRp bmUgdG8gY29uZmlndXJlIHRoZQojIGludGVyZmFjZS4gIFRoYXQgcm91dGlu ZSBkb2VzIG5vdCBpbiBmYWN0IHVzZSB0aGUgJ1NlcnZlcgojIElQIGFkZHJl c3MnIGZpZWxkLgojIFRoZSBib290cCByZWNvcmQgaXMgYWxzbyBhdmFpbGFi bGUgdG8gYXBwbGljYXRpb24gY29kZSwgYW5kCiMgc29tZSBlQ29zIG5ldHdv cmtpbmcgdGVzdCBwcm9ncmFtcyB1c2UgdGhlICdTZXJ2ZXIgSVAKIyBhZGRy ZXNzJyBmaWVsZCB0byBtZWFuICdhIG1hY2hpbmUgd2UgY2FuIGludGVyYWN0 IHdpdGgnIGZvcgojIGV4YW1wbGUgdG8gcGluZyBvciBwZXJmb3JtIGZ0cCB3 aXRoLiAgVGhhdCBpcyB0aGUgcmF0aW9uYWxlCiMgZm9yIGl0cyBpbmNsdXNp b24gaGVyZS4KIyBUaGUgZ2F0ZXdheSBhZGRyZXNzIGlzIHVzZWQgdG8gc2V0 IHVwIGEgZGVmYXVsdCByb3V0ZSBpZgojIG5vbnplcm8uICBJZiB5b3UgaGF2 ZSBtb3JlIHRoYW4gb25lIGludGVyZmFjZSwgc2V0dGluZyB1cAojIG1vcmUg dGhhbiBvbmUgZGVmYXVsdCByb3V0ZSBpcyB3aWxsIGNhdXNlIG1hbGZ1bmN0 aW9ucy4gIEEKIyBnYXRld2F5IGFkZHJlc3Mgb2YgMC4wLjAuMCBjYW4gYmUg c2V0IHRvIHByZXZlbnQgdGhhdCByb3V0ZQojIHNldHVwLiAgT2YgY291cnNl LCB5b3VyIGFwcGxpY2F0aW9uIGNhbiBhZGQgcmVhbCByb3V0ZXMKIyBvbmNl IHRoZSBpbnRlcmZhY2UocykgaW5pdGlhbGl6YXRpb24gaXMgY29tcGxldGUu CiMgVGhpcyBpbnRlcmZhY2UgJ2V0aDEnIGhhcyBubyByb3V0ZSBzZXQgdXAg aW4gdGhlIGRlZmF1bHQKIyBjb25maWd1cmF0aW9uLgojCmNkbF9jb21wb25l bnQgQ1lHSFdSX05FVF9EUklWRVJfRVRIMV9BRERSUyB7CiAgICAjIEZsYXZv cjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2 YWx1ZTogMAp9OwoKIyA+CiMgSVAgYWRkcmVzcyBmb3IgJ2V0aDEnCiMKY2Rs X29wdGlvbiBDWUdIV1JfTkVUX0RSSVZFUl9FVEgxX0FERFJTX0lQIHsKICAg ICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50 IENZR0hXUl9ORVRfRFJJVkVSX0VUSDFfQUREUlMgaXMgZGlzYWJsZWQKCiAg ICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDE5Mi4xNjguMS4yCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDE5Mi4xNjguMS4yCn07CgojIE5l dHdvcmsgbWFzayBhZGRyZXNzIGZvciAnZXRoMScKIwpjZGxfb3B0aW9uIENZ R0hXUl9ORVRfRFJJVkVSX0VUSDFfQUREUlNfTkVUTUFTSyB7CiAgICAjIFRo aXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdI V1JfTkVUX0RSSVZFUl9FVEgxX0FERFJTIGlzIGRpc2FibGVkCgogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAyNTUuMjU1LjI1NS4wCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDI1NS4yNTUuMjU1LjAKfTsKCiMgQnJv YWRjYXN0IGFkZHJlc3MgZm9yICdldGgxJwojCmNkbF9vcHRpb24gQ1lHSFdS X05FVF9EUklWRVJfRVRIMV9BRERSU19CUk9BRENBU1QgewogICAgIyBUaGlz IG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHSFdS X05FVF9EUklWRVJfRVRIMV9BRERSUyBpcyBkaXNhYmxlZAoKICAgICMgRmxh dm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgMTkyLjE2OC4xLjI1NQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAog ICAgIyBEZWZhdWx0IHZhbHVlOiAxOTIuMTY4LjEuMjU1Cn07CgojIEdhdGV3 YXkvcm91dGVyIElQIGFkZHJlc3MgZm9yICdldGgxJwojCmNkbF9vcHRpb24g Q1lHSFdSX05FVF9EUklWRVJfRVRIMV9BRERSU19HQVRFV0FZIHsKICAgICMg VGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZ R0hXUl9ORVRfRFJJVkVSX0VUSDFfQUREUlMgaXMgZGlzYWJsZWQKCiAgICAj IEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDAuMC4wLjAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAg ICMgRGVmYXVsdCB2YWx1ZTogMC4wLjAuMAp9OwoKIyBTZXJ2ZXIgSVAgYWRk cmVzcyBmb3IgJ2V0aDEnCiMKY2RsX29wdGlvbiBDWUdIV1JfTkVUX0RSSVZF Ul9FVEgxX0FERFJTX1NFUlZFUiB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5v dCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdIV1JfTkVUX0RSSVZFUl9F VEgxX0FERFJTIGlzIGRpc2FibGVkCgogICAgIyBGbGF2b3I6IGRhdGEKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxOTIuMTY4LjEu MTAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDE5Mi4xNjguMS4xMDEKfTsKCiMgPAojIDwKIyA8CiMgPAoK ------------=_1583532882-474-7 Content-Type: text/plain; charset=us-ascii; name="stub.ecc" Content-Disposition: inline; filename="stub.ecc" Content-Transfer-Encoding: base64 Content-Length: 206884 IyBlQ29zIHNhdmVkIGNvbmZpZ3VyYXRpb24KCiMgLS0tLSBjb21tYW5kcyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQojIFRoaXMgc2VjdGlvbiBjb250YWlucyBpbmZvcm1hdGlv biBhYm91dCB0aGUgc2F2ZWZpbGUgZm9ybWF0LgojIEl0IHNob3VsZCBub3Qg YmUgZWRpdGVkLiBBbnkgbW9kaWZpY2F0aW9ucyBtYWRlIHRvIHRoaXMgc2Vj dGlvbgojIG1heSBtYWtlIGl0IGltcG9zc2libGUgZm9yIHRoZSBjb25maWd1 cmF0aW9uIHRvb2xzIHRvIHJlYWQKIyB0aGUgc2F2ZWZpbGUuCgpjZGxfc2F2 ZWZpbGVfdmVyc2lvbiAxOwpjZGxfc2F2ZWZpbGVfY29tbWFuZCBjZGxfc2F2 ZWZpbGVfdmVyc2lvbiB7fTsKY2RsX3NhdmVmaWxlX2NvbW1hbmQgY2RsX3Nh dmVmaWxlX2NvbW1hbmQge307CmNkbF9zYXZlZmlsZV9jb21tYW5kIGNkbF9j b25maWd1cmF0aW9uIHsgZGVzY3JpcHRpb24gaGFyZHdhcmUgdGVtcGxhdGUg cGFja2FnZSB9OwpjZGxfc2F2ZWZpbGVfY29tbWFuZCBjZGxfcGFja2FnZSB7 IHZhbHVlX3NvdXJjZSB1c2VyX3ZhbHVlIHdpemFyZF92YWx1ZSBpbmZlcnJl ZF92YWx1ZSB9OwpjZGxfc2F2ZWZpbGVfY29tbWFuZCBjZGxfY29tcG9uZW50 IHsgdmFsdWVfc291cmNlIHVzZXJfdmFsdWUgd2l6YXJkX3ZhbHVlIGluZmVy cmVkX3ZhbHVlIH07CmNkbF9zYXZlZmlsZV9jb21tYW5kIGNkbF9vcHRpb24g eyB2YWx1ZV9zb3VyY2UgdXNlcl92YWx1ZSB3aXphcmRfdmFsdWUgaW5mZXJy ZWRfdmFsdWUgfTsKY2RsX3NhdmVmaWxlX2NvbW1hbmQgY2RsX2ludGVyZmFj ZSB7IHZhbHVlX3NvdXJjZSB1c2VyX3ZhbHVlIHdpemFyZF92YWx1ZSBpbmZl cnJlZF92YWx1ZSB9OwoKIyAtLS0tIHRvcGxldmVsIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMg VGhpcyBzZWN0aW9uIGRlZmluZXMgdGhlIHRvcGxldmVsIGNvbmZpZ3VyYXRp b24gb2JqZWN0LiBUaGUgb25seQojIHZhbHVlcyB0aGF0IGNhbiBiZSBjaGFu Z2VkIGFyZSB0aGUgbmFtZSBvZiB0aGUgY29uZmlndXJhdGlvbiBhbmQKIyB0 aGUgZGVzY3JpcHRpb24gZmllbGQuIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBt b2RpZnkgdGhlIHRhcmdldCwKIyB0aGUgdGVtcGxhdGUgb3IgdGhlIHNldCBv ZiBwYWNrYWdlcyBzaW1wbHkgYnkgZWRpdGluZyB0aGUgbGluZXMKIyBiZWxv dyBiZWNhdXNlIHRoZXNlIGNoYW5nZXMgaGF2ZSB3aWRlLXJhbmdpbmcgZWZm ZWN0cy4gSW5zdGVhZAojIHRoZSBhcHByb3ByaWF0ZSB0b29scyBzaG91bGQg YmUgdXNlZCB0byBtYWtlIHN1Y2ggbW9kaWZpY2F0aW9ucy4KCmNkbF9jb25m aWd1cmF0aW9uIGVDb3MgewogICAgZGVzY3JpcHRpb24gIiIgOwoKICAgICMg VGhlc2UgZmllbGRzIHNob3VsZCBub3QgYmUgbW9kaWZpZWQuCiAgICBoYXJk d2FyZSAgICBwYyA7CiAgICB0ZW1wbGF0ZSAgICBzdHVicyA7CiAgICBwYWNr YWdlIC1oYXJkd2FyZSBDWUdQS0dfSEFMX0kzODYgY3VycmVudCA7CiAgICBw YWNrYWdlIC1oYXJkd2FyZSBDWUdQS0dfSEFMX0kzODZfUEMgY3VycmVudCA7 CiAgICBwYWNrYWdlIC1oYXJkd2FyZSBDWUdQS0dfSU9fU0VSSUFMX0kzODZf UEMgY3VycmVudCA7CiAgICBwYWNrYWdlIC1oYXJkd2FyZSBDWUdQS0dfSU9f UENJIGN1cnJlbnQgOwogICAgcGFja2FnZSAtaGFyZHdhcmUgQ1lHUEtHX0RF VlNfRVRIX0k4MjU1OSBjdXJyZW50IDsKICAgIHBhY2thZ2UgQ1lHUEtHX0hB TCBjdXJyZW50IDsKICAgIHBhY2thZ2UgQ1lHUEtHX0lORlJBIGN1cnJlbnQg OwogICAgcGFja2FnZSBDWUdQS0dfSVNPSU5GUkEgY3VycmVudCA7CiAgICBw YWNrYWdlIENZR1BLR19JTyBjdXJyZW50IDsKICAgIHBhY2thZ2UgQ1lHUEtH X0lPX1NFUklBTCBjdXJyZW50IDsKICAgIHBhY2thZ2UgQ1lHUEtHX0VSUk9S IGN1cnJlbnQgOwp9OwoKIyAtLS0tIGNvbmZsaWN0cyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMg VGhlcmUgYXJlIG5vIGNvbmZsaWN0cy4KCiMgLS0tLSBjb250ZW50cyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQojID4KIyA+CiMgR2xvYmFsIGJ1aWxkIG9wdGlvbnMKIyBHbG9i YWwgYnVpbGQgb3B0aW9ucyBpbmNsdWRpbmcgY29udHJvbCBvdmVyCiMgY29t cGlsZXIgZmxhZ3MsIGxpbmtlciBmbGFncyBhbmQgY2hvaWNlIG9mIHRvb2xj aGFpbi4KIwpjZGxfY29tcG9uZW50IENZR0JMRF9HTE9CQUxfT1BUSU9OUyB7 CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUuCgogICAgIyBU aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMg dmFsdWUKfTsKCiMgPgojIEdsb2JhbCBjb21tYW5kIHByZWZpeAojIFRoaXMg b3B0aW9uIHNwZWNpZmllcyB0aGUgY29tbWFuZCBwcmVmaXggdXNlZCB3aGVu CiMgaW52b2tpbmcgdGhlIGJ1aWxkIHRvb2xzLiBJZiB5b3VyIGhvc3Qgb3Bl cmF0aW5nIHN5c3RlbQojIGlzIExpbnV4IHlvdSBjYW4gc2V0IHRoaXMgdG8g ZW1wdHkgdG8gdXNlIHlvdXIgbmF0aXZlIHRvb2xzLgojIElmIHNvLCB5b3Vy IG5hdGl2ZSBnY2MgbXVzdCBiZSBnY2MtMi45NS4yIG9yIGxhdGVyLCBhbmQK IyAibGQgLXYiIG11c3QgcmVwb3J0IGEgdmVyc2lvbiBtb3JlIHJlY2VudCB0 aGFuIDIuOS4xLgojCmNkbF9vcHRpb24gQ1lHQkxEX0dMT0JBTF9DT01NQU5E X1BSRUZJWCB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIGkzODYtZWxmCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IGkzODYtZWxmCn07 CgojIEdsb2JhbCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0aW9uIGNvbnRy b2xzIHRoZSBnbG9iYWwgY29tcGlsZXIgZmxhZ3Mgd2hpY2gKIyBhcmUgdXNl ZCB0byBjb21waWxlIGFsbCBwYWNrYWdlcyBieQojIGRlZmF1bHQuIEluZGl2 aWR1YWwgcGFja2FnZXMgbWF5IGRlZmluZQojIG9wdGlvbnMgd2hpY2ggb3Zl cnJpZGUgdGhlc2UgZ2xvYmFsIGZsYWdzLgojCmNkbF9vcHRpb24gQ1lHQkxE X0dMT0JBTF9DRkxBR1MgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAiLVdhbGwgLVdwb2ludGVy LWFyaXRoIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdpbmxpbmUgLVd1bmRlZiAt V292ZXJsb2FkZWQtdmlydHVhbCAtZyAtTzIgLWZmdW5jdGlvbi1zZWN0aW9u cyAtZmRhdGEtc2VjdGlvbnMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyAt ZnZ0YWJsZS1nYyAtZmluaXQtcHJpb3JpdHkiCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICItV2FsbCAtV3BvaW50 ZXItYXJpdGggLVdzdHJpY3QtcHJvdG90eXBlcyAtV2lubGluZSAtV3VuZGVm IC1Xb3ZlcmxvYWRlZC12aXJ0dWFsIC1nIC1PMiAtZmZ1bmN0aW9uLXNlY3Rp b25zIC1mZGF0YS1zZWN0aW9ucyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25z IC1mdnRhYmxlLWdjIC1maW5pdC1wcmlvcml0eSIKfTsKCiMgR2xvYmFsIGxp bmtlciBmbGFncwojIFRoaXMgb3B0aW9uIGNvbnRyb2xzIHRoZSBnbG9iYWwg bGlua2VyIGZsYWdzLiBJbmRpdmlkdWFsCiMgcGFja2FnZXMgbWF5IGRlZmlu ZSBvcHRpb25zIHdoaWNoIG92ZXJyaWRlIHRoZXNlIGdsb2JhbCBmbGFncy4K IwpjZGxfb3B0aW9uIENZR0JMRF9HTE9CQUxfTERGTEFHUyB7CiAgICAjIEZs YXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlICItZyAtbm9zdGRsaWIgLVdsLC0tZ2Mtc2VjdGlvbnMgLVdsLC1zdGF0 aWMiCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6ICItZyAtbm9zdGRsaWIgLVdsLC0tZ2Mtc2VjdGlvbnMgLVdsLC1z dGF0aWMiCn07CgojIEJ1aWxkIEdEQiBzdHViIGxvYWRlciBpbWFnZQojIFRo aXMgb3B0aW9uIGVuYWJsZXMgdGhlIGJ1aWxkaW5nIG9mIHRoZSBHREIgc3R1 YnMgZm9yIHRoZQojIGJvYXJkLiBUaGUgY29tbW9uIEhBTCBjb250cm9scyB0 YWtlcyBjYXJlIG9mIG1vc3Qgb2YgdGhlCiMgYnVpbGQgcHJvY2VzcywgYnV0 IHRoZSBmaW5hbCBjb252ZXJzaW9uIGZyb20gRUxGIGltYWdlIHRvCiMgYmlu YXJ5IGRhdGEgaXMgaGFuZGxlZCBieSB0aGUgcGxhdGZvcm0gQ0RMLCBhbGxv d2luZwojIHJlbG9jYXRpb24gb2YgdGhlIGRhdGEgaWYgbmVjZXNzYXJ5Lgoj CmNkbF9vcHRpb24gQ1lHQkxEX0JVSUxEX0dEQl9TVFVCUyB7CiAgICAjIEZs YXZvcjogYm9vbAogICAgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJj ZSB1c2VyCiAgICAjIERlZmF1bHQgdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6 ICBDWUdfSEFMX1NUQVJUVVAgPT0gIkZMT1BQWSIgCiAgICAjICAgICBDWUdf SEFMX1NUQVJUVVAgPT0gRkxPUFBZCiAgICAjICAgLS0+IDEKICAgICMgUmVx dWlyZXM6IENZR1NFTV9IQUxfUk9NX01PTklUT1IKICAgICMgICAgIENZR1NF TV9IQUxfUk9NX01PTklUT1IgPT0gMQogICAgIyAgIC0tPiAxCiAgICAjIFJl cXVpcmVzOiBDWUdCTERfQlVJTERfQ09NTU9OX0dEQl9TVFVCUwogICAgIyAg ICAgQ1lHQkxEX0JVSUxEX0NPTU1PTl9HREJfU1RVQlMgPT0gMQogICAgIyAg IC0tPiAxCiAgICAjIFJlcXVpcmVzOiBDWUdEQkdfSEFMX0RFQlVHX0dEQl9J TkNMVURFX1NUVUJTCiAgICAjICAgICBDWUdEQkdfSEFMX0RFQlVHX0dEQl9J TkNMVURFX1NUVUJTID09IDEKICAgICMgICAtLT4gMQogICAgIyBSZXF1aXJl czogISBDWUdEQkdfSEFMX0RFQlVHX0dEQl9CUkVBS19TVVBQT1JUCiAgICAj ICAgICBDWUdEQkdfSEFMX0RFQlVHX0dEQl9CUkVBS19TVVBQT1JUID09IDAK ICAgICMgICAtLT4gMQogICAgIyBSZXF1aXJlczogISBDWUdEQkdfSEFMX0RF QlVHX0dEQl9DVFJMQ19TVVBQT1JUCiAgICAjICAgICBDWUdEQkdfSEFMX0RF QlVHX0dEQl9DVFJMQ19TVVBQT1JUID09IDAKICAgICMgICAtLT4gMQogICAg IyBSZXF1aXJlczogISBDWUdEQkdfSEFMX0RFQlVHX0dEQl9USFJFQURfU1VQ UE9SVAogICAgIyAgICAgQ1lHREJHX0hBTF9ERUJVR19HREJfVEhSRUFEX1NV UFBPUlQgPT0gMAogICAgIyAgIC0tPiAxCiAgICAjIFJlcXVpcmVzOiAhIENZ R0RCR19IQUxfQ09NTU9OX0lOVEVSUlVQVFNfU0FWRV9NSU5JTVVNX0NPTlRF WFQKICAgICMgICAgIENZR0RCR19IQUxfQ09NTU9OX0lOVEVSUlVQVFNfU0FW RV9NSU5JTVVNX0NPTlRFWFQgPT0gMAogICAgIyAgIC0tPiAxCiAgICAjIFJl cXVpcmVzOiAhIENZR0RCR19IQUxfQ09NTU9OX0NPTlRFWFRfU0FWRV9NSU5J TVVNCiAgICAjICAgICBDWUdEQkdfSEFMX0NPTU1PTl9DT05URVhUX1NBVkVf TUlOSU1VTSA9PSAwCiAgICAjICAgLS0+IDEKfTsKCiMgQnVpbGQgY29tbW9u IEdEQiBzdHViIFJPTSBpbWFnZQojIFVubGVzcyBhIHRhcmdldCBib2FyZCBo YXMgc3BlY2lmaWMgcmVxdWlyZW1lbnRzIHRvIHRoZQojIHN0dWIgaW1wbGVt ZW50YXRpb24sIGl0IGNhbiB1c2UgYSBzaW1wbGUgY29tbW9uIHN0dWIuCiMg VGhpcyBvcHRpb24sIHdoaWNoIGdldHMgZW5hYmxlZCBieSBwbGF0Zm9ybSBI QUxzIGFzCiMgYXBwcm9wcmlhdGUsIGNvbnRyb2xzIHRoZSBidWlsZGluZyBv ZiB0aGUgY29tbW9uIHN0dWIuCiMKY2RsX29wdGlvbiBDWUdCTERfQlVJTERf Q09NTU9OX0dEQl9TVFVCUyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgdXNl cl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSB1c2VyCiAgICAjIERlZmF1 bHQgdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6IENZR0RCR19IQUxfREVCVUdf R0RCX0lOQ0xVREVfU1RVQlMKICAgICMgICAgIENZR0RCR19IQUxfREVCVUdf R0RCX0lOQ0xVREVfU1RVQlMgPT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBU aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMg dmFsdWUKICAgICMgb3B0aW9uIENZR0JMRF9CVUlMRF9HREJfU1RVQlMKICAg ICMgICAgIFJlcXVpcmVzOiBDWUdCTERfQlVJTERfQ09NTU9OX0dEQl9TVFVC Uwp9OwoKIyA8CiMgSW50ZWwgUFJPLzEwMCsgZXRoZXJuZXQgZHJpdmVyCiMg RXRoZXJuZXQgZHJpdmVyIGZvciBJbnRlbCBQUk8vMTAwKyBib2FyZHMuCiMK Y2RsX3BhY2thZ2UgQ1lHUEtHX0RFVlNfRVRIX0k4MjU1OSB7CiAgICAjIFBh Y2thZ2VzIGNhbm5vdCBiZSBhZGRlZCBvciByZW1vdmVkLCBub3IgY2FuIHRo ZWlyIHZlcnNpb24gYmUgY2hhbmdlZCwKICAgICMgc2ltcGx5IGJ5IGVkaXRp bmcgdGhlaXIgdmFsdWUuIEluc3RlYWQgdGhlIGFwcHJvcHJpYXRlIGNvbmZp Z3VyYXRpb24KICAgICMgc2hvdWxkIGJlIHVzZWQgdG8gcGVyZm9ybSB0aGVz ZSBhY3Rpb25zLgoKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQog ICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBDWUdQS0dfSU9fRVRIX0RSSVZF UlMKICAgICMgICAgIENZR1BLR19JT19FVEhfRFJJVkVSUyAodW5rbm93bikg PT0gMAogICAgIyAgIC0tPiAwCgogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBi ZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAj IEN1cnJlbnQgdmFsdWU6IDEgY3VycmVudAp9OwoKIyA+CiMgUHJpbnRzIGV0 aGVybmV0IGRldmljZSBzdGF0dXMgaW5mbyBkdXJpbmcgc3RhcnR1cAojIFRo ZSBldGhlcm5ldCBkZXZpY2UgaW5pdGlhbGl6YXRpb24gY29kZSBjYW4gcHJp bnQgbG90cyBvZiBpbmZvCiMgdG8gY29uZmlybSB0aGF0IGl0IGhhcyBmb3Vu ZCB0aGUgZGV2aWNlcyBvbiB0aGUgUENJIGJ1cywgcmVhZAojIHRoZSBNQUMg YWRkcmVzcyBmcm9tIEVFUFJPTSBjb3JyZWN0bHksIGFuZCBzbyBvbiwgYW5k IGFsc28KIyBkaXNwbGF5cyB0aGUgbW9kZSAoMTAvMTAwTUh6LCBoYWxmL2Z1 bGwgZHVwbGV4KSBvZiB0aGUKIyBjb25uZWN0aW9uLgojCmNkbF9vcHRpb24g Q1lHREJHX0RFVlNfRVRIX1BDX0k4MjU1OV9DSEFUVEVSIHsKICAgICMgVGhp cyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BL R19ERVZTX0VUSF9JODI1NTkgaXMgbm90IGFjdGl2ZQoKICAgICMgRmxhdm9y OiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg MAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiAwCn07CgojIE51bWJlciBvZiBzdXBwb3J0ZWQgaW50ZXJmYWNlcy4K IyBUaGlzIG9wdGlvbiBzZWxlY3RzIHRoZSBudW1iZXIgb2YgUENJIGV0aGVy bmV0IGludGVyZmFjZXMgdG8KIyBiZSBzdXBwb3J0ZWQgYnkgdGhlIGRyaXZl ci4KIwpjZGxfb3B0aW9uIENZR05VTV9ERVZTX0VUSF9QQ19JODI1NTlfREVW X0NPVU5UIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAg IyBUaGUgcGFyZW50IENZR1BLR19ERVZTX0VUSF9JODI1NTkgaXMgbm90IGFj dGl2ZQoKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVs dAogICAgIyBEZWZhdWx0IHZhbHVlOiAyCiAgICAjIExlZ2FsIHZhbHVlczog MSAyCn07CgojIEtlZXAgRXRoZXJuZXQgc3RhdGlzdGljcwojIFRoZSBldGhl cm5ldCBkZXZpY2UgY2FuIG1haW50YWluIHN0YXRpc3RpY3MgYWJvdXQgdGhl IG5ldHdvcmssCiMgc3BlY2lmaWNhbGx5IGEgZ3JlYXQgdmFyaWV0eSBvZiBl cnJvciByYXRlcyB3aGljaCBhcmUgdXNlZnVsCiMgZm9yIG5ldHdvcmsgbWFu YWdlbWVudC4gIFNOTVAgZm9yIGV4YW1wbGUgdXNlcyB0aGlzCiMgaW5mb3Jt YXRpb24uICBUaGVyZSBpcyBzb21lIHBlcmZvcm1hbmNlIGNvc3QgaW4gbWFp bnRhaW5pbmcKIyB0aGlzIGluZm9ybWF0aW9uOyBkaXNhYmxlIHRoaXMgb3B0 aW9uIHRvIHJlY291cCB0aGF0LgojCmNkbF9jb21wb25lbnQgQ1lHREJHX0RF VlNfRVRIX1BDX0k4MjU1OV9LRUVQX1NUQVRJU1RJQ1MgewogICAgIyBUaGlz IG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtH X0RFVlNfRVRIX0k4MjU1OSBpcyBub3QgYWN0aXZlCgogICAgIyBGbGF2b3I6 IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAx CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFs dWU6IDEKfTsKCiMgPgojIEtlZXAgaTgyNTU5IEludGVybmFsIHN0YXRpc3Rp Y3MKIyBUaGUgaTgyNTU5IGtlZXBzIGludGVybmFsIGNvdW50ZXJzLCBhbmQg aXQgaXMgcG9zc2libGUgdG8KIyBhY3F1aXJlIHRoZXNlLiAgQnV0IHRoZSBp ODI1NTkgKHJlcHV0ZWRseSkgZG9lcyBub3Qgc2VydmljZQojIHRoZSBuZXR3 b3JrIHdoaWxzdCB1cGxvYWRpbmcgdGhlIGRhdGEgdG8gUkFNIGZyb20gaXRz CiMgaW50ZXJuYWwgcmVnaXN0ZXJzLiAgSWYgdGhyb3VnaHB1dCBpcyBhIHBy b2JsZW0sIGRpc2FibGUKIyB0aGlzIG9wdGlvbiB0byBhY3F1aXJlIG9ubHkg dGhvc2Ugc3RhdGlzdGljcyBnYXRoZXJlZCBieQojIHNvZnR3YXJlLCBzbyB0 aGF0IHRoZSBpODI1NTkgbmV2ZXIgc2xlZXBzLgojCmNkbF9vcHRpb24gQ1lH REJHX0RFVlNfRVRIX1BDX0k4MjU1OV9LRUVQXzgyNTU5X1NUQVRJU1RJQ1Mg ewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBw YXJlbnQgQ1lHREJHX0RFVlNfRVRIX1BDX0k4MjU1OV9LRUVQX1NUQVRJU1RJ Q1MgaXMgbm90IGFjdGl2ZQoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5v IHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8g cHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07CgojIDwK IyBTSU9DU0lGSFdBRERSIHJlY29yZHMgTUFDIGFkZHJlc3MgaW4gRUVQUk9N CiMgVGhlIGlvY3RsKCkgc29ja2V0IGNhbGwgd2l0aCBvcGVyYW5kIFNJT0NT SUZIV0FERFIgc2V0cyB0aGUKIyBpbnRlcmZhY2UgaGFyZHdhcmUgYWRkcmVz cyAtIHRoZSBNQUMgYWRkcmVzcyBvciBldGhlcm5ldAojIGFkZHJlc3MuICBU aGlzIG9wdGlvbiBjYXVzZXMgdGhlIG5ldyBNQUMgYWRkcmVzcyB0byBiZSB3 cml0dGVuCiMgaW50byB0aGUgRUVQUk9NIGFzc29jaWF0ZWQgd2l0aCB0aGUg aW50ZXJmYWNlLCBzbyB0aGF0IHRoZSBuZXcKIyBNQUMgYWRkcmVzcyBpcyBw ZXJtYW5lbnRseSByZWNvcmRlZC4gIERvaW5nIHRoaXMgc2hvdWxkIGJlIGEK IyBjYXJlZnVsbHkgY2hvc2VuIGRlY2lzaW9uLCBoZW5jZSB0aGlzIG9wdGlv bi4KIwpjZGxfY29tcG9uZW50IENZR1BLR19ERVZTX0VUSF9QQ19JODI1NTlf V1JJVEVfRUVQUk9NIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2 ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19ERVZTX0VUSF9JODI1NTkgaXMg bm90IGFjdGl2ZQoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCn07CgojIEludGVsIFBS Ty8xMDArIGV0aGVybmV0IGRyaXZlciBidWlsZCBvcHRpb25zCiMKY2RsX2Nv bXBvbmVudCBDWUdQS0dfREVWU19FVEhfSTgyNTU5X09QVElPTlMgewogICAg IyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQg Q1lHUEtHX0RFVlNfRVRIX0k4MjU1OSBpcyBub3QgYWN0aXZlCgogICAgIyBU aGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgQWRkaXRp b25hbCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRo ZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhlIElu dGVsIFBSTy8xMDArIGV0aGVybmV0IGRyaXZlcgojIHBhY2thZ2UuIFRoZXNl IGZsYWdzIGFyZSB1c2VkIGluIGFkZGl0aW9uIHRvIHRoZSBzZXQgb2YKIyBn bG9iYWwgZmxhZ3MuCiMKY2RsX29wdGlvbiBDWUdQS0dfREVWU19FVEhfSTgy NTU5X0NGTEFHU19BREQgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0 aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0RFVlNfRVRIX0k4MjU1OV9P UFRJT05TIGlzIG5vdCBhY3RpdmUKCiAgICAjIEZsYXZvcjogZGF0YQogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICItRF9LRVJORUwg LURfX0VDT1MiCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6ICItRF9LRVJORUwgLURfX0VDT1MiCn07CgojIDwKIyA8 CiMgPAojIGVDb3MgSEFMCiMgZG9jOiByZWRpcmVjdC90aGUtZWNvcy1oYXJk d2FyZS1hYnN0cmFjdGlvbi1sYXllci1oYWwuaHRtbAojIFRoZSBlQ29zIEhB TCBwYWNrYWdlIHByb3ZpZGUgYSBwb3J0aW5nIGxheWVyIGZvcgojIGhpZ2hl ci1sZXZlbCBwYXJ0cyBvZiB0aGUgc3lzdGVtIHN1Y2ggYXMgdGhlIGtlcm5l bCBhbmQgdGhlCiMgQyBsaWJyYXJ5LiBFYWNoIGluc3RhbGxhdGlvbiBzaG91 bGQgaGF2ZSBIQUwgcGFja2FnZXMgZm9yCiMgb25lIG9yIG1vcmUgYXJjaGl0 ZWN0dXJlcywgYW5kIGZvciBlYWNoIGFyY2hpdGVjdHVyZSB0aGVyZQojIG1h eSBiZSBvbmUgb3IgbW9yZSBzdXBwb3J0ZWQgcGxhdGZvcm1zLiBJdCBpcyBu ZWNlc3NhcnkgdG8KIyBzZWxlY3Qgb25lIHRhcmdldCBhcmNoaXRlY3R1cmUg YW5kIG9uZSBwbGF0Zm9ybSBmb3IgdGhhdAojIGFyY2hpdGVjdHVyZS4gVGhl cmUgYXJlIGFsc28gYSBudW1iZXIgb2YgY29uZmlndXJhdGlvbgojIG9wdGlv bnMgdGhhdCBhcmUgY29tbW9uIHRvIGFsbCBIQUwgcGFja2FnZXMuCiMKY2Rs X3BhY2thZ2UgQ1lHUEtHX0hBTCB7CiAgICAjIFBhY2thZ2VzIGNhbm5vdCBi ZSBhZGRlZCBvciByZW1vdmVkLCBub3IgY2FuIHRoZWlyIHZlcnNpb24gYmUg Y2hhbmdlZCwKICAgICMgc2ltcGx5IGJ5IGVkaXRpbmcgdGhlaXIgdmFsdWUu IEluc3RlYWQgdGhlIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24KICAgICMg c2hvdWxkIGJlIHVzZWQgdG8gcGVyZm9ybSB0aGVzZSBhY3Rpb25zLgoKICAg ICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMg Rmxhdm9yOiBib29sZGF0YQogICAgIyBDdXJyZW50IHZhbHVlOiAxIGN1cnJl bnQKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0 ZWQgYnkgdGhpcyB2YWx1ZQp9OwoKIyA+CiMgUGxhdGZvcm0taW5kZXBlbmRl bnQgSEFMIG9wdGlvbnMKIyBBIG51bWJlciBvZiBjb25maWd1cmF0aW9uIG9w dGlvbnMgYXJlIGNvbW1vbiB0byBtb3N0IG9yIGFsbAojIEhBTCBwYWNrYWdl cywgZm9yIGV4YW1wbGUgb3B0aW9ucyBjb250cm9sbGluZyBob3cgbXVjaCBz dGF0ZQojIHNob3VsZCBiZSBzYXZlZCBkdXJpbmcgYSBjb250ZXh0IHN3aXRj aC4gVGhlIGltcGxlbWVudGF0aW9ucwojIG9mIHRoZXNlIG9wdGlvbnMgd2ls bCB2YXJ5IGZyb20gYXJjaGl0ZWN0dXJlIHRvIGFyY2hpdGVjdHVyZS4KIwpj ZGxfY29tcG9uZW50IENZR1BLR19IQUxfQ09NTU9OIHsKICAgICMgVGhlcmUg aXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIFByb3ZpZGUgZUNv cyBrZXJuZWwgc3VwcG9ydAojIFRoZSBIQUwgY2FuIGJlIGNvbmZpZ3VyZWQg dG8gZWl0aGVyIHN1cHBvcnQgdGhlIGZ1bGwgZUNvcwojIGtlcm5lbCwgb3Ig dG8gc3VwcG9ydCBvbmx5IHZlcnkgc2ltcGxlIGFwcGxpY2F0aW9ucyB3aGlj aCBkbwojIG5vdCByZXF1aXJlIGEgZnVsbCBrZXJuZWwuIElmIGtlcm5lbCBz dXBwb3J0IGlzIG5vdCByZXF1aXJlZAojIHRoZW4gc29tZSBvZiB0aGUgc3Rh cnR1cCwgZXhjZXB0aW9uLCBhbmQgaW50ZXJydXB0IGhhbmRsaW5nCiMgY29k ZSBjYW4gYmUgZWxpbWluYXRlZC4KIwpjZGxfb3B0aW9uIENZR0ZVTl9IQUxf Q09NTU9OX0tFUk5FTF9TVVBQT1JUIHsKICAgICMgRmxhdm9yOiBib29sCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiBDWUdQ S0dfS0VSTkVMCiAgICAjICAgICBDWUdQS0dfS0VSTkVMICh1bmtub3duKSA9 PSAwCiAgICAjICAgLS0+IDAKICAgICMgUmVxdWlyZXM6IENZR1BLR19LRVJO RUwKICAgICMgICAgIENZR1BLR19LRVJORUwgKHVua25vd24pID09IDAKICAg ICMgICAtLT4gMAp9OwoKIyBIQUwgYWxsb3dzIEdEQiBwcm90b2NvbCB0byBi ZSBkaXNhYmxlZCBmb3IuLi4KIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9IQUxf RElBR19ESVNBQkxFX0dEQl9QUk9UT0NPTF9TVVBQT1JURUQgewogICAgIyBO byBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlz IHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6 IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMAoKICAgICMgVGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAg ICAjIG9wdGlvbiBDWUdEQkdfSEFMX0RJQUdfRElTQUJMRV9HREJfUFJPVE9D T0wKICAgICMgICAgIEFjdGl2ZUlmOiBDWUdJTlRfSEFMX0RJQUdfRElTQUJM RV9HREJfUFJPVE9DT0xfU1VQUE9SVEVECn07CgojIERpc2FibGUgR0RCIHBy b3RvY29sIGZvciBkaWFnbm9zdGljIG91dHB1dAojIFRoaXMgb3B0aW9uIGZv cmNlcyBkaWFnbm9zdGljIG91dHB1dCB0byBub3QgdXNlIHRoZSBHREIKIyBw cm90b2NvbC4gIE1vc3QgcHJvZ3JhbXMgd2lsbCB1c2UgdGhlIEdEQiBwcm90 b2NvbCBmb3IKIyBkaWFnbm9zdGljIEkvTyBiZWNhdXNlIG9mIHRoZSBlbnZp cm9ubWVudC4gIFRoaXMgb3B0aW9uCiMgYWxsb3dzIGZvciBhbiBleHBsaWNp dCBvdmVycmlkZSBpbiB0aGVzZSBjYXNlcy4KIwpjZGxfb3B0aW9uIENZR0RC R19IQUxfRElBR19ESVNBQkxFX0dEQl9QUk9UT0NPTCB7CiAgICAjIFRoaXMg b3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgQWN0aXZlSWYgY29uc3RyYWlu dDogQ1lHSU5UX0hBTF9ESUFHX0RJU0FCTEVfR0RCX1BST1RPQ09MX1NVUFBP UlRFRAogICAgIyAgICAgQ1lHSU5UX0hBTF9ESUFHX0RJU0FCTEVfR0RCX1BS T1RPQ09MX1NVUFBPUlRFRCA9PSAwCiAgICAjICAgLS0+IDAKCiAgICAjIEZs YXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMAp9OwoKIyBIQUwgZXhjZXB0aW9uIHN1cHBvcnQKIyBXaGVu IGEgcHJvY2Vzc29yIGV4Y2VwdGlvbiBvY2N1cnMsIGZvciBleGFtcGxlIGFu IGF0dGVtcHQgdG8KIyBleGVjdXRlIGFuIGlsbGVnYWwgaW5zdHJ1Y3Rpb24g b3IgdG8gcGVyZm9ybSBhIGRpdmlkZSBieQojIHplcm8sIHRoaXMgZXhjZXB0 aW9uIG1heSBiZSBoYW5kbGVkIGluIGEgbnVtYmVyIG9mIGRpZmZlcmVudAoj IHdheXMuIElmIHRoZSB0YXJnZXQgc3lzdGVtIGhhcyBnZGIgc3VwcG9ydCB0 aGVuIHR5cGljYWxseQojIHRoZSBleGNlcHRpb24gd2lsbCBiZSBoYW5kbGVk IGJ5IGdkYiBjb2RlLiBPdGhlcndpc2UgaWYgdGhlCiMgSEFMIGV4Y2VwdGlv biBzdXBwb3J0IGlzIGVuYWJsZWQgdGhlbiB0aGUgSEFMIHdpbGwgaW52b2tl IGEKIyByb3V0aW5lIGRlbGl2ZXJfZXhjZXB0aW9uKCkuIFR5cGljYWxseSB0 aGlzIHJvdXRpbmUgd2lsbCBiZQojIHByb3ZpZGVkIGJ5IHRoZSBlQ29zIGtl cm5lbCwgYnV0IGl0IGlzIHBvc3NpYmxlIGZvcgojIGFwcGxpY2F0aW9uIGNv ZGUgdG8gcHJvdmlkZSBpdHMgb3duIGltcGxlbWVudGF0aW9uLiBJZiB0aGUK IyBIQUwgZXhjZXB0aW9uIHN1cHBvcnQgaXMgbm90IGVuYWJsZWQgYW5kIGEg cHJvY2Vzc29yCiMgZXhjZXB0aW9uIG9jY3VycyB0aGVuIHRoZSBiZWhhdmlv dXIgb2YgdGhlIHN5c3RlbSBpcwojIHVuZGVmaW5lZC4KIwpjZGxfb3B0aW9u IENZR1BLR19IQUxfRVhDRVBUSU9OUyB7CiAgICAjIEZsYXZvcjogYm9vbAog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogQ1lH UEtHX0tFUk5FTF9FWENFUFRJT05TCiAgICAjICAgICBDWUdQS0dfS0VSTkVM X0VYQ0VQVElPTlMgKHVua25vd24pID09IDAKICAgICMgICAtLT4gMAogICAg IyBSZXF1aXJlczogQ1lHUEtHX0tFUk5FTF9FWENFUFRJT05TCiAgICAjICAg ICBDWUdQS0dfS0VSTkVMX0VYQ0VQVElPTlMgKHVua25vd24pID09IDAKICAg ICMgICAtLT4gMAp9OwoKIyBTdG9wIGNhbGxpbmcgY29uc3RydWN0b3JzIGVh cmx5CiMgVGhpcyBvcHRpb24gc3VwcG9ydHMgZW52aXJvbm1lbnRzIHdoZXJl IHNvbWUgY29uc3RydWN0b3JzCiMgbXVzdCBiZSBydW4gaW4gdGhlIGNvbnRl eHQgb2YgYSB0aHJlYWQgcmF0aGVyIHRoYW4gYXQKIyBzaW1wbGUgc3lzdGVt IHN0YXJ0dXAgdGltZS4gQSBib29sZWFuIGZsYWcgbmFtZWQKIyBjeWdfaGFs X3N0b3BfY29uc3RydWN0b3JzIGlzIHNldCB0byAxIHdoZW4gY29uc3RydWN0 b3JzCiMgc2hvdWxkIG5vIGxvbmdlciBiZSBpbnZva2VkLiBJdCBpcyB1cCB0 byBzb21lIG90aGVyCiMgcGFja2FnZSB0byBkZWFsIHdpdGggdGhlIHJlc3Qg b2YgdGhlIGNvbnN0cnVjdG9ycy4KIyBJbiB0aGUgY3VycmVudCB2ZXJzaW9u IHRoaXMgaXMgb25seSBwb3NzaWJsZSB3aXRoIHRoZQojIEMgbGlicmFyeS4K IwpjZGxfb3B0aW9uIENZR1NFTV9IQUxfU1RPUF9DT05TVFJVQ1RPUlNfT05f RkxBRyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVl LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25l LgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAogICAgIyBSZXF1aXJlczogQ1lH U0VNX0xJQkNfSU5WT0tFX0RFRkFVTFRfU1RBVElDX0NPTlNUUlVDVE9SUwog ICAgIyAgICAgQ1lHU0VNX0xJQkNfSU5WT0tFX0RFRkFVTFRfU1RBVElDX0NP TlNUUlVDVE9SUyAodW5rbm93bikgPT0gMAogICAgIyAgIC0tPiAwCn07Cgoj IEluc3RhbGwgTU1VIHRhYmxlcy4KIyBUaGlzIG9wdGlvbiBjb250cm9scyB3 aGV0aGVyIHRoaXMgYXBwbGljYXRpb24gaW5zdGFsbHMKIyBpdHMgb3duIE1l bW9yeSBNYW5hZ2VtZW50IFVuaXQgKE1NVSkgdGFibGVzLCBvciByZWxpZXMg b24gdGhlCiMgZXhpc3RpbmcgZW52aXJvbm1lbnQgdG8gcnVuLgojCmNkbF9v cHRpb24gQ1lHU0VNX0hBTF9JTlNUQUxMX01NVV9UQUJMRVMgewogICAgIyBG bGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1 bHQgdmFsdWU6IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBh cmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHU0VN X0hBTF9TVEFUSUNfTU1VX1RBQkxFUwogICAgIyAgICAgUmVxdWlyZXM6IENZ R1NFTV9IQUxfSU5TVEFMTF9NTVVfVEFCTEVTCn07CgojIFVzZSBzdGF0aWMg TU1VIHRhYmxlcy4KIyBUaGlzIG9wdGlvbiBkZWZpbmVzIGFuIGVudmlyb25t ZW50IHdoZXJlIGFueSBNZW1vcnkKIyBNYW5hZ2VtZW50IFVuaXQgKE1NVSkg dGFibGVzIGFyZSBjb25zdGFudC4gIE5vcm1hbGx5IHVzZWQgYnkgUk9NCiMg YmFzZWQgZW52aXJvbm1lbnRzLCB0aGlzIHByb3ZpZGVzIGEgd2F5IHRvIHNh dmUgUkFNIHVzYWdlIHdoaWNoCiMgd291bGQgb3RoZXJ3aXNlIGJlIHJlcXVp cmVkIGZvciB0aGVzZSB0YWJsZXMuCiMKY2RsX29wdGlvbiBDWUdTRU1fSEFM X1NUQVRJQ19NTVVfVEFCTEVTIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAj IE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUg dG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1 ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCiAgICAj IFJlcXVpcmVzOiBDWUdTRU1fSEFMX0lOU1RBTExfTU1VX1RBQkxFUwogICAg IyAgICAgQ1lHU0VNX0hBTF9JTlNUQUxMX01NVV9UQUJMRVMgPT0gMQogICAg IyAgIC0tPiAxCn07CgojIDwKIyBIQUwgaW50ZXJydXB0IGhhbmRsaW5nCiMg QSBudW1iZXIgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8g aW50ZXJydXB0CiMgaGFuZGxpbmcgYXJlIGNvbW1vbiB0byBtb3N0IG9yIGFs bCBIQUwgcGFja2FnZXMsIGV2ZW4gdGhvdWdoCiMgdGhlIGltcGxlbWVudGF0 aW9ucyB3aWxsIHZhcnkgZnJvbSBhcmNoaXRlY3R1cmUgdG8KIyBhcmNoaXRl Y3R1cmUuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfSEFMX0NPTU1PTl9JTlRF UlJVUFRTIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4K fTsKCiMgPgojIFVzZSBzZXBhcmF0ZSBzdGFjayBmb3IgaW50ZXJydXB0cwoj IFdoZW4gYW4gaW50ZXJydXB0IG9jY3VycyB0aGlzIGludGVycnVwdCBjYW4g YmUgaGFuZGxlZCBlaXRoZXIKIyBvbiB0aGUgY3VycmVudCBzdGFjayBvciBv biBhIHNlcGFyYXRlIHN0YWNrIG1haW50YWluZWQgYnkgdGhlCiMgSEFMLiBV c2luZyBhIHNlcGFyYXRlIHN0YWNrIHJlcXVpcmVzIGEgc21hbGwgbnVtYmVy IG9mIGV4dHJhCiMgaW5zdHJ1Y3Rpb25zIGluIHRoZSBpbnRlcnJ1cHQgaGFu ZGxpbmcgY29kZSwgYnV0IGl0IGhhcyB0aGUKIyBhZHZhbnRhZ2UgdGhhdCBp dCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5IHRvIGFsbG93IGV4dHJhIHNwYWNl CiMgaW4gZXZlcnkgdGhyZWFkIHN0YWNrIGZvciB0aGUgaW50ZXJydXB0IGhh bmRsZXJzLiBUaGUgYW1vdW50CiMgb2YgZXh0cmEgc3BhY2UgcmVxdWlyZWQg ZGVwZW5kcyBvbiB0aGUgaW50ZXJydXB0IGhhbmRsZXJzCiMgdGhhdCBhcmUg YmVpbmcgdXNlZC4KIwpjZGxfb3B0aW9uIENZR0lNUF9IQUxfQ09NTU9OX0lO VEVSUlVQVFNfVVNFX0lOVEVSUlVQVF9TVEFDSyB7CiAgICAjIEZsYXZvcjog Ym9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEK ICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1 ZTogMQp9OwoKIyBJbnRlcnJ1cHQgc3RhY2sgc2l6ZQojIFRoaXMgY29uZmln dXJhdGlvbiBvcHRpb24gc3BlY2lmaWVzIHRoZSBzdGFjayBzaXplIGluIGJ5 dGVzCiMgZm9yIHRoZSBpbnRlcnJ1cHQgc3RhY2suIFR5cGljYWxseSB0aGlz IHNob3VsZCBiZSBhIG11bHRpcGxlCiMgb2YgMTYsIGJ1dCB0aGUgZXhhY3Qg cmVxdWlyZW1lbnRzIHdpbGwgdmFyeSBmcm9tIGFyY2hpdGVjdHVyZQojIHRv IGFyY2hpdGVjdHVyZS4gVGhlIGludGVycnVwdCBzdGFjayBzZXJ2ZXMgdHdv IHNlcGFyYXRlCiMgcHVycG9zZXMuIEl0IGlzIHVzZWQgYXMgdGhlIHN0YWNr IGR1cmluZyBzeXN0ZW0KIyBpbml0aWFsaXphdGlvbi4gSW4gYWRkaXRpb24s IGlmIHRoZSBpbnRlcnJ1cHQgc3lzdGVtIGlzCiMgY29uZmlndXJlZCB0byB1 c2UgYSBzZXBhcmF0ZSBzdGFjayB0aGVuIGFsbCBpbnRlcnJ1cHRzIHdpbGwK IyBiZSBwcm9jZXNzZWQgb24gdGhpcyBzdGFjay4gVGhlIGV4YWN0IG1lbW9y eSByZXF1aXJlbWVudHMKIyB3aWxsIHZhcnkgZnJvbSBhcHBsaWNhdGlvbiB0 byBhcHBsaWNhdGlvbiwgYW5kIHdpbGwgZGVwZW5kCiMgaGVhdmlseSBvbiB3 aGV0aGVyIG9yIG5vdCBvdGhlciBpbnRlcnJ1cHQtcmVsYXRlZCBvcHRpb25z LAojIGZvciBleGFtcGxlIG5lc3RlZCBpbnRlcnJ1cHRzLCBhcmUgZW5hYmxl ZC4KIwpjZGxfb3B0aW9uIENZR05VTV9IQUxfQ09NTU9OX0lOVEVSUlVQVFNf U1RBQ0tfU0laRSB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2Vy IHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3Zp ZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDQwOTYKICAgICMgdmFsdWVfc291 cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogNDA5NgogICAgIyBM ZWdhbCB2YWx1ZXM6IDEwMjQgdG8gMTA0ODU3Ngp9OwoKIyBBbGxvdyBuZXN0 ZWQgaW50ZXJydXB0cwojIFdoZW4gYW4gaW50ZXJydXB0IG9jY3VycyB0aGUg SEFMIGludGVycnVwdCBoYW5kbGluZyBjb2RlIGNhbgojIGVpdGhlciBsZWF2 ZSBpbnRlcnJ1cHRzIGRpc2FibGVkIGZvciB0aGUgZHVyYXRpb24gb2YgdGhl CiMgaW50ZXJydXB0IGhhbmRsaW5nIGNvZGUsIG9yIGJ5IGRvaW5nIHNvbWUg ZXh0cmEgd29yayBpdCBjYW4KIyByZWVuYWJsZSBpbnRlcnJ1cHRzIGJlZm9y ZSBpbnZva2luZyB0aGUgaW50ZXJydXB0IGhhbmRsZXIgYW5kCiMgdGh1cyBh bGxvdyBuZXN0ZWQgaW50ZXJydXB0cyB0byBoYXBwZW4uIElmIGFsbCB0aGUg aW50ZXJydXB0CiMgaGFuZGxlcnMgYmVpbmcgdXNlZCBhcmUgc21hbGwgYW5k IGRvIG5vdCBpbnZvbHZlIGFueSBsb29wcwojIHRoZW4gaXQgaXMgdXN1YWxs eSBiZXR0ZXIgdG8gZGlzYWxsb3cgbmVzdGVkIGludGVycnVwdHMuCiMgSG93 ZXZlciBpZiBhbnkgb2YgdGhlIGludGVycnVwdCBoYW5kbGVycyBhcmUgbW9y ZSBjb21wbGljYXRlZAojIHRoYW4gbmVzdGVkIGludGVycnVwdHMgd2lsbCB1 c3VhbGx5IGJlIHJlcXVpcmVkLgojCmNkbF9vcHRpb24gQ1lHU0VNX0hBTF9D T01NT05fSU5URVJSVVBUU19BTExPV19ORVNUSU5HIHsKICAgICMgRmxhdm9y OiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg MAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiAwCn07CgojIFNhdmUgbWluaW11bSBjb250ZXh0IG9uIGludGVycnVw dAojIFRoZSBIQUwgaW50ZXJydXB0IGhhbmRsaW5nIGNvZGUgY2FuIGV4cGxv aXQgdGhlIGNhbGxpbmcgY29udmVudGlvbnMKIyBkZWZpbmVkIGZvciBhIGdp dmVuIGFyY2hpdGVjdHVyZSB0byByZWR1Y2UgdGhlIGFtb3VudCBvZiBzdGF0 ZQojIHRoYXQgaGFzIHRvIGJlIHNhdmVkLiBHZW5lcmFsbHkgdGhpcyBpbXBy b3ZlcyBwZXJmb3JtYW5jZSBhbmQKIyByZWR1Y2VzIGNvZGUgc2l6ZS4gSG93 ZXZlciBpdCBjYW4gbWFrZSBzb3VyY2UtbGV2ZWwgZGVidWdnaW5nCiMgbW9y ZSBkaWZmaWN1bHQuCiMKY2RsX29wdGlvbiBDWUdEQkdfSEFMX0NPTU1PTl9J TlRFUlJVUFRTX1NBVkVfTUlOSU1VTV9DT05URVhUIHsKICAgICMgRmxhdm9y OiBib29sCiAgICB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIHVz ZXIKICAgICMgRGVmYXVsdCB2YWx1ZTogMQoKICAgICMgVGhlIGZvbGxvd2lu ZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAj IG9wdGlvbiBDWUdCTERfQlVJTERfR0RCX1NUVUJTCiAgICAjICAgICBSZXF1 aXJlczogISBDWUdEQkdfSEFMX0NPTU1PTl9JTlRFUlJVUFRTX1NBVkVfTUlO SU1VTV9DT05URVhUCn07CgojIENoYWluIGFsbCBpbnRlcnJ1cHRzIHRvZ2V0 aGVyCiMgSW50ZXJydXB0cyBjYW4gYmUgYXR0YWNoZWQgdG8gdmVjdG9ycyBl aXRoZXIgc2luZ2x5LCBvciBiZQojIGNoYWluZWQgdG9nZXRoZXIuIFRoZSBs YXR0ZXIgaXMgbmVjZXNzYXJ5IGlmIHRoZXJlIGlzIG5vIHdheQojIG9mIGRp c2NvdmVyaW5nIHdoaWNoIGRldmljZSBoYXMgaW50ZXJydXB0ZWQgd2l0aG91 dAojIGluc3BlY3RpbmcgdGhlIGRldmljZSBpdHNlbGYuIEl0IGNhbiBhbHNv IHJlZHVjZSB0aGUgYW1vdW50CiMgb2YgUkFNIG5lZWRlZCBmb3IgaW50ZXJy dXB0IGRlY29kaW5nIHRhYmxlcyBhbmQgY29kZS4KIwpjZGxfb3B0aW9uIENZ R0lNUF9IQUxfQ09NTU9OX0lOVEVSUlVQVFNfQ0hBSU4gewogICAgIyBGbGF2 b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAKfTsKCiMgSWdub3JlIHNwdXJpb3VzIFtmbGVldGluZ10gaW50 ZXJydXB0cwojIE9uIHNvbWUgaGFyZHdhcmUsIGludGVycnVwdCBzb3VyY2Vz IG1heSBub3QgYmUgZGUtYm91bmNlZCBvcgojIGRlLWdsaXRjaGVkLiAgUmF0 aGVyIHRoYW4gdHJ5IHRvIGhhbmRsZSB0aGVzZSBpbnRlcnJ1cHRzIChubwoj IGhhbmRsaW5nIG1heSBiZSBwb3NzaWJsZSksIHRoaXMgb3B0aW9uIGFsbG93 cyB0aGUgSEFMIHRvIHNpbXBseQojIGlnbm9yZSB0aGVtLiAgSW4gbW9zdCBj YXNlcywgaWYgdGhlIGludGVycnVwdCBpcyByZWFsIGl0IHdpbGwKIyByZW9j Y3VyIGluIGEgZGV0ZWN0YWJsZSBmb3JtLgojCmNkbF9vcHRpb24gQ1lHSU1Q X0hBTF9DT01NT05fSU5URVJSVVBUU19JR05PUkVfU1BVUklPVVMgewogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDAKfTsKCiMgPAojIEhBTCBjb250ZXh0IHN3aXRjaCBz dXBwb3J0CiMgQSBudW1iZXIgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zIHJl bGF0ZWQgdG8gdGhyZWFkIGNvbnRleHRzCiMgYXJlIGNvbW1vbiB0byBtb3N0 IG9yIGFsbCBIQUwgcGFja2FnZXMsIGV2ZW4gdGhvdWdoIHRoZQojIGltcGxl bWVudGF0aW9ucyB3aWxsIHZhcnkgZnJvbSBhcmNoaXRlY3R1cmUgdG8gYXJj aGl0ZWN0dXJlLgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0hBTF9DT01NT05f Q09OVEVYVCB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUu CgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVk IGJ5IHRoaXMgdmFsdWUKfTsKCiMgPgojIFVzZSBtaW5pbXVtIHRocmVhZCBj b250ZXh0CiMgVGhlIHRocmVhZCBjb250ZXh0IHN3aXRjaCBjb2RlIGNhbiBl eHBsb2l0IHRoZSBjYWxsaW5nCiMgY29udmVudGlvbnMgZGVmaW5lZCBmb3Ig YSBnaXZlbiBhcmNoaXRlY3R1cmUgdG8gcmVkdWNlIHRoZQojIGFtb3VudCBv ZiBzdGF0ZSB0aGF0IGhhcyB0byBiZSBzYXZlZCBkdXJpbmcgYSBjb250ZXh0 CiMgc3dpdGNoLiBHZW5lcmFsbHkgdGhpcyBpbXByb3ZlcyBwZXJmb3JtYW5j ZSBhbmQgcmVkdWNlcwojIGNvZGUgc2l6ZS4gSG93ZXZlciBpdCBjYW4gbWFr ZSBzb3VyY2UtbGV2ZWwgZGVidWdnaW5nIG1vcmUKIyBkaWZmaWN1bHQuCiMK Y2RsX29wdGlvbiBDWUdEQkdfSEFMX0NPTU1PTl9DT05URVhUX1NBVkVfTUlO SU1VTSB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgdXNlcl92YWx1ZSAwCiAg ICAjIHZhbHVlX3NvdXJjZSB1c2VyCiAgICAjIERlZmF1bHQgdmFsdWU6IDEK CiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQg YnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHQkxEX0JVSUxEX0dEQl9T VFVCUwogICAgIyAgICAgUmVxdWlyZXM6ICEgQ1lHREJHX0hBTF9DT01NT05f Q09OVEVYVF9TQVZFX01JTklNVU0KfTsKCiMgPAojIFNvdXJjZS1sZXZlbCBk ZWJ1Z2dpbmcgc3VwcG9ydAojIElmIHRoZSBzb3VyY2UgbGV2ZWwgZGVidWdn ZXIgZ2RiIGlzIHRvIGJlIHVzZWQgZm9yIGRlYnVnZ2luZwojIGFwcGxpY2F0 aW9uIGNvZGUgdGhlbiBpdCBtYXkgYmUgbmVjZXNzYXJ5IHRvIGNvbmZpZ3Vy ZSBpbiBzdXBwb3J0CiMgZm9yIHRoaXMgaW4gdGhlIEhBTC4KIwpjZGxfY29t cG9uZW50IENZR1BLR19IQUxfREVCVUcgewogICAgIyBUaGVyZSBpcyBubyBh c3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgU3VwcG9ydCBmb3IgR0RCIHN0 dWJzCiMgVGhlIEhBTCBpbXBsZW1lbnRzIEdEQiBzdHVicyBmb3IgdGhlIHRh cmdldC4KIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9IQUxfREVCVUdfR0RCX1NU VUJTIHsKICAgICMgSW1wbGVtZW50ZWQgYnkgQ1lHUEtHX0hBTF9JMzg2X1BD LCBhY3RpdmUsIGVuYWJsZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUg bW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJl bnRfdmFsdWU6IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBh cmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHREJH X0hBTF9ERUJVR19HREJfSU5DTFVERV9TVFVCUwogICAgIyAgICAgQWN0aXZl SWY6IENZR0lOVF9IQUxfREVCVUdfR0RCX1NUVUJTCn07CgojIEluY2x1ZGUg R0RCIHN0dWJzIGluIEhBTAojIFRoaXMgb3B0aW9uIGNhdXNlcyBhIHNldCBv ZiBHREIgc3R1YnMgdG8gYmUgaW5jbHVkZWQgaW50byB0aGUKIyBzeXN0ZW0u IE9uIHNvbWUgdGFyZ2V0IHN5c3RlbXMgdGhlIEdEQiBzdXBwb3J0IHdpbGwg YmUKIyBwcm92aWRlZCBieSBvdGhlciBtZWFucywgZm9yIGV4YW1wbGUgYnkg YSBST00gbW9uaXRvci4gT24KIyBvdGhlciB0YXJnZXRzLCBlc3BlY2lhbGx5 IHdoZW4gYnVpbGRpbmcgYSBST00tYm9vdGluZyBzeXN0ZW0sCiMgdGhlIG5l Y2Vzc2FyeSBzdXBwb3J0IGhhcyB0byBnbyBpbnRvIHRoZSB0YXJnZXQgbGli cmFyeQojIGl0c2VsZi4KIwpjZGxfb3B0aW9uIENZR0RCR19IQUxfREVCVUdf R0RCX0lOQ0xVREVfU1RVQlMgewogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50 OiBDWUdJTlRfSEFMX0RFQlVHX0dEQl9TVFVCUwogICAgIyAgICAgQ1lHSU5U X0hBTF9ERUJVR19HREJfU1RVQlMgPT0gMQogICAgIyAgIC0tPiAxCgogICAg IyBGbGF2b3I6IGJvb2wKICAgIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9z b3VyY2UgdXNlcgogICAgIyBEZWZhdWx0IHZhbHVlOiAwCiAgICAjIFJlcXVp cmVzOiAhIENZR1NFTV9IQUxfVVNFX1JPTV9NT05JVE9SCiAgICAjICAgICBD WUdTRU1fSEFMX1VTRV9ST01fTU9OSVRPUiA9PSAwCiAgICAjICAgLS0+IDEK CiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQg YnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHREJHX0hBTF9ERUJVR19H REJfQlJFQUtfU1VQUE9SVAogICAgIyAgICAgUmVxdWlyZXM6IENZR0RCR19I QUxfREVCVUdfR0RCX0lOQ0xVREVfU1RVQlMKICAgICMgb3B0aW9uIENZR0RC R19IQUxfREVCVUdfR0RCX0NUUkxDX1NVUFBPUlQKICAgICMgICAgIEFjdGl2 ZUlmOiAgQ1lHU0VNX0hBTF9VU0VfUk9NX01PTklUT1IgfHwgQ1lHREJHX0hB TF9ERUJVR19HREJfSU5DTFVERV9TVFVCUyAKICAgICMgb3B0aW9uIENZR0JM RF9CVUlMRF9DT01NT05fR0RCX1NUVUJTCiAgICAjICAgICBSZXF1aXJlczog Q1lHREJHX0hBTF9ERUJVR19HREJfSU5DTFVERV9TVFVCUwogICAgIyBvcHRp b24gQ1lHQkxEX0JVSUxEX0dEQl9TVFVCUwogICAgIyAgICAgUmVxdWlyZXM6 IENZR0RCR19IQUxfREVCVUdfR0RCX0lOQ0xVREVfU1RVQlMKfTsKCiMgU3Vw cG9ydCBmb3IgZXh0ZXJuYWwgYnJlYWsgc3VwcG9ydCBpbiBHREIgc3R1YnMK IyBUaGUgSEFMIGltcGxlbWVudHMgZXh0ZXJuYWwgYnJlYWsgKG9yIGFzeW5j aHJvbm91cyBpbnRlcnJ1cHQpCiMgaW4gdGhlIEdEQiBzdHVicyBmb3IgdGhl IHRhcmdldC4KIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9IQUxfREVCVUdfR0RC X1NUVUJTX0JSRUFLIHsKICAgICMgSW1wbGVtZW50ZWQgYnkgQ1lHUEtHX0hB TF9JMzg2X1BDLCBhY3RpdmUsIGVuYWJsZWQKICAgICMgVGhpcyB2YWx1ZSBj YW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAg ICAjIEN1cnJlbnRfdmFsdWU6IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJv cGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRp b24gQ1lHREJHX0hBTF9ERUJVR19HREJfQlJFQUtfU1VQUE9SVAogICAgIyAg ICAgQWN0aXZlSWY6IENZR0lOVF9IQUxfREVCVUdfR0RCX1NUVUJTX0JSRUFL Cn07CgojIEluY2x1ZGUgR0RCIGV4dGVybmFsIGJyZWFrIHN1cHBvcnQgZm9y IHN0dWJzCiMgVGhpcyBvcHRpb24gY2F1c2VzIHRoZSBHREIgc3R1YiB0byBh ZGQgYSBzZXJpYWwgaW50ZXJydXB0IGhhbmRsZXIKIyB3aGljaCB3aWxsIGxp c3RlbiBmb3IgR0RCIGJyZWFrIHBhY2tldHMuIFRoaXMgbGV0cyB5b3Ugc3Rv cCB0aGUKIyB0YXJnZXQgYXN5bmNocm9ub3VzbHkgd2hlbiB1c2luZyBHREIs IHVzdWFsbHkgYnkgaGl0dGluZyBDb250cm9sK0MKIyBvciBwcmVzc2luZyB0 aGUgU1RPUCBidXR0b24uIFRoaXMgb3B0aW9uIGRpZmZlcnMgZnJvbQojIENZ R0RCR19IQUxfREVCVUdfR0RCX0NUUkxDX1NVUFBPUlQgaW4gdGhhdCBpdCBp cyB1c2VkIHdoZW4KIyBHREIgc3R1YnMgYXJlIHByZXNlbnQuCiMKY2RsX29w dGlvbiBDWUdEQkdfSEFMX0RFQlVHX0dEQl9CUkVBS19TVVBQT1JUIHsKICAg ICMgQWN0aXZlSWYgY29uc3RyYWludDogQ1lHSU5UX0hBTF9ERUJVR19HREJf U1RVQlNfQlJFQUsKICAgICMgICAgIENZR0lOVF9IQUxfREVCVUdfR0RCX1NU VUJTX0JSRUFLID09IDEKICAgICMgICAtLT4gMQoKICAgICMgRmxhdm9yOiBi b29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAwCiAgICAjIFJlcXVpcmVzOiBDWUdEQkdfSEFMX0RFQlVHX0dEQl9JTkNM VURFX1NUVUJTCiAgICAjICAgICBDWUdEQkdfSEFMX0RFQlVHX0dEQl9JTkNM VURFX1NUVUJTID09IDEKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAg ICAjIG9wdGlvbiBDWUdEQkdfSEFMX0RFQlVHX0dEQl9DVFJMQ19TVVBQT1JU CiAgICAjICAgICBSZXF1aXJlczogIUNZR0RCR19IQUxfREVCVUdfR0RCX0JS RUFLX1NVUFBPUlQKICAgICMgb3B0aW9uIENZR0JMRF9CVUlMRF9HREJfU1RV QlMKICAgICMgICAgIFJlcXVpcmVzOiAhIENZR0RCR19IQUxfREVCVUdfR0RC X0JSRUFLX1NVUFBPUlQKfTsKCiMgUGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9y dCBDVFJMQwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0hBTF9ERUJVR19HREJf Q1RSTENfVU5TVVBQT1JURUQgewogICAgIyBObyBvcHRpb25zIGltcGxlbWVu dCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBt b2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVu dF92YWx1ZTogMAoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFy ZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIG9wdGlvbiBDWUdEQkdf SEFMX0RFQlVHX0dEQl9DVFJMQ19TVVBQT1JUCiAgICAjICAgICBBY3RpdmVJ ZjogIENZR0lOVF9IQUxfREVCVUdfR0RCX0NUUkxDX1VOU1VQUE9SVEVEID09 IDAgCn07CgojIEluY2x1ZGUgR0RCIGV4dGVybmFsIGJyZWFrIHN1cHBvcnQg d2hlbiBubyBzdHVicwojIFRoaXMgb3B0aW9uIGFkZHMgYW4gaW50ZXJydXB0 IGhhbmRsZXIgZm9yIHRoZSBHREIgc2VyaWFsIGxpbmUKIyB3aGljaCB3aWxs IGxpc3RlbiBmb3IgR0RCIGJyZWFrIHBhY2tldHMuIFRoaXMgbGV0cyB5b3Ug c3RvcCB0aGUKIyB0YXJnZXQgYXN5bmNocm9ub3VzbHkgd2hlbiB1c2luZyBH REIsIHVzdWFsbHkgYnkgaGl0dGluZyBDb250cm9sK0MKIyBvciBwcmVzc2lu ZyB0aGUgU1RPUCBidXR0b24uIFRoaXMgb3B0aW9uIGRpZmZlcnMgZnJvbQoj IENZR0RCR19IQUxfREVCVUdfR0RCX0JSRUFLX1NVUFBPUlQgaW4gdGhhdCBp dCBpcyB1c2VkIHdoZW4gdGhlIEdEQgojIHN0dWJzIGFyZSBOT1QgcHJlc2Vu dC4KIwpjZGxfb3B0aW9uIENZR0RCR19IQUxfREVCVUdfR0RCX0NUUkxDX1NV UFBPUlQgewogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiAgQ1lHU0VNX0hB TF9VU0VfUk9NX01PTklUT1IgfHwgQ1lHREJHX0hBTF9ERUJVR19HREJfSU5D TFVERV9TVFVCUyAKICAgICMgICAgIENZR1NFTV9IQUxfVVNFX1JPTV9NT05J VE9SID09IDAKICAgICMgICAgIENZR0RCR19IQUxfREVCVUdfR0RCX0lOQ0xV REVfU1RVQlMgPT0gMQogICAgIyAgIC0tPiAxCiAgICAjIEFjdGl2ZUlmIGNv bnN0cmFpbnQ6ICBDWUdJTlRfSEFMX0RFQlVHX0dEQl9DVFJMQ19VTlNVUFBP UlRFRCA9PSAwIAogICAgIyAgICAgQ1lHSU5UX0hBTF9ERUJVR19HREJfQ1RS TENfVU5TVVBQT1JURUQgPT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBGbGF2 b3I6IGJvb2wKICAgIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2Ug dXNlcgogICAgIyBEZWZhdWx0IHZhbHVlOiAxCiAgICAjIFJlcXVpcmVzOiAh Q1lHREJHX0hBTF9ERUJVR19HREJfQlJFQUtfU1VQUE9SVAogICAgIyAgICAg Q1lHREJHX0hBTF9ERUJVR19HREJfQlJFQUtfU1VQUE9SVCA9PSAwCiAgICAj ICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUg YWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHQkxEX0JV SUxEX0dEQl9TVFVCUwogICAgIyAgICAgUmVxdWlyZXM6ICEgQ1lHREJHX0hB TF9ERUJVR19HREJfQ1RSTENfU1VQUE9SVAp9OwoKIyBJbmNsdWRlIEdEQiBt dWx0aS10aHJlYWRpbmcgZGVidWcgc3VwcG9ydAojIFRoaXMgb3B0aW9uIGVu YWJsZXMgc29tZSBleHRyYSBIQUwgY29kZSB3aGljaCBpcyBuZWVkZWQKIyB0 byBzdXBwb3J0IG11bHRpLXRocmVhZGVkIHNvdXJjZSBsZXZlbCBkZWJ1Z2dp bmcuCiMKY2RsX29wdGlvbiBDWUdEQkdfSEFMX0RFQlVHX0dEQl9USFJFQURf U1VQUE9SVCB7CiAgICAjIEFjdGl2ZUlmIGNvbnN0cmFpbnQ6ICBDWUdTRU1f SEFMX1JPTV9NT05JVE9SIHx8IENZR0RCR19LRVJORUxfREVCVUdfR0RCX1RI UkVBRF9TVVBQT1JUIAogICAgIyAgICAgQ1lHU0VNX0hBTF9ST01fTU9OSVRP UiA9PSAxCiAgICAjICAgICBDWUdEQkdfS0VSTkVMX0RFQlVHX0dEQl9USFJF QURfU1VQUE9SVCAodW5rbm93bikgPT0gMAogICAgIyAgIC0tPiAxCgogICAg IyBGbGF2b3I6IGJvb2wKICAgIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9z b3VyY2UgdXNlcgogICAgIyBEZWZhdWx0IHZhbHVlOiAxCgogICAgIyBUaGUg Zm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFs dWUKICAgICMgb3B0aW9uIENZR0JMRF9CVUlMRF9HREJfU1RVQlMKICAgICMg ICAgIFJlcXVpcmVzOiAhIENZR0RCR19IQUxfREVCVUdfR0RCX1RIUkVBRF9T VVBQT1JUCn07CgojIDwKIyBST00gbW9uaXRvciBzdXBwb3J0CiMgU3VwcG9y dCBmb3IgUk9NIG1vbml0b3JzIGNhbiBiZSBidWlsdCBpbiB0byB5b3VyIGFw cGxpY2F0aW9uLiAKIyBJdCBtYXkgYWxzbyBiZSByZWxldmFudCB0byBidWls ZCB5b3VyIGFwcGxpY2F0aW9uIGFzIGEgUk9NIG1vbml0b3IKIyBpdHNlbGYu IFN1Y2ggb3B0aW9ucyBhcmUgY29udGFpbmVkIGhlcmUgaWYgcmVsZXZhbnQg Zm9yIHlvdXIgY2hvc2VuCiMgcGxhdGZvcm0uIFRoZSBvcHRpb25zIGFuZCBS T00gbW9uaXRvcnMgYXZhaWxhYmxlIHRvIGNob29zZSBhcmUKIyBwbGF0Zm9y bS1kZXBlbmRlbnQuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfSEFMX1JPTV9N T05JVE9SIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4K CiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQg YnkgdGhpcyB2YWx1ZQp9OwoKIyA+CiMgVGFyZ2V0IGhhcyB2aXJ0dWFsIHZl Y3RvciBzdXBwb3J0CiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSEFMX1ZJUlRV QUxfVkVDVE9SX1NVUFBPUlQgewogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdQ S0dfSEFMX0kzODZfUEMsIGFjdGl2ZSwgZW5hYmxlZAogICAgIyBUaGlzIHZh bHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgQ3VycmVudF92YWx1ZTogMQoKICAgICMgVGhlIGZvbGxvd2lu ZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAj IGNvbXBvbmVudCBDWUdTRU1fSEFMX1ZJUlRVQUxfVkVDVE9SX1NVUFBPUlQK ICAgICMgICAgIEFjdGl2ZUlmOiBDWUdJTlRfSEFMX1ZJUlRVQUxfVkVDVE9S X1NVUFBPUlQKfTsKCiMgVGhlIHBsYXRmb3JtIHBvcnQgd2FzIHdyaXR0ZW4g d2l0aCB2ZWN0b3Igc3VwcG9ydAojIE1hbnkgcGxhdGZvcm0gSEFMcyBoYXZl IGFkb3B0ZWQgdGhlIHZpcnR1YWwgdmVjdG9yIHN1cHBvcnQKIyBhZnRlciBp dHMgaW50cm9kdWN0aW9uLiBPbiB0aG9zZSBwbGF0Zm9ybXMsIG9sZCBST00K IyBtb25pdG9ycyB3aWxsIG5vdCBwcm92aWRlIHRoZSBuZWNlc3Nhcnkgc2Vy dmljZXMgLSBhbmQKIyBzbyB0aGUgdXNlIG9mIHRoZXNlIHNlcnZpY2VzIHNo b3VsZCBiZSBkaXNhYmxlZCBwZXIgZGVmYXVsdC4KIyBOZXdlciBwb3J0cywg aG93ZXZlciwgZ3VhcmFudGVlIHRvIHByb3ZpZGUgdGhlIG5lY2Vzc2FyeQoj IHNlcnZpY2VzIGluIGFsbCBST00gbW9uaXRvcnMsIGFuZCBzbyBkZWZhdWx0 IHRvIHVzZSB0aGUKIyBzZXJ2aWNlcy4KIwpjZGxfaW50ZXJmYWNlIENZR0lO VF9IQUxfVklSVFVBTF9WRUNUT1JfU1VQUE9SVF9HVUFSQU5URUVEIHsKICAg ICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMg VGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxh dm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKCiAgICAjIFRoZSBm b2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1 ZQogICAgIyBvcHRpb24gQ1lHU0VNX0hBTF9WSVJUVUFMX1ZFQ1RPUl9ESUFH CiAgICAjICAgICBEZWZhdWx0VmFsdWU6ICBDWUdJTlRfSEFMX1ZJUlRVQUxf VkVDVE9SX1NVUFBPUlRfR1VBUkFOVEVFRCAKfTsKCiMgRW5hYmxlIHVzZSBv ZiB2aXJ0dWFsIHZlY3RvciBjYWxsaW5nIGludGVyZmFjZQojIFZpcnR1YWwg dmVjdG9yIHN1cHBvcnQgYWxsb3dzIHRoZSBIQUwgdG8gbGV0IHRoZSBST00K IyBtb25pdG9yIGhhbmRsZSBjZXJ0YWluIG9wZXJhdGlvbnMuIFRoZSB2aXJ0 dWFsIHZlY3RvciB0YWJsZQojIGRlZmluZXMgYSBjYWxsaW5nIGludGVyZmFj ZSBiZXR3ZWVuIGFwcGxpY2F0aW9ucyBydW5uaW5nIGluCiMgUkFNIGFuZCB0 aGUgUk9NIG1vbml0b3IuCiMKY2RsX2NvbXBvbmVudCBDWUdTRU1fSEFMX1ZJ UlRVQUxfVkVDVE9SX1NVUFBPUlQgewogICAgIyBBY3RpdmVJZiBjb25zdHJh aW50OiBDWUdJTlRfSEFMX1ZJUlRVQUxfVkVDVE9SX1NVUFBPUlQKICAgICMg ICAgIENZR0lOVF9IQUxfVklSVFVBTF9WRUNUT1JfU1VQUE9SVCA9PSAxCiAg ICAjICAgLS0+IDEKCiAgICAjIENhbGN1bGF0ZWQgdmFsdWU6IDEKICAgICMg Rmxhdm9yOiBib29sCiAgICAjIEN1cnJlbnQgdmFsdWU6IDEKfTsKCiMgPgoj IERvIGRpYWdub3N0aWMgSU8gdmlhIHZpcnR1YWwgdmVjdG9yIHRhYmxlCiMg VGhlIHZpcnR1YWwgdmVjdG9yIHRhYmxlIHByb3ZpZGVzIGZ1bmN0aW9ucyBm b3IKIyBkaWFnbm9zdGljIElPLiBVc2luZyB0aGVzZSBib3RoIHJlZHVjZSB0 aGUgYXBwbGljYXRpb24KIyBzaXplIGEgYml0LCBhbmQgYWxsb3cgdGhlIFJP TSBtb25pdG9yIHRvIGNvbnRyb2wgd2hpY2gKIyBjb21tdW5pY2F0aW9uIGlu dGVyZXJmYWNlIHRvIHVzZS4gQ2FyZWZ1bCB3aGVuIGVuYWJsaW5nCiMgdGhp cyBvcHRpb24gYXMgaXQgbWF5IGNhdXNlIG91dHB1dCB0byBkaXNhcHBlYXIg KGlmCiMgdGhlIFJPTSBtb25pdG9yIGRvZXMgbm90IHByb3ZpZGUgdGhlIG5l Y2Vzc2FyeQojIHNlcnZpY2VzKS4KIwpjZGxfb3B0aW9uIENZR1NFTV9IQUxf VklSVFVBTF9WRUNUT1JfRElBRyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIENZR0lO VF9IQUxfVklSVFVBTF9WRUNUT1JfU1VQUE9SVF9HVUFSQU5URUVEIAogICAg IyAgICAgQ1lHSU5UX0hBTF9WSVJUVUFMX1ZFQ1RPUl9TVVBQT1JUX0dVQVJB TlRFRUQgPT0gMAogICAgIyAgIC0tPiAwCn07CgojIDwKIyBXb3JrIHdpdGgg YSBST00gbW9uaXRvcgojIFN1cHBvcnQgY2FuIGJlIGVuYWJsZWQgZm9yIGRp ZmZlcmVudCB2YXJpZXRpZXMgb2YgUk9NIG1vbml0b3IuCiMgVGhpcyBzdXBw b3J0IGNoYW5nZXMgdmFyaW91cyBlQ29zIHNlbWFudGljcyBzdWNoIGFzIHRo ZSBlbmNvZGluZwojIG9mIGRpYWdub3N0aWMgb3V0cHV0LCBvciB0aGUgb3Zl cnJpZGluZyBvZiBoYXJkd2FyZSBpbnRlcnJ1cHQKIyB2ZWN0b3JzLgojIEZp cnN0bHkgdGhlcmUgaXMgIkdlbmVyaWMiIHN1cHBvcnQgd2hpY2ggcHJldmVu dHMgdGhlIEhBTAojIGZyb20gb3ZlcnJpZGluZyB0aGUgaGFyZHdhcmUgdmVj dG9ycyB0aGF0IGl0IGRvZXMgbm90IHVzZSwgdG8KIyBpbnN0ZWFkIGFsbG93 IGFuIGluc3RhbGxlZCBST00gbW9uaXRvciB0byBoYW5kbGUgdGhlbS4gVGhp cyBpcwojIHRoZSBtb3N0IGJhc2ljIHN1cHBvcnQgd2hpY2ggaXMgbGlrZWx5 IHRvIGJlIGNvbW1vbiB0byBtb3N0CiMgaW1wbGVtZW50YXRpb25zIG9mIFJP TSBtb25pdG9yLgojICJHREJfc3R1YnMiIHByb3ZpZGVzIHN1cHBvcnQgd2hl biBHREIgc3R1YnMgYXJlIGluY2x1ZGVkIGluCiMgdGhlIFJPTSBtb25pdG9y IG9yIGJvb3QgUk9NLgojCmNkbF9vcHRpb24gQ1lHU0VNX0hBTF9VU0VfUk9N X01PTklUT1IgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICB1c2VyX3Zh bHVlIDAgR0RCX3N0dWJzCiAgICAjIHZhbHVlX3NvdXJjZSB1c2VyCiAgICAj IERlZmF1bHQgdmFsdWU6ICBDWUdfSEFMX1NUQVJUVVAgPT0gIlJBTSIgPyAi R0RCX3N0dWJzIiA6IDAgCiAgICAjICAgICBDWUdfSEFMX1NUQVJUVVAgPT0g RkxPUFBZCiAgICAjICAgLS0+IDAgMAogICAgIyBMZWdhbCB2YWx1ZXM6ICAi R2VuZXJpYyIgIkdEQl9zdHVicyIgCiAgICAjIFJlcXVpcmVzOiAgQ1lHX0hB TF9TVEFSVFVQID09ICJSQU0iIAogICAgIyAgICAgQ1lHX0hBTF9TVEFSVFVQ ID09IEZMT1BQWQogICAgIyAgIC0tPiAwCgogICAgIyBUaGUgZm9sbG93aW5n IHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMg b3B0aW9uIENZR0RCR19IQUxfREVCVUdfR0RCX0lOQ0xVREVfU1RVQlMKICAg ICMgICAgIFJlcXVpcmVzOiAhIENZR1NFTV9IQUxfVVNFX1JPTV9NT05JVE9S CiAgICAjIG9wdGlvbiBDWUdEQkdfSEFMX0RFQlVHX0dEQl9DVFJMQ19TVVBQ T1JUCiAgICAjICAgICBBY3RpdmVJZjogIENZR1NFTV9IQUxfVVNFX1JPTV9N T05JVE9SIHx8IENZR0RCR19IQUxfREVCVUdfR0RCX0lOQ0xVREVfU1RVQlMg Cn07CgojIEJlaGF2ZSBhcyBhIFJPTSBtb25pdG9yCiMgRW5hYmxlIHRoaXMg b3B0aW9uIGlmIHRoaXMgcHJvZ3JhbSBpcyB0byBiZSB1c2VkIGFzIGEgUk9N IG1vbml0b3IsCiMgaS5lLiBhcHBsaWNhdGlvbnMgd2lsbCBiZSBsb2FkZWQg aW50byBSQU0gb24gdGhlIGJvYXJkLCBhbmQgdGhpcwojIFJPTSBtb25pdG9y IG1heSBwcm9jZXNzIGV4Y2VwdGlvbnMgb3IgaW50ZXJydXB0cyBnZW5lcmF0 ZWQgZnJvbSB0aGUKIyBhcHBsaWNhdGlvbi4gVGhpcyBlbmFibGVzIGZlYXR1 cmVzIHN1Y2ggYXMgdXRpbGl6aW5nIGEgc2VwYXJhdGUKIyBpbnRlcnJ1cHQg c3RhY2sgd2hlbiBleGNlcHRpb25zIGFyZSBnZW5lcmF0ZWQuCiMKY2RsX29w dGlvbiBDWUdTRU1fSEFMX1JPTV9NT05JVE9SIHsKICAgICMgRmxhdm9yOiBi b29sCiAgICB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIHVzZXIK ICAgICMgRGVmYXVsdCB2YWx1ZTogMAogICAgIyBSZXF1aXJlczogIENZR19I QUxfU1RBUlRVUCA9PSAiRkxPUFBZIiAKICAgICMgICAgIENZR19IQUxfU1RB UlRVUCA9PSBGTE9QUFkKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAg ICAjIG9wdGlvbiBDWUdCTERfQlVJTERfR0RCX1NUVUJTCiAgICAjICAgICBS ZXF1aXJlczogQ1lHU0VNX0hBTF9ST01fTU9OSVRPUgogICAgIyBvcHRpb24g Q1lHREJHX0hBTF9ERUJVR19HREJfVEhSRUFEX1NVUFBPUlQKICAgICMgICAg IEFjdGl2ZUlmOiAgQ1lHU0VNX0hBTF9ST01fTU9OSVRPUiB8fCBDWUdEQkdf S0VSTkVMX0RFQlVHX0dEQl9USFJFQURfU1VQUE9SVCAKfTsKCiMgPAojIENv bW1vbiBIQUwgdGVzdHMKIyBUaGlzIG9wdGlvbiBzcGVjaWZpZXMgdGhlIHNl dCBvZiB0ZXN0cyBmb3IgdGhlIGNvbW1vbiBIQUwuCiMKY2RsX29wdGlvbiBD WUdQS0dfSEFMX1RFU1RTIHsKICAgICMgQ2FsY3VsYXRlZCB2YWx1ZTogICJ0 ZXN0cy9jYWNoZSB0ZXN0cy9jb250ZXh0IHRlc3RzL2ludHIiIAogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogdGVzdHMvY2FjaGUg dGVzdHMvY29udGV4dCB0ZXN0cy9pbnRyCn07CgojIGkzODYgYXJjaGl0ZWN0 dXJlCiMgVGhlIGkzODYgYXJjaGl0ZWN0dXJlIEhBTCBwYWNrYWdlIHByb3Zp ZGVzIGdlbmVyaWMKIyBzdXBwb3J0IGZvciB0aGlzIHByb2Nlc3NvciBhcmNo aXRlY3R1cmUuIEl0IGlzIGFsc28KIyBuZWNlc3NhcnkgdG8gc2VsZWN0IGEg c3BlY2lmaWMgdGFyZ2V0IHBsYXRmb3JtIEhBTAojIHBhY2thZ2UuCiMKY2Rs X3BhY2thZ2UgQ1lHUEtHX0hBTF9JMzg2IHsKICAgICMgUGFja2FnZXMgY2Fu bm90IGJlIGFkZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVyc2lv biBiZSBjaGFuZ2VkLAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVpciB2 YWx1ZS4gSW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbgog ICAgIyBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnMu CgogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgog ICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6IDEg Y3VycmVudAoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBh ZmZlY3RlZCBieSB0aGlzIHZhbHVlCn07CgojID4KIyBMaW5rZXIgc2NyaXB0 CiMKY2RsX29wdGlvbiBDWUdCTERfTElOS0VSX1NDUklQVCB7CiAgICAjIENh bGN1bGF0ZWQgdmFsdWU6ICAic3JjL2kzODYubGQiIAogICAgIyBGbGF2b3I6 IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogc3JjL2kzODYubGQKfTsKCiMg aTM4NiBQQyB0YXJnZXQKIyBUaGUgaTM4NiBQQyBUYXJnZXQgSEFMIHBhY2th Z2UgcHJvdmlkZXMgdGhlIAojIHN1cHBvcnQgbmVlZGVkIHRvIHJ1biBlQ29z IGJpbmFyaWVzIG9uIGFuIGkzODYgUEMuCiMKY2RsX3BhY2thZ2UgQ1lHUEtH X0hBTF9JMzg2X1BDIHsKICAgICMgUGFja2FnZXMgY2Fubm90IGJlIGFkZGVk IG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVyc2lvbiBiZSBjaGFuZ2Vk LAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVpciB2YWx1ZS4gSW5zdGVh ZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbgogICAgIyBzaG91bGQg YmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnMuCgogICAgIyBUaGlz IHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6 IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6IDEgY3VycmVudAoKICAg ICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0 aGlzIHZhbHVlCiAgICAjIHBhY2thZ2UgQ1lHUEtHX0lPX1NFUklBTF9JMzg2 X1BDCiAgICAjICAgICBBY3RpdmVJZjogQ1lHUEtHX0hBTF9JMzg2X1BDCn07 CgojID4KIyBTdGFydHVwIHR5cGUKIyBBdCB0aGUgbW9tZW50IG9ubHkgUkFN IHN0YXJ0dXAgaXMgc3VwcG9ydGVkLiBUaGlzIHNob3VsZAojIGJlIGV4dGVu ZGVkIHRvIGluY2x1ZGUgUk9NIHN0YXJ0dXAgd2hpY2ggd291bGQgYmUgdXNl ZCB0bwojIHRlc3QgZWFybHkgaW5pdGlhbGl6YXRpb24gY29kZSBjb3B5aW5n IGRhdGEvY29kZSB0byAiUkFNIi4KIwpjZGxfY29tcG9uZW50IENZR19IQUxf U1RBUlRVUCB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgdXNlcl92YWx1ZSBG TE9QUFkKICAgICMgdmFsdWVfc291cmNlIHVzZXIKICAgICMgRGVmYXVsdCB2 YWx1ZTogUkFNCiAgICAjIExlZ2FsIHZhbHVlczogIlJBTSIgIkZMT1BQWSIK CiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQg YnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHQkxEX0JVSUxEX0dEQl9T VFVCUwogICAgIyAgICAgUmVxdWlyZXM6ICBDWUdfSEFMX1NUQVJUVVAgPT0g IkZMT1BQWSIgCiAgICAjIGNvbXBvbmVudCBDWUdIV1JfTUVNT1JZX0xBWU9V VAogICAgIyAgICAgQ2FsY3VsYXRlZDogIENZR19IQUxfU1RBUlRVUCA9PSAi UkFNIiA/ICJpMzg2X3BjX3JhbSIgOiAgImkzODZfcGNfZmxvcHB5IiAKICAg ICMgb3B0aW9uIENZR0hXUl9NRU1PUllfTEFZT1VUX0xESQogICAgIyAgICAg Q2FsY3VsYXRlZDogIENZR19IQUxfU1RBUlRVUCA9PSAiUkFNIiA/ICI8cGtn Y29uZi9tbHRfaTM4Nl9wY19yYW0ubGRpPiIgOiAgIjxwa2djb25mL21sdF9p Mzg2X3BjX2Zsb3BweS5sZGk+IiAKICAgICMgb3B0aW9uIENZR0hXUl9NRU1P UllfTEFZT1VUX0gKICAgICMgICAgIENhbGN1bGF0ZWQ6ICBDWUdfSEFMX1NU QVJUVVAgPT0gIlJBTSIgPyAiPHBrZ2NvbmYvbWx0X2kzODZfcGNfcmFtLmg+ IiA6ICAiPHBrZ2NvbmYvbWx0X2kzODZfcGNfZmxvcHB5Lmg+IiAKICAgICMg b3B0aW9uIENZR1NFTV9IQUxfUk9NX01PTklUT1IKICAgICMgICAgIFJlcXVp cmVzOiAgQ1lHX0hBTF9TVEFSVFVQID09ICJGTE9QUFkiIAogICAgIyBvcHRp b24gQ1lHU0VNX0hBTF9VU0VfUk9NX01PTklUT1IKICAgICMgICAgIERlZmF1 bHRWYWx1ZTogIENZR19IQUxfU1RBUlRVUCA9PSAiUkFNIiA/ICJHREJfc3R1 YnMiIDogMCAKICAgICMgb3B0aW9uIENZR1NFTV9IQUxfVVNFX1JPTV9NT05J VE9SCiAgICAjICAgICBSZXF1aXJlczogIENZR19IQUxfU1RBUlRVUCA9PSAi UkFNIiAKfTsKCiMgRGlhZ25vc3RpYyBzZXJpYWwgcG9ydCBiYXVkIHJhdGUK IyBUaGlzIG9wdGlvbiBzZWxlY3RzIHRoZSBiYXVkIHJhdGUgdXNlZCBmb3Ig dGhlIGRpYWdub3N0aWMgcG9ydC4KIyBOb3RlOiB0aGlzIHNob3VsZCBtYXRj aCB0aGUgdmFsdWUgY2hvc2VuIGZvciB0aGUgR0RCIHBvcnQgaWYgdGhlCiMg ZGlhZ25vc3RpYyBhbmQgR0RCIHBvcnQgYXJlIHRoZSBzYW1lLgojCmNkbF9v cHRpb24gQ1lHTlVNX0hBTF9WSVJUVUFMX1ZFQ1RPUl9DT05TT0xFX0NIQU5O RUxfQkFVRCB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDM4NDAwCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDM4NDAwCiAgICAjIExl Z2FsIHZhbHVlczogOTYwMCAxOTIwMCAzODQwMCA1NzYwMCAxMTUyMDAKfTsK CiMgR0RCIHNlcmlhbCBwb3J0IGJhdWQgcmF0ZQojIFRoaXMgb3B0aW9uIGNv bnRyb2xzIHRoZSBiYXVkIHJhdGUgdXNlZCBmb3IgdGhlIEdEQiBjb25uZWN0 aW9uLgojCmNkbF9vcHRpb24gQ1lHTlVNX0hBTF9WSVJUVUFMX1ZFQ1RPUl9E RUJVR19DSEFOTkVMX0JBVUQgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMg Tm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0 byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAzODQwMAogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAzODQw MAogICAgIyBMZWdhbCB2YWx1ZXM6IDk2MDAgMTkyMDAgMzg0MDAgNTc2MDAg MTE1MjAwCn07CgojIE51bWJlciBvZiBjb21tdW5pY2F0aW9uIGNoYW5uZWxz IG9uIHRoZSBib2FyZAojIFRoaXMgZGVmaW5lIHRoZSBudW1iZXIgb2Ygc2Vy aWFsIHBvcnRzIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBIQUwKIwpjZGxf b3B0aW9uIENZR05VTV9IQUxfVklSVFVBTF9WRUNUT1JfQ09NTV9DSEFOTkVM UyB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMQogICAgIyBMZWdhbCB2YWx1ZXM6IDEg dG8gMgoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZl Y3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIG9wdGlvbiBDWUdOVU1fSEFMX1ZJ UlRVQUxfVkVDVE9SX0RFQlVHX0NIQU5ORUwKICAgICMgICAgIExlZ2FsVmFs dWVzOiAwIHRvIENZR05VTV9IQUxfVklSVFVBTF9WRUNUT1JfQ09NTV9DSEFO TkVMUy0xCiAgICAjIG9wdGlvbiBDWUdOVU1fSEFMX1ZJUlRVQUxfVkVDVE9S X0NPTlNPTEVfQ0hBTk5FTAogICAgIyAgICAgTGVnYWxWYWx1ZXM6IDAgdG8g Q1lHTlVNX0hBTF9WSVJUVUFMX1ZFQ1RPUl9DT01NX0NIQU5ORUxTLTEKICAg ICMgb3B0aW9uIENZR05VTV9IQUxfVklSVFVBTF9WRUNUT1JfQ09OU09MRV9D SEFOTkVMX0RFRkFVTFQKICAgICMgICAgIExlZ2FsVmFsdWVzOiAwIHRvIENZ R05VTV9IQUxfVklSVFVBTF9WRUNUT1JfQ09NTV9DSEFOTkVMUy0xCn07Cgoj IERlYnVnIHNlcmlhbCBwb3J0CiMgT24gUENzIHdpdGggdHdvIHNlcmlhbCBw b3J0cywgdGhpcyBvcHRpb24KIyBjaG9vc2VzIHdoaWNoIHBvcnQgd2lsbCBi ZSB1c2VkIHRvIGNvbm5lY3QgdG8gYSBob3N0CiMgcnVubmluZyBHREIuCiMK Y2RsX29wdGlvbiBDWUdOVU1fSEFMX1ZJUlRVQUxfVkVDVE9SX0RFQlVHX0NI QU5ORUwgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKICAgICMgTGVnYWwgdmFsdWVz OiAwIHRvIENZR05VTV9IQUxfVklSVFVBTF9WRUNUT1JfQ09NTV9DSEFOTkVM Uy0xCiAgICAjICAgICBDWUdOVU1fSEFMX1ZJUlRVQUxfVkVDVE9SX0NPTU1f Q0hBTk5FTFMgPT0gMQp9OwoKIyBEaWFnbm9zdGljIHNlcmlhbCBwb3J0CiMg T24gUENzIHdpdGggdHdvIHNlcmlhbCBwb3J0cywgdGhpcyBvcHRpb24KIyBj aG9vc2VzIHdoaWNoIHBvcnQgd2lsbCBiZSB1c2VkIGZvciBkaWFnbm9zdGlj IG91dHB1dC4KIwpjZGxfb3B0aW9uIENZR05VTV9IQUxfVklSVFVBTF9WRUNU T1JfQ09OU09MRV9DSEFOTkVMIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAj IE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUg dG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1 ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCiAgICAj IExlZ2FsIHZhbHVlczogMCB0byBDWUdOVU1fSEFMX1ZJUlRVQUxfVkVDVE9S X0NPTU1fQ0hBTk5FTFMtMQogICAgIyAgICAgQ1lHTlVNX0hBTF9WSVJUVUFM X1ZFQ1RPUl9DT01NX0NIQU5ORUxTID09IDEKfTsKCiMgRGVmYXVsdCBjb25z b2xlIGNoYW5uZWwuCiMKY2RsX29wdGlvbiBDWUdOVU1fSEFMX1ZJUlRVQUxf VkVDVE9SX0NPTlNPTEVfQ0hBTk5FTF9ERUZBVUxUIHsKICAgICMgQ2FsY3Vs YXRlZCB2YWx1ZTogMAogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVu dF92YWx1ZTogMAogICAgIyBMZWdhbCB2YWx1ZXM6IDAgdG8gQ1lHTlVNX0hB TF9WSVJUVUFMX1ZFQ1RPUl9DT01NX0NIQU5ORUxTLTEKICAgICMgICAgIENZ R05VTV9IQUxfVklSVFVBTF9WRUNUT1JfQ09NTV9DSEFOTkVMUyA9PSAxCn07 CgojIFJlYWwtdGltZSBjbG9jayBjb25zdGFudHMuCiMgVGhlIFJUQyBwZXJp b2QgaXMgYmFzZWQKIyBvbiB0aGUgY2xvY2sgaW5wdXQgdG8gdGhlIDgyNTQs IHdoaWNoIGlzIDExOTMxODAgSHouICBDWUdOVU1fSEFMX1JUQ19QRVJJT0QK IyBpcyBzZXQgZm9yIDEwMCB0aWNrcyBwZXIgc2Vjb25kLgojCmNkbF9jb21w b25lbnQgQ1lHTlVNX0hBTF9SVENfQ09OU1RBTlRTIHsKICAgICMgVGhlcmUg aXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIFJlYWwtdGltZSBj bG9jayBudW1lcmF0b3IKIwpjZGxfb3B0aW9uIENZR05VTV9IQUxfUlRDX05V TUVSQVRPUiB7CiAgICAjIENhbGN1bGF0ZWQgdmFsdWU6IDEwMDAwMDAwMDAK ICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDEwMDAw MDAwMDAKfTsKCiMgUmVhbC10aW1lIGNsb2NrIGRlbm9taW5hdG9yCiMKY2Rs X29wdGlvbiBDWUdOVU1fSEFMX1JUQ19ERU5PTUlOQVRPUiB7CiAgICAjIENh bGN1bGF0ZWQgdmFsdWU6IDEwMAogICAgIyBGbGF2b3I6IGRhdGEKICAgICMg Q3VycmVudF92YWx1ZTogMTAwCn07CgojIFJlYWwtdGltZSBjbG9jayBwZXJp b2QKIwpjZGxfb3B0aW9uIENZR05VTV9IQUxfUlRDX1BFUklPRCB7CiAgICAj IENhbGN1bGF0ZWQgdmFsdWU6IDExOTMyCiAgICAjIEZsYXZvcjogZGF0YQog ICAgIyBDdXJyZW50X3ZhbHVlOiAxMTkzMgp9OwoKIyA8CiMgTWVtb3J5IGxh eW91dAojCmNkbF9jb21wb25lbnQgQ1lHSFdSX01FTU9SWV9MQVlPVVQgewog ICAgIyBDYWxjdWxhdGVkIHZhbHVlOiAgQ1lHX0hBTF9TVEFSVFVQID09ICJS QU0iID8gImkzODZfcGNfcmFtIiA6ICAiaTM4Nl9wY19mbG9wcHkiIAogICAg IyAgICAgQ1lHX0hBTF9TVEFSVFVQID09IEZMT1BQWQogICAgIyBGbGF2b3I6 IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogaTM4Nl9wY19mbG9wcHkKfTsK CiMgPgojIE1lbW9yeSBsYXlvdXQgbGlua2VyIHNjcmlwdCBmcmFnbWVudAoj CmNkbF9vcHRpb24gQ1lHSFdSX01FTU9SWV9MQVlPVVRfTERJIHsKICAgICMg Q2FsY3VsYXRlZCB2YWx1ZTogIENZR19IQUxfU1RBUlRVUCA9PSAiUkFNIiA/ ICI8cGtnY29uZi9tbHRfaTM4Nl9wY19yYW0ubGRpPiIgOiAgIjxwa2djb25m L21sdF9pMzg2X3BjX2Zsb3BweS5sZGk+IiAKICAgICMgICAgIENZR19IQUxf U1RBUlRVUCA9PSBGTE9QUFkKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1 cnJlbnRfdmFsdWU6IDxwa2djb25mL21sdF9pMzg2X3BjX2Zsb3BweS5sZGk+ Cn07CgojIE1lbW9yeSBsYXlvdXQgaGVhZGVyIGZpbGUKIwpjZGxfb3B0aW9u IENZR0hXUl9NRU1PUllfTEFZT1VUX0ggewogICAgIyBDYWxjdWxhdGVkIHZh bHVlOiAgQ1lHX0hBTF9TVEFSVFVQID09ICJSQU0iID8gIjxwa2djb25mL21s dF9pMzg2X3BjX3JhbS5oPiIgOiAgIjxwa2djb25mL21sdF9pMzg2X3BjX2Zs b3BweS5oPiIgCiAgICAjICAgICBDWUdfSEFMX1NUQVJUVVAgPT0gRkxPUFBZ CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiA8cGtn Y29uZi9tbHRfaTM4Nl9wY19mbG9wcHkuaD4KfTsKCiMgPAojIERpYWdub3N0 aWMgb3V0cHV0IG9wdGlvbnMKIwpjZGxfY29tcG9uZW50IENZR1NFTV9IQUxf STM4Nl9QQ19ESUFHIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2 YWx1ZS4KfTsKCiMgPgojIE91dHB1dCB0byBQQyBzY3JlZW4KIyBUaGlzIG9w dGlvbiBjYXVzZXMgYW55IGRpYWdub3N0aWMgb3V0cHV0IHRvCiMgYmUgc2Vu dCB0byB0aGUgUEMgbW9uaXRvciBzY3JlZW4uCiMKY2RsX29wdGlvbiBDWUdT RU1fSEFMX0kzODZfUENfRElBR19TQ1JFRU4gewogICAgIyBGbGF2b3I6IGJv b2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAg ICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6 IDAKICAgICMgUmVxdWlyZXM6ICFDWUdTRU1fSEFMX0kzODZfUENfRElBR19T RVJJQUwxCiAgICAjICAgICBDWUdTRU1fSEFMX0kzODZfUENfRElBR19TRVJJ QUwxID09IDEKICAgICMgICAtLT4gMAogICAgIyBSZXF1aXJlczogIUNZR1NF TV9IQUxfSTM4Nl9QQ19ESUFHX1NFUklBTDIKICAgICMgICAgIENZR1NFTV9I QUxfSTM4Nl9QQ19ESUFHX1NFUklBTDIgPT0gMAogICAgIyAgIC0tPiAxCgog ICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5 IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR1NFTV9IQUxfSTM4Nl9QQ19E SUFHX1NFUklBTDEKICAgICMgICAgIFJlcXVpcmVzOiAhQ1lHU0VNX0hBTF9J Mzg2X1BDX0RJQUdfU0NSRUVOCiAgICAjIG9wdGlvbiBDWUdTRU1fSEFMX0kz ODZfUENfRElBR19TRVJJQUwyCiAgICAjICAgICBSZXF1aXJlczogIUNZR1NF TV9IQUxfSTM4Nl9QQ19ESUFHX1NDUkVFTgp9OwoKIyBPdXRwdXQgdG8gc2Vy aWFsIGxpbmUgMQojIFRoaXMgb3B0aW9uIGNhdXNlcyBhbnkgZGlhZ25vc3Rp YyBvdXRwdXQgdG8KIyBiZSBzZW50IHRvIHNlcmlhbCBsaW5lIDEuCiMKY2Rs X29wdGlvbiBDWUdTRU1fSEFMX0kzODZfUENfRElBR19TRVJJQUwxIHsKICAg ICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAxCiAgICAjIFJlcXVpcmVzOiAhQ1lHU0VNX0hBTF9J Mzg2X1BDX0RJQUdfU0NSRUVOCiAgICAjICAgICBDWUdTRU1fSEFMX0kzODZf UENfRElBR19TQ1JFRU4gPT0gMAogICAgIyAgIC0tPiAxCiAgICAjIFJlcXVp cmVzOiAhQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VSSUFMMgogICAgIyAg ICAgQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VSSUFMMiA9PSAwCiAgICAj ICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUg YWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHU0VNX0hB TF9JMzg2X1BDX0RJQUdfU0NSRUVOCiAgICAjICAgICBSZXF1aXJlczogIUNZ R1NFTV9IQUxfSTM4Nl9QQ19ESUFHX1NFUklBTDEKICAgICMgb3B0aW9uIENZ R1NFTV9IQUxfSTM4Nl9QQ19ESUFHX1NFUklBTDIKICAgICMgICAgIFJlcXVp cmVzOiAhQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VSSUFMMQp9OwoKIyBP dXRwdXQgdG8gc2VyaWFsIGxpbmUgMQojIFRoaXMgb3B0aW9uIGNhdXNlcyBh bnkgZGlhZ25vc3RpYyBvdXRwdXQgdG8KIyBiZSBzZW50IHRvIHNlcmlhbCBs aW5lIDIuCiMKY2RsX29wdGlvbiBDWUdTRU1fSEFMX0kzODZfUENfRElBR19T RVJJQUwyIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVm YXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAh Q1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0NSRUVOCiAgICAjICAgICBDWUdT RU1fSEFMX0kzODZfUENfRElBR19TQ1JFRU4gPT0gMAogICAgIyAgIC0tPiAx CiAgICAjIFJlcXVpcmVzOiAhQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VS SUFMMQogICAgIyAgICAgQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VSSUFM MSA9PSAxCiAgICAjICAgLS0+IDAKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJv cGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRp b24gQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0NSRUVOCiAgICAjICAgICBS ZXF1aXJlczogIUNZR1NFTV9IQUxfSTM4Nl9QQ19ESUFHX1NFUklBTDIKICAg ICMgb3B0aW9uIENZR1NFTV9IQUxfSTM4Nl9QQ19ESUFHX1NFUklBTDEKICAg ICMgICAgIFJlcXVpcmVzOiAhQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VS SUFMMgp9OwoKIyBTZXJpYWwgUG9ydCBTcGVlZAojIFRoaXMgb3B0aW9uIHNl bGVjdHMgdGhlIGJhdWQgcmF0ZSB1c2VkIGZvciB0aGUgZGlhZ25vc3RpYyBw b3J0LgojCmNkbF9vcHRpb24gQ1lHU0VNX0hBTF9JMzg2X1BDX0RJQUdfU0VS SUFMX1NQRUVEIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMzg0MDAKICAgICMgdmFsdWVfc291 cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMzg0MDAKICAgICMg TGVnYWwgdmFsdWVzOiA5NjAwIDE5MjAwIDM4NDAwIDU3NjAwIDExNTIwMAp9 OwoKIyA8CiMgPAojIDwKIyA8CiMgSW5mcmFzdHJ1Y3R1cmUKIyBDb21tb24g dHlwZXMgYW5kIHVzZWZ1bCBtYWNyb3MuCiMgVHJhY2luZyBhbmQgYXNzZXJ0 aW9uIGZhY2lsaXRpZXMuCiMgUGFja2FnZSBzdGFydHVwIG9wdGlvbnMuCiMK Y2RsX3BhY2thZ2UgQ1lHUEtHX0lORlJBIHsKICAgICMgUGFja2FnZXMgY2Fu bm90IGJlIGFkZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIgdmVyc2lv biBiZSBjaGFuZ2VkLAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0aGVpciB2 YWx1ZS4gSW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbgog ICAgIyBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnMu CgogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgog ICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6IDEg Y3VycmVudAp9OwoKIyA+CiMgVXNlIHZhcmFyZ3MgaW4gZGlhZ19wcmludGYo KQojIFRoZSBkaWFnbm9zdGljIHJvdXRpbmUgZGlhZ19wcmludGYoKSBjYW4g YmUgZGVmaW5lZAojIHVzaW5nIGVpdGhlciB2YXJpYWRpYyBhcmd1bWVudHMg b3IgYSBLJlIgc3R5bGUgZGVmaW5pdGlvbi4KIyBUaGUgZm9ybWVyIHdpbGwg d29yayBpbiBtb3N0IGNpcmN1bXN0YW5jZXMsIGJ1dCBpZiB2YXJpYWJsZQoj IGFyZ3VtZW50IGhhbmRsaW5nIGlzIGJyb2tlbiBvciBtaXNzaW5nIHRoZW4g dGhlIEsmUiB2YXJpYW50CiMgbWF5IGJlIHVzZWQuIFRoaXMgd2lsbCBhbHNv IGdlbmVyYXRlIHdhcm5pbmdzIGFib3V0IHRoZQojIGRlY2xhcmF0aW9uIG9m IGRpYWdfcHJpbnRmKCkgbm90IGJlaW5nIGEgcHJvdG90eXBlLgojIFRoZXNl IG1heSBzYWZlbHkgYmUgaWdub3JlZC4KIwpjZGxfb3B0aW9uIENZR0RCR19J TkZSQV9ESUFHX1BSSU5URl9VU0VfVkFSQVJHIHsKICAgICMgRmxhdm9yOiBi b29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAxCn07CgojIEFzc2VydHMgJiBUcmFjaW5nCiMgVGhlIGVDb3Mgc291cmNl IGNvZGUgY29udGFpbnMgYSBzaWduaWZpY2FudCBhbW91bnQgb2YKIyBpbnRl cm5hbCBkZWJ1Z2dpbmcgc3VwcG9ydCwgaW4gdGhlIGZvcm0gb2YgYXNzZXJ0 aW9ucyBhbmQKIyB0cmFjaW5nLgojIEFzc2VydGlvbnMgY2hlY2sgYXQgcnVu dGltZSB0aGF0IHZhcmlvdXMgY29uZGl0aW9ucyBhcmUgYXMKIyBleHBlY3Rl ZDsgaWYgbm90LCBleGVjdXRpb24gaXMgaGFsdGVkLgojIFRyYWNpbmcgdGFr ZXMgdGhlIGZvcm0gb2YgdGV4dCBtZXNzYWdlcyB0aGF0IGFyZSBvdXRwdXQK IyB3aGVuZXZlciBjZXJ0YWluIGV2ZW50cyBvY2N1ciwgb3Igd2hlbmV2ZXIg ZnVuY3Rpb25zIGFyZQojIGNhbGxlZCBvciByZXR1cm4uCiMgVGhlIG1vc3Qg aW1wb3J0YW50IHByb3BlcnR5IG9mIHRoZXNlIGNoZWNrcyBhbmQgbWVzc2Fn ZXMgaXMKIyB0aGF0IHRoZXkgYXJlIG5vdCByZXF1aXJlZCBmb3IgdGhlIHBy b2dyYW0gdG8gcnVuLgojIEl0IGlzIHBydWRlbnQgdG8gZGV2ZWxvcCBzb2Z0 d2FyZSB3aXRoIGFzc2VydGlvbnMgZW5hYmxlZCwKIyBidXQgZGlzYWJsZSB0 aGVtIHdoZW4gbWFraW5nIGEgcHJvZHVjdCByZWxlYXNlLCB0aHVzCiMgcmVt b3ZpbmcgdGhlIG92ZXJoZWFkIG9mIHRoYXQgY2hlY2tpbmcuCiMgSXQgaXMg cG9zc2libGUgdG8gZW5hYmxlIGFzc2VydGlvbnMgYW5kIHRyYWNpbmcKIyBp bmRlcGVuZGVudGx5LgojIFRoZXJlIGFyZSBhbHNvIG9wdGlvbnMgY29udHJv bGxpbmcgdGhlIGV4YWN0IGJlaGF2aW91ciBvZgojIHRoZSBhc3NlcnRpb24g YW5kIHRyYWNpbmcgZmFjaWxpdGllcywgdGh1cyBnaXZpbmcgdXNlcnMKIyBm aW5lciBjb250cm9sIG92ZXIgdGhlIGNvZGUgYW5kIGRhdGEgc2l6ZSByZXF1 aXJlbWVudHMuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfSU5GUkFfREVCVUcg ewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6IDAKfTsKCiMgPgojIFVzZSBhc3NlcnRzCiMg SWYgdGhpcyBvcHRpb24gaXMgZGVmaW5lZCwgYXNzZXJ0cyBpbiB0aGUgY29k ZSBhcmUgdGVzdGVkLgojIEFzc2VydCBmdW5jdGlvbnMgKENZR19BU1NFUlQo KSkgYXJlIGRlZmluZWQgaW4KIyAnaW5jbHVkZS9jeWcvaW5mcmEvY3lnX2Fz cy5oJyB3aXRoaW4gdGhlICdpbnN0YWxsJyB0cmVlLgojIElmIGl0IGlzIG5v dCBkZWZpbmVkLCB0aGVzZSByZXN1bHQgaW4gbm8gYWRkaXRpb25hbAojIG9i amVjdCBjb2RlIGFuZCBubyBjaGVja2luZyBvZiB0aGUgYXNzZXJ0ZWQgY29u ZGl0aW9ucy4KIwpjZGxfY29tcG9uZW50IENZR0RCR19VU0VfQVNTRVJUUyB7 CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBh cmVudCBDWUdQS0dfSU5GUkFfREVCVUcgaXMgZGlzYWJsZWQKCiAgICAjIEZs YXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMQp9OwoKIyA+CiMgUHJlY29uZGl0aW9ucwojIFRoaXMgb3B0 aW9uIGFsbG93cyBpbmRpdmlkdWFsIGNvbnRyb2wgb2YgcHJlY29uZGl0aW9u cy4KIyBBIHByZWNvbmRpdGlvbiBpcyBvbmUgdHlwZSBvZiBhc3NlcnQsIHdo aWNoIGl0IGlzCiMgdXNlZnVsIHRvIGNvbnRyb2wgc2VwYXJhdGVseSBmcm9t IG1vcmUgZ2VuZXJhbCBhc3NlcnRzLgojIFRoZSBmdW5jdGlvbiBpcyBDWUdf UFJFQ09ORElUSU9OKGNvbmRpdGlvbixtc2cpLgojCmNkbF9vcHRpb24gQ1lH REJHX0lORlJBX0RFQlVHX1BSRUNPTkRJVElPTlMgewogICAgIyBUaGlzIG9w dGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHREJHX1VT RV9BU1NFUlRTIGlzIG5vdCBhY3RpdmUKCiAgICAjIEZsYXZvcjogYm9vbAog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9 OwoKIyBQb3N0Y29uZGl0aW9ucwojIFRoaXMgb3B0aW9uIGFsbG93cyBpbmRp dmlkdWFsIGNvbnRyb2wgb2YgcG9zdGNvbmRpdGlvbnMuCiMgQSBwb3N0Y29u ZGl0aW9uIGlzIG9uZSB0eXBlIG9mIGFzc2VydCwgd2hpY2ggaXQgaXMKIyB1 c2VmdWwgdG8gY29udHJvbCBzZXBhcmF0ZWx5IGZyb20gbW9yZSBnZW5lcmFs IGFzc2VydHMuCiMgVGhlIGZ1bmN0aW9uIGlzIENZR19QT1NUQ09ORElUSU9O KGNvbmRpdGlvbixtc2cpLgojCmNkbF9vcHRpb24gQ1lHREJHX0lORlJBX0RF QlVHX1BPU1RDT05ESVRJT05TIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90 IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR0RCR19VU0VfQVNTRVJUUyBp cyBub3QgYWN0aXZlCgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNl ciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92 aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKfTsKCiMgTG9vcCBp bnZhcmlhbnRzCiMgVGhpcyBvcHRpb24gYWxsb3dzIGluZGl2aWR1YWwgY29u dHJvbCBvZiBsb29wIGludmFyaWFudHMuCiMgQSBsb29wIGludmFyaWFudCBp cyBvbmUgdHlwZSBvZiBhc3NlcnQsIHdoaWNoIGl0IGlzCiMgdXNlZnVsIHRv IGNvbnRyb2wgc2VwYXJhdGVseSBmcm9tIG1vcmUgZ2VuZXJhbCBhc3NlcnRz LAojIHBhcnRpY3VsYXJseSBzaW5jZSBhIGxvb3AgaW52YXJpYW50IGlzIHR5 cGljYWxseSBldmFsdWF0ZWQKIyBhIGdyZWF0IG1hbnkgdGltZXMgd2hlbiB1 c2VkIGNvcnJlY3RseS4KIyBUaGUgZnVuY3Rpb24gaXMgQ1lHX0xPT1BfSU5W QVJJQU5UKGNvbmRpdGlvbixtc2cpLgojCmNkbF9vcHRpb24gQ1lHREJHX0lO RlJBX0RFQlVHX0xPT1BfSU5WQVJJQU5UUyB7CiAgICAjIFRoaXMgb3B0aW9u IGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdEQkdfVVNFX0FT U0VSVFMgaXMgbm90IGFjdGl2ZQoKICAgICMgRmxhdm9yOiBib29sCiAgICAj IE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUg dG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1 ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07Cgoj IFVzZSBhc3NlcnQgdGV4dAojIEFsbCBhc3NlcnRpb25zIHdpdGhpbiBlQ29z IGNvbnRhaW4gYSB0ZXh0IG1lc3NhZ2UKIyB3aGljaCBzaG91bGQgZ2l2ZSBz b21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb25kaXRpb24KIyBiZWluZyB0 ZXN0ZWQuCiMgVGhlc2UgdGV4dCBtZXNzYWdlcyB3aWxsIGVuZCB1cCBiZWlu ZyBlbWJlZGRlZCBpbiB0aGUKIyBhcHBsaWNhdGlvbiBpbWFnZSBhbmQgaGVu Y2UgdGhlcmUgaXMgYSBzaWduaWZpY2FudCBwZW5hbHR5CiMgaW4gdGVybXMg b2YgaW1hZ2Ugc2l6ZS4KIyBJdCBpcyBwb3NzaWJsZSB0byBzdXBwcmVzcyB0 aGUgdXNlIG9mIHRoZXNlIG1lc3NhZ2VzIGJ5CiMgZGlzYWJsaW5nIHRoaXMg b3B0aW9uLgojIFRoaXMgcmVzdWx0cyBpbiBzbWFsbGVyIGNvZGUgc2l6ZSwg YnV0IHRoZXJlIGlzIGxlc3MKIyBodW1hbi1yZWFkYWJsZSBpbmZvcm1hdGlv biBpZiBhbiBhc3NlcnRpb24gYWN0dWFsbHkgZ2V0cwojIHRyaWdnZXJlZC4K IwpjZGxfb3B0aW9uIENZR0RCR19JTkZSQV9ERUJVR19BU1NFUlRfTUVTU0FH RSB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhl IHBhcmVudCBDWUdEQkdfVVNFX0FTU0VSVFMgaXMgbm90IGFjdGl2ZQoKICAg ICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAxCn07CgojIDwKIyBVc2UgdHJhY2luZwojIElmIHRo aXMgb3B0aW9uIGlzIGRlZmluZWQsIHRyYWNpbmcgb3BlcmF0aW9ucwojIHJl c3VsdCBpbiBvdXRwdXQgb3IgbG9nZ2luZywgZGVwZW5kaW5nIG9uIG90aGVy IG9wdGlvbnMuCiMgVGhpcyBtYXkgaGF2ZSBhZHZlcnNlIGVmZmVjdHMgb24g cGVyZm9ybWFuY2UsIGlmIHRoZSB0aW1lCiMgdGFrZW4gdG8gb3V0cHV0IG1l c3NhZ2Ugb3ZlcndoZWxtcyB0aGUgYXZhaWxhYmxlIENQVQojIHBvd2VyIG9y IG91dHB1dCBiYW5kd2lkdGguCiMgVHJhY2UgZnVuY3Rpb25zIChDWUdfVFJB Q0UoKSkgYXJlIGRlZmluZWQgaW4KIyAnaW5jbHVkZS9jeWcvaW5mcmEvY3ln X3RyYWMuaCcgd2l0aGluIHRoZSAnaW5zdGFsbCcgdHJlZS4KIyBJZiBpdCBp cyBub3QgZGVmaW5lZCwgdGhlc2UgcmVzdWx0IGluIG5vIGFkZGl0aW9uYWwK IyBvYmplY3QgY29kZSBhbmQgbm8gdHJhY2UgaW5mb3JtYXRpb24uCiMKY2Rs X2NvbXBvbmVudCBDWUdEQkdfVVNFX1RSQUNJTkcgewogICAgIyBUaGlzIG9w dGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lO RlJBX0RFQlVHIGlzIGRpc2FibGVkCgogICAgIyBGbGF2b3I6IGJvb2wKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZh bHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKCiAg ICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkg dGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHREJHX0lORlJBX0RFQlVHX1RS QUNFX0JVRkZFUl9TSVpFCiAgICAjICAgICBBY3RpdmVJZjogQ1lHREJHX1VT RV9UUkFDSU5HCiAgICAjIG9wdGlvbiBDWUdEQkdfSU5GUkFfREVCVUdfVFJB Q0VfQlVGRkVSX1dSQVAKICAgICMgICAgIEFjdGl2ZUlmOiBDWUdEQkdfVVNF X1RSQUNJTkcKICAgICMgb3B0aW9uIENZR0RCR19JTkZSQV9ERUJVR19UUkFD RV9CVUZGRVJfSEFMVAogICAgIyAgICAgQWN0aXZlSWY6IENZR0RCR19VU0Vf VFJBQ0lORwogICAgIyBvcHRpb24gQ1lHREJHX0lORlJBX0RFQlVHX1RSQUNF X0JVRkZFUl9QUklOVAogICAgIyAgICAgQWN0aXZlSWY6IENZR0RCR19VU0Vf VFJBQ0lORwogICAgIyBvcHRpb24gQ1lHREJHX0lORlJBX0RFQlVHX1RSQUNF X0JVRkZFUl9QUklOVF9PTl9BU1NFUlQKICAgICMgICAgIEFjdGl2ZUlmOiBD WUdEQkdfVVNFX1RSQUNJTkcKfTsKCiMgPgojIFRyYWNlIGZ1bmN0aW9uIHJl cG9ydHMKIyBUaGlzIG9wdGlvbiBhbGxvd3MgaW5kaXZpZHVhbCBjb250cm9s IG9mCiMgZnVuY3Rpb24gZW50cnkvZXhpdCB0cmFjaW5nLCBpbmRlcGVuZGVu dCBvZgojIG1vcmUgZ2VuZXJhbCB0cmFjaW5nIG91dHB1dC4KIyBUaGlzIG1h eSBiZSB1c2VmdWwgdG8gcmVtb3ZlIGNsdXR0ZXIgZnJvbSBhCiMgdHJhY2Ug bG9nLgojCmNkbF9vcHRpb24gQ1lHREJHX0lORlJBX0RFQlVHX0ZVTkNUSU9O X1JFUE9SVFMgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAg ICAjIFRoZSBwYXJlbnQgQ1lHREJHX1VTRV9UUkFDSU5HIGlzIG5vdCBhY3Rp dmUKICAgICMgVGhlIHBhcmVudCBDWUdEQkdfVVNFX1RSQUNJTkcgaXMgZGlz YWJsZWQKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVl LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25l LgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyBVc2UgdHJhY2UgdGV4 dAojIEFsbCB0cmFjZSBjYWxscyB3aXRoaW4gZUNvcyBjb250YWluIGEgdGV4 dCBtZXNzYWdlCiMgd2hpY2ggc2hvdWxkIGdpdmUgc29tZSBpbmZvcm1hdGlv biBhYm91dCB0aGUgY2lyY3Vtc3RhbmNlcy4KIyBUaGVzZSB0ZXh0IG1lc3Nh Z2VzIHdpbGwgZW5kIHVwIGJlaW5nIGVtYmVkZGVkIGluIHRoZQojIGFwcGxp Y2F0aW9uIGltYWdlIGFuZCBoZW5jZSB0aGVyZSBpcyBhIHNpZ25pZmljYW50 IHBlbmFsdHkKIyBpbiB0ZXJtcyBvZiBpbWFnZSBzaXplLgojIEl0IGlzIHBv c3NpYmxlIHRvIHN1cHByZXNzIHRoZSB1c2Ugb2YgdGhlc2UgbWVzc2FnZXMg YnkKIyBkaXNhYmxpbmcgdGhpcyBvcHRpb24uCiMgVGhpcyByZXN1bHRzIGlu IHNtYWxsZXIgY29kZSBzaXplLCBidXQgdGhlcmUgaXMgbGVzcwojIGh1bWFu LXJlYWRhYmxlIGluZm9ybWF0aW9uIGF2YWlsYWJsZSBpbiB0aGUgdHJhY2Ug b3V0cHV0LAojIHBvc3NpYmx5IG9ubHkgZmlsZW5hbWVzIGFuZCBsaW5lIG51 bWJlcnMuCiMKY2RsX29wdGlvbiBDWUdEQkdfSU5GUkFfREVCVUdfVFJBQ0Vf TUVTU0FHRSB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAg ICMgVGhlIHBhcmVudCBDWUdEQkdfVVNFX1RSQUNJTkcgaXMgbm90IGFjdGl2 ZQogICAgIyBUaGUgcGFyZW50IENZR0RCR19VU0VfVFJBQ0lORyBpcyBkaXNh YmxlZAoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVs dAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07CgojIDwKIyBOdWxsIG91dHB1 dAojIEEgbnVsbCBvdXRwdXQgbW9kdWxlIHdoaWNoIGlzIHVzZWZ1bCB3aGVu CiMgZGVidWdnaW5nIGludGVyYWN0aXZlbHk7IHRoZSBvdXRwdXQgcm91dGlu ZXMKIyBjYW4gYmUgYnJlYWtwb2ludGVkIHJhdGhlciB0aGFuIGhhdmUgdGhl bSBhY3R1YWxseQojICdwcmludCcgc29tZXRoaW5nLgojCmNkbF9vcHRpb24g Q1lHREJHX0lORlJBX0RFQlVHX1RSQUNFX0FTU0VSVF9OVUxMIHsKICAgICMg VGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZ R1BLR19JTkZSQV9ERUJVRyBpcyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBi b29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAwCn07CgojIFNpbXBsZSBvdXRwdXQKIyBBbiBvdXRwdXQgbW9kdWxlIHdo aWNoIHByb2R1Y2VzIHNpbXBsZSBvdXRwdXQKIyBmcm9tIHRyYWNpbmcgYW5k IGFzc2VydGlvbiBldmVudHMuCiMKY2RsX29wdGlvbiBDWUdEQkdfSU5GUkFf REVCVUdfVFJBQ0VfQVNTRVJUX1NJTVBMRSB7CiAgICAjIFRoaXMgb3B0aW9u IGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU5GUkFf REVCVUcgaXMgZGlzYWJsZWQKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVf c291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAp9OwoKIyBG YW5jeSBvdXRwdXQKIyBBbiBvdXRwdXQgbW9kdWxlIHdoaWNoIHByb2R1Y2Vz IGZhbmN5IG91dHB1dAojIGZyb20gdHJhY2luZyBhbmQgYXNzZXJ0aW9uIGV2 ZW50cy4KIwpjZGxfb3B0aW9uIENZR0RCR19JTkZSQV9ERUJVR19UUkFDRV9B U1NFUlRfRkFOQ1kgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZl CiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lORlJBX0RFQlVHIGlzIGRpc2Fi bGVkCgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKfTsKCiMgQnVmZmVyZWQgdHJhY2lu ZwojIEFuIG91dHB1dCBtb2R1bGUgd2hpY2ggYnVmZmVycyBvdXRwdXQKIyBm cm9tIHRyYWNpbmcgYW5kIGFzc2VydGlvbiBldmVudHMuIFRoZSBzdG9yZWQK IyBtZXNzYWdlcyBhcmUgb3V0cHV0IHdoZW4gYW4gYXNzZXJ0IGZpcmVzLCBv cgojIENZR19UUkFDRV9QUklOVCgpIChkZWZpbmVkIGluIDxjeWcvaW5mcmEv Y3lnX3RyYWMuaD4pCiMgaXMgY2FsbGVkLgojIE9mIGNvdXJzZSwgdGhlcmUg d2lsbCBvbmx5IGJlIHN0b3JlZCBtZXNzYWdlcwojIGlmIHRyYWNpbmcgcGVy IHNlIChDWUdEQkdfVVNFX1RSQUNJTkcpCiMgaXMgZW5hYmxlZCBhYm92ZS4K IwpjZGxfY29tcG9uZW50IENZR0RCR19JTkZSQV9ERUJVR19UUkFDRV9BU1NF UlRfQlVGRkVSIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQog ICAgIyBUaGUgcGFyZW50IENZR1BLR19JTkZSQV9ERUJVRyBpcyBkaXNhYmxl ZAoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVu Y29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAg ICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAog ICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07CgojID4KIyBUcmFjZSBidWZmZXIg c2l6ZQojIFRoZSBzaXplIG9mIHRoZSB0cmFjZSBidWZmZXIuIFRoaXMgY291 bnRzIHRoZSBudW1iZXIKIyBvZiB0cmFjZSByZWNvcmRzIHN0b3JlZC4gV2hl biB0aGUgYnVmZmVyIGZpbGxzIGl0CiMgZWl0aGVyIHdyYXBzLCBzdG9wcyBy ZWNvcmRpbmcsIG9yIGdlbmVyYXRlcyBvdXRwdXQuCiMKY2RsX29wdGlvbiBD WUdEQkdfSU5GUkFfREVCVUdfVFJBQ0VfQlVGRkVSX1NJWkUgewogICAgIyBU aGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lH REJHX0lORlJBX0RFQlVHX1RSQUNFX0FTU0VSVF9CVUZGRVIgaXMgbm90IGFj dGl2ZQogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBDWUdEQkdfVVNFX1RS QUNJTkcKICAgICMgICAgIENZR0RCR19VU0VfVFJBQ0lORyA9PSAwCiAgICAj ICAgLS0+IDAKCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDMyCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDMyCiAgICAjIExlZ2FsIHZh bHVlczogNSB0byA2NTUzNQp9OwoKIyBXcmFwIHRyYWNlIGJ1ZmZlciB3aGVu IGZ1bGwKIyBXaGVuIHRoZSB0cmFjZSBidWZmZXIgaGFzIGZpbGxlZCB3aXRo IHJlY29yZHMgaXQKIyBzdGFydHMgYWdhaW4gYXQgdGhlIGJlZ2lubmluZy4g SGVuY2Ugb25seSB0aGUgbGFzdAojIENZR0RCR19JTkZSQV9ERUJVR19UUkFD RV9CVUZGRVJfU0laRSBtZXNzYWdlcyB3aWxsCiMgYmUgcmVjb3JkZWQuCiMK Y2RsX29wdGlvbiBDWUdEQkdfSU5GUkFfREVCVUdfVFJBQ0VfQlVGRkVSX1dS QVAgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRo ZSBwYXJlbnQgQ1lHREJHX0lORlJBX0RFQlVHX1RSQUNFX0FTU0VSVF9CVUZG RVIgaXMgbm90IGFjdGl2ZQogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBD WUdEQkdfVVNFX1RSQUNJTkcKICAgICMgICAgIENZR0RCR19VU0VfVFJBQ0lO RyA9PSAwCiAgICAjICAgLS0+IDAKCiAgICAjIEZsYXZvcjogYm9vbAogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoK IyBIYWx0IHRyYWNlIGJ1ZmZlciB3aGVuIGZ1bGwKIyBXaGVuIHRoZSB0cmFj ZSBidWZmZXIgaGFzIGZpbGxlZCB3aXRoIHJlY29yZHMgaXQKIyBzdG9wcyBy ZWNvcmRpbmcuIEhlbmNlIG9ubHkgdGhlIGZpcnN0CiMgQ1lHREJHX0lORlJB X0RFQlVHX1RSQUNFX0JVRkZFUl9TSVpFIG1lc3NhZ2VzIHdpbGwKIyBiZSBy ZWNvcmRlZC4KIwpjZGxfb3B0aW9uIENZR0RCR19JTkZSQV9ERUJVR19UUkFD RV9CVUZGRVJfSEFMVCB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3Rp dmUKICAgICMgVGhlIHBhcmVudCBDWUdEQkdfSU5GUkFfREVCVUdfVFJBQ0Vf QVNTRVJUX0JVRkZFUiBpcyBub3QgYWN0aXZlCiAgICAjIEFjdGl2ZUlmIGNv bnN0cmFpbnQ6IENZR0RCR19VU0VfVFJBQ0lORwogICAgIyAgICAgQ1lHREJH X1VTRV9UUkFDSU5HID09IDAKICAgICMgICAtLT4gMAoKICAgICMgRmxhdm9y OiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg MAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiAwCn07CgojIFByaW50IHRyYWNlIGJ1ZmZlciB3aGVuIGZ1bGwKIyBX aGVuIHRoZSB0cmFjZSBidWZmZXIgaGFzIGZpbGxlZCB3aXRoIHJlY29yZHMg aXQKIyBwcmludHMgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIuIFRoZSBi dWZmZXIgaXMgdGhlbgojIGVtcHRpZWQgYW5kIHRoZSBzeXN0ZW0gY29udGlu dWVzLgojCmNkbF9vcHRpb24gQ1lHREJHX0lORlJBX0RFQlVHX1RSQUNFX0JV RkZFUl9QUklOVCB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUK ICAgICMgVGhlIHBhcmVudCBDWUdEQkdfSU5GUkFfREVCVUdfVFJBQ0VfQVNT RVJUX0JVRkZFUiBpcyBub3QgYWN0aXZlCiAgICAjIEFjdGl2ZUlmIGNvbnN0 cmFpbnQ6IENZR0RCR19VU0VfVFJBQ0lORwogICAgIyAgICAgQ1lHREJHX1VT RV9UUkFDSU5HID09IDAKICAgICMgICAtLT4gMAoKICAgICMgRmxhdm9yOiBi b29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAwCn07CgojIFByaW50IHRyYWNlIGJ1ZmZlciBvbiBhc3NlcnQgZmFpbAoj IFdoZW4gYW4gYXNzZXJ0aW9uIGZhaWxzIHRoZSB0cmFjZSBidWZmZXIgd2ls bCBiZSAKIyBwcmludGVkIHRvIHRoZSBkZWZhdWx0IGRpYWdub3N0aWMgZGV2 aWNlLgojCmNkbF9vcHRpb24gQ1lHREJHX0lORlJBX0RFQlVHX1RSQUNFX0JV RkZFUl9QUklOVF9PTl9BU1NFUlQgewogICAgIyBUaGlzIG9wdGlvbiBpcyBu b3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHREJHX0lORlJBX0RFQlVH X1RSQUNFX0FTU0VSVF9CVUZGRVIgaXMgbm90IGFjdGl2ZQogICAgIyBBY3Rp dmVJZiBjb25zdHJhaW50OiBDWUdEQkdfVVNFX1RSQUNJTkcKICAgICMgICAg IENZR0RCR19VU0VfVFJBQ0lORyA9PSAwCiAgICAjICAgLS0+IDAKCiAgICAj IEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogMQp9OwoKIyA8CiMgVXNlIGZ1bmN0aW9uIG5hbWVzCiMg QWxsIHRyYWNlIGFuZCBhc3NlcnQgY2FsbHMgd2l0aGluIGVDb3MgY29udGFp biBhCiMgcmVmZXJlbmNlIHRvIHRoZSBidWlsdGluIG1hY3JvICdfX1BSRVRU WV9GVU5DVElPTl9fJywKIyB3aGljaCBldmFsdWF0ZXMgdG8gYSBzdHJpbmcg Y29udGFpbmluZwojIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGZ1bmN0aW9u LgojIFRoaXMgaXMgdXNlZnVsIHdoZW4gcmVhZGluZyBhIHRyYWNlIGxvZy4K IyBJdCBpcyBwb3NzaWJsZSB0byBzdXBwcmVzcyB0aGUgdXNlIG9mIHRoZSBm dW5jdGlvbiBuYW1lCiMgYnkgZGlzYWJsaW5nIHRoaXMgb3B0aW9uLgojIFRo aXMgcmVzdWx0cyBpbiBzbWFsbGVyIGNvZGUgc2l6ZSwgYnV0IHRoZXJlIGlz IGxlc3MKIyBodW1hbi1yZWFkYWJsZSBpbmZvcm1hdGlvbiBhdmFpbGFibGUg aW4gdGhlIHRyYWNlIG91dHB1dCwKIyBwb3NzaWJseSBvbmx5IGZpbGVuYW1l cyBhbmQgbGluZSBudW1iZXJzLgojCmNkbF9vcHRpb24gQ1lHREJHX0lORlJB X0RFQlVHX0ZVTkNUSU9OX1BTRVVET01BQ1JPIHsKICAgICMgVGhpcyBvcHRp b24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19JTkZS QV9ERUJVRyBpcyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBib29sCiAgICAj IE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUg dG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1 ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07Cgoj IDwKIyBTdGFydHVwIG9wdGlvbnMKIyBTb21lIHBhY2thZ2VzIHJlcXVpcmUg YSBzdGFydHVwIHJvdXRpbmUgdG8gYmUgY2FsbGVkLgojIFRoaXMgY2FuIGJl IGNhcnJpZWQgb3V0IGJ5IGFwcGxpY2F0aW9uIGNvZGUsIGJ5IHN1cHBseWlu ZwojIGEgcm91dGluZSBjYWxsZWQgY3lnX3BhY2thZ2Vfc3RhcnQoKSB3aGlj aCBjYWxscyB0aGUKIyBhcHByb3ByaWF0ZSBwYWNrYWdlIHN0YXJ0dXAgcm91 dGluZShzKS4KIyBBbHRlcm5hdGl2ZWx5LCB0aGlzIHJvdXRpbmUgY2FuIGJl IGNvbnN0cnVjdGVkIGF1dG9tYXRpY2FsbHkKIyBhbmQgY29uZmlndXJlZCB0 byBjYWxsIHRoZSBzdGFydHVwIHJvdXRpbmVzIG9mIHlvdXIgY2hvaWNlLgoj CmNkbF9jb21wb25lbnQgQ1lHUEtHX0lORlJBX1NUQVJUVVAgewogICAgIyBU aGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgU3RhcnQg dUlUUk9OIHN1YnN5c3RlbQojIEdlbmVyYXRlIGEgY2FsbCB0byBpbml0aWFs aXplIHRoZQojIHVJVFJPTiBjb21wYXRpYmlsaXR5IHN1YnN5c3RlbQojIHdp dGhpbiB0aGUgc3lzdGVtIHZlcnNpb24gb2YgY3lnX3BhY2thZ2Vfc3RhcnQo KS4KIyBUaGlzIGVuYWJsZXMgY29tcGF0aWJpbGl0eSB3aXRoIHVJVFJPTi4K IyBZb3UgbXVzdCBjb25maWd1cmUgdUlUUk9OIHdpdGggdGhlIGNvcnJlY3Qg dGFza3MgYmVmb3JlCiMgc3RhcnRpbmcgdGhlIHVJdHJvbiBzdWJzeXN0ZW0u CiMgSWYgdGhpcyBpcyBkaXNhYmxlZCwgYW5kIHlvdSB3YW50IHRvIHVzZSB1 SVRST04sCiMgeW91IG11c3QgY2FsbCBjeWdfdWl0cm9uX3N0YXJ0KCkgZnJv bSB5b3VyIG93bgojIGN5Z19wYWNrYWdlX3N0YXJ0KCkgb3IgY3lnX3VzZXJz dGFydCgpLgojCmNkbF9vcHRpb24gQ1lHU0VNX1NUQVJUX1VJVFJPTl9DT01Q QVRJQklMSVRZIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQog ICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBDWUdQS0dfVUlUUk9OCiAgICAj ICAgICBDWUdQS0dfVUlUUk9OICh1bmtub3duKSA9PSAwCiAgICAjICAgLS0+ IDAKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMAogICAgIyBSZXF1aXJlczogQ1lHUEtH X1VJVFJPTgogICAgIyAgICAgQ1lHUEtHX1VJVFJPTiAodW5rbm93bikgPT0g MAogICAgIyAgIC0tPiAwCn07CgojIDwKIyBTbWFsbGVyIHNsb3dlciBtZW1j cHkoKQojIEVuYWJsaW5nIHRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgaW1wbGVt ZW50YXRpb24gb2YKIyB0aGUgc3RhbmRhcmQgbWVtY3B5KCkgcm91dGluZSB0 byByZWR1Y2UgY29kZQojIHNpemUgYXQgdGhlIGV4cGVuc2Ugb2YgZXhlY3V0 aW9uIHNwZWVkLiBUaGlzCiMgb3B0aW9uIGlzIGF1dG9tYXRpY2FsbHkgZW5h YmxlZCB3aXRoIHRoZSB1c2Ugb2YKIyB0aGUgLU9zIG9wdGlvbiB0byB0aGUg Y29tcGlsZXIuIEFsc28gbm90ZSB0aGF0CiMgdGhlIGNvbXBpbGVyIHdpbGwg dHJ5IHRvIHVzZSBpdHMgb3duIGJ1aWx0aW4KIyB2ZXJzaW9uIG9mIG1lbWNw eSgpIGlmIHBvc3NpYmxlLCBpZ25vcmluZyB0aGUKIyBpbXBsZW1lbnRhdGlv biBpbiB0aGlzIHBhY2thZ2UsIHVubGVzcyBnaXZlbgojIHRoZSAtZm5vLWJ1 aWx0aW4gY29tcGlsZXIgb3B0aW9uLgojCmNkbF9vcHRpb24gQ1lHSU1QX0lO RlJBX1BSRUZFUl9TTUFMTF9UT19GQVNUX01FTUNQWSB7CiAgICAjIEZsYXZv cjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2 YWx1ZTogMAp9OwoKIyBTbWFsbGVyIHNsb3dlciBtZW1zZXQoKQojIEVuYWJs aW5nIHRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgaW1wbGVtZW50YXRpb24gb2YK IyB0aGUgc3RhbmRhcmQgbWVtc2V0KCkgcm91dGluZSB0byByZWR1Y2UgY29k ZQojIHNpemUgYXQgdGhlIGV4cGVuc2Ugb2YgZXhlY3V0aW9uIHNwZWVkLiBU aGlzCiMgb3B0aW9uIGlzIGF1dG9tYXRpY2FsbHkgZW5hYmxlZCB3aXRoIHRo ZSB1c2Ugb2YKIyB0aGUgLU9zIG9wdGlvbiB0byB0aGUgY29tcGlsZXIuIEFs c28gbm90ZSB0aGF0CiMgdGhlIGNvbXBpbGVyIHdpbGwgdHJ5IHRvIHVzZSBp dHMgb3duIGJ1aWx0aW4KIyB2ZXJzaW9uIG9mIG1lbXNldCgpIGlmIHBvc3Np YmxlLCBpZ25vcmluZyB0aGUKIyBpbXBsZW1lbnRhdGlvbiBpbiB0aGlzIHBh Y2thZ2UsIHVubGVzcyBnaXZlbgojIHRoZSAtZm5vLWJ1aWx0aW4gY29tcGls ZXIgb3B0aW9uLgojCmNkbF9vcHRpb24gQ1lHSU1QX0lORlJBX1BSRUZFUl9T TUFMTF9UT19GQVNUX01FTVNFVCB7CiAgICAjIEZsYXZvcjogYm9vbAogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAp9OwoK IyBQcm92aWRlIGVtcHR5IEMrKyBkZWxldGUgZnVuY3Rpb25zCiMgVG8gZGVh bCB3aXRoIHZpcnR1YWwgZGVzdHJ1Y3RvcnMsIHdoZXJlIHRoZSBjb3JyZWN0 IGRlbGV0ZSgpCiMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgZm9yIHRoZSBk ZXJpdmVkIGNsYXNzIGluIHF1ZXN0aW9uLCB0aGUKIyB1bmRlcmx5aW5nIGRl bGV0ZSBpcyBjYWxsZWQgd2hlbiBuZWVkZWQsIGZyb20gZGVzdHJ1Y3RvcnMu ICBUaGlzCiMgaXMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBkZXN0cnVj dG9yIGlzIGNhbGxlZCBieSBkZWxldGUgaXRzZWxmLgojIFNvIHRoZXJlIGlz IGEgcmVmZXJlbmNlIHRvIGRlbGV0ZSgpIGZyb20gYWxsIGRlc3RydWN0b3Jz LiAgVGhlCiMgZGVmYXVsdCBidWlsdGluIGRlbGV0ZSgpIGF0dGVtcHRzIHRv IGNhbGwgZnJlZSgpIGlmIHRoZXJlIGlzCiMgb25lIGRlZmluZWQuICBTbywg aWYgeW91IGhhdmUgZGVzdHJ1Y3RvcnMsIGFuZCB5b3UgaGF2ZSBmcmVlKCks CiMgYXMgaW4gbWFsbG9jKCkgYW5kIGZyZWUoKSwgYW55IGRlc3RydWN0b3Ig Y291bnRzIGFzIGEgcmVmZXJlbmNlCiMgdG8gZnJlZSgpLiAgU28gdGhlIGR5 bmFtaWMgbWVtb3J5IGFsbG9jYXRpb24gY29kZSBpcyBsaW5rZWQKIyBpbiBy ZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgZ2V0cyBleHBsaWNpdGx5IGNhbGxl ZC4gVGhpcwojIGluY3JlYXNlcyBjb2RlIGFuZCBkYXRhIHNpemUgbmVlZGxl c3NseS4KIyBUbyBkZWZlYXQgdGhpcyB1bmRlc2lyYWJsZSBiZWhhdmlvdXIs IHdlIGRlZmluZSBlbXB0eSB2ZXJzaW9ucwojIG9mIGRlbGV0ZSBhbmQgZGVs ZXRlLiAgQnV0IGRvaW5nIHRoaXMgcHJldmVudHMgcHJvcGVyIHVzZQojIG9m IGR5bmFtaWMgbWVtb3J5IGluIEMrKyBwcm9ncmFtcyB2aWEgQysrJ3MgbmV3 IGFuZCBkZWxldGUKIyBvcGVyYXRvcnMuCiMgVGhlcmVmb3JlLCB0aGlzIG9w dGlvbiBpcyBwcm92aWRlZAojIGZvciBleHBsaWNpdGx5IGRpc2FibGluZyB0 aGUgcHJvdmlzaW9uIG9mIHRoZXNlIGVtcHR5IGZ1bmN0aW9ucywKIyBzbyB0 aGF0IG5ldyBhbmQgZGVsZXRlIGNhbiBiZSB1c2VkLCBpZiB0aGF0IGlzIHdo YXQgaXMgcmVxdWlyZWQuCiMKY2RsX29wdGlvbiBDWUdGVU5fSU5GUkFfRU1Q VFlfREVMRVRFX0ZVTkNUSU9OUyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAg IyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5l IHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoK IyBJbmZyYSBidWlsZCBvcHRpb25zCiMgUGFja2FnZSBzcGVjaWZpYyBidWls ZCBvcHRpb25zIGluY2x1ZGluZyBjb250cm9sIG92ZXIKIyBjb21waWxlciBm bGFncyB1c2VkIG9ubHkgaW4gYnVpbGRpbmcgdGhpcyBwYWNrYWdlLgojCmNk bF9jb21wb25lbnQgQ1lHUEtHX0lORlJBX09QVElPTlMgewogICAgIyBUaGVy ZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgQWRkaXRpb25h bCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBz ZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhlIGVDb3Mg aW5mcmEgcGFja2FnZS4gVGhlc2UgZmxhZ3MgYXJlIHVzZWQKIyBpbiBhZGRp dGlvbiB0byB0aGUgc2V0IG9mIGdsb2JhbCBmbGFncy4KIwpjZGxfb3B0aW9u IENZR1BLR19JTkZSQV9DRkxBR1NfQUREIHsKICAgICMgRmxhdm9yOiBkYXRh CiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5n IGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgIiIKICAg ICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTog IiIKfTsKCiMgU3VwcHJlc3NlZCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0 aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMg YnVpbGRpbmcgdGhlIGVDb3MgaW5mcmEgcGFja2FnZS4gVGhlc2UgZmxhZ3Mg YXJlIHJlbW92ZWQgZnJvbQojIHRoZSBzZXQgb2YgZ2xvYmFsIGZsYWdzIGlm IHByZXNlbnQuCiMKY2RsX29wdGlvbiBDWUdQS0dfSU5GUkFfQ0ZMQUdTX1JF TU9WRSB7CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVl LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25l LgogICAgIyB1c2VyX3ZhbHVlICIiCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICIiCn07CgojIDwKIyA8CiMgSVNP IEMgYW5kIFBPU0lYIGluZnJhc3RydWN0dXJlCiMgZUNvcyBzdXBwb3J0cyBp bXBsZW1lbnRhdGlvbnMgb2YgSVNPIEMgbGlicmFyaWVzIGFuZCBQT1NJWAoj IGltcGxlbWVudGF0aW9ucy4gVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGluZnJh c3RydWN0dXJlIHVzZWQgYnkKIyBhbGwgc3VjaCBpbXBsZW1lbnRhdGlvbnMu CiMKY2RsX3BhY2thZ2UgQ1lHUEtHX0lTT0lORlJBIHsKICAgICMgUGFja2Fn ZXMgY2Fubm90IGJlIGFkZGVkIG9yIHJlbW92ZWQsIG5vciBjYW4gdGhlaXIg dmVyc2lvbiBiZSBjaGFuZ2VkLAogICAgIyBzaW1wbHkgYnkgZWRpdGluZyB0 aGVpciB2YWx1ZS4gSW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJh dGlvbgogICAgIyBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIHRoZXNlIGFj dGlvbnMuCgogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBo ZXJlLgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQgdmFs dWU6IDEgY3VycmVudAoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVz IGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGNvbXBvbmVudCBD WUdQS0dfSU9fU0VSSUFMX1RFUk1JT1MKICAgICMgICAgIFJlcXVpcmVzOiBD WUdQS0dfSVNPSU5GUkEKICAgICMgY29tcG9uZW50IENZR1BLR19JT19TRVJJ QUxfVEVSTUlPUwogICAgIyAgICAgRGVmYXVsdFZhbHVlOiAgMCAhPSBDWUdQ S0dfSVNPSU5GUkEgJiYgMCAhPSBDWUdQS0dfSU9fRklMRUlPICYmICAwICE9 IENZR0lOVF9JU09fRVJSTk9fQ09ERVMgJiYgIDAgIT0gQ1lHSU5UX0lTT19F UlJOTyAKfTsKCiMgPgojIFN0YXJ0dXAgYW5kIHRlcm1pbmF0aW9uCiMKY2Rs X2NvbXBvbmVudCBDWUdQS0dfSVNPX1NUQVJUVVAgewogICAgIyBUaGVyZSBp cyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgbWFpbigpIHN0YXJ0 dXAgaW1wbGVtZW50YXRpb25zCiMgSW1wbGVtZW50YXRpb25zIG9mIHRoaXMg aW50ZXJmYWNlIGFycmFuZ2UgZm9yIGEgdXNlci1zdXBwbGllZAojIG1haW4o KSB0byBiZSBjYWxsZWQgaW4gYW4gSVNPIGNvbXBhdGlibGUgZW52aXJvbm1l bnQuCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX01BSU5fU1RBUlRVUCB7 CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAg ICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAj IEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCiAgICAjIFJl cXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX01BSU5fU1RBUlRVUCAKICAgICMg ICAgIENZR0lOVF9JU09fTUFJTl9TVEFSVFVQID09IDAKICAgICMgICAtLT4g MQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3Rl ZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX01B SU5fU1RBUlRVUAogICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lOVF9J U09fTUFJTl9TVEFSVFVQIAp9OwoKIyBlbnZpcm9uIGltcGxlbWVudGF0aW9u cwojIEltcGxlbWVudGF0aW9ucyBvZiB0aGlzIGludGVyZmFjZSBwcm92aWRl IHRoZSBlbnZpcm9uCiMgdmFyaWFibGUgcmVxdWlyZWQgYnkgUE9TSVguCiMK Y2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX0VOVklST04gewogICAgIyBObyBv cHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZh bHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgQ3VycmVudF92YWx1ZTogMAogICAgIyBSZXF1aXJlczogIDEg Pj0gQ1lHSU5UX0lTT19FTlZJUk9OIAogICAgIyAgICAgQ1lHSU5UX0lTT19F TlZJUk9OID09IDAKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2lu ZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAj IGludGVyZmFjZSBDWUdJTlRfSVNPX0VOVklST04KICAgICMgICAgIFJlcXVp cmVzOiAgMSA+PSBDWUdJTlRfSVNPX0VOVklST04gCn07CgojIDwKIyBjdHlw ZS5oIGZ1bmN0aW9ucwojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lTT19DVFlQ RV9IIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsK CiMgPgojIE51bWJlciBvZiBpbXBsZW1lbnRhdGlvbnMgb2YgY3R5cGUgZnVu Y3Rpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX0NUWVBFIHsKICAg ICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMg VGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxh dm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKICAgICMgUmVxdWly ZXM6ICAxID49IENZR0lOVF9JU09fQ1RZUEUgCiAgICAjICAgICBDWUdJTlRf SVNPX0NUWVBFID09IDAKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAg ICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX0NUWVBFCiAgICAjICAgICBSZXF1 aXJlczogIDEgPj0gQ1lHSU5UX0lTT19DVFlQRSAKfTsKCiMgQ3R5cGUgaW1w bGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX0NU WVBFX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVf c291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07Cgoj IDwKIyBFcnJvciBoYW5kbGluZwojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lT T19FUlJOTyB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUu Cn07CgojID4KIyBOdW1iZXIgb2YgaW1wbGVtZW50YXRpb25zIG9mIGVycm9y IGNvZGVzCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX0VSUk5PX0NPREVT IHsKICAgICMgSW1wbGVtZW50ZWQgYnkgQ1lHUEtHX0VSUk9SLCBhY3RpdmUs IGVuYWJsZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQg aGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6 IDEKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fRVJSTk9fQ09E RVMgCiAgICAjICAgICBDWUdJTlRfSVNPX0VSUk5PX0NPREVTID09IDEKICAg ICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFy ZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJ TlRfSVNPX0VSUk5PX0NPREVTCiAgICAjICAgICBSZXF1aXJlczogIDEgPj0g Q1lHSU5UX0lTT19FUlJOT19DT0RFUyAKICAgICMgY29tcG9uZW50IENZR1BL R19JT19TRVJJQUxfVEVSTUlPUwogICAgIyAgICAgUmVxdWlyZXM6IENZR0lO VF9JU09fRVJSTk9fQ09ERVMKICAgICMgY29tcG9uZW50IENZR1BLR19JT19T RVJJQUxfVEVSTUlPUwogICAgIyAgICAgRGVmYXVsdFZhbHVlOiAgMCAhPSBD WUdQS0dfSVNPSU5GUkEgJiYgMCAhPSBDWUdQS0dfSU9fRklMRUlPICYmICAw ICE9IENZR0lOVF9JU09fRVJSTk9fQ09ERVMgJiYgIDAgIT0gQ1lHSU5UX0lT T19FUlJOTyAKfTsKCiMgRXJyb3IgY29kZXMgaW1wbGVtZW50YXRpb24gaGVh ZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX0VSUk5PX0NPREVTX0hFQURF UiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgVGhlIGluZmVycmVkIHZh bHVlIHNob3VsZCBub3QgYmUgZWRpdGVkIGRpcmVjdGx5LgogICAgaW5mZXJy ZWRfdmFsdWUgMSA8Y3lnL2Vycm9yL2NvZGVzLmg+CiAgICAjIHZhbHVlX3Nv dXJjZSBpbmZlcnJlZAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKCiAgICAj IFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhp cyB2YWx1ZQogICAgIyBwYWNrYWdlIENZR1BLR19FUlJPUgogICAgIyAgICAg UmVxdWlyZXM6ICBDWUdCTERfSVNPX0VSUk5PX0NPREVTX0hFQURFUiA9PSAi PGN5Zy9lcnJvci9jb2Rlcy5oPiIgCn07CgojIE51bWJlciBvZiBpbXBsZW1l bnRhdGlvbnMgb2YgZXJybm8gdmFyaWFibGUKIwpjZGxfaW50ZXJmYWNlIENZ R0lOVF9JU09fRVJSTk8gewogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdQS0df RVJST1JfRVJSTk8sIGFjdGl2ZSwgZW5hYmxlZAogICAgIyBUaGlzIHZhbHVl IGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEK ICAgICMgQ3VycmVudF92YWx1ZTogMQogICAgIyBSZXF1aXJlczogIDEgPj0g Q1lHSU5UX0lTT19FUlJOTyAKICAgICMgICAgIENZR0lOVF9JU09fRVJSTk8g PT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3Bl cnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJm YWNlIENZR0lOVF9JU09fRVJSTk8KICAgICMgICAgIFJlcXVpcmVzOiAgMSA+ PSBDWUdJTlRfSVNPX0VSUk5PIAogICAgIyBjb21wb25lbnQgQ1lHUEtHX0lP X1NFUklBTF9URVJNSU9TCiAgICAjICAgICBSZXF1aXJlczogQ1lHSU5UX0lT T19FUlJOTwogICAgIyBjb21wb25lbnQgQ1lHUEtHX0lPX1NFUklBTF9URVJN SU9TCiAgICAjICAgICBEZWZhdWx0VmFsdWU6ICAwICE9IENZR1BLR19JU09J TkZSQSAmJiAwICE9IENZR1BLR19JT19GSUxFSU8gJiYgIDAgIT0gQ1lHSU5U X0lTT19FUlJOT19DT0RFUyAmJiAgMCAhPSBDWUdJTlRfSVNPX0VSUk5PIAp9 OwoKIyBlcnJubyB2YXJpYWJsZSBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpj ZGxfb3B0aW9uIENZR0JMRF9JU09fRVJSTk9fSEVBREVSIHsKICAgICMgRmxh dm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDAgMAogICAgIyBUaGUgaW5mZXJyZWQgdmFsdWUgc2hvdWxkIG5v dCBiZSBlZGl0ZWQgZGlyZWN0bHkuCiAgICBpbmZlcnJlZF92YWx1ZSAxIDxj eWcvZXJyb3IvZXJybm8uaD4KICAgICMgdmFsdWVfc291cmNlIGluZmVycmVk CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAoKICAgICMgVGhlIGZvbGxvd2lu ZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAj IGNvbXBvbmVudCBDWUdQS0dfRVJST1JfRVJSTk8KICAgICMgICAgIFJlcXVp cmVzOiAgQ1lHQkxEX0lTT19FUlJOT19IRUFERVIgPT0gIjxjeWcvZXJyb3Iv ZXJybm8uaD4iIAp9OwoKIyA8CiMgTG9jYWxlLXJlbGF0ZWQgZnVuY3Rpb25z CiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfSVNPX0xPQ0FMRSB7CiAgICAjIFRo ZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUuCn07CgojID4KIyBOdW1iZXIg b2YgaW1wbGVtZW50YXRpb25zIG9mIGxvY2FsZSBmdW5jdGlvbnMKIwpjZGxf aW50ZXJmYWNlIENZR0lOVF9JU09fTE9DQUxFIHsKICAgICMgTm8gb3B0aW9u cyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBj YW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAg ICAjIEN1cnJlbnRfdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICAxID49IENZ R0lOVF9JU09fTE9DQUxFIAogICAgIyAgICAgQ1lHSU5UX0lTT19MT0NBTEUg PT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3Bl cnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJm YWNlIENZR0lOVF9JU09fTE9DQUxFCiAgICAjICAgICBSZXF1aXJlczogIDEg Pj0gQ1lHSU5UX0lTT19MT0NBTEUgCn07CgojIExvY2FsZSBpbXBsZW1lbnRh dGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fTE9DQUxFX0hF QURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2 YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRl IG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNl IGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIDwKIyBT dGFuZGFyZCBJL08tcmVsYXRlZCBmdW5jdGlvbmFsaXR5CiMKY2RsX2NvbXBv bmVudCBDWUdQS0dfSVNPX1NURElPIHsKICAgICMgVGhlcmUgaXMgbm8gYXNz b2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIE51bWJlciBvZiBpbXBsZW1lbnRh dGlvbnMgb2Ygc3RkaW8gZmlsZSB0eXBlcwojCmNkbF9pbnRlcmZhY2UgQ1lH SU5UX0lTT19TVERJT19GSUxFVFlQRVMgewogICAgIyBObyBvcHRpb25zIGlt cGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5v dCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAg ICAjIEN1cnJlbnQgdmFsdWU6IDAgMAogICAgIyBSZXF1aXJlczogIDEgPj0g Q1lHSU5UX0lTT19TVERJT19GSUxFVFlQRVMgCiAgICAjICAgICBDWUdJTlRf SVNPX1NURElPX0ZJTEVUWVBFUyA9PSAwCiAgICAjICAgLS0+IDEKCiAgICAj IFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhp cyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19TVERJT19GSUxF VFlQRVMKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NU RElPX0ZJTEVUWVBFUyAKfTsKCiMgU3RkaW8gZmlsZSB0eXBlcyBpbXBsZW1l bnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU1RESU9f RklMRVRZUEVTX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAw Cn07CgojIFN0ZGlvIHN0YW5kYXJkIHN0cmVhbXMgaW1wbGVtZW50YXRpb25z CiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1NURElPX1NUUkVBTVMgewog ICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAg IyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBG bGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6IDAgMAogICAg IyBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVERJT19TVFJFQU1TIAog ICAgIyAgICAgQ1lHSU5UX0lTT19TVERJT19TVFJFQU1TID09IDAKICAgICMg ICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBh ZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRf SVNPX1NURElPX1NUUkVBTVMKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBD WUdJTlRfSVNPX1NURElPX1NUUkVBTVMgCn07CgojIFN0ZGlvIHN0YW5kYXJk IHN0cmVhbXMgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMgVGhpcyBoZWFkZXIg ZmlsZSBtdXN0IGRlZmluZSBzdGRpbiwgc3Rkb3V0CiMgYW5kIHN0ZGVyci4K IwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU1RESU9fU1RSRUFNU19IRUFERVIg ewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBOdW1iZXIgb2Yg aW1wbGVtZW50YXRpb25zIG9mIHN0ZGlvIGZpbGUgb3BlcmF0aW9ucwojCmNk bF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19TVERJT19GSUxFT1BTIHsKICAgICMg Tm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhp cyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9y OiBib29sZGF0YQogICAgIyBDdXJyZW50IHZhbHVlOiAwIDAKICAgICMgUmVx dWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RESU9fRklMRU9QUyAKICAgICMg ICAgIENZR0lOVF9JU09fU1RESU9fRklMRU9QUyA9PSAwCiAgICAjICAgLS0+ IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0 ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19T VERJT19GSUxFT1BTCiAgICAjICAgICBSZXF1aXJlczogIDEgPj0gQ1lHSU5U X0lTT19TVERJT19GSUxFT1BTIAp9OwoKIyBTdGRpbyBmaWxlIG9wZXJhdGlv bnMgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMgVGhpcyBoZWFkZXIgY29udHJv bHMgdGhlIGZpbGUgc3lzdGVtIG9wZXJhdGlvbnMgb24gYSBmaWxlCiMgc3Vj aCBhcyByZW1vdmUoKSwgcmVuYW1lKCksIHRtcGZpbGUoKSwgdG1wbmFtKCkg YW5kIGFzc29jaWF0ZWQKIyBjb25zdGFudHMuCiMKY2RsX29wdGlvbiBDWUdC TERfSVNPX1NURElPX0ZJTEVPUFNfSEVBREVSIHsKICAgICMgRmxhdm9yOiBi b29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0 IHZhbHVlOiAwIDAKfTsKCiMgTnVtYmVyIG9mIGltcGxlbWVudGF0aW9ucyBv ZiBzdGRpbyBmaWxlIGFjY2VzcyAgZnVuY3Rpb25hbHMKIwpjZGxfaW50ZXJm YWNlIENZR0lOVF9JU09fU1RESU9fRklMRUFDQ0VTUyB7CiAgICAjIE5vIG9w dGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFs dWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogYm9v bGRhdGEKICAgICMgQ3VycmVudCB2YWx1ZTogMCAwCiAgICAjIFJlcXVpcmVz OiAgMSA+PSBDWUdJTlRfSVNPX1NURElPX0ZJTEVBQ0NFU1MgCiAgICAjICAg ICBDWUdJTlRfSVNPX1NURElPX0ZJTEVBQ0NFU1MgPT0gMAogICAgIyAgIC0t PiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVj dGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09f U1RESU9fRklMRUFDQ0VTUwogICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZ R0lOVF9JU09fU1RESU9fRklMRUFDQ0VTUyAKfTsKCiMgU3RkaW8gZmlsZSBh Y2Nlc3MgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMgVGhpcyBoZWFkZXIgY29u dHJvbHMgdGhlIGZpbGUgYWNjZXNzIG9wZXJhdGlvbnMKIyBzdWNoIGFzIGZj bG9zZSgpLCBmZmx1c2goKSwgZm9wZW4oKSwgZnJlb3BlbigpLCBzZXRidWYo KSwKIyBzZXR2YnVmKCksIGFuZCBhc3NvY2lhdGVkIGNvbnN0YW50cy4KIwpj ZGxfb3B0aW9uIENZR0JMRF9JU09fU1RESU9fRklMRUFDQ0VTU19IRUFERVIg ewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBOdW1iZXIgb2Yg aW1wbGVtZW50YXRpb25zIG9mIHN0ZGlvIGZvcm1hdHRlZCBJL08KIwpjZGxf aW50ZXJmYWNlIENZR0lOVF9JU09fU1RESU9fRk9STUFUVEVEX0lPIHsKICAg ICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMg VGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxh dm9yOiBib29sZGF0YQogICAgIyBDdXJyZW50IHZhbHVlOiAwIDAKICAgICMg UmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RESU9fRk9STUFUVEVEX0lP IAogICAgIyAgICAgQ1lHSU5UX0lTT19TVERJT19GT1JNQVRURURfSU8gPT0g MAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRp ZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNl IENZR0lOVF9JU09fU1RESU9fRk9STUFUVEVEX0lPCiAgICAjICAgICBSZXF1 aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVERJT19GT1JNQVRURURfSU8gCn07 CgojIFN0ZGlvIGZvcm1hdHRlZCBJL08gaW1wbGVtZW50YXRpb24gaGVhZGVy CiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX1NURElPX0ZPUk1BVFRFRF9JT19I RUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBOdW1i ZXIgb2YgaW1wbGVtZW50YXRpb25zIG9mIHN0ZGlvIGNoYXJhY3RlciBJL08K IwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fU1RESU9fQ0hBUl9JTyB7CiAg ICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAj IFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZs YXZvcjogYm9vbGRhdGEKICAgICMgQ3VycmVudCB2YWx1ZTogMCAwCiAgICAj IFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NURElPX0NIQVJfSU8gCiAg ICAjICAgICBDWUdJTlRfSVNPX1NURElPX0NIQVJfSU8gPT0gMAogICAgIyAg IC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFm ZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9J U09fU1RESU9fQ0hBUl9JTwogICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZ R0lOVF9JU09fU1RESU9fQ0hBUl9JTyAKfTsKCiMgU3RkaW8gY2hhcmFjdGVy IEkvTyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JM RF9JU09fU1RESU9fQ0hBUl9JT19IRUFERVIgewogICAgIyBGbGF2b3I6IGJv b2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg MCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAgMAp9OwoKIyBOdW1iZXIgb2YgaW1wbGVtZW50YXRpb25zIG9m IHN0ZGlvIGRpcmVjdCBJL08KIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09f U1RESU9fRElSRUNUX0lPIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQg dGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9k aWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBDdXJy ZW50IHZhbHVlOiAwIDAKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9J U09fU1RESU9fRElSRUNUX0lPIAogICAgIyAgICAgQ1lHSU5UX0lTT19TVERJ T19ESVJFQ1RfSU8gPT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9s bG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUK ICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09fU1RESU9fRElSRUNUX0lPCiAg ICAjICAgICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVERJT19ESVJF Q1RfSU8gCn07CgojIFN0ZGlvIGRpcmVjdCBJL08gaW1wbGVtZW50YXRpb24g aGVhZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX1NURElPX0RJUkVDVF9J T19IRUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVz ZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJv dmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBO dW1iZXIgb2YgaW1wbGVtZW50YXRpb25zIG9mIHN0ZGlvIGZpbGUgcG9zaXRp b25pbmcKIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fU1RESU9fRklMRVBP UyB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNl CiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAg ICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgQ3VycmVudCB2YWx1ZTogMCAw CiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NURElPX0ZJTEVQ T1MgCiAgICAjICAgICBDWUdJTlRfSVNPX1NURElPX0ZJTEVQT1MgPT0gMAog ICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMg YXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZ R0lOVF9JU09fU1RESU9fRklMRVBPUwogICAgIyAgICAgUmVxdWlyZXM6ICAx ID49IENZR0lOVF9JU09fU1RESU9fRklMRVBPUyAKfTsKCiMgU3RkaW8gZmls ZSBwb3NpdGlvbmluZyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0 aW9uIENZR0JMRF9JU09fU1RESU9fRklMRVBPUyB7CiAgICAjIEZsYXZvcjog Ym9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMCAwCn07CgojIE51bWJlciBvZiBpbXBsZW1lbnRhdGlvbnMg b2Ygc3RkaW8gZXJyb3IgaGFuZGxpbmcKIwpjZGxfaW50ZXJmYWNlIENZR0lO VF9JU09fU1RESU9fRVJST1IgewogICAgIyBObyBvcHRpb25zIGltcGxlbWVu dCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBt b2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1 cnJlbnQgdmFsdWU6IDAgMAogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5U X0lTT19TVERJT19FUlJPUiAKICAgICMgICAgIENZR0lOVF9JU09fU1RESU9f RVJST1IgPT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5n IHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMg aW50ZXJmYWNlIENZR0lOVF9JU09fU1RESU9fRVJST1IKICAgICMgICAgIFJl cXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NURElPX0VSUk9SIAp9OwoKIyBT dGRpbyBlcnJvciBoYW5kbGluZyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpj ZGxfb3B0aW9uIENZR0JMRF9JU09fU1RESU9fRVJST1JfSEVBREVSIHsKICAg ICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNv bW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAg IyB1c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAog ICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsKCiMgPAojIFN0YW5kYXJkIGdl bmVyYWwgdXRpbGl0eSBmdW5jdGlvbnMKIwpjZGxfY29tcG9uZW50IENZR1BL R19JU09fU1RETElCIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2 YWx1ZS4KfTsKCiMgPgojIFN0cmluZyBjb252ZXJzaW9uIGZ1bmN0aW9uIGlt cGxlbWVudGF0aW9ucwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19TVERM SUJfU1RSQ09OViB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMg aW5mZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVk IGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVl OiAwCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NURExJQl9T VFJDT05WIAogICAgIyAgICAgQ1lHSU5UX0lTT19TVERMSUJfU1RSQ09OViA9 PSAwCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVy dGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZh Y2UgQ1lHSU5UX0lTT19TVERMSUJfU1RSQ09OVgogICAgIyAgICAgUmVxdWly ZXM6ICAxID49IENZR0lOVF9JU09fU1RETElCX1NUUkNPTlYgCn07CgojIFN0 cmluZyBjb252ZXJzaW9uIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIGhlYWRl cgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19TVERMSUJfU1RSQ09OVl9IRUFE RVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBTdHJpbmcg dG8gRlAgY29udmVyc2lvbiBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbnMKIwpj ZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fU1RETElCX1NUUkNPTlZfRkxPQVQg ewogICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQog ICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAg IyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMAogICAgIyBS ZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVERMSUJfU1RSQ09OVl9GTE9B VCAKICAgICMgICAgIENZR0lOVF9JU09fU1RETElCX1NUUkNPTlZfRkxPQVQg PT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3Bl cnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJm YWNlIENZR0lOVF9JU09fU1RETElCX1NUUkNPTlZfRkxPQVQKICAgICMgICAg IFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NURExJQl9TVFJDT05WX0ZM T0FUIAp9OwoKIyBTdHJpbmcgdG8gRlAgY29udmVyc2lvbiBmdW5jdGlvbiBp bXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09f U1RETElCX1NUUkNPTlZfRkxPQVRfSEVBREVSIHsKICAgICMgRmxhdm9yOiBi b29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0 IHZhbHVlOiAwIDAKfTsKCiMgUmFuZG9tIG51bWJlciBnZW5lcmF0b3IgaW1w bGVtZW50YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1JBTkQg ewogICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQog ICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAg IyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMAogICAgIyBS ZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19SQU5EIAogICAgIyAgICAgQ1lH SU5UX0lTT19SQU5EID09IDAKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZv bGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVl CiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX1JBTkQKICAgICMgICAgIFJl cXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1JBTkQgCn07CgojIFJhbmRvbSBu dW1iZXIgZ2VuZXJhdG9yIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9v cHRpb24gQ1lHQkxEX0lTT19SQU5EX0hFQURFUiB7CiAgICAjIEZsYXZvcjog Ym9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVs dCB2YWx1ZTogMCAwCn07CgojIE1hbGxvYyBpbXBsZW1lbnRhdGlvbnMKIwpj ZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fTUFMTE9DIHsKICAgICMgTm8gb3B0 aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1 ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRh CiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICAxID49 IENZR0lOVF9JU09fTUFMTE9DIAogICAgIyAgICAgQ1lHSU5UX0lTT19NQUxM T0MgPT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHBy b3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50 ZXJmYWNlIENZR0lOVF9JU09fTUFMTE9DCiAgICAjICAgICBSZXF1aXJlczog IDEgPj0gQ1lHSU5UX0lTT19NQUxMT0MgCiAgICAjIGNvbXBvbmVudCBDWUdQ S0dfSU9fU0VSSUFMX1RFUk1JT1MKICAgICMgICAgIFJlcXVpcmVzOiBDWUdJ TlRfSVNPX01BTExPQwp9OwoKIyBNYWxsb2MgaW1wbGVtZW50YXRpb24gaGVh ZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX01BTExPQ19IRUFERVIgewog ICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVu Y29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAg ICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBNYWxsaW5mbygpIGlt cGxlbWVudGF0aW9ucwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19NQUxM SU5GTyB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJm YWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUu CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCiAg ICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX01BTExJTkZPIAogICAg IyAgICAgQ1lHSU5UX0lTT19NQUxMSU5GTyA9PSAwCiAgICAjICAgLS0+IDEK CiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQg YnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19NQUxM SU5GTwogICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fTUFM TElORk8gCn07CgojIE1hbGxpbmZvKCkgaW1wbGVtZW50YXRpb24gaGVhZGVy CiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX01BTExJTkZPX0hFQURFUiB7CiAg ICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIFByb2dyYW0gZXhpdCBm dW5jdGlvbmFsaXR5IGltcGxlbWVudGF0aW9ucwojCmNkbF9pbnRlcmZhY2Ug Q1lHSU5UX0lTT19FWElUIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQg dGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9k aWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRf dmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fRVhJ VCAKICAgICMgICAgIENZR0lOVF9JU09fRVhJVCA9PSAwCiAgICAjICAgLS0+ IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0 ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19F WElUCiAgICAjICAgICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19FWElU IAp9OwoKIyBQcm9ncmFtIGV4aXQgZnVuY3Rpb25hbGl0eSBpbXBsZW1lbnRh dGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fRVhJVF9IRUFE RVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBQcm9ncmFt IGVudmlyb25tZW50IGltcGxlbWVudGF0aW9ucwojCmNkbF9pbnRlcmZhY2Ug Q1lHSU5UX0lTT19TVERMSUJfRU5WSVJPTiB7CiAgICAjIE5vIG9wdGlvbnMg aW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fu bm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAg IyBDdXJyZW50X3ZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJ TlRfSVNPX1NURExJQl9FTlZJUk9OIAogICAgIyAgICAgQ1lHSU5UX0lTT19T VERMSUJfRU5WSVJPTiA9PSAwCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBm b2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1 ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19TVERMSUJfRU5WSVJPTgog ICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU1RETElCX0VO VklST04gCn07CgojIFByb2dyYW0gZW52aXJvbm1lbnQgaW1wbGVtZW50YXRp b24gaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX1NURExJQl9FTlZJ Uk9OX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVf c291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07Cgoj IHN5c3RlbSgpIGltcGxlbWVudGF0aW9ucwojCmNkbF9pbnRlcmZhY2UgQ1lH SU5UX0lTT19TVERMSUJfU1lTVEVNIHsKICAgICMgTm8gb3B0aW9ucyBpbXBs ZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3Qg YmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1 cnJlbnRfdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9J U09fU1RETElCX1NZU1RFTSAKICAgICMgICAgIENZR0lOVF9JU09fU1RETElC X1NZU1RFTSA9PSAwCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dp bmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAg IyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19TVERMSUJfU1lTVEVNCiAgICAjICAg ICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVERMSUJfU1lTVEVNIAp9 OwoKIyBzeXN0ZW0oKSBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0 aW9uIENZR0JMRF9JU09fU1RETElCX1NZU1RFTV9IRUFERVIgewogICAgIyBG bGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAj IERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBic2VhcmNoKCkgaW1wbGVtZW50 YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX0JTRUFSQ0ggewog ICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAg IyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMAogICAgIyBSZXF1 aXJlczogIDEgPj0gQ1lHSU5UX0lTT19CU0VBUkNIIAogICAgIyAgICAgQ1lH SU5UX0lTT19CU0VBUkNIID09IDAKICAgICMgICAtLT4gMQoKICAgICMgVGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZh bHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX0JTRUFSQ0gKICAgICMg ICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX0JTRUFSQ0ggCn07Cgoj IGJzZWFyY2goKSBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9u IENZR0JMRF9JU09fQlNFQVJDSF9IRUFERVIgewogICAgIyBGbGF2b3I6IGJv b2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg MCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAgMAp9OwoKIyBxc29ydCgpIGltcGxlbWVudGF0aW9ucwojCmNk bF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19RU09SVCB7CiAgICAjIE5vIG9wdGlv bnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUg Y2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQog ICAgIyBDdXJyZW50X3ZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBD WUdJTlRfSVNPX1NURExJQl9RU09SVCAKICAgICMgICAgIENZR0lOVF9JU09f U1RETElCX1FTT1JUICh1bmtub3duKSA9PSAwCiAgICAjICAgLS0+IDEKfTsK CiMgcXNvcnQoKSBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9u IENZR0JMRF9JU09fUVNPUlRfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29s ZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAg MAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiAwIDAKfTsKCiMgYWJzKCkvbGFicygpIGltcGxlbWVudGF0aW9ucwoj CmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19BQlMgewogICAgIyBObyBvcHRp b25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVl IGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEK ICAgICMgQ3VycmVudF92YWx1ZTogMAogICAgIyBSZXF1aXJlczogIDEgPj0g Q1lHSU5UX0lTT19TVERMSUJfQUJTIAogICAgIyAgICAgQ1lHSU5UX0lTT19T VERMSUJfQUJTICh1bmtub3duKSA9PSAwCiAgICAjICAgLS0+IDEKfTsKCiMg YWJzKCkvbGFicygpIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRp b24gQ1lHQkxEX0lTT19TVERMSUJfQUJTX0hFQURFUiB7CiAgICAjIEZsYXZv cjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogMCAwCn07CgojIGRpdigpL2xkaXYoKSBpbXBsZW1lbnRh dGlvbnMKIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fRElWIHsKICAgICMg Tm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhp cyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9y OiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6 ICAxID49IENZR0lOVF9JU09fU1RETElCX0RJViAKICAgICMgICAgIENZR0lO VF9JU09fU1RETElCX0RJViAodW5rbm93bikgPT0gMAogICAgIyAgIC0tPiAx Cn07CgojIGRpdigpL2xkaXYoKSBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpj ZGxfb3B0aW9uIENZR0JMRF9JU09fU1RETElCX0RJVl9IRUFERVIgewogICAg IyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29t bWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAj IHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBNdWx0aWJ5dGUgY2hhcmFj dGVyIGltcGxlbWVudGF0aW9ucwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lT T19TVERMSUJfTVVMVElCWVRFIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1l bnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUg bW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJl bnRfdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09f U1RETElCX01VTFRJQllURSAKICAgICMgICAgIENZR0lOVF9JU09fU1RETElC X01VTFRJQllURSA9PSAwCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xs b3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQog ICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19TVERMSUJfTVVMVElCWVRFCiAg ICAjICAgICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVERMSUJfTVVM VElCWVRFIAp9OwoKIyBNdWx0aWJ5dGUgY2hhcmFjdGVyIGltcGxlbWVudGF0 aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19TVERMSUJfTVVM VElCWVRFX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMg Tm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0 byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07 CgojIDwKIyBTdHJpbmcgZnVuY3Rpb25zCiMKY2RsX2NvbXBvbmVudCBDWUdQ S0dfSVNPX1NUUklORyB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQg dmFsdWUuCn07CgojID4KIyBOdW1iZXIgb2YgaW1wbGVtZW50YXRpb25zIG9m IHN0cmVycm9yKCkgZnVuY3Rpb24KIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9J U09fU1RSRVJST1IgewogICAgIyBJbXBsZW1lbnRlZCBieSBDWUdQS0dfRVJS T1JfU1RSRVJST1IsIGFjdGl2ZSwgZW5hYmxlZAogICAgIyBUaGlzIHZhbHVl IGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEK ICAgICMgQ3VycmVudF92YWx1ZTogMQogICAgIyBSZXF1aXJlczogIDEgPj0g Q1lHSU5UX0lTT19TVFJFUlJPUiAKICAgICMgICAgIENZR0lOVF9JU09fU1RS RVJST1IgPT0gMQogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5n IHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMg aW50ZXJmYWNlIENZR0lOVF9JU09fU1RSRVJST1IKICAgICMgICAgIFJlcXVp cmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NUUkVSUk9SIAp9OwoKIyBzdHJlcnJv cigpIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxE X0lTT19TVFJFUlJPUl9IRUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRh CiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5n IGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAg ICAjIFRoZSBpbmZlcnJlZCB2YWx1ZSBzaG91bGQgbm90IGJlIGVkaXRlZCBk aXJlY3RseS4KICAgIGluZmVycmVkX3ZhbHVlIDEgPGN5Zy9lcnJvci9zdHJl cnJvci5oPgogICAgIyB2YWx1ZV9zb3VyY2UgaW5mZXJyZWQKICAgICMgRGVm YXVsdCB2YWx1ZTogMCAwCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRp ZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZ R1BLR19FUlJPUl9TVFJFUlJPUgogICAgIyAgICAgUmVxdWlyZXM6ICBDWUdC TERfSVNPX1NUUkVSUk9SX0hFQURFUiA9PSAiPGN5Zy9lcnJvci9zdHJlcnJv ci5oPiIgCn07CgojIG1lbWNweSgpIGltcGxlbWVudGF0aW9uIGhlYWRlcgoj CmNkbF9vcHRpb24gQ1lHQkxEX0lTT19NRU1DUFlfSEVBREVSIHsKICAgICMg Rmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAg IyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsKCiMgbWVtc2V0KCkgaW1wbGVtZW50 YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX01FTVNFVF9I RUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBOdW1i ZXIgb2YgaW1wbGVtZW50YXRpb25zIG9mIHN0cnRva19yKCkgZnVuY3Rpb24K IwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fU1RSVE9LX1IgewogICAgIyBO byBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlz IHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6 IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMAogICAgIyBSZXF1aXJlczog IDEgPj0gQ1lHSU5UX0lTT19TVFJUT0tfUiAKICAgICMgICAgIENZR0lOVF9J U09fU1RSVE9LX1IgPT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9s bG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUK ICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09fU1RSVE9LX1IKICAgICMgICAg IFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NUUlRPS19SIAp9OwoKIyBz dHJ0b2tfcigpIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24g Q1lHQkxEX0lTT19TVFJUT0tfUl9IRUFERVIgewogICAgIyBGbGF2b3I6IGJv b2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg MCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAgMAp9OwoKIyBOdW1iZXIgb2YgaW1wbGVtZW50YXRpb25zIG9m IGxvY2FsZS1zcGVjaWZpYyBzdHJpbmcgIGZ1bmN0aW9ucwojIFRoaXMgY292 ZXJzIGxvY2FsZS1kZXBlbmRlbnQgc3RyaW5nIGZ1bmN0aW9ucyBzdWNoIGFz IHN0cmNvbGwoKQojIGFuZCBzdHJ4ZnJtKCkuCiMKY2RsX2ludGVyZmFjZSBD WUdJTlRfSVNPX1NUUklOR19MT0NBTEVfRlVOQ1MgewogICAgIyBObyBvcHRp b25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVl IGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEK ICAgICMgQ3VycmVudF92YWx1ZTogMAogICAgIyBSZXF1aXJlczogIDEgPj0g Q1lHSU5UX0lTT19TVFJJTkdfTE9DQUxFX0ZVTkNTIAogICAgIyAgICAgQ1lH SU5UX0lTT19TVFJJTkdfTE9DQUxFX0ZVTkNTID09IDAKICAgICMgICAtLT4g MQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3Rl ZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX1NU UklOR19MT0NBTEVfRlVOQ1MKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBD WUdJTlRfSVNPX1NUUklOR19MT0NBTEVfRlVOQ1MgCn07CgojIExvY2FsZS1z cGVjaWZpYyBzdHJpbmcgZnVuY3Rpb25zJyBpbXBsZW1lbnRhdGlvbiAgaGVh ZGVyCiMgVGhpcyBjb3ZlcnMgbG9jYWxlLWRlcGVuZGVudCBzdHJpbmcgZnVu Y3Rpb25zIHN1Y2ggYXMgc3RyY29sbCgpCiMgYW5kIHN0cnhmcm0oKS4KIwpj ZGxfb3B0aW9uIENZR0JMRF9JU09fU1RSSU5HX0xPQ0FMRV9GVU5DU19IRUFE RVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBOdW1iZXIg b2YgaW1wbGVtZW50YXRpb25zIG9mIEJTRCBzdHJpbmcgZnVuY3Rpb25zCiMK Y2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1NUUklOR19CU0RfRlVOQ1Mgewog ICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAg IyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBG bGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMAogICAgIyBSZXF1 aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TVFJJTkdfQlNEX0ZVTkNTIAogICAg IyAgICAgQ1lHSU5UX0lTT19TVFJJTkdfQlNEX0ZVTkNTID09IDAKICAgICMg ICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBh ZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRf SVNPX1NUUklOR19CU0RfRlVOQ1MKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+ PSBDWUdJTlRfSVNPX1NUUklOR19CU0RfRlVOQ1MgCn07CgojIEJTRCBzdHJp bmcgZnVuY3Rpb25zJyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0 aW9uIENZR0JMRF9JU09fU1RSSU5HX0JTRF9GVU5DU19IRUFERVIgewogICAg IyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29t bWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAj IHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBOdW1iZXIgb2YgaW1wbGVt ZW50YXRpb25zIG9mIG90aGVyIG1lbSooKSBmdW5jdGlvbnMKIwpjZGxfaW50 ZXJmYWNlIENZR0lOVF9JU09fU1RSSU5HX01FTUZVTkNTIHsKICAgICMgTm8g b3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2 YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBk YXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICAx ID49IENZR0lOVF9JU09fU1RSSU5HX01FTUZVTkNTIAogICAgIyAgICAgQ1lH SU5UX0lTT19TVFJJTkdfTUVNRlVOQ1MgPT0gMAogICAgIyAgIC0tPiAxCgog ICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5 IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09fU1RSSU5H X01FTUZVTkNTCiAgICAjICAgICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lT T19TVFJJTkdfTUVNRlVOQ1MgCn07CgojIE90aGVyIG1lbSooKSBmdW5jdGlv bnMnIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxE X0lTT19TVFJJTkdfTUVNRlVOQ1NfSEVBREVSIHsKICAgICMgRmxhdm9yOiBi b29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0 IHZhbHVlOiAwIDAKfTsKCiMgTnVtYmVyIG9mIGltcGxlbWVudGF0aW9ucyBv ZiBvdGhlciBJU08gQyBzdHIqKCkgIGZ1bmN0aW9ucwojIFRoaXMgY292ZXJz IHRoZSBvdGhlciBzdHIqKCkgZnVuY3Rpb25zIGRlZmluZWQgYnkgSVNPIEMu CiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1NUUklOR19TVFJGVU5DUyB7 CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAg ICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAj IEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCiAgICAjIFJl cXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NUUklOR19TVFJGVU5DUyAKICAg ICMgICAgIENZR0lOVF9JU09fU1RSSU5HX1NUUkZVTkNTID09IDAKICAgICMg ICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBh ZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRf SVNPX1NUUklOR19TVFJGVU5DUwogICAgIyAgICAgUmVxdWlyZXM6ICAxID49 IENZR0lOVF9JU09fU1RSSU5HX1NUUkZVTkNTIAp9OwoKIyBPdGhlciBJU08g QyBzdHIqKCkgZnVuY3Rpb25zJyBpbXBsZW1lbnRhdGlvbiAgaGVhZGVyCiMg VGhpcyBjb3ZlcnMgdGhlIG90aGVyIHN0ciooKSBmdW5jdGlvbnMgZGVmaW5l ZCBieSBJU08gQy4KIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU1RSSU5HX1NU UkZVTkNTX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMg Tm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0 byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07 CgojIDwKIyBDbG9jayBhbmQgdGltZSBmdW5jdGlvbmFsaXR5CiMKY2RsX2Nv bXBvbmVudCBDWUdQS0dfSVNPX1RJTUUgewogICAgIyBUaGVyZSBpcyBubyBh c3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgdGltZV90IGltcGxlbWVudGF0 aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19USU1FX1RfSEVB REVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsKCiMgY2xvY2tf dCBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9J U09fQ0xPQ0tfVF9IRUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAg ICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxp bmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAg MAp9OwoKIyBzdHJ1Y3QgdGltZXZhbCBpbXBsZW1lbnRhdGlvbiBoZWFkZXIK IwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU1RSVUNUVElNRVZBTF9IRUFERVIg ewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBOdW1iZXIgb2Yg aW1wbGVtZW50YXRpb25zIG9mIFBPU0lYIHRpbWVyIHR5cGVzCiMKY2RsX2lu dGVyZmFjZSBDWUdJTlRfSVNPX1BPU0lYX1RJTUVSX1RZUEVTIHsKICAgICMg Tm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhp cyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9y OiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6 ICAxID49IENZR0lOVF9JU09fUE9TSVhfVElNRVJfVFlQRVMgCiAgICAjICAg ICBDWUdJTlRfSVNPX1BPU0lYX1RJTUVSX1RZUEVTID09IDAKICAgICMgICAt LT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZl Y3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNP X1BPU0lYX1RJTUVSX1RZUEVTCiAgICAjICAgICBSZXF1aXJlczogIDEgPj0g Q1lHSU5UX0lTT19QT1NJWF9USU1FUl9UWVBFUyAKfTsKCiMgUE9TSVggdGlt ZXIgdHlwZXMgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBD WUdCTERfSVNPX1BPU0lYX1RJTUVSX1RZUEVTX0hFQURFUiB7CiAgICAjIEZs YXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIE51bWJlciBvZiBpbXBsZW1lbnRh dGlvbnMgb2YgSVNPIEMgdHlwZXMKIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9J U09fQ19USU1FX1RZUEVTIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQg dGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9k aWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRf dmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fQ19U SU1FX1RZUEVTIAogICAgIyAgICAgQ1lHSU5UX0lTT19DX1RJTUVfVFlQRVMg PT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3Bl cnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJm YWNlIENZR0lOVF9JU09fQ19USU1FX1RZUEVTCiAgICAjICAgICBSZXF1aXJl czogIDEgPj0gQ1lHSU5UX0lTT19DX1RJTUVfVFlQRVMgCn07CgojIElTTyBD IHRpbWUgdHlwZXMgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlv biBDWUdCTERfSVNPX0NfVElNRV9UWVBFU19IRUFERVIgewogICAgIyBGbGF2 b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBOdW1iZXIgb2YgaW1wbGVtZW50YXRp b25zIG9mIFBPU0lYIHRpbWVycwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lT T19QT1NJWF9USU1FUlMgewogICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0 aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2Rp ZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92 YWx1ZTogMAogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19QT1NJ WF9USU1FUlMgCiAgICAjICAgICBDWUdJTlRfSVNPX1BPU0lYX1RJTUVSUyA9 PSAwCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVy dGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZh Y2UgQ1lHSU5UX0lTT19QT1NJWF9USU1FUlMKICAgICMgICAgIFJlcXVpcmVz OiAgMSA+PSBDWUdJTlRfSVNPX1BPU0lYX1RJTUVSUyAKfTsKCiMgUE9TSVgg dGltZXIgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdC TERfSVNPX1BPU0lYX1RJTUVSU19IRUFERVIgewogICAgIyBGbGF2b3I6IGJv b2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg MCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6IDAgMAp9OwoKIyBOdW1iZXIgb2YgaW1wbGVtZW50YXRpb25zIG9m IElTTyBDIGNsb2NrIGZ1bmN0aW9ucwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5U X0lTT19DX0NMT0NLX0ZVTkNTIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1l bnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUg bW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJl bnRfdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09f Q19DTE9DS19GVU5DUyAKICAgICMgICAgIENZR0lOVF9JU09fQ19DTE9DS19G VU5DUyA9PSAwCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcg cHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBp bnRlcmZhY2UgQ1lHSU5UX0lTT19DX0NMT0NLX0ZVTkNTCiAgICAjICAgICBS ZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19DX0NMT0NLX0ZVTkNTIAp9OwoK IyBJU08gQyBjbG9jayBmdW5jdGlvbnMnIGltcGxlbWVudGF0aW9uIGhlYWRl cgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19DX0NMT0NLX0ZVTkNTX0hFQURF UiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRl ZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIE51bWJlciBv ZiBpbXBsZW1lbnRhdGlvbnMgb2YgdHpzZXQoKSBmdW5jdGlvbgojCmNkbF9p bnRlcmZhY2UgQ1lHSU5UX0lTT19UWlNFVCB7CiAgICAjIE5vIG9wdGlvbnMg aW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fu bm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAg IyBDdXJyZW50X3ZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJ TlRfSVNPX1RaU0VUIAogICAgIyAgICAgQ1lHSU5UX0lTT19UWlNFVCA9PSAw CiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGll cyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2Ug Q1lHSU5UX0lTT19UWlNFVAogICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZ R0lOVF9JU09fVFpTRVQgCn07CgojIHR6c2V0KCkgaW1wbGVtZW50YXRpb24g aGVhZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX1RaU0VUX0hFQURFUiB7 CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIDwKIyBTaWduYWwg ZnVuY3Rpb25hbGl0eQojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lTT19TSUdO QUwgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoK IyA+CiMgTnVtYmVyIG9mIGltcGxlbWVudGF0aW9ucyBvZiBzaWduYWwgbnVt YmVycwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lTT19TSUdOQUxfTlVNQkVS UyB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNl CiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAg ICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCiAgICAj IFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NJR05BTF9OVU1CRVJTIAog ICAgIyAgICAgQ1lHSU5UX0lTT19TSUdOQUxfTlVNQkVSUyA9PSAwCiAgICAj ICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUg YWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5U X0lTT19TSUdOQUxfTlVNQkVSUwogICAgIyAgICAgUmVxdWlyZXM6ICAxID49 IENZR0lOVF9JU09fU0lHTkFMX05VTUJFUlMgCiAgICAjIG9wdGlvbiBDWUdT RU1fSU9fU0VSSUFMX1RFUk1JT1NfVVNFX1NJR05BTFMKICAgICMgICAgIFJl cXVpcmVzOiBDWUdJTlRfSVNPX1NJR05BTF9OVU1CRVJTCiAgICAjIG9wdGlv biBDWUdTRU1fSU9fU0VSSUFMX1RFUk1JT1NfVVNFX1NJR05BTFMKICAgICMg ICAgIERlZmF1bHRWYWx1ZTogIENZR0lOVF9JU09fU0lHTkFMX05VTUJFUlMg IT0gMCAmJiAgQ1lHSU5UX0lTT19TSUdOQUxfSU1QTCAhPSAwIAp9OwoKIyBT aWduYWwgbnVtYmVyaW5nIGltcGxlbWVudGF0aW9uIGhlYWRlcgojIFRoaXMg aGVhZGVyIHByb3ZpZGVzIHRoZSBtYXBwaW5nIG9mIHNpZ25hbAojIG5hbWVz IChlLmcuIFNJR0JVUykgdG8gbnVtYmVycy4KIwpjZGxfb3B0aW9uIENZR0JM RF9JU09fU0lHTkFMX05VTUJFUlNfSEVBREVSIHsKICAgICMgRmxhdm9yOiBi b29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0 IHZhbHVlOiAwIDAKfTsKCiMgTnVtYmVyIG9mIHNpZ25hbCBpbXBsZW1lbnRh dGlvbnMKIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fU0lHTkFMX0lNUEwg ewogICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQog ICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAg IyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMAogICAgIyBS ZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19TSUdOQUxfSU1QTCAKICAgICMg ICAgIENZR0lOVF9JU09fU0lHTkFMX0lNUEwgPT0gMAogICAgIyAgIC0tPiAx CgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVk IGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09fU0lH TkFMX0lNUEwKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNP X1NJR05BTF9JTVBMIAogICAgIyBvcHRpb24gQ1lHU0VNX0lPX1NFUklBTF9U RVJNSU9TX1VTRV9TSUdOQUxTCiAgICAjICAgICBSZXF1aXJlczogQ1lHSU5U X0lTT19TSUdOQUxfSU1QTAogICAgIyBvcHRpb24gQ1lHU0VNX0lPX1NFUklB TF9URVJNSU9TX1VTRV9TSUdOQUxTCiAgICAjICAgICBEZWZhdWx0VmFsdWU6 ICBDWUdJTlRfSVNPX1NJR05BTF9OVU1CRVJTICE9IDAgJiYgIENZR0lOVF9J U09fU0lHTkFMX0lNUEwgIT0gMCAKfTsKCiMgU2lnbmFscyBpbXBsZW1lbnRh dGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU0lHTkFMX0lN UExfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsKCiMg UE9TSVggcmVhbCB0aW1lIHNpZ25hbHMgZmVhdHVyZSB0ZXN0IG1hY3JvCiMg VGhpcyBkZWZpbmVzIHRoZSBQT1NJWCBmZWF0dXJlIHRlc3QgbWFjcm8KIyB0 aGF0IGluZGljYXRlcyB0aGF0IHRoZSBQT1NJWCByZWFsIHRpbWUgc2lnbmFs cwojIGFyZSBwcmVzZW50LgojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX1BPU0lY X1JFQUxUSU1FX1NJR05BTFMgewogICAgIyBObyBvcHRpb25zIGltcGxlbWVu dCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBt b2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVu dF92YWx1ZTogMAogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX1BPU0lY X1JFQUxUSU1FX1NJR05BTFMgCiAgICAjICAgICBDWUdJTlRfUE9TSVhfUkVB TFRJTUVfU0lHTkFMUyA9PSAwCiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBm b2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1 ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX1BPU0lYX1JFQUxUSU1FX1NJR05B TFMKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfUE9TSVhfUkVB TFRJTUVfU0lHTkFMUyAKfTsKCiMgPAojIE5vbi1sb2NhbCBqdW1wcyBmdW5j dGlvbmFsaXR5CiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfSVNPX1NFVEpNUCB7 CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUuCn07CgojID4K IyBzZXRqbXAoKSAvIGxvbmdqbXAoKSBpbXBsZW1lbnRhdGlvbnMKIwpjZGxf aW50ZXJmYWNlIENZR0lOVF9JU09fU0VUSk1QIHsKICAgICMgTm8gb3B0aW9u cyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBj YW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAg ICAjIEN1cnJlbnRfdmFsdWU6IDAKICAgICMgUmVxdWlyZXM6ICAxID49IENZ R0lOVF9JU09fU0VUSk1QIAogICAgIyAgICAgQ1lHSU5UX0lTT19TRVRKTVAg PT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3Bl cnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJm YWNlIENZR0lOVF9JU09fU0VUSk1QCiAgICAjICAgICBSZXF1aXJlczogIDEg Pj0gQ1lHSU5UX0lTT19TRVRKTVAgCn07CgojIHNldGptcCgpIC8gbG9uZ2pt cCgpIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxE X0lTT19TRVRKTVBfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAw IDAKfTsKCiMgc2lnc2V0am1wKCkgLyBzaWdsb25nam1wKCkgaW1wbGVtZW50 YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1NJR1NFVEpNUCB7 CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAg ICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAj IEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCiAgICAjIFJl cXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NJR1NFVEpNUCAKICAgICMgICAg IENZR0lOVF9JU09fU0lHU0VUSk1QID09IDAKICAgICMgICAtLT4gMQoKICAg ICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0 aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX1NJR1NFVEpN UAogICAgIyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU0lHU0VU Sk1QIAp9OwoKIyBzaWdzZXRqbXAoKSAvIHNpZ2xvbmdqbXAoKSBpbXBsZW1l bnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU0lHU0VU Sk1QX0hFQURFUiB7CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8g dXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBw cm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVf c291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07Cgoj IDwKIyBBc3NlcnRpb25zIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9v cHRpb24gQ1lHQkxEX0lTT19BU1NFUlRfSEVBREVSIHsKICAgICMgRmxhdm9y OiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAwIDAKfTsKCiMgUE9TSVggZmlsZSBjb250cm9sCiMgVGhp cyBjb3ZlcnMgdGhlIFBPU0lYIGZpbGUgY29udHJvbCBkZWZpbml0aW9ucywK IyBub3JtYWxseSBmb3VuZCBpbiA8ZmNudGwuaD4KIwpjZGxfY29tcG9uZW50 IENZR1BLR19JU09fUE9TSVhfRkNOVEwgewogICAgIyBUaGVyZSBpcyBubyBh c3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgUE9TSVggb3BlbiBmbGFncyBp bXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09f T0ZMQUdfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1 ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsK CiMgUE9TSVggZmNudGwoKSBpbXBsZW1lbnRhdGlvbnMKIwpjZGxfaW50ZXJm YWNlIENZR0lOVF9JU09fRkNOVEwgewogICAgIyBObyBvcHRpb25zIGltcGxl bWVudCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBi ZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3Vy cmVudF92YWx1ZTogMAogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lT T19GQ05UTCAKICAgICMgICAgIENZR0lOVF9JU09fRkNOVEwgPT0gMAogICAg IyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJl IGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNlIENZR0lO VF9JU09fRkNOVEwKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRf SVNPX0ZDTlRMIAp9OwoKIyBQT1NJWCBmY250bCgpIGltcGxlbWVudGF0aW9u IGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19GQ05UTF9IRUFERVIg ewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBQT1NJWCBmaWxl IG9wZW4gaW1wbGVtZW50YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRf SVNPX09QRU4gewogICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlzIGlu ZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBo ZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTog MAogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19PUEVOIAogICAg IyAgICAgQ1lHSU5UX0lTT19PUEVOID09IDAKICAgICMgICAtLT4gMQoKICAg ICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0 aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX09QRU4KICAg ICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX09QRU4gCn07Cgoj IFBPU0lYIGZpbGUgb3BlbiBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxf b3B0aW9uIENZR0JMRF9JU09fT1BFTl9IRUFERVIgewogICAgIyBGbGF2b3I6 IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1 bHQgdmFsdWU6IDAgMAp9OwoKIyA8CiMgPHN5cy9zdGF0Lmg+IGRlZmluaXRp b25zIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxE X0lTT19TVEFUX0RFRlNfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0 YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAwIDAKfTsKCiMgUE9TSVggZGlyZWN0b3J5IHJlYWRpbmcgaW1wbGVtZW50 YXRpb24KIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JU09fRElSRU5UIHsKICAg ICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMg VGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxh dm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKICAgICMgUmVxdWly ZXM6ICAxID49IENZR0lOVF9JU09fRElSRU5UIAogICAgIyAgICAgQ1lHSU5U X0lTT19ESVJFTlQgPT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9s bG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUK ICAgICMgaW50ZXJmYWNlIENZR0lOVF9JU09fRElSRU5UCiAgICAjICAgICBS ZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19ESVJFTlQgCn07CgojIDxkaXJl bnQuaD4gZGVmaW5pdGlvbnMgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2Rs X29wdGlvbiBDWUdCTERfSVNPX0RJUkVOVF9IRUFERVIgewogICAgIyBGbGF2 b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBQT1NJWCA8c3lzL3R5cGVzLmg+IGNv bnRlbnRzCiMgVGhpcyBjb3ZlcnMgdGhlIHR5cGVzIHJlcXVpcmVkIGJ5IFBP U0lYIHRvIGJlIGluCiMgPHN5cy90eXBlcy5oPgojCmNkbF9jb21wb25lbnQg Q1lHUEtHX0lTT19QT1NJWF9UWVBFUyB7CiAgICAjIFRoZXJlIGlzIG5vIGFz c29jaWF0ZWQgdmFsdWUuCn07CgojID4KIyBQT1NJWCB0aHJlYWQgdHlwZXMg aW1wbGVtZW50YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1BU SFJFQURUWVBFUyB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMg aW5mZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVk IGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVl OiAwCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1BUSFJFQURU WVBFUyAKICAgICMgICAgIENZR0lOVF9JU09fUFRIUkVBRFRZUEVTID09IDAK ICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVz IGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBD WUdJTlRfSVNPX1BUSFJFQURUWVBFUwogICAgIyAgICAgUmVxdWlyZXM6ICAx ID49IENZR0lOVF9JU09fUFRIUkVBRFRZUEVTIAp9OwoKIyBQT1NJWCB0aHJl YWQgdHlwZXMgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBD WUdCTERfSVNPX1BUSFJFQURUWVBFU19IRUFERVIgewogICAgIyBGbGF2b3I6 IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1 bHQgdmFsdWU6IDAgMAp9OwoKIyBzc2l6ZV90IGltcGxlbWVudGF0aW9uIGhl YWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19TU0laRV9UX0hFQURFUiB7 CiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIEZpbGVzeXN0ZW0g dHlwZXMgaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdC TERfSVNPX0ZTVFlQRVNfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0 YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAwIDAKfTsKCiMgZ2lkX3QsIHBpZF90LCB1aWRfdCBpbXBsZW1lbnRhdGlv biBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU0NIRURUWVBFU19I RUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyA8CiMg Tm9uLVBPU0lYIDxzeXMvdHlwZXMuaD4gY29udGVudHMKIyBUaGlzIGNvdmVy cyB0aGUgZXh0cmEgdHlwZXMgcmVxdWlyZWQgYnkgbm9uLVBPU0lYCiMgcGFj a2FnZXMgdG8gYmUgaW4gPHN5cy90eXBlcy5oPi4gVGhlc2Ugd291bGQgbm9y bWFsbHkKIyBvbmx5IGJlIHZpc2libGUgaWYgX1BPU0lYX1NPVVJDRSBpcyBu b3QgZGVmaW5lZC4KIwpjZGxfY29tcG9uZW50IENZR1BLR19JU09fRVhUUkFf VFlQRVMgewogICAgIyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9 OwoKIyA+CiMgQlNEIGNvbXBhdGlibGUgdHlwZXMKIwpjZGxfaW50ZXJmYWNl IENZR0lOVF9JU09fQlNEVFlQRVMgewogICAgIyBObyBvcHRpb25zIGltcGxl bWVudCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBi ZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3Vy cmVudF92YWx1ZTogMAogICAgIyBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lT T19CU0RUWVBFUyAKICAgICMgICAgIENZR0lOVF9JU09fQlNEVFlQRVMgPT0g MAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRp ZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgaW50ZXJmYWNl IENZR0lOVF9JU09fQlNEVFlQRVMKICAgICMgICAgIFJlcXVpcmVzOiAgMSA+ PSBDWUdJTlRfSVNPX0JTRFRZUEVTIAp9OwoKIyBCU0QgdHlwZXMgaGVhZGVy CiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX0JTRFRZUEVTX0hFQURFUiB7CiAg ICAjIEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIDwKIyBVdHNuYW1lIHN0 cnVjdHVyZQojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lTT19VVFNOQU1FIHsK ICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgoj IFV0c25hbWUgaGVhZGVyCiMKY2RsX29wdGlvbiBDWUdCTERfSVNPX1VUU05B TUVfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwIDAKfTsKCiMg PAojIFBPU0lYIHNjaGVkdWxlcgojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lT T19TQ0hFRCB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUu Cn07CgojID4KIyBQT1NJWCBzY2hlZHVsZXIgaW1wbGVtZW50YXRpb25zCiMK Y2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1NDSEVEX0lNUEwgewogICAgIyBO byBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlz IHZhbHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6 IGRhdGEKICAgICMgQ3VycmVudF92YWx1ZTogMAogICAgIyBSZXF1aXJlczog IDEgPj0gQ1lHSU5UX0lTT19TQ0hFRF9JTVBMIAogICAgIyAgICAgQ1lHSU5U X0lTT19TQ0hFRF9JTVBMID09IDAKICAgICMgICAtLT4gMQoKICAgICMgVGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZh bHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX1NDSEVEX0lNUEwKICAg ICMgICAgIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1NDSEVEX0lNUEwg Cn07CgojIFBPU0lYIHNjaGVkdWxlciBpbXBsZW1lbnRhdGlvbiBoZWFkZXIK IwpjZGxfb3B0aW9uIENZR0JMRF9JU09fU0NIRURfSU1QTF9IRUFERVIgewog ICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVu Y29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAg ICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyA8CiMgUE9TSVggc2Vt YXBob3JlcwojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lTT19TRU1BUEhPUkVT IHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMg PgojIFBPU0lYIHNlbWFwaG9yZSBpbXBsZW1lbnRhdGlvbnMKIwpjZGxfaW50 ZXJmYWNlIENZR0lOVF9JU09fU0VNQVBIT1JFUyB7CiAgICAjIE5vIG9wdGlv bnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUg Y2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQog ICAgIyBDdXJyZW50X3ZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBD WUdJTlRfSVNPX1NFTUFQSE9SRVMgCiAgICAjICAgICBDWUdJTlRfSVNPX1NF TUFQSE9SRVMgPT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93 aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAg ICMgaW50ZXJmYWNlIENZR0lOVF9JU09fU0VNQVBIT1JFUwogICAgIyAgICAg UmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fU0VNQVBIT1JFUyAKfTsKCiMg UE9TSVggc2VtYXBob3JlIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9v cHRpb24gQ1lHQkxEX0lTT19TRU1BUEhPUkVTX0hFQURFUiB7CiAgICAjIEZs YXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIDwKIyBQT1NJWCBtZXNzYWdlIHF1 ZXVlcwojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lTT19NUVVFVUUgewogICAg IyBUaGVyZSBpcyBubyBhc3NvY2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgSW1w bGVtZW50YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX01RVUVV RSB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMgaW5mZXJmYWNl CiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUuCiAg ICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCiAgICAj IFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX01RVUVVRSAKICAgICMgICAg IENZR0lOVF9JU09fTVFVRVVFID09IDAKICAgICMgICAtLT4gMQoKICAgICMg VGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlz IHZhbHVlCiAgICAjIGludGVyZmFjZSBDWUdJTlRfSVNPX01RVUVVRQogICAg IyAgICAgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fTVFVRVVFIAogICAg IyBvcHRpb24gQ1lHTlVNX0lTT19NUVVFVUVfT1BFTl9NQVgKICAgICMgICAg IEFjdGl2ZUlmOiBDWUdJTlRfSVNPX01RVUVVRQogICAgIyBvcHRpb24gQ1lH TlVNX0lTT19NUVVFVUVfUFJJT19NQVgKICAgICMgICAgIEFjdGl2ZUlmOiBD WUdJTlRfSVNPX01RVUVVRQp9OwoKIyBJbXBsZW1lbnRhdGlvbiBoZWFkZXIK IwpjZGxfb3B0aW9uIENZR0JMRF9JU09fTVFVRVVFX0hFQURFUiB7CiAgICAj IEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAg ICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIE1heGltdW0gbnVtYmVyIG9m IG9wZW4gbWVzc2FnZSBxdWV1ZXMKIwpjZGxfb3B0aW9uIENZR05VTV9JU09f TVFVRVVFX09QRU5fTUFYIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFj dGl2ZQogICAgIyBBY3RpdmVJZiBjb25zdHJhaW50OiBDWUdJTlRfSVNPX01R VUVVRQogICAgIyAgICAgQ1lHSU5UX0lTT19NUVVFVUUgPT0gMAogICAgIyAg IC0tPiAwCgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICBDWUdOVU1fUE9TSVhf TVFVRVVFX09QRU5fTUFYID4gMCA/IENZR05VTV9QT1NJWF9NUVVFVUVfT1BF Tl9NQVggOiAwIAogICAgIyAgICAgQ1lHTlVNX1BPU0lYX01RVUVVRV9PUEVO X01BWCAodW5rbm93bikgPT0gMAogICAgIyAgICAgQ1lHTlVNX1BPU0lYX01R VUVVRV9PUEVOX01BWCAodW5rbm93bikgPT0gMAogICAgIyAgIC0tPiAwIDAK fTsKCiMgTWF4aW11bSBudW1iZXIgb2YgbWVzc2FnZSBwcmlvcml0aWVzCiMK Y2RsX29wdGlvbiBDWUdOVU1fSVNPX01RVUVVRV9QUklPX01BWCB7CiAgICAj IFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgQWN0aXZlSWYgY29u c3RyYWludDogQ1lHSU5UX0lTT19NUVVFVUUKICAgICMgICAgIENZR0lOVF9J U09fTVFVRVVFID09IDAKICAgICMgICAtLT4gMAoKICAgICMgRmxhdm9yOiBi b29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVl IDEgNjU1MzUKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogMSA2NTUzNQp9OwoKIyA8CiMgUE9TSVggdGhyZWFkcwoj CmNkbF9jb21wb25lbnQgQ1lHUEtHX0lTT19QVEhSRUFEIHsKICAgICMgVGhl cmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsKCiMgPgojIFBPU0lYIHB0 aHJlYWQgaW1wbGVtZW50YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRf SVNPX1BUSFJFQURfSU1QTCB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50 IHRoaXMgaW5mZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1v ZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50 X3ZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1BU SFJFQURfSU1QTCAKICAgICMgICAgIENZR0lOVF9JU09fUFRIUkVBRF9JTVBM ID09IDAKICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9w ZXJ0aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVy ZmFjZSBDWUdJTlRfSVNPX1BUSFJFQURfSU1QTAogICAgIyAgICAgUmVxdWly ZXM6ICAxID49IENZR0lOVF9JU09fUFRIUkVBRF9JTVBMIAp9OwoKIyBQT1NJ WCBwdGhyZWFkIGltcGxlbWVudGF0aW9uIGhlYWRlcgojCmNkbF9vcHRpb24g Q1lHQkxEX0lTT19QVEhSRUFEX0lNUExfSEVBREVSIHsKICAgICMgRmxhdm9y OiBib29sZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhl IGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3Zh bHVlIDAgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZh dWx0IHZhbHVlOiAwIDAKfTsKCiMgPAojIExpbWl0cwojCmNkbF9jb21wb25l bnQgQ1lHUEtHX0lTT19MSU1JVFMgewogICAgIyBUaGVyZSBpcyBubyBhc3Nv Y2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgUE9TSVggcHRocmVhZCBsaW1pdHMg aW1wbGVtZW50YXRpb25zCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSVNPX1BP U0lYX0xJTUlUUyB7CiAgICAjIE5vIG9wdGlvbnMgaW1wbGVtZW50IHRoaXMg aW5mZXJmYWNlCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVk IGhlcmUuCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVl OiAwCiAgICAjIFJlcXVpcmVzOiAgMSA+PSBDWUdJTlRfSVNPX1BPU0lYX0xJ TUlUUyAKICAgICMgICAgIENZR0lOVF9JU09fUE9TSVhfTElNSVRTID09IDAK ICAgICMgICAtLT4gMQoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVz IGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIGludGVyZmFjZSBD WUdJTlRfSVNPX1BPU0lYX0xJTUlUUwogICAgIyAgICAgUmVxdWlyZXM6ICAx ID49IENZR0lOVF9JU09fUE9TSVhfTElNSVRTIAp9OwoKIyBQT1NJWCBwdGhy ZWFkIGxpbWl0cyBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9u IENZR0JMRF9JU09fUE9TSVhfTElNSVRTX0hFQURFUiB7CiAgICAjIEZsYXZv cjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRo ZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92 YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogMCAwCn07CgojIE9QRU5fTUFYIGltcGxlbWVudGF0aW9u IGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19PUEVOX01BWF9IRUFE RVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyBMSU5LX01B WCBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKIwpjZGxfb3B0aW9uIENZR0JMRF9J U09fTElOS19NQVhfSEVBREVSIHsKICAgICMgRmxhdm9yOiBib29sZGF0YQog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAgMAogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAw IDAKfTsKCiMgTkFNRV9NQVggaW1wbGVtZW50YXRpb24gaGVhZGVyCiMKY2Rs X29wdGlvbiBDWUdCTERfSVNPX05BTUVfTUFYX0hFQURFUiB7CiAgICAjIEZs YXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIFBBVEhfTUFYIGltcGxlbWVudGF0 aW9uIGhlYWRlcgojCmNkbF9vcHRpb24gQ1lHQkxEX0lTT19QQVRIX01BWF9I RUFERVIgewogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMCAwCiAgICAjIHZhbHVlX3NvdXJj ZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAgMAp9OwoKIyA8CiMg UE9TSVggdGVybWlvcwojCmNkbF9jb21wb25lbnQgQ1lHUEtHX0lTT19URVJN SU9TIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1ZS4KfTsK CiMgPgojIFBPU0lYIHRlcm1pb3MgaW1wbGVtZW50YXRpb25zCiMKY2RsX2lu dGVyZmFjZSBDWUdJTlRfSVNPX1RFUk1JT1MgewogICAgIyBJbXBsZW1lbnRl ZCBieSBDWUdQS0dfSU9fU0VSSUFMX1RFUk1JT1MsIGFjdGl2ZSwgZGlzYWJs ZWQKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4K ICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKICAg ICMgUmVxdWlyZXM6ICAxID49IENZR0lOVF9JU09fVEVSTUlPUyAKICAgICMg ICAgIENZR0lOVF9JU09fVEVSTUlPUyA9PSAwCiAgICAjICAgLS0+IDEKCiAg ICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkg dGhpcyB2YWx1ZQogICAgIyBpbnRlcmZhY2UgQ1lHSU5UX0lTT19URVJNSU9T CiAgICAjICAgICBSZXF1aXJlczogIDEgPj0gQ1lHSU5UX0lTT19URVJNSU9T IAp9OwoKIyBQT1NJWCB0ZXJtaW9zIGltcGxlbWVudGF0aW9uIGhlYWRlcgoj CmNkbF9vcHRpb24gQ1lHQkxEX0lTT19URVJNSU9TX0hFQURFUiB7CiAgICAj IEZsYXZvcjogYm9vbGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21t ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMg dXNlcl92YWx1ZSAwIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAg ICMgRGVmYXVsdCB2YWx1ZTogMCAwCn07CgojIDwKIyBCdWlsZCBvcHRpb25z CiMgUGFja2FnZSBzcGVjaWZpYyBidWlsZCBvcHRpb25zIGluY2x1ZGluZyBj b250cm9sIG92ZXIKIyBjb21waWxlciBmbGFncyB1c2VkIG9ubHkgaW4gYnVp bGRpbmcgdGhpcyBwYWNrYWdlLAojIGFuZCBkZXRhaWxzIG9mIHdoaWNoIHRl c3RzIGFyZSBidWlsdC4KIwpjZGxfY29tcG9uZW50IENZR1BLR19JU09JTkZS QV9PUFRJT05TIHsKICAgICMgVGhlcmUgaXMgbm8gYXNzb2NpYXRlZCB2YWx1 ZS4KfTsKCiMgPgojIEFkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3MKIyBUaGlz IG9wdGlvbiBtb2RpZmllcyB0aGUgc2V0IG9mIGNvbXBpbGVyIGZsYWdzIGZv cgojIGJ1aWxkaW5nIHRoZSBJU08gQyBhbmQgUE9TSVggaW5mcmFzdHJ1Y3R1 cmUgcGFja2FnZS4KIyBUaGVzZSBmbGFncyBhcmUgdXNlZCBpbiBhZGRpdGlv biB0byB0aGUgc2V0IG9mIGdsb2JhbCBmbGFncy4KIwpjZGxfb3B0aW9uIENZ R1BLR19JU09JTkZSQV9DRkxBR1NfQUREIHsKICAgICMgRmxhdm9yOiBkYXRh CiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5n IGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgIiIKICAg ICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTog IiIKfTsKCiMgU3VwcHJlc3NlZCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0 aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMg YnVpbGRpbmcgdGhlIElTTyBDIGFuZCBQT1NJWCBpbmZyYXN0cnVjdHVyZSBw YWNrYWdlLgojIFRoZXNlIGZsYWdzIGFyZSByZW1vdmVkIGZyb20gdGhlIHNl dCBvZiBnbG9iYWwgZmxhZ3MKIyBpZiBwcmVzZW50LgojCmNkbF9vcHRpb24g Q1lHUEtHX0lTT0lORlJBX0NGTEFHU19SRU1PVkUgewogICAgIyBGbGF2b3I6 IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAi IgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZh bHVlOiAiIgp9OwoKIyA8CiMgPAojIEkvTyBzdWItc3lzdGVtCiMgZG9jOiBy ZWRpcmVjdC9lY29zLWRldmljZS1kcml2ZXJzLmh0bWwKIyBUaGUgZUNvcyBz eXN0ZW0gaXMgc3VwcGxpZWQgd2l0aCBhIG51bWJlciBvZiBkaWZmZXJlbnQK IyBkZXZpY2UgZHJpdmVycy4gIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIGJh c2ljIEkvTyBzeXN0ZW0KIyBzdXBwb3J0IHdoaWNoIGlzIHRoZSBiYXNpcyBm b3IgYWxsIGRyaXZlcnMuCiMKY2RsX3BhY2thZ2UgQ1lHUEtHX0lPIHsKICAg ICMgUGFja2FnZXMgY2Fubm90IGJlIGFkZGVkIG9yIHJlbW92ZWQsIG5vciBj YW4gdGhlaXIgdmVyc2lvbiBiZSBjaGFuZ2VkLAogICAgIyBzaW1wbHkgYnkg ZWRpdGluZyB0aGVpciB2YWx1ZS4gSW5zdGVhZCB0aGUgYXBwcm9wcmlhdGUg Y29uZmlndXJhdGlvbgogICAgIyBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3Jt IHRoZXNlIGFjdGlvbnMuCgogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBt b2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGJvb2xkYXRhCiAgICAjIEN1 cnJlbnQgdmFsdWU6IDEgY3VycmVudAogICAgIyBSZXF1aXJlczogQ1lHUEtH X0VSUk9SCiAgICAjICAgICBDWUdQS0dfRVJST1IgPT0gY3VycmVudAogICAg IyAgIC0tPiAxCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJl IGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgcGFja2FnZSBDWUdQS0df SU9fU0VSSUFMCiAgICAjICAgICBBY3RpdmVJZjogQ1lHUEtHX0lPCn07Cgoj ID4KIyBEZWJ1ZyBJL08gc3ViLXN5c3RlbQojIFRoaXMgb3B0aW9uIGVuYWJs ZXMgdmVyYm9zZSBtZXNzYWdlcyB0byBiZSBkaXNwbGF5ZWQgb24gdGhlCiMg c3lzdGVtICdkaWFnJyBkZXZpY2UgZHVyaW5nIEkvTyBzeXN0ZW0gaW5pdGlh bGl6YXRpb24uCiMKY2RsX29wdGlvbiBDWUdEQkdfSU9fSU5JVCB7CiAgICAj IEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogMAp9OwoKIyBCYXNpYyBzdXBwb3J0IGZvciBmaWxlIGJh c2VkIEkvTwojIFRoaXMgb3B0aW9uIGNvbnRyb2wgc3VwcG9ydCBmb3Igc2lt cGxlIGZpbGUgSS9PIHByaW1pdGl2ZXMuIEl0IGlzIG9ubHkKIyBwcmVzZW50 IGlmIHRoZSBGSUxFSU8gcGFja2FnZSBpcyBub3QgaW5jbHVkZWQuCiMKY2Rs X2NvbXBvbmVudCBDWUdQS0dfSU9fRklMRV9TVVBQT1JUIHsKICAgICMgQWN0 aXZlSWYgY29uc3RyYWludDogIUNZR1BLR19JT19GSUxFSU8KICAgICMgICAg IENZR1BLR19JT19GSUxFSU8gKHVua25vd24pID09IDAKICAgICMgICAtLT4g MQoKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVu Y29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAg ICAjIHVzZXJfdmFsdWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAog ICAgIyBEZWZhdWx0IHZhbHVlOiAxCn07CgojID4KIyBOdW1iZXIgb2Ygb3Bl biBmaWxlcwojIFRoaXMgb3B0aW9uIGNvbnRyb2xzIHRoZSBudW1iZXIgb2Yg b3BlbiBmaWxlcy4KIwpjZGxfb3B0aW9uIENZR1BLR19JT19ORklMRSB7CiAg ICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDE2CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAj IERlZmF1bHQgdmFsdWU6IDE2Cn07CgojIDwKIyBQQ0kgY29uZmlndXJhdGlv biBsaWJyYXJ5CiMgZG9jOiByZWRpcmVjdC9lY29zLWRldmljZS1kcml2ZXJz Lmh0bWwKIyBUaGUgUENJIGNvbmZpZ3VyYXRpb24gbGlicmFyeSBwcm92aWRl cyBpbml0aWFsaXphdGlvbiBvZiBkZXZpY2VzCiMgb24gdGhlIFBDSSBidXMu IEZ1bmN0aW9ucyB0byBmaW5kIGFuZCBhY2Nlc3MgdGhlc2UgZGV2aWNlcyBh cmUKIyBhbHNvIHByb3ZpZGVkLgojCmNkbF9wYWNrYWdlIENZR1BLR19JT19Q Q0kgewogICAgIyBQYWNrYWdlcyBjYW5ub3QgYmUgYWRkZWQgb3IgcmVtb3Zl ZCwgbm9yIGNhbiB0aGVpciB2ZXJzaW9uIGJlIGNoYW5nZWQsCiAgICAjIHNp bXBseSBieSBlZGl0aW5nIHRoZWlyIHZhbHVlLiBJbnN0ZWFkIHRoZSBhcHBy b3ByaWF0ZSBjb25maWd1cmF0aW9uCiAgICAjIHNob3VsZCBiZSB1c2VkIHRv IHBlcmZvcm0gdGhlc2UgYWN0aW9ucy4KCiAgICAjIFRoaXMgdmFsdWUgY2Fu bm90IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogYm9vbGRhdGEK ICAgICMgQ3VycmVudCB2YWx1ZTogMSBjdXJyZW50Cn07CgojID4KIyBQQ0kg YnVpbGQgb3B0aW9ucwojIFBhY2thZ2Ugc3BlY2lmaWMgYnVpbGQgb3B0aW9u cyBpbmNsdWRpbmcgY29udHJvbCBvdmVyCiMgY29tcGlsZXIgZmxhZ3MgdXNl ZCBvbmx5IGluIGJ1aWxkaW5nIHRoaXMgcGFja2FnZSwKIyBhbmQgZGV0YWls cyBvZiB3aGljaCB0ZXN0cyBhcmUgYnVpbHQuCiMKY2RsX2NvbXBvbmVudCBD WUdQS0dfSU9fUENJX09QVElPTlMgewogICAgIyBUaGVyZSBpcyBubyBhc3Nv Y2lhdGVkIHZhbHVlLgp9OwoKIyA+CiMgQWRkaXRpb25hbCBjb21waWxlciBm bGFncwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGls ZXIgZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhlIFBDSSBjb25maWd1cmF0aW9u IGxpYnJhcnkuIFRoZXNlIGZsYWdzIGFyZSB1c2VkIGluIGFkZGl0aW9uCiMg dG8gdGhlIHNldCBvZiBnbG9iYWwgZmxhZ3MuCiMKY2RsX29wdGlvbiBDWUdQ S0dfSU9fUENJX0NGTEFHU19BREQgewogICAgIyBGbGF2b3I6IGRhdGEKICAg ICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu ZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAiIgogICAgIyB2 YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAiIgp9 OwoKIyBTdXBwcmVzc2VkIGNvbXBpbGVyIGZsYWdzCiMgVGhpcyBvcHRpb24g bW9kaWZpZXMgdGhlIHNldCBvZiBjb21waWxlciBmbGFncyBmb3IKIyBidWls ZGluZyB0aGUgUENJIGNvbmZpZ3VyYXRpb24gbGlicmFyeS4gVGhlc2UgZmxh Z3MgYXJlIHJlbW92ZWQgZnJvbQojIHRoZSBzZXQgb2YgZ2xvYmFsIGZsYWdz IGlmIHByZXNlbnQuCiMKY2RsX29wdGlvbiBDWUdQS0dfSU9fUENJX0NGTEFH U19SRU1PVkUgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2 YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRl IG9uZS4KICAgICMgdXNlcl92YWx1ZSAiIgogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAiIgp9OwoKIyBQQ0kgdGVz dHMKIyBUaGlzIG9wdGlvbiBzcGVjaWZpZXMgdGhlIHNldCBvZiB0ZXN0cyBm b3IgdGhlIFBDSSBjb25maWd1cmF0aW9uIGxpYnJhcnkuCiMKY2RsX29wdGlv biBDWUdQS0dfSU9fUENJX1RFU1RTIHsKICAgICMgQ2FsY3VsYXRlZCB2YWx1 ZTogICJ0ZXN0cy9wY2kxIHRlc3RzL3BjaTIiIAogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgQ3VycmVudF92YWx1ZTogdGVzdHMvcGNpMSB0ZXN0cy9wY2ky Cn07CgojIDwKIyA8CiMgPAojIFNlcmlhbCBkZXZpY2UgZHJpdmVycwojIGRv YzogcmVkaXJlY3QvZWNvcy1kZXZpY2UtZHJpdmVycy5odG1sCiMgVGhpcyBv cHRpb24gZW5hYmxlcyBkcml2ZXJzIGZvciBiYXNpYyBJL08gc2VydmljZXMg b24KIyBzZXJpYWwgZGV2aWNlcy4KIwpjZGxfcGFja2FnZSBDWUdQS0dfSU9f U0VSSUFMIHsKICAgICMgUGFja2FnZXMgY2Fubm90IGJlIGFkZGVkIG9yIHJl bW92ZWQsIG5vciBjYW4gdGhlaXIgdmVyc2lvbiBiZSBjaGFuZ2VkLAogICAg IyBzaW1wbHkgYnkgZWRpdGluZyB0aGVpciB2YWx1ZS4gSW5zdGVhZCB0aGUg YXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbgogICAgIyBzaG91bGQgYmUgdXNl ZCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnMuCgogICAgIyBBY3RpdmVJZiBj b25zdHJhaW50OiBDWUdQS0dfSU8KICAgICMgICAgIENZR1BLR19JTyA9PSBj dXJyZW50CiAgICAjICAgLS0+IDEKCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90 IGJlIG1vZGlmaWVkIGhlcmUuCiAgICAjIEZsYXZvcjogYm9vbGRhdGEKICAg ICMgQ3VycmVudCB2YWx1ZTogMSBjdXJyZW50CiAgICAjIFJlcXVpcmVzOiBD WUdQS0dfRVJST1IKICAgICMgICAgIENZR1BLR19FUlJPUiA9PSBjdXJyZW50 CiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGll cyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBwYWNrYWdlIENZ R1BLR19JT19TRVJJQUxfSTM4Nl9QQwogICAgIyAgICAgQWN0aXZlSWY6IENZ R1BLR19JT19TRVJJQUwKfTsKCiMgPgojIFN1cHBvcnQgbm9uLWJsb2NraW5n IHJlYWQgYW5kIHdyaXRlIGNhbGxzCiMgVGhpcyBvcHRpb24gZW5hYmxlcyBl eHRyYSBjb2RlIGluIHRoZSBnZW5lcmljIHNlcmlhbCBkcml2ZXIKIyB3aGlj aCBhbGxvd3MgY2xpZW50cyB0byBzd2l0Y2ggcmVhZCgpIGFuZCB3cml0ZSgp IGNhbGwKIyBzZW1hbnRpY3MgZnJvbSBibG9ja2luZyB0byBub24tYmxvY2tp bmcuCiMKY2RsX29wdGlvbiBDWUdPUFRfSU9fU0VSSUFMX1NVUFBPUlRfTk9O QkxPQ0tJTkcgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2 YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRl IG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKfTsKCiMgRHJpdmVyIHJl cXVpcmVzIGJsb2NrIHRyYW5zZmVyIGNhbGxiYWNrIGZ1bmN0aW9ucwojIFNv bWUgbG93LWxldmVsIGRyaXZlcnMgY2FuIGJlIG9wdGltaXplZCB0byB0cmFu c2ZlciBibG9ja3MKIyBvZiBkYXRhIGluc3RlYWQgb2YgYSBzaW5nbGUgY2hh cmFjdGVyIGF0IGEgdGltZS4gVGhlc2UgdXN1YWxseQojIHJlbHkgb24gYSBo YXJkd2FyZSBGSUZPIG9mIHNvbWUgc29ydC4KIwpjZGxfaW50ZXJmYWNlIENZ R0lOVF9JT19TRVJJQUxfQkxPQ0tfVFJBTlNGRVIgewogICAgIyBObyBvcHRp b25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVl IGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEK ICAgICMgQ3VycmVudF92YWx1ZTogMAp9OwoKIyBTZXJpYWwgZHJpdmVyIHN1 cHBvcnRzIGxpbmUgc3RhdHVzCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSU9f U0VSSUFMX0xJTkVfU1RBVFVTX0hXIHsKICAgICMgTm8gb3B0aW9ucyBpbXBs ZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3Qg YmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1 cnJlbnRfdmFsdWU6IDAKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGll cyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lH T1BUX0lPX1NFUklBTF9TVVBQT1JUX0xJTkVfU1RBVFVTCiAgICAjICAgICBS ZXF1aXJlczogIENZR0lOVF9JT19TRVJJQUxfTElORV9TVEFUVVNfSFcgPiAw IAogICAgIyBvcHRpb24gQ1lHT1BUX0lPX1NFUklBTF9TVVBQT1JUX0xJTkVf U1RBVFVTCiAgICAjICAgICBEZWZhdWx0VmFsdWU6ICAwICE9IENZR0lOVF9J T19TRVJJQUxfTElORV9TVEFUVVNfSFcgCn07CgojIFN1cHBvcnQgbGluZSBz dGF0dXMgY2FsbGJhY2tzCiMgVGhpcyBvcHRpb24gaW5kaWNhdGVzIHRoYXQg aWYgdGhlIHNlcmlhbCBkcml2ZXIgc3VwcG9ydHMgaXQsCiMgc2VyaWFsIGxp bmUgc3RhdHVzIGFuZCBtb2RlbSBzdGF0dXMgaW5mb3JtYXRpb24gc2hvdWxk IGJlCiMgcHJvcGFnYXRlZCB0byBoaWdoZXIgbGF5ZXJzIHZpYSBjYWxsYmFj a3MuCiMKY2RsX29wdGlvbiBDWUdPUFRfSU9fU0VSSUFMX1NVUFBPUlRfTElO RV9TVEFUVVMgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2 YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRl IG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICAwICE9IENZR0lOVF9JT19T RVJJQUxfTElORV9TVEFUVVNfSFcgCiAgICAjICAgICBDWUdJTlRfSU9fU0VS SUFMX0xJTkVfU1RBVFVTX0hXID09IDAKICAgICMgICAtLT4gMAogICAgIyBS ZXF1aXJlczogIENZR0lOVF9JT19TRVJJQUxfTElORV9TVEFUVVNfSFcgPiAw IAogICAgIyAgICAgQ1lHSU5UX0lPX1NFUklBTF9MSU5FX1NUQVRVU19IVyA9 PSAwCiAgICAjICAgLS0+IDAKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVy dGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24g Q1lHT1BUX0lPX1NFUklBTF9GTE9XX0NPTlRST0xfSFcKICAgICMgICAgIFJl cXVpcmVzOiBDWUdPUFRfSU9fU0VSSUFMX1NVUFBPUlRfTElORV9TVEFUVVMK ICAgICMgb3B0aW9uIENZR09QVF9JT19TRVJJQUxfRkxPV19DT05UUk9MX0hX CiAgICAjICAgICBEZWZhdWx0VmFsdWU6ICBDWUdJTlRfSU9fU0VSSUFMX0ZM T1dfQ09OVFJPTF9IVyA+IDAgPyAgQ1lHT1BUX0lPX1NFUklBTF9TVVBQT1JU X0xJTkVfU1RBVFVTIDogMCAKfTsKCiMgRmxvdyBjb250cm9sCiMgVGhpcyBj b21wb25lbnQgY29udGFpbnMgb3B0aW9ucyByZWxhdGVkIHRvIGZsb3cgY29u dHJvbC4KIwpjZGxfY29tcG9uZW50IENZR1BLR19JT19TRVJJQUxfRkxPV19D T05UUk9MIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVm YXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCiAgICAjIFJlcXVpcmVzOiAo Q1lHT1BUX0lPX1NFUklBTF9GTE9XX0NPTlRST0xfU09GVFdBUkUgfHwgQ1lH T1BUX0lPX1NFUklBTF9GTE9XX0NPTlRST0xfSFcpCiAgICAjICAgICBDWUdP UFRfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9TT0ZUV0FSRSA9PSAwCiAgICAj ICAgICBDWUdPUFRfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9IVyA9PSAwCiAg ICAjICAgLS0+IDAKfTsKCiMgPgojIFNvZnR3YXJlIGZsb3cgY29udHJvbAoj IFRoaXMgY29tcG9uZW50IGVuYWJsZXMgc3VwcG9ydCBvZiBzb2Z0d2FyZSBm bG93IGNvbnRyb2wuCiMKY2RsX2NvbXBvbmVudCBDWUdPUFRfSU9fU0VSSUFM X0ZMT1dfQ09OVFJPTF9TT0ZUV0FSRSB7CiAgICAjIFRoaXMgb3B0aW9uIGlz IG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFM X0ZMT1dfQ09OVFJPTCBpcyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBib29s CiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5n IGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAx CgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVk IGJ5IHRoaXMgdmFsdWUKICAgICMgY29tcG9uZW50IENZR1BLR19JT19TRVJJ QUxfRkxPV19DT05UUk9MCiAgICAjICAgICBSZXF1aXJlczogKENZR09QVF9J T19TRVJJQUxfRkxPV19DT05UUk9MX1NPRlRXQVJFIHx8IENZR09QVF9JT19T RVJJQUxfRkxPV19DT05UUk9MX0hXKQp9OwoKIyA+CiMgU3RhcnQgY2hhcmFj dGVyCiMgVGhpcyBvcHRpb24gc3BlY2lmaWVzIHRoZSBhc2NpaSBjaGFyYWN0 ZXIgdXNlZCB0bwojIGluZGljYXRlIHRoYXQgdHJhbnNtaXNzaW9uIHNob3Vs ZCBzdGFydC4KIwpjZGxfb3B0aW9uIENZR0RBVF9JT19TRVJJQUxfRkxPV19D T05UUk9MX1hPTl9DSEFSIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFj dGl2ZQogICAgIyBUaGUgcGFyZW50IENZR09QVF9JT19TRVJJQUxfRkxPV19D T05UUk9MX1NPRlRXQVJFIGlzIG5vdCBhY3RpdmUKCiAgICAjIEZsYXZvcjog ZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxv d2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDE3 CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFs dWU6IDE3CiAgICAjIExlZ2FsIHZhbHVlczogMCB0byAyNTUKfTsKCiMgU3Rv cCBjaGFyYWN0ZXIKIyBUaGlzIG9wdGlvbiBzcGVjaWZpZXMgdGhlIGFzY2lp IGNoYXJhY3RlciB1c2VkIHRvCiMgaW5kaWNhdGUgdGhhdCB0cmFuc21pc3Np b24gc2hvdWxkIHN0b3AuCiMKY2RsX29wdGlvbiBDWUdEQVRfSU9fU0VSSUFM X0ZMT1dfQ09OVFJPTF9YT0ZGX0NIQVIgewogICAgIyBUaGlzIG9wdGlvbiBp cyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHT1BUX0lPX1NFUklB TF9GTE9XX0NPTlRST0xfU09GVFdBUkUgaXMgbm90IGFjdGl2ZQoKICAgICMg Rmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgMTkKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogMTkKICAgICMgTGVnYWwgdmFsdWVzOiAwIHRvIDI1NQp9 OwoKIyA8CiMgSGFyZHdhcmUgZmxvdyBjb250cm9sCiMgSWYgdGhlIGhhcmR3 YXJlIHN1cHBvcnRzIGl0LCB0aGlzIG9wdGlvbiBhbGxvd3MgaGFyZHdhcmUK IyBmbG93IGNvbnRyb2wgdG8gYmUgZW5hYmxlZC4gVGhpcyBtYXkgYmUgaW4g dGhlIGZvcm0gb2YKIyBlaXRoZXIgb3IgYm90aCBvZiBSVFMvQ1RTLCBvciBE U1IvRFRSIGZsb3cgY29udHJvbC4KIwpjZGxfb3B0aW9uIENZR09QVF9JT19T RVJJQUxfRkxPV19DT05UUk9MX0hXIHsKICAgICMgVGhpcyBvcHRpb24gaXMg bm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19JT19TRVJJQUxf RkxPV19DT05UUk9MIGlzIGRpc2FibGVkCiAgICAjIEFjdGl2ZUlmIGNvbnN0 cmFpbnQ6ICBDWUdJTlRfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9IVyA+IDAg CiAgICAjICAgICBDWUdJTlRfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9IVyA9 PSAwCiAgICAjICAgLS0+IDAKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBO byB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRv IHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVf c291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIENZR0lOVF9J T19TRVJJQUxfRkxPV19DT05UUk9MX0hXID4gMCA/ICBDWUdPUFRfSU9fU0VS SUFMX1NVUFBPUlRfTElORV9TVEFUVVMgOiAwIAogICAgIyAgICAgQ1lHSU5U X0lPX1NFUklBTF9GTE9XX0NPTlRST0xfSFcgPT0gMAogICAgIyAgICAgQ1lH T1BUX0lPX1NFUklBTF9TVVBQT1JUX0xJTkVfU1RBVFVTID09IDAKICAgICMg ICAtLT4gMAogICAgIyBSZXF1aXJlczogIENZR0lOVF9JT19TRVJJQUxfRkxP V19DT05UUk9MX0hXID4gMCAKICAgICMgICAgIENZR0lOVF9JT19TRVJJQUxf RkxPV19DT05UUk9MX0hXID09IDAKICAgICMgICAtLT4gMAogICAgIyBSZXF1 aXJlczogQ1lHT1BUX0lPX1NFUklBTF9TVVBQT1JUX0xJTkVfU1RBVFVTCiAg ICAjICAgICBDWUdPUFRfSU9fU0VSSUFMX1NVUFBPUlRfTElORV9TVEFUVVMg PT0gMAogICAgIyAgIC0tPiAwCgogICAgIyBUaGUgZm9sbG93aW5nIHByb3Bl cnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgY29tcG9u ZW50IENZR1BLR19JT19TRVJJQUxfRkxPV19DT05UUk9MCiAgICAjICAgICBS ZXF1aXJlczogKENZR09QVF9JT19TRVJJQUxfRkxPV19DT05UUk9MX1NPRlRX QVJFIHx8IENZR09QVF9JT19TRVJJQUxfRkxPV19DT05UUk9MX0hXKQp9OwoK IyBTZXJpYWwgaC93IHN1cHBvcnRzIGhhcmR3YXJlIGZsb3cgY29udHJvbAoj CmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lPX1NFUklBTF9GTE9XX0NPTlRST0xf SFcgewogICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFj ZQogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBw YXJlbnQgQ1lHUEtHX0lPX1NFUklBTF9GTE9XX0NPTlRST0wgaXMgZGlzYWJs ZWQKCiAgICAjIFRoaXMgdmFsdWUgY2Fubm90IGJlIG1vZGlmaWVkIGhlcmUu CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAwCgog ICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5 IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR09QVF9JT19TRVJJQUxfRkxP V19DT05UUk9MX0hXCiAgICAjICAgICBBY3RpdmVJZjogIENZR0lOVF9JT19T RVJJQUxfRkxPV19DT05UUk9MX0hXID4gMCAKICAgICMgb3B0aW9uIENZR09Q VF9JT19TRVJJQUxfRkxPV19DT05UUk9MX0hXCiAgICAjICAgICBSZXF1aXJl czogIENZR0lOVF9JT19TRVJJQUxfRkxPV19DT05UUk9MX0hXID4gMCAKICAg ICMgb3B0aW9uIENZR09QVF9JT19TRVJJQUxfRkxPV19DT05UUk9MX0hXCiAg ICAjICAgICBEZWZhdWx0VmFsdWU6ICBDWUdJTlRfSU9fU0VSSUFMX0ZMT1df Q09OVFJPTF9IVyA+IDAgPyAgQ1lHT1BUX0lPX1NFUklBTF9TVVBQT1JUX0xJ TkVfU1RBVFVTIDogMCAKfTsKCiMgRGVmYXVsdCBmbG93IGNvbnRyb2wgbWV0 aG9kCiMgVGhpcyBvcHRpb24gYWxsb3dzIGEgZGVmYXVsdCBmbG93IGNvbnRy b2wgbWV0aG9kCiMgdG8gYmUgZGVmaW5lZC4gQ29tYmluYXRpb25zIG9mIGZs b3cgY29udHJvbCBtZXRob2RzCiMgbWF5IGFsc28gYmUgc2V0LCBidXQgdGhp cyBpcyBvbmx5IHBvc3NpYmxlIGJ5CiMgdXNpbmcgdGhlIGN5Z19pb19zZXRf Y29uZmlnKCkgQVBJIGluIHNvdXJjZSBjb2RlLgojCmNkbF9vcHRpb24gQ1lH REFUX0lPX1NFUklBTF9GTE9XX0NPTlRST0xfREVGQVVMVCB7CiAgICAjIFRo aXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQ S0dfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTCBpcyBkaXNhYmxlZAoKICAgICMg Rmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgTk9ORQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiBOT05FCiAgICAjIExlZ2FsIHZhbHVlczogICJOT05F IiAiWE9OWE9GRiIgIlJUU0NUUyIgIkRTUkRUUiIgCn07CgojIFJ4IGZsb3cg Y29udHJvbCBsb3cgd2F0ZXIgbWFyawojIFRoaXMgc2V0cyB0aGUgd2F0ZXIg bWFyayB1c2VkIGZvciBkZXRlcm1pbmluZwojIHdoZW4gdG8gZGlzYWJsZSBm bG93IGNvbnRyb2wsIGV4cHJlc3NlZAojIGFzIGEgcGVyY2VudGFnZSBvZiB0 aGUgYnVmZmVyIHNpemUuIFdoZW4gdGhlCiMgcmVjZWl2ZSBidWZmZXIgc2l6 ZSBpcyBsb3dlciB0aGFuIHRoaXMgcGVyY2VudGFnZSwKIyBpZiB0aGUgdHJh bnNtaXR0ZXIgaGFkIHByZXZpb3VzbHkgYmVlbiB0aHJvdHRsZWQsIGl0CiMg d2lsbCBub3cgYmUgaW5mb3JtZWQgaXQgY2FuIHJlc3RhcnQuCiMKY2RsX29w dGlvbiBDWUdOVU1fSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9MT1dfV0FURVJf UEVSQ0VOVCB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAg ICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTCBp cyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMzMKICAgICMgdmFsdWVfc291cmNl IGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMzMKICAgICMgTGVnYWwg dmFsdWVzOiAxIHRvIDEwMAoKICAgICMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0 aWVzIGFyZSBhZmZlY3RlZCBieSB0aGlzIHZhbHVlCiAgICAjIG9wdGlvbiBD WUdOVU1fSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9ISUdIX1dBVEVSX1BFUkNF TlQKICAgICMgICAgIFJlcXVpcmVzOiAgQ1lHTlVNX0lPX1NFUklBTF9GTE9X X0NPTlRST0xfSElHSF9XQVRFUl9QRVJDRU5UID49ICBDWUdOVU1fSU9fU0VS SUFMX0ZMT1dfQ09OVFJPTF9MT1dfV0FURVJfUEVSQ0VOVCAKfTsKCiMgUngg ZmxvdyBjb250cm9sIGhpZ2ggd2F0ZXIgbWFyawojIFRoaXMgc2V0cyB0aGUg d2F0ZXIgbWFyayB1c2VkIGZvciBkZXRlcm1pbmluZwojIHdoZW4gdG8gZW5h YmxlIGZsb3cgY29udHJvbCwgZXhwcmVzc2VkCiMgYXMgYSBwZXJjZW50YWdl IG9mIHRoZSBidWZmZXIgc2l6ZS4gV2hlbiB0aGUKIyByZWNlaXZlIGJ1ZmZl ciBzaXplIGV4Y2VlZHMgdGhpcyBwZXJjZW50YWdlLAojIHNpZ25hbHMgYXJl IHNlbnQgdG8gdGhlIHRyYW5zbWl0dGVyIHRvIHRlbGwgaXQKIyB0byB0aHJv dHRsZSB0cmFubWlzc2lvbi4KIwpjZGxfb3B0aW9uIENZR05VTV9JT19TRVJJ QUxfRkxPV19DT05UUk9MX0hJR0hfV0FURVJfUEVSQ0VOVCB7CiAgICAjIFRo aXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQ S0dfSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTCBpcyBkaXNhYmxlZAoKICAgICMg Rmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0 aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJf dmFsdWUgNjYKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogNjYKICAgICMgTGVnYWwgdmFsdWVzOiAxIHRvIDEwMAog ICAgIyBSZXF1aXJlczogIENZR05VTV9JT19TRVJJQUxfRkxPV19DT05UUk9M X0hJR0hfV0FURVJfUEVSQ0VOVCA+PSAgQ1lHTlVNX0lPX1NFUklBTF9GTE9X X0NPTlRST0xfTE9XX1dBVEVSX1BFUkNFTlQgCiAgICAjICAgICBDWUdOVU1f SU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9ISUdIX1dBVEVSX1BFUkNFTlQgPT0g MAogICAgIyAgICAgQ1lHTlVNX0lPX1NFUklBTF9GTE9XX0NPTlRST0xfTE9X X1dBVEVSX1BFUkNFTlQgPT0gMAogICAgIyAgIC0tPiAxCgogICAgIyBUaGUg Zm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVkIGJ5IHRoaXMgdmFs dWUKICAgICMgb3B0aW9uIENZR05VTV9JT19TRVJJQUxfRkxPV19DT05UUk9M X0hJR0hfV0FURVJfUEVSQ0VOVAogICAgIyAgICAgUmVxdWlyZXM6ICBDWUdO VU1fSU9fU0VSSUFMX0ZMT1dfQ09OVFJPTF9ISUdIX1dBVEVSX1BFUkNFTlQg Pj0gIENZR05VTV9JT19TRVJJQUxfRkxPV19DT05UUk9MX0xPV19XQVRFUl9Q RVJDRU5UIAp9OwoKIyA8CiMgVFRZLW1vZGUgc2VyaWFsIGRldmljZSBkcml2 ZXJzCiMgVGhpcyBvcHRpb24gZW5hYmxlcyBhIHNpbXBsZSB0ZXJtaW5hbC1s aWtlIGRldmljZSBkcml2ZXIgCiMgdGhhdCBjYW4gYmUgdXNlZCBmb3Igc2Vy aWFsIGRldmljZXMgdGhhdCBpbnRlcmFjdCB3aXRoIGh1bWFucywKIyBzdWNo IGFzIGEgc3lzdGVtIGNvbnNvbGUuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0df SU9fU0VSSUFMX1RUWSB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1 c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHBy b3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291 cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyA+CiMg SEFML2RpYWcgc2VyaWFsIGRldmljZSBkcml2ZXIKIyBUaGlzIG9wdGlvbiBl bmFibGVzIHRoZSB1c2Ugb2YgdGhlIEhBTCBkaWFnbm9zdGljIGNoYW5uZWwK IyB2aWEgdGhlIHN0YW5kYXJkIEkvTyBkcml2ZXJzLgojCmNkbF9jb21wb25l bnQgQ1lHUEtHX0lPX1NFUklBTF9IQUxESUFHIHsKICAgICMgRmxhdm9yOiBi b29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAxCn07CgojIENvbnNvbGUgZGV2aWNlIG5hbWUKIyBUaGlzIG9wdGlvbiBz ZWxlY3RzIHRoZSBUVFkgZGV2aWNlIHRvIHVzZSBmb3IgdGhlIGNvbnNvbGUu CiMKY2RsX29wdGlvbiBDWUdEQVRfSU9fU0VSSUFMX1RUWV9DT05TT0xFIHsK ICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29t bWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAj IHVzZXJfdmFsdWUgIlwiL2Rldi90dHlkaWFnXCIiCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICJcIi9kZXYvdHR5 ZGlhZ1wiIgp9OwoKIyBUVFkgbW9kZSBIQUwvZGlhZyBjaGFubmVsCiMgVGhp cyBvcHRpb24gY2F1c2VzICcvZGV2L3R0eWRpYWcnIHRvIGJlIGluY2x1ZGVk IGluIHRoZSBzdGFuZGFyZAojIGRyaXZlcnMuCiMKY2RsX2NvbXBvbmVudCBD WUdQS0dfSU9fU0VSSUFMX1RUWV9UVFlESUFHIHsKICAgICMgRmxhdm9yOiBi b29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93 aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMQog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAxCn07CgojIFRUWSBtb2RlIGNoYW5uZWwgIzAKIyBUaGlzIG9wdGlvbiBj YXVzZXMgJy9kZXYvdHR5MCcgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHN0YW5k YXJkIAojIGRyaXZlcnMuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfSU9fU0VS SUFMX1RUWV9UVFkwIHsKICAgICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVz ZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJv dmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3Vy Y2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCn07CgojID4KIyBU VFkgbW9kZSBjaGFubmVsICMwIGRldmljZQojIFRoaXMgb3B0aW9uIHNlbGVj dHMgdGhlIHBoeXNpY2FsIGRldmljZSB0byB1c2UgZm9yIAojICcvZGV2L3R0 eTAnLgojCmNkbF9vcHRpb24gQ1lHREFUX0lPX1NFUklBTF9UVFlfVFRZMF9E RVYgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRo ZSBwYXJlbnQgQ1lHUEtHX0lPX1NFUklBTF9UVFlfVFRZMCBpcyBkaXNhYmxl ZAoKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVu Y29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAg ICAjIHVzZXJfdmFsdWUgIlwiL2Rldi9zZXIwXCIiCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICJcIi9kZXYvc2Vy MFwiIgp9OwoKIyA8CiMgVFRZIG1vZGUgY2hhbm5lbCAjMQojIFRoaXMgb3B0 aW9uIGNhdXNlcyAnL2Rldi90dHkxJyB0byBiZSBpbmNsdWRlZCBpbiB0aGUg c3RhbmRhcmQgCiMgZHJpdmVycy4KIwpjZGxfY29tcG9uZW50IENZR1BLR19J T19TRVJJQUxfVFRZX1RUWTEgewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMg Tm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0 byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVl X3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKfTsKCiMg PgojIFRUWSBtb2RlIGNoYW5uZWwgIzEgZGV2aWNlCiMgVGhpcyBvcHRpb24g c2VsZWN0cyB0aGUgcGh5c2ljYWwgZGV2aWNlIHRvIHVzZSBmb3IgCiMgJy9k ZXYvdHR5MScuCiMKY2RsX29wdGlvbiBDWUdEQVRfSU9fU0VSSUFMX1RUWV9U VFkxX0RFViB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAg ICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX1RUWV9UVFkxIGlzIGRp c2FibGVkCgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1 ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9u ZS4KICAgICMgdXNlcl92YWx1ZSAiXCIvZGV2L3NlcjFcIiIKICAgICMgdmFs dWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIlwiL2Rl di9zZXIxXCIiCn07CgojIDwKIyBUVFkgbW9kZSBjaGFubmVsICMyCiMgVGhp cyBvcHRpb24gY2F1c2VzICcvZGV2L3R0eTInIHRvIGJlIGluY2x1ZGVkIGlu IHRoZSBzdGFuZGFyZCAKIyBkcml2ZXJzLgojCmNkbF9jb21wb25lbnQgQ1lH UEtHX0lPX1NFUklBTF9UVFlfVFRZMiB7CiAgICAjIEZsYXZvcjogYm9vbAog ICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs aW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMg dmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAp9 OwoKIyA+CiMgVFRZIG1vZGUgY2hhbm5lbCAjMiBkZXZpY2UKIyBUaGlzIG9w dGlvbiBzZWxlY3RzIHRoZSBwaHlzaWNhbCBkZXZpY2UgdG8gdXNlIGZvciAK IyAnL2Rldi90dHkyJy4KIwpjZGxfb3B0aW9uIENZR0RBVF9JT19TRVJJQUxf VFRZX1RUWTJfREVWIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2 ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19JT19TRVJJQUxfVFRZX1RUWTIg aXMgZGlzYWJsZWQKCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2Vy IHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3Zp ZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICJcIi9kZXYvc2VyMlwiIgogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAi XCIvZGV2L3NlcjJcIiIKfTsKCiMgPAojIDwKIyBUZXJtaW9zIGNvbXBhdGli bGUgVFRZIGRyaXZlcnMKIyBUaGlzIG9wdGlvbiBlbmFibGVzIHRlcm1pbmFs IGRyaXZlcnMgY29tcGF0aWJsZSB3aXRoCiMgUE9TSVggdGVybWlvcy4KIwpj ZGxfY29tcG9uZW50IENZR1BLR19JT19TRVJJQUxfVEVSTUlPUyB7CiAgICAj IEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQg dGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2Vy X3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVm YXVsdCB2YWx1ZTogIDAgIT0gQ1lHUEtHX0lTT0lORlJBICYmIDAgIT0gQ1lH UEtHX0lPX0ZJTEVJTyAmJiAgMCAhPSBDWUdJTlRfSVNPX0VSUk5PX0NPREVT ICYmICAwICE9IENZR0lOVF9JU09fRVJSTk8gCiAgICAjICAgICBDWUdQS0df SVNPSU5GUkEgPT0gY3VycmVudAogICAgIyAgICAgQ1lHUEtHX0lPX0ZJTEVJ TyAodW5rbm93bikgPT0gMAogICAgIyAgICAgQ1lHSU5UX0lTT19FUlJOT19D T0RFUyA9PSAxCiAgICAjICAgICBDWUdJTlRfSVNPX0VSUk5PID09IDEKICAg ICMgICAtLT4gMAogICAgIyBSZXF1aXJlczogQ1lHUEtHX0lTT0lORlJBCiAg ICAjICAgICBDWUdQS0dfSVNPSU5GUkEgPT0gY3VycmVudAogICAgIyAgIC0t PiAxCiAgICAjIFJlcXVpcmVzOiBDWUdQS0dfSU9fRklMRUlPCiAgICAjICAg ICBDWUdQS0dfSU9fRklMRUlPICh1bmtub3duKSA9PSAwCiAgICAjICAgLS0+ IDAKICAgICMgUmVxdWlyZXM6IENZR0lOVF9JU09fRVJSTk9fQ09ERVMKICAg ICMgICAgIENZR0lOVF9JU09fRVJSTk9fQ09ERVMgPT0gMQogICAgIyAgIC0t PiAxCiAgICAjIFJlcXVpcmVzOiBDWUdJTlRfSVNPX0VSUk5PCiAgICAjICAg ICBDWUdJTlRfSVNPX0VSUk5PID09IDEKICAgICMgICAtLT4gMQogICAgIyBS ZXF1aXJlczogQ1lHSU5UX0lTT19NQUxMT0MKICAgICMgICAgIENZR0lOVF9J U09fTUFMTE9DID09IDAKICAgICMgICAtLT4gMAp9OwoKIyA+CiMgVGVybWlv cyBUVFkgY2hhbm5lbCAjMAojIFRoaXMgb3B0aW9uIGNhdXNlcyAnL2Rldi90 ZXJtaW9zMCcgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHN0YW5kYXJkIAojIGRy aXZlcnMuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfSU9fU0VSSUFMX1RFUk1J T1NfVEVSTUlPUzAgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZl CiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lPX1NFUklBTF9URVJNSU9TIGlz IGRpc2FibGVkCgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2 YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRl IG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAKfTsKCiMgPgojIFRlcm1p b3MgVFRZIGNoYW5uZWwgIzAgZGV2aWNlCiMgVGhpcyBvcHRpb24gc2VsZWN0 cyB0aGUgcGh5c2ljYWwgZGV2aWNlIHRvIHVzZSBmb3IgCiMgJy9kZXYvdGVy bWlvczAnLgojCmNkbF9vcHRpb24gQ1lHREFUX0lPX1NFUklBTF9URVJNSU9T X1RFUk1JT1MwX0RFViB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3Rp dmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX1RFUk1JT1Nf VEVSTUlPUzAgaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BL R19JT19TRVJJQUxfVEVSTUlPU19URVJNSU9TMCBpcyBkaXNhYmxlZAoKICAg ICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgIlwiL2Rldi9zZXIwXCIiCiAgICAjIHZhbHVlX3NvdXJjZSBk ZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICJcIi9kZXYvc2VyMFwiIgp9 OwoKIyA8CiMgVGVybWlvcyBUVFkgY2hhbm5lbCAjMQojIFRoaXMgb3B0aW9u IGNhdXNlcyAnL2Rldi90ZXJtaW9zMScgdG8gYmUgaW5jbHVkZWQgaW4gdGhl IHN0YW5kYXJkIAojIGRyaXZlcnMuCiMKY2RsX2NvbXBvbmVudCBDWUdQS0df SU9fU0VSSUFMX1RFUk1JT1NfVEVSTUlPUzEgewogICAgIyBUaGlzIG9wdGlv biBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lPX1NF UklBTF9URVJNSU9TIGlzIGRpc2FibGVkCgogICAgIyBGbGF2b3I6IGJvb2wK ICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAwCiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDAK fTsKCiMgPgojIFRlcm1pb3MgVFRZIGNoYW5uZWwgIzEgZGV2aWNlCiMgVGhp cyBvcHRpb24gc2VsZWN0cyB0aGUgcGh5c2ljYWwgZGV2aWNlIHRvIHVzZSBm b3IgCiMgJy9kZXYvdGVybWlvczEnLgojCmNkbF9vcHRpb24gQ1lHREFUX0lP X1NFUklBTF9URVJNSU9TX1RFUk1JT1MxX0RFViB7CiAgICAjIFRoaXMgb3B0 aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9f U0VSSUFMX1RFUk1JT1NfVEVSTUlPUzEgaXMgbm90IGFjdGl2ZQogICAgIyBU aGUgcGFyZW50IENZR1BLR19JT19TRVJJQUxfVEVSTUlPU19URVJNSU9TMSBp cyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIg dmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlk ZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgIlwiL2Rldi9zZXIxXCIiCiAgICAj IHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6ICJc Ii9kZXYvc2VyMVwiIgp9OwoKIyA8CiMgVGVybWlvcyBUVFkgY2hhbm5lbCAj MgojIFRoaXMgb3B0aW9uIGNhdXNlcyAnL2Rldi90ZXJtaW9zMicgdG8gYmUg aW5jbHVkZWQgaW4gdGhlIHN0YW5kYXJkIAojIGRyaXZlcnMuCiMKY2RsX2Nv bXBvbmVudCBDWUdQS0dfSU9fU0VSSUFMX1RFUk1JT1NfVEVSTUlPUzIgewog ICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJl bnQgQ1lHUEtHX0lPX1NFUklBTF9URVJNSU9TIGlzIGRpc2FibGVkCgogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50 IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNl cl92YWx1ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6IDAKfTsKCiMgPgojIFRlcm1pb3MgVFRZIGNoYW5uZWwg IzIgZGV2aWNlCiMgVGhpcyBvcHRpb24gc2VsZWN0cyB0aGUgcGh5c2ljYWwg ZGV2aWNlIHRvIHVzZSBmb3IgCiMgJy9kZXYvdGVybWlvczInLgojCmNkbF9v cHRpb24gQ1lHREFUX0lPX1NFUklBTF9URVJNSU9TX1RFUk1JT1MyX0RFViB7 CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBh cmVudCBDWUdQS0dfSU9fU0VSSUFMX1RFUk1JT1NfVEVSTUlPUzIgaXMgbm90 IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19JT19TRVJJQUxfVEVS TUlPU19URVJNSU9TMiBpcyBkaXNhYmxlZAoKICAgICMgRmxhdm9yOiBkYXRh CiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5n IGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgIlwiL2Rl di9zZXIyXCIiCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERl ZmF1bHQgdmFsdWU6ICJcIi9kZXYvc2VyMlwiIgp9OwoKIyA8CiMgU3VwcG9y dCBzaWduYWxzCiMgVGhpcyBvcHRpb24gc2VsZWN0cyB3aGV0aGVyIHRob3Nl IHBhcnRzIG9mIHRoZSB0ZXJtaW9zCiMgaW50ZXJmYWNlIGludm9sdmluZyBz aWduYWxzIGlzIHN1cHBvcnRlZC4gVGhpcyBpbmNsdWRlcwojIEJSS0lOVCBt b2RlLCB0aGUgSU5UUiBhbmQgUVVJVCBjaGFyYWN0ZXJzLCBhbmQgd2hldGhl cgojIFNJR0hVUCBpcyBzZW50IG9uIHRlcm1pbmFsIGNsb3NlLgojCmNkbF9v cHRpb24gQ1lHU0VNX0lPX1NFUklBTF9URVJNSU9TX1VTRV9TSUdOQUxTIHsK ICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFy ZW50IENZR1BLR19JT19TRVJJQUxfVEVSTUlPUyBpcyBkaXNhYmxlZAoKICAg ICMgRmxhdm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVu dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVz ZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAgQ1lHSU5UX0lTT19TSUdOQUxfTlVNQkVSUyAhPSAw ICYmICBDWUdJTlRfSVNPX1NJR05BTF9JTVBMICE9IDAgCiAgICAjICAgICBD WUdJTlRfSVNPX1NJR05BTF9OVU1CRVJTID09IDAKICAgICMgICAgIENZR0lO VF9JU09fU0lHTkFMX0lNUEwgPT0gMAogICAgIyAgIC0tPiAwCiAgICAjIFJl cXVpcmVzOiBDWUdJTlRfSVNPX1NJR05BTF9OVU1CRVJTCiAgICAjICAgICBD WUdJTlRfSVNPX1NJR05BTF9OVU1CRVJTID09IDAKICAgICMgICAtLT4gMAog ICAgIyBSZXF1aXJlczogQ1lHSU5UX0lTT19TSUdOQUxfSU1QTAogICAgIyAg ICAgQ1lHSU5UX0lTT19TSUdOQUxfSU1QTCA9PSAwCiAgICAjICAgLS0+IDAK fTsKCiMgPAojIEhhcmR3YXJlIHNlcmlhbCBkZXZpY2UgZHJpdmVycwojIFRo aXMgb3B0aW9uIGVuYWJsZXMgdGhlIGhhcmR3YXJlIGRldmljZSBkcml2ZXJz CiMgZm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtLgojCmNkbF9jb21wb25lbnQg Q1lHUEtHX0lPX1NFUklBTF9ERVZJQ0VTIHsKICAgICMgRmxhdm9yOiBib29s CiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5n IGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAg IyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAw CgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVjdGVk IGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR1BLR19JT19TRVJJQUxf VEVTVFMKICAgICMgICAgIENhbGN1bGF0ZWQ6ICBDWUdQS0dfSU9fU0VSSUFM X0RFVklDRVMgPyAidGVzdHMvc2VyaWFsMSB0ZXN0cy9zZXJpYWwyIHRlc3Rz L3NlcmlhbDMgdGVzdHMvc2VyaWFsNCB0ZXN0cy9zZXJpYWw1IHRlc3RzL3R0 eTEgdGVzdHMvdHR5MiB0ZXN0cy9mbG93MSB0ZXN0cy9mbG93MiIgOiAiIiAK fTsKCiMgPgojIFBDIHNlcmlhbCBkZXZpY2UgZHJpdmVycwojIGRvYzogcmVk aXJlY3QvZWNvcy1kZXZpY2UtZHJpdmVycy5odG1sCiMgVGhpcyBvcHRpb24g ZW5hYmxlcyB0aGUgc2VyaWFsIGRldmljZSBkcml2ZXJzIGZvciB0aGUKIyBQ Qy4KIwpjZGxfcGFja2FnZSBDWUdQS0dfSU9fU0VSSUFMX0kzODZfUEMgewog ICAgIyBQYWNrYWdlcyBjYW5ub3QgYmUgYWRkZWQgb3IgcmVtb3ZlZCwgbm9y IGNhbiB0aGVpciB2ZXJzaW9uIGJlIGNoYW5nZWQsCiAgICAjIHNpbXBseSBi eSBlZGl0aW5nIHRoZWlyIHZhbHVlLiBJbnN0ZWFkIHRoZSBhcHByb3ByaWF0 ZSBjb25maWd1cmF0aW9uCiAgICAjIHNob3VsZCBiZSB1c2VkIHRvIHBlcmZv cm0gdGhlc2UgYWN0aW9ucy4KCiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBh Y3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX0RFVklD RVMgaXMgZGlzYWJsZWQKICAgICMgQWN0aXZlSWYgY29uc3RyYWludDogQ1lH UEtHX0lPX1NFUklBTAogICAgIyAgICAgQ1lHUEtHX0lPX1NFUklBTCA9PSBj dXJyZW50CiAgICAjICAgLS0+IDEKICAgICMgQWN0aXZlSWYgY29uc3RyYWlu dDogQ1lHUEtHX0hBTF9JMzg2X1BDCiAgICAjICAgICBDWUdQS0dfSEFMX0kz ODZfUEMgPT0gY3VycmVudAogICAgIyAgIC0tPiAxCgogICAgIyBUaGlzIHZh bHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGJv b2xkYXRhCiAgICAjIEN1cnJlbnQgdmFsdWU6IDEgY3VycmVudAogICAgIyBS ZXF1aXJlczogQ1lHUEtHX0VSUk9SCiAgICAjICAgICBDWUdQS0dfRVJST1Ig PT0gY3VycmVudAogICAgIyAgIC0tPiAxCn07CgojID4KIyBQQyBzZXJpYWwg cG9ydCAwIGRyaXZlcgojIFRoaXMgb3B0aW9uIGluY2x1ZGVzIHRoZSBzZXJp YWwgZGV2aWNlIGRyaXZlciBmb3IgcG9ydCAwIG9uIHRoZSAKIyBQQy4KIwpj ZGxfY29tcG9uZW50IENZR1BLR19JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUww IHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUg cGFyZW50IENZR1BLR19JT19TRVJJQUxfSTM4Nl9QQyBpcyBub3QgYWN0aXZl CgogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6IDEKCiAgICAjIFRoZSBmb2xsb3dpbmcgcHJv cGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQogICAgIyBjb21w b25lbnQgQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDX1RFU1RJTkcKICAgICMg ICAgIEFjdGl2ZUlmOiBDWUdQS0dfSU9fU0VSSUFMX0kzODZfUENfU0VSSUFM MAp9OwoKIyA+CiMgRGV2aWNlIG5hbWUgZm9yIFBDIHNlcmlhbCBwb3J0IDAK IyBUaGlzIG9wdGlvbiBzcGVjaWZpZXMgdGhlIGRldmljZSBuYW1lIHBvcnQg MCBvbiB0aGUgUEMuCiMKY2RsX29wdGlvbiBDWUdEQVRfSU9fU0VSSUFMX0kz ODZfUENfU0VSSUFMMF9OQU1FIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90 IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BLR19JT19TRVJJQUxfSTM4 Nl9QQ19TRVJJQUwwIGlzIG5vdCBhY3RpdmUKCiAgICAjIEZsYXZvcjogZGF0 YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlICJcIi9k ZXYvc2VyMFwiIgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAiXCIvZGV2L3NlcjBcIiIKCiAgICAjIFRoZSBmb2xs b3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQog ICAgIyBvcHRpb24gQ1lHUFJJX1NFUl9URVNUX1NFUl9ERVYKICAgICMgICAg IERlZmF1bHRWYWx1ZTogIENZR0RBVF9JT19TRVJJQUxfSTM4Nl9QQ19TRVJJ QUwwX05BTUUgCn07CgojIEJhdWQgcmF0ZSBmb3IgdGhlIFBDIHNlcmlhbCBw b3J0IDAgZHJpdmVyCiMgVGhpcyBvcHRpb24gc3BlY2lmaWVzIHRoZSBkZWZh dWx0IGJhdWQgcmF0ZSAoc3BlZWQpIGZvciB0aGUKIyBQQyBwb3J0IDAuCiMK Y2RsX29wdGlvbiBDWUdOVU1fSU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMF9C QVVEIHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBU aGUgcGFyZW50IENZR1BLR19JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwwIGlz IG5vdCBhY3RpdmUKCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2Vy IHZhbHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3Zp ZGUgb25lLgogICAgIyB1c2VyX3ZhbHVlIDM4NDAwCiAgICAjIHZhbHVlX3Nv dXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDM4NDAwCiAgICAj IExlZ2FsIHZhbHVlczogIDUwIDc1IDExMCAiMTM0XzUiIDE1MCAyMDAgMzAw IDYwMCAxMjAwIDE4MDAgMjQwMCAzNjAwCiAgICAjICAgICAgICAgICAgICAg ICAgICAgICAgICAgNDgwMCA3MjAwIDk2MDAgMTQ0MDAgMTkyMDAgMzg0MDAg NTc2MDAgMTE1MjAwIDIzNDAwMAogICAgIyAgICAgICAgICAgICAKfTsKCiMg QnVmZmVyIHNpemUgZm9yIHRoZSBQQyBzZXJpYWwgcG9ydCAwIGRyaXZlcgoj IFRoaXMgb3B0aW9uIHNwZWNpZmllcyB0aGUgc2l6ZSBvZiB0aGUgaW50ZXJu YWwgYnVmZmVycyB1c2VkCiMgZm9yIHRoZSBQQyBwb3J0IDAuCiMKY2RsX29w dGlvbiBDWUdOVU1fSU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMF9CVUZTSVpF IHsKICAgICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUg cGFyZW50IENZR1BLR19JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwwIGlzIG5v dCBhY3RpdmUKCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZh bHVlLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUg b25lLgogICAgIyB1c2VyX3ZhbHVlIDEyOAogICAgIyB2YWx1ZV9zb3VyY2Ug ZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAxMjgKICAgICMgTGVnYWwg dmFsdWVzOiAwIHRvIDgxOTIKfTsKCiMgSS9PIGJhc2UgYWRkcmVzcyBmb3Ig dGhlIGkzODYtUEMgc2VyaWFsIHBvcnQgMAojIFRoaXMgb3B0aW9uIHNwZWNp ZmllcyB0aGUgSS9PIGFkZHJlc3Mgb2YgdGhlIDgyNTAgb3IgMTY1NTAgZm9y IHNlcmlhbCBwb3J0IDAuCiMKY2RsX29wdGlvbiBDWUdOVU1fSU9fU0VSSUFM X0kzODZfUENfU0VSSUFMMF9JT0JBU0UgewogICAgIyBUaGlzIG9wdGlvbiBp cyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lPX1NFUklB TF9JMzg2X1BDX1NFUklBTDAgaXMgbm90IGFjdGl2ZQoKICAgICMgRmxhdm9y OiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg MHgwMDAwMDNGOAogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBE ZWZhdWx0IHZhbHVlOiAweDAwMDAwM0Y4CiAgICAjIExlZ2FsIHZhbHVlczog MCB0byAweEZGOAp9OwoKIyBJUlEgZm9yIHRoZSBpMzg2LVBDIHNlcmlhbCBw b3J0IDAKIyBUaGlzIG9wdGlvbiBzcGVjaWZpZXMgdGhlIElSUSBvZiB0aGUg ODI1MCBvciAxNjU1MCBmb3Igc2VyaWFsIHBvcnQgMC4KIwpjZGxfb3B0aW9u IENZR05VTV9JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwwX0lSUSB7CiAgICAj IFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBD WUdQS0dfSU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMCBpcyBub3QgYWN0aXZl CgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5j b21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAg ICMgdXNlcl92YWx1ZSA0CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6IDQKICAgICMgTGVnYWwgdmFsdWVzOiAwIHRv IDE1CgogICAgIyBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGFmZmVj dGVkIGJ5IHRoaXMgdmFsdWUKICAgICMgb3B0aW9uIENZR05VTV9JT19TRVJJ QUxfSTM4Nl9QQ19TRVJJQUwwX0lOVAogICAgIyAgICAgRGVmYXVsdFZhbHVl OiAgQ1lHTlVNX0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDBfSVJRICsgMzIg Cn07CgojIElSUSBmb3IgdGhlIGkzODYtUEMgc2VyaWFsIHBvcnQgMAojIFRo aXMgb3B0aW9uIHNwZWNpZmllcyB0aGUgaW50ZXJydXB0IHZlY3RvciBvZiB0 aGUgODI1MCBvciAxNjU1MCBmb3Igc2VyaWFsIHBvcnQgMC4KIwpjZGxfb3B0 aW9uIENZR05VTV9JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwwX0lOVCB7CiAg ICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVu dCBDWUdQS0dfSU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMCBpcyBub3QgYWN0 aXZlCgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAzMgogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVs dAogICAgIyBEZWZhdWx0IHZhbHVlOiAgQ1lHTlVNX0lPX1NFUklBTF9JMzg2 X1BDX1NFUklBTDBfSVJRICsgMzIgCiAgICAjICAgICBDWUdOVU1fSU9fU0VS SUFMX0kzODZfUENfU0VSSUFMMF9JUlEgPT0gMAogICAgIyAgIC0tPiAzMgog ICAgIyBMZWdhbCB2YWx1ZXM6IDMyIHRvIDQ3Cn07CgojIDwKIyBQQyBzZXJp YWwgcG9ydCAxIGRyaXZlcgojIFRoaXMgb3B0aW9uIGluY2x1ZGVzIHRoZSBz ZXJpYWwgZGV2aWNlIGRyaXZlciBmb3IgcG9ydCAxIG9uCiMgdGhlIFBDLgoj CmNkbF9jb21wb25lbnQgQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDX1NFUklB TDEgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRo ZSBwYXJlbnQgQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDIGlzIG5vdCBhY3Rp dmUKCiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQK ICAgICMgRGVmYXVsdCB2YWx1ZTogMQp9OwoKIyA+CiMgRGV2aWNlIG5hbWUg Zm9yIFBDIHNlcmlhbCBwb3J0IDEKIyBUaGlzIG9wdGlvbiBzcGVjaWZpZXMg dGhlIGRldmljZSBuYW1lIHBvcnQgMSBvbiB0aGUgUEMuCiMKY2RsX29wdGlv biBDWUdEQVRfSU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMV9OQU1FIHsKICAg ICMgVGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50 IENZR1BLR19JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwxIGlzIG5vdCBhY3Rp dmUKCiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlICJcIi9kZXYvc2VyMVwiIgogICAgIyB2YWx1ZV9z b3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAiXCIvZGV2L3Nl cjFcIiIKfTsKCiMgQmF1ZCByYXRlIGZvciB0aGUgUEMgc2VyaWFsIHBvcnQg MSBkcml2ZXIKIyBUaGlzIG9wdGlvbiBzcGVjaWZpZXMgdGhlIGRlZmF1bHQg YmF1ZCByYXRlIChzcGVlZCkgZm9yIHRoZQojIFBDIHBvcnQgMS4KIwpjZGxf b3B0aW9uIENZR05VTV9JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwxX0JBVUQg ewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBw YXJlbnQgQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDEgaXMgbm90 IGFjdGl2ZQoKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMzg0MDAKICAgICMgdmFsdWVfc291cmNl IGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMzg0MDAKICAgICMgTGVn YWwgdmFsdWVzOiAgNTAgNzUgMTEwICIxMzRfNSIgMTUwIDIwMCAzMDAgNjAw IDEyMDAgMTgwMCAyNDAwIDM2MDAKICAgICMgICAgICAgICAgICAgICAgICAg ICAgICAgICA0ODAwIDcyMDAgOTYwMCAxNDQwMCAxOTIwMCAzODQwMCA1NzYw MCAxMTUyMDAgMjM0MDAwCiAgICAjICAgICAgICAgICAgIAp9OwoKIyBCdWZm ZXIgc2l6ZSBmb3IgdGhlIFBDIHNlcmlhbCBwb3J0IDEgZHJpdmVyCiMgVGhp cyBvcHRpb24gc3BlY2lmaWVzIHRoZSBzaXplIG9mIHRoZSBpbnRlcm5hbCBi dWZmZXJzIHVzZWQKIyBmb3IgdGhlIFBDIHBvcnQgMS4KIwpjZGxfb3B0aW9u IENZR05VTV9JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwxX0JVRlNJWkUgewog ICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJl bnQgQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDEgaXMgbm90IGFj dGl2ZQoKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUu CiAgICAjIHVzZXJfdmFsdWUgMTI4CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZh dWx0CiAgICAjIERlZmF1bHQgdmFsdWU6IDEyOAogICAgIyBMZWdhbCB2YWx1 ZXM6IDAgdG8gODE5Mgp9OwoKIyBJL08gYmFzZSBhZGRyZXNzIGZvciB0aGUg aTM4Ni1QQyBzZXJpYWwgcG9ydCAxCiMgVGhpcyBvcHRpb24gc3BlY2lmaWVz IHRoZSBJL08gYWRkcmVzcyBvZiB0aGUgODI1MCBvciAxNjU1MCBmb3Igc2Vy aWFsIHBvcnQgMS4KIwpjZGxfb3B0aW9uIENZR05VTV9JT19TRVJJQUxfSTM4 Nl9QQ19TRVJJQUwxX0lPQkFTRSB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5v dCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX0kz ODZfUENfU0VSSUFMMSBpcyBub3QgYWN0aXZlCgogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAweDAw MDAwMkY4CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1 bHQgdmFsdWU6IDB4MDAwMDAyRjgKICAgICMgTGVnYWwgdmFsdWVzOiAwIHRv IDB4RkY4Cn07CgojIElSUSBmb3IgdGhlIGkzODYtUEMgc2VyaWFsIHBvcnQg MQojIFRoaXMgb3B0aW9uIHNwZWNpZmllcyB0aGUgSVJRIG9mIHRoZSA4MjUw IG9yIDE2NTUwIGZvciBzZXJpYWwgcG9ydCAxLgojCmNkbF9vcHRpb24gQ1lH TlVNX0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDFfSVJRIHsKICAgICMgVGhp cyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZR1BL R19JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwxIGlzIG5vdCBhY3RpdmUKCiAg ICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNvbW1l bnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAgIyB1 c2VyX3ZhbHVlIDMKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMg RGVmYXVsdCB2YWx1ZTogMwogICAgIyBMZWdhbCB2YWx1ZXM6IDAgdG8gMTUK CiAgICAjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQg YnkgdGhpcyB2YWx1ZQogICAgIyBvcHRpb24gQ1lHTlVNX0lPX1NFUklBTF9J Mzg2X1BDX1NFUklBTDFfSU5UCiAgICAjICAgICBEZWZhdWx0VmFsdWU6ICBD WUdOVU1fSU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMV9JUlEgKyAzMiAKfTsK CiMgSVJRIGZvciB0aGUgaTM4Ni1QQyBzZXJpYWwgcG9ydCAxCiMgVGhpcyBv cHRpb24gc3BlY2lmaWVzIHRoZSBpbnRlcnJ1cHQgdmVjdG9yIG9mIHRoZSA4 MjUwIG9yIDE2NTUwIGZvciBzZXJpYWwgcG9ydCAxLgojCmNkbF9vcHRpb24g Q1lHTlVNX0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDFfSU5UIHsKICAgICMg VGhpcyBvcHRpb24gaXMgbm90IGFjdGl2ZQogICAgIyBUaGUgcGFyZW50IENZ R1BLR19JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwxIGlzIG5vdCBhY3RpdmUK CiAgICAjIEZsYXZvcjogZGF0YQogICAgIyBObyB1c2VyIHZhbHVlLCB1bmNv bW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgogICAg IyB1c2VyX3ZhbHVlIDMyCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAg ICAjIERlZmF1bHQgdmFsdWU6ICBDWUdOVU1fSU9fU0VSSUFMX0kzODZfUENf U0VSSUFMMV9JUlEgKyAzMiAKICAgICMgICAgIENZR05VTV9JT19TRVJJQUxf STM4Nl9QQ19TRVJJQUwxX0lSUSA9PSAwCiAgICAjICAgLS0+IDMyCiAgICAj IExlZ2FsIHZhbHVlczogMzIgdG8gNDcKfTsKCiMgPAojIFNlcmlhbCBkZXZp Y2UgZHJpdmVyIGJ1aWxkIG9wdGlvbnMKIyBQYWNrYWdlIHNwZWNpZmljIGJ1 aWxkIG9wdGlvbnMgaW5jbHVkaW5nIGNvbnRyb2wgb3ZlcgojIGNvbXBpbGVy IGZsYWdzIHVzZWQgb25seSBpbiBidWlsZGluZyB0aGlzIHBhY2thZ2UsCiMg YW5kIGRldGFpbHMgb2Ygd2hpY2ggdGVzdHMgYXJlIGJ1aWx0LgojCmNkbF9j b21wb25lbnQgQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDX09QVElPTlMgewog ICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJl bnQgQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDIGlzIG5vdCBhY3RpdmUKCiAg ICAjIFRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUuCn07CgojID4KIyBB ZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzCiMgVGhpcyBvcHRpb24gbW9kaWZp ZXMgdGhlIHNldCBvZiBjb21waWxlciBmbGFncyBmb3IKIyBidWlsZGluZyB0 aGVzZSBzZXJpYWwgZGV2aWNlIGRyaXZlcnMuIFRoZXNlIGZsYWdzIGFyZSB1 c2VkIGluIGFkZGl0aW9uCiMgdG8gdGhlIHNldCBvZiBnbG9iYWwgZmxhZ3Mu CiMKY2RsX29wdGlvbiBDWUdQS0dfSU9fU0VSSUFMX0kzODZfUENfQ0ZMQUdT X0FERCB7CiAgICAjIFRoaXMgb3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMg VGhlIHBhcmVudCBDWUdQS0dfSU9fU0VSSUFMX0kzODZfUENfT1BUSU9OUyBp cyBub3QgYWN0aXZlCgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgTm8gdXNl ciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92 aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAiIgogICAgIyB2YWx1ZV9zb3Vy Y2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAiIgp9OwoKIyBTdXBw cmVzc2VkIGNvbXBpbGVyIGZsYWdzCiMgVGhpcyBvcHRpb24gbW9kaWZpZXMg dGhlIHNldCBvZiBjb21waWxlciBmbGFncyBmb3IKIyBidWlsZGluZyB0aGVz ZSBzZXJpYWwgZGV2aWNlIGRyaXZlcnMuIFRoZXNlIGZsYWdzIGFyZSByZW1v dmVkIGZyb20KIyB0aGUgc2V0IG9mIGdsb2JhbCBmbGFncyBpZiBwcmVzZW50 LgojCmNkbF9vcHRpb24gQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDX0NGTEFH U19SRU1PVkUgewogICAgIyBUaGlzIG9wdGlvbiBpcyBub3QgYWN0aXZlCiAg ICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDX09QVElP TlMgaXMgbm90IGFjdGl2ZQoKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5v IHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8g cHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUgIiIKICAgICMgdmFsdWVf c291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIiIKfTsKCiMg PAojIFRlc3RpbmcgcGFyYW1ldGVycwojCmNkbF9jb21wb25lbnQgQ1lHUEtH X0lPX1NFUklBTF9JMzg2X1BDX1RFU1RJTkcgewogICAgIyBUaGlzIG9wdGlv biBpcyBub3QgYWN0aXZlCiAgICAjIFRoZSBwYXJlbnQgQ1lHUEtHX0lPX1NF UklBTF9JMzg2X1BDIGlzIG5vdCBhY3RpdmUKICAgICMgQWN0aXZlSWYgY29u c3RyYWludDogQ1lHUEtHX0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDAKICAg ICMgICAgIENZR1BLR19JT19TRVJJQUxfSTM4Nl9QQ19TRVJJQUwwID09IDAK ICAgICMgICAtLT4gMAoKICAgICMgQ2FsY3VsYXRlZCB2YWx1ZTogMQogICAg IyBGbGF2b3I6IGJvb2wKICAgICMgQ3VycmVudCB2YWx1ZTogMQp9OwoKIyA+ CiMgU2VyaWFsIGRldmljZSB1c2VkIGZvciB0ZXN0aW5nCiMKY2RsX29wdGlv biBDWUdQUklfU0VSX1RFU1RfU0VSX0RFViB7CiAgICAjIFRoaXMgb3B0aW9u IGlzIG5vdCBhY3RpdmUKICAgICMgVGhlIHBhcmVudCBDWUdQS0dfSU9fU0VS SUFMX0kzODZfUENfVEVTVElORyBpcyBub3QgYWN0aXZlCgogICAgIyBGbGF2 b3I6IGRhdGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBm b2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1 ZSAwCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQg dmFsdWU6ICBDWUdEQVRfSU9fU0VSSUFMX0kzODZfUENfU0VSSUFMMF9OQU1F IAogICAgIyAgICAgQ1lHREFUX0lPX1NFUklBTF9JMzg2X1BDX1NFUklBTDBf TkFNRSA9PSAwCiAgICAjICAgLS0+IDAKfTsKCiMgPAojIDwKIyA8CiMgQnVp bGQgZXh0cmEgc2VyaWFsIHRlc3RzCiMgVGhpcyBvcHRpb24gZW5hYmxlcyB0 aGUgYnVpbGRpbmcgb2Ygc29tZSBleHRyYSB0ZXN0cyB3aGljaAojIGNhbiBi ZSB1c2VkIHdoZW4gdGVzdGluZyAvIGRlYnVnZ2luZyBzZXJpYWwgZHJpdmVy cy4gVGhlc2UKIyBhcmUgbm90IGJ1aWx0IGJ5IGRlZmF1bHQgc2luY2UgdGhl eSBkbyBub3QgdXNlIHRoZSBkZWRpY2F0ZWQKIyB0ZXN0aW5nIGluZnJhc3Ry dWN0dXJlLgojCmNkbF9vcHRpb24gQ1lHQkxEX0lPX1NFUklBTF9FWFRSQV9U RVNUUyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVl LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25l LgogICAgIyB1c2VyX3ZhbHVlIDAKICAgICMgdmFsdWVfc291cmNlIGRlZmF1 bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogMAp9OwoKIyBTZXJpYWwgZGV2aWNl IGRyaXZlciBidWlsZCBvcHRpb25zCiMgUGFja2FnZSBzcGVjaWZpYyBidWls ZCBvcHRpb25zIGluY2x1ZGluZyBjb250cm9sIG92ZXIKIyBjb21waWxlciBm bGFncyB1c2VkIG9ubHkgaW4gYnVpbGRpbmcgdGhpcyBwYWNrYWdlLAojIGFu ZCBkZXRhaWxzIG9mIHdoaWNoIHRlc3RzIGFyZSBidWlsdC4KIwpjZGxfY29t cG9uZW50IENZR1BLR19JT19TRVJJQUxfT1BUSU9OUyB7CiAgICAjIFRoZXJl IGlzIG5vIGFzc29jaWF0ZWQgdmFsdWUuCn07CgojID4KIyBBZGRpdGlvbmFs IGNvbXBpbGVyIGZsYWdzCiMgVGhpcyBvcHRpb24gbW9kaWZpZXMgdGhlIHNl dCBvZiBjb21waWxlciBmbGFncyBmb3IKIyBidWlsZGluZyB0aGUgc2VyaWFs IGRldmljZSBkcml2ZXJzLiBUaGVzZSBmbGFncyBhcmUgdXNlZCBpbiBhZGRp dGlvbgojIHRvIHRoZSBzZXQgb2YgZ2xvYmFsIGZsYWdzLgojCmNkbF9vcHRp b24gQ1lHUEtHX0lPX1NFUklBTF9DRkxBR1NfQUREIHsKICAgICMgRmxhdm9y OiBkYXRhCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFsdWUg IiIKICAgICMgdmFsdWVfc291cmNlIGRlZmF1bHQKICAgICMgRGVmYXVsdCB2 YWx1ZTogIiIKfTsKCiMgU3VwcHJlc3NlZCBjb21waWxlciBmbGFncwojIFRo aXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBzZXQgb2YgY29tcGlsZXIgZmxhZ3Mg Zm9yCiMgYnVpbGRpbmcgdGhlIHNlcmlhbCBkZXZpY2UgZHJpdmVycy4gVGhl c2UgZmxhZ3MgYXJlIHJlbW92ZWQgZnJvbQojIHRoZSBzZXQgb2YgZ2xvYmFs IGZsYWdzIGlmIHByZXNlbnQuCiMKY2RsX29wdGlvbiBDWUdQS0dfSU9fU0VS SUFMX0NGTEFHU19SRU1PVkUgewogICAgIyBGbGF2b3I6IGRhdGEKICAgICMg Tm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0 byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAiIgogICAgIyB2YWx1 ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAiIgp9OwoK IyBTZXJpYWwgZGV2aWNlIGRyaXZlciB0ZXN0cwojIFRoaXMgb3B0aW9uIHNw ZWNpZmllcyB0aGUgc2V0IG9mIHRlc3RzIGZvciB0aGUgc2VyaWFsIGRldmlj ZSBkcml2ZXJzLgojCmNkbF9vcHRpb24gQ1lHUEtHX0lPX1NFUklBTF9URVNU UyB7CiAgICAjIENhbGN1bGF0ZWQgdmFsdWU6ICBDWUdQS0dfSU9fU0VSSUFM X0RFVklDRVMgPyAidGVzdHMvc2VyaWFsMSB0ZXN0cy9zZXJpYWwyIHRlc3Rz L3NlcmlhbDMgdGVzdHMvc2VyaWFsNCB0ZXN0cy9zZXJpYWw1IHRlc3RzL3R0 eTEgdGVzdHMvdHR5MiB0ZXN0cy9mbG93MSB0ZXN0cy9mbG93MiIgOiAiIiAK ICAgICMgICAgIENZR1BLR19JT19TRVJJQUxfREVWSUNFUyA9PSAwCiAgICAj IEZsYXZvcjogZGF0YQogICAgIyBDdXJyZW50X3ZhbHVlOiAKfTsKCiMgPAoj IEVuYWJsZSBzZXJpYWwgZGV2aWNlIHNlbGVjdCBzdXBwb3J0CiMgVGhpcyBv cHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgc2VsZWN0KCkgQVBJIGZ1 bmN0aW9uIG9uIGFsbAojIHNlcmlhbCBkZXZpY2VzLgojCmNkbF9vcHRpb24g Q1lHUEtHX0lPX1NFUklBTF9TRUxFQ1RfU1VQUE9SVCB7CiAgICAjIFRoaXMg b3B0aW9uIGlzIG5vdCBhY3RpdmUKICAgICMgQWN0aXZlSWYgY29uc3RyYWlu dDogQ1lHUEtHX0lPX0ZJTEVJTwogICAgIyAgICAgQ1lHUEtHX0lPX0ZJTEVJ TyAodW5rbm93bikgPT0gMAogICAgIyAgIC0tPiAwCgogICAgIyBGbGF2b3I6 IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xs b3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAx CiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0CiAgICAjIERlZmF1bHQgdmFs dWU6IDEKICAgICMgUmVxdWlyZXM6IENZR1BLR19JT19GSUxFSU8KICAgICMg ICAgIENZR1BLR19JT19GSUxFSU8gKHVua25vd24pID09IDAKICAgICMgICAt LT4gMAp9OwoKIyBTZXJpYWwgdGVzdGluZyBzcGVjaWZpY2F0aW9uCiMKY2Rs X2NvbXBvbmVudCBDWUdQS0dfSU9fU0VSSUFMX1RFU1RfU1BFQ1MgewogICAg IyBDYWxjdWxhdGVkIHZhbHVlOiAxCiAgICAjIEZsYXZvcjogYm9vbAogICAg IyBDdXJyZW50IHZhbHVlOiAxCn07CgojID4KIyBTa2lwIDk2MDAgYmF1ZCB0 ZXN0aW5nCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSU9fU0VSSUFMX1RFU1Rf U0tJUF85NjAwIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBp bmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQg aGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6 IDAKfTsKCiMgU2tpcCAxNDQwMCBiYXVkIHRlc3RpbmcKIwpjZGxfaW50ZXJm YWNlIENZR0lOVF9JT19TRVJJQUxfVEVTVF9TS0lQXzE0NDAwIHsKICAgICMg Tm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhp cyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9y OiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKfTsKCiMgU2tpcCAxOTIw MCBiYXVkIHRlc3RpbmcKIwpjZGxfaW50ZXJmYWNlIENZR0lOVF9JT19TRVJJ QUxfVEVTVF9TS0lQXzE5MjAwIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1l bnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUg bW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJl bnRfdmFsdWU6IDAKfTsKCiMgU2tpcCAzODQwMCBiYXVkIHRlc3RpbmcKIwpj ZGxfaW50ZXJmYWNlIENZR0lOVF9JT19TRVJJQUxfVEVTVF9TS0lQXzM4NDAw IHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UK ICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAg ICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKfTsKCiMg U2tpcCA1NzYwMCBiYXVkIHRlc3RpbmcKIwpjZGxfaW50ZXJmYWNlIENZR0lO VF9JT19TRVJJQUxfVEVTVF9TS0lQXzU3NjAwIHsKICAgICMgTm8gb3B0aW9u cyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBj YW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAg ICAjIEN1cnJlbnRfdmFsdWU6IDAKfTsKCiMgU2tpcCAxMTUyMDAgYmF1ZCB0 ZXN0aW5nCiMKY2RsX2ludGVyZmFjZSBDWUdJTlRfSU9fU0VSSUFMX1RFU1Rf U0tJUF8xMTUyMDAgewogICAgIyBObyBvcHRpb25zIGltcGxlbWVudCB0aGlz IGluZmVyZmFjZQogICAgIyBUaGlzIHZhbHVlIGNhbm5vdCBiZSBtb2RpZmll ZCBoZXJlLgogICAgIyBGbGF2b3I6IGRhdGEKICAgICMgQ3VycmVudF92YWx1 ZTogMAp9OwoKIyBTa2lwIGV2ZW4tcGFyaXR5IHRlc3RpbmcKIwpjZGxfaW50 ZXJmYWNlIENZR0lOVF9JT19TRVJJQUxfVEVTVF9TS0lQX1BBUklUWV9FVkVO IHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQgdGhpcyBpbmZlcmZhY2UK ICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQgaGVyZS4KICAg ICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRfdmFsdWU6IDAKfTsKCiMg U2tpcCBvZGQtcGFyaXR5IHRlc3RpbmcKIwpjZGxfaW50ZXJmYWNlIENZR0lO VF9JT19TRVJJQUxfVEVTVF9TS0lQX1BBUklUWV9PREQgewogICAgIyBObyBv cHRpb25zIGltcGxlbWVudCB0aGlzIGluZmVyZmFjZQogICAgIyBUaGlzIHZh bHVlIGNhbm5vdCBiZSBtb2RpZmllZCBoZXJlLgogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgQ3VycmVudF92YWx1ZTogMAp9OwoKIyBTa2lwIDItc3RvcCBi aXQgdGVzdGluZwojCmNkbF9pbnRlcmZhY2UgQ1lHSU5UX0lPX1NFUklBTF9U RVNUX1NLSVBfU1RPUF8yIHsKICAgICMgTm8gb3B0aW9ucyBpbXBsZW1lbnQg dGhpcyBpbmZlcmZhY2UKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9k aWZpZWQgaGVyZS4KICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIEN1cnJlbnRf dmFsdWU6IDAKfTsKCiMgPAojIDwKIyBDb21tb24gZXJyb3IgY29kZSBzdXBw b3J0CiMgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBjb21tb24gbGlzdCBv ZiBlcnJvciBhbmQKIyBzdGF0dXMgY29kZXMuIEl0IGlzIGhlbGQgY2VudHJh bGx5IHRvIGFsbG93CiMgcGFja2FnZXMgdG8gaW50ZXJjaGFuZ2UgZXJyb3Ig Y29kZXMgYW5kIHN0YXR1cwojIGNvZGVzIGluIGEgY29tbW9uIHdheSwgcmF0 aGVyIHRoYW4gZWFjaCBwYWNrYWdlCiMgaGF2aW5nIGl0cyBvd24gY29udmVu dGlvbnMgZm9yIGVycm9yL3N0YXR1cwojIHJlcG9ydGluZy4gVGhlIGVycm9y IGNvZGVzIGFyZSBtb2RlbGxlZCBvbiB0aGUKIyBQT1NJWCBzdHlsZSBuYW1p bmcgZS5nLiBFSU5WQUwgZXRjLiBUaGlzIHBhY2thZ2UKIyBhbHNvIHByb3Zp ZGVzIHRoZSBzdGFuZGFyZCBzdHJlcnJvcigpIGZ1bmN0aW9uIHRvCiMgY29u dmVydCBlcnJvciBjb2RlcyB0byB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uLCBh cwojIHdlbGwgYXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIGVycm5vIGlk aW9tLgojCmNkbF9wYWNrYWdlIENZR1BLR19FUlJPUiB7CiAgICAjIFBhY2th Z2VzIGNhbm5vdCBiZSBhZGRlZCBvciByZW1vdmVkLCBub3IgY2FuIHRoZWly IHZlcnNpb24gYmUgY2hhbmdlZCwKICAgICMgc2ltcGx5IGJ5IGVkaXRpbmcg dGhlaXIgdmFsdWUuIEluc3RlYWQgdGhlIGFwcHJvcHJpYXRlIGNvbmZpZ3Vy YXRpb24KICAgICMgc2hvdWxkIGJlIHVzZWQgdG8gcGVyZm9ybSB0aGVzZSBh Y3Rpb25zLgoKICAgICMgVGhpcyB2YWx1ZSBjYW5ub3QgYmUgbW9kaWZpZWQg aGVyZS4KICAgICMgRmxhdm9yOiBib29sZGF0YQogICAgIyBDdXJyZW50IHZh bHVlOiAxIGN1cnJlbnQKICAgICMgUmVxdWlyZXM6ICBDWUdCTERfSVNPX0VS Uk5PX0NPREVTX0hFQURFUiA9PSAiPGN5Zy9lcnJvci9jb2Rlcy5oPiIgCiAg ICAjICAgICBDWUdCTERfSVNPX0VSUk5PX0NPREVTX0hFQURFUiA9PSA8Y3ln L2Vycm9yL2NvZGVzLmg+CiAgICAjICAgLS0+IDEKCiAgICAjIFRoZSBmb2xs b3dpbmcgcHJvcGVydGllcyBhcmUgYWZmZWN0ZWQgYnkgdGhpcyB2YWx1ZQog ICAgIyBwYWNrYWdlIENZR1BLR19JT19TRVJJQUxfSTM4Nl9QQwogICAgIyAg ICAgUmVxdWlyZXM6IENZR1BLR19FUlJPUgogICAgIyBwYWNrYWdlIENZR1BL R19JTwogICAgIyAgICAgUmVxdWlyZXM6IENZR1BLR19FUlJPUgogICAgIyBw YWNrYWdlIENZR1BLR19JT19TRVJJQUwKICAgICMgICAgIFJlcXVpcmVzOiBD WUdQS0dfRVJST1IKfTsKCiMgPgojIGVycm5vIHZhcmlhYmxlCiMgVGhpcyBw YWNrYWdlIGNvbnRyb2xzIHRoZSBiZWhhdmlvdXIgb2YgdGhlCiMgZXJybm8g dmFyaWFibGUgKG9yIG1vcmUgc3RyaWN0bHksIGV4cHJlc3Npb24pCiMgZnJv bSA8ZXJybm8uaD4uCiMKY2RsX2NvbXBvbmVudCBDWUdQS0dfRVJST1JfRVJS Tk8gewogICAgIyBGbGF2b3I6IGJvb2wKICAgICMgTm8gdXNlciB2YWx1ZSwg dW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBwcm92aWRlIG9uZS4K ICAgICMgdXNlcl92YWx1ZSAxCiAgICAjIHZhbHVlX3NvdXJjZSBkZWZhdWx0 CiAgICAjIERlZmF1bHQgdmFsdWU6IDEKICAgICMgUmVxdWlyZXM6ICBDWUdC TERfSVNPX0VSUk5PX0hFQURFUiA9PSAiPGN5Zy9lcnJvci9lcnJuby5oPiIg CiAgICAjICAgICBDWUdCTERfSVNPX0VSUk5PX0hFQURFUiA9PSA8Y3lnL2Vy cm9yL2Vycm5vLmg+CiAgICAjICAgLS0+IDEKfTsKCiMgPgojIFBlci10aHJl YWQgZXJybm8KIyBUaGlzIG9wdGlvbiBjb250cm9scyB3aGV0aGVyIHRoZSBz dGFuZGFyZCBlcnJvcgojIGNvZGUgcmVwb3J0aW5nIHZhcmlhYmxlIGVycm5v IGlzIGEgcGVyLXRocmVhZAojIHZhcmlhYmxlLCByYXRoZXIgdGhhbiBnbG9i YWwuCiMKY2RsX29wdGlvbiBDWUdTRU1fRVJST1JfUEVSX1RIUkVBRF9FUlJO TyB7CiAgICAjIEZsYXZvcjogYm9vbAogICAgIyBObyB1c2VyIHZhbHVlLCB1 bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHByb3ZpZGUgb25lLgog ICAgIyB1c2VyX3ZhbHVlIDEKICAgICMgVGhlIGluZmVycmVkIHZhbHVlIHNo b3VsZCBub3QgYmUgZWRpdGVkIGRpcmVjdGx5LgogICAgaW5mZXJyZWRfdmFs dWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgaW5mZXJyZWQKICAgICMgRGVmYXVs dCB2YWx1ZTogMQogICAgIyBSZXF1aXJlczogQ1lHVkFSX0tFUk5FTF9USFJF QURTX0RBVEEKICAgICMgICAgIENZR1ZBUl9LRVJORUxfVEhSRUFEU19EQVRB ICh1bmtub3duKSA9PSAwCiAgICAjICAgLS0+IDAKfTsKCiMgVHJhY2luZyBs ZXZlbAojIFRyYWNlIHZlcmJvc2l0eSBsZXZlbCBmb3IgZGVidWdnaW5nIHRo ZSBlcnJubwojIHJldHJpZXZhbCBtZWNoYW5pc20gaW4gZXJybm8uY3h4LiBJ bmNyZWFzZSB0aGlzCiMgdmFsdWUgdG8gZ2V0IGFkZGl0aW9uYWwgdHJhY2Ug b3V0cHV0LgojCmNkbF9vcHRpb24gQ1lHTlVNX0VSUk9SX0VSUk5PX1RSQUNF X0xFVkVMIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgMAogICAgIyB2YWx1ZV9zb3VyY2UgZGVm YXVsdAogICAgIyBEZWZhdWx0IHZhbHVlOiAwCiAgICAjIExlZ2FsIHZhbHVl czogMCB0byAxCn07CgojIDwKIyBzdHJlcnJvciBmdW5jdGlvbgojIFRoaXMg cGFja2FnZSBjb250cm9scyB0aGUgcHJlc2VuY2UgYW5kIGJlaGF2aW91ciBv ZiB0aGUKIyBzdHJlcnJvcigpIGZ1bmN0aW9uIGZyb20gPHN0cmluZy5oPgoj CmNkbF9vcHRpb24gQ1lHUEtHX0VSUk9SX1NUUkVSUk9SIHsKICAgICMgRmxh dm9yOiBib29sCiAgICAjIE5vIHVzZXIgdmFsdWUsIHVuY29tbWVudCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBvbmUuCiAgICAjIHVzZXJfdmFs dWUgMQogICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0 IHZhbHVlOiAxCiAgICAjIFJlcXVpcmVzOiAgQ1lHQkxEX0lTT19TVFJFUlJP Ul9IRUFERVIgPT0gIjxjeWcvZXJyb3Ivc3RyZXJyb3IuaD4iIAogICAgIyAg ICAgQ1lHQkxEX0lTT19TVFJFUlJPUl9IRUFERVIgPT0gPGN5Zy9lcnJvci9z dHJlcnJvci5oPgogICAgIyAgIC0tPiAxCn07CgojIEVycm9yIHBhY2thZ2Ug YnVpbGQgb3B0aW9ucwojIFBhY2thZ2Ugc3BlY2lmaWMgYnVpbGQgb3B0aW9u cyBpbmNsdWRpbmcgY29udHJvbCBvdmVyCiMgY29tcGlsZXIgZmxhZ3MgdXNl ZCBvbmx5IGluIGJ1aWxkaW5nIHRoaXMgcGFja2FnZSwKIyBhbmQgZGV0YWls cyBvZiB3aGljaCB0ZXN0cyBhcmUgYnVpbHQuCiMKY2RsX2NvbXBvbmVudCBD WUdQS0dfRVJST1JfT1BUSU9OUyB7CiAgICAjIFRoZXJlIGlzIG5vIGFzc29j aWF0ZWQgdmFsdWUuCn07CgojID4KIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZs YWdzCiMgVGhpcyBvcHRpb24gbW9kaWZpZXMgdGhlIHNldCBvZiBjb21waWxl ciBmbGFncyBmb3IKIyBidWlsZGluZyB0aGUgZXJyb3IgcGFja2FnZS4gVGhl c2UgZmxhZ3MgYXJlIHVzZWQgaW4gYWRkaXRpb24KIyB0byB0aGUgc2V0IG9m IGdsb2JhbCBmbGFncy4KIwpjZGxfb3B0aW9uIENZR1BLR19FUlJPUl9DRkxB R1NfQUREIHsKICAgICMgRmxhdm9yOiBkYXRhCiAgICAjIE5vIHVzZXIgdmFs dWUsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcHJvdmlkZSBv bmUuCiAgICAjIHVzZXJfdmFsdWUgIiIKICAgICMgdmFsdWVfc291cmNlIGRl ZmF1bHQKICAgICMgRGVmYXVsdCB2YWx1ZTogIiIKfTsKCiMgU3VwcHJlc3Nl ZCBjb21waWxlciBmbGFncwojIFRoaXMgb3B0aW9uIG1vZGlmaWVzIHRoZSBz ZXQgb2YgY29tcGlsZXIgZmxhZ3MgZm9yCiMgYnVpbGRpbmcgdGhlIGVycm9y IHBhY2thZ2UuIFRoZXNlIGZsYWdzIGFyZSByZW1vdmVkIGZyb20KIyB0aGUg c2V0IG9mIGdsb2JhbCBmbGFncyBpZiBwcmVzZW50LgojCmNkbF9vcHRpb24g Q1lHUEtHX0VSUk9SX0NGTEFHU19SRU1PVkUgewogICAgIyBGbGF2b3I6IGRh dGEKICAgICMgTm8gdXNlciB2YWx1ZSwgdW5jb21tZW50IHRoZSBmb2xsb3dp bmcgbGluZSB0byBwcm92aWRlIG9uZS4KICAgICMgdXNlcl92YWx1ZSAiIgog ICAgIyB2YWx1ZV9zb3VyY2UgZGVmYXVsdAogICAgIyBEZWZhdWx0IHZhbHVl OiAiIgp9OwoKIyA8CiMgPAojIDwKCg== ------------=_1583532882-474-7--