From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Denis Arnaud To: git-commits@fedoraproject.org Subject: [rpms/soci] update-to-4.1.4: Removed deprecated patches. Date: Sat, 20 Jun 2026 04:39:23 GMT Message-ID: <178193036364.1.7959974562032072604.rpms-soci-efd925473cdd@fedoraproject.org> List-ID: X-Git-Repo: rpms/soci X-Git-Branch: update-to-4.1.4 X-Git-Rev: efd925473cdd6db681d7281bd54a908875c4b569 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvc29jaQpCcmFuY2gg OiB1cGRhdGUtdG8tNC4xLjQKQ29tbWl0IDogZWZkOTI1NDczY2RkNmRiNjgxZDcyODFiZDU0YTkw ODg3NWM0YjU2OQpBdXRob3IgOiBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4 Lm9yZz4KRGF0ZSAgIDogMjAxMS0xMS0wMVQwMDowODozMCswMTowMApTdGF0cyAgOiArMC8tNjIy NDUgaW4gNCBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3Jw bXMvc29jaS9jL2VmZDkyNTQ3M2NkZDZkYjY4MWQ3MjgxYmQ1NGE5MDg4NzVjNGI1Njk/YnJhbmNo PXVwZGF0ZS10by00LjEuNAoKTG9nOgpSZW1vdmVkIGRlcHJlY2F0ZWQgcGF0Y2hlcy4KCi0tLQpk aWZmIC0tZ2l0IGEvc29jaS0zLjAuMC1hZGQtZG9jLnBhdGNoIGIvc29jaS0zLjAuMC1hZGQtZG9j LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OGQ2ODYyLi4wMDAwMDAwCi0t LSBhL3NvY2ktMy4wLjAtYWRkLWRvYy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM4OSArMCww IEBACi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svQVVUSE9SUyBzb2NpLTMuMC4wX3RyZXAz MDAvQVVUSE9SUwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL0FVVEhPUlMJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvQVVUSE9SUwkyMDA5 LTA0LTE2IDE5OjM3OjEwLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw5IEBACi0rCi0rRGF2 aWQgQ291cnRuZXksIERldmVsb3BlciwgZGFjb3VydG5leSBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5u ZXQKLStNYXRldXN6IExvc2tvdCwgRGV2ZWxvcGVyLCBtbG9za290IGF0IHVzZXJzLnNvdXJjZWZv cmdlLm5ldAotK01hY2llaiBTb2JjemFrLCBBZG1pbiBQcm9qZWN0IE1hbmFnZXIsIG1zb2JjemFr IGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotK1Bhd2VsIEFsZWtzYW5kZXIgRmVkb3J5bnNraSwg RGV2ZWxvcGVyLCBwZmVkb3IgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0Ci0rUmFmYWwgQm9icm93 c2tpLCBEZXZlbG9wZXIsIHJib2JybyBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStKZWFuLU1h cmMsIERldmVsb3Blciwgc2lkanRhbCBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStTdGVwaGVu IEh1dHRvbiwgRGV2ZWxvcGVyLCBzdGVwaGVuaHV0dG9uIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5l dAotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL0lOU1RBTEwgc29jaS0zLjAuMF90cmVw MzAwL0lOU1RBTEwKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9JTlNUQUxMCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL0lOU1RBTEwJMjAx MS0wMi0wOCAyMjozOTo1Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMzY1IEBACi0rSW5z dGFsbGF0aW9uIEluc3RydWN0aW9ucwotKyoqKioqKioqKioqKioqKioqKioqKioqKioKLSsKLStD b3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIw MDQsIDIwMDUsCi0rMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KLSsKLSsgICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBmaWxlLCB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAotK2FyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1 bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAotK25vdGljZSBhbmQgdGhp cyBub3RpY2UgYXJlIHByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBvZmZlcmVkIGFzLWlzLAotK3dp dGhvdXQgd2FycmFudHkgb2YgYW55IGtpbmQuCi0rCi0rQmFzaWMgSW5zdGFsbGF0aW9uCi0rPT09 PT09PT09PT09PT09PT09Ci0rCi0rICAgQnJpZWZseSwgdGhlIHNoZWxsIGNvbW1hbmRzIGAuL2Nv bmZpZ3VyZTsgbWFrZTsgbWFrZSBpbnN0YWxsJyBzaG91bGQKLStjb25maWd1cmUsIGJ1aWxkLCBh bmQgaW5zdGFsbCB0aGlzIHBhY2thZ2UuICBUaGUgZm9sbG93aW5nCi0rbW9yZS1kZXRhaWxlZCBp bnN0cnVjdGlvbnMgYXJlIGdlbmVyaWM7IHNlZSB0aGUgYFJFQURNRScgZmlsZSBmb3IKLStpbnN0 cnVjdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlLiAgU29tZSBwYWNrYWdlcyBwcm92aWRl IHRoaXMKLStgSU5TVEFMTCcgZmlsZSBidXQgZG8gbm90IGltcGxlbWVudCBhbGwgb2YgdGhlIGZl YXR1cmVzIGRvY3VtZW50ZWQKLStiZWxvdy4gIFRoZSBsYWNrIG9mIGFuIG9wdGlvbmFsIGZlYXR1 cmUgaW4gYSBnaXZlbiBwYWNrYWdlIGlzIG5vdAotK25lY2Vzc2FyaWx5IGEgYnVnLiAgTW9yZSBy ZWNvbW1lbmRhdGlvbnMgZm9yIEdOVSBwYWNrYWdlcyBjYW4gYmUgZm91bmQKLStpbiAqbm90ZSBN YWtlZmlsZSBDb252ZW50aW9uczogKHN0YW5kYXJkcylNYWtlZmlsZSBDb252ZW50aW9ucy4KLSsK LSsgICBUaGUgYGNvbmZpZ3VyZScgc2hlbGwgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGNvcnJl Y3QgdmFsdWVzIGZvcgotK3ZhcmlvdXMgc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgdXNlZCBk dXJpbmcgY29tcGlsYXRpb24uICBJdCB1c2VzCi0rdGhvc2UgdmFsdWVzIHRvIGNyZWF0ZSBhIGBN YWtlZmlsZScgaW4gZWFjaCBkaXJlY3Rvcnkgb2YgdGhlIHBhY2thZ2UuCi0rSXQgbWF5IGFsc28g Y3JlYXRlIG9uZSBvciBtb3JlIGAuaCcgZmlsZXMgY29udGFpbmluZyBzeXN0ZW0tZGVwZW5kZW50 Ci0rZGVmaW5pdGlvbnMuICBGaW5hbGx5LCBpdCBjcmVhdGVzIGEgc2hlbGwgc2NyaXB0IGBjb25m aWcuc3RhdHVzJyB0aGF0Ci0reW91IGNhbiBydW4gaW4gdGhlIGZ1dHVyZSB0byByZWNyZWF0ZSB0 aGUgY3VycmVudCBjb25maWd1cmF0aW9uLCBhbmQgYQotK2ZpbGUgYGNvbmZpZy5sb2cnIGNvbnRh aW5pbmcgY29tcGlsZXIgb3V0cHV0ICh1c2VmdWwgbWFpbmx5IGZvcgotK2RlYnVnZ2luZyBgY29u ZmlndXJlJykuCi0rCi0rICAgSXQgY2FuIGFsc28gdXNlIGFuIG9wdGlvbmFsIGZpbGUgKHR5cGlj YWxseSBjYWxsZWQgYGNvbmZpZy5jYWNoZScKLSthbmQgZW5hYmxlZCB3aXRoIGAtLWNhY2hlLWZp bGU9Y29uZmlnLmNhY2hlJyBvciBzaW1wbHkgYC1DJykgdGhhdCBzYXZlcwotK3RoZSByZXN1bHRz IG9mIGl0cyB0ZXN0cyB0byBzcGVlZCB1cCByZWNvbmZpZ3VyaW5nLiAgQ2FjaGluZyBpcwotK2Rp c2FibGVkIGJ5IGRlZmF1bHQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIGFjY2lkZW50YWwgdXNl IG9mIHN0YWxlCi0rY2FjaGUgZmlsZXMuCi0rCi0rICAgSWYgeW91IG5lZWQgdG8gZG8gdW51c3Vh bCB0aGluZ3MgdG8gY29tcGlsZSB0aGUgcGFja2FnZSwgcGxlYXNlIHRyeQotK3RvIGZpZ3VyZSBv dXQgaG93IGBjb25maWd1cmUnIGNvdWxkIGNoZWNrIHdoZXRoZXIgdG8gZG8gdGhlbSwgYW5kIG1h aWwKLStkaWZmcyBvciBpbnN0cnVjdGlvbnMgdG8gdGhlIGFkZHJlc3MgZ2l2ZW4gaW4gdGhlIGBS RUFETUUnIHNvIHRoZXkgY2FuCi0rYmUgY29uc2lkZXJlZCBmb3IgdGhlIG5leHQgcmVsZWFzZS4g IElmIHlvdSBhcmUgdXNpbmcgdGhlIGNhY2hlLCBhbmQgYXQKLStzb21lIHBvaW50IGBjb25maWcu Y2FjaGUnIGNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0IHdhbnQgdG8ga2VlcCwgeW91Ci0rbWF5 IHJlbW92ZSBvciBlZGl0IGl0LgotKwotKyAgIFRoZSBmaWxlIGBjb25maWd1cmUuYWMnIChvciBg Y29uZmlndXJlLmluJykgaXMgdXNlZCB0byBjcmVhdGUKLStgY29uZmlndXJlJyBieSBhIHByb2dy YW0gY2FsbGVkIGBhdXRvY29uZicuICBZb3UgbmVlZCBgY29uZmlndXJlLmFjJyBpZgotK3lvdSB3 YW50IHRvIGNoYW5nZSBpdCBvciByZWdlbmVyYXRlIGBjb25maWd1cmUnIHVzaW5nIGEgbmV3ZXIg dmVyc2lvbgotK29mIGBhdXRvY29uZicuCi0rCi0rICAgVGhlIHNpbXBsZXN0IHdheSB0byBjb21w aWxlIHRoaXMgcGFja2FnZSBpczoKLSsKLSsgIDEuIGBjZCcgdG8gdGhlIGRpcmVjdG9yeSBjb250 YWluaW5nIHRoZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUgYW5kIHR5cGUKLSsgICAgIGAuL2NvbmZp Z3VyZScgdG8gY29uZmlndXJlIHRoZSBwYWNrYWdlIGZvciB5b3VyIHN5c3RlbS4KLSsKLSsgICAg IFJ1bm5pbmcgYGNvbmZpZ3VyZScgbWlnaHQgdGFrZSBhIHdoaWxlLiAgV2hpbGUgcnVubmluZywg aXQgcHJpbnRzCi0rICAgICBzb21lIG1lc3NhZ2VzIHRlbGxpbmcgd2hpY2ggZmVhdHVyZXMgaXQg aXMgY2hlY2tpbmcgZm9yLgotKwotKyAgMi4gVHlwZSBgbWFrZScgdG8gY29tcGlsZSB0aGUgcGFj a2FnZS4KLSsKLSsgIDMuIE9wdGlvbmFsbHksIHR5cGUgYG1ha2UgY2hlY2snIHRvIHJ1biBhbnkg c2VsZi10ZXN0cyB0aGF0IGNvbWUgd2l0aAotKyAgICAgdGhlIHBhY2thZ2UsIGdlbmVyYWxseSB1 c2luZyB0aGUganVzdC1idWlsdCB1bmluc3RhbGxlZCBiaW5hcmllcy4KLSsKLSsgIDQuIFR5cGUg YG1ha2UgaW5zdGFsbCcgdG8gaW5zdGFsbCB0aGUgcHJvZ3JhbXMgYW5kIGFueSBkYXRhIGZpbGVz IGFuZAotKyAgICAgZG9jdW1lbnRhdGlvbi4gIFdoZW4gaW5zdGFsbGluZyBpbnRvIGEgcHJlZml4 IG93bmVkIGJ5IHJvb3QsIGl0IGlzCi0rICAgICByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYWNrYWdl IGJlIGNvbmZpZ3VyZWQgYW5kIGJ1aWx0IGFzIGEgcmVndWxhcgotKyAgICAgdXNlciwgYW5kIG9u bHkgdGhlIGBtYWtlIGluc3RhbGwnIHBoYXNlIGV4ZWN1dGVkIHdpdGggcm9vdAotKyAgICAgcHJp dmlsZWdlcy4KLSsKLSsgIDUuIE9wdGlvbmFsbHksIHR5cGUgYG1ha2UgaW5zdGFsbGNoZWNrJyB0 byByZXBlYXQgYW55IHNlbGYtdGVzdHMsIGJ1dAotKyAgICAgdGhpcyB0aW1lIHVzaW5nIHRoZSBi aW5hcmllcyBpbiB0aGVpciBmaW5hbCBpbnN0YWxsZWQgbG9jYXRpb24uCi0rICAgICBUaGlzIHRh cmdldCBkb2VzIG5vdCBpbnN0YWxsIGFueXRoaW5nLiAgUnVubmluZyB0aGlzIHRhcmdldCBhcyBh Ci0rICAgICByZWd1bGFyIHVzZXIsIHBhcnRpY3VsYXJseSBpZiB0aGUgcHJpb3IgYG1ha2UgaW5z dGFsbCcgcmVxdWlyZWQKLSsgICAgIHJvb3QgcHJpdmlsZWdlcywgdmVyaWZpZXMgdGhhdCB0aGUg aW5zdGFsbGF0aW9uIGNvbXBsZXRlZAotKyAgICAgY29ycmVjdGx5LgotKwotKyAgNi4gWW91IGNh biByZW1vdmUgdGhlIHByb2dyYW0gYmluYXJpZXMgYW5kIG9iamVjdCBmaWxlcyBmcm9tIHRoZQot KyAgICAgc291cmNlIGNvZGUgZGlyZWN0b3J5IGJ5IHR5cGluZyBgbWFrZSBjbGVhbicuICBUbyBh bHNvIHJlbW92ZSB0aGUKLSsgICAgIGZpbGVzIHRoYXQgYGNvbmZpZ3VyZScgY3JlYXRlZCAoc28g eW91IGNhbiBjb21waWxlIHRoZSBwYWNrYWdlIGZvcgotKyAgICAgYSBkaWZmZXJlbnQga2luZCBv ZiBjb21wdXRlciksIHR5cGUgYG1ha2UgZGlzdGNsZWFuJy4gIFRoZXJlIGlzCi0rICAgICBhbHNv IGEgYG1ha2UgbWFpbnRhaW5lci1jbGVhbicgdGFyZ2V0LCBidXQgdGhhdCBpcyBpbnRlbmRlZCBt YWlubHkKLSsgICAgIGZvciB0aGUgcGFja2FnZSdzIGRldmVsb3BlcnMuICBJZiB5b3UgdXNlIGl0 LCB5b3UgbWF5IGhhdmUgdG8gZ2V0Ci0rICAgICBhbGwgc29ydHMgb2Ygb3RoZXIgcHJvZ3JhbXMg aW4gb3JkZXIgdG8gcmVnZW5lcmF0ZSBmaWxlcyB0aGF0IGNhbWUKLSsgICAgIHdpdGggdGhlIGRp c3RyaWJ1dGlvbi4KLSsKLSsgIDcuIE9mdGVuLCB5b3UgY2FuIGFsc28gdHlwZSBgbWFrZSB1bmlu c3RhbGwnIHRvIHJlbW92ZSB0aGUgaW5zdGFsbGVkCi0rICAgICBmaWxlcyBhZ2Fpbi4gIEluIHBy YWN0aWNlLCBub3QgYWxsIHBhY2thZ2VzIGhhdmUgdGVzdGVkIHRoYXQKLSsgICAgIHVuaW5zdGFs bGF0aW9uIHdvcmtzIGNvcnJlY3RseSwgZXZlbiB0aG91Z2ggaXQgaXMgcmVxdWlyZWQgYnkgdGhl Ci0rICAgICBHTlUgQ29kaW5nIFN0YW5kYXJkcy4KLSsKLSsgIDguIFNvbWUgcGFja2FnZXMsIHBh cnRpY3VsYXJseSB0aG9zZSB0aGF0IHVzZSBBdXRvbWFrZSwgcHJvdmlkZSBgbWFrZQotKyAgICAg ZGlzdGNoZWNrJywgd2hpY2ggY2FuIGJ5IHVzZWQgYnkgZGV2ZWxvcGVycyB0byB0ZXN0IHRoYXQg YWxsIG90aGVyCi0rICAgICB0YXJnZXRzIGxpa2UgYG1ha2UgaW5zdGFsbCcgYW5kIGBtYWtlIHVu aW5zdGFsbCcgd29yayBjb3JyZWN0bHkuCi0rICAgICBUaGlzIHRhcmdldCBpcyBnZW5lcmFsbHkg bm90IHJ1biBieSBlbmQgdXNlcnMuCi0rCi0rQ29tcGlsZXJzIGFuZCBPcHRpb25zCi0rPT09PT09 PT09PT09PT09PT09PT09Ci0rCi0rICAgU29tZSBzeXN0ZW1zIHJlcXVpcmUgdW51c3VhbCBvcHRp b25zIGZvciBjb21waWxhdGlvbiBvciBsaW5raW5nIHRoYXQKLSt0aGUgYGNvbmZpZ3VyZScgc2Ny aXB0IGRvZXMgbm90IGtub3cgYWJvdXQuICBSdW4gYC4vY29uZmlndXJlIC0taGVscCcKLStmb3Ig ZGV0YWlscyBvbiBzb21lIG9mIHRoZSBwZXJ0aW5lbnQgZW52aXJvbm1lbnQgdmFyaWFibGVzLgot KwotKyAgIFlvdSBjYW4gZ2l2ZSBgY29uZmlndXJlJyBpbml0aWFsIHZhbHVlcyBmb3IgY29uZmln dXJhdGlvbiBwYXJhbWV0ZXJzCi0rYnkgc2V0dGluZyB2YXJpYWJsZXMgaW4gdGhlIGNvbW1hbmQg bGluZSBvciBpbiB0aGUgZW52aXJvbm1lbnQuICBIZXJlCi0raXMgYW4gZXhhbXBsZToKLSsKLSsg ICAgIC4vY29uZmlndXJlIENDPWM5OSBDRkxBR1M9LWcgTElCUz0tbHBvc2l4Ci0rCi0rICAgKk5v dGUgRGVmaW5pbmcgVmFyaWFibGVzOjosIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rQ29tcGlsaW5n IEZvciBNdWx0aXBsZSBBcmNoaXRlY3R1cmVzCi0rPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0rCi0rICAgWW91IGNhbiBjb21waWxlIHRoZSBwYWNrYWdlIGZvciBtb3JlIHRo YW4gb25lIGtpbmQgb2YgY29tcHV0ZXIgYXQgdGhlCi0rc2FtZSB0aW1lLCBieSBwbGFjaW5nIHRo ZSBvYmplY3QgZmlsZXMgZm9yIGVhY2ggYXJjaGl0ZWN0dXJlIGluIHRoZWlyCi0rb3duIGRpcmVj dG9yeS4gIFRvIGRvIHRoaXMsIHlvdSBjYW4gdXNlIEdOVSBgbWFrZScuICBgY2QnIHRvIHRoZQot K2RpcmVjdG9yeSB3aGVyZSB5b3Ugd2FudCB0aGUgb2JqZWN0IGZpbGVzIGFuZCBleGVjdXRhYmxl cyB0byBnbyBhbmQgcnVuCi0rdGhlIGBjb25maWd1cmUnIHNjcmlwdC4gIGBjb25maWd1cmUnIGF1 dG9tYXRpY2FsbHkgY2hlY2tzIGZvciB0aGUKLStzb3VyY2UgY29kZSBpbiB0aGUgZGlyZWN0b3J5 IHRoYXQgYGNvbmZpZ3VyZScgaXMgaW4gYW5kIGluIGAuLicuICBUaGlzCi0raXMga25vd24gYXMg YSAiVlBBVEgiIGJ1aWxkLgotKwotKyAgIFdpdGggYSBub24tR05VIGBtYWtlJywgaXQgaXMgc2Fm ZXIgdG8gY29tcGlsZSB0aGUgcGFja2FnZSBmb3Igb25lCi0rYXJjaGl0ZWN0dXJlIGF0IGEgdGlt ZSBpbiB0aGUgc291cmNlIGNvZGUgZGlyZWN0b3J5LiAgQWZ0ZXIgeW91IGhhdmUKLStpbnN0YWxs ZWQgdGhlIHBhY2thZ2UgZm9yIG9uZSBhcmNoaXRlY3R1cmUsIHVzZSBgbWFrZSBkaXN0Y2xlYW4n IGJlZm9yZQotK3JlY29uZmlndXJpbmcgZm9yIGFub3RoZXIgYXJjaGl0ZWN0dXJlLgotKwotKyAg IE9uIE1hY09TIFggMTAuNSBhbmQgbGF0ZXIgc3lzdGVtcywgeW91IGNhbiBjcmVhdGUgbGlicmFy aWVzIGFuZAotK2V4ZWN1dGFibGVzIHRoYXQgd29yayBvbiBtdWx0aXBsZSBzeXN0ZW0gdHlwZXMt LWtub3duIGFzICJmYXQiIG9yCi0rInVuaXZlcnNhbCIgYmluYXJpZXMtLWJ5IHNwZWNpZnlpbmcg bXVsdGlwbGUgYC1hcmNoJyBvcHRpb25zIHRvIHRoZQotK2NvbXBpbGVyIGJ1dCBvbmx5IGEgc2lu Z2xlIGAtYXJjaCcgb3B0aW9uIHRvIHRoZSBwcmVwcm9jZXNzb3IuICBMaWtlCi0rdGhpczoKLSsK LSsgICAgIC4vY29uZmlndXJlIENDPSJnY2MgLWFyY2ggaTM4NiAtYXJjaCB4ODZfNjQgLWFyY2gg cHBjIC1hcmNoIHBwYzY0IiBcCi0rICAgICAgICAgICAgICAgICBDWFg9ImcrKyAtYXJjaCBpMzg2 IC1hcmNoIHg4Nl82NCAtYXJjaCBwcGMgLWFyY2ggcHBjNjQiIFwKLSsgICAgICAgICAgICAgICAg IENQUD0iZ2NjIC1FIiBDWFhDUFA9ImcrKyAtRSIKLSsKLSsgICBUaGlzIGlzIG5vdCBndWFyYW50 ZWVkIHRvIHByb2R1Y2Ugd29ya2luZyBvdXRwdXQgaW4gYWxsIGNhc2VzLCB5b3UKLSttYXkgaGF2 ZSB0byBidWlsZCBvbmUgYXJjaGl0ZWN0dXJlIGF0IGEgdGltZSBhbmQgY29tYmluZSB0aGUgcmVz dWx0cwotK3VzaW5nIHRoZSBgbGlwbycgdG9vbCBpZiB5b3UgaGF2ZSBwcm9ibGVtcy4KLSsKLStJ bnN0YWxsYXRpb24gTmFtZXMKLSs9PT09PT09PT09PT09PT09PT0KLSsKLSsgICBCeSBkZWZhdWx0 LCBgbWFrZSBpbnN0YWxsJyBpbnN0YWxscyB0aGUgcGFja2FnZSdzIGNvbW1hbmRzIHVuZGVyCi0r YC91c3IvbG9jYWwvYmluJywgaW5jbHVkZSBmaWxlcyB1bmRlciBgL3Vzci9sb2NhbC9pbmNsdWRl JywgZXRjLiAgWW91Ci0rY2FuIHNwZWNpZnkgYW4gaW5zdGFsbGF0aW9uIHByZWZpeCBvdGhlciB0 aGFuIGAvdXNyL2xvY2FsJyBieSBnaXZpbmcKLStgY29uZmlndXJlJyB0aGUgb3B0aW9uIGAtLXBy ZWZpeD1QUkVGSVgnLCB3aGVyZSBQUkVGSVggbXVzdCBiZSBhbgotK2Fic29sdXRlIGZpbGUgbmFt ZS4KLSsKLSsgICBZb3UgY2FuIHNwZWNpZnkgc2VwYXJhdGUgaW5zdGFsbGF0aW9uIHByZWZpeGVz IGZvcgotK2FyY2hpdGVjdHVyZS1zcGVjaWZpYyBmaWxlcyBhbmQgYXJjaGl0ZWN0dXJlLWluZGVw ZW5kZW50IGZpbGVzLiAgSWYgeW91Ci0rcGFzcyB0aGUgb3B0aW9uIGAtLWV4ZWMtcHJlZml4PVBS RUZJWCcgdG8gYGNvbmZpZ3VyZScsIHRoZSBwYWNrYWdlIHVzZXMKLStQUkVGSVggYXMgdGhlIHBy ZWZpeCBmb3IgaW5zdGFsbGluZyBwcm9ncmFtcyBhbmQgbGlicmFyaWVzLgotK0RvY3VtZW50YXRp b24gYW5kIG90aGVyIGRhdGEgZmlsZXMgc3RpbGwgdXNlIHRoZSByZWd1bGFyIHByZWZpeC4KLSsK LSsgICBJbiBhZGRpdGlvbiwgaWYgeW91IHVzZSBhbiB1bnVzdWFsIGRpcmVjdG9yeSBsYXlvdXQg eW91IGNhbiBnaXZlCi0rb3B0aW9ucyBsaWtlIGAtLWJpbmRpcj1ESVInIHRvIHNwZWNpZnkgZGlm ZmVyZW50IHZhbHVlcyBmb3IgcGFydGljdWxhcgotK2tpbmRzIG9mIGZpbGVzLiAgUnVuIGBjb25m aWd1cmUgLS1oZWxwJyBmb3IgYSBsaXN0IG9mIHRoZSBkaXJlY3RvcmllcwotK3lvdSBjYW4gc2V0 IGFuZCB3aGF0IGtpbmRzIG9mIGZpbGVzIGdvIGluIHRoZW0uICBJbiBnZW5lcmFsLCB0aGUKLStk ZWZhdWx0IGZvciB0aGVzZSBvcHRpb25zIGlzIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiBgJHtwcmVm aXh9Jywgc28gdGhhdAotK3NwZWNpZnlpbmcganVzdCBgLS1wcmVmaXgnIHdpbGwgYWZmZWN0IGFs bCBvZiB0aGUgb3RoZXIgZGlyZWN0b3J5Ci0rc3BlY2lmaWNhdGlvbnMgdGhhdCB3ZXJlIG5vdCBl eHBsaWNpdGx5IHByb3ZpZGVkLgotKwotKyAgIFRoZSBtb3N0IHBvcnRhYmxlIHdheSB0byBhZmZl Y3QgaW5zdGFsbGF0aW9uIGxvY2F0aW9ucyBpcyB0byBwYXNzIHRoZQotK2NvcnJlY3QgbG9jYXRp b25zIHRvIGBjb25maWd1cmUnOyBob3dldmVyLCBtYW55IHBhY2thZ2VzIHByb3ZpZGUgb25lIG9y Ci0rYm90aCBvZiB0aGUgZm9sbG93aW5nIHNob3J0Y3V0cyBvZiBwYXNzaW5nIHZhcmlhYmxlIGFz c2lnbm1lbnRzIHRvIHRoZQotK2BtYWtlIGluc3RhbGwnIGNvbW1hbmQgbGluZSB0byBjaGFuZ2Ug aW5zdGFsbGF0aW9uIGxvY2F0aW9ucyB3aXRob3V0Ci0raGF2aW5nIHRvIHJlY29uZmlndXJlIG9y IHJlY29tcGlsZS4KLSsKLSsgICBUaGUgZmlyc3QgbWV0aG9kIGludm9sdmVzIHByb3ZpZGluZyBh biBvdmVycmlkZSB2YXJpYWJsZSBmb3IgZWFjaAotK2FmZmVjdGVkIGRpcmVjdG9yeS4gIEZvciBl eGFtcGxlLCBgbWFrZSBpbnN0YWxsCi0rcHJlZml4PS9hbHRlcm5hdGUvZGlyZWN0b3J5JyB3aWxs IGNob29zZSBhbiBhbHRlcm5hdGUgbG9jYXRpb24gZm9yIGFsbAotK2RpcmVjdG9yeSBjb25maWd1 cmF0aW9uIHZhcmlhYmxlcyB0aGF0IHdlcmUgZXhwcmVzc2VkIGluIHRlcm1zIG9mCi0rYCR7cHJl Zml4fScuICBBbnkgZGlyZWN0b3JpZXMgdGhhdCB3ZXJlIHNwZWNpZmllZCBkdXJpbmcgYGNvbmZp Z3VyZScsCi0rYnV0IG5vdCBpbiB0ZXJtcyBvZiBgJHtwcmVmaXh9JywgbXVzdCBlYWNoIGJlIG92 ZXJyaWRkZW4gYXQgaW5zdGFsbAotK3RpbWUgZm9yIHRoZSBlbnRpcmUgaW5zdGFsbGF0aW9uIHRv IGJlIHJlbG9jYXRlZC4gIFRoZSBhcHByb2FjaCBvZgotK21ha2VmaWxlIHZhcmlhYmxlIG92ZXJy aWRlcyBmb3IgZWFjaCBkaXJlY3RvcnkgdmFyaWFibGUgaXMgcmVxdWlyZWQgYnkKLSt0aGUgR05V IENvZGluZyBTdGFuZGFyZHMsIGFuZCBpZGVhbGx5IGNhdXNlcyBubyByZWNvbXBpbGF0aW9uLgot K0hvd2V2ZXIsIHNvbWUgcGxhdGZvcm1zIGhhdmUga25vd24gbGltaXRhdGlvbnMgd2l0aCB0aGUg c2VtYW50aWNzIG9mCi0rc2hhcmVkIGxpYnJhcmllcyB0aGF0IGVuZCB1cCByZXF1aXJpbmcgcmVj b21waWxhdGlvbiB3aGVuIHVzaW5nIHRoaXMKLSttZXRob2QsIHBhcnRpY3VsYXJseSBub3RpY2Vh YmxlIGluIHBhY2thZ2VzIHRoYXQgdXNlIEdOVSBMaWJ0b29sLgotKwotKyAgIFRoZSBzZWNvbmQg bWV0aG9kIGludm9sdmVzIHByb3ZpZGluZyB0aGUgYERFU1RESVInIHZhcmlhYmxlLiAgRm9yCi0r ZXhhbXBsZSwgYG1ha2UgaW5zdGFsbCBERVNURElSPS9hbHRlcm5hdGUvZGlyZWN0b3J5JyB3aWxs IHByZXBlbmQKLStgL2FsdGVybmF0ZS9kaXJlY3RvcnknIGJlZm9yZSBhbGwgaW5zdGFsbGF0aW9u IG5hbWVzLiAgVGhlIGFwcHJvYWNoIG9mCi0rYERFU1RESVInIG92ZXJyaWRlcyBpcyBub3QgcmVx dWlyZWQgYnkgdGhlIEdOVSBDb2RpbmcgU3RhbmRhcmRzLCBhbmQKLStkb2VzIG5vdCB3b3JrIG9u IHBsYXRmb3JtcyB0aGF0IGhhdmUgZHJpdmUgbGV0dGVycy4gIE9uIHRoZSBvdGhlciBoYW5kLAot K2l0IGRvZXMgYmV0dGVyIGF0IGF2b2lkaW5nIHJlY29tcGlsYXRpb24gaXNzdWVzLCBhbmQgd29y a3Mgd2VsbCBldmVuCi0rd2hlbiBzb21lIGRpcmVjdG9yeSBvcHRpb25zIHdlcmUgbm90IHNwZWNp ZmllZCBpbiB0ZXJtcyBvZiBgJHtwcmVmaXh9JwotK2F0IGBjb25maWd1cmUnIHRpbWUuCi0rCi0r T3B0aW9uYWwgRmVhdHVyZXMKLSs9PT09PT09PT09PT09PT09PQotKwotKyAgIElmIHRoZSBwYWNr YWdlIHN1cHBvcnRzIGl0LCB5b3UgY2FuIGNhdXNlIHByb2dyYW1zIHRvIGJlIGluc3RhbGxlZAot K3dpdGggYW4gZXh0cmEgcHJlZml4IG9yIHN1ZmZpeCBvbiB0aGVpciBuYW1lcyBieSBnaXZpbmcg YGNvbmZpZ3VyZScgdGhlCi0rb3B0aW9uIGAtLXByb2dyYW0tcHJlZml4PVBSRUZJWCcgb3IgYC0t cHJvZ3JhbS1zdWZmaXg9U1VGRklYJy4KLSsKLSsgICBTb21lIHBhY2thZ2VzIHBheSBhdHRlbnRp b24gdG8gYC0tZW5hYmxlLUZFQVRVUkUnIG9wdGlvbnMgdG8KLStgY29uZmlndXJlJywgd2hlcmUg RkVBVFVSRSBpbmRpY2F0ZXMgYW4gb3B0aW9uYWwgcGFydCBvZiB0aGUgcGFja2FnZS4KLStUaGV5 IG1heSBhbHNvIHBheSBhdHRlbnRpb24gdG8gYC0td2l0aC1QQUNLQUdFJyBvcHRpb25zLCB3aGVy ZSBQQUNLQUdFCi0raXMgc29tZXRoaW5nIGxpa2UgYGdudS1hcycgb3IgYHgnIChmb3IgdGhlIFgg V2luZG93IFN5c3RlbSkuICBUaGUKLStgUkVBRE1FJyBzaG91bGQgbWVudGlvbiBhbnkgYC0tZW5h YmxlLScgYW5kIGAtLXdpdGgtJyBvcHRpb25zIHRoYXQgdGhlCi0rcGFja2FnZSByZWNvZ25pemVz LgotKwotKyAgIEZvciBwYWNrYWdlcyB0aGF0IHVzZSB0aGUgWCBXaW5kb3cgU3lzdGVtLCBgY29u ZmlndXJlJyBjYW4gdXN1YWxseQotK2ZpbmQgdGhlIFggaW5jbHVkZSBhbmQgbGlicmFyeSBmaWxl cyBhdXRvbWF0aWNhbGx5LCBidXQgaWYgaXQgZG9lc24ndCwKLSt5b3UgY2FuIHVzZSB0aGUgYGNv bmZpZ3VyZScgb3B0aW9ucyBgLS14LWluY2x1ZGVzPURJUicgYW5kCi0rYC0teC1saWJyYXJpZXM9 RElSJyB0byBzcGVjaWZ5IHRoZWlyIGxvY2F0aW9ucy4KLSsKLSsgICBTb21lIHBhY2thZ2VzIG9m ZmVyIHRoZSBhYmlsaXR5IHRvIGNvbmZpZ3VyZSBob3cgdmVyYm9zZSB0aGUKLStleGVjdXRpb24g b2YgYG1ha2UnIHdpbGwgYmUuICBGb3IgdGhlc2UgcGFja2FnZXMsIHJ1bm5pbmcgYC4vY29uZmln dXJlCi0rLS1lbmFibGUtc2lsZW50LXJ1bGVzJyBzZXRzIHRoZSBkZWZhdWx0IHRvIG1pbmltYWwg b3V0cHV0LCB3aGljaCBjYW4gYmUKLStvdmVycmlkZGVuIHdpdGggYG1ha2UgVj0xJzsgd2hpbGUg cnVubmluZyBgLi9jb25maWd1cmUKLSstLWRpc2FibGUtc2lsZW50LXJ1bGVzJyBzZXRzIHRoZSBk ZWZhdWx0IHRvIHZlcmJvc2UsIHdoaWNoIGNhbiBiZQotK292ZXJyaWRkZW4gd2l0aCBgbWFrZSBW PTAnLgotKwotK1BhcnRpY3VsYXIgc3lzdGVtcwotKz09PT09PT09PT09PT09PT09PQotKwotKyAg IE9uIEhQLVVYLCB0aGUgZGVmYXVsdCBDIGNvbXBpbGVyIGlzIG5vdCBBTlNJIEMgY29tcGF0aWJs ZS4gIElmIEdOVQotK0NDIGlzIG5vdCBpbnN0YWxsZWQsIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVz ZSB0aGUgZm9sbG93aW5nIG9wdGlvbnMgaW4KLStvcmRlciB0byB1c2UgYW4gQU5TSSBDIGNvbXBp bGVyOgotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9ImNjIC1BZSAtRF9YT1BFTl9TT1VSQ0U9NTAw IgotKwotK2FuZCBpZiB0aGF0IGRvZXNuJ3Qgd29yaywgaW5zdGFsbCBwcmUtYnVpbHQgYmluYXJp ZXMgb2YgR0NDIGZvciBIUC1VWC4KLSsKLSsgICBPbiBPU0YvMSBhLmsuYS4gVHJ1NjQsIHNvbWUg dmVyc2lvbnMgb2YgdGhlIGRlZmF1bHQgQyBjb21waWxlciBjYW5ub3QKLStwYXJzZSBpdHMgYDx3 Y2hhci5oPicgaGVhZGVyIGZpbGUuICBUaGUgb3B0aW9uIGAtbm9kdGsnIGNhbiBiZSB1c2VkIGFz Ci0rYSB3b3JrYXJvdW5kLiAgSWYgR05VIENDIGlzIG5vdCBpbnN0YWxsZWQsIGl0IGlzIHRoZXJl Zm9yZSByZWNvbW1lbmRlZAotK3RvIHRyeQotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9ImNjIgot KwotK2FuZCBpZiB0aGF0IGRvZXNuJ3Qgd29yaywgdHJ5Ci0rCi0rICAgICAuL2NvbmZpZ3VyZSBD Qz0iY2MgLW5vZHRrIgotKwotKyAgIE9uIFNvbGFyaXMsIGRvbid0IHB1dCBgL3Vzci91Y2InIGVh cmx5IGluIHlvdXIgYFBBVEgnLiAgVGhpcwotK2RpcmVjdG9yeSBjb250YWlucyBzZXZlcmFsIGR5 c2Z1bmN0aW9uYWwgcHJvZ3JhbXM7IHdvcmtpbmcgdmFyaWFudHMgb2YKLSt0aGVzZSBwcm9ncmFt cyBhcmUgYXZhaWxhYmxlIGluIGAvdXNyL2JpbicuICBTbywgaWYgeW91IG5lZWQgYC91c3IvdWNi JwotK2luIHlvdXIgYFBBVEgnLCBwdXQgaXQgX2FmdGVyXyBgL3Vzci9iaW4nLgotKwotKyAgIE9u IEhhaWt1LCBzb2Z0d2FyZSBpbnN0YWxsZWQgZm9yIGFsbCB1c2VycyBnb2VzIGluIGAvYm9vdC9j b21tb24nLAotK25vdCBgL3Vzci9sb2NhbCcuICBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhl IGZvbGxvd2luZyBvcHRpb25zOgotKwotKyAgICAgLi9jb25maWd1cmUgLS1wcmVmaXg9L2Jvb3Qv Y29tbW9uCi0rCi0rU3BlY2lmeWluZyB0aGUgU3lzdGVtIFR5cGUKLSs9PT09PT09PT09PT09PT09 PT09PT09PT09PQotKwotKyAgIFRoZXJlIG1heSBiZSBzb21lIGZlYXR1cmVzIGBjb25maWd1cmUn IGNhbm5vdCBmaWd1cmUgb3V0Ci0rYXV0b21hdGljYWxseSwgYnV0IG5lZWRzIHRvIGRldGVybWlu ZSBieSB0aGUgdHlwZSBvZiBtYWNoaW5lIHRoZSBwYWNrYWdlCi0rd2lsbCBydW4gb24uICBVc3Vh bGx5LCBhc3N1bWluZyB0aGUgcGFja2FnZSBpcyBidWlsdCB0byBiZSBydW4gb24gdGhlCi0rX3Nh bWVfIGFyY2hpdGVjdHVyZXMsIGBjb25maWd1cmUnIGNhbiBmaWd1cmUgdGhhdCBvdXQsIGJ1dCBp ZiBpdCBwcmludHMKLSthIG1lc3NhZ2Ugc2F5aW5nIGl0IGNhbm5vdCBndWVzcyB0aGUgbWFjaGlu ZSB0eXBlLCBnaXZlIGl0IHRoZQotK2AtLWJ1aWxkPVRZUEUnIG9wdGlvbi4gIFRZUEUgY2FuIGVp dGhlciBiZSBhIHNob3J0IG5hbWUgZm9yIHRoZSBzeXN0ZW0KLSt0eXBlLCBzdWNoIGFzIGBzdW40 Jywgb3IgYSBjYW5vbmljYWwgbmFtZSB3aGljaCBoYXMgdGhlIGZvcm06Ci0rCi0rICAgICBDUFUt Q09NUEFOWS1TWVNURU0KLSsKLSt3aGVyZSBTWVNURU0gY2FuIGhhdmUgb25lIG9mIHRoZXNlIGZv cm1zOgotKwotKyAgICAgT1MKLSsgICAgIEtFUk5FTC1PUwotKwotKyAgIFNlZSB0aGUgZmlsZSBg Y29uZmlnLnN1YicgZm9yIHRoZSBwb3NzaWJsZSB2YWx1ZXMgb2YgZWFjaCBmaWVsZC4gIElmCi0r YGNvbmZpZy5zdWInIGlzbid0IGluY2x1ZGVkIGluIHRoaXMgcGFja2FnZSwgdGhlbiB0aGlzIHBh Y2thZ2UgZG9lc24ndAotK25lZWQgdG8ga25vdyB0aGUgbWFjaGluZSB0eXBlLgotKwotKyAgIElm IHlvdSBhcmUgX2J1aWxkaW5nXyBjb21waWxlciB0b29scyBmb3IgY3Jvc3MtY29tcGlsaW5nLCB5 b3Ugc2hvdWxkCi0rdXNlIHRoZSBvcHRpb24gYC0tdGFyZ2V0PVRZUEUnIHRvIHNlbGVjdCB0aGUg dHlwZSBvZiBzeXN0ZW0gdGhleSB3aWxsCi0rcHJvZHVjZSBjb2RlIGZvci4KLSsKLSsgICBJZiB5 b3Ugd2FudCB0byBfdXNlXyBhIGNyb3NzIGNvbXBpbGVyLCB0aGF0IGdlbmVyYXRlcyBjb2RlIGZv ciBhCi0rcGxhdGZvcm0gZGlmZmVyZW50IGZyb20gdGhlIGJ1aWxkIHBsYXRmb3JtLCB5b3Ugc2hv dWxkIHNwZWNpZnkgdGhlCi0rImhvc3QiIHBsYXRmb3JtIChpLmUuLCB0aGF0IG9uIHdoaWNoIHRo ZSBnZW5lcmF0ZWQgcHJvZ3JhbXMgd2lsbAotK2V2ZW50dWFsbHkgYmUgcnVuKSB3aXRoIGAtLWhv c3Q9VFlQRScuCi0rCi0rU2hhcmluZyBEZWZhdWx0cwotKz09PT09PT09PT09PT09PT0KLSsKLSsg ICBJZiB5b3Ugd2FudCB0byBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGBjb25maWd1cmUnIHNjcmlw dHMgdG8gc2hhcmUsCi0reW91IGNhbiBjcmVhdGUgYSBzaXRlIHNoZWxsIHNjcmlwdCBjYWxsZWQg YGNvbmZpZy5zaXRlJyB0aGF0IGdpdmVzCi0rZGVmYXVsdCB2YWx1ZXMgZm9yIHZhcmlhYmxlcyBs aWtlIGBDQycsIGBjYWNoZV9maWxlJywgYW5kIGBwcmVmaXgnLgotK2Bjb25maWd1cmUnIGxvb2tz IGZvciBgUFJFRklYL3NoYXJlL2NvbmZpZy5zaXRlJyBpZiBpdCBleGlzdHMsIHRoZW4KLStgUFJF RklYL2V0Yy9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLiAgT3IsIHlvdSBjYW4gc2V0IHRoZQot K2BDT05GSUdfU0lURScgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhlIGxvY2F0aW9uIG9mIHRo ZSBzaXRlIHNjcmlwdC4KLStBIHdhcm5pbmc6IG5vdCBhbGwgYGNvbmZpZ3VyZScgc2NyaXB0cyBs b29rIGZvciBhIHNpdGUgc2NyaXB0LgotKwotK0RlZmluaW5nIFZhcmlhYmxlcwotKz09PT09PT09 PT09PT09PT09PQotKwotKyAgIFZhcmlhYmxlcyBub3QgZGVmaW5lZCBpbiBhIHNpdGUgc2hlbGwg c2NyaXB0IGNhbiBiZSBzZXQgaW4gdGhlCi0rZW52aXJvbm1lbnQgcGFzc2VkIHRvIGBjb25maWd1 cmUnLiAgSG93ZXZlciwgc29tZSBwYWNrYWdlcyBtYXkgcnVuCi0rY29uZmlndXJlIGFnYWluIGR1 cmluZyB0aGUgYnVpbGQsIGFuZCB0aGUgY3VzdG9taXplZCB2YWx1ZXMgb2YgdGhlc2UKLSt2YXJp YWJsZXMgbWF5IGJlIGxvc3QuICBJbiBvcmRlciB0byBhdm9pZCB0aGlzIHByb2JsZW0sIHlvdSBz aG91bGQgc2V0Ci0rdGhlbSBpbiB0aGUgYGNvbmZpZ3VyZScgY29tbWFuZCBsaW5lLCB1c2luZyBg VkFSPXZhbHVlJy4gIEZvciBleGFtcGxlOgotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9L3Vzci9s b2NhbDIvYmluL2djYwotKwotK2NhdXNlcyB0aGUgc3BlY2lmaWVkIGBnY2MnIHRvIGJlIHVzZWQg YXMgdGhlIEMgY29tcGlsZXIgKHVubGVzcyBpdCBpcwotK292ZXJyaWRkZW4gaW4gdGhlIHNpdGUg c2hlbGwgc2NyaXB0KS4KLSsKLStVbmZvcnR1bmF0ZWx5LCB0aGlzIHRlY2huaXF1ZSBkb2VzIG5v dCB3b3JrIGZvciBgQ09ORklHX1NIRUxMJyBkdWUgdG8KLSthbiBBdXRvY29uZiBidWcuICBVbnRp bCB0aGUgYnVnIGlzIGZpeGVkIHlvdSBjYW4gdXNlIHRoaXMgd29ya2Fyb3VuZDoKLSsKLSsgICAg IENPTkZJR19TSEVMTD0vYmluL2Jhc2ggL2Jpbi9iYXNoIC4vY29uZmlndXJlIENPTkZJR19TSEVM TD0vYmluL2Jhc2gKLSsKLStgY29uZmlndXJlJyBJbnZvY2F0aW9uCi0rPT09PT09PT09PT09PT09 PT09PT09PQotKwotKyAgIGBjb25maWd1cmUnIHJlY29nbml6ZXMgdGhlIGZvbGxvd2luZyBvcHRp b25zIHRvIGNvbnRyb2wgaG93IGl0Ci0rb3BlcmF0ZXMuCi0rCi0rYC0taGVscCcKLStgLWgnCi0r ICAgICBQcmludCBhIHN1bW1hcnkgb2YgYWxsIG9mIHRoZSBvcHRpb25zIHRvIGBjb25maWd1cmUn LCBhbmQgZXhpdC4KLSsKLStgLS1oZWxwPXNob3J0JwotK2AtLWhlbHA9cmVjdXJzaXZlJwotKyAg ICAgUHJpbnQgYSBzdW1tYXJ5IG9mIHRoZSBvcHRpb25zIHVuaXF1ZSB0byB0aGlzIHBhY2thZ2Un cwotKyAgICAgYGNvbmZpZ3VyZScsIGFuZCBleGl0LiAgVGhlIGBzaG9ydCcgdmFyaWFudCBsaXN0 cyBvcHRpb25zIHVzZWQKLSsgICAgIG9ubHkgaW4gdGhlIHRvcCBsZXZlbCwgd2hpbGUgdGhlIGBy ZWN1cnNpdmUnIHZhcmlhbnQgbGlzdHMgb3B0aW9ucwotKyAgICAgYWxzbyBwcmVzZW50IGluIGFu eSBuZXN0ZWQgcGFja2FnZXMuCi0rCi0rYC0tdmVyc2lvbicKLStgLVYnCi0rICAgICBQcmludCB0 aGUgdmVyc2lvbiBvZiBBdXRvY29uZiB1c2VkIHRvIGdlbmVyYXRlIHRoZSBgY29uZmlndXJlJwot KyAgICAgc2NyaXB0LCBhbmQgZXhpdC4KLSsKLStgLS1jYWNoZS1maWxlPUZJTEUnCi0rICAgICBF bmFibGUgdGhlIGNhY2hlOiB1c2UgYW5kIHNhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHRlc3RzIGlu IEZJTEUsCi0rICAgICB0cmFkaXRpb25hbGx5IGBjb25maWcuY2FjaGUnLiAgRklMRSBkZWZhdWx0 cyB0byBgL2Rldi9udWxsJyB0bwotKyAgICAgZGlzYWJsZSBjYWNoaW5nLgotKwotK2AtLWNvbmZp Zy1jYWNoZScKLStgLUMnCi0rICAgICBBbGlhcyBmb3IgYC0tY2FjaGUtZmlsZT1jb25maWcuY2Fj aGUnLgotKwotK2AtLXF1aWV0JwotK2AtLXNpbGVudCcKLStgLXEnCi0rICAgICBEbyBub3QgcHJp bnQgbWVzc2FnZXMgc2F5aW5nIHdoaWNoIGNoZWNrcyBhcmUgYmVpbmcgbWFkZS4gIFRvCi0rICAg ICBzdXBwcmVzcyBhbGwgbm9ybWFsIG91dHB1dCwgcmVkaXJlY3QgaXQgdG8gYC9kZXYvbnVsbCcg KGFueSBlcnJvcgotKyAgICAgbWVzc2FnZXMgd2lsbCBzdGlsbCBiZSBzaG93bikuCi0rCi0rYC0t c3JjZGlyPURJUicKLSsgICAgIExvb2sgZm9yIHRoZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUgaW4g ZGlyZWN0b3J5IERJUi4gIFVzdWFsbHkKLSsgICAgIGBjb25maWd1cmUnIGNhbiBkZXRlcm1pbmUg dGhhdCBkaXJlY3RvcnkgYXV0b21hdGljYWxseS4KLSsKLStgLS1wcmVmaXg9RElSJwotKyAgICAg VXNlIERJUiBhcyB0aGUgaW5zdGFsbGF0aW9uIHByZWZpeC4gICpub3RlIEluc3RhbGxhdGlvbiBO YW1lczo6Ci0rICAgICBmb3IgbW9yZSBkZXRhaWxzLCBpbmNsdWRpbmcgb3RoZXIgb3B0aW9ucyBh dmFpbGFibGUgZm9yIGZpbmUtdHVuaW5nCi0rICAgICB0aGUgaW5zdGFsbGF0aW9uIGxvY2F0aW9u cy4KLSsKLStgLS1uby1jcmVhdGUnCi0rYC1uJwotKyAgICAgUnVuIHRoZSBjb25maWd1cmUgY2hl Y2tzLCBidXQgc3RvcCBiZWZvcmUgY3JlYXRpbmcgYW55IG91dHB1dAotKyAgICAgZmlsZXMuCi0r Ci0rYGNvbmZpZ3VyZScgYWxzbyBhY2NlcHRzIHNvbWUgb3RoZXIsIG5vdCB3aWRlbHkgdXNlZnVs LCBvcHRpb25zLiAgUnVuCi0rYGNvbmZpZ3VyZSAtLWhlbHAnIGZvciBtb3JlIGRldGFpbHMuCi0r Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svTkVXUyBzb2NpLTMuMC4wX3RyZXAzMDAvTkVX UwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL05FV1MJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTkVXUwkyMDA5LTA0LTE2IDE5OjM3OjEw LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwzIEBACi0rCi0rKiBXZWQgTWFyIDI2IDIwMDkg UlBNIHJlbGVhc2UgZm9yIHZlcnNpb24gMy4wLjAKLSsKCmRpZmYgLS1naXQgYS9zb2NpLTMuMC4w LWJ1cmllZC1oZWFkZXJzLnBhdGNoIGIvc29jaS0zLjAuMC1idXJpZWQtaGVhZGVycy5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzU3ZjhiYy4uMDAwMDAwMAotLS0gYS9zb2Np LTMuMC4wLWJ1cmllZC1oZWFkZXJzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTM2ICswLDAg QEAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1v bi5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAot LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAkyMDEx LTAyLTA4IDIzOjUzOjI2LjYyOTg4MDEyMyArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAw MDAgKzAyMDAKLUBAIC02LDcgKzYsMTMgQEAKLSAvLwotIAotICNpbmNsdWRlICJjb21tb24uaCIK LS0jaW5jbHVkZSAic29jaS1iYWNrZW5kLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURF UlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgot KyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNs dWRlIDxjaXNvNjQ2PgotICNpbmNsdWRlIDxjc3RkbGliPgotICNpbmNsdWRlIDxjdGltZT4KLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwu aCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAkyMDEx LTAyLTA4IDIzOjUzOjI2LjY2Mzg4MDc3MCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAkyMDExLTAyLTA4IDIyOjI5OjU0LjAwMDAw MDAwMCArMDEwMAotQEAgLTIzLDEyICsyMywyMyBAQAotICNpZm5kZWYgU09DSV9NWVNRTF9ERUNM Ci0gIyBkZWZpbmUgU09DSV9NWVNRTF9ERUNMCi0gI2VuZGlmCi0tCi0tI2luY2x1ZGUgInNvY2kt YmFja2VuZC5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAg ICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5jbHVk ZSA8c29jaS1iYWNrZW5kLmg+Ci0rI2VuZGlmCi0rLy8KLSAjaWZkZWYgX1dJTjMyCi0gI2luY2x1 ZGUgPHdpbnNvY2suaD4gLy8gU09DS0VUCi0gI2VuZGlmIC8vIF9XSU4zMgotLSNpbmNsdWRlIDxt eXNxbC5oPiAvLyBNeVNRTCBDbGllbnQKLSsvLwotKy8vIE15U1FMIENsaWVudAotKyNpZiBkZWZp bmVkKFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxteXNxbC9t eXNxbC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxteXNxbC5oPgotKyNlbmRpZgotICNpbmNsdWRl IDx2ZWN0b3I+Ci0gCi0gCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAxMS0wMi0wOCAy Mzo1MzoyNi42NjU4ODA4MDcgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAw MDAwMDAwICswMjAwCi1AQCAtOCw4ICs4LDE0IEBACi0gCi0gI2RlZmluZSBTT0NJX01ZU1FMX1NP VVJDRQotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0tI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0u aD4KLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNf QlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsj ZWxzZQotKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1 ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGNhc3NlcnQ+Ci0gI2luY2x1ZGUgPGN0aW1lPgotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNl LXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LXVzZS10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjY2ODgwODI2ICswMTAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNl LXR5cGUuY3BwCTIwMDktMDUtMDUgMjI6MjU6NDAuMDAwMDAwMDAwICswMjAwCi1AQCAtOSw3ICs5 LDEyIEBACi0gI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW15c3Fs LmgiCi0gI2luY2x1ZGUgImNvbW1vbi5oIgotLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0r Ly8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8 c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1wbGF0 Zm9ybS5oPgotKyNlbmRpZgotIC8vCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGxp bWl0cz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rl c3QvdGVzdC1teXNxbC5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwv dGVzdC90ZXN0LW15c3FsLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjYyOTg4MDEyMyAr MDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVz dC1teXNxbC5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC02LDkg KzYsMTcgQEAKLSAvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCi0gLy8K LSAKLS0jaW5jbHVkZSAic29jaS5oIgotLSNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0tI2luY2x1 ZGUgInRlc3QvY29tbW9uLXRlc3RzLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNf QlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KLSsjICAgICAgIGlu Y2x1ZGUgPHNvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oPgotKyMgICAgICAgaW5jbHVk ZSA8c29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNv Y2kuaD4KLSsjCWluY2x1ZGUgPHNvY2ktbXlzcWwuaD4KLSsjICAgICAgIGluY2x1ZGUgPHRlc3Qv Y29tbW9uLXRlc3RzLmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8aW9zdHJlYW0+Ci0gI2lu Y2x1ZGUgPHNzdHJlYW0+Ci0gI2luY2x1ZGUgPHN0cmluZz4KLUBAIC0xOCw4ICsyNiwxNCBAQAot ICNpbmNsdWRlIDxjdGltZT4KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8Y3N0ZGxp Yj4KLS0jaW5jbHVkZSA8bXlzcWxkX2Vycm9yLmg+Ci0tI2luY2x1ZGUgPGVycm1zZy5oPgotKy8v IE15U1FMIENsaWVudAotKyNpZiBkZWZpbmVkKFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQpCi0r IyAgICAgICBpbmNsdWRlIDxteXNxbC9teXNxbGRfZXJyb3IuaD4KLSsjICAgICAgIGluY2x1ZGUg PG15c3FsL2Vycm1zZy5oPgotKyNlbHNlCi0rIyAgICAgICBpbmNsdWRlIDxteXNxbGRfZXJyb3Iu aD4KLSsjICAgICAgIGluY2x1ZGUgPGVycm1zZy5oPgotKyNlbmRpZgotIAotIHVzaW5nIG5hbWVz cGFjZSBzb2NpOwotIHVzaW5nIG5hbWVzcGFjZSBzb2NpOjp0ZXN0czsKLWRpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3Bw Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10 eXBlLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjYzMDg4MDE0MiArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDkt MDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtOSw3ICs5LDEzIEBACi0gI2RlZmlu ZSBTT0NJX01ZU1FMX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0gI2luY2x1ZGUg ImNvbW1vbi5oIgotLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rLy8KLSsjaWYgZGVmaW5l ZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kt cGxhdGZvcm0uaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKyNlbmRp ZgotKy8vCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gCi0gI2lmZGVmIF9NU0NfVkVSCi1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUu Y3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlw ZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11 c2UtdHlwZS5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42NjY4ODA4MjYgKzAxMDAKLSsrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCTIw MDktMDUtMDUgMjI6MjM6MjkuMDAwMDAwMDAwICswMjAwCi1AQCAtOSw3ICs5LDEyIEBACi0gI2Rl ZmluZSBTT0NJX01ZU1FMX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0gI2luY2x1 ZGUgImNvbW1vbi5oIgotLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rLy8KLSsjaWYgZGVm aW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Nv Y2ktcGxhdGZvcm0uaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKyNl bmRpZgotIC8vCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGxpbWl0cz4KLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAkyMDExLTAyLTA4IDIzOjUz OjI2LjYyODg4MDEwNSArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L29yYWNsZS9ibG9iLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAg LTcsNyArNywxMyBAQAotIAotICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgotICNpbmNsdWRlICJl cnJvci5oIgotLSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lf SEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+ Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHN0YXRlbWVudC5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1 ZGUgPGNzdHJpbmc+Ci0gI2luY2x1ZGUgPHNzdHJlYW0+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNs ZS5oIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5o Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUu aAkyMDExLTAyLTA4IDIzOjUzOjI2LjY3MTg4MDkyMiArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCTIwMTEtMDItMDggMjI6Mjk6 NTQuMDAwMDAwMDAwICswMTAwCi1AQCAtMjIsOSArMjIsMTQgQEAKLSAjaWZuZGVmIFNPQ0lfT1JB Q0xFX0RFQ0wKLSAjIGRlZmluZSBTT0NJX09SQUNMRV9ERUNMCi0gI2VuZGlmCi0tCi0tI2luY2x1 ZGUgPHNvY2ktYmFja2VuZC5oPgotLSNpbmNsdWRlIDxvY2kuaD4gLy8gT0NJCi0rLy8KLSsjaWYg ZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3Jl L3NvY2ktYmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsj ZW5kaWYKLSsvLwotKyNpbmNsdWRlIDxvY2kuaD4gLy8gT0NJIChPcmFjbGUgY2xpZW50KQotICNp bmNsdWRlIDx2ZWN0b3I+Ci0gCi0gI2lmZGVmIF9NU0NfVkVSCi1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNw cAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWlu dG8tdHlwZS5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42Mjg4ODAxMDUgKzAxMDAKLSsrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNw cAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTcsMTAgKzcsMTggQEAK LSAKLSAjZGVmaW5lIFNPQ0lfT1JBQ0xFX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW9yYWNsZS5o IgotLSNpbmNsdWRlICJibG9iLmgiCi0gI2luY2x1ZGUgImVycm9yLmgiCi0tI2luY2x1ZGUgInJv d2lkLmgiCi0tI2luY2x1ZGUgInN0YXRlbWVudC5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9I RUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+Ci0rIyAg ICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kv Y29yZS9zdGF0ZW1lbnQuaD4KLSsjZWxzZQotKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgotKyMg ICAgICAgaW5jbHVkZSA8cm93aWQuaD4KLSsjICAgICAgIGluY2x1ZGUgPHN0YXRlbWVudC5oPgot KyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNp bmNsdWRlIDxjc3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMTEtMDItMDgg MjM6NTM6MjYuNjI4ODgwMTA1ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAw MDAwMDAwMCArMDIwMAotQEAgLTcsMTAgKzcsMTggQEAKLSAKLSAjZGVmaW5lIHNvY2lfT1JBQ0xF X1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgotLSNpbmNsdWRlICJibG9iLmgiCi0g I2luY2x1ZGUgImVycm9yLmgiCi0tI2luY2x1ZGUgInJvd2lkLmgiCi0tI2luY2x1ZGUgInN0YXRl bWVudC5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAg IGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUv cm93aWQuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KLSsjZWxz ZQotKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgotKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4K LSsjICAgICAgIGluY2x1ZGUgPHN0YXRlbWVudC5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUg PGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgotZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAKLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCTIw MTEtMDItMDggMjM6NTM6MjYuNjI3ODgwMDg2ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4w MDAwMDAwMDAgKzAyMDAKLUBAIC05LDcgKzksMTMgQEAKLSAKLSAjaW5jbHVkZSAic29jaS1vcmFj bGUuaCIKLSAjaW5jbHVkZSAiZXJyb3IuaCIKLS0jaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0r Ly8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8 c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tl bmQuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNzdGRp bz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKLS0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAkyMDExLTAy LTA4IDIzOjUzOjI2LjYyNzg4MDA4NiArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2 LjAwMDAwMDAwMCArMDIwMAotQEAgLTUsOSArNSwxNyBAQAotIC8vIGh0dHA6Ly93d3cuYm9vc3Qu b3JnL0xJQ0VOU0VfMV8wLnR4dCkKLSAvLwotIAotLSNpbmNsdWRlICJzb2NpLmgiCi0tI2luY2x1 ZGUgInNvY2ktb3JhY2xlLmgiCi0tI2luY2x1ZGUgImNvbW1vbi10ZXN0cy5oIgotKy8vCi0rI2lm IGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29y ZS9zb2NpLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9y YWNsZS5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmg+ Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2kuaD4KLSsjCWluY2x1ZGUgPHNvY2ktb3JhY2xlLmg+ Ci0rIyAgICAgICBpbmNsdWRlIDx0ZXN0L2NvbW1vbi10ZXN0cy5oPgotKyNlbmRpZgotKy8vCi0g I2luY2x1ZGUgPGlvc3RyZWFtPgotICNpbmNsdWRlIDxzdHJpbmc+Ci0gI2luY2x1ZGUgPGNhc3Nl cnQ+Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVj dG9yLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xl L3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42Mjg4ODAx MDUgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVj dG9yLWludG8tdHlwZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBA IC03LDggKzcsMTQgQEAKLSAKLSAjZGVmaW5lIHNvY2lfT1JBQ0xFX1NPVVJDRQotICNpbmNsdWRl ICJzb2NpLW9yYWNsZS5oIgotLSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKLSAjaW5jbHVkZSAiZXJy b3IuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBp bmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHN0YXRl bWVudC5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0 ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjcz ODgwOTU5ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9jb21tb24uY3BwCTIwMDktMDUtMDUgMjI6MzA6NTIuMDAwMDAwMDAwICswMjAwCi1AQCAt Niw3ICs2LDEyIEBACi0gLy8KLSAKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0tI2luY2x1ZGUgPHNv Y2ktYmFja2VuZC5oPgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsj ICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5j bHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rI2VuZGlmCi0gLy8KLSAjaW5jbHVkZSA8Y3N0ZGxpYj4K LSAjaW5jbHVkZSA8Y3N0ZGlvPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCTIwMTEtMDIt MDggMjM6NTM6MjYuNjc0ODgwOTc4ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAkyMDExLTAyLTA4IDIyOjI5OjU0 LjAwMDAwMDAwMCArMDEwMAotQEAgLTIyLDkgKzIyLDE0IEBACi0gI2lmbmRlZiBTT0NJX1BPU1RH UkVTUUxfREVDTAotICMgZGVmaW5lIFNPQ0lfUE9TVEdSRVNRTF9ERUNMCi0gI2VuZGlmCi0tCi0t I2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotLSNpbmNsdWRlIDxsaWJwcS1mZS5oPgotKy8vCi0r I2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kv Y29yZS9zb2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+ Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVkZSA8bGlicHEtZmUuaD4gLy8gUG9zdEdyZVNRTCBjbGll bnQKLSAjaW5jbHVkZSA8dmVjdG9yPgotIAotICNpZmRlZiBfTVNDX1ZFUgotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjI2ODgw MDY2ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICsw MjAwCi1AQCAtOCw5ICs4LDE2IEBACi0gI2RlZmluZSBTT0NJX1BPU1RHUkVTUUxfU09VUkNFCi0g I2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgotICNpbmNsdWRlICJjb21tb24uaCIKLS0jaW5j bHVkZSAicm93aWQuaCIKLS0jaW5jbHVkZSAiYmxvYi5oIgotLSNpbmNsdWRlIDxsaWJwcS9saWJw cS1mcy5oPiAvLyBsaWJwcQotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkK LSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvcm93aWQuaD4KLSsjZWxzZQotKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgotKyMg ICAgICAgaW5jbHVkZSA8cm93aWQuaD4KLSsjZW5kaWYKLSsvLwotKyNpbmNsdWRlIDxsaWJwcS9s aWJwcS1mcy5oPiAvLyBsaWJwcSAoUG9zdEdyZVNRTCBjbGllbnQpCi0gI2luY2x1ZGUgPGNjdHlw ZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlw ZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFy ZC11c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjI2ODgwMDY2 ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z dGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAK LUBAIC03LDggKzcsMTQgQEAKLSAKLSAjZGVmaW5lIFNPQ0lfUE9TVEdSRVNRTF9TT1VSQ0UKLSAj aW5jbHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgiCi0tI2luY2x1ZGUgInJvd2lkLmgiCi0tI2luY2x1 ZGUgPGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hF QURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+Ci0rI2Vs c2UKLSsjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVkZSA8 bGlicHEvbGlicHEtZnMuaD4gLy8gbGlicHEgKFBvc3RHcmVTUUwgY2xpZW50KQotICNpbmNsdWRl IDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0 LXBvc3RncmVzcWwuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAkyMDExLTAyLTA4IDIz OjUzOjI2LjY4MDg4MTA5MiArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCTIwMTAtMDEtMjMgMTM6MjU6 NTcuMDAwMDAwMDAwICswMTAwCi1AQCAtNSw5ICs1LDE3IEBACi0gLy8gaHR0cDovL3d3dy5ib29z dC5vcmcvTElDRU5TRV8xXzAudHh0KQotIC8vCi0gCi0tI2luY2x1ZGUgInNvY2kuaCIKLS0jaW5j bHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgiCi0tI2luY2x1ZGUgImNvbW1vbi10ZXN0cy5oIgotKy8v Ci0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNv Y2kvY29yZS9zb2NpLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc29jaS1wb3N0Z3Jlc3FsLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvdGVzdC9j b21tb24tdGVzdHMuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS5oPgotKyMJaW5jbHVkZSA8 c29jaS1wb3N0Z3Jlc3FsLmg+Ci0rIyAgICAgICBpbmNsdWRlIDx0ZXN0L2NvbW1vbi10ZXN0cy5o PgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGlvc3RyZWFtPgotICNpbmNsdWRlIDxzc3RyZWFt PgotICNpbmNsdWRlIDxzdHJpbmc+Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9j b3JlL2JhY2tlbmQtbG9hZGVyLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL2JhY2tl bmQtbG9hZGVyLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9iYWNrZW5kLWxv YWRlci5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42MTc4Nzk4OTYgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAkyMDEwLTAxLTIzIDEzOjI1 OjU3LjAwMDAwMDAwMCArMDEwMAotQEAgLTExLDYgKzExLDkgQEAKLSAjaW5jbHVkZSA8bWFwPgot ICNpbmNsdWRlIDxjYXNzZXJ0PgotICNpbmNsdWRlIDxjc3RkbGliPgotKyNpZm5kZWYgX01TQ19W RVIKLSsjaW5jbHVkZSA8c3RkaW50Lmg+Ci0rI2VuZGlmCi0gCi0gdXNpbmcgbmFtZXNwYWNlIHNv Y2k7Ci0gdXNpbmcgbmFtZXNwYWNlIHNvY2k6OmR5bmFtaWNfYmFja2VuZHM7Ci1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaCBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvY29yZS9zb2NpLXBsYXRmb3JtLmgJMjAxMS0wMi0wOCAyMzo1MzoyNi42MjA4Nzk5NTMgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaAkyMDEw LTAxLTIzIDEzOjI1OjU3LjAwMDAwMDAwMCArMDEwMAotQEAgLTEyLDggKzEyLDEwIEBACi0gI2lm ZGVmIF9NU0NfVkVSCi0gCi0gLy8gRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB2c25wcmludGYgdmFy aWFudHMuCi0tI2RlZmluZSBIQVZFX1ZTTlBSSU5URiAxCi0tI2RlZmluZSB2c25wcmludGYgX3Zz bnByaW50ZgotKyNpZiBfTVNDX1ZFUiA8IDE1MDAKLSsjIGRlZmluZSBIQVZFX1ZTTlBSSU5URiAx Ci0rIyBkZWZpbmUgdnNucHJpbnRmIF92c25wcmludGYKLSsjZW5kaWYKLSAKLSAvLyBEZWZpbmUg aWYgeW91IGhhdmUgdGhlIHNucHJpbnRmIHZhcmlhbnRzLgotICNkZWZpbmUgSEFWRV9TTlBSSU5U RiAxCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNw cCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAotLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAJMjAxMS0wMi0wOCAyMzo1Mzoy Ni42Nzc4ODEwMzUgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3NvY2kt c2ltcGxlLmNwcAkyMDEwLTAxLTIzIDEzOjI1OjU3LjAwMDAwMDAwMCArMDEwMAotQEAgLTQ3Myw3 ICs0NzMsNyBAQAotIC8vIGhlbHBlciBmb3IgZm9ybWF0dGluZyBkYXRlIHZhbHVlcwotIGNoYXIg Y29uc3QgKiBmb3JtYXRfZGF0ZShzdGF0ZW1lbnRfd3JhcHBlciAmIHdyYXBwZXIsIHN0ZDo6dG0g Y29uc3QgJiBkKQotIHsKLS0gICAgc3ByaW50Zih3cmFwcGVyLmRhdGVfZm9ybWF0dGVkLCAiJWQg JWQgJWQgJWQgJWQgJWQiLAotKyAgICBzdGQ6OnNwcmludGYod3JhcHBlci5kYXRlX2Zvcm1hdHRl ZCwgIiVkICVkICVkICVkICVkICVkIiwKLSAgICAgICAgIGQudG1feWVhciArIDE5MDAsIGQudG1f bW9uICsgMSwgZC50bV9tZGF5LAotICAgICAgICAgZC50bV9ob3VyLCBkLnRtX21pbiwgZC50bV9z ZWMpOwotIAotQEAgLTQ5MCw3ICs0OTAsNyBAQAotICAgICBpbnQgaG91cjsKLSAgICAgaW50IG1p bnV0ZTsKLSAgICAgaW50IHNlY29uZDsKLS0gICAgaW50IGNvbnN0IGNvbnZlcnRlZCA9IHNzY2Fu Zih2YWwsICIlZCAlZCAlZCAlZCAlZCAlZCIsCi0rICAgIGludCBjb25zdCBjb252ZXJ0ZWQgPSBz dGQ6OnNzY2FuZih2YWwsICIlZCAlZCAlZCAlZCAlZCAlZCIsCi0gICAgICAgICAmeWVhciwgJm1v bnRoLCAmZGF5LCAmaG91ciwgJm1pbnV0ZSwgJnNlY29uZCk7Ci0gICAgIGlmIChjb252ZXJ0ZWQg IT0gNikKLSAgICAgewotQEAgLTE1MTEsNyArMTUxMSw3IEBACi0gCi0gICAgIC8vIGZvcm1hdCBp czogIllZWVkgTU0gREQgaGggbW0gc3MiCi0gICAgIHN0ZDo6dG0gY29uc3QgJiBkID0gd3JhcHBl ci0+dXNlX2RhdGVzW25hbWVdOwotLSAgICBzcHJpbnRmKHdyYXBwZXItPmRhdGVfZm9ybWF0dGVk LCAiJWQgJWQgJWQgJWQgJWQgJWQiLAotKyAgICBzdGQ6OnNwcmludGYod3JhcHBlci0+ZGF0ZV9m b3JtYXR0ZWQsICIlZCAlZCAlZCAlZCAlZCAlZCIsCi0gICAgICAgICBkLnRtX3llYXIgKyAxOTAw LCBkLnRtX21vbiArIDEsIGQudG1fbWRheSwKLSAgICAgICAgIGQudG1faG91ciwgZC50bV9taW4s IGQudG1fc2VjKTsKLSAKLUBAIC0xNTI4LDEwICsxNTI4LDEwIEBACi0gCi0gICAgICAgICAvLyBi aW5kIGFsbCBpbnRvIGVsZW1lbnRzCi0gCi0tICAgICAgICBzaXplX3QgY29uc3QgaW50b19lbGVt ZW50cyA9IHdyYXBwZXItPmludG9fdHlwZXMuc2l6ZSgpOwotKyAgICAgICAgaW50IGNvbnN0IGlu dG9fZWxlbWVudHMgPSBzdGF0aWNfY2FzdDxpbnQ+KHdyYXBwZXItPmludG9fdHlwZXMuc2l6ZSgp KTsKLSAgICAgICAgIGlmICh3cmFwcGVyLT5pbnRvX2tpbmQgPT0gc3RhdGVtZW50X3dyYXBwZXI6 OnNpbmdsZSkKLSAgICAgICAgIHsKLS0gICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSAh PSBpbnRvX2VsZW1lbnRzOyArK2kpCi0rICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0g aW50b19lbGVtZW50czsgKytpKQotICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgc3dp dGNoICh3cmFwcGVyLT5pbnRvX3R5cGVzW2ldKQotICAgICAgICAgICAgICAgICB7Ci1AQCAtMTU2 Myw4ICsxNTYzLDcgQEAKLSAgICAgICAgIGVsc2UKLSAgICAgICAgIHsKLSAgICAgICAgICAgICAv LyB2ZWN0b3IgZWxlbWVudHMKLS0KLS0gICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSAh PSBpbnRvX2VsZW1lbnRzOyArK2kpCi0rICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0g aW50b19lbGVtZW50czsgKytpKQotICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgc3dp dGNoICh3cmFwcGVyLT5pbnRvX3R5cGVzW2ldKQotICAgICAgICAgICAgICAgICB7Ci1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmggc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCi0tLS0gc29jaS0zLjAu MF80LXBhY2svc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgJMjAxMS0wMi0wOCAyMzo1Mzoy Ni42MTk4Nzk5MzQgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3Qv Y29tbW9uLXRlc3RzLmgJMjAwOS0wNS0wNiAwMDowMjozNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC04 LDE2ICs4LDMwIEBACi0gI2lmbmRlZiBTT0NJX0NPTU1PTl9URVNUU19IX0lOQ0xVREVECi0gI2Rl ZmluZSBTT0NJX0NPTU1PTl9URVNUU19IX0lOQ0xVREVECi0gCi0tI2luY2x1ZGUgInNvY2kuaCIK LS0jaW5jbHVkZSAic29jaS1jb25maWcuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVS U19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS5oPgotKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktY29uZmlnLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2Np L2NvcmUvYm9vc3Qtb3B0aW9uYWwuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ib29z dC10dXBsZS5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL2Jvb3N0LWdyZWdvcmlhbi1k YXRlLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2kuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNv Y2ktY29uZmlnLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxib29zdC1vcHRpb25hbC5oPgotKyMgICAg ICAgaW5jbHVkZSA8Ym9vc3QtdHVwbGUuaD4KLSsjICAgICAgIGluY2x1ZGUgPGJvb3N0LWdyZWdv cmlhbi1kYXRlLmg+Ci0rI2VuZGlmCi0rLy8KLSAKLSAvLyBleHBsaWNpdGx5IHB1bGwgY29udmVy c2lvbnMgZm9yIEJvb3N0J3Mgb3B0aW9uYWwsIHR1cGxlIGFuZCBmdXNpb246Ci0gI2luY2x1ZGUg PGJvb3N0L3ZlcnNpb24uaHBwPgotLSNpbmNsdWRlIDxib29zdC1vcHRpb25hbC5oPgotLSNpbmNs dWRlIDxib29zdC10dXBsZS5oPgotLSNpbmNsdWRlIDxib29zdC1ncmVnb3JpYW4tZGF0ZS5oPgot ICNpZiBkZWZpbmVkKEJPT1NUX1ZFUlNJT04pICYmIEJPT1NUX1ZFUlNJT04gPj0gMTAzNTAwCi0r I2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjaW5jbHVkZSA8c29jaS9jb3JlL2Jv b3N0LWZ1c2lvbi5oPgotKyNlbHNlCi0gI2luY2x1ZGUgPGJvb3N0LWZ1c2lvbi5oPgotKyNlbmRp ZgotICNlbmRpZiAvLyBCT09TVF9WRVJTSU9OCi0gCi0gI2luY2x1ZGUgPGFsZ29yaXRobT4KCmRp ZmYgLS1naXQgYS9zb2NpLTMuMC4wLWdjYzQ2LWNvbXBhdGliaWxpdHkucGF0Y2ggYi9zb2NpLTMu MC4wLWdjYzQ2LWNvbXBhdGliaWxpdHkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDM2YjdmYTUuLjAwMDAwMDAKLS0tIGEvc29jaS0zLjAuMC1nY2M0Ni1jb21wYXRpYmlsaXR5 LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQ1ICswLDAgQEAKLWRpZmYgLU51ciBzb2NpLTMu MC4wL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFj a2VuZHMvbXlzcWwvY29tbW9uLmgKLS0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9j b21tb24uaAkyMDA4LTA3LTAzIDA5OjIyOjU3LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4w LjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAkyMDA5LTA1LTIzIDEzOjExOjAz LjAwMDAwMDAwMCArMDIwMAotQEAgLTEwLDYgKzEwLDcgQEAKLSAKLSAjaW5jbHVkZSA8c3N0cmVh bT4KLSAjaW5jbHVkZSAic29jaS1teXNxbC5oIgotKyNpbmNsdWRlIDxjdGltZT4KLSAKLSBuYW1l c3BhY2Ugc29jaQotIHsKLWRpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9z ZXNzaW9uLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5j cHAKLS0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAkyMDA4LTA1 LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9i YWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAkyMDA5LTA1LTIzIDEzOjExOjAzLjAwMDAwMDAwMCAr MDIwMAotQEAgLTExLDcgKzExLDggQEAKLSAjaW5jbHVkZSA8Y2N0eXBlPgotICNpbmNsdWRlIDxj ZXJybm8+Ci0gI2luY2x1ZGUgPGNpc282NDY+Ci0tCi0rI2luY2x1ZGUgPGNzdGRsaWI+Ci0rI2lu Y2x1ZGUgPGNsaW1pdHM+Ci0gCi0gI2lmZGVmIF9NU0NfVkVSCi0gI3ByYWdtYSB3YXJuaW5nKGRp c2FibGU6NDM1NSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zb2Np LW15c3FsLmggc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwu aAotLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaCAgMjAxMS0w Mi0wOCAyMzoxNzowNi4zODk1NDM0MDkgKzAxMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMv YmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oIDIwMTEtMDItMDggMjI6Mjk6NTQuMDAwMDAwMDAw ICswMTAwCi1AQCAtMjQ1LDYgKzI1Niw3IEBACi0gCi0gc3RydWN0IG15c3FsX2JhY2tlbmRfZmFj dG9yeSA6IGJhY2tlbmRfZmFjdG9yeQotIHsKLSsJbXlzcWxfYmFja2VuZF9mYWN0b3J5KCkge30K LSAgICAgdmlydHVhbCBteXNxbF9zZXNzaW9uX2JhY2tlbmQgKiBtYWtlX3Nlc3Npb24oCi0gICAg ICAgICBzdGQ6OnN0cmluZyBjb25zdCAmY29ubmVjdFN0cmluZykgY29uc3Q7Ci0gfTsKLUBAIC0y NTksNiArMjcxLDYgQEAKLSAKLSB9IC8vIGV4dGVybiAiQyIKLSAKLS19IC8vIG5hbWVzcGFjZSBT T0NJCi0rfSAvLyBuYW1lc3BhY2Ugc29jaQotIAotICNlbmRpZiAvLyBTT0NJX01ZU1FMX0hfSU5D TFVERUQKLWRpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcAkyMDA4LTA1LTMwIDEzOjMzOjQ1LjAwMDAwMDAwMCArMDIwMAotKysr IHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwCTIwMDktMDUtMjMgMTM6MTE6MDMuMDAwMDAwMDAwICswMjAwCi1AQCAtMTIsNiArMTIsOCBA QAotICNpbmNsdWRlICJjb21tb24uaCIKLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8 Y2Fzc2VydD4KLSsjaW5jbHVkZSA8Y3RpbWU+Ci0rI2luY2x1ZGUgPGNzdHJpbmc+Ci0gCi0gI2lm ZGVmIF9NU0NfVkVSCi0gI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKLWRpZmYgLU51ciBz b2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0z LjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotLS0t IHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA4 LTA1LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3Ny Yy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzoyNDo0 Mi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xMCw4ICsxMCwxMCBAQAotICNpbmNsdWRlICJzb2NpLW15 c3FsLmgiCi0gI2luY2x1ZGUgImNvbW1vbi5oIgotICNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+ Ci0rLy8KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8bGltaXRzPgotKyNpbmNsdWRl IDxjc3RkaW8+Ci0gI2luY2x1ZGUgPGNzdHJpbmc+Ci0gCi0gI2lmZGVmIF9NU0NfVkVSCi1kaWZm IC1OdXIgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCBz b2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAot LS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJMjAw OC0wNS0xNSAxNTo1ODozOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9z cmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjI1OjEx LjAwMDAwMDAwMCArMDIwMAotQEAgLTEwLDkgKzEwLDEyIEBACi0gI2luY2x1ZGUgInNvY2ktbXlz cWwuaCIKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0gI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4K LSsvLwotICNpbmNsdWRlIDxjaXNvNjQ2PgotICNpbmNsdWRlIDxsaW1pdHM+Ci0rI2luY2x1ZGUg PGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLSsjaW5jbHVkZSA8Y3RpbWU+Ci0gCi0gI2lm ZGVmIF9NU0NfVkVSCi0gI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmggc29jaS0z LjAuMF90cmVwMzAwL3NyYy9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAotLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCAgICAgICAgMjAx MS0wMi0wOCAyMzoxNzowNi4zODk1NDM0MDkgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c3JjL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oICAgICAgIDIwMTEtMDItMDggMjI6Mjk6 NTQuMDAwMDAwMDAwICswMTAwCi1AQCAtMjY5LDYgKzI3NCw3IEBACi0gCi0gc3RydWN0IG9yYWNs ZV9iYWNrZW5kX2ZhY3RvcnkgOiBiYWNrZW5kX2ZhY3RvcnkKLSB7Ci0rCW9yYWNsZV9iYWNrZW5k X2ZhY3RvcnkoKSB7fQotICAgICB2aXJ0dWFsIG9yYWNsZV9zZXNzaW9uX2JhY2tlbmQgKiBtYWtl X3Nlc3Npb24oCi0gICAgICAgICBzdGQ6OnN0cmluZyBjb25zdCAmY29ubmVjdFN0cmluZykgY29u c3Q7Ci0gfTsKLWRpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Nv bW1vbi5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9u LmNwcAotLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAky MDA4LTA2LTI3IDE2OjM4OjA1LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNr L3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAJMjAwOS0wNS0yMyAxMzoyMzozOC4w MDAwMDAwMDAgKzAyMDAKLUBAIC03LDcgKzcsOSBAQAotIAotICNpbmNsdWRlICJjb21tb24uaCIK LSAjaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rLy8KLSAjaW5jbHVkZSA8Y3N0ZGxpYj4KLSsj aW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjdGltZT4KLSAKLSAKLWRpZmYgLU51ciBzb2Np LTMuMC4wL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oIHNvY2ktMy4w LjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0tLS0g c29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCAgICAg ICAgMjAxMS0wMi0wOCAyMzoxNzowNi4zODY1NDMzNTMgKzAxMDAKLSsrKyBzb2NpLTMuMC4wXzQt cGFjay9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCAgICAgICAyMDEx LTAyLTA4IDIyOjI5OjU0LjAwMDAwMDAwMCArMDEwMAotQEAgLTI0MSw2ICsyNDYsNyBAQAotIAot IHN0cnVjdCBwb3N0Z3Jlc3FsX2JhY2tlbmRfZmFjdG9yeSA6IGJhY2tlbmRfZmFjdG9yeQotIHsK LSsJcG9zdGdyZXNxbF9iYWNrZW5kX2ZhY3RvcnkoKSB7fQotICAgICB2aXJ0dWFsIHBvc3RncmVz cWxfc2Vzc2lvbl9iYWNrZW5kICogbWFrZV9zZXNzaW9uKAotICAgICAgICAgc3RkOjpzdHJpbmcg Y29uc3QgJiBjb25uZWN0U3RyaW5nKSBjb25zdDsKLSB9OwotZGlmZiAtTnVyIHNvY2ktMy4wLjAv c3JjL2NvcmUvc29jaS1zaW1wbGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9jb3JlL3NvY2kt c2ltcGxlLmNwcAotLS0tIHNvY2ktMy4wLjAvc3JjL2NvcmUvc29jaS1zaW1wbGUuY3BwCTIwMDgt MDctMDEgMDk6NDI6MjUuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2svc3Jj L2NvcmUvc29jaS1zaW1wbGUuY3BwCTIwMDktMDUtMjMgMTM6MjE6MTQuMDAwMDAwMDAwICswMjAw Ci1AQCAtOSw2ICs5LDggQEAKLSAKLSAjaW5jbHVkZSAic29jaS1zaW1wbGUuaCIKLSAjaW5jbHVk ZSAic29jaS5oIgotKy8vCi0rI2luY2x1ZGUgPGNzdGRpbz4KLSAKLSB1c2luZyBuYW1lc3BhY2Ug c29jaTsKLQotCi1kaWZmIC1OdXIgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFj a2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAgMjAwOC0wNi0wNSAyMjo0 MTo1OC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAgIDIwMTAtMDEtMjMgMTM6MTc6Mjgu MDAwMDAwMDAwICswMTAwCi1AQCAtMTUsNiArMTUsNyBAQAotICNpbmNsdWRlIDxjbWF0aD4KLSAj aW5jbHVkZSA8Y3RpbWU+Ci0gI2luY2x1ZGUgPGNzdGRsaWI+Ci0rI2luY2x1ZGUgPGNzdHJpbmc+ Ci0gCi0gdXNpbmcgbmFtZXNwYWNlIHNvY2k7Ci0gdXNpbmcgbmFtZXNwYWNlIHNvY2k6OnRlc3Rz OwotCgpkaWZmIC0tZ2l0IGEvc29jaS0zLjAuMC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHku cGF0Y2ggYi9zb2NpLTMuMC4wLWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzcwODY0Ni4uMDAwMDAwMAotLS0gYS9zb2NpLTMu MC4wLWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDYxMTc1ICswLDAgQEAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9hY2xvY2FsLm00IHNv Y2ktMy4wLjBfdHJlcDMwMC9hY2xvY2FsLm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svYWNsb2Nh bC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9hY2xvY2FsLm00CTIwMTEtMDctMDMgMTg6NDQ6MjUuMDAwMDAwMDAwICswMjAwCi1A QCAtMCwwICsxLDk2MSBAQAotKyMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgYWNsb2NhbCAx LjExLjEgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAx OTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LAotKyMgMjAwNSwgMjAwNiwg MjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlz IGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMg Z2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwK LSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNl IGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ LCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBB UlRJQ1VMQVIgUFVSUE9TRS4KLSsKLSttNF9pZm5kZWYoW0FDX0FVVE9DT05GX1ZFUlNJT05dLAot KyAgW200X2NvcHkoW200X1BBQ0tBR0VfVkVSU0lPTl0sIFtBQ19BVVRPQ09ORl9WRVJTSU9OXSld KWRubAotK200X2lmKG00X2RlZm4oW0FDX0FVVE9DT05GX1ZFUlNJT05dKSwgWzIuNjhdLCwKLStb bTRfd2FybmluZyhbdGhpcyBmaWxlIHdhcyBnZW5lcmF0ZWQgZm9yIGF1dG9jb25mIDIuNjguCi0r WW91IGhhdmUgYW5vdGhlciB2ZXJzaW9uIG9mIGF1dG9jb25mLiAgSXQgbWF5IHdvcmssIGJ1dCBp cyBub3QgZ3VhcmFudGVlZCB0by4KLStJZiB5b3UgaGF2ZSBwcm9ibGVtcywgeW91IG1heSBuZWVk IHRvIHJlZ2VuZXJhdGUgdGhlIGJ1aWxkIHN5c3RlbSBlbnRpcmVseS4KLStUbyBkbyBzbywgdXNl IHRoZSBwcm9jZWR1cmUgZG9jdW1lbnRlZCBieSB0aGUgcGFja2FnZSwgdHlwaWNhbGx5IGBhdXRv cmVjb25mJy5dKV0pCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDYs IDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMg ZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBn aXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAot KyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2Ug aXMgcHJlc2VydmVkLgotKwotKyMgQU1fQVVUT01BS0VfVkVSU0lPTihWRVJTSU9OKQotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQXV0b21ha2UgWC5ZIHRyYWNlcyB0aGlzIG1h Y3JvIHRvIGVuc3VyZSBhY2xvY2FsLm00IGhhcyBiZWVuCi0rIyBnZW5lcmF0ZWQgZnJvbSB0aGUg bTQgZmlsZXMgYWNjb21wYW55aW5nIEF1dG9tYWtlIFguWS4KLSsjIChUaGlzIHByaXZhdGUgbWFj cm8gc2hvdWxkIG5vdCBiZSBjYWxsZWQgb3V0c2lkZSB0aGlzIGZpbGUuKQotK0FDX0RFRlVOKFtB TV9BVVRPTUFLRV9WRVJTSU9OXSwKLStbYW1fX2FwaV92ZXJzaW9uPScxLjExJwotK2RubCBTb21l IHVzZXJzIGZpbmQgQU1fQVVUT01BS0VfVkVSU0lPTiBhbmQgbWlzdGFrZSBpdCBmb3IgYSB3YXkg dG8KLStkbmwgcmVxdWlyZSBzb21lIG1pbmltdW0gdmVyc2lvbi4gIFBvaW50IHRoZW0gdG8gdGhl IHJpZ2h0IG1hY3JvLgotK200X2lmKFskMV0sIFsxLjExLjFdLCBbXSwKLSsgICAgICBbQUNfRkFU QUwoW0RvIG5vdCBjYWxsICQwLCB1c2UgQU1fSU5JVF9BVVRPTUFLRShbJDFdKS5dKV0pZG5sCi0r XSkKLSsKLSsjIF9BTV9BVVRPQ09ORl9WRVJTSU9OKFZFUlNJT04pCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgYWNsb2NhbCB0cmFjZXMgdGhpcyBtYWNybyB0byBmaW5kIHRo ZSBBdXRvY29uZiB2ZXJzaW9uLgotKyMgVGhpcyBpcyBhIHByaXZhdGUgbWFjcm8gdG9vLiAgVXNp bmcgbTRfZGVmaW5lIHNpbXBsaWZpZXMKLSsjIHRoZSBsb2dpYyBpbiBhY2xvY2FsLCB3aGljaCBj YW4gc2ltcGx5IGlnbm9yZSB0aGlzIGRlZmluaXRpb24uCi0rbTRfZGVmaW5lKFtfQU1fQVVUT0NP TkZfVkVSU0lPTl0sIFtdKQotKwotKyMgQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTgot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2FsbCBBTV9BVVRPTUFLRV9W RVJTSU9OIGFuZCBBTV9BVVRPTUFLRV9WRVJTSU9OIHNvIHRoZXkgY2FuIGJlIHRyYWNlZC4KLSsj IFRoaXMgZnVuY3Rpb24gaXMgQUNfUkVRVUlSRWQgYnkgQU1fSU5JVF9BVVRPTUFLRS4KLStBQ19E RUZVTihbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTl0sCi0rW0FNX0FVVE9NQUtFX1ZF UlNJT04oWzEuMTEuMV0pZG5sCi0rbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKLSsg IFttNF9jb3B5KFttNF9QQUNLQUdFX1ZFUlNJT05dLCBbQUNfQVVUT0NPTkZfVkVSU0lPTl0pXSlk bmwKLStfQU1fQVVUT0NPTkZfVkVSU0lPTihtNF9kZWZuKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSkp XSkKLSsKLSsjIEFNX0FVWF9ESVJfRVhQQU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIw MDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmls ZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZl cyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMg d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMg cHJlc2VydmVkLgotKwotKyMgRm9yIHByb2plY3RzIHVzaW5nIEFDX0NPTkZJR19BVVhfRElSKFtm b29dKSwgQXV0b2NvbmYgc2V0cwotKyMgJGFjX2F1eF9kaXIgdG8gYCRzcmNkaXIvZm9vJy4gIElu IG90aGVyIHByb2plY3RzLCBpdCBpcyBzZXQgdG8KLSsjIGAkc3JjZGlyJywgYCRzcmNkaXIvLi4n LCBvciBgJHNyY2Rpci8uLi8uLicuCi0rIwotKyMgT2YgY291cnNlLCBBdXRvbWFrZSBtdXN0IGhv bm9yIHRoaXMgdmFyaWFibGUgd2hlbmV2ZXIgaXQgY2FsbHMgYQotKyMgdG9vbCBmcm9tIHRoZSBh dXhpbGlhcnkgZGlyZWN0b3J5LiAgVGhlIHByb2JsZW0gaXMgdGhhdCAkc3JjZGlyIChhbmQKLSsj IHRoZXJlZm9yZSAkYWNfYXV4X2RpciBhcyB3ZWxsKSBjYW4gYmUgZWl0aGVyIGFic29sdXRlIG9y IHJlbGF0aXZlLAotKyMgZGVwZW5kaW5nIG9uIGhvdyBjb25maWd1cmUgaXMgcnVuLiAgVGhpcyBp cyBwcmV0dHkgYW5ub3lpbmcsIHNpbmNlCi0rIyBpdCBtYWtlcyAkYWNfYXV4X2RpciBxdWl0ZSB1 bnVzYWJsZSBpbiBzdWJkaXJlY3RvcmllczogaW4gdGhlIHRvcAotKyMgc291cmNlIGRpcmVjdG9y eSwgYW55IGZvcm0gd2lsbCB3b3JrIGZpbmUsIGJ1dCBpbiBzdWJkaXJlY3RvcmllcyBhCi0rIyBy ZWxhdGl2ZSBwYXRoIG5lZWRzIHRvIGJlIGFkanVzdGVkIGZpcnN0LgotKyMKLSsjICRhY19hdXhf ZGlyL21pc3NpbmcKLSsjICAgIGZhaWxzIHdoZW4gY2FsbGVkIGZyb20gYSBzdWJkaXJlY3Rvcnkg aWYgJGFjX2F1eF9kaXIgaXMgcmVsYXRpdmUKLSsjICR0b3Bfc3JjZGlyLyRhY19hdXhfZGlyL21p c3NpbmcKLSsjICAgIGZhaWxzIGlmICRhY19hdXhfZGlyIGlzIGFic29sdXRlLAotKyMgICAgZmFp bHMgd2hlbiBjYWxsZWQgZnJvbSBhIHN1YmRpcmVjdG9yeSBpbiBhIFZQQVRIIGJ1aWxkIHdpdGgK LSsjICAgICAgICAgIGEgcmVsYXRpdmUgJGFjX2F1eF9kaXIKLSsjCi0rIyBUaGUgcmVhc29uIG9m IHRoZSBsYXR0ZXIgZmFpbHVyZSBpcyB0aGF0ICR0b3Bfc3JjZGlyIGFuZCAkYWNfYXV4X2Rpcgot KyMgYXJlIGJvdGggcHJlZml4ZWQgYnkgJHNyY2Rpci4gIEluIGFuIGluLXNvdXJjZSBidWlsZCB0 aGlzIGlzIHVzdWFsbHkKLSsjIGhhcm1sZXNzIGJlY2F1c2UgJHNyY2RpciBpcyBgLicsIGJ1dCB0 aGluZ3Mgd2lsbCBicm9rZSB3aGVuIHlvdQotKyMgc3RhcnQgYSBWUEFUSCBidWlsZCBvciB1c2Ug YW4gYWJzb2x1dGUgJHNyY2Rpci4KLSsjCi0rIyBTbyB3ZSBjb3VsZCB1c2Ugc29tZXRoaW5nIHNp bWlsYXIgdG8gJHRvcF9zcmNkaXIvJGFjX2F1eF9kaXIvbWlzc2luZywKLSsjIGlmZiB3ZSBzdHJp cCB0aGUgbGVhZGluZyAkc3JjZGlyIGZyb20gJGFjX2F1eF9kaXIuICBUaGF0IHdvdWxkIGJlOgot KyMgICBhbV9hdXhfZGlyPSdcJCh0b3Bfc3JjZGlyKS8nYGV4cHIgIiRhY19hdXhfZGlyIiA6ICIk c3JjZGlyLy8qXCguKlwpImAKLSsjIGFuZCB0aGVuIHdlIHdvdWxkIGRlZmluZSAkTUlTU0lORyBh cwotKyMgICBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIKLSsjIFRoaXMg d2lsbCB3b3JrIGFzIGxvbmcgYXMgTUlTU0lORyBpcyBub3QgY2FsbGVkIGZyb20gY29uZmlndXJl LCBiZWNhdXNlCi0rIyB1bmZvcnR1bmF0ZWx5ICQodG9wX3NyY2RpcikgaGFzIG5vIG1lYW5pbmcg aW4gY29uZmlndXJlLgotKyMgSG93ZXZlciB0aGVyZSBhcmUgb3RoZXIgdmFyaWFibGVzLCBsaWtl IENDLCB3aGljaCBhcmUgb2Z0ZW4gdXNlZCBpbgotKyMgY29uZmlndXJlLCBhbmQgY291bGQgdGhl cmVmb3JlIG5vdCB1c2UgdGhpcyAiZml4ZWQiICRhY19hdXhfZGlyLgotKyMKLSsjIEFub3RoZXIg c29sdXRpb24sIHVzZWQgaGVyZSwgaXMgdG8gYWx3YXlzIGV4cGFuZCAkYWNfYXV4X2RpciB0byBh bgotKyMgYWJzb2x1dGUgUEFUSC4gIFRoZSBkcmF3YmFjayBpcyB0aGF0IHVzaW5nIGFic29sdXRl IHBhdGhzIHByZXZlbnQgYQotKyMgY29uZmlndXJlZCB0cmVlIHRvIGJlIG1vdmVkIHdpdGhvdXQg cmVjb25maWd1cmF0aW9uLgotKwotK0FDX0RFRlVOKFtBTV9BVVhfRElSX0VYUEFORF0sCi0rW2Ru bCBSZWx5IG9uIGF1dG9jb25mIHRvIHNldCB1cCBDRFBBVEggcHJvcGVybHkuCi0rQUNfUFJFUkVR KFsyLjUwXSlkbmwKLSsjIGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBwYXRoCi0r YW1fYXV4X2Rpcj1gY2QgJGFjX2F1eF9kaXIgJiYgcHdkYAotK10pCi0rCi0rIyBBTV9DT05ESVRJ T05BTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9j b25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA2LCAyMDA4Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsj Ci0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA5Ci0rCi0rIyBBTV9DT05ESVRJ T05BTChOQU1FLCBTSEVMTC1DT05ESVRJT04pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rIyBEZWZpbmUgYSBjb25kaXRpb25hbC4KLStBQ19ERUZVTihbQU1fQ09O RElUSU9OQUxdLAotK1tBQ19QUkVSRVEoMi41MilkbmwKLSsgaWZlbHNlKFskMV0sIFtUUlVFXSwg IFtBQ19GQVRBTChbJDA6IGludmFsaWQgY29uZGl0aW9uOiAkMV0pXSwKLSsJWyQxXSwgW0ZBTFNF XSwgW0FDX0ZBVEFMKFskMDogaW52YWxpZCBjb25kaXRpb246ICQxXSldKWRubAotK0FDX1NVQlNU KFskMV9UUlVFXSlkbmwKLStBQ19TVUJTVChbJDFfRkFMU0VdKWRubAotK19BTV9TVUJTVF9OT1RN QUtFKFskMV9UUlVFXSlkbmwKLStfQU1fU1VCU1RfTk9UTUFLRShbJDFfRkFMU0VdKWRubAotK200 X2RlZmluZShbX0FNX0NPTkRfVkFMVUVfJDFdLCBbJDJdKWRubAotK2lmICQyOyB0aGVuCi0rICAk MV9UUlVFPQotKyAgJDFfRkFMU0U9JyMnCi0rZWxzZQotKyAgJDFfVFJVRT0nIycKLSsgICQxX0ZB TFNFPQotK2ZpCi0rQUNfQ09ORklHX0NPTU1BTkRTX1BSRSgKLStbaWYgdGVzdCAteiAiJHskMV9U UlVFfSIgJiYgdGVzdCAteiAiJHskMV9GQUxTRX0iOyB0aGVuCi0rICBBQ19NU0dfRVJST1IoW1tj b25kaXRpb25hbCAiJDEiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0 aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5Ll1dKQotK2ZpXSldKQotKwot KyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA5Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBU aGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgot KyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90 aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCAxMAotKwotKyMgVGhlcmUgYXJlIGEgZmV3 IGRpcnR5IGhhY2tzIGJlbG93IHRvIGF2b2lkIGxldHRpbmcgYEFDX1BST0dfQ0MnIGJlCi0rIyB3 cml0dGVuIGluIGNsZWFyLCBpbiB3aGljaCBjYXNlIGF1dG9tYWtlLCB3aGVuIHJlYWRpbmcgYWNs b2NhbC5tNCwKLSsjIHdpbGwgdGhpbmsgaXQgc2VlcyBhICp1c2UqLCBhbmQgdGhlcmVmb3JlIHdp bGwgdHJpZ2dlciBhbGwgaXQncwotKyMgQyBzdXBwb3J0IG1hY2hpbmVyeS4gIEFsc28gbm90ZSB0 aGF0IGl0IG1lYW5zIHRoYXQgYXV0b3NjYW4sIHNlZWluZwotKyMgQ0MgZXRjLiBpbiB0aGUgTWFr ZWZpbGUsIHdpbGwgYXNrIGZvciBhbiBBQ19QUk9HX0NDIHVzZS4uLgotKwotKwotKyMgX0FNX0RF UEVOREVOQ0lFUyhOQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU2VlIGhvdyB0 aGUgY29tcGlsZXIgaW1wbGVtZW50cyBkZXBlbmRlbmN5IGNoZWNraW5nLgotKyMgTkFNRSBpcyAi Q0MiLCAiQ1hYIiwgIkdDSiIsIG9yICJPQkpDIi4KLSsjIFdlIHRyeSBhIGZldyB0ZWNobmlxdWVz IGFuZCB1c2UgdGhhdCB0byBzZXQgYSBzaW5nbGUgY2FjaGUgdmFyaWFibGUuCi0rIwotKyMgV2Ug ZG9uJ3QgQUNfUkVRVUlSRSB0aGUgY29ycmVzcG9uZGluZyBBQ19QUk9HX0NDIHNpbmNlIHRoZSBs YXR0ZXIgd2FzCi0rIyBtb2RpZmllZCB0byBpbnZva2UgX0FNX0RFUEVOREVOQ0lFUyhDQyk7IHdl IHdvdWxkIGhhdmUgYSBjaXJjdWxhcgotKyMgZGVwZW5kZW5jeSwgYW5kIGdpdmVuIHRoYXQgdGhl IHVzZXIgaXMgbm90IGV4cGVjdGVkIHRvIHJ1biB0aGlzIG1hY3JvLAotKyMganVzdCByZWx5IG9u IEFDX1BST0dfQ0MuCi0rQUNfREVGVU4oW19BTV9ERVBFTkRFTkNJRVNdLAotK1tBQ19SRVFVSVJF KFtBTV9TRVRfREVQRElSXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9PVVRQVVRfREVQRU5ERU5DWV9D T01NQU5EU10pZG5sCi0rQUNfUkVRVUlSRShbQU1fTUFLRV9JTkNMVURFXSlkbmwKLStBQ19SRVFV SVJFKFtBTV9ERVBfVFJBQ0tdKWRubAotKwotK2lmZWxzZShbJDFdLCBDQywgICBbZGVwY2M9IiRD QyIgICBhbV9jb21waWxlcl9saXN0PV0sCi0rICAgICAgIFskMV0sIENYWCwgIFtkZXBjYz0iJENY WCIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKLSsgICAgICAgWyQxXSwgT0JKQywgW2RlcGNjPSIkT0JK QyIgYW1fY29tcGlsZXJfbGlzdD0nZ2NjMyBnY2MnXSwKLSsgICAgICAgWyQxXSwgVVBDLCAgW2Rl cGNjPSIkVVBDIiAgYW1fY29tcGlsZXJfbGlzdD1dLAotKyAgICAgICBbJDFdLCBHQ0osICBbZGVw Y2M9IiRHQ0oiICBhbV9jb21waWxlcl9saXN0PSdnY2MzIGdjYyddLAotKyAgICAgICAgICAgICAg ICAgICBbZGVwY2M9IiQkMSIgICBhbV9jb21waWxlcl9saXN0PV0pCi0rCi0rQUNfQ0FDSEVfQ0hF Q0soW2RlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjXSwKLSsgICAgICAgICAgICAgICBbYW1fY3Zf JDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGVdLAotK1tpZiB0ZXN0IC16ICIkQU1ERVBfVFJV RSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0rICAjIFdlIG1ha2UgYSBzdWJkaXIg YW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCi0rICAjIG1h a2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92 ZS4gIEZvcgotKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUg Z2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSsgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcg LS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKLSsgICMgaW4gRCcuCi0rICBt a2RpciBjb25mdGVzdC5kaXIKLSsgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90 aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCi0rICAjIHVzaW5nIGEgcmVsYXRpdmUg ZGlyZWN0b3J5LgotKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKLSsgIGNkIGNvbmZ0 ZXN0LmRpcgotKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBh IHN1YmRpcmVjdG9yeSBiZWNhdXNlCi0rICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2Fi bGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotKyAgIyBib3RoIFRydTY0J3MgY2Mg YW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKLSsgICMgc2lk ZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2ll cyBpbgotKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhl bSBpbiB0aGUgb2JqZWN0Ci0rICAjIGRpcmVjdG9yeS4KLSsgIG1rZGlyIHN1YgotKwotKyAgYW1f Y3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotKyAgaWYgdGVzdCAiJGFtX2Nv bXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KLSsgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiBb J3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnXSA8IC4vZGVwY29tcGAKLSsgIGZpCi0rICBh bV9fdW5pdmVyc2FsPWZhbHNlCi0rICBtNF9jYXNlKFskMV0sIFtDQ10sCi0rICAgIFtjYXNlICIg JGRlcGNjICIgaW4gIygKLSsgICAgICpcIC1hcmNoXCAqXCAtYXJjaFwgKikgYW1fX3VuaXZlcnNh bD10cnVlIDs7Ci0rICAgICBlc2FjXSwKLSsgICAgW0NYWF0sCi0rICAgIFtjYXNlICIgJGRlcGNj ICIgaW4gIygKLSsgICAgICpcIC1hcmNoXCAqXCAtYXJjaFwgKikgYW1fX3VuaXZlcnNhbD10cnVl IDs7Ci0rICAgICBlc2FjXSkKLSsKLSsgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0 OyBkbwotKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1 c2Ugc29tZSBjb21waWxlcnMKLSsgICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBs aXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAotKyAgICAjIHdlIHNob3VsZCBub3QgY2hv b3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCi0rICAgICMKLSsg ICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFzIHRo ZSBjb21waWxlciBtYXkKLSsgICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGlu ZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KLSsgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVh c3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCi0rICAgIDogPiBzdWIvY29uZnRlc3QuYwotKyAg ICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KLSsgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRz dCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCi0rICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25m dHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKLSsgICAgICAjIFNvbGFy aXMgOCdzIHsvdXNyLH0vYmluL3NoLgotKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAotKyAg ICBkb25lCi0rICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVz dC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKLSsKLSsgICAgIyBXZSBjaGVjayB3aXRoIGAtYycg YW5kIGAtbycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCi0rICAgICMgbW9kZS4g IEl0IHR1cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Bl cmx5Ci0rICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLiAg QWxzbywgc29tZSBJbnRlbAotKyAgICAjIHZlcnNpb25zIGhhZCB0cm91YmxlIHdpdGggb3V0cHV0 IGluIHN1YmRpcnMKLSsgICAgYW1fX29iaj1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAg YW1fX21pbnVzX29iaj0iLW8gJGFtX19vYmoiCi0rICAgIGNhc2UgJGRlcG1vZGUgaW4KLSsgICAg Z2NjKQotKyAgICAgICMgVGhpcyBkZXBtb2RlIGNhdXNlcyBhIGNvbXBpbGVyIHJhY2UgaW4gdW5p dmVyc2FsIG1vZGUuCi0rICAgICAgdGVzdCAiJGFtX191bml2ZXJzYWwiID0gZmFsc2UgfHwgY29u dGludWUKLSsgICAgICA7OwotKyAgICBub3NpZGVlZmZlY3QpCi0rICAgICAgIyBhZnRlciB0aGlz IHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCi0rICAg ICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAotKyAgICAgIGlmIHRl c3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgotKwljb250aW51 ZQotKyAgICAgIGVsc2UKLSsJYnJlYWsKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIG1zdmlz dWFsY3BwIHwgbXN2Y21zeXMpCi0rICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdyb2sgYC1j IC1vJywgYnV0IGFsc28sIHRoZSBtaW51c28gdGVzdCBoYXMKLSsgICAgICAjIG5vdCBydW4geWV0 LiAgVGhlc2UgZGVwbW9kZXMgYXJlIGxhdGUgZW5vdWdoIGluIHRoZSBnYW1lLCBhbmQKLSsgICAg ICAjIHNvIHdlYWsgdGhhdCB0aGVpciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGltcGFjdGVk LgotKyAgICAgIGFtX19vYmo9Y29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgICBhbV9fbWludXNf b2JqPQotKyAgICAgIDs7Ci0rICAgIG5vbmUpIGJyZWFrIDs7Ci0rICAgIGVzYWMKLSsgICAgaWYg ZGVwbW9kZT0kZGVwbW9kZSBcCi0rICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9 JGFtX19vYmogXAotKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1 Yi9jb25mdGVzdC5UUG8gXAotKyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAkYW1f X21pbnVzX29iaiBzdWIvY29uZnRlc3QuYyBcCi0rICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0 ZXN0LmVyciAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+ IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0 ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCAkYW1fX29iaiBzdWIvY29u ZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYg Y29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICAjIGljYyBkb2Vzbid0IGNob2tl IG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCi0rICAgICAg IyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3Ig YW55IG1lc3NhZ2UKLSsgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Ig bm90IHN1cHBvcnRlZC4KLSsgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEg Y29tcGxhaW4gdGh1c2x5OgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBp Z25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKLSsgICAgICAjIFRoZSBk aWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGlu ZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCi0rICAgICAgaWYgKGdyZXAgJ2ln bm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8Ci0rICAgICAgICAgIGdyZXAgJ25vdCBzdXBw b3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsgICAg ICAgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCi0rICAgICAg ICBicmVhawotKyAgICAgIGZpCi0rICAgIGZpCi0rICBkb25lCi0rCi0rICBjZCAuLgotKyAgcm0g LXJmIGNvbmZ0ZXN0LmRpcgotK2Vsc2UKLSsgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxl cl90eXBlPW5vbmUKLStmaQotK10pCi0rQUNfU1VCU1QoWyQxREVQTU9ERV0sIFtkZXBtb2RlPSRh bV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZV0pCi0rQU1fQ09ORElUSU9OQUwoW2Ft X19mYXN0ZGVwJDFdLCBbCi0rICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAh PSB4bm8gXAotKyAgJiYgdGVzdCAiJGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBl IiA9IGdjYzNdKQotK10pCi0rCi0rCi0rIyBBTV9TRVRfREVQRElSCi0rIyAtLS0tLS0tLS0tLS0t Ci0rIyBDaG9vc2UgYSBkaXJlY3RvcnkgbmFtZSBmb3IgZGVwZW5kZW5jeSBmaWxlcy4KLSsjIFRo aXMgbWFjcm8gaXMgQUNfUkVRVUlSRWQgaW4gX0FNX0RFUEVOREVOQ0lFUwotK0FDX0RFRlVOKFtB TV9TRVRfREVQRElSXSwKLStbQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKLStB Q19TVUJTVChbREVQRElSXSwgWyIke2FtX19sZWFkaW5nX2RvdH1kZXBzIl0pZG5sCi0rXSkKLSsK LSsKLSsjIEFNX0RFUF9UUkFDSwotKyMgLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0FNX0RFUF9U UkFDS10sCi0rW0FDX0FSR19FTkFCTEUoZGVwZW5kZW5jeS10cmFja2luZywKLStbICAtLWRpc2Fi bGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCi0rICAtLWVu YWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRlcGVuZGVuY3kg ZXh0cmFjdG9yc10pCi0raWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0g eG5vOyB0aGVuCi0rICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgotKyAgQU1ERVBC QUNLU0xBU0g9J1wnCi0rZmkKLStBTV9DT05ESVRJT05BTChbQU1ERVBdLCBbdGVzdCAieCRlbmFi bGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vXSkKLStBQ19TVUJTVChbQU1ERVBCQUNLU0xB U0hdKWRubAotK19BTV9TVUJTVF9OT1RNQUtFKFtBTURFUEJBQ0tTTEFTSF0pZG5sCi0rXSkKLSsK LSsjIEdlbmVyYXRlIGNvZGUgdG8gc2V0IHVwIGRlcGVuZGVuY3kgdHJhY2tpbmcuICAgICAgICAg ICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIw MDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDgKLSsjIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyNzZXJpYWwgNQotKwot KyMgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLStBQ19ERUZVTihbX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwK LStbewotKyAgIyBBdXRvY29uZiAyLjYyIHF1b3RlcyAtLWZpbGUgYXJndW1lbnRzIGZvciBldmFs LCBidXQgbm90IHdoZW4gZmlsZXMKLSsgICMgYXJlIGxpc3RlZCB3aXRob3V0IC0tZmlsZS4gIExl dCdzIHBsYXkgc2FmZSBhbmQgb25seSBlbmFibGUgdGhlIGV2YWwKLSsgICMgaWYgd2UgZGV0ZWN0 IHRoZSBxdW90aW5nLgotKyAgY2FzZSAkQ09ORklHX0ZJTEVTIGluCi0rICAqXCcqKSBldmFsIHNl dCB4ICIkQ09ORklHX0ZJTEVTIiA7OwotKyAgKikgICBzZXQgeCAkQ09ORklHX0ZJTEVTIDs7Ci0r ICBlc2FjCi0rICBzaGlmdAotKyAgZm9yIG1mCi0rICBkbwotKyAgICAjIFN0cmlwIE1GIHNvIHdl IGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxlLgotKyAgICBtZj1gZWNobyAiJG1mIiB8 IHNlZCAtZSAncy86LiokLy8nYAotKyAgICAjIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhbiBBdXRv bWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUgb3Igbm90LgotKyAgICAjIFdlIHVzZWQgdG8gbWF0Y2gg b25seSB0aGUgZmlsZXMgbmFtZWQgYE1ha2VmaWxlLmluJywgYnV0Ci0rICAgICMgc29tZSBwZW9w bGUgcmVuYW1lIHRoZW07IHNvIGluc3RlYWQgd2UgbG9vayBhdCB0aGUgZmlsZSBjb250ZW50Lgot KyAgICAjIEdyZXAnaW5nIHRoZSBmaXJzdCBsaW5lIGlzIG5vdCBlbm91Z2g6IHNvbWUgcGVvcGxl IHBvc3QtcHJvY2VzcwotKyAgICAjIGVhY2ggTWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5ldyBsaW5l IG9uIHRvcCBvZiBlYWNoIGZpbGUgdG8gc2F5IHNvLgotKyAgICAjIEdyZXAnaW5nIHRoZSB3aG9s ZSBmaWxlIGlzIG5vdCBnb29kIGVpdGhlcjogQUlYIGdyZXAgaGFzIGEgbGluZQotKyAgICAjIGxp bWl0IG9mIDIwNDgsIGJ1dCBhbGwgc2VkJ3Mgd2Uga25vdyBoYXZlIHVuZGVyc3RhbmQgYXQgbGVh c3QgNDAwMC4KLSsgICAgaWYgc2VkIC1uICdzLF4jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UuKixY LHAnICIkbWYiIHwgZ3JlcCBYID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICAgIGRpcnBhcnQ9 YEFTX0RJUk5BTUUoIiRtZiIpYAotKyAgICBlbHNlCi0rICAgICAgY29udGludWUKLSsgICAgZmkK LSsgICAgIyBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIERFUERJUiwgYW1fX2luY2x1ZGUsIGFu ZCBhbV9fcXVvdGUKLSsgICAgIyBmcm9tIHRoZSBNYWtlZmlsZSB3aXRob3V0IHJ1bm5pbmcgYG1h a2UnLgotKyAgICBERVBESVI9YHNlZCAtbiAncy9eREVQRElSID0gLy9wJyA8ICIkbWYiYAotKyAg ICB0ZXN0IC16ICIkREVQRElSIiAmJiBjb250aW51ZQotKyAgICBhbV9faW5jbHVkZT1gc2VkIC1u ICdzL15hbV9faW5jbHVkZSA9IC8vcCcgPCAiJG1mImAKLSsgICAgdGVzdCAteiAiYW1fX2luY2x1 ZGUiICYmIGNvbnRpbnVlCi0rICAgIGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9fcXVvdGUgPSAv L3AnIDwgIiRtZiJgCi0rICAgICMgV2hlbiB1c2luZyBhbnNpMmtuciwgVSBtYXkgYmUgZW1wdHkg b3IgYW4gdW5kZXJzY29yZTsgZXhwYW5kIGl0Ci0rICAgIFU9YHNlZCAtbiAncy9eVSA9IC8vcCcg PCAiJG1mImAKLSsgICAgIyBGaW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBmaWxlcywgdGhleSBh cmUgaW5jbHVkZWQgZmlsZXMgd2l0aAotKyAgICAjICQoREVQRElSKSBpbiB0aGVpciBuYW1lcy4g IFdlIGludm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBpdCBpcyB0aGUKLSsgICAgIyBzaW1wbGVzdCBh cHByb2FjaCB0byBjaGFuZ2luZyAkKERFUERJUikgdG8gaXRzIGFjdHVhbCB2YWx1ZSBpbiB0aGUK LSsgICAgIyBleHBhbnNpb24uCi0rICAgIGZvciBmaWxlIGluIGBzZWQgLW4gIgotKyAgICAgIHMv XiRhbV9faW5jbHVkZSAkYW1fX3F1b3RlXCguKihERVBESVIpLipcKSRhbV9fcXVvdGUiJyQvXDEv cCcgPCIkbWYiIHwgXAotKwkgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUg J3MvXCRVLyciJFUiJy9nJ2A7IGRvCi0rICAgICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBl eGlzdHMuCi0rICAgICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCi0rICAg ICAgZmRpcj1gQVNfRElSTkFNRShbIiRmaWxlIl0pYAotKyAgICAgIEFTX01LRElSX1AoWyRkaXJw YXJ0LyRmZGlyXSkKLSsgICAgICAjIGVjaG8gImNyZWF0aW5nICRkaXJwYXJ0LyRmaWxlIgotKyAg ICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgotKyAgICBkb25lCi0rICBkb25l Ci0rfQotK10pIyBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKLSsKLSsKLSsjIEFNX09V VFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyMgVGhpcyBtYWNybyBzaG91bGQgb25seSBiZSBpbnZva2VkIG9uY2UgLS0gdXNlIHZpYSBB Q19SRVFVSVJFLgotKyMKLSsjIFRoaXMgY29kZSBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gYXV0b21h dGljIGRlcGVuZGVuY3kgdHJhY2tpbmcKLSsjIGlzIGVuYWJsZWQuICBGSVhNRS4gIFRoaXMgY3Jl YXRlcyBlYWNoIGAuUCcgZmlsZSB0aGF0IHdlIHdpbGwKLSsjIG5lZWQgaW4gb3JkZXIgdG8gYm9v dHN0cmFwIHRoZSBkZXBlbmRlbmN5IGhhbmRsaW5nIGNvZGUuCi0rQUNfREVGVU4oW0FNX09VVFBV VF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLStbQUNfQ09ORklHX0NPTU1BTkRTKFtkZXBmaWxlc10s Ci0rICAgICBbdGVzdCB4IiRBTURFUF9UUlVFIiAhPSB4IiIgfHwgX0FNX09VVFBVVF9ERVBFTkRF TkNZX0NPTU1BTkRTXSwKLSsgICAgIFtBTURFUF9UUlVFPSIkQU1ERVBfVFJVRSIgYWNfYXV4X2Rp cj0iJGFjX2F1eF9kaXIiXSkKLStdKQotKwotKyMgRG8gYWxsIHRoZSB3b3JrIGZvciBBdXRvbWFr ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLSsKLSsjIENv cHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAw MywgMjAwNCwKLSsjIDIwMDUsIDIwMDYsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgMTYKLSsK LSsjIFRoaXMgbWFjcm8gYWN0dWFsbHkgZG9lcyB0b28gbXVjaC4gIFNvbWUgY2hlY2tzIGFyZSBv bmx5IG5lZWRlZCBpZgotKyMgeW91ciBwYWNrYWdlIGRvZXMgY2VydGFpbiB0aGluZ3MuICBCdXQg dGhpcyBpc24ndCByZWFsbHkgYSBiaWcgZGVhbC4KLSsKLSsjIEFNX0lOSVRfQVVUT01BS0UoUEFD S0FHRSwgVkVSU0lPTiwgW05PLURFRklORV0pCi0rIyBBTV9JTklUX0FVVE9NQUtFKFtPUFRJT05T XSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r IyBUaGUgY2FsbCB3aXRoIFBBQ0tBR0UgYW5kIFZFUlNJT04gYXJndW1lbnRzIGlzIHRoZSBvbGQg c3R5bGUKLSsjIGNhbGwgKHByZSBhdXRvY29uZi0yLjUwKSwgd2hpY2ggaXMgYmVpbmcgcGhhc2Vk IG91dC4gIFBBQ0tBR0UKLSsjIGFuZCBWRVJTSU9OIHNob3VsZCBub3cgYmUgcGFzc2VkIHRvIEFD X0lOSVQgYW5kIHJlbW92ZWQgZnJvbQotKyMgdGhlIGNhbGwgdG8gQU1fSU5JVF9BVVRPTUFLRS4K LSsjIFdlIHN1cHBvcnQgYm90aCBjYWxsIHN0eWxlcyBmb3IgdGhlIHRyYW5zaXRpb24uICBBZnRl cgotKyMgdGhlIG5leHQgQXV0b21ha2UgcmVsZWFzZSwgQXV0b2NvbmYgY2FuIG1ha2UgdGhlIEFD X0lOSVQKLSsjIGFyZ3VtZW50cyBtYW5kYXRvcnksIGFuZCB0aGVuIHdlIGNhbiBkZXBlbmQgb24g YSBuZXcgQXV0b2NvbmYKLSsjIHJlbGVhc2UgYW5kIGRyb3AgdGhlIG9sZCBjYWxsIHN1cHBvcnQu Ci0rQUNfREVGVU4oW0FNX0lOSVRfQVVUT01BS0VdLAotK1tBQ19QUkVSRVEoWzIuNjJdKWRubAot K2RubCBBdXRvY29uZiB3YW50cyB0byBkaXNhbGxvdyBBTV8gbmFtZXMuICBXZSBleHBsaWNpdGx5 IGFsbG93Ci0rZG5sIHRoZSBvbmVzIHdlIGNhcmUgYWJvdXQuCi0rbTRfcGF0dGVybl9hbGxvdyhb XkFNX1tBLVpdK0ZMQUdTJF0pZG5sCi0rQUNfUkVRVUlSRShbQU1fU0VUX0NVUlJFTlRfQVVUT01B S0VfVkVSU0lPTl0pZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJPR19JTlNUQUxMXSlkbmwKLStpZiB0 ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiOyB0aGVuCi0rICAjIFVzZSAtSSQo c3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4sIHNvIHRoYXQgbWFrZSdzIG91dHB1dAot KyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRlZCAiLUkuIgotKyAgQUNfU1VCU1QoW2Ft X19pc3JjXSwgWycgLUkkKHNyY2RpciknXSlfQU1fU1VCU1RfTk9UTUFLRShbYW1fX2lzcmNdKWRu bAotKyAgIyB0ZXN0IHRvIHNlZSBpZiBzcmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCi0rICBpZiB0 ZXN0IC1mICRzcmNkaXIvY29uZmlnLnN0YXR1czsgdGhlbgotKyAgICBBQ19NU0dfRVJST1IoW3Nv dXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gIm1ha2UgZGlzdGNsZWFuIiB0 aGVyZSBmaXJzdF0pCi0rICBmaQotK2ZpCi0rCi0rIyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdw YXRoCi0raWYgdGVzdCAteiAiJENZR1BBVEhfVyI7IHRoZW4KLSsgIGlmIChjeWdwYXRoIC0tdmVy c2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICBDWUdQQVRIX1c9J2N5Z3Bh dGggLXcnCi0rICBlbHNlCi0rICAgIENZR1BBVEhfVz1lY2hvCi0rICBmaQotK2ZpCi0rQUNfU1VC U1QoW0NZR1BBVEhfV10pCi0rCi0rIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdl LgotK2RubCBEaXN0aW5ndWlzaCBiZXR3ZWVuIG9sZC1zdHlsZSBhbmQgbmV3LXN0eWxlIGNhbGxz LgotK200X2lmdmFsKFskMl0sCi0rW200X2lmdmFsKFskM10sIFtfQU1fU0VUX09QVElPTihbbm8t ZGVmaW5lXSldKWRubAotKyBBQ19TVUJTVChbUEFDS0FHRV0sIFskMV0pZG5sCi0rIEFDX1NVQlNU KFtWRVJTSU9OXSwgWyQyXSldLAotK1tfQU1fU0VUX09QVElPTlMoWyQxXSlkbmwKLStkbmwgRGlh Z25vc2Ugb2xkLXN0eWxlIEFDX0lOSVQgd2l0aCBuZXctc3R5bGUgQU1fQVVUT01BS0VfSU5JVC4K LSttNF9pZihtNF9pZmRlZihbQUNfUEFDS0FHRV9OQU1FXSwgMSltNF9pZmRlZihbQUNfUEFDS0FH RV9WRVJTSU9OXSwgMSksIDExLCwKLSsgIFttNF9mYXRhbChbQUNfSU5JVCBzaG91bGQgYmUgY2Fs bGVkIHdpdGggcGFja2FnZSBhbmQgdmVyc2lvbiBhcmd1bWVudHNdKV0pZG5sCi0rIEFDX1NVQlNU KFtQQUNLQUdFXSwgWydBQ19QQUNLQUdFX1RBUk5BTUUnXSlkbmwKLSsgQUNfU1VCU1QoW1ZFUlNJ T05dLCBbJ0FDX1BBQ0tBR0VfVkVSU0lPTiddKV0pZG5sCi0rCi0rX0FNX0lGX09QVElPTihbbm8t ZGVmaW5lXSwsCi0rW0FDX0RFRklORV9VTlFVT1RFRChQQUNLQUdFLCAiJFBBQ0tBR0UiLCBbTmFt ZSBvZiBwYWNrYWdlXSkKLSsgQUNfREVGSU5FX1VOUVVPVEVEKFZFUlNJT04sICIkVkVSU0lPTiIs IFtWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlXSldKWRubAotKwotKyMgU29tZSB0b29scyBBdXRv bWFrZSBuZWVkcy4KLStBQ19SRVFVSVJFKFtBTV9TQU5JVFlfQ0hFQ0tdKWRubAotK0FDX1JFUVVJ UkUoW0FDX0FSR19QUk9HUkFNXSlkbmwKLStBTV9NSVNTSU5HX1BST0coQUNMT0NBTCwgYWNsb2Nh bC0ke2FtX19hcGlfdmVyc2lvbn0pCi0rQU1fTUlTU0lOR19QUk9HKEFVVE9DT05GLCBhdXRvY29u ZikKLStBTV9NSVNTSU5HX1BST0coQVVUT01BS0UsIGF1dG9tYWtlLSR7YW1fX2FwaV92ZXJzaW9u fSkKLStBTV9NSVNTSU5HX1BST0coQVVUT0hFQURFUiwgYXV0b2hlYWRlcikKLStBTV9NSVNTSU5H X1BST0coTUFLRUlORk8sIG1ha2VpbmZvKQotK0FDX1JFUVVJUkUoW0FNX1BST0dfSU5TVEFMTF9T SF0pZG5sCi0rQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NUUklQXSlkbmwKLStBQ19SRVFV SVJFKFtBTV9QUk9HX01LRElSX1BdKWRubAotKyMgV2UgbmVlZCBhd2sgZm9yIHRoZSAiY2hlY2si IHRhcmdldC4gIFRoZSBzeXN0ZW0gImF3ayIgaXMgYmFkIG9uCi0rIyBzb21lIHBsYXRmb3Jtcy4K LStBQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJPR19NQUtF X1NFVF0pZG5sCi0rQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKLStfQU1fSUZf T1BUSU9OKFt0YXItdXN0YXJdLCBbX0FNX1BST0dfVEFSKFt1c3Rhcl0pXSwKLSsJICAgICAgW19B TV9JRl9PUFRJT04oW3Rhci1wYXhdLCBbX0FNX1BST0dfVEFSKFtwYXhdKV0sCi0rCQkJICAgICBb X0FNX1BST0dfVEFSKFt2N10pXSldKQotK19BTV9JRl9PUFRJT04oW25vLWRlcGVuZGVuY2llc10s LAotK1tBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19DQ10sCi0rCQkgIFtfQU1fREVQRU5ERU5D SUVTKENDKV0sCi0rCQkgIFtkZWZpbmUoW0FDX1BST0dfQ0NdLAotKwkJCSAgZGVmbihbQUNfUFJP R19DQ10pW19BTV9ERVBFTkRFTkNJRVMoQ0MpXSldKWRubAotK0FDX1BST1ZJREVfSUZFTFNFKFtB Q19QUk9HX0NYWF0sCi0rCQkgIFtfQU1fREVQRU5ERU5DSUVTKENYWCldLAotKwkJICBbZGVmaW5l KFtBQ19QUk9HX0NYWF0sCi0rCQkJICBkZWZuKFtBQ19QUk9HX0NYWF0pW19BTV9ERVBFTkRFTkNJ RVMoQ1hYKV0pXSlkbmwKLStBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19PQkpDXSwKLSsJCSAg W19BTV9ERVBFTkRFTkNJRVMoT0JKQyldLAotKwkJICBbZGVmaW5lKFtBQ19QUk9HX09CSkNdLAot KwkJCSAgZGVmbihbQUNfUFJPR19PQkpDXSlbX0FNX0RFUEVOREVOQ0lFUyhPQkpDKV0pXSlkbmwK LStdKQotK19BTV9JRl9PUFRJT04oW3NpbGVudC1ydWxlc10sIFtBQ19SRVFVSVJFKFtBTV9TSUxF TlRfUlVMRVNdKV0pZG5sCi0rZG5sIFRoZSBgcGFyYWxsZWwtdGVzdHMnIGRyaXZlciBtYXkgbmVl ZCB0byBrbm93IGFib3V0IEVYRUVYVCwgc28gYWRkIHRoZQotK2RubCBgYW1fX0VYRUVYVCcgY29u ZGl0aW9uYWwgaWYgX0FNX0NPTVBJTEVSX0VYRUVYVCB3YXMgc2Vlbi4gIFRoaXMgbWFjcm8KLStk bmwgaXMgaG9va2VkIG9udG8gX0FDX0NPTVBJTEVSX0VYRUVYVCBlYXJseSwgc2VlIGJlbG93Lgot K0FDX0NPTkZJR19DT01NQU5EU19QUkUoZG5sCi0rW200X3Byb3ZpZGVfaWYoW19BTV9DT01QSUxF Ul9FWEVFWFRdLAotKyAgW0FNX0NPTkRJVElPTkFMKFthbV9fRVhFRVhUXSwgW3Rlc3QgLW4gIiRF WEVFWFQiXSldKV0pZG5sCi0rXSkKLSsKLStkbmwgSG9vayBpbnRvIGBfQUNfQ09NUElMRVJfRVhF RVhUJyBlYXJseSB0byBsZWFybiBpdHMgZXhwYW5zaW9uLiAgRG8gbm90Ci0rZG5sIGFkZCB0aGUg Y29uZGl0aW9uYWwgcmlnaHQgaGVyZSwgYXMgX0FDX0NPTVBJTEVSX0VYRUVYVCBtYXkgYmUgZnVy dGhlcgotK2RubCBtYW5nbGVkIGJ5IEF1dG9jb25mIGFuZCBydW4gaW4gYSBzaGVsbCBjb25kaXRp b25hbCBzdGF0ZW1lbnQuCi0rbTRfZGVmaW5lKFtfQUNfQ09NUElMRVJfRVhFRVhUXSwKLSttNF9k ZWZuKFtfQUNfQ09NUElMRVJfRVhFRVhUXSlbbTRfcHJvdmlkZShbX0FNX0NPTVBJTEVSX0VYRUVY VF0pXSkKLSsKLSsKLSsjIFdoZW4gY29uZmlnLnN0YXR1cyBnZW5lcmF0ZXMgYSBoZWFkZXIsIHdl IG11c3QgdXBkYXRlIHRoZSBzdGFtcC1oIGZpbGUuCi0rIyBUaGlzIGZpbGUgcmVzaWRlcyBpbiB0 aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIGNvbmZpZyBoZWFkZXIKLSsjIHRoYXQgaXMgZ2VuZXJh dGVkLiAgVGhlIHN0YW1wIGZpbGVzIGFyZSBudW1iZXJlZCB0byBoYXZlIGRpZmZlcmVudCBuYW1l cy4KLSsKLSsjIEF1dG9jb25mIGNhbGxzIF9BQ19BTV9DT05GSUdfSEVBREVSX0hPT0sgKHdoZW4g ZGVmaW5lZCkgaW4gdGhlCi0rIyBsb29wIHdoZXJlIGNvbmZpZy5zdGF0dXMgY3JlYXRlcyB0aGUg aGVhZGVycywgc28gd2UgY2FuIGdlbmVyYXRlCi0rIyBvdXIgc3RhbXAgZmlsZXMgdGhlcmUuCi0r QUNfREVGVU4oW19BQ19BTV9DT05GSUdfSEVBREVSX0hPT0tdLAotK1sjIENvbXB1dGUgJDEncyBp bmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCi0rX2FtX2FyZz0kMQotK19hbV9zdGFtcF9jb3VudD0x Ci0rZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCi0rICBjYXNlICRfYW1f aGVhZGVyIGluCi0rICAgICRfYW1fYXJnIHwgJF9hbV9hcmc6KiApCi0rICAgICAgYnJlYWsgOzsK LSsgICAgKiApCi0rICAgICAgX2FtX3N0YW1wX2NvdW50PWBleHByICRfYW1fc3RhbXBfY291bnQg KyAxYCA7OwotKyAgZXNhYwotK2RvbmUKLStlY2hvICJ0aW1lc3RhbXAgZm9yICRfYW1fYXJnIiA+ YEFTX0RJUk5BTUUoWyIkX2FtX2FyZyJdKWAvc3RhbXAtaFtdJF9hbV9zdGFtcF9jb3VudF0pCi0r Ci0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUsIDIwMDggIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0 byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh dGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgQU1fUFJP R19JTlNUQUxMX1NICi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSsjIERlZmluZSAkaW5zdGFsbF9z aC4KLStBQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NIXSwKLStbQUNfUkVRVUlSRShbQU1fQVVY X0RJUl9FWFBBTkRdKWRubAotK2lmIHRlc3QgeCIke2luc3RhbGxfc2h9IiAhPSB4c2V0OyB0aGVu Ci0rICBjYXNlICRhbV9hdXhfZGlyIGluCi0rICAqXCAqIHwgKlwJKikKLSsgICAgaW5zdGFsbF9z aD0iXCR7U0hFTEx9ICckYW1fYXV4X2Rpci9pbnN0YWxsLXNoJyIgOzsKLSsgICopCi0rICAgIGlu c3RhbGxfc2g9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9pbnN0YWxsLXNoIgotKyAgZXNhYwotK2Zp Ci0rQUNfU1VCU1QoaW5zdGFsbF9zaCldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1 ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJl ZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1p dGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Ig d2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZl ZC4KLSsKLSsjIHNlcmlhbCAyCi0rCi0rIyBDaGVjayB3aGV0aGVyIHRoZSB1bmRlcmx5aW5nIGZp bGUtc3lzdGVtIHN1cHBvcnRzIGZpbGVuYW1lcwotKyMgd2l0aCBhIGxlYWRpbmcgZG90LiAgRm9y IGluc3RhbmNlIE1TLURPUyBkb2Vzbid0LgotK0FDX0RFRlVOKFtBTV9TRVRfTEVBRElOR19ET1Rd LAotK1tybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAotK21rZGlyIC50c3QgMj4vZGV2L251bGwKLStp ZiB0ZXN0IC1kIC50c3Q7IHRoZW4KLSsgIGFtX19sZWFkaW5nX2RvdD0uCi0rZWxzZQotKyAgYW1f X2xlYWRpbmdfZG90PV8KLStmaQotK3JtZGlyIC50c3QgMj4vZGV2L251bGwKLStBQ19TVUJTVChb YW1fX2xlYWRpbmdfZG90XSldKQotKwotKyMgQ2hlY2sgdG8gc2VlIGhvdyAnbWFrZScgdHJlYXRz IGluY2x1ZGVzLgkgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQg KEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDQKLSsKLSsj IEFNX01BS0VfSU5DTFVERSgpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgdG8gc2Vl IGhvdyBtYWtlIHRyZWF0cyBpbmNsdWRlcy4KLStBQ19ERUZVTihbQU1fTUFLRV9JTkNMVURFXSwK LStbYW1fbWFrZT0ke01BS0UtbWFrZX0KLStjYXQgPiBjb25maW5jIDw8ICdFTkQnCi0rYW1fX2Rv aXQ6Ci0rCUBlY2hvIHRoaXMgaXMgdGhlIGFtX19kb2l0IHRhcmdldAotKy5QSE9OWTogYW1fX2Rv aXQKLStFTkQKLSsjIElmIHdlIGRvbid0IGZpbmQgYW4gaW5jbHVkZSBkaXJlY3RpdmUsIGp1c3Qg Y29tbWVudCBvdXQgdGhlIGNvZGUuCi0rQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3R5bGUgb2YgaW5j bHVkZSB1c2VkIGJ5ICRhbV9tYWtlXSkKLSthbV9faW5jbHVkZT0iIyIKLSthbV9fcXVvdGU9Ci0r X2FtX3Jlc3VsdD1ub25lCi0rIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLStl Y2hvICJpbmNsdWRlIGNvbmZpbmMiID4gY29uZm1mCi0rIyBJZ25vcmUgYWxsIGtpbmRzIG9mIGFk ZGl0aW9uYWwgb3V0cHV0IGZyb20gYG1ha2UnLgotK2Nhc2UgYCRhbV9tYWtlIC1zIC1mIGNvbmZt ZiAyPiAvZGV2L251bGxgIGluICMoCi0rKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCi0rICBhbV9f aW5jbHVkZT1pbmNsdWRlCi0rICBhbV9fcXVvdGU9Ci0rICBfYW1fcmVzdWx0PUdOVQotKyAgOzsK LStlc2FjCi0rIyBOb3cgdHJ5IEJTRCBtYWtlIHN0eWxlIGluY2x1ZGUuCi0raWYgdGVzdCAiJGFt X19pbmNsdWRlIiA9ICIjIjsgdGhlbgotKyAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5jIicgPiBj b25mbWYKLSsgICBjYXNlIGAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCBpbiAj KAotKyAgICp0aGVcIGFtX19kb2l0XCB0YXJnZXQqKQotKyAgICAgYW1fX2luY2x1ZGU9LmluY2x1 ZGUKLSsgICAgIGFtX19xdW90ZT0iXCIiCi0rICAgICBfYW1fcmVzdWx0PUJTRAotKyAgICAgOzsK LSsgICBlc2FjCi0rZmkKLStBQ19TVUJTVChbYW1fX2luY2x1ZGVdKQotK0FDX1NVQlNUKFthbV9f cXVvdGVdKQotK0FDX01TR19SRVNVTFQoWyRfYW1fcmVzdWx0XSkKLStybSAtZiBjb25maW5jIGNv bmZtZgotK10pCi0rCi0rIyBGYWtlIHRoZSBleGlzdGVuY2Ugb2YgcHJvZ3JhbXMgdGhhdCBHTlUg bWFpbnRhaW5lcnMgdXNlLiAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAx OTk3LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA4Ci0rIyBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2Fy ZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1p c3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBt b2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsj IHNlcmlhbCA2Ci0rCi0rIyBBTV9NSVNTSU5HX1BST0coTkFNRSwgUFJPR1JBTSkKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBTV9NSVNTSU5HX1BST0ddLAot K1tBQ19SRVFVSVJFKFtBTV9NSVNTSU5HX0hBU19SVU5dKQotKyQxPSR7JDEtIiR7YW1fbWlzc2lu Z19ydW59JDIifQotK0FDX1NVQlNUKCQxKV0pCi0rCi0rCi0rIyBBTV9NSVNTSU5HX0hBU19SVU4K LSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRGVmaW5lIE1JU1NJTkcgaWYgbm90IGRlZmluZWQg c28gZmFyIGFuZCB0ZXN0IGlmIGl0IHN1cHBvcnRzIC0tcnVuLgotKyMgSWYgaXQgZG9lcywgc2V0 IGFtX21pc3NpbmdfcnVuIHRvIHVzZSBpdCwgb3RoZXJ3aXNlLCB0byBub3RoaW5nLgotK0FDX0RF RlVOKFtBTV9NSVNTSU5HX0hBU19SVU5dLAotK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElSX0VYUEFO RF0pZG5sCi0rQUNfUkVRVUlSRV9BVVhfRklMRShbbWlzc2luZ10pZG5sCi0raWYgdGVzdCB4IiR7 TUlTU0lORytzZXR9IiAhPSB4c2V0OyB0aGVuCi0rICBjYXNlICRhbV9hdXhfZGlyIGluCi0rICAq XCAqIHwgKlwJKikKLSsgICAgTUlTU0lORz0iXCR7U0hFTEx9IFwiJGFtX2F1eF9kaXIvbWlzc2lu Z1wiIiA7OwotKyAgKikKLSsgICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3Np bmciIDs7Ci0rICBlc2FjCi0rZmkKLSsjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwKLStpZiBl dmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgotKyAgYW1fbWlzc2luZ19ydW49IiRNSVNT SU5HIC0tcnVuICIKLStlbHNlCi0rICBhbV9taXNzaW5nX3J1bj0KLSsgIEFDX01TR19XQVJOKFtg bWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZ10pCi0rZmkKLStdKQotKwotKyMg Q29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2ICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29w eSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25z LCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIEFNX1BST0dfTUtE SVJfUAotKyMgLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgYG1rZGlyIC1wJy4KLStBQ19E RUZVTihbQU1fUFJPR19NS0RJUl9QXSwKLStbQUNfUFJFUkVRKFsyLjYwXSlkbmwKLStBQ19SRVFV SVJFKFtBQ19QUk9HX01LRElSX1BdKWRubAotK2RubCBBdXRvbWFrZSAxLjggdG8gMS45LjYgdXNl ZCB0byBkZWZpbmUgbWtkaXJfcC4gIFdlIG5vdyB1c2UgTUtESVJfUCwKLStkbmwgd2hpbGUga2Vl cGluZyBhIGRlZmluaXRpb24gb2YgbWtkaXJfcCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4K LStkbmwgQE1LRElSX1BAIGlzIG1hZ2ljOiBBQ19PVVRQVVQgYWRqdXN0cyBpdHMgdmFsdWUgZm9y IGVhY2ggTWFrZWZpbGUuCi0rZG5sIEhvd2V2ZXIgd2UgY2Fubm90IGRlZmluZSBta2Rpcl9wIGFz ICQoTUtESVJfUCkgZm9yIHRoZSBzYWtlIG9mCi0rZG5sIE1ha2VmaWxlLmlucyB0aGF0IGRvIG5v dCBkZWZpbmUgTUtESVJfUCwgc28gd2UgZG8gb3VyIG93bgotK2RubCBhZGp1c3RtZW50IHVzaW5n IHRvcF9idWlsZGRpciAod2hpY2ggaXMgZGVmaW5lZCBtb3JlIG9mdGVuIHRoYW4KLStkbmwgTUtE SVJfUCkuCi0rQUNfU1VCU1QoW21rZGlyX3BdLCBbIiRNS0RJUl9QIl0pZG5sCi0rY2FzZSAkbWtk aXJfcCBpbgotKyAgW1tcXC8kXV0qIHwgPzpbW1xcL11dKikgOzsKLSsgICovKikgbWtkaXJfcD0i XCQodG9wX2J1aWxkZGlyKS8kbWtkaXJfcCIgOzsKLStlc2FjCi0rXSkKLSsKLSsjIEhlbHBlciBm dW5jdGlvbnMgZm9yIG9wdGlvbiBoYW5kbGluZy4gICAgICAgICAgICAgICAgICAgICAtKi0gQXV0 b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUsIDIw MDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgotKwotKyMgc2VyaWFsIDQKLSsKLSsjIF9BTV9NQU5HTEVfT1BUSU9OKE5BTUUpCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtfQU1fTUFOR0xFX09QVElPTl0sCi0r W1tfQU1fT1BUSU9OX11tNF9icGF0c3Vic3QoJDEsIFtbXmEtekEtWjAtOV9dXSwgW19dKV0pCi0r Ci0rIyBfQU1fU0VUX09QVElPTihOQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rIyBTZXQgb3B0aW9uIE5BTUUuICBQcmVzZW50bHkgdGhhdCBvbmx5IG1lYW5zIGRlZmlu aW5nIGEgZmxhZyBmb3IgdGhpcyBvcHRpb24uCi0rQUNfREVGVU4oW19BTV9TRVRfT1BUSU9OXSwK LStbbTRfZGVmaW5lKF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCAxKV0pCi0rCi0rIyBfQU1fU0VU X09QVElPTlMoT1BUSU9OUykKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSsjIE9QVElPTlMgaXMgYSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBBdXRvbWFrZSBvcHRpb25z LgotK0FDX0RFRlVOKFtfQU1fU0VUX09QVElPTlNdLAotK1ttNF9mb3JlYWNoX3coW19BTV9PcHRp b25dLCBbJDFdLCBbX0FNX1NFVF9PUFRJT04oX0FNX09wdGlvbildKV0pCi0rCi0rIyBfQU1fSUZf T1BUSU9OKE9QVElPTiwgSUYtU0VULCBbSUYtTk9ULVNFVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFeGVjdXRlIElGLVNFVCBpZiBPUFRJT04g aXMgc2V0LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4KLStBQ19ERUZVTihbX0FNX0lGX09QVElPTl0s Ci0rW200X2lmc2V0KF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCBbJDJdLCBbJDNdKV0pCi0rCi0r IyBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4g ICAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAyMDAw LCAyMDAxLCAyMDAzLCAyMDA1LCAyMDA4Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3Ig ZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25n IGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA1Ci0rCi0rIyBBTV9T QU5JVFlfQ0hFQ0sKLSsjIC0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBTV9TQU5JVFlfQ0hF Q0tdLAotK1tBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2Fu ZV0pCi0rIyBKdXN0IGluIGNhc2UKLStzbGVlcCAxCi0rZWNobyB0aW1lc3RhbXAgPiBjb25mdGVz dC5maWxlCi0rIyBSZWplY3QgdW5zYWZlIGNoYXJhY3RlcnMgaW4gJHNyY2RpciBvciB0aGUgYWJz b2x1dGUgd29ya2luZyBkaXJlY3RvcnkKLSsjIG5hbWUuICBBY2NlcHQgc3BhY2UgYW5kIHRhYiBv bmx5IGluIHRoZSBsYXR0ZXIuCi0rYW1fbGY9JwotKycKLStjYXNlIGBwd2RgIGluCi0rICAqW1tc XFwiXCNcJFwmXCdcYCRhbV9sZl1dKikKLSsgICAgQUNfTVNHX0VSUk9SKFt1bnNhZmUgYWJzb2x1 dGUgd29ya2luZyBkaXJlY3RvcnkgbmFtZV0pOzsKLStlc2FjCi0rY2FzZSAkc3JjZGlyIGluCi0r ICAqW1tcXFwiXCNcJFwmXCdcYCRhbV9sZlwgXAldXSopCi0rICAgIEFDX01TR19FUlJPUihbdW5z YWZlIHNyY2RpciB2YWx1ZTogYCRzcmNkaXInXSk7OwotK2VzYWMKLSsKLSsjIERvIGBzZXQnIGlu IGEgc3Vic2hlbGwgc28gd2UgZG9uJ3QgY2xvYmJlciB0aGUgY3VycmVudCBzaGVsbCdzCi0rIyBh cmd1bWVudHMuICBNdXN0IHRyeSAtTCBmaXJzdCBpbiBjYXNlIGNvbmZpZ3VyZSBpcyBhY3R1YWxs eSBhCi0rIyBzeW1saW5rOyBzb21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3aXRoIHRoZSBt b2QgdGltZSBvZiBzeW1saW5rcwotKyMgKGVnIEZyZWVCU0QgcmV0dXJucyB0aGUgbW9kIHRpbWUg b2YgdGhlIHN5bWxpbmsncyBjb250YWluaW5nCi0rIyBkaXJlY3RvcnkpLgotK2lmICgKLSsgICBz ZXQgWCBgbHMgLUx0ICIkc3JjZGlyL2NvbmZpZ3VyZSIgY29uZnRlc3QuZmlsZSAyPiAvZGV2L251 bGxgCi0rICAgaWYgdGVzdCAiJFsqXSIgPSAiWCI7IHRoZW4KLSsgICAgICAjIC1MIGRpZG4ndCB3 b3JrLgotKyAgICAgIHNldCBYIGBscyAtdCAiJHNyY2Rpci9jb25maWd1cmUiIGNvbmZ0ZXN0LmZp bGVgCi0rICAgZmkKLSsgICBybSAtZiBjb25mdGVzdC5maWxlCi0rICAgaWYgdGVzdCAiJFsqXSIg IT0gIlggJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSIgXAotKyAgICAgICYmIHRlc3Qg IiRbKl0iICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0rCi0r ICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRo aXMgY2FuIGhhcHBlbgotKyAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlz IGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKLSsgICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRo ZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5Ci0rICAgICAgIyBoYXBwZW5lZC4gIFN1 Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgotKyAgICAgIEFDX01T R19FUlJPUihbbHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBh IGJyb2tlbgotK2FsaWFzIGluIHlvdXIgZW52aXJvbm1lbnRdKQotKyAgIGZpCi0rCi0rICAgdGVz dCAiJFsyXSIgPSBjb25mdGVzdC5maWxlCi0rICAgKQotK3RoZW4KLSsgICAjIE9rLgotKyAgIDoK LStlbHNlCi0rICAgQUNfTVNHX0VSUk9SKFtuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhh biBkaXN0cmlidXRlZCBmaWxlcyEKLStDaGVjayB5b3VyIHN5c3RlbSBjbG9ja10pCi0rZmkKLStB Q19NU0dfUkVTVUxUKHllcyldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1 ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJl ZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1p dGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Ig d2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZl ZC4KLSsKLSsjIEFNX1BST0dfSU5TVEFMTF9TVFJJUAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rIyBPbmUgaXNzdWUgd2l0aCB2ZW5kb3IgYGluc3RhbGwnIChldmVuIEdOVSkgaXMgdGhhdCB5 b3UgY2FuJ3QKLSsjIHNwZWNpZnkgdGhlIHByb2dyYW0gdXNlZCB0byBzdHJpcCBiaW5hcmllcy4g IFRoaXMgaXMgZXNwZWNpYWxseQotKyMgYW5ub3lpbmcgaW4gY3Jvc3MtY29tcGlsaW5nIGVudmly b25tZW50cywgd2hlcmUgdGhlIGJ1aWxkJ3Mgc3RyaXAKLSsjIGlzIHVubGlrZWx5IHRvIGhhbmRs ZSB0aGUgaG9zdCdzIGJpbmFyaWVzLgotKyMgRm9ydHVuYXRlbHkgaW5zdGFsbC1zaCB3aWxsIGhv bm9yIGEgU1RSSVBQUk9HIHZhcmlhYmxlLCBzbyB3ZQotKyMgYWx3YXlzIHVzZSBpbnN0YWxsLXNo IGluIGBtYWtlIGluc3RhbGwtc3RyaXAnLCBhbmQgaW5pdGlhbGl6ZQotKyMgU1RSSVBQUk9HIHdp dGggdGhlIHZhbHVlIG9mIHRoZSBTVFJJUCB2YXJpYWJsZSAoc2V0IGJ5IHRoZSB1c2VyKS4KLStB Q19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NUUklQXSwKLStbQUNfUkVRVUlSRShbQU1fUFJPR19J TlNUQUxMX1NIXSlkbmwKLSsjIEluc3RhbGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBzdHJpcHBl ZCB1c2luZyBgc3RyaXAnIHdoZW4gdGhlIHVzZXIKLSsjIHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlw Jy4gIEhvd2V2ZXIgYHN0cmlwJyBtaWdodCBub3QgYmUgdGhlIHJpZ2h0Ci0rIyB0b29sIHRvIHVz ZSBpbiBjcm9zcy1jb21waWxhdGlvbiBlbnZpcm9ubWVudHMsIHRoZXJlZm9yZSBBdXRvbWFrZQot KyMgd2lsbCBob25vciB0aGUgYFNUUklQJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBvdmVycnVs ZSB0aGlzIHByb2dyYW0uCi0rZG5sIERvbid0IHRlc3QgZm9yICRjcm9zc19jb21waWxpbmcgPSB5 ZXMsIGJlY2F1c2UgaXQgbWlnaHQgYmUgYG1heWJlJy4KLStpZiB0ZXN0ICIkY3Jvc3NfY29tcGls aW5nIiAhPSBubzsgdGhlbgotKyAgQUNfQ0hFQ0tfVE9PTChbU1RSSVBdLCBbc3RyaXBdLCA6KQot K2ZpCi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKLStBQ19T VUJTVChbSU5TVEFMTF9TVFJJUF9QUk9HUkFNXSldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDA2 LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMg dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdp dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHBy ZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCAyCi0rCi0rIyBfQU1fU1VCU1RfTk9UTUFLRShWQVJJQUJM RSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUHJldmVudCBBdXRvbWFrZSBm cm9tIG91dHB1dHRpbmcgVkFSSUFCTEUgPSBAVkFSSUFCTEVAIGluIE1ha2VmaWxlLmluLgotKyMg VGhpcyBtYWNybyBpcyB0cmFjZWQgYnkgQXV0b21ha2UuCi0rQUNfREVGVU4oW19BTV9TVUJTVF9O T1RNQUtFXSkKLSsKLSsjIEFNX1NVQlNUX05PVE1BS0UoVkFSSUFCTEUpCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSsjIFB1YmxpYyBzaXN0ZXIgb2YgX0FNX1NVQlNUX05PVE1BS0Uu Ci0rQUNfREVGVU4oW0FNX1NVQlNUX05PVE1BS0VdLCBbX0FNX1NVQlNUX05PVE1BS0UoJEApXSkK LSsKLSsjIENoZWNrIGhvdyB0byBjcmVhdGUgYSB0YXJiYWxsLiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3 aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgotKwotKyMgc2VyaWFsIDIKLSsKLSsjIF9BTV9QUk9HX1RBUihGT1JNQVQpCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwgaW4gZm9ybWF0 IEZPUk1BVC4KLSsjIEZPUk1BVCBzaG91bGQgYmUgb25lIG9mIGB2NycsIGB1c3RhcicsIG9yIGBw YXgnLgotKyMKLSsjIFN1YnN0aXR1dGUgYSB2YXJpYWJsZSAkKGFtX190YXIpIHRoYXQgaXMgYSBj b21tYW5kCi0rIyB3cml0aW5nIHRvIHN0ZG91dCBhIEZPUk1BVC10YXJiYWxsIGNvbnRhaW5pbmcg dGhlIGRpcmVjdG9yeQotKyMgJHRhcmRpci4KLSsjICAgICB0YXJkaXI9ZGlyZWN0b3J5ICYmICQo YW1fX3RhcikgPiByZXN1bHQudGFyCi0rIwotKyMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1f X3VudGFyKSB0aGF0IGV4dHJhY3Qgc3VjaAotKyMgYSB0YXJiYWxsIHJlYWQgZnJvbSBzdGRpbi4K LSsjICAgICAkKGFtX191bnRhcikgPCByZXN1bHQudGFyCi0rQUNfREVGVU4oW19BTV9QUk9HX1RB Ul0sCi0rWyMgQWx3YXlzIGRlZmluZSBBTVRBUiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4K LStBTV9NSVNTSU5HX1BST0coW0FNVEFSXSwgW3Rhcl0pCi0rbTRfaWYoWyQxXSwgW3Y3XSwKLSsg ICAgIFthbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191bnRhcj0nJHtB TVRBUn0geGYgLSddLAotKyAgICAgW200X2Nhc2UoWyQxXSwgW3VzdGFyXSwsIFtwYXhdLCwKLSsg ICAgICAgICAgICAgIFttNF9mYXRhbChbVW5rbm93biB0YXIgZm9ybWF0XSldKQotK0FDX01TR19D SEVDS0lORyhbaG93IHRvIGNyZWF0ZSBhICQxIHRhciBhcmNoaXZlXSkKLSsjIExvb3Agb3ZlciBh bGwga25vd24gbWV0aG9kcyB0byBjcmVhdGUgYSB0YXIgYXJjaGl2ZSB1bnRpbCBvbmUgd29ya3Mu Ci0rX2FtX3Rvb2xzPSdnbnV0YXIgbTRfaWYoWyQxXSwgW3VzdGFyXSwgW3BsYWludGFyXSkgcGF4 IGNwaW8gbm9uZScKLStfYW1fdG9vbHM9JHthbV9jdl9wcm9nX3Rhcl8kMS0kX2FtX3Rvb2xzfQot KyMgRG8gbm90IGZvbGQgdGhlIGFib3ZlIHR3byBsaW5lIGludG8gb25lLCBiZWNhdXNlIFRydTY0 IHNoIGFuZAotKyMgU29sYXJpcyBzaCB3aWxsIG5vdCBncm9rIHNwYWNlcyBpbiB0aGUgcmhzIG9m IGAtJy4KLStmb3IgX2FtX3Rvb2wgaW4gJF9hbV90b29scwotK2RvCi0rICBjYXNlICRfYW1fdG9v bCBpbgotKyAgZ251dGFyKQotKyAgICBmb3IgX2FtX3RhciBpbiB0YXIgZ251dGFyIGd0YXI7Ci0r ICAgIGRvCi0rICAgICAgQU1fUlVOX0xPRyhbJF9hbV90YXIgLS12ZXJzaW9uXSkgJiYgYnJlYWsK LSsgICAgZG9uZQotKyAgICBhbV9fdGFyPSIkX2FtX3RhciAtLWZvcm1hdD1tNF9pZihbJDFdLCBb cGF4XSwgW3Bvc2l4XSwgWyQxXSkgLWNoZiAtICInIiQkdGFyZGlyIicKLSsgICAgYW1fX3Rhcl89 IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtwYXhdLCBbcG9zaXhdLCBbJDFdKSAtY2hm IC0gIiciJHRhcmRpciInCi0rICAgIGFtX191bnRhcj0iJF9hbV90YXIgLXhmIC0iCi0rICAgIDs7 Ci0rICBwbGFpbnRhcikKLSsgICAgIyBNdXN0IHNraXAgR05VIHRhcjogaWYgaXQgZG9lcyBub3Qg c3VwcG9ydCAtLWZvcm1hdD0gaXQgZG9lc24ndCBjcmVhdGUKLSsgICAgIyB1c3RhciB0YXJiYWxs IGVpdGhlci4KLSsgICAgKHRhciAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMSAmJiBjb250aW51 ZQotKyAgICBhbV9fdGFyPSd0YXIgY2hmIC0gIiQkdGFyZGlyIicKLSsgICAgYW1fX3Rhcl89J3Rh ciBjaGYgLSAiJHRhcmRpciInCi0rICAgIGFtX191bnRhcj0ndGFyIHhmIC0nCi0rICAgIDs7Ci0r ICBwYXgpCi0rICAgIGFtX190YXI9J3BheCAtTCAteCAkMSAtdyAiJCR0YXJkaXIiJwotKyAgICBh bV9fdGFyXz0ncGF4IC1MIC14ICQxIC13ICIkdGFyZGlyIicKLSsgICAgYW1fX3VudGFyPSdwYXgg LXInCi0rICAgIDs7Ci0rICBjcGlvKQotKyAgICBhbV9fdGFyPSdmaW5kICIkJHRhcmRpciIgLXBy aW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKLSsgICAgYW1fX3Rhcl89J2ZpbmQgIiR0YXJkaXIiIC1w cmludCB8IGNwaW8gLW8gLUggJDEgLUwnCi0rICAgIGFtX191bnRhcj0nY3BpbyAtaSAtSCAkMSAt ZCcKLSsgICAgOzsKLSsgIG5vbmUpCi0rICAgIGFtX190YXI9ZmFsc2UKLSsgICAgYW1fX3Rhcl89 ZmFsc2UKLSsgICAgYW1fX3VudGFyPWZhbHNlCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICAjIElm IHRoZSB2YWx1ZSB3YXMgY2FjaGVkLCBzdG9wIG5vdy4gIFdlIGp1c3Qgd2FudGVkIHRvIGhhdmUg YW1fX3RhcgotKyAgIyBhbmQgYW1fX3VudGFyIHNldC4KLSsgIHRlc3QgLW4gIiR7YW1fY3ZfcHJv Z190YXJfJDF9IiAmJiBicmVhawotKwotKyAgIyB0YXIvdW50YXIgYSBkdW1teSBkaXJlY3Rvcnks IGFuZCBzdG9wIGlmIHRoZSBjb21tYW5kIHdvcmtzCi0rICBybSAtcmYgY29uZnRlc3QuZGlyCi0r ICBta2RpciBjb25mdGVzdC5kaXIKLSsgIGVjaG8gR3JlcE1lID4gY29uZnRlc3QuZGlyL2ZpbGUK LSsgIEFNX1JVTl9MT0coW3RhcmRpcj1jb25mdGVzdC5kaXIgJiYgZXZhbCAkYW1fX3Rhcl8gPmNv bmZ0ZXN0LnRhcl0pCi0rICBybSAtcmYgY29uZnRlc3QuZGlyCi0rICBpZiB0ZXN0IC1zIGNvbmZ0 ZXN0LnRhcjsgdGhlbgotKyAgICBBTV9SVU5fTE9HKFskYW1fX3VudGFyIDxjb25mdGVzdC50YXJd KQotKyAgICBncmVwIEdyZXBNZSBjb25mdGVzdC5kaXIvZmlsZSA+L2Rldi9udWxsIDI+JjEgJiYg YnJlYWsKLSsgIGZpCi0rZG9uZQotK3JtIC1yZiBjb25mdGVzdC5kaXIKLSsKLStBQ19DQUNIRV9W QUwoW2FtX2N2X3Byb2dfdGFyXyQxXSwgW2FtX2N2X3Byb2dfdGFyXyQxPSRfYW1fdG9vbF0pCi0r QUNfTVNHX1JFU1VMVChbJGFtX2N2X3Byb2dfdGFyXyQxXSldKQotK0FDX1NVQlNUKFthbV9fdGFy XSkKLStBQ19TVUJTVChbYW1fX3VudGFyXSkKLStdKSAjIF9BTV9QUk9HX1RBUgotKwotK200X2lu Y2x1ZGUoW2NvbmZpZy9heF9ib29zdC5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2F4X215c3Fs Lm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvYXhfb3JhY2xlX29jaS5tNF0pCi0rbTRfaW5jbHVk ZShbY29uZmlnL2F4X3Bvc3RncmVzcWwubTRdKQotK200X2luY2x1ZGUoW2NvbmZpZy9jcHB1bml0 Lm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvbGlidG9vbC5tNF0pCi0rbTRfaW5jbHVkZShbY29u ZmlnL2x0b3B0aW9ucy5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2x0c3VnYXIubTRdKQotK200 X2luY2x1ZGUoW2NvbmZpZy9sdHZlcnNpb24ubTRdKQotK200X2luY2x1ZGUoW2NvbmZpZy9sdH5v YnNvbGV0ZS5tNF0pCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUu YW0gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svYnVpbGQvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAx OTozNzowOC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNyBAQAotKyMjIGJ1aWxkIHN1Yi1k aXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rTUFJ TlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK1NVQkRJUlMgPSB1bml4IG1zdmM4 MAotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmluIHNvY2kt My4wLjBfdHJlcDMwMC9idWlsZC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1 aWxkL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL01ha2VmaWxlLmluCTIwMTEtMDctMDMgMTg6NDQ6Mjcu MDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDYxOSBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJh dGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9p bnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwg MTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs IDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMg TWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEK LSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3JjZGly QAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAk KGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAK LStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBB VEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9z aF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAk KGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0r SU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1f dHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0r UE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9 IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3Rf dHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gUkVBRE1FICQoc3JjZGlyKS9NYWtlZmls ZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbgotK3N1YmRpciA9IGJ1aWxkCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2Nh bC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29z dC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1 cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVT KSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAot K0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19D TEVBTl9GSUxFUyA9Ci0rQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KLStTT1VSQ0VTID0KLStE SVNUX1NPVVJDRVMgPQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1y ZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZl IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFs bC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZv LXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2 ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRp cnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJl Y3Vyc2l2ZQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZl IGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xl YW4tcmVjdXJzaXZlCi0rQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRT Oi1yZWN1cnNpdmU9KSBcCi0rCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0p IHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCi0rCWRpc3RkaXIKLStFVEFHUyA9IGV0YWdzCi0rQ1RB R1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAkKERJ U1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK2Ft X19yZWxhdGl2aXplID0gXAotKyAgZGlyMD1gcHdkYDsgXAotKyAgc2VkX2ZpcnN0PSdzLF5cKFte L10qXCkvLiokJCxcMSwnOyBcCi0rICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAotKyAgc2Vk X2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKLSsgIHNlZF9idXRsYXN0PSdzLC8qW14v XSokJCwsJzsgXAotKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAotKyAgICBmaXJzdD1g ZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICBpZiB0ZXN0ICIk JGZpcnN0IiAhPSAiLiI7IHRoZW4gXAotKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsg dGhlbiBcCi0rICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0 ImAvIiQkZGlyMiI7IFwKLSsgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQk c2VkX2J1dGxhc3QiYDsgXAotKyAgICAgIGVsc2UgXAotKyAgICAgICAgZmlyc3QyPWBlY2hvICIk JGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgICAgICBpZiB0ZXN0ICIkJGZp cnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAotKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIi IHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgICAgICAgIGVsc2UgXAotKyAgICAgICAgICBk aXIyPSIuLi8kJGRpcjIiOyBcCi0rICAgICAgICBmaTsgXAotKyAgICAgICAgZGlyMD0iJCRkaXIw Ii8iJCRmaXJzdCI7IFwKLSsgICAgICBmaTsgXAotKyAgICBmaTsgXAotKyAgICBkaXIxPWBlY2hv ICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgIGRvbmU7IFwKLSsgIHJlbGRp cj0iJCRkaXIyIgotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9 IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJA Ci0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9BU0lPX0xJQiA9 IEBCT09TVF9BU0lPX0xJQkAKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NU X0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVN X0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJP T1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01Q SV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKLStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9N UElfUFlUSE9OX0xJQkAKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAot K0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBA Qk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElC QAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09T VF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NE RVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBD UFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NP TkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAot K0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhD UFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBD WFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBE SVIgPSBAREVQRElSQAotK0RMTFRPT0wgPSBARExMVE9PTEAKLStEU1lNVVRJTCA9IEBEU1lNVVRJ TEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBA RUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0g QEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBH RU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNU QUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0g QElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJ TlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExE QAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBM SUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9T QAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUFO SUZFU1RfVE9PTCA9IEBNQU5JRkVTVF9UT09MQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNR TF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAot K01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0r TVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBO TUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xF X0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9D RkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFD TEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAot K09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdS RVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFN RUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUg PSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAotK1BBQ0tB R0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9T RVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9T VEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0g QFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZM QUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElC ID0gQFJBTkxJQkAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxM ID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAK LStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURA Ci0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURf Q09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWls ZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBh YnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2Fj X2N0X0FSID0gQGFjX2N0X0FSQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9 IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNs dWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RA Ci0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3Vu dGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAot K2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0r YnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLSti dWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIg PSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJA Ci0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNf b2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBA Z3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0 X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBA aG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVk ZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAot K2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9 IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9 IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9w QAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAot K3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStz ZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3Ny Y2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlh cyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4 QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3Jj ZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0r TUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK1NVQkRJUlMgPSB1bml4IG1zdmM4 MAotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZp bGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2Fz ZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAg ICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2Ug YnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7 IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQv TWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9N QUtFKSAtLWdudSBidWlsZC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmls ZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0r CUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkg ICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIp L2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19E RVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29u ZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMp Ci0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoK LSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJz Ci0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBl bmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdv aW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBt YWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYg dGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0 dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVy YXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRl c2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RB UkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFL RUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBc Ci0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7 IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2 ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK LSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZh aWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4g XAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBc Ci0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6 Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7 IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAg ICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlk b3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRh aW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSck KFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJ ICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9 IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwK LSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBp biAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkg ICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2Fs X3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGly ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZh bCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNp dmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkg IHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1 YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElT UCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdT Ci0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJ aGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1 ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0t LWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0r CSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7 IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAg JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16 ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4g IiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3Qg MDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykg JChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0r CSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdT KSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MK LStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RF UEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16 ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1Mp ICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStH VEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAm JiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdT KSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBH UlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3Rf ZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAg c2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3Jj ZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBp biBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAg IHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBz b3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBc Ci0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNl IGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0r CSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkg ICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAi JChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4 IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxl ICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNk aXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAi JChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4 IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3Rk aXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0 ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRm aWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSck KERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3Qg IiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIp LyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBc Ci0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1Rf U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRp c3RkaXIpLyQkc3ViZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5l d19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9k aXN0ZGlyKSI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rp c3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIk JG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGly PTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7 IFwKLSsJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBc Ci0rCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0 ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9m aXg9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBm aTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUK LSthbGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQot K2luc3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1l eGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEt cmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1h bTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0r aW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFN PSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQo SU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVz dCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RS SVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStj bGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05G SUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3Qg LiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIg fHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFp bmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUg c3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFO RklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1y ZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3Rs eWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBN YWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNs ZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDog aHRtbC1yZWN1cnNpdmUKLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0r Ci0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3Rh bGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1h bToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxs LWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0 YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBp bnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNr LWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0r CS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWlu dGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJz aXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4t bGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMt cmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiAkKFJF Q1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNp dmUgXAotKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKLSsKLSsuUEhP Tlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdT IEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYnRvb2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3Rj bGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRp ciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3Rh bGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3Rh bGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwg aW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxs LW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1w cy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0 YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHlj bGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0r CXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNp b25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4K LSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBl eGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQv bXN2YzgwL2RsbC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2Rs bC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9kbGwvTWFr ZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3 OjA4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxMSBAQAotKyMjIGJ1aWxkL21zdmM4MC9k bGwgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24K LSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rRVhUUkFfRElTVCA9 IGJ1aWxkLmJhdCBlbXB0eS52Y3Byb2ogbWFrZXRlc3QubWFrIG9kYmNfdGVzdF9wb3N0Z3Jlc3Fs LnZjcHJvaiBcCi0rCXBvc3RncmVzcWxfdGVzdC52Y3Byb2ogc3FsaXRlM190ZXN0LnZjcHJvaiBj bGVhbi5iYXQgXAotKwlmaXJlYmlyZF90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfYWNjZXNzLnZjcHJv aiBvZGJjLnZjcHJvaiBcCi0rCXBvc3RncmVzcWwudmNwcm9qIHNxbGl0ZTMudmNwcm9qIGNvcmUu dmNwcm9qIGZpcmViaXJkLnZjcHJvaiBcCi0rCW9kYmNfdGVzdF9tc3NxbC52Y3Byb2ogb3JhY2xl X3Rlc3QudmNwcm9qIHNvY2lfZGxsLnNsbiBcCi0rCWVtcHR5X3Rlc3QudmNwcm9qIG9kYmNfdGVz dF9teXNxbC52Y3Byb2ogb3JhY2xlLnZjcHJvaiBzb2NpX2RsbC52c3Byb3BzCi1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtl ZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw0 MjMgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBN YWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0 ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0r QFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2ds aWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2Rp cikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9T RVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0g NjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hf U0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RB VEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNU QUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5J TlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVp bGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1P TiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1aWxkL21zdmM4MC9kbGwKLStB Q0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVw cyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2Np Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0 b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVy c2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3Ny Y2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9t NF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21r aW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1 aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xF QU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rRElTVEZJTEVT ID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElT VCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0r QVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9N QUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQVNJT19MSUIgPSBAQk9PU1Rf QVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJ TUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBA Qk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NU UkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0g QEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhP Tl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElP TlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9S RUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJ R05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09T VF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1F V09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lP TiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9X U0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAK LStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NA Ci0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBA Q1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklU X1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENY WENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NA Ci0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERF UERJUkAKLStETExUT09MID0gQERMTFRPT0xACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVN UEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAK LStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRA Ci0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19M SUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJ TlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxM X1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9T VFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZM QUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStM SUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJ Qk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01BTklGRVNUX1RP T0wgPSBATUFOSUZFU1RfVE9PTEAKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdT ID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9E SVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZF UlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAot K09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0g QE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAot K09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9W RVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0 ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0g QFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFD S0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tB R0VfVEFSTkFNRUAKLStQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKLStQQUNLQUdFX1ZFUlNJ T04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9S QAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxf Q0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JF U1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQ T1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5M SUJACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVM TEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9N WVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJ RURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRA Ci0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0r YWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9i dWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9BUiA9 IEBhY19jdF9BUkAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3Rf Q1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBh bV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19x dW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBh bV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9h bGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29z ID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIg PSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFy b290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHln ZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2 aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAot K2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBA aG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVu ZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0r aW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9v ayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhl Y2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxz dGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRp bmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXgg PSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1f bmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0g QHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBA c3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFy Z2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3Bf YnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStB TV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK01BSU5UQUlO RVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5 LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKLSsJcG9z dGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCi0rCWZp cmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwK LSsJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQu dmNwcm9qIFwKLSsJb2RiY190ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29j aV9kbGwuc2xuIFwKLSsJZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBv cmFjbGUudmNwcm9qIHNvY2lfZGxsLnZzcHJvcHMKLSsKLSthbGw6IGFsbC1hbQotKwotKy5TVUZG SVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3Ig ZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0r CSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAt ZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7 IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYg JChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSc7IFwKLSsJJChhbV9f Y2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL21zdmM4 MC9kbGwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGly KS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8n IGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAg ICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk KHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVw ZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3Rh dHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVT KQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBz KQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFt X19hY2xvY2FsX200X2RlcHMpOgotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAq LmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK3RhZ3M6IFRB R1MKLStUQUdTOgotKwotK2N0YWdzOiBDVEFHUwotK0NUQUdTOgotKwotKwotK2Rpc3RkaXI6ICQo RElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10u W14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklM RVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZp bGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAg ICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwlj YXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3Rf ZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSok JCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4g JCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZp bGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRk LyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9b Xi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVu IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAw IC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAt ZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAg ICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7 IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAw IC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAk JGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkg ICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZp bGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAot Kwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFr ZWZpbGUKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVj OiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5z dGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFs bGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAot KwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxM X1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNo byAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLStt b3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdl bmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09O RklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChD T05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9G SUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1h bmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0 ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwkt dGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNM RUFORklMRVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMg Y2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFt Ci0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdl bmVyaWMKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0r Ci0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxs LWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1k dmktYW06Ci0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1o dG1sLWFtCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1p bmZvLWFtCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3Rh bGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwt cHM6IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVjay1h bToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCi0rCS1ybSAtZiBN YWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNs ZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KLSsKLSttb3N0bHlj bGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRm OiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLWFtCi0rCi0rcHMtYW06Ci0rCi0rdW5p bnN0YWxsLWFtOgotKwotKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKLSsKLSsuUEhP Tlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1s aWJ0b29sIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29s IGRpc3RkaXIgZHZpIFwKLSsJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFs bCBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2 aSBpbnN0YWxsLWR2aS1hbSBcCi0rCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFs bC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCi0rCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0g aW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAotKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGlu c3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCi0rCWluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2st YW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2Vu ZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGli dG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VU X01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5v dCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9y IFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZS5hbSBzb2NpLTMuMC4w X3RyZXAzMDAvYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2xpYi9NYWtl ZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwx MSBAQAotKyMjIGJ1aWxkL21zdmM4MC9saWIgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2Vm aWxlLmluCi0rCi0rRVhUUkFfRElTVCA9IGJ1aWxkLmJhdCBlbXB0eS52Y3Byb2ogbWFrZXRlc3Qu bWFrIG9kYmNfdGVzdF9wb3N0Z3Jlc3FsLnZjcHJvaiBcCi0rCXBvc3RncmVzcWxfdGVzdC52Y3By b2ogc3FsaXRlM190ZXN0LnZjcHJvaiBjbGVhbi5iYXQgXAotKwlmaXJlYmlyZF90ZXN0LnZjcHJv aiBvZGJjX3Rlc3RfYWNjZXNzLnZjcHJvaiBvZGJjLnZjcHJvaiBcCi0rCXBvc3RncmVzcWwudmNw cm9qIHNxbGl0ZTMudmNwcm9qIGNvcmUudmNwcm9qIGZpcmViaXJkLnZjcHJvaiBcCi0rCW9kYmNf dGVzdF9tc3NxbC52Y3Byb2ogb3JhY2xlX3Rlc3QudmNwcm9qIHNvY2lfbGliLnNsbiBcCi0rCWVt cHR5X3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9teXNxbC52Y3Byb2ogb3JhY2xlLnZjcHJvaiBzb2Np X2xpYi52c3Byb3BzCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2xp Yi9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmls ZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4J MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAz MDAvYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAw MDAwMCArMDIwMAotQEAgLTAsMCArMSw0MjMgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBi eSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRA Ci0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTks IDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4 LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2Vm aWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs Ci0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQ QVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStw a2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNs dWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtn bGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIk JHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFU QSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0 YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RB TExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1Rf SU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0r UE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBs ZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2Rp cikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRp ciA9IGJ1aWxkL21zdmM4MC9saWIKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2Fs Lm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0 Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf cG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3Vy ZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMp IFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0r Q09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NM RUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQotK0RJ U1RfU09VUkNFUyA9Ci0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMp ICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIg PSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURF UiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0r Qk9PU1RfQVNJT19MSUIgPSBAQk9PU1RfQVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NU X0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0r Qk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9T VFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1Rf TElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhP Tl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJ QiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9P U1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JP T1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NU X1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBA Qk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJA Ci0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1F V09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJ QUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0r Q0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBA Ci0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxB R1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0g QENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NY WCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVA Ci0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZT ID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStETExUT09MID0gQERMTFRPT0xACi0rRFNZ TVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hP X0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVH UkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJS QVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAot K0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lO U1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5T VEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJP R1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJP QkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBP QAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0g QE1BS0VJTkZPQAotK01BTklGRVNUX1RPT0wgPSBATUFOSUZFU1RfVE9PTEAKLStNS0RJUl9QID0g QE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJQiA9 IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTElCUyA9 IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBO TUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBA T0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdT ID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJ X0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStP VE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdF QAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFN RSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0r UEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1VSTCA9IEBQQUNL QUdFX1VSTEAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQ QVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBA UEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BP U1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0g QFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9W RVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBT RVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf SEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NP TU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWls ZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190 b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNf dG9wX3NyY2RpckAKLSthY19jdF9BUiA9IEBhY19jdF9BUkAKLSthY19jdF9DQyA9IEBhY19jdF9D Q0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVN UEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBA YW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBh bV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLSti dWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUg PSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBi dWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGly QAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStk b2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBA ZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJl Zml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhv c3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAot K2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNs dWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2gg PSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGly QAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAot K2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21r ZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRm ZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25h bWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGly ID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFy ZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRp ckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBA dG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9z cmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1J JCh0b3Bfc3JjZGlyKQotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStFWFRS QV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bv c3RncmVzcWwudmNwcm9qIFwKLSsJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3Qu dmNwcm9qIGNsZWFuLmJhdCBcCi0rCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nl c3MudmNwcm9qIG9kYmMudmNwcm9qIFwKLSsJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3By b2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKLSsJb2RiY190ZXN0X21zc3FsLnZjcHJv aiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9saWIuc2xuIFwKLSsJZW1wdHlfdGVzdC52Y3Byb2og b2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfbGliLnZzcHJvcHMKLSsK LSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAk KHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9f Y29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9f Y29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAot KwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZp OyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNo byAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvbXN2YzgwL2xp Yi9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVU T01BS0UpIC0tZ251IGJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2Vm aWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29u ZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJ ICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo U0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUp JzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1 cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQo dG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENP TkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNs b2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotKwotK21vc3RseWNs ZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1y ZiAubGlicyBfbGlicwotK3RhZ3M6IFRBR1MKLStUQUdTOgotKwotK2N0YWdzOiBDVEFHUwotK0NU QUdTOgotKwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8g IiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2Rp cnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxl IGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNy Y2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9w X2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAk KE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8 XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0r CWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAt ZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBm aTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8g Ii8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAi JChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZp bGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAg ICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9 ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChk aXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZp bGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAg ICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4 aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwK LSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8 fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNr OiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBp bnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6 IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1h bTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxs LXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5T VEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICck KFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9 JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdl bmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVB Tl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQo c3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAt ZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVy aWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRv IHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFs IHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUyki IHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0r Y2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwot K2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1h bTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1h bToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLWFtCi0r Ci0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3Rh bGwtZHZpLWFtCi0rCi0raW5zdGFsbC1kdmktYW06Ci0rCi0raW5zdGFsbC1leGVjLWFtOgotKwot K2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwot K2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwot K2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3Rh bGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0YWxsLXBz LWFtOgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFp bmVyLWNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRp c3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9z dGx5Y2xlYW4tYW0KLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBz LWFtCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiBpbnN0YWxsLWFt IGluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xl YW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1n ZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKLSsJZHZpLWFtIGh0bWwgaHRt bC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1kYXRhIGlu c3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCi0rCWluc3RhbGwtZXhl YyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCi0rCWluc3Rh bGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAotKwlpbnN0 YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCi0rCWlu c3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBc Ci0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5l cmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHVuaW5zdGFs bCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5 LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVy d2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4K LSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL01h a2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0KLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2 YzgwL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCi1AQCAt MCwwICsxLDggQEAKLSsjIyBidWlsZC9tc3ZjODAgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCi0rCi0rRVhUUkFfRElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCi0rCi0r U1VCRElSUyA9IGRsbCBsaWIKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3Zj ODAvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5p bgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWls ZC9tc3ZjODAvTWFrZWZpbGUuaW4JMjAxMS0wNy0wMyAxODo0NDoyNy4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsNjIwIEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2Ug MS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29w eXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAx LCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotKyMgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBl eHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQ VVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9 ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBB Q0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmV4ZWNkaXIg PSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJ T04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3Rh bGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMK LStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9 ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkK LStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6 Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNU QUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RA Ci0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxl LmluIFwKLSsJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBidWlsZC9t c3ZjODAKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9j YWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9v cmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00 ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9f YWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FM X000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9 ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStD T05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0r UkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVj dXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJl Y3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZl IFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJ aW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJz aXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRm LXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZl CVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStB TV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwK LSsJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdz IENUQUdTIFwKLSsJZGlzdGRpcgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElT VF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElT VF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0aXZpemUgPSBc Ci0rICBkaXIwPWBwd2RgOyBcCi0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7 IFwKLSsgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0ncyxeLiovXChb Xi9dKlwpJCQsXDEsJzsgXAotKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCi0rICB3 aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwg c2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsg dGhlbiBcCi0rICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKLSsgICAgICAg IGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAot KyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBc Ci0rICAgICAgZWxzZSBcCi0rICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUg IiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0 IjsgdGhlbiBcCi0rICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2Vk X3Jlc3QiYDsgXAotKyAgICAgICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7 IFwKLSsgICAgICAgIGZpOyBcCi0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAot KyAgICAgIGZpOyBcCi0rICAgIGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQg LWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRpcjIiCi0rQUNM T0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05G ID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBB VVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0FTSU9fTElCID0gQEJPT1NUX0FTSU9fTElC QAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9 IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJ TEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJ QkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9N UElfTElCQAotK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAot K0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAK LStCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElC ID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9T RVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJ QkAKLStCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFE X0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElC ID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9P U1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTEla QVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdT ID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVO SVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRf Q09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9O ID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0r Q1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BB VEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0r RExMVE9PTCA9IEBETExUT09MQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0RVTVBCSU4gPSBA RFVNUEJJTkAKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19U ID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0ZHUkVQ ID0gQEZHUkVQQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9W RVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9E QVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFN QAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJP R1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTEQgPSBATERACi0rTERGTEFHUyA9IEBM REZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9 IEBMSUJUT09MQAotK0xJUE8gPSBATElQT0AKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0g QExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNQU5JRkVTVF9UT09MID0gQE1B TklGRVNUX1RPT0xACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNR TF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBN WVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0g QE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1Q ID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVf RElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVf T0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9 IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9P TDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdF X0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RS SU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5B TUVACi0rUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBB Q0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJM ID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9 IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJT QAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNR TF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1NF RCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09D SV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVB REVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVT UUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NU UklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJ T04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNk aXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJA Ci0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQVIgPSBAYWNfY3Rf QVJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSth Y19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1 ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBA YW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFy QAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBA YnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWls ZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxk ZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAK LStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0g QGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AK LStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0g QGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1 QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLSto dG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIg PSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0 ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0r bG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJA Ci0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRp ciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZp eEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0r cHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tA Ci0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAK LStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlh c0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGly ID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxB R1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCi0rRVhUUkFfRElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3Bz Ci0rU1VCRElSUyA9IGRsbCBsaWIKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6 Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBp biAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAg KiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7 IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0r CSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVU T01BS0UpIC0tZ251IGJ1aWxkL21zdmM4MC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9w X3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL21zdmM4MC9NYWtlZmls ZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmlu ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpj b25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAk KGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChT SEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7 OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3Ny Y2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQo dG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNM T0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxfbTRf ZGVwcyk6Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVh bi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdz IHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGlu dG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmls ZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQg b2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBg Y29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwg Y2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2Un KTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFr ZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNv bT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAk JGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2Zh aWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJ dGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJn ZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwK LSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7 IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7 IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlp ZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwi Ci0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0 IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBc Ci0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMn OzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIk QCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJ U1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7 IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYi OyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1g ZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsg ZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0r CSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAm JiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwg KCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAot Kwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkg JCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsK LStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAot Kwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNp dmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRB R1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChF VEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwK LSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9Ljsg XAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9m aXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAg ICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNs dWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBc Ci0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9u ZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0r CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlx dWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRl bXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAg ICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxB R1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBc Ci0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZl ICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUi IFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFH U19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2Qp ICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGly KSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVh bi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwot KwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGly KSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBl Y2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJ bGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlz dDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlw L3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGly KS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1Ap IGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3Rk aXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwK LSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUg fHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkg IGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUi IHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGly KS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBl IGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAot KwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGly KTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQk ZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBl IGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAot KwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAot KwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8 IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7 IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAk KE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJ ICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBc Ci0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkg ICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0r CSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1f X3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAg IGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3Rk aXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJ ICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNr PTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRz dWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAg dG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRu ZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVu Z3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRp cikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06 IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlCi0raW5z dGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotK2luc3Rh bGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJz aXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1 bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFs bGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtF KSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIg SU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJ ICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0 YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3Rj bGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAt ZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f VlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhp cyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJp dCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxk LiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5U QUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFu OiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTog Y2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1y ZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStodG1s LWFtOgotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxs LWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGlu c3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2lu c3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStp bnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwot K2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xl YW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50 YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsK LSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06 IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJl Y3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0r Ci0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAk KFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWFtIGluc3Rh bGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RB UkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBj aGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwljdGFn cyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNs ZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlo dG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJ aW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBc Ci0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwt aW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxs LXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3Rh bGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBt YWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFu IG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0g cHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0rCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0K LSsKLStAU0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBt YWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBs aW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5hbSBzb2NpLTMu MC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNr L2J1aWxkL3VuaXgvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5hbQkyMDA5LTA0 LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxMSBAQAotKyMjIGJ1aWxk L3VuaXggc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24KLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rI0VYVFJBX0RJ U1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlz cWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUu dGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1wYXJhbWV0ZXJzLnRjbAotKwotK0VYVFJBX0RJU1Qg PSBidWlsZC1jb3JlLnRjbCBidWlsZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBc Ci0rCXBhcnNlLXBhcmFtZXRlcnMudGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBc Ci0rCWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4ZWN1dGUudGNsIFwKLSsJJChFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQv dW5peC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5p bgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUuaW4JMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQv dW5peC9NYWtlZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAotQEAg LTAsMCArMSw0MjMgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEx LjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmln aHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIw MDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRl ZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQu Ci0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVu dCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBP U0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChk YXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FH RUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQo bGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisu fSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9z aCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2lu c3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJ TlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05P Uk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStO T1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwg PSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStE SVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4g XAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1aWxkL3VuaXgK LStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRf ZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVf b2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s aWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9w X3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2Nh bF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQot K21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9w X2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdf Q0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rRElTVEZJ TEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFf RElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJA Ci0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FV VE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQVNJT19MSUIgPSBAQk9P U1RfQVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRF X1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIg PSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9J T1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElC ID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZ VEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09Q VElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09T VF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElC ID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NU X1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStC T09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZS QU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVS U0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09T VF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9E RUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxB R1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcg PSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBV TklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0g QENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxB R1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0g QERFUERJUkAKLStETExUT09MID0gQERMTFRPT0xACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0r RFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9f TkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVF WFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAK LStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNU QUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFM TF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStM REZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AK LStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStM VExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01BTklGRVNU X1RPT0wgPSBATUFOSUZFU1RfVE9PTEAKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZM QUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKLStNWVNR TF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAotK01ZU1FM X1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElU QAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJT ID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdT QAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09D SV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9P TDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JU ID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0r UEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBB Q0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKLStQQUNLQUdFX1ZF UlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJB VE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVT UUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NU R1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AK LStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBS QU5MSUJACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBT SEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09D SV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19C VVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1B TkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJA Ci0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3Rv cF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9B UiA9IEBhY19jdF9BUkAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNf Y3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9 IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2Ft X19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9 IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWls ZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxk X29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRk aXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRh dGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2Rv eHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0g QGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29r QAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUg PSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3Rf dmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJA Ci0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRl eF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGli ZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9j YWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStv bGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVm aXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29r ID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIg PSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBA dGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0 b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAK LStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK01BSU5U QUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLSsjRVhUUkFfRElTVF9GT1JfU09DSV9D T01QQVRJQklMSVRZID0gIC5fZmluZC1ib29zdC50Y2wgLl9idWlsZC1teXNxbC50Y2wgLl9idWls ZC1wb3N0Z3Jlc3FsLnRjbCAuX2V4ZWN1dGUudGNsIC5fYnVpbGQtY29yZS50Y2wgLl9pbnN0YWxs LnRjbCAuX3BhcnNlLXBhcmFtZXRlcnMudGNsCi0rRVhUUkFfRElTVCA9IGJ1aWxkLWNvcmUudGNs IGJ1aWxkLW9yYWNsZS50Y2wgYnVpbGQudGNsIGluc3RhbGwudGNsIFwKLSsJcGFyc2UtcGFyYW1l dGVycy50Y2wgZmluZC1ib29zdC50Y2wgYnVpbGQtbXlzcWwudGNsIFwKLSsJYnVpbGQtcG9zdGdy ZXNxbC50Y2wgZXhlY3V0ZS50Y2wgXAotKwkkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJ TElUWSkKLSsKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZp bGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2Fz ZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAg ICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2Ug YnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7 IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQv dW5peC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQo QVVUT01BS0UpIC0tZ251IGJ1aWxkL3VuaXgvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxl Ci0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hF TEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsg XAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk KHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJ R19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTog ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2Nh bF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotKwotK21vc3RseWNsZWFu LWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAu bGlicyBfbGlicwotK3RhZ3M6IFRBR1MKLStUQUdTOgotKwotK2N0YWdzOiBDVEFHUwotK0NUQUdT OgotKwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQo c3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0 cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7 IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGlu ICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2Rp cnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1 aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1L RElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8Xnwk KGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVz YWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAk JGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsg XAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8k JGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChk aXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUi IC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBm aTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQo c3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0 ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUi IC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBm aTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQg MTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJ ICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBl eGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBj aGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBpbnN0 YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGlu c3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTog YWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFs bC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0 cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFM TF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NU UklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNU UklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQo U1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVy aWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9G SUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3Jj ZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAk KENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6 Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVz ZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRv b2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8 IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xl YW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rp c3RjbGVhbjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTog Y2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToK LSsKLStodG1sOiBodG1sLWFtCi0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0r aW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwt ZHZpLWFtCi0rCi0raW5zdGFsbC1kdmktYW06Ci0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2lu c3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2lu c3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2lu c3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwt cGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0YWxsLXBzLWFt OgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVy LWNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3Rj bGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5 Y2xlYW4tYW0KLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHlj bGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLWFt Ci0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiBpbnN0YWxsLWFtIGlu c3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4g Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5l cmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKLSsJZHZpLWFtIGh0bWwgaHRtbC1h bSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1kYXRhIGluc3Rh bGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCi0rCWluc3RhbGwtZXhlYyBp bnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCi0rCWluc3RhbGwt aW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAotKwlpbnN0YWxs LXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCi0rCWluc3Rh bGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBcCi0r CW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmlj IFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHVuaW5zdGFsbCB1 bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMu NjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lz ZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsu Tk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X2Jvb3N0Lm00 IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfYm9vc3QubTQKLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9jb25maWcvYXhfYm9vc3QubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X2Jvb3N0Lm00CTIwMTEtMDctMDMg MTg6Mzg6NDQuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDc3NCBAQAotK2RubCBAc3lub3Bz aXMgQVhfQk9PU1QoW01JTklNVU0tVkVSU0lPTl0sIFtBQ1RJT04tSUYtRk9VTkRdLCBbQUNUSU9O LUlGLU5PVC1GT1VORF0pCi0rZG5sCi0rZG5sIFRlc3QgZm9yIHRoZSBCb29zdCBDKysgbGlicmFy aWVzIG9mIGEgcGFydGljdWxhciB2ZXJzaW9uIChvciBuZXdlcikKLStkbmwKLStkbmwgSWYgbm8g cGF0aCB0byB0aGUgaW5zdGFsbGVkIGJvb3N0IGxpYnJhcnkgaXMgZ2l2ZW4gdGhlIG1hY3JvCi0r ZG5sIHNlYXJjaHMgdW5kZXIgL3VzciwgL3Vzci9sb2NhbCwgYW5kIC9vcHQsIGFuZCBldmFsdWF0 ZXMgdGhlCi0rZG5sICRCT09TVF9ST09UIGVudmlyb25tZW50IHZhcmlhYmxlLgotK2RubAotK2Ru bCBUaGlzIG1hY3JvIGNhbGxzOgotK2RubAotK2RubCAgIEFDX1NVQlNUKEJPT1NUX0NGTEFHUykg LyBBQ19TVUJTVChCT09TVF9MSUJTKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX0ZJTEVTWVNURU1f TElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX1NZU1RFTV9MSUIpCi0rZG5sICAgQUNfU1VCU1Qo Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9USFJFQURf TElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX0lPU1RSRUFNU19MSUIpCi0rZG5sICAgQUNfU1VC U1QoQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfV1NFUklB TElaQVRJT05fTElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX1NJR05BTFNfTElCKQotK2RubCAg IEFDX1NVQlNUKEJPT1NUX0RBVEVfVElNRV9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfUkVH RVhfTElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX1BZVEhPTl9MSUIpCi0rZG5sICAgQUNfU1VC U1QoQk9PU1RfQVNJT19MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfTVBJX0xJQikKLStkbmwg ICBBQ19TVUJTVChCT09TVF9NUElfUFlUSE9OX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9V TklUX1RFU1RfRlJBTUVXT1JLX0xJQikKLStkbmwKLStkbmwgQW5kIHNldHM6Ci0rZG5sCi0rZG5s ICAgSEFWRV9CT09TVAotK2RubCAgIEhBVkVfQk9PU1RfRklMRVNZU1RFTQotK2RubCAgIEhBVkVf Qk9PU1RfU1lTVEVNCi0rZG5sICAgSEFWRV9CT09TVF9QUk9HUkFNX09QVElPTlMKLStkbmwgICBI QVZFX0JPT1NUX1RIUkVBRAotK2RubCAgIEhBVkVfQk9PU1RfSU9TVFJFQU1TCi0rZG5sICAgSEFW RV9CT09TVF9TRVJJQUxJWkFUSU9OCi0rZG5sICAgSEFWRV9CT09TVF9TSUdOQUxTCi0rZG5sICAg SEFWRV9CT09TVF9EQVRFX1RJTUUKLStkbmwgICBIQVZFX0JPT1NUX1JFR0VYCi0rZG5sICAgSEFW RV9CT09TVF9QWVRIT04KLStkbmwgICBIQVZFX0JPT1NUX0FTSU8KLStkbmwgICBIQVZFX0JPT1NU X01QSQotK2RubCAgIEhBVkVfQk9PU1RfTVBJX1BZVEhPTgotK2RubCAgIEhBVkVfQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SSwotK2RubAotK2RubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFja2FnZXMK LStkbmwgQGF1dGhvciBUaG9tYXMgUG9yc2NoYmVyZyA8dGhvbWFzQHJhbmRzcHJpbmdlci5kZT4K LStkbmwgQHZlcnNpb24gMjAwNi0wMS0wMgotK2RubCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCi0r Ci0rQUNfREVGVU4oW0FYX0JPT1NUXSwKLStbCi0rICAgIEFDX0FSR19XSVRIKFtib29zdF0sCi0r ICAgICAgICAgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtYm9vc3Q9RElSXSwKLSsgICAg ICAgICAgICAgICAgW3VzZSBib29zdCAoZGVmYXVsdCBpcyBOTykgLCBzcGVjaWZ5IHRoZSByb290 IGRpcmVjdG9yeSBmb3IgYm9vc3QgbGlicmFyeSAob3B0aW9uYWwpXSksCi0rICAgICAgICAgICAg ICAgIFsKLSsgICAgICAgICAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gIm5vIjsgdGhlbgot KwkJICAgICAgICAgICAgd2FudF9ib29zdD0ibm8iCi0rICAgICAgICAgICAgICAgIGVsaWYgdGVz dCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICAgICAgICAgIHdhbnRfYm9v c3Q9InllcyIKLSsgICAgICAgICAgICAgICAgICAgIGFjX2Jvb3N0X3BhdGg9IiIKLSsgICAgICAg ICAgICAgICAgZWxzZQotKwkJCSAgICAgICAgd2FudF9ib29zdD0ieWVzIgotKyAgICAgICAgICAg IAkJYWNfYm9vc3RfcGF0aD0iJHdpdGh2YWwiCi0rCQkgICAgICAgIGZpCi0rICAgICAgICAgICAg CV0sCi0rICAgICAgICAgICAgICAgIFt3YW50X2Jvb3N0PSJ5ZXMiXSkKLSsKLSsjICAgIEFDX0NB Tk9OSUNBTF9CVUlMRAotK0JPT1NUX01EV19WRVJTSU9OPSIxLTMzLTEiCi0rQk9PU1RMSUJfTURX X1ZFUlNJT049IjFfMzNfMSIKLStCT09TVF92ZXJzaW9uX2hlYWRlcj0iYm9vc3QvdmVyc2lvbi5o cHAiCi0rCi0rCWlmIHRlc3QgIngkd2FudF9ib29zdCIgPSAieHllcyI7IHRoZW4KLSsJCWJvb3N0 X2xpYl92ZXJzaW9uX3JlcT1pZmVsc2UoWyQxXSwgLDEuMjAuMCwkMSkKLSsJCWJvb3N0X2xpYl92 ZXJzaW9uX3JlcV9zaG9ydGVuPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChbWzAt OV1dKlwuW1swLTldXSpcKSdgCi0rCQlib29zdF9saWJfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIg JGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0qXCknYAotKwkJYm9vc3RfbGliX3Zl cnNpb25fcmVxX21pbm9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpc LlwoW1swLTldXSpcKSdgCi0rCQlib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yPWBleHBy ICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLltbMC05XV0qXC5cKFtbMC05XV0q XCknYAotKwkJaWYgdGVzdCAieCRib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yIiA9ICJ4 IiA7IHRoZW4KLSsJCQlib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yPSIwIgotKyAgICAJ ZmkKLSsJCVdBTlRfQk9PU1RfVkVSU0lPTj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX21h am9yIFwqIDEwMDAwMCBcKyAgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAgXCsg JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3JgCi0rCQlBQ19NU0dfQ0hFQ0tJTkcoZm9y IGJvb3N0bGliID49ICRib29zdF9saWJfdmVyc2lvbl9yZXEpCi0rCQlzdWNjZWVkZWQ9bm8KLSsK LSsJCWRubCBmaXJzdCB3ZSBjaGVjayB0aGUgc3lzdGVtIGxvY2F0aW9uIGZvciBib29zdCBsaWJy YXJpZXMKLSsJCWRubCB0aGlzIGxvY2F0aW9uIGlzIGNob3NlbiBpZiBib29zdCBsaWJyYXJpZXMg YXJlIGluc3RhbGxlZCAKLSsJCWRubCB3aXRoIHRoZSAtLWxheW91dD1zeXN0ZW0gb3B0aW9uCi0r CQlkbmwgb3IgaWYgeW91IGluc3RhbGwgYm9vc3Qgd2l0aCBSUE0KLSsJCWlmIHRlc3QgLWQgL2xp YjY0Ci0rCQl0aGVuCi0rCQkJQk9PU1RfTElCRElSVFlQRT0ibGliNjQiCi0rCQllbHNlCi0rCQkJ Qk9PU1RfTElCRElSVFlQRT0ibGliIgotKwkJZmkKLSsJCWlmIHRlc3QgIiRhY19ib29zdF9wYXRo IiAhPSAiIgotKwkJdGhlbgotKwkJCWlmIHRlc3QgIiRCT09TVF9MSUJESVJUWVBFIiA9PSAibGli NjQiCi0rCQkJdGhlbgotKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElC RElSVFlQRSIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCi0r CQkJCXRoZW4KLSsJICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgv JEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCWVsc2UKLSsgICAgICAgICAgICAgICAgICAgIEJPT1NU X0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgotKwkJCQlmaQotKwkJCWVsc2UKLSsJCQkJQk9P U1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC9saWIiCi0rCQkJZmkKLSsJCQlCT09TVF9DRkxBR1M9 Ii1JJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZSIKLSsJCQlCT09TVF9WRVJTSU9OPWBncmVwICJkZWZp bmUgQk9PU1RfTElCX1ZFUlNJT04iICRhY19ib29zdF9wYXRoL2luY2x1ZGUvJHtCT09TVF92ZXJz aW9uX2hlYWRlcn0gfCBjdXQgLWQnICcgLWYzIHwgY3V0IC1kXCIgLWYyYAotKwkJZWxzZQotKwkJ CWZvciBhY19ib29zdF9wYXRoX3RtcCBpbiAvdXNyIC91c3IvbG9jYWwgL29wdCAvbmFzdG9vbHMv Ym9vc3QKLSsJCQlkbwotKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVk ZS9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QiCi0r CQkJCXRoZW4KLSsJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9M SUJESVJUWVBFIgotKwkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNs dWRlIgotKwkJCQkJQk9PU1RfVkVSU0lPTj1gZ3JlcCAiZGVmaW5lIEJPT1NUX0xJQl9WRVJTSU9O IiAkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS8ke0JPT1NUX3ZlcnNpb25faGVhZGVyfSB8IGN1 dCAtZCcgJyAtZjMgfCBjdXQgLWRcIiAtZjJgCi0rCQkJCQlicmVhazsKLSsJCQkJZmkKLSsJCQkJ aWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19W RVJTSU9OL2Jvb3N0IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29z dC0kQk9PU1RfTURXX1ZFUlNJT04vYm9vc3QiCi0rCQkJCXRoZW4KLSsJCQkJCUJPT1NUX0xJQlM9 Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQkJQk9PU1RfQ0ZM QUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lP TiIKLSsJCQkJCUJPT1NUX1ZFUlNJT049YGdyZXAgImRlZmluZSBCT09TVF9MSUJfVkVSU0lPTiIg JGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OLyR7Qk9P U1RfdmVyc2lvbl9oZWFkZXJ9IHwgY3V0IC1kJyAnIC1mMyB8IGN1dCAtZFwiIC1mMmAKLSsJCQkK LSsJCQkJCWRubCBIYWNrIGZvciB3cm9uZ2x5IGluc3RhbGxlZCBCb29zdCBsaWJyYXJpZXMgKEFN RDY0IGxpYnJhcmllcyBpbnN0YWxsZWQgaW4gYm9vc3QvbGliIGRpcmVjdG9yeSkKLSsJCQkJCWlm IHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiIFwKLSsJCQkJCSYmIHRlc3QgLXIgIiRh Y19ib29zdF9wYXRoX3RtcC9saWIiIFwKLSsJCQkJCSYmIHRlc3QgISAtZCAiJGFjX2Jvb3N0X3Bh dGhfdG1wL2xpYjY0IgotKwkJCQkJdGhlbgotKwkJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0 X3BhdGhfdG1wL2xpYiIKLSsJCQkJCQllY2hvICJIYWNrOiAkQk9PU1RfTElCUyIKLSsJCQkJCWZp Ci0rCQkJCQlicmVhazsKLSsJCQkJZmkKLSsJCQlkb25lCi0rCQlmaQotKwotKwkJQ1BQRkxBR1Nf U0FWRUQ9IiRDUFBGTEFHUyIKLSsJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIK LSsJCWV4cG9ydCBDUFBGTEFHUwotKwotKwkJTERGTEFHU19TQVZFRD0iJExERkxBR1MiCi0rCQlM REZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKLSsJCWV4cG9ydCBMREZMQUdTCi0rCi0rICAg ICAJQUNfVFJZX0NPTVBJTEUoCi0rICAgICAgIAlbCi0rQCU6QGluY2x1ZGUgPGJvb3N0L3ZlcnNp b24uaHBwPgotK10sCi0rICAgICAgIFsKLSsjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09T VF9WRVJTSU9OCi0rLy8gRXZlcnl0aGluZyBpcyBva2F5Ci0rI2Vsc2UKLSsjICBlcnJvciBCb29z dCB2ZXJzaW9uIGlzIHRvbyBvbGQKLSsjZW5kaWYKLSsKLSsJCV0sCi0rICAgIAlbCi0rICAgICAg ICAgQUNfTVNHX1JFU1VMVCh5ZXMpCi0rCQkgc3VjY2VlZGVkPXllcwotKwkJIGZvdW5kX3N5c3Rl bT15ZXMKLSsgICAgICAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKQotKyAgICAgICBdLAotKyAg ICAgICBbCi0rICAgICAgIF0pCi0rCi0rCQlkbmwgaWYgd2UgZm91bmQgbm8gYm9vc3Qgd2l0aCBz eXN0ZW0gbGF5b3V0IHdlIHNlYXJjaCBmb3IgYm9vc3QgbGlicmFyaWVzCi0rCQlkbmwgYnVpbHQg YW5kIGluc3RhbGxlZCB3aXRob3V0IHRoZSAtLWxheW91dD1zeXN0ZW0gb3B0aW9uIG9yIGZvciBh IHN0YWdlZChub3QgaW5zdGFsbGVkKSB2ZXJzaW9uCi0rCQlpZiB0ZXN0ICJ4JHN1Y2NlZWRlZCIg IT0gInh5ZXMiOyB0aGVuCi0rCQkJX3ZlcnNpb249MAotKwkJCWlmIHRlc3QgIiRhY19ib29zdF9w YXRoIiAhPSAiIjsgdGhlbgotKyAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29z dF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0 aCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgiOyB0aGVuCi0rCQkJCQlmb3IgaSBpbiBgbHMg LWQgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KLSsJCQkJ CQlfdmVyc2lvbl90bXA9YGVjaG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBzZWQg J3MvXC9pbmNsdWRlXC9ib29zdC0vLycgfCBzZWQgJ3MvXy8uLydgCi0rCQkJCQkJVl9DSEVDSz1g ZXhwciAkX3ZlcnNpb25fdG1wIFw+ICRfdmVyc2lvbmAKLSsJCQkJCQlpZiB0ZXN0ICIkVl9DSEVD SyIgPSAiMSIgOyB0aGVuCi0rCQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKLSsJCQkJCQlm aQotKwkJCQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4v Xy8nYAotKwkJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0 LSRWRVJTSU9OX1VOREVSU0NPUkUiCi0rCQkJCQlkb25lCi0rCQkJCWZpCi0rCQkJZWxzZQotKwkJ CQlmb3IgYWNfYm9vc3RfcGF0aCBpbiAvdXNyIC91c3IvbG9jYWwgL29wdCA7IGRvCi0rCQkJCQlp ZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgiOyB0 aGVuCi0rCQkJCQkJZm9yIGkgaW4gYGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3Qt KiAyPi9kZXYvbnVsbGA7IGRvCi0rCQkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAi cyMkYWNfYm9vc3RfcGF0aCMjIiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAn cy9fLy4vJ2AKLSsJCQkJCQkJVl9DSEVDSz1gZXhwciAkX3ZlcnNpb25fdG1wIFw+ICRfdmVyc2lv bmAKLSsJCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgotKwkJCQkJCQkJX3Zl cnNpb249JF92ZXJzaW9uX3RtcAotKwkJCQkJCQkJYmVzdF9wYXRoPSRhY19ib29zdF9wYXRoCi0r CQkJCQkJCWZpCi0rCQkJCQkJZG9uZQotKwkJCQkJZmkKLSsJCQkJZG9uZQotKwotKwkJCQlWRVJT SU9OX1VOREVSU0NPUkU9YGVjaG8gJF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKLSsJCQkJQk9P U1RfQ0ZMQUdTPSItSSRiZXN0X3BhdGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlNDT1JF IgotKwkJCQlCT09TVF9MSUJTPSItTCRiZXN0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCi0r CSAgICAJCWlmIHRlc3QgIngkQk9PU1RfUk9PVCIgIT0gIngiOyB0aGVuCi0rCQkJCQlpZiB0ZXN0 IC1kICIkQk9PU1RfUk9PVCIgJiYgdGVzdCAtciAiJEJPT1NUX1JPT1QiOyB0aGVuCi0rCQkJCQkJ dmVyc2lvbl9kaXI9YGV4cHIgLy8kQk9PU1RfUk9PVCA6ICcuKi9cKC4qXCknYAotKwkJCQkJCXN0 YWdlX3ZlcnNpb249YGVjaG8gJHZlcnNpb25fZGlyIHwgc2VkICdzL2Jvb3N0Xy8vJyB8IHNlZCAn cy9fLy4vZydgCi0rCQkJCQkJc3RhZ2VfdmVyc2lvbl9zaG9ydGVuPWBleHByICRzdGFnZV92ZXJz aW9uIDogJ1woW1swLTldXSpcLltbMC05XV0qXCknYAotKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJHN0 YWdlX3ZlcnNpb25fc2hvcnRlbiBcPlw9ICRfdmVyc2lvbmAKLSsJCQkJCQlpZiB0ZXN0ICIkVl9D SEVDSyIgPSAiMSIgOyB0aGVuCi0rCQkJCQkJCUFDX01TR19OT1RJQ0UoV2Ugd2lsbCB1c2UgYSBz dGFnZWQgYm9vc3QgbGlicmFyeSBmcm9tICRCT09TVF9ST09UKQotKwkJCQkJCQlCT09TVF9DRkxB R1M9Ii1JJEJPT1NUX1JPT1QiCi0rCQkJCQkJCUJPT1NUX0xJQlM9Ii1MJEJPT1NUX1JPT1Qvc3Rh Z2UvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCQkJZmkKLSsJCQkJCWZpCi0rCSAgICAJCWZpCi0r CQkJZmkKLSsKLSsJCQlDUFBGTEFHUz0iJENQUEZMQUdTICRCT09TVF9DRkxBR1MiCi0rCQkJZXhw b3J0IENQUEZMQUdTCi0rCQkJTERGTEFHUz0iJExERkxBR1MgJEJPT1NUX0xJQlMiCi0rCQkJZXhw b3J0IExERkxBR1MKLSsKLSsgICAgIAkJQUNfVFJZX0NPTVBJTEUoCi0rICAgICAgIAkJWwotK0Al OkBpbmNsdWRlIDxib29zdC92ZXJzaW9uLmhwcD4KLStdLAotKyAgICAgICBbCi0rI2lmIEJPT1NU X1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgotKy8vIEV2ZXJ5dGhpbmcgaXMgb2theQot KyNlbHNlCi0rIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0b28gb2xkCi0rI2VuZGlmCi0rCi0r CQldLAotKyAgICAJWwotKyAgICAgICAgIEFDX01TR19SRVNVTFQoeWVzICgkX3ZlcnNpb24pKQot KwkJIHN1Y2NlZWRlZD15ZXMKLSsgICAgICAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKQotKyAg ICAgICBdLAotKyAgICAgICBbCi0rICAgICAgICAgQUNfTVNHX1JFU1VMVChubyAoJF92ZXJzaW9u KSkKLSsgICAgICAgICBpZmVsc2UoWyQzXSwgLCA6LCBbJDNdKQotKyAgICAgICBdKQotKwkJZmkK LSsKLSsJCWlmIHRlc3QgIiRzdWNjZWVkZWQiICE9ICJ5ZXMiIDsgdGhlbgotKwkJCWlmIHRlc3Qg IiRfdmVyc2lvbiIgPSAiMCIgOyB0aGVuCi0rCQkJCUFDX01TR19FUlJPUihbW1dlIGNvdWxkIG5v dCBkZXRlY3QgdGhlIGJvb3N0IGxpYnJhcmllcyAodmVyc2lvbiAkYm9vc3RfbGliX3ZlcnNpb25f cmVxX3Nob3J0ZW4gb3IgaGlnaGVyKS4gSWYgeW91IGhhdmUgYSBzdGFnZWQgYm9vc3QgbGlicmFy eSAoc3RpbGwgbm90IGluc3RhbGxlZCkgcGxlYXNlIHNwZWNpZnkgXCRCT09TVF9ST09UIGluIHlv dXIgZW52aXJvbm1lbnQgYW5kIGRvIG5vdCBnaXZlIGEgUEFUSCB0byAtLXdpdGgtYm9vc3Qgb3B0 aW9uLiAgSWYgeW91IGFyZSBzdXJlIHlvdSBoYXZlIGJvb3N0IGluc3RhbGxlZCwgdGhlbiBjaGVj ayB5b3VyIHZlcnNpb24gbnVtYmVyIGxvb2tpbmcgaW4gPGJvb3N0L3ZlcnNpb24uaHBwPi5dXSkK LSsJCQllbHNlCi0rCQkJCUFDX01TR19FUlJPUignWW91ciBib29zdCBsaWJyYXJpZXMgc2VlbXMg dG8gb2xkICh2ZXJzaW9uICRfdmVyc2lvbikuICBXZSBuZWVkIGF0IGxlYXN0ICRib29zdF9saWJf dmVyc2lvbl9zaG9ydGVuJykKLSsJCQlmaQotKwkJZWxzZQotKwkJCUFDX1NVQlNUKEJPT1NUX0NG TEFHUykKLSsJCQlBQ19TVUJTVChCT09TVF9MSUJTKQotKwkJCUFDX0RFRklORShIQVZFX0JPT1NU LCxbZGVmaW5lIGlmIHRoZSBCb29zdCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCi0rIwotKyMg Qm9vc3Q6OkZpbGVzeXN0ZW0KLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEJv b3N0OjpGaWxlc3lzdGVtIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSwKLSsJCQkJCQkgICBheF9jdl9i b29zdF9maWxlc3lzdGVtLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExV U1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNs dWRlIDxib29zdC9maWxlc3lzdGVtL3BhdGguaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgW1t1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OmZpbGVzeXN0ZW07Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoIG15X3BhdGgoICJmb28vYmFyL2Rh dGEudHh0IiApOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7 XV0pXSwKLSsgICAgICAgICAgICAJCQkJICAgICAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09eWVz LCBheF9jdl9ib29zdF9maWxlc3lzdGVtPW5vKQotKwkJIAkJICAgICAgICAJCQlBQ19MQU5HX1JF U1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5 ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX0ZJTEVTWVNURU0sLFtkZWZpbmUg aWYgdGhlIEJvb3N0OjpGSUxFU1lTVEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49 Ym9vc3RfZmlsZXN5c3RlbQotKwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4g JEJOLSRDQy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJO LW10IGxpYiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1t dC1zIGxpYiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1z ICRCTi1tZ3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRv Ci0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbQk9PU1RfRklMRVNZU1RFTV9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VC U1QoQk9PU1RfRklMRVNZU1RFTV9MSUIpIGxpbmtfZmlsZXN5c3RlbT0ieWVzIiBicmVha10sCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfZmlsZXN5c3RlbT0ibm8iXSkK LSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua19maWxlc3lzdGVtIiA9ICJ4bm8iOyB0 aGVuCi0rCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAh KQotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMgQm9vc3Q6OlN5c3RlbQotKyMKLSsgICAgICAg ICAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUgQm9vc3Q6OlN5c3RlbSBsaWJyYXJ5IGlz IGF2YWlsYWJsZV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3Rfc3lz dGVtLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBQ19MQU5HX1NBVkUKLSsgICAgICAg ICAgICBBQ19MQU5HX0NQTFVTUExVUwotKyAgICAgICAgICAgIEFDX0NPTVBJTEVfSUZFTFNFKFtB Q19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3Qvc3lzdGVtL2Vycm9yX2NvZGUuaHBw Pl1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBuYW1lc3Bh Y2UgYm9vc3Q6OnN5c3RlbTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy cm9yX2NvZGUgbXlFcnJvckNvZGUoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAwO11dKV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh eF9jdl9ib29zdF9zeXN0ZW09eWVzLCBheF9jdl9ib29zdF9zeXN0ZW09bm8pCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQUNfTEFOR19SRVNUT1JFCi0rICAgICAgICAgICAg XSkKLSsgICAgICAgICAgICBpZiB0ZXN0ICIkYXhfY3ZfYm9vc3Rfc3lzdGVtIiA9ICJ5ZXMiOyB0 aGVuCi0rICAgICAgICAgICAgICAgICBBQ19ERUZJTkUoSEFWRV9CT09TVF9TWVNURU0sLFtkZWZp bmUgaWYgdGhlIEJvb3N0OjpTWVNURU0gbGlicmFyeSBpcyBhdmFpbGFibGVdKQotKyAgICAgICAg ICAgICAgICAgQk49Ym9vc3Rfc3lzdGVtCi0rICAgICAgICAgICAgICAgICBmb3IgYXhfbGliIGlu IFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRDQy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0Mt bXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxpYiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxp YiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10 ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09T VExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rICAgICAgICAgICAgICAgICAgICAgQUNfQ0hFQ0tfTElC KCRheF9saWIsIG1haW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JPT1NU X1NZU1RFTV9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfU1lTVEVNX0xJQikgbGlua19z eXN0ZW09InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFts aW5rX3N5c3RlbT0ibm8iXSkKLSsgICAgICAgICAgICAgICAgIGRvbmUKLSsgICAgICAgICAgICAg ICAgIGlmIHRlc3QgIngkbGlua19zeXN0ZW0iID0gInhubyI7IHRoZW4KLSsgICAgICAgICAgICAg ICAgICAgICBBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQot KyAgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICBmaQotKwotKyMKLSsjIEJvb3N0OjpQ cm9ncmFtX09wdGlvbnMKLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEJvb3N0 OjpQcm9ncmFtX09wdGlvbnMgbGlicmFyeSBpcyBhdmFpbGFibGVdLAotKwkJCQkJCSAgIGF4X2N2 X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucywKLSsJCQkJCQkgICBbQUNfTEFOR19TQVZFCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgQUNfTEFOR19DUExVU1BMVVMKLSsJICAgICAgICAgICAgICAg QUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9w cm9ncmFtX29wdGlvbnMuaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgW1tib29zdDo6cHJvZ3JhbV9vcHRpb25zOjpvcHRpb25zX2Rlc2NyaXB0aW9uIGdlbmVyaWMo IkdlbmVyaWMgb3B0aW9ucyIpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIDA7XV0pXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9w cm9ncmFtX29wdGlvbnM9eWVzLCBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9bm8pCi0rCQkJ ICAgICAgICAgICAgICAgQUNfTEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICIkYXhf Y3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zIiA9IHllczsgdGhlbgotKwkJCQlBQ19ERUZJTkUoSEFW RV9CT09TVF9QUk9HUkFNX09QVElPTlMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpQUk9HUkFNX09Q VElPTlMgbGlicmFyeSBpcyBhdmFpbGFibGVdKQotKwkJCQlCTj1ib29zdF9wcm9ncmFtX29wdGlv bnMKLSsJCQkJZm9yIGF4X2xpYiBpbiBcCi0rCQkJCQkkQk4tbXQgJEJOICRCTi0kQ0MtbXQgJEJO LSRDQyBcCi0rCQkJCQkkQk4tJENDLW10LXMgJEJOLSRDQy1zIGxpYiRCTi1tdCBsaWIkQk4gXAot KwkJCQkJbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQtcyBsaWIkQk4tJEND LXMgXAotKwkJCQkJJEJOLW1ndy1tdCAkQk4tbWd3ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAot KwkJCQkJJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgQUNf Q0hFQ0tfTElCKCRheF9saWIsIG1haW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgW0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQikgbGlua19wcm9ncmFtX29wdGlvbnM9InllcyIgYnJlYWtdLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3Byb2dyYW1fb3B0aW9ucz0i bm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua19wcm9ncmFtX29wdGlvbnM9 Im5vIiIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0OjpUaHJl YWRzCi0rIwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGli cmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9vc3RfdGhyZWFkLAotKwkJCQkJ CVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQ1hYRkxBR1NfU0FW RT0kQ1hYRkxBR1MKLSsKLSsJCQkgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsg dGhlbgotKyAgCQkJCSBDWFhGTEFHUz0iLXB0aHJlYWRzICRDWFhGTEFHUyIKLSsJCQkgZWxpZiB0 ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4bWluZzMyIiA7IHRoZW4KLSsJCQkJIENYWEZMQUdTPSItbXRo cmVhZHMgJENYWEZMQUdTIgotKwkJCSBlbHNlCi0rCQkJCUNYWEZMQUdTPSItcHRocmVhZCAkQ1hY RkxBR1MiCi0rCQkJIGZpCi0rCQkJIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0o W1tAJTpAaW5jbHVkZSA8Ym9vc3QvdGhyZWFkL3RocmVhZC5ocHA+XV0sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojp0aHJlYWRfZ3JvdXAgdGhyZHM7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtdXSldLAotKyAgICAgICAg ICAgICAgICAgICBheF9jdl9ib29zdF90aHJlYWQ9eWVzLCBheF9jdl9ib29zdF90aHJlYWQ9bm8p Ci0rCQkJIENYWEZMQUdTPSRDWFhGTEFHU19TQVZFCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJ CV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF90aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0r ICAgICAgICAgICAgICAgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgot KyAJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgotKwkJCSAgIGVs aWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCi0rIAkJCQkgIEJPT1NUX0NG TEFHUz0iLW10aHJlYWRzICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZWxzZQotKwkJCQkgIEJPT1NU X0NGTEFHUz0iLXB0aHJlYWQgJEJPT1NUX0NGTEFHUyIKLSsJCQkgICBmaQotKwotKwkJCQlBQ19T VUJTVChCT09TVF9DRkxBR1MpCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1RIUkVBRCwsW2Rl ZmluZSBpZiB0aGUgQm9vc3Q6OlRIUkVBRCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJO PWJvb3N0X3RocmVhZAotKwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJO LSRDQy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10 IGxpYiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1z IGxpYiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRC Ti1tZ3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0r CQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX1RIUkVBRF9MSUI9Ii1s JGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJl YWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8i XSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRo ZW4KLSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEp Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6SU9TdHJlYW1zCi0rIwotKwkJCUFD X0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFp bGFibGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9vc3RfaW9zdHJlYW1zLAotKwkJCQkJCVtBQ19MQU5H X1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoCi0r CQkJICAgW0FDX0xBTkdfUFJPR1JBTSgKLSsJICAgW1tAJTpAaW5jbHVkZSA8Ym9vc3QvaW9zdHJl YW1zL2ZpbHRlcmluZ19zdHJlYW0uaHBwPgotKwkgICBAJTpAaW5jbHVkZSA8Ym9vc3QvcmFuZ2Uv aXRlcmF0b3JfcmFuZ2UuaHBwPl1dLAotKwkgICBbW3N0ZDo6c3RyaW5nICBpbnB1dCA9ICJIZWxs byBXb3JsZCEiOwotKwkgICBuYW1lc3BhY2UgaW8gPSBib29zdDo6aW9zdHJlYW1zOwotKwkgICBp bzo6ZmlsdGVyaW5nX2lzdHJlYW0gaW4gKGJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0 KSk7Ci0rCSAgIHJldHVybiAwOwotKyAgICAgICAgICAgXV0pXSwKLSsgICAgICAgICAgICAgICAg ICAgYXhfY3ZfYm9vc3RfaW9zdHJlYW1zPXllcywgYXhfY3ZfYm9vc3RfaW9zdHJlYW1zPW5vKQot KwkJCSBBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rf aW9zdHJlYW1zIiA9ICJ4eWVzIjsgdGhlbgotKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9JT1NU UkVBTVMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFi bGVdKQotKwkJCQlCTj1ib29zdF9pb3N0cmVhbXMKLSsJCQkJZm9yIGF4X2xpYiBpbiBcCi0rCQkJ CQkkQk4tbXQgJEJOICRCTi0kQ0MtbXQgJEJOLSRDQyBcCi0rCQkJCQkkQk4tJENDLW10LXMgJEJO LSRDQy1zIGxpYiRCTi1tdCBsaWIkQk4gXAotKwkJCQkJbGliJEJOLSRDQy1tdCBsaWIkQk4tJEND IGxpYiRCTi0kQ0MtbXQtcyBsaWIkQk4tJENDLXMgXAotKwkJCQkJJEJOLW1ndy1tdCAkQk4tbWd3 ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAotKwkJCQkJJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURX X1ZFUlNJT04gOyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09T VF9JT1NUUkVBTVNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX0lPU1RSRUFNU19MSUIp IGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbbGlua190aHJlYWQ9Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxp bmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBs aW5rIGFnYWluc3QgJGF4X2xpYiAhKQotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMgQm9vc3Q6 OlNlcmlhbGl6YXRpb24KLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6 OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9v c3Rfc2VyaWFsaXphdGlvbiwKLSsJCQkJCQlbQUNfTEFOR19TQVZFCi0rCQkJIEFDX0xBTkdfQ1BM VVNQTFVTCi0rCQkJIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oCi0rCVtbQCU6 QGluY2x1ZGUgPGZzdHJlYW0+Ci0rCUAlOkBpbmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfb2Fy Y2hpdmUuaHBwPgotKyAgICAgICAgQCU6QGluY2x1ZGUgPGJvb3N0L2FyY2hpdmUvdGV4dF9pYXJj aGl2ZS5ocHA+Ci0rCV1dLAotKyAgICAgICAgW1tzdGQ6Om9mc3RyZWFtIG9mcygiZmlsZW5hbWUi KTsKLSsJYm9vc3Q6OmFyY2hpdmU6OnRleHRfb2FyY2hpdmUgb2Eob2ZzKTsKLSsJcmV0dXJuIDA7 Ci0rICAgICAgICBdXSldLAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9zZXJpYWxp emF0aW9uPXllcywgYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbj1ubykKLSsJCQkgQUNfTEFOR19S RVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24i ID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1NFUklBTElaQVRJT04s LFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxl XSkKLSsJCQkJQk49Ym9vc3Rfc2VyaWFsaXphdGlvbgotKwkJCQlmb3IgYXhfbGliIGluIFwKLSsJ CQkJCSRCTi1tdCAkQk4gJEJOLSRDQy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAk Qk4tJENDLXMgbGliJEJOLW10IGxpYiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0k Q0MgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1t Z3cgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9N RFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfU0VSSUFMSVpBVElPTl9MSUI9 Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIpIGxpbmtfdGhyZWFk PSJ5ZXMiIGJyZWFrXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua190 aHJlYWQ9Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJCQlCTj1ib29zdF93c2VyaWFsaXphdGlvbgot KwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRDQy1tdCAkQk4tJEND IFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxpYiRCTiBcCi0rCQkJ CQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBc Ci0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rCQkJ CQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVD S19MSUIoJGF4X2xpYiwgbWFpbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb Qk9PU1RfV1NFUklBTElaQVRJT05fTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1dTRVJJ QUxJWkFUSU9OX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJ CWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCUFDX01TR19OT1RJ Q0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsK LSsjCi0rIyBCb29zdDo6U2lnbmFscwotKyMKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRo ZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9i b29zdF9zaWduYWxzLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BM VVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRl IDxib29zdC9zaWduYWwuaHBwPgotKwkJCQkJCQkJCQkJCV1dLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW1tib29zdDo6c2lnbmFsPHZvaWQgKCk+IHNpZzsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBdXSldLAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29z dF9zaWduYWxzPXllcywgYXhfY3ZfYm9vc3Rfc2lnbmFscz1ubykKLSsJCQkgQUNfTEFOR19SRVNU T1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NpZ25hbHMiID0gInh5ZXMi OyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1NJR05BTFMsLFtkZWZpbmUgaWYgdGhl IEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3Rfc2ln bmFscwotKwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRDQy1tdCAk Qk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxpYiRCTiBc Ci0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0k Q0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBc Ci0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBB Q19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIi IEFDX1NVQlNUKEJPT1NUX1NJR05BTFNfTElCKSBsaW5rX3NpZ25hbHM9InllcyIgYnJlYWtdLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3NpZ25hbHM9Im5vIl0pCi0r ICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfc2lnbmFscyIgPSAieG5vIjsgdGhlbgot KwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJ CQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0OjpEYXRlX1RpbWUKLSsjCi0rCQkJQUNfQ0FD SEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9kYXRlX3RpbWUsCi0rCQkJCQkJW0FDX0xBTkdfU0FW RQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFO R19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVnb3JpYW4vZ3JlZ29y aWFuX3R5cGVzLmhwcD4KLSsJCQkJCQkJCQkJCQldXSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47IGRhdGUgZCgy MDAyLEphbiwxMCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biAwOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pXSwKLSsgICAgICAg ICAgICAgICAgICAgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lPXllcywgYXhfY3ZfYm9vc3RfZGF0ZV90 aW1lPW5vKQotKwkJCSBBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhf Y3ZfYm9vc3RfZGF0ZV90aW1lIiA9ICJ4eWVzIjsgdGhlbgotKwkJCQlBQ19ERUZJTkUoSEFWRV9C T09TVF9EQVRFX1RJTUUsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBp cyBhdmFpbGFibGVdKQotKwkJCQlCTj1ib29zdF9kYXRlX3RpbWUKLSsJCQkJZm9yIGF4X2xpYiBp biBcCi0rCQkJCQkkQk4tbXQgJEJOICRCTi0kQ0MtbXQgJEJOLSRDQyBcCi0rCQkJCQkkQk4tJEND LW10LXMgJEJOLSRDQy1zIGxpYiRCTi1tdCBsaWIkQk4gXAotKwkJCQkJbGliJEJOLSRDQy1tdCBs aWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQtcyBsaWIkQk4tJENDLXMgXAotKwkJCQkJJEJOLW1ndy1t dCAkQk4tbWd3ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAotKwkJCQkJJEJOLSRDQy1tdC0kQk9P U1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1h aW4sIFtCT09TVF9EQVRFX1RJTUVfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX0RBVEVf VElNRV9MSUIpIGxpbmtfZGF0ZV90aW1lPSJ5ZXMiIGJyZWFrXSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbbGlua19kYXRlX3RpbWU9Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJ CQlpZiB0ZXN0ICJ4JGxpbmtfZGF0ZV90aW1lIj0ibm8iID0gInhubyI7IHRoZW4KLSsJCQkJCUFD X01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0r CQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6UmVnZXgKLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hl dGhlciB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4 X2N2X2Jvb3N0X3JlZ2V4LAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExV U1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNs dWRlIDxib29zdC9yZWdleC5ocHA+Ci0rCQkJCQkJCQkJCQkJXV0sCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0OjpyZWdleCByKCk7IHJldHVybiAwO11dKV0sCi0r ICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3JlZ2V4PXllcywgYXhfY3ZfYm9vc3RfcmVn ZXg9bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9j dl9ib29zdF9yZWdleCIgPSAieHllcyI7IHRoZW4KLSsJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1Rf UkVHRVgsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0p Ci0rCQkJCUJOPWJvb3N0X3JlZ2V4Ci0rCQkJCWZvciBheF9saWIgaW4gXAotKwkJCQkJJEJOLW10 ICRCTiAkQk4tJENDLW10ICRCTi0kQ0MgXAotKwkJCQkJJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBs aWIkQk4tbXQgbGliJEJOIFwKLSsJCQkJCWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQyBsaWIkQk4t JENDLW10LXMgbGliJEJOLSRDQy1zIFwKLSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3 LW10LXMgJEJOLW1ndy1zIFwKLSsJCQkJCSRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9O IDsgZG8KLSsJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLCBbQk9PU1RfUkVHRVhf TElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1JFR0VYX0xJQikgbGlua190aHJlYWQ9Inll cyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVh ZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhu byI7IHRoZW4KLSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhf bGliICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6QVNJTzogaXQgbmVlZHMg Qm9vc3QuU3lzdGVtLCBCb29zdC5SZWdleCwgQm9vc3QuVGhyZWFkIGFuZCAKLSsjIEJvb3N0LkRh dGVUaW1lLCBidXQgZG9lcyBub3QgcHJvZHVjZSBhbnkgKG90aGVyKSBsaWJyYXJ5LgotKyMKLSsJ CQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6QXNpbyBsaWJyYXJ5IGlzIGF2YWls YWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9hc2lvLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUK LSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdf UFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9hc2lvLmhwcD5dXSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtbYm9vc3Q6OmFzaW86OmlvX3NlcnZpY2UgaW87Ci0rCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb3N0OjpzeXN0ZW06OmVycm9yX2NvZGUg dGltZXJfcmVzdWx0OwotKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29zdDo6 YXNpbzo6ZGVhZGxpbmVfdGltZXIgdChpbyk7Ci0rCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHQuY2FuY2VsKCk7Ci0rCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlv LnJ1bl9vbmUoKTsKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXSldLAotKyAgICAgICAgICAg ICAgICAgICBheF9jdl9ib29zdF9hc2lvPXllcywgYXhfY3ZfYm9vc3RfYXNpbz1ubykKLSsJCQkg QUNfTEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2FzaW8i ID0gInh5ZXMiOyB0aGVuCi0rCQkJICAgQUNfREVGSU5FKEhBVkVfQk9PU1RfQVNJTywsW2RlZmlu ZSBpZiB0aGUgQm9vc3Q6OkFzaW8gbGlicmFyeSBpcyBhdmFpbGFibGVdKQotKwkJCSAgIEJPT1NU X0FTSU9fTElCPSIke0JPT1NUX1NZU1RFTV9MSUJ9ICR7Qk9PU1RfVEhSRUFEX0xJQn0iCi0rCQkJ ICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9PU1RfREFURV9USU1FX0xJ Qn0iCi0rCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9PU1RfUkVH RVhfTElCfSIKLSsJCQkgICBCT09TVF9BU0lPX0xJQj0iJHtCT09TVF9BU0lPX0xJQn0gJHtCT09T VF9TRVJJQUxJWkFUSU9OX0xJQn0iCi0rCQkJICAgQUNfU1VCU1QoQk9PU1RfQVNJT19MSUIpCi0r CQkJZmkKLSsKLSsjCi0rIyBTdXBwb3J0IGZvciBQeXRob24gYW5kIE1QSSAoTVBJQ0gyLCBCb29z dDo6TVBJLCBCb29zdDo6UHl0aG9uLCAKLSsjIEJvb3N0OjpTZXJpYWxpemF0aW9uLCBCb29zdDo6 TVBJX1B5dGhvbikKLSsjIE5vdGU6IG9uIHNvbWUgZGlzdHJpYnV0aW9ucyAoZS5nLiwgRGViaWFu KSwgQm9vc3QuTVBJIHVzZXMgT3Blbk1QSSByYXRoZXIgCi0rIyAgICAgICB0aGFuIE1QSUNIMgot KyMKLSsJCQlDUFBGTEFHU19PUklHPSIke0NQUEZMQUdTfSIKLSsJCQlDUFBGTEFHUz0iJHtDUFBG TEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke01QSUdFTl9DRkxBR1N9IgotKyMJCQlDUFBGTEFHUz0i JHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke01QSUNIMl9DRkxBR1N9IgotKyMJCQlDUFBG TEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke09QRU5NUElfQ0ZMQUdTfSIKLSsJ CQlMREZMQUdTX09SSUc9IiR7TERGTEFHU30iCi0rCQkJTERGTEFHUz0iJHtMREZMQUdTfSAke1BZ VEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElCU30gJHtNUElHRU5fTElCU30iCi0rIwkJCUxERkxB R1M9IiR7TERGTEFHU30gJHtQWVRIT05fTElCU30gJHtQWVRIT05fQUREX0xJQlN9ICR7TVBJQ0gy X0xJQlN9IgotKyMJCQlMREZMQUdTPSIke0xERkxBR1N9ICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9O X0FERF9MSUJTfSAke09QRU5NUElfTElCU30iCi0rCi0rIwotKyMgQm9vc3Q6OlB5dGhvbgotKyMK LSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6UHl0aG9uIGxpYnJhcnkgaXMg YXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3B5dGhvbiwKLSsJCQlbQUNfTEFOR19T QVZFCi0rCQkJQUNfTEFOR19DUExVU1BMVVMKLSsKLSsJCSAgICBBQ19DT01QSUxFX0lGRUxTRShb QUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3B5dGhvbi5ocHA+Ci0rCQkJY2hh ciBjb25zdCogZ3JlZXQoKSB7IHJldHVybiAiaGVsbG8iOyB9IAotKwkJCUJPT1NUX1BZVEhPTl9N T0RVTEUoaGVsbG9fZXh0KSB7IGJvb3N0OjpweXRob246OmRlZigiZ3JlZXQiLCBncmVldCk7fQot KwkJCQkJCQkJCQkgICBdXSldLAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9weXRo b249eWVzLCBheF9jdl9ib29zdF9weXRob249bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJ CV0pCi0rCi0rCQkJQk9PU1RfUFlUSE9OX0xJQj0iLWxib29zdF9weXRob24gJHtQWVRIT05fTElC U30gJHtQWVRIT05fQUREX0xJQlN9IgotKwkJCUFDX1NVQlNUKEJPT1NUX1BZVEhPTl9MSUIpCi0r Ci0rIwotKyMgQm9vc3Q6Ok1QSQotKyMKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBC b29zdDo6TXBpIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X21w aSwKLSsJCQkJCQlbQUNfTEFOR19TQVZFCi0rCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCi0rCQkJIEFD X0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvbXBp LmhwcD5dXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbCi0rCSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXV0pXSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3Rf bXBpPXllcywgYXhfY3ZfYm9vc3RfbXBpPW5vKQotKwkJCSBBQ19MQU5HX1JFU1RPUkUKLSsJCQld KQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfbXBpIiA9ICJ4eWVzIjsgdGhlbgotKwkJCQlB Q19ERUZJTkUoSEFWRV9CT09TVF9NUEksLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpNcGkgbGlicmFy eSBpcyBhdmFpbGFibGVdKQotKwkJCQlCTj1ib29zdF9tcGkKLSsJCQkJZm9yIGF4X2xpYiBpbiBc Ci0rCQkJCQkkQk4tbXQgJEJOICRCTi0kQ0MtbXQgJEJOLSRDQyBcCi0rCQkJCQkkQk4tJENDLW10 LXMgJEJOLSRDQy1zIGxpYiRCTi1tdCBsaWIkQk4gXAotKwkJCQkJbGliJEJOLSRDQy1tdCBsaWIk Qk4tJENDIGxpYiRCTi0kQ0MtbXQtcyBsaWIkQk4tJENDLXMgXAotKwkJCQkJJEJOLW1ndy1tdCAk Qk4tbWd3ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAotKwkJCQkJJEJOLSRDQy1tdC0kQk9PU1RM SUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4s IFtCT09TVF9NUElfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX01QSV9MSUIpIGxpbmtf bXBpPSJ5ZXMiIGJyZWFrXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlu a19tcGk9Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfbXBpIiA9ICJ4 bm8iOyB0aGVuCi0rCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4 X2xpYiAhKQotKwkJCQllbHNlCi0rCQkJCQlCT09TVF9NUElfTElCPSIke0JPT1NUX01QSV9MSUJ9 ICR7Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJ9ICR7TVBJR0VOX0xJQlN9IgotKwkJCQlmaQotKwkJ CWZpCi0rCi0rIwotKyMgQm9vc3Q6Ok1QSV9QeXRob24KLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0so d2hldGhlciB0aGUgQm9vc3Q6Ok1waV9QeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJ CQkJICAgYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbiwKLSsJCQkJCQlbQUNfTEFOR19TQVZFCi0rCQkJ IEFDX0xBTkdfQ1BMVVNQTFVTCi0rCQkJIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dS QU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvbXBpL3B5dGhvbi9zZXJpYWxpemUuaHBwPgotKwkJCSAJ CQkJCQkJCSAgIF1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1sKLSsJ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBdXSldLAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9i b29zdF9tcGlfcHl0aG9uPXllcywgYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbj1ubykKLSsJCQkgQUNf TEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X21waV9weXRo b24iID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX01QSV9QWVRIT04s LFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpNcGlfUHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkK LSsJCQkJQk49Ym9vc3RfbXBpX3B5dGhvbgotKyMJCQkJQk49Ym9vc3RfbXBpX3B5dGhvbi1weTI1 Ci0rCQkJCWZvciBheF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4tJENDLW10ICRCTi0k Q0MgXAotKwkJCQkJJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQgbGliJEJOIFwKLSsJ CQkJCWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMgbGliJEJOLSRDQy1z IFwKLSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKLSsJ CQkJCSRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIEFDX0NI RUNLX0xJQigkYXhfbGliLCBtYWluLCBbQk9PU1RfTVBJX1BZVEhPTl9MSUI9Ii1sJGF4X2xpYiIg QUNfU1VCU1QoQk9PU1RfTVBJX1BZVEhPTl9MSUIpIGxpbmtfbXBpX3B5dGhvbj0ieWVzIiBicmVh a10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfbXBpX3B5dGhvbj0i bm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua19tcGlfcHl0aG9uIiA9ICJ4 bm8iOyB0aGVuCi0rCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4 X2xpYiAhKQotKwkJCQllbHNlCi0rCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09TVF9N UElfUFlUSE9OX0xJQn0gJHtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQn0iCi0rCQkJCQlCT09TVF9N UElfUFlUSE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9OX0xJQn0gJHtCT09TVF9QWVRIT05fTElC fSIKLSsJCQkJCUJPT1NUX01QSV9QWVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAk e0JPT1NUX01QSV9MSUJ9IgotKwkJCQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9PU1RfTVBJ X1BZVEhPTl9MSUJ9ICR7TVBJR0VOX0xJQlN9IgotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMg RW5kIG9mIHNlY3Rpb24gb24gc3VwcG9ydCBmb3IgTVBJCi0rIwotKwkJCUNQUEZMQUdTPSIke0NQ UEZMQUdTX09SSUd9IgotKwkJCUxERkxBR1M9IiR7TERGTEFHU19PUklHfSIKLSsKLSsjCi0rIyBC b29zdDo6VW5pdFRlc3RGcmFtZXdvcmsKLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0 aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJ CSAgIGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmssCi0rCQkJCQkJW0FDX0xBTkdfU0FW RQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFO R19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD5dXSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3VzaW5nIGJvb3N0Ojp1bml0X3Rl c3Q6OnRlc3Rfc3VpdGU7Ci0rCQkJCQkgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUqIHRlc3Q9 IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0IHRlc3QgZXhhbXBsZSAxIiApOyByZXR1cm4gMDtdXSld LAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPXll cywgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz1ubykKLSsJCQkgQUNfTEFOR19SRVNU T1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdv cmsiID0gInh5ZXMiOyB0aGVuCi0rICAgIAkJQUNfREVGSU5FKEhBVkVfQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SSywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlVuaXRfdGVzdF9mcmFtZXdvcmsgbGli cmFyeSBpcyBhdmFpbGFibGVdKQotKwkJCUJOPWJvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsKLSsg ICAgCQlzYXZlZF9sZGZsYWdzPSIke0xERkxBR1N9IgotKwkJCWZvciBheF9saWIgaW4gXAotKwkJ CQkJJEJOLW10ICRCTiAkQk4tJENDLW10ICRCTi0kQ0MgXAotKwkJCQkJJEJOLSRDQy1tdC1zICRC Ti0kQ0MtcyBsaWIkQk4tbXQgbGliJEJOIFwKLSsJCQkJCWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRD QyBsaWIkQk4tJENDLW10LXMgbGliJEJOLSRDQy1zIFwKLSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1n dyAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKLSsJCQkJCSRCTi0kQ0MtbXQtJEJPT1NUTElCX01E V19WRVJTSU9OIDsgZG8KLSsgICAgICAgICAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSAtbCRh eF9saWIiCi0rICAgIAkJCUFDX0NBQ0hFX0NIRUNLKHRoZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5p dFRlc3RGcmFtZXdvcmsgbGlicmFyeSwKLSsJICAgICAgCQkJCQkgICBheF9jdl9ib29zdF91bml0 X3Rlc3RfZnJhbWV3b3JrLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExV U1BMVVMKLSsgICAgICAgICAgICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtb QCU6QGluY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD5dXSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW1t1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9U RVNUX1NVSVRFKCAiVW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7XV0pXSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJ5ZXMiXSxbbGlua190aHJl YWQ9Im5vIl0pCi0rCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKyAgICAgICAgICAgICAgIF0pCi0r ICAgICAgICAgICAgICAgIExERkxBR1M9IiR7c2F2ZWRfbGRmbGFnc30iCi0rCQkJICAgIGlmIHRl c3QgIngkbGlua190aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgICAgICBC T09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQj0iLWwkYXhfbGliIgotKyAgICAgICAgICAgICAg ICAgICAgQUNfU1VCU1QoQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIpCi0rCQkJCQlicmVh awotKwkJCQlmaQotKyAgICAgICAgICAgICAgZG9uZQotKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtf dGhyZWFkIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCSAgIEFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxp bmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsKLSsKLSsJCWZpIGRubCBl bmRpZiB0ZXN0ICIkc3VjY2VlZGVkIgotKwotKyAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHU19T QVZFRCIKLSsgICAgICAgIExERkxBR1M9IiRMREZMQUdTX1NBVkVEIgotKwotKwlmaSBkbmwgZW5k aWYgdGVzdCAieCR3YW50X2Jvb3N0IgotK10pCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv Y29uZmlnL2F4X215c3FsLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfbXlzcWwubTQK LS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfbXlzcWwubTQJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X215 c3FsLm00CTIwMTEtMDctMDMgMTg6Mzg6NDQuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE2 NCBAQAotK2RubCBAc3lub3BzaXMgQVhfTVlTUUwKLStkbmwgCi0rZG5sIFRoaXMgbWFjcm8gdHJp ZXMgdG8gZmluZCBNeVNRTCBDIEFQSSBoZWFkZXIgYW5kIGxpYnJhcnkgbG9jYXRpb25zLgotK2Ru bAotK2RubCBXZSBkZWZpbmUgdGhlIGZvbGxvd2luZyBjb25maWd1cmUgc2NyaXB0IGZsYWdzOgot K2RubAotK2RubAkJLS13aXRoLW15c3FsOiBHaXZlIHByZWZpeCBmb3IgYm90aCBsaWJyYXJ5IGFu ZCBoZWFkZXJzLCBhbmQgdHJ5Ci0rZG5sCQkJdG8gZ3Vlc3Mgc3ViZGlyZWN0b3J5IG5hbWVzIGZv ciBlYWNoLiAgKGUuZy4gVGFjayAvbGliIGFuZAotK2RubAkJCS9pbmNsdWRlIG9udG8gZ2l2ZW4g ZGlyIG5hbWUsIGFuZCBvdGhlciBjb21tb24gc2NoZW1lcy4pCi0rZG5sCQktLXdpdGgtbXlzcWwt bGliOiBTaW1pbGFyIHRvIC0td2l0aC1teXNxbCwgYnV0IGZvciBsaWJyYXJ5IG9ubHkuCi0rZG5s CQktLXdpdGgtbXlzcWwtaW5jbHVkZTogU2ltaWxhciB0byAtLXdpdGgtbXlzcWwsIGJ1dCBmb3Ig aGVhZGVycwotK2RubAkJCW9ubHkuCi0rZG5sCi0rZG5sIEB2ZXJzaW9uIDEuMiwgMjAwNy8wMi8y MAotK2RubCBAYXV0aG9yIFdhcnJlbiBZb3VuZyA8bXlzcWxwcEBldHItdXNhLmNvbT4KLSsKLStB Q19ERUZVTihbQVhfTVlTUUxdLAotK1sKLSsJIwotKwkjIFNldCB1cCBjb25maWd1cmUgc2NyaXB0 IG1hY3JvcwotKwkjCi0rCUFDX0FSR19XSVRIKG15c3FsLAotKwkJWyAgLS13aXRoLW15c3FsPTxw YXRoPiAgICAgcm9vdCBkaXJlY3RvcnkgcGF0aCBvZiBNeVNRTCBpbnN0YWxsYXRpb25dLAotKwkJ W01ZU1FMX2xpYl9jaGVjaz0iJHdpdGhfbXlzcWwvbGliNjQvbXlzcWwgJHdpdGhfbXlzcWwvbGli L215c3FsICR3aXRoX215c3FsL2xpYjY0ICR3aXRoX215c3FsL2xpYiIKLSsJCU1ZU1FMX2luY19j aGVjaz0iJHdpdGhfbXlzcWwvaW5jbHVkZSAkd2l0aF9teXNxbC9pbmNsdWRlL215c3FsIgotKwkJ TVlTUUxfYmluX2NoZWNrPSIkd2l0aF9teXNxbC9iaW4iXSwKLSsJCVtNWVNRTF9saWJfY2hlY2s9 Ii91c3IvbGliNjQgL3Vzci9saWIgL3Vzci9saWI2NC9teXNxbCAvdXNyL2xpYi9teXNxbCAvdXNy L2xvY2FsL2xpYjY0IC91c3IvbG9jYWwvbGliIC91c3IvbG9jYWwvbGliL215c3FsIC91c3IvbG9j YWwvbXlzcWwvbGliIC91c3IvbG9jYWwvbXlzcWwvbGliL215c3FsIC9vcHQvbXlzcWwvbGliIC9v cHQvbXlzcWwvbGliL215c3FsIgotKwkJTVlTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUvbXlz cWwgL3Vzci9sb2NhbC9pbmNsdWRlL215c3FsIC91c3IvbG9jYWwvbXlzcWwvaW5jbHVkZSAvdXNy L2xvY2FsL215c3FsL2luY2x1ZGUvbXlzcWwgL29wdC9teXNxbC9pbmNsdWRlL215c3FsIgotKwkJ TVlTUUxfYmluX2NoZWNrPSIvdXNyL2JpbiAvdXNyL2xvY2FsL2JpbiAvdXNyL2xvY2FsL215c3Fs L2JpbiJdKQotKwotKwlBQ19BUkdfV0lUSChteXNxbC1saWIsCi0rCQlbICAtLXdpdGgtbXlzcWwt bGliPTxwYXRoPiBkaXJlY3RvcnkgcGF0aCBvZiBNeVNRTCBsaWJyYXJ5IGluc3RhbGxhdGlvbl0s Ci0rCQlbTVlTUUxfbGliX2NoZWNrPSIkd2l0aF9teXNxbF9saWIgJHdpdGhfbXlzcWxfbGliL2xp YjY0ICR3aXRoX215c3FsX2xpYi9saWIgJHdpdGhfbXlzcWxfbGliL2xpYjY0L215c3FsICR3aXRo X215c3FsX2xpYi9saWIvbXlzcWwiXSkKLSsKLSsJQUNfQVJHX1dJVEgobXlzcWwtaW5jbHVkZSwK LSsJCVsgIC0td2l0aC1teXNxbC1pbmNsdWRlPTxwYXRoPiBkaXJlY3RvcnkgcGF0aCBvZiBNeVNR TCBoZWFkZXIgaW5zdGFsbGF0aW9uXSwKLSsJCVtNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3Fs X2luY2x1ZGUgJHdpdGhfbXlzcWxfaW5jbHVkZS9pbmNsdWRlICR3aXRoX215c3FsX2luY2x1ZGUv aW5jbHVkZS9teXNxbCJdKQotKwotKwotKyAgICAjCi0rCSMgTG9vayBmb3IgTXlTUUwgQ29uZmln dXJhdGlvbiBTY3JpcHQKLSsJIwotKwlBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBNeVNRTCBjb25maWd1 cmF0aW9uIHNjcmlwdF0pCi0rCU1ZU1FMX0NPTkZJRz0KLSsJTVlTUUxfYmluZGlyPQotKwlmb3Ig bSBpbiAkTVlTUUxfYmluX2NoZWNrCi0rCQlkbwotKwkJCWlmIHRlc3QgLWQgIiRtIiAmJiB0ZXN0 IC1mICIkbS9teXNxbF9jb25maWciCi0rCQkJdGhlbgotKwkJCQlNWVNRTF9DT05GSUc9JG0vbXlz cWxfY29uZmlnCi0rCQkJCU1ZU1FMX2JpbmRpcj0kbQotKwkJCWJyZWFrCi0rCQlmaQotKwlkb25l Ci0rCi0rCWlmIHRlc3QgLXogIiRNWVNRTF9iaW5kaXIiCi0rCXRoZW4KLSsJCUFDX01TR19FUlJP UihbRGlkbid0IGZpbmQgJE1ZU1FMX0NPTkZJRyBiaW5hcnkgaW4gJyRNWVNRTF9iaW5fY2hlY2sn XSkKLSsJZmkKLSsKLSsJY2FzZSAiJE1ZU1FMX2JpbmRpciIgaW4KLSsJCS8qICkgOzsKLSsJCSog KSAgQUNfTVNHX0VSUk9SKFtUaGUgTXlTUUwgYmluYXJ5IGRpcmVjdG9yeSAoJE1ZU1FMX2JpbmRp cikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7Ci0rCWVzYWMKLSsKLSsJQUNfTVNHX1JF U1VMVChbJE1ZU1FMX0NPTkZJR10pCi0rCi0rIwlBQ19QQVRIX1BST0coTVlTUUxfQ09ORklHLCBt eXNxbF9jb25maWcsICRNWVNRTF9iaW5kaXIpCi0rCi0rCSMKLSsJIyBEZWNpZGUgd2hpY2ggQyBB UEkgbGlicmFyeSB0byB1c2UsIGJhc2VkIG9uIHRocmVhZCBzdXBwb3J0Ci0rCSMKLSsJaWYgdGVz dCAieCRhY3hfcHRocmVhZF9vayIgPSB4eWVzCi0rCXRoZW4KLSsJCU1ZU1FMX0NfTElCPW15c3Fs Y2xpZW50X3IKLSsJCU1ZU1FMX0xJQl9PUFRJT049bGlic19yCi0rCWVsc2UKLSsJCU1ZU1FMX0Nf TElCPW15c3FsY2xpZW50Ci0rCQlNWVNRTF9MSUJfT1BUSU9OPWxpYnMKLSsJZmkKLSsKLSsJaWYg dGVzdCAieCR7TVlTUUxfQ09ORklHfTEiID0gIngxIgotKwl0aGVuCi0rCQlNWVNRTF9WRVJTSU9O PWAke01ZU1FMX0NPTkZJR30gLS12ZXJzaW9uYAotKwkJTVlTUUxfQ0ZMQUdTPWAke01ZU1FMX0NP TkZJR30gLS1jZmxhZ3NgCi0rCQlNWVNRTF9MSUJTPWAke01ZU1FMX0NPTkZJR30gLS0ke01ZU1FM X0xJQl9PUFRJT059YAotKwllbHNlCi0rCQkjCi0rCQkjIExvb2sgZm9yIE15U1FMIEMgQVBJIGxp YnJhcnkKLSsJCSMKLSsJCUFDX01TR19DSEVDS0lORyhbZm9yIE15U1FMIGxpYnJhcnkgZGlyZWN0 b3J5XSkKLSsJCU1ZU1FMX2xpYmRpcj0KLSsJCWZvciBtIGluICRNWVNRTF9saWJfY2hlY2sKLSsJ CWRvCi0rCQkJaWYgdGVzdCAtZCAiJG0iICYmIFwKLSsJCQkJKHRlc3QgLWYgIiRtL2xpYiRNWVNR TF9DX0xJQi5zbyIgXAotKwkJCQl8fCB0ZXN0IC1mICIkbS9saWIkTVlTUUxfQ19MSUIuYSIpCi0r CQkJdGhlbgotKwkJCQlNWVNRTF9saWJkaXI9JG0KLSsJCQkJYnJlYWsKLSsJCQlmaQotKwkJZG9u ZQotKwotKwkJaWYgdGVzdCAteiAiJE1ZU1FMX2xpYmRpciIKLSsJCXRoZW4KLSsJCQlBQ19NU0df RVJST1IoW0RpZG4ndCBmaW5kICRNWVNRTF9DX0xJQiBsaWJyYXJ5IGluICckTVlTUUxfbGliX2No ZWNrJ10pCi0rCQlmaQotKwotKwkJY2FzZSAiJE1ZU1FMX2xpYmRpciIgaW4KLSsJCQkvKiApIDs7 Ci0rCQkJKiApICBBQ19NU0dfRVJST1IoW1RoZSBNeVNRTCBsaWJyYXJ5IGRpcmVjdG9yeSAoJE1Z U1FMX2xpYmRpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7Ci0rCQllc2FjCi0rCi0r CQlBQ19NU0dfUkVTVUxUKFskTVlTUUxfbGliZGlyXSkKLSsKLSsjCQljYXNlICIkTVlTUUxfbGli ZGlyIiBpbgotKyMJCSAgL3Vzci9saWIpIDs7Ci0rIwkJICAqKSBMREZMQUdTPSIkTERGTEFHUyAt TCR7TVlTUUxfbGliZGlyfSIgOzsKLSsjCQllc2FjCi0rCi0rCQkjCi0rCQkjIExvb2sgZm9yIE15 U1FMIEMgQVBJIGhlYWRlcnMKLSsJCSMKLSsJCUFDX01TR19DSEVDS0lORyhbZm9yIE15U1FMIGlu Y2x1ZGUgZGlyZWN0b3J5XSkKLSsJCU1ZU1FMX2luY2Rpcj0KLSsJCWZvciBtIGluICRNWVNRTF9p bmNfY2hlY2sKLSsJCWRvCi0rCQkJaWYgdGVzdCAtZCAiJG0iICYmIHRlc3QgLWYgIiRtL215c3Fs LmgiCi0rCQkJdGhlbgotKwkJCQlNWVNRTF9pbmNkaXI9JG0KLSsJCQkJYnJlYWsKLSsJCQlmaQot KwkJZG9uZQotKwotKwkJaWYgdGVzdCAteiAiJE1ZU1FMX2luY2RpciIKLSsJCXRoZW4KLSsJCQlB Q19NU0dfRVJST1IoW0RpZG4ndCBmaW5kIHRoZSBNeVNRTCBpbmNsdWRlIGRpciBpbiAnJE1ZU1FM X2luY19jaGVjayddKQotKwkJZmkKLSsKLSsJCWNhc2UgIiRNWVNRTF9pbmNkaXIiIGluCi0rCQkJ IC8qICkgOzsKLSsJCQkgKiApICBBQ19NU0dfRVJST1IoW1RoZSBNeVNRTCBpbmNsdWRlIGRpcmVj dG9yeSAoJE1ZU1FMX2luY2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7Ci0rCQll c2FjCi0rCi0rCQlBQ19NU0dfUkVTVUxUKFskTVlTUUxfaW5jZGlyXSkKLSsKLSsJCU1ZU1FMX1ZF UlNJT049YGdyZXAgImRlZmluZSBNWVNRTF9TRVJWRVJfVkVSU0lPTiIgJE1ZU1FMX2luY2Rpci9t eXNxbF92ZXJzaW9uLmggfCBjdXQgLWRcIiAtZjJgCi0rCQlNWVNRTF9DRkxBR1M9Ii1JJHtNWVNR TF9pbmNkaXJ9IgotKwkJTVlTUUxfTElCUz0iLUwke01ZU1FMX2xpYmRpcn0gLWwke01ZU1FMX0Nf TElCfSIKLSsJZmkKLSsKLSsJQUNfU1VCU1QoTVlTUUxfVkVSU0lPTikKLSsJQUNfU1VCU1QoTVlT UUxfQ0ZMQUdTKQotKwlBQ19TVUJTVChNWVNRTF9MSUJTKQotKwotKwlzYXZlX0xJQlM9IiRMSUJT IgotKwlMSUJTPSIkTElCUyAkTVlTUUxfTElCUyIKLSsJQUNfQ0hFQ0tfTElCKCRNWVNRTF9DX0xJ QiwgbXlzcWxfc3RvcmVfcmVzdWx0LAotKyAgICAgICAJCQlbXSwgCi0rICAgICAgICAgICAgICAg CVtBQ19NU0dfRVJST1IoW0NvdWxkIG5vdCBmaW5kIHdvcmtpbmcgTXlTUUwgY2xpZW50IGxpYnJh cnkhXSldCi0rICAgICAgICAgICAgICAgCSkKLSsJQUNfU1VCU1QoTVlTUUxfQ19MSUIpCi0rCUxJ QlM9IiRzYXZlX0xJQlMiCi0rXSkgZG5sIEFYX01ZU1FMCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svY29uZmlnL2F4X29yYWNsZV9vY2kubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9h eF9vcmFjbGVfb2NpLm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X29yYWNsZV9v Y2kubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvY29uZmlnL2F4X29yYWNsZV9vY2kubTQJMjAxMS0wNy0wMyAxODozODo0NC4wMDAw MDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMjg2IEBACi0rZG5sICRJZDogYXhfb3JhY2xlX29jaS5t NCx2IDEuMTEgMjAwOC8wNC8yOCAxOTo1ODo1NCBtbG9za290IEV4cCAkCi0rZG5sCi0rZG5sIEBz eW5vcHNpcyBBWF9MSUJfT1JBQ0xFX09DSShbTUlOSU1VTS1WRVJTSU9OXSkKLStkbmwKLStkbmwg VGhpcyBtYWNybyBwcm92aWRlcyB0ZXN0cyBvZiBhdmFpbGFiaWxpdHkgb2YgT3JhY2xlIE9DSSBB UEkKLStkbmwgb2YgcGFydGljdWxhciB2ZXJzaW9uIG9yIG5ld2VyLgotK2RubCBUaGlzIG1hY3Jv cyBjaGVja3MgZm9yIE9yYWNsZSBPQ0kgaGVhZGVycyBhbmQgbGlicmFyaWVzIAotK2RubCBhbmQg ZGVmaW5lcyBjb21waWxhdGlvbiBmbGFncwotK2RubCAKLStkbmwgTWFjcm8gc3VwcG9ydHMgZm9s bG93aW5nIG9wdGlvbnMgYW5kIHRoZWlyIHZhbHVlczoKLStkbmwgMSkgU2luZ2xlLW9wdGlvbiB1 c2FnZToKLStkbmwgLS13aXRoLW9yYWNsZSAtIHBhdGggdG8gT1JBQ0xFX0hPTUUgZGlyZWN0b3J5 Ci0rZG5sIDIpIFR3by1vcHRpb25zIHVzYWdlIChib3RoIG9wdGlvbnMgYXJlIHJlcXVpcmVkKToK LStkbmwgLS13aXRoLW9yYWNsZS1pbmNsdWRlIC0gcGF0aCB0byBkaXJlY3Rvcnkgd2l0aCBPQ0kg aGVhZGVycwotK2RubCAtLXdpdGgtb3JhY2xlLWxpYiAtIHBhdGggdG8gZGlyZWN0b3J5IHdpdGgg T0NJIGxpYnJhcmllcyAKLStkbmwKLStkbmwgTk9URTogVGhlc2Ugb3B0aW9ucyBkZXNjcmliZWQg YWJvdmUgZG9lcyBub3QgdGFrZSB5ZXN8bm8gdmFsdWVzLgotK2RubCBJZiAneWVzJyB2YWx1ZSBp cyBwYXNzZWQsIHRoZW4gV0FSTklORyBtZXNzYWdlIHdpbGwgYmUgZGlzcGxheWVkLAotK2RubCAn bm8nIHZhbHVlLCBhcyB3ZWxsIGFzIHRoZSAtLXdpdGhvdXQtb3JhY2xlKiB2YXJpYXRpb25zIHdp bGwgY2F1c2UKLStkbmwgdGhlIG1hY3JvIHdvbid0IGNoZWNrIGVueXRoaW5nLgotK2RubAotK2Ru bCBUaGlzIG1hY3JvIGNhbGxzOgotK2RubAotK2RubCAgIEFDX1NVQlNUKE9SQUNMRV9PQ0lfQ0ZM QUdTKQotK2RubCAgIEFDX1NVQlNUKE9SQUNMRV9PQ0lfTERGTEFHUykKLStkbmwgICBBQ19TVUJT VChPUkFDTEVfT0NJX1ZFUlNJT04pCi0rZG5sCi0rZG5sIEFuZCBzZXRzOgotK2RubAotK2RubCAg IEhBVkVfT1JBQ0xFCi0rZG5sCi0rZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcwotK2Ru bCBAY2F0ZWdvcnkgQ3h4Ci0rZG5sIEBhdXRob3IgTWF0ZXVzeiBMb3Nrb3QgPG1hdGV1c3pAbG9z a290Lm5ldD4KLStkbmwgQHZlcnNpb24gJERhdGU6IDIwMDgvMDQvMjggMTk6NTg6NTQgJAotK2Ru bCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCi0rZG5sCi0rZG5sICRJZDogYXhfb3JhY2xlX29jaS5t NCx2IDEuMTEgMjAwOC8wNC8yOCAxOTo1ODo1NCBtbG9za290IEV4cCAkCi0rZG5sCi0rQUNfREVG VU4oW0FYX0xJQl9PUkFDTEVfT0NJXSwKLStbCi0rICAgIEFDX1JFUVVJUkUoW0FDX0NBTk9OSUNB TF9IT1NUXSkKLSsgICAgQUNfQVJHX1dJVEgoW29yYWNsZV0sCi0rICAgICAgICBBQ19IRUxQX1NU UklORyhbLS13aXRoLW9yYWNsZT1APDpARElSQDo+QF0sCi0rICAgICAgICAgICAgW3VzZSBPcmFj bGUgT0NJIEFQSSBmcm9tIGdpdmVuIHBhdGggdG8gT3JhY2xlIGhvbWUgZGlyZWN0b3J5XQotKyAg ICAgICAgKSwKLSsgICAgICAgIFsKLSsgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMi OyB0aGVuCi0rICAgICAgICAgICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhlbgotKyAg ICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKLSsgICAgICAgICAg ICBlbHNlCi0rICAgICAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iIgotKyAgICAgICAgICAg IGZpIAotKyAgICAgICAgZmkKLSsgICAgICAgIF0sCi0rICAgICAgICBbCi0rICAgICAgICBpZiB0 ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCi0rICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGly PSIkT1JBQ0xFX0hPTUUiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgb3JhY2xlX2hvbWVf ZGlyPSIiCi0rICAgICAgICBmaSAKLSsgICAgICAgIF0KLSsgICAgKQotKwotKyAgICBBQ19BUkdf V0lUSChbb3JhY2xlLWluY2x1ZGVdLAotKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1v cmFjbGUtaW5jbHVkZT1APDpARElSQDo+QF0sCi0rICAgICAgICAgICAgW3VzZSBPcmFjbGUgT0NJ IEFQSSBoZWFkZXJzIGZyb20gZ2l2ZW4gcGF0aF0KLSsgICAgICAgICksCi0rICAgICAgICBbb3Jh Y2xlX2hvbWVfaW5jbHVkZV9kaXI9IiR3aXRodmFsIl0sCi0rICAgICAgICBbb3JhY2xlX2hvbWVf aW5jbHVkZV9kaXI9IiJdCi0rICAgICkKLSsgICAgQUNfQVJHX1dJVEgoW29yYWNsZS1saWJdLAot KyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1vcmFjbGUtbGliPUA8OkBESVJAOj5AXSwK LSsgICAgICAgICAgICBbdXNlIE9yYWNsZSBPQ0kgQVBJIGxpYnJhcmllcyBmcm9tIGdpdmVuIHBh dGhdCi0rICAgICAgICApLAotKyAgICAgICAgW29yYWNsZV9ob21lX2xpYl9kaXI9IiR3aXRodmFs Il0sCi0rICAgICAgICBbb3JhY2xlX2hvbWVfbGliX2Rpcj0iIl0KLSsgICAgKQotKwotKyAgICBP UkFDTEVfT0NJX0NGTEFHUz0iIgotKyAgICBPUkFDTEVfT0NJX0xERkxBR1M9IiIKLSsgICAgT1JB Q0xFX09DSV9WRVJTSU9OPSIiCi0rCi0rICAgIGRubAotKyAgICBkbmwgQ29sbGVjdCBpbmNsdWRl L2xpYiBwYXRocwotKyAgICBkbmwgCi0rICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJubyIK LSsKLSsgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9ob21lX2RpciI7IHRoZW4KLSsKLSsgICAgICAg IGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9kaXIi ICE9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgZG5sIE9SQUNMRV9IT01FIHBhdGggcHJvdmlk ZWQKLSsgICAgICAgICAgICAKLSsgICAgICAgICAgICBkbmwgUHJpbWFyeSBwYXRoIHRvIE9DSSBo ZWFkZXJzLCBhdmFpbGFibGUgaW4gT3JhY2xlPj0xMAotKyAgICAgICAgICAgIG9yYWNsZV9pbmNs dWRlX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9wdWJsaWMiCi0rICAgICAgICAgICAgCi0r ICAgICAgICAgICAgZG5sIFNlY29uZGFyeSBwYXRoIHRvIE9DSSBoZWFkZXJzIHVzZWQgYnkgb2xk ZXIgdmVyc2lvbnMKLSsgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXIyPSIkb3JhY2xlX2hv bWVfZGlyL3JkYm1zL2RlbW8iCi0rCi0rICAgICAgICAgICAgZG5sIExpYnJhcnkgcGF0aAotKyAg ICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVfZGlyL2xpYiIKLSsgICAgICAg IGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAg IHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCi0rICAgICAgICBmaQotKwotKyAgICBlbGlm IHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgLW8gLW4gIiRvcmFjbGVfaG9tZV9s aWJfZGlyIjsgdGhlbgotKwotKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2luY2x1ZGVf ZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiICE9ICJ5ZXMiOyB0aGVu Ci0rICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyPSIkb3JhY2xlX2hvbWVfaW5jbHVkZV9k aXIiCi0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgPSAieWVz IjsgdGhlbgotKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCi0rICAg ICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9kaXIiICE9ICJu byIgLWEgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAg IG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVfbGliX2RpciIKLSsgICAgICAgIGVsaWYgdGVz dCAiJG9yYWNsZV9ob21lX2xpYl9kaXIiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50 X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAg aWYgdGVzdCAiJHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAg ICBBQ19NU0dfV0FSTihbT3JhY2xlIHN1cHBvcnQgaXMgcmVxdWVzdGVkIGJ1dCBubyBPcmFjbGUg cGF0aHMgaGF2ZSBiZWVuIHByb3ZpZGVkLiBcCi0rUGxlYXNlLCBsb2NhdGUgT3JhY2xlIGRpcmVj dG9yaWVzIHVzaW5nIC0td2l0aC1vcmFjbGUgb3IgXAotKy0td2l0aC1vcmFjbGUtaW5jbHVkZSBh bmQgLS13aXRoLW9yYWNsZS1saWIgb3B0aW9ucy5dKQotKyAgICBmaQotKwotKyAgICBkbmwKLSsg ICAgZG5sIENoZWNrIE9DSSBmaWxlcwotKyAgICBkbmwKLSsgICAgaWYgdGVzdCAtbiAiJG9yYWNs ZV9pbmNsdWRlX2RpciIgLWEgLW4gIiRvcmFjbGVfbGliX2RpciI7IHRoZW4KLSsKLSsgICAgICAg IHNhdmVkX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdT IC1JJG9yYWNsZV9pbmNsdWRlX2RpciIKLSsKLSsgICAgICAgIGRubCBBZGRpdGlvbmFsIHBhdGgg Zm9yIG9sZGVyIE9yYWNsZSBpbnN0YWxsYXRpb25zIAotKyAgICAgICAgaWYgdGVzdCAtbiAiJG9y YWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCi0rICAgICAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFH UyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgICMgRmln dXJlIG91dCBpZiB3ZSBhcmUgYnVpbGRpbmcgb24gd2luMzIuCi0rICAgICAgICBjYXNlICRob3N0 X29zIGluCi0rICAgICAgICAgICAgKm1pbmd3MzIqICkgV0lOMzI9eWVzIDs7Ci0rICAgICAgICAg ICAgKmN5Z3dpbiogKSAgV0lOMzI9eWVzIDs7Ci0rICAgICAgICAgICAgKikgV0lOMzI9bm8gOzsK LSsgICAgICAgIGVzYWMKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRXSU4zMiIgPSAibm8iCi0rICAg ICAgICB0aGVuCi0rICAgICAgICAgICAgb2NpX2xpYnM9Ii1sY2xudHNoIC1sbm56MTEiCi0rICAg ICAgICBlbHNlCi0rICAgICAgICAgICAgb2NpX2xpYnM9Ii1sb2NpIgotKyAgICAgICAgZmkKLSsK LSsgICAgICAgIHNhdmVkX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICAgICAgc2F2ZWRfTElCUz0i JExJQlMiCi0rICAgICAgICBvY2lfbGRmbGFncz0iLUwkb3JhY2xlX2xpYl9kaXIiCi0rICAgICAg ICBMREZMQUdTPSIkTERGTEFHUyAkb2NpX2xkZmxhZ3MiCi0rICAgICAgICBMSUJTPSIkTElCUyAk b2NpX2xpYnMiCi0rCi0rICAgICAgICBkbmwKLSsgICAgICAgIGRubCBDaGVjayBPQ0kgaGVhZGVy cwotKyAgICAgICAgZG5sCi0rICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBPcmFjbGUgT0NJ IGhlYWRlcnMgaW4gJG9yYWNsZV9pbmNsdWRlX2Rpcl0pCi0rCi0rICAgICAgICBBQ19MQU5HX1BV U0goQysrKQotKyAgICAgICAgQUNfQ09NUElMRV9JRkVMU0UoCi0rCQkJCVtBQ19MQU5HX1BST0dS QU0oW1tAJTpAaW5jbHVkZSA8b2NpLmg+XV0sCi0rICAgICAgICAgICAgICAgIFtbCi0rI2lmIGRl ZmluZWQoT0NJX01BSk9SX1ZFUlNJT04pCi0rI2lmIE9DSV9NQUpPUl9WRVJTSU9OID09IDEwICYm IE9DSV9NSU5PUl9WRVJTSU9OID09IDIKLSsvLyBPcmFjbGUgMTAuMiBkZXRlY3RlZAotKyNlbmRp ZgotKyNlbGlmIGRlZmluZWQoT0NJX1Y3X1NZTlRBWCkKLSsvLyBPSywgb2xkZXIgT3JhY2xlIGRl dGVjdGVkCi0rLy8gVE9ETyAtIG1sb3Nrb3Q6IGZpbmQgYmV0dGVyIG1hY3JvIHRvIGNoZWNrIGZv ciBvbGRlciB2ZXJzaW9uczsgCi0rI2Vsc2UKLSsjICBlcnJvciBPcmFjbGUgb2NpLmggaGVhZGVy IG5vdCBmb3VuZAotKyNlbmRpZgotKyAgICAgICAgICAgICAgICBdXQotKyAgICAgICAgICAgICld LAotKyAgICAgICAgICAgIFsKLSsgICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iLUkkb3Jh Y2xlX2luY2x1ZGVfZGlyIgotKwotKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5j bHVkZV9kaXIyIjsgdGhlbgotKyAgICAgICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iJE9S QUNMRV9PQ0lfQ0ZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCi0rICAgICAgICAgICAgZmkK LSsKLSsgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJ5ZXMiCi0rICAgICAgICAgICAgQUNf TVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAgICAgICBdLAotKyAgICAgICAgICAgIFsKLSsgICAg ICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJubyIKLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxU KFtub3QgZm91bmRdKQotKyAgICAgICAgICAgIF0KLSsgICAgICAgICkKLSsgICAgICAgIEFDX0xB TkdfUE9QKFtDKytdKQotKyAgICAgICAgCi0rICAgICAgICBkbmwKLSsgICAgICAgIGRubCBDaGVj ayBPQ0kgbGlicmFyaWVzCi0rICAgICAgICBkbmwKLSsgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVh ZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5H KFtmb3IgT3JhY2xlIE9DSSBsaWJyYXJpZXMgaW4gJG9yYWNsZV9saWJfZGlyXSkKLSsKLSsgICAg ICAgICAgICBBQ19MQU5HX1BVU0goQysrKQotKyAgICAgICAgICAgIEFDX0xJTktfSUZFTFNFKAot KwkJCQlbQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPG9jaS5oPl1dLAotKyAgICAgICAg ICAgICAgICAgICAgW1sKLStPQ0lFbnYqIGVudmggPSAwOwotK09DSUVudkNyZWF0ZSgmZW52aCwg T0NJX0RFRkFVTFQsIDAsIDAsIDAsIDAsIDAsIDApOwotK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVl KGVudmgsIE9DSV9IVFlQRV9FTlYpOwotKyAgICAgICAgICAgICAgICAgICAgXV0KLSsgICAgICAg ICAgICAgICAgKV0sCi0rICAgICAgICAgICAgICAgIFsKLSsgICAgICAgICAgICAgICAgT1JBQ0xF X09DSV9MREZMQUdTPSIkb2NpX2xkZmxhZ3MgJG9jaV9saWJzIgotKyAgICAgICAgICAgICAgICBv Y2lfbGliX2ZvdW5kPSJ5ZXMiCi0rICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10p Ci0rICAgICAgICAgICAgICAgIF0sCi0rICAgICAgICAgICAgICAgIFsKLSsgICAgICAgICAgICAg ICAgb2NpX2xpYl9mb3VuZD0ibm8iCi0rICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25v dCBmb3VuZF0pCi0rICAgICAgICAgICAgICAgIF0KLSsgICAgICAgICAgICApCi0rICAgICAgICAg ICAgQUNfTEFOR19QT1AoW0MrK10pCi0rICAgICAgICBmaQotKwotKyAgICAgICAgQ1BQRkxBR1M9 IiRzYXZlZF9DUFBGTEFHUyIKLSsgICAgICAgIExERkxBR1M9IiRzYXZlZF9MREZMQUdTIgotKyAg ICAgICAgTElCUz0iJHNhdmVkX0xJQlMiCi0rICAgIGZpCi0rCi0rICAgIGRubAotKyAgICBkbmwg Q2hlY2sgcmVxdWlyZWQgdmVyc2lvbiBvZiBPcmFjbGUgaXMgYXZhaWxhYmxlCi0rICAgIGRubAot KyAgICBvcmFjbGVfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkKLSsKLSsg ICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lfbGliX2ZvdW5k IiA9ICJ5ZXMiIC1hIFwKLSsgICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVxIjsgdGhlbgot KwotKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGly L29jaS5oIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4q T0NJX01BSk9SX1ZFUlNJT04uKicgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBz ZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAotKwotKyAgICAg ICAgb3JhY2xlX3ZlcnNpb25fbWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01JTk9S X1ZFUlNJT04uKicgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3Mv I2RlZmluZSBPQ0lfTUlOT1JfVkVSU0lPTiAgKi8vJyBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAotKwotKyAgICAgICAgQUNfTVNH X0NIRUNLSU5HKFtpZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3Jl cV0pCi0rCi0rICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX3ZlcnNpb25fbWFqb3IiIC1hIC1u ICQib3JhY2xlX3ZlcnNpb25fbWlub3IiOyB0aGVuCi0rCi0rICAgICAgICAgICAgT1JBQ0xFX09D SV9WRVJTSU9OPSIkb3JhY2xlX3ZlcnNpb25fbWFqb3IuJG9yYWNsZV92ZXJzaW9uX21pbm9yIgot KwotKyAgICAgICAgICAgIGRubCBEZWNvbXBvc2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2Yg T3JhY2xlCi0rICAgICAgICAgICAgZG5sIGFuZCBjYWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNl bnRhdGlvbgotKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkb3Jh Y2xlX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcKSdgCi0rICAgICAgICAgICAgb3JhY2xlX3Zl cnNpb25fcmVxX21pbm9yPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwo W1swLTldXSpcKSdgCi0rCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcj1g ZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3Ig XCogMTAwMGAKLSsKLSsgICAgICAgICAgICBkbmwgQ2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVz ZW50YXRpb24gCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fbnVtYmVyPWBleHByICRvcmFj bGVfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX21pbm9yIFwqIDEwMDBgCi0rCi0rICAgICAgICAg ICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX251bWJlciBcPlw9 ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyYAotKyAgICAgICAgICAgIGlmIHRlc3QgIiRvcmFj bGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KLSsgICAgICAgICAgICAgICAgQUNfTVNHX1JF U1VMVChbeWVzXSkKLSsgICAgICAgICAgICAgICAgQUNfREVGSU5FKEhBVkVfT1JBQ0xFLCBbMV0s IFtEZWZpbmUgdG8gMSBpZiB0aGUgT3JhY2xlIE9DSSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0r ICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0r ICAgICAgICAgICAgICAgIEFDX01TR19FUlJPUihbT3JhY2xlICRPUkFDTEVfT0NJX1ZFUlNJT04g Zm91bmQsIGJ1dCByZXF1aXJlZCB2ZXJzaW9uIGlzICRvcmFjbGVfdmVyc2lvbl9yZXFdKQotKyAg ICAgICAgICAgIGZpCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJT SU9OPSJVTktOT1dOIgotKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAg ICAgICBBQ19NU0dfV0FSTihbT3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9s ZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGVdKQotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsg ICAgQUNfU1VCU1QoW09SQUNMRV9PQ0lfVkVSU0lPTl0pCi0rICAgIEFDX1NVQlNUKFtPUkFDTEVf T0NJX0NGTEFHU10pCi0rICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX0xERkxBR1NdKQotK10pCi1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00Ci0tLS0gc29jaS0zLjAuMF80LXBh Y2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMjAx MS0wNy0wMyAxODozODo0NC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTcxIEBACi0rZG5s ICRJZDogYXhfcG9zdGdyZXNxbC5tNCx2IDEuMyAyMDA3LzA2LzIzIDAxOjUxOjIyIG1sb3Nrb3Qg RXhwICQKLStkbmwKLStkbmwgQHN5bm9wc2lzIEFYX0xJQl9QT1NUR1JFU1FMKFtNSU5JTVVNLVZF UlNJT05dKQotK2RubAotK2RubCBUaGlzIG1hY3JvIHByb3ZpZGVzIHRlc3RzIG9mIGF2YWlsYWJp bGl0eSBvZiBQb3N0Z3JlU1FMICdsaWJwcScgbGlicmFyeQotK2RubCBvZiBwYXJ0aWN1bGFyIHZl cnNpb24gb3IgbmV3ZXIuCi0rZG5sIAotK2RubCBBWF9MSUJfUE9TVEdSRVNRTCBtYWNybyB0YWtl cyBvbmx5IG9uZSBhcmd1bWVudCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhlcmUgaXMgbm8gCi0r ZG5sIHJlcXVpcmVkIHZlcnNpb24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMgbm90IHJ1biB2ZXJz aW9uIHRlc3QuCi0rZG5sCi0rZG5sIFRoZSAtLXdpdGgtcG9zdGdyZXNxbCBvcHRpb24gdGFrZXMg b25lIG9mIHRocmVlIHBvc3NpYmxlIHZhbHVlczoKLStkbmwgbm8gICAtIGRvIG5vdCBjaGVjayBm b3IgUG9zdGdyZVNRTCBjbGllbnQgbGlicmFyeQotK2RubCB5ZXMgIC0gZG8gY2hlY2sgZm9yIFBv c3RncmVTUUwgbGlicmFyeSBpbiBzdGFuZGFyZCBsb2NhdGlvbnMKLStkbmwgICAgICAgIChwZ19j b25maWcgc2hvdWxkIGJlIGluIHRoZSBQQVRIKQotK2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0 byBwZ19jb25maWcgdXRpbGl0eSwgdXNlIHRoaXMgb3B0aW9uCi0rZG5sICAgICAgICBpZiBwZ19j b25maWcgY2FuJ3QgYmUgZm91bmQgaW4gdGhlIFBBVEgKLStkbmwKLStkbmwgVGhpcyBtYWNybyBj YWxsczoKLStkbmwKLStkbmwgICBBQ19TVUJTVChQT1NUR1JFU1FMX0NGTEFHUykKLStkbmwgICBB Q19TVUJTVChQT1NUR1JFU1FMX0xERkxBR1MpCi0rZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9W RVJTSU9OKQotK2RubAotK2RubCBBbmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZFX1BPU1RHUkVT UUwKLStkbmwKLStkbmwgQGNhdGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCi0rZG5sIEBjYXRlZ29y eSBDeHgKLStkbmwgQGF1dGhvciBNYXRldXN6IExvc2tvdCA8bWF0ZXVzekBsb3Nrb3QubmV0Pgot K2RubCBAdmVyc2lvbiAkRGF0ZTogMjAwNy8wNi8yMyAwMTo1MToyMiAkCi0rZG5sIEBsaWNlbnNl IEFsbFBlcm1pc3NpdmUKLStkbmwKLStkbmwgJElkOiBheF9wb3N0Z3Jlc3FsLm00LHYgMS4zIDIw MDcvMDYvMjMgMDE6NTE6MjIgbWxvc2tvdCBFeHAgJAotK2RubAotK0FDX0RFRlVOKFtBWF9MSUJf UE9TVEdSRVNRTF0sCi0rWwotKyAgICBBQ19BUkdfV0lUSChbcG9zdGdyZXNxbF0sCi0rICAgICAg ICBBQ19IRUxQX1NUUklORyhbLS13aXRoLXBvc3RncmVzcWw9QDw6QEFSR0A6PkBdLAotKyAgICAg ICAgICAgIFt1c2UgUG9zdGdyZVNRTCBsaWJyYXJ5IEA8OkBkZWZhdWx0PXllc0A6PkAsIG9wdGlv bmFsbHkgc3BlY2lmeSBwYXRoIHRvIHBnX2NvbmZpZ10KLSsgICAgICAgICksCi0rICAgICAgICBb Ci0rCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCi0rICAg ICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9w b3N0Z3Jlc3FsPSJubyIKLSsgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRo ZW4KLSsgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsg ICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgICAgICBQR19DT05GSUc9 IiR3aXRodmFsIgotKyAgICAgICAgZmkKLSsgICAgICAgIF0sCi0rICAgICAgICBbd2FudF9wb3N0 Z3Jlc3FsPSJ5ZXMiCi0rCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9s b2NhbCAvb3B0Il0KLSsgICAgKQotKwotKyAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgotKyAgICBQ T1NUR1JFU1FMX0xERkxBR1M9IiIKLSsgICAgUE9TVEdSRVNRTF9QT1NUR1JFU1FMPSIiCi0rCi0r ICAgIGRubAotKyAgICBkbmwgQ2hlY2sgUG9zdGdyZVNRTCBsaWJyYXJpZXMgKGxpYnBxKQotKyAg ICBkbmwKLSsgICAgCi0rICAgIGlmIHRlc3QgIiR3YW50X3Bvc3RncmVzcWwiID0gInllcyI7IHRo ZW4KLSsKLSsgICAgICAgIGlmIHRlc3QgLXogIiRQR19DT05GSUciIC1vIHRlc3Q7IHRoZW4KLSsg ICAgICAgICAgICBBQ19QQVRIX1BST0coW1BHX0NPTkZJR10sIFtwZ19jb25maWddLCBbXSkKLSsg ICAgICAgIGZpCi0rCi0rICAgICAgICBpZiB0ZXN0ICEgLXggIiRQR19DT05GSUciOyB0aGVuCi0r ICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFskUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0 IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGVdKQotKyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8i Ci0rICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ibm8iCi0rICAgICAgICBmaQotKwotKyAg ICAgICAgaWYgdGVzdCAiJFBHX0NPTkZJRyIgIT0gIm5vIjsgdGhlbgotKyAgICAgICAgICAgICMK LSsgICAgICAgICAgICAjIExvb2sgZm9yIFBvc3RncmVzcWwgQyBBUEkgaGVhZGVycwotKyAgICAg ICAgICAgICMKLSsgICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBQb3N0Z3Jlc3FsIGlu Y2x1ZGUgZGlyZWN0b3J5XSkKLSsgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0KLSsgICAg ICAgICAgICBmb3IgcG9zdGdyZXNxbF9pbmNfZGlyIGluICRQT1NUR1JFU1FMX2luY19jaGVjawot KyAgICAgICAgICAgIGRvCi0rICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3Fs X2luY19kaXIiIFwKLSsgICAgICAgICAgICAgICAgJiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5j X2Rpci9wb3N0Z3Jlc19leHQuaCIKLSsgICAgICAgICAgICAgICAgdGhlbgotKyAgICAgICAgICAg ICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9JHBvc3RncmVzcWxfaW5jX2RpcgotKyAgICAgICAg ICAgICAgICAgICAgYnJlYWsKLSsgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICBkb25l Ci0rCi0rICAgICAgICAgICAgaWYgdGVzdCAteiAiJFBPU1RHUkVTUUxfaW5jZGlyIgotKyAgICAg ICAgICAgIHRoZW4KLSsgICAgICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0 aGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpciBpbiAnJFBPU1RHUkVTUUxfaW5jX2NoZWNrJ10pCi0r ICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBjYXNlICIkUE9TVEdSRVNRTF9pbmNkaXIi IGluCi0rICAgICAgICAgICAgICAgIC8qICkgOzsKLSsgICAgICAgICAgICAgICAgKiApICBBQ19N U0dfRVJST1IoW1RoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9p bmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OwotKyAgICAgICAgICAgIGVzYWMK LSsKLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFskUE9TVEdSRVNRTF9pbmNkaXJdKQotKwot KyAgICAgICAgICAgIGlmIHRlc3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRl IjsgdGhlbgotKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKLSsgICAgICAgICAg ICBlbHNlCi0rICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVTUUxf aW5jZGlyfSIKLSsgICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIFBPU1RHUkVTUUxfTERG TEFHUz0iLUxgJFBHX0NPTkZJRyAtLWxpYmRpcmAgLWxwcSIKLSsKLSsgICAgICAgICAgICBQT1NU R1JFU1FMX1ZFUlNJT049YCRQR19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3RncmVT UUwgIyMnYAotKwotKyAgICAgICAgICAgIEFDX0RFRklORShbSEFWRV9QT1NUR1JFU1FMXSwgWzFd LCBbRGVmaW5lIHRvIDEgaWYgUG9zdGdyZVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0pCi0r ICAgICAgICAgICAgCi0rICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ieWVzIgotKyAgICAg ICAgZWxzZQotKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5vIgotKyAgICAgICAgZmkK LSsgICAgZmkKLSsKLSsgICAgZG5sCi0rICAgIGRubCBDaGVjayBpZiByZXF1aXJlZCB2ZXJzaW9u IG9mIFBvc3RncmVTUUwgaXMgYXZhaWxhYmxlCi0rICAgIGRubAotKyAgICAKLSsKLSsgICAgcG9z dGdyZXNxbF92ZXJzaW9uX3JlcT1pZmVsc2UoWyQxXSwgW10sIFtdLCBbJDFdKQotKwotKyAgICBp ZiB0ZXN0ICIkZm91bmRfcG9zdGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBvc3RncmVzcWxfdmVy c2lvbl9yZXEiOyB0aGVuCi0rCi0rICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIFBvc3RncmVT UUwgdmVyc2lvbiBpcyA+PSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV0pCi0rCi0rICAgICAgICBk bmwgRGVjb21wb3NlIHJlcXVpcmVkIHZlcnNpb24gc3RyaW5nIG9mIFBvc3RncmVTUUwKLSsgICAg ICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KLSsgICAgICAg IHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9y ZXEgOiAnXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlu b3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpc KSdgCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPWBleHByICRwb3N0Z3Jl c3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsg ICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7IHRo ZW4KLSsgICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPSIwIgotKyAgICAg ICAgZmkKLSsKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRw b3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3IgXCog MTAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNx bF92ZXJzaW9uX3JlcV9taWNyb2AKLSsKLSsgICAgICAgIGRubCBEZWNvbXBvc2UgdmVyc2lvbiBz dHJpbmcgb2YgaW5zdGFsbGVkIFBvc3RncmVTUUwKLSsgICAgICAgIGRubCBhbmQgY2FsY3VsYXRl IGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9t YWpvcj1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1woW1swLTldXSpcKSdgCi0rICAgICAg ICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdb WzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNy bz1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAt OV1dKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvIiA9 ICJ4IjsgdGhlbgotKyAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIKLSsg ICAgICAgIGZpCi0rCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRw b3N0Z3Jlc3FsX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lv bl9taWNyb2AKLSsKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkcG9z dGdyZXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJl cmAKLSsgICAgICAgIGlmIHRlc3QgIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0 aGVuCi0rICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAgIGVsc2UKLSsg ICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAgICAgICBmaQotKyAgICBmaQotKwot KyAgICBBQ19TVUJTVChbUE9TVEdSRVNRTF9WRVJTSU9OXSkKLSsgICAgQUNfU1VCU1QoW1BPU1RH UkVTUUxfQ0ZMQUdTXSkKLSsgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfTERGTEFHU10pCi0rXSkK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLmd1ZXNzIHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWcvY29uZmlnLmd1ZXNzCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL2NvbmZpZy5ndWVzcwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLmd1ZXNzCTIwMTEtMDctMDMgMTg6NDQ6 MjcuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE1MDEgQEAKLSsjISAvYmluL3NoCi0rIyBB dHRlbXB0IHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lLgotKyMgICBDb3B5cmlnaHQg KEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0rIyAg IDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIw MDkKLSsjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rdGltZXN0YW1wPScy MDA5LTExLTIwJwotKwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKLSsjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgot KyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0 Ci0rIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVQotKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKLSsjIDAyMTEwLTEzMDEs IFVTQS4KLSsjCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSwgaWYgeW91Ci0rIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9m IGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKLSsjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVy YXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0rIyB0aGUgc2FtZSBk aXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dy YW0uCi0rCi0rCi0rIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuICBQbGVhc2Ug c2VuZCBwYXRjaGVzIChjb250ZXh0Ci0rIyBkaWZmIGZvcm1hdCkgdG8gPGNvbmZpZy1wYXRjaGVz QGdudS5vcmc+IGFuZCBpbmNsdWRlIGEgQ2hhbmdlTG9nCi0rIyBlbnRyeS4KLSsjCi0rIyBUaGlz IHNjcmlwdCBhdHRlbXB0cyB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZSBzaW1pbGFy IHRvCi0rIyBjb25maWcuc3ViLiAgSWYgaXQgc3VjY2VlZHMsIGl0IHByaW50cyB0aGUgc3lzdGVt IG5hbWUgb24gc3Rkb3V0LCBhbmQKLSsjIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhp dHMgd2l0aCAxLgotKyMKLSsjIFlvdSBjYW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlz IHNjcmlwdCBmcm9tOgotKyMgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1j b25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5ndWVzcztoYj1IRUFECi0rCi0rbWU9YGVj aG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCi0rCi0rdXNhZ2U9IlwKLStVc2FnZTogJDAgW09Q VElPTl0KLSsKLStPdXRwdXQgdGhlIGNvbmZpZ3VyYXRpb24gbmFtZSBvZiB0aGUgc3lzdGVtIFxg JG1lJyBpcyBydW4gb24uCi0rCi0rT3BlcmF0aW9uIG1vZGVzOgotKyAgLWgsIC0taGVscCAgICAg ICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0rICAtdCwgLS10aW1lLXN0YW1wICAgcHJp bnQgZGF0ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiwgdGhlbiBleGl0Ci0rICAtdiwgLS12ZXJzaW9u ICAgICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAotKwotK1JlcG9ydCBidWdzIGFu ZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4iCi0rCi0rdmVyc2lvbj0iXAot K0dOVSBjb25maWcuZ3Vlc3MgKCR0aW1lc3RhbXApCi0rCi0rT3JpZ2luYWxseSB3cml0dGVuIGJ5 IFBlciBCb3RobmVyLgotK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5 NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKLSsyMDAyLCAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotK1Ro aXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9u cy4gIFRoZXJlIGlzIE5PCi0rd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgotKwotK2hlbHA9IgotK1RyeSBc YCRtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKLSsKLSsjIFBhcnNlIGNvbW1hbmQg bGluZQotK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbwotKyAgY2FzZSAkMSBpbgotKyAgICAtLXRp bWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQgKQotKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4 aXQgOzsKLSsgICAgLS12ZXJzaW9uIHwgLXYgKQotKyAgICAgICBlY2hvICIkdmVyc2lvbiIgOyBl eGl0IDs7Ci0rICAgIC0taGVscCB8IC0taCogfCAtaCApCi0rICAgICAgIGVjaG8gIiR1c2FnZSI7 IGV4aXQgOzsKLSsgICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCi0rICAgICAg IHNoaWZ0OyBicmVhayA7OwotKyAgICAtICkJIyBVc2Ugc3RkaW4gYXMgaW5wdXQuCi0rICAgICAg IGJyZWFrIDs7Ci0rICAgIC0qICkKLSsgICAgICAgZWNobyAiJG1lOiBpbnZhbGlkIG9wdGlvbiAk MSRoZWxwIiA+JjIKLSsgICAgICAgZXhpdCAxIDs7Ci0rICAgICogKQotKyAgICAgICBicmVhayA7 OwotKyAgZXNhYwotK2RvbmUKLSsKLStpZiB0ZXN0ICQjICE9IDA7IHRoZW4KLSsgIGVjaG8gIiRt ZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgotKyAgZXhpdCAxCi0rZmkKLSsKLSt0cmFw ICdleGl0IDEnIDEgMiAxNQotKwotKyMgQ0NfRk9SX0JVSUxEIC0tIGNvbXBpbGVyIHVzZWQgYnkg dGhpcyBzY3JpcHQuIE5vdGUgdGhhdCB0aGUgdXNlIG9mIGEKLSsjIGNvbXBpbGVyIHRvIGFpZCBp biBzeXN0ZW0gZGV0ZWN0aW9uIGlzIGRpc2NvdXJhZ2VkIGFzIGl0IHJlcXVpcmVzCi0rIyB0ZW1w b3JhcnkgZmlsZXMgdG8gYmUgY3JlYXRlZCBhbmQsIGFzIHlvdSBjYW4gc2VlIGJlbG93LCBpdCBp cyBhCi0rIyBoZWFkYWNoZSB0byBkZWFsIHdpdGggaW4gYSBwb3J0YWJsZSBmYXNoaW9uLgotKwot KyMgSGlzdG9yaWNhbGx5LCBgQ0NfRk9SX0JVSUxEJyB1c2VkIHRvIGJlIG5hbWVkIGBIT1NUX0ND Jy4gV2Ugc3RpbGwKLSsjIHVzZSBgSE9TVF9DQycgaWYgZGVmaW5lZCwgYnV0IGl0IGlzIGRlcHJl Y2F0ZWQuCi0rCi0rIyBQb3J0YWJsZSB0bXAgZGlyZWN0b3J5IGNyZWF0aW9uIGluc3BpcmVkIGJ5 IHRoZSBBdXRvY29uZiB0ZWFtLgotKwotK3NldF9jY19mb3JfYnVpbGQ9JwotK3RyYXAgImV4aXRj b2RlPVwkPzsgKHJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rl di9udWxsKSAmJiBleGl0IFwkZXhpdGNvZGUiIDAgOwotK3RyYXAgInJtIC1mIFwkdG1wZmlsZXMg Mj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsOyBleGl0IDEiIDEgMiAxMyAxNSA7 Ci0rOiAke1RNUERJUj0vdG1wfSA7Ci0rIHsgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAi JFRNUERJUi9jZ1hYWFhYWCIpIDI+L2Rldi9udWxsYCAmJiB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0 IC1kICIkdG1wIiA7IH0gfHwKLSsgeyB0ZXN0IC1uICIkUkFORE9NIiAmJiB0bXA9JFRNUERJUi9j ZyQkLSRSQU5ET00gJiYgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKSA7IH0gfHwKLSsgeyB0bXA9 JFRNUERJUi9jZy0kJCAmJiAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApICYmIGVjaG8gIldhcm5p bmc6IGNyZWF0aW5nIGluc2VjdXJlIHRlbXAgZGlyZWN0b3J5IiA+JjIgOyB9IHx8Ci0rIHsgZWNo byAiJG1lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAkVE1QRElSIiA+ JjIgOyBleGl0IDEgOyB9IDsKLStkdW1teT0kdG1wL2R1bW15IDsKLSt0bXBmaWxlcz0iJGR1bW15 LmMgJGR1bW15Lm8gJGR1bW15LnJlbCAkZHVtbXkiIDsKLStjYXNlICRDQ19GT1JfQlVJTEQsJEhP U1RfQ0MsJENDIGluCi0rICwsKSAgICBlY2hvICJpbnQgeDsiID4gJGR1bW15LmMgOwotKwlmb3Ig YyBpbiBjYyBnY2MgYzg5IGM5OSA7IGRvCi0rCSAgaWYgKCRjIC1jIC1vICRkdW1teS5vICRkdW1t eS5jKSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCi0rCSAgICAgQ0NfRk9SX0JVSUxEPSIkYyI7IGJy ZWFrIDsKLSsJICBmaSA7Ci0rCWRvbmUgOwotKwlpZiB0ZXN0IHgiJENDX0ZPUl9CVUlMRCIgPSB4 IDsgdGhlbgotKwkgIENDX0ZPUl9CVUlMRD1ub19jb21waWxlcl9mb3VuZCA7Ci0rCWZpCi0rCTs7 Ci0rICwsKikgICBDQ19GT1JfQlVJTEQ9JENDIDs7Ci0rICwqLCopICBDQ19GT1JfQlVJTEQ9JEhP U1RfQ0MgOzsKLStlc2FjIDsgc2V0X2NjX2Zvcl9idWlsZD0gOycKLSsKLSsjIFRoaXMgaXMgbmVl ZGVkIHRvIGZpbmQgdW5hbWUgb24gYSBQeXJhbWlkIE9TeCB3aGVuIHJ1biBpbiB0aGUgQlNEIHVu aXZlcnNlLgotKyMgKGdoYXppQG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQotK2lmICh0ZXN0 IC1mIC8uYXR0YmluL3VuYW1lKSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCi0rCVBBVEg9JFBBVEg6 Ly5hdHRiaW4gOyBleHBvcnQgUEFUSAotK2ZpCi0rCi0rVU5BTUVfTUFDSElORT1gKHVuYW1lIC1t KSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfTUFDSElORT11bmtub3duCi0rVU5BTUVfUkVMRUFTRT1g KHVuYW1lIC1yKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfUkVMRUFTRT11bmtub3duCi0rVU5BTUVf U1lTVEVNPWAodW5hbWUgLXMpIDI+L2Rldi9udWxsYCAgfHwgVU5BTUVfU1lTVEVNPXVua25vd24K LStVTkFNRV9WRVJTSU9OPWAodW5hbWUgLXYpIDI+L2Rldi9udWxsYCB8fCBVTkFNRV9WRVJTSU9O PXVua25vd24KLSsKLSsjIE5vdGU6IG9yZGVyIGlzIHNpZ25pZmljYW50IC0gdGhlIGNhc2UgYnJh bmNoZXMgYXJlIG5vdCBleGNsdXNpdmUuCi0rCi0rY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VO QU1FX1NZU1RFTX06JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgotKyAgICAq Ok5ldEJTRDoqOiopCi0rCSMgTmV0QlNEIChuYnNkKSB0YXJnZXRzIHNob3VsZCAod2hlcmUgYXBw bGljYWJsZSkgbWF0Y2ggb25lIG9yCi0rCSMgbW9yZSBvZiB0aGUgdHVwcGxlczogKi0qLW5ldGJz ZGVsZiosICotKi1uZXRic2Rhb3V0KiwKLSsJIyAqLSotbmV0YnNkZWNvZmYqIGFuZCAqLSotbmV0 YnNkKi4gIEZvciB0YXJnZXRzIHRoYXQgcmVjZW50bHkKLSsJIyBzd2l0Y2hlZCB0byBFTEYsICot Ki1uZXRic2QqIHdvdWxkIHNlbGVjdCB0aGUgb2xkCi0rCSMgb2JqZWN0IGZpbGUgZm9ybWF0LiAg VGhpcyBwcm92aWRlcyBib3RoIGZvcndhcmQKLSsJIyBjb21wYXRpYmlsaXR5IGFuZCBhIGNvbnNp c3RlbnQgbWVjaGFuaXNtIGZvciBzZWxlY3RpbmcgdGhlCi0rCSMgb2JqZWN0IGZpbGUgZm9ybWF0 LgotKwkjCi0rCSMgTm90ZTogTmV0QlNEIGRvZXNuJ3QgcGFydGljdWxhcmx5IGNhcmUgYWJvdXQg dGhlIHZlbmRvcgotKwkjIHBvcnRpb24gb2YgdGhlIG5hbWUuICBXZSBhbHdheXMgc2V0IGl0IHRv ICJ1bmtub3duIi4KLSsJc3lzY3RsPSJzeXNjdGwgLW4gaHcubWFjaGluZV9hcmNoIgotKwlVTkFN RV9NQUNISU5FX0FSQ0g9YCgvc2Jpbi8kc3lzY3RsIDI+L2Rldi9udWxsIHx8IFwKLSsJICAgIC91 c3Ivc2Jpbi8kc3lzY3RsIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bilgCi0rCWNhc2UgIiR7 VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KLSsJICAgIGFybWViKSBtYWNoaW5lPWFybWViLXVua25v d24gOzsKLSsJICAgIGFybSopIG1hY2hpbmU9YXJtLXVua25vd24gOzsKLSsJICAgIHNoM2VsKSBt YWNoaW5lPXNobC11bmtub3duIDs7Ci0rCSAgICBzaDNlYikgbWFjaGluZT1zaC11bmtub3duIDs7 Ci0rCSAgICBzaDVlbCkgbWFjaGluZT1zaDVsZS11bmtub3duIDs7Ci0rCSAgICAqKSBtYWNoaW5l PSR7VU5BTUVfTUFDSElORV9BUkNIfS11bmtub3duIDs7Ci0rCWVzYWMKLSsJIyBUaGUgT3BlcmF0 aW5nIFN5c3RlbSBpbmNsdWRpbmcgb2JqZWN0IGZvcm1hdCwgaWYgaXQgaGFzIHN3aXRjaGVkCi0r CSMgdG8gRUxGIHJlY2VudGx5LCBvciB3aWxsIGluIHRoZSBmdXR1cmUuCi0rCWNhc2UgIiR7VU5B TUVfTUFDSElORV9BUkNIfSIgaW4KLSsJICAgIGFybSp8aTM4NnxtNjhrfG5zMzJrfHNoMyp8c3Bh cmN8dmF4KQotKwkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwkJaWYgZWNobyBfX0VMRl9fIHwg JENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsIFwKLSsJCQl8IGdyZXAgLXEgX19FTEZfXwot KwkJdGhlbgotKwkJICAgICMgT25jZSBhbGwgdXRpbGl0aWVzIGNhbiBiZSBFQ09GRiAobmV0YnNk ZWNvZmYpIG9yIGEub3V0IChuZXRic2Rhb3V0KS4KLSsJCSAgICAjIFJldHVybiBuZXRic2QgZm9y IGVpdGhlci4gIEZJWD8KLSsJCSAgICBvcz1uZXRic2QKLSsJCWVsc2UKLSsJCSAgICBvcz1uZXRi c2RlbGYKLSsJCWZpCi0rCQk7OwotKwkgICAgKikKLSsJICAgICAgICBvcz1uZXRic2QKLSsJCTs7 Ci0rCWVzYWMKLSsJIyBUaGUgT1MgcmVsZWFzZQotKwkjIERlYmlhbiBHTlUvTmV0QlNEIG1hY2hp bmVzIGhhdmUgYSBkaWZmZXJlbnQgdXNlcmxhbmQsIGFuZAotKwkjIHRodXMsIG5lZWQgYSBkaXN0 aW5jdCB0cmlwbGV0LiBIb3dldmVyLCB0aGV5IGRvIG5vdCBuZWVkCi0rCSMga2VybmVsIHZlcnNp b24gaW5mb3JtYXRpb24sIHNvIGl0IGNhbiBiZSByZXBsYWNlZCB3aXRoIGEKLSsJIyBzdWl0YWJs ZSB0YWcsIGluIHRoZSBzdHlsZSBvZiBsaW51eC1nbnUuCi0rCWNhc2UgIiR7VU5BTUVfVkVSU0lP Tn0iIGluCi0rCSAgICBEZWJpYW4qKQotKwkJcmVsZWFzZT0nLWdudScKLSsJCTs7Ci0rCSAgICAq KQotKwkJcmVsZWFzZT1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLV9dLiovXC4v J2AKLSsJCTs7Ci0rCWVzYWMKLSsJIyBTaW5jZSBDUFVfVFlQRS1NQU5VRkFDVFVSRVItS0VSTkVM LU9QRVJBVElOR19TWVNURU06Ci0rCSMgY29udGFpbnMgcmVkdW5kYW50IGluZm9ybWF0aW9uLCB0 aGUgc2hvcnRlciBmb3JtOgotKwkjIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1PUEVSQVRJTkdfU1lT VEVNIGlzIHVzZWQuCi0rCWVjaG8gIiR7bWFjaGluZX0tJHtvc30ke3JlbGVhc2V9IgotKwlleGl0 IDs7Ci0rICAgICo6T3BlbkJTRDoqOiopCi0rCVVOQU1FX01BQ0hJTkVfQVJDSD1gYXJjaCB8IHNl ZCAncy9PcGVuQlNELi8vJ2AKLSsJZWNobyAke1VOQU1FX01BQ0hJTkVfQVJDSH0tdW5rbm93bi1v cGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6ZWtrb0JTRDoqOiopCi0r CWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWVra29ic2Qke1VOQU1FX1JFTEVBU0V9Ci0r CWV4aXQgOzsKLSsgICAgKjpTb2xpZEJTRDoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11 bmtub3duLXNvbGlkYnNkJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIG1hY3BwYzpN aXJCU0Q6KjoqKQotKwllY2hvIHBvd2VycGMtdW5rbm93bi1taXJic2Qke1VOQU1FX1JFTEVBU0V9 Ci0rCWV4aXQgOzsKLSsgICAgKjpNaXJCU0Q6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1taXJic2Qke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgYWxwaGE6T1NG MToqOiopCi0rCWNhc2UgJFVOQU1FX1JFTEVBU0UgaW4KLSsJKjQuMCkKLSsJCVVOQU1FX1JFTEVB U0U9YC91c3Ivc2Jpbi9zaXplciAtdiB8IGF3ayAne3ByaW50ICQzfSdgCi0rCQk7OwotKwkqNS4q KQotKwkgICAgICAgIFVOQU1FX1JFTEVBU0U9YC91c3Ivc2Jpbi9zaXplciAtdiB8IGF3ayAne3By aW50ICQ0fSdgCi0rCQk7OwotKwllc2FjCi0rCSMgQWNjb3JkaW5nIHRvIENvbXBhcSwgL3Vzci9z YmluL3BzcmluZm8gaGFzIGJlZW4gYXZhaWxhYmxlIG9uCi0rCSMgT1NGLzEgYW5kIFRydTY0IHN5 c3RlbXMgcHJvZHVjZWQgc2luY2UgMTk5NS4gIEkgaG9wZSB0aGF0Ci0rCSMgY292ZXJzIG1vc3Qg c3lzdGVtcyBydW5uaW5nIHRvZGF5LiAgVGhpcyBjb2RlIHBpcGVzIHRoZSBDUFUKLSsJIyB0eXBl cyB0aHJvdWdoIGhlYWQgLW4gMSwgc28gd2Ugb25seSBkZXRlY3QgdGhlIHR5cGUgb2YgQ1BVIDAu Ci0rCUFMUEhBX0NQVV9UWVBFPWAvdXNyL3NiaW4vcHNyaW5mbyAtdiB8IHNlZCAtbiAtZSAncy9e ICBUaGUgYWxwaGEgXCguKlwpIHByb2Nlc3Nvci4qJC9cMS9wJyB8IGhlYWQgLW4gMWAKLSsJY2Fz ZSAiJEFMUEhBX0NQVV9UWVBFIiBpbgotKwkgICAgIkVWNCAoMjEwNjQpIikKLSsJCVVOQU1FX01B Q0hJTkU9ImFscGhhIiA7OwotKwkgICAgIkVWNC41ICgyMTA2NCkiKQotKwkJVU5BTUVfTUFDSElO RT0iYWxwaGEiIDs7Ci0rCSAgICAiTENBNCAoMjEwNjYvMjEwNjgpIikKLSsJCVVOQU1FX01BQ0hJ TkU9ImFscGhhIiA7OwotKwkgICAgIkVWNSAoMjExNjQpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFs cGhhZXY1IiA7OwotKwkgICAgIkVWNS42ICgyMTE2NEEpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFs cGhhZXY1NiIgOzsKLSsJICAgICJFVjUuNiAoMjExNjRQQykiKQotKwkJVU5BTUVfTUFDSElORT0i YWxwaGFwY2E1NiIgOzsKLSsJICAgICJFVjUuNyAoMjExNjRQQykiKQotKwkJVU5BTUVfTUFDSElO RT0iYWxwaGFwY2E1NyIgOzsKLSsJICAgICJFVjYgKDIxMjY0KSIpCi0rCQlVTkFNRV9NQUNISU5F PSJhbHBoYWV2NiIgOzsKLSsJICAgICJFVjYuNyAoMjEyNjRBKSIpCi0rCQlVTkFNRV9NQUNISU5F PSJhbHBoYWV2NjciIDs7Ci0rCSAgICAiRVY2LjhDQiAoMjEyNjRDKSIpCi0rCQlVTkFNRV9NQUNI SU5FPSJhbHBoYWV2NjgiIDs7Ci0rCSAgICAiRVY2LjhBTCAoMjEyNjRCKSIpCi0rCQlVTkFNRV9N QUNISU5FPSJhbHBoYWV2NjgiIDs7Ci0rCSAgICAiRVY2LjhDWCAoMjEyNjREKSIpCi0rCQlVTkFN RV9NQUNISU5FPSJhbHBoYWV2NjgiIDs7Ci0rCSAgICAiRVY2LjlBICgyMTI2NC9FVjY5QSkiKQot KwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY5IiA7OwotKwkgICAgIkVWNyAoMjEzNjQpIikKLSsJ CVVOQU1FX01BQ0hJTkU9ImFscGhhZXY3IiA7OwotKwkgICAgIkVWNy45ICgyMTM2NEEpIikKLSsJ CVVOQU1FX01BQ0hJTkU9ImFscGhhZXY3OSIgOzsKLSsJZXNhYwotKwkjIEEgUG4ubiB2ZXJzaW9u IGlzIGEgcGF0Y2hlZCB2ZXJzaW9uLgotKwkjIEEgVm4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQg dmVyc2lvbi4KLSsJIyBBIFRuLm4gdmVyc2lvbiBpcyBhIHJlbGVhc2VkIGZpZWxkIHRlc3QgdmVy c2lvbi4KLSsJIyBBIFhuLm4gdmVyc2lvbiBpcyBhbiB1bnJlbGVhc2VkIGV4cGVyaW1lbnRhbCBi YXNlbGV2ZWwuCi0rCSMgMS4yIHVzZXMgIjEuMiIgZm9yIHVuYW1lIC1yLgotKwllY2hvICR7VU5B TUVfTUFDSElORX0tZGVjLW9zZmBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXltQ VlRYXS8vJyB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1u b3BxcnN0dXZ3eHl6J2AKLSsJZXhpdCA7OwotKyAgICBBbHBoYVwgKjpXaW5kb3dzX05UKjoqKQot KwkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQ T1NJWCBzdWJzeXN0ZW0/Ci0rCSMgU2hvdWxkIHdlIGNoYW5nZSBVTkFNRV9NQUNISU5FIGJhc2Vk IG9uIHRoZSBvdXRwdXQgb2YgdW5hbWUgaW5zdGVhZAotKwkjIG9mIHRoZSBzcGVjaWZpYyBBbHBo YSBtb2RlbD8KLSsJZWNobyBhbHBoYS1wYy1pbnRlcml4Ci0rCWV4aXQgOzsKLSsgICAgMjEwNjQ6 V2luZG93c19OVDo1MDozKQotKwllY2hvIGFscGhhLWRlYy13aW5udDMuNQotKwlleGl0IDs7Ci0r ICAgIEFtaWdhKjpVTklYX1N5c3RlbV9WOjQuMDoqKQotKwllY2hvIG02OGstdW5rbm93bi1zeXN2 NAotKwlleGl0IDs7Ci0rICAgICo6W0FhXW1pZ2FbT29dW1NzXToqOiopCi0rCWVjaG8gJHtVTkFN RV9NQUNISU5FfS11bmtub3duLWFtaWdhb3MKLSsJZXhpdCA7OwotKyAgICAqOltNbV1vcnBoW09v XVtTc106KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1tb3JwaG9zCi0rCWV4 aXQgOzsKLSsgICAgKjpPUy8zOTA6KjoqKQotKwllY2hvIGkzNzAtaWJtLW9wZW5lZGl0aW9uCi0r CWV4aXQgOzsKLSsgICAgKjp6L1ZNOio6KikKLSsJZWNobyBzMzkwLWlibS16dm1vZQotKwlleGl0 IDs7Ci0rICAgICo6T1M0MDA6KjoqKQotKyAgICAgICAgZWNobyBwb3dlcnBjLWlibS1vczQwMAot KwlleGl0IDs7Ci0rICAgIGFybTpSSVNDKjoxLlswMTJdKjoqfGFybTpyaXNjaXg6MS5bMDEyXSo6 KikKLSsJZWNobyBhcm0tYWNvcm4tcmlzY2l4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0r ICAgIGFybTpyaXNjb3M6KjoqfGFybTpSSVNDT1M6KjoqKQotKwllY2hvIGFybS11bmtub3duLXJp c2NvcwotKwlleGl0IDs7Ci0rICAgIFNSMj8wMTpISS1VWC9NUFA6KjoqIHwgU1I4MDAwOkhJLVVY L01QUDoqOiopCi0rCWVjaG8gaHBwYTEuMS1oaXRhY2hpLWhpdXhtcHAKLSsJZXhpdCA7OwotKyAg ICBQeXJhbWlkKjpPU3gqOio6KiB8IE1JUyo6T1N4KjoqOiogfCBNSVMqOlNNUF9EQy1PU3gqOio6 KikKLSsJIyBha2VlQHdwZGlzMDMud3BhZmIuYWYubWlsIChFYXJsZSBGLiBBa2UpIGNvbnRyaWJ1 dGVkIE1JUyBhbmQgTklMRS4KLSsJaWYgdGVzdCAiYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVs bGAiID0gYXR0IDsgdGhlbgotKwkJZWNobyBweXJhbWlkLXB5cmFtaWQtc3lzdjMKLSsJZWxzZQot KwkJZWNobyBweXJhbWlkLXB5cmFtaWQtYnNkCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgTklMRSo6 KjoqOmRjb3N4KQotKwllY2hvIHB5cmFtaWQtcHlyYW1pZC1zdnI0Ci0rCWV4aXQgOzsKLSsgICAg RFJTPzYwMDA6dW5peDo0LjA6NiopCi0rCWVjaG8gc3BhcmMtaWNsLW54NgotKwlleGl0IDs7Ci0r ICAgIERSUz82MDAwOlVOSVhfU1Y6NC4yKjo3KiB8IERSUz82MDAwOmlzaXM6NC4yKjo3KikKLSsJ Y2FzZSBgL3Vzci9iaW4vdW5hbWUgLXBgIGluCi0rCSAgICBzcGFyYykgZWNobyBzcGFyYy1pY2wt bng3OyBleGl0IDs7Ci0rCWVzYWMgOzsKLSsgICAgczM5MHg6U3VuT1M6KjoqKQotKwllY2hvICR7 VU5BTUVfTUFDSElORX0taWJtLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUg J3MvW14uXSovLydgCi0rCWV4aXQgOzsKLSsgICAgc3VuNEg6U3VuT1M6NS4qOiopCi0rCWVjaG8g c3BhcmMtaGFsLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSov LydgCi0rCWV4aXQgOzsKLSsgICAgc3VuNCo6U3VuT1M6NS4qOiogfCB0YWRwb2xlKjpTdW5PUzo1 Lio6KikKLSsJZWNobyBzcGFyYy1zdW4tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNl ZCAtZSAncy9bXi5dKi8vJ2AKLSsJZXhpdCA7OwotKyAgICBpODZwYzpBdXJvcmFVWDo1Lio6KiB8 IGk4NnhlbjpBdXJvcmFVWDo1Lio6KikKLSsJZWNobyBpMzg2LXBjLWF1cm9yYXV4JHtVTkFNRV9S RUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIGk4NnBjOlN1bk9TOjUuKjoqIHwgaTg2eGVuOlN1bk9T OjUuKjoqKQotKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCVNVTl9BUkNIPSJpMzg2IgotKwkj IElmIHRoZXJlIGlzIGEgY29tcGlsZXIsIHNlZSBpZiBpdCBpcyBjb25maWd1cmVkIGZvciA2NC1i aXQgb2JqZWN0cy4KLSsJIyBOb3RlIHRoYXQgdGhlIFN1biBjYyBkb2VzIG5vdCB0dXJuIF9fTFA2 NF9fIGludG8gMSBsaWtlIGdjYyBkb2VzLgotKwkjIFRoaXMgdGVzdCB3b3JrcyBmb3IgYm90aCBj b21waWxlcnMuCi0rCWlmIFsgIiRDQ19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcg XTsgdGhlbgotKwkgICAgaWYgKGVjaG8gJyNpZmRlZiBfX2FtZDY0JzsgZWNobyBJU182NEJJVF9B UkNIOyBlY2hvICcjZW5kaWYnKSB8IFwKLSsJCShDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLUUgLSAy Pi9kZXYvbnVsbCkgfCBcCi0rCQlncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYvbnVsbAotKwkgICAg dGhlbgotKwkJU1VOX0FSQ0g9Ing4Nl82NCIKLSsJICAgIGZpCi0rCWZpCi0rCWVjaG8gJHtTVU5f QVJDSH0tcGMtc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8v J2AKLSsJZXhpdCA7OwotKyAgICBzdW40KjpTdW5PUzo2KjoqKQotKwkjIEFjY29yZGluZyB0byBj b25maWcuc3ViLCB0aGlzIGlzIHRoZSBwcm9wZXIgd2F5IHRvIGNhbm9uaWNhbGl6ZQotKwkjIFN1 bk9TNi4gIEhhcmQgdG8gZ3Vlc3MgZXhhY3RseSB3aGF0IFN1bk9TNiB3aWxsIGJlIGxpa2UsIGJ1 dAotKwkjIGl0J3MgbGlrZWx5IHRvIGJlIG1vcmUgbGlrZSBTb2xhcmlzIHRoYW4gU3VuT1M0Lgot KwllY2hvIHNwYXJjLXN1bi1zb2xhcmlzM2BlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdz L1teLl0qLy8nYAotKwlleGl0IDs7Ci0rICAgIHN1bjQqOlN1bk9TOio6KikKLSsJY2FzZSAiYC91 c3IvYmluL2FyY2ggLWtgIiBpbgotKwkgICAgU2VyaWVzKnxTNCopCi0rCQlVTkFNRV9SRUxFQVNF PWB1bmFtZSAtdmAKLSsJCTs7Ci0rCWVzYWMKLSsJIyBKYXBhbmVzZSBMYW5ndWFnZSB2ZXJzaW9u cyBoYXZlIGEgdmVyc2lvbiBudW1iZXIgbGlrZSBgNC4xLjMtSkwnLgotKwllY2hvIHNwYXJjLXN1 bi1zdW5vc2BlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLy0vXy8nYAotKwlleGl0IDs7 Ci0rICAgIHN1bjMqOlN1bk9TOio6KikKLSsJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVM RUFTRX0KLSsJZXhpdCA7OwotKyAgICBzdW4qOio6NC4yQlNEOiopCi0rCVVOQU1FX1JFTEVBU0U9 YChzZWQgMXEgL2V0Yy9tb3RkIHwgYXdrICd7cHJpbnQgc3Vic3RyKCQ1LDEsMyl9JykgMj4vZGV2 L251bGxgCi0rCXRlc3QgIngke1VOQU1FX1JFTEVBU0V9IiA9ICJ4IiAmJiBVTkFNRV9SRUxFQVNF PTMKLSsJY2FzZSAiYC9iaW4vYXJjaGAiIGluCi0rCSAgICBzdW4zKQotKwkJZWNobyBtNjhrLXN1 bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KLSsJCTs7Ci0rCSAgICBzdW40KQotKwkJZWNobyBzcGFy Yy1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9Ci0rCQk7OwotKwllc2FjCi0rCWV4aXQgOzsKLSsg ICAgYXVzaHA6U3VuT1M6KjoqKQotKwllY2hvIHNwYXJjLWF1c3BleC1zdW5vcyR7VU5BTUVfUkVM RUFTRX0KLSsJZXhpdCA7OwotKyAgICAjIFRoZSBzaXR1YXRpb24gZm9yIE1pTlQgaXMgYSBsaXR0 bGUgY29uZnVzaW5nLiAgVGhlIG1hY2hpbmUgbmFtZQotKyAgICAjIGNhbiBiZSB2aXJ0dWFsbHkg ZXZlcnl0aGluZyAoZXZlcnl0aGluZyB3aGljaCBpcyBub3QKLSsgICAgIyAiYXRhcmlzdCIgb3Ig ImF0YXJpc3RlIiBhdCBsZWFzdCBzaG91bGQgaGF2ZSBhIHByb2Nlc3NvcgotKyAgICAjID4gbTY4 MDAwKS4gIFRoZSBzeXN0ZW0gbmFtZSByYW5nZXMgZnJvbSAiTWlOVCIgb3ZlciAiRnJlZU1pTlQi Ci0rICAgICMgdG8gdGhlIGxvd2VyY2FzZSB2ZXJzaW9uICJtaW50IiAob3IgImZyZWVtaW50Iiku ICBGaW5hbGx5Ci0rICAgICMgdGhlIHN5c3RlbSBuYW1lICJUT1MiIGRlbm90ZXMgYSBzeXN0ZW0g d2hpY2ggaXMgYWN0dWFsbHkgbm90Ci0rICAgICMgTWlOVC4gIEJ1dCBNaU5UIGlzIGRvd253YXJk IGNvbXBhdGlibGUgdG8gVE9TLCBzbyB0aGlzIHNob3VsZAotKyAgICAjIGJlIG5vIHByb2JsZW0u Ci0rICAgIGF0YXJpc3RbZV06Kk1pTlQ6KjoqIHwgYXRhcmlzdFtlXToqbWludDoqOiogfCBhdGFy aXN0W2VdOipUT1M6KjoqKQotKyAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JF TEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgYXRhcmkqOipNaU5UOio6KiB8IGF0YXJpKjoqbWludDoq OiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQotKwllY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVf UkVMRUFTRX0KLSsgICAgICAgIGV4aXQgOzsKLSsgICAgKmZhbGNvbio6Kk1pTlQ6KjoqIHwgKmZh bGNvbio6Km1pbnQ6KjoqIHwgKmZhbGNvbio6KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02OGst YXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBtaWxhbio6Kk1pTlQ6 KjoqIHwgbWlsYW4qOiptaW50Oio6KiB8ICptaWxhbio6KlRPUzoqOiopCi0rICAgICAgICBlY2hv IG02OGstbWlsYW4tbWludCR7VU5BTUVfUkVMRUFTRX0KLSsgICAgICAgIGV4aXQgOzsKLSsgICAg aGFkZXMqOipNaU5UOio6KiB8IGhhZGVzKjoqbWludDoqOiogfCAqaGFkZXMqOipUT1M6KjoqKQot KyAgICAgICAgZWNobyBtNjhrLWhhZGVzLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0rICAgICAgICBl eGl0IDs7Ci0rICAgICo6Kk1pTlQ6KjoqIHwgKjoqbWludDoqOiogfCAqOipUT1M6KjoqKQotKyAg ICAgICAgZWNobyBtNjhrLXVua25vd24tbWludCR7VU5BTUVfUkVMRUFTRX0KLSsgICAgICAgIGV4 aXQgOzsKLSsgICAgbTY4azptYWNodGVuOio6KikKLSsJZWNobyBtNjhrLWFwcGxlLW1hY2h0ZW4k e1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgcG93ZXJwYzptYWNodGVuOio6KikKLSsJ ZWNobyBwb3dlcnBjLWFwcGxlLW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsg ICAgUklTQyo6TWFjaDoqOiopCi0rCWVjaG8gbWlwcy1kZWMtbWFjaF9ic2Q0LjMKLSsJZXhpdCA7 OwotKyAgICBSSVNDKjpVTFRSSVg6KjoqKQotKwllY2hvIG1pcHMtZGVjLXVsdHJpeCR7VU5BTUVf UkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBWQVgqOlVMVFJJWCo6KjoqKQotKwllY2hvIHZheC1k ZWMtdWx0cml4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIDIwMjA6Q0xJWDoqOiog fCAyNDMwOkNMSVg6KjoqKQotKwllY2hvIGNsaXBwZXItaW50ZXJncmFwaC1jbGl4JHtVTkFNRV9S RUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIG1pcHM6KjoqOlVNSVBTIHwgbWlwczoqOio6UklTQ29z KQotKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1t eS5jCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rI2luY2x1ZGUgPHN0ZGlvLmg+ICAvKiBmb3IgcHJp bnRmKCkgcHJvdG90eXBlICovCi0rCWludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKSB7 Ci0rI2Vsc2UKLSsJaW50IG1haW4gKGFyZ2MsIGFyZ3YpIGludCBhcmdjOyBjaGFyICphcmd2W107 IHsKLSsjZW5kaWYKLSsJI2lmIGRlZmluZWQgKGhvc3RfbWlwcykgJiYgZGVmaW5lZCAoTUlQU0VC KQotKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9TWVNWKQotKwkgIHByaW50ZiAoIm1pcHMtbWlwcy1y aXNjb3Mlc3N5c3ZcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKLSsJI2VuZGlmCi0rCSNpZiBkZWZp bmVkIChTWVNUWVBFX1NWUjQpCi0rCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzc3ZyNFxu IiwgYXJndlsxXSk7IGV4aXQgKDApOwotKwkjZW5kaWYKLSsJI2lmIGRlZmluZWQgKFNZU1RZUEVf QlNENDMpIHx8IGRlZmluZWQoU1lTVFlQRV9CU0QpCi0rCSAgcHJpbnRmICgibWlwcy1taXBzLXJp c2NvcyVzYnNkXG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7Ci0rCSNlbmRpZgotKwkjZW5kaWYKLSsJ ICBleGl0ICgtMSk7Ci0rCX0KLStFT0YKLSsJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15 LmMgJiYKLSsJICBkdW1teWFyZz1gZWNobyAiJHtVTkFNRV9SRUxFQVNFfSIgfCBzZWQgLW4gJ3Mv XChbMC05XSpcKS4qL1wxL3AnYCAmJgotKwkgIFNZU1RFTV9OQU1FPWAkZHVtbXkgJGR1bW15YXJn YCAmJgotKwkgICAgeyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9Ci0rCWVjaG8gbWlwcy1t aXBzLXJpc2NvcyR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBNb3Rvcm9sYTpQb3dl ck1BWF9PUzoqOiopCi0rCWVjaG8gcG93ZXJwYy1tb3Rvcm9sYS1wb3dlcm1heAotKwlleGl0IDs7 Ci0rICAgIE1vdG9yb2xhOio6NC4zOlBMOC0qKQotKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2Vy bWF4Ci0rCWV4aXQgOzsKLSsgICAgTmlnaHRfSGF3azoqOio6UG93ZXJNQVhfT1MgfCBTeW5lcmd5 OlBvd2VyTUFYX09TOio6KikKLSsJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcm1heAotKwlleGl0 IDs7Ci0rICAgIE5pZ2h0X0hhd2s6UG93ZXJfVU5JWDoqOiopCi0rCWVjaG8gcG93ZXJwYy1oYXJy aXMtcG93ZXJ1bml4Ci0rCWV4aXQgOzsKLSsgICAgbTg4azpDWC9VWDo3KjoqKQotKwllY2hvIG04 OGstaGFycmlzLWN4dXg3Ci0rCWV4aXQgOzsKLSsgICAgbTg4azoqOjQqOlI0KikKLSsJZWNobyBt ODhrLW1vdG9yb2xhLXN5c3Y0Ci0rCWV4aXQgOzsKLSsgICAgbTg4azoqOjMqOlIzKikKLSsJZWNo byBtODhrLW1vdG9yb2xhLXN5c3YzCi0rCWV4aXQgOzsKLSsgICAgQVZpaU9OOmRndXg6KjoqKQot KyAgICAgICAgIyBERy9VWCByZXR1cm5zIEFWaWlPTiBmb3IgYWxsIGFyY2hpdGVjdHVyZXMKLSsg ICAgICAgIFVOQU1FX1BST0NFU1NPUj1gL3Vzci9iaW4vdW5hbWUgLXBgCi0rCWlmIFsgJFVOQU1F X1BST0NFU1NPUiA9IG1jODgxMDAgXSB8fCBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4MTEwIF0K LSsJdGhlbgotKwkgICAgaWYgWyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSBtODhrZGd1 eGVsZnggXSB8fCBcCi0rCSAgICAgICBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IHgg XQotKwkgICAgdGhlbgotKwkJZWNobyBtODhrLWRnLWRndXgke1VOQU1FX1JFTEVBU0V9Ci0rCSAg ICBlbHNlCi0rCQllY2hvIG04OGstZGctZGd1eGJjcyR7VU5BTUVfUkVMRUFTRX0KLSsJICAgIGZp Ci0rCWVsc2UKLSsJICAgIGVjaG8gaTU4Ni1kZy1kZ3V4JHtVTkFNRV9SRUxFQVNFfQotKwlmaQot KyAJZXhpdCA7OwotKyAgICBNODgqOkRvbHBoaW5PUzoqOiopCSMgRG9scGhpbk9TIChTVlIzKQot KwllY2hvIG04OGstZG9scGhpbi1zeXN2MwotKwlleGl0IDs7Ci0rICAgIE04OCo6KjpSMyo6KikK LSsJIyBEZWx0YSA4OGsgc3lzdGVtIHJ1bm5pbmcgU1ZSMwotKwllY2hvIG04OGstbW90b3JvbGEt c3lzdjMKLSsJZXhpdCA7OwotKyAgICBYRDg4KjoqOio6KikgIyBUZWt0cm9uaXggWEQ4OCBzeXN0 ZW0gcnVubmluZyBVVGVrViAoU1ZSMykKLSsJZWNobyBtODhrLXRla3Ryb25peC1zeXN2MwotKwll eGl0IDs7Ci0rICAgIFRlazQzWzAtOV1bMC05XTpVVGVrOio6KikgIyBUZWt0cm9uaXggNDMwMCBz eXN0ZW0gcnVubmluZyBVVGVrIChCU0QpCi0rCWVjaG8gbTY4ay10ZWt0cm9uaXgtYnNkCi0rCWV4 aXQgOzsKLSsgICAgKjpJUklYKjoqOiopCi0rCWVjaG8gbWlwcy1zZ2ktaXJpeGBlY2hvICR7VU5B TUVfUkVMRUFTRX18c2VkIC1lICdzLy0vXy9nJ2AKLSsJZXhpdCA7OwotKyAgICA/Pz8/Pz8/PzpB SVg/OlsxMl0uMToyKSAgICMgQUlYIDIuMi4xIG9yIEFJWCAyLjEuMSBpcyBSVC9QQyBBSVguCi0r CWVjaG8gcm9tcC1pYm0tYWl4ICAgICAjIHVuYW1lIC1tIGdpdmVzIGFuIDggaGV4LWNvZGUgQ1BV IGlkCi0rCWV4aXQgOzsgICAgICAgICAgICAgICAjIE5vdGUgdGhhdDogZWNobyAiJ2B1bmFtZSAt c2AnIiBnaXZlcyAnQUlYICcKLSsgICAgaSo4NjpBSVg6KjoqKQotKwllY2hvIGkzODYtaWJtLWFp eAotKwlleGl0IDs7Ci0rICAgIGlhNjQ6QUlYOio6KikKLSsJaWYgWyAteCAvdXNyL2Jpbi9vc2xl dmVsIF0gOyB0aGVuCi0rCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAotKwllbHNlCi0rCQlJ Qk1fUkVWPSR7VU5BTUVfVkVSU0lPTn0uJHtVTkFNRV9SRUxFQVNFfQotKwlmaQotKwllY2hvICR7 VU5BTUVfTUFDSElORX0taWJtLWFpeCR7SUJNX1JFVn0KLSsJZXhpdCA7OwotKyAgICAqOkFJWDoy OjMpCi0rCWlmIGdyZXAgYm9zMzI1IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251bGwgMj4m MTsgdGhlbgotKwkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwkJc2VkICdzL14JCS8vJyA8PCBF T0YgPiRkdW1teS5jCi0rCQkjaW5jbHVkZSA8c3lzL3N5c3RlbWNmZy5oPgotKwotKwkJbWFpbigp Ci0rCQkJewotKwkJCWlmICghX19wb3dlcl9wYygpKQotKwkJCQlleGl0KDEpOwotKwkJCXB1dHMo InBvd2VycGMtaWJtLWFpeDMuMi41Iik7Ci0rCQkJZXhpdCgwKTsKLSsJCQl9Ci0rRU9GCi0rCQlp ZiAkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJiBTWVNURU1fTkFNRT1gJGR1bW15 YAotKwkJdGhlbgotKwkJCWVjaG8gIiRTWVNURU1fTkFNRSIKLSsJCWVsc2UKLSsJCQllY2hvIHJz NjAwMC1pYm0tYWl4My4yLjUKLSsJCWZpCi0rCWVsaWYgZ3JlcCBib3MzMjQgL3Vzci9pbmNsdWRl L3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCQllY2hvIHJzNjAwMC1pYm0tYWl4My4y LjQKLSsJZWxzZQotKwkJZWNobyByczYwMDAtaWJtLWFpeDMuMgotKwlmaQotKwlleGl0IDs7Ci0r ICAgICo6QUlYOio6WzQ1Nl0pCi0rCUlCTV9DUFVfSUQ9YC91c3Ivc2Jpbi9sc2RldiAtQyAtYyBw cm9jZXNzb3IgLVMgYXZhaWxhYmxlIHwgc2VkIDFxIHwgYXdrICd7IHByaW50ICQxIH0nYAotKwlp ZiAvdXNyL3NiaW4vbHNhdHRyIC1FbCAke0lCTV9DUFVfSUR9IHwgZ3JlcCAnIFBPV0VSJyA+L2Rl di9udWxsIDI+JjE7IHRoZW4KLSsJCUlCTV9BUkNIPXJzNjAwMAotKwllbHNlCi0rCQlJQk1fQVJD SD1wb3dlcnBjCi0rCWZpCi0rCWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhlbgotKwkJ SUJNX1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKLSsJZWxzZQotKwkJSUJNX1JFVj0ke1VOQU1FX1ZF UlNJT059LiR7VU5BTUVfUkVMRUFTRX0KLSsJZmkKLSsJZWNobyAke0lCTV9BUkNIfS1pYm0tYWl4 JHtJQk1fUkVWfQotKwlleGl0IDs7Ci0rICAgICo6QUlYOio6KikKLSsJZWNobyByczYwMDAtaWJt LWFpeAotKwlleGl0IDs7Ci0rICAgIGlibXJ0OjQuNEJTRDoqfHJvbXAtaWJtOkJTRDoqKQotKwll Y2hvIHJvbXAtaWJtLWJzZDQuNAotKwlleGl0IDs7Ci0rICAgIGlibXJ0OipCU0Q6Knxyb21wLWli bTpCU0Q6KikgICAgICAgICAgICAjIGNvdmVycyBSVC9QQyBCU0QgYW5kCi0rCWVjaG8gcm9tcC1p Ym0tYnNkJHtVTkFNRV9SRUxFQVNFfSAgICMgNC4zIHdpdGggdW5hbWUgYWRkZWQgdG8KLSsJZXhp dCA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByZXBvcnQ6IHJvbXAtaWJtIEJTRCA0 LjMKLSsgICAgKjpCT1NYOio6KikKLSsJZWNobyByczYwMDAtYnVsbC1ib3N4Ci0rCWV4aXQgOzsK LSsgICAgRFBYLzI/MDA6Qi5PLlMuOio6KikKLSsJZWNobyBtNjhrLWJ1bGwtc3lzdjMKLSsJZXhp dCA7OwotKyAgICA5MDAwL1szNF0/Pzo0LjNic2Q6MS4qOiopCi0rCWVjaG8gbTY4ay1ocC1ic2QK LSsJZXhpdCA7OwotKyAgICBocDMwMDo0LjRCU0Q6KjoqIHwgOTAwMC9bMzRdPz86NC4zYnNkOjIu KjoqKQotKwllY2hvIG02OGstaHAtYnNkNC40Ci0rCWV4aXQgOzsKLSsgICAgOTAwMC9bMzQ2Nzhd Pz86SFAtVVg6KjoqKQotKwlIUFVYX1JFVj1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAn cy9bXi5dKi5bMEJdKi8vJ2AKLSsJY2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KLSsJICAgIDkw MDAvMzE/ICkgICAgICAgICAgICBIUF9BUkNIPW02ODAwMCA7OwotKwkgICAgOTAwMC9bMzRdPz8g KSAgICAgICAgIEhQX0FSQ0g9bTY4ayA7OwotKwkgICAgOTAwMC9bNjc4XVswLTldWzAtOV0pCi0r CQlpZiBbIC14IC91c3IvYmluL2dldGNvbmYgXTsgdGhlbgotKwkJICAgIHNjX2NwdV92ZXJzaW9u PWAvdXNyL2Jpbi9nZXRjb25mIFNDX0NQVV9WRVJTSU9OIDI+L2Rldi9udWxsYAotKyAgICAgICAg ICAgICAgICAgICAgc2Nfa2VybmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VSTkVMX0JJ VFMgMj4vZGV2L251bGxgCi0rICAgICAgICAgICAgICAgICAgICBjYXNlICIke3NjX2NwdV92ZXJz aW9ufSIgaW4KLSsgICAgICAgICAgICAgICAgICAgICAgNTIzKSBIUF9BUkNIPSJocHBhMS4wIiA7 OyAjIENQVV9QQV9SSVNDMV8wCi0rICAgICAgICAgICAgICAgICAgICAgIDUyOCkgSFBfQVJDSD0i aHBwYTEuMSIgOzsgIyBDUFVfUEFfUklTQzFfMQotKyAgICAgICAgICAgICAgICAgICAgICA1MzIp ICAgICAgICAgICAgICAgICAgICAgICMgQ1BVX1BBX1JJU0MyXzAKLSsgICAgICAgICAgICAgICAg ICAgICAgICBjYXNlICIke3NjX2tlcm5lbF9iaXRzfSIgaW4KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgIDMyKSBIUF9BUkNIPSJocHBhMi4wbiIgOzsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgIDY0KSBIUF9BUkNIPSJocHBhMi4wdyIgOzsKLSsJCQkgICcnKSBIUF9BUkNIPSJocHBhMi4w IiA7OyAgICMgSFAtVVggMTAuMjAKLSsgICAgICAgICAgICAgICAgICAgICAgICBlc2FjIDs7Ci0r ICAgICAgICAgICAgICAgICAgICBlc2FjCi0rCQlmaQotKwkJaWYgWyAiJHtIUF9BUkNIfSIgPSAi IiBdOyB0aGVuCi0rCQkgICAgZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwkJICAgIHNlZCAncy9e ICAgICAgICAgICAgICAvLycgPDwgRU9GID4kZHVtbXkuYwotKwotKyAgICAgICAgICAgICAgI2Rl ZmluZSBfSFBVWF9TT1VSQ0UKLSsgICAgICAgICAgICAgICNpbmNsdWRlIDxzdGRsaWIuaD4KLSsg ICAgICAgICAgICAgICNpbmNsdWRlIDx1bmlzdGQuaD4KLSsKLSsgICAgICAgICAgICAgIGludCBt YWluICgpCi0rICAgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfU0Nf S0VSTkVMX0JJVFMpCi0rICAgICAgICAgICAgICAgICAgbG9uZyBiaXRzID0gc3lzY29uZihfU0Nf S0VSTkVMX0JJVFMpOwotKyAgICAgICAgICAgICAgI2VuZGlmCi0rICAgICAgICAgICAgICAgICAg bG9uZyBjcHUgID0gc3lzY29uZiAoX1NDX0NQVV9WRVJTSU9OKTsKLSsKLSsgICAgICAgICAgICAg ICAgICBzd2l0Y2ggKGNwdSkKLSsgICAgICAgICAgICAgIAl7Ci0rICAgICAgICAgICAgICAJY2Fz ZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7Ci0rICAgICAgICAgICAg ICAJY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEiKTsgYnJlYWs7Ci0rICAgICAg ICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzJfMDoKLSsgICAgICAgICAgICAgICNpZiBkZWZpbmVk KF9TQ19LRVJORUxfQklUUykKLSsgICAgICAgICAgICAgIAkgICAgc3dpdGNoIChiaXRzKQotKyAg ICAgICAgICAgICAgCQl7Ci0rICAgICAgICAgICAgICAJCWNhc2UgNjQ6IHB1dHMgKCJocHBhMi4w dyIpOyBicmVhazsKLSsgICAgICAgICAgICAgIAkJY2FzZSAzMjogcHV0cyAoImhwcGEyLjBuIik7 IGJyZWFrOwotKyAgICAgICAgICAgICAgCQlkZWZhdWx0OiBwdXRzICgiaHBwYTIuMCIpOyBicmVh azsKLSsgICAgICAgICAgICAgIAkJfSBicmVhazsKLSsgICAgICAgICAgICAgICNlbHNlICAvKiAh ZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpICovCi0rICAgICAgICAgICAgICAJICAgIHB1dHMgKCJo cHBhMi4wIik7IGJyZWFrOwotKyAgICAgICAgICAgICAgI2VuZGlmCi0rICAgICAgICAgICAgICAJ ZGVmYXVsdDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7Ci0rICAgICAgICAgICAgICAJfQotKyAg ICAgICAgICAgICAgICAgIGV4aXQgKDApOwotKyAgICAgICAgICAgICAgfQotK0VPRgotKwkJICAg IChDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rldi9udWxsKSAm JiBIUF9BUkNIPWAkZHVtbXlgCi0rCQkgICAgdGVzdCAteiAiJEhQX0FSQ0giICYmIEhQX0FSQ0g9 aHBwYQotKwkJZmkgOzsKLSsJZXNhYwotKwlpZiBbICR7SFBfQVJDSH0gPSAiaHBwYTIuMHciIF0K LSsJdGhlbgotKwkgICAgZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwotKwkgICAgIyBocHBhMi4w dy1ocC1ocHV4KiBoYXMgYSA2NC1iaXQga2VybmVsIGFuZCBhIGNvbXBpbGVyIGdlbmVyYXRpbmcK LSsJICAgICMgMzItYml0IGNvZGUuICBocHBhNjQtaHAtaHB1eCogaGFzIHRoZSBzYW1lIGtlcm5l bCBhbmQgYSBjb21waWxlcgotKwkgICAgIyBnZW5lcmF0aW5nIDY0LWJpdCBjb2RlLiAgR05VIGFu ZCBIUCB1c2UgZGlmZmVyZW50IG5vbWVuY2xhdHVyZToKLSsJICAgICMKLSsJICAgICMgJCBDQ19G T1JfQlVJTEQ9Y2MgLi9jb25maWcuZ3Vlc3MKLSsJICAgICMgPT4gaHBwYTIuMHctaHAtaHB1eDEx LjIzCi0rCSAgICAjICQgQ0NfRk9SX0JVSUxEPSJjYyArREEyLjB3IiAuL2NvbmZpZy5ndWVzcwot KwkgICAgIyA9PiBocHBhNjQtaHAtaHB1eDExLjIzCi0rCi0rCSAgICBpZiBlY2hvIF9fTFA2NF9f IHwgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8Ci0rCQlncmVwIC1x IF9fTFA2NF9fCi0rCSAgICB0aGVuCi0rCQlIUF9BUkNIPSJocHBhMi4wdyIKLSsJICAgIGVsc2UK LSsJCUhQX0FSQ0g9ImhwcGE2NCIKLSsJICAgIGZpCi0rCWZpCi0rCWVjaG8gJHtIUF9BUkNIfS1o cC1ocHV4JHtIUFVYX1JFVn0KLSsJZXhpdCA7OwotKyAgICBpYTY0OkhQLVVYOio6KikKLSsJSFBV WF9SRVY9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydgCi0r CWVjaG8gaWE2NC1ocC1ocHV4JHtIUFVYX1JFVn0KLSsJZXhpdCA7OwotKyAgICAzMDUwKjpISS1V WDoqOiopCi0rCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJc2VkICdzL14JLy8nIDw8IEVPRiA+ JGR1bW15LmMKLSsJI2luY2x1ZGUgPHVuaXN0ZC5oPgotKwlpbnQKLSsJbWFpbiAoKQotKwl7Ci0r CSAgbG9uZyBjcHUgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOwotKwkgIC8qIFRoZSBvcmRl ciBtYXR0ZXJzLCBiZWNhdXNlIENQVV9JU19IUF9NQzY4SyBlcnJvbmVvdXNseSByZXR1cm5zCi0r CSAgICAgdHJ1ZSBmb3IgQ1BVX1BBX1JJU0MxXzAuICBDUFVfSVNfUEFfUklTQyByZXR1cm5zIGNv cnJlY3QKLSsJICAgICByZXN1bHRzLCBob3dldmVyLiAgKi8KLSsJICBpZiAoQ1BVX0lTX1BBX1JJ U0MgKGNwdSkpCi0rCSAgICB7Ci0rCSAgICAgIHN3aXRjaCAoY3B1KQotKwkJewotKwkJICBjYXNl IENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7 Ci0rCQkgIGNhc2UgQ1BVX1BBX1JJU0MxXzE6IHB1dHMgKCJocHBhMS4xLWhpdGFjaGktaGl1eHdl MiIpOyBicmVhazsKLSsJCSAgY2FzZSBDUFVfUEFfUklTQzJfMDogcHV0cyAoImhwcGEyLjAtaGl0 YWNoaS1oaXV4d2UyIik7IGJyZWFrOwotKwkJICBkZWZhdWx0OiBwdXRzICgiaHBwYS1oaXRhY2hp LWhpdXh3ZTIiKTsgYnJlYWs7Ci0rCQl9Ci0rCSAgICB9Ci0rCSAgZWxzZSBpZiAoQ1BVX0lTX0hQ X01DNjhLIChjcHUpKQotKwkgICAgcHV0cyAoIm02OGstaGl0YWNoaS1oaXV4d2UyIik7Ci0rCSAg ZWxzZSBwdXRzICgidW5rbm93bi1oaXRhY2hpLWhpdXh3ZTIiKTsKLSsJICBleGl0ICgwKTsKLSsJ fQotK0VPRgotKwkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJiBTWVNURU1fTkFN RT1gJGR1bW15YCAmJgotKwkJeyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9Ci0rCWVjaG8g dW5rbm93bi1oaXRhY2hpLWhpdXh3ZTIKLSsJZXhpdCA7OwotKyAgICA5MDAwLzc/Pzo0LjNic2Q6 KjoqIHwgOTAwMC84P1s3OV06NC4zYnNkOio6KiApCi0rCWVjaG8gaHBwYTEuMS1ocC1ic2QKLSsJ ZXhpdCA7OwotKyAgICA5MDAwLzg/Pzo0LjNic2Q6KjoqKQotKwllY2hvIGhwcGExLjAtaHAtYnNk Ci0rCWV4aXQgOzsKLSsgICAgKjk/Pyo6TVBFL2lYOio6KiB8ICozMDAwKjpNUEUvaVg6KjoqKQot KwllY2hvIGhwcGExLjAtaHAtbXBlaXgKLSsJZXhpdCA7OwotKyAgICBocDc/PzpPU0YxOio6KiB8 IGhwOD9bNzldOk9TRjE6KjoqICkKLSsJZWNobyBocHBhMS4xLWhwLW9zZgotKwlleGl0IDs7Ci0r ICAgIGhwOD8/Ok9TRjE6KjoqKQotKwllY2hvIGhwcGExLjAtaHAtb3NmCi0rCWV4aXQgOzsKLSsg ICAgaSo4NjpPU0YxOio6KikKLSsJaWYgWyAteCAvdXNyL3NiaW4vc3lzdmVyc2lvbiBdIDsgdGhl bgotKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tb3NmMW1rCi0rCWVsc2UKLSsJ ICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW9zZjEKLSsJZmkKLSsJZXhpdCA7Owot KyAgICBwYXJpc2MqOkxpdGVzKjoqOiopCi0rCWVjaG8gaHBwYTEuMS1ocC1saXRlcwotKwlleGl0 IDs7Ci0rICAgIEMxKjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzEqOiopCi0rCWVj aG8gYzEtY29udmV4LWJzZAotKyAgICAgICAgZXhpdCA7OwotKyAgICBDMio6Q29udmV4T1M6Kjoq IHwgY29udmV4OkNvbnZleE9TOkMyKjoqKQotKwlpZiBnZXRzeXNpbmZvIC1mIHNjYWxhcl9hY2MK LSsJdGhlbiBlY2hvIGMzMi1jb252ZXgtYnNkCi0rCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCi0r CWZpCi0rICAgICAgICBleGl0IDs7Ci0rICAgIEMzNCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNv bnZleE9TOkMzNCo6KikKLSsJZWNobyBjMzQtY29udmV4LWJzZAotKyAgICAgICAgZXhpdCA7Owot KyAgICBDMzgqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzgqOiopCi0rCWVjaG8g YzM4LWNvbnZleC1ic2QKLSsgICAgICAgIGV4aXQgOzsKLSsgICAgQzQqOkNvbnZleE9TOio6KiB8 IGNvbnZleDpDb252ZXhPUzpDNCo6KikKLSsJZWNobyBjNC1jb252ZXgtYnNkCi0rICAgICAgICBl eGl0IDs7Ci0rICAgIENSQVkqWS1NUDoqOio6KikKLSsJZWNobyB5bXAtY3JheS11bmljb3Mke1VO QU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKLSsJZXhpdCA7OwotKyAgICBD UkFZKltBLVpdOTA6KjoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1jcmF5LXVuaWNvcyR7 VU5BTUVfUkVMRUFTRX0gXAotKwl8IHNlZCAtZSAncy9DUkFZLipcKFtBLVpdOTBcKS9cMS8nIFwK LSsJICAgICAgLWUgeS9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi9hYmNkZWZnaGlqa2xtbm9w cXJzdHV2d3h5ei8gXAotKwkgICAgICAtZSAncy9cLlteLl0qJC8uWC8nCi0rCWV4aXQgOzsKLSsg ICAgQ1JBWSpUUzoqOio6KikKLSsJZWNobyB0OTAtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9 IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKLSsJZXhpdCA7OwotKyAgICBDUkFZKlQzRToqOio6 KikKLSsJZWNobyBhbHBoYWV2NS1jcmF5LXVuaWNvc21rJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAt ZSAncy9cLlteLl0qJC8uWC8nCi0rCWV4aXQgOzsKLSsgICAgQ1JBWSpTVjE6KjoqOiopCi0rCWVj aG8gc3YxLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8u WC8nCi0rCWV4aXQgOzsKLSsgICAgKjpVTklDT1MvbXA6KjoqKQotKwllY2hvIGNyYXludi1jcmF5 LXVuaWNvc21wJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0rCWV4 aXQgOzsKLSsgICAgRjMwWzAxXTpVTklYX1N5c3RlbV9WOio6KiB8IEY3MDA6VU5JWF9TeXN0ZW1f VjoqOiopCi0rCUZVSklUU1VfUFJPQz1gdW5hbWUgLW0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFS U1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCi0rICAgICAgICBGVUpJVFNV X1NZUz1gdW5hbWUgLXAgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZn aGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvXC8vLydgCi0rICAgICAgICBGVUpJVFNV X1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzLyAvXy8nYAotKyAgICAgICAg ZWNobyAiJHtGVUpJVFNVX1BST0N9LWZ1aml0c3UtJHtGVUpJVFNVX1NZU30ke0ZVSklUU1VfUkVM fSIKLSsgICAgICAgIGV4aXQgOzsKLSsgICAgNTAwMDpVTklYX1N5c3RlbV9WOjQuKjoqKQotKyAg ICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZX WFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAotKyAg ICAgICAgRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHRyICdBQkNERUZHSElK S0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAn cy8gL18vJ2AKLSsgICAgICAgIGVjaG8gInNwYXJjLWZ1aml0c3UtJHtGVUpJVFNVX1NZU30ke0ZV SklUU1VfUkVMfSIKLSsJZXhpdCA7OwotKyAgICBpKjg2OkJTRC8zODY6KjoqIHwgaSo4NjpCU0Qv T1M6KjoqIHwgKjpBc2NlbmRcIEVtYmVkZGVkL09TOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJ TkV9LXBjLWJzZGkke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgc3BhcmMqOkJTRC9P UzoqOiopCi0rCWVjaG8gc3BhcmMtdW5rbm93bi1ic2RpJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0 IDs7Ci0rICAgICo6QlNEL09TOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t YnNkaSR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOkZyZWVCU0Q6KjoqKQotKwlj YXNlICR7VU5BTUVfTUFDSElORX0gaW4KLSsJICAgIHBjOTgpCi0rCQllY2hvIGkzODYtdW5rbm93 bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7Owot KwkgICAgYW1kNjQpCi0rCQllY2hvIHg4Nl82NC11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1F X1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7Ci0rCSAgICAqKQotKwkJZWNobyAke1VO QU1FX01BQ0hJTkV9LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1l ICdzL1stKF0uKi8vJ2AgOzsKLSsJZXNhYwotKwlleGl0IDs7Ci0rICAgIGkqOkNZR1dJTio6KikK LSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWN5Z3dpbgotKwlleGl0IDs7Ci0rICAgICo6TUlO R1cqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1taW5ndzMyCi0rCWV4aXQgOzsKLSsg ICAgaSo6d2luZG93czMyKjoqKQotKyAgICAJIyB1bmFtZSAtbSBpbmNsdWRlcyAiLXBjIiBvbiB0 aGlzIHN5c3RlbS4KLSsgICAgCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1taW5ndzMyCi0rCWV4aXQg OzsKLSsgICAgaSo6UFcqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1wdzMyCi0rCWV4 aXQgOzsKLSsgICAgKjpJbnRlcml4KjoqKQotKyAgICAJY2FzZSAke1VOQU1FX01BQ0hJTkV9IGlu Ci0rCSAgICB4ODYpCi0rCQllY2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KLSsJ CWV4aXQgOzsKLSsJICAgIGF1dGhlbnRpY2FtZCB8IGdlbnVpbmVpbnRlbCB8IEVNNjRUKQotKwkJ ZWNobyB4ODZfNjQtdW5rbm93bi1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQotKwkJZXhpdCA7Owot KwkgICAgSUE2NCkKLSsJCWVjaG8gaWE2NC11bmtub3duLWludGVyaXgke1VOQU1FX1JFTEVBU0V9 Ci0rCQlleGl0IDs7Ci0rCWVzYWMgOzsKLSsgICAgWzM0NV04NjpXaW5kb3dzXzk1OiogfCBbMzQ1 XTg2OldpbmRvd3NfOTg6KiB8IFszNDVdODY6V2luZG93c19OVDoqKQotKwllY2hvIGkke1VOQU1F X01BQ0hJTkV9LXBjLW1rcwotKwlleGl0IDs7Ci0rICAgIDg2NjQ6V2luZG93c19OVDoqKQotKwll Y2hvIHg4Nl82NC1wYy1ta3MKLSsJZXhpdCA7OwotKyAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVu dGl1bSo6V2luZG93c19OVCo6KikKLSsJIyBIb3cgZG8gd2Uga25vdyBpdCdzIEludGVyaXggcmF0 aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vic3lzdGVtPwotKwkjIEl0IGFsc28gY29uZmxp Y3RzIHdpdGggcHJlLTIuMCB2ZXJzaW9ucyBvZiBBVCZUIFVXSU4uIFNob3VsZCB3ZQotKwkjIFVO QU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/ Ci0rCWVjaG8gaTU4Ni1wYy1pbnRlcml4Ci0rCWV4aXQgOzsKLSsgICAgaSo6VVdJTio6KikKLSsJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXV3aW4KLSsJZXhpdCA7OwotKyAgICBhbWQ2NDpDWUdX SU4qOio6KiB8IHg4Nl82NDpDWUdXSU4qOio6KikKLSsJZWNobyB4ODZfNjQtdW5rbm93bi1jeWd3 aW4KLSsJZXhpdCA7OwotKyAgICBwKjpDWUdXSU4qOiopCi0rCWVjaG8gcG93ZXJwY2xlLXVua25v d24tY3lnd2luCi0rCWV4aXQgOzsKLSsgICAgcHJlcCo6U3VuT1M6NS4qOiopCi0rCWVjaG8gcG93 ZXJwY2xlLXVua25vd24tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9b Xi5dKi8vJ2AKLSsJZXhpdCA7OwotKyAgICAqOkdOVToqOiopCi0rCSMgdGhlIEdOVSBzeXN0ZW0K LSsJZWNobyBgZWNobyAke1VOQU1FX01BQ0hJTkV9fHNlZCAtZSAncyxbLS9dLiokLCwnYC11bmtu b3duLWdudWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLC8uKiQsLCdgCi0rCWV4aXQg OzsKLSsgICAgKjpHTlUvKjoqOiopCi0rCSMgb3RoZXIgc3lzdGVtcyB3aXRoIEdOVSBsaWJjIGFu ZCB1c2VybGFuZAotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1gZWNobyAke1VOQU1F X1NZU1RFTX0gfCBzZWQgJ3MsXlteL10qLywsJyB8IHRyICdbQS1aXScgJ1thLXpdJ2BgZWNobyAk e1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgLWdudQotKwlleGl0IDs7Ci0rICAg IGkqODY6TWluaXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKLSsJZXhp dCA7OwotKyAgICBhbHBoYTpMaW51eDoqOiopCi0rCWNhc2UgYHNlZCAtbiAnL15jcHUgbW9kZWwv cy9eLio6IFwoLipcKS9cMS9wJyA8IC9wcm9jL2NwdWluZm9gIGluCi0rCSAgRVY1KSAgIFVOQU1F X01BQ0hJTkU9YWxwaGFldjUgOzsKLSsJICBFVjU2KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NTYg OzsKLSsJICBQQ0E1NikgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7Ci0rCSAgUENBNTcpIFVO QU1FX01BQ0hJTkU9YWxwaGFwY2E1NiA7OwotKwkgIEVWNikgICBVTkFNRV9NQUNISU5FPWFscGhh ZXY2IDs7Ci0rCSAgRVY2NykgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjY3IDs7Ci0rCSAgRVY2OCop IFVOQU1FX01BQ0hJTkU9YWxwaGFldjY4IDs7Ci0rICAgICAgICBlc2FjCi0rCW9iamR1bXAgLS1w cml2YXRlLWhlYWRlcnMgL2Jpbi9zaCB8IGdyZXAgLXEgbGQuc28uMQotKwlpZiB0ZXN0ICIkPyIg PSAwIDsgdGhlbiBMSUJDPSJsaWJjMSIgOyBlbHNlIExJQkM9IiIgOyBmaQotKwllY2hvICR7VU5B TUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUke0xJQkN9Ci0rCWV4aXQgOzsKLSsgICAgYXJt KjpMaW51eDoqOiopCi0rCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJaWYgZWNobyBfX0FSTV9F QUJJX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAotKwkgICAgfCBncmVwIC1x IF9fQVJNX0VBQklfXwotKwl0aGVuCi0rCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93 bi1saW51eC1nbnUKLSsJZWxzZQotKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t bGludXgtZ251ZWFiaQotKwlmaQotKwlleGl0IDs7Ci0rICAgIGF2cjMyKjpMaW51eDoqOiopCi0r CWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAg IGNyaXM6TGludXg6KjoqKQotKwllY2hvIGNyaXMtYXhpcy1saW51eC1nbnUKLSsJZXhpdCA7Owot KyAgICBjcmlzdjMyOkxpbnV4Oio6KikKLSsJZWNobyBjcmlzdjMyLWF4aXMtbGludXgtZ251Ci0r CWV4aXQgOzsKLSsgICAgZnJ2OkxpbnV4Oio6KikKLSsgICAgCWVjaG8gZnJ2LXVua25vd24tbGlu dXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpMaW51eDoqOiopCi0rCUxJQkM9Z251Ci0rCWV2 YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsJ I2lmZGVmIF9fZGlldGxpYmNfXwotKwlMSUJDPWRpZXRsaWJjCi0rCSNlbmRpZgotK0VPRgotKwll dmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCAnXkxJQkMn YAotKwllY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LSR7TElCQ30iCi0rCWV4aXQgOzsK LSsgICAgaWE2NDpMaW51eDoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxp bnV4LWdudQotKwlleGl0IDs7Ci0rICAgIG0zMnIqOkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1F X01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgbTY4KjpMaW51eDoq OiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7 Ci0rICAgIG1pcHM6TGludXg6KjoqIHwgbWlwczY0OkxpbnV4Oio6KikKLSsJZXZhbCAkc2V0X2Nj X2Zvcl9idWlsZAotKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYwotKwkjdW5kZWYgQ1BV Ci0rCSN1bmRlZiAke1VOQU1FX01BQ0hJTkV9Ci0rCSN1bmRlZiAke1VOQU1FX01BQ0hJTkV9ZWwK LSsJI2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5l ZChfTUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKLSsJQ1BVPSR7VU5BTUVfTUFDSElORX1lbAot KwkjZWxzZQotKwkjaWYgZGVmaW5lZChfX01JUFNFQl9fKSB8fCBkZWZpbmVkKF9fTUlQU0VCKSB8 fCBkZWZpbmVkKF9NSVBTRUIpIHx8IGRlZmluZWQoTUlQU0VCKQotKwlDUFU9JHtVTkFNRV9NQUNI SU5FfQotKwkjZWxzZQotKwlDUFU9Ci0rCSNlbmRpZgotKwkjZW5kaWYKLStFT0YKLSsJZXZhbCBg JENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgJ15DUFUnYAotKwl0 ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251Ijsg ZXhpdDsgfQotKwk7OwotKyAgICBvcjMyOkxpbnV4Oio6KikKLSsJZWNobyBvcjMyLXVua25vd24t bGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgcGFkcmU6TGludXg6KjoqKQotKwllY2hvIHNwYXJj LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgcGFyaXNjNjQ6TGludXg6KjoqIHwg aHBwYTY0OkxpbnV4Oio6KikKLSsJZWNobyBocHBhNjQtdW5rbm93bi1saW51eC1nbnUKLSsJZXhp dCA7OwotKyAgICBwYXJpc2M6TGludXg6KjoqIHwgaHBwYTpMaW51eDoqOiopCi0rCSMgTG9vayBm b3IgQ1BVIGxldmVsCi0rCWNhc2UgYGdyZXAgJ15jcHVbXmEtel0qOicgL3Byb2MvY3B1aW5mbyAy Pi9kZXYvbnVsbCB8IGN1dCAtZCcgJyAtZjJgIGluCi0rCSAgUEE3KikgZWNobyBocHBhMS4xLXVu a25vd24tbGludXgtZ251IDs7Ci0rCSAgUEE4KikgZWNobyBocHBhMi4wLXVua25vd24tbGludXgt Z251IDs7Ci0rCSAgKikgICAgZWNobyBocHBhLXVua25vd24tbGludXgtZ251IDs7Ci0rCWVzYWMK LSsJZXhpdCA7OwotKyAgICBwcGM2NDpMaW51eDoqOiopCi0rCWVjaG8gcG93ZXJwYzY0LXVua25v d24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgcHBjOkxpbnV4Oio6KikKLSsJZWNobyBwb3dl cnBjLXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgczM5MDpMaW51eDoqOiogfCBz MzkweDpMaW51eDoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tbGludXgKLSsJZXhp dCA7OwotKyAgICBzaDY0KjpMaW51eDoqOiopCi0rICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBzaCo6TGludXg6KjoqKQotKwllY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBzcGFy YzpMaW51eDoqOiogfCBzcGFyYzY0OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgdmF4OkxpbnV4Oio6KikKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LWRlYy1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICB4ODZfNjQ6 TGludXg6KjoqKQotKwllY2hvIHg4Nl82NC11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0r ICAgIHh0ZW5zYSo6TGludXg6KjoqKQotKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpEWU5JWC9wdHg6NCo6KikKLSsJIyBw dHggNC4wIGRvZXMgdW5hbWUgLXMgY29ycmVjdGx5LCB3aXRoIERZTklYL3B0eCBpbiB0aGVyZS4K LSsJIyBlYXJsaWVyIHZlcnNpb25zIGFyZSBtZXNzZWQgdXAgYW5kIHB1dCB0aGUgbm9kZW5hbWUg aW4gYm90aAotKwkjIHN5c25hbWUgYW5kIG5vZGVuYW1lLgotKwllY2hvIGkzODYtc2VxdWVudC1z eXN2NAotKwlleGl0IDs7Ci0rICAgIGkqODY6VU5JWF9TVjo0LjJNUDoyLiopCi0rICAgICAgICAj IFVuaXh3YXJlIGlzIGFuIG9mZnNob290IG9mIFNWUjQsIGJ1dCBpdCBoYXMgaXRzIG93biB2ZXJz aW9uCi0rICAgICAgICAjIG51bWJlciBzZXJpZXMgc3RhcnRpbmcgd2l0aCAyLi4uCi0rICAgICAg ICAjIEkgYW0gbm90IHBvc2l0aXZlIHRoYXQgb3RoZXIgU1ZSNCBzeXN0ZW1zIHdvbid0IG1hdGNo IHRoaXMsCi0rCSMgSSBqdXN0IGhhdmUgdG8gaG9wZS4gIC0tIHJtcy4KLSsgICAgICAgICMgVXNl IHN5c3Y0LjJ1dy4uLiBzbyB0aGF0IHN5c3Y0KiBtYXRjaGVzIGl0LgotKwllY2hvICR7VU5BTUVf TUFDSElORX0tcGMtc3lzdjQuMnV3JHtVTkFNRV9WRVJTSU9OfQotKwlleGl0IDs7Ci0rICAgIGkq ODY6T1MvMjoqOiopCi0rCSMgSWYgd2Ugd2VyZSBhYmxlIHRvIGZpbmQgYHVuYW1lJywgdGhlbiBF TVggVW5peCBjb21wYXRpYmlsaXR5Ci0rCSMgaXMgcHJvYmFibHkgaW5zdGFsbGVkLgotKwllY2hv ICR7VU5BTUVfTUFDSElORX0tcGMtb3MyLWVteAotKwlleGl0IDs7Ci0rICAgIGkqODY6WFRTLTMw MDoqOlNUT1ApCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN0b3AKLSsJZXhpdCA7 OwotKyAgICBpKjg2OmF0aGVvczoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3du LWF0aGVvcwotKwlleGl0IDs7Ci0rICAgIGkqODY6c3lsbGFibGU6KjoqKQotKwllY2hvICR7VU5B TUVfTUFDSElORX0tcGMtc3lsbGFibGUKLSsJZXhpdCA7OwotKyAgICBpKjg2Okx5bnhPUzoyLio6 KiB8IGkqODY6THlueE9TOjMuWzAxXSo6KiB8IGkqODY6THlueE9TOjQuWzAyXSo6KikKLSsJZWNo byBpMzg2LXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIGkq ODY6KkRPUzoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1tc2Rvc2RqZ3BwCi0rCWV4 aXQgOzsKLSsgICAgaSo4NjoqOjQuKjoqIHwgaSo4NjpTWVNURU1fVjo0Lio6KikKLSsJVU5BTUVf UkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgJ3MvXC9NUCQvLydgCi0rCWlmIGdyZXAg Tm92ZWxsIC91c3IvaW5jbHVkZS9saW5rLmggPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgot KwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVuaXZlbC1zeXN2JHtVTkFNRV9SRUx9Ci0rCWVsc2UK LSsJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2JHtVTkFNRV9SRUx9Ci0rCWZpCi0rCWV4 aXQgOzsKLSsgICAgaSo4NjoqOjU6WzY3OF0qKQotKyAgICAJIyBVbml4V2FyZSA3LngsIE9wZW5V TklYIGFuZCBPcGVuU2VydmVyIDYuCi0rCWNhc2UgYC9iaW4vdW5hbWUgLVggfCBncmVwICJeTWFj aGluZSJgIGluCi0rCSAgICAqNDg2KikJICAgICBVTkFNRV9NQUNISU5FPWk0ODYgOzsKLSsJICAg ICpQZW50aXVtKQkgICAgIFVOQU1FX01BQ0hJTkU9aTU4NiA7OwotKwkgICAgKlBlbnQqfCpDZWxl cm9uKSBVTkFNRV9NQUNISU5FPWk2ODYgOzsKLSsJZXNhYwotKwllY2hvICR7VU5BTUVfTUFDSElO RX0tdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfSR7VU5BTUVfU1lTVEVNfSR7VU5BTUVfVkVS U0lPTn0KLSsJZXhpdCA7OwotKyAgICBpKjg2Oio6My4yOiopCi0rCWlmIHRlc3QgLWYgL3Vzci9v cHRpb25zL2NiLm5hbWU7IHRoZW4KLSsJCVVOQU1FX1JFTD1gc2VkIC1uICdzLy4qVmVyc2lvbiAv L3AnIDwvdXNyL29wdGlvbnMvY2IubmFtZWAKLSsJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1p c2MkVU5BTUVfUkVMCi0rCWVsaWYgL2Jpbi91bmFtZSAtWCAyPi9kZXYvbnVsbCA+L2Rldi9udWxs IDsgdGhlbgotKwkJVU5BTUVfUkVMPWAoL2Jpbi91bmFtZSAtWHxncmVwIFJlbGVhc2V8c2VkIC1l ICdzLy4qPSAvLycpYAotKwkJKC9iaW4vdW5hbWUgLVh8Z3JlcCBpODA0ODYgPi9kZXYvbnVsbCkg JiYgVU5BTUVfTUFDSElORT1pNDg2Ci0rCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4q UGVudGl1bScgPi9kZXYvbnVsbCkgXAotKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTU4NgotKwkJKC9i aW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnQgKklJJyA+L2Rldi9udWxsKSBcCi0rCQkJ JiYgVU5BTUVfTUFDSElORT1pNjg2Ci0rCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4q UGVudGl1bSBQcm8nID4vZGV2L251bGwpIFwKLSsJCQkmJiBVTkFNRV9NQUNISU5FPWk2ODYKLSsJ CWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zY28kVU5BTUVfUkVMCi0rCWVsc2UKLSsJCWVjaG8g JHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2MzIKLSsJZmkKLSsJZXhpdCA7OwotKyAgICBwYzoqOio6 KikKLSsJIyBMZWZ0IGhlcmUgZm9yIGNvbXBhdGliaWxpdHk6Ci0rICAgICAgICAjIHVuYW1lIC1t IHByaW50cyBmb3IgREpHUFAgYWx3YXlzICdwYycsIGJ1dCBpdCBwcmludHMgbm90aGluZyBhYm91 dAotKyAgICAgICAgIyB0aGUgcHJvY2Vzc29yLCBzbyB3ZSBwbGF5IHNhZmUgYnkgYXNzdW1pbmcg aTU4Ni4KLSsJIyBOb3RlOiB3aGF0ZXZlciB0aGlzIGlzLCBpdCBNVVNUIGJlIHRoZSBzYW1lIGFz IHdoYXQgY29uZmlnLnN1YgotKwkjIHByaW50cyBmb3IgdGhlICJkamdwcCIgaG9zdCwgb3IgZWxz ZSBHREIgY29uZmlndXJ5IHdpbGwgZGVjaWRlIHRoYXQKLSsJIyB0aGlzIGlzIGEgY3Jvc3MtYnVp bGQuCi0rCWVjaG8gaTU4Ni1wYy1tc2Rvc2RqZ3BwCi0rICAgICAgICBleGl0IDs7Ci0rICAgIElu dGVsOk1hY2g6Myo6KikKLSsJZWNobyBpMzg2LXBjLW1hY2gzCi0rCWV4aXQgOzsKLSsgICAgcGFy YWdvbjoqOio6KikKLSsJZWNobyBpODYwLWludGVsLW9zZjEKLSsJZXhpdCA7OwotKyAgICBpODYw Oio6NC4qOiopICMgaTg2MC1TVlI0Ci0rCWlmIGdyZXAgU3RhcmRlbnQgL3Vzci9pbmNsdWRlL3N5 cy91YWRtaW4uaCA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCi0rCSAgZWNobyBpODYwLXN0YXJkZW50 LXN5c3Yke1VOQU1FX1JFTEVBU0V9ICMgU3RhcmRlbnQgVmlzdHJhIGk4NjAtU1ZSNAotKwllbHNl ICMgQWRkIG90aGVyIGk4NjAtU1ZSNCB2ZW5kb3JzIGJlbG93IGFzIHRoZXkgYXJlIGRpc2NvdmVy ZWQuCi0rCSAgZWNobyBpODYwLXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0gICMgVW5rbm93 biBpODYwLVNWUjQKLSsJZmkKLSsJZXhpdCA7OwotKyAgICBtaW5pKjpDVElYOlNZUyo1OiopCi0r CSMgIm1pbmlmcmFtZSIKLSsJZWNobyBtNjgwMTAtY29udmVyZ2VudC1zeXN2Ci0rCWV4aXQgOzsK LSsgICAgbWM2OGs6VU5JWDpTWVNURU01OjMuNTFtKQotKwllY2hvIG02OGstY29udmVyZ2VudC1z eXN2Ci0rCWV4aXQgOzsKLSsgICAgTTY4MD8wOkQtTklYOjUuMzoqKQotKwllY2hvIG02OGstZGlh Yi1kbml4Ci0rCWV4aXQgOzsKLSsgICAgTTY4KjoqOlIzVls1Njc4XSo6KikKLSsJdGVzdCAtciAv c3lzVjY4ICYmIHsgZWNobyAnbTY4ay1tb3Rvcm9sYS1zeXN2JzsgZXhpdDsgfSA7OwotKyAgICAz WzM0NV0/PzoqOjQuMDozLjAgfCAzWzM0XT8/QToqOjQuMDozLjAgfCAzWzM0XT8/LCo6Kjo0LjA6 My4wIHwgM1szNF0/Py8qOio6NC4wOjMuMCB8IDQ0MDA6Kjo0LjA6My4wIHwgNDg1MDoqOjQuMDoz LjAgfCBTS0E0MDoqOjQuMDozLjAgfCBTRFMyOio6NC4wOjMuMCB8IFNIRzI6Kjo0LjA6My4wIHwg Uzc1MDEqOio6NC4wOjMuMCkKLSsJT1NfUkVMPScnCi0rCXRlc3QgLXIgL2V0Yy8ucmVsaWQgXAot KwkmJiBPU19SRUw9LmBzZWQgLW4gJ3MvW14gXSogW14gXSogXChbMC05XVswLTldXCkuKi9cMS9w JyA8IC9ldGMvLnJlbGlkYAotKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+ L2Rldi9udWxsIFwKLSsJICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhp dDsgfQotKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVwIGVudGl1bSA+L2Rl di9udWxsIFwKLSsJICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsg fSA7OwotKyAgICAzWzM0XT8/Oio6NC4wOiogfCAzWzM0XT8/LCo6Kjo0LjA6KikKLSsgICAgICAg IC9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAotKyAgICAg ICAgICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQ7IGV4aXQ7IH0gOzsKLSsgICAgTkNSKjoqOjQu MjoqIHwgTVBSQVMqOio6NC4yOiopCi0rCU9TX1JFTD0nLjMnCi0rCXRlc3QgLXIgL2V0Yy8ucmVs aWQgXAotKwkgICAgJiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05 XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAKLSsJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8 IGdyZXAgODYgPi9kZXYvbnVsbCBcCi0rCSAgICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQuMyR7 T1NfUkVMfTsgZXhpdDsgfQotKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVw IGVudGl1bSA+L2Rldi9udWxsIFwKLSsJICAgICYmIHsgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtP U19SRUx9OyBleGl0OyB9Ci0rCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAg cHRlcm9uID4vZGV2L251bGwgXAotKwkgICAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09T X1JFTH07IGV4aXQ7IH0gOzsKLSsgICAgbTY4KjpMeW54T1M6Mi4qOiogfCBtNjgqOkx5bnhPUzoz LjAqOiopCi0rCWVjaG8gbTY4ay11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLSsJZXhp dCA7OwotKyAgICBtYzY4MDMwOlVOSVhfU3lzdGVtX1Y6NC4qOiopCi0rCWVjaG8gbTY4ay1hdGFy aS1zeXN2NAotKwlleGl0IDs7Ci0rICAgIFRTVU5BTUk6THlueE9TOjIuKjoqKQotKwllY2hvIHNw YXJjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIHJzNjAw MDpMeW54T1M6Mi4qOiopCi0rCWVjaG8gcnM2MDAwLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxF QVNFfQotKwlleGl0IDs7Ci0rICAgIFBvd2VyUEM6THlueE9TOjIuKjoqIHwgUG93ZXJQQzpMeW54 T1M6My5bMDFdKjoqIHwgUG93ZXJQQzpMeW54T1M6NC5bMDJdKjoqKQotKwllY2hvIHBvd2VycGMt dW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgU01bQkVdUzpV TklYX1NWOio6KikKLSsJZWNobyBtaXBzLWRkZS1zeXN2JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0 IDs7Ci0rICAgIFJNKjpSZWxpYW50VU5JWC0qOio6KikKLSsJZWNobyBtaXBzLXNuaS1zeXN2NAot KwlleGl0IDs7Ci0rICAgIFJNKjpTSU5JWC0qOio6KikKLSsJZWNobyBtaXBzLXNuaS1zeXN2NAot KwlleGl0IDs7Ci0rICAgICo6U0lOSVgtKjoqOiopCi0rCWlmIHVuYW1lIC1wIDI+L2Rldi9udWxs ID4vZGV2L251bGwgOyB0aGVuCi0rCQlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9u dWxsYAotKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXNuaS1zeXN2NAotKwllbHNlCi0rCQllY2hv IG5zMzJrLXNuaS1zeXN2Ci0rCWZpCi0rCWV4aXQgOzsKLSsgICAgUEVOVElVTToqOjQuMCo6Kikg IyBVbmlzeXMgYENsZWFyUGF0aCBITVAgSVggNDAwMCcgU1ZSNC9NUCBlZmZvcnQKLSsgICAgICAg ICAgICAgICAgICAgICAgIyBzYXlzIDxSaWNoYXJkLk0uQmFydGVsQGNjTWFpbC5DZW5zdXMuR09W PgotKyAgICAgICAgZWNobyBpNTg2LXVuaXN5cy1zeXN2NAotKyAgICAgICAgZXhpdCA7OwotKyAg ICAqOlVOSVhfU3lzdGVtX1Y6NCo6RlRYKikKLSsJIyBGcm9tIEdlcmFsZCBIZXdlcyA8aGV3ZXNA b3Blbm1hcmtldC5jb20+LgotKwkjIEhvdyBhYm91dCBkaWZmZXJlbnRpYXRpbmcgYmV0d2VlbiBz dHJhdHVzIGFyY2hpdGVjdHVyZXM/IC1kam0KLSsJZWNobyBocHBhMS4xLXN0cmF0dXMtc3lzdjQK LSsJZXhpdCA7OwotKyAgICAqOio6KjpGVFgqKQotKwkjIEZyb20gc2VhbmZAc3dkYy5zdHJhdHVz LmNvbS4KLSsJZWNobyBpODYwLXN0cmF0dXMtc3lzdjQKLSsJZXhpdCA7OwotKyAgICBpKjg2OlZP UzoqOiopCi0rCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0dXMuY29tLgotKwllY2hvICR7VU5BTUVf TUFDSElORX0tc3RyYXR1cy12b3MKLSsJZXhpdCA7OwotKyAgICAqOlZPUzoqOiopCi0rCSMgRnJv bSBQYXVsLkdyZWVuQHN0cmF0dXMuY29tLgotKwllY2hvIGhwcGExLjEtc3RyYXR1cy12b3MKLSsJ ZXhpdCA7OwotKyAgICBtYzY4KjpBL1VYOio6KikKLSsJZWNobyBtNjhrLWFwcGxlLWF1eCR7VU5B TUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBuZXdzKjpORVdTLU9TOjYqOiopCi0rCWVjaG8g bWlwcy1zb255LW5ld3NvczYKLSsJZXhpdCA7OwotKyAgICBSWzM0XTAwMDoqU3lzdGVtX1YqOio6 KiB8IFI0MDAwOlVOSVhfU1lTVjoqOiogfCBSKjAwMDpVTklYX1NWOio6KikKLSsJaWYgWyAtZCAv dXNyL25lYyBdOyB0aGVuCi0rCSAgICAgICAgZWNobyBtaXBzLW5lYy1zeXN2JHtVTkFNRV9SRUxF QVNFfQotKwllbHNlCi0rCSAgICAgICAgZWNobyBtaXBzLXVua25vd24tc3lzdiR7VU5BTUVfUkVM RUFTRX0KLSsJZmkKLSsgICAgICAgIGV4aXQgOzsKLSsgICAgQmVCb3g6QmVPUzoqOiopCSMgQmVP UyBydW5uaW5nIG9uIGhhcmR3YXJlIG1hZGUgYnkgQmUsIFBQQyBvbmx5LgotKwllY2hvIHBvd2Vy cGMtYmUtYmVvcwotKwlleGl0IDs7Ci0rICAgIEJlTWFjOkJlT1M6KjoqKQkjIEJlT1MgcnVubmlu ZyBvbiBNYWMgb3IgTWFjIGNsb25lLCBQUEMgb25seS4KLSsJZWNobyBwb3dlcnBjLWFwcGxlLWJl b3MKLSsJZXhpdCA7OwotKyAgICBCZVBDOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBJbnRl bCBQQyBjb21wYXRpYmxlLgotKwllY2hvIGk1ODYtcGMtYmVvcwotKwlleGl0IDs7Ci0rICAgIEJl UEM6SGFpa3U6KjoqKQkjIEhhaWt1IHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KLSsJ ZWNobyBpNTg2LXBjLWhhaWt1Ci0rCWV4aXQgOzsKLSsgICAgU1gtNDpTVVBFUi1VWDoqOiopCi0r CWVjaG8gc3g0LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNY LTU6U1VQRVItVVg6KjoqKQotKwllY2hvIHN4NS1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0K LSsJZXhpdCA7OwotKyAgICBTWC02OlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDYtbmVjLXN1cGVy dXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgU1gtNzpTVVBFUi1VWDoqOiopCi0r CWVjaG8gc3g3LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNY LTg6U1VQRVItVVg6KjoqKQotKwllY2hvIHN4OC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0K LSsJZXhpdCA7OwotKyAgICBTWC04UjpTVVBFUi1VWDoqOiopCi0rCWVjaG8gc3g4ci1uZWMtc3Vw ZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBQb3dlcio6UmhhcHNvZHk6Kjoq KQotKwllY2hvIHBvd2VycGMtYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQg OzsKLSsgICAgKjpSaGFwc29keToqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1hcHBsZS1y aGFwc29keSR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOkRhcndpbjoqOiopCi0r CVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCi0r CWNhc2UgJFVOQU1FX1BST0NFU1NPUiBpbgotKwkgICAgaTM4NikKLSsJCWV2YWwgJHNldF9jY19m b3JfYnVpbGQKLSsJCWlmIFsgIiRDQ19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcg XTsgdGhlbgotKwkJICBpZiAoZWNobyAnI2lmZGVmIF9fTFA2NF9fJzsgZWNobyBJU182NEJJVF9B UkNIOyBlY2hvICcjZW5kaWYnKSB8IFwKLSsJCSAgICAgIChDQ09QVFM9ICRDQ19GT1JfQlVJTEQg LUUgLSAyPi9kZXYvbnVsbCkgfCBcCi0rCQkgICAgICBncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYv bnVsbAotKwkJICB0aGVuCi0rCQkgICAgICBVTkFNRV9QUk9DRVNTT1I9Ing4Nl82NCIKLSsJCSAg ZmkKLSsJCWZpIDs7Ci0rCSAgICB1bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9cG93ZXJwYyA7Owot Kwllc2FjCi0rCWVjaG8gJHtVTkFNRV9QUk9DRVNTT1J9LWFwcGxlLWRhcndpbiR7VU5BTUVfUkVM RUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOnByb2NudG8qOio6KiB8ICo6UU5YOlswMTIzNDU2Nzg5 XSo6KikKLSsJVU5BTUVfUFJPQ0VTU09SPWB1bmFtZSAtcGAKLSsJaWYgdGVzdCAiJFVOQU1FX1BS T0NFU1NPUiIgPSAieDg2IjsgdGhlbgotKwkJVU5BTUVfUFJPQ0VTU09SPWkzODYKLSsJCVVOQU1F X01BQ0hJTkU9cGMKLSsJZmkKLSsJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tJHtVTkFNRV9NQUNI SU5FfS1udG8tcW54JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6UU5YOio6NCop Ci0rCWVjaG8gaTM4Ni1wYy1xbngKLSsJZXhpdCA7OwotKyAgICBOU0UtPzpOT05TVE9QX0tFUk5F TDoqOiopCi0rCWVjaG8gbnNlLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsK LSsgICAgTlNSLT86Tk9OU1RPUF9LRVJORUw6KjoqKQotKwllY2hvIG5zci10YW5kZW0tbnNrJHtV TkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6Tm9uU3RvcC1VWDoqOiopCi0rCWVjaG8g bWlwcy1jb21wYXEtbm9uc3RvcHV4Ci0rCWV4aXQgOzsKLSsgICAgQlMyMDAwOlBPU0lYKjoqOiop Ci0rCWVjaG8gYnMyMDAwLXNpZW1lbnMtc3lzdgotKwlleGl0IDs7Ci0rICAgIERTLyo6VU5JWF9T eXN0ZW1fVjoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS0ke1VOQU1FX1NZU1RFTX0tJHtV TkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6UGxhbjk6KjoqKQotKwkjICJ1bmFtZSAt bSIgaXMgbm90IGNvbnNpc3RlbnQsIHNvIHVzZSAkY3B1dHlwZSBpbnN0ZWFkLiAzODYKLSsJIyBp cyBjb252ZXJ0ZWQgdG8gaTM4NiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciB4ODYKLSsJIyBv cGVyYXRpbmcgc3lzdGVtcy4KLSsJaWYgdGVzdCAiJGNwdXR5cGUiID0gIjM4NiI7IHRoZW4KLSsJ ICAgIFVOQU1FX01BQ0hJTkU9aTM4NgotKwllbHNlCi0rCSAgICBVTkFNRV9NQUNISU5FPSIkY3B1 dHlwZSIKLSsJZmkKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tcGxhbjkKLSsJZXhp dCA7OwotKyAgICAqOlRPUFMtMTA6KjoqKQotKwllY2hvIHBkcDEwLXVua25vd24tdG9wczEwCi0r CWV4aXQgOzsKLSsgICAgKjpURU5FWDoqOiopCi0rCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAot KwlleGl0IDs7Ci0rICAgIEtTMTA6VE9QUy0yMDoqOiogfCBLTDEwOlRPUFMtMjA6KjoqIHwgVFlQ RTQ6VE9QUy0yMDoqOiopCi0rCWVjaG8gcGRwMTAtZGVjLXRvcHMyMAotKwlleGl0IDs7Ci0rICAg IFhLTC0xOlRPUFMtMjA6KjoqIHwgVFlQRTU6VE9QUy0yMDoqOiopCi0rCWVjaG8gcGRwMTAteGts LXRvcHMyMAotKwlleGl0IDs7Ci0rICAgICo6VE9QUy0yMDoqOiopCi0rCWVjaG8gcGRwMTAtdW5r bm93bi10b3BzMjAKLSsJZXhpdCA7OwotKyAgICAqOklUUzoqOiopCi0rCWVjaG8gcGRwMTAtdW5r bm93bi1pdHMKLSsJZXhpdCA7OwotKyAgICBTRUk6KjoqOlNFSVVYKQotKyAgICAgICAgZWNobyBt aXBzLXNlaS1zZWl1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOkRyYWdvbkZs eToqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7 VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AKLSsJZXhpdCA7OwotKyAgICAqOipW TVM6KjoqKQotKyAgICAJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKLSsJ Y2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KLSsJICAgIEEqKSBlY2hvIGFscGhhLWRlYy12bXMg OyBleGl0IDs7Ci0rCSAgICBJKikgZWNobyBpYTY0LWRlYy12bXMgOyBleGl0IDs7Ci0rCSAgICBW KikgZWNobyB2YXgtZGVjLXZtcyA7IGV4aXQgOzsKLSsJZXNhYyA7OwotKyAgICAqOlhFTklYOio6 U3lzVikKLSsJZWNobyBpMzg2LXBjLXhlbml4Ci0rCWV4aXQgOzsKLSsgICAgaSo4Njpza3lvczoq OiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1za3lvc2BlY2hvICR7VU5BTUVfUkVMRUFT RX1gIHwgc2VkIC1lICdzLyAuKiQvLycKLSsJZXhpdCA7OwotKyAgICBpKjg2OnJkb3M6KjoqKQot KwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtcmRvcwotKwlleGl0IDs7Ci0rICAgIGkqODY6QVJP UzoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1hcm9zCi0rCWV4aXQgOzsKLStlc2Fj Ci0rCi0rI2VjaG8gJyhObyB1bmFtZSBjb21tYW5kIG9yIHVuYW1lIG91dHB1dCBub3QgcmVjb2du aXplZC4pJyAxPiYyCi0rI2VjaG8gIiR7VU5BTUVfTUFDSElORX06JHtVTkFNRV9TWVNURU19OiR7 VU5BTUVfUkVMRUFTRX06JHtVTkFNRV9WRVJTSU9OfSIgMT4mMgotKwotK2V2YWwgJHNldF9jY19m b3JfYnVpbGQKLStjYXQgPiRkdW1teS5jIDw8RU9GCi0rI2lmZGVmIF9TRVFVRU5UXwotKyMgaW5j bHVkZSA8c3lzL3R5cGVzLmg+Ci0rIyBpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgotKyNlbmRpZgot K21haW4gKCkKLSt7Ci0rI2lmIGRlZmluZWQgKHNvbnkpCi0rI2lmIGRlZmluZWQgKE1JUFNFQikK LSsgIC8qIEJGRCB3YW50cyAiYnNkIiBpbnN0ZWFkIG9mICJuZXdzb3MiLiAgUGVyaGFwcyBCRkQg c2hvdWxkIGJlIGNoYW5nZWQsCi0rICAgICBJIGRvbid0IGtub3cuLi4uICAqLwotKyAgcHJpbnRm ICgibWlwcy1zb255LWJzZFxuIik7IGV4aXQgKDApOwotKyNlbHNlCi0rI2luY2x1ZGUgPHN5cy9w YXJhbS5oPgotKyAgcHJpbnRmICgibTY4ay1zb255LW5ld3NvcyVzXG4iLAotKyNpZmRlZiBORVdT T1M0Ci0rICAgICAgICAgICI0IgotKyNlbHNlCi0rCSAgIiIKLSsjZW5kaWYKLSsgICAgICAgICAp OyBleGl0ICgwKTsKLSsjZW5kaWYKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAoX19hcm0pICYm IGRlZmluZWQgKF9fYWNvcm4pICYmIGRlZmluZWQgKF9fdW5peCkKLSsgIHByaW50ZiAoImFybS1h Y29ybi1yaXNjaXhcbiIpOyBleGl0ICgwKTsKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAoaHAz MDApICYmICFkZWZpbmVkIChocHV4KQotKyAgcHJpbnRmICgibTY4ay1ocC1ic2RcbiIpOyBleGl0 ICgwKTsKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAoTmVYVCkKLSsjaWYgIWRlZmluZWQgKF9f QVJDSElURUNUVVJFX18pCi0rI2RlZmluZSBfX0FSQ0hJVEVDVFVSRV9fICJtNjhrIgotKyNlbmRp ZgotKyAgaW50IHZlcnNpb247Ci0rICB2ZXJzaW9uPWAoaG9zdGluZm8gfCBzZWQgLW4gJ3MvLipO ZVhUIE1hY2ggXChbMC05XSpcKS4qL1wxL3AnKSAyPi9kZXYvbnVsbGA7Ci0rICBpZiAodmVyc2lv biA8IDQpCi0rICAgIHByaW50ZiAoIiVzLW5leHQtbmV4dHN0ZXAlZFxuIiwgX19BUkNISVRFQ1RV UkVfXywgdmVyc2lvbik7Ci0rICBlbHNlCi0rICAgIHByaW50ZiAoIiVzLW5leHQtb3BlbnN0ZXAl ZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7Ci0rICBleGl0ICgwKTsKLSsjZW5kaWYK LSsKLSsjaWYgZGVmaW5lZCAoTVVMVElNQVgpIHx8IGRlZmluZWQgKG4xNikKLSsjaWYgZGVmaW5l ZCAoVU1BWFYpCi0rICBwcmludGYgKCJuczMyay1lbmNvcmUtc3lzdlxuIik7IGV4aXQgKDApOwot KyNlbHNlCi0rI2lmIGRlZmluZWQgKENNVSkKLSsgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1tYWNo XG4iKTsgZXhpdCAoMCk7Ci0rI2Vsc2UKLSsgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1ic2RcbiIp OyBleGl0ICgwKTsKLSsjZW5kaWYKLSsjZW5kaWYKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAo X18zODZCU0RfXykKLSsgIHByaW50ZiAoImkzODYtcGMtYnNkXG4iKTsgZXhpdCAoMCk7Ci0rI2Vu ZGlmCi0rCi0rI2lmIGRlZmluZWQgKHNlcXVlbnQpCi0rI2lmIGRlZmluZWQgKGkzODYpCi0rICBw cmludGYgKCJpMzg2LXNlcXVlbnQtZHluaXhcbiIpOyBleGl0ICgwKTsKLSsjZW5kaWYKLSsjaWYg ZGVmaW5lZCAobnMzMjAwMCkKLSsgIHByaW50ZiAoIm5zMzJrLXNlcXVlbnQtZHluaXhcbiIpOyBl eGl0ICgwKTsKLSsjZW5kaWYKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAoX1NFUVVFTlRfKQot KyAgICBzdHJ1Y3QgdXRzbmFtZSB1bjsKLSsKLSsgICAgdW5hbWUoJnVuKTsKLSsKLSsgICAgaWYg KHN0cm5jbXAodW4udmVyc2lvbiwgIlYyIiwgMikgPT0gMCkgewotKwlwcmludGYgKCJpMzg2LXNl cXVlbnQtcHR4MlxuIik7IGV4aXQgKDApOwotKyAgICB9Ci0rICAgIGlmIChzdHJuY21wKHVuLnZl cnNpb24sICJWMSIsIDIpID09IDApIHsgLyogWFhYIGlzIFYxIGNvcnJlY3Q/ICovCi0rCXByaW50 ZiAoImkzODYtc2VxdWVudC1wdHgxXG4iKTsgZXhpdCAoMCk7Ci0rICAgIH0KLSsgICAgcHJpbnRm ICgiaTM4Ni1zZXF1ZW50LXB0eFxuIik7IGV4aXQgKDApOwotKwotKyNlbmRpZgotKwotKyNpZiBk ZWZpbmVkICh2YXgpCi0rIyBpZiAhZGVmaW5lZCAodWx0cml4KQotKyMgIGluY2x1ZGUgPHN5cy9w YXJhbS5oPgotKyMgIGlmIGRlZmluZWQgKEJTRCkKLSsjICAgaWYgQlNEID09IDQzCi0rICAgICAg cHJpbnRmICgidmF4LWRlYy1ic2Q0LjNcbiIpOyBleGl0ICgwKTsKLSsjICAgZWxzZQotKyMgICAg aWYgQlNEID09IDE5OTAwNgotKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkNC4zcmVub1xuIik7 IGV4aXQgKDApOwotKyMgICAgZWxzZQotKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkXG4iKTsg ZXhpdCAoMCk7Ci0rIyAgICBlbmRpZgotKyMgICBlbmRpZgotKyMgIGVsc2UKLSsgICAgcHJpbnRm ICgidmF4LWRlYy1ic2RcbiIpOyBleGl0ICgwKTsKLSsjICBlbmRpZgotKyMgZWxzZQotKyAgICBw cmludGYgKCJ2YXgtZGVjLXVsdHJpeFxuIik7IGV4aXQgKDApOwotKyMgZW5kaWYKLSsjZW5kaWYK LSsKLSsjaWYgZGVmaW5lZCAoYWxsaWFudCkgJiYgZGVmaW5lZCAoaTg2MCkKLSsgIHByaW50ZiAo Imk4NjAtYWxsaWFudC1ic2RcbiIpOyBleGl0ICgwKTsKLSsjZW5kaWYKLSsKLSsgIGV4aXQgKDEp OwotK30KLStFT0YKLSsKLSskQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYv bnVsbCAmJiBTWVNURU1fTkFNRT1gJGR1bW15YCAmJgotKwl7IGVjaG8gIiRTWVNURU1fTkFNRSI7 IGV4aXQ7IH0KLSsKLSsjIEFwb2xsb3MgcHV0IHRoZSBzeXN0ZW0gdHlwZSBpbiB0aGUgZW52aXJv bm1lbnQuCi0rCi0rdGVzdCAtZCAvdXNyL2Fwb2xsbyAmJiB7IGVjaG8gJHtJU1B9LWFwb2xsby0k e1NZU1RZUEV9OyBleGl0OyB9Ci0rCi0rIyBDb252ZXggdmVyc2lvbnMgdGhhdCBwcmVkYXRlIHVu YW1lIGNhbiB1c2UgZ2V0c3lzaW5mbygxKQotKwotK2lmIFsgLXggL3Vzci9jb252ZXgvZ2V0c3lz aW5mbyBdCi0rdGhlbgotKyAgICBjYXNlIGBnZXRzeXNpbmZvIC1mIGNwdV90eXBlYCBpbgotKyAg ICBjMSopCi0rCWVjaG8gYzEtY29udmV4LWJzZAotKwlleGl0IDs7Ci0rICAgIGMyKikKLSsJaWYg Z2V0c3lzaW5mbyAtZiBzY2FsYXJfYWNjCi0rCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAotKwll bHNlIGVjaG8gYzItY29udmV4LWJzZAotKwlmaQotKwlleGl0IDs7Ci0rICAgIGMzNCopCi0rCWVj aG8gYzM0LWNvbnZleC1ic2QKLSsJZXhpdCA7OwotKyAgICBjMzgqKQotKwllY2hvIGMzOC1jb252 ZXgtYnNkCi0rCWV4aXQgOzsKLSsgICAgYzQqKQotKwllY2hvIGM0LWNvbnZleC1ic2QKLSsJZXhp dCA7OwotKyAgICBlc2FjCi0rZmkKLSsKLStjYXQgPiYyIDw8RU9GCi0rJDA6IHVuYWJsZSB0byBn dWVzcyBzeXN0ZW0gdHlwZQotKwotK1RoaXMgc2NyaXB0LCBsYXN0IG1vZGlmaWVkICR0aW1lc3Rh bXAsIGhhcyBmYWlsZWQgdG8gcmVjb2duaXplCi0rdGhlIG9wZXJhdGluZyBzeXN0ZW0geW91IGFy ZSB1c2luZy4gSXQgaXMgYWR2aXNlZCB0aGF0IHlvdQotK2Rvd25sb2FkIHRoZSBtb3N0IHVwIHRv IGRhdGUgdmVyc2lvbiBvZiB0aGUgY29uZmlnIHNjcmlwdHMgZnJvbQotKwotKyAgaHR0cDovL2dp dC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNv bmZpZy5ndWVzcztoYj1IRUFECi0rYW5kCi0rICBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcv Z2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLnN1YjtoYj1IRUFECi0r Ci0rSWYgdGhlIHZlcnNpb24geW91IHJ1biAoJDApIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxl YXNlCi0rc2VuZCB0aGUgZm9sbG93aW5nIGRhdGEgYW5kIGFueSBpbmZvcm1hdGlvbiB5b3UgdGhp bmsgbWlnaHQgYmUKLStwZXJ0aW5lbnQgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+IGluIG9y ZGVyIHRvIHByb3ZpZGUgdGhlIG5lZWRlZAotK2luZm9ybWF0aW9uIHRvIGhhbmRsZSB5b3VyIHN5 c3RlbS4KLSsKLStjb25maWcuZ3Vlc3MgdGltZXN0YW1wID0gJHRpbWVzdGFtcAotKwotK3VuYW1l IC1tID0gYCh1bmFtZSAtbSkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC1y ID0gYCh1bmFtZSAtcikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC1zID0g YCh1bmFtZSAtcykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC12ID0gYCh1 bmFtZSAtdikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotKwotKy91c3IvYmluL3VuYW1l IC1wID0gYCgvdXNyL2Jpbi91bmFtZSAtcCkgMj4vZGV2L251bGxgCi0rL2Jpbi91bmFtZSAtWCAg ICAgPSBgKC9iaW4vdW5hbWUgLVgpIDI+L2Rldi9udWxsYAotKwotK2hvc3RpbmZvICAgICAgICAg ICAgICAgPSBgKGhvc3RpbmZvKSAyPi9kZXYvbnVsbGAKLSsvYmluL3VuaXZlcnNlICAgICAgICAg ID0gYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbGAKLSsvdXNyL2Jpbi9hcmNoIC1rICAgICAg ID0gYCgvdXNyL2Jpbi9hcmNoIC1rKSAyPi9kZXYvbnVsbGAKLSsvYmluL2FyY2ggICAgICAgICAg ICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsYAotKy91c3IvYmluL29zbGV2ZWwgICAgICAg PSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsYAotKy91c3IvY29udmV4L2dldHN5c2lu Zm8gPSBgKC91c3IvY29udmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxsYAotKwotK1VOQU1FX01B Q0hJTkUgPSAke1VOQU1FX01BQ0hJTkV9Ci0rVU5BTUVfUkVMRUFTRSA9ICR7VU5BTUVfUkVMRUFT RX0KLStVTkFNRV9TWVNURU0gID0gJHtVTkFNRV9TWVNURU19Ci0rVU5BTUVfVkVSU0lPTiA9ICR7 VU5BTUVfVkVSU0lPTn0KLStFT0YKLSsKLStleGl0IDEKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoK LSsjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRp bWUtc3RhbXAtc3RhcnQ6ICJ0aW1lc3RhbXA9JyIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5 LSUwMm0tJTAyZCIKLSsjIHRpbWUtc3RhbXAtZW5kOiAiJyIKLSsjIEVuZDoKLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLnN1YiBzb2NpLTMuMC4wX3RyZXAzMDAvY29u ZmlnL2NvbmZpZy5zdWIKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLnN1Ygkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9jb25maWcvY29uZmlnLnN1YgkyMDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAot QEAgLTAsMCArMSwxNzA1IEBACi0rIyEgL2Jpbi9zaAotKyMgQ29uZmlndXJhdGlvbiB2YWxpZGF0 aW9uIHN1YnJvdXRpbmUgc2NyaXB0LgotKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0rIyAgIDIwMDAsIDIwMDEsIDIwMDIs IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkKLSsjICAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rdGltZXN0YW1wPScyMDA5LTExLTIwJwotKwotKyMg VGhpcyBmaWxlIGlzIChpbiBwcmluY2lwbGUpIGNvbW1vbiB0byBBTEwgR05VIHNvZnR3YXJlLgot KyMgVGhlIHByZXNlbmNlIG9mIGEgbWFjaGluZSBpbiB0aGlzIGZpbGUgc3VnZ2VzdHMgdGhhdCBT T01FIEdOVSBzb2Z0d2FyZQotKyMgY2FuIGhhbmRsZSB0aGF0IG1hY2hpbmUuICBJdCBkb2VzIG5v dCBpbXBseSBBTEwgR05VIHNvZnR3YXJlIGNhbi4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIg b2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rIyBG b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQQotKyMgMDIxMTAtMTMwMSwgVVNBLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24g dG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1dGUg dGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotKyMgY29uZmln dXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQg dW5kZXIKLSsjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRo ZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLSsKLSsKLSsjIFBsZWFzZSBzZW5kIHBhdGNoZXMgdG8g PGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiAgU3VibWl0IGEgY29udGV4dAotKyMgZGlmZiBhbmQg YSBwcm9wZXJseSBmb3JtYXR0ZWQgR05VIENoYW5nZUxvZyBlbnRyeS4KLSsjCi0rIyBDb25maWd1 cmF0aW9uIHN1YnJvdXRpbmUgdG8gdmFsaWRhdGUgYW5kIGNhbm9uaWNhbGl6ZSBhIGNvbmZpZ3Vy YXRpb24gdHlwZS4KLSsjIFN1cHBseSB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gdHlwZSBh cyBhbiBhcmd1bWVudC4KLSsjIElmIGl0IGlzIGludmFsaWQsIHdlIHByaW50IGFuIGVycm9yIG1l c3NhZ2Ugb24gc3RkZXJyIGFuZCBleGl0IHdpdGggY29kZSAxLgotKyMgT3RoZXJ3aXNlLCB3ZSBw cmludCB0aGUgY2Fub25pY2FsIGNvbmZpZyB0eXBlIG9uIHN0ZG91dCBhbmQgc3VjY2VlZC4KLSsK LSsjIFlvdSBjYW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHNjcmlwdCBmcm9tOgot KyMgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9Ymxv Yl9wbGFpbjtmPWNvbmZpZy5zdWI7aGI9SEVBRAotKwotKyMgVGhpcyBmaWxlIGlzIHN1cHBvc2Vk IHRvIGJlIHRoZSBzYW1lIGZvciBhbGwgR05VIHBhY2thZ2VzCi0rIyBhbmQgcmVjb2duaXplIGFs bCB0aGUgQ1BVIHR5cGVzLCBzeXN0ZW0gdHlwZXMgYW5kIGFsaWFzZXMKLSsjIHRoYXQgYXJlIG1l YW5pbmdmdWwgd2l0aCAqYW55KiBHTlUgc29mdHdhcmUuCi0rIyBFYWNoIHBhY2thZ2UgaXMgcmVz cG9uc2libGUgZm9yIHJlcG9ydGluZyB3aGljaCB2YWxpZCBjb25maWd1cmF0aW9ucwotKyMgaXQg ZG9lcyBub3Qgc3VwcG9ydC4gIFRoZSB1c2VyIHNob3VsZCBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNo Ci0rIyBhIGZhaWx1cmUgdG8gc3VwcG9ydCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gZnJvbSBhIG1l YW5pbmdsZXNzCi0rIyBjb25maWd1cmF0aW9uLgotKwotKyMgVGhlIGdvYWwgb2YgdGhpcyBmaWxl IGlzIHRvIG1hcCBhbGwgdGhlIHZhcmlvdXMgdmFyaWF0aW9ucyBvZiBhIGdpdmVuCi0rIyBtYWNo aW5lIHNwZWNpZmljYXRpb24gaW50byBhIHNpbmdsZSBzcGVjaWZpY2F0aW9uIGluIHRoZSBmb3Jt OgotKyMJQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLU9QRVJBVElOR19TWVNURU0KLSsjIG9yIGluIHNv bWUgY2FzZXMsIHRoZSBuZXdlciBmb3VyLXBhcnQgZm9ybToKLSsjCUNQVV9UWVBFLU1BTlVGQUNU VVJFUi1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTQotKyMgSXQgaXMgd3JvbmcgdG8gZWNobyBhbnkg b3RoZXIgdHlwZSBvZiBzcGVjaWZpY2F0aW9uLgotKwotK21lPWBlY2hvICIkMCIgfCBzZWQgLWUg J3MsLiovLCwnYAotKwotK3VzYWdlPSJcCi0rVXNhZ2U6ICQwIFtPUFRJT05dIENQVS1NRlItT1BT WVMKLSsgICAgICAgJDAgW09QVElPTl0gQUxJQVMKLSsKLStDYW5vbmljYWxpemUgYSBjb25maWd1 cmF0aW9uIG5hbWUuCi0rCi0rT3BlcmF0aW9uIG1vZGVzOgotKyAgLWgsIC0taGVscCAgICAgICAg IHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0rICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQg ZGF0ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiwgdGhlbiBleGl0Ci0rICAtdiwgLS12ZXJzaW9uICAg ICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAotKwotK1JlcG9ydCBidWdzIGFuZCBw YXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4iCi0rCi0rdmVyc2lvbj0iXAotK0dO VSBjb25maWcuc3ViICgkdGltZXN0YW1wKQotKwotK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5Mywg MTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKLSsyMDAyLCAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKwotK1RoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNv cHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCi0rd2FycmFudHk7IG5vdCBldmVuIGZvciBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgotKwot K2hlbHA9IgotK1RyeSBcYCRtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKLSsKLSsj IFBhcnNlIGNvbW1hbmQgbGluZQotK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbwotKyAgY2FzZSAk MSBpbgotKyAgICAtLXRpbWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQgKQotKyAgICAgICBlY2hvICIk dGltZXN0YW1wIiA7IGV4aXQgOzsKLSsgICAgLS12ZXJzaW9uIHwgLXYgKQotKyAgICAgICBlY2hv ICIkdmVyc2lvbiIgOyBleGl0IDs7Ci0rICAgIC0taGVscCB8IC0taCogfCAtaCApCi0rICAgICAg IGVjaG8gIiR1c2FnZSI7IGV4aXQgOzsKLSsgICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9j ZXNzaW5nCi0rICAgICAgIHNoaWZ0OyBicmVhayA7OwotKyAgICAtICkJIyBVc2Ugc3RkaW4gYXMg aW5wdXQuCi0rICAgICAgIGJyZWFrIDs7Ci0rICAgIC0qICkKLSsgICAgICAgZWNobyAiJG1lOiBp bnZhbGlkIG9wdGlvbiAkMSRoZWxwIgotKyAgICAgICBleGl0IDEgOzsKLSsKLSsgICAgKmxvY2Fs KikKLSsgICAgICAgIyBGaXJzdCBwYXNzIHRocm91Z2ggYW55IGxvY2FsIG1hY2hpbmUgdHlwZXMu Ci0rICAgICAgIGVjaG8gJDEKLSsgICAgICAgZXhpdCA7OwotKwotKyAgICAqICkKLSsgICAgICAg YnJlYWsgOzsKLSsgIGVzYWMKLStkb25lCi0rCi0rY2FzZSAkIyBpbgotKyAwKSBlY2hvICIkbWU6 IG1pc3NpbmcgYXJndW1lbnQkaGVscCIgPiYyCi0rICAgIGV4aXQgMTs7Ci0rIDEpIDs7Ci0rICop IGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgotKyAgICBleGl0IDE7Owot K2VzYWMKLSsKLSsjIFNlcGFyYXRlIHdoYXQgdGhlIHVzZXIgZ2F2ZSBpbnRvIENQVS1DT01QQU5Z IGFuZCBPUyBvciBLRVJORUwtT1MgKGlmIGFueSkuCi0rIyBIZXJlIHdlIG11c3QgcmVjb2duaXpl IGFsbCB0aGUgdmFsaWQgS0VSTkVMLU9TIGNvbWJpbmF0aW9ucy4KLSttYXliZV9vcz1gZWNobyAk MSB8IHNlZCAncy9eXCguKlwpLVwoW14tXSotW14tXSpcKSQvXDIvJ2AKLStjYXNlICRtYXliZV9v cyBpbgotKyAgbnRvLXFueCogfCBsaW51eC1nbnUqIHwgbGludXgtZGlldGxpYmMgfCBsaW51eC1u ZXdsaWIqIHwgbGludXgtdWNsaWJjKiB8IFwKLSsgIHVjbGludXgtdWNsaWJjKiB8IHVjbGludXgt Z251KiB8IGtmcmVlYnNkKi1nbnUqIHwga25ldGJzZCotZ251KiB8IG5ldGJzZCotZ251KiB8IFwK LSsgIGtvcGVuc29sYXJpcyotZ251KiB8IFwKLSsgIHN0b3JtLWNoYW9zKiB8IG9zMi1lbXgqIHwg cnRtay1ub3ZhKikKLSsgICAgb3M9LSRtYXliZV9vcwotKyAgICBiYXNpY19tYWNoaW5lPWBlY2hv ICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYAotKyAgICA7OwotKyAg KikKLSsgICAgYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAncy8tW14tXSokLy8nYAotKyAg ICBpZiBbICRiYXNpY19tYWNoaW5lICE9ICQxIF0KLSsgICAgdGhlbiBvcz1gZWNobyAkMSB8IHNl ZCAncy8uKi0vLS8nYAotKyAgICBlbHNlIG9zPTsgZmkKLSsgICAgOzsKLStlc2FjCi0rCi0rIyMj IExldCdzIHJlY29nbml6ZSBjb21tb24gbWFjaGluZXMgYXMgbm90IGJlaW5nIG9wZXJhdGluZyBz eXN0ZW1zIHNvCi0rIyMjIHRoYXQgdGhpbmdzIGxpa2UgY29uZmlnLnN1YiBkZWNzdGF0aW9uLTMx MDAgd29yay4gIFdlIGFsc28KLSsjIyMgcmVjb2duaXplIHNvbWUgbWFudWZhY3R1cmVycyBhcyBu b3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMsIHNvIHdlCi0rIyMjIGNhbiBwcm92aWRlIGRlZmF1 bHQgb3BlcmF0aW5nIHN5c3RlbXMgYmVsb3cuCi0rY2FzZSAkb3MgaW4KLSsJLXN1bipvcyopCi0r CQkjIFByZXZlbnQgZm9sbG93aW5nIGNsYXVzZSBmcm9tIGhhbmRsaW5nIHRoaXMgaW52YWxpZCBp bnB1dC4KLSsJCTs7Ci0rCS1kZWMqIHwgLW1pcHMqIHwgLXNlcXVlbnQqIHwgLWVuY29yZSogfCAt cGM1MzIqIHwgLXNnaSogfCAtc29ueSogfCBcCi0rCS1hdHQqIHwgLTczMDAqIHwgLTMzMDAqIHwg LWRlbHRhKiB8IC1tb3Rvcm9sYSogfCAtc3VuWzIzNF0qIHwgXAotKwktdW5pY29tKiB8IC1pYm0q IHwgLW5leHQgfCAtaHAgfCAtaXNpKiB8IC1hcG9sbG8gfCAtYWx0b3MqIHwgXAotKwktY29udmVy Z2VudCogfCAtbmNyKiB8IC1uZXdzIHwgLTMyKiB8IC0zNjAwKiB8IC0zMTAwKiB8IC1oaXRhY2hp KiB8XAotKwktY1sxMjNdKiB8IC1jb252ZXgqIHwgLXN1biB8IC1jcmRzIHwgLW9tcm9uKiB8IC1k ZyB8IC11bHRyYSB8IC10dGkqIHwgXAotKwktaGFycmlzIHwgLWRvbHBoaW4gfCAtaGlnaGxldmVs IHwgLWdvdWxkIHwgLWNibSB8IC1ucyB8IC1tYXNzY29tcCB8IFwKLSsJLWFwcGxlIHwgLWF4aXMg fCAta251dGggfCAtY3JheSB8IC1taWNyb2JsYXplKQotKwkJb3M9Ci0rCQliYXNpY19tYWNoaW5l PSQxCi0rCQk7OwotKyAgICAgICAgLWJsdWVnZW5lKikKLSsJICAgICAgICBvcz0tY25rCi0rCQk7 OwotKwktc2ltIHwgLWNpc2NvIHwgLW9raSB8IC13ZWMgfCAtd2luYm9uZCkKLSsJCW9zPQotKwkJ YmFzaWNfbWFjaGluZT0kMQotKwkJOzsKLSsJLXNjb3V0KQotKwkJOzsKLSsJLXdycykKLSsJCW9z PS12eHdvcmtzCi0rCQliYXNpY19tYWNoaW5lPSQxCi0rCQk7OwotKwktY2hvcnVzb3MqKQotKwkJ b3M9LWNob3J1c29zCi0rCQliYXNpY19tYWNoaW5lPSQxCi0rCQk7OwotKyAJLWNob3J1c3JkYikK LSsgCQlvcz0tY2hvcnVzcmRiCi0rCQliYXNpY19tYWNoaW5lPSQxCi0rIAkJOzsKLSsJLWhpdXgq KQotKwkJb3M9LWhpdXh3ZTIKLSsJCTs7Ci0rCS1zY282KQotKwkJb3M9LXNjbzV2NgotKwkJYmFz aWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJ LXNjbzUpCi0rCQlvcz0tc2NvMy4ydjUKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQg LWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY280KQotKwkJb3M9LXNjbzMuMnY0Ci0r CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7 OwotKwktc2NvMy4yLls0LTldKikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAncy9zY28zLjIu L3NjbzMuMnYvJ2AKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiov ODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY28zLjJ2WzQtOV0qKQotKwkJIyBEb24ndCBmb3JnZXQgdmVy c2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEg fCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY281djYqKQotKwkJIyBEb24n dCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KLSsJCWJhc2ljX21hY2hp bmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY28qKQot KwkJb3M9LXNjbzMuMnYyCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2 LS4qLzg2LXBjLydgCi0rCQk7OwotKwktdWRrKikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEg fCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1pc2MpCi0rCQlvcz0taXNjMi4y Ci0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0r CQk7OwotKwktY2xpeCopCi0rCQliYXNpY19tYWNoaW5lPWNsaXBwZXItaW50ZXJncmFwaAotKwkJ OzsKLSsJLWlzYyopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4q Lzg2LXBjLydgCi0rCQk7OwotKwktbHlueCopCi0rCQlvcz0tbHlueG9zCi0rCQk7OwotKwktcHR4 KikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtc2VxdWVu dC8nYAotKwkJOzsKLSsJLXdpbmRvd3NudCopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mv d2luZG93c250L3dpbm50LydgCi0rCQk7OwotKwktcHNvcyopCi0rCQlvcz0tcHNvcwotKwkJOzsK LSsJLW1pbnQgfCAtbWludFswLTldKikKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQotKwkJ b3M9LW1pbnQKLSsJCTs7Ci0rZXNhYwotKwotKyMgRGVjb2RlIGFsaWFzZXMgZm9yIGNlcnRhaW4g Q1BVLUNPTVBBTlkgY29tYmluYXRpb25zLgotK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KLSsJIyBS ZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkgbmFtZS4KLSsJIyBT b21lIGFyZSBvbWl0dGVkIGhlcmUgYmVjYXVzZSB0aGV5IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBi ZWxvdy4KLSsJMTc1MGEgfCA1ODAgXAotKwl8IGEyOWsgXAotKwl8IGFscGhhIHwgYWxwaGFldls0 LThdIHwgYWxwaGFldjU2IHwgYWxwaGFldjZbNzhdIHwgYWxwaGFwY2E1WzY3XSBcCi0rCXwgYWxw aGE2NCB8IGFscGhhNjRldls0LThdIHwgYWxwaGE2NGV2NTYgfCBhbHBoYTY0ZXY2Wzc4XSB8IGFs cGhhNjRwY2E1WzY3XSBcCi0rCXwgYW0zM18yLjAgXAotKwl8IGFyYyB8IGFybSB8IGFybVtibF1l IHwgYXJtZVtsYl0gfCBhcm12WzIzNDVdIHwgYXJtdlszNDVdW2xiXSB8IGF2ciB8IGF2cjMyIFwK LSsJfCBiZmluIFwKLSsJfCBjNHggfCBjbGlwcGVyIFwKLSsJfCBkMTB2IHwgZDMwdiB8IGRseCB8 IGRzcDE2eHggXAotKwl8IGZpZG8gfCBmcjMwIHwgZnJ2IFwKLSsJfCBoODMwMCB8IGg4NTAwIHwg aHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAotKwl8 IGkzNzAgfCBpODYwIHwgaTk2MCB8IGlhNjQgXAotKwl8IGlwMmsgfCBpcTIwMDAgXAotKwl8IGxt MzIgXAotKwl8IG0zMmMgfCBtMzJyIHwgbTMycmxlIHwgbTY4MDAwIHwgbTY4ayB8IG04OGsgXAot Kwl8IG1heHEgfCBtYiB8IG1pY3JvYmxhemUgfCBtY29yZSB8IG1lcCB8IG1ldGFnIFwKLSsJfCBt aXBzIHwgbWlwc2JlIHwgbWlwc2ViIHwgbWlwc2VsIHwgbWlwc2xlIFwKLSsJfCBtaXBzMTYgXAot Kwl8IG1pcHM2NCB8IG1pcHM2NGVsIFwKLSsJfCBtaXBzNjRvY3Rlb24gfCBtaXBzNjRvY3Rlb25l bCBcCi0rCXwgbWlwczY0b3Jpb24gfCBtaXBzNjRvcmlvbmVsIFwKLSsJfCBtaXBzNjRyNTkwMCB8 IG1pcHM2NHI1OTAwZWwgXAotKwl8IG1pcHM2NHZyIHwgbWlwczY0dnJlbCBcCi0rCXwgbWlwczY0 dnI0MTAwIHwgbWlwczY0dnI0MTAwZWwgXAotKwl8IG1pcHM2NHZyNDMwMCB8IG1pcHM2NHZyNDMw MGVsIFwKLSsJfCBtaXBzNjR2cjUwMDAgfCBtaXBzNjR2cjUwMDBlbCBcCi0rCXwgbWlwczY0dnI1 OTAwIHwgbWlwczY0dnI1OTAwZWwgXAotKwl8IG1pcHNpc2EzMiB8IG1pcHNpc2EzMmVsIFwKLSsJ fCBtaXBzaXNhMzJyMiB8IG1pcHNpc2EzMnIyZWwgXAotKwl8IG1pcHNpc2E2NCB8IG1pcHNpc2E2 NGVsIFwKLSsJfCBtaXBzaXNhNjRyMiB8IG1pcHNpc2E2NHIyZWwgXAotKwl8IG1pcHNpc2E2NHNi MSB8IG1pcHNpc2E2NHNiMWVsIFwKLSsJfCBtaXBzaXNhNjRzcjcxayB8IG1pcHNpc2E2NHNyNzFr ZWwgXAotKwl8IG1pcHN0eDM5IHwgbWlwc3R4MzllbCBcCi0rCXwgbW4xMDIwMCB8IG1uMTAzMDAg XAotKwl8IG1veGllIFwKLSsJfCBtdCBcCi0rCXwgbXNwNDMwIFwKLSsJfCBuaW9zIHwgbmlvczIg XAotKwl8IG5zMTZrIHwgbnMzMmsgXAotKwl8IG9yMzIgXAotKwl8IHBkcDEwIHwgcGRwMTEgfCBw aiB8IHBqbCBcCi0rCXwgcG93ZXJwYyB8IHBvd2VycGM2NCB8IHBvd2VycGM2NGxlIHwgcG93ZXJw Y2xlIHwgcHBjYmUgXAotKwl8IHB5cmFtaWQgXAotKwl8IHJ4IFwKLSsJfCBzY29yZSBcCi0rCXwg c2ggfCBzaFsxMjM0XSB8IHNoWzI0XWEgfCBzaFsyNF1hZWIgfCBzaFsyM11lIHwgc2hbMzRdZWIg fCBzaGViIHwgc2hiZSB8IHNobGUgfCBzaFsxMjM0XWxlIHwgc2gzZWxlIFwKLSsJfCBzaDY0IHwg c2g2NGxlIFwKLSsJfCBzcGFyYyB8IHNwYXJjNjQgfCBzcGFyYzY0YiB8IHNwYXJjNjR2IHwgc3Bh cmM4NnggfCBzcGFyY2xldCB8IHNwYXJjbGl0ZSBcCi0rCXwgc3BhcmN2OCB8IHNwYXJjdjkgfCBz cGFyY3Y5YiB8IHNwYXJjdjl2IFwKLSsJfCBzcHUgfCBzdHJvbmdhcm0gXAotKwl8IHRhaG9lIHwg dGh1bWIgfCB0aWM0eCB8IHRpYzgwIHwgdHJvbiBcCi0rCXwgdWJpY29tMzIgXAotKwl8IHY4NTAg fCB2ODUwZSBcCi0rCXwgd2UzMmsgXAotKwl8IHg4NiB8IHhjMTZ4IHwgeHNjYWxlIHwgeHNjYWxl ZVtibF0gfCB4c3Rvcm15MTYgfCB4dGVuc2EgXAotKwl8IHo4ayB8IHo4MCkKLSsJCWJhc2ljX21h Y2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgotKwkJOzsKLSsJbTY4MTEgfCBtNjhoYzExIHwg bTY4MTIgfCBtNjhoYzEyIHwgcGljb2NoaXApCi0rCQkjIE1vdG9yb2xhIDY4SEMxMS8xMi4KLSsJ CWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgotKwkJb3M9LW5vbmUKLSsJCTs7 Ci0rCW04ODExMCB8IG02ODBbMTIzNDZdMCB8IG02ODM/MiB8IG02ODM2MCB8IG01MjAwIHwgdjcw IHwgdzY1IHwgejhrKQotKwkJOzsKLSsJbXMxKQotKwkJYmFzaWNfbWFjaGluZT1tdC11bmtub3du Ci0rCQk7OwotKwotKwkjIFdlIHVzZSBgcGMnIHJhdGhlciB0aGFuIGB1bmtub3duJwotKwkjIGJl Y2F1c2UgKDEpIHRoYXQncyB3aGF0IHRoZXkgbm9ybWFsbHkgYXJlLCBhbmQKLSsJIyAoMikgdGhl IHdvcmQgInVua25vd24iIHRlbmRzIHRvIGNvbmZ1c2UgYmVnaW5uaW5nIHVzZXJzLgotKwlpKjg2 IHwgeDg2XzY0KQotKwkgIGJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtcGMKLSsJICA7Owot KwkjIE9iamVjdCBpZiBtb3JlIHRoYW4gb25lIGNvbXBhbnkgbmFtZSB3b3JkLgotKwkqLSotKikK LSsJCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogbWFjaGluZSBcYCRiYXNpY19t YWNoaW5lXCcgbm90IHJlY29nbml6ZWQgMT4mMgotKwkJZXhpdCAxCi0rCQk7OwotKwkjIFJlY29n bml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGggY29tcGFueSBuYW1lLgotKwk1ODAtKiBcCi0r CXwgYTI5ay0qIFwKLSsJfCBhbHBoYS0qIHwgYWxwaGFldls0LThdLSogfCBhbHBoYWV2NTYtKiB8 IGFscGhhZXY2Wzc4XS0qIFwKLSsJfCBhbHBoYTY0LSogfCBhbHBoYTY0ZXZbNC04XS0qIHwgYWxw aGE2NGV2NTYtKiB8IGFscGhhNjRldjZbNzhdLSogXAotKwl8IGFscGhhcGNhNVs2N10tKiB8IGFs cGhhNjRwY2E1WzY3XS0qIHwgYXJjLSogXAotKwl8IGFybS0qICB8IGFybWJlLSogfCBhcm1sZS0q IHwgYXJtZWItKiB8IGFybXYqLSogXAotKwl8IGF2ci0qIHwgYXZyMzItKiBcCi0rCXwgYmZpbi0q IHwgYnMyMDAwLSogXAotKwl8IGNbMTIzXSogfCBjMzAtKiB8IFtjanRdOTAtKiB8IGM0eC0qIHwg YzU0eC0qIHwgYzU1eC0qIHwgYzZ4LSogXAotKwl8IGNsaXBwZXItKiB8IGNyYXludi0qIHwgY3lk cmEtKiBcCi0rCXwgZDEwdi0qIHwgZDMwdi0qIHwgZGx4LSogXAotKwl8IGVseHNpLSogXAotKwl8 IGYzMFswMV0tKiB8IGY3MDAtKiB8IGZpZG8tKiB8IGZyMzAtKiB8IGZydi0qIHwgZng4MC0qIFwK LSsJfCBoODMwMC0qIHwgaDg1MDAtKiBcCi0rCXwgaHBwYS0qIHwgaHBwYTEuWzAxXS0qIHwgaHBw YTIuMC0qIHwgaHBwYTIuMFtud10tKiB8IGhwcGE2NC0qIFwKLSsJfCBpKjg2LSogfCBpODYwLSog fCBpOTYwLSogfCBpYTY0LSogXAotKwl8IGlwMmstKiB8IGlxMjAwMC0qIFwKLSsJfCBsbTMyLSog XAotKwl8IG0zMmMtKiB8IG0zMnItKiB8IG0zMnJsZS0qIFwKLSsJfCBtNjgwMDAtKiB8IG02ODBb MDEyMzQ2XTAtKiB8IG02ODM2MC0qIHwgbTY4Mz8yLSogfCBtNjhrLSogXAotKwl8IG04ODExMC0q IHwgbTg4ay0qIHwgbWF4cS0qIHwgbWNvcmUtKiB8IG1ldGFnLSogfCBtaWNyb2JsYXplLSogXAot Kwl8IG1pcHMtKiB8IG1pcHNiZS0qIHwgbWlwc2ViLSogfCBtaXBzZWwtKiB8IG1pcHNsZS0qIFwK LSsJfCBtaXBzMTYtKiBcCi0rCXwgbWlwczY0LSogfCBtaXBzNjRlbC0qIFwKLSsJfCBtaXBzNjRv Y3Rlb24tKiB8IG1pcHM2NG9jdGVvbmVsLSogXAotKwl8IG1pcHM2NG9yaW9uLSogfCBtaXBzNjRv cmlvbmVsLSogXAotKwl8IG1pcHM2NHI1OTAwLSogfCBtaXBzNjRyNTkwMGVsLSogXAotKwl8IG1p cHM2NHZyLSogfCBtaXBzNjR2cmVsLSogXAotKwl8IG1pcHM2NHZyNDEwMC0qIHwgbWlwczY0dnI0 MTAwZWwtKiBcCi0rCXwgbWlwczY0dnI0MzAwLSogfCBtaXBzNjR2cjQzMDBlbC0qIFwKLSsJfCBt aXBzNjR2cjUwMDAtKiB8IG1pcHM2NHZyNTAwMGVsLSogXAotKwl8IG1pcHM2NHZyNTkwMC0qIHwg bWlwczY0dnI1OTAwZWwtKiBcCi0rCXwgbWlwc2lzYTMyLSogfCBtaXBzaXNhMzJlbC0qIFwKLSsJ fCBtaXBzaXNhMzJyMi0qIHwgbWlwc2lzYTMycjJlbC0qIFwKLSsJfCBtaXBzaXNhNjQtKiB8IG1p cHNpc2E2NGVsLSogXAotKwl8IG1pcHNpc2E2NHIyLSogfCBtaXBzaXNhNjRyMmVsLSogXAotKwl8 IG1pcHNpc2E2NHNiMS0qIHwgbWlwc2lzYTY0c2IxZWwtKiBcCi0rCXwgbWlwc2lzYTY0c3I3MWst KiB8IG1pcHNpc2E2NHNyNzFrZWwtKiBcCi0rCXwgbWlwc3R4MzktKiB8IG1pcHN0eDM5ZWwtKiBc Ci0rCXwgbW1peC0qIFwKLSsJfCBtdC0qIFwKLSsJfCBtc3A0MzAtKiBcCi0rCXwgbmlvcy0qIHwg bmlvczItKiBcCi0rCXwgbm9uZS0qIHwgbnAxLSogfCBuczE2ay0qIHwgbnMzMmstKiBcCi0rCXwg b3Jpb24tKiBcCi0rCXwgcGRwMTAtKiB8IHBkcDExLSogfCBwai0qIHwgcGpsLSogfCBwbi0qIHwg cG93ZXItKiBcCi0rCXwgcG93ZXJwYy0qIHwgcG93ZXJwYzY0LSogfCBwb3dlcnBjNjRsZS0qIHwg cG93ZXJwY2xlLSogfCBwcGNiZS0qIFwKLSsJfCBweXJhbWlkLSogXAotKwl8IHJvbXAtKiB8IHJz NjAwMC0qIHwgcngtKiBcCi0rCXwgc2gtKiB8IHNoWzEyMzRdLSogfCBzaFsyNF1hLSogfCBzaFsy NF1hZWItKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAotKwl8 IHNobGUtKiB8IHNoWzEyMzRdbGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0qIHwgc2g2NGxlLSogXAot Kwl8IHNwYXJjLSogfCBzcGFyYzY0LSogfCBzcGFyYzY0Yi0qIHwgc3BhcmM2NHYtKiB8IHNwYXJj ODZ4LSogfCBzcGFyY2xldC0qIFwKLSsJfCBzcGFyY2xpdGUtKiBcCi0rCXwgc3BhcmN2OC0qIHwg c3BhcmN2OS0qIHwgc3BhcmN2OWItKiB8IHNwYXJjdjl2LSogfCBzdHJvbmdhcm0tKiB8IHN2MS0q IHwgc3g/LSogXAotKwl8IHRhaG9lLSogfCB0aHVtYi0qIFwKLSsJfCB0aWMzMC0qIHwgdGljNHgt KiB8IHRpYzU0eC0qIHwgdGljNTV4LSogfCB0aWM2eC0qIHwgdGljODAtKiB8IHRpbGUtKiBcCi0r CXwgdHJvbi0qIFwKLSsJfCB1Ymljb20zMi0qIFwKLSsJfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4 LSogXAotKwl8IHdlMzJrLSogXAotKwl8IHg4Ni0qIHwgeDg2XzY0LSogfCB4YzE2eC0qIHwgeHBz MTAwLSogfCB4c2NhbGUtKiB8IHhzY2FsZWVbYmxdLSogXAotKwl8IHhzdG9ybXkxNi0qIHwgeHRl bnNhKi0qIFwKLSsJfCB5bXAtKiBcCi0rCXwgejhrLSogfCB6ODAtKikKLSsJCTs7Ci0rCSMgUmVj b2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUsIHdpdGggZ2xv YiBtYXRjaC4KLSsJeHRlbnNhKikKLSsJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5r bm93bgotKwkJOzsKLSsJIyBSZWNvZ25pemUgdGhlIHZhcmlvdXMgbWFjaGluZSBuYW1lcyBhbmQg YWxpYXNlcyB3aGljaCBzdGFuZAotKwkjIGZvciBhIENQVSB0eXBlIGFuZCBhIGNvbXBhbnkgYW5k IHNvbWV0aW1lcyBldmVuIGFuIE9TLgotKwkzODZic2QpCi0rCQliYXNpY19tYWNoaW5lPWkzODYt dW5rbm93bgotKwkJb3M9LWJzZAotKwkJOzsKLSsJM2IxIHwgNzMwMCB8IDczMDAtYXR0IHwgYXR0 LTczMDAgfCBwYzczMDAgfCBzYWZhcmkgfCB1bml4cGMpCi0rCQliYXNpY19tYWNoaW5lPW02ODAw MC1hdHQKLSsJCTs7Ci0rCTNiKikKLSsJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0Ci0rCQk7Owot KwlhMjlraGlmKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9LXVkaQotKwkJOzsK LSsgICAgCWFiYWN1cykKLSsJCWJhc2ljX21hY2hpbmU9YWJhY3VzLXVua25vd24KLSsJCTs7Ci0r CWFkb2JlNjhrKQotKwkJYmFzaWNfbWFjaGluZT1tNjgwMTAtYWRvYmUKLSsJCW9zPS1zY291dAot KwkJOzsKLSsJYWxsaWFudCB8IGZ4ODApCi0rCQliYXNpY19tYWNoaW5lPWZ4ODAtYWxsaWFudAot KwkJOzsKLSsJYWx0b3MgfCBhbHRvczMwNjgpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYWx0b3MK LSsJCTs7Ci0rCWFtMjlrKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLW5vbmUKLSsJCW9zPS1ic2QK LSsJCTs7Ci0rCWFtZDY0KQotKwkJYmFzaWNfbWFjaGluZT14ODZfNjQtcGMKLSsJCTs7Ci0rCWFt ZDY0LSopCi0rCQliYXNpY19tYWNoaW5lPXg4Nl82NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNl ZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJYW1kYWhsKQotKwkJYmFzaWNfbWFjaGluZT01ODAt YW1kYWhsCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJYW1pZ2EgfCBhbWlnYS0qKQotKwkJYmFzaWNf bWFjaGluZT1tNjhrLXVua25vd24KLSsJCTs7Ci0rCWFtaWdhb3MgfCBhbWlnYWRvcykKLSsJCWJh c2ljX21hY2hpbmU9bTY4ay11bmtub3duCi0rCQlvcz0tYW1pZ2FvcwotKwkJOzsKLSsJYW1pZ2F1 bml4IHwgYW1peCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCi0rCQlvcz0tc3lzdjQK LSsJCTs7Ci0rCWFwb2xsbzY4KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbwotKwkJb3M9 LXN5c3YKLSsJCTs7Ci0rCWFwb2xsbzY4YnNkKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xs bwotKwkJb3M9LWJzZAotKwkJOzsKLSsJYXJvcykKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwot KwkJb3M9LWFyb3MKLSsJCTs7Ci0rCWF1eCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQot KwkJb3M9LWF1eAotKwkJOzsKLSsJYmFsYW5jZSkKLSsJCWJhc2ljX21hY2hpbmU9bnMzMmstc2Vx dWVudAotKwkJb3M9LWR5bml4Ci0rCQk7OwotKwlibGFja2ZpbikKLSsJCWJhc2ljX21hY2hpbmU9 YmZpbi11bmtub3duCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0rCWJsYWNrZmluLSopCi0rCQliYXNp Y19tYWNoaW5lPWJmaW4tYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AK LSsJCW9zPS1saW51eAotKwkJOzsKLSsJYmx1ZWdlbmUqKQotKwkJYmFzaWNfbWFjaGluZT1wb3dl cnBjLWlibQotKwkJb3M9LWNuawotKwkJOzsKLSsJYzkwKQotKwkJYmFzaWNfbWFjaGluZT1jOTAt Y3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsgICAgICAgIGNlZ2NjKQotKwkJYmFzaWNfbWFj aGluZT1hcm0tdW5rbm93bgotKwkJb3M9LWNlZ2NjCi0rCQk7OwotKwljb252ZXgtYzEpCi0rCQli YXNpY19tYWNoaW5lPWMxLWNvbnZleAotKwkJb3M9LWJzZAotKwkJOzsKLSsJY29udmV4LWMyKQot KwkJYmFzaWNfbWFjaGluZT1jMi1jb252ZXgKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWNvbnZleC1j MzIpCi0rCQliYXNpY19tYWNoaW5lPWMzMi1jb252ZXgKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWNv bnZleC1jMzQpCi0rCQliYXNpY19tYWNoaW5lPWMzNC1jb252ZXgKLSsJCW9zPS1ic2QKLSsJCTs7 Ci0rCWNvbnZleC1jMzgpCi0rCQliYXNpY19tYWNoaW5lPWMzOC1jb252ZXgKLSsJCW9zPS1ic2QK LSsJCTs7Ci0rCWNyYXkgfCBqOTApCi0rCQliYXNpY19tYWNoaW5lPWo5MC1jcmF5Ci0rCQlvcz0t dW5pY29zCi0rCQk7OwotKwljcmF5bnYpCi0rCQliYXNpY19tYWNoaW5lPWNyYXludi1jcmF5Ci0r CQlvcz0tdW5pY29zbXAKLSsJCTs7Ci0rCWNyMTYpCi0rCQliYXNpY19tYWNoaW5lPWNyMTYtdW5r bm93bgotKwkJb3M9LWVsZgotKwkJOzsKLSsJY3JkcyB8IHVub3MpCi0rCQliYXNpY19tYWNoaW5l PW02OGstY3JkcwotKwkJOzsKLSsJY3Jpc3YzMiB8IGNyaXN2MzItKiB8IGV0cmF4ZnMqKQotKwkJ YmFzaWNfbWFjaGluZT1jcmlzdjMyLWF4aXMKLSsJCTs7Ci0rCWNyaXMgfCBjcmlzLSogfCBldHJh eCopCi0rCQliYXNpY19tYWNoaW5lPWNyaXMtYXhpcwotKwkJOzsKLSsJY3J4KQotKwkJYmFzaWNf bWFjaGluZT1jcngtdW5rbm93bgotKwkJb3M9LWVsZgotKwkJOzsKLSsJZGEzMCB8IGRhMzAtKikK LSsJCWJhc2ljX21hY2hpbmU9bTY4ay1kYTMwCi0rCQk7OwotKwlkZWNzdGF0aW9uIHwgZGVjc3Rh dGlvbi0zMTAwIHwgcG1heCB8IHBtYXgtKiB8IHBtaW4gfCBkZWMzMTAwIHwgZGVjc3RhdG4pCi0r CQliYXNpY19tYWNoaW5lPW1pcHMtZGVjCi0rCQk7OwotKwlkZWNzeXN0ZW0xMCogfCBkZWMxMCop Ci0rCQliYXNpY19tYWNoaW5lPXBkcDEwLWRlYwotKwkJb3M9LXRvcHMxMAotKwkJOzsKLSsJZGVj c3lzdGVtMjAqIHwgZGVjMjAqKQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMC1kZWMKLSsJCW9zPS10 b3BzMjAKLSsJCTs7Ci0rCWRlbHRhIHwgMzMwMCB8IG1vdG9yb2xhLTMzMDAgfCBtb3Rvcm9sYS1k ZWx0YSBcCi0rCSAgICAgIHwgMzMwMC1tb3Rvcm9sYSB8IGRlbHRhLW1vdG9yb2xhKQotKwkJYmFz aWNfbWFjaGluZT1tNjhrLW1vdG9yb2xhCi0rCQk7OwotKwlkZWx0YTg4KQotKwkJYmFzaWNfbWFj aGluZT1tODhrLW1vdG9yb2xhCi0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0rCWRpY29zKQotKwkJYmFz aWNfbWFjaGluZT1pNjg2LXBjCi0rCQlvcz0tZGljb3MKLSsJCTs7Ci0rCWRqZ3BwKQotKwkJYmFz aWNfbWFjaGluZT1pNTg2LXBjCi0rCQlvcz0tbXNkb3NkamdwcAotKwkJOzsKLSsJZHB4MjAgfCBk cHgyMC0qKQotKwkJYmFzaWNfbWFjaGluZT1yczYwMDAtYnVsbAotKwkJb3M9LWJvc3gKLSsJCTs7 Ci0rCWRweDIqIHwgZHB4MiotYnVsbCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCi0rCQlv cz0tc3lzdjMKLSsJCTs7Ci0rCWVibW9uMjlrKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAot KwkJb3M9LWVibW9uCi0rCQk7OwotKwllbHhzaSkKLSsJCWJhc2ljX21hY2hpbmU9ZWx4c2ktZWx4 c2kKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWVuY29yZSB8IHVtYXggfCBtbWF4KQotKwkJYmFzaWNf bWFjaGluZT1uczMyay1lbmNvcmUKLSsJCTs7Ci0rCWVzMTgwMCB8IE9TRTY4ayB8IG9zZTY4ayB8 IG9zZSB8IE9TRSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1lcmljc3NvbgotKwkJb3M9LW9zZQot KwkJOzsKLSsJZngyODAwKQotKwkJYmFzaWNfbWFjaGluZT1pODYwLWFsbGlhbnQKLSsJCTs7Ci0r CWdlbml4KQotKwkJYmFzaWNfbWFjaGluZT1uczMyay1ucwotKwkJOzsKLSsJZ21pY3JvKQotKwkJ YmFzaWNfbWFjaGluZT10cm9uLWdtaWNybwotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCWdvMzIpCi0r CQliYXNpY19tYWNoaW5lPWkzODYtcGMKLSsJCW9zPS1nbzMyCi0rCQk7OwotKwloMzA1MHIqIHwg aGl1eCopCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaGl0YWNoaQotKwkJb3M9LWhpdXh3ZTIK LSsJCTs7Ci0rCWg4MzAwaG1zKQotKwkJYmFzaWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCi0rCQlv cz0taG1zCi0rCQk7OwotKwloODMwMHhyYXkpCi0rCQliYXNpY19tYWNoaW5lPWg4MzAwLWhpdGFj aGkKLSsJCW9zPS14cmF5Ci0rCQk7OwotKwloODUwMGhtcykKLSsJCWJhc2ljX21hY2hpbmU9aDg1 MDAtaGl0YWNoaQotKwkJb3M9LWhtcwotKwkJOzsKLSsJaGFycmlzKQotKwkJYmFzaWNfbWFjaGlu ZT1tODhrLWhhcnJpcwotKwkJb3M9LXN5c3YzCi0rCQk7OwotKwlocDMwMC0qKQotKwkJYmFzaWNf bWFjaGluZT1tNjhrLWhwCi0rCQk7OwotKwlocDMwMGJzZCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4 ay1ocAotKwkJb3M9LWJzZAotKwkJOzsKLSsJaHAzMDBocHV4KQotKwkJYmFzaWNfbWFjaGluZT1t NjhrLWhwCi0rCQlvcz0taHB1eAotKwkJOzsKLSsJaHAzazlbMC05XVswLTldIHwgaHA5WzAtOV1b MC05XSkKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMC1ocAotKwkJOzsKLSsJaHA5azJbMC05XVsw LTldIHwgaHA5azMxWzAtOV0pCi0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1ocAotKwkJOzsKLSsJ aHA5azNbMi05XVswLTldKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCi0rCQk7OwotKwlocDlr NlswLTldWzAtOV0gfCBocDZbMC05XVswLTldKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhw Ci0rCQk7OwotKwlocDlrN1swLTc5XVswLTldIHwgaHA3WzAtNzldWzAtOV0pCi0rCQliYXNpY19t YWNoaW5lPWhwcGExLjEtaHAKLSsJCTs7Ci0rCWhwOWs3OFswLTldIHwgaHA3OFswLTldKQotKwkJ IyBGSVhNRTogcmVhbGx5IGhwcGEyLjAtaHAKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAot KwkJOzsKLSsJaHA5azhbNjddMSB8IGhwOFs2N10xIHwgaHA5azgwWzI0XSB8IGhwODBbMjRdIHwg aHA5azhbNzhdOSB8IGhwOFs3OF05IHwgaHA5azg5MyB8IGhwODkzKQotKwkJIyBGSVhNRTogcmVh bGx5IGhwcGEyLjAtaHAKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAotKwkJOzsKLSsJaHA5 azhbMC05XVsxMzY3OV0gfCBocDhbMC05XVsxMzY3OV0pCi0rCQliYXNpY19tYWNoaW5lPWhwcGEx LjEtaHAKLSsJCTs7Ci0rCWhwOWs4WzAtOV1bMC05XSB8IGhwOFswLTldWzAtOV0pCi0rCQliYXNp Y19tYWNoaW5lPWhwcGExLjAtaHAKLSsJCTs7Ci0rCWhwcGEtbmV4dCkKLSsJCW9zPS1uZXh0c3Rl cDMKLSsJCTs7Ci0rCWhwcGFvc2YpCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLSsJCW9z PS1vc2YKLSsJCTs7Ci0rCWhwcHJvKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCi0rCQlv cz0tcHJvZWxmCi0rCQk7OwotKwlpMzcwLWlibSogfCBpYm0qKQotKwkJYmFzaWNfbWFjaGluZT1p MzcwLWlibQotKwkJOzsKLSsjIEknbSBub3Qgc3VyZSB3aGF0ICJTeXN2MzIiIG1lYW5zLiAgU2hv dWxkIHRoaXMgYmUgc3lzdjMuMj8KLSsJaSo4NnYzMikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8g JDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAotKwkJb3M9LXN5c3YzMgotKwkJOzsKLSsJaSo4 NnY0KikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8n YAotKwkJb3M9LXN5c3Y0Ci0rCQk7OwotKwlpKjg2dikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8g JDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCWkqODZz b2wyKQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydg Ci0rCQlvcz0tc29sYXJpczIKLSsJCTs7Ci0rCWkzODZtYWNoKQotKwkJYmFzaWNfbWFjaGluZT1p Mzg2LW1hY2gKLSsJCW9zPS1tYWNoCi0rCQk7OwotKwlpMzg2LXZzdGEgfCB2c3RhKQotKwkJYmFz aWNfbWFjaGluZT1pMzg2LXVua25vd24KLSsJCW9zPS12c3RhCi0rCQk7OwotKwlpcmlzIHwgaXJp czRkKQotKwkJYmFzaWNfbWFjaGluZT1taXBzLXNnaQotKwkJY2FzZSAkb3MgaW4KLSsJCSAgICAt aXJpeCopCi0rCQkJOzsKLSsJCSAgICAqKQotKwkJCW9zPS1pcml4NAotKwkJCTs7Ci0rCQllc2Fj Ci0rCQk7OwotKwlpc2k2OCB8IGlzaSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1pc2kKLSsJCW9z PS1zeXN2Ci0rCQk7OwotKwltNjhrbm9tbXUpCi0rCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93 bgotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwltNjhrbm9tbXUtKikKLSsJCWJhc2ljX21hY2hpbmU9 bTY4ay1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJb3M9LWxp bnV4Ci0rCQk7OwotKwltODhrLW9tcm9uKikKLSsJCWJhc2ljX21hY2hpbmU9bTg4ay1vbXJvbgot KwkJOzsKLSsJbWFnbnVtIHwgbTMyMzApCi0rCQliYXNpY19tYWNoaW5lPW1pcHMtbWlwcwotKwkJ b3M9LXN5c3YKLSsJCTs7Ci0rCW1lcmxpbikKLSsJCWJhc2ljX21hY2hpbmU9bnMzMmstdXRlawot KwkJb3M9LXN5c3YKLSsJCTs7Ci0rICAgICAgICBtaWNyb2JsYXplKQotKwkJYmFzaWNfbWFjaGlu ZT1taWNyb2JsYXplLXhpbGlueAotKwkJOzsKLSsJbWluZ3czMikKLSsJCWJhc2ljX21hY2hpbmU9 aTM4Ni1wYwotKwkJb3M9LW1pbmd3MzIKLSsJCTs7Ci0rCW1pbmd3MzJjZSkKLSsJCWJhc2ljX21h Y2hpbmU9YXJtLXVua25vd24KLSsJCW9zPS1taW5ndzMyY2UKLSsJCTs7Ci0rCW1pbmlmcmFtZSkK LSsJCWJhc2ljX21hY2hpbmU9bTY4MDAwLWNvbnZlcmdlbnQKLSsJCTs7Ci0rCSptaW50IHwgLW1p bnRbMC05XSogfCAqTWlOVCB8ICpNaU5UWzAtOV0qKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWF0 YXJpCi0rCQlvcz0tbWludAotKwkJOzsKLSsJbWlwczMqLSopCi0rCQliYXNpY19tYWNoaW5lPWBl Y2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21pcHMzL21pcHM2NC8nYAotKwkJOzsKLSsJ bWlwczMqKQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAn cy9taXBzMy9taXBzNjQvJ2AtdW5rbm93bgotKwkJOzsKLSsJbW9uaXRvcikKLSsJCWJhc2ljX21h Y2hpbmU9bTY4ay1yb202OGsKLSsJCW9zPS1jb2ZmCi0rCQk7OwotKwltb3JwaG9zKQotKwkJYmFz aWNfbWFjaGluZT1wb3dlcnBjLXVua25vd24KLSsJCW9zPS1tb3JwaG9zCi0rCQk7OwotKwltc2Rv cykKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJb3M9LW1zZG9zCi0rCQk7OwotKwltczEt KikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbXMx LS9tdC0vJ2AKLSsJCTs7Ci0rCW12cykKLSsJCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KLSsJCW9z PS1tdnMKLSsJCTs7Ci0rCW5jcjMwMDApCi0rCQliYXNpY19tYWNoaW5lPWk0ODYtbmNyCi0rCQlv cz0tc3lzdjQKLSsJCTs7Ci0rCW5ldGJzZDM4NikKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtu b3duCi0rCQlvcz0tbmV0YnNkCi0rCQk7OwotKwluZXR3aW5kZXIpCi0rCQliYXNpY19tYWNoaW5l PWFybXY0bC1yZWJlbAotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwluZXdzIHwgbmV3czcwMCB8IG5l d3M4MDAgfCBuZXdzOTAwKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXNvbnkKLSsJCW9zPS1uZXdz b3MKLSsJCTs7Ci0rCW5ld3MxMDAwKQotKwkJYmFzaWNfbWFjaGluZT1tNjgwMzAtc29ueQotKwkJ b3M9LW5ld3NvcwotKwkJOzsKLSsJbmV3cy0zNjAwIHwgcmlzYy1uZXdzKQotKwkJYmFzaWNfbWFj aGluZT1taXBzLXNvbnkKLSsJCW9zPS1uZXdzb3MKLSsJCTs7Ci0rCW5lY3Y3MCkKLSsJCWJhc2lj X21hY2hpbmU9djcwLW5lYwotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCW5leHQgfCBtKi1uZXh0ICkK LSsJCWJhc2ljX21hY2hpbmU9bTY4ay1uZXh0Ci0rCQljYXNlICRvcyBpbgotKwkJICAgIC1uZXh0 c3RlcCogKQotKwkJCTs7Ci0rCQkgICAgLW5zMiopCi0rCQkgICAgICBvcz0tbmV4dHN0ZXAyCi0r CQkJOzsKLSsJCSAgICAqKQotKwkJICAgICAgb3M9LW5leHRzdGVwMwotKwkJCTs7Ci0rCQllc2Fj Ci0rCQk7OwotKwluaDMwMDApCi0rCQliYXNpY19tYWNoaW5lPW02OGstaGFycmlzCi0rCQlvcz0t Y3h1eAotKwkJOzsKLSsJbmhbNDVdMDAwKQotKwkJYmFzaWNfbWFjaGluZT1tODhrLWhhcnJpcwot KwkJb3M9LWN4dXgKLSsJCTs7Ci0rCW5pbmR5OTYwKQotKwkJYmFzaWNfbWFjaGluZT1pOTYwLWlu dGVsCi0rCQlvcz0tbmluZHkKLSsJCTs7Ci0rCW1vbjk2MCkKLSsJCWJhc2ljX21hY2hpbmU9aTk2 MC1pbnRlbAotKwkJb3M9LW1vbjk2MAotKwkJOzsKLSsJbm9uc3RvcHV4KQotKwkJYmFzaWNfbWFj aGluZT1taXBzLWNvbXBhcQotKwkJb3M9LW5vbnN0b3B1eAotKwkJOzsKLSsJbnAxKQotKwkJYmFz aWNfbWFjaGluZT1ucDEtZ291bGQKLSsJCTs7Ci0rCW5zci10YW5kZW0pCi0rCQliYXNpY19tYWNo aW5lPW5zci10YW5kZW0KLSsJCTs7Ci0rCW9wNTBuLSogfCBvcDYwYy0qKQotKwkJYmFzaWNfbWFj aGluZT1ocHBhMS4xLW9raQotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJb3BlbnJpc2MgfCBvcGVu cmlzYy0qKQotKwkJYmFzaWNfbWFjaGluZT1vcjMyLXVua25vd24KLSsJCTs7Ci0rCW9zNDAwKQot KwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWlibQotKwkJb3M9LW9zNDAwCi0rCQk7OwotKwlPU0U2 ODAwMCB8IG9zZTY4MDAwKQotKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtZXJpY3Nzb24KLSsJCW9z PS1vc2UKLSsJCTs7Ci0rCW9zNjhrKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5vbmUKLSsJCW9z PS1vczY4awotKwkJOzsKLSsJcGEtaGl0YWNoaSkKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1o aXRhY2hpCi0rCQlvcz0taGl1eHdlMgotKwkJOzsKLSsJcGFyYWdvbikKLSsJCWJhc2ljX21hY2hp bmU9aTg2MC1pbnRlbAotKwkJb3M9LW9zZgotKwkJOzsKLSsJcGFyaXNjKQotKwkJYmFzaWNfbWFj aGluZT1ocHBhLXVua25vd24KLSsJCW9zPS1saW51eAotKwkJOzsKLSsJcGFyaXNjLSopCi0rCQli YXNpY19tYWNoaW5lPWhwcGEtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8v J2AKLSsJCW9zPS1saW51eAotKwkJOzsKLSsJcGJkKQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy10 dGkKLSsJCTs7Ci0rCXBiYikKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay10dGkKLSsJCTs7Ci0rCXBj NTMyIHwgcGM1MzItKikKLSsJCWJhc2ljX21hY2hpbmU9bnMzMmstcGM1MzIKLSsJCTs7Ci0rCXBj OTgpCi0rCQliYXNpY19tYWNoaW5lPWkzODYtcGMKLSsJCTs7Ci0rCXBjOTgtKikKLSsJCWJhc2lj X21hY2hpbmU9aTM4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAot KwkJOzsKLSsJcGVudGl1bSB8IHA1IHwgazUgfCBrNiB8IG5leGdlbiB8IHZpYWMzKQotKwkJYmFz aWNfbWFjaGluZT1pNTg2LXBjCi0rCQk7OwotKwlwZW50aXVtcHJvIHwgcDYgfCA2eDg2IHwgYXRo bG9uIHwgYXRobG9uXyopCi0rCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKLSsJCTs7Ci0rCXBlbnRp dW1paSB8IHBlbnRpdW0yIHwgcGVudGl1bWlpaSB8IHBlbnRpdW0zKQotKwkJYmFzaWNfbWFjaGlu ZT1pNjg2LXBjCi0rCQk7OwotKwlwZW50aXVtNCkKLSsJCWJhc2ljX21hY2hpbmU9aTc4Ni1wYwot KwkJOzsKLSsJcGVudGl1bS0qIHwgcDUtKiB8IGs1LSogfCBrNi0qIHwgbmV4Z2VuLSogfCB2aWFj My0qKQotKwkJYmFzaWNfbWFjaGluZT1pNTg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdz L15bXi1dKi0vLydgCi0rCQk7OwotKwlwZW50aXVtcHJvLSogfCBwNi0qIHwgNng4Ni0qIHwgYXRo bG9uLSopCi0rCQliYXNpY19tYWNoaW5lPWk2ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQg J3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBlbnRpdW1paS0qIHwgcGVudGl1bTItKiB8IHBlbnRp dW1paWktKiB8IHBlbnRpdW0zLSopCi0rCQliYXNpY19tYWNoaW5lPWk2ODYtYGVjaG8gJGJhc2lj X21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBlbnRpdW00LSopCi0rCQli YXNpY19tYWNoaW5lPWk3ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8v J2AKLSsJCTs7Ci0rCXBuKQotKwkJYmFzaWNfbWFjaGluZT1wbi1nb3VsZAotKwkJOzsKLSsJcG93 ZXIpCWJhc2ljX21hY2hpbmU9cG93ZXItaWJtCi0rCQk7OwotKwlwcGMpCWJhc2ljX21hY2hpbmU9 cG93ZXJwYy11bmtub3duCi0rCQk7OwotKwlwcGMtKikJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWBl Y2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7OwotKwlwcGNsZSB8 IHBvd2VycGNsaXR0bGUgfCBwcGMtbGUgfCBwb3dlcnBjLWxpdHRsZSkKLSsJCWJhc2ljX21hY2hp bmU9cG93ZXJwY2xlLXVua25vd24KLSsJCTs7Ci0rCXBwY2xlLSogfCBwb3dlcnBjbGl0dGxlLSop Ci0rCQliYXNpY19tYWNoaW5lPXBvd2VycGNsZS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAn cy9eW14tXSotLy8nYAotKwkJOzsKLSsJcHBjNjQpCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LXVu a25vd24KLSsJCTs7Ci0rCXBwYzY0LSopIGJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LWBlY2hvICRi YXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7OwotKwlwcGM2NGxlIHwgcG93 ZXJwYzY0bGl0dGxlIHwgcHBjNjQtbGUgfCBwb3dlcnBjNjQtbGl0dGxlKQotKwkJYmFzaWNfbWFj aGluZT1wb3dlcnBjNjRsZS11bmtub3duCi0rCQk7OwotKwlwcGM2NGxlLSogfCBwb3dlcnBjNjRs aXR0bGUtKikKLSsJCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0bGUtYGVjaG8gJGJhc2ljX21hY2hp bmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBzMikKLSsJCWJhc2ljX21hY2hpbmU9 aTM4Ni1pYm0KLSsJCTs7Ci0rCXB3MzIpCi0rCQliYXNpY19tYWNoaW5lPWk1ODYtdW5rbm93bgot KwkJb3M9LXB3MzIKLSsJCTs7Ci0rCXJkb3MpCi0rCQliYXNpY19tYWNoaW5lPWkzODYtcGMKLSsJ CW9zPS1yZG9zCi0rCQk7OwotKwlyb202OGspCi0rCQliYXNpY19tYWNoaW5lPW02OGstcm9tNjhr Ci0rCQlvcz0tY29mZgotKwkJOzsKLSsJcm1bNDZdMDApCi0rCQliYXNpY19tYWNoaW5lPW1pcHMt c2llbWVucwotKwkJOzsKLSsJcnRwYyB8IHJ0cGMtKikKLSsJCWJhc2ljX21hY2hpbmU9cm9tcC1p Ym0KLSsJCTs7Ci0rCXMzOTAgfCBzMzkwLSopCi0rCQliYXNpY19tYWNoaW5lPXMzOTAtaWJtCi0r CQk7OwotKwlzMzkweCB8IHMzOTB4LSopCi0rCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQotKwkJ OzsKLSsJc2EyOTIwMCkKLSsJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKLSsJCW9zPS11ZGkKLSsJ CTs7Ci0rCXNiMSkKLSsJCWJhc2ljX21hY2hpbmU9bWlwc2lzYTY0c2IxLXVua25vd24KLSsJCTs7 Ci0rCXNiMWVsKQotKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjFlbC11bmtub3duCi0rCQk7 OwotKwlzZGUpCi0rCQliYXNpY19tYWNoaW5lPW1pcHNpc2EzMi1zZGUKLSsJCW9zPS1lbGYKLSsJ CTs7Ci0rCXNlaSkKLSsJCWJhc2ljX21hY2hpbmU9bWlwcy1zZWkKLSsJCW9zPS1zZWl1eAotKwkJ OzsKLSsJc2VxdWVudCkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50Ci0rCQk7OwotKwlz aCkKLSsJCWJhc2ljX21hY2hpbmU9c2gtaGl0YWNoaQotKwkJb3M9LWhtcwotKwkJOzsKLSsJc2g1 ZWwpCi0rCQliYXNpY19tYWNoaW5lPXNoNWxlLXVua25vd24KLSsJCTs7Ci0rCXNoNjQpCi0rCQli YXNpY19tYWNoaW5lPXNoNjQtdW5rbm93bgotKwkJOzsKLSsJc3BhcmNsaXRlLXdycyB8IHNpbXNv LXdycykKLSsJCWJhc2ljX21hY2hpbmU9c3BhcmNsaXRlLXdycwotKwkJb3M9LXZ4d29ya3MKLSsJ CTs7Ci0rCXNwczcpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYnVsbAotKwkJb3M9LXN5c3YyCi0r CQk7OwotKwlzcHVyKQotKwkJYmFzaWNfbWFjaGluZT1zcHVyLXVua25vd24KLSsJCTs7Ci0rCXN0 MjAwMCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay10YW5kZW0KLSsJCTs7Ci0rCXN0cmF0dXMpCi0r CQliYXNpY19tYWNoaW5lPWk4NjAtc3RyYXR1cwotKwkJb3M9LXN5c3Y0Ci0rCQk7OwotKwlzdW4y KQotKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCi0rCQk7OwotKwlzdW4yb3MzKQotKwkJYmFz aWNfbWFjaGluZT1tNjgwMDAtc3VuCi0rCQlvcz0tc3Vub3MzCi0rCQk7OwotKwlzdW4yb3M0KQot KwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCi0rCQlvcz0tc3Vub3M0Ci0rCQk7OwotKwlzdW4z b3MzKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXN1bgotKwkJb3M9LXN1bm9zMwotKwkJOzsKLSsJ c3VuM29zNCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1zdW4KLSsJCW9zPS1zdW5vczQKLSsJCTs7 Ci0rCXN1bjRvczMpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotKwkJb3M9LXN1bm9zMwot KwkJOzsKLSsJc3VuNG9zNCkKLSsJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCi0rCQlvcz0tc3Vu b3M0Ci0rCQk7OwotKwlzdW40c29sMikKLSsJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCi0rCQlv cz0tc29sYXJpczIKLSsJCTs7Ci0rCXN1bjMgfCBzdW4zLSopCi0rCQliYXNpY19tYWNoaW5lPW02 OGstc3VuCi0rCQk7OwotKwlzdW40KQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJCTs7 Ci0rCXN1bjM4NiB8IHN1bjM4NmkgfCByb2FkcnVubmVyKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2 LXN1bgotKwkJOzsKLSsJc3YxKQotKwkJYmFzaWNfbWFjaGluZT1zdjEtY3JheQotKwkJb3M9LXVu aWNvcwotKwkJOzsKLSsJc3ltbWV0cnkpCi0rCQliYXNpY19tYWNoaW5lPWkzODYtc2VxdWVudAot KwkJb3M9LWR5bml4Ci0rCQk7OwotKwl0M2UpCi0rCQliYXNpY19tYWNoaW5lPWFscGhhZXY1LWNy YXkKLSsJCW9zPS11bmljb3MKLSsJCTs7Ci0rCXQ5MCkKLSsJCWJhc2ljX21hY2hpbmU9dDkwLWNy YXkKLSsJCW9zPS11bmljb3MKLSsJCTs7Ci0rCXRpYzU0eCB8IGM1NHgqKQotKwkJYmFzaWNfbWFj aGluZT10aWM1NHgtdW5rbm93bgotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCXRpYzU1eCB8IGM1NXgq KQotKwkJYmFzaWNfbWFjaGluZT10aWM1NXgtdW5rbm93bgotKwkJb3M9LWNvZmYKLSsJCTs7Ci0r CXRpYzZ4IHwgYzZ4KikKLSsJCWJhc2ljX21hY2hpbmU9dGljNngtdW5rbm93bgotKwkJb3M9LWNv ZmYKLSsJCTs7Ci0rCXRpbGUqKQotKwkJYmFzaWNfbWFjaGluZT10aWxlLXVua25vd24KLSsJCW9z PS1saW51eC1nbnUKLSsJCTs7Ci0rCXR4MzkpCi0rCQliYXNpY19tYWNoaW5lPW1pcHN0eDM5LXVu a25vd24KLSsJCTs7Ci0rCXR4MzllbCkKLSsJCWJhc2ljX21hY2hpbmU9bWlwc3R4MzllbC11bmtu b3duCi0rCQk7OwotKwl0b2FkMSkKLSsJCWJhc2ljX21hY2hpbmU9cGRwMTAteGtsCi0rCQlvcz0t dG9wczIwCi0rCQk7OwotKwl0b3dlciB8IHRvd2VyLTMyKQotKwkJYmFzaWNfbWFjaGluZT1tNjhr LW5jcgotKwkJOzsKLSsJdHBmKQotKwkJYmFzaWNfbWFjaGluZT1zMzkweC1pYm0KLSsJCW9zPS10 cGYKLSsJCTs7Ci0rCXVkaTI5aykKLSsJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKLSsJCW9zPS11 ZGkKLSsJCTs7Ci0rCXVsdHJhMykKLSsJCWJhc2ljX21hY2hpbmU9YTI5ay1ueXUKLSsJCW9zPS1z eW0xCi0rCQk7OwotKwl2ODEwIHwgbmVjdjgxMCkKLSsJCWJhc2ljX21hY2hpbmU9djgxMC1uZWMK LSsJCW9zPS1ub25lCi0rCQk7OwotKwl2YXh2KQotKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCi0r CQlvcz0tc3lzdgotKwkJOzsKLSsJdm1zKQotKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCi0rCQlv cz0tdm1zCi0rCQk7OwotKwl2cHAqfHZ4fHZ4LSopCi0rCQliYXNpY19tYWNoaW5lPWYzMDEtZnVq aXRzdQotKwkJOzsKLSsJdnh3b3Jrczk2MCkKLSsJCWJhc2ljX21hY2hpbmU9aTk2MC13cnMKLSsJ CW9zPS12eHdvcmtzCi0rCQk7OwotKwl2eHdvcmtzNjgpCi0rCQliYXNpY19tYWNoaW5lPW02OGst d3JzCi0rCQlvcz0tdnh3b3JrcwotKwkJOzsKLSsJdnh3b3JrczI5aykKLSsJCWJhc2ljX21hY2hp bmU9YTI5ay13cnMKLSsJCW9zPS12eHdvcmtzCi0rCQk7OwotKwl3NjUqKQotKwkJYmFzaWNfbWFj aGluZT13NjUtd2RjCi0rCQlvcz0tbm9uZQotKwkJOzsKLSsJdzg5ay0qKQotKwkJYmFzaWNfbWFj aGluZT1ocHBhMS4xLXdpbmJvbmQKLSsJCW9zPS1wcm9lbGYKLSsJCTs7Ci0rCXhib3gpCi0rCQli YXNpY19tYWNoaW5lPWk2ODYtcGMKLSsJCW9zPS1taW5ndzMyCi0rCQk7OwotKwl4cHMgfCB4cHMx MDApCi0rCQliYXNpY19tYWNoaW5lPXhwczEwMC1ob25leXdlbGwKLSsJCTs7Ci0rCXltcCkKLSsJ CWJhc2ljX21hY2hpbmU9eW1wLWNyYXkKLSsJCW9zPS11bmljb3MKLSsJCTs7Ci0rCXo4ay0qLWNv ZmYpCi0rCQliYXNpY19tYWNoaW5lPXo4ay11bmtub3duCi0rCQlvcz0tc2ltCi0rCQk7OwotKwl6 ODAtKi1jb2ZmKQotKwkJYmFzaWNfbWFjaGluZT16ODAtdW5rbm93bgotKwkJb3M9LXNpbQotKwkJ OzsKLSsJbm9uZSkKLSsJCWJhc2ljX21hY2hpbmU9bm9uZS1ub25lCi0rCQlvcz0tbm9uZQotKwkJ OzsKLSsKLSsjIEhlcmUgd2UgaGFuZGxlIHRoZSBkZWZhdWx0IG1hbnVmYWN0dXJlciBvZiBjZXJ0 YWluIENQVSB0eXBlcy4gIEl0IGlzIGluCi0rIyBzb21lIGNhc2VzIHRoZSBvbmx5IG1hbnVmYWN0 dXJlciwgaW4gb3RoZXJzLCBpdCBpcyB0aGUgbW9zdCBwb3B1bGFyLgotKwl3ODlrKQotKwkJYmFz aWNfbWFjaGluZT1ocHBhMS4xLXdpbmJvbmQKLSsJCTs7Ci0rCW9wNTBuKQotKwkJYmFzaWNfbWFj aGluZT1ocHBhMS4xLW9raQotKwkJOzsKLSsJb3A2MGMpCi0rCQliYXNpY19tYWNoaW5lPWhwcGEx LjEtb2tpCi0rCQk7OwotKwlyb21wKQotKwkJYmFzaWNfbWFjaGluZT1yb21wLWlibQotKwkJOzsK LSsJbW1peCkKLSsJCWJhc2ljX21hY2hpbmU9bW1peC1rbnV0aAotKwkJOzsKLSsJcnM2MDAwKQot KwkJYmFzaWNfbWFjaGluZT1yczYwMDAtaWJtCi0rCQk7OwotKwl2YXgpCi0rCQliYXNpY19tYWNo aW5lPXZheC1kZWMKLSsJCTs7Ci0rCXBkcDEwKQotKwkJIyB0aGVyZSBhcmUgbWFueSBjbG9uZXMs IHNvIERFQyBpcyBub3QgYSBzYWZlIGJldAotKwkJYmFzaWNfbWFjaGluZT1wZHAxMC11bmtub3du Ci0rCQk7OwotKwlwZHAxMSkKLSsJCWJhc2ljX21hY2hpbmU9cGRwMTEtZGVjCi0rCQk7OwotKwl3 ZTMyaykKLSsJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0Ci0rCQk7OwotKwlzaFsxMjM0XSB8IHNo WzI0XWEgfCBzaFsyNF1hZWIgfCBzaFszNF1lYiB8IHNoWzEyMzRdbGUgfCBzaFsyM11lbGUpCi0r CQliYXNpY19tYWNoaW5lPXNoLXVua25vd24KLSsJCTs7Ci0rCXNwYXJjIHwgc3BhcmN2OCB8IHNw YXJjdjkgfCBzcGFyY3Y5YiB8IHNwYXJjdjl2KQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4K LSsJCTs7Ci0rCWN5ZHJhKQotKwkJYmFzaWNfbWFjaGluZT1jeWRyYS1jeWRyb21lCi0rCQk7Owot KwlvcmlvbikKLSsJCWJhc2ljX21hY2hpbmU9b3Jpb24taGlnaGxldmVsCi0rCQk7OwotKwlvcmlv bjEwNSkKLSsJCWJhc2ljX21hY2hpbmU9Y2xpcHBlci1oaWdobGV2ZWwKLSsJCTs7Ci0rCW1hYyB8 IG1wdyB8IG1hYy1tcHcpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYXBwbGUKLSsJCTs7Ci0rCXBt YWMgfCBwbWFjLW1wdykKLSsJCWJhc2ljX21hY2hpbmU9cG93ZXJwYy1hcHBsZQotKwkJOzsKLSsJ Ki11bmtub3duKQotKwkJIyBNYWtlIHN1cmUgdG8gbWF0Y2ggYW4gYWxyZWFkeS1jYW5vbmljYWxp emVkIG1hY2hpbmUgbmFtZS4KLSsJCTs7Ci0rCSopCi0rCQllY2hvIEludmFsaWQgY29uZmlndXJh dGlvbiBcYCQxXCc6IG1hY2hpbmUgXGAkYmFzaWNfbWFjaGluZVwnIG5vdCByZWNvZ25pemVkIDE+ JjIKLSsJCWV4aXQgMQotKwkJOzsKLStlc2FjCi0rCi0rIyBIZXJlIHdlIGNhbm9uaWNhbGl6ZSBj ZXJ0YWluIGFsaWFzZXMgZm9yIG1hbnVmYWN0dXJlcnMuCi0rY2FzZSAkYmFzaWNfbWFjaGluZSBp bgotKwkqLWRpZ2l0YWwqKQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8 IHNlZCAncy9kaWdpdGFsLiovZGVjLydgCi0rCQk7OwotKwkqLWNvbW1vZG9yZSopCi0rCQliYXNp Y19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL2NvbW1vZG9yZS4qL2NibS8n YAotKwkJOzsKLSsJKikKLSsJCTs7Ci0rZXNhYwotKwotKyMgRGVjb2RlIG1hbnVmYWN0dXJlci1z cGVjaWZpYyBhbGlhc2VzIGZvciBjZXJ0YWluIG9wZXJhdGluZyBzeXN0ZW1zLgotKwotK2lmIFsg eCIkb3MiICE9IHgiIiBdCi0rdGhlbgotK2Nhc2UgJG9zIGluCi0rICAgICAgICAjIEZpcnN0IG1h dGNoIHNvbWUgc3lzdGVtIHR5cGUgYWxpYXNlcwotKyAgICAgICAgIyB0aGF0IG1pZ2h0IGdldCBj b25mdXNlZCB3aXRoIHZhbGlkIHN5c3RlbSB0eXBlcy4KLSsJIyAtc29sYXJpcyogaXMgYSBiYXNp YyBzeXN0ZW0gdHlwZSwgd2l0aCB0aGlzIG9uZSBleGNlcHRpb24uCi0rICAgICAgICAtYXVyb3Jh dXgpCi0rCSAgICAgICAgb3M9LWF1cm9yYXV4Ci0rCQk7OwotKwktc29sYXJpczEgfCAtc29sYXJp czEuKikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzb2xhcmlzMXxzdW5vczR8J2AKLSsJ CTs7Ci0rCS1zb2xhcmlzKQotKwkJb3M9LXNvbGFyaXMyCi0rCQk7OwotKwktc3ZyNCopCi0rCQlv cz0tc3lzdjQKLSsJCTs7Ci0rCS11bml4d2FyZSopCi0rCQlvcz0tc3lzdjQuMnV3Ci0rCQk7Owot KwktZ251L2xpbnV4KikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xnbnUvbGludXh8bGlu dXgtZ251fCdgCi0rCQk7OwotKwkjIEZpcnN0IGFjY2VwdCB0aGUgYmFzaWMgc3lzdGVtIHR5cGVz LgotKwkjIFRoZSBwb3J0YWJsZSBzeXN0ZW1zIGNvbWVzIGZpcnN0LgotKwkjIEVhY2ggYWx0ZXJu YXRpdmUgTVVTVCBFTkQgSU4gQSAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgotKwkjIC1z eXN2KiBpcyBub3QgaGVyZSBiZWNhdXNlIGl0IGNvbWVzIGxhdGVyLCBhZnRlciBzeXN2cjQuCi0r CS1nbnUqIHwgLWJzZCogfCAtbWFjaCogfCAtbWluaXgqIHwgLWdlbml4KiB8IC11bHRyaXgqIHwg LWlyaXgqIFwKLSsJICAgICAgfCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFp eCogfCAtY25rKiB8IC1zdW5vcyB8IC1zdW5vc1szNF0qXAotKwkgICAgICB8IC1ocHV4KiB8IC11 bm9zKiB8IC1vc2YqIHwgLWx1bmEqIHwgLWRndXgqIHwgLWF1cm9yYXV4KiB8IC1zb2xhcmlzKiBc Ci0rCSAgICAgIHwgLXN5bSogfCAta29wZW5zb2xhcmlzKiBcCi0rCSAgICAgIHwgLWFtaWdhb3Mq IHwgLWFtaWdhZG9zKiB8IC1tc2RvcyogfCAtbmV3c29zKiB8IC11bmljb3MqIHwgLWFvZiogXAot KwkgICAgICB8IC1hb3MqIHwgLWFyb3MqIFwKLSsJICAgICAgfCAtbmluZHkqIHwgLXZ4c2ltKiB8 IC12eHdvcmtzKiB8IC1lYm1vbiogfCAtaG1zKiB8IC1tdnMqIFwKLSsJICAgICAgfCAtY2xpeCog fCAtcmlzY29zKiB8IC11bmlwbHVzKiB8IC1pcmlzKiB8IC1ydHUqIHwgLXhlbml4KiBcCi0rCSAg ICAgIHwgLWhpdXgqIHwgLTM4NmJzZCogfCAta25ldGJzZCogfCAtbWlyYnNkKiB8IC1uZXRic2Qq IFwKLSsJICAgICAgfCAtb3BlbmJzZCogfCAtc29saWRic2QqIFwKLSsJICAgICAgfCAtZWtrb2Jz ZCogfCAta2ZyZWVic2QqIHwgLWZyZWVic2QqIHwgLXJpc2NpeCogfCAtbHlueG9zKiBcCi0rCSAg ICAgIHwgLWJvc3gqIHwgLW5leHRzdGVwKiB8IC1jeHV4KiB8IC1hb3V0KiB8IC1lbGYqIHwgLW9h YmkqIFwKLSsJICAgICAgfCAtcHR4KiB8IC1jb2ZmKiB8IC1lY29mZiogfCAtd2lubnQqIHwgLWRv bWFpbiogfCAtdnN0YSogXAotKwkgICAgICB8IC11ZGkqIHwgLWVhYmkqIHwgLWxpdGVzKiB8IC1p ZWVlKiB8IC1nbzMyKiB8IC1hdXgqIFwKLSsJICAgICAgfCAtY2hvcnVzb3MqIHwgLWNob3J1c3Jk YiogfCAtY2VnY2MqIFwKLSsJICAgICAgfCAtY3lnd2luKiB8IC1wZSogfCAtcHNvcyogfCAtbW9z cyogfCAtcHJvZWxmKiB8IC1ydGVtcyogXAotKwkgICAgICB8IC1taW5ndzMyKiB8IC1saW51eC1n bnUqIHwgLWxpbnV4LW5ld2xpYiogfCAtbGludXgtdWNsaWJjKiBcCi0rCSAgICAgIHwgLXV4cHYq IHwgLWJlb3MqIHwgLW1wZWl4KiB8IC11ZGsqIFwKLSsJICAgICAgfCAtaW50ZXJpeCogfCAtdXdp biogfCAtbWtzKiB8IC1yaGFwc29keSogfCAtZGFyd2luKiB8IC1vcGVuZWQqIFwKLSsJICAgICAg fCAtb3BlbnN0ZXAqIHwgLW9za2l0KiB8IC1jb25peCogfCAtcHczMiogfCAtbm9uc3RvcHV4KiBc Ci0rCSAgICAgIHwgLXN0b3JtLWNoYW9zKiB8IC10b3BzMTAqIHwgLXRlbmV4KiB8IC10b3BzMjAq IHwgLWl0cyogXAotKwkgICAgICB8IC1vczIqIHwgLXZvcyogfCAtcGFsbW9zKiB8IC11Y2xpbnV4 KiB8IC1udWNsZXVzKiBcCi0rCSAgICAgIHwgLW1vcnBob3MqIHwgLXN1cGVydXgqIHwgLXJ0bWsq IHwgLXJ0bWstbm92YSogfCAtd2luZGlzcyogXAotKwkgICAgICB8IC1wb3dlcm1heCogfCAtZG5p eCogfCAtbng2IHwgLW54NyB8IC1zZWkqIHwgLWRyYWdvbmZseSogXAotKwkgICAgICB8IC1za3lv cyogfCAtaGFpa3UqIHwgLXJkb3MqIHwgLXRvcHBlcnMqIHwgLWRyb3BzKiB8IC1lcyopCi0rCSMg UmVtZW1iZXIsIGVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4gKiwgdG8gbWF0Y2ggYSB2ZXJz aW9uIG51bWJlci4KLSsJCTs7Ci0rCS1xbngqKQotKwkJY2FzZSAkYmFzaWNfbWFjaGluZSBpbgot KwkJICAgIHg4Ni0qIHwgaSo4Ni0qKQotKwkJCTs7Ci0rCQkgICAgKikKLSsJCQlvcz0tbnRvJG9z Ci0rCQkJOzsKLSsJCWVzYWMKLSsJCTs7Ci0rCS1udG8tcW54KikKLSsJCTs7Ci0rCS1udG8qKQot KwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG50b3xudG8tcW54fCdgCi0rCQk7OwotKwktc2lt IHwgLWVzMTgwMCogfCAtaG1zKiB8IC14cmF5IHwgLW9zNjhrKiB8IC1ub25lKiB8IC12ODhyKiBc Ci0rCSAgICAgIHwgLXdpbmRvd3MqIHwgLW9zeCB8IC1hYnVnIHwgLW5ldHdhcmUqIHwgLW9zOSog fCAtYmVvcyogfCAtaGFpa3UqIFwKLSsJICAgICAgfCAtbWFjb3MqIHwgLW1wdyogfCAtbWFnaWMq IHwgLW1taXh3YXJlKiB8IC1tb245NjAqIHwgLWxuZXdzKikKLSsJCTs7Ci0rCS1tYWMqKQotKwkJ b3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG1hY3xtYWNvc3wnYAotKwkJOzsKLSsJLWxpbnV4LWRp ZXRsaWJjKQotKwkJb3M9LWxpbnV4LWRpZXRsaWJjCi0rCQk7OwotKwktbGludXgqKQotKwkJb3M9 YGVjaG8gJG9zIHwgc2VkIC1lICdzfGxpbnV4fGxpbnV4LWdudXwnYAotKwkJOzsKLSsJLXN1bm9z NSopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c3Vub3M1fHNvbGFyaXMyfCdgCi0rCQk7 OwotKwktc3Vub3M2KikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzdW5vczZ8c29sYXJp czN8J2AKLSsJCTs7Ci0rCS1vcGVuZWQqKQotKwkJb3M9LW9wZW5lZGl0aW9uCi0rCQk7OwotKyAg ICAgICAgLW9zNDAwKikKLSsJCW9zPS1vczQwMAotKwkJOzsKLSsJLXdpbmNlKikKLSsJCW9zPS13 aW5jZQotKwkJOzsKLSsJLW9zZnJvc2UqKQotKwkJb3M9LW9zZnJvc2UKLSsJCTs7Ci0rCS1vc2Yq KQotKwkJb3M9LW9zZgotKwkJOzsKLSsJLXV0ZWsqKQotKwkJb3M9LWJzZAotKwkJOzsKLSsJLWR5 bml4KikKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCS1hY2lzKikKLSsJCW9zPS1hb3MKLSsJCTs7Ci0r CS1hdGhlb3MqKQotKwkJb3M9LWF0aGVvcwotKwkJOzsKLSsJLXN5bGxhYmxlKikKLSsJCW9zPS1z eWxsYWJsZQotKwkJOzsKLSsJLTM4NmJzZCkKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCS1jdGl4KiB8 IC11dHMqKQotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCS1ub3ZhKikKLSsJCW9zPS1ydG1rLW5vdmEK LSsJCTs7Ci0rCS1uczIgKQotKwkJb3M9LW5leHRzdGVwMgotKwkJOzsKLSsJLW5zayopCi0rCQlv cz0tbnNrCi0rCQk7OwotKwkjIFByZXNlcnZlIHRoZSB2ZXJzaW9uIG51bWJlciBvZiBzaW5peDUu Ci0rCS1zaW5peDUuKikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzaW5peHxzeXN2fCdg Ci0rCQk7OwotKwktc2luaXgqKQotKwkJb3M9LXN5c3Y0Ci0rCQk7OwotKyAgICAgICAgLXRwZiop Ci0rCQlvcz0tdHBmCi0rCQk7OwotKwktdHJpdG9uKikKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJ LW9zcyopCi0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0rCS1zdnI0KQotKwkJb3M9LXN5c3Y0Ci0rCQk7 OwotKwktc3ZyMykKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJLXN5c3ZyNCkKLSsJCW9zPS1zeXN2 NAotKwkJOzsKLSsJIyBUaGlzIG11c3QgY29tZSBhZnRlciAtc3lzdnI0LgotKwktc3lzdiopCi0r CQk7OwotKwktb3NlKikKLSsJCW9zPS1vc2UKLSsJCTs7Ci0rCS1lczE4MDAqKQotKwkJb3M9LW9z ZQotKwkJOzsKLSsJLXhlbml4KQotKwkJb3M9LXhlbml4Ci0rCQk7OwotKwktKm1pbnQgfCAtbWlu dFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQotKwkJb3M9LW1pbnQKLSsJCTs7Ci0rCS1h cm9zKikKLSsJCW9zPS1hcm9zCi0rCQk7OwotKwkta2FvcyopCi0rCQlvcz0ta2FvcwotKwkJOzsK LSsJLXp2bW9lKQotKwkJb3M9LXp2bW9lCi0rCQk7OwotKwktZGljb3MqKQotKwkJb3M9LWRpY29z Ci0rCQk7OwotKwktbm9uZSkKLSsJCTs7Ci0rCSopCi0rCQkjIEdldCByaWQgb2YgdGhlIGAtJyBh dCB0aGUgYmVnaW5uaW5nIG9mICRvcy4KLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAncy9bXi1dKi0v LydgCi0rCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IHN5c3RlbSBcYCRvc1wn IG5vdCByZWNvZ25pemVkIDE+JjIKLSsJCWV4aXQgMQotKwkJOzsKLStlc2FjCi0rZWxzZQotKwot KyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGRlZmF1bHQgb3BlcmF0aW5nIHN5c3RlbXMgdGhhdCBjb21l IHdpdGggdmFyaW91cyBtYWNoaW5lcy4KLSsjIFRoZSB2YWx1ZSBzaG91bGQgYmUgd2hhdCB0aGUg dmVuZG9yIGN1cnJlbnRseSBzaGlwcyBvdXQgdGhlIGRvb3Igd2l0aCB0aGVpcgotKyMgbWFjaGlu ZSBvciBwdXQgYW5vdGhlciB3YXksIHRoZSBtb3N0IHBvcHVsYXIgb3MgcHJvdmlkZWQgd2l0aCB0 aGUgbWFjaGluZS4KLSsKLSsjIE5vdGUgdGhhdCBpZiB5b3UncmUgZ29pbmcgdG8gdHJ5IHRvIG1h dGNoICItTUFOVUZBQ1RVUkVSIiBoZXJlIChzYXksCi0rIyAiLXN1biIpLCB0aGVuIHlvdSBoYXZl IHRvIHRlbGwgdGhlIGNhc2Ugc3RhdGVtZW50IHVwIHRvd2FyZHMgdGhlIHRvcAotKyMgdGhhdCBN QU5VRkFDVFVSRVIgaXNuJ3QgYW4gb3BlcmF0aW5nIHN5c3RlbS4gIE90aGVyd2lzZSwgY29kZSBh Ym92ZQotKyMgd2lsbCBzaWduYWwgYW4gZXJyb3Igc2F5aW5nIHRoYXQgTUFOVUZBQ1RVUkVSIGlz bid0IGFuIG9wZXJhdGluZwotKyMgc3lzdGVtLCBhbmQgd2UnbGwgbmV2ZXIgZ2V0IHRvIHRoaXMg cG9pbnQuCi0rCi0rY2FzZSAkYmFzaWNfbWFjaGluZSBpbgotKyAgICAgICAgc2NvcmUtKikKLSsJ CW9zPS1lbGYKLSsJCTs7Ci0rICAgICAgICBzcHUtKikKLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCSot YWNvcm4pCi0rCQlvcz0tcmlzY2l4MS4yCi0rCQk7OwotKwlhcm0qLXJlYmVsKQotKwkJb3M9LWxp bnV4Ci0rCQk7OwotKwlhcm0qLXNlbWkpCi0rCQlvcz0tYW91dAotKwkJOzsKLSsgICAgICAgIGM0 eC0qIHwgdGljNHgtKikKLSsgICAgICAgIAlvcz0tY29mZgotKwkJOzsKLSsJIyBUaGlzIG11c3Qg Y29tZSBiZWZvcmUgdGhlICotZGVjIGVudHJ5LgotKwlwZHAxMC0qKQotKwkJb3M9LXRvcHMyMAot KwkJOzsKLSsJcGRwMTEtKikKLSsJCW9zPS1ub25lCi0rCQk7OwotKwkqLWRlYyB8IHZheC0qKQot KwkJb3M9LXVsdHJpeDQuMgotKwkJOzsKLSsJbTY4Ki1hcG9sbG8pCi0rCQlvcz0tZG9tYWluCi0r CQk7OwotKwlpMzg2LXN1bikKLSsJCW9zPS1zdW5vczQuMC4yCi0rCQk7OwotKwltNjgwMDAtc3Vu KQotKwkJb3M9LXN1bm9zMwotKwkJIyBUaGlzIGFsc28gZXhpc3RzIGluIHRoZSBjb25maWd1cmUg cHJvZ3JhbSwgYnV0IHdhcyBub3QgdGhlCi0rCQkjIGRlZmF1bHQuCi0rCQkjIG9zPS1zdW5vczQK LSsJCTs7Ci0rCW02OCotY2lzY28pCi0rCQlvcz0tYW91dAotKwkJOzsKLSsgICAgICAgIG1lcC0q KQotKwkJb3M9LWVsZgotKwkJOzsKLSsJbWlwcyotY2lzY28pCi0rCQlvcz0tZWxmCi0rCQk7Owot KwltaXBzKi0qKQotKwkJb3M9LWVsZgotKwkJOzsKLSsJb3IzMi0qKQotKwkJb3M9LWNvZmYKLSsJ CTs7Ci0rCSotdHRpKQkjIG11c3QgYmUgYmVmb3JlIHNwYXJjIGVudHJ5IG9yIHdlIGdldCB0aGUg d3Jvbmcgb3MuCi0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0rCXNwYXJjLSogfCAqLXN1bikKLSsJCW9z PS1zdW5vczQuMS4xCi0rCQk7OwotKwkqLWJlKQotKwkJb3M9LWJlb3MKLSsJCTs7Ci0rCSotaGFp a3UpCi0rCQlvcz0taGFpa3UKLSsJCTs7Ci0rCSotaWJtKQotKwkJb3M9LWFpeAotKwkJOzsKLSsg ICAgCSota251dGgpCi0rCQlvcz0tbW1peHdhcmUKLSsJCTs7Ci0rCSotd2VjKQotKwkJb3M9LXBy b2VsZgotKwkJOzsKLSsJKi13aW5ib25kKQotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJKi1va2kp Ci0rCQlvcz0tcHJvZWxmCi0rCQk7OwotKwkqLWhwKQotKwkJb3M9LWhwdXgKLSsJCTs7Ci0rCSot aGl0YWNoaSkKLSsJCW9zPS1oaXV4Ci0rCQk7OwotKwlpODYwLSogfCAqLWF0dCB8ICotbmNyIHwg Ki1hbHRvcyB8ICotbW90b3JvbGEgfCAqLWNvbnZlcmdlbnQpCi0rCQlvcz0tc3lzdgotKwkJOzsK LSsJKi1jYm0pCi0rCQlvcz0tYW1pZ2FvcwotKwkJOzsKLSsJKi1kZykKLSsJCW9zPS1kZ3V4Ci0r CQk7OwotKwkqLWRvbHBoaW4pCi0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0rCW02OGstY2N1cikKLSsJ CW9zPS1ydHUKLSsJCTs7Ci0rCW04OGstb21yb24qKQotKwkJb3M9LWx1bmEKLSsJCTs7Ci0rCSot bmV4dCApCi0rCQlvcz0tbmV4dHN0ZXAKLSsJCTs7Ci0rCSotc2VxdWVudCkKLSsJCW9zPS1wdHgK LSsJCTs7Ci0rCSotY3JkcykKLSsJCW9zPS11bm9zCi0rCQk7OwotKwkqLW5zKQotKwkJb3M9LWdl bml4Ci0rCQk7OwotKwlpMzcwLSopCi0rCQlvcz0tbXZzCi0rCQk7OwotKwkqLW5leHQpCi0rCQlv cz0tbmV4dHN0ZXAzCi0rCQk7OwotKwkqLWdvdWxkKQotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCSot aGlnaGxldmVsKQotKwkJb3M9LWJzZAotKwkJOzsKLSsJKi1lbmNvcmUpCi0rCQlvcz0tYnNkCi0r CQk7OwotKwkqLXNnaSkKLSsJCW9zPS1pcml4Ci0rCQk7OwotKwkqLXNpZW1lbnMpCi0rCQlvcz0t c3lzdjQKLSsJCTs7Ci0rCSotbWFzc2NvbXApCi0rCQlvcz0tcnR1Ci0rCQk7OwotKwlmMzBbMDFd LWZ1aml0c3UgfCBmNzAwLWZ1aml0c3UpCi0rCQlvcz0tdXhwdgotKwkJOzsKLSsJKi1yb202OGsp Ci0rCQlvcz0tY29mZgotKwkJOzsKLSsJKi0qYnVnKQotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCSot YXBwbGUpCi0rCQlvcz0tbWFjb3MKLSsJCTs7Ci0rCSotYXRhcmkqKQotKwkJb3M9LW1pbnQKLSsJ CTs7Ci0rCSopCi0rCQlvcz0tbm9uZQotKwkJOzsKLStlc2FjCi0rZmkKLSsKLSsjIEhlcmUgd2Ug aGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGtub3cgdGhlIG9zLCBhbmQgdGhlIENQVSB0eXBlLCBi dXQgbm90IHRoZQotKyMgbWFudWZhY3R1cmVyLiAgV2UgcGljayB0aGUgbG9naWNhbCBtYW51ZmFj dHVyZXIuCi0rdmVuZG9yPXVua25vd24KLStjYXNlICRiYXNpY19tYWNoaW5lIGluCi0rCSotdW5r bm93bikKLSsJCWNhc2UgJG9zIGluCi0rCQkJLXJpc2NpeCopCi0rCQkJCXZlbmRvcj1hY29ybgot KwkJCQk7OwotKwkJCS1zdW5vcyopCi0rCQkJCXZlbmRvcj1zdW4KLSsJCQkJOzsKLSsJCQktY25r KnwtYWl4KikKLSsJCQkJdmVuZG9yPWlibQotKwkJCQk7OwotKwkJCS1iZW9zKikKLSsJCQkJdmVu ZG9yPWJlCi0rCQkJCTs7Ci0rCQkJLWhwdXgqKQotKwkJCQl2ZW5kb3I9aHAKLSsJCQkJOzsKLSsJ CQktbXBlaXgqKQotKwkJCQl2ZW5kb3I9aHAKLSsJCQkJOzsKLSsJCQktaGl1eCopCi0rCQkJCXZl bmRvcj1oaXRhY2hpCi0rCQkJCTs7Ci0rCQkJLXVub3MqKQotKwkJCQl2ZW5kb3I9Y3JkcwotKwkJ CQk7OwotKwkJCS1kZ3V4KikKLSsJCQkJdmVuZG9yPWRnCi0rCQkJCTs7Ci0rCQkJLWx1bmEqKQot KwkJCQl2ZW5kb3I9b21yb24KLSsJCQkJOzsKLSsJCQktZ2VuaXgqKQotKwkJCQl2ZW5kb3I9bnMK LSsJCQkJOzsKLSsJCQktbXZzKiB8IC1vcGVuZWQqKQotKwkJCQl2ZW5kb3I9aWJtCi0rCQkJCTs7 Ci0rCQkJLW9zNDAwKikKLSsJCQkJdmVuZG9yPWlibQotKwkJCQk7OwotKwkJCS1wdHgqKQotKwkJ CQl2ZW5kb3I9c2VxdWVudAotKwkJCQk7OwotKwkJCS10cGYqKQotKwkJCQl2ZW5kb3I9aWJtCi0r CQkJCTs7Ci0rCQkJLXZ4c2ltKiB8IC12eHdvcmtzKiB8IC13aW5kaXNzKikKLSsJCQkJdmVuZG9y PXdycwotKwkJCQk7OwotKwkJCS1hdXgqKQotKwkJCQl2ZW5kb3I9YXBwbGUKLSsJCQkJOzsKLSsJ CQktaG1zKikKLSsJCQkJdmVuZG9yPWhpdGFjaGkKLSsJCQkJOzsKLSsJCQktbXB3KiB8IC1tYWNv cyopCi0rCQkJCXZlbmRvcj1hcHBsZQotKwkJCQk7OwotKwkJCS0qbWludCB8IC1taW50WzAtOV0q IHwgLSpNaU5UIHwgLU1pTlRbMC05XSopCi0rCQkJCXZlbmRvcj1hdGFyaQotKwkJCQk7OwotKwkJ CS12b3MqKQotKwkJCQl2ZW5kb3I9c3RyYXR1cwotKwkJCQk7OwotKwkJZXNhYwotKwkJYmFzaWNf bWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAicy91bmtub3duLyR2ZW5kb3IvImAK LSsJCTs7Ci0rZXNhYwotKwotK2VjaG8gJGJhc2ljX21hY2hpbmUkb3MKLStleGl0Ci0rCi0rIyBM b2NhbCB2YXJpYWJsZXM6Ci0rIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3Rp bWUtc3RhbXApCi0rIyB0aW1lLXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCi0rIyB0aW1lLXN0 YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQiCi0rIyB0aW1lLXN0YW1wLWVuZDogIiciCi0rIyBF bmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQgc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9jcHB1bml0Lm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL2NwcHVuaXQubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NwcHVuaXQubTQJMjAxMC0wMS0yMyAxMzoyNzowNC4w MDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsOTMgQEAKLStkbmwKLStkbmwgQU1fUEFUSF9DUFBV TklUKE1JTklNVU0tVkVSU0lPTiwgW0FDVElPTi1JRi1GT1VORCBbLCBBQ1RJT04tSUYtTk9ULUZP VU5EXV0pCi0rZG5sCi0rQUNfREVGVU4oW0FNX1BBVEhfQ1BQVU5JVF0sCi0rWwotKwotK0FDX0FS R19XSVRIKGNwcHVuaXQtcHJlZml4LFsgIC0td2l0aC1jcHB1bml0LXByZWZpeD1QRlggICBQcmVm aXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCi0rICAgICAgICAgICAg Y3BwdW5pdF9jb25maWdfcHJlZml4PSIkd2l0aHZhbCIsIGNwcHVuaXRfY29uZmlnX3ByZWZpeD0i IikKLStBQ19BUkdfV0lUSChjcHB1bml0LWV4ZWMtcHJlZml4LFsgIC0td2l0aC1jcHB1bml0LWV4 ZWMtcHJlZml4PVBGWCAgRXhlYyBwcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9w dGlvbmFsKV0sCi0rICAgICAgICAgICAgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiR3aXRo dmFsIiwgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiIpCi0rCi0rICBpZiB0ZXN0IHgkY3Bw dW5pdF9jb25maWdfZXhlY19wcmVmaXggIT0geCA7IHRoZW4KLSsgICAgIGNwcHVuaXRfY29uZmln X2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9JGNwcHVuaXRfY29uZmln X2V4ZWNfcHJlZml4IgotKyAgICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9IHhz ZXQgOyB0aGVuCi0rICAgICAgICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25maWdfZXhlY19w cmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCi0rICAgICBmaQotKyAgZmkKLSsgIGlmIHRlc3QgeCRj cHB1bml0X2NvbmZpZ19wcmVmaXggIT0geCA7IHRoZW4KLSsgICAgIGNwcHVuaXRfY29uZmlnX2Fy Z3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tcHJlZml4PSRjcHB1bml0X2NvbmZpZ19wcmVmaXgi Ci0rICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KLSsg ICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZpZ19wcmVmaXgvYmluL2NwcHVuaXQt Y29uZmlnCi0rICAgICBmaQotKyAgZmkKLSsKLSsgIEFDX1BBVEhfUFJPRyhDUFBVTklUX0NPTkZJ RywgY3BwdW5pdC1jb25maWcsIG5vKQotKyAgY3BwdW5pdF92ZXJzaW9uX21pbj0kMQotKwotKyAg QUNfTVNHX0NIRUNLSU5HKGZvciBDcHB1bml0IC0gdmVyc2lvbiA+PSAkY3BwdW5pdF92ZXJzaW9u X21pbikKLSsgIG5vX2NwcHVuaXQ9IiIKLSsgIGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJRyIgPSAi bm8iIDsgdGhlbgotKyAgICBBQ19NU0dfUkVTVUxUKG5vKQotKyAgICBub19jcHB1bml0PXllcwot KyAgZWxzZQotKyAgICBDUFBVTklUX0NGTEFHUz1gJENQUFVOSVRfQ09ORklHIC0tY2ZsYWdzYAot KyAgICBDUFBVTklUX0xJQlM9YCRDUFBVTklUX0NPTkZJRyAtLWxpYnNgCi0rICAgIENQUFVOSVRf VkVSU0lPTj1gJENQUFVOSVRfQ09ORklHIC0tdmVyc2lvbmAKLSsKLSsgICAgY3BwdW5pdF9tYWpv cl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAgICBzZWQgJ3Mv XChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDEvJ2AKLSsgICAgY3BwdW5p dF9taW5vcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAgICBz ZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDIvJ2AKLSsgICAg Y3BwdW5pdF9taWNyb192ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAg ICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDMvJ2AK LSsKLSsgICAgY3BwdW5pdF9tYWpvcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBc Ci0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0q XCkvXDEvJ2AKLSsgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9tYWpvcl9taW59IiA9ICJ4IiA7IHRo ZW4KLSsgICAgICAgY3BwdW5pdF9tYWpvcl9taW49MAotKyAgICBmaQotKyAgICAKLSsgICAgY3Bw dW5pdF9taW5vcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCi0rICAgICAgICAg ICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDIvJ2AKLSsg ICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taW5vcl9taW59IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAg Y3BwdW5pdF9taW5vcl9taW49MAotKyAgICBmaQotKyAgICAKLSsgICAgY3BwdW5pdF9taWNyb19t aW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChb WzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDMvJ2AKLSsgICAgaWYgdGVzdCAi eCR7Y3BwdW5pdF9taWNyb19taW59IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3BwdW5pdF9taWNy b19taW49MAotKyAgICBmaQotKwotKyAgICBjcHB1bml0X3ZlcnNpb25fcHJvcGVyPWBleHByIFwK LSsgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWFqb3JfbWluIFx8 IFwKLSsgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFqb3JfbWlu IFwmIFwKLSsgICAgICAgICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWlub3Jf bWluIFx8IFwKLSsgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFq b3JfbWluIFwmIFwKLSsgICAgICAgICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD0gJGNwcHVuaXRf bWlub3JfbWluIFwmIFwKLSsgICAgICAgICRjcHB1bml0X21pY3JvX3ZlcnNpb24gXD49ICRjcHB1 bml0X21pY3JvX21pbiBgCi0rCi0rICAgIGlmIHRlc3QgIiRjcHB1bml0X3ZlcnNpb25fcHJvcGVy IiA9ICIxIiA7IHRoZW4KLSsgICAgICBBQ19NU0dfUkVTVUxUKFskY3BwdW5pdF9tYWpvcl92ZXJz aW9uLiRjcHB1bml0X21pbm9yX3ZlcnNpb24uJGNwcHVuaXRfbWljcm9fdmVyc2lvbl0pCi0rICAg IGVsc2UKLSsgICAgICBBQ19NU0dfUkVTVUxUKG5vKQotKyAgICAgIG5vX2NwcHVuaXQ9eWVzCi0r ICAgIGZpCi0rICBmaQotKwotKyAgaWYgdGVzdCAieCRub19jcHB1bml0IiA9IHggOyB0aGVuCi0r ICAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKSAgICAgCi0rICBlbHNlCi0rICAgICBDUFBVTklU X0NGTEFHUz0iIgotKyAgICAgQ1BQVU5JVF9MSUJTPSIiCi0rICAgICBpZmVsc2UoWyQzXSwgLCA6 LCBbJDNdKQotKyAgZmkKLSsKLSsgIEFDX1NVQlNUKENQUFVOSVRfQ0ZMQUdTKQotKyAgQUNfU1VC U1QoQ1BQVU5JVF9MSUJTKQotKyAgQUNfU1VCU1QoQ1BQVU5JVF9WRVJTSU9OKQotK10pCi0rCi0r Ci0rCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2RlcGNvbXAgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZy9kZXBjb21wCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2Rl cGNvbXAJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvY29uZmlnL2RlcGNvbXAJMjAxMS0wNy0wMyAxODo0NDoyOC4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsNjMwIEBACi0rIyEgL2Jpbi9zaAotKyMgZGVwY29tcCAtIGNvbXBpbGUg YSBwcm9ncmFtIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVzIGFzIHNpZGUtZWZmZWN0cwotKwotK3Nj cmlwdHZlcnNpb249MjAwOS0wNC0yOC4yMTsgIyBVVEMKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5 OSwgMjAwMCwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOSBGcmVlCi0rIyBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK LSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChh dCB5b3VyIG9wdGlvbikKLSsjIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KLSsKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLSsjIEFzIGEgc3BlY2lh bCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSsj IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMg YQotKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5 IGluY2x1ZGUgaXQgdW5kZXIKLSsjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlv dSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLSsKLSsjIE9yaWdpbmFsbHkgd3Jp dHRlbiBieSBBbGV4YW5kcmUgT2xpdmEgPG9saXZhQGRjYy51bmljYW1wLmJyPi4KLSsKLStjYXNl ICQxIGluCi0rICAnJykKLSsgICAgIGVjaG8gIiQwOiBObyBjb21tYW5kLiAgVHJ5IFxgJDAgLS1o ZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iIDE+JjIKLSsgICAgIGV4aXQgMTsKLSsgICAgIDs7 Ci0rICAtaCB8IC0taCopCi0rICAgIGNhdCA8PFxFT0YKLStVc2FnZTogZGVwY29tcCBbLS1oZWxw XSBbLS12ZXJzaW9uXSBQUk9HUkFNIFtBUkdTXQotKwotK1J1biBQUk9HUkFNUyBBUkdTIHRvIGNv bXBpbGUgYSBmaWxlLCBnZW5lcmF0aW5nIGRlcGVuZGVuY2llcwotK2FzIHNpZGUtZWZmZWN0cy4K LSsKLStFbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0rICBkZXBtb2RlICAgICBEZXBlbmRlbmN5IHRy YWNraW5nIG1vZGUuCi0rICBzb3VyY2UgICAgICBTb3VyY2UgZmlsZSByZWFkIGJ5IGBQUk9HUkFN UyBBUkdTJy4KLSsgIG9iamVjdCAgICAgIE9iamVjdCBmaWxlIG91dHB1dCBieSBgUFJPR1JBTVMg QVJHUycuCi0rICBERVBESVIgICAgICBkaXJlY3Rvcnkgd2hlcmUgdG8gc3RvcmUgZGVwZW5kZW5j aWVzLgotKyAgZGVwZmlsZSAgICAgRGVwZW5kZW5jeSBmaWxlIHRvIG91dHB1dC4KLSsgIHRtcGRl cGZpbGUgIFRlbXBvcmFyeSBmaWxlIHRvIHVzZSB3aGVuIG91dHB1dGluZyBkZXBlbmRlbmNpZXMu Ci0rICBsaWJ0b29sICAgICBXaGV0aGVyIGxpYnRvb2wgaXMgdXNlZCAoeWVzL25vKS4KLSsKLStS ZXBvcnQgYnVncyB0byA8YnVnLWF1dG9tYWtlQGdudS5vcmc+LgotK0VPRgotKyAgICBleGl0ICQ/ Ci0rICAgIDs7Ci0rICAtdiB8IC0tdiopCi0rICAgIGVjaG8gImRlcGNvbXAgJHNjcmlwdHZlcnNp b24iCi0rICAgIGV4aXQgJD8KLSsgICAgOzsKLStlc2FjCi0rCi0raWYgdGVzdCAteiAiJGRlcG1v ZGUiIHx8IHRlc3QgLXogIiRzb3VyY2UiIHx8IHRlc3QgLXogIiRvYmplY3QiOyB0aGVuCi0rICBl Y2hvICJkZXBjb21wOiBWYXJpYWJsZXMgc291cmNlLCBvYmplY3QgYW5kIGRlcG1vZGUgbXVzdCBi ZSBzZXQiIDE+JjIKLSsgIGV4aXQgMQotK2ZpCi0rCi0rIyBEZXBlbmRlbmNpZXMgZm9yIHN1Yi9i YXIubyBvciBzdWIvYmFyLm9iaiBnbyBpbnRvIHN1Yi8uZGVwcy9iYXIuUG8uCi0rZGVwZmlsZT0k e2RlcGZpbGUtYGVjaG8gIiRvYmplY3QiIHwKLSsgIHNlZCAnc3xbXlxcL10qJHwnJHtERVBESVIt LmRlcHN9Jy8mfDtzfFwuXChbXi5dKlwpJHwuUFwxfDtzfFBvYmokfFBvfCdgfQotK3RtcGRlcGZp bGU9JHt0bXBkZXBmaWxlLWBlY2hvICIkZGVwZmlsZSIgfCBzZWQgJ3MvXC5cKFteLl0qXCkkLy5U XDEvJ2B9Ci0rCi0rcm0gLWYgIiR0bXBkZXBmaWxlIgotKwotKyMgU29tZSBtb2RlcyB3b3JrIGp1 c3QgbGlrZSBvdGhlciBtb2RlcywgYnV0IHVzZSBkaWZmZXJlbnQgZmxhZ3MuICBXZQotKyMgcGFy YW1ldGVyaXplIGhlcmUsIGJ1dCBzdGlsbCBsaXN0IHRoZSBtb2RlcyBpbiB0aGUgYmlnIGNhc2Ug YmVsb3csCi0rIyB0byBtYWtlIGRlcGVuZC5tNCBlYXNpZXIgdG8gd3JpdGUuICBOb3RlIHRoYXQg d2UgKmNhbm5vdCogdXNlIGEgY2FzZQotKyMgaGVyZSwgYmVjYXVzZSB0aGlzIGZpbGUgY2FuIG9u bHkgY29udGFpbiBvbmUgY2FzZSBzdGF0ZW1lbnQuCi0raWYgdGVzdCAiJGRlcG1vZGUiID0gaHA7 IHRoZW4KLSsgICMgSFAgY29tcGlsZXIgdXNlcyAtTSBhbmQgbm8gZXh0cmEgYXJnLgotKyAgZ2Nj ZmxhZz0tTQotKyAgZGVwbW9kZT1nY2MKLStmaQotKwotK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGRh c2hYbXN0ZG91dDsgdGhlbgotKyAgICMgVGhpcyBpcyBqdXN0IGxpa2UgZGFzaG1zdGRvdXQgd2l0 aCBhIGRpZmZlcmVudCBhcmd1bWVudC4KLSsgICBkYXNobWZsYWc9LXhNCi0rICAgZGVwbW9kZT1k YXNobXN0ZG91dAotK2ZpCi0rCi0rY3lncGF0aF91PSJjeWdwYXRoIC11IC1mIC0iCi0raWYgdGVz dCAiJGRlcG1vZGUiID0gbXN2Y21zeXM7IHRoZW4KLSsgICAjIFRoaXMgaXMganVzdCBsaWtlIG1z dmlzdWFsY3BwIGJ1dCB3L28gY3lncGF0aCB0cmFuc2xhdGlvbi4KLSsgICAjIEp1c3QgY29udmVy dCB0aGUgYmFja3NsYXNoLWVzY2FwZWQgYmFja3NsYXNoZXMgdG8gc2luZ2xlIGZvcndhcmQKLSsg ICAjIHNsYXNoZXMgdG8gc2F0aXNmeSBkZXBlbmQubTQKLSsgICBjeWdwYXRoX3U9InNlZCBzLFxc XFxcXFxcLC8sZyIKLSsgICBkZXBtb2RlPW1zdmlzdWFsY3BwCi0rZmkKLSsKLStjYXNlICIkZGVw bW9kZSIgaW4KLStnY2MzKQotKyMjIGdjYyAzIGltcGxlbWVudHMgZGVwZW5kZW5jeSB0cmFja2lu ZyB0aGF0IGRvZXMgZXhhY3RseSB3aGF0Ci0rIyMgd2Ugd2FudC4gIFlheSEgIE5vdGU6IGZvciBz b21lIHJlYXNvbiBsaWJ0b29sIDEuNCBkb2Vzbid0IGxpa2UKLSsjIyBpdCBpZiAtTUQgLU1QIGNv bWVzIGFmdGVyIHRoZSAtTUYgc3R1ZmYuICBIbW0uCi0rIyMgVW5mb3J0dW5hdGVseSwgRnJlZUJT RCBjODkgYWNjZXB0YW5jZSBvZiBmbGFncyBkZXBlbmRzIHVwb24KLSsjIyB0aGUgY29tbWFuZCBs aW5lIGFyZ3VtZW50IG9yZGVyOyBzbyBhZGQgdGhlIGZsYWdzIHdoZXJlIHRoZXkKLSsjIyBhcHBl YXIgaW4gZGVwZW5kMi5hbS4gIE5vdGUgdGhhdCB0aGUgc2xvd2Rvd24gaW5jdXJyZWQgaGVyZQot KyMjIGFmZmVjdHMgb25seSBjb25maWd1cmU6IGluIG1ha2VmaWxlcywgJUZBU1RERVAlIHNob3J0 Y3V0cyB0aGlzLgotKyAgZm9yIGFyZwotKyAgZG8KLSsgICAgY2FzZSAkYXJnIGluCi0rICAgIC1j KSBzZXQgZm5vcmQgIiRAIiAtTVQgIiRvYmplY3QiIC1NRCAtTVAgLU1GICIkdG1wZGVwZmlsZSIg IiRhcmciIDs7Ci0rICAgICopICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIgOzsKLSsgICAgZXNhYwot KyAgICBzaGlmdCAjIGZub3JkCi0rICAgIHNoaWZ0ICMgJGFyZwotKyAgZG9uZQotKyAgIiRAIgot KyAgc3RhdD0kPwotKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICBlbHNlCi0rICAg IHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgICAgZXhpdCAkc3RhdAotKyAgZmkKLSsgIG12ICIkdG1w ZGVwZmlsZSIgIiRkZXBmaWxlIgotKyAgOzsKLSsKLStnY2MpCi0rIyMgVGhlcmUgYXJlIHZhcmlv dXMgd2F5cyB0byBnZXQgZGVwZW5kZW5jeSBvdXRwdXQgZnJvbSBnY2MuICBIZXJlJ3MKLSsjIyB3 aHkgd2UgcGljayB0aGlzIHJhdGhlciBvYnNjdXJlIG1ldGhvZDoKLSsjIyAtIERvbid0IHdhbnQg dG8gdXNlIC1NRCBiZWNhdXNlIHdlJ2QgbGlrZSB0aGUgZGVwZW5kZW5jaWVzIHRvIGVuZAotKyMj ICAgdXAgaW4gYSBzdWJkaXIuICBIYXZpbmcgdG8gcmVuYW1lIGJ5IGhhbmQgaXMgdWdseS4KLSsj IyAgIChXZSBtaWdodCBlbmQgdXAgZG9pbmcgdGhpcyBhbnl3YXkgdG8gc3VwcG9ydCBvdGhlciBj b21waWxlcnMuKQotKyMjIC0gVGhlIERFUEVOREVOQ0lFU19PVVRQVVQgZW52aXJvbm1lbnQgdmFy aWFibGUgbWFrZXMgZ2NjIGFjdCBsaWtlCi0rIyMgICAtTU0sIG5vdCAtTSAoZGVzcGl0ZSB3aGF0 IHRoZSBkb2NzIHNheSkuCi0rIyMgLSBVc2luZyAtTSBkaXJlY3RseSBtZWFucyBydW5uaW5nIHRo ZSBjb21waWxlciB0d2ljZSAoZXZlbiB3b3JzZQotKyMjICAgdGhhbiByZW5hbWluZykuCi0rICBp ZiB0ZXN0IC16ICIkZ2NjZmxhZyI7IHRoZW4KLSsgICAgZ2NjZmxhZz0tTUQsCi0rICBmaQotKyAg IiRAIiAtV3AsIiRnY2NmbGFnJHRtcGRlcGZpbGUiCi0rICBzdGF0PSQ/Ci0rICBpZiB0ZXN0ICRz dGF0IC1lcSAwOyB0aGVuIDoKLSsgIGVsc2UKLSsgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAg ICBleGl0ICRzdGF0Ci0rICBmaQotKyAgcm0gLWYgIiRkZXBmaWxlIgotKyAgZWNobyAiJG9iamVj dCA6IFxcIiA+ICIkZGVwZmlsZSIKLSsgIGFscGhhPUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoKLSsjIyBUaGUgc2Vjb25kIC1lIGV4cHJlc3Npb24g aGFuZGxlcyBET1Mtc3R5bGUgZmlsZSBuYW1lcyB3aXRoIGRyaXZlIGxldHRlcnMuCi0rICBzZWQg LWUgJ3MvXlteOl0qOiAvIC8nIFwKLSsgICAgICAtZSAncy9eWyckYWxwaGEnXTpcL1teOl0qOiAv IC8nIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCi0rIyMgVGhpcyBuZXh0IHBpZWNlIG9m IG1hZ2ljIGF2b2lkcyB0aGUgYGRlbGV0ZWQgaGVhZGVyIGZpbGUnIHByb2JsZW0uCi0rIyMgVGhl IHByb2JsZW0gaXMgdGhhdCB3aGVuIGEgaGVhZGVyIGZpbGUgd2hpY2ggYXBwZWFycyBpbiBhIC5Q IGZpbGUKLSsjIyBpcyBkZWxldGVkLCB0aGUgZGVwZW5kZW5jeSBjYXVzZXMgbWFrZSB0byBkaWUg KGJlY2F1c2UgdGhlcmUgaXMKLSsjIyB0eXBpY2FsbHkgbm8gd2F5IHRvIHJlYnVpbGQgdGhlIGhl YWRlcikuICBXZSBhdm9pZCB0aGlzIGJ5IGFkZGluZwotKyMjIGR1bW15IGRlcGVuZGVuY2llcyBm b3IgZWFjaCBoZWFkZXIgZmlsZS4gIFRvbyBiYWQgZ2NjIGRvZXNuJ3QgZG8KLSsjIyB0aGlzIGZv ciB1cyBkaXJlY3RseS4KLSsgIHRyICcgJyAnCi0rJyA8ICIkdG1wZGVwZmlsZSIgfAotKyMjIFNv bWUgdmVyc2lvbnMgb2YgZ2NjIHB1dCBhIHNwYWNlIGJlZm9yZSB0aGUgYDonLiAgT24gdGhlIHRo ZW9yeQotKyMjIHRoYXQgdGhlIHNwYWNlIG1lYW5zIHNvbWV0aGluZywgd2UgYWRkIGEgc3BhY2Ug dG8gdGhlIG91dHB1dCBhcwotKyMjIHdlbGwuCi0rIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBV WCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24KLSsjIyBjb3JyZWN0bHku ICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgot KyAgICBzZWQgLWUgJ3MvXlxcJC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3Mv JC8gOi8nID4+ICIkZGVwZmlsZSIKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0rCi0r aHApCi0rICAjIFRoaXMgY2FzZSBleGlzdHMgb25seSB0byBsZXQgZGVwZW5kLm00IGRvIGl0cyB3 b3JrLiAgSXQgd29ya3MgYnkKLSsgICMgbG9va2luZyBhdCB0aGUgdGV4dCBvZiB0aGlzIHNjcmlw dC4gIFRoaXMgY2FzZSB3aWxsIG5ldmVyIGJlIHJ1biwKLSsgICMgc2luY2UgaXQgaXMgY2hlY2tl ZCBmb3IgYWJvdmUuCi0rICBleGl0IDEKLSsgIDs7Ci0rCi0rc2dpKQotKyAgaWYgdGVzdCAiJGxp YnRvb2wiID0geWVzOyB0aGVuCi0rICAgICIkQCIgIi1XcCwtTUR1cGRhdGUsJHRtcGRlcGZpbGUi Ci0rICBlbHNlCi0rICAgICIkQCIgLU1EdXBkYXRlICIkdG1wZGVwZmlsZSIKLSsgIGZpCi0rICBz dGF0PSQ/Ci0rICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSsgIGVsc2UKLSsgICAgcm0g LWYgIiR0bXBkZXBmaWxlIgotKyAgICBleGl0ICRzdGF0Ci0rICBmaQotKyAgcm0gLWYgIiRkZXBm aWxlIgotKwotKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuICAjIHllcywgdGhlIHNv dXJjZWZpbGUgZGVwZW5kIG9uIG90aGVyIGZpbGVzCi0rICAgIGVjaG8gIiRvYmplY3QgOiBcXCIg PiAiJGRlcGZpbGUiCi0rCi0rICAgICMgQ2xpcCBvZmYgdGhlIGluaXRpYWwgZWxlbWVudCAodGhl IGRlcGVuZGVudCkuICBEb24ndCB0cnkgdG8gYmUKLSsgICAgIyBjbGV2ZXIgYW5kIHJlcGxhY2Ug dGhpcyB3aXRoIHNlZCBjb2RlLCBhcyBJUklYIHNlZCB3b24ndCBoYW5kbGUKLSsgICAgIyBsaW5l cyB3aXRoIG1vcmUgdGhhbiBhIGZpeGVkIG51bWJlciBvZiBjaGFyYWN0ZXJzICg0MDk2IGluCi0r ICAgICMgSVJJWCA2LjIgc2VkLCA4MTkyIGluIElSSVggNi41KS4gIFdlIGFsc28gcmVtb3ZlIGNv bW1lbnQgbGluZXM7Ci0rICAgICMgdGhlIElSSVggY2MgYWRkcyBjb21tZW50cyBsaWtlIGAjOmZl YycgdG8gdGhlIGVuZCBvZiB0aGUKLSsgICAgIyBkZXBlbmRlbmN5IGxpbmUuCi0rICAgIHRyICcg JyAnCi0rJyA8ICIkdG1wZGVwZmlsZSIgXAotKyAgICB8IHNlZCAtZSAncy9eLipcLm86Ly8nIC1l ICdzLyMuKiQvLycgLWUgJy9eJC8gZCcgfCBcCi0rICAgIHRyICcKLSsnICcgJyA+PiAiJGRlcGZp bGUiCi0rICAgIGVjaG8gPj4gIiRkZXBmaWxlIgotKwotKyAgICAjIFRoZSBzZWNvbmQgcGFzcyBn ZW5lcmF0ZXMgYSBkdW1teSBlbnRyeSBmb3IgZWFjaCBoZWFkZXIgZmlsZS4KLSsgICAgdHIgJyAn ICcKLSsnIDwgIiR0bXBkZXBmaWxlIiBcCi0rICAgfCBzZWQgLWUgJ3MvXi4qXC5vOi8vJyAtZSAn cy8jLiokLy8nIC1lICcvXiQvIGQnIC1lICdzLyQvOi8nIFwKLSsgICA+PiAiJGRlcGZpbGUiCi0r ICBlbHNlCi0rICAgICMgVGhlIHNvdXJjZWZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZGVwZW5k ZW5jaWVzLCBzbyBqdXN0Ci0rICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2 b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQotKyAgICAjICJpbmNsdWRlIGJhc2VuYW1lLlBs byIgc2NoZW1lLgotKyAgICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgotKyAgZmkKLSsgIHJt IC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0rCi0rYWl4KQotKyAgIyBUaGUgQyBmb3IgQUlYIENv bXBpbGVyIHVzZXMgLU0gYW5kIG91dHB1dHMgdGhlIGRlcGVuZGVuY2llcwotKyAgIyBpbiBhIC51 IGZpbGUuICBJbiBvbGRlciB2ZXJzaW9ucywgdGhpcyBmaWxlIGFsd2F5cyBsaXZlcyBpbiB0aGUK LSsgICMgY3VycmVudCBkaXJlY3RvcnkuICBBbHNvLCB0aGUgQUlYIGNvbXBpbGVyIHB1dHMgYCRv YmplY3Q6JyBhdCB0aGUKLSsgICMgc3RhcnQgb2YgZWFjaCBsaW5lOyAkb2JqZWN0IGRvZXNuJ3Qg aGF2ZSBkaXJlY3RvcnkgaW5mb3JtYXRpb24uCi0rICAjIFZlcnNpb24gNiB1c2VzIHRoZSBkaXJl Y3RvcnkgaW4gYm90aCBjYXNlcy4KLSsgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8 L1teL10qJHwvfCdgCi0rICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KLSsgIGJh c2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAn cy9cLmxvJC8vJ2AKLSsgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotKyAgICB0bXBk ZXBmaWxlMT0kZGlyJGJhc2UudQotKyAgICB0bXBkZXBmaWxlMj0kYmFzZS51Ci0rICAgIHRtcGRl cGZpbGUzPSRkaXIubGlicy8kYmFzZS51Ci0rICAgICIkQCIgLVdjLC1NCi0rICBlbHNlCi0rICAg IHRtcGRlcGZpbGUxPSRkaXIkYmFzZS51Ci0rICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS51Ci0r ICAgIHRtcGRlcGZpbGUzPSRkaXIkYmFzZS51Ci0rICAgICIkQCIgLU0KLSsgIGZpCi0rICBzdGF0 PSQ/Ci0rCi0rICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSsgIGVsc2UKLSsgICAgcm0g LWYgIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIKLSsgICAgZXhp dCAkc3RhdAotKyAgZmkKLSsKLSsgIGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmlsZTEiICIk dG1wZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiCi0rICBkbwotKyAgICB0ZXN0IC1mICIkdG1wZGVw ZmlsZSIgJiYgYnJlYWsKLSsgIGRvbmUKLSsgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhl bgotKyAgICAjIEVhY2ggbGluZSBpcyBvZiB0aGUgZm9ybSBgZm9vLm86IGRlcGVuZGVudC5oJy4K LSsgICAgIyBEbyB0d28gcGFzc2VzLCBvbmUgdG8ganVzdCBjaGFuZ2UgdGhlc2UgdG8KLSsgICAg IyBgJG9iamVjdDogZGVwZW5kZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDon LgotKyAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgPCAiJHRtcGRlcGZpbGUi ID4gIiRkZXBmaWxlIgotKyAgICAjIFRoYXQncyBhIHRhYiBhbmQgYSBzcGFjZSBpbiB0aGUgW10u Ci0rICAgIHNlZCAtZSAncyxeLipcLlthLXpdKjpbCSBdKiwsJyAtZSAncywkLDosJyA8ICIkdG1w ZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgotKyAgZWxzZQotKyAgICAjIFRoZSBzb3VyY2VmaWxlIGRv ZXMgbm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAotKyAgICAjIHN0b3JlIGEg ZHVtbXkgY29tbWVudCBsaW5lLCB0byBhdm9pZCBlcnJvcnMgd2l0aCB0aGUgTWFrZWZpbGUKLSsg ICAgIyAiaW5jbHVkZSBiYXNlbmFtZS5QbG8iIHNjaGVtZS4KLSsgICAgZWNobyAiI2R1bW15IiA+ ICIkZGVwZmlsZSIKLSsgIGZpCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7OwotKwotK2lj YykKLSsgICMgSW50ZWwncyBDIGNvbXBpbGVyIHVuZGVyc3RhbmRzIGAtTUQgLU1GIGZpbGUnLiAg SG93ZXZlciBvbgotKyAgIyAgICBpY2MgLU1EIC1NRiBmb28uZCAtYyAtbyBzdWIvZm9vLm8gc3Vi L2Zvby5jCi0rICAjIElDQyA3LjAgd2lsbCBmaWxsIGZvby5kIHdpdGggc29tZXRoaW5nIGxpa2UK LSsgICMgICAgZm9vLm86IHN1Yi9mb28uYwotKyAgIyAgICBmb28ubzogc3ViL2Zvby5oCi0rICAj IHdoaWNoIGlzIHdyb25nLiAgV2Ugd2FudDoKLSsgICMgICAgc3ViL2Zvby5vOiBzdWIvZm9vLmMK LSsgICMgICAgc3ViL2Zvby5vOiBzdWIvZm9vLmgKLSsgICMgICAgc3ViL2Zvby5jOgotKyAgIyAg ICBzdWIvZm9vLmg6Ci0rICAjIElDQyA3LjEgd2lsbCBvdXRwdXQKLSsgICMgICAgZm9vLm86IHN1 Yi9mb28uYyBzdWIvZm9vLmgKLSsgICMgYW5kIHdpbGwgd3JhcCBsb25nIGxpbmVzIHVzaW5nIFwg OgotKyAgIyAgICBmb28ubzogc3ViL2Zvby5jIC4uLiBcCi0rICAjICAgICBzdWIvZm9vLmggLi4u IFwKLSsgICMgICAgIC4uLgotKwotKyAgIiRAIiAtTUQgLU1GICIkdG1wZGVwZmlsZSIKLSsgIHN0 YXQ9JD8KLSsgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQotKyAgICBybSAt ZiAiJHRtcGRlcGZpbGUiCi0rICAgIGV4aXQgJHN0YXQKLSsgIGZpCi0rICBybSAtZiAiJGRlcGZp bGUiCi0rICAjIEVhY2ggbGluZSBpcyBvZiB0aGUgZm9ybSBgZm9vLm86IGRlcGVuZGVudC5oJywK LSsgICMgb3IgYGZvby5vOiBkZXAxLmggZGVwMi5oIFwnLCBvciBgIGRlcDMuaCBkZXA0LmggXCcu Ci0rICAjIERvIHR3byBwYXNzZXMsIG9uZSB0byBqdXN0IGNoYW5nZSB0aGVzZSB0bwotKyAgIyBg JG9iamVjdDogZGVwZW5kZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgot KyAgc2VkICJzLF5bXjpdKjosJG9iamVjdCA6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxl IgotKyAgIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNz IHRoaXMgaW52b2NhdGlvbgotKyAgIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBz ZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgotKyAgc2VkICdzLF5bXjpdKjogXCguKlwp JCxcMSw7cy9eXFwkLy87L14kL2Q7LzokL2QnIDwgIiR0bXBkZXBmaWxlIiB8Ci0rICAgIHNlZCAt ZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgOzsK LSsKLStocDIpCi0rICAjIFRoZSAiaHAiIHN0YW56YSBhYm92ZSBkb2VzIG5vdCB3b3JrIHdpdGgg YUNDIChDKyspIGFuZCBIUCdzIGlhNjQKLSsgICMgY29tcGlsZXJzLCB3aGljaCBoYXZlIGludGVn cmF0ZWQgcHJlcHJvY2Vzc29ycy4gIFRoZSBjb3JyZWN0IG9wdGlvbgotKyAgIyB0byB1c2Ugd2l0 aCB0aGVzZSBpcyArTWFrZWQ7IGl0IHdyaXRlcyBkZXBlbmRlbmNpZXMgdG8gYSBmaWxlIG5hbWVk Ci0rICAjICdmb28uZCcsIHdoaWNoIGxhbmRzIG5leHQgdG8gdGhlIG9iamVjdCBmaWxlLCB3aGVy ZXZlciB0aGF0Ci0rICAjIGhhcHBlbnMgdG8gYmUuCi0rICAjIE11Y2ggb2YgdGhpcyBpcyBzaW1p bGFyIHRvIHRoZSB0cnU2NCBjYXNlOyBzZWUgY29tbWVudHMgdGhlcmUuCi0rICBkaXI9YGVjaG8g IiRvYmplY3QiIHwgc2VkIC1lICdzfC9bXi9dKiR8L3wnYAotKyAgdGVzdCAieCRkaXIiID0gIngk b2JqZWN0IiAmJiBkaXI9Ci0rICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiov fHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCi0rICBpZiB0ZXN0ICIkbGlidG9vbCIg PSB5ZXM7IHRoZW4KLSsgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLmQKLSsgICAgdG1wZGVwZmls ZTI9JGRpci5saWJzLyRiYXNlLmQKLSsgICAgIiRAIiAtV2MsK01ha2VkCi0rICBlbHNlCi0rICAg IHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5kCi0rICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5kCi0r ICAgICIkQCIgK01ha2VkCi0rICBmaQotKyAgc3RhdD0kPwotKyAgaWYgdGVzdCAkc3RhdCAtZXEg MDsgdGhlbiA6Ci0rICBlbHNlCi0rICAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZp bGUyIgotKyAgICAgZXhpdCAkc3RhdAotKyAgZmkKLSsKLSsgIGZvciB0bXBkZXBmaWxlIGluICIk dG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiCi0rICBkbwotKyAgICB0ZXN0IC1mICIkdG1wZGVw ZmlsZSIgJiYgYnJlYWsKLSsgIGRvbmUKLSsgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhl bgotKyAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgIiR0bXBkZXBmaWxlIiA+ ICIkZGVwZmlsZSIKLSsgICAgIyBBZGQgYGRlcGVuZGVudC5oOicgbGluZXMuCi0rICAgIHNlZCAt bmUgJzIsJHsKLSsJICAgICAgIHMvXiAqLy8KLSsJICAgICAgIHMvIFxcKiQvLwotKwkgICAgICAg cy8kLzovCi0rCSAgICAgICBwCi0rCSAgICAgfScgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUi Ci0rICBlbHNlCi0rICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCi0rICBmaQotKyAgcm0g LWYgIiR0bXBkZXBmaWxlIiAiJHRtcGRlcGZpbGUyIgotKyAgOzsKLSsKLSt0cnU2NCkKLSsgICAj IFRoZSBUcnU2NCBjb21waWxlciB1c2VzIC1NRCB0byBnZW5lcmF0ZSBkZXBlbmRlbmNpZXMgYXMg YSBzaWRlCi0rICAgIyBlZmZlY3QuICBgY2MgLU1EIC1vIGZvby5vIC4uLicgcHV0cyB0aGUgZGVw ZW5kZW5jaWVzIGludG8gYGZvby5vLmQnLgotKyAgICMgQXQgbGVhc3Qgb24gQWxwaGEvUmVkaGF0 IDYuMSwgQ29tcGFxIENDQyBWNi4yLTUwNCBzZWVtcyB0byBwdXQKLSsgICAjIGRlcGVuZGVuY2ll cyBpbiBgZm9vLmQnIGluc3RlYWQsIHNvIHdlIGNoZWNrIGZvciB0aGF0IHRvby4KLSsgICAjIFN1 YmRpcmVjdG9yaWVzIGFyZSByZXNwZWN0ZWQuCi0rICAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNl ZCAtZSAnc3wvW14vXSokfC98J2AKLSsgICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRp cj0KLSsgICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wu byQvLycgLWUgJ3MvXC5sbyQvLydgCi0rCi0rICAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0 aGVuCi0rICAgICAgIyBXaXRoIFRydTY0IGNjLCBzaGFyZWQgb2JqZWN0cyBjYW4gYWxzbyBiZSB1 c2VkIHRvIG1ha2UgYQotKyAgICAgICMgc3RhdGljIGxpYnJhcnkuICBUaGlzIG1lY2hhbmlzbSBp cyB1c2VkIGluIGxpYnRvb2wgMS40IHNlcmllcyB0bwotKyAgICAgICMgaGFuZGxlIGJvdGggc2hh cmVkIGFuZCBzdGF0aWMgbGlicmFyaWVzIGluIGEgc2luZ2xlIGNvbXBpbGF0aW9uLgotKyAgICAg ICMgV2l0aCBsaWJ0b29sIDEuNCwgZGVwZW5kZW5jaWVzIHdlcmUgb3V0cHV0IGluICRkaXIubGli cy8kYmFzZS5sby5kLgotKyAgICAgICMKLSsgICAgICAjIFdpdGggbGlidG9vbCAxLjUgdGhpcyBl eGNlcHRpb24gd2FzIHJlbW92ZWQsIGFuZCBsaWJ0b29sIG5vdwotKyAgICAgICMgZ2VuZXJhdGVz IDIgc2VwYXJhdGUgb2JqZWN0cyBmb3IgdGhlIDIgbGlicmFyaWVzLiAgVGhlc2UgdHdvCi0rICAg ICAgIyBjb21waWxhdGlvbnMgb3V0cHV0IGRlcGVuZGVuY2llcyBpbiAkZGlyLmxpYnMvJGJhc2Uu by5kIGFuZAotKyAgICAgICMgaW4gJGRpciRiYXNlLm8uZC4gIFdlIGhhdmUgdG8gY2hlY2sgZm9y IGJvdGggZmlsZXMsIGJlY2F1c2UKLSsgICAgICAjIG9uZSBvZiB0aGUgdHdvIGNvbXBpbGF0aW9u cyBjYW4gYmUgZGlzYWJsZWQuICBXZSBzaG91bGQgcHJlZmVyCi0rICAgICAgIyAkZGlyJGJhc2Uu by5kIG92ZXIgJGRpci5saWJzLyRiYXNlLm8uZCBiZWNhdXNlIHRoZSBsYXR0ZXIgaXMKLSsgICAg ICAjIGF1dG9tYXRpY2FsbHkgY2xlYW5lZCB3aGVuIC5saWJzLyBpcyBkZWxldGVkLCB3aGlsZSBp Z25vcmluZwotKyAgICAgICMgdGhlIGZvcm1lciB3b3VsZCBjYXVzZSBhIGRpc3RjbGVhbmNoZWNr IHBhbmljLgotKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIubGlicy8kYmFzZS5sby5kICAgIyBsaWJ0 b29sIDEuNAotKyAgICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5vLmQgICAgICAgICAgIyBsaWJ0 b29sIDEuNQotKyAgICAgIHRtcGRlcGZpbGUzPSRkaXIubGlicy8kYmFzZS5vLmQgICAgIyBsaWJ0 b29sIDEuNQotKyAgICAgIHRtcGRlcGZpbGU0PSRkaXIubGlicy8kYmFzZS5kICAgICAgIyBDb21w YXEgQ0NDIFY2LjItNTA0Ci0rICAgICAgIiRAIiAtV2MsLU1ECi0rICAgZWxzZQotKyAgICAgIHRt cGRlcGZpbGUxPSRkaXIkYmFzZS5vLmQKLSsgICAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UuZAot KyAgICAgIHRtcGRlcGZpbGUzPSRkaXIkYmFzZS5kCi0rICAgICAgdG1wZGVwZmlsZTQ9JGRpciRi YXNlLmQKLSsgICAgICAiJEAiIC1NRAotKyAgIGZpCi0rCi0rICAgc3RhdD0kPwotKyAgIGlmIHRl c3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgIGVsc2UKLSsgICAgICBybSAtZiAiJHRtcGRlcGZp bGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIiAiJHRtcGRlcGZpbGU0IgotKyAgICAg IGV4aXQgJHN0YXQKLSsgICBmaQotKwotKyAgIGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmls ZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmlsZTQiCi0rICAgZG8K LSsgICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhawotKyAgIGRvbmUKLSsgICBpZiB0 ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KLSsgICAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6 LCRvYmplY3Q6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgotKyAgICAgICMgVGhhdCdz IGEgdGFiIGFuZCBhIHNwYWNlIGluIHRoZSBbXS4KLSsgICAgICBzZWQgLWUgJ3MsXi4qXC5bYS16 XSo6WwkgXSosLCcgLWUgJ3MsJCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSsg ICBlbHNlCi0rICAgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKLSsgICBmaQotKyAgIHJt IC1mICIkdG1wZGVwZmlsZSIKLSsgICA7OwotKwotKyNub3NpZGVlZmZlY3QpCi0rICAjIFRoaXMg Y29tbWVudCBhYm92ZSBpcyB1c2VkIGJ5IGF1dG9tYWtlIHRvIHRlbGwgc2lkZS1lZmZlY3QKLSsg ICMgZGVwZW5kZW5jeSB0cmFja2luZyBtZWNoYW5pc21zIGZyb20gc2xvd2VyIG9uZXMuCi0rCi0r ZGFzaG1zdGRvdXQpCi0rICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRo aXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKLSsgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9j ZXNzZWQgZmlsZSB0byBzdGRvdXQsIHJlZ2FyZGxlc3Mgb2YgLW8uCi0rICAiJEAiIHx8IGV4aXQg JD8KLSsKLSsgICMgUmVtb3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCi0rICBpZiB0ZXN0ICIkbGli dG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21w aWxlJzsgZG8KLSsgICAgICBzaGlmdAotKyAgICBkb25lCi0rICAgIHNoaWZ0Ci0rICBmaQotKwot KyAgIyBSZW1vdmUgYC1vICRvYmplY3QnLgotKyAgSUZTPSIgIgotKyAgZm9yIGFyZwotKyAgZG8K LSsgICAgY2FzZSAkYXJnIGluCi0rICAgIC1vKQotKyAgICAgIHNoaWZ0Ci0rICAgICAgOzsKLSsg ICAgJG9iamVjdCkKLSsgICAgICBzaGlmdAotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgc2V0 IGZub3JkICIkQCIgIiRhcmciCi0rICAgICAgc2hpZnQgIyBmbm9yZAotKyAgICAgIHNoaWZ0ICMg JGFyZwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsKLSsgIHRlc3QgLXogIiRkYXNo bWZsYWciICYmIGRhc2htZmxhZz0tTQotKyAgIyBSZXF1aXJlIGF0IGxlYXN0IHR3byBjaGFyYWN0 ZXJzIGJlZm9yZSBzZWFyY2hpbmcgZm9yIGA6JwotKyAgIyBpbiB0aGUgdGFyZ2V0IG5hbWUuICBU aGlzIGlzIHRvIGNvcGUgd2l0aCBET1Mtc3R5bGUgZmlsZW5hbWVzOgotKyAgIyBhIGRlcGVuZGVu Y3kgc3VjaCBhcyBgYzovZm9vL2JhcicgY291bGQgYmUgc2VlbiBhcyB0YXJnZXQgYGMnIG90aGVy d2lzZS4KLSsgICIkQCIgJGRhc2htZmxhZyB8Ci0rICAgIHNlZCAnczpeWyAgXSpbXjogXVteOl1b XjpdKlw6WyAgICBdKjonIiRvYmplY3QiJ1w6IDonID4gIiR0bXBkZXBmaWxlIgotKyAgcm0gLWYg IiRkZXBmaWxlIgotKyAgY2F0IDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKLSsgIHRyICcg JyAnCi0rJyA8ICIkdG1wZGVwZmlsZSIgfCBcCi0rIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBV WCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24KLSsjIyBjb3JyZWN0bHku ICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgot KyAgICBzZWQgLWUgJ3MvXlxcJC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3Mv JC8gOi8nID4+ICIkZGVwZmlsZSIKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0rCi0r ZGFzaFhtc3Rkb3V0KQotKyAgIyBUaGlzIGNhc2Ugb25seSBleGlzdHMgdG8gc2F0aXNmeSBkZXBl bmQubTQuICBJdCBpcyBuZXZlciBhY3R1YWxseQotKyAgIyBydW4sIGFzIHRoaXMgbW9kZSBpcyBz cGVjaWFsbHkgcmVjb2duaXplZCBpbiB0aGUgcHJlYW1ibGUuCi0rICBleGl0IDEKLSsgIDs7Ci0r Ci0rbWFrZWRlcGVuZCkKLSsgICIkQCIgfHwgZXhpdCAkPwotKyAgIyBSZW1vdmUgYW55IExpYnRv b2wgY2FsbAotKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0rICAgIHdoaWxlIHRl c3QgIlgkMSIgIT0gJ1gtLW1vZGU9Y29tcGlsZSc7IGRvCi0rICAgICAgc2hpZnQKLSsgICAgZG9u ZQotKyAgICBzaGlmdAotKyAgZmkKLSsgICMgWCBtYWtlZGVwZW5kCi0rICBzaGlmdAotKyAgY2xl YXJlZD1ubyBlYXQ9bm8KLSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGNhc2UgJGNsZWFyZWQgaW4K LSsgICAgbm8pCi0rICAgICAgc2V0ICIiOyBzaGlmdAotKyAgICAgIGNsZWFyZWQ9eWVzIDs7Ci0r ICAgIGVzYWMKLSsgICAgaWYgdGVzdCAkZWF0ID0geWVzOyB0aGVuCi0rICAgICAgZWF0PW5vCi0r ICAgICAgY29udGludWUKLSsgICAgZmkKLSsgICAgY2FzZSAiJGFyZyIgaW4KLSsgICAgLUQqfC1J KikKLSsgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyI7IHNoaWZ0IDs7Ci0rICAgICMgU3RyaXAg YW55IG9wdGlvbiB0aGF0IG1ha2VkZXBlbmQgbWF5IG5vdCB1bmRlcnN0YW5kLiAgUmVtb3ZlCi0r ICAgICMgdGhlIG9iamVjdCB0b28sIG90aGVyd2lzZSBtYWtlZGVwZW5kIHdpbGwgcGFyc2UgaXQg YXMgYSBzb3VyY2UgZmlsZS4KLSsgICAgLWFyY2gpCi0rICAgICAgZWF0PXllcyA7OwotKyAgICAt Knwkb2JqZWN0KQotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgc2V0IGZub3JkICIkQCIgIiRh cmciOyBzaGlmdCA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rICBvYmpfc3VmZml4PWBlY2hvICIk b2JqZWN0IiB8IHNlZCAncy9eLipcLi8uLydgCi0rICB0b3VjaCAiJHRtcGRlcGZpbGUiCi0rICAk e01BS0VERVBFTkQtbWFrZWRlcGVuZH0gLW8iJG9ial9zdWZmaXgiIC1mIiR0bXBkZXBmaWxlIiAi JEAiCi0rICBybSAtZiAiJGRlcGZpbGUiCi0rICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBm aWxlIgotKyAgc2VkICcxLDJkJyAiJHRtcGRlcGZpbGUiIHwgdHIgJyAnICcKLSsnIHwgXAotKyMj IFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBp bnZvY2F0aW9uCi0rIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9j YXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KLSsgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9k JyAtZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAi JHRtcGRlcGZpbGUiICIkdG1wZGVwZmlsZSIuYmFrCi0rICA7OwotKwotK2NwcCkKLSsgICMgSW1w b3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICpt dXN0KgotKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4K LSsgICIkQCIgfHwgZXhpdCAkPwotKwotKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4K LSsgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotKyAgICB3aGlsZSB0ZXN0ICJYJDEi ICE9ICdYLS1tb2RlPWNvbXBpbGUnOyBkbwotKyAgICAgIHNoaWZ0Ci0rICAgIGRvbmUKLSsgICAg c2hpZnQKLSsgIGZpCi0rCi0rICAjIFJlbW92ZSBgLW8gJG9iamVjdCcuCi0rICBJRlM9IiAiCi0r ICBmb3IgYXJnCi0rICBkbwotKyAgICBjYXNlICRhcmcgaW4KLSsgICAgLW8pCi0rICAgICAgc2hp ZnQKLSsgICAgICA7OwotKyAgICAkb2JqZWN0KQotKyAgICAgIHNoaWZ0Ci0rICAgICAgOzsKLSsg ICAgKikKLSsgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIKLSsgICAgICBzaGlmdCAjIGZub3Jk Ci0rICAgICAgc2hpZnQgIyAkYXJnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKwot KyAgIiRAIiAtRSB8Ci0rICAgIHNlZCAtbiAtZSAnL14jIFswLTldWzAtOV0qICJcKFteIl0qXCki LiovIHM6OiBcMSBcXDpwJyBcCi0rICAgICAgIC1lICcvXiNsaW5lIFswLTldWzAtOV0qICJcKFte Il0qXCkiLiovIHM6OiBcMSBcXDpwJyB8Ci0rICAgIHNlZCAnJCBzOiBcXCQ6OicgPiAiJHRtcGRl cGZpbGUiCi0rICBybSAtZiAiJGRlcGZpbGUiCi0rICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRk ZXBmaWxlIgotKyAgY2F0IDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCi0rICBzZWQgPCAi JHRtcGRlcGZpbGUiICcvXiQvZDtzL14gLy87cy8gXFwkLy87cy8kLyA6LycgPj4gIiRkZXBmaWxl IgotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgOzsKLSsKLSttc3Zpc3VhbGNwcCkKLSsgICMg SW1wb3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVy ICptdXN0KgotKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91 dC4KLSsgICIkQCIgfHwgZXhpdCAkPwotKwotKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9v bC4KLSsgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotKyAgICB3aGlsZSB0ZXN0ICJY JDEiICE9ICdYLS1tb2RlPWNvbXBpbGUnOyBkbwotKyAgICAgIHNoaWZ0Ci0rICAgIGRvbmUKLSsg ICAgc2hpZnQKLSsgIGZpCi0rCi0rICBJRlM9IiAiCi0rICBmb3IgYXJnCi0rICBkbwotKyAgICBj YXNlICIkYXJnIiBpbgotKyAgICAtbykKLSsgICAgICBzaGlmdAotKyAgICAgIDs7Ci0rICAgICRv YmplY3QpCi0rICAgICAgc2hpZnQKLSsgICAgICA7OwotKyAgICAiLUdtInwiL0dtInwiLUdpInwi L0dpInwiLVpJInwiL1pJIikKLSsJc2V0IGZub3JkICIkQCIKLSsJc2hpZnQKLSsJc2hpZnQKLSsJ OzsKLSsgICAgKikKLSsJc2V0IGZub3JkICIkQCIgIiRhcmciCi0rCXNoaWZ0Ci0rCXNoaWZ0Ci0r CTs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsgICIkQCIgLUUgMj4vZGV2L251bGwgfAotKyAgc2Vk IC1uICcvXiNsaW5lIFswLTldWzAtOV0qICJcKFteIl0qXCkiLyBzOjpcMTpwJyB8ICRjeWdwYXRo X3UgfCBzb3J0IC11ID4gIiR0bXBkZXBmaWxlIgotKyAgcm0gLWYgIiRkZXBmaWxlIgotKyAgZWNo byAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKLSsgIHNlZCA8ICIkdG1wZGVwZmlsZSIgLW4g LWUgJ3MlICVcXCAlZycgLWUgJy9eXCguKlwpJC8gczo6CVwxIFxcOnAnID4+ICIkZGVwZmlsZSIK LSsgIGVjaG8gIgkiID4+ICIkZGVwZmlsZSIKLSsgIHNlZCA8ICIkdG1wZGVwZmlsZSIgLW4gLWUg J3MlICVcXCAlZycgLWUgJy9eXCguKlwpJC8gczo6XDFcOjpwJyA+PiAiJGRlcGZpbGUiCi0rICBy bSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7OwotKwotK21zdmNtc3lzKQotKyAgIyBUaGlzIGNhc2Ug ZXhpc3RzIG9ubHkgdG8gbGV0IGRlcGVuZC5tNCBkbyBpdHMgd29yay4gIEl0IHdvcmtzIGJ5Ci0r ICAjIGxvb2tpbmcgYXQgdGhlIHRleHQgb2YgdGhpcyBzY3JpcHQuICBUaGlzIGNhc2Ugd2lsbCBu ZXZlciBiZSBydW4sCi0rICAjIHNpbmNlIGl0IGlzIGNoZWNrZWQgZm9yIGFib3ZlLgotKyAgZXhp dCAxCi0rICA7OwotKwotK25vbmUpCi0rICBleGVjICIkQCIKLSsgIDs7Ci0rCi0rKikKLSsgIGVj aG8gIlVua25vd24gZGVwbW9kZSAkZGVwbW9kZSIgMT4mMgotKyAgZXhpdCAxCi0rICA7OwotK2Vz YWMKLSsKLStleGl0IDAKLSsKLSsjIExvY2FsIFZhcmlhYmxlczoKLSsjIG1vZGU6IHNoZWxsLXNj cmlwdAotKyMgc2gtaW5kZW50YXRpb246IDIKLSsjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmls ZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9u PSIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgotKyMgdGltZS1z dGFtcC10aW1lLXpvbmU6ICJVVEMiCi0rIyB0aW1lLXN0YW1wLWVuZDogIjsgIyBVVEMiCi0rIyBF bmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2luc3RhbGwtc2ggc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9pbnN0YWxsLXNoCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL2luc3RhbGwtc2gJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2luc3RhbGwtc2gJMjAxMS0wNy0wMyAxODo0NDoyNy4w MDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTIwIEBACi0rIyEvYmluL3NoCi0rIyBpbnN0YWxs IC0gaW5zdGFsbCBhIHByb2dyYW0sIHNjcmlwdCwgb3IgZGF0YWZpbGUKLSsKLStzY3JpcHR2ZXJz aW9uPTIwMDktMDQtMjguMjE7ICMgVVRDCi0rCi0rIyBUaGlzIG9yaWdpbmF0ZXMgZnJvbSBYMTFS NSAobWl0L3V0aWwvc2NyaXB0cy9pbnN0YWxsLnNoKSwgd2hpY2ggd2FzCi0rIyBsYXRlciByZWxl YXNlZCBpbiBYMTFSNiAoeGMvY29uZmlnL3V0aWwvaW5zdGFsbC5zaCkgd2l0aCB0aGUKLSsjIGZv bGxvd2luZyBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UuCi0rIwotKyMgQ29weXJpZ2h0IChDKSAxOTk0 IFggQ29uc29ydGl1bQotKyMKLSsjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKLSsjIG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LCB0bwotKyMgZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk aW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKLSsjIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgotKyMgc2Vs bCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0 aGUgU29mdHdhcmUgaXMKLSsjIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6Ci0rIwotKyMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLSsjIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotKyMKLSsjIFRIRSBT T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E LCBFWFBSRVNTIE9SCi0rIyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI RSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSsjIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUK LSsjIFggQ09OU09SVElVTSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF UiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSsjIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP UiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQy0KLSsjIFRJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09G VFdBUkUuCi0rIwotKyMgRXhjZXB0IGFzIGNvbnRhaW5lZCBpbiB0aGlzIG5vdGljZSwgdGhlIG5h bWUgb2YgdGhlIFggQ29uc29ydGl1bSBzaGFsbCBub3QKLSsjIGJlIHVzZWQgaW4gYWR2ZXJ0aXNp bmcgb3Igb3RoZXJ3aXNlIHRvIHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFsLQot KyMgaW5ncyBpbiB0aGlzIFNvZnR3YXJlIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBhdXRob3JpemF0 aW9uIGZyb20gdGhlIFggQ29uc29yLQotKyMgdGl1bS4KLSsjCi0rIwotKyMgRlNGIGNoYW5nZXMg dG8gdGhpcyBmaWxlIGFyZSBpbiB0aGUgcHVibGljIGRvbWFpbi4KLSsjCi0rIyBDYWxsaW5nIHRo aXMgc2NyaXB0IGluc3RhbGwtc2ggaXMgcHJlZmVycmVkIG92ZXIgaW5zdGFsbC5zaCwgdG8gcHJl dmVudAotKyMgYG1ha2UnIGltcGxpY2l0IHJ1bGVzIGZyb20gY3JlYXRpbmcgYSBmaWxlIGNhbGxl ZCBpbnN0YWxsIGZyb20gaXQKLSsjIHdoZW4gdGhlcmUgaXMgbm8gTWFrZWZpbGUuCi0rIwotKyMg VGhpcyBzY3JpcHQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBCU0QgaW5zdGFsbCBzY3JpcHQsIGJ1 dCB3YXMgd3JpdHRlbgotKyMgZnJvbSBzY3JhdGNoLgotKwotK25sPScKLSsnCi0rSUZTPSIgIiIJ JG5sIgotKwotKyMgc2V0IERPSVRQUk9HIHRvIGVjaG8gdG8gdGVzdCB0aGlzIHNjcmlwdAotKwot KyMgRG9uJ3QgdXNlIDotIHNpbmNlIDQuM0JTRCBhbmQgZWFybGllciBzaGVsbHMgZG9uJ3QgbGlr ZSBpdC4KLStkb2l0PSR7RE9JVFBST0ctfQotK2lmIHRlc3QgLXogIiRkb2l0IjsgdGhlbgotKyAg ZG9pdF9leGVjPWV4ZWMKLStlbHNlCi0rICBkb2l0X2V4ZWM9JGRvaXQKLStmaQotKwotKyMgUHV0 IGluIGFic29sdXRlIGZpbGUgbmFtZXMgaWYgeW91IGRvbid0IGhhdmUgdGhlbSBpbiB5b3VyIHBh dGg7Ci0rIyBvciB1c2UgZW52aXJvbm1lbnQgdmFycy4KLSsKLStjaGdycHByb2c9JHtDSEdSUFBS T0ctY2hncnB9Ci0rY2htb2Rwcm9nPSR7Q0hNT0RQUk9HLWNobW9kfQotK2Nob3ducHJvZz0ke0NI T1dOUFJPRy1jaG93bn0KLStjbXBwcm9nPSR7Q01QUFJPRy1jbXB9Ci0rY3Bwcm9nPSR7Q1BQUk9H LWNwfQotK21rZGlycHJvZz0ke01LRElSUFJPRy1ta2Rpcn0KLSttdnByb2c9JHtNVlBST0ctbXZ9 Ci0rcm1wcm9nPSR7Uk1QUk9HLXJtfQotK3N0cmlwcHJvZz0ke1NUUklQUFJPRy1zdHJpcH0KLSsK LStwb3NpeF9nbG9iPSc/JwotK2luaXRpYWxpemVfcG9zaXhfZ2xvYj0nCi0rICB0ZXN0ICIkcG9z aXhfZ2xvYiIgIT0gIj8iIHx8IHsKLSsgICAgaWYgKHNldCAtZikgMj4vZGV2L251bGw7IHRoZW4K LSsgICAgICBwb3NpeF9nbG9iPQotKyAgICBlbHNlCi0rICAgICAgcG9zaXhfZ2xvYj06Ci0rICAg IGZpCi0rICB9Ci0rJwotKwotK3Bvc2l4X21rZGlyPQotKwotKyMgRGVzaXJlZCBtb2RlIG9mIGlu c3RhbGxlZCBmaWxlLgotK21vZGU9MDc1NQotKwotK2NoZ3JwY21kPQotK2NobW9kY21kPSRjaG1v ZHByb2cKLStjaG93bmNtZD0KLSttdmNtZD0kbXZwcm9nCi0rcm1jbWQ9IiRybXByb2cgLWYiCi0r c3RyaXBjbWQ9Ci0rCi0rc3JjPQotK2RzdD0KLStkaXJfYXJnPQotK2RzdF9hcmc9Ci0rCi0rY29w eV9vbl9jaGFuZ2U9ZmFsc2UKLStub190YXJnZXRfZGlyZWN0b3J5PQotKwotK3VzYWdlPSJcCi0r VXNhZ2U6ICQwIFtPUFRJT05dLi4uIFstVF0gU1JDRklMRSBEU1RGSUxFCi0rICAgb3I6ICQwIFtP UFRJT05dLi4uIFNSQ0ZJTEVTLi4uIERJUkVDVE9SWQotKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAt dCBESVJFQ1RPUlkgU1JDRklMRVMuLi4KLSsgICBvcjogJDAgW09QVElPTl0uLi4gLWQgRElSRUNU T1JJRVMuLi4KLSsKLStJbiB0aGUgMXN0IGZvcm0sIGNvcHkgU1JDRklMRSB0byBEU1RGSUxFLgot K0luIHRoZSAybmQgYW5kIDNyZCwgY29weSBhbGwgU1JDRklMRVMgdG8gRElSRUNUT1JZLgotK0lu IHRoZSA0dGgsIGNyZWF0ZSBESVJFQ1RPUklFUy4KLSsKLStPcHRpb25zOgotKyAgICAgLS1oZWxw ICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdC4KLSsgICAgIC0tdmVyc2lvbiAgZGlzcGxh eSB2ZXJzaW9uIGluZm8gYW5kIGV4aXQuCi0rCi0rICAtYyAgICAgICAgICAgIChpZ25vcmVkKQot KyAgLUMgICAgICAgICAgICBpbnN0YWxsIG9ubHkgaWYgZGlmZmVyZW50IChwcmVzZXJ2ZSB0aGUg bGFzdCBkYXRhIG1vZGlmaWNhdGlvbiB0aW1lKQotKyAgLWQgICAgICAgICAgICBjcmVhdGUgZGly ZWN0b3JpZXMgaW5zdGVhZCBvZiBpbnN0YWxsaW5nIGZpbGVzLgotKyAgLWcgR1JPVVAgICAgICAk Y2hncnBwcm9nIGluc3RhbGxlZCBmaWxlcyB0byBHUk9VUC4KLSsgIC1tIE1PREUgICAgICAgJGNo bW9kcHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gTU9ERS4KLSsgIC1vIFVTRVIgICAgICAgJGNob3du cHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gVVNFUi4KLSsgIC1zICAgICAgICAgICAgJHN0cmlwcHJv ZyBpbnN0YWxsZWQgZmlsZXMuCi0rICAtdCBESVJFQ1RPUlkgIGluc3RhbGwgaW50byBESVJFQ1RP UlkuCi0rICAtVCAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvciBpZiBEU1RGSUxFIGlzIGEgZGly ZWN0b3J5LgotKwotK0Vudmlyb25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSB0aGUgZGVmYXVsdCBj b21tYW5kczoKLSsgIENIR1JQUFJPRyBDSE1PRFBST0cgQ0hPV05QUk9HIENNUFBST0cgQ1BQUk9H IE1LRElSUFJPRyBNVlBST0cKLSsgIFJNUFJPRyBTVFJJUFBST0cKLSsiCi0rCi0rd2hpbGUgdGVz dCAkIyAtbmUgMDsgZG8KLSsgIGNhc2UgJDEgaW4KLSsgICAgLWMpIDs7Ci0rCi0rICAgIC1DKSBj b3B5X29uX2NoYW5nZT10cnVlOzsKLSsKLSsgICAgLWQpIGRpcl9hcmc9dHJ1ZTs7Ci0rCi0rICAg IC1nKSBjaGdycGNtZD0iJGNoZ3JwcHJvZyAkMiIKLSsJc2hpZnQ7OwotKwotKyAgICAtLWhlbHAp IGVjaG8gIiR1c2FnZSI7IGV4aXQgJD87OwotKwotKyAgICAtbSkgbW9kZT0kMgotKwljYXNlICRt b2RlIGluCi0rCSAgKicgJyogfCAqJwknKiB8IConCi0rJyoJICB8IConKicqIHwgKic/JyogfCAq J1snKikKLSsJICAgIGVjaG8gIiQwOiBpbnZhbGlkIG1vZGU6ICRtb2RlIiA+JjIKLSsJICAgIGV4 aXQgMTs7Ci0rCWVzYWMKLSsJc2hpZnQ7OwotKwotKyAgICAtbykgY2hvd25jbWQ9IiRjaG93bnBy b2cgJDIiCi0rCXNoaWZ0OzsKLSsKLSsgICAgLXMpIHN0cmlwY21kPSRzdHJpcHByb2c7OwotKwot KyAgICAtdCkgZHN0X2FyZz0kMgotKwlzaGlmdDs7Ci0rCi0rICAgIC1UKSBub190YXJnZXRfZGly ZWN0b3J5PXRydWU7OwotKwotKyAgICAtLXZlcnNpb24pIGVjaG8gIiQwICRzY3JpcHR2ZXJzaW9u IjsgZXhpdCAkPzs7Ci0rCi0rICAgIC0tKQlzaGlmdAotKwlicmVhazs7Ci0rCi0rICAgIC0qKQll Y2hvICIkMDogaW52YWxpZCBvcHRpb246ICQxIiA+JjIKLSsJZXhpdCAxOzsKLSsKLSsgICAgKikg IGJyZWFrOzsKLSsgIGVzYWMKLSsgIHNoaWZ0Ci0rZG9uZQotKwotK2lmIHRlc3QgJCMgLW5lIDAg JiYgdGVzdCAteiAiJGRpcl9hcmckZHN0X2FyZyI7IHRoZW4KLSsgICMgV2hlbiAtZCBpcyB1c2Vk LCBhbGwgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLgotKyAg IyBXaGVuIC10IGlzIHVzZWQsIHRoZSBkZXN0aW5hdGlvbiBpcyBhbHJlYWR5IHNwZWNpZmllZC4K LSsgICMgT3RoZXJ3aXNlLCB0aGUgbGFzdCBhcmd1bWVudCBpcyB0aGUgZGVzdGluYXRpb24uICBS ZW1vdmUgaXQgZnJvbSAkQC4KLSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGlmIHRlc3QgLW4gIiRk c3RfYXJnIjsgdGhlbgotKyAgICAgICMgJEAgaXMgbm90IGVtcHR5OiBpdCBjb250YWlucyBhdCBs ZWFzdCAkYXJnLgotKyAgICAgIHNldCBmbm9yZCAiJEAiICIkZHN0X2FyZyIKLSsgICAgICBzaGlm dCAjIGZub3JkCi0rICAgIGZpCi0rICAgIHNoaWZ0ICMgYXJnCi0rICAgIGRzdF9hcmc9JGFyZwot KyAgZG9uZQotK2ZpCi0rCi0raWYgdGVzdCAkIyAtZXEgMDsgdGhlbgotKyAgaWYgdGVzdCAteiAi JGRpcl9hcmciOyB0aGVuCi0rICAgIGVjaG8gIiQwOiBubyBpbnB1dCBmaWxlIHNwZWNpZmllZC4i ID4mMgotKyAgICBleGl0IDEKLSsgIGZpCi0rICAjIEl0J3MgT0sgdG8gY2FsbCBgaW5zdGFsbC1z aCAtZCcgd2l0aG91dCBhcmd1bWVudC4KLSsgICMgVGhpcyBjYW4gaGFwcGVuIHdoZW4gY3JlYXRp bmcgY29uZGl0aW9uYWwgZGlyZWN0b3JpZXMuCi0rICBleGl0IDAKLStmaQotKwotK2lmIHRlc3Qg LXogIiRkaXJfYXJnIjsgdGhlbgotKyAgdHJhcCAnKGV4aXQgJD8pOyBleGl0JyAxIDIgMTMgMTUK LSsKLSsgICMgU2V0IHVtYXNrIHNvIGFzIG5vdCB0byBjcmVhdGUgdGVtcHMgd2l0aCB0b28tZ2Vu ZXJvdXMgbW9kZXMuCi0rICAjIEhvd2V2ZXIsICdzdHJpcCcgcmVxdWlyZXMgYm90aCByZWFkIGFu ZCB3cml0ZSBhY2Nlc3MgdG8gdGVtcHMuCi0rICBjYXNlICRtb2RlIGluCi0rICAgICMgT3B0aW1p emUgY29tbW9uIGNhc2VzLgotKyAgICAqNjQ0KSBjcF91bWFzaz0xMzM7OwotKyAgICAqNzU1KSBj cF91bWFzaz0yMjs7Ci0rCi0rICAgICpbMC03XSkKLSsgICAgICBpZiB0ZXN0IC16ICIkc3RyaXBj bWQiOyB0aGVuCi0rCXVfcGx1c19ydz0KLSsgICAgICBlbHNlCi0rCXVfcGx1c19ydz0nJSAyMDAn Ci0rICAgICAgZmkKLSsgICAgICBjcF91bWFzaz1gZXhwciAnKCcgNzc3IC0gJG1vZGUgJSAxMDAw ICcpJyAkdV9wbHVzX3J3YDs7Ci0rICAgICopCi0rICAgICAgaWYgdGVzdCAteiAiJHN0cmlwY21k IjsgdGhlbgotKwl1X3BsdXNfcnc9Ci0rICAgICAgZWxzZQotKwl1X3BsdXNfcnc9LHUrcncKLSsg ICAgICBmaQotKyAgICAgIGNwX3VtYXNrPSRtb2RlJHVfcGx1c19ydzs7Ci0rICBlc2FjCi0rZmkK LSsKLStmb3Igc3JjCi0rZG8KLSsgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4K LSsgIGNhc2UgJHNyYyBpbgotKyAgICAtKikgc3JjPS4vJHNyYzs7Ci0rICBlc2FjCi0rCi0rICBp ZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4KLSsgICAgZHN0PSRzcmMKLSsgICAgZHN0ZGlyPSRk c3QKLSsgICAgdGVzdCAtZCAiJGRzdGRpciIKLSsgICAgZHN0ZGlyX3N0YXR1cz0kPwotKyAgZWxz ZQotKwotKyAgICAjIFdhaXRpbmcgZm9yIHRoaXMgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhlICIkY3Bw cm9nICRzcmMgJGRzdHRtcCIgY29tbWFuZAotKyAgICAjIG1pZ2h0IGNhdXNlIGRpcmVjdG9yaWVz IHRvIGJlIGNyZWF0ZWQsIHdoaWNoIHdvdWxkIGJlIGVzcGVjaWFsbHkgYmFkCi0rICAgICMgaWYg JHNyYyAoYW5kIHRodXMgJGRzdHRtcCkgY29udGFpbnMgJyonLgotKyAgICBpZiB0ZXN0ICEgLWYg IiRzcmMiICYmIHRlc3QgISAtZCAiJHNyYyI7IHRoZW4KLSsgICAgICBlY2hvICIkMDogJHNyYyBk b2VzIG5vdCBleGlzdC4iID4mMgotKyAgICAgIGV4aXQgMQotKyAgICBmaQotKwotKyAgICBpZiB0 ZXN0IC16ICIkZHN0X2FyZyI7IHRoZW4KLSsgICAgICBlY2hvICIkMDogbm8gZGVzdGluYXRpb24g c3BlY2lmaWVkLiIgPiYyCi0rICAgICAgZXhpdCAxCi0rICAgIGZpCi0rCi0rICAgIGRzdD0kZHN0 X2FyZwotKyAgICAjIFByb3RlY3QgbmFtZXMgc3RhcnRpbmcgd2l0aCBgLScuCi0rICAgIGNhc2Ug JGRzdCBpbgotKyAgICAgIC0qKSBkc3Q9Li8kZHN0OzsKLSsgICAgZXNhYwotKwotKyAgICAjIElm IGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5LCBhcHBlbmQgdGhlIGlucHV0IGZpbGVuYW1lOyB3 b24ndCB3b3JrCi0rICAgICMgaWYgZG91YmxlIHNsYXNoZXMgYXJlbid0IGlnbm9yZWQuCi0rICAg IGlmIHRlc3QgLWQgIiRkc3QiOyB0aGVuCi0rICAgICAgaWYgdGVzdCAtbiAiJG5vX3RhcmdldF9k aXJlY3RvcnkiOyB0aGVuCi0rCWVjaG8gIiQwOiAkZHN0X2FyZzogSXMgYSBkaXJlY3RvcnkiID4m MgotKwlleGl0IDEKLSsgICAgICBmaQotKyAgICAgIGRzdGRpcj0kZHN0Ci0rICAgICAgZHN0PSRk c3RkaXIvYGJhc2VuYW1lICIkc3JjImAKLSsgICAgICBkc3RkaXJfc3RhdHVzPTAKLSsgICAgZWxz ZQotKyAgICAgICMgUHJlZmVyIGRpcm5hbWUsIGJ1dCBmYWxsIGJhY2sgb24gYSBzdWJzdGl0dXRl IGlmIGRpcm5hbWUgZmFpbHMuCi0rICAgICAgZHN0ZGlyPWAKLSsJKGRpcm5hbWUgIiRkc3QiKSAy Pi9kZXYvbnVsbCB8fAotKwlleHByIFgiJGRzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSov KiQnIFx8IFwKLSsJICAgICBYIiRkc3QiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0rCSAgICAgWCIk ZHN0IiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgICAgIFgiJGRzdCIgOiAnWFwoL1wpJyBcfCAuIDI+ L2Rldi9udWxsIHx8Ci0rCWVjaG8gWCIkZHN0IiB8Ci0rCSAgICBzZWQgJy9eWFwoLipbXi9dXClc L1wvKlteL11bXi9dKlwvKiQvewotKwkJICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIC9e WFwoXC9cL1wpW14vXS4qL3sKLSsJCSAgIHMvL1wxLwotKwkJICAgcQotKwkJIH0KLSsJCSAvXlhc KFwvXC9cKSQvewotKwkJICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIC9eWFwoXC9cKS4q L3sKLSsJCSAgIHMvL1wxLwotKwkJICAgcQotKwkJIH0KLSsJCSBzLy4qLy4vOyBxJwotKyAgICAg IGAKLSsKLSsgICAgICB0ZXN0IC1kICIkZHN0ZGlyIgotKyAgICAgIGRzdGRpcl9zdGF0dXM9JD8K LSsgICAgZmkKLSsgIGZpCi0rCi0rICBvYnNvbGV0ZV9ta2Rpcl91c2VkPWZhbHNlCi0rCi0rICBp ZiB0ZXN0ICRkc3RkaXJfc3RhdHVzICE9IDA7IHRoZW4KLSsgICAgY2FzZSAkcG9zaXhfbWtkaXIg aW4KLSsgICAgICAnJykKLSsJIyBDcmVhdGUgaW50ZXJtZWRpYXRlIGRpcnMgdXNpbmcgbW9kZSA3 NTUgYXMgbW9kaWZpZWQgYnkgdGhlIHVtYXNrLgotKwkjIFRoaXMgaXMgbGlrZSBGcmVlQlNEICdp bnN0YWxsJyBhcyBvZiAxOTk3LTEwLTI4LgotKwl1bWFzaz1gdW1hc2tgCi0rCWNhc2UgJHN0cmlw Y21kLiR1bWFzayBpbgotKwkgICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgotKwkgICpbMjM2N11b MjM2N10pIG1rZGlyX3VtYXNrPSR1bWFzazs7Ci0rCSAgLiowWzAyXVswMl0gfCAuWzAyXVswMl0g fCAuWzAyXSkgbWtkaXJfdW1hc2s9MjI7OwotKwotKwkgICpbMC03XSkKLSsJICAgIG1rZGlyX3Vt YXNrPWBleHByICR1bWFzayArIDIyIFwKLSsJICAgICAgLSAkdW1hc2sgJSAxMDAgJSA0MCArICR1 bWFzayAlIDIwIFwKLSsJICAgICAgLSAkdW1hc2sgJSAxMCAlIDQgKyAkdW1hc2sgJSAyCi0rCSAg ICBgOzsKLSsJICAqKSBta2Rpcl91bWFzaz0kdW1hc2ssZ28tdzs7Ci0rCWVzYWMKLSsKLSsJIyBX aXRoIC1kLCBjcmVhdGUgdGhlIG5ldyBkaXJlY3Rvcnkgd2l0aCB0aGUgdXNlci1zcGVjaWZpZWQg bW9kZS4KLSsJIyBPdGhlcndpc2UsIHJlbHkgb24gJG1rZGlyX3VtYXNrLgotKwlpZiB0ZXN0IC1u ICIkZGlyX2FyZyI7IHRoZW4KLSsJICBta2Rpcl9tb2RlPS1tJG1vZGUKLSsJZWxzZQotKwkgIG1r ZGlyX21vZGU9Ci0rCWZpCi0rCi0rCXBvc2l4X21rZGlyPWZhbHNlCi0rCWNhc2UgJHVtYXNrIGlu Ci0rCSAgKlsxMjM1NjddWzAtN11bMC03XSkKLSsJICAgICMgUE9TSVggbWtkaXIgLXAgc2V0cyB1 K3d4IGJpdHMgcmVnYXJkbGVzcyBvZiB1bWFzaywgd2hpY2gKLSsJICAgICMgaXMgaW5jb21wYXRp YmxlIHdpdGggRnJlZUJTRCAnaW5zdGFsbCcgd2hlbiAodW1hc2sgJiAzMDApICE9IDAuCi0rCSAg ICA7OwotKwkgICopCi0rCSAgICB0bXBkaXI9JHtUTVBESVItL3RtcH0vaW5zJFJBTkRPTS0kJAot KwkgICAgdHJhcCAncmV0PSQ/OyBybWRpciAiJHRtcGRpci9kIiAiJHRtcGRpciIgMj4vZGV2L251 bGw7IGV4aXQgJHJldCcgMAotKwotKwkgICAgaWYgKHVtYXNrICRta2Rpcl91bWFzayAmJgotKwkJ ZXhlYyAkbWtkaXJwcm9nICRta2Rpcl9tb2RlIC1wIC0tICIkdG1wZGlyL2QiKSA+L2Rldi9udWxs IDI+JjEKLSsJICAgIHRoZW4KLSsJICAgICAgaWYgdGVzdCAteiAiJGRpcl9hcmciIHx8IHsKLSsJ CSAgICMgQ2hlY2sgZm9yIFBPU0lYIGluY29tcGF0aWJpbGl0aWVzIHdpdGggLW0uCi0rCQkgICAj IEhQLVVYIDExLjIzIGFuZCBJUklYIDYuNSBta2RpciAtbSAtcCBzZXRzIGdyb3VwLSBvcgotKwkJ ICAgIyBvdGhlci13cml0ZWFibGUgYml0IG9mIHBhcmVudCBkaXJlY3Rvcnkgd2hlbiBpdCBzaG91 bGRuJ3QuCi0rCQkgICAjIEZyZWVCU0QgNi4xIG1rZGlyIC1tIC1wIHNldHMgbW9kZSBvZiBleGlz dGluZyBkaXJlY3RvcnkuCi0rCQkgICBsc19sZF90bXBkaXI9YGxzIC1sZCAiJHRtcGRpciJgCi0r CQkgICBjYXNlICRsc19sZF90bXBkaXIgaW4KLSsJCSAgICAgZD8/Pz8tP3ItKikgZGlmZmVyZW50 X21vZGU9NzAwOzsKLSsJCSAgICAgZD8/Pz8tPy0tKikgZGlmZmVyZW50X21vZGU9NzU1OzsKLSsJ CSAgICAgKikgZmFsc2U7OwotKwkJICAgZXNhYyAmJgotKwkJICAgJG1rZGlycHJvZyAtbSRkaWZm ZXJlbnRfbW9kZSAtcCAtLSAiJHRtcGRpciIgJiYgewotKwkJICAgICBsc19sZF90bXBkaXJfMT1g bHMgLWxkICIkdG1wZGlyImAKLSsJCSAgICAgdGVzdCAiJGxzX2xkX3RtcGRpciIgPSAiJGxzX2xk X3RtcGRpcl8xIgotKwkJICAgfQotKwkJIH0KLSsJICAgICAgdGhlbiBwb3NpeF9ta2Rpcj06Ci0r CSAgICAgIGZpCi0rCSAgICAgIHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIgotKwkgICAgZWxz ZQotKwkgICAgICAjIFJlbW92ZSBhbnkgZGlycyBsZWZ0IGJlaGluZCBieSBhbmNpZW50IG1rZGly IGltcGxlbWVudGF0aW9ucy4KLSsJICAgICAgcm1kaXIgLi8kbWtkaXJfbW9kZSAuLy1wIC4vLS0g Mj4vZGV2L251bGwKLSsJICAgIGZpCi0rCSAgICB0cmFwICcnIDA7OwotKwllc2FjOzsKLSsgICAg ZXNhYwotKwotKyAgICBpZgotKyAgICAgICRwb3NpeF9ta2RpciAmJiAoCi0rCXVtYXNrICRta2Rp cl91bWFzayAmJgotKwkkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRk c3RkaXIiCi0rICAgICAgKQotKyAgICB0aGVuIDoKLSsgICAgZWxzZQotKwotKyAgICAgICMgVGhl IHVtYXNrIGlzIHJpZGljdWxvdXMsIG9yIG1rZGlyIGRvZXMgbm90IGNvbmZvcm0gdG8gUE9TSVgs Ci0rICAgICAgIyBvciBpdCBmYWlsZWQgcG9zc2libHkgZHVlIHRvIGEgcmFjZSBjb25kaXRpb24u ICBDcmVhdGUgdGhlCi0rICAgICAgIyBkaXJlY3RvcnkgdGhlIHNsb3cgd2F5LCBzdGVwIGJ5IHN0 ZXAsIGNoZWNraW5nIGZvciByYWNlcyBhcyB3ZSBnby4KLSsKLSsgICAgICBjYXNlICRkc3RkaXIg aW4KLSsJLyopIHByZWZpeD0nLyc7OwotKwktKikgcHJlZml4PScuLyc7OwotKwkqKSAgcHJlZml4 PScnOzsKLSsgICAgICBlc2FjCi0rCi0rICAgICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xv YiIKLSsKLSsgICAgICBvSUZTPSRJRlMKLSsgICAgICBJRlM9LwotKyAgICAgICRwb3NpeF9nbG9i IHNldCAtZgotKyAgICAgIHNldCBmbm9yZCAkZHN0ZGlyCi0rICAgICAgc2hpZnQKLSsgICAgICAk cG9zaXhfZ2xvYiBzZXQgK2YKLSsgICAgICBJRlM9JG9JRlMKLSsKLSsgICAgICBwcmVmaXhlcz0K LSsKLSsgICAgICBmb3IgZAotKyAgICAgIGRvCi0rCXRlc3QgLXogIiRkIiAmJiBjb250aW51ZQot KwotKwlwcmVmaXg9JHByZWZpeCRkCi0rCWlmIHRlc3QgLWQgIiRwcmVmaXgiOyB0aGVuCi0rCSAg cHJlZml4ZXM9Ci0rCWVsc2UKLSsJICBpZiAkcG9zaXhfbWtkaXI7IHRoZW4KLSsJICAgICh1bWFz az0kbWtkaXJfdW1hc2sgJiYKLSsJICAgICAkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21v ZGUgLXAgLS0gIiRkc3RkaXIiKSAmJiBicmVhawotKwkgICAgIyBEb24ndCBmYWlsIGlmIHR3byBp bnN0YW5jZXMgYXJlIHJ1bm5pbmcgY29uY3VycmVudGx5LgotKwkgICAgdGVzdCAtZCAiJHByZWZp eCIgfHwgZXhpdCAxCi0rCSAgZWxzZQotKwkgICAgY2FzZSAkcHJlZml4IGluCi0rCSAgICAgICpc JyopIHFwcmVmaXg9YGVjaG8gIiRwcmVmaXgiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsK LSsJICAgICAgKikgcXByZWZpeD0kcHJlZml4OzsKLSsJICAgIGVzYWMKLSsJICAgIHByZWZpeGVz PSIkcHJlZml4ZXMgJyRxcHJlZml4JyIKLSsJICBmaQotKwlmaQotKwlwcmVmaXg9JHByZWZpeC8K LSsgICAgICBkb25lCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJHByZWZpeGVzIjsgdGhlbgotKwkj IERvbid0IGZhaWwgaWYgdHdvIGluc3RhbmNlcyBhcmUgcnVubmluZyBjb25jdXJyZW50bHkuCi0r CSh1bWFzayAkbWtkaXJfdW1hc2sgJiYKLSsJIGV2YWwgIlwkZG9pdF9leGVjIFwkbWtkaXJwcm9n ICRwcmVmaXhlcyIpIHx8Ci0rCSAgdGVzdCAtZCAiJGRzdGRpciIgfHwgZXhpdCAxCi0rCW9ic29s ZXRlX21rZGlyX3VzZWQ9dHJ1ZQotKyAgICAgIGZpCi0rICAgIGZpCi0rICBmaQotKwotKyAgaWYg dGVzdCAtbiAiJGRpcl9hcmciOyB0aGVuCi0rICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8fCAk ZG9pdCAkY2hvd25jbWQgIiRkc3QiOyB9ICYmCi0rICAgIHsgdGVzdCAteiAiJGNoZ3JwY21kIiB8 fCAkZG9pdCAkY2hncnBjbWQgIiRkc3QiOyB9ICYmCi0rICAgIHsgdGVzdCAiJG9ic29sZXRlX21r ZGlyX3VzZWQkY2hvd25jbWQkY2hncnBjbWQiID0gZmFsc2UgfHwKLSsgICAgICB0ZXN0IC16ICIk Y2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdCI7IH0gfHwgZXhpdCAxCi0r ICBlbHNlCi0rCi0rICAgICMgTWFrZSBhIGNvdXBsZSBvZiB0ZW1wIGZpbGUgbmFtZXMgaW4gdGhl IHByb3BlciBkaXJlY3RvcnkuCi0rICAgIGRzdHRtcD0kZHN0ZGlyL19pbnN0LiQkXwotKyAgICBy bXRtcD0kZHN0ZGlyL19ybS4kJF8KLSsKLSsgICAgIyBUcmFwIHRvIGNsZWFuIHVwIHRob3NlIHRl bXAgZmlsZXMgYXQgZXhpdC4KLSsgICAgdHJhcCAncmV0PSQ/OyBybSAtZiAiJGRzdHRtcCIgIiRy bXRtcCIgJiYgZXhpdCAkcmV0JyAwCi0rCi0rICAgICMgQ29weSB0aGUgZmlsZSBuYW1lIHRvIHRo ZSB0ZW1wIG5hbWUuCi0rICAgICh1bWFzayAkY3BfdW1hc2sgJiYgJGRvaXRfZXhlYyAkY3Bwcm9n ICIkc3JjIiAiJGRzdHRtcCIpICYmCi0rCi0rICAgICMgYW5kIHNldCBhbnkgb3B0aW9uczsgZG8g Y2htb2QgbGFzdCB0byBwcmVzZXJ2ZSBzZXR1aWQgYml0cy4KLSsgICAgIwotKyAgICAjIElmIGFu eSBvZiB0aGVzZSBmYWlsLCB3ZSBhYm9ydCB0aGUgd2hvbGUgdGhpbmcuICBJZiB3ZSB3YW50IHRv Ci0rICAgICMgaWdub3JlIGVycm9ycyBmcm9tIGFueSBvZiB0aGVzZSwganVzdCBtYWtlIHN1cmUg bm90IHRvIGlnbm9yZQotKyAgICAjIGVycm9ycyBmcm9tIHRoZSBhYm92ZSAiJGRvaXQgJGNwcHJv ZyAkc3JjICRkc3R0bXAiIGNvbW1hbmQuCi0rICAgICMKLSsgICAgeyB0ZXN0IC16ICIkY2hvd25j bWQiIHx8ICRkb2l0ICRjaG93bmNtZCAiJGRzdHRtcCI7IH0gJiYKLSsgICAgeyB0ZXN0IC16ICIk Y2hncnBjbWQiIHx8ICRkb2l0ICRjaGdycGNtZCAiJGRzdHRtcCI7IH0gJiYKLSsgICAgeyB0ZXN0 IC16ICIkc3RyaXBjbWQiIHx8ICRkb2l0ICRzdHJpcGNtZCAiJGRzdHRtcCI7IH0gJiYKLSsgICAg eyB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdHRtcCI7 IH0gJiYKLSsKLSsgICAgIyBJZiAtQywgZG9uJ3QgYm90aGVyIHRvIGNvcHkgaWYgaXQgd291bGRu J3QgY2hhbmdlIHRoZSBmaWxlLgotKyAgICBpZiAkY29weV9vbl9jaGFuZ2UgJiYKLSsgICAgICAg b2xkPWBMQ19BTEw9QyBscyAtZGxMICIkZHN0IgkyPi9kZXYvbnVsbGAgJiYKLSsgICAgICAgbmV3 PWBMQ19BTEw9QyBscyAtZGxMICIkZHN0dG1wIgkyPi9kZXYvbnVsbGAgJiYKLSsKLSsgICAgICAg ZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xvYiIgJiYKLSsgICAgICAgJHBvc2l4X2dsb2Igc2V0 IC1mICYmCi0rICAgICAgIHNldCBYICRvbGQgJiYgb2xkPTokMjokNDokNTokNiAmJgotKyAgICAg ICBzZXQgWCAkbmV3ICYmIG5ldz06JDI6JDQ6JDU6JDYgJiYKLSsgICAgICAgJHBvc2l4X2dsb2Ig c2V0ICtmICYmCi0rCi0rICAgICAgIHRlc3QgIiRvbGQiID0gIiRuZXciICYmCi0rICAgICAgICRj bXBwcm9nICIkZHN0IiAiJGRzdHRtcCIgPi9kZXYvbnVsbCAyPiYxCi0rICAgIHRoZW4KLSsgICAg ICBybSAtZiAiJGRzdHRtcCIKLSsgICAgZWxzZQotKyAgICAgICMgUmVuYW1lIHRoZSBmaWxlIHRv IHRoZSByZWFsIGRlc3RpbmF0aW9uLgotKyAgICAgICRkb2l0ICRtdmNtZCAtZiAiJGRzdHRtcCIg IiRkc3QiIDI+L2Rldi9udWxsIHx8Ci0rCi0rICAgICAgIyBUaGUgcmVuYW1lIGZhaWxlZCwgcGVy aGFwcyBiZWNhdXNlIG12IGNhbid0IHJlbmFtZSBzb21ldGhpbmcgZWxzZQotKyAgICAgICMgdG8g aXRzZWxmLCBvciBwZXJoYXBzIGJlY2F1c2UgbXYgaXMgc28gYW5jaWVudCB0aGF0IGl0IGRvZXMg bm90Ci0rICAgICAgIyBzdXBwb3J0IC1mLgotKyAgICAgIHsKLSsJIyBOb3cgcmVtb3ZlIG9yIG1v dmUgYXNpZGUgYW55IG9sZCBmaWxlIGF0IGRlc3RpbmF0aW9uIGxvY2F0aW9uLgotKwkjIFdlIHRy eSB0aGlzIHR3byB3YXlzIHNpbmNlIHJtIGNhbid0IHVubGluayBpdHNlbGYgb24gc29tZQotKwkj IHN5c3RlbXMgYW5kIHRoZSBkZXN0aW5hdGlvbiBmaWxlIG1pZ2h0IGJlIGJ1c3kgZm9yIG90aGVy Ci0rCSMgcmVhc29ucy4gIEluIHRoaXMgY2FzZSwgdGhlIGZpbmFsIGNsZWFudXAgbWlnaHQgZmFp bCBidXQgdGhlIG5ldwotKwkjIGZpbGUgc2hvdWxkIHN0aWxsIGluc3RhbGwgc3VjY2Vzc2Z1bGx5 LgotKwl7Ci0rCSAgdGVzdCAhIC1mICIkZHN0IiB8fAotKwkgICRkb2l0ICRybWNtZCAtZiAiJGRz dCIgMj4vZGV2L251bGwgfHwKLSsJICB7ICRkb2l0ICRtdmNtZCAtZiAiJGRzdCIgIiRybXRtcCIg Mj4vZGV2L251bGwgJiYKLSsJICAgIHsgJGRvaXQgJHJtY21kIC1mICIkcm10bXAiIDI+L2Rldi9u dWxsOyA6OyB9Ci0rCSAgfSB8fAotKwkgIHsgZWNobyAiJDA6IGNhbm5vdCB1bmxpbmsgb3IgcmVu YW1lICRkc3QiID4mMgotKwkgICAgKGV4aXQgMSk7IGV4aXQgMQotKwkgIH0KLSsJfSAmJgotKwot KwkjIE5vdyByZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCi0rCSRkb2l0 ICRtdmNtZCAiJGRzdHRtcCIgIiRkc3QiCi0rICAgICAgfQotKyAgICBmaSB8fCBleGl0IDEKLSsK LSsgICAgdHJhcCAnJyAwCi0rICBmaQotK2RvbmUKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoKLSsj IGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUt c3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5 LSUwMm0tJTAyZC4lMDJIIgotKyMgdGltZS1zdGFtcC10aW1lLXpvbmU6ICJVVEMiCi0rIyB0aW1l LXN0YW1wLWVuZDogIjsgIyBVVEMiCi0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svY29uZmlnL2xpYnRvb2wubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9saWJ0b29sLm00 Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2xpYnRvb2wubTQJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2xpYnRv b2wubTQJMjAxMS0wNy0wMyAxODo0NDoyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNzgz NSBAQAotKyMgbGlidG9vbC5tNCAtIENvbmZpZ3VyZSBsaWJ0b29sIGZvciB0aGUgaG9zdCBzeXN0 ZW0uIC0qLUF1dG9jb25mLSotCi0rIwotKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5 OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsCi0rIyAgICAgICAgICAgICAg ICAgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s Ci0rIyAgICAgICAgICAgICAgICAgSW5jLgotKyMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdr ZWl0LCAxOTk2Ci0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKLSsjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAotKyMgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rbTRfZGVmaW5lKFtfTFRf Q09QWUlOR10sIFtkbmwKLSsjICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5 LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LAotKyMgICAgICAgICAgICAgICAgIDIwMDYs IDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotKyMgICAg ICAgICAgICAgICAgIEluYy4KLSsjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5 NgotKyMKLSsjICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wuCi0rIwotKyMgR05V IExpYnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y Ci0rIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcwotKyMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDIgb2YKLSsjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAotKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBm aWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAotKyMgaXMgYnVpbHQgdXNp bmcgR05VIExpYnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCi0rIyBz YW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQg cHJvZ3JhbS4KLSsjCi0rIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFs b25nIHdpdGggR05VIExpYnRvb2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNv cHkKLSsjIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz L2dwbC5odG1sLCBvcgotKyMgb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuLAotKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0rXSkKLSsKLSsjIHNlcmlhbCA1NyBMVF9JTklU Ci0rCi0rCi0rIyBMVF9QUkVSRVEoVkVSU0lPTikKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotKyMg Q29tcGxhaW4gYW5kIGV4aXQgaWYgdGhpcyBsaWJ0b29sIHZlcnNpb24gaXMgbGVzcyB0aGF0IFZF UlNJT04uCi0rbTRfZGVmdW4oW0xUX1BSRVJFUV0sCi0rW200X2lmKG00X3ZlcnNpb25fY29tcGFy ZShtNF9kZWZuKFtMVF9QQUNLQUdFX1ZFUlNJT05dKSwgWyQxXSksIC0xLAotKyAgICAgICBbbTRf ZGVmYXVsdChbJDNdLAotKwkJICAgW200X2ZhdGFsKFtMaWJ0b29sIHZlcnNpb24gJDEgb3IgaGln aGVyIGlzIHJlcXVpcmVkXSwKLSsJCSAgICAgICAgICAgICA2MyldKV0sCi0rICAgICAgIFskMl0p XSkKLSsKLSsKLSsjIF9MVF9DSEVDS19CVUlMRERJUgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tCi0r IyBDb21wbGFpbiBpZiB0aGUgYWJzb2x1dGUgYnVpbGQgZGlyZWN0b3J5IG5hbWUgY29udGFpbnMg dW51c3VhbCBjaGFyYWN0ZXJzCi0rbTRfZGVmdW4oW19MVF9DSEVDS19CVUlMRERJUl0sCi0rW2Nh c2UgYHB3ZGAgaW4KLSsgICpcICogfCAqXAkqKQotKyAgICBBQ19NU0dfV0FSTihbTGlidG9vbCBk b2VzIG5vdCBjb3BlIHdlbGwgd2l0aCB3aGl0ZXNwYWNlIGluIGBwd2RgXSkgOzsKLStlc2FjCi0r XSkKLSsKLSsKLSsjIExUX0lOSVQoW09QVElPTlNdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tCi0r QUNfREVGVU4oW0xUX0lOSVRdLAotK1tBQ19QUkVSRVEoWzIuNThdKWRubCBXZSB1c2UgQUNfSU5D TFVERVNfREVGQVVMVAotK0FDX1JFUVVJUkUoW0FDX0NPTkZJR19BVVhfRElSX0RFRkFVTFRdKWRu bAotK0FDX0JFRk9SRShbJDBdLCBbTFRfTEFOR10pZG5sCi0rQUNfQkVGT1JFKFskMF0sIFtMVF9P VVRQVVRdKWRubAotK0FDX0JFRk9SRShbJDBdLCBbTFRETF9JTklUXSlkbmwKLSttNF9yZXF1aXJl KFtfTFRfQ0hFQ0tfQlVJTERESVJdKWRubAotKwotK2RubCBBdXRvY29uZiBkb2Vzbid0IGNhdGNo IHVuZXhwYW5kZWQgTFRfIG1hY3JvcyBieSBkZWZhdWx0OgotK200X3BhdHRlcm5fZm9yYmlkKFte Xz9MVF9bQS1aX10rJF0pZG5sCi0rbTRfcGF0dGVybl9hbGxvdyhbXihfTFRfRU9GfExUX0RMR0xP QkFMfExUX0RMTEFaWV9PUl9OT1d8TFRfTVVMVElfTU9EVUxFKSRdKWRubAotK2RubCBhY2xvY2Fs IGRvZXNuJ3QgcHVsbCBsdG9wdGlvbnMubTQsIGx0c3VnYXIubTQsIG9yIGx0dmVyc2lvbi5tNAot K2RubCB1bmxlc3Mgd2UgcmVxdWlyZSBhbiBBQ19ERUZVTmVkIG1hY3JvOgotK0FDX1JFUVVJUkUo W0xUT1BUSU9OU19WRVJTSU9OXSlkbmwKLStBQ19SRVFVSVJFKFtMVFNVR0FSX1ZFUlNJT05dKWRu bAotK0FDX1JFUVVJUkUoW0xUVkVSU0lPTl9WRVJTSU9OXSlkbmwKLStBQ19SRVFVSVJFKFtMVE9C U09MRVRFX1ZFUlNJT05dKWRubAotK200X3JlcXVpcmUoW19MVF9QUk9HX0xUTUFJTl0pZG5sCi0r Ci0rX0xUX1NIRUxMX0lOSVQoW1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9XSkKLSsKLStk bmwgUGFyc2UgT1BUSU9OUwotK19MVF9TRVRfT1BUSU9OUyhbJDBdLCBbJDFdKQotKwotKyMgVGhp cyBjYW4gYmUgdXNlZCB0byByZWJ1aWxkIGxpYnRvb2wgd2hlbiBuZWVkZWQKLStMSUJUT09MX0RF UFM9IiRsdG1haW4iCi0rCi0rIyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4KLStMSUJUT09M PSckKFNIRUxMKSAkKHRvcF9idWlsZGRpcikvbGlidG9vbCcKLStBQ19TVUJTVChMSUJUT09MKWRu bAotKwotK19MVF9TRVRVUAotKwotKyMgT25seSBleHBhbmQgb25jZToKLSttNF9kZWZpbmUoW0xU X0lOSVRdKQotK10pIyBMVF9JTklUCi0rCi0rIyBPbGQgbmFtZXM6Ci0rQVVfQUxJQVMoW0FDX1BS T0dfTElCVE9PTF0sIFtMVF9JTklUXSkKLStBVV9BTElBUyhbQU1fUFJPR19MSUJUT09MXSwgW0xU X0lOSVRdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwg QUNfREVGVU4oW0FDX1BST0dfTElCVE9PTF0sIFtdKQotK2RubCBBQ19ERUZVTihbQU1fUFJPR19M SUJUT09MXSwgW10pCi0rCi0rCi0rIyBfTFRfQ0NfQkFTRU5BTUUoQ0MpCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBDYWxjdWxhdGUgY2NfYmFzZW5hbWUuICBTa2lwIGtub3duIGNvbXBpbGVy IHdyYXBwZXJzIGFuZCBjcm9zcy1wcmVmaXguCi0rbTRfZGVmdW4oW19MVF9DQ19CQVNFTkFNRV0s Ci0rW2ZvciBjY190ZW1wIGluICQxIiI7IGRvCi0rICBjYXNlICRjY190ZW1wIGluCi0rICAgIGNv bXBpbGUgfCAqW1tcXC9dXWNvbXBpbGUgfCBjY2FjaGUgfCAqW1tcXC9dXWNjYWNoZSApIDs7Ci0r ICAgIGRpc3RjYyB8ICpbW1xcL11dZGlzdGNjIHwgcHVyaWZ5IHwgKltbXFwvXV1wdXJpZnkgKSA7 OwotKyAgICBcLSopIDs7Ci0rICAgICopIGJyZWFrOzsKLSsgIGVzYWMKLStkb25lCi0rY2NfYmFz ZW5hbWU9YCRFQ0hPICIkY2NfdGVtcCIgfCAkU0VEICJzJS4qLyUlOyBzJV4kaG9zdF9hbGlhcy0l JSJgCi0rXSkKLSsKLSsKLSsjIF9MVF9GSUxFVVRJTFNfREVGQVVMVFMKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSsjIEl0IGlzIG9rYXkgdG8gdXNlIHRoZXNlIGZpbGUgY29tbWFuZHMgYW5k IGFzc3VtZSB0aGV5IGhhdmUgYmVlbiBzZXQKLSsjIHNlbnNpYmx5IGFmdGVyIGBtNF9yZXF1aXJl KFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSknLgotK200X2RlZnVuKFtfTFRfRklMRVVUSUxTX0RF RkFVTFRTXSwKLStbOiAke0NQPSJjcCAtZiJ9Ci0rOiAke01WPSJtdiAtZiJ9Ci0rOiAke1JNPSJy bSAtZiJ9Ci0rXSkjIF9MVF9GSUxFVVRJTFNfREVGQVVMVFMKLSsKLSsKLSsjIF9MVF9TRVRVUAot KyMgLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9TRVRVUF0sCi0rW0FDX1JFUVVJUkUoW0FDX0NB Tk9OSUNBTF9IT1NUXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERdKWRubAot K0FDX1JFUVVJUkUoW19MVF9QUkVQQVJFX1NFRF9RVU9URV9WQVJTXSlkbmwKLStBQ19SRVFVSVJF KFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0pZG5sCi0rCi0rX0xUX0RFQ0woW10sIFtob3N0X2Fs aWFzXSwgWzBdLCBbVGhlIGhvc3Qgc3lzdGVtXSlkbmwKLStfTFRfREVDTChbXSwgW2hvc3RdLCBb MF0pZG5sCi0rX0xUX0RFQ0woW10sIFtob3N0X29zXSwgWzBdKWRubAotK2RubAotK19MVF9ERUNM KFtdLCBbYnVpbGRfYWxpYXNdLCBbMF0sIFtUaGUgYnVpbGQgc3lzdGVtXSlkbmwKLStfTFRfREVD TChbXSwgW2J1aWxkXSwgWzBdKWRubAotK19MVF9ERUNMKFtdLCBbYnVpbGRfb3NdLCBbMF0pZG5s Ci0rZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCi0rQUNfUkVRVUlSRShbTFRfUEFU SF9MRF0pZG5sCi0rQUNfUkVRVUlSRShbTFRfUEFUSF9OTV0pZG5sCi0rZG5sCi0rQUNfUkVRVUlS RShbQUNfUFJPR19MTl9TXSlkbmwKLSt0ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCi0r X0xUX0RFQ0woW10sIFtMTl9TXSwgWzFdLCBbV2hldGhlciB3ZSBuZWVkIHNvZnQgb3IgaGFyZCBs aW5rc10pZG5sCi0rZG5sCi0rQUNfUkVRVUlSRShbTFRfQ01EX01BWF9MRU5dKWRubAotK19MVF9E RUNMKFtvYmpleHRdLCBbYWNfb2JqZXh0XSwgWzBdLCBbT2JqZWN0IGZpbGUgc3VmZml4IChub3Jt YWxseSAibyIpXSlkbmwKLStfTFRfREVDTChbXSwgW2V4ZWV4dF0sIFswXSwgW0V4ZWN1dGFibGUg ZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKV0pZG5sCi0rZG5sCi0rbTRfcmVxdWlyZShbX0xUX0ZJ TEVVVElMU19ERUZBVUxUU10pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0NIRUNLX1NIRUxMX0ZFQVRV UkVTXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfUEFUSF9DT05WRVJTSU9OX0ZVTkNUSU9OU10pZG5s Ci0rbTRfcmVxdWlyZShbX0xUX0NNRF9SRUxPQURdKWRubAotK200X3JlcXVpcmUoW19MVF9DSEVD S19NQUdJQ19NRVRIT0RdKWRubAotK200X3JlcXVpcmUoW19MVF9DSEVDS19TSEFSRURMSUJfRlJP TV9MSU5LTElCXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfQ01EX09MRF9BUkNISVZFXSlkbmwKLStt NF9yZXF1aXJlKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRf V0lUSF9TWVNST09UXSlkbmwKLSsKLStfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbCi0rIyBTZWUg aWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93 IG91cgotKyMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzIElO SVQuCi0raWYgdGVzdCAtbiAiXCR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCi0rICAgc2V0b3B0 IE5PX0dMT0JfU1VCU1QKLStmaQotK10pCi0raWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9 IiA7IHRoZW4KLSsgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotK2ZpCi0rCi0rX0xUX0NIRUNLX09C SkRJUgotKwotK200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAotKwotK2Nhc2UgJGhv c3Rfb3MgaW4KLSthaXgzKikKLSsgICMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0 aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQotKyAgIyByZWFzb24sIGlmIHdlIHNl dCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCi0r ICAjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCi0rICBpZiB0ZXN0ICJYJHtDT0xMRUNUX05B TUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KLSsgICAgQ09MTEVDVF9OQU1FUz0KLSsgICAgZXhwb3J0 IENPTExFQ1RfTkFNRVMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsKLSsjIEdsb2JhbCB2YXJpYWJs ZXM6Ci0rb2ZpbGU9bGlidG9vbAotK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCi0rCi0rIyBBbGwga25v d24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhj ZXB0IE1TVkMsCi0rIyB3aGljaCBuZWVkcyAnLmxpYicpLgotK2xpYmV4dD1hCi0rCi0rd2l0aF9n bnVfbGQ9IiRsdF9jdl9wcm9nX2dudV9sZCIKLSsKLStvbGRfQ0M9IiRDQyIKLStvbGRfQ0ZMQUdT PSIkQ0ZMQUdTIgotKwotKyMgU2V0IHNhbmUgZGVmYXVsdHMgZm9yIHZhcmlvdXMgdmFyaWFibGVz Ci0rdGVzdCAteiAiJENDIiAmJiBDQz1jYwotK3Rlc3QgLXogIiRMVENDIiAmJiBMVENDPSRDQwot K3Rlc3QgLXogIiRMVENGTEFHUyIgJiYgTFRDRkxBR1M9JENGTEFHUwotK3Rlc3QgLXogIiRMRCIg JiYgTEQ9bGQKLSt0ZXN0IC16ICIkYWNfb2JqZXh0IiAmJiBhY19vYmpleHQ9bwotKwotK19MVF9D Q19CQVNFTkFNRShbJGNvbXBpbGVyXSkKLSsKLSsjIE9ubHkgcGVyZm9ybSB0aGUgY2hlY2sgZm9y IGZpbGUsIGlmIHRoZSBjaGVjayBtZXRob2QgcmVxdWlyZXMgaXQKLSt0ZXN0IC16ICIkTUFHSUNf Q01EIiAmJiBNQUdJQ19DTUQ9ZmlsZQotK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0r ZmlsZV9tYWdpYyopCi0rICBpZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQn OyB0aGVuCi0rICAgIF9MVF9QQVRIX01BR0lDCi0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0rIyBV c2UgQyBmb3IgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQK LStMVF9TVVBQT1JURURfVEFHKFtDQ10pCi0rX0xUX0xBTkdfQ19DT05GSUcKLStfTFRfTEFOR19E RUZBVUxUX0NPTkZJRwotK19MVF9DT05GSUdfQ09NTUFORFMKLStdKSMgX0xUX1NFVFVQCi0rCi0r Ci0rIyBfTFRfUFJFUEFSRV9TRURfUVVPVEVfVkFSUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSsjIERlZmluZSBhIGZldyBzZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscCB1cyBkbyBy b2J1c3QgcXVvdGluZy4KLSttNF9kZWZ1bihbX0xUX1BSRVBBUkVfU0VEX1FVT1RFX1ZBUlNdLAot K1sjIEJhY2tzbGFzaGlmeSBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0 aGluCi0rIyBkb3VibGUtcXVvdGVkIHN0cmluZ3MuCi0rc2VkX3F1b3RlX3N1YnN0PSdzL1woW1si YCRcXF1dXCkvXFxcMS9nJwotKwotKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGRvIG5vdCBxdW90ZSB2 YXJpYWJsZSByZWZlcmVuY2VzLgotK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFtbImBcXF1dXCkv XFxcMS9nJwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4g ZXNjYXBlZCBzaGVsbCB2YXJpYWJsZSBpbiBhCi0rIyBkb3VibGVfcXVvdGVfc3Vic3QnZWQgc3Ry aW5nLgotK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSdzL1xcXFxcXFxcXFxcJC9cXFxcXFwkL2cnCi0r Ci0rIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNp bmdsZSBxdW90ZS4KLStkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Q9J3MvJ1wnJy8nXCdcXFxcXFxc J1wnJy9nJwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBhdm9pZCBhY2NpZGVudGFsIGdsb2Ji aW5nIGluIGV2YWxlZCBleHByZXNzaW9ucwotK25vX2dsb2Jfc3Vic3Q9J3MvXCovXFxcKi9nJwot K10pCi0rCi0rIyBfTFRfUFJPR19MVE1BSU4KLSsjIC0tLS0tLS0tLS0tLS0tLQotKyMgTm90ZSB0 aGF0IHRoaXMgY29kZSBpcyBjYWxsZWQgYm90aCBmcm9tIGBjb25maWd1cmUnLCBhbmQgYGNvbmZp Zy5zdGF0dXMnCi0rIyBub3cgdGhhdCB3ZSB1c2UgQUNfQ09ORklHX0NPTU1BTkRTIHRvIGdlbmVy YXRlIGxpYnRvb2wuICBOb3RhYmx5LAotKyMgYGNvbmZpZy5zdGF0dXMnIGhhcyBubyB2YWx1ZSBm b3IgYWNfYXV4X2RpciB1bmxlc3Mgd2UgYXJlIHVzaW5nIEF1dG9tYWtlLAotKyMgc28gd2UgcGFz cyBhIGNvcHkgYWxvbmcgdG8gbWFrZSBzdXJlIGl0IGhhcyBhIHNlbnNpYmxlIHZhbHVlIGFueXdh eS4KLSttNF9kZWZ1bihbX0xUX1BST0dfTFRNQUlOXSwKLStbbTRfaWZkZWYoW0FDX1JFUVVJUkVf QVVYX0ZJTEVdLCBbQUNfUkVRVUlSRV9BVVhfRklMRShbbHRtYWluLnNoXSldKWRubAotK19MVF9D T05GSUdfTElCVE9PTF9JTklUKFthY19hdXhfZGlyPSckYWNfYXV4X2RpciddKQotK2x0bWFpbj0i JGFjX2F1eF9kaXIvbHRtYWluLnNoIgotK10pIyBfTFRfUFJPR19MVE1BSU4KLSsKLSsKLSsjIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgQWNjdW11bGF0ZSBj b2RlIGZvciBjcmVhdGluZyBsaWJ0b29sLiAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gIyMKLSsKLSsjIFNvIHRoYXQgd2UgY2FuIHJlY3JlYXRlIGEgZnVsbCBs aWJ0b29sIHNjcmlwdCBpbmNsdWRpbmcgYWRkaXRpb25hbAotKyMgdGFncywgd2UgYWNjdW11bGF0 ZSB0aGUgY2h1bmtzIG9mIGNvZGUgdG8gc2VuZCB0byBBQ19DT05GSUdfQ09NTUFORFMKLSsjIGlu IG1hY3JvcyBhbmQgdGhlbiBtYWtlIGEgc2luZ2xlIGNhbGwgYXQgdGhlIGVuZCB1c2luZyB0aGUg YGxpYnRvb2wnCi0rIyBsYWJlbC4KLSsKLSsKLSsjIF9MVF9DT05GSUdfTElCVE9PTF9JTklUKFtJ TklULUNPTU1BTkRTXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSsjIFJlZ2lzdGVyIElOSVQtQ09NTUFORFMgdG8gYmUgcGFzc2VkIHRvIEFDX0NPTkZJR19D T01NQU5EUyBsYXRlci4KLSttNF9kZWZpbmUoW19MVF9DT05GSUdfTElCVE9PTF9JTklUXSwKLStb bTRfaWZ2YWwoWyQxXSwKLSsgICAgICAgICAgW200X2FwcGVuZChbX0xUX09VVFBVVF9MSUJUT09M X0lOSVRdLAotKyAgICAgICAgICAgICAgICAgICAgIFskMQotK10pXSldKQotKwotKyMgSW5pdGlh bGl6ZS4KLSttNF9kZWZpbmUoW19MVF9PVVRQVVRfTElCVE9PTF9JTklUXSkKLSsKLSsKLSsjIF9M VF9DT05GSUdfTElCVE9PTChbQ09NTUFORFNdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBSZWdpc3RlciBDT01NQU5EUyB0byBiZSBwYXNzZWQgdG8gQUNfQ09ORklHX0NP TU1BTkRTIGxhdGVyLgotK200X2RlZmluZShbX0xUX0NPTkZJR19MSUJUT09MXSwKLStbbTRfaWZ2 YWwoWyQxXSwKLSsgICAgICAgICAgW200X2FwcGVuZChbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1B TkRTXSwKLSsgICAgICAgICAgICAgICAgICAgICBbJDEKLStdKV0pXSkKLSsKLSsjIEluaXRpYWxp emUuCi0rbTRfZGVmaW5lKFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNdKQotKwotKwotKyMg X0xUX0NPTkZJR19TQVZFX0NPTU1BTkRTKFtDT01NQU5EU10sIFtJTklUX0NPTU1BTkRTXSkKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r bTRfZGVmdW4oW19MVF9DT05GSUdfU0FWRV9DT01NQU5EU10sCi0rW19MVF9DT05GSUdfTElCVE9P TChbJDFdKQotK19MVF9DT05GSUdfTElCVE9PTF9JTklUKFskMl0pCi0rXSkKLSsKLSsKLSsjIF9M VF9GT1JNQVRfQ09NTUVOVChbQ09NTUVOVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgQWRkIGxlYWRpbmcgY29tbWVudCBtYXJrcyB0byB0aGUgc3RhcnQgb2YgZWFjaCBs aW5lLCBhbmQgYSB0cmFpbGluZwotKyMgZnVsbC1zdG9wIHRvIHRoZSB3aG9sZSBjb21tZW50IGlm IG9uZSBpcyBub3QgcHJlc2VudCBhbHJlYWR5LgotK200X2RlZmluZShbX0xUX0ZPUk1BVF9DT01N RU5UXSwKLStbbTRfaWZ2YWwoWyQxXSwgWwotK200X2JwYXRzdWJzdChbbTRfYnBhdHN1YnN0KFsk MV0sIFteICpdLCBbIyBdKV0sCi0rICAgICAgICAgICAgICBbWydgJFxdXSwgW1xcXCZdKV1tNF9i bWF0Y2goWyQxXSwgW1shPy5dJF0sIFtdLCBbLl0pCi0rKV0pCi0rCi0rCi0rCi0rIyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgRklYTUU6IEVsaW1pbmF0ZSBWQVJOQU1FICMjCi0r IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rCi0rCi0rIyBfTFRfREVDTChbQ09ORklH TkFNRV0sIFZBUk5BTUUsIFZBTFVFLCBbREVTQ1JJUFRJT05dLCBbSVMtVEFHR0VEP10pCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBDT05GSUdOQU1FIGlzIHRoZSBuYW1lIGdpdmVuIHRvIHRoZSB2YWx1ZSBp biB0aGUgbGlidG9vbCBzY3JpcHQuCi0rIyBWQVJOQU1FIGlzIHRoZSAoYmFzZSkgbmFtZSB1c2Vk IGluIHRoZSBjb25maWd1cmUgc2NyaXB0LgotKyMgVkFMVUUgbWF5IGJlIDAsIDEgb3IgMiBmb3Ig YSBjb21wdXRlZCBxdW90ZSBlc2NhcGVkIHZhbHVlIGJhc2VkIG9uCi0rIyBWQVJOQU1FLiAgQW55 IG90aGVyIHZhbHVlIHdpbGwgYmUgdXNlZCBkaXJlY3RseS4KLSttNF9kZWZpbmUoW19MVF9ERUNM XSwKLStbbHRfaWZfYXBwZW5kX3VuaXEoW2x0X2RlY2xfdmFybmFtZXNdLCBbJDJdLCBbLCBdLAot KyAgICBbbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbbGlidG9vbF9u YW1lXSwKLSsJW200X2lmdmFsKFskMV0sIFskMV0sIFskMl0pXSkKLSsgICAgbHRfZGljdF9hZGRf c3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbdmFsdWVdLCBbJDNdKQotKyAgICBtNF9pZnZh bChbJDRdLAotKwlbbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbZGVz Y3JpcHRpb25dLCBbJDRdKV0pCi0rICAgIGx0X2RpY3RfYWRkX3N1YmtleShbbHRfZGVjbF9kaWN0 XSwgWyQyXSwKLSsJW3RhZ2dlZD9dLCBbbTRfaWZ2YWwoWyQ1XSwgW3llc10sIFtub10pXSldKQot K10pCi0rCi0rCi0rIyBfTFRfVEFHREVDTChbQ09ORklHTkFNRV0sIFZBUk5BTUUsIFZBTFVFLCBb REVTQ1JJUFRJT05dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW19MVF9UQUdERUNMXSwgW19MVF9ERUNMKFsk MV0sIFskMl0sIFskM10sIFskNF0sIFt5ZXNdKV0pCi0rCi0rCi0rIyBsdF9kZWNsX3RhZ192YXJu YW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbbHRfZGVjbF90YWdfdmFy bmFtZXNdLAotK1tfbHRfZGVjbF9maWx0ZXIoW3RhZ2dlZD9dLCBbeWVzXSwgJEApXSkKLSsKLSsK LSsjIF9sdF9kZWNsX2ZpbHRlcihTVUJLRVksIFZBTFVFLCBbU0VQQVJBVE9SXSwgW1ZBUk5BTUUx Li5dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtfbHRfZGVjbF9maWx0ZXJdLAotK1ttNF9jYXNlKFskI10s Ci0rICBbMF0sIFttNF9mYXRhbChbJDA6IHRvbyBmZXcgYXJndW1lbnRzOiAkI10pXSwKLSsgIFsx XSwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6ICQjOiAkMV0pXSwKLSsgIFsyXSwg W2x0X2RpY3RfZmlsdGVyKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbJDJdLCBbXSwgbHRfZGVjbF92 YXJuYW1lcyldLAotKyAgWzNdLCBbbHRfZGljdF9maWx0ZXIoW2x0X2RlY2xfZGljdF0sIFskMV0s IFskMl0sIFskM10sIGx0X2RlY2xfdmFybmFtZXMpXSwKLSsgIFtsdF9kaWN0X2ZpbHRlcihbbHRf ZGVjbF9kaWN0XSwgJEApXSlbXWRubAotK10pCi0rCi0rCi0rIyBsdF9kZWNsX3F1b3RlX3Zhcm5h bWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW2x0X2RlY2xfcXVvdGVf dmFybmFtZXNdLAotK1tfbHRfZGVjbF9maWx0ZXIoW3ZhbHVlXSwgWzFdLCAkQCldKQotKwotKwot KyMgbHRfZGVjbF9kcXVvdGVfdmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uLl0pCi0r IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStt NF9kZWZpbmUoW2x0X2RlY2xfZHF1b3RlX3Zhcm5hbWVzXSwKLStbX2x0X2RlY2xfZmlsdGVyKFt2 YWx1ZV0sIFsyXSwgJEApXSkKLSsKLSsKLSsjIGx0X2RlY2xfdmFybmFtZXNfdGFnZ2VkKFtTRVBB UkFUT1JdLCBbVkFSTkFNRTEuLi5dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtsdF9kZWNsX3Zhcm5hbWVzX3RhZ2dl ZF0sCi0rW200X2Fzc2VydChbJCMgPD0gMl0pZG5sCi0rXyQwKG00X3F1b3RlKG00X2RlZmF1bHQo WyQxXSwgW1ssIF1dKSksCi0rICAgIG00X2lmdmFsKFskMl0sIFtbJDJdXSwgW200X2RxdW90ZShs dF9kZWNsX3RhZ192YXJuYW1lcyldKSwKLSsgICAgbTRfc3BsaXQobTRfbm9ybWFsaXplKG00X3F1 b3RlKF9MVF9UQUdTKSksIFsgXSkpXSkKLSttNF9kZWZpbmUoW19sdF9kZWNsX3Zhcm5hbWVzX3Rh Z2dlZF0sCi0rW200X2lmdmFsKFskM10sIFtsdF9jb21iaW5lKFskMV0sIFskMl0sIFtfXSwgJDMp XSldKQotKwotKwotKyMgbHRfZGVjbF9hbGxfdmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJOQU1F MS4uLl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSttNF9kZWZpbmUoW2x0X2RlY2xfYWxsX3Zhcm5hbWVzXSwKLStbXyQwKG00X3F1b3RlKG00 X2RlZmF1bHQoWyQxXSwgW1ssIF1dKSksCi0rICAgICBtNF9pZihbJDJdLCBbXSwKLSsJICAgbTRf cXVvdGUobHRfZGVjbF92YXJuYW1lcyksCi0rCW00X3F1b3RlKG00X3NoaWZ0KCRAKSkpKVtdZG5s Ci0rXSkKLSttNF9kZWZpbmUoW19sdF9kZWNsX2FsbF92YXJuYW1lc10sCi0rW2x0X2pvaW4oJEAs IGx0X2RlY2xfdmFybmFtZXNfdGFnZ2VkKFskMV0sCi0rCQkJbHRfZGVjbF90YWdfdmFybmFtZXMo W1ssIF1dLCBtNF9zaGlmdCgkQCkpKSlkbmwKLStdKQotKwotKwotKyMgX0xUX0NPTkZJR19TVEFU VVNfREVDTEFSRShbVkFSTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSsjIFF1b3RlIGEgdmFyaWFibGUgdmFsdWUsIGFuZCBmb3J3YXJkIGl0IHRvIGBjb25m aWcuc3RhdHVzJyBzbyB0aGF0IGl0cwotKyMgZGVjbGFyYXRpb24gdGhlcmUgd2lsbCBoYXZlIHRo ZSBzYW1lIHZhbHVlIGFzIGluIGBjb25maWd1cmUnLiAgVkFSTkFNRQotKyMgbXVzdCBoYXZlIGEg c2luZ2xlIHF1b3RlIGRlbGltaXRlZCB2YWx1ZSBmb3IgdGhpcyB0byB3b3JrLgotK200X2RlZmlu ZShbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRV0sCi0rWyQxPSdgJEVDSE8gIiRdWyQxIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCddKQotKwotKwotKyMgX0xUX0NPTkZJR19T VEFUVVNfREVDTEFSQVRJT05TCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsj IFdlIGRlbGltaXQgbGlidG9vbCBjb25maWcgdmFyaWFibGVzIHdpdGggc2luZ2xlIHF1b3Rlcywg c28gd2hlbgotKyMgd2Ugd3JpdGUgdGhlbSB0byBjb25maWcuc3RhdHVzLCB3ZSBoYXZlIHRvIGJl IHN1cmUgdG8gcXVvdGUgYWxsCi0rIyBlbWJlZGRlZCBzaW5nbGUgcXVvdGVzIHByb3Blcmx5LiAg SW4gY29uZmlndXJlLCB0aGlzIG1hY3JvIGV4cGFuZHMKLSsjIGVhY2ggdmFyaWFibGUgZGVjbGFy ZWQgd2l0aCBfTFRfREVDTCAoYW5kIF9MVF9UQUdERUNMKSBpbnRvOgotKyMKLSsjICAgIDx2YXI+ PSdgJEVDSE8gIiQ8dmFyPiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r bTRfZGVmdW4oW19MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkFUSU9OU10sCi0rW200X2ZvcmVhY2go W19sdF92YXJdLCBtNF9xdW90ZShsdF9kZWNsX2FsbF92YXJuYW1lcyksCi0rICAgIFttNF9uKFtf TFRfQ09ORklHX1NUQVRVU19ERUNMQVJFKF9sdF92YXIpXSldKV0pCi0rCi0rCi0rIyBfTFRfTElC VE9PTF9UQUdTCi0rIyAtLS0tLS0tLS0tLS0tLS0tCi0rIyBPdXRwdXQgY29tbWVudCBhbmQgbGlz dCBvZiB0YWdzIHN1cHBvcnRlZCBieSB0aGUgc2NyaXB0Ci0rbTRfZGVmdW4oW19MVF9MSUJUT09M X1RBR1NdLAotK1tfTFRfRk9STUFUX0NPTU1FTlQoW1RoZSBuYW1lcyBvZiB0aGUgdGFnZ2VkIGNv bmZpZ3VyYXRpb25zIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlwdF0pZG5sCi0rYXZhaWxhYmxlX3Rh Z3M9Il9MVF9UQUdTImRubAotK10pCi0rCi0rCi0rIyBfTFRfTElCVE9PTF9ERUNMQVJFKFZBUk5B TUUsIFtUQUddKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEV4 dHJhY3QgdGhlIGRpY3Rpb25hcnkgdmFsdWVzIGZvciBWQVJOQU1FIChvcHRpb25hbGx5IHdpdGgg VEFHKSBhbmQKLSsjIGV4cGFuZCB0byBhIGNvbW1lbnRlZCBzaGVsbCB2YXJpYWJsZSBzZXR0aW5n OgotKyMKLSsjICAgICMgU29tZSBjb21tZW50IGFib3V0IHdoYXQgVkFSIGlzIGZvci4KLSsjICAg IHZpc2libGVfbmFtZT0kbHRfaW50ZXJuYWxfbmFtZQotK200X2RlZmluZShbX0xUX0xJQlRPT0xf REVDTEFSRV0sCi0rW19MVF9GT1JNQVRfQ09NTUVOVChtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFts dF9kZWNsX2RpY3RdLCBbJDFdLAotKwkJCQkJICAgW2Rlc2NyaXB0aW9uXSkpKVtdZG5sCi0rbTRf cHVzaGRlZihbX2xpYnRvb2xfbmFtZV0sCi0rICAgIG00X3F1b3RlKGx0X2RpY3RfZmV0Y2goW2x0 X2RlY2xfZGljdF0sIFskMV0sIFtsaWJ0b29sX25hbWVdKSkpW11kbmwKLSttNF9jYXNlKG00X3F1 b3RlKGx0X2RpY3RfZmV0Y2goW2x0X2RlY2xfZGljdF0sIFskMV0sIFt2YWx1ZV0pKSwKLSsgICAg WzBdLCBbX2xpYnRvb2xfbmFtZT1bJF0kMV0sCi0rICAgIFsxXSwgW19saWJ0b29sX25hbWU9JGx0 X1tdJDFdLAotKyAgICBbMl0sIFtfbGlidG9vbF9uYW1lPSRsdF9bXSQxXSwKLSsgICAgW19saWJ0 b29sX25hbWU9bHRfZGljdF9mZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwgW3ZhbHVlXSldKVtd ZG5sCi0rbTRfaWZ2YWwoWyQyXSwgW18kMl0pW11tNF9wb3BkZWYoW19saWJ0b29sX25hbWVdKVtd ZG5sCi0rXSkKLSsKLSsKLSsjIF9MVF9MSUJUT09MX0NPTkZJR19WQVJTCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotKyMgUHJvZHVjZSBjb21tZW50ZWQgZGVjbGFyYXRpb25zIG9mIG5vbi10 YWdnZWQgbGlidG9vbCBjb25maWcgdmFyaWFibGVzCi0rIyBzdWl0YWJsZSBmb3IgaW5zZXJ0aW9u IGluIHRoZSBMSUJUT09MIENPTkZJRyBzZWN0aW9uIG9mIHRoZSBgbGlidG9vbCcKLSsjIHNjcmlw dC4gIFRhZ2dlZCBsaWJ0b29sIGNvbmZpZyB2YXJpYWJsZXMgKGV2ZW4gZm9yIHRoZSBMSUJUT09M IENPTkZJRwotKyMgc2VjdGlvbikgYXJlIHByb2R1Y2VkIGJ5IF9MVF9MSUJUT09MX1RBR19WQVJT LgotK200X2RlZnVuKFtfTFRfTElCVE9PTF9DT05GSUdfVkFSU10sCi0rW200X2ZvcmVhY2goW19s dF92YXJdLAotKyAgICBtNF9xdW90ZShfbHRfZGVjbF9maWx0ZXIoW3RhZ2dlZD9dLCBbbm9dLCBb XSwgbHRfZGVjbF92YXJuYW1lcykpLAotKyAgICBbbTRfbihbX0xUX0xJQlRPT0xfREVDTEFSRShf bHRfdmFyKV0pXSldKQotKwotKwotKyMgX0xUX0xJQlRPT0xfVEFHX1ZBUlMoVEFHKQotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbX0xUX0xJQlRPT0xfVEFHX1ZBUlNd LAotK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwgbTRfcXVvdGUobHRfZGVjbF90YWdfdmFybmFtZXMp LAotKyAgICBbbTRfbihbX0xUX0xJQlRPT0xfREVDTEFSRShfbHRfdmFyLCBbJDFdKV0pXSldKQot KwotKwotKyMgX0xUX1RBR1ZBUihWQVJOQU1FLCBbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW19MVF9UQUdWQVJdLCBbbTRfaWZ2YWwoWyQy XSwgWyQxXyQyXSwgWyQxXSldKQotKwotKwotKyMgX0xUX0NPTkZJR19DT01NQU5EUwotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgU2VuZCBhY2N1bXVsYXRlZCBvdXRwdXQgdG8gJENPTkZJR19T VEFUVVMuICBUaGFua3MgdG8gdGhlIGxpc3RzIG9mCi0rIyB2YXJpYWJsZXMgZm9yIHNpbmdsZSBh bmQgZG91YmxlIHF1b3RlIGVzY2FwaW5nIHdlIHNhdmVkIGZyb20gY2FsbHMKLSsjIHRvIF9MVF9E RUNMLCB3ZSBjYW4gcHV0IHF1b3RlIGVzY2FwZWQgdmFyaWFibGVzIGRlY2xhcmF0aW9ucwotKyMg aW50byBgY29uZmlnLnN0YXR1cycsIGFuZCB0aGVuIHRoZSBzaGVsbCBjb2RlIHRvIHF1b3RlIGVz Y2FwZSB0aGVtIGluCi0rIyBmb3IgbG9vcHMgaW4gYGNvbmZpZy5zdGF0dXMnLiAgRmluYWxseSwg YW55IGFkZGl0aW9uYWwgY29kZSBhY2N1bXVsYXRlZAotKyMgZnJvbSBjYWxscyB0byBfTFRfQ09O RklHX0xJQlRPT0xfSU5JVCBpcyBleHBhbmRlZC4KLSttNF9kZWZ1bihbX0xUX0NPTkZJR19DT01N QU5EU10sCi0rW0FDX1BST1ZJREVfSUZFTFNFKFtMVF9PVVRQVVRdLAotKwlkbmwgSWYgdGhlIGxp YnRvb2wgZ2VuZXJhdGlvbiBjb2RlIGhhcyBiZWVuIHBsYWNlZCBpbiAkQ09ORklHX0xULAotKwlk bmwgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdCBhbGwgb3ZlciBhZ2FpbiBpbnRvIGNvbmZpZy5z dGF0dXMsCi0rCWRubCB0aGVuIHdlIHdpbGwgaGF2ZSBjb25maWcuc3RhdHVzIHJ1biAkQ09ORklH X0xUIGxhdGVyLCBzbyBpdAotKwlkbmwgbmVlZHMgdG8ga25vdyB3aGF0IG5hbWUgaXMgc3RvcmVk IHRoZXJlOgotKyAgICAgICAgW0FDX0NPTkZJR19DT01NQU5EUyhbbGlidG9vbF0sCi0rICAgICAg ICAgICAgWyRTSEVMTCAkQ09ORklHX0xUIHx8IEFTX0VYSVQoMSldLCBbQ09ORklHX0xUPSckQ09O RklHX0xUJ10pXSwKLSsgICAgZG5sIElmIHRoZSBsaWJ0b29sIGdlbmVyYXRpb24gY29kZSBpcyBk ZXN0aW5lZCBmb3IgY29uZmlnLnN0YXR1cywKLSsgICAgZG5sIGV4cGFuZCB0aGUgYWNjdW11bGF0 ZWQgY29tbWFuZHMgYW5kIGluaXQgY29kZSBub3c6Ci0rICAgIFtBQ19DT05GSUdfQ09NTUFORFMo W2xpYnRvb2xdLAotKyAgICAgICAgW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU10sIFtfTFRf T1VUUFVUX0xJQlRPT0xfQ09NTUFORFNfSU5JVF0pXSkKLStdKSNfTFRfQ09ORklHX0NPTU1BTkRT Ci0rCi0rCi0rIyBJbml0aWFsaXplLgotK200X2RlZmluZShbX0xUX09VVFBVVF9MSUJUT09MX0NP TU1BTkRTX0lOSVRdLAotK1sKLSsKLSsjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHBy aW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAotKyMgaWYgQ0RQQVRIIGlzIHNldC4K LSsodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICi0rCi0rc2Vk X3F1b3RlX3N1YnN0PSckc2VkX3F1b3RlX3N1YnN0JwotK2RvdWJsZV9xdW90ZV9zdWJzdD0nJGRv dWJsZV9xdW90ZV9zdWJzdCcKLStkZWxheV92YXJpYWJsZV9zdWJzdD0nJGRlbGF5X3ZhcmlhYmxl X3N1YnN0JwotK19MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkFUSU9OUwotK0xUQ0M9JyRMVENDJwot K0xUQ0ZMQUdTPSckTFRDRkxBR1MnCi0rY29tcGlsZXI9JyRjb21waWxlcl9ERUZBVUxUJwotKwot KyMgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgd2hlbiB0aGVyZSBpcyBubyBwcmludCBidWlsdGlu IG9yIHByaW50Zi4KLStmdW5jX2ZhbGxiYWNrX2VjaG8gKCkKLSt7Ci0rICBldmFsICdjYXQgPDxf TFRFQ0hPX0VPRgotK1wkW10xCi0rX0xURUNIT19FT0YnCi0rfQotKwotKyMgUXVvdGUgZXZhbGVk IHN0cmluZ3MuCi0rZm9yIHZhciBpbiBsdF9kZWNsX2FsbF92YXJuYW1lcyhbWyBcCi0rXV0sIGx0 X2RlY2xfcXVvdGVfdmFybmFtZXMpOyBkbwotKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPIFxc XFwiIlxcXFxcJFwkdmFyIlxcXFwiXGAgaW4KLSsgICAgKltbXFxcXFxcXGBcXCJcXFwkXV0qKQot KyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiXFxcJFwkdmFyXFwi IHwgXFxcJFNFRCBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCi0rICAgICAg OzsKLSsgICAgKikKLSsgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxc IiIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZG9uZQotKwotKyMgRG91YmxlLXF1b3RlIGRvdWJs ZS1ldmFsZWQgc3RyaW5ncy4KLStmb3IgdmFyIGluIGx0X2RlY2xfYWxsX3Zhcm5hbWVzKFtbIFwK LStdXSwgbHRfZGVjbF9kcXVvdGVfdmFybmFtZXMpOyBkbwotKyAgICBjYXNlIFxgZXZhbCBcXFxc XCRFQ0hPIFxcXFwiIlxcXFxcJFwkdmFyIlxcXFwiXGAgaW4KLSsgICAgKltbXFxcXFxcXGBcXCJc XFwkXV0qKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiXFxc JFwkdmFyXFwiIHwgXFxcJFNFRCAtZSBcXCJcXFwkZG91YmxlX3F1b3RlX3N1YnN0XFwiIC1lIFxc IlxcXCRzZWRfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XFwi XFxcYFxcXFxcXCIiCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBldmFsICJsdF9cJHZhcj1c XFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZG9uZQotKwot K19MVF9PVVRQVVRfTElCVE9PTF9JTklUCi0rXSkKLSsKLSsjIF9MVF9HRU5FUkFURURfRklMRV9J TklUKEZJTEUsIFtDT01NRU5UXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgR2VuZXJhdGUgYSBjaGlsZCBzY3JpcHQgRklMRSB3aXRoIGFsbCBpbml0aWFsaXph dGlvbiBuZWNlc3NhcnkgdG8KLSsjIHJldXNlIHRoZSBlbnZpcm9ubWVudCBsZWFybmVkIGJ5IHRo ZSBwYXJlbnQgc2NyaXB0LCBhbmQgbWFrZSB0aGUKLSsjIGZpbGUgZXhlY3V0YWJsZS4gIElmIENP TU1FTlQgaXMgc3VwcGxpZWQsIGl0IGlzIGluc2VydGVkIGFmdGVyIHRoZQotKyMgYCMhJyBzZXF1 ZW5jZSBidXQgYmVmb3JlIGluaXRpYWxpemF0aW9uIHRleHQgYmVnaW5zLiAgQWZ0ZXIgdGhpcwot KyMgbWFjcm8sIGFkZGl0aW9uYWwgdGV4dCBjYW4gYmUgYXBwZW5kZWQgdG8gRklMRSB0byBmb3Jt IHRoZSBib2R5IG9mCi0rIyB0aGUgY2hpbGQgc2NyaXB0LiAgVGhlIG1hY3JvIGVuZHMgd2l0aCBu b24temVybyBzdGF0dXMgaWYgdGhlCi0rIyBmaWxlIGNvdWxkIG5vdCBiZSBmdWxseSB3cml0dGVu IChzdWNoIGFzIGlmIHRoZSBkaXNrIGlzIGZ1bGwpLgotK200X2lmZGVmKFtBU19JTklUX0dFTkVS QVRFRF0sCi0rW200X2RlZnVuKFtfTFRfR0VORVJBVEVEX0ZJTEVfSU5JVF0sW0FTX0lOSVRfR0VO RVJBVEVEKCRAKV0pXSwKLStbbTRfZGVmdW4oW19MVF9HRU5FUkFURURfRklMRV9JTklUXSwKLStb bTRfcmVxdWlyZShbQVNfUFJFUEFSRV0pXWRubAotK1ttNF9wdXNoZGVmKFtBU19NRVNTQUdFX0xP R19GRF0pXWRubAotK1tsdF93cml0ZV9mYWlsPTAKLStjYXQgPiQxIDw8X0FTRU9GIHx8IGx0X3dy aXRlX2ZhaWw9MQotKyMhICRTSEVMTAotKyMgR2VuZXJhdGVkIGJ5ICRhc19tZS4KLSskMgotK1NI RUxMPVwke0NPTkZJR19TSEVMTC0kU0hFTEx9Ci0rZXhwb3J0IFNIRUxMCi0rX0FTRU9GCi0rY2F0 ID4+JDEgPDxcX0FTRU9GIHx8IGx0X3dyaXRlX2ZhaWw9MQotK0FTX1NIRUxMX1NBTklUSVpFCi0r X0FTX1BSRVBBUkUKLStleGVjIEFTX01FU1NBR0VfRkQ+JjEKLStfQVNFT0YKLSt0ZXN0ICRsdF93 cml0ZV9mYWlsID0gMCAmJiBjaG1vZCAreCAkMVtdZG5sCi0rbTRfcG9wZGVmKFtBU19NRVNTQUdF X0xPR19GRF0pXSldKSMgX0xUX0dFTkVSQVRFRF9GSUxFX0lOSVQKLSsKLSsjIExUX09VVFBVVAot KyMgLS0tLS0tLS0tCi0rIyBUaGlzIG1hY3JvIGFsbG93cyBlYXJseSBnZW5lcmF0aW9uIG9mIHRo ZSBsaWJ0b29sIHNjcmlwdCAoYmVmb3JlCi0rIyBBQ19PVVRQVVQgaXMgY2FsbGVkKSwgaW5jYXNl IGl0IGlzIHVzZWQgaW4gY29uZmlndXJlIGZvciBjb21waWxhdGlvbgotKyMgdGVzdHMuCi0rQUNf REVGVU4oW0xUX09VVFBVVF0sCi0rWzogJHtDT05GSUdfTFQ9Li9jb25maWcubHR9Ci0rQUNfTVNH X05PVElDRShbY3JlYXRpbmcgJENPTkZJR19MVF0pCi0rX0xUX0dFTkVSQVRFRF9GSUxFX0lOSVQo WyIkQ09ORklHX0xUIl0sCi0rWyMgUnVuIHRoaXMgZmlsZSB0byByZWNyZWF0ZSBhIGxpYnRvb2wg c3R1YiB3aXRoIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uXSkKLSsKLStjYXQgPj4iJENPTkZJ R19MVCIgPDxcX0xURU9GCi0rbHRfY2xfc2lsZW50PWZhbHNlCi0rZXhlYyBBU19NRVNTQUdFX0xP R19GRD4+Y29uZmlnLmxvZwotK3sKLSsgIGVjaG8KLSsgIEFTX0JPWChbUnVubmluZyAkYXNfbWUu XSkKLSt9ID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsKLStsdF9jbF9oZWxwPSJcCi0rXGAkYXNfbWUn IGNyZWF0ZXMgYSBsb2NhbCBsaWJ0b29sIHN0dWIgZnJvbSB0aGUgY3VycmVudCBjb25maWd1cmF0 aW9uLAotK2ZvciB1c2UgaW4gZnVydGhlciBjb25maWd1cmUgdGltZSB0ZXN0cyBiZWZvcmUgdGhl IHJlYWwgbGlidG9vbCBpcwotK2dlbmVyYXRlZC4KLSsKLStVc2FnZTogJFswXSBbW09QVElPTlNd XQotKwotKyAgLWgsIC0taGVscCAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0rICAt ViwgLS12ZXJzaW9uICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAotKyAgLXEsIC0t cXVpZXQgICAgIGRvIG5vdCBwcmludCBwcm9ncmVzcyBtZXNzYWdlcwotKyAgLWQsIC0tZGVidWcg ICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKLSsKLStSZXBvcnQgYnVncyB0byA8YnVn LWxpYnRvb2xAZ251Lm9yZz4uIgotKwotK2x0X2NsX3ZlcnNpb249IlwKLSttNF9pZnNldChbQUNf UEFDS0FHRV9OQU1FXSwgW0FDX1BBQ0tBR0VfTkFNRSBdKWNvbmZpZy5sdFtdZG5sCi0rbTRfaWZz ZXQoW0FDX1BBQ0tBR0VfVkVSU0lPTl0sIFsgQUNfUEFDS0FHRV9WRVJTSU9OXSkKLStjb25maWd1 cmVkIGJ5ICRbMF0sIGdlbmVyYXRlZCBieSBtNF9QQUNLQUdFX1NUUklORy4KLSsKLStDb3B5cmln aHQgKEMpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rVGhpcyBjb25maWcu bHQgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K LStnaXZlcyB1bmxpbWl0ZWQgcGVybWlzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlm eSBpdC4iCi0rCi0rd2hpbGUgdGVzdCAkWyNdICE9IDAKLStkbwotKyAgY2FzZSAkWzFdIGluCi0r ICAgIC0tdmVyc2lvbiB8IC0tdiogfCAtViApCi0rICAgICAgZWNobyAiJGx0X2NsX3ZlcnNpb24i OyBleGl0IDAgOzsKLSsgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKLSsgICAgICBlY2hvICIkbHRf Y2xfaGVscCI7IGV4aXQgMCA7OwotKyAgICAtLWRlYnVnIHwgLS1kKiB8IC1kICkKLSsgICAgICBk ZWJ1Zz06IDs7Ci0rICAgIC0tcXVpZXQgfCAtLXEqIHwgLS1zaWxlbnQgfCAtLXMqIHwgLXEgKQot KyAgICAgIGx0X2NsX3NpbGVudD06IDs7Ci0rCi0rICAgIC0qKSBBQ19NU0dfRVJST1IoW3VucmVj b2duaXplZCBvcHRpb246ICRbMV0KLStUcnkgXGAkWzBdIC0taGVscCcgZm9yIG1vcmUgaW5mb3Jt YXRpb24uXSkgOzsKLSsKLSsgICAgKikgQUNfTVNHX0VSUk9SKFt1bnJlY29nbml6ZWQgYXJndW1l bnQ6ICRbMV0KLStUcnkgXGAkWzBdIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXSkgOzsK LSsgIGVzYWMKLSsgIHNoaWZ0Ci0rZG9uZQotKwotK2lmICRsdF9jbF9zaWxlbnQ7IHRoZW4KLSsg IGV4ZWMgQVNfTUVTU0FHRV9GRD4vZGV2L251bGwKLStmaQotK19MVEVPRgotKwotK2NhdCA+PiIk Q09ORklHX0xUIiA8PF9MVEVPRgotK19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU19JTklUCi0r X0xURU9GCi0rCi0rY2F0ID4+IiRDT05GSUdfTFQiIDw8XF9MVEVPRgotK0FDX01TR19OT1RJQ0Uo W2NyZWF0aW5nICRvZmlsZV0pCi0rX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTCi0rQVNfRVhJ VCgwKQotK19MVEVPRgotK2NobW9kICt4ICIkQ09ORklHX0xUIgotKwotKyMgY29uZmlndXJlIGlz IHdyaXRpbmcgdG8gY29uZmlnLmxvZywgYnV0IGNvbmZpZy5sdCBkb2VzIGl0cyBvd24gcmVkaXJl Y3Rpb24sCi0rIyBhcHBlbmRpbmcgdG8gY29uZmlnLmxvZywgd2hpY2ggZmFpbHMgb24gRE9TLCBh cyBjb25maWcubG9nIGlzIHN0aWxsIGtlcHQKLSsjIG9wZW4gYnkgY29uZmlndXJlLiAgSGVyZSB3 ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsIGVmZmVjdGl2ZWx5IGNsb3NpbmcKLSsjIGNvbmZp Zy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZCBhcHBlbmRlZCB0byBi eSBjb25maWcubHQuCi0rbHRfY2xfc3VjY2Vzcz06Ci0rdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYK LSsgIGx0X2NvbmZpZ19sdF9hcmdzPSIkbHRfY29uZmlnX2x0X2FyZ3MgLS1xdWlldCIKLStleGVj IEFTX01FU1NBR0VfTE9HX0ZEPi9kZXYvbnVsbAotKyRTSEVMTCAiJENPTkZJR19MVCIgJGx0X2Nv bmZpZ19sdF9hcmdzIHx8IGx0X2NsX3N1Y2Nlc3M9ZmFsc2UKLStleGVjIEFTX01FU1NBR0VfTE9H X0ZEPj5jb25maWcubG9nCi0rJGx0X2NsX3N1Y2Nlc3MgfHwgQVNfRVhJVCgxKQotK10pIyBMVF9P VVRQVVQKLSsKLSsKLSsjIF9MVF9DT05GSUcoVEFHKQotKyMgLS0tLS0tLS0tLS0tLS0tCi0rIyBJ ZiBUQUcgaXMgdGhlIGJ1aWx0LWluIHRhZywgY3JlYXRlIGFuIGluaXRpYWwgbGlidG9vbCBzY3Jp cHQgd2l0aCBhCi0rIyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgdW50YWdnZWQgY29u ZmlnIHZhcnMuICBPdGhlcndpc2UgYWRkIGNvZGUKLSsjIHRvIGNvbmZpZy5zdGF0dXMgZm9yIGFw cGVuZGluZyB0aGUgY29uZmlndXJhdGlvbiBuYW1lZCBieSBUQUcgZnJvbSB0aGUKLSsjIG1hdGNo aW5nIHRhZ2dlZCBjb25maWcgdmFycy4KLSttNF9kZWZ1bihbX0xUX0NPTkZJR10sCi0rW200X3Jl cXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotK19MVF9DT05GSUdfU0FWRV9DT01N QU5EUyhbCi0rICBtNF9kZWZpbmUoW19MVF9UQUddLCBtNF9pZihbJDFdLCBbXSwgW0NdLCBbJDFd KSlkbmwKLSsgIG00X2lmKF9MVF9UQUcsIFtDXSwgWwotKyAgICAjIFNlZSBpZiB3ZSBhcmUgcnVu bmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxsb3cgb3VyCi0rICAgICMg Y29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzLgotKyAgICBpZiB0 ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgICAgIHNldG9wdCBOT19HTE9C X1NVQlNUCi0rICAgIGZpCi0rCi0rICAgIGNmZ2ZpbGU9IiR7b2ZpbGV9VCIKLSsgICAgdHJhcCAi JFJNIFwiJGNmZ2ZpbGVcIjsgZXhpdCAxIiAxIDIgMTUKLSsgICAgJFJNICIkY2ZnZmlsZSIKLSsK LSsgICAgY2F0IDw8X0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0rIyEgJFNIRUxMCi0rCi0rIyBgJEVD SE8gIiRvZmlsZSIgfCBzZWQgJ3MlXi4qLyUlJ2AgLSBQcm92aWRlIGdlbmVyYWxpemVkIGxpYnJh cnktYnVpbGRpbmcgc3VwcG9ydCBzZXJ2aWNlcy4KLSsjIEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5 IGJ5ICRhc19tZSAoJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgotKyMgTGlidG9vbCB3YXMg Y29uZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwg c2VkIDFxYDoKLSsjIE5PVEU6IENoYW5nZXMgbWFkZSB0byB0aGlzIGZpbGUgd2lsbCBiZSBsb3N0 OiBsb29rIGF0IGx0bWFpbi5zaC4KLSsjCi0rX0xUX0NPUFlJTkcKLStfTFRfTElCVE9PTF9UQUdT Ci0rCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBDT05GSUcKLStfTFRfTElCVE9PTF9DT05GSUdfVkFS UwotK19MVF9MSUJUT09MX1RBR19WQVJTCi0rIyAjIyMgRU5EIExJQlRPT0wgQ09ORklHCi0rCi0r X0xUX0VPRgotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgYWl4MyopCi0rICAgIGNhdCA8PFxf TFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsjIEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGgg dGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKLSsjIHJlYXNvbiwgaWYgd2Ugc2V0 IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKLSsj IHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCi0raWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytz ZXR9IiAhPSBYc2V0OyB0aGVuCi0rICBDT0xMRUNUX05BTUVTPQotKyAgZXhwb3J0IENPTExFQ1Rf TkFNRVMKLStmaQotK19MVF9FT0YKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIF9MVF9QUk9HX0xU TUFJTgotKwotKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFzaCBvbiBE SkdQUCBnZXRzIGNvbmZ1c2VkIGlmCi0rICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFuZCBMRi1v bmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCi0rICAjIHRleHQgbW9kZSwgaXQgcHJv cGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQotKyAgIyBp cyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRvbz8K LSsgIHNlZCAnJHEnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKLSsgICAgIHx8IChybSAtZiAi JGNmZ2ZpbGUiOyBleGl0IDEpCi0rCi0rICBfTFRfUFJPR19SRVBMQUNFX1NIRUxMRk5TCi0rCi0r ICAgbXYgLWYgIiRjZmdmaWxlIiAiJG9maWxlIiB8fAotKyAgICAocm0gLWYgIiRvZmlsZSIgJiYg Y3AgIiRjZmdmaWxlIiAiJG9maWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUiKQotKyAgY2htb2QgK3gg IiRvZmlsZSIKLStdLAotK1tjYXQgPDxfTFRfRU9GID4+ICIkb2ZpbGUiCi0rCi0rZG5sIFVuZm9y dHVuYXRlbHkgd2UgaGF2ZSB0byB1c2UgJDEgaGVyZSwgc2luY2UgX0xUX1RBRyBpcyBub3QgZXhw YW5kZWQKLStkbmwgaW4gYSBjb21tZW50IChpZSBhZnRlciBhICMpLgotKyMgIyMjIEJFR0lOIExJ QlRPT0wgVEFHIENPTkZJRzogJDEKLStfTFRfTElCVE9PTF9UQUdfVkFSUyhfTFRfVEFHKQotKyMg IyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICQxCi0rX0xUX0VPRgotK10pZG5sIC9tNF9pZgot K10sCi0rW200X2lmKFskMV0sIFtdLCBbCi0rICAgIFBBQ0tBR0U9JyRQQUNLQUdFJwotKyAgICBW RVJTSU9OPSckVkVSU0lPTicKLSsgICAgVElNRVNUQU1QPSckVElNRVNUQU1QJwotKyAgICBSTT0n JFJNJwotKyAgICBvZmlsZT0nJG9maWxlJ10sIFtdKQotK10pZG5sIC9fTFRfQ09ORklHX1NBVkVf Q09NTUFORFMKLStdKSMgX0xUX0NPTkZJRwotKwotKwotKyMgTFRfU1VQUE9SVEVEX1RBRyhUQUcp Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFRyYWNlIHRoaXMgbWFjcm8gdG8gZGlzY292 ZXIgd2hhdCB0YWdzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIGxpYnRvb2wKLSsjIC0tdGFnIG9wdGlv biwgdXNpbmc6Ci0rIyAgICBhdXRvY29uZiAtLXRyYWNlICdMVF9TVVBQT1JURURfVEFHOiQxJwot K0FDX0RFRlVOKFtMVF9TVVBQT1JURURfVEFHXSwgW10pCi0rCi0rCi0rIyBDIHN1cHBvcnQgaXMg YnVpbHQtaW4gZm9yIG5vdwotK200X2RlZmluZShbX0xUX0xBTkdfQ19lbmFibGVkXSwgW10pCi0r bTRfZGVmaW5lKFtfTFRfVEFHU10sIFtdKQotKwotKwotKyMgTFRfTEFORyhMQU5HKQotKyMgLS0t LS0tLS0tLS0tLQotKyMgRW5hYmxlIGxpYnRvb2wgc3VwcG9ydCBmb3IgdGhlIGdpdmVuIGxhbmd1 YWdlIGlmIG5vdCBhbHJlYWR5IGVuYWJsZWQuCi0rQUNfREVGVU4oW0xUX0xBTkddLAotK1tBQ19C RUZPUkUoWyQwXSwgW0xUX09VVFBVVF0pZG5sCi0rbTRfY2FzZShbJDFdLAotKyAgW0NdLAkJCVtf TFRfTEFORyhDKV0sCi0rICBbQysrXSwJCVtfTFRfTEFORyhDWFgpXSwKLSsgIFtKYXZhXSwJCVtf TFRfTEFORyhHQ0opXSwKLSsgIFtGb3J0cmFuIDc3XSwJCVtfTFRfTEFORyhGNzcpXSwKLSsgIFtG b3J0cmFuXSwJCVtfTFRfTEFORyhGQyldLAotKyAgW1dpbmRvd3MgUmVzb3VyY2VdLAlbX0xUX0xB TkcoUkMpXSwKLSsgIFttNF9pZmRlZihbX0xUX0xBTkdfXSQxW19DT05GSUddLAotKyAgICBbX0xU X0xBTkcoJDEpXSwKLSsgICAgW200X2ZhdGFsKFskMDogdW5zdXBwb3J0ZWQgbGFuZ3VhZ2U6ICIk MSJdKV0pXSlkbmwKLStdKSMgTFRfTEFORwotKwotKwotKyMgX0xUX0xBTkcoTEFOR05BTUUpCi0r IyAtLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0xBTkddLAotK1ttNF9pZmRlZihb X0xUX0xBTkdfXSQxW19lbmFibGVkXSwgW10sCi0rICBbTFRfU1VQUE9SVEVEX1RBRyhbJDFdKWRu bAotKyAgbTRfYXBwZW5kKFtfTFRfVEFHU10sIFskMSBdKWRubAotKyAgbTRfZGVmaW5lKFtfTFRf TEFOR19dJDFbX2VuYWJsZWRdLCBbXSlkbmwKLSsgIF9MVF9MQU5HXyQxX0NPTkZJRygkMSldKWRu bAotK10pIyBfTFRfTEFORwotKwotKwotKyMgX0xUX0xBTkdfREVGQVVMVF9DT05GSUcKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9MQU5HX0RFRkFVTFRfQ09ORklH XSwKLStbQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfQ1hYXSwKLSsgIFtMVF9MQU5HKENYWCld LAotKyAgW200X2RlZmluZShbQUNfUFJPR19DWFhdLCBkZWZuKFtBQ19QUk9HX0NYWF0pW0xUX0xB TkcoQ1hYKV0pXSkKLSsKLStBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19GNzddLAotKyAgW0xU X0xBTkcoRjc3KV0sCi0rICBbbTRfZGVmaW5lKFtBQ19QUk9HX0Y3N10sIGRlZm4oW0FDX1BST0df Rjc3XSlbTFRfTEFORyhGNzcpXSldKQotKwotK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0ZD XSwKLSsgIFtMVF9MQU5HKEZDKV0sCi0rICBbbTRfZGVmaW5lKFtBQ19QUk9HX0ZDXSwgZGVmbihb QUNfUFJPR19GQ10pW0xUX0xBTkcoRkMpXSldKQotKwotK2RubCBUaGUgY2FsbCB0byBbQV1bTV9Q Uk9HX0dDSl0gaXMgcXVvdGVkIGxpa2UgdGhhdCB0byBzdG9wIGFjbG9jYWwKLStkbmwgcHVsbGlu ZyB0aGluZ3MgaW4gbmVlZGxlc3NseS4KLStBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19HQ0pd LAotKyAgW0xUX0xBTkcoR0NKKV0sCi0rICBbQUNfUFJPVklERV9JRkVMU0UoW0FdW01fUFJPR19H Q0pdLAotKyAgICBbTFRfTEFORyhHQ0opXSwKLSsgICAgW0FDX1BST1ZJREVfSUZFTFNFKFtMVF9Q Uk9HX0dDSl0sCi0rICAgICAgW0xUX0xBTkcoR0NKKV0sCi0rICAgICAgW200X2lmZGVmKFtBQ19Q Uk9HX0dDSl0sCi0rCVttNF9kZWZpbmUoW0FDX1BST0dfR0NKXSwgZGVmbihbQUNfUFJPR19HQ0pd KVtMVF9MQU5HKEdDSildKV0pCi0rICAgICAgIG00X2lmZGVmKFtBXVtNX1BST0dfR0NKXSwKLSsJ W200X2RlZmluZShbQV1bTV9QUk9HX0dDSl0sIGRlZm4oW0FdW01fUFJPR19HQ0pdKVtMVF9MQU5H KEdDSildKV0pCi0rICAgICAgIG00X2lmZGVmKFtMVF9QUk9HX0dDSl0sCi0rCVttNF9kZWZpbmUo W0xUX1BST0dfR0NKXSwgZGVmbihbTFRfUFJPR19HQ0pdKVtMVF9MQU5HKEdDSildKV0pXSldKV0p Ci0rCi0rQUNfUFJPVklERV9JRkVMU0UoW0xUX1BST0dfUkNdLAotKyAgW0xUX0xBTkcoUkMpXSwK LSsgIFttNF9kZWZpbmUoW0xUX1BST0dfUkNdLCBkZWZuKFtMVF9QUk9HX1JDXSlbTFRfTEFORyhS QyldKV0pCi0rXSkjIF9MVF9MQU5HX0RFRkFVTFRfQ09ORklHCi0rCi0rIyBPYnNvbGV0ZSBtYWNy b3M6Ci0rQVVfREVGVU4oW0FDX0xJQlRPT0xfQ1hYXSwgW0xUX0xBTkcoQysrKV0pCi0rQVVfREVG VU4oW0FDX0xJQlRPT0xfRjc3XSwgW0xUX0xBTkcoRm9ydHJhbiA3NyldKQotK0FVX0RFRlVOKFtB Q19MSUJUT09MX0ZDXSwgW0xUX0xBTkcoRm9ydHJhbildKQotK0FVX0RFRlVOKFtBQ19MSUJUT09M X0dDSl0sIFtMVF9MQU5HKEphdmEpXSkKLStBVV9ERUZVTihbQUNfTElCVE9PTF9SQ10sIFtMVF9M QU5HKFdpbmRvd3MgUmVzb3VyY2UpXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBh dGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0NYWF0sIFtdKQotK2RubCBBQ19E RUZVTihbQUNfTElCVE9PTF9GNzddLCBbXSkKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRkNd LCBbXSkKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfR0NKXSwgW10pCi0rZG5sIEFDX0RFRlVO KFtBQ19MSUJUT09MX1JDXSwgW10pCi0rCi0rCi0rIyBfTFRfVEFHX0NPTVBJTEVSCi0rIyAtLS0t LS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9UQUdfQ09NUElMRVJdLAotK1tBQ19SRVFVSVJF KFtBQ19QUk9HX0NDXSlkbmwKLSsKLStfTFRfREVDTChbTFRDQ10sIFtDQ10sIFsxXSwgW0EgQyBj b21waWxlcl0pZG5sCi0rX0xUX0RFQ0woW0xUQ0ZMQUdTXSwgW0NGTEFHU10sIFsxXSwgW0xUQ0Mg Y29tcGlsZXIgZmxhZ3NdKWRubAotK19MVF9UQUdERUNMKFtDQ10sIFtjb21waWxlcl0sIFsxXSwg W0EgbGFuZ3VhZ2Ugc3BlY2lmaWMgY29tcGlsZXJdKWRubAotK19MVF9UQUdERUNMKFt3aXRoX2dj Y10sIFtHQ0NdLCBbMF0sIFtJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj9dKWRubAot KwotKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xU Q0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1 c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cg Q0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0r XSkjIF9MVF9UQUdfQ09NUElMRVIKLSsKLSsKLSsjIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgY29tcGlsZXIgYm9pbGVy cGxhdGUgb3V0cHV0IG9yIHdhcm5pbmdzIHdpdGgKLSsjIHRoZSBzaW1wbGUgY29tcGlsZXIgdGVz dCBjb2RlLgotK200X2RlZnVuKFtfTFRfQ09NUElMRVJfQk9JTEVSUExBVEVdLAotK1ttNF9yZXF1 aXJlKFtfTFRfREVDTF9TRURdKWRubAotK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAot K2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0r ZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9k JyA+Y29uZnRlc3QuZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3Qu ZXJyYAotKyRSTSBjb25mdGVzdCoKLStdKSMgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rCi0r Ci0rIyBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r IyBDaGVjayBmb3IgbGlua2VyIGJvaWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3aXRoCi0r IyB0aGUgc2ltcGxlIGxpbmsgdGVzdCBjb2RlLgotK200X2RlZnVuKFtfTFRfTElOS0VSX0JPSUxF UlBMQVRFXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLSthY19vdXRmaWxlPWNv bmZ0ZXN0LiRhY19vYmpleHQKLStlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29u ZnRlc3QuJGFjX2V4dAotK2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcv XiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgotK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNh dCBjb25mdGVzdC5lcnJgCi0rJFJNIC1yIGNvbmZ0ZXN0KgotK10pIyBfTFRfTElOS0VSX0JPSUxF UlBMQVRFCi0rCi0rIyBfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLUwotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotK200X2RlZnVuX29uY2UoW19MVF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tT XSxbCi0rICBjYXNlICRob3N0X29zIGluCi0rICAgIHJoYXBzb2R5KiB8IGRhcndpbiopCi0rICAg IEFDX0NIRUNLX1RPT0woW0RTWU1VVElMXSwgW2RzeW11dGlsXSwgWzpdKQotKyAgICBBQ19DSEVD S19UT09MKFtOTUVESVRdLCBbbm1lZGl0XSwgWzpdKQotKyAgICBBQ19DSEVDS19UT09MKFtMSVBP XSwgW2xpcG9dLCBbOl0pCi0rICAgIEFDX0NIRUNLX1RPT0woW09UT09MXSwgW290b29sXSwgWzpd KQotKyAgICBBQ19DSEVDS19UT09MKFtPVE9PTDY0XSwgW290b29sNjRdLCBbOl0pCi0rICAgIF9M VF9ERUNMKFtdLCBbRFNZTVVUSUxdLCBbMV0sCi0rICAgICAgW1Rvb2wgdG8gbWFuaXB1bGF0ZSBh cmNoaXZlZCBEV0FSRiBkZWJ1ZyBzeW1ib2wgZmlsZXMgb24gTWFjIE9TIFhdKQotKyAgICBfTFRf REVDTChbXSwgW05NRURJVF0sIFsxXSwKLSsgICAgICBbVG9vbCB0byBjaGFuZ2UgZ2xvYmFsIHRv IGxvY2FsIHN5bWJvbHMgb24gTWFjIE9TIFhdKQotKyAgICBfTFRfREVDTChbXSwgW0xJUE9dLCBb MV0sCi0rICAgICAgW1Rvb2wgdG8gbWFuaXB1bGF0ZSBmYXQgb2JqZWN0cyBhbmQgYXJjaGl2ZXMg b24gTWFjIE9TIFhdKQotKyAgICBfTFRfREVDTChbXSwgW09UT09MXSwgWzFdLAotKyAgICAgIFts ZGQvcmVhZGVsZiBsaWtlIHRvb2wgZm9yIE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWF0pCi0r ICAgIF9MVF9ERUNMKFtdLCBbT1RPT0w2NF0sIFsxXSwKLSsgICAgICBbbGRkL3JlYWRlbGYgbGlr ZSB0b29sIGZvciA2NCBiaXQgTWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBPUyBYIDEwLjRdKQotKwot KyAgICBBQ19DQUNIRV9DSEVDSyhbZm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtlciBmbGFnXSxbbHRf Y3ZfYXBwbGVfY2Nfc2luZ2xlX21vZF0sCi0rICAgICAgW2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9t b2Q9bm8KLSsgICAgICBpZiB0ZXN0IC16ICIke0xUX01VTFRJX01PRFVMRX0iOyB0aGVuCi0rCSMg QnkgZGVmYXVsdCB3ZSB3aWxsIGFkZCB0aGUgLXNpbmdsZV9tb2R1bGUgZmxhZy4gWW91IGNhbiBv dmVycmlkZQotKwkjIGJ5IGVpdGhlciBzZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBM VF9NVUxUSV9NT0RVTEUKLSsJIyBub24tZW1wdHkgYXQgY29uZmlndXJlIHRpbWUsIG9yIGJ5IGFk ZGluZyAtbXVsdGlfbW9kdWxlIHRvIHRoZQotKwkjIGxpbmsgZmxhZ3MuCi0rCXJtIC1yZiBsaWJj b25mdGVzdC5keWxpYioKLSsJZWNobyAiaW50IGZvbyh2b2lkKXtyZXR1cm4gMTt9IiA+IGNvbmZ0 ZXN0LmMKLSsJZWNobyAiJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0ZXN0LmR5 bGliIFwKLSstZHluYW1pY2xpYiAtV2wsLXNpbmdsZV9tb2R1bGUgY29uZnRlc3QuYyIgPiZBU19N RVNTQUdFX0xPR19GRAotKwkkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3Qu ZHlsaWIgXAotKwkgIC1keW5hbWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIDI+ Y29uZnRlc3QuZXJyCi0rICAgICAgICBfbHRfcmVzdWx0PSQ/Ci0rCWlmIHRlc3QgLWYgbGliY29u ZnRlc3QuZHlsaWIgJiYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0 ID0gMDsgdGhlbgotKwkgIGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9eWVzCi0rCWVsc2UKLSsJ ICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsJZmkKLSsJcm0gLXJmIGxp YmNvbmZ0ZXN0LmR5bGliKgotKwlybSAtZiBjb25mdGVzdC4qCi0rICAgICAgZmldKQotKyAgICBB Q19DQUNIRV9DSEVDSyhbZm9yIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgbGlua2VyIGZsYWddLAot KyAgICAgIFtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3RdLAotKyAgICAgIFtsdF9jdl9s ZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm8KLSsgICAgICBzYXZlX0xERkxBR1M9JExERkxBR1MK LSsgICAgICBlY2hvICJfbWFpbiIgPiBjb25mdGVzdC5zeW0KLSsgICAgICBMREZMQUdTPSIkTERG TEFHUyAtV2wsLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCxjb25mdGVzdC5zeW0iCi0rICAgICAgQUNf TElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbXSxbXSldLAotKwlbbHRfY3ZfbGRfZXhwb3J0 ZWRfc3ltYm9sc19saXN0PXllc10sCi0rCVtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9 bm9dKQotKwlMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKyAgICBdKQotKyAgICBBQ19DQUNIRV9D SEVDSyhbZm9yIC1mb3JjZV9sb2FkIGxpbmtlciBmbGFnXSxbbHRfY3ZfbGRfZm9yY2VfbG9hZF0s Ci0rICAgICAgW2x0X2N2X2xkX2ZvcmNlX2xvYWQ9bm8KLSsgICAgICBjYXQgPiBjb25mdGVzdC5j IDw8IF9MVF9FT0YKLStpbnQgZm9yY2VkX2xvYWRlZCgpIHsgcmV0dXJuIDI7fQotK19MVF9FT0YK LSsgICAgICBlY2hvICIkTFRDQyAkTFRDRkxBR1MgLWMgLW8gY29uZnRlc3QubyBjb25mdGVzdC5j IiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgICAgJExUQ0MgJExUQ0ZMQUdTIC1jIC1vIGNvbmZ0 ZXN0Lm8gY29uZnRlc3QuYyAyPiZBU19NRVNTQUdFX0xPR19GRAotKyAgICAgIGVjaG8gIiRBUiBj cnUgbGliY29uZnRlc3QuYSBjb25mdGVzdC5vIiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgICAg JEFSIGNydSBsaWJjb25mdGVzdC5hIGNvbmZ0ZXN0Lm8gMj4mQVNfTUVTU0FHRV9MT0dfRkQKLSsg ICAgICBlY2hvICIkUkFOTElCIGxpYmNvbmZ0ZXN0LmEiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsg ICAgICAkUkFOTElCIGxpYmNvbmZ0ZXN0LmEgMj4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAgICBj YXQgPiBjb25mdGVzdC5jIDw8IF9MVF9FT0YKLStpbnQgbWFpbigpIHsgcmV0dXJuIDA7fQotK19M VF9FT0YKLSsgICAgICBlY2hvICIkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gY29uZnRlc3Qg Y29uZnRlc3QuYyAtV2wsLWZvcmNlX2xvYWQsLi9saWJjb25mdGVzdC5hIiA+JkFTX01FU1NBR0Vf TE9HX0ZECi0rICAgICAgJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0 ZXN0LmMgLVdsLC1mb3JjZV9sb2FkLC4vbGliY29uZnRlc3QuYSAyPmNvbmZ0ZXN0LmVycgotKyAg ICAgIF9sdF9yZXN1bHQ9JD8KLSsgICAgICBpZiB0ZXN0IC1mIGNvbmZ0ZXN0ICYmIHRlc3QgISAt cyBjb25mdGVzdC5lcnIgJiYgdGVzdCAkX2x0X3Jlc3VsdCA9IDAgJiYgJEdSRVAgZm9yY2VkX2xv YWQgY29uZnRlc3QgMj4mMSA+L2Rldi9udWxsOyB0aGVuCi0rCWx0X2N2X2xkX2ZvcmNlX2xvYWQ9 eWVzCi0rICAgICAgZWxzZQotKwljYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQK LSsgICAgICBmaQotKyAgICAgICAgcm0gLWYgY29uZnRlc3QuZXJyIGxpYmNvbmZ0ZXN0LmEgY29u ZnRlc3QgY29uZnRlc3QuYwotKyAgICAgICAgcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLSsgICAgXSkK LSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICByaGFwc29keSogfCBkYXJ3aW4xLltbMDEyXV0p Ci0rICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1 cHByZXNzJyA7OwotKyAgICBkYXJ3aW4xLiopCi0rICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmlu ZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7 OwotKyAgICBkYXJ3aW4qKSAjIGRhcndpbiA1Lnggb24KLSsgICAgICAjIGlmIHJ1bm5pbmcgb24g MTAuNSBvciBsYXRlciwgdGhlIGRlcGxveW1lbnQgdGFyZ2V0IGRlZmF1bHRzCi0rICAgICAgIyB0 byB0aGUgT1MgdmVyc2lvbiwgaWYgb24geDg2LCBhbmQgMTAuNCwgdGhlIGRlcGxveW1lbnQKLSsg ICAgICAjIHRhcmdldCBkZWZhdWx0cyB0byAxMC40LiBEb24ndCB5b3UgbG92ZSBpdD8KLSsgICAg ICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9LCRob3N0IGluCi0rCTEwLjAs Kjg2Ki1kYXJ3aW44KnwxMC4wLCotZGFyd2luW1s5MV1dKikKLSsJICBfbHRfZGFyX2FsbG93X3Vu ZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7Ci0rCTEwLltb MDEyXV0qKQotKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVzcGFj ZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKLSsJMTAuKikKLSsJICBfbHRfZGFy X2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7 Ci0rICAgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwotKyAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBw bGVfY2Nfc2luZ2xlX21vZCIgPSAieWVzIjsgdGhlbgotKyAgICAgIF9sdF9kYXJfc2luZ2xlX21v ZD0nJHNpbmdsZV9tb2R1bGUnCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgIiRsdF9jdl9sZF9leHBv cnRlZF9zeW1ib2xzX2xpc3QiID0gInllcyI7IHRoZW4KLSsgICAgICBfbHRfZGFyX2V4cG9ydF9z eW1zPScgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sc19saXN0LCRvdXRwdXRfb2JqZGlyLyR7bGlibmFt ZX0tc3ltYm9scy5leHBzeW0nCi0rICAgIGVsc2UKLSsgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1z PSd+JE5NRURJVCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7 bGlifScKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAiJERTWU1VVElMIiAhPSAiOiIgJiYgdGVzdCAi JGx0X2N2X2xkX2ZvcmNlX2xvYWQiID0gIm5vIjsgdGhlbgotKyAgICAgIF9sdF9kc3ltdXRpbD0n fiREU1lNVVRJTCAkbGliIHx8IDonCi0rICAgIGVsc2UKLSsgICAgICBfbHRfZHN5bXV0aWw9Ci0r ICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rXSkKLSsKLSsKLSsjIF9MVF9EQVJXSU5fTElOS0VS X0ZFQVRVUkVTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2tzIGZvciBs aW5rZXIgYW5kIGNvbXBpbGVyIGZlYXR1cmVzIG9uIGRhcndpbgotK200X2RlZnVuKFtfTFRfREFS V0lOX0xJTktFUl9GRUFUVVJFU10sCi0rWwotKyAgbTRfcmVxdWlyZShbX0xUX1JFUVVJUkVEX0RB UldJTl9DSEVDS1NdKQotKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5v Ci0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhh cmRjb2RlX2F1dG9tYXRpYywgJDEpPXllcwotKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBh dGhfdmFyLCAkMSk9dW5zdXBwb3J0ZWQKLSsgIGlmIHRlc3QgIiRsdF9jdl9sZF9mb3JjZV9sb2Fk IiA9ICJ5ZXMiOyB0aGVuCi0rICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0nYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZc IiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlICR7d2x9LWZvcmNlX2xvYWQs JGNvbnZcIjsgZG9uZTsgZnVuY19lY2hvX2FsbCBcIiRuZXdfY29udmVuaWVuY2VcImAnCi0rICBl bHNlCi0rICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJwotKyAg ZmkKLSsgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcwotKyAgX0xUX1RBR1ZB UihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCi0r ICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgaWZvcnQqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9 eWVzIDs7Ci0rICAgICAqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9JEdDQyA7OwotKyAgZXNhYwotKyAg aWYgdGVzdCAiJF9sdF9kYXJfY2FuX3NoYXJlZCIgPSAieWVzIjsgdGhlbgotKyAgICBvdXRwdXRf dmVyYm9zZV9saW5rX2NtZD1mdW5jX2VjaG9fYWxsCi0rICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxp YiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJw YXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRp bH0iCi0rICAgIF9MVF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0iXCRDQyBcJGFsbG93X3VuZGVm aW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVy X2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgotKyAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRp ci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5k ZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdz IC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2lu Z2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICBfTFRf VEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywgJDEpPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9y dF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwk Q0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRl cGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRp bH0iCi0rICAgIG00X2lmKFskMV0sIFtDWFhdLAotK1sgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVf Y2Nfc2luZ2xlX21vZCIgIT0gInllcyI7IHRoZW4KLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSJcJENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7 bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5l ZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxh Z3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZHN5bXV0 aWx9IgotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJzZWQgJ3Ms XixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5 bWJvbHMuZXhwc3ltflwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBc JHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZp bmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9m bGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kYXJf ZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICBmaQotK10sW10pCi0rICBlbHNlCi0r ICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICBmaQotK10pCi0rCi0rIyBfTFRfU1lT X01PRFVMRV9QQVRIX0FJWChbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBMaW5rcyBhIG1pbmltYWwgcHJvZ3JhbSBhbmQgY2hlY2tzIHRoZSBleGVj dXRhYmxlCi0rIyBmb3IgdGhlIHN5c3RlbSBkZWZhdWx0IGhhcmRjb2RlZCBsaWJyYXJ5IHBhdGgu IEluIG1vc3QgY2FzZXMsCi0rIyB0aGlzIGlzIC91c3IvbGliOi9saWIsIGJ1dCB3aGVuIHRoZSBN UEkgY29tcGlsZXJzIGFyZSB1c2VkCi0rIyB0aGUgbG9jYXRpb24gb2YgdGhlIGNvbW11bmljYXRp b24gYW5kIE1QSSBsaWJzIGFyZSBpbmNsdWRlZCB0b28uCi0rIyBJZiB3ZSBkb24ndCBmaW5kIGFu eXRoaW5nLCB1c2UgdGhlIGRlZmF1bHQgbGlicmFyeSBwYXRoIGFjY29yZGluZwotKyMgdG8gdGhl IGFpeCBsZCBtYW51YWwuCi0rIyBTdG9yZSB0aGUgcmVzdWx0cyBmcm9tIHRoZSBkaWZmZXJlbnQg Y29tcGlsZXJzIGZvciBlYWNoIFRBR05BTUUuCi0rIyBBbGxvdyB0byBvdmVycmlkZSB0aGVtIGZv ciBhbGwgdGFncyB0aHJvdWdoIGx0X2N2X2FpeF9saWJwYXRoLgotK200X2RlZnVuKFtfTFRfU1lT X01PRFVMRV9QQVRIX0FJWF0sCi0rW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCi0raWYg dGVzdCAiJHtsdF9jdl9haXhfbGlicGF0aCtzZXR9IiA9IHNldDsgdGhlbgotKyAgYWl4X2xpYnBh dGg9JGx0X2N2X2FpeF9saWJwYXRoCi0rZWxzZQotKyAgQUNfQ0FDSEVfVkFMKFtfTFRfVEFHVkFS KFtsdF9jdl9haXhfbGlicGF0aF9dLCBbJDFdKV0sCi0rICBbQUNfTElOS19JRkVMU0UoW0FDX0xB TkdfUFJPR1JBTV0sWwotKyAgbHRfYWl4X2xpYnBhdGhfc2VkPSdbCi0rICAgICAgL0ltcG9ydCBG aWxlIFN0cmluZ3MvLC9eJC8gewotKwkgIC9eMC8gewotKwkgICAgICBzL14wICAqXChbXiBdKlwp ICokL1wxLwotKwkgICAgICBwCi0rCSAgfQotKyAgICAgIH1dJwotKyAgX0xUX1RBR1ZBUihbbHRf Y3ZfYWl4X2xpYnBhdGhfXSwgWyQxXSk9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rl di9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rICAjIENoZWNrIGZv ciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCi0rICBpZiB0ZXN0 IC16ICIkX0xUX1RBR1ZBUihbbHRfY3ZfYWl4X2xpYnBhdGhfXSwgWyQxXSkiOyB0aGVuCi0rICAg IF9MVF9UQUdWQVIoW2x0X2N2X2FpeF9saWJwYXRoX10sIFskMV0pPWBkdW1wIC1IWDY0IGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9z ZWQiYAotKyAgZmldLFtdKQotKyAgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIoW2x0X2N2X2FpeF9s aWJwYXRoX10sIFskMV0pIjsgdGhlbgotKyAgICBfTFRfVEFHVkFSKFtsdF9jdl9haXhfbGlicGF0 aF9dLCBbJDFdKT0iL3Vzci9saWI6L2xpYiIKLSsgIGZpCi0rICBdKQotKyAgYWl4X2xpYnBhdGg9 JF9MVF9UQUdWQVIoW2x0X2N2X2FpeF9saWJwYXRoX10sIFskMV0pCi0rZmkKLStdKSMgX0xUX1NZ U19NT0RVTEVfUEFUSF9BSVgKLSsKLSsKLSsjIF9MVF9TSEVMTF9JTklUKEFSRykKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW19MVF9TSEVMTF9JTklUXSwKLStbbTRfZGl2ZXJ0 X3RleHQoW000U0gtSU5JVF0sIFskMQotK10pXSkjIF9MVF9TSEVMTF9JTklUCi0rCi0rCi0rCi0r IyBfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsj IEZpbmQgaG93IHdlIGNhbiBmYWtlIGFuIGVjaG8gY29tbWFuZCB0aGF0IGRvZXMgbm90IGludGVy cHJldCBiYWNrc2xhc2guCi0rIyBJbiBwYXJ0aWN1bGFyLCB3aXRoIEF1dG9jb25mIDIuNjAgb3Ig bGF0ZXIgd2UgYWRkIHNvbWUgY29kZSB0byB0aGUgc3RhcnQKLSsjIG9mIHRoZSBnZW5lcmF0ZWQg Y29uZmlndXJlIHNjcmlwdCB3aGljaCB3aWxsIGZpbmQgYSBzaGVsbCB3aXRoIGEgYnVpbHRpbgot KyMgcHJpbnRmICh3aGljaCB3ZSBjYW4gdXNlIGFzIGFuIGVjaG8gY29tbWFuZCkuCi0rbTRfZGVm dW4oW19MVF9QUk9HX0VDSE9fQkFDS1NMQVNIXSwKLStbRUNITz0nXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKLStFQ0hPPSRFQ0hPJEVDSE8kRUNITyRFQ0hP JEVDSE8KLStFQ0hPPSRFQ0hPJEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITwotKwotK0FDX01TR19D SEVDS0lORyhbaG93IHRvIHByaW50IHN0cmluZ3NdKQotKyMgVGVzdCBwcmludCBmaXJzdCwgYmVj YXVzZSBpdCB3aWxsIGJlIGEgYnVpbHRpbiBpZiBwcmVzZW50LgotK2lmIHRlc3QgIlhgKCBwcmlu dCAtciAtLSAtbiApIDI+L2Rldi9udWxsYCIgPSBYLW4gJiYgXAotKyAgIHRlc3QgIlhgcHJpbnQg LXIgLS0gJEVDSE8gMj4vZGV2L251bGxgIiA9ICJYJEVDSE8iOyB0aGVuCi0rICBFQ0hPPSdwcmlu dCAtciAtLScKLStlbGlmIHRlc3QgIlhgcHJpbnRmICVzICRFQ0hPIDI+L2Rldi9udWxsYCIgPSAi WCRFQ0hPIjsgdGhlbgotKyAgRUNITz0ncHJpbnRmICVzXG4nCi0rZWxzZQotKyAgIyBVc2UgdGhp cyBmdW5jdGlvbiBhcyBhIGZhbGxiYWNrIHRoYXQgYWx3YXlzIHdvcmtzLgotKyAgZnVuY19mYWxs YmFja19lY2hvICgpCi0rICB7Ci0rICAgIGV2YWwgJ2NhdCA8PF9MVEVDSE9fRU9GCi0rJFtdMQot K19MVEVDSE9fRU9GJwotKyAgfQotKyAgRUNITz0nZnVuY19mYWxsYmFja19lY2hvJwotK2ZpCi0r Ci0rIyBmdW5jX2VjaG9fYWxsIGFyZy4uLgotKyMgSW52b2tlICRFQ0hPIHdpdGggYWxsIGFyZ3Ms IHNwYWNlLXNlcGFyYXRlZC4KLStmdW5jX2VjaG9fYWxsICgpCi0rewotKyAgICAkRUNITyAiJCoi IAotK30KLSsKLStjYXNlICIkRUNITyIgaW4KLSsgIHByaW50ZiopIEFDX01TR19SRVNVTFQoW3By aW50Zl0pIDs7Ci0rICBwcmludCopIEFDX01TR19SRVNVTFQoW3ByaW50IC1yXSkgOzsKLSsgICop IEFDX01TR19SRVNVTFQoW2NhdF0pIDs7Ci0rZXNhYwotKwotK200X2lmZGVmKFtfQVNfREVURUNU X1NVR0dFU1RFRF0sCi0rW19BU19ERVRFQ1RfU1VHR0VTVEVEKFsKLSsgIHRlc3QgLW4gIiR7WlNI X1ZFUlNJT04rc2V0fSR7QkFTSF9WRVJTSU9OK3NldH0iIHx8ICgKLSsgICAgRUNITz0nXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKLSsgICAgRUNITz0kRUNI TyRFQ0hPJEVDSE8kRUNITyRFQ0hPCi0rICAgIEVDSE89JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNI TyRFQ0hPCi0rICAgIFBBVEg9L2VtcHR5IEZQQVRIPS9lbXB0eTsgZXhwb3J0IFBBVEggRlBBVEgK LSsgICAgdGVzdCAiWGBwcmludGYgJXMgJEVDSE9gIiA9ICJYJEVDSE8iIFwKLSsgICAgICB8fCB0 ZXN0ICJYYHByaW50IC1yIC0tICRFQ0hPYCIgPSAiWCRFQ0hPIiApXSldKQotKwotK19MVF9ERUNM KFtdLCBbU0hFTExdLCBbMV0sIFtTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3Jp cHRzXSkKLStfTFRfREVDTChbXSwgW0VDSE9dLCBbMV0sIFtBbiBlY2hvIHByb2dyYW0gdGhhdCBw cm90ZWN0cyBiYWNrc2xhc2hlc10pCi0rXSkjIF9MVF9QUk9HX0VDSE9fQkFDS1NMQVNICi0rCi0r Ci0rIyBfTFRfV0lUSF9TWVNST09UCi0rIyAtLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW19M VF9XSVRIX1NZU1JPT1RdLAotK1tBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBzeXNyb290XSkKLStBQ19B UkdfV0lUSChbc3lzcm9vdF0sCi0rWyAgLS13aXRoLXN5c3Jvb3RbPURJUl0gU2VhcmNoIGZvciBk ZXBlbmRlbnQgbGlicmFyaWVzIHdpdGhpbiBESVIKLSsgICAgICAgICAgICAgICAgICAgICAgICAo b3IgdGhlIGNvbXBpbGVyJ3Mgc3lzcm9vdCBpZiBub3Qgc3BlY2lmaWVkKS5dLAotK1tdLCBbd2l0 aF9zeXNyb290PW5vXSkKLSsKLStkbmwgbHRfc3lzcm9vdCB3aWxsIGFsd2F5cyBiZSBwYXNzZWQg dW5xdW90ZWQuICBXZSBxdW90ZSBpdCBoZXJlCi0rZG5sIGluIGNhc2UgdGhlIHVzZXIgcGFzc2Vk IGEgZGlyZWN0b3J5IG5hbWUuCi0rbHRfc3lzcm9vdD0KLStjYXNlICR7d2l0aF9zeXNyb290fSBp biAjKAotKyB5ZXMpCi0rICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgIGx0X3N5 c3Jvb3Q9YCRDQyAtLXByaW50LXN5c3Jvb3QgMj4vZGV2L251bGxgCi0rICAgZmkKLSsgICA7OyAj KAotKyAvKikKLSsgICBsdF9zeXNyb290PWBlY2hvICIkd2l0aF9zeXNyb290IiB8IHNlZCAtZSAi JHNlZF9xdW90ZV9zdWJzdCJgCi0rICAgOzsgIygKLSsgbm98JycpCi0rICAgOzsgIygKLSsgKikK LSsgICBBQ19NU0dfUkVTVUxUKFske3dpdGhfc3lzcm9vdH1dKQotKyAgIEFDX01TR19FUlJPUihb VGhlIHN5c3Jvb3QgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pCi0rICAgOzsKLStlc2FjCi0r Ci0rIEFDX01TR19SRVNVTFQoWyR7bHRfc3lzcm9vdDotbm99XSkKLStfTFRfREVDTChbXSwgW2x0 X3N5c3Jvb3RdLCBbMF0sIFtUaGUgcm9vdCB3aGVyZSB0byBzZWFyY2ggZm9yIF1kbmwKLStbZGVw ZW5kZW50IGxpYnJhcmllcywgYW5kIGluIHdoaWNoIG91ciBsaWJyYXJpZXMgc2hvdWxkIGJlIGlu c3RhbGxlZC5dKV0pCi0rCi0rIyBfTFRfRU5BQkxFX0xPQ0sKLSsjIC0tLS0tLS0tLS0tLS0tLQot K200X2RlZnVuKFtfTFRfRU5BQkxFX0xPQ0tdLAotK1tBQ19BUkdfRU5BQkxFKFtsaWJ0b29sLWxv Y2tdLAotKyAgW0FTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtbGlidG9vbC1sb2NrXSwKLSsgICAg W2F2b2lkIGxvY2tpbmcgKG1pZ2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcyldKV0pCi0rdGVzdCAi eCRlbmFibGVfbGlidG9vbF9sb2NrIiAhPSB4bm8gJiYgZW5hYmxlX2xpYnRvb2xfbG9jaz15ZXMK LSsKLSsjIFNvbWUgZmxhZ3MgbmVlZCB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSBjb21waWxlciBv ciBsaW5rZXIgZm9yIGdvb2QKLSsjIGxpYnRvb2wgc3VwcG9ydC4KLStjYXNlICRob3N0IGluCi0r aWE2NC0qLWhwdXgqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotKyAg ZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIEFDX1RSWV9FVkFMKGFjX2Nv bXBpbGUpOyB0aGVuCi0rICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4 dGAgaW4KLSsgICAgICAqRUxGLTMyKikKLSsJSFBVWF9JQTY0X01PREU9IjMyIgotKwk7OwotKyAg ICAgICpFTEYtNjQqKQotKwlIUFVYX0lBNjRfTU9ERT0iNjQiCi0rCTs7Ci0rICAgIGVzYWMKLSsg IGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICA7OwotKyotKi1pcml4NiopCi0rICAjIEZpbmQg b3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdbI11saW5lICckTElORU5PJyAi Y29uZmlndXJlIicgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiBBQ19UUllfRVZBTChhY19jb21w aWxlKTsgdGhlbgotKyAgICBpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVu Ci0rICAgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgotKwkq MzItYml0KikKLSsJICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJzbWlwIgotKwkgIDs7Ci0rCSpOMzIq KQotKwkgIExEPSIke0xELWxkfSAtbWVsZjMyYm1pcG4zMiIKLSsJICA7OwotKwkqNjQtYml0KikK LSsJICBMRD0iJHtMRC1sZH0gLW1lbGY2NGJtaXAiCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBl bHNlCi0rICAgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgot KwkqMzItYml0KikKLSsJICBMRD0iJHtMRC1sZH0gLTMyIgotKwkgIDs7Ci0rCSpOMzIqKQotKwkg IExEPSIke0xELWxkfSAtbjMyIgotKwkgIDs7Ci0rCSo2NC1iaXQqKQotKwkgIExEPSIke0xELWxk fSAtNjQiCi0rCSAgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICBmaQotKyAgcm0gLXJmIGNv bmZ0ZXN0KgotKyAgOzsKLSsKLSt4ODZfNjQtKmtmcmVlYnNkKi1nbnV8eDg2XzY0LSpsaW51eCp8 cHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCp8IFwKLStzMzkwKi0qbGludXgqfHMzOTAqLSp0 cGYqfHNwYXJjKi0qbGludXgqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5n LgotKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIEFDX1RSWV9FVkFM KGFjX2NvbXBpbGUpOyB0aGVuCi0rICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2Ag aW4KLSsgICAgICAqMzItYml0KikKLSsJY2FzZSAkaG9zdCBpbgotKwkgIHg4Nl82NC0qa2ZyZWVi c2QqLWdudSkKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfaTM4Nl9mYnNkIgotKwkgICAgOzsK LSsJICB4ODZfNjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfaTM4NiIKLSsJ ICAgIDs7Ci0rCSAgcHBjNjQtKmxpbnV4Knxwb3dlcnBjNjQtKmxpbnV4KikKLSsJICAgIExEPSIk e0xELWxkfSAtbSBlbGYzMnBwY2xpbnV4IgotKwkgICAgOzsKLSsJICBzMzkweC0qbGludXgqKQot KwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9zMzkwIgotKwkgICAgOzsKLSsJICBzcGFyYzY0LSps aW51eCopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJfc3BhcmMiCi0rCSAgICA7OwotKwll c2FjCi0rCTs7Ci0rICAgICAgKjY0LWJpdCopCi0rCWNhc2UgJGhvc3QgaW4KLSsJICB4ODZfNjQt KmtmcmVlYnNkKi1nbnUpCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NF9mYnNkIgot KwkgICAgOzsKLSsJICB4ODZfNjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZf eDg2XzY0IgotKwkgICAgOzsKLSsJICBwcGMqLSpsaW51eCp8cG93ZXJwYyotKmxpbnV4KikKLSsJ ICAgIExEPSIke0xELWxkfSAtbSBlbGY2NHBwYyIKLSsJICAgIDs7Ci0rCSAgczM5MCotKmxpbnV4 KnxzMzkwKi0qdHBmKikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zMzkwIgotKwkgICAg OzsKLSsJICBzcGFyYyotKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFy YyIKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHJtIC1yZiBj b25mdGVzdCoKLSsgIDs7Ci0rCi0rKi0qLXNjbzMuMnY1KikKLSsgICMgT24gU0NPIE9wZW5TZXJ2 ZXIgNSwgd2UgbmVlZCAtYmVsZiB0byBnZXQgZnVsbC1mZWF0dXJlZCBiaW5hcmllcy4KLSsgIFNB VkVfQ0ZMQUdTPSIkQ0ZMQUdTIgotKyAgQ0ZMQUdTPSIkQ0ZMQUdTIC1iZWxmIgotKyAgQUNfQ0FD SEVfQ0hFQ0soW3doZXRoZXIgdGhlIEMgY29tcGlsZXIgbmVlZHMgLWJlbGZdLCBsdF9jdl9jY19u ZWVkc19iZWxmLAotKyAgICBbQUNfTEFOR19QVVNIKEMpCi0rICAgICBBQ19MSU5LX0lGRUxTRShb QUNfTEFOR19QUk9HUkFNKFtbXV0sW1tdXSldLFtsdF9jdl9jY19uZWVkc19iZWxmPXllc10sW2x0 X2N2X2NjX25lZWRzX2JlbGY9bm9dKQotKyAgICAgQUNfTEFOR19QT1BdKQotKyAgaWYgdGVzdCB4 IiRsdF9jdl9jY19uZWVkc19iZWxmIiAhPSB4InllcyI7IHRoZW4KLSsgICAgIyB0aGlzIGlzIHBy b2JhYmx5IGdjYyAyLjguMCwgZWdjcyAxLjAgb3IgbmV3ZXI7IG5vIG5lZWQgZm9yIC1iZWxmCi0r ICAgIENGTEFHUz0iJFNBVkVfQ0ZMQUdTIgotKyAgZmkKLSsgIDs7Ci0rc3BhcmMqLSpzb2xhcmlz KikKLSsgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KLSsgIGVjaG8gJ2ludCBp OycgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhl bgotKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCi0rICAgICo2NC1iaXQq KQotKyAgICAgIGNhc2UgJGx0X2N2X3Byb2dfZ251X2xkIGluCi0rICAgICAgeWVzKikgTEQ9IiR7 TEQtbGR9IC1tIGVsZjY0X3NwYXJjIiA7OwotKyAgICAgICopCi0rCWlmICR7TEQtbGR9IC02NCAt ciAtbyBjb25mdGVzdDIubyBjb25mdGVzdC5vID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgIExE PSIke0xELWxkfSAtNjQiCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rICAg IGVzYWMKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICA7OwotK2VzYWMKLSsKLStuZWVk X2xvY2tzPSIkZW5hYmxlX2xpYnRvb2xfbG9jayIKLStdKSMgX0xUX0VOQUJMRV9MT0NLCi0rCi0r Ci0rIyBfTFRfUFJPR19BUgotKyMgLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX1BST0dfQVJd LAotK1tBQ19DSEVDS19UT09MUyhBUiwgW2FyXSwgZmFsc2UpCi0rOiAke0FSPWFyfQotKzogJHtB Ul9GTEFHUz1jcnV9Ci0rX0xUX0RFQ0woW10sIFtBUl0sIFsxXSwgW1RoZSBhcmNoaXZlcl0pCi0r X0xUX0RFQ0woW10sIFtBUl9GTEFHU10sIFsxXSwgW0ZsYWdzIHRvIGNyZWF0ZSBhbiBhcmNoaXZl XSkKLSsKLStBQ19DQUNIRV9DSEVDSyhbZm9yIGFyY2hpdmVyIEBGSUxFIHN1cHBvcnRdLCBbbHRf Y3ZfYXJfYXRfZmlsZV0sCi0rICBbbHRfY3ZfYXJfYXRfZmlsZT1ubwotKyAgIEFDX0NPTVBJTEVf SUZFTFNFKFtBQ19MQU5HX1BST0dSQU1dLAotKyAgICAgW2VjaG8gY29uZnRlc3QuJGFjX29iamV4 dCA+IGNvbmZ0ZXN0LmxzdAotKyAgICAgIGx0X2FyX3RyeT0nJEFSICRBUl9GTEFHUyBsaWJjb25m dGVzdC5hIEBjb25mdGVzdC5sc3QgPiZBU19NRVNTQUdFX0xPR19GRCcKLSsgICAgICBBQ19UUllf RVZBTChbbHRfYXJfdHJ5XSkKLSsgICAgICBpZiB0ZXN0ICIkYWNfc3RhdHVzIiAtZXEgMDsgdGhl bgotKwkjIEVuc3VyZSB0aGUgYXJjaGl2ZXIgZmFpbHMgdXBvbiBib2d1cyBmaWxlIG5hbWVzLgot KwlybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGxpYmNvbmZ0ZXN0LmEKLSsJQUNfVFJZX0VWQUwo W2x0X2FyX3RyeV0pCi0rCWlmIHRlc3QgIiRhY19zdGF0dXMiIC1uZSAwOyB0aGVuCi0rICAgICAg ICAgIGx0X2N2X2FyX2F0X2ZpbGU9QAotKyAgICAgICAgZmkKLSsgICAgICBmaQotKyAgICAgIHJt IC1mIGNvbmZ0ZXN0LiogbGliY29uZnRlc3QuYQotKyAgICAgXSkKLSsgIF0pCi0rCi0raWYgdGVz dCAieCRsdF9jdl9hcl9hdF9maWxlIiA9IHhubzsgdGhlbgotKyAgYXJjaGl2ZXJfbGlzdF9zcGVj PQotK2Vsc2UKLSsgIGFyY2hpdmVyX2xpc3Rfc3BlYz0kbHRfY3ZfYXJfYXRfZmlsZQotK2ZpCi0r X0xUX0RFQ0woW10sIFthcmNoaXZlcl9saXN0X3NwZWNdLCBbMV0sCi0rICBbSG93IHRvIGZlZWQg YSBmaWxlIGxpc3RpbmcgdG8gdGhlIGFyY2hpdmVyXSkKLStdKSMgX0xUX1BST0dfQVIKLSsKLSsK LSsjIF9MVF9DTURfT0xEX0FSQ0hJVkUKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1 bihbX0xUX0NNRF9PTERfQVJDSElWRV0sCi0rW19MVF9QUk9HX0FSCi0rCi0rQUNfQ0hFQ0tfVE9P TChTVFJJUCwgc3RyaXAsIDopCi0rdGVzdCAteiAiJFNUUklQIiAmJiBTVFJJUD06Ci0rX0xUX0RF Q0woW10sIFtTVFJJUF0sIFsxXSwgW0Egc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtXSkKLSsKLStB Q19DSEVDS19UT09MKFJBTkxJQiwgcmFubGliLCA6KQotK3Rlc3QgLXogIiRSQU5MSUIiICYmIFJB TkxJQj06Ci0rX0xUX0RFQ0woW10sIFtSQU5MSUJdLCBbMV0sCi0rICAgIFtDb21tYW5kcyB1c2Vk IHRvIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmVdKQotKwotKyMgRGV0ZXJtaW5lIGNvbW1h bmRzIHRvIGNyZWF0ZSBvbGQtc3R5bGUgc3RhdGljIGFyY2hpdmVzLgotK29sZF9hcmNoaXZlX2Nt ZHM9JyRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJwotK29sZF9wb3N0aW5zdGFsbF9jbWRz PSdjaG1vZCA2NDQgJG9sZGxpYicKLStvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPQotKwotK2lmIHRl c3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICBjYXNlICRob3N0X29zIGluCi0rICBvcGVuYnNkKikK LSsgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJ QiAtdCBcJG9sZGxpYiIKLSsgICAgOzsKLSsgICopCi0rICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRz PSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCi0rICAgIDs7Ci0rICBl c2FjCi0rICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJBTkxJQiBcJG9s ZGxpYiIKLStmaQotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSsgIGRhcndpbiopCi0rICAgIGxvY2tf b2xkX2FyY2hpdmVfZXh0cmFjdGlvbj15ZXMgOzsKLSsgICopCi0rICAgIGxvY2tfb2xkX2FyY2hp dmVfZXh0cmFjdGlvbj1ubyA7OwotK2VzYWMKLStfTFRfREVDTChbXSwgW29sZF9wb3N0aW5zdGFs bF9jbWRzXSwgWzJdKQotK19MVF9ERUNMKFtdLCBbb2xkX3Bvc3R1bmluc3RhbGxfY21kc10sIFsy XSkKLStfTFRfVEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2NtZHNdLCBbMl0sCi0rICAgIFtDb21t YW5kcyB1c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlXSkKLStfTFRfREVDTChbXSwg W2xvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbl0sIFswXSwKLSsgICAgW1doZXRoZXIgdG8gdXNl IGEgbG9jayBmb3Igb2xkIGFyY2hpdmUgZXh0cmFjdGlvbl0pCi0rXSkjIF9MVF9DTURfT0xEX0FS Q0hJVkUKLSsKLSsKLSsjIF9MVF9DT01QSUxFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFCTEUtTkFN RSwgRkxBR1MsCi0rIwkJW09VVFBVVC1GSUxFXSwgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1G QUlMVVJFXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGNvbXBpbGVy IG9wdGlvbiB3b3JrcwotK0FDX0RFRlVOKFtfTFRfQ09NUElMRVJfT1BUSU9OXSwKLStbbTRfcmVx dWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RFQ0xf U0VEXSlkbmwKLStBQ19DQUNIRV9DSEVDSyhbJDFdLCBbJDJdLAotKyAgWyQyPW5vCi0rICAgbTRf aWYoWyQ0XSwgLCBbYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0XSwgW2FjX291dGZpbGU9 JDRdKQotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3Qu JGFjX2V4dAotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9IiQzIgotKyAgICMgSW5zZXJ0IHRoZSBvcHRp b24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCi0rICAgIyAo MikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVu ZC4KLSsgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBi YWNrc2xhc2hlcyBhbmQgYmVnaW5zCi0rICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5 cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KLSsgICAjIFRoZSBvcHRp b24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgot KyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4q RkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW1te IF1dKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAk bHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAk bHRfY29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQotKyAgIChldmFsICIkbHRfY29tcGls ZSIgMj5jb25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVy ciA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAm JiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBv bmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAj IFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0 cHV0LgotKyAgICAgJEVDSE8gIiRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFNFRCAnL14k L2QnID5jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5l cnIgPmNvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZm IGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAkMj15 ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICAkUk0gY29uZnRlc3QqCi0rXSkKLSsKLStpZiB0ZXN0 IHgiWyRdJDIiID0geHllczsgdGhlbgotKyAgICBtNF9pZihbJDVdLCAsIDosIFskNV0pCi0rZWxz ZQotKyAgICBtNF9pZihbJDZdLCAsIDosIFskNl0pCi0rZmkKLStdKSMgX0xUX0NPTVBJTEVSX09Q VElPTgotKwotKyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BU SU9OXSwgW19MVF9DT01QSUxFUl9PUFRJT05dKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMg Y29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9O XSwgW10pCi0rCi0rCi0rIyBfTFRfTElOS0VSX09QVElPTihNRVNTQUdFLCBWQVJJQUJMRS1OQU1F LCBGTEFHUywKLSsjICAgICAgICAgICAgICAgICAgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1G QUlMVVJFXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGxpbmtlciBvcHRpb24gd29ya3MK LStBQ19ERUZVTihbX0xUX0xJTktFUl9PUFRJT05dLAotK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVU SUxTX0RFRkFVTFRTXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAotK0FDX0NB Q0hFX0NIRUNLKFskMV0sIFskMl0sCi0rICBbJDI9bm8KLSsgICBzYXZlX0xERkxBR1M9IiRMREZM QUdTIgotKyAgIExERkxBR1M9IiRMREZMQUdTICQzIgotKyAgIGVjaG8gIiRsdF9zaW1wbGVfbGlu a190ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGlmIChldmFsICRhY19saW5rIDI+ Y29uZnRlc3QuZXJyKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgotKyAgICAg IyBUaGUgbGlua2VyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCBy ZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAg IGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0rICAgICAgICMgQXBwZW5kIGFueSBlcnJv cnMgdG8gdGhlIGNvbmZpZy5sb2cuCi0rICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mQVNfTUVT U0FHRV9MT0dfRkQKLSsgICAgICAgJEVDSE8gIiRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRT RUQgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcg Y29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAg Y29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICAkMj15ZXMKLSsgICAgICAg ZmkKLSsgICAgIGVsc2UKLSsgICAgICAgJDI9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgJFJN IC1yIGNvbmZ0ZXN0KgotKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rXSkKLSsKLStpZiB0 ZXN0IHgiWyRdJDIiID0geHllczsgdGhlbgotKyAgICBtNF9pZihbJDRdLCAsIDosIFskNF0pCi0r ZWxzZQotKyAgICBtNF9pZihbJDVdLCAsIDosIFskNV0pCi0rZmkKLStdKSMgX0xUX0xJTktFUl9P UFRJT04KLSsKLSsjIE9sZCBuYW1lOgotK0FVX0FMSUFTKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJ T05dLCBbX0xUX0xJTktFUl9PUFRJT05dKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29t cGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sIFtd KQotKwotKwotKyMgTFRfQ01EX01BWF9MRU4KLSsjLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4o W0xUX0NNRF9NQVhfTEVOXSwKLStbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAot KyMgZmluZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwotK0FD X01TR19DSEVDS0lORyhbdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVu dHNdKQotK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX21heF9jbWRfbGVuXSwgW2RubAotKyAgaT0w Ci0rICB0ZXN0c3RyaW5nPSJBQkNEIgotKwotKyAgY2FzZSAkYnVpbGRfb3MgaW4KLSsgIG1zZG9z ZGpncHAqKQotKyAgICAjIE9uIERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJh ZGx5IGR1ZSB0byBwcm9ibGVtcyBpbiBsaWJjCi0rICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQg ZXhjZWVkaW5nIDIwMDAgYnl0ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4KLSsgICAgIyBkdXJp bmcgZ2xvYiBleHBhbnNpb24pLiAgRXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0IG9m IHRoaXMKLSsgICAgIyBjaGVjayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCi0r ICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQK LSsgICAgOzsKLSsKLSsgIGdudSopCi0rICAgICMgVW5kZXIgR05VIEh1cmQsIHRoaXMgdGVzdCBp cyBub3QgcmVxdWlyZWQgYmVjYXVzZSB0aGVyZSBpcwotKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBs ZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KLSsgICAgIyBMaWJ0b29sIHdpbGwgaW50 ZXJwcmV0IC0xIGFzIG5vIGxpbWl0IHdoYXRzb2V2ZXIKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPS0xOwotKyAgICA7OwotKwotKyAgY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKLSsgICAg IyBPbiBXaW45eC9NRSwgdGhpcyB0ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFr ZXMKLSsgICAgIyBhYm91dCA1IG1pbnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25l bnRpYWxseS4KLSsgICAgIyBXb3JzZSwgc2luY2UgOXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2ZWx5 IG11bHRpdGFza2luZywKLSsgICAgIyB5b3UgZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRl ciwgZXZlbiB0aG91Z2ggd2l0aCBwYXRpZW5jZQotKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkg c3VjY2VlZHMgKHdpdGggYSBtYXggbGluZSBsZW5ndGggb2YgMjU2aykuCi0rICAgICMgSW5zdGVh ZCwgbGV0J3MganVzdCBwdW50OiB1c2UgdGhlIG1pbmltdW0gbGluZWxlbmd0aCByZXBvcnRlZCBi eQotKyAgICAjIGFsbCBvZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtczogODE5MiAob24gTlQvMksv WFApLgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKLSsgICAgOzsKLSsKLSsgIG1p bnQqKQotKyAgICAjIE9uIE1pTlQgdGhpcyBjYW4gdGFrZSBhIGxvbmcgdGltZSBhbmQgcnVuIG91 dCBvZiBtZW1vcnkuCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOwotKyAgICA7Owot KwotKyAgYW1pZ2FvcyopCi0rICAgICMgT24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRlc3Qg dGFrZXMgaG91cnMsIGxpdGVyYWxseS4KLSsgICAgIyBTbyB3ZSBqdXN0IHB1bnQgYW5kIHVzZSBh IG1pbmltdW0gbGluZSBsZW5ndGggb2YgODE5Mi4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PTgxOTI7Ci0rICAgIDs7Ci0rCi0rICBuZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8IGRh cndpbiogfCBkcmFnb25mbHkqKQotKyAgICAjIFRoaXMgaGFzIGJlZW4gYXJvdW5kIHNpbmNlIDM4 NkJTRCwgYXQgbGVhc3QuICBMaWtlbHkgZnVydGhlci4KLSsgICAgaWYgdGVzdCAteCAvc2Jpbi9z eXNjdGw7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC9zYmluL3N5c2N0bCAt biBrZXJuLmFyZ21heGAKLSsgICAgZWxpZiB0ZXN0IC14IC91c3Ivc2Jpbi9zeXNjdGw7IHRoZW4K LSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC91c3Ivc2Jpbi9zeXNjdGwgLW4ga2Vybi5h cmdtYXhgCi0rICAgIGVsc2UKLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49NjU1MzYJIyB1 c2FibGUgZGVmYXVsdCBmb3IgYWxsIEJTRHMKLSsgICAgZmkKLSsgICAgIyBBbmQgYWRkIGEgc2Fm ZXR5IHpvbmUKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4 X2NtZF9sZW4gXC8gNGAKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9z eXNfbWF4X2NtZF9sZW4gXCogM2AKLSsgICAgOzsKLSsKLSsgIGludGVyaXgqKQotKyAgICAjIFdl IGtub3cgdGhlIHZhbHVlIDI2MjE0NCBhbmQgaGFyZGNvZGUgaXQgd2l0aCBhIHNhZmV0eSB6b25l IChsaWtlIEJTRCkKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE5NjYwOAotKyAgICA7Owot KwotKyAgb3NmKikKLSsgICAgIyBEci4gSGFucyBFa2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMgc2Vl aW5nIGEga2VybmVsIHBhbmljIHJ1bm5pbmcgY29uZmlndXJlCi0rICAgICMgZHVlIHRvIHRoaXMg dGVzdCB3aGVuIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXQgaXMgMSBvbiBUcnU2NC4gSXQgaXMgbm90 Ci0rICAgICMgbmljZSB0byBjYXVzZSBrZXJuZWwgcGFuaWNzIHNvIGxldHMgYXZvaWQgdGhlIGxv b3AgYmVsb3cuCi0rICAgICMgRmlyc3Qgc2V0IGEgcmVhc29uYWJsZSBkZWZhdWx0LgotKyAgICBs dF9jdl9zeXNfbWF4X2NtZF9sZW49MTYzODQKLSsgICAgIwotKyAgICBpZiB0ZXN0IC14IC9zYmlu L3N5c2NvbmZpZzsgdGhlbgotKyAgICAgIGNhc2UgYC9zYmluL3N5c2NvbmZpZyAtcSBwcm9jIGV4 ZWNfZGlzYWJsZV9hcmdfbGltaXRgIGluCi0rICAgICAgICAqMSopIGx0X2N2X3N5c19tYXhfY21k X2xlbj0tMSA7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgICAgOzsKLSsgIHNjbzMuMnY1KikK LSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTEwMjQwMAotKyAgICA7OwotKyAgc3lzdjUqIHwg c2NvNXY2KiB8IHN5c3Y0LjJ1dzIqKQotKyAgICBrYXJnbWF4PWBncmVwIEFSR19NQVggL2V0Yy9j b25mL2NmLmQvc3R1bmUgMj4vZGV2L251bGxgCi0rICAgIGlmIHRlc3QgLW4gIiRrYXJnbWF4Ijsg dGhlbgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZWNobyAka2FyZ21heCB8IHNlZCAn cy8uKltbCSBdXS8vJ2AKLSsgICAgZWxzZQotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0z Mjc2OAotKyAgICBmaQotKyAgICA7OwotKyAgKikKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PWAoZ2V0Y29uZiBBUkdfTUFYKSAyPiAvZGV2L251bGxgCi0rICAgIGlmIHRlc3QgLW4gIiRsdF9j dl9zeXNfbWF4X2NtZF9sZW4iOyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBl eHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKLSsgICAgICBsdF9jdl9zeXNfbWF4X2Nt ZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAotKyAgICBlbHNlCi0rICAg ICAgIyBNYWtlIHRlc3RzdHJpbmcgYSBsaXR0bGUgYmlnZ2VyIGJlZm9yZSB3ZSBkbyBhbnl0aGlu ZyB3aXRoIGl0LgotKyAgICAgICMgYSAxSyBzdHJpbmcgc2hvdWxkIGJlIGEgcmVhc29uYWJsZSBz dGFydC4KLSsgICAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNiA3IDggOyBkbwotKyAgICAgICAgdGVz dHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCi0rICAgICAgZG9uZQotKyAgICAgIFNIRUxM PSR7U0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19Ci0rICAgICAgIyBJZiB0ZXN0IGlzIG5v dCBhIHNoZWxsIGJ1aWx0LWluLCB3ZSdsbCBwcm9iYWJseSBlbmQgdXAgY29tcHV0aW5nIGEKLSsg ICAgICAjIG1heGltdW0gbGVuZ3RoIHRoYXQgaXMgb25seSBoYWxmIG9mIHRoZSBhY3R1YWwgbWF4 aW11bSBsZW5ndGgsIGJ1dAotKyAgICAgICMgd2UgY2FuJ3QgdGVsbC4KLSsgICAgICB3aGlsZSB7 IHRlc3QgIlgiYGZ1bmNfZmFsbGJhY2tfZWNobyAiJHRlc3RzdHJpbmckdGVzdHN0cmluZyIgMj4v ZGV2L251bGxgIFwKLSsJICAgICAgICAgPSAiWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciOyB9ID4v ZGV2L251bGwgMj4mMSAmJgotKwkgICAgICB0ZXN0ICRpICE9IDE3ICMgMS8yIE1CIHNob3VsZCBi ZSBlbm91Z2gKLSsgICAgICBkbwotKyAgICAgICAgaT1gZXhwciAkaSArIDFgCi0rICAgICAgICB0 ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKLSsgICAgICBkb25lCi0rICAgICAgIyBP bmx5IGNoZWNrIHRoZSBzdHJpbmcgbGVuZ3RoIG91dHNpZGUgdGhlIGxvb3AuCi0rICAgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPWBleHByICJYJHRlc3RzdHJpbmciIDogIi4qIiAyPiYxYAotKyAg ICAgIHRlc3RzdHJpbmc9Ci0rICAgICAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9y IGJlY2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFjayBvbgotKyAgICAgICMgbWFzc2l2ZSBhbW91 bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhlCi0r ICAgICAgIyBsaW5rZXIuICBJdCBhcHBlYXJzIGFzIHRob3VnaCAxLzIgaXMgYSB1c2FibGUgdmFs dWUuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2Nt ZF9sZW4gXC8gMmAKLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLStdKQotK2lmIHRlc3QgLW4g JGx0X2N2X3N5c19tYXhfY21kX2xlbiA7IHRoZW4KLSsgIEFDX01TR19SRVNVTFQoJGx0X2N2X3N5 c19tYXhfY21kX2xlbikKLStlbHNlCi0rICBBQ19NU0dfUkVTVUxUKG5vbmUpCi0rZmkKLSttYXhf Y21kX2xlbj0kbHRfY3Zfc3lzX21heF9jbWRfbGVuCi0rX0xUX0RFQ0woW10sIFttYXhfY21kX2xl bl0sIFswXSwKLSsgICAgW1doYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD9d KQotK10pIyBMVF9DTURfTUFYX0xFTgotKwotKyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0FDX0xJ QlRPT0xfU1lTX01BWF9DTURfTEVOXSwgW0xUX0NNRF9NQVhfTEVOXSkKLStkbmwgYWNsb2NhbC0x LjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX1NZ U19NQVhfQ01EX0xFTl0sIFtdKQotKwotKwotKyMgX0xUX0hFQURFUl9ETEZDTgotKyMgLS0tLS0t LS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfSEVBREVSX0RMRkNOXSwKLStbQUNfQ0hFQ0tfSEVB REVSUyhbZGxmY24uaF0sIFtdLCBbXSwgW0FDX0lOQ0xVREVTX0RFRkFVTFRdKWRubAotK10pIyBf TFRfSEVBREVSX0RMRkNOCi0rCi0rCi0rIyBfTFRfVFJZX0RMT1BFTl9TRUxGIChBQ1RJT04tSUYt VFJVRSwgQUNUSU9OLUlGLVRSVUUtVy1VU0NPUkUsCi0rIyAgICAgICAgICAgICAgICAgICAgICBB Q1RJT04tSUYtRkFMU0UsIEFDVElPTi1JRi1DUk9TUy1DT01QSUxJTkcpCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r bTRfZGVmdW4oW19MVF9UUllfRExPUEVOX1NFTEZdLAotK1ttNF9yZXF1aXJlKFtfTFRfSEVBREVS X0RMRkNOXSlkbmwKLStpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6Ci0r ICBbJDRdCi0rZWxzZQotKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2Rs bmVlZF91c2NvcmU9MgotKyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KLSsgIGNhdCA+IGNvbmZ0 ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0rWyNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLSsjaW5j bHVkZSAiY29uZmRlZnMuaCIKLSsKLSsjaWYgSEFWRV9ETEZDTl9ICi0rI2luY2x1ZGUgPGRsZmNu Lmg+Ci0rI2VuZGlmCi0rCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rCi0rI2lmZGVmIFJUTERfR0xP QkFMCi0rIyAgZGVmaW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAotKyNlbHNlCi0rIyAgaWZk ZWYgRExfR0xPQkFMCi0rIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAotKyMgIGVs c2UKLSsjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJMAotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0r LyogV2UgbWF5IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQg bGluZSBpZiB3ZQotKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9y bS4gKi8KLSsjaWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKLSsjICBpZmRlZiBSVExEX0xBWlkKLSsj ICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKLSsjICBlbHNlCi0rIyAgICBp ZmRlZiBETF9MQVpZCi0rIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCi0r IyAgICBlbHNlCi0rIyAgICAgIGlmZGVmIFJUTERfTk9XCi0rIyAgICAgICAgZGVmaW5lIExUX0RM TEFaWV9PUl9OT1cJUlRMRF9OT1cKLSsjICAgICAgZWxzZQotKyMgICAgICAgIGlmZGVmIERMX05P VwotKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCi0rIyAgICAgICAg ZWxzZQotKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAotKyMgICAgICAgIGVu ZGlmCi0rIyAgICAgIGVuZGlmCi0rIyAgICBlbmRpZgotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0r LyogV2hlbiAtZnZpc2JpbGl0eT1oaWRkZW4gaXMgdXNlZCwgYXNzdW1lIHRoZSBjb2RlIGhhcyBi ZWVuIGFubm90YXRlZAotKyAgIGNvcnJlc3BvbmRpbmdseSBmb3IgdGhlIHN5bWJvbHMgbmVlZGVk LiAgKi8KLSsjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKCgoX19HTlVDX18gPT0gMykgJiYgKF9f R05VQ19NSU5PUl9fID49IDMpKSB8fCAoX19HTlVDX18gPiAzKSkKLStpbnQgZm5vcmQgKCkgX19h dHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSk7Ci0rI2VuZGlmCi0rCi0raW50IGZu b3JkICgpIHsgcmV0dXJuIDQyOyB9Ci0raW50IG1haW4gKCkKLSt7Ci0rICB2b2lkICpzZWxmID0g ZGxvcGVuICgwLCBMVF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XKTsKLSsgIGludCBzdGF0dXMg PSAkbHRfZGx1bmtub3duOwotKwotKyAgaWYgKHNlbGYpCi0rICAgIHsKLSsgICAgICBpZiAoZGxz eW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsKLSsgICAg ICBlbHNlCi0rICAgICAgICB7Ci0rCSAgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgIHN0YXR1 cyA9ICRsdF9kbG5lZWRfdXNjb3JlOwotKyAgICAgICAgICBlbHNlIHB1dHMgKGRsZXJyb3IgKCkp OwotKwl9Ci0rICAgICAgLyogZGxjbG9zZSAoc2VsZik7ICovCi0rICAgIH0KLSsgIGVsc2UKLSsg ICAgcHV0cyAoZGxlcnJvciAoKSk7Ci0rCi0rICByZXR1cm4gc3RhdHVzOwotK31dCi0rX0xUX0VP RgotKyAgaWYgQUNfVFJZX0VWQUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhl ZXh0fSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JkFTX01F U1NBR0VfTE9HX0ZEIDI+L2Rldi9udWxsCi0rICAgIGx0X3N0YXR1cz0kPwotKyAgICBjYXNlIHgk bHRfc3RhdHVzIGluCi0rICAgICAgeCRsdF9kbG5vX3VzY29yZSkgJDEgOzsKLSsgICAgICB4JGx0 X2RsbmVlZF91c2NvcmUpICQyIDs7Ci0rICAgICAgeCRsdF9kbHVua25vd258eCopICQzIDs7Ci0r ICAgIGVzYWMKLSsgIGVsc2UgOgotKyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAotKyAgICAkMwot KyAgZmkKLStmaQotK3JtIC1mciBjb25mdGVzdCoKLStdKSMgX0xUX1RSWV9ETE9QRU5fU0VMRgot KwotKwotKyMgTFRfU1lTX0RMT1BFTl9TRUxGCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19E RUZVTihbTFRfU1lTX0RMT1BFTl9TRUxGXSwKLStbbTRfcmVxdWlyZShbX0xUX0hFQURFUl9ETEZD Tl0pZG5sCi0raWYgdGVzdCAieCRlbmFibGVfZGxvcGVuIiAhPSB4eWVzOyB0aGVuCi0rICBlbmFi bGVfZGxvcGVuPXVua25vd24KLSsgIGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duCi0rICBlbmFi bGVfZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24KLStlbHNlCi0rICBsdF9jdl9kbG9wZW49bm8K LSsgIGx0X2N2X2Rsb3Blbl9saWJzPQotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgYmVvcyop Ci0rICAgIGx0X2N2X2Rsb3Blbj0ibG9hZF9hZGRfb24iCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJz PQotKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMKLSsgICAgOzsKLSsKLSsgIG1pbmd3KiB8IHB3 MzIqIHwgY2VnY2MqKQotKyAgICBsdF9jdl9kbG9wZW49IkxvYWRMaWJyYXJ5IgotKyAgICBsdF9j dl9kbG9wZW5fbGlicz0KLSsgICAgOzsKLSsKLSsgIGN5Z3dpbiopCi0rICAgIGx0X2N2X2Rsb3Bl bj0iZGxvcGVuIgotKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KLSsgICAgOzsKLSsKLSsgIGRhcndp biopCi0rICAjIGlmIGxpYmRsIGlzIGluc3RhbGxlZCB3ZSBuZWVkIHRvIGxpbmsgYWdhaW5zdCBp dAotKyAgICBBQ19DSEVDS19MSUIoW2RsXSwgW2Rsb3Blbl0sCi0rCQlbbHRfY3ZfZGxvcGVuPSJk bG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIl0sWwotKyAgICBsdF9jdl9kbG9wZW49ImR5 bGQiCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMK LSsgICAgXSkKLSsgICAgOzsKLSsKLSsgICopCi0rICAgIEFDX0NIRUNLX0ZVTkMoW3NobF9sb2Fk XSwKLSsJICBbbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCJdLAotKyAgICAgIFtBQ19DSEVDS19MSUIo W2RsZF0sIFtzaGxfbG9hZF0sCi0rCSAgICBbbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCIgbHRfY3Zf ZGxvcGVuX2xpYnM9Ii1sZGxkIl0sCi0rCVtBQ19DSEVDS19GVU5DKFtkbG9wZW5dLAotKwkgICAg ICBbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iXSwKLSsJICBbQUNfQ0hFQ0tfTElCKFtkbF0sIFtkbG9w ZW5dLAotKwkJW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbCJd LAotKwkgICAgW0FDX0NIRUNLX0xJQihbc3ZsZF0sIFtkbG9wZW5dLAotKwkJICBbbHRfY3ZfZGxv cGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbHN2bGQiXSwKLSsJICAgICAgW0FDX0NI RUNLX0xJQihbZGxkXSwgW2RsZF9saW5rXSwKLSsJCSAgICBbbHRfY3ZfZGxvcGVuPSJkbGRfbGlu ayIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIl0pCi0rCSAgICAgIF0pCi0rCSAgICBdKQotKwkg IF0pCi0rCV0pCi0rICAgICAgXSkKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGlmIHRlc3QgIngk bHRfY3ZfZGxvcGVuIiAhPSB4bm87IHRoZW4KLSsgICAgZW5hYmxlX2Rsb3Blbj15ZXMKLSsgIGVs c2UKLSsgICAgZW5hYmxlX2Rsb3Blbj1ubwotKyAgZmkKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3Bl biBpbgotKyAgZGxvcGVuKQotKyAgICBzYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgIHRl c3QgIngkYWNfY3ZfaGVhZGVyX2RsZmNuX2giID0geHllcyAmJiBDUFBGTEFHUz0iJENQUEZMQUdT IC1ESEFWRV9ETEZDTl9IIgotKwotKyAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICB3 bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGV4cG9ydF9k eW5hbWljX2ZsYWdfc3BlY1wiCi0rCi0rICAgIHNhdmVfTElCUz0iJExJQlMiCi0rICAgIExJQlM9 IiRsdF9jdl9kbG9wZW5fbGlicyAkTElCUyIKLSsKLSsgICAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRo ZXIgYSBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmXSwKLSsJICBsdF9jdl9kbG9wZW5fc2VsZiwg W2RubAotKwkgIF9MVF9UUllfRExPUEVOX1NFTEYoCi0rCSAgICBsdF9jdl9kbG9wZW5fc2VsZj15 ZXMsIGx0X2N2X2Rsb3Blbl9zZWxmPXllcywKLSsJICAgIGx0X2N2X2Rsb3Blbl9zZWxmPW5vLCBs dF9jdl9kbG9wZW5fc2VsZj1jcm9zcykKLSsgICAgXSkKLSsKLSsgICAgaWYgdGVzdCAieCRsdF9j dl9kbG9wZW5fc2VsZiIgPSB4eWVzOyB0aGVuCi0rICAgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJf d2wgZXZhbCBMREZMQUdTPVwiXCRMREZMQUdTICRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wiCi0r ICAgICAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFt IGNhbiBkbG9wZW4gaXRzZWxmXSwKLSsJICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMsIFtkbmwK LSsJICBfTFRfVFJZX0RMT1BFTl9TRUxGKAotKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGlj PXllcywgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcywKLSsJICAgIGx0X2N2X2Rsb3Blbl9z ZWxmX3N0YXRpYz1ubywgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1jcm9zcykKLSsgICAgICBd KQotKyAgICBmaQotKwotKyAgICBDUFBGTEFHUz0iJHNhdmVfQ1BQRkxBR1MiCi0rICAgIExERkxB R1M9IiRzYXZlX0xERkxBR1MiCi0rICAgIExJQlM9IiRzYXZlX0xJQlMiCi0rICAgIDs7Ci0rICBl c2FjCi0rCi0rICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZiBpbgotKyAgeWVzfG5vKSBlbmFibGVf ZGxvcGVuX3NlbGY9JGx0X2N2X2Rsb3Blbl9zZWxmIDs7Ci0rICAqKSBlbmFibGVfZGxvcGVuX3Nl bGY9dW5rbm93biA7OwotKyAgZXNhYwotKwotKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGZfc3Rh dGljIGluCi0rICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9JGx0X2N2X2Rsb3Bl bl9zZWxmX3N0YXRpYyA7OwotKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3du IDs7Ci0rICBlc2FjCi0rZmkKLStfTFRfREVDTChbZGxvcGVuX3N1cHBvcnRdLCBbZW5hYmxlX2Rs b3Blbl0sIFswXSwKLSsJIFtXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWRdKQotK19MVF9ERUNM KFtkbG9wZW5fc2VsZl0sIFtlbmFibGVfZGxvcGVuX3NlbGZdLCBbMF0sCi0rCSBbV2hldGhlciBk bG9wZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkXSkKLStfTFRfREVDTChbZGxvcGVuX3NlbGZf c3RhdGljXSwgW2VuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWNdLCBbMF0sCi0rCSBbV2hldGhlciBk bG9wZW4gb2Ygc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkXSkKLStdKSMg TFRfU1lTX0RMT1BFTl9TRUxGCi0rCi0rIyBPbGQgbmFtZToKLStBVV9BTElBUyhbQUNfTElCVE9P TF9ETE9QRU5fU0VMRl0sIFtMVF9TWVNfRExPUEVOX1NFTEZdKQotK2RubCBhY2xvY2FsLTEuNCBi YWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVO X1NFTEZdLCBbXSkKLSsKLSsKLSsjIF9MVF9DT01QSUxFUl9DX08oW1RBR05BTUVdKQotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayB0byBzZWUgaWYgb3B0aW9ucyAtYyBh bmQgLW8gYXJlIHNpbXVsdGFuZW91c2x5IHN1cHBvcnRlZCBieSBjb21waWxlci4KLSsjIFRoaXMg bWFjcm8gZG9lcyBub3QgaGFyZCBjb2RlIHRoZSBjb21waWxlciBsaWtlIEFDX1BST0dfQ0NfQ19P LgotK200X2RlZnVuKFtfTFRfQ09NUElMRVJfQ19PXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xf U0VEXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSttNF9y ZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlkbmwKLStBQ19DQUNIRV9DSEVDSyhbaWYgJGNvbXBp bGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dF0sCi0rICBbX0xUX1RBR1ZBUihsdF9j dl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpXSwKLSsgIFtfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29t cGlsZXJfY19vLCAkMSk9bm8KLSsgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKLSsgICBt a2RpciBjb25mdGVzdAotKyAgIGNkIGNvbmZ0ZXN0Ci0rICAgbWtkaXIgb3V0Ci0rICAgZWNobyAi JGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAg bHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgotKyAgICMgSW5z ZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUs IG9yCi0rICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAo MykgYXQgdGhlIGVuZC4KLSsgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBu b3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCi0rICAgIyB3aXRoIGEgZG9sbGFyIHNp Z24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KLSsg ICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKLSsgICAtZSAnczouKkZM QUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCi0rICAgLWUgJ3M6IFtbXiBd XSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0 X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0 X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKLSsgICAoZXZhbCAiJGx0X2NvbXBpbGUi IDI+b3V0L2NvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBjYXQgb3V0L2NvbmZ0 ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICBpZiAoZXhpdCAkYWNfc3Rh dHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAg ICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5v dCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsg ICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IG91 dC9jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3Qu ZXJyID5vdXQvY29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVy MiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0 aGVuCi0rICAgICAgIF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKT15ZXMK LSsgICAgIGZpCi0rICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiZBU19NRVNTQUdFX0xPR19GRAot KyAgICRSTSBjb25mdGVzdCoKLSsgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVhdGUgZGly ZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCi0rICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCi0r ICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91 dC9paV9maWxlcwotKyAgICRSTSBvdXQvKiAmJiBybWRpciBvdXQKLSsgICBjZCAuLgotKyAgICRS TSAtciBjb25mdGVzdAotKyAgICRSTSBjb25mdGVzdCoKLStdKQotK19MVF9UQUdERUNMKFtjb21w aWxlcl9jX29dLCBbbHRfY3ZfcHJvZ19jb21waWxlcl9jX29dLCBbMV0sCi0rCVtEb2VzIGNvbXBp bGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/XSkKLStdKSMgX0xU X0NPTVBJTEVSX0NfTwotKwotKwotKyMgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoW1RBR05BTUVd KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgdG8gc2Vl IGlmIHdlIGNhbiBkbyBoYXJkIGxpbmtzIHRvIGxvY2sgc29tZSBmaWxlcyBpZiBuZWVkZWQKLStt NF9kZWZ1bihbX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1NdLAotK1ttNF9yZXF1aXJlKFtfTFRfRU5B QkxFX0xPQ0tdKWRubAotK200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAot K19MVF9DT01QSUxFUl9DX08oWyQxXSkKLSsKLStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYg dGVzdCAiJF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKSIgPSBubyAmJiB0 ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUg dmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgotKyAgQUNfTVNHX0NIRUNL SU5HKFtpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3NdKQotKyAgaGFyZF9saW5rcz15ZXMK LSsgICRSTSBjb25mdGVzdCoKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVs bCAmJiBoYXJkX2xpbmtzPW5vCi0rICB0b3VjaCBjb25mdGVzdC5hCi0rICBsbiBjb25mdGVzdC5h IGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0 ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubwotKyAgQUNfTVNHX1JFU1VMVChbJGhh cmRfbGlua3NdKQotKyAgaWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KLSsgICAgQUNf TVNHX1dBUk4oW2AkQ0MnIGRvZXMgbm90IHN1cHBvcnQgYC1jIC1vJywgc28gYG1ha2UgLWonIG1h eSBiZSB1bnNhZmVdKQotKyAgICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQotKyAgbmVl ZF9sb2Nrcz1ubwotK2ZpCi0rX0xUX0RFQ0woW10sIFtuZWVkX2xvY2tzXSwgWzFdLCBbTXVzdCB3 ZSBsb2NrIGZpbGVzIHdoZW4gZG9pbmcgY29tcGlsYXRpb24/XSkKLStdKSMgX0xUX0NPTVBJTEVS X0ZJTEVfTE9DS1MKLSsKLSsKLSsjIF9MVF9DSEVDS19PQkpESVIKLSsjIC0tLS0tLS0tLS0tLS0t LS0KLSttNF9kZWZ1bihbX0xUX0NIRUNLX09CSkRJUl0sCi0rW0FDX0NBQ0hFX0NIRUNLKFtmb3Ig b2JqZGlyXSwgW2x0X2N2X29iamRpcl0sCi0rW3JtIC1mIC5saWJzIDI+L2Rldi9udWxsCi0rbWtk aXIgLmxpYnMgMj4vZGV2L251bGwKLStpZiB0ZXN0IC1kIC5saWJzOyB0aGVuCi0rICBsdF9jdl9v YmpkaXI9LmxpYnMKLStlbHNlCi0rICAjIE1TLURPUyBkb2VzIG5vdCBhbGxvdyBmaWxlbmFtZXMg dGhhdCBiZWdpbiB3aXRoIGEgZG90LgotKyAgbHRfY3Zfb2JqZGlyPV9saWJzCi0rZmkKLStybWRp ciAubGlicyAyPi9kZXYvbnVsbF0pCi0rb2JqZGlyPSRsdF9jdl9vYmpkaXIKLStfTFRfREVDTChb XSwgW29iamRpcl0sIFswXSwKLSsgICAgICAgICBbVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0 aGF0IGNvbnRhaW5zIHRlbXBvcmFyeSBsaWJ0b29sIGZpbGVzXSlkbmwKLSttNF9wYXR0ZXJuX2Fs bG93KFtMVF9PQkpESVJdKWRubAotK0FDX0RFRklORV9VTlFVT1RFRChMVF9PQkpESVIsICIkbHRf Y3Zfb2JqZGlyLyIsCi0rICBbRGVmaW5lIHRvIHRoZSBzdWItZGlyZWN0b3J5IGluIHdoaWNoIGxp YnRvb2wgc3RvcmVzIHVuaW5zdGFsbGVkIGxpYnJhcmllcy5dKQotK10pIyBfTFRfQ0hFQ0tfT0JK RElSCi0rCi0rCi0rIyBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoW1RBR05BTUVdKQotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIGhhcmRjb2Rp bmcgYXR0cmlidXRlcy4KLSttNF9kZWZ1bihbX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIXSwK LStbQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHBy b2dyYW1zXSkKLStfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPQotK2lmIHRlc3QgLW4g IiRfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSIgfHwKLSsgICB0ZXN0 IC1uICIkX0xUX1RBR1ZBUihydW5wYXRoX3ZhciwgJDEpIiB8fAotKyAgIHRlc3QgIlgkX0xUX1RB R1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKSIgPSAiWHllcyIgOyB0aGVuCi0rCi0rICAjIFdl IGNhbiBoYXJkY29kZSBub24tZXhpc3RlbnQgZGlyZWN0b3JpZXMuCi0rICBpZiB0ZXN0ICIkX0xU X1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKSIgIT0gbm8gJiYKLSsgICAgICMgSWYgdGhlIG9u bHkgbWVjaGFuaXNtIHRvIGF2b2lkIGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKLSsg ICAgICMgaGF2ZSB0byByZWxpbmssIG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5z dGFsbGVkIGxpYnJhcnkKLSsgICAgICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEg eWV0LXRvLWJlLWluc3RhbGxlZCBvbmUKLSsgICAgICMjIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRj b2RlX3NobGlicGF0aF92YXIsICQxKSIgIT0gbm8gJiYKLSsgICAgIHRlc3QgIiRfTFRfVEFHVkFS KGhhcmRjb2RlX21pbnVzX0wsICQxKSIgIT0gbm87IHRoZW4KLSsgICAgIyBMaW5raW5nIGFsd2F5 cyBoYXJkY29kZXMgdGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRpcmVjdG9yeS4KLSsgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT1yZWxpbmsKLSsgIGVsc2UKLSsgICAgIyBXZSBjYW4g bGluayB3aXRob3V0IGhhcmRjb2RpbmcsIGFuZCB3ZSBjYW4gaGFyZGNvZGUgbm9uZXhpc3Rpbmcg ZGlycy4KLSsgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT1pbW1lZGlhdGUKLSsg IGZpCi0rZWxzZQotKyAgIyBXZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2Ug Y2FuIG9ubHkgaGFyZGNvZGUgZXhpc3RpbmcKLSsgICMgZGlyZWN0b3JpZXMuCi0rICBfTFRfVEFH VkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPXVuc3VwcG9ydGVkCi0rZmkKLStBQ19NU0dfUkVTVUxU KFskX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKV0pCi0rCi0raWYgdGVzdCAiJF9MVF9U QUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSkiID0gcmVsaW5rIHx8Ci0rICAgdGVzdCAiJF9MVF9U QUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpIiA9IHllczsgdGhlbgotKyAgIyBGYXN0IGluc3RhbGxh dGlvbiBpcyBub3Qgc3VwcG9ydGVkCi0rICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0rZWxpZiB0 ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyB8fAotKyAgICAgdGVzdCAi JGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90 IG5lY2Vzc2FyeQotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1uZWVkbGVzcwotK2ZpCi0rX0xUX1RB R0RFQ0woW10sIFtoYXJkY29kZV9hY3Rpb25dLCBbMF0sCi0rICAgIFtIb3cgdG8gaGFyZGNvZGUg YSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4gZXhlY3V0YWJsZV0pCi0rXSkjIF9MVF9MSU5L RVJfSEFSRENPREVfTElCUEFUSAotKwotKwotKyMgX0xUX0NNRF9TVFJJUExJQgotKyMgLS0tLS0t LS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfQ01EX1NUUklQTElCXSwKLStbbTRfcmVxdWlyZShb X0xUX0RFQ0xfRUdSRVBdKQotK3N0cmlwbGliPQotK29sZF9zdHJpcGxpYj0KLStBQ19NU0dfQ0hF Q0tJTkcoW3doZXRoZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZV0pCi0raWYgdGVz dCAtbiAiJFNUUklQIiAmJiAkU1RSSVAgLVYgMj4mMSB8ICRHUkVQICJHTlUgc3RyaXAiID4vZGV2 L251bGw7IHRoZW4KLSsgIHRlc3QgLXogIiRvbGRfc3RyaXBsaWIiICYmIG9sZF9zdHJpcGxpYj0i JFNUUklQIC0tc3RyaXAtZGVidWciCi0rICB0ZXN0IC16ICIkc3RyaXBsaWIiICYmIHN0cmlwbGli PSIkU1RSSVAgLS1zdHJpcC11bm5lZWRlZCIKLSsgIEFDX01TR19SRVNVTFQoW3llc10pCi0rZWxz ZQotKyMgRklYTUUgLSBpbnNlcnQgc29tZSByZWFsIHRlc3RzLCBob3N0X29zIGlzbid0IHJlYWxs eSBnb29kIGVub3VnaAotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgZGFyd2luKikKLSsgICAgaWYg dGVzdCAtbiAiJFNUUklQIiA7IHRoZW4KLSsgICAgICBzdHJpcGxpYj0iJFNUUklQIC14IgotKyAg ICAgIG9sZF9zdHJpcGxpYj0iJFNUUklQIC1TIgotKyAgICAgIEFDX01TR19SRVNVTFQoW3llc10p Ci0rICAgIGVsc2UKLSsgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAgIGZpCi0rICAgIDs7 Ci0rICAqKQotKyAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAgIDs7Ci0rICBlc2FjCi0rZmkK LStfTFRfREVDTChbXSwgW29sZF9zdHJpcGxpYl0sIFsxXSwgW0NvbW1hbmRzIHRvIHN0cmlwIGxp YnJhcmllc10pCi0rX0xUX0RFQ0woW10sIFtzdHJpcGxpYl0sIFsxXSkKLStdKSMgX0xUX0NNRF9T VFJJUExJQgotKwotKwotKyMgX0xUX1NZU19EWU5BTUlDX0xJTktFUihbVEFHXSkKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBQT1JUTUUgRmlsbCBpbiB5b3VyIGxkLnNvIGNo YXJhY3RlcmlzdGljcwotK200X2RlZnVuKFtfTFRfU1lTX0RZTkFNSUNfTElOS0VSXSwKLStbQUNf UkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX0VH UkVQXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSttNF9y ZXF1aXJlKFtfTFRfREVDTF9PQkpEVU1QXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURd KWRubAotK200X3JlcXVpcmUoW19MVF9DSEVDS19TSEVMTF9GRUFUVVJFU10pZG5sCi0rQUNfTVNH X0NIRUNLSU5HKFtkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3NdKQotK200X2lmKFskMV0s Ci0rCVtdLCBbCi0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgZGFyd2luKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LywvTFIvIiA7OwotKyAg ICAqKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczovIiA7OwotKyAgZXNhYwotKyAgY2FzZSAkaG9z dF9vcyBpbgotKyAgICBtaW5ndyogfCBjZWdjYyopIGx0X3NlZF9zdHJpcF9lcT0icyw9XChbW0Et WmEtel1dOlwpLFwxLGciIDs7Ci0rICAgICopIGx0X3NlZF9zdHJpcF9lcT0icyw9LywvLGciIDs7 Ci0rICBlc2FjCi0rICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJz IHwgYXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAkbHRfc2Vk X3N0cmlwX2VxYAotKyAgY2FzZSAkbHRfc2VhcmNoX3BhdGhfc3BlYyBpbgotKyAgKlw7KikKLSsg ICAgIyBpZiB0aGUgcGF0aCBjb250YWlucyAiOyIgdGhlbiB3ZSBhc3N1bWUgaXQgdG8gYmUgdGhl IHNlcGFyYXRvcgotKyAgICAjIG90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBzdGFuZGFyZCBwYXRo IHNlcGFyYXRvciAoaS5lLiAiOiIpIC0gaXQgaXMKLSsgICAgIyBhc3N1bWVkIHRoYXQgbm8gcGFy dCBvZiBhIG5vcm1hbCBwYXRobmFtZSBjb250YWlucyAiOyIgYnV0IHRoYXQgc2hvdWxkCi0rICAg ICMgb2theSBpbiB0aGUgcmVhbCB3b3JsZCB3aGVyZSAiOyIgaW4gZGlycGF0aHMgaXMgaXRzZWxm IHByb2JsZW1hdGljLgotKyAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJj aF9wYXRoX3NwZWMiIHwgJFNFRCAncy87LyAvZydgCi0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9z ZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAicy8k UEFUSF9TRVBBUkFUT1IvIC9nImAKLSsgICAgOzsKLSsgIGVzYWMKLSsgICMgT2ssIG5vdyB3ZSBo YXZlIHRoZSBwYXRoLCBzZXBhcmF0ZWQgYnkgc3BhY2VzLCB3ZSBjYW4gc3RlcCB0aHJvdWdoIGl0 Ci0rICAjIGFuZCBhZGQgbXVsdGlsaWIgZGlyIGlmIG5lY2Vzc2FyeS4KLSsgIGx0X3RtcF9sdF9z ZWFyY2hfcGF0aF9zcGVjPQotKyAgbHRfbXVsdGlfb3NfZGlyPWAkQ0MgJENQUEZMQUdTICRDRkxB R1MgJExERkxBR1MgLXByaW50LW11bHRpLW9zLWRpcmVjdG9yeSAyPi9kZXYvbnVsbGAKLSsgIGZv ciBsdF9zeXNfcGF0aCBpbiAkbHRfc2VhcmNoX3BhdGhfc3BlYzsgZG8KLSsgICAgaWYgdGVzdCAt ZCAiJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiOyB0aGVuCi0rICAgICAgbHRfdG1wX2x0 X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3Bh dGgvJGx0X211bHRpX29zX2RpciIKLSsgICAgZWxzZQotKyAgICAgIHRlc3QgLWQgIiRsdF9zeXNf cGF0aCIgJiYgXAotKwlsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFy Y2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aCIKLSsgICAgZmkKLSsgIGRvbmUKLSsgIGx0X3NlYXJj aF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMiIHwgYXdrICcK LStCRUdJTiB7UlM9IiAiOyBGUz0iL3xcbiI7fSB7Ci0rICBsdF9mb289IiI7Ci0rICBsdF9jb3Vu dD0wOwotKyAgZm9yIChsdF9pID0gTkY7IGx0X2kgPiAwOyBsdF9pLS0pIHsKLSsgICAgaWYgKCRs dF9pICE9ICIiICYmICRsdF9pICE9ICIuIikgewotKyAgICAgIGlmICgkbHRfaSA9PSAiLi4iKSB7 Ci0rICAgICAgICBsdF9jb3VudCsrOwotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBpZiAobHRf Y291bnQgPT0gMCkgewotKyAgICAgICAgICBsdF9mb289Ii8iICRsdF9pIGx0X2ZvbzsKLSsgICAg ICAgIH0gZWxzZSB7Ci0rICAgICAgICAgIGx0X2NvdW50LS07Ci0rICAgICAgICB9Ci0rICAgICAg fQotKyAgICB9Ci0rICB9Ci0rICBpZiAobHRfZm9vICE9ICIiKSB7IGx0X2ZyZXFbW2x0X2Zvb11d Kys7IH0KLSsgIGlmIChsdF9mcmVxW1tsdF9mb29dXSA9PSAxKSB7IHByaW50IGx0X2ZvbzsgfQot K30nYAotKyAgIyBBV0sgcHJvZ3JhbSBhYm92ZSBlcnJvbmVvdXNseSBwcmVwZW5kcyAnLycgdG8g QzovZG9zL3BhdGhzCi0rICAjIGZvciB0aGVzZSBob3N0cy4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4K LSsgICAgbWluZ3cqIHwgY2VnY2MqKSBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3Nl YXJjaF9wYXRoX3NwZWMiIHxcCi0rICAgICAgJFNFRCAncywvXChbW0EtWmEtel1dOlwpLFwxLGcn YCA7OwotKyAgZXNhYwotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3Nl YXJjaF9wYXRoX3NwZWMiIHwgJGx0X05MMlNQYAotK2Vsc2UKLSsgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0iL2xpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKLStmaV0pCi0rbGlicmFyeV9u YW1lc19zcGVjPQotK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCi0rc29uYW1lX3NwZWM9Ci0rc2hy ZXh0X2NtZHM9Ii5zbyIKLStwb3N0aW5zdGFsbF9jbWRzPQotK3Bvc3R1bmluc3RhbGxfY21kcz0K LStmaW5pc2hfY21kcz0KLStmaW5pc2hfZXZhbD0KLStzaGxpYnBhdGhfdmFyPQotK3NobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD11bmtub3duCi0rdmVyc2lvbl90eXBlPW5vbmUKLStkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCi0rc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9s aWIgL3Vzci9saWIiCi0rbmVlZF9saWJfcHJlZml4PXVua25vd24KLStoYXJkY29kZV9pbnRvX2xp YnM9bm8KLSsKLSsjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ugc3VyZSBp dCBkb2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KLSsjIGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91 dCBhcmd1bWVudHMKLStuZWVkX3ZlcnNpb249dW5rbm93bgotKwotK2Nhc2UgJGhvc3Rfb3MgaW4K LSthaXgzKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lLmEnCi0r ICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsKLSsgICMgQUlYIDMgaGFzIG5vIHZlcnNpb25pbmcg c3VwcG9ydCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFtZS4KLSsgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICA7 OwotKwotK2FpeFtbNC05XV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwot KyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgIyBBSVggNSBzdXBwb3J0 cyBJQTY0Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgZWxzZQotKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwgY29sbGVjdDIgd291 bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxlCi0rICAgICMgZm9yIGRlcGVuZGVuY2UgbGlicmFyaWVz LiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKLSsgICAgIyB0aGUgbGluZSBgIyEg LicuICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSB0bwotKyAgICAjIGRl cGVuZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlzIHdhcyBmaXhlZCBp bgotKyAgICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3IgdG8gMy4wLgotKyAg ICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4NCB8IGFpeDQuW1swMV1dIHwgYWl4NC5bWzAx XV0uKikKLSsgICAgICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05VQ19fID09 IDIgJiYgX19HTlVDX01JTk9SX18gPj0gOTcpJwotKwkgICBlY2hvICcgeWVzICcKLSsJICAgZWNo byAnI2VuZGlmJzsgfSB8ICR7Q0N9IC1FIC0gfCAkR1JFUCB5ZXMgPiAvZGV2L251bGw7IHRoZW4K LSsJOgotKyAgICAgIGVsc2UKLSsJY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsgICAgZXNhYwotKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmlu ZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0Ci0rICAg ICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5n IHN1cHBvcnQgdG8KLSsgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUg dXNlZnVsIGluIGZ1dHVyZS4KLSsgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmci ID0geWVzOyB0aGVuCi0rICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVgg NC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+LnNvCi0rICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxu YW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKLSsgICAgICAjIHR5 cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIGVs c2UKLSsgICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJh cmllcyB0aHJvdWdoIEFJWDQuMgotKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBk b2luZyBydW4gdGltZSBsaW5raW5nLgotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJwotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGZpCi0rICAgIHNobGlicGF0 aF92YXI9TElCUEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0rYW1pZ2FvcyopCi0rICBjYXNlICRob3N0 X2NwdSBpbgotKyAgcG93ZXJwYykKLSsgICAgIyBTaW5jZSBKdWx5IDIwMDcgQW1pZ2FPUzQgb2Zm aWNpYWxseSBzdXBwb3J0cyAuc28gbGlicmFyaWVzLgotKyAgICAjIFdoZW4gY29tcGlsaW5nIHRo ZSBleGVjdXRhYmxlLCBhZGQgLXVzZS1keW5sZCAtTHNvYmpzOiB0byB0aGUgY29tcGlsZWxpbmUu Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JwotKyAgICA7OwotKyAgbTY4aykKLSsgICAgbGlicmFyeV9uYW1l c19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKLSsgICAgIyBDcmVhdGUgJHts aWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KLSsgICAgZmluaXNoX2V2 YWw9J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBs aWJuYW1lPWBmdW5jX2VjaG9fYWxsICIkbGliIiB8ICRTRUQgJ1wnJ3MlXi4qL1woW1teL11dKlwp XC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxp YnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhs aWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFy eS5hIHx8IGV4aXQgMTsgZG9uZScKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rYmVvcyop Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgotKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BB VEgKLSsgIDs7Ci0rCi0rYnNkaVtbNDVdXSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5l ZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgZmluaXNoX2NtZHM9J1BBVEg9Ilwk UEFUSDovc2JpbiIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNy L1gxMS9saWIgL3Vzci9jb250cmliL2xpYiAvbGliIC91c3IvbG9jYWwvbGliIgotKyAgc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsg ICMgdGhlIGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRhaW5zIC91c3IvY29udHJpYi9saWIg YW5kCi0rICAjIC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBpcyBhIGxpbmsgdG8gL3Vzci9YMTFS NiksIGJ1dCBsZXQgdXMgYWxsb3cKLSsgICMgbGlidG9vbCB0byBoYXJkLWNvZGUgdGhlc2UgaW50 byBwcm9ncmFtcwotKyAgOzsKLSsKLStjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyop Ci0rICB2ZXJzaW9uX3R5cGU9d2luZG93cwotKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICBuZWVk X3ZlcnNpb249bm8KLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKwotKyAgY2FzZSAkR0NDLCRjY19i YXNlbmFtZSBpbgotKyAgeWVzLCopCi0rICAgICMgZ2NjCi0rICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJGxpYm5hbWUuZGxsLmEnCi0rICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikv Li4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKLSsgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9m aWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+Ci0rICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAn XCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcnYH4KLSsg ICAgICBkbGRpcj0kZGVzdGRpci9gZGlybmFtZSBcJGRscGF0aGB+Ci0rICAgICAgdGVzdCAtZCBc JGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxkaXJ+Ci0rICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRk bG5hbWUgXCRkbGRpci8kZGxuYW1lfgotKyAgICAgIGNobW9kIGEreCBcJGRsZGlyLyRkbG5hbWV+ Ci0rICAgICAgaWYgdGVzdCAtbiAnXCcnJHN0cmlwbWUnXCcnICYmIHRlc3QgLW4gJ1wnJyRzdHJp cGxpYidcJyc7IHRoZW4KLSsgICAgICAgIGV2YWwgJ1wnJyRzdHJpcGxpYiBcJGRsZGlyLyRkbG5h bWUnXCcnIHx8IGV4aXQgXCQ/OwotKyAgICAgIGZpJwotKyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9 J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdcJydgfgot KyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+Ci0rICAgICAgICRSTSBcJGRscGF0aCcKLSsgICAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKwotKyAgICBjYXNlICRob3N0X29zIGlu Ci0rICAgIGN5Z3dpbiopCi0rICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJlZml4IHJh dGhlciB0aGFuICdsaWInCi0rICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBz ZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8t L2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rbTRfaWYoWyQxXSwgW10sWwotKyAgICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvdXNy L2xpYi93MzJhcGkiXSkKLSsgICAgICA7OwotKyAgICBtaW5ndyogfCBjZWdjYyopCi0rICAgICAg IyBNaW5HVyBETExzIHVzZSB0cmFkaXRpb25hbCAnbGliJyBwcmVmaXgKLSsgICAgICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydg JHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICA7OwotKyAgICBwdzMyKikKLSsgICAg ICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBs aWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8n YGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtz aGFyZWRfZXh0fScKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIGR5bmFtaWNfbGlua2VyPSdX aW4zMiBsZC5leGUnCi0rICAgIDs7Ci0rCi0rICAqLGNsKikKLSsgICAgIyBOYXRpdmUgTVNWQwot KyAgICBsaWJuYW1lX3NwZWM9JyRuYW1lJwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBl Y2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFy ZWRfZXh0fScKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9LmRsbC5saWInCi0r Ci0rICAgIGNhc2UgJGJ1aWxkX29zIGluCi0rICAgIG1pbmd3KikKLSsgICAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9Ci0rICAgICAgbHRfc2F2ZV9pZnM9JElGUwotKyAgICAgIElGUz0nOycK LSsgICAgICBmb3IgbHRfcGF0aCBpbiAkTElCCi0rICAgICAgZG8KLSsgICAgICAgIElGUz0kbHRf c2F2ZV9pZnMKLSsgICAgICAgICMgTGV0IERPUyB2YXJpYWJsZSBleHBhbnNpb24gcHJpbnQgdGhl IHNob3J0IDguMyBzdHlsZSBmaWxlIG5hbWUuCi0rICAgICAgICBsdF9wYXRoPWBjZCAiJGx0X3Bh dGgiIDI+L2Rldi9udWxsICYmIGNtZCAvL0MgImZvciAlaSBpbiAoIi4iKSBkbyBAZWNobyAlfnNp ImAKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYyAkbHRfcGF0aCIKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSRsdF9zYXZlX2lmcwot KyAgICAgICMgQ29udmVydCB0byBNU1lTIHN0eWxlLgotKyAgICAgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgc2VkIC1lICdzfFxc XFx8L3xnJyAtZSAnc3wgXFwoW1thLXpBLVpdXVxcKTp8IC9cXDF8ZycgLWUgJ3N8XiB8fCdgCi0r ICAgICAgOzsKLSsgICAgY3lnd2luKikKLSsgICAgICAjIENvbnZlcnQgdG8gdW5peCBmb3JtLCB0 aGVuIHRvIGRvcyBmb3JtLCB0aGVuIGJhY2sgdG8gdW5peCBmb3JtCi0rICAgICAgIyBidXQgdGhp cyB0aW1lIGRvcyBzdHlsZSAobm8gc3BhY2VzISkgc28gdGhhdCB0aGUgdW5peCBmb3JtIGxvb2tz Ci0rICAgICAgIyBsaWtlIC9jeWdkcml2ZS9jL1BST0dSQX4xOi9jeWdkci4uLgotKyAgICAgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gY3lncGF0aCAtLXBhdGggLS11bml4ICIkTElCImAKLSsg ICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGN5Z3BhdGggLS1wYXRoIC0tZG9zICIkc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjIiAyPi9kZXYvbnVsbGAKLSsgICAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9YGN5Z3BhdGggLS1wYXRoIC0tdW5peCAiJHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYyIgfCAkU0VEIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAotKyAgICAgIDs7Ci0rICAg ICopCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkTElCIgotKyAgICAgIGlmICRF Q0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IFskR1JFUCAnO1tjLXpDLVpdOi8nID4v ZGV2L251bGxdOyB0aGVuCi0rICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dz IGZvcm1hdCBQQVRILgotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAi JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKLSsgICAgICBl bHNlCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICAg ICAgZmkKLSsgICAgICAjIEZJWE1FOiBmaW5kIHRoZSBzaG9ydCBuYW1lIG9yIHRoZSBwYXRoIGNv bXBvbmVudHMsIGFzIHNwYWNlcyBhcmUKLSsgICAgICAjIGNvbW1vbi4gKGUuZy4gIlByb2dyYW0g RmlsZXMiIC0+ICJQUk9HUkF+MSIpCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIERM TCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBwb3N0aW5zdGFsbF9jbWRzCi0r ICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUgXCR7ZmlsZX1gfgotKyAg ICAgIGRscGF0aD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGRpci8nXCcnXCR7YmFzZV9maWxlfSdc JydpOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUg XCRkbHBhdGhgfgotKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBcJGRsZGlyfgot KyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRsbmFtZScKLSsgICAg cG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZpbGU7IGVj aG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBkbHBhdGg9JGRpci9cJGRsZGxsfgotKyAgICAgICAk Uk0gXCRkbHBhdGgnCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAg ZHluYW1pY19saW5rZXI9J1dpbjMyIGxpbmsuZXhlJwotKyAgICA7OwotKwotKyAgKikKLSsgICAg IyBBc3N1bWUgTVNWQyB3cmFwcGVyCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtz aGFyZWRfZXh0fSAkbGlibmFtZS5saWInCi0rICAgIGR5bmFtaWNfbGlua2VyPSdXaW4zMiBsZC5l eGUnCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNo IC4gYW5kIHRoZSBkaXJlY3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KLSsgIHNobGlicGF0aF92 YXI9UEFUSAotKyAgOzsKLSsKLStkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgZHluYW1pY19saW5r ZXI9IiRob3N0X29zIGR5bGQiCi0rICB2ZXJzaW9uX3R5cGU9ZGFyd2luCi0rICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0 JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4 dCcKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIHNobGlicGF0aF92YXI9 RFlMRF9MSUJSQVJZX1BBVEgKLSsgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMg JiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJwotK200X2lmKFskMV0sIFtdLFsKLSsgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvdXNyL2xvY2Fs L2xpYiJdKQotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9s aWIgL3Vzci9saWInCi0rICA7OwotKwotK2RndXgqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0Jwot KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK LSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICA7OwotKwotK2ZyZWVic2QxKikK LSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikK LSsgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1l bnQgYSBuZXcKLSsgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgotKyAgaWYg dGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4KLSsgICAgb2JqZm9ybWF0PWAvdXNyL2Jp bi9vYmpmb3JtYXRgCi0rICBlbHNlCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgZnJlZWJz ZFtbMTIzXV0qKSBvYmpmb3JtYXQ9YW91dCA7OwotKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7Ci0r ICAgIGVzYWMKLSsgIGZpCi0rICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0Ci0rICBj YXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsgICAgZnJlZWJzZC1lbGYqKQotKyAgICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9Jwot KyAgICAgIG5lZWRfdmVyc2lvbj1ubwotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAg IDs7Ci0rICAgIGZyZWVic2QtKikKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCcKLSsgICAgICBuZWVkX3ZlcnNpb249eWVzCi0rICAgICAgOzsKLSsgIGVzYWMK LSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBjYXNlICRob3N0X29zIGluCi0r ICBmcmVlYnNkMiopCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAg OzsKLSsgIGZyZWVic2QzLltbMDFdXSogfCBmcmVlYnNkZWxmMy5bWzAxXV0qKQotKyAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK LSsgICAgOzsKLSsgIGZyZWVic2QzLltbMi05XV0qIHwgZnJlZWJzZGVsZjMuW1syLTldXSogfCBc Ci0rICBmcmVlYnNkNC5bWzAtNV1dIHwgZnJlZWJzZGVsZjQuW1swLTVdXSB8IGZyZWVic2Q0LjEu MSB8IGZyZWVic2RlbGY0LjEuMSkKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5v Ci0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgICopICMgZnJvbSA0LjYg b24sIGFuZCBEcmFnb25GbHkKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwot KyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwot K2dudSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAg bmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raGFp a3UqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5l ZWRfdmVyc2lvbj1ubwotKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIHJ1bnRpbWVfbG9hZGVy IgotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7 bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICi0r ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0nL2Jvb3QvaG9tZS9jb25maWcvbGliIC9ib290L2NvbW1vbi9saWIgL2Jvb3Qvc3lz dGVtL2xpYicKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raHB1eDkqIHwg aHB1eDEwKiB8IGhwdXgxMSopCi0rICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0 aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCi0rICAjIGxpbmsgYWdh aW5zdCBvdGhlciB2ZXJzaW9ucy4KLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbmVlZF9saWJf cHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGNhc2UgJGhvc3RfY3B1IGluCi0rICBp YTY0KikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbycKLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXll cwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgotKyAgICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz ICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAg ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwot KyAgICBpZiB0ZXN0ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgotKyAgICAgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgz MiAvdXNyL2xvY2FsL2xpYiIKLSsgICAgZWxzZQotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iL3Vzci9saWIvaHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKLSsgICAgZmkKLSsg ICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYwot KyAgICA7OwotKyAgaHBwYSo2NCopCi0rICAgIHNocmV4dF9jbWRzPScuc2wnCi0rICAgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKLSsgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIK LSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRs ZSBTSExJQl9QQVRICi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxl c3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEy MF82NCIKLSsgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYwotKyAgICA7OwotKyAgKikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbCcKLSsgICAgZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKLSsgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9Q QVRICi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVk IHRvIGVuYWJsZSBTSExJQl9QQVRICi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICA7OwotKyAg ZXNhYwotKyAgIyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJh cmllcyBhcmUgbW9kZSA1NTUsIC4uLgotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRs aWInCi0rICAjIG9yIGZhaWxzIG91dHJpZ2h0LCBzbyBvdmVycmlkZSBhdG9taWNhbGx5OgotKyAg aW5zdGFsbF9vdmVycmlkZV9tb2RlPTU1NQotKyAgOzsKLSsKLStpbnRlcml4W1szLTldXSopCi0r ICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJz aW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4IDMu eCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19s aWJzPXllcwotKyAgOzsKLSsKLStpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgY2Fz ZSAkaG9zdF9vcyBpbgotKyAgICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7 Ci0rICAgICopCi0rCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsJ CXZlcnNpb25fdHlwZT1saW51eAotKwllbHNlCi0rCQl2ZXJzaW9uX3R5cGU9aXJpeAotKwlmaSA7 OwotKyAgZXNhYwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBjYXNl ICRob3N0X29zIGluCi0rICBpcml4NSogfCBub25zdG9wdXgqKQotKyAgICBsaWJzdWZmPSBzaGxp YnN1ZmY9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2ls bCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExECi0rICAgICotMzJ8KiItMzIgInwqLW1l bGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCi0rICAgICAgbGlic3VmZj0gc2hsaWJzdWZmPSBs aWJtYWdpYz0zMi1iaXQ7OwotKyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiIt bWVsZjMyYm1pcG4zMiAiKQotKyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdp Yz1OMzI7OwotKyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikK LSsgICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7OwotKyAgICAq KSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKLSsgICAgZXNhYwot KyAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9 X1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2Nh bC9saWIke2xpYnN1ZmZ9IgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGli JHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsg IDs7Ci0rCi0rIyBObyBzaGFyZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBv ciBjb2ZmLgotK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiopCi0rICBk eW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLSsjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCi0r bGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQotKyAgdmVyc2lvbl90eXBl PWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcg LW4gJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsKLSsgICMgU29tZSBiaW51dGlscyBsZCBhcmUgcGF0 Y2hlZCB0byBzZXQgRFRfUlVOUEFUSAotKyAgQUNfQ0FDSEVfVkFMKFtsdF9jdl9zaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGhdLAotKyAgICBbbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPW5vCi0rICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUwotKyAgICBzYXZlX2xpYmRpcj0kbGli ZGlyCi0rICAgIGV2YWwgImxpYmRpcj0vZm9vOyB3bD1cIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfd2wsICQxKVwiOyBcCi0rCSBMREZMQUdTPVwiXCRMREZMQUdTICRfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKVwiIgotKyAgICBBQ19MSU5LX0lGRUxTRShbQUNf TEFOR19QUk9HUkFNKFtdLFtdKV0sCi0rICAgICAgW0FTX0lGKFsgKCRPQkpEVU1QIC1wIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCkgMj4vZGV2L251bGwgfCBncmVwICJSVU5QQVRILiokbGliZGlyIiA+L2Rl di9udWxsXSwKLSsJIFtsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzXSldKQot KyAgICBMREZMQUdTPSRzYXZlX0xERkxBR1MKLSsgICAgbGliZGlyPSRzYXZlX2xpYmRpcgotKyAg ICBdKQotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRsdF9jdl9zaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGgKLSsKLSsgICMgVGhpcyBpbXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwgd2hp Y2ggaXMgdW5hY2NlcHRhYmxlLgotKyAgIyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBh bGxvdyBmb3IgZmFzdF9pbnN0YWxsCi0rICAjIGJlZm9yZSB0aGlzIGNhbiBiZSBlbmFibGVkLgot KyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKwotKyAgIyBBZGQgQUJJLXNwZWNpZmljIGRpcmVj dG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgotKyAgc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vzci9saWIiCi0rCi0rICAjIEFwcGVu ZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAotKyAgaWYgdGVzdCAtZiAv ZXRjL2xkLnNvLmNvbmY7IHRoZW4KLSsgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8g eyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXFskXTIpKTsg c2tpcCA9IDE7IH0geyBpZiAoIXNraXApIHByaW50IFxbJF0wOyBza2lwID0gMDsgfScgPCAvZXRj L2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWwkgXSpod2NhcFsJIF0vZDtzL1s6LAld LyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZztzLyIvL2c7L14kL2QnIHwgdHIgJ1xuJyAn ICdgCi0rICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWMgJGx0X2xkX2V4dHJhIgotKwotKyAgZmkKLSsKLSsgICMgV2UgdXNlZCB0byB0ZXN0 IGZvciAvbGliL2xkLnNvLjEgYW5kIGRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgotKyAgIyBw b3dlcnBjLCBiZWNhdXNlIE1rTGludXggb25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3 aXRoIHRoZQotKyAgIyBHTlUgZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4g d2l0aCBjcm9zcyBjb21waWxlcnMsCi0rICAjIG1vc3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBw b3J0IGR5bmFtaWMgbGlua2luZyB0aGVzZSBkYXlzIGFuZAotKyAgIyBwZW9wbGUgY2FuIGFsd2F5 cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCi0rICAjIGFz c3VtZSB0aGUgR05VL0xpbnV4IGR5bmFtaWMgbGlua2VyIGlzIGluIHVzZS4KLSsgIGR5bmFtaWNf bGlua2VyPSdHTlUvTGludXggbGQuc28nCi0rICA7OwotKwotK25ldGJzZCopCi0rICB2ZXJzaW9u X3R5cGU9c3Vub3MKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0r ICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsg dGhlbgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAg ICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwot KyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIChhLm91dCkgbGQuc28nCi0rICBlbHNlCi0rICAg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1l fSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3Nv JwotKyAgZmkKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7Owot KwotK25ld3NvczYpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMKLSsgIDs7Ci0rCi0rKm50byogfCAqcW54KikKLSsgIHZlcnNpb25fdHlwZT1xbngK LSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBkeW5hbWljX2xp bmtlcj0nbGRxbnguc28nCi0rICA7OwotKwotK29wZW5ic2QqKQotKyAgdmVyc2lvbl90eXBlPXN1 bm9zCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIiCi0rICBuZWVkX2xp Yl9wcmVmaXg9bm8KLSsgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQg bGVhc3QpICpkbyogbmVlZCB2ZXJzaW9uZWQgbGlicy4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsg ICAgb3BlbmJzZDMuMyB8IG9wZW5ic2QzLjMuKikJbmVlZF92ZXJzaW9uPXllcyA7OwotKyAgICAq KQkJCQluZWVkX3ZlcnNpb249bm8gIDs7Ci0rICBlc2FjCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2Jp biIgbGRjb25maWcgLW0gJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI Ci0rICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9f YCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0 aGVuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBvcGVuYnNkMi5bWzg5XV0gfCBvcGVu YnNkMi5bWzg5XV0uKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rCTs7Ci0r ICAgICAgKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKwk7OwotKyAgICAg IGVzYWMKLSsgIGVsc2UKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAg ZmkKLSsgIDs7Ci0rCi0rb3MyKikKLSsgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCi0rICBzaHJleHRf Y21kcz0iLmRsbCIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVj PSckbGlibmFtZSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUuYScKLSsgIGR5bmFtaWNfbGlua2VyPSdP Uy8yIGxkLmV4ZScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKyAgOzsKLSsKLStvc2YzKiB8 IG9zZjQqIHwgb3NmNSopCi0rICB2ZXJzaW9uX3R5cGU9b3NmCi0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9zaGxp YiAvdXNyL2Njcy9saWIgL3Vzci9saWIvY21wbHJzL2NjIC91c3IvbGliIC91c3IvbG9jYWwvbGli IC92YXIvc2hsaWIiCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYyIKLSsgIDs7Ci0rCi0rcmRvcyopCi0rICBkeW5hbWljX2xpbmtlcj1ubwot KyAgOzsKLSsKLStzb2xhcmlzKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJf cHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAjIGxkZCBjb21wbGFpbnMgdW5sZXNz IGxpYnJhcmllcyBhcmUgZXhlY3V0YWJsZQotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgK3gg JGxpYicKLSsgIDs7Ci0rCi0rc3Vub3M0KikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgIGZpbmlzaF9jbWRzPSdQ QVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAg aWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIGZpCi0rICBuZWVkX3ZlcnNpb249eWVzCi0rICA7OwotKwotK3N5c3Y0IHwgc3lzdjQu MyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBjYXNlICRob3N0X3ZlbmRvciBpbgotKyAgICBzbmkp Ci0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgICAgbmVlZF9saWJf cHJlZml4PW5vCi0rICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsgICAgICA7OwotKyAg ICBzaWVtZW5zKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIDs7Ci0rICAgIG1v dG9yb2xhKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIG5lZWRfdmVyc2lvbj1u bwotKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9saWInCi0rICAgICAgOzsK LSsgIGVzYWMKLSsgIDs7Ci0rCi0rc3lzdjQqTVAqKQotKyAgaWYgdGVzdCAtZCAvdXNyL25lYyA7 dGhlbgotKyAgICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSck bGlibmFtZSR7c2hhcmVkX2V4dH0uJHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtz aGFyZWRfZXh0fS4kbWFqb3InCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0r ICBmaQotKyAgOzsKLSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUq IHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLWVsZgot KyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9n bnVfbGQiID0geWVzOyB0aGVuCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9s b2NhbC9saWIgL3Vzci9nbnUvbGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGliJwotKyAgZWxz ZQotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicK LSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIHNjbzMuMnY1KikKLSsgICAgICAgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgotKwk7 OwotKyAgICBlc2FjCi0rICBmaQotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3Iv bGliJwotKyAgOzsKLSsKLSt0cGYqKQotKyAgIyBUUEYgaXMgYSBjcm9zcy10YXJnZXQgb25seS4g IFByZWZlcnJlZCBjcm9zcy1ob3N0ID0gR05VL0xpbnV4LgotKyAgdmVyc2lvbl90eXBlPWxpbnV4 Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK3V0 czQqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLSsqKQotKyAgZHluYW1pY19saW5rZXI9 bm8KLSsgIDs7Ci0rZXNhYwotK0FDX01TR19SRVNVTFQoWyRkeW5hbWljX2xpbmtlcl0pCi0rdGVz dCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLSt2YXJp YWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIi Ci0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVs aW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVS X1BBVEggTElCUkFSWV9QQVRIIgotK2ZpCi0rCi0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKLStmaQotK2lmIHRlc3QgIiR7 bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWMiCi0rZmkKLSsKLStfTFRfREVDTChbXSwgW3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rXSwg WzFdLAotKyAgICBbVmFyaWFibGVzIHdob3NlIHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGli dG9vbCB3cmFwcGVyIHNjcmlwdHMgYW5kCi0rICAgIHJlc3RvcmVkIGF0IGxpbmsgdGltZV0pCi0r X0xUX0RFQ0woW10sIFtuZWVkX2xpYl9wcmVmaXhdLCBbMF0sCi0rICAgIFtEbyB3ZSBuZWVkIHRo ZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXM/XSkKLStfTFRfREVDTChbXSwgW25lZWRfdmVyc2lv bl0sIFswXSwgW0RvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/XSkKLStfTFRfREVD TChbXSwgW3ZlcnNpb25fdHlwZV0sIFswXSwgW0xpYnJhcnkgdmVyc2lvbmluZyB0eXBlXSkKLStf TFRfREVDTChbXSwgW3J1bnBhdGhfdmFyXSwgWzBdLCAgW1NoYXJlZCBsaWJyYXJ5IHJ1bnRpbWUg cGF0aCB2YXJpYWJsZV0pCi0rX0xUX0RFQ0woW10sIFtzaGxpYnBhdGhfdmFyXSwgWzBdLFtTaGFy ZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlXSkKLStfTFRfREVDTChbXSwgW3NobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aF0sIFswXSwKLSsgICAgW0lzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUg dGhlIGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD9dKQotK19MVF9ERUNMKFtdLCBbbGli bmFtZV9zcGVjXSwgWzFdLCBbRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXhdKQotK19MVF9E RUNMKFtdLCBbbGlicmFyeV9uYW1lc19zcGVjXSwgWzFdLAotKyAgICBbW0xpc3Qgb2YgYXJjaGl2 ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3Mu Ci0rICAgIFRoZSBsYXN0IG5hbWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMgd2l0 aCAtbE5BTUVdXSkKLStfTFRfREVDTChbXSwgW3NvbmFtZV9zcGVjXSwgWzFdLAotKyAgICBbW1Ro ZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgcmVhbCBu YW1lXV0pCi0rX0xUX0RFQ0woW10sIFtpbnN0YWxsX292ZXJyaWRlX21vZGVdLCBbMV0sCi0rICAg IFtQZXJtaXNzaW9uIG1vZGUgb3ZlcnJpZGUgZm9yIGluc3RhbGxhdGlvbiBvZiBzaGFyZWQgbGli cmFyaWVzXSkKLStfTFRfREVDTChbXSwgW3Bvc3RpbnN0YWxsX2NtZHNdLCBbMl0sCi0rICAgIFtD b21tYW5kIHRvIHVzZSBhZnRlciBpbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCi0r X0xUX0RFQ0woW10sIFtwb3N0dW5pbnN0YWxsX2NtZHNdLCBbMl0sCi0rICAgIFtDb21tYW5kIHRv IHVzZSBhZnRlciB1bmluc3RhbGxhdGlvbiBvZiBhIHNoYXJlZCBhcmNoaXZlXSkKLStfTFRfREVD TChbXSwgW2ZpbmlzaF9jbWRzXSwgWzJdLAotKyAgICBbQ29tbWFuZHMgdXNlZCB0byBmaW5pc2gg YSBsaWJ0b29sIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5XSkKLStfTFRfREVD TChbXSwgW2ZpbmlzaF9ldmFsXSwgWzFdLAotKyAgICBbW0FzICJmaW5pc2hfY21kcyIsIGV4Y2Vw dCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dAotKyAgICBub3Qgc2hv d25dXSkKLStfTFRfREVDTChbXSwgW2hhcmRjb2RlX2ludG9fbGlic10sIFswXSwKLSsgICAgW1do ZXRoZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJpZXNdKQot K19MVF9ERUNMKFtdLCBbc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjXSwgWzJdLAotKyAgICBbQ29t cGlsZS10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzXSkKLStfTFRfREVDTChb XSwgW3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjXSwgWzJdLAotKyAgICBbUnVuLXRpbWUgc3lz dGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXNdKQotK10pIyBfTFRfU1lTX0RZTkFNSUNfTElO S0VSCi0rCi0rCi0rIyBfTFRfUEFUSF9UT09MX1BSRUZJWChUT09MKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsjIGZpbmQgYSBmaWxlIHByb2dyYW0gd2hpY2ggY2FuIHJlY29nbml6 ZSBzaGFyZWQgbGlicmFyeQotK0FDX0RFRlVOKFtfTFRfUEFUSF9UT09MX1BSRUZJWF0sCi0rW200 X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKLStBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkMV0p Ci0rQUNfQ0FDSEVfVkFMKGx0X2N2X3BhdGhfTUFHSUNfQ01ELAotK1tjYXNlICRNQUdJQ19DTUQg aW4KLStbW1xcLypdIHwgID86W1xcL10qXSkKLSsgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkTUFH SUNfQ01EIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLSsg IDs7Ci0rKikKLSsgIGx0X3NhdmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIgotKyAgbHRfc2F2ZV9p ZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZG5sICRhY19kdW1teSBmb3JjZXMgc3Bs aXR0aW5nIG9uIGNvbnN0YW50IHVzZXItc3VwcGxpZWQgcGF0aHMuCi0rZG5sIFBPU0lYLjIgd29y ZCBzcGxpdHRpbmcgaXMgZG9uZSBvbmx5IG9uIHRoZSBvdXRwdXQgb2Ygd29yZCBleHBhbnNpb25z LAotK2RubCBub3QgZXZlcnkgd29yZC4gIFRoaXMgY2xvc2VzIGEgbG9uZ3N0YW5kaW5nIHNoIHNl Y3VyaXR5IGhvbGUuCi0rICBhY19kdW1teT0ibTRfaWYoWyQyXSwgLCAkUEFUSCwgWyQyXSkiCi0r ICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0r ICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgJGFjX2Rp ci8kMTsgdGhlbgotKyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNfZGlyLyQxIgotKyAg ICAgIGlmIHRlc3QgLW4gIiRmaWxlX21hZ2ljX3Rlc3RfZmlsZSI7IHRoZW4KLSsJY2FzZSAkZGVw bGlic19jaGVja19tZXRob2QgaW4KLSsJImZpbGVfbWFnaWMgIiopCi0rCSAgZmlsZV9tYWdpY19y ZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICJmaWxlX21hZ2ljIFwoLipcKSJg Ci0rCSAgTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0rCSAgaWYgZXZhbCAkZmls ZV9tYWdpY19jbWQgXCRmaWxlX21hZ2ljX3Rlc3RfZmlsZSAyPiAvZGV2L251bGwgfAotKwkgICAg JEVHUkVQICIkZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgIDoKLSsJ ICBlbHNlCi0rCSAgICBjYXQgPDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogdGhlIGNv bW1hbmQgbGlidG9vbCB1c2VzIHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVzLAotKyoqKiAkZmls ZV9tYWdpY19jbWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90IHJlY29nbml6 ZS4KLSsqKiogVGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwgdG8gcmVjb2duaXpl IHNoYXJlZCBsaWJyYXJpZXMKLSsqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZlY3QgdGhlIGNy ZWF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzIHRoYXQKLSsqKiogZGVwZW5kIG9uIHNoYXJlZCBs aWJyYXJpZXMsIGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wKLSsqKiogbGli cmFyaWVzIHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4gIE5ldmVydGhlbGVz cywgeW91Ci0rKioqIG1heSB3YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5b3VyIHN5c3Rl bSBtYW5hZ2VyIGFuZC9vciB0bwotKyoqKiBidWctbGlidG9vbEBnbnUub3JnCi0rCi0rX0xUX0VP RgotKwkgIGZpIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGJyZWFrCi0rICAgIGZpCi0r ICBkb25lCi0rICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgIE1BR0lDX0NNRD0iJGx0X3NhdmVfTUFH SUNfQ01EIgotKyAgOzsKLStlc2FjXSkKLStNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NN RCIKLStpZiB0ZXN0IC1uICIkTUFHSUNfQ01EIjsgdGhlbgotKyAgQUNfTVNHX1JFU1VMVCgkTUFH SUNfQ01EKQotK2Vsc2UKLSsgIEFDX01TR19SRVNVTFQobm8pCi0rZmkKLStfTFRfREVDTChbXSwg W01BR0lDX0NNRF0sIFswXSwKLSsJIFtVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmls ZV9tYWdpY19jbWQgYmVnaW5zIHdpdGggImZpbGUiXSlkbmwKLStdKSMgX0xUX1BBVEhfVE9PTF9Q UkVGSVgKLSsKLSsjIE9sZCBuYW1lOgotK0FVX0FMSUFTKFtBQ19QQVRIX1RPT0xfUFJFRklYXSwg W19MVF9QQVRIX1RPT0xfUFJFRklYXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBh dGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBQ19QQVRIX1RPT0xfUFJFRklYXSwgW10pCi0rCi0r Ci0rIyBfTFRfUEFUSF9NQUdJQwotKyMgLS0tLS0tLS0tLS0tLS0KLSsjIGZpbmQgYSBmaWxlIHBy b2dyYW0gd2hpY2ggY2FuIHJlY29nbml6ZSBhIHNoYXJlZCBsaWJyYXJ5Ci0rbTRfZGVmdW4oW19M VF9QQVRIX01BR0lDXSwKLStbX0xUX1BBVEhfVE9PTF9QUkVGSVgoJHthY190b29sX3ByZWZpeH1m aWxlLCAvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRIKQotK2lmIHRlc3QgLXogIiRsdF9jdl9w YXRoX01BR0lDX0NNRCI7IHRoZW4KLSsgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRo ZW4KLSsgICAgX0xUX1BBVEhfVE9PTF9QUkVGSVgoZmlsZSwgL3Vzci9iaW4kUEFUSF9TRVBBUkFU T1IkUEFUSCkKLSsgIGVsc2UKLSsgICAgTUFHSUNfQ01EPToKLSsgIGZpCi0rZmkKLStdKSMgX0xU X1BBVEhfTUFHSUMKLSsKLSsKLSsjIExUX1BBVEhfTEQKLSsjIC0tLS0tLS0tLS0KLSsjIGZpbmQg dGhlIHBhdGhuYW1lIHRvIHRoZSBHTlUgb3Igbm9uLUdOVSBsaW5rZXIKLStBQ19ERUZVTihbTFRf UEFUSF9MRF0sCi0rW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAotK0FDX1JFUVVJUkUoW0FD X0NBTk9OSUNBTF9IT1NUXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERdKWRu bAotK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RFQ0xf RUdSRVBdKWRubAotK200X3JlcXVpcmUoW19MVF9QUk9HX0VDSE9fQkFDS1NMQVNIXSlkbmwKLSsK LStBQ19BUkdfV0lUSChbZ251LWxkXSwKLSsgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtZ251 LWxkXSwKLSsJW2Fzc3VtZSB0aGUgQyBjb21waWxlciB1c2VzIEdOVSBsZCBAPDpAZGVmYXVsdD1u b0A6PkBdKV0sCi0rICAgIFt0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXNd LAotKyAgICBbd2l0aF9nbnVfbGQ9bm9dKWRubAotKwotK2FjX3Byb2c9bGQKLStpZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgotKyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBn aXZlcyBhIHBhdGguCi0rICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBsZCB1c2VkIGJ5ICRDQ10pCi0r ICBjYXNlICRob3N0IGluCi0rICAqLSotbWluZ3cqKQotKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFp bGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3Ci0rICAgIGFjX3Byb2c9YCgk Q0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKLSsgICopCi0r ICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKLSsgIGVzYWMK LSsgIGNhc2UgJGFjX3Byb2cgaW4KLSsgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCi0rICAg IFtbXFwvXV0qIHwgPzpbW1xcL11dKikKLSsgICAgICByZV9kaXJlbHQ9Jy9bW14vXV1bW14vXV0q L1wuXC4vJwotKyAgICAgICMgQ2Fub25pY2FsaXplIHRoZSBwYXRobmFtZSBvZiBsZAotKyAgICAg IGFjX3Byb2c9YCRFQ0hPICIkYWNfcHJvZyJ8ICRTRUQgJ3MlXFxcXCUvJWcnYAotKyAgICAgIHdo aWxlICRFQ0hPICIkYWNfcHJvZyIgfCAkR1JFUCAiJHJlX2RpcmVsdCIgPiAvZGV2L251bGwgMj4m MTsgZG8KLSsJYWNfcHJvZz1gJEVDSE8gJGFjX3Byb2d8ICRTRUQgInMlJHJlX2RpcmVsdCUvJSJg Ci0rICAgICAgZG9uZQotKyAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19wcm9nIgotKyAg ICAgIDs7Ci0rICAiIikKLSsgICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4n dCB1c2luZyBHQ0MuCi0rICAgIGFjX3Byb2c9bGQKLSsgICAgOzsKLSsgICopCi0rICAgICMgSWYg aXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQgaW4gUEFUSC4KLSsg ICAgd2l0aF9nbnVfbGQ9dW5rbm93bgotKyAgICA7OwotKyAgZXNhYwotK2VsaWYgdGVzdCAiJHdp dGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgR05VIGxkXSkK LStlbHNlCi0rICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBub24tR05VIGxkXSkKLStmaQotK0FDX0NB Q0hFX1ZBTChsdF9jdl9wYXRoX0xELAotK1tpZiB0ZXN0IC16ICIkTEQiOyB0aGVuCi0rICBsdF9z YXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKLSsgIGZvciBhY19kaXIgaW4gJFBB VEg7IGRvCi0rICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAm JiBhY19kaXI9LgotKyAgICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0IC1m ICIkYWNfZGlyLyRhY19wcm9nJGFjX2V4ZWV4dCI7IHRoZW4KLSsgICAgICBsdF9jdl9wYXRoX0xE PSIkYWNfZGlyLyRhY19wcm9nIgotKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFt IGlzIEdOVSBsZC4gIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiwKLSsgICAgICAjIGJ1dCBhcHBh cmVudGx5IHNvbWUgdmFyaWFudHMgb2YgR05VIGxkIG9ubHkgYWNjZXB0IC12LgotKyAgICAgICMg QnJlYWsgb25seSBpZiBpdCB3YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgot KyAgICAgIGNhc2UgYCIkbHRfY3ZfcGF0aF9MRCIgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgotKyAg ICAgICpHTlUqIHwgKid3aXRoIEJGRCcqKQotKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYm IGJyZWFrCi0rCTs7Ci0rICAgICAgKikKLSsJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYg YnJlYWsKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICBkb25lCi0rICBJRlM9IiRsdF9z YXZlX2lmcyIKLStlbHNlCi0rICBsdF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotK2ZpXSkKLStMRD0iJGx0X2N2X3BhdGhfTEQi Ci0raWYgdGVzdCAtbiAiJExEIjsgdGhlbgotKyAgQUNfTVNHX1JFU1VMVCgkTEQpCi0rZWxzZQot KyAgQUNfTVNHX1JFU1VMVChubykKLStmaQotK3Rlc3QgLXogIiRMRCIgJiYgQUNfTVNHX0VSUk9S KFtubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSF0pCi0rX0xUX1BBVEhfTERfR05VCi0r QUNfU1VCU1QoW0xEXSkKLSsKLStfTFRfVEFHREVDTChbXSwgW0xEXSwgWzFdLCBbVGhlIGxpbmtl ciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllc10pCi0rXSkjIExUX1BBVEhfTEQKLSsKLSsjIE9sZCBu YW1lczoKLStBVV9BTElBUyhbQU1fUFJPR19MRF0sIFtMVF9QQVRIX0xEXSkKLStBVV9BTElBUyhb QUNfUFJPR19MRF0sIFtMVF9QQVRIX0xEXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNv bXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBTV9QUk9HX0xEXSwgW10pCi0rZG5sIEFDX0RF RlVOKFtBQ19QUk9HX0xEXSwgW10pCi0rCi0rCi0rIyBfTFRfUEFUSF9MRF9HTlUKLSsjLSAtLS0t LS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfUEFUSF9MRF9HTlVdLAotK1tBQ19DQUNIRV9DSEVD SyhbaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGRdLCBsdF9jdl9wcm9nX2dudV9sZCwKLStb IyBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUg bGRzIG9ubHkgYWNjZXB0IC12LgotK2Nhc2UgYCRMRCAtdiAyPiYxIDwvZGV2L251bGxgIGluCi0r KkdOVSogfCAqJ3dpdGggQkZEJyopCi0rICBsdF9jdl9wcm9nX2dudV9sZD15ZXMKLSsgIDs7Ci0r KikKLSsgIGx0X2N2X3Byb2dfZ251X2xkPW5vCi0rICA7OwotK2VzYWNdKQotK3dpdGhfZ251X2xk PSRsdF9jdl9wcm9nX2dudV9sZAotK10pIyBfTFRfUEFUSF9MRF9HTlUKLSsKLSsKLSsjIF9MVF9D TURfUkVMT0FECi0rIyAtLS0tLS0tLS0tLS0tLQotKyMgZmluZCByZWxvYWQgZmxhZyBmb3IgbGlu a2VyCi0rIyAgIC0tIFBPUlRNRSBTb21lIGxpbmtlcnMgbWF5IG5lZWQgYSBkaWZmZXJlbnQgcmVs b2FkIGZsYWcuCi0rbTRfZGVmdW4oW19MVF9DTURfUkVMT0FEXSwKLStbQUNfQ0FDSEVfQ0hFQ0so W2ZvciAkTEQgb3B0aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXNdLAotKyAgbHRfY3ZfbGRfcmVs b2FkX2ZsYWcsCi0rICBbbHRfY3ZfbGRfcmVsb2FkX2ZsYWc9Jy1yJ10pCi0rcmVsb2FkX2ZsYWc9 JGx0X2N2X2xkX3JlbG9hZF9mbGFnCi0rY2FzZSAkcmVsb2FkX2ZsYWcgaW4KLSsiIiB8ICIgIiop IDs7Ci0rKikgcmVsb2FkX2ZsYWc9IiAkcmVsb2FkX2ZsYWciIDs7Ci0rZXNhYwotK3JlbG9hZF9j bWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKLStjYXNlICRob3N0 X29zIGluCi0rICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgIGlmIHRl c3QgIiRHQ0MiICE9IHllczsgdGhlbgotKyAgICAgIHJlbG9hZF9jbWRzPWZhbHNlCi0rICAgIGZp Ci0rICAgIDs7Ci0rICBkYXJ3aW4qKQotKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgot KyAgICAgIHJlbG9hZF9jbWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIgLW8g JG91dHB1dCRyZWxvYWRfb2JqcycKLSsgICAgZWxzZQotKyAgICAgIHJlbG9hZF9jbWRzPSckTEQk cmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKLSsgICAgZmkKLSsgICAgOzsKLStl c2FjCi0rX0xUX1RBR0RFQ0woW10sIFtyZWxvYWRfZmxhZ10sIFsxXSwgW0hvdyB0byBjcmVhdGUg cmVsb2FkYWJsZSBvYmplY3QgZmlsZXNdKWRubAotK19MVF9UQUdERUNMKFtdLCBbcmVsb2FkX2Nt ZHNdLCBbMl0pZG5sCi0rXSkjIF9MVF9DTURfUkVMT0FECi0rCi0rCi0rIyBfTFRfQ0hFQ0tfTUFH SUNfTUVUSE9ECi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBob3cgdG8gY2hlY2sgZm9y IGxpYnJhcnkgZGVwZW5kZW5jaWVzCi0rIyAgLS0gUE9SVE1FIGZpbGwgaW4gd2l0aCB0aGUgZHlu YW1pYyBsaWJyYXJ5IGNoYXJhY3RlcmlzdGljcwotK200X2RlZnVuKFtfTFRfQ0hFQ0tfTUFHSUNf TUVUSE9EXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKQotK200X3JlcXVpcmUoW19M VF9ERUNMX09CSkRVTVBdKQotK0FDX0NBQ0hFX0NIRUNLKFtob3cgdG8gcmVjb2duaXplIGRlcGVu ZGVudCBsaWJyYXJpZXNdLAotK2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kLAotK1tsdF9jdl9m aWxlX21hZ2ljX2NtZD0nJE1BR0lDX0NNRCcKLStsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0K LStsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0ndW5rbm93bicKLSsjIE5lZWQgdG8gc2V0IHRo ZSBwcmVjZWRpbmcgdmFyaWFibGUgb24gYWxsIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQKLSsjIGlu dGVybGlicmFyeSBkZXBlbmRlbmNpZXMuCi0rIyAnbm9uZScgLS0gZGVwZW5kZW5jaWVzIG5vdCBz dXBwb3J0ZWQuCi0rIyBgdW5rbm93bicgLS0gc2FtZSBhcyBub25lLCBidXQgZG9jdW1lbnRzIHRo YXQgd2UgcmVhbGx5IGRvbid0IGtub3cuCi0rIyAncGFzc19hbGwnIC0tIGFsbCBkZXBlbmRlbmNp ZXMgcGFzc2VkIHdpdGggbm8gY2hlY2tzLgotKyMgJ3Rlc3RfY29tcGlsZScgLS0gY2hlY2sgYnkg bWFraW5nIHRlc3QgcHJvZ3JhbS4KLSsjICdmaWxlX21hZ2ljIFtbcmVnZXhdXScgLS0gY2hlY2sg YnkgbG9va2luZyBmb3IgZmlsZXMgaW4gbGlicmFyeSBwYXRoCi0rIyB3aGljaCByZXNwb25kcyB0 byB0aGUgJGZpbGVfbWFnaWNfY21kIHdpdGggYSBnaXZlbiBleHRlbmRlZCByZWdleC4KLSsjIElm IHlvdSBoYXZlIGBmaWxlJyBvciBlcXVpdmFsZW50IG9uIHlvdXIgc3lzdGVtIGFuZCB5b3UncmUg bm90IHN1cmUKLSsjIHdoZXRoZXIgYHBhc3NfYWxsJyB3aWxsICphbHdheXMqIHdvcmssIHlvdSBw cm9iYWJseSB3YW50IHRoaXMgb25lLgotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXhbWzQtOV1d KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2Jl b3MqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0r YnNkaVtbNDVdXSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBF TEYgW1swLTldXVtbMC05XV0qLWJpdCBbW01MXV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxp YiknCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAtTCcKLSsgIGx0X2N2 X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS9zaGxpYi9saWJjLnNvCi0rICA7OwotKwotK2N5Z3dpbiop Ci0rICAjIGZ1bmNfd2luMzJfbGliaWQgaXMgYSBzaGVsbCBmdW5jdGlvbiBkZWZpbmVkIGluIGx0 bWFpbi5zaAotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBh cmNoaXZlIGltcG9ydHxeeDg2IERMTCcKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dp bjMyX2xpYmlkJwotKyAgOzsKLSsKLSttaW5ndyogfCBwdzMyKikKLSsgICMgQmFzZSBNU1lTL01p bkdXIGRvIG5vdCBwcm92aWRlIHRoZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkKLSsgICMgZnVu Y193aW4zMl9saWJpZCBzaGVsbCBmdW5jdGlvbiwgc28gdXNlIGEgd2Vha2VyIHRlc3QgYmFzZWQg b24gJ29iamR1bXAnLAotKyAgIyB1bmxlc3Mgd2UgZmluZCAnZmlsZScsIGZvciBleGFtcGxlIGJl Y2F1c2Ugd2UgYXJlIGNyb3NzLWNvbXBpbGluZy4KLSsgICMgZnVuY193aW4zMl9saWJpZCBhc3N1 bWVzIEJTRCBubSwgc28gZGlzYWxsb3cgaXQgaWYgdXNpbmcgTVMgZHVtcGJpbi4KLSsgIGlmICgg dGVzdCAiJGx0X2N2X25tX2ludGVyZmFjZSIgPSAiQlNEIG5tIiAmJiBmaWxlIC8gKSA+L2Rldi9u dWxsIDI+JjE7IHRoZW4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFn aWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY19j bWQ9J2Z1bmNfd2luMzJfbGliaWQnCi0rICBlbHNlCi0rICAgICMgS2VlcCB0aGlzIHBhdHRlcm4g aW4gc3luYyB3aXRoIHRoZSBvbmUgaW4gZnVuY193aW4zMl9saWJpZC4KLSsgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgKHBlaSotaTM4NiguKmFy Y2hpdGVjdHVyZTogaTM4Nik/fHBlLWFybS13aW5jZXxwZS14ODYtNjQpJwotKyAgICBsdF9jdl9m aWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYnCi0rICBmaQotKyAgOzsKLSsKLStjZWdjYyopCi0r ICAjIHVzZSB0aGUgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLiBTZWUgbWluZ3cqLgot KyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGUt YXJtLS4qbGl0dGxlKC4qYXJjaGl0ZWN0dXJlOiBhcm0pPycKLSsgIGx0X2N2X2ZpbGVfbWFnaWNf Y21kPSckT0JKRFVNUCAtZicKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2ZyZWVic2QqIHwg ZHJhZ29uZmx5KikKLSsgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZf XyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICBpKjg2ICkK LSsgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgdGhlIHByZXNlbmNlIG9mIE9wZW5CU0QgaGVyZSB3 YXMgYSBtaXN0YWtlLgotKyAgICAgICMgTGV0J3MgYWNjZXB0IGJvdGggb2YgdGhlbSB1bnRpbCB0 aGlzIGlzIGNsZWFyZWQgdXAuCi0rICAgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2Zp bGVfbWFnaWMgKEZyZWVCU0R8T3BlbkJTRHxEcmFnb25GbHkpL2lbWzMtOV1dODYgKGNvbXBhY3Qg KT9kZW1hbmQgcGFnZWQgc2hhcmVkIGxpYnJhcnknCi0rICAgICAgbHRfY3ZfZmlsZV9tYWdpY19j bWQ9L3Vzci9iaW4vZmlsZQotKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hv IC91c3IvbGliL2xpYmMuc28uKmAKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBlbHNlCi0rICAg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICBmaQotKyAgOzsKLSsKLStn bnUqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0r aGFpa3UqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0r Ci0raHB1eDEwLjIwKiB8IGhwdXgxMSopCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jp bi9maWxlCi0rICBjYXNlICRob3N0X2NwdSBpbgotKyAgaWE2NCopCi0rICAgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzW1swLTldXVtbMC05XV1bWzAtOV1dfEVMRi1b WzAtOV1dW1swLTldXSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gSUE2NCcKLSsgICAgbHRfY3ZfZmls ZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvaHB1eDMyL2xpYmMuc28KLSsgICAgOzsKLSsgIGhw cGEqNjQqKQotKyAgICBbbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNb MC05XVswLTldWzAtOV18RUxGWyAtXVswLTldWzAtOV0pKC1iaXQpPyggW0xNXVNCKT8gc2hhcmVk IG9iamVjdCggZmlsZSk/WywgLV0qIFBBLVJJU0MgWzAtOV1cLlswLTldJ10KLSsgICAgbHRfY3Zf ZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNsCi0rICAgIDs7Ci0r ICAqKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05 XV1bWzAtOV1dW1swLTldXXxQQS1SSVNDW1swLTldXVwuW1swLTldXSkgc2hhcmVkIGxpYnJhcnkn Ci0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYmMuc2wKLSsgICAg OzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0raW50ZXJpeFtbMy05XV0qKQotKyAgIyBQSUMgY29kZSBp cyBicm9rZW4gb24gSW50ZXJpeCAzLngsIHRoYXQncyB3aHkgfFwuYSBub3QgfF9waWNcLmEgaGVy ZQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9d XSsoXC5zb3xcLmEpJCcKLSsgIDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikK LSsgIGNhc2UgJExEIGluCi0rICAqLTMyfCoiLTMyICIpIGxpYm1hZ2ljPTMyLWJpdDs7Ci0rICAq LW4zMnwqIi1uMzIgIikgbGlibWFnaWM9TjMyOzsKLSsgICotNjR8KiItNjQgIikgbGlibWFnaWM9 NjQtYml0OzsKLSsgICopIGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKLSsgIGVzYWMKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotKyMgVGhpcyBtdXN0IGJl IExpbnV4IEVMRi4KLStsaW51eCogfCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUpCi0r ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStuZXRic2Qq KQotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4gL2Rldi9u dWxsOyB0aGVuCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJu IC9saWJbW14vXV0rKFwuc29cLltbMC05XV0rXC5bWzAtOV1dK3xfcGljXC5hKSQnCi0rICBlbHNl Ci0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14v XV0rKFwuc298X3BpY1wuYSkkJwotKyAgZmkKLSsgIDs7Ci0rCi0rbmV3b3M2KikKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0 IFtbTUxdXVNCIChleGVjdXRhYmxlfGR5bmFtaWMgbGliKScKLSsgIGx0X2N2X2ZpbGVfbWFnaWNf Y21kPS91c3IvYmluL2ZpbGUKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGli L2xpYm5scy5zbwotKyAgOzsKLSsKLSsqbnRvKiB8ICpxbngqKQotKyAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICBpZiB0ZXN0IC16 ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhv c3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc29cLltb MC05XV0rXC5bWzAtOV1dK3xcLnNvfF9waWNcLmEpJCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTld XStcLltbMC05XV0rfF9waWNcLmEpJCcKLSsgIGZpCi0rICA7OwotKwotK29zZjMqIHwgb3NmNCog fCBvc2Y1KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7Owot KwotK3Jkb3MqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7 Ci0rCi0rc29sYXJpcyopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAot KyAgOzsKLSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3Bl blVOSVgqIHwgc3lzdjQqdXcyKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3Nf YWxsCi0rICA7OwotKwotK3N5c3Y0IHwgc3lzdjQuMyopCi0rICBjYXNlICRob3N0X3ZlbmRvciBp bgotKyAgbW90b3JvbGEpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21h Z2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTUxdXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFt aWMgbGliKSBNW1swLTldXVtbMC05XV0qIFZlcnNpb24gW1swLTldXScKLSsgICAgbHRfY3ZfZmls ZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL3Vzci9saWIvbGliYy5zbypgCi0rICAgIDs7Ci0rICBu Y3IpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0r ICBzZXF1ZW50KQotKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxlJwotKyAgICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0q LWJpdCBbW0xNXV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYiApJwotKyAgICA7OwotKyAg c25pKQotKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxlJwotKyAgICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD0iZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBb W0xNXV1TQiBkeW5hbWljIGxpYiIKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L2xp Yi9saWJjLnNvCi0rICAgIDs7Ci0rICBzaWVtZW5zKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD1wYXNzX2FsbAotKyAgICA7OwotKyAgcGMpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK3RwZiopCi0r ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLStlc2FjCi0rXSkK LSsKLStmaWxlX21hZ2ljX2dsb2I9Ci0rd2FudF9ub2Nhc2VnbG9iPW5vCi0raWYgdGVzdCAiJGJ1 aWxkIiA9ICIkaG9zdCI7IHRoZW4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIG1pbmd3KiB8IHB3 MzIqKQotKyAgICBpZiAoIHNob3B0IHwgZ3JlcCBub2Nhc2VnbG9iICkgPi9kZXYvbnVsbCAyPiYx OyB0aGVuCi0rICAgICAgd2FudF9ub2Nhc2VnbG9iPXllcwotKyAgICBlbHNlCi0rICAgICAgZmls ZV9tYWdpY19nbG9iPWBlY2hvIGFBYkJjQ2REZUVmRmdHaEhpSWpKa0tsTG1Nbk5vT3BQcVFyUnNT dFR1VXZWd1d4WHlZelogfCAkU0VEIC1lICJzL1woLi5cKS9zXC9bW1wxXV1cL1tbXDFdXVwvZzsv ZyJgCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rZmkKLSsKLStmaWxlX21hZ2ljX2NtZD0k bHRfY3ZfZmlsZV9tYWdpY19jbWQKLStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2QKLSt0ZXN0IC16ICIkZGVwbGlic19jaGVja19tZXRob2QiICYmIGRlcGxp YnNfY2hlY2tfbWV0aG9kPXVua25vd24KLSsKLStfTFRfREVDTChbXSwgW2RlcGxpYnNfY2hlY2tf bWV0aG9kXSwgWzFdLAotKyAgICBbTWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgZGVwZW5kZW50IGxp YnJhcmllcyBhcmUgc2hhcmVkIG9iamVjdHNdKQotK19MVF9ERUNMKFtdLCBbZmlsZV9tYWdpY19j bWRdLCBbMV0sCi0rICAgIFtDb21tYW5kIHRvIHVzZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9k ID0gImZpbGVfbWFnaWMiXSkKLStfTFRfREVDTChbXSwgW2ZpbGVfbWFnaWNfZ2xvYl0sIFsxXSwK LSsgICAgW0hvdyB0byBmaW5kIHBvdGVudGlhbCBmaWxlcyB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0 aG9kID0gImZpbGVfbWFnaWMiXSkKLStfTFRfREVDTChbXSwgW3dhbnRfbm9jYXNlZ2xvYl0sIFsx XSwKLSsgICAgW0ZpbmQgcG90ZW50aWFsIGZpbGVzIHVzaW5nIG5vY2FzZWdsb2Igd2hlbiBkZXBs aWJzX2NoZWNrX21ldGhvZCA9ICJmaWxlX21hZ2ljIl0pCi0rXSkjIF9MVF9DSEVDS19NQUdJQ19N RVRIT0QKLSsKLSsKLSsjIExUX1BBVEhfTk0KLSsjIC0tLS0tLS0tLS0KLSsjIGZpbmQgdGhlIHBh dGhuYW1lIHRvIGEgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyCi0rQUNfREVGVU4o W0xUX1BBVEhfTk1dLAotK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKLStBQ19DQUNIRV9D SEVDSyhbZm9yIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0pXSwgbHRfY3Zf cGF0aF9OTSwKLStbaWYgdGVzdCAtbiAiJE5NIjsgdGhlbgotKyAgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCi0rICBsdF9jdl9wYXRoX05NPSIkTk0iCi0rZWxzZQotKyAgbHRfbm1f dG9fY2hlY2s9IiR7YWNfdG9vbF9wcmVmaXh9bm0iCi0rICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9w cmVmaXgiICYmIHRlc3QgIiRidWlsZCIgPSAiJGhvc3QiOyB0aGVuCi0rICAgIGx0X25tX3RvX2No ZWNrPSIkbHRfbm1fdG9fY2hlY2sgbm0iCi0rICBmaQotKyAgZm9yIGx0X3RtcF9ubSBpbiAkbHRf bm1fdG9fY2hlY2s7IGRvCi0rICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFS QVRPUgotKyAgICBmb3IgYWNfZGlyIGluICRQQVRIIC91c3IvY2NzL2Jpbi9lbGYgL3Vzci9jY3Mv YmluIC91c3IvdWNiIC9iaW47IGRvCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAg dGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgICB0bXBfbm09IiRhY19kaXIvJGx0 X3RtcF9ubSIKLSsgICAgICBpZiB0ZXN0IC1mICIkdG1wX25tIiB8fCB0ZXN0IC1mICIkdG1wX25t JGFjX2V4ZWV4dCIgOyB0aGVuCi0rCSMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBubSBhY2NlcHRzIGEg QlNELWNvbXBhdCBmbGFnLgotKwkjIEFkZGluZyB0aGUgYHNlZCAxcScgcHJldmVudHMgZmFsc2Ug cG9zaXRpdmVzIG9uIEhQLVVYLCB3aGljaCBzYXlzOgotKwkjICAgbm06IHVua25vd24gb3B0aW9u ICJCIiBpZ25vcmVkCi0rCSMgVHJ1NjQncyBubSBjb21wbGFpbnMgdGhhdCAvZGV2L251bGwgaXMg YW4gaW52YWxpZCBvYmplY3QgZmlsZQotKwljYXNlIGAiJHRtcF9ubSIgLUIgL2Rldi9udWxsIDI+ JjEgfCBzZWQgJzFxJ2AgaW4KLSsJKi9kZXYvbnVsbCogfCAqJ0ludmFsaWQgZmlsZSBvciBvYmpl Y3QgdHlwZScqKQotKwkgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0gLUIiCi0rCSAgYnJlYWsKLSsJ ICA7OwotKwkqKQotKwkgIGNhc2UgYCIkdG1wX25tIiAtcCAvZGV2L251bGwgMj4mMSB8IHNlZCAn MXEnYCBpbgotKwkgICovZGV2L251bGwqKQotKwkgICAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAt cCIKLSsJICAgIGJyZWFrCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBsdF9jdl9wYXRoX05NPSR7 bHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSJ9ICMga2VlcCB0aGUgZmlyc3QgbWF0Y2gsIGJ1dAotKwkg ICAgY29udGludWUgIyBzbyB0aGF0IHdlIGNhbiB0cnkgdG8gZmluZCBvbmUgdGhhdCBzdXBwb3J0 cyBCU0QgZmxhZ3MKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBm aQotKyAgICBkb25lCi0rICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgZG9uZQotKyAgOiAke2x0 X2N2X3BhdGhfTk09bm99Ci0rZmldKQotK2lmIHRlc3QgIiRsdF9jdl9wYXRoX05NIiAhPSAibm8i OyB0aGVuCi0rICBOTT0iJGx0X2N2X3BhdGhfTk0iCi0rZWxzZQotKyAgIyBEaWRuJ3QgZmluZCBh bnkgQlNEIGNvbXBhdGlibGUgbmFtZSBsaXN0ZXIsIGxvb2sgZm9yIGR1bXBiaW4uCi0rICBpZiB0 ZXN0IC1uICIkRFVNUEJJTiI7IHRoZW4gOgotKyAgICAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0 aGUgdGVzdC4KLSsgIGVsc2UKLSsgICAgQUNfQ0hFQ0tfVE9PTFMoRFVNUEJJTiwgW2R1bXBiaW4g ImxpbmsgLWR1bXAiXSwgOikKLSsgICAgY2FzZSBgJERVTVBCSU4gLXN5bWJvbHMgL2Rldi9udWxs IDI+JjEgfCBzZWQgJzFxJ2AgaW4KLSsgICAgKkNPRkYqKQotKyAgICAgIERVTVBCSU49IiREVU1Q QklOIC1zeW1ib2xzIgotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgRFVNUEJJTj06Ci0rICAg ICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIEFDX1NVQlNUKFtEVU1QQklOXSkKLSsgIGlmIHRl c3QgIiREVU1QQklOIiAhPSAiOiI7IHRoZW4KLSsgICAgTk09IiREVU1QQklOIgotKyAgZmkKLStm aQotK3Rlc3QgLXogIiROTSIgJiYgTk09bm0KLStBQ19TVUJTVChbTk1dKQotK19MVF9ERUNMKFtd LCBbTk1dLCBbMV0sIFtBIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3Rlcl0pZG5sCi0r Ci0rQUNfQ0FDSEVfQ0hFQ0soW3RoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2VdLCBbbHRf Y3Zfbm1faW50ZXJmYWNlXSwKLSsgIFtsdF9jdl9ubV9pbnRlcmZhY2U9IkJTRCBubSIKLSsgIGVj aG8gImludCBzb21lX3ZhcmlhYmxlID0gMDsiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgKGV2YWwg ZWNobyAiXCJcJGFzX21lOiRMSU5FTk86ICRhY19jb21waWxlXCIiID4mQVNfTUVTU0FHRV9MT0df RkQpCi0rICAoZXZhbCAiJGFjX2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJ TkVOTzogJE5NIFxcXCJjb25mdGVzdC4kYWNfb2JqZXh0XFxcIlwiIiA+JkFTX01FU1NBR0VfTE9H X0ZEKQotKyAgKGV2YWwgIiROTSBcImNvbmZ0ZXN0LiRhY19vYmpleHRcIiIgMj5jb25mdGVzdC5l cnIgPiBjb25mdGVzdC5vdXQpCi0rICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0df RkQKLSsgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiBvdXRwdXRcIiIgPiZBU19NRVNT QUdFX0xPR19GRCkKLSsgIGNhdCBjb25mdGVzdC5vdXQgPiZBU19NRVNTQUdFX0xPR19GRAotKyAg aWYgJEdSRVAgJ0V4dGVybmFsLipzb21lX3ZhcmlhYmxlJyBjb25mdGVzdC5vdXQgPiAvZGV2L251 bGw7IHRoZW4KLSsgICAgbHRfY3Zfbm1faW50ZXJmYWNlPSJNUyBkdW1wYmluIgotKyAgZmkKLSsg IHJtIC1mIGNvbmZ0ZXN0Kl0pCi0rXSkjIExUX1BBVEhfTk0KLSsKLSsjIE9sZCBuYW1lczoKLStB VV9BTElBUyhbQU1fUFJPR19OTV0sIFtMVF9QQVRIX05NXSkKLStBVV9BTElBUyhbQUNfUFJPR19O TV0sIFtMVF9QQVRIX05NXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxp dHk6Ci0rZG5sIEFDX0RFRlVOKFtBTV9QUk9HX05NXSwgW10pCi0rZG5sIEFDX0RFRlVOKFtBQ19Q Uk9HX05NXSwgW10pCi0rCi0rIyBfTFRfQ0hFQ0tfU0hBUkVETElCX0ZST01fTElOS0xJQgotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGhvdyB0byBkZXRlcm1pbmUgdGhl IG5hbWUgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5Ci0rIyBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZp YyBsaW5rIGxpYnJhcnkuCi0rIyAgLS0gUE9SVE1FIGZpbGwgaW4gd2l0aCB0aGUgZHluYW1pYyBs aWJyYXJ5IGNoYXJhY3RlcmlzdGljcwotK200X2RlZnVuKFtfTFRfQ0hFQ0tfU0hBUkVETElCX0ZS T01fTElOS0xJQl0sCi0rW200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSkKLSttNF9yZXF1aXJl KFtfTFRfREVDTF9PQkpEVU1QXSkKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9ETExUT09MXSkKLStB Q19DQUNIRV9DSEVDSyhbaG93IHRvIGFzc29jaWF0ZSBydW50aW1lIGFuZCBsaW5rIGxpYnJhcmll c10sCi0rbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQsCi0rW2x0X2N2X3NoYXJlZGxp Yl9mcm9tX2xpbmtsaWJfY21kPSd1bmtub3duJwotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLStjeWd3 aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAjIHR3byBkaWZmZXJlbnQgc2hlbGwg ZnVuY3Rpb25zIGRlZmluZWQgaW4gbHRtYWluLnNoCi0rICAjIGRlY2lkZSB3aGljaCB0byB1c2Ug YmFzZWQgb24gY2FwYWJpbGl0aWVzIG9mICRETExUT09MCi0rICBjYXNlIGAkRExMVE9PTCAtLWhl bHAgMj4mMWAgaW4KLSsgICotLWlkZW50aWZ5LXN0cmljdCopCi0rICAgIGx0X2N2X3NoYXJlZGxp Yl9mcm9tX2xpbmtsaWJfY21kPWZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYgotKyAgICA7Owot KyAgKikKLSsgICAgbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9ZnVuY19jeWdtaW5n X2RsbF9mb3JfaW1wbGliX2ZhbGxiYWNrCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKyopCi0r ICAjIGZhbGxiYWNrOiBhc3N1bWUgbGlua2xpYiBJUyBzaGFyZWRsaWIKLSsgIGx0X2N2X3NoYXJl ZGxpYl9mcm9tX2xpbmtsaWJfY21kPSIkRUNITyIKLSsgIDs7Ci0rZXNhYwotK10pCi0rc2hhcmVk bGliX2Zyb21fbGlua2xpYl9jbWQ9JGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kCi0r dGVzdCAteiAiJHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kIiAmJiBzaGFyZWRsaWJfZnJvbV9s aW5rbGliX2NtZD0kRUNITwotKwotK19MVF9ERUNMKFtdLCBbc2hhcmVkbGliX2Zyb21fbGlua2xp Yl9jbWRdLCBbMV0sCi0rICAgIFtDb21tYW5kIHRvIGFzc29jaWF0ZSBzaGFyZWQgYW5kIGxpbmsg bGlicmFyaWVzXSkKLStdKSMgX0xUX0NIRUNLX1NIQVJFRExJQl9GUk9NX0xJTktMSUIKLSsKLSsK LSsjIF9MVF9QQVRIX01BTklGRVNUX1RPT0wKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsj IGxvY2F0ZSB0aGUgbWFuaWZlc3QgdG9vbAotK200X2RlZnVuKFtfTFRfUEFUSF9NQU5JRkVTVF9U T09MXSwKLStbQUNfQ0hFQ0tfVE9PTChNQU5JRkVTVF9UT09MLCBtdCwgOikKLSt0ZXN0IC16ICIk TUFOSUZFU1RfVE9PTCIgJiYgTUFOSUZFU1RfVE9PTD1tdAotK0FDX0NBQ0hFX0NIRUNLKFtpZiAk TUFOSUZFU1RfVE9PTCBpcyBhIG1hbmlmZXN0IHRvb2xdLCBbbHRfY3ZfcGF0aF9tYWluZmVzdF90 b29sXSwKLSsgIFtsdF9jdl9wYXRoX21haW5mZXN0X3Rvb2w9bm8KLSsgIGVjaG8gIiRhc19tZTok TElORU5POiAkTUFOSUZFU1RfVE9PTCAnLT8nIiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAkTUFO SUZFU1RfVE9PTCAnLT8nIDI+Y29uZnRlc3QuZXJyID4gY29uZnRlc3Qub3V0Ci0rICBjYXQgY29u ZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgIGlmICRHUkVQICdNYW5pZmVzdCBUb29s JyBjb25mdGVzdC5vdXQgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgbHRfY3ZfcGF0aF9tYWluZmVz dF90b29sPXllcwotKyAgZmkKLSsgIHJtIC1mIGNvbmZ0ZXN0Kl0pCi0raWYgdGVzdCAieCRsdF9j dl9wYXRoX21haW5mZXN0X3Rvb2wiICE9IHh5ZXM7IHRoZW4KLSsgIE1BTklGRVNUX1RPT0w9Ogot K2ZpCi0rX0xUX0RFQ0woW10sIFtNQU5JRkVTVF9UT09MXSwgWzFdLCBbTWFuaWZlc3QgdG9vbF0p ZG5sCi0rXSkjIF9MVF9QQVRIX01BTklGRVNUX1RPT0wKLSsKLSsKLSsjIExUX0xJQl9NCi0rIyAt LS0tLS0tLQotKyMgY2hlY2sgZm9yIG1hdGggbGlicmFyeQotK0FDX0RFRlVOKFtMVF9MSUJfTV0s Ci0rW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStMSUJNPQotK2Nhc2UgJGhv c3QgaW4KLSsqLSotYmVvcyogfCAqLSotY2VnY2MqIHwgKi0qLWN5Z3dpbiogfCAqLSotaGFpa3Uq IHwgKi0qLXB3MzIqIHwgKi0qLWRhcndpbiopCi0rICAjIFRoZXNlIHN5c3RlbSBkb24ndCBoYXZl IGxpYm0sIG9yIGRvbid0IG5lZWQgaXQKLSsgIDs7Ci0rKi1uY3Itc3lzdjQuMyopCi0rICBBQ19D SEVDS19MSUIobXcsIF9td3ZhbGlkY2hlY2tsLCBMSUJNPSItbG13IikKLSsgIEFDX0NIRUNLX0xJ QihtLCBjb3MsIExJQk09IiRMSUJNIC1sbSIpCi0rICA7OwotKyopCi0rICBBQ19DSEVDS19MSUIo bSwgY29zLCBMSUJNPSItbG0iKQotKyAgOzsKLStlc2FjCi0rQUNfU1VCU1QoW0xJQk1dKQotK10p IyBMVF9MSUJfTQotKwotKyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0FDX0NIRUNLX0xJQk1dLCBb TFRfTElCX01dKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStk bmwgQUNfREVGVU4oW0FDX0NIRUNLX0xJQk1dLCBbXSkKLSsKLSsKLSsjIF9MVF9DT01QSUxFUl9O T19SVFRJKFtUQUdOQU1FXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStt NF9kZWZ1bihbX0xUX0NPTVBJTEVSX05PX1JUVEldLAotK1ttNF9yZXF1aXJlKFtfTFRfVEFHX0NP TVBJTEVSXSlkbmwKLSsKLStfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9m bGFnLCAkMSk9Ci0rCi0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIGNhc2UgJGNjX2Jh c2VuYW1lIGluCi0rICBudmNjKikKLSsgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25v X2J1aWx0aW5fZmxhZywgJDEpPScgLVhjb21waWxlciAtZm5vLWJ1aWx0aW4nIDs7Ci0rICAqKQot KyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9JyAt Zm5vLWJ1aWx0aW4nIDs7Ci0rICBlc2FjCi0rCi0rICBfTFRfQ09NUElMRVJfT1BUSU9OKFtpZiAk Y29tcGlsZXIgc3VwcG9ydHMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9uc10sCi0rICAgIGx0X2N2 X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zLAotKyAgICBbLWZuby1ydHRpIC1mbm8tZXhj ZXB0aW9uc10sIFtdLAotKyAgICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0 aW5fZmxhZywgJDEpPSIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxh ZywgJDEpIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiXSkKLStmaQotK19MVF9UQUdERUNMKFtu b19idWlsdGluX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWddLCBbMV0s Ci0rCVtDb21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zXSkKLStdKSMg X0xUX0NPTVBJTEVSX05PX1JUVEkKLSsKLSsKLSsjIF9MVF9DTURfR0xPQkFMX1NZTUJPTFMKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0NNRF9HTE9CQUxfU1lNQk9M U10sCi0rW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStBQ19SRVFVSVJFKFtB Q19QUk9HX0NDXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCi0rQUNfUkVRVUlS RShbTFRfUEFUSF9OTV0pZG5sCi0rQUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5sCi0rbTRfcmVx dWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5s Ci0rbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCi0rCi0rIyBDaGVjayBmb3IgY29t bWFuZCB0byBncmFiIHRoZSByYXcgc3ltYm9sIG5hbWUgZm9sbG93ZWQgYnkgQyBzeW1ib2wgZnJv bSBubS4KLStBQ19NU0dfQ0hFQ0tJTkcoW2NvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9t ICRjb21waWxlciBvYmplY3RdKQotK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfcGlwZV0sCi0rWwotKyMgVGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0 IGxlYXN0IGEgZmV3IG9sZCBzeXN0ZW1zLgotKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdo YXQgY291bGQgYmUgb2xkZXIgdGhhbiBVbHRyaXg/ISEgOyldCi0rCi0rIyBDaGFyYWN0ZXIgY2xh c3MgZGVzY3JpYmluZyBOTSBnbG9iYWwgc3ltYm9sIGNvZGVzLgotK3N5bWNvZGU9J1tbQkNERUdS U1RdXScKLSsKLSsjIFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFjY2Vzc2Vk IGRpcmVjdGx5IGZyb20gQy4KLStzeW1wYXQ9J1woW1tfQS1aYS16XV1bW19BLVphLXowLTldXSpc KScKLSsKLSsjIERlZmluZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVzLgotK2Nhc2UgJGhvc3Rf b3MgaW4KLSthaXgqKQotKyAgc3ltY29kZT0nW1tCQ0RUXV0nCi0rICA7OwotK2N5Z3dpbiogfCBt aW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsgIHN5bWNvZGU9J1tbQUJDREdJU1RXXV0nCi0rICA7 OwotK2hwdXgqKQotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgc3lt Y29kZT0nW1tBQkNERUdSU1RdXScKLSsgIGZpCi0rICA7OwotK2lyaXgqIHwgbm9uc3RvcHV4KikK LSsgIHN5bWNvZGU9J1tbQkNERUdSU1RdXScKLSsgIDs7Ci0rb3NmKikKLSsgIHN5bWNvZGU9J1tb QkNERUdRUlNUXV0nCi0rICA7OwotK3NvbGFyaXMqKQotKyAgc3ltY29kZT0nW1tCRFJUXV0nCi0r ICA7OwotK3NjbzMuMnY1KikKLSsgIHN5bWNvZGU9J1tbRFRdXScKLSsgIDs7Ci0rc3lzdjQuMnV3 MiopCi0rICBzeW1jb2RlPSdbW0RUXV0nCi0rICA7OwotK3N5c3Y1KiB8IHNjbzV2NiogfCB1bml4 d2FyZSogfCBPcGVuVU5JWCopCi0rICBzeW1jb2RlPSdbW0FCRFRdXScKLSsgIDs7Ci0rc3lzdjQp Ci0rICBzeW1jb2RlPSdbW0RGTlNUVV1dJwotKyAgOzsKLStlc2FjCi0rCi0rIyBJZiB3ZSdyZSB1 c2luZyBHTlUgbm0sIHRoZW4gdXNlIGl0cyBzdGFuZGFyZCBzeW1ib2wgY29kZXMuCi0rY2FzZSBg JE5NIC1WIDI+JjFgIGluCi0rKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rICBzeW1jb2RlPSdbW0FC Q0RHSVJTVFddXScgOzsKLStlc2FjCi0rCi0rIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJv bCBsaW5lIGludG8gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbi4KLSsjIFNvbWUgc3lzdGVtcyAoZXNw LiBvbiBpYTY0KSBsaW5rIGRhdGEgYW5kIGNvZGUgc3ltYm9scyBkaWZmZXJlbnRseSwKLSsjIHNv IHVzZSB0aGlzIGdlbmVyYWwgYXBwcm9hY2guCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9f Y2RlY2w9InNlZCAtbiAtZSAncy9eVCAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDEoKTsvcCcgLWUg J3MvXiRzeW1jb2RlKiAuKiBcKC4qXCkkL2V4dGVybiBjaGFyIFwxOy9wJyIKLSsKLSsjIFRyYW5z Zm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBzeW1ib2wgbmFtZSBhbmQgc3ltYm9s IGFkZHJlc3MKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0ic2Vk IC1uIC1lICdzL146IFwoW1teIF1dKlwpW1sgXV0qJC8gIHtcXFwiXDFcXFwiLCAodm9pZCAqKSAw fSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFtbXiBdXSpcKSBcKFtbXiBdXSpcKSQvICB7XCJcMlwi LCAodm9pZCAqKSBcJlwyfSwvcCciCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1l X2FkZHJlc3NfbGliX3ByZWZpeD0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpW1sgXV0qJC8g IHtcXFwiXDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFtbXiBdXSpc KSBcKGxpYltbXiBdXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCcgLWUgJ3MvXiRz eW1jb2RlKiBcKFtbXiBdXSpcKSBcKFtbXiBdXSpcKSQvICB7XCJsaWJcMlwiLCAodm9pZCAqKSBc JlwyfSwvcCciCi0rCi0rIyBIYW5kbGUgQ1JMRiBpbiBtaW5ndyB0b29sIGNoYWluCi0rb3B0X2Ny PQotK2Nhc2UgJGJ1aWxkX29zIGluCi0rbWluZ3cqKQotKyAgb3B0X2NyPWAkRUNITyAneFx7MCwx XH0nIHwgdHIgeCAnXDAxNSdgICMgb3B0aW9uIGNyIGluIHJlZ2V4cAotKyAgOzsKLStlc2FjCi0r Ci0rIyBUcnkgd2l0aG91dCBhIHByZWZpeCB1bmRlcnNjb3JlLCB0aGVuIHdpdGggaXQuCi0rZm9y IGFjX3N5bXByZnggaW4gIiIgIl8iOyBkbwotKwotKyAgIyBUcmFuc2Zvcm0gc3ltY29kZSwgc3lt cGF0LCBhbmQgc3ltcHJmeCBpbnRvIGEgcmF3IHN5bWJvbCBhbmQgYSBDIHN5bWJvbC4KLSsgIHN5 bXhmcm09IlxcMSAkYWNfc3ltcHJmeFxcMiBcXDIiCi0rCi0rICAjIFdyaXRlIHRoZSByYXcgYW5k IEMgaWRlbnRpZmllcnMuCi0rICBpZiB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJNUyBk dW1wYmluIjsgdGhlbgotKyAgICAjIEZha2UgaXQgZm9yIGR1bXBiaW4gYW5kIHNheSBUIGZvciBh bnkgbm9uLXN0YXRpYyBmdW5jdGlvbgotKyAgICAjIGFuZCBEIGZvciBhbnkgZ2xvYmFsIHZhcmlh YmxlLgotKyAgICAjIEFsc28gZmluZCBDKysgYW5kIF9fZmFzdGNhbGwgc3ltYm9scyBmcm9tIE1T VkMrKywKLSsgICAgIyB3aGljaCBzdGFydCB3aXRoIEAgb3IgPy4KLSsgICAgbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfcGlwZT0iJEFXSyBbJyJcCi0rIiAgICAge2xhc3Rfc2VjdGlvbj1zZWN0aW9u OyBzZWN0aW9uPVwkIDN9OyJcCi0rIiAgICAgL1NlY3Rpb24gbGVuZ3RoIC4qI3JlbG9jcy4qKHBp Y2sgYW55KS97aGlkZVtsYXN0X3NlY3Rpb25dPTF9OyJcCi0rIiAgICAgXCQgMCF+L0V4dGVybmFs ICpcfC97bmV4dH07IlwKLSsiICAgICAvIDArIFVOREVGIC97bmV4dH07IC8gVU5ERUYgXChbXnxd XCkqKCkve25leHR9OyJcCi0rIiAgICAge2lmKGhpZGVbc2VjdGlvbl0pIG5leHR9OyJcCi0rIiAg ICAge2Y9MH07IFwkIDB+L1woXCkuKlx8L3tmPTF9OyB7cHJpbnRmIGYgPyBcIlQgXCIgOiBcIkQg XCJ9OyJcCi0rIiAgICAge3NwbGl0KFwkIDAsIGEsIC9cfHxcci8pOyBzcGxpdChhWzJdLCBzKX07 IlwKLSsiICAgICBzWzFdfi9eW0A/XS97cHJpbnQgc1sxXSwgc1sxXTsgbmV4dH07IlwKLSsiICAg ICBzWzFdfnByZngge3NwbGl0KHNbMV0sdCxcIkBcIik7IHByaW50IHRbMV0sIHN1YnN0cih0WzFd LGxlbmd0aChwcmZ4KSl9IlwKLSsiICAgICAnIHByZng9XiRhY19zeW1wcmZ4XSIKLSsgIGVsc2UK LSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0ic2VkIC1uIC1lICdzL14uKltbCSBd XVwoJHN5bWNvZGUkc3ltY29kZSpcKVtbCSBdXVtbCSBdXSokYWNfc3ltcHJmeCRzeW1wYXQkb3B0 X2NyJC8kc3lteGZybS9wJyIKLSsgIGZpCi0rICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBl PSIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSB8IHNlZCAnLyBfX2dudV9sdG8vZCciCi0r Ci0rICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBwaXBlIHdvcmtzIGNvcnJlY3RseS4KLSsgIHBp cGVfd29ya3M9bm8KLSsKLSsgIHJtIC1mIGNvbmZ0ZXN0KgotKyAgY2F0ID4gY29uZnRlc3QuJGFj X2V4dCA8PF9MVF9FT0YKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiIHsKLSsjZW5k aWYKLStjaGFyIG5tX3Rlc3RfdmFyOwotK3ZvaWQgbm1fdGVzdF9mdW5jKHZvaWQpOwotK3ZvaWQg bm1fdGVzdF9mdW5jKHZvaWQpe30KLSsjaWZkZWYgX19jcGx1c3BsdXMKLSt9Ci0rI2VuZGlmCi0r aW50IG1haW4oKXtubV90ZXN0X3Zhcj0nYSc7bm1fdGVzdF9mdW5jKCk7cmV0dXJuKDApO30KLStf TFRfRU9GCi0rCi0rICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgotKyAgICAjIE5v dyB0cnkgdG8gZ3JhYiB0aGUgc3ltYm9scy4KLSsgICAgbmxpc3Q9Y29uZnRlc3Qubm0KLSsgICAg aWYgQUNfVFJZX0VWQUwoTk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAiJGx0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3BpcGUiIFw+ICRubGlzdCkgJiYgdGVzdCAtcyAiJG5saXN0IjsgdGhlbgotKyAg ICAgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCi0rICAgICAgaWYg c29ydCAiJG5saXN0IiB8IHVuaXEgPiAiJG5saXN0IlQ7IHRoZW4KLSsJbXYgLWYgIiRubGlzdCJU ICIkbmxpc3QiCi0rICAgICAgZWxzZQotKwlybSAtZiAiJG5saXN0IlQKLSsgICAgICBmaQotKwot KyAgICAgICMgTWFrZSBzdXJlIHRoYXQgd2Ugc25hZ2dlZCBhbGwgdGhlIHN5bWJvbHMgd2UgbmVl ZC4KLSsgICAgICBpZiAkR1JFUCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsg dGhlbgotKwlpZiAkR1JFUCAnIG5tX3Rlc3RfZnVuYyQnICIkbmxpc3QiID4vZGV2L251bGw7IHRo ZW4KLSsJICBjYXQgPDxfTFRfRU9GID4gY29uZnRlc3QuJGFjX2V4dAotKy8qIEtlZXAgdGhpcyBj b2RlIGluIHN5bmMgYmV0d2VlbiBsaWJ0b29sLm00LCBsdG1haW4sIGx0X3N5c3RlbS5oLCBhbmQg dGVzdHMuICAqLwotKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX0NZR1dJTl9fKSB8 fCBkZWZpbmVkKF9XSU4zMl9XQ0UpCi0rLyogREFUQSBpbXBvcnRzIGZyb20gRExMcyBvbiBXSU4z MiBjb24ndCBiZSBjb25zdCwgYmVjYXVzZSBydW50aW1lCi0rICAgcmVsb2NhdGlvbnMgYXJlIHBl cmZvcm1lZCAtLSBzZWUgbGQncyBkb2N1bWVudGF0aW9uIG9uIHBzZXVkby1yZWxvY3MuICAqLwot KyMgZGVmaW5lIExUQCZ0QF9ETFNZTV9DT05TVAotKyNlbGlmIGRlZmluZWQoX19vc2ZfXykKLSsv KiBUaGlzIHN5c3RlbSBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCByZWxvY2F0aW9ucyBpbiBjb25z dCBkYXRhLiAgKi8KLSsjIGRlZmluZSBMVEAmdEBfRExTWU1fQ09OU1QKLSsjZWxzZQotKyMgZGVm aW5lIExUQCZ0QF9ETFNZTV9DT05TVCBjb25zdAotKyNlbmRpZgotKwotKyNpZmRlZiBfX2NwbHVz cGx1cwotK2V4dGVybiAiQyIgewotKyNlbmRpZgotKwotK19MVF9FT0YKLSsJICAjIE5vdyBnZW5l cmF0ZSB0aGUgc3ltYm9sIGZpbGUuCi0rCSAgZXZhbCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NkZWNsIicgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4 dCcKLSsKLSsJICBjYXQgPDxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsvKiBUaGUg bWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gICovCi0rTFRAJnRAX0RM U1lNX0NPTlNUIHN0cnVjdCB7Ci0rICBjb25zdCBjaGFyICpuYW1lOwotKyAgdm9pZCAgICAgICAq YWRkcmVzczsKLSt9Ci0rbHRfX1BST0dSQU1fX0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tbXV0gPQot K3sKLSsgIHsgIkBQUk9HUkFNQCIsICh2b2lkICopIDAgfSwKLStfTFRfRU9GCi0rCSAgJFNFRCAi cy9eJHN5bWNvZGUkc3ltY29kZSogXCguKlwpIFwoLipcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBc JlwyfSwvIiA8ICIkbmxpc3QiIHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0Ci0r CSAgY2F0IDw8XF9MVF9FT0YgPj4gY29uZnRlc3QuJGFjX2V4dAotKyAgezAsICh2b2lkICopIDB9 Ci0rfTsKLSsKLSsvKiBUaGlzIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5r ZXIgKi8KLSsjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5ECi0rc3RhdGljIGNvbnN0IHZvaWQgKmx0 X3ByZWxvYWRlZF9zZXR1cCgpIHsKLSsgIHJldHVybiBsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRl ZF9zeW1ib2xzOwotK30KLSsjZW5kaWYKLSsKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSt9Ci0rI2Vu ZGlmCi0rX0xUX0VPRgotKwkgICMgTm93IHRyeSBsaW5raW5nIHRoZSB0d28gZmlsZXMuCi0rCSAg bXYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdHN0bS4kYWNfb2JqZXh0Ci0rCSAgbHRfZ2xvYnN5 bV9zYXZlX0xJQlM9JExJQlMKLSsJICBsdF9nbG9ic3ltX3NhdmVfQ0ZMQUdTPSRDRkxBR1MKLSsJ ICBMSUJTPSJjb25mdHN0bS4kYWNfb2JqZXh0IgotKwkgIENGTEFHUz0iJENGTEFHUyRfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkiCi0rCSAgaWYgQUNfVFJZ X0VWQUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbgotKwkg ICAgcGlwZV93b3Jrcz15ZXMKLSsJICBmaQotKwkgIExJQlM9JGx0X2dsb2JzeW1fc2F2ZV9MSUJT Ci0rCSAgQ0ZMQUdTPSRsdF9nbG9ic3ltX3NhdmVfQ0ZMQUdTCi0rCWVsc2UKLSsJICBlY2hvICJj YW5ub3QgZmluZCBubV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+JkFTX01FU1NBR0VfTE9HX0ZECi0r CWZpCi0rICAgICAgZWxzZQotKwllY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X3ZhciBpbiAkbmxp c3QiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAgICBmaQotKyAgICBlbHNlCi0rICAgICAgZWNo byAiY2Fubm90IHJ1biAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgPiZBU19NRVNTQUdF X0xPR19GRAotKyAgICBmaQotKyAgZWxzZQotKyAgICBlY2hvICIkcHJvZ25hbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAgY2F0IGNvbmZ0ZXN0LiRhY19l eHQgPiY1Ci0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KiBjb25mdHN0KgotKwotKyAgIyBEbyBu b3QgdXNlIHRoZSBnbG9iYWxfc3ltYm9sX3BpcGUgdW5sZXNzIGl0IHdvcmtzLgotKyAgaWYgdGVz dCAiJHBpcGVfd29ya3MiID0geWVzOyB0aGVuCi0rICAgIGJyZWFrCi0rICBlbHNlCi0rICAgIGx0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9Ci0rICBmaQotK2RvbmUKLStdKQotK2lmIHRlc3Qg LXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgotKyAgbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfdG9fY2RlY2w9Ci0rZmkKLStpZiB0ZXN0IC16ICIkbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfcGlwZSRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCI7IHRoZW4KLSsg IEFDX01TR19SRVNVTFQoZmFpbGVkKQotK2Vsc2UKLSsgIEFDX01TR19SRVNVTFQob2spCi0rZmkK LSsKLSsjIFJlc3BvbnNlIGZpbGUgc3VwcG9ydC4KLStpZiB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJm YWNlIiA9ICJNUyBkdW1wYmluIjsgdGhlbgotKyAgbm1fZmlsZV9saXN0X3NwZWM9J0AnCi0rZWxp ZiAkTk0gLS1oZWxwIDI+L2Rldi9udWxsIHwgZ3JlcCAnW1tAXV1GSUxFJyA+L2Rldi9udWxsOyB0 aGVuCi0rICBubV9maWxlX2xpc3Rfc3BlYz0nQCcKLStmaQotKwotK19MVF9ERUNMKFtnbG9iYWxf c3ltYm9sX3BpcGVdLCBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sIFsxXSwKLSsgICAg W1Rha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJv bHMgYW5kIEMgbmFtZXNdKQotK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NkZWNsXSwgW2x0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsXSwgWzFdLAotKyAgICBbVHJhbnNmb3JtIHRo ZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbl0pCi0rX0xUX0RFQ0woW2ds b2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NdLAotKyAgICBbbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfdG9fY19uYW1lX2FkZHJlc3NdLCBbMV0sCi0rICAgIFtUcmFuc2Zvcm0gdGhlIG91dHB1 dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXJdKQotK19MVF9ERUNMKFtnbG9iYWxfc3lt Ym9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXhdLAotKyAgICBbbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeF0sIFsxXSwKLSsgICAgW1RyYW5z Zm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpciB3aGVuIGxpYiBw cmVmaXggaXMgbmVlZGVkXSkKLStfTFRfREVDTChbXSwgW25tX2ZpbGVfbGlzdF9zcGVjXSwgWzFd LAotKyAgICBbU3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzIGZvciAkTk1d KQotK10pICMgX0xUX0NNRF9HTE9CQUxfU1lNQk9MUwotKwotKwotKyMgX0xUX0NPTVBJTEVSX1BJ QyhbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihb X0xUX0NPTVBJTEVSX1BJQ10sCi0rW200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAot K19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPQotK19MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0KLStfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSk9Ci0rCi0rbTRfaWYoWyQxXSwgW0NYWF0sIFsKLSsgICMgQysrIHNwZWNpZmljIGNhc2Vz IGZvciBwaWMsIHN0YXRpYywgd2wsIGV0Yy4KLSsgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVu Ci0rICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKyAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rCi0rICAg IGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4KikKLSsgICAgICAjIEFsbCBBSVggY29kZSBpcyBQ SUMuCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBu b3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFt aWdhb3MqKQotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgcG93ZXJwYykKLSsgICAg ICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0Ci0rICAgICAg ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsgICAg ICAgIDs7Ci0rICAgICAgbTY4aykKLSsgICAgICAgICAgICAjIEZJWE1FOiB3ZSBuZWVkIGF0IGxl YXN0IDY4MDIwIGNvZGUgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcywgYnV0Ci0rICAgICAgICAg ICAgIyBhZGRpbmcgdGhlIGAtbTY4MDIwJyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBh bnl0aGluZyBiZXR0ZXIsCi0rICAgICAgICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KLSsgICAgICAg ICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1tNjgwMjAgLXJlc2lk ZW50MzIgLW1hbHdheXMtcmVzdG9yZS1hNCcKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAg ICAgIDs7Ci0rCi0rICAgIGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9z ZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhl c2UgT1Nlcy4KLSsgICAgICA7OwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgb3MyKiB8IHB3MzIq IHwgY2VnY2MqKQotKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxl IGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNp b24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAg ICAgICMgQWx0aG91Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwgbmVlZCB0 aGlzIGZvciBvbGQtc3R5bGUKLSsgICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQpIGxpYnJh cmllcwotKyAgICAgIG00X2lmKFskMV0sIFtHQ0pdLCBbXSwKLSsJW19MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLURETExfRVhQT1JUJ10pCi0rICAgICAgOzsKLSsgICAgZGFy d2luKiB8IHJoYXBzb2R5KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBs YXRmb3JtCi0rICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBm aWxlcwotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZuby1j b21tb24nCi0rICAgICAgOzsKLSsgICAgKmRqZ3BwKikKLSsgICAgICAjIERKR1BQIGRvZXMgbm90 IHN1cHBvcnQgc2hhcmVkIGxpYnJhcmllcyBhdCBhbGwKLSsgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9Ci0rICAgICAgOzsKLSsgICAgaGFpa3UqKQotKyAgICAgICMg UElDIGlzIHRoZSBkZWZhdWx0IGZvciBIYWlrdS4KLSsgICAgICAjIFRoZSAiLXN0YXRpYyIgZmxh ZyBleGlzdHMsIGJ1dCBpcyBicm9rZW4uCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYywgJDEpPQotKyAgICAgIDs7Ci0rICAgIGludGVyaXhbWzMtOV1dKikKLSsgICAg ICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBj b2RlLgotKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBy dW50aW1lLgotKyAgICAgIDs7Ci0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91 c3IvbmVjOyB0aGVuCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0tS2Nv bmZvcm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBocHV4KikKLSsgICAgICAjIFBJ QyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQK LSsgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1 dCB0aGUgcGljIGZsYWcKLSsgICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBh ZmZlY3RzIGlubGluaW5nLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2 NCopCi0rCTs7Ci0rICAgICAgKikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctZlBJQycKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgKnFueCogfCAq bnRvKikKLSsgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hh cmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQotKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsg ICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQn Ci0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1mUElDJwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgY2Fz ZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeFtbNC05XV0qKQotKwkjIEFsbCBBSVggY29kZSBpcyBQ SUMuCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSAgIyBBSVggNSBub3cg c3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKwllbHNlCi0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYywgJDEpPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCi0rCWZpCi0r CTs7Ci0rICAgICAgY2hvcnVzKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJY3hjaDY4KikK LSsJICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgotKwkgICMgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSItLW5vX2F1dG9faW5zdGFudGlhdGlvbiAtdSBfX21haW4g LXUgX19wcmVtYWluIC11IF9hYm9ydCAtciAkQ09PTF9ESVIvbGliL2xpYk9yYi5hICRNVk1FX0RJ Ui9saWIvQ0MvbGliQy5hICRNVk1FX0RJUi9saWIvY2xhc3NpeC9saWJjeC5zLmEiCi0rCSAgOzsK LSsJZXNhYwotKwk7OwotKyAgICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiogfCBj ZWdjYyopCi0rCSMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxs IHdoZXRoZXIgaXQgaXMgYmVpbmcKLSsJIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChh bmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KLSsJbTRfaWYoWyQxXSwgW0dD Sl0sIFtdLAotKwkgIFtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1ERExM X0VYUE9SVCddKQotKwk7OwotKyAgICAgIGRndXgqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgot KwkgIGVjKysqKQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct S1BJQycKLSsJICAgIDs7Ci0rCSAgZ2hjeCopCi0rCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21w aWxlcgotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJwot KwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGZyZWVic2Qq IHwgZHJhZ29uZmx5KikKLSsJIyBGcmVlQlNEIHVzZXMgR05VIEMrKwotKwk7OwotKyAgICAgIGhw dXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEND KikKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9 YXJjaGl2ZScKLSsJICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgotKwkgICAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JytaJwotKwkgICAgZmkKLSsJ ICAgIDs7Ci0rCSAgYUNDKikKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwg JDEpPSctV2wsJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp PScke3dsfS1hICR7d2x9YXJjaGl2ZScKLSsJICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rCSAgICBo cHBhKjY0KnxpYTY0KikKLSsJICAgICAgIyArWiB0aGUgZGVmYXVsdAotKwkgICAgICA7OwotKwkg ICAgKikKLSsJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPScrWicK LSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVz YWMKLSsJOzsKLSsgICAgICBpbnRlcml4KikKLSsJIyBUaGlzIGlzIGM4OSwgd2hpY2ggaXMgTVMg VmlzdWFsIEMrKyAobm8gc2hhcmVkIGxpYnMpCi0rCSMgQW55b25lIHdhbnRzIHRvIGRvIGEgcG9y dD8KLSsJOzsKLSsgICAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKwljYXNlICRj Y19iYXNlbmFtZSBpbgotKwkgIENDKikKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctbm9uX3NoYXJlZCcKLSsJICAgICMgQ0MgcGljIGZsYWcgLUtQSUMgaXMgdGhlIGRl ZmF1bHQuCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAg bGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQotKwljYXNlICRjY19iYXNl bmFtZSBpbgotKwkgIEtDQyopCi0rCSAgICAjIEtBSSBDKysgQ29tcGlsZXIKLSsJICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctLWJhY2tlbmQgLVdsLCcKLSsJICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCi0rCSAgICA7OwotKwkg IGVjcGMqICkKLSsJICAgICMgb2xkIEludGVsIEMrKyBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1 cHBvcnRlZCAtS1BJQy4KLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEp PSctV2wsJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJ QycKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRp YycKLSsJICAgIDs7Ci0rCSAgaWNwYyogKQotKwkgICAgIyBJbnRlbCBDKyssIHVzZWQgdG8gYmUg aW5jb21wYXRpYmxlIHdpdGggR0NDLgotKwkgICAgIyBJQ0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQ SUMgYW55IG1vcmUuCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0n LVdsLCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMn Ci0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMn Ci0rCSAgICA7OwotKwkgIHBnQ0MqIHwgcGdjcHAqKQotKwkgICAgIyBQb3J0bGFuZCBHcm91cCBD KysgY29tcGlsZXIKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSct V2wsJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZnBpYycK LSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMn Ci0rCSAgICA7OwotKwkgIGN4eCopCi0rCSAgICAjIENvbXBhcSBDKysKLSsJICAgICMgTWFrZSBz dXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKLSsJ ICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KLSsJICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KLSsJICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rCSAgICA7OwotKwkg IHhsYyogfCB4bEMqIHwgYmd4bFtbY0NdXSogfCBtcGl4bFtbY0NdXSopCi0rCSAgICAjIElCTSBY TCA4LjAsIDkuMCBvbiBQUEMgYW5kIEJsdWVHZW5lCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0nLXFwaWMnCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1xc3RhdGljbGluaycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGNhc2UgYCRD QyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKwkgICAgKlN1blwgQyopCi0rCSAgICAgICMgU3VuIEMr KyA1LjkKLSsJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJ QycKLSsJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0 YXRpYycKLSsJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0 aW9uIGxkICcKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsK LSsgICAgICBseW54b3MqKQotKwk7OwotKyAgICAgIG04OGsqKQotKwk7OwotKyAgICAgIG12cyop Ci0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgY3h4KikKLSsJICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0nLVcgYyxleHBvcnRhbGwnCi0rCSAgICA7OwotKwkgICop Ci0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbmV0YnNkKikKLSsJOzsKLSsgICAgICAq cW54KiB8ICpudG8qKQotKyAgICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBk ZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKLSsgICAgICAgICMgaXQgd2lsbCBj b3JlZHVtcC4KLSsgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LWZQSUMgLXNoYXJlZCcKLSsgICAgICAgIDs7Ci0rICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUq KQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEtDQyopCi0rCSAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLS1iYWNrZW5kIC1XbCwnCi0rCSAgICA7OwotKwkgIFJD QyopCi0rCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctcGljJwotKwkgICAgOzsKLSsJICBjeHgqKQotKwkgICAgIyBE aWdpdGFsL0NvbXBhcSBDKysKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwg JDEpPSctV2wsJwotKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAgSXQg YXBwZWFycyB0aGF0IGFsbCBBbHBoYQotKwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0IFVu aXggb2JqZWN0cyBhcmUgUElDLgotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSct bm9uX3NoYXJlZCcKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsg ICAgICBwc29zKikKLSsJOzsKLSsgICAgICBzb2xhcmlzKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUg aW4KLSsJICBDQyogfCBzdW5DQyopCi0rCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRl cmxpbmUgQysrCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1L UElDJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0 YXRpYycKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlv biBsZCAnCi0rCSAgICA7OwotKwkgIGdjeCopCi0rCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21w aWxlcgotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctUElDJwot KwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHN1bm9zNCop Ci0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgIyBTdW4gQysrIDQueAot KwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJwotKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICAg IDs7Ci0rCSAgbGNjKikKLSsJICAgICMgTHVjaWQKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLXBpYycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVz YWMKLSsJOzsKLSsgICAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYq IHwgT3BlblVOSVgqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikKLSsJICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwllc2FjCi0r CTs7Ci0rICAgICAgdGFuZGVtKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBOQ0MqKQot KwkgICAgIyBOb25TdG9wLVVYIE5DQyAzLjIwCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNh YwotKwk7OwotKyAgICAgIHZ4d29ya3MqKQotKwk7OwotKyAgICAgICopCi0rCV9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KLSsJOzsKLSsgICAgZXNh YwotKyAgZmkKLStdLAotK1sKLSsgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKyAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rCi0rICAgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgICAgICBhaXgqKQotKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KLSsg ICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBw b3J0cyBJQTY0IHByb2Nlc3NvcgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2Fvcyop Ci0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAg ICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwotKyAgICAgICAgOzsK LSsgICAgICBtNjhrKQotKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgw MjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKLSsgICAgICAgICAgICAjIGFk ZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5n IGJldHRlciwKLSsgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgotKyAgICAgICAgICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLW02ODAyMCAtcmVzaWRlbnQzMiAt bWFsd2F5cy1yZXN0b3JlLWE0JwotKyAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsK LSsKLSsgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBv c2Y0KiB8IG9zZjUqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2Vz LgotKyAgICAgIDs7Ci0rCi0rICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBj ZWdjYyopCi0rICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2Fu IHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBp biBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAg IyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMg Zm9yIG9sZC1zdHlsZQotKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVz Ci0rICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAotKwlbX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKLSsgICAgICA7OwotKwotKyAgICBkYXJ3 aW4qIHwgcmhhcHNvZHkqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxh dGZvcm0KLSsgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZp bGVzCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNv bW1vbicKLSsgICAgICA7OwotKwotKyAgICBoYWlrdSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRl ZmF1bHQgZm9yIEhhaWt1LgotKyAgICAgICMgVGhlICItc3RhdGljIiBmbGFnIGV4aXN0cywgYnV0 IGlzIGJyb2tlbi4KLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAk MSk9Ci0rICAgICAgOzsKLSsKLSsgICAgaHB1eCopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1 bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0Ci0rICAgICAgIyBQQSBI UC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFn Ci0rICAgICAgIyBzZXRzIHRoZSBkZWZhdWx0IFRMUyBtb2RlbCBhbmQgYWZmZWN0cyBpbmxpbmlu Zy4KLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqKQotKwkjICtaIHRo ZSBkZWZhdWx0Ci0rCTs7Ci0rICAgICAgKikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPSctZlBJQycKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAg aW50ZXJpeFtbMy05XV0qKQotKyAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9w dGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUuCi0rICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0 ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCi0rICAgICAgOzsKLSsKLSsgICAgbXNkb3Nk amdwcCopCi0rICAgICAgIyBKdXN0IGJlY2F1c2Ugd2UgdXNlIEdDQyBkb2Vzbid0IG1lYW4gd2Ug c3VkZGVubHkgZ2V0IHNoYXJlZCBsaWJyYXJpZXMKLSsgICAgICAjIG9uIHN5c3RlbXMgdGhhdCBk b24ndCBzdXBwb3J0IHRoZW0uCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nh bl9idWlsZF9zaGFyZWQsICQxKT1ubwotKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KLSsgICAgICA7 OwotKwotKyAgICAqbnRvKiB8ICpxbngqKQotKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0 IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCi0rICAgICAgIyBp dCB3aWxsIGNvcmVkdW1wLgotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMs ICQxKT0nLWZQSUMgLXNoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAg ICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSk9LUtjb25mb3JtX3BpYwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAg KikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwot KyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAg bnZjYyopICMgQ3VkYSBDb21waWxlciBEcml2ZXIgMi4yCi0rICAgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1YbGlua2VyICcKLSsgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9Jy1YY29tcGlsZXIgLWZQSUMnCi0rICAgICAgOzsKLSsgICAg ZXNhYwotKyAgZWxzZQotKyAgICAjIFBPUlRNRSBDaGVjayBmb3IgZmxhZyB0byBwYXNzIGxpbmtl ciBmbGFncyB0aHJvdWdoIHRoZSBzeXN0ZW0gY29tcGlsZXIuCi0rICAgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgYWl4KikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQx KT0nLVdsLCcKLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJ WCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAn Ci0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiog fCBvczIqIHwgY2VnY2MqKQotKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJj ZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBp bmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUp LgotKyAgICAgIG00X2lmKFskMV0sIFtHQ0pdLCBbXSwKLSsJW19MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLURETExfRVhQT1JUJ10pCi0rICAgICAgOzsKLSsKLSsgICAgaHB1 eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQg SFAtVVggYW5kIDY0LWJpdCBIUC1VWCwgYnV0Ci0rICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgot KyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCp8aWE2NCopCi0rCSMgK1og dGhlIGRlZmF1bHQKLSsJOzsKLSsgICAgICAqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSk9JytaJwotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICAjIElzIHRoZXJlIGEg YmV0dGVyIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIHRoYXQgd29ya3Mgd2l0aCB0aGUgYnVuZGxl ZCBDQz8KLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7 d2x9LWEgJHt3bH1hcmNoaXZlJwotKyAgICAgIDs7Ci0rCi0rICAgIGlyaXg1KiB8IGlyaXg2KiB8 IG5vbnN0b3B1eCopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9 Jy1XbCwnCi0rICAgICAgIyBQSUMgKHdpdGggLUtQSUMpIGlzIHRoZSBkZWZhdWx0LgotKyAgICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0r ICAgICAgOzsKLSsKLSsgICAgbGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251 KQotKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgIyBvbGQgSW50ZWwgZm9yIHg4 Nl82NCB3aGljaCBzdGlsbCBzdXBwb3J0ZWQgLUtQSUMuCi0rICAgICAgZWNjKikKLSsJX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rCV9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9zdGF0aWMsICQxKT0nLXN0YXRpYycKLSsgICAgICAgIDs7Ci0rICAgICAgIyBpY2MgdXNlZCB0 byBiZSBpbmNvbXBhdGlibGUgd2l0aCBHQ0MuCi0rICAgICAgIyBJQ0MgMTAgZG9lc24ndCBhY2Nl cHQgLUtQSUMgYW55IG1vcmUuCi0rICAgICAgaWNjKiB8IGlmb3J0KikKLSsJX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLWZQSUMnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0 aWMsICQxKT0nLXN0YXRpYycKLSsgICAgICAgIDs7Ci0rICAgICAgIyBMYWhleSBGb3J0cmFuIDgu MS4KLSsgICAgICBsZjk1KikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9 Jy1XbCwnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLS1zaGFyZWQn Ci0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLS1zdGF0aWMnCi0r CTs7Ci0rICAgICAgbmFnZm9yKikKLSsJIyBOQUcgRm9ydHJhbiBjb21waWxlcgotKwlfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLC1XbCwsJwotKwlfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1QSUMnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCTs7Ci0rICAgICAgcGdjYyogfCBwZ2Y3Nyog fCBwZ2Y5MCogfCBwZ2Y5NSogfCBwZ2ZvcnRyYW4qKQotKyAgICAgICAgIyBQb3J0bGFuZCBHcm91 cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdjYyBjb21waWxlciwKLSsJIyB3aGljaCBs b29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3dsLCAkMSk9Jy1XbCwnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LWZwaWMnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0 aWMnCi0rICAgICAgICA7OwotKyAgICAgIGNjYyopCi0rICAgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMg UElDLgotKyAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSct bm9uX3NoYXJlZCcKLSsgICAgICAgIDs7Ci0rICAgICAgeGwqIHwgYmd4bCogfCBiZ2YqIHwgbXBp eGwqKQotKwkjIElCTSBYTCBDIDguMC9Gb3J0cmFuIDEwLjEsIDExLjEgb24gUFBDIGFuZCBCbHVl R2VuZQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcXBpYycKLSsJX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctcXN0YXRpY2xpbmsnCi0rCTs7Ci0rICAgICAg KikKLSsJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rCSpTdW5cIEYqIHwgKlN1bipG b3J0cmFuKikKLSsJICAjIFN1biBGb3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBm bGFncyB0byB0aGUgbGlua2VyCi0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctS1BJQycKLSsJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9 Jy1Cc3RhdGljJwotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPScnCi0r CSAgOzsKLSsJKlN1blwgQyopCi0rCSAgIyBTdW4gQyA1LjkKLSsJICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3dsLCAkMSk9Jy1XbCwnCi0rCSAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGVzYWMKLSsg ICAgICA7OwotKwotKyAgICBuZXdzb3M2KQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLUtQSUMnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngq KQotKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQg b3B0aW9uIHRvbywgb3RoZXJ3aXNlCi0rICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgotKyAgICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKLSsg ICAgICA7OwotKwotKyAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICAgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAgIyBBbGwgT1NGLzEgY29k ZSBpcyBQSUMuCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp PSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICByZG9zKikKLSsgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJwotKyAgICAgIDs7 Ci0rCi0rICAgIHNvbGFyaXMqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKT0nLUtQSUMnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctQnN0YXRpYycKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGY3 NyogfCBmOTAqIHwgZjk1KiB8IHN1bmY3NyogfCBzdW5mOTAqIHwgc3VuZjk1KikKLSsJX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICc7OwotKyAgICAgICop Ci0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJzs7Ci0rICAgICAg ZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICcKLSsgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1QSUMnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBzeXN2 NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPSctS1BJQycKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikKLSsgICAg ICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0nLUtjb25mb3JtX3BpYycKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5 c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCi0rICAg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0r Ci0rICAgIHVuaWNvcyopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9z aGFyZWQsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKLSsgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0rCi0rICAg ICopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQs ICQxKT1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rXSkKLStjYXNlICRob3N0X29z IGluCi0rICAjIEZvciBwbGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBp cyBtZWFuaW5nbGVzczoKLSsgICpkamdwcCopCi0rICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0KLSsgICAgOzsKLSsgICopCi0rICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0iJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKUAm dEBtNF9pZihbJDFdLFtdLFsgLURQSUNdLFttNF9pZihbJDFdLFtDWFhdLFsgLURQSUNdLFtdKV0p IgotKyAgICA7OwotK2VzYWMKLSsKLStBQ19DQUNIRV9DSEVDSyhbZm9yICRjb21waWxlciBvcHRp b24gdG8gcHJvZHVjZSBQSUNdLAotKyAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9w aWMsICQxKV0sCi0rICBbX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSRf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSldKQotK19MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0kX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYywg JDEpCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxseSB3 b3Jrcy4KLSsjCi0raWYgdGVzdCAtbiAiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMs ICQxKSI7IHRoZW4KLSsgIF9MVF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBQSUMgZmxh ZyAkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIHdvcmtzXSwKLSsgICAgW19M VF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3MsICQxKV0sCi0rICAgIFskX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpQCZ0QG00X2lmKFskMV0sW10sWyAtRFBJ Q10sW200X2lmKFskMV0sW0NYWF0sWyAtRFBJQ10sW10pXSldLCBbXSwKLSsgICAgW2Nhc2UgJF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSBpbgotKyAgICAgIiIgfCAiICIqKSA7 OwotKyAgICAgKikgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSIgJF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSIgOzsKLSsgICAgIGVzYWNdLAotKyAgICBb X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQotKyAgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ub10pCi0rZmkKLStfTFRfVEFH REVDTChbcGljX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9waWNdLCBbMV0sCi0rCVtBZGRpdGlv bmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHNdKQotKwotK19M VF9UQUdERUNMKFt3bF0sIFtsdF9wcm9nX2NvbXBpbGVyX3dsXSwgWzFdLAotKwlbSG93IHRvIHBh c3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxlcl0pCi0rIwotKyMgQ2hlY2sgdG8g bWFrZSBzdXJlIHRoZSBzdGF0aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0rd2w9JF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpIGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwi JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKVwiCi0rX0xUX0xJTktFUl9P UFRJT04oW2lmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtz XSwKLSsgIF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MsICQxKSwK LSsgICRsdF90bXBfc3RhdGljX2ZsYWcsCi0rICBbXSwKLSsgIFtfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfc3RhdGljLCAkMSk9XSkKLStfTFRfVEFHREVDTChbbGlua19zdGF0aWNfZmxhZ10s IFtsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY10sIFsxXSwKLSsJW0NvbXBpbGVyIGZsYWcgdG8gcHJl dmVudCBkeW5hbWljIGxpbmtpbmddKQotK10pIyBfTFRfQ09NUElMRVJfUElDCi0rCi0rCi0rIyBf TFRfTElOS0VSX1NITElCUyhbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rIyBTZWUgaWYgdGhlIGxpbmtlciBzdXBwb3J0cyBidWlsZGluZyBzaGFyZWQgbGlicmFy aWVzLgotK200X2RlZnVuKFtfTFRfTElOS0VSX1NITElCU10sCi0rW0FDX1JFUVVJUkUoW0xUX1BB VEhfTERdKWRubAotK0FDX1JFUVVJUkUoW0xUX1BBVEhfTk1dKWRubAotK200X3JlcXVpcmUoW19M VF9QQVRIX01BTklGRVNUX1RPT0xdKWRubAotK200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVG QVVMVFNdKWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKLSttNF9yZXF1aXJl KFtfTFRfREVDTF9TRURdKWRubAotK200X3JlcXVpcmUoW19MVF9DTURfR0xPQkFMX1NZTUJPTFNd KWRubAotK200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAotK0FDX01TR19DSEVDS0lO Ryhbd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGli cmFyaWVzXSkKLSttNF9pZihbJDFdLCBbQ1hYXSwgWwotKyAgX0xUX1RBR1ZBUihleHBvcnRfc3lt Ym9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJv bF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3lt Ym9scycKLSsgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNF VF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgYWl4 W1s0LTldXSopCi0rICAgICMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdh bnQgdGhlICItQyIgb3B0aW9uLgotKyAgICAjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwg YnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCi0rICAgICMgQWxzbywgQUlYIG5t IHRyZWF0cyB3ZWFrIGRlZmluZWQgc3ltYm9scyBsaWtlIG90aGVyIGdsb2JhbCBkZWZpbmVkCi0r ICAgICMgc3ltYm9scywgd2hlcmVhcyBHTlUgbm0gbWFya3MgdGhlbSBhcyAiVyIuCi0rICAgIGlm ICROTSAtViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgICBfTFRf VEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZl bmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8 IChcJCAyID09ICJCIikgfHwgKFwkIDIgPT0gIlciKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAh PSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMn Ci0rICAgIGVsc2UKLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0n JE5NIC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09 ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQg MywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRf c3ltYm9scycKLSsgICAgZmkKLSsgICAgOzsKLSsgIHB3MzIqKQotKyAgICBfTFRfVEFHVkFSKGV4 cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0iJGx0ZGxsX2NtZHMiCi0rICAgIDs7Ci0rICBjeWd3aW4q IHwgbWluZ3cqIHwgY2VnY2MqKQotKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICBjbCop IDs7Ci0rICAgICopCi0rICAgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9 JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAt ZSAnXCcnL15bW0JDREdSU11dW1sgXV0vcy8uKltbIF1dXChbW14gXV0qXCkvXDEgREFUQS87cy9e LipbWyBdXV9fbm1fX1woW1teIF1dKlwpW1sgXV1bW14gXV0qL1wxIERBVEEvOy9eSVtbIF1dL2Q7 L15bW0FJVFddXVtbIF1dL3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJv bHMnCi0rICAgICAgX0xUX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKT1bJ1tfXStHTE9CQUxf T0ZGU0VUX1RBQkxFX3xbX10rR0xPQkFMX19bRklEXV8uKnxbX10raGVhZF9bQS1aYS16MC05X10r X2RsbHxbQS1aYS16MC05X10rX2RsbF9pbmFtZSddCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAg ICA7OwotKyAgKikKLSsgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyRO TSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcn cy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgICAgOzsKLSsg IGVzYWMKLStdLCBbCi0rICBydW5wYXRoX3Zhcj0KLSsgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZp bmVkX2ZsYWcsICQxKT0KLSsgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9 bm8KLSsgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9Ci0rICBfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0KLSsgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0 LCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1l cywgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQot KyAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29u dmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBz b3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfYXV0 b21hdGljLCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsg IF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KLSsgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotKyAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9Ci0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT0KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5v Ci0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAot KyAgX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIobGlua19h bGxfZGVwbGlicywgJDEpPXVua25vd24KLSsgIF9MVF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0K LSsgIF9MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rICBfTFRfVEFHVkFSKG9s ZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0KLSsgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVf ZnJvbV9leHBzeW1zX2NtZHMsICQxKT0KLSsgIF9MVF9UQUdWQVIodGhyZWFkX3NhZmVfZmxhZ19z cGVjLCAkMSk9Ci0rICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Ci0r ICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91bGQgYmUgYSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBz eW1ib2xzIHRvIGJlICphbHdheXMqCi0rICAjIGluY2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAot KyAgX0xUX1RBR1ZBUihpbmNsdWRlX2V4cHN5bXMsICQxKT0KLSsgICMgZXhjbHVkZV9leHBzeW1z IGNhbiBiZSBhbiBleHRlbmRlZCByZWdleHAgb2Ygc3ltYm9scyB0byBleGNsdWRlCi0rICAjIGl0 IHdpbGwgYmUgd3JhcHBlZCBieSBgICgnIGFuZCBgKSQnLCBzbyBvbmUgbXVzdCBub3QgbWF0Y2gg YmVnaW5uaW5nIG9yCi0rICAjIGVuZCBvZiBsaW5lLiAgRXhhbXBsZTogYGF8YmN8LipkLionIHdp bGwgZXhjbHVkZSB0aGUgc3ltYm9scyBgYScgYW5kIGBiYycsCi0rICAjIGFzIHdlbGwgYXMgYW55 IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4KLSsgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBzeW1z LCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQotKyAgIyBB bHRob3VnaCBfR0xPQkFMX09GRlNFVF9UQUJMRV8gaXMgYSB2YWxpZCBzeW1ib2wgQyBuYW1lLCBt b3N0IGEub3V0Ci0rICAjIHBsYXRmb3JtcyAoYWIpdXNlIGl0IGluIFBJQyBjb2RlLCBidXQgdGhl aXIgbGlua2VycyBnZXQgY29uZnVzZWQgaWYKLSsgICMgdGhlIHN5bWJvbCBpcyBleHBsaWNpdGx5 IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0YWJsZSBjb2RlIGNhbm5vdAotKyAgIyByZWx5IG9uIHRo aXMgc3ltYm9sIG5hbWUsIGl0J3MgcHJvYmFibHkgZmluZSB0byBuZXZlciBpbmNsdWRlIGl0IGlu Ci0rICAjIHByZWxvYWRlZCBzeW1ib2wgdGFibGVzLgotKyAgIyBFeGNsdWRlIHNoYXJlZCBsaWJy YXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFsaXphdGlvbiBzeW1ib2xzLgotK2RubCBOb3RlIGFsc28g YWRqdXN0IGV4Y2x1ZGVfZXhwc3ltcyBmb3IgQysrIGFib3ZlLgotKyAgZXh0cmFjdF9leHBzeW1z X2NtZHM9Ci0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICBjeWd3aW4qIHwgbWluZ3cqIHwgcHcz MiogfCBjZWdjYyopCi0rICAgICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0 ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKLSsgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1 cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKLSsgICAgIyBNaWNyb3NvZnQgVmlzdWFs IEMrKy4KLSsgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0aGVuCi0rICAgICAgd2l0aF9nbnVf bGQ9bm8KLSsgICAgZmkKLSsgICAgOzsKLSsgIGludGVyaXgqKQotKyAgICAjIHdlIGp1c3QgaG9w ZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkgKD0gTVNWQysrKQotKyAgICB3aXRoX2du dV9sZD15ZXMKLSsgICAgOzsKLSsgIG9wZW5ic2QqKQotKyAgICB3aXRoX2dudV9sZD1ubwotKyAg ICA7OwotKyAgZXNhYwotKwotKyAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKLSsKLSsg ICMgT24gc29tZSB0YXJnZXRzLCBHTlUgbGQgaXMgY29tcGF0aWJsZSBlbm91Z2ggd2l0aCB0aGUg bmF0aXZlIGxpbmtlcgotKyAgIyB0aGF0IHdlJ3JlIGJldHRlciBvZmYgdXNpbmcgdGhlIG5hdGl2 ZSBpbnRlcmZhY2UgZm9yIGJvdGguCi0rICBsdF91c2VfZ251X2xkX2ludGVyZmFjZT1ubwotKyAg aWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBjYXNlICRob3N0X29zIGlu Ci0rICAgICAgYWl4KikKLSsJIyBUaGUgQUlYIHBvcnQgb2YgR05VIGxkIGhhcyBhbHdheXMgYXNw aXJlZCB0byBjb21wYXRpYmlsaXR5Ci0rCSMgd2l0aCB0aGUgbmF0aXZlIGxpbmtlci4gIEhvd2V2 ZXIsIGFzIHRoZSB3YXJuaW5nIGluIHRoZSBHTlUgbGQKLSsJIyBibG9jayBzYXlzLCB2ZXJzaW9u cyBiZWZvcmUgMi4xOS41KiBjb3VsZG4ndCByZWFsbHkgY3JlYXRlIHdvcmtpbmcKLSsJIyBzaGFy ZWQgbGlicmFyaWVzLCByZWdhcmRsZXNzIG9mIHRoZSBpbnRlcmZhY2UgdXNlZC4KLSsJY2FzZSBg JExEIC12IDI+JjFgIGluCi0rCSAgKlwgXChHTlVcIEJpbnV0aWxzXClcIDIuMTkuNSopIDs7Ci0r CSAgKlwgXChHTlVcIEJpbnV0aWxzXClcIDIuW1syLTldXSopIDs7Ci0rCSAgKlwgXChHTlVcIEJp bnV0aWxzXClcIFtbMy05XV0qKSA7OwotKwkgICopCi0rCSAgICBsdF91c2VfZ251X2xkX2ludGVy ZmFjZT15ZXMKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICAqKQotKwlsdF91c2VfZ251 X2xkX2ludGVyZmFjZT15ZXMKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsKLSsgIGlmIHRlc3Qg IiRsdF91c2VfZ251X2xkX2ludGVyZmFjZSIgPSB5ZXM7IHRoZW4KLSsgICAgIyBJZiBhcmNoaXZl X2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKLSsgICAgd2xhcmM9 JyR7d2x9JwotKwotKyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFy ZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQotKyAgICAjIGFyZSByZXNldCBsYXRlciBpZiBzaGFy ZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRoZW0KLSsgICAgIyBoZXJl IGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgotKyAgICBydW5wYXRo X3Zhcj1MRF9SVU5fUEFUSAotKyAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICBfTFRfVEFHVkFSKGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rICAgICMg YW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4KLSsg ICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9u dWxsOyB0aGVuCi0rICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEp PSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9s ZS1hcmNoaXZlJwotKyAgICBlbHNlCi0rICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYywgJDEpPQotKyAgICBmaQotKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8K LSsgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCi0rICAgICAgKkdOVVwgZ29sZCopIHN1cHBvcnRz X2Fub25fdmVyc2lvbmluZz15ZXMgOzsKLSsgICAgICAqXCBbWzAxXV0uKiB8ICpcIDIuW1swLTld XS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNpb25zIDwgMi4xMQotKyAgICAgICpcIDIu MTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3LjMgLi4u Ci0rICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVz IDs7ICMgTWFuZHJha2UgOC4yIC4uLgotKyAgICAgICpcIDIuMTEuKikgOzsgIyBvdGhlciAyLjEx IHZlcnNpb25zCi0rICAgICAgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OwotKyAg ICBlc2FjCi0rCi0rICAgICMgU2VlIGlmIEdOVSBsZCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVz LgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGFpeFtbMy05XV0qKQotKyAgICAgICMgT24g QUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBicm9rZW4KLSsgICAgICBpZiB0ZXN0ICIk aG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwot KwljYXQgPDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogdGhlIEdOVSBsaW5rZXIsIGF0 IGxlYXN0IHVwIHRvIHJlbGVhc2UgMi4xOSwgaXMgcmVwb3J0ZWQKLSsqKiogdG8gYmUgdW5hYmxl IHRvIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KLSsqKiogVGhlcmVm b3JlLCBsaWJ0b29sIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBJZiB5 b3UKLSsqKiogcmVhbGx5IGNhcmUgZm9yIHNoYXJlZCBsaWJyYXJpZXMsIHlvdSBtYXkgd2FudCB0 byBpbnN0YWxsIGJpbnV0aWxzCi0rKioqIDIuMjAgb3IgYWJvdmUsIG9yIG1vZGlmeSB5b3VyIFBB VEggc28gdGhhdCBhIG5vbi1HTlUgbGlua2VyIGlzIGZvdW5kLgotKyoqKiBZb3Ugd2lsbCB0aGVu IG5lZWQgdG8gcmVzdGFydCB0aGUgY29uZmlndXJhdGlvbiBwcm9jZXNzLgotKwotK19MVF9FT0YK LSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAgIGNhc2UgJGhv c3RfY3B1IGluCi0rICAgICAgcG93ZXJwYykKLSsgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFi b3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0Ci0rICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rICAgICAgICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JycKLSsgICAgICAgIDs7Ci0rICAgICAgbTY4aykK LSsgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9v YmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRv dXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9JRCAx IiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJ T04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVm aW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0 YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29i amRpciAmJiBhMml4bGlicmFyeSAtMzIpJwotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAgICAgICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rICAgICAgICA7OwotKyAgICAgIGVzYWMK LSsgICAgICA7OwotKwotKyAgICBiZW9zKikKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAk R1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCV9M VF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKwkjIEpvc2Vw aCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCi0r CSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9u LiAgRklYTUUKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1ub3N0YXJ0ICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAt byAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAg ICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2Vn Y2MqKQotKyAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkg aXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCi0rICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2gg cGF0aCBmb3IgRExMcy4KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtYWxsLXN5bWJvbHMnCi0rICAgICAgX0xUX1RBR1ZB UihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAgX0xUX1RBR1ZB UihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubwotKyAgICAgIF9MVF9UQUdWQVIoZW5hYmxl X3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIo ZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGds b2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tCQ0RHUlNdXVtbIF1dL3MvLipbWyBd XVwoW1teIF1dKlwpL1wxIERBVEEvO3MvXi4qW1sgXV1fX25tX19cKFtbXiBdXSpcKVtbIF1dW1te IF1dKi9cMSBEQVRBLzsvXklbWyBdXS9kOy9eW1tBSVRXXV1bWyBdXS9zLy4qIC8vJ1wnJyB8IHNv cnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICAgIF9MVF9UQUdWQVIoZXhjbHVkZV9l eHBzeW1zLCAkMSk9WydbX10rR0xPQkFMX09GRlNFVF9UQUJMRV98W19dK0dMT0JBTF9fW0ZJRF1f Lip8W19dK2hlYWRfW0EtWmEtejAtOV9dK19kbGx8W0EtWmEtejAtOV9dK19kbGxfaW5hbWUnXQot KwotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2 L251bGw7IHRoZW4KLSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRp ci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWlt cGxpYiAtWGxpbmtlciAkbGliJwotKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVh ZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBp czsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21k cywgJDEpPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsg dGhlbgotKwkgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsK LSsJZWxzZQotKwkgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwot KwkgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0r CWZpfgotKwkkQ0MgLXNoYXJlZCAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0t ZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxp YicKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICBm aQotKyAgICAgIDs7Ci0rCi0rICAgIGhhaWt1KikKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICBfTFRfVEFHVkFSKGxpbmtf YWxsX2RlcGxpYnMsICQxKT15ZXMKLSsgICAgICA7OwotKwotKyAgICBpbnRlcml4W1szLTldXSop Ci0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotKyAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rICAg ICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKLSsg ICAgICAjIEhhY2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVz ZSBvZiBhIGJyb2tlbiBnY2MuCi0rICAgICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFy ZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQotKyAgICAgICMgZGVmYXVs dCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBt ZW1vcnkKLSsgICAgICAjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2 b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCi0rICAgICAgIyAyNTYgS2lCLWFsaWduZWQgaW1h Z2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluawotKyAgICAg ICMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJr KDIpIHNwYWNlLgotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwk c29uYW1lICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwq IDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRf b2JqZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9s cy1maWxlLCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBl eHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRs aWInCi0rICAgICAgOzsKLSsKLSsgICAgZ251KiB8IGxpbnV4KiB8IHRwZiogfCBrKmJzZCotZ251 IHwga29wZW5zb2xhcmlzKi1nbnUpCi0rICAgICAgdG1wX2RpZXQ9bm8KLSsgICAgICBpZiB0ZXN0 ICIkaG9zdF9vcyIgPSBsaW51eC1kaWV0bGliYzsgdGhlbgotKwljYXNlICRjY19iYXNlbmFtZSBp bgotKwkgIGRpZXRcICopIHRtcF9kaWV0PXllczs7CSMgbGludXgtZGlldGxpYmMgd2l0aCBzdGF0 aWMgbGlua2luZyAoIWRpZXQtZHluKQotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBpZiAkTEQg LS1oZWxwIDI+JjEgfCAkRUdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYv bnVsbCBcCi0rCSAmJiB0ZXN0ICIkdG1wX2RpZXQiID0gbm8KLSsgICAgICB0aGVuCi0rCXRtcF9h ZGRmbGFnPScgJHBpY19mbGFnJwotKwl0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcKLSsJY2FzZSAk Y2NfYmFzZW5hbWUsJGhvc3RfY3B1IGluCi0rICAgICAgICBwZ2NjKikJCQkJIyBQb3J0bGFuZCBH cm91cCBDIGNvbXBpbGVyCi0rCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywg JDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBk byB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5j ZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3ds fS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKLSsJICA7 OwotKwlwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSogfCBwZ2ZvcnRyYW4qKQotKwkJCQkJIyBQb3J0 bGFuZCBHcm91cCBmNzcgYW5kIGY5MCBjb21waWxlcnMKLSsJICBfTFRfVEFHVkFSKHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRj b252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9 XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2Nv bnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFnPScg JHBpY19mbGFnIC1Nbm9tYWluJyA7OwotKwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJIyBJbnRl bCBDIGNvbXBpbGVyIG9uIGlhNjQKLSsJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMnIDs7Ci0r CWVmYyosaWE2NCogfCBpZm9ydCosaWE2NCopCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlciBvbiBp YTY0Ci0rCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljIC1ub2Zvcl9tYWluJyA7OwotKwlpZmMq IHwgaWZvcnQqKQkJCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlcgotKwkgIHRtcF9hZGRmbGFnPScg LW5vZm9yX21haW4nIDs7Ci0rCWxmOTUqKQkJCQkjIExhaGV5IEZvcnRyYW4gOC4xCi0rCSAgX0xU X1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotKwkgIHRtcF9zaGFyZWRmbGFn PSctLXNoYXJlZCcgOzsKLSsJeGxbW2NDXV0qIHwgYmd4bFtbY0NdXSogfCBtcGl4bFtbY0NdXSop ICMgSUJNIFhMIEMgOC4wIG9uIFBQQyAoZGVhbCB3aXRoIHhsZiBiZWxvdykKLSsJICB0bXBfc2hh cmVkZmxhZz0nLXFta3Nocm9iaicKLSsJICB0bXBfYWRkZmxhZz0gOzsKLSsJbnZjYyopCSMgQ3Vk YSBDb21waWxlciBEcml2ZXIgMi4yCi0rCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2Vc IlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252 ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwi YCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICBfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRz X29iamVjdCwgJDEpPXllcwotKwkgIDs7Ci0rCWVzYWMKLSsJY2FzZSBgJENDIC1WIDI+JjEgfCBz ZWQgNXFgIGluCi0rCSpTdW5cIEMqKQkJCSMgU3VuIEMgNS45Ci0rCSAgX0xUX1RBR1ZBUih3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVu aWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZc IiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1 bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZl JwotKwkgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9eWVzCi0rCSAgdG1w X3NoYXJlZGZsYWc9Jy1HJyA7OwotKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0cmFuIDguMwotKwkg IHRtcF9zaGFyZWRmbGFnPSctRycgOzsKLSsJZXNhYwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwot KwotKyAgICAgICAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsg dGhlbgotKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNo byAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJICAgIGNhdCAk ZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLnZlcn4KLSsJICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUudmVyfgotKwkgICAgJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZs YWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52 ZXIgLW8gJGxpYicKLSsgICAgICAgIGZpCi0rCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCXhs ZiogfCBiZ2YqIHwgYmd4bGYqIHwgbXBpeGxmKikKLSsJICAjIElCTSBYTCBGb3J0cmFuIDEwLjEg b24gUFBDIGNhbm5vdCBjcmVhdGUgc2hhcmVkIGxpYnMgaXRzZWxmCi0rCSAgX0xUX1RBR1ZBUih3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSctLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2Ug LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPQotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwg JDEpPSctcnBhdGggJGxpYmRpcicKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1zb25hbWUgJHNvbmFt ZSAtbyAkbGliJwotKwkgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5 ZXM7IHRoZW4KLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hv ICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgICBjYXQg JGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS52ZXJ+Ci0rCSAgICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgICAkTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtdmVyc2lvbi1zY3JpcHQgJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCi0rCSAgZmkKLSsJICA7OwotKwllc2FjCi0rICAg ICAgZWxzZQotKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZp Ci0rICAgICAgOzsKLSsKLSsgICAgbmV0YnNkKikKLSsgICAgICBpZiBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwlfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncyAtbyAkbGliJwotKwl3bGFyYz0KLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3 bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsgICAg ICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHNvbGFyaXMqKQotKyAgICAgIGlmICRMRCAtdiAyPiYx IHwgJEdSRVAgJ0JGRCAyXC44JyA+IC9kZXYvbnVsbDsgdGhlbgotKwlfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCi0rCWNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiBUaGUg cmVsZWFzZXMgMi44Liogb2YgdGhlIEdOVSBsaW5rZXIgY2Fubm90IHJlbGlhYmx5Ci0rKioqIGNy ZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNvbGFyaXMgc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGli dG9vbAotKyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJn ZSB5b3UgdG8gdXBncmFkZSBHTlUKLSsqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjkuMSBvciBu ZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQotKyoqKiB5b3VyIFBBVEggb3IgY29t cGlsZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCi0rKioqIHVz ZWQsIGFuZCB0aGVuIHJlc3RhcnQuCi0rCi0rX0xUX0VPRgotKyAgICAgIGVsaWYgJExEIC0taGVs cCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsg dGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2Zs YWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lIC1vICRsaWInCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9z eW1ib2xzIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBz Y281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQotKyAgICAgIGNhc2UgYCRMRCAtdiAyPiYx YCBpbgotKyAgICAgICAgKlwgW1swMV1dLiogfCAqXCAyLltbMC05XV0uKiB8ICpcIDIuMVtbMC01 XV0uKikKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwljYXQgPDxfTFRfRU9GIDE+ JjIKLSsKLSsqKiogV2FybmluZzogUmVsZWFzZXMgb2YgdGhlIEdOVSBsaW5rZXIgcHJpb3IgdG8g Mi4xNi45MS4wLjMgY2FuIG5vdAotKyoqKiByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmll cyBvbiBTQ08gc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9vbAotKyoqKiBpcyBkaXNhYmxpbmcg c2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJnZSB5b3UgdG8gdXBncmFkZSBHTlUKLSsq KiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjE2LjkxLjAuMyBvciBuZXdlci4gIEFub3RoZXIgb3B0 aW9uIGlzIHRvIG1vZGlmeQotKyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIgY29uZmlndXJhdGlv biBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCi0rKioqIHVzZWQsIGFuZCB0aGVuIHJlc3Rh cnQuCi0rCi0rX0xUX0VPRgotKwk7OwotKwkqKQotKwkgICMgRm9yIHNlY3VyaXR5IHJlYXNvbnMs IGl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHlvdSBhbHdheXMKLSsJICAjIHVzZSBhYnNv bHV0ZSBwYXRocyBmb3IgbmFtaW5nIHNoYXJlZCBsaWJyYXJpZXMsIGFuZCBleGNsdWRlIHRoZQot KwkgICMgRFRfUlVOUEFUSCB0YWcgZnJvbSBleGVjdXRhYmxlcyBhbmQgbGlicmFyaWVzLiAgQnV0 IGRvaW5nIHNvCi0rCSAgIyByZXF1aXJlcyB0aGF0IHlvdSBjb21waWxlIGV2ZXJ5dGhpbmcgdHdp Y2UsIHdoaWNoIGlzIGEgcGFpbi4KLSsJICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBz dXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGli ZGlyJwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRs aWInCi0rCSAgZWxzZQotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgIGZp Ci0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc2hh cmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICB3 bGFyYz0KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsK LSsgICAgKikKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQg dGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJX0xUX1RBR1ZBUihh cmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0 YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsgICAgICBlbHNl Ci0rCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0r ICAgIGVzYWMKLSsKLSsgICAgaWYgdGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0g bm87IHRoZW4KLSsgICAgICBydW5wYXRoX3Zhcj0KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlYywgJDEpPQotKyAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMsICQxKT0KLSsgICAgZmkKLSsgIGVsc2UKLSsgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2Ny aXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgbGlua2VyIChub3QgR05VIGxkKQotKyAgICBjYXNlICRo b3N0X29zIGluCi0rICAgIGFpeDMqKQotKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVk X2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKyAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9z eW1ib2xzLCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9JyRMRCAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MgLWJFOiRleHBvcnRfc3ltYm9scyAtVDUxMiAtSDUxMiAtYk06U1JFfiRBUiAkQVJf RkxBR1MgJGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKyAgICAgICMgTm90ZTogdGhpcyBs aW5rZXIgaGFyZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCi0rICAg ICAgIyBhcmUgbm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgotKyAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVz ICYmIHRlc3QgLXogIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyI7IHRoZW4KLSsJIyBOZWl0aGVy IGRpcmVjdCBoYXJkY29kaW5nIG5vciBzdGF0aWMgbGlua2luZyBpcyBzdXBwb3J0ZWQgd2l0aCBh Ci0rCSMgYnJva2VuIGNvbGxlY3QyLgotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEp PXVuc3VwcG9ydGVkCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBhaXhbWzQtOV1dKikK LSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIE9uIElBNjQsIHRo ZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0Ci0r CSMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgotKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5n PW5vCi0rCWV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCi0rCW5vX2VudHJ5X2ZsYWc9IiIKLSsgICAg ICBlbHNlCi0rCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhl ICItQyIgb3B0aW9uLgotKwkjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5z IGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCi0rCSMgQWxzbywgQUlYIG5tIHRyZWF0cyB3ZWFr IGRlZmluZWQgc3ltYm9scyBsaWtlIG90aGVyIGdsb2JhbAotKwkjIGRlZmluZWQgc3ltYm9scywg d2hlcmVhcyBHTlUgbm0gbWFya3MgdGhlbSBhcyAiVyIuCi0rCWlmICROTSAtViAyPiYxIHwgJEdS RVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KLSsJICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xz X2NtZHMsICQxKT0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlm ICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikgfHwgKFwk IDIgPT0gIlciKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMg fSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCi0rCWVsc2UKLSsJICBfTFRfVEFH VkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252ZW5p ZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAo XCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQg MyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsJZmkKLSsJYWl4X3VzZV9y dW50aW1lbGlua2luZz1ubwotKwotKwkjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVu IHRpbWUgbGlua2luZyBvciBub3JtYWwKLSsJIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwg aXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCi0rCSMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtp bmcuCi0rCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bWzIzXV18YWl4NC5bWzIzXV0uKnxhaXhbWzUt OV1dKikKLSsJICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsJICBpZiAodGVzdCAkbGRf ZmxhZyA9ICItYnJ0bCIgfHwgdGVzdCAkbGRfZmxhZyA9ICItV2wsLWJydGwiKTsgdGhlbgotKwkg ICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMKLSsJICAgIGJyZWFrCi0rCSAgZmkKLSsJICBk b25lCi0rCSAgOzsKLSsJZXNhYwotKwotKwlleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JwotKwlub19l bnRyeV9mbGFnPSctYm5vZW50cnknCi0rICAgICAgZmkKLSsKLSsgICAgICAjIFdoZW4gbGFyZ2Ug ZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCi0rICAg ICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxp bmtpbmcgYSBsaWJyYXJ5Ci0rICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRP QyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KLSsgICAgICAjIENYWEZMQUdTL0NGTEFH UyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAotKyAgICAgICMg ZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgot KwotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JycKLSsgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf ZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yLCAkMSk9JzonCi0rICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJz LCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihmaWxlX2xpc3Rfc3BlYywgJDEpPScke3dsfS1m LCcKLSsKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwljYXNlICRob3N0X29z IGluIGFpeDQuW1swMTJdXXxhaXg0LltbMDEyXV0uKikKLSsJIyBXZSBvbmx5IHdhbnQgdG8gZG8g dGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCi0rCSMgYmVsb3cgZm9yIGJyb2tl biBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKwotKwkgIGNvbGxlY3QybmFtZT1gJHtD Q30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAKLSsJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJu YW1lIiAmJgotKwkgICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8ICRHUkVQIHJlc29sdmVfbGli X25hbWUgPi9kZXYvbnVsbAotKwkgIHRoZW4KLSsJICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVj dDIKLSsJICA6Ci0rCSAgZWxzZQotKwkgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKLSsJICBfTFRf VEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCi0rCSAgIyBJdCBmYWlscyB0 byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAotKwkgICMg cGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51 c19MCi0rCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCi0rCSAgX0xUX1RBR1ZB UihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IsICQxKT0KLSsJICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsJc2hhcmVkX2Zs YWc9Jy1zaGFyZWQnCi0rCWlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsg dGhlbgotKwkgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwotKwlmaQotKyAg ICAgIGVsc2UKLSsJIyBub3QgdXNpbmcgZ2NjCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0 OyB0aGVuCi0rCSMgVmlzdWFsQWdlIEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3IgSUEt NjQsIEJldGEgMyBSZWxlYXNlCi0rCSMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBs aW5lIGlzIGNvcnJlY3Q6Ci0rCSAgc2hhcmVkX2ZsYWc9Jy1HJwotKwllbHNlCi0rCSAgaWYgdGVz dCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgICBzaGFyZWRfZmxh Zz0nJHt3bH0tRycKLSsJICBlbHNlCi0rCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJwot KwkgIGZpCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1iZXhwYWxsJwotKyAgICAgICMgSXQgc2VlbXMgdGhh dCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAotKyAgICAg ICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Yg c3ltYm9scyB0byBleHBvcnQuCi0rICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJv bHMsICQxKT15ZXMKLSsgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5 ZXM7IHRoZW4KLSsJIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBs b2FkaW5nIGZsYWdzICgtYnJ0bCksCi0rCSMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9y LCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJX0xUX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPSctYmVyb2snCi0rICAgICAgICAjIERldGVybWluZSB0aGUgZGVm YXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KLSsgICAgICAgICMgZW1w dHkgZXhlY3V0YWJsZS4KLSsgICAgICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYKFskMV0pCi0r ICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0t YmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsgICAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGli b2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBp ZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiBmdW5jX2VjaG9f YWxsICIke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6OyBmaWAgJyJcJHt3bH0k ZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgotKyAgICAgIGVsc2UK LSsJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWIn Ci0rCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSIteiBub2RlZnMiCi0r CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFn IicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRu b19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxh Z30gJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMiCi0rCWVsc2UKLSsJICMg RGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBh bgotKwkgIyBlbXB0eSBleGVjdXRhYmxlLgotKwkgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgoWyQx XSkKLSsJIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1i bGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICMgV2FybmluZyAtIHdpdGhvdXQg dXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCi0rCSAgIyAtYmVyb2sgd2ls bCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5Lgot KwkgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm5vdG9rJwot KwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm9rJwot KwkgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsJICAgICMgV2Ugb25seSB1 c2UgdGhpcyBjb2RlIGZvciBHTlUgbGRzIHRoYXQgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUuCi0r CSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9s ZS1hcmNoaXZlJGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIGVsc2UK LSsJICAgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVj dHMgZnJvbSBhcmNoaXZlcwotKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl YywgJDEpPSckY29udmVuaWVuY2UnCi0rCSAgZmkKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k c19uZWVkX2xjLCAkMSk9eWVzCi0rCSAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFk aXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkIGxpYnJhcmllcy4KLSsJICBfTFRfVEFHVkFSKGFy Y2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9m bGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIg JEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRp ci8kc29uYW1lJwotKwlmaQotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2Fvcyop Ci0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAg ICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAg ICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJwotKyAgICAgICAg OzsKLSsgICAgICBtNjhrKQotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRSTSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5B TUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2Rl ZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVD SE8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5 LmRhdGF+JEVDSE8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRp ci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRs aWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCi0rICAgICAgICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsg ICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICAg IDs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGJzZGlbWzQ1XV0qKQotKyAgICAg IF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9LXJkeW5hbWljCi0rICAg ICAgOzsKLSsKLSsgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICAg ICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVz aW5nCi0rICAgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KLSsgICAgICAjIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCi0rICAg ICAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBp bgotKyAgICAgIGNsKikKLSsJIyBOYXRpdmUgTVNWQwotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nICcKLSsJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxh ZywgJDEpPXVuc3VwcG9ydGVkCi0rCV9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAk MSk9eWVzCi0rCV9MVF9UQUdWQVIoZmlsZV9saXN0X3NwZWMsICQxKT0nQCcKLSsJIyBUZWxsIGx0 bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KLSsJbGliZXh0PWxpYgotKwkj IFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KLSsJc2hyZXh0 X2NtZHM9Ii5kbGwiCi0rCSMgRklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQg aGFjay4KLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1vICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWJzIC1XbCwtZGxsfmxp bmtuYW1lcz0nCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdpZiB0ZXN0 ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgotKwkgICAgc2Vk IC1uIC1lICdzL1xcXFxcXFwoLipcXFxcXFxcKS8tbGlua1xcXCAtRVhQT1JUOlxcXFxcXFwxLycg LWUgJzFcXFwhcCcgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmV4 cDsKLSsJICBlbHNlCi0rCSAgICBzZWQgLWUgJ3MvXFxcXFxcXCguKlxcXFxcXFwpLy1saW5rXFxc IC1FWFBPUlQ6XFxcXFxcXDEvJyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRz b25hbWUuZXhwOwotKwkgIGZpfgotKwkgICRDQyAtbyAkdG9vbF9vdXRwdXRfb2JqZGlyJHNvbmFt ZSAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgJGRlcGxpYnMgIkAkdG9vbF9vdXRwdXRfb2JqZGly JHNvbmFtZS5leHAiIC1XbCwtRExMLC1JTVBMSUI6IiR0b29sX291dHB1dF9vYmpkaXIkbGlibmFt ZS5kbGwubGliIn4KLSsJICBsaW5rbmFtZXM9JwotKwkjIFRoZSBsaW5rZXIgd2lsbCBub3QgYXV0 b21hdGljYWxseSBidWlsZCBhIHN0YXRpYyBsaWIgaWYgd2UgYnVpbGQgYSBETEwuCi0rCSMgX0xU X1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSk9J3RydWUnCi0rCV9MVF9UQUdW QVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXllcwotKwlfTFRfVEFH VkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8 ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4q W1sgXV1cKFtbXiBdXSpcKS9cMSxEQVRBLydcJycgfCAkU0VEIC1lICdcJycvXltbQUlUV11dW1sg XV0vcy8uKltbIF1dLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rCSMg RG9uJ3QgdXNlIHJhbmxpYgotKwlfTFRfVEFHVkFSKG9sZF9wb3N0aW5zdGFsbF9jbWRzLCAkMSk9 J2NobW9kIDY0NCAkb2xkbGliJwotKwlfTFRfVEFHVkFSKHBvc3RsaW5rX2NtZHMsICQxKT0nbHRf b3V0cHV0ZmlsZT0iQE9VVFBVVEAifgotKwkgIGx0X3Rvb2xfb3V0cHV0ZmlsZT0iQFRPT0xfT1VU UFVUQCJ+Ci0rCSAgY2FzZSAkbHRfb3V0cHV0ZmlsZSBpbgotKwkgICAgKi5leGV8Ki5FWEUpIDs7 Ci0rCSAgICAqKQotKwkgICAgICBsdF9vdXRwdXRmaWxlPSIkbHRfb3V0cHV0ZmlsZS5leGUiCi0r CSAgICAgIGx0X3Rvb2xfb3V0cHV0ZmlsZT0iJGx0X3Rvb2xfb3V0cHV0ZmlsZS5leGUiCi0rCSAg ICAgIDs7Ci0rCSAgZXNhY34KLSsJICBpZiB0ZXN0ICIkTUFOSUZFU1RfVE9PTCIgIT0gIjoiICYm IHRlc3QgLWYgIiRsdF9vdXRwdXRmaWxlLm1hbmlmZXN0IjsgdGhlbgotKwkgICAgJE1BTklGRVNU X1RPT0wgLW1hbmlmZXN0ICIkbHRfdG9vbF9vdXRwdXRmaWxlLm1hbmlmZXN0IiAtb3V0cHV0cmVz b3VyY2U6IiRsdF90b29sX291dHB1dGZpbGUiIHx8IGV4aXQgMTsKLSsJICAgICRSTSAiJGx0X291 dHB1dGZpbGUubWFuaWZlc3QiOwotKwkgIGZpJwotKwk7OwotKyAgICAgICopCi0rCSMgQXNzdW1l IE1TVkMgd3JhcHBlcgotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nICcKLSsJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVk Ci0rCSMgVGVsbCBsdG1haW4gdG8gbWFrZSAubGliIGZpbGVzLCBub3QgLmEgZmlsZXMuCi0rCWxp YmV4dD1saWIKLSsJIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmls ZXMuCi0rCXNocmV4dF9jbWRzPSIuZGxsIgotKwkjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBo ZXJlIGlzIGEgYmFkIGhhY2suCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt byAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgZnVuY19lY2hvX2FsbCAiJGRlcGxpYnMi IHwgJFNFRCAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JwotKwkjIFRo ZSBsaW5rZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGJ1aWxkIGEgLmxpYiBmaWxlIGlmIHdlIGJ1aWxk IGEgRExMLgotKwlfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0ndHJ1 ZScKLSsJIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3Jh bS4KLSsJX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9J2xpYiAtT1VUOiRvbGRsaWIk b2xkb2JqcyRvbGRfZGVwbGlicycKLSsJX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3Rh dGljX3J1bnRpbWVzLCAkMSk9eWVzCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0r ICAgIGRhcndpbiogfCByaGFwc29keSopCi0rICAgICAgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVS RVMoJDEpCi0rICAgICAgOzsKLSsKLSsgICAgZGd1eCopCi0rICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBh dGhfdmFyLCAkMSk9bm8KLSsgICAgICA7OwotKwotKyAgICBmcmVlYnNkMSopCi0rICAgICAgX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAy LjIuWzAxMl0gYWxsb3dzIHVzIHRvIGluY2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1 Y3RvcgotKyAgICAjIHN1cHBvcnQuICBGdXR1cmUgdmVyc2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNh bGx5LCBidXQgYW4gZXhwbGljaXQgYysrcnQwLm8KLSsgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0 aGluZywgYW5kIGhlbHBzIHNpZ25pZmljYW50bHkgKGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCi0r ICAgICMgZXh0cmEgc3BhY2UpLgotKyAgICBmcmVlYnNkMi4yKikKLSsgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzIC91c3IvbGliL2MrK3J0MC5vJwotKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgVW5mb3J0dW5hdGVs eSwgb2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVhdHVyZS4K LSsgICAgZnJlZWJzZDIqKQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRM RCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0r ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAzIGFu ZCBncmVhdGVyIHVzZXMgZ2NjIC1zaGFyZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4KLSsgICAg ZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nLVIkbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9 eWVzCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsg ICAgICA7OwotKwotKyAgICBocHV4OSopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRz b25hbWV+JENDIC1zaGFyZWQgJHBpY19mbGFnICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIg LW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRp ci8kc29uYW1lICRsaWInCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kTEQgLWIgK2IgJGluc3RhbGxfbGliZGly IC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn c350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYicKLSsgICAgICBmaQotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsKLSsgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5v dCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAotKyAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0 IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWlu dXNfTCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LUUnCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eDEwKikKLSsgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICR7d2x9K2gg JHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLWIgK2ggJHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAg aWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsJX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9JytiICRsaWJkaXInCi0rCV9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsJX0xUX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT15ZXMKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1 dGUsICQxKT15ZXMKLSsJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0n JHt3bH0tRScKLSsJIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2gg UEFUSCwKLSsJIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0r CV9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgIGZpCi0rICAgICAg OzsKLSsKLSsgICAgaHB1eDExKikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0 ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2 NCopCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0r aCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn Ci0rCSAgOzsKLSsJaWE2NCopCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1zaGFyZWQgJHBpY19mbGFnICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJw YXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0r CSopCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19m bGFnICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJZXNhYwot KyAgICAgIGVsc2UKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCopCi0rCSAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQqKQot KwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNv bmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsJICA7OwotKwkqKQotKwltNF9pZigkMSwgW10sIFsKLSsJICAjIE9sZGVy IHZlcnNpb25zIG9mIHRoZSAxMS4wMCBjb21waWxlciBkbyBub3QgdW5kZXJzdGFuZCAtYiB5ZXQK LSsJICAjIChIUDkyNDUzLTAxIEEuMTEuMDEuMjAgZG9lc24ndCwgSFA5MjQ1My0wMSBCLjExLlgu MzUxNzUtMzUxNzYuR1AgZG9lcykKLSsJICBfTFRfTElOS0VSX09QVElPTihbaWYgJENDIHVuZGVy c3RhbmRzIC1iXSwKLSsJICAgIF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9fYiwgJDEp LCBbLWJdLAotKwkgICAgW19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3ds fStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJ10sCi0rCSAgICBbX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJExEIC1iICtoICRzb25hbWUgK2IgJGluc3RhbGxfbGliZGlyIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyddKV0sCi0rCSAgW19MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7 d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJ10pCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IG5vOyB0aGVuCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0Knxp YTY0KikKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rCSAgX0xUX1RB R1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsJICA7OwotKwkqKQotKwkgIF9M VF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29k ZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsJICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKwotKwkgICMgaGFyZGNvZGVfbWludXNfTDogTm90 IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCSAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9j YXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAk MSk9eWVzCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgaXJp eDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsg dGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2Zs YWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRz b25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92 ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0 cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCSMgVHJ5IHRvIHVzZSB0aGUgLWV4 cG9ydGVkX3N5bWJvbCBsZCBvcHRpb24sIGlmIGl0IGRvZXMgbm90Ci0rCSMgd29yaywgYXNzdW1l IHRoYXQgLWV4cG9ydHNfZmlsZSBkb2VzIG5vdCB3b3JrIGVpdGhlciBhbmQKLSsJIyBpbXBsaWNp dGx5IGV4cG9ydCBhbGwgc3ltYm9scy4KLSsJIyBUaGlzIHNob3VsZCBiZSB0aGUgc2FtZSBmb3Ig YWxsIGxhbmd1YWdlcywgc28gbm8gcGVyLXRhZyBjYWNoZSB2YXJpYWJsZS4KLSsJQUNfQ0FDSEVf Q0hFQ0soW3doZXRoZXIgdGhlICRob3N0X29zIGxpbmtlciBhY2NlcHRzIC1leHBvcnRlZF9zeW1i b2xdLAotKwkgIFtsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJvbF0sCi0rCSAgW3NhdmVfTERGTEFH Uz0iJExERkxBR1MiCi0rCSAgIExERkxBR1M9IiRMREZMQUdTIC1zaGFyZWQgJHt3bH0tZXhwb3J0 ZWRfc3ltYm9sICR7d2x9Zm9vICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfS9kZXYvbnVsbCIK LSsJICAgQUNfTElOS19JRkVMU0UoCi0rCSAgICAgW0FDX0xBTkdfU09VUkNFKAotKwkgICAgICAg IFtBQ19MQU5HX0NBU0UoW0NdLCBbW2ludCBmb28gKHZvaWQpIHsgcmV0dXJuIDA7IH1dXSwKLSsJ CQkgICAgICBbQysrXSwgW1tpbnQgZm9vICh2b2lkKSB7IHJldHVybiAwOyB9XV0sCi0rCQkJICAg ICAgW0ZvcnRyYW4gNzddLCBbWwotKyAgICAgIHN1YnJvdXRpbmUgZm9vCi0rICAgICAgZW5kXV0s Ci0rCQkJICAgICAgW0ZvcnRyYW5dLCBbWwotKyAgICAgIHN1YnJvdXRpbmUgZm9vCi0rICAgICAg ZW5kXV0pXSldLAotKwkgICAgICBbbHRfY3ZfaXJpeF9leHBvcnRlZF9zeW1ib2w9eWVzXSwKLSsJ ICAgICAgW2x0X2N2X2lyaXhfZXhwb3J0ZWRfc3ltYm9sPW5vXSkKLSsgICAgICAgICAgIExERkxB R1M9IiRzYXZlX0xERkxBR1MiXSkKLSsJaWYgdGVzdCAiJGx0X2N2X2lyaXhfZXhwb3J0ZWRfc3lt Ym9sIiA9IHllczsgdGhlbgotKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAm JiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3ds fS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAke3ds fS1leHBvcnRzX2ZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJZmkKLSsgICAg ICBlbHNlCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2 ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVw ZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwlf TFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0 cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRl X3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1leHBvcnRzX2ZpbGUgJGV4 cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kc19uZWVkX2xjLCAkMSk9J25vJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKyAgICAgIF9MVF9UQUdW QVIoaW5oZXJpdF9ycGF0aCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVw bGlicywgJDEpPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCopCi0rICAgICAgaWYgZWNo byBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJ X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICMgYS5vdXQKLSsgICAgICBlbHNlCi0rCV9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICAgICAjIEVMRgotKyAgICAgIGZpCi0rICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKLSsgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgbmV3c29z NikKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAg ICpudG8qIHwgKnFueCopCi0rICAgICAgOzsKLSsKLSsgICAgb3BlbmJzZCopCi0rICAgICAgaWYg dGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9k aXJlY3QsICQxKT15ZXMKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9 bm8KLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsJaWYg dGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRl c3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKwkg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICBfTFRfVEFHVkFSKGFy Y2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUs JGV4cG9ydF9zeW1ib2xzJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rCWVsc2UKLSsJICBjYXNlICRob3N0X29zIGlu Ci0rCSAgIG9wZW5ic2RbWzAxXV0uKiB8IG9wZW5ic2QyLltbMC03XV0gfCBvcGVuYnNkMi5bWzAt N11dLiopCi0rCSAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVh YmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJwotKwkgICAg IDs7Ci0rCSAgICopCi0rCSAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JwotKwkgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fS1ycGF0aCwkbGliZGlyJwotKwkgICAgIDs7Ci0rCSAgZXNhYwotKwlmaQotKyAgICAgIGVsc2UK LSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsK LSsgICAgb3MyKikKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nLUwkbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEp PXllcwotKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBv cnRlZAotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRFQ0hPICJMSUJSQVJZ ICRsaWJuYW1lIElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVD SE8gIkRFU0NSSVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu ZGVmfmVjaG8gREFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZWNobyAiIFNJTkdM RSBOT05TSEFSRUQiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lY2hvIEVYUE9SVFMg Pj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAkb3V0cHV0 X29iamRpci8kbGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKLSsg ICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0nZW14aW1wIC1v ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmEgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJwot KyAgICAgIDs7Ci0rCi0rICAgIG9zZjMqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0 aGVuCi0rCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVj dF91bnJlc29sdmVkICR7d2x9XConCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7 d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1v ICRsaWInCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAk MSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYg ZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5 ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9J25vJwotKyAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRs aWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9 OgotKyAgICAgIDs7Ci0rCi0rICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUg YWRkaXRpb24gb2YgLW1zeW0gZmxhZwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVu Ci0rCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91 bnJlc29sdmVkICR7d2x9XConCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7 d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRp cn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgZWxzZQotKwlf TFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQg XConCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191 bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1z b25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNl dF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0v c29fbG9jYXRpb25zIC1vICRsaWInCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4i IC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmU7IHByaW50ZiAiJXNcXG4i ICItaGlkZGVuIj4+ICRsaWIuZXhwfgotKwkkQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9ICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgJGNvbXBpbGVyX2ZsYWdzICRsaWJvYmpzICRk ZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIi1z ZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9 L3NvX2xvY2F0aW9ucyAtbyAkbGlifiRSTSAkbGliLmV4cCcKLSsKLSsJIyBCb3RoIGMgYW5kIGN4 eCBjb21waWxlciBzdXBwb3J0IC1ycGF0aCBkaXJlY3RseQotKwlfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCi0rICAgICAgZmkKLSsgICAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9J25vJwotKyAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsgICAgICA7OwotKwotKyAg ICBzb2xhcmlzKikKLSsgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAt eiBkZWZzJwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCXdsYXJjPScke3ds fScKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFn ICR7d2x9LXogJHt3bH10ZXh0ICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMg fCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsi ID4+ICRsaWIuZXhwfgotKwkgICRDQyAtc2hhcmVkICRwaWNfZmxhZyAke3dsfS16ICR7d2x9dGV4 dCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKyAgICAgIGVsc2UK LSsJY2FzZSBgJENDIC1WIDI+JjFgIGluCi0rCSoiQ29tcGlsZXJzIDUuMCIqKQotKwkgIHdsYXJj PScnCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HJHthbGxvd191bmRl ZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsg Z2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4q XCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJ ICAkTEQgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rCSAg OzsKLSsJKikKLSsJICB3bGFyYz0nJHt3bH0nCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0 X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2Nh bDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0r ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBj YXNlICRob3N0X29zIGluCi0rICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01 XV0uKikgOzsKLSsgICAgICAqKQotKwkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5l IGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAotKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlu a2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCi0rCSMgYnV0IGlzIGNh cmVmdWwgZW5vdWdoIG5vdCB0byByZW9yZGVyLgotKwkjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlz IDIuNiAobWF5YmUgMi41LjE/KQotKwlpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwkgIF9M VF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0teiAke3dsfWFsbGV4 dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JwotKwllbHNlCi0r CSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScteiBhbGxleHRyYWN0 JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0JwotKwlmaQotKwk7OwotKyAgICAgIGVzYWMK LSsgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsgICAgICA7Owot KwotKyAgICBzdW5vczQqKQotKyAgICAgIGlmIHRlc3QgIngkaG9zdF92ZW5kb3IiID0geHNlcXVl bnQ7IHRoZW4KLSsJIyBVc2UgJENDIHRvIGxpbmsgdW5kZXIgc2VxdWVudCwgYmVjYXVzZSBpdCB0 aHJvd3MgaW4gc29tZSBleHRyYSAubwotKwkjIGZpbGVzIHRoYXQgbWFrZSAuaW5pdCBhbmQgLmZp bmkgc2VjdGlvbnMgd29yay4KLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1H ICR7d2x9LWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtYXNz ZXJ0IHB1cmUtdGV4dCAtQnN0YXRpYyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 LCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0r ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICA7 OwotKwotKyAgICBzeXN2NCkKLSsgICAgICBjYXNlICRob3N0X3ZlbmRvciBpbgotKwlzbmkpCi0r CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfZGlyZWN0LCAkMSk9eWVzICMgaXMgdGhpcyByZWFsbHkgdHJ1ZT8/PwotKwk7OwotKwlzaWVt ZW5zKQotKwkgICMjIExEIGlzIGxkIGl0IG1ha2VzIGEgUExBTUxJQgotKwkgICMjIENDIGp1c3Qg bWFrZXMgYSBHcm9zc01vZHVsZS4KLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgIF9MVF9U QUdWQVIocmVsb2FkX2NtZHMsICQxKT0nJENDIC1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0r CSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotKyAgICAgICAgOzsKLSsJbW90 b3JvbGEpCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgIF9MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8gI01vdG9yb2xhIG1hbnVhbCBzYXlzIHllcywgYnV0 IG15IHRlc3RzIHNheSB0aGV5IGxpZQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICBydW5wYXRo X3Zhcj0nTERfUlVOX1BBVEgnCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhf dmFyLCAkMSk9bm8KLSsgICAgICA7OwotKwotKyAgICBzeXN2NC4zKikKLSsgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxp YnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYywgJDEpPSctQmV4cG9ydCcKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAg ICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MnCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rCXJ1 bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0rCWhhcmRjb2RlX3J1bnBhdGhfdmFyPXllcwotKwlfTFRf VEFHVkFSKGxkX3NobGlicywgJDEpPXllcwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAg c3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuW1swMV1dLltbMTBd XSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bWzAyNF1dKikKLSsgICAgICBfTFRfVEFHVkFS KG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKLSsgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcK LSsKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3ds fS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r ICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0t aCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlf TFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6 JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8 IHNjbzMuMnY1KiB8IHNjbzV2NiopCi0rICAgICAgIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBk ZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKLSsgICAgICAjIGxpbmsg d2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJj IHRvCi0rICAgICAgIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91 dCBubyBsaWJyYXJ5IHdvdWxkCi0rICAgICAgIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2Un cmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAotKyAgICAgICMgdGhvdWdoLCB3aGlj aCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAot KyAgICAgICMgYXMgLXogZGVmcy4KLSsgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFn LCAkMSk9JyR7d2x9LXosdGV4dCcKLSsgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9JyR7d2x9LXosbm9kZWZzJwotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz X25lZWRfbGMsICQxKT1ubwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zh ciwgJDEpPW5vCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LVIsJGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3IsICQxKT0nOicKLSsgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQx KT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSck e3dsfS1CZXhwb3J0JwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAg ICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxz ZQotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9z eW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAg ICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwot KyAgICBpZiB0ZXN0IHgkaG9zdF92ZW5kb3IgPSB4c25pOyB0aGVuCi0rICAgICAgY2FzZSAkaG9z dCBpbgotKyAgICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKiB8IHN5c3Y1KikKLSsJ X0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tQmxhcmdlZHlu c3ltJwotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgIGZpCi0rXSkKLStBQ19NU0dfUkVT VUxUKFskX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKV0pCi0rdGVzdCAiJF9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSkiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotK19MVF9UQUdWQVIo d2l0aF9nbnVfbGQsICQxKT0kd2l0aF9nbnVfbGQKLSsKLStfTFRfREVDTChbXSwgW2xpYmV4dF0s IFswXSwgW09sZCBhcmNoaXZlIHN1ZmZpeCAobm9ybWFsbHkgImEiKV0pZG5sCi0rX0xUX0RFQ0wo W10sIFtzaHJleHRfY21kc10sIFsxXSwgW1NoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkg Ii5zbyIpXSlkbmwKLStfTFRfREVDTChbXSwgW2V4dHJhY3RfZXhwc3ltc19jbWRzXSwgWzJdLAot KyAgICBbVGhlIGNvbW1hbmRzIHRvIGV4dHJhY3QgdGhlIGV4cG9ydGVkIHN5bWJvbCBsaXN0IGZy b20gYSBzaGFyZWQgYXJjaGl2ZV0pCi0rCi0rIwotKyMgRG8gd2UgbmVlZCB0byBleHBsaWNpdGx5 IGxpbmsgbGliYz8KLSsjCi0rY2FzZSAieCRfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xj LCAkMSkiIGluCi0reHx4eWVzKQotKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBiZSBhZGRlZAotKyAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcwotKwotKyAgaWYgdGVzdCAi JGVuYWJsZV9zaGFyZWQiID0geWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIGNh c2UgJF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkgaW4KLSsgICAgKid+JyopCi0rICAgICAg IyBGSVhNRTogd2UgbWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2Vz LgotKyAgICAgIDs7Ci0rICAgICckQ0MgJyopCi0rICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNv bXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQotKyAgICAgICMg c3lzdGVtcywgLWxnY2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFz c2VzIC1sYwotKyAgICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgotKyAg ICAgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5r ZWQgaW5dLAotKwlbbHRfY3ZfXV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKSwK LSsJWyRSTSBjb25mdGVzdCoKLSsJZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIg PiBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rCWlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpIDI+Y29u ZnRlc3QuZXJyOyB0aGVuCi0rCSAgc29uYW1lPWNvbmZ0ZXN0Ci0rCSAgbGliPWNvbmZ0ZXN0Ci0r CSAgbGlib2Jqcz1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rCSAgZGVwbGlicz0KLSsJICB3bD0kX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkKLSsJICBwaWNfZmxhZz0kX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpCi0rCSAgY29tcGlsZXJfZmxhZ3M9LXYKLSsJICBs aW5rZXJfZmxhZ3M9LXYKLSsJICB2ZXJzdHJpbmc9Ci0rCSAgb3V0cHV0X29iamRpcj0uCi0rCSAg bGlibmFtZT1jb25mdGVzdAotKwkgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JF9MVF9U QUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKQotKwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT0KLSsJICBpZiBBQ19UUllfRVZBTChfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKQot KwkgIHRoZW4KLSsJICAgIGx0X2N2X1tdX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywg JDEpPW5vCi0rCSAgZWxzZQotKwkgICAgbHRfY3ZfW11fTFRfVEFHVkFSKGFyY2hpdmVfY21kc19u ZWVkX2xjLCAkMSk9eWVzCi0rCSAgZmkKLSsJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsJZWxzZQotKwkgIGNhdCBj b25mdGVzdC5lcnIgMT4mNQotKwlmaQotKwkkUk0gY29uZnRlc3QqCi0rCV0pCi0rICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPSRsdF9jdl9bXV9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzX25lZWRfbGMsICQxKQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICA7 OwotK2VzYWMKLSsKLStfTFRfVEFHREVDTChbYnVpbGRfbGlidG9vbF9uZWVkX2xjXSwgW2FyY2hp dmVfY21kc19uZWVkX2xjXSwgWzBdLAotKyAgICBbV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBm b3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllc10pCi0rX0xUX1RBR0RFQ0woW2FsbG93X2xpYnRv b2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lc10sCi0rICAgIFtlbmFibGVfc2hhcmVkX3dpdGhf c3RhdGljX3J1bnRpbWVzXSwgWzBdLAotKyAgICBbV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cg c2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpY10pCi0rX0xUX1RBR0RFQ0wo W10sIFtleHBvcnRfZHluYW1pY19mbGFnX3NwZWNdLCBbMV0sCi0rICAgIFtDb21waWxlciBmbGFn IHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zXSkKLStfTFRfVEFHREVDTChbXSwgW3dob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjXSwgWzFdLAotKyAgICBbQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBz aGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzXSkKLStfTFRfVEFHREVDTChbXSwg W2NvbXBpbGVyX25lZWRzX29iamVjdF0sIFsxXSwKLSsgICAgW1doZXRoZXIgdGhlIGNvbXBpbGVy IGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3RzIGRpcmVjdGx5XSkKLStfTFRfVEFHREVDTChb XSwgW29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNdLCBbMl0sCi0rICAgIFtDcmVhdGUgYW4gb2xk LXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJlZCBhcmNoaXZlXSkKLStfTFRfVEFHREVDTChbXSwg W29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzXSwgWzJdLAotKyAgICBbQ3JlYXRlIGEgdGVt cG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNo aXZlXSkKLStfTFRfVEFHREVDTChbXSwgW2FyY2hpdmVfY21kc10sIFsyXSwgW0NvbW1hbmRzIHVz ZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZV0pCi0rX0xUX1RBR0RFQ0woW10sIFthcmNoaXZl X2V4cHN5bV9jbWRzXSwgWzJdKQotK19MVF9UQUdERUNMKFtdLCBbbW9kdWxlX2NtZHNdLCBbMl0s Ci0rICAgIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIGlmIGRpZmZl cmVudCBmcm9tIGJ1aWxkaW5nCi0rICAgIGEgc2hhcmVkIGFyY2hpdmUuXSkKLStfTFRfVEFHREVD TChbXSwgW21vZHVsZV9leHBzeW1fY21kc10sIFsyXSkKLStfTFRfVEFHREVDTChbXSwgW3dpdGhf Z251X2xkXSwgWzFdLAotKyAgICBbV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQg b3Igbm90XSkKLStfTFRfVEFHREVDTChbXSwgW2FsbG93X3VuZGVmaW5lZF9mbGFnXSwgWzFdLAot KyAgICBbRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5 bWJvbHMgdG8gYmUgYnVpbHRdKQotK19MVF9UQUdERUNMKFtdLCBbbm9fdW5kZWZpbmVkX2ZsYWdd LCBbMV0sCi0rICAgIFtGbGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHNdKQot K19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY10sIFsxXSwKLSsgICAg W0ZsYWcgdG8gaGFyZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgot KyAgICBUaGlzIG11c3Qgd29yayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3QgZXhpc3RdKQotK19M VF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF0sIFsxXSwKLSsgICAg W1tJZiBsZCBpcyB1c2VkIHdoZW4gbGlua2luZywgZmxhZyB0byBoYXJkY29kZSAkbGliZGlyIGlu dG8gYSBiaW5hcnkKLSsgICAgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlm ICRsaWJkaXIgZG9lcyBub3QgZXhpc3RdXSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3JdLCBbMV0sCi0rICAgIFtXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1y cGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50XSkKLStfTFRfVEFHREVDTChbXSwg W2hhcmRjb2RlX2RpcmVjdF0sIFswXSwKLSsgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyBESVIv bGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rICAgIERJUiBp bnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5XSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2Rp cmVjdF9hYnNvbHV0ZV0sIFswXSwKLSsgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGli TkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rICAgIERJUiBpbnRv IHRoZSByZXN1bHRpbmcgYmluYXJ5IGFuZCB0aGUgcmVzdWx0aW5nIGxpYnJhcnkgZGVwZW5kZW5j eSBpcwotKyAgICAiYWJzb2x1dGUiLCBpLmUgaW1wb3NzaWJsZSB0byBjaGFuZ2UgYnkgc2V0dGlu ZyAke3NobGlicGF0aF92YXJ9IGlmIHRoZQotKyAgICBsaWJyYXJ5IGlzIHJlbG9jYXRlZF0pCi0r X0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9taW51c19MXSwgWzBdLAotKyAgICBbU2V0IHRvICJ5 ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIK LSsgICAgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeV0pCi0rX0xUX1RBR0RFQ0woW10sIFtoYXJk Y29kZV9zaGxpYnBhdGhfdmFyXSwgWzBdLAotKyAgICBbU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIFNI TElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsgICAgaW50byB0 aGUgcmVzdWx0aW5nIGJpbmFyeV0pCi0rX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9hdXRvbWF0 aWNdLCBbMF0sCi0rICAgIFtTZXQgdG8gInllcyIgaWYgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFy eSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIKLSsgICAgaW50byB0aGUgbGlicmFyeSBhbmQg YWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQKLSsgICAgYWdh aW5zdCBpdF0pCi0rX0xUX1RBR0RFQ0woW10sIFtpbmhlcml0X3JwYXRoXSwgWzBdLAotKyAgICBb U2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBhdGhzIG9mIGRlcGVuZGVudCBsaWJy YXJpZXMKLSsgICAgdG8gcnVudGltZSBwYXRoIGxpc3RdKQotK19MVF9UQUdERUNMKFtdLCBbbGlu a19hbGxfZGVwbGlic10sIFswXSwKLSsgICAgW1doZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBw cm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllc10pCi0rX0xUX1RBR0RF Q0woW10sIFthbHdheXNfZXhwb3J0X3N5bWJvbHNdLCBbMF0sCi0rICAgIFtTZXQgdG8gInllcyIg aWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWRdKQotK19MVF9UQUdERUNMKFtdLCBbZXhw b3J0X3N5bWJvbHNfY21kc10sIFsyXSwKLSsgICAgW1RoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9y dGVkIHN5bWJvbHNdKQotK19MVF9UQUdERUNMKFtdLCBbZXhjbHVkZV9leHBzeW1zXSwgWzFdLAot KyAgICBbU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQg c3ltYm9sc10pCi0rX0xUX1RBR0RFQ0woW10sIFtpbmNsdWRlX2V4cHN5bXNdLCBbMV0sCi0rICAg IFtTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWRdKQotK19MVF9UQUdERUNMKFtd LCBbcHJlbGlua19jbWRzXSwgWzJdLAotKyAgICBbQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBsaW5r aW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXNdKQotK19MVF9U QUdERUNMKFtdLCBbcG9zdGxpbmtfY21kc10sIFsyXSwKLSsgICAgW0NvbW1hbmRzIG5lY2Vzc2Fy eSBmb3IgZmluaXNoaW5nIGxpbmtpbmcgcHJvZ3JhbXNdKQotK19MVF9UQUdERUNMKFtdLCBbZmls ZV9saXN0X3NwZWNdLCBbMV0sCi0rICAgIFtTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5w dXQgZmlsZXNdKQotK2RubCBGSVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAotK2RubCBfTFRfVEFH REVDTChbXSwgW3RocmVhZF9zYWZlX2ZsYWdfc3BlY10sIFsxXSwKLStkbmwgICAgW0NvbXBpbGVy IGZsYWcgdG8gZ2VuZXJhdGUgdGhyZWFkIHNhZmUgb2JqZWN0c10pCi0rXSkjIF9MVF9MSU5LRVJf U0hMSUJTCi0rCi0rCi0rIyBfTFRfTEFOR19DX0NPTkZJRyhbVEFHXSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVz IGZvciBhIEMgY29tcGlsZXIgYXJlIHN1aXRhYmx5Ci0rIyBkZWZpbmVkLiAgVGhlc2UgdmFyaWFi bGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHIHRvIHdyaXRlCi0rIyB0aGUg Y29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCi0rbTRfZGVmdW4oW19MVF9MQU5H X0NfQ09ORklHXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAotK2x0X3NhdmVf Q0M9IiRDQyIKLStBQ19MQU5HX1BVU0goQykKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBm b3IgQyB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PWMKLSsKLSsjIE9iamVjdCBmaWxlIGV4dGVuc2lv biBmb3IgY29tcGlsZWQgQyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfVEFHVkFSKG9i amV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGls ZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUg PSAwOyIKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0X3Np bXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oKXtyZXR1cm4oMCk7fScKLSsKLStfTFRfVEFH X0NPTVBJTEVSCi0rIyBTYXZlIHRoZSBkZWZhdWx0IGNvbXBpbGVyLCBzaW5jZSBpdCBnZXRzIG92 ZXJ3cml0dGVuIHdoZW4gdGhlIG90aGVyCi0rIyB0YWdzIGFyZSBiZWluZyB0ZXN0ZWQsIGFuZCBf TFRfVEFHVkFSKGNvbXBpbGVyLCBbXSkgaXMgYSBOT1AuCi0rY29tcGlsZXJfREVGQVVMVD0kQ0MK LSsKLSsjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotK19M VF9DT01QSUxFUl9CT0lMRVJQTEFURQotK19MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsKLSsjIyBD QVZFQVQgRU1QVE9SOgotKyMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBm b2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCi0rIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Ig b3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKLSsjIyB3 aGF0IHlvdSBhcmUgZG9pbmcuLi4KLStpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCi0rICBf TFRfQ09NUElMRVJfTk9fUlRUSSgkMSkKLSsgIF9MVF9DT01QSUxFUl9QSUMoJDEpCi0rICBfTFRf Q09NUElMRVJfQ19PKCQxKQotKyAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCi0rICBfTFRf TElOS0VSX1NITElCUygkMSkKLSsgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCi0rICBfTFRf TElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0rICBMVF9TWVNfRExPUEVOX1NFTEYKLSsgIF9M VF9DTURfU1RSSVBMSUIKLSsKLSsgICMgUmVwb3J0IHdoaWNoIGxpYnJhcnkgdHlwZXMgd2lsbCBh Y3R1YWxseSBiZSBidWlsdAotKyAgQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRz IHNoYXJlZCBsaWJyYXJpZXNdKQotKyAgQUNfTVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRd KQotKwotKyAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJp ZXNdKQotKyAgdGVzdCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVk PW5vCi0rCi0rICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmll cyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKLSsgICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJ Qy4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGFpeDMqKQotKyAgICB0ZXN0ICIkZW5hYmxlX3No YXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKyAgICBpZiB0ZXN0IC1uICIkUkFOTElC IjsgdGhlbgotKyAgICAgIGFyY2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJBTkxJQiBcJGxp YiIKLSsgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCi0rICAgIGZpCi0rICAg IDs7Ci0rCi0rICBhaXhbWzQtOV1dKikKLSsgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0 ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgotKyAgICAgIHRl c3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICAgIGZpCi0r ICAgIDs7Ci0rICBlc2FjCi0rICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3NoYXJlZF0pCi0rCi0r ICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCi0r ICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHll cy4KLSsgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXllcwot KyAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0aWNdKQotKwotKyAgX0xUX0NPTkZJRygkMSkK LStmaQotK0FDX0xBTkdfUE9QCi0rQ0M9IiRsdF9zYXZlX0NDIgotK10pIyBfTFRfTEFOR19DX0NP TkZJRwotKwotKwotKyMgX0xUX0xBTkdfQ1hYX0NPTkZJRyhbVEFHXSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0rIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJs ZXMgZm9yIGEgQysrIGNvbXBpbGVyIGFyZSBzdWl0YWJseQotKyMgZGVmaW5lZC4gIFRoZXNlIHZh cmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRyB0byB3cml0ZQotKyMg dGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK200X2RlZnVuKFtfTFRf TEFOR19DWFhfQ09ORklHXSwKLStbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10p ZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAotK200X3JlcXVpcmUoW19MVF9Q QVRIX01BTklGRVNUX1RPT0xdKWRubAotK2lmIHRlc3QgLW4gIiRDWFgiICYmICggdGVzdCAiWCRD WFgiICE9ICJYbm8iICYmCi0rICAgICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBgZysrIC12 ID4vZGV2L251bGwgMj4mMWAgKSB8fAotKyAgICAodGVzdCAiWCRDWFgiICE9ICJYZysrIikpKSA7 IHRoZW4KLSsgIEFDX1BST0dfQ1hYQ1BQCi0rZWxzZQotKyAgX2x0X2NhdWdodF9DWFhfZXJyb3I9 eWVzCi0rZmkKLSsKLStBQ19MQU5HX1BVU0goQysrKQotK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz X25lZWRfbGMsICQxKT1ubwotK19MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0K LStfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCi0rX0xUX1RBR1ZBUihh cmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmpl Y3QsICQxKT1ubwotK19MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9Ci0r X0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVf ZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQx KT0KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KLStfTFRfVEFH VkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMs ICQxKT1ubwotK19MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCi0rX0xUX1RBR1ZBUiht b2R1bGVfY21kcywgJDEpPQotK19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0r X0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgotK19MVF9UQUdWQVIob2xk X2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCi0rX0xUX1RBR1ZBUihyZWxvYWRf ZmxhZywgJDEpPSRyZWxvYWRfZmxhZwotK19MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0kcmVs b2FkX2NtZHMKLStfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rX0xUX1RBR1ZB Uih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJl ZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCi0rCi0rIyBTb3VyY2UgZmlsZSBleHRlbnNp b24gZm9yIEMrKyB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PWNwcAotKwotKyMgT2JqZWN0IGZpbGUg ZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDKysgdGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0rX0xU X1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0Ci0rCi0rIyBObyBzZW5zZSBpbiBydW5uaW5nIGFs bCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAotKyMgdGhlIENYWCBj b21waWxlciBpc24ndCB3b3JraW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJl ZCkKLSsjIGFyZSBjdXJyZW50bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9u IHRoaXMgcGxhdGZvcm0sCi0rIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVt IGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29tcGlsZXIuCi0raWYgdGVzdCAiJF9sdF9jYXVnaHRf Q1hYX2Vycm9yIiAhPSB5ZXM7IHRoZW4KLSsgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBj b21waWxlIHRlc3RzCi0rICBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3Zh cmlhYmxlID0gMDsiCi0rCi0rICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0 cwotKyAgbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbihpbnQsIGNoYXIgKltbXV0p IHsgcmV0dXJuKDApOyB9JwotKwotKyAgIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2Vk IGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgotKyAgX0xUX1RBR19DT01Q SUxFUgotKwotKyAgIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNv ZGUKLSsgIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQotKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFU RQotKwotKyAgIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4K LSsgIGx0X3NhdmVfQ0M9JENDCi0rICBsdF9zYXZlX0NGTEFHUz0kQ0ZMQUdTCi0rICBsdF9zYXZl X0xEPSRMRAotKyAgbHRfc2F2ZV9HQ0M9JEdDQwotKyAgR0NDPSRHWFgKLSsgIGx0X3NhdmVfd2l0 aF9nbnVfbGQ9JHdpdGhfZ251X2xkCi0rICBsdF9zYXZlX3BhdGhfTEQ9JGx0X2N2X3BhdGhfTEQK LSsgIGlmIHRlc3QgLW4gIiR7bHRfY3ZfcHJvZ19nbnVfbGRjeHgrc2V0fSI7IHRoZW4KLSsgICAg bHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkY3h4Ci0rICBlbHNlCi0rICAgICRh c191bnNldCBsdF9jdl9wcm9nX2dudV9sZAotKyAgZmkKLSsgIGlmIHRlc3QgLW4gIiR7bHRfY3Zf cGF0aF9MRENYWCtzZXR9IjsgdGhlbgotKyAgICBsdF9jdl9wYXRoX0xEPSRsdF9jdl9wYXRoX0xE Q1hYCi0rICBlbHNlCi0rICAgICRhc191bnNldCBsdF9jdl9wYXRoX0xECi0rICBmaQotKyAgdGVz dCAteiAiJHtMRENYWCtzZXR9IiB8fCBMRD0kTERDWFgKLSsgIENDPSR7Q1hYLSJjKysifQotKyAg Q0ZMQUdTPSRDWFhGTEFHUwotKyAgY29tcGlsZXI9JENDCi0rICBfTFRfVEFHVkFSKGNvbXBpbGVy LCAkMSk9JENDCi0rICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCi0rCi0rICBpZiB0ZXN0 IC1uICIkY29tcGlsZXIiOyB0aGVuCi0rICAgICMgV2UgZG9uJ3Qgd2FudCAtZm5vLWV4Y2VwdGlv biB3aGVuIGNvbXBpbGluZyBDKysgY29kZSwgc28gc2V0IHRoZQotKyAgICAjIG5vX2J1aWx0aW5f ZmxhZyBzZXBhcmF0ZWx5Ci0rICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1i dWlsdGluJwotKyAgICBlbHNlCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25v X2J1aWx0aW5fZmxhZywgJDEpPQotKyAgICBmaQotKwotKyAgICBpZiB0ZXN0ICIkR1hYIiA9IHll czsgdGhlbgotKyAgICAgICMgU2V0IHVwIGRlZmF1bHQgR05VIEMrKyBjb25maWd1cmF0aW9uCi0r Ci0rICAgICAgTFRfUEFUSF9MRAotKwotKyAgICAgICMgQ2hlY2sgaWYgR05VIEMrKyB1c2VzIEdO VSBsZCBhcyB0aGUgdW5kZXJseWluZyBsaW5rZXIsIHNpbmNlIHRoZQotKyAgICAgICMgYXJjaGl2 aW5nIGNvbW1hbmRzIGJlbG93IGFzc3VtZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1c2VkLgotKyAg ICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAkcGljX2ZsYWcgLXNoYXJlZCAtbm9zdGRsaWIgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rICAgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDICRwaWNfZmxhZyAtc2hhcmVkIC1ub3N0 ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJv bHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsKLSsgICAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJk aXInCi0rICAgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSck e3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rCi0rICAgICAgICAjIElmIGFyY2hpdmVfY21kcyBydW5z IExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQotKyAgICAgICAgIyBYWFggSSB0aGlu ayB3bGFyYyBjYW4gYmUgZWxpbWluYXRlZCBpbiBsdGNmLWN4eCwgYnV0IEkgbmVlZCB0bwotKyAg ICAgICAgIyAgICAgaW52ZXN0aWdhdGUgaXQgYSBsaXR0bGUgYml0IG1vcmUuIChNTSkKLSsgICAg ICAgIHdsYXJjPScke3dsfScKLSsKLSsgICAgICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1 cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4KLSsgICAgICAgIGlmIGV2YWwgImAkQ0MgLXBy aW50LXByb2ctbmFtZT1sZGAgLS1oZWxwIDI+JjEiIHwKLSsJICAkR1JFUCAnbm8td2hvbGUtYXJj aGl2ZScgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYywgJDEpPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAn IiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwotKyAgICAgICAgZWxzZQotKyAgICAgICAgICBf TFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Ci0rICAgICAgICBmaQotKyAg ICAgIGVsc2UKLSsgICAgICAgIHdpdGhfZ251X2xkPW5vCi0rICAgICAgICB3bGFyYz0KLSsKLSsg ICAgICAgICMgQSBnZW5lcmljIGFuZCB2ZXJ5IHNpbXBsZSBkZWZhdWx0IHNoYXJlZCBsaWJyYXJ5 IGNyZWF0aW9uCi0rICAgICAgICAjIGNvbW1hbmQgZm9yIEdOVSBDKysgZm9yIHRoZSBjYXNlIHdo ZXJlIGl0IHVzZXMgdGhlIG5hdGl2ZQotKyAgICAgICAgIyBsaW5rZXIsIGluc3RlYWQgb2YgR05V IGxkLiAgSWYgcG9zc2libGUsIHRoaXMgc2V0dGluZyBzaG91bGQKLSsgICAgICAgICMgb3ZlcnJp ZGRlbiB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUgbmF0aXZlIGxpbmtlciBmZWF0dXJlcyBvbgot KyAgICAgICAgIyB0aGUgcGxhdGZvcm0gaXQgaXMgYmVpbmcgdXNlZCBvbi4KLSsgICAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgLW8gJGxpYicKLSsgICAgICBmaQotKwotKyAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21w aWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsgICAgICAjIHdoYXQgImhp ZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsg ICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsgICAgICBvdXRwdXRfdmVyYm9zZV9s aW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAk R1JFUCAtdiAiXkNvbmZpZ3VyZWQgd2l0aDoiIHwgJEdSRVAgIlwtTCInCi0rCi0rICAgIGVsc2UK LSsgICAgICBHWFg9bm8KLSsgICAgICB3aXRoX2dudV9sZD1ubwotKyAgICAgIHdsYXJjPQotKyAg ICBmaQotKwotKyAgICAjIFBPUlRNRTogZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lz dGVtJ3MgQysrIGxpbmsgY2hhcmFjdGVyaXN0aWNzCi0rICAgIEFDX01TR19DSEVDS0lORyhbd2hl dGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVz XSkKLSsgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKLSsgICAgY2FzZSAkaG9zdF9v cyBpbgotKyAgICAgIGFpeDMqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0r ICAgICAgICA7OwotKyAgICAgIGFpeFtbNC05XV0qKQotKyAgICAgICAgaWYgdGVzdCAiJGhvc3Rf Y3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgICAgICAgIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMg cnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAotKyAgICAgICAgICAjIGhh dmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KLSsgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlu a2luZz1ubwotKyAgICAgICAgICBleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JwotKyAgICAgICAgICBu b19lbnRyeV9mbGFnPSIiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIGFpeF91c2VfcnVudGlt ZWxpbmtpbmc9bm8KLSsKLSsgICAgICAgICAgIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNl IHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCi0rICAgICAgICAgICMgQUlYIHN0eWxlIGxpbmtp bmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQotKyAgICAgICAgICAjIG5l ZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgotKyAgICAgICAgICBjYXNlICRob3N0X29zIGluIGFp eDQuW1syM11dfGFpeDQuW1syM11dLip8YWl4W1s1LTldXSopCi0rCSAgICBmb3IgbGRfZmxhZyBp biAkTERGTEFHUzsgZG8KLSsJICAgICAgY2FzZSAkbGRfZmxhZyBpbgotKwkgICAgICAqLWJydGwq KQotKwkgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCi0rCSAgICAgICAgYnJlYWsK LSsJICAgICAgICA7OwotKwkgICAgICBlc2FjCi0rCSAgICBkb25lCi0rCSAgICA7OwotKyAgICAg ICAgICBlc2FjCi0rCi0rICAgICAgICAgIGV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCi0rICAgICAg ICAgIG5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICAj IFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVgg bGQgY2FuCi0rICAgICAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNv bnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKLSsgICAgICAgICMgb3IgcHJvZ3JhbSByZXN1 bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCi0rICAgICAg ICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0 IGlzIG5vdAotKyAgICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1i YmlndG9jIHRvIExERkxBR1MuCi0rCi0rICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPScnCi0rICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAg ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsgICAg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JwotKyAgICAg ICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rICAgICAgICBfTFRfVEFH VkFSKGZpbGVfbGlzdF9zcGVjLCAkMSk9JyR7d2x9LWYsJwotKwotKyAgICAgICAgaWYgdGVzdCAi JEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMDEy XV18YWl4NC5bWzAxMl1dLiopCi0rICAgICAgICAgICMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMg b24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjawotKyAgICAgICAgICAjIGJlbG93IGZvciBi cm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKLSsJICBjb2xsZWN0Mm5hbWU9 YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYgdGVzdCAtZiAiJGNvbGxl Y3QybmFtZSIgJiYKLSsJICAgICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8ICRHUkVQIHJlc29s dmVfbGliX25hbWUgPi9kZXYvbnVsbAotKwkgIHRoZW4KLSsJICAgICMgV2UgaGF2ZSByZXdvcmtl ZCBjb2xsZWN0MgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAgICMgV2UgaGF2ZSBvbGQgY29sbGVj dDIKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9dW5zdXBwb3J0ZWQKLSsJ ICAgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5p bnN0YWxsZWQKLSsJICAgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0 dGluZyBoYXJkY29kZV9taW51c19MCi0rCSAgICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxp bmtpbmcKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKwkgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsJ ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQotKwkgIGZpCi0r ICAgICAgICAgIGVzYWMKLSsgICAgICAgICAgc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0rCSAgaWYg dGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgICBzaGFyZWRf ZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKLSsJICBmaQotKyAgICAgICAgZWxzZQotKyAg ICAgICAgICAjIG5vdCB1c2luZyBnY2MKLSsgICAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9 IGlhNjQ7IHRoZW4KLSsJICAjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwg Zm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQotKwkgICMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZv bGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6Ci0rCSAgc2hhcmVkX2ZsYWc9Jy1HJwotKyAgICAgICAg ICBlbHNlCi0rCSAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRo ZW4KLSsJICAgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0rCSAgICBlbHNlCi0rCSAgICAgIHNo YXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCi0rCSAgICBmaQotKyAgICAgICAgICBmaQotKyAgICAg ICAgZmkKLSsKLSsgICAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LWJleHBhbGwnCi0rICAgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9l cyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKLSsgICAgICAgICMgdW5kZXJzY29y ZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0bwot KwkjIGV4cG9ydC4KLSsgICAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAk MSk9eWVzCi0rICAgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7 IHRoZW4KLSsgICAgICAgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVu dGltZSBsb2FkaW5nIGZsYWdzICgtYnJ0bCksCi0rICAgICAgICAgICMgLWJlcm9rIHdpbGwgbGlu ayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsgICAg ICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSctYmVyb2snCi0rICAg ICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5j b2RlZCBpbiBhbiBlbXB0eQotKyAgICAgICAgICAjIGV4ZWN1dGFibGUuCi0rICAgICAgICAgIF9M VF9TWVNfTU9EVUxFX1BBVEhfQUlYKFskMV0pCi0rICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9s aWJwYXRoIgotKwotKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3 bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gZnVuY19lY2hvX2FsbCAiJHt3bH0ke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSI7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9y dF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgaWYgdGVz dCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKLSsJICAg IF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0iLXogbm9kZWZzIgotKwkgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicg LW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19l bnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30g JyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMiCi0rICAgICAgICAgIGVsc2UK LSsJICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5j b2RlZCBpbiBhbgotKwkgICAgIyBlbXB0eSBleGVjdXRhYmxlLgotKwkgICAgX0xUX1NZU19NT0RV TEVfUEFUSF9BSVgoWyQxXSkKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICAg IyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFn cywKLSsJICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1 Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcs ICQxKT0nICR7d2x9LWJlcm5vdG9rJwotKwkgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPScgJHt3bH0tYmVyb2snCi0rCSAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0g eWVzOyB0aGVuCi0rCSAgICAgICMgV2Ugb25seSB1c2UgdGhpcyBjb2RlIGZvciBHTlUgbGRzIHRo YXQgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUuCi0rCSAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3 bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgICBlbHNlCi0rCSAgICAgICMgRXhwb3J0ZWQgc3lt Ym9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcwotKwkg ICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyRjb252ZW5pZW5j ZScKLSsJICAgIGZpCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9 eWVzCi0rCSAgICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVp bGRzIGl0cyBzaGFyZWQKLSsJICAgICMgbGlicmFyaWVzLgotKwkgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpk aXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRB Ul9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIv JHNvbmFtZScKLSsgICAgICAgICAgZmkKLSsgICAgICAgIGZpCi0rICAgICAgICA7OwotKwotKyAg ICAgIGJlb3MqKQotKwlpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFy Z2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgX0xUX1RBR1ZBUihhbGxvd191bmRl ZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rCSAgIyBKb3NlcGggQmVja2VuYmFjaCA8anJi M0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwotKwkgICMgc3VwcG9ydCAtLXVu ZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKLSsJICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCWVs c2UKLSsJICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCWZpCi0rCTs7Ci0rCi0rICAg ICAgY2hvcnVzKikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgICop Ci0rCSAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAg ICA7OwotKwotKyAgICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsJY2Fz ZSAkR1hYLCRjY19iYXNlbmFtZSBpbgotKwksY2wqIHwgbm8sY2wqKQotKwkgICMgTmF0aXZlIE1T VkMKLSsJICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xl c3MsIGFzIHRoZXJlIGlzCi0rCSAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsJICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nICcKLSsJICBfTFRfVEFHVkFS KGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSsJICBfTFRfVEFHVkFSKGFs d2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcwotKwkgIF9MVF9UQUdWQVIoZmlsZV9saXN0X3Nw ZWMsICQxKT0nQCcKLSsJICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5h IGZpbGVzLgotKwkgIGxpYmV4dD1saWIKLSsJICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBm aWxlcywgbm90IC5zbyBmaWxlcy4KLSsJICBzaHJleHRfY21kcz0iLmRsbCIKLSsJICAjIEZJWE1F OiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCi0rCSAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMg JGNvbXBpbGVyX2ZsYWdzICRkZXBsaWJzIC1XbCwtZGxsfmxpbmtuYW1lcz0nCi0rCSAgX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0 X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0rCSAgICAgICRTRUQgLW4gLWUgJ3MvXFxcXFxc XCguKlxcXFxcXFwpLy1saW5rXFxcIC1FWFBPUlQ6XFxcXFxcXDEvJyAtZSAnMVxcXCFwJyA8ICRl eHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwOwotKwkgICAgZWxzZQot KwkgICAgICAkU0VEIC1lICdzL1xcXFxcXFwoLipcXFxcXFxcKS8tbGlua1xcXCAtRVhQT1JUOlxc XFxcXFwxLycgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cDsK LSsJICAgIGZpfgotKwkgICAgJENDIC1vICR0b29sX291dHB1dF9vYmpkaXIkc29uYW1lICRsaWJv YmpzICRjb21waWxlcl9mbGFncyAkZGVwbGlicyAiQCR0b29sX291dHB1dF9vYmpkaXIkc29uYW1l LmV4cCIgLVdsLC1ETEwsLUlNUExJQjoiJHRvb2xfb3V0cHV0X29iamRpciRsaWJuYW1lLmRsbC5s aWIifgotKwkgICAgbGlua25hbWVzPScKLSsJICAjIFRoZSBsaW5rZXIgd2lsbCBub3QgYXV0b21h dGljYWxseSBidWlsZCBhIHN0YXRpYyBsaWIgaWYgd2UgYnVpbGQgYSBETEwuCi0rCSAgIyBfTFRf VEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0ndHJ1ZScKLSsJICBfTFRfVEFH VkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKLSsJICAjIERv bid0IHVzZSByYW5saWIKLSsJICBfTFRfVEFHVkFSKG9sZF9wb3N0aW5zdGFsbF9jbWRzLCAkMSk9 J2NobW9kIDY0NCAkb2xkbGliJwotKwkgIF9MVF9UQUdWQVIocG9zdGxpbmtfY21kcywgJDEpPSds dF9vdXRwdXRmaWxlPSJAT1VUUFVUQCJ+Ci0rCSAgICBsdF90b29sX291dHB1dGZpbGU9IkBUT09M X09VVFBVVEAifgotKwkgICAgY2FzZSAkbHRfb3V0cHV0ZmlsZSBpbgotKwkgICAgICAqLmV4ZXwq LkVYRSkgOzsKLSsJICAgICAgKikKLSsJCWx0X291dHB1dGZpbGU9IiRsdF9vdXRwdXRmaWxlLmV4 ZSIKLSsJCWx0X3Rvb2xfb3V0cHV0ZmlsZT0iJGx0X3Rvb2xfb3V0cHV0ZmlsZS5leGUiCi0rCQk7 OwotKwkgICAgZXNhY34KLSsJICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkbHRfb3V0cHV0ZmlsZSJ+ Ci0rCSAgICBpZiB0ZXN0ICIkTUFOSUZFU1RfVE9PTCIgIT0gIjoiICYmIHRlc3QgLWYgIiRsdF9v dXRwdXRmaWxlLm1hbmlmZXN0IjsgdGhlbgotKwkgICAgICAkTUFOSUZFU1RfVE9PTCAtbWFuaWZl c3QgIiRsdF90b29sX291dHB1dGZpbGUubWFuaWZlc3QiIC1vdXRwdXRyZXNvdXJjZToiJGx0X3Rv b2xfb3V0cHV0ZmlsZSIgfHwgZXhpdCAxOwotKwkgICAgICAkUk0gIiRsdF9vdXRwdXRmaWxlLm1h bmlmZXN0IjsKLSsJICAgIGZpJwotKwkgIDs7Ci0rCSopCi0rCSAgIyBnKysKLSsJICAjIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpIGlzIGFjdHVhbGx5IG1lYW5pbmds ZXNzLAotKwkgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rCSAgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsJICBf TFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWFs bC1zeW1ib2xzJwotKwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1 cHBvcnRlZAotKwkgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLSsJ ICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMK LSsKLSsJICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9u dWxsOyB0aGVuCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVu YWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWIn Ci0rCSAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZp bGUgKDFzdCBsaW5lCi0rCSAgICAjIGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lz ZSwgcHJlcGVuZC4uLgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0r CSAgICAgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJ ICAgIGVsc2UKLSsJICAgICAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5k ZWY7Ci0rCSAgICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZS5kZWY7Ci0rCSAgICBmaX4KLSsJICAgICRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkb3V0cHV0X29i amRpci8kc29uYW1lLmRlZiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3ds fS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIg JGxpYicKLSsJICBlbHNlCi0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAg ZmkKLSsJICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKLSsg ICAgICAgIF9MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVTKCQxKQotKwk7OwotKwotKyAgICAgIGRn dXgqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgZWMrKyopCi0r CSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGdoY3gqKQot KwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAgICMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bwotKwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgZnJlZWJz ZFtbMTJdXSopCi0rICAgICAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIHJlcG9ydGVkIHRvIGJl IGZhaXJseSBicm9rZW4gYmVmb3JlCi0rCSMgc3dpdGNoIHRvIEVMRgotKyAgICAgICAgX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgICAgOzsKLSsKLSsgICAgICBmcmVlYnNkLWVs ZiopCi0rICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSsg ICAgICAgIDs7Ci0rCi0rICAgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgICAgICAgIyBG cmVlQlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUgQysrIGFuZCBHTlUgbGQgd2l0aCBzdGFuZGFyZCBF TEYKLSsgICAgICAgICMgY29udmVudGlvbnMKLSsgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSk9eWVzCi0rICAgICAgICA7OwotKwotKyAgICAgIGdudSopCi0rICAgICAgICA7OwotKwot KyAgICAgIGhhaWt1KikKLSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJz LCAkMSk9eWVzCi0rICAgICAgICA7OwotKwotKyAgICAgIGhwdXg5KikKLSsgICAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRp cicKLSsgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToK LSsgICAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LUUnCi0rICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzICMgTm90IGluIHRoZSBzZWFy Y2ggUEFUSCwKLSsJCQkJICAgICAgICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0Ci0rCQkJCSAg ICAgICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKwotKyAgICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKyAgICAgICAgICAgICMgRklYTUU6IGlu c2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgICAgIF9MVF9UQUdWQVIo bGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICAgICAgICA7OwotKyAgICAgICAgICBhQ0MqKQotKyAg ICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRp ci8kc29uYW1lfiRDQyAtYiAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRs aWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwotKyAgICAgICAgICAgICMgQ29t bWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMK LSsgICAgICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5k IGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsgICAgICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGli cmFyeS4KLSsgICAgICAgICAgICAjCi0rICAgICAgICAgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVh ciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKyAgICAgICAgICAg ICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBz dHJpcCB0aGVtCi0rICAgICAgICAgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRv bid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKyAgICAgICAgICAgICMgZGVwZW5kZW5j aWVzLgotKyAgICAgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRD QyAtYiAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkRUdSRVAgIlwtTCJgOyBs aXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4 dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNh YzsgZG9uZTsgZnVuY19lY2hvX2FsbCAiJGxpc3QiJwotKyAgICAgICAgICAgIDs7Ci0rICAgICAg ICAgICopCi0rICAgICAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICAg ICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8k c29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcGljX2ZsYWcgJHt3bH0rYiAke3dsfSRpbnN0 YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRw dXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxp YicKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJv cGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hs aWJzLCAkMSk9bm8KLSsgICAgICAgICAgICBmaQotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICBl c2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIGhwdXgxMCp8aHB1eDExKikKLSsgICAgICAgIGlm IHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRoZW4KLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rCSAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKyAgICAgICAgICBjYXNlICRo b3N0X2NwdSBpbgotKyAgICAgICAgICAgIGhwcGEqNjQqfGlhNjQqKQotKyAgICAgICAgICAgICAg OzsKLSsgICAgICAgICAgICAqKQotKwkgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYywgJDEpPScke3dsfS1FJwotKyAgICAgICAgICAgICAgOzsKLSsgICAgICAgICAgZXNh YwotKyAgICAgICAgZmkKLSsgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgICAgIGhw cGEqNjQqfGlhNjQqKQotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAk MSk9bm8KLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQx KT1ubwotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICopCi0rICAgICAgICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcwotKyAgICAgICAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCQkJ CQkgICAgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAotKwkJCQkJICAgICAgICAgIyBsb2NhdGlv biBvZiB0aGUgbGlicmFyeS4KLSsgICAgICAgICAgICA7OwotKyAgICAgICAgZXNhYwotKwotKyAg ICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxk X3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKyAgICAgICAgICBhQ0MqKQotKwkgICAgY2FzZSAk aG9zdF9jcHUgaW4KLSsJICAgICAgaHBwYSo2NCopCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzJwotKwkgICAgICAgIDs7Ci0rCSAgICAgIGlhNjQqKQotKwkgICAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2Rl ZmF1bHRycGF0aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgICA7OwotKwkgICAgICAqKQot KwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7 d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz JwotKwkgICAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29t cGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhp ZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJ ICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBk b2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQot KwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVk IHRvIHN0cmlwIHRoZW0KLSsJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24n dCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkg ICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYg Y29uZnRlc3QuJG9iamV4dCAyPiYxKSB8ICRHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4g JHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6 Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNo b19hbGwgIiRsaXN0IicKLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICBpZiB0ZXN0ICIk R1hYIiA9IHllczsgdGhlbgotKwkgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVu Ci0rCSAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAgICAgICAgIGhwcGEqNjQqKQotKwkg ICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9z dGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAg ICAgICAgICAgIDs7Ci0rCSAgICAgICAgICBpYTY0KikKLSsJICAgICAgICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwaWNfZmxhZyAke3ds fStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycK LSsJICAgICAgICAgICAgOzsKLSsJICAgICAgICAgICopCi0rCSAgICAgICAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcGljX2ZsYWcgJHt3 bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncycKLSsJICAgICAgICAgICAgOzsKLSsJICAgICAgICBlc2FjCi0rCSAgICAgIGZpCi0r CSAgICBlbHNlCi0rCSAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAotKwkgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICBmaQotKwkg ICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgaW50ZXJpeFtbMy05 XV0qKQotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rCV9MVF9UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwlfTFRfVEFHVkFSKGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKwkjIEhhY2s6IE9uIEludGVy aXggMy54LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCi0r CSMgSW5zdGVhZCwgc2hhcmVkIGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2Ug KDB4MTAwMDAwMDAgYnkKLSsJIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxp Y3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQotKwkjIGNvbnN1bWluZyBhbmQgZnJhZ21l bnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCi0rCSMgMjU2 IEtpQi1hbGlnbmVkIGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAw IGF0IGxpbmsKLSsJIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93 cyBtb3JlIHNicmsoMikgc3BhY2UuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0taCwkc29uYW1lICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYg LyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rCV9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0 X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJv bHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxg ZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAk bGliJwotKwk7OwotKyAgICAgIGlyaXg1KiB8IGlyaXg2KikKLSsgICAgICAgIGNhc2UgJGNjX2Jh c2VuYW1lIGluCi0rICAgICAgICAgIENDKikKLSsJICAgICMgU0dJIEMrKwotKwkgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWFsbCAtbXVsdGlnb3QgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2Fs bCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5p bmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgIkNDIC1h ciIsIHdoZXJlICJDQyIgaXMgdGhlIElSSVggQysrIGNvbXBpbGVyLiAgVGhpcyBpcwotKwkgICAg IyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1 ZGVkCi0rCSAgICAjIGluIHRoZSBhcmNoaXZlLgotKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtYXIgLVdSLC11IC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7 OwotKyAgICAgICAgICAqKQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsJICAg ICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYg ZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0t dXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxp YicKLSsJICAgICAgZWxzZQotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk e3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9 LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgIC1vICRsaWInCi0rCSAgICAgIGZpCi0rCSAg ICBmaQotKwkgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rCSAgICA7 OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsgICAgICAgIF9MVF9UQUdWQVIo aW5oZXJpdF9ycGF0aCwgJDEpPXllcwotKyAgICAgICAgOzsKLSsKLSsgICAgICBsaW51eCogfCBr KmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUpCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFt ZSBpbgotKyAgICAgICAgICBLQ0MqKQotKwkgICAgIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJbmMu IChLQUkpIEMrKyBDb21waWxlcgotKwotKwkgICAgIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNo YXJlZCBsaWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQotKwkgICAgIyBlbmRzIHdpdGggIi5zbyIg KG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQotKwkgICAgIyB0byBp dHMgcHJvcGVyIG5hbWUgKHdpdGggdmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KLSsJICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VE IC1lICdcJydzL1woW1teKCkwLTlBLVphLXp7fV1dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1g ZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicKLSsJ ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRz aGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9n J1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5z by8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYiAke3dsfS1y ZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1wbGliICRsaWInCi0r CSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0 aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMg YW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5 LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBw cmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lz dGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJICAgICMgZnJvbSB0 aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkK LSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3Rl bXBsaXN0PWAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNo YXJlZF9leHQgMj4mMSB8ICRHUkVQICJsZCJgOyBybSAtZiBsaWJjb25mdGVzdCRzaGFyZWRfZXh0 OyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9i amV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7 ZXNhYzsgZG9uZTsgZnVuY19lY2hvX2FsbCAiJGxpc3QiJwotKwotKwkgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAg ICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0 LWR5bmFtaWMnCi0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxl cyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgIkNDIC1Cc3RhdGljIiwgd2hlcmUgIkND IiBpcyB0aGUgS0FJIEMrKyBjb21waWxlci4KLSsJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVf Y21kcywgJDEpPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICAgIDs7Ci0r CSAgaWNwYyogfCBlY3BjKiApCi0rCSAgICAjIEludGVsIEMrKwotKwkgICAgd2l0aF9nbnVfbGQ9 eWVzCi0rCSAgICAjIHZlcnNpb24gOC4wIGFuZCBhYm92ZSBvZiBpY3BjIGNob2tlIG9uIG11bHRp cGx5IGRlZmluZWQgc3ltYm9scwotKwkgICAgIyBpZiB3ZSBhZGQgJHByZWRlcF9vYmplY3RzIGFu ZCAkcG9zdGRlcF9vYmplY3RzLCBob3dldmVyIDcuMSBhbmQKLSsJICAgICMgZWFybGllciBkbyBu b3QgYWRkIHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMuCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4mMWAg aW4KLSsJICAgICAgKiJWZXJzaW9uIDcuIiopCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1l IC1vICRsaWInCi0rCQlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1i b2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCQk7OwotKwkgICAgICAqKSAg IyBWZXJzaW9uIDguMCBvciBuZXdlcgotKwkgICAgICAgIHRtcF9pZHluPQotKwkgICAgICAgIGNh c2UgJGhvc3RfY3B1IGluCi0rCQkgIGlhNjQqKSB0bXBfaWR5bj0nIC1pX2R5bmFtaWMnOzsKLSsJ CWVzYWMKLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCciJHRtcF9pZHluIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCQlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1m aWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkJOzsKLSsJICAgIGVzYWMKLSsJICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotKwkgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0r CSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhw b3J0LWR5bmFtaWMnCi0rCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNo aXZlJwotKwkgICAgOzsKLSsgICAgICAgICAgcGdDQyogfCBwZ2NwcCopCi0rICAgICAgICAgICAg IyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKLSsJICAgIGNhc2UgYCRDQyAtVmAgaW4KLSsJ ICAgICpwZ0NDXCBbWzEtNV1dLiogfCAqcGdjcHBcIFtbMS01XV0uKikKLSsJICAgICAgX0xUX1RB R1ZBUihwcmVsaW5rX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KLSsJCXJtIC1yZiAk dHBsZGlyfgotKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRw bGRpciAkb2JqcyAkbGlib2JqcyAkY29tcGlsZV9kZXBsaWJzfgotKwkJY29tcGlsZV9jb21tYW5k PSIkY29tcGlsZV9jb21tYW5kIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwy U1BgIicKLSsJICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9J3RwbGRpcj1U ZW1wbGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0 cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJG9sZG9ianMkb2xkX2RlcGxpYnN+Ci0rCQkk QVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicyBgZmluZCAkdHBsZGlyIC1u YW1lIFwqLm8gfCBzb3J0IHwgJE5MMlNQYH4KLSsJCSRSQU5MSUIgJG9sZGxpYicKLSsJICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KLSsJCXJt IC1yZiAkdHBsZGlyfgotKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9k aXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNl ICRwb3N0ZGVwX29iamVjdHN+Ci0rCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAk TkwyU1BgICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3ds fSRzb25hbWUgLW8gJGxpYicKLSsJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAt LXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmplY3RzfgotKwkJ JENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyBg ZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCBzb3J0IHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1z eW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgICAgOzsKLSsJ ICAgICopICMgVmVyc2lvbiA2IGFuZCBhYm92ZSB1c2Ugd2VhayBzeW1ib2xzCi0rCSAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJwotKwkgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3 bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsKLSsJ ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tcnBh dGggJHt3bH0kbGliZGlyJwotKwkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAk Y29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNl PVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19j b252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsgICAgICAgICAgICA7Owot KwkgIGN4eCopCi0rCSAgICAjIENvbXBhcSBDKysKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAt byAkbGliJwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAke3dsfS1y ZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scycKLSsKLSsJICAgIHJ1bnBhdGhf dmFyPUxEX1JVTl9QQVRICi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT06Ci0rCi0rCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIg cHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhpZGRlbiIg bGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICMg bGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBkb2Vzbid0 IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkgICAg IyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0 cmlwIHRoZW0KLSsJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQg aW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0 cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNv bmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCJgOyB0ZW1wbGlzdD1gZnVuY19lY2hvX2Fs bCAiJHRlbXBsaXN0IiB8ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBs aXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4 dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNh YzsgZG9uZTsgZnVuY19lY2hvX2FsbCAiWCRsaXN0IiB8ICRYc2VkJwotKwkgICAgOzsKLSsJICB4 bCogfCBtcGl4bCogfCBiZ3hsKikKLSsJICAgICMgSUJNIFhMIDguMCBvbiBQUEMsIHdpdGggR05V IGxkCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3 bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19m bGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwkgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1xbWtzaHJvYmogJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICBpZiB0ZXN0 ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCi0rCSAgICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkJY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAi cy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkJZWNobyAi bG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCQkkQ0MgLXFt a3Nocm9iaiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFt ZS52ZXIgLW8gJGxpYicKLSsJICAgIGZpCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBjYXNlIGAk Q0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJICAgICpTdW5cIEMqKQotKwkgICAgICAjIFN1biBD KysgNS45Ci0rCSAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16ZGVm cycKLSsJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191 bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRf ZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZp bGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMnCi0rCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rCSAgICAgIF9MVF9UQUdWQVIod2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmll bmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIg fHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5j X2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScK LSsJICAgICAgX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT15ZXMKLSsKLSsJ ICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBvbgotKwkgICAgICAjICRD QyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAy PiYxCi0rCSAgICAgICMgd291bGQgYmUgYmV0dGVyLgotKwkgICAgICBvdXRwdXRfdmVyYm9zZV9s aW5rX2NtZD0nZnVuY19lY2hvX2FsbCcKLSsKLSsJICAgICAgIyBBcmNoaXZlcyBjb250YWluaW5n IEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAgICMgIkNDIC14 YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcwotKwkgICAg ICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5j bHVkZWQKLSsJICAgICAgIyBpbiB0aGUgYXJjaGl2ZS4KLSsJICAgICAgX0xUX1RBR1ZBUihvbGRf YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICAg IDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rCi0rICAgICAgbHlueG9z KikKLSsgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAot KwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCTs7Ci0rCi0rICAgICAgbTg4ayopCi0r ICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAg ICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJOzsKLSsKLSsgICAgICBtdnMqKQot KyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgY3h4KikKLSsJICAgICMg RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGli cywgJDEpPW5vCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rCi0rICAgICAgbmV0YnNkKikKLSsg ICAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9u dWxsOyB0aGVuCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVh YmxlICAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRsaW5rZXJfZmxhZ3MnCi0rCSAgd2xhcmM9Ci0rCSAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKLSsJICBfTFRfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdCwgJDEpPXllcwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zh ciwgJDEpPW5vCi0rCWZpCi0rCSMgV29ya2Fyb3VuZCBzb21lIGJyb2tlbiBwcmUtMS41IHRvb2xj aGFpbnMKLSsJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYg Y29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgY29uZnRlc3QuJG9iamV4dCB8ICRTRUQgLWUg InM6LWxnY2MgLWxjIC1sZ2NjOjoiJwotKwk7OwotKwotKyAgICAgICpudG8qIHwgKnFueCopCi0r ICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcwotKwk7OwotKwotKyAgICAgIG9w ZW5ic2QyKikKLSsgICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGZhaXJseSBicm9r ZW4KLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwk7OwotKwotKyAgICAgIG9wZW5i c2QqKQotKwlpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgotKwkgIF9MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxp YnBhdGhfdmFyLCAkMSk9bm8KLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0 ZSwgJDEpPXllcwotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICBpZiB0ZXN0IC16 ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9z dF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsJICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWIn Ci0rCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1F JwotKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSIkd2xhcmMi Jy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZl JwotKwkgIGZpCi0rCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZnVuY19lY2hvX2FsbAotKwll bHNlCi0rCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwlmaQotKwk7OwotKwotKyAg ICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu Ci0rICAgICAgICAgIEtDQyopCi0rCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtB SSkgQysrIENvbXBpbGVyCi0rCi0rCSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVk IGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCi0rCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3Ig Ii5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIHRvIGl0cyBw cm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgotKwkgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUg J1wnJ3MvXChbW14oKTAtOUEtWmEtent9XV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hv ICIkbGliIiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCi0rCi0r CSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBh dGgsJGxpYmRpcicKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwg JDEpPToKLSsKLSsJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11 c3QgYmUgY3JlYXRlZCB1c2luZwotKwkgICAgIyB0aGUgS0FJIEMrKyBjb21waWxlci4KLSsJICAg IGNhc2UgJGhvc3QgaW4KLSsJICAgICAgb3NmMyopIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21k cywgJDEpPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKLSsJICAgICAgKikg X0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkb2xkbGliICRvbGRvYmpz JyA7OwotKwkgICAgZXNhYwotKwkgICAgOzsKLSsgICAgICAgICAgUkNDKikKLSsJICAgICMgUmF0 aW9uYWwgQysrIDIuNC4xCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5 IHN1cHBvcnQKLSsJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7Ci0r ICAgICAgICAgIGN4eCopCi0rCSAgICBjYXNlICRob3N0IGluCi0rCSAgICAgIG9zZjMqKQotKwkg ICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVj dF91bnJlc29sdmVkICR7d2x9XConCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7 d2x9LXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCSAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsJCTs7 Ci0rCSAgICAgICopCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJwotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz IC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hv X2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0 X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8g cHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9u ZX4KLSsJICAgICAgICAgIGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+Ci0rCSAgICAgICAgICAk Q0MgLXNoYXJlZCRhbGxvd191bmRlZmluZWRfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAk c29uYW1lICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAm JiAkRUNITyAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0 cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+Ci0rCSAgICAgICAgICAkUk0gJGxpYi5l eHAnCi0rCSAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 Jy1ycGF0aCAkbGliZGlyJwotKwkJOzsKLSsJICAgIGVzYWMKLSsKLSsJICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsKLSsJICAgICMgQ29tbWFuZHMgdG8g bWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMg d2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQg d2hlbgotKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAjCi0rCSAgICAj IFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxl ciBmcm9tCi0rCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNv IHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0 aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkgICAgIyBkZXBlbmRlbmNp ZXMuCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVk ICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgImxkIiB8ICRHUkVQIC12 ICJsZDoiYDsgdGVtcGxpc3Q9YGZ1bmNfZWNob19hbGwgIiR0ZW1wbGlzdCIgfCAkU0VEICJzL1wo Xi4qbGQuKlwpXCggLipsZC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7 IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2Jq ZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZnVuY19lY2hvX2FsbCAiJGxp c3QiJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVz dCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCSAg ICAgIGNhc2UgJGhvc3QgaW4KLSsJICAgICAgICBvc2YzKikKLSsJICAgICAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAi JHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVy c3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19s b2NhdGlvbnMgLW8gJGxpYicKLSsJCSAgOzsKLSsJICAgICAgICAqKQotKwkgICAgICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxp YiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25h bWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIk e3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkg JHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkJICA7OwotKwkg ICAgICBlc2FjCi0rCi0rCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rCSAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsKLSsJICAgICAgIyBDb21tYW5kcyB0byBt YWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgICAj IHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2Vk IHdoZW4KLSsJICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAgIG91dHB1 dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpl eHQgMj4mMSB8ICRHUkVQIC12ICJeQ29uZmlndXJlZCB3aXRoOiIgfCAkR1JFUCAiXC1MIicKLSsK LSsJICAgIGVsc2UKLSsJICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBz dXBwb3J0Ci0rCSAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIGZpCi0r CSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICBwc29zKikKLSsg ICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAg ICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgICAgOzsKLSsKLSsgICAgICBz dW5vczQqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQot KwkgICAgIyBTdW4gQysrIDQueAotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7 OwotKyAgICAgICAgICBsY2MqKQotKwkgICAgIyBMdWNpZAotKwkgICAgIyBGSVhNRTogaW5zZXJ0 IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCi0rCSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHBy b3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICBzb2xh cmlzKikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIENDKiB8IHN1 bkNDKikKLSsJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKLSsgICAg ICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCQxKT15ZXMKLSsJICAgIF9M VF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16ZGVmcycKLSsJICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICAtaCRz b25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJv bHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsg fTsiID4+ICRsaWIuZXhwfgotKwkgICAgICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAk e3dsfS1NICR7d2x9JGxpYi5leHAgLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGli LmV4cCcKLSsKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PSctUiRsaWJkaXInCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQx KT1ubwotKwkgICAgY2FzZSAkaG9zdF9vcyBpbgotKwkgICAgICBzb2xhcmlzMi5bWzAtNV1dIHwg c29sYXJpczIuW1swLTVdXS4qKSA7OwotKwkgICAgICAqKQotKwkJIyBUaGUgY29tcGlsZXIgZHJp dmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKLSsJCSMgYnV0IHVu ZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxhZycuCi0rCSAgICAgICAgIyBTdXBwb3J0ZWQgc2luY2Ug U29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKLSsJCV9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWMsICQxKT0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFj dCcKLSsJICAgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9k ZXBsaWJzLCAkMSk9eWVzCi0rCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZnVuY19l Y2hvX2FsbCcKLSsKLSsJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVz IG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMg dGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCi0rCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtl IHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKLSsJICAgICMgaW4gdGhl IGFyY2hpdmUuCi0rCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC14 YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICAgIDs7Ci0rICAgICAgICAgIGdjeCopCi0rCSAg ICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGli JwotKwotKwkgICAgIyBUaGUgQysrIGNvbXBpbGVyIG11c3QgYmUgdXNlZCB0byBjcmVhdGUgdGhl IGFyY2hpdmUuCi0rCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDICRM REZMQUdTIC1hcmNoaXZlIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7OwotKyAgICAgICAg ICAqKQotKwkgICAgIyBHTlUgQysrIGNvbXBpbGVyIHdpdGggU29sYXJpcyBsaW5rZXIKLSsJICAg IGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgot KwkgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS16ICR7d2x9 ZGVmcycKLSsJICAgICAgaWYgJENDIC0tdmVyc2lvbiB8ICRHUkVQIC12ICdeMlwuNycgPiAvZGV2 L251bGw7IHRoZW4KLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3 bCRzb25hbWUgLW8gJGxpYicKLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMg fCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsi ID4+ICRsaWIuZXhwfgotKwkJICAkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW5vc3RkbGliICR7d2x9 LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKwotKwkgICAg ICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRo YXQgbGlzdHMKLSsJICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmls ZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQg bGlicmFyeS4KLSsJICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQg JENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAtdiAiXkNvbmZpZ3VyZWQg d2l0aDoiIHwgJEdSRVAgIlwtTCInCi0rCSAgICAgIGVsc2UKLSsJICAgICAgICAjIGcrKyAyLjcg YXBwZWFycyB0byByZXF1aXJlIGAtRycgTk9UIGAtc2hhcmVkJyBvbiB0aGlzCi0rCSAgICAgICAg IyBwbGF0Zm9ybS4KLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LUcgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxp YicKLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAi eyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1wo LipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgot KwkJICAkQ0MgLUcgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3N+JFJNICRsaWIuZXhwJwotKwotKwkgICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxl ciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICAgICAjIHdoYXQgImhp ZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJ ICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICAgICBvdXRwdXRfdmVy Ym9zZV9saW5rX2NtZD0nJENDIC1HICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwg JEdSRVAgLXYgIl5Db25maWd1cmVkIHdpdGg6IiB8ICRHUkVQICJcLUwiJwotKwkgICAgICBmaQot KwotKwkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3 bH0tUiAkd2wkbGliZGlyJwotKwkgICAgICBjYXNlICRob3N0X29zIGluCi0rCQlzb2xhcmlzMi5b WzAtNV1dIHwgc29sYXJpczIuW1swLTVdXS4qKSA7OwotKwkJKikKLSsJCSAgX0xUX1RBR1ZBUih3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS16ICR7d2x9YWxsZXh0cmFjdCRjb252 ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3QnCi0rCQkgIDs7Ci0rCSAgICAgIGVz YWMKLSsJICAgIGZpCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsg ICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuW1swMV1dLltb MTBdXSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bWzAyNF1dKikKLSsgICAgICBfTFRfVEFH VkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKLSsgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFU SCcKLSsKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgQ0MqKQotKwkgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9s cyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCi0rCSAgOzsKLSsJKikKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKyAgICAgIGVz YWMKLSsgICAgICA7OwotKwotKyAgICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCi0r CSMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1 c2Ugd2UgZG8gbm90Ci0rCSMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55 IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8KLSsJIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hp Y2ggbWVhbnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCi0rCSMgZXZlciBsaW5rIGNvcnJl Y3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsJIyB0aG91 Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnkt aGFuZGVkCi0rCSMgYXMgLXogZGVmcy4KLSsJX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywg JDEpPScke3dsfS16LHRleHQnCi0rCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQx KT0nJHt3bH0teixub2RlZnMnCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQx KT1ubwotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKwlfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiwkbGliZGlyJwot KwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicKLSsJX0xUX1RB R1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rCV9MVF9UQUdWQVIoZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUJleHBvcnQnCi0rCXJ1bnBhdGhfdmFyPSdMRF9SVU5f UEFUSCcKLSsKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5 bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJwotKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtVHBy ZWxpbmtfb2JqZWN0cyAkb2xkb2Jqc34KLSsJICAgICAgJyIkX0xUX1RBR1ZBUihvbGRfYXJjaGl2 ZV9jbWRzLCAkMSkiCi0rCSAgICBfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JyRDQyAtVHBy ZWxpbmtfb2JqZWN0cyAkcmVsb2FkX29ianN+Ci0rCSAgICAgICciJF9MVF9UQUdWQVIocmVsb2Fk X2NtZHMsICQxKSIKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3ds fS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r CSAgICA7OwotKwllc2FjCi0rICAgICAgOzsKLSsKLSsgICAgICB0YW5kZW0qKQotKyAgICAgICAg Y2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgTkNDKikKLSsJICAgICMgTm9uU3RvcC1V WCBOQ0MgMy4yMAotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBw b3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKyAgICAg ICAgICAqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKyAgICAgICAg ZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICB2eHdvcmtzKikKLSsgICAgICAgICMgRklYTUU6 IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgX0xUX1RBR1ZBUihs ZF9zaGxpYnMsICQxKT1ubwotKyAgICAgICAgOzsKLSsKLSsgICAgICAqKQotKyAgICAgICAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBfTFRfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIEFD X01TR19SRVNVTFQoWyRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpXSkKLSsgICAgdGVzdCAiJF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwot KyAgICBfTFRfVEFHVkFSKEdDQywgJDEpPSIkR1hYIgotKyAgICBfTFRfVEFHVkFSKExELCAkMSk9 IiRMRCIKLSsKLSsgICAgIyMgQ0FWRUFUIEVNUFRPUjoKLSsgICAgIyMgVGhlcmUgaXMgbm8gZW5j YXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKLSsg ICAgIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5s ZXNzIHlvdSBrbm93IGV4YWN0bHkKLSsgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCi0rICAg IF9MVF9TWVNfSElEREVOX0xJQkRFUFMoJDEpCi0rICAgIF9MVF9DT01QSUxFUl9QSUMoJDEpCi0r ICAgIF9MVF9DT01QSUxFUl9DX08oJDEpCi0rICAgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQx KQotKyAgICBfTFRfTElOS0VSX1NITElCUygkMSkKLSsgICAgX0xUX1NZU19EWU5BTUlDX0xJTktF UigkMSkKLSsgICAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQotKwotKyAgICBfTFRf Q09ORklHKCQxKQotKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCi0rCi0rICBDQz0kbHRfc2F2 ZV9DQwotKyAgQ0ZMQUdTPSRsdF9zYXZlX0NGTEFHUwotKyAgTERDWFg9JExECi0rICBMRD0kbHRf c2F2ZV9MRAotKyAgR0NDPSRsdF9zYXZlX0dDQwotKyAgd2l0aF9nbnVfbGQ9JGx0X3NhdmVfd2l0 aF9nbnVfbGQKLSsgIGx0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKLSsgIGx0X2N2X3Bh dGhfTEQ9JGx0X3NhdmVfcGF0aF9MRAotKyAgbHRfY3ZfcHJvZ19nbnVfbGRjeHg9JGx0X2N2X3By b2dfZ251X2xkCi0rICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotK2Zp ICMgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXMKLSsKLStBQ19MQU5HX1BPUAot K10pIyBfTFRfTEFOR19DWFhfQ09ORklHCi0rCi0rCi0rIyBfTFRfRlVOQ19TVFJJUE5BTUVfQ05G Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBmdW5jX3N0cmlwbmFtZV9jbmYgcHJlZml4 IHN1ZmZpeCBuYW1lCi0rIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFNRS4KLSsj IFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3IgcmVnZXggc3Bl Y2lhbAotKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1h eSBjb250YWluIGEgbGVhZGluZwotKyMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBv bmx5IGEgZG90KS4KLSsjCi0rIyBUaGlzIGZ1bmN0aW9uIGlzIGlkZW50aWNhbCB0byB0aGUgKG5v bi1YU0kpIHZlcnNpb24gb2YgZnVuY19zdHJpcG5hbWUsCi0rIyBleGNlcHQgdGhpcyBvbmUgY2Fu IGJlIHVzZWQgYnkgbTQgY29kZSB0aGF0IG1heSBiZSBleGVjdXRlZCBieSBjb25maWd1cmUsCi0r IyByYXRoZXIgdGhhbiB0aGUgbGlidG9vbCBzY3JpcHQuCi0rbTRfZGVmdW4oW19MVF9GVU5DX1NU UklQTkFNRV9DTkZdLFtkbmwKLStBQ19SRVFVSVJFKFtfTFRfREVDTF9TRURdKQotK0FDX1JFUVVJ UkUoW19MVF9QUk9HX0VDSE9fQkFDS1NMQVNIXSkKLStmdW5jX3N0cmlwbmFtZV9jbmYgKCkKLSt7 Ci0rICBjYXNlICR7Mn0gaW4KLSsgIC4qKSBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICIk ezN9IiB8ICRTRUQgInMlXiR7MX0lJTsgcyVcXFxcJHsyfVwkJSUiYDs7Ci0rICAqKSAgZnVuY19z dHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiJHszfSIgfCAkU0VEICJzJV4kezF9JSU7IHMlJHsyfVwk JSUiYDs7Ci0rICBlc2FjCi0rfSAjIGZ1bmNfc3RyaXBuYW1lX2NuZgotK10pIyBfTFRfRlVOQ19T VFJJUE5BTUVfQ05GCi0rCi0rIyBfTFRfU1lTX0hJRERFTl9MSUJERVBTKFtUQUdOQU1FXSkKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRmlndXJlIG91dCAiaGlkZGVu IiBsaWJyYXJ5IGRlcGVuZGVuY2llcyBmcm9tIHZlcmJvc2UKLSsjIGNvbXBpbGVyIG91dHB1dCB3 aGVuIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsjIFBhcnNlIHRoZSBjb21waWxlciBvdXRw dXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQotKyMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBs aWJyYXJ5IGZsYWdzLgotK200X2RlZnVuKFtfTFRfU1lTX0hJRERFTl9MSUJERVBTXSwKLStbbTRf cmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCi0rQUNfUkVRVUlSRShbX0xUX0ZV TkNfU1RSSVBOQU1FX0NORl0pZG5sCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFu ZCBhZnRlciB0aGUgb2JqZWN0IGJlaW5nIGxpbmtlZDoKLStfTFRfVEFHVkFSKHByZWRlcF9vYmpl Y3RzLCAkMSk9Ci0rX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0KLStfTFRfVEFHVkFS KHByZWRlcHMsICQxKT0KLStfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSk9Ci0rX0xUX1RBR1ZBUihj b21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKT0KLSsKLStkbmwgd2UgY2FuJ3QgdXNlIHRoZSBs dF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUgaGVyZSwKLStkbmwgYmVjYXVzZSBpdCBjb250YWlu cyBjb2RlIGludGVuZGVkIGZvciBhbiBleGVjdXRhYmxlLAotK2RubCBub3QgYSBsaWJyYXJ5LiAg SXQncyBwb3NzaWJsZSB3ZSBzaG91bGQgbGV0IGVhY2gKLStkbmwgdGFnIGRlZmluZSBhIG5ldyBs dF8/Pz8/X2xpbmtfdGVzdF9jb2RlIHZhcmlhYmxlLAotK2RubCBidXQgaXQncyBvbmx5IHVzZWQg aGVyZS4uLgotK200X2lmKFskMV0sIFtdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9F T0YKLStpbnQgYTsKLSt2b2lkIGZvbyAodm9pZCkgeyBhID0gMDsgfQotK19MVF9FT0YKLStdLCBb JDFdLCBbQ1hYXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0rY2xhc3MgRm9v Ci0rewotK3B1YmxpYzoKLSsgIEZvbyAodm9pZCkgeyBhID0gMDsgfQotK3ByaXZhdGU6Ci0rICBp bnQgYTsKLSt9OwotK19MVF9FT0YKLStdLCBbJDFdLCBbRjc3XSwgW2NhdCA+IGNvbmZ0ZXN0LiRh Y19leHQgPDxfTFRfRU9GCi0rICAgICAgc3Vicm91dGluZSBmb28KLSsgICAgICBpbXBsaWNpdCBu b25lCi0rICAgICAgaW50ZWdlcio0IGEKLSsgICAgICBhPTAKLSsgICAgICByZXR1cm4KLSsgICAg ICBlbmQKLStfTFRfRU9GCi0rXSwgWyQxXSwgW0ZDXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQg PDxfTFRfRU9GCi0rICAgICAgc3Vicm91dGluZSBmb28KLSsgICAgICBpbXBsaWNpdCBub25lCi0r ICAgICAgaW50ZWdlciBhCi0rICAgICAgYT0wCi0rICAgICAgcmV0dXJuCi0rICAgICAgZW5kCi0r X0xUX0VPRgotK10sIFskMV0sIFtHQ0pdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9F T0YKLStwdWJsaWMgY2xhc3MgZm9vIHsKLSsgIHByaXZhdGUgaW50IGE7Ci0rICBwdWJsaWMgdm9p ZCBiYXIgKHZvaWQpIHsKLSsgICAgYSA9IDA7Ci0rICB9Ci0rfTsKLStfTFRfRU9GCi0rXSkKLSsK LStfbHRfbGliZGVwc19zYXZlX0NGTEFHUz0kQ0ZMQUdTCi0rY2FzZSAiJENDICRDRkxBR1MgIiBp biAjKAotKypcIC1mbHRvKlwgKikgQ0ZMQUdTPSIkQ0ZMQUdTIC1mbm8tbHRvIiA7OwotKypcIC1m d2hvcHIqXCAqKSBDRkxBR1M9IiRDRkxBR1MgLWZuby13aG9wciIgOzsKLStlc2FjCi0rCi0rZG5s IFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQotK2Ru bCBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCi0raWYgQUNfVFJZX0VWQUwo YWNfY29tcGlsZSk7IHRoZW4KLSsgICMgUGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0 cmFjdCB0aGUgbmVjZXNzYXJ5Ci0rICAjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBm bGFncy4KLSsKLSsgICMgU2VudGluZWwgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgb3Ig bm90IHdlIGFyZSBiZWZvcmUKLSsgICMgdGhlIGNvbmZ0ZXN0IG9iamVjdCBmaWxlLgotKyAgcHJl X3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZT1ubwotKwotKyAgZm9yIHAgaW4gYGV2YWwgIiRvdXRwdXRf dmVyYm9zZV9saW5rX2NtZCJgOyBkbwotKyAgICBjYXNlICR7cHJldn0ke3B9IGluCi0rCi0rICAg IC1MKiB8IC1SKiB8IC1sKikKLSsgICAgICAgIyBTb21lIGNvbXBpbGVycyBwbGFjZSBzcGFjZSBi ZXR3ZWVuICIte0wsUn0iIGFuZCB0aGUgcGF0aC4KLSsgICAgICAgIyBSZW1vdmUgdGhlIHNwYWNl LgotKyAgICAgICBpZiB0ZXN0ICRwID0gIi1MIiB8fAotKyAgICAgICAgICB0ZXN0ICRwID0gIi1S IjsgdGhlbgotKwkgcHJldj0kcAotKwkgY29udGludWUKLSsgICAgICAgZmkKLSsKLSsgICAgICAg IyBFeHBhbmQgdGhlIHN5c3Jvb3QgdG8gZWFzZSBleHRyYWN0aW5nIHRoZSBkaXJlY3RvcmllcyBs YXRlci4KLSsgICAgICAgaWYgdGVzdCAteiAiJHByZXYiOyB0aGVuCi0rICAgICAgICAgY2FzZSAk cCBpbgotKyAgICAgICAgIC1MKikgZnVuY19zdHJpcG5hbWVfY25mICctTCcgJycgIiRwIjsgcHJl dj0tTDsgcD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7Ci0rICAgICAgICAgLVIqKSBmdW5jX3N0 cmlwbmFtZV9jbmYgJy1SJyAnJyAiJHAiOyBwcmV2PS1SOyBwPSRmdW5jX3N0cmlwbmFtZV9yZXN1 bHQgOzsKLSsgICAgICAgICAtbCopIGZ1bmNfc3RyaXBuYW1lX2NuZiAnLWwnICcnICIkcCI7IHBy ZXY9LWw7IHA9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OwotKyAgICAgICAgIGVzYWMKLSsgICAg ICAgZmkKLSsgICAgICAgY2FzZSAkcCBpbgotKyAgICAgICA9KikgZnVuY19zdHJpcG5hbWVfY25m ICc9JyAnJyAiJHAiOyBwPSRsdF9zeXNyb290JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OwotKyAg ICAgICBlc2FjCi0rICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9 IG5vOyB0aGVuCi0rCSBjYXNlICR7cHJldn0gaW4KLSsJIC1MIHwgLVIpCi0rCSAgICMgSW50ZXJu YWwgY29tcGlsZXIgbGlicmFyeSBwYXRocyBzaG91bGQgY29tZSBhZnRlciB0aG9zZQotKwkgICAj IHByb3ZpZGVkIHRoZSB1c2VyLiAgVGhlIHBvc3RkZXBzIGFscmVhZHkgY29tZSBhZnRlciB0aGUK LSsJICAgIyB1c2VyIHN1cHBsaWVkIGxpYnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNz IHRoZW0uCi0rCSAgIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hf cGF0aCwgJDEpIjsgdGhlbgotKwkgICAgIF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9w YXRoLCAkMSk9IiR7cHJldn0ke3B9IgotKwkgICBlbHNlCi0rCSAgICAgX0xUX1RBR1ZBUihjb21w aWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKT0iJHtfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFy Y2hfcGF0aCwgJDEpfSAke3ByZXZ9JHtwfSIKLSsJICAgZmkKLSsJICAgOzsKLSsJICMgVGhlICIt bCIgY2FzZSB3b3VsZCBuZXZlciBjb21lIGJlZm9yZSB0aGUgb2JqZWN0IGJlaW5nCi0rCSAjIGxp bmtlZCwgc28gZG9uJ3QgYm90aGVyIGhhbmRsaW5nIHRoaXMgY2FzZS4KLSsJIGVzYWMKLSsgICAg ICAgZWxzZQotKwkgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKSI7IHRoZW4K LSsJICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpPSIke3ByZXZ9JHtwfSIKLSsJIGVsc2UKLSsJ ICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpPSIke19MVF9UQUdWQVIocG9zdGRlcHMsICQxKX0g JHtwcmV2fSR7cH0iCi0rCSBmaQotKyAgICAgICBmaQotKyAgICAgICBwcmV2PQotKyAgICAgICA7 OwotKwotKyAgICAqLmx0by4kb2JqZXh0KSA7OyAjIElnbm9yZSBHQ0MgTFRPIG9iamVjdHMKLSsg ICAgKi4kb2JqZXh0KQotKyAgICAgICAjIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSB0ZXN0IG9iamVj dCBmaWxlIG9ubHkgc2hvd3MgdXAKLSsgICAgICAgIyBvbmNlIGluIHRoZSBjb21waWxlciBvdXRw dXQuCi0rICAgICAgIGlmIHRlc3QgIiRwIiA9ICJjb25mdGVzdC4kb2JqZXh0IjsgdGhlbgotKwkg cHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZT15ZXMKLSsJIGNvbnRpbnVlCi0rICAgICAgIGZpCi0r Ci0rICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0aGVu Ci0rCSBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpIjsgdGhlbgot KwkgICBfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSk9IiRwIgotKwkgZWxzZQotKwkgICBf TFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSk9IiRfTFRfVEFHVkFSKHByZWRlcF9vYmplY3Rz LCAkMSkgJHAiCi0rCSBmaQotKyAgICAgICBlbHNlCi0rCSBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZB Uihwb3N0ZGVwX29iamVjdHMsICQxKSI7IHRoZW4KLSsJICAgX0xUX1RBR1ZBUihwb3N0ZGVwX29i amVjdHMsICQxKT0iJHAiCi0rCSBlbHNlCi0rCSAgIF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3Rz LCAkMSk9IiRfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpICRwIgotKwkgZmkKLSsgICAg ICAgZmkKLSsgICAgICAgOzsKLSsKLSsgICAgKikgOzsgIyBJZ25vcmUgdGhlIHJlc3QuCi0rCi0r ICAgIGVzYWMKLSsgIGRvbmUKLSsKLSsgICMgQ2xlYW4gdXAuCi0rICBybSAtZiBhLm91dCBhLmV4 ZQotK2Vsc2UKLSsgIGVjaG8gImxpYnRvb2wubTQ6IGVycm9yOiBwcm9ibGVtIGNvbXBpbGluZyAk MSB0ZXN0IHByb2dyYW0iCi0rZmkKLSsKLSskUk0gLWYgY29uZmVzdC4kb2JqZXh0Ci0rQ0ZMQUdT PSRfbHRfbGliZGVwc19zYXZlX0NGTEFHUwotKwotKyMgUE9SVE1FOiBvdmVycmlkZSBhYm92ZSB0 ZXN0IG9uIHN5c3RlbXMgd2hlcmUgaXQgaXMgYnJva2VuCi0rbTRfaWYoWyQxXSwgW0NYWF0sCi0r W2Nhc2UgJGhvc3Rfb3MgaW4KLStpbnRlcml4W1szLTldXSopCi0rICAjIEludGVyaXggMy41IGlu c3RhbGxzIGNvbXBsZXRlbHkgaG9zZWQgLmxhIGZpbGVzIGZvciBDKyssIHNvIHJhdGhlciB0aGFu Ci0rICAjIGhhY2sgYWxsIGFyb3VuZCBpdCwgbGV0J3MganVzdCB0cnVzdCAiZysrIiB0byBEVFJU LgotKyAgX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywkMSk9Ci0rICBfTFRfVEFHVkFSKHBvc3Rk ZXBfb2JqZWN0cywkMSk9Ci0rICBfTFRfVEFHVkFSKHBvc3RkZXBzLCQxKT0KLSsgIDs7Ci0rCi0r bGludXgqKQotKyAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rICAqU3VuXCBDKikK LSsgICAgIyBTdW4gQysrIDUuOQotKwotKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3Jt aW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0 ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCi0rICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFH Uy4gSWdub3JlIGxpYkNydW4gYXMKLSsgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9u IGl0LgotKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgotKyAgICAqIiAtbGlicmFyeT1z dGxwb3J0NCAiKikKLSsgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKLSsgICAgICA7Owot KyAgICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVz OyB0aGVuCi0rICAgICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywkMSk9Jy1saWJyYXJ5PUNzdGQgLWxp YnJhcnk9Q3J1bicKLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rc29sYXJp cyopCi0rICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgQ0MqIHwgc3VuQ0MqKQotKyAgICAjIFRo ZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsgICAgIyBp bmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCi0rICAg ICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKLSsgICAgIyAtbGli cmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1Mg IiBpbgotKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAgICBzb2xhcmlzX3VzZV9z dGxwb3J0ND15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgICMgQWRkaW5nIHRoaXMg cmVxdWlyZXMgYSBrbm93bi1nb29kIHNldHVwIG9mIHNoYXJlZCBsaWJyYXJpZXMgZm9yCi0rICAg ICMgU3VuIGNvbXBpbGVyIHZlcnNpb25zIGJlZm9yZSA1LjYsIGVsc2UgUElDIG9iamVjdHMgZnJv bSBhbiBvbGQKLSsgICAgIyBhcmNoaXZlIHdpbGwgYmUgbGlua2VkIGludG8gdGhlIG91dHB1dCwg bGVhZGluZyB0byBzdWJ0bGUgYnVncy4KLSsgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBv cnQ0IiAhPSB5ZXM7IHRoZW4KLSsgICAgICBfTFRfVEFHVkFSKHBvc3RkZXBzLCQxKT0nLWxpYnJh cnk9Q3N0ZCAtbGlicmFyeT1DcnVuJwotKyAgICBmaQotKyAgICA7OwotKyAgZXNhYwotKyAgOzsK LStlc2FjCi0rXSkKLSsKLStjYXNlICIgJF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKSAiIGluCi0r KiIgLWxjICIqKSBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8gOzsKLStl c2FjCi0rIF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzLCAkMSk9Ci0raWYgdGVz dCAtbiAiJHtfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpfSI7IHRoZW4K LSsgX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKT1gZWNobyAiICR7X0xU X1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKX0iIHwgJHtTRUR9IC1lICdzISAt TCEgIWcnIC1lICdzIV4gISEnYAotK2ZpCi0rX0xUX1RBR0RFQ0woW10sIFtjb21waWxlcl9saWJf c2VhcmNoX2RpcnNdLCBbMV0sCi0rICAgIFtUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhp cyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnldKQotK19MVF9UQUdERUNM KFtdLCBbcHJlZGVwX29iamVjdHNdLCBbMV0sCi0rICAgIFtEZXBlbmRlbmNpZXMgdG8gcGxhY2Ug YmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KLSsgICAgY3JlYXRl IGEgc2hhcmVkIGxpYnJhcnldKQotK19MVF9UQUdERUNMKFtdLCBbcG9zdGRlcF9vYmplY3RzXSwg WzFdKQotK19MVF9UQUdERUNMKFtdLCBbcHJlZGVwc10sIFsxXSkKLStfTFRfVEFHREVDTChbXSwg W3Bvc3RkZXBzXSwgWzFdKQotK19MVF9UQUdERUNMKFtdLCBbY29tcGlsZXJfbGliX3NlYXJjaF9w YXRoXSwgWzFdLAotKyAgICBbVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5 IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKLSsgICAgYSBzaGFyZWQgbGlicmFyeV0pCi0r XSkjIF9MVF9TWVNfSElEREVOX0xJQkRFUFMKLSsKLSsKLSsjIF9MVF9MQU5HX0Y3N19DT05GSUco W1RBR10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhl IGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEZvcnRyYW4gNzcgY29tcGlsZXIgYXJlCi0r IyBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNl ZCBieSBfTFRfQ09ORklHCi0rIyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0 byBgbGlidG9vbCcuCi0rbTRfZGVmdW4oW19MVF9MQU5HX0Y3N19DT05GSUddLAotK1tBQ19MQU5H X1BVU0goRm9ydHJhbiA3NykKLStpZiB0ZXN0IC16ICIkRjc3IiB8fCB0ZXN0ICJYJEY3NyIgPSAi WG5vIjsgdGhlbgotKyAgX2x0X2Rpc2FibGVfRjc3PXllcwotK2ZpCi0rCi0rX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPQotK19MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLStf TFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KLStfTFRfVEFHVkFSKGV4cG9ydF9k eW5hbWljX2ZsYWdfc3BlYywgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9 bm8KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5vCi0rX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Ci0rX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9Ci0rX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yLCAkMSk9Ci0rX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KLStf TFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCi0rX0xUX1RBR1ZBUihpbmhlcml0 X3JwYXRoLCAkMSk9bm8KLStfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9Ci0rX0xUX1RBR1ZB Uihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KLStfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMs ICQxKT11bmtub3duCi0rX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNo aXZlX2NtZHMKLStfTFRfVEFHVkFSKHJlbG9hZF9mbGFnLCAkMSk9JHJlbG9hZF9mbGFnCi0rX0xU X1RBR1ZBUihyZWxvYWRfY21kcywgJDEpPSRyZWxvYWRfY21kcwotK19MVF9UQUdWQVIobm9fdW5k ZWZpbmVkX2ZsYWcsICQxKT0KLStfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAk MSk9Ci0rX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9 bm8KLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgZjc3IHRlc3Qgc291cmNlcy4KLSth Y19leHQ9ZgotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBmNzcgdGVz dCBzb3VyY2VzLgotK29iamV4dD1vCi0rX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0Ci0r Ci0rIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRl dGVybWluZWQgdGhhdAotKyMgdGhlIEY3NyBjb21waWxlciBpc24ndCB3b3JraW5nLiAgU29tZSB2 YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKLSsjIGFyZSBjdXJyZW50bHkgYXNzdW1lZCB0 byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCi0rIyBhbmQgd2lsbCBi ZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29tcGls ZXIuCi0raWYgdGVzdCAiJF9sdF9kaXNhYmxlX0Y3NyIgIT0geWVzOyB0aGVuCi0rICAjIENvZGUg dG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotKyAgbHRfc2ltcGxlX2NvbXBpbGVf dGVzdF9jb2RlPSJcCi0rICAgICAgc3Vicm91dGluZSB0Ci0rICAgICAgcmV0dXJuCi0rICAgICAg ZW5kCi0rIgotKwotKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKLSsg IGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iXAotKyAgICAgIHByb2dyYW0gdAotKyAgICAgIGVu ZAotKyIKLSsKLSsgICMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0 aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KLSsgIF9MVF9UQUdfQ09NUElMRVIKLSsKLSsg ICMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCi0rICBfTFRf Q09NUElMRVJfQk9JTEVSUExBVEUKLSsgIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsKLSsgICMg QWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rICBsdF9zYXZl X0NDPSIkQ0MiCi0rICBsdF9zYXZlX0dDQz0kR0NDCi0rICBsdF9zYXZlX0NGTEFHUz0kQ0ZMQUdT Ci0rICBDQz0ke0Y3Ny0iZjc3In0KLSsgIENGTEFHUz0kRkZMQUdTCi0rICBjb21waWxlcj0kQ0MK LSsgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKLSsgIF9MVF9DQ19CQVNFTkFNRShbJGNv bXBpbGVyXSkKLSsgIEdDQz0kRzc3Ci0rICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCi0r ICAgIEFDX01TR19DSEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVz XSkKLSsgICAgQUNfTVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQotKwotKyAgICBBQ19N U0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCi0rICAgIHRl c3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubwotKwotKyAg ICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhl IHNhbWUgbmFtZXNwYWNlLCBhbmQKLSsgICAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgotKyAg ICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4MyopCi0rICAgICAgICB0ZXN0ICIkZW5hYmxl X3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKyAgICAgICAgaWYgdGVzdCAtbiAi JFJBTkxJQiI7IHRoZW4KLSsgICAgICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwk UkFOTElCIFwkbGliIgotKyAgICAgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWIn Ci0rICAgICAgICBmaQotKyAgICAgICAgOzsKLSsgICAgICBhaXhbWzQtOV1dKikKLSsJaWYgdGVz dCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9 IG5vIDsgdGhlbgotKwkgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3Rh dGljPW5vCi0rCWZpCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rICAgIEFDX01TR19SRVNVTFQo WyRlbmFibGVfc2hhcmVkXSkKLSsKLSsgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1 aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQotKyAgICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3No YXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KLSsgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQi ID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCi0rICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVf c3RhdGljXSkKLSsKLSsgICAgX0xUX1RBR1ZBUihHQ0MsICQxKT0iJEc3NyIKLSsgICAgX0xUX1RB R1ZBUihMRCwgJDEpPSIkTEQiCi0rCi0rICAgICMjIENBVkVBVCBFTVBUT1I6Ci0rICAgICMjIFRo ZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBu b3QgY2hhbmdlCi0rICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRo ZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5Ci0rICAgICMjIHdoYXQgeW91IGFyZSBk b2luZy4uLgotKyAgICBfTFRfQ09NUElMRVJfUElDKCQxKQotKyAgICBfTFRfQ09NUElMRVJfQ19P KCQxKQotKyAgICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKLSsgICAgX0xUX0xJTktFUl9T SExJQlMoJDEpCi0rICAgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCi0rICAgIF9MVF9MSU5L RVJfSEFSRENPREVfTElCUEFUSCgkMSkKLSsKLSsgICAgX0xUX0NPTkZJRygkMSkKLSsgIGZpICMg dGVzdCAtbiAiJGNvbXBpbGVyIgotKwotKyAgR0NDPSRsdF9zYXZlX0dDQwotKyAgQ0M9IiRsdF9z YXZlX0NDIgotKyAgQ0ZMQUdTPSIkbHRfc2F2ZV9DRkxBR1MiCi0rZmkgIyB0ZXN0ICIkX2x0X2Rp c2FibGVfRjc3IiAhPSB5ZXMKLSsKLStBQ19MQU5HX1BPUAotK10pIyBfTFRfTEFOR19GNzdfQ09O RklHCi0rCi0rCi0rIyBfTFRfTEFOR19GQ19DT05GSUcoW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMg Zm9yIGEgRm9ydHJhbiBjb21waWxlciBhcmUKLSsjIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2 YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKLSsjIHRvIHdyaXRl IHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KLSttNF9kZWZ1bihbX0xU X0xBTkdfRkNfQ09ORklHXSwKLStbQUNfTEFOR19QVVNIKEZvcnRyYW4pCi0rCi0raWYgdGVzdCAt eiAiJEZDIiB8fCB0ZXN0ICJYJEZDIiA9ICJYbm8iOyB0aGVuCi0rICBfbHRfZGlzYWJsZV9GQz15 ZXMKLStmaQotKwotK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotK19M VF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KLStfTFRfVEFHVkFSKGFsd2F5c19l eHBvcnRfc3ltYm9scywgJDEpPW5vCi0rX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9Ci0rX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KLStfTFRfVEFH VkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3Rf YWJzb2x1dGUsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQotK19M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQotK19MVF9UQUdWQVIoaGFy ZGNvZGVfbWludXNfTCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQx KT1ubwotK19MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihtb2R1 bGVfY21kcywgJDEpPQotK19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xU X1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgotK19MVF9UQUdWQVIob2xkX2Fy Y2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCi0rX0xUX1RBR1ZBUihyZWxvYWRfZmxh ZywgJDEpPSRyZWxvYWRfZmxhZwotK19MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0kcmVsb2Fk X2NtZHMKLStfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rX0xUX1RBR1ZBUih3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93 aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCi0rCi0rIyBTb3VyY2UgZmlsZSBleHRlbnNpb24g Zm9yIGZjIHRlc3Qgc291cmNlcy4KLSthY19leHQ9JHthY19mY19zcmNleHQtZn0KLSsKLSsjIE9i amVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgZmMgdGVzdCBzb3VyY2VzLgotK29iamV4 dD1vCi0rX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0Ci0rCi0rIyBObyBzZW5zZSBpbiBy dW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAotKyMg dGhlIEZDIGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxlcyAobGlrZSBlbmFi bGVfc2hhcmVkKQotKyMgYXJlIGN1cnJlbnRseSBhc3N1bWVkIHRvIGFwcGx5IHRvIGFsbCBjb21w aWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKLSsjIGFuZCB3aWxsIGJlIGNvcnJ1cHRlZCBieSBzZXR0 aW5nIHRoZW0gYmFzZWQgb24gYSBub24td29ya2luZyBjb21waWxlci4KLStpZiB0ZXN0ICIkX2x0 X2Rpc2FibGVfRkMiICE9IHllczsgdGhlbgotKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxl IGNvbXBpbGUgdGVzdHMKLSsgIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAotKyAgICAg IHN1YnJvdXRpbmUgdAotKyAgICAgIHJldHVybgotKyAgICAgIGVuZAotKyIKLSsKLSsgICMgQ29k ZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCi0rICBsdF9zaW1wbGVfbGlua190ZXN0 X2NvZGU9IlwKLSsgICAgICBwcm9ncmFtIHQKLSsgICAgICBlbmQKLSsiCi0rCi0rICAjIGx0bWFp biBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRD QyBpcyBzZXQuCi0rICBfTFRfVEFHX0NPTVBJTEVSCi0rCi0rICAjIHNhdmUgd2FybmluZ3MvYm9p bGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotKyAgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRF Ci0rICBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCi0rCi0rICAjIEFsbG93IENDIHRvIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotKyAgbHRfc2F2ZV9DQz0iJENDIgotKyAgbHRfc2F2 ZV9HQ0M9JEdDQwotKyAgbHRfc2F2ZV9DRkxBR1M9JENGTEFHUwotKyAgQ0M9JHtGQy0iZjk1In0K LSsgIENGTEFHUz0kRkNGTEFHUwotKyAgY29tcGlsZXI9JENDCi0rICBHQ0M9JGFjX2N2X2ZjX2Nv bXBpbGVyX2dudQotKwotKyAgX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQwotKyAgX0xUX0ND X0JBU0VOQU1FKFskY29tcGlsZXJdKQotKwotKyAgaWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhl bgotKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJh cmllc10pCi0rICAgIEFDX01TR19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKLSsKLSsgICAg QUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQotKyAg ICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KLSsK LSsgICAgIyBPbiBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNl IHRoZSBzYW1lIG5hbWVzcGFjZSwgYW5kCi0rICAgICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4K LSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeDMqKQotKyAgICAgICAgdGVzdCAiJGVu YWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAgICAgIGlmIHRlc3Qg LW4gIiRSQU5MSUIiOyB0aGVuCi0rICAgICAgICAgIGFyY2hpdmVfY21kcz0iJGFyY2hpdmVfY21k c35cJFJBTkxJQiBcJGxpYiIKLSsgICAgICAgICAgcG9zdGluc3RhbGxfY21kcz0nJFJBTkxJQiAk bGliJwotKyAgICAgICAgZmkKLSsgICAgICAgIDs7Ci0rICAgICAgYWl4W1s0LTldXSopCi0rCWlm IHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2lu ZyIgPSBubyA7IHRoZW4KLSsJICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxl X3N0YXRpYz1ubwotKwlmaQotKyAgICAgICAgOzsKLSsgICAgZXNhYwotKyAgICBBQ19NU0dfUkVT VUxUKFskZW5hYmxlX3NoYXJlZF0pCi0rCi0rICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0 byBidWlsZCBzdGF0aWMgbGlicmFyaWVzXSkKLSsgICAgIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJs ZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rICAgIHRlc3QgIiRlbmFibGVfc2hh cmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXllcwotKyAgICBBQ19NU0dfUkVTVUxUKFskZW5h YmxlX3N0YXRpY10pCi0rCi0rICAgIF9MVF9UQUdWQVIoR0NDLCAkMSk9IiRhY19jdl9mY19jb21w aWxlcl9nbnUiCi0rICAgIF9MVF9UQUdWQVIoTEQsICQxKT0iJExEIgotKwotKyAgICAjIyBDQVZF QVQgRU1QVE9SOgotKyAgICAjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUg Zm9sbG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQotKyAgICAjIyB0aGUgcnVubmluZyBvcmRl ciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQot KyAgICAjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KLSsgICAgX0xUX1NZU19ISURERU5fTElCREVQ UygkMSkKLSsgICAgX0xUX0NPTVBJTEVSX1BJQygkMSkKLSsgICAgX0xUX0NPTVBJTEVSX0NfTygk MSkKLSsgICAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCi0rICAgIF9MVF9MSU5LRVJfU0hM SUJTKCQxKQotKyAgICBfTFRfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQotKyAgICBfTFRfTElOS0VS X0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0rCi0rICAgIF9MVF9DT05GSUcoJDEpCi0rICBmaSAjIHRl c3QgLW4gIiRjb21waWxlciIKLSsKLSsgIEdDQz0kbHRfc2F2ZV9HQ0MKLSsgIENDPSRsdF9zYXZl X0NDCi0rICBDRkxBR1M9JGx0X3NhdmVfQ0ZMQUdTCi0rZmkgIyB0ZXN0ICIkX2x0X2Rpc2FibGVf RkMiICE9IHllcwotKwotK0FDX0xBTkdfUE9QCi0rXSkjIF9MVF9MQU5HX0ZDX0NPTkZJRwotKwot KwotKyMgX0xUX0xBTkdfR0NKX0NPTkZJRyhbVEFHXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIHRo ZSBHTlUgSmF2YSBDb21waWxlciBjb21waWxlcgotKyMgYXJlIHN1aXRhYmx5IGRlZmluZWQuICBU aGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKLSsjIHRv IHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KLSttNF9kZWZ1 bihbX0xUX0xBTkdfR0NKX0NPTkZJR10sCi0rW0FDX1JFUVVJUkUoW0xUX1BST0dfR0NKXSlkbmwK LStBQ19MQU5HX1NBVkUKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgSmF2YSB0ZXN0 IHNvdXJjZXMuCi0rYWNfZXh0PWphdmEKLSsKLSsjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3Ig Y29tcGlsZWQgSmF2YSB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfVEFHVkFSKG9iamV4 dCwgJDEpPSRvYmpleHQKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0 ZXN0cwotK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iY2xhc3MgZm9vIHt9IgotKwotKyMg Q29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCi0rbHRfc2ltcGxlX2xpbmtfdGVz dF9jb2RlPSdwdWJsaWMgY2xhc3MgY29uZnRlc3QgeyBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihT dHJpbmdbW11dIGFyZ3YpIHt9OyB9JwotKwotKyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRh Z2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KLStfTFRfVEFHX0NP TVBJTEVSCi0rCi0rIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNv ZGUKLStfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKLStfTFRfTElOS0VSX0JPSUxFUlBMQVRFCi0r Ci0rIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLStsdF9z YXZlX0NDPSRDQwotK2x0X3NhdmVfQ0ZMQUdTPSRDRkxBR1MKLStsdF9zYXZlX0dDQz0kR0NDCi0r R0NDPXllcwotK0NDPSR7R0NKLSJnY2oifQotK0NGTEFHUz0kR0NKRkxBR1MKLStjb21waWxlcj0k Q0MKLStfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCi0rX0xUX1RBR1ZBUihMRCwgJDEpPSIk TEQiCi0rX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQotKwotKyMgR0NKIGRpZCBub3QgZXhp c3QgYXQgdGhlIHRpbWUgR0NDIGRpZG4ndCBpbXBsaWNpdGx5IGxpbmsgbGliYyBpbi4KLStfTFRf VEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSsKLStfTFRfVEFHVkFSKG9sZF9h cmNoaXZlX2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcwotK19MVF9UQUdWQVIocmVsb2FkX2Zs YWcsICQxKT0kcmVsb2FkX2ZsYWcKLStfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JHJlbG9h ZF9jbWRzCi0rCi0rIyMgQ0FWRUFUIEVNUFRPUjoKLSsjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0 aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQotKyMjIHRoZSBy dW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25v dyBleGFjdGx5Ci0rIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCi0raWYgdGVzdCAtbiAiJGNvbXBp bGVyIjsgdGhlbgotKyAgX0xUX0NPTVBJTEVSX05PX1JUVEkoJDEpCi0rICBfTFRfQ09NUElMRVJf UElDKCQxKQotKyAgX0xUX0NPTVBJTEVSX0NfTygkMSkKLSsgIF9MVF9DT01QSUxFUl9GSUxFX0xP Q0tTKCQxKQotKyAgX0xUX0xJTktFUl9TSExJQlMoJDEpCi0rICBfTFRfTElOS0VSX0hBUkRDT0RF X0xJQlBBVEgoJDEpCi0rCi0rICBfTFRfQ09ORklHKCQxKQotK2ZpCi0rCi0rQUNfTEFOR19SRVNU T1JFCi0rCi0rR0NDPSRsdF9zYXZlX0dDQwotK0NDPSRsdF9zYXZlX0NDCi0rQ0ZMQUdTPSRsdF9z YXZlX0NGTEFHUwotK10pIyBfTFRfTEFOR19HQ0pfQ09ORklHCi0rCi0rCi0rIyBfTFRfTEFOR19S Q19DT05GSUcoW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFbnN1cmUg dGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBXaW5kb3dzIHJlc291cmNl IGNvbXBpbGVyCi0rIyBhcmUgc3VpdGFibHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUg c3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRwotKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVy IGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK200X2RlZnVuKFtfTFRfTEFOR19SQ19DT05G SUddLAotK1tBQ19SRVFVSVJFKFtMVF9QUk9HX1JDXSlkbmwKLStBQ19MQU5HX1NBVkUKLSsKLSsj IFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgUkMgdGVzdCBzb3VyY2VzLgotK2FjX2V4dD1yYwot KwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBSQyB0ZXN0IHNvdXJjZXMu Ci0rb2JqZXh0PW8KLStfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIENvZGUg dG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZT0nc2FtcGxlIE1FTlUgeyBNRU5VSVRFTSAiJlNvdXAiLCAxMDAsIENIRUNLRUQgfScK LSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0X3NpbXBsZV9s aW5rX3Rlc3RfY29kZT0iJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIKLSsKLSsjIGx0bWFp biBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRD QyBpcyBzZXQuCi0rX0xUX1RBR19DT01QSUxFUgotKwotKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJw bGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCi0rX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rX0xU X0xJTktFUl9CT0lMRVJQTEFURQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmd1bWVudHMuCi0rbHRfc2F2ZV9DQz0iJENDIgotK2x0X3NhdmVfQ0ZMQUdTPSRDRkxB R1MKLStsdF9zYXZlX0dDQz0kR0NDCi0rR0NDPQotK0NDPSR7UkMtIndpbmRyZXMifQotK0NGTEFH Uz0KLStjb21waWxlcj0kQ0MKLStfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCi0rX0xUX0ND X0JBU0VOQU1FKFskY29tcGlsZXJdKQotK19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9j X28sICQxKT15ZXMKLSsKLStpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCi0rICA6Ci0rICBf TFRfQ09ORklHKCQxKQotK2ZpCi0rCi0rR0NDPSRsdF9zYXZlX0dDQwotK0FDX0xBTkdfUkVTVE9S RQotK0NDPSRsdF9zYXZlX0NDCi0rQ0ZMQUdTPSRsdF9zYXZlX0NGTEFHUwotK10pIyBfTFRfTEFO R19SQ19DT05GSUcKLSsKLSsKLSsjIExUX1BST0dfR0NKCi0rIyAtLS0tLS0tLS0tLQotK0FDX0RF RlVOKFtMVF9QUk9HX0dDSl0sCi0rW200X2lmZGVmKFtBQ19QUk9HX0dDSl0sIFtBQ19QUk9HX0dD Sl0sCi0rICBbbTRfaWZkZWYoW0FdW01fUFJPR19HQ0pdLCBbQV1bTV9QUk9HX0dDSl0sCi0rICAg IFtBQ19DSEVDS19UT09MKEdDSiwgZ2NqLCkKLSsgICAgICB0ZXN0ICJ4JHtHQ0pGTEFHUytzZXR9 IiA9IHhzZXQgfHwgR0NKRkxBR1M9Ii1nIC1PMiIKLSsgICAgICBBQ19TVUJTVChHQ0pGTEFHUyld KV0pW11kbmwKLStdKQotKwotKyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0xUX0FDX1BST0dfR0NK XSwgW0xUX1BST0dfR0NKXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxp dHk6Ci0rZG5sIEFDX0RFRlVOKFtMVF9BQ19QUk9HX0dDSl0sIFtdKQotKwotKwotKyMgTFRfUFJP R19SQwotKyMgLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtMVF9QUk9HX1JDXSwKLStbQUNfQ0hFQ0tf VE9PTChSQywgd2luZHJlcywpCi0rXSkKLSsKLSsjIE9sZCBuYW1lOgotK0FVX0FMSUFTKFtMVF9B Q19QUk9HX1JDXSwgW0xUX1BST0dfUkNdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29t cGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0xUX0FDX1BST0dfUkNdLCBbXSkKLSsKLSsKLSsj IF9MVF9ERUNMX0VHUkVQCi0rIyAtLS0tLS0tLS0tLS0tLQotKyMgSWYgd2UgZG9uJ3QgaGF2ZSBh IG5ldyBlbm91Z2ggQXV0b2NvbmYgdG8gY2hvb3NlIHRoZSBiZXN0IGdyZXAKLSsjIGF2YWlsYWJs ZSwgY2hvb3NlIHRoZSBvbmUgZmlyc3QgaW4gdGhlIHVzZXIncyBQQVRILgotK200X2RlZnVuKFtf TFRfREVDTF9FR1JFUF0sCi0rW0FDX1JFUVVJUkUoW0FDX1BST0dfRUdSRVBdKWRubAotK0FDX1JF UVVJUkUoW0FDX1BST0dfRkdSRVBdKWRubAotK3Rlc3QgLXogIiRHUkVQIiAmJiBHUkVQPWdyZXAK LStfTFRfREVDTChbXSwgW0dSRVBdLCBbMV0sIFtBIGdyZXAgcHJvZ3JhbSB0aGF0IGhhbmRsZXMg bG9uZyBsaW5lc10pCi0rX0xUX0RFQ0woW10sIFtFR1JFUF0sIFsxXSwgW0FuIEVSRSBtYXRjaGVy XSkKLStfTFRfREVDTChbXSwgW0ZHUkVQXSwgWzFdLCBbQSBsaXRlcmFsIHN0cmluZyBtYXRjaGVy XSkKLStkbmwgTm9uLWJsZWVkaW5nLWVkZ2UgYXV0b2NvbmYgZG9lc24ndCBzdWJzdCBHUkVQLCBz byBkbyBpdCBoZXJlIHRvbwotK0FDX1NVQlNUKFtHUkVQXSkKLStdKQotKwotKwotKyMgX0xUX0RF Q0xfT0JKRFVNUAotKyMgLS0tLS0tLS0tLS0tLS0KLSsjIElmIHdlIGRvbid0IGhhdmUgYSBuZXcg ZW5vdWdoIEF1dG9jb25mIHRvIGNob29zZSB0aGUgYmVzdCBvYmpkdW1wCi0rIyBhdmFpbGFibGUs IGNob29zZSB0aGUgb25lIGZpcnN0IGluIHRoZSB1c2VyJ3MgUEFUSC4KLSttNF9kZWZ1bihbX0xU X0RFQ0xfT0JKRFVNUF0sCi0rW0FDX0NIRUNLX1RPT0woT0JKRFVNUCwgb2JqZHVtcCwgZmFsc2Up Ci0rdGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRVTVA9b2JqZHVtcAotK19MVF9ERUNMKFtdLCBb T0JKRFVNUF0sIFsxXSwgW0FuIG9iamVjdCBzeW1ib2wgZHVtcGVyXSkKLStBQ19TVUJTVChbT0JK RFVNUF0pCi0rXSkKLSsKLSsjIF9MVF9ERUNMX0RMTFRPT0wKLSsjIC0tLS0tLS0tLS0tLS0tLS0K LSsjIEVuc3VyZSBETExUT09MIHZhcmlhYmxlIGlzIHNldC4KLSttNF9kZWZ1bihbX0xUX0RFQ0xf RExMVE9PTF0sCi0rW0FDX0NIRUNLX1RPT0woRExMVE9PTCwgZGxsdG9vbCwgZmFsc2UpCi0rdGVz dCAteiAiJERMTFRPT0wiICYmIERMTFRPT0w9ZGxsdG9vbAotK19MVF9ERUNMKFtdLCBbRExMVE9P TF0sIFsxXSwgW0RMTCBjcmVhdGlvbiBwcm9ncmFtXSkKLStBQ19TVUJTVChbRExMVE9PTF0pCi0r XSkKLSsKLSsjIF9MVF9ERUNMX1NFRAotKyMgLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgYSBm dWxseS1mdW5jdGlvbmFsIHNlZCBwcm9ncmFtLCB0aGF0IHRydW5jYXRlcwotKyMgYXMgZmV3IGNo YXJhY3RlcnMgYXMgcG9zc2libGUuICBQcmVmZXIgR05VIHNlZCBpZiBmb3VuZC4KLSttNF9kZWZ1 bihbX0xUX0RFQ0xfU0VEXSwKLStbQUNfUFJPR19TRUQKLSt0ZXN0IC16ICIkU0VEIiAmJiBTRUQ9 c2VkCi0rWHNlZD0iJFNFRCAtZSAxcy9eWC8vIgotK19MVF9ERUNMKFtdLCBbU0VEXSwgWzFdLCBb QSBzZWQgcHJvZ3JhbSB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dF0pCi0rX0xUX0RFQ0wo W10sIFtYc2VkXSwgWyJcJFNFRCAtZSAxcy9eWC8vIl0sCi0rICAgIFtTZWQgdGhhdCBoZWxwcyB1 cyBhdm9pZCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyBlY2hvKDEpIG9wdGlvbnMgbGlrZSAtbl0p Ci0rXSkjIF9MVF9ERUNMX1NFRAotKwotK200X2lmbmRlZihbQUNfUFJPR19TRURdLCBbCi0rIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Ci0rIyBOT1RFOiBUaGlzIG1hY3JvIGhhcyBiZWVuIHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGlu dG8gICAjCi0rIyAgR05VIEF1dG9jb25mIGFzIEFDX1BST0dfU0VELiAgV2hlbiBpdCBpcyBhdmFp bGFibGUgaW4gICAjCi0rIyAgYSByZWxlYXNlZCB2ZXJzaW9uIG9mIEF1dG9jb25mIHdlIHNob3Vs ZCByZW1vdmUgdGhpcyAgICAjCi0rIyAgbWFjcm8gYW5kIHVzZSBpdCBpbnN0ZWFkLiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjCi0rIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0rCi0rbTRfZGVmdW4oW0FDX1BST0dfU0VE XSwKLStbQUNfTVNHX0NIRUNLSU5HKFtmb3IgYSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBv dXRwdXRdKQotK0FDX0NBQ0hFX1ZBTChsdF9jdl9wYXRoX1NFRCwKLStbIyBMb29wIHRocm91Z2gg dGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBzZWQgYW5kIGdzZWQuCi0rIyBUaGVuIHVzZSB0 aGF0IGxpc3Qgb2Ygc2VkJ3MgYXMgb25lcyB0byB0ZXN0IGZvciB0cnVuY2F0aW9uLgotK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICBmb3IgbHRfYWNfcHJvZyBpbiBzZWQgZ3NlZDsgZG8KLSsgICAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICAgICAgaWYgJGFzX2V4ZWN1 dGFibGVfcCAiJGFzX2Rpci8kbHRfYWNfcHJvZyRhY19leGVjX2V4dCI7IHRoZW4KLSsgICAgICAg IGx0X2FjX3NlZF9saXN0PSIkbHRfYWNfc2VkX2xpc3QgJGFzX2Rpci8kbHRfYWNfcHJvZyRhY19l eGVjX2V4dCIKLSsgICAgICBmaQotKyAgICBkb25lCi0rICBkb25lCi0rZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLStsdF9hY19tYXg9MAotK2x0X2FjX2NvdW50PTAKLSsjIEFkZCAvdXNyL3hwZzQv YmluL3NlZCBhcyBpdCBpcyB0eXBpY2FsbHkgZm91bmQgb24gU29sYXJpcwotKyMgYWxvbmcgd2l0 aCAvYmluL3NlZCB0aGF0IHRydW5jYXRlcyBvdXRwdXQuCi0rZm9yIGx0X2FjX3NlZCBpbiAkbHRf YWNfc2VkX2xpc3QgL3Vzci94cGc0L2Jpbi9zZWQ7IGRvCi0rICB0ZXN0ICEgLWYgJGx0X2FjX3Nl ZCAmJiBjb250aW51ZQotKyAgY2F0IC9kZXYvbnVsbCA+IGNvbmZ0ZXN0LmluCi0rICBsdF9hY19j b3VudD0wCi0rICBlY2hvICRFQ0hPX04gIjAxMjM0NTY3ODkkRUNIT19DIiA+Y29uZnRlc3QuaW4K LSsgICMgQ2hlY2sgZm9yIEdOVSBzZWQgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsg IGlmICIkbHRfYWNfc2VkIiAtLXZlcnNpb24gMj4mMSA8IC9kZXYvbnVsbCB8IGdyZXAgJ0dOVScg PiAvZGV2L251bGw7IHRoZW4KLSsgICAgbHRfY3ZfcGF0aF9TRUQ9JGx0X2FjX3NlZAotKyAgICBi cmVhawotKyAgZmkKLSsgIHdoaWxlIHRydWU7IGRvCi0rICAgIGNhdCBjb25mdGVzdC5pbiBjb25m dGVzdC5pbiA+Y29uZnRlc3QudG1wCi0rICAgIG12IGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5pbgot KyAgICBjcCBjb25mdGVzdC5pbiBjb25mdGVzdC5ubAotKyAgICBlY2hvID4+Y29uZnRlc3QubmwK LSsgICAgJGx0X2FjX3NlZCAtZSAncy9hJC8vJyA8IGNvbmZ0ZXN0Lm5sID5jb25mdGVzdC5vdXQg fHwgYnJlYWsKLSsgICAgY21wIC1zIGNvbmZ0ZXN0Lm91dCBjb25mdGVzdC5ubCB8fCBicmVhawot KyAgICAjIDEwMDAwIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKLSsgICAg dGVzdCAkbHRfYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCi0rICAgIGx0X2FjX2NvdW50PWBleHBy ICRsdF9hY19jb3VudCArIDFgCi0rICAgIGlmIHRlc3QgJGx0X2FjX2NvdW50IC1ndCAkbHRfYWNf bWF4OyB0aGVuCi0rICAgICAgbHRfYWNfbWF4PSRsdF9hY19jb3VudAotKyAgICAgIGx0X2N2X3Bh dGhfU0VEPSRsdF9hY19zZWQKLSsgICAgZmkKLSsgIGRvbmUKLStkb25lCi0rXSkKLStTRUQ9JGx0 X2N2X3BhdGhfU0VECi0rQUNfU1VCU1QoW1NFRF0pCi0rQUNfTVNHX1JFU1VMVChbJFNFRF0pCi0r XSkjQUNfUFJPR19TRUQKLStdKSNtNF9pZm5kZWYKLSsKLSsjIE9sZCBuYW1lOgotK0FVX0FMSUFT KFtMVF9BQ19QUk9HX1NFRF0sIFtBQ19QUk9HX1NFRF0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihbTFRfQUNfUFJPR19TRURdLCBbXSkK LSsKLSsKLSsjIF9MVF9DSEVDS19TSEVMTF9GRUFUVVJFUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBGaW5kIG91dCB3aGV0aGVyIHRoZSBzaGVsbCBpcyBCb3VybmUgb3IgWFNJIGNv bXBhdGlibGUsCi0rIyBvciBoYXMgc29tZSBvdGhlciB1c2VmdWwgZmVhdHVyZXMuCi0rbTRfZGVm dW4oW19MVF9DSEVDS19TSEVMTF9GRUFUVVJFU10sCi0rW0FDX01TR19DSEVDS0lORyhbd2hldGhl ciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29uc3RydWN0c10pCi0rIyBUcnkgc29t ZSBYU0kgZmVhdHVyZXMKLSt4c2lfc2hlbGw9bm8KLSsoIF9sdF9kdW1teT0iYS9iL2MiCi0rICB0 ZXN0ICIke19sdF9kdW1teSMjKi99LCR7X2x0X2R1bW15JS8qfSwke19sdF9kdW1teSM/P30iJHtf bHRfZHVtbXklIiRfbHRfZHVtbXkifSwgXAotKyAgICAgID0gYyxhL2IsYi9jLCBcCi0rICAgICYm IGV2YWwgJ3Rlc3QgJCgoIDEgKyAxICkpIC1lcSAyIFwKLSsgICAgJiYgdGVzdCAiJHsjX2x0X2R1 bW15fSIgLWVxIDUnICkgPi9kZXYvbnVsbCAyPiYxIFwKLSsgICYmIHhzaV9zaGVsbD15ZXMKLStB Q19NU0dfUkVTVUxUKFskeHNpX3NoZWxsXSkKLStfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbeHNp X3NoZWxsPSckeHNpX3NoZWxsJ10pCi0rCi0rQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSBz aGVsbCB1bmRlcnN0YW5kcyAiKz0iXSkKLStsdF9zaGVsbF9hcHBlbmQ9bm8KLSsoIGZvbz1iYXI7 IHNldCBmb28gYmF6OyBldmFsICIkWzFdKz1cJFsyXSIgJiYgdGVzdCAiJGZvbyIgPSBiYXJiYXog KSBcCi0rICAgID4vZGV2L251bGwgMj4mMSBcCi0rICAmJiBsdF9zaGVsbF9hcHBlbmQ9eWVzCi0r QUNfTVNHX1JFU1VMVChbJGx0X3NoZWxsX2FwcGVuZF0pCi0rX0xUX0NPTkZJR19MSUJUT09MX0lO SVQoW2x0X3NoZWxsX2FwcGVuZD0nJGx0X3NoZWxsX2FwcGVuZCddKQotKwotK2lmICggKE1BSUw9 NjA7IHVuc2V0IE1BSUwpIHx8IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgbHRfdW5z ZXQ9dW5zZXQKLStlbHNlCi0rICBsdF91bnNldD1mYWxzZQotK2ZpCi0rX0xUX0RFQ0woW10sIFts dF91bnNldF0sIFswXSwgW3doZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzICJ1bnNldCJdKWRu bAotKwotKyMgdGVzdCBFQkNESUMgb3IgQVNDSUkKLStjYXNlIGBlY2hvIFh8dHIgWCAnXDEwMSdg IGluCi0rIEEpICMgQVNDSUkgYmFzZWQgc3lzdGVtCi0rICAgICMgXG4gaXMgbm90IGludGVycHJl dGVkIGNvcnJlY3RseSBieSBTb2xhcmlzIDggL3Vzci91Y2IvdHIKLSsgIGx0X1NQMk5MPSd0ciBc MDQwIFwwMTInCi0rICBsdF9OTDJTUD0ndHIgXDAxNVwwMTIgXDA0MFwwNDAnCi0rICA7OwotKyAq KSAjIEVCQ0RJQyBiYXNlZCBzeXN0ZW0KLSsgIGx0X1NQMk5MPSd0ciBcMTAwIFxuJwotKyAgbHRf TkwyU1A9J3RyIFxyXG4gXDEwMFwxMDAnCi0rICA7OwotK2VzYWMKLStfTFRfREVDTChbU1AyTkxd LCBbbHRfU1AyTkxdLCBbMV0sIFt0dXJuIHNwYWNlcyBpbnRvIG5ld2xpbmVzXSlkbmwKLStfTFRf REVDTChbTkwyU1BdLCBbbHRfTkwyU1BdLCBbMV0sIFt0dXJuIG5ld2xpbmVzIGludG8gc3BhY2Vz XSlkbmwKLStdKSMgX0xUX0NIRUNLX1NIRUxMX0ZFQVRVUkVTCi0rCi0rCi0rIyBfTFRfUFJPR19G VU5DVElPTl9SRVBMQUNFIChGVU5DTkFNRSwgUkVQTEFDRU1FTlQtQk9EWSkKLSsjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgSW4gYCRj ZmdmaWxlJywgbG9vayBmb3IgZnVuY3Rpb24gRlVOQ05BTUUgZGVsaW1pdGVkIGJ5IGBeRlVOQ05B TUUgKCkkJyBhbmQKLSsjICdefSBGVU5DTkFNRSAnLCBhbmQgcmVwbGFjZSBpdHMgYm9keSB3aXRo IFJFUExBQ0VNRU5ULUJPRFkuCi0rbTRfZGVmdW4oW19MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0Vd LAotK1tkbmwgewotK3NlZCAtZSAnL14kMSAoKSQvLC9efSAjICQxIC9jXAotKyQxICgpXAotK3tc Ci0rbTRfYnBhdHN1YnN0cyhbJDJdLCBbJF0sIFtcXF0sIFteXChbCSBdXCldLCBbXFxcMV0pCi0r fSAjIEV4dGVuZGVkLXNoZWxsICQxIGltcGxlbWVudGF0aW9uJyAiJGNmZ2ZpbGUiID4gJGNmZ2Zp bGUudG1wIFwKLSsgICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAotKyAgICB8 fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJt IC1mICIkY2ZnZmlsZS50bXAiKQotK3Rlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxh Y2VfZmFpbD06Ci0rXSkKLSsKLSsKLSsjIF9MVF9QUk9HX1JFUExBQ0VfU0hFTExGTlMKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFJlcGxhY2UgZXhpc3RpbmcgcG9ydGFibGUgaW1w bGVtZW50YXRpb25zIG9mIHNldmVyYWwgc2hlbGwgZnVuY3Rpb25zIHdpdGgKLSsjIGVxdWl2YWxl bnQgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb25zIHdoZXJlIHRob3NlIGZlYXR1cmVzIGFy ZSBhdmFpbGFibGUuLgotK200X2RlZnVuKFtfTFRfUFJPR19SRVBMQUNFX1NIRUxMRk5TXSwKLStb aWYgdGVzdCB4IiR4c2lfc2hlbGwiID0geHllczsgdGhlbgotKyAgX0xUX1BST0dfRlVOQ1RJT05f UkVQTEFDRShbZnVuY19kaXJuYW1lXSwgW2RubAotKyAgICBjYXNlICR7MX0gaW4KLSsgICAgICAq LyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OwotKyAgICAgICogICkgZnVu Y19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKLSsgICAgZXNhY10pCi0rCi0rICBfTFRfUFJPR19G VU5DVElPTl9SRVBMQUNFKFtmdW5jX2Jhc2VuYW1lXSwgW2RubAotKyAgICBmdW5jX2Jhc2VuYW1l X3Jlc3VsdD0iJHsxIyMqL30iXSkKLSsKLSsgIF9MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0UoW2Z1 bmNfZGlybmFtZV9hbmRfYmFzZW5hbWVdLCBbZG5sCi0rICAgIGNhc2UgJHsxfSBpbgotKyAgICAg ICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7Ci0rICAgICAgKiAgKSBm dW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IiA7OwotKyAgICBlc2FjCi0rICAgIGZ1bmNfYmFzZW5h bWVfcmVzdWx0PSIkezEjIyovfSJdKQotKwotKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShb ZnVuY19zdHJpcG5hbWVdLCBbZG5sCi0rICAgICMgcGRrc2ggNS4yLjE0IGRvZXMgbm90IGRvICR7 WCUkWX0gY29ycmVjdGx5IGlmIGJvdGggWCBhbmQgWSBhcmUKLSsgICAgIyBwb3NpdGlvbmFsIHBh cmFtZXRlcnMsIHNvIGFzc2lnbiBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0LgotKyAg ICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHszfQotKyAgICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9 JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQjIiR7MX0ifQotKyAgICBmdW5jX3N0cmlwbmFtZV9yZXN1 bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQlIiR7Mn0ifV0pCi0rCi0rICBfTFRfUFJPR19GVU5D VElPTl9SRVBMQUNFKFtmdW5jX3NwbGl0X2xvbmdfb3B0XSwgW2RubAotKyAgICBmdW5jX3NwbGl0 X2xvbmdfb3B0X25hbWU9JHsxJSU9Kn0KLSsgICAgZnVuY19zcGxpdF9sb25nX29wdF9hcmc9JHsx Iyo9fV0pCi0rCi0rICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX3NwbGl0X3Nob3J0 X29wdF0sIFtkbmwKLSsgICAgZnVuY19zcGxpdF9zaG9ydF9vcHRfYXJnPSR7MSM/P30KLSsgICAg ZnVuY19zcGxpdF9zaG9ydF9vcHRfbmFtZT0kezElIiRmdW5jX3NwbGl0X3Nob3J0X29wdF9hcmci fV0pCi0rCi0rICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX2xvMm9dLCBbZG5sCi0r ICAgIGNhc2UgJHsxfSBpbgotKyAgICAgICoubG8pIGZ1bmNfbG8yb19yZXN1bHQ9JHsxJS5sb30u JHtvYmpleHR9IDs7Ci0rICAgICAgKikgICAgZnVuY19sbzJvX3Jlc3VsdD0kezF9IDs7Ci0rICAg IGVzYWNdKQotKwotKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY194Zm9ybV0sIFsg ICAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sb10pCi0rCi0rICBfTFRfUFJPR19GVU5DVElP Tl9SRVBMQUNFKFtmdW5jX2FyaXRoXSwgWyAgICBmdW5jX2FyaXRoX3Jlc3VsdD0kKCggJFsqXSAp KV0pCi0rCi0rICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX2xlbl0sIFsgICAgZnVu Y19sZW5fcmVzdWx0PSR7IzF9XSkKLStmaQotKwotK2lmIHRlc3QgeCIkbHRfc2hlbGxfYXBwZW5k IiA9IHh5ZXM7IHRoZW4KLSsgIF9MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0UoW2Z1bmNfYXBwZW5k XSwgWyAgICBldmFsICIkezF9Kz1cXCR7Mn0iXSkKLSsKLSsgIF9MVF9QUk9HX0ZVTkNUSU9OX1JF UExBQ0UoW2Z1bmNfYXBwZW5kX3F1b3RlZF0sIFtkbmwKLSsgICAgZnVuY19xdW90ZV9mb3JfZXZh bCAiJHsyfSIKLStkbmwgbTQgZXhwYW5zaW9uIHR1cm5zIFxcXFwgaW50byBcXCwgYW5kIHRoZW4g dGhlIHNoZWxsIGV2YWwgdHVybnMgdGhhdCBpbnRvIFwKLSsgICAgZXZhbCAiJHsxfSs9XFxcXCBc XCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCJdKQotKwotKyAgIyBTYXZlIGEgYGZ1bmNfYXBw ZW5kJyBmdW5jdGlvbiBjYWxsIHdoZXJlIHBvc3NpYmxlIGJ5IGRpcmVjdCB1c2Ugb2YgJys9Jwot KyAgc2VkIC1lICdzJWZ1bmNfYXBwZW5kIFwoW1thLXpBLVpfXV1cezEsXH1cKSAiJVwxKz0iJWcn ICRjZmdmaWxlID4gJGNmZ2ZpbGUudG1wIFwKLSsgICAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIg IiRjZmdmaWxlIiBcCi0rICAgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxl LnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKLSsgIHRlc3QgMCAtZXEg JD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06Ci0rZWxzZQotKyAgIyBTYXZlIGEgYGZ1 bmNfYXBwZW5kJyBmdW5jdGlvbiBjYWxsIGV2ZW4gd2hlbiAnKz0nIGlzIG5vdCBhdmFpbGFibGUK LSsgIHNlZCAtZSAncyVmdW5jX2FwcGVuZCBcKFtbYS16QS1aX11dXHsxLFx9XCkgIiVcMT0iJFwx JWcnICRjZmdmaWxlID4gJGNmZ2ZpbGUudG1wIFwKLSsgICAgJiYgbXYgLWYgIiRjZmdmaWxlLnRt cCIgIiRjZmdmaWxlIiBcCi0rICAgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdm aWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKLSsgIHRlc3QgMCAt ZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06Ci0rZmkKLSsKLStpZiB0ZXN0IHgi JF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWwiID0geCI6IjsgdGhlbgotKyAgQUNfTVNHX1dBUk4o W1VuYWJsZSB0byBzdWJzdGl0dXRlIGV4dGVuZGVkIHNoZWxsIGZ1bmN0aW9ucyBpbiAkb2ZpbGVd KQotK2ZpCi0rXSkKLSsKLSsjIF9MVF9QQVRIX0NPTlZFUlNJT05fRlVOQ1RJT05TCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRGV0ZXJtaW5lIHdoaWNoIGZpbGUgbmFtZSBj b252ZXJzaW9uIGZ1bmN0aW9ucyBzaG91bGQgYmUgdXNlZCBieQotKyMgZnVuY190b19ob3N0X2Zp bGUgKGFuZCwgaW1wbGljaXRseSwgYnkgZnVuY190b19ob3N0X3BhdGgpLiAgVGhlc2UgYXJlIG5l ZWRlZAotKyMgZm9yIGNlcnRhaW4gY3Jvc3MtY29tcGlsZSBjb25maWd1cmF0aW9ucyBhbmQgbmF0 aXZlIG1pbmd3LgotK200X2RlZnVuKFtfTFRfUEFUSF9DT05WRVJTSU9OX0ZVTkNUSU9OU10sCi0r W0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19DQU5P TklDQUxfQlVJTERdKWRubAotK0FDX01TR19DSEVDS0lORyhbaG93IHRvIGNvbnZlcnQgJGJ1aWxk IGZpbGUgbmFtZXMgdG8gJGhvc3QgZm9ybWF0XSkKLStBQ19DQUNIRV9WQUwobHRfY3ZfdG9faG9z dF9maWxlX2NtZCwKLStbY2FzZSAkaG9zdCBpbgotKyAgKi0qLW1pbmd3KiApCi0rICAgIGNhc2Ug JGJ1aWxkIGluCi0rICAgICAgKi0qLW1pbmd3KiApICMgYWN0dWFsbHkgbXN5cwotKyAgICAgICAg bHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgotKyAg ICAgICAgOzsKLSsgICAgICAqLSotY3lnd2luKiApCi0rICAgICAgICBsdF9jdl90b19ob3N0X2Zp bGVfY21kPWZ1bmNfY29udmVydF9maWxlX2N5Z3dpbl90b193MzIKLSsgICAgICAgIDs7Ci0rICAg ICAgKiApICMgb3RoZXJ3aXNlLCBhc3N1bWUgKm5peAotKyAgICAgICAgbHRfY3ZfdG9faG9zdF9m aWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fdzMyCi0rICAgICAgICA7OwotKyAgICBl c2FjCi0rICAgIDs7Ci0rICAqLSotY3lnd2luKiApCi0rICAgIGNhc2UgJGJ1aWxkIGluCi0rICAg ICAgKi0qLW1pbmd3KiApICMgYWN0dWFsbHkgbXN5cwotKyAgICAgICAgbHRfY3ZfdG9faG9zdF9m aWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX2N5Z3dpbgotKyAgICAgICAgOzsKLSsg ICAgICAqLSotY3lnd2luKiApCi0rICAgICAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNf Y29udmVydF9maWxlX25vb3AKLSsgICAgICAgIDs7Ci0rICAgICAgKiApICMgb3RoZXJ3aXNlLCBh c3N1bWUgKm5peAotKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRf ZmlsZV9uaXhfdG9fY3lnd2luCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICAq ICkgIyB1bmhhbmRsZWQgaG9zdHMgKGFuZCAibm9ybWFsIiBuYXRpdmUgYnVpbGRzKQotKyAgICBs dF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX25vb3AKLSsgICAgOzsKLStl c2FjCi0rXSkKLSt0b19ob3N0X2ZpbGVfY21kPSRsdF9jdl90b19ob3N0X2ZpbGVfY21kCi0rQUNf TVNHX1JFU1VMVChbJGx0X2N2X3RvX2hvc3RfZmlsZV9jbWRdKQotK19MVF9ERUNMKFt0b19ob3N0 X2ZpbGVfY21kXSwgW2x0X2N2X3RvX2hvc3RfZmlsZV9jbWRdLAotKyAgICAgICAgIFswXSwgW2Nv bnZlcnQgJGJ1aWxkIGZpbGUgbmFtZXMgdG8gJGhvc3QgZm9ybWF0XSlkbmwKLSsKLStBQ19NU0df Q0hFQ0tJTkcoW2hvdyB0byBjb252ZXJ0ICRidWlsZCBmaWxlIG5hbWVzIHRvIHRvb2xjaGFpbiBm b3JtYXRdKQotK0FDX0NBQ0hFX1ZBTChsdF9jdl90b190b29sX2ZpbGVfY21kLAotK1sjYXNzdW1l IG9yZGluYXJ5IGNyb3NzIHRvb2xzLCBvciBuYXRpdmUgYnVpbGQuCi0rbHRfY3ZfdG9fdG9vbF9m aWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9ub29wCi0rY2FzZSAkaG9zdCBpbgotKyAgKi0qLW1p bmd3KiApCi0rICAgIGNhc2UgJGJ1aWxkIGluCi0rICAgICAgKi0qLW1pbmd3KiApICMgYWN0dWFs bHkgbXN5cwotKyAgICAgICAgbHRfY3ZfdG9fdG9vbF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmls ZV9tc3lzX3RvX3czMgotKyAgICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7OwotK2VzYWMKLStd KQotK3RvX3Rvb2xfZmlsZV9jbWQ9JGx0X2N2X3RvX3Rvb2xfZmlsZV9jbWQKLStBQ19NU0dfUkVT VUxUKFskbHRfY3ZfdG9fdG9vbF9maWxlX2NtZF0pCi0rX0xUX0RFQ0woW3RvX3Rvb2xfZmlsZV9j bWRdLCBbbHRfY3ZfdG9fdG9vbF9maWxlX2NtZF0sCi0rICAgICAgICAgWzBdLCBbY29udmVydCAk YnVpbGQgZmlsZXMgdG8gdG9vbGNoYWluIGZvcm1hdF0pZG5sCi0rXSkjIF9MVF9QQVRIX0NPTlZF UlNJT05fRlVOQ1RJT05TCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0bWFp bi5zaCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0bWFpbi5zaAotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9sdG1haW4uc2gJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0bWFpbi5zaAkyMDExLTA3LTAzIDE4 OjQ0OjIyLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw5NjM2IEBACi0rCi0rIyBsaWJ0b29s IChHTlUgbGlidG9vbCkgMi40Ci0rIyBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0IDxnb3Jk QGdudS5haS5taXQuZWR1PiwgMTk5NgotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAx OTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LAotKyMgMjAwNywg MjAwOCwgMjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMg aXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4g IFRoZXJlIGlzIE5PCi0rIyB3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLSsjIEdOVSBMaWJ0b29sIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsj IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KLSsjCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSwKLSsjIGlmIHlvdSBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0 IG9mIGEgcHJvZ3JhbSBvciBsaWJyYXJ5IHRoYXQKLSsjIGlzIGJ1aWx0IHVzaW5nIEdOVSBMaWJ0 b29sLCB5b3UgbWF5IGluY2x1ZGUgdGhpcyBmaWxlIHVuZGVyIHRoZQotKyMgc2FtZSBkaXN0cmli dXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0r IwotKyMgR05VIExpYnRvb2wgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwgYnV0Ci0rIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotKyMgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIEdO VSBMaWJ0b29sOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgYSBjb3B5Ci0rIyBjYW4g YmUgZG93bmxvYWRlZCBmcm9tIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbCwK LSsjIG9yIG9idGFpbmVkIGJ5IHdyaXRpbmcgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLiwKLSsjIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg MDIxMTAtMTMwMSwgVVNBLgotKwotKyMgVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiBbTU9E RS1BUkddLi4uCi0rIwotKyMgUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1 cHBvcnQgc2VydmljZXMuCi0rIwotKyMgICAgICAgLS1jb25maWcgICAgICAgICAgICAgc2hvdyBh bGwgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMKLSsjICAgICAgIC0tZGVidWcgICAgICAgICAgICAg IGVuYWJsZSB2ZXJib3NlIHNoZWxsIHRyYWNpbmcKLSsjICAgLW4sIC0tZHJ5LXJ1biAgICAgICAg ICAgIGRpc3BsYXkgY29tbWFuZHMgd2l0aG91dCBtb2RpZnlpbmcgYW55IGZpbGVzCi0rIyAgICAg ICAtLWZlYXR1cmVzICAgICAgICAgICBkaXNwbGF5IGJhc2ljIGNvbmZpZ3VyYXRpb24gaW5mb3Jt YXRpb24gYW5kIGV4aXQKLSsjICAgICAgIC0tbW9kZT1NT0RFICAgICAgICAgIHVzZSBvcGVyYXRp b24gbW9kZSBNT0RFCi0rIyAgICAgICAtLXByZXNlcnZlLWR1cC1kZXBzICBkb24ndCByZW1vdmUg ZHVwbGljYXRlIGRlcGVuZGVuY3kgbGlicmFyaWVzCi0rIyAgICAgICAtLXF1aWV0LCAtLXNpbGVu dCAgICBkb24ndCBwcmludCBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzCi0rIyAgICAgICAtLW5vLXF1 aWV0LCAtLW5vLXNpbGVudAotKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaW5m b3JtYXRpb25hbCBtZXNzYWdlcyAoZGVmYXVsdCkKLSsjICAgICAgIC0tdGFnPVRBRyAgICAgICAg ICAgIHVzZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmcm9tIHRhZyBUQUcKLSsjICAgLXYsIC0t dmVyYm9zZSAgICAgICAgICAgIHByaW50IG1vcmUgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyB0aGFu IGRlZmF1bHQKLSsjICAgICAgIC0tbm8tdmVyYm9zZSAgICAgICAgIGRvbid0IHByaW50IHRoZSBl eHRyYSBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzCi0rIyAgICAgICAtLXZlcnNpb24gICAgICAgICAg ICBwcmludCB2ZXJzaW9uIGluZm9ybWF0aW9uCi0rIyAgIC1oLCAtLWhlbHAsIC0taGVscC1hbGwg ICBwcmludCBzaG9ydCwgbG9uZywgb3IgZGV0YWlsZWQgaGVscCBtZXNzYWdlCi0rIwotKyMgTU9E RSBtdXN0IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOgotKyMKLSsjICAgICAgICAgY2xlYW4gICAg ICAgICAgICAgIHJlbW92ZSBmaWxlcyBmcm9tIHRoZSBidWlsZCBkaXJlY3RvcnkKLSsjICAgICAg ICAgY29tcGlsZSAgICAgICAgICAgIGNvbXBpbGUgYSBzb3VyY2UgZmlsZSBpbnRvIGEgbGlidG9v bCBvYmplY3QKLSsjICAgICAgICAgZXhlY3V0ZSAgICAgICAgICAgIGF1dG9tYXRpY2FsbHkgc2V0 IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9ncmFtCi0rIyAgICAgICAgIGZpbmlzaCAgICAg ICAgICAgICBjb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzCi0r IyAgICAgICAgIGluc3RhbGwgICAgICAgICAgICBpbnN0YWxsIGxpYnJhcmllcyBvciBleGVjdXRh YmxlcwotKyMgICAgICAgICBsaW5rICAgICAgICAgICAgICAgY3JlYXRlIGEgbGlicmFyeSBvciBh biBleGVjdXRhYmxlCi0rIyAgICAgICAgIHVuaW5zdGFsbCAgICAgICAgICByZW1vdmUgbGlicmFy aWVzIGZyb20gYW4gaW5zdGFsbGVkIGRpcmVjdG9yeQotKyMKLSsjIE1PREUtQVJHUyB2YXJ5IGRl cGVuZGluZyBvbiB0aGUgTU9ERS4gIFdoZW4gcGFzc2VkIGFzIGZpcnN0IG9wdGlvbiwKLSsjIGAt LW1vZGU9TU9ERScgbWF5IGJlIGFiYnJldmlhdGVkIGFzIGBNT0RFJyBvciBhIHVuaXF1ZSBhYmJy ZXZpYXRpb24gb2YgdGhhdC4KLSsjIFRyeSBgJHByb2duYW1lIC0taGVscCAtLW1vZGU9TU9ERScg Zm9yIGEgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiBNT0RFLgotKyMKLSsjIFdoZW4gcmVw b3J0aW5nIGEgYnVnLCBwbGVhc2UgZGVzY3JpYmUgYSB0ZXN0IGNhc2UgdG8gcmVwcm9kdWNlIGl0 IGFuZAotKyMgaW5jbHVkZSB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOgotKyMKLSsjICAgICAg ICAgaG9zdC10cmlwbGV0OgkkaG9zdAotKyMgICAgICAgICBzaGVsbDoJCSRTSEVMTAotKyMgICAg ICAgICBjb21waWxlcjoJCSRMVENDCi0rIyAgICAgICAgIGNvbXBpbGVyIGZsYWdzOgkJJExUQ0ZM QUdTCi0rIyAgICAgICAgIGxpbmtlcjoJCSRMRCAoZ251PyAkd2l0aF9nbnVfbGQpCi0rIyAgICAg ICAgICRwcm9nbmFtZToJKEdOVSBsaWJ0b29sKSAyLjQKLSsjICAgICAgICAgYXV0b21ha2U6CSRh dXRvbWFrZV92ZXJzaW9uCi0rIyAgICAgICAgIGF1dG9jb25mOgkkYXV0b2NvbmZfdmVyc2lvbgot KyMKLSsjIFJlcG9ydCBidWdzIHRvIDxidWctbGlidG9vbEBnbnUub3JnPi4KLSsjIEdOVSBsaWJ0 b29sIGhvbWUgcGFnZTogPGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJ0b29sLz4uCi0r IyBHZW5lcmFsIGhlbHAgdXNpbmcgR05VIHNvZnR3YXJlOiA8aHR0cDovL3d3dy5nbnUub3JnL2dl dGhlbHAvPi4KLSsKLStQUk9HUkFNPWxpYnRvb2wKLStQQUNLQUdFPWxpYnRvb2wKLStWRVJTSU9O PTIuNAotK1RJTUVTVEFNUD0iIgotK3BhY2thZ2VfcmV2aXNpb249MS4zMjkzCi0rCi0rIyBCZSBC b3VybmUgY29tcGF0aWJsZQotK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVt dWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgZW11bGF0ZSBzaAotKyAgTlVMTENN RD06Ci0rICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiAkezEr IiRAIn0sIHdoaWNoCi0rICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhp cyBmZWF0dXJlLgotKyAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi0rICBzZXRvcHQgTk9f R0xPQl9TVUJTVAotK2Vsc2UKLSsgIGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbiAqcG9z aXgqKSBzZXQgLW8gcG9zaXg7OyBlc2FjCi0rZmkKLStCSU5fU0g9eHBnNDsgZXhwb3J0IEJJTl9T SCAjIGZvciBUcnU2NAotK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gK LSsKLSsjIEEgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHdoZW4gdGhlcmUgaXMgbm8gcHJpbnQgYnVp bHRpbiBvciBwcmludGYuCi0rZnVuY19mYWxsYmFja19lY2hvICgpCi0rewotKyAgZXZhbCAnY2F0 IDw8X0xURUNIT19FT0YKLSskMQotK19MVEVDSE9fRU9GJwotK30KLSsKLSsjIE5MUyBudWlzYW5j ZXM6IFdlIHNhdmUgdGhlIG9sZCB2YWx1ZXMgdG8gcmVzdG9yZSBkdXJpbmcgZXhlY3V0ZSBtb2Rl LgotK2x0X3VzZXJfbG9jYWxlPQotK2x0X3NhZmVfbG9jYWxlPQotK2ZvciBsdF92YXIgaW4gTEFO RyBMQU5HVUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUwotK2RvCi0r ICBldmFsICJpZiB0ZXN0IFwiXCR7JGx0X3ZhcitzZXR9XCIgPSBzZXQ7IHRoZW4KLSsgICAgICAg ICAgc2F2ZV8kbHRfdmFyPVwkJGx0X3ZhcgotKyAgICAgICAgICAkbHRfdmFyPUMKLSsJICBleHBv cnQgJGx0X3ZhcgotKwkgIGx0X3VzZXJfbG9jYWxlPVwiJGx0X3Zhcj1cXFwkc2F2ZV9cJGx0X3Zh cjsgXCRsdF91c2VyX2xvY2FsZVwiCi0rCSAgbHRfc2FmZV9sb2NhbGU9XCIkbHRfdmFyPUM7IFwk bHRfc2FmZV9sb2NhbGVcIgotKwlmaSIKLStkb25lCi0rTENfQUxMPUMKLStMQU5HVUFHRT1DCi0r ZXhwb3J0IExBTkdVQUdFIExDX0FMTAotKwotKyRsdF91bnNldCBDRFBBVEgKLSsKLSsKLSsjIFdv cmsgYXJvdW5kIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXNzdWUgb24gSVJJWCA2LjUuIE9uIElS SVggNi40Kywgc2gKLSsjIGlzIGtzaCBidXQgd2hlbiB0aGUgc2hlbGwgaXMgaW52b2tlZCBhcyAi c2giIGFuZCB0aGUgY3VycmVudCB2YWx1ZSBvZgotKyMgdGhlIF9YUEcgZW52aXJvbm1lbnQgdmFy aWFibGUgaXMgbm90IGVxdWFsIHRvIDEgKG9uZSksIHRoZSBzcGVjaWFsCi0rIyBwb3NpdGlvbmFs IHBhcmFtZXRlciAkMCwgd2l0aGluIGEgZnVuY3Rpb24gY2FsbCwgaXMgdGhlIG5hbWUgb2YgdGhl Ci0rIyBmdW5jdGlvbi4KLStwcm9ncGF0aD0iJDAiCi0rCi0rCi0rCi0rOiAke0NQPSJjcCAtZiJ9 Ci0rdGVzdCAiJHtFQ0hPK3NldH0iID0gc2V0IHx8IEVDSE89JHthc19lY2hvLSdwcmludGYgJXNc bid9Ci0rOiAke0VHUkVQPSIvYmluL2dyZXAgLUUifQotKzogJHtGR1JFUD0iL2Jpbi9ncmVwIC1G In0KLSs6ICR7R1JFUD0iL2Jpbi9ncmVwIn0KLSs6ICR7TE5fUz0ibG4gLXMifQotKzogJHtNQUtF PSJtYWtlIn0KLSs6ICR7TUtESVI9Im1rZGlyIn0KLSs6ICR7TVY9Im12IC1mIn0KLSs6ICR7Uk09 InJtIC1mIn0KLSs6ICR7U0VEPSIvYmluL3NlZCJ9Ci0rOiAke1NIRUxMPSIke0NPTkZJR19TSEVM TC0vYmluL3NofSJ9Ci0rOiAke1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyJ9Ci0rCi0rIyBHbG9iYWwg dmFyaWFibGVzOgotK0VYSVRfU1VDQ0VTUz0wCi0rRVhJVF9GQUlMVVJFPTEKLStFWElUX01JU01B VENIPTYzICAjICQ/ID0gNjMgaXMgdXNlZCB0byBpbmRpY2F0ZSB2ZXJzaW9uIG1pc21hdGNoIHRv IG1pc3NpbmcuCi0rRVhJVF9TS0lQPTc3CSAgIyAkPyA9IDc3IGlzIHVzZWQgdG8gaW5kaWNhdGUg YSBza2lwcGVkIHRlc3QgdG8gYXV0b21ha2UuCi0rCi0rZXhpdF9zdGF0dXM9JEVYSVRfU1VDQ0VT UwotKwotKyMgTWFrZSBzdXJlIElGUyBoYXMgYSBzZW5zaWJsZSBkZWZhdWx0Ci0rbHRfbmw9Jwot KycKLStJRlM9IiAJJGx0X25sIgotKwotK2Rpcm5hbWU9InMsL1teL10qJCwsIgotK2Jhc2VuYW1l PSJzLF4uKi8sLCIKLSsKLSsjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFj ZW1lbnQKLSsjIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQg QVBQRU5EIHRvIHRoZSByZXN1bHQsCi0rIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJf UkVQTEFDRU1FTlQuCi0rZnVuY19kaXJuYW1lICgpCi0rewotKyAgICBmdW5jX2Rpcm5hbWVfcmVz dWx0PWAkRUNITyAiJHsxfSIgfCAkU0VEICIkZGlybmFtZSJgCi0rICAgIGlmIHRlc3QgIlgkZnVu Y19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7MX0iOyB0aGVuCi0rICAgICAgZnVuY19kaXJuYW1lX3Jl c3VsdD0iJHszfSIKLSsgICAgZWxzZQotKyAgICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiRmdW5j X2Rpcm5hbWVfcmVzdWx0JHsyfSIKLSsgICAgZmkKLSt9ICMgZnVuY19kaXJuYW1lIG1heSBiZSBy ZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgotKwotKwotKyMgZnVuY19i YXNlbmFtZSBmaWxlCi0rZnVuY19iYXNlbmFtZSAoKQotK3sKLSsgICAgZnVuY19iYXNlbmFtZV9y ZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgIiRiYXNlbmFtZSJgCi0rfSAjIGZ1bmNfYmFzZW5h bWUgbWF5IGJlIHJlcGxhY2VkIGJ5IGV4dGVuZGVkIHNoZWxsIGltcGxlbWVudGF0aW9uCi0rCi0r Ci0rIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNl bWVudAotKyMgcGVyZm9ybSBmdW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBzaW5n bGUgZnVuY3Rpb24KLSsjIGNhbGw6Ci0rIyAgIGRpcm5hbWU6ICBDb21wdXRlIHRoZSBkaXJuYW1l IG9mIEZJTEUuICBJZiBub25lbXB0eSwKLSsjICAgICAgICAgICAgIGFkZCBBUFBFTkQgdG8gdGhl IHJlc3VsdCwgb3RoZXJ3aXNlIHNldCByZXN1bHQKLSsjICAgICAgICAgICAgIHRvIE5PTkRJUl9S RVBMQUNFTUVOVC4KLSsjICAgICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19kaXJu YW1lX3Jlc3VsdCIKLSsjICAgYmFzZW5hbWU6IENvbXB1dGUgZmlsZW5hbWUgb2YgRklMRS4KLSsj ICAgICAgICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsj IEltcGxlbWVudGF0aW9uIG11c3QgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0aCBmdW5jX2Rpcm5h bWUKLSsjIGFuZCBmdW5jX2Jhc2VuYW1lLiBGb3IgZWZmaWNpZW5jeSwgd2UgZG8gbm90IGRlbGVn YXRlIHRvCi0rIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5j dGlvbmFsaXR5IGhlcmUuCi0rZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAoKQotK3sKLSsgICAg IyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KLSsgICAgZnVuY19kaXJu YW1lX3Jlc3VsdD1gJEVDSE8gIiR7MX0iIHwgJFNFRCAtZSAiJGRpcm5hbWUiYAotKyAgICBpZiB0 ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgotKyAgICAgIGZ1bmNf ZGlybmFtZV9yZXN1bHQ9IiR7M30iCi0rICAgIGVsc2UKLSsgICAgICBmdW5jX2Rpcm5hbWVfcmVz dWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0iCi0rICAgIGZpCi0rICAgIGZ1bmNfYmFzZW5h bWVfcmVzdWx0PWAkRUNITyAiJHsxfSIgfCAkU0VEIC1lICIkYmFzZW5hbWUiYAotK30gIyBmdW5j X2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBp bXBsZW1lbnRhdGlvbgotKwotKwotKyMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1l Ci0rIyBzdHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFNRS4KLSsjIFBSRUZJWCBhbmQg U1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAotKyMgY2hh cmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEg bGVhZGluZwotKyMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4K LSsjIGZ1bmNfc3RyaXBfc3VmZml4IHByZWZpeCBuYW1lCi0rZnVuY19zdHJpcG5hbWUgKCkKLSt7 Ci0rICAgIGNhc2UgJHsyfSBpbgotKyAgICAgIC4qKSBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRF Q0hPICIkezN9IiB8ICRTRUQgInMlXiR7MX0lJTsgcyVcXFxcJHsyfVwkJSUiYDs7Ci0rICAgICAg KikgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIiR7M30iIHwgJFNFRCAicyVeJHsxfSUl OyBzJSR7Mn1cJCUlImA7OwotKyAgICBlc2FjCi0rfSAjIGZ1bmNfc3RyaXBuYW1lIG1heSBiZSBy ZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgotKwotKwotKyMgVGhlc2Ug U0VEIHNjcmlwdHMgcHJlc3VwcG9zZSBhbiBhYnNvbHV0ZSBwYXRoIHdpdGggYSB0cmFpbGluZyBz bGFzaC4KLStwYXRoY2FyPSdzLF4vXChbXi9dKlwpLiokLFwxLCcKLStwYXRoY2RyPSdzLF4vW14v XSosLCcKLStyZW1vdmVkb3RwYXJ0cz0nOmRvdHNsCi0rCQlzQC9cLi9AL0BnCi0rCQl0IGRvdHNs Ci0rCQlzLC9cLiQsLywnCi0rY29sbGFwc2VzbGFzaGVzPSdzQC9cezEsXH1AL0BnJwotK2ZpbmFs c2xhc2g9J3MsLyokLC8sJwotKwotKyMgZnVuY19ub3JtYWxfYWJzcGF0aCBQQVRICi0rIyBSZW1v dmUgZG91YmxlZC11cCBhbmQgdHJhaWxpbmcgc2xhc2hlcywgIi4iIHBhdGggY29tcG9uZW50cywK LSsjIGFuZCBjYW5jZWwgb3V0IGFueSAiLi4iIHBhdGggY29tcG9uZW50cyBpbiBQQVRIIGFmdGVy IG1ha2luZwotKyMgaXQgYW4gYWJzb2x1dGUgcGF0aC4KLSsjICAgICAgICAgICAgIHZhbHVlIHJl dHVybmVkIGluICIkZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQiCi0rZnVuY19ub3JtYWxfYWJz cGF0aCAoKQotK3sKLSsgICMgU3RhcnQgZnJvbSByb290IGRpciBhbmQgcmVhc3NlbWJsZSB0aGUg cGF0aC4KLSsgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0PQotKyAgZnVuY19ub3JtYWxfYWJz cGF0aF90cGF0aD0kMQotKyAgZnVuY19ub3JtYWxfYWJzcGF0aF9hbHRuYW1lc3BhY2U9Ci0rICBj YXNlICRmdW5jX25vcm1hbF9hYnNwYXRoX3RwYXRoIGluCi0rICAgICIiKQotKyAgICAgICMgRW1w dHkgcGF0aCwgdGhhdCBqdXN0IG1lYW5zICRjd2QuCi0rICAgICAgZnVuY19zdHJpcG5hbWUgJycg Jy8nICJgcHdkYCIKLSsgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19zdHJp cG5hbWVfcmVzdWx0Ci0rICAgICAgcmV0dXJuCi0rICAgIDs7Ci0rICAgICMgVGhlIG5leHQgdGhy ZWUgZW50cmllcyBhcmUgdXNlZCB0byBzcG90IGEgcnVuIG9mIHByZWNpc2VseQotKyAgICAjIHR3 byBsZWFkaW5nIHNsYXNoZXMgd2l0aG91dCB1c2luZyBuZWdhdGVkIGNoYXJhY3RlciBjbGFzc2Vz OwotKyAgICAjIHdlIHRha2UgYWR2YW50YWdlIG9mIGNhc2UncyBmaXJzdC1tYXRjaCBiZWhhdmlv dXIuCi0rICAgIC8vLyopCi0rICAgICAgIyBVbnVzdWFsIGZvcm0gb2YgYWJzb2x1dGUgcGF0aCwg ZG8gbm90aGluZy4KLSsgICAgOzsKLSsgICAgLy8qKQotKyAgICAgICMgTm90IG5lY2Vzc2FyaWx5 IGFuIG9yZGluYXJ5IHBhdGg7IFBPU0lYIHJlc2VydmVzIGxlYWRpbmcgJy8vJwotKyAgICAgICMg YW5kIGZvciBleGFtcGxlIEN5Z3dpbiB1c2VzIGl0IHRvIGFjY2VzcyByZW1vdGUgZmlsZSBzaGFy ZXMKLSsgICAgICAjIG92ZXIgQ0lGUy9TTUIsIHNvIHdlIGNvbnNlcnZlIGEgbGVhZGluZyBkb3Vi bGUgc2xhc2ggaWYgZm91bmQuCi0rICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF9hbHRuYW1lc3Bh Y2U9LwotKyAgICA7OwotKyAgICAvKikKLSsgICAgICAjIEFic29sdXRlIHBhdGgsIGRvIG5vdGhp bmcuCi0rICAgIDs7Ci0rICAgICopCi0rICAgICAgIyBSZWxhdGl2ZSBwYXRoLCBwcmVwZW5kICRj d2QuCi0rICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aD1gcHdkYC8kZnVuY19ub3JtYWxf YWJzcGF0aF90cGF0aAotKyAgICA7OwotKyAgZXNhYwotKyAgIyBDYW5jZWwgb3V0IGFsbCB0aGUg c2ltcGxlIHN0dWZmIHRvIHNhdmUgaXRlcmF0aW9ucy4gIFdlIGFsc28gd2FudAotKyAgIyB0aGUg cGF0aCB0byBlbmQgd2l0aCBhIHNsYXNoIGZvciBlYXNlIG9mIHBhcnNpbmcsIHNvIG1ha2Ugc3Vy ZQotKyAgIyB0aGVyZSBpcyBvbmUgKGFuZCBvbmx5IG9uZSkgaGVyZS4KLSsgIGZ1bmNfbm9ybWFs X2Fic3BhdGhfdHBhdGg9YCRFQ0hPICIkZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aCIgfCAkU0VE IFwKLSsgICAgICAgIC1lICIkcmVtb3ZlZG90cGFydHMiIC1lICIkY29sbGFwc2VzbGFzaGVzIiAt ZSAiJGZpbmFsc2xhc2giYAotKyAgd2hpbGUgOjsgZG8KLSsgICAgIyBQcm9jZXNzZWQgaXQgYWxs IHlldD8KLSsgICAgaWYgdGVzdCAiJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGgiID0gLyA7IHRo ZW4KLSsgICAgICAjIElmIHdlIGFzY2VuZGVkIHRvIHRoZSByb290IHVzaW5nICIuLiIgdGhlIHJl c3VsdCBtYXkgYmUgZW1wdHkgbm93LgotKyAgICAgIGlmIHRlc3QgLXogIiRmdW5jX25vcm1hbF9h YnNwYXRoX3Jlc3VsdCIgOyB0aGVuCi0rICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3Vs dD0vCi0rICAgICAgZmkKLSsgICAgICBicmVhawotKyAgICBmaQotKyAgICBmdW5jX25vcm1hbF9h YnNwYXRoX3Rjb21wb25lbnQ9YCRFQ0hPICIkZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aCIgfCAk U0VEIFwKLSsgICAgICAgIC1lICIkcGF0aGNhciJgCi0rICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhf dHBhdGg9YCRFQ0hPICIkZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKLSsgICAg ICAgIC1lICIkcGF0aGNkciJgCi0rICAgICMgRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggaXQK LSsgICAgY2FzZSAkZnVuY19ub3JtYWxfYWJzcGF0aF90Y29tcG9uZW50IGluCi0rICAgICAgIiIp Ci0rICAgICAgICAjIFRyYWlsaW5nIGVtcHR5IHBhdGggY29tcG9uZW50LCBpZ25vcmUgaXQuCi0r ICAgICAgOzsKLSsgICAgICAuLikKLSsgICAgICAgICMgUGFyZW50IGRpcjsgc3RyaXAgbGFzdCBh c3NlbWJsZWQgY29tcG9uZW50IGZyb20gcmVzdWx0LgotKyAgICAgICAgZnVuY19kaXJuYW1lICIk ZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQiCi0rICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRo X3Jlc3VsdD0kZnVuY19kaXJuYW1lX3Jlc3VsdAotKyAgICAgIDs7Ci0rICAgICAgKikKLSsgICAg ICAgICMgQWN0dWFsIHBhdGggY29tcG9uZW50LCBhcHBlbmQgaXQuCi0rICAgICAgICBmdW5jX25v cm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQvJGZ1bmNfbm9y bWFsX2Fic3BhdGhfdGNvbXBvbmVudAotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsg ICMgUmVzdG9yZSBsZWFkaW5nIGRvdWJsZS1zbGFzaCBpZiBvbmUgd2FzIGZvdW5kIG9uIGVudHJ5 LgotKyAgZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQ9JGZ1bmNfbm9ybWFsX2Fic3BhdGhfYWx0 bmFtZXNwYWNlJGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0Ci0rfQotKwotKyMgZnVuY19yZWxh dGl2ZV9wYXRoIFNSQ0RJUiBEU1RESVIKLSsjIGdlbmVyYXRlcyBhIHJlbGF0aXZlIHBhdGggZnJv bSBTUkNESVIgdG8gRFNURElSLCB3aXRoIGEgdHJhaWxpbmcKLSsjIHNsYXNoIGlmIG5vbi1lbXB0 eSwgc3VpdGFibGUgZm9yIGltbWVkaWF0ZWx5IGFwcGVuZGluZyBhIGZpbGVuYW1lCi0rIyB3aXRo b3V0IG5lZWRpbmcgdG8gYXBwZW5kIGEgc2VwYXJhdG9yLgotKyMgICAgICAgICAgICAgdmFsdWUg cmV0dXJuZWQgaW4gIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IgotK2Z1bmNfcmVsYXRpdmVf cGF0aCAoKQotK3sKLSsgIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9Ci0rICBmdW5jX25vcm1h bF9hYnNwYXRoICIkMSIKLSsgIGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyPSRmdW5jX25vcm1h bF9hYnNwYXRoX3Jlc3VsdAotKyAgZnVuY19ub3JtYWxfYWJzcGF0aCAiJDIiCi0rICBmdW5jX3Jl bGF0aXZlX3BhdGhfdGJpbmRpcj0kZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQKLSsKLSsgICMg QXNjZW5kIHRoZSB0cmVlIHN0YXJ0aW5nIGZyb20gbGliZGlyCi0rICB3aGlsZSA6OyBkbwotKyAg ICAjIGNoZWNrIGlmIHdlIGhhdmUgZm91bmQgYSBwcmVmaXggb2YgYmluZGlyCi0rICAgIGNhc2Ug JGZ1bmNfcmVsYXRpdmVfcGF0aF90YmluZGlyIGluCi0rICAgICAgJGZ1bmNfcmVsYXRpdmVfcGF0 aF90bGliZGlyKQotKyAgICAgICAgIyBmb3VuZCBhbiBleGFjdCBtYXRjaAotKyAgICAgICAgZnVu Y19yZWxhdGl2ZV9wYXRoX3RjYW5jZWxsZWQ9Ci0rICAgICAgICBicmVhawotKyAgICAgICAgOzsK LSsgICAgICAkZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXIqKQotKyAgICAgICAgIyBmb3VuZCBh IG1hdGNoaW5nIHByZWZpeAotKyAgICAgICAgZnVuY19zdHJpcG5hbWUgIiRmdW5jX3JlbGF0aXZl X3BhdGhfdGxpYmRpciIgJycgIiRmdW5jX3JlbGF0aXZlX3BhdGhfdGJpbmRpciIKLSsgICAgICAg IGZ1bmNfcmVsYXRpdmVfcGF0aF90Y2FuY2VsbGVkPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsg ICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IjsgdGhlbgotKyAg ICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PS4KLSsgICAgICAgIGZpCi0rICAgICAg ICBicmVhawotKyAgICAgICAgOzsKLSsgICAgICAqKQotKyAgICAgICAgZnVuY19kaXJuYW1lICRm dW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpcgotKyAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Rs aWJkaXI9JHtmdW5jX2Rpcm5hbWVfcmVzdWx0fQotKyAgICAgICAgaWYgdGVzdCAieCRmdW5jX3Jl bGF0aXZlX3BhdGhfdGxpYmRpciIgPSB4IDsgdGhlbgotKyAgICAgICAgICAjIEhhdmUgdG8gZGVz Y2VuZCBhbGwgdGhlIHdheSB0byB0aGUgcm9vdCEKLSsgICAgICAgICAgZnVuY19yZWxhdGl2ZV9w YXRoX3Jlc3VsdD0uLi8kZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdAotKyAgICAgICAgICBmdW5j X3JlbGF0aXZlX3BhdGhfdGNhbmNlbGxlZD0kZnVuY19yZWxhdGl2ZV9wYXRoX3RiaW5kaXIKLSsg ICAgICAgICAgYnJlYWsKLSsgICAgICAgIGZpCi0rICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhf cmVzdWx0PS4uLyRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0Ci0rICAgICAgICA7OwotKyAgICBl c2FjCi0rICBkb25lCi0rCi0rICAjIE5vdyBjYWxjdWxhdGUgcGF0aDsgdGFrZSBjYXJlIHRvIGF2 b2lkIGRvdWJsaW5nLXVwIHNsYXNoZXMuCi0rICBmdW5jX3N0cmlwbmFtZSAnJyAnLycgIiRmdW5j X3JlbGF0aXZlX3BhdGhfcmVzdWx0IgotKyAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0kZnVu Y19zdHJpcG5hbWVfcmVzdWx0Ci0rICBmdW5jX3N0cmlwbmFtZSAnLycgJy8nICIkZnVuY19yZWxh dGl2ZV9wYXRoX3RjYW5jZWxsZWQiCi0rICBpZiB0ZXN0ICJ4JGZ1bmNfc3RyaXBuYW1lX3Jlc3Vs dCIgIT0geCA7IHRoZW4KLSsgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0ke2Z1bmNfcmVs YXRpdmVfcGF0aF9yZXN1bHR9LyR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0fQotKyAgZmkKLSsKLSsg ICMgTm9ybWFsaXNhdGlvbi4gSWYgYmluZGlyIGlzIGxpYmRpciwgcmV0dXJuIGVtcHR5IHN0cmlu ZywKLSsgICMgZWxzZSByZWxhdGl2ZSBwYXRoIGVuZGluZyB3aXRoIGEgc2xhc2g7IGVpdGhlciB3 YXksIHRhcmdldAotKyAgIyBmaWxlIG5hbWUgY2FuIGJlIGRpcmVjdGx5IGFwcGVuZGVkLgotKyAg aWYgdGVzdCAhIC16ICIkZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdCI7IHRoZW4KLSsgICAgZnVu Y19zdHJpcG5hbWUgJy4vJyAnJyAiJGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQvIgotKyAgICBm dW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsgIGZpCi0r fQotKwotKyMgVGhlIG5hbWUgb2YgdGhpcyBwcm9ncmFtOgotK2Z1bmNfZGlybmFtZV9hbmRfYmFz ZW5hbWUgIiRwcm9ncGF0aCIKLStwcm9nbmFtZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKLSsKLSsj IE1ha2Ugc3VyZSB3ZSBoYXZlIGFuIGFic29sdXRlIHBhdGggZm9yIHJlZXhlY3V0aW9uOgotK2Nh c2UgJHByb2dwYXRoIGluCi0rICBbXFwvXSp8W0EtWmEtel06XFwqKSA7OwotKyAgKltcXC9dKikK LSsgICAgIHByb2dkaXI9JGZ1bmNfZGlybmFtZV9yZXN1bHQKLSsgICAgIHByb2dkaXI9YGNkICIk cHJvZ2RpciIgJiYgcHdkYAotKyAgICAgcHJvZ3BhdGg9IiRwcm9nZGlyLyRwcm9nbmFtZSIKLSsg ICAgIDs7Ci0rICAqKQotKyAgICAgc2F2ZV9JRlM9IiRJRlMiCi0rICAgICBJRlM9OgotKyAgICAg Zm9yIHByb2dkaXIgaW4gJFBBVEg7IGRvCi0rICAgICAgIElGUz0iJHNhdmVfSUZTIgotKyAgICAg ICB0ZXN0IC14ICIkcHJvZ2Rpci8kcHJvZ25hbWUiICYmIGJyZWFrCi0rICAgICBkb25lCi0rICAg ICBJRlM9IiRzYXZlX0lGUyIKLSsgICAgIHRlc3QgLW4gIiRwcm9nZGlyIiB8fCBwcm9nZGlyPWBw d2RgCi0rICAgICBwcm9ncGF0aD0iJHByb2dkaXIvJHByb2duYW1lIgotKyAgICAgOzsKLStlc2Fj Ci0rCi0rIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscHMgdXMgZG8gcm9idXN0IHF1b3Rpbmcu ICBJdCBiYWNrc2xhc2hpZmllcwotKyMgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0 aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVkIHN0cmluZ3MuCi0rWHNlZD0iJHtTRUR9IicgLWUgMXMv XlgvLycKLStzZWRfcXVvdGVfc3Vic3Q9J3MvXChbYCIkXFxdXCkvXFxcMS9nJwotKwotKyMgU2Ft ZSBhcyBhYm92ZSwgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgotK2RvdWJs ZV9xdW90ZV9zdWJzdD0ncy9cKFsiYFxcXVwpL1xcXDEvZycKLSsKLSsjIFNlZCBzdWJzdGl0dXRp b24gdGhhdCB0dXJucyBhIHN0cmluZyBpbnRvIGEgcmVnZXggbWF0Y2hpbmcgZm9yIHRoZQotKyMg c3RyaW5nIGxpdGVyYWxseS4KLStzZWRfbWFrZV9saXRlcmFsX3JlZ2V4PSdzLFtdLlteJFxcKlwv XSxcXCYsZycKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBjb252ZXJ0cyBhIHczMiBmaWxl IG5hbWUgb3IgcGF0aAotKyMgd2hpY2ggY29udGFpbnMgZm9yd2FyZCBzbGFzaGVzLCBpbnRvIG9u ZSB0aGF0IGNvbnRhaW5zCi0rIyAoZXNjYXBlZCkgYmFja3NsYXNoZXMuICBBIHZlcnkgbmFpdmUg aW1wbGVtZW50YXRpb24uCi0rbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeT0nc3xcXFxcKnxcXHxn O3N8L3xcXHxnO3N8XFx8XFxcXHxnJwotKwotKyMgUmUtYFwnIHBhcmFtZXRlciBleHBhbnNpb25z IGluIG91dHB1dCBvZiBkb3VibGVfcXVvdGVfc3Vic3QgdGhhdCB3ZXJlCi0rIyBgXCctZWQgaW4g aW5wdXQgdG8gdGhlIHNhbWUuICBJZiBhbiBvZGQgbnVtYmVyIG9mIGBcJyBwcmVjZWRlZCBhICck JwotKyMgaW4gaW5wdXQgdG8gZG91YmxlX3F1b3RlX3N1YnN0LCB0aGF0ICckJyB3YXMgcHJvdGVj dGVkIGZyb20gZXhwYW5zaW9uLgotKyMgU2luY2UgZWFjaCBpbnB1dCBgXCcgaXMgbm93IHR3byBg XCdzLCBsb29rIGZvciBhbnkgbnVtYmVyIG9mIHJ1bnMgb2YKLSsjIGZvdXIgYFwncyBmb2xsb3dl ZCBieSB0d28gYFwncyBhbmQgdGhlbiBhICckJy4gIGBcJyB0aGF0ICckJy4KLSticz0nXFwnCi0r YnMyPSdcXFxcJwotK2JzND0nXFxcXFxcXFwnCi0rZG9sbGFyPSdcJCcKLStzZWRfZG91YmxlX2Jh Y2tzbGFzaD0iXAotKyAgcy8kYnM0LyZcXAotKy9nCi0rICBzL14kYnMyJGRvbGxhci8kYnMmLwot KyAgcy9cXChbXiRic11cXCkkYnMyJGRvbGxhci9cXDEkYnMyJGJzJGRvbGxhci9nCi0rICBzL1xu Ly9nIgotKwotKyMgU3RhbmRhcmQgb3B0aW9uczoKLStvcHRfZHJ5X3J1bj1mYWxzZQotK29wdF9o ZWxwPWZhbHNlCi0rb3B0X3F1aWV0PWZhbHNlCi0rb3B0X3ZlcmJvc2U9ZmFsc2UKLStvcHRfd2Fy bmluZz06Ci0rCi0rIyBmdW5jX2VjaG8gYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVm aXhlZCBtZXNzYWdlLCBhbG9uZyB3aXRoIHRoZSBjdXJyZW50IG1vZGUKLSsjIG5hbWUgaWYgaXQg aGFzIGJlZW4gc2V0IHlldC4KLStmdW5jX2VjaG8gKCkKLSt7Ci0rICAgICRFQ0hPICIkcHJvZ25h bWU6ICR7b3B0X21vZGUrJG9wdF9tb2RlOiB9JCoiCi0rfQotKwotKyMgZnVuY192ZXJib3NlIGFy Zy4uLgotKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSBpbiB2ZXJib3NlIG1v ZGUgb25seS4KLStmdW5jX3ZlcmJvc2UgKCkKLSt7Ci0rICAgICRvcHRfdmVyYm9zZSAmJiBmdW5j X2VjaG8gJHsxKyIkQCJ9Ci0rCi0rICAgICMgQSBidWcgaW4gYmFzaCBoYWx0cyB0aGUgc2NyaXB0 IGlmIHRoZSBsYXN0IGxpbmUgb2YgYSBmdW5jdGlvbgotKyAgICAjIGZhaWxzIHdoZW4gc2V0IC1l IGlzIGluIGZvcmNlLCBzbyB3ZSBuZWVkIGFub3RoZXIgY29tbWFuZCB0bwotKyAgICAjIHdvcmsg YXJvdW5kIHRoYXQ6Ci0rICAgIDoKLSt9Ci0rCi0rIyBmdW5jX2VjaG9fYWxsIGFyZy4uLgotKyMg SW52b2tlICRFQ0hPIHdpdGggYWxsIGFyZ3MsIHNwYWNlLXNlcGFyYXRlZC4KLStmdW5jX2VjaG9f YWxsICgpCi0rewotKyAgICAkRUNITyAiJCoiCi0rfQotKwotKyMgZnVuY19lcnJvciBhcmcuLi4K LSsjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3Iu Ci0rZnVuY19lcnJvciAoKQotK3sKLSsgICAgJEVDSE8gIiRwcm9nbmFtZTogJHtvcHRfbW9kZSsk b3B0X21vZGU6IH0iJHsxKyIkQCJ9IDE+JjIKLSt9Ci0rCi0rIyBmdW5jX3dhcm5pbmcgYXJnLi4u Ci0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCB3YXJuaW5nIG1lc3NhZ2UgdG8gc3RhbmRh cmQgZXJyb3IuCi0rZnVuY193YXJuaW5nICgpCi0rewotKyAgICAkb3B0X3dhcm5pbmcgJiYgJEVD SE8gIiRwcm9nbmFtZTogJHtvcHRfbW9kZSskb3B0X21vZGU6IH13YXJuaW5nOiAiJHsxKyIkQCJ9 IDE+JjIKLSsKLSsgICAgIyBiYXNoIGJ1ZyBhZ2FpbjoKLSsgICAgOgotK30KLSsKLSsjIGZ1bmNf ZmF0YWxfZXJyb3IgYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdl IHRvIHN0YW5kYXJkIGVycm9yLCBhbmQgZXhpdC4KLStmdW5jX2ZhdGFsX2Vycm9yICgpCi0rewot KyAgICBmdW5jX2Vycm9yICR7MSsiJEAifQotKyAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSt9Ci0r Ci0rIyBmdW5jX2ZhdGFsX2hlbHAgYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhl ZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLCBmb2xsb3dlZCBieQotKyMgYSBoZWxwIGhpbnQs IGFuZCBleGl0LgotK2Z1bmNfZmF0YWxfaGVscCAoKQotK3sKLSsgICAgZnVuY19lcnJvciAkezEr IiRAIn0KLSsgICAgZnVuY19mYXRhbF9lcnJvciAiJGhlbHAiCi0rfQotK2hlbHA9IlRyeSBcYCRw cm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgICMjIGRlZmF1bHQKLSsKLSsK LSsjIGZ1bmNfZ3JlcCBleHByZXNzaW9uIGZpbGVuYW1lCi0rIyBDaGVjayB3aGV0aGVyIEVYUFJF U1NJT04gbWF0Y2hlcyBhbnkgbGluZSBvZiBGSUxFTkFNRSwgd2l0aG91dCBvdXRwdXQuCi0rZnVu Y19ncmVwICgpCi0rewotKyAgICAkR1JFUCAiJDEiICIkMiIgPi9kZXYvbnVsbCAyPiYxCi0rfQot KwotKwotKyMgZnVuY19ta2Rpcl9wIGRpcmVjdG9yeS1wYXRoCi0rIyBNYWtlIHN1cmUgdGhlIGVu dGlyZSBwYXRoIHRvIERJUkVDVE9SWS1QQVRIIGlzIGF2YWlsYWJsZS4KLStmdW5jX21rZGlyX3Ag KCkKLSt7Ci0rICAgIG15X2RpcmVjdG9yeV9wYXRoPSIkMSIKLSsgICAgbXlfZGlyX2xpc3Q9Ci0r Ci0rICAgIGlmIHRlc3QgLW4gIiRteV9kaXJlY3RvcnlfcGF0aCIgJiYgdGVzdCAiJG9wdF9kcnlf cnVuIiAhPSAiOiI7IHRoZW4KLSsKLSsgICAgICAjIFByb3RlY3QgZGlyZWN0b3J5IG5hbWVzIHN0 YXJ0aW5nIHdpdGggYC0nCi0rICAgICAgY2FzZSAkbXlfZGlyZWN0b3J5X3BhdGggaW4KLSsgICAg ICAgIC0qKSBteV9kaXJlY3RvcnlfcGF0aD0iLi8kbXlfZGlyZWN0b3J5X3BhdGgiIDs7Ci0rICAg ICAgZXNhYwotKwotKyAgICAgICMgV2hpbGUgc29tZSBwb3J0aW9uIG9mIERJUiBkb2VzIG5vdCB5 ZXQgZXhpc3QuLi4KLSsgICAgICB3aGlsZSB0ZXN0ICEgLWQgIiRteV9kaXJlY3RvcnlfcGF0aCI7 IGRvCi0rICAgICAgICAjIC4uLm1ha2UgYSBsaXN0IGluIHRvcG1vc3QgZmlyc3Qgb3JkZXIuICBV c2UgYSBjb2xvbiBkZWxpbWl0ZWQKLSsJIyBsaXN0IGluY2FzZSBzb21lIHBvcnRpb24gb2YgcGF0 aCBjb250YWlucyB3aGl0ZXNwYWNlLgotKyAgICAgICAgbXlfZGlyX2xpc3Q9IiRteV9kaXJlY3Rv cnlfcGF0aDokbXlfZGlyX2xpc3QiCi0rCi0rICAgICAgICAjIElmIHRoZSBsYXN0IHBvcnRpb24g YWRkZWQgaGFzIG5vIHNsYXNoIGluIGl0LCB0aGUgbGlzdCBpcyBkb25lCi0rICAgICAgICBjYXNl ICRteV9kaXJlY3RvcnlfcGF0aCBpbiAqLyopIDs7ICopIGJyZWFrIDs7IGVzYWMKLSsKLSsgICAg ICAgICMgLi4ub3RoZXJ3aXNlIHRocm93IGF3YXkgdGhlIGNoaWxkIGRpcmVjdG9yeSBhbmQgbG9v cAotKyAgICAgICAgbXlfZGlyZWN0b3J5X3BhdGg9YCRFQ0hPICIkbXlfZGlyZWN0b3J5X3BhdGgi IHwgJFNFRCAtZSAiJGRpcm5hbWUiYAotKyAgICAgIGRvbmUKLSsgICAgICBteV9kaXJfbGlzdD1g JEVDSE8gIiRteV9kaXJfbGlzdCIgfCAkU0VEICdzLDoqJCwsJ2AKLSsKLSsgICAgICBzYXZlX21r ZGlyX3BfSUZTPSIkSUZTIjsgSUZTPSc6JwotKyAgICAgIGZvciBteV9kaXIgaW4gJG15X2Rpcl9s aXN0OyBkbwotKwlJRlM9IiRzYXZlX21rZGlyX3BfSUZTIgotKyAgICAgICAgIyBta2RpciBjYW4g ZmFpbCB3aXRoIGEgYEZpbGUgZXhpc3QnIGVycm9yIGlmIHR3byBwcm9jZXNzZXMKLSsgICAgICAg ICMgdHJ5IHRvIGNyZWF0ZSBvbmUgb2YgdGhlIGRpcmVjdG9yaWVzIGNvbmN1cnJlbnRseS4gIERv bid0Ci0rICAgICAgICAjIHN0b3AgaW4gdGhhdCBjYXNlIQotKyAgICAgICAgJE1LRElSICIkbXlf ZGlyIiAyPi9kZXYvbnVsbCB8fCA6Ci0rICAgICAgZG9uZQotKyAgICAgIElGUz0iJHNhdmVfbWtk aXJfcF9JRlMiCi0rCi0rICAgICAgIyBCYWlsIG91dCBpZiB3ZSAob3Igc29tZSBvdGhlciBwcm9j ZXNzKSBmYWlsZWQgdG8gY3JlYXRlIGEgZGlyZWN0b3J5LgotKyAgICAgIHRlc3QgLWQgIiRteV9k aXJlY3RvcnlfcGF0aCIgfHwgXAotKyAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiRmFpbGVkIHRv IGNyZWF0ZSBcYCQxJyIKLSsgICAgZmkKLSt9Ci0rCi0rCi0rIyBmdW5jX21rdGVtcGRpciBbc3Ry aW5nXQotKyMgTWFrZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgdGhhdCB3b24ndCBjbGFzaCB3aXRo IG90aGVyIHJ1bm5pbmcKLSsjIGxpYnRvb2wgcHJvY2Vzc2VzLCBhbmQgYXZvaWRzIHJhY2UgY29u ZGl0aW9ucyBpZiBwb3NzaWJsZS4gIElmCi0rIyBnaXZlbiwgU1RSSU5HIGlzIHRoZSBiYXNlbmFt ZSBmb3IgdGhhdCBkaXJlY3RvcnkuCi0rZnVuY19ta3RlbXBkaXIgKCkKLSt7Ci0rICAgIG15X3Rl bXBsYXRlPSIke1RNUERJUi0vdG1wfS8kezEtJHByb2duYW1lfSIKLSsKLSsgICAgaWYgdGVzdCAi JG9wdF9kcnlfcnVuIiA9ICI6IjsgdGhlbgotKyAgICAgICMgUmV0dXJuIGEgZGlyZWN0b3J5IG5h bWUsIGJ1dCBkb24ndCBjcmVhdGUgaXQgaW4gZHJ5LXJ1biBtb2RlCi0rICAgICAgbXlfdG1wZGly PSIke215X3RlbXBsYXRlfS0kJCIKLSsgICAgZWxzZQotKwotKyAgICAgICMgSWYgbWt0ZW1wIHdv cmtzLCB1c2UgdGhhdCBmaXJzdCBhbmQgZm9yZW1vc3QKLSsgICAgICBteV90bXBkaXI9YG1rdGVt cCAtZCAiJHtteV90ZW1wbGF0ZX0tWFhYWFhYWFgiIDI+L2Rldi9udWxsYAotKwotKyAgICAgIGlm IHRlc3QgISAtZCAiJG15X3RtcGRpciI7IHRoZW4KLSsgICAgICAgICMgRmFpbGluZyB0aGF0LCBh dCBsZWFzdCB0cnkgYW5kIHVzZSAkUkFORE9NIHRvIGF2b2lkIGEgcmFjZQotKyAgICAgICAgbXlf dG1wZGlyPSIke215X3RlbXBsYXRlfS0ke1JBTkRPTS0wfSQkIgotKwotKyAgICAgICAgc2F2ZV9t a3RlbXBkaXJfdW1hc2s9YHVtYXNrYAotKyAgICAgICAgdW1hc2sgMDA3NwotKyAgICAgICAgJE1L RElSICIkbXlfdG1wZGlyIgotKyAgICAgICAgdW1hc2sgJHNhdmVfbWt0ZW1wZGlyX3VtYXNrCi0r ICAgICAgZmkKLSsKLSsgICAgICAjIElmIHdlJ3JlIG5vdCBpbiBkcnktcnVuIG1vZGUsIGJvbWIg b3V0IG9uIGZhaWx1cmUKLSsgICAgICB0ZXN0IC1kICIkbXlfdG1wZGlyIiB8fCBcCi0rICAgICAg ICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgY3JlYXRlIHRlbXBvcmFyeSBkaXJlY3RvcnkgXGAk bXlfdG1wZGlyJyIKLSsgICAgZmkKLSsKLSsgICAgJEVDSE8gIiRteV90bXBkaXIiCi0rfQotKwot KwotKyMgZnVuY19xdW90ZV9mb3JfZXZhbCBhcmcKLSsjIEFlc3RoZXRpY2FsbHkgcXVvdGUgQVJH IHRvIGJlIGV2YWxlZCBsYXRlci4KLSsjIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0d28gdmFsdWVz OiBGVU5DX1FVT1RFX0ZPUl9FVkFMX1JFU1VMVAotKyMgaXMgZG91YmxlLXF1b3RlZCwgc3VpdGFi bGUgZm9yIGEgc3Vic2VxdWVudCBldmFsLCB3aGVyZWFzCi0rIyBGVU5DX1FVT1RFX0ZPUl9FVkFM X1VOUVVPVEVEX1JFU1VMVCBoYXMgbWVyZWx5IGFsbCBjaGFyYWN0ZXJzCi0rIyB3aGljaCBhcmUg c3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUgcXVvdGVzIGJhY2tzbGFzaGlmaWVkLgotK2Z1bmNf cXVvdGVfZm9yX2V2YWwgKCkKLSt7Ci0rICAgIGNhc2UgJDEgaW4KLSsgICAgICAqW1xcXGBcIlwk XSopCi0rCWZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0PWAkRUNITyAiJDEiIHwg JFNFRCAiJHNlZF9xdW90ZV9zdWJzdCJgIDs7Ci0rICAgICAgKikKLSsgICAgICAgIGZ1bmNfcXVv dGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0PSIkMSIgOzsKLSsgICAgZXNhYwotKwotKyAgICBj YXNlICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdCBpbgotKyAgICAgICMgRG91 YmxlLXF1b3RlIGFyZ3MgY29udGFpbmluZyBzaGVsbCBtZXRhY2hhcmFjdGVycyB0byBkZWxheQot KyAgICAgICMgd29yZCBzcGxpdHRpbmcsIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGFuZCBhbmQgdmFy aWFibGUKLSsgICAgICAjIGV4cGFuc2lvbiBmb3IgYSBzdWJzZXF1ZW50IGV2YWwuCi0rICAgICAg IyBNYW55IEJvdXJuZSBzaGVsbHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0cyBjb3JyZWN0 bHkKLSsgICAgICAjIGluIHNjYW4gc2V0cywgc28gd2Ugc3BlY2lmeSBpdCBzZXBhcmF0ZWx5Lgot KyAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQot KyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQ9IlwiJGZ1bmNfcXVvdGVfZm9yX2V2 YWxfdW5xdW90ZWRfcmVzdWx0XCIiCi0rICAgICAgICA7OwotKyAgICAgICopCi0rICAgICAgICBm dW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdD0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRf cmVzdWx0IgotKyAgICBlc2FjCi0rfQotKwotKwotKyMgZnVuY19xdW90ZV9mb3JfZXhwYW5kIGFy ZwotKyMgQWVzdGhldGljYWxseSBxdW90ZSBBUkcgdG8gYmUgZXZhbGVkIGxhdGVyOyBzYW1lIGFz IGFib3ZlLAotKyMgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgotK2Z1bmNf cXVvdGVfZm9yX2V4cGFuZCAoKQotK3sKLSsgICAgY2FzZSAkMSBpbgotKyAgICAgICpbXFxcYFwi XSopCi0rCW15X2FyZz1gJEVDSE8gIiQxIiB8ICRTRUQgXAotKwkgICAgLWUgIiRkb3VibGVfcXVv dGVfc3Vic3QiIC1lICIkc2VkX2RvdWJsZV9iYWNrc2xhc2giYCA7OwotKyAgICAgICopCi0rICAg ICAgICBteV9hcmc9IiQxIiA7OwotKyAgICBlc2FjCi0rCi0rICAgIGNhc2UgJG15X2FyZyBpbgot KyAgICAgICMgRG91YmxlLXF1b3RlIGFyZ3MgY29udGFpbmluZyBzaGVsbCBtZXRhY2hhcmFjdGVy cyB0byBkZWxheQotKyAgICAgICMgd29yZCBzcGxpdHRpbmcgYW5kIGNvbW1hbmQgc3Vic3RpdHV0 aW9uIGZvciBhIHN1YnNlcXVlbnQgZXZhbC4KLSsgICAgICAjIE1hbnkgQm91cm5lIHNoZWxscyBj YW5ub3QgaGFuZGxlIGNsb3NlIGJyYWNrZXRzIGNvcnJlY3RseQotKyAgICAgICMgaW4gc2NhbiBz ZXRzLCBzbyB3ZSBzcGVjaWZ5IGl0IHNlcGFyYXRlbHkuCi0rICAgICAgKltcW1x+XCNcXlwmXCpc KFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCi0rICAgICAgICBteV9hcmc9IlwiJG15 X2FyZ1wiIgotKyAgICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBmdW5jX3F1b3RlX2Zvcl9l eHBhbmRfcmVzdWx0PSIkbXlfYXJnIgotK30KLSsKLSsKLSsjIGZ1bmNfc2hvd19ldmFsIGNtZCBb ZmFpbF9leHBdCi0rIyBVbmxlc3Mgb3B0X3NpbGVudCBpcyB0cnVlLCB0aGVuIG91dHB1dCBDTUQu ICBUaGVuLCBpZiBvcHRfZHJ5cnVuIGlzCi0rIyBub3QgdHJ1ZSwgZXZhbHVhdGUgQ01ELiAgSWYg dGhlIGV2YWx1YXRpb24gb2YgQ01EIGZhaWxzLCBhbmQgRkFJTF9FWFAKLSsjIGlzIGdpdmVuLCB0 aGVuIGV2YWx1YXRlIGl0LgotK2Z1bmNfc2hvd19ldmFsICgpCi0rewotKyAgICBteV9jbWQ9IiQx IgotKyAgICBteV9mYWlsX2V4cD0iJHsyLTp9IgotKwotKyAgICAke29wdF9zaWxlbnQtZmFsc2V9 IHx8IHsKLSsgICAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRteV9jbWQiCi0rICAgICAgZXZh bCAiZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgotKyAgICB9Ci0rCi0r ICAgIGlmICR7b3B0X2RyeV9ydW4tZmFsc2V9OyB0aGVuIDo7IGVsc2UKLSsgICAgICBldmFsICIk bXlfY21kIgotKyAgICAgIG15X3N0YXR1cz0kPwotKyAgICAgIGlmIHRlc3QgIiRteV9zdGF0dXMi IC1lcSAwOyB0aGVuIDo7IGVsc2UKLSsJZXZhbCAiKGV4aXQgJG15X3N0YXR1cyk7ICRteV9mYWls X2V4cCIKLSsgICAgICBmaQotKyAgICBmaQotK30KLSsKLSsKLSsjIGZ1bmNfc2hvd19ldmFsX2xv Y2FsZSBjbWQgW2ZhaWxfZXhwXQotKyMgVW5sZXNzIG9wdF9zaWxlbnQgaXMgdHJ1ZSwgdGhlbiBv dXRwdXQgQ01ELiAgVGhlbiwgaWYgb3B0X2RyeXJ1biBpcwotKyMgbm90IHRydWUsIGV2YWx1YXRl IENNRC4gIElmIHRoZSBldmFsdWF0aW9uIG9mIENNRCBmYWlscywgYW5kIEZBSUxfRVhQCi0rIyBp cyBnaXZlbiwgdGhlbiBldmFsdWF0ZSBpdC4gIFVzZSB0aGUgc2F2ZWQgbG9jYWxlIGZvciBldmFs dWF0aW9uLgotK2Z1bmNfc2hvd19ldmFsX2xvY2FsZSAoKQotK3sKLSsgICAgbXlfY21kPSIkMSIK LSsgICAgbXlfZmFpbF9leHA9IiR7Mi06fSIKLSsKLSsgICAgJHtvcHRfc2lsZW50LWZhbHNlfSB8 fCB7Ci0rICAgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkbXlfY21kIgotKyAgICAgIGV2YWwg ImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKLSsgICAgfQotKwotKyAg ICBpZiAke29wdF9kcnlfcnVuLWZhbHNlfTsgdGhlbiA6OyBlbHNlCi0rICAgICAgZXZhbCAiJGx0 X3VzZXJfbG9jYWxlCi0rCSAgICAkbXlfY21kIgotKyAgICAgIG15X3N0YXR1cz0kPwotKyAgICAg IGV2YWwgIiRsdF9zYWZlX2xvY2FsZSIKLSsgICAgICBpZiB0ZXN0ICIkbXlfc3RhdHVzIiAtZXEg MDsgdGhlbiA6OyBlbHNlCi0rCWV2YWwgIihleGl0ICRteV9zdGF0dXMpOyAkbXlfZmFpbF9leHAi Ci0rICAgICAgZmkKLSsgICAgZmkKLSt9Ci0rCi0rIyBmdW5jX3RyX3NoCi0rIyBUdXJuICQxIGlu dG8gYSBzdHJpbmcgc3VpdGFibGUgZm9yIGEgc2hlbGwgdmFyaWFibGUgbmFtZS4KLSsjIFJlc3Vs dCBpcyBzdG9yZWQgaW4gJGZ1bmNfdHJfc2hfcmVzdWx0LiAgQWxsIGNoYXJhY3RlcnMKLSsjIG5v dCBpbiB0aGUgc2V0IGEtekEtWjAtOV8gYXJlIHJlcGxhY2VkIHdpdGggJ18nLiBGdXJ0aGVyLAot KyMgaWYgJDEgYmVnaW5zIHdpdGggYSBkaWdpdCwgYSAnXycgaXMgcHJlcGVuZGVkIGFzIHdlbGwu Ci0rZnVuY190cl9zaCAoKQotK3sKLSsgIGNhc2UgJDEgaW4KLSsgIFswLTldKiB8ICpbIWEtekEt WjAtOV9dKikKLSsgICAgZnVuY190cl9zaF9yZXN1bHQ9YCRFQ0hPICIkMSIgfCAkU0VEICdzL15c KFswLTldXCkvX1wxLzsgcy9bXmEtekEtWjAtOV9dL18vZydgCi0rICAgIDs7Ci0rICAqICkKLSsg ICAgZnVuY190cl9zaF9yZXN1bHQ9JDEKLSsgICAgOzsKLSsgIGVzYWMKLSt9Ci0rCi0rCi0rIyBm dW5jX3ZlcnNpb24KLSsjIEVjaG8gdmVyc2lvbiBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBh bmQgZXhpdC4KLStmdW5jX3ZlcnNpb24gKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsKLSsgICAg JFNFRCAtbiAnLyhDKS8hYiBnbwotKwk6bW9yZQotKwkvXC4vIXsKLSsJICBOCi0rCSAgcy9cbiMg LyAvCi0rCSAgYiBtb3JlCi0rCX0KLSsJOmdvCi0rCS9eIyAnJFBST0dSQU0nIChHTlUgLywvIyB3 YXJyYW50eTsgLyB7Ci0rICAgICAgICBzL14jIC8vCi0rCXMvXiMgKiQvLwotKyAgICAgICAgcy9c KChDKVwpWyAwLTksLV0qXCggWzEtOV1bMC05XSpcKS9cMVwyLwotKyAgICAgICAgcAotKyAgICAg fScgPCAiJHByb2dwYXRoIgotKyAgICAgZXhpdCAkPwotK30KLSsKLSsjIGZ1bmNfdXNhZ2UKLSsj IEVjaG8gc2hvcnQgaGVscCBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KLStm dW5jX3VzYWdlICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rCi0rICAgICRTRUQgLW4gJy9eIyBV c2FnZTovLC9eIyAgKi4qLS1oZWxwLyB7Ci0rICAgICAgICBzL14jIC8vCi0rCXMvXiMgKiQvLwot KwlzL1wkcHJvZ25hbWUvJyRwcm9nbmFtZScvCi0rCXAKLSsgICAgfScgPCAiJHByb2dwYXRoIgot KyAgICBlY2hvCi0rICAgICRFQ0hPICJydW4gXGAkcHJvZ25hbWUgLS1oZWxwIHwgbW9yZScgZm9y IGZ1bGwgdXNhZ2UiCi0rICAgIGV4aXQgJD8KLSt9Ci0rCi0rIyBmdW5jX2hlbHAgW05PRVhJVF0K LSsjIEVjaG8gbG9uZyBoZWxwIG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0LAot KyMgdW5sZXNzICdub2V4aXQnIGlzIHBhc3NlZCBhcyBhcmd1bWVudC4KLStmdW5jX2hlbHAgKCkK LSt7Ci0rICAgICRvcHRfZGVidWcKLSsKLSsgICAgJFNFRCAtbiAnL14jIFVzYWdlOi8sLyMgUmVw b3J0IGJ1Z3MgdG8vIHsKLSsJOnByaW50Ci0rICAgICAgICBzL14jIC8vCi0rCXMvXiMgKiQvLwot KwlzKlwkcHJvZ25hbWUqJyRwcm9nbmFtZScqCi0rCXMqXCRob3N0KiciJGhvc3QiJyoKLSsJcypc JFNIRUxMKiciJFNIRUxMIicqCi0rCXMqXCRMVENDKiciJExUQ0MiJyoKLSsJcypcJExUQ0ZMQUdT KiciJExUQ0ZMQUdTIicqCi0rCXMqXCRMRConIiRMRCInKgotKwlzL1wkd2l0aF9nbnVfbGQvJyIk d2l0aF9nbnVfbGQiJy8KLSsJcy9cJGF1dG9tYWtlX3ZlcnNpb24vJyJgKGF1dG9tYWtlIC0tdmVy c2lvbikgMj4vZGV2L251bGwgfCRTRUQgMXFgIicvCi0rCXMvXCRhdXRvY29uZl92ZXJzaW9uLyci YChhdXRvY29uZiAtLXZlcnNpb24pIDI+L2Rldi9udWxsIHwkU0VEIDFxYCInLwotKwlwCi0rCWQK LSsgICAgIH0KLSsgICAgIC9eIyAuKiBob21lIHBhZ2U6L2IgcHJpbnQKLSsgICAgIC9eIyBHZW5l cmFsIGhlbHAgdXNpbmcvYiBwcmludAotKyAgICAgJyA8ICIkcHJvZ3BhdGgiCi0rICAgIHJldD0k PwotKyAgICBpZiB0ZXN0IC16ICIkMSI7IHRoZW4KLSsgICAgICBleGl0ICRyZXQKLSsgICAgZmkK LSt9Ci0rCi0rIyBmdW5jX21pc3NpbmdfYXJnIGFyZ25hbWUKLSsjIEVjaG8gcHJvZ3JhbSBuYW1l IHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IgYW5kIHNldCBnbG9iYWwKLSsjIGV4 aXRfY21kLgotK2Z1bmNfbWlzc2luZ19hcmcgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsKLSsg ICAgZnVuY19lcnJvciAibWlzc2luZyBhcmd1bWVudCBmb3IgJDEuIgotKyAgICBleGl0X2NtZD1l eGl0Ci0rfQotKwotKwotKyMgZnVuY19zcGxpdF9zaG9ydF9vcHQgc2hvcnRvcHQKLSsjIFNldCBm dW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lIGFuZCBmdW5jX3NwbGl0X3Nob3J0X29wdF9hcmcgc2hl bGwKLSsjIHZhcmlhYmxlcyBhZnRlciBzcGxpdHRpbmcgU0hPUlRPUFQgYWZ0ZXIgdGhlIDJuZCBj aGFyYWN0ZXIuCi0rZnVuY19zcGxpdF9zaG9ydF9vcHQgKCkKLSt7Ci0rICAgIG15X3NlZF9zaG9y dF9vcHQ9JzFzL15cKC4uXCkuKiQvXDEvO3EnCi0rICAgIG15X3NlZF9zaG9ydF9yZXN0PScxcy9e Li5cKC4qXCkkL1wxLztxJwotKwotKyAgICBmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lPWAkRUNI TyAiJDEiIHwgJFNFRCAiJG15X3NlZF9zaG9ydF9vcHQiYAotKyAgICBmdW5jX3NwbGl0X3Nob3J0 X29wdF9hcmc9YCRFQ0hPICIkMSIgfCAkU0VEICIkbXlfc2VkX3Nob3J0X3Jlc3QiYAotK30gIyBm dW5jX3NwbGl0X3Nob3J0X29wdCBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1w bGVtZW50YXRpb24KLSsKLSsKLSsjIGZ1bmNfc3BsaXRfbG9uZ19vcHQgbG9uZ29wdAotKyMgU2V0 IGZ1bmNfc3BsaXRfbG9uZ19vcHRfbmFtZSBhbmQgZnVuY19zcGxpdF9sb25nX29wdF9hcmcgc2hl bGwKLSsjIHZhcmlhYmxlcyBhZnRlciBzcGxpdHRpbmcgTE9OR09QVCBhdCB0aGUgYD0nIHNpZ24u Ci0rZnVuY19zcGxpdF9sb25nX29wdCAoKQotK3sKLSsgICAgbXlfc2VkX2xvbmdfb3B0PScxcy9e XCgtLVtePV0qXCk9LiovXDEvO3EnCi0rICAgIG15X3NlZF9sb25nX2FyZz0nMXMvXi0tW149XSo9 Ly8nCi0rCi0rICAgIGZ1bmNfc3BsaXRfbG9uZ19vcHRfbmFtZT1gJEVDSE8gIiQxIiB8ICRTRUQg IiRteV9zZWRfbG9uZ19vcHQiYAotKyAgICBmdW5jX3NwbGl0X2xvbmdfb3B0X2FyZz1gJEVDSE8g IiQxIiB8ICRTRUQgIiRteV9zZWRfbG9uZ19hcmciYAotK30gIyBmdW5jX3NwbGl0X2xvbmdfb3B0 IG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgotKwotK2V4 aXRfY21kPToKLSsKLSsKLSsKLSsKLSsKLSttYWdpYz0iJSUlTUFHSUMgdmFyaWFibGUlJSUiCi0r bWFnaWNfZXhlPSIlJSVNQUdJQyBFWEUgdmFyaWFibGUlJSUiCi0rCi0rIyBHbG9iYWwgdmFyaWFi bGVzLgotK25vbm9wdD0KLStwcmVzZXJ2ZV9hcmdzPQotK2xvMm89InMvXFwubG9cJC8uJHtvYmpl eHR9LyIKLStvMmxvPSJzL1xcLiR7b2JqZXh0fVwkLy5sby8iCi0rZXh0cmFjdGVkX2FyY2hpdmVz PQotK2V4dHJhY3RlZF9zZXJpYWw9MAotKwotKyMgSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgaW4g YW55IG9mIHRoZSBhY3Rpb25zLCB0aGUgY29tbWFuZCBpbiBpdAotKyMgd2lsbCBiZSBleGVjZWQg YXQgdGhlIGVuZC4gIFRoaXMgcHJldmVudHMgaGVyZS1kb2N1bWVudHMgZnJvbSBiZWluZwotKyMg bGVmdCBvdmVyIGJ5IHNoZWxscy4KLStleGVjX2NtZD0KLSsKLSsjIGZ1bmNfYXBwZW5kIHZhciB2 YWx1ZQotKyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgot K2Z1bmNfYXBwZW5kICgpCi0rewotKyAgICBldmFsICIkezF9PVwkJHsxfVwkezJ9IgotK30gIyBm dW5jX2FwcGVuZCBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRp b24KLSsKLSsjIGZ1bmNfYXBwZW5kX3F1b3RlZCB2YXIgdmFsdWUKLSsjIFF1b3RlIFZBTFVFIGFu ZCBhcHBlbmQgdG8gdGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIsIHNlcGFyYXRlZAotKyMg YnkgYSBzcGFjZS4KLStmdW5jX2FwcGVuZF9xdW90ZWQgKCkKLSt7Ci0rICAgIGZ1bmNfcXVvdGVf Zm9yX2V2YWwgIiR7Mn0iCi0rICAgIGV2YWwgIiR7MX09XCQkezF9XFwgXCRmdW5jX3F1b3RlX2Zv cl9ldmFsX3Jlc3VsdCIKLSt9ICMgZnVuY19hcHBlbmRfcXVvdGVkIG1heSBiZSByZXBsYWNlZCBi eSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgotKwotKwotKyMgZnVuY19hcml0aCBhcml0 aG1ldGljLXRlcm0uLi4KLStmdW5jX2FyaXRoICgpCi0rewotKyAgICBmdW5jX2FyaXRoX3Jlc3Vs dD1gZXhwciAiJHtAfSJgCi0rfSAjIGZ1bmNfYXJpdGggbWF5IGJlIHJlcGxhY2VkIGJ5IGV4dGVu ZGVkIHNoZWxsIGltcGxlbWVudGF0aW9uCi0rCi0rCi0rIyBmdW5jX2xlbiBzdHJpbmcKLSsjIFNU UklORyBtYXkgbm90IHN0YXJ0IHdpdGggYSBoeXBoZW4uCi0rZnVuY19sZW4gKCkKLSt7Ci0rICAg IGZ1bmNfbGVuX3Jlc3VsdD1gZXhwciAiJHsxfSIgOiAiLioiIDI+L2Rldi9udWxsIHx8IGVjaG8g JG1heF9jbWRfbGVuYAotK30gIyBmdW5jX2xlbiBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQg c2hlbGwgaW1wbGVtZW50YXRpb24KLSsKLSsKLSsjIGZ1bmNfbG8ybyBvYmplY3QKLStmdW5jX2xv Mm8gKCkKLSt7Ci0rICAgIGZ1bmNfbG8yb19yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgIiRs bzJvImAKLSt9ICMgZnVuY19sbzJvIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBp bXBsZW1lbnRhdGlvbgotKwotKwotKyMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCi0rZnVu Y194Zm9ybSAoKQotK3sKLSsgICAgZnVuY194Zm9ybV9yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRT RUQgJ3MvXC5bXi5dKiQvLmxvLydgCi0rfSAjIGZ1bmNfeGZvcm0gbWF5IGJlIHJlcGxhY2VkIGJ5 IGV4dGVuZGVkIHNoZWxsIGltcGxlbWVudGF0aW9uCi0rCi0rCi0rIyBmdW5jX2ZhdGFsX2NvbmZp Z3VyYXRpb24gYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRv IHN0YW5kYXJkIGVycm9yLCBmb2xsb3dlZCBieQotKyMgYSBjb25maWd1cmF0aW9uIGZhaWx1cmUg aGludCwgYW5kIGV4aXQuCi0rZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICgpCi0rewotKyAgICBm dW5jX2Vycm9yICR7MSsiJEAifQotKyAgICBmdW5jX2Vycm9yICJTZWUgdGhlICRQQUNLQUdFIGRv Y3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotKyAgICBmdW5jX2ZhdGFsX2Vycm9y ICJGYXRhbCBjb25maWd1cmF0aW9uIGVycm9yLiIKLSt9Ci0rCi0rCi0rIyBmdW5jX2NvbmZpZwot KyMgRGlzcGxheSB0aGUgY29uZmlndXJhdGlvbiBmb3IgYWxsIHRoZSB0YWdzIGluIHRoaXMgc2Ny aXB0LgotK2Z1bmNfY29uZmlnICgpCi0rewotKyAgICByZV9iZWdpbmNmPSdeIyAjIyMgQkVHSU4g TElCVE9PTCcKLSsgICAgcmVfZW5kY2Y9J14jICMjIyBFTkQgTElCVE9PTCcKLSsKLSsgICAgIyBE ZWZhdWx0IGNvbmZpZ3VyYXRpb24uCi0rICAgICRTRUQgIjEsLyRyZV9iZWdpbmNmIENPTkZJRy9k Oy8kcmVfZW5kY2YgQ09ORklHLyxcJGQiIDwgIiRwcm9ncGF0aCIKLSsKLSsgICAgIyBOb3cgcHJp bnQgdGhlIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgdGFncy4KLSsgICAgZm9yIHRhZ25hbWUgaW4g JHRhZ2xpc3Q7IGRvCi0rICAgICAgJFNFRCAtbiAiLyRyZV9iZWdpbmNmIFRBRyBDT05GSUc6ICR0 YWduYW1lXCQvLC8kcmVfZW5kY2YgVEFHIENPTkZJRzogJHRhZ25hbWVcJC9wIiA8ICIkcHJvZ3Bh dGgiCi0rICAgIGRvbmUKLSsKLSsgICAgZXhpdCAkPwotK30KLSsKLSsjIGZ1bmNfZmVhdHVyZXMK LSsjIERpc3BsYXkgdGhlIGZlYXR1cmVzIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlwdC4KLStmdW5j X2ZlYXR1cmVzICgpCi0rewotKyAgICBlY2hvICJob3N0OiAkaG9zdCIKLSsgICAgaWYgdGVzdCAi JGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICBlY2hvICJlbmFibGUgc2hh cmVkIGxpYnJhcmllcyIKLSsgICAgZWxzZQotKyAgICAgIGVjaG8gImRpc2FibGUgc2hhcmVkIGxp YnJhcmllcyIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsg dGhlbgotKyAgICAgIGVjaG8gImVuYWJsZSBzdGF0aWMgbGlicmFyaWVzIgotKyAgICBlbHNlCi0r ICAgICAgZWNobyAiZGlzYWJsZSBzdGF0aWMgbGlicmFyaWVzIgotKyAgICBmaQotKwotKyAgICBl eGl0ICQ/Ci0rfQotKwotKyMgZnVuY19lbmFibGVfdGFnIHRhZ25hbWUKLSsjIFZlcmlmeSB0aGF0 IFRBR05BTUUgaXMgdmFsaWQsIGFuZCBlaXRoZXIgZmxhZyBhbiBlcnJvciBhbmQgZXhpdCwgb3IK LSsjIGVuYWJsZSB0aGUgVEFHTkFNRSB0YWcuICBXZSBhbHNvIGFkZCBUQUdOQU1FIHRvIHRoZSBn bG9iYWwgJHRhZ2xpc3QKLSsjIHZhcmlhYmxlIGhlcmUuCi0rZnVuY19lbmFibGVfdGFnICgpCi0r ewotKyAgIyBHbG9iYWwgdmFyaWFibGU6Ci0rICB0YWduYW1lPSIkMSIKLSsKLSsgIHJlX2JlZ2lu Y2Y9Il4jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1lXCQiCi0rICByZV9l bmRjZj0iXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1lXCQiCi0rICBzZWRf ZXh0cmFjdGNmPSIvJHJlX2JlZ2luY2YvLC8kcmVfZW5kY2YvcCIKLSsKLSsgICMgVmFsaWRhdGUg dGFnbmFtZS4KLSsgIGNhc2UgJHRhZ25hbWUgaW4KLSsgICAgKlshLV9BLVphLXowLTksL10qKQot KyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImludmFsaWQgdGFnIG5hbWU6ICR0YWduYW1lIgotKyAg ICAgIDs7Ci0rICBlc2FjCi0rCi0rICAjIERvbid0IHRlc3QgZm9yIHRoZSAiZGVmYXVsdCIgQyB0 YWcsIGFzIHdlIGtub3cgaXQncwotKyAgIyB0aGVyZSBidXQgbm90IHNwZWNpYWxseSBtYXJrZWQu Ci0rICBjYXNlICR0YWduYW1lIGluCi0rICAgIENDKSA7OwotKyAgICAqKQotKyAgICAgIGlmICRH UkVQICIkcmVfYmVnaW5jZiIgIiRwcm9ncGF0aCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCXRh Z2xpc3Q9IiR0YWdsaXN0ICR0YWduYW1lIgotKwotKwkjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0 aW9uLiAgQmUgY2FyZWZ1bCB0byBxdW90ZSB0aGUgcGF0aAotKwkjIGFuZCB0aGUgc2VkIHNjcmlw dCwgdG8gYXZvaWQgc3BsaXR0aW5nIG9uIHdoaXRlc3BhY2UsIGJ1dAotKwkjIGFsc28gZG9uJ3Qg dXNlIG5vbi1wb3J0YWJsZSBxdW90ZXMgd2l0aGluIGJhY2txdW90ZXMgd2l0aGluCi0rCSMgcXVv dGVzIHdlIGhhdmUgdG8gZG8gaXQgaW4gMiBzdGVwczoKLSsJZXh0cmFjdGVkY2Y9YCRTRUQgLW4g LWUgIiRzZWRfZXh0cmFjdGNmIiA8ICIkcHJvZ3BhdGgiYAotKwlldmFsICIkZXh0cmFjdGVkY2Yi Ci0rICAgICAgZWxzZQotKwlmdW5jX2Vycm9yICJpZ25vcmluZyB1bmtub3duIHRhZyAkdGFnbmFt ZSIKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICBlc2FjCi0rfQotKwotKyMgZnVuY19jaGVja192 ZXJzaW9uX21hdGNoCi0rIyBFbnN1cmUgdGhhdCB3ZSBhcmUgdXNpbmcgbTQgbWFjcm9zLCBhbmQg bGlidG9vbCBzY3JpcHQgZnJvbSB0aGUgc2FtZQotKyMgcmVsZWFzZSBvZiBsaWJ0b29sLgotK2Z1 bmNfY2hlY2tfdmVyc2lvbl9tYXRjaCAoKQotK3sKLSsgIGlmIHRlc3QgIiRwYWNrYWdlX3Jldmlz aW9uIiAhPSAiJG1hY3JvX3JldmlzaW9uIjsgdGhlbgotKyAgICBpZiB0ZXN0ICIkVkVSU0lPTiIg IT0gIiRtYWNyb192ZXJzaW9uIjsgdGhlbgotKyAgICAgIGlmIHRlc3QgLXogIiRtYWNyb192ZXJz aW9uIjsgdGhlbgotKyAgICAgICAgY2F0ID4mMiA8PF9MVF9FT0YKLSskcHJvZ25hbWU6IFZlcnNp b24gbWlzbWF0Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCBidXQgdGhlCi0r JHByb2duYW1lOiBkZWZpbml0aW9uIG9mIHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tIGFuIG9sZGVy IHJlbGVhc2UuCi0rJHByb2duYW1lOiBZb3Ugc2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwubTQgd2l0 aCBtYWNyb3MgZnJvbSAkUEFDS0FHRSAkVkVSU0lPTgotKyRwcm9nbmFtZTogYW5kIHJ1biBhdXRv Y29uZiBhZ2Fpbi4KLStfTFRfRU9GCi0rICAgICAgZWxzZQotKyAgICAgICAgY2F0ID4mMiA8PF9M VF9FT0YKLSskcHJvZ25hbWU6IFZlcnNpb24gbWlzbWF0Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNL QUdFICRWRVJTSU9OLCBidXQgdGhlCi0rJHByb2duYW1lOiBkZWZpbml0aW9uIG9mIHRoaXMgTFRf SU5JVCBjb21lcyBmcm9tICRQQUNLQUdFICRtYWNyb192ZXJzaW9uLgotKyRwcm9nbmFtZTogWW91 IHNob3VsZCByZWNyZWF0ZSBhY2xvY2FsLm00IHdpdGggbWFjcm9zIGZyb20gJFBBQ0tBR0UgJFZF UlNJT04KLSskcHJvZ25hbWU6IGFuZCBydW4gYXV0b2NvbmYgYWdhaW4uCi0rX0xUX0VPRgotKyAg ICAgIGZpCi0rICAgIGVsc2UKLSsgICAgICBjYXQgPiYyIDw8X0xUX0VPRgotKyRwcm9nbmFtZTog VmVyc2lvbiBtaXNtYXRjaCBlcnJvci4gIFRoaXMgaXMgJFBBQ0tBR0UgJFZFUlNJT04sIHJldmlz aW9uICRwYWNrYWdlX3JldmlzaW9uLAotKyRwcm9nbmFtZTogYnV0IHRoZSBkZWZpbml0aW9uIG9m IHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tIHJldmlzaW9uICRtYWNyb19yZXZpc2lvbi4KLSskcHJv Z25hbWU6IFlvdSBzaG91bGQgcmVjcmVhdGUgYWNsb2NhbC5tNCB3aXRoIG1hY3JvcyBmcm9tIHJl dmlzaW9uICRwYWNrYWdlX3JldmlzaW9uCi0rJHByb2duYW1lOiBvZiAkUEFDS0FHRSAkVkVSU0lP TiBhbmQgcnVuIGF1dG9jb25mIGFnYWluLgotK19MVF9FT0YKLSsgICAgZmkKLSsKLSsgICAgZXhp dCAkRVhJVF9NSVNNQVRDSAotKyAgZmkKLSt9Ci0rCi0rCi0rIyBTaG9ydGhhbmQgZm9yIC0tbW9k ZT1mb28sIG9ubHkgdmFsaWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50Ci0rY2FzZSAkMSBpbgotK2Ns ZWFufGNsZWF8Y2xlfGNsKQotKyAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY2xlYW4gJHsxKyIk QCJ9OyBzaGlmdAotKyAgOzsKLStjb21waWxlfGNvbXBpbHxjb21waXxjb21wfGNvbXxjb3xjKQot KyAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY29tcGlsZSAkezErIiRAIn07IHNoaWZ0Ci0rICA7 OwotK2V4ZWN1dGV8ZXhlY3V0fGV4ZWN1fGV4ZWN8ZXhlfGV4fGUpCi0rICBzaGlmdDsgc2V0IGR1 bW15IC0tbW9kZSBleGVjdXRlICR7MSsiJEAifTsgc2hpZnQKLSsgIDs7Ci0rZmluaXNofGZpbmlz fGZpbml8ZmlufGZpfGYpCi0rICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBmaW5pc2ggJHsxKyIk QCJ9OyBzaGlmdAotKyAgOzsKLStpbnN0YWxsfGluc3RhbHxpbnN0YXxpbnN0fGluc3xpbnxpKQot KyAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgaW5zdGFsbCAkezErIiRAIn07IHNoaWZ0Ci0rICA7 OwotK2xpbmt8bGlufGxpfGwpCi0rICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBsaW5rICR7MSsi JEAifTsgc2hpZnQKLSsgIDs7Ci0rdW5pbnN0YWxsfHVuaW5zdGFsfHVuaW5zdGF8dW5pbnN0fHVu aW5zfHVuaW58dW5pfHVufHUpCi0rICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSB1bmluc3RhbGwg JHsxKyIkQCJ9OyBzaGlmdAotKyAgOzsKLStlc2FjCi0rCi0rCi0rCi0rIyBPcHRpb24gZGVmYXVs dHM6Ci0rb3B0X2RlYnVnPToKLStvcHRfZHJ5X3J1bj1mYWxzZQotK29wdF9jb25maWc9ZmFsc2UK LStvcHRfcHJlc2VydmVfZHVwX2RlcHM9ZmFsc2UKLStvcHRfZmVhdHVyZXM9ZmFsc2UKLStvcHRf ZmluaXNoPWZhbHNlCi0rb3B0X2hlbHA9ZmFsc2UKLStvcHRfaGVscF9hbGw9ZmFsc2UKLStvcHRf c2lsZW50PToKLStvcHRfdmVyYm9zZT06Ci0rb3B0X3NpbGVudD1mYWxzZQotK29wdF92ZXJib3Nl PWZhbHNlCi0rCi0rCi0rIyBQYXJzZSBvcHRpb25zIG9uY2UsIHRob3JvdWdobHkuICBUaGlzIGNv bWVzIGFzIHNvb24gYXMgcG9zc2libGUgaW4gdGhlCi0rIyBzY3JpcHQgdG8gbWFrZSB0aGluZ3Mg bGlrZSBgLS12ZXJzaW9uJyBoYXBwZW4gYXMgcXVpY2tseSBhcyB3ZSBjYW4uCi0rewotKyAgIyB0 aGlzIGp1c3QgZWFzZXMgZXhpdCBoYW5kbGluZwotKyAgd2hpbGUgdGVzdCAkIyAtZ3QgMDsgZG8K LSsgICAgb3B0PSIkMSIKLSsgICAgc2hpZnQKLSsgICAgY2FzZSAkb3B0IGluCi0rICAgICAgLS1k ZWJ1Z3wteCkJb3B0X2RlYnVnPSdzZXQgLXgnCi0rCQkJZnVuY19lY2hvICJlbmFibGluZyBzaGVs bCB0cmFjZSBtb2RlIgotKwkJCSRvcHRfZGVidWcKLSsJCQk7OwotKyAgICAgIC0tZHJ5LXJ1bnwt LWRyeXJ1bnwtbikKLSsJCQlvcHRfZHJ5X3J1bj06Ci0rCQkJOzsKLSsgICAgICAtLWNvbmZpZykK LSsJCQlvcHRfY29uZmlnPToKLStmdW5jX2NvbmZpZwotKwkJCTs7Ci0rICAgICAgLS1kbG9wZW58 LWRsb3BlbikKLSsJCQlvcHRhcmc9IiQxIgotKwkJCW9wdF9kbG9wZW49IiR7b3B0X2Rsb3Blbisk b3B0X2Rsb3BlbgotK30kb3B0YXJnIgotKwkJCXNoaWZ0Ci0rCQkJOzsKLSsgICAgICAtLXByZXNl cnZlLWR1cC1kZXBzKQotKwkJCW9wdF9wcmVzZXJ2ZV9kdXBfZGVwcz06Ci0rCQkJOzsKLSsgICAg ICAtLWZlYXR1cmVzKQotKwkJCW9wdF9mZWF0dXJlcz06Ci0rZnVuY19mZWF0dXJlcwotKwkJCTs7 Ci0rICAgICAgLS1maW5pc2gpCi0rCQkJb3B0X2ZpbmlzaD06Ci0rc2V0IGR1bW15IC0tbW9kZSBm aW5pc2ggJHsxKyIkQCJ9OyBzaGlmdAotKwkJCTs7Ci0rICAgICAgLS1oZWxwKQotKwkJCW9wdF9o ZWxwPToKLSsJCQk7OwotKyAgICAgIC0taGVscC1hbGwpCi0rCQkJb3B0X2hlbHBfYWxsPToKLStv cHRfaGVscD0nOiBoZWxwLWFsbCcKLSsJCQk7OwotKyAgICAgIC0tbW9kZSkKLSsJCQl0ZXN0ICQj ID0gMCAmJiBmdW5jX21pc3NpbmdfYXJnICRvcHQgJiYgYnJlYWsKLSsJCQlvcHRhcmc9IiQxIgot KwkJCW9wdF9tb2RlPSIkb3B0YXJnIgotK2Nhc2UgJG9wdGFyZyBpbgotKyAgIyBWYWxpZCBtb2Rl IGFyZ3VtZW50czoKLSsgIGNsZWFufGNvbXBpbGV8ZXhlY3V0ZXxmaW5pc2h8aW5zdGFsbHxsaW5r fHJlbGlua3x1bmluc3RhbGwpIDs7Ci0rCi0rICAjIENhdGNoIGFueXRoaW5nIGVsc2UgYXMgYW4g ZXJyb3IKLSsgICopIGZ1bmNfZXJyb3IgImludmFsaWQgYXJndW1lbnQgZm9yICRvcHQiCi0rICAg ICBleGl0X2NtZD1leGl0Ci0rICAgICBicmVhawotKyAgICAgOzsKLStlc2FjCi0rCQkJc2hpZnQK LSsJCQk7OwotKyAgICAgIC0tbm8tc2lsZW50fC0tbm8tcXVpZXQpCi0rCQkJb3B0X3NpbGVudD1m YWxzZQotK2Z1bmNfYXBwZW5kIHByZXNlcnZlX2FyZ3MgIiAkb3B0IgotKwkJCTs7Ci0rICAgICAg LS1uby12ZXJib3NlKQotKwkJCW9wdF92ZXJib3NlPWZhbHNlCi0rZnVuY19hcHBlbmQgcHJlc2Vy dmVfYXJncyAiICRvcHQiCi0rCQkJOzsKLSsgICAgICAtLXNpbGVudHwtLXF1aWV0KQotKwkJCW9w dF9zaWxlbnQ9OgotK2Z1bmNfYXBwZW5kIHByZXNlcnZlX2FyZ3MgIiAkb3B0IgotKyAgICAgICAg b3B0X3ZlcmJvc2U9ZmFsc2UKLSsJCQk7OwotKyAgICAgIC0tdmVyYm9zZXwtdikKLSsJCQlvcHRf dmVyYm9zZT06Ci0rZnVuY19hcHBlbmQgcHJlc2VydmVfYXJncyAiICRvcHQiCi0rb3B0X3NpbGVu dD1mYWxzZQotKwkJCTs7Ci0rICAgICAgLS10YWcpCi0rCQkJdGVzdCAkIyA9IDAgJiYgZnVuY19t aXNzaW5nX2FyZyAkb3B0ICYmIGJyZWFrCi0rCQkJb3B0YXJnPSIkMSIKLSsJCQlvcHRfdGFnPSIk b3B0YXJnIgotK2Z1bmNfYXBwZW5kIHByZXNlcnZlX2FyZ3MgIiAkb3B0ICRvcHRhcmciCi0rZnVu Y19lbmFibGVfdGFnICIkb3B0YXJnIgotKwkJCXNoaWZ0Ci0rCQkJOzsKLSsKLSsgICAgICAtXD98 LWgpCQlmdW5jX3VzYWdlCQkJCTs7Ci0rICAgICAgLS1oZWxwKQkJZnVuY19oZWxwCQkJCTs7Ci0r ICAgICAgLS12ZXJzaW9uKQlmdW5jX3ZlcnNpb24JCQkJOzsKLSsKLSsgICAgICAjIFNlcGFyYXRl IG9wdGFyZ3MgdG8gbG9uZyBvcHRpb25zOgotKyAgICAgIC0tKj0qKQotKwkJCWZ1bmNfc3BsaXRf bG9uZ19vcHQgIiRvcHQiCi0rCQkJc2V0IGR1bW15ICIkZnVuY19zcGxpdF9sb25nX29wdF9uYW1l IiAiJGZ1bmNfc3BsaXRfbG9uZ19vcHRfYXJnIiAkezErIiRAIn0KLSsJCQlzaGlmdAotKwkJCTs7 Ci0rCi0rICAgICAgIyBTZXBhcmF0ZSBub24tYXJndW1lbnQgc2hvcnQgb3B0aW9uczoKLSsgICAg ICAtXD8qfC1oKnwtbip8LXYqKQotKwkJCWZ1bmNfc3BsaXRfc2hvcnRfb3B0ICIkb3B0IgotKwkJ CXNldCBkdW1teSAiJGZ1bmNfc3BsaXRfc2hvcnRfb3B0X25hbWUiICItJGZ1bmNfc3BsaXRfc2hv cnRfb3B0X2FyZyIgJHsxKyIkQCJ9Ci0rCQkJc2hpZnQKLSsJCQk7OwotKwotKyAgICAgIC0tKQkJ YnJlYWsJCQkJCTs7Ci0rICAgICAgLSopCQlmdW5jX2ZhdGFsX2hlbHAgInVucmVjb2duaXplZCBv cHRpb24gXGAkb3B0JyIgOzsKLSsgICAgICAqKQkJc2V0IGR1bW15ICIkb3B0IiAkezErIiRAIn07 CXNoaWZ0OyBicmVhayAgOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKwotKyAgIyBWYWxpZGF0ZSBv cHRpb25zOgotKwotKyAgIyBzYXZlIGZpcnN0IG5vbi1vcHRpb24gYXJndW1lbnQKLSsgIGlmIHRl c3QgIiQjIiAtZ3QgMDsgdGhlbgotKyAgICBub25vcHQ9IiRvcHQiCi0rICAgIHNoaWZ0Ci0rICBm aQotKwotKyAgIyBwcmVzZXJ2ZSAtLWRlYnVnCi0rICB0ZXN0ICIkb3B0X2RlYnVnIiA9IDogfHwg ZnVuY19hcHBlbmQgcHJlc2VydmVfYXJncyAiIC0tZGVidWciCi0rCi0rICBjYXNlICRob3N0IGlu Ci0rICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpwdzMyKiB8ICpjZWdjYyopCi0rICAgICAgIyBk b24ndCBlbGltaW5hdGUgZHVwbGljYXRpb25zIGluICRwb3N0ZGVwcyBhbmQgJHByZWRlcHMKLSsg ICAgICBvcHRfZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPToKLSsgICAgICA7Owot KyAgICAqKQotKyAgICAgIG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM9JG9w dF9wcmVzZXJ2ZV9kdXBfZGVwcwotKyAgICAgIDs7Ci0rICBlc2FjCi0rCi0rICAkb3B0X2hlbHAg fHwgewotKyAgICAjIFNhbml0eSBjaGVja3MgZmlyc3Q6Ci0rICAgIGZ1bmNfY2hlY2tfdmVyc2lv bl9tYXRjaAotKwotKyAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYg dGVzdCAiJGJ1aWxkX29sZF9saWJzIiAhPSB5ZXM7IHRoZW4KLSsgICAgICBmdW5jX2ZhdGFsX2Nv bmZpZ3VyYXRpb24gIm5vdCBjb25maWd1cmVkIHRvIGJ1aWxkIGFueSBraW5kIG9mIGxpYnJhcnki Ci0rICAgIGZpCi0rCi0rICAgICMgRGFyd2luIHN1Y2tzCi0rICAgIGV2YWwgc3RkX3NocmV4dD1c IiRzaHJleHRfY21kc1wiCi0rCi0rICAgICMgT25seSBleGVjdXRlIG1vZGUgaXMgYWxsb3dlZCB0 byBoYXZlIC1kbG9wZW4gZmxhZ3MuCi0rICAgIGlmIHRlc3QgLW4gIiRvcHRfZGxvcGVuIiAmJiB0 ZXN0ICIkb3B0X21vZGUiICE9IGV4ZWN1dGU7IHRoZW4KLSsgICAgICBmdW5jX2Vycm9yICJ1bnJl Y29nbml6ZWQgb3B0aW9uIFxgLWRsb3BlbiciCi0rICAgICAgJEVDSE8gIiRoZWxwIiAxPiYyCi0r ICAgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rICAgIGZpCi0rCi0rICAgICMgQ2hhbmdlIHRoZSBo ZWxwIG1lc3NhZ2UgdG8gYSBtb2RlLXNwZWNpZmljIG9uZS4KLSsgICAgZ2VuZXJpY19oZWxwPSIk aGVscCIKLSsgICAgaGVscD0iVHJ5IFxgJHByb2duYW1lIC0taGVscCAtLW1vZGU9JG9wdF9tb2Rl JyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCi0rICB9Ci0rCi0rCi0rICAjIEJhaWwgaWYgdGhlIG9w dGlvbnMgd2VyZSBzY3Jld2VkCi0rICAkZXhpdF9jbWQgJEVYSVRfRkFJTFVSRQotK30KLSsKLSsK LSsKLSsKLSsjIyAtLS0tLS0tLS0tLSAjIwotKyMjICAgIE1haW4uICAgICMjCi0rIyMgLS0tLS0t LS0tLS0gIyMKLSsKLSsjIGZ1bmNfbGFsaWJfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEg bGlidG9vbCBgLmxhJyBsaWJyYXJ5IG9yIGAubG8nIG9iamVjdCBmaWxlLgotKyMgVGhpcyBmdW5j dGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBv dXQKLSsjIGRldGVybWluZWQgaW1wb3N0ZXJzLgotK2Z1bmNfbGFsaWJfcCAoKQotK3sKLSsgICAg dGVzdCAtZiAiJDEiICYmCi0rICAgICAgJFNFRCAtZSA0cSAiJDEiIDI+L2Rldi9udWxsIFwKLSsg ICAgICAgIHwgJEdSRVAgIl4jIEdlbmVyYXRlZCBieSAuKiRQQUNLQUdFIiA+IC9kZXYvbnVsbCAy PiYxCi0rfQotKwotKyMgZnVuY19sYWxpYl91bnNhZmVfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxF IGlzIGEgbGlidG9vbCBgLmxhJyBsaWJyYXJ5IG9yIGAubG8nIG9iamVjdCBmaWxlLgotKyMgVGhp cyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBzYW1lIGNoZWNrIGFzIGZ1bmNfbGFsaWJfcCB3aXRo b3V0Ci0rIyByZXNvcnRpbmcgdG8gZXh0ZXJuYWwgcHJvZ3JhbXMuICBUbyB0aGlzIGVuZCwgaXQg cmVkaXJlY3RzIHN0ZGluIGFuZAotKyMgY2xvc2VzIGl0IGFmdGVyd2FyZHMsIHdpdGhvdXQgc2F2 aW5nIHRoZSBvcmlnaW5hbCBmaWxlIGRlc2NyaXB0b3IuCi0rIyBBcyBhIHNhZmV0eSBtZWFzdXJl LCB1c2UgaXQgb25seSB3aGVyZSBhIG5lZ2F0aXZlIHJlc3VsdCB3b3VsZCBiZQotKyMgZmF0YWwg YW55d2F5LiAgV29ya3MgaWYgYGZpbGUnIGRvZXMgbm90IGV4aXN0LgotK2Z1bmNfbGFsaWJfdW5z YWZlX3AgKCkKLSt7Ci0rICAgIGxhbGliX3A9bm8KLSsgICAgaWYgdGVzdCAtZiAiJDEiICYmIHRl c3QgLXIgIiQxIiAmJiBleGVjIDU8JjAgPCIkMSI7IHRoZW4KLSsJZm9yIGxhbGliX3BfbCBpbiAx IDIgMyA0Ci0rCWRvCi0rCSAgICByZWFkIGxhbGliX3BfbGluZQotKwkgICAgY2FzZSAiJGxhbGli X3BfbGluZSIgaW4KLSsJCVwjXCBHZW5lcmF0ZWRcIGJ5XCAqJFBBQ0tBR0UqICkgbGFsaWJfcD15 ZXM7IGJyZWFrOzsKLSsJICAgIGVzYWMKLSsJZG9uZQotKwlleGVjIDA8JjUgNTwmLQotKyAgICBm aQotKyAgICB0ZXN0ICIkbGFsaWJfcCIgPSB5ZXMKLSt9Ci0rCi0rIyBmdW5jX2x0d3JhcHBlcl9z Y3JpcHRfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCB3cmFwcGVyIHNjcmlw dAotKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxs IGhhcmRseSBmbHVzaCBvdXQKLSsjIGRldGVybWluZWQgaW1wb3N0ZXJzLgotK2Z1bmNfbHR3cmFw cGVyX3NjcmlwdF9wICgpCi0rewotKyAgICBmdW5jX2xhbGliX3AgIiQxIgotK30KLSsKLSsjIGZ1 bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGli dG9vbCB3cmFwcGVyIGV4ZWN1dGFibGUKLSsjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2lj IHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0Ci0rIyBkZXRlcm1pbmVkIGlt cG9zdGVycy4KLStmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgKCkKLSt7Ci0rICAgIGZ1bmNf bHR3cmFwcGVyX2V4ZWNfc3VmZml4PQotKyAgICBjYXNlICQxIGluCi0rICAgICouZXhlKSA7Owot KyAgICAqKSBmdW5jX2x0d3JhcHBlcl9leGVjX3N1ZmZpeD0uZXhlIDs7Ci0rICAgIGVzYWMKLSsg ICAgJEdSRVAgIiRtYWdpY19leGUiICIkMSRmdW5jX2x0d3JhcHBlcl9leGVjX3N1ZmZpeCIgPi9k ZXYvbnVsbCAyPiYxCi0rfQotKwotKyMgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSBmaWxlCi0r IyBBc3N1bWVzIGZpbGUgaXMgYW4gbHR3cmFwcGVyX2V4ZWN1dGFibGUKLSsjIHVzZXMgJGZpbGUg dG8gZGV0ZXJtaW5lIHRoZSBhcHByb3ByaWF0ZSBmaWxlbmFtZSBmb3IgYQotKyMgdGVtcG9yYXJ5 IGx0d3JhcHBlcl9zY3JpcHQuCi0rZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAoKQotK3sKLSsg ICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJDEiICIiICIuIgotKyAgICBmdW5jX3N0cmlw bmFtZSAnJyAnLmV4ZScgIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsgICAgZnVuY19sdHdyYXBw ZXJfc2NyaXB0bmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0LyRvYmpkaXIvJHtmdW5j X3N0cmlwbmFtZV9yZXN1bHR9X2x0c2h3cmFwcGVyIgotK30KLSsKLSsjIGZ1bmNfbHR3cmFwcGVy X3AgZmlsZQotKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgb3Ig d3JhcHBlciBleGVjdXRhYmxlCi0rIyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYSBiYXNpYyBzYW5p dHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dAotKyMgZGV0ZXJtaW5lZCBpbXBvc3Rl cnMuCi0rZnVuY19sdHdyYXBwZXJfcCAoKQotK3sKLSsgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0 X3AgIiQxIiB8fCBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiQxIgotK30KLSsKLSsKLSsj IGZ1bmNfZXhlY3V0ZV9jbWRzIGNvbW1hbmRzIGZhaWxfY21kCi0rIyBFeGVjdXRlIHRpbGRlLWRl bGltaXRlZCBDT01NQU5EUy4KLSsjIElmIEZBSUxfQ01EIGlzIGdpdmVuLCBldmFsIHRoYXQgdXBv biBmYWlsdXJlLgotKyMgRkFJTF9DTUQgbWF5IHJlYWQtYWNjZXNzIHRoZSBjdXJyZW50IGNvbW1h bmQgaW4gdmFyaWFibGUgQ01EIQotK2Z1bmNfZXhlY3V0ZV9jbWRzICgpCi0rewotKyAgICAkb3B0 X2RlYnVnCi0rICAgIHNhdmVfaWZzPSRJRlM7IElGUz0nficKLSsgICAgZm9yIGNtZCBpbiAkMTsg ZG8KLSsgICAgICBJRlM9JHNhdmVfaWZzCi0rICAgICAgZXZhbCBjbWQ9XCIkY21kXCIKLSsgICAg ICBmdW5jX3Nob3dfZXZhbCAiJGNtZCIgIiR7Mi06fSIKLSsgICAgZG9uZQotKyAgICBJRlM9JHNh dmVfaWZzCi0rfQotKwotKwotKyMgZnVuY19zb3VyY2UgZmlsZQotKyMgU291cmNlIEZJTEUsIGFk ZGluZyBkaXJlY3RvcnkgY29tcG9uZW50IGlmIG5lY2Vzc2FyeS4KLSsjIE5vdGUgdGhhdCBpdCBp cyBub3QgbmVjZXNzYXJ5IG9uIGN5Z3dpbi9taW5ndyB0byBhcHBlbmQgYSBkb3QgdG8KLSsjIEZJ TEUgZXZlbiBpZiBib3RoIEZJTEUgYW5kIEZJTEUuZXhlIGV4aXN0OiBhdXRvbWF0aWMtYXBwZW5k LS5leGUKLSsjIGJlaGF2aW9yIGhhcHBlbnMgb25seSBmb3IgZXhlYygzKSwgbm90IGZvciBvcGVu KDIpISAgQWxzbywgc291cmNpbmcKLSsjIGBGSUxFLicgZG9lcyBub3Qgd29yayBvbiBjeWd3aW4g bWFuYWdlZCBtb3VudHMuCi0rZnVuY19zb3VyY2UgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsg ICAgY2FzZSAkMSBpbgotKyAgICAqLyogfCAqXFwqKQkuICIkMSIgOzsKLSsgICAgKikJCS4gIi4v JDEiIDs7Ci0rICAgIGVzYWMKLSt9Ci0rCi0rCi0rIyBmdW5jX3Jlc29sdmVfc3lzcm9vdCBQQVRI Ci0rIyBSZXBsYWNlIGEgbGVhZGluZyA9IGluIFBBVEggd2l0aCBhIHN5c3Jvb3QuICBTdG9yZSB0 aGUgcmVzdWx0IGludG8KLSsjIGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdAotK2Z1bmNfcmVz b2x2ZV9zeXNyb290ICgpCi0rewotKyAgZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0PSQxCi0r ICBjYXNlICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQgaW4KLSsgID0qKQotKyAgICBmdW5j X3N0cmlwbmFtZSAnPScgJycgIiRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCi0rICAgIGZ1 bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdD0kbHRfc3lzcm9vdCRmdW5jX3N0cmlwbmFtZV9yZXN1 bHQKLSsgICAgOzsKLSsgIGVzYWMKLSt9Ci0rCi0rIyBmdW5jX3JlcGxhY2Vfc3lzcm9vdCBQQVRI Ci0rIyBJZiBQQVRIIGJlZ2lucyB3aXRoIHRoZSBzeXNyb290LCByZXBsYWNlIGl0IHdpdGggPSBh bmQKLSsjIHN0b3JlIHRoZSByZXN1bHQgaW50byBmdW5jX3JlcGxhY2Vfc3lzcm9vdF9yZXN1bHQu Ci0rZnVuY19yZXBsYWNlX3N5c3Jvb3QgKCkKLSt7Ci0rICBjYXNlICIkbHRfc3lzcm9vdDokMSIg aW4KLSsgID8qOiIkbHRfc3lzcm9vdCIqKQotKyAgICBmdW5jX3N0cmlwbmFtZSAiJGx0X3N5c3Jv b3QiICcnICIkMSIKLSsgICAgZnVuY19yZXBsYWNlX3N5c3Jvb3RfcmVzdWx0PSI9JGZ1bmNfc3Ry aXBuYW1lX3Jlc3VsdCIKLSsgICAgOzsKLSsgICopCi0rICAgICMgSW5jbHVkaW5nIG5vIHN5c3Jv b3QuCi0rICAgIGZ1bmNfcmVwbGFjZV9zeXNyb290X3Jlc3VsdD0kMQotKyAgICA7OwotKyAgZXNh YwotK30KLSsKLSsjIGZ1bmNfaW5mZXJfdGFnIGFyZwotKyMgSW5mZXIgdGFnZ2VkIGNvbmZpZ3Vy YXRpb24gdG8gdXNlIGlmIGFueSBhcmUgYXZhaWxhYmxlIGFuZAotKyMgaWYgb25lIHdhc24ndCBj aG9zZW4gdmlhIHRoZSAiLS10YWciIGNvbW1hbmQgbGluZSBvcHRpb24uCi0rIyBPbmx5IGF0dGVt cHQgdGhpcyBpZiB0aGUgY29tcGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZQotKyMgY29tbWFuZCBk b2Vzbid0IG1hdGNoIHRoZSBkZWZhdWx0IGNvbXBpbGVyLgotKyMgYXJnIGlzIHVzdWFsbHkgb2Yg dGhlIGZvcm0gJ2djYyAuLi4nCi0rZnVuY19pbmZlcl90YWcgKCkKLSt7Ci0rICAgICRvcHRfZGVi dWcKLSsgICAgaWYgdGVzdCAtbiAiJGF2YWlsYWJsZV90YWdzIiAmJiB0ZXN0IC16ICIkdGFnbmFt ZSI7IHRoZW4KLSsgICAgICBDQ19xdW90ZWQ9Ci0rICAgICAgZm9yIGFyZyBpbiAkQ0M7IGRvCi0r CWZ1bmNfYXBwZW5kX3F1b3RlZCBDQ19xdW90ZWQgIiRhcmciCi0rICAgICAgZG9uZQotKyAgICAg IENDX2V4cGFuZGVkPWBmdW5jX2VjaG9fYWxsICRDQ2AKLSsgICAgICBDQ19xdW90ZWRfZXhwYW5k ZWQ9YGZ1bmNfZWNob19hbGwgJENDX3F1b3RlZGAKLSsgICAgICBjYXNlICRAIGluCi0rICAgICAg IyBCbGFua3MgaW4gdGhlIGNvbW1hbmQgbWF5IGhhdmUgYmVlbiBzdHJpcHBlZCBieSB0aGUgY2Fs bGluZyBzaGVsbCwKLSsgICAgICAjIGJ1dCBub3QgZnJvbSB0aGUgQ0MgZW52aXJvbm1lbnQgdmFy aWFibGUgd2hlbiBjb25maWd1cmUgd2FzIHJ1bi4KLSsgICAgICAiICRDQyAiKiB8ICIkQ0MgIiog fCAiICRDQ19leHBhbmRlZCAiKiB8ICIkQ0NfZXhwYW5kZWQgIiogfCBcCi0rICAgICAgIiAkQ0Nf cXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIgJENDX3F1b3RlZF9leHBhbmRlZCAiKiB8ICIk Q0NfcXVvdGVkX2V4cGFuZGVkICIqKSA7OwotKyAgICAgICMgQmxhbmtzIGF0IHRoZSBzdGFydCBv ZiAkYmFzZV9jb21waWxlIHdpbGwgY2F1c2UgdGhpcyB0byBmYWlsCi0rICAgICAgIyBpZiB3ZSBk b24ndCBjaGVjayBmb3IgdGhlbSBhcyB3ZWxsLgotKyAgICAgICopCi0rCWZvciB6IGluICRhdmFp bGFibGVfdGFnczsgZG8KLSsJICBpZiAkR1JFUCAiXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENP TkZJRzogJHokIiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICAjIEV2YWx1 YXRlIHRoZSBjb25maWd1cmF0aW9uLgotKwkgICAgZXZhbCAiYCR7U0VEfSAtbiAtZSAnL14jICMj IyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICckeickLywvXiMgIyMjIEVORCBMSUJUT09MIFRB RyBDT05GSUc6ICckeickL3AnIDwgJHByb2dwYXRoYCIKLSsJICAgIENDX3F1b3RlZD0KLSsJICAg IGZvciBhcmcgaW4gJENDOyBkbwotKwkgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5p bmcgb3RoZXIgc2hlbGwgbWV0YWNoYXJhY3RlcnMuCi0rCSAgICAgIGZ1bmNfYXBwZW5kX3F1b3Rl ZCBDQ19xdW90ZWQgIiRhcmciCi0rCSAgICBkb25lCi0rCSAgICBDQ19leHBhbmRlZD1gZnVuY19l Y2hvX2FsbCAkQ0NgCi0rCSAgICBDQ19xdW90ZWRfZXhwYW5kZWQ9YGZ1bmNfZWNob19hbGwgJEND X3F1b3RlZGAKLSsJICAgIGNhc2UgIiRAICIgaW4KLSsJICAgICIgJENDICIqIHwgIiRDQyAiKiB8 ICIgJENDX2V4cGFuZGVkICIqIHwgIiRDQ19leHBhbmRlZCAiKiB8IFwKLSsJICAgICIgJENDX3F1 b3RlZCIqIHwgIiRDQ19xdW90ZWQgIiogfCAiICRDQ19xdW90ZWRfZXhwYW5kZWQgIiogfCAiJEND X3F1b3RlZF9leHBhbmRlZCAiKikKLSsJICAgICAgIyBUaGUgY29tcGlsZXIgaW4gdGhlIGJhc2Ug Y29tcGlsZSBjb21tYW5kIG1hdGNoZXMKLSsJICAgICAgIyB0aGUgb25lIGluIHRoZSB0YWdnZWQg Y29uZmlndXJhdGlvbi4KLSsJICAgICAgIyBBc3N1bWUgdGhpcyBpcyB0aGUgdGFnZ2VkIGNvbmZp Z3VyYXRpb24gd2Ugd2FudC4KLSsJICAgICAgdGFnbmFtZT0kegotKwkgICAgICBicmVhawotKwkg ICAgICA7OwotKwkgICAgZXNhYwotKwkgIGZpCi0rCWRvbmUKLSsJIyBJZiAkdGFnbmFtZSBzdGls bCBpc24ndCBzZXQsIHRoZW4gbm8gdGFnZ2VkIGNvbmZpZ3VyYXRpb24KLSsJIyB3YXMgZm91bmQg YW5kIGxldCB0aGUgdXNlciBrbm93IHRoYXQgdGhlICItLXRhZyIgY29tbWFuZAotKwkjIGxpbmUg b3B0aW9uIG11c3QgYmUgdXNlZC4KLSsJaWYgdGVzdCAteiAiJHRhZ25hbWUiOyB0aGVuCi0rCSAg ZnVuY19lY2hvICJ1bmFibGUgdG8gaW5mZXIgdGFnZ2VkIGNvbmZpZ3VyYXRpb24iCi0rCSAgZnVu Y19mYXRhbF9lcnJvciAic3BlY2lmeSBhIHRhZyB3aXRoIFxgLS10YWcnIgotKyMJZWxzZQotKyMJ ICBmdW5jX3ZlcmJvc2UgInVzaW5nICR0YWduYW1lIHRhZ2dlZCBjb25maWd1cmF0aW9uIgotKwlm aQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSt9Ci0rCi0rCi0rCi0rIyBmdW5jX3dyaXRl X2xpYnRvb2xfb2JqZWN0IG91dHB1dF9uYW1lIHBpY19uYW1lIG5vbnBpY19uYW1lCi0rIyBDcmVh dGUgYSBsaWJ0b29sIG9iamVjdCBmaWxlIChhbmFsb2dvdXMgdG8gYSAiLmxhIiBmaWxlKSwKLSsj IGJ1dCBkb24ndCBjcmVhdGUgaXQgaWYgd2UncmUgZG9pbmcgYSBkcnkgcnVuLgotK2Z1bmNfd3Jp dGVfbGlidG9vbF9vYmplY3QgKCkKLSt7Ci0rICAgIHdyaXRlX2xpYm9iaj0kezF9Ci0rICAgIGlm IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgd3JpdGVfbG9i aj1cJyR7Mn1cJwotKyAgICBlbHNlCi0rICAgICAgd3JpdGVfbG9iaj1ub25lCi0rICAgIGZpCi0r Ci0rICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICB3cml0 ZV9vbGRvYmo9XCckezN9XCcKLSsgICAgZWxzZQotKyAgICAgIHdyaXRlX29sZG9iaj1ub25lCi0r ICAgIGZpCi0rCi0rICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rICAgICAgY2F0ID4ke3dyaXRlX2xp Ym9ian1UIDw8RU9GCi0rIyAkd3JpdGVfbGlib2JqIC0gYSBsaWJ0b29sIG9iamVjdCBmaWxlCi0r IyBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9O Ci0rIwotKyMgUGxlYXNlIERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQotKyMgSXQgaXMgbmVjZXNz YXJ5IGZvciBsaW5raW5nIHRoZSBsaWJyYXJ5LgotKwotKyMgTmFtZSBvZiB0aGUgUElDIG9iamVj dC4KLStwaWNfb2JqZWN0PSR3cml0ZV9sb2JqCi0rCi0rIyBOYW1lIG9mIHRoZSBub24tUElDIG9i amVjdAotK25vbl9waWNfb2JqZWN0PSR3cml0ZV9vbGRvYmoKLSsKLStFT0YKLSsgICAgICAkTVYg IiR7d3JpdGVfbGlib2JqfVQiICIke3dyaXRlX2xpYm9ian0iCi0rICAgIH0KLSt9Ci0rCi0rCi0r IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsjIEZJ TEUgTkFNRSBBTkQgUEFUSCBDT05WRVJTSU9OIEhFTFBFUiBGVU5DVElPTlMgIwotKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0rCi0rIyBmdW5jX2Nv bnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyIEFSRwotKyMgSGVscGVyIGZ1bmN0aW9uIHVzZWQg YnkgZmlsZSBuYW1lIGNvbnZlcnNpb24gZnVuY3Rpb25zIHdoZW4gJGJ1aWxkIGlzICpuaXgsCi0r IyBhbmQgJGhvc3QgaXMgbWluZ3csIGN5Z3dpbiwgb3Igc29tZSBvdGhlciB3MzIgZW52aXJvbm1l bnQuIFJlbGllcyBvbiBhCi0rIyBjb3JyZWN0bHkgY29uZmlndXJlZCB3aW5lIGVudmlyb25tZW50 IGF2YWlsYWJsZSwgd2l0aCB0aGUgd2luZXBhdGggcHJvZ3JhbQotKyMgaW4gJGJ1aWxkJ3MgJFBB VEguCi0rIwotKyMgQVJHIGlzIHRoZSAkYnVpbGQgZmlsZSBuYW1lIHRvIGJlIGNvbnZlcnRlZCB0 byB3MzIgZm9ybWF0LgotKyMgUmVzdWx0IGlzIGF2YWlsYWJsZSBpbiAkZnVuY19jb252ZXJ0X2Nv cmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQsIGFuZCB3aWxsCi0rIyBiZSBlbXB0eSBvbiBlcnJv ciAob3Igd2hlbiBBUkcgaXMgZW1wdHkpCi0rZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3Rv X3czMiAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2lu ZV90b193MzJfcmVzdWx0PSIkMSIKLSsgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgotKyAgICAjIFVu Zm9ydHVuYXRlbHksIHdpbmVwYXRoIGRvZXMgbm90IGV4aXQgd2l0aCBhIG5vbi16ZXJvIGVycm9y IGNvZGUsIHNvIHdlCi0rICAgICMgYXJlIGZvcmNlZCB0byBjaGVjayB0aGUgY29udGVudHMgb2Yg c3Rkb3V0LiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhlCi0rICAgICMgY29tbWFuZCBpcyBub3Qg Zm91bmQsIHRoZSBzaGVsbCB3aWxsIHNldCBhbiBleGl0IGNvZGUgb2YgMTI3IGFuZCBwcmludAot KyAgICAjICphbiBlcnJvciBtZXNzYWdlKiB0byBzdGRvdXQuIFNvIHdlIG11c3QgY2hlY2sgZm9y IGJvdGggZXJyb3IgY29kZSBvZgotKyAgICAjIHplcm8gQU5EIG5vbi1lbXB0eSBzdGRvdXQsIHdo aWNoIGV4cGxhaW5zIHRoZSBvZGQgY29uc3RydWN0aW9uOgotKyAgICBmdW5jX2NvbnZlcnRfY29y ZV9maWxlX3dpbmVfdG9fdzMyX3RtcD1gd2luZXBhdGggLXcgIiQxIiAyPi9kZXYvbnVsbGAKLSsg ICAgaWYgdGVzdCAiJD8iIC1lcSAwICYmIHRlc3QgLW4gIiR7ZnVuY19jb252ZXJ0X2NvcmVfZmls ZV93aW5lX3RvX3czMl90bXB9IjsgdGhlbgotKyAgICAgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVf d2luZV90b193MzJfcmVzdWx0PWAkRUNITyAiJGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90 b193MzJfdG1wIiB8Ci0rICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlm eSJgCi0rICAgIGVsc2UKLSsgICAgICBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMy X3Jlc3VsdD0KLSsgICAgZmkKLSsgIGZpCi0rfQotKyMgZW5kOiBmdW5jX2NvbnZlcnRfY29yZV9m aWxlX3dpbmVfdG9fdzMyCi0rCi0rCi0rIyBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9f dzMyIEFSRwotKyMgSGVscGVyIGZ1bmN0aW9uIHVzZWQgYnkgcGF0aCBjb252ZXJzaW9uIGZ1bmN0 aW9ucyB3aGVuICRidWlsZCBpcyAqbml4LCBhbmQKLSsjICRob3N0IGlzIG1pbmd3LCBjeWd3aW4s IG9yIHNvbWUgb3RoZXIgdzMyIGVudmlyb25tZW50LiBSZWxpZXMgb24gYSBjb3JyZWN0bHkKLSsj IGNvbmZpZ3VyZWQgd2luZSBlbnZpcm9ubWVudCBhdmFpbGFibGUsIHdpdGggdGhlIHdpbmVwYXRo IHByb2dyYW0gaW4gJGJ1aWxkJ3MKLSsjICRQQVRILiBBc3N1bWVzIEFSRyBoYXMgbm8gbGVhZGlu ZyBvciB0cmFpbGluZyBwYXRoIHNlcGFyYXRvciBjaGFyYWN0ZXJzLgotKyMKLSsjIEFSRyBpcyBw YXRoIHRvIGJlIGNvbnZlcnRlZCBmcm9tICRidWlsZCBmb3JtYXQgdG8gd2luMzIuCi0rIyBSZXN1 bHQgaXMgYXZhaWxhYmxlIGluICRmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyX3Jl c3VsdC4KLSsjIFVuY29udmVydGlibGUgZmlsZSAoZGlyZWN0b3J5KSBuYW1lcyBpbiBBUkcgYXJl IHNraXBwZWQ7IGlmIG5vIGRpcmVjdG9yeSBuYW1lcwotKyMgYXJlIGNvbnZlcnRpYmxlLCB0aGVu IHRoZSByZXN1bHQgbWF5IGJlIGVtcHR5LgotK2Z1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90 b193MzIgKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICAjIHVuZm9ydHVuYXRlbHksIHdpbmVwYXRo IGRvZXNuJ3QgY29udmVydCBwYXRocywgb25seSBmaWxlIG5hbWVzCi0rICBmdW5jX2NvbnZlcnRf Y29yZV9wYXRoX3dpbmVfdG9fdzMyX3Jlc3VsdD0iIgotKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVu Ci0rICAgIG9sZElGUz0kSUZTCi0rICAgIElGUz06Ci0rICAgIGZvciBmdW5jX2NvbnZlcnRfY29y ZV9wYXRoX3dpbmVfdG9fdzMyX2YgaW4gJDE7IGRvCi0rICAgICAgSUZTPSRvbGRJRlMKLSsgICAg ICBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyICIkZnVuY19jb252ZXJ0X2NvcmVf cGF0aF93aW5lX3RvX3czMl9mIgotKyAgICAgIGlmIHRlc3QgLW4gIiRmdW5jX2NvbnZlcnRfY29y ZV9maWxlX3dpbmVfdG9fdzMyX3Jlc3VsdCIgOyB0aGVuCi0rICAgICAgICBpZiB0ZXN0IC16ICIk ZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMl9yZXN1bHQiOyB0aGVuCi0rICAgICAg ICAgIGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzJfcmVzdWx0PSIkZnVuY19jb252 ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQiCi0rICAgICAgICBlbHNlCi0rICAgICAg ICAgIGZ1bmNfYXBwZW5kIGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzJfcmVzdWx0 ICI7JGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0IgotKyAgICAgICAg ZmkKLSsgICAgICBmaQotKyAgICBkb25lCi0rICAgIElGUz0kb2xkSUZTCi0rICBmaQotK30KLSsj IGVuZDogZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMgotKwotKwotKyMgZnVuY19j eWdwYXRoIEFSR1MuLi4KLSsjIFdyYXBwZXIgYXJvdW5kIGNhbGxpbmcgdGhlIGN5Z3BhdGggcHJv Z3JhbSB2aWEgTFRfQ1lHUEFUSC4gVGhpcyBpcyB1c2VkIHdoZW4KLSsjIHdoZW4gKDEpICRidWls ZCBpcyAqbml4IGFuZCBDeWd3aW4gaXMgaG9zdGVkIHZpYSBhIHdpbmUgZW52aXJvbm1lbnQ7IG9y ICgyKQotKyMgJGJ1aWxkIGlzIE1TWVMgYW5kICRob3N0IGlzIEN5Z3dpbiwgb3IgKDMpICRidWls ZCBpcyBDeWd3aW4uIEluIGNhc2UgKDEpIG9yCi0rIyAoMiksIHJldHVybnMgdGhlIEN5Z3dpbiBm aWxlIG5hbWUgb3IgcGF0aCBpbiBmdW5jX2N5Z3BhdGhfcmVzdWx0IChpbnB1dAotKyMgZmlsZSBu YW1lIG9yIHBhdGggaXMgYXNzdW1lZCB0byBiZSBpbiB3MzIgZm9ybWF0LCBhcyBwcmV2aW91c2x5 IGNvbnZlcnRlZAotKyMgZnJvbSAkYnVpbGQncyAqbml4IG9yIE1TWVMgZm9ybWF0KS4gSW4gY2Fz ZSAoMyksIHJldHVybnMgdGhlIHczMiBmaWxlIG5hbWUKLSsjIG9yIHBhdGggaW4gZnVuY19jeWdw YXRoX3Jlc3VsdCAoaW5wdXQgZmlsZSBuYW1lIG9yIHBhdGggaXMgYXNzdW1lZCB0byBiZSBpbgot KyMgQ3lnd2luIGZvcm1hdCkuIFJldHVybnMgYW4gZW1wdHkgc3RyaW5nIG9uIGVycm9yLgotKyMK LSsjIEFSR1MgYXJlIHBhc3NlZCB0byBjeWdwYXRoLCB3aXRoIHRoZSBsYXN0IG9uZSBiZWluZyB0 aGUgZmlsZSBuYW1lIG9yIHBhdGggdG8KLSsjIGJlIGNvbnZlcnRlZC4KLSsjCi0rIyBTcGVjaWZ5 IHRoZSBhYnNvbHV0ZSAqbml4IChvciB3MzIpIG5hbWUgdG8gY3lncGF0aCBpbiB0aGUgTFRfQ1lH UEFUSAotKyMgZW52aXJvbm1lbnQgdmFyaWFibGU7IGRvIG5vdCBwdXQgaXQgaW4gJFBBVEguCi0r ZnVuY19jeWdwYXRoICgpCi0rewotKyAgJG9wdF9kZWJ1ZwotKyAgaWYgdGVzdCAtbiAiJExUX0NZ R1BBVEgiICYmIHRlc3QgLWYgIiRMVF9DWUdQQVRIIjsgdGhlbgotKyAgICBmdW5jX2N5Z3BhdGhf cmVzdWx0PWAkTFRfQ1lHUEFUSCAiJEAiIDI+L2Rldi9udWxsYAotKyAgICBpZiB0ZXN0ICIkPyIg LW5lIDA7IHRoZW4KLSsgICAgICAjIG9uIGZhaWx1cmUsIGVuc3VyZSByZXN1bHQgaXMgZW1wdHkK LSsgICAgICBmdW5jX2N5Z3BhdGhfcmVzdWx0PQotKyAgICBmaQotKyAgZWxzZQotKyAgICBmdW5j X2N5Z3BhdGhfcmVzdWx0PQotKyAgICBmdW5jX2Vycm9yICJMVF9DWUdQQVRIIGlzIGVtcHR5IG9y IHNwZWNpZmllcyBub24tZXhpc3RlbnQgZmlsZTogXGAkTFRfQ1lHUEFUSCciCi0rICBmaQotK30K LSsjZW5kOiBmdW5jX2N5Z3BhdGgKLSsKLSsKLSsjIGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9f dzMyIEFSRwotKyMgQ29udmVydCBmaWxlIG5hbWUgb3IgcGF0aCBBUkcgZnJvbSBNU1lTIGZvcm1h dCB0byB3MzIgZm9ybWF0LiAgUmV0dXJuCi0rIyByZXN1bHQgaW4gZnVuY19jb252ZXJ0X2NvcmVf bXN5c190b193MzJfcmVzdWx0LgotK2Z1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyICgpCi0r ewotKyAgJG9wdF9kZWJ1ZwotKyAgIyBhd2t3YXJkOiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVz dWx0Ci0rICBmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMl9yZXN1bHQ9YCggY21kIC8vYyBl Y2hvICIkMSIgKSAyPi9kZXYvbnVsbCB8Ci0rICAgICRTRUQgLWUgJ3MvWyBdKiQvLycgLWUgIiRs dF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKLSt9Ci0rI2VuZDogZnVuY19jb252ZXJ0X2NvcmVf bXN5c190b193MzIKLSsKLSsKLSsjIGZ1bmNfY29udmVydF9maWxlX2NoZWNrIEFSRzEgQVJHMgot KyMgVmVyaWZ5IHRoYXQgQVJHMSAoYSBmaWxlIG5hbWUgaW4gJGJ1aWxkIGZvcm1hdCkgd2FzIGNv bnZlcnRlZCB0byAkaG9zdAotKyMgZm9ybWF0IGluIEFSRzIuIE90aGVyd2lzZSwgZW1pdCBhbiBl cnJvciBtZXNzYWdlLCBidXQgY29udGludWUgKHJlc2V0dGluZwotKyMgZnVuY190b19ob3N0X2Zp bGVfcmVzdWx0IHRvIEFSRzEpLgotK2Z1bmNfY29udmVydF9maWxlX2NoZWNrICgpCi0rewotKyAg JG9wdF9kZWJ1ZwotKyAgaWYgdGVzdCAteiAiJDIiICYmIHRlc3QgLW4gIiQxIiA7IHRoZW4KLSsg ICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWluZSBob3N0IGZpbGUgbmFtZSBjb3JyZXNw b25kaW5nIHRvIgotKyAgICBmdW5jX2Vycm9yICIgIFxgJDEnIgotKyAgICBmdW5jX2Vycm9yICJD b250aW51aW5nLCBidXQgdW5pbnN0YWxsZWQgZXhlY3V0YWJsZXMgbWF5IG5vdCB3b3JrLiIKLSsg ICAgIyBGYWxsYmFjazoKLSsgICAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkMSIKLSsgIGZp Ci0rfQotKyMgZW5kIGZ1bmNfY29udmVydF9maWxlX2NoZWNrCi0rCi0rCi0rIyBmdW5jX2NvbnZl cnRfcGF0aF9jaGVjayBGUk9NX1BBVEhTRVAgVE9fUEFUSFNFUCBGUk9NX1BBVEggVE9fUEFUSAot KyMgVmVyaWZ5IHRoYXQgRlJPTV9QQVRIIChhIHBhdGggaW4gJGJ1aWxkIGZvcm1hdCkgd2FzIGNv bnZlcnRlZCB0byAkaG9zdAotKyMgZm9ybWF0IGluIFRPX1BBVEguIE90aGVyd2lzZSwgZW1pdCBh biBlcnJvciBtZXNzYWdlLCBidXQgY29udGludWUsIHJlc2V0dGluZwotKyMgZnVuY190b19ob3N0 X2ZpbGVfcmVzdWx0IHRvIGEgc2ltcGxpc3RpYyBmYWxsYmFjayB2YWx1ZSAoc2VlIGJlbG93KS4K LStmdW5jX2NvbnZlcnRfcGF0aF9jaGVjayAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsgIGlmIHRl c3QgLXogIiQ0IiAmJiB0ZXN0IC1uICIkMyI7IHRoZW4KLSsgICAgZnVuY19lcnJvciAiQ291bGQg bm90IGRldGVybWluZSB0aGUgaG9zdCBwYXRoIGNvcnJlc3BvbmRpbmcgdG8iCi0rICAgIGZ1bmNf ZXJyb3IgIiAgXGAkMyciCi0rICAgIGZ1bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3Rh bGxlZCBleGVjdXRhYmxlcyBtYXkgbm90IHdvcmsuIgotKyAgICAjIEZhbGxiYWNrLiAgVGhpcyBp cyBhIGRlbGliZXJhdGVseSBzaW1wbGlzdGljICJjb252ZXJzaW9uIiBhbmQKLSsgICAgIyBzaG91 bGQgbm90IGJlICJpbXByb3ZlZCIuICBTZWUgbGlidG9vbC5pbmZvLgotKyAgICBpZiB0ZXN0ICJ4 JDEiICE9ICJ4JDIiOyB0aGVuCi0rICAgICAgbHRfcmVwbGFjZV9wYXRoc2VwX2NoYXJzPSJzfCQx fCQyfGciCi0rICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWBlY2hvICIkMyIgfAotKyAg ICAgICAgJFNFRCAtZSAiJGx0X3JlcGxhY2VfcGF0aHNlcF9jaGFycyJgCi0rICAgIGVsc2UKLSsg ICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQzIgotKyAgICBmaQotKyAgZmkKLSt9Ci0r IyBlbmQgZnVuY19jb252ZXJ0X3BhdGhfY2hlY2sKLSsKLSsKLSsjIGZ1bmNfY29udmVydF9wYXRo X2Zyb250X2JhY2tfcGF0aHNlcCBGUk9OVFBBVCBCQUNLUEFUIFJFUEwgT1JJRwotKyMgTW9kaWZp ZXMgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IGJ5IHByZXBlbmRpbmcgUkVQTCBpZiBPUklHIG1h dGNoZXMgRlJPTlRQQVQKLSsjIGFuZCBhcHBlbmRpbmcgUkVQTCBpZiBPUklHIG1hdGNoZXMgQkFD S1BBVC4KLStmdW5jX2NvbnZlcnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAgKCkKLSt7Ci0rICAk b3B0X2RlYnVnCi0rICBjYXNlICQ0IGluCi0rICAkMSApIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3Vs dD0iJDMkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgotKyAgICA7OwotKyAgZXNhYwotKyAgY2Fz ZSAkNCBpbgotKyAgJDIgKSBmdW5jX2FwcGVuZCBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQgIiQz IgotKyAgICA7OwotKyAgZXNhYwotK30KLSsjIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9mcm9udF9i YWNrX3BhdGhzZXAKLSsKLSsKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwotKyMgJGJ1aWxkIHRvICRob3N0IEZJTEUgTkFNRSBDT05WRVJTSU9OIEZV TkNUSU9OUyAjCi0rIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKLSsjIGludm9rZWQgdmlhIGAkdG9faG9zdF9maWxlX2NtZCBBUkcnCi0rIwotKyMgSW4g ZWFjaCBjYXNlLCBBUkcgaXMgdGhlIHBhdGggdG8gYmUgY29udmVydGVkIGZyb20gJGJ1aWxkIHRv ICRob3N0IGZvcm1hdC4KLSsjIFJlc3VsdCB3aWxsIGJlIGF2YWlsYWJsZSBpbiAkZnVuY190b19o b3N0X2ZpbGVfcmVzdWx0LgotKwotKwotKyMgZnVuY190b19ob3N0X2ZpbGUgQVJHCi0rIyBDb252 ZXJ0cyB0aGUgZmlsZSBuYW1lIEFSRyBmcm9tICRidWlsZCBmb3JtYXQgdG8gJGhvc3QgZm9ybWF0 LiBSZXR1cm4gcmVzdWx0Ci0rIyBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCi0rZnVuY190 b19ob3N0X2ZpbGUgKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICAkdG9faG9zdF9maWxlX2NtZCAi JDEiCi0rfQotKyMgZW5kIGZ1bmNfdG9faG9zdF9maWxlCi0rCi0rCi0rIyBmdW5jX3RvX3Rvb2xf ZmlsZSBBUkcgTEFaWQotKyMgY29udmVydHMgdGhlIGZpbGUgbmFtZSBBUkcgZnJvbSAkYnVpbGQg Zm9ybWF0IHRvIHRvb2xjaGFpbiBmb3JtYXQuIFJldHVybgotKyMgcmVzdWx0IGluIGZ1bmNfdG9f dG9vbF9maWxlX3Jlc3VsdC4gIElmIHRoZSBjb252ZXJzaW9uIGluIHVzZSBpcyBsaXN0ZWQKLSsj IGluICh0aGUgY29tbWEgc2VwYXJhdGVkKSBMQVpZLCBubyBjb252ZXJzaW9uIHRha2VzIHBsYWNl LgotK2Z1bmNfdG9fdG9vbF9maWxlICgpCi0rewotKyAgJG9wdF9kZWJ1ZwotKyAgY2FzZSAsJDIs IGluCi0rICAgICosIiR0b190b29sX2ZpbGVfY21kIiwqKQotKyAgICAgIGZ1bmNfdG9fdG9vbF9m aWxlX3Jlc3VsdD0kMQotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgJHRvX3Rvb2xfZmlsZV9j bWQgIiQxIgotKyAgICAgIGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdD0kZnVuY190b19ob3N0X2Zp bGVfcmVzdWx0Ci0rICAgICAgOzsKLSsgIGVzYWMKLSt9Ci0rIyBlbmQgZnVuY190b190b29sX2Zp bGUKLSsKLSsKLSsjIGZ1bmNfY29udmVydF9maWxlX25vb3AgQVJHCi0rIyBDb3B5IEFSRyB0byBm dW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCi0rZnVuY19jb252ZXJ0X2ZpbGVfbm9vcCAoKQotK3sK LSsgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJDEiCi0rfQotKyMgZW5kIGZ1bmNfY29udmVy dF9maWxlX25vb3AKLSsKLSsKLSsjIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyIEFSRwot KyMgQ29udmVydCBmaWxlIG5hbWUgQVJHIGZyb20gKG1pbmd3KSBNU1lTIHRvIChtaW5ndykgdzMy IGZvcm1hdDsgYXV0b21hdGljCi0rIyBjb252ZXJzaW9uIHRvIHczMiBpcyBub3QgYXZhaWxhYmxl IGluc2lkZSB0aGUgY3dyYXBwZXIuICBSZXR1cm5zIHJlc3VsdCBpbgotKyMgZnVuY190b19ob3N0 X2ZpbGVfcmVzdWx0LgotK2Z1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyICgpCi0rewotKyAg JG9wdF9kZWJ1ZwotKyAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkMSIKLSsgIGlmIHRlc3Qg LW4gIiQxIjsgdGhlbgotKyAgICBmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMiAiJDEiCi0r ICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9f dzMyX3Jlc3VsdCIKLSsgIGZpCi0rICBmdW5jX2NvbnZlcnRfZmlsZV9jaGVjayAiJDEiICIkZnVu Y190b19ob3N0X2ZpbGVfcmVzdWx0IgotK30KLSsjIGVuZCBmdW5jX2NvbnZlcnRfZmlsZV9tc3lz X3RvX3czMgotKwotKwotKyMgZnVuY19jb252ZXJ0X2ZpbGVfY3lnd2luX3RvX3czMiBBUkcKLSsj IENvbnZlcnQgZmlsZSBuYW1lIEFSRyBmcm9tIEN5Z3dpbiB0byB3MzIgZm9ybWF0LiAgUmV0dXJu cyByZXN1bHQgaW4KLSsjIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KLStmdW5jX2NvbnZlcnRf ZmlsZV9jeWd3aW5fdG9fdzMyICgpCi0rewotKyAgJG9wdF9kZWJ1ZwotKyAgZnVuY190b19ob3N0 X2ZpbGVfcmVzdWx0PSIkMSIKLSsgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgotKyAgICAjIGJlY2F1 c2UgJGJ1aWxkIGlzIGN5Z3dpbiwgd2UgY2FsbCAidGhlIiBjeWdwYXRoIGluICRQQVRIOyBubyBu ZWVkIHRvIHVzZQotKyAgICAjIExUX0NZR1BBVEggaW4gdGhpcyBjYXNlLgotKyAgICBmdW5jX3Rv X2hvc3RfZmlsZV9yZXN1bHQ9YGN5Z3BhdGggLW0gIiQxImAKLSsgIGZpCi0rICBmdW5jX2NvbnZl cnRfZmlsZV9jaGVjayAiJDEiICIkZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0IgotK30KLSsjIGVu ZCBmdW5jX2NvbnZlcnRfZmlsZV9jeWd3aW5fdG9fdzMyCi0rCi0rCi0rIyBmdW5jX2NvbnZlcnRf ZmlsZV9uaXhfdG9fdzMyIEFSRwotKyMgQ29udmVydCBmaWxlIG5hbWUgQVJHIGZyb20gKm5peCB0 byB3MzIgZm9ybWF0LiAgUmVxdWlyZXMgYSB3aW5lIGVudmlyb25tZW50Ci0rIyBhbmQgYSB3b3Jr aW5nIHdpbmVwYXRoLiBSZXR1cm5zIHJlc3VsdCBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQu Ci0rZnVuY19jb252ZXJ0X2ZpbGVfbml4X3RvX3czMiAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsg IGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJDEiCi0rICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4K LSsgICAgZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMiAiJDEiCi0rICAgIGZ1bmNf dG9faG9zdF9maWxlX3Jlc3VsdD0iJGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJf cmVzdWx0IgotKyAgZmkKLSsgIGZ1bmNfY29udmVydF9maWxlX2NoZWNrICIkMSIgIiRmdW5jX3Rv X2hvc3RfZmlsZV9yZXN1bHQiCi0rfQotKyMgZW5kIGZ1bmNfY29udmVydF9maWxlX25peF90b193 MzIKLSsKLSsKLSsjIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fY3lnd2luIEFSRwotKyMgQ29u dmVydCBmaWxlIG5hbWUgQVJHIGZyb20gTVNZUyB0byBDeWd3aW4gZm9ybWF0LiAgUmVxdWlyZXMg TFRfQ1lHUEFUSCBzZXQuCi0rIyBSZXR1cm5zIHJlc3VsdCBpbiBmdW5jX3RvX2hvc3RfZmlsZV9y ZXN1bHQuCi0rZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b19jeWd3aW4gKCkKLSt7Ci0rICAkb3B0 X2RlYnVnCi0rICBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQ9IiQxIgotKyAgaWYgdGVzdCAtbiAi JDEiOyB0aGVuCi0rICAgIGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyICIkMSIKLSsgICAg ZnVuY19jeWdwYXRoIC11ICIkZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzJfcmVzdWx0Igot KyAgICBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQ9IiRmdW5jX2N5Z3BhdGhfcmVzdWx0IgotKyAg ZmkKLSsgIGZ1bmNfY29udmVydF9maWxlX2NoZWNrICIkMSIgIiRmdW5jX3RvX2hvc3RfZmlsZV9y ZXN1bHQiCi0rfQotKyMgZW5kIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fY3lnd2luCi0rCi0r Ci0rIyBmdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fY3lnd2luIEFSRwotKyMgQ29udmVydCBmaWxl IG5hbWUgQVJHIGZyb20gKm5peCB0byBDeWd3aW4gZm9ybWF0LiAgUmVxdWlyZXMgQ3lnd2luIGlu c3RhbGxlZAotKyMgaW4gYSB3aW5lIGVudmlyb25tZW50LCB3b3JraW5nIHdpbmVwYXRoLCBhbmQg TFRfQ1lHUEFUSCBzZXQuICBSZXR1cm5zIHJlc3VsdAotKyMgaW4gZnVuY190b19ob3N0X2ZpbGVf cmVzdWx0LgotK2Z1bmNfY29udmVydF9maWxlX25peF90b19jeWd3aW4gKCkKLSt7Ci0rICAkb3B0 X2RlYnVnCi0rICBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQ9IiQxIgotKyAgaWYgdGVzdCAtbiAi JDEiOyB0aGVuCi0rICAgICMgY29udmVydCBmcm9tICpuaXggdG8gdzMyLCB0aGVuIHVzZSBjeWdw YXRoIHRvIGNvbnZlcnQgZnJvbSB3MzIgdG8gY3lnd2luLgotKyAgICBmdW5jX2NvbnZlcnRfY29y ZV9maWxlX3dpbmVfdG9fdzMyICIkMSIKLSsgICAgZnVuY19jeWdwYXRoIC11ICIkZnVuY19jb252 ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQiCi0rICAgIGZ1bmNfdG9faG9zdF9maWxl X3Jlc3VsdD0iJGZ1bmNfY3lncGF0aF9yZXN1bHQiCi0rICBmaQotKyAgZnVuY19jb252ZXJ0X2Zp bGVfY2hlY2sgIiQxIiAiJGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdCIKLSt9Ci0rIyBlbmQgZnVu Y19jb252ZXJ0X2ZpbGVfbml4X3RvX2N5Z3dpbgotKwotKwotKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotKyMgJGJ1aWxkIHRvICRob3N0IFBBVEggQ09OVkVS U0lPTiBGVU5DVElPTlMgIwotKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwotKyMgaW52b2tlZCB2aWEgYCR0b19ob3N0X3BhdGhfY21kIEFSRycKLSsjCi0rIyBJ biBlYWNoIGNhc2UsIEFSRyBpcyB0aGUgcGF0aCB0byBiZSBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQg dG8gJGhvc3QgZm9ybWF0LgotKyMgVGhlIHJlc3VsdCB3aWxsIGJlIGF2YWlsYWJsZSBpbiAkZnVu Y190b19ob3N0X3BhdGhfcmVzdWx0LgotKyMKLSsjIFBhdGggc2VwYXJhdG9ycyBhcmUgYWxzbyBj b252ZXJ0ZWQgZnJvbSAkYnVpbGQgZm9ybWF0IHRvICRob3N0IGZvcm1hdC4gIElmCi0rIyBBUkcg YmVnaW5zIG9yIGVuZHMgd2l0aCBhIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlciwgaXQgaXMgcHJl c2VydmVkIChidXQKLSsjIGNvbnZlcnRlZCB0byAkaG9zdCBmb3JtYXQpIG9uIG91dHB1dC4KLSsj Ci0rIyBBbGwgcGF0aCBjb252ZXJzaW9uIGZ1bmN0aW9ucyBhcmUgbmFtZWQgdXNpbmcgdGhlIGZv bGxvd2luZyBjb252ZW50aW9uOgotKyMgICBmaWxlIG5hbWUgY29udmVyc2lvbiBmdW5jdGlvbiAg ICA6IGZ1bmNfY29udmVydF9maWxlX1hfdG9fWSAoKQotKyMgICBwYXRoIGNvbnZlcnNpb24gZnVu Y3Rpb24gICAgICAgICA6IGZ1bmNfY29udmVydF9wYXRoX1hfdG9fWSAoKQotKyMgd2hlcmUsIGZv ciBhbnkgZ2l2ZW4gJGJ1aWxkLyRob3N0IGNvbWJpbmF0aW9uIHRoZSAnWF90b19ZJyB2YWx1ZSBp cyB0aGUKLSsjIHNhbWUuICBJZiBjb252ZXJzaW9uIGZ1bmN0aW9ucyBhcmUgYWRkZWQgZm9yIG5l dyAkYnVpbGQvJGhvc3QgY29tYmluYXRpb25zLAotKyMgdGhlIHR3byBuZXcgZnVuY3Rpb25zIG11 c3QgZm9sbG93IHRoaXMgcGF0dGVybiwgb3IgZnVuY19pbml0X3RvX2hvc3RfcGF0aF9jbWQKLSsj IHdpbGwgYnJlYWsuCi0rCi0rCi0rIyBmdW5jX2luaXRfdG9faG9zdF9wYXRoX2NtZAotKyMgRW5z dXJlcyB0aGF0IGZ1bmN0aW9uICJwb2ludGVyIiB2YXJpYWJsZSAkdG9faG9zdF9wYXRoX2NtZCBp cyBzZXQgdG8gdGhlCi0rIyBhcHByb3ByaWF0ZSB2YWx1ZSwgYmFzZWQgb24gdGhlIHZhbHVlIG9m ICR0b19ob3N0X2ZpbGVfY21kLgotK3RvX2hvc3RfcGF0aF9jbWQ9Ci0rZnVuY19pbml0X3RvX2hv c3RfcGF0aF9jbWQgKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICBpZiB0ZXN0IC16ICIkdG9faG9z dF9wYXRoX2NtZCI7IHRoZW4KLSsgICAgZnVuY19zdHJpcG5hbWUgJ2Z1bmNfY29udmVydF9maWxl XycgJycgIiR0b19ob3N0X2ZpbGVfY21kIgotKyAgICB0b19ob3N0X3BhdGhfY21kPSJmdW5jX2Nv bnZlcnRfcGF0aF8ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdH0iCi0rICBmaQotK30KLSsKLSsKLSsj IGZ1bmNfdG9faG9zdF9wYXRoIEFSRwotKyMgQ29udmVydHMgdGhlIHBhdGggQVJHIGZyb20gJGJ1 aWxkIGZvcm1hdCB0byAkaG9zdCBmb3JtYXQuIFJldHVybiByZXN1bHQKLSsjIGluIGZ1bmNfdG9f aG9zdF9wYXRoX3Jlc3VsdC4KLStmdW5jX3RvX2hvc3RfcGF0aCAoKQotK3sKLSsgICRvcHRfZGVi dWcKLSsgIGZ1bmNfaW5pdF90b19ob3N0X3BhdGhfY21kCi0rICAkdG9faG9zdF9wYXRoX2NtZCAi JDEiCi0rfQotKyMgZW5kIGZ1bmNfdG9faG9zdF9wYXRoCi0rCi0rCi0rIyBmdW5jX2NvbnZlcnRf cGF0aF9ub29wIEFSRwotKyMgQ29weSBBUkcgdG8gZnVuY190b19ob3N0X3BhdGhfcmVzdWx0Lgot K2Z1bmNfY29udmVydF9wYXRoX25vb3AgKCkKLSt7Ci0rICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1 bHQ9IiQxIgotK30KLSsjIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9ub29wCi0rCi0rCi0rIyBmdW5j X2NvbnZlcnRfcGF0aF9tc3lzX3RvX3czMiBBUkcKLSsjIENvbnZlcnQgcGF0aCBBUkcgZnJvbSAo bWluZ3cpIE1TWVMgdG8gKG1pbmd3KSB3MzIgZm9ybWF0OyBhdXRvbWF0aWMKLSsjIGNvbnZlcnNp b24gdG8gdzMyIGlzIG5vdCBhdmFpbGFibGUgaW5zaWRlIHRoZSBjd3JhcHBlci4gIFJldHVybnMg cmVzdWx0IGluCi0rIyBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQuCi0rZnVuY19jb252ZXJ0X3Bh dGhfbXN5c190b193MzIgKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICBmdW5jX3RvX2hvc3RfcGF0 aF9yZXN1bHQ9IiQxIgotKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCi0rICAgICMgUmVtb3ZlIGxl YWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJvbSBBUkcuICBN U1lTCi0rICAgICMgYmVoYXZpb3IgaXMgaW5jb25zaXN0ZW50IGhlcmU7IGN5Z3BhdGggdHVybnMg dGhlbSBpbnRvICcuOycgYW5kICc7Lic7Ci0rICAgICMgYW5kIHdpbmVwYXRoIGlnbm9yZXMgdGhl bSBjb21wbGV0ZWx5LgotKyAgICBmdW5jX3N0cmlwbmFtZSA6IDogIiQxIgotKyAgICBmdW5jX3Rv X2hvc3RfcGF0aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsgICAgZnVuY19jb252ZXJ0 X2NvcmVfbXN5c190b193MzIgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIgotKyAgICBmdW5jX3Rv X2hvc3RfcGF0aF9yZXN1bHQ9IiRmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMl9yZXN1bHQi Ci0rICAgIGZ1bmNfY29udmVydF9wYXRoX2NoZWNrIDogIjsiIFwKLSsgICAgICAiJGZ1bmNfdG9f aG9zdF9wYXRoX3RtcDEiICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgotKyAgICBmdW5jX2Nv bnZlcnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAgIjoqIiAiKjoiICI7IiAiJDEiCi0rICBmaQot K30KLSsjIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3czMgotKwotKwotKyMgZnVuY19j b252ZXJ0X3BhdGhfY3lnd2luX3RvX3czMiBBUkcKLSsjIENvbnZlcnQgcGF0aCBBUkcgZnJvbSBD eWd3aW4gdG8gdzMyIGZvcm1hdC4gIFJldHVybnMgcmVzdWx0IGluCi0rIyBmdW5jX3RvX2hvc3Rf ZmlsZV9yZXN1bHQuCi0rZnVuY19jb252ZXJ0X3BhdGhfY3lnd2luX3RvX3czMiAoKQotK3sKLSsg ICRvcHRfZGVidWcKLSsgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCi0rICBpZiB0ZXN0 IC1uICIkMSI7IHRoZW4KLSsgICAgIyBTZWUgZnVuY19jb252ZXJ0X3BhdGhfbXN5c190b193MzI6 Ci0rICAgIGZ1bmNfc3RyaXBuYW1lIDogOiAiJDEiCi0rICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Rt cDE9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKyAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9 YGN5Z3BhdGggLW0gLXAgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxImAKLSsgICAgZnVuY19jb252 ZXJ0X3BhdGhfY2hlY2sgOiAiOyIgXAotKyAgICAgICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIg IiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCi0rICAgIGZ1bmNfY29udmVydF9wYXRoX2Zyb250 X2JhY2tfcGF0aHNlcCAiOioiICIqOiIgIjsiICIkMSIKLSsgIGZpCi0rfQotKyMgZW5kIGZ1bmNf Y29udmVydF9wYXRoX2N5Z3dpbl90b193MzIKLSsKLSsKLSsjIGZ1bmNfY29udmVydF9wYXRoX25p eF90b193MzIgQVJHCi0rIyBDb252ZXJ0IHBhdGggQVJHIGZyb20gKm5peCB0byB3MzIgZm9ybWF0 LiAgUmVxdWlyZXMgYSB3aW5lIGVudmlyb25tZW50IGFuZAotKyMgYSB3b3JraW5nIHdpbmVwYXRo LiAgUmV0dXJucyByZXN1bHQgaW4gZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgotK2Z1bmNfY29u dmVydF9wYXRoX25peF90b193MzIgKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICBmdW5jX3RvX2hv c3RfcGF0aF9yZXN1bHQ9IiQxIgotKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCi0rICAgICMgU2Vl IGZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9fdzMyOgotKyAgICBmdW5jX3N0cmlwbmFtZSA6IDog IiQxIgotKyAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQK LSsgICAgZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMiAiJGZ1bmNfdG9faG9zdF9w YXRoX3RtcDEiCi0rICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJGZ1bmNfY29udmVydF9j b3JlX3BhdGhfd2luZV90b193MzJfcmVzdWx0IgotKyAgICBmdW5jX2NvbnZlcnRfcGF0aF9jaGVj ayA6ICI7IiBcCi0rICAgICAgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiAiJGZ1bmNfdG9faG9z dF9wYXRoX3Jlc3VsdCIKLSsgICAgZnVuY19jb252ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRoc2Vw ICI6KiIgIio6IiAiOyIgIiQxIgotKyAgZmkKLSt9Ci0rIyBlbmQgZnVuY19jb252ZXJ0X3BhdGhf bml4X3RvX3czMgotKwotKwotKyMgZnVuY19jb252ZXJ0X3BhdGhfbXN5c190b19jeWd3aW4gQVJH Ci0rIyBDb252ZXJ0IHBhdGggQVJHIGZyb20gTVNZUyB0byBDeWd3aW4gZm9ybWF0LiAgUmVxdWly ZXMgTFRfQ1lHUEFUSCBzZXQuCi0rIyBSZXR1cm5zIHJlc3VsdCBpbiBmdW5jX3RvX2hvc3RfZmls ZV9yZXN1bHQuCi0rZnVuY19jb252ZXJ0X3BhdGhfbXN5c190b19jeWd3aW4gKCkKLSt7Ci0rICAk b3B0X2RlYnVnCi0rICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgotKyAgaWYgdGVzdCAt biAiJDEiOyB0aGVuCi0rICAgICMgU2VlIGZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9fdzMyOgot KyAgICBmdW5jX3N0cmlwbmFtZSA6IDogIiQxIgotKyAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAx PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsgICAgZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193 MzIgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIgotKyAgICBmdW5jX2N5Z3BhdGggLXUgLXAgIiRm dW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMl9yZXN1bHQiCi0rICAgIGZ1bmNfdG9faG9zdF9w YXRoX3Jlc3VsdD0iJGZ1bmNfY3lncGF0aF9yZXN1bHQiCi0rICAgIGZ1bmNfY29udmVydF9wYXRo X2NoZWNrIDogOiBcCi0rICAgICAgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiAiJGZ1bmNfdG9f aG9zdF9wYXRoX3Jlc3VsdCIKLSsgICAgZnVuY19jb252ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRo c2VwICI6KiIgIio6IiA6ICIkMSIKLSsgIGZpCi0rfQotKyMgZW5kIGZ1bmNfY29udmVydF9wYXRo X21zeXNfdG9fY3lnd2luCi0rCi0rCi0rIyBmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fY3lnd2lu IEFSRwotKyMgQ29udmVydCBwYXRoIEFSRyBmcm9tICpuaXggdG8gQ3lnd2luIGZvcm1hdC4gIFJl cXVpcmVzIEN5Z3dpbiBpbnN0YWxsZWQgaW4gYQotKyMgYSB3aW5lIGVudmlyb25tZW50LCB3b3Jr aW5nIHdpbmVwYXRoLCBhbmQgTFRfQ1lHUEFUSCBzZXQuICBSZXR1cm5zIHJlc3VsdCBpbgotKyMg ZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgotK2Z1bmNfY29udmVydF9wYXRoX25peF90b19jeWd3 aW4gKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQx IgotKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCi0rICAgICMgUmVtb3ZlIGxlYWRpbmcgYW5kIHRy YWlsaW5nIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJvbQotKyAgICAjIEFSRy4gbXN5cyBi ZWhhdmlvciBpcyBpbmNvbnNpc3RlbnQgaGVyZSwgY3lncGF0aCB0dXJucyB0aGVtCi0rICAgICMg aW50byAnLjsnIGFuZCAnOy4nLCBhbmQgd2luZXBhdGggaWdub3JlcyB0aGVtIGNvbXBsZXRlbHku Ci0rICAgIGZ1bmNfc3RyaXBuYW1lIDogOiAiJDEiCi0rICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Rt cDE9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKyAgICBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dp bmVfdG9fdzMyICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIKLSsgICAgZnVuY19jeWdwYXRoIC11 IC1wICIkZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMl9yZXN1bHQiCi0rICAgIGZ1 bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJGZ1bmNfY3lncGF0aF9yZXN1bHQiCi0rICAgIGZ1bmNf Y29udmVydF9wYXRoX2NoZWNrIDogOiBcCi0rICAgICAgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAx IiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKLSsgICAgZnVuY19jb252ZXJ0X3BhdGhfZnJv bnRfYmFja19wYXRoc2VwICI6KiIgIio6IiA6ICIkMSIKLSsgIGZpCi0rfQotKyMgZW5kIGZ1bmNf Y29udmVydF9wYXRoX25peF90b19jeWd3aW4KLSsKLSsKLSsjIGZ1bmNfbW9kZV9jb21waWxlIGFy Zy4uLgotK2Z1bmNfbW9kZV9jb21waWxlICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgICMg R2V0IHRoZSBjb21waWxhdGlvbiBjb21tYW5kIGFuZCB0aGUgc291cmNlIGZpbGUuCi0rICAgIGJh c2VfY29tcGlsZT0KLSsgICAgc3JjZmlsZT0iJG5vbm9wdCIgICMgIGFsd2F5cyBrZWVwIGEgbm9u LWVtcHR5IHZhbHVlIGluICJzcmNmaWxlIgotKyAgICBzdXBwcmVzc19vcHQ9eWVzCi0rICAgIHN1 cHByZXNzX291dHB1dD0KLSsgICAgYXJnX21vZGU9bm9ybWFsCi0rICAgIGxpYm9iaj0KLSsgICAg bGF0ZXI9Ci0rICAgIHBpZV9mbGFnPQotKwotKyAgICBmb3IgYXJnCi0rICAgIGRvCi0rICAgICAg Y2FzZSAkYXJnX21vZGUgaW4KLSsgICAgICBhcmcgICkKLSsJIyBkbyBub3QgImNvbnRpbnVlIi4g IEluc3RlYWQsIGFkZCB0aGlzIHRvIGJhc2VfY29tcGlsZQotKwlsYXN0YXJnPSIkYXJnIgotKwlh cmdfbW9kZT1ub3JtYWwKLSsJOzsKLSsKLSsgICAgICB0YXJnZXQgKQotKwlsaWJvYmo9IiRhcmci Ci0rCWFyZ19tb2RlPW5vcm1hbAotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIG5vcm1hbCAp Ci0rCSMgQWNjZXB0IGFueSBjb21tYW5kLWxpbmUgb3B0aW9ucy4KLSsJY2FzZSAkYXJnIGluCi0r CS1vKQotKwkgIHRlc3QgLW4gIiRsaWJvYmoiICYmIFwKLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3Ig InlvdSBjYW5ub3Qgc3BlY2lmeSBcYC1vJyBtb3JlIHRoYW4gb25jZSIKLSsJICBhcmdfbW9kZT10 YXJnZXQKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCi0rCS1waWUgfCAtZnBpZSB8IC1mUElFKQot KyAgICAgICAgICBmdW5jX2FwcGVuZCBwaWVfZmxhZyAiICRhcmciCi0rCSAgY29udGludWUKLSsJ ICA7OwotKwotKwktc2hhcmVkIHwgLXN0YXRpYyB8IC1wcmVmZXItcGljIHwgLXByZWZlci1ub24t cGljKQotKwkgIGZ1bmNfYXBwZW5kIGxhdGVyICIgJGFyZyIKLSsJICBjb250aW51ZQotKwkgIDs7 Ci0rCi0rCS1uby1zdXBwcmVzcykKLSsJICBzdXBwcmVzc19vcHQ9bm8KLSsJICBjb250aW51ZQot KwkgIDs7Ci0rCi0rCS1YY29tcGlsZXIpCi0rCSAgYXJnX21vZGU9YXJnICAjICB0aGUgbmV4dCBv bmUgZ29lcyBpbnRvIHRoZSAiYmFzZV9jb21waWxlIiBhcmcgbGlzdAotKwkgIGNvbnRpbnVlICAg ICAgIyAgVGhlIGN1cnJlbnQgInNyY2ZpbGUiIHdpbGwgZWl0aGVyIGJlIHJldGFpbmVkIG9yCi0r CSAgOzsgICAgICAgICAgICAjICByZXBsYWNlZCBsYXRlci4gIEkgd291bGQgZ3Vlc3MgdGhhdCB3 b3VsZCBiZSBhIGJ1Zy4KLSsKLSsJLVdjLCopCi0rCSAgZnVuY19zdHJpcG5hbWUgJy1XYywnICcn ICIkYXJnIgotKwkgIGFyZ3M9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgIGxhc3Rhcmc9Ci0r CSAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCi0rCSAgZm9yIGFyZyBpbiAkYXJnczsgZG8KLSsJ ICAgIElGUz0iJHNhdmVfaWZzIgotKwkgICAgZnVuY19hcHBlbmRfcXVvdGVkIGxhc3RhcmcgIiRh cmciCi0rCSAgZG9uZQotKwkgIElGUz0iJHNhdmVfaWZzIgotKwkgIGZ1bmNfc3RyaXBuYW1lICcg JyAnJyAiJGxhc3RhcmciCi0rCSAgbGFzdGFyZz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCi0r CSAgIyBBZGQgdGhlIGFyZ3VtZW50cyB0byBiYXNlX2NvbXBpbGUuCi0rCSAgZnVuY19hcHBlbmQg YmFzZV9jb21waWxlICIgJGxhc3RhcmciCi0rCSAgY29udGludWUKLSsJICA7OwotKwotKwkqKQot KwkgICMgQWNjZXB0IHRoZSBjdXJyZW50IGFyZ3VtZW50IGFzIHRoZSBzb3VyY2UgZmlsZS4KLSsJ ICAjIFRoZSBwcmV2aW91cyAic3JjZmlsZSIgYmVjb21lcyB0aGUgY3VycmVudCBhcmd1bWVudC4K LSsJICAjCi0rCSAgbGFzdGFyZz0iJHNyY2ZpbGUiCi0rCSAgc3JjZmlsZT0iJGFyZyIKLSsJICA7 OwotKwllc2FjICAjICBjYXNlICRhcmcKLSsJOzsKLSsgICAgICBlc2FjICAgICMgIGNhc2UgJGFy Z19tb2RlCi0rCi0rICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBwcmV2aW91cyBhcmd1 bWVudC4KLSsgICAgICBmdW5jX2FwcGVuZF9xdW90ZWQgYmFzZV9jb21waWxlICIkbGFzdGFyZyIK LSsgICAgZG9uZSAjIGZvciBhcmcKLSsKLSsgICAgY2FzZSAkYXJnX21vZGUgaW4KLSsgICAgYXJn KQotKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgInlvdSBtdXN0IHNwZWNpZnkgYW4gYXJndW1lbnQg Zm9yIC1YY29tcGlsZSIKLSsgICAgICA7OwotKyAgICB0YXJnZXQpCi0rICAgICAgZnVuY19mYXRh bF9lcnJvciAieW91IG11c3Qgc3BlY2lmeSBhIHRhcmdldCB3aXRoIFxgLW8nIgotKyAgICAgIDs7 Ci0rICAgICopCi0rICAgICAgIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgb2JqZWN0Lgot KyAgICAgIHRlc3QgLXogIiRsaWJvYmoiICYmIHsKLSsJZnVuY19iYXNlbmFtZSAiJHNyY2ZpbGUi Ci0rCWxpYm9iaj0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKyAgICAgIH0KLSsgICAgICA7Owot KyAgICBlc2FjCi0rCi0rICAgICMgUmVjb2duaXplIHNldmVyYWwgZGlmZmVyZW50IGZpbGUgc3Vm Zml4ZXMuCi0rICAgICMgSWYgdGhlIHVzZXIgc3BlY2lmaWVzIC1vIGZpbGUubywgaXQgaXMgcmVw bGFjZWQgd2l0aCBmaWxlLmxvCi0rICAgIGNhc2UgJGxpYm9iaiBpbgotKyAgICAqLltjQ0ZTaWZt c29dIHwgXAotKyAgICAqLmFkYSB8ICouYWRiIHwgKi5hZHMgfCAqLmFzbSB8IFwKLSsgICAgKi5j KysgfCAqLmNjIHwgKi5paSB8ICouY2xhc3MgfCAqLmNwcCB8ICouY3h4IHwgXAotKyAgICAqLltm Rl1bMDldPyB8ICouZm9yIHwgKi5qYXZhIHwgKi5vYmogfCAqLnN4IHwgKi5jdSB8ICouY3VwKQot KyAgICAgIGZ1bmNfeGZvcm0gIiRsaWJvYmoiCi0rICAgICAgbGlib2JqPSRmdW5jX3hmb3JtX3Jl c3VsdAotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkbGlib2JqIGluCi0rICAg ICoubG8pIGZ1bmNfbG8ybyAiJGxpYm9iaiI7IG9iaj0kZnVuY19sbzJvX3Jlc3VsdCA7OwotKyAg ICAqKQotKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBkZXRlcm1pbmUgbmFtZSBvZiBs aWJyYXJ5IG9iamVjdCBmcm9tIFxgJGxpYm9iaiciCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwot KyAgICBmdW5jX2luZmVyX3RhZyAkYmFzZV9jb21waWxlCi0rCi0rICAgIGZvciBhcmcgaW4gJGxh dGVyOyBkbwotKyAgICAgIGNhc2UgJGFyZyBpbgotKyAgICAgIC1zaGFyZWQpCi0rCXRlc3QgIiRi dWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiBcCi0rCSAgZnVuY19mYXRhbF9jb25maWd1cmF0 aW9uICJjYW4gbm90IGJ1aWxkIGEgc2hhcmVkIGxpYnJhcnkiCi0rCWJ1aWxkX29sZF9saWJzPW5v Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXN0YXRpYykKLSsJYnVpbGRfbGlidG9vbF9s aWJzPW5vCi0rCWJ1aWxkX29sZF9saWJzPXllcwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAg IC1wcmVmZXItcGljKQotKwlwaWNfbW9kZT15ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAg ICAtcHJlZmVyLW5vbi1waWMpCi0rCXBpY19tb2RlPW5vCi0rCWNvbnRpbnVlCi0rCTs7Ci0rICAg ICAgZXNhYwotKyAgICBkb25lCi0rCi0rICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRsaWJvYmoi Ci0rICAgIHRlc3QgIlgkbGlib2JqIiAhPSAiWCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIg XAotKyAgICAgICYmICRFQ0hPICJYJGxpYm9iaiIgfCAkR1JFUCAnW11+I14qe307PD4/IiciJyIn CSAmKCl8YCRbXScgXAotKyAgICAgICYmIGZ1bmNfd2FybmluZyAibGlib2JqIG5hbWUgXGAkbGli b2JqJyBtYXkgbm90IGNvbnRhaW4gc2hlbGwgc3BlY2lhbCBjaGFyYWN0ZXJzLiIKLSsgICAgZnVu Y19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJG9iaiIgIi8iICIiCi0rICAgIG9iam5hbWU9IiRmdW5j X2Jhc2VuYW1lX3Jlc3VsdCIKLSsgICAgeGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rICAg IGxvYmo9JHt4ZGlyfSRvYmpkaXIvJG9iam5hbWUKLSsKLSsgICAgdGVzdCAteiAiJGJhc2VfY29t cGlsZSIgJiYgXAotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIGNv bXBpbGF0aW9uIGNvbW1hbmQiCi0rCi0rICAgICMgRGVsZXRlIGFueSBsZWZ0b3ZlciBsaWJyYXJ5 IG9iamVjdHMuCi0rICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsg ICAgICByZW1vdmVsaXN0PSIkb2JqICRsb2JqICRsaWJvYmogJHtsaWJvYmp9VCIKLSsgICAgZWxz ZQotKyAgICAgIHJlbW92ZWxpc3Q9IiRsb2JqICRsaWJvYmogJHtsaWJvYmp9VCIKLSsgICAgZmkK LSsKLSsgICAgIyBPbiBDeWd3aW4gdGhlcmUncyBubyAicmVhbCIgUElDIGZsYWcgc28gd2UgbXVz dCBidWlsZCBib3RoIG9iamVjdCB0eXBlcwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGN5 Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCi0rICAgICAgcGljX21vZGU9 ZGVmYXVsdAotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgaWYgdGVzdCAiJHBpY19tb2RlIiA9 IG5vICYmIHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgIT0gcGFzc19hbGw7IHRoZW4KLSsg ICAgICAjIG5vbi1QSUMgY29kZSBpbiBzaGFyZWQgbGlicmFyaWVzIGlzIG5vdCBzdXBwb3J0ZWQK LSsgICAgICBwaWNfbW9kZT1kZWZhdWx0Ci0rICAgIGZpCi0rCi0rICAgICMgQ2FsY3VsYXRlIHRo ZSBmaWxlbmFtZSBvZiB0aGUgb3V0cHV0IG9iamVjdCBpZiBjb21waWxlciBkb2VzCi0rICAgICMg bm90IHN1cHBvcnQgLW8gd2l0aCAtYwotKyAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IG5v OyB0aGVuCi0rICAgICAgb3V0cHV0X29iaj1gJEVDSE8gIiRzcmNmaWxlIiB8ICRTRUQgJ3MlXi4q LyUlOyBzJVwuW14uXSokJSUnYC4ke29iamV4dH0KLSsgICAgICBsb2NrZmlsZT0iJG91dHB1dF9v YmoubG9jayIKLSsgICAgZWxzZQotKyAgICAgIG91dHB1dF9vYmo9Ci0rICAgICAgbmVlZF9sb2Nr cz1ubwotKyAgICAgIGxvY2tmaWxlPQotKyAgICBmaQotKwotKyAgICAjIExvY2sgdGhpcyBjcml0 aWNhbCBzZWN0aW9uIGlmIGl0IGlzIG5lZWRlZAotKyAgICAjIFdlIHVzZSB0aGlzIHNjcmlwdCBm aWxlIHRvIG1ha2UgdGhlIGxpbmssIGl0IGF2b2lkcyBjcmVhdGluZyBhIG5ldyBmaWxlCi0rICAg IGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHllczsgdGhlbgotKyAgICAgIHVudGlsICRvcHRfZHJ5 X3J1biB8fCBsbiAiJHByb2dwYXRoIiAiJGxvY2tmaWxlIiAyPi9kZXYvbnVsbDsgZG8KLSsJZnVu Y19lY2hvICJXYWl0aW5nIGZvciAkbG9ja2ZpbGUgdG8gYmUgcmVtb3ZlZCIKLSsJc2xlZXAgMgot KyAgICAgIGRvbmUKLSsgICAgZWxpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3YXJuOyB0aGVuCi0r ICAgICAgaWYgdGVzdCAtZiAiJGxvY2tmaWxlIjsgdGhlbgotKwkkRUNITyAiXAotKyoqKiBFUlJP UiwgJGxvY2tmaWxlIGV4aXN0cyBhbmQgY29udGFpbnM6Ci0rYGNhdCAkbG9ja2ZpbGUgMj4vZGV2 L251bGxgCi0rCi0rVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5n IHRvIHVzZSB0aGUgc2FtZQotK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291 bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKLSt5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1 cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91Ci0rcmVwZWF0IHRoaXMgY29t cGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgot K2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0 IGEgYmV0dGVyCi0rY29tcGlsZXIuIgotKwotKwkkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVs aXN0Ci0rCWV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIGZpCi0rICAgICAgZnVuY19hcHBlbmQg cmVtb3ZlbGlzdCAiICRvdXRwdXRfb2JqIgotKyAgICAgICRFQ0hPICIkc3JjZmlsZSIgPiAiJGxv Y2tmaWxlIgotKyAgICBmaQotKwotKyAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0 Ci0rICAgIGZ1bmNfYXBwZW5kIHJlbW92ZWxpc3QgIiAkbG9ja2ZpbGUiCi0rICAgIHRyYXAgJyRv cHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVYSVRfRkFJTFVSRScgMSAyIDE1 Ci0rCi0rICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkc3JjZmlsZSIgZnVuY19jb252ZXJ0X2ZpbGVf bXN5c190b193MzIKLSsgICAgc3JjZmlsZT0kZnVuY190b190b29sX2ZpbGVfcmVzdWx0Ci0rICAg IGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRzcmNmaWxlIgotKyAgICBxc3JjZmlsZT0kZnVuY19xdW90 ZV9mb3JfZXZhbF9yZXN1bHQKLSsKLSsgICAgIyBPbmx5IGJ1aWxkIGEgUElDIG9iamVjdCBpZiB3 ZSBhcmUgYnVpbGRpbmcgbGlidG9vbCBsaWJyYXJpZXMuCi0rICAgIGlmIHRlc3QgIiRidWlsZF9s aWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgIyBXaXRob3V0IHRoaXMgYXNzaWdubWVu dCwgYmFzZV9jb21waWxlIGdldHMgZW1wdGllZC4KLSsgICAgICBmYnNkX2hpZGVvdXNfc2hfYnVn PSRiYXNlX2NvbXBpbGUKLSsKLSsgICAgICBpZiB0ZXN0ICIkcGljX21vZGUiICE9IG5vOyB0aGVu Ci0rCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlICRwaWNfZmxhZyIKLSsgICAgICBl bHNlCi0rCSMgRG9uJ3QgYnVpbGQgUElDIGNvZGUKLSsJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAk cXNyY2ZpbGUiCi0rICAgICAgZmkKLSsKLSsgICAgICBmdW5jX21rZGlyX3AgIiR4ZGlyJG9iamRp ciIKLSsKLSsgICAgICBpZiB0ZXN0IC16ICIkb3V0cHV0X29iaiI7IHRoZW4KLSsJIyBQbGFjZSBQ SUMgb2JqZWN0cyBpbiAkb2JqZGlyCi0rCWZ1bmNfYXBwZW5kIGNvbW1hbmQgIiAtbyAkbG9iaiIK LSsgICAgICBmaQotKwotKyAgICAgIGZ1bmNfc2hvd19ldmFsX2xvY2FsZSAiJGNvbW1hbmQiCVwK LSsgICAgICAgICAgJ3Rlc3QgLW4gIiRvdXRwdXRfb2JqIiAmJiAkUk0gJHJlbW92ZWxpc3Q7IGV4 aXQgJEVYSVRfRkFJTFVSRScKLSsKLSsgICAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3YXJu ICYmCi0rCSB0ZXN0ICJYYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgIiAhPSAiWCRzcmNmaWxl IjsgdGhlbgotKwkkRUNITyAiXAotKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGNvbnRhaW5zOgotK2Bj YXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYAotKwotK2J1dCBpdCBzaG91bGQgY29udGFpbjoKLSsk c3JjZmlsZQotKwotK1RoaXMgaW5kaWNhdGVzIHRoYXQgYW5vdGhlciBwcm9jZXNzIGlzIHRyeWlu ZyB0byB1c2UgdGhlIHNhbWUKLSt0ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIGFuZCBsaWJ0b29sIGNv dWxkIG5vdCB3b3JrIGFyb3VuZCBpdCBiZWNhdXNlCi0reW91ciBjb21waWxlciBkb2VzIG5vdCBz dXBwb3J0IFxgLWMnIGFuZCBcYC1vJyB0b2dldGhlci4gIElmIHlvdQotK3JlcGVhdCB0aGlzIGNv bXBpbGF0aW9uLCBpdCBtYXkgc3VjY2VlZCwgYnkgY2hhbmNlLCBidXQgeW91IGhhZCBiZXR0ZXIK LSthdm9pZCBwYXJhbGxlbCBidWlsZHMgKG1ha2UgLWopIGluIHRoaXMgcGxhdGZvcm0sIG9yIGdl dCBhIGJldHRlcgotK2NvbXBpbGVyLiIKLSsKLSsJJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3Zl bGlzdAotKwlleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgICBmaQotKwotKyAgICAgICMgSnVzdCBt b3ZlIHRoZSBvYmplY3QgaWYgbmVlZGVkLCB0aGVuIGdvIG9uIHRvIGNvbXBpbGUgdGhlIG5leHQg b25lCi0rICAgICAgaWYgdGVzdCAtbiAiJG91dHB1dF9vYmoiICYmIHRlc3QgIlgkb3V0cHV0X29i aiIgIT0gIlgkbG9iaiI7IHRoZW4KLSsJZnVuY19zaG93X2V2YWwgJyRNViAiJG91dHB1dF9vYmoi ICIkbG9iaiInIFwKLSsJICAnZXJyb3I9JD87ICRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxp c3Q7IGV4aXQgJGVycm9yJwotKyAgICAgIGZpCi0rCi0rICAgICAgIyBBbGxvdyBlcnJvciBtZXNz YWdlcyBvbmx5IGZyb20gdGhlIGZpcnN0IGNvbXBpbGF0aW9uLgotKyAgICAgIGlmIHRlc3QgIiRz dXBwcmVzc19vcHQiID0geWVzOyB0aGVuCi0rCXN1cHByZXNzX291dHB1dD0nID4vZGV2L251bGwg Mj4mMScKLSsgICAgICBmaQotKyAgICBmaQotKwotKyAgICAjIE9ubHkgYnVpbGQgYSBwb3NpdGlv bi1kZXBlbmRlbnQgb2JqZWN0IGlmIHdlIGJ1aWxkIG9sZCBsaWJyYXJpZXMuCi0rICAgIGlmIHRl c3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICBpZiB0ZXN0ICIkcGljX21v ZGUiICE9IHllczsgdGhlbgotKwkjIERvbid0IGJ1aWxkIFBJQyBjb2RlCi0rCWNvbW1hbmQ9IiRi YXNlX2NvbXBpbGUgJHFzcmNmaWxlJHBpZV9mbGFnIgotKyAgICAgIGVsc2UKLSsJY29tbWFuZD0i JGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgotKyAgICAgIGZpCi0rICAgICAgaWYg dGVzdCAiJGNvbXBpbGVyX2NfbyIgPSB5ZXM7IHRoZW4KLSsJZnVuY19hcHBlbmQgY29tbWFuZCAi IC1vICRvYmoiCi0rICAgICAgZmkKLSsKLSsgICAgICAjIFN1cHByZXNzIGNvbXBpbGVyIG91dHB1 dCBpZiB3ZSBhbHJlYWR5IGRpZCBhIFBJQyBjb21waWxhdGlvbi4KLSsgICAgICBmdW5jX2FwcGVu ZCBjb21tYW5kICIkc3VwcHJlc3Nfb3V0cHV0IgotKyAgICAgIGZ1bmNfc2hvd19ldmFsX2xvY2Fs ZSAiJGNvbW1hbmQiIFwKLSsgICAgICAgICckb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0 OyBleGl0ICRFWElUX0ZBSUxVUkUnCi0rCi0rICAgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0g d2FybiAmJgotKwkgdGVzdCAiWGBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYCIgIT0gIlgkc3Jj ZmlsZSI7IHRoZW4KLSsJJEVDSE8gIlwKLSsqKiogRVJST1IsICRsb2NrZmlsZSBjb250YWluczoK LStgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAKLSsKLStidXQgaXQgc2hvdWxkIGNvbnRhaW46 Ci0rJHNyY2ZpbGUKLSsKLStUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0 cnlpbmcgdG8gdXNlIHRoZSBzYW1lCi0rdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9v bCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVzZQotK3lvdXIgY29tcGlsZXIgZG9lcyBu b3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKLStyZXBlYXQgdGhp cyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0 dGVyCi0rYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBv ciBnZXQgYSBiZXR0ZXIKLStjb21waWxlci4iCi0rCi0rCSRvcHRfZHJ5X3J1biB8fCAkUk0gJHJl bW92ZWxpc3QKLSsJZXhpdCAkRVhJVF9GQUlMVVJFCi0rICAgICAgZmkKLSsKLSsgICAgICAjIEp1 c3QgbW92ZSB0aGUgb2JqZWN0IGlmIG5lZWRlZAotKyAgICAgIGlmIHRlc3QgLW4gIiRvdXRwdXRf b2JqIiAmJiB0ZXN0ICJYJG91dHB1dF9vYmoiICE9ICJYJG9iaiI7IHRoZW4KLSsJZnVuY19zaG93 X2V2YWwgJyRNViAiJG91dHB1dF9vYmoiICIkb2JqIicgXAotKwkgICdlcnJvcj0kPzsgJG9wdF9k cnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkZXJyb3InCi0rICAgICAgZmkKLSsgICAg ZmkKLSsKLSsgICAgJG9wdF9kcnlfcnVuIHx8IHsKLSsgICAgICBmdW5jX3dyaXRlX2xpYnRvb2xf b2JqZWN0ICIkbGlib2JqIiAiJG9iamRpci8kb2JqbmFtZSIgIiRvYmpuYW1lIgotKwotKyAgICAg ICMgVW5sb2NrIHRoZSBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IHdhcyBsb2NrZWQKLSsgICAgICBp ZiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsJcmVtb3ZlbGlzdD0kbG9ja2ZpbGUK LSsgICAgICAgICRSTSAiJGxvY2tmaWxlIgotKyAgICAgIGZpCi0rICAgIH0KLSsKLSsgICAgZXhp dCAkRVhJVF9TVUNDRVNTCi0rfQotKwotKyRvcHRfaGVscCB8fCB7Ci0rICB0ZXN0ICIkb3B0X21v ZGUiID0gY29tcGlsZSAmJiBmdW5jX21vZGVfY29tcGlsZSAkezErIiRAIn0KLSt9Ci0rCi0rZnVu Y19tb2RlX2hlbHAgKCkKLSt7Ci0rICAgICMgV2UgbmVlZCB0byBkaXNwbGF5IGhlbHAgZm9yIGVh Y2ggb2YgdGhlIG1vZGVzLgotKyAgICBjYXNlICRvcHRfbW9kZSBpbgotKyAgICAgICIiKQotKyAg ICAgICAgIyBHZW5lcmljIGhlbHAgaXMgZXh0cmFjdGVkIGZyb20gdGhlIHVzYWdlIGNvbW1lbnRz Ci0rICAgICAgICAjIGF0IHRoZSBzdGFydCBvZiB0aGlzIGZpbGUuCi0rICAgICAgICBmdW5jX2hl bHAKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgY2xlYW4pCi0rICAgICAgICAkRUNITyBcCi0rIlVz YWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWNsZWFuIFJNIFtSTS1PUFRJT05dLi4u IEZJTEUuLi4KLSsKLStSZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0b3J5LgotKwot K1JNIGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUgZmlsZXMgYXNz b2NpYXRlZCB3aXRoIGVhY2ggRklMRQotKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJ T05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKLSt0byBSTS4KLSsK LStJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBvYmplY3Qgb3IgcHJvZ3JhbSwgYWxsIHRo ZSBmaWxlcyBhc3NvY2lhdGVkCi0rd2l0aCBpdCBhcmUgZGVsZXRlZC4gT3RoZXJ3aXNlLCBvbmx5 IEZJTEUgaXRzZWxmIGlzIGRlbGV0ZWQgdXNpbmcgUk0uIgotKyAgICAgICAgOzsKLSsKLSsgICAg ICBjb21waWxlKQotKyAgICAgICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4u LiAtLW1vZGU9Y29tcGlsZSBDT01QSUxFLUNPTU1BTkQuLi4gU09VUkNFRklMRQotKwotK0NvbXBp bGUgYSBzb3VyY2UgZmlsZSBpbnRvIGEgbGlidG9vbCBsaWJyYXJ5IG9iamVjdC4KLSsKLStUaGlz IG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKLSsKLSsgIC1v IE9VVFBVVC1GSUxFICAgIHNldCB0aGUgb3V0cHV0IGZpbGUgbmFtZSB0byBPVVRQVVQtRklMRQot KyAgLW5vLXN1cHByZXNzICAgICAgZG8gbm90IHN1cHByZXNzIGNvbXBpbGVyIG91dHB1dCBmb3Ig bXVsdGlwbGUgcGFzc2VzCi0rICAtcHJlZmVyLXBpYyAgICAgICB0cnkgdG8gYnVpbGQgUElDIG9i amVjdHMgb25seQotKyAgLXByZWZlci1ub24tcGljICAgdHJ5IHRvIGJ1aWxkIG5vbi1QSUMgb2Jq ZWN0cyBvbmx5Ci0rICAtc2hhcmVkICAgICAgICAgICBkbyBub3QgYnVpbGQgYSBcYC5vJyBmaWxl IHN1aXRhYmxlIGZvciBzdGF0aWMgbGlua2luZwotKyAgLXN0YXRpYyAgICAgICAgICAgb25seSBi dWlsZCBhIFxgLm8nIGZpbGUgc3VpdGFibGUgZm9yIHN0YXRpYyBsaW5raW5nCi0rICAtV2MsRkxB RyAgICAgICAgICBwYXNzIEZMQUcgZGlyZWN0bHkgdG8gdGhlIGNvbXBpbGVyCi0rCi0rQ09NUElM RS1DT01NQU5EIGlzIGEgY29tbWFuZCB0byBiZSB1c2VkIGluIGNyZWF0aW5nIGEgXGBzdGFuZGFy ZCcgb2JqZWN0IGZpbGUKLStmcm9tIHRoZSBnaXZlbiBTT1VSQ0VGSUxFLgotKwotK1RoZSBvdXRw dXQgZmlsZSBuYW1lIGlzIGRldGVybWluZWQgYnkgcmVtb3ZpbmcgdGhlIGRpcmVjdG9yeSBjb21w b25lbnQgZnJvbQotK1NPVVJDRUZJTEUsIHRoZW4gc3Vic3RpdHV0aW5nIHRoZSBDIHNvdXJjZSBj b2RlIHN1ZmZpeCBcYC5jJyB3aXRoIHRoZQotK2xpYnJhcnkgb2JqZWN0IHN1ZmZpeCwgXGAubG8n LiIKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgZXhlY3V0ZSkKLSsgICAgICAgICRFQ0hPIFwKLSsi VXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9ZXhlY3V0ZSBDT01NQU5EIFtBUkdT XS4uLgotKwotK0F1dG9tYXRpY2FsbHkgc2V0IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9n cmFtLgotKwotK1RoaXMgbW9kZSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBvcHRp b25zOgotKwotKyAgLWRsb3BlbiBGSUxFICAgICAgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmlu ZyBGSUxFIHRvIHRoZSBsaWJyYXJ5IHBhdGgKLSsKLStUaGlzIG1vZGUgc2V0cyB0aGUgbGlicmFy eSBwYXRoIGVudmlyb25tZW50IHZhcmlhYmxlIGFjY29yZGluZyB0byBcYC1kbG9wZW4nCi0rZmxh Z3MuCi0rCi0rSWYgYW55IG9mIHRoZSBBUkdTIGFyZSBsaWJ0b29sIGV4ZWN1dGFibGUgd3JhcHBl cnMsIHRoZW4gdGhleSBhcmUgdHJhbnNsYXRlZAotK2ludG8gdGhlaXIgY29ycmVzcG9uZGluZyB1 bmluc3RhbGxlZCBiaW5hcnksIGFuZCBhbnkgb2YgdGhlaXIgcmVxdWlyZWQgbGlicmFyeQotK2Rp cmVjdG9yaWVzIGFyZSBhZGRlZCB0byB0aGUgbGlicmFyeSBwYXRoLgotKwotK1RoZW4sIENPTU1B TkQgaXMgZXhlY3V0ZWQsIHdpdGggQVJHUyBhcyBhcmd1bWVudHMuIgotKyAgICAgICAgOzsKLSsK LSsgICAgICBmaW5pc2gpCi0rICAgICAgICAkRUNITyBcCi0rIlVzYWdlOiAkcHJvZ25hbWUgW09Q VElPTl0uLi4gLS1tb2RlPWZpbmlzaCBbTElCRElSXS4uLgotKwotK0NvbXBsZXRlIHRoZSBpbnN0 YWxsYXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMuCi0rCi0rRWFjaCBMSUJESVIgaXMgYSBkaXJl Y3RvcnkgdGhhdCBjb250YWlucyBsaWJ0b29sIGxpYnJhcmllcy4KLSsKLStUaGUgY29tbWFuZHMg dGhhdCB0aGlzIG1vZGUgZXhlY3V0ZXMgbWF5IHJlcXVpcmUgc3VwZXJ1c2VyIHByaXZpbGVnZXMu ICBVc2UKLSt0aGUgXGAtLWRyeS1ydW4nIG9wdGlvbiBpZiB5b3UganVzdCB3YW50IHRvIHNlZSB3 aGF0IHdvdWxkIGJlIGV4ZWN1dGVkLiIKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgaW5zdGFsbCkK LSsgICAgICAgICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9 aW5zdGFsbCBJTlNUQUxMLUNPTU1BTkQuLi4KLSsKLStJbnN0YWxsIGV4ZWN1dGFibGVzIG9yIGxp YnJhcmllcy4KLSsKLStJTlNUQUxMLUNPTU1BTkQgaXMgdGhlIGluc3RhbGxhdGlvbiBjb21tYW5k LiAgVGhlIGZpcnN0IGNvbXBvbmVudCBzaG91bGQgYmUKLStlaXRoZXIgdGhlIFxgaW5zdGFsbCcg b3IgXGBjcCcgcHJvZ3JhbS4KLSsKLStUaGUgZm9sbG93aW5nIGNvbXBvbmVudHMgb2YgSU5TVEFM TC1DT01NQU5EIGFyZSB0cmVhdGVkIHNwZWNpYWxseToKLSsKLSsgIC1pbnN0LXByZWZpeC1kaXIg UFJFRklYLURJUiAgVXNlIFBSRUZJWC1ESVIgYXMgYSBzdGFnaW5nIGFyZWEgZm9yIGluc3RhbGxh dGlvbgotKwotK1RoZSByZXN0IG9mIHRoZSBjb21wb25lbnRzIGFyZSBpbnRlcnByZXRlZCBhcyBh cmd1bWVudHMgdG8gdGhhdCBjb21tYW5kIChvbmx5Ci0rQlNELWNvbXBhdGlibGUgaW5zdGFsbCBv cHRpb25zIGFyZSByZWNvZ25pemVkKS4iCi0rICAgICAgICA7OwotKwotKyAgICAgIGxpbmspCi0r ICAgICAgICAkRUNITyBcCi0rIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWxp bmsgTElOSy1DT01NQU5ELi4uCi0rCi0rTGluayBvYmplY3QgZmlsZXMgb3IgbGlicmFyaWVzIHRv Z2V0aGVyIHRvIGZvcm0gYW5vdGhlciBsaWJyYXJ5LCBvciB0bwotK2NyZWF0ZSBhbiBleGVjdXRh YmxlIHByb2dyYW0uCi0rCi0rTElOSy1DT01NQU5EIGlzIGEgY29tbWFuZCB1c2luZyB0aGUgQyBj b21waWxlciB0aGF0IHlvdSB3b3VsZCB1c2UgdG8gY3JlYXRlCi0rYSBwcm9ncmFtIGZyb20gc2V2 ZXJhbCBvYmplY3QgZmlsZXMuCi0rCi0rVGhlIGZvbGxvd2luZyBjb21wb25lbnRzIG9mIExJTkst Q09NTUFORCBhcmUgdHJlYXRlZCBzcGVjaWFsbHk6Ci0rCi0rICAtYWxsLXN0YXRpYyAgICAgICBk byBub3QgZG8gYW55IGR5bmFtaWMgbGlua2luZyBhdCBhbGwKLSsgIC1hdm9pZC12ZXJzaW9uICAg IGRvIG5vdCBhZGQgYSB2ZXJzaW9uIHN1ZmZpeCBpZiBwb3NzaWJsZQotKyAgLWJpbmRpciBCSU5E SVIgICAgc3BlY2lmeSBwYXRoIHRvIGJpbmFyaWVzIGRpcmVjdG9yeSAoZm9yIHN5c3RlbXMgd2hl cmUKLSsgICAgICAgICAgICAgICAgICAgIGxpYnJhcmllcyBtdXN0IGJlIGZvdW5kIGluIHRoZSBQ QVRIIHNldHRpbmcgYXQgcnVudGltZSkKLSsgIC1kbG9wZW4gRklMRSAgICAgIFxgLWRscHJlb3Bl bicgRklMRSBpZiBpdCBjYW5ub3QgYmUgZGxvcGVuZWQgYXQgcnVudGltZQotKyAgLWRscHJlb3Bl biBGSUxFICAgbGluayBpbiBGSUxFIGFuZCBhZGQgaXRzIHN5bWJvbHMgdG8gbHRfcHJlbG9hZGVk X3N5bWJvbHMKLSsgIC1leHBvcnQtZHluYW1pYyAgIGFsbG93IHN5bWJvbHMgZnJvbSBPVVRQVVQt RklMRSB0byBiZSByZXNvbHZlZCB3aXRoIGRsc3ltKDMpCi0rICAtZXhwb3J0LXN5bWJvbHMgU1lN RklMRQotKyAgICAgICAgICAgICAgICAgICAgdHJ5IHRvIGV4cG9ydCBvbmx5IHRoZSBzeW1ib2xz IGxpc3RlZCBpbiBTWU1GSUxFCi0rICAtZXhwb3J0LXN5bWJvbHMtcmVnZXggUkVHRVgKLSsgICAg ICAgICAgICAgICAgICAgIHRyeSB0byBleHBvcnQgb25seSB0aGUgc3ltYm9scyBtYXRjaGluZyBS RUdFWAotKyAgLUxMSUJESVIgICAgICAgICAgc2VhcmNoIExJQkRJUiBmb3IgcmVxdWlyZWQgaW5z dGFsbGVkIGxpYnJhcmllcwotKyAgLWxOQU1FICAgICAgICAgICAgT1VUUFVULUZJTEUgcmVxdWly ZXMgdGhlIGluc3RhbGxlZCBsaWJyYXJ5IGxpYk5BTUUKLSsgIC1tb2R1bGUgICAgICAgICAgIGJ1 aWxkIGEgbGlicmFyeSB0aGF0IGNhbiBkbG9wZW5lZAotKyAgLW5vLWZhc3QtaW5zdGFsbCAgZGlz YWJsZSB0aGUgZmFzdC1pbnN0YWxsIG1vZGUKLSsgIC1uby1pbnN0YWxsICAgICAgIGxpbmsgYSBu b3QtaW5zdGFsbGFibGUgZXhlY3V0YWJsZQotKyAgLW5vLXVuZGVmaW5lZCAgICAgZGVjbGFyZSB0 aGF0IGEgbGlicmFyeSBkb2VzIG5vdCByZWZlciB0byBleHRlcm5hbCBzeW1ib2xzCi0rICAtbyBP VVRQVVQtRklMRSAgICBjcmVhdGUgT1VUUFVULUZJTEUgZnJvbSB0aGUgc3BlY2lmaWVkIG9iamVj dHMKLSsgIC1vYmplY3RsaXN0IEZJTEUgIFVzZSBhIGxpc3Qgb2Ygb2JqZWN0IGZpbGVzIGZvdW5k IGluIEZJTEUgdG8gc3BlY2lmeSBvYmplY3RzCi0rICAtcHJlY2lvdXMtZmlsZXMtcmVnZXggUkVH RVgKLSsgICAgICAgICAgICAgICAgICAgIGRvbid0IHJlbW92ZSBvdXRwdXQgZmlsZXMgbWF0Y2hp bmcgUkVHRVgKLSsgIC1yZWxlYXNlIFJFTEVBU0UgIHNwZWNpZnkgcGFja2FnZSByZWxlYXNlIGlu Zm9ybWF0aW9uCi0rICAtcnBhdGggTElCRElSICAgICB0aGUgY3JlYXRlZCBsaWJyYXJ5IHdpbGwg ZXZlbnR1YWxseSBiZSBpbnN0YWxsZWQgaW4gTElCRElSCi0rICAtUlsgXUxJQkRJUiAgICAgICBh ZGQgTElCRElSIHRvIHRoZSBydW50aW1lIHBhdGggb2YgcHJvZ3JhbXMgYW5kIGxpYnJhcmllcwot KyAgLXNoYXJlZCAgICAgICAgICAgb25seSBkbyBkeW5hbWljIGxpbmtpbmcgb2YgbGlidG9vbCBs aWJyYXJpZXMKLSsgIC1zaHJleHQgU1VGRklYICAgIG92ZXJyaWRlIHRoZSBzdGFuZGFyZCBzaGFy ZWQgbGlicmFyeSBmaWxlIGV4dGVuc2lvbgotKyAgLXN0YXRpYyAgICAgICAgICAgZG8gbm90IGRv IGFueSBkeW5hbWljIGxpbmtpbmcgb2YgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKLSsg IC1zdGF0aWMtbGlidG9vbC1saWJzCi0rICAgICAgICAgICAgICAgICAgICBkbyBub3QgZG8gYW55 IGR5bmFtaWMgbGlua2luZyBvZiBsaWJ0b29sIGxpYnJhcmllcwotKyAgLXZlcnNpb24taW5mbyBD VVJSRU5UWzpSRVZJU0lPTls6QUdFXV0KLSsgICAgICAgICAgICAgICAgICAgIHNwZWNpZnkgbGli cmFyeSB2ZXJzaW9uIGluZm8gW2VhY2ggdmFyaWFibGUgZGVmYXVsdHMgdG8gMF0KLSsgIC13ZWFr IExJQk5BTUUgICAgIGRlY2xhcmUgdGhhdCB0aGUgdGFyZ2V0IHByb3ZpZGVzIHRoZSBMSUJOQU1F IGludGVyZmFjZQotKyAgLVdjLEZMQUcKLSsgIC1YY29tcGlsZXIgRkxBRyAgIHBhc3MgbGlua2Vy LXNwZWNpZmljIEZMQUcgZGlyZWN0bHkgdG8gdGhlIGNvbXBpbGVyCi0rICAtV2wsRkxBRwotKyAg LVhsaW5rZXIgRkxBRyAgICAgcGFzcyBsaW5rZXItc3BlY2lmaWMgRkxBRyBkaXJlY3RseSB0byB0 aGUgbGlua2VyCi0rICAtWENDbGlua2VyIEZMQUcgICBwYXNzIGxpbmstc3BlY2lmaWMgRkxBRyB0 byB0aGUgY29tcGlsZXIgZHJpdmVyIChDQykKLSsKLStBbGwgb3RoZXIgb3B0aW9ucyAoYXJndW1l bnRzIGJlZ2lubmluZyB3aXRoIFxgLScpIGFyZSBpZ25vcmVkLgotKwotK0V2ZXJ5IG90aGVyIGFy Z3VtZW50IGlzIHRyZWF0ZWQgYXMgYSBmaWxlbmFtZS4gIEZpbGVzIGVuZGluZyBpbiBcYC5sYScg YXJlCi0rdHJlYXRlZCBhcyB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcywgb3RoZXIgZmls ZXMgYXJlIHN0YW5kYXJkIG9yIGxpYnJhcnkKLStvYmplY3QgZmlsZXMuCi0rCi0rSWYgdGhlIE9V VFBVVC1GSUxFIGVuZHMgaW4gXGAubGEnLCB0aGVuIGEgbGlidG9vbCBsaWJyYXJ5IGlzIGNyZWF0 ZWQsCi0rb25seSBsaWJyYXJ5IG9iamVjdHMgKFxgLmxvJyBmaWxlcykgbWF5IGJlIHNwZWNpZmll ZCwgYW5kIFxgLXJwYXRoJyBpcwotK3JlcXVpcmVkLCBleGNlcHQgd2hlbiBjcmVhdGluZyBhIGNv bnZlbmllbmNlIGxpYnJhcnkuCi0rCi0rSWYgT1VUUFVULUZJTEUgZW5kcyBpbiBcYC5hJyBvciBc YC5saWInLCB0aGVuIGEgc3RhbmRhcmQgbGlicmFyeSBpcyBjcmVhdGVkCi0rdXNpbmcgXGBhcicg YW5kIFxgcmFubGliJywgb3Igb24gV2luZG93cyB1c2luZyBcYGxpYicuCi0rCi0rSWYgT1VUUFVU LUZJTEUgZW5kcyBpbiBcYC5sbycgb3IgXGAuJHtvYmpleHR9JywgdGhlbiBhIHJlbG9hZGFibGUg b2JqZWN0IGZpbGUKLStpcyBjcmVhdGVkLCBvdGhlcndpc2UgYW4gZXhlY3V0YWJsZSBwcm9ncmFt IGlzIGNyZWF0ZWQuIgotKyAgICAgICAgOzsKLSsKLSsgICAgICB1bmluc3RhbGwpCi0rICAgICAg ICAkRUNITyBcCi0rIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPXVuaW5zdGFs bCBSTSBbUk0tT1BUSU9OXS4uLiBGSUxFLi4uCi0rCi0rUmVtb3ZlIGxpYnJhcmllcyBmcm9tIGFu IGluc3RhbGxhdGlvbiBkaXJlY3RvcnkuCi0rCi0rUk0gaXMgdGhlIG5hbWUgb2YgdGhlIHByb2dy YW0gdG8gdXNlIHRvIGRlbGV0ZSBmaWxlcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBGSUxFCi0rKHR5 cGljYWxseSBcYC9iaW4vcm0nKS4gIFJNLU9QVElPTlMgYXJlIG9wdGlvbnMgKHN1Y2ggYXMgXGAt ZicpIHRvIGJlIHBhc3NlZAotK3RvIFJNLgotKwotK0lmIEZJTEUgaXMgYSBsaWJ0b29sIGxpYnJh cnksIGFsbCB0aGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGl0IGFyZSBkZWxldGVkLgotK090aGVy d2lzZSwgb25seSBGSUxFIGl0c2VsZiBpcyBkZWxldGVkIHVzaW5nIFJNLiIKLSsgICAgICAgIDs7 Ci0rCi0rICAgICAgKikKLSsgICAgICAgIGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBvcGVyYXRp b24gbW9kZSBcYCRvcHRfbW9kZSciCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGVj aG8KLSsgICAgJEVDSE8gIlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0 aW9uIGFib3V0IG90aGVyIG1vZGVzLiIKLSt9Ci0rCi0rIyBOb3cgdGhhdCB3ZSd2ZSBjb2xsZWN0 ZWQgYSBwb3NzaWJsZSAtLW1vZGUgYXJnLCBzaG93IGhlbHAgaWYgbmVjZXNzYXJ5Ci0raWYgJG9w dF9oZWxwOyB0aGVuCi0rICBpZiB0ZXN0ICIkb3B0X2hlbHAiID0gOjsgdGhlbgotKyAgICBmdW5j X21vZGVfaGVscAotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgZnVuY19oZWxwIG5vZXhpdAotKyAg ICAgIGZvciBvcHRfbW9kZSBpbiBjb21waWxlIGxpbmsgZXhlY3V0ZSBpbnN0YWxsIGZpbmlzaCB1 bmluc3RhbGwgY2xlYW47IGRvCi0rCWZ1bmNfbW9kZV9oZWxwCi0rICAgICAgZG9uZQotKyAgICB9 IHwgc2VkIC1uICcxcDsgMiwkcy9eVXNhZ2U6LyAgb3I6IC9wJwotKyAgICB7Ci0rICAgICAgZnVu Y19oZWxwIG5vZXhpdAotKyAgICAgIGZvciBvcHRfbW9kZSBpbiBjb21waWxlIGxpbmsgZXhlY3V0 ZSBpbnN0YWxsIGZpbmlzaCB1bmluc3RhbGwgY2xlYW47IGRvCi0rCWVjaG8KLSsJZnVuY19tb2Rl X2hlbHAKLSsgICAgICBkb25lCi0rICAgIH0gfAotKyAgICBzZWQgJzFkCi0rICAgICAgL15XaGVu IHJlcG9ydGluZy8sL15SZXBvcnQvewotKwlICi0rCWQKLSsgICAgICB9Ci0rICAgICAgJHgKLSsg ICAgICAvaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgbW9kZXMvZAotKyAgICAgIC9tb3JlIGRldGFp bGVkIC4qTU9ERS9kCi0rICAgICAgcy9eVXNhZ2U6LiotLW1vZGU9XChbXiBdKlwpIC4qL0Rlc2Ny aXB0aW9uIG9mIFwxIG1vZGU6LycKLSsgIGZpCi0rICBleGl0ICQ/Ci0rZmkKLSsKLSsKLSsjIGZ1 bmNfbW9kZV9leGVjdXRlIGFyZy4uLgotK2Z1bmNfbW9kZV9leGVjdXRlICgpCi0rewotKyAgICAk b3B0X2RlYnVnCi0rICAgICMgVGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBjb21tYW5kIG5hbWUu Ci0rICAgIGNtZD0iJG5vbm9wdCIKLSsgICAgdGVzdCAteiAiJGNtZCIgJiYgXAotKyAgICAgIGZ1 bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIENPTU1BTkQiCi0rCi0rICAgICMgSGFu ZGxlIC1kbG9wZW4gZmxhZ3MgaW1tZWRpYXRlbHkuCi0rICAgIGZvciBmaWxlIGluICRvcHRfZGxv cGVuOyBkbwotKyAgICAgIHRlc3QgLWYgIiRmaWxlIiBcCi0rCXx8IGZ1bmNfZmF0YWxfaGVscCAi XGAkZmlsZScgaXMgbm90IGEgZmlsZSIKLSsKLSsgICAgICBkaXI9Ci0rICAgICAgY2FzZSAkZmls ZSBpbgotKyAgICAgICoubGEpCi0rCWZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZmlsZSIKLSsJZmls ZT0kZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0Ci0rCi0rCSMgQ2hlY2sgdG8gc2VlIHRoYXQg dGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIGFyY2hpdmUuCi0rCWZ1bmNfbGFsaWJfdW5zYWZlX3Ag IiRmaWxlIiBcCi0rCSAgfHwgZnVuY19mYXRhbF9oZWxwICJcYCRsaWInIGlzIG5vdCBhIHZhbGlk IGxpYnRvb2wgYXJjaGl2ZSIKLSsKLSsJIyBSZWFkIHRoZSBsaWJ0b29sIGxpYnJhcnkuCi0rCWRs bmFtZT0KLSsJbGlicmFyeV9uYW1lcz0KLSsJZnVuY19zb3VyY2UgIiRmaWxlIgotKwotKwkjIFNr aXAgdGhpcyBsaWJyYXJ5IGlmIGl0IGNhbm5vdCBiZSBkbG9wZW5lZC4KLSsJaWYgdGVzdCAteiAi JGRsbmFtZSI7IHRoZW4KLSsJICAjIFdhcm4gaWYgaXQgd2FzIGEgc2hhcmVkIGxpYnJhcnkuCi0r CSAgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmIFwKLSsJICAgIGZ1bmNfd2FybmluZyAiXGAk ZmlsZScgd2FzIG5vdCBsaW5rZWQgd2l0aCBcYC1leHBvcnQtZHluYW1pYyciCi0rCSAgY29udGlu dWUKLSsJZmkKLSsKLSsJZnVuY19kaXJuYW1lICIkZmlsZSIgIiIgIi4iCi0rCWRpcj0iJGZ1bmNf ZGlybmFtZV9yZXN1bHQiCi0rCi0rCWlmIHRlc3QgLWYgIiRkaXIvJG9iamRpci8kZGxuYW1lIjsg dGhlbgotKwkgIGZ1bmNfYXBwZW5kIGRpciAiLyRvYmpkaXIiCi0rCWVsc2UKLSsJICBpZiB0ZXN0 ICEgLWYgIiRkaXIvJGRsbmFtZSI7IHRoZW4KLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5v dCBmaW5kIFxgJGRsbmFtZScgaW4gXGAkZGlyJyBvciBcYCRkaXIvJG9iamRpciciCi0rCSAgZmkK LSsJZmkKLSsJOzsKLSsKLSsgICAgICAqLmxvKQotKwkjIEp1c3QgYWRkIHRoZSBkaXJlY3Rvcnkg Y29udGFpbmluZyB0aGUgLmxvIGZpbGUuCi0rCWZ1bmNfZGlybmFtZSAiJGZpbGUiICIiICIuIgot KwlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKwk7OwotKwotKyAgICAgICopCi0rCWZ1bmNf d2FybmluZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBub24tbGlidG9vbCBsaWJyYXJpZXMg YW5kIG9iamVjdHMiCi0rCWNvbnRpbnVlCi0rCTs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgICMg R2V0IHRoZSBhYnNvbHV0ZSBwYXRobmFtZS4KLSsgICAgICBhYnNkaXI9YGNkICIkZGlyIiAmJiBw d2RgCi0rICAgICAgdGVzdCAtbiAiJGFic2RpciIgJiYgZGlyPSIkYWJzZGlyIgotKwotKyAgICAg ICMgTm93IGFkZCB0aGUgZGlyZWN0b3J5IHRvIHNobGlicGF0aF92YXIuCi0rICAgICAgaWYgZXZh bCAidGVzdCAteiBcIlwkJHNobGlicGF0aF92YXJcIiI7IHRoZW4KLSsJZXZhbCAiJHNobGlicGF0 aF92YXI9XCJcJGRpclwiIgotKyAgICAgIGVsc2UKLSsJZXZhbCAiJHNobGlicGF0aF92YXI9XCJc JGRpcjpcJCRzaGxpYnBhdGhfdmFyXCIiCi0rICAgICAgZmkKLSsgICAgZG9uZQotKwotKyAgICAj IFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHNobGlicGF0 aF92YXIKLSsgICAgIyByYXRoZXIgdGhhbiBydW5uaW5nIHRoZWlyIHByb2dyYW1zLgotKyAgICBs aWJ0b29sX2V4ZWN1dGVfbWFnaWM9IiRtYWdpYyIKLSsKLSsgICAgIyBDaGVjayBpZiBhbnkgb2Yg dGhlIGFyZ3VtZW50cyBpcyBhIHdyYXBwZXIgc2NyaXB0LgotKyAgICBhcmdzPQotKyAgICBmb3Ig ZmlsZQotKyAgICBkbwotKyAgICAgIGNhc2UgJGZpbGUgaW4KLSsgICAgICAtKiB8ICoubGEgfCAq LmxvICkgOzsKLSsgICAgICAqKQotKwkjIERvIGEgdGVzdCB0byBzZWUgaWYgdGhpcyBpcyByZWFs bHkgYSBsaWJ0b29sIHByb2dyYW0uCi0rCWlmIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkZmls ZSI7IHRoZW4KLSsJICBmdW5jX3NvdXJjZSAiJGZpbGUiCi0rCSAgIyBUcmFuc2Zvcm0gYXJnIHRv IHdyYXBwZWQgbmFtZS4KLSsJICBmaWxlPSIkcHJvZ2Rpci8kcHJvZ3JhbSIKLSsJZWxpZiBmdW5j X2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiRmaWxlIjsgdGhlbgotKwkgIGZ1bmNfbHR3cmFwcGVy X3NjcmlwdG5hbWUgIiRmaWxlIgotKwkgIGZ1bmNfc291cmNlICIkZnVuY19sdHdyYXBwZXJfc2Ny aXB0bmFtZV9yZXN1bHQiCi0rCSAgIyBUcmFuc2Zvcm0gYXJnIHRvIHdyYXBwZWQgbmFtZS4KLSsJ ICBmaWxlPSIkcHJvZ2Rpci8kcHJvZ3JhbSIKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAg ICAgIyBRdW90ZSBhcmd1bWVudHMgKHRvIHByZXNlcnZlIHNoZWxsIG1ldGFjaGFyYWN0ZXJzKS4K LSsgICAgICBmdW5jX2FwcGVuZF9xdW90ZWQgYXJncyAiJGZpbGUiCi0rICAgIGRvbmUKLSsKLSsg ICAgaWYgdGVzdCAiWCRvcHRfZHJ5X3J1biIgPSBYZmFsc2U7IHRoZW4KLSsgICAgICBpZiB0ZXN0 IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsJIyBFeHBvcnQgdGhlIHNobGlicGF0aF92YXIu Ci0rCWV2YWwgImV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKLSsgICAgICBmaQotKwotKyAgICAgICMg UmVzdG9yZSBzYXZlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMKLSsgICAgICBmb3IgbHRfdmFyIGlu IExBTkcgTEFOR1VBR0UgTENfQUxMIExDX0NUWVBFIExDX0NPTExBVEUgTENfTUVTU0FHRVMKLSsg ICAgICBkbwotKwlldmFsICJpZiB0ZXN0IFwiXCR7c2F2ZV8kbHRfdmFyK3NldH1cIiA9IHNldDsg dGhlbgotKyAgICAgICAgICAgICAgICAkbHRfdmFyPVwkc2F2ZV8kbHRfdmFyOyBleHBvcnQgJGx0 X3ZhcgotKwkgICAgICBlbHNlCi0rCQkkbHRfdW5zZXQgJGx0X3ZhcgotKwkgICAgICBmaSIKLSsg ICAgICBkb25lCi0rCi0rICAgICAgIyBOb3cgcHJlcGFyZSB0byBhY3R1YWxseSBleGVjIHRoZSBj b21tYW5kLgotKyAgICAgIGV4ZWNfY21kPSJcJGNtZCRhcmdzIgotKyAgICBlbHNlCi0rICAgICAg IyBEaXNwbGF5IHdoYXQgd291bGQgYmUgZG9uZS4KLSsgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJw YXRoX3ZhciI7IHRoZW4KLSsJZXZhbCAiXCRFQ0hPIFwiXCRzaGxpYnBhdGhfdmFyPVwkJHNobGli cGF0aF92YXJcIiIKLSsJZWNobyAiZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgotKyAgICAgIGZpCi0r ICAgICAgJEVDSE8gIiRjbWQkYXJncyIKLSsgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKLSsgICAg ZmkKLSt9Ci0rCi0rdGVzdCAiJG9wdF9tb2RlIiA9IGV4ZWN1dGUgJiYgZnVuY19tb2RlX2V4ZWN1 dGUgJHsxKyIkQCJ9Ci0rCi0rCi0rIyBmdW5jX21vZGVfZmluaXNoIGFyZy4uLgotK2Z1bmNfbW9k ZV9maW5pc2ggKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgbGlicz0KLSsgICAgbGliZGly cz0KLSsgICAgYWRtaW5jbWRzPQotKwotKyAgICBmb3Igb3B0IGluICIkbm9ub3B0IiAkezErIiRA In0KLSsgICAgZG8KLSsgICAgICBpZiB0ZXN0IC1kICIkb3B0IjsgdGhlbgotKwlmdW5jX2FwcGVu ZCBsaWJkaXJzICIgJG9wdCIKLSsKLSsgICAgICBlbGlmIHRlc3QgLWYgIiRvcHQiOyB0aGVuCi0r CWlmIGZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRvcHQiOyB0aGVuCi0rCSAgZnVuY19hcHBlbmQgbGli cyAiICRvcHQiCi0rCWVsc2UKLSsJICBmdW5jX3dhcm5pbmcgIlxgJG9wdCcgaXMgbm90IGEgdmFs aWQgbGlidG9vbCBhcmNoaXZlIgotKwlmaQotKwotKyAgICAgIGVsc2UKLSsJZnVuY19mYXRhbF9l cnJvciAiaW52YWxpZCBhcmd1bWVudCBcYCRvcHQnIgotKyAgICAgIGZpCi0rICAgIGRvbmUKLSsK LSsgICAgaWYgdGVzdCAtbiAiJGxpYnMiOyB0aGVuCi0rICAgICAgaWYgdGVzdCAtbiAiJGx0X3N5 c3Jvb3QiOyB0aGVuCi0rICAgICAgICBzeXNyb290X3JlZ2V4PWAkRUNITyAiJGx0X3N5c3Jvb3Qi IHwgJFNFRCAiJHNlZF9tYWtlX2xpdGVyYWxfcmVnZXgiYAotKyAgICAgICAgc3lzcm9vdF9jbWQ9 InMvXChbICddXCkkc3lzcm9vdF9yZWdleC9cMS9nOyIKLSsgICAgICBlbHNlCi0rICAgICAgICBz eXNyb290X2NtZD0KLSsgICAgICBmaQotKwotKyAgICAgICMgUmVtb3ZlIHN5c3Jvb3QgcmVmZXJl bmNlcwotKyAgICAgIGlmICRvcHRfZHJ5X3J1bjsgdGhlbgotKyAgICAgICAgZm9yIGxpYiBpbiAk bGliczsgZG8KLSsgICAgICAgICAgZWNobyAicmVtb3ZpbmcgcmVmZXJlbmNlcyB0byAkbHRfc3lz cm9vdCBhbmQgXGA9JyBwcmVmaXhlcyBmcm9tICRsaWIiCi0rICAgICAgICBkb25lCi0rICAgICAg ZWxzZQotKyAgICAgICAgdG1wZGlyPWBmdW5jX21rdGVtcGRpcmAKLSsgICAgICAgIGZvciBsaWIg aW4gJGxpYnM7IGRvCi0rCSAgc2VkIC1lICIke3N5c3Jvb3RfY21kfSBzL1woWyAnXS1bTFJdXCk9 L1wxL2c7IHMvXChbICddXCk9L1wxL2ciICRsaWIgXAotKwkgICAgPiAkdG1wZGlyL3RtcC1sYQot KwkgIG12IC1mICR0bXBkaXIvdG1wLWxhICRsaWIKLSsJZG9uZQotKyAgICAgICAgJHtSTX1yICIk dG1wZGlyIgotKyAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hf Y21kcyRmaW5pc2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCi0rICAgICAgZm9y IGxpYmRpciBpbiAkbGliZGlyczsgZG8KLSsJaWYgdGVzdCAtbiAiJGZpbmlzaF9jbWRzIjsgdGhl bgotKwkgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBmaW5pc2ggY29tbWFuZHMuCi0rCSAgZnVu Y19leGVjdXRlX2NtZHMgIiRmaW5pc2hfY21kcyIgJ2FkbWluY21kcz0iJGFkbWluY21kcwotKyci JGNtZCInIicKLSsJZmkKLSsJaWYgdGVzdCAtbiAiJGZpbmlzaF9ldmFsIjsgdGhlbgotKwkgICMg RG8gdGhlIHNpbmdsZSBmaW5pc2hfZXZhbC4KLSsJICBldmFsIGNtZHM9XCIkZmluaXNoX2V2YWxc IgotKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kcyIgfHwgZnVuY19hcHBlbmQgYWRtaW5j bWRzICIKLSsgICAgICAgJGNtZHMiCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICBmaQotKwotKyAg ICAjIEV4aXQgaGVyZSBpZiB0aGV5IHdhbnRlZCBzaWxlbnQgbW9kZS4KLSsgICAgJG9wdF9zaWxl bnQgJiYgZXhpdCAkRVhJVF9TVUNDRVNTCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hfY21k cyRmaW5pc2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCi0rICAgICAgZWNobyAi LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSIKLSsgICAgICBlY2hvICJMaWJyYXJpZXMgaGF2ZSBiZWVuIGluc3RhbGxl ZCBpbjoiCi0rICAgICAgZm9yIGxpYmRpciBpbiAkbGliZGlyczsgZG8KLSsJJEVDSE8gIiAgICRs aWJkaXIiCi0rICAgICAgZG9uZQotKyAgICAgIGVjaG8KLSsgICAgICBlY2hvICJJZiB5b3UgZXZl ciBoYXBwZW4gdG8gd2FudCB0byBsaW5rIGFnYWluc3QgaW5zdGFsbGVkIGxpYnJhcmllcyIKLSsg ICAgICBlY2hvICJpbiBhIGdpdmVuIGRpcmVjdG9yeSwgTElCRElSLCB5b3UgbXVzdCBlaXRoZXIg dXNlIGxpYnRvb2wsIGFuZCIKLSsgICAgICBlY2hvICJzcGVjaWZ5IHRoZSBmdWxsIHBhdGhuYW1l IG9mIHRoZSBsaWJyYXJ5LCBvciB1c2UgdGhlIFxgLUxMSUJESVInIgotKyAgICAgIGVjaG8gImZs YWcgZHVyaW5nIGxpbmtpbmcgYW5kIGRvIGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nOiIK LSsgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsJZWNobyAiICAgLSBh ZGQgTElCRElSIHRvIHRoZSBcYCRzaGxpYnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIK LSsJZWNobyAiICAgICBkdXJpbmcgZXhlY3V0aW9uIgotKyAgICAgIGZpCi0rICAgICAgaWYgdGVz dCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgotKwllY2hvICIgICAtIGFkZCBMSUJESVIgdG8gdGhl IFxgJHJ1bnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKLSsJZWNobyAiICAgICBkdXJp bmcgbGlua2luZyIKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjIjsgdGhlbgotKwlsaWJkaXI9TElCRElSCi0rCWV2YWwgZmxhZz1cIiRoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLSsKLSsJJEVDSE8gIiAgIC0gdXNlIHRoZSBcYCRmbGFn JyBsaW5rZXIgZmxhZyIKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgLW4gIiRhZG1pbmNtZHMi OyB0aGVuCi0rCSRFQ0hPICIgICAtIGhhdmUgeW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBydW4g dGhlc2UgY29tbWFuZHM6JGFkbWluY21kcyIKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgLWYg L2V0Yy9sZC5zby5jb25mOyB0aGVuCi0rCWVjaG8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1p bmlzdHJhdG9yIGFkZCBMSUJESVIgdG8gXGAvZXRjL2xkLnNvLmNvbmYnIgotKyAgICAgIGZpCi0r ICAgICAgZWNobwotKwotKyAgICAgIGVjaG8gIlNlZSBhbnkgb3BlcmF0aW5nIHN5c3RlbSBkb2N1 bWVudGF0aW9uIGFib3V0IHNoYXJlZCBsaWJyYXJpZXMgZm9yIgotKyAgICAgIGNhc2UgJGhvc3Qg aW4KLSsJc29sYXJpczIuWzY3ODldfHNvbGFyaXMyLjFbMC05XSkKLSsJICBlY2hvICJtb3JlIGlu Zm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSwgY3JsZSgxKSBhbmQgbGQuc28oOCkgbWFudWFs IgotKwkgIGVjaG8gInBhZ2VzLiIKLSsJICA7OwotKwkqKQotKwkgIGVjaG8gIm1vcmUgaW5mb3Jt YXRpb24sIHN1Y2ggYXMgdGhlIGxkKDEpIGFuZCBsZC5zbyg4KSBtYW51YWwgcGFnZXMuIgotKwkg IDs7Ci0rICAgICAgZXNhYwotKyAgICAgIGVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0rICAgIGZpCi0r ICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotK30KLSsKLSt0ZXN0ICIkb3B0X21vZGUiID0gZmluaXNo ICYmIGZ1bmNfbW9kZV9maW5pc2ggJHsxKyIkQCJ9Ci0rCi0rCi0rIyBmdW5jX21vZGVfaW5zdGFs bCBhcmcuLi4KLStmdW5jX21vZGVfaW5zdGFsbCAoKQotK3sKLSsgICAgJG9wdF9kZWJ1ZwotKyAg ICAjIFRoZXJlIG1heSBiZSBhbiBvcHRpb25hbCBzaCgxKSBhcmd1bWVudCBhdCB0aGUgYmVnaW5u aW5nIG9mCi0rICAgICMgaW5zdGFsbF9wcm9nIChlc3BlY2lhbGx5IG9uIFdpbmRvd3MgTlQpLgot KyAgICBpZiB0ZXN0ICIkbm9ub3B0IiA9ICIkU0hFTEwiIHx8IHRlc3QgIiRub25vcHQiID0gL2Jp bi9zaCB8fAotKyAgICAgICAjIEFsbG93IHRoZSB1c2Ugb2YgR05VIHNodG9vbCdzIGluc3RhbGwg Y29tbWFuZC4KLSsgICAgICAgY2FzZSAkbm9ub3B0IGluICpzaHRvb2wqKSA6OzsgKikgZmFsc2U7 OyBlc2FjOyB0aGVuCi0rICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIGl0LgotKyAgICAgIGZ1 bmNfcXVvdGVfZm9yX2V2YWwgIiRub25vcHQiCi0rICAgICAgaW5zdGFsbF9wcm9nPSIkZnVuY19x dW90ZV9mb3JfZXZhbF9yZXN1bHQgIgotKyAgICAgIGFyZz0kMQotKyAgICAgIHNoaWZ0Ci0rICAg IGVsc2UKLSsgICAgICBpbnN0YWxsX3Byb2c9Ci0rICAgICAgYXJnPSRub25vcHQKLSsgICAgZmkK LSsKLSsgICAgIyBUaGUgcmVhbCBmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgdGhlIG5hbWUgb2Yg dGhlIGluc3RhbGxhdGlvbiBwcm9ncmFtLgotKyAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgaXQu Ci0rICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0rICAgIGZ1bmNfYXBwZW5kIGluc3Rh bGxfcHJvZyAiJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKyAgICBpbnN0YWxsX3NoYXJl ZF9wcm9nPSRpbnN0YWxsX3Byb2cKLSsgICAgY2FzZSAiICRpbnN0YWxsX3Byb2cgIiBpbgotKyAg ICAgICpbXFxcIC9dY3BcICopIGluc3RhbGxfY3A9OiA7OwotKyAgICAgICopIGluc3RhbGxfY3A9 ZmFsc2UgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIFdlIG5lZWQgdG8gYWNjZXB0IGF0IGxlYXN0 IGFsbCB0aGUgQlNEIGluc3RhbGwgZmxhZ3MuCi0rICAgIGRlc3Q9Ci0rICAgIGZpbGVzPQotKyAg ICBvcHRzPQotKyAgICBwcmV2PQotKyAgICBpbnN0YWxsX3R5cGU9Ci0rICAgIGlzZGlyPW5vCi0r ICAgIHN0cmlwbWU9Ci0rICAgIG5vX21vZGU9OgotKyAgICBmb3IgYXJnCi0rICAgIGRvCi0rICAg ICAgYXJnMj0KLSsgICAgICBpZiB0ZXN0IC1uICIkZGVzdCI7IHRoZW4KLSsJZnVuY19hcHBlbmQg ZmlsZXMgIiAkZGVzdCIKLSsJZGVzdD0kYXJnCi0rCWNvbnRpbnVlCi0rICAgICAgZmkKLSsKLSsg ICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAtZCkgaXNkaXI9eWVzIDs7Ci0rICAgICAgLWYpCi0r CWlmICRpbnN0YWxsX2NwOyB0aGVuIDo7IGVsc2UKLSsJICBwcmV2PSRhcmcKLSsJZmkKLSsJOzsK LSsgICAgICAtZyB8IC1tIHwgLW8pCi0rCXByZXY9JGFyZwotKwk7OwotKyAgICAgIC1zKQotKwlz dHJpcG1lPSIgLXMiCi0rCWNvbnRpbnVlCi0rCTs7Ci0rICAgICAgLSopCi0rCTs7Ci0rICAgICAg KikKLSsJIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRlZCBhbiBhcmd1bWVudCwgdGhlbiBz a2lwIGl0LgotKwlpZiB0ZXN0IC1uICIkcHJldiI7IHRoZW4KLSsJICBpZiB0ZXN0ICJ4JHByZXYi ID0geC1tICYmIHRlc3QgLW4gIiRpbnN0YWxsX292ZXJyaWRlX21vZGUiOyB0aGVuCi0rCSAgICBh cmcyPSRpbnN0YWxsX292ZXJyaWRlX21vZGUKLSsJICAgIG5vX21vZGU9ZmFsc2UKLSsJICBmaQot KwkgIHByZXY9Ci0rCWVsc2UKLSsJICBkZXN0PSRhcmcKLSsJICBjb250aW51ZQotKwlmaQotKwk7 OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgdGhlIGFyZ3Vt ZW50LgotKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0rICAgICAgZnVuY19hcHBl bmQgaW5zdGFsbF9wcm9nICIgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKyAgICAgIGlm IHRlc3QgLW4gIiRhcmcyIjsgdGhlbgotKwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnMiIKLSsg ICAgICBmaQotKyAgICAgIGZ1bmNfYXBwZW5kIGluc3RhbGxfc2hhcmVkX3Byb2cgIiAkZnVuY19x dW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rICAgIGRvbmUKLSsKLSsgICAgdGVzdCAteiAiJGluc3Rh bGxfcHJvZyIgJiYgXAotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBh biBpbnN0YWxsIHByb2dyYW0iCi0rCi0rICAgIHRlc3QgLW4gIiRwcmV2IiAmJiBcCi0rICAgICAg ZnVuY19mYXRhbF9oZWxwICJ0aGUgXGAkcHJldicgb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50 IgotKwotKyAgICBpZiB0ZXN0IC1uICIkaW5zdGFsbF9vdmVycmlkZV9tb2RlIiAmJiAkbm9fbW9k ZTsgdGhlbgotKyAgICAgIGlmICRpbnN0YWxsX2NwOyB0aGVuIDo7IGVsc2UKLSsJZnVuY19xdW90 ZV9mb3JfZXZhbCAiJGluc3RhbGxfb3ZlcnJpZGVfbW9kZSIKLSsJZnVuY19hcHBlbmQgaW5zdGFs bF9zaGFyZWRfcHJvZyAiIC1tICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsgICAgICBm aQotKyAgICBmaQotKwotKyAgICBpZiB0ZXN0IC16ICIkZmlsZXMiOyB0aGVuCi0rICAgICAgaWYg dGVzdCAteiAiJGRlc3QiOyB0aGVuCi0rCWZ1bmNfZmF0YWxfaGVscCAibm8gZmlsZSBvciBkZXN0 aW5hdGlvbiBzcGVjaWZpZWQiCi0rICAgICAgZWxzZQotKwlmdW5jX2ZhdGFsX2hlbHAgInlvdSBt dXN0IHNwZWNpZnkgYSBkZXN0aW5hdGlvbiIKLSsgICAgICBmaQotKyAgICBmaQotKwotKyAgICAj IFN0cmlwIGFueSB0cmFpbGluZyBzbGFzaCBmcm9tIHRoZSBkZXN0aW5hdGlvbi4KLSsgICAgZnVu Y19zdHJpcG5hbWUgJycgJy8nICIkZGVzdCIKLSsgICAgZGVzdD0kZnVuY19zdHJpcG5hbWVfcmVz dWx0Ci0rCi0rICAgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGlzIGEgZGly ZWN0b3J5LgotKyAgICB0ZXN0IC1kICIkZGVzdCIgJiYgaXNkaXI9eWVzCi0rICAgIGlmIHRlc3Qg IiRpc2RpciIgPSB5ZXM7IHRoZW4KLSsgICAgICBkZXN0ZGlyPSIkZGVzdCIKLSsgICAgICBkZXN0 bmFtZT0KLSsgICAgZWxzZQotKyAgICAgIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRkZXN0 IiAiIiAiLiIKLSsgICAgICBkZXN0ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsgICAgICBk ZXN0bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKwotKyAgICAgICMgTm90IGEgZGlyZWN0 b3J5LCBzbyBjaGVjayB0byBzZWUgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBmaWxlIHNwZWNpZmll ZC4KLSsgICAgICBzZXQgZHVtbXkgJGZpbGVzOyBzaGlmdAotKyAgICAgIHRlc3QgIiQjIiAtZ3Qg MSAmJiBcCi0rCWZ1bmNfZmF0YWxfaGVscCAiXGAkZGVzdCcgaXMgbm90IGEgZGlyZWN0b3J5Igot KyAgICBmaQotKyAgICBjYXNlICRkZXN0ZGlyIGluCi0rICAgIFtcXC9dKiB8IFtBLVphLXpdOltc XC9dKikgOzsKLSsgICAgKikKLSsgICAgICBmb3IgZmlsZSBpbiAkZmlsZXM7IGRvCi0rCWNhc2Ug JGZpbGUgaW4KLSsJKi5sbykgOzsKLSsJKikKLSsJICBmdW5jX2ZhdGFsX2hlbHAgIlxgJGRlc3Rk aXInIG11c3QgYmUgYW4gYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUiCi0rCSAgOzsKLSsJZXNhYwot KyAgICAgIGRvbmUKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgICMgVGhpcyB2YXJpYWJs ZSB0ZWxscyB3cmFwcGVyIHNjcmlwdHMganVzdCB0byBzZXQgdmFyaWFibGVzIHJhdGhlcgotKyAg ICAjIHRoYW4gcnVubmluZyB0aGVpciBwcm9ncmFtcy4KLSsgICAgbGlidG9vbF9pbnN0YWxsX21h Z2ljPSIkbWFnaWMiCi0rCi0rICAgIHN0YXRpY2xpYnM9Ci0rICAgIGZ1dHVyZV9saWJkaXJzPQot KyAgICBjdXJyZW50X2xpYmRpcnM9Ci0rICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KLSsKLSsg ICAgICAjIERvIGVhY2ggaW5zdGFsbGF0aW9uLgotKyAgICAgIGNhc2UgJGZpbGUgaW4KLSsgICAg ICAqLiRsaWJleHQpCi0rCSMgRG8gdGhlIHN0YXRpYyBsaWJyYXJpZXMgbGF0ZXIuCi0rCWZ1bmNf YXBwZW5kIHN0YXRpY2xpYnMgIiAkZmlsZSIKLSsJOzsKLSsKLSsgICAgICAqLmxhKQotKwlmdW5j X3Jlc29sdmVfc3lzcm9vdCAiJGZpbGUiCi0rCWZpbGU9JGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jl c3VsdAotKwotKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBh cmNoaXZlLgotKwlmdW5jX2xhbGliX3Vuc2FmZV9wICIkZmlsZSIgXAotKwkgIHx8IGZ1bmNfZmF0 YWxfaGVscCAiXGAkZmlsZScgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgotKwotKwls aWJyYXJ5X25hbWVzPQotKwlvbGRfbGlicmFyeT0KLSsJcmVsaW5rX2NvbW1hbmQ9Ci0rCWZ1bmNf c291cmNlICIkZmlsZSIKLSsKLSsJIyBBZGQgdGhlIGxpYmRpciB0byBjdXJyZW50X2xpYmRpcnMg aWYgaXQgaXMgdGhlIGRlc3RpbmF0aW9uLgotKwlpZiB0ZXN0ICJYJGRlc3RkaXIiID0gIlgkbGli ZGlyIjsgdGhlbgotKwkgIGNhc2UgIiRjdXJyZW50X2xpYmRpcnMgIiBpbgotKwkgICoiICRsaWJk aXIgIiopIDs7Ci0rCSAgKikgZnVuY19hcHBlbmQgY3VycmVudF9saWJkaXJzICIgJGxpYmRpciIg OzsKLSsJICBlc2FjCi0rCWVsc2UKLSsJICAjIE5vdGUgdGhlIGxpYmRpciBhcyBhIGZ1dHVyZSBs aWJkaXIuCi0rCSAgY2FzZSAiJGZ1dHVyZV9saWJkaXJzICIgaW4KLSsJICAqIiAkbGliZGlyICIq KSA7OwotKwkgICopIGZ1bmNfYXBwZW5kIGZ1dHVyZV9saWJkaXJzICIgJGxpYmRpciIgOzsKLSsJ ICBlc2FjCi0rCWZpCi0rCi0rCWZ1bmNfZGlybmFtZSAiJGZpbGUiICIvIiAiIgotKwlkaXI9IiRm dW5jX2Rpcm5hbWVfcmVzdWx0IgotKwlmdW5jX2FwcGVuZCBkaXIgIiRvYmpkaXIiCi0rCi0rCWlm IHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KLSsJICAjIERldGVybWluZSB0aGUgcHJl Zml4IHRoZSB1c2VyIGhhcyBhcHBsaWVkIHRvIG91ciBmdXR1cmUgZGlyLgotKwkgIGluc3RfcHJl Zml4X2Rpcj1gJEVDSE8gIiRkZXN0ZGlyIiB8ICRTRUQgLWUgInMlJGxpYmRpclwkJSUiYAotKwot KwkgICMgRG9uJ3QgYWxsb3cgdGhlIHVzZXIgdG8gcGxhY2UgdXMgb3V0c2lkZSBvZiBvdXIgZXhw ZWN0ZWQKLSsJICAjIGxvY2F0aW9uIGIvYyB0aGlzIHByZXZlbnRzIGZpbmRpbmcgZGVwZW5kZW50 IGxpYnJhcmllcyB0aGF0Ci0rCSAgIyBhcmUgaW5zdGFsbGVkIHRvIHRoZSBzYW1lIHByZWZpeC4K LSsJICAjIEF0IHByZXNlbnQsIHRoaXMgY2hlY2sgZG9lc24ndCBhZmZlY3Qgd2luZG93cyAuZGxs J3MgdGhhdAotKwkgICMgYXJlIGluc3RhbGxlZCBpbnRvICRsaWJkaXIvLi4vYmluIChjdXJyZW50 bHksIHRoYXQgd29ya3MgZmluZSkKLSsJICAjIGJ1dCBpdCdzIHNvbWV0aGluZyB0byBrZWVwIGFu IGV5ZSBvbi4KLSsJICB0ZXN0ICIkaW5zdF9wcmVmaXhfZGlyIiA9ICIkZGVzdGRpciIgJiYgXAot KwkgICAgZnVuY19mYXRhbF9lcnJvciAiZXJyb3I6IGNhbm5vdCBpbnN0YWxsIFxgJGZpbGUnIHRv IGEgZGlyZWN0b3J5IG5vdCBlbmRpbmcgaW4gJGxpYmRpciIKLSsKLSsJICBpZiB0ZXN0IC1uICIk aW5zdF9wcmVmaXhfZGlyIjsgdGhlbgotKwkgICAgIyBTdGljayB0aGUgaW5zdF9wcmVmaXhfZGly IGRhdGEgaW50byB0aGUgbGluayBjb21tYW5kLgotKwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hP ICIkcmVsaW5rX2NvbW1hbmQiIHwgJFNFRCAicyVAaW5zdF9wcmVmaXhfZGlyQCUtaW5zdC1wcmVm aXgtZGlyICRpbnN0X3ByZWZpeF9kaXIlImAKLSsJICBlbHNlCi0rCSAgICByZWxpbmtfY29tbWFu ZD1gJEVDSE8gIiRyZWxpbmtfY29tbWFuZCIgfCAkU0VEICJzJUBpbnN0X3ByZWZpeF9kaXJAJSUi YAotKwkgIGZpCi0rCi0rCSAgZnVuY193YXJuaW5nICJyZWxpbmtpbmcgXGAkZmlsZSciCi0rCSAg ZnVuY19zaG93X2V2YWwgIiRyZWxpbmtfY29tbWFuZCIgXAotKwkgICAgJ2Z1bmNfZmF0YWxfZXJy b3IgImVycm9yOiByZWxpbmsgXGAkZmlsZSdcJycgd2l0aCB0aGUgYWJvdmUgY29tbWFuZCBiZWZv cmUgaW5zdGFsbGluZyBpdCInCi0rCWZpCi0rCi0rCSMgU2VlIHRoZSBuYW1lcyBvZiB0aGUgc2hh cmVkIGxpYnJhcnkuCi0rCXNldCBkdW1teSAkbGlicmFyeV9uYW1lczsgc2hpZnQKLSsJaWYgdGVz dCAtbiAiJDEiOyB0aGVuCi0rCSAgcmVhbG5hbWU9IiQxIgotKwkgIHNoaWZ0Ci0rCi0rCSAgc3Jj bmFtZT0iJHJlYWxuYW1lIgotKwkgIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCIgJiYgc3JjbmFt ZT0iJHJlYWxuYW1lIlQKLSsKLSsJICAjIEluc3RhbGwgdGhlIHNoYXJlZCBsaWJyYXJ5IGFuZCBi dWlsZCB0aGUgc3ltbGlua3MuCi0rCSAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3NoYXJlZF9w cm9nICRkaXIvJHNyY25hbWUgJGRlc3RkaXIvJHJlYWxuYW1lIiBcCi0rCSAgICAgICdleGl0ICQ/ JwotKwkgIHRzdHJpcG1lPSIkc3RyaXBtZSIKLSsJICBjYXNlICRob3N0X29zIGluCi0rCSAgY3ln d2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKwkgICAgY2FzZSAkcmVhbG5hbWUgaW4K LSsJICAgICouZGxsLmEpCi0rCSAgICAgIHRzdHJpcG1lPSIiCi0rCSAgICAgIDs7Ci0rCSAgICBl c2FjCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICBpZiB0ZXN0IC1uICIkdHN0cmlwbWUiICYmIHRl c3QgLW4gIiRzdHJpcGxpYiI7IHRoZW4KLSsJICAgIGZ1bmNfc2hvd19ldmFsICIkc3RyaXBsaWIg JGRlc3RkaXIvJHJlYWxuYW1lIiAnZXhpdCAkPycKLSsJICBmaQotKwotKwkgIGlmIHRlc3QgIiQj IiAtZ3QgMDsgdGhlbgotKwkgICAgIyBEZWxldGUgdGhlIG9sZCBzeW1saW5rcywgYW5kIGNyZWF0 ZSBuZXcgb25lcy4KLSsJICAgICMgVHJ5IGBsbiAtc2YnIGZpcnN0LCBiZWNhdXNlIHRoZSBgbG4n IGJpbmFyeSBtaWdodCBkZXBlbmQgb24KLSsJICAgICMgdGhlIHN5bWxpbmsgd2UgcmVwbGFjZSEg IFNvbGFyaXMgL2Jpbi9sbiBkb2VzIG5vdCB1bmRlcnN0YW5kIC1mLAotKwkgICAgIyBzbyB3ZSBh bHNvIG5lZWQgdG8gdHJ5IHJtICYmIGxuIC1zLgotKwkgICAgZm9yIGxpbmtuYW1lCi0rCSAgICBk bwotKwkgICAgICB0ZXN0ICIkbGlua25hbWUiICE9ICIkcmVhbG5hbWUiIFwKLSsJCSYmIGZ1bmNf c2hvd19ldmFsICIoY2QgJGRlc3RkaXIgJiYgeyAkTE5fUyAtZiAkcmVhbG5hbWUgJGxpbmtuYW1l IHx8IHsgJFJNICRsaW5rbmFtZSAmJiAkTE5fUyAkcmVhbG5hbWUgJGxpbmtuYW1lOyB9OyB9KSIK LSsJICAgIGRvbmUKLSsJICBmaQotKwotKwkgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0 aW5zdGFsbCBjb21tYW5kcy4KLSsJICBsaWI9IiRkZXN0ZGlyLyRyZWFsbmFtZSIKLSsJICBmdW5j X2V4ZWN1dGVfY21kcyAiJHBvc3RpbnN0YWxsX2NtZHMiICdleGl0ICQ/JwotKwlmaQotKwotKwkj IEluc3RhbGwgdGhlIHBzZXVkby1saWJyYXJ5IGZvciBpbmZvcm1hdGlvbiBwdXJwb3Nlcy4KLSsJ ZnVuY19iYXNlbmFtZSAiJGZpbGUiCi0rCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJ aW5zdG5hbWU9IiRkaXIvJG5hbWUiaQotKwlmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAk aW5zdG5hbWUgJGRlc3RkaXIvJG5hbWUiICdleGl0ICQ/JwotKwotKwkjIE1heWJlIGluc3RhbGwg dGhlIHN0YXRpYyBsaWJyYXJ5LCB0b28uCi0rCXRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgZnVu Y19hcHBlbmQgc3RhdGljbGlicyAiICRkaXIvJG9sZF9saWJyYXJ5IgotKwk7OwotKwotKyAgICAg ICoubG8pCi0rCSMgSW5zdGFsbCAoaS5lLiBjb3B5KSBhIGxpYnRvb2wgb2JqZWN0LgotKwotKwkj IEZpZ3VyZSBvdXQgZGVzdGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBz cGVjaWZpZWQuCi0rCWlmIHRlc3QgLW4gIiRkZXN0bmFtZSI7IHRoZW4KLSsJICBkZXN0ZmlsZT0i JGRlc3RkaXIvJGRlc3RuYW1lIgotKwllbHNlCi0rCSAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCi0r CSAgZGVzdGZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJICBkZXN0ZmlsZT0iJGRlc3Rk aXIvJGRlc3RmaWxlIgotKwlmaQotKwotKwkjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgZGVzdGlu YXRpb24gb2xkLXN0eWxlIG9iamVjdCBmaWxlLgotKwljYXNlICRkZXN0ZmlsZSBpbgotKwkqLmxv KQotKwkgIGZ1bmNfbG8ybyAiJGRlc3RmaWxlIgotKwkgIHN0YXRpY2Rlc3Q9JGZ1bmNfbG8yb19y ZXN1bHQKLSsJICA7OwotKwkqLiRvYmpleHQpCi0rCSAgc3RhdGljZGVzdD0iJGRlc3RmaWxlIgot KwkgIGRlc3RmaWxlPQotKwkgIDs7Ci0rCSopCi0rCSAgZnVuY19mYXRhbF9oZWxwICJjYW5ub3Qg Y29weSBhIGxpYnRvb2wgb2JqZWN0IHRvIFxgJGRlc3RmaWxlJyIKLSsJICA7OwotKwllc2FjCi0r Ci0rCSMgSW5zdGFsbCB0aGUgbGlidG9vbCBvYmplY3QgaWYgcmVxdWVzdGVkLgotKwl0ZXN0IC1u ICIkZGVzdGZpbGUiICYmIFwKLSsJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkZmls ZSAkZGVzdGZpbGUiICdleGl0ICQ/JwotKwotKwkjIEluc3RhbGwgdGhlIG9sZCBvYmplY3QgaWYg ZW5hYmxlZC4KLSsJaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgotKwkgICMg RGVkdWNlIHRoZSBuYW1lIG9mIHRoZSBvbGQtc3R5bGUgb2JqZWN0IGZpbGUuCi0rCSAgZnVuY19s bzJvICIkZmlsZSIKLSsJICBzdGF0aWNvYmo9JGZ1bmNfbG8yb19yZXN1bHQKLSsJICBmdW5jX3No b3dfZXZhbCAiJGluc3RhbGxfcHJvZyBcJHN0YXRpY29iaiBcJHN0YXRpY2Rlc3QiICdleGl0ICQ/ JwotKwlmaQotKwlleGl0ICRFWElUX1NVQ0NFU1MKLSsJOzsKLSsKLSsgICAgICAqKQotKwkjIEZp Z3VyZSBvdXQgZGVzdGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVj aWZpZWQuCi0rCWlmIHRlc3QgLW4gIiRkZXN0bmFtZSI7IHRoZW4KLSsJICBkZXN0ZmlsZT0iJGRl c3RkaXIvJGRlc3RuYW1lIgotKwllbHNlCi0rCSAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCi0rCSAg ZGVzdGZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJICBkZXN0ZmlsZT0iJGRlc3RkaXIv JGRlc3RmaWxlIgotKwlmaQotKwotKwkjIElmIHRoZSBmaWxlIGlzIG1pc3NpbmcsIGFuZCB0aGVy ZSBpcyBhIC5leGUgb24gdGhlIGVuZCwgc3RyaXAgaXQKLSsJIyBiZWNhdXNlIGl0IGlzIG1vc3Qg bGlrZWx5IGEgbGlidG9vbCBzY3JpcHQgd2UgYWN0dWFsbHkgd2FudCB0bwotKwkjIGluc3RhbGwK LSsJc3RyaXBwZWRfZXh0PSIiCi0rCWNhc2UgJGZpbGUgaW4KLSsJICAqLmV4ZSkKLSsJICAgIGlm IHRlc3QgISAtZiAiJGZpbGUiOyB0aGVuCi0rCSAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhl JyAiJGZpbGUiCi0rCSAgICAgIGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgICAgICBz dHJpcHBlZF9leHQ9Ii5leGUiCi0rCSAgICBmaQotKwkgICAgOzsKLSsJZXNhYwotKwotKwkjIERv IGEgdGVzdCB0byBzZWUgaWYgdGhpcyBpcyByZWFsbHkgYSBsaWJ0b29sIHByb2dyYW0uCi0rCWNh c2UgJGhvc3QgaW4KLSsJKmN5Z3dpbiogfCAqbWluZ3cqKQotKwkgICAgaWYgZnVuY19sdHdyYXBw ZXJfZXhlY3V0YWJsZV9wICIkZmlsZSI7IHRoZW4KLSsJICAgICAgZnVuY19sdHdyYXBwZXJfc2Ny aXB0bmFtZSAiJGZpbGUiCi0rCSAgICAgIHdyYXBwZXI9JGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5h bWVfcmVzdWx0Ci0rCSAgICBlbHNlCi0rCSAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAi JGZpbGUiCi0rCSAgICAgIHdyYXBwZXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgICAgZmkK LSsJICAgIDs7Ci0rCSopCi0rCSAgICB3cmFwcGVyPSRmaWxlCi0rCSAgICA7OwotKwllc2FjCi0r CWlmIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkd3JhcHBlciI7IHRoZW4KLSsJICBub3RpbnN0 X2RlcGxpYnM9Ci0rCSAgcmVsaW5rX2NvbW1hbmQ9Ci0rCi0rCSAgZnVuY19zb3VyY2UgIiR3cmFw cGVyIgotKwotKwkgICMgQ2hlY2sgdGhlIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBoYXZlIGJlZW4g c2V0LgotKwkgIHRlc3QgLXogIiRnZW5lcmF0ZWRfYnlfbGlidG9vbF92ZXJzaW9uIiAmJiBcCi0r CSAgICBmdW5jX2ZhdGFsX2Vycm9yICJpbnZhbGlkIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgXGAk d3JhcHBlciciCi0rCi0rCSAgZmluYWxpemU9eWVzCi0rCSAgZm9yIGxpYiBpbiAkbm90aW5zdF9k ZXBsaWJzOyBkbwotKwkgICAgIyBDaGVjayB0byBzZWUgdGhhdCBlYWNoIGxpYnJhcnkgaXMgaW5z dGFsbGVkLgotKwkgICAgbGliZGlyPQotKwkgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KLSsJ ICAgICAgZnVuY19zb3VyY2UgIiRsaWIiCi0rCSAgICBmaQotKwkgICAgbGliZmlsZT0iJGxpYmRp ci8iYCRFQ0hPICIkbGliIiB8ICRTRUQgJ3MlXi4qLyUlZydgICMjIyB0ZXN0c3VpdGU6IHNraXAg bmVzdGVkIHF1b3RpbmcgdGVzdAotKwkgICAgaWYgdGVzdCAtbiAiJGxpYmRpciIgJiYgdGVzdCAh IC1mICIkbGliZmlsZSI7IHRoZW4KLSsJICAgICAgZnVuY193YXJuaW5nICJcYCRsaWInIGhhcyBu b3QgYmVlbiBpbnN0YWxsZWQgaW4gXGAkbGliZGlyJyIKLSsJICAgICAgZmluYWxpemU9bm8KLSsJ ICAgIGZpCi0rCSAgZG9uZQotKwotKwkgIHJlbGlua19jb21tYW5kPQotKwkgIGZ1bmNfc291cmNl ICIkd3JhcHBlciIKLSsKLSsJICBvdXRwdXRuYW1lPQotKwkgIGlmIHRlc3QgIiRmYXN0X2luc3Rh bGwiID0gbm8gJiYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgotKwkgICAgJG9wdF9k cnlfcnVuIHx8IHsKLSsJICAgICAgaWYgdGVzdCAiJGZpbmFsaXplIiA9IHllczsgdGhlbgotKwkg ICAgICAgIHRtcGRpcj1gZnVuY19ta3RlbXBkaXJgCi0rCQlmdW5jX2Jhc2VuYW1lICIkZmlsZSRz dHJpcHBlZF9leHQiCi0rCQlmaWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCSAgICAgICAg b3V0cHV0bmFtZT0iJHRtcGRpci8kZmlsZSIKLSsJICAgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1 dCBmaWxlIHNwZWNpZmljYXRpb24uCi0rCSAgICAgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIk cmVsaW5rX2NvbW1hbmQiIHwgJFNFRCAncyVAT1VUUFVUQCUnIiRvdXRwdXRuYW1lIiclZydgCi0r Ci0rCSAgICAgICAgJG9wdF9zaWxlbnQgfHwgewotKwkgICAgICAgICAgZnVuY19xdW90ZV9mb3Jf ZXhwYW5kICIkcmVsaW5rX2NvbW1hbmQiCi0rCQkgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90 ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKLSsJICAgICAgICB9Ci0rCSAgICAgICAgaWYgZXZhbCAiJHJl bGlua19jb21tYW5kIjsgdGhlbiA6Ci0rCSAgICAgICAgICBlbHNlCi0rCQkgIGZ1bmNfZXJyb3Ig ImVycm9yOiByZWxpbmsgXGAkZmlsZScgd2l0aCB0aGUgYWJvdmUgY29tbWFuZCBiZWZvcmUgaW5z dGFsbGluZyBpdCIKLSsJCSAgJG9wdF9kcnlfcnVuIHx8ICR7Uk19ciAiJHRtcGRpciIKLSsJCSAg Y29udGludWUKLSsJICAgICAgICBmaQotKwkgICAgICAgIGZpbGU9IiRvdXRwdXRuYW1lIgotKwkg ICAgICBlbHNlCi0rCSAgICAgICAgZnVuY193YXJuaW5nICJjYW5ub3QgcmVsaW5rIFxgJGZpbGUn IgotKwkgICAgICBmaQotKwkgICAgfQotKwkgIGVsc2UKLSsJICAgICMgSW5zdGFsbCB0aGUgYmlu YXJ5IHRoYXQgd2UgY29tcGlsZWQgZWFybGllci4KLSsJICAgIGZpbGU9YCRFQ0hPICIkZmlsZSRz dHJpcHBlZF9leHQiIHwgJFNFRCAicyVcKFteL10qXCkkJSRvYmpkaXIvXDElImAKLSsJICBmaQot KwlmaQotKwotKwkjIHJlbW92ZSAuZXhlIHNpbmNlIGN5Z3dpbiAvdXNyL2Jpbi9pbnN0YWxsIHdp bGwgYXBwZW5kIGFub3RoZXIKLSsJIyBvbmUgYW55d2F5Ci0rCWNhc2UgJGluc3RhbGxfcHJvZywk aG9zdCBpbgotKwkqL3Vzci9iaW4vaW5zdGFsbCosKmN5Z3dpbiopCi0rCSAgY2FzZSAkZmlsZTok ZGVzdGZpbGUgaW4KLSsJICAqLmV4ZToqLmV4ZSkKLSsJICAgICMgdGhpcyBpcyBvawotKwkgICAg OzsKLSsJICAqLmV4ZToqKQotKwkgICAgZGVzdGZpbGU9JGRlc3RmaWxlLmV4ZQotKwkgICAgOzsK LSsJICAqOiouZXhlKQotKwkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZGVzdGZpbGUi Ci0rCSAgICBkZXN0ZmlsZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCSAgICA7OwotKwkgIGVz YWMKLSsJICA7OwotKwllc2FjCi0rCWZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nXCRzdHJp cG1lIFwkZmlsZSBcJGRlc3RmaWxlIiAnZXhpdCAkPycKLSsJJG9wdF9kcnlfcnVuIHx8IGlmIHRl c3QgLW4gIiRvdXRwdXRuYW1lIjsgdGhlbgotKwkgICR7Uk19ciAiJHRtcGRpciIKLSsJZmkKLSsJ OzsKLSsgICAgICBlc2FjCi0rICAgIGRvbmUKLSsKLSsgICAgZm9yIGZpbGUgaW4gJHN0YXRpY2xp YnM7IGRvCi0rICAgICAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCi0rICAgICAgbmFtZT0iJGZ1bmNf YmFzZW5hbWVfcmVzdWx0IgotKwotKyAgICAgICMgU2V0IHVwIHRoZSByYW5saWIgcGFyYW1ldGVy cy4KLSsgICAgICBvbGRsaWI9IiRkZXN0ZGlyLyRuYW1lIgotKwotKyAgICAgIGZ1bmNfc2hvd19l dmFsICIkaW5zdGFsbF9wcm9nIFwkZmlsZSBcJG9sZGxpYiIgJ2V4aXQgJD8nCi0rCi0rICAgICAg aWYgdGVzdCAtbiAiJHN0cmlwbWUiICYmIHRlc3QgLW4gIiRvbGRfc3RyaXBsaWIiOyB0aGVuCi0r CWZ1bmNfc2hvd19ldmFsICIkb2xkX3N0cmlwbGliICRvbGRsaWIiICdleGl0ICQ/JwotKyAgICAg IGZpCi0rCi0rICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3RpbnN0YWxsIGNvbW1h bmRzLgotKyAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bvc3RpbnN0YWxsX2NtZHMiICdl eGl0ICQ/JwotKyAgICBkb25lCi0rCi0rICAgIHRlc3QgLW4gIiRmdXR1cmVfbGliZGlycyIgJiYg XAotKyAgICAgIGZ1bmNfd2FybmluZyAicmVtZW1iZXIgdG8gcnVuIFxgJHByb2duYW1lIC0tZmlu aXNoJGZ1dHVyZV9saWJkaXJzJyIKLSsKLSsgICAgaWYgdGVzdCAtbiAiJGN1cnJlbnRfbGliZGly cyI7IHRoZW4KLSsgICAgICAjIE1heWJlIGp1c3QgZG8gYSBkcnkgcnVuLgotKyAgICAgICRvcHRf ZHJ5X3J1biAmJiBjdXJyZW50X2xpYmRpcnM9IiAtbiRjdXJyZW50X2xpYmRpcnMiCi0rICAgICAg ZXhlY19jbWQ9JyRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1maW5pc2gkY3VycmVu dF9saWJkaXJzJwotKyAgICBlbHNlCi0rICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAgIGZp Ci0rfQotKwotK3Rlc3QgIiRvcHRfbW9kZSIgPSBpbnN0YWxsICYmIGZ1bmNfbW9kZV9pbnN0YWxs ICR7MSsiJEAifQotKwotKwotKyMgZnVuY19nZW5lcmF0ZV9kbHN5bXMgb3V0cHV0bmFtZSBvcmln aW5hdG9yIHBpY19wCi0rIyBFeHRyYWN0IHN5bWJvbHMgZnJvbSBkbHByZWZpbGVzIGFuZCBjcmVh dGUgJHtvdXRwdXRuYW1lfVMubyB3aXRoCi0rIyBhIGRscHJlb3BlbiBzeW1ib2wgdGFibGUuCi0r ZnVuY19nZW5lcmF0ZV9kbHN5bXMgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgbXlfb3V0 cHV0bmFtZT0iJDEiCi0rICAgIG15X29yaWdpbmF0b3I9IiQyIgotKyAgICBteV9waWNfcD0iJHsz LW5vfSIKLSsgICAgbXlfcHJlZml4PWAkRUNITyAiJG15X29yaWdpbmF0b3IiIHwgc2VkICdzJVte YS16QS1aMC05XSVfJWcnYAotKyAgICBteV9kbHN5bXM9Ci0rCi0rICAgIGlmIHRlc3QgLW4gIiRk bGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCi0rICAgICAg aWYgdGVzdCAtbiAiJE5NIiAmJiB0ZXN0IC1uICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgot KwlteV9kbHN5bXM9IiR7bXlfb3V0cHV0bmFtZX1TLmMiCi0rICAgICAgZWxzZQotKwlmdW5jX2Vy cm9yICJub3QgY29uZmlndXJlZCB0byBleHRyYWN0IGdsb2JhbCBzeW1ib2xzIGZyb20gZGxwcmVv cGVuZWQgZmlsZXMiCi0rICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAtbiAiJG15 X2Rsc3ltcyI7IHRoZW4KLSsgICAgICBjYXNlICRteV9kbHN5bXMgaW4KLSsgICAgICAiIikgOzsK LSsgICAgICAqLmMpCi0rCSMgRGlzY292ZXIgdGhlIG5saXN0IG9mIGVhY2ggb2YgdGhlIGRsZmls ZXMuCi0rCW5saXN0PSIkb3V0cHV0X29iamRpci8ke215X291dHB1dG5hbWV9Lm5tIgotKwotKwlm dW5jX3Nob3dfZXZhbCAiJFJNICRubGlzdCAke25saXN0fVMgJHtubGlzdH1UIgotKwotKwkjIFBh cnNlIHRoZSBuYW1lIGxpc3QgaW50byBhIHNvdXJjZSBmaWxlLgotKwlmdW5jX3ZlcmJvc2UgImNy ZWF0aW5nICRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCi0rCi0rCSRvcHRfZHJ5X3J1biB8fCAk RUNITyA+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAotKy8qICRteV9kbHN5bXMgLSBz eW1ib2wgcmVzb2x1dGlvbiB0YWJsZSBmb3IgXGAkbXlfb3V0cHV0bmFtZScgZGxzeW0gZW11bGF0 aW9uLiAqLwotKy8qIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFN UCkgJFZFUlNJT04gKi8KLSsKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gXCJDXCIgewot KyNlbmRpZgotKwotKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoKChfX0dOVUNfXyA9PSA0KSAm JiAoX19HTlVDX01JTk9SX18gPj0gNCkpIHx8IChfX0dOVUNfXyA+IDQpKQotKyNwcmFnbWEgR0ND IGRpYWdub3N0aWMgaWdub3JlZCBcIi1Xc3RyaWN0LXByb3RvdHlwZXNcIgotKyNlbmRpZgotKwot Ky8qIEtlZXAgdGhpcyBjb2RlIGluIHN5bmMgYmV0d2VlbiBsaWJ0b29sLm00LCBsdG1haW4sIGx0 X3N5c3RlbS5oLCBhbmQgdGVzdHMuICAqLwotKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5l ZChfX0NZR1dJTl9fKSB8fCBkZWZpbmVkKF9XSU4zMl9XQ0UpCi0rLyogREFUQSBpbXBvcnRzIGZy b20gRExMcyBvbiBXSU4zMiBjb24ndCBiZSBjb25zdCwgYmVjYXVzZSBydW50aW1lCi0rICAgcmVs b2NhdGlvbnMgYXJlIHBlcmZvcm1lZCAtLSBzZWUgbGQncyBkb2N1bWVudGF0aW9uIG9uIHBzZXVk by1yZWxvY3MuICAqLwotKyMgZGVmaW5lIExUX0RMU1lNX0NPTlNUCi0rI2VsaWYgZGVmaW5lZChf X29zZl9fKQotKy8qIFRoaXMgc3lzdGVtIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHJlbG9jYXRp b25zIGluIGNvbnN0IGRhdGEuICAqLwotKyMgZGVmaW5lIExUX0RMU1lNX0NPTlNUCi0rI2Vsc2UK LSsjIGRlZmluZSBMVF9ETFNZTV9DT05TVCBjb25zdAotKyNlbmRpZgotKwotKy8qIEV4dGVybmFs IHN5bWJvbCBkZWNsYXJhdGlvbnMgZm9yIHRoZSBjb21waWxlci4gKi9cCi0rIgotKwotKwlpZiB0 ZXN0ICIkZGxzZWxmIiA9IHllczsgdGhlbgotKwkgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBz eW1ib2wgbGlzdCBmb3IgXGAkb3V0cHV0JyIKLSsKLSsJICAkb3B0X2RyeV9ydW4gfHwgZWNobyAn OiBAUFJPR1JBTUAgJyA+ICIkbmxpc3QiCi0rCi0rCSAgIyBBZGQgb3VyIG93biBwcm9ncmFtIG9i amVjdHMgdG8gdGhlIHN5bWJvbCBsaXN0LgotKwkgIHByb2dmaWxlcz1gJEVDSE8gIiRvYmpzJG9s ZF9kZXBsaWJzIiB8ICRTUDJOTCB8ICRTRUQgIiRsbzJvIiB8ICROTDJTUGAKLSsJICBmb3IgcHJv Z2ZpbGUgaW4gJHByb2dmaWxlczsgZG8KLSsJICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkcHJvZ2Zp bGUiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCi0rCSAgICBmdW5jX3ZlcmJvc2UgImV4 dHJhY3RpbmcgZ2xvYmFsIEMgc3ltYm9scyBmcm9tIFxgJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3Vs dCciCi0rCSAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJE5NICRmdW5jX3RvX3Rvb2xfZmlsZV9y ZXN1bHQgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgotKwkgIGRvbmUKLSsKLSsJ ICBpZiB0ZXN0IC1uICIkZXhjbHVkZV9leHBzeW1zIjsgdGhlbgotKwkgICAgJG9wdF9kcnlfcnVu IHx8IHsKLSsJICAgICAgZXZhbCAnJEVHUkVQIC12ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRu bGlzdCIgPiAiJG5saXN0IlQnCi0rCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCIn Ci0rCSAgICB9Ci0rCSAgZmkKLSsKLSsJICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVn ZXgiOyB0aGVuCi0rCSAgICAkb3B0X2RyeV9ydW4gfHwgewotKwkgICAgICBldmFsICckRUdSRVAg LWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRubGlzdCIgPiAiJG5saXN0IlQnCi0rCSAgICAg IGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCInCi0rCSAgICB9Ci0rCSAgZmkKLSsKLSsJICAj IFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scwotKwkgIGlmIHRlc3QgLXogIiRl eHBvcnRfc3ltYm9scyI7IHRoZW4KLSsJICAgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRp ci8kb3V0cHV0bmFtZS5leHAiCi0rCSAgICAkb3B0X2RyeV9ydW4gfHwgewotKwkgICAgICAkUk0g JGV4cG9ydF9zeW1ib2xzCi0rCSAgICAgIGV2YWwgIiR7U0VEfSAtbiAtZSAnL146IEBQUk9HUkFN QCAkL2QnIC1lICdzL14uKiBcKC4qXCkkL1wxL3AnICInPCAiJG5saXN0IiA+ICIkZXhwb3J0X3N5 bWJvbHMiJwotKwkgICAgICBjYXNlICRob3N0IGluCi0rCSAgICAgICpjeWd3aW4qIHwgKm1pbmd3 KiB8ICpjZWdjYyogKQotKyAgICAgICAgICAgICAgICBldmFsICJlY2hvIEVYUE9SVFMgIic+ICIk b3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJwotKyAgICAgICAgICAgICAgICBldmFsICdj YXQgIiRleHBvcnRfc3ltYm9scyIgPj4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiIn Ci0rCSAgICAgICAgOzsKLSsJICAgICAgZXNhYwotKwkgICAgfQotKwkgIGVsc2UKLSsJICAgICRv cHRfZHJ5X3J1biB8fCB7Ci0rCSAgICAgIGV2YWwgIiR7U0VEfSAtZSAncy9cKFtdLlsqXiRdXCkv XFxcXFwxL2cnIC1lICdzL14vIC8nIC1lICdzLyQvJC8nIicgPCAiJGV4cG9ydF9zeW1ib2xzIiA+ ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAiJwotKwkgICAgICBldmFsICckR1JFUCAt ZiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIiA8ICIkbmxpc3QiID4gIiRubGlzdCJU JwotKwkgICAgICBldmFsICckTVYgIiRubGlzdCJUICIkbmxpc3QiJwotKwkgICAgICBjYXNlICRo b3N0IGluCi0rCSAgICAgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCi0rCSAgICAg ICAgICBldmFsICJlY2hvIEVYUE9SVFMgIic+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5k ZWYiJwotKwkgICAgICAgICAgZXZhbCAnY2F0ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8k b3V0cHV0bmFtZS5kZWYiJwotKwkgICAgICAgICAgOzsKLSsJICAgICAgZXNhYwotKwkgICAgfQot KwkgIGZpCi0rCWZpCi0rCi0rCWZvciBkbHByZWZpbGUgaW4gJGRscHJlZmlsZXM7IGRvCi0rCSAg ZnVuY192ZXJib3NlICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRkbHByZWZp bGUnIgotKwkgIGZ1bmNfYmFzZW5hbWUgIiRkbHByZWZpbGUiCi0rCSAgbmFtZT0iJGZ1bmNfYmFz ZW5hbWVfcmVzdWx0IgotKyAgICAgICAgICBjYXNlICRob3N0IGluCi0rCSAgICAqY3lnd2luKiB8 ICptaW5ndyogfCAqY2VnY2MqICkKLSsJICAgICAgIyBpZiBhbiBpbXBvcnQgbGlicmFyeSwgd2Ug bmVlZCB0byBvYnRhaW4gZGxuYW1lCi0rCSAgICAgIGlmIGZ1bmNfd2luMzJfaW1wb3J0X2xpYl9w ICIkZGxwcmVmaWxlIjsgdGhlbgotKwkgICAgICAgIGZ1bmNfdHJfc2ggIiRkbHByZWZpbGUiCi0r CSAgICAgICAgZXZhbCAiY3Vycl9sYWZpbGU9XCRsaWJmaWxlXyRmdW5jX3RyX3NoX3Jlc3VsdCIK LSsJICAgICAgICBkbHByZWZpbGVfZGxiYXNlbmFtZT0iIgotKwkgICAgICAgIGlmIHRlc3QgLW4g IiRjdXJyX2xhZmlsZSIgJiYgZnVuY19sYWxpYl9wICIkY3Vycl9sYWZpbGUiOyB0aGVuCi0rCSAg ICAgICAgICAjIFVzZSBzdWJzaGVsbCwgdG8gYXZvaWQgY2xvYmJlcmluZyBjdXJyZW50IHZhcmlh YmxlIHZhbHVlcwotKwkgICAgICAgICAgZGxwcmVmaWxlX2RsbmFtZT1gc291cmNlICIkY3Vycl9s YWZpbGUiICYmIGVjaG8gIiRkbG5hbWUiYAotKwkgICAgICAgICAgaWYgdGVzdCAtbiAiJGRscHJl ZmlsZV9kbG5hbWUiIDsgdGhlbgotKwkgICAgICAgICAgICBmdW5jX2Jhc2VuYW1lICIkZGxwcmVm aWxlX2RsbmFtZSIKLSsJICAgICAgICAgICAgZGxwcmVmaWxlX2RsYmFzZW5hbWU9IiRmdW5jX2Jh c2VuYW1lX3Jlc3VsdCIKLSsJICAgICAgICAgIGVsc2UKLSsJICAgICAgICAgICAgIyBubyBsYWZp bGUuIHVzZXIgZXhwbGljaXRseSByZXF1ZXN0ZWQgLWRscHJlb3BlbiA8aW1wb3J0IGxpYnJhcnk+ LgotKwkgICAgICAgICAgICAkc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQgIiRkbHByZWZpbGUi Ci0rCSAgICAgICAgICAgIGRscHJlZmlsZV9kbGJhc2VuYW1lPSRzaGFyZWRsaWJfZnJvbV9saW5r bGliX3Jlc3VsdAotKwkgICAgICAgICAgZmkKLSsJICAgICAgICBmaQotKwkgICAgICAgICRvcHRf ZHJ5X3J1biB8fCB7Ci0rCSAgICAgICAgICBpZiB0ZXN0IC1uICIkZGxwcmVmaWxlX2RsYmFzZW5h bWUiIDsgdGhlbgotKwkgICAgICAgICAgICBldmFsICckRUNITyAiOiAkZGxwcmVmaWxlX2RsYmFz ZW5hbWUiID4+ICIkbmxpc3QiJwotKwkgICAgICAgICAgZWxzZQotKwkgICAgICAgICAgICBmdW5j X3dhcm5pbmcgIkNvdWxkIG5vdCBjb21wdXRlIERMTCBuYW1lIGZyb20gJG5hbWUiCi0rCSAgICAg ICAgICAgIGV2YWwgJyRFQ0hPICI6ICRuYW1lICIgPj4gIiRubGlzdCInCi0rCSAgICAgICAgICBm aQotKwkgICAgICAgICAgZnVuY190b190b29sX2ZpbGUgIiRkbHByZWZpbGUiIGZ1bmNfY29udmVy dF9maWxlX21zeXNfdG9fdzMyCi0rCSAgICAgICAgICBldmFsICIkTk0gXCIkZnVuY190b190b29s X2ZpbGVfcmVzdWx0XCIgMj4vZGV2L251bGwgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwKLSsJICAg ICAgICAgICAgJFNFRCAtZSAnL0kgX19pbXAvZCcgLWUgJ3MvSSBfX25tXy9EIC87cy9fbm1fXy8v JyA+PiAnJG5saXN0JyIKLSsJICAgICAgICB9Ci0rCSAgICAgIGVsc2UgIyBub3QgYW4gaW1wb3J0 IGxpYgotKwkgICAgICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgICAgICAgICBldmFsICckRUNI TyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJwotKwkgICAgICAgICAgZnVuY190b190b29sX2ZpbGUg IiRkbHByZWZpbGUiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCi0rCSAgICAgICAgICBl dmFsICIkTk0gXCIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0XCIgMj4vZGV2L251bGwgfCAkZ2xv YmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgotKwkgICAgICAgIH0KLSsJICAgICAgZmkKLSsJ ICAgIDs7Ci0rCSAgICAqKQotKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgewotKwkgICAgICAgIGV2 YWwgJyRFQ0hPICI6ICRuYW1lICIgPj4gIiRubGlzdCInCi0rCSAgICAgICAgZnVuY190b190b29s X2ZpbGUgIiRkbHByZWZpbGUiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCi0rCSAgICAg ICAgZXZhbCAiJE5NIFwiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdFwiIDI+L2Rldi9udWxsIHwg JGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKLSsJICAgICAgfQotKwkgICAgOzsKLSsg ICAgICAgICAgZXNhYwotKwlkb25lCi0rCi0rCSRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgIyBNYWtl IHN1cmUgd2UgaGF2ZSBhdCBsZWFzdCBhbiBlbXB0eSBmaWxlLgotKwkgIHRlc3QgLWYgIiRubGlz dCIgfHwgOiA+ICIkbmxpc3QiCi0rCi0rCSAgaWYgdGVzdCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7 IHRoZW4KLSsJICAgICRFR1JFUCAtdiAiICgkZXhjbHVkZV9leHBzeW1zKSQiICIkbmxpc3QiID4g IiRubGlzdCJUCi0rCSAgICAkTVYgIiRubGlzdCJUICIkbmxpc3QiCi0rCSAgZmkKLSsKLSsJICAj IFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgotKwkgIGlmICRHUkVQIC12 ICJeOiAiIDwgIiRubGlzdCIgfAotKwkgICAgICBpZiBzb3J0IC1rIDMgPC9kZXYvbnVsbCA+L2Rl di9udWxsIDI+JjE7IHRoZW4KLSsJCXNvcnQgLWsgMwotKwkgICAgICBlbHNlCi0rCQlzb3J0ICsy Ci0rCSAgICAgIGZpIHwKLSsJICAgICAgdW5pcSA+ICIkbmxpc3QiUzsgdGhlbgotKwkgICAgOgot KwkgIGVsc2UKLSsJICAgICRHUkVQIC12ICJeOiAiIDwgIiRubGlzdCIgPiAiJG5saXN0IlMKLSsJ ICBmaQotKwotKwkgIGlmIHRlc3QgLWYgIiRubGlzdCJTOyB0aGVuCi0rCSAgICBldmFsICIkZ2xv YmFsX3N5bWJvbF90b19jZGVjbCInIDwgIiRubGlzdCJTID4+ICIkb3V0cHV0X29iamRpci8kbXlf ZGxzeW1zIicKLSsJICBlbHNlCi0rCSAgICBlY2hvICcvKiBOT05FICovJyA+PiAiJG91dHB1dF9v YmpkaXIvJG15X2Rsc3ltcyIKLSsJICBmaQotKwotKwkgIGVjaG8gPj4gIiRvdXRwdXRfb2JqZGly LyRteV9kbHN5bXMiICJcCi0rCi0rLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMg YW5kIHN5bWJvbHMuICAqLwotK3R5cGVkZWYgc3RydWN0IHsKLSsgIGNvbnN0IGNoYXIgKm5hbWU7 Ci0rICB2b2lkICphZGRyZXNzOwotK30gbHRfZGxzeW1saXN0OwotK2V4dGVybiBMVF9ETFNZTV9D T05TVCBsdF9kbHN5bWxpc3QKLStsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xz W107Ci0rTFRfRExTWU1fQ09OU1QgbHRfZGxzeW1saXN0Ci0rbHRfJHtteV9wcmVmaXh9X0xUWF9w cmVsb2FkZWRfc3ltYm9sc1tdID0KLSt7XAotKyAgeyBcIiRteV9vcmlnaW5hdG9yXCIsICh2b2lk ICopIDAgfSwiCi0rCi0rCSAgY2FzZSAkbmVlZF9saWJfcHJlZml4IGluCi0rCSAgbm8pCi0rCSAg ICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyIgPCAiJG5saXN0IiA+PiAi JG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGV2YWwg IiRnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgiIDwgIiRubGlzdCIg Pj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICBl Y2hvID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAotKyAgezAsICh2b2lkICopIDB9 Ci0rfTsKLSsKLSsvKiBUaGlzIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5r ZXIgKi8KLSsjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5ECi0rc3RhdGljIGNvbnN0IHZvaWQgKmx0 X3ByZWxvYWRlZF9zZXR1cCgpIHsKLSsgIHJldHVybiBsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxv YWRlZF9zeW1ib2xzOwotK30KLSsjZW5kaWYKLSsKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSt9Ci0r I2VuZGlmXAotKyIKLSsJfSAjICEkb3B0X2RyeV9ydW4KLSsKLSsJcGljX2ZsYWdfZm9yX3N5bXRh YmxlPQotKwljYXNlICIkY29tcGlsZV9jb21tYW5kICIgaW4KLSsJKiIgLXN0YXRpYyAiKikgOzsK LSsJKikKLSsJICBjYXNlICRob3N0IGluCi0rCSAgIyBjb21waWxpbmcgdGhlIHN5bWJvbCB0YWJs ZSBmaWxlIHdpdGggcGljX2ZsYWcgd29ya3MgYXJvdW5kCi0rCSAgIyBhIEZyZWVCU0QgYnVnIHRo YXQgY2F1c2VzIHByb2dyYW1zIHRvIGNyYXNoIHdoZW4gLWxtIGlzCi0rCSAgIyBsaW5rZWQgYmVm b3JlIGFueSBvdGhlciBQSUMgb2JqZWN0LiAgQnV0IHdlIG11c3Qgbm90IHVzZQotKwkgICMgcGlj X2ZsYWcgd2hlbiBsaW5raW5nIHdpdGggLXN0YXRpYy4gIFRoZSBwcm9ibGVtIGV4aXN0cyBpbgot KwkgICMgRnJlZUJTRCAyLjIuNiBhbmQgaXMgZml4ZWQgaW4gRnJlZUJTRCAzLjEuCi0rCSAgKi0q LWZyZWVic2QyKnwqLSotZnJlZWJzZDMuMCp8Ki0qLWZyZWVic2RlbGYzLjAqKQotKwkgICAgcGlj X2ZsYWdfZm9yX3N5bXRhYmxlPSIgJHBpY19mbGFnIC1ERlJFRUJTRF9XT1JLQVJPVU5EIiA7Owot KwkgICotKi1ocHV4KikKLSsJICAgIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyIg IDs7Ci0rCSAgKikKLSsJICAgIGlmIHRlc3QgIlgkbXlfcGljX3AiICE9IFhubzsgdGhlbgotKwkg ICAgICBwaWNfZmxhZ19mb3Jfc3ltdGFibGU9IiAkcGljX2ZsYWciCi0rCSAgICBmaQotKwkgICAg OzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKwlzeW10YWJfY2ZsYWdzPQotKwlmb3IgYXJn IGluICRMVENGTEFHUzsgZG8KLSsJICBjYXNlICRhcmcgaW4KLSsJICAtcGllIHwgLWZwaWUgfCAt ZlBJRSkgOzsKLSsJICAqKSBmdW5jX2FwcGVuZCBzeW10YWJfY2ZsYWdzICIgJGFyZyIgOzsKLSsJ ICBlc2FjCi0rCWRvbmUKLSsKLSsJIyBOb3cgY29tcGlsZSB0aGUgZHluYW1pYyBzeW1ib2wgZmls ZS4KLSsJZnVuY19zaG93X2V2YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkTFRDQyRzeW10YWJf Y2ZsYWdzIC1jJG5vX2J1aWx0aW5fZmxhZyRwaWNfZmxhZ19mb3Jfc3ltdGFibGUgIiRteV9kbHN5 bXMiKScgJ2V4aXQgJD8nCi0rCi0rCSMgQ2xlYW4gdXAgdGhlIGdlbmVyYXRlZCBmaWxlcy4KLSsJ ZnVuY19zaG93X2V2YWwgJyRSTSAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIiRubGlzdCIg IiR7bmxpc3R9UyIgIiR7bmxpc3R9VCInCi0rCi0rCSMgVHJhbnNmb3JtIHRoZSBzeW1ib2wgZmls ZSBpbnRvIHRoZSBjb3JyZWN0IG5hbWUuCi0rCXN5bWZpbGVvYmo9IiRvdXRwdXRfb2JqZGlyLyR7 bXlfb3V0cHV0bmFtZX1TLiRvYmpleHQiCi0rCWNhc2UgJGhvc3QgaW4KLSsJKmN5Z3dpbiogfCAq bWluZ3cqIHwgKmNlZ2NjKiApCi0rCSAgaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJG15X291 dHB1dG5hbWUuZGVmIjsgdGhlbgotKwkgICAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiJGNvbXBp bGVfY29tbWFuZCIgfCAkU0VEICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0 bmFtZS5kZWYgJHN5bWZpbGVvYmolImAKLSsJICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICIk ZmluYWxpemVfY29tbWFuZCIgfCAkU0VEICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlf b3V0cHV0bmFtZS5kZWYgJHN5bWZpbGVvYmolImAKLSsJICBlbHNlCi0rCSAgICBjb21waWxlX2Nv bW1hbmQ9YCRFQ0hPICIkY29tcGlsZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRzeW1m aWxlb2JqJSJgCi0rCSAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiJGZpbmFsaXplX2NvbW1h bmQiIHwgJFNFRCAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKLSsJICBmaQotKwkgIDs7Ci0r CSopCi0rCSAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiJGNvbXBpbGVfY29tbWFuZCIgfCAkU0VE ICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAotKwkgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hP ICIkZmluYWxpemVfY29tbWFuZCIgfCAkU0VEICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAot KwkgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICAqKQotKwlmdW5jX2ZhdGFsX2Vycm9yICJ1bmtu b3duIHN1ZmZpeCBmb3IgXGAkbXlfZGxzeW1zJyIKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGVs c2UKLSsgICAgICAjIFdlIGtlZXAgZ29pbmcganVzdCBpbiBjYXNlIHRoZSB1c2VyIGRpZG4ndCBy ZWZlciB0bwotKyAgICAgICMgbHRfcHJlbG9hZGVkX3N5bWJvbHMuICBUaGUgbGlua2VyIHdpbGwg ZmFpbCBpZiBnbG9iYWxfc3ltYm9sX3BpcGUKLSsgICAgICAjIHJlYWxseSB3YXMgcmVxdWlyZWQu Ci0rCi0rICAgICAgIyBOdWxsaWZ5IHRoZSBzeW1ib2wgZmlsZS4KLSsgICAgICBjb21waWxlX2Nv bW1hbmQ9YCRFQ0hPICIkY29tcGlsZV9jb21tYW5kIiB8ICRTRUQgInMlIEBTWU1GSUxFQCUlImAK LSsgICAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNF RCAicyUgQFNZTUZJTEVAJSUiYAotKyAgICBmaQotK30KLSsKLSsjIGZ1bmNfd2luMzJfbGliaWQg YXJnCi0rIyByZXR1cm4gdGhlIGxpYnJhcnkgdHlwZSBvZiBmaWxlICdhcmcnCi0rIwotKyMgTmVl ZCBhIGxvdCBvZiBnb28gdG8gaGFuZGxlICpib3RoKiBETExzIGFuZCBpbXBvcnQgbGlicwotKyMg SGFzIHRvIGJlIGEgc2hlbGwgZnVuY3Rpb24gaW4gb3JkZXIgdG8gJ2VhdCcgdGhlIGFyZ3VtZW50 Ci0rIyB0aGF0IGlzIHN1cHBsaWVkIHdoZW4gJGZpbGVfbWFnaWNfY29tbWFuZCBpcyBjYWxsZWQu Ci0rIyBEZXNwaXRlIHRoZSBuYW1lLCBhbHNvIGRlYWwgd2l0aCA2NCBiaXQgYmluYXJpZXMuCi0r ZnVuY193aW4zMl9saWJpZCAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsgIHdpbjMyX2xpYmlkX3R5 cGU9InVua25vd24iCi0rICB3aW4zMl9maWxlcmVzPWBmaWxlIC1MICQxIDI+L2Rldi9udWxsYAot KyAgY2FzZSAkd2luMzJfZmlsZXJlcyBpbgotKyAgKmFyXCBhcmNoaXZlXCBpbXBvcnRcIGxpYnJh cnkqKSAjIGRlZmluaXRlbHkgaW1wb3J0Ci0rICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNo aXZlIGltcG9ydCIKLSsgICAgOzsKLSsgICphclwgYXJjaGl2ZSopICMgY291bGQgYmUgYW4gaW1w b3J0LCBvciBzdGF0aWMKLSsgICAgIyBLZWVwIHRoZSBlZ3JlcCBwYXR0ZXJuIGluIHN5bmMgd2l0 aCB0aGUgb25lIGluIF9MVF9DSEVDS19NQUdJQ19NRVRIT0QuCi0rICAgIGlmIGV2YWwgJE9CSkRV TVAgLWYgJDEgfCAkU0VEIC1lICcxMHEnIDI+L2Rldi9udWxsIHwKLSsgICAgICAgJEVHUkVQICdm aWxlIGZvcm1hdCAocGVpKi1pMzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2KT98cGUtYXJtLXdpbmNl fHBlLXg4Ni02NCknID4vZGV2L251bGw7IHRoZW4KLSsgICAgICBmdW5jX3RvX3Rvb2xfZmlsZSAi JDEiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCi0rICAgICAgd2luMzJfbm1yZXM9YGV2 YWwgJE5NIC1mIHBvc2l4IC1BIFwiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdFwiIHwKLSsJJFNF RCAtbiAtZSAnCi0rCSAgICAxLDEwMHsKLSsJCS8gSSAvewotKwkJICAgIHMsLiosaW1wb3J0LAot KwkJICAgIHAKLSsJCSAgICBxCi0rCQl9Ci0rCSAgICB9J2AKLSsgICAgICBjYXNlICR3aW4zMl9u bXJlcyBpbgotKyAgICAgIGltcG9ydCopICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgYXJjaGl2ZSBp bXBvcnQiOzsKLSsgICAgICAqKSAgICAgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUg c3RhdGljIjs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgICA7OwotKyAgKkRMTCopCi0rICAg IHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBETEwiCi0rICAgIDs7Ci0rICAqZXhlY3V0YWJsZSopICMg YnV0IHNoZWxsIHNjcmlwdHMgYXJlICJleGVjdXRhYmxlIiB0b28uLi4KLSsgICAgY2FzZSAkd2lu MzJfZmlsZXJlcyBpbgotKyAgICAqTVNcIFdpbmRvd3NcIFBFXCBJbnRlbCopCi0rICAgICAgd2lu MzJfbGliaWRfdHlwZT0ieDg2IERMTCIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0r ICBlc2FjCi0rICAkRUNITyAiJHdpbjMyX2xpYmlkX3R5cGUiCi0rfQotKwotKyMgZnVuY19jeWdt aW5nX2RsbF9mb3JfaW1wbGliIEFSRwotKyMKLSsjIFBsYXRmb3JtLXNwZWNpZmljIGZ1bmN0aW9u IHRvIGV4dHJhY3QgdGhlCi0rIyBuYW1lIG9mIHRoZSBETEwgYXNzb2NpYXRlZCB3aXRoIHRoZSBz cGVjaWZpZWQKLSsjIGltcG9ydCBsaWJyYXJ5IEFSRy4KLSsjIEludm9rZWQgYnkgZXZhbCdpbmcg dGhlIGxpYnRvb2wgdmFyaWFibGUKLSsjICAgICRzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZAot KyMgUmVzdWx0IGlzIGF2YWlsYWJsZSBpbiB0aGUgdmFyaWFibGUKLSsjICAgICRzaGFyZWRsaWJf ZnJvbV9saW5rbGliX3Jlc3VsdAotK2Z1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYiAoKQotK3sK LSsgICRvcHRfZGVidWcKLSsgIHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0PWAkRExMVE9P TCAtLWlkZW50aWZ5LXN0cmljdCAtLWlkZW50aWZ5ICIkMSJgCi0rfQotKwotKyMgZnVuY19jeWdt aW5nX2RsbF9mb3JfaW1wbGliX2ZhbGxiYWNrX2NvcmUgU0VDVElPTl9OQU1FIExJQk5BTUVzCi0r IwotKyMgVGhlIGlzIHRoZSBjb3JlIG9mIGEgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gb2YgYQot KyMgcGxhdGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdG8gZXh0cmFjdCB0aGUgbmFtZSBvZiB0aGUK LSsjIERMTCBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBpbXBvcnQgbGlicmFyeSBMSUJO QU1FLgotKyMKLSsjIFNFQ1RJT05fTkFNRSBpcyBlaXRoZXIgLmlkYXRhJDYgb3IgLmlkYXRhJDcs IGRlcGVuZGluZwotKyMgb24gdGhlIHBsYXRmb3JtIGFuZCBjb21waWxlciB0aGF0IGNyZWF0ZWQg dGhlIGltcGxpYi4KLSsjCi0rIyBFY2hvcyB0aGUgbmFtZSBvZiB0aGUgRExMIGFzc29jaWF0ZWQg d2l0aCB0aGUKLSsjIHNwZWNpZmllZCBpbXBvcnQgbGlicmFyeS4KLStmdW5jX2N5Z21pbmdfZGxs X2Zvcl9pbXBsaWJfZmFsbGJhY2tfY29yZSAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsgIG1hdGNo X2xpdGVyYWw9YCRFQ0hPICIkMSIgfCAkU0VEICIkc2VkX21ha2VfbGl0ZXJhbF9yZWdleCJgCi0r ICAkT0JKRFVNUCAtcyAtLXNlY3Rpb24gIiQxIiAiJDIiIDI+L2Rldi9udWxsIHwKLSsgICAgJFNF RCAnL15Db250ZW50cyBvZiBzZWN0aW9uICciJG1hdGNoX2xpdGVyYWwiJzovewotKyAgICAgICMg UGxhY2UgbWFya2VyIGF0IGJlZ2lubmluZyBvZiBhcmNoaXZlIG1lbWJlciBkbGxuYW1lIHNlY3Rp b24KLSsgICAgICBzLy4qLz09PT1NQVJLPT09PS8KLSsgICAgICBwCi0rICAgICAgZAotKyAgICB9 Ci0rICAgICMgVGhlc2UgbGluZXMgY2FuIHNvbWV0aW1lcyBiZSBsb25nZXIgdGhhbiA0MyBjaGFy YWN0ZXJzLCBidXQKLSsgICAgIyBhcmUgYWx3YXlzIHVuaW50ZXJlc3RpbmcKLSsgICAgLzpbCSBd KmZpbGUgZm9ybWF0IHBlW2ldXHssMVx9LS9kCi0rICAgIC9eSW4gYXJjaGl2ZSBbXjpdKjovZAot KyAgICAjIEVuc3VyZSBtYXJrZXIgaXMgcHJpbnRlZAotKyAgICAvXj09PT1NQVJLPT09PS9wCi0r ICAgICMgUmVtb3ZlIGFsbCBsaW5lcyB3aXRoIGxlc3MgdGhhbiA0MyBjaGFyYWN0ZXJzCi0rICAg IC9eLlx7NDNcfS8hZAotKyAgICAjIEZyb20gcmVtYWluaW5nIGxpbmVzLCByZW1vdmUgZmlyc3Qg NDMgY2hhcmFjdGVycwotKyAgICBzL14uXHs0M1x9Ly8nIHwKLSsgICAgJFNFRCAtbiAnCi0rICAg ICAgIyBKb2luIG1hcmtlciBhbmQgYWxsIGxpbmVzIHVudGlsIG5leHQgbWFya2VyIGludG8gYSBz aW5nbGUgbGluZQotKyAgICAgIC9ePT09PU1BUks9PT09LyBiIHBhcmEKLSsgICAgICBICi0rICAg ICAgJCBiIHBhcmEKLSsgICAgICBiCi0rICAgICAgOnBhcmEKLSsgICAgICB4Ci0rICAgICAgcy9c bi8vZwotKyAgICAgICMgUmVtb3ZlIHRoZSBtYXJrZXIKLSsgICAgICBzL149PT09TUFSSz09PT0v LwotKyAgICAgICMgUmVtb3ZlIHRyYWlsaW5nIGRvdHMgYW5kIHdoaXRlc3BhY2UKLSsgICAgICBz L1tcLiBcdF0qJC8vCi0rICAgICAgIyBQcmludAotKyAgICAgIC8uL3AnIHwKLSsgICAgIyB3ZSBu b3cgaGF2ZSBhIGxpc3QsIG9uZSBlbnRyeSBwZXIgbGluZSwgb2YgdGhlIHN0cmluZ2lmaWVkCi0r ICAgICMgY29udGVudHMgb2YgdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gb2YgYWxsIG1lbWJlcnMg b2YgdGhlCi0rICAgICMgYXJjaGl2ZSB3aGljaCBwb3NzZXNzIHRoYXQgc2VjdGlvbi4gSGV1cmlz dGljOiBlbGltaW5hdGUKLSsgICAgIyBhbGwgdGhvc2Ugd2hpY2ggaGF2ZSBhIGZpcnN0IG9yIHNl Y29uZCBjaGFyYWN0ZXIgdGhhdCBpcwotKyAgICAjIGEgJy4nICh0aGF0IGlzLCBvYmpkdW1wJ3Mg cmVwcmVzZW50YXRpb24gb2YgYW4gdW5wcmludGFibGUKLSsgICAgIyBjaGFyYWN0ZXIuKSBUaGlz IHNob3VsZCB3b3JrIGZvciBhbGwgYXJjaGl2ZXMgd2l0aCBsZXNzIHRoYW4KLSsgICAgIyAweDMw MmYgZXhwb3J0cyAtLSBidXQgd2lsbCBmYWlsIGZvciBETExzIHdob3NlIG5hbWUgYWN0dWFsbHkK LSsgICAgIyBiZWdpbnMgd2l0aCBhIGxpdGVyYWwgJy4nIG9yIGEgc2luZ2xlIGNoYXJhY3RlciBm b2xsb3dlZCBieQotKyAgICAjIGEgJy4nLgotKyAgICAjCi0rICAgICMgT2YgdGhvc2UgdGhhdCBy ZW1haW4sIHByaW50IHRoZSBmaXJzdCBvbmUuCi0rICAgICRTRUQgLWUgJy9eXC4vZDsvXi5cLi9k O3EnCi0rfQotKwotKyMgZnVuY19jeWdtaW5nX2dudV9pbXBsaWJfcCBBUkcKLSsjIFRoaXMgcHJl ZGljYXRlIHJldHVybnMgd2l0aCB6ZXJvIHN0YXR1cyAoVFJVRSkgaWYKLSsjIEFSRyBpcyBhIEdO VS9iaW51dGlscy1zdHlsZSBpbXBvcnQgbGlicmFyeS4gUmV0dXJucwotKyMgd2l0aCBub256ZXJv IHN0YXR1cyAoRkFMU0UpIG90aGVyd2lzZS4KLStmdW5jX2N5Z21pbmdfZ251X2ltcGxpYl9wICgp Ci0rewotKyAgJG9wdF9kZWJ1ZwotKyAgZnVuY190b190b29sX2ZpbGUgIiQxIiBmdW5jX2NvbnZl cnRfZmlsZV9tc3lzX3RvX3czMgotKyAgZnVuY19jeWdtaW5nX2dudV9pbXBsaWJfdG1wPWAkTk0g IiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiIHwgZXZhbCAiJGdsb2JhbF9zeW1ib2xfcGlwZSIg fCAkRUdSRVAgJyAoX2hlYWRfW0EtWmEtejAtOV9dK19bYWRdbCp8W0EtWmEtejAtOV9dK19bYWRd bCpfaW5hbWUpJCdgCi0rICB0ZXN0IC1uICIkZnVuY19jeWdtaW5nX2dudV9pbXBsaWJfdG1wIgot K30KLSsKLSsjIGZ1bmNfY3lnbWluZ19tc19pbXBsaWJfcCBBUkcKLSsjIFRoaXMgcHJlZGljYXRl IHJldHVybnMgd2l0aCB6ZXJvIHN0YXR1cyAoVFJVRSkgaWYKLSsjIEFSRyBpcyBhbiBNUy1zdHls ZSBpbXBvcnQgbGlicmFyeS4gUmV0dXJucwotKyMgd2l0aCBub256ZXJvIHN0YXR1cyAoRkFMU0Up IG90aGVyd2lzZS4KLStmdW5jX2N5Z21pbmdfbXNfaW1wbGliX3AgKCkKLSt7Ci0rICAkb3B0X2Rl YnVnCi0rICBmdW5jX3RvX3Rvb2xfZmlsZSAiJDEiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9f dzMyCi0rICBmdW5jX2N5Z21pbmdfbXNfaW1wbGliX3RtcD1gJE5NICIkZnVuY190b190b29sX2Zp bGVfcmVzdWx0IiB8IGV2YWwgIiRnbG9iYWxfc3ltYm9sX3BpcGUiIHwgJEdSRVAgJ19OVUxMX0lN UE9SVF9ERVNDUklQVE9SJ2AKLSsgIHRlc3QgLW4gIiRmdW5jX2N5Z21pbmdfbXNfaW1wbGliX3Rt cCIKLSt9Ci0rCi0rIyBmdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFsbGJhY2sgQVJHCi0r IyBQbGF0Zm9ybS1zcGVjaWZpYyBmdW5jdGlvbiB0byBleHRyYWN0IHRoZQotKyMgbmFtZSBvZiB0 aGUgRExMIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkCi0rIyBpbXBvcnQgbGlicmFyeSBB UkcuCi0rIwotKyMgVGhpcyBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBpcyBmb3IgdXNlIHdoZW4g JERMTFRPT0wKLSsjIGRvZXMgbm90IHN1cHBvcnQgdGhlIC0taWRlbnRpZnktc3RyaWN0IG9wdGlv bi4KLSsjIEludm9rZWQgYnkgZXZhbCdpbmcgdGhlIGxpYnRvb2wgdmFyaWFibGUKLSsjICAgICRz aGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZAotKyMgUmVzdWx0IGlzIGF2YWlsYWJsZSBpbiB0aGUg dmFyaWFibGUKLSsjICAgICRzaGFyZWRsaWJfZnJvbV9saW5rbGliX3Jlc3VsdAotK2Z1bmNfY3ln bWluZ19kbGxfZm9yX2ltcGxpYl9mYWxsYmFjayAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsgIGlm IGZ1bmNfY3lnbWluZ19nbnVfaW1wbGliX3AgIiQxIiA7IHRoZW4KLSsgICAgIyBiaW51dGlscyBp bXBvcnQgbGlicmFyeQotKyAgICBzaGFyZWRsaWJfZnJvbV9saW5rbGliX3Jlc3VsdD1gZnVuY19j eWdtaW5nX2RsbF9mb3JfaW1wbGliX2ZhbGxiYWNrX2NvcmUgJy5pZGF0YSQ3JyAiJDEiYAotKyAg ZWxpZiBmdW5jX2N5Z21pbmdfbXNfaW1wbGliX3AgIiQxIiA7IHRoZW4KLSsgICAgIyBtcy1nZW5l cmF0ZWQgaW1wb3J0IGxpYnJhcnkKLSsgICAgc2hhcmVkbGliX2Zyb21fbGlua2xpYl9yZXN1bHQ9 YGZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYl9mYWxsYmFja19jb3JlICcuaWRhdGEkNicgIiQx ImAKLSsgIGVsc2UKLSsgICAgIyB1bmtub3duCi0rICAgIHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJf cmVzdWx0PSIiCi0rICBmaQotK30KLSsKLSsKLSsjIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlIGRp ciBvbGRsaWIKLStmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAoKQotK3sKLSsgICAgJG9wdF9kZWJ1 ZwotKyAgICBmX2V4X2FuX2FyX2Rpcj0iJDEiOyBzaGlmdAotKyAgICBmX2V4X2FuX2FyX29sZGxp Yj0iJDEiCi0rICAgIGlmIHRlc3QgIiRsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rpb24iID0geWVz OyB0aGVuCi0rICAgICAgbG9ja2ZpbGU9JGZfZXhfYW5fYXJfb2xkbGliLmxvY2sKLSsgICAgICB1 bnRpbCAkb3B0X2RyeV9ydW4gfHwgbG4gIiRwcm9ncGF0aCIgIiRsb2NrZmlsZSIgMj4vZGV2L251 bGw7IGRvCi0rCWZ1bmNfZWNobyAiV2FpdGluZyBmb3IgJGxvY2tmaWxlIHRvIGJlIHJlbW92ZWQi Ci0rCXNsZWVwIDIKLSsgICAgICBkb25lCi0rICAgIGZpCi0rICAgIGZ1bmNfc2hvd19ldmFsICIo Y2QgXCRmX2V4X2FuX2FyX2RpciAmJiAkQVIgeCBcIlwkZl9leF9hbl9hcl9vbGRsaWJcIikiIFwK LSsJCSAgICdzdGF0PSQ/OyBybSAtZiAiJGxvY2tmaWxlIjsgZXhpdCAkc3RhdCcKLSsgICAgaWYg dGVzdCAiJGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbiIgPSB5ZXM7IHRoZW4KLSsgICAgICAk b3B0X2RyeV9ydW4gfHwgcm0gLWYgIiRsb2NrZmlsZSIKLSsgICAgZmkKLSsgICAgaWYgKCRBUiB0 ICIkZl9leF9hbl9hcl9vbGRsaWIiIHwgc29ydCB8IHNvcnQgLXVjID4vZGV2L251bGwgMj4mMSk7 IHRoZW4KLSsgICAgIDoKLSsgICAgZWxzZQotKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9iamVj dCBuYW1lIGNvbmZsaWN0cyBpbiBhcmNoaXZlOiAkZl9leF9hbl9hcl9kaXIvJGZfZXhfYW5fYXJf b2xkbGliIgotKyAgICBmaQotK30KLSsKLSsKLSsjIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyBnZW50 b3Agb2xkbGliIC4uLgotK2Z1bmNfZXh0cmFjdF9hcmNoaXZlcyAoKQotK3sKLSsgICAgJG9wdF9k ZWJ1ZwotKyAgICBteV9nZW50b3A9IiQxIjsgc2hpZnQKLSsgICAgbXlfb2xkbGlicz0kezErIiRA In0KLSsgICAgbXlfb2xkb2Jqcz0iIgotKyAgICBteV94bGliPSIiCi0rICAgIG15X3hhYnM9IiIK LSsgICAgbXlfeGRpcj0iIgotKwotKyAgICBmb3IgbXlfeGxpYiBpbiAkbXlfb2xkbGliczsgZG8K LSsgICAgICAjIEV4dHJhY3QgdGhlIG9iamVjdHMuCi0rICAgICAgY2FzZSAkbXlfeGxpYiBpbgot KwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIG15X3hhYnM9IiRteV94bGliIiA7OwotKwkqKSBt eV94YWJzPWBwd2RgIi8kbXlfeGxpYiIgOzsKLSsgICAgICBlc2FjCi0rICAgICAgZnVuY19iYXNl bmFtZSAiJG15X3hsaWIiCi0rICAgICAgbXlfeGxpYj0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0Igot KyAgICAgIG15X3hsaWJfdT0kbXlfeGxpYgotKyAgICAgIHdoaWxlIDo7IGRvCi0rICAgICAgICBj YXNlICIgJGV4dHJhY3RlZF9hcmNoaXZlcyAiIGluCi0rCSoiICRteV94bGliX3UgIiopCi0rCSAg ZnVuY19hcml0aCAkZXh0cmFjdGVkX3NlcmlhbCArIDEKLSsJICBleHRyYWN0ZWRfc2VyaWFsPSRm dW5jX2FyaXRoX3Jlc3VsdAotKwkgIG15X3hsaWJfdT1sdCRleHRyYWN0ZWRfc2VyaWFsLSRteV94 bGliIDs7Ci0rCSopIGJyZWFrIDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rICAgICAgZXh0cmFj dGVkX2FyY2hpdmVzPSIkZXh0cmFjdGVkX2FyY2hpdmVzICRteV94bGliX3UiCi0rICAgICAgbXlf eGRpcj0iJG15X2dlbnRvcC8kbXlfeGxpYl91IgotKwotKyAgICAgIGZ1bmNfbWtkaXJfcCAiJG15 X3hkaXIiCi0rCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgICotZGFyd2luKikKLSsJZnVu Y192ZXJib3NlICJFeHRyYWN0aW5nICRteV94YWJzIgotKwkjIERvIG5vdCBib3RoZXIgZG9pbmcg YW55dGhpbmcgaWYganVzdCBhIGRyeSBydW4KLSsJJG9wdF9kcnlfcnVuIHx8IHsKLSsJICBkYXJ3 aW5fb3JpZ19kaXI9YHB3ZGAKLSsJICBjZCAkbXlfeGRpciB8fCBleGl0ICQ/Ci0rCSAgZGFyd2lu X2FyY2hpdmU9JG15X3hhYnMKLSsJICBkYXJ3aW5fY3VyZGlyPWBwd2RgCi0rCSAgZGFyd2luX2Jh c2VfYXJjaGl2ZT1gYmFzZW5hbWUgIiRkYXJ3aW5fYXJjaGl2ZSJgCi0rCSAgZGFyd2luX2FyY2hl cz1gJExJUE8gLWluZm8gIiRkYXJ3aW5fYXJjaGl2ZSIgMj4vZGV2L251bGwgfCAkR1JFUCBBcmNo aXRlY3R1cmVzIDI+L2Rldi9udWxsIHx8IHRydWVgCi0rCSAgaWYgdGVzdCAtbiAiJGRhcndpbl9h cmNoZXMiOyB0aGVuCi0rCSAgICBkYXJ3aW5fYXJjaGVzPWAkRUNITyAiJGRhcndpbl9hcmNoZXMi IHwgJFNFRCAtZSAncy8uKmFyZTovLydgCi0rCSAgICBkYXJ3aW5fYXJjaD0KLSsJICAgIGZ1bmNf dmVyYm9zZSAiJGRhcndpbl9iYXNlX2FyY2hpdmUgaGFzIG11bHRpcGxlIGFyY2hpdGVjdHVyZXMg JGRhcndpbl9hcmNoZXMiCi0rCSAgICBmb3IgZGFyd2luX2FyY2ggaW4gICRkYXJ3aW5fYXJjaGVz IDsgZG8KLSsJICAgICAgZnVuY19ta2Rpcl9wICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hp dmV9LSR7ZGFyd2luX2FyY2h9IgotKwkgICAgICAkTElQTyAtdGhpbiAkZGFyd2luX2FyY2ggLW91 dHB1dCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rh cndpbl9iYXNlX2FyY2hpdmV9IiAiJHtkYXJ3aW5fYXJjaGl2ZX0iCi0rCSAgICAgIGNkICJ1bmZh dC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9IgotKwkgICAgICBmdW5j X2V4dHJhY3RfYW5fYXJjaGl2ZSAiYHB3ZGAiICIke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgotKwkg ICAgICBjZCAiJGRhcndpbl9jdXJkaXIiCi0rCSAgICAgICRSTSAidW5mYXQtJCQvJHtkYXJ3aW5f YmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgotKwkg ICAgZG9uZSAjICRkYXJ3aW5fYXJjaGVzCi0rICAgICAgICAgICAgIyMgT2theSBub3cgd2UndmUg YSBidW5jaCBvZiB0aGluIG9iamVjdHMsIGdvdHRhIGZhdHRlbiB0aGVtIHVwIDopCi0rCSAgICBk YXJ3aW5fZmlsZWxpc3Q9YGZpbmQgdW5mYXQtJCQgLXR5cGUgZiAtbmFtZSBcKi5vIC1wcmludCAt byAtbmFtZSBcKi5sbyAtcHJpbnQgfCAkU0VEIC1lICIkYmFzZW5hbWUiIHwgc29ydCAtdWAKLSsJ ICAgIGRhcndpbl9maWxlPQotKwkgICAgZGFyd2luX2ZpbGVzPQotKwkgICAgZm9yIGRhcndpbl9m aWxlIGluICRkYXJ3aW5fZmlsZWxpc3Q7IGRvCi0rCSAgICAgIGRhcndpbl9maWxlcz1gZmluZCB1 bmZhdC0kJCAtbmFtZSAkZGFyd2luX2ZpbGUgLXByaW50IHwgc29ydCB8ICROTDJTUGAKLSsJICAg ICAgJExJUE8gLWNyZWF0ZSAtb3V0cHV0ICIkZGFyd2luX2ZpbGUiICRkYXJ3aW5fZmlsZXMKLSsJ ICAgIGRvbmUgIyAkZGFyd2luX2ZpbGVsaXN0Ci0rCSAgICAkUk0gLXJmIHVuZmF0LSQkCi0rCSAg ICBjZCAiJGRhcndpbl9vcmlnX2RpciIKLSsJICBlbHNlCi0rCSAgICBjZCAkZGFyd2luX29yaWdf ZGlyCi0rCSAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiJG15X3hkaXIiICIkbXlfeGFicyIK LSsJICBmaSAjICRkYXJ3aW5fYXJjaGVzCi0rCX0gIyAhJG9wdF9kcnlfcnVuCi0rCTs7Ci0rICAg ICAgKikKLSsgICAgICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94 YWJzIgotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICBteV9vbGRvYmpzPSIkbXlfb2xkb2JqcyAi YGZpbmQgJG15X3hkaXIgLW5hbWUgXCouJG9iamV4dCAtcHJpbnQgLW8gLW5hbWUgXCoubG8gLXBy aW50IHwgc29ydCB8ICROTDJTUGAKLSsgICAgZG9uZQotKwotKyAgICBmdW5jX2V4dHJhY3RfYXJj aGl2ZXNfcmVzdWx0PSIkbXlfb2xkb2JqcyIKLSt9Ci0rCi0rCi0rIyBmdW5jX2VtaXRfd3JhcHBl ciBbYXJnPW5vXQotKyMKLSsjIEVtaXQgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91 dC4KLSsjIERvbid0IGRpcmVjdGx5IG9wZW4gYSBmaWxlIGJlY2F1c2Ugd2UgbWF5IHdhbnQgdG8K LSsjIGluY29ycG9yYXRlIHRoZSBzY3JpcHQgY29udGVudHMgd2l0aGluIGEgY3lnd2luL21pbmd3 Ci0rIyB3cmFwcGVyIGV4ZWN1dGFibGUuICBNdXN0IE9OTFkgYmUgY2FsbGVkIGZyb20gd2l0aGlu Ci0rIyBmdW5jX21vZGVfbGluayBiZWNhdXNlIGl0IGRlcGVuZHMgb24gYSBudW1iZXIgb2YgdmFy aWFibGVzCi0rIyBzZXQgdGhlcmVpbi4KLSsjCi0rIyBBUkcgaXMgdGhlIHZhbHVlIHRoYXQgdGhl IFdSQVBQRVJfU0NSSVBUX0JFTE9OR1NfSU5fT0JKRElSCi0rIyB2YXJpYWJsZSB3aWxsIHRha2Uu ICBJZiAneWVzJywgdGhlbiB0aGUgZW1pdHRlZCBzY3JpcHQKLSsjIHdpbGwgYXNzdW1lIHRoYXQg dGhlIGRpcmVjdG9yeSBpbiB3aGljaCBpdCBpcyBzdG9yZWQgaXMKLSsjIHRoZSAkb2JqZGlyIGRp cmVjdG9yeS4gIFRoaXMgaXMgYSBjeWd3aW4vbWluZ3ctc3BlY2lmaWMKLSsjIGJlaGF2aW9yLgot K2Z1bmNfZW1pdF93cmFwcGVyICgpCi0rewotKwlmdW5jX2VtaXRfd3JhcHBlcl9hcmcxPSR7MS1u b30KLSsKLSsJJEVDSE8gIlwKLSsjISAkU0hFTEwKLSsKLSsjICRvdXRwdXQgLSB0ZW1wb3Jhcnkg d3JhcHBlciBzY3JpcHQgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUKLSsjIEdlbmVyYXRlZCBieSAk UFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KLSsjCi0rIyBUaGUgJG91 dHB1dCBwcm9ncmFtIGNhbm5vdCBiZSBkaXJlY3RseSBleGVjdXRlZCB1bnRpbCBhbGwgdGhlIGxp YnRvb2wKLSsjIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4KLSsj Ci0rIyBUaGlzIHdyYXBwZXIgc2NyaXB0IHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2YgdGhl IGJ1aWxkIGRpcmVjdG9yeS4KLSsjIElmIGl0IGlzLCBpdCB3aWxsIG5vdCBvcGVyYXRlIGNvcnJl Y3RseS4KLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVv dGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCi0rIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGls bCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KLStzZWRfcXVvdGVfc3Vic3Q9 JyRzZWRfcXVvdGVfc3Vic3QnCi0rCi0rIyBCZSBCb3VybmUgY29tcGF0aWJsZQotK2lmIHRlc3Qg LW4gXCJcJHtaU0hfVkVSU0lPTitzZXR9XCIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4m MTsgdGhlbgotKyAgZW11bGF0ZSBzaAotKyAgTlVMTENNRD06Ci0rICAjIFpzaCAzLnggYW5kIDQu eCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiBcJHsxK1wiXCRAXCJ9LCB3aGljaAotKyAgIyBp cyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFz IC1nICdcJHsxK1wiXCRAXCJ9Jz0nXCJcJEBcIicKLSsgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0r ZWxzZQotKyAgY2FzZSBcYChzZXQgLW8pIDI+L2Rldi9udWxsXGAgaW4gKnBvc2l4Kikgc2V0IC1v IHBvc2l4OzsgZXNhYwotK2ZpCi0rQklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1 NjQKLStEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCi0rCi0rIyBUaGUg SFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBz dGRvdXQKLSsjIGlmIENEUEFUSCBpcyBzZXQuCi0rKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAy PiYxICYmIHVuc2V0IENEUEFUSAotKwotK3JlbGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5k XCIKLSsKLSsjIFRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgZGV0ZXJtaW5lcyBvdXIgb3BlcmF0 aW9uIG1vZGUuCi0raWYgdGVzdCBcIlwkbGlidG9vbF9pbnN0YWxsX21hZ2ljXCIgPSBcIiRtYWdp Y1wiOyB0aGVuCi0rICAjIGluc3RhbGwgbW9kZSBuZWVkcyB0aGUgZm9sbG93aW5nIHZhcmlhYmxl czoKLSsgIGdlbmVyYXRlZF9ieV9saWJ0b29sX3ZlcnNpb249JyRtYWNyb192ZXJzaW9uJwotKyAg bm90aW5zdF9kZXBsaWJzPSckbm90aW5zdF9kZXBsaWJzJwotK2Vsc2UKLSsgICMgV2hlbiB3ZSBh cmUgc291cmNlZCBpbiBleGVjdXRlIG1vZGUsIFwkZmlsZSBhbmQgXCRFQ0hPIGFyZSBhbHJlYWR5 IHNldC4KLSsgIGlmIHRlc3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2lj XCI7IHRoZW4KLSsgICAgZmlsZT1cIlwkMFwiIgotKwotKyAgICBxRUNITz1gJEVDSE8gIiRFQ0hP IiB8ICRTRUQgIiRzZWRfcXVvdGVfc3Vic3QiYAotKyAgICAkRUNITyAiXAotKwotKyMgQSBmdW5j dGlvbiB0aGF0IGlzIHVzZWQgd2hlbiB0aGVyZSBpcyBubyBwcmludCBidWlsdGluIG9yIHByaW50 Zi4KLStmdW5jX2ZhbGxiYWNrX2VjaG8gKCkKLSt7Ci0rICBldmFsICdjYXQgPDxfTFRFQ0hPX0VP RgotK1wkMQotK19MVEVDSE9fRU9GJwotK30KLSsgICAgRUNITz1cIiRxRUNIT1wiCi0rICBmaQot KwotKyMgVmVyeSBiYXNpYyBvcHRpb24gcGFyc2luZy4gVGhlc2Ugb3B0aW9ucyBhcmUgKGEpIHNw ZWNpZmljIHRvCi0rIyB0aGUgbGlidG9vbCB3cmFwcGVyLCAoYikgYXJlIGlkZW50aWNhbCBiZXR3 ZWVuIHRoZSB3cmFwcGVyCi0rIyAvc2NyaXB0LyBhbmQgdGhlIHdyYXBwZXIgL2V4ZWN1dGFibGUv IHdoaWNoIGlzIHVzZWQgb25seSBvbgotKyMgd2luZG93cyBwbGF0Zm9ybXMsIGFuZCAoYykgYWxs IGJlZ2luIHdpdGggdGhlIHN0cmluZyAiLS1sdC0iCi0rIyAoYXBwbGljYXRpb24gcHJvZ3JhbXMg YXJlIHVubGlrZWx5IHRvIGhhdmUgb3B0aW9ucyB3aGljaCBtYXRjaAotKyMgdGhpcyBwYXR0ZXJu KS4KLSsjCi0rIyBUaGVyZSBhcmUgb25seSB0d28gc3VwcG9ydGVkIG9wdGlvbnM6IC0tbHQtZGVi dWcgYW5kCi0rIyAtLWx0LWR1bXAtc2NyaXB0LiBUaGVyZSBpcywgZGVsaWJlcmF0ZWx5LCBubyAt LWx0LWhlbHAuCi0rIwotKyMgVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoaXMgcGFyc2luZyBmdW5j dGlvbiBzaG91bGQgYmUgdGhlCi0rIyBzY3JpcHQncyAkMCB2YWx1ZSwgZm9sbG93ZWQgYnkgIiRA Ii4KLStsdF9vcHRpb25fZGVidWc9Ci0rZnVuY19wYXJzZV9sdF9vcHRpb25zICgpCi0rewotKyAg bHRfc2NyaXB0X2FyZzA9XCQwCi0rICBzaGlmdAotKyAgZm9yIGx0X29wdAotKyAgZG8KLSsgICAg Y2FzZSBcIlwkbHRfb3B0XCIgaW4KLSsgICAgLS1sdC1kZWJ1ZykgbHRfb3B0aW9uX2RlYnVnPTEg OzsKLSsgICAgLS1sdC1kdW1wLXNjcmlwdCkKLSsgICAgICAgIGx0X2R1bXBfRD1cYFwkRUNITyBc IlhcJGx0X3NjcmlwdF9hcmcwXCIgfCAkU0VEIC1lICdzL15YLy8nIC1lICdzJS9bXi9dKiQlJSdc YAotKyAgICAgICAgdGVzdCBcIlhcJGx0X2R1bXBfRFwiID0gXCJYXCRsdF9zY3JpcHRfYXJnMFwi ICYmIGx0X2R1bXBfRD0uCi0rICAgICAgICBsdF9kdW1wX0Y9XGBcJEVDSE8gXCJYXCRsdF9zY3Jp cHRfYXJnMFwiIHwgJFNFRCAtZSAncy9eWC8vJyAtZSAncyVeLiovJSUnXGAKLSsgICAgICAgIGNh dCBcIlwkbHRfZHVtcF9EL1wkbHRfZHVtcF9GXCIKLSsgICAgICAgIGV4aXQgMAotKyAgICAgIDs7 Ci0rICAgIC0tbHQtKikKLSsgICAgICAgIFwkRUNITyBcIlVucmVjb2duaXplZCAtLWx0LSBvcHRp b246ICdcJGx0X29wdCdcIiAxPiYyCi0rICAgICAgICBleGl0IDEKLSsgICAgICA7OwotKyAgICBl c2FjCi0rICBkb25lCi0rCi0rICAjIFByaW50IHRoZSBkZWJ1ZyBiYW5uZXIgaW1tZWRpYXRlbHk6 Ci0rICBpZiB0ZXN0IC1uIFwiXCRsdF9vcHRpb25fZGVidWdcIjsgdGhlbgotKyAgICBlY2hvIFwi JHtvdXRwdXRuYW1lfToke291dHB1dH06XCR7TElORU5PfTogbGlidG9vbCB3cmFwcGVyIChHTlUg JFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTlwiIDE+JjIKLSsgIGZpCi0rfQotKwotKyMgVXNl ZCB3aGVuIC0tbHQtZGVidWcuIFByaW50cyBpdHMgYXJndW1lbnRzIHRvIHN0ZG91dAotKyMgKHJl ZGlyZWN0aW9uIGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyKQotK2Z1bmNfbHRf ZHVtcF9hcmdzICgpCi0rewotKyAgbHRfZHVtcF9hcmdzX049MTsKLSsgIGZvciBsdF9hcmcKLSsg IGRvCi0rICAgIFwkRUNITyBcIiR7b3V0cHV0bmFtZX06JHtvdXRwdXR9Olwke0xJTkVOT306IG5l d2FyZ3ZbXCRsdF9kdW1wX2FyZ3NfTl06IFwkbHRfYXJnXCIKLSsgICAgbHRfZHVtcF9hcmdzX049 XGBleHByIFwkbHRfZHVtcF9hcmdzX04gKyAxXGAKLSsgIGRvbmUKLSt9Ci0rCi0rIyBDb3JlIGZ1 bmN0aW9uIGZvciBsYXVuY2hpbmcgdGhlIHRhcmdldCBhcHBsaWNhdGlvbgotK2Z1bmNfZXhlY19w cm9ncmFtX2NvcmUgKCkKLSt7Ci0rIgotKyAgY2FzZSAkaG9zdCBpbgotKyAgIyBCYWNrc2xhc2hl cyBzZXBhcmF0ZSBkaXJlY3RvcmllcyBvbiBwbGFpbiB3aW5kb3dzCi0rICAqLSotbWluZ3cgfCAq LSotb3MyKiB8ICotY2VnY2MqKQotKyAgICAkRUNITyAiXAotKyAgICAgIGlmIHRlc3QgLW4gXCJc JGx0X29wdGlvbl9kZWJ1Z1wiOyB0aGVuCi0rICAgICAgICBcJEVDSE8gXCIke291dHB1dG5hbWV9 OiR7b3V0cHV0fTpcJHtMSU5FTk99OiBuZXdhcmd2WzBdOiBcJHByb2dkaXJcXFxcXCRwcm9ncmFt XCIgMT4mMgotKyAgICAgICAgZnVuY19sdF9kdW1wX2FyZ3MgXCR7MStcIlwkQFwifSAxPiYyCi0r ICAgICAgZmkKLSsgICAgICBleGVjIFwiXCRwcm9nZGlyXFxcXFwkcHJvZ3JhbVwiIFwkezErXCJc JEBcIn0KLSsiCi0rICAgIDs7Ci0rCi0rICAqKQotKyAgICAkRUNITyAiXAotKyAgICAgIGlmIHRl c3QgLW4gXCJcJGx0X29wdGlvbl9kZWJ1Z1wiOyB0aGVuCi0rICAgICAgICBcJEVDSE8gXCIke291 dHB1dG5hbWV9OiR7b3V0cHV0fTpcJHtMSU5FTk99OiBuZXdhcmd2WzBdOiBcJHByb2dkaXIvXCRw cm9ncmFtXCIgMT4mMgotKyAgICAgICAgZnVuY19sdF9kdW1wX2FyZ3MgXCR7MStcIlwkQFwifSAx PiYyCi0rICAgICAgZmkKLSsgICAgICBleGVjIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIFwkezEr XCJcJEBcIn0KLSsiCi0rICAgIDs7Ci0rICBlc2FjCi0rICAkRUNITyAiXAotKyAgICAgIFwkRUNI TyBcIlwkMDogY2Fubm90IGV4ZWMgXCRwcm9ncmFtIFwkKlwiIDE+JjIKLSsgICAgICBleGl0IDEK LSt9Ci0rCi0rIyBBIGZ1bmN0aW9uIHRvIGVuY2Fwc3VsYXRlIGxhdW5jaGluZyB0aGUgdGFyZ2V0 IGFwcGxpY2F0aW9uCi0rIyBTdHJpcHMgb3B0aW9ucyBpbiB0aGUgLS1sdC0qIG5hbWVzcGFjZSBm cm9tIFwkQCBhbmQKLSsjIGxhdW5jaGVzIHRhcmdldCBhcHBsaWNhdGlvbiB3aXRoIHRoZSByZW1h aW5pbmcgYXJndW1lbnRzLgotK2Z1bmNfZXhlY19wcm9ncmFtICgpCi0rewotKyAgZm9yIGx0X3dy X2FyZwotKyAgZG8KLSsgICAgY2FzZSBcJGx0X3dyX2FyZyBpbgotKyAgICAtLWx0LSopIDs7Ci0r ICAgICopIHNldCB4IFwiXCRAXCIgXCJcJGx0X3dyX2FyZ1wiOyBzaGlmdDs7Ci0rICAgIGVzYWMK LSsgICAgc2hpZnQKLSsgIGRvbmUKLSsgIGZ1bmNfZXhlY19wcm9ncmFtX2NvcmUgXCR7MStcIlwk QFwifQotK30KLSsKLSsgICMgUGFyc2Ugb3B0aW9ucwotKyAgZnVuY19wYXJzZV9sdF9vcHRpb25z IFwiXCQwXCIgXCR7MStcIlwkQFwifQotKwotKyAgIyBGaW5kIHRoZSBkaXJlY3RvcnkgdGhhdCB0 aGlzIHNjcmlwdCBsaXZlcyBpbi4KLSsgIHRoaXNkaXI9XGBcJEVDSE8gXCJcJGZpbGVcIiB8ICRT RUQgJ3MlL1teL10qJCUlJ1xgCi0rICB0ZXN0IFwieFwkdGhpc2RpclwiID0gXCJ4XCRmaWxlXCIg JiYgdGhpc2Rpcj0uCi0rCi0rICAjIEZvbGxvdyBzeW1ib2xpYyBsaW5rcyB1bnRpbCB3ZSBnZXQg dG8gdGhlIHJlYWwgdGhpc2Rpci4KLSsgIGZpbGU9XGBscyAtbGQgXCJcJGZpbGVcIiB8ICRTRUQg LW4gJ3MvLiotPiAvL3AnXGAKLSsgIHdoaWxlIHRlc3QgLW4gXCJcJGZpbGVcIjsgZG8KLSsgICAg ZGVzdGRpcj1cYFwkRUNITyBcIlwkZmlsZVwiIHwgJFNFRCAncyUvW14vXSpcJCUlJ1xgCi0rCi0r ICAgICMgSWYgdGhlcmUgd2FzIGEgZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBjaGFuZ2UgdGhp c2Rpci4KLSsgICAgaWYgdGVzdCBcInhcJGRlc3RkaXJcIiAhPSBcInhcJGZpbGVcIjsgdGhlbgot KyAgICAgIGNhc2UgXCJcJGRlc3RkaXJcIiBpbgotKyAgICAgIFtcXFxcL10qIHwgW0EtWmEtel06 W1xcXFwvXSopIHRoaXNkaXI9XCJcJGRlc3RkaXJcIiA7OwotKyAgICAgICopIHRoaXNkaXI9XCJc JHRoaXNkaXIvXCRkZXN0ZGlyXCIgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rCi0rICAgIGZp bGU9XGBcJEVDSE8gXCJcJGZpbGVcIiB8ICRTRUQgJ3MlXi4qLyUlJ1xgCi0rICAgIGZpbGU9XGBs cyAtbGQgXCJcJHRoaXNkaXIvXCRmaWxlXCIgfCAkU0VEIC1uICdzLy4qLT4gLy9wJ1xgCi0rICBk b25lCi0rCi0rICAjIFVzdWFsbHkgJ25vJywgZXhjZXB0IG9uIGN5Z3dpbi9taW5ndyB3aGVuIGVt YmVkZGVkIGludG8KLSsgICMgdGhlIGN3cmFwcGVyLgotKyAgV1JBUFBFUl9TQ1JJUFRfQkVMT05H U19JTl9PQkpESVI9JGZ1bmNfZW1pdF93cmFwcGVyX2FyZzEKLSsgIGlmIHRlc3QgXCJcJFdSQVBQ RVJfU0NSSVBUX0JFTE9OR1NfSU5fT0JKRElSXCIgPSBcInllc1wiOyB0aGVuCi0rICAgICMgc3Bl Y2lhbCBjYXNlIGZvciAnLicKLSsgICAgaWYgdGVzdCBcIlwkdGhpc2RpclwiID0gXCIuXCI7IHRo ZW4KLSsgICAgICB0aGlzZGlyPVxgcHdkXGAKLSsgICAgZmkKLSsgICAgIyByZW1vdmUgLmxpYnMg ZnJvbSB0aGlzZGlyCi0rICAgIGNhc2UgXCJcJHRoaXNkaXJcIiBpbgotKyAgICAqW1xcXFwvXSRv YmpkaXIgKSB0aGlzZGlyPVxgXCRFQ0hPIFwiXCR0aGlzZGlyXCIgfCAkU0VEICdzJVtcXFxcL11b XlxcXFwvXSokJSUnXGAgOzsKLSsgICAgJG9iamRpciApICAgdGhpc2Rpcj0uIDs7Ci0rICAgIGVz YWMKLSsgIGZpCi0rCi0rICAjIFRyeSB0byBnZXQgdGhlIGFic29sdXRlIGRpcmVjdG9yeSBuYW1l LgotKyAgYWJzZGlyPVxgY2QgXCJcJHRoaXNkaXJcIiAmJiBwd2RcYAotKyAgdGVzdCAtbiBcIlwk YWJzZGlyXCIgJiYgdGhpc2Rpcj1cIlwkYWJzZGlyXCIKLSsiCi0rCi0rCWlmIHRlc3QgIiRmYXN0 X2luc3RhbGwiID0geWVzOyB0aGVuCi0rCSAgJEVDSE8gIlwKLSsgIHByb2dyYW09bHQtJyRvdXRw dXRuYW1lJyRleGVleHQKLSsgIHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCi0rCi0rICBp ZiB0ZXN0ICEgLWYgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgfHwKLSsgICAgIHsgZmlsZT1cYGxz IC0xZHQgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgXCJcJHByb2dkaXIvLi4vXCRwcm9ncmFtXCIg Mj4vZGV2L251bGwgfCAke1NFRH0gMXFcYDsgXFwKLSsgICAgICAgdGVzdCBcIlhcJGZpbGVcIiAh PSBcIlhcJHByb2dkaXIvXCRwcm9ncmFtXCI7IH07IHRoZW4KLSsKLSsgICAgZmlsZT1cIlwkXCQt XCRwcm9ncmFtXCIKLSsKLSsgICAgaWYgdGVzdCAhIC1kIFwiXCRwcm9nZGlyXCI7IHRoZW4KLSsg ICAgICAkTUtESVIgXCJcJHByb2dkaXJcIgotKyAgICBlbHNlCi0rICAgICAgJFJNIFwiXCRwcm9n ZGlyL1wkZmlsZVwiCi0rICAgIGZpIgotKwotKwkgICRFQ0hPICJcCi0rCi0rICAgICMgcmVsaW5r IGV4ZWN1dGFibGUgaWYgbmVjZXNzYXJ5Ci0rICAgIGlmIHRlc3QgLW4gXCJcJHJlbGlua19jb21t YW5kXCI7IHRoZW4KLSsgICAgICBpZiByZWxpbmtfY29tbWFuZF9vdXRwdXQ9XGBldmFsIFwkcmVs aW5rX2NvbW1hbmQgMj4mMVxgOyB0aGVuIDoKLSsgICAgICBlbHNlCi0rCSRFQ0hPIFwiXCRyZWxp bmtfY29tbWFuZF9vdXRwdXRcIiA+JjIKLSsJJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCi0rCWV4 aXQgMQotKyAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAgICRNViBcIlwkcHJvZ2Rpci9cJGZpbGVc IiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiAyPi9kZXYvbnVsbCB8fAotKyAgICB7ICRSTSBcIlwk cHJvZ2Rpci9cJHByb2dyYW1cIjsKLSsgICAgICAkTVYgXCJcJHByb2dkaXIvXCRmaWxlXCIgXCJc JHByb2dkaXIvXCRwcm9ncmFtXCI7IH0KLSsgICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCi0r ICBmaSIKLSsJZWxzZQotKwkgICRFQ0hPICJcCi0rICBwcm9ncmFtPSckb3V0cHV0bmFtZScKLSsg IHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCi0rIgotKwlmaQotKwotKwkkRUNITyAiXAot KwotKyAgaWYgdGVzdCAtZiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgdGhlbiIKLSsKLSsJIyBm aXh1cCB0aGUgZGxsIHNlYXJjaHBhdGggaWYgd2UgbmVlZCB0by4KLSsJIwotKwkjIEZpeCB0aGUg RExMIHNlYXJjaHBhdGggaWYgd2UgbmVlZCB0by4gIERvIHRoaXMgYmVmb3JlIHByZXBlbmRpbmcK LSsJIyB0byBzaGxpYnBhdGgsIGJlY2F1c2Ugb24gV2luZG93cywgYm90aCBhcmUgUEFUSCBhbmQg dW5pbnN0YWxsZWQKLSsJIyBsaWJyYXJpZXMgbXVzdCBjb21lIGZpcnN0LgotKwlpZiB0ZXN0IC1u ICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KLSsJICAkRUNITyAiXAotKyAgICAjIEFkZCB0aGUgZGxs IHNlYXJjaCBwYXRoIGNvbXBvbmVudHMgdG8gdGhlIGV4ZWN1dGFibGUgUEFUSAotKyAgICBQQVRI PSRkbGxzZWFyY2hwYXRoOlwkUEFUSAotKyIKLSsJZmkKLSsKLSsJIyBFeHBvcnQgb3VyIHNobGli cGF0aF92YXIgaWYgd2UgaGF2ZSBvbmUuCi0rCWlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGgiID0geWVzICYmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIk dGVtcF9ycGF0aCI7IHRoZW4KLSsJICAkRUNITyAiXAotKyAgICAjIEFkZCBvdXIgb3duIGxpYnJh cnkgcGF0aCB0byAkc2hsaWJwYXRoX3ZhcgotKyAgICAkc2hsaWJwYXRoX3Zhcj1cIiR0ZW1wX3Jw YXRoXCQkc2hsaWJwYXRoX3ZhclwiCi0rCi0rICAgICMgU29tZSBzeXN0ZW1zIGNhbm5vdCBjb3Bl IHdpdGggY29sb24tdGVybWluYXRlZCAkc2hsaWJwYXRoX3ZhcgotKyAgICAjIFRoZSBzZWNvbmQg Y29sb24gaXMgYSB3b3JrYXJvdW5kIGZvciBhIGJ1ZyBpbiBCZU9TIFI0IHNlZAotKyAgICAkc2hs aWJwYXRoX3Zhcj1cYFwkRUNITyBcIlwkJHNobGlicGF0aF92YXJcIiB8ICRTRUQgJ3MvOjoqXCQv LydcYAotKwotKyAgICBleHBvcnQgJHNobGlicGF0aF92YXIKLSsiCi0rCWZpCi0rCi0rCSRFQ0hP ICJcCi0rICAgIGlmIHRlc3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2lj XCI7IHRoZW4KLSsgICAgICAjIFJ1biB0aGUgYWN0dWFsIHByb2dyYW0gd2l0aCBvdXIgYXJndW1l bnRzLgotKyAgICAgIGZ1bmNfZXhlY19wcm9ncmFtIFwkezErXCJcJEBcIn0KLSsgICAgZmkKLSsg IGVsc2UKLSsgICAgIyBUaGUgcHJvZ3JhbSBkb2Vzbid0IGV4aXN0LgotKyAgICBcJEVDSE8gXCJc JDA6IGVycm9yOiBcXFxgXCRwcm9nZGlyL1wkcHJvZ3JhbScgZG9lcyBub3QgZXhpc3RcIiAxPiYy Ci0rICAgIFwkRUNITyBcIlRoaXMgc2NyaXB0IGlzIGp1c3QgYSB3cmFwcGVyIGZvciBcJHByb2dy YW0uXCIgMT4mMgotKyAgICBcJEVDSE8gXCJTZWUgdGhlICRQQUNLQUdFIGRvY3VtZW50YXRpb24g Zm9yIG1vcmUgaW5mb3JtYXRpb24uXCIgMT4mMgotKyAgICBleGl0IDEKLSsgIGZpCi0rZmlcCi0r IgotK30KLSsKLSsKLSsjIGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMKLSsjIGVtaXQgdGhlIHNv dXJjZSBjb2RlIGZvciBhIHdyYXBwZXIgZXhlY3V0YWJsZSBvbiBzdGRvdXQKLSsjIE11c3QgT05M WSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gZnVuY19tb2RlX2xpbmsgYmVjYXVzZQotKyMgaXQgZGVw ZW5kcyBvbiBhIG51bWJlciBvZiB2YXJpYWJsZSBzZXQgdGhlcmVpbi4KLStmdW5jX2VtaXRfY3dy YXBwZXJleGVfc3JjICgpCi0rewotKwljYXQgPDxFT0YKLSsKLSsvKiAkY3dyYXBwZXJzb3VyY2Ug LSB0ZW1wb3Jhcnkgd3JhcHBlciBleGVjdXRhYmxlIGZvciAkb2JqZGlyLyRvdXRwdXRuYW1lCi0r ICAgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lP TgotKwotKyAgIFRoZSAkb3V0cHV0IHByb2dyYW0gY2Fubm90IGJlIGRpcmVjdGx5IGV4ZWN1dGVk IHVudGlsIGFsbCB0aGUgbGlidG9vbAotKyAgIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMgb24g YXJlIGluc3RhbGxlZC4KLSsKLSsgICBUaGlzIHdyYXBwZXIgZXhlY3V0YWJsZSBzaG91bGQgbmV2 ZXIgYmUgbW92ZWQgb3V0IG9mIHRoZSBidWlsZCBkaXJlY3RvcnkuCi0rICAgSWYgaXQgaXMsIGl0 IHdpbGwgbm90IG9wZXJhdGUgY29ycmVjdGx5LgotKyovCi0rRU9GCi0rCSAgICBjYXQgPDwiRU9G IgotKyNpZmRlZiBfTVNDX1ZFUgotKyMgZGVmaW5lIF9DUlRfU0VDVVJFX05PX0RFUFJFQ0FURSAx Ci0rI2VuZGlmCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNp ZmRlZiBfTVNDX1ZFUgotKyMgaW5jbHVkZSA8ZGlyZWN0Lmg+Ci0rIyBpbmNsdWRlIDxwcm9jZXNz Lmg+Ci0rIyBpbmNsdWRlIDxpby5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDx1bmlzdGQuaD4KLSsj IGluY2x1ZGUgPHN0ZGludC5oPgotKyMgaWZkZWYgX19DWUdXSU5fXwotKyMgIGluY2x1ZGUgPGlv Lmg+Ci0rIyBlbmRpZgotKyNlbmRpZgotKyNpbmNsdWRlIDxtYWxsb2MuaD4KLSsjaW5jbHVkZSA8 c3RkYXJnLmg+Ci0rI2luY2x1ZGUgPGFzc2VydC5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsj aW5jbHVkZSA8Y3R5cGUuaD4KLSsjaW5jbHVkZSA8ZXJybm8uaD4KLSsjaW5jbHVkZSA8ZmNudGwu aD4KLSsjaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSsKLSsvKiBkZWNsYXJhdGlvbnMgb2Ygbm9uLUFO U0kgZnVuY3Rpb25zICovCi0rI2lmIGRlZmluZWQoX19NSU5HVzMyX18pCi0rIyBpZmRlZiBfX1NU UklDVF9BTlNJX18KLStpbnQgX3B1dGVudiAoY29uc3QgY2hhciAqKTsKLSsjIGVuZGlmCi0rI2Vs aWYgZGVmaW5lZChfX0NZR1dJTl9fKQotKyMgaWZkZWYgX19TVFJJQ1RfQU5TSV9fCi0rY2hhciAq cmVhbHBhdGggKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKLStpbnQgcHV0ZW52IChjaGFyICopOwot K2ludCBzZXRlbnYgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBpbnQpOwotKyMgZW5kaWYK LSsvKiAjZWxpZiBkZWZpbmVkIChvdGhlciBwbGF0Zm9ybXMpIC4uLiAqLwotKyNlbmRpZgotKwot Ky8qIHBvcnRhYmlsaXR5IGRlZmluZXMsIGV4Y2x1ZGluZyBwYXRoIGhhbmRsaW5nIG1hY3JvcyAq LwotKyNpZiBkZWZpbmVkKF9NU0NfVkVSKQotKyMgZGVmaW5lIHNldG1vZGUgX3NldG1vZGUKLSsj IGRlZmluZSBzdGF0ICAgIF9zdGF0Ci0rIyBkZWZpbmUgY2htb2QgICBfY2htb2QKLSsjIGRlZmlu ZSBnZXRjd2QgIF9nZXRjd2QKLSsjIGRlZmluZSBwdXRlbnYgIF9wdXRlbnYKLSsjIGRlZmluZSBT X0lYVVNSIF9TX0lFWEVDCi0rIyBpZm5kZWYgX0lOVFBUUl9UX0RFRklORUQKLSsjICBkZWZpbmUg X0lOVFBUUl9UX0RFRklORUQKLSsjICBkZWZpbmUgaW50cHRyX3QgaW50Ci0rIyBlbmRpZgotKyNl bGlmIGRlZmluZWQoX19NSU5HVzMyX18pCi0rIyBkZWZpbmUgc2V0bW9kZSBfc2V0bW9kZQotKyMg ZGVmaW5lIHN0YXQgICAgX3N0YXQKLSsjIGRlZmluZSBjaG1vZCAgIF9jaG1vZAotKyMgZGVmaW5l IGdldGN3ZCAgX2dldGN3ZAotKyMgZGVmaW5lIHB1dGVudiAgX3B1dGVudgotKyNlbGlmIGRlZmlu ZWQoX19DWUdXSU5fXykKLSsjIGRlZmluZSBIQVZFX1NFVEVOVgotKyMgZGVmaW5lIEZPUEVOX1dC ICJ3YiIKLSsvKiAjZWxpZiBkZWZpbmVkIChvdGhlciBwbGF0Zm9ybXMpIC4uLiAqLwotKyNlbmRp ZgotKwotKyNpZiBkZWZpbmVkKFBBVEhfTUFYKQotKyMgZGVmaW5lIExUX1BBVEhNQVggUEFUSF9N QVgKLSsjZWxpZiBkZWZpbmVkKE1BWFBBVEhMRU4pCi0rIyBkZWZpbmUgTFRfUEFUSE1BWCBNQVhQ QVRITEVOCi0rI2Vsc2UKLSsjIGRlZmluZSBMVF9QQVRITUFYIDEwMjQKLSsjZW5kaWYKLSsKLSsj aWZuZGVmIFNfSVhPVEgKLSsjIGRlZmluZSBTX0lYT1RIIDAKLSsjZW5kaWYKLSsjaWZuZGVmIFNf SVhHUlAKLSsjIGRlZmluZSBTX0lYR1JQIDAKLSsjZW5kaWYKLSsKLSsvKiBwYXRoIGhhbmRsaW5n IHBvcnRhYmlsaXR5IG1hY3JvcyAqLwotKyNpZm5kZWYgRElSX1NFUEFSQVRPUgotKyMgZGVmaW5l IERJUl9TRVBBUkFUT1IgJy8nCi0rIyBkZWZpbmUgUEFUSF9TRVBBUkFUT1IgJzonCi0rI2VuZGlm Ci0rCi0rI2lmIGRlZmluZWQgKF9XSU4zMikgfHwgZGVmaW5lZCAoX19NU0RPU19fKSB8fCBkZWZp bmVkIChfX0RKR1BQX18pIHx8IFwKLSsgIGRlZmluZWQgKF9fT1MyX18pCi0rIyBkZWZpbmUgSEFW RV9ET1NfQkFTRURfRklMRV9TWVNURU0KLSsjIGRlZmluZSBGT1BFTl9XQiAid2IiCi0rIyBpZm5k ZWYgRElSX1NFUEFSQVRPUl8yCi0rIyAgZGVmaW5lIERJUl9TRVBBUkFUT1JfMiAnXFwnCi0rIyBl bmRpZgotKyMgaWZuZGVmIFBBVEhfU0VQQVJBVE9SXzIKLSsjICBkZWZpbmUgUEFUSF9TRVBBUkFU T1JfMiAnOycKLSsjIGVuZGlmCi0rI2VuZGlmCi0rCi0rI2lmbmRlZiBESVJfU0VQQVJBVE9SXzIK LSsjIGRlZmluZSBJU19ESVJfU0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBESVJfU0VQQVJBVE9SKQot KyNlbHNlIC8qIERJUl9TRVBBUkFUT1JfMiAqLwotKyMgZGVmaW5lIElTX0RJUl9TRVBBUkFUT1Io Y2gpIFwKLSsJKCgoY2gpID09IERJUl9TRVBBUkFUT1IpIHx8ICgoY2gpID09IERJUl9TRVBBUkFU T1JfMikpCi0rI2VuZGlmIC8qIERJUl9TRVBBUkFUT1JfMiAqLwotKwotKyNpZm5kZWYgUEFUSF9T RVBBUkFUT1JfMgotKyMgZGVmaW5lIElTX1BBVEhfU0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBQQVRI X1NFUEFSQVRPUikKLSsjZWxzZSAvKiBQQVRIX1NFUEFSQVRPUl8yICovCi0rIyBkZWZpbmUgSVNf UEFUSF9TRVBBUkFUT1IoY2gpICgoY2gpID09IFBBVEhfU0VQQVJBVE9SXzIpCi0rI2VuZGlmIC8q IFBBVEhfU0VQQVJBVE9SXzIgKi8KLSsKLSsjaWZuZGVmIEZPUEVOX1dCCi0rIyBkZWZpbmUgRk9Q RU5fV0IgInciCi0rI2VuZGlmCi0rI2lmbmRlZiBfT19CSU5BUlkKLSsjIGRlZmluZSBfT19CSU5B UlkgMAotKyNlbmRpZgotKwotKyNkZWZpbmUgWE1BTExPQyh0eXBlLCBudW0pICAgICAgKCh0eXBl ICopIHhtYWxsb2MgKChudW0pICogc2l6ZW9mKHR5cGUpKSkKLSsjZGVmaW5lIFhGUkVFKHN0YWxl KSBkbyB7IFwKLSsgIGlmIChzdGFsZSkgeyBmcmVlICgodm9pZCAqKSBzdGFsZSk7IHN0YWxlID0g MDsgfSBcCi0rfSB3aGlsZSAoMCkKLSsKLSsjaWYgZGVmaW5lZChMVF9ERUJVR1dSQVBQRVIpCi0r c3RhdGljIGludCBsdF9kZWJ1ZyA9IDE7Ci0rI2Vsc2UKLStzdGF0aWMgaW50IGx0X2RlYnVnID0g MDsKLSsjZW5kaWYKLSsKLStjb25zdCBjaGFyICpwcm9ncmFtX25hbWUgPSAibGlidG9vbC13cmFw cGVyIjsgLyogaW4gY2FzZSB4c3RyZHVwIGZhaWxzICovCi0rCi0rdm9pZCAqeG1hbGxvYyAoc2l6 ZV90IG51bSk7Ci0rY2hhciAqeHN0cmR1cCAoY29uc3QgY2hhciAqc3RyaW5nKTsKLStjb25zdCBj aGFyICpiYXNlX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpOwotK2NoYXIgKmZpbmRfZXhlY3V0YWJs ZSAoY29uc3QgY2hhciAqd3JhcHBlcik7Ci0rY2hhciAqY2hhc2Vfc3ltbGlua3MgKGNvbnN0IGNo YXIgKnBhdGhzcGVjKTsKLStpbnQgbWFrZV9leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKTsK LStpbnQgY2hlY2tfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCk7Ci0rY2hhciAqc3RyZW5k emFwIChjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnBhdCk7Ci0rdm9pZCBsdF9kZWJ1Z3ByaW50ZiAo Y29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKLSt2b2lk IGx0X2ZhdGFsIChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciAqbWVzc2Fn ZSwgLi4uKTsKLStzdGF0aWMgY29uc3QgY2hhciAqbm9ubnVsbCAoY29uc3QgY2hhciAqcyk7Ci0r c3RhdGljIGNvbnN0IGNoYXIgKm5vbmVtcHR5IChjb25zdCBjaGFyICpzKTsKLSt2b2lkIGx0X3Nl dGVudiAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOwotK2NoYXIgKmx0X2V4 dGVuZF9zdHIgKGNvbnN0IGNoYXIgKm9yaWdfdmFsdWUsIGNvbnN0IGNoYXIgKmFkZCwgaW50IHRv X2VuZCk7Ci0rdm9pZCBsdF91cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0 IGNoYXIgKnZhbHVlKTsKLSt2b2lkIGx0X3VwZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAqbmFt ZSwgY29uc3QgY2hhciAqdmFsdWUpOwotK2NoYXIgKipwcmVwYXJlX3NwYXduIChjaGFyICoqYXJn dik7Ci0rdm9pZCBsdF9kdW1wX3NjcmlwdCAoRklMRSAqZik7Ci0rRU9GCi0rCi0rCSAgICBjYXQg PDxFT0YKLSt2b2xhdGlsZSBjb25zdCBjaGFyICogTUFHSUNfRVhFID0gIiRtYWdpY19leGUiOwot K2NvbnN0IGNoYXIgKiBMSUJfUEFUSF9WQVJOQU1FID0gIiRzaGxpYnBhdGhfdmFyIjsKLStFT0YK LSsKLSsJICAgIGlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzICYm IHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4K LSsgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoICIkdGVtcF9ycGF0aCIKLSsJICAgICAg Y2F0IDw8RU9GCi0rY29uc3QgY2hhciAqIExJQl9QQVRIX1ZBTFVFICAgPSAiJGZ1bmNfdG9faG9z dF9wYXRoX3Jlc3VsdCI7Ci0rRU9GCi0rCSAgICBlbHNlCi0rCSAgICAgIGNhdCA8PCJFT0YiCi0r Y29uc3QgY2hhciAqIExJQl9QQVRIX1ZBTFVFICAgPSAiIjsKLStFT0YKLSsJICAgIGZpCi0rCi0r CSAgICBpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KLSsgICAgICAgICAgICAgIGZ1 bmNfdG9faG9zdF9wYXRoICIkZGxsc2VhcmNocGF0aDoiCi0rCSAgICAgIGNhdCA8PEVPRgotK2Nv bnN0IGNoYXIgKiBFWEVfUEFUSF9WQVJOQU1FID0gIlBBVEgiOwotK2NvbnN0IGNoYXIgKiBFWEVf UEFUSF9WQUxVRSAgID0gIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiOwotK0VPRgotKwkgICAg ZWxzZQotKwkgICAgICBjYXQgPDwiRU9GIgotK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQVJOQU1F ID0gIiI7Ci0rY29uc3QgY2hhciAqIEVYRV9QQVRIX1ZBTFVFICAgPSAiIjsKLStFT0YKLSsJICAg IGZpCi0rCi0rCSAgICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllczsgdGhlbgotKwkgICAg ICBjYXQgPDxFT0YKLStjb25zdCBjaGFyICogVEFSR0VUX1BST0dSQU1fTkFNRSA9ICJsdC0kb3V0 cHV0bmFtZSI7IC8qIGhvcGVmdWxseSwgbm8gLmV4ZSAqLwotK0VPRgotKwkgICAgZWxzZQotKwkg ICAgICBjYXQgPDxFT0YKLStjb25zdCBjaGFyICogVEFSR0VUX1BST0dSQU1fTkFNRSA9ICIkb3V0 cHV0bmFtZSI7IC8qIGhvcGVmdWxseSwgbm8gLmV4ZSAqLwotK0VPRgotKwkgICAgZmkKLSsKLSsK LSsJICAgIGNhdCA8PCJFT0YiCi0rCi0rI2RlZmluZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAg ICAgICAgICItLWx0LSIKLSsKLStzdGF0aWMgY29uc3QgY2hhciAqbHR3cmFwcGVyX29wdGlvbl9w cmVmaXggPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWDsKLStzdGF0aWMgY29uc3QgY2hhciAqZHVt cHNjcmlwdF9vcHQgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZHVtcC1zY3JpcHQi OwotK3N0YXRpYyBjb25zdCBjaGFyICpkZWJ1Z19vcHQgICAgICAgICAgICA9IExUV1JBUFBFUl9P UFRJT05fUFJFRklYICJkZWJ1ZyI7Ci0rCi0raW50Ci0rbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSkKLSt7Ci0rICBjaGFyICoqbmV3YXJnejsKLSsgIGludCAgbmV3YXJnYzsKLSsgIGNoYXIg KnRtcF9wYXRoc3BlYzsKLSsgIGNoYXIgKmFjdHVhbF9jd3JhcHBlcl9wYXRoOwotKyAgY2hhciAq YWN0dWFsX2N3cmFwcGVyX25hbWU7Ci0rICBjaGFyICp0YXJnZXRfbmFtZTsKLSsgIGNoYXIgKmx0 X2FyZ3ZfemVybzsKLSsgIGludHB0cl90IHJ2YWwgPSAxMjc7Ci0rCi0rICBpbnQgaTsKLSsKLSsg IHByb2dyYW1fbmFtZSA9IChjaGFyICopIHhzdHJkdXAgKGJhc2VfbmFtZSAoYXJndlswXSkpOwot KyAgbmV3YXJneiA9IFhNQUxMT0MgKGNoYXIgKiwgYXJnYyArIDEpOwotKwotKyAgLyogdmVyeSBz aW1wbGUgYXJnIHBhcnNpbmc7IGRvbid0IHdhbnQgdG8gcmVseSBvbiBnZXRvcHQKLSsgICAqIGFs c28sIGNvcHkgYWxsIG5vbiBjd3JhcHBlciBvcHRpb25zIHRvIG5ld2FyZ3osIGV4Y2VwdAotKyAg ICogYXJnelswXSwgd2hpY2ggaXMgaGFuZGxlZCBkaWZmZXJlbnRseQotKyAgICovCi0rICBuZXdh cmdjPTA7Ci0rICBmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKQotKyAgICB7Ci0rICAgICAgaWYg KHN0cmNtcCAoYXJndltpXSwgZHVtcHNjcmlwdF9vcHQpID09IDApCi0rCXsKLStFT0YKLSsJICAg IGNhc2UgIiRob3N0IiBpbgotKwkgICAgICAqbWluZ3cqIHwgKmN5Z3dpbiogKQotKwkJIyBtYWtl IHN0ZG91dCB1c2UgInVuaXgiIGxpbmUgZW5kaW5ncwotKwkJZWNobyAiICAgICAgICAgIHNldG1v ZGUoMSxfT19CSU5BUlkpOyIKLSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsKLSsJICAgIGNhdCA8PCJF T0YiCi0rCSAgbHRfZHVtcF9zY3JpcHQgKHN0ZG91dCk7Ci0rCSAgcmV0dXJuIDA7Ci0rCX0KLSsg ICAgICBpZiAoc3RyY21wIChhcmd2W2ldLCBkZWJ1Z19vcHQpID09IDApCi0rCXsKLSsgICAgICAg ICAgbHRfZGVidWcgPSAxOwotKyAgICAgICAgICBjb250aW51ZTsKLSsJfQotKyAgICAgIGlmIChz dHJjbXAgKGFyZ3ZbaV0sIGx0d3JhcHBlcl9vcHRpb25fcHJlZml4KSA9PSAwKQotKyAgICAgICAg ewotKyAgICAgICAgICAvKiBob3dldmVyLCBpZiB0aGVyZSBpcyBhbiBvcHRpb24gaW4gdGhlIExU V1JBUFBFUl9PUFRJT05fUFJFRklYCi0rICAgICAgICAgICAgIG5hbWVzcGFjZSwgYnV0IGl0IGlz IG5vdCBvbmUgb2YgdGhlIG9uZXMgd2Uga25vdyBhYm91dCBhbmQKLSsgICAgICAgICAgICAgaGF2 ZSBhbHJlYWR5IGRlYWx0IHdpdGgsIGFib3ZlIChpbmx1ZGluZyBkdW1wLXNjcmlwdCksIHRoZW4K LSsgICAgICAgICAgICAgcmVwb3J0IGFuIGVycm9yLiBPdGhlcndpc2UsIHRhcmdldHMgbWlnaHQg YmVnaW4gdG8gYmVsaWV2ZQotKyAgICAgICAgICAgICB0aGV5IGFyZSBhbGxvd2VkIHRvIHVzZSBv cHRpb25zIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAotKyAgICAgICAgICAgICBuYW1l c3BhY2UuIFRoZSBmaXJzdCB0aW1lIGFueSB1c2VyIGNvbXBsYWlucyBhYm91dCB0aGlzLCB3ZSds bAotKyAgICAgICAgICAgICBuZWVkIHRvIG1ha2UgTFRXUkFQUEVSX09QVElPTl9QUkVGSVggYSBj b25maWd1cmUtdGltZSBvcHRpb24KLSsgICAgICAgICAgICAgb3IgYSBjb25maWd1cmUuYWMtc2V0 dGFibGUgdmFsdWUuCi0rICAgICAgICAgICAqLwotKyAgICAgICAgICBsdF9mYXRhbCAoX19GSUxF X18sIF9fTElORV9fLAotKwkJICAgICJ1bnJlY29nbml6ZWQgJXMgb3B0aW9uOiAnJXMnIiwKLSsg ICAgICAgICAgICAgICAgICAgIGx0d3JhcHBlcl9vcHRpb25fcHJlZml4LCBhcmd2W2ldKTsKLSsg ICAgICAgIH0KLSsgICAgICAvKiBvdGhlcndpc2UgLi4uICovCi0rICAgICAgbmV3YXJnelsrK25l d2FyZ2NdID0geHN0cmR1cCAoYXJndltpXSk7Ci0rICAgIH0KLSsgIG5ld2FyZ3pbKytuZXdhcmdj XSA9IE5VTEw7Ci0rCi0rRU9GCi0rCSAgICBjYXQgPDxFT0YKLSsgIC8qIFRoZSBHTlUgYmFubmVy IG11c3QgYmUgdGhlIGZpcnN0IG5vbi1lcnJvciBkZWJ1ZyBtZXNzYWdlICovCi0rICBsdF9kZWJ1 Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAibGlidG9vbCB3cmFwcGVyIChHTlUgJFBBQ0tB R0UkVElNRVNUQU1QKSAkVkVSU0lPTlxuIik7Ci0rRU9GCi0rCSAgICBjYXQgPDwiRU9GIgotKyAg bHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgIihtYWluKSBhcmd2WzBdOiAlc1xu IiwgYXJndlswXSk7Ci0rICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKG1h aW4pIHByb2dyYW1fbmFtZTogJXNcbiIsIHByb2dyYW1fbmFtZSk7Ci0rCi0rICB0bXBfcGF0aHNw ZWMgPSBmaW5kX2V4ZWN1dGFibGUgKGFyZ3ZbMF0pOwotKyAgaWYgKHRtcF9wYXRoc3BlYyA9PSBO VUxMKQotKyAgICBsdF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLCAiY291bGRuJ3QgZmluZCAl cyIsIGFyZ3ZbMF0pOwotKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKLSsg ICAgICAgICAgICAgICAgICAiKG1haW4pIGZvdW5kIGV4ZSAoYmVmb3JlIHN5bWxpbmsgY2hhc2Up IGF0OiAlc1xuIiwKLSsJCSAgdG1wX3BhdGhzcGVjKTsKLSsKLSsgIGFjdHVhbF9jd3JhcHBlcl9w YXRoID0gY2hhc2Vfc3ltbGlua3MgKHRtcF9wYXRoc3BlYyk7Ci0rICBsdF9kZWJ1Z3ByaW50ZiAo X19GSUxFX18sIF9fTElORV9fLAotKyAgICAgICAgICAgICAgICAgICIobWFpbikgZm91bmQgZXhl IChhZnRlciBzeW1saW5rIGNoYXNlKSBhdDogJXNcbiIsCi0rCQkgIGFjdHVhbF9jd3JhcHBlcl9w YXRoKTsKLSsgIFhGUkVFICh0bXBfcGF0aHNwZWMpOwotKwotKyAgYWN0dWFsX2N3cmFwcGVyX25h bWUgPSB4c3RyZHVwIChiYXNlX25hbWUgKGFjdHVhbF9jd3JhcHBlcl9wYXRoKSk7Ci0rICBzdHJl bmR6YXAgKGFjdHVhbF9jd3JhcHBlcl9wYXRoLCBhY3R1YWxfY3dyYXBwZXJfbmFtZSk7Ci0rCi0r ICAvKiB3cmFwcGVyIG5hbWUgdHJhbnNmb3JtcyAqLwotKyAgc3RyZW5kemFwIChhY3R1YWxfY3dy YXBwZXJfbmFtZSwgIi5leGUiKTsKLSsgIHRtcF9wYXRoc3BlYyA9IGx0X2V4dGVuZF9zdHIgKGFj dHVhbF9jd3JhcHBlcl9uYW1lLCAiLmV4ZSIsIDEpOwotKyAgWEZSRUUgKGFjdHVhbF9jd3JhcHBl cl9uYW1lKTsKLSsgIGFjdHVhbF9jd3JhcHBlcl9uYW1lID0gdG1wX3BhdGhzcGVjOwotKyAgdG1w X3BhdGhzcGVjID0gMDsKLSsKLSsgIC8qIHRhcmdldF9uYW1lIHRyYW5zZm9ybXMgLS0gdXNlIGFj dHVhbCB0YXJnZXQgcHJvZ3JhbSBuYW1lOyBtaWdodCBoYXZlIGx0LSBwcmVmaXggKi8KLSsgIHRh cmdldF9uYW1lID0geHN0cmR1cCAoYmFzZV9uYW1lIChUQVJHRVRfUFJPR1JBTV9OQU1FKSk7Ci0r ICBzdHJlbmR6YXAgKHRhcmdldF9uYW1lLCAiLmV4ZSIpOwotKyAgdG1wX3BhdGhzcGVjID0gbHRf ZXh0ZW5kX3N0ciAodGFyZ2V0X25hbWUsICIuZXhlIiwgMSk7Ci0rICBYRlJFRSAodGFyZ2V0X25h bWUpOwotKyAgdGFyZ2V0X25hbWUgPSB0bXBfcGF0aHNwZWM7Ci0rICB0bXBfcGF0aHNwZWMgPSAw OwotKwotKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKLSsJCSAgIihtYWlu KSBsaWJ0b29sIHRhcmdldCBuYW1lOiAlc1xuIiwKLSsJCSAgdGFyZ2V0X25hbWUpOwotK0VPRgot KwotKwkgICAgY2F0IDw8RU9GCi0rICBuZXdhcmd6WzBdID0KLSsgICAgWE1BTExPQyAoY2hhciwg KHN0cmxlbiAoYWN0dWFsX2N3cmFwcGVyX3BhdGgpICsKLSsJCSAgICBzdHJsZW4gKCIkb2JqZGly IikgKyAxICsgc3RybGVuIChhY3R1YWxfY3dyYXBwZXJfbmFtZSkgKyAxKSk7Ci0rICBzdHJjcHkg KG5ld2FyZ3pbMF0sIGFjdHVhbF9jd3JhcHBlcl9wYXRoKTsKLSsgIHN0cmNhdCAobmV3YXJnelsw XSwgIiRvYmpkaXIiKTsKLSsgIHN0cmNhdCAobmV3YXJnelswXSwgIi8iKTsKLStFT0YKLSsKLSsJ ICAgIGNhdCA8PCJFT0YiCi0rICAvKiBzdG9wIGhlcmUsIGFuZCBjb3B5IHNvIHdlIGRvbid0IGhh dmUgdG8gZG8gdGhpcyB0d2ljZSAqLwotKyAgdG1wX3BhdGhzcGVjID0geHN0cmR1cCAobmV3YXJn elswXSk7Ci0rCi0rICAvKiBkbyBOT1Qgd2FudCB0aGUgbHQtIHByZWZpeCBoZXJlLCBzbyB1c2Ug YWN0dWFsX2N3cmFwcGVyX25hbWUgKi8KLSsgIHN0cmNhdCAobmV3YXJnelswXSwgYWN0dWFsX2N3 cmFwcGVyX25hbWUpOwotKwotKyAgLyogRE8gd2FudCB0aGUgbHQtIHByZWZpeCBoZXJlIGlmIGl0 IGV4aXN0cywgc28gdXNlIHRhcmdldF9uYW1lICovCi0rICBsdF9hcmd2X3plcm8gPSBsdF9leHRl bmRfc3RyICh0bXBfcGF0aHNwZWMsIHRhcmdldF9uYW1lLCAxKTsKLSsgIFhGUkVFICh0bXBfcGF0 aHNwZWMpOwotKyAgdG1wX3BhdGhzcGVjID0gTlVMTDsKLStFT0YKLSsKLSsJICAgIGNhc2UgJGhv c3Rfb3MgaW4KLSsJICAgICAgbWluZ3cqKQotKwkgICAgY2F0IDw8IkVPRiIKLSsgIHsKLSsgICAg Y2hhciogcDsKLSsgICAgd2hpbGUgKChwID0gc3RyY2hyIChuZXdhcmd6WzBdLCAnXFwnKSkgIT0g TlVMTCkKLSsgICAgICB7Ci0rCSpwID0gJy8nOwotKyAgICAgIH0KLSsgICAgd2hpbGUgKChwID0g c3RyY2hyIChsdF9hcmd2X3plcm8sICdcXCcpKSAhPSBOVUxMKQotKyAgICAgIHsKLSsJKnAgPSAn Lyc7Ci0rICAgICAgfQotKyAgfQotK0VPRgotKwkgICAgOzsKLSsJICAgIGVzYWMKLSsKLSsJICAg IGNhdCA8PCJFT0YiCi0rICBYRlJFRSAodGFyZ2V0X25hbWUpOwotKyAgWEZSRUUgKGFjdHVhbF9j d3JhcHBlcl9wYXRoKTsKLSsgIFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfbmFtZSk7Ci0rCi0rICBs dF9zZXRlbnYgKCJCSU5fU0giLCAieHBnNCIpOyAvKiBmb3IgVHJ1NjQgKi8KLSsgIGx0X3NldGVu diAoIkRVQUxDQVNFIiwgIjEiKTsgIC8qIGZvciBNU0sgc2ggKi8KLSsgIC8qIFVwZGF0ZSB0aGUg RExMIHNlYXJjaHBhdGguICBFWEVfUEFUSF9WQUxVRSAoJGRsbHNlYXJjaHBhdGgpIG11c3QKLSsg ICAgIGJlIHByZXBlbmRlZCBiZWZvcmUgKHRoYXQgaXMsIGFwcGVhciBhZnRlcikgTElCX1BBVEhf VkFMVUUgKCR0ZW1wX3JwYXRoKQotKyAgICAgYmVjYXVzZSBvbiBXaW5kb3dzLCBib3RoICpfVkFS TkFNRXMgYXJlIFBBVEggYnV0IHVuaW5zdGFsbGVkCi0rICAgICBsaWJyYXJpZXMgbXVzdCBjb21l IGZpcnN0LiAqLwotKyAgbHRfdXBkYXRlX2V4ZV9wYXRoIChFWEVfUEFUSF9WQVJOQU1FLCBFWEVf UEFUSF9WQUxVRSk7Ci0rICBsdF91cGRhdGVfbGliX3BhdGggKExJQl9QQVRIX1ZBUk5BTUUsIExJ Ql9QQVRIX1ZBTFVFKTsKLSsKLSsgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18s ICIobWFpbikgbHRfYXJndl96ZXJvOiAlc1xuIiwKLSsJCSAgbm9ubnVsbCAobHRfYXJndl96ZXJv KSk7Ci0rICBmb3IgKGkgPSAwOyBpIDwgbmV3YXJnYzsgaSsrKQotKyAgICB7Ci0rICAgICAgbHRf ZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgIihtYWluKSBuZXdhcmd6WyVkXTogJXNc biIsCi0rCQkgICAgICBpLCBub25udWxsIChuZXdhcmd6W2ldKSk7Ci0rICAgIH0KLSsKLStFT0YK LSsKLSsJICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsJICAgICAgbWluZ3cqKQotKwkJY2F0IDw8IkVP RiIKLSsgIC8qIGV4ZWN2IGRvZXNuJ3QgYWN0dWFsbHkgd29yayBvbiBtaW5ndyBhcyBleHBlY3Rl ZCBvbiB1bml4ICovCi0rICBuZXdhcmd6ID0gcHJlcGFyZV9zcGF3biAobmV3YXJneik7Ci0rICBy dmFsID0gX3NwYXdudiAoX1BfV0FJVCwgbHRfYXJndl96ZXJvLCAoY29uc3QgY2hhciAqIGNvbnN0 ICopIG5ld2FyZ3opOwotKyAgaWYgKHJ2YWwgPT0gLTEpCi0rICAgIHsKLSsgICAgICAvKiBmYWls ZWQgdG8gc3RhcnQgcHJvY2VzcyAqLwotKyAgICAgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywg X19MSU5FX18sCi0rCQkgICAgICAiKG1haW4pIGZhaWxlZCB0byBsYXVuY2ggdGFyZ2V0IFwiJXNc IjogJXNcbiIsCi0rCQkgICAgICBsdF9hcmd2X3plcm8sIG5vbm51bGwgKHN0cmVycm9yIChlcnJu bykpKTsKLSsgICAgICByZXR1cm4gMTI3OwotKyAgICB9Ci0rICByZXR1cm4gcnZhbDsKLStFT0YK LSsJCTs7Ci0rCSAgICAgICopCi0rCQljYXQgPDwiRU9GIgotKyAgZXhlY3YgKGx0X2FyZ3ZfemVy bywgbmV3YXJneik7Ci0rICByZXR1cm4gcnZhbDsgLyogPTEyNywgYnV0IGF2b2lkcyB1bnVzZWQg dmFyaWFibGUgd2FybmluZyAqLwotK0VPRgotKwkJOzsKLSsJICAgIGVzYWMKLSsKLSsJICAgIGNh dCA8PCJFT0YiCi0rfQotKwotK3ZvaWQgKgotK3htYWxsb2MgKHNpemVfdCBudW0pCi0rewotKyAg dm9pZCAqcCA9ICh2b2lkICopIG1hbGxvYyAobnVtKTsKLSsgIGlmICghcCkKLSsgICAgbHRfZmF0 YWwgKF9fRklMRV9fLCBfX0xJTkVfXywgIm1lbW9yeSBleGhhdXN0ZWQiKTsKLSsKLSsgIHJldHVy biBwOwotK30KLSsKLStjaGFyICoKLSt4c3RyZHVwIChjb25zdCBjaGFyICpzdHJpbmcpCi0rewot KyAgcmV0dXJuIHN0cmluZyA/IHN0cmNweSAoKGNoYXIgKikgeG1hbGxvYyAoc3RybGVuIChzdHJp bmcpICsgMSksCi0rCQkJICBzdHJpbmcpIDogTlVMTDsKLSt9Ci0rCi0rY29uc3QgY2hhciAqCi0r YmFzZV9uYW1lIChjb25zdCBjaGFyICpuYW1lKQotK3sKLSsgIGNvbnN0IGNoYXIgKmJhc2U7Ci0r Ci0rI2lmIGRlZmluZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQotKyAgLyogU2tpcCBv dmVyIHRoZSBkaXNrIG5hbWUgaW4gTVNET1MgcGF0aG5hbWVzLiAqLwotKyAgaWYgKGlzYWxwaGEg KCh1bnNpZ25lZCBjaGFyKSBuYW1lWzBdKSAmJiBuYW1lWzFdID09ICc6JykKLSsgICAgbmFtZSAr PSAyOwotKyNlbmRpZgotKwotKyAgZm9yIChiYXNlID0gbmFtZTsgKm5hbWU7IG5hbWUrKykKLSsg ICAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKCpuYW1lKSkKLSsgICAgICBiYXNlID0gbmFtZSArIDE7 Ci0rICByZXR1cm4gYmFzZTsKLSt9Ci0rCi0raW50Ci0rY2hlY2tfZXhlY3V0YWJsZSAoY29uc3Qg Y2hhciAqcGF0aCkKLSt7Ci0rICBzdHJ1Y3Qgc3RhdCBzdDsKLSsKLSsgIGx0X2RlYnVncHJpbnRm IChfX0ZJTEVfXywgX19MSU5FX18sICIoY2hlY2tfZXhlY3V0YWJsZSk6ICVzXG4iLAotKyAgICAg ICAgICAgICAgICAgIG5vbmVtcHR5IChwYXRoKSk7Ci0rICBpZiAoKCFwYXRoKSB8fCAoISpwYXRo KSkKLSsgICAgcmV0dXJuIDA7Ci0rCi0rICBpZiAoKHN0YXQgKHBhdGgsICZzdCkgPj0gMCkKLSsg ICAgICAmJiAoc3Quc3RfbW9kZSAmIChTX0lYVVNSIHwgU19JWEdSUCB8IFNfSVhPVEgpKSkKLSsg ICAgcmV0dXJuIDE7Ci0rICBlbHNlCi0rICAgIHJldHVybiAwOwotK30KLSsKLStpbnQKLSttYWtl X2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBhdGgpCi0rewotKyAgaW50IHJ2YWwgPSAwOwotKyAg c3RydWN0IHN0YXQgc3Q7Ci0rCi0rICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9f LCAiKG1ha2VfZXhlY3V0YWJsZSk6ICVzXG4iLAotKyAgICAgICAgICAgICAgICAgIG5vbmVtcHR5 IChwYXRoKSk7Ci0rICBpZiAoKCFwYXRoKSB8fCAoISpwYXRoKSkKLSsgICAgcmV0dXJuIDA7Ci0r Ci0rICBpZiAoc3RhdCAocGF0aCwgJnN0KSA+PSAwKQotKyAgICB7Ci0rICAgICAgcnZhbCA9IGNo bW9kIChwYXRoLCBzdC5zdF9tb2RlIHwgU19JWE9USCB8IFNfSVhHUlAgfCBTX0lYVVNSKTsKLSsg ICAgfQotKyAgcmV0dXJuIHJ2YWw7Ci0rfQotKwotKy8qIFNlYXJjaGVzIGZvciB0aGUgZnVsbCBw YXRoIG9mIHRoZSB3cmFwcGVyLiAgUmV0dXJucwotKyAgIG5ld2x5IGFsbG9jYXRlZCBmdWxsIHBh dGggbmFtZSBpZiBmb3VuZCwgTlVMTCBvdGhlcndpc2UKLSsgICBEb2VzIG5vdCBjaGFzZSBzeW1s aW5rcywgZXZlbiBvbiBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0IHRoZW0uCi0rKi8KLStjaGFyICoK LStmaW5kX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKndyYXBwZXIpCi0rewotKyAgaW50IGhhc19z bGFzaCA9IDA7Ci0rICBjb25zdCBjaGFyICpwOwotKyAgY29uc3QgY2hhciAqcF9uZXh0OwotKyAg Lyogc3RhdGljIGJ1ZmZlciBmb3IgZ2V0Y3dkICovCi0rICBjaGFyIHRtcFtMVF9QQVRITUFYICsg MV07Ci0rICBpbnQgdG1wX2xlbjsKLSsgIGNoYXIgKmNvbmNhdF9uYW1lOwotKwotKyAgbHRfZGVi dWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgIihmaW5kX2V4ZWN1dGFibGUpOiAlc1xuIiwK LSsgICAgICAgICAgICAgICAgICBub25lbXB0eSAod3JhcHBlcikpOwotKwotKyAgaWYgKCh3cmFw cGVyID09IE5VTEwpIHx8ICgqd3JhcHBlciA9PSAnXDAnKSkKLSsgICAgcmV0dXJuIE5VTEw7Ci0r Ci0rICAvKiBBYnNvbHV0ZSBwYXRoPyAqLwotKyNpZiBkZWZpbmVkIChIQVZFX0RPU19CQVNFRF9G SUxFX1NZU1RFTSkKLSsgIGlmIChpc2FscGhhICgodW5zaWduZWQgY2hhcikgd3JhcHBlclswXSkg JiYgd3JhcHBlclsxXSA9PSAnOicpCi0rICAgIHsKLSsgICAgICBjb25jYXRfbmFtZSA9IHhzdHJk dXAgKHdyYXBwZXIpOwotKyAgICAgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFtZSkp Ci0rCXJldHVybiBjb25jYXRfbmFtZTsKLSsgICAgICBYRlJFRSAoY29uY2F0X25hbWUpOwotKyAg ICB9Ci0rICBlbHNlCi0rICAgIHsKLSsjZW5kaWYKLSsgICAgICBpZiAoSVNfRElSX1NFUEFSQVRP UiAod3JhcHBlclswXSkpCi0rCXsKLSsJICBjb25jYXRfbmFtZSA9IHhzdHJkdXAgKHdyYXBwZXIp OwotKwkgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFtZSkpCi0rCSAgICByZXR1cm4g Y29uY2F0X25hbWU7Ci0rCSAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKLSsJfQotKyNpZiBkZWZpbmVk IChIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTSkKLSsgICAgfQotKyNlbmRpZgotKwotKyAgZm9y IChwID0gd3JhcHBlcjsgKnA7IHArKykKLSsgICAgaWYgKCpwID09ICcvJykKLSsgICAgICB7Ci0r CWhhc19zbGFzaCA9IDE7Ci0rCWJyZWFrOwotKyAgICAgIH0KLSsgIGlmICghaGFzX3NsYXNoKQot KyAgICB7Ci0rICAgICAgLyogbm8gc2xhc2hlczsgc2VhcmNoIFBBVEggKi8KLSsgICAgICBjb25z dCBjaGFyICpwYXRoID0gZ2V0ZW52ICgiUEFUSCIpOwotKyAgICAgIGlmIChwYXRoICE9IE5VTEwp Ci0rCXsKLSsJICBmb3IgKHAgPSBwYXRoOyAqcDsgcCA9IHBfbmV4dCkKLSsJICAgIHsKLSsJICAg ICAgY29uc3QgY2hhciAqcTsKLSsJICAgICAgc2l6ZV90IHBfbGVuOwotKwkgICAgICBmb3IgKHEg PSBwOyAqcTsgcSsrKQotKwkJaWYgKElTX1BBVEhfU0VQQVJBVE9SICgqcSkpCi0rCQkgIGJyZWFr OwotKwkgICAgICBwX2xlbiA9IHEgLSBwOwotKwkgICAgICBwX25leHQgPSAoKnEgPT0gJ1wwJyA/ IHEgOiBxICsgMSk7Ci0rCSAgICAgIGlmIChwX2xlbiA9PSAwKQotKwkJewotKwkJICAvKiBlbXB0 eSBwYXRoOiBjdXJyZW50IGRpcmVjdG9yeSAqLwotKwkJICBpZiAoZ2V0Y3dkICh0bXAsIExUX1BB VEhNQVgpID09IE5VTEwpCi0rCQkgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywgImdl dGN3ZCBmYWlsZWQ6ICVzIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25udWxs IChzdHJlcnJvciAoZXJybm8pKSk7Ci0rCQkgIHRtcF9sZW4gPSBzdHJsZW4gKHRtcCk7Ci0rCQkg IGNvbmNhdF9uYW1lID0KLSsJCSAgICBYTUFMTE9DIChjaGFyLCB0bXBfbGVuICsgMSArIHN0cmxl biAod3JhcHBlcikgKyAxKTsKLSsJCSAgbWVtY3B5IChjb25jYXRfbmFtZSwgdG1wLCB0bXBfbGVu KTsKLSsJCSAgY29uY2F0X25hbWVbdG1wX2xlbl0gPSAnLyc7Ci0rCQkgIHN0cmNweSAoY29uY2F0 X25hbWUgKyB0bXBfbGVuICsgMSwgd3JhcHBlcik7Ci0rCQl9Ci0rCSAgICAgIGVsc2UKLSsJCXsK LSsJCSAgY29uY2F0X25hbWUgPQotKwkJICAgIFhNQUxMT0MgKGNoYXIsIHBfbGVuICsgMSArIHN0 cmxlbiAod3JhcHBlcikgKyAxKTsKLSsJCSAgbWVtY3B5IChjb25jYXRfbmFtZSwgcCwgcF9sZW4p OwotKwkJICBjb25jYXRfbmFtZVtwX2xlbl0gPSAnLyc7Ci0rCQkgIHN0cmNweSAoY29uY2F0X25h bWUgKyBwX2xlbiArIDEsIHdyYXBwZXIpOwotKwkJfQotKwkgICAgICBpZiAoY2hlY2tfZXhlY3V0 YWJsZSAoY29uY2F0X25hbWUpKQotKwkJcmV0dXJuIGNvbmNhdF9uYW1lOwotKwkgICAgICBYRlJF RSAoY29uY2F0X25hbWUpOwotKwkgICAgfQotKwl9Ci0rICAgICAgLyogbm90IGZvdW5kIGluIFBB VEg7IGFzc3VtZSBjdXJkaXIgKi8KLSsgICAgfQotKyAgLyogUmVsYXRpdmUgcGF0aCB8IG5vdCBm b3VuZCBpbiBwYXRoOiBwcmVwZW5kIGN3ZCAqLwotKyAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRI TUFYKSA9PSBOVUxMKQotKyAgICBsdF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLCAiZ2V0Y3dk IGZhaWxlZDogJXMiLAotKyAgICAgICAgICAgICAgbm9ubnVsbCAoc3RyZXJyb3IgKGVycm5vKSkp OwotKyAgdG1wX2xlbiA9IHN0cmxlbiAodG1wKTsKLSsgIGNvbmNhdF9uYW1lID0gWE1BTExPQyAo Y2hhciwgdG1wX2xlbiArIDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7Ci0rICBtZW1jcHkgKGNv bmNhdF9uYW1lLCB0bXAsIHRtcF9sZW4pOwotKyAgY29uY2F0X25hbWVbdG1wX2xlbl0gPSAnLyc7 Ci0rICBzdHJjcHkgKGNvbmNhdF9uYW1lICsgdG1wX2xlbiArIDEsIHdyYXBwZXIpOwotKwotKyAg aWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKLSsgICAgcmV0dXJuIGNvbmNhdF9u YW1lOwotKyAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKLSsgIHJldHVybiBOVUxMOwotK30KLSsKLStj aGFyICoKLStjaGFzZV9zeW1saW5rcyAoY29uc3QgY2hhciAqcGF0aHNwZWMpCi0rewotKyNpZm5k ZWYgU19JU0xOSwotKyAgcmV0dXJuIHhzdHJkdXAgKHBhdGhzcGVjKTsKLSsjZWxzZQotKyAgY2hh ciBidWZbTFRfUEFUSE1BWF07Ci0rICBzdHJ1Y3Qgc3RhdCBzOwotKyAgY2hhciAqdG1wX3BhdGhz cGVjID0geHN0cmR1cCAocGF0aHNwZWMpOwotKyAgY2hhciAqcDsKLSsgIGludCBoYXNfc3ltbGlu a3MgPSAwOwotKyAgd2hpbGUgKHN0cmxlbiAodG1wX3BhdGhzcGVjKSAmJiAhaGFzX3N5bWxpbmtz KQotKyAgICB7Ci0rICAgICAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKLSsJ CSAgICAgICJjaGVja2luZyBwYXRoIGNvbXBvbmVudCBmb3Igc3ltbGlua3M6ICVzXG4iLAotKwkJ ICAgICAgdG1wX3BhdGhzcGVjKTsKLSsgICAgICBpZiAobHN0YXQgKHRtcF9wYXRoc3BlYywgJnMp ID09IDApCi0rCXsKLSsJICBpZiAoU19JU0xOSyAocy5zdF9tb2RlKSAhPSAwKQotKwkgICAgewot KwkgICAgICBoYXNfc3ltbGlua3MgPSAxOwotKwkgICAgICBicmVhazsKLSsJICAgIH0KLSsKLSsJ ICAvKiBzZWFyY2ggYmFja3dhcmRzIGZvciBsYXN0IERJUl9TRVBBUkFUT1IgKi8KLSsJICBwID0g dG1wX3BhdGhzcGVjICsgc3RybGVuICh0bXBfcGF0aHNwZWMpIC0gMTsKLSsJICB3aGlsZSAoKHAg PiB0bXBfcGF0aHNwZWMpICYmICghSVNfRElSX1NFUEFSQVRPUiAoKnApKSkKLSsJICAgIHAtLTsK LSsJICBpZiAoKHAgPT0gdG1wX3BhdGhzcGVjKSAmJiAoIUlTX0RJUl9TRVBBUkFUT1IgKCpwKSkp Ci0rCSAgICB7Ci0rCSAgICAgIC8qIG5vIG1vcmUgRElSX1NFUEFSQVRPUlMgbGVmdCAqLwotKwkg ICAgICBicmVhazsKLSsJICAgIH0KLSsJICAqcCA9ICdcMCc7Ci0rCX0KLSsgICAgICBlbHNlCi0r CXsKLSsJICBsdF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLAotKwkJICAgICJlcnJvciBhY2Nl c3NpbmcgZmlsZSBcIiVzXCI6ICVzIiwKLSsJCSAgICB0bXBfcGF0aHNwZWMsIG5vbm51bGwgKHN0 cmVycm9yIChlcnJubykpKTsKLSsJfQotKyAgICB9Ci0rICBYRlJFRSAodG1wX3BhdGhzcGVjKTsK LSsKLSsgIGlmICghaGFzX3N5bWxpbmtzKQotKyAgICB7Ci0rICAgICAgcmV0dXJuIHhzdHJkdXAg KHBhdGhzcGVjKTsKLSsgICAgfQotKwotKyAgdG1wX3BhdGhzcGVjID0gcmVhbHBhdGggKHBhdGhz cGVjLCBidWYpOwotKyAgaWYgKHRtcF9wYXRoc3BlYyA9PSAwKQotKyAgICB7Ci0rICAgICAgbHRf ZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywKLSsJCSJjb3VsZCBub3QgZm9sbG93IHN5bWxpbmtz IGZvciAlcyIsIHBhdGhzcGVjKTsKLSsgICAgfQotKyAgcmV0dXJuIHhzdHJkdXAgKHRtcF9wYXRo c3BlYyk7Ci0rI2VuZGlmCi0rfQotKwotK2NoYXIgKgotK3N0cmVuZHphcCAoY2hhciAqc3RyLCBj b25zdCBjaGFyICpwYXQpCi0rewotKyAgc2l6ZV90IGxlbiwgcGF0bGVuOwotKwotKyAgYXNzZXJ0 IChzdHIgIT0gTlVMTCk7Ci0rICBhc3NlcnQgKHBhdCAhPSBOVUxMKTsKLSsKLSsgIGxlbiA9IHN0 cmxlbiAoc3RyKTsKLSsgIHBhdGxlbiA9IHN0cmxlbiAocGF0KTsKLSsKLSsgIGlmIChwYXRsZW4g PD0gbGVuKQotKyAgICB7Ci0rICAgICAgc3RyICs9IGxlbiAtIHBhdGxlbjsKLSsgICAgICBpZiAo c3RyY21wIChzdHIsIHBhdCkgPT0gMCkKLSsJKnN0ciA9ICdcMCc7Ci0rICAgIH0KLSsgIHJldHVy biBzdHI7Ci0rfQotKwotK3ZvaWQKLStsdF9kZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAqZmlsZSwg aW50IGxpbmUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotK3sKLSsgIHZhX2xpc3QgYXJnczsKLSsg IGlmIChsdF9kZWJ1ZykKLSsgICAgewotKyAgICAgICh2b2lkKSBmcHJpbnRmIChzdGRlcnIsICIl czolczolZDogIiwgcHJvZ3JhbV9uYW1lLCBmaWxlLCBsaW5lKTsKLSsgICAgICB2YV9zdGFydCAo YXJncywgZm10KTsKLSsgICAgICAodm9pZCkgdmZwcmludGYgKHN0ZGVyciwgZm10LCBhcmdzKTsK LSsgICAgICB2YV9lbmQgKGFyZ3MpOwotKyAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rbHRf ZXJyb3JfY29yZSAoaW50IGV4aXRfc3RhdHVzLCBjb25zdCBjaGFyICpmaWxlLAotKwkgICAgICAg aW50IGxpbmUsIGNvbnN0IGNoYXIgKm1vZGUsCi0rCSAgICAgICBjb25zdCBjaGFyICptZXNzYWdl LCB2YV9saXN0IGFwKQotK3sKLSsgIGZwcmludGYgKHN0ZGVyciwgIiVzOiVzOiVkOiAlczogIiwg cHJvZ3JhbV9uYW1lLCBmaWxlLCBsaW5lLCBtb2RlKTsKLSsgIHZmcHJpbnRmIChzdGRlcnIsIG1l c3NhZ2UsIGFwKTsKLSsgIGZwcmludGYgKHN0ZGVyciwgIi5cbiIpOwotKwotKyAgaWYgKGV4aXRf c3RhdHVzID49IDApCi0rICAgIGV4aXQgKGV4aXRfc3RhdHVzKTsKLSt9Ci0rCi0rdm9pZAotK2x0 X2ZhdGFsIChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciAqbWVzc2FnZSwg Li4uKQotK3sKLSsgIHZhX2xpc3QgYXA7Ci0rICB2YV9zdGFydCAoYXAsIG1lc3NhZ2UpOwotKyAg bHRfZXJyb3JfY29yZSAoRVhJVF9GQUlMVVJFLCBmaWxlLCBsaW5lLCAiRkFUQUwiLCBtZXNzYWdl LCBhcCk7Ci0rICB2YV9lbmQgKGFwKTsKLSt9Ci0rCi0rc3RhdGljIGNvbnN0IGNoYXIgKgotK25v bm51bGwgKGNvbnN0IGNoYXIgKnMpCi0rewotKyAgcmV0dXJuIHMgPyBzIDogIihudWxsKSI7Ci0r fQotKwotK3N0YXRpYyBjb25zdCBjaGFyICoKLStub25lbXB0eSAoY29uc3QgY2hhciAqcykKLSt7 Ci0rICByZXR1cm4gKHMgJiYgISpzKSA/ICIoZW1wdHkpIiA6IG5vbm51bGwgKHMpOwotK30KLSsK LSt2b2lkCi0rbHRfc2V0ZW52IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkK LSt7Ci0rICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLAotKwkJICAiKGx0X3Nl dGVudikgc2V0dGluZyAnJXMnIHRvICclcydcbiIsCi0rICAgICAgICAgICAgICAgICAgbm9ubnVs bCAobmFtZSksIG5vbm51bGwgKHZhbHVlKSk7Ci0rICB7Ci0rI2lmZGVmIEhBVkVfU0VURU5WCi0r ICAgIC8qIGFsd2F5cyBtYWtlIGEgY29weSwgZm9yIGNvbnNpc3RlbmN5IHdpdGggIUhBVkVfU0VU RU5WICovCi0rICAgIGNoYXIgKnN0ciA9IHhzdHJkdXAgKHZhbHVlKTsKLSsgICAgc2V0ZW52IChu YW1lLCBzdHIsIDEpOwotKyNlbHNlCi0rICAgIGludCBsZW4gPSBzdHJsZW4gKG5hbWUpICsgMSAr IHN0cmxlbiAodmFsdWUpICsgMTsKLSsgICAgY2hhciAqc3RyID0gWE1BTExPQyAoY2hhciwgbGVu KTsKLSsgICAgc3ByaW50ZiAoc3RyLCAiJXM9JXMiLCBuYW1lLCB2YWx1ZSk7Ci0rICAgIGlmIChw dXRlbnYgKHN0cikgIT0gRVhJVF9TVUNDRVNTKQotKyAgICAgIHsKLSsgICAgICAgIFhGUkVFIChz dHIpOwotKyAgICAgIH0KLSsjZW5kaWYKLSsgIH0KLSt9Ci0rCi0rY2hhciAqCi0rbHRfZXh0ZW5k X3N0ciAoY29uc3QgY2hhciAqb3JpZ192YWx1ZSwgY29uc3QgY2hhciAqYWRkLCBpbnQgdG9fZW5k KQotK3sKLSsgIGNoYXIgKm5ld192YWx1ZTsKLSsgIGlmIChvcmlnX3ZhbHVlICYmICpvcmlnX3Zh bHVlKQotKyAgICB7Ci0rICAgICAgaW50IG9yaWdfdmFsdWVfbGVuID0gc3RybGVuIChvcmlnX3Zh bHVlKTsKLSsgICAgICBpbnQgYWRkX2xlbiA9IHN0cmxlbiAoYWRkKTsKLSsgICAgICBuZXdfdmFs dWUgPSBYTUFMTE9DIChjaGFyLCBhZGRfbGVuICsgb3JpZ192YWx1ZV9sZW4gKyAxKTsKLSsgICAg ICBpZiAodG9fZW5kKQotKyAgICAgICAgewotKyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1ZSwg b3JpZ192YWx1ZSk7Ci0rICAgICAgICAgIHN0cmNweSAobmV3X3ZhbHVlICsgb3JpZ192YWx1ZV9s ZW4sIGFkZCk7Ci0rICAgICAgICB9Ci0rICAgICAgZWxzZQotKyAgICAgICAgewotKyAgICAgICAg ICBzdHJjcHkgKG5ld192YWx1ZSwgYWRkKTsKLSsgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUg KyBhZGRfbGVuLCBvcmlnX3ZhbHVlKTsKLSsgICAgICAgIH0KLSsgICAgfQotKyAgZWxzZQotKyAg ICB7Ci0rICAgICAgbmV3X3ZhbHVlID0geHN0cmR1cCAoYWRkKTsKLSsgICAgfQotKyAgcmV0dXJu IG5ld192YWx1ZTsKLSt9Ci0rCi0rdm9pZAotK2x0X3VwZGF0ZV9leGVfcGF0aCAoY29uc3QgY2hh ciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCi0rewotKyAgbHRfZGVidWdwcmludGYgKF9fRklM RV9fLCBfX0xJTkVfXywKLSsJCSAgIihsdF91cGRhdGVfZXhlX3BhdGgpIG1vZGlmeWluZyAnJXMn IGJ5IHByZXBlbmRpbmcgJyVzJ1xuIiwKLSsgICAgICAgICAgICAgICAgICBub25udWxsIChuYW1l KSwgbm9ubnVsbCAodmFsdWUpKTsKLSsKLSsgIGlmIChuYW1lICYmICpuYW1lICYmIHZhbHVlICYm ICp2YWx1ZSkKLSsgICAgewotKyAgICAgIGNoYXIgKm5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIg KGdldGVudiAobmFtZSksIHZhbHVlLCAwKTsKLSsgICAgICAvKiBzb21lIHN5c3RlbXMgY2FuJ3Qg Y29wZSB3aXRoIGEgJzonLXRlcm1pbmF0ZWQgcGF0aCAjJyAqLwotKyAgICAgIGludCBsZW4gPSBz dHJsZW4gKG5ld192YWx1ZSk7Ci0rICAgICAgd2hpbGUgKCgobGVuID0gc3RybGVuIChuZXdfdmFs dWUpKSA+IDApICYmIElTX1BBVEhfU0VQQVJBVE9SIChuZXdfdmFsdWVbbGVuLTFdKSkKLSsgICAg ICAgIHsKLSsgICAgICAgICAgbmV3X3ZhbHVlW2xlbi0xXSA9ICdcMCc7Ci0rICAgICAgICB9Ci0r ICAgICAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUpOwotKyAgICAgIFhGUkVFIChuZXdfdmFs dWUpOwotKyAgICB9Ci0rfQotKwotK3ZvaWQKLStsdF91cGRhdGVfbGliX3BhdGggKGNvbnN0IGNo YXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQotK3sKLSsgIGx0X2RlYnVncHJpbnRmIChfX0ZJ TEVfXywgX19MSU5FX18sCi0rCQkgICIobHRfdXBkYXRlX2xpYl9wYXRoKSBtb2RpZnlpbmcgJyVz JyBieSBwcmVwZW5kaW5nICclcydcbiIsCi0rICAgICAgICAgICAgICAgICAgbm9ubnVsbCAobmFt ZSksIG5vbm51bGwgKHZhbHVlKSk7Ci0rCi0rICBpZiAobmFtZSAmJiAqbmFtZSAmJiB2YWx1ZSAm JiAqdmFsdWUpCi0rICAgIHsKLSsgICAgICBjaGFyICpuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3Ry IChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwgMCk7Ci0rICAgICAgbHRfc2V0ZW52IChuYW1lLCBuZXdf dmFsdWUpOwotKyAgICAgIFhGUkVFIChuZXdfdmFsdWUpOwotKyAgICB9Ci0rfQotKwotK0VPRgot KwkgICAgY2FzZSAkaG9zdF9vcyBpbgotKwkgICAgICBtaW5ndyopCi0rCQljYXQgPDwiRU9GIgot KwotKy8qIFByZXBhcmVzIGFuIGFyZ3VtZW50IHZlY3RvciBiZWZvcmUgY2FsbGluZyBzcGF3bigp LgotKyAgIE5vdGUgdGhhdCBzcGF3bigpIGRvZXMgbm90IGJ5IGl0c2VsZiBjYWxsIHRoZSBjb21t YW5kIGludGVycHJldGVyCi0rICAgICAoZ2V0ZW52ICgiQ09NU1BFQyIpICE9IE5VTEwgPyBnZXRl bnYgKCJDT01TUEVDIikgOgotKyAgICAgICh7IE9TVkVSU0lPTklORk8gdjsgdi5kd09TVmVyc2lv bkluZm9TaXplID0gc2l6ZW9mKE9TVkVSU0lPTklORk8pOwotKyAgICAgICAgIEdldFZlcnNpb25F eCgmdik7Ci0rICAgICAgICAgdi5kd1BsYXRmb3JtSWQgPT0gVkVSX1BMQVRGT1JNX1dJTjMyX05U OwotKyAgICAgIH0pID8gImNtZC5leGUiIDogImNvbW1hbmQuY29tIikuCi0rICAgSW5zdGVhZCBp dCBzaW1wbHkgY29uY2F0ZW5hdGVzIHRoZSBhcmd1bWVudHMsIHNlcGFyYXRlZCBieSAnICcsIGFu ZCBjYWxscwotKyAgIENyZWF0ZVByb2Nlc3MoKS4gIFdlIG11c3QgcXVvdGUgdGhlIGFyZ3VtZW50 cyBzaW5jZSBXaW4zMiBDcmVhdGVQcm9jZXNzKCkKLSsgICBpbnRlcnByZXRzIGNoYXJhY3RlcnMg bGlrZSAnICcsICdcdCcsICdcXCcsICciJyAoYnV0IG5vdCAnPCcgYW5kICc+JykgaW4gYQotKyAg IHNwZWNpYWwgd2F5OgotKyAgIC0gU3BhY2UgYW5kIHRhYiBhcmUgaW50ZXJwcmV0ZWQgYXMgZGVs aW1pdGVycy4gVGhleSBhcmUgbm90IHRyZWF0ZWQgYXMKLSsgICAgIGRlbGltaXRlcnMgaWYgdGhl eSBhcmUgc3Vycm91bmRlZCBieSBkb3VibGUgcXVvdGVzOiAiLi4uIi4KLSsgICAtIFVuZXNjYXBl ZCBkb3VibGUgcXVvdGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIGlucHV0LiBUaGVpciBvbmx5IGVm ZmVjdCBpcwotKyAgICAgdGhhdCB3aXRoaW4gZG91YmxlIHF1b3Rlcywgc3BhY2UgYW5kIHRhYiBh cmUgdHJlYXRlZCBsaWtlIG5vcm1hbAotKyAgICAgY2hhcmFjdGVycy4KLSsgICAtIEJhY2tzbGFz aGVzIG5vdCBmb2xsb3dlZCBieSBkb3VibGUgcXVvdGVzIGFyZSBub3Qgc3BlY2lhbC4KLSsgICAt IEJ1dCAyKm4rMSBiYWNrc2xhc2hlcyBmb2xsb3dlZCBieSBhIGRvdWJsZSBxdW90ZSBiZWNvbWUK LSsgICAgIG4gYmFja3NsYXNoZXMgZm9sbG93ZWQgYnkgYSBkb3VibGUgcXVvdGUgKG4gPj0gMCk6 Ci0rICAgICAgIFwiIC0+ICIKLSsgICAgICAgXFxcIiAtPiBcIgotKyAgICAgICBcXFxcXCIgLT4g XFwiCi0rICovCi0rI2RlZmluZSBTSEVMTF9TUEVDSUFMX0NIQVJTICJcIlxcIFwwMDFcMDAyXDAw M1wwMDRcMDA1XDAwNlwwMDdcMDEwXDAxMVwwMTJcMDEzXDAxNFwwMTVcMDE2XDAxN1wwMjBcMDIx XDAyMlwwMjNcMDI0XDAyNVwwMjZcMDI3XDAzMFwwMzFcMDMyXDAzM1wwMzRcMDM1XDAzNlwwMzci Ci0rI2RlZmluZSBTSEVMTF9TUEFDRV9DSEFSUyAiIFwwMDFcMDAyXDAwM1wwMDRcMDA1XDAwNlww MDdcMDEwXDAxMVwwMTJcMDEzXDAxNFwwMTVcMDE2XDAxN1wwMjBcMDIxXDAyMlwwMjNcMDI0XDAy NVwwMjZcMDI3XDAzMFwwMzFcMDMyXDAzM1wwMzRcMDM1XDAzNlwwMzciCi0rY2hhciAqKgotK3By ZXBhcmVfc3Bhd24gKGNoYXIgKiphcmd2KQotK3sKLSsgIHNpemVfdCBhcmdjOwotKyAgY2hhciAq Km5ld19hcmd2OwotKyAgc2l6ZV90IGk7Ci0rCi0rICAvKiBDb3VudCBudW1iZXIgb2YgYXJndW1l bnRzLiAgKi8KLSsgIGZvciAoYXJnYyA9IDA7IGFyZ3ZbYXJnY10gIT0gTlVMTDsgYXJnYysrKQot KyAgICA7Ci0rCi0rICAvKiBBbGxvY2F0ZSBuZXcgYXJndW1lbnQgdmVjdG9yLiAgKi8KLSsgIG5l d19hcmd2ID0gWE1BTExPQyAoY2hhciAqLCBhcmdjICsgMSk7Ci0rCi0rICAvKiBQdXQgcXVvdGVk IGFyZ3VtZW50cyBpbnRvIHRoZSBuZXcgYXJndW1lbnQgdmVjdG9yLiAgKi8KLSsgIGZvciAoaSA9 IDA7IGkgPCBhcmdjOyBpKyspCi0rICAgIHsKLSsgICAgICBjb25zdCBjaGFyICpzdHJpbmcgPSBh cmd2W2ldOwotKwotKyAgICAgIGlmIChzdHJpbmdbMF0gPT0gJ1wwJykKLSsJbmV3X2FyZ3ZbaV0g PSB4c3RyZHVwICgiXCJcIiIpOwotKyAgICAgIGVsc2UgaWYgKHN0cnBicmsgKHN0cmluZywgU0hF TExfU1BFQ0lBTF9DSEFSUykgIT0gTlVMTCkKLSsJewotKwkgIGludCBxdW90ZV9hcm91bmQgPSAo c3RycGJyayAoc3RyaW5nLCBTSEVMTF9TUEFDRV9DSEFSUykgIT0gTlVMTCk7Ci0rCSAgc2l6ZV90 IGxlbmd0aDsKLSsJICB1bnNpZ25lZCBpbnQgYmFja3NsYXNoZXM7Ci0rCSAgY29uc3QgY2hhciAq czsKLSsJICBjaGFyICpxdW90ZWRfc3RyaW5nOwotKwkgIGNoYXIgKnA7Ci0rCi0rCSAgbGVuZ3Ro ID0gMDsKLSsJICBiYWNrc2xhc2hlcyA9IDA7Ci0rCSAgaWYgKHF1b3RlX2Fyb3VuZCkKLSsJICAg IGxlbmd0aCsrOwotKwkgIGZvciAocyA9IHN0cmluZzsgKnMgIT0gJ1wwJzsgcysrKQotKwkgICAg ewotKwkgICAgICBjaGFyIGMgPSAqczsKLSsJICAgICAgaWYgKGMgPT0gJyInKQotKwkJbGVuZ3Ro ICs9IGJhY2tzbGFzaGVzICsgMTsKLSsJICAgICAgbGVuZ3RoKys7Ci0rCSAgICAgIGlmIChjID09 ICdcXCcpCi0rCQliYWNrc2xhc2hlcysrOwotKwkgICAgICBlbHNlCi0rCQliYWNrc2xhc2hlcyA9 IDA7Ci0rCSAgICB9Ci0rCSAgaWYgKHF1b3RlX2Fyb3VuZCkKLSsJICAgIGxlbmd0aCArPSBiYWNr c2xhc2hlcyArIDE7Ci0rCi0rCSAgcXVvdGVkX3N0cmluZyA9IFhNQUxMT0MgKGNoYXIsIGxlbmd0 aCArIDEpOwotKwotKwkgIHAgPSBxdW90ZWRfc3RyaW5nOwotKwkgIGJhY2tzbGFzaGVzID0gMDsK LSsJICBpZiAocXVvdGVfYXJvdW5kKQotKwkgICAgKnArKyA9ICciJzsKLSsJICBmb3IgKHMgPSBz dHJpbmc7ICpzICE9ICdcMCc7IHMrKykKLSsJICAgIHsKLSsJICAgICAgY2hhciBjID0gKnM7Ci0r CSAgICAgIGlmIChjID09ICciJykKLSsJCXsKLSsJCSAgdW5zaWduZWQgaW50IGo7Ci0rCQkgIGZv ciAoaiA9IGJhY2tzbGFzaGVzICsgMTsgaiA+IDA7IGotLSkKLSsJCSAgICAqcCsrID0gJ1xcJzsK LSsJCX0KLSsJICAgICAgKnArKyA9IGM7Ci0rCSAgICAgIGlmIChjID09ICdcXCcpCi0rCQliYWNr c2xhc2hlcysrOwotKwkgICAgICBlbHNlCi0rCQliYWNrc2xhc2hlcyA9IDA7Ci0rCSAgICB9Ci0r CSAgaWYgKHF1b3RlX2Fyb3VuZCkKLSsJICAgIHsKLSsJICAgICAgdW5zaWduZWQgaW50IGo7Ci0r CSAgICAgIGZvciAoaiA9IGJhY2tzbGFzaGVzOyBqID4gMDsgai0tKQotKwkJKnArKyA9ICdcXCc7 Ci0rCSAgICAgICpwKysgPSAnIic7Ci0rCSAgICB9Ci0rCSAgKnAgPSAnXDAnOwotKwotKwkgIG5l d19hcmd2W2ldID0gcXVvdGVkX3N0cmluZzsKLSsJfQotKyAgICAgIGVsc2UKLSsJbmV3X2FyZ3Zb aV0gPSAoY2hhciAqKSBzdHJpbmc7Ci0rICAgIH0KLSsgIG5ld19hcmd2W2FyZ2NdID0gTlVMTDsK LSsKLSsgIHJldHVybiBuZXdfYXJndjsKLSt9Ci0rRU9GCi0rCQk7OwotKwkgICAgZXNhYwotKwot KyAgICAgICAgICAgIGNhdCA8PCJFT0YiCi0rdm9pZCBsdF9kdW1wX3NjcmlwdCAoRklMRSogZikK LSt7Ci0rRU9GCi0rCSAgICBmdW5jX2VtaXRfd3JhcHBlciB5ZXMgfAotKyAgICAgICAgICAgICAg JFNFRCAtZSAncy9cKFtcXCJdXCkvXFxcMS9nJyBcCi0rCSAgICAgICAgICAgLWUgJ3MvXi8gIGZw dXRzICgiLycgLWUgJ3MvJC9cXG4iLCBmKTsvJwotKwotKyAgICAgICAgICAgIGNhdCA8PCJFT0Yi Ci0rfQotK0VPRgotK30KLSsjIGVuZDogZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYwotKwotKyMg ZnVuY193aW4zMl9pbXBvcnRfbGliX3AgQVJHCi0rIyBUcnVlIGlmIEFSRyBpcyBhbiBpbXBvcnQg bGliLCBhcyBpbmRpY2F0ZWQgYnkgJGZpbGVfbWFnaWNfY21kCi0rZnVuY193aW4zMl9pbXBvcnRf bGliX3AgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgY2FzZSBgZXZhbCAkZmlsZV9tYWdp Y19jbWQgXCJcJDFcIiAyPi9kZXYvbnVsbCB8ICRTRUQgLWUgMTBxYCBpbgotKyAgICAqaW1wb3J0 KikgOiA7OwotKyAgICAqKSBmYWxzZSA7OwotKyAgICBlc2FjCi0rfQotKwotKyMgZnVuY19tb2Rl X2xpbmsgYXJnLi4uCi0rZnVuY19tb2RlX2xpbmsgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsg ICAgY2FzZSAkaG9zdCBpbgotKyAgICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHcz MiogfCAqLSotb3MyKiB8ICotY2VnY2MqKQotKyAgICAgICMgSXQgaXMgaW1wb3NzaWJsZSB0byBs aW5rIGEgZGxsIHdpdGhvdXQgdGhpcyBzZXR0aW5nLCBhbmQKLSsgICAgICAjIHdlIHNob3VsZG4n dCBmb3JjZSB0aGUgbWFrZWZpbGUgbWFpbnRhaW5lciB0byBmaWd1cmUgb3V0Ci0rICAgICAgIyB3 aGljaCBzeXN0ZW0gd2UgYXJlIGNvbXBpbGluZyBmb3IgaW4gb3JkZXIgdG8gcGFzcyBhbiBleHRy YQotKyAgICAgICMgZmxhZyBmb3IgZXZlcnkgbGlidG9vbCBpbnZvY2F0aW9uLgotKyAgICAgICMg YWxsb3dfdW5kZWZpbmVkPW5vCi0rCi0rICAgICAgIyBGSVhNRTogVW5mb3J0dW5hdGVseSwgdGhl cmUgYXJlIHByb2JsZW1zIHdpdGggdGhlIGFib3ZlIHdoZW4gdHJ5aW5nCi0rICAgICAgIyB0byBt YWtlIGEgZGxsIHdoaWNoIGhhcyB1bmRlZmluZWQgc3ltYm9scywgaW4gd2hpY2ggY2FzZSBub3QK LSsgICAgICAjIGV2ZW4gYSBzdGF0aWMgbGlicmFyeSBpcyBidWlsdC4gIEZvciBub3csIHdlIG5l ZWQgdG8gc3BlY2lmeQotKyAgICAgICMgLW5vLXVuZGVmaW5lZCBvbiB0aGUgbGlidG9vbCBsaW5r IGxpbmUgd2hlbiB3ZSBjYW4gYmUgY2VydGFpbgotKyAgICAgICMgdGhhdCBhbGwgc3ltYm9scyBh cmUgc2F0aXNmaWVkLCBvdGhlcndpc2Ugd2UgZ2V0IGEgc3RhdGljIGxpYnJhcnkuCi0rICAgICAg YWxsb3dfdW5kZWZpbmVkPXllcwotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgYWxsb3dfdW5k ZWZpbmVkPXllcwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgbGlidG9vbF9hcmdzPSRub25v cHQKLSsgICAgYmFzZV9jb21waWxlPSIkbm9ub3B0ICRAIgotKyAgICBjb21waWxlX2NvbW1hbmQ9 JG5vbm9wdAotKyAgICBmaW5hbGl6ZV9jb21tYW5kPSRub25vcHQKLSsKLSsgICAgY29tcGlsZV9y cGF0aD0KLSsgICAgZmluYWxpemVfcnBhdGg9Ci0rICAgIGNvbXBpbGVfc2hsaWJwYXRoPQotKyAg ICBmaW5hbGl6ZV9zaGxpYnBhdGg9Ci0rICAgIGNvbnZlbmllbmNlPQotKyAgICBvbGRfY29udmVu aWVuY2U9Ci0rICAgIGRlcGxpYnM9Ci0rICAgIG9sZF9kZXBsaWJzPQotKyAgICBjb21waWxlcl9m bGFncz0KLSsgICAgbGlua2VyX2ZsYWdzPQotKyAgICBkbGxzZWFyY2hwYXRoPQotKyAgICBsaWJf c2VhcmNoX3BhdGg9YHB3ZGAKLSsgICAgaW5zdF9wcmVmaXhfZGlyPQotKyAgICBuZXdfaW5oZXJp dGVkX2xpbmtlcl9mbGFncz0KLSsKLSsgICAgYXZvaWRfdmVyc2lvbj1ubwotKyAgICBiaW5kaXI9 Ci0rICAgIGRsZmlsZXM9Ci0rICAgIGRscHJlZmlsZXM9Ci0rICAgIGRsc2VsZj1ubwotKyAgICBl eHBvcnRfZHluYW1pYz1ubwotKyAgICBleHBvcnRfc3ltYm9scz0KLSsgICAgZXhwb3J0X3N5bWJv bHNfcmVnZXg9Ci0rICAgIGdlbmVyYXRlZD0KLSsgICAgbGlib2Jqcz0KLSsgICAgbHRsaWJzPQot KyAgICBtb2R1bGU9bm8KLSsgICAgbm9faW5zdGFsbD1ubwotKyAgICBvYmpzPQotKyAgICBub25f cGljX29iamVjdHM9Ci0rICAgIHByZWNpb3VzX2ZpbGVzX3JlZ2V4PQotKyAgICBwcmVmZXJfc3Rh dGljX2xpYnM9bm8KLSsgICAgcHJlbG9hZD1ubwotKyAgICBwcmV2PQotKyAgICBwcmV2YXJnPQot KyAgICByZWxlYXNlPQotKyAgICBycGF0aD0KLSsgICAgeHJwYXRoPQotKyAgICBwZXJtX3JwYXRo PQotKyAgICB0ZW1wX3JwYXRoPQotKyAgICB0aHJlYWRfc2FmZT1ubwotKyAgICB2aW5mbz0KLSsg ICAgdmluZm9fbnVtYmVyPW5vCi0rICAgIHdlYWtfbGlicz0KLSsgICAgc2luZ2xlX21vZHVsZT0i JHt3bH0tc2luZ2xlX21vZHVsZSIKLSsgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29tcGlsZQot KwotKyAgICAjIFdlIG5lZWQgdG8ga25vdyAtc3RhdGljLCB0byBnZXQgdGhlIHJpZ2h0IG91dHB1 dCBmaWxlbmFtZXMuCi0rICAgIGZvciBhcmcKLSsgICAgZG8KLSsgICAgICBjYXNlICRhcmcgaW4K LSsgICAgICAtc2hhcmVkKQotKwl0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYg XAotKwkgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAiY2FuIG5vdCBidWlsZCBhIHNoYXJlZCBs aWJyYXJ5IgotKwlidWlsZF9vbGRfbGlicz1ubwotKwlicmVhawotKwk7OwotKyAgICAgIC1hbGwt c3RhdGljIHwgLXN0YXRpYyB8IC1zdGF0aWMtbGlidG9vbC1saWJzKQotKwljYXNlICRhcmcgaW4K LSsJLWFsbC1zdGF0aWMpCi0rCSAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMg JiYgdGVzdCAteiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCi0rCSAgICBmdW5jX3dhcm5pbmcg ImNvbXBsZXRlIHN0YXRpYyBsaW5raW5nIGlzIGltcG9zc2libGUgaW4gdGhpcyBjb25maWd1cmF0 aW9uIgotKwkgIGZpCi0rCSAgaWYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCi0r CSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3NlbGZfc3RhdGljCi0rCSAgZmkKLSsJICBwcmVmZXJf c3RhdGljX2xpYnM9eWVzCi0rCSAgOzsKLSsJLXN0YXRpYykKLSsJICBpZiB0ZXN0IC16ICIkcGlj X2ZsYWciICYmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgotKwkgICAgZGxvcGVu X3NlbGY9JGRsb3Blbl9zZWxmX3N0YXRpYwotKwkgIGZpCi0rCSAgcHJlZmVyX3N0YXRpY19saWJz PWJ1aWx0Ci0rCSAgOzsKLSsJLXN0YXRpYy1saWJ0b29sLWxpYnMpCi0rCSAgaWYgdGVzdCAteiAi JHBpY19mbGFnIiAmJiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KLSsJICAgIGRs b3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9zdGF0aWMKLSsJICBmaQotKwkgIHByZWZlcl9zdGF0aWNf bGlicz15ZXMKLSsJICA7OwotKwllc2FjCi0rCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwlidWls ZF9vbGRfbGlicz15ZXMKLSsJYnJlYWsKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGRvbmUKLSsK LSsgICAgIyBTZWUgaWYgb3VyIHNoYXJlZCBhcmNoaXZlcyBkZXBlbmQgb24gc3RhdGljIGFyY2hp dmVzLgotKyAgICB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyIgJiYgYnVpbGRf b2xkX2xpYnM9eWVzCi0rCi0rICAgICMgR28gdGhyb3VnaCB0aGUgYXJndW1lbnRzLCB0cmFuc2Zv cm1pbmcgdGhlbSBvbiB0aGUgd2F5LgotKyAgICB3aGlsZSB0ZXN0ICIkIyIgLWd0IDA7IGRvCi0r ICAgICAgYXJnPSIkMSIKLSsgICAgICBzaGlmdAotKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwg IiRhcmciCi0rICAgICAgcWFyZz0kZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQK LSsgICAgICBmdW5jX2FwcGVuZCBsaWJ0b29sX2FyZ3MgIiAkZnVuY19xdW90ZV9mb3JfZXZhbF9y ZXN1bHQiCi0rCi0rICAgICAgIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRzIGFuIGFyZ3Vt ZW50LCBhc3NpZ24gaXQuCi0rICAgICAgaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCi0rCWNhc2Ug JHByZXYgaW4KLSsJb3V0cHV0KQotKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiIEBP VVRQVVRAIgotKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiBAT1VUUFVUQCIKLSsJ ICA7OwotKwllc2FjCi0rCi0rCWNhc2UgJHByZXYgaW4KLSsJYmluZGlyKQotKwkgIGJpbmRpcj0i JGFyZyIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJZGxmaWxlc3xkbHByZWZp bGVzKQotKwkgIGlmIHRlc3QgIiRwcmVsb2FkIiA9IG5vOyB0aGVuCi0rCSAgICAjIEFkZCB0aGUg c3ltYm9sIG9iamVjdCBpbnRvIHRoZSBsaW5raW5nIGNvbW1hbmRzLgotKwkgICAgZnVuY19hcHBl bmQgY29tcGlsZV9jb21tYW5kICIgQFNZTUZJTEVAIgotKwkgICAgZnVuY19hcHBlbmQgZmluYWxp emVfY29tbWFuZCAiIEBTWU1GSUxFQCIKLSsJICAgIHByZWxvYWQ9eWVzCi0rCSAgZmkKLSsJICBj YXNlICRhcmcgaW4KLSsJICAqLmxhIHwgKi5sbykgOzsgICMgV2UgaGFuZGxlIHRoZXNlIGNhc2Vz IGJlbG93LgotKwkgIGZvcmNlKQotKwkgICAgaWYgdGVzdCAiJGRsc2VsZiIgPSBubzsgdGhlbgot KwkgICAgICBkbHNlbGY9bmVlZGxlc3MKLSsJICAgICAgZXhwb3J0X2R5bmFtaWM9eWVzCi0rCSAg ICBmaQotKwkgICAgcHJldj0KLSsJICAgIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgIHNlbGYpCi0r CSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCi0rCSAgICAgIGRsc2VsZj15 ZXMKLSsJICAgIGVsaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlcyAmJiB0ZXN0ICIkZGxvcGVuX3Nl bGYiICE9IHllczsgdGhlbgotKwkgICAgICBkbHNlbGY9eWVzCi0rCSAgICBlbHNlCi0rCSAgICAg IGRsc2VsZj1uZWVkbGVzcwotKwkgICAgICBleHBvcnRfZHluYW1pYz15ZXMKLSsJICAgIGZpCi0r CSAgICBwcmV2PQotKwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGlmIHRl c3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KLSsJICAgICAgZnVuY19hcHBlbmQgZGxmaWxlcyAi ICRhcmciCi0rCSAgICBlbHNlCi0rCSAgICAgIGZ1bmNfYXBwZW5kIGRscHJlZmlsZXMgIiAkYXJn IgotKwkgICAgZmkKLSsJICAgIHByZXY9Ci0rCSAgICBjb250aW51ZQotKwkgICAgOzsKLSsJICBl c2FjCi0rCSAgOzsKLSsJZXhwc3ltcykKLSsJICBleHBvcnRfc3ltYm9scz0iJGFyZyIKLSsJICB0 ZXN0IC1mICIkYXJnIiBcCi0rCSAgICB8fCBmdW5jX2ZhdGFsX2Vycm9yICJzeW1ib2wgZmlsZSBc YCRhcmcnIGRvZXMgbm90IGV4aXN0IgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7Owot KwlleHBzeW1zX3JlZ2V4KQotKwkgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PSIkYXJnIgotKwkgIHBy ZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwlmcmFtZXdvcmspCi0rCSAgY2FzZSAkaG9zdCBp bgotKwkgICAgKi0qLWRhcndpbiopCi0rCSAgICAgIGNhc2UgIiRkZXBsaWJzICIgaW4KLSsJCSoi ICRxYXJnLmx0ZnJhbWV3b3JrICIqKSA7OwotKwkJKikgZnVuY19hcHBlbmQgZGVwbGlicyAiICRx YXJnLmx0ZnJhbWV3b3JrIiAjIHRoaXMgaXMgZml4ZWQgbGF0ZXIKLSsJCSAgIDs7Ci0rCSAgICAg IGVzYWMKLSsJICAgICAgOzsKLSsJICBlc2FjCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkg IDs7Ci0rCWluc3RfcHJlZml4KQotKwkgIGluc3RfcHJlZml4X2Rpcj0iJGFyZyIKLSsJICBwcmV2 PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJb2JqZWN0bGlzdCkKLSsJICBpZiB0ZXN0IC1mICIk YXJnIjsgdGhlbgotKwkgICAgc2F2ZV9hcmc9JGFyZwotKwkgICAgbW9yZWFyZ3M9Ci0rCSAgICBm b3IgZmlsIGluIGBjYXQgIiRzYXZlX2FyZyJgCi0rCSAgICBkbwotKyMJICAgICAgZnVuY19hcHBl bmQgbW9yZWFyZ3MgIiAkZmlsIgotKwkgICAgICBhcmc9JGZpbAotKwkgICAgICAjIEEgbGlidG9v bC1jb250cm9sbGVkIG9iamVjdC4KLSsKLSsJICAgICAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGlz IHJlYWxseSBpcyBhIGxpYnRvb2wgb2JqZWN0LgotKwkgICAgICBpZiBmdW5jX2xhbGliX3Vuc2Fm ZV9wICIkYXJnIjsgdGhlbgotKwkJcGljX29iamVjdD0KLSsJCW5vbl9waWNfb2JqZWN0PQotKwot KwkJIyBSZWFkIHRoZSAubG8gZmlsZQotKwkJZnVuY19zb3VyY2UgIiRhcmciCi0rCi0rCQlpZiB0 ZXN0IC16ICIkcGljX29iamVjdCIgfHwKLSsJCSAgIHRlc3QgLXogIiRub25fcGljX29iamVjdCIg fHwKLSsJCSAgIHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgJiYKLSsJCSAgIHRlc3QgIiRub25f cGljX29iamVjdCIgPSBub25lOyB0aGVuCi0rCQkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBm aW5kIG5hbWUgb2Ygb2JqZWN0IGZvciBcYCRhcmcnIgotKwkJZmkKLSsKLSsJCSMgRXh0cmFjdCBz dWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0rCQlmdW5jX2Rpcm5hbWUgIiRhcmciICIv IiAiIgotKwkJeGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCi0rCQlpZiB0ZXN0ICIkcGlj X29iamVjdCIgIT0gbm9uZTsgdGhlbgotKwkJICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0 aGUgb2JqZWN0IGlzIGZvdW5kIGluLgotKwkJICBwaWNfb2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0 IgotKwotKwkJICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCi0rCQkgICAgaWYgdGVz dCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9 IHllczsgdGhlbgotKwkJICAgICAgZnVuY19hcHBlbmQgZGxmaWxlcyAiICRwaWNfb2JqZWN0Igot KwkJICAgICAgcHJldj0KLSsJCSAgICAgIGNvbnRpbnVlCi0rCQkgICAgZWxzZQotKwkJICAgICAg IyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJl bG9hZC4KLSsJCSAgICAgIHByZXY9ZGxwcmVmaWxlcwotKwkJICAgIGZpCi0rCQkgIGZpCi0rCi0r CQkgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3NzYW1hCi0rCQkgIGlm IHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KLSsJCSAgICAjIFByZWxvYWQgdGhlIG9s ZC1zdHlsZSBvYmplY3QuCi0rCQkgICAgZnVuY19hcHBlbmQgZGxwcmVmaWxlcyAiICRwaWNfb2Jq ZWN0IgotKwkJICAgIHByZXY9Ci0rCQkgIGZpCi0rCi0rCQkgICMgQSBQSUMgb2JqZWN0LgotKwkJ ICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHBpY19vYmplY3QiCi0rCQkgIGFyZz0iJHBpY19vYmpl Y3QiCi0rCQlmaQotKwotKwkJIyBOb24tUElDIG9iamVjdC4KLSsJCWlmIHRlc3QgIiRub25fcGlj X29iamVjdCIgIT0gbm9uZTsgdGhlbgotKwkJICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0 aGUgb2JqZWN0IGlzIGZvdW5kIGluLgotKwkJICBub25fcGljX29iamVjdD0iJHhkaXIkbm9uX3Bp Y19vYmplY3QiCi0rCi0rCQkgICMgQSBzdGFuZGFyZCBub24tUElDIG9iamVjdAotKwkJICBmdW5j X2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCi0rCQkgIGlmIHRlc3Qg LXogIiRwaWNfb2JqZWN0IiB8fCB0ZXN0ICIkcGljX29iamVjdCIgPSBub25lIDsgdGhlbgotKwkJ ICAgIGFyZz0iJG5vbl9waWNfb2JqZWN0IgotKwkJICBmaQotKwkJZWxzZQotKwkJICAjIElmIHRo ZSBQSUMgb2JqZWN0IGV4aXN0cywgdXNlIGl0IGluc3RlYWQuCi0rCQkgICMgJHhkaXIgd2FzIHBy ZXBlbmRlZCB0byAkcGljX29iamVjdCBhYm92ZS4KLSsJCSAgbm9uX3BpY19vYmplY3Q9IiRwaWNf b2JqZWN0IgotKwkJICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmpl Y3QiCi0rCQlmaQotKwkgICAgICBlbHNlCi0rCQkjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5n IGEgZHJ5LXJ1bi4KLSsJCWlmICRvcHRfZHJ5X3J1bjsgdGhlbgotKwkJICAjIEV4dHJhY3Qgc3Vi ZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgotKwkJICBmdW5jX2Rpcm5hbWUgIiRhcmciICIv IiAiIgotKwkJICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsKLSsJCSAgZnVuY19sbzJv ICIkYXJnIgotKwkJICBwaWNfb2JqZWN0PSR4ZGlyJG9iamRpci8kZnVuY19sbzJvX3Jlc3VsdAot KwkJICBub25fcGljX29iamVjdD0keGRpciRmdW5jX2xvMm9fcmVzdWx0Ci0rCQkgIGZ1bmNfYXBw ZW5kIGxpYm9ianMgIiAkcGljX29iamVjdCIKLSsJCSAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmpl Y3RzICIgJG5vbl9waWNfb2JqZWN0IgotKwkgICAgICAgIGVsc2UKLSsJCSAgZnVuY19mYXRhbF9l cnJvciAiXGAkYXJnJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIG9iamVjdCIKLSsJCWZpCi0rCSAg ICAgIGZpCi0rCSAgICBkb25lCi0rCSAgZWxzZQotKwkgICAgZnVuY19mYXRhbF9lcnJvciAibGlu ayBpbnB1dCBmaWxlIFxgJGFyZycgZG9lcyBub3QgZXhpc3QiCi0rCSAgZmkKLSsJICBhcmc9JHNh dmVfYXJnCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCXByZWNpb3VzX3JlZ2V4 KQotKwkgIHByZWNpb3VzX2ZpbGVzX3JlZ2V4PSIkYXJnIgotKwkgIHByZXY9Ci0rCSAgY29udGlu dWUKLSsJICA7OwotKwlyZWxlYXNlKQotKwkgIHJlbGVhc2U9Ii0kYXJnIgotKwkgIHByZXY9Ci0r CSAgY29udGludWUKLSsJICA7OwotKwlycGF0aCB8IHhycGF0aCkKLSsJICAjIFdlIG5lZWQgYW4g YWJzb2x1dGUgcGF0aC4KLSsJICBjYXNlICRhcmcgaW4KLSsJICBbXFwvXSogfCBbQS1aYS16XTpb XFwvXSopIDs7Ci0rCSAgKikKLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgYWJzb2x1dGUg cnVuLXBhdGhzIGFyZSBhbGxvd2VkIgotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgaWYgdGVzdCAi JHByZXYiID0gcnBhdGg7IHRoZW4KLSsJICAgIGNhc2UgIiRycGF0aCAiIGluCi0rCSAgICAqIiAk YXJnICIqKSA7OwotKwkgICAgKikgZnVuY19hcHBlbmQgcnBhdGggIiAkYXJnIiA7OwotKwkgICAg ZXNhYwotKwkgIGVsc2UKLSsJICAgIGNhc2UgIiR4cnBhdGggIiBpbgotKwkgICAgKiIgJGFyZyAi KikgOzsKLSsJICAgICopIGZ1bmNfYXBwZW5kIHhycGF0aCAiICRhcmciIDs7Ci0rCSAgICBlc2Fj Ci0rCSAgZmkKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJc2hyZXh0KQotKwkg IHNocmV4dF9jbWRzPSIkYXJnIgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwl3 ZWFrKQotKwkgIGZ1bmNfYXBwZW5kIHdlYWtfbGlicyAiICRhcmciCi0rCSAgcHJldj0KLSsJICBj b250aW51ZQotKwkgIDs7Ci0rCXhjY2xpbmtlcikKLSsJICBmdW5jX2FwcGVuZCBsaW5rZXJfZmxh Z3MgIiAkcWFyZyIKLSsJICBmdW5jX2FwcGVuZCBjb21waWxlcl9mbGFncyAiICRxYXJnIgotKwkg IHByZXY9Ci0rCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJHFhcmciCi0rCSAgZnVu Y19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRxYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsK LSsJeGNvbXBpbGVyKQotKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJHFhcmciCi0r CSAgcHJldj0KLSsJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkcWFyZyIKLSsJICBm dW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJHFhcmciCi0rCSAgY29udGludWUKLSsJICA7 OwotKwl4bGlua2VyKQotKwkgIGZ1bmNfYXBwZW5kIGxpbmtlcl9mbGFncyAiICRxYXJnIgotKwkg IGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJHdsJHFhcmciCi0rCSAgcHJldj0KLSsJICBm dW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkd2wkcWFyZyIKLSsJICBmdW5jX2FwcGVuZCBm aW5hbGl6ZV9jb21tYW5kICIgJHdsJHFhcmciCi0rCSAgY29udGludWUKLSsJICA7OwotKwkqKQot KwkgIGV2YWwgIiRwcmV2PVwiXCRhcmdcIiIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAg OzsKLSsJZXNhYwotKyAgICAgIGZpICMgdGVzdCAtbiAiJHByZXYiCi0rCi0rICAgICAgcHJldmFy Zz0iJGFyZyIKLSsKLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAtYWxsLXN0YXRpYykKLSsJ aWYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCi0rCSAgIyBTZWUgY29tbWVudCBm b3IgLXN0YXRpYyBmbGFnIGJlbG93LCBmb3IgbW9yZSBkZXRhaWxzLgotKwkgIGZ1bmNfYXBwZW5k IGNvbXBpbGVfY29tbWFuZCAiICRsaW5rX3N0YXRpY19mbGFnIgotKwkgIGZ1bmNfYXBwZW5kIGZp bmFsaXplX2NvbW1hbmQgIiAkbGlua19zdGF0aWNfZmxhZyIKLSsJZmkKLSsJY29udGludWUKLSsJ OzsKLSsKLSsgICAgICAtYWxsb3ctdW5kZWZpbmVkKQotKwkjIEZJWE1FOiByZW1vdmUgdGhpcyBm bGFnIHNvbWV0aW1lIGluIHRoZSBmdXR1cmUuCi0rCWZ1bmNfZmF0YWxfZXJyb3IgIlxgLWFsbG93 LXVuZGVmaW5lZCcgbXVzdCBub3QgYmUgdXNlZCBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0Igot Kwk7OwotKwotKyAgICAgIC1hdm9pZC12ZXJzaW9uKQotKwlhdm9pZF92ZXJzaW9uPXllcwotKwlj b250aW51ZQotKwk7OwotKwotKyAgICAgIC1iaW5kaXIpCi0rCXByZXY9YmluZGlyCi0rCWNvbnRp bnVlCi0rCTs7Ci0rCi0rICAgICAgLWRsb3BlbikKLSsJcHJldj1kbGZpbGVzCi0rCWNvbnRpbnVl Ci0rCTs7Ci0rCi0rICAgICAgLWRscHJlb3BlbikKLSsJcHJldj1kbHByZWZpbGVzCi0rCWNvbnRp bnVlCi0rCTs7Ci0rCi0rICAgICAgLWV4cG9ydC1keW5hbWljKQotKwlleHBvcnRfZHluYW1pYz15 ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtZXhwb3J0LXN5bWJvbHMgfCAtZXhwb3J0 LXN5bWJvbHMtcmVnZXgpCi0rCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgfHwgdGVzdCAt biAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIm1v cmUgdGhhbiBvbmUgLWV4cG9ydGVkLXN5bWJvbHMgYXJndW1lbnQgaXMgbm90IGFsbG93ZWQiCi0r CWZpCi0rCWlmIHRlc3QgIlgkYXJnIiA9ICJYLWV4cG9ydC1zeW1ib2xzIjsgdGhlbgotKwkgIHBy ZXY9ZXhwc3ltcwotKwllbHNlCi0rCSAgcHJldj1leHBzeW1zX3JlZ2V4Ci0rCWZpCi0rCWNvbnRp bnVlCi0rCTs7Ci0rCi0rICAgICAgLWZyYW1ld29yaykKLSsJcHJldj1mcmFtZXdvcmsKLSsJY29u dGludWUKLSsJOzsKLSsKLSsgICAgICAtaW5zdC1wcmVmaXgtZGlyKQotKwlwcmV2PWluc3RfcHJl Zml4Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgIyBUaGUgbmF0aXZlIElSSVggbGlua2Vy IHVuZGVyc3RhbmRzIC1MQU5HOiosIC1MSVNUOiogYW5kIC1MTk86KgotKyAgICAgICMgc28sIGlm IHdlIHNlZSB0aGVzZSBmbGFncyBiZSBjYXJlZnVsIG5vdCB0byB0cmVhdCB0aGVtIGxpa2UgLUwK LSsgICAgICAtTFtBLVpdW0EtWl0qOiopCi0rCWNhc2UgJHdpdGhfZ2NjLyRob3N0IGluCi0rCW5v LyotKi1pcml4KiB8IC8qLSotaXJpeCopCi0rCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5k ICIgJGFyZyIKLSsJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKLSsJICA7 OwotKwllc2FjCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLUwqKQotKwlmdW5jX3N0cmlw bmFtZSAiLUwiICcnICIkYXJnIgotKwlpZiB0ZXN0IC16ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0 IjsgdGhlbgotKwkgIGlmIHRlc3QgIiQjIiAtZ3QgMDsgdGhlbgotKwkgICAgZnVuY19mYXRhbF9l cnJvciAicmVxdWlyZSBubyBzcGFjZSBiZXR3ZWVuIFxgLUwnIGFuZCBcYCQxJyIKLSsJICBlbHNl Ci0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJuZWVkIHBhdGggZm9yIFxgLUwnIG9wdGlvbiIKLSsJ ICBmaQotKwlmaQotKwlmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3Vs dCIKLSsJZGlyPSRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKLSsJIyBXZSBuZWVkIGFuIGFi c29sdXRlIHBhdGguCi0rCWNhc2UgJGRpciBpbgotKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSop IDs7Ci0rCSopCi0rCSAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAotKwkgIHRlc3QgLXogIiRh YnNkaXIiICYmIFwKLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBkZXRlcm1pbmUgYWJz b2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIKLSsJICBkaXI9IiRhYnNkaXIiCi0rCSAg OzsKLSsJZXNhYwotKwljYXNlICIkZGVwbGlicyAiIGluCi0rCSoiIC1MJGRpciAiKiB8ICoiICRh cmcgIiopCi0rCSAgIyBXaWxsIG9ubHkgaGFwcGVuIGZvciBhYnNvbHV0ZSBvciBzeXNyb290IGFy Z3VtZW50cwotKwkgIDs7Ci0rCSopCi0rCSAgIyBQcmVzZXJ2ZSBzeXNyb290LCBidXQgbmV2ZXIg aW5jbHVkZSByZWxhdGl2ZSBkaXJlY3RvcmllcwotKwkgIGNhc2UgJGRpciBpbgotKwkgICAgW1xc L10qIHwgW0EtWmEtel06W1xcL10qIHwgPSopIGZ1bmNfYXBwZW5kIGRlcGxpYnMgIiAkYXJnIiA7 OwotKwkgICAgKikgZnVuY19hcHBlbmQgZGVwbGlicyAiIC1MJGRpciIgOzsKLSsJICBlc2FjCi0r CSAgZnVuY19hcHBlbmQgbGliX3NlYXJjaF9wYXRoICIgJGRpciIKLSsJICA7OwotKwllc2FjCi0r CWNhc2UgJGhvc3QgaW4KLSsJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwg Ki0qLW9zMiogfCAqLWNlZ2NjKikKLSsJICB0ZXN0YmluZGlyPWAkRUNITyAiJGRpciIgfCAkU0VE ICdzKi9saWIkKi9iaW4qJ2AKLSsJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KLSsJICAqIjok ZGlyOiIqKSA7OwotKwkgIDo6KSBkbGxzZWFyY2hwYXRoPSRkaXI7OwotKwkgICopIGZ1bmNfYXBw ZW5kIGRsbHNlYXJjaHBhdGggIjokZGlyIjs7Ci0rCSAgZXNhYwotKwkgIGNhc2UgOiRkbGxzZWFy Y2hwYXRoOiBpbgotKwkgICoiOiR0ZXN0YmluZGlyOiIqKSA7OwotKwkgIDo6KSBkbGxzZWFyY2hw YXRoPSR0ZXN0YmluZGlyOzsKLSsJICAqKSBmdW5jX2FwcGVuZCBkbGxzZWFyY2hwYXRoICI6JHRl c3RiaW5kaXIiOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKwljb250aW51ZQotKwk7Owot KwotKyAgICAgIC1sKikKLSsJaWYgdGVzdCAiWCRhcmciID0gIlgtbGMiIHx8IHRlc3QgIlgkYXJn IiA9ICJYLWxtIjsgdGhlbgotKwkgIGNhc2UgJGhvc3QgaW4KLSsJICAqLSotY3lnd2luKiB8ICot Ki1taW5ndyogfCAqLSotcHczMiogfCAqLSotYmVvcyogfCAqLWNlZ2NjKiB8ICotKi1oYWlrdSop Ci0rCSAgICAjIFRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIEMgb3IgbWF0aCBs aWJyYXJ5IChhcyBzdWNoKQotKwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgKi0qLW9zMiop Ci0rCSAgICAjIFRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIEMgbGlicmFyeSAo YXMgc3VjaCkKLSsJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQotKwkgICAg OzsKLSsJICAqLSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikKLSsJ ICAgICMgRG8gbm90IGluY2x1ZGUgbGliYyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMvbGliY19yLgot KwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgICot Ki1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKLSsJICAgICMgUmhhcHNvZHkgQyBhbmQg bWF0aCBsaWJyYXJpZXMgYXJlIGluIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCi0rCSAgICBmdW5jX2Fw cGVuZCBkZXBsaWJzICIgU3lzdGVtLmx0ZnJhbWV3b3JrIgotKwkgICAgY29udGludWUKLSsJICAg IDs7Ci0rCSAgKi0qLXNjbzMuMnY1KiB8ICotKi1zY281djYqKQotKwkgICAgIyBDYXVzZXMgcHJv YmxlbXMgd2l0aCBfX2N0eXBlCi0rCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGlu dWUKLSsJICAgIDs7Ci0rCSAgKi0qLXN5c3Y0LjJ1dzIqIHwgKi0qLXN5c3Y1KiB8ICotKi11bml4 d2FyZSogfCAqLSotT3BlblVOSVgqKQotKwkgICAgIyBDb21waWxlciBpbnNlcnRzIGxpYmMgaW4g dGhlIGNvcnJlY3QgcGxhY2UgZm9yIHRocmVhZHMgdG8gd29yawotKwkgICAgdGVzdCAiWCRhcmci ID0gIlgtbGMiICYmIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJZWxpZiB0ZXN0ICJY JGFyZyIgPSAiWC1sY19yIjsgdGhlbgotKwkgY2FzZSAkaG9zdCBpbgotKwkgKi0qLW9wZW5ic2Qq IHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCi0rCSAgICMgRG8gbm90IGluY2x1ZGUg bGliY19yIGRpcmVjdGx5LCB1c2UgLXB0aHJlYWQgZmxhZy4KLSsJICAgY29udGludWUKLSsJICAg OzsKLSsJIGVzYWMKLSsJZmkKLSsJZnVuY19hcHBlbmQgZGVwbGlicyAiICRhcmciCi0rCWNvbnRp bnVlCi0rCTs7Ci0rCi0rICAgICAgLW1vZHVsZSkKLSsJbW9kdWxlPXllcwotKwljb250aW51ZQot Kwk7OwotKwotKyAgICAgICMgVHJ1NjQgVU5JWCB1c2VzIC1tb2RlbCBbYXJnXSB0byBkZXRlcm1p bmUgdGhlIGxheW91dCBvZiBDKysKLSsgICAgICAjIGNsYXNzZXMsIG5hbWUgbWFuZ2xpbmcsIGFu ZCBleGNlcHRpb24gaGFuZGxpbmcuCi0rICAgICAgIyBEYXJ3aW4gdXNlcyB0aGUgLWFyY2ggZmxh ZyB0byBkZXRlcm1pbmUgb3V0cHV0IGFyY2hpdGVjdHVyZS4KLSsgICAgICAtbW9kZWx8LWFyY2h8 LWlzeXNyb290fC0tc3lzcm9vdCkKLSsJZnVuY19hcHBlbmQgY29tcGlsZXJfZmxhZ3MgIiAkYXJn IgotKwlmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgotKwlmdW5jX2FwcGVuZCBm aW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKLSsJcHJldj14Y29tcGlsZXIKLSsJY29udGludWUKLSsJ OzsKLSsKLSsgICAgICAtbXR8LW10aHJlYWRzfC1rdGhyZWFkfC1LdGhyZWFkfC1wdGhyZWFkfC1w dGhyZWFkc3wtLXRocmVhZC1zYWZlfC10aHJlYWRzKQotKwlmdW5jX2FwcGVuZCBjb21waWxlcl9m bGFncyAiICRhcmciCi0rCWZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCi0rCWZ1 bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgotKwljYXNlICIkbmV3X2luaGVyaXRl ZF9saW5rZXJfZmxhZ3MgIiBpbgotKwkgICAgKiIgJGFyZyAiKikgOzsKLSsJICAgICogKSBmdW5j X2FwcGVuZCBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiICRhcmciIDs7Ci0rCWVzYWMKLSsJ Y29udGludWUKLSsJOzsKLSsKLSsgICAgICAtbXVsdGlfbW9kdWxlKQotKwlzaW5nbGVfbW9kdWxl PSIke3dsfS1tdWx0aV9tb2R1bGUiCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW5vLWZh c3QtaW5zdGFsbCkKLSsJZmFzdF9pbnN0YWxsPW5vCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAg ICAgLW5vLWluc3RhbGwpCi0rCWNhc2UgJGhvc3QgaW4KLSsJKi0qLWN5Z3dpbiogfCAqLSotbWlu Z3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLSotZGFyd2luKiB8ICotY2VnY2MqKQotKwkg ICMgVGhlIFBBVEggaGFja2VyeSBpbiB3cmFwcGVyIHNjcmlwdHMgaXMgcmVxdWlyZWQgb24gV2lu ZG93cwotKwkgICMgYW5kIERhcndpbiBpbiBvcmRlciBmb3IgdGhlIGxvYWRlciB0byBmaW5kIGFu eSBkbGxzIGl0IG5lZWRzLgotKwkgIGZ1bmNfd2FybmluZyAiXGAtbm8taW5zdGFsbCcgaXMgaWdu b3JlZCBmb3IgJGhvc3QiCi0rCSAgZnVuY193YXJuaW5nICJhc3N1bWluZyBcYC1uby1mYXN0LWlu c3RhbGwnIGluc3RlYWQiCi0rCSAgZmFzdF9pbnN0YWxsPW5vCi0rCSAgOzsKLSsJKikgbm9faW5z dGFsbD15ZXMgOzsKLSsJZXNhYwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1uby11bmRl ZmluZWQpCi0rCWFsbG93X3VuZGVmaW5lZD1ubwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAg IC1vYmplY3RsaXN0KQotKwlwcmV2PW9iamVjdGxpc3QKLSsJY29udGludWUKLSsJOzsKLSsKLSsg ICAgICAtbykgcHJldj1vdXRwdXQgOzsKLSsKLSsgICAgICAtcHJlY2lvdXMtZmlsZXMtcmVnZXgp Ci0rCXByZXY9cHJlY2lvdXNfcmVnZXgKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtcmVs ZWFzZSkKLSsJcHJldj1yZWxlYXNlCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXJwYXRo KQotKwlwcmV2PXJwYXRoCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLVIpCi0rCXByZXY9 eHJwYXRoCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLVIqKQotKwlmdW5jX3N0cmlwbmFt ZSAnLVInICcnICIkYXJnIgotKwlkaXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkjIFdlIG5l ZWQgYW4gYWJzb2x1dGUgcGF0aC4KLSsJY2FzZSAkZGlyIGluCi0rCVtcXC9dKiB8IFtBLVphLXpd OltcXC9dKikgOzsKLSsJPSopCi0rCSAgZnVuY19zdHJpcG5hbWUgJz0nICcnICIkZGlyIgotKwkg IGRpcj0kbHRfc3lzcm9vdCRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICA7OwotKwkqKQotKwkg IGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgYWJzb2x1dGUgcnVuLXBhdGhzIGFyZSBhbGxvd2VkIgot KwkgIDs7Ci0rCWVzYWMKLSsJY2FzZSAiJHhycGF0aCAiIGluCi0rCSoiICRkaXIgIiopIDs7Ci0r CSopIGZ1bmNfYXBwZW5kIHhycGF0aCAiICRkaXIiIDs7Ci0rCWVzYWMKLSsJY29udGludWUKLSsJ OzsKLSsKLSsgICAgICAtc2hhcmVkKQotKwkjIFRoZSBlZmZlY3RzIG9mIC1zaGFyZWQgYXJlIGRl ZmluZWQgaW4gYSBwcmV2aW91cyBsb29wLgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1z aHJleHQpCi0rCXByZXY9c2hyZXh0Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXN0YXRp YyB8IC1zdGF0aWMtbGlidG9vbC1saWJzKQotKwkjIFRoZSBlZmZlY3RzIG9mIC1zdGF0aWMgYXJl IGRlZmluZWQgaW4gYSBwcmV2aW91cyBsb29wLgotKwkjIFdlIHVzZWQgdG8gZG8gdGhlIHNhbWUg YXMgLWFsbC1zdGF0aWMgb24gcGxhdGZvcm1zIHRoYXQKLSsJIyBkaWRuJ3QgaGF2ZSBhIFBJQyBm bGFnLCBidXQgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUgZWZmZWN0cwotKwkjIHdvdWxkIGJlIGVx dWl2YWxlbnQgd2FzIHdyb25nLiAgSXQgd291bGQgYnJlYWsgb24gYXQgbGVhc3QKLSsJIyBEaWdp dGFsIFVuaXggYW5kIEFJWC4KLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtdGhyZWFkLXNh ZmUpCi0rCXRocmVhZF9zYWZlPXllcwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC12ZXJz aW9uLWluZm8pCi0rCXByZXY9dmluZm8KLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtdmVy c2lvbi1udW1iZXIpCi0rCXByZXY9dmluZm8KLSsJdmluZm9fbnVtYmVyPXllcwotKwljb250aW51 ZQotKwk7OwotKwotKyAgICAgIC13ZWFrKQotKyAgICAgICAgcHJldj13ZWFrCi0rCWNvbnRpbnVl Ci0rCTs7Ci0rCi0rICAgICAgLVdjLCopCi0rCWZ1bmNfc3RyaXBuYW1lICctV2MsJyAnJyAiJGFy ZyIKLSsJYXJncz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCWFyZz0KLSsJc2F2ZV9pZnM9IiRJ RlMiOyBJRlM9JywnCi0rCWZvciBmbGFnIGluICRhcmdzOyBkbwotKwkgIElGUz0iJHNhdmVfaWZz IgotKyAgICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkZmxhZyIKLSsJICBmdW5jX2FwcGVu ZCBhcmcgIiAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCSAgZnVuY19hcHBlbmQgY29t cGlsZXJfZmxhZ3MgIiAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCWRvbmUKLSsJSUZT PSIkc2F2ZV9pZnMiCi0rCWZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGFyZyIKLSsJYXJnPSRmdW5j X3N0cmlwbmFtZV9yZXN1bHQKLSsJOzsKLSsKLSsgICAgICAtV2wsKikKLSsJZnVuY19zdHJpcG5h bWUgJy1XbCwnICcnICIkYXJnIgotKwlhcmdzPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJYXJn PQotKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcKLSsJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCi0r CSAgSUZTPSIkc2F2ZV9pZnMiCi0rICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmbGFn IgotKwkgIGZ1bmNfYXBwZW5kIGFyZyAiICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIK LSsJICBmdW5jX2FwcGVuZCBjb21waWxlcl9mbGFncyAiICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFs X3Jlc3VsdCIKLSsJICBmdW5jX2FwcGVuZCBsaW5rZXJfZmxhZ3MgIiAkZnVuY19xdW90ZV9mb3Jf ZXZhbF9yZXN1bHQiCi0rCWRvbmUKLSsJSUZTPSIkc2F2ZV9pZnMiCi0rCWZ1bmNfc3RyaXBuYW1l ICcgJyAnJyAiJGFyZyIKLSsJYXJnPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJOzsKLSsKLSsg ICAgICAtWGNvbXBpbGVyKQotKwlwcmV2PXhjb21waWxlcgotKwljb250aW51ZQotKwk7OwotKwot KyAgICAgIC1YbGlua2VyKQotKwlwcmV2PXhsaW5rZXIKLSsJY29udGludWUKLSsJOzsKLSsKLSsg ICAgICAtWENDbGlua2VyKQotKwlwcmV2PXhjY2xpbmtlcgotKwljb250aW51ZQotKwk7OwotKwot KyAgICAgICMgLW1zZ18qIGZvciBvc2YgY2MKLSsgICAgICAtbXNnXyopCi0rCWZ1bmNfcXVvdGVf Zm9yX2V2YWwgIiRhcmciCi0rCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwk7 OwotKwotKyAgICAgICMgRmxhZ3MgdG8gYmUgcGFzc2VkIHRocm91Z2ggdW5jaGFuZ2VkLCB3aXRo IHJhdGlvbmFsZToKLSsgICAgICAjIC02NCwgLW1pcHNbMC05XSAgICAgIGVuYWJsZSA2NC1iaXQg bW9kZSBmb3IgdGhlIFNHSSBjb21waWxlcgotKyAgICAgICMgLXJbMC05XVswLTldKiAgICAgICAg c3BlY2lmeSBwcm9jZXNzb3IgZm9yIHRoZSBTR0kgY29tcGlsZXIKLSsgICAgICAjIC14YXJjaD0q LCAteHRhcmdldD0qIGVuYWJsZSA2NC1iaXQgbW9kZSBmb3IgdGhlIFN1biBjb21waWxlcgotKyAg ICAgICMgK0RBKiwgK0REKiAgICAgICAgICAgZW5hYmxlIDY0LWJpdCBtb2RlIGZvciB0aGUgSFAg Y29tcGlsZXIKLSsgICAgICAjIC1xKiAgICAgICAgICAgICAgICAgIGNvbXBpbGVyIGFyZ3MgZm9y IHRoZSBJQk0gY29tcGlsZXIKLSsgICAgICAjIC1tKiwgLXRbNDVdKiwgLXR4c2NhbGUqIGFyY2hp dGVjdHVyZS1zcGVjaWZpYyBmbGFncyBmb3IgR0NDCi0rICAgICAgIyAtRi9wYXRoICAgICAgICAg ICAgICBwYXRoIHRvIHVuaW5zdGFsbGVkIGZyYW1ld29ya3MsIGdjYyBvbiBkYXJ3aW4KLSsgICAg ICAjIC1wLCAtcGcsIC0tY292ZXJhZ2UsIC1mcHJvZmlsZS0qICBwcm9maWxpbmcgZmxhZ3MgZm9y IEdDQwotKyAgICAgICMgQGZpbGUgICAgICAgICAgICAgICAgR0NDIHJlc3BvbnNlIGZpbGVzCi0r ICAgICAgIyAtdHA9KiAgICAgICAgICAgICAgICBQb3J0bGFuZCBwZ2NjIHRhcmdldCBwcm9jZXNz b3Igc2VsZWN0aW9uCi0rICAgICAgIyAtLXN5c3Jvb3Q9KiAgICAgICAgICBmb3Igc3lzcm9vdCBz dXBwb3J0Ci0rICAgICAgIyAtTyosIC1mbHRvKiwgLWZ3aG9wciosIC1mdXNlLWxpbmtlci1wbHVn aW4gR0NDIGxpbmstdGltZSBvcHRpbWl6YXRpb24KLSsgICAgICAtNjR8LW1pcHNbMC05XXwtclsw LTldWzAtOV0qfC14YXJjaD0qfC14dGFyZ2V0PSp8K0RBKnwrREQqfC1xKnwtbSp8IFwKLSsgICAg ICAtdFs0NV0qfC10eHNjYWxlKnwtcHwtcGd8LS1jb3ZlcmFnZXwtZnByb2ZpbGUtKnwtRip8QCp8 LXRwPSp8LS1zeXNyb290PSp8IFwKLSsgICAgICAtTyp8LWZsdG8qfC1md2hvcHIqfC1mdXNlLWxp bmtlci1wbHVnaW4pCi0rICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKwlhcmc9 IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsgICAgICAgIGZ1bmNfYXBwZW5kIGNvbXBp bGVfY29tbWFuZCAiICRhcmciCi0rICAgICAgICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5k ICIgJGFyZyIKLSsgICAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJGFyZyIKLSsg ICAgICAgIGNvbnRpbnVlCi0rICAgICAgICA7OwotKwotKyAgICAgICMgU29tZSBvdGhlciBjb21w aWxlciBmbGFnLgotKyAgICAgIC0qIHwgKyopCi0rICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFs ICIkYXJnIgotKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsJOzsKLSsKLSsg ICAgICAqLiRvYmpleHQpCi0rCSMgQSBzdGFuZGFyZCBvYmplY3QuCi0rCWZ1bmNfYXBwZW5kIG9i anMgIiAkYXJnIgotKwk7OwotKwotKyAgICAgICoubG8pCi0rCSMgQSBsaWJ0b29sLWNvbnRyb2xs ZWQgb2JqZWN0LgotKwotKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGli dG9vbCBvYmplY3QuCi0rCWlmIGZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRhcmciOyB0aGVuCi0rCSAg cGljX29iamVjdD0KLSsJICBub25fcGljX29iamVjdD0KLSsKLSsJICAjIFJlYWQgdGhlIC5sbyBm aWxlCi0rCSAgZnVuY19zb3VyY2UgIiRhcmciCi0rCi0rCSAgaWYgdGVzdCAteiAiJHBpY19vYmpl Y3QiIHx8Ci0rCSAgICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAotKwkgICAgIHRlc3Qg IiRwaWNfb2JqZWN0IiA9IG5vbmUgJiYKLSsJICAgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiID0g bm9uZTsgdGhlbgotKwkgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBv YmplY3QgZm9yIFxgJGFyZyciCi0rCSAgZmkKLSsKLSsJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5 IGZyb20gdGhlIGFyZ3VtZW50LgotKwkgIGZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCi0rCSAg eGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCi0rCSAgaWYgdGVzdCAiJHBpY19vYmplY3Qi ICE9IG5vbmU7IHRoZW4KLSsJICAgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmpl Y3QgaXMgZm91bmQgaW4uCi0rCSAgICBwaWNfb2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0IgotKwot KwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgotKwkgICAgICBpZiB0ZXN0ICIk YnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0geWVz OyB0aGVuCi0rCQlmdW5jX2FwcGVuZCBkbGZpbGVzICIgJHBpY19vYmplY3QiCi0rCQlwcmV2PQot KwkJY29udGludWUKLSsJICAgICAgZWxzZQotKwkJIyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVu c3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJlbG9hZC4KLSsJCXByZXY9ZGxwcmVmaWxlcwot KwkgICAgICBmaQotKwkgICAgZmkKLSsKLSsJICAgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVz dGVkIHRoaXMuICAtT3NzYW1hCi0rCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0 aGVuCi0rCSAgICAgICMgUHJlbG9hZCB0aGUgb2xkLXN0eWxlIG9iamVjdC4KLSsJICAgICAgZnVu Y19hcHBlbmQgZGxwcmVmaWxlcyAiICRwaWNfb2JqZWN0IgotKwkgICAgICBwcmV2PQotKwkgICAg ZmkKLSsKLSsJICAgICMgQSBQSUMgb2JqZWN0LgotKwkgICAgZnVuY19hcHBlbmQgbGlib2JqcyAi ICRwaWNfb2JqZWN0IgotKwkgICAgYXJnPSIkcGljX29iamVjdCIKLSsJICBmaQotKwotKwkgICMg Tm9uLVBJQyBvYmplY3QuCi0rCSAgaWYgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0 aGVuCi0rCSAgICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5k IGluLgotKwkgICAgbm9uX3BpY19vYmplY3Q9IiR4ZGlyJG5vbl9waWNfb2JqZWN0IgotKwotKwkg ICAgIyBBIHN0YW5kYXJkIG5vbi1QSUMgb2JqZWN0Ci0rCSAgICBmdW5jX2FwcGVuZCBub25fcGlj X29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCi0rCSAgICBpZiB0ZXN0IC16ICIkcGljX29iamVj dCIgfHwgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSA7IHRoZW4KLSsJICAgICAgYXJnPSIkbm9u X3BpY19vYmplY3QiCi0rCSAgICBmaQotKwkgIGVsc2UKLSsJICAgICMgSWYgdGhlIFBJQyBvYmpl Y3QgZXhpc3RzLCB1c2UgaXQgaW5zdGVhZC4KLSsJICAgICMgJHhkaXIgd2FzIHByZXBlbmRlZCB0 byAkcGljX29iamVjdCBhYm92ZS4KLSsJICAgIG5vbl9waWNfb2JqZWN0PSIkcGljX29iamVjdCIK LSsJICAgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIKLSsJ ICBmaQotKwllbHNlCi0rCSAgIyBPbmx5IGFuIGVycm9yIGlmIG5vdCBkb2luZyBhIGRyeS1ydW4u Ci0rCSAgaWYgJG9wdF9kcnlfcnVuOyB0aGVuCi0rCSAgICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5 IGZyb20gdGhlIGFyZ3VtZW50LgotKwkgICAgZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIKLSsJ ICAgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKwotKwkgICAgZnVuY19sbzJvICIkYXJn IgotKwkgICAgcGljX29iamVjdD0keGRpciRvYmpkaXIvJGZ1bmNfbG8yb19yZXN1bHQKLSsJICAg IG5vbl9waWNfb2JqZWN0PSR4ZGlyJGZ1bmNfbG8yb19yZXN1bHQKLSsJICAgIGZ1bmNfYXBwZW5k IGxpYm9ianMgIiAkcGljX29iamVjdCIKLSsJICAgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0 cyAiICRub25fcGljX29iamVjdCIKLSsJICBlbHNlCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJc YCRhcmcnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgb2JqZWN0IgotKwkgIGZpCi0rCWZpCi0rCTs7 Ci0rCi0rICAgICAgKi4kbGliZXh0KQotKwkjIEFuIGFyY2hpdmUuCi0rCWZ1bmNfYXBwZW5kIGRl cGxpYnMgIiAkYXJnIgotKwlmdW5jX2FwcGVuZCBvbGRfZGVwbGlicyAiICRhcmciCi0rCWNvbnRp bnVlCi0rCTs7Ci0rCi0rICAgICAgKi5sYSkKLSsJIyBBIGxpYnRvb2wtY29udHJvbGxlZCBsaWJy YXJ5LgotKwotKwlmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGFyZyIKLSsJaWYgdGVzdCAiJHByZXYi ID0gZGxmaWxlczsgdGhlbgotKwkgICMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAt ZGxvcGVuLgotKwkgIGZ1bmNfYXBwZW5kIGRsZmlsZXMgIiAkZnVuY19yZXNvbHZlX3N5c3Jvb3Rf cmVzdWx0IgotKwkgIHByZXY9Ci0rCWVsaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhl bgotKwkgICMgVGhlIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbHByZW9wZW4uCi0rCSAg ZnVuY19hcHBlbmQgZGxwcmVmaWxlcyAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCi0r CSAgcHJldj0KLSsJZWxzZQotKwkgIGZ1bmNfYXBwZW5kIGRlcGxpYnMgIiAkZnVuY19yZXNvbHZl X3N5c3Jvb3RfcmVzdWx0IgotKwlmaQotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgICMgU29t ZSBvdGhlciBjb21waWxlciBhcmd1bWVudC4KLSsgICAgICAqKQotKwkjIFVua25vd24gYXJndW1l bnRzIGluIGJvdGggZmluYWxpemVfY29tbWFuZCBhbmQgY29tcGlsZV9jb21tYW5kIG5lZWQKLSsJ IyB0byBiZSBhZXN0aGV0aWNhbGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRl ci4KLSsJZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKLSsJYXJnPSIkZnVuY19xdW90ZV9mb3Jf ZXZhbF9yZXN1bHQiCi0rCTs7Ci0rICAgICAgZXNhYyAjIGFyZwotKwotKyAgICAgICMgTm93IGFj dHVhbGx5IHN1YnN0aXR1dGUgdGhlIGFyZ3VtZW50IGludG8gdGhlIGNvbW1hbmRzLgotKyAgICAg IGlmIHRlc3QgLW4gIiRhcmciOyB0aGVuCi0rCWZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAi ICRhcmciCi0rCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgotKyAgICAgIGZp Ci0rICAgIGRvbmUgIyBhcmd1bWVudCBwYXJzaW5nIGxvb3AKLSsKLSsgICAgdGVzdCAtbiAiJHBy ZXYiICYmIFwKLSsgICAgICBmdW5jX2ZhdGFsX2hlbHAgInRoZSBcYCRwcmV2YXJnJyBvcHRpb24g cmVxdWlyZXMgYW4gYXJndW1lbnQiCi0rCi0rICAgIGlmIHRlc3QgIiRleHBvcnRfZHluYW1pYyIg PSB5ZXMgJiYgdGVzdCAtbiAiJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyI7IHRoZW4KLSsgICAg ICBldmFsIGFyZz1cIiRleHBvcnRfZHluYW1pY19mbGFnX3NwZWNcIgotKyAgICAgIGZ1bmNfYXBw ZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCi0rICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVf Y29tbWFuZCAiICRhcmciCi0rICAgIGZpCi0rCi0rICAgIG9sZGxpYnM9Ci0rICAgICMgY2FsY3Vs YXRlIHRoZSBuYW1lIG9mIHRoZSBmaWxlLCB3aXRob3V0IGl0cyBkaXJlY3RvcnkKLSsgICAgZnVu Y19iYXNlbmFtZSAiJG91dHB1dCIKLSsgICAgb3V0cHV0bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVz dWx0IgotKyAgICBsaWJvYmpzX3NhdmU9IiRsaWJvYmpzIgotKwotKyAgICBpZiB0ZXN0IC1uICIk c2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsgICAgICAjIGdldCB0aGUgZGlyZWN0b3JpZXMgbGlzdGVk IGluICRzaGxpYnBhdGhfdmFyCi0rICAgICAgZXZhbCBzaGxpYl9zZWFyY2hfcGF0aD1cYFwkRUNI TyBcIlwkeyRzaGxpYnBhdGhfdmFyfVwiIFx8IFwkU0VEIFwncy86LyAvZ1wnXGAKLSsgICAgZWxz ZQotKyAgICAgIHNobGliX3NlYXJjaF9wYXRoPQotKyAgICBmaQotKyAgICBldmFsIHN5c19saWJf c2VhcmNoX3BhdGg9XCIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjXCIKLSsgICAgZXZhbCBzeXNf bGliX2Rsc2VhcmNoX3BhdGg9XCIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWNcIgotKwotKyAg ICBmdW5jX2Rpcm5hbWUgIiRvdXRwdXQiICIvIiAiIgotKyAgICBvdXRwdXRfb2JqZGlyPSIkZnVu Y19kaXJuYW1lX3Jlc3VsdCRvYmpkaXIiCi0rICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkb3V0cHV0 X29iamRpci8iCi0rICAgIHRvb2xfb3V0cHV0X29iamRpcj0kZnVuY190b190b29sX2ZpbGVfcmVz dWx0Ci0rICAgICMgQ3JlYXRlIHRoZSBvYmplY3QgZGlyZWN0b3J5LgotKyAgICBmdW5jX21rZGly X3AgIiRvdXRwdXRfb2JqZGlyIgotKwotKyAgICAjIERldGVybWluZSB0aGUgdHlwZSBvZiBvdXRw dXQKLSsgICAgY2FzZSAkb3V0cHV0IGluCi0rICAgICIiKQotKyAgICAgIGZ1bmNfZmF0YWxfaGVs cCAieW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSIKLSsgICAgICA7OwotKyAgICAqLiRs aWJleHQpIGxpbmttb2RlPW9sZGxpYiA7OwotKyAgICAqLmxvIHwgKi4kb2JqZXh0KSBsaW5rbW9k ZT1vYmogOzsKLSsgICAgKi5sYSkgbGlua21vZGU9bGliIDs7Ci0rICAgICopIGxpbmttb2RlPXBy b2cgOzsgIyBBbnl0aGluZyBlbHNlIHNob3VsZCBiZSBhIHByb2dyYW0uCi0rICAgIGVzYWMKLSsK LSsgICAgc3BlY2lhbGRlcGxpYnM9Ci0rCi0rICAgIGxpYnM9Ci0rICAgICMgRmluZCBhbGwgaW50 ZXJkZXBlbmRlbnQgZGVwbGlicyBieSBzZWFyY2hpbmcgZm9yIGxpYnJhcmllcwotKyAgICAjIHRo YXQgYXJlIGxpbmtlZCBtb3JlIHRoYW4gb25jZSAoZS5nLiAtbGEgLWxiIC1sYSkKLSsgICAgZm9y IGRlcGxpYiBpbiAkZGVwbGliczsgZG8KLSsgICAgICBpZiAkb3B0X3ByZXNlcnZlX2R1cF9kZXBz IDsgdGhlbgotKwljYXNlICIkbGlicyAiIGluCi0rCSoiICRkZXBsaWIgIiopIGZ1bmNfYXBwZW5k IHNwZWNpYWxkZXBsaWJzICIgJGRlcGxpYiIgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAg ZnVuY19hcHBlbmQgbGlicyAiICRkZXBsaWIiCi0rICAgIGRvbmUKLSsKLSsgICAgaWYgdGVzdCAi JGxpbmttb2RlIiA9IGxpYjsgdGhlbgotKyAgICAgIGxpYnM9IiRwcmVkZXBzICRsaWJzICRjb21w aWxlcl9saWJfc2VhcmNoX3BhdGggJHBvc3RkZXBzIgotKwotKyAgICAgICMgQ29tcHV0ZSBsaWJy YXJpZXMgdGhhdCBhcmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlIGluICRwcmVkZXBzCi0rICAgICAg IyAkcG9zdGRlcHMgYW5kIG1hcmsgdGhlbSBhcyBzcGVjaWFsIChpLmUuLCB3aG9zZSBkdXBsaWNh dGVzIGFyZQotKyAgICAgICMgbm90IHRvIGJlIGVsaW1pbmF0ZWQpLgotKyAgICAgIHByZV9wb3N0 X2RlcHM9Ci0rICAgICAgaWYgJG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM7 IHRoZW4KLSsJZm9yIHByZV9wb3N0X2RlcCBpbiAkcHJlZGVwcyAkcG9zdGRlcHM7IGRvCi0rCSAg Y2FzZSAiJHByZV9wb3N0X2RlcHMgIiBpbgotKwkgICoiICRwcmVfcG9zdF9kZXAgIiopIGZ1bmNf YXBwZW5kIHNwZWNpYWxkZXBsaWJzICIgJHByZV9wb3N0X2RlcHMiIDs7Ci0rCSAgZXNhYwotKwkg IGZ1bmNfYXBwZW5kIHByZV9wb3N0X2RlcHMgIiAkcHJlX3Bvc3RfZGVwIgotKwlkb25lCi0rICAg ICAgZmkKLSsgICAgICBwcmVfcG9zdF9kZXBzPQotKyAgICBmaQotKwotKyAgICBkZXBsaWJzPQot KyAgICBuZXdkZXBlbmRlbmN5X2xpYnM9Ci0rICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0KLSsgICAg bmVlZF9yZWxpbms9bm8gIyB3aGV0aGVyIHdlJ3JlIGxpbmtpbmcgYW55IHVuaW5zdGFsbGVkIGxp YnRvb2wgbGlicmFyaWVzCi0rICAgIG5vdGluc3RfZGVwbGlicz0gIyBub3QtaW5zdGFsbGVkIGxp YnRvb2wgbGlicmFyaWVzCi0rICAgIG5vdGluc3RfcGF0aD0gIyBwYXRocyB0aGF0IGNvbnRhaW4g bm90LWluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcwotKwotKyAgICBjYXNlICRsaW5rbW9kZSBp bgotKyAgICBsaWIpCi0rCXBhc3Nlcz0iY29udiBkbHByZW9wZW4gbGluayIKLSsJZm9yIGZpbGUg aW4gJGRsZmlsZXMgJGRscHJlZmlsZXM7IGRvCi0rCSAgY2FzZSAkZmlsZSBpbgotKwkgICoubGEp IDs7Ci0rCSAgKikKLSsJICAgIGZ1bmNfZmF0YWxfaGVscCAibGlicmFyaWVzIGNhbiBcYC1kbG9w ZW4nIG9ubHkgbGlidG9vbCBsaWJyYXJpZXM6ICRmaWxlIgotKwkgICAgOzsKLSsJICBlc2FjCi0r CWRvbmUKLSsJOzsKLSsgICAgcHJvZykKLSsJY29tcGlsZV9kZXBsaWJzPQotKwlmaW5hbGl6ZV9k ZXBsaWJzPQotKwlhbGxkZXBsaWJzPW5vCi0rCW5ld2RsZmlsZXM9Ci0rCW5ld2RscHJlZmlsZXM9 Ci0rCXBhc3Nlcz0iY29udiBzY2FuIGRsb3BlbiBkbHByZW9wZW4gbGluayIKLSsJOzsKLSsgICAg KikgIHBhc3Nlcz0iY29udiIKLSsJOzsKLSsgICAgZXNhYwotKwotKyAgICBmb3IgcGFzcyBpbiAk cGFzc2VzOyBkbwotKyAgICAgICMgVGhlIHByZW9wZW4gcGFzcyBpbiBsaWIgbW9kZSByZXZlcnNl cyAkZGVwbGliczsgcHV0IGl0IGJhY2sgaGVyZQotKyAgICAgICMgc28gdGhhdCAtTCBjb21lcyBi ZWZvcmUgbGlicyB0aGF0IG5lZWQgaXQgZm9yIGluc3RhbmNlLi4uCi0rICAgICAgaWYgdGVzdCAi JGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGluayI7IHRoZW4KLSsJIyMgRklYTUU6IEZpbmQgdGhl IHBsYWNlIHdoZXJlIHRoZSBsaXN0IGlzIHJlYnVpbHQgaW4gdGhlIHdyb25nCi0rCSMjICAgICAg ICBvcmRlciwgYW5kIGZpeCBpdCB0aGVyZSBwcm9wZXJseQotKyAgICAgICAgdG1wX2RlcGxpYnM9 Ci0rCWZvciBkZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCSAgdG1wX2RlcGxpYnM9IiRkZXBsaWIg JHRtcF9kZXBsaWJzIgotKwlkb25lCi0rCWRlcGxpYnM9IiR0bXBfZGVwbGlicyIKLSsgICAgICBm aQotKwotKyAgICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGxpbmsiIHx8Ci0r CSB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csc2NhbiI7IHRoZW4KLSsJbGlicz0iJGRl cGxpYnMiCi0rCWRlcGxpYnM9Ci0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0ICIkbGlua21vZGUi ID0gcHJvZzsgdGhlbgotKwljYXNlICRwYXNzIGluCi0rCWRsb3BlbikgbGlicz0iJGRsZmlsZXMi IDs7Ci0rCWRscHJlb3BlbikgbGlicz0iJGRscHJlZmlsZXMiIDs7Ci0rCWxpbmspIGxpYnM9IiRk ZXBsaWJzICVERVBMSUJTJSAkZGVwZW5kZW5jeV9saWJzIiA7OwotKwllc2FjCi0rICAgICAgZmkK LSsgICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixkbHByZW9wZW4iOyB0aGVu Ci0rCSMgQ29sbGVjdCBhbmQgZm9yd2FyZCBkZXBsaWJzIG9mIHByZW9wZW5lZCBsaWJ0b29sIGxp YnMKLSsJZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KLSsJICAjIElnbm9yZSBub24tbGlidG9v bC1saWJzCi0rCSAgZGVwZW5kZW5jeV9saWJzPQotKwkgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIk bGliIgotKwkgIGNhc2UgJGxpYiBpbgotKwkgICoubGEpCWZ1bmNfc291cmNlICIkZnVuY19yZXNv bHZlX3N5c3Jvb3RfcmVzdWx0IiA7OwotKwkgIGVzYWMKLSsKLSsJICAjIENvbGxlY3QgcHJlb3Bl bmVkIGxpYnRvb2wgZGVwbGlicywgZXhjZXB0IGFueSB0aGlzIGxpYnJhcnkKLSsJICAjIGhhcyBk ZWNsYXJlZCBhcyB3ZWFrIGxpYnMKLSsJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7 IGRvCi0rCSAgICBmdW5jX2Jhc2VuYW1lICIkZGVwbGliIgotKyAgICAgICAgICAgIGRlcGxpYl9i YXNlPSRmdW5jX2Jhc2VuYW1lX3Jlc3VsdAotKwkgICAgY2FzZSAiICR3ZWFrX2xpYnMgIiBpbgot KwkgICAgKiIgJGRlcGxpYl9iYXNlICIqKSA7OwotKwkgICAgKikgZnVuY19hcHBlbmQgZGVwbGli cyAiICRkZXBsaWIiIDs7Ci0rCSAgICBlc2FjCi0rCSAgZG9uZQotKwlkb25lCi0rCWxpYnM9IiRk bHByZWZpbGVzIgotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0 aGVuCi0rCSMgQ29sbGVjdCBkbHByZW9wZW5lZCBsaWJyYXJpZXMKLSsJc2F2ZV9kZXBsaWJzPSIk ZGVwbGlicyIKLSsJZGVwbGlicz0KLSsgICAgICBmaQotKwotKyAgICAgIGZvciBkZXBsaWIgaW4g JGxpYnM7IGRvCi0rCWxpYj0KLSsJZm91bmQ9bm8KLSsJY2FzZSAkZGVwbGliIGluCi0rCS1tdHwt bXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNh ZmV8LXRocmVhZHMpCi0rCSAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsi OyB0aGVuCi0rCSAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIK LSsJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAg ZWxzZQotKwkgICAgZnVuY19hcHBlbmQgY29tcGlsZXJfZmxhZ3MgIiAkZGVwbGliIgotKwkgICAg aWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRoZW4KLSsJCWNhc2UgIiRuZXdfaW5oZXJpdGVk X2xpbmtlcl9mbGFncyAiIGluCi0rCQkgICAgKiIgJGRlcGxpYiAiKikgOzsKLSsJCSAgICAqICkg ZnVuY19hcHBlbmQgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiAkZGVwbGliIiA7OwotKwkJ ZXNhYwotKwkgICAgZmkKLSsJICBmaQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJLWwqKQotKwkg IGlmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGliICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZzsg dGhlbgotKwkgICAgZnVuY193YXJuaW5nICJcYC1sJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9v YmplY3RzIgotKwkgICAgY29udGludWUKLSsJICBmaQotKwkgIGZ1bmNfc3RyaXBuYW1lICctbCcg JycgIiRkZXBsaWIiCi0rCSAgbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCSAgaWYgdGVz dCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgotKwkgICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFy Y2hfcGF0aCAkbGliX3NlYXJjaF9wYXRoICRjb21waWxlcl9saWJfc2VhcmNoX2RpcnMgJHN5c19s aWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoIgotKwkgIGVsc2UKLSsJICAgIHNlYXJj aGRpcnM9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFy Y2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGgiCi0rCSAgZmkKLSsJICBmb3Igc2VhcmNoZGlyIGlu ICRzZWFyY2hkaXJzOyBkbwotKwkgICAgZm9yIHNlYXJjaF9leHQgaW4gLmxhICRzdGRfc2hyZXh0 IC5zbyAuYTsgZG8KLSsJICAgICAgIyBTZWFyY2ggdGhlIGxpYnRvb2wgbGlicmFyeQotKwkgICAg ICBsaWI9IiRzZWFyY2hkaXIvbGliJHtuYW1lfSR7c2VhcmNoX2V4dH0iCi0rCSAgICAgIGlmIHRl c3QgLWYgIiRsaWIiOyB0aGVuCi0rCQlpZiB0ZXN0ICIkc2VhcmNoX2V4dCIgPSAiLmxhIjsgdGhl bgotKwkJICBmb3VuZD15ZXMKLSsJCWVsc2UKLSsJCSAgZm91bmQ9bm8KLSsJCWZpCi0rCQlicmVh ayAyCi0rCSAgICAgIGZpCi0rCSAgICBkb25lCi0rCSAgZG9uZQotKwkgIGlmIHRlc3QgIiRmb3Vu ZCIgIT0geWVzOyB0aGVuCi0rCSAgICAjIGRlcGxpYiBkb2Vzbid0IHNlZW0gdG8gYmUgYSBsaWJ0 b29sIGxpYnJhcnkKLSsJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5r IjsgdGhlbgotKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGli cyIKLSsJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIK LSsJICAgIGVsc2UKLSsJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgICAg dGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5l d2RlcGVuZGVuY3lfbGlicyIKLSsJICAgIGZpCi0rCSAgICBjb250aW51ZQotKwkgIGVsc2UgIyBk ZXBsaWIgaXMgYSBsaWJ0b29sIGxpYnJhcnkKLSsJICAgICMgSWYgJGFsbG93X2xpYnRvb2xfbGli c193aXRoX3N0YXRpY19ydW50aW1lcyAmJiAkZGVwbGliIGlzIGEgc3RkbGliLAotKwkgICAgIyBX ZSBuZWVkIHRvIGRvIHNvbWUgc3BlY2lhbCB0aGluZ3MgaGVyZSwgYW5kIG5vdCBsYXRlci4KLSsJ ICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9 ICJYeWVzIiA7IHRoZW4KLSsJICAgICAgY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCi0r CSAgICAgICoiICRkZXBsaWIgIiopCi0rCQlpZiBmdW5jX2xhbGliX3AgIiRsaWIiOyB0aGVuCi0r CQkgIGxpYnJhcnlfbmFtZXM9Ci0rCQkgIG9sZF9saWJyYXJ5PQotKwkJICBmdW5jX3NvdXJjZSAi JGxpYiIKLSsJCSAgZm9yIGwgaW4gJG9sZF9saWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBkbwotKwkJ ICAgIGxsPSIkbCIKLSsJCSAgZG9uZQotKwkJICBpZiB0ZXN0ICJYJGxsIiA9ICJYJG9sZF9saWJy YXJ5IiA7IHRoZW4gIyBvbmx5IHN0YXRpYyB2ZXJzaW9uIGF2YWlsYWJsZQotKwkJICAgIGZvdW5k PW5vCi0rCQkgICAgZnVuY19kaXJuYW1lICIkbGliIiAiIiAiLiIKLSsJCSAgICBsYWRpcj0iJGZ1 bmNfZGlybmFtZV9yZXN1bHQiCi0rCQkgICAgbGliPSRsYWRpci8kb2xkX2xpYnJhcnkKLSsJCSAg ICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJCSAgICAg IGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkJICAgICAgZmlu YWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKLSsJCSAgICBlbHNlCi0r CQkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkJICAgICAgdGVzdCAiJGxpbmtt b2RlIiA9IGxpYiAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lf bGlicyIKLSsJCSAgICBmaQotKwkJICAgIGNvbnRpbnVlCi0rCQkgIGZpCi0rCQlmaQotKwkJOzsK LSsJICAgICAgKikgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJICBmaQotKwkgIDs7ICMg LWwKLSsJKi5sdGZyYW1ld29yaykKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInBy b2csbGluayI7IHRoZW4KLSsJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9k ZXBsaWJzIgotKwkgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGli cyIKLSsJICBlbHNlCi0rCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkgICAgaWYg dGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRoZW4KLSsJCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xp bmtlcl9mbGFncyAiIGluCi0rCQkgICAgKiIgJGRlcGxpYiAiKikgOzsKLSsJCSAgICAqICkgZnVu Y19hcHBlbmQgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiAkZGVwbGliIiA7OwotKwkJZXNh YwotKwkgICAgZmkKLSsJICBmaQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJLUwqKQotKwkgIGNh c2UgJGxpbmttb2RlIGluCi0rCSAgbGliKQotKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGli cyIKLSsJICAgIHRlc3QgIiRwYXNzIiA9IGNvbnYgJiYgY29udGludWUKLSsJICAgIG5ld2RlcGVu ZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgZnVuY19zdHJp cG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKLSsJICAgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZnVu Y19zdHJpcG5hbWVfcmVzdWx0IgotKwkgICAgZnVuY19hcHBlbmQgbmV3bGliX3NlYXJjaF9wYXRo ICIgJGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdCIKLSsJICAgIDs7Ci0rCSAgcHJvZykKLSsJ ICAgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJICAgICAgZGVwbGlicz0iJGRlcGxp YiAkZGVwbGlicyIKLSsJICAgICAgY29udGludWUKLSsJICAgIGZpCi0rCSAgICBpZiB0ZXN0ICIk cGFzcyIgPSBzY2FuOyB0aGVuCi0rCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0r CSAgICBlbHNlCi0rCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBs aWJzIgotKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJz IgotKwkgICAgZmkKLSsJICAgIGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIiCi0rCSAg ICBmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKLSsJICAgIGZ1 bmNfYXBwZW5kIG5ld2xpYl9zZWFyY2hfcGF0aCAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1 bHQiCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBmdW5jX3dhcm5pbmcgIlxgLUwnIGlzIGlnbm9y ZWQgZm9yIGFyY2hpdmVzL29iamVjdHMiCi0rCSAgICA7OwotKwkgIGVzYWMgIyBsaW5rbW9kZQot KwkgIGNvbnRpbnVlCi0rCSAgOzsgIyAtTAotKwktUiopCi0rCSAgaWYgdGVzdCAiJHBhc3MiID0g bGluazsgdGhlbgotKwkgICAgZnVuY19zdHJpcG5hbWUgJy1SJyAnJyAiJGRlcGxpYiIKLSsJICAg IGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgotKwkgICAgZGly PSRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKLSsJICAgICMgTWFrZSBzdXJlIHRoZSB4cnBh dGggY29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMuCi0rCSAgICBjYXNlICIkeHJwYXRo ICIgaW4KLSsJICAgICoiICRkaXIgIiopIDs7Ci0rCSAgICAqKSBmdW5jX2FwcGVuZCB4cnBhdGgg IiAkZGlyIiA7OwotKwkgICAgZXNhYwotKwkgIGZpCi0rCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVw bGlicyIKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCSoubGEpCi0rCSAgZnVuY19yZXNvbHZlX3N5 c3Jvb3QgIiRkZXBsaWIiCi0rCSAgbGliPSRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKLSsJ ICA7OwotKwkqLiRsaWJleHQpCi0rCSAgaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgotKwkg ICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIGNvbnRpbnVlCi0rCSAgZmkKLSsJ ICBjYXNlICRsaW5rbW9kZSBpbgotKwkgIGxpYikKLSsJICAgICMgTGlua2luZyBjb252ZW5pZW5j ZSBtb2R1bGVzIGludG8gc2hhcmVkIGxpYnJhcmllcyBpcyBhbGxvd2VkLAotKwkgICAgIyBidXQg bGlua2luZyBvdGhlciBzdGF0aWMgbGlicmFyaWVzIGlzIG5vbi1wb3J0YWJsZS4KLSsJICAgIGNh c2UgIiAkZGxwcmVjb252ZW5pZW5jZWxpYnMgIiBpbgotKwkgICAgKiIgJGRlcGxpYiAiKikgOzsK LSsJICAgICopCi0rCSAgICAgIHZhbGlkX2FfbGliPW5vCi0rCSAgICAgIGNhc2UgJGRlcGxpYnNf Y2hlY2tfbWV0aG9kIGluCi0rCQltYXRjaF9wYXR0ZXJuKikKLSsJCSAgc2V0IGR1bW15ICRkZXBs aWJzX2NoZWNrX21ldGhvZDsgc2hpZnQKLSsJCSAgbWF0Y2hfcGF0dGVybl9yZWdleD1gZXhwciAi JGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAotKwkJICBpZiBldmFsICJcJEVD SE8gXCIkZGVwbGliXCIiIDI+L2Rldi9udWxsIHwgJFNFRCAxMHEgXAotKwkJICAgIHwgJEVHUkVQ ICIkbWF0Y2hfcGF0dGVybl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJCSAgICB2YWxpZF9h X2xpYj15ZXMKLSsJCSAgZmkKLSsJCTs7Ci0rCQlwYXNzX2FsbCkKLSsJCSAgdmFsaWRfYV9saWI9 eWVzCi0rCQk7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIGlmIHRlc3QgIiR2YWxpZF9hX2xpYiIg IT0geWVzOyB0aGVuCi0rCQllY2hvCi0rCQkkRUNITyAiKioqIFdhcm5pbmc6IFRyeWluZyB0byBs aW5rIHdpdGggc3RhdGljIGxpYiBhcmNoaXZlICRkZXBsaWIuIgotKwkJZWNobyAiKioqIEkgaGF2 ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsg aW4gd2hlbiIKLSsJCWVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBj YW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0rCQllY2hvICIqKiogc2hhcmVkIHZlcnNp b24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0rCQll Y2hvICIqKiogYmVjYXVzZSB0aGUgZmlsZSBleHRlbnNpb25zIC4kbGliZXh0IG9mIHRoaXMgYXJn dW1lbnQgbWFrZXMgbWUgYmVsaWV2ZSIKLSsJCWVjaG8gIioqKiB0aGF0IGl0IGlzIGp1c3QgYSBz dGF0aWMgYXJjaGl2ZSB0aGF0IEkgc2hvdWxkIG5vdCB1c2UgaGVyZS4iCi0rCSAgICAgIGVsc2UK LSsJCWVjaG8KLSsJCSRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgc2hhcmVkIGxpYnJh cnkgJG91dHB1dCBhZ2FpbnN0IHRoZSIKLSsJCSRFQ0hPICIqKiogc3RhdGljIGxpYnJhcnkgJGRl cGxpYiBpcyBub3QgcG9ydGFibGUhIgotKwkJZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJ ICAgICAgZmkKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIGNvbnRpbnVlCi0rCSAgICA7 OwotKwkgIHByb2cpCi0rCSAgICBpZiB0ZXN0ICIkcGFzcyIgIT0gbGluazsgdGhlbgotKwkgICAg ICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkgICAgZWxzZQotKwkgICAgICBjb21waWxl X2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgICAgZmluYWxpemVfZGVw bGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKLSsJICAgIGZpCi0rCSAgICBjb250aW51 ZQotKwkgICAgOzsKLSsJICBlc2FjICMgbGlua21vZGUKLSsJICA7OyAjICouJGxpYmV4dAotKwkq LmxvIHwgKi4kb2JqZXh0KQotKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJICAg IGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiID0g cHJvZzsgdGhlbgotKwkgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuIHx8IHRlc3QgIiRk bG9wZW5fc3VwcG9ydCIgIT0geWVzIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87 IHRoZW4KLSsJICAgICAgIyBJZiB0aGVyZSBpcyBubyBkbG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBs aW5raW5nIHN0YXRpY2FsbHksCi0rCSAgICAgICMgd2UgbmVlZCB0byBwcmVsb2FkLgotKwkgICAg ICBmdW5jX2FwcGVuZCBuZXdkbHByZWZpbGVzICIgJGRlcGxpYiIKLSsJICAgICAgY29tcGlsZV9k ZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICAgIGZpbmFsaXplX2RlcGxp YnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIGZ1bmNf YXBwZW5kIG5ld2RsZmlsZXMgIiAkZGVwbGliIgotKwkgICAgZmkKLSsJICBmaQotKwkgIGNvbnRp bnVlCi0rCSAgOzsKLSsJJURFUExJQlMlKQotKwkgIGFsbGRlcGxpYnM9eWVzCi0rCSAgY29udGlu dWUKLSsJICA7OwotKwllc2FjICMgY2FzZSAkZGVwbGliCi0rCi0rCWlmIHRlc3QgIiRmb3VuZCIg PSB5ZXMgfHwgdGVzdCAtZiAiJGxpYiI7IHRoZW4gOgotKwllbHNlCi0rCSAgZnVuY19mYXRhbF9l cnJvciAiY2Fubm90IGZpbmQgdGhlIGxpYnJhcnkgXGAkbGliJyBvciB1bmhhbmRsZWQgYXJndW1l bnQgXGAkZGVwbGliJyIKLSsJZmkKLSsKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxs eSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KLSsJZnVuY19sYWxpYl91bnNhZmVfcCAiJGxpYiIgXAot KwkgIHx8IGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBh cmNoaXZlIgotKwotKwlmdW5jX2Rpcm5hbWUgIiRsaWIiICIiICIuIgotKwlsYWRpcj0iJGZ1bmNf ZGlybmFtZV9yZXN1bHQiCi0rCi0rCWRsbmFtZT0KLSsJZGxvcGVuPQotKwlkbHByZW9wZW49Ci0r CWxpYmRpcj0KLSsJbGlicmFyeV9uYW1lcz0KLSsJb2xkX2xpYnJhcnk9Ci0rCWluaGVyaXRlZF9s aW5rZXJfZmxhZ3M9Ci0rCSMgSWYgdGhlIGxpYnJhcnkgd2FzIGluc3RhbGxlZCB3aXRoIGFuIG9s ZCByZWxlYXNlIG9mIGxpYnRvb2wsCi0rCSMgaXQgd2lsbCBub3QgcmVkZWZpbmUgdmFyaWFibGVz IGluc3RhbGxlZCwgb3Igc2hvdWxkbm90bGluawotKwlpbnN0YWxsZWQ9eWVzCi0rCXNob3VsZG5v dGxpbms9bm8KLSsJYXZvaWR0ZW1wcnBhdGg9Ci0rCi0rCi0rCSMgUmVhZCB0aGUgLmxhIGZpbGUK LSsJZnVuY19zb3VyY2UgIiRsaWIiCi0rCi0rCSMgQ29udmVydCAiLWZyYW1ld29yayBmb28iIHRv ICJmb28ubHRmcmFtZXdvcmsiCi0rCWlmIHRlc3QgLW4gIiRpbmhlcml0ZWRfbGlua2VyX2ZsYWdz IjsgdGhlbgotKwkgIHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiJGluaGVyaXRl ZF9saW5rZXJfZmxhZ3MiIHwgJFNFRCAncy8tZnJhbWV3b3JrIFwoW14gJF0qXCkvXDEubHRmcmFt ZXdvcmsvZydgCi0rCSAgZm9yIHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWcgaW4gJHRtcF9pbmhl cml0ZWRfbGlua2VyX2ZsYWdzOyBkbwotKwkgICAgY2FzZSAiICRuZXdfaW5oZXJpdGVkX2xpbmtl cl9mbGFncyAiIGluCi0rCSAgICAgICoiICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnICIqKSA7 OwotKwkgICAgICAqKSBmdW5jX2FwcGVuZCBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiICR0 bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnIjs7Ci0rCSAgICBlc2FjCi0rCSAgZG9uZQotKwlmaQot KwlkZXBlbmRlbmN5X2xpYnM9YCRFQ0hPICIgJGRlcGVuZGVuY3lfbGlicyIgfCAkU0VEICdzJSBc KFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAotKwlpZiB0ZXN0ICIkbGlu a21vZGUsJHBhc3MiID0gImxpYixsaW5rIiB8fAotKwkgICB0ZXN0ICIkbGlua21vZGUsJHBhc3Mi ID0gInByb2csc2NhbiIgfHwKLSsJICAgeyB0ZXN0ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVz dCAiJGxpbmttb2RlIiAhPSBsaWI7IH07IHRoZW4KLSsJICB0ZXN0IC1uICIkZGxvcGVuIiAmJiBm dW5jX2FwcGVuZCBkbGZpbGVzICIgJGRsb3BlbiIKLSsJICB0ZXN0IC1uICIkZGxwcmVvcGVuIiAm JiBmdW5jX2FwcGVuZCBkbHByZWZpbGVzICIgJGRscHJlb3BlbiIKLSsJZmkKLSsKLSsJaWYgdGVz dCAiJHBhc3MiID0gY29udjsgdGhlbgotKwkgICMgT25seSBjaGVjayBmb3IgY29udmVuaWVuY2Ug bGlicmFyaWVzCi0rCSAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIKLSsJICBpZiB0ZXN0IC16ICIk bGliZGlyIjsgdGhlbgotKwkgICAgaWYgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgdGhlbgotKwkg ICAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBuYW1lIG9mIGxpbmsgbGlicmFyeSBm b3IgXGAkbGliJyIKLSsJICAgIGZpCi0rCSAgICAjIEl0IGlzIGEgbGlidG9vbCBjb252ZW5pZW5j ZSBsaWJyYXJ5LCBzbyBhZGQgaW4gaXRzIG9iamVjdHMuCi0rCSAgICBmdW5jX2FwcGVuZCBjb252 ZW5pZW5jZSAiICRsYWRpci8kb2JqZGlyLyRvbGRfbGlicmFyeSIKLSsJICAgIGZ1bmNfYXBwZW5k IG9sZF9jb252ZW5pZW5jZSAiICRsYWRpci8kb2JqZGlyLyRvbGRfbGlicmFyeSIKLSsJICBlbGlm IHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZyAmJiB0ZXN0ICIkbGlua21vZGUiICE9IGxpYjsgdGhl bgotKwkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSBjb252ZW5pZW5jZSBs aWJyYXJ5IgotKwkgIGZpCi0rCSAgdG1wX2xpYnM9Ci0rCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5k ZW5jeV9saWJzOyBkbwotKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIGlm ICRvcHRfcHJlc2VydmVfZHVwX2RlcHMgOyB0aGVuCi0rCSAgICAgIGNhc2UgIiR0bXBfbGlicyAi IGluCi0rCSAgICAgICoiICRkZXBsaWIgIiopIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIg JGRlcGxpYiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJICAgIGZ1bmNfYXBwZW5kIHRt cF9saWJzICIgJGRlcGxpYiIKLSsJICBkb25lCi0rCSAgY29udGludWUKLSsJZmkgIyAkcGFzcyA9 IGNvbnYKLSsKLSsKLSsJIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgd2UgbGluayBhZ2Fp bnN0LgotKwlsaW5rbGliPQotKwlpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmCi0rCSAgIHsg dGVzdCAiJHByZWZlcl9zdGF0aWNfbGlicyIgPSB5ZXMgfHwKLSsJICAgICB0ZXN0ICIkcHJlZmVy X3N0YXRpY19saWJzLCRpbnN0YWxsZWQiID0gImJ1aWx0LG5vIjsgfTsgdGhlbgotKwkgIGxpbmts aWI9JG9sZF9saWJyYXJ5Ci0rCWVsc2UKLSsJICBmb3IgbCBpbiAkb2xkX2xpYnJhcnkgJGxpYnJh cnlfbmFtZXM7IGRvCi0rCSAgICBsaW5rbGliPSIkbCIKLSsJICBkb25lCi0rCWZpCi0rCWlmIHRl c3QgLXogIiRsaW5rbGliIjsgdGhlbgotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5k IG5hbWUgb2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIgotKwlmaQotKwotKwkjIFRoaXMgbGli cmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRsb3Blbi4KLSsJaWYgdGVzdCAiJHBhc3MiID0gZGxv cGVuOyB0aGVuCi0rCSAgaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KLSsJICAgIGZ1bmNfZmF0 YWxfZXJyb3IgImNhbm5vdCAtZGxvcGVuIGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIK LSsJICBmaQotKwkgIGlmIHRlc3QgLXogIiRkbG5hbWUiIHx8Ci0rCSAgICAgdGVzdCAiJGRsb3Bl bl9zdXBwb3J0IiAhPSB5ZXMgfHwKLSsJICAgICB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9 IG5vOyB0aGVuCi0rCSAgICAjIElmIHRoZXJlIGlzIG5vIGRsbmFtZSwgbm8gZGxvcGVuIHN1cHBv cnQgb3Igd2UncmUgbGlua2luZwotKwkgICAgIyBzdGF0aWNhbGx5LCB3ZSBuZWVkIHRvIHByZWxv YWQuICBXZSBhbHNvIG5lZWQgdG8gcHJlbG9hZCBhbnkKLSsJICAgICMgZGVwZW5kZW50IGxpYnJh cmllcyBzbyBsaWJsdGRsJ3MgZGVwbGliIHByZWxvYWRlciBkb2Vzbid0Ci0rCSAgICAjIGJvbWIg b3V0IGluIHRoZSBsb2FkIGRlcGxpYnMgcGhhc2UuCi0rCSAgICBmdW5jX2FwcGVuZCBkbHByZWZp bGVzICIgJGxpYiAkZGVwZW5kZW5jeV9saWJzIgotKwkgIGVsc2UKLSsJICAgIGZ1bmNfYXBwZW5k IG5ld2RsZmlsZXMgIiAkbGliIgotKwkgIGZpCi0rCSAgY29udGludWUKLSsJZmkgIyAkcGFzcyA9 IGRsb3BlbgotKwotKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KLSsJY2FzZSAkbGFkaXIg aW4KLSsJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnNfbGFkaXI9IiRsYWRpciIgOzsKLSsJ KikKLSsJICBhYnNfbGFkaXI9YGNkICIkbGFkaXIiICYmIHB3ZGAKLSsJICBpZiB0ZXN0IC16ICIk YWJzX2xhZGlyIjsgdGhlbgotKwkgICAgZnVuY193YXJuaW5nICJjYW5ub3QgZGV0ZXJtaW5lIGFi c29sdXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxgJGxhZGlyJyIKLSsJICAgIGZ1bmNfd2FybmluZyAi cGFzc2luZyBpdCBsaXRlcmFsbHkgdG8gdGhlIGxpbmtlciwgYWx0aG91Z2ggaXQgbWlnaHQgZmFp bCIKLSsJICAgIGFic19sYWRpcj0iJGxhZGlyIgotKwkgIGZpCi0rCSAgOzsKLSsJZXNhYwotKwlm dW5jX2Jhc2VuYW1lICIkbGliIgotKwlsYW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsK LSsJIyBGaW5kIHRoZSByZWxldmFudCBvYmplY3QgZGlyZWN0b3J5IGFuZCBsaWJyYXJ5IG5hbWUu Ci0rCWlmIHRlc3QgIlgkaW5zdGFsbGVkIiA9IFh5ZXM7IHRoZW4KLSsJICBpZiB0ZXN0ICEgLWYg IiRsdF9zeXNyb290JGxpYmRpci8kbGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8kbGlu a2xpYiI7IHRoZW4KLSsJICAgIGZ1bmNfd2FybmluZyAibGlicmFyeSBcYCRsaWInIHdhcyBtb3Zl ZC4iCi0rCSAgICBkaXI9IiRsYWRpciIKLSsJICAgIGFic2Rpcj0iJGFic19sYWRpciIKLSsJICAg IGxpYmRpcj0iJGFic19sYWRpciIKLSsJICBlbHNlCi0rCSAgICBkaXI9IiRsdF9zeXNyb290JGxp YmRpciIKLSsJICAgIGFic2Rpcj0iJGx0X3N5c3Jvb3QkbGliZGlyIgotKwkgIGZpCi0rCSAgdGVz dCAiWCRoYXJkY29kZV9hdXRvbWF0aWMiID0gWHllcyAmJiBhdm9pZHRlbXBycGF0aD15ZXMKLSsJ ZWxzZQotKwkgIGlmIHRlc3QgISAtZiAiJGxhZGlyLyRvYmpkaXIvJGxpbmtsaWIiICYmIHRlc3Qg LWYgIiRhYnNfbGFkaXIvJGxpbmtsaWIiOyB0aGVuCi0rCSAgICBkaXI9IiRsYWRpciIKLSsJICAg IGFic2Rpcj0iJGFic19sYWRpciIKLSsJICAgICMgUmVtb3ZlIHRoaXMgc2VhcmNoIHBhdGggbGF0 ZXIKLSsJICAgIGZ1bmNfYXBwZW5kIG5vdGluc3RfcGF0aCAiICRhYnNfbGFkaXIiCi0rCSAgZWxz ZQotKwkgICAgZGlyPSIkbGFkaXIvJG9iamRpciIKLSsJICAgIGFic2Rpcj0iJGFic19sYWRpci8k b2JqZGlyIgotKwkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBsYXRlcgotKwkgICAgZnVu Y19hcHBlbmQgbm90aW5zdF9wYXRoICIgJGFic19sYWRpciIKLSsJICBmaQotKwlmaSAjICRpbnN0 YWxsZWQgPSB5ZXMKLSsJZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5sYScgIiRsYW5hbWUiCi0rCW5h bWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwotKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lm aWVkIHdpdGggLWRscHJlb3Blbi4KLSsJaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVu Ci0rCSAgaWYgdGVzdCAteiAiJGxpYmRpciIgJiYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRo ZW4KLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgbGlicmFyaWVzIG1heSAtZGxwcmVvcGVu IGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIKLSsJICBmaQotKwkgIGNhc2UgIiRob3N0 IiBpbgotKwkgICAgIyBzcGVjaWFsIGhhbmRsaW5nIGZvciBwbGF0Zm9ybXMgd2l0aCBQRS1ETExz LgotKwkgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCi0rCSAgICAgICMgTGlua2Vy IHdpbGwgYXV0b21hdGljYWxseSBsaW5rIGFnYWluc3Qgc2hhcmVkIGxpYnJhcnkgaWYgYm90aAot KwkgICAgICAjIHN0YXRpYyBhbmQgc2hhcmVkIGFyZSBwcmVzZW50LiAgVGhlcmVmb3JlLCBlbnN1 cmUgd2UgZXh0cmFjdAotKwkgICAgICAjIHN5bWJvbHMgZnJvbSB0aGUgaW1wb3J0IGxpYnJhcnkg aWYgYSBzaGFyZWQgbGlicmFyeSBpcyBwcmVzZW50Ci0rCSAgICAgICMgKG90aGVyd2lzZSwgdGhl IGRsb3BlbiBtb2R1bGUgbmFtZSB3aWxsIGJlIGluY29ycmVjdCkuICBXZSBkbwotKwkgICAgICAj IHRoaXMgYnkgcHV0dGluZyB0aGUgaW1wb3J0IGxpYnJhcnkgbmFtZSBpbnRvICRuZXdkbHByZWZp bGVzLgotKwkgICAgICAjIFdlIHJlY292ZXIgdGhlIGRsb3BlbiBtb2R1bGUgbmFtZSBieSAnc2F2 aW5nJyB0aGUgbGEgZmlsZQotKwkgICAgICAjIG5hbWUgaW4gYSBzcGVjaWFsIHB1cnBvc2UgdmFy aWFibGUsIGFuZCAobGF0ZXIpIGV4dHJhY3RpbmcgdGhlCi0rCSAgICAgICMgZGxuYW1lIGZyb20g dGhlIGxhIGZpbGUuCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRkbG5hbWUiOyB0aGVuCi0rCSAgICAg ICAgZnVuY190cl9zaCAiJGRpci8kbGlua2xpYiIKLSsJICAgICAgICBldmFsICJsaWJmaWxlXyRm dW5jX3RyX3NoX3Jlc3VsdD1cJGFic19sYWRpci9cJGxhbmFtZSIKLSsJICAgICAgICBmdW5jX2Fw cGVuZCBuZXdkbHByZWZpbGVzICIgJGRpci8kbGlua2xpYiIKLSsJICAgICAgZWxzZQotKwkgICAg ICAgIGZ1bmNfYXBwZW5kIG5ld2RscHJlZmlsZXMgIiAkZGlyLyRvbGRfbGlicmFyeSIKLSsJICAg ICAgICAjIEtlZXAgYSBsaXN0IG9mIHByZW9wZW5lZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMgdG8g Y2hlY2sKLSsJICAgICAgICAjIHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0bHkgaW4g dGhlIGxpbmsgcGFzcy4KLSsJICAgICAgICB0ZXN0IC16ICIkbGliZGlyIiAmJiBcCi0rCSAgICAg ICAgICBmdW5jX2FwcGVuZCBkbHByZWNvbnZlbmllbmNlbGlicyAiICRkaXIvJG9sZF9saWJyYXJ5 IgotKwkgICAgICBmaQotKwkgICAgOzsKLSsJICAgICogKQotKwkgICAgICAjIFByZWZlciB1c2lu ZyBhIHN0YXRpYyBsaWJyYXJ5IChzbyB0aGF0IG5vIHNpbGx5IF9EWU5BTUlDIHN5bWJvbHMKLSsJ ICAgICAgIyBhcmUgcmVxdWlyZWQgdG8gbGluaykuCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRvbGRf bGlicmFyeSI7IHRoZW4KLSsJICAgICAgICBmdW5jX2FwcGVuZCBuZXdkbHByZWZpbGVzICIgJGRp ci8kb2xkX2xpYnJhcnkiCi0rCSAgICAgICAgIyBLZWVwIGEgbGlzdCBvZiBwcmVvcGVuZWQgY29u dmVuaWVuY2UgbGlicmFyaWVzIHRvIGNoZWNrCi0rCSAgICAgICAgIyB0aGF0IHRoZXkgYXJlIGJl aW5nIHVzZWQgY29ycmVjdGx5IGluIHRoZSBsaW5rIHBhc3MuCi0rCSAgICAgICAgdGVzdCAteiAi JGxpYmRpciIgJiYgXAotKwkgICAgICAgICAgZnVuY19hcHBlbmQgZGxwcmVjb252ZW5pZW5jZWxp YnMgIiAkZGlyLyRvbGRfbGlicmFyeSIKLSsJICAgICAgIyBPdGhlcndpc2UsIHVzZSB0aGUgZGxu YW1lLCBzbyB0aGF0IGx0X2Rsb3BlbiBmaW5kcyBpdC4KLSsJICAgICAgZWxpZiB0ZXN0IC1uICIk ZGxuYW1lIjsgdGhlbgotKwkgICAgICAgIGZ1bmNfYXBwZW5kIG5ld2RscHJlZmlsZXMgIiAkZGly LyRkbG5hbWUiCi0rCSAgICAgIGVsc2UKLSsJICAgICAgICBmdW5jX2FwcGVuZCBuZXdkbHByZWZp bGVzICIgJGRpci8kbGlua2xpYiIKLSsJICAgICAgZmkKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlm aSAjICRwYXNzID0gZGxwcmVvcGVuCi0rCi0rCWlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCi0r CSAgIyBMaW5rIHRoZSBjb252ZW5pZW5jZSBsaWJyYXJ5Ci0rCSAgaWYgdGVzdCAiJGxpbmttb2Rl IiA9IGxpYjsgdGhlbgotKwkgICAgZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGRlcGxpYnMi Ci0rCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJ ICAgIGNvbXBpbGVfZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGNvbXBpbGVfZGVwbGlicyIK LSsJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRmaW5hbGl6ZV9kZXBs aWJzIgotKwkgIGVsc2UKLSsJICAgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiICMgdXNlZCBmb3Ig cHJvZyxzY2FuIHBhc3MKLSsJICBmaQotKwkgIGNvbnRpbnVlCi0rCWZpCi0rCi0rCi0rCWlmIHRl c3QgIiRsaW5rbW9kZSIgPSBwcm9nICYmIHRlc3QgIiRwYXNzIiAhPSBsaW5rOyB0aGVuCi0rCSAg ZnVuY19hcHBlbmQgbmV3bGliX3NlYXJjaF9wYXRoICIgJGxhZGlyIgotKwkgIGRlcGxpYnM9IiRs aWIgJGRlcGxpYnMiCi0rCi0rCSAgbGlua2FsbGRlcGxpYnM9bm8KLSsJICBpZiB0ZXN0ICIkbGlu a19hbGxfZGVwbGlicyIgIT0gbm8gfHwgdGVzdCAteiAiJGxpYnJhcnlfbmFtZXMiIHx8Ci0rCSAg ICAgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBubzsgdGhlbgotKwkgICAgbGlua2FsbGRl cGxpYnM9eWVzCi0rCSAgZmkKLSsKLSsJICB0bXBfbGlicz0KLSsJICBmb3IgZGVwbGliIGluICRk ZXBlbmRlbmN5X2xpYnM7IGRvCi0rCSAgICBjYXNlICRkZXBsaWIgaW4KLSsJICAgIC1MKikgZnVu Y19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKLSsJICAgICAgICAgZnVuY19yZXNvbHZlX3N5 c3Jvb3QgIiRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCi0rCSAgICAgICAgIGZ1bmNfYXBwZW5kIG5l d2xpYl9zZWFyY2hfcGF0aCAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCi0rCQkgOzsK LSsJICAgIGVzYWMKLSsJICAgICMgTmVlZCB0byBsaW5rIGFnYWluc3QgYWxsIGRlcGVuZGVuY3lf bGlicz8KLSsJICAgIGlmIHRlc3QgIiRsaW5rYWxsZGVwbGlicyIgPSB5ZXM7IHRoZW4KLSsJICAg ICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAgIyBOZWVk IHRvIGhhcmRjb2RlIHNoYXJlZCBsaWJyYXJ5IHBhdGhzCi0rCSAgICAgICMgb3IvYW5kIGxpbmsg YWdhaW5zdCBzdGF0aWMgbGlicmFyaWVzCi0rCSAgICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRl cGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgZmkKLSsJICAgIGlmICRvcHRfcHJlc2Vy dmVfZHVwX2RlcHMgOyB0aGVuCi0rCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCi0rCSAgICAg ICoiICRkZXBsaWIgIiopIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIgJGRlcGxpYiIgOzsK LSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJICAgIGZ1bmNfYXBwZW5kIHRtcF9saWJzICIgJGRl cGxpYiIKLSsJICBkb25lICMgZm9yIGRlcGxpYgotKwkgIGNvbnRpbnVlCi0rCWZpICMgJGxpbmtt b2RlID0gcHJvZy4uLgotKwotKwlpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGlu ayI7IHRoZW4KLSsJICBpZiB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyIgJiYKLSsJICAgICB7IHsg dGVzdCAiJHByZWZlcl9zdGF0aWNfbGlicyIgPSBubyB8fAotKwkgICAgICAgICB0ZXN0ICIkcHJl ZmVyX3N0YXRpY19saWJzLCRpbnN0YWxsZWQiID0gImJ1aWx0LHllcyI7IH0gfHwKLSsJICAgICAg IHRlc3QgLXogIiRvbGRfbGlicmFyeSI7IH07IHRoZW4KLSsJICAgICMgV2UgbmVlZCB0byBoYXJk Y29kZSB0aGUgbGlicmFyeSBwYXRoCi0rCSAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciIg JiYgdGVzdCAteiAiJGF2b2lkdGVtcHJwYXRoIiA7IHRoZW4KLSsJICAgICAgIyBNYWtlIHN1cmUg dGhlIHJwYXRoIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGRpcmVjdG9yaWVzLgotKwkgICAgICBjYXNl ICIkdGVtcF9ycGF0aDoiIGluCi0rCSAgICAgICoiJGFic2RpcjoiKikgOzsKLSsJICAgICAgKikg ZnVuY19hcHBlbmQgdGVtcF9ycGF0aCAiJGFic2RpcjoiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAg IGZpCi0rCi0rCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCi0rCSAgICAjIFNraXAg ZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCi0rCSAg ICAjIHNlYXJjaCBwYXRoLgotKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBp bgotKwkgICAgKiIgJGFic2RpciAiKikgOzsKLSsJICAgICopCi0rCSAgICAgIGNhc2UgIiRjb21w aWxlX3JwYXRoICIgaW4KLSsJICAgICAgKiIgJGFic2RpciAiKikgOzsKLSsJICAgICAgKikgZnVu Y19hcHBlbmQgY29tcGlsZV9ycGF0aCAiICRhYnNkaXIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAg ICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIg aW4KLSsJICAgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgICAqKQotKwkgICAgICBjYXNlICIkZmlu YWxpemVfcnBhdGggIiBpbgotKwkgICAgICAqIiAkbGliZGlyICIqKSA7OwotKwkgICAgICAqKSBm dW5jX2FwcGVuZCBmaW5hbGl6ZV9ycGF0aCAiICRsaWJkaXIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJ ICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICBmaSAjICRsaW5rbW9kZSwkcGFzcyA9IHByb2csbGlu ay4uLgotKwotKwkgIGlmIHRlc3QgIiRhbGxkZXBsaWJzIiA9IHllcyAmJgotKwkgICAgIHsgdGVz dCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA9IHBhc3NfYWxsIHx8Ci0rCSAgICAgICB7IHRlc3Qg IiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmCi0rCQkgdGVzdCAtbiAiJGxpYnJhcnlfbmFt ZXMiOyB9OyB9OyB0aGVuCi0rCSAgICAjIFdlIG9ubHkgbmVlZCB0byBzZWFyY2ggZm9yIHN0YXRp YyBsaWJyYXJpZXMKLSsJICAgIGNvbnRpbnVlCi0rCSAgZmkKLSsJZmkKLSsKLSsJbGlua19zdGF0 aWM9bm8gIyBXaGV0aGVyIHRoZSBkZXBsaWIgd2lsbCBiZSBsaW5rZWQgc3RhdGljYWxseQotKwl1 c2Vfc3RhdGljX2xpYnM9JHByZWZlcl9zdGF0aWNfbGlicwotKwlpZiB0ZXN0ICIkdXNlX3N0YXRp Y19saWJzIiA9IGJ1aWx0ICYmIHRlc3QgIiRpbnN0YWxsZWQiID0geWVzOyB0aGVuCi0rCSAgdXNl X3N0YXRpY19saWJzPW5vCi0rCWZpCi0rCWlmIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJgot KwkgICB7IHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMiID0gbm8gfHwgdGVzdCAteiAiJG9sZF9saWJy YXJ5IjsgfTsgdGhlbgotKwkgIGNhc2UgJGhvc3QgaW4KLSsJICAqY3lnd2luKiB8ICptaW5ndyog fCAqY2VnY2MqKQotKwkgICAgICAjIE5vIHBvaW50IGluIHJlbGlua2luZyBETExzIGJlY2F1c2Ug cGF0aHMgYXJlIG5vdCBlbmNvZGVkCi0rCSAgICAgIGZ1bmNfYXBwZW5kIG5vdGluc3RfZGVwbGli cyAiICRsaWIiCi0rCSAgICAgIG5lZWRfcmVsaW5rPW5vCi0rCSAgICA7OwotKwkgICopCi0rCSAg ICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IG5vOyB0aGVuCi0rCSAgICAgIGZ1bmNfYXBwZW5kIG5v dGluc3RfZGVwbGlicyAiICRsaWIiCi0rCSAgICAgIG5lZWRfcmVsaW5rPXllcwotKwkgICAgZmkK LSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgICMgVGhpcyBpcyBhIHNoYXJlZCBsaWJyYXJ5Ci0rCi0r CSAgIyBXYXJuIGFib3V0IHBvcnRhYmlsaXR5LCBjYW4ndCBsaW5rIGFnYWluc3QgLW1vZHVsZSdz IG9uIHNvbWUKLSsJICAjIHN5c3RlbXMgKGRhcndpbikuICBEb24ndCBibGVhdCBhYm91dCBkbG9w ZW5lZCBtb2R1bGVzIHRob3VnaCEKLSsJICBkbG9wZW5tb2R1bGU9IiIKLSsJICBmb3IgZGxwcmVt b2R1bGV0ZXN0IGluICRkbHByZWZpbGVzOyBkbwotKwkgICAgaWYgdGVzdCAiWCRkbHByZW1vZHVs ZXRlc3QiID0gIlgkbGliIjsgdGhlbgotKwkgICAgICBkbG9wZW5tb2R1bGU9IiRkbHByZW1vZHVs ZXRlc3QiCi0rCSAgICAgIGJyZWFrCi0rCSAgICBmaQotKwkgIGRvbmUKLSsJICBpZiB0ZXN0IC16 ICIkZGxvcGVubW9kdWxlIiAmJiB0ZXN0ICIkc2hvdWxkbm90bGluayIgPSB5ZXMgJiYgdGVzdCAi JHBhc3MiID0gbGluazsgdGhlbgotKwkgICAgZWNobwotKwkgICAgaWYgdGVzdCAiJGxpbmttb2Rl IiA9IHByb2c7IHRoZW4KLSsJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBl eGVjdXRhYmxlICRvdXRwdXQgYWdhaW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgotKwkgICAgZWxz ZQotKwkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5 ICRvdXRwdXQgYWdhaW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgotKwkgICAgZmkKLSsJICAgICRF Q0hPICIqKiogJGxpbmtsaWIgaXMgbm90IHBvcnRhYmxlISIKLSsJICBmaQotKwkgIGlmIHRlc3Qg IiRsaW5rbW9kZSIgPSBsaWIgJiYKLSsJICAgICB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiA9 IHllczsgdGhlbgotKwkgICAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoLgotKwkgICAgIyBT a2lwIGRpcmVjdG9yaWVzIHRoYXQgYXJlIGluIHRoZSBzeXN0ZW0gZGVmYXVsdCBydW4tdGltZQot KwkgICAgIyBzZWFyY2ggcGF0aC4KLSsJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRo ICIgaW4KLSsJICAgICoiICRhYnNkaXIgIiopIDs7Ci0rCSAgICAqKQotKwkgICAgICBjYXNlICIk Y29tcGlsZV9ycGF0aCAiIGluCi0rCSAgICAgICoiICRhYnNkaXIgIiopIDs7Ci0rCSAgICAgICop IGZ1bmNfYXBwZW5kIGNvbXBpbGVfcnBhdGggIiAkYWJzZGlyIiA7OwotKwkgICAgICBlc2FjCi0r CSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0 aCAiIGluCi0rCSAgICAqIiAkbGliZGlyICIqKSA7OwotKwkgICAgKikKLSsJICAgICAgY2FzZSAi JGZpbmFsaXplX3JwYXRoICIgaW4KLSsJICAgICAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAgICAg KikgZnVuY19hcHBlbmQgZmluYWxpemVfcnBhdGggIiAkbGliZGlyIiA7OwotKwkgICAgICBlc2Fj Ci0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgZmkKLSsKLSsJICBpZiB0ZXN0IC1uICIkb2xk X2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiOyB0aGVuCi0rCSAgICAjIGZpZ3VyZSBvdXQgdGhl IHNvbmFtZQotKwkgICAgc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzCi0rCSAgICBzaGlmdAotKwkg ICAgcmVhbG5hbWU9IiQxIgotKwkgICAgc2hpZnQKLSsJICAgIGxpYm5hbWU9YGV2YWwgIlxcJEVD SE8gXCIkbGlibmFtZV9zcGVjXCIiYAotKwkgICAgIyB1c2UgZGxuYW1lIGlmIHdlIGdvdCBpdC4g aXQncyBwZXJmZWN0bHkgZ29vZCwgbm8/Ci0rCSAgICBpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhl bgotKwkgICAgICBzb25hbWU9IiRkbG5hbWUiCi0rCSAgICBlbGlmIHRlc3QgLW4gIiRzb25hbWVf c3BlYyI7IHRoZW4KLSsJICAgICAgIyBibGVoIHdpbmRvd3MKLSsJICAgICAgY2FzZSAkaG9zdCBp bgotKwkgICAgICAqY3lnd2luKiB8IG1pbmd3KiB8ICpjZWdjYyopCi0rCSAgICAgICAgZnVuY19h cml0aCAkY3VycmVudCAtICRhZ2UKLSsJCW1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkJdmVy c3VmZml4PSItJG1ham9yIgotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgICBldmFsIHNvbmFt ZT1cIiRzb25hbWVfc3BlY1wiCi0rCSAgICBlbHNlCi0rCSAgICAgIHNvbmFtZT0iJHJlYWxuYW1l IgotKwkgICAgZmkKLSsKLSsJICAgICMgTWFrZSBhIG5ldyBuYW1lIGZvciB0aGUgZXh0cmFjdF9l eHBzeW1zX2NtZHMgdG8gdXNlCi0rCSAgICBzb3Jvb3Q9IiRzb25hbWUiCi0rCSAgICBmdW5jX2Jh c2VuYW1lICIkc29yb290IgotKwkgICAgc29uYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0r CSAgICBmdW5jX3N0cmlwbmFtZSAnbGliJyAnLmRsbCcgIiRzb25hbWUiCi0rCSAgICBuZXdsaWI9 bGliaW1wLSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQuYQotKwotKwkgICAgIyBJZiB0aGUgbGlicmFy eSBoYXMgbm8gZXhwb3J0IGxpc3QsIHRoZW4gY3JlYXRlIG9uZSBub3cKLSsJICAgIGlmIHRlc3Qg LWYgIiRvdXRwdXRfb2JqZGlyLyRzb25hbWUtZGVmIjsgdGhlbiA6Ci0rCSAgICBlbHNlCi0rCSAg ICAgIGZ1bmNfdmVyYm9zZSAiZXh0cmFjdGluZyBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIFxg JHNvbmFtZSciCi0rCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkZXh0cmFjdF9leHBzeW1zX2Nt ZHMiICdleGl0ICQ/JwotKwkgICAgZmkKLSsKLSsJICAgICMgQ3JlYXRlICRuZXdsaWIKLSsJICAg IGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRuZXdsaWIiOyB0aGVuIDo7IGVsc2UKLSsJICAg ICAgZnVuY192ZXJib3NlICJnZW5lcmF0aW5nIGltcG9ydCBsaWJyYXJ5IGZvciBcYCRzb25hbWUn IgotKwkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19j bWRzIiAnZXhpdCAkPycKLSsJICAgIGZpCi0rCSAgICAjIG1ha2Ugc3VyZSB0aGUgbGlicmFyeSB2 YXJpYWJsZXMgYXJlIHBvaW50aW5nIHRvIHRoZSBuZXcgbGlicmFyeQotKwkgICAgZGlyPSRvdXRw dXRfb2JqZGlyCi0rCSAgICBsaW5rbGliPSRuZXdsaWIKLSsJICBmaSAjIHRlc3QgLW4gIiRvbGRf YXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIKLSsKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiID0g cHJvZyB8fCB0ZXN0ICIkb3B0X21vZGUiICE9IHJlbGluazsgdGhlbgotKwkgICAgYWRkX3NobGli cGF0aD0KLSsJICAgIGFkZF9kaXI9Ci0rCSAgICBhZGQ9Ci0rCSAgICBsaWJfbGlua2VkPXllcwot KwkgICAgY2FzZSAkaGFyZGNvZGVfYWN0aW9uIGluCi0rCSAgICBpbW1lZGlhdGUgfCB1bnN1cHBv cnRlZCkKLSsJICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSBubzsgdGhlbgotKwkJ YWRkPSIkZGlyLyRsaW5rbGliIgotKwkJY2FzZSAkaG9zdCBpbgotKwkJICAqLSotc2NvMy4ydjUu MC5bMDI0XSopIGFkZF9kaXI9Ii1MJGRpciIgOzsKLSsJCSAgKi0qLXN5c3Y0KnV3MiopIGFkZF9k aXI9Ii1MJGRpciIgOzsKLSsJCSAgKi0qLXN5c3Y1T3BlblVOSVgqIHwgKi0qLXN5c3Y1VW5peFdh cmU3LlswMV0uWzEwXSogfCBcCi0rCQkgICAgKi0qLXVuaXh3YXJlNyopIGFkZF9kaXI9Ii1MJGRp ciIgOzsKLSsJCSAgKi0qLWRhcndpbiogKQotKwkJICAgICMgaWYgdGhlIGxpYiBpcyBhIChub24t ZGxvcGVuZWQpIG1vZHVsZSB0aGVuIHdlIGNhbiBub3QKLSsJCSAgICAjIGxpbmsgYWdhaW5zdCBp dCwgc29tZW9uZSBpcyBpZ25vcmluZyB0aGUgZWFybGllciB3YXJuaW5ncwotKwkJICAgIGlmIC91 c3IvYmluL2ZpbGUgLUwgJGFkZCAyPiAvZGV2L251bGwgfAotKwkJCSAkR1JFUCAiOiBbXjpdKiBi dW5kbGUiID4vZGV2L251bGwgOyB0aGVuCi0rCQkgICAgICBpZiB0ZXN0ICJYJGRsb3Blbm1vZHVs ZSIgIT0gIlgkbGliIjsgdGhlbgotKwkJCSRFQ0hPICIqKiogV2FybmluZzogbGliICRsaW5rbGli IGlzIGEgbW9kdWxlLCBub3QgYSBzaGFyZWQgbGlicmFyeSIKLSsJCQlpZiB0ZXN0IC16ICIkb2xk X2xpYnJhcnkiIDsgdGhlbgotKwkJCSAgZWNobwotKwkJCSAgZWNobyAiKioqIEFuZCB0aGVyZSBk b2Vzbid0IHNlZW0gdG8gYmUgYSBzdGF0aWMgYXJjaGl2ZSBhdmFpbGFibGUiCi0rCQkJICBlY2hv ICIqKiogVGhlIGxpbmsgd2lsbCBwcm9iYWJseSBmYWlsLCBzb3JyeSIKLSsJCQllbHNlCi0rCQkJ ICBhZGQ9IiRkaXIvJG9sZF9saWJyYXJ5IgotKwkJCWZpCi0rCQkgICAgICBlbGlmIHRlc3QgLW4g IiRvbGRfbGlicmFyeSI7IHRoZW4KLSsJCQlhZGQ9IiRkaXIvJG9sZF9saWJyYXJ5IgotKwkJICAg ICAgZmkKLSsJCSAgICBmaQotKwkJZXNhYwotKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9t aW51c19MIiA9IG5vOyB0aGVuCi0rCQljYXNlICRob3N0IGluCi0rCQkqLSotc3Vub3MqKSBhZGRf c2hsaWJwYXRoPSIkZGlyIiA7OwotKwkJZXNhYwotKwkJYWRkX2Rpcj0iLUwkZGlyIgotKwkJYWRk PSItbCRuYW1lIgotKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9 IG5vOyB0aGVuCi0rCQlhZGRfc2hsaWJwYXRoPSIkZGlyIgotKwkJYWRkPSItbCRuYW1lIgotKwkg ICAgICBlbHNlCi0rCQlsaWJfbGlua2VkPW5vCi0rCSAgICAgIGZpCi0rCSAgICAgIDs7Ci0rCSAg ICByZWxpbmspCi0rCSAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0geWVzICYmCi0r CSAgICAgICAgIHRlc3QgIiRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUiID0gbm87IHRoZW4KLSsJ CWFkZD0iJGRpci8kbGlua2xpYiIKLSsJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNf TCIgPSB5ZXM7IHRoZW4KLSsJCWFkZF9kaXI9Ii1MJGRpciIKLSsJCSMgVHJ5IGxvb2tpbmcgZmly c3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KLSsJCWlmIHRlc3Qg LW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCi0rCQkgIGNhc2UgJGxpYmRpciBpbgotKwkJICAg IFtcXC9dKikKLSsJCSAgICAgIGZ1bmNfYXBwZW5kIGFkZF9kaXIgIiAtTCRpbnN0X3ByZWZpeF9k aXIkbGliZGlyIgotKwkJICAgICAgOzsKLSsJCSAgZXNhYwotKwkJZmkKLSsJCWFkZD0iLWwkbmFt ZSIKLSsJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRo ZW4KLSsJCWFkZF9zaGxpYnBhdGg9IiRkaXIiCi0rCQlhZGQ9Ii1sJG5hbWUiCi0rCSAgICAgIGVs c2UKLSsJCWxpYl9saW5rZWQ9bm8KLSsJICAgICAgZmkKLSsJICAgICAgOzsKLSsJICAgICopIGxp Yl9saW5rZWQ9bm8gOzsKLSsJICAgIGVzYWMKLSsKLSsJICAgIGlmIHRlc3QgIiRsaWJfbGlua2Vk IiAhPSB5ZXM7IHRoZW4KLSsJICAgICAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJ1bnN1cHBv cnRlZCBoYXJkY29kZSBwcm9wZXJ0aWVzIgotKwkgICAgZmkKLSsKLSsJICAgIGlmIHRlc3QgLW4g IiRhZGRfc2hsaWJwYXRoIjsgdGhlbgotKwkgICAgICBjYXNlIDokY29tcGlsZV9zaGxpYnBhdGg6 IGluCi0rCSAgICAgICoiOiRhZGRfc2hsaWJwYXRoOiIqKSA7OwotKwkgICAgICAqKSBmdW5jX2Fw cGVuZCBjb21waWxlX3NobGlicGF0aCAiJGFkZF9zaGxpYnBhdGg6IiA7OwotKwkgICAgICBlc2Fj Ci0rCSAgICBmaQotKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsJICAg ICAgdGVzdCAtbiAiJGFkZF9kaXIiICYmIGNvbXBpbGVfZGVwbGlicz0iJGFkZF9kaXIgJGNvbXBp bGVfZGVwbGlicyIKLSsJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgY29tcGlsZV9kZXBsaWJzPSIk YWRkICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIHRlc3QgLW4gIiRhZGRf ZGlyIiAmJiBkZXBsaWJzPSIkYWRkX2RpciAkZGVwbGlicyIKLSsJICAgICAgdGVzdCAtbiAiJGFk ZCIgJiYgZGVwbGlicz0iJGFkZCAkZGVwbGlicyIKLSsJICAgICAgaWYgdGVzdCAiJGhhcmRjb2Rl X2RpcmVjdCIgIT0geWVzICYmCi0rCQkgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiICE9IHllcyAm JgotKwkJIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgotKwkJY2Fz ZSA6JGZpbmFsaXplX3NobGlicGF0aDogaW4KLSsJCSoiOiRsaWJkaXI6IiopIDs7Ci0rCQkqKSBm dW5jX2FwcGVuZCBmaW5hbGl6ZV9zaGxpYnBhdGggIiRsaWJkaXI6IiA7OwotKwkJZXNhYwotKwkg ICAgICBmaQotKwkgICAgZmkKLSsJICBmaQotKwotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBw cm9nIHx8IHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IHRoZW4KLSsJICAgIGFkZF9zaGxpYnBh dGg9Ci0rCSAgICBhZGRfZGlyPQotKwkgICAgYWRkPQotKwkgICAgIyBGaW5hbGl6ZSBjb21tYW5k IGZvciBib3RoIGlzIHNpbXBsZToganVzdCBoYXJkY29kZSBpdC4KLSsJICAgIGlmIHRlc3QgIiRo YXJkY29kZV9kaXJlY3QiID0geWVzICYmCi0rCSAgICAgICB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0 X2Fic29sdXRlIiA9IG5vOyB0aGVuCi0rCSAgICAgIGFkZD0iJGxpYmRpci8kbGlua2xpYiIKLSsJ ICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0geWVzOyB0aGVuCi0rCSAgICAgIGFk ZF9kaXI9Ii1MJGxpYmRpciIKLSsJICAgICAgYWRkPSItbCRuYW1lIgotKwkgICAgZWxpZiB0ZXN0 ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRoZW4KLSsJICAgICAgY2FzZSA6JGZp bmFsaXplX3NobGlicGF0aDogaW4KLSsJICAgICAgKiI6JGxpYmRpcjoiKikgOzsKLSsJICAgICAg KikgZnVuY19hcHBlbmQgZmluYWxpemVfc2hsaWJwYXRoICIkbGliZGlyOiIgOzsKLSsJICAgICAg ZXNhYwotKwkgICAgICBhZGQ9Ii1sJG5hbWUiCi0rCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9h dXRvbWF0aWMiID0geWVzOyB0aGVuCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9k aXIiICYmCi0rCQkgdGVzdCAtZiAiJGluc3RfcHJlZml4X2RpciRsaWJkaXIvJGxpbmtsaWIiIDsg dGhlbgotKwkJYWRkPSIkaW5zdF9wcmVmaXhfZGlyJGxpYmRpci8kbGlua2xpYiIKLSsJICAgICAg ZWxzZQotKwkJYWRkPSIkbGliZGlyLyRsaW5rbGliIgotKwkgICAgICBmaQotKwkgICAgZWxzZQot KwkgICAgICAjIFdlIGNhbm5vdCBzZWVtIHRvIGhhcmRjb2RlIGl0LCBndWVzcyB3ZSdsbCBmYWtl IGl0LgotKwkgICAgICBhZGRfZGlyPSItTCRsaWJkaXIiCi0rCSAgICAgICMgVHJ5IGxvb2tpbmcg Zmlyc3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KLSsJICAgICAg aWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRoZW4KLSsJCWNhc2UgJGxpYmRpciBpbgot KwkJICBbXFwvXSopCi0rCQkgICAgZnVuY19hcHBlbmQgYWRkX2RpciAiIC1MJGluc3RfcHJlZml4 X2RpciRsaWJkaXIiCi0rCQkgICAgOzsKLSsJCWVzYWMKLSsJICAgICAgZmkKLSsJICAgICAgYWRk PSItbCRuYW1lIgotKwkgICAgZmkKLSsKLSsJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9n OyB0aGVuCi0rCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBmaW5hbGl6ZV9kZXBsaWJzPSIk YWRkX2RpciAkZmluYWxpemVfZGVwbGlicyIKLSsJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgZmlu YWxpemVfZGVwbGlicz0iJGFkZCAkZmluYWxpemVfZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAg ICAgdGVzdCAtbiAiJGFkZF9kaXIiICYmIGRlcGxpYnM9IiRhZGRfZGlyICRkZXBsaWJzIgotKwkg ICAgICB0ZXN0IC1uICIkYWRkIiAmJiBkZXBsaWJzPSIkYWRkICRkZXBsaWJzIgotKwkgICAgZmkK LSsJICBmaQotKwllbGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCi0rCSAgIyBIZXJl IHdlIGFzc3VtZSB0aGF0IG9uZSBvZiBoYXJkY29kZV9kaXJlY3Qgb3IgaGFyZGNvZGVfbWludXNf TAotKwkgICMgaXMgbm90IHVuc3VwcG9ydGVkLiAgVGhpcyBpcyB2YWxpZCBvbiBhbGwga25vd24g c3RhdGljIGFuZAotKwkgICMgc2hhcmVkIHBsYXRmb3Jtcy4KLSsJICBpZiB0ZXN0ICIkaGFyZGNv ZGVfZGlyZWN0IiAhPSB1bnN1cHBvcnRlZDsgdGhlbgotKwkgICAgdGVzdCAtbiAiJG9sZF9saWJy YXJ5IiAmJiBsaW5rbGliPSIkb2xkX2xpYnJhcnkiCi0rCSAgICBjb21waWxlX2RlcGxpYnM9IiRk aXIvJGxpbmtsaWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRk aXIvJGxpbmtsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgZWxzZQotKwkgICAgY29tcGlsZV9k ZXBsaWJzPSItbCRuYW1lIC1MJGRpciAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgZmluYWxpemVf ZGVwbGlicz0iLWwkbmFtZSAtTCRkaXIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgZmkKLSsJZWxp ZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKwkgICMgTm90IGEgc2hh cmVkIGxpYnJhcnkKLSsJICBpZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3Nf YWxsOyB0aGVuCi0rCSAgICAjIFdlJ3JlIHRyeWluZyBsaW5rIGEgc2hhcmVkIGxpYnJhcnkgYWdh aW5zdCBhIHN0YXRpYyBvbmUKLSsJICAgICMgYnV0IHRoZSBzeXN0ZW0gZG9lc24ndCBzdXBwb3J0 IGl0LgotKwotKwkgICAgIyBKdXN0IHByaW50IGEgd2FybmluZyBhbmQgYWRkIHRoZSBsaWJyYXJ5 IHRvIGRlcGVuZGVuY3lfbGlicyBzbwotKwkgICAgIyB0aGF0IHRoZSBwcm9ncmFtIGNhbiBiZSBs aW5rZWQgYWdhaW5zdCB0aGUgc3RhdGljIGxpYnJhcnkuCi0rCSAgICBlY2hvCi0rCSAgICAkRUNI TyAiKioqIFdhcm5pbmc6IFRoaXMgc3lzdGVtIGNhbiBub3QgbGluayB0byBzdGF0aWMgbGliIGFy Y2hpdmUgJGxpYi4iCi0rCSAgICBlY2hvICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1h a2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgotKwkgICAgZWNobyAi KioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYg eW91IGhhdmUgYSIKLSsJICAgIGVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFy eSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZS4iCi0rCSAgICBpZiB0ZXN0ICIkbW9k dWxlIiA9IHllczsgdGhlbgotKwkgICAgICBlY2hvICIqKiogQnV0IGFzIHlvdSB0cnkgdG8gYnVp bGQgYSBtb2R1bGUgbGlicmFyeSwgbGlidG9vbCB3aWxsIHN0aWxsIGNyZWF0ZSAiCi0rCSAgICAg IGVjaG8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0 aGUgZGxvcGVuaW5nIGFwcGxpY2F0aW9uIgotKwkgICAgICBlY2hvICIqKiogaXMgbGlua2VkIHdp dGggdGhlIC1kbG9wZW4gZmxhZyB0byByZXNvbHZlIHN5bWJvbHMgYXQgcnVudGltZS4iCi0rCSAg ICAgIGlmIHRlc3QgLXogIiRnbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCi0rCQllY2hvCi0rCQll Y2hvICIqKiogSG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMgYWJs ZSB0byBleHRyYWN0IHN5bWJvbCIKLSsJCWVjaG8gIioqKiBsaXN0cyBmcm9tIGEgcHJvZ3JhbSwg dXNpbmcgXGBubScgb3IgZXF1aXZhbGVudCwgYnV0IGxpYnRvb2wgY291bGQiCi0rCQllY2hvICIq Kiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkg dXNlbGVzcy4iCi0rCQllY2hvICIqKiogXGBubScgZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVs bCByZWJ1aWxkIG1heSBoZWxwLiIKLSsJICAgICAgZmkKLSsJICAgICAgaWYgdGVzdCAiJGJ1aWxk X29sZF9saWJzIiA9IG5vOyB0aGVuCi0rCQlidWlsZF9saWJ0b29sX2xpYnM9bW9kdWxlCi0rCQli dWlsZF9vbGRfbGlicz15ZXMKLSsJICAgICAgZWxzZQotKwkJYnVpbGRfbGlidG9vbF9saWJzPW5v Ci0rCSAgICAgIGZpCi0rCSAgICBmaQotKwkgIGVsc2UKLSsJICAgIGRlcGxpYnM9IiRkaXIvJG9s ZF9saWJyYXJ5ICRkZXBsaWJzIgotKwkgICAgbGlua19zdGF0aWM9eWVzCi0rCSAgZmkKLSsJZmkg IyBsaW5rIHNoYXJlZC9zdGF0aWMgbGlicmFyeT8KLSsKLSsJaWYgdGVzdCAiJGxpbmttb2RlIiA9 IGxpYjsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiRkZXBlbmRlbmN5X2xpYnMiICYmCi0rCSAgICAg eyB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiAhPSB5ZXMgfHwKLSsJICAgICAgIHRlc3QgIiRi dWlsZF9vbGRfbGlicyIgPSB5ZXMgfHwKLSsJICAgICAgIHRlc3QgIiRsaW5rX3N0YXRpYyIgPSB5 ZXM7IH07IHRoZW4KLSsJICAgICMgRXh0cmFjdCAtUiBmcm9tIGRlcGVuZGVuY3lfbGlicwotKwkg ICAgdGVtcF9kZXBsaWJzPQotKwkgICAgZm9yIGxpYmRpciBpbiAkZGVwZW5kZW5jeV9saWJzOyBk bwotKwkgICAgICBjYXNlICRsaWJkaXIgaW4KLSsJICAgICAgLVIqKSBmdW5jX3N0cmlwbmFtZSAn LVInICcnICIkbGliZGlyIgotKwkgICAgICAgICAgIHRlbXBfeHJwYXRoPSRmdW5jX3N0cmlwbmFt ZV9yZXN1bHQKLSsJCSAgIGNhc2UgIiAkeHJwYXRoICIgaW4KLSsJCSAgICoiICR0ZW1wX3hycGF0 aCAiKikgOzsKLSsJCSAgICopIGZ1bmNfYXBwZW5kIHhycGF0aCAiICR0ZW1wX3hycGF0aCI7Owot KwkJICAgZXNhYzs7Ci0rCSAgICAgICopIGZ1bmNfYXBwZW5kIHRlbXBfZGVwbGlicyAiICRsaWJk aXIiOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgICAgZGVwZW5kZW5jeV9saWJzPSIk dGVtcF9kZXBsaWJzIgotKwkgIGZpCi0rCi0rCSAgZnVuY19hcHBlbmQgbmV3bGliX3NlYXJjaF9w YXRoICIgJGFic2RpciIKLSsJICAjIExpbmsgYWdhaW5zdCB0aGlzIGxpYnJhcnkKLSsJICB0ZXN0 ICIkbGlua19zdGF0aWMiID0gbm8gJiYgbmV3ZGVwZW5kZW5jeV9saWJzPSIkYWJzX2xhZGlyLyRs YW5hbWUgJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsJICAjIC4uLiBhbmQgaXRzIGRlcGVuZGVuY3lf bGlicwotKwkgIHRtcF9saWJzPQotKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsg ZG8KLSsJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJz IgotKwkgICAgY2FzZSAkZGVwbGliIGluCi0rICAgICAgICAgICAgICAtTCopIGZ1bmNfc3RyaXBu YW1lICctTCcgJycgIiRkZXBsaWIiCi0rICAgICAgICAgICAgICAgICAgIGZ1bmNfcmVzb2x2ZV9z eXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0Ijs7Ci0rICAgICAgICAgICAgICAqKSBmdW5j X3Jlc29sdmVfc3lzcm9vdCAiJGRlcGxpYiIgOzsKLSsgICAgICAgICAgICBlc2FjCi0rCSAgICBp ZiAkb3B0X3ByZXNlcnZlX2R1cF9kZXBzIDsgdGhlbgotKwkgICAgICBjYXNlICIkdG1wX2xpYnMg IiBpbgotKwkgICAgICAqIiAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0ICIqKQotKyAgICAg ICAgICAgICAgICBmdW5jX2FwcGVuZCBzcGVjaWFsZGVwbGlicyAiICRmdW5jX3Jlc29sdmVfc3lz cm9vdF9yZXN1bHQiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgICBmdW5jX2FwcGVu ZCB0bXBfbGlicyAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCi0rCSAgZG9uZQotKwot KwkgIGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBubzsgdGhlbgotKwkgICAgIyBBZGQg dGhlIHNlYXJjaCBwYXRocyBvZiBhbGwgZGVwZW5kZW5jeSBsaWJyYXJpZXMKLSsJICAgIGZvciBk ZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAgICAgcGF0aD0KLSsJICAgICAgY2Fz ZSAkZGVwbGliIGluCi0rCSAgICAgIC1MKikgcGF0aD0iJGRlcGxpYiIgOzsKLSsJICAgICAgKi5s YSkKLSsJICAgICAgICBmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGRlcGxpYiIKLSsJICAgICAgICBk ZXBsaWI9JGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdAotKwkgICAgICAgIGZ1bmNfZGlybmFt ZSAiJGRlcGxpYiIgIiIgIi4iCi0rCQlkaXI9JGZ1bmNfZGlybmFtZV9yZXN1bHQKLSsJCSMgV2Ug bmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgotKwkJY2FzZSAkZGlyIGluCi0rCQlbXFwvXSogfCBbQS1a YS16XTpbXFwvXSopIGFic2Rpcj0iJGRpciIgOzsKLSsJCSopCi0rCQkgIGFic2Rpcj1gY2QgIiRk aXIiICYmIHB3ZGAKLSsJCSAgaWYgdGVzdCAteiAiJGFic2RpciI7IHRoZW4KLSsJCSAgICBmdW5j X3dhcm5pbmcgImNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAk ZGlyJyIKLSsJCSAgICBhYnNkaXI9IiRkaXIiCi0rCQkgIGZpCi0rCQkgIDs7Ci0rCQllc2FjCi0r CQlpZiAkR1JFUCAiXmluc3RhbGxlZD1ubyIgJGRlcGxpYiA+IC9kZXYvbnVsbDsgdGhlbgotKwkJ Y2FzZSAkaG9zdCBpbgotKwkJKi0qLWRhcndpbiopCi0rCQkgIGRlcGRlcGw9Ci0rCQkgIGV2YWwg ZGVwbGlicmFyeV9uYW1lcz1gJHtTRUR9IC1uIC1lICdzL15saWJyYXJ5X25hbWVzPVwoLipcKSQv XDEvcCcgJGRlcGxpYmAKLSsJCSAgaWYgdGVzdCAtbiAiJGRlcGxpYnJhcnlfbmFtZXMiIDsgdGhl bgotKwkJICAgIGZvciB0bXAgaW4gJGRlcGxpYnJhcnlfbmFtZXMgOyBkbwotKwkJICAgICAgZGVw ZGVwbD0kdG1wCi0rCQkgICAgZG9uZQotKwkJICAgIGlmIHRlc3QgLWYgIiRhYnNkaXIvJG9iamRp ci8kZGVwZGVwbCIgOyB0aGVuCi0rCQkgICAgICBkZXBkZXBsPSIkYWJzZGlyLyRvYmpkaXIvJGRl cGRlcGwiCi0rCQkgICAgICBkYXJ3aW5faW5zdGFsbF9uYW1lPWAke09UT09MfSAtTCAkZGVwZGVw bCB8IGF3ayAne2lmIChOUiA9PSAyKSB7cHJpbnQgJDE7ZXhpdH19J2AKLSsgICAgICAgICAgICAg ICAgICAgICAgaWYgdGVzdCAteiAiJGRhcndpbl9pbnN0YWxsX25hbWUiOyB0aGVuCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXJ3aW5faW5zdGFsbF9uYW1lPWAke09UT09MNjR9IC1MICRk ZXBkZXBsICB8IGF3ayAne2lmIChOUiA9PSAyKSB7cHJpbnQgJDE7ZXhpdH19J2AKLSsgICAgICAg ICAgICAgICAgICAgICAgZmkKLSsJCSAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIg JHt3bH0tZHlsaWJfZmlsZSAke3dsfSR7ZGFyd2luX2luc3RhbGxfbmFtZX06JHtkZXBkZXBsfSIK LSsJCSAgICAgIGZ1bmNfYXBwZW5kIGxpbmtlcl9mbGFncyAiIC1keWxpYl9maWxlICR7ZGFyd2lu X2luc3RhbGxfbmFtZX06JHtkZXBkZXBsfSIKLSsJCSAgICAgIHBhdGg9Ci0rCQkgICAgZmkKLSsJ CSAgZmkKLSsJCSAgOzsKLSsJCSopCi0rCQkgIHBhdGg9Ii1MJGFic2Rpci8kb2JqZGlyIgotKwkJ ICA7OwotKwkJZXNhYwotKwkJZWxzZQotKwkJICBldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdz L15saWJkaXI9XCguKlwpJC9cMS9wJyAkZGVwbGliYAotKwkJICB0ZXN0IC16ICIkbGliZGlyIiAm JiBcCi0rCQkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkZGVwbGliJyBpcyBub3QgYSB2YWxpZCBs aWJ0b29sIGFyY2hpdmUiCi0rCQkgIHRlc3QgIiRhYnNkaXIiICE9ICIkbGliZGlyIiAmJiBcCi0r CQkgICAgZnVuY193YXJuaW5nICJcYCRkZXBsaWInIHNlZW1zIHRvIGJlIG1vdmVkIgotKwotKwkJ ICBwYXRoPSItTCRhYnNkaXIiCi0rCQlmaQotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgICBj YXNlICIgJGRlcGxpYnMgIiBpbgotKwkgICAgICAqIiAkcGF0aCAiKikgOzsKLSsJICAgICAgKikg ZGVwbGlicz0iJHBhdGggJGRlcGxpYnMiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJ ICBmaSAjIGxpbmtfYWxsX2RlcGxpYnMgIT0gbm8KLSsJZmkgIyBsaW5rbW9kZSA9IGxpYgotKyAg ICAgIGRvbmUgIyBmb3IgZGVwbGliIGluICRsaWJzCi0rICAgICAgaWYgdGVzdCAiJHBhc3MiID0g bGluazsgdGhlbgotKwlpZiB0ZXN0ICIkbGlua21vZGUiID0gInByb2ciOyB0aGVuCi0rCSAgY29t cGlsZV9kZXBsaWJzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGNvbXBpbGVfZGVwbGli cyIKLSsJICBmaW5hbGl6ZV9kZXBsaWJzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGZp bmFsaXplX2RlcGxpYnMiCi0rCWVsc2UKLSsJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2Zs YWdzICJgJEVDSE8gIiAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFNFRCAncyUgXChb XiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJZmkKLSsgICAgICBmaQot KyAgICAgIGRlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsgICAgICBpZiB0 ZXN0ICIkcGFzcyIgPSBkbHByZW9wZW47IHRoZW4KLSsJIyBMaW5rIHRoZSBkbHByZW9wZW5lZCBs aWJyYXJpZXMgYmVmb3JlIG90aGVyIGxpYnJhcmllcwotKwlmb3IgZGVwbGliIGluICRzYXZlX2Rl cGxpYnM7IGRvCi0rCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJZG9uZQotKyAgICAg IGZpCi0rICAgICAgaWYgdGVzdCAiJHBhc3MiICE9IGRsb3BlbjsgdGhlbgotKwlpZiB0ZXN0ICIk cGFzcyIgIT0gY29udjsgdGhlbgotKwkgICMgTWFrZSBzdXJlIGxpYl9zZWFyY2hfcGF0aCBjb250 YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KLSsJICBsaWJfc2VhcmNoX3BhdGg9Ci0rCSAg Zm9yIGRpciBpbiAkbmV3bGliX3NlYXJjaF9wYXRoOyBkbwotKwkgICAgY2FzZSAiJGxpYl9zZWFy Y2hfcGF0aCAiIGluCi0rCSAgICAqIiAkZGlyICIqKSA7OwotKwkgICAgKikgZnVuY19hcHBlbmQg bGliX3NlYXJjaF9wYXRoICIgJGRpciIgOzsKLSsJICAgIGVzYWMKLSsJICBkb25lCi0rCSAgbmV3 bGliX3NlYXJjaF9wYXRoPQotKwlmaQotKwotKwlpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiICE9 ICJwcm9nLGxpbmsiOyB0aGVuCi0rCSAgdmFycz0iZGVwbGlicyIKLSsJZWxzZQotKwkgIHZhcnM9 ImNvbXBpbGVfZGVwbGlicyBmaW5hbGl6ZV9kZXBsaWJzIgotKwlmaQotKwlmb3IgdmFyIGluICR2 YXJzIGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAjIEFkZCBsaWJyYXJpZXMgdG8gJHZhciBpbiBy ZXZlcnNlIG9yZGVyCi0rCSAgZXZhbCB0bXBfbGlicz1cIlwkJHZhclwiCi0rCSAgbmV3X2xpYnM9 Ci0rCSAgZm9yIGRlcGxpYiBpbiAkdG1wX2xpYnM7IGRvCi0rCSAgICAjIEZJWE1FOiBQZWRhbnRp Y2FsbHksIHRoaXMgaXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvLCBzbwotKwkgICAgIyAgICAgICAg dGhhdCBzb21lIG5hc3R5IGRlcGVuZGVuY3kgbG9vcCBpc24ndCBhY2NpZGVudGFsbHkKLSsJICAg ICMgICAgICAgIGJyb2tlbjoKLSsJICAgICNuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiCi0r CSAgICAjIFByYWdtYXRpY2FsbHksIHRoaXMgc2VlbXMgdG8gY2F1c2UgdmVyeSBmZXcgcHJvYmxl bXMgaW4KLSsJICAgICMgcHJhY3RpY2U6Ci0rCSAgICBjYXNlICRkZXBsaWIgaW4KLSsJICAgIC1M KikgbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIiA7OwotKwkgICAgLVIqKSA7OwotKwkgICAg KikKLSsJICAgICAgIyBBbmQgaGVyZSBpcyB0aGUgcmVhc29uOiB3aGVuIGEgbGlicmFyeSBhcHBl YXJzIG1vcmUKLSsJICAgICAgIyB0aGFuIG9uY2UgYXMgYW4gZXhwbGljaXQgZGVwZW5kZW5jZSBv ZiBhIGxpYnJhcnksIG9yCi0rCSAgICAgICMgaXMgaW1wbGljaXRseSBsaW5rZWQgaW4gbW9yZSB0 aGFuIG9uY2UgYnkgdGhlCi0rCSAgICAgICMgY29tcGlsZXIsIGl0IGlzIGNvbnNpZGVyZWQgc3Bl Y2lhbCwgYW5kIG11bHRpcGxlCi0rCSAgICAgICMgb2NjdXJyZW5jZXMgdGhlcmVvZiBhcmUgbm90 IHJlbW92ZWQuICBDb21wYXJlIHRoaXMKLSsJICAgICAgIyB3aXRoIGhhdmluZyB0aGUgc2FtZSBs aWJyYXJ5IGJlaW5nIGxpc3RlZCBhcyBhCi0rCSAgICAgICMgZGVwZW5kZW5jeSBvZiBtdWx0aXBs ZSBvdGhlciBsaWJyYXJpZXM6IGluIHRoaXMgY2FzZSwKLSsJICAgICAgIyB3ZSBrbm93IChwZWRh bnRpY2FsbHksIHdlIGFzc3VtZSkgdGhlIGxpYnJhcnkgZG9lcyBub3QKLSsJICAgICAgIyBuZWVk IHRvIGJlIGxpc3RlZCBtb3JlIHRoYW4gb25jZSwgc28gd2Uga2VlcCBvbmx5IHRoZQotKwkgICAg ICAjIGxhc3QgY29weS4gIFRoaXMgaXMgbm90IGFsd2F5cyByaWdodCwgYnV0IGl0IGlzIHJhcmUK LSsJICAgICAgIyBlbm91Z2ggdGhhdCB3ZSByZXF1aXJlIHVzZXJzIHRoYXQgcmVhbGx5IG1lYW4g dG8gcGxheQotKwkgICAgICAjIHN1Y2ggdW5wb3J0YWJsZSBsaW5raW5nIHRyaWNrcyB0byBsaW5r IHRoZSBsaWJyYXJ5Ci0rCSAgICAgICMgdXNpbmcgLVdsLC1sbmFtZSwgc28gdGhhdCBsaWJ0b29s IGRvZXMgbm90IGNvbnNpZGVyIGl0Ci0rCSAgICAgICMgZm9yIGR1cGxpY2F0ZSByZW1vdmFsLgot KwkgICAgICBjYXNlICIgJHNwZWNpYWxkZXBsaWJzICIgaW4KLSsJICAgICAgKiIgJGRlcGxpYiAi KikgbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIiA7OwotKwkgICAgICAqKQotKwkJY2FzZSAi ICRuZXdfbGlicyAiIGluCi0rCQkqIiAkZGVwbGliICIqKSA7OwotKwkJKikgbmV3X2xpYnM9IiRk ZXBsaWIgJG5ld19saWJzIiA7OwotKwkJZXNhYwotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAg ICA7OwotKwkgICAgZXNhYwotKwkgIGRvbmUKLSsJICB0bXBfbGlicz0KLSsJICBmb3IgZGVwbGli IGluICRuZXdfbGliczsgZG8KLSsJICAgIGNhc2UgJGRlcGxpYiBpbgotKwkgICAgLUwqKQotKwkg ICAgICBjYXNlICIgJHRtcF9saWJzICIgaW4KLSsJICAgICAgKiIgJGRlcGxpYiAiKikgOzsKLSsJ ICAgICAgKikgZnVuY19hcHBlbmQgdG1wX2xpYnMgIiAkZGVwbGliIiA7OwotKwkgICAgICBlc2Fj Ci0rCSAgICAgIDs7Ci0rCSAgICAqKSBmdW5jX2FwcGVuZCB0bXBfbGlicyAiICRkZXBsaWIiIDs7 Ci0rCSAgICBlc2FjCi0rCSAgZG9uZQotKwkgIGV2YWwgJHZhcj1cIiR0bXBfbGlic1wiCi0rCWRv bmUgIyBmb3IgdmFyCi0rICAgICAgZmkKLSsgICAgICAjIExhc3Qgc3RlcDogcmVtb3ZlIHJ1bnRp bWUgbGlicyBmcm9tIGRlcGVuZGVuY3lfbGlicwotKyAgICAgICMgKHRoZXkgc3RheSBpbiBkZXBs aWJzKQotKyAgICAgIHRtcF9saWJzPQotKyAgICAgIGZvciBpIGluICRkZXBlbmRlbmN5X2xpYnMg OyBkbwotKwljYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICRjb21waWxlcl9saWJfc2VhcmNoX3Bh dGggIiBpbgotKwkqIiAkaSAiKikKLSsJICBpPSIiCi0rCSAgOzsKLSsJZXNhYwotKwlpZiB0ZXN0 IC1uICIkaSIgOyB0aGVuCi0rCSAgZnVuY19hcHBlbmQgdG1wX2xpYnMgIiAkaSIKLSsJZmkKLSsg ICAgICBkb25lCi0rICAgICAgZGVwZW5kZW5jeV9saWJzPSR0bXBfbGlicwotKyAgICBkb25lICMg Zm9yIHBhc3MKLSsgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsgICAgICBk bGZpbGVzPSIkbmV3ZGxmaWxlcyIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9 IHByb2cgfHwgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgotKyAgICAgIGRscHJlZmlsZXM9 IiRuZXdkbHByZWZpbGVzIgotKyAgICBmaQotKwotKyAgICBjYXNlICRsaW5rbW9kZSBpbgotKyAg ICBvbGRsaWIpCi0rICAgICAgaWYgdGVzdCAtbiAiJGRsZmlsZXMkZGxwcmVmaWxlcyIgfHwgdGVz dCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KLSsJZnVuY193YXJuaW5nICJcYC1kbG9wZW4nIGlzIGln bm9yZWQgZm9yIGFyY2hpdmVzIgotKyAgICAgIGZpCi0rCi0rICAgICAgY2FzZSAiICRkZXBsaWJz IiBpbgotKyAgICAgICpcIC1sKiB8ICpcIC1MKikKLSsJZnVuY193YXJuaW5nICJcYC1sJyBhbmQg XGAtTCcgYXJlIGlnbm9yZWQgZm9yIGFyY2hpdmVzIiA7OwotKyAgICAgIGVzYWMKLSsKLSsgICAg ICB0ZXN0IC1uICIkcnBhdGgiICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1ycGF0aCcgaXMgaWdu b3JlZCBmb3IgYXJjaGl2ZXMiCi0rCi0rICAgICAgdGVzdCAtbiAiJHhycGF0aCIgJiYgXAotKwlm dW5jX3dhcm5pbmcgIlxgLVInIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgotKwotKyAgICAgIHRl c3QgLW4gIiR2aW5mbyIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mby8tdmVy c2lvbi1udW1iZXInIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgotKwotKyAgICAgIHRlc3QgLW4g IiRyZWxlYXNlIiAmJiBcCi0rCWZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdub3JlZCBm b3IgYXJjaGl2ZXMiCi0rCi0rICAgICAgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzJGV4cG9ydF9z eW1ib2xzX3JlZ2V4IiAmJiBcCi0rCWZ1bmNfd2FybmluZyAiXGAtZXhwb3J0LXN5bWJvbHMnIGlz IGlnbm9yZWQgZm9yIGFyY2hpdmVzIgotKwotKyAgICAgICMgTm93IHNldCB0aGUgdmFyaWFibGVz IGZvciBidWlsZGluZyBvbGQgbGlicmFyaWVzLgotKyAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1u bwotKyAgICAgIG9sZGxpYnM9IiRvdXRwdXQiCi0rICAgICAgZnVuY19hcHBlbmQgb2JqcyAiJG9s ZF9kZXBsaWJzIgotKyAgICAgIDs7Ci0rCi0rICAgIGxpYikKLSsgICAgICAjIE1ha2Ugc3VyZSB3 ZSBvbmx5IGdlbmVyYXRlIGxpYnJhcmllcyBvZiB0aGUgZm9ybSBgbGliTkFNRS5sYScuCi0rICAg ICAgY2FzZSAkb3V0cHV0bmFtZSBpbgotKyAgICAgIGxpYiopCi0rCWZ1bmNfc3RyaXBuYW1lICds aWInICcubGEnICIkb3V0cHV0bmFtZSIKLSsJbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0r CWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCi0rCWV2YWwgbGlibmFtZT1cIiRsaWJu YW1lX3NwZWNcIgotKwk7OwotKyAgICAgICopCi0rCXRlc3QgIiRtb2R1bGUiID0gbm8gJiYgXAot KwkgIGZ1bmNfZmF0YWxfaGVscCAibGlidG9vbCBsaWJyYXJ5IFxgJG91dHB1dCcgbXVzdCBiZWdp biB3aXRoIFxgbGliJyIKLSsKLSsJaWYgdGVzdCAiJG5lZWRfbGliX3ByZWZpeCIgIT0gbm87IHRo ZW4KLSsJICAjIEFkZCB0aGUgImxpYiIgcHJlZml4IGZvciBtb2R1bGVzIGlmIHJlcXVpcmVkCi0r CSAgZnVuY19zdHJpcG5hbWUgJycgJy5sYScgIiRvdXRwdXRuYW1lIgotKwkgIG5hbWU9JGZ1bmNf c3RyaXBuYW1lX3Jlc3VsdAotKwkgIGV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCi0r CSAgZXZhbCBsaWJuYW1lPVwiJGxpYm5hbWVfc3BlY1wiCi0rCWVsc2UKLSsJICBmdW5jX3N0cmlw bmFtZSAnJyAnLmxhJyAiJG91dHB1dG5hbWUiCi0rCSAgbGlibmFtZT0kZnVuY19zdHJpcG5hbWVf cmVzdWx0Ci0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRv YmpzIjsgdGhlbgotKwlpZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxs OyB0aGVuCi0rCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGJ1aWxkIGxpYnRvb2wgbGlicmFy eSBcYCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wgb2JqZWN0cyBvbiB0aGlzIGhvc3Q6JG9ianMi Ci0rCWVsc2UKLSsJICBlY2hvCi0rCSAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBz aGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIG5vbi1saWJ0b29sIgotKwkgICRFQ0hP ICIqKiogb2JqZWN0cyAkb2JqcyBpcyBub3QgcG9ydGFibGUhIgotKwkgIGZ1bmNfYXBwZW5kIGxp Ym9ianMgIiAkb2JqcyIKLSsJZmkKLSsgICAgICBmaQotKwotKyAgICAgIHRlc3QgIiRkbHNlbGYi ICE9IG5vICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1kbG9wZW4gc2VsZicgaXMgaWdub3JlZCBm b3IgbGlidG9vbCBsaWJyYXJpZXMiCi0rCi0rICAgICAgc2V0IGR1bW15ICRycGF0aAotKyAgICAg IHNoaWZ0Ci0rICAgICAgdGVzdCAiJCMiIC1ndCAxICYmIFwKLSsJZnVuY193YXJuaW5nICJpZ25v cmluZyBtdWx0aXBsZSBcYC1ycGF0aCdzIGZvciBhIGxpYnRvb2wgbGlicmFyeSIKLSsKLSsgICAg ICBpbnN0YWxsX2xpYmRpcj0iJDEiCi0rCi0rICAgICAgb2xkbGlicz0KLSsgICAgICBpZiB0ZXN0 IC16ICIkcnBhdGgiOyB0aGVuCi0rCWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVz OyB0aGVuCi0rCSAgIyBCdWlsZGluZyBhIGxpYnRvb2wgY29udmVuaWVuY2UgbGlicmFyeS4KLSsJ ICAjIFNvbWUgY29tcGlsZXJzIGhhdmUgcHJvYmxlbXMgd2l0aCBhIGAuYWwnIGV4dGVuc2lvbiBz bwotKwkgICMgY29udmVuaWVuY2UgbGlicmFyaWVzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGV4dGVu c2lvbiBhbgotKwkgICMgYXJjaGl2ZSBub3JtYWxseSB3b3VsZC4KLSsJICBvbGRsaWJzPSIkb3V0 cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0ICRvbGRsaWJzIgotKwkgIGJ1aWxkX2xpYnRvb2xf bGlicz1jb252ZW5pZW5jZQotKwkgIGJ1aWxkX29sZF9saWJzPXllcwotKwlmaQotKwotKwl0ZXN0 IC1uICIkdmluZm8iICYmIFwKLSsJICBmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mby8tdmVy c2lvbi1udW1iZXInIGlzIGlnbm9yZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIKLSsKLSsJ dGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKLSsJICBmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlz IGlnbm9yZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIKLSsgICAgICBlbHNlCi0rCi0rCSMg UGFyc2UgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24gYXJndW1lbnQuCi0rCXNhdmVfaWZzPSIkSUZT IjsgSUZTPSc6JwotKwlzZXQgZHVtbXkgJHZpbmZvIDAgMCAwCi0rCXNoaWZ0Ci0rCUlGUz0iJHNh dmVfaWZzIgotKwotKwl0ZXN0IC1uICIkNyIgJiYgXAotKwkgIGZ1bmNfZmF0YWxfaGVscCAidG9v IG1hbnkgcGFyYW1ldGVycyB0byBcYC12ZXJzaW9uLWluZm8nIgotKwotKwkjIGNvbnZlcnQgYWJz b2x1dGUgdmVyc2lvbiBudW1iZXJzIHRvIGxpYnRvb2wgYWdlcwotKwkjIHRoaXMgcmV0YWlucyBj b21wYXRpYmlsaXR5IHdpdGggLmxhIGZpbGVzIGFuZCBhdHRlbXB0cwotKwkjIHRvIG1ha2UgdGhl IGNvZGUgYmVsb3cgYSBiaXQgbW9yZSBjb21wcmVoZW5zaWJsZQotKwotKwljYXNlICR2aW5mb19u dW1iZXIgaW4KLSsJeWVzKQotKwkgIG51bWJlcl9tYWpvcj0iJDEiCi0rCSAgbnVtYmVyX21pbm9y PSIkMiIKLSsJICBudW1iZXJfcmV2aXNpb249IiQzIgotKwkgICMKLSsJICAjIFRoZXJlIGFyZSBy ZWFsbHkgb25seSB0d28ga2luZHMgLS0gdGhvc2UgdGhhdAotKwkgICMgdXNlIHRoZSBjdXJyZW50 IHJldmlzaW9uIGFzIHRoZSBtYWpvciB2ZXJzaW9uCi0rCSAgIyBhbmQgdGhvc2UgdGhhdCBzdWJ0 cmFjdCBhZ2UgYW5kIHVzZSBhZ2UgYXMKLSsJICAjIGEgbWlub3IgdmVyc2lvbi4gIEJ1dCwgdGhl biB0aGVyZSBpcyBpcml4Ci0rCSAgIyB3aGljaCBoYXMgYW4gZXh0cmEgMSBhZGRlZCBqdXN0IGZv ciBmdW4KLSsJICAjCi0rCSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCi0rCSAgZGFyd2lufGxpbnV4 fG9zZnx3aW5kb3dzfG5vbmUpCi0rCSAgICBmdW5jX2FyaXRoICRudW1iZXJfbWFqb3IgKyAkbnVt YmVyX21pbm9yCi0rCSAgICBjdXJyZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgICAgYWdlPSIk bnVtYmVyX21pbm9yIgotKwkgICAgcmV2aXNpb249IiRudW1iZXJfcmV2aXNpb24iCi0rCSAgICA7 OwotKwkgIGZyZWVic2QtYW91dHxmcmVlYnNkLWVsZnxxbnh8c3Vub3MpCi0rCSAgICBjdXJyZW50 PSIkbnVtYmVyX21ham9yIgotKwkgICAgcmV2aXNpb249IiRudW1iZXJfbWlub3IiCi0rCSAgICBh Z2U9IjAiCi0rCSAgICA7OwotKwkgIGlyaXh8bm9uc3RvcHV4KQotKwkgICAgZnVuY19hcml0aCAk bnVtYmVyX21ham9yICsgJG51bWJlcl9taW5vcgotKwkgICAgY3VycmVudD0kZnVuY19hcml0aF9y ZXN1bHQKLSsJICAgIGFnZT0iJG51bWJlcl9taW5vciIKLSsJICAgIHJldmlzaW9uPSIkbnVtYmVy X21pbm9yIgotKwkgICAgbHRfaXJpeF9pbmNyZW1lbnQ9bm8KLSsJICAgIDs7Ci0rCSAgZXNhYwot KwkgIDs7Ci0rCW5vKQotKwkgIGN1cnJlbnQ9IiQxIgotKwkgIHJldmlzaW9uPSIkMiIKLSsJICBh Z2U9IiQzIgotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJIyBDaGVjayB0aGF0IGVhY2ggb2YgdGhlIHRo aW5ncyBhcmUgdmFsaWQgbnVtYmVycy4KLSsJY2FzZSAkY3VycmVudCBpbgotKwkwfFsxLTldfFsx LTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldfFsxLTldWzAtOV1b MC05XVswLTldWzAtOV0pIDs7Ci0rCSopCi0rCSAgZnVuY19lcnJvciAiQ1VSUkVOVCBcYCRjdXJy ZW50JyBtdXN0IGJlIGEgbm9ubmVnYXRpdmUgaW50ZWdlciIKLSsJICBmdW5jX2ZhdGFsX2Vycm9y ICJcYCR2aW5mbycgaXMgbm90IHZhbGlkIHZlcnNpb24gaW5mb3JtYXRpb24iCi0rCSAgOzsKLSsJ ZXNhYwotKwotKwljYXNlICRyZXZpc2lvbiBpbgotKwkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1b MC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0p IDs7Ci0rCSopCi0rCSAgZnVuY19lcnJvciAiUkVWSVNJT04gXGAkcmV2aXNpb24nIG11c3QgYmUg YSBub25uZWdhdGl2ZSBpbnRlZ2VyIgotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBp cyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIKLSsJICA7OwotKwllc2FjCi0rCi0rCWNh c2UgJGFnZSBpbgotKwkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAt OV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7Ci0rCSopCi0rCSAgZnVu Y19lcnJvciAiQUdFIFxgJGFnZScgbXVzdCBiZSBhIG5vbm5lZ2F0aXZlIGludGVnZXIiCi0rCSAg ZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0 aW9uIgotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJaWYgdGVzdCAiJGFnZSIgLWd0ICIkY3VycmVudCI7 IHRoZW4KLSsJICBmdW5jX2Vycm9yICJBR0UgXGAkYWdlJyBpcyBncmVhdGVyIHRoYW4gdGhlIGN1 cnJlbnQgaW50ZXJmYWNlIG51bWJlciBcYCRjdXJyZW50JyIKLSsJICBmdW5jX2ZhdGFsX2Vycm9y ICJcYCR2aW5mbycgaXMgbm90IHZhbGlkIHZlcnNpb24gaW5mb3JtYXRpb24iCi0rCWZpCi0rCi0r CSMgQ2FsY3VsYXRlIHRoZSB2ZXJzaW9uIHZhcmlhYmxlcy4KLSsJbWFqb3I9Ci0rCXZlcnN1ZmZp eD0KLSsJdmVyc3RyaW5nPQotKwljYXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsJbm9uZSkgOzsKLSsK LSsJZGFyd2luKQotKwkgICMgTGlrZSBMaW51eCwgYnV0IHdpdGggdGhlIGN1cnJlbnQgdmVyc2lv biBhdmFpbGFibGUgaW4KLSsJICAjIHZlcnN0cmluZyBmb3IgY29kaW5nIGl0IGludG8gdGhlIGxp YnJhcnkgaGVhZGVyCi0rCSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKLSsJICBtYWpvcj0u JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgdmVyc3VmZml4PSIkbWFqb3IuJGFnZS4kcmV2aXNpb24i Ci0rCSAgIyBEYXJ3aW4gbGQgZG9lc24ndCBsaWtlIDAgZm9yIHRoZXNlIG9wdGlvbnMuLi4KLSsJ ICBmdW5jX2FyaXRoICRjdXJyZW50ICsgMQotKwkgIG1pbm9yX2N1cnJlbnQ9JGZ1bmNfYXJpdGhf cmVzdWx0Ci0rCSAgeGxjdmVyc3RyaW5nPSIke3dsfS1jb21wYXRpYmlsaXR5X3ZlcnNpb24gJHt3 bH0kbWlub3JfY3VycmVudCAke3dsfS1jdXJyZW50X3ZlcnNpb24gJHt3bH0kbWlub3JfY3VycmVu dC4kcmV2aXNpb24iCi0rCSAgdmVyc3RyaW5nPSItY29tcGF0aWJpbGl0eV92ZXJzaW9uICRtaW5v cl9jdXJyZW50IC1jdXJyZW50X3ZlcnNpb24gJG1pbm9yX2N1cnJlbnQuJHJldmlzaW9uIgotKwkg IDs7Ci0rCi0rCWZyZWVic2QtYW91dCkKLSsJICBtYWpvcj0iLiRjdXJyZW50IgotKwkgIHZlcnN1 ZmZpeD0iLiRjdXJyZW50LiRyZXZpc2lvbiI7Ci0rCSAgOzsKLSsKLSsJZnJlZWJzZC1lbGYpCi0r CSAgbWFqb3I9Ii4kY3VycmVudCIKLSsJICB2ZXJzdWZmaXg9Ii4kY3VycmVudCIKLSsJICA7Owot KwotKwlpcml4IHwgbm9uc3RvcHV4KQotKwkgIGlmIHRlc3QgIlgkbHRfaXJpeF9pbmNyZW1lbnQi ID0gIlhubyI7IHRoZW4KLSsJICAgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCi0rCSAgZWxz ZQotKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UgKyAxCi0rCSAgZmkKLSsJICBtYWpv cj0kZnVuY19hcml0aF9yZXN1bHQKLSsKLSsJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsJICAg IG5vbnN0b3B1eCkgdmVyc3RyaW5nX3ByZWZpeD1ub25zdG9wdXggOzsKLSsJICAgICopICAgICAg ICAgdmVyc3RyaW5nX3ByZWZpeD1zZ2kgOzsKLSsJICBlc2FjCi0rCSAgdmVyc3RyaW5nPSIkdmVy c3RyaW5nX3ByZWZpeCRtYWpvci4kcmV2aXNpb24iCi0rCi0rCSAgIyBBZGQgaW4gYWxsIHRoZSBp bnRlcmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBhdGlibGUgd2l0aC4KLSsJICBsb29wPSRyZXZpc2lv bgotKwkgIHdoaWxlIHRlc3QgIiRsb29wIiAtbmUgMDsgZG8KLSsJICAgIGZ1bmNfYXJpdGggJHJl dmlzaW9uIC0gJGxvb3AKLSsJICAgIGlmYWNlPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgICAgZnVu Y19hcml0aCAkbG9vcCAtIDEKLSsJICAgIGxvb3A9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgICB2 ZXJzdHJpbmc9IiR2ZXJzdHJpbmdfcHJlZml4JG1ham9yLiRpZmFjZTokdmVyc3RyaW5nIgotKwkg IGRvbmUKLSsKLSsJICAjIEJlZm9yZSB0aGlzIHBvaW50LCAkbWFqb3IgbXVzdCBub3QgY29udGFp biBgLicuCi0rCSAgbWFqb3I9LiRtYWpvcgotKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRyZXZpc2lv biIKLSsJICA7OwotKwotKwlsaW51eCkKLSsJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQot KwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKLSsJICB2ZXJzdWZmaXg9IiRtYWpvci4kYWdl LiRyZXZpc2lvbiIKLSsJICA7OwotKwotKwlvc2YpCi0rCSAgZnVuY19hcml0aCAkY3VycmVudCAt ICRhZ2UKLSsJICBtYWpvcj0uJGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgdmVyc3VmZml4PSIuJGN1 cnJlbnQuJGFnZS4kcmV2aXNpb24iCi0rCSAgdmVyc3RyaW5nPSIkY3VycmVudC4kYWdlLiRyZXZp c2lvbiIKLSsKLSsJICAjIEFkZCBpbiBhbGwgdGhlIGludGVyZmFjZXMgdGhhdCB3ZSBhcmUgY29t cGF0aWJsZSB3aXRoLgotKwkgIGxvb3A9JGFnZQotKwkgIHdoaWxlIHRlc3QgIiRsb29wIiAtbmUg MDsgZG8KLSsJICAgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkbG9vcAotKwkgICAgaWZhY2U9JGZ1 bmNfYXJpdGhfcmVzdWx0Ci0rCSAgICBmdW5jX2FyaXRoICRsb29wIC0gMQotKwkgICAgbG9vcD0k ZnVuY19hcml0aF9yZXN1bHQKLSsJICAgIHZlcnN0cmluZz0iJHZlcnN0cmluZzoke2lmYWNlfS4w IgotKwkgIGRvbmUKLSsKLSsJICAjIE1ha2UgZXhlY3V0YWJsZXMgZGVwZW5kIG9uIG91ciBjdXJy ZW50IHZlcnNpb24uCi0rCSAgZnVuY19hcHBlbmQgdmVyc3RyaW5nICI6JHtjdXJyZW50fS4wIgot KwkgIDs7Ci0rCi0rCXFueCkKLSsJICBtYWpvcj0iLiRjdXJyZW50IgotKwkgIHZlcnN1ZmZpeD0i LiRjdXJyZW50IgotKwkgIDs7Ci0rCi0rCXN1bm9zKQotKwkgIG1ham9yPSIuJGN1cnJlbnQiCi0r CSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIgotKwkgIDs7Ci0rCi0rCXdpbmRvd3Mp Ci0rCSAgIyBVc2UgJy0nIHJhdGhlciB0aGFuICcuJywgc2luY2Ugd2Ugb25seSB3YW50IG9uZQot KwkgICMgZXh0ZW5zaW9uIG9uIERPUyA4LjMgZmlsZXN5c3RlbXMuCi0rCSAgZnVuY19hcml0aCAk Y3VycmVudCAtICRhZ2UKLSsJICBtYWpvcj0kZnVuY19hcml0aF9yZXN1bHQKLSsJICB2ZXJzdWZm aXg9Ii0kbWFqb3IiCi0rCSAgOzsKLSsKLSsJKikKLSsJICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRp b24gInVua25vd24gbGlicmFyeSB2ZXJzaW9uIHR5cGUgXGAkdmVyc2lvbl90eXBlJyIKLSsJICA7 OwotKwllc2FjCi0rCi0rCSMgQ2xlYXIgdGhlIHZlcnNpb24gaW5mbyBpZiB3ZSBkZWZhdWx0ZWQs IGFuZCB0aGV5IHNwZWNpZmllZCBhIHJlbGVhc2UuCi0rCWlmIHRlc3QgLXogIiR2aW5mbyIgJiYg dGVzdCAtbiAiJHJlbGVhc2UiOyB0aGVuCi0rCSAgbWFqb3I9Ci0rCSAgY2FzZSAkdmVyc2lvbl90 eXBlIGluCi0rCSAgZGFyd2luKQotKwkgICAgIyB3ZSBjYW4ndCBjaGVjayBmb3IgIjAuMCIgaW4g YXJjaGl2ZV9jbWRzIGR1ZSB0byBxdW90aW5nCi0rCSAgICAjIHByb2JsZW1zLCBzbyB3ZSByZXNl dCBpdCBjb21wbGV0ZWx5Ci0rCSAgICB2ZXJzdHJpbmc9Ci0rCSAgICA7OwotKwkgICopCi0rCSAg ICB2ZXJzdHJpbmc9IjAuMCIKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIGlmIHRlc3QgIiRuZWVk X3ZlcnNpb24iID0gbm87IHRoZW4KLSsJICAgIHZlcnN1ZmZpeD0KLSsJICBlbHNlCi0rCSAgICB2 ZXJzdWZmaXg9Ii4wLjAiCi0rCSAgZmkKLSsJZmkKLSsKLSsJIyBSZW1vdmUgdmVyc2lvbiBpbmZv IGZyb20gbmFtZSBpZiB2ZXJzaW9uaW5nIHNob3VsZCBiZSBhdm9pZGVkCi0rCWlmIHRlc3QgIiRh dm9pZF92ZXJzaW9uIiA9IHllcyAmJiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCi0r CSAgbWFqb3I9Ci0rCSAgdmVyc3VmZml4PQotKwkgIHZlcnN0cmluZz0iIgotKwlmaQotKwotKwkj IENoZWNrIHRvIHNlZSBpZiB0aGUgYXJjaGl2ZSB3aWxsIGhhdmUgdW5kZWZpbmVkIHN5bWJvbHMu Ci0rCWlmIHRlc3QgIiRhbGxvd191bmRlZmluZWQiID0geWVzOyB0aGVuCi0rCSAgaWYgdGVzdCAi JGFsbG93X3VuZGVmaW5lZF9mbGFnIiA9IHVuc3VwcG9ydGVkOyB0aGVuCi0rCSAgICBmdW5jX3dh cm5pbmcgInVuZGVmaW5lZCBzeW1ib2xzIG5vdCBhbGxvd2VkIGluICRob3N0IHNoYXJlZCBsaWJy YXJpZXMiCi0rCSAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KLSsJICAgIGJ1aWxkX29sZF9saWJz PXllcwotKwkgIGZpCi0rCWVsc2UKLSsJICAjIERvbid0IGFsbG93IHVuZGVmaW5lZCBzeW1ib2xz LgotKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIkbm9fdW5kZWZpbmVkX2ZsYWciCi0rCWZpCi0r Ci0rICAgICAgZmkKLSsKLSsgICAgICBmdW5jX2dlbmVyYXRlX2Rsc3ltcyAiJGxpYm5hbWUiICIk bGlibmFtZSIgInllcyIKLSsgICAgICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHN5bWZpbGVvYmoi Ci0rICAgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KLSsKLSsgICAgICBp ZiB0ZXN0ICIkb3B0X21vZGUiICE9IHJlbGluazsgdGhlbgotKwkjIFJlbW92ZSBvdXIgb3V0cHV0 cywgYnV0IGRvbid0IHJlbW92ZSBvYmplY3QgZmlsZXMgc2luY2UgdGhleQotKwkjIG1heSBoYXZl IGJlZW4gY3JlYXRlZCB3aGVuIGNvbXBpbGluZyBQSUMgb2JqZWN0cy4KLSsJcmVtb3ZlbGlzdD0K LSsJdGVtcHJlbW92ZWxpc3Q9YCRFQ0hPICIkb3V0cHV0X29iamRpci8qImAKLSsJZm9yIHAgaW4g JHRlbXByZW1vdmVsaXN0OyBkbwotKwkgIGNhc2UgJHAgaW4KLSsJICAgICouJG9iamV4dCB8ICou Z2NubykKLSsJICAgICAgIDs7Ci0rCSAgICAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSB8ICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLiogfCAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9JHtyZWxl YXNlfS4qKQotKwkgICAgICAgaWYgdGVzdCAiWCRwcmVjaW91c19maWxlc19yZWdleCIgIT0gIlgi OyB0aGVuCi0rCQkgaWYgJEVDSE8gIiRwIiB8ICRFR1JFUCAtZSAiJHByZWNpb3VzX2ZpbGVzX3Jl Z2V4IiA+L2Rldi9udWxsIDI+JjEKLSsJCSB0aGVuCi0rCQkgICBjb250aW51ZQotKwkJIGZpCi0r CSAgICAgICBmaQotKwkgICAgICAgZnVuY19hcHBlbmQgcmVtb3ZlbGlzdCAiICRwIgotKwkgICAg ICAgOzsKLSsJICAgICopIDs7Ci0rCSAgZXNhYwotKwlkb25lCi0rCXRlc3QgLW4gIiRyZW1vdmVs aXN0IiAmJiBcCi0rCSAgZnVuY19zaG93X2V2YWwgIiR7Uk19ciBcJHJlbW92ZWxpc3QiCi0rICAg ICAgZmkKLSsKLSsgICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xk IGxpYnJhcmllcy4KLSsgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IGNvbnZlbmllbmNlIDsgdGhlbgotKwlmdW5jX2Fw cGVuZCBvbGRsaWJzICIgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKLSsKLSsJIyBU cmFuc2Zvcm0gLmxvIGZpbGVzIHRvIC5vIGZpbGVzLgotKwlvbGRvYmpzPSIkb2JqcyAiYCRFQ0hP ICIkbGlib2JqcyIgfCAkU1AyTkwgfCAkU0VEICIvXC4ke2xpYmV4dH0kL2Q7ICRsbzJvIiB8ICRO TDJTUGAKLSsgICAgICBmaQotKwotKyAgICAgICMgRWxpbWluYXRlIGFsbCB0ZW1wb3JhcnkgZGly ZWN0b3JpZXMuCi0rICAgICAgI2ZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRvCi0rICAgICAg IwlsaWJfc2VhcmNoX3BhdGg9YCRFQ0hPICIkbGliX3NlYXJjaF9wYXRoICIgfCAkU0VEICJzJSAk cGF0aCAlICVnImAKLSsgICAgICAjCWRlcGxpYnM9YCRFQ0hPICIkZGVwbGlicyAiIHwgJFNFRCAi cyUgLUwkcGF0aCAlICVnImAKLSsgICAgICAjCWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIiRkZXBl bmRlbmN5X2xpYnMgIiB8ICRTRUQgInMlIC1MJHBhdGggJSAlZyJgCi0rICAgICAgI2RvbmUKLSsK LSsgICAgICBpZiB0ZXN0IC1uICIkeHJwYXRoIjsgdGhlbgotKwkjIElmIHRoZSB1c2VyIHNwZWNp ZmllZCBhbnkgcnBhdGggZmxhZ3MsIHRoZW4gYWRkIHRoZW0uCi0rCXRlbXBfeHJwYXRoPQotKwlm b3IgbGliZGlyIGluICR4cnBhdGg7IGRvCi0rCSAgZnVuY19yZXBsYWNlX3N5c3Jvb3QgIiRsaWJk aXIiCi0rCSAgZnVuY19hcHBlbmQgdGVtcF94cnBhdGggIiAtUiRmdW5jX3JlcGxhY2Vfc3lzcm9v dF9yZXN1bHQiCi0rCSAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KLSsJICAqIiAkbGliZGly ICIqKSA7OwotKwkgICopIGZ1bmNfYXBwZW5kIGZpbmFsaXplX3JwYXRoICIgJGxpYmRpciIgOzsK LSsJICBlc2FjCi0rCWRvbmUKLSsJaWYgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgIT0geWVz IHx8IHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsJICBkZXBlbmRlbmN5X2xp YnM9IiR0ZW1wX3hycGF0aCAkZGVwZW5kZW5jeV9saWJzIgotKwlmaQotKyAgICAgIGZpCi0rCi0r ICAgICAgIyBNYWtlIHN1cmUgZGxmaWxlcyBjb250YWlucyBvbmx5IHVuaXF1ZSBmaWxlcyB0aGF0 IHdvbid0IGJlIGRscHJlb3BlbmVkCi0rICAgICAgb2xkX2RsZmlsZXM9IiRkbGZpbGVzIgotKyAg ICAgIGRsZmlsZXM9Ci0rICAgICAgZm9yIGxpYiBpbiAkb2xkX2RsZmlsZXM7IGRvCi0rCWNhc2Ug IiAkZGxwcmVmaWxlcyAkZGxmaWxlcyAiIGluCi0rCSoiICRsaWIgIiopIDs7Ci0rCSopIGZ1bmNf YXBwZW5kIGRsZmlsZXMgIiAkbGliIiA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKwotKyAgICAg ICMgTWFrZSBzdXJlIGRscHJlZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMKLSsgICAg ICBvbGRfZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMiCi0rICAgICAgZGxwcmVmaWxlcz0KLSsgICAg ICBmb3IgbGliIGluICRvbGRfZGxwcmVmaWxlczsgZG8KLSsJY2FzZSAiJGRscHJlZmlsZXMgIiBp bgotKwkqIiAkbGliICIqKSA7OwotKwkqKSBmdW5jX2FwcGVuZCBkbHByZWZpbGVzICIgJGxpYiIg OzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsKLSsgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9v bF9saWJzIiA9IHllczsgdGhlbgotKwlpZiB0ZXN0IC1uICIkcnBhdGgiOyB0aGVuCi0rCSAgY2Fz ZSAkaG9zdCBpbgotKwkgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICot Ki1vczIqIHwgKi0qLWJlb3MqIHwgKi1jZWdjYyogfCAqLSotaGFpa3UqKQotKwkgICAgIyB0aGVz ZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBjIGxpYnJhcnkgKGFzIHN1Y2gpIQotKwkg ICAgOzsKLSsJICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCi0rCSAgICAjIFJo YXBzb2R5IEMgbGlicmFyeSBpcyBpbiB0aGUgU3lzdGVtIGZyYW1ld29yawotKwkgICAgZnVuY19h cHBlbmQgZGVwbGlicyAiIFN5c3RlbS5sdGZyYW1ld29yayIKLSsJICAgIDs7Ci0rCSAgKi0qLW5l dGJzZCopCi0rCSAgICAjIERvbid0IGxpbmsgd2l0aCBsaWJjIHVudGlsIHRoZSBhLm91dCBsZC5z byBpcyBmaXhlZC4KLSsJICAgIDs7Ci0rCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwg Ki0qLWRyYWdvbmZseSopCi0rCSAgICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVlIHRvIHVzIGhh dmluZyBsaWJjL2xpYmNfci4KLSsJICAgIDs7Ci0rCSAgKi0qLXNjbzMuMnY1KiB8ICotKi1zY281 djYqKQotKwkgICAgIyBDYXVzZXMgcHJvYmxlbXMgd2l0aCBfX2N0eXBlCi0rCSAgICA7OwotKwkg ICotKi1zeXN2NC4ydXcyKiB8ICotKi1zeXN2NSogfCAqLSotdW5peHdhcmUqIHwgKi0qLU9wZW5V TklYKikKLSsJICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBsaWJjIGluIHRoZSBjb3JyZWN0IHBsYWNl IGZvciB0aHJlYWRzIHRvIHdvcmsKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgICMgQWRkIGxpYmMg dG8gZGVwbGlicyBvbiBhbGwgb3RoZXIgc3lzdGVtcyBpZiBuZWNlc3NhcnkuCi0rCSAgICBpZiB0 ZXN0ICIkYnVpbGRfbGlidG9vbF9uZWVkX2xjIiA9ICJ5ZXMiOyB0aGVuCi0rCSAgICAgIGZ1bmNf YXBwZW5kIGRlcGxpYnMgIiAtbGMiCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICBlc2FjCi0rCWZp Ci0rCi0rCSMgVHJhbnNmb3JtIGRlcGxpYnMgaW50byBvbmx5IGRlcGxpYnMgdGhhdCBjYW4gYmUg bGlua2VkIGluIHNoYXJlZC4KLSsJbmFtZV9zYXZlPSRuYW1lCi0rCWxpYm5hbWVfc2F2ZT0kbGli bmFtZQotKwlyZWxlYXNlX3NhdmU9JHJlbGVhc2UKLSsJdmVyc3VmZml4X3NhdmU9JHZlcnN1ZmZp eAotKwltYWpvcl9zYXZlPSRtYWpvcgotKwkjIEknbSBub3Qgc3VyZSBpZiBJJ20gdHJlYXRpbmcg dGhlIHJlbGVhc2UgY29ycmVjdGx5LiAgSSB0aGluawotKwkjIHJlbGVhc2Ugc2hvdWxkIHNob3cg dXAgaW4gdGhlIC1sIChpZSAtbGdtcDUpIHNvIHdlIGRvbid0IHdhbnQgdG8KLSsJIyBhZGQgaXQg aW4gdHdpY2UuICBJcyB0aGF0IGNvcnJlY3Q/Ci0rCXJlbGVhc2U9IiIKLSsJdmVyc3VmZml4PSIi Ci0rCW1ham9yPSIiCi0rCW5ld2RlcGxpYnM9Ci0rCWRyb3BwZWRkZXBzPW5vCi0rCWNhc2UgJGRl cGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rCXBhc3NfYWxsKQotKwkgICMgRG9uJ3QgY2hlY2sgZm9y IHNoYXJlZC9zdGF0aWMuICBFdmVyeXRoaW5nIHdvcmtzLgotKwkgICMgVGhpcyBtaWdodCBiZSBh IGxpdHRsZSBuYWl2ZS4gIFdlIG1pZ2h0IHdhbnQgdG8gY2hlY2sKLSsJICAjIHdoZXRoZXIgdGhl IGxpYnJhcnkgZXhpc3RzIG9yIG5vdC4gIEJ1dCB0aGlzIGlzIG9uCi0rCSAgIyBvc2YzICYgb3Nm NCBhbmQgSSdtIG5vdCByZWFsbHkgc3VyZS4uLiBKdXN0Ci0rCSAgIyBpbXBsZW1lbnRpbmcgd2hh dCB3YXMgYWxyZWFkeSB0aGUgYmVoYXZpb3IuCi0rCSAgbmV3ZGVwbGlicz0kZGVwbGlicwotKwkg IDs7Ci0rCXRlc3RfY29tcGlsZSkKLSsJICAjIFRoaXMgY29kZSBzdHJlc3NlcyB0aGUgImxpYnJh cmllcyBhcmUgcHJvZ3JhbXMiIHBhcmFkaWdtIHRvIGl0cwotKwkgICMgbGltaXRzLiBNYXliZSBl dmVuIGJyZWFrcyBpdC4gIFdlIGNvbXBpbGUgYSBwcm9ncmFtLCBsaW5raW5nIGl0Ci0rCSAgIyBh Z2FpbnN0IHRoZSBkZXBsaWJzIGFzIGEgcHJveHkgZm9yIHRoZSBsaWJyYXJ5LiAgVGhlbiB3ZSBj YW4gY2hlY2sKLSsJICAjIHdoZXRoZXIgdGhleSBsaW5rZWQgaW4gc3RhdGljYWxseSBvciBkeW5h bWljYWxseSB3aXRoIGxkZC4KLSsJICAkb3B0X2RyeV9ydW4gfHwgJFJNIGNvbmZ0ZXN0LmMKLSsJ ICBjYXQgPiBjb25mdGVzdC5jIDw8RU9GCi0rCSAgaW50IG1haW4oKSB7IHJldHVybiAwOyB9Ci0r RU9GCi0rCSAgJG9wdF9kcnlfcnVuIHx8ICRSTSBjb25mdGVzdAotKwkgIGlmICRMVENDICRMVENG TEFHUyAtbyBjb25mdGVzdCBjb25mdGVzdC5jICRkZXBsaWJzOyB0aGVuCi0rCSAgICBsZGRfb3V0 cHV0PWBsZGQgY29uZnRlc3RgCi0rCSAgICBmb3IgaSBpbiAkZGVwbGliczsgZG8KLSsJICAgICAg Y2FzZSAkaSBpbgotKwkgICAgICAtbCopCi0rCQlmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGkiCi0r CQluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJCWlmIHRlc3QgIlgkYWxsb3dfbGlidG9v bF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJCSAgY2FzZSAi ICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCi0rCQkgICoiICRpICIqKQotKwkJICAgIGZ1bmNfYXBw ZW5kIG5ld2RlcGxpYnMgIiAkaSIKLSsJCSAgICBpPSIiCi0rCQkgICAgOzsKLSsJCSAgZXNhYwot KwkJZmkKLSsJCWlmIHRlc3QgLW4gIiRpIiA7IHRoZW4KLSsJCSAgbGlibmFtZT1gZXZhbCAiXFwk RUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCi0rCQkgIGRlcGxpYl9tYXRjaGVzPWBldmFsICJcXCRF Q0hPIFwiJGxpYnJhcnlfbmFtZXNfc3BlY1wiImAKLSsJCSAgc2V0IGR1bW15ICRkZXBsaWJfbWF0 Y2hlczsgc2hpZnQKLSsJCSAgZGVwbGliX21hdGNoPSQxCi0rCQkgIGlmIHRlc3QgYGV4cHIgIiRs ZGRfb3V0cHV0IiA6ICIuKiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KLSsJCSAgICBmdW5j X2FwcGVuZCBuZXdkZXBsaWJzICIgJGkiCi0rCQkgIGVsc2UKLSsJCSAgICBkcm9wcGVkZGVwcz15 ZXMKLSsJCSAgICBlY2hvCi0rCQkgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtl ciBkb2VzIG5vdCBhY2NlcHQgbmVlZGVkIGxpYnJhcnkgJGkuIgotKwkJICAgIGVjaG8gIioqKiBJ IGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBs aW5rIGluIHdoZW4iCi0rCQkgICAgZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4g IEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKLSsJCSAgICBlY2hvICIqKiog c2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIEkgYmVsaWV2ZSB5b3UgZG8gbm90 IGhhdmUiCi0rCQkgICAgZWNobyAiKioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVh bCB0aGF0IHRoZSBsaW5rZXIgZGlkIG5vdCB1c2UgaXQgZm9yIgotKwkJICAgIGVjaG8gIioqKiBp dHMgZHluYW1pYyBkZXBlbmRlbmN5IGxpc3QgdGhhdCBwcm9ncmFtcyBnZXQgcmVzb2x2ZWQgd2l0 aCBhdCBydW50aW1lLiIKLSsJCSAgZmkKLSsJCWZpCi0rCQk7OwotKwkgICAgICAqKQotKwkJZnVu Y19hcHBlbmQgbmV3ZGVwbGlicyAiICRpIgotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9u ZQotKwkgIGVsc2UKLSsJICAgICMgRXJyb3Igb2NjdXJyZWQgaW4gdGhlIGZpcnN0IGNvbXBpbGUu ICBMZXQncyB0cnkgdG8gc2FsdmFnZQotKwkgICAgIyB0aGUgc2l0dWF0aW9uOiBDb21waWxlIGEg c2VwYXJhdGUgcHJvZ3JhbSBmb3IgZWFjaCBsaWJyYXJ5LgotKwkgICAgZm9yIGkgaW4gJGRlcGxp YnM7IGRvCi0rCSAgICAgIGNhc2UgJGkgaW4KLSsJICAgICAgLWwqKQotKwkJZnVuY19zdHJpcG5h bWUgLWwgJycgIiRpIgotKwkJbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCQkkb3B0X2Ry eV9ydW4gfHwgJFJNIGNvbmZ0ZXN0Ci0rCQlpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRlc3Qg Y29uZnRlc3QuYyAkaTsgdGhlbgotKwkJICBsZGRfb3V0cHV0PWBsZGQgY29uZnRlc3RgCi0rCQkg IGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJY eWVzIiA7IHRoZW4KLSsJCSAgICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KLSsJCSAg ICAqIiAkaSAiKikKLSsJCSAgICAgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkaSIKLSsJCSAg ICAgIGk9IiIKLSsJCSAgICAgIDs7Ci0rCQkgICAgZXNhYwotKwkJICBmaQotKwkJICBpZiB0ZXN0 IC1uICIkaSIgOyB0aGVuCi0rCQkgICAgbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1l X3NwZWNcIiJgCi0rCQkgICAgZGVwbGliX21hdGNoZXM9YGV2YWwgIlxcJEVDSE8gXCIkbGlicmFy eV9uYW1lc19zcGVjXCIiYAotKwkJICAgIHNldCBkdW1teSAkZGVwbGliX21hdGNoZXM7IHNoaWZ0 Ci0rCQkgICAgZGVwbGliX21hdGNoPSQxCi0rCQkgICAgaWYgdGVzdCBgZXhwciAiJGxkZF9vdXRw dXQiIDogIi4qJGRlcGxpYl9tYXRjaCJgIC1uZSAwIDsgdGhlbgotKwkJICAgICAgZnVuY19hcHBl bmQgbmV3ZGVwbGlicyAiICRpIgotKwkJICAgIGVsc2UKLSsJCSAgICAgIGRyb3BwZWRkZXBzPXll cwotKwkJICAgICAgZWNobwotKwkJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxp bmtlciBkb2VzIG5vdCBhY2NlcHQgbmVlZGVkIGxpYnJhcnkgJGkuIgotKwkJICAgICAgZWNobyAi KioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNh bGx5IGxpbmsgaW4gd2hlbiIKLSsJCSAgICAgIGVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxp YnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0rCQkgICAgICBl Y2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3Qg YXBwZWFyIHRvIGhhdmUiCi0rCQkgICAgICBlY2hvICIqKiogYmVjYXVzZSBhIHRlc3RfY29tcGls ZSBkaWQgcmV2ZWFsIHRoYXQgdGhlIGxpbmtlciBkaWQgbm90IHVzZSB0aGlzIG9uZSIKLSsJCSAg ICAgIGVjaG8gIioqKiBhcyBhIGR5bmFtaWMgZGVwZW5kZW5jeSB0aGF0IHByb2dyYW1zIGNhbiBn ZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKLSsJCSAgICBmaQotKwkJICBmaQotKwkJZWxz ZQotKwkJICBkcm9wcGVkZGVwcz15ZXMKLSsJCSAgZWNobwotKwkJICAkRUNITyAiKioqIFdhcm5p bmchICBMaWJyYXJ5ICRpIGlzIG5lZWRlZCBieSB0aGlzIGxpYnJhcnkgYnV0IEkgd2FzIG5vdCBh YmxlIHRvIgotKwkJICBlY2hvICIqKiogbWFrZSBpdCBsaW5rIGluISAgWW91IHdpbGwgcHJvYmFi bHkgbmVlZCB0byBpbnN0YWxsIGl0IG9yIHNvbWUiCi0rCQkgIGVjaG8gIioqKiBsaWJyYXJ5IHRo YXQgaXQgZGVwZW5kcyBvbiBiZWZvcmUgdGhpcyBsaWJyYXJ5IHdpbGwgYmUgZnVsbHkiCi0rCQkg IGVjaG8gIioqKiBmdW5jdGlvbmFsLiAgSW5zdGFsbGluZyBpdCBiZWZvcmUgY29udGludWluZyB3 b3VsZCBiZSBldmVuIGJldHRlci4iCi0rCQlmaQotKwkJOzsKLSsJICAgICAgKikKLSsJCWZ1bmNf YXBwZW5kIG5ld2RlcGxpYnMgIiAkaSIKLSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUK LSsJICBmaQotKwkgIDs7Ci0rCWZpbGVfbWFnaWMqKQotKwkgIHNldCBkdW1teSAkZGVwbGlic19j aGVja19tZXRob2Q7IHNoaWZ0Ci0rCSAgZmlsZV9tYWdpY19yZWdleD1gZXhwciAiJGRlcGxpYnNf Y2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAotKwkgIGZvciBhX2RlcGxpYiBpbiAkZGVwbGli czsgZG8KLSsJICAgIGNhc2UgJGFfZGVwbGliIGluCi0rCSAgICAtbCopCi0rCSAgICAgIGZ1bmNf c3RyaXBuYW1lIC1sICcnICIkYV9kZXBsaWIiCi0rCSAgICAgIG5hbWU9JGZ1bmNfc3RyaXBuYW1l X3Jlc3VsdAotKwkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRp Y19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCi0rCQljYXNlICIgJHByZWRlcHMgJHBvc3RkZXBz ICIgaW4KLSsJCSoiICRhX2RlcGxpYiAiKikKLSsJCSAgZnVuY19hcHBlbmQgbmV3ZGVwbGlicyAi ICRhX2RlcGxpYiIKLSsJCSAgYV9kZXBsaWI9IiIKLSsJCSAgOzsKLSsJCWVzYWMKLSsJICAgICAg ZmkKLSsJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KLSsJCWxpYm5hbWU9YGV2 YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAotKwkJaWYgdGVzdCAtbiAiJGZpbGVfbWFn aWNfZ2xvYiI7IHRoZW4KLSsJCSAgbGlibmFtZWdsb2I9YGZ1bmNfZWNob19hbGwgIiRsaWJuYW1l IiB8ICRTRUQgLWUgJGZpbGVfbWFnaWNfZ2xvYmAKLSsJCWVsc2UKLSsJCSAgbGlibmFtZWdsb2I9 JGxpYm5hbWUKLSsJCWZpCi0rCQl0ZXN0ICIkd2FudF9ub2Nhc2VnbG9iIiA9IHllcyAmJiBub2Nh c2VnbG9iPWBzaG9wdCAtcCBub2Nhc2VnbG9iYAotKwkJZm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0 aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGg7IGRvCi0rCQkgIGlmIHRl c3QgIiR3YW50X25vY2FzZWdsb2IiID0geWVzOyB0aGVuCi0rCQkgICAgc2hvcHQgLXMgbm9jYXNl Z2xvYgotKwkJICAgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZWdsb2JbLi1dKiAyPi9k ZXYvbnVsbGAKLSsJCSAgICAkbm9jYXNlZ2xvYgotKwkJICBlbHNlCi0rCQkgICAgcG90ZW50aWFs X2xpYnM9YGxzICRpLyRsaWJuYW1lZ2xvYlsuLV0qIDI+L2Rldi9udWxsYAotKwkJICBmaQotKwkJ ICBmb3IgcG90ZW50X2xpYiBpbiAkcG90ZW50aWFsX2xpYnM7IGRvCi0rCQkgICAgICAjIEZvbGxv dyBzb2Z0IGxpbmtzLgotKwkJICAgICAgaWYgbHMgLWxMZCAiJHBvdGVudF9saWIiIDI+L2Rldi9u dWxsIHwKLSsJCQkgJEdSRVAgIiAtPiAiID4vZGV2L251bGw7IHRoZW4KLSsJCQljb250aW51ZQot KwkJICAgICAgZmkKLSsJCSAgICAgICMgVGhlIHN0YXRlbWVudCBhYm92ZSB0cmllcyB0byBhdm9p ZCBlbnRlcmluZyBhbgotKwkJICAgICAgIyBlbmRsZXNzIGxvb3AgYmVsb3csIGluIGNhc2Ugb2Yg Y3ljbGljIGxpbmtzLgotKwkJICAgICAgIyBXZSBtaWdodCBzdGlsbCBlbnRlciBhbiBlbmRsZXNz IGxvb3AsIHNpbmNlIGEgbGluawotKwkJICAgICAgIyBsb29wIGNhbiBiZSBjbG9zZWQgd2hpbGUg d2UgZm9sbG93IGxpbmtzLAotKwkJICAgICAgIyBidXQgc28gd2hhdD8KLSsJCSAgICAgIHBvdGxp Yj0iJHBvdGVudF9saWIiCi0rCQkgICAgICB3aGlsZSB0ZXN0IC1oICIkcG90bGliIiAyPi9kZXYv bnVsbDsgZG8KLSsJCQlwb3RsaWJsaW5rPWBscyAtbGQgJHBvdGxpYiB8ICR7U0VEfSAncy8uKiAt PiAvLydgCi0rCQkJY2FzZSAkcG90bGlibGluayBpbgotKwkJCVtcXC9dKiB8IFtBLVphLXpdOltc XC9dKikgcG90bGliPSIkcG90bGlibGluayI7OwotKwkJCSopIHBvdGxpYj1gJEVDSE8gIiRwb3Rs aWIiIHwgJFNFRCAncyxbXi9dKiQsLCdgIiRwb3RsaWJsaW5rIjs7Ci0rCQkJZXNhYwotKwkJICAg ICAgZG9uZQotKwkJICAgICAgaWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCJcJHBvdGxpYlwiIDI+ L2Rldi9udWxsIHwKLSsJCQkgJFNFRCAtZSAxMHEgfAotKwkJCSAkRUdSRVAgIiRmaWxlX21hZ2lj X3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkJCWZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAk YV9kZXBsaWIiCi0rCQkJYV9kZXBsaWI9IiIKLSsJCQlicmVhayAyCi0rCQkgICAgICBmaQotKwkJ ICBkb25lCi0rCQlkb25lCi0rCSAgICAgIGZpCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxp YiIgOyB0aGVuCi0rCQlkcm9wcGVkZGVwcz15ZXMKLSsJCWVjaG8KLSsJCSRFQ0hPICIqKiogV2Fy bmluZzogbGlua2VyIHBhdGggZG9lcyBub3QgaGF2ZSByZWFsIGZpbGUgZm9yIGxpYnJhcnkgJGFf ZGVwbGliLiIKLSsJCWVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0 IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCQllY2hvICIqKiogeW91IGxp bmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBh IgotKwkJZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3Ug ZG8gbm90IGFwcGVhciB0byBoYXZlIgotKwkJZWNobyAiKioqIGJlY2F1c2UgSSBkaWQgY2hlY2sg dGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBzdGFydGluZyIKLSsJCWlmIHRlc3Qg LXogIiRwb3RsaWIiIDsgdGhlbgotKwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYnV0IG5v IGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciBmaWxlIG1hZ2ljIHRlc3QpIgotKwkJZWxz ZQotKwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0 ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIKLSsJCSAgJEVDSE8gIioqKiB1c2luZyBhIGZp bGUgbWFnaWMuIExhc3QgZmlsZSBjaGVja2VkOiAkcG90bGliIgotKwkJZmkKLSsJICAgICAgZmkK LSsJICAgICAgOzsKLSsJICAgICopCi0rCSAgICAgICMgQWRkIGEgLUwgYXJndW1lbnQuCi0rCSAg ICAgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkYV9kZXBsaWIiCi0rCSAgICAgIDs7Ci0rCSAg ICBlc2FjCi0rCSAgZG9uZSAjIEdvbmUgdGhyb3VnaCBhbGwgZGVwbGlicy4KLSsJICA7OwotKwlt YXRjaF9wYXR0ZXJuKikKLSsJICBzZXQgZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kOyBzaGlm dAotKwkgIG1hdGNoX3BhdHRlcm5fcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIg OiAiJDEgXCguKlwpImAKLSsJICBmb3IgYV9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCSAgICBj YXNlICRhX2RlcGxpYiBpbgotKwkgICAgLWwqKQotKwkgICAgICBmdW5jX3N0cmlwbmFtZSAtbCAn JyAiJGFfZGVwbGliIgotKwkgICAgICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAg ICAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0g Ilh5ZXMiIDsgdGhlbgotKwkJY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCi0rCQkqIiAk YV9kZXBsaWIgIiopCi0rCQkgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkYV9kZXBsaWIiCi0r CQkgIGFfZGVwbGliPSIiCi0rCQkgIDs7Ci0rCQllc2FjCi0rCSAgICAgIGZpCi0rCSAgICAgIGlm IHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCi0rCQlsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwi JGxpYm5hbWVfc3BlY1wiImAKLSsJCWZvciBpIGluICRsaWJfc2VhcmNoX3BhdGggJHN5c19saWJf c2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoOyBkbwotKwkJICBwb3RlbnRpYWxfbGlicz1g bHMgJGkvJGxpYm5hbWVbLi1dKiAyPi9kZXYvbnVsbGAKLSsJCSAgZm9yIHBvdGVudF9saWIgaW4g JHBvdGVudGlhbF9saWJzOyBkbwotKwkJICAgIHBvdGxpYj0iJHBvdGVudF9saWIiICMgc2VlIHN5 bWxpbmstY2hlY2sgYWJvdmUgaW4gZmlsZV9tYWdpYyB0ZXN0Ci0rCQkgICAgaWYgZXZhbCAiXCRF Q0hPIFwiJHBvdGVudF9saWJcIiIgMj4vZGV2L251bGwgfCAkU0VEIDEwcSB8IFwKLSsJCSAgICAg ICAkRUdSRVAgIiRtYXRjaF9wYXR0ZXJuX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkJICAg ICAgZnVuY19hcHBlbmQgbmV3ZGVwbGlicyAiICRhX2RlcGxpYiIKLSsJCSAgICAgIGFfZGVwbGli PSIiCi0rCQkgICAgICBicmVhayAyCi0rCQkgICAgZmkKLSsJCSAgZG9uZQotKwkJZG9uZQotKwkg ICAgICBmaQotKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgotKwkJZHJvcHBl ZGRlcHM9eWVzCi0rCQllY2hvCi0rCQkkRUNITyAiKioqIFdhcm5pbmc6IGxpbmtlciBwYXRoIGRv ZXMgbm90IGhhdmUgcmVhbCBmaWxlIGZvciBsaWJyYXJ5ICRhX2RlcGxpYi4iCi0rCQllY2hvICIq KiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2Fs bHkgbGluayBpbiB3aGVuIgotKwkJZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4g IEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKLSsJCWVjaG8gIioqKiBzaGFy ZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2 ZSIKLSsJCWVjaG8gIioqKiBiZWNhdXNlIEkgZGlkIGNoZWNrIHRoZSBsaW5rZXIgcGF0aCBsb29r aW5nIGZvciBhIGZpbGUgc3RhcnRpbmciCi0rCQlpZiB0ZXN0IC16ICIkcG90bGliIiA7IHRoZW4K LSsJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGJ1dCBubyBjYW5kaWRhdGVzIHdlcmUgZm91 bmQuICguLi5mb3IgcmVnZXggcGF0dGVybiB0ZXN0KSIKLSsJCWVsc2UKLSsJCSAgJEVDSE8gIioq KiB3aXRoICRsaWJuYW1lIGFuZCBub25lIG9mIHRoZSBjYW5kaWRhdGVzIHBhc3NlZCBhIGZpbGUg Zm9ybWF0IHRlc3QiCi0rCQkgICRFQ0hPICIqKiogdXNpbmcgYSByZWdleCBwYXR0ZXJuLiBMYXN0 IGZpbGUgY2hlY2tlZDogJHBvdGxpYiIKLSsJCWZpCi0rCSAgICAgIGZpCi0rCSAgICAgIDs7Ci0r CSAgICAqKQotKwkgICAgICAjIEFkZCBhIC1MIGFyZ3VtZW50LgotKwkgICAgICBmdW5jX2FwcGVu ZCBuZXdkZXBsaWJzICIgJGFfZGVwbGliIgotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgIGRv bmUgIyBHb25lIHRocm91Z2ggYWxsIGRlcGxpYnMuCi0rCSAgOzsKLSsJbm9uZSB8IHVua25vd24g fCAqKQotKwkgIG5ld2RlcGxpYnM9IiIKLSsJICB0bXBfZGVwbGlicz1gJEVDSE8gIiAkZGVwbGli cyIgfCAkU0VEICdzLyAtbGMkLy87IHMvIC1bTFJdW14gXSovL2cnYAotKwkgIGlmIHRlc3QgIlgk YWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4K LSsJICAgIGZvciBpIGluICRwcmVkZXBzICRwb3N0ZGVwcyA7IGRvCi0rCSAgICAgICMgY2FuJ3Qg dXNlIFhzZWQgYmVsb3csIGJlY2F1c2UgJGkgbWlnaHQgY29udGFpbiAnLycKLSsJICAgICAgdG1w X2RlcGxpYnM9YCRFQ0hPICIgJHRtcF9kZXBsaWJzIiB8ICRTRUQgInMsJGksLCJgCi0rCSAgICBk b25lCi0rCSAgZmkKLSsJICBjYXNlICR0bXBfZGVwbGlicyBpbgotKwkgICpbIVwJXCBdKikKLSsJ ICAgIGVjaG8KLSsJICAgIGlmIHRlc3QgIlgkZGVwbGlic19jaGVja19tZXRob2QiID0gIlhub25l IjsgdGhlbgotKwkgICAgICBlY2hvICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRl bmNpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBwbGF0Zm9ybS4iCi0rCSAgICBlbHNlCi0r CSAgICAgIGVjaG8gIioqKiBXYXJuaW5nOiBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUg bm90IGtub3duIHRvIGJlIHN1cHBvcnRlZC4iCi0rCSAgICBmaQotKwkgICAgZWNobyAiKioqIEFs bCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgYmVpbmcgZHJvcHBlZC4i Ci0rCSAgICBkcm9wcGVkZGVwcz15ZXMKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVz YWMKLSsJdmVyc3VmZml4PSR2ZXJzdWZmaXhfc2F2ZQotKwltYWpvcj0kbWFqb3Jfc2F2ZQotKwly ZWxlYXNlPSRyZWxlYXNlX3NhdmUKLSsJbGlibmFtZT0kbGlibmFtZV9zYXZlCi0rCW5hbWU9JG5h bWVfc2F2ZQotKwotKwljYXNlICRob3N0IGluCi0rCSotKi1yaGFwc29keSogfCAqLSotZGFyd2lu MS5bMDEyXSkKLSsJICAjIE9uIFJoYXBzb2R5IHJlcGxhY2UgdGhlIEMgbGlicmFyeSB3aXRoIHRo ZSBTeXN0ZW0gZnJhbWV3b3JrCi0rCSAgbmV3ZGVwbGlicz1gJEVDSE8gIiAkbmV3ZGVwbGlicyIg fCAkU0VEICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydgCi0rCSAgOzsKLSsJZXNhYwot KwotKwlpZiB0ZXN0ICIkZHJvcHBlZGRlcHMiID0geWVzOyB0aGVuCi0rCSAgaWYgdGVzdCAiJG1v ZHVsZSIgPSB5ZXM7IHRoZW4KLSsJICAgIGVjaG8KLSsJICAgIGVjaG8gIioqKiBXYXJuaW5nOiBs aWJ0b29sIGNvdWxkIG5vdCBzYXRpc2Z5IGFsbCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IgotKwkg ICAgJEVDSE8gIioqKiBkZXBlbmRlbmNpZXMgb2YgbW9kdWxlICRsaWJuYW1lLiAgVGhlcmVmb3Jl LCBsaWJ0b29sIHdpbGwgY3JlYXRlIgotKwkgICAgZWNobyAiKioqIGEgc3RhdGljIG1vZHVsZSwg dGhhdCBzaG91bGQgd29yayBhcyBsb25nIGFzIHRoZSBkbG9wZW5pbmciCi0rCSAgICBlY2hvICIq KiogYXBwbGljYXRpb24gaXMgbGlua2VkIHdpdGggdGhlIC1kbG9wZW4gZmxhZy4iCi0rCSAgICBp ZiB0ZXN0IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgotKwkgICAgICBlY2hvCi0rCSAg ICAgIGVjaG8gIioqKiBIb3dldmVyLCB0aGlzIHdvdWxkIG9ubHkgd29yayBpZiBsaWJ0b29sIHdh cyBhYmxlIHRvIGV4dHJhY3Qgc3ltYm9sIgotKwkgICAgICBlY2hvICIqKiogbGlzdHMgZnJvbSBh IHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgot KwkgICAgICBlY2hvICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1 bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4iCi0rCSAgICAgIGVjaG8gIioqKiBcYG5tJyBmcm9tIEdO VSBiaW51dGlscyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5IGhlbHAuIgotKwkgICAgZmkKLSsJICAg IGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSBubzsgdGhlbgotKwkgICAgICBvbGRsaWJzPSIk b3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgotKwkgICAgICBidWlsZF9saWJ0b29sX2xp YnM9bW9kdWxlCi0rCSAgICAgIGJ1aWxkX29sZF9saWJzPXllcwotKwkgICAgZWxzZQotKwkgICAg ICBidWlsZF9saWJ0b29sX2xpYnM9bm8KLSsJICAgIGZpCi0rCSAgZWxzZQotKwkgICAgZWNobyAi KioqIFRoZSBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyB0aGF0IGhhdmUgYmVlbiBkcm9wcGVk IGhlcmUgd2lsbCBiZSIKLSsJICAgIGVjaG8gIioqKiBhdXRvbWF0aWNhbGx5IGFkZGVkIHdoZW5l dmVyIGEgcHJvZ3JhbSBpcyBsaW5rZWQgd2l0aCB0aGlzIGxpYnJhcnkiCi0rCSAgICBlY2hvICIq Kiogb3IgaXMgZGVjbGFyZWQgdG8gLWRsb3BlbiBpdC4iCi0rCi0rCSAgICBpZiB0ZXN0ICIkYWxs b3dfdW5kZWZpbmVkIiA9IG5vOyB0aGVuCi0rCSAgICAgIGVjaG8KLSsJICAgICAgZWNobyAiKioq IFNpbmNlIHRoaXMgbGlicmFyeSBtdXN0IG5vdCBjb250YWluIHVuZGVmaW5lZCBzeW1ib2xzLCIK LSsJICAgICAgZWNobyAiKioqIGJlY2F1c2UgZWl0aGVyIHRoZSBwbGF0Zm9ybSBkb2VzIG5vdCBz dXBwb3J0IHRoZW0gb3IiCi0rCSAgICAgIGVjaG8gIioqKiBpdCB3YXMgZXhwbGljaXRseSByZXF1 ZXN0ZWQgd2l0aCAtbm8tdW5kZWZpbmVkLCIKLSsJICAgICAgZWNobyAiKioqIGxpYnRvb2wgd2ls bCBvbmx5IGNyZWF0ZSBhIHN0YXRpYyB2ZXJzaW9uIG9mIGl0LiIKLSsJICAgICAgaWYgdGVzdCAi JGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCi0rCQlvbGRsaWJzPSIkb3V0cHV0X29iamRpci8k bGlibmFtZS4kbGliZXh0IgotKwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQotKwkJYnVpbGRf b2xkX2xpYnM9eWVzCi0rCSAgICAgIGVsc2UKLSsJCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwkg ICAgICBmaQotKwkgICAgZmkKLSsJICBmaQotKwlmaQotKwkjIERvbmUgY2hlY2tpbmcgZGVwbGli cyEKLSsJZGVwbGlicz0kbmV3ZGVwbGlicwotKyAgICAgIGZpCi0rICAgICAgIyBUaW1lIHRvIGNo YW5nZSBhbGwgb3VyICJmb28ubHRmcmFtZXdvcmsiIHN0dWZmIGJhY2sgdG8gIi1mcmFtZXdvcmsg Zm9vIgotKyAgICAgIGNhc2UgJGhvc3QgaW4KLSsJKi0qLWRhcndpbiopCi0rCSAgbmV3ZGVwbGli cz1gJEVDSE8gIiAkbmV3ZGVwbGlicyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3Jr JSAtZnJhbWV3b3JrIFwxJWcnYAotKwkgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNI TyAiICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0 ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAotKwkgIGRlcGxpYnM9YCRFQ0hPICIgJGRlcGxp YnMiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AK LSsJICA7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICAjIG1vdmUgbGlicmFyeSBzZWFyY2ggcGF0 aHMgdGhhdCBjb2luY2lkZSB3aXRoIHBhdGhzIHRvIG5vdCB5ZXQKLSsgICAgICAjIGluc3RhbGxl ZCBsaWJyYXJpZXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlicmFyeSBzZWFyY2ggbGlzdAot KyAgICAgIG5ld19saWJzPQotKyAgICAgIGZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRvCi0r CWNhc2UgIiAkbmV3X2xpYnMgIiBpbgotKwkqIiAtTCRwYXRoLyRvYmpkaXIgIiopIDs7Ci0rCSop Ci0rCSAgY2FzZSAiICRkZXBsaWJzICIgaW4KLSsJICAqIiAtTCRwYXRoLyRvYmpkaXIgIiopCi0r CSAgICBmdW5jX2FwcGVuZCBuZXdfbGlicyAiIC1MJHBhdGgvJG9iamRpciIgOzsKLSsJICBlc2Fj Ci0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsgICAgICBmb3IgZGVwbGliIGluICRkZXBs aWJzOyBkbwotKwljYXNlICRkZXBsaWIgaW4KLSsJLUwqKQotKwkgIGNhc2UgIiAkbmV3X2xpYnMg IiBpbgotKwkgICoiICRkZXBsaWIgIiopIDs7Ci0rCSAgKikgZnVuY19hcHBlbmQgbmV3X2xpYnMg IiAkZGVwbGliIiA7OwotKwkgIGVzYWMKLSsJICA7OwotKwkqKSBmdW5jX2FwcGVuZCBuZXdfbGli cyAiICRkZXBsaWIiIDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rICAgICAgZGVwbGlicz0iJG5l d19saWJzIgotKwotKyAgICAgICMgQWxsIHRoZSBsaWJyYXJ5LXNwZWNpZmljIHZhcmlhYmxlcyAo aW5zdGFsbF9saWJkaXIgaXMgc2V0IGFib3ZlKS4KLSsgICAgICBsaWJyYXJ5X25hbWVzPQotKyAg ICAgIG9sZF9saWJyYXJ5PQotKyAgICAgIGRsbmFtZT0KLSsKLSsgICAgICAjIFRlc3QgYWdhaW4s IHdlIG1heSBoYXZlIGRlY2lkZWQgbm90IHRvIGJ1aWxkIGl0IGFueSBtb3JlCi0rICAgICAgaWYg dGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KLSsJaWYgdGVzdCAiJGhhcmRj b2RlX2ludG9fbGlicyIgPSB5ZXM7IHRoZW4KLSsJICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBh dGhzCi0rCSAgaGFyZGNvZGVfbGliZGlycz0KLSsJICBkZXBfcnBhdGg9Ci0rCSAgcnBhdGg9IiRm aW5hbGl6ZV9ycGF0aCIKLSsJICB0ZXN0ICIkb3B0X21vZGUiICE9IHJlbGluayAmJiBycGF0aD0i JGNvbXBpbGVfcnBhdGgkcnBhdGgiCi0rCSAgZm9yIGxpYmRpciBpbiAkcnBhdGg7IGRvCi0rCSAg ICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KLSsJICAgICAg aWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCi0rCQlmdW5jX3Jl cGxhY2Vfc3lzcm9vdCAiJGxpYmRpciIKLSsJCWxpYmRpcj0kZnVuY19yZXBsYWNlX3N5c3Jvb3Rf cmVzdWx0Ci0rCQlpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KLSsJCSAgaGFy ZGNvZGVfbGliZGlycz0iJGxpYmRpciIKLSsJCWVsc2UKLSsJCSAgIyBKdXN0IGFjY3VtdWxhdGUg dGhlIHVuaXF1ZSBsaWJkaXJzLgotKwkJICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y JGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgotKwkJICAqIiRo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y IiopCi0rCQkgICAgOzsKLSsJCSAgKikKLSsJCSAgICBmdW5jX2FwcGVuZCBoYXJkY29kZV9saWJk aXJzICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCi0rCQkgICAgOzsKLSsJCSAg ZXNhYwotKwkJZmkKLSsJICAgICAgZWxzZQotKwkJZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNcIgotKwkJZnVuY19hcHBlbmQgZGVwX3JwYXRoICIgJGZsYWciCi0rCSAgICAg IGZpCi0rCSAgICBlbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KLSsJICAgICAgY2Fz ZSAiJHBlcm1fcnBhdGggIiBpbgotKwkgICAgICAqIiAkbGliZGlyICIqKSA7OwotKwkgICAgICAq KSBmdW5jX2FwcGVkIHBlcm1fcnBhdGggIiAkbGliZGlyIiA7OwotKwkgICAgICBlc2FjCi0rCSAg ICBmaQotKwkgIGRvbmUKLSsJICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGlu dG8gdGhlIHJwYXRoLgotKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y IiAmJgotKwkgICAgIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgotKwkgICAgbGli ZGlyPSIkaGFyZGNvZGVfbGliZGlycyIKLSsJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX2xkIjsgdGhlbgotKwkgICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX2xkXCIKLSsJICAgIGVsc2UKLSsJICAgICAgZXZhbCBkZXBfcnBh dGg9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCi0rCSAgICBmaQotKwkgIGZpCi0rCSAg aWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkcGVybV9ycGF0aCI7IHRoZW4K LSsJICAgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCi0rCSAgICBycGF0aD0KLSsJ ICAgIGZvciBkaXIgaW4gJHBlcm1fcnBhdGg7IGRvCi0rCSAgICAgIGZ1bmNfYXBwZW5kIHJwYXRo ICIkZGlyOiIKLSsJICAgIGRvbmUKLSsJICAgIGV2YWwgIiRydW5wYXRoX3Zhcj0nJHJwYXRoXCQk cnVucGF0aF92YXInOyBleHBvcnQgJHJ1bnBhdGhfdmFyIgotKwkgIGZpCi0rCSAgdGVzdCAtbiAi JGRlcF9ycGF0aCIgJiYgZGVwbGlicz0iJGRlcF9ycGF0aCAkZGVwbGlicyIKLSsJZmkKLSsKLSsJ c2hsaWJwYXRoPSIkZmluYWxpemVfc2hsaWJwYXRoIgotKwl0ZXN0ICIkb3B0X21vZGUiICE9IHJl bGluayAmJiBzaGxpYnBhdGg9IiRjb21waWxlX3NobGlicGF0aCRzaGxpYnBhdGgiCi0rCWlmIHRl c3QgLW4gIiRzaGxpYnBhdGgiOyB0aGVuCi0rCSAgZXZhbCAiJHNobGlicGF0aF92YXI9JyRzaGxp YnBhdGhcJCRzaGxpYnBhdGhfdmFyJzsgZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgotKwlmaQotKwot KwkjIEdldCB0aGUgcmVhbCBhbmQgbGluayBuYW1lcyBvZiB0aGUgbGlicmFyeS4KLSsJZXZhbCBz aGFyZWRfZXh0PVwiJHNocmV4dF9jbWRzXCIKLSsJZXZhbCBsaWJyYXJ5X25hbWVzPVwiJGxpYnJh cnlfbmFtZXNfc3BlY1wiCi0rCXNldCBkdW1teSAkbGlicmFyeV9uYW1lcwotKwlzaGlmdAotKwly ZWFsbmFtZT0iJDEiCi0rCXNoaWZ0Ci0rCi0rCWlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRo ZW4KLSsJICBldmFsIHNvbmFtZT1cIiRzb25hbWVfc3BlY1wiCi0rCWVsc2UKLSsJICBzb25hbWU9 IiRyZWFsbmFtZSIKLSsJZmkKLSsJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRoZW4KLSsJICBkbG5h bWU9JHNvbmFtZQotKwlmaQotKwotKwlsaWI9IiRvdXRwdXRfb2JqZGlyLyRyZWFsbmFtZSIKLSsJ bGlua25hbWVzPQotKwlmb3IgbGluawotKwlkbwotKwkgIGZ1bmNfYXBwZW5kIGxpbmtuYW1lcyAi ICRsaW5rIgotKwlkb25lCi0rCi0rCSMgVXNlIHN0YW5kYXJkIG9iamVjdHMgaWYgdGhleSBhcmUg cGljCi0rCXRlc3QgLXogIiRwaWNfZmxhZyIgJiYgbGlib2Jqcz1gJEVDSE8gIiRsaWJvYmpzIiB8 ICRTUDJOTCB8ICRTRUQgIiRsbzJvIiB8ICROTDJTUGAKLSsJdGVzdCAiWCRsaWJvYmpzIiA9ICJY ICIgJiYgbGlib2Jqcz0KLSsKLSsJZGVsZmlsZXM9Ci0rCWlmIHRlc3QgLW4gIiRleHBvcnRfc3lt Ym9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KLSsJICAkb3B0X2RyeV9y dW4gfHwgY3AgIiRleHBvcnRfc3ltYm9scyIgIiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAi Ci0rCSAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAiCi0rCSAg ZnVuY19hcHBlbmQgZGVsZmlsZXMgIiAkZXhwb3J0X3N5bWJvbHMiCi0rCWZpCi0rCi0rCW9yaWdf ZXhwb3J0X3N5bWJvbHM9Ci0rCWNhc2UgJGhvc3Rfb3MgaW4KLSsJY3lnd2luKiB8IG1pbmd3KiB8 IGNlZ2NjKikKLSsJICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLXogIiRl eHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KLSsJICAgICMgZXhwb3J0aW5nIHVzaW5nIHVzZXIg c3VwcGxpZWQgc3ltZmlsZQotKwkgICAgaWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9s c2AiICE9IHhFWFBPUlRTOyB0aGVuCi0rCSAgICAgICMgYW5kIGl0J3MgTk9UIGFscmVhZHkgYSAu ZGVmIGZpbGUuIE11c3QgZmlndXJlIG91dAotKwkgICAgICAjIHdoaWNoIG9mIHRoZSBnaXZlbiBz eW1ib2xzIGFyZSBkYXRhIHN5bWJvbHMgYW5kIHRhZwotKwkgICAgICAjIHRoZW0gYXMgc3VjaC4g U28sIHRyaWdnZXIgdXNlIG9mIGV4cG9ydF9zeW1ib2xzX2NtZHMuCi0rCSAgICAgICMgZXhwb3J0 X3N5bWJvbHMgZ2V0cyByZWFzc2lnbmVkIGluc2lkZSB0aGUgInByZXBhcmUKLSsJICAgICAgIyB0 aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzIiBpZiBzdGF0ZW1lbnQsIHNvIHRoZQotKwkgICAg ICAjIGluY2x1ZGVfZXhwc3ltcyBsb2dpYyBzdGlsbCB3b3Jrcy4KLSsJICAgICAgb3JpZ19leHBv cnRfc3ltYm9scz0iJGV4cG9ydF9zeW1ib2xzIgotKwkgICAgICBleHBvcnRfc3ltYm9scz0KLSsJ ICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPXllcwotKwkgICAgZmkKLSsJICBmaQotKwkgIDs7 Ci0rCWVzYWMKLSsKLSsJIyBQcmVwYXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKLSsJ aWYgdGVzdCAteiAiJGV4cG9ydF9zeW1ib2xzIjsgdGhlbgotKwkgIGlmIHRlc3QgIiRhbHdheXNf ZXhwb3J0X3N5bWJvbHMiID0geWVzIHx8IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7 IHRoZW4KLSsJICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAk bGlibmFtZS5sYSciCi0rCSAgICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZXhwIgotKwkgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkZXhwb3J0X3N5bWJvbHMKLSsJICAg IGNtZHM9JGV4cG9ydF9zeW1ib2xzX2NtZHMKLSsJICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+ JwotKwkgICAgZm9yIGNtZDEgaW4gJGNtZHM7IGRvCi0rCSAgICAgIElGUz0iJHNhdmVfaWZzIgot KwkgICAgICAjIFRha2UgdGhlIG5vcm1hbCBicmFuY2ggaWYgdGhlIG5tX2ZpbGVfbGlzdF9zcGVj IGJyYW5jaAotKwkgICAgICAjIGRvZXNuJ3Qgd29yayBvciBpZiB0b29sIGNvbnZlcnNpb24gaXMg bm90IG5lZWRlZC4KLSsJICAgICAgY2FzZSAkbm1fZmlsZV9saXN0X3NwZWN+JHRvX3Rvb2xfZmls ZV9jbWQgaW4KLSsJCSp+ZnVuY19jb252ZXJ0X2ZpbGVfbm9vcCB8ICp+ZnVuY19jb252ZXJ0X2Zp bGVfbXN5c190b193MzIgfCB+KikKLSsJCSAgdHJ5X25vcm1hbF9icmFuY2g9eWVzCi0rCQkgIGV2 YWwgY21kPVwiJGNtZDFcIgotKwkJICBmdW5jX2xlbiAiICRjbWQiCi0rCQkgIGxlbj0kZnVuY19s ZW5fcmVzdWx0Ci0rCQkgIDs7Ci0rCQkqKQotKwkJICB0cnlfbm9ybWFsX2JyYW5jaD1ubwotKwkJ ICA7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIGlmIHRlc3QgIiR0cnlfbm9ybWFsX2JyYW5jaCIg PSB5ZXMgXAotKwkJICYmIHsgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iIFwKLSsJCSAg ICAgIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB9Ci0rCSAgICAgIHRoZW4KLSsJCWZ1 bmNfc2hvd19ldmFsICIkY21kIiAnZXhpdCAkPycKLSsJCXNraXBwZWRfZXhwb3J0PWZhbHNlCi0r CSAgICAgIGVsaWYgdGVzdCAtbiAiJG5tX2ZpbGVfbGlzdF9zcGVjIjsgdGhlbgotKwkJZnVuY19i YXNlbmFtZSAiJG91dHB1dCIKLSsJCW91dHB1dF9sYT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKLSsJ CXNhdmVfbGlib2Jqcz0kbGlib2JqcwotKwkJc2F2ZV9vdXRwdXQ9JG91dHB1dAotKwkJb3V0cHV0 PSR7b3V0cHV0X29iamRpcn0vJHtvdXRwdXRfbGF9Lm5tCi0rCQlmdW5jX3RvX3Rvb2xfZmlsZSAi JG91dHB1dCIKLSsJCWxpYm9ianM9JG5tX2ZpbGVfbGlzdF9zcGVjJGZ1bmNfdG9fdG9vbF9maWxl X3Jlc3VsdAotKwkJZnVuY19hcHBlbmQgZGVsZmlsZXMgIiAkb3V0cHV0IgotKwkJZnVuY192ZXJi b3NlICJjcmVhdGluZyAkTk0gaW5wdXQgZmlsZSBsaXN0OiAkb3V0cHV0IgotKwkJZm9yIG9iaiBp biAkc2F2ZV9saWJvYmpzOyBkbwotKwkJICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG9iaiIKLSsJCSAg JEVDSE8gIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiCi0rCQlkb25lID4gIiRvdXRwdXQiCi0r CQlldmFsIGNtZD1cIiRjbWQxXCIKLSsJCWZ1bmNfc2hvd19ldmFsICIkY21kIiAnZXhpdCAkPycK LSsJCW91dHB1dD0kc2F2ZV9vdXRwdXQKLSsJCWxpYm9ianM9JHNhdmVfbGlib2JqcwotKwkJc2tp cHBlZF9leHBvcnQ9ZmFsc2UKLSsJICAgICAgZWxzZQotKwkJIyBUaGUgY29tbWFuZCBsaW5lIGlz IHRvbyBsb25nIHRvIGV4ZWN1dGUgaW4gb25lIHN0ZXAuCi0rCQlmdW5jX3ZlcmJvc2UgInVzaW5n IHJlbG9hZGFibGUgb2JqZWN0IGZpbGUgZm9yIGV4cG9ydCBsaXN0Li4uIgotKwkJc2tpcHBlZF9l eHBvcnQ9OgotKwkJIyBCcmVhayBvdXQgZWFybHksIG90aGVyd2lzZSBza2lwcGVkX2V4cG9ydCBt YXkgYmUKLSsJCSMgc2V0IHRvIGZhbHNlIGJ5IGEgbGF0ZXIgYnV0IHNob3J0ZXIgY21kLgotKwkJ YnJlYWsKLSsJICAgICAgZmkKLSsJICAgIGRvbmUKLSsJICAgIElGUz0iJHNhdmVfaWZzIgotKwkg ICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAmJiB0ZXN0ICJYJHNraXBwZWRf ZXhwb3J0IiAhPSAiWDoiOyB0aGVuCi0rCSAgICAgIGZ1bmNfc2hvd19ldmFsICckRUdSRVAgLWUg IiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRleHBvcnRfc3ltYm9scyIgPiAiJHtleHBvcnRfc3lt Ym9sc31UIicKLSsJICAgICAgZnVuY19zaG93X2V2YWwgJyRNViAiJHtleHBvcnRfc3ltYm9sc31U IiAiJGV4cG9ydF9zeW1ib2xzIicKLSsJICAgIGZpCi0rCSAgZmkKLSsJZmkKLSsKLSsJaWYgdGVz dCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkaW5jbHVkZV9leHBzeW1zIjsgdGhl bgotKwkgIHRtcF9leHBvcnRfc3ltYm9scz0iJGV4cG9ydF9zeW1ib2xzIgotKwkgIHRlc3QgLW4g IiRvcmlnX2V4cG9ydF9zeW1ib2xzIiAmJiB0bXBfZXhwb3J0X3N5bWJvbHM9IiRvcmlnX2V4cG9y dF9zeW1ib2xzIgotKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICckRUNITyAiJGluY2x1ZGVfZXhw c3ltcyIgfCAkU1AyTkwgPj4gIiR0bXBfZXhwb3J0X3N5bWJvbHMiJwotKwlmaQotKwotKwlpZiB0 ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9z eW1ib2xzIjsgdGhlbgotKwkgICMgVGhlIGdpdmVuIGV4cG9ydHNfc3ltYm9scyBmaWxlIGhhcyB0 byBiZSBmaWx0ZXJlZCwgc28gZmlsdGVyIGl0LgotKwkgIGZ1bmNfdmVyYm9zZSAiZmlsdGVyIHN5 bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyB0byB0YWcgREFUQSBleHBvcnRzIgotKwkgICMg RklYTUU6ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciBwb3RlbnRpYWxseSBjb250YWlu cyBsb3RzIG9mCi0rCSAgIyAncycgY29tbWFuZHMgd2hpY2ggbm90IGFsbCBzZWRzIGNhbiBoYW5k bGUuIEdOVSBzZWQgc2hvdWxkIGJlIGZpbmUKLSsJICAjIHRob3VnaC4gQWxzbywgdGhlIGZpbHRl ciBzY2FsZXMgc3VwZXJsaW5lYXJseSB3aXRoIHRoZSBudW1iZXIgb2YKLSsJICAjIGdsb2JhbCB2 YXJpYWJsZXMuIGpvaW4oMSkgd291bGQgYmUgbmljZSBoZXJlLCBidXQgdW5mb3J0dW5hdGVseQot KwkgICMgaXNuJ3QgYSBibGVzc2VkIHRvb2wuCi0rCSAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWUg Jy9bICxdREFUQS8hZDtzLFwoLipcKVwoWyBcLF0uKlwpLHN8XlwxJHxcMVwyfCwnIDwgJGV4cG9y dF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyCi0rCSAgZnVuY19hcHBl bmQgZGVsZmlsZXMgIiAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmls dGVyIgotKwkgIGV4cG9ydF9zeW1ib2xzPSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZgotKwkg ICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1mICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciA8 ICRvcmlnX2V4cG9ydF9zeW1ib2xzID4gJGV4cG9ydF9zeW1ib2xzCi0rCWZpCi0rCi0rCXRtcF9k ZXBsaWJzPQotKwlmb3IgdGVzdF9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCSAgY2FzZSAiICRj b252ZW5pZW5jZSAiIGluCi0rCSAgKiIgJHRlc3RfZGVwbGliICIqKSA7OwotKwkgICopCi0rCSAg ICBmdW5jX2FwcGVuZCB0bXBfZGVwbGlicyAiICR0ZXN0X2RlcGxpYiIKLSsJICAgIDs7Ci0rCSAg ZXNhYwotKwlkb25lCi0rCWRlcGxpYnM9IiR0bXBfZGVwbGlicyIKLSsKLSsJaWYgdGVzdCAtbiAi JGNvbnZlbmllbmNlIjsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYyIgJiYKLSsJICAgIHRlc3QgIiRjb21waWxlcl9uZWVkc19vYmplY3QiID0geWVzICYmCi0r CSAgICB0ZXN0IC16ICIkbGlib2JqcyI7IHRoZW4KLSsJICAgICMgZXh0cmFjdCB0aGUgYXJjaGl2 ZXMsIHNvIHdlIGhhdmUgb2JqZWN0cyB0byBsaXN0LgotKwkgICAgIyBUT0RPOiBjb3VsZCBvcHRp bWl6ZSB0aGlzIHRvIGp1c3QgZXh0cmFjdCBvbmUgYXJjaGl2ZS4KLSsJICAgIHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjPQotKwkgIGZpCi0rCSAgaWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjIjsgdGhlbgotKwkgICAgc2F2ZV9saWJvYmpzPSRsaWJvYmpzCi0rCSAgICBldmFsIGxp Ym9ianM9XCJcJGxpYm9ianMgJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKLSsJICAgIHRlc3Qg IlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9Ci0rCSAgZWxzZQotKwkgICAgZ2VudG9wPSIk b3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKLSsJICAgIGZ1bmNfYXBwZW5kIGdlbmVyYXRl ZCAiICRnZW50b3AiCi0rCi0rCSAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29u dmVuaWVuY2UKLSsJICAgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkZnVuY19leHRyYWN0X2FyY2hp dmVzX3Jlc3VsdCIKLSsJICAgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9Ci0r CSAgZmkKLSsJZmkKLSsKLSsJaWYgdGVzdCAiJHRocmVhZF9zYWZlIiA9IHllcyAmJiB0ZXN0IC1u ICIkdGhyZWFkX3NhZmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgIGV2YWwgZmxhZz1cIiR0aHJlYWRf c2FmZV9mbGFnX3NwZWNcIgotKwkgIGZ1bmNfYXBwZW5kIGxpbmtlcl9mbGFncyAiICRmbGFnIgot KwlmaQotKwotKwkjIE1ha2UgYSBiYWNrdXAgb2YgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgd2hl biByZWxpbmtpbmcKLSsJaWYgdGVzdCAiJG9wdF9tb2RlIiA9IHJlbGluazsgdGhlbgotKwkgICRv cHRfZHJ5X3J1biB8fCBldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJFJNICR7cmVhbG5hbWV9 VSAmJiAkTVYgJHJlYWxuYW1lICR7cmVhbG5hbWV9VSknIHx8IGV4aXQgJD8KLSsJZmkKLSsKLSsJ IyBEbyBlYWNoIG9mIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgotKwlpZiB0ZXN0ICIkbW9kdWxlIiA9 IHllcyAmJiB0ZXN0IC1uICIkbW9kdWxlX2NtZHMiIDsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiRl eHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRoZW4KLSsJ ICAgIGV2YWwgdGVzdF9jbWRzPVwiJG1vZHVsZV9leHBzeW1fY21kc1wiCi0rCSAgICBjbWRzPSRt b2R1bGVfZXhwc3ltX2NtZHMKLSsJICBlbHNlCi0rCSAgICBldmFsIHRlc3RfY21kcz1cIiRtb2R1 bGVfY21kc1wiCi0rCSAgICBjbWRzPSRtb2R1bGVfY21kcwotKwkgIGZpCi0rCWVsc2UKLSsJICBp ZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRhcmNoaXZlX2V4cHN5bV9j bWRzIjsgdGhlbgotKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkYXJjaGl2ZV9leHBzeW1fY21kc1wi Ci0rCSAgICBjbWRzPSRhcmNoaXZlX2V4cHN5bV9jbWRzCi0rCSAgZWxzZQotKwkgICAgZXZhbCB0 ZXN0X2NtZHM9XCIkYXJjaGl2ZV9jbWRzXCIKLSsJICAgIGNtZHM9JGFyY2hpdmVfY21kcwotKwkg IGZpCi0rCWZpCi0rCi0rCWlmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYKLSsJ ICAgZnVuY19sZW4gIiAkdGVzdF9jbWRzIiAmJgotKwkgICBsZW49JGZ1bmNfbGVuX3Jlc3VsdCAm JgotKwkgICB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRf bGVuIiAtbGUgLTE7IHRoZW4KLSsJICA6Ci0rCWVsc2UKLSsJICAjIFRoZSBjb21tYW5kIGxpbmUg aXMgdG9vIGxvbmcgdG8gbGluayBpbiBvbmUgc3RlcCwgbGluayBwaWVjZXdpc2UKLSsJICAjIG9y LCBpZiB1c2luZyBHTlUgbGQgYW5kIHNraXBwZWRfZXhwb3J0IGlzIG5vdCA6LCB1c2UgYSBsaW5r ZXIKLSsJICAjIHNjcmlwdC4KLSsKLSsJICAjIFNhdmUgdGhlIHZhbHVlIG9mICRvdXRwdXQgYW5k ICRsaWJvYmpzIGJlY2F1c2Ugd2Ugd2FudCB0bwotKwkgICMgdXNlIHRoZW0gbGF0ZXIuICBJZiB3 ZSBoYXZlIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCB3ZQotKwkgICMgd2FudCB0byB1c2Ugc2F2 ZV9saWJvYmpzIGFzIGl0IHdhcyBiZWZvcmUKLSsJICAjIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj IHdhcyBleHBhbmRlZCwgYmVjYXVzZSB3ZSBjYW4ndAotKwkgICMgYXNzdW1lIHRoZSBsaW5rZXIg dW5kZXJzdGFuZHMgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMuCi0rCSAgIyBUaGlzIG1heSBoYXZl IHRvIGJlIHJldmlzaXRlZCwgaW4gY2FzZSB0b28gbWFueQotKwkgICMgY29udmVuaWVuY2UgbGli cmFyaWVzIGdldCBsaW5rZWQgaW4gYW5kIGVuZCB1cCBleGNlZWRpbmcKLSsJICAjIHRoZSBzcGVj LgotKwkgIGlmIHRlc3QgLXogIiRjb252ZW5pZW5jZSIgfHwgdGVzdCAteiAiJHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgICAgc2F2ZV9saWJvYmpzPSRsaWJvYmpzCi0rCSAgZmkK LSsJICBzYXZlX291dHB1dD0kb3V0cHV0Ci0rCSAgZnVuY19iYXNlbmFtZSAiJG91dHB1dCIKLSsJ ICBvdXRwdXRfbGE9JGZ1bmNfYmFzZW5hbWVfcmVzdWx0Ci0rCi0rCSAgIyBDbGVhciB0aGUgcmVs b2FkYWJsZSBvYmplY3QgY3JlYXRpb24gY29tbWFuZCBxdWV1ZSBhbmQKLSsJICAjIGluaXRpYWxp emUgayB0byBvbmUuCi0rCSAgdGVzdF9jbWRzPQotKwkgIGNvbmNhdF9jbWRzPQotKwkgIG9iamxp c3Q9Ci0rCSAgbGFzdF9yb2JqPQotKwkgIGs9MQotKwotKwkgIGlmIHRlc3QgLW4gIiRzYXZlX2xp Ym9ianMiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IHllczsgdGhlbgotKwkgICAgb3V0cHV0PSR7b3V0cHV0X29iamRpcn0vJHtvdXRw dXRfbGF9Lmxua3NjcmlwdAotKwkgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyBHTlUgbGQgc2Ny aXB0OiAkb3V0cHV0IgotKwkgICAgZWNobyAnSU5QVVQgKCcgPiAkb3V0cHV0Ci0rCSAgICBmb3Ig b2JqIGluICRzYXZlX2xpYm9ianMKLSsJICAgIGRvCi0rCSAgICAgIGZ1bmNfdG9fdG9vbF9maWxl ICIkb2JqIgotKwkgICAgICAkRUNITyAiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCIgPj4gJG91 dHB1dAotKwkgICAgZG9uZQotKwkgICAgZWNobyAnKScgPj4gJG91dHB1dAotKwkgICAgZnVuY19h cHBlbmQgZGVsZmlsZXMgIiAkb3V0cHV0IgotKwkgICAgZnVuY190b190b29sX2ZpbGUgIiRvdXRw dXQiCi0rCSAgICBvdXRwdXQ9JGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdAotKwkgIGVsaWYgdGVz dCAtbiAiJHNhdmVfbGlib2JqcyIgJiYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAm JiB0ZXN0ICJYJGZpbGVfbGlzdF9zcGVjIiAhPSBYOyB0aGVuCi0rCSAgICBvdXRwdXQ9JHtvdXRw dXRfb2JqZGlyfS8ke291dHB1dF9sYX0ubG5rCi0rCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5n IGxpbmtlciBpbnB1dCBmaWxlIGxpc3Q6ICRvdXRwdXQiCi0rCSAgICA6ID4gJG91dHB1dAotKwkg ICAgc2V0IHggJHNhdmVfbGlib2JqcwotKwkgICAgc2hpZnQKLSsJICAgIGZpcnN0b2JqPQotKwkg ICAgaWYgdGVzdCAiJGNvbXBpbGVyX25lZWRzX29iamVjdCIgPSB5ZXM7IHRoZW4KLSsJICAgICAg Zmlyc3RvYmo9IiQxICIKLSsJICAgICAgc2hpZnQKLSsJICAgIGZpCi0rCSAgICBmb3Igb2JqCi0r CSAgICBkbwotKwkgICAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG9iaiIKLSsJICAgICAgJEVDSE8g IiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiID4+ICRvdXRwdXQKLSsJICAgIGRvbmUKLSsJICAg IGZ1bmNfYXBwZW5kIGRlbGZpbGVzICIgJG91dHB1dCIKLSsJICAgIGZ1bmNfdG9fdG9vbF9maWxl ICIkb3V0cHV0IgotKwkgICAgb3V0cHV0PSRmaXJzdG9ialwiJGZpbGVfbGlzdF9zcGVjJGZ1bmNf dG9fdG9vbF9maWxlX3Jlc3VsdFwiCi0rCSAgZWxzZQotKwkgICAgaWYgdGVzdCAtbiAiJHNhdmVf bGlib2JqcyI7IHRoZW4KLSsJICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyByZWxvYWRhYmxl IG9iamVjdCBmaWxlcy4uLiIKLSsJICAgICAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRf bGEtJHtrfS4kb2JqZXh0Ci0rCSAgICAgIGV2YWwgdGVzdF9jbWRzPVwiJHJlbG9hZF9jbWRzXCIK LSsJICAgICAgZnVuY19sZW4gIiAkdGVzdF9jbWRzIgotKwkgICAgICBsZW4wPSRmdW5jX2xlbl9y ZXN1bHQKLSsJICAgICAgbGVuPSRsZW4wCi0rCi0rCSAgICAgICMgTG9vcCBvdmVyIHRoZSBsaXN0 IG9mIG9iamVjdHMgdG8gYmUgbGlua2VkLgotKwkgICAgICBmb3Igb2JqIGluICRzYXZlX2xpYm9i anMKLSsJICAgICAgZG8KLSsJCWZ1bmNfbGVuICIgJG9iaiIKLSsJCWZ1bmNfYXJpdGggJGxlbiAr ICRmdW5jX2xlbl9yZXN1bHQKLSsJCWxlbj0kZnVuY19hcml0aF9yZXN1bHQKLSsJCWlmIHRlc3Qg Ilgkb2JqbGlzdCIgPSBYIHx8Ci0rCQkgICB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiI7 IHRoZW4KLSsJCSAgZnVuY19hcHBlbmQgb2JqbGlzdCAiICRvYmoiCi0rCQllbHNlCi0rCQkgICMg VGhlIGNvbW1hbmQgJHRlc3RfY21kcyBpcyBhbG1vc3QgdG9vIGxvbmcsIGFkZCBhCi0rCQkgICMg Y29tbWFuZCB0byB0aGUgcXVldWUuCi0rCQkgIGlmIHRlc3QgIiRrIiAtZXEgMSA7IHRoZW4KLSsJ CSAgICAjIFRoZSBmaXJzdCBmaWxlIGRvZXNuJ3QgaGF2ZSBhIHByZXZpb3VzIGNvbW1hbmQgdG8g YWRkLgotKwkJICAgIHJlbG9hZF9vYmpzPSRvYmpsaXN0Ci0rCQkgICAgZXZhbCBjb25jYXRfY21k cz1cIiRyZWxvYWRfY21kc1wiCi0rCQkgIGVsc2UKLSsJCSAgICAjIEFsbCBzdWJzZXF1ZW50IHJl bG9hZGFibGUgb2JqZWN0IGZpbGVzIHdpbGwgbGluayBpbgotKwkJICAgICMgdGhlIGxhc3Qgb25l IGNyZWF0ZWQuCi0rCQkgICAgcmVsb2FkX29ianM9IiRvYmpsaXN0ICRsYXN0X3JvYmoiCi0rCQkg ICAgZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHN+JHJlbG9hZF9jbWRzflwkUk0gJGxh c3Rfcm9ialwiCi0rCQkgIGZpCi0rCQkgIGxhc3Rfcm9iaj0kb3V0cHV0X29iamRpci8kb3V0cHV0 X2xhLSR7a30uJG9iamV4dAotKwkJICBmdW5jX2FyaXRoICRrICsgMQotKwkJICBrPSRmdW5jX2Fy aXRoX3Jlc3VsdAotKwkJICBvdXRwdXQ9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRv YmpleHQKLSsJCSAgb2JqbGlzdD0iICRvYmoiCi0rCQkgIGZ1bmNfbGVuICIgJGxhc3Rfcm9iaiIK LSsJCSAgZnVuY19hcml0aCAkbGVuMCArICRmdW5jX2xlbl9yZXN1bHQKLSsJCSAgbGVuPSRmdW5j X2FyaXRoX3Jlc3VsdAotKwkJZmkKLSsJICAgICAgZG9uZQotKwkgICAgICAjIEhhbmRsZSB0aGUg cmVtYWluaW5nIG9iamVjdHMgYnkgY3JlYXRpbmcgb25lIGxhc3QKLSsJICAgICAgIyByZWxvYWRh YmxlIG9iamVjdCBmaWxlLiAgQWxsIHN1YnNlcXVlbnQgcmVsb2FkYWJsZSBvYmplY3QKLSsJICAg ICAgIyBmaWxlcyB3aWxsIGxpbmsgaW4gdGhlIGxhc3Qgb25lIGNyZWF0ZWQuCi0rCSAgICAgIHRl c3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgotKwkgICAg ICByZWxvYWRfb2Jqcz0iJG9iamxpc3QgJGxhc3Rfcm9iaiIKLSsJICAgICAgZXZhbCBjb25jYXRf Y21kcz1cIlwke2NvbmNhdF9jbWRzfSRyZWxvYWRfY21kc1wiCi0rCSAgICAgIGlmIHRlc3QgLW4g IiRsYXN0X3JvYmoiOyB0aGVuCi0rCSAgICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNh dF9jbWRzfX5cJFJNICRsYXN0X3JvYmpcIgotKwkgICAgICBmaQotKwkgICAgICBmdW5jX2FwcGVu ZCBkZWxmaWxlcyAiICRvdXRwdXQiCi0rCi0rCSAgICBlbHNlCi0rCSAgICAgIG91dHB1dD0KLSsJ ICAgIGZpCi0rCi0rCSAgICBpZiAke3NraXBwZWRfZXhwb3J0LWZhbHNlfTsgdGhlbgotKwkgICAg ICBmdW5jX3ZlcmJvc2UgImdlbmVyYXRpbmcgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEn IgotKwkgICAgICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgot KwkgICAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRleHBvcnRfc3ltYm9scwotKwkgICAgICBsaWJv YmpzPSRvdXRwdXQKLSsJICAgICAgIyBBcHBlbmQgdGhlIGNvbW1hbmQgdG8gY3JlYXRlIHRoZSBl eHBvcnQgZmlsZS4KLSsJICAgICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRfY21k cz0kY29uY2F0X2NtZHN+Ci0rCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRz JGV4cG9ydF9zeW1ib2xzX2NtZHNcIgotKwkgICAgICBpZiB0ZXN0IC1uICIkbGFzdF9yb2JqIjsg dGhlbgotKwkJZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHN+XCRSTSAkbGFzdF9yb2Jq XCIKLSsJICAgICAgZmkKLSsJICAgIGZpCi0rCi0rCSAgICB0ZXN0IC1uICIkc2F2ZV9saWJvYmpz IiAmJgotKwkgICAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIGEgdGVtcG9yYXJ5IHJlbG9hZGFi bGUgb2JqZWN0IGZpbGU6ICRvdXRwdXQiCi0rCi0rCSAgICAjIExvb3AgdGhyb3VnaCB0aGUgY29t bWFuZHMgZ2VuZXJhdGVkIGFib3ZlIGFuZCBleGVjdXRlIHRoZW0uCi0rCSAgICBzYXZlX2lmcz0i JElGUyI7IElGUz0nficKLSsJICAgIGZvciBjbWQgaW4gJGNvbmNhdF9jbWRzOyBkbwotKwkgICAg ICBJRlM9IiRzYXZlX2lmcyIKLSsJICAgICAgJG9wdF9zaWxlbnQgfHwgewotKwkJICBmdW5jX3F1 b3RlX2Zvcl9leHBhbmQgIiRjbWQiCi0rCQkgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9m b3JfZXhwYW5kX3Jlc3VsdCIKLSsJICAgICAgfQotKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgZXZh bCAiJGNtZCIgfHwgewotKwkJbHRfZXhpdD0kPwotKwotKwkJIyBSZXN0b3JlIHRoZSB1bmluc3Rh bGxlZCBsaWJyYXJ5IGFuZCBleGl0Ci0rCQlpZiB0ZXN0ICIkb3B0X21vZGUiID0gcmVsaW5rOyB0 aGVuCi0rCQkgICggY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiBcCi0rCQkgICAgJFJNICIke3JlYWxu YW1lfVQiICYmIFwKLSsJCSAgICAkTVYgIiR7cmVhbG5hbWV9VSIgIiRyZWFsbmFtZSIgKQotKwkJ ZmkKLSsKLSsJCWV4aXQgJGx0X2V4aXQKLSsJICAgICAgfQotKwkgICAgZG9uZQotKwkgICAgSUZT PSIkc2F2ZV9pZnMiCi0rCi0rCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgi ICYmICR7c2tpcHBlZF9leHBvcnQtZmFsc2V9OyB0aGVuCi0rCSAgICAgIGZ1bmNfc2hvd19ldmFs ICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRleHBvcnRfc3ltYm9scyIgPiAi JHtleHBvcnRfc3ltYm9sc31UIicKLSsJICAgICAgZnVuY19zaG93X2V2YWwgJyRNViAiJHtleHBv cnRfc3ltYm9sc31UIiAiJGV4cG9ydF9zeW1ib2xzIicKLSsJICAgIGZpCi0rCSAgZmkKLSsKLSsg ICAgICAgICAgaWYgJHtza2lwcGVkX2V4cG9ydC1mYWxzZX07IHRoZW4KLSsJICAgIGlmIHRlc3Qg LW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4K LSsJICAgICAgdG1wX2V4cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCi0rCSAgICAgIHRl c3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIiAmJiB0bXBfZXhwb3J0X3N5bWJvbHM9IiRvcmln X2V4cG9ydF9zeW1ib2xzIgotKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8gIiRp bmNsdWRlX2V4cHN5bXMiIHwgJFNQMk5MID4+ICIkdG1wX2V4cG9ydF9zeW1ib2xzIicKLSsJICAg IGZpCi0rCi0rCSAgICBpZiB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyI7IHRoZW4KLSsJ ICAgICAgIyBUaGUgZ2l2ZW4gZXhwb3J0c19zeW1ib2xzIGZpbGUgaGFzIHRvIGJlIGZpbHRlcmVk LCBzbyBmaWx0ZXIgaXQuCi0rCSAgICAgIGZ1bmNfdmVyYm9zZSAiZmlsdGVyIHN5bWJvbCBsaXN0 IGZvciBcYCRsaWJuYW1lLmxhJyB0byB0YWcgREFUQSBleHBvcnRzIgotKwkgICAgICAjIEZJWE1F OiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIgcG90ZW50aWFsbHkgY29udGFpbnMgbG90 cyBvZgotKwkgICAgICAjICdzJyBjb21tYW5kcyB3aGljaCBub3QgYWxsIHNlZHMgY2FuIGhhbmRs ZS4gR05VIHNlZCBzaG91bGQgYmUgZmluZQotKwkgICAgICAjIHRob3VnaC4gQWxzbywgdGhlIGZp bHRlciBzY2FsZXMgc3VwZXJsaW5lYXJseSB3aXRoIHRoZSBudW1iZXIgb2YKLSsJICAgICAgIyBn bG9iYWwgdmFyaWFibGVzLiBqb2luKDEpIHdvdWxkIGJlIG5pY2UgaGVyZSwgYnV0IHVuZm9ydHVu YXRlbHkKLSsJICAgICAgIyBpc24ndCBhIGJsZXNzZWQgdG9vbC4KLSsJICAgICAgJG9wdF9kcnlf cnVuIHx8ICRTRUQgLWUgJy9bICxdREFUQS8hZDtzLFwoLipcKVwoWyBcLF0uKlwpLHN8XlwxJHxc MVwyfCwnIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVy Ci0rCSAgICAgIGZ1bmNfYXBwZW5kIGRlbGZpbGVzICIgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lLmZpbHRlciIKLSsJICAgICAgZXhwb3J0X3N5bWJvbHM9JG91dHB1dF9v YmpkaXIvJGxpYm5hbWUuZGVmCi0rCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1mICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciA8ICRvcmlnX2V4cG9ydF9zeW1ib2xzID4gJGV4cG9y dF9zeW1ib2xzCi0rCSAgICBmaQotKwkgIGZpCi0rCi0rCSAgbGlib2Jqcz0kb3V0cHV0Ci0rCSAg IyBSZXN0b3JlIHRoZSB2YWx1ZSBvZiBvdXRwdXQuCi0rCSAgb3V0cHV0PSRzYXZlX291dHB1dAot KwotKwkgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSIgJiYgdGVzdCAtbiAiJHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgICAgZXZhbCBsaWJvYmpzPVwiXCRsaWJvYmpzICR3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCi0rCSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBs aWJvYmpzPQotKwkgIGZpCi0rCSAgIyBFeHBhbmQgdGhlIGxpYnJhcnkgbGlua2luZyBjb21tYW5k cyBhZ2FpbiB0byByZXNldCB0aGUKLSsJICAjIHZhbHVlIG9mICRsaWJvYmpzIGZvciBwaWVjZXdp c2UgbGlua2luZy4KLSsKLSsJICAjIERvIGVhY2ggb2YgdGhlIGFyY2hpdmUgY29tbWFuZHMuCi0r CSAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXMgJiYgdGVzdCAtbiAiJG1vZHVsZV9jbWRzIiA7IHRo ZW4KLSsJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJG1vZHVs ZV9leHBzeW1fY21kcyI7IHRoZW4KLSsJICAgICAgY21kcz0kbW9kdWxlX2V4cHN5bV9jbWRzCi0r CSAgICBlbHNlCi0rCSAgICAgIGNtZHM9JG1vZHVsZV9jbWRzCi0rCSAgICBmaQotKwkgIGVsc2UK LSsJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGFyY2hpdmVf ZXhwc3ltX2NtZHMiOyB0aGVuCi0rCSAgICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKLSsJ ICAgIGVsc2UKLSsJICAgICAgY21kcz0kYXJjaGl2ZV9jbWRzCi0rCSAgICBmaQotKwkgIGZpCi0r CWZpCi0rCi0rCWlmIHRlc3QgLW4gIiRkZWxmaWxlcyI7IHRoZW4KLSsJICAjIEFwcGVuZCB0aGUg Y29tbWFuZCB0byByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzIHRvICRjbWRzLgotKwkgIGV2YWwgY21k cz1cIlwkY21kc35cJFJNICRkZWxmaWxlc1wiCi0rCWZpCi0rCi0rCSMgQWRkIGFueSBvYmplY3Rz IGZyb20gcHJlbG9hZGVkIGNvbnZlbmllbmNlIGxpYnJhcmllcwotKwlpZiB0ZXN0IC1uICIkZGxw cmVmaWxlcyI7IHRoZW4KLSsJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14 IgotKwkgIGZ1bmNfYXBwZW5kIGdlbmVyYXRlZCAiICRnZW50b3AiCi0rCi0rCSAgZnVuY19leHRy YWN0X2FyY2hpdmVzICRnZW50b3AgJGRscHJlZmlsZXMKLSsJICBmdW5jX2FwcGVuZCBsaWJvYmpz ICIgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCi0rCSAgdGVzdCAiWCRsaWJvYmpzIiA9 ICJYICIgJiYgbGlib2Jqcz0KLSsJZmkKLSsKLSsJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0r CWZvciBjbWQgaW4gJGNtZHM7IGRvCi0rCSAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgZXZhbCBjbWQ9 XCIkY21kXCIKLSsJICAkb3B0X3NpbGVudCB8fCB7Ci0rCSAgICBmdW5jX3F1b3RlX2Zvcl9leHBh bmQgIiRjbWQiCi0rCSAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9y ZXN1bHQiCi0rCSAgfQotKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kIiB8fCB7Ci0rCSAg ICBsdF9leGl0PSQ/Ci0rCi0rCSAgICAjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkg YW5kIGV4aXQKLSsJICAgIGlmIHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IHRoZW4KLSsJICAg ICAgKCBjZCAiJG91dHB1dF9vYmpkaXIiICYmIFwKLSsJICAgICAgICAkUk0gIiR7cmVhbG5hbWV9 VCIgJiYgXAotKwkJJE1WICIke3JlYWxuYW1lfVUiICIkcmVhbG5hbWUiICkKLSsJICAgIGZpCi0r Ci0rCSAgICBleGl0ICRsdF9leGl0Ci0rCSAgfQotKwlkb25lCi0rCUlGUz0iJHNhdmVfaWZzIgot KwotKwkjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKLSsJaWYgdGVz dCAiJG9wdF9tb2RlIiA9IHJlbGluazsgdGhlbgotKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICco Y2QgJG91dHB1dF9vYmpkaXIgJiYgJFJNICR7cmVhbG5hbWV9VCAmJiAkTVYgJHJlYWxuYW1lICR7 cmVhbG5hbWV9VCAmJiAkTVYgJHtyZWFsbmFtZX1VICRyZWFsbmFtZSknIHx8IGV4aXQgJD8KLSsK LSsJICBpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCi0rCSAgICBpZiB0ZXN0IC16ICIk d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgICAgIGZ1bmNfc2hvd19ldmFsICck e1JNfXIgIiRnZW50b3AiJwotKwkgICAgZmkKLSsJICBmaQotKwotKwkgIGV4aXQgJEVYSVRfU1VD Q0VTUwotKwlmaQotKwotKwkjIENyZWF0ZSBsaW5rcyB0byB0aGUgcmVhbCBsaWJyYXJ5LgotKwlm b3IgbGlua25hbWUgaW4gJGxpbmtuYW1lczsgZG8KLSsJICBpZiB0ZXN0ICIkcmVhbG5hbWUiICE9 ICIkbGlua25hbWUiOyB0aGVuCi0rCSAgICBmdW5jX3Nob3dfZXZhbCAnKGNkICIkb3V0cHV0X29i amRpciIgJiYgJFJNICIkbGlua25hbWUiICYmICRMTl9TICIkcmVhbG5hbWUiICIkbGlua25hbWUi KScgJ2V4aXQgJD8nCi0rCSAgZmkKLSsJZG9uZQotKwotKwkjIElmIC1tb2R1bGUgb3IgLWV4cG9y dC1keW5hbWljIHdhcyBzcGVjaWZpZWQsIHNldCB0aGUgZGxuYW1lLgotKwlpZiB0ZXN0ICIkbW9k dWxlIiA9IHllcyB8fCB0ZXN0ICIkZXhwb3J0X2R5bmFtaWMiID0geWVzOyB0aGVuCi0rCSAgIyBP biBhbGwga25vd24gb3BlcmF0aW5nIHN5c3RlbXMsIHRoZXNlIGFyZSBpZGVudGljYWwuCi0rCSAg ZGxuYW1lPSIkc29uYW1lIgotKwlmaQotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgb2Jq KQotKyAgICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNl bGYiICE9IG5vOyB0aGVuCi0rCWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZv ciBvYmplY3RzIgotKyAgICAgIGZpCi0rCi0rICAgICAgY2FzZSAiICRkZXBsaWJzIiBpbgotKyAg ICAgICpcIC1sKiB8ICpcIC1MKikKLSsJZnVuY193YXJuaW5nICJcYC1sJyBhbmQgXGAtTCcgYXJl IGlnbm9yZWQgZm9yIG9iamVjdHMiIDs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgIHRlc3QgLW4g IiRycGF0aCIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXJwYXRoJyBpcyBpZ25vcmVkIGZvciBv YmplY3RzIgotKwotKyAgICAgIHRlc3QgLW4gIiR4cnBhdGgiICYmIFwKLSsJZnVuY193YXJuaW5n ICJcYC1SJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgotKwotKyAgICAgIHRlc3QgLW4gIiR2aW5m byIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mbycgaXMgaWdub3JlZCBmb3Ig b2JqZWN0cyIKLSsKLSsgICAgICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAotKwlmdW5jX3dhcm5p bmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCi0rCi0rICAgICAgY2FzZSAk b3V0cHV0IGluCi0rICAgICAgKi5sbykKLSsJdGVzdCAtbiAiJG9ianMkb2xkX2RlcGxpYnMiICYm IFwKLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgYnVpbGQgbGlicmFyeSBvYmplY3QgXGAk b3V0cHV0JyBmcm9tIG5vbi1saWJ0b29sIG9iamVjdHMiCi0rCi0rCWxpYm9iaj0kb3V0cHV0Ci0r CWZ1bmNfbG8ybyAiJGxpYm9iaiIKLSsJb2JqPSRmdW5jX2xvMm9fcmVzdWx0Ci0rCTs7Ci0rICAg ICAgKikKLSsJbGlib2JqPQotKwlvYmo9IiRvdXRwdXQiCi0rCTs7Ci0rICAgICAgZXNhYwotKwot KyAgICAgICMgRGVsZXRlIHRoZSBvbGQgb2JqZWN0cy4KLSsgICAgICAkb3B0X2RyeV9ydW4gfHwg JFJNICRvYmogJGxpYm9iagotKwotKyAgICAgICMgT2JqZWN0cyBmcm9tIGNvbnZlbmllbmNlIGxp YnJhcmllcy4gIFRoaXMgYXNzdW1lcwotKyAgICAgICMgc2luZ2xlLXZlcnNpb24gY29udmVuaWVu Y2UgbGlicmFyaWVzLiAgV2hlbmV2ZXIgd2UgY3JlYXRlCi0rICAgICAgIyBkaWZmZXJlbnQgb25l cyBmb3IgUElDL25vbi1QSUMsIHRoaXMgd2UnbGwgaGF2ZSB0byBkdXBsaWNhdGUKLSsgICAgICAj IHRoZSBleHRyYWN0aW9uLgotKyAgICAgIHJlbG9hZF9jb252X29ianM9Ci0rICAgICAgZ2VudG9w PQotKyAgICAgICMgcmVsb2FkX2NtZHMgcnVucyAkTEQgZGlyZWN0bHksIHNvIGxldCB1cyBnZXQg cmlkIG9mCi0rICAgICAgIyAtV2wgZnJvbSB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyBhbmQgaG9w ZSB3ZSBjYW4gZ2V0IGJ5IHdpdGgKLSsgICAgICAjIHR1cm5pbmcgY29tbWEgaW50byBzcGFjZS4u Ci0rICAgICAgd2w9Ci0rCi0rICAgICAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgot KwlpZiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgZXZhbCB0 bXBfd2hvbGVfYXJjaGl2ZV9mbGFncz1cIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCi0rCSAg cmVsb2FkX2NvbnZfb2Jqcz0kcmVsb2FkX29ianNcIGAkRUNITyAiJHRtcF93aG9sZV9hcmNoaXZl X2ZsYWdzIiB8ICRTRUQgJ3N8LHwgfGcnYAotKwllbHNlCi0rCSAgZ2VudG9wPSIkb3V0cHV0X29i amRpci8ke29ian14IgotKwkgIGZ1bmNfYXBwZW5kIGdlbmVyYXRlZCAiICRnZW50b3AiCi0rCi0r CSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGNvbnZlbmllbmNlCi0rCSAgcmVsb2Fk X2NvbnZfb2Jqcz0iJHJlbG9hZF9vYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0Igot KwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBJZiB3ZSdyZSBub3QgYnVpbGRpbmcgc2hhcmVk LCB3ZSBuZWVkIHRvIHVzZSBub25fcGljX29ianMKLSsgICAgICB0ZXN0ICIkYnVpbGRfbGlidG9v bF9saWJzIiAhPSB5ZXMgJiYgbGlib2Jqcz0iJG5vbl9waWNfb2JqZWN0cyIKLSsKLSsgICAgICAj IENyZWF0ZSB0aGUgb2xkLXN0eWxlIG9iamVjdC4KLSsgICAgICByZWxvYWRfb2Jqcz0iJG9ianMk b2xkX2RlcGxpYnMgImAkRUNITyAiJGxpYm9ianMiIHwgJFNQMk5MIHwgJFNFRCAiL1wuJHtsaWJl eHR9JC9kOyAvXC5saWIkL2Q7ICRsbzJvIiB8ICROTDJTUGAiICRyZWxvYWRfY29udl9vYmpzIiAj IyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QKLSsKLSsgICAgICBvdXRwdXQ9 IiRvYmoiCi0rICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8n Ci0rCi0rICAgICAgIyBFeGl0IGlmIHdlIGFyZW4ndCBkb2luZyBhIGxpYnJhcnkgb2JqZWN0IGZp bGUuCi0rICAgICAgaWYgdGVzdCAteiAiJGxpYm9iaiI7IHRoZW4KLSsJaWYgdGVzdCAtbiAiJGdl bnRvcCI7IHRoZW4KLSsJICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKLSsJZmkK LSsKLSsJZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0ICIk YnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KLSsJaWYgdGVzdCAtbiAiJGdlbnRvcCI7 IHRoZW4KLSsJICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKLSsJZmkKLSsKLSsJ IyBDcmVhdGUgYW4gaW52YWxpZCBsaWJ0b29sIG9iamVjdCBpZiBubyBQSUMsIHNvIHRoYXQgd2Ug ZG9uJ3QKLSsJIyBhY2NpZGVudGFsbHkgbGluayBpdCBpbnRvIGEgcHJvZ3JhbS4KLSsJIyAkc2hv dyAiZWNobyB0aW1lc3RhbXAgPiAkbGlib2JqIgotKwkjICRvcHRfZHJ5X3J1biB8fCBldmFsICJl Y2hvIHRpbWVzdGFtcCA+ICRsaWJvYmoiIHx8IGV4aXQgJD8KLSsJZXhpdCAkRVhJVF9TVUNDRVNT Ci0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkcGljX2ZsYWciIHx8IHRlc3QgIiRw aWNfbW9kZSIgIT0gZGVmYXVsdDsgdGhlbgotKwkjIE9ubHkgZG8gY29tbWFuZHMgaWYgd2UgcmVh bGx5IGhhdmUgZGlmZmVyZW50IFBJQyBvYmplY3RzLgotKwlyZWxvYWRfb2Jqcz0iJGxpYm9ianMg JHJlbG9hZF9jb252X29ianMiCi0rCW91dHB1dD0iJGxpYm9iaiIKLSsJZnVuY19leGVjdXRlX2Nt ZHMgIiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8nCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0 IC1uICIkZ2VudG9wIjsgdGhlbgotKwlmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicK LSsgICAgICBmaQotKwotKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICAgIDs7Ci0rCi0r ICAgIHByb2cpCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKwkqY3lnd2luKikgZnVuY19zdHJpcG5h bWUgJycgJy5leGUnICIkb3V0cHV0IgotKwkgICAgICAgICAgb3V0cHV0PSRmdW5jX3N0cmlwbmFt ZV9yZXN1bHQuZXhlOzsKLSsgICAgICBlc2FjCi0rICAgICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBc Ci0rCWZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBwcm9ncmFt cyIKLSsKLSsgICAgICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxg LXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIHByb2dyYW1zIgotKwotKyAgICAgIHRlc3QgIiRwcmVs b2FkIiA9IHllcyBcCi0rICAgICAgICAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0gdW5rbm93 biBcCi0rCSYmIHRlc3QgIiRkbG9wZW5fc2VsZiIgPSB1bmtub3duIFwKLSsJJiYgdGVzdCAiJGRs b3Blbl9zZWxmX3N0YXRpYyIgPSB1bmtub3duICYmIFwKLSsJICBmdW5jX3dhcm5pbmcgIlxgTFRf SU5JVChbZGxvcGVuXSknIG5vdCB1c2VkLiBBc3N1bWluZyBubyBkbG9wZW4gc3VwcG9ydC4iCi0r Ci0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgICotKi1yaGFwc29keSogfCAqLSotZGFyd2lu MS5bMDEyXSkKLSsJIyBPbiBSaGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkgaXMgdGhlIFN5 c3RlbSBmcmFtZXdvcmsKLSsJY29tcGlsZV9kZXBsaWJzPWAkRUNITyAiICRjb21waWxlX2RlcGxp YnMiIHwgJFNFRCAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAotKwlmaW5hbGl6ZV9k ZXBsaWJzPWAkRUNITyAiICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRTRUQgJ3MvIC1sYyAvIFN5c3Rl bS5sdGZyYW1ld29yayAvJ2AKLSsJOzsKLSsgICAgICBlc2FjCi0rCi0rICAgICAgY2FzZSAkaG9z dCBpbgotKyAgICAgICotKi1kYXJ3aW4qKQotKwkjIERvbid0IGFsbG93IGxhenkgbGlua2luZywg aXQgYnJlYWtzIEMrKyBnbG9iYWwgY29uc3RydWN0b3JzCi0rCSMgQnV0IGlzIHN1cHBvc2VkbHkg Zml4ZWQgb24gMTAuNCBvciBsYXRlciAoeWF5ISkuCi0rCWlmIHRlc3QgIiR0YWduYW1lIiA9IENY WCA7IHRoZW4KLSsJICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9IGluCi0r CSAgICAxMC5bMDEyM10pCi0rCSAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICR7 d2x9LWJpbmRfYXRfbG9hZCIKLSsJICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAi ICR7d2x9LWJpbmRfYXRfbG9hZCIKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlmaQotKwkjIFRpbWUg dG8gY2hhbmdlIGFsbCBvdXIgImZvby5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZyYW1l d29yayBmb28iCi0rCWNvbXBpbGVfZGVwbGlicz1gJEVDSE8gIiAkY29tcGlsZV9kZXBsaWJzIiB8 ICRTRUQgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCi0rCWZp bmFsaXplX2RlcGxpYnM9YCRFQ0hPICIgJGZpbmFsaXplX2RlcGxpYnMiIHwgJFNFRCAncyUgXChb XiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJOzsKLSsgICAgICBlc2Fj Ci0rCi0rCi0rICAgICAgIyBtb3ZlIGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUg d2l0aCBwYXRocyB0byBub3QgeWV0Ci0rICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRo ZSBiZWdpbm5pbmcgb2YgdGhlIGxpYnJhcnkgc2VhcmNoIGxpc3QKLSsgICAgICBuZXdfbGlicz0K LSsgICAgICBmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbwotKwljYXNlICIgJG5ld19saWJz ICIgaW4KLSsJKiIgLUwkcGF0aC8kb2JqZGlyICIqKSA7OwotKwkqKQotKwkgIGNhc2UgIiAkY29t cGlsZV9kZXBsaWJzICIgaW4KLSsJICAqIiAtTCRwYXRoLyRvYmpkaXIgIiopCi0rCSAgICBmdW5j X2FwcGVuZCBuZXdfbGlicyAiIC1MJHBhdGgvJG9iamRpciIgOzsKLSsJICBlc2FjCi0rCSAgOzsK LSsJZXNhYwotKyAgICAgIGRvbmUKLSsgICAgICBmb3IgZGVwbGliIGluICRjb21waWxlX2RlcGxp YnM7IGRvCi0rCWNhc2UgJGRlcGxpYiBpbgotKwktTCopCi0rCSAgY2FzZSAiICRuZXdfbGlicyAi IGluCi0rCSAgKiIgJGRlcGxpYiAiKikgOzsKLSsJICAqKSBmdW5jX2FwcGVuZCBuZXdfbGlicyAi ICRkZXBsaWIiIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCSopIGZ1bmNfYXBwZW5kIG5ld19saWJz ICIgJGRlcGxpYiIgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsgICAgICBjb21waWxlX2RlcGxp YnM9IiRuZXdfbGlicyIKLSsKLSsKLSsgICAgICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQg IiAkY29tcGlsZV9kZXBsaWJzIgotKyAgICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQg IiAkZmluYWxpemVfZGVwbGlicyIKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkcnBhdGgkeHJwYXRo IjsgdGhlbgotKwkjIElmIHRoZSB1c2VyIHNwZWNpZmllZCBhbnkgcnBhdGggZmxhZ3MsIHRoZW4g YWRkIHRoZW0uCi0rCWZvciBsaWJkaXIgaW4gJHJwYXRoICR4cnBhdGg7IGRvCi0rCSAgIyBUaGlz IGlzIHRoZSBtYWdpYyB0byB1c2UgLXJwYXRoLgotKwkgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAi IGluCi0rCSAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAqKSBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9y cGF0aCAiICRsaWJkaXIiIDs7Ci0rCSAgZXNhYwotKwlkb25lCi0rICAgICAgZmkKLSsKLSsgICAg ICAjIE5vdyBoYXJkY29kZSB0aGUgbGlicmFyeSBwYXRocwotKyAgICAgIHJwYXRoPQotKyAgICAg IGhhcmRjb2RlX2xpYmRpcnM9Ci0rICAgICAgZm9yIGxpYmRpciBpbiAkY29tcGlsZV9ycGF0aCAk ZmluYWxpemVfcnBhdGg7IGRvCi0rCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjIjsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsg dGhlbgotKwkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCSAgICAg IGhhcmRjb2RlX2xpYmRpcnM9IiRsaWJkaXIiCi0rCSAgICBlbHNlCi0rCSAgICAgICMgSnVzdCBh Y2N1bXVsYXRlIHRoZSB1bmlxdWUgbGliZGlycy4KLSsJICAgICAgY2FzZSAkaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Ig aW4KLSsJICAgICAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciIqKQotKwkJOzsKLSsJICAgICAgKikKLSsJCWZ1bmNfYXBwZW5kIGhh cmRjb2RlX2xpYmRpcnMgIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKLSsJCTs7 Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgZWxzZQotKwkgICAgZXZhbCBmbGFnPVwiJGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKwkgICAgZnVuY19hcHBlbmQgcnBhdGggIiAkZmxh ZyIKLSsJICBmaQotKwllbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KLSsJICBjYXNl ICIkcGVybV9ycGF0aCAiIGluCi0rCSAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAqKSBmdW5jX2Fw cGVuZCBwZXJtX3JwYXRoICIgJGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWZpCi0rCWNhc2UgJGhv c3QgaW4KLSsJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiog fCAqLWNlZ2NjKikKLSsJICB0ZXN0YmluZGlyPWAke0VDSE99ICIkbGliZGlyIiB8ICR7U0VEfSAt ZSAncyovbGliJCovYmluKidgCi0rCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCi0rCSAgKiI6 JGxpYmRpcjoiKikgOzsKLSsJICA6OikgZGxsc2VhcmNocGF0aD0kbGliZGlyOzsKLSsJICAqKSBm dW5jX2FwcGVuZCBkbGxzZWFyY2hwYXRoICI6JGxpYmRpciI7OwotKwkgIGVzYWMKLSsJICBjYXNl IDokZGxsc2VhcmNocGF0aDogaW4KLSsJICAqIjokdGVzdGJpbmRpcjoiKikgOzsKLSsJICA6Oikg ZGxsc2VhcmNocGF0aD0kdGVzdGJpbmRpcjs7Ci0rCSAgKikgZnVuY19hcHBlbmQgZGxsc2VhcmNo cGF0aCAiOiR0ZXN0YmluZGlyIjs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBk b25lCi0rICAgICAgIyBTdWJzdGl0dXRlIHRoZSBoYXJkY29kZWQgbGliZGlycyBpbnRvIHRoZSBy cGF0aC4KLSsgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgJiYK LSsJIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgotKwlsaWJkaXI9IiRoYXJkY29k ZV9saWJkaXJzIgotKwlldmFsIHJwYXRoPVwiICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIK LSsgICAgICBmaQotKyAgICAgIGNvbXBpbGVfcnBhdGg9IiRycGF0aCIKLSsKLSsgICAgICBycGF0 aD0KLSsgICAgICBoYXJkY29kZV9saWJkaXJzPQotKyAgICAgIGZvciBsaWJkaXIgaW4gJGZpbmFs aXplX3JwYXRoOyBkbwotKwlpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7 IHRoZW4KLSsJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4K LSsJICAgIGlmIHRlc3QgLXogIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgotKwkgICAgICBoYXJk Y29kZV9saWJkaXJzPSIkbGliZGlyIgotKwkgICAgZWxzZQotKwkgICAgICAjIEp1c3QgYWNjdW11 bGF0ZSB0aGUgdW5pcXVlIGxpYmRpcnMuCi0rCSAgICAgIGNhc2UgJGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3IkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIGluCi0r CSAgICAgICoiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IiKikKLSsJCTs7Ci0rCSAgICAgICopCi0rCQlmdW5jX2FwcGVuZCBoYXJkY29k ZV9saWJkaXJzICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCi0rCQk7OwotKwkg ICAgICBlc2FjCi0rCSAgICBmaQotKwkgIGVsc2UKLSsJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjXCIKLSsJICAgIGZ1bmNfYXBwZW5kIHJwYXRoICIgJGZsYWciCi0r CSAgZmkKLSsJZWxpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCi0rCSAgY2FzZSAiJGZp bmFsaXplX3Blcm1fcnBhdGggIiBpbgotKwkgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgKikgZnVu Y19hcHBlbmQgZmluYWxpemVfcGVybV9ycGF0aCAiICRsaWJkaXIiIDs7Ci0rCSAgZXNhYwotKwlm aQotKyAgICAgIGRvbmUKLSsgICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJz IGludG8gdGhlIHJwYXRoLgotKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yIiAmJgotKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCWxpYmRp cj0iJGhhcmRjb2RlX2xpYmRpcnMiCi0rCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNcIgotKyAgICAgIGZpCi0rICAgICAgZmluYWxpemVfcnBhdGg9IiRycGF0aCIKLSsK LSsgICAgICBpZiB0ZXN0IC1uICIkbGlib2JqcyIgJiYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9 IHllczsgdGhlbgotKwkjIFRyYW5zZm9ybSBhbGwgdGhlIGxpYnJhcnkgb2JqZWN0cyBpbnRvIHN0 YW5kYXJkIG9iamVjdHMuCi0rCWNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIiRjb21waWxlX2NvbW1h bmQiIHwgJFNQMk5MIHwgJFNFRCAiJGxvMm8iIHwgJE5MMlNQYAotKwlmaW5hbGl6ZV9jb21tYW5k PWAkRUNITyAiJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFNFRCAiJGxvMm8iIHwgJE5M MlNQYAotKyAgICAgIGZpCi0rCi0rICAgICAgZnVuY19nZW5lcmF0ZV9kbHN5bXMgIiRvdXRwdXRu YW1lIiAiQFBST0dSQU1AIiAibm8iCi0rCi0rICAgICAgIyB0ZW1wbGF0ZSBwcmVsaW5raW5nIHN0 ZXAKLSsgICAgICBpZiB0ZXN0IC1uICIkcHJlbGlua19jbWRzIjsgdGhlbgotKwlmdW5jX2V4ZWN1 dGVfY21kcyAiJHByZWxpbmtfY21kcyIgJ2V4aXQgJD8nCi0rICAgICAgZmkKLSsKLSsgICAgICB3 cmFwcGVyc19yZXF1aXJlZD15ZXMKLSsgICAgICBjYXNlICRob3N0IGluCi0rICAgICAgKmNlZ2Nj KiB8ICptaW5ndzMyY2UqKQotKyAgICAgICAgIyBEaXNhYmxlIHdyYXBwZXJzIGZvciBjZWdjYyBh bmQgbWluZ3czMmNlIGhvc3RzLCB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIGFueXdheS4KLSsgICAg ICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCi0rICAgICAgICA7OwotKyAgICAgICpjeWd3aW4qIHwg Km1pbmd3KiApCi0rICAgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7 IHRoZW4KLSsgICAgICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9bm8KLSsgICAgICAgIGZpCi0rICAg ICAgICA7OwotKyAgICAgICopCi0rICAgICAgICBpZiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0gbm8g fHwgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCi0rICAgICAgICAgIHdy YXBwZXJzX3JlcXVpcmVkPW5vCi0rICAgICAgICBmaQotKyAgICAgICAgOzsKLSsgICAgICBlc2Fj Ci0rICAgICAgaWYgdGVzdCAiJHdyYXBwZXJzX3JlcXVpcmVkIiA9IG5vOyB0aGVuCi0rCSMgUmVw bGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KLSsJY29tcGlsZV9jb21tYW5kPWAk RUNITyAiJGNvbXBpbGVfY29tbWFuZCIgfCAkU0VEICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcn YAotKwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKLSsKLSsJ IyBXZSBoYXZlIG5vIHVuaW5zdGFsbGVkIGxpYnJhcnkgZGVwZW5kZW5jaWVzLCBzbyBmaW5hbGl6 ZSByaWdodCBub3cuCi0rCWV4aXRfc3RhdHVzPTAKLSsJZnVuY19zaG93X2V2YWwgIiRsaW5rX2Nv bW1hbmQiICdleGl0X3N0YXR1cz0kPycKLSsKLSsJaWYgdGVzdCAtbiAiJHBvc3RsaW5rX2NtZHMi OyB0aGVuCi0rCSAgZnVuY190b190b29sX2ZpbGUgIiRvdXRwdXQiCi0rCSAgcG9zdGxpbmtfY21k cz1gZnVuY19lY2hvX2FsbCAiJHBvc3RsaW5rX2NtZHMiIHwgJFNFRCAtZSAncyVAT1VUUFVUQCUn IiRvdXRwdXQiJyVnJyAtZSAncyVAVE9PTF9PVVRQVVRAJSciJGZ1bmNfdG9fdG9vbF9maWxlX3Jl c3VsdCInJWcnYAotKwkgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkcG9zdGxpbmtfY21kcyIgJ2V4aXQg JD8nCi0rCWZpCi0rCi0rCSMgRGVsZXRlIHRoZSBnZW5lcmF0ZWQgZmlsZXMuCi0rCWlmIHRlc3Qg LWYgIiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSI7IHRoZW4KLSsJICBm dW5jX3Nob3dfZXZhbCAnJFJNICIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29iamV4 dH0iJwotKwlmaQotKwotKwlleGl0ICRleGl0X3N0YXR1cwotKyAgICAgIGZpCi0rCi0rICAgICAg aWYgdGVzdCAtbiAiJGNvbXBpbGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGlicGF0aCI7IHRoZW4K LSsJY29tcGlsZV9jb21tYW5kPSIkc2hsaWJwYXRoX3Zhcj1cIiRjb21waWxlX3NobGlicGF0aCRm aW5hbGl6ZV9zaGxpYnBhdGhcJCRzaGxpYnBhdGhfdmFyXCIgJGNvbXBpbGVfY29tbWFuZCIKLSsg ICAgICBmaQotKyAgICAgIGlmIHRlc3QgLW4gIiRmaW5hbGl6ZV9zaGxpYnBhdGgiOyB0aGVuCi0r CWZpbmFsaXplX2NvbW1hbmQ9IiRzaGxpYnBhdGhfdmFyPVwiJGZpbmFsaXplX3NobGlicGF0aFwk JHNobGlicGF0aF92YXJcIiAkZmluYWxpemVfY29tbWFuZCIKLSsgICAgICBmaQotKwotKyAgICAg IGNvbXBpbGVfdmFyPQotKyAgICAgIGZpbmFsaXplX3Zhcj0KLSsgICAgICBpZiB0ZXN0IC1uICIk cnVucGF0aF92YXIiOyB0aGVuCi0rCWlmIHRlc3QgLW4gIiRwZXJtX3JwYXRoIjsgdGhlbgotKwkg ICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCi0rCSAgcnBhdGg9Ci0rCSAgZm9yIGRp ciBpbiAkcGVybV9ycGF0aDsgZG8KLSsJICAgIGZ1bmNfYXBwZW5kIHJwYXRoICIkZGlyOiIKLSsJ ICBkb25lCi0rCSAgY29tcGlsZV92YXI9IiRydW5wYXRoX3Zhcj1cIiRycGF0aFwkJHJ1bnBhdGhf dmFyXCIgIgotKwlmaQotKwlpZiB0ZXN0IC1uICIkZmluYWxpemVfcGVybV9ycGF0aCI7IHRoZW4K LSsJICAjIFdlIHNob3VsZCBzZXQgdGhlIHJ1bnBhdGhfdmFyLgotKwkgIHJwYXRoPQotKwkgIGZv ciBkaXIgaW4gJGZpbmFsaXplX3Blcm1fcnBhdGg7IGRvCi0rCSAgICBmdW5jX2FwcGVuZCBycGF0 aCAiJGRpcjoiCi0rCSAgZG9uZQotKwkgIGZpbmFsaXplX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJw YXRoXCQkcnVucGF0aF92YXJcIiAiCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0 ICIkbm9faW5zdGFsbCIgPSB5ZXM7IHRoZW4KLSsJIyBXZSBkb24ndCBuZWVkIHRvIGNyZWF0ZSBh IHdyYXBwZXIgc2NyaXB0LgotKwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2Nv bW1hbmQkY29tcGlsZV9ycGF0aCIKLSsJIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZp Y2F0aW9uLgotKwlsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkbGlua19jb21tYW5kIiB8ICRTRUQgJ3Ml QE9VVFBVVEAlJyIkb3V0cHV0IiclZydgCi0rCSMgRGVsZXRlIHRoZSBvbGQgb3V0cHV0IGZpbGUu Ci0rCSRvcHRfZHJ5X3J1biB8fCAkUk0gJG91dHB1dAotKwkjIExpbmsgdGhlIGV4ZWN1dGFibGUg YW5kIGV4aXQKLSsJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0ICQ/JwotKwot KwlpZiB0ZXN0IC1uICIkcG9zdGxpbmtfY21kcyI7IHRoZW4KLSsJICBmdW5jX3RvX3Rvb2xfZmls ZSAiJG91dHB1dCIKLSsJICBwb3N0bGlua19jbWRzPWBmdW5jX2VjaG9fYWxsICIkcG9zdGxpbmtf Y21kcyIgfCAkU0VEIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnIC1lICdzJUBUT09MX09V VFBVVEAlJyIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IiclZydgCi0rCSAgZnVuY19leGVjdXRl X2NtZHMgIiRwb3N0bGlua19jbWRzIiAnZXhpdCAkPycKLSsJZmkKLSsKLSsJZXhpdCAkRVhJVF9T VUNDRVNTCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfYWN0aW9uIiA9 IHJlbGluazsgdGhlbgotKwkjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKLSsJ bGlua19jb21tYW5kPSIkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgi Ci0rCXJlbGlua19jb21tYW5kPSIkZmluYWxpemVfdmFyJGZpbmFsaXplX2NvbW1hbmQkZmluYWxp emVfcnBhdGgiCi0rCi0rCWZ1bmNfd2FybmluZyAidGhpcyBwbGF0Zm9ybSBkb2VzIG5vdCBsaWtl IHVuaW5zdGFsbGVkIHNoYXJlZCBsaWJyYXJpZXMiCi0rCWZ1bmNfd2FybmluZyAiXGAkb3V0cHV0 JyB3aWxsIGJlIHJlbGlua2VkIGR1cmluZyBpbnN0YWxsYXRpb24iCi0rICAgICAgZWxzZQotKwlp ZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiAhPSBubzsgdGhlbgotKwkgIGxpbmtfY29tbWFuZD0iJGZp bmFsaXplX3ZhciRjb21waWxlX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCi0rCSAgaWYgdGVzdCAi JGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KLSsJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAi JGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIiB8ICRTRUQgJ3MlQE9V VFBVVEAlXCRwcm9nZGlyL1wkZmlsZSVnJ2AKLSsJICBlbHNlCi0rCSAgICAjIGZhc3RfaW5zdGFs bCBpcyBzZXQgdG8gbmVlZGxlc3MKLSsJICAgIHJlbGlua19jb21tYW5kPQotKwkgIGZpCi0rCWVs c2UKLSsJICBsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGls ZV9ycGF0aCIKLSsJICByZWxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6ZV9jb21t YW5kJGZpbmFsaXplX3JwYXRoIgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBSZXBsYWNl IHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgotKyAgICAgIGxpbmtfY29tbWFuZD1gJEVD SE8gIiRsaW5rX2NvbW1hbmQiIHwgJFNFRCAncyVAT1VUUFVUQCUnIiRvdXRwdXRfb2JqZGlyLyRv dXRwdXRuYW1lIiclZydgCi0rCi0rICAgICAgIyBEZWxldGUgdGhlIG9sZCBvdXRwdXQgZmlsZXMu Ci0rICAgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkb3V0cHV0ICRvdXRwdXRfb2JqZGlyLyRvdXRw dXRuYW1lICRvdXRwdXRfb2JqZGlyL2x0LSRvdXRwdXRuYW1lCi0rCi0rICAgICAgZnVuY19zaG93 X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0ICQ/JwotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRw b3N0bGlua19jbWRzIjsgdGhlbgotKwlmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dF9vYmpkaXIv JG91dHB1dG5hbWUiCi0rCXBvc3RsaW5rX2NtZHM9YGZ1bmNfZWNob19hbGwgIiRwb3N0bGlua19j bWRzIiB8ICRTRUQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSIn JWcnIC1lICdzJUBUT09MX09VVFBVVEAlJyIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IiclZydg Ci0rCWZ1bmNfZXhlY3V0ZV9jbWRzICIkcG9zdGxpbmtfY21kcyIgJ2V4aXQgJD8nCi0rICAgICAg ZmkKLSsKLSsgICAgICAjIE5vdyBjcmVhdGUgdGhlIHdyYXBwZXIgc2NyaXB0LgotKyAgICAgIGZ1 bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1dCIKLSsKLSsgICAgICAjIFF1b3RlIHRoZSByZWxp bmsgY29tbWFuZCBmb3Igc2hpcHBpbmcuCi0rICAgICAgaWYgdGVzdCAtbiAiJHJlbGlua19jb21t YW5kIjsgdGhlbgotKwkjIFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNv bXBpbGVyIGJlaGF2aW9yCi0rCWZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5r OyBkbwotKwkgIGlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCi0rCSAgICBy ZWxpbmtfY29tbWFuZD0ieyB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCIgfHwgJGx0X3Vuc2V0ICR2 YXIgfHwgeyAkdmFyPTsgZXhwb3J0ICR2YXI7IH07IH07ICRyZWxpbmtfY29tbWFuZCIKLSsJICBl bGlmIGV2YWwgdmFyX3ZhbHVlPVwkJHZhcjsgdGVzdCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KLSsJ ICAgIHJlbGlua19jb21tYW5kPSIkdmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIK LSsJICBlbHNlCi0rCSAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkdmFyX3ZhbHVlIgotKwkgICAg cmVsaW5rX2NvbW1hbmQ9IiR2YXI9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBvcnQg JHZhcjsgJHJlbGlua19jb21tYW5kIgotKwkgIGZpCi0rCWRvbmUKLSsJcmVsaW5rX2NvbW1hbmQ9 IihjZCBgcHdkYDsgJHJlbGlua19jb21tYW5kKSIKLSsJcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIk cmVsaW5rX2NvbW1hbmQiIHwgJFNFRCAiJHNlZF9xdW90ZV9zdWJzdCJgCi0rICAgICAgZmkKLSsK LSsgICAgICAjIE9ubHkgYWN0dWFsbHkgZG8gdGhpbmdzIGlmIG5vdCBpbiBkcnkgcnVuIG1vZGUu Ci0rICAgICAgJG9wdF9kcnlfcnVuIHx8IHsKLSsJIyB3aW4zMiB3aWxsIHRoaW5rIHRoZSBzY3Jp cHQgaXMgYSBiaW5hcnkgaWYgaXQgaGFzCi0rCSMgYSAuZXhlIHN1ZmZpeCwgc28gd2Ugc3RyaXAg aXQgb2ZmIGhlcmUuCi0rCWNhc2UgJG91dHB1dCBpbgotKwkgICouZXhlKSBmdW5jX3N0cmlwbmFt ZSAnJyAnLmV4ZScgIiRvdXRwdXQiCi0rCSAgICAgICAgIG91dHB1dD0kZnVuY19zdHJpcG5hbWVf cmVzdWx0IDs7Ci0rCWVzYWMKLSsJIyB0ZXN0IGZvciBjeWd3aW4gYmVjYXVzZSBtdiBmYWlscyB3 L28gLmV4ZSBleHRlbnNpb25zCi0rCWNhc2UgJGhvc3QgaW4KLSsJICAqY3lnd2luKikKLSsJICAg IGV4ZWV4dD0uZXhlCi0rCSAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRvdXRwdXRuYW1l IgotKwkgICAgb3V0cHV0bmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7Ci0rCSAgKikgZXhl ZXh0PSA7OwotKwllc2FjCi0rCWNhc2UgJGhvc3QgaW4KLSsJICAqY3lnd2luKiB8ICptaW5ndyog KQotKwkgICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJG91dHB1dCIgIiIgIi4iCi0rCSAg ICBvdXRwdXRfbmFtZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKLSsJICAgIG91dHB1dF9wYXRoPSRm dW5jX2Rpcm5hbWVfcmVzdWx0Ci0rCSAgICBjd3JhcHBlcnNvdXJjZT0iJG91dHB1dF9wYXRoLyRv YmpkaXIvbHQtJG91dHB1dF9uYW1lLmMiCi0rCSAgICBjd3JhcHBlcj0iJG91dHB1dF9wYXRoLyRv dXRwdXRfbmFtZS5leGUiCi0rCSAgICAkUk0gJGN3cmFwcGVyc291cmNlICRjd3JhcHBlcgotKwkg ICAgdHJhcCAiJFJNICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXI7IGV4aXQgJEVYSVRfRkFJTFVS RSIgMSAyIDE1Ci0rCi0rCSAgICBmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjID4gJGN3cmFwcGVy c291cmNlCi0rCi0rCSAgICAjIFRoZSB3cmFwcGVyIGV4ZWN1dGFibGUgaXMgYnVpbHQgdXNpbmcg dGhlICRob3N0IGNvbXBpbGVyLAotKwkgICAgIyBiZWNhdXNlIGl0IGNvbnRhaW5zICRob3N0IHBh dGhzIGFuZCBmaWxlcy4gSWYgY3Jvc3MtCi0rCSAgICAjIGNvbXBpbGluZywgaXQsIGxpa2UgdGhl IHRhcmdldCBleGVjdXRhYmxlLCBtdXN0IGJlCi0rCSAgICAjIGV4ZWN1dGVkIG9uIHRoZSAkaG9z dCBvciB1bmRlciBhbiBlbXVsYXRpb24gZW52aXJvbm1lbnQuCi0rCSAgICAkb3B0X2RyeV9ydW4g fHwgewotKwkgICAgICAkTFRDQyAkTFRDRkxBR1MgLW8gJGN3cmFwcGVyICRjd3JhcHBlcnNvdXJj ZQotKwkgICAgICAkU1RSSVAgJGN3cmFwcGVyCi0rCSAgICB9Ci0rCi0rCSAgICAjIE5vdywgY3Jl YXRlIHRoZSB3cmFwcGVyIHNjcmlwdCBmb3IgZnVuY19zb3VyY2UgdXNlOgotKwkgICAgZnVuY19s dHdyYXBwZXJfc2NyaXB0bmFtZSAkY3dyYXBwZXIKLSsJICAgICRSTSAkZnVuY19sdHdyYXBwZXJf c2NyaXB0bmFtZV9yZXN1bHQKLSsJICAgIHRyYXAgIiRSTSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0 bmFtZV9yZXN1bHQ7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1Ci0rCSAgICAkb3B0X2RyeV9y dW4gfHwgewotKwkgICAgICAjIG5vdGU6IHRoaXMgc2NyaXB0IHdpbGwgbm90IGJlIGV4ZWN1dGVk LCBzbyBkbyBub3QgY2htb2QuCi0rCSAgICAgIGlmIHRlc3QgIngkYnVpbGQiID0gIngkaG9zdCIg OyB0aGVuCi0rCQkkY3dyYXBwZXIgLS1sdC1kdW1wLXNjcmlwdCA+ICRmdW5jX2x0d3JhcHBlcl9z Y3JpcHRuYW1lX3Jlc3VsdAotKwkgICAgICBlbHNlCi0rCQlmdW5jX2VtaXRfd3JhcHBlciBubyA+ ICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAotKwkgICAgICBmaQotKwkgICAgfQot KwkgIDs7Ci0rCSAgKiApCi0rCSAgICAkUk0gJG91dHB1dAotKwkgICAgdHJhcCAiJFJNICRvdXRw dXQ7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1Ci0rCi0rCSAgICBmdW5jX2VtaXRfd3JhcHBl ciBubyA+ICRvdXRwdXQKLSsJICAgIGNobW9kICt4ICRvdXRwdXQKLSsJICA7OwotKwllc2FjCi0r ICAgICAgfQotKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICAgIDs7Ci0rICAgIGVzYWMK LSsKLSsgICAgIyBTZWUgaWYgd2UgbmVlZCB0byBidWlsZCBhbiBvbGQtZmFzaGlvbmVkIGFyY2hp dmUuCi0rICAgIGZvciBvbGRsaWIgaW4gJG9sZGxpYnM7IGRvCi0rCi0rICAgICAgaWYgdGVzdCAi JGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBjb252ZW5pZW5jZTsgdGhlbgotKwlvbGRvYmpzPSIkbGli b2Jqc19zYXZlICRzeW1maWxlb2JqIgotKwlhZGRsaWJzPSIkY29udmVuaWVuY2UiCi0rCWJ1aWxk X2xpYnRvb2xfbGlicz1ubwotKyAgICAgIGVsc2UKLSsJaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xf bGlicyIgPSBtb2R1bGU7IHRoZW4KLSsJICBvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgotKwkgIGJ1 aWxkX2xpYnRvb2xfbGlicz1ubwotKwllbHNlCi0rCSAgb2xkb2Jqcz0iJG9sZF9kZXBsaWJzICRu b25fcGljX29iamVjdHMiCi0rCSAgaWYgdGVzdCAiJHByZWxvYWQiID0geWVzICYmIHRlc3QgLWYg IiRzeW1maWxlb2JqIjsgdGhlbgotKwkgICAgZnVuY19hcHBlbmQgb2xkb2JqcyAiICRzeW1maWxl b2JqIgotKwkgIGZpCi0rCWZpCi0rCWFkZGxpYnM9IiRvbGRfY29udmVuaWVuY2UiCi0rICAgICAg ZmkKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkYWRkbGlicyI7IHRoZW4KLSsJZ2VudG9wPSIkb3V0 cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKLSsJZnVuY19hcHBlbmQgZ2VuZXJhdGVkICIgJGdl bnRvcCIKLSsKLSsJZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGFkZGxpYnMKLSsJZnVu Y19hcHBlbmQgb2xkb2JqcyAiICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgotKyAgICAg IGZpCi0rCi0rICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIGFyY2hpdmUgY29tbWFuZHMu Ci0rICAgICAgaWYgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIHRlc3Qg IiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0rCWNtZHM9JG9sZF9hcmNoaXZlX2Zy b21fbmV3X2NtZHMKLSsgICAgICBlbHNlCi0rCi0rCSMgQWRkIGFueSBvYmplY3RzIGZyb20gcHJl bG9hZGVkIGNvbnZlbmllbmNlIGxpYnJhcmllcwotKwlpZiB0ZXN0IC1uICIkZGxwcmVmaWxlcyI7 IHRoZW4KLSsJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgotKwkgIGZ1 bmNfYXBwZW5kIGdlbmVyYXRlZCAiICRnZW50b3AiCi0rCi0rCSAgZnVuY19leHRyYWN0X2FyY2hp dmVzICRnZW50b3AgJGRscHJlZmlsZXMKLSsJICBmdW5jX2FwcGVuZCBvbGRvYmpzICIgJGZ1bmNf ZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCi0rCWZpCi0rCi0rCSMgUE9TSVggZGVtYW5kcyBubyBw YXRocyB0byBiZSBlbmNvZGVkIGluIGFyY2hpdmVzLiAgV2UgaGF2ZQotKwkjIHRvIGF2b2lkIGNy ZWF0aW5nIGFyY2hpdmVzIHdpdGggZHVwbGljYXRlIGJhc2VuYW1lcyBpZiB3ZQotKwkjIG1pZ2h0 IGhhdmUgdG8gZXh0cmFjdCB0aGVtIGFmdGVyd2FyZHMsIGUuZy4sIHdoZW4gY3JlYXRpbmcgYQot KwkjIHN0YXRpYyBhcmNoaXZlIG91dCBvZiBhIGNvbnZlbmllbmNlIGxpYnJhcnksIG9yIHdoZW4g bGlua2luZwotKwkjIHRoZSBlbnRpcmV0eSBvZiBhIGxpYnRvb2wgYXJjaGl2ZSBpbnRvIGFub3Ro ZXIgKGN1cnJlbnRseQotKwkjIG5vdCBzdXBwb3J0ZWQgYnkgbGlidG9vbCkuCi0rCWlmIChmb3Ig b2JqIGluICRvbGRvYmpzCi0rCSAgICBkbwotKwkgICAgICBmdW5jX2Jhc2VuYW1lICIkb2JqIgot KwkgICAgICAkRUNITyAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKwkgICAgZG9uZSB8IHNvcnQg fCBzb3J0IC11YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCi0rCSAgOgotKwllbHNlCi0rCSAgZWNo byAiY29weWluZyBzZWxlY3RlZCBvYmplY3QgZmlsZXMgdG8gYXZvaWQgYmFzZW5hbWUgY29uZmxp Y3RzLi4uIgotKwkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0rCSAg ZnVuY19hcHBlbmQgZ2VuZXJhdGVkICIgJGdlbnRvcCIKLSsJICBmdW5jX21rZGlyX3AgIiRnZW50 b3AiCi0rCSAgc2F2ZV9vbGRvYmpzPSRvbGRvYmpzCi0rCSAgb2xkb2Jqcz0KLSsJICBjb3VudGVy PTEKLSsJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKLSsJICBkbwotKwkgICAgZnVuY19iYXNl bmFtZSAiJG9iaiIKLSsJICAgIG9iamJhc2U9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJICAg IGNhc2UgIiAkb2xkb2JqcyAiIGluCi0rCSAgICAiICIpIG9sZG9ianM9JG9iaiA7OwotKwkgICAg KltcIC9dIiRvYmpiYXNlICIqKQotKwkgICAgICB3aGlsZSA6OyBkbwotKwkJIyBNYWtlIHN1cmUg d2UgZG9uJ3QgcGljayBhbiBhbHRlcm5hdGUgbmFtZSB0aGF0IGFsc28KLSsJCSMgb3ZlcmxhcHMu Ci0rCQluZXdvYmo9bHQkY291bnRlci0kb2JqYmFzZQotKwkJZnVuY19hcml0aCAkY291bnRlciAr IDEKLSsJCWNvdW50ZXI9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCQljYXNlICIgJG9sZG9ianMgIiBp bgotKwkJKltcIC9dIiRuZXdvYmogIiopIDs7Ci0rCQkqKSBpZiB0ZXN0ICEgLWYgIiRnZW50b3Av JG5ld29iaiI7IHRoZW4gYnJlYWs7IGZpIDs7Ci0rCQllc2FjCi0rCSAgICAgIGRvbmUKLSsJICAg ICAgZnVuY19zaG93X2V2YWwgImxuICRvYmogJGdlbnRvcC8kbmV3b2JqIHx8IGNwICRvYmogJGdl bnRvcC8kbmV3b2JqIgotKwkgICAgICBmdW5jX2FwcGVuZCBvbGRvYmpzICIgJGdlbnRvcC8kbmV3 b2JqIgotKwkgICAgICA7OwotKwkgICAgKikgZnVuY19hcHBlbmQgb2xkb2JqcyAiICRvYmoiIDs7 Ci0rCSAgICBlc2FjCi0rCSAgZG9uZQotKwlmaQotKwlldmFsIGNtZHM9XCIkb2xkX2FyY2hpdmVf Y21kc1wiCi0rCi0rCWZ1bmNfbGVuICIgJGNtZHMiCi0rCWxlbj0kZnVuY19sZW5fcmVzdWx0Ci0r CWlmIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4i IC1sZSAtMTsgdGhlbgotKwkgIGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMKLSsJZWxpZiB0ZXN0IC1u ICIkYXJjaGl2ZXJfbGlzdF9zcGVjIjsgdGhlbgotKwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgY29t bWFuZCBmaWxlIGFyY2hpdmUgbGlua2luZy4uLiIKLSsJICBmb3Igb2JqIGluICRvbGRvYmpzCi0r CSAgZG8KLSsJICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkb2JqIgotKwkgICAgJEVDSE8gIiRmdW5j X3RvX3Rvb2xfZmlsZV9yZXN1bHQiCi0rCSAgZG9uZSA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmxpYmNtZAotKwkgIGZ1bmNfdG9fdG9vbF9maWxlICIkb3V0cHV0X29iamRpci8kbGlibmFtZS5s aWJjbWQiCi0rCSAgb2xkb2Jqcz0iICRhcmNoaXZlcl9saXN0X3NwZWMkZnVuY190b190b29sX2Zp bGVfcmVzdWx0IgotKwkgIGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMKLSsJZWxzZQotKwkgICMgdGhl IGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBsaW5rIGluIG9uZSBzdGVwLCBsaW5rIGluIHBh cnRzCi0rCSAgZnVuY192ZXJib3NlICJ1c2luZyBwaWVjZXdpc2UgYXJjaGl2ZSBsaW5raW5nLi4u IgotKwkgIHNhdmVfUkFOTElCPSRSQU5MSUIKLSsJICBSQU5MSUI9OgotKwkgIG9iamxpc3Q9Ci0r CSAgY29uY2F0X2NtZHM9Ci0rCSAgc2F2ZV9vbGRvYmpzPSRvbGRvYmpzCi0rCSAgb2xkb2Jqcz0K LSsJICAjIElzIHRoZXJlIGEgYmV0dGVyIHdheSBvZiBmaW5kaW5nIHRoZSBsYXN0IG9iamVjdCBp biB0aGUgbGlzdD8KLSsJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKLSsJICBkbwotKwkgICAg bGFzdF9vbGRvYmo9JG9iagotKwkgIGRvbmUKLSsJICBldmFsIHRlc3RfY21kcz1cIiRvbGRfYXJj aGl2ZV9jbWRzXCIKLSsJICBmdW5jX2xlbiAiICR0ZXN0X2NtZHMiCi0rCSAgbGVuMD0kZnVuY19s ZW5fcmVzdWx0Ci0rCSAgbGVuPSRsZW4wCi0rCSAgZm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCi0r CSAgZG8KLSsJICAgIGZ1bmNfbGVuICIgJG9iaiIKLSsJICAgIGZ1bmNfYXJpdGggJGxlbiArICRm dW5jX2xlbl9yZXN1bHQKLSsJICAgIGxlbj0kZnVuY19hcml0aF9yZXN1bHQKLSsJICAgIGZ1bmNf YXBwZW5kIG9iamxpc3QgIiAkb2JqIgotKwkgICAgaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2Nt ZF9sZW4iOyB0aGVuCi0rCSAgICAgIDoKLSsJICAgIGVsc2UKLSsJICAgICAgIyB0aGUgYWJvdmUg Y29tbWFuZCBzaG91bGQgYmUgdXNlZCBiZWZvcmUgaXQgZ2V0cyB0b28gbG9uZwotKwkgICAgICBv bGRvYmpzPSRvYmpsaXN0Ci0rCSAgICAgIGlmIHRlc3QgIiRvYmoiID0gIiRsYXN0X29sZG9iaiIg OyB0aGVuCi0rCQlSQU5MSUI9JHNhdmVfUkFOTElCCi0rCSAgICAgIGZpCi0rCSAgICAgIHRlc3Qg LXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgotKwkgICAgICBl dmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9JG9sZF9hcmNoaXZlX2NtZHNcIgotKwkg ICAgICBvYmpsaXN0PQotKwkgICAgICBsZW49JGxlbjAKLSsJICAgIGZpCi0rCSAgZG9uZQotKwkg IFJBTkxJQj0kc2F2ZV9SQU5MSUIKLSsJICBvbGRvYmpzPSRvYmpsaXN0Ci0rCSAgaWYgdGVzdCAi WCRvbGRvYmpzIiA9ICJYIiA7IHRoZW4KLSsJICAgIGV2YWwgY21kcz1cIlwkY29uY2F0X2NtZHNc IgotKwkgIGVsc2UKLSsJICAgIGV2YWwgY21kcz1cIlwkY29uY2F0X2NtZHN+XCRvbGRfYXJjaGl2 ZV9jbWRzXCIKLSsJICBmaQotKwlmaQotKyAgICAgIGZpCi0rICAgICAgZnVuY19leGVjdXRlX2Nt ZHMgIiRjbWRzIiAnZXhpdCAkPycKLSsgICAgZG9uZQotKwotKyAgICB0ZXN0IC1uICIkZ2VuZXJh dGVkIiAmJiBcCi0rICAgICAgZnVuY19zaG93X2V2YWwgIiR7Uk19ciRnZW5lcmF0ZWQiCi0rCi0r ICAgICMgTm93IGNyZWF0ZSB0aGUgbGlidG9vbCBhcmNoaXZlLgotKyAgICBjYXNlICRvdXRwdXQg aW4KLSsgICAgKi5sYSkKLSsgICAgICBvbGRfbGlicmFyeT0KLSsgICAgICB0ZXN0ICIkYnVpbGRf b2xkX2xpYnMiID0geWVzICYmIG9sZF9saWJyYXJ5PSIkbGlibmFtZS4kbGliZXh0IgotKyAgICAg IGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1dCIKLSsKLSsgICAgICAjIFByZXNlcnZlIGFu eSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCi0rICAgICAgZm9y IHZhciBpbiAkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms7IGRvCi0rCWlmIGV2YWwgdGVzdCAt eiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCi0rCSAgcmVsaW5rX2NvbW1hbmQ9InsgdGVzdCAteiBc IlwkeyR2YXIrc2V0fVwiIHx8ICRsdF91bnNldCAkdmFyIHx8IHsgJHZhcj07IGV4cG9ydCAkdmFy OyB9OyB9OyAkcmVsaW5rX2NvbW1hbmQiCi0rCWVsaWYgZXZhbCB2YXJfdmFsdWU9XCQkdmFyOyB0 ZXN0IC16ICIkdmFyX3ZhbHVlIjsgdGhlbgotKwkgIHJlbGlua19jb21tYW5kPSIkdmFyPTsgZXhw b3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKLSsJZWxzZQotKwkgIGZ1bmNfcXVvdGVfZm9yX2V2 YWwgIiR2YXJfdmFsdWUiCi0rCSAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9JGZ1bmNfcXVvdGVfZm9y X2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgotKwlmaQotKyAgICAg IGRvbmUKLSsgICAgICAjIFF1b3RlIHRoZSBsaW5rIGNvbW1hbmQgZm9yIHNoaXBwaW5nLgotKyAg ICAgIHJlbGlua19jb21tYW5kPSIoY2QgYHB3ZGA7ICRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZl X2FyZ3MgLS1tb2RlPXJlbGluayAkbGlidG9vbF9hcmdzIEBpbnN0X3ByZWZpeF9kaXJAKSIKLSsg ICAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIiRyZWxpbmtfY29tbWFuZCIgfCAkU0VEICIkc2Vk X3F1b3RlX3N1YnN0ImAKLSsgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfYXV0b21hdGljIiA9IHll cyA7IHRoZW4KLSsJcmVsaW5rX2NvbW1hbmQ9Ci0rICAgICAgZmkKLSsKLSsgICAgICAjIE9ubHkg Y3JlYXRlIHRoZSBvdXRwdXQgaWYgbm90IGEgZHJ5IHJ1bi4KLSsgICAgICAkb3B0X2RyeV9ydW4g fHwgewotKwlmb3IgaW5zdGFsbGVkIGluIG5vIHllczsgZG8KLSsJICBpZiB0ZXN0ICIkaW5zdGFs bGVkIiA9IHllczsgdGhlbgotKwkgICAgaWYgdGVzdCAteiAiJGluc3RhbGxfbGliZGlyIjsgdGhl bgotKwkgICAgICBicmVhawotKwkgICAgZmkKLSsJICAgIG91dHB1dD0iJG91dHB1dF9vYmpkaXIv JG91dHB1dG5hbWUiaQotKwkgICAgIyBSZXBsYWNlIGFsbCB1bmluc3RhbGxlZCBsaWJ0b29sIGxp YnJhcmllcyB3aXRoIHRoZSBpbnN0YWxsZWQgb25lcwotKwkgICAgbmV3ZGVwZW5kZW5jeV9saWJz PQotKwkgICAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICAgICBjYXNl ICRkZXBsaWIgaW4KLSsJICAgICAgKi5sYSkKLSsJCWZ1bmNfYmFzZW5hbWUgIiRkZXBsaWIiCi0r CQluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1u IC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkZGVwbGliYAotKwkJdGVzdCAteiAiJGxpYmRp ciIgJiYgXAotKwkJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRkZXBsaWInIGlzIG5vdCBhIHZhbGlk IGxpYnRvb2wgYXJjaGl2ZSIKLSsJCWZ1bmNfYXBwZW5kIG5ld2RlcGVuZGVuY3lfbGlicyAiICR7 bHRfc3lzcm9vdDorPX0kbGliZGlyLyRuYW1lIgotKwkJOzsKLSsJICAgICAgLUwqKQotKwkJZnVu Y19zdHJpcG5hbWUgLUwgJycgIiRkZXBsaWIiCi0rCQlmdW5jX3JlcGxhY2Vfc3lzcm9vdCAiJGZ1 bmNfc3RyaXBuYW1lX3Jlc3VsdCIKLSsJCWZ1bmNfYXBwZW5kIG5ld2RlcGVuZGVuY3lfbGlicyAi IC1MJGZ1bmNfcmVwbGFjZV9zeXNyb290X3Jlc3VsdCIKLSsJCTs7Ci0rCSAgICAgIC1SKikKLSsJ CWZ1bmNfc3RyaXBuYW1lIC1SICcnICIkZGVwbGliIgotKwkJZnVuY19yZXBsYWNlX3N5c3Jvb3Qg IiRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCi0rCQlmdW5jX2FwcGVuZCBuZXdkZXBlbmRlbmN5X2xp YnMgIiAtUiRmdW5jX3JlcGxhY2Vfc3lzcm9vdF9yZXN1bHQiCi0rCQk7OwotKwkgICAgICAqKSBm dW5jX2FwcGVuZCBuZXdkZXBlbmRlbmN5X2xpYnMgIiAkZGVwbGliIiA7OwotKwkgICAgICBlc2Fj Ci0rCSAgICBkb25lCi0rCSAgICBkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMi Ci0rCSAgICBuZXdkbGZpbGVzPQotKwotKwkgICAgZm9yIGxpYiBpbiAkZGxmaWxlczsgZG8KLSsJ ICAgICAgY2FzZSAkbGliIGluCi0rCSAgICAgICoubGEpCi0rCSAgICAgICAgZnVuY19iYXNlbmFt ZSAiJGxpYiIKLSsJCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJCWV2YWwgbGliZGly PWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCi0rCQl0ZXN0IC16 ICIkbGliZGlyIiAmJiBcCi0rCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEg dmFsaWQgbGlidG9vbCBhcmNoaXZlIgotKwkJZnVuY19hcHBlbmQgbmV3ZGxmaWxlcyAiICR7bHRf c3lzcm9vdDorPX0kbGliZGlyLyRuYW1lIgotKwkJOzsKLSsJICAgICAgKikgZnVuY19hcHBlbmQg bmV3ZGxmaWxlcyAiICRsaWIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJICAgIGRs ZmlsZXM9IiRuZXdkbGZpbGVzIgotKwkgICAgbmV3ZGxwcmVmaWxlcz0KLSsJICAgIGZvciBsaWIg aW4gJGRscHJlZmlsZXM7IGRvCi0rCSAgICAgIGNhc2UgJGxpYiBpbgotKwkgICAgICAqLmxhKQot KwkJIyBPbmx5IHBhc3MgcHJlb3BlbmVkIGZpbGVzIHRvIHRoZSBwc2V1ZG8tYXJjaGl2ZSAoZm9y Ci0rCQkjIGV2ZW50dWFsIGxpbmtpbmcgd2l0aCB0aGUgYXBwLiB0aGF0IGxpbmtzIGl0KSBpZiB3 ZQotKwkJIyBkaWRuJ3QgYWxyZWFkeSBsaW5rIHRoZSBwcmVvcGVuZWQgb2JqZWN0cyBkaXJlY3Rs eSBpbnRvCi0rCQkjIHRoZSBsaWJyYXJ5OgotKwkJZnVuY19iYXNlbmFtZSAiJGxpYiIKLSsJCW5h bWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUg J3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCi0rCQl0ZXN0IC16ICIkbGliZGlyIiAmJiBc Ci0rCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBh cmNoaXZlIgotKwkJZnVuY19hcHBlbmQgbmV3ZGxwcmVmaWxlcyAiICR7bHRfc3lzcm9vdDorPX0k bGliZGlyLyRuYW1lIgotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgICAgZGxw cmVmaWxlcz0iJG5ld2RscHJlZmlsZXMiCi0rCSAgZWxzZQotKwkgICAgbmV3ZGxmaWxlcz0KLSsJ ICAgIGZvciBsaWIgaW4gJGRsZmlsZXM7IGRvCi0rCSAgICAgIGNhc2UgJGxpYiBpbgotKwkJW1xc L10qIHwgW0EtWmEtel06W1xcL10qKSBhYnM9IiRsaWIiIDs7Ci0rCQkqKSBhYnM9YHB3ZGAiLyRs aWIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgZnVuY19hcHBlbmQgbmV3ZGxmaWxlcyAiICRh YnMiCi0rCSAgICBkb25lCi0rCSAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKLSsJICAgIG5ld2Rs cHJlZmlsZXM9Ci0rCSAgICBmb3IgbGliIGluICRkbHByZWZpbGVzOyBkbwotKwkgICAgICBjYXNl ICRsaWIgaW4KLSsJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzPSIkbGliIiA7OwotKwkJ KikgYWJzPWBwd2RgIi8kbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIGZ1bmNfYXBwZW5k IG5ld2RscHJlZmlsZXMgIiAkYWJzIgotKwkgICAgZG9uZQotKwkgICAgZGxwcmVmaWxlcz0iJG5l d2RscHJlZmlsZXMiCi0rCSAgZmkKLSsJICAkUk0gJG91dHB1dAotKwkgICMgcGxhY2UgZGxuYW1l IGluIGNvcnJlY3QgcG9zaXRpb24gZm9yIGN5Z3dpbgotKwkgICMgSW4gZmFjdCwgaXQgd291bGQg YmUgbmljZSBpZiB3ZSBjb3VsZCB1c2UgdGhpcyBjb2RlIGZvciBhbGwgdGFyZ2V0Ci0rCSAgIyBz eXN0ZW1zIHRoYXQgY2FuJ3QgaGFyZC1jb2RlIGxpYnJhcnkgcGF0aHMgaW50byB0aGVpciBleGVj dXRhYmxlcwotKwkgICMgYW5kIHRoYXQgaGF2ZSBubyBzaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlh YmxlIGluZGVwZW5kZW50IG9mIFBBVEgsCi0rCSAgIyBidXQgaXQgdHVybnMgb3V0IHdlIGNhbid0 IGVhc2lseSBkZXRlcm1pbmUgdGhhdCBmcm9tIGluc3BlY3RpbmcKLSsJICAjIGxpYnRvb2wgdmFy aWFibGVzLCBzbyB3ZSBoYXZlIHRvIGhhcmQtY29kZSB0aGUgT1NzIHRvIHdoaWNoIGl0Ci0rCSAg IyBhcHBsaWVzIGhlcmU7IGF0IHRoZSBtb21lbnQsIHRoYXQgbWVhbnMgcGxhdGZvcm1zIHRoYXQg dXNlIHRoZSBQRQotKwkgICMgb2JqZWN0IGZvcm1hdCB3aXRoIERMTCBmaWxlcy4gIFNlZSB0aGUg bG9uZyBjb21tZW50IGF0IHRoZSB0b3Agb2YKLSsJICAjIHRlc3RzL2JpbmRpci5hdCBmb3IgZnVs bCBkZXRhaWxzLgotKwkgIHRkbG5hbWU9JGRsbmFtZQotKwkgIGNhc2UgJGhvc3QsJG91dHB1dCwk aW5zdGFsbGVkLCRtb2R1bGUsJGRsbmFtZSBpbgotKwkgICAgKmN5Z3dpbiosKmxhaSx5ZXMsbm8s Ki5kbGwgfCAqbWluZ3cqLCpsYWkseWVzLG5vLCouZGxsIHwgKmNlZ2NjKiwqbGFpLHllcyxubywq LmRsbCkKLSsJICAgICAgIyBJZiBhIC1iaW5kaXIgYXJndW1lbnQgd2FzIHN1cHBsaWVkLCBwbGFj ZSB0aGUgZGxsIHRoZXJlLgotKwkgICAgICBpZiB0ZXN0ICJ4JGJpbmRpciIgIT0geCA7Ci0rCSAg ICAgIHRoZW4KLSsJCWZ1bmNfcmVsYXRpdmVfcGF0aCAiJGluc3RhbGxfbGliZGlyIiAiJGJpbmRp ciIKLSsJCXRkbG5hbWU9JGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQkZGxuYW1lCi0rCSAgICAg IGVsc2UKLSsJCSMgT3RoZXJ3aXNlIGZhbGwgYmFjayBvbiBoZXVyaXN0aWMuCi0rCQl0ZGxuYW1l PS4uL2Jpbi8kZGxuYW1lCi0rCSAgICAgIGZpCi0rCSAgICAgIDs7Ci0rCSAgZXNhYwotKwkgICRF Q0hPID4gJG91dHB1dCAiXAotKyMgJG91dHB1dG5hbWUgLSBhIGxpYnRvb2wgbGlicmFyeSBmaWxl Ci0rIyBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJT SU9OCi0rIwotKyMgUGxlYXNlIERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQotKyMgSXQgaXMgbmVj ZXNzYXJ5IGZvciBsaW5raW5nIHRoZSBsaWJyYXJ5LgotKwotKyMgVGhlIG5hbWUgdGhhdCB3ZSBj YW4gZGxvcGVuKDMpLgotK2RsbmFtZT0nJHRkbG5hbWUnCi0rCi0rIyBOYW1lcyBvZiB0aGlzIGxp YnJhcnkuCi0rbGlicmFyeV9uYW1lcz0nJGxpYnJhcnlfbmFtZXMnCi0rCi0rIyBUaGUgbmFtZSBv ZiB0aGUgc3RhdGljIGFyY2hpdmUuCi0rb2xkX2xpYnJhcnk9JyRvbGRfbGlicmFyeScKLSsKLSsj IExpbmtlciBmbGFncyB0aGF0IGNhbiBub3QgZ28gaW4gZGVwZW5kZW5jeV9saWJzLgotK2luaGVy aXRlZF9saW5rZXJfZmxhZ3M9JyRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncycKLSsKLSsjIExp YnJhcmllcyB0aGF0IHRoaXMgb25lIGRlcGVuZHMgdXBvbi4KLStkZXBlbmRlbmN5X2xpYnM9JyRk ZXBlbmRlbmN5X2xpYnMnCi0rCi0rIyBOYW1lcyBvZiBhZGRpdGlvbmFsIHdlYWsgbGlicmFyaWVz IHByb3ZpZGVkIGJ5IHRoaXMgbGlicmFyeQotK3dlYWtfbGlicmFyeV9uYW1lcz0nJHdlYWtfbGli cycKLSsKLSsjIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yICRsaWJuYW1lLgotK2N1cnJlbnQ9JGN1 cnJlbnQKLSthZ2U9JGFnZQotK3JldmlzaW9uPSRyZXZpc2lvbgotKwotKyMgSXMgdGhpcyBhbiBh bHJlYWR5IGluc3RhbGxlZCBsaWJyYXJ5PwotK2luc3RhbGxlZD0kaW5zdGFsbGVkCi0rCi0rIyBT aG91bGQgd2Ugd2FybiBhYm91dCBwb3J0YWJpbGl0eSB3aGVuIGxpbmtpbmcgYWdhaW5zdCAtbW9k dWxlcz8KLStzaG91bGRub3RsaW5rPSRtb2R1bGUKLSsKLSsjIEZpbGVzIHRvIGRsb3Blbi9kbHBy ZW9wZW4KLStkbG9wZW49JyRkbGZpbGVzJwotK2RscHJlb3Blbj0nJGRscHJlZmlsZXMnCi0rCi0r IyBEaXJlY3RvcnkgdGhhdCB0aGlzIGxpYnJhcnkgbmVlZHMgdG8gYmUgaW5zdGFsbGVkIGluOgot K2xpYmRpcj0nJGluc3RhbGxfbGliZGlyJyIKLSsJICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IG5v ICYmIHRlc3QgIiRuZWVkX3JlbGluayIgPSB5ZXM7IHRoZW4KLSsJICAgICRFQ0hPID4+ICRvdXRw dXQgIlwKLStyZWxpbmtfY29tbWFuZD1cIiRyZWxpbmtfY29tbWFuZFwiIgotKwkgIGZpCi0rCWRv bmUKLSsgICAgICB9Ci0rCi0rICAgICAgIyBEbyBhIHN5bWJvbGljIGxpbmsgc28gdGhhdCB0aGUg bGlidG9vbCBhcmNoaXZlIGNhbiBiZSBmb3VuZCBpbgotKyAgICAgICMgTERfTElCUkFSWV9QQVRI IGJlZm9yZSB0aGUgcHJvZ3JhbSBpcyBpbnN0YWxsZWQuCi0rICAgICAgZnVuY19zaG93X2V2YWwg JyggY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiAkUk0gIiRvdXRwdXRuYW1lIiAmJiAkTE5fUyAiLi4v JG91dHB1dG5hbWUiICIkb3V0cHV0bmFtZSIgKScgJ2V4aXQgJD8nCi0rICAgICAgOzsKLSsgICAg ZXNhYwotKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKLSt9Ci0rCi0reyB0ZXN0ICIkb3B0X21vZGUi ID0gbGluayB8fCB0ZXN0ICIkb3B0X21vZGUiID0gcmVsaW5rOyB9ICYmCi0rICAgIGZ1bmNfbW9k ZV9saW5rICR7MSsiJEAifQotKwotKwotKyMgZnVuY19tb2RlX3VuaW5zdGFsbCBhcmcuLi4KLStm dW5jX21vZGVfdW5pbnN0YWxsICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgIFJNPSIkbm9u b3B0IgotKyAgICBmaWxlcz0KLSsgICAgcm1mb3JjZT0KLSsgICAgZXhpdF9zdGF0dXM9MAotKwot KyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZh cmlhYmxlcyByYXRoZXIKLSsgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCi0rICAg IGxpYnRvb2xfaW5zdGFsbF9tYWdpYz0iJG1hZ2ljIgotKwotKyAgICBmb3IgYXJnCi0rICAgIGRv Ci0rICAgICAgY2FzZSAkYXJnIGluCi0rICAgICAgLWYpIGZ1bmNfYXBwZW5kIFJNICIgJGFyZyI7 IHJtZm9yY2U9eWVzIDs7Ci0rICAgICAgLSopIGZ1bmNfYXBwZW5kIFJNICIgJGFyZyIgOzsKLSsg ICAgICAqKSBmdW5jX2FwcGVuZCBmaWxlcyAiICRhcmciIDs7Ci0rICAgICAgZXNhYwotKyAgICBk b25lCi0rCi0rICAgIHRlc3QgLXogIiRSTSIgJiYgXAotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAi eW91IG11c3Qgc3BlY2lmeSBhbiBSTSBwcm9ncmFtIgotKwotKyAgICBybWRpcnM9Ci0rCi0rICAg IGZvciBmaWxlIGluICRmaWxlczsgZG8KLSsgICAgICBmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAi LiIKLSsgICAgICBkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKyAgICAgIGlmIHRlc3QgIlgk ZGlyIiA9IFguOyB0aGVuCi0rCW9kaXI9IiRvYmpkaXIiCi0rICAgICAgZWxzZQotKwlvZGlyPSIk ZGlyLyRvYmpkaXIiCi0rICAgICAgZmkKLSsgICAgICBmdW5jX2Jhc2VuYW1lICIkZmlsZSIKLSsg ICAgICBuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rICAgICAgdGVzdCAiJG9wdF9tb2Rl IiA9IHVuaW5zdGFsbCAmJiBvZGlyPSIkZGlyIgotKwotKyAgICAgICMgUmVtZW1iZXIgb2RpciBm b3IgcmVtb3ZhbCBsYXRlciwgYmVpbmcgY2FyZWZ1bCB0byBhdm9pZCBkdXBsaWNhdGVzCi0rICAg ICAgaWYgdGVzdCAiJG9wdF9tb2RlIiA9IGNsZWFuOyB0aGVuCi0rCWNhc2UgIiAkcm1kaXJzICIg aW4KLSsJICAqIiAkb2RpciAiKikgOzsKLSsJICAqKSBmdW5jX2FwcGVuZCBybWRpcnMgIiAkb2Rp ciIgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rCi0rICAgICAgIyBEb24ndCBlcnJvciBpZiB0aGUg ZmlsZSBkb2Vzbid0IGV4aXN0IGFuZCBybSAtZiB3YXMgdXNlZC4KLSsgICAgICBpZiB7IHRlc3Qg LUwgIiRmaWxlIjsgfSA+L2Rldi9udWxsIDI+JjEgfHwKLSsJIHsgdGVzdCAtaCAiJGZpbGUiOyB9 ID4vZGV2L251bGwgMj4mMSB8fAotKwkgdGVzdCAtZiAiJGZpbGUiOyB0aGVuCi0rCToKLSsgICAg ICBlbGlmIHRlc3QgLWQgIiRmaWxlIjsgdGhlbgotKwlleGl0X3N0YXR1cz0xCi0rCWNvbnRpbnVl Ci0rICAgICAgZWxpZiB0ZXN0ICIkcm1mb3JjZSIgPSB5ZXM7IHRoZW4KLSsJY29udGludWUKLSsg ICAgICBmaQotKwotKyAgICAgIHJtZmlsZXM9IiRmaWxlIgotKwotKyAgICAgIGNhc2UgJG5hbWUg aW4KLSsgICAgICAqLmxhKQotKwkjIFBvc3NpYmx5IGEgbGlidG9vbCBhcmNoaXZlLCBzbyB2ZXJp ZnkgaXQuCi0rCWlmIGZ1bmNfbGFsaWJfcCAiJGZpbGUiOyB0aGVuCi0rCSAgZnVuY19zb3VyY2Ug JGRpci8kbmFtZQotKwotKwkgICMgRGVsZXRlIHRoZSBsaWJ0b29sIGxpYnJhcmllcyBhbmQgc3lt bGlua3MuCi0rCSAgZm9yIG4gaW4gJGxpYnJhcnlfbmFtZXM7IGRvCi0rCSAgICBmdW5jX2FwcGVu ZCBybWZpbGVzICIgJG9kaXIvJG4iCi0rCSAgZG9uZQotKwkgIHRlc3QgLW4gIiRvbGRfbGlicmFy eSIgJiYgZnVuY19hcHBlbmQgcm1maWxlcyAiICRvZGlyLyRvbGRfbGlicmFyeSIKLSsKLSsJICBj YXNlICIkb3B0X21vZGUiIGluCi0rCSAgY2xlYW4pCi0rCSAgICBjYXNlICIgJGxpYnJhcnlfbmFt ZXMgIiBpbgotKwkgICAgKiIgJGRsbmFtZSAiKikgOzsKLSsJICAgICopIHRlc3QgLW4gIiRkbG5h bWUiICYmIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkb2Rpci8kZGxuYW1lIiA7OwotKwkgICAgZXNh YwotKwkgICAgdGVzdCAtbiAiJGxpYmRpciIgJiYgZnVuY19hcHBlbmQgcm1maWxlcyAiICRvZGly LyRuYW1lICRvZGlyLyR7bmFtZX1pIgotKwkgICAgOzsKLSsJICB1bmluc3RhbGwpCi0rCSAgICBp ZiB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyI7IHRoZW4KLSsJICAgICAgIyBEbyBlYWNoIGNvbW1h bmQgaW4gdGhlIHBvc3R1bmluc3RhbGwgY29tbWFuZHMuCi0rCSAgICAgIGZ1bmNfZXhlY3V0ZV9j bWRzICIkcG9zdHVuaW5zdGFsbF9jbWRzIiAndGVzdCAiJHJtZm9yY2UiID0geWVzIHx8IGV4aXRf c3RhdHVzPTEnCi0rCSAgICBmaQotKwotKwkgICAgaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5Ijsg dGhlbgotKwkgICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgb2xkX3Bvc3R1bmluc3RhbGwg Y29tbWFuZHMuCi0rCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bvc3R1bmluc3RhbGxf Y21kcyIgJ3Rlc3QgIiRybWZvcmNlIiA9IHllcyB8fCBleGl0X3N0YXR1cz0xJwotKwkgICAgZmkK LSsJICAgICMgRklYTUU6IHNob3VsZCByZWluc3RhbGwgdGhlIGJlc3QgcmVtYWluaW5nIHNoYXJl ZCBsaWJyYXJ5LgotKwkgICAgOzsKLSsJICBlc2FjCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgKi5s bykKLSsJIyBQb3NzaWJseSBhIGxpYnRvb2wgb2JqZWN0LCBzbyB2ZXJpZnkgaXQuCi0rCWlmIGZ1 bmNfbGFsaWJfcCAiJGZpbGUiOyB0aGVuCi0rCi0rCSAgIyBSZWFkIHRoZSAubG8gZmlsZQotKwkg IGZ1bmNfc291cmNlICRkaXIvJG5hbWUKLSsKLSsJICAjIEFkZCBQSUMgb2JqZWN0IHRvIHRoZSBs aXN0IG9mIGZpbGVzIHRvIHJlbW92ZS4KLSsJICBpZiB0ZXN0IC1uICIkcGljX29iamVjdCIgJiYK LSsJICAgICB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgotKwkgICAgZnVuY19hcHBl bmQgcm1maWxlcyAiICRkaXIvJHBpY19vYmplY3QiCi0rCSAgZmkKLSsKLSsJICAjIEFkZCBub24t UElDIG9iamVjdCB0byB0aGUgbGlzdCBvZiBmaWxlcyB0byByZW1vdmUuCi0rCSAgaWYgdGVzdCAt biAiJG5vbl9waWNfb2JqZWN0IiAmJgotKwkgICAgIHRlc3QgIiRub25fcGljX29iamVjdCIgIT0g bm9uZTsgdGhlbgotKwkgICAgZnVuY19hcHBlbmQgcm1maWxlcyAiICRkaXIvJG5vbl9waWNfb2Jq ZWN0IgotKwkgIGZpCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgKikKLSsJaWYgdGVzdCAiJG9wdF9t b2RlIiA9IGNsZWFuIDsgdGhlbgotKwkgIG5vZXhlbmFtZT0kbmFtZQotKwkgIGNhc2UgJGZpbGUg aW4KLSsJICAqLmV4ZSkKLSsJICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZpbGUiCi0r CSAgICBmaWxlPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAgIGZ1bmNfc3RyaXBuYW1lICcn ICcuZXhlJyAiJG5hbWUiCi0rCSAgICBub2V4ZW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAot KwkgICAgIyAkZmlsZSB3aXRoIC5leGUgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byBybWZpbGVz LAotKwkgICAgIyBhZGQgJGZpbGUgd2l0aG91dCAuZXhlCi0rCSAgICBmdW5jX2FwcGVuZCBybWZp bGVzICIgJGZpbGUiCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICAjIERvIGEgdGVzdCB0byBzZWUg aWYgdGhpcyBpcyBhIGxpYnRvb2wgcHJvZ3JhbS4KLSsJICBpZiBmdW5jX2x0d3JhcHBlcl9wICIk ZmlsZSI7IHRoZW4KLSsJICAgIGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJGZpbGUi OyB0aGVuCi0rCSAgICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgIiRmaWxlIgotKwkgICAg ICByZWxpbmtfY29tbWFuZD0KLSsJICAgICAgZnVuY19zb3VyY2UgJGZ1bmNfbHR3cmFwcGVyX3Nj cmlwdG5hbWVfcmVzdWx0Ci0rCSAgICAgIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkZnVuY19sdHdy YXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQiCi0rCSAgICBlbHNlCi0rCSAgICAgIHJlbGlua19jb21t YW5kPQotKwkgICAgICBmdW5jX3NvdXJjZSAkZGlyLyRub2V4ZW5hbWUKLSsJICAgIGZpCi0rCi0r CSAgICAjIG5vdGUgJG5hbWUgc3RpbGwgY29udGFpbnMgLmV4ZSBpZiBpdCB3YXMgaW4gJGZpbGUg b3JpZ2luYWxseQotKwkgICAgIyBhcyBkb2VzIHRoZSB2ZXJzaW9uIG9mICRmaWxlIHRoYXQgd2Fz IGFkZGVkIGludG8gJHJtZmlsZXMKLSsJICAgIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkb2Rpci8k bmFtZSAkb2Rpci8ke25hbWV9Uy4ke29iamV4dH0iCi0rCSAgICBpZiB0ZXN0ICIkZmFzdF9pbnN0 YWxsIiA9IHllcyAmJiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCi0rCSAgICAgIGZ1 bmNfYXBwZW5kIHJtZmlsZXMgIiAkb2Rpci9sdC0kbmFtZSIKLSsJICAgIGZpCi0rCSAgICBpZiB0 ZXN0ICJYJG5vZXhlbmFtZSIgIT0gIlgkbmFtZSIgOyB0aGVuCi0rCSAgICAgIGZ1bmNfYXBwZW5k IHJtZmlsZXMgIiAkb2Rpci9sdC0ke25vZXhlbmFtZX0uYyIKLSsJICAgIGZpCi0rCSAgZmkKLSsJ ZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgZnVuY19zaG93X2V2YWwgIiRSTSAkcm1maWxl cyIgJ2V4aXRfc3RhdHVzPTEnCi0rICAgIGRvbmUKLSsKLSsgICAgIyBUcnkgdG8gcmVtb3ZlIHRo ZSAke29iamRpcn1zIGluIHRoZSBkaXJlY3RvcmllcyB3aGVyZSB3ZSBkZWxldGVkIGZpbGVzCi0r ICAgIGZvciBkaXIgaW4gJHJtZGlyczsgZG8KLSsgICAgICBpZiB0ZXN0IC1kICIkZGlyIjsgdGhl bgotKwlmdW5jX3Nob3dfZXZhbCAicm1kaXIgJGRpciA+L2Rldi9udWxsIDI+JjEiCi0rICAgICAg ZmkKLSsgICAgZG9uZQotKwotKyAgICBleGl0ICRleGl0X3N0YXR1cwotK30KLSsKLSt7IHRlc3Qg IiRvcHRfbW9kZSIgPSB1bmluc3RhbGwgfHwgdGVzdCAiJG9wdF9tb2RlIiA9IGNsZWFuOyB9ICYm Ci0rICAgIGZ1bmNfbW9kZV91bmluc3RhbGwgJHsxKyIkQCJ9Ci0rCi0rdGVzdCAteiAiJG9wdF9t b2RlIiAmJiB7Ci0rICBoZWxwPSIkZ2VuZXJpY19oZWxwIgotKyAgZnVuY19mYXRhbF9oZWxwICJ5 b3UgbXVzdCBzcGVjaWZ5IGEgTU9ERSIKLSt9Ci0rCi0rdGVzdCAteiAiJGV4ZWNfY21kIiAmJiBc Ci0rICBmdW5jX2ZhdGFsX2hlbHAgImludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkb3B0X21vZGUn IgotKwotK2lmIHRlc3QgLW4gIiRleGVjX2NtZCI7IHRoZW4KLSsgIGV2YWwgZXhlYyAiJGV4ZWNf Y21kIgotKyAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rZmkKLSsKLStleGl0ICRleGl0X3N0YXR1cwot KwotKwotKyMgVGhlIFRBR3MgYmVsb3cgYXJlIGRlZmluZWQgc3VjaCB0aGF0IHdlIG5ldmVyIGdl dCBpbnRvIGEgc2l0dWF0aW9uCi0rIyBpbiB3aGljaCB3ZSBkaXNhYmxlIGJvdGgga2luZHMgb2Yg bGlicmFyaWVzLiAgR2l2ZW4gY29uZmxpY3RpbmcKLSsjIGNob2ljZXMsIHdlIGdvIGZvciBhIHN0 YXRpYyBsaWJyYXJ5LCB0aGF0IGlzIHRoZSBtb3N0IHBvcnRhYmxlLAotKyMgc2luY2Ugd2UgY2Fu J3QgdGVsbCB3aGV0aGVyIHNoYXJlZCBsaWJyYXJpZXMgd2VyZSBkaXNhYmxlZCBiZWNhdXNlCi0r IyB0aGUgdXNlciBhc2tlZCBmb3IgdGhhdCBvciBiZWNhdXNlIHRoZSBwbGF0Zm9ybSBkb2Vzbid0 IHN1cHBvcnQKLSsjIHRoZW0uICBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgb24gQUlY LCBiZWNhdXNlIHdlIGRvbid0Ci0rIyBzdXBwb3J0IGhhdmluZyBib3RoIHN0YXRpYyBhbmQgc2hh cmVkIGxpYnJhcmllcyBlbmFibGVkIGF0IHRoZSBzYW1lCi0rIyB0aW1lIG9uIHRoYXQgcGxhdGZv cm0sIHNvIHdlIGRlZmF1bHQgdG8gYSBzaGFyZWQtb25seSBjb25maWd1cmF0aW9uLgotKyMgSWYg YSBkaXNhYmxlLXNoYXJlZCB0YWcgaXMgZ2l2ZW4sIHdlJ2xsIGZhbGxiYWNrIHRvIGEgc3RhdGlj LW9ubHkKLSsjIGNvbmZpZ3VyYXRpb24uICBCdXQgd2UnbGwgbmV2ZXIgZ28gZnJvbSBzdGF0aWMt b25seSB0byBzaGFyZWQtb25seS4KLSsKLSsjICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6 IGRpc2FibGUtc2hhcmVkCi0rYnVpbGRfbGlidG9vbF9saWJzPW5vCi0rYnVpbGRfb2xkX2xpYnM9 eWVzCi0rIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zaGFyZWQKLSsKLSsj ICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUtc3RhdGljCi0rYnVpbGRfb2xk X2xpYnM9YGNhc2UgJGJ1aWxkX2xpYnRvb2xfbGlicyBpbiB5ZXMpIGVjaG8gbm87OyAqKSBlY2hv IHllczs7IGVzYWNgCi0rIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0 aWMKLSsKLSsjIExvY2FsIFZhcmlhYmxlczoKLSsjIG1vZGU6c2hlbGwtc2NyaXB0Ci0rIyBzaC1p bmRlbnRhdGlvbjoyCi0rIyBFbmQ6Ci0rIyB2aTpzdz0yCi0rCi1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svY29uZmlnL2x0fm9ic29sZXRlLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcv bHR+b2Jzb2xldGUubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHR+b2Jzb2xldGUu bTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvY29uZmlnL2x0fm9ic29sZXRlLm00CTIwMTEtMDctMDMgMTg6NDQ6MjIuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDk4IEBACi0rIyBsdH5vYnNvbGV0ZS5tNCAtLSBhY2xvY2FsIHNh dGlzZnlpbmcgb2Jzb2xldGUgZGVmaW5pdGlvbnMuICAgIC0qLUF1dG9jb25mLSotCi0rIwotKyMg ICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCi0rIyAgIFdyaXR0ZW4gYnkgU2NvdHQgSmFtZXMgUmVtbmFudCwgMjAwNC4K LSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiBnaXZlcwotKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlz dHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0Ci0rIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA1IGx0fm9ic29sZXRlLm00 Ci0rCi0rIyBUaGVzZSBleGlzdCBlbnRpcmVseSB0byBmb29sIGFjbG9jYWwgd2hlbiBib290c3Ry YXBwaW5nIGxpYnRvb2wuCi0rIwotKyMgSW4gdGhlIHBhc3QgbGlidG9vbC5tNCBoYXMgcHJvdmlk ZWQgbWFjcm9zIHZpYSBBQ19ERUZVTiAob3IgQVVfREVGVU4pCi0rIyB3aGljaCBoYXZlIGxhdGVy IGJlZW4gY2hhbmdlZCB0byBtNF9kZWZpbmUgYXMgdGhleSBhcmVuJ3QgcGFydCBvZiB0aGUKLSsj IGV4cG9ydGVkIEFQSSwgb3IgbW92ZWQgdG8gQXV0b2NvbmYgb3IgQXV0b21ha2Ugd2hlcmUgdGhl eSBiZWxvbmcuCi0rIwotKyMgVGhlIHRyb3VibGUgaXMsIGFjbG9jYWwgaXMgYSBiaXQgdGhpY2su ICBJdCdsbCBzZWUgdGhlIG9sZCBBQ19ERUZVTgotKyMgaW4gL3Vzci9zaGFyZS9hY2xvY2FsL2xp YnRvb2wubTQgYW5kIHJlbWVtYmVyIGl0LCB0aGVuIHdoZW4gaXQgc2VlcyB1cwotKyMgdXNpbmcg YSBtYWNybyB3aXRoIHRoZSBzYW1lIG5hbWUgaW4gb3VyIGxvY2FsIG00L2xpYnRvb2wubTQgaXQn bGwKLSsjIHB1bGwgdGhlIG9sZCBsaWJ0b29sLm00IGluIChpdCBkb2Vzbid0IHNlZSBvdXIgc2hp bnkgbmV3IG00X2RlZmluZQotKyMgYW5kIGRvZXNuJ3Qga25vdyBhYm91dCBBdXRvY29uZiBtYWNy b3MgYXQgYWxsLikKLSsjCi0rIyBTbyB3ZSBwcm92aWRlIHRoaXMgZmlsZSwgd2hpY2ggaGFzIGEg c2lsbHkgZmlsZW5hbWUgc28gaXQncyBhbHdheXMKLSsjIGluY2x1ZGVkIGFmdGVyIGV2ZXJ5dGhp bmcgZWxzZS4gIFRoaXMgcHJvdmlkZXMgYWNsb2NhbCB3aXRoIHRoZQotKyMgQUNfREVGVU5zIGl0 IHdhbnRzLCBidXQgd2hlbiBtNCBwcm9jZXNzZXMgaXQsIGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcK LSsjIGJlY2F1c2UgdGhvc2UgbWFjcm9zIGFscmVhZHkgZXhpc3QsIG9yIHdpbGwgYmUgb3Zlcndy aXR0ZW4gbGF0ZXIuCi0rIyBXZSB1c2UgQUNfREVGVU4gb3ZlciBBVV9ERUZVTiBmb3IgY29tcGF0 aWJpbGl0eSB3aXRoIGFjbG9jYWwtMS42LiAKLSsjCi0rIyBBbnl0aW1lIHdlIHdpdGhkcmF3IGFu IEFDX0RFRlVOIG9yIEFVX0RFRlVOLCByZW1lbWJlciB0byBhZGQgaXQgaGVyZS4KLSsjIFllcywg dGhhdCBtZWFucyBldmVyeSBuYW1lIG9uY2UgdGFrZW4gd2lsbCBuZWVkIHRvIHJlbWFpbiBoZXJl IHVudGlsCi0rIyB3ZSBnaXZlIHVwIGNvbXBhdGliaWxpdHkgd2l0aCB2ZXJzaW9ucyBiZWZvcmUg MS43LCBhdCB3aGljaCBwb2ludAotKyMgd2UgbmVlZCB0byBrZWVwIG9ubHkgdGhvc2UgbmFtZXMg d2hpY2ggd2Ugc3RpbGwgcmVmZXIgdG8uCi0rCi0rIyBUaGlzIGlzIHRvIGhlbHAgYWNsb2NhbCBm aW5kIHRoZXNlIG1hY3JvcywgYXMgaXQgY2FuJ3Qgc2VlIG00X2RlZmluZS4KLStBQ19ERUZVTihb TFRPQlNPTEVURV9WRVJTSU9OXSwgW200X2lmKFsxXSldKQotKwotK200X2lmbmRlZihbQUNfTElC VE9PTF9MSU5LRVJfT1BUSU9OXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05d KV0pCi0rbTRfaWZuZGVmKFtBQ19QUk9HX0VHUkVQXSwJCVtBQ19ERUZVTihbQUNfUFJPR19FR1JF UF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNIXSwJW0FDX0RFRlVO KFtfTFRfQUNfUFJPR19FQ0hPX0JBQ0tTTEFTSF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19TSEVM TF9JTklUXSwJCVtBQ19ERUZVTihbX0xUX0FDX1NIRUxMX0lOSVRdKV0pCi0rbTRfaWZuZGVmKFtf TFRfQUNfU1lTX0xJQlBBVEhfQUlYXSwJW0FDX0RFRlVOKFtfTFRfQUNfU1lTX0xJQlBBVEhfQUlY XSldKQotK200X2lmbmRlZihbX0xUX1BST0dfTFRNQUlOXSwJCVtBQ19ERUZVTihbX0xUX1BST0df TFRNQUlOXSldKQotK200X2lmbmRlZihbX0xUX0FDX1RBR1ZBUl0sCQlbQUNfREVGVU4oW19MVF9B Q19UQUdWQVJdKV0pCi0rbTRfaWZuZGVmKFtBQ19MVERMX0VOQUJMRV9JTlNUQUxMXSwJW0FDX0RF RlVOKFtBQ19MVERMX0VOQUJMRV9JTlNUQUxMXSldKQotK200X2lmbmRlZihbQUNfTFRETF9QUkVP UEVOXSwJCVtBQ19ERUZVTihbQUNfTFRETF9QUkVPUEVOXSldKQotK200X2lmbmRlZihbX0xUX0FD X1NZU19DT01QSUxFUl0sCVtBQ19ERUZVTihbX0xUX0FDX1NZU19DT01QSUxFUl0pXSkKLSttNF9p Zm5kZWYoW19MVF9BQ19MT0NLXSwJCVtBQ19ERUZVTihbX0xUX0FDX0xPQ0tdKV0pCi0rbTRfaWZu ZGVmKFtBQ19MSUJUT09MX1NZU19PTERfQVJDSElWRV0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9T WVNfT0xEX0FSQ0hJVkVdKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfVFJZX0RMT1BFTl9TRUxGXSwJ W0FDX0RFRlVOKFtfTFRfQUNfVFJZX0RMT1BFTl9TRUxGXSldKQotK200X2lmbmRlZihbQUNfTElC VE9PTF9QUk9HX0NDX0NfT10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0NDX0NfT10pXSkK LSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLU10sIFtBQ19ERUZVTihb QUNfTElCVE9PTF9TWVNfSEFSRF9MSU5LX0xPQ0tTXSldKQotK200X2lmbmRlZihbQUNfTElCVE9P TF9PQkpESVJdLAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX09CSkRJUl0pXSkKLSttNF9pZm5kZWYo W0FDX0xURExfT0JKRElSXSwJCVtBQ19ERUZVTihbQUNfTFRETF9PQkpESVJdKV0pCi0rbTRfaWZu ZGVmKFtBQ19MSUJUT09MX1BST0dfTERfSEFSRENPREVfTElCUEFUSF0sIFtBQ19ERUZVTihbQUNf TElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBBVEhdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJU T09MX1NZU19MSUJfU1RSSVBdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0xJQl9TVFJJUF0p XSkKLSttNF9pZm5kZWYoW0FDX1BBVEhfTUFHSUNdLAkJW0FDX0RFRlVOKFtBQ19QQVRIX01BR0lD XSldKQotK200X2lmbmRlZihbQUNfUFJPR19MRF9HTlVdLAkJW0FDX0RFRlVOKFtBQ19QUk9HX0xE X0dOVV0pXSkKLSttNF9pZm5kZWYoW0FDX1BST0dfTERfUkVMT0FEX0ZMQUddLAlbQUNfREVGVU4o W0FDX1BST0dfTERfUkVMT0FEX0ZMQUddKV0pCi0rbTRfaWZuZGVmKFtBQ19ERVBMSUJTX0NIRUNL X01FVEhPRF0sCVtBQ19ERUZVTihbQUNfREVQTElCU19DSEVDS19NRVRIT0RdKV0pCi0rbTRfaWZu ZGVmKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfTk9fUlRUSV0sIFtBQ19ERUZVTihbQUNfTElC VE9PTF9QUk9HX0NPTVBJTEVSX05PX1JUVEldKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZ U19HTE9CQUxfU1lNQk9MX1BJUEVdLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0dMT0JBTF9T WU1CT0xfUElQRV0pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9QSUNd LCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9QSUNdKV0pCi0rbTRfaWZuZGVm KFtBQ19MSUJUT09MX1BST0dfTERfU0hMSUJTXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0df TERfU0hMSUJTXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9QT1NUREVQX1BSRURFUF0sCVtB Q19ERUZVTihbQUNfTElCVE9PTF9QT1NUREVQX1BSRURFUF0pXSkKLSttNF9pZm5kZWYoW0xUX0FD X1BST0dfRUdSRVBdLAkJW0FDX0RFRlVOKFtMVF9BQ19QUk9HX0VHUkVQXSldKQotK200X2lmbmRl ZihbTFRfQUNfUFJPR19TRURdLAkJW0FDX0RFRlVOKFtMVF9BQ19QUk9HX1NFRF0pXSkKLSttNF9p Zm5kZWYoW19MVF9DQ19CQVNFTkFNRV0sCQlbQUNfREVGVU4oW19MVF9DQ19CQVNFTkFNRV0pXSkK LSttNF9pZm5kZWYoW19MVF9DT01QSUxFUl9CT0lMRVJQTEFURV0sCVtBQ19ERUZVTihbX0xUX0NP TVBJTEVSX0JPSUxFUlBMQVRFXSldKQotK200X2lmbmRlZihbX0xUX0xJTktFUl9CT0lMRVJQTEFU RV0sCVtBQ19ERUZVTihbX0xUX0xJTktFUl9CT0lMRVJQTEFURV0pXSkKLSttNF9pZm5kZWYoW19B Q19QUk9HX0xJQlRPT0xdLAkJW0FDX0RFRlVOKFtfQUNfUFJPR19MSUJUT09MXSldKQotK200X2lm bmRlZihbQUNfTElCVE9PTF9TRVRVUF0sCQlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU0VUVVBdKV0p Ci0rbTRfaWZuZGVmKFtfTFRfQUNfQ0hFQ0tfRExGQ05dLAkJW0FDX0RFRlVOKFtfTFRfQUNfQ0hF Q0tfRExGQ05dKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19EWU5BTUlDX0xJTktFUl0s CVtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfRFlOQU1JQ19MSU5LRVJdKV0pCi0rbTRfaWZuZGVm KFtfTFRfQUNfVEFHQ09ORklHXSwJCVtBQ19ERUZVTihbX0xUX0FDX1RBR0NPTkZJR10pXSkKLStt NF9pZm5kZWYoW0FDX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSwJW0FDX0RFRlVOKFtBQ19ESVNBQkxF X0ZBU1RfSU5TVEFMTF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0NYWF0sCQlbQUNfREVG VU4oW19MVF9BQ19MQU5HX0NYWF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0Y3N10sCQlb QUNfREVGVU4oW19MVF9BQ19MQU5HX0Y3N10pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0dD Sl0sCQlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0dDSl0pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRP T0xfTEFOR19DX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0NfQ09ORklHXSld KQotK200X2lmbmRlZihbX0xUX0FDX0xBTkdfQ19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19M QU5HX0NfQ09ORklHXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUdd LAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19DWFhfQ09ORklHXSldKQotK200X2lmbmRlZihb X0xUX0FDX0xBTkdfQ1hYX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfQ1hYX0NPTkZJ R10pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19GNzdfQ09ORklHXSwJW0FDX0RFRlVO KFtBQ19MSUJUT09MX0xBTkdfRjc3X0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5H X0Y3N19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0Y3N19DT05GSUddKV0pCi0rbTRf aWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9P TF9MQU5HX0dDSl9DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19HQ0pfQ09ORklH XSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19HQ0pfQ09ORklHXSldKQotK200X2lmbmRlZihbQUNf TElCVE9PTF9MQU5HX1JDX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX1JDX0NP TkZJR10pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX1JDX0NPTkZJR10sCVtBQ19ERUZVTihb X0xUX0FDX0xBTkdfUkNfQ09ORklHXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9DT05GSUdd LAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19G SUxFX0xURExMX0NdLAlbQUNfREVGVU4oW19MVF9BQ19GSUxFX0xURExMX0NdKV0pCi0rbTRfaWZu ZGVmKFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10sCVtBQ19ERUZVTihbX0xUX1JFUVVJUkVE X0RBUldJTl9DSEVDS1NdKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfUFJPR19DWFhDUFBdLAkJW0FD X0RFRlVOKFtfTFRfQUNfUFJPR19DWFhDUFBdKV0pCi0rbTRfaWZuZGVmKFtfTFRfUFJFUEFSRV9T RURfUVVPVEVfVkFSU10sCVtBQ19ERUZVTihbX0xUX1BSRVBBUkVfU0VEX1FVT1RFX1ZBUlNdKV0p Ci0rbTRfaWZuZGVmKFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0sCVtBQ19ERUZVTihbX0xUX1BS T0dfRUNIT19CQUNLU0xBU0hdKV0pCi0rbTRfaWZuZGVmKFtfTFRfUFJPR19GNzddLAkJW0FDX0RF RlVOKFtfTFRfUFJPR19GNzddKV0pCi0rbTRfaWZuZGVmKFtfTFRfUFJPR19GQ10sCQlbQUNfREVG VU4oW19MVF9QUk9HX0ZDXSldKQotK200X2lmbmRlZihbX0xUX1BST0dfQ1hYXSwJCVtBQ19ERUZV TihbX0xUX1BST0dfQ1hYXSldKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9s dG9wdGlvbnMubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG9wdGlvbnMubTQKLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHRvcHRpb25zLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG9wdGlvbnMu bTQJMjAxMS0wNy0wMyAxODo0NDoyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzY5IEBA Ci0rIyBIZWxwZXIgZnVuY3Rpb25zIGZvciBvcHRpb24gaGFuZGxpbmcuICAgICAgICAgICAgICAg ICAgICAtKi0gQXV0b2NvbmYgLSotCi0rIwotKyMgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs IDIwMDcsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotKyMgICBJbmMuCi0r IyAgIFdyaXR0ZW4gYnkgR2FyeSBWLiBWYXVnaGFuLCAyMDA0Ci0rIwotKyMgVGhpcyBmaWxlIGlz IGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKLSsjIHVu bGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Ig d2l0aG91dAotKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVz ZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgNyBsdG9wdGlvbnMubTQKLSsKLSsjIFRoaXMgaXMgdG8gaGVs cCBhY2xvY2FsIGZpbmQgdGhlc2UgbWFjcm9zLCBhcyBpdCBjYW4ndCBzZWUgbTRfZGVmaW5lLgot K0FDX0RFRlVOKFtMVE9QVElPTlNfVkVSU0lPTl0sIFttNF9pZihbMV0pXSkKLSsKLSsKLSsjIF9M VF9NQU5HTEVfT1BUSU9OKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtfTFRfTUFOR0xFX09Q VElPTl0sCi0rW1tfTFRfT1BUSU9OX11tNF9icGF0c3Vic3QoJDFfXyQyLCBbW15hLXpBLVowLTlf XV0sIFtfXSldKQotKwotKwotKyMgX0xUX1NFVF9PUFRJT04oTUFDUk8tTkFNRSwgT1BUSU9OLU5B TUUpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFNldCBv cHRpb24gT1BUSU9OLU5BTUUgZm9yIG1hY3JvIE1BQ1JPLU5BTUUsIGFuZCBpZiB0aGVyZSBpcyBh Ci0rIyBtYXRjaGluZyBoYW5kbGVyIGRlZmluZWQsIGRpc3BhdGNoIHRvIGl0LiAgT3RoZXIgT1BU SU9OLU5BTUVzIGFyZQotKyMgc2F2ZWQgYXMgYSBmbGFnLgotK200X2RlZmluZShbX0xUX1NFVF9P UFRJT05dLAotK1ttNF9kZWZpbmUoX0xUX01BTkdMRV9PUFRJT04oWyQxXSwgWyQyXSkpZG5sCi0r bTRfaWZkZWYoX0xUX01BTkdMRV9ERUZVTihbJDFdLCBbJDJdKSwKLSsgICAgICAgIF9MVF9NQU5H TEVfREVGVU4oWyQxXSwgWyQyXSksCi0rICAgIFttNF93YXJuaW5nKFtVbmtub3duICQxIG9wdGlv biBgJDInXSldKVtdZG5sCi0rXSkKLSsKLSsKLSsjIF9MVF9JRl9PUFRJT04oTUFDUk8tTkFNRSwg T1BUSU9OLU5BTUUsIElGLVNFVCwgW0lGLU5PVC1TRVRdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFeGVjdXRlIElG LVNFVCBpZiBPUFRJT04gaXMgc2V0LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4KLSttNF9kZWZpbmUo W19MVF9JRl9PUFRJT05dLAotK1ttNF9pZmRlZihfTFRfTUFOR0xFX09QVElPTihbJDFdLCBbJDJd KSwgWyQzXSwgWyQ0XSldKQotKwotKwotKyMgX0xUX1VOTEVTU19PUFRJT05TKE1BQ1JPLU5BTUUs IE9QVElPTi1MSVNULCBJRi1OT1QtU0VUKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRXhlY3V0ZSBJRi1OT1QtU0VUIHVubGVz cyBhbGwgb3B0aW9ucyBpbiBPUFRJT04tTElTVCBmb3IgTUFDUk8tTkFNRQotKyMgYXJlIHNldC4K LSttNF9kZWZpbmUoW19MVF9VTkxFU1NfT1BUSU9OU10sCi0rW200X2ZvcmVhY2goW19MVF9PcHRp b25dLCBtNF9zcGxpdChtNF9ub3JtYWxpemUoWyQyXSkpLAotKwkgICAgW200X2lmZGVmKF9MVF9N QU5HTEVfT1BUSU9OKFskMV0sIF9MVF9PcHRpb24pLAotKwkJICAgICAgW200X2RlZmluZShbJDBf Zm91bmRdKV0pXSlbXWRubAotK200X2lmZGVmKFskMF9mb3VuZF0sIFttNF91bmRlZmluZShbJDBf Zm91bmRdKV0sIFskMwotK10pW11kbmwKLStdKQotKwotKwotKyMgX0xUX1NFVF9PUFRJT05TKE1B Q1JPLU5BTUUsIE9QVElPTi1MSVNUKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotKyMgT1BUSU9OLUxJU1QgaXMgYSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBM aWJ0b29sIG9wdGlvbnMgYXNzb2NpYXRlZAotKyMgd2l0aCBNQUNSTy1OQU1FLiAgSWYgYW55IE9Q VElPTiBoYXMgYSBtYXRjaGluZyBoYW5kbGVyIGRlY2xhcmVkIHdpdGgKLSsjIExUX09QVElPTl9E RUZJTkUsIGRpc3BhdGNoIHRvIHRoYXQgbWFjcm87IG90aGVyd2lzZSBjb21wbGFpbiBhYm91dAot KyMgdGhlIHVua25vd24gb3B0aW9uIGFuZCBleGl0LgotK200X2RlZnVuKFtfTFRfU0VUX09QVElP TlNdLAotK1sjIFNldCBvcHRpb25zCi0rbTRfZm9yZWFjaChbX0xUX09wdGlvbl0sIG00X3NwbGl0 KG00X25vcm1hbGl6ZShbJDJdKSksCi0rICAgIFtfTFRfU0VUX09QVElPTihbJDFdLCBfTFRfT3B0 aW9uKV0pCi0rCi0rbTRfaWYoWyQxXSxbTFRfSU5JVF0sWwotKyAgZG5sCi0rICBkbmwgU2ltcGx5 IHNldCBzb21lIGRlZmF1bHQgdmFsdWVzIChpLmUgb2ZmKSBpZiBib29sZWFuIG9wdGlvbnMgd2Vy ZSBub3QKLSsgIGRubCBzcGVjaWZpZWQ6Ci0rICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRd LCBbZGxvcGVuXSwgW2VuYWJsZV9kbG9wZW49bm8KLSsgIF0pCi0rICBfTFRfVU5MRVNTX09QVElP TlMoW0xUX0lOSVRdLCBbd2luMzItZGxsXSwgW2VuYWJsZV93aW4zMl9kbGw9bm8KLSsgIF0pCi0r ICBkbmwKLSsgIGRubCBJZiBubyByZWZlcmVuY2Ugd2FzIG1hZGUgdG8gdmFyaW91cyBwYWlycyBv ZiBvcHBvc2luZyBvcHRpb25zLCB0aGVuCi0rICBkbmwgd2UgcnVuIHRoZSBkZWZhdWx0IG1vZGUg aGFuZGxlciBmb3IgdGhlIHBhaXIuICBGb3IgZXhhbXBsZSwgaWYgbmVpdGhlcgotKyAgZG5sIGBz aGFyZWQnIG5vciBgZGlzYWJsZS1zaGFyZWQnIHdhcyBwYXNzZWQsIHdlIGVuYWJsZSBidWlsZGlu ZyBvZiBzaGFyZWQKLSsgIGRubCBhcmNoaXZlcyBieSBkZWZhdWx0OgotKyAgX0xUX1VOTEVTU19P UFRJT05TKFtMVF9JTklUXSwgW3NoYXJlZCBkaXNhYmxlLXNoYXJlZF0sIFtfTFRfRU5BQkxFX1NI QVJFRF0pCi0rICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbc3RhdGljIGRpc2FibGUt c3RhdGljXSwgW19MVF9FTkFCTEVfU1RBVElDXSkKLSsgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRf SU5JVF0sIFtwaWMtb25seSBuby1waWNdLCBbX0xUX1dJVEhfUElDXSkKLSsgIF9MVF9VTkxFU1Nf T1BUSU9OUyhbTFRfSU5JVF0sIFtmYXN0LWluc3RhbGwgZGlzYWJsZS1mYXN0LWluc3RhbGxdLAot KyAgCQkgICBbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExdKQotKyAgXSkKLStdKSMgX0xUX1NFVF9P UFRJT05TCi0rCi0rCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0r IyMgTWFjcm9zIHRvIGhhbmRsZSBMVF9JTklUIG9wdGlvbnMuICMjCi0rIyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rCi0rIyBfTFRfTUFOR0xFX0RFRlVOKE1BQ1JPLU5B TUUsIE9QVElPTi1OQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSttNF9kZWZpbmUoW19MVF9NQU5HTEVfREVGVU5dLAotK1tbX0xUX09QVElPTl9ERUZV Tl9dbTRfYnBhdHN1YnN0KG00X3RvdXBwZXIoWyQxX18kMl0pLCBbW15BLVowLTlfXV0sIFtfXSld KQotKwotKwotKyMgTFRfT1BUSU9OX0RFRklORShNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSwgQ09E RSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r bTRfZGVmaW5lKFtMVF9PUFRJT05fREVGSU5FXSwKLStbbTRfZGVmaW5lKF9MVF9NQU5HTEVfREVG VU4oWyQxXSwgWyQyXSksIFskM10pW11kbmwKLStdKSMgTFRfT1BUSU9OX0RFRklORQotKwotKwot KyMgZGxvcGVuCi0rIyAtLS0tLS0KLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Rsb3Bl bl0sIFtlbmFibGVfZGxvcGVuPXllcwotK10pCi0rCi0rQVVfREVGVU4oW0FDX0xJQlRPT0xfRExP UEVOXSwKLStbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbZGxvcGVuXSkKLStBQ19ESUFHTk9T RShbb2Jzb2xldGVdLAotK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8g X0xUX1NFVF9PUFRJT04gd2hlbiB5b3UKLStwdXQgdGhlIGBkbG9wZW4nIG9wdGlvbiBpbnRvIExU X0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKLStdKQotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNr d2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVOXSwg W10pCi0rCi0rCi0rIyB3aW4zMi1kbGwKLSsjIC0tLS0tLS0tLQotKyMgRGVjbGFyZSBwYWNrYWdl IHN1cHBvcnQgZm9yIGJ1aWxkaW5nIHdpbjMyIGRsbCdzLgotK0xUX09QVElPTl9ERUZJTkUoW0xU X0lOSVRdLCBbd2luMzItZGxsXSwKLStbZW5hYmxlX3dpbjMyX2RsbD15ZXMKLSsKLStjYXNlICRo b3N0IGluCi0rKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLWNlZ2Nj KikKLSsgIEFDX0NIRUNLX1RPT0woQVMsIGFzLCBmYWxzZSkKLSsgIEFDX0NIRUNLX1RPT0woRExM VE9PTCwgZGxsdG9vbCwgZmFsc2UpCi0rICBBQ19DSEVDS19UT09MKE9CSkRVTVAsIG9iamR1bXAs IGZhbHNlKQotKyAgOzsKLStlc2FjCi0rCi0rdGVzdCAteiAiJEFTIiAmJiBBUz1hcwotK19MVF9E RUNMKFtdLCBbQVNdLCAgICAgIFsxXSwgW0Fzc2VtYmxlciBwcm9ncmFtXSlkbmwKLSsKLSt0ZXN0 IC16ICIkRExMVE9PTCIgJiYgRExMVE9PTD1kbGx0b29sCi0rX0xUX0RFQ0woW10sIFtETExUT09M XSwgWzFdLCBbRExMIGNyZWF0aW9uIHByb2dyYW1dKWRubAotKwotK3Rlc3QgLXogIiRPQkpEVU1Q IiAmJiBPQkpEVU1QPW9iamR1bXAKLStfTFRfREVDTChbXSwgW09CSkRVTVBdLCBbMV0sIFtPYmpl Y3QgZHVtcGVyIHByb2dyYW1dKWRubAotK10pIyB3aW4zMi1kbGwKLSsKLStBVV9ERUZVTihbQUNf TElCVE9PTF9XSU4zMl9ETExdLAotK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5s Ci0rX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbd2luMzItZGxsXSkKLStBQ19ESUFHTk9TRShb b2Jzb2xldGVdLAotK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xU X1NFVF9PUFRJT04gd2hlbiB5b3UKLStwdXQgdGhlIGB3aW4zMi1kbGwnIG9wdGlvbiBpbnRvIExU X0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKLStdKQotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNr d2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfV0lOMzJfRExM XSwgW10pCi0rCi0rCi0rIyBfTFRfRU5BQkxFX1NIQVJFRChbREVGQVVMVF0pCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLXNoYXJlZCBm bGFnLCBhbmQgc3VwcG9ydHMgdGhlIGBzaGFyZWQnIGFuZAotKyMgYGRpc2FibGUtc2hhcmVkJyBM VF9JTklUIG9wdGlvbnMuCi0rIyBERUZBVUxUIGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYg b21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYHllcycuCi0rbTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NI QVJFRF0sCi0rW200X2RlZmluZShbX0xUX0VOQUJMRV9TSEFSRURfREVGQVVMVF0sIFttNF9pZigk MSwgbm8sIG5vLCB5ZXMpXSlkbmwKLStBQ19BUkdfRU5BQkxFKFtzaGFyZWRdLAotKyAgICBbQVNf SEVMUF9TVFJJTkcoWy0tZW5hYmxlLXNoYXJlZEA8OkA9UEtHU0A6PkBdLAotKwlbYnVpbGQgc2hh cmVkIGxpYnJhcmllcyBAPDpAZGVmYXVsdD1dX0xUX0VOQUJMRV9TSEFSRURfREVGQVVMVFtAOj5A XSldLAotKyAgICBbcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGlu Ci0rICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9zaGFyZWQ9 bm8gOzsKLSsgICAgKikKLSsgICAgICBlbmFibGVfc2hhcmVkPW5vCi0rICAgICAgIyBMb29rIGF0 IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0 b3JzLgotKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFU T1IsIgotKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9p ZnMiCi0rCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX3NoYXJlZD15 ZXMKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAg OzsKLSsgICAgZXNhY10sCi0rICAgIFtlbmFibGVfc2hhcmVkPV1fTFRfRU5BQkxFX1NIQVJFRF9E RUZBVUxUKQotKwotKyAgICBfTFRfREVDTChbYnVpbGRfbGlidG9vbF9saWJzXSwgW2VuYWJsZV9z aGFyZWRdLCBbMF0sCi0rCVtXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVz XSkKLStdKSMgX0xUX0VOQUJMRV9TSEFSRUQKLSsKLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklU XSwgW3NoYXJlZF0sIFtfTFRfRU5BQkxFX1NIQVJFRChbeWVzXSldKQotK0xUX09QVElPTl9ERUZJ TkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1zaGFyZWRdLCBbX0xUX0VOQUJMRV9TSEFSRUQoW25vXSld KQotKwotKyMgT2xkIG5hbWVzOgotK0FDX0RFRlVOKFtBQ19FTkFCTEVfU0hBUkVEXSwKLStbX0xU X1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtzaGFy ZWRdKQotK10pCi0rCi0rQUNfREVGVU4oW0FDX0RJU0FCTEVfU0hBUkVEXSwKLStbX0xUX1NFVF9P UFRJT04oW0xUX0lOSVRdLCBbZGlzYWJsZS1zaGFyZWRdKQotK10pCi0rCi0rQVVfREVGVU4oW0FN X0VOQUJMRV9TSEFSRURdLCBbQUNfRU5BQkxFX1NIQVJFRCgkQCldKQotK0FVX0RFRlVOKFtBTV9E SVNBQkxFX1NIQVJFRF0sIFtBQ19ESVNBQkxFX1NIQVJFRCgkQCldKQotKwotK2RubCBhY2xvY2Fs LTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FNX0VOQUJMRV9T SEFSRURdLCBbXSkKLStkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfU0hBUkVEXSwgW10pCi0rCi0r Ci0rCi0rIyBfTFRfRU5BQkxFX1NUQVRJQyhbREVGQVVMVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLXN0YXRpYyBmbGFnLCBhbmQg c3VwcG9ydCB0aGUgYHN0YXRpYycgYW5kCi0rIyBgZGlzYWJsZS1zdGF0aWMnIExUX0lOSVQgb3B0 aW9ucy4KLSsjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBp dCBkZWZhdWx0cyB0byBgeWVzJy4KLSttNF9kZWZpbmUoW19MVF9FTkFCTEVfU1RBVElDXSwKLStb bTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUXSwgW200X2lmKCQxLCBubywgbm8s IHllcyldKWRubAotK0FDX0FSR19FTkFCTEUoW3N0YXRpY10sCi0rICAgIFtBU19IRUxQX1NUUklO RyhbLS1lbmFibGUtc3RhdGljQDw6QD1QS0dTQDo+QF0sCi0rCVtidWlsZCBzdGF0aWMgbGlicmFy aWVzIEA8OkBkZWZhdWx0PV1fTFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUW0A6PkBdKV0sCi0rICAg IFtwPSR7UEFDS0FHRS1kZWZhdWx0fQotKyAgICBjYXNlICRlbmFibGV2YWwgaW4KLSsgICAgeWVz KSBlbmFibGVfc3RhdGljPXllcyA7OwotKyAgICBubykgZW5hYmxlX3N0YXRpYz1ubyA7OwotKyAg ICAqKQotKyAgICAgZW5hYmxlX3N0YXRpYz1ubwotKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1l bnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsgICAg ICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgICAg ICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCi0rCUlGUz0iJGx0X3NhdmVfaWZzIgotKwlpZiB0 ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgotKwkgIGVuYWJsZV9zdGF0aWM9eWVzCi0rCWZpCi0r ICAgICAgZG9uZQotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0rICAgIGVz YWNdLAotKyAgICBbZW5hYmxlX3N0YXRpYz1dX0xUX0VOQUJMRV9TVEFUSUNfREVGQVVMVCkKLSsK LSsgICAgX0xUX0RFQ0woW2J1aWxkX29sZF9saWJzXSwgW2VuYWJsZV9zdGF0aWNdLCBbMF0sCi0r CVtXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzXSkKLStdKSMgX0xUX0VO QUJMRV9TVEFUSUMKLSsKLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW3N0YXRpY10sIFtf TFRfRU5BQkxFX1NUQVRJQyhbeWVzXSldKQotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBb ZGlzYWJsZS1zdGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUMoW25vXSldKQotKwotKyMgT2xkIG5h bWVzOgotK0FDX0RFRlVOKFtBQ19FTkFCTEVfU1RBVElDXSwKLStbX0xUX1NFVF9PUFRJT04oW0xU X0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtzdGF0aWNdKQotK10pCi0rCi0r QUNfREVGVU4oW0FDX0RJU0FCTEVfU1RBVElDXSwKLStbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRd LCBbZGlzYWJsZS1zdGF0aWNdKQotK10pCi0rCi0rQVVfREVGVU4oW0FNX0VOQUJMRV9TVEFUSUNd LCBbQUNfRU5BQkxFX1NUQVRJQygkQCldKQotK0FVX0RFRlVOKFtBTV9ESVNBQkxFX1NUQVRJQ10s IFtBQ19ESVNBQkxFX1NUQVRJQygkQCldKQotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMg Y29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FNX0VOQUJMRV9TVEFUSUNdLCBbXSkKLStk bmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfU1RBVElDXSwgW10pCi0rCi0rCi0rCi0rIyBfTFRfRU5B QkxFX0ZBU1RfSU5TVEFMTChbREVGQVVMVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLWZhc3QtaW5zdGFsbCBmbGFnLCBh bmQgc3VwcG9ydCB0aGUgYGZhc3QtaW5zdGFsbCcKLSsjIGFuZCBgZGlzYWJsZS1mYXN0LWluc3Rh bGwnIExUX0lOSVQgb3B0aW9ucy4KLSsjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycu ICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KLSttNF9kZWZpbmUoW19MVF9FTkFC TEVfRkFTVF9JTlNUQUxMXSwKLStbbTRfZGVmaW5lKFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF9E RUZBVUxUXSwgW200X2lmKCQxLCBubywgbm8sIHllcyldKWRubAotK0FDX0FSR19FTkFCTEUoW2Zh c3QtaW5zdGFsbF0sCi0rICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtZmFzdC1pbnN0YWxs QDw6QD1QS0dTQDo+QF0sCi0rICAgIFtvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24gQDw6 QGRlZmF1bHQ9XV9MVF9FTkFCTEVfRkFTVF9JTlNUQUxMX0RFRkFVTFRbQDo+QF0pXSwKLSsgICAg W3A9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5ZXMp IGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVfZmFzdF9pbnN0YWxs PW5vIDs7Ci0rICAgICopCi0rICAgICAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwotKyAgICAgICMg TG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qg c2VwYXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhf U0VQQVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCi0rCUlGUz0iJGx0 X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgotKwkgIGVuYWJsZV9m YXN0X2luc3RhbGw9eWVzCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICAgIElGUz0iJGx0X3NhdmVf aWZzIgotKyAgICAgIDs7Ci0rICAgIGVzYWNdLAotKyAgICBbZW5hYmxlX2Zhc3RfaW5zdGFsbD1d X0xUX0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVCkKLSsKLStfTFRfREVDTChbZmFzdF9pbnN0 YWxsXSwgW2VuYWJsZV9mYXN0X2luc3RhbGxdLCBbMF0sCi0rCSBbV2hldGhlciBvciBub3QgdG8g b3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uXSlkbmwKLStdKSMgX0xUX0VOQUJMRV9GQVNU X0lOU1RBTEwKLSsKLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Zhc3QtaW5zdGFsbF0s IFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChbeWVzXSldKQotK0xUX09QVElPTl9ERUZJTkUoW0xU X0lOSVRdLCBbZGlzYWJsZS1mYXN0LWluc3RhbGxdLCBbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwo W25vXSldKQotKwotKyMgT2xkIG5hbWVzOgotK0FVX0RFRlVOKFtBQ19FTkFCTEVfRkFTVF9JTlNU QUxMXSwKLStbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlz YWJsZS1dKVtmYXN0LWluc3RhbGxdKQotK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCi0rWyQwOiBS ZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlv dSBwdXQKLSt0aGUgYGZhc3QtaW5zdGFsbCcgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBh cmFtZXRlci5dKQotK10pCi0rCi0rQVVfREVGVU4oW0FDX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSwK LStbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbZGlzYWJsZS1mYXN0LWluc3RhbGxdKQotK0FD X0RJQUdOT1NFKFtvYnNvbGV0ZV0sCi0rWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUg Y2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdSBwdXQKLSt0aGUgYGRpc2FibGUtZmFzdC1p bnN0YWxsJyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0pCi0rXSkKLSsK LStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVO KFtBQ19FTkFCTEVfRkFTVF9JTlNUQUxMXSwgW10pCi0rZG5sIEFDX0RFRlVOKFtBTV9ESVNBQkxF X0ZBU1RfSU5TVEFMTF0sIFtdKQotKwotKwotKyMgX0xUX1dJVEhfUElDKFtNT0RFXSkKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBpbXBsZW1lbnQgdGhlIC0td2l0aC1waWMgZmxhZywgYW5k IHN1cHBvcnQgdGhlIGBwaWMtb25seScgYW5kIGBuby1waWMnCi0rIyBMVF9JTklUIG9wdGlvbnMu Ci0rIyBNT0RFIGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVs dHMgdG8gYGJvdGgnLgotK200X2RlZmluZShbX0xUX1dJVEhfUElDXSwKLStbQUNfQVJHX1dJVEgo W3BpY10sCi0rICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLXBpY10sCi0rCVt0cnkgdG8gdXNl IG9ubHkgUElDL25vbi1QSUMgb2JqZWN0cyBAPDpAZGVmYXVsdD11c2UgYm90aEA6PkBdKV0sCi0r ICAgIFtwaWNfbW9kZT0iJHdpdGh2YWwiXSwKLSsgICAgW3BpY19tb2RlPWRlZmF1bHRdKQotKwot K3Rlc3QgLXogIiRwaWNfbW9kZSIgJiYgcGljX21vZGU9bTRfZGVmYXVsdChbJDFdLCBbZGVmYXVs dF0pCi0rCi0rX0xUX0RFQ0woW10sIFtwaWNfbW9kZV0sIFswXSwgW1doYXQgdHlwZSBvZiBvYmpl Y3RzIHRvIGJ1aWxkXSlkbmwKLStdKSMgX0xUX1dJVEhfUElDCi0rCi0rTFRfT1BUSU9OX0RFRklO RShbTFRfSU5JVF0sIFtwaWMtb25seV0sIFtfTFRfV0lUSF9QSUMoW3llc10pXSkKLStMVF9PUFRJ T05fREVGSU5FKFtMVF9JTklUXSwgW25vLXBpY10sIFtfTFRfV0lUSF9QSUMoW25vXSldKQotKwot KyMgT2xkIG5hbWU6Ci0rQVVfREVGVU4oW0FDX0xJQlRPT0xfUElDTU9ERV0sCi0rW19MVF9TRVRf T1BUSU9OKFtMVF9JTklUXSwgW3BpYy1vbmx5XSkKLStBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAot K1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04g d2hlbiB5b3UKLStwdXQgdGhlIGBwaWMtb25seScgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0 IHBhcmFtZXRlci5dKQotK10pCi0rCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRp YmlsaXR5OgotK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9QSUNNT0RFXSwgW10pCi0rCi0rIyMg LS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBMVERMX0lOSVQgT3B0aW9ucyAjIwotKyMjIC0tLS0t LS0tLS0tLS0tLS0tICMjCi0rCi0rbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW10pCi0rTFRfT1BU SU9OX0RFRklORShbTFRETF9JTklUXSwgW25vbnJlY3Vyc2l2ZV0sCi0rCQkgW200X2RlZmluZShb X0xURExfTU9ERV0sIFtub25yZWN1cnNpdmVdKV0pCi0rTFRfT1BUSU9OX0RFRklORShbTFRETF9J TklUXSwgW3JlY3Vyc2l2ZV0sCi0rCQkgW200X2RlZmluZShbX0xURExfTU9ERV0sIFtyZWN1cnNp dmVdKV0pCi0rTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW3N1YnByb2plY3RdLAotKwkJ IFttNF9kZWZpbmUoW19MVERMX01PREVdLCBbc3VicHJvamVjdF0pXSkKLSsKLSttNF9kZWZpbmUo W19MVERMX1RZUEVdLCBbXSkKLStMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbaW5zdGFs bGFibGVdLAotKwkJIFttNF9kZWZpbmUoW19MVERMX1RZUEVdLCBbaW5zdGFsbGFibGVdKV0pCi0r TFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW2NvbnZlbmllbmNlXSwKLSsJCSBbbTRfZGVm aW5lKFtfTFRETF9UWVBFXSwgW2NvbnZlbmllbmNlXSldKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9sdHN1Z2FyLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRzdWdh ci5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHN1Z2FyLm00CTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9s dHN1Z2FyLm00CTIwMTEtMDctMDMgMTg6NDQ6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDEyMyBAQAotKyMgbHRzdWdhci5tNCAtLSBsaWJ0b29sIG00IGJhc2UgbGF5ZXIuICAgICAgICAg ICAgICAgICAgICAgICAgIC0qLUF1dG9jb25mLSotCi0rIwotKyMgQ29weXJpZ2h0IChDKSAyMDA0 LCAyMDA1LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgV3Jp dHRlbiBieSBHYXJ5IFYuIFZhdWdoYW4sIDIwMDQKLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcwotKyMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0 Ci0rIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4K LSsKLSsjIHNlcmlhbCA2IGx0c3VnYXIubTQKLSsKLSsjIFRoaXMgaXMgdG8gaGVscCBhY2xvY2Fs IGZpbmQgdGhlc2UgbWFjcm9zLCBhcyBpdCBjYW4ndCBzZWUgbTRfZGVmaW5lLgotK0FDX0RFRlVO KFtMVFNVR0FSX1ZFUlNJT05dLCBbbTRfaWYoWzAuMV0pXSkKLSsKLSsKLSsjIGx0X2pvaW4oU0VQ LCBBUkcxLCBbQVJHMi4uLl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg UHJvZHVjZSBBUkcxU0VQQVJHMi4uLlNFUEFSR24sIG9taXR0aW5nIFtdIGFyZ3VtZW50cyBhbmQg dGhlaXIKLSsjIGFzc29jaWF0ZWQgc2VwYXJhdG9yLgotKyMgTmVlZGVkIHVudGlsIHdlIGNhbiBy ZWx5IG9uIG00X2pvaW4gZnJvbSBBdXRvY29uZiAyLjYyLCBzaW5jZSBhbGwgZWFybGllcgotKyMg dmVyc2lvbnMgaW4gbTRzdWdhciBoYWQgYnVncy4KLSttNF9kZWZpbmUoW2x0X2pvaW5dLAotK1tt NF9pZihbJCNdLCBbMV0sIFtdLAotKyAgICAgICBbJCNdLCBbMl0sIFtbJDJdXSwKLSsgICAgICAg W200X2lmKFskMl0sIFtdLCBbXSwgW1skMl1fXSkkMChbJDFdLCBtNF9zaGlmdChtNF9zaGlmdCgk QCkpKV0pXSkKLSttNF9kZWZpbmUoW19sdF9qb2luXSwKLStbbTRfaWYoWyQjJDJdLCBbMl0sIFtd LAotKyAgICAgICBbbTRfaWYoWyQyXSwgW10sIFtdLCBbWyQxJDJdXSkkMChbJDFdLCBtNF9zaGlm dChtNF9zaGlmdCgkQCkpKV0pXSkKLSsKLSsKLSsjIGx0X2NhcihMSVNUKQotKyMgbHRfY2RyKExJ U1QpCi0rIyAtLS0tLS0tLS0tLS0KLSsjIE1hbmlwdWxhdGUgbTQgbGlzdHMuCi0rIyBUaGVzZSBt YWNyb3MgYXJlIG5lY2Vzc2FyeSBhcyBsb25nIGFzIHdpbGwgc3RpbGwgbmVlZCB0byBzdXBwb3J0 Ci0rIyBBdXRvY29uZi0yLjU5IHdoaWNoIHF1b3RlcyBkaWZmZXJlbnRseS4KLSttNF9kZWZpbmUo W2x0X2Nhcl0sIFtbJDFdXSkKLSttNF9kZWZpbmUoW2x0X2Nkcl0sCi0rW200X2lmKFskI10sIDAs IFttNF9mYXRhbChbJDA6IGNhbm5vdCBiZSBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHNdKV0sCi0r ICAgICAgIFskI10sIDEsIFtdLAotKyAgICAgICBbbTRfZHF1b3RlKG00X3NoaWZ0KCRAKSldKV0p Ci0rbTRfZGVmaW5lKFtsdF91bnF1b3RlXSwgJDEpCi0rCi0rCi0rIyBsdF9hcHBlbmQoTUFDUk8t TkFNRSwgU1RSSU5HLCBbU0VQQVJBVE9SXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgUmVkZWZpbmUgTUFDUk8tTkFNRSB0byBob2xkIGl0cyBmb3Jt ZXIgY29udGVudCBwbHVzIGBTRVBBUkFUT1InYFNUUklORycuCi0rIyBOb3RlIHRoYXQgbmVpdGhl ciBTRVBBUkFUT1Igbm9yIFNUUklORyBhcmUgZXhwYW5kZWQ7IHRoZXkgYXJlIGFwcGVuZGVkCi0r IyB0byBNQUNSTy1OQU1FIGFzIGlzIChsZWF2aW5nIHRoZSBleHBhbnNpb24gZm9yIHdoZW4gTUFD Uk8tTkFNRSBpcyBpbnZva2VkKS4KLSsjIE5vIFNFUEFSQVRPUiBpcyBvdXRwdXQgaWYgTUFDUk8t TkFNRSB3YXMgcHJldmlvdXNseSB1bmRlZmluZWQgKGRpZmZlcmVudAotKyMgdGhhbiBkZWZpbmVk IGFuZCBlbXB0eSkuCi0rIwotKyMgVGhpcyBtYWNybyBpcyBuZWVkZWQgdW50aWwgd2UgY2FuIHJl bHkgb24gQXV0b2NvbmYgMi42Miwgc2luY2UgZWFybGllcgotKyMgdmVyc2lvbnMgb2YgbTRzdWdh ciBtaXN0YWtlbmx5IGV4cGFuZGVkIFNFUEFSQVRPUiBidXQgbm90IFNUUklORy4KLSttNF9kZWZp bmUoW2x0X2FwcGVuZF0sCi0rW200X2RlZmluZShbJDFdLAotKwkgICBtNF9pZmRlZihbJDFdLCBb bTRfZGVmbihbJDFdKVskM11dKVskMl0pXSkKLSsKLSsKLSsKLSsjIGx0X2NvbWJpbmUoU0VQLCBQ UkVGSVgtTElTVCwgSU5GSVgsIFNVRkZJWDEsIFtTVUZGSVgyLi4uXSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFByb2R1 Y2UgYSBTRVAgZGVsaW1pdGVkIGxpc3Qgb2YgYWxsIHBhaXJlZCBjb21iaW5hdGlvbnMgb2YgZWxl bWVudHMgb2YKLSsjIFBSRUZJWC1MSVNUIHdpdGggU1VGRklYMSB0aHJvdWdoIFNVRkZJWG4uICBF YWNoIGVsZW1lbnQgb2YgdGhlIGxpc3QKLSsjIGhhcyB0aGUgZm9ybSBQUkVGSVhtSU5GSVhTVUZG SVhuLgotKyMgTmVlZGVkIHVudGlsIHdlIGNhbiByZWx5IG9uIG00X2NvbWJpbmUgYWRkZWQgaW4g QXV0b2NvbmYgMi42Mi4KLSttNF9kZWZpbmUoW2x0X2NvbWJpbmVdLAotK1ttNF9pZihtNF9ldmFs KFskIyA+IDNdKSwgWzFdLAotKyAgICAgICBbbTRfcHVzaGRlZihbX0x0X3NlcF0sIFttNF9kZWZp bmUoW19MdF9zZXBdLCBtNF9kZWZuKFtsdF9jYXJdKSldKV1dZG5sCi0rW1ttNF9mb3JlYWNoKFtf THRfcHJlZml4XSwgWyQyXSwKLSsJICAgICBbbTRfZm9yZWFjaChbX0x0X3N1ZmZpeF0sCi0rCQld bTRfZHF1b3RlKG00X2RxdW90ZShtNF9zaGlmdChtNF9zaGlmdChtNF9zaGlmdCgkQCkpKSkpWywK LSsJW19MdF9zZXAoWyQxXSlbXW00X2RlZm4oW19MdF9wcmVmaXhdKVskM11tNF9kZWZuKFtfTHRf c3VmZml4XSldKV0pXSldKQotKwotKwotKyMgbHRfaWZfYXBwZW5kX3VuaXEoTUFDUk8tTkFNRSwg VkFSTkFNRSwgW1NFUEFSQVRPUl0sIFtVTklRXSwgW05PVC1VTklRXSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rIyBJZmYgTUFDUk8tTkFNRSBkb2VzIG5vdCB5ZXQgY29udGFpbiBWQVJOQU1FLCB0aGVu IGFwcGVuZCBpdCAoZGVsaW1pdGVkCi0rIyBieSBTRVBBUkFUT1IgaWYgc3VwcGxpZWQpIGFuZCBl eHBhbmQgVU5JUSwgZWxzZSBOT1QtVU5JUS4KLSttNF9kZWZpbmUoW2x0X2lmX2FwcGVuZF91bmlx XSwKLStbbTRfaWZkZWYoWyQxXSwKLSsJICBbbTRfaWYobTRfaW5kZXgoWyQzXW00X2RlZm4oWyQx XSlbJDNdLCBbJDMkMiQzXSksIFstMV0sCi0rCQkgW2x0X2FwcGVuZChbJDFdLCBbJDJdLCBbJDNd KSQ0XSwKLSsJCSBbJDVdKV0sCi0rCSAgW2x0X2FwcGVuZChbJDFdLCBbJDJdLCBbJDNdKSQ0XSld KQotKwotKwotKyMgbHRfZGljdF9hZGQoRElDVCwgS0VZLCBWQUxVRSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtsdF9kaWN0X2FkZF0sCi0rW200X2RlZmlu ZShbJDEoJDIpXSwgWyQzXSldKQotKwotKwotKyMgbHRfZGljdF9hZGRfc3Via2V5KERJQ1QsIEtF WSwgU1VCS0VZLCBWQUxVRSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtsdF9kaWN0X2FkZF9zdWJrZXldLAotK1ttNF9kZWZpbmUo WyQxKCQyOiQzKV0sIFskNF0pXSkKLSsKLSsKLSsjIGx0X2RpY3RfZmV0Y2goRElDVCwgS0VZLCBb U1VCS0VZXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZp bmUoW2x0X2RpY3RfZmV0Y2hdLAotK1ttNF9pZnZhbChbJDNdLAotKwltNF9pZmRlZihbJDEoJDI6 JDMpXSwgW200X2RlZm4oWyQxKCQyOiQzKV0pXSksCi0rICAgIG00X2lmZGVmKFskMSgkMildLCBb bTRfZGVmbihbJDEoJDIpXSldKSldKQotKwotKwotKyMgbHRfaWZfZGljdF9mZXRjaChESUNULCBL RVksIFtTVUJLRVldLCBWQUxVRSwgSUYtVFJVRSwgW0lGLUZBTFNFXSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r bTRfZGVmaW5lKFtsdF9pZl9kaWN0X2ZldGNoXSwKLStbbTRfaWYobHRfZGljdF9mZXRjaChbJDFd LCBbJDJdLCBbJDNdKSwgWyQ0XSwKLSsJWyQ1XSwKLSsgICAgWyQ2XSldKQotKwotKwotKyMgbHRf ZGljdF9maWx0ZXIoRElDVCwgW1NVQktFWV0sIFZBTFVFLCBbU0VQQVJBVE9SXSwgS0VZLCBbLi4u XSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtsdF9kaWN0X2ZpbHRlcl0sCi0rW200X2lmKFskNV0s IFtdLCBbXSwKLSsgIFtsdF9qb2luKG00X3F1b3RlKG00X2RlZmF1bHQoWyQ0XSwgW1ssIF1dKSks Ci0rICAgICAgICAgICBsdF91bnF1b3RlKG00X3NwbGl0KG00X25vcm1hbGl6ZShtNF9mb3JlYWNo KF9MdF9rZXksIGx0X2NhcihbbTRfc2hpZnRuKDQsICRAKV0pLAotKwkJICAgICAgW2x0X2lmX2Rp Y3RfZmV0Y2goWyQxXSwgX0x0X2tleSwgWyQyXSwgWyQzXSwgW19MdF9rZXkgXSldKSkpKSldKVtd ZG5sCi0rXSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHR2ZXJzaW9uLm00 IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR2ZXJzaW9uLm00Ci0tLS0gc29jaS0zLjAuMF80 LXBhY2svY29uZmlnL2x0dmVyc2lvbi5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR2ZXJzaW9uLm00CTIwMTEtMDct MDMgMTg6NDQ6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIzIEBACi0rIyBsdHZlcnNp b24ubTQgLS0gdmVyc2lvbiBudW1iZXJzCQkJLSotIEF1dG9jb25mIC0qLQotKyMKLSsjICAgQ29w eXJpZ2h0IChDKSAyMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgICBXcml0 dGVuIGJ5IFNjb3R0IEphbWVzIFJlbW5hbnQsIDIwMDQKLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJl ZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcwotKyMgdW5saW1p dGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRo b3V0Ci0rIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZl ZC4KLSsKLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBzZXJpYWwgMzI5MyBsdHZlcnNpb24u bTQKLSsjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0b29sCi0rCi0rbTRfZGVmaW5lKFtM VF9QQUNLQUdFX1ZFUlNJT05dLCBbMi40XSkKLSttNF9kZWZpbmUoW0xUX1BBQ0tBR0VfUkVWSVNJ T05dLCBbMS4zMjkzXSkKLSsKLStBQ19ERUZVTihbTFRWRVJTSU9OX1ZFUlNJT05dLAotK1ttYWNy b192ZXJzaW9uPScyLjQnCi0rbWFjcm9fcmV2aXNpb249JzEuMzI5MycKLStfTFRfREVDTCgsIG1h Y3JvX3ZlcnNpb24sIDAsIFtXaGljaCByZWxlYXNlIG9mIGxpYnRvb2wubTQgd2FzIHVzZWQ/XSkK LStfTFRfREVDTCgsIG1hY3JvX3JldmlzaW9uLCAwKQotK10pCi1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svY29uZmlnL21pc3Npbmcgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9taXNzaW5n Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL21pc3NpbmcJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL21pc3NpbmcJ MjAxMS0wNy0wMyAxODo0NDoyNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzc2IEBACi0r IyEgL2Jpbi9zaAotKyMgQ29tbW9uIHN0dWIgZm9yIGEgZmV3IG1pc3NpbmcgR05VIHByb2dyYW1z IHdoaWxlIGluc3RhbGxpbmcuCi0rCi0rc2NyaXB0dmVyc2lvbj0yMDA5LTA0LTI4LjIxOyAjIFVU QwotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk5LCAyMDAwLCAyMDAyLCAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LAotKyMgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KLSsjIE9yaWdpbmFsbHkgYnkgRnJhbixjb2lzIFBpbmFyZCA8cGluYXJkQGlyby51 bW9udHJlYWwuY2E+LCAxOTk2LgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0r IyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQg eW91ciBvcHRpb24pCi0rIyBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCi0rCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rIyBBcyBhIHNwZWNpYWwg ZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0rIyBk aXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEK LSsjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBp bmNsdWRlIGl0IHVuZGVyCi0rIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3Ug dXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rCi0raWYgdGVzdCAkIyAtZXEgMDsg dGhlbgotKyAgZWNobyAxPiYyICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9u IgotKyAgZXhpdCAxCi0rZmkKLSsKLStydW49OgotK3NlZF9vdXRwdXQ9J3MvLiogLS1vdXRwdXRb ID1dXChbXiBdKlwpLiovXDEvcCcKLStzZWRfbWludXNvPSdzLy4qIC1vIFwoW14gXSpcKS4qL1wx L3AnCi0rCi0rIyBJbiB0aGUgY2FzZXMgd2hlcmUgdGhpcyBtYXR0ZXJzLCBgbWlzc2luZycgaXMg YmVpbmcgcnVuIGluIHRoZQotKyMgc3JjZGlyIGFscmVhZHkuCi0raWYgdGVzdCAtZiBjb25maWd1 cmUuYWM7IHRoZW4KLSsgIGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuYWMKLStlbHNlCi0rICBjb25m aWd1cmVfYWM9Y29uZmlndXJlLmluCi0rZmkKLSsKLSttc2c9Im1pc3Npbmcgb24geW91ciBzeXN0 ZW0iCi0rCi0rY2FzZSAkMSBpbgotKy0tcnVuKQotKyAgIyBUcnkgdG8gcnVuIHJlcXVlc3RlZCBw cm9ncmFtLCBhbmQganVzdCBleGl0IGlmIGl0IHN1Y2NlZWRzLgotKyAgcnVuPQotKyAgc2hpZnQK LSsgICIkQCIgJiYgZXhpdCAwCi0rICAjIEV4aXQgY29kZSA2MyBtZWFucyB2ZXJzaW9uIG1pc21h dGNoLiAgVGhpcyBvZnRlbiBoYXBwZW5zCi0rICAjIHdoZW4gdGhlIHVzZXIgdHJ5IHRvIHVzZSBh biBhbmNpZW50IHZlcnNpb24gb2YgYSB0b29sIG9uCi0rICAjIGEgZmlsZSB0aGF0IHJlcXVpcmVz IGEgbWluaW11bSB2ZXJzaW9uLiAgSW4gdGhpcyBjYXNlIHdlCi0rICAjIHdlIHNob3VsZCBwcm9j ZWVkIGhhcyBpZiB0aGUgcHJvZ3JhbSBoYWQgYmVlbiBhYnNlbnQsIG9yCi0rICAjIGlmIC0tcnVu IGhhZG4ndCBiZWVuIHBhc3NlZC4KLSsgIGlmIHRlc3QgJD8gPSA2MzsgdGhlbgotKyAgICBydW49 OgotKyAgICBtc2c9InByb2JhYmx5IHRvbyBvbGQiCi0rICBmaQotKyAgOzsKLSsKLSsgIC1ofC0t aHwtLWhlfC0taGVsfC0taGVscCkKLSsgICAgZWNobyAiXAotKyQwIFtPUFRJT05dLi4uIFBST0dS QU0gW0FSR1VNRU5UXS4uLgotKwotK0hhbmRsZSBcYFBST0dSQU0gW0FSR1VNRU5UXS4uLicgZm9y IHdoZW4gUFJPR1JBTSBpcyBtaXNzaW5nLCBvciByZXR1cm4gYW4KLStlcnJvciBzdGF0dXMgaWYg dGhlcmUgaXMgbm8ga25vd24gaGFuZGxpbmcgZm9yIFBST0dSQU0uCi0rCi0rT3B0aW9uczoKLSsg IC1oLCAtLWhlbHAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAotKyAgLXYsIC0tdmVy c2lvbiAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0rICAtLXJ1biAgICAg ICAgICAgdHJ5IHRvIHJ1biB0aGUgZ2l2ZW4gY29tbWFuZCwgYW5kIGVtdWxhdGUgaXQgaWYgaXQg ZmFpbHMKLSsKLStTdXBwb3J0ZWQgUFJPR1JBTSB2YWx1ZXM6Ci0rICBhY2xvY2FsICAgICAgdG91 Y2ggZmlsZSBcYGFjbG9jYWwubTQnCi0rICBhdXRvY29uZiAgICAgdG91Y2ggZmlsZSBcYGNvbmZp Z3VyZScKLSsgIGF1dG9oZWFkZXIgICB0b3VjaCBmaWxlIFxgY29uZmlnLmguaW4nCi0rICBhdXRv bTR0ZSAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlLCBvciBjcmVhdGUgYSBzdHViIG9uZQotKyAg YXV0b21ha2UgICAgIHRvdWNoIGFsbCBcYE1ha2VmaWxlLmluJyBmaWxlcwotKyAgYmlzb24gICAg ICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2No XQotKyAgZmxleCAgICAgICAgIGNyZWF0ZSBcYGxleC55eS5jJywgaWYgcG9zc2libGUsIGZyb20g ZXhpc3RpbmcgLmMKLSsgIGhlbHAybWFuICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKLSsgIGxl eCAgICAgICAgICBjcmVhdGUgXGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5n IC5jCi0rICBtYWtlaW5mbyAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlCi0rICB0YXIgICAgICAg ICAgdHJ5IHRhciwgZ251dGFyLCBndGFyLCB0aGVuIHRhciB3aXRob3V0IG5vbi1wb3J0YWJsZSBm bGFncwotKyAgeWFjYyAgICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwg ZnJvbSBleGlzdGluZyAuW2NoXQotKwotK1ZlcnNpb24gc3VmZml4ZXMgdG8gUFJPR1JBTSBhcyB3 ZWxsIGFzIHRoZSBwcmVmaXhlcyBcYGdudS0nLCBcYGdudScsIGFuZAotK1xgZycgYXJlIGlnbm9y ZWQgd2hlbiBjaGVja2luZyB0aGUgbmFtZS4KLSsKLStTZW5kIGJ1ZyByZXBvcnRzIHRvIDxidWct YXV0b21ha2VAZ251Lm9yZz4uIgotKyAgICBleGl0ICQ/Ci0rICAgIDs7Ci0rCi0rICAtdnwtLXZ8 LS12ZXwtLXZlcnwtLXZlcnN8LS12ZXJzaXwtLXZlcnNpb3wtLXZlcnNpb24pCi0rICAgIGVjaG8g Im1pc3NpbmcgJHNjcmlwdHZlcnNpb24gKEdOVSBBdXRvbWFrZSkiCi0rICAgIGV4aXQgJD8KLSsg ICAgOzsKLSsKLSsgIC0qKQotKyAgICBlY2hvIDE+JjIgIiQwOiBVbmtub3duIFxgJDEnIG9wdGlv biIKLSsgICAgZWNobyAxPiYyICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9u IgotKyAgICBleGl0IDEKLSsgICAgOzsKLSsKLStlc2FjCi0rCi0rIyBub3JtYWxpemUgcHJvZ3Jh bSBuYW1lIHRvIGNoZWNrIGZvci4KLStwcm9ncmFtPWBlY2hvICIkMSIgfCBzZWQgJwotKyAgcy9e Z251LS8vOyB0Ci0rICBzL15nbnUvLzsgdAotKyAgcy9eZy8vOyB0J2AKLSsKLSsjIE5vdyBleGl0 IGlmIHdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuICBBbHNvIGV4aXQgbm93IGlmIHdlCi0rIyBk b24ndCBoYXZlIGl0IGFuZCAtLXZlcnNpb24gd2FzIHBhc3NlZCAobW9zdCBsaWtlbHkgdG8gZGV0 ZWN0Ci0rIyB0aGUgcHJvZ3JhbSkuICBUaGlzIGlzIGFib3V0IG5vbi1HTlUgcHJvZ3JhbXMsIHNv IHVzZSAkMSBub3QKLSsjICRwcm9ncmFtLgotK2Nhc2UgJDEgaW4KLSsgIGxleCp8eWFjYyopCi0r ICAgICMgTm90IEdOVSBwcm9ncmFtcywgdGhleSBkb24ndCBoYXZlIC0tdmVyc2lvbi4KLSsgICAg OzsKLSsKLSsgIHRhciopCi0rICAgIGlmIHRlc3QgLW4gIiRydW4iOyB0aGVuCi0rICAgICAgIGVj aG8gMT4mMiAiRVJST1I6IFxgdGFyJyByZXF1aXJlcyAtLXJ1biIKLSsgICAgICAgZXhpdCAxCi0r ICAgIGVsaWYgdGVzdCAieCQyIiA9ICJ4LS12ZXJzaW9uIiB8fCB0ZXN0ICJ4JDIiID0gIngtLWhl bHAiOyB0aGVuCi0rICAgICAgIGV4aXQgMQotKyAgICBmaQotKyAgICA7OwotKwotKyAgKikKLSsg ICAgaWYgdGVzdCAteiAiJHJ1biIgJiYgKCQxIC0tdmVyc2lvbikgPiAvZGV2L251bGwgMj4mMTsg dGhlbgotKyAgICAgICAjIFdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCi0rICAgICAgIGV4aXQg MQotKyAgICBlbGlmIHRlc3QgIngkMiIgPSAieC0tdmVyc2lvbiIgfHwgdGVzdCAieCQyIiA9ICJ4 LS1oZWxwIjsgdGhlbgotKyAgICAgICAjIENvdWxkIG5vdCBydW4gLS12ZXJzaW9uIG9yIC0taGVs cC4gIFRoaXMgaXMgcHJvYmFibHkgc29tZW9uZQotKyAgICAgICAjIHJ1bm5pbmcgYCRUT09MIC0t dmVyc2lvbicgb3IgYCRUT09MIC0taGVscCcgdG8gY2hlY2sgd2hldGhlcgotKyAgICAgICAjICRU T09MIGV4aXN0cyBhbmQgbm90IGtub3dpbmcgJFRPT0wgdXNlcyBtaXNzaW5nLgotKyAgICAgICBl eGl0IDEKLSsgICAgZmkKLSsgICAgOzsKLStlc2FjCi0rCi0rIyBJZiBpdCBkb2VzIG5vdCBleGlz dCwgb3IgZmFpbHMgdG8gcnVuIChwb3NzaWJseSBhbiBvdXRkYXRlZCB2ZXJzaW9uKSwKLSsjIHRy eSB0byBlbXVsYXRlIGl0LgotK2Nhc2UgJHByb2dyYW0gaW4KLSsgIGFjbG9jYWwqKQotKyAgICBl Y2hvIDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5l ZWQgaXQgaWYKLSsgICAgICAgICB5b3UgbW9kaWZpZWQgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtj b25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50Ci0rICAgICAgICAgdG8gaW5zdGFsbCB0aGUg XGBBdXRvbWFrZScgYW5kIFxgUGVybCcgcGFja2FnZXMuICBHcmFiIHRoZW0gZnJvbQotKyAgICAg ICAgIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKLSsgICAgdG91Y2ggYWNsb2NhbC5tNAotKyAgICA7 OwotKwotKyAgYXV0b2NvbmYqKQotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBp cyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSsgICAgICAgICB5b3UgbW9kaWZp ZWQgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUKLSsg ICAgICAgICBcYEF1dG9jb25mJyBhbmQgXGBHTlUgbTQnIHBhY2thZ2VzLiAgR3JhYiB0aGVtIGZy b20gYW55IEdOVQotKyAgICAgICAgIGFyY2hpdmUgc2l0ZS4iCi0rICAgIHRvdWNoIGNvbmZpZ3Vy ZQotKyAgICA7OwotKwotKyAgYXV0b2hlYWRlciopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5J Tkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAg IHlvdSBtb2RpZmllZCBcYGFjY29uZmlnLmgnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBt aWdodCB3YW50Ci0rICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvY29uZicgYW5kIFxgR05V IG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbQotKyAgICAgICAgIGZyb20gYW55IEdOVSBhcmNoaXZl IHNpdGUuIgotKyAgICBmaWxlcz1gc2VkIC1uICdzL15bIF0qQVtDTV1fQ09ORklHX0hFQURFUihc KFteKV0qXCkpLiovXDEvcCcgJHtjb25maWd1cmVfYWN9YAotKyAgICB0ZXN0IC16ICIkZmlsZXMi ICYmIGZpbGVzPSJjb25maWcuaCIKLSsgICAgdG91Y2hfZmlsZXM9Ci0rICAgIGZvciBmIGluICRm aWxlczsgZG8KLSsgICAgICBjYXNlICRmIGluCi0rICAgICAgKjoqKSB0b3VjaF9maWxlcz0iJHRv dWNoX2ZpbGVzICJgZWNobyAiJGYiIHwKLSsJCQkJICAgICAgIHNlZCAtZSAncy9eW146XSo6Ly8n IC1lICdzLzouKi8vJ2A7OwotKyAgICAgICopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgJGYu aW4iOzsKLSsgICAgICBlc2FjCi0rICAgIGRvbmUKLSsgICAgdG91Y2ggJHRvdWNoX2ZpbGVzCi0r ICAgIDs7Ci0rCi0rICBhdXRvbWFrZSopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxg JDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBt b2RpZmllZCBcYE1ha2VmaWxlLmFtJywgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVf YWN9Jy4KLSsgICAgICAgICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtl JyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4KLSsgICAgICAgICBHcmFiIHRoZW0gZnJvbSBhbnkgR05V IGFyY2hpdmUgc2l0ZS4iCi0rICAgIGZpbmQgLiAtdHlwZSBmIC1uYW1lIE1ha2VmaWxlLmFtIC1w cmludCB8Ci0rCSAgIHNlZCAncy9cLmFtJC8uaW4vJyB8Ci0rCSAgIHdoaWxlIHJlYWQgZjsgZG8g dG91Y2ggIiRmIjsgZG9uZQotKyAgICA7OwotKwotKyAgYXV0b200dGUqKQotKyAgICBlY2hvIDE+ JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyBuZWVkZWQsIGJ1dCBpcyAkbXNnLgotKyAgICAgICAg IFlvdSBtaWdodCBoYXZlIG1vZGlmaWVkIHNvbWUgZmlsZXMgd2l0aG91dCBoYXZpbmcgdGhlCi0r ICAgICAgICAgcHJvcGVyIHRvb2xzIGZvciBmdXJ0aGVyIGhhbmRsaW5nIHRoZW0uCi0rICAgICAg ICAgWW91IGNhbiBnZXQgXGAkMScgYXMgcGFydCBvZiBcYEF1dG9jb25mJyBmcm9tIGFueSBHTlUK LSsgICAgICAgICBhcmNoaXZlIHNpdGUuIgotKwotKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQg LW4gIiRzZWRfb3V0cHV0ImAKLSsgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQq IiB8IHNlZCAtbiAiJHNlZF9taW51c28iYAotKyAgICBpZiB0ZXN0IC1mICIkZmlsZSI7IHRoZW4K LSsJdG91Y2ggJGZpbGUKLSsgICAgZWxzZQotKwl0ZXN0IC16ICIkZmlsZSIgfHwgZXhlYyA+JGZp bGUKLSsJZWNobyAiIyEgL2Jpbi9zaCIKLSsJZWNobyAiIyBDcmVhdGVkIGJ5IEdOVSBBdXRvbWFr ZSBtaXNzaW5nIGFzIGEgcmVwbGFjZW1lbnQgb2YiCi0rCWVjaG8gIiMgICQgJEAiCi0rCWVjaG8g ImV4aXQgMCIKLSsJY2htb2QgK3ggJGZpbGUKLSsJZXhpdCAxCi0rICAgIGZpCi0rICAgIDs7Ci0r Ci0rICBiaXNvbip8eWFjYyopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnICRt c2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBh IFxgLnknIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgQmlzb24nIHBhY2thZ2UKLSsgICAgICAg ICBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBj YW4gZ2V0Ci0rICAgICAgICAgXGBCaXNvbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0r ICAgIHJtIC1mIHkudGFiLmMgeS50YWIuaAotKyAgICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCi0r ICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKLSsJY2FzZSAkTEFTVEFSRyBpbgotKwkqLnkp Ci0rCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MveSQvYy8nYAotKwkgICAg aWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCi0rCSAgICAgICAgIGNwICIkU1JDRklMRSIgeS50 YWIuYwotKwkgICAgZmkKLSsJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95 JC9oLydgCi0rCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KLSsJICAgICAgICAgY3Ag IiRTUkNGSUxFIiB5LnRhYi5oCi0rCSAgICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgZmkKLSsg ICAgaWYgdGVzdCAhIC1mIHkudGFiLmg7IHRoZW4KLSsJZWNobyA+eS50YWIuaAotKyAgICBmaQot KyAgICBpZiB0ZXN0ICEgLWYgeS50YWIuYzsgdGhlbgotKwllY2hvICdtYWluKCkgeyByZXR1cm4g MDsgfScgPnkudGFiLmMKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGxleCp8ZmxleCopCi0rICAg IGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkg bmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLmwnIGZpbGUuICBZb3UgbWF5 IG5lZWQgdGhlIFxgRmxleCcgcGFja2FnZQotKyAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBt b2RpZmljYXRpb25zIHRvIHRha2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKLSsgICAgICAgICBcYEZs ZXgnIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotKyAgICBybSAtZiBsZXgueXkuYwotKyAg ICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCi0rICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIK LSsJY2FzZSAkTEFTVEFSRyBpbgotKwkqLmwpCi0rCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFS RyIgfCBzZWQgJ3MvbCQvYy8nYAotKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCi0r CSAgICAgICAgIGNwICIkU1JDRklMRSIgbGV4Lnl5LmMKLSsJICAgIGZpCi0rCSAgOzsKLSsJZXNh YwotKyAgICBmaQotKyAgICBpZiB0ZXN0ICEgLWYgbGV4Lnl5LmM7IHRoZW4KLSsJZWNobyAnbWFp bigpIHsgcmV0dXJuIDA7IH0nID5sZXgueXkuYwotKyAgICBmaQotKyAgICA7OwotKwotKyAgaGVs cDJtYW4qKQotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91 IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSsJIHlvdSBtb2RpZmllZCBhIGRlcGVuZGVuY3kgb2Yg YSBtYW51YWwgcGFnZS4gIFlvdSBtYXkgbmVlZCB0aGUKLSsJIFxgSGVscDJtYW4nIHBhY2thZ2Ug aW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZQotKwkgZWZmZWN0LiAgWW91 IGNhbiBnZXQgXGBIZWxwMm1hbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rCi0rICAg IGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAotKyAgICB0ZXN0IC16ICIk ZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCi0rICAgIGlm IHRlc3QgLWYgIiRmaWxlIjsgdGhlbgotKwl0b3VjaCAkZmlsZQotKyAgICBlbHNlCi0rCXRlc3Qg LXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQotKwllY2hvICIuYWIgaGVscDJtYW4gaXMgcmVxdWly ZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlIgotKwlleGl0ICQ/Ci0rICAgIGZpCi0rICAgIDs7Ci0r Ci0rICBtYWtlaW5mbyopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRt c2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBh IFxgLnRleGknIG9yIFxgLnRleGluZm8nIGZpbGUsIG9yIGFueSBvdGhlciBmaWxlCi0rICAgICAg ICAgaW5kaXJlY3RseSBhZmZlY3RpbmcgdGhlIGFzcGVjdCBvZiB0aGUgbWFudWFsLiAgVGhlIHNw dXJpb3VzCi0rICAgICAgICAgY2FsbCBtaWdodCBhbHNvIGJlIHRoZSBjb25zZXF1ZW5jZSBvZiB1 c2luZyBhIGJ1Z2d5IFxgbWFrZScgKEFJWCwKLSsgICAgICAgICBEVSwgSVJJWCkuICBZb3UgbWln aHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYFRleGluZm8nIHBhY2thZ2Ugb3IKLSsgICAgICAgICB0 aGUgXGBHTlUgbWFrZScgcGFja2FnZS4gIEdyYWIgZWl0aGVyIGZyb20gYW55IEdOVSBhcmNoaXZl IHNpdGUuIgotKyAgICAjIFRoZSBmaWxlIHRvIHRvdWNoIGlzIHRoYXQgc3BlY2lmaWVkIHdpdGgg LW8gLi4uCi0rICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAotKyAg ICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVz byJgCi0rICAgIGlmIHRlc3QgLXogIiRmaWxlIjsgdGhlbgotKyAgICAgICMgLi4uIG9yIGl0IGlz IHRoZSBvbmUgc3BlY2lmaWVkIHdpdGggQHNldGZpbGVuYW1lIC4uLgotKyAgICAgIGluZmlsZT1g ZWNobyAiJCoiIHwgc2VkICdzLy4qIFwoW14gXSpcKSAqJC9cMS8nYAotKyAgICAgIGZpbGU9YHNl ZCAtbiAnCi0rCS9eQHNldGZpbGVuYW1lL3sKLSsJICBzLy4qIFwoW14gXSpcKSAqJC9cMS8KLSsJ ICBwCi0rCSAgcQotKwl9JyAkaW5maWxlYAotKyAgICAgICMgLi4uIG9yIGl0IGlzIGRlcml2ZWQg ZnJvbSB0aGUgc291cmNlIG5hbWUgKGRpci9mLnRleGkgYmVjb21lcyBmLmluZm8pCi0rICAgICAg dGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiRpbmZpbGUiIHwgc2VkICdzLC4qLywsO3Ms LlteLl0qJCwsJ2AuaW5mbwotKyAgICBmaQotKyAgICAjIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4 aXN0LCB0aGUgdXNlciByZWFsbHkgbmVlZHMgbWFrZWluZm87Ci0rICAgICMgbGV0J3MgZmFpbCB3 aXRob3V0IHRvdWNoaW5nIGFueXRoaW5nLgotKyAgICB0ZXN0IC1mICRmaWxlIHx8IGV4aXQgMQot KyAgICB0b3VjaCAkZmlsZQotKyAgICA7OwotKwotKyAgdGFyKikKLSsgICAgc2hpZnQKLSsKLSsg ICAgIyBXZSBoYXZlIGFscmVhZHkgdHJpZWQgdGFyIGluIHRoZSBnZW5lcmljIHBhcnQuCi0rICAg ICMgTG9vayBmb3IgZ251dGFyL2d0YXIgYmVmb3JlIGludm9jYXRpb24gdG8gYXZvaWQgdWdseSBl cnJvcgotKyAgICAjIG1lc3NhZ2VzLgotKyAgICBpZiAoZ251dGFyIC0tdmVyc2lvbiA+IC9kZXYv bnVsbCAyPiYxKTsgdGhlbgotKyAgICAgICBnbnV0YXIgIiRAIiAmJiBleGl0IDAKLSsgICAgZmkK LSsgICAgaWYgKGd0YXIgLS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCi0rICAgICAg IGd0YXIgIiRAIiAmJiBleGl0IDAKLSsgICAgZmkKLSsgICAgZmlyc3Rhcmc9IiQxIgotKyAgICBp ZiBzaGlmdDsgdGhlbgotKwljYXNlICRmaXJzdGFyZyBpbgotKwkqbyopCi0rCSAgICBmaXJzdGFy Zz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL28vL2AKLSsJICAgIHRhciAiJGZpcnN0YXJnIiAi JEAiICYmIGV4aXQgMAotKwkgICAgOzsKLSsJZXNhYwotKwljYXNlICRmaXJzdGFyZyBpbgotKwkq aCopCi0rCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL2gvL2AKLSsJICAg IHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMAotKwkgICAgOzsKLSsJZXNhYwotKyAgICBm aQotKwotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBJIGNhbid0IHNlZW0gdG8gYmUgYWJs ZSB0byBydW4gXGB0YXInIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4KLSsgICAgICAgICBZb3Ug bWF5IHdhbnQgdG8gaW5zdGFsbCBHTlUgdGFyIG9yIEZyZWUgcGF4dXRpbHMsIG9yIGNoZWNrIHRo ZQotKyAgICAgICAgIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuIgotKyAgICBleGl0IDEKLSsgICAg OzsKLSsKLSsgICopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRl ZCwgYW5kIGlzICRtc2cuCi0rICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBm aWxlcyB3aXRob3V0IGhhdmluZyB0aGUKLSsgICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRo ZXIgaGFuZGxpbmcgdGhlbS4gIENoZWNrIHRoZSBcYFJFQURNRScgZmlsZSwKLSsgICAgICAgICBp dCBvZnRlbiB0ZWxscyB5b3UgYWJvdXQgdGhlIG5lZWRlZCBwcmVyZXF1aXNpdGVzIGZvciBpbnN0 YWxsaW5nCi0rICAgICAgICAgdGhpcyBwYWNrYWdlLiAgWW91IG1heSBhbHNvIHBlZWsgYXQgYW55 IEdOVSBhcmNoaXZlIHNpdGUsIGluIGNhc2UKLSsgICAgICAgICBzb21lIG90aGVyIHBhY2thZ2Ug d291bGQgY29udGFpbiB0aGlzIG1pc3NpbmcgXGAkMScgcHJvZ3JhbS4iCi0rICAgIGV4aXQgMQot KyAgICA7OwotK2VzYWMKLSsKLStleGl0IDAKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoKLSsjIGV2 YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUtc3Rh bXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUw Mm0tJTAyZC4lMDJIIgotKyMgdGltZS1zdGFtcC10aW1lLXpvbmU6ICJVVEMiCi0rIyB0aW1lLXN0 YW1wLWVuZDogIjsgIyBVVEMiCi0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv Y29uZmlndXJlIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWd1cmUKLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9jb25maWd1cmUJMjAxMS0wNy0wMyAxODo1NTowNi40NTE4NzY4NzggKzAyMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJlCTIwMTEtMDctMDMgMTg6NDQ6MjYuMDAwMDAwMDAw ICswMjAwCi1AQCAtMSw3MiArMSwyMTM2NCBAQAotLSMhL2Jpbi9zaAotKyMhIC9iaW4vc2gKLSsj IEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBN YWtlZmlsZXMuCi0rIyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjggZm9yIFNPQ0kgMy4w LjAuCi0rIwotKyMgUmVwb3J0IGJ1Z3MgdG8gPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5l dD4uCi0rIwotKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTEgTWFjaWVqIFNvYmN6YWsgPG1zb2Jj emFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLSsjCi0rIwotKyMgQ29weXJpZ2h0IChDKSAxOTky LCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotKyMgMjAw MiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBGcmVlIFNv ZnR3YXJlCi0rIyBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMKLSsjIFRoaXMgY29uZmlndXJlIHNj cmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBn aXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkg aXQuCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBNNHNoIEluaXRpYWxpemF0aW9u LiAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0gCi0taWYgWyAkIyAtZ3QgMCBdCi0r IyBCZSBtb3JlIEJvdXJuZSBjb21wYXRpYmxlCi0rRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNF ICMgZm9yIE1LUyBzaAotK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxh dGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6Ci0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01E PToKLSsgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsx KyIkQCJ9LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRo aXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJwotKyAgc2V0b3B0IE5P X0dMT0JfU1VCU1QKLStlbHNlCi0rICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4gIygK LSsgICpwb3NpeCopIDoKLSsgICAgc2V0IC1vIHBvc2l4IDs7ICMoCi0rICAqKSA6Ci0rICAgICA7 OwotK2VzYWMKLStmaQotKwotKwotK2FzX25sPScKLSsnCi0rZXhwb3J0IGFzX25sCi0rIyBQcmlu dGluZyBhIGxvbmcgc3RyaW5nIGNyYXNoZXMgU29sYXJpcyA3IC91c3IvYmluL3ByaW50Zi4KLSth c19lY2hvPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJwot K2FzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobwotK2FzX2Vj aG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCi0rIyBQ cmVmZXIgYSBrc2ggc2hlbGwgYnVpbHRpbiBvdmVyIGFuIGV4dGVybmFsIHByaW50ZiBwcm9ncmFt IG9uIFNvbGFyaXMsCi0rIyBidXQgd2l0aG91dCB3YXN0aW5nIGZvcmtzIGZvciBiYXNoIG9yIHpz aC4KLStpZiB0ZXN0IC16ICIkQkFTSF9WRVJTSU9OJFpTSF9WRVJTSU9OIiBcCi0rICAgICYmICh0 ZXN0ICJYYHByaW50IC1yIC0tICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4vZGV2L251bGw7 IHRoZW4KLSsgIGFzX2VjaG89J3ByaW50IC1yIC0tJwotKyAgYXNfZWNob19uPSdwcmludCAtcm4g LS0nCi0rZWxpZiAodGVzdCAiWGBwcmludGYgJXMgJGFzX2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAy Pi9kZXYvbnVsbDsgdGhlbgotKyAgYXNfZWNobz0ncHJpbnRmICVzXG4nCi0rICBhc19lY2hvX249 J3ByaW50ZiAlcycKLStlbHNlCi0rICBpZiB0ZXN0ICJYYCgvdXNyL3VjYi9lY2hvIC1uIC1uICRh c19lY2hvKSAyPi9kZXYvbnVsbGAiID0gIlgtbiAkYXNfZWNobyI7IHRoZW4KLSsgICAgYXNfZWNo b19ib2R5PSdldmFsIC91c3IvdWNiL2VjaG8gLW4gIiQxJGFzX25sIicKLSsgICAgYXNfZWNob19u PScvdXNyL3VjYi9lY2hvIC1uJwotKyAgZWxzZQotKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgZXhw ciAiWCQxIiA6ICJYXFwoLipcXCkiJwotKyAgICBhc19lY2hvX25fYm9keT0nZXZhbAotKyAgICAg IGFyZz0kMTsKLSsgICAgICBjYXNlICRhcmcgaW4gIygKLSsgICAgICAqIiRhc19ubCIqKQotKwll eHByICJYJGFyZyIgOiAiWFxcKC4qXFwpJGFzX25sIjsKLSsJYXJnPWBleHByICJYJGFyZyIgOiAi LiokYXNfbmxcXCguKlxcKSJgOzsKLSsgICAgICBlc2FjOwotKyAgICAgIGV4cHIgIlgkYXJnIiA6 ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRhc19ubCIKLSsgICAgJwotKyAgICBleHBvcnQgYXNfZWNo b19uX2JvZHkKLSsgICAgYXNfZWNob19uPSdzaCAtYyAkYXNfZWNob19uX2JvZHkgYXNfZWNobycK LSsgIGZpCi0rICBleHBvcnQgYXNfZWNob19ib2R5Ci0rICBhc19lY2hvPSdzaCAtYyAkYXNfZWNo b19ib2R5IGFzX2VjaG8nCi0rZmkKLSsKLSsjIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KLStp ZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotKyAgUEFUSF9TRVBB UkFUT1I9OgotKyAgKFBBVEg9Jy9iaW47L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rl di9udWxsIDI+JjEgJiYgewotKyAgICAoUEFUSD0nL2JpbjovYmluJzsgRlBBVEg9JFBBVEg7IHNo IC1jIDopID4vZGV2L251bGwgMj4mMSB8fAotKyAgICAgIFBBVEhfU0VQQVJBVE9SPSc7JwotKyAg fQotK2ZpCi0rCi0rCi0rIyBJRlMKLSsjIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUs IGluIHByZWNpc2VseSB0aGF0IG9yZGVyLiAgUXVvdGluZyBpcwotKyMgdGhlcmUgdG8gcHJldmVu dCBlZGl0b3JzIGZyb20gY29tcGxhaW5pbmcgYWJvdXQgc3BhY2UtdGFiLgotKyMgKElmIF9BU19Q QVRIX1dBTEsgd2VyZSBjYWxsZWQgd2l0aCBJRlMgdW5zZXQsIGl0IHdvdWxkIGRpc2FibGUgd29y ZAotKyMgc3BsaXR0aW5nIGJ5IHNldHRpbmcgSUZTIHRvIGVtcHR5IHZhbHVlLikKLStJRlM9IiAi IgkkYXNfbmwiCi0rCi0rIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdl IGNvbnRhaW4gbm8gZGlyZWN0b3J5IHNlcGFyYXRvci4KLSthc19teXNlbGY9Ci0rY2FzZSAkMCBp biAjKCgKLSsgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKLSsgICopIGFzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElG Uz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIHRl c3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCi0rICBk b25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgICAgOzsKLStlc2FjCi0rIyBXZSBkaWQgbm90 IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5E JwotKyMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgot K2lmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KLSsgIGFzX215c2VsZj0kMAotK2ZpCi0r aWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgotKyAgJGFzX2VjaG8gIiRhc19teXNlbGY6 IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgZmlsZSBu YW1lIiA+JjIKLSsgIGV4aXQgMQotK2ZpCi0rCi0rIyBVbnNldCB2YXJpYWJsZXMgdGhhdCB3ZSBk byBub3QgbmVlZCBhbmQgd2hpY2ggY2F1c2UgYnVncyAoZS5nLiBpbgotKyMgcHJlLTMuMCBVV0lO IGtzaCkuICBCdXQgZG8gbm90IGNhdXNlIGJ1Z3MgaW4gYmFzaCAyLjAxOyB0aGUgInx8IGV4aXQg MSIKLSsjIHN1cHByZXNzZXMgYW55ICJTZWdtZW50YXRpb24gZmF1bHQiIG1lc3NhZ2UgdGhlcmUu ICAnKCgnIGNvdWxkCi0rIyB0cmlnZ2VyIGEgYnVnIGluIHBka3NoIDUuMi4xNC4KLStmb3IgYXNf dmFyIGluIEJBU0hfRU5WIEVOViBNQUlMIE1BSUxQQVRICi0rZG8gZXZhbCB0ZXN0IHhcJHskYXNf dmFyK3NldH0gPSB4c2V0IFwKLSsgICYmICggKHVuc2V0ICRhc192YXIpIHx8IGV4aXQgMSkgPi9k ZXYvbnVsbCAyPiYxICYmIHVuc2V0ICRhc192YXIgfHwgOgotK2RvbmUKLStQUzE9JyQgJwotK1BT Mj0nPiAnCi0rUFM0PScrICcKLSsKLSsjIE5MUyBudWlzYW5jZXMuCi0rTENfQUxMPUMKLStleHBv cnQgTENfQUxMCi0rTEFOR1VBR0U9QwotK2V4cG9ydCBMQU5HVUFHRQotKwotKyMgQ0RQQVRILgot Kyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKLSsKLStpZiB0 ZXN0ICJ4JENPTkZJR19TSEVMTCIgPSB4OyB0aGVuCi0rICBhc19ib3VybmVfY29tcGF0aWJsZT0i aWYgdGVzdCAtbiBcIlwke1pTSF9WRVJTSU9OK3NldH1cIiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYv bnVsbCAyPiYxOyB0aGVuIDoKLSsgIGVtdWxhdGUgc2gKLSsgIE5VTExDTUQ9OgotKyAgIyBQcmUt NC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3JkIHNwbGl0dGluZyBvbiBcJHsxK1wiXCRAXCJ9LCB3 aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVy ZS4KLSsgIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9Jz0nXCJcJEBcIicKLSsgIHNldG9wdCBOT19H TE9CX1NVQlNUCi0rZWxzZQotKyAgY2FzZSBcYChzZXQgLW8pIDI+L2Rldi9udWxsXGAgaW4gIygK LSsgICpwb3NpeCopIDoKLSsgICAgc2V0IC1vIHBvc2l4IDs7ICMoCi0rICAqKSA6Ci0rICAgICA7 OwotK2VzYWMKLStmaQotKyIKLSsgIGFzX3JlcXVpcmVkPSJhc19mbl9yZXR1cm4gKCkgeyAoZXhp dCBcJDEpOyB9Ci0rYXNfZm5fc3VjY2VzcyAoKSB7IGFzX2ZuX3JldHVybiAwOyB9Ci0rYXNfZm5f ZmFpbHVyZSAoKSB7IGFzX2ZuX3JldHVybiAxOyB9Ci0rYXNfZm5fcmV0X3N1Y2Nlc3MgKCkgeyBy ZXR1cm4gMDsgfQotK2FzX2ZuX3JldF9mYWlsdXJlICgpIHsgcmV0dXJuIDE7IH0KLSsKLStleGl0 Y29kZT0wCi0rYXNfZm5fc3VjY2VzcyB8fCB7IGV4aXRjb2RlPTE7IGVjaG8gYXNfZm5fc3VjY2Vz cyBmYWlsZWQuOyB9Ci0rYXNfZm5fZmFpbHVyZSAmJiB7IGV4aXRjb2RlPTE7IGVjaG8gYXNfZm5f ZmFpbHVyZSBzdWNjZWVkZWQuOyB9Ci0rYXNfZm5fcmV0X3N1Y2Nlc3MgfHwgeyBleGl0Y29kZT0x OyBlY2hvIGFzX2ZuX3JldF9zdWNjZXNzIGZhaWxlZC47IH0KLSthc19mbl9yZXRfZmFpbHVyZSAm JiB7IGV4aXRjb2RlPTE7IGVjaG8gYXNfZm5fcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLjsgfQotK2lm ICggc2V0IHg7IGFzX2ZuX3JldF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVu IDoKLSsKLStlbHNlCi0rICBleGl0Y29kZT0xOyBlY2hvIHBvc2l0aW9uYWwgcGFyYW1ldGVycyB3 ZXJlIG5vdCBzYXZlZC4KLStmaQotK3Rlc3QgeFwkZXhpdGNvZGUgPSB4MCB8fCBleGl0IDEiCi0r ICBhc19zdWdnZXN0ZWQ9IiAgYXNfbGluZW5vXzE9Ijthc19zdWdnZXN0ZWQ9JGFzX3N1Z2dlc3Rl ZCRMSU5FTk87YXNfc3VnZ2VzdGVkPSRhc19zdWdnZXN0ZWQiIGFzX2xpbmVub18xYT1cJExJTkVO TwotKyAgYXNfbGluZW5vXzI9Ijthc19zdWdnZXN0ZWQ9JGFzX3N1Z2dlc3RlZCRMSU5FTk87YXNf c3VnZ2VzdGVkPSRhc19zdWdnZXN0ZWQiIGFzX2xpbmVub18yYT1cJExJTkVOTwotKyAgZXZhbCAn dGVzdCBcInhcJGFzX2xpbmVub18xJ1wkYXNfcnVuJ1wiICE9IFwieFwkYXNfbGluZW5vXzInXCRh c19ydW4nXCIgJiYKLSsgIHRlc3QgXCJ4XGBleHByIFwkYXNfbGluZW5vXzEnXCRhc19ydW4nICsg MVxgXCIgPSBcInhcJGFzX2xpbmVub18yJ1wkYXNfcnVuJ1wiJyB8fCBleGl0IDEKLSsKLSsgIHRl c3QgLW4gXCJcJHtaU0hfVkVSU0lPTitzZXR9XCR7QkFTSF9WRVJTSU9OK3NldH1cIiB8fCAoCi0r ICAgIEVDSE89J1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJwotKyAgICBFQ0hP PVwkRUNIT1wkRUNIT1wkRUNIT1wkRUNIT1wkRUNITwotKyAgICBFQ0hPPVwkRUNIT1wkRUNIT1wk RUNIT1wkRUNIT1wkRUNIT1wkRUNITwotKyAgICBQQVRIPS9lbXB0eSBGUEFUSD0vZW1wdHk7IGV4 cG9ydCBQQVRIIEZQQVRICi0rICAgIHRlc3QgXCJYXGBwcmludGYgJXMgXCRFQ0hPXGBcIiA9IFwi WFwkRUNIT1wiIFxcCi0rICAgICAgfHwgdGVzdCBcIlhcYHByaW50IC1yIC0tIFwkRUNIT1xgXCIg PSBcIlhcJEVDSE9cIiApIHx8IGV4aXQgMQotK3Rlc3QgXCQoKCAxICsgMSApKSA9IDIgfHwgZXhp dCAxIgotKyAgaWYgKGV2YWwgIiRhc19yZXF1aXJlZCIpIDI+L2Rldi9udWxsOyB0aGVuIDoKLSsg IGFzX2hhdmVfcmVxdWlyZWQ9eWVzCi0rZWxzZQotKyAgYXNfaGF2ZV9yZXF1aXJlZD1ubwotK2Zp Ci0rICBpZiB0ZXN0IHgkYXNfaGF2ZV9yZXF1aXJlZCA9IHh5ZXMgJiYgKGV2YWwgIiRhc19zdWdn ZXN0ZWQiKSAyPi9kZXYvbnVsbDsgdGhlbiA6Ci0rCi0rZWxzZQotKyAgYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2FzX2ZvdW5kPWZhbHNlCi0rZm9yIGFzX2RpciBpbiAv YmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAotK2RvCi0rICBJ RlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgYXNf Zm91bmQ9OgotKyAgY2FzZSAkYXNfZGlyIGluICMoCi0rCSAvKikKLSsJICAgZm9yIGFzX2Jhc2Ug aW4gc2ggYmFzaCBrc2ggc2g1OyBkbwotKwkgICAgICMgVHJ5IG9ubHkgc2hlbGxzIHRoYXQgZXhp c3QsIHRvIHNhdmUgc2V2ZXJhbCBmb3Jrcy4KLSsJICAgICBhc19zaGVsbD0kYXNfZGlyLyRhc19i YXNlCi0rCSAgICAgaWYgeyB0ZXN0IC1mICIkYXNfc2hlbGwiIHx8IHRlc3QgLWYgIiRhc19zaGVs bC5leGUiOyB9ICYmCi0rCQkgICAgeyAkYXNfZWNobyAiJGFzX2JvdXJuZV9jb21wYXRpYmxlIiIk YXNfcmVxdWlyZWQiIHwgYXNfcnVuPWEgIiRhc19zaGVsbCI7IH0gMj4vZGV2L251bGw7IHRoZW4g OgotKyAgQ09ORklHX1NIRUxMPSRhc19zaGVsbCBhc19oYXZlX3JlcXVpcmVkPXllcwotKwkJICAg aWYgeyAkYXNfZWNobyAiJGFzX2JvdXJuZV9jb21wYXRpYmxlIiIkYXNfc3VnZ2VzdGVkIiB8IGFz X3J1bj1hICIkYXNfc2hlbGwiOyB9IDI+L2Rldi9udWxsOyB0aGVuIDoKLSsgIGJyZWFrIDIKLStm aQotK2ZpCi0rCSAgIGRvbmU7OwotKyAgICAgICBlc2FjCi0rICBhc19mb3VuZD1mYWxzZQotK2Rv bmUKLSskYXNfZm91bmQgfHwgeyBpZiB7IHRlc3QgLWYgIiRTSEVMTCIgfHwgdGVzdCAtZiAiJFNI RUxMLmV4ZSI7IH0gJiYKLSsJICAgICAgeyAkYXNfZWNobyAiJGFzX2JvdXJuZV9jb21wYXRpYmxl IiIkYXNfcmVxdWlyZWQiIHwgYXNfcnVuPWEgIiRTSEVMTCI7IH0gMj4vZGV2L251bGw7IHRoZW4g OgotKyAgQ09ORklHX1NIRUxMPSRTSEVMTCBhc19oYXZlX3JlcXVpcmVkPXllcwotK2ZpOyB9Ci0r SUZTPSRhc19zYXZlX0lGUwotKwotKwotKyAgICAgIGlmIHRlc3QgIngkQ09ORklHX1NIRUxMIiAh PSB4OyB0aGVuIDoKLSsgICMgV2UgY2Fubm90IHlldCBhc3N1bWUgYSBkZWNlbnQgc2hlbGwsIHNv IHdlIGhhdmUgdG8gcHJvdmlkZSBhCi0rCSMgbmV1dHJhbGl6YXRpb24gdmFsdWUgZm9yIHNoZWxs cyB3aXRob3V0IHVuc2V0OyBhbmQgdGhpcyBhbHNvCi0rCSMgd29ya3MgYXJvdW5kIHNoZWxscyB0 aGF0IGNhbm5vdCB1bnNldCBub25leGlzdGVudCB2YXJpYWJsZXMuCi0rCSMgUHJlc2VydmUgLXYg YW5kIC14IHRvIHRoZSByZXBsYWNlbWVudCBzaGVsbC4KLSsJQkFTSF9FTlY9L2Rldi9udWxsCi0r CUVOVj0vZGV2L251bGwKLSsJKHVuc2V0IEJBU0hfRU5WKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5z ZXQgQkFTSF9FTlYgRU5WCi0rCWV4cG9ydCBDT05GSUdfU0hFTEwKLSsJY2FzZSAkLSBpbiAjICgo KCgKLSsJICAqdip4KiB8ICp4KnYqICkgYXNfb3B0cz0tdnggOzsKLSsJICAqdiogKSBhc19vcHRz PS12IDs7Ci0rCSAgKngqICkgYXNfb3B0cz0teCA7OwotKwkgICogKSBhc19vcHRzPSA7OwotKwll c2FjCi0rCWV4ZWMgIiRDT05GSUdfU0hFTEwiICRhc19vcHRzICIkYXNfbXlzZWxmIiAkezErIiRA In0KLStmaQotKwotKyAgICBpZiB0ZXN0IHgkYXNfaGF2ZV9yZXF1aXJlZCA9IHhubzsgdGhlbiA6 Ci0rICAkYXNfZWNobyAiJDA6IFRoaXMgc2NyaXB0IHJlcXVpcmVzIGEgc2hlbGwgbW9yZSBtb2Rl cm4gdGhhbiBhbGwiCi0rICAkYXNfZWNobyAiJDA6IHRoZSBzaGVsbHMgdGhhdCBJIGZvdW5kIG9u IHlvdXIgc3lzdGVtLiIKLSsgIGlmIHRlc3QgeCR7WlNIX1ZFUlNJT04rc2V0fSA9IHhzZXQgOyB0 aGVuCi0rICAgICRhc19lY2hvICIkMDogSW4gcGFydGljdWxhciwgenNoICRaU0hfVkVSU0lPTiBo YXMgYnVncyBhbmQgc2hvdWxkIgotKyAgICAkYXNfZWNobyAiJDA6IGJlIHVwZ3JhZGVkIHRvIHpz aCA0LjMuNCBvciBsYXRlci4iCi0rICBlbHNlCi0rICAgICRhc19lY2hvICIkMDogUGxlYXNlIHRl bGwgYnVnLWF1dG9jb25mQGdudS5vcmcgYW5kCi0rJDA6IG1zb2JjemFrQHVzZXJzLnNvdXJjZWZv cmdlLm5ldCBhYm91dCB5b3VyIHN5c3RlbSwKLSskMDogaW5jbHVkaW5nIGFueSBlcnJvciBwb3Nz aWJseSBvdXRwdXQgYmVmb3JlIHRoaXMKLSskMDogbWVzc2FnZS4gVGhlbiBpbnN0YWxsIGEgbW9k ZXJuIHNoZWxsLCBvciBtYW51YWxseSBydW4KLSskMDogdGhlIHNjcmlwdCB1bmRlciBzdWNoIGEg c2hlbGwgaWYgeW91IGRvIGhhdmUgb25lLiIKLSsgIGZpCi0rICBleGl0IDEKLStmaQotK2ZpCi0r ZmkKLStTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotK2V4cG9ydCBTSEVMTAotKyMgVW5z ZXQgbW9yZSB2YXJpYWJsZXMga25vd24gdG8gaW50ZXJmZXJlIHdpdGggYmVoYXZpb3Igb2YgY29t bW9uIHRvb2xzLgotK0NMSUNPTE9SX0ZPUkNFPSBHUkVQX09QVElPTlM9Ci0rdW5zZXQgQ0xJQ09M T1JfRk9SQ0UgR1JFUF9PUFRJT05TCi0rCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0r IyMgTTRzaCBTaGVsbCBGdW5jdGlvbnMuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMj Ci0rIyBhc19mbl91bnNldCBWQVIKLSsjIC0tLS0tLS0tLS0tLS0tLQotKyMgUG9ydGFibHkgdW5z ZXQgVkFSLgotK2FzX2ZuX3Vuc2V0ICgpCi0rewotKyAgeyBldmFsICQxPTsgdW5zZXQgJDE7fQot K30KLSthc191bnNldD1hc19mbl91bnNldAotKwotKyMgYXNfZm5fc2V0X3N0YXR1cyBTVEFUVVMK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTZXQgJD8gdG8gU1RBVFVTLCB3aXRob3V0 IGZvcmtpbmcuCi0rYXNfZm5fc2V0X3N0YXR1cyAoKQotK3sKLSsgIHJldHVybiAkMQotK30gIyBh c19mbl9zZXRfc3RhdHVzCi0rCi0rIyBhc19mbl9leGl0IFNUQVRVUwotKyMgLS0tLS0tLS0tLS0t LS0tLS0KLSsjIEV4aXQgdGhlIHNoZWxsIHdpdGggU1RBVFVTLCBldmVuIGluIGEgInRyYXAgMCIg b3IgInNldCAtZSIgY29udGV4dC4KLSthc19mbl9leGl0ICgpCi0rewotKyAgc2V0ICtlCi0rICBh c19mbl9zZXRfc3RhdHVzICQxCi0rICBleGl0ICQxCi0rfSAjIGFzX2ZuX2V4aXQKLSsKLSsjIGFz X2ZuX21rZGlyX3AKLSsjIC0tLS0tLS0tLS0tLS0KLSsjIENyZWF0ZSAiJGFzX2RpciIgYXMgYSBk aXJlY3RvcnksIGluY2x1ZGluZyBwYXJlbnRzIGlmIG5lY2Vzc2FyeS4KLSthc19mbl9ta2Rpcl9w ICgpCi0rewotKwotKyAgY2FzZSAkYXNfZGlyIGluICMoCi0rICAtKikgYXNfZGlyPS4vJGFzX2Rp cjs7Ci0rICBlc2FjCi0rICB0ZXN0IC1kICIkYXNfZGlyIiB8fCBldmFsICRhc19ta2Rpcl9wIHx8 IHsKLSsgICAgYXNfZGlycz0KLSsgICAgd2hpbGUgOjsgZG8KLSsgICAgICBjYXNlICRhc19kaXIg aW4gIygKLSsgICAgICAqXCcqKSBhc19xZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBzZWQgInMv Jy8nXFxcXFxcXFwnJy9nImA7OyAjJygKLSsgICAgICAqKSBhc19xZGlyPSRhc19kaXI7OwotKyAg ICAgIGVzYWMKLSsgICAgICBhc19kaXJzPSInJGFzX3FkaXInICRhc19kaXJzIgotKyAgICAgIGFz X2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19kaXIiIHx8Ci0rJGFzX2V4cHIgWCIkYXNfZGlyIiA6 ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgv L1wpW14vXScgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkYXNf ZGlyIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhc19kaXIi IHwKLSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMv L1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9c MS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkg ICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJ ICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJlYWsK LSsgICAgZG9uZQotKyAgICB0ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFzX2Rp cnMiCi0rICB9IHx8IHRlc3QgLWQgIiRhc19kaXIiIHx8IGFzX2ZuX2Vycm9yICQ/ICJjYW5ub3Qg Y3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIgotKwotKwotK30gIyBhc19mbl9ta2Rpcl9wCi0rIyBh c19mbl9hcHBlbmQgVkFSIFZBTFVFCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBBcHBl bmQgdGhlIHRleHQgaW4gVkFMVUUgdG8gdGhlIGVuZCBvZiB0aGUgZGVmaW5pdGlvbiBjb250YWlu ZWQgaW4gVkFSLiBUYWtlCi0rIyBhZHZhbnRhZ2Ugb2YgYW55IHNoZWxsIG9wdGltaXphdGlvbnMg dGhhdCBhbGxvdyBhbW9ydGl6ZWQgbGluZWFyIGdyb3d0aCBvdmVyCi0rIyByZXBlYXRlZCBhcHBl bmRzLCBpbnN0ZWFkIG9mIHRoZSB0eXBpY2FsIHF1YWRyYXRpYyBncm93dGggcHJlc2VudCBpbiBu YWl2ZQotKyMgaW1wbGVtZW50YXRpb25zLgotK2lmIChldmFsICJhc192YXI9MTsgYXNfdmFyKz0y OyB0ZXN0IHhcJGFzX3ZhciA9IHgxMiIpIDI+L2Rldi9udWxsOyB0aGVuIDoKLSsgIGV2YWwgJ2Fz X2ZuX2FwcGVuZCAoKQotKyAgewotKyAgICBldmFsICQxKz1cJDIKLSsgIH0nCi0rZWxzZQotKyAg YXNfZm5fYXBwZW5kICgpCi0rICB7Ci0rICAgIGV2YWwgJDE9XCQkMVwkMgotKyAgfQotK2ZpICMg YXNfZm5fYXBwZW5kCi0rCi0rIyBhc19mbl9hcml0aCBBUkcuLi4KLSsjIC0tLS0tLS0tLS0tLS0t LS0tLQotKyMgUGVyZm9ybSBhcml0aG1ldGljIGV2YWx1YXRpb24gb24gdGhlIEFSR3MsIGFuZCBz dG9yZSB0aGUgcmVzdWx0IGluIHRoZQotKyMgZ2xvYmFsICRhc192YWwuIFRha2UgYWR2YW50YWdl IG9mIHNoZWxscyB0aGF0IGNhbiBhdm9pZCBmb3Jrcy4gVGhlIGFyZ3VtZW50cwotKyMgbXVzdCBi ZSBwb3J0YWJsZSBhY3Jvc3MgJCgoKSkgYW5kIGV4cHIuCi0raWYgKGV2YWwgInRlc3QgXCQoKCAx ICsgMSApKSA9IDIiKSAyPi9kZXYvbnVsbDsgdGhlbiA6Ci0rICBldmFsICdhc19mbl9hcml0aCAo KQotKyAgewotKyAgICBhc192YWw9JCgoICQqICkpCi0rICB9JwotK2Vsc2UKLSsgIGFzX2ZuX2Fy aXRoICgpCi0rICB7Ci0rICAgIGFzX3ZhbD1gZXhwciAiJEAiIHx8IHRlc3QgJD8gLWVxIDFgCi0r ICB9Ci0rZmkgIyBhc19mbl9hcml0aAotKwotKwotKyMgYXNfZm5fZXJyb3IgU1RBVFVTIEVSUk9S IFtMSU5FTk8gTE9HX0ZEXQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgT3V0cHV0ICJgYmFzZW5hbWUgJDBgOiBlcnJvcjogRVJST1IiIHRvIHN0ZGVyci4g SWYgTElORU5PIGFuZCBMT0dfRkQgYXJlCi0rIyBwcm92aWRlZCwgYWxzbyBvdXRwdXQgdGhlIGVy cm9yIHRvIExPR19GRCwgcmVmZXJlbmNpbmcgTElORU5PLiBUaGVuIGV4aXQgdGhlCi0rIyBzY3Jp cHQgd2l0aCBTVEFUVVMsIHVzaW5nIDEgaWYgdGhhdCB3YXMgMC4KLSthc19mbl9lcnJvciAoKQot K3sKLSsgIGFzX3N0YXR1cz0kMTsgdGVzdCAkYXNfc3RhdHVzIC1lcSAwICYmIGFzX3N0YXR1cz0x Ci0rICBpZiB0ZXN0ICIkNCI7IHRoZW4KLSsgICAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMyJ9 IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjawotKyAgICAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogJDIiID4mJDQKLSsg IGZpCi0rICAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJDIiID4mMgotKyAgYXNfZm5fZXhpdCAk YXNfc3RhdHVzCi0rfSAjIGFzX2ZuX2Vycm9yCi0rCi0raWYgZXhwciBhIDogJ1woYVwpJyA+L2Rl di9udWxsIDI+JjEgJiYKLSsgICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipcKC4uLlwpJ2AiID0g WDAwMTsgdGhlbgotKyAgYXNfZXhwcj1leHByCi0rZWxzZQotKyAgYXNfZXhwcj1mYWxzZQotK2Zp Ci0rCi0raWYgKGJhc2VuYW1lIC0tIC8pID4vZGV2L251bGwgMj4mMSAmJiB0ZXN0ICJYYGJhc2Vu YW1lIC0tIC8gMj4mMWAiID0gIlgvIjsgdGhlbgotKyAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKLStl bHNlCi0rICBhc19iYXNlbmFtZT1mYWxzZQotK2ZpCi0rCi0raWYgKGFzX2Rpcj1gZGlybmFtZSAt LSAvYCAmJiB0ZXN0ICJYJGFzX2RpciIgPSBYLykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBh c19kaXJuYW1lPWRpcm5hbWUKLStlbHNlCi0rICBhc19kaXJuYW1lPWZhbHNlCi0rZmkKLSsKLSth c19tZT1gJGFzX2Jhc2VuYW1lIC0tICIkMCIgfHwKLSskYXNfZXhwciBYLyIkMCIgOiAnLiovXChb Xi9dW14vXSpcKS8qJCcgXHwgXAotKwkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgiJDAi IDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgvIiQwIiB8Ci0rICAg IHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0r CSAgfQotKwkgIC9eWFwvXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0K LSsJICAvXlhcL1woXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBz Ly4qLy4vOyBxJ2AKLSsKLSsjIEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMu Ci0rYXNfY3JfbGV0dGVycz0nYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCi0rYXNfY3JfTEVU VEVSUz0nQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonCi0rYXNfY3JfTGV0dGVycz0kYXNfY3Jf bGV0dGVycyRhc19jcl9MRVRURVJTCi0rYXNfY3JfZGlnaXRzPScwMTIzNDU2Nzg5JwotK2FzX2Ny X2FsbnVtPSRhc19jcl9MZXR0ZXJzJGFzX2NyX2RpZ2l0cwotKwotKwotKyAgYXNfbGluZW5vXzE9 JExJTkVOTyBhc19saW5lbm9fMWE9JExJTkVOTwotKyAgYXNfbGluZW5vXzI9JExJTkVOTyBhc19s aW5lbm9fMmE9JExJTkVOTwotKyAgZXZhbCAndGVzdCAieCRhc19saW5lbm9fMSckYXNfcnVuJyIg IT0gIngkYXNfbGluZW5vXzInJGFzX3J1biciICYmCi0rICB0ZXN0ICJ4YGV4cHIgJGFzX2xpbmVu b18xJyRhc19ydW4nICsgMWAiID0gIngkYXNfbGluZW5vXzInJGFzX3J1biciJyB8fCB7Ci0rICAj IEJsYW1lIExlZSBFLiBNY01haG9uICgxOTMxLTE5ODkpIGZvciBzZWQncyBzeW50YXguICA6LSkK LSsgIHNlZCAtbiAnCi0rICAgIHAKLSsgICAgL1skXUxJTkVOTy89Ci0rICAnIDwkYXNfbXlzZWxm IHwKLSsgICAgc2VkICcKLSsgICAgICBzL1skXUxJTkVOTy4qLyYtLwotKyAgICAgIHQgbGluZW5v Ci0rICAgICAgYgotKyAgICAgIDpsaW5lbm8KLSsgICAgICBOCi0rICAgICAgOmxvb3AKLSsgICAg ICBzL1skXUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19dLipcblwpXCguKlwpL1wyXDFcMi8KLSsg ICAgICB0IGxvb3AKLSsgICAgICBzLy1cbi4qLy8KLSsgICAgJyA+JGFzX21lLmxpbmVubyAmJgot KyAgY2htb2QgK3ggIiRhc19tZS5saW5lbm8iIHx8Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNo ZWxsIiA+JjI7IGFzX2ZuX2V4aXQgMTsgfQotKwotKyAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBp dCBjaGFuZ2VzICRbMF0sIGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKLSsgICMgKHRoZSBk aXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQot KyAgIyBvcmlnaW5hbCBhbmQgc28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpdGl2 ZSB0byB0aGlzKS4KLSsgIC4gIi4vJGFzX21lLmxpbmVubyIKLSsgICMgRXhpdCBzdGF0dXMgaXMg dGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgotKyAgZXhpdAotK30KLSsKLStFQ0hPX0M9IEVDSE9f Tj0gRUNIT19UPQotK2Nhc2UgYGVjaG8gLW4geGAgaW4gIygoKCgoCi0rLW4qKQotKyAgY2FzZSBg ZWNobyAneHlcYydgIGluCi0rICAqYyopIEVDSE9fVD0nCSc7OwkjIEVDSE9fVCBpcyBzaW5nbGUg dGFiIGNoYXJhY3Rlci4KLSsgIHh5KSAgRUNIT19DPSdcYyc7OwotKyAgKikgICBlY2hvIGBlY2hv IGtzaDg4IGJ1ZyBvbiBBSVggNi4xYCA+IC9kZXYvbnVsbAotKyAgICAgICBFQ0hPX1Q9JwknOzsK LSsgIGVzYWM7OwotKyopCi0rICBFQ0hPX049Jy1uJzs7Ci0rZXNhYwotKwotK3JtIC1mIGNvbmYk JCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0raWYgdGVzdCAtZCBjb25mJCQuZGlyOyB0aGVuCi0r ICBybSAtZiBjb25mJCQuZGlyL2NvbmYkJC5maWxlCi0rZWxzZQotKyAgcm0gLWYgY29uZiQkLmRp cgotKyAgbWtkaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotK2ZpCi0raWYgKGVjaG8gPmNvbmYk JC5maWxlKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQk IDI+L2Rldi9udWxsOyB0aGVuCi0rICAgIGFzX2xuX3M9J2xuIC1zJwotKyAgICAjIC4uLiBidXQg dGhlcmUgYXJlIHR3byBnb3RjaGFzOgotKyAgICAjIDEpIE9uIE1TWVMsIGJvdGggYGxuIC1zIGZp bGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgotKyAgICAjIDIpIERKR1BQIDwgMi4wNCBo YXMgbm8gc3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBwZXIgZXhlY3V0YWJsZS4KLSsg ICAgIyBJbiBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQgdG8gYGNwIC1wJy4KLSsgICAg bG4gLXMgY29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVsbCAmJiB0ZXN0ICEgLWYgY29u ZiQkLmV4ZSB8fAotKyAgICAgIGFzX2xuX3M9J2NwIC1wJwotKyAgZWxpZiBsbiBjb25mJCQuZmls ZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgYXNfbG5fcz1sbgotKyAgZWxzZQotKyAg ICBhc19sbl9zPSdjcCAtcCcKLSsgIGZpCi0rZWxzZQotKyAgYXNfbG5fcz0nY3AgLXAnCi0rZmkK LStybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZGlyL2NvbmYkJC5maWxlIGNvbmYkJC5m aWxlCi0rcm1kaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotKwotK2lmIG1rZGlyIC1wIC4gMj4v ZGV2L251bGw7IHRoZW4KLSsgIGFzX21rZGlyX3A9J21rZGlyIC1wICIkYXNfZGlyIicKLStlbHNl Ci0rICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAotKyAgYXNfbWtkaXJfcD1mYWxzZQotK2Zp Ci0rCi0raWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgYXNfdGVzdF94PSd0 ZXN0IC14JwotK2Vsc2UKLSsgIGlmIGxzIC1kTCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAg ICBhc19sc19MX29wdGlvbj1MCi0rICBlbHNlCi0rICAgIGFzX2xzX0xfb3B0aW9uPQotKyAgZmkK LSsgIGFzX3Rlc3RfeD0nCi0rICAgIGV2YWwgc2ggLWMgJ1wnJwotKyAgICAgIGlmIHRlc3QgLWQg IiQxIjsgdGhlbgotKwl0ZXN0IC1kICIkMS8uIjsKLSsgICAgICBlbHNlCi0rCWNhc2UgJDEgaW4g IygKLSsJLSopc2V0ICIuLyQxIjs7Ci0rCWVzYWM7Ci0rCWNhc2UgYGxzIC1sZCckYXNfbHNfTF9v cHRpb24nICIkMSIgMj4vZGV2L251bGxgIGluICMoKAotKwk/Pz9bc3hdKik6OzsqKWZhbHNlOztl c2FjO2ZpCi0rICAgICdcJycgc2gKLSsgICcKLStmaQotK2FzX2V4ZWN1dGFibGVfcD0kYXNfdGVz dF94Ci0rCi0rIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQ UCBuYW1lLgotK2FzX3RyX2NwcD0iZXZhbCBzZWQgJ3klKiRhc19jcl9sZXR0ZXJzJVAkYXNfY3Jf TEVUVEVSUyU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCi0rCi0rIyBTZWQgZXhwcmVzc2lvbiB0 byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCi0rYXNfdHJfc2g9ImV2 YWwgc2VkICd5JSorJXBwJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKLSsKLStTSEVMTD0ke0NP TkZJR19TSEVMTC0vYmluL3NofQotKwotKwotK3Rlc3QgLW4gIiRESkRJUiIgfHwgZXhlYyA3PCYw IDwvZGV2L251bGwKLStleGVjIDY+JjEKLSsKLSsjIE5hbWUgb2YgdGhlIGhvc3QuCi0rIyBob3N0 bmFtZSBvbiBzb21lIHN5c3RlbXMgKFNWUjMuMiwgb2xkIEdOVS9MaW51eCkgcmV0dXJucyBhIGJv Z3VzIGV4aXQgc3RhdHVzLAotKyMgc28gdW5hbWUgZ2V0cyBydW4gdG9vLgotK2FjX2hvc3RuYW1l PWAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAotKwotKyMKLSsj IEluaXRpYWxpemF0aW9ucy4KLSsjCi0rYWNfZGVmYXVsdF9wcmVmaXg9L3Vzci9sb2NhbAotK2Fj X2NsZWFuX2ZpbGVzPQotK2FjX2NvbmZpZ19saWJvYmpfZGlyPS4KLStMSUJPQkpTPQotK2Nyb3Nz X2NvbXBpbGluZz1ubwotK3N1YmRpcnM9Ci0rTUZMQUdTPQotK01BS0VGTEFHUz0KLSsKLSsjIElk ZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KLStQQUNLQUdFX05BTUU9J1NPQ0knCi0rUEFDS0FHRV9U QVJOQU1FPSdzb2NpJwotK1BBQ0tBR0VfVkVSU0lPTj0nMy4wLjAnCi0rUEFDS0FHRV9TVFJJTkc9 J1NPQ0kgMy4wLjAnCi0rUEFDS0FHRV9CVUdSRVBPUlQ9J21zb2JjemFrQHVzZXJzLnNvdXJjZWZv cmdlLm5ldCcKLStQQUNLQUdFX1VSTD0nJwotKwotK2FjX3VuaXF1ZV9maWxlPSJzb2NpL2NvcmUv ZXJyb3IuY3BwIgotKyMgRmFjdG9yaW5nIGRlZmF1bHQgaGVhZGVycyBmb3IgbW9zdCB0ZXN0cy4K LSthY19pbmNsdWRlc19kZWZhdWx0PSJcCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2lmZGVmIEhB VkVfU1lTX1RZUEVTX0gKLSsjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotKyNlbmRpZgotKyNpZmRl ZiBIQVZFX1NZU19TVEFUX0gKLSsjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0rI2VuZGlmCi0rI2lm ZGVmIFNURENfSEVBREVSUwotKyMgaW5jbHVkZSA8c3RkbGliLmg+Ci0rIyBpbmNsdWRlIDxzdGRk ZWYuaD4KLSsjZWxzZQotKyMgaWZkZWYgSEFWRV9TVERMSUJfSAotKyMgIGluY2x1ZGUgPHN0ZGxp Yi5oPgotKyMgZW5kaWYKLSsjZW5kaWYKLSsjaWZkZWYgSEFWRV9TVFJJTkdfSAotKyMgaWYgIWRl ZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAotKyMgIGluY2x1ZGUg PG1lbW9yeS5oPgotKyMgZW5kaWYKLSsjIGluY2x1ZGUgPHN0cmluZy5oPgotKyNlbmRpZgotKyNp ZmRlZiBIQVZFX1NUUklOR1NfSAotKyMgaW5jbHVkZSA8c3RyaW5ncy5oPgotKyNlbmRpZgotKyNp ZmRlZiBIQVZFX0lOVFRZUEVTX0gKLSsjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci0rI2VuZGlmCi0r I2lmZGVmIEhBVkVfU1RESU5UX0gKLSsjIGluY2x1ZGUgPHN0ZGludC5oPgotKyNlbmRpZgotKyNp ZmRlZiBIQVZFX1VOSVNURF9ICi0rIyBpbmNsdWRlIDx1bmlzdGQuaD4KLSsjZW5kaWYiCi0rCi0r YWNfc3Vic3RfdmFycz0nYW1fX0VYRUVYVF9GQUxTRQotK2FtX19FWEVFWFRfVFJVRQotK0xUTElC T0JKUwotK0xJQk9CSlMKLStSVU5fVEVTVFNfRkFMU0UKLStSVU5fVEVTVFNfVFJVRQotK3NlZF9v awotK2RpZmZfb2sKLStIVE1MX0RPQ19GQUxTRQotK0hUTUxfRE9DX1RSVUUKLStQRVJMCi0rZ3Nf b2sKLStkdmlwc19vawotK2xhdGV4X29rCi0rZG94eWdlbl9vawotK0lORk9fRE9DX0ZBTFNFCi0r SU5GT19ET0NfVFJVRQotK1BPU1RHUkVTUUxfRElSUwotK0hBVkVfUE9TVEdSRVNRTF9GQUxTRQot K0hBVkVfUE9TVEdSRVNRTF9UUlVFCi0rUE9TVEdSRVNRTF9MREZMQUdTCi0rUE9TVEdSRVNRTF9D RkxBR1MKLStQT1NUR1JFU1FMX1ZFUlNJT04KLStQR19DT05GSUcKLStPUkFDTEVfRElSUwotK0hB VkVfT1JBQ0xFX0ZBTFNFCi0rSEFWRV9PUkFDTEVfVFJVRQotK09SQUNMRV9PQ0lfTERGTEFHUwot K09SQUNMRV9PQ0lfQ0ZMQUdTCi0rT1JBQ0xFX09DSV9WRVJTSU9OCi0rTVlTUUxfRElSUwotK0hB VkVfTVlTUUxfRkFMU0UKLStIQVZFX01ZU1FMX1RSVUUKLStNWVNRTF9DX0xJQgotK01ZU1FMX0xJ QlMKLStNWVNRTF9DRkxBR1MKLStNWVNRTF9WRVJTSU9OCi0rQk9PU1RfVkVSU0lPTgotK0JPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUktfTElCCi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIKLStCT09TVF9N UElfTElCCi0rQk9PU1RfUFlUSE9OX0xJQgotK0JPT1NUX0FTSU9fTElCCi0rQk9PU1RfUkVHRVhf TElCCi0rQk9PU1RfREFURV9USU1FX0xJQgotK0JPT1NUX1NJR05BTFNfTElCCi0rQk9PU1RfV1NF UklBTElaQVRJT05fTElCCi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIKLStCT09TVF9JT1NUUkVB TVNfTElCCi0rQk9PU1RfVEhSRUFEX0xJQgotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIKLStC T09TVF9TWVNURU1fTElCCi0rQk9PU1RfRklMRVNZU1RFTV9MSUIKLStCT09TVF9MSUJTCi0rQk9P U1RfQ0ZMQUdTCi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVECi0rU09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFCi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE X1RSVUUKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVECi0rU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRF9GQUxTRQotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfVFJVRQotK1NPQ0lfSEVBREVS U19CVVJJRUQKLStTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFCi0rU09DSV9IRUFERVJTX0JVUklF RF9UUlVFCi0rQ1BQCi0rT1RPT0w2NAotK09UT09MCi0rTElQTwotK05NRURJVAotK0RTWU1VVElM Ci0rTUFOSUZFU1RfVE9PTAotK1JBTkxJQgotK2FjX2N0X0FSCi0rQVIKLStETExUT09MCi0rT0JK RFVNUAotK0xOX1MKLStOTQotK2FjX2N0X0RVTVBCSU4KLStEVU1QQklOCi0rTEQKLStGR1JFUAot K0VHUkVQCi0rR1JFUAotK1NFRAotK2FtX19mYXN0ZGVwQ0NfRkFMU0UKLSthbV9fZmFzdGRlcEND X1RSVUUKLStDQ0RFUE1PREUKLSthY19jdF9DQwotK0NGTEFHUwotK0NDCi0rTElCVE9PTAotK0NY WENQUAotK2FtX19mYXN0ZGVwQ1hYX0ZBTFNFCi0rYW1fX2Zhc3RkZXBDWFhfVFJVRQotK0NYWERF UE1PREUKLStBTURFUEJBQ0tTTEFTSAotK0FNREVQX0ZBTFNFCi0rQU1ERVBfVFJVRQotK2FtX19x dW90ZQotK2FtX19pbmNsdWRlCi0rREVQRElSCi0rT0JKRVhUCi0rRVhFRVhUCi0rYWNfY3RfQ1hY Ci0rQ1BQRkxBR1MKLStMREZMQUdTCi0rQ1hYRkxBR1MKLStDWFgKLStob3N0X29zCi0raG9zdF92 ZW5kb3IKLStob3N0X2NwdQotK2hvc3QKLStidWlsZF9vcwotK2J1aWxkX3ZlbmRvcgotK2J1aWxk X2NwdQotK2J1aWxkCi0rVVBMT0FEX0NPTU1BTkQKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTgot K0hBVkVfQ1BQVU5JVF9GQUxTRQotK0hBVkVfQ1BQVU5JVF9UUlVFCi0rQ1BQVU5JVF9WRVJTSU9O Ci0rQ1BQVU5JVF9MSUJTCi0rQ1BQVU5JVF9DRkxBR1MKLStDUFBVTklUX0NPTkZJRwotK2FtX191 bnRhcgotK2FtX190YXIKLStBTVRBUgotK2FtX19sZWFkaW5nX2RvdAotK1NFVF9NQUtFCi0rQVdL Ci0rbWtkaXJfcAotK01LRElSX1AKLStJTlNUQUxMX1NUUklQX1BST0dSQU0KLStTVFJJUAotK2lu c3RhbGxfc2gKLStNQUtFSU5GTwotK0FVVE9IRUFERVIKLStBVVRPTUFLRQotK0FVVE9DT05GCi0r QUNMT0NBTAotK1ZFUlNJT04KLStQQUNLQUdFCi0rQ1lHUEFUSF9XCi0rYW1fX2lzcmMKLStJTlNU QUxMX0RBVEEKLStJTlNUQUxMX1NDUklQVAotK0lOU1RBTExfUFJPR1JBTQotK3RhcmdldF9hbGlh cwotK2hvc3RfYWxpYXMKLStidWlsZF9hbGlhcwotK0xJQlMKLStFQ0hPX1QKLStFQ0hPX04KLStF Q0hPX0MKLStERUZTCi0rbWFuZGlyCi0rbG9jYWxlZGlyCi0rbGliZGlyCi0rcHNkaXIKLStwZGZk aXIKLStkdmlkaXIKLStodG1sZGlyCi0raW5mb2RpcgotK2RvY2RpcgotK29sZGluY2x1ZGVkaXIK LStpbmNsdWRlZGlyCi0rbG9jYWxzdGF0ZWRpcgotK3NoYXJlZHN0YXRlZGlyCi0rc3lzY29uZmRp cgotK2RhdGFkaXIKLStkYXRhcm9vdGRpcgotK2xpYmV4ZWNkaXIKLStzYmluZGlyCi0rYmluZGly Ci0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZQotK3ByZWZpeAotK2V4ZWNfcHJlZml4Ci0rUEFDS0FH RV9VUkwKLStQQUNLQUdFX0JVR1JFUE9SVAotK1BBQ0tBR0VfU1RSSU5HCi0rUEFDS0FHRV9WRVJT SU9OCi0rUEFDS0FHRV9UQVJOQU1FCi0rUEFDS0FHRV9OQU1FCi0rUEFUSF9TRVBBUkFUT1IKLStT SEVMTCcKLSthY19zdWJzdF9maWxlcz0nJwotK2FjX3VzZXJfb3B0cz0nCi0rZW5hYmxlX29wdGlv bl9jaGVja2luZwotK3dpdGhfY3BwdW5pdF9wcmVmaXgKLSt3aXRoX2NwcHVuaXRfZXhlY19wcmVm aXgKLStlbmFibGVfc2hhcmVkCi0rZW5hYmxlX3N0YXRpYwotK2VuYWJsZV9kZXBlbmRlbmN5X3Ry YWNraW5nCi0rd2l0aF9waWMKLStlbmFibGVfZmFzdF9pbnN0YWxsCi0rd2l0aF9nbnVfbGQKLSt3 aXRoX3N5c3Jvb3QKLStlbmFibGVfbGlidG9vbF9sb2NrCi0rZW5hYmxlX2V4Y2VwdGlvbnMKLStl bmFibGVfaW5mb19kb2MKLStlbmFibGVfaHRtbF9kb2MKLSt3aXRoX2RvY2RpcgotK2VuYWJsZV9i dXJyaWVkX2hlYWRlcnMKLStlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzCi0rZW5hYmxlX3Bv c3RncmVzcWxfYnVycmllZF9oZWFkZXJzCi0rd2l0aF9ib29zdAotK2VuYWJsZV9iYWNrZW5kX215 c3FsCi0rd2l0aF9teXNxbAotK3dpdGhfbXlzcWxfbGliCi0rd2l0aF9teXNxbF9pbmNsdWRlCi0r ZW5hYmxlX2JhY2tlbmRfb3JhY2xlCi0rd2l0aF9vcmFjbGUKLSt3aXRoX29yYWNsZV9pbmNsdWRl Ci0rd2l0aF9vcmFjbGVfbGliCi0rZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbAotK3dpdGhfcG9z dGdyZXNxbAotKycKLSsgICAgICBhY19wcmVjaW91c192YXJzPSdidWlsZF9hbGlhcwotK2hvc3Rf YWxpYXMKLSt0YXJnZXRfYWxpYXMKLStDWFgKLStDWFhGTEFHUwotK0xERkxBR1MKLStMSUJTCi0r Q1BQRkxBR1MKLStDQ0MKLStDWFhDUFAKLStDQwotK0NGTEFHUwotK0NQUCcKLSsKLSsKLSsjIElu aXRpYWxpemUgc29tZSB2YXJpYWJsZXMgc2V0IGJ5IG9wdGlvbnMuCi0rYWNfaW5pdF9oZWxwPQot K2FjX2luaXRfdmVyc2lvbj1mYWxzZQotK2FjX3VucmVjb2duaXplZF9vcHRzPQotK2FjX3VucmVj b2duaXplZF9zZXA9Ci0rIyBUaGUgdmFyaWFibGVzIGhhdmUgdGhlIHNhbWUgbmFtZXMgYXMgdGhl IG9wdGlvbnMsIHdpdGgKLSsjIGRhc2hlcyBjaGFuZ2VkIHRvIHVuZGVybGluZXMuCi0rY2FjaGVf ZmlsZT0vZGV2L251bGwKLStleGVjX3ByZWZpeD1OT05FCi0rbm9fY3JlYXRlPQotK25vX3JlY3Vy c2lvbj0KLStwcmVmaXg9Tk9ORQotK3Byb2dyYW1fcHJlZml4PU5PTkUKLStwcm9ncmFtX3N1ZmZp eD1OT05FCi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1zLHgseCwKLStzaWxlbnQ9Ci0rc2l0ZT0K LStzcmNkaXI9Ci0rdmVyYm9zZT0KLSt4X2luY2x1ZGVzPU5PTkUKLSt4X2xpYnJhcmllcz1OT05F Ci0rCi0rIyBJbnN0YWxsYXRpb24gZGlyZWN0b3J5IG9wdGlvbnMuCi0rIyBUaGVzZSBhcmUgbGVm dCB1bmV4cGFuZGVkIHNvIHVzZXJzIGNhbiAibWFrZSBpbnN0YWxsIGV4ZWNfcHJlZml4PS9mb28i Ci0rIyBhbmQgYWxsIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgc3VwcG9zZWQgdG8gYmUgYmFzZWQg b24gZXhlY19wcmVmaXgKLSsjIGJ5IGRlZmF1bHQgd2lsbCBhY3R1YWxseSBjaGFuZ2UuCi0rIyBV c2UgYnJhY2VzIGluc3RlYWQgb2YgcGFyZW5zIGJlY2F1c2Ugc2gsIHBlcmwsIGV0Yy4gYWxzbyBh Y2NlcHQgdGhlbS4KLSsjIChUaGUgbGlzdCBmb2xsb3dzIHRoZSBzYW1lIG9yZGVyIGFzIHRoZSBH TlUgQ29kaW5nIFN0YW5kYXJkcy4pCi0rYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCi0rc2Jp bmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKLStsaWJleGVjZGlyPScke2V4ZWNfcHJlZml4fS9s aWJleGVjJwotK2RhdGFyb290ZGlyPScke3ByZWZpeH0vc2hhcmUnCi0rZGF0YWRpcj0nJHtkYXRh cm9vdGRpcn0nCi0rc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycKLStzaGFyZWRzdGF0ZWRpcj0n JHtwcmVmaXh9L2NvbScKLStsb2NhbHN0YXRlZGlyPScke3ByZWZpeH0vdmFyJwotK2luY2x1ZGVk aXI9JyR7cHJlZml4fS9pbmNsdWRlJwotK29sZGluY2x1ZGVkaXI9Jy91c3IvaW5jbHVkZScKLStk b2NkaXI9JyR7ZGF0YXJvb3RkaXJ9L2RvYy8ke1BBQ0tBR0VfVEFSTkFNRX0nCi0raW5mb2Rpcj0n JHtkYXRhcm9vdGRpcn0vaW5mbycKLStodG1sZGlyPScke2RvY2Rpcn0nCi0rZHZpZGlyPScke2Rv Y2Rpcn0nCi0rcGRmZGlyPScke2RvY2Rpcn0nCi0rcHNkaXI9JyR7ZG9jZGlyfScKLStsaWJkaXI9 JyR7ZXhlY19wcmVmaXh9L2xpYicKLStsb2NhbGVkaXI9JyR7ZGF0YXJvb3RkaXJ9L2xvY2FsZScK LSttYW5kaXI9JyR7ZGF0YXJvb3RkaXJ9L21hbicKLSsKLSthY19wcmV2PQotK2FjX2Rhc2hkYXNo PQotK2ZvciBhY19vcHRpb24KLStkbwotKyAgIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRz IGFuIGFyZ3VtZW50LCBhc3NpZ24gaXQuCi0rICBpZiB0ZXN0IC1uICIkYWNfcHJldiI7IHRoZW4K LSsgICAgZXZhbCAkYWNfcHJldj1cJGFjX29wdGlvbgotKyAgICBhY19wcmV2PQotKyAgICBjb250 aW51ZQotKyAgZmkKLSsKLSsgIGNhc2UgJGFjX29wdGlvbiBpbgotKyAgKj0/KikgYWNfb3B0YXJn PWBleHByICJYJGFjX29wdGlvbiIgOiAnW149XSo9XCguKlwpJ2AgOzsKLSsgICo9KSAgIGFjX29w dGFyZz0gOzsKLSsgICopICAgIGFjX29wdGFyZz15ZXMgOzsKLSsgIGVzYWMKLSsKLSsgICMgQWNj ZXB0IHRoZSBpbXBvcnRhbnQgQ3lnbnVzIGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlh Z25vc2UgdHlwb3MuCi0rCi0rICBjYXNlICRhY19kYXNoZGFzaCRhY19vcHRpb24gaW4KLSsgIC0t KQotKyAgICBhY19kYXNoZGFzaD15ZXMgOzsKLSsKLSsgIC1iaW5kaXIgfCAtLWJpbmRpciB8IC0t YmluZGkgfCAtLWJpbmQgfCAtLWJpbiB8IC0tYmkpCi0rICAgIGFjX3ByZXY9YmluZGlyIDs7Ci0r ICAtYmluZGlyPSogfCAtLWJpbmRpcj0qIHwgLS1iaW5kaT0qIHwgLS1iaW5kPSogfCAtLWJpbj0q IHwgLS1iaT0qKQotKyAgICBiaW5kaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWJ1aWxkIHwgLS1i dWlsZCB8IC0tYnVpbCB8IC0tYnVpIHwgLS1idSkKLSsgICAgYWNfcHJldj1idWlsZF9hbGlhcyA7 OwotKyAgLWJ1aWxkPSogfCAtLWJ1aWxkPSogfCAtLWJ1aWw9KiB8IC0tYnVpPSogfCAtLWJ1PSop Ci0rICAgIGJ1aWxkX2FsaWFzPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1jYWNoZS1maWxlIHwgLS1j YWNoZS1maWxlIHwgLS1jYWNoZS1maWwgfCAtLWNhY2hlLWZpIFwKLSsgIHwgLS1jYWNoZS1mIHwg LS1jYWNoZS0gfCAtLWNhY2hlIHwgLS1jYWNoIHwgLS1jYWMgfCAtLWNhIHwgLS1jKQotKyAgICBh Y19wcmV2PWNhY2hlX2ZpbGUgOzsKLSsgIC1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbGU9KiB8 IC0tY2FjaGUtZmlsPSogfCAtLWNhY2hlLWZpPSogXAotKyAgfCAtLWNhY2hlLWY9KiB8IC0tY2Fj aGUtPSogfCAtLWNhY2hlPSogfCAtLWNhY2g9KiB8IC0tY2FjPSogfCAtLWNhPSogfCAtLWM9KikK LSsgICAgY2FjaGVfZmlsZT0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtLWNvbmZpZy1jYWNoZSB8IC1D KQotKyAgICBjYWNoZV9maWxlPWNvbmZpZy5jYWNoZSA7OwotKwotKyAgLWRhdGFkaXIgfCAtLWRh dGFkaXIgfCAtLWRhdGFkaSB8IC0tZGF0YWQpCi0rICAgIGFjX3ByZXY9ZGF0YWRpciA7OwotKyAg LWRhdGFkaXI9KiB8IC0tZGF0YWRpcj0qIHwgLS1kYXRhZGk9KiB8IC0tZGF0YWQ9KikKLSsgICAg ZGF0YWRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtZGF0YXJvb3RkaXIgfCAtLWRhdGFyb290ZGly IHwgLS1kYXRhcm9vdGRpIHwgLS1kYXRhcm9vdGQgfCAtLWRhdGFyb290IFwKLSsgIHwgLS1kYXRh cm9vIHwgLS1kYXRhcm8gfCAtLWRhdGFyKQotKyAgICBhY19wcmV2PWRhdGFyb290ZGlyIDs7Ci0r ICAtZGF0YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaT0qIHwgLS1k YXRhcm9vdGQ9KiBcCi0rICB8IC0tZGF0YXJvb3Q9KiB8IC0tZGF0YXJvbz0qIHwgLS1kYXRhcm89 KiB8IC0tZGF0YXI9KikKLSsgICAgZGF0YXJvb3RkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWRp c2FibGUtKiB8IC0tZGlzYWJsZS0qKQotKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlv biIgOiAneC0qZGlzYWJsZS1cKC4qXCknYAotKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBu b3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0rICAgIGV4cHIgIngkYWNfdXNlcm9wdCIg OiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0rICAgICAgYXNfZm5fZXJy b3IgJD8gImludmFsaWQgZmVhdHVyZSBuYW1lOiAkYWNfdXNlcm9wdCIKLSsgICAgYWNfdXNlcm9w dF9vcmlnPSRhY191c2Vyb3B0Ci0rICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hvICIkYWNfdXNlcm9w dCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKLSsgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGluCi0rICAg ICAgKiIKLSsiZW5hYmxlXyRhY191c2Vyb3B0IgotKyIqKSA7OwotKyAgICAgICopIGFjX3VucmVj b2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0t ZGlzYWJsZS0kYWNfdXNlcm9wdF9vcmlnIgotKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAnOzsK LSsgICAgZXNhYwotKyAgICBldmFsIGVuYWJsZV8kYWNfdXNlcm9wdD1ubyA7OwotKwotKyAgLWRv Y2RpciB8IC0tZG9jZGlyIHwgLS1kb2NkaSB8IC0tZG9jIHwgLS1kbykKLSsgICAgYWNfcHJldj1k b2NkaXIgOzsKLSsgIC1kb2NkaXI9KiB8IC0tZG9jZGlyPSogfCAtLWRvY2RpPSogfCAtLWRvYz0q IHwgLS1kbz0qKQotKyAgICBkb2NkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWR2aWRpciB8IC0t ZHZpZGlyIHwgLS1kdmlkaSB8IC0tZHZpZCB8IC0tZHZpIHwgLS1kdikKLSsgICAgYWNfcHJldj1k dmlkaXIgOzsKLSsgIC1kdmlkaXI9KiB8IC0tZHZpZGlyPSogfCAtLWR2aWRpPSogfCAtLWR2aWQ9 KiB8IC0tZHZpPSogfCAtLWR2PSopCi0rICAgIGR2aWRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAt ZW5hYmxlLSogfCAtLWVuYWJsZS0qKQotKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlv biIgOiAneC0qZW5hYmxlLVwoW149XSpcKSdgCi0rICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJl IG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KLSsgICAgZXhwciAieCRhY191c2Vyb3B0 IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLSsgICAgICBhc19mbl9l cnJvciAkPyAiaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0IgotKyAgICBhY191c2Vy b3B0X29yaWc9JGFjX3VzZXJvcHQKLSsgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vy b3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAotKyAgICBjYXNlICRhY191c2VyX29wdHMgaW4KLSsg ICAgICAqIgotKyJlbmFibGVfJGFjX3VzZXJvcHQiCi0rIiopIDs7Ci0rICAgICAgKikgYWNfdW5y ZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2Vw LS1lbmFibGUtJGFjX3VzZXJvcHRfb3JpZyIKLSsJIGFjX3VucmVjb2duaXplZF9zZXA9JywgJzs7 Ci0rICAgIGVzYWMKLSsgICAgZXZhbCBlbmFibGVfJGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcgOzsK LSsKLSsgIC1leGVjLXByZWZpeCB8IC0tZXhlY19wcmVmaXggfCAtLWV4ZWMtcHJlZml4IHwgLS1l eGVjLXByZWZpIFwKLSsgIHwgLS1leGVjLXByZWYgfCAtLWV4ZWMtcHJlIHwgLS1leGVjLXByIHwg LS1leGVjLXAgfCAtLWV4ZWMtIFwKLSsgIHwgLS1leGVjIHwgLS1leGUgfCAtLWV4KQotKyAgICBh Y19wcmV2PWV4ZWNfcHJlZml4IDs7Ci0rICAtZXhlYy1wcmVmaXg9KiB8IC0tZXhlY19wcmVmaXg9 KiB8IC0tZXhlYy1wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaT0qIFwKLSsgIHwgLS1leGVjLXByZWY9 KiB8IC0tZXhlYy1wcmU9KiB8IC0tZXhlYy1wcj0qIHwgLS1leGVjLXA9KiB8IC0tZXhlYy09KiBc Ci0rICB8IC0tZXhlYz0qIHwgLS1leGU9KiB8IC0tZXg9KikKLSsgICAgZXhlY19wcmVmaXg9JGFj X29wdGFyZyA7OwotKwotKyAgLWdhcyB8IC0tZ2FzIHwgLS1nYSB8IC0tZykKLSsgICAgIyBPYnNv bGV0ZTsgdXNlIC0td2l0aC1nYXMuCi0rICAgIHdpdGhfZ2FzPXllcyA7OwotKwotKyAgLWhlbHAg fCAtLWhlbHAgfCAtLWhlbCB8IC0taGUgfCAtaCkKLSsgICAgYWNfaW5pdF9oZWxwPWxvbmcgOzsK LSsgIC1oZWxwPXIqIHwgLS1oZWxwPXIqIHwgLS1oZWw9ciogfCAtLWhlPXIqIHwgLWhyKikKLSsg ICAgYWNfaW5pdF9oZWxwPXJlY3Vyc2l2ZSA7OwotKyAgLWhlbHA9cyogfCAtLWhlbHA9cyogfCAt LWhlbD1zKiB8IC0taGU9cyogfCAtaHMqKQotKyAgICBhY19pbml0X2hlbHA9c2hvcnQgOzsKLSsK LSsgIC1ob3N0IHwgLS1ob3N0IHwgLS1ob3MgfCAtLWhvKQotKyAgICBhY19wcmV2PWhvc3RfYWxp YXMgOzsKLSsgIC1ob3N0PSogfCAtLWhvc3Q9KiB8IC0taG9zPSogfCAtLWhvPSopCi0rICAgIGhv c3RfYWxpYXM9JGFjX29wdGFyZyA7OwotKwotKyAgLWh0bWxkaXIgfCAtLWh0bWxkaXIgfCAtLWh0 bWxkaSB8IC0taHRtbGQgfCAtLWh0bWwgfCAtLWh0bSB8IC0taHQpCi0rICAgIGFjX3ByZXY9aHRt bGRpciA7OwotKyAgLWh0bWxkaXI9KiB8IC0taHRtbGRpcj0qIHwgLS1odG1sZGk9KiB8IC0taHRt bGQ9KiB8IC0taHRtbD0qIHwgLS1odG09KiBcCi0rICB8IC0taHQ9KikKLSsgICAgaHRtbGRpcj0k YWNfb3B0YXJnIDs7Ci0rCi0rICAtaW5jbHVkZWRpciB8IC0taW5jbHVkZWRpciB8IC0taW5jbHVk ZWRpIHwgLS1pbmNsdWRlZCB8IC0taW5jbHVkZSBcCi0rICB8IC0taW5jbHVkIHwgLS1pbmNsdSB8 IC0taW5jbCB8IC0taW5jKQotKyAgICBhY19wcmV2PWluY2x1ZGVkaXIgOzsKLSsgIC1pbmNsdWRl ZGlyPSogfCAtLWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRpPSogfCAtLWluY2x1ZGVkPSogfCAt LWluY2x1ZGU9KiBcCi0rICB8IC0taW5jbHVkPSogfCAtLWluY2x1PSogfCAtLWluY2w9KiB8IC0t aW5jPSopCi0rICAgIGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWluZm9kaXIgfCAt LWluZm9kaXIgfCAtLWluZm9kaSB8IC0taW5mb2QgfCAtLWluZm8gfCAtLWluZikKLSsgICAgYWNf cHJldj1pbmZvZGlyIDs7Ci0rICAtaW5mb2Rpcj0qIHwgLS1pbmZvZGlyPSogfCAtLWluZm9kaT0q IHwgLS1pbmZvZD0qIHwgLS1pbmZvPSogfCAtLWluZj0qKQotKyAgICBpbmZvZGlyPSRhY19vcHRh cmcgOzsKLSsKLSsgIC1saWJkaXIgfCAtLWxpYmRpciB8IC0tbGliZGkgfCAtLWxpYmQpCi0rICAg IGFjX3ByZXY9bGliZGlyIDs7Ci0rICAtbGliZGlyPSogfCAtLWxpYmRpcj0qIHwgLS1saWJkaT0q IHwgLS1saWJkPSopCi0rICAgIGxpYmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtbGliZXhlY2Rp ciB8IC0tbGliZXhlY2RpciB8IC0tbGliZXhlY2RpIHwgLS1saWJleGVjZCB8IC0tbGliZXhlYyBc Ci0rICB8IC0tbGliZXhlIHwgLS1saWJleCB8IC0tbGliZSkKLSsgICAgYWNfcHJldj1saWJleGVj ZGlyIDs7Ci0rICAtbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGlyPSogfCAtLWxpYmV4ZWNkaT0q IHwgLS1saWJleGVjZD0qIHwgLS1saWJleGVjPSogXAotKyAgfCAtLWxpYmV4ZT0qIHwgLS1saWJl eD0qIHwgLS1saWJlPSopCi0rICAgIGxpYmV4ZWNkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWxv Y2FsZWRpciB8IC0tbG9jYWxlZGlyIHwgLS1sb2NhbGVkaSB8IC0tbG9jYWxlZCB8IC0tbG9jYWxl KQotKyAgICBhY19wcmV2PWxvY2FsZWRpciA7OwotKyAgLWxvY2FsZWRpcj0qIHwgLS1sb2NhbGVk aXI9KiB8IC0tbG9jYWxlZGk9KiB8IC0tbG9jYWxlZD0qIHwgLS1sb2NhbGU9KikKLSsgICAgbG9j YWxlZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRl ZGlyIHwgLS1sb2NhbHN0YXRlZGkgfCAtLWxvY2Fsc3RhdGVkIFwKLSsgIHwgLS1sb2NhbHN0YXRl IHwgLS1sb2NhbHN0YXQgfCAtLWxvY2Fsc3RhIHwgLS1sb2NhbHN0IHwgLS1sb2NhbHMpCi0rICAg IGFjX3ByZXY9bG9jYWxzdGF0ZWRpciA7OwotKyAgLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxz dGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGk9KiB8IC0tbG9jYWxzdGF0ZWQ9KiBcCi0rICB8IC0t bG9jYWxzdGF0ZT0qIHwgLS1sb2NhbHN0YXQ9KiB8IC0tbG9jYWxzdGE9KiB8IC0tbG9jYWxzdD0q IHwgLS1sb2NhbHM9KikKLSsgICAgbG9jYWxzdGF0ZWRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAt bWFuZGlyIHwgLS1tYW5kaXIgfCAtLW1hbmRpIHwgLS1tYW5kIHwgLS1tYW4gfCAtLW1hIHwgLS1t KQotKyAgICBhY19wcmV2PW1hbmRpciA7OwotKyAgLW1hbmRpcj0qIHwgLS1tYW5kaXI9KiB8IC0t bWFuZGk9KiB8IC0tbWFuZD0qIHwgLS1tYW49KiB8IC0tbWE9KiB8IC0tbT0qKQotKyAgICBtYW5k aXI9JGFjX29wdGFyZyA7OwotKwotKyAgLW5mcCB8IC0tbmZwIHwgLS1uZikKLSsgICAgIyBPYnNv bGV0ZTsgdXNlIC0td2l0aG91dC1mcC4KLSsgICAgd2l0aF9mcD1ubyA7OwotKwotKyAgLW5vLWNy ZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwK LSsgIHwgLS1uby1jciB8IC0tbm8tYyB8IC1uKQotKyAgICBub19jcmVhdGU9eWVzIDs7Ci0rCi0r ICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1y ZWN1cnNpIFwKLSsgIHwgLS1uby1yZWN1cnMgfCAtLW5vLXJlY3VyIHwgLS1uby1yZWN1IHwgLS1u by1yZWMgfCAtLW5vLXJlIHwgLS1uby1yKQotKyAgICBub19yZWN1cnNpb249eWVzIDs7Ci0rCi0r ICAtb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVkZWRpIHwgLS1v bGRpbmNsdWRlZCBcCi0rICB8IC0tb2xkaW5jbHVkZSB8IC0tb2xkaW5jbHVkIHwgLS1vbGRpbmNs dSB8IC0tb2xkaW5jbCB8IC0tb2xkaW5jIFwKLSsgIHwgLS1vbGRpbiB8IC0tb2xkaSB8IC0tb2xk IHwgLS1vbCB8IC0tbykKLSsgICAgYWNfcHJldj1vbGRpbmNsdWRlZGlyIDs7Ci0rICAtb2xkaW5j bHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGlyPSogfCAtLW9sZGluY2x1ZGVkaT0qIHwgLS1vbGRp bmNsdWRlZD0qIFwKLSsgIHwgLS1vbGRpbmNsdWRlPSogfCAtLW9sZGluY2x1ZD0qIHwgLS1vbGRp bmNsdT0qIHwgLS1vbGRpbmNsPSogfCAtLW9sZGluYz0qIFwKLSsgIHwgLS1vbGRpbj0qIHwgLS1v bGRpPSogfCAtLW9sZD0qIHwgLS1vbD0qIHwgLS1vPSopCi0rICAgIG9sZGluY2x1ZGVkaXI9JGFj X29wdGFyZyA7OwotKwotKyAgLXByZWZpeCB8IC0tcHJlZml4IHwgLS1wcmVmaSB8IC0tcHJlZiB8 IC0tcHJlIHwgLS1wciB8IC0tcCkKLSsgICAgYWNfcHJldj1wcmVmaXggOzsKLSsgIC1wcmVmaXg9 KiB8IC0tcHJlZml4PSogfCAtLXByZWZpPSogfCAtLXByZWY9KiB8IC0tcHJlPSogfCAtLXByPSog fCAtLXA9KikKLSsgICAgcHJlZml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcm9ncmFtLXByZWZp eCB8IC0tcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZmkgfCAtLXByb2dyYW0tcHJlZiBc Ci0rICB8IC0tcHJvZ3JhbS1wcmUgfCAtLXByb2dyYW0tcHIgfCAtLXByb2dyYW0tcCkKLSsgICAg YWNfcHJldj1wcm9ncmFtX3ByZWZpeCA7OwotKyAgLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dy YW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZmk9KiBcCi0rICB8IC0tcHJvZ3JhbS1wcmVmPSog fCAtLXByb2dyYW0tcHJlPSogfCAtLXByb2dyYW0tcHI9KiB8IC0tcHJvZ3JhbS1wPSopCi0rICAg IHByb2dyYW1fcHJlZml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcm9ncmFtLXN1ZmZpeCB8IC0t cHJvZ3JhbS1zdWZmaXggfCAtLXByb2dyYW0tc3VmZmkgfCAtLXByb2dyYW0tc3VmZiBcCi0rICB8 IC0tcHJvZ3JhbS1zdWYgfCAtLXByb2dyYW0tc3UgfCAtLXByb2dyYW0tcykKLSsgICAgYWNfcHJl dj1wcm9ncmFtX3N1ZmZpeCA7OwotKyAgLXByb2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3Vm Zml4PSogfCAtLXByb2dyYW0tc3VmZmk9KiBcCi0rICB8IC0tcHJvZ3JhbS1zdWZmPSogfCAtLXBy b2dyYW0tc3VmPSogfCAtLXByb2dyYW0tc3U9KiB8IC0tcHJvZ3JhbS1zPSopCi0rICAgIHByb2dy YW1fc3VmZml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIHwg LS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW0g fCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uIHwg LS1wcm9ncmFtLXRyYW5zZm9ybS0gXAotKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtIHwgLS1wcm9n cmFtLXRyYW5zZm9yIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm8gfCAtLXByb2dyYW0tdHJhbnNm IFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zIHwgLS1wcm9ncmFtLXRyYW4gXAotKyAgfCAtLXByb2dy LXRyYSB8IC0tcHJvZ3JhbS10ciB8IC0tcHJvZ3JhbS10KQotKyAgICBhY19wcmV2PXByb2dyYW1f dHJhbnNmb3JtX25hbWUgOzsKLSsgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSogfCAtLXByb2dy YW0tdHJhbnNmb3JtLW5hbWU9KiBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtPSogfCAt LXByb2dyYW0tdHJhbnNmb3JtLW5hPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW49KiB8 IC0tcHJvZ3JhbS10cmFuc2Zvcm0tPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtPSogfCAt LXByb2dyYW0tdHJhbnNmb3I9KiBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2ZvPSogfCAtLXByb2dy YW0tdHJhbnNmPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnM9KiB8IC0tcHJvZ3JhbS10cmFuPSog XAotKyAgfCAtLXByb2dyLXRyYT0qIHwgLS1wcm9ncmFtLXRyPSogfCAtLXByb2dyYW0tdD0qKQot KyAgICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wZGZkaXIg fCAtLXBkZmRpciB8IC0tcGRmZGkgfCAtLXBkZmQgfCAtLXBkZiB8IC0tcGQpCi0rICAgIGFjX3By ZXY9cGRmZGlyIDs7Ci0rICAtcGRmZGlyPSogfCAtLXBkZmRpcj0qIHwgLS1wZGZkaT0qIHwgLS1w ZGZkPSogfCAtLXBkZj0qIHwgLS1wZD0qKQotKyAgICBwZGZkaXI9JGFjX29wdGFyZyA7OwotKwot KyAgLXBzZGlyIHwgLS1wc2RpciB8IC0tcHNkaSB8IC0tcHNkIHwgLS1wcykKLSsgICAgYWNfcHJl dj1wc2RpciA7OwotKyAgLXBzZGlyPSogfCAtLXBzZGlyPSogfCAtLXBzZGk9KiB8IC0tcHNkPSog fCAtLXBzPSopCi0rICAgIHBzZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1xIHwgLXF1aWV0IHwg LS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCi0rICB8IC1zaWxlbnQgfCAt LXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKLSsgICAgc2lsZW50PXllcyA7Owot KwotKyAgLXNiaW5kaXIgfCAtLXNiaW5kaXIgfCAtLXNiaW5kaSB8IC0tc2JpbmQgfCAtLXNiaW4g fCAtLXNiaSB8IC0tc2IpCi0rICAgIGFjX3ByZXY9c2JpbmRpciA7OwotKyAgLXNiaW5kaXI9KiB8 IC0tc2JpbmRpcj0qIHwgLS1zYmluZGk9KiB8IC0tc2JpbmQ9KiB8IC0tc2Jpbj0qIFwKLSsgIHwg LS1zYmk9KiB8IC0tc2I9KikKLSsgICAgc2JpbmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtc2hh cmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpIFwKLSsgIHwg LS1zaGFyZWRzdGF0ZWQgfCAtLXNoYXJlZHN0YXRlIHwgLS1zaGFyZWRzdGF0IHwgLS1zaGFyZWRz dGEgXAotKyAgfCAtLXNoYXJlZHN0IHwgLS1zaGFyZWRzIHwgLS1zaGFyZWQgfCAtLXNoYXJlIHwg LS1zaGFyIFwKLSsgIHwgLS1zaGEgfCAtLXNoKQotKyAgICBhY19wcmV2PXNoYXJlZHN0YXRlZGly IDs7Ci0rICAtc2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVk c3RhdGVkaT0qIFwKLSsgIHwgLS1zaGFyZWRzdGF0ZWQ9KiB8IC0tc2hhcmVkc3RhdGU9KiB8IC0t c2hhcmVkc3RhdD0qIHwgLS1zaGFyZWRzdGE9KiBcCi0rICB8IC0tc2hhcmVkc3Q9KiB8IC0tc2hh cmVkcz0qIHwgLS1zaGFyZWQ9KiB8IC0tc2hhcmU9KiB8IC0tc2hhcj0qIFwKLSsgIHwgLS1zaGE9 KiB8IC0tc2g9KikKLSsgICAgc2hhcmVkc3RhdGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXNp dGUgfCAtLXNpdGUgfCAtLXNpdCkKLSsgICAgYWNfcHJldj1zaXRlIDs7Ci0rICAtc2l0ZT0qIHwg LS1zaXRlPSogfCAtLXNpdD0qKQotKyAgICBzaXRlPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1zcmNk aXIgfCAtLXNyY2RpciB8IC0tc3JjZGkgfCAtLXNyY2QgfCAtLXNyYyB8IC0tc3IpCi0rICAgIGFj X3ByZXY9c3JjZGlyIDs7Ci0rICAtc3JjZGlyPSogfCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwg LS1zcmNkPSogfCAtLXNyYz0qIHwgLS1zcj0qKQotKyAgICBzcmNkaXI9JGFjX29wdGFyZyA7Owot KwotKyAgLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaSB8IC0tc3lzY29u ZmQgfCAtLXN5c2NvbmYgXAotKyAgfCAtLXN5c2NvbiB8IC0tc3lzY28gfCAtLXN5c2MgfCAtLXN5 cyB8IC0tc3kpCi0rICAgIGFjX3ByZXY9c3lzY29uZmRpciA7OwotKyAgLXN5c2NvbmZkaXI9KiB8 IC0tc3lzY29uZmRpcj0qIHwgLS1zeXNjb25mZGk9KiB8IC0tc3lzY29uZmQ9KiB8IC0tc3lzY29u Zj0qIFwKLSsgIHwgLS1zeXNjb249KiB8IC0tc3lzY289KiB8IC0tc3lzYz0qIHwgLS1zeXM9KiB8 IC0tc3k9KikKLSsgICAgc3lzY29uZmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtdGFyZ2V0IHwg LS10YXJnZXQgfCAtLXRhcmdlIHwgLS10YXJnIHwgLS10YXIgfCAtLXRhIHwgLS10KQotKyAgICBh Y19wcmV2PXRhcmdldF9hbGlhcyA7OwotKyAgLXRhcmdldD0qIHwgLS10YXJnZXQ9KiB8IC0tdGFy Z2U9KiB8IC0tdGFyZz0qIHwgLS10YXI9KiB8IC0tdGE9KiB8IC0tdD0qKQotKyAgICB0YXJnZXRf YWxpYXM9JGFjX29wdGFyZyA7OwotKwotKyAgLXYgfCAtdmVyYm9zZSB8IC0tdmVyYm9zZSB8IC0t dmVyYm9zIHwgLS12ZXJibyB8IC0tdmVyYikKLSsgICAgdmVyYm9zZT15ZXMgOzsKLSsKLSsgIC12 ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwgLVYpCi0r ICAgIGFjX2luaXRfdmVyc2lvbj06IDs7Ci0rCi0rICAtd2l0aC0qIHwgLS13aXRoLSopCi0rICAg IGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRoLVwoW149XSpcKSdgCi0r ICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1l cy4KLSsgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4v ZGV2L251bGwgJiYKLSsgICAgICBhc19mbl9lcnJvciAkPyAiaW52YWxpZCBwYWNrYWdlIG5hbWU6 ICRhY191c2Vyb3B0IgotKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKLSsgICAgYWNf dXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAotKyAg ICBjYXNlICRhY191c2VyX29wdHMgaW4KLSsgICAgICAqIgotKyJ3aXRoXyRhY191c2Vyb3B0Igot KyIqKSA7OwotKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVk X29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0td2l0aC0kYWNfdXNlcm9wdF9vcmlnIgotKwkgYWNf dW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKLSsgICAgZXNhYwotKyAgICBldmFsIHdpdGhfJGFjX3Vz ZXJvcHQ9XCRhY19vcHRhcmcgOzsKLSsKLSsgIC13aXRob3V0LSogfCAtLXdpdGhvdXQtKikKLSsg ICAgYWNfdXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKndpdGhvdXQtXCguKlwpJ2AK LSsgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5h bWVzLgotKyAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVtXSIg Pi9kZXYvbnVsbCAmJgotKyAgICAgIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHBhY2thZ2UgbmFt ZTogJGFjX3VzZXJvcHQiCi0rICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAotKyAgICBh Y191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCi0r ICAgIGNhc2UgJGFjX3VzZXJfb3B0cyBpbgotKyAgICAgICoiCi0rIndpdGhfJGFjX3VzZXJvcHQi Ci0rIiopIDs7Ci0rICAgICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6 ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS13aXRob3V0LSRhY191c2Vyb3B0X29yaWciCi0r CSBhY191bnJlY29nbml6ZWRfc2VwPScsICc7OwotKyAgICBlc2FjCi0rICAgIGV2YWwgd2l0aF8k YWNfdXNlcm9wdD1ubyA7OwotKwotKyAgLS14KQotKyAgICAjIE9ic29sZXRlOyB1c2UgLS13aXRo LXguCi0rICAgIHdpdGhfeD15ZXMgOzsKLSsKLSsgIC14LWluY2x1ZGVzIHwgLS14LWluY2x1ZGVz IHwgLS14LWluY2x1ZGUgfCAtLXgtaW5jbHVkIHwgLS14LWluY2x1IFwKLSsgIHwgLS14LWluY2wg fCAtLXgtaW5jIHwgLS14LWluIHwgLS14LWkpCi0rICAgIGFjX3ByZXY9eF9pbmNsdWRlcyA7Owot KyAgLXgtaW5jbHVkZXM9KiB8IC0teC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGU9KiB8IC0teC1p bmNsdWQ9KiB8IC0teC1pbmNsdT0qIFwKLSsgIHwgLS14LWluY2w9KiB8IC0teC1pbmM9KiB8IC0t eC1pbj0qIHwgLS14LWk9KikKLSsgICAgeF9pbmNsdWRlcz0kYWNfb3B0YXJnIDs7Ci0rCi0rICAt eC1saWJyYXJpZXMgfCAtLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxpYnJhcmkg XAotKyAgfCAtLXgtbGlicmFyIHwgLS14LWxpYnJhIHwgLS14LWxpYnIgfCAtLXgtbGliIHwgLS14 LWxpIHwgLS14LWwpCi0rICAgIGFjX3ByZXY9eF9saWJyYXJpZXMgOzsKLSsgIC14LWxpYnJhcmll cz0qIHwgLS14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0qIFwK LSsgIHwgLS14LWxpYnJhcj0qIHwgLS14LWxpYnJhPSogfCAtLXgtbGlicj0qIHwgLS14LWxpYj0q IHwgLS14LWxpPSogfCAtLXgtbD0qKQotKyAgICB4X2xpYnJhcmllcz0kYWNfb3B0YXJnIDs7Ci0r Ci0rICAtKikgYXNfZm5fZXJyb3IgJD8gInVucmVjb2duaXplZCBvcHRpb246IFxgJGFjX29wdGlv bicKLStUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgotKyAgICA7OwotKwot KyAgKj0qKQotKyAgICBhY19lbnZ2YXI9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4XChbXj1dKlwp PSdgCi0rICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJs ZSBuYW1lcy4KLSsgICAgY2FzZSAkYWNfZW52dmFyIGluICMoCi0rICAgICAgJycgfCBbMC05XSog fCAqWyFfJGFzX2NyX2FsbnVtXSogKQotKyAgICAgIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHZh cmlhYmxlIG5hbWU6IFxgJGFjX2VudnZhciciIDs7Ci0rICAgIGVzYWMKLSsgICAgZXZhbCAkYWNf ZW52dmFyPVwkYWNfb3B0YXJnCi0rICAgIGV4cG9ydCAkYWNfZW52dmFyIDs7Ci0rCi0rICAqKQot KyAgICAjIEZJWE1FOiBzaG91bGQgYmUgcmVtb3ZlZCBpbiBhdXRvY29uZiAzLjAuCi0rICAgICRh c19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHlvdSBzaG91bGQgdXNlIC0tYnVpbGQsIC0taG9zdCwg LS10YXJnZXQiID4mMgotKyAgICBleHByICJ4JGFjX29wdGlvbiIgOiAiLipbXi0uXyRhc19jcl9h bG51bV0iID4vZGV2L251bGwgJiYKLSsgICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBp bnZhbGlkIGhvc3QgdHlwZTogJGFjX29wdGlvbiIgPiYyCi0rICAgIDogIiR7YnVpbGRfYWxpYXM9 JGFjX29wdGlvbn0gJHtob3N0X2FsaWFzPSRhY19vcHRpb259ICR7dGFyZ2V0X2FsaWFzPSRhY19v cHRpb259IgotKyAgICA7OwotKwotKyAgZXNhYwotK2RvbmUKLSsKLStpZiB0ZXN0IC1uICIkYWNf cHJldiI7IHRoZW4KLSsgIGFjX29wdGlvbj0tLWBlY2hvICRhY19wcmV2IHwgc2VkICdzL18vLS9n J2AKLSsgIGFzX2ZuX2Vycm9yICQ/ICJtaXNzaW5nIGFyZ3VtZW50IHRvICRhY19vcHRpb24iCi0r ZmkKLSsKLStpZiB0ZXN0IC1uICIkYWNfdW5yZWNvZ25pemVkX29wdHMiOyB0aGVuCi0rICBjYXNl ICRlbmFibGVfb3B0aW9uX2NoZWNraW5nIGluCi0rICAgIG5vKSA7OwotKyAgICBmYXRhbCkgYXNf Zm5fZXJyb3IgJD8gInVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMi IDs7Ci0rICAgICopICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1bnJlY29nbml6ZWQg b3B0aW9uczogJGFjX3VucmVjb2duaXplZF9vcHRzIiA+JjIgOzsKLSsgIGVzYWMKLStmaQotKwot KyMgQ2hlY2sgYWxsIGRpcmVjdG9yeSBhcmd1bWVudHMgZm9yIGNvbnNpc3RlbmN5LgotK2ZvciBh Y192YXIgaW4JZXhlY19wcmVmaXggcHJlZml4IGJpbmRpciBzYmluZGlyIGxpYmV4ZWNkaXIgZGF0 YXJvb3RkaXIgXAotKwkJZGF0YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIGxvY2Fsc3Rh dGVkaXIgaW5jbHVkZWRpciBcCi0rCQlvbGRpbmNsdWRlZGlyIGRvY2RpciBpbmZvZGlyIGh0bWxk aXIgZHZpZGlyIHBkZmRpciBwc2RpciBcCi0rCQlsaWJkaXIgbG9jYWxlZGlyIG1hbmRpcgotK2Rv Ci0rICBldmFsIGFjX3ZhbD1cJCRhY192YXIKLSsgICMgUmVtb3ZlIHRyYWlsaW5nIHNsYXNoZXMu Ci0rICBjYXNlICRhY192YWwgaW4KLSsgICAgKi8gKQotKyAgICAgIGFjX3ZhbD1gZXhwciAiWCRh Y192YWwiIDogJ1hcKC4qW14vXVwpJyBcfCAiWCRhY192YWwiIDogJ1hcKC4qXCknYAotKyAgICAg IGV2YWwgJGFjX3Zhcj1cJGFjX3ZhbDs7Ci0rICBlc2FjCi0rICAjIEJlIHN1cmUgdG8gaGF2ZSBh YnNvbHV0ZSBkaXJlY3RvcnkgbmFtZXMuCi0rICBjYXNlICRhY192YWwgaW4KLSsgICAgW1xcLyRd KiB8ID86W1xcL10qICkgIGNvbnRpbnVlOzsKLSsgICAgTk9ORSB8ICcnICkgY2FzZSAkYWNfdmFy IGluICpwcmVmaXggKSBjb250aW51ZTs7IGVzYWM7OwotKyAgZXNhYwotKyAgYXNfZm5fZXJyb3Ig JD8gImV4cGVjdGVkIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRh Y192YWwiCi0rZG9uZQotKwotKyMgVGhlcmUgbWlnaHQgYmUgcGVvcGxlIHdobyBkZXBlbmQgb24g dGhlIG9sZCBicm9rZW4gYmVoYXZpb3I6IGAkaG9zdCcKLSsjIHVzZWQgdG8gaG9sZCB0aGUgYXJn dW1lbnQgb2YgLS1ob3N0IGV0Yy4KLSsjIEZJWE1FOiBUbyByZW1vdmUgc29tZSBkYXkuCi0rYnVp bGQ9JGJ1aWxkX2FsaWFzCi0raG9zdD0kaG9zdF9hbGlhcwotK3RhcmdldD0kdGFyZ2V0X2FsaWFz Ci0rCi0rIyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUgZGF5LgotK2lmIHRlc3QgIngkaG9zdF9hbGlh cyIgIT0geDsgdGhlbgotKyAgaWYgdGVzdCAieCRidWlsZF9hbGlhcyIgPSB4OyB0aGVuCi0rICAg IGNyb3NzX2NvbXBpbGluZz1tYXliZQotKyAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBp ZiB5b3Ugd2FudGVkIHRvIHNldCB0aGUgLS1idWlsZCB0eXBlLCBkb24ndCB1c2UgLS1ob3N0Lgot KyAgICBJZiBhIGNyb3NzIGNvbXBpbGVyIGlzIGRldGVjdGVkIHRoZW4gY3Jvc3MgY29tcGlsZSBt b2RlIHdpbGwgYmUgdXNlZCIgPiYyCi0rICBlbGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiICE9ICJ4 JGhvc3RfYWxpYXMiOyB0aGVuCi0rICAgIGNyb3NzX2NvbXBpbGluZz15ZXMKLSsgIGZpCi0rZmkK LSsKLSthY190b29sX3ByZWZpeD0KLSt0ZXN0IC1uICIkaG9zdF9hbGlhcyIgJiYgYWNfdG9vbF9w cmVmaXg9JGhvc3RfYWxpYXMtCi0rCi0rdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYgZXhlYyA2Pi9k ZXYvbnVsbAotKwotKwotK2FjX3B3ZD1gcHdkYCAmJiB0ZXN0IC1uICIkYWNfcHdkIiAmJgotK2Fj X2xzX2RpPWBscyAtZGkgLmAgJiYKLSthY19wd2RfbHNfZGk9YGNkICIkYWNfcHdkIiAmJiBscyAt ZGkgLmAgfHwKLSsgIGFzX2ZuX2Vycm9yICQ/ICJ3b3JraW5nIGRpcmVjdG9yeSBjYW5ub3QgYmUg ZGV0ZXJtaW5lZCIKLSt0ZXN0ICJYJGFjX2xzX2RpIiA9ICJYJGFjX3B3ZF9sc19kaSIgfHwKLSsg IGFzX2ZuX2Vycm9yICQ/ICJwd2QgZG9lcyBub3QgcmVwb3J0IG5hbWUgb2Ygd29ya2luZyBkaXJl Y3RvcnkiCi0rCi0rCi0rIyBGaW5kIHRoZSBzb3VyY2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBu b3Qgc3BlY2lmaWVkLgotK2lmIHRlc3QgLXogIiRzcmNkaXIiOyB0aGVuCi0rICBhY19zcmNkaXJf ZGVmYXVsdGVkPXllcwotKyAgIyBUcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2Ny aXB0LCB0aGVuIHRoZSBwYXJlbnQgZGlyZWN0b3J5LgotKyAgYWNfY29uZmRpcj1gJGFzX2Rpcm5h bWUgLS0gIiRhc19teXNlbGYiIHx8Ci0rJGFzX2V4cHIgWCIkYXNfbXlzZWxmIiA6ICdYXCguKlte L11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpW14v XScgXHwgXAotKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkYXNfbXlz ZWxmIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhc19teXNl bGYiIHwKLSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAg IHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBz Ly9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwot KwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEK LSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICBzcmNkaXI9JGFjX2NvbmZkaXIKLSsgIGlmIHRl c3QgISAtciAiJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGUiOyB0aGVuCi0rICAgIHNyY2Rpcj0uLgot KyAgZmkKLStlbHNlCi0rICBhY19zcmNkaXJfZGVmYXVsdGVkPW5vCi0rZmkKLStpZiB0ZXN0ICEg LXIgIiRzcmNkaXIvJGFjX3VuaXF1ZV9maWxlIjsgdGhlbgotKyAgdGVzdCAiJGFjX3NyY2Rpcl9k ZWZhdWx0ZWQiID0geWVzICYmIHNyY2Rpcj0iJGFjX2NvbmZkaXIgb3IgLi4iCi0rICBhc19mbl9l cnJvciAkPyAiY2Fubm90IGZpbmQgc291cmNlcyAoJGFjX3VuaXF1ZV9maWxlKSBpbiAkc3JjZGly IgotK2ZpCi0rYWNfbXNnPSJzb3VyY2VzIGFyZSBpbiAkc3JjZGlyLCBidXQgXGBjZCAkc3JjZGly JyBkb2VzIG5vdCB3b3JrIgotK2FjX2Fic19jb25mZGlyPWAoCi0rCWNkICIkc3JjZGlyIiAmJiB0 ZXN0IC1yICIuLyRhY191bmlxdWVfZmlsZSIgfHwgYXNfZm5fZXJyb3IgJD8gIiRhY19tc2ciCi0r CXB3ZClgCi0rIyBXaGVuIGJ1aWxkaW5nIGluIHBsYWNlLCBzZXQgc3JjZGlyPS4KLStpZiB0ZXN0 ICIkYWNfYWJzX2NvbmZkaXIiID0gIiRhY19wd2QiOyB0aGVuCi0rICBzcmNkaXI9LgotK2ZpCi0r IyBSZW1vdmUgdW5uZWNlc3NhcnkgdHJhaWxpbmcgc2xhc2hlcyBmcm9tIHNyY2Rpci4KLSsjIERv dWJsZSBzbGFzaGVzIGluIGZpbGUgbmFtZXMgaW4gb2JqZWN0IGZpbGUgZGVidWdnaW5nIGluZm8K LSsjIG1lc3MgdXAgTS14IGdkYiBpbiBFbWFjcy4KLStjYXNlICRzcmNkaXIgaW4KLSsqLykgc3Jj ZGlyPWBleHByICJYJHNyY2RpciIgOiAnWFwoLipbXi9dXCknIFx8ICJYJHNyY2RpciIgOiAnWFwo LipcKSdgOzsKLStlc2FjCi0rZm9yIGFjX3ZhciBpbiAkYWNfcHJlY2lvdXNfdmFyczsgZG8KLSsg IGV2YWwgYWNfZW52XyR7YWNfdmFyfV9zZXQ9XCR7JHthY192YXJ9K3NldH0KLSsgIGV2YWwgYWNf ZW52XyR7YWNfdmFyfV92YWx1ZT1cJCR7YWNfdmFyfQotKyAgZXZhbCBhY19jdl9lbnZfJHthY192 YXJ9X3NldD1cJHske2FjX3Zhcn0rc2V0fQotKyAgZXZhbCBhY19jdl9lbnZfJHthY192YXJ9X3Zh bHVlPVwkJHthY192YXJ9Ci0rZG9uZQotKwotKyMKLSsjIFJlcG9ydCB0aGUgLS1oZWxwIG1lc3Nh Z2UuCi0rIwotK2lmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gImxvbmciOyB0aGVuCi0rICAjIE9t aXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVz cyBpbXBvc2luZy4KLSsgICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5n IGluIHRoZSBBL1VYIDMuMSBzaC4KLSsgIGNhdCA8PF9BQ0VPRgotK1xgY29uZmlndXJlJyBjb25m aWd1cmVzIFNPQ0kgMy4wLjAgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgotKwot K1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4uLgotKwotK1RvIGFzc2lnbiBlbnZp cm9ubWVudCB2YXJpYWJsZXMgKGUuZy4sIENDLCBDRkxBR1MuLi4pLCBzcGVjaWZ5IHRoZW0gYXMK LStWQVI9VkFMVUUuICBTZWUgYmVsb3cgZm9yIGRlc2NyaXB0aW9ucyBvZiBzb21lIG9mIHRoZSB1 c2VmdWwgdmFyaWFibGVzLgotKwotK0RlZmF1bHRzIGZvciB0aGUgb3B0aW9ucyBhcmUgc3BlY2lm aWVkIGluIGJyYWNrZXRzLgotKwotK0NvbmZpZ3VyYXRpb246Ci0rICAtaCwgLS1oZWxwICAgICAg ICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAotKyAgICAgIC0taGVscD1zaG9ydCAg ICAgICAgZGlzcGxheSBvcHRpb25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZQotKyAgICAgIC0t aGVscD1yZWN1cnNpdmUgICAgZGlzcGxheSB0aGUgc2hvcnQgaGVscCBvZiBhbGwgdGhlIGluY2x1 ZGVkIHBhY2thZ2VzCi0rICAtViwgLS12ZXJzaW9uICAgICAgICAgICBkaXNwbGF5IHZlcnNpb24g aW5mb3JtYXRpb24gYW5kIGV4aXQKLSsgIC1xLCAtLXF1aWV0LCAtLXNpbGVudCAgIGRvIG5vdCBw cmludCBcYGNoZWNraW5nIC4uLicgbWVzc2FnZXMKLSsgICAgICAtLWNhY2hlLWZpbGU9RklMRSAg IGNhY2hlIHRlc3QgcmVzdWx0cyBpbiBGSUxFIFtkaXNhYmxlZF0KLSsgIC1DLCAtLWNvbmZpZy1j YWNoZSAgICAgIGFsaWFzIGZvciBcYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnCi0rICAtbiwg LS1uby1jcmVhdGUgICAgICAgICBkbyBub3QgY3JlYXRlIG91dHB1dCBmaWxlcwotKyAgICAgIC0t c3JjZGlyPURJUiAgICAgICAgZmluZCB0aGUgc291cmNlcyBpbiBESVIgW2NvbmZpZ3VyZSBkaXIg b3IgXGAuLiddCi0rCi0rSW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzOgotKyAgLS1wcmVmaXg9UFJF RklYICAgICAgICAgaW5zdGFsbCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMgaW4gUFJF RklYCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBbJGFjX2RlZmF1bHRfcHJlZml4XQotKyAg LS1leGVjLXByZWZpeD1FUFJFRklYICAgaW5zdGFsbCBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IGZp bGVzIGluIEVQUkVGSVgKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIFtQUkVGSVhdCi0rCi0r QnkgZGVmYXVsdCwgXGBtYWtlIGluc3RhbGwnIHdpbGwgaW5zdGFsbCBhbGwgdGhlIGZpbGVzIGlu Ci0rXGAkYWNfZGVmYXVsdF9wcmVmaXgvYmluJywgXGAkYWNfZGVmYXVsdF9wcmVmaXgvbGliJyBl dGMuICBZb3UgY2FuIHNwZWNpZnkKLSthbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4g XGAkYWNfZGVmYXVsdF9wcmVmaXgnIHVzaW5nIFxgLS1wcmVmaXgnLAotK2ZvciBpbnN0YW5jZSBc YC0tcHJlZml4PVwkSE9NRScuCi0rCi0rRm9yIGJldHRlciBjb250cm9sLCB1c2UgdGhlIG9wdGlv bnMgYmVsb3cuCi0rCi0rRmluZSB0dW5pbmcgb2YgdGhlIGluc3RhbGxhdGlvbiBkaXJlY3Rvcmll czoKLSsgIC0tYmluZGlyPURJUiAgICAgICAgICAgIHVzZXIgZXhlY3V0YWJsZXMgW0VQUkVGSVgv YmluXQotKyAgLS1zYmluZGlyPURJUiAgICAgICAgICAgc3lzdGVtIGFkbWluIGV4ZWN1dGFibGVz IFtFUFJFRklYL3NiaW5dCi0rICAtLWxpYmV4ZWNkaXI9RElSICAgICAgICBwcm9ncmFtIGV4ZWN1 dGFibGVzIFtFUFJFRklYL2xpYmV4ZWNdCi0rICAtLXN5c2NvbmZkaXI9RElSICAgICAgICByZWFk LW9ubHkgc2luZ2xlLW1hY2hpbmUgZGF0YSBbUFJFRklYL2V0Y10KLSsgIC0tc2hhcmVkc3RhdGVk aXI9RElSICAgIG1vZGlmaWFibGUgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgW1BSRUZJ WC9jb21dCi0rICAtLWxvY2Fsc3RhdGVkaXI9RElSICAgICBtb2RpZmlhYmxlIHNpbmdsZS1tYWNo aW5lIGRhdGEgW1BSRUZJWC92YXJdCi0rICAtLWxpYmRpcj1ESVIgICAgICAgICAgICBvYmplY3Qg Y29kZSBsaWJyYXJpZXMgW0VQUkVGSVgvbGliXQotKyAgLS1pbmNsdWRlZGlyPURJUiAgICAgICAg QyBoZWFkZXIgZmlsZXMgW1BSRUZJWC9pbmNsdWRlXQotKyAgLS1vbGRpbmNsdWRlZGlyPURJUiAg ICAgQyBoZWFkZXIgZmlsZXMgZm9yIG5vbi1nY2MgWy91c3IvaW5jbHVkZV0KLSsgIC0tZGF0YXJv b3RkaXI9RElSICAgICAgIHJlYWQtb25seSBhcmNoLi1pbmRlcGVuZGVudCBkYXRhIHJvb3QgW1BS RUZJWC9zaGFyZV0KLSsgIC0tZGF0YWRpcj1ESVIgICAgICAgICAgIHJlYWQtb25seSBhcmNoaXRl Y3R1cmUtaW5kZXBlbmRlbnQgZGF0YSBbREFUQVJPT1RESVJdCi0rICAtLWluZm9kaXI9RElSICAg ICAgICAgICBpbmZvIGRvY3VtZW50YXRpb24gW0RBVEFST09URElSL2luZm9dCi0rICAtLWxvY2Fs ZWRpcj1ESVIgICAgICAgICBsb2NhbGUtZGVwZW5kZW50IGRhdGEgW0RBVEFST09URElSL2xvY2Fs ZV0KLSsgIC0tbWFuZGlyPURJUiAgICAgICAgICAgIG1hbiBkb2N1bWVudGF0aW9uIFtEQVRBUk9P VERJUi9tYW5dCi0rICAtLWRvY2Rpcj1ESVIgICAgICAgICAgICBkb2N1bWVudGF0aW9uIHJvb3Qg W0RBVEFST09URElSL2RvYy9zb2NpXQotKyAgLS1odG1sZGlyPURJUiAgICAgICAgICAgaHRtbCBk b2N1bWVudGF0aW9uIFtET0NESVJdCi0rICAtLWR2aWRpcj1ESVIgICAgICAgICAgICBkdmkgZG9j dW1lbnRhdGlvbiBbRE9DRElSXQotKyAgLS1wZGZkaXI9RElSICAgICAgICAgICAgcGRmIGRvY3Vt ZW50YXRpb24gW0RPQ0RJUl0KLSsgIC0tcHNkaXI9RElSICAgICAgICAgICAgIHBzIGRvY3VtZW50 YXRpb24gW0RPQ0RJUl0KLStfQUNFT0YKLSsKLSsgIGNhdCA8PFxfQUNFT0YKLSsKLStQcm9ncmFt IG5hbWVzOgotKyAgLS1wcm9ncmFtLXByZWZpeD1QUkVGSVggICAgICAgICAgICBwcmVwZW5kIFBS RUZJWCB0byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwotKyAgLS1wcm9ncmFtLXN1ZmZpeD1TVUZG SVggICAgICAgICAgICBhcHBlbmQgU1VGRklYIHRvIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCi0r ICAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9UFJPR1JBTSAgIHJ1biBzZWQgUFJPR1JBTSBvbiBp bnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwotKwotK1N5c3RlbSB0eXBlczoKLSsgIC0tYnVpbGQ9QlVJ TEQgICAgIGNvbmZpZ3VyZSBmb3IgYnVpbGRpbmcgb24gQlVJTEQgW2d1ZXNzZWRdCi0rICAtLWhv c3Q9SE9TVCAgICAgICBjcm9zcy1jb21waWxlIHRvIGJ1aWxkIHByb2dyYW1zIHRvIHJ1biBvbiBI T1NUIFtCVUlMRF0KLStfQUNFT0YKLStmaQotKwotK2lmIHRlc3QgLW4gIiRhY19pbml0X2hlbHAi OyB0aGVuCi0rICBjYXNlICRhY19pbml0X2hlbHAgaW4KLSsgICAgIHNob3J0IHwgcmVjdXJzaXZl ICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBTT0NJIDMuMC4wOiI7OwotKyAgIGVzYWMKLSsgIGNh dCA8PFxfQUNFT0YKLSsKLStPcHRpb25hbCBGZWF0dXJlczoKLSsgIC0tZGlzYWJsZS1vcHRpb24t Y2hlY2tpbmcgIGlnbm9yZSB1bnJlY29nbml6ZWQgLS1lbmFibGUvLS13aXRoIG9wdGlvbnMKLSsg IC0tZGlzYWJsZS1GRUFUVVJFICAgICAgIGRvIG5vdCBpbmNsdWRlIEZFQVRVUkUgKHNhbWUgYXMg LS1lbmFibGUtRkVBVFVSRT1ubykKLSsgIC0tZW5hYmxlLUZFQVRVUkVbPUFSR10gIGluY2x1ZGUg RkVBVFVSRSBbQVJHPXllc10KLSsgIC0tZW5hYmxlLXNoYXJlZFs9UEtHU10gIGJ1aWxkIHNoYXJl ZCBsaWJyYXJpZXMgW2RlZmF1bHQ9bm9dCi0rICAtLWVuYWJsZS1zdGF0aWNbPVBLR1NdICBidWls ZCBzdGF0aWMgbGlicmFyaWVzIFtkZWZhdWx0PXllc10KLSsgIC0tZGlzYWJsZS1kZXBlbmRlbmN5 LXRyYWNraW5nICBzcGVlZHMgdXAgb25lLXRpbWUgYnVpbGQKLSsgIC0tZW5hYmxlLWRlcGVuZGVu Y3ktdHJhY2tpbmcgICBkbyBub3QgcmVqZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRyYWN0b3JzCi0r ICAtLWVuYWJsZS1mYXN0LWluc3RhbGxbPVBLR1NdCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24gW2RlZmF1bHQ9eWVzXQotKyAgLS1kaXNh YmxlLWxpYnRvb2wtbG9jayAgYXZvaWQgbG9ja2luZyAobWlnaHQgYnJlYWsgcGFyYWxsZWwgYnVp bGRzKQotKyAgLS1lbmFibGUtZXhjZXB0aW9ucyAgICAgZW5hYmxlIGV4Y2VwdGlvbnMgaGFuZGxp bmcgbWVjaGFuaXNtCi0rICAtLWRpc2FibGUtaW5mby1kb2MgICAgICBkbyBub3QgZ2VuZXJhdGUg SW5mbyBkb2N1bWVudGF0aW9uCi0rICAtLWRpc2FibGUtaHRtbC1kb2MgICAgICBkbyBub3QgZ2Vu ZXJhdGUgSFRNTCBkb2N1bWVudGF0aW9uCi0rICAtLWVuYWJsZS1idXJyaWVkLWhlYWRlcnMKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJl Y3Rvcnkgc3RydWN0dXJlCi0rICAtLWVuYWJsZS1teXNxbC1idXJyaWVkLWhlYWRlcnMKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgTXlTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBk aXJlY3RvcnkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZQotKyAgLS1lbmFi bGUtcG9zdGdyZXNxbC1idXJyaWVkLWhlYWRlcnMKLSsgICAgICAgICAgICAgICAgICAgICAgICAg IGluY2x1ZGUgUG9zdEdyZVNRTCBoZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeQotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlCi0rICAtLWVuYWJsZS1iYWNrZW5kLW15c3Fs ICBidWlsZC1pbiBNeVNRTCBiYWNrZW5kIHN1cHBvcnQgW2RlZmF1bHQ9bm9dCi0rICAtLWVuYWJs ZS1iYWNrZW5kLW9yYWNsZSBidWlsZC1pbiBPUkFDTEUgYmFja2VuZCBzdXBwb3J0IFtkZWZhdWx0 PW5vXQotKyAgLS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3FsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICBidWlsZC1pbiBQb3N0Z3JlU1FMIGJhY2tlbmQgc3VwcG9ydCBbZGVmYXVsdD1ub10K LSsKLStPcHRpb25hbCBQYWNrYWdlczoKLSsgIC0td2l0aC1QQUNLQUdFWz1BUkddICAgIHVzZSBQ QUNLQUdFIFtBUkc9eWVzXQotKyAgLS13aXRob3V0LVBBQ0tBR0UgICAgICAgZG8gbm90IHVzZSBQ QUNLQUdFIChzYW1lIGFzIC0td2l0aC1QQUNLQUdFPW5vKQotKyAgLS13aXRoLWNwcHVuaXQtcHJl Zml4PVBGWCAgIFByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpCi0r ICAtLXdpdGgtY3BwdW5pdC1leGVjLXByZWZpeD1QRlggIEV4ZWMgcHJlZml4IHdoZXJlIENwcFVu aXQgaXMgaW5zdGFsbGVkIChvcHRpb25hbCkKLSsgIC0td2l0aC1waWMgICAgICAgICAgICAgIHRy eSB0byB1c2Ugb25seSBQSUMvbm9uLVBJQyBvYmplY3RzIFtkZWZhdWx0PXVzZQotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgYm90aF0KLSsgIC0td2l0aC1nbnUtbGQgICAgICAgICAgIGFzc3Vt ZSB0aGUgQyBjb21waWxlciB1c2VzIEdOVSBsZCBbZGVmYXVsdD1ub10KLSsgIC0td2l0aC1zeXNy b290PURJUiBTZWFyY2ggZm9yIGRlcGVuZGVudCBsaWJyYXJpZXMgd2l0aGluIERJUgotKyAgICAg ICAgICAgICAgICAgICAgICAgIChvciB0aGUgY29tcGlsZXIncyBzeXNyb290IGlmIG5vdCBzcGVj aWZpZWQpLgotKyAgLS13aXRoLWRvY2Rpcj1ESVIgICAgICAgc2V0IGRvY3VtZW50YXRpb24gZGly ZWN0b3J5IHRvIERJUgotKyAgLS13aXRoLWJvb3N0PURJUiAgICAgICAgdXNlIGJvb3N0IChkZWZh dWx0IGlzIE5PKSAsIHNwZWNpZnkgdGhlIHJvb3QKLSsgICAgICAgICAgICAgICAgICAgICAgICAg IGRpcmVjdG9yeSBmb3IgYm9vc3QgbGlicmFyeSAob3B0aW9uYWwpCi0rICAtLXdpdGgtbXlzcWw9 PHBhdGg+ICAgICByb290IGRpcmVjdG9yeSBwYXRoIG9mIE15U1FMIGluc3RhbGxhdGlvbgotKyAg LS13aXRoLW15c3FsLWxpYj08cGF0aD4gZGlyZWN0b3J5IHBhdGggb2YgTXlTUUwgbGlicmFyeSBp bnN0YWxsYXRpb24KLSsgIC0td2l0aC1teXNxbC1pbmNsdWRlPTxwYXRoPiBkaXJlY3RvcnkgcGF0 aCBvZiBNeVNRTCBoZWFkZXIgaW5zdGFsbGF0aW9uCi0rICAtLXdpdGgtb3JhY2xlPVtESVJdICAg ICB1c2UgT3JhY2xlIE9DSSBBUEkgZnJvbSBnaXZlbiBwYXRoIHRvIE9yYWNsZSBob21lCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnkKLSsgIC0td2l0aC1vcmFjbGUtaW5jbHVk ZT1bRElSXQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlIE9yYWNsZSBPQ0kgQVBJIGhl YWRlcnMgZnJvbSBnaXZlbiBwYXRoCi0rICAtLXdpdGgtb3JhY2xlLWxpYj1bRElSXSB1c2UgT3Jh Y2xlIE9DSSBBUEkgbGlicmFyaWVzIGZyb20gZ2l2ZW4gcGF0aAotKyAgLS13aXRoLXBvc3RncmVz cWw9W0FSR10gdXNlIFBvc3RncmVTUUwgbGlicmFyeSBbZGVmYXVsdD15ZXNdLCBvcHRpb25hbGx5 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZ5IHBhdGggdG8gcGdfY29uZmlnCi0r Ci0rU29tZSBpbmZsdWVudGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0rICBDWFggICAgICAg ICBDKysgY29tcGlsZXIgY29tbWFuZAotKyAgQ1hYRkxBR1MgICAgQysrIGNvbXBpbGVyIGZsYWdz Ci0rICBMREZMQUdTICAgICBsaW5rZXIgZmxhZ3MsIGUuZy4gLUw8bGliIGRpcj4gaWYgeW91IGhh dmUgbGlicmFyaWVzIGluIGEKLSsgICAgICAgICAgICAgIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8 bGliIGRpcj4KLSsgIExJQlMgICAgICAgIGxpYnJhcmllcyB0byBwYXNzIHRvIHRoZSBsaW5rZXIs IGUuZy4gLWw8bGlicmFyeT4KLSsgIENQUEZMQUdTICAgIChPYmplY3RpdmUpIEMvQysrIHByZXBy b2Nlc3NvciBmbGFncywgZS5nLiAtSTxpbmNsdWRlIGRpcj4gaWYKLSsgICAgICAgICAgICAgIHlv dSBoYXZlIGhlYWRlcnMgaW4gYSBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGlyPgot KyAgQ1hYQ1BQICAgICAgQysrIHByZXByb2Nlc3NvcgotKyAgQ0MgICAgICAgICAgQyBjb21waWxl ciBjb21tYW5kCi0rICBDRkxBR1MgICAgICBDIGNvbXBpbGVyIGZsYWdzCi0rICBDUFAgICAgICAg ICBDIHByZXByb2Nlc3NvcgotKwotK1VzZSB0aGVzZSB2YXJpYWJsZXMgdG8gb3ZlcnJpZGUgdGhl IGNob2ljZXMgbWFkZSBieSBgY29uZmlndXJlJyBvciB0byBoZWxwCi0raXQgdG8gZmluZCBsaWJy YXJpZXMgYW5kIHByb2dyYW1zIHdpdGggbm9uc3RhbmRhcmQgbmFtZXMvbG9jYXRpb25zLgotKwot K1JlcG9ydCBidWdzIHRvIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LgotK19BQ0VP RgotK2FjX3N0YXR1cz0kPwotK2ZpCi0rCi0raWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAicmVj dXJzaXZlIjsgdGhlbgotKyAgIyBJZiB0aGVyZSBhcmUgc3ViZGlycywgcmVwb3J0IHRoZWlyIHNw ZWNpZmljIC0taGVscC4KLSsgIGZvciBhY19kaXIgaW4gOiAkYWNfc3ViZGlyc19hbGw7IGRvIHRl c3QgIngkYWNfZGlyIiA9IHg6ICYmIGNvbnRpbnVlCi0rICAgIHRlc3QgLWQgIiRhY19kaXIiIHx8 Ci0rICAgICAgeyBjZCAiJHNyY2RpciIgJiYgYWNfcHdkPWBwd2RgICYmIHNyY2Rpcj0uICYmIHRl c3QgLWQgIiRhY19kaXIiOyB9IHx8Ci0rICAgICAgY29udGludWUKLSsgICAgYWNfYnVpbGRkaXI9 LgotKwotK2Nhc2UgIiRhY19kaXIiIGluCi0rLikgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxk ZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7Ci0rKikKLSsgIGFjX2Rpcl9zdWZmaXg9 L2AkYXNfZWNobyAiJGFjX2RpciIgfCBzZWQgJ3N8XlwuW1xcL118fCdgCi0rICAjIEEgIi4uIiBm b3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCi0rICBhY190b3BfYnVpbGRkaXJf c3ViPWAkYXNfZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzfC9bXlxcL10qfC8uLnxnO3N8 L3x8J2AKLSsgIGNhc2UgJGFjX3RvcF9idWlsZGRpcl9zdWIgaW4KLSsgICIiKSBhY190b3BfYnVp bGRkaXJfc3ViPS4gYWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsKLSsgICopICBhY190b3BfYnVpbGRf cHJlZml4PSRhY190b3BfYnVpbGRkaXJfc3ViLyA7OwotKyAgZXNhYyA7OwotK2VzYWMKLSthY19h YnNfdG9wX2J1aWxkZGlyPSRhY19wd2QKLSthY19hYnNfYnVpbGRkaXI9JGFjX3B3ZCRhY19kaXJf c3VmZml4Ci0rIyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eToKLSthY190b3BfYnVpbGRkaXI9 JGFjX3RvcF9idWlsZF9wcmVmaXgKLSsKLStjYXNlICRzcmNkaXIgaW4KLSsgIC4pICAjIFdlIGFy ZSBidWlsZGluZyBpbiBwbGFjZS4KLSsgICAgYWNfc3JjZGlyPS4KLSsgICAgYWNfdG9wX3NyY2Rp cj0kYWNfdG9wX2J1aWxkZGlyX3N1YgotKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkIDs7 Ci0rICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIG5hbWUuCi0rICAgIGFjX3NyY2Rp cj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7Ci0rICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpcgotKyAg ICBhY19hYnNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7Ci0rICAqKSAjIFJlbGF0aXZlIG5hbWUuCi0r ICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIkYWNfZGlyX3N1ZmZpeAot KyAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpcgotKyAgICBhY19h YnNfdG9wX3NyY2Rpcj0kYWNfcHdkLyRzcmNkaXIgOzsKLStlc2FjCi0rYWNfYWJzX3NyY2Rpcj0k YWNfYWJzX3RvcF9zcmNkaXIkYWNfZGlyX3N1ZmZpeAotKwotKyAgICBjZCAiJGFjX2RpciIgfHwg eyBhY19zdGF0dXM9JD87IGNvbnRpbnVlOyB9Ci0rICAgICMgQ2hlY2sgZm9yIGd1ZXN0ZWQgY29u ZmlndXJlLgotKyAgICBpZiB0ZXN0IC1mICIkYWNfc3JjZGlyL2NvbmZpZ3VyZS5nbnUiOyB0aGVu Ci0rICAgICAgZWNobyAmJgotKyAgICAgICRTSEVMTCAiJGFjX3NyY2Rpci9jb25maWd1cmUuZ251 IiAtLWhlbHA9cmVjdXJzaXZlCi0rICAgIGVsaWYgdGVzdCAtZiAiJGFjX3NyY2Rpci9jb25maWd1 cmUiOyB0aGVuCi0rICAgICAgZWNobyAmJgotKyAgICAgICRTSEVMTCAiJGFjX3NyY2Rpci9jb25m aWd1cmUiIC0taGVscD1yZWN1cnNpdmUKLSsgICAgZWxzZQotKyAgICAgICRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6IG5vIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gaXMgaW4gJGFjX2RpciIg PiYyCi0rICAgIGZpIHx8IGFjX3N0YXR1cz0kPwotKyAgICBjZCAiJGFjX3B3ZCIgfHwgeyBhY19z dGF0dXM9JD87IGJyZWFrOyB9Ci0rICBkb25lCi0rZmkKLSsKLSt0ZXN0IC1uICIkYWNfaW5pdF9o ZWxwIiAmJiBleGl0ICRhY19zdGF0dXMKLStpZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCi0rICBj YXQgPDxcX0FDRU9GCi0rU09DSSBjb25maWd1cmUgMy4wLjAKLStnZW5lcmF0ZWQgYnkgR05VIEF1 dG9jb25mIDIuNjgKLSsKLStDb3B5cmlnaHQgKEMpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCi0rVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLStnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCi0rCi0rQ29weXJpZ2h0IChDKSAyMDA0LTIw MTEgTWFjaWVqIFNvYmN6YWsgPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLStfQUNF T0YKLSsgIGV4aXQKLStmaQotKwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMj IEF1dG9jb25mIGluaXRpYWxpemF0aW9uLiAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSAjIwotKwotKyMgYWNfZm5fY3h4X3RyeV9jb21waWxlIExJTkVOTwotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgVHJ5IHRvIGNvbXBpbGUgY29uZnRlc3QuJGFjX2V4dCwgYW5k IHJldHVybiB3aGV0aGVyIHRoaXMgc3VjY2VlZGVkLgotK2FjX2ZuX2N4eF90cnlfY29tcGlsZSAo KQotK3sKLSsgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNf bGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKLSsgIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQKLSsgIGlmIHsgeyBhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyI7IH0gPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVycgotKyAg YWNfc3RhdHVzPSQ/Ci0rICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMQotKyAgICBjYXQgY29uZnRlc3Qu ZXIxID4mNQotKyAgICBtdiAtZiBjb25mdGVzdC5lcjEgY29uZnRlc3QuZXJyCi0rICBmaQotKyAg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhf d2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYg dGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuIDoKLSsgIGFjX3JldHZhbD0wCi0rZWxz ZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19yZXR2YWw9MQotK2ZpCi0rICBl dmFsICRhc19saW5lbm9fc3RhY2s7ICR7YXNfbGluZW5vX3N0YWNrOis6fSB1bnNldCBhc19saW5l bm8KLSsgIGFzX2ZuX3NldF9zdGF0dXMgJGFjX3JldHZhbAotKwotK30gIyBhY19mbl9jeHhfdHJ5 X2NvbXBpbGUKLSsKLSsjIGFjX2ZuX2N4eF90cnlfY3BwIExJTkVOTwotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rIyBUcnkgdG8gcHJlcHJvY2VzcyBjb25mdGVzdC4kYWNfZXh0LCBhbmQg cmV0dXJuIHdoZXRoZXIgdGhpcyBzdWNjZWVkZWQuCi0rYWNfZm5fY3h4X3RyeV9jcHAgKCkKLSt7 Ci0rICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVu b19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCi0rICBpZiB7IHsgYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0 ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStl c2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAk YWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKLSsgIChldmFs ICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVycgotKyAgYWNfc3RhdHVz PSQ/Ci0rICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMQotKyAgICBjYXQgY29uZnRlc3QuZXIxID4mNQot KyAgICBtdiAtZiBjb25mdGVzdC5lcjEgY29uZnRlc3QuZXJyCi0rICBmaQotKyAgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0 ZXN0ICRhY19zdGF0dXMgPSAwOyB9ID4gY29uZnRlc3QuaSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNf Y3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbiA6Ci0rICBhY19yZXR2YWw9MAotK2Vsc2UK LSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICAgYWNfcmV0dmFsPTEKLStmaQotKyAg ZXZhbCAkYXNfbGluZW5vX3N0YWNrOyAke2FzX2xpbmVub19zdGFjazorOn0gdW5zZXQgYXNfbGlu ZW5vCi0rICBhc19mbl9zZXRfc3RhdHVzICRhY19yZXR2YWwKLSsKLSt9ICMgYWNfZm5fY3h4X3Ry eV9jcHAKLSsKLSsjIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgTElORU5PCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotKyMgVHJ5IHRvIGNvbXBpbGUgY29uZnRlc3QuJGFjX2V4dCwgYW5kIHJl dHVybiB3aGV0aGVyIHRoaXMgc3VjY2VlZGVkLgotK2FjX2ZuX2NfdHJ5X2NvbXBpbGUgKCkKLSt7 Ci0rICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVu b19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCi0rICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0r ICBpZiB7IHsgYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i OyB9ID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcnIKLSsgIGFjX3N0 YXR1cz0kPwotKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSsgICAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjEKLSsgICAgY2F0IGNvbmZ0ZXN0LmVyMSA+ JjUKLSsgICAgbXYgLWYgY29uZnRlc3QuZXIxIGNvbmZ0ZXN0LmVycgotKyAgZmkKLSsgICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4gOgotKyAgYWNfcmV0dmFsPTAKLStlbHNlCi0rICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX3JldHZhbD0xCi0rZmkKLSsgIGV2YWwgJGFz X2xpbmVub19zdGFjazsgJHthc19saW5lbm9fc3RhY2s6Kzp9IHVuc2V0IGFzX2xpbmVubwotKyAg YXNfZm5fc2V0X3N0YXR1cyAkYWNfcmV0dmFsCi0rCi0rfSAjIGFjX2ZuX2NfdHJ5X2NvbXBpbGUK LSsKLSsjIGFjX2ZuX2NfdHJ5X2xpbmsgTElORU5PCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyMgVHJ5IHRvIGxpbmsgY29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVyIHRo aXMgc3VjY2VlZGVkLgotK2FjX2ZuX2NfdHJ5X2xpbmsgKCkKLSt7Ci0rICBhc19saW5lbm89JHth c19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5v X3N0YWNrCi0rICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAot KyAgaWYgeyB7IGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsg fSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXJyCi0rICBhY19zdGF0dXM9 JD8KLSsgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0rICAgIGdyZXAgLXYgJ14gKisn IGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIxCi0rICAgIGNhdCBjb25mdGVzdC5lcjEgPiY1Ci0r ICAgIG12IC1mIGNvbmZ0ZXN0LmVyMSBjb25mdGVzdC5lcnIKLSsgIGZpCi0rICAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIHRl c3QgJGFjX3N0YXR1cyA9IDA7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWci IHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25m dGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwK LSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4gOgotKyAg YWNfcmV0dmFsPTAKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX3Jl dHZhbD0xCi0rZmkKLSsgICMgRGVsZXRlIHRoZSBJUEEvSVBPIChJbnRlciBQcm9jZWR1cmFsIEFu YWx5c2lzL09wdGltaXphdGlvbikgaW5mb3JtYXRpb24KLSsgICMgY3JlYXRlZCBieSB0aGUgUEdJ IGNvbXBpbGVyIChjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vKSwgYXMgaXQgd291bGQKLSsgICMg aW50ZXJmZXJlIHdpdGggdGhlIG5leHQgbGluayBjb21tYW5kOyBhbHNvIGRlbGV0ZSBhIGRpcmVj dG9yeSB0aGF0IGlzCi0rICAjIGxlZnQgYmVoaW5kIGJ5IEFwcGxlJ3MgY29tcGlsZXIuICBXZSBk byB0aGlzIGJlZm9yZSBleGVjdXRpbmcgdGhlIGFjdGlvbnMuCi0rICBybSAtcmYgY29uZnRlc3Qu ZFNZTSBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vCi0rICBldmFsICRhc19saW5lbm9fc3RhY2s7 ICR7YXNfbGluZW5vX3N0YWNrOis6fSB1bnNldCBhc19saW5lbm8KLSsgIGFzX2ZuX3NldF9zdGF0 dXMgJGFjX3JldHZhbAotKwotK30gIyBhY19mbl9jX3RyeV9saW5rCi0rCi0rIyBhY19mbl9jX2No ZWNrX2hlYWRlcl9jb21waWxlIExJTkVOTyBIRUFERVIgVkFSIElOQ0xVREVTCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBUZXN0 cyB3aGV0aGVyIEhFQURFUiBleGlzdHMgYW5kIGNhbiBiZSBjb21waWxlZCB1c2luZyB0aGUgaW5j bHVkZSBmaWxlcyBpbgotKyMgSU5DTFVERVMsIHNldHRpbmcgdGhlIGNhY2hlIHZhcmlhYmxlIFZB UiBhY2NvcmRpbmdseS4KLSthY19mbl9jX2NoZWNrX2hlYWRlcl9jb21waWxlICgpCi0rewotKyAg YXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3Rh Y2s9JGFzX2xpbmVub19zdGFjawotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgJDIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk Mi4uLiAiID4mNjsgfQotK2lmIGV2YWwgXCR7JDMrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9G ID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyQ0Ci0rI2luY2x1 ZGUgPCQyPgotK19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVu IDoKLSsgIGV2YWwgIiQzPXllcyIKLStlbHNlCi0rICBldmFsICIkMz1ubyIKLStmaQotK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAot K2ZpCi0rZXZhbCBhY19yZXM9XCQkMwotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVz IiA+JjY7IH0KLSsgIGV2YWwgJGFzX2xpbmVub19zdGFjazsgJHthc19saW5lbm9fc3RhY2s6Kzp9 IHVuc2V0IGFzX2xpbmVubwotKwotK30gIyBhY19mbl9jX2NoZWNrX2hlYWRlcl9jb21waWxlCi0r Ci0rIyBhY19mbl9jX3RyeV9jcHAgTElORU5PCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r IyBUcnkgdG8gcHJlcHJvY2VzcyBjb25mdGVzdC4kYWNfZXh0LCBhbmQgcmV0dXJuIHdoZXRoZXIg dGhpcyBzdWNjZWVkZWQuCi0rYWNfZm5fY190cnlfY3BwICgpCi0rewotKyAgYXNfbGluZW5vPSR7 YXNfbGluZW5vLSIkMSJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVu b19zdGFjawotKyAgaWYgeyB7IGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nh c2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCi0r JGFzX2VjaG8gIiRhY190cnlfZWNobyI7IH0gPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVz dC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcnIKLSsgIGFjX3N0YXR1cz0kPwotKyAgaWYgdGVzdCAt cyBjb25mdGVzdC5lcnI7IHRoZW4KLSsgICAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXJyID5j b25mdGVzdC5lcjEKLSsgICAgY2F0IGNvbmZ0ZXN0LmVyMSA+JjUKLSsgICAgbXYgLWYgY29uZnRl c3QuZXIxIGNvbmZ0ZXN0LmVycgotKyAgZmkKLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVzID0g MDsgfSA+IGNvbmZ0ZXN0LmkgJiYgewotKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2Zs YWckYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAg ICAgfTsgdGhlbiA6Ci0rICBhY19yZXR2YWw9MAotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKLSsKLSsgICAgYWNfcmV0dmFsPTEKLStmaQotKyAgZXZhbCAkYXNfbGluZW5vX3N0YWNr OyAke2FzX2xpbmVub19zdGFjazorOn0gdW5zZXQgYXNfbGluZW5vCi0rICBhc19mbl9zZXRfc3Rh dHVzICRhY19yZXR2YWwKLSsKLSt9ICMgYWNfZm5fY190cnlfY3BwCi0rCi0rIyBhY19mbl9jX3Ry eV9ydW4gTElORU5PCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBUcnkgdG8gbGluayBj b25mdGVzdC4kYWNfZXh0LCBhbmQgcmV0dXJuIHdoZXRoZXIgdGhpcyBzdWNjZWVkZWQuIEFzc3Vt ZXMKLSsjIHRoYXQgZXhlY3V0YWJsZXMgKmNhbiogYmUgcnVuLgotK2FjX2ZuX2NfdHJ5X3J1biAo KQotK3sKLSsgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNf bGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKLSsgIGlmIHsgeyBhY190cnk9IiRhY19saW5r IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hv XCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyI7IH0gPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsi KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsg fSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCi0rICB7IHsgY2FzZSAiKCgkYWNf dHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0r ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAi JGFjX3RyeV9lY2hvIjsgfSA+JjUKLSsgIChldmFsICIkYWNfdHJ5IikgMj4mNQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IH07IHRoZW4gOgotKyAg YWNfcmV0dmFsPTAKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3 aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKLSsgICAgICAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQotKwotKyAgICAgICBhY19yZXR2YWw9JGFjX3N0YXR1cwotK2ZpCi0rICBybSAtcmYgY29uZnRl c3QuZFNZTSBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vCi0rICBldmFsICRhc19saW5lbm9fc3Rh Y2s7ICR7YXNfbGluZW5vX3N0YWNrOis6fSB1bnNldCBhc19saW5lbm8KLSsgIGFzX2ZuX3NldF9z dGF0dXMgJGFjX3JldHZhbAotKwotK30gIyBhY19mbl9jX3RyeV9ydW4KLSsKLSsjIGFjX2ZuX2Nf Y2hlY2tfZnVuYyBMSU5FTk8gRlVOQyBWQVIKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIFRlc3RzIHdoZXRoZXIgRlVOQyBleGlzdHMsIHNldHRpbmcgdGhlIGNhY2hl IHZhcmlhYmxlIFZBUiBhY2NvcmRpbmdseQotK2FjX2ZuX2NfY2hlY2tfZnVuYyAoKQotK3sKLSsg IGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0 YWNrPSRhc19saW5lbm9fc3RhY2sKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgZm9yICQyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JDIuLi4gIiA+JjY7IH0KLStpZiBldmFsIFwkeyQzKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VP RiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsvKiBEZWZpbmUg JDIgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyAk Mi4KLSsgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGlt ZW9mZGF5LiAgKi8KLSsjZGVmaW5lICQyIGlubm9jdW91c18kMgotKwotKy8qIFN5c3RlbSBoZWFk ZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywK LSsgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciAkMiAoKTsgYmVsb3cuCi0rICAgIFBy ZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2lu Y2UKLSsgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJz LiAgKi8KLSsKLSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNl Ci0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsKLSsjdW5kZWYgJDIKLSsKLSsvKiBP dmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsg ICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBH Q0MKLSsgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3Rp bGwgYXBwbHkuICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYK LStjaGFyICQyICgpOwotKy8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVu Y3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKLSsgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9T WVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKLSsgICAgc29tZXRoaW5nIHN0 YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCi0rI2lm IGRlZmluZWQgX19zdHViXyQyIHx8IGRlZmluZWQgX19zdHViX19fJDIKLStjaG9rZSBtZQotKyNl bmRpZgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuICQyICgpOwotKyAgOwotKyAgcmV0 dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVu IDoKLSsgIGV2YWwgIiQzPXllcyIKLStlbHNlCi0rICBldmFsICIkMz1ubyIKLStmaQotK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRh Y19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rZXZhbCBhY19yZXM9XCQkMwotKwkgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19y ZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSsgIGV2YWwgJGFzX2xpbmVub19z dGFjazsgJHthc19saW5lbm9fc3RhY2s6Kzp9IHVuc2V0IGFzX2xpbmVubwotKwotK30gIyBhY19m bl9jX2NoZWNrX2Z1bmMKLSsKLSsjIGFjX2ZuX2N4eF90cnlfbGluayBMSU5FTk8KLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFRyeSB0byBsaW5rIGNvbmZ0ZXN0LiRhY19leHQsIGFu ZCByZXR1cm4gd2hldGhlciB0aGlzIHN1Y2NlZWRlZC4KLSthY19mbl9jeHhfdHJ5X2xpbmsgKCkK LSt7Ci0rICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xp bmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCi0rICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgaWYgeyB7IGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAi KCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRl c3QuZXJyCi0rICBhY19zdGF0dXM9JD8KLSsgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVu Ci0rICAgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIxCi0rICAgIGNh dCBjb25mdGVzdC5lcjEgPiY1Ci0rICAgIG12IC1mIGNvbmZ0ZXN0LmVyMSBjb25mdGVzdC5lcnIK LSsgIGZpCi0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gJiYgewotKwkgdGVzdCAt eiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jv c3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQK LSsgICAgICAgfTsgdGhlbiA6Ci0rICBhY19yZXR2YWw9MAotK2Vsc2UKLSsgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKLSsKLSsJYWNfcmV0dmFsPTEKLStmaQotKyAgIyBEZWxldGUgdGhlIElQQS9J UE8gKEludGVyIFByb2NlZHVyYWwgQW5hbHlzaXMvT3B0aW1pemF0aW9uKSBpbmZvcm1hdGlvbgot KyAgIyBjcmVhdGVkIGJ5IHRoZSBQR0kgY29tcGlsZXIgKGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qu b28pLCBhcyBpdCB3b3VsZAotKyAgIyBpbnRlcmZlcmUgd2l0aCB0aGUgbmV4dCBsaW5rIGNvbW1h bmQ7IGFsc28gZGVsZXRlIGEgZGlyZWN0b3J5IHRoYXQgaXMKLSsgICMgbGVmdCBiZWhpbmQgYnkg QXBwbGUncyBjb21waWxlci4gIFdlIGRvIHRoaXMgYmVmb3JlIGV4ZWN1dGluZyB0aGUgYWN0aW9u cy4KLSsgIHJtIC1yZiBjb25mdGVzdC5kU1lNIGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28KLSsg IGV2YWwgJGFzX2xpbmVub19zdGFjazsgJHthc19saW5lbm9fc3RhY2s6Kzp9IHVuc2V0IGFzX2xp bmVubwotKyAgYXNfZm5fc2V0X3N0YXR1cyAkYWNfcmV0dmFsCi0rCi0rfSAjIGFjX2ZuX2N4eF90 cnlfbGluawotKwotKyMgYWNfZm5fY3h4X3RyeV9ydW4gTElORU5PCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSsjIFRyeSB0byBsaW5rIGNvbmZ0ZXN0LiRhY19leHQsIGFuZCByZXR1cm4g d2hldGhlciB0aGlzIHN1Y2NlZWRlZC4gQXNzdW1lcwotKyMgdGhhdCBleGVjdXRhYmxlcyAqY2Fu KiBiZSBydW4uCi0rYWNfZm5fY3h4X3RyeV9ydW4gKCkKLSt7Ci0rICBhc19saW5lbm89JHthc19s aW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0 YWNrCi0rICBpZiB7IHsgYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0r ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iOyB9ID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3Qk YWNfZXhlZXh0JwotKyAgeyB7IGNhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyI7IH0gPiY1Ci0rICAo ZXZhbCAiJGFjX3RyeSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRh Y19zdGF0dXMgPSAwOyB9OyB9OyB0aGVuIDoKLSsgIGFjX3JldHZhbD0wCi0rZWxzZQotKyAgJGFz X2VjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1 Ci0rICAgICAgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICAgICAgYWNfcmV0dmFsPSRh Y19zdGF0dXMKLStmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0LmRTWU0gY29uZnRlc3RfaXBhOF9jb25m dGVzdC5vbwotKyAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyAke2FzX2xpbmVub19zdGFjazorOn0g dW5zZXQgYXNfbGluZW5vCi0rICBhc19mbl9zZXRfc3RhdHVzICRhY19yZXR2YWwKLSsKLSt9ICMg YWNfZm5fY3h4X3RyeV9ydW4KLSsKLSsjIGFjX2ZuX2N4eF9jaGVja19oZWFkZXJfbW9uZ3JlbCBM SU5FTk8gSEVBREVSIFZBUiBJTkNMVURFUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBUZXN0cyB3aGV0aGVyIEhFQURFUiBl eGlzdHMsIGdpdmluZyBhIHdhcm5pbmcgaWYgaXQgY2Fubm90IGJlIGNvbXBpbGVkIHVzaW5nCi0r IyB0aGUgaW5jbHVkZSBmaWxlcyBpbiBJTkNMVURFUyBhbmQgc2V0dGluZyB0aGUgY2FjaGUgdmFy aWFibGUgVkFSCi0rIyBhY2NvcmRpbmdseS4KLSthY19mbl9jeHhfY2hlY2tfaGVhZGVyX21vbmdy ZWwgKCkKLSt7Ci0rICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNr PWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCi0rICBpZiBldmFsIFwkeyQzKzp9IGZh bHNlOyB0aGVuIDoKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgZm9yICQyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJDIuLi4gIiA+ JjY7IH0KLStpZiBldmFsIFwkeyQzKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZmkKLStldmFsIGFjX3Jlcz1cJCQzCi0rCSAgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFz X2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2Vsc2UKLSsgICMgSXMgdGhlIGhlYWRlciBjb21waWxh YmxlPwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg JDIgdXNhYmlsaXR5IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyAkMiB1c2FiaWxpdHkuLi4g IiA+JjY7IH0KLStjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0r LyogZW5kIGNvbmZkZWZzLmguICAqLwotKyQ0Ci0rI2luY2x1ZGUgPCQyPgotK19BQ0VPRgotK2lm IGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgotKyAgYWNfaGVhZGVyX2Nv bXBpbGVyPXllcwotK2Vsc2UKLSsgIGFjX2hlYWRlcl9jb21waWxlcj1ubwotK2ZpCi0rcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0r eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19oZWFk ZXJfY29tcGlsZXIiID4mNQotKyRhc19lY2hvICIkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7IH0K LSsKLSsjIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nICQyIHByZXNlbmNlIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyAkMiBwcmVzZW5jZS4uLiAiID4mNjsgfQotK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUg PCQyPgotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfY3BwICIkTElORU5PIjsgdGhlbiA6Ci0r ICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKLStlbHNlCi0rICBhY19oZWFkZXJfcHJlcHJvYz1ubwot K2ZpCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LmkgY29uZnRlc3QuJGFjX2V4dAotK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfaGVhZGVy X3ByZXByb2MiID4mNQotKyRhc19lY2hvICIkYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQotKwot KyMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwotK2Nhc2UgJGFjX2hlYWRlcl9jb21waWxl cjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAjKCgKLSsg IHllczpubzogKQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IFdBUk5JTkc6ICQyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBw cmVwcm9jZXNzb3IhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkMjogYWNjZXB0 ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30K LSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAk MjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogJDI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1 bHQiID4mMjt9Ci0rICAgIDs7Ci0rICBubzp5ZXM6KiApCi0rICAgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogJDI6IHByZXNlbnQgYnV0IGNhbm5vdCBi ZSBjb21waWxlZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJDI6IHByZXNlbnQg YnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkMjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHBy ZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJDI6 ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9Ci0rICAg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogJDI6IHNl ZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FS TklORzogJDI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KLSsgICAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkMjogICAgIHNl Y3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogJDI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJl IENvbXBpbGVkXCIiID4mMjt9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogV0FSTklORzogJDI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1 bHQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICQyOiBwcm9jZWVkaW5nIHdpdGgg dGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQotKyggJGFzX2VjaG8gIiMjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIFJlcG9ydCB0aGlzIHRv IG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldCAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIyIKLSsgICAgICkgfCBzZWQgInMvXi8kYXNf bWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKLSsgICAgOzsKLStlc2FjCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkMiIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yICQyLi4uICIgPiY2OyB9Ci0raWYgZXZhbCBcJHskMys6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGV2YWwg IiQzPVwkYWNfaGVhZGVyX2NvbXBpbGVyIgotK2ZpCi0rZXZhbCBhY19yZXM9XCQkMwotKwkgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19y ZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLStmaQotKyAgZXZhbCAkYXNfbGlu ZW5vX3N0YWNrOyAke2FzX2xpbmVub19zdGFjazorOn0gdW5zZXQgYXNfbGluZW5vCi0rCi0rfSAj IGFjX2ZuX2N4eF9jaGVja19oZWFkZXJfbW9uZ3JlbAotK2NhdCA+Y29uZmlnLmxvZyA8PF9BQ0VP RgotK1RoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJz IHdoaWxlCi0rcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJl IG1ha2VzIGEgbWlzdGFrZS4KLSsKLStJdCB3YXMgY3JlYXRlZCBieSBTT0NJICRhc19tZSAzLjAu MCwgd2hpY2ggd2FzCi0rZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY4LiAgSW52b2NhdGlv biBjb21tYW5kIGxpbmUgd2FzCi0rCi0rICAkICQwICRACi0rCi0rX0FDRU9GCi0rZXhlYyA1Pj5j b25maWcubG9nCi0rewotK2NhdCA8PF9BU1VOQU1FCi0rIyMgLS0tLS0tLS0tICMjCi0rIyMgUGxh dGZvcm0uICMjCi0rIyMgLS0tLS0tLS0tICMjCi0rCi0raG9zdG5hbWUgPSBgKGhvc3RuYW1lIHx8 IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKLSt1bmFtZSAtbSA9IGAodW5hbWUgLW0p IDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLSt1bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+ L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLSt1bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rl di9udWxsIHx8IGVjaG8gdW5rbm93bmAKLSt1bmFtZSAtdiA9IGAodW5hbWUgLXYpIDI+L2Rldi9u dWxsIHx8IGVjaG8gdW5rbm93bmAKLSsKLSsvdXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4v dW5hbWUgLXApIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLSsvYmluL3VuYW1lIC1YICAg ICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2L251bGwgICAgIHx8IGVjaG8gdW5rbm93bmAKLSsK LSsvYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsICAgICAg ICAgICAgICB8fCBlY2hvIHVua25vd25gCi0rL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vz ci9iaW4vYXJjaCAtaykgMj4vZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAotKy91c3Iv Y29udmV4L2dldHN5c2luZm8gPSBgKC91c3IvY29udmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxs IHx8IGVjaG8gdW5rbm93bmAKLSsvdXNyL2Jpbi9ob3N0aW5mbyAgICAgID0gYCgvdXNyL2Jpbi9o b3N0aW5mbykgMj4vZGV2L251bGwgICAgICB8fCBlY2hvIHVua25vd25gCi0rL2Jpbi9tYWNoaW5l ICAgICAgICAgICA9IGAoL2Jpbi9tYWNoaW5lKSAyPi9kZXYvbnVsbCAgICAgICAgICAgfHwgZWNo byB1bmtub3duYAotKy91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwp IDI+L2Rldi9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLSsvYmluL3VuaXZlcnNlICAgICAg ICAgID0gYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbCAgICAgICAgICB8fCBlY2hvIHVua25v d25gCi0rCi0rX0FTVU5BTUUKLSsKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICAkYXNfZWNobyAiUEFUSDogJGFzX2Rp ciIKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rfSA+JjUKLSsKLStjYXQgPiY1IDw8 X0FDRU9GCi0rCi0rCi0rIyMgLS0tLS0tLS0tLS0gIyMKLSsjIyBDb3JlIHRlc3RzLiAjIwotKyMj IC0tLS0tLS0tLS0tICMjCi0rCi0rX0FDRU9GCi0rCi0rCi0rIyBLZWVwIGEgdHJhY2Ugb2YgdGhl IGNvbW1hbmQgbGluZS4KLSsjIFN0cmlwIG91dCAtLW5vLWNyZWF0ZSBhbmQgLS1uby1yZWN1cnNp b24gc28gdGhleSBkbyBub3QgcGlsZSB1cC4KLSsjIFN0cmlwIG91dCAtLXNpbGVudCBiZWNhdXNl IHdlIGRvbid0IHdhbnQgdG8gcmVjb3JkIGl0IGZvciBmdXR1cmUgcnVucy4KLSsjIEFsc28gcXVv dGUgYW55IGFyZ3MgY29udGFpbmluZyBzaGVsbCBtZXRhLWNoYXJhY3RlcnMuCi0rIyBNYWtlIHR3 byBwYXNzZXMgdG8gYWxsb3cgZm9yIHByb3BlciBkdXBsaWNhdGUtYXJndW1lbnQgc3VwcHJlc3Np b24uCi0rYWNfY29uZmlndXJlX2FyZ3M9Ci0rYWNfY29uZmlndXJlX2FyZ3MwPQotK2FjX2NvbmZp Z3VyZV9hcmdzMT0KLSthY19tdXN0X2tlZXBfbmV4dD1mYWxzZQotK2ZvciBhY19wYXNzIGluIDEg MgotK2RvCi0rICBmb3IgYWNfYXJnCi0rICBkbwotKyAgICBjYXNlICRhY19hcmcgaW4KLSsgICAg LW5vLWNyZWF0ZSB8IC0tbm8tYyogfCAtbiB8IC1uby1yZWN1cnNpb24gfCAtLW5vLXIqKSBjb250 aW51ZSA7OwotKyAgICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0t cXUgfCAtLXEgXAotKyAgICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUg fCAtLXNpbCkKLSsgICAgICBjb250aW51ZSA7OwotKyAgICAqXCcqKQotKyAgICAgIGFjX2FyZz1g JGFzX2VjaG8gIiRhY19hcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7Ci0rICAgIGVz YWMKLSsgICAgY2FzZSAkYWNfcGFzcyBpbgotKyAgICAxKSBhc19mbl9hcHBlbmQgYWNfY29uZmln dXJlX2FyZ3MwICIgJyRhY19hcmcnIiA7OwotKyAgICAyKQotKyAgICAgIGFzX2ZuX2FwcGVuZCBh Y19jb25maWd1cmVfYXJnczEgIiAnJGFjX2FyZyciCi0rICAgICAgaWYgdGVzdCAkYWNfbXVzdF9r ZWVwX25leHQgPSB0cnVlOyB0aGVuCi0rCWFjX211c3Rfa2VlcF9uZXh0PWZhbHNlICMgR290IHZh bHVlLCBiYWNrIHRvIG5vcm1hbC4KLSsgICAgICBlbHNlCi0rCWNhc2UgJGFjX2FyZyBpbgotKwkg ICo9KiB8IC0tY29uZmlnLWNhY2hlIHwgLUMgfCAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSogXAot KwkgIHwgLWVuYWJsZS0qIHwgLS1lbmFibGUtKiB8IC1nYXMgfCAtLWcqIHwgLW5mcCB8IC0tbmYq IFwKLSsJICB8IC1xIHwgLXF1aWV0IHwgLS1xKiB8IC1zaWxlbnQgfCAtLXNpbCogfCAtdiB8IC12 ZXJiKiBcCi0rCSAgfCAtd2l0aC0qIHwgLS13aXRoLSogfCAtd2l0aG91dC0qIHwgLS13aXRob3V0 LSogfCAtLXgpCi0rCSAgICBjYXNlICIkYWNfY29uZmlndXJlX2FyZ3MwICIgaW4KLSsJICAgICAg IiRhY19jb25maWd1cmVfYXJnczEiKiIgJyRhY19hcmcnICIqICkgY29udGludWUgOzsKLSsJICAg IGVzYWMKLSsJICAgIDs7Ci0rCSAgLSogKSBhY19tdXN0X2tlZXBfbmV4dD10cnVlIDs7Ci0rCWVz YWMKLSsgICAgICBmaQotKyAgICAgIGFzX2ZuX2FwcGVuZCBhY19jb25maWd1cmVfYXJncyAiICck YWNfYXJnJyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rZG9uZQotK3sgYWNfY29u ZmlndXJlX2FyZ3MwPTsgdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MwO30KLSt7IGFjX2NvbmZpZ3Vy ZV9hcmdzMT07IHVuc2V0IGFjX2NvbmZpZ3VyZV9hcmdzMTt9Ci0rCi0rIyBXaGVuIGludGVycnVw dGVkIG9yIGV4aXQnZCwgY2xlYW51cCB0ZW1wb3JhcnkgZmlsZXMsIGFuZCBjb21wbGV0ZQotKyMg Y29uZmlnLmxvZy4gIFdlIHJlbW92ZSBjb21tZW50cyBiZWNhdXNlIGFueXdheSB0aGUgcXVvdGVz IGluIHRoZXJlCi0rIyB3b3VsZCBjYXVzZSBwcm9ibGVtcyBvciBsb29rIHVnbHkuCi0rIyBXQVJO SU5HOiBVc2UgJ1wnJyB0byByZXByZXNlbnQgYW4gYXBvc3Ryb3BoZSB3aXRoaW4gdGhlIHRyYXAu Ci0rIyBXQVJOSU5HOiBEbyBub3Qgc3RhcnQgdGhlIHRyYXAgY29kZSB3aXRoIGEgbmV3bGluZSwg ZHVlIHRvIGEgRnJlZUJTRCA0LjAgYnVnLgotK3RyYXAgJ2V4aXRfc3RhdHVzPSQ/Ci0rICAjIFNh dmUgaW50byBjb25maWcubG9nIHNvbWUgaW5mb3JtYXRpb24gdGhhdCBtaWdodCBoZWxwIGluIGRl YnVnZ2luZy4KLSsgIHsKLSsgICAgZWNobwotKwotKyAgICAkYXNfZWNobyAiIyMgLS0tLS0tLS0t LS0tLS0tLSAjIwotKyMjIENhY2hlIHZhcmlhYmxlcy4gIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0t ICMjIgotKyAgICBlY2hvCi0rICAgICMgVGhlIGZvbGxvd2luZyB3YXkgb2Ygd3JpdGluZyB0aGUg Y2FjaGUgbWlzaGFuZGxlcyBuZXdsaW5lcyBpbiB2YWx1ZXMsCi0rKAotKyAgZm9yIGFjX3ZhciBp biBgKHNldCkgMj4mMSB8IHNlZCAtbiAnXCcncy9eXChbYS16QS1aX11bYS16QS1aMC05X10qXCk9 LiovXDEvcCdcJydgOyBkbwotKyAgICBldmFsIGFjX3ZhbD1cJCRhY192YXIKLSsgICAgY2FzZSAk YWNfdmFsIGluICMoCi0rICAgICoke2FzX25sfSopCi0rICAgICAgY2FzZSAkYWNfdmFyIGluICMo Ci0rICAgICAgKl9jdl8qKSB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIgY29udGFpbnMgYSBuZXdsaW5lIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRh aW5zIGEgbmV3bGluZSIgPiYyO30gOzsKLSsgICAgICBlc2FjCi0rICAgICAgY2FzZSAkYWNfdmFy IGluICMoCi0rICAgICAgXyB8IElGUyB8IGFzX25sKSA7OyAjKAotKyAgICAgIEJBU0hfQVJHViB8 IEJBU0hfU09VUkNFKSBldmFsICRhY192YXI9IDs7ICMoCi0rICAgICAgKikgeyBldmFsICRhY192 YXI9OyB1bnNldCAkYWNfdmFyO30gOzsKLSsgICAgICBlc2FjIDs7Ci0rICAgIGVzYWMKLSsgIGRv bmUKLSsgIChzZXQpIDI+JjEgfAotKyAgICBjYXNlICRhc19ubGAoYWNfc3BhY2U9J1wnJyAnXCcn OyBzZXQpIDI+JjFgIGluICMoCi0rICAgICoke2FzX25sfWFjX3NwYWNlPVwgKikKLSsgICAgICBz ZWQgLW4gXAotKwkicy8nXCcnLydcJydcXFxcJ1wnJydcJycvZzsKLSsJICBzL15cXChbXyRhc19j cl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwoLipcXCkvXFwxPSdcJydcXDInXCcn L3AiCi0rICAgICAgOzsgIygKLSsgICAgKikKLSsgICAgICBzZWQgLW4gIi9eW18kYXNfY3JfYWxu dW1dKl9jdl9bXyRhc19jcl9hbG51bV0qPS9wIgotKyAgICAgIDs7Ci0rICAgIGVzYWMgfAotKyAg ICBzb3J0Ci0rKQotKyAgICBlY2hvCi0rCi0rICAgICRhc19lY2hvICIjIyAtLS0tLS0tLS0tLS0t LS0tLSAjIwotKyMjIE91dHB1dCB2YXJpYWJsZXMuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0g IyMiCi0rICAgIGVjaG8KLSsgICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfdmFycwotKyAgICBk bwotKyAgICAgIGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgotKyAgICAgIGNhc2UgJGFjX3ZhbCBpbgot KyAgICAgICpcJ1wnJyopIGFjX3ZhbD1gJGFzX2VjaG8gIiRhY192YWwiIHwgc2VkICJzLydcJycv J1wnJ1xcXFxcXFxcJ1wnJydcJycvZyJgOzsKLSsgICAgICBlc2FjCi0rICAgICAgJGFzX2VjaG8g IiRhY192YXI9J1wnJyRhY192YWwnXCcnIgotKyAgICBkb25lIHwgc29ydAotKyAgICBlY2hvCi0r Ci0rICAgIGlmIHRlc3QgLW4gIiRhY19zdWJzdF9maWxlcyI7IHRoZW4KLSsgICAgICAkYXNfZWNo byAiIyMgLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIEZpbGUgc3Vic3RpdHV0aW9ucy4gIyMK LSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tICMjIgotKyAgICAgIGVjaG8KLSsgICAgICBmb3IgYWNf dmFyIGluICRhY19zdWJzdF9maWxlcwotKyAgICAgIGRvCi0rCWV2YWwgYWNfdmFsPVwkJGFjX3Zh cgotKwljYXNlICRhY192YWwgaW4KLSsJKlwnXCcnKikgYWNfdmFsPWAkYXNfZWNobyAiJGFjX3Zh bCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxcXFxcXFwnXCcnJ1wnJy9nImA7OwotKwllc2FjCi0rCSRh c19lY2hvICIkYWNfdmFyPSdcJyckYWNfdmFsJ1wnJyIKLSsgICAgICBkb25lIHwgc29ydAotKyAg ICAgIGVjaG8KLSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAtcyBjb25mZGVmcy5oOyB0aGVuCi0r ICAgICAgJGFzX2VjaG8gIiMjIC0tLS0tLS0tLS0tICMjCi0rIyMgY29uZmRlZnMuaC4gIyMKLSsj IyAtLS0tLS0tLS0tLSAjIyIKLSsgICAgICBlY2hvCi0rICAgICAgY2F0IGNvbmZkZWZzLmgKLSsg ICAgICBlY2hvCi0rICAgIGZpCi0rICAgIHRlc3QgIiRhY19zaWduYWwiICE9IDAgJiYKLSsgICAg ICAkYXNfZWNobyAiJGFzX21lOiBjYXVnaHQgc2lnbmFsICRhY19zaWduYWwiCi0rICAgICRhc19l Y2hvICIkYXNfbWU6IGV4aXQgJGV4aXRfc3RhdHVzIgotKyAgfSA+JjUKLSsgIHJtIC1mIGNvcmUg Ki5jb3JlIGNvcmUuY29uZnRlc3QuKiAmJgotKyAgICBybSAtZiAtciBjb25mdGVzdCogY29uZmRl ZnMqIGNvbmYkJCogJGFjX2NsZWFuX2ZpbGVzICYmCi0rICAgIGV4aXQgJGV4aXRfc3RhdHVzCi0r JyAwCi0rZm9yIGFjX3NpZ25hbCBpbiAxIDIgMTMgMTU7IGRvCi0rICB0cmFwICdhY19zaWduYWw9 JyRhY19zaWduYWwnOyBhc19mbl9leGl0IDEnICRhY19zaWduYWwKLStkb25lCi0rYWNfc2lnbmFs PTAKLSsKLSsjIGNvbmZkZWZzLmggYXZvaWRzIE9TIGNvbW1hbmQgbGluZSBsZW5ndGggbGltaXRz IHRoYXQgREVGUyBjYW4gZXhjZWVkLgotK3JtIC1mIC1yIGNvbmZ0ZXN0KiBjb25mZGVmcy5oCi0r Ci0rJGFzX2VjaG8gIi8qIGNvbmZkZWZzLmggKi8iID4gY29uZmRlZnMuaAotKwotKyMgUHJlZGVm aW5lZCBwcmVwcm9jZXNzb3IgdmFyaWFibGVzLgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNF T0YKLSsjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiJFBBQ0tBR0VfTkFNRSIKLStfQUNFT0YKLSsKLStj YXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiRQQUNL QUdFX1RBUk5BTUUiCi0rX0FDRU9GCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIkUEFDS0FHRV9WRVJTSU9OIgotK19BQ0VPRgotKwotK2Nh dCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIkUEFDS0FH RV9TVFJJTkciCi0rX0FDRU9GCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgIiRQQUNLQUdFX0JVR1JFUE9SVCIKLStfQUNFT0YKLSsKLStj YXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX1VSTCAiJFBBQ0tBR0Vf VVJMIgotK19BQ0VPRgotKwotKwotKyMgTGV0IHRoZSBzaXRlIGZpbGUgc2VsZWN0IGFuIGFsdGVy bmF0ZSBjYWNoZSBmaWxlIGlmIGl0IHdhbnRzIHRvLgotKyMgUHJlZmVyIGFuIGV4cGxpY2l0bHkg c2VsZWN0ZWQgZmlsZSB0byBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkIG9uZXMuCi0rYWNfc2l0ZV9m aWxlMT1OT05FCi0rYWNfc2l0ZV9maWxlMj1OT05FCi0raWYgdGVzdCAtbiAiJENPTkZJR19TSVRF IjsgdGhlbgotKyAgIyBXZSBkbyBub3Qgd2FudCBhIFBBVEggc2VhcmNoIGZvciBjb25maWcuc2l0 ZS4KLSsgIGNhc2UgJENPTkZJR19TSVRFIGluICMoKAotKyAgICAtKikgIGFjX3NpdGVfZmlsZTE9 Li8kQ09ORklHX1NJVEU7OwotKyAgICAqLyopIGFjX3NpdGVfZmlsZTE9JENPTkZJR19TSVRFOzsK LSsgICAgKikgICBhY19zaXRlX2ZpbGUxPS4vJENPTkZJR19TSVRFOzsKLSsgIGVzYWMKLStlbGlm IHRlc3QgIngkcHJlZml4IiAhPSB4Tk9ORTsgdGhlbgotKyAgYWNfc2l0ZV9maWxlMT0kcHJlZml4 L3NoYXJlL2NvbmZpZy5zaXRlCi0rICBhY19zaXRlX2ZpbGUyPSRwcmVmaXgvZXRjL2NvbmZpZy5z aXRlCi0rZWxzZQotKyAgYWNfc2l0ZV9maWxlMT0kYWNfZGVmYXVsdF9wcmVmaXgvc2hhcmUvY29u ZmlnLnNpdGUKLSsgIGFjX3NpdGVfZmlsZTI9JGFjX2RlZmF1bHRfcHJlZml4L2V0Yy9jb25maWcu c2l0ZQotK2ZpCi0rZm9yIGFjX3NpdGVfZmlsZSBpbiAiJGFjX3NpdGVfZmlsZTEiICIkYWNfc2l0 ZV9maWxlMiIKLStkbwotKyAgdGVzdCAieCRhY19zaXRlX2ZpbGUiID0geE5PTkUgJiYgY29udGlu dWUKLSsgIGlmIHRlc3QgL2Rldi9udWxsICE9ICIkYWNfc2l0ZV9maWxlIiAmJiB0ZXN0IC1yICIk YWNfc2l0ZV9maWxlIjsgdGhlbgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjY7fQotKyAg ICBzZWQgJ3MvXi98IC8nICIkYWNfc2l0ZV9maWxlIiA+JjUKLSsgICAgLiAiJGFjX3NpdGVfZmls ZSIgXAotKyAgICAgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBp biBcYCRhY19wd2QnOiIgPiYyO30KLSthc19mbl9lcnJvciAkPyAiZmFpbGVkIHRvIGxvYWQgc2l0 ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZQotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFp bHMiICIkTElORU5PIiA1OyB9Ci0rICBmaQotK2RvbmUKLSsKLStpZiB0ZXN0IC1yICIkY2FjaGVf ZmlsZSI7IHRoZW4KLSsgICMgU29tZSB2ZXJzaW9ucyBvZiBiYXNoIHdpbGwgZmFpbCB0byBzb3Vy Y2UgL2Rldi9udWxsIChzcGVjaWFsIGZpbGVzCi0rICAjIGFjdHVhbGx5KSwgc28gd2UgYXZvaWQg ZG9pbmcgdGhhdC4gIERKR1BQIGVtdWxhdGVzIGl0IGFzIGEgcmVndWxhciBmaWxlLgotKyAgaWYg dGVzdCAvZGV2L251bGwgIT0gIiRjYWNoZV9maWxlIiAmJiB0ZXN0IC1mICIkY2FjaGVfZmlsZSI7 IHRoZW4KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBsb2Fk aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBsb2FkaW5nIGNh Y2hlICRjYWNoZV9maWxlIiA+JjY7fQotKyAgICBjYXNlICRjYWNoZV9maWxlIGluCi0rICAgICAg W1xcL10qIHwgPzpbXFwvXSogKSAuICIkY2FjaGVfZmlsZSI7OwotKyAgICAgICopICAgICAgICAg ICAgICAgICAgICAgIC4gIi4vJGNhY2hlX2ZpbGUiOzsKLSsgICAgZXNhYwotKyAgZmkKLStlbHNl Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNyZWF0aW5nIGNh Y2hlICRjYWNoZV9maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBjcmVhdGluZyBjYWNoZSAk Y2FjaGVfZmlsZSIgPiY2O30KLSsgID4kY2FjaGVfZmlsZQotK2ZpCi0rCi0rIyBDaGVjayB0aGF0 IHRoZSBwcmVjaW91cyB2YXJpYWJsZXMgc2F2ZWQgaW4gdGhlIGNhY2hlIGhhdmUga2VwdCB0aGUg c2FtZQotKyMgdmFsdWUuCi0rYWNfY2FjaGVfY29ycnVwdGVkPWZhbHNlCi0rZm9yIGFjX3ZhciBp biAkYWNfcHJlY2lvdXNfdmFyczsgZG8KLSsgIGV2YWwgYWNfb2xkX3NldD1cJGFjX2N2X2Vudl8k e2FjX3Zhcn1fc2V0Ci0rICBldmFsIGFjX25ld19zZXQ9XCRhY19lbnZfJHthY192YXJ9X3NldAot KyAgZXZhbCBhY19vbGRfdmFsPVwkYWNfY3ZfZW52XyR7YWNfdmFyfV92YWx1ZQotKyAgZXZhbCBh Y19uZXdfdmFsPVwkYWNfZW52XyR7YWNfdmFyfV92YWx1ZQotKyAgY2FzZSAkYWNfb2xkX3NldCwk YWNfbmV3X3NldCBpbgotKyAgICBzZXQsKQotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRf dmFsJyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog XGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBwcmV2aW91cyBydW4i ID4mMjt9Ci0rICAgICAgYWNfY2FjaGVfY29ycnVwdGVkPTogOzsKLSsgICAgLHNldCkKLSsgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBcYCRhY192 YXInIHdhcyBub3Qgc2V0IGluIHRoZSBwcmV2aW91cyBydW4iID4mNQotKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBcYCRhY192YXInIHdhcyBub3Qgc2V0IGluIHRoZSBwcmV2aW91cyBydW4iID4m Mjt9Ci0rICAgICAgYWNfY2FjaGVfY29ycnVwdGVkPTogOzsKLSsgICAgLCk7OwotKyAgICAqKQot KyAgICAgIGlmIHRlc3QgIngkYWNfb2xkX3ZhbCIgIT0gIngkYWNfbmV3X3ZhbCI7IHRoZW4KLSsJ IyBkaWZmZXJlbmNlcyBpbiB3aGl0ZXNwYWNlIGRvIG5vdCBsZWFkIHRvIGZhaWx1cmUuCi0rCWFj X29sZF92YWxfdz1gZWNobyB4ICRhY19vbGRfdmFsYAotKwlhY19uZXdfdmFsX3c9YGVjaG8geCAk YWNfbmV3X3ZhbGAKLSsJaWYgdGVzdCAiJGFjX29sZF92YWxfdyIgIT0gIiRhY19uZXdfdmFsX3ci OyB0aGVuCi0rCSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJv cjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhl IHByZXZpb3VzIHJ1bjoiID4mMjt9Ci0rCSAgYWNfY2FjaGVfY29ycnVwdGVkPToKLSsJZWxzZQot KwkgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogd2FybmluZzogaWdu b3Jpbmcgd2hpdGVzcGFjZSBjaGFuZ2VzIGluIFxgJGFjX3Zhcicgc2luY2UgdGhlIHByZXZpb3Vz IHJ1bjoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IHdhcm5pbmc6IGlnbm9yaW5nIHdoaXRlc3Bh Y2UgY2hhbmdlcyBpbiBcYCRhY192YXInIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjI7fQot KwkgIGV2YWwgJGFjX3Zhcj1cJGFjX29sZF92YWwKLSsJZmkKLSsJeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiAgIGZvcm1lciB2YWx1ZTogIFxgJGFjX29sZF92YWwnIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiAgIGZvcm1lciB2YWx1ZTogIFxgJGFjX29sZF92YWwnIiA+ JjI7fQotKwl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICAgY3VycmVu dCB2YWx1ZTogXGAkYWNfbmV3X3ZhbCciID4mNQotKyRhc19lY2hvICIkYXNfbWU6ICAgY3VycmVu dCB2YWx1ZTogXGAkYWNfbmV3X3ZhbCciID4mMjt9Ci0rICAgICAgZmk7OwotKyAgZXNhYwotKyAg IyBQYXNzIHByZWNpb3VzIHZhcmlhYmxlcyB0byBjb25maWcuc3RhdHVzLgotKyAgaWYgdGVzdCAi JGFjX25ld19zZXQiID0gc2V0OyB0aGVuCi0rICAgIGNhc2UgJGFjX25ld192YWwgaW4KLSsgICAg KlwnKikgYWNfYXJnPSRhY192YXI9YCRhc19lY2hvICIkYWNfbmV3X3ZhbCIgfCBzZWQgInMvJy8n XFxcXFxcXFwnJy9nImAgOzsKLSsgICAgKikgYWNfYXJnPSRhY192YXI9JGFjX25ld192YWwgOzsK LSsgICAgZXNhYwotKyAgICBjYXNlICIgJGFjX2NvbmZpZ3VyZV9hcmdzICIgaW4KLSsgICAgICAq IiAnJGFjX2FyZycgIiopIDs7ICMgQXZvaWQgZHVwcy4gIFVzZSBvZiBxdW90ZXMgZW5zdXJlcyBh Y2N1cmFjeS4KLSsgICAgICAqKSBhc19mbl9hcHBlbmQgYWNfY29uZmlndXJlX2FyZ3MgIiAnJGFj X2FyZyciIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rZG9uZQotK2lmICRhY19jYWNoZV9jb3JydXB0 ZWQ7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJy b3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAk YWNfcHdkJzoiID4mMjt9Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUg YnVpbGQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZp cm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mMjt9Ci0rICBhc19mbl9lcnJvciAk PyAicnVuIFxgbWFrZSBkaXN0Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3Rh cnQgb3ZlciIgIiRMSU5FTk8iIDUKLStmaQotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0r IyMgTWFpbiBib2R5IG9mIHNjcmlwdC4gIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwot KwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0Mg LWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJEND IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJf Z251Ci0rCi0rCi0rYWNfY29uZmlnX2hlYWRlcnM9IiRhY19jb25maWdfaGVhZGVycyBzb2NpL2Nv bmZpZy5oIgotKwotKwotK2FjX2F1eF9kaXI9Ci0rZm9yIGFjX2RpciBpbiBjb25maWcgIiRzcmNk aXIiL2NvbmZpZzsgZG8KLSsgIGlmIHRlc3QgLWYgIiRhY19kaXIvaW5zdGFsbC1zaCI7IHRoZW4K LSsgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0rICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGly L2luc3RhbGwtc2ggLWMiCi0rICAgIGJyZWFrCi0rICBlbGlmIHRlc3QgLWYgIiRhY19kaXIvaW5z dGFsbC5zaCI7IHRoZW4KLSsgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0rICAgIGFjX2luc3RhbGxf c2g9IiRhY19hdXhfZGlyL2luc3RhbGwuc2ggLWMiCi0rICAgIGJyZWFrCi0rICBlbGlmIHRlc3Qg LWYgIiRhY19kaXIvc2h0b29sIjsgdGhlbgotKyAgICBhY19hdXhfZGlyPSRhY19kaXIKLSsgICAg YWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvc2h0b29sIGluc3RhbGwgLWMiCi0rICAgIGJyZWFr Ci0rICBmaQotK2RvbmUKLStpZiB0ZXN0IC16ICIkYWNfYXV4X2RpciI7IHRoZW4KLSsgIGFzX2Zu X2Vycm9yICQ/ICJjYW5ub3QgZmluZCBpbnN0YWxsLXNoLCBpbnN0YWxsLnNoLCBvciBzaHRvb2wg aW4gY29uZmlnIFwiJHNyY2RpclwiL2NvbmZpZyIgIiRMSU5FTk8iIDUKLStmaQotKwotKyMgVGhl c2UgdGhyZWUgdmFyaWFibGVzIGFyZSB1bmRvY3VtZW50ZWQgYW5kIHVuc3VwcG9ydGVkLAotKyMg YW5kIGFyZSBpbnRlbmRlZCB0byBiZSB3aXRoZHJhd24gaW4gYSBmdXR1cmUgQXV0b2NvbmYgcmVs ZWFzZS4KLSsjIFRoZXkgY2FuIGNhdXNlIHNlcmlvdXMgcHJvYmxlbXMgaWYgYSBidWlsZGVyJ3Mg c291cmNlIHRyZWUgaXMgaW4gYSBkaXJlY3RvcnkKLSsjIHdob3NlIGZ1bGwgbmFtZSBjb250YWlu cyB1bnVzdWFsIGNoYXJhY3RlcnMuCi0rYWNfY29uZmlnX2d1ZXNzPSIkU0hFTEwgJGFjX2F1eF9k aXIvY29uZmlnLmd1ZXNzIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgotK2FjX2NvbmZp Z19zdWI9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiAgIyBQbGVhc2UgZG9uJ3QgdXNl IHRoaXMgdmFyLgotK2FjX2NvbmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZ3VyZSIg ICMgUGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KLSsKLSsKLSthbV9fYXBpX3ZlcnNpb249JzEu MTEnCi0rCi0rIyBGaW5kIGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBDIHBy b2dyYW0gKGZhc3RlciksCi0rIyBzbyBvbmUgc2NyaXB0IGlzIGFzIGdvb2QgYXMgYW5vdGhlci4g IEJ1dCBhdm9pZCB0aGUgYnJva2VuIG9yCi0rIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6Ci0rIyBT eXNWIC9ldGMvaW5zdGFsbCwgL3Vzci9zYmluL2luc3RhbGwKLSsjIFN1bk9TIC91c3IvZXRjL2lu c3RhbGwKLSsjIElSSVggL3NiaW4vaW5zdGFsbAotKyMgQUlYIC9iaW4vaW5zdGFsbAotKyMgQW1p Z2FPUyAvQy9pbnN0YWxsLCB3aGljaCBpbnN0YWxscyBib290YmxvY2tzIG9uIGZsb3BweSBkaXNj cwotKyMgQUlYIDQgL3Vzci9iaW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGhv dXQgYSAtZyBmbGFnCi0rIyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2ggbWlzaGFu ZGxlcyBub25leGlzdGVudCBhcmdzCi0rIyBTVlI0IC91c3IvdWNiL2luc3RhbGwsIHdoaWNoIHRy aWVzIHRvIHVzZSB0aGUgbm9uZXhpc3RlbnQgZ3JvdXAgInN0YWZmIgotKyMgT1MvMidzIHN5c3Rl bSBpbnN0YWxsLCB3aGljaCBoYXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZW1hbnRpYwotKyMg Li9pbnN0YWxsLCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20g Li9pbnN0YWxsLnNoLgotKyMgUmVqZWN0IGluc3RhbGwgcHJvZ3JhbXMgdGhhdCBjYW5ub3QgaW5z dGFsbCBtdWx0aXBsZSBmaWxlcy4KLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gIiA+JjY7IH0K LStpZiB0ZXN0IC16ICIkSU5TVEFMTCI7IHRoZW4KLStpZiAke2FjX2N2X3BhdGhfaW5zdGFsbCs6 fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQ QVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCi0rICAgICMgQWNjb3VudCBmb3IgcGVvcGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hl cyBpbiBQQVRIIGVsZW1lbnRzLgotK2Nhc2UgJGFzX2Rpci8gaW4gIygoCi0rICAuLyB8IC4vLyB8 IC9bY0NdLyogfCBcCi0rICAvZXRjLyogfCAvdXNyL3NiaW4vKiB8IC91c3IvZXRjLyogfCAvc2Jp bi8qIHwgL3Vzci9hZnN3cy9iaW4vKiB8IFwKLSsgID86W1xcL11vczJbXFwvXWluc3RhbGxbXFwv XSogfCA/OltcXC9dT1MyW1xcL11JTlNUQUxMW1xcL10qIHwgXAotKyAgL3Vzci91Y2IvKiApIDs7 Ci0rICAqKQotKyAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVz IGZvciBpbnN0YWxsLgotKyAgICAjIERvbid0IHVzZSBpbnN0YWxsYnNkIGZyb20gT1NGIHNpbmNl IGl0IGluc3RhbGxzIHN0dWZmIGFzIHJvb3QKLSsgICAgIyBieSBkZWZhdWx0LgotKyAgICBmb3Ig YWNfcHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCi0rICAgICAgZm9yIGFjX2V4 ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rCWlmIHsgdGVzdCAt ZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k YWNfcHJvZyRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsJICBpZiB0ZXN0ICRhY19wcm9nID0gaW5z dGFsbCAmJgotKwkgICAgZ3JlcCBkc3Btc2cgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQi ID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgICAgIyBBSVggaW5zdGFsbC4gIEl0IGhhcyBhbiBp bmNvbXBhdGlibGUgY2FsbGluZyBjb252ZW50aW9uLgotKwkgICAgOgotKwkgIGVsaWYgdGVzdCAk YWNfcHJvZyA9IGluc3RhbGwgJiYKLSsJICAgIGdyZXAgcHdwbHVzICIkYXNfZGlyLyRhY19wcm9n JGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICAgICMgcHJvZ3JhbS1zcGVj aWZpYyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgotKwkgICAg OgotKwkgIGVsc2UKLSsJICAgIHJtIC1yZiBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvIGNvbmZ0 ZXN0LmRpcgotKwkgICAgZWNobyBvbmUgPiBjb25mdGVzdC5vbmUKLSsJICAgIGVjaG8gdHdvID4g Y29uZnRlc3QudHdvCi0rCSAgICBta2RpciBjb25mdGVzdC5kaXIKLSsJICAgIGlmICIkYXNfZGly LyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAtYyBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvICJgcHdk YC9jb25mdGVzdC5kaXIiICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3Qub25lICYmIHRlc3Qg LXMgY29uZnRlc3QudHdvICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3QuZGlyL2NvbmZ0ZXN0 Lm9uZSAmJgotKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC50d28KLSsJICAg IHRoZW4KLSsJICAgICAgYWNfY3ZfcGF0aF9pbnN0YWxsPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4 ZWNfZXh0IC1jIgotKwkgICAgICBicmVhayAzCi0rCSAgICBmaQotKwkgIGZpCi0rCWZpCi0rICAg ICAgZG9uZQotKyAgICBkb25lCi0rICAgIDs7Ci0rZXNhYwotKwotKyAgZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLSsKLStybSAtcmYgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5k aXIKLSsKLStmaQotKyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgICAgSU5TVEFMTD0kYWNfY3ZfcGF0aF9pbnN0YWxsCi0rICBlbHNlCi0rICAgICMg QXMgYSBsYXN0IHJlc29ydCwgdXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIERvbid0IGNhY2hl IGEKLSsgICAgIyB2YWx1ZSBmb3IgSU5TVEFMTCB3aXRoaW4gYSBzb3VyY2UgZGlyZWN0b3J5LCBi ZWNhdXNlIHRoYXQgd2lsbAotKyAgICAjIGJyZWFrIG90aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBj YWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcwotKyAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSB2YWx1 ZSBpcyBhIHJlbGF0aXZlIG5hbWUuCi0rICAgIElOU1RBTEw9JGFjX2luc3RhbGxfc2gKLSsgIGZp Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JElOU1RBTEwiID4mNQotKyRhc19lY2hvICIkSU5TVEFMTCIgPiY2OyB9Ci0rCi0rIyBVc2UgdGVz dCAteiBiZWNhdXNlIFN1bk9TNCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAke3Zhci12YWx9Lgot KyMgSXQgdGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJz dGl0dXRpb24uCi0rdGVzdCAteiAiJElOU1RBTExfUFJPR1JBTSIgJiYgSU5TVEFMTF9QUk9HUkFN PScke0lOU1RBTEx9JwotKwotK3Rlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9T Q1JJUFQ9JyR7SU5TVEFMTH0nCi0rCi0rdGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFM TF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2Fu ZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBp cyBzYW5lLi4uICIgPiY2OyB9Ci0rIyBKdXN0IGluIGNhc2UKLStzbGVlcCAxCi0rZWNobyB0aW1l c3RhbXAgPiBjb25mdGVzdC5maWxlCi0rIyBSZWplY3QgdW5zYWZlIGNoYXJhY3RlcnMgaW4gJHNy Y2RpciBvciB0aGUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3RvcnkKLSsjIG5hbWUuICBBY2NlcHQg c3BhY2UgYW5kIHRhYiBvbmx5IGluIHRoZSBsYXR0ZXIuCi0rYW1fbGY9JwotKycKLStjYXNlIGBw d2RgIGluCi0rICAqW1xcXCJcI1wkXCZcJ1xgJGFtX2xmXSopCi0rICAgIGFzX2ZuX2Vycm9yICQ/ ICJ1bnNhZmUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3RvcnkgbmFtZSIgIiRMSU5FTk8iIDU7Owot K2VzYWMKLStjYXNlICRzcmNkaXIgaW4KLSsgICpbXFxcIlwjXCRcJlwnXGAkYW1fbGZcIFwJXSop Ci0rICAgIGFzX2ZuX2Vycm9yICQ/ICJ1bnNhZmUgc3JjZGlyIHZhbHVlOiBcYCRzcmNkaXInIiAi JExJTkVOTyIgNTs7Ci0rZXNhYwotKwotKyMgRG8gYHNldCcgaW4gYSBzdWJzaGVsbCBzbyB3ZSBk b24ndCBjbG9iYmVyIHRoZSBjdXJyZW50IHNoZWxsJ3MKLSsjIGFyZ3VtZW50cy4gIE11c3QgdHJ5 IC1MIGZpcnN0IGluIGNhc2UgY29uZmlndXJlIGlzIGFjdHVhbGx5IGEKLSsjIHN5bWxpbms7IHNv bWUgc3lzdGVtcyBwbGF5IHdlaXJkIGdhbWVzIHdpdGggdGhlIG1vZCB0aW1lIG9mIHN5bWxpbmtz Ci0rIyAoZWcgRnJlZUJTRCByZXR1cm5zIHRoZSBtb2QgdGltZSBvZiB0aGUgc3ltbGluaydzIGNv bnRhaW5pbmcKLSsjIGRpcmVjdG9yeSkuCi0raWYgKAotKyAgIHNldCBYIGBscyAtTHQgIiRzcmNk aXIvY29uZmlndXJlIiBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKLSsgICBpZiB0ZXN0ICIk KiIgPSAiWCI7IHRoZW4KLSsgICAgICAjIC1MIGRpZG4ndCB3b3JrLgotKyAgICAgIHNldCBYIGBs cyAtdCAiJHNyY2Rpci9jb25maWd1cmUiIGNvbmZ0ZXN0LmZpbGVgCi0rICAgZmkKLSsgICBybSAt ZiBjb25mdGVzdC5maWxlCi0rICAgaWYgdGVzdCAiJCoiICE9ICJYICRzcmNkaXIvY29uZmlndXJl IGNvbmZ0ZXN0LmZpbGUiIFwKLSsgICAgICAmJiB0ZXN0ICIkKiIgIT0gIlggY29uZnRlc3QuZmls ZSAkc3JjZGlyL2NvbmZpZ3VyZSI7IHRoZW4KLSsKLSsgICAgICAjIElmIG5laXRoZXIgbWF0Y2hl ZCwgdGhlbiB3ZSBoYXZlIGEgYnJva2VuIGxzLiAgVGhpcyBjYW4gaGFwcGVuCi0rICAgICAgIyBp ZiwgZm9yIGluc3RhbmNlLCBDT05GSUdfU0hFTEwgaXMgYmFzaCBhbmQgaXQgaW5oZXJpdHMgYQot KyAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZyb20gdGhlIGVudmlyb25tZW50LiAgVGhpcyBoYXMg YWN0dWFsbHkKLSsgICAgICAjIGhhcHBlbmVkLiAgU3VjaCBhIHN5c3RlbSBjb3VsZCBub3QgYmUg Y29uc2lkZXJlZCAic2FuZSIuCi0rICAgICAgYXNfZm5fZXJyb3IgJD8gImxzIC10IGFwcGVhcnMg dG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KLSthbGlhcyBpbiB5b3Vy IGVudmlyb25tZW50IiAiJExJTkVOTyIgNQotKyAgIGZpCi0rCi0rICAgdGVzdCAiJDIiID0gY29u ZnRlc3QuZmlsZQotKyAgICkKLSB0aGVuCi0tICAgIGlmIFsgJDEgPSAiLWhlbHAiIC1vICQxID0g Ii0taGVscCIgXQotLSAgICB0aGVuCi0tICAgICAgICBlY2hvICdSZWNvZ25pemVkIGNvbmZpZ3Vy ZSBvcHRpb25zOicKLS0gICAgICAgIGVjaG8gJycKLS0gICAgICAgIGVjaG8gJ0luc3RhbGxhdGlv biBvcHRpb25zOicKLS0gICAgICAgIGVjaG8gJy0taW5jbHVkZS1wcmVmaXg9L3NvbWUvcGF0aCAg ICAgIC0gcGF0aCB0byBpbnN0YWxsIFNPQ0kgaGVhZGVyIGZpbGVzJwotLSAgICAgICAgZWNobyAn LS1saWItcHJlZml4PS9zb21lL3BhdGggICAgICAgICAgLSBwYXRoIHRvIGluc3RhbGwgU09DSSBs aWJyYXJpZXMnCi0tICAgICAgICBlY2hvICcnCi0tICAgICAgICBlY2hvICdNeVNRTCBvcHRpb25z OicKLS0gICAgICAgIGVjaG8gJy0tbXlzcWwtaW5jbHVkZT0vc29tZS9wYXRoICAgICAgIC0gZGly ZWN0b3J5IGNvbnRhaW5pbmcgbXlzcWwuaCcKLS0gICAgICAgIGVjaG8gJy0tbXlzcWwtbGliPS9z b21lL3BhdGggICAgICAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGlibXlzcWxjbGllbnQu W2F8c29dJwotLSAgICAgICAgZWNobyAnJwotLSAgICAgICAgZWNobyAnT3JhY2xlIG9wdGlvbnMg KGlmIE9SQUNMRV9IT01FIHZhcmlhYmxlIGlzIG5vdCBzZXQpOicKLS0gICAgICAgIGVjaG8gJy0t b3JhY2xlLWluY2x1ZGU9L3NvbWUvcGF0aCAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgb2Np LmgnCi0tICAgICAgICBlY2hvICctLW9yYWNsZS1saWI9L3NvbWUvcGF0aCAgICAgICAgICAtIGRp cmVjdG9yeSBjb250YWluaW5nIGxpYmNsbnRzaC5bYXxzb10nCi0tICAgICAgICBlY2hvICcnCi0t ICAgICAgICBlY2hvICdQb3N0Z3JlU1FMIG9wdGlvbnM6JwotLSAgICAgICAgZWNobyAnLS1wb3N0 Z3Jlc3FsLWluY2x1ZGU9L3NvbWUvcGF0aCAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJwcS9s aWJwcS1mcy5oJwotLSAgICAgICAgZWNobyAnLS1wb3N0Z3Jlc3FsLWxpYj0vc29tZS9wYXRoICAg ICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJwcS5bYXxzb10nCi0tICAgICAgICBlY2hvICcn Ci0tICAgICAgICBlY2hvICdUZXN0IHByb2dyYW1zIGNvbXBpbGF0aW9uIG9wdGlvbnMgKG5vdCBu ZWVkZWQgZm9yIGxpYnJhcnkgYnVpbGQpOicKLS0gICAgICAgIGVjaG8gJy0tYm9vc3QtaW5jbHVk ZT0vc29tZS9wYXRoICAgICAgIC0gcm9vdCBpbmNsdWRlIGRpcmVjdG9yeSBvZiBCb29zdCcKLS0g ICAgICAgIGVjaG8gJy0tYm9vc3QtbGliPS9zb21lL3BhdGggICAgICAgICAgIC0gcm9vdCBsaWIg ZGlyZWN0b3J5IG9mIEJvb3N0JwotLSAgICAgICAgZWNobyAnJwotLSAgICAgICAgZXhpdAotKyAg ICMgT2suCi0rICAgOgotK2Vsc2UKLSsgICBhc19mbl9lcnJvciAkPyAibmV3bHkgY3JlYXRlZCBm aWxlIGlzIG9sZGVyIHRoYW4gZGlzdHJpYnV0ZWQgZmlsZXMhCi0rQ2hlY2sgeW91ciBzeXN0ZW0g Y2xvY2siICIkTElORU5PIiA1Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLSt0ZXN0 ICIkcHJvZ3JhbV9wcmVmaXgiICE9IE5PTkUgJiYKLSsgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9 InMmXiYkcHJvZ3JhbV9wcmVmaXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgotKyMgVXNlIGEg ZG91YmxlICQgc28gbWFrZSBpZ25vcmVzIGl0LgotK3Rlc3QgIiRwcm9ncmFtX3N1ZmZpeCIgIT0g Tk9ORSAmJgotKyAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0icyZcJCYkcHJvZ3JhbV9zdWZmaXgm OyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgotKyMgRG91YmxlIGFueSBcIG9yICQuCi0rIyBCeSBk ZWZhdWx0IHdhcyBgcyx4LHgnLCByZW1vdmUgaXQgaWYgdXNlbGVzcy4KLSthY19zY3JpcHQ9J3Mv W1xcJF0vJiYvZztzLztzLHgseCwkLy8nCi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1gJGFzX2Vj aG8gIiRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIiB8IHNlZCAiJGFjX3NjcmlwdCJgCi0rCi0rIyBl eHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4gYWJzb2x1dGUgcGF0aAotK2FtX2F1eF9kaXI9YGNkICRh Y19hdXhfZGlyICYmIHB3ZGAKLSsKLStpZiB0ZXN0IHgiJHtNSVNTSU5HK3NldH0iICE9IHhzZXQ7 IHRoZW4KLSsgIGNhc2UgJGFtX2F1eF9kaXIgaW4KLSsgICpcICogfCAqXAkqKQotKyAgICBNSVNT SU5HPSJcJHtTSEVMTH0gXCIkYW1fYXV4X2Rpci9taXNzaW5nXCIiIDs7Ci0rICAqKQotKyAgICBN SVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIgOzsKLSsgIGVzYWMKLStmaQot KyMgVXNlIGV2YWwgdG8gZXhwYW5kICRTSEVMTAotK2lmIGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRy dWUiOyB0aGVuCi0rICBhbV9taXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgotK2Vsc2UKLSsg IGFtX21pc3NpbmdfcnVuPQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBXQVJOSU5HOiBcYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmciID4m NQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgbWlzc2luZycgc2NyaXB0IGlzIHRvbyBv bGQgb3IgbWlzc2luZyIgPiYyO30KLStmaQotKwotK2lmIHRlc3QgeCIke2luc3RhbGxfc2h9IiAh PSB4c2V0OyB0aGVuCi0rICBjYXNlICRhbV9hdXhfZGlyIGluCi0rICAqXCAqIHwgKlwJKikKLSsg ICAgaW5zdGFsbF9zaD0iXCR7U0hFTEx9ICckYW1fYXV4X2Rpci9pbnN0YWxsLXNoJyIgOzsKLSsg ICopCi0rICAgIGluc3RhbGxfc2g9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9pbnN0YWxsLXNoIgot KyAgZXNhYwotK2ZpCi0rCi0rIyBJbnN0YWxsZWQgYmluYXJpZXMgYXJlIHVzdWFsbHkgc3RyaXBw ZWQgdXNpbmcgYHN0cmlwJyB3aGVuIHRoZSB1c2VyCi0rIyBydW4gYG1ha2UgaW5zdGFsbC1zdHJp cCcuICBIb3dldmVyIGBzdHJpcCcgbWlnaHQgbm90IGJlIHRoZSByaWdodAotKyMgdG9vbCB0byB1 c2UgaW4gY3Jvc3MtY29tcGlsYXRpb24gZW52aXJvbm1lbnRzLCB0aGVyZWZvcmUgQXV0b21ha2UK LSsjIHdpbGwgaG9ub3IgdGhlIGBTVFJJUCcgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gb3ZlcnJ1 bGUgdGhpcyBwcm9ncmFtLgotK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IG5vOyB0aGVu Ci0rICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXN0cmlw OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNf d29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19TVFJJUCs6fSBmYWxzZTsgdGhlbiA6 Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRT VFJJUCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMK LSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBp biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX1NUUklQPSIke2FjX3Rvb2xf cHJlZml4fXN0cmlwIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgot KyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStT VFJJUD0kYWNfY3ZfcHJvZ19TVFJJUAotK2lmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KLSsgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkU1RSSVAiID4m NQotKyRhc19lY2hvICIkU1RSSVAiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+ JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfU1RSSVAiOyB0 aGVuCi0rICBhY19jdF9TVFJJUD0kU1RSSVAKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBv ZiAic3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBk dW1teSBzdHJpcDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X3Byb2dfYWNfY3RfU1RSSVAr On0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICBpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X1NU UklQPSIkYWNfY3RfU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vs c2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBp biAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K LSsgICAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0ic3RyaXAiCi0rICAgICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3Nh dmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X1NUUklQPSRhY19jdl9wcm9nX2FjX2N0X1NUUklQ Ci0raWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdF9TVFJJUCIgPiY1Ci0rJGFzX2Vj aG8gIiRhY19jdF9TVFJJUCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsg fQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X1NUUklQIiA9IHg7IHRoZW4KLSsgICAgU1RS SVA9IjoiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJu ZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog V0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0 IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3Qg cHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7 Ci0rZXNhYwotKyAgICBTVFJJUD0kYWNfY3RfU1RSSVAKLSsgIGZpCi0rZWxzZQotKyAgU1RSSVA9 IiRhY19jdl9wcm9nX1NUUklQIgotK2ZpCi0rCi0rZmkKLStJTlNUQUxMX1NUUklQX1BST0dSQU09 IlwkKGluc3RhbGxfc2gpIC1jIC1zIgotKwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBhIHRocmVhZC1zYWZlIG1rZGlyIC1wLi4uICIgPiY2OyB9 Ci0raWYgdGVzdCAteiAiJE1LRElSX1AiOyB0aGVuCi0rICBpZiAke2FjX2N2X3BhdGhfbWtkaXIr On0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAk UEFUSCRQQVRIX1NFUEFSQVRPUi9vcHQvc2Z3L2JpbgotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZT Ci0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfcHJvZyBpbiBt a2RpciBnbWtkaXI7IGRvCi0rCSBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KLSsJICAgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNf ZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IjsgfSB8fCBj b250aW51ZQotKwkgICBjYXNlIGAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLS12ZXJz aW9uIDI+JjFgIGluICMoCi0rCSAgICAgJ21rZGlyIChHTlUgY29yZXV0aWxzKSAnKiB8IFwKLSsJ ICAgICAnbWtkaXIgKGNvcmV1dGlscykgJyogfCBcCi0rCSAgICAgJ21rZGlyIChmaWxldXRpbHMp ICc0LjEqKQotKwkgICAgICAgYWNfY3ZfcGF0aF9ta2Rpcj0kYXNfZGlyLyRhY19wcm9nJGFjX2V4 ZWNfZXh0Ci0rCSAgICAgICBicmVhayAzOzsKLSsJICAgZXNhYwotKwkgZG9uZQotKyAgICAgICBk b25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rCi0rICB0ZXN0IC1kIC4v LS12ZXJzaW9uICYmIHJtZGlyIC4vLS12ZXJzaW9uCi0rICBpZiB0ZXN0ICIke2FjX2N2X3BhdGhf bWtkaXIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICAgTUtESVJfUD0iJGFjX2N2X3BhdGhfbWtkaXIg LXAiCi0rICBlbHNlCi0rICAgICMgQXMgYSBsYXN0IHJlc29ydCwgdXNlIHRoZSBzbG93IHNoZWxs IHNjcmlwdC4gIERvbid0IGNhY2hlIGEKLSsgICAgIyB2YWx1ZSBmb3IgTUtESVJfUCB3aXRoaW4g YSBzb3VyY2UgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQgd2lsbAotKyAgICAjIGJyZWFrIG90aGVy IHBhY2thZ2VzIHVzaW5nIHRoZSBjYWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcwotKyAgICAjIHJl bW92ZWQsIG9yIGlmIHRoZSB2YWx1ZSBpcyBhIHJlbGF0aXZlIG5hbWUuCi0rICAgIE1LRElSX1A9 IiRhY19pbnN0YWxsX3NoIC1kIgotKyAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkTUtESVJfUCIgPiY1Ci0rJGFzX2VjaG8gIiRNS0RJ Ul9QIiA+JjY7IH0KLSsKLStta2Rpcl9wPSIkTUtESVJfUCIKLStjYXNlICRta2Rpcl9wIGluCi0r ICBbXFwvJF0qIHwgPzpbXFwvXSopIDs7Ci0rICAqLyopIG1rZGlyX3A9IlwkKHRvcF9idWlsZGRp cikvJG1rZGlyX3AiIDs7Ci0rZXNhYwotKwotK2ZvciBhY19wcm9nIGluIGdhd2sgbWF3ayBuYXdr IGF3awotK2RvCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Byb2c7 IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX0FXSys6fSBmYWxzZTsgdGhlbiA6Ci0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRBV0si OyB0aGVuCi0rICBhY19jdl9wcm9nX0FXSz0iJEFXSyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK LStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNf ZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0FXSz0iJGFjX3Byb2ciCi0rICAgICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJ RlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0FXSz0kYWNfY3ZfcHJvZ19BV0sKLStpZiB0 ZXN0IC1uICIkQVdLIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRBV0siID4mNQotKyRhc19lY2hvICIkQVdLIiA+JjY7IH0KLStlbHNl Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8i ID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgIHRlc3QgLW4gIiRBV0si ICYmIGJyZWFrCi0rZG9uZQotKwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKSIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKS4u LiAiID4mNjsgfQotK3NldCB4ICR7TUFLRS1tYWtlfQotK2FjX21ha2U9YCRhc19lY2hvICIkMiIg fCBzZWQgJ3MvKy9wL2c7IHMvW15hLXpBLVowLTlfXS9fL2cnYAotK2lmIGV2YWwgXCR7YWNfY3Zf cHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0Kzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC5tYWtlIDw8XF9BQ0VPRgot K1NIRUxMID0gL2Jpbi9zaAotK2FsbDoKLSsJQGVjaG8gJ0BAQCUlJT0kKE1BS0UpPUBAQCUlJScK LStfQUNFT0YKLSsjIEdOVSBtYWtlIHNvbWV0aW1lcyBwcmludHMgIm1ha2VbMV06IEVudGVyaW5n IC4uLiIsIHdoaWNoIHdvdWxkIGNvbmZ1c2UgdXMuCi0rY2FzZSBgJHtNQUtFLW1ha2V9IC1mIGNv bmZ0ZXN0Lm1ha2UgMj4vZGV2L251bGxgIGluCi0rICAqQEBAJSUlPT8qPUBAQCUlJSopCi0rICAg IGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PXllczs7Ci0rICAqKQotKyAgICBl dmFsIGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD1ubzs7Ci0rZXNhYwotK3JtIC1mIGNv bmZ0ZXN0Lm1ha2UKLStmaQotK2lmIGV2YWwgdGVzdCBcJGFjX2N2X3Byb2dfbWFrZV8ke2FjX21h a2V9X3NldCA9IHllczsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rICBTRVRf TUFLRT0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rICBTRVRfTUFLRT0iTUFL RT0ke01BS0UtbWFrZX0iCi0rZmkKLSsKLStybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAotK21rZGly IC50c3QgMj4vZGV2L251bGwKLStpZiB0ZXN0IC1kIC50c3Q7IHRoZW4KLSsgIGFtX19sZWFkaW5n X2RvdD0uCi0rZWxzZQotKyAgYW1fX2xlYWRpbmdfZG90PV8KLStmaQotK3JtZGlyIC50c3QgMj4v ZGV2L251bGwKLSsKLStpZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiOyB0 aGVuCi0rICAjIFVzZSAtSSQoc3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4sIHNvIHRo YXQgbWFrZSdzIG91dHB1dAotKyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRlZCAiLUku IgotKyAgYW1fX2lzcmM9JyAtSSQoc3JjZGlyKScKLSsgICMgdGVzdCB0byBzZWUgaWYgc3JjZGly IGFscmVhZHkgY29uZmlndXJlZAotKyAgaWYgdGVzdCAtZiAkc3JjZGlyL2NvbmZpZy5zdGF0dXM7 IHRoZW4KLSsgICAgYXNfZm5fZXJyb3IgJD8gInNvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25m aWd1cmVkOyBydW4gXCJtYWtlIGRpc3RjbGVhblwiIHRoZXJlIGZpcnN0IiAiJExJTkVOTyIgNQot KyAgZmkKLStmaQotKwotKyMgdGVzdCB3aGV0aGVyIHdlIGhhdmUgY3lncGF0aAotK2lmIHRlc3Qg LXogIiRDWUdQQVRIX1ciOyB0aGVuCi0rICBpZiAoY3lncGF0aCAtLXZlcnNpb24pID4vZGV2L251 bGwgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgQ1lHUEFUSF9XPSdjeWdwYXRoIC13JwotKyAgZWxz ZQotKyAgICBDWUdQQVRIX1c9ZWNobwotKyAgZmkKLStmaQotKwotKwotKyMgRGVmaW5lIHRoZSBp ZGVudGl0eSBvZiB0aGUgcGFja2FnZS4KLSsgUEFDS0FHRT0nc29jaScKLSsgVkVSU0lPTj0nMy4w LjAnCi0rCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgUEFDS0FHRSAi JFBBQ0tBR0UiCi0rX0FDRU9GCi0rCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNk ZWZpbmUgVkVSU0lPTiAiJFZFUlNJT04iCi0rX0FDRU9GCi0rCi0rIyBTb21lIHRvb2xzIEF1dG9t YWtlIG5lZWRzLgotKwotK0FDTE9DQUw9JHtBQ0xPQ0FMLSIke2FtX21pc3NpbmdfcnVufWFjbG9j YWwtJHthbV9fYXBpX3ZlcnNpb259In0KLSsKLSsKLStBVVRPQ09ORj0ke0FVVE9DT05GLSIke2Ft X21pc3NpbmdfcnVufWF1dG9jb25mIn0KLSsKLSsKLStBVVRPTUFLRT0ke0FVVE9NQUtFLSIke2Ft X21pc3NpbmdfcnVufWF1dG9tYWtlLSR7YW1fX2FwaV92ZXJzaW9ufSJ9Ci0rCi0rCi0rQVVUT0hF QURFUj0ke0FVVE9IRUFERVItIiR7YW1fbWlzc2luZ19ydW59YXV0b2hlYWRlciJ9Ci0rCi0rCi0r TUFLRUlORk89JHtNQUtFSU5GTy0iJHthbV9taXNzaW5nX3J1bn1tYWtlaW5mbyJ9Ci0rCi0rIyBX ZSBuZWVkIGF3ayBmb3IgdGhlICJjaGVjayIgdGFyZ2V0LiAgVGhlIHN5c3RlbSAiYXdrIiBpcyBi YWQgb24KLSsjIHNvbWUgcGxhdGZvcm1zLgotKyMgQWx3YXlzIGRlZmluZSBBTVRBUiBmb3IgYmFj a3dhcmQgY29tcGF0aWJpbGl0eS4KLSsKLStBTVRBUj0ke0FNVEFSLSIke2FtX21pc3NpbmdfcnVu fXRhciJ9Ci0rCi0rYW1fX3Rhcj0nJHtBTVRBUn0gY2hvZiAtICIkJHRhcmRpciInOyBhbV9fdW50 YXI9JyR7QU1UQVJ9IHhmIC0nCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0 aGVyIC0td2l0aC1jcHB1bml0LXByZWZpeCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX2Nw cHVuaXRfcHJlZml4K3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhfY3BwdW5p dF9wcmVmaXg7IGNwcHVuaXRfY29uZmlnX3ByZWZpeD0iJHdpdGh2YWwiCi0rZWxzZQotKyAgY3Bw dW5pdF9jb25maWdfcHJlZml4PSIiCi0rZmkKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRo LWNwcHVuaXQtZXhlYy1wcmVmaXggd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9jcHB1bml0 X2V4ZWNfcHJlZml4K3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhfY3BwdW5p dF9leGVjX3ByZWZpeDsgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiR3aXRodmFsIgotK2Vs c2UKLSsgIGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4PSIiCi0rZmkKLSsKLSsKLSsgIGlmIHRl c3QgeCRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeCAhPSB4IDsgdGhlbgotKyAgICAgY3BwdW5p dF9jb25maWdfYXJncz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1leGVjLXByZWZpeD0kY3BwdW5p dF9jb25maWdfZXhlY19wcmVmaXgiCi0rICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3Nl dH0gIT0geHNldCA7IHRoZW4KLSsgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZp Z19leGVjX3ByZWZpeC9iaW4vY3BwdW5pdC1jb25maWcKLSsgICAgIGZpCi0rICBmaQotKyAgaWYg dGVzdCB4JGNwcHVuaXRfY29uZmlnX3ByZWZpeCAhPSB4IDsgdGhlbgotKyAgICAgY3BwdW5pdF9j b25maWdfYXJncz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1wcmVmaXg9JGNwcHVuaXRfY29uZmln X3ByZWZpeCIKLSsgICAgIGlmIHRlc3QgeCR7Q1BQVU5JVF9DT05GSUcrc2V0fSAhPSB4c2V0IDsg dGhlbgotKyAgICAgICAgQ1BQVU5JVF9DT05GSUc9JGNwcHVuaXRfY29uZmlnX3ByZWZpeC9iaW4v Y3BwdW5pdC1jb25maWcKLSsgICAgIGZpCi0rICBmaQotKwotKyAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICJjcHB1bml0LWNvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGNwcHVuaXQtY29uZmlnOyBhY193b3JkPSQyCi0reyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lm ICR7YWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhc2UgJENQUFVOSVRfQ09ORklHIGluCi0r ICBbXFwvXSogfCA/OltcXC9dKikKLSsgIGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUc9IiRDUFBV TklUX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGgu Ci0rICA7OwotKyAgKikKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK LStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNf ZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHPSIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJl YWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgdGVz dCAteiAiJGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUciICYmIGFjX2N2X3BhdGhfQ1BQVU5JVF9D T05GSUc9Im5vIgotKyAgOzsKLStlc2FjCi0rZmkKLStDUFBVTklUX0NPTkZJRz0kYWNfY3ZfcGF0 aF9DUFBVTklUX0NPTkZJRwotK2lmIHRlc3QgLW4gIiRDUFBVTklUX0NPTkZJRyI7IHRoZW4KLSsg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkQ1BQVU5J VF9DT05GSUciID4mNQotKyRhc19lY2hvICIkQ1BQVU5JVF9DT05GSUciID4mNjsgfQotK2Vsc2UK LSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIg PiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgY3BwdW5pdF92ZXJzaW9u X21pbj0xLjEwCi0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIGZvciBDcHB1bml0IC0gdmVyc2lvbiA+PSAkY3BwdW5pdF92ZXJzaW9uX21pbiIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIENwcHVuaXQgLSB2ZXJzaW9uID49ICRjcHB1 bml0X3ZlcnNpb25fbWluLi4uICIgPiY2OyB9Ci0rICBub19jcHB1bml0PSIiCi0rICBpZiB0ZXN0 ICIkQ1BQVU5JVF9DT05GSUciID0gIm5vIiA7IHRoZW4KLSsgICAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4m NjsgfQotKyAgICBub19jcHB1bml0PXllcwotKyAgZWxzZQotKyAgICBDUFBVTklUX0NGTEFHUz1g JENQUFVOSVRfQ09ORklHIC0tY2ZsYWdzYAotKyAgICBDUFBVTklUX0xJQlM9YCRDUFBVTklUX0NP TkZJRyAtLWxpYnNgCi0rICAgIENQUFVOSVRfVkVSU0lPTj1gJENQUFVOSVRfQ09ORklHIC0tdmVy c2lvbmAKLSsKLSsgICAgY3BwdW5pdF9tYWpvcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJ T04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0q XCkvXDEvJ2AKLSsgICAgY3BwdW5pdF9taW5vcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJ T04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0q XCkvXDIvJ2AKLSsgICAgY3BwdW5pdF9taWNyb192ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJ T04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0q XCkvXDMvJ2AKLSsKLSsgICAgY3BwdW5pdF9tYWpvcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lv bl9taW4gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAt OV0qXCkvXDEvJ2AKLSsgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9tYWpvcl9taW59IiA9ICJ4IiA7 IHRoZW4KLSsgICAgICAgY3BwdW5pdF9tYWpvcl9taW49MAotKyAgICBmaQotKwotKyAgICBjcHB1 bml0X21pbm9yX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAg IHNlZCAncy9cKFswLTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMi8nYAotKyAgICBpZiB0 ZXN0ICJ4JHtjcHB1bml0X21pbm9yX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0 X21pbm9yX21pbj0wCi0rICAgIGZpCi0rCi0rICAgIGNwcHVuaXRfbWljcm9fbWluPWBlY2hvICRj cHB1bml0X3ZlcnNpb25fbWluIHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChb MC05XSpcKS5cKFswLTldKlwpL1wzLydgCi0rICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWljcm9f bWlufSIgPSAieCIgOyB0aGVuCi0rICAgICAgIGNwcHVuaXRfbWljcm9fbWluPTAKLSsgICAgZmkK LSsKLSsgICAgY3BwdW5pdF92ZXJzaW9uX3Byb3Blcj1gZXhwciBcCi0rICAgICAgICAkY3BwdW5p dF9tYWpvcl92ZXJzaW9uIFw+ICRjcHB1bml0X21ham9yX21pbiBcfCBcCi0rICAgICAgICAkY3Bw dW5pdF9tYWpvcl92ZXJzaW9uIFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCi0rICAgICAgICAk Y3BwdW5pdF9taW5vcl92ZXJzaW9uIFw+ICRjcHB1bml0X21pbm9yX21pbiBcfCBcCi0rICAgICAg ICAkY3BwdW5pdF9tYWpvcl92ZXJzaW9uIFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCi0rICAg ICAgICAkY3BwdW5pdF9taW5vcl92ZXJzaW9uIFw9ICRjcHB1bml0X21pbm9yX21pbiBcJiBcCi0r ICAgICAgICAkY3BwdW5pdF9taWNyb192ZXJzaW9uIFw+PSAkY3BwdW5pdF9taWNyb19taW4gYAot KwotKyAgICBpZiB0ZXN0ICIkY3BwdW5pdF92ZXJzaW9uX3Byb3BlciIgPSAiMSIgOyB0aGVuCi0r ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRj cHB1bml0X21ham9yX3ZlcnNpb24uJGNwcHVuaXRfbWlub3JfdmVyc2lvbi4kY3BwdW5pdF9taWNy b192ZXJzaW9uIiA+JjUKLSskYXNfZWNobyAiJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3BwdW5p dF9taW5vcl92ZXJzaW9uLiRjcHB1bml0X21pY3JvX3ZlcnNpb24iID4mNjsgfQotKyAgICBlbHNl Ci0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotKyAgICAgIG5vX2NwcHVuaXQ9eWVzCi0r ICAgIGZpCi0rICBmaQotKwotKyAgaWYgdGVzdCAieCRub19jcHB1bml0IiA9IHggOyB0aGVuCi0r ICAgICA6Ci0rICBlbHNlCi0rICAgICBDUFBVTklUX0NGTEFHUz0iIgotKyAgICAgQ1BQVU5JVF9M SUJTPSIiCi0rICAgICA6Ci0rICBmaQotKwotKwotKwotKwotKwotKyBpZiB0ZXN0ICJ4JENQUFVO SVRfTElCUyIgIT0geDsgdGhlbgotKyAgSEFWRV9DUFBVTklUX1RSVUU9Ci0rICBIQVZFX0NQUFVO SVRfRkFMU0U9JyMnCi0rZWxzZQotKyAgSEFWRV9DUFBVTklUX1RSVUU9JyMnCi0rICBIQVZFX0NQ UFVOSVRfRkFMU0U9Ci0rZmkKLSsKLSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHZlcnNpb25pbmcKLStH RU5FUklDX0xJQlJBUllfVkVSU0lPTj0iMzowOjAiCi0rIyAgICAgICAgICAgICAgICAgICAgICAg IHwgfCB8Ci0rIyAgICAgICAgICAgICAgICAgKy0tLS0tLSsgfCArLS0tKwotKyMgICAgICAgICAg ICAgICAgIHwgICAgICAgIHwgICAgIHwKLSsjICAgICAgICAgICAgICBjdXJyZW50OnJldmlzaW9u OmFnZQotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgIHwKLSsjICAgICAgICAgICAg ICAgICB8ICAgICAgICB8ICAgICArLSBpbmNyZW1lbnQgaWYgaW50ZXJmYWNlcyBoYXZlIGJlZW4g YWRkZWQ7Ci0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgc2V0IHRvIHplcm8g aWYgaW50ZXJmYWNlcyBoYXZlIGJlZW4KLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAg ICAgICByZW1vdmVkIG9yIGNoYW5nZWQKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICArLSBp bmNyZW1lbnQgaWYgc291cmNlIGNvZGUgaGFzIGNoYW5nZWQ7Ci0rIyAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgc2V0IHRvIHplcm8gaWYgY3VycmVudCBpcyBpbmNyZW1lbnRlZAotKyMgICAg ICAgICAgICAgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRlZCwg cmVtb3ZlZAotKyMgICAgICAgICAgICAgICAgICAgIG9yIGNoYW5nZWQKLSsKLSsKLSsjIFVwbG9h ZCBjb21tYW5kIGZvciBTb3VyY2VGb3JnZQotK1VQTE9BRF9DT01NQU5EPSJuY2Z0cHB1dCAtdiB1 cGxvYWQuc291cmNlZm9yZ2UubmV0IC9pbmNvbWluZyIKLSsKLSsKLSsjIENoZWNrIGZvciBob3N0 IGFuZCBkaXNhYmxlIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgaW4gV2luZG93cwotKyMgTWFr ZSBzdXJlIHdlIGNhbiBydW4gY29uZmlnLnN1Yi4KLSskU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZp Zy5zdWIiIHN1bjQgPi9kZXYvbnVsbCAyPiYxIHx8Ci0rICBhc19mbl9lcnJvciAkPyAiY2Fubm90 IHJ1biAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgIiRMSU5FTk8iIDUKLSsKLSt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGJ1aWxkIHN5c3Rl bSB0eXBlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZS4uLiAi ID4mNjsgfQotK2lmICR7YWNfY3ZfYnVpbGQrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19idWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMK LSt0ZXN0ICJ4JGFjX2J1aWxkX2FsaWFzIiA9IHggJiYKLSsgIGFjX2J1aWxkX2FsaWFzPWAkU0hF TEwgIiRhY19hdXhfZGlyL2NvbmZpZy5ndWVzcyJgCi0rdGVzdCAieCRhY19idWlsZF9hbGlhcyIg PSB4ICYmCi0rICBhc19mbl9lcnJvciAkPyAiY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBt dXN0IHNwZWNpZnkgb25lIiAiJExJTkVOTyIgNQotK2FjX2N2X2J1aWxkPWAkU0hFTEwgIiRhY19h dXhfZGlyL2NvbmZpZy5zdWIiICRhY19idWlsZF9hbGlhc2AgfHwKLSsgIGFzX2ZuX2Vycm9yICQ/ ICIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMgZmFpbGVkIiAi JExJTkVOTyIgNQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRhY19jdl9idWlsZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9idWlsZCIg PiY2OyB9Ci0rY2FzZSAkYWNfY3ZfYnVpbGQgaW4KLSsqLSotKikgOzsKLSsqKSBhc19mbl9lcnJv ciAkPyAiaW52YWxpZCB2YWx1ZSBvZiBjYW5vbmljYWwgYnVpbGQiICIkTElORU5PIiA1OzsKLStl c2FjCi0rYnVpbGQ9JGFjX2N2X2J1aWxkCi0rYWNfc2F2ZV9JRlM9JElGUzsgSUZTPSctJwotK3Nl dCB4ICRhY19jdl9idWlsZAotK3NoaWZ0Ci0rYnVpbGRfY3B1PSQxCi0rYnVpbGRfdmVuZG9yPSQy Ci0rc2hpZnQ7IHNoaWZ0Ci0rIyBSZW1lbWJlciwgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBJRlMg aXMgdXNlZCB0byBjcmVhdGUgJCosCi0rIyBleGNlcHQgd2l0aCBvbGQgc2hlbGxzOgotK2J1aWxk X29zPSQqCi0rSUZTPSRhY19zYXZlX0lGUwotK2Nhc2UgJGJ1aWxkX29zIGluICpcICopIGJ1aWxk X29zPWBlY2hvICIkYnVpbGRfb3MiIHwgc2VkICdzLyAvLS9nJ2A7OyBlc2FjCi0rCi0rCi0reyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3N0IHN5c3Rl bSB0eXBlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlLi4uICIg PiY2OyB9Ci0raWYgJHthY19jdl9ob3N0Kzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAieCRob3N0X2FsaWFzIiA9IHg7IHRo ZW4KLSsgIGFjX2N2X2hvc3Q9JGFjX2N2X2J1aWxkCi0rZWxzZQotKyAgYWNfY3ZfaG9zdD1gJFNI RUxMICIkYWNfYXV4X2Rpci9jb25maWcuc3ViIiAkaG9zdF9hbGlhc2AgfHwKLSsgICAgYXNfZm5f ZXJyb3IgJD8gIiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViICRob3N0X2FsaWFzIGZhaWxl ZCIgIiRMSU5FTk8iIDUKLStmaQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9ob3N0IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2 X2hvc3QiID4mNjsgfQotK2Nhc2UgJGFjX2N2X2hvc3QgaW4KLSsqLSotKikgOzsKLSsqKSBhc19m bl9lcnJvciAkPyAiaW52YWxpZCB2YWx1ZSBvZiBjYW5vbmljYWwgaG9zdCIgIiRMSU5FTk8iIDU7 OwotK2VzYWMKLStob3N0PSRhY19jdl9ob3N0Ci0rYWNfc2F2ZV9JRlM9JElGUzsgSUZTPSctJwot K3NldCB4ICRhY19jdl9ob3N0Ci0rc2hpZnQKLStob3N0X2NwdT0kMQotK2hvc3RfdmVuZG9yPSQy Ci0rc2hpZnQ7IHNoaWZ0Ci0rIyBSZW1lbWJlciwgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBJRlMg aXMgdXNlZCB0byBjcmVhdGUgJCosCi0rIyBleGNlcHQgd2l0aCBvbGQgc2hlbGxzOgotK2hvc3Rf b3M9JCoKLStJRlM9JGFjX3NhdmVfSUZTCi0rY2FzZSAkaG9zdF9vcyBpbiAqXCAqKSBob3N0X29z PWBlY2hvICIkaG9zdF9vcyIgfCBzZWQgJ3MvIC8tL2cnYDs7IGVzYWMKLSsKLSsKLStjYXNlICRo b3N0IGluCi0rICAqLSotbXNkb3MqIHwgKi0qLWdvMzIqIHwgKi0qLW1pbmd3MzIqIHwgKi0qLWN5 Z3dpbiogfCAqLSotd2luZG93cyopCi0rICAgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zaGFy ZWQgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX3NoYXJlZCtzZXR9IiA9IHNldDsgdGhl biA6Ci0rICBlbmFibGV2YWw9JGVuYWJsZV9zaGFyZWQ7IHA9JHtQQUNLQUdFLWRlZmF1bHR9Ci0r ICAgIGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7Ci0r ICAgIG5vKSBlbmFibGVfc2hhcmVkPW5vIDs7Ci0rICAgICopCi0rICAgICAgZW5hYmxlX3NoYXJl ZD1ubwotKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0 aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElG Uz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7 IGRvCi0rCUlGUz0iJGx0X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhl bgotKwkgIGVuYWJsZV9zaGFyZWQ9eWVzCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICAgIElGUz0i JGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStlbHNlCi0rICBlbmFibGVfc2hh cmVkPW5vCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgIyBDaGVjayB3aGV0 aGVyIC0tZW5hYmxlLXN0YXRpYyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfc3RhdGlj K3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIGVuYWJsZXZhbD0kZW5hYmxlX3N0YXRpYzsgcD0ke1BB Q0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxl X3N0YXRpYz15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsKLSsgICAgKikKLSsg ICAgIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdv dC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2 ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBr ZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRw a2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc3RhdGljPXllcwotKwlmaQotKyAgICAgIGRv bmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZWxz ZQotKyAgZW5hYmxlX3N0YXRpYz15ZXMKLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwot KyAgICA7OwotKyAgKikKLSsgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJlZCB3YXMg Z2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuIDoKLSsg IGVuYWJsZXZhbD0kZW5hYmxlX3NoYXJlZDsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2Fz ZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsKLSsgICAgbm8p IGVuYWJsZV9zaGFyZWQ9bm8gOzsKLSsgICAgKikKLSsgICAgICBlbmFibGVfc2hhcmVkPW5vCi0r ICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21t b24gbGlzdCBzZXBhcmF0b3JzLgotKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lG U30kUEFUSF9TRVBBUkFUT1IsIgotKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJ SUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAg ZW5hYmxlX3NoYXJlZD15ZXMKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2 ZV9pZnMiCi0rICAgICAgOzsKLSsgICAgZXNhYwotK2Vsc2UKLSsgIGVuYWJsZV9zaGFyZWQ9eWVz Ci0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXN0 YXRpYyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfc3RhdGljK3NldH0iID0gc2V0OyB0 aGVuIDoKLSsgIGVuYWJsZXZhbD0kZW5hYmxlX3N0YXRpYzsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0K LSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsK LSsgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsKLSsgICAgKikKLSsgICAgIGVuYWJsZV9zdGF0 aWM9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwg dGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJ RlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFs OyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRo ZW4KLSsJICBlbmFibGVfc3RhdGljPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9 IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZWxzZQotKyAgZW5hYmxlX3N0 YXRpYz1ubwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAgIDs7Ci0rZXNhYwotKwotKyMgU2V0 IGRlZmF1bHQgbGFuZ3VhZ2UgdG8gQysrCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAk Q1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRD WFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0r YWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rYWNfZXh0PWNwcAot K2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxB R1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29u ZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFj X2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251 Ci0rCi0rCi0rIyBDaGVja3MgZm9yIHByb2dyYW1zCi0rc2F2ZV9DWFhGTEFHUz0iJENYWEZMQUdT IgotK2FjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9 JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19s aW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y3h4X2NvbXBpbGVyX2dudQotK2lmIHRlc3QgLXogIiRDWFgiOyB0aGVuCi0rICBpZiB0ZXN0IC1u ICIkQ0NDIjsgdGhlbgotKyAgICBDWFg9JENDQwotKyAgZWxzZQotKyAgICBpZiB0ZXN0IC1uICIk YWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICBmb3IgYWNfcHJvZyBpbiBnKysgYysrIGdwcCBhQ0Mg Q0MgY3h4IGNjKysgY2wuZXhlIEZDQyBLQ0MgUkNDIHhsQ19yIHhsQwotKyAgZG8KLSsgICAgIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0 IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY190b29sX3By ZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19DWFgrOn0gZmFs c2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0 ZXN0IC1uICIkQ1hYIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19DWFg9IiRDWFgiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVf SUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19DWFg9IiRhY190b29s X3ByZWZpeCRhY19wcm9nIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsg MgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkK LStDWFg9JGFjX2N2X3Byb2dfQ1hYCi0raWYgdGVzdCAtbiAiJENYWCI7IHRoZW4KLSsgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkQ1hYIiA+JjUKLSsk YXNfZWNobyAiJENYWCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQot K2ZpCi0rCi0rCi0rICAgIHRlc3QgLW4gIiRDWFgiICYmIGJyZWFrCi0rICBkb25lCi0rZmkKLStp ZiB0ZXN0IC16ICIkQ1hYIjsgdGhlbgotKyAgYWNfY3RfQ1hYPSRDWFgKLSsgIGZvciBhY19wcm9n IGluIGcrKyBjKysgZ3BwIGFDQyBDQyBjeHggY2MrKyBjbC5leGUgRkNDIEtDQyBSQ0MgeGxDX3Ig eGxDCi0rZG8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfcHJvZzsg YWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X3Byb2dfYWNfY3RfQ1hYKzp9IGZhbHNlOyB0aGVu IDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAi JGFjX2N0X0NYWCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfY3RfQ1hYIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZT PSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7 IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNf Y3RfQ1hYPSIkYWNfcHJvZyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFr IDIKLSsgIGZpCi0rZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2Zp Ci0rYWNfY3RfQ1hYPSRhY19jdl9wcm9nX2FjX2N0X0NYWAotK2lmIHRlc3QgLW4gIiRhY19jdF9D WFgiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGFjX2N0X0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9DWFgiID4mNjsgfQotK2Vs c2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBu byIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgdGVzdCAtbiAiJGFj X2N0X0NYWCIgJiYgYnJlYWsKLStkb25lCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0NYWCIgPSB4 OyB0aGVuCi0rICAgIENYWD0iZysrIgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxp bmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3 aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcg Y3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rv b2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgQ1hYPSRhY19jdF9DWFgKLSsgIGZpCi0rZmkK LSsKLSsgIGZpCi0rZmkKLSsjIFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29t cGlsZXIuCi0rJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yIEMrKyBjb21waWxlciB2ZXJzaW9uIiA+JjUKLStzZXQgWCAkYWNfY29tcGlsZQotK2FjX2Nv bXBpbGVyPSQyCi0rZm9yIGFjX29wdGlvbiBpbiAtLXZlcnNpb24gLXYgLVYgLXF2ZXJzaW9uOyBk bwotKyAgeyB7IGFjX3RyeT0iJGFjX2NvbXBpbGVyICRhY19vcHRpb24gPiY1IgotK2Nhc2UgIigo JGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2Vj aG8gIiRhY190cnlfZWNobyI7IH0gPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGVyICRhY19vcHRp b24gPiY1IikgMj5jb25mdGVzdC5lcnIKLSsgIGFjX3N0YXR1cz0kPwotKyAgaWYgdGVzdCAtcyBj b25mdGVzdC5lcnI7IHRoZW4KLSsgICAgc2VkICcxMGFcCi0rLi4uIHJlc3Qgb2Ygc3RkZXJyIG91 dHB1dCBkZWxldGVkIC4uLgotKyAgICAgICAgIDEwcScgY29uZnRlc3QuZXJyID5jb25mdGVzdC5l cjEKLSsgICAgY2F0IGNvbmZ0ZXN0LmVyMSA+JjUKLSsgIGZpCi0rICBybSAtZiBjb25mdGVzdC5l cjEgY29uZnRlc3QuZXJyCi0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0KLStkb25l Ci0rCi0rY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0 dXJuIDA7Ci0rfQotK19BQ0VPRgotK2FjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVz Ci0rYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyBhLm91dCBhLm91dC5kU1lNIGEuZXhl IGIub3V0IgotKyMgVHJ5IHRvIGNyZWF0ZSBhbiBleGVjdXRhYmxlIHdpdGhvdXQgLW8gZmlyc3Qs IGRpc3JlZ2FyZCBhLm91dC4KLSsjIEl0IHdpbGwgaGVscCB1cyBkaWFnbm9zZSBicm9rZW4gY29t cGlsZXJzLCBhbmQgZmluZGluZyBvdXQgYW4gaW50dWl0aW9uCi0rIyBvZiBleGVleHQuCi0reyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRo ZSBDKysgY29tcGlsZXIgd29ya3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg dGhlIEMrKyBjb21waWxlciB3b3Jrcy4uLiAiID4mNjsgfQotK2FjX2xpbmtfZGVmYXVsdD1gJGFz X2VjaG8gIiRhY19saW5rIiB8IHNlZCAncy8gLW8gKmNvbmZ0ZXN0W14gXSovLydgCi0rCi0rIyBU aGUgcG9zc2libGUgb3V0cHV0IGZpbGVzOgotK2FjX2ZpbGVzPSJhLm91dCBjb25mdGVzdC5leGUg Y29uZnRlc3QgYS5leGUgYV9vdXQuZXhlIGIub3V0IGNvbmZ0ZXN0LioiCi0rCi0rYWNfcm1maWxl cz0KLStmb3IgYWNfZmlsZSBpbiAkYWNfZmlsZXMKLStkbwotKyAgY2FzZSAkYWNfZmlsZSBpbgot KyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8 ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiApIDs7 Ci0rICAgICogKSBhY19ybWZpbGVzPSIkYWNfcm1maWxlcyAkYWNfZmlsZSI7OwotKyAgZXNhYwot K2RvbmUKLStybSAtZiAkYWNfcm1maWxlcwotKwotK2lmIHsgeyBhY190cnk9IiRhY19saW5rX2Rl ZmF1bHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0r ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5 X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKLSsgIChldmFsICIkYWNf bGlua19kZWZhdWx0IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFj X3N0YXR1cyA9IDA7IH07IHRoZW4gOgotKyAgIyBBdXRvY29uZi0yLjEzIGNvdWxkIHNldCB0aGUg YWNfY3ZfZXhlZXh0IHZhcmlhYmxlIHRvIGBubycuCi0rIyBTbyBpZ25vcmUgYSB2YWx1ZSBvZiBg bm8nLCBvdGhlcndpc2UgdGhpcyB3b3VsZCBsZWFkIHRvIGBFWEVFWFQgPSBubycKLSsjIGluIGEg TWFrZWZpbGUuICBXZSBzaG91bGQgbm90IG92ZXJyaWRlIGFjX2N2X2V4ZWV4dCBpZiBpdCB3YXMg Y2FjaGVkLAotKyMgc28gdGhhdCB0aGUgdXNlciBjYW4gc2hvcnQtY2lyY3VpdCB0aGlzIHRlc3Qg Zm9yIGNvbXBpbGVycyB1bmtub3duIHRvCi0rIyBBdXRvY29uZi4KLStmb3IgYWNfZmlsZSBpbiAk YWNfZmlsZXMgJycKLStkbwotKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCi0rICBj YXNlICRhY19maWxlIGluCi0rICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8 ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8 ICoubyB8ICoub2JqICkKLSsJOzsKLSsgICAgW2FiXS5vdXQgKQotKwkjIFdlIGZvdW5kIHRoZSBk ZWZhdWx0IGV4ZWN1dGFibGUsIGJ1dCBleGVleHQ9JycgaXMgbW9zdAotKwkjIGNlcnRhaW5seSBy aWdodC4KLSsJYnJlYWs7OwotKyAgICAqLiogKQotKwlpZiB0ZXN0ICIke2FjX2N2X2V4ZWV4dCtz ZXR9IiA9IHNldCAmJiB0ZXN0ICIkYWNfY3ZfZXhlZXh0IiAhPSBubzsKLSsJdGhlbiA6OyBlbHNl Ci0rCSAgIGFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAot KwlmaQotKwkjIFdlIHNldCBhY19jdl9leGVleHQgaGVyZSBiZWNhdXNlIHRoZSBsYXRlciB0ZXN0 IGZvciBpdCBpcyBub3QKLSsJIyBzYWZlOiBjcm9zcyBjb21waWxlcnMgbWF5IG5vdCBhZGQgdGhl IHN1ZmZpeCBpZiBnaXZlbiBhbiBgLW8nCi0rCSMgYXJndW1lbnQsIHNvIHdlIG1heSBuZWVkIHRv IGtub3cgaXQgYXQgdGhhdCBwb2ludCBhbHJlYWR5LgotKwkjIEV2ZW4gaWYgdGhpcyBzZWN0aW9u IGxvb2tzIGNydWZ0eTogaXQgaGFzIHRoZSBhZHZhbnRhZ2Ugb2YKLSsJIyBhY3R1YWxseSB3b3Jr aW5nLgotKwlicmVhazs7Ci0rICAgICogKQotKwlicmVhazs7Ci0rICBlc2FjCi0rZG9uZQotK3Rl c3QgIiRhY19jdl9leGVleHQiID0gbm8gJiYgYWNfY3ZfZXhlZXh0PQotKwotK2Vsc2UKLSsgIGFj X2ZpbGU9JycKLStmaQotK2lmIHRlc3QgLXogIiRhY19maWxlIjsgdGhlbiA6Ci0rICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19l Y2hvICJubyIgPiY2OyB9Ci0rJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotK3sgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSthc19m bl9lcnJvciA3NyAiQysrIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKLStTZWUg XGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQotK2Vsc2UKLSsg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4m NQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0 IGZpbGUgbmFtZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciBk ZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gIiA+JjY7IH0KLSt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIk YWNfZmlsZSIgPiY2OyB9Ci0rYWNfZXhlZXh0PSRhY19jdl9leGVleHQKLSsKLStybSAtZiAtciBh Lm91dCBhLm91dC5kU1lNIGEuZXhlIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dCBiLm91dAotK2FjX2Ns ZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uICIgPiY2 OyB9Ci0raWYgeyB7IGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IjsgfSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVuIDoKLSsgICMgSWYgYm90aCBgY29u ZnRlc3QuZXhlJyBhbmQgYGNvbmZ0ZXN0JyBhcmUgYHByZXNlbnQnICh3ZWxsLCBvYnNlcnZhYmxl KQotKyMgY2F0Y2ggYGNvbmZ0ZXN0LmV4ZScuICBGb3IgaW5zdGFuY2Ugd2l0aCBDeWd3aW4sIGBs cyBjb25mdGVzdCcgd2lsbAotKyMgd29yayBwcm9wZXJseSAoaS5lLiwgcmVmZXIgdG8gYGNvbmZ0 ZXN0LmV4ZScpLCB3aGlsZSBpdCB3b24ndCB3aXRoCi0rIyBgcm0nLgotK2ZvciBhY19maWxlIGlu IGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBjb25mdGVzdC4qOyBkbwotKyAgdGVzdCAtZiAiJGFjX2Zp bGUiIHx8IGNvbnRpbnVlCi0rICBjYXNlICRhY19maWxlIGluCi0rICAgICouJGFjX2V4dCB8ICou eGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5t YXAgfCAqLmluZiB8ICouZFNZTSB8ICoubyB8ICoub2JqICkgOzsKLSsgICAgKi4qICkgYWNfY3Zf ZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCi0rCSAgYnJlYWs7Owot KyAgICAqICkgYnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0rYXNfZm5f ZXJyb3IgJD8gImNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNv bXBpbGUgYW5kIGxpbmsKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJ TkVOTyIgNTsgfQotK2ZpCi0rcm0gLWYgY29uZnRlc3QgY29uZnRlc3QkYWNfY3ZfZXhlZXh0Ci0r eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9l eGVleHQiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfZXhlZXh0IiA+JjY7IH0KLSsKLStybSAtZiBj b25mdGVzdC4kYWNfZXh0Ci0rRVhFRVhUPSRhY19jdl9leGVleHQKLSthY19leGVleHQ9JEVYRUVY VAotK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQg Y29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0raW50Ci0rbWFpbiAoKQotK3sK LStGSUxFICpmID0gZm9wZW4gKCJjb25mdGVzdC5vdXQiLCAidyIpOwotKyByZXR1cm4gZmVycm9y IChmKSB8fCBmY2xvc2UgKGYpICE9IDA7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FD RU9GCi0rYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyBjb25mdGVzdC5vdXQiCi0rIyBD aGVjayB0aGF0IHRoZSBjb21waWxlciBwcm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAg SWYgbm90LCBlaXRoZXIKLSsjIHRoZSBjb21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNv bXBpbGUuCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmciID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiAiID4mNjsgfQotK2lmIHRlc3Qg IiRjcm9zc19jb21waWxpbmciICE9IHllczsgdGhlbgotKyAgeyB7IGFjX3RyeT0iJGFjX2xpbmsi Ci0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9c IiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKLSsgIChldmFsICIkYWNfbGluayIp IDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9 Ci0rICBpZiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19jdl9leGVleHQnCi0rICB7IHsgY2FzZSAi KCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKLSsgIChldmFsICIkYWNfdHJ5IikgMj4mNQotKyAg YWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IH07IHRoZW4K LSsgICAgY3Jvc3NfY29tcGlsaW5nPW5vCi0rICBlbHNlCi0rICAgIGlmIHRlc3QgIiRjcm9zc19j b21waWxpbmciID0gbWF5YmU7IHRoZW4KLSsJY3Jvc3NfY29tcGlsaW5nPXllcwotKyAgICBlbHNl Ci0rCXsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4g XGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2Qn OiIgPiYyO30KLSthc19mbl9lcnJvciAkPyAiY2Fubm90IHJ1biBDKysgY29tcGlsZWQgcHJvZ3Jh bXMuCi0rSWYgeW91IG1lYW50IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCi0rU2Vl IFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KLSsgICAgZmkK LSsgIGZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGNyb3NzX2NvbXBpbGluZyIgPiY1Ci0rJGFzX2VjaG8gIiRjcm9zc19jb21waWxpbmci ID4mNjsgfQotKwotK3JtIC1mIGNvbmZ0ZXN0LiRhY19leHQgY29uZnRlc3QkYWNfY3ZfZXhlZXh0 IGNvbmZ0ZXN0Lm91dAotK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCi0reyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Igc3VmZml4 IG9mIG9iamVjdCBmaWxlcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBv ZiBvYmplY3QgZmlsZXMuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X29iamV4dCs6fSBmYWxzZTsg dGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCBjb25m ZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStybSAtZiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iagotK2lmIHsgeyBhY190cnk9IiRh Y19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFj X3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyI7IH0gPiY1Ci0rICAoZXZhbCAi JGFjX2NvbXBpbGUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNf c3RhdHVzID0gMDsgfTsgdGhlbiA6Ci0rICBmb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5vIGNvbmZ0 ZXN0Lm9iaiBjb25mdGVzdC4qOyBkbwotKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVl OwotKyAgY2FzZSAkYWNfZmlsZSBpbgotKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMg fCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAq LmRTWU0gKSA7OwotKyAgICAqKSBhY19jdl9vYmpleHQ9YGV4cHIgIiRhY19maWxlIiA6ICcuKlwu XCguKlwpJ2AKLSsgICAgICAgYnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0reyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK2FzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgY29t cHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQotK1NlZSBcYGNvbmZp Zy5sb2cnIGZvciBtb3JlIGRldGFpbHMiICIkTElORU5PIiA1OyB9Ci0rZmkKLStybSAtZiBjb25m dGVzdC4kYWNfY3Zfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+JjUKLSsk YXNfZWNobyAiJGFjX2N2X29iamV4dCIgPiY2OyB9Ci0rT0JKRVhUPSRhY19jdl9vYmpleHQKLSth Y19vYmpleHQ9JE9CSkVYVAotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQysr IGNvbXBpbGVyLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9jeHhfY29tcGlsZXJfZ251Kzp9IGZh bHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0 IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKyNpZm5kZWYgX19HTlVDX18KLSsgICAg ICAgY2hva2UgbWUKLSsjZW5kaWYKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YK LStpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGFjX2NvbXBp bGVyX2dudT15ZXMKLStlbHNlCi0rICBhY19jb21waWxlcl9nbnU9bm8KLStmaQotK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2Fj X2N2X2N4eF9jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQotKwotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9jeHhfY29tcGls ZXJfZ251IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2N4eF9jb21waWxlcl9nbnUiID4mNjsgfQot K2lmIHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgotKyAgR1hYPXllcwotK2Vsc2UK LSsgIEdYWD0KLStmaQotK2FjX3Rlc3RfQ1hYRkxBR1M9JHtDWFhGTEFHUytzZXR9Ci0rYWNfc2F2 ZV9DWFhGTEFHUz0kQ1hYRkxBR1MKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyICRDWFggYWNjZXB0cyAtZy4uLiAiID4mNjsgfQotK2lmICR7YWNf Y3ZfcHJvZ19jeHhfZys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnPSRhY19jeHhfd2Vycm9yX2Zs YWcKLSsgICBhY19jeHhfd2Vycm9yX2ZsYWc9eWVzCi0rICAgYWNfY3ZfcHJvZ19jeHhfZz1ubwot KyAgIENYWEZMQUdTPSItZyIKLSsgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVz dC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7 Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9j b21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rICBhY19jdl9wcm9nX2N4eF9nPXllcwotK2Vsc2UK LSsgIENYWEZMQUdTPSIiCi0rICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRl c3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0r ewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlf Y29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgotKwotK2Vsc2UKLSsgIGFjX2N4eF93ZXJyb3JfZmxh Zz0kYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWcKLSsJIENYWEZMQUdTPSItZyIKLSsJIGNhdCBjb25m ZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGFj X2N2X3Byb2dfY3h4X2c9eWVzCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAg YWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZwotK2ZpCi0reyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9wcm9nX2N4 eF9nIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3Byb2dfY3h4X2ciID4mNjsgfQotK2lmIHRlc3Qg IiRhY190ZXN0X0NYWEZMQUdTIiA9IHNldDsgdGhlbgotKyAgQ1hYRkxBR1M9JGFjX3NhdmVfQ1hY RkxBR1MKLStlbGlmIHRlc3QgJGFjX2N2X3Byb2dfY3h4X2cgPSB5ZXM7IHRoZW4KLSsgIGlmIHRl c3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgIENYWEZMQUdTPSItZyAtTzIiCi0rICBlbHNlCi0r ICAgIENYWEZMQUdTPSItZyIKLSsgIGZpCi0rZWxzZQotKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7 IHRoZW4KLSsgICAgQ1hYRkxBR1M9Ii1PMiIKLSsgIGVsc2UKLSsgICAgQ1hYRkxBR1M9Ci0rICBm aQotK2ZpCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29t cGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwot K2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1Mg JExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRh Y19jdl9jeHhfY29tcGlsZXJfZ251Ci0rREVQRElSPSIke2FtX19sZWFkaW5nX2RvdH1kZXBzIgot KwotK2FjX2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyBkZXBmaWxlcyIKLSsK LSsKLSthbV9tYWtlPSR7TUFLRS1tYWtlfQotK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKLSthbV9f ZG9pdDoKLSsJQGVjaG8gdGhpcyBpcyB0aGUgYW1fX2RvaXQgdGFyZ2V0Ci0rLlBIT05ZOiBhbV9f ZG9pdAotK0VORAotKyMgSWYgd2UgZG9uJ3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVz dCBjb21tZW50IG91dCB0aGUgY29kZS4KLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21ha2Ui ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkg JGFtX21ha2UuLi4gIiA+JjY7IH0KLSthbV9faW5jbHVkZT0iIyIKLSthbV9fcXVvdGU9Ci0rX2Ft X3Jlc3VsdD1ub25lCi0rIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLStlY2hv ICJpbmNsdWRlIGNvbmZpbmMiID4gY29uZm1mCi0rIyBJZ25vcmUgYWxsIGtpbmRzIG9mIGFkZGl0 aW9uYWwgb3V0cHV0IGZyb20gYG1ha2UnLgotK2Nhc2UgYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAy PiAvZGV2L251bGxgIGluICMoCi0rKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCi0rICBhbV9faW5j bHVkZT1pbmNsdWRlCi0rICBhbV9fcXVvdGU9Ci0rICBfYW1fcmVzdWx0PUdOVQotKyAgOzsKLStl c2FjCi0rIyBOb3cgdHJ5IEJTRCBtYWtlIHN0eWxlIGluY2x1ZGUuCi0raWYgdGVzdCAiJGFtX19p bmNsdWRlIiA9ICIjIjsgdGhlbgotKyAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5jIicgPiBjb25m bWYKLSsgICBjYXNlIGAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCBpbiAjKAot KyAgICp0aGVcIGFtX19kb2l0XCB0YXJnZXQqKQotKyAgICAgYW1fX2luY2x1ZGU9LmluY2x1ZGUK LSsgICAgIGFtX19xdW90ZT0iXCIiCi0rICAgICBfYW1fcmVzdWx0PUJTRAotKyAgICAgOzsKLSsg ICBlc2FjCi0rZmkKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJF9hbV9yZXN1bHQiID4mNQotKyRhc19lY2hvICIkX2FtX3Jlc3VsdCIgPiY2 OyB9Ci0rcm0gLWYgY29uZmluYyBjb25mbWYKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUt ZGVwZW5kZW5jeS10cmFja2luZyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfZGVwZW5k ZW5jeV90cmFja2luZytzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICBlbmFibGV2YWw9JGVuYWJsZV9k ZXBlbmRlbmN5X3RyYWNraW5nOwotK2ZpCi0rCi0raWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5j eV90cmFja2luZyIgIT0geG5vOyB0aGVuCi0rICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBj b21wIgotKyAgQU1ERVBCQUNLU0xBU0g9J1wnCi0rZmkKLSsgaWYgdGVzdCAieCRlbmFibGVfZGVw ZW5kZW5jeV90cmFja2luZyIgIT0geG5vOyB0aGVuCi0rICBBTURFUF9UUlVFPQotKyAgQU1ERVBf RkFMU0U9JyMnCi0rZWxzZQotKyAgQU1ERVBfVFJVRT0nIycKLSsgIEFNREVQX0ZBTFNFPQotK2Zp Ci0rCi0rCi0rCi0rZGVwY2M9IiRDWFgiICBhbV9jb21waWxlcl9saXN0PQotKwotK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHls ZSBvZiAkZGVwY2MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUg b2YgJGRlcGNjLi4uICIgPiY2OyB9Ci0raWYgJHthbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBp bGVyX3R5cGUrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNv bXAiOyB0aGVuCi0rICAjIFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4g IE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCi0rICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdl IGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgotKyAgIyBpbnN0YW5jZSBp dCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSsg ICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBg cHV0IHRoZSBvdXRwdXQKLSsgICMgaW4gRCcuCi0rICBta2RpciBjb25mdGVzdC5kaXIKLSsgICMg Q29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0 IGlmIHdlJ3JlCi0rICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgotKyAgY3AgIiRhbV9k ZXBjb21wIiBjb25mdGVzdC5kaXIKLSsgIGNkIGNvbmZ0ZXN0LmRpcgotKyAgIyBXZSB3aWxsIGJ1 aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCi0r ICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZv ciBpbnN0YW5jZQotKyAgIyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBv dXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKLSsgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24s IGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2llcyBpbgotKyAgIyB0aGUgY3VycmVudCBk aXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0rICAjIGRp cmVjdG9yeS4KLSsgIG1rZGlyIHN1YgotKwotKyAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21w aWxlcl90eXBlPW5vbmUKLSsgIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVu Ci0rICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMqXChbYS16QS1aMC05XSpcKSkk L1wxL3AnIDwgLi9kZXBjb21wYAotKyAgZmkKLSsgIGFtX191bml2ZXJzYWw9ZmFsc2UKLSsgIGNh c2UgIiAkZGVwY2MgIiBpbiAjKAotKyAgICAgKlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5p dmVyc2FsPXRydWUgOzsKLSsgICAgIGVzYWMKLSsKLSsgIGZvciBkZXBtb2RlIGluICRhbV9jb21w aWxlcl9saXN0OyBkbwotKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNp ZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKLSsgICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVw ZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAotKyAgICAjIHdlIHNob3Vs ZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCi0r ICAgICMKLSsgICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRl c3QsIGFzIHRoZSBjb21waWxlciBtYXkKLSsgICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdo ZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KLSsgICAgIyBUaGlzIGhhcHBl bnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCi0rICAgIDogPiBzdWIvY29uZnRl c3QuYwotKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KLSsgICAgICBlY2hvICcjaW5jbHVk ZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCi0rICAgICAgIyBVc2luZyBgOiA+ IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKLSsgICAg ICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgotKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0 JGkuaAotKyAgICBkb25lCi0rICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1 Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKLSsKLSsgICAgIyBXZSBjaGVjayB3 aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCi0rICAg ICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMg bm90IHByb3Blcmx5Ci0rICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVj dCB0aGlzLiAgQWxzbywgc29tZSBJbnRlbAotKyAgICAjIHZlcnNpb25zIGhhZCB0cm91YmxlIHdp dGggb3V0cHV0IGluIHN1YmRpcnMKLSsgICAgYW1fX29iaj1zdWIvY29uZnRlc3QuJHtPQkpFWFQt b30KLSsgICAgYW1fX21pbnVzX29iaj0iLW8gJGFtX19vYmoiCi0rICAgIGNhc2UgJGRlcG1vZGUg aW4KLSsgICAgZ2NjKQotKyAgICAgICMgVGhpcyBkZXBtb2RlIGNhdXNlcyBhIGNvbXBpbGVyIHJh Y2UgaW4gdW5pdmVyc2FsIG1vZGUuCi0rICAgICAgdGVzdCAiJGFtX191bml2ZXJzYWwiID0gZmFs c2UgfHwgY29udGludWUKLSsgICAgICA7OwotKyAgICBub3NpZGVlZmZlY3QpCi0rICAgICAgIyBh ZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5 J2xsCi0rICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAotKyAg ICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgot Kwljb250aW51ZQotKyAgICAgIGVsc2UKLSsJYnJlYWsKLSsgICAgICBmaQotKyAgICAgIDs7Ci0r ICAgIG1zdmlzdWFsY3BwIHwgbXN2Y21zeXMpCi0rICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0 IGdyb2sgYC1jIC1vJywgYnV0IGFsc28sIHRoZSBtaW51c28gdGVzdCBoYXMKLSsgICAgICAjIG5v dCBydW4geWV0LiAgVGhlc2UgZGVwbW9kZXMgYXJlIGxhdGUgZW5vdWdoIGluIHRoZSBnYW1lLCBh bmQKLSsgICAgICAjIHNvIHdlYWsgdGhhdCB0aGVpciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJl IGltcGFjdGVkLgotKyAgICAgIGFtX19vYmo9Y29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgICBh bV9fbWludXNfb2JqPQotKyAgICAgIDs7Ci0rICAgIG5vbmUpIGJyZWFrIDs7Ci0rICAgIGVzYWMK LSsgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCi0rICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3Qu YyBvYmplY3Q9JGFtX19vYmogXAotKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBk ZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAotKyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBj YyAtYyAkYW1fX21pbnVzX29iaiBzdWIvY29uZnRlc3QuYyBcCi0rICAgICAgICAgPi9kZXYvbnVs bCAyPmNvbmZ0ZXN0LmVyciAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25m dGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmgg c3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCAkYW1fX29i aiBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICAke01BS0UtbWFr ZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICAjIGljYyBkb2Vz bid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdz Ci0rICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0 ZGVyciBmb3IgYW55IG1lc3NhZ2UKLSsgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGln bm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KLSsgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4w IGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3 YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKLSsgICAg ICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgotKyAgICAgICMgICBpY2M6IENv bW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCi0rICAgICAgaWYg KGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8Ci0rICAgICAgICAgIGdyZXAg J25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVs c2UKLSsgICAgICAgIGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9k ZQotKyAgICAgICAgYnJlYWsKLSsgICAgICBmaQotKyAgICBmaQotKyAgZG9uZQotKwotKyAgY2Qg Li4KLSsgIHJtIC1yZiBjb25mdGVzdC5kaXIKLStlbHNlCi0rICBhbV9jdl9DWFhfZGVwZW5kZW5j aWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotK2ZpCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29t cGlsZXJfdHlwZSIgPiY1Ci0rJGFzX2VjaG8gIiRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBp bGVyX3R5cGUiID4mNjsgfQotK0NYWERFUE1PREU9ZGVwbW9kZT0kYW1fY3ZfQ1hYX2RlcGVuZGVu Y2llc19jb21waWxlcl90eXBlCi0rCi0rIGlmCi0rICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5 X3RyYWNraW5nIiAhPSB4bm8gXAotKyAgJiYgdGVzdCAiJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNf Y29tcGlsZXJfdHlwZSIgPSBnY2MzOyB0aGVuCi0rICBhbV9fZmFzdGRlcENYWF9UUlVFPQotKyAg YW1fX2Zhc3RkZXBDWFhfRkFMU0U9JyMnCi0rZWxzZQotKyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0n IycKLSsgIGFtX19mYXN0ZGVwQ1hYX0ZBTFNFPQotK2ZpCi0rCi0rCi0rYWNfZXh0PWNwcAotK2Fj X2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRl c3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0r eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8g cnVuIHRoZSBDKysgcHJlcHJvY2Vzc29yIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3cg dG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vzc29yLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAteiAiJENY WENQUCI7IHRoZW4KLSsgIGlmICR7YWNfY3ZfcHJvZ19DWFhDUFArOn0gZmFsc2U7IHRoZW4gOgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAgICAgIyBEb3VibGUgcXVv dGVzIGJlY2F1c2UgQ1hYQ1BQIG5lZWRzIHRvIGJlIGV4cGFuZGVkCi0rICAgIGZvciBDWFhDUFAg aW4gIiRDWFggLUUiICIvbGliL2NwcCIKLSsgICAgZG8KLSsgICAgICBhY19wcmVwcm9jX29rPWZh bHNlCi0rZm9yIGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBV c2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGli YwotKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8 bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsg ICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAg IyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidz IHBhcnNlciwKLSsgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhl cmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29u ZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18K LSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsj ZW5kaWYKLSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9j cHAgIiRMSU5FTk8iOyB0aGVuIDoKLSsKLStlbHNlCi0rICAjIEJyb2tlbjogZmFpbHMgb24gdmFs aWQgaW5wdXQuCi0rY29udGludWUKLStmaQotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC5p IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cg Y2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBh bmQgaG93LgotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAot Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStf QUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgotKyAgIyBCcm9r ZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UKLSsgICMgUGFz c2VzIGJvdGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQotK3JtIC1mIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC5pIGNvbmZ0ZXN0LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNh dXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNr aXBwZWQuCi0rcm0gLWYgY29uZnRlc3QuaSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAot K2lmICRhY19wcmVwcm9jX29rOyB0aGVuIDoKLSsgIGJyZWFrCi0rZmkKLSsKLSsgICAgZG9uZQot KyAgICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCi0rCi0rZmkKLSsgIENYWENQUD0kYWNfY3Zf cHJvZ19DWFhDUFAKLStlbHNlCi0rICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCi0rZmkKLSt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJENYWENQUCIg PiY1Ci0rJGFzX2VjaG8gIiRDWFhDUFAiID4mNjsgfQotK2FjX3ByZXByb2Nfb2s9ZmFsc2UKLStm b3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotK2RvCi0rICAjIFVzZSBhIGhl YWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCi0rICAj IHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSsgICMgUHJlZmVyIDxsaW1pdHMu aD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgIyA8bGlt aXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCi0rICAjIE9uIHRo ZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2Vy LAotKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBj YXRjaCB0aGlzIGNhc2UuCi0rICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4k YWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5j bHVkZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgot KwkJICAgICBTeW50YXggZXJyb3IKLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2NwcCAiJExJ TkVOTyI7IHRoZW4gOgotKwotK2Vsc2UKLSsgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1 dC4KLStjb250aW51ZQotK2ZpCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LmkgY29uZnRl c3QuJGFjX2V4dAotKwotKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3 aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKLSsgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cu Ci0rICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5k IGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgotK19BQ0VPRgot K2lmIGFjX2ZuX2N4eF90cnlfY3BwICIkTElORU5PIjsgdGhlbiA6Ci0rICAjIEJyb2tlbjogc3Vj Y2VzcyBvbiBpbnZhbGlkIGlucHV0LgotK2NvbnRpbnVlCi0rZWxzZQotKyAgIyBQYXNzZXMgYm90 aCB0ZXN0cy4KLSthY19wcmVwcm9jX29rPToKLSticmVhawotK2ZpCi0rcm0gLWYgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LmkgY29uZnRlc3QuJGFjX2V4dAotKwotK2RvbmUKLSsjIEJlY2F1c2Ugb2Yg YGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4K LStybSAtZiBjb25mdGVzdC5pIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0raWYgJGFj X3ByZXByb2Nfb2s7IHRoZW4gOgotKwotK2Vsc2UKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSthc19mbl9lcnJvciAkPyAi QysrIHByZXByb2Nlc3NvciBcIiRDWFhDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLStTZWUgXGBj b25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQotK2ZpCi0rCi0rYWNf ZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAt YyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRD WFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29t cGlsZXJfZ251Ci0rCi0rQ1hYRkxBR1M9IiRzYXZlX0NYWEZMQUdTIgotKwotK2Nhc2UgYHB3ZGAg aW4KLSsgICpcICogfCAqXAkqKQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IFdBUk5JTkc6IExpYnRvb2wgZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggd2hpdGVz cGFjZSBpbiBcYHB3ZFxgIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBMaWJ0b29s IGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHdoaXRlc3BhY2UgaW4gXGBwd2RcYCIgPiYyO30gOzsK LStlc2FjCi0rCi0rCi0rCi0rbWFjcm9fdmVyc2lvbj0nMi40JwotK21hY3JvX3JldmlzaW9uPScx LjMyOTMnCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rbHRtYWluPSIk YWNfYXV4X2Rpci9sdG1haW4uc2giCi0rCi0rIyBCYWNrc2xhc2hpZnkgbWV0YWNoYXJhY3RlcnMg dGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbgotKyMgZG91YmxlLXF1b3RlZCBzdHJpbmdzLgot K3NlZF9xdW90ZV9zdWJzdD0ncy9cKFsiYCRcXF1cKS9cXFwxL2cnCi0rCi0rIyBTYW1lIGFzIGFi b3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCi0rZG91YmxlX3F1b3Rl X3N1YnN0PSdzL1woWyJgXFxdXCkvXFxcMS9nJwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBk ZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaGVsbCB2YXJpYWJsZSBpbiBhCi0rIyBkb3Vi bGVfcXVvdGVfc3Vic3QnZWQgc3RyaW5nLgotK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSdzL1xcXFxc XFxcXFxcJC9cXFxcXFwkL2cnCi0rCi0rIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFu c2lvbiBvZiBhbiBlc2NhcGVkIHNpbmdsZSBxdW90ZS4KLStkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3Q9J3MvJ1wnJy8nXCdcXFxcXFxcJ1wnJy9nJwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBh dm9pZCBhY2NpZGVudGFsIGdsb2JiaW5nIGluIGV2YWxlZCBleHByZXNzaW9ucwotK25vX2dsb2Jf c3Vic3Q9J3MvXCovXFxcKi9nJwotKwotK0VDSE89J1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFwnCi0rRUNITz0kRUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPCi0r RUNITz0kRUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPJEVDSE8KLSsKLSt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGhvdyB0byBwcmludCBzdHJpbmdzIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gcHJpbnQgc3RyaW5ncy4uLiAiID4mNjsg fQotKyMgVGVzdCBwcmludCBmaXJzdCwgYmVjYXVzZSBpdCB3aWxsIGJlIGEgYnVpbHRpbiBpZiBw cmVzZW50LgotK2lmIHRlc3QgIlhgKCBwcmludCAtciAtLSAtbiApIDI+L2Rldi9udWxsYCIgPSBY LW4gJiYgXAotKyAgIHRlc3QgIlhgcHJpbnQgLXIgLS0gJEVDSE8gMj4vZGV2L251bGxgIiA9ICJY JEVDSE8iOyB0aGVuCi0rICBFQ0hPPSdwcmludCAtciAtLScKLStlbGlmIHRlc3QgIlhgcHJpbnRm ICVzICRFQ0hPIDI+L2Rldi9udWxsYCIgPSAiWCRFQ0hPIjsgdGhlbgotKyAgRUNITz0ncHJpbnRm ICVzXG4nCi0rZWxzZQotKyAgIyBVc2UgdGhpcyBmdW5jdGlvbiBhcyBhIGZhbGxiYWNrIHRoYXQg YWx3YXlzIHdvcmtzLgotKyAgZnVuY19mYWxsYmFja19lY2hvICgpCi0rICB7Ci0rICAgIGV2YWwg J2NhdCA8PF9MVEVDSE9fRU9GCi0rJDEKLStfTFRFQ0hPX0VPRicKLSsgIH0KLSsgIEVDSE89J2Z1 bmNfZmFsbGJhY2tfZWNobycKLStmaQotKwotKyMgZnVuY19lY2hvX2FsbCBhcmcuLi4KLSsjIElu dm9rZSAkRUNITyB3aXRoIGFsbCBhcmdzLCBzcGFjZS1zZXBhcmF0ZWQuCi0rZnVuY19lY2hvX2Fs bCAoKQotK3sKLSsgICAgJEVDSE8gIiIKLSt9Ci0rCi0rY2FzZSAiJEVDSE8iIGluCi0rICBwcmlu dGYqKSB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogcHJp bnRmIiA+JjUKLSskYXNfZWNobyAicHJpbnRmIiA+JjY7IH0gOzsKLSsgIHByaW50KikgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHByaW50IC1yIiA+JjUK LSskYXNfZWNobyAicHJpbnQgLXIiID4mNjsgfSA7OwotKyAgKikgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IGNhdCIgPiY1Ci0rJGFzX2VjaG8gImNhdCIg PiY2OyB9IDs7Ci0rZXNhYwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0Mg LWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJEND IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJf Z251Ci0raWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWdjYyIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Z2NjOyBh Y193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19DQys6fSBmYWxzZTsgdGhlbiA6Ci0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRDQyI7IHRo ZW4KLSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3Ig YXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRh c19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Ijsg fTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4fWdjYyIKLSsgICAg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotKyAgZG9u ZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rQ0M9JGFjX2N2X3Byb2dfQ0MKLStp ZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJENDIiA+JjUKLSskYXNfZWNobyAiJENDIiA+JjY7IH0KLStlbHNl Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8i ID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXog IiRhY19jdl9wcm9nX0NDIjsgdGhlbgotKyAgYWNfY3RfQ0M9JENDCi0rICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgImdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCi0rc2V0IGR1bW15IGdjYzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X3Byb2dfYWNf Y3RfQ0MrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStl bHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0 X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UK LSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAk UEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh c19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg JiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsg ICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iZ2NjIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK LSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwot KwotK2ZpCi0rZmkKLSthY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQwotK2lmIHRlc3QgLW4g IiRhY19jdF9DQyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQotKyRhc19lY2hvICIkYWNfY3RfQ0MiID4mNjsg fQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKyAgaWYgdGVzdCAi eCRhY19jdF9DQyIgPSB4OyB0aGVuCi0rICAgIENDPSIiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNy b3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90 IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4m Mjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBDQz0kYWNfY3RfQ0MKLSsg IGZpCi0rZWxzZQotKyAgQ0M9IiRhY19jdl9wcm9nX0NDIgotK2ZpCi0rCi0raWYgdGVzdCAteiAi JENDIjsgdGhlbgotKyAgICAgICAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVu Ci0rICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1jYyIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNf dG9vbF9wcmVmaXh9Y2M7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX0NDKzp9IGZh bHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYg dGVzdCAtbiAiJENDIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRI X1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lG UwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9w cmVmaXh9Y2MiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZv dW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBm aQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0NDPSRh Y19jdl9wcm9nX0NDCi0raWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2VjaG8gIiRD QyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0r ICBmaQotK2ZpCi0raWYgdGVzdCAteiAiJENDIjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICJjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0r c2V0IGR1bW15IGNjOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19DQys6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRl c3QgLW4gIiRDQyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotKyAgYWNfcHJvZ19yZWplY3RlZD1ubwotK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBpZiB0 ZXN0ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA9ICIvdXNyL3VjYi9jYyI7IHRoZW4K LSsgICAgICAgYWNfcHJvZ19yZWplY3RlZD15ZXMKLSsgICAgICAgY29udGludWUKLSsgICAgIGZp Ci0rICAgIGFjX2N2X3Byb2dfQ0M9ImNjIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsg ICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwot K2lmIHRlc3QgJGFjX3Byb2dfcmVqZWN0ZWQgPSB5ZXM7IHRoZW4KLSsgICMgV2UgZm91bmQgYSBi b2dvbiBpbiB0aGUgcGF0aCwgc28gbWFrZSBzdXJlIHdlIG5ldmVyIHVzZSBpdC4KLSsgIHNldCBk dW1teSAkYWNfY3ZfcHJvZ19DQwotKyAgc2hpZnQKLSsgIGlmIHRlc3QgJCMgIT0gMDsgdGhlbgot KyAgICAjIFdlIGNob3NlIGEgZGlmZmVyZW50IGNvbXBpbGVyIGZyb20gdGhlIGJvZ3VzIG9uZS4K LSsgICAgIyBIb3dldmVyLCBpdCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUsIHNvIHRoZSBib2dvbiB3 aWxsIGJlIGNob3NlbgotKyAgICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0byBqdXN0IHRoZSBiYXNl bmFtZTsgdXNlIHRoZSBmdWxsIGZpbGUgbmFtZS4KLSsgICAgc2hpZnQKLSsgICAgYWNfY3ZfcHJv Z19DQz0iJGFzX2Rpci8kYWNfd29yZCR7MSsnICd9JEAiCi0rICBmaQotK2ZpCi0rZmkKLStmaQot K0NDPSRhY19jdl9wcm9nX0NDCi0raWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2Vj aG8gIiRDQyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0r Ci0rCi0rZmkKLStpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCi0rICBpZiB0ZXN0IC1uICIkYWNfdG9v bF9wcmVmaXgiOyB0aGVuCi0rICBmb3IgYWNfcHJvZyBpbiBjbC5leGUKLSsgIGRvCi0rICAgICMg RXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfdG9vbF9w cmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X3Byb2dfQ0MrOn0gZmFs c2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0 ZXN0IC1uICIkQ0MiOyB0aGVuCi0rICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZT Ci0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19DQz0iJGFjX3Rvb2xfcHJl Zml4JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0r ICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0ND PSRhY19jdl9wcm9nX0NDCi0raWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2VjaG8g IiRDQyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0r Ci0rICAgIHRlc3QgLW4gIiRDQyIgJiYgYnJlYWsKLSsgIGRvbmUKLStmaQotK2lmIHRlc3QgLXog IiRDQyI7IHRoZW4KLSsgIGFjX2N0X0NDPSRDQwotKyAgZm9yIGFjX3Byb2cgaW4gY2wuZXhlCi0r ZG8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29y ZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4g IiA+JjY7IH0KLStpZiAke2FjX2N2X3Byb2dfYWNfY3RfQ0MrOn0gZmFsc2U7IHRoZW4gOgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3Rf Q0MiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVf SUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFj X3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5k ICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQot K2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X0ND PSRhY19jdl9wcm9nX2FjX2N0X0NDCi0raWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdF9D QyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNo byAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICB0ZXN0IC1uICIkYWNfY3RfQ0MiICYmIGJyZWFr Ci0rZG9uZQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9DQyIgPSB4OyB0aGVuCi0rICAgIENDPSIi Ci0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4K LSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklO RzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4 ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNh YwotKyAgICBDQz0kYWNfY3RfQ0MKLSsgIGZpCi0rZmkKLSsKLStmaQotKwotKwotK3Rlc3QgLXog IiRDQyIgJiYgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9y OiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFj X3B3ZCc6IiA+JjI7fQotK2FzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIg Zm91bmQgaW4gXCRQQVRICi0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscyIgIiRM SU5FTk8iIDU7IH0KLSsKLSsjIFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29t cGlsZXIuCi0rJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yIEMgY29tcGlsZXIgdmVyc2lvbiIgPiY1Ci0rc2V0IFggJGFjX2NvbXBpbGUKLSthY19jb21w aWxlcj0kMgotK2ZvciBhY19vcHRpb24gaW4gLS12ZXJzaW9uIC12IC1WIC1xdmVyc2lvbjsgZG8K LSsgIHsgeyBhY190cnk9IiRhY19jb21waWxlciAkYWNfb3B0aW9uID4mNSIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlciAkYWNfb3B0aW9u ID4mNSIpIDI+Y29uZnRlc3QuZXJyCi0rICBhY19zdGF0dXM9JD8KLSsgIGlmIHRlc3QgLXMgY29u ZnRlc3QuZXJyOyB0aGVuCi0rICAgIHNlZCAnMTBhXAotKy4uLiByZXN0IG9mIHN0ZGVyciBvdXRw dXQgZGVsZXRlZCAuLi4KLSsgICAgICAgICAxMHEnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIx Ci0rICAgIGNhdCBjb25mdGVzdC5lcjEgPiY1Ci0rICBmaQotKyAgcm0gLWYgY29uZnRlc3QuZXIx IGNvbmZ0ZXN0LmVycgotKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9Ci0rZG9uZQot KwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hl dGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIuLi4gIiA+JjY7 IH0KLStpZiAke2FjX2N2X2NfY29tcGlsZXJfZ251Kzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VP RiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLStt YWluICgpCi0rewotKyNpZm5kZWYgX19HTlVDX18KLSsgICAgICAgY2hva2UgbWUKLSsjZW5kaWYK LSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9jb21w aWxlICIkTElORU5PIjsgdGhlbiA6Ci0rICBhY19jb21waWxlcl9nbnU9eWVzCi0rZWxzZQotKyAg YWNfY29tcGlsZXJfZ251PW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSthY19jdl9jX2NvbXBpbGVyX2dudT0kYWNf Y29tcGlsZXJfZ251Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjUKLSskYXNfZWNobyAiJGFj X2N2X2NfY29tcGlsZXJfZ251IiA+JjY7IH0KLStpZiB0ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5 ZXM7IHRoZW4KLSsgIEdDQz15ZXMKLStlbHNlCi0rICBHQ0M9Ci0rZmkKLSthY190ZXN0X0NGTEFH Uz0ke0NGTEFHUytzZXR9Ci0rYWNfc2F2ZV9DRkxBR1M9JENGTEFHUwotK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAt ZyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZy4uLiAi ID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19jY19nKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfc2F2ZV9jX3dlcnJvcl9mbGFnPSRh Y19jX3dlcnJvcl9mbGFnCi0rICAgYWNfY193ZXJyb3JfZmxhZz15ZXMKLSsgICBhY19jdl9wcm9n X2NjX2c9bm8KLSsgICBDRkxBR1M9Ii1nIgotKyAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0Yg PmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFp biAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9j X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rICBhY19jdl9wcm9nX2NjX2c9eWVzCi0r ZWxzZQotKyAgQ0ZMQUdTPSIiCi0rICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29u ZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgp Ci0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5 X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsKLStlbHNlCi0rICBhY19jX3dlcnJvcl9mbGFn PSRhY19zYXZlX2Nfd2Vycm9yX2ZsYWcKLSsJIENGTEFHUz0iLWciCi0rCSBjYXQgY29uZmRlZnMu aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwot KwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9G Ci0raWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgotKyAgYWNfY3ZfcHJv Z19jY19nPXllcwotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKyAgIGFjX2Nfd2Vy cm9yX2ZsYWc9JGFjX3NhdmVfY193ZXJyb3JfZmxhZwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX2ciID4mNQotKyRh c19lY2hvICIkYWNfY3ZfcHJvZ19jY19nIiA+JjY7IH0KLStpZiB0ZXN0ICIkYWNfdGVzdF9DRkxB R1MiID0gc2V0OyB0aGVuCi0rICBDRkxBR1M9JGFjX3NhdmVfQ0ZMQUdTCi0rZWxpZiB0ZXN0ICRh Y19jdl9wcm9nX2NjX2cgPSB5ZXM7IHRoZW4KLSsgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVu Ci0rICAgIENGTEFHUz0iLWcgLU8yIgotKyAgZWxzZQotKyAgICBDRkxBR1M9Ii1nIgotKyAgZmkK LStlbHNlCi0rICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBDRkxBR1M9Ii1PMiIK LSsgIGVsc2UKLSsgICAgQ0ZMQUdTPQotKyAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IElT TyBDODkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2Vw dCBJU08gQzg5Li4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX2NjX2M4OSs6fSBmYWxzZTsg dGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2N2X3By b2dfY2NfYzg5PW5vCi0rYWNfc2F2ZV9DQz0kQ0MKLStjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9G ID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxz dGRhcmcuaD4KLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0r I2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0rLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFy ZSBzdG9sZW4gZnJvbSBSQ1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLwotK3N0cnVjdCBidWYgeyBp bnQgeDsgfTsKLStGSUxFICogKCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAq LCBpbnQpOwotK3N0YXRpYyBjaGFyICplIChwLCBpKQotKyAgICAgY2hhciAqKnA7Ci0rICAgICBp bnQgaTsKLSt7Ci0rICByZXR1cm4gcFtpXTsKLSt9Ci0rc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAo KmcpIChjaGFyICoqLCBpbnQpLCBjaGFyICoqcCwgLi4uKQotK3sKLSsgIGNoYXIgKnM7Ci0rICB2 YV9saXN0IHY7Ci0rICB2YV9zdGFydCAodixwKTsKLSsgIHMgPSBnIChwLCB2YV9hcmcgKHYsaW50 KSk7Ci0rICB2YV9lbmQgKHYpOwotKyAgcmV0dXJuIHM7Ci0rfQotKwotKy8qIE9TRiA0LjAgQ29t cGFxIGNjIGlzIHNvbWUgc29ydCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAgSXQgaGFzCi0r ICAgZnVuY3Rpb24gcHJvdG90eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhleCBjaGFy YWN0ZXIgY29uc3RhbnRzLgotKyAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJyb3IgdW5mb3J0 dW5hdGVseSwgaW5zdGVhZCBhcmUgc2lsZW50bHkgdHJlYXRlZAotKyAgIGFzICd4Jy4gIFRoZSBm b2xsb3dpbmcgaW5kdWNlcyBhbiBlcnJvciwgdW50aWwgLXN0ZCBpcyBhZGRlZCB0byBnZXQKLSsg ICBwcm9wZXIgQU5TSSBtb2RlLiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBjb21lcyBv dXQgdHJ1ZSwgZm9yIGFuCi0rICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5 IHRvIHdyaXRlICdceDAwJz09MCB0byBnZXQgc29tZXRoaW5nCi0rICAgdGhhdCdzIHRydWUgb25s eSB3aXRoIC1zdGQuICAqLwotK2ludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcgPT0gMCA/IDEgOiAt MV07Ci0rCi0rLyogSUJNIEMgNiBmb3IgQUlYIGlzIGFsbW9zdC1BTlNJIGJ5IGRlZmF1bHQsIGJ1 dCBpdCByZXBsYWNlcyBtYWNybyBwYXJhbWV0ZXJzCi0rICAgaW5zaWRlIHN0cmluZ3MgYW5kIGNo YXJhY3RlciBjb25zdGFudHMuICAqLwotKyNkZWZpbmUgRk9PKHgpICd4JwotK2ludCB4bGM2X2Nj X2FycmF5W0ZPTyhhKSA9PSAneCcgPyAxIDogLTFdOwotKwotK2ludCB0ZXN0IChpbnQgaSwgZG91 YmxlIHgpOwotK3N0cnVjdCBzMSB7aW50ICgqZikgKGludCBhKTt9OwotK3N0cnVjdCBzMiB7aW50 ICgqZikgKGRvdWJsZSBhKTt9OwotK2ludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAq KCopKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOwotK2ludCBh cmdjOwotK2NoYXIgKiphcmd2OwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGYgKGUsIGFy Z3YsIDApICE9IGFyZ3ZbMF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOwotKyAgOwot KyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2ZvciBhY19hcmcgaW4gJycgLXFsYW5nbHZsPWV4 dGM4OSAtcWxhbmdsdmw9YW5zaSAtc3RkIFwKLSsJLUFlICItQWEgLURfSFBVWF9TT1VSQ0UiICIt WGMgLURfX0VYVEVOU0lPTlNfXyIKLStkbwotKyAgQ0M9IiRhY19zYXZlX0NDICRhY19hcmciCi0r ICBpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rICBhY19jdl9wcm9n X2NjX2M4OT0kYWNfYXJnCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0Ci0rICB0ZXN0ICJ4JGFjX2N2X3Byb2dfY2NfYzg5IiAhPSAieG5vIiAmJiBicmVh awotK2RvbmUKLStybSAtZiBjb25mdGVzdC4kYWNfZXh0Ci0rQ0M9JGFjX3NhdmVfQ0MKLSsKLStm aQotKyMgQUNfQ0FDSEVfVkFMCi0rY2FzZSAieCRhY19jdl9wcm9nX2NjX2M4OSIgaW4KLSsgIHgp Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBu b25lIG5lZWRlZCIgPiY1Ci0rJGFzX2VjaG8gIm5vbmUgbmVlZGVkIiA+JjY7IH0gOzsKLSsgIHhu bykKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 IHVuc3VwcG9ydGVkIiA+JjUKLSskYXNfZWNobyAidW5zdXBwb3J0ZWQiID4mNjsgfSA7OwotKyAg KikKLSsgICAgQ0M9IiRDQyAkYWNfY3ZfcHJvZ19jY19jODkiCi0rICAgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19jODkiID4m NQotKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jY19jODkiID4mNjsgfSA7OwotK2VzYWMKLStpZiB0 ZXN0ICJ4JGFjX2N2X3Byb2dfY2NfYzg5IiAhPSB4bm87IHRoZW4gOgotKwotK2ZpCi0rCi0rYWNf ZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAt YyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRD WFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29t cGlsZXJfZ251Ci0rCi0rZGVwY2M9IiRDQyIgICBhbV9jb21waWxlcl9saXN0PQotKwotK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZGVwZW5kZW5jeSBz dHlsZSBvZiAkZGVwY2MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5 bGUgb2YgJGRlcGNjLi4uICIgPiY2OyB9Ci0raWYgJHthbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29t cGlsZXJfdHlwZSs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGlmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVw Y29tcCI7IHRoZW4KLSsgICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJl LiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKLSsgICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQg d2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9yCi0rICAjIGluc3RhbmNl IGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBnY2MgdGVzdCB3aWxsIGVuZCB1cAot KyAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5z IGBwdXQgdGhlIG91dHB1dAotKyAgIyBpbiBEJy4KLSsgIG1rZGlyIGNvbmZ0ZXN0LmRpcgotKyAg IyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQg aXQgaWYgd2UncmUKLSsgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJlY3RvcnkuCi0rICBjcCAiJGFt X2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgotKyAgY2QgY29uZnRlc3QuZGlyCi0rICAjIFdlIHdpbGwg YnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UK LSsgICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBlbmRlbmN5IG1vZGVzLiAg Rm9yIGluc3RhbmNlCi0rICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRv IG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQotKyAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlv biwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGluCi0rICAjIHRoZSBjdXJyZW50 IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGluIHRoZSBvYmplY3QKLSsgICMg ZGlyZWN0b3J5LgotKyAgbWtkaXIgc3ViCi0rCi0rICBhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29t cGlsZXJfdHlwZT1ub25lCi0rICBpZiB0ZXN0ICIkYW1fY29tcGlsZXJfbGlzdCIgPSAiIjsgdGhl bgotKyAgICAgYW1fY29tcGlsZXJfbGlzdD1gc2VkIC1uICdzL14jKlwoW2EtekEtWjAtOV0qXCkp JC9cMS9wJyA8IC4vZGVwY29tcGAKLSsgIGZpCi0rICBhbV9fdW5pdmVyc2FsPWZhbHNlCi0rICBj YXNlICIgJGRlcGNjICIgaW4gIygKLSsgICAgICpcIC1hcmNoXCAqXCAtYXJjaFwgKikgYW1fX3Vu aXZlcnNhbD10cnVlIDs7Ci0rICAgICBlc2FjCi0rCi0rICBmb3IgZGVwbW9kZSBpbiAkYW1fY29t cGlsZXJfbGlzdDsgZG8KLSsgICAgIyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5kZW5j aWVzLCBiZWNhdXNlIHNvbWUgY29tcGlsZXJzCi0rICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRl cGVuZGVuY3kgbGlzdHMgb24gY29sdW1uIDgwICh3aXRoIFwpLCBhbmQKLSsgICAgIyB3ZSBzaG91 bGQgbm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgot KyAgICAjCi0rICAgICMgV2UgbmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0 ZXN0LCBhcyB0aGUgY29tcGlsZXIgbWF5Ci0rICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3 aGVuIHRlc3Rpbmcgd2l0aCBvYnNjdXJlIGNvbW1hbmQgbGluZXMuCi0rICAgICMgVGhpcyBoYXBw ZW5zIGF0IGxlYXN0IHdpdGggdGhlIEFJWCBDIGNvbXBpbGVyLgotKyAgICA6ID4gc3ViL2NvbmZ0 ZXN0LmMKLSsgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDY7IGRvCi0rICAgICAgZWNobyAnI2luY2x1 ZGUgImNvbmZ0c3QnJGknLmgiJyA+PiBzdWIvY29uZnRlc3QuYwotKyAgICAgICMgVXNpbmcgYDog PiBzdWIvY29uZnRzdCRpLmgnIGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCi0rICAg ICAgIyBTb2xhcmlzIDgncyB7L3Vzcix9L2Jpbi9zaC4KLSsgICAgICB0b3VjaCBzdWIvY29uZnRz dCRpLmgKLSsgICAgZG9uZQotKyAgICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1z dWIvY29uZnRlc3QuUG8ke2FtX19xdW90ZX0iID4gY29uZm1mCi0rCi0rICAgICMgV2UgY2hlY2sg d2l0aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUgc2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgotKyAg ICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBjb21waWxlciBkb2Vz IG5vdCBwcm9wZXJseQotKyAgICAjIGhhbmRsZSBgLU0gLW8nLCBhbmQgd2UgbmVlZCB0byBkZXRl Y3QgdGhpcy4gIEFsc28sIHNvbWUgSW50ZWwKLSsgICAgIyB2ZXJzaW9ucyBoYWQgdHJvdWJsZSB3 aXRoIG91dHB1dCBpbiBzdWJkaXJzCi0rICAgIGFtX19vYmo9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhU LW99Ci0rICAgIGFtX19taW51c19vYmo9Ii1vICRhbV9fb2JqIgotKyAgICBjYXNlICRkZXBtb2Rl IGluCi0rICAgIGdjYykKLSsgICAgICAjIFRoaXMgZGVwbW9kZSBjYXVzZXMgYSBjb21waWxlciBy YWNlIGluIHVuaXZlcnNhbCBtb2RlLgotKyAgICAgIHRlc3QgIiRhbV9fdW5pdmVyc2FsIiA9IGZh bHNlIHx8IGNvbnRpbnVlCi0rICAgICAgOzsKLSsgICAgbm9zaWRlZWZmZWN0KQotKyAgICAgICMg YWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwgc28gdGhl eSdsbAotKyAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKLSsg ICAgICBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiA9IHh5ZXM7IHRoZW4K LSsJY29udGludWUKLSsgICAgICBlbHNlCi0rCWJyZWFrCi0rICAgICAgZmkKLSsgICAgICA7Owot KyAgICBtc3Zpc3VhbGNwcCB8IG1zdmNtc3lzKQotKyAgICAgICMgVGhpcyBjb21waWxlciB3b24n dCBncm9rIGAtYyAtbycsIGJ1dCBhbHNvLCB0aGUgbWludXNvIHRlc3QgaGFzCi0rICAgICAgIyBu b3QgcnVuIHlldC4gIFRoZXNlIGRlcG1vZGVzIGFyZSBsYXRlIGVub3VnaCBpbiB0aGUgZ2FtZSwg YW5kCi0rICAgICAgIyBzbyB3ZWFrIHRoYXQgdGhlaXIgZnVuY3Rpb25pbmcgc2hvdWxkIG5vdCBi ZSBpbXBhY3RlZC4KLSsgICAgICBhbV9fb2JqPWNvbmZ0ZXN0LiR7T0JKRVhULW99Ci0rICAgICAg YW1fX21pbnVzX29iaj0KLSsgICAgICA7OwotKyAgICBub25lKSBicmVhayA7OwotKyAgICBlc2Fj Ci0rICAgIGlmIGRlcG1vZGU9JGRlcG1vZGUgXAotKyAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0 LmMgb2JqZWN0PSRhbV9fb2JqIFwKLSsgICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1w ZGVwZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwKLSsgICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVw Y2MgLWMgJGFtX19taW51c19vYmogc3ViL2NvbmZ0ZXN0LmMgXAotKyAgICAgICAgID4vZGV2L251 bGwgMj5jb25mdGVzdC5lcnIgJiYKLSsgICAgICAgZ3JlcCBzdWIvY29uZnRzdDEuaCBzdWIvY29u ZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0Ni5o IHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAgJGFtX19v Ymogc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgJHtNQUtFLW1h a2V9IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgIyBpY2MgZG9l c24ndCBjaG9rZSBvbiB1bmtub3duIG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5n cwotKyAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBz dGRlcnIgZm9yIGFueSBtZXNzYWdlCi0rICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBp Z25vcmVkIG9yIG5vdCBzdXBwb3J0ZWQuCi0rICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcu MCBhbmQgNy4xIGNvbXBsYWluIHRodXNseToKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUg d2FybmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCi0rICAg ICAgIyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKLSsgICAgICAjICAgaWNjOiBD b21tYW5kIGxpbmUgcmVtYXJrOiBvcHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAotKyAgICAgIGlm IChncmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAotKyAgICAgICAgICBncmVw ICdub3Qgc3VwcG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBl bHNlCi0rICAgICAgICBhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9k ZQotKyAgICAgICAgYnJlYWsKLSsgICAgICBmaQotKyAgICBmaQotKyAgZG9uZQotKwotKyAgY2Qg Li4KLSsgIHJtIC1yZiBjb25mdGVzdC5kaXIKLStlbHNlCi0rICBhbV9jdl9DQ19kZXBlbmRlbmNp ZXNfY29tcGlsZXJfdHlwZT1ub25lCi0rZmkKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBp bGVyX3R5cGUiID4mNQotKyRhc19lY2hvICIkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVy X3R5cGUiID4mNjsgfQotK0NDREVQTU9ERT1kZXBtb2RlPSRhbV9jdl9DQ19kZXBlbmRlbmNpZXNf Y29tcGlsZXJfdHlwZQotKwotKyBpZgotKyAgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFj a2luZyIgIT0geG5vIFwKLSsgICYmIHRlc3QgIiRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGls ZXJfdHlwZSIgPSBnY2MzOyB0aGVuCi0rICBhbV9fZmFzdGRlcENDX1RSVUU9Ci0rICBhbV9fZmFz dGRlcENDX0ZBTFNFPScjJwotK2Vsc2UKLSsgIGFtX19mYXN0ZGVwQ0NfVFJVRT0nIycKLSsgIGFt X19mYXN0ZGVwQ0NfRkFMU0U9Ci0rZmkKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRydW5jYXRl IG91dHB1dCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBu b3QgdHJ1bmNhdGUgb3V0cHV0Li4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wYXRoX1NFRCs6fSBm YWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgICAg ICAgICAgICBhY19zY3JpcHQ9cy9hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYS9i YmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIvCi0rICAgICBmb3IgYWNfaSBpbiAxIDIg MyA0IDUgNiA3OyBkbwotKyAgICAgICBhY19zY3JpcHQ9IiRhY19zY3JpcHQkYXNfbmwkYWNfc2Ny aXB0IgotKyAgICAgZG9uZQotKyAgICAgZWNobyAiJGFjX3NjcmlwdCIgMj4vZGV2L251bGwgfCBz ZWQgOTlxID5jb25mdGVzdC5zZWQKLSsgICAgIHsgYWNfc2NyaXB0PTsgdW5zZXQgYWNfc2NyaXB0 O30KLSsgICAgIGlmIHRlc3QgLXogIiRTRUQiOyB0aGVuCi0rICBhY19wYXRoX1NFRF9mb3VuZD1m YWxzZQotKyAgIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBlYWNo IG9mIFBST0dOQU1FLUxJU1QKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19wcm9nIGluIHNlZCBnc2Vk OyBkbwotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9u czsgZG8KLSsgICAgICBhY19wYXRoX1NFRD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIK LSsgICAgICB7IHRlc3QgLWYgIiRhY19wYXRoX1NFRCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhf U0VEIjsgfSB8fCBjb250aW51ZQotKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX1NFRCBhbmQgc2Vs ZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgotKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX1NFRAot K2Nhc2UgYCIkYWNfcGF0aF9TRUQiIC0tdmVyc2lvbiAyPiYxYCBpbgotKypHTlUqKQotKyAgYWNf Y3ZfcGF0aF9TRUQ9IiRhY19wYXRoX1NFRCIgYWNfcGF0aF9TRURfZm91bmQ9Ojs7Ci0rKikKLSsg IGFjX2NvdW50PTAKLSsgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgotKyAg d2hpbGUgOgotKyAgZG8KLSsgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNv bmZ0ZXN0LnRtcCIKLSsgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgotKyAgICBj cCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKLSsgICAgJGFzX2VjaG8gJycgPj4gImNvbmZ0 ZXN0Lm5sIgotKyAgICAiJGFjX3BhdGhfU0VEIiAtZiBjb25mdGVzdC5zZWQgPCAiY29uZnRlc3Qu bmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhawotKyAgICBkaWZmICJjb25m dGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCi0rICAgIGFz X2ZuX2FyaXRoICRhY19jb3VudCArIDEgJiYgYWNfY291bnQ9JGFzX3ZhbAotKyAgICBpZiB0ZXN0 ICRhY19jb3VudCAtZ3QgJHthY19wYXRoX1NFRF9tYXgtMH07IHRoZW4KLSsgICAgICAjIEJlc3Qg b25lIHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBhIGJldHRlciBvbmUKLSsg ICAgICBhY19jdl9wYXRoX1NFRD0iJGFjX3BhdGhfU0VEIgotKyAgICAgIGFjX3BhdGhfU0VEX21h eD0kYWNfY291bnQKLSsgICAgZmkKLSsgICAgIyAxMCooMl4xMCkgY2hhcnMgYXMgaW5wdXQgc2Vl bXMgbW9yZSB0aGFuIGVub3VnaAotKyAgICB0ZXN0ICRhY19jb3VudCAtZ3QgMTAgJiYgYnJlYWsK LSsgIGRvbmUKLSsgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5ubCBj b25mdGVzdC5vdXQ7OwotK2VzYWMKLSsKLSsgICAgICAkYWNfcGF0aF9TRURfZm91bmQgJiYgYnJl YWsgMwotKyAgICBkb25lCi0rICBkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKyAg aWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfU0VEIjsgdGhlbgotKyAgICBhc19mbl9lcnJvciAkPyAi bm8gYWNjZXB0YWJsZSBzZWQgY291bGQgYmUgZm91bmQgaW4gXCRQQVRIIiAiJExJTkVOTyIgNQot KyAgZmkKLStlbHNlCi0rICBhY19jdl9wYXRoX1NFRD0kU0VECi0rZmkKLSsKLStmaQotK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfcGF0aF9T RUQiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9TRUQiID4mNjsgfQotKyBTRUQ9IiRhY19j dl9wYXRoX1NFRCIKLSsgIHJtIC1mIGNvbmZ0ZXN0LnNlZAotKwotK3Rlc3QgLXogIiRTRUQiICYm IFNFRD1zZWQKLStYc2VkPSIkU0VEIC1lIDFzL15YLy8iCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAtZS4u LiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcGF0aF9HUkVQKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAteiAiJEdSRVAiOyB0 aGVuCi0rICBhY19wYXRoX0dSRVBfZm91bmQ9ZmFsc2UKLSsgICMgTG9vcCB0aHJvdWdoIHRoZSB1 c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCi0rICBhc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRI X1NFUEFSQVRPUi91c3IveHBnNC9iaW4KLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX3Byb2cgaW4gZ3JlcCBnZ3Jl cDsgZG8KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCi0rICAgICAgYWNfcGF0aF9HUkVQPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0 IgotKyAgICAgIHsgdGVzdCAtZiAiJGFjX3BhdGhfR1JFUCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3Bh dGhfR1JFUCI7IH0gfHwgY29udGludWUKLSsjIENoZWNrIGZvciBHTlUgYWNfcGF0aF9HUkVQIGFu ZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCi0rICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhf R1JFUAotK2Nhc2UgYCIkYWNfcGF0aF9HUkVQIiAtLXZlcnNpb24gMj4mMWAgaW4KLSsqR05VKikK LSsgIGFjX2N2X3BhdGhfR1JFUD0iJGFjX3BhdGhfR1JFUCIgYWNfcGF0aF9HUkVQX2ZvdW5kPTo7 OwotKyopCi0rICBhY19jb3VudD0wCi0rICAkYXNfZWNob19uIDAxMjM0NTY3ODkgPiJjb25mdGVz dC5pbiIKLSsgIHdoaWxlIDoKLSsgIGRvCi0rICAgIGNhdCAiY29uZnRlc3QuaW4iICJjb25mdGVz dC5pbiIgPiJjb25mdGVzdC50bXAiCi0rICAgIG12ICJjb25mdGVzdC50bXAiICJjb25mdGVzdC5p biIKLSsgICAgY3AgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QubmwiCi0rICAgICRhc19lY2hvICdH UkVQJyA+PiAiY29uZnRlc3QubmwiCi0rICAgICIkYWNfcGF0aF9HUkVQIiAtZSAnR1JFUCQnIC1l ICctKGNhbm5vdCBtYXRjaCktJyA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rl di9udWxsIHx8IGJyZWFrCi0rICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+ L2Rldi9udWxsIDI+JjEgfHwgYnJlYWsKLSsgICAgYXNfZm5fYXJpdGggJGFjX2NvdW50ICsgMSAm JiBhY19jb3VudD0kYXNfdmFsCi0rICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhf R1JFUF9tYXgtMH07IHRoZW4KLSsgICAgICAjIEJlc3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQg a2VlcCBsb29raW5nIGZvciBhIGJldHRlciBvbmUKLSsgICAgICBhY19jdl9wYXRoX0dSRVA9IiRh Y19wYXRoX0dSRVAiCi0rICAgICAgYWNfcGF0aF9HUkVQX21heD0kYWNfY291bnQKLSsgICAgZmkK LSsgICAgIyAxMCooMl4xMCkgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAot KyAgICB0ZXN0ICRhY19jb3VudCAtZ3QgMTAgJiYgYnJlYWsKLSsgIGRvbmUKLSsgIHJtIC1mIGNv bmZ0ZXN0LmluIGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5ubCBjb25mdGVzdC5vdXQ7OwotK2VzYWMK LSsKLSsgICAgICAkYWNfcGF0aF9HUkVQX2ZvdW5kICYmIGJyZWFrIDMKLSsgICAgZG9uZQotKyAg ZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsgIGlmIHRlc3QgLXogIiRhY19jdl9w YXRoX0dSRVAiOyB0aGVuCi0rICAgIGFzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIGdyZXAg Y291bGQgYmUgZm91bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiAiJExJ TkVOTyIgNQotKyAgZmkKLStlbHNlCi0rICBhY19jdl9wYXRoX0dSRVA9JEdSRVAKLStmaQotKwot K2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh Y19jdl9wYXRoX0dSRVAiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9HUkVQIiA+JjY7IH0K LSsgR1JFUD0iJGFjX2N2X3BhdGhfR1JFUCIKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBlZ3JlcCIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIGVncmVwLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wYXRoX0VHUkVQKzp9 IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg aWYgZWNobyBhIHwgJEdSRVAgLUUgJyhhfGIpJyA+L2Rldi9udWxsIDI+JjEKLSsgICB0aGVuIGFj X2N2X3BhdGhfRUdSRVA9IiRHUkVQIC1FIgotKyAgIGVsc2UKLSsgICAgIGlmIHRlc3QgLXogIiRF R1JFUCI7IHRoZW4KLSsgIGFjX3BhdGhfRUdSRVBfZm91bmQ9ZmFsc2UKLSsgICMgTG9vcCB0aHJv dWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCi0r ICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAk UEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4KLStkbwotKyAgSUZTPSRhc19zYXZlX0lG UwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX3Byb2cgaW4g ZWdyZXA7IGRvCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRl bnNpb25zOyBkbwotKyAgICAgIGFjX3BhdGhfRUdSRVA9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhl Y19leHQiCi0rICAgICAgeyB0ZXN0IC1mICIkYWNfcGF0aF9FR1JFUCIgJiYgJGFzX3Rlc3RfeCAi JGFjX3BhdGhfRUdSRVAiOyB9IHx8IGNvbnRpbnVlCi0rIyBDaGVjayBmb3IgR05VIGFjX3BhdGhf RUdSRVAgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsgICMgQ2hlY2sgZm9yIEdOVSAk YWNfcGF0aF9FR1JFUAotK2Nhc2UgYCIkYWNfcGF0aF9FR1JFUCIgLS12ZXJzaW9uIDI+JjFgIGlu Ci0rKkdOVSopCi0rICBhY19jdl9wYXRoX0VHUkVQPSIkYWNfcGF0aF9FR1JFUCIgYWNfcGF0aF9F R1JFUF9mb3VuZD06OzsKLSsqKQotKyAgYWNfY291bnQ9MAotKyAgJGFzX2VjaG9fbiAwMTIzNDU2 Nzg5ID4iY29uZnRlc3QuaW4iCi0rICB3aGlsZSA6Ci0rICBkbwotKyAgICBjYXQgImNvbmZ0ZXN0 LmluIiAiY29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgotKyAgICBtdiAiY29uZnRlc3QudG1w IiAiY29uZnRlc3QuaW4iCi0rICAgIGNwICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lm5sIgotKyAg ICAkYXNfZWNobyAnRUdSRVAnID4+ICJjb25mdGVzdC5ubCIKLSsgICAgIiRhY19wYXRoX0VHUkVQ IiAnRUdSRVAkJyA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8 IGJyZWFrCi0rICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rldi9udWxs IDI+JjEgfHwgYnJlYWsKLSsgICAgYXNfZm5fYXJpdGggJGFjX2NvdW50ICsgMSAmJiBhY19jb3Vu dD0kYXNfdmFsCi0rICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfRUdSRVBfbWF4 LTB9OyB0aGVuCi0rICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUgaXQgYnV0IGtlZXAgbG9v a2luZyBmb3IgYSBiZXR0ZXIgb25lCi0rICAgICAgYWNfY3ZfcGF0aF9FR1JFUD0iJGFjX3BhdGhf RUdSRVAiCi0rICAgICAgYWNfcGF0aF9FR1JFUF9tYXg9JGFjX2NvdW50Ci0rICAgIGZpCi0rICAg ICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKLSsgICAg dGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCi0rICBkb25lCi0rICBybSAtZiBjb25mdGVz dC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qub3V0OzsKLStlc2FjCi0rCi0r ICAgICAgJGFjX3BhdGhfRUdSRVBfZm91bmQgJiYgYnJlYWsgMwotKyAgICBkb25lCi0rICBkb25l Ci0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKyAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhf RUdSRVAiOyB0aGVuCi0rICAgIGFzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIGVncmVwIGNv dWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgIiRMSU5F Tk8iIDUKLSsgIGZpCi0rZWxzZQotKyAgYWNfY3ZfcGF0aF9FR1JFUD0kRUdSRVAKLStmaQotKwot KyAgIGZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGFjX2N2X3BhdGhfRUdSRVAiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9FR1JF UCIgPiY2OyB9Ci0rIEVHUkVQPSIkYWNfY3ZfcGF0aF9FR1JFUCIKLSsKLSsKLSt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBmZ3JlcCIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGZncmVwLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9w YXRoX0ZHUkVQKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgaWYgZWNobyAnYWIqYycgfCAkR1JFUCAtRiAnYWIqYycgPi9kZXYvbnVsbCAy PiYxCi0rICAgdGhlbiBhY19jdl9wYXRoX0ZHUkVQPSIkR1JFUCAtRiIKLSsgICBlbHNlCi0rICAg ICBpZiB0ZXN0IC16ICIkRkdSRVAiOyB0aGVuCi0rICBhY19wYXRoX0ZHUkVQX2ZvdW5kPWZhbHNl Ci0rICAjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVhY2ggb2Yg UFJPR05BTUUtTElTVAotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluCi0rZG8KLSsg IElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAg IGZvciBhY19wcm9nIGluIGZncmVwOyBkbwotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgICAgICBhY19wYXRoX0ZHUkVQPSIkYXNfZGly LyRhY19wcm9nJGFjX2V4ZWNfZXh0IgotKyAgICAgIHsgdGVzdCAtZiAiJGFjX3BhdGhfRkdSRVAi ICYmICRhc190ZXN0X3ggIiRhY19wYXRoX0ZHUkVQIjsgfSB8fCBjb250aW51ZQotKyMgQ2hlY2sg Zm9yIEdOVSBhY19wYXRoX0ZHUkVQIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCi0rICAj IENoZWNrIGZvciBHTlUgJGFjX3BhdGhfRkdSRVAKLStjYXNlIGAiJGFjX3BhdGhfRkdSRVAiIC0t dmVyc2lvbiAyPiYxYCBpbgotKypHTlUqKQotKyAgYWNfY3ZfcGF0aF9GR1JFUD0iJGFjX3BhdGhf RkdSRVAiIGFjX3BhdGhfRkdSRVBfZm91bmQ9Ojs7Ci0rKikKLSsgIGFjX2NvdW50PTAKLSsgICRh c19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgotKyAgd2hpbGUgOgotKyAgZG8KLSsg ICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0LnRtcCIKLSsgICAg bXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgotKyAgICBjcCAiY29uZnRlc3QuaW4iICJj b25mdGVzdC5ubCIKLSsgICAgJGFzX2VjaG8gJ0ZHUkVQJyA+PiAiY29uZnRlc3QubmwiCi0rICAg ICIkYWNfcGF0aF9GR1JFUCIgRkdSRVAgPCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qub3V0IiAy Pi9kZXYvbnVsbCB8fCBicmVhawotKyAgICBkaWZmICJjb25mdGVzdC5vdXQiICJjb25mdGVzdC5u bCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCi0rICAgIGFzX2ZuX2FyaXRoICRhY19jb3VudCAr IDEgJiYgYWNfY291bnQ9JGFzX3ZhbAotKyAgICBpZiB0ZXN0ICRhY19jb3VudCAtZ3QgJHthY19w YXRoX0ZHUkVQX21heC0wfTsgdGhlbgotKyAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZlIGl0 IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQotKyAgICAgIGFjX2N2X3BhdGhfRkdS RVA9IiRhY19wYXRoX0ZHUkVQIgotKyAgICAgIGFjX3BhdGhfRkdSRVBfbWF4PSRhY19jb3VudAot KyAgICBmaQotKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4g ZW5vdWdoCi0rICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVhawotKyAgZG9uZQotKyAg cm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7 Ci0rZXNhYwotKwotKyAgICAgICRhY19wYXRoX0ZHUkVQX2ZvdW5kICYmIGJyZWFrIDMKLSsgICAg ZG9uZQotKyAgZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsgIGlmIHRlc3QgLXog IiRhY19jdl9wYXRoX0ZHUkVQIjsgdGhlbgotKyAgICBhc19mbl9lcnJvciAkPyAibm8gYWNjZXB0 YWJsZSBmZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBn NC9iaW4iICIkTElORU5PIiA1Ci0rICBmaQotK2Vsc2UKLSsgIGFjX2N2X3BhdGhfRkdSRVA9JEZH UkVQCi0rZmkKLSsKLSsgICBmaQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9wYXRoX0ZHUkVQIiA+JjUKLSskYXNfZWNobyAiJGFj X2N2X3BhdGhfRkdSRVAiID4mNjsgfQotKyBGR1JFUD0iJGFjX2N2X3BhdGhfRkdSRVAiCi0rCi0r Ci0rdGVzdCAteiAiJEdSRVAiICYmIEdSRVA9Z3JlcAotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgt Z251LWxkIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfZ251X2xkK3NldH0iID0gc2V0OyB0 aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhfZ251X2xkOyB0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3 aXRoX2dudV9sZD15ZXMKLStlbHNlCi0rICB3aXRoX2dudV9sZD1ubwotK2ZpCi0rCi0rYWNfcHJv Zz1sZAotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAjIENoZWNrIGlmIGdjYyAtcHJp bnQtcHJvZy1uYW1lPWxkIGdpdmVzIGEgcGF0aC4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBmb3IgbGQgdXNlZCBieSAkQ0MuLi4gIiA+JjY7IH0KLSsgIGNhc2Ug JGhvc3QgaW4KLSsgICotKi1taW5ndyopCi0rICAgICMgZ2NjIGxlYXZlcyBhIHRyYWlsaW5nIGNh cnJpYWdlIHJldHVybiB3aGljaCB1cHNldHMgbWluZ3cKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJp bnQtcHJvZy1uYW1lPWxkKSAyPiY1IHwgdHIgLWQgJ1wwMTUnYCA7OwotKyAgKikKLSsgICAgYWNf cHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1YCA7OwotKyAgZXNhYwotKyAgY2Fz ZSAkYWNfcHJvZyBpbgotKyAgICAjIEFjY2VwdCBhYnNvbHV0ZSBwYXRocy4KLSsgICAgW1xcL10q IHwgPzpbXFwvXSopCi0rICAgICAgcmVfZGlyZWx0PScvW14vXVteL10qL1wuXC4vJwotKyAgICAg ICMgQ2Fub25pY2FsaXplIHRoZSBwYXRobmFtZSBvZiBsZAotKyAgICAgIGFjX3Byb2c9YCRFQ0hP ICIkYWNfcHJvZyJ8ICRTRUQgJ3MlXFxcXCUvJWcnYAotKyAgICAgIHdoaWxlICRFQ0hPICIkYWNf cHJvZyIgfCAkR1JFUCAiJHJlX2RpcmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KLSsJYWNfcHJv Zz1gJEVDSE8gJGFjX3Byb2d8ICRTRUQgInMlJHJlX2RpcmVsdCUvJSJgCi0rICAgICAgZG9uZQot KyAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19wcm9nIgotKyAgICAgIDs7Ci0rICAiIikK LSsgICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCi0r ICAgIGFjX3Byb2c9bGQKLSsgICAgOzsKLSsgICopCi0rICAgICMgSWYgaXQgaXMgcmVsYXRpdmUs IHRoZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQgaW4gUEFUSC4KLSsgICAgd2l0aF9nbnVfbGQ9 dW5rbm93bgotKyAgICA7OwotKyAgZXNhYwotK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHll czsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgR05VIGxkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgR05VIGxkLi4u ICIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3Igbm9uLUdOVSBsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIG5vbi1HTlUgbGQuLi4gIiA+JjY7IH0KLStmaQotK2lmICR7bHRfY3ZfcGF0aF9MRCs6fSBm YWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlm IHRlc3QgLXogIiRMRCI7IHRoZW4KLSsgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NF UEFSQVRPUgotKyAgZm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9p ZnMiCi0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYg IiRhY19kaXIvJGFjX3Byb2ciIHx8IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0 IjsgdGhlbgotKyAgICAgIGx0X2N2X3BhdGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCi0rICAgICAg IyBDaGVjayB0byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2Ug LS12ZXJzaW9uLAotKyAgICAgICMgYnV0IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUg bGQgb25seSBhY2NlcHQgLXYuCi0rICAgICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05V L25vbi1HTlUgbGQgdGhhdCB3ZSBwcmVmZXIuCi0rICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xE IiAtdiAyPiYxIDwvZGV2L251bGxgIGluCi0rICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCi0r CXRlc3QgIiR3aXRoX2dudV9sZCIgIT0gbm8gJiYgYnJlYWsKLSsJOzsKLSsgICAgICAqKQotKwl0 ZXN0ICIkd2l0aF9nbnVfbGQiICE9IHllcyAmJiBicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsg ICAgZmkKLSsgIGRvbmUKLSsgIElGUz0iJGx0X3NhdmVfaWZzIgotK2Vsc2UKLSsgIGx0X2N2X3Bh dGhfTEQ9IiRMRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGgu Ci0rZmkKLStmaQotKwotK0xEPSIkbHRfY3ZfcGF0aF9MRCIKLStpZiB0ZXN0IC1uICIkTEQiOyB0 aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JExEIiA+JjUKLSskYXNfZWNobyAiJExEIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rZmkKLSt0ZXN0IC16ICIkTEQiICYmIGFzX2ZuX2Vycm9yICQ/ICJubyBhY2Nl cHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgIiRMSU5FTk8iIDUKLSt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMg R05VIGxkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlz IEdOVSBsZC4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfcHJvZ19nbnVfbGQrOn0gZmFsc2U7IHRo ZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAjIEknZCByYXRo ZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBh Y2NlcHQgLXYuCi0rY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsqR05VKiB8ICon d2l0aCBCRkQnKikKLSsgIGx0X2N2X3Byb2dfZ251X2xkPXllcwotKyAgOzsKLSsqKQotKyAgbHRf Y3ZfcHJvZ19nbnVfbGQ9bm8KLSsgIDs7Ci0rZXNhYwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2dudV9sZCIgPiY1Ci0r JGFzX2VjaG8gIiRsdF9jdl9wcm9nX2dudV9sZCIgPiY2OyB9Ci0rd2l0aF9nbnVfbGQ9JGx0X2N2 X3Byb2dfZ251X2xkCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0reyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgQlNELSBvciBNUy1jb21wYXRp YmxlIG5hbWUgbGlzdGVyIChubSkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBCU0Qt IG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKS4uLiAiID4mNjsgfQotK2lmICR7bHRf Y3ZfcGF0aF9OTSs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiROTSI7IHRoZW4KLSsgICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgotKyAgbHRfY3ZfcGF0aF9OTT0iJE5NIgotK2Vsc2UKLSsgIGx0X25t X3RvX2NoZWNrPSIke2FjX3Rvb2xfcHJlZml4fW5tIgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xf cHJlZml4IiAmJiB0ZXN0ICIkYnVpbGQiID0gIiRob3N0IjsgdGhlbgotKyAgICBsdF9ubV90b19j aGVjaz0iJGx0X25tX3RvX2NoZWNrIG5tIgotKyAgZmkKLSsgIGZvciBsdF90bXBfbm0gaW4gJGx0 X25tX3RvX2NoZWNrOyBkbwotKyAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBB UkFUT1IKLSsgICAgZm9yIGFjX2RpciBpbiAkUEFUSCAvdXNyL2Njcy9iaW4vZWxmIC91c3IvY2Nz L2JpbiAvdXNyL3VjYiAvYmluOyBkbwotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAg IHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgICAgdG1wX25tPSIkYWNfZGlyLyRs dF90bXBfbm0iCi0rICAgICAgaWYgdGVzdCAtZiAiJHRtcF9ubSIgfHwgdGVzdCAtZiAiJHRtcF9u bSRhY19leGVleHQiIDsgdGhlbgotKwkjIENoZWNrIHRvIHNlZSBpZiB0aGUgbm0gYWNjZXB0cyBh IEJTRC1jb21wYXQgZmxhZy4KLSsJIyBBZGRpbmcgdGhlIGBzZWQgMXEnIHByZXZlbnRzIGZhbHNl IHBvc2l0aXZlcyBvbiBIUC1VWCwgd2hpY2ggc2F5czoKLSsJIyAgIG5tOiB1bmtub3duIG9wdGlv biAiQiIgaWdub3JlZAotKwkjIFRydTY0J3Mgbm0gY29tcGxhaW5zIHRoYXQgL2Rldi9udWxsIGlz IGFuIGludmFsaWQgb2JqZWN0IGZpbGUKLSsJY2FzZSBgIiR0bXBfbm0iIC1CIC9kZXYvbnVsbCAy PiYxIHwgc2VkICcxcSdgIGluCi0rCSovZGV2L251bGwqIHwgKidJbnZhbGlkIGZpbGUgb3Igb2Jq ZWN0IHR5cGUnKikKLSsJICBsdF9jdl9wYXRoX05NPSIkdG1wX25tIC1CIgotKwkgIGJyZWFrCi0r CSAgOzsKLSsJKikKLSsJICBjYXNlIGAiJHRtcF9ubSIgLXAgL2Rldi9udWxsIDI+JjEgfCBzZWQg JzFxJ2AgaW4KLSsJICAqL2Rldi9udWxsKikKLSsJICAgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0g LXAiCi0rCSAgICBicmVhawotKwkgICAgOzsKLSsJICAqKQotKwkgICAgbHRfY3ZfcGF0aF9OTT0k e2x0X2N2X3BhdGhfTk09IiR0bXBfbm0ifSAjIGtlZXAgdGhlIGZpcnN0IG1hdGNoLCBidXQKLSsJ ICAgIGNvbnRpbnVlICMgc28gdGhhdCB3ZSBjYW4gdHJ5IHRvIGZpbmQgb25lIHRoYXQgc3VwcG9y dHMgQlNEIGZsYWdzCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICA7OwotKwllc2FjCi0rICAgICAg ZmkKLSsgICAgZG9uZQotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgIGRvbmUKLSsgIDogJHts dF9jdl9wYXRoX05NPW5vfQotK2ZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3BhdGhfTk0iID4mNQotKyRhc19lY2hvICIkbHRf Y3ZfcGF0aF9OTSIgPiY2OyB9Ci0raWYgdGVzdCAiJGx0X2N2X3BhdGhfTk0iICE9ICJubyI7IHRo ZW4KLSsgIE5NPSIkbHRfY3ZfcGF0aF9OTSIKLStlbHNlCi0rICAjIERpZG4ndCBmaW5kIGFueSBC U0QgY29tcGF0aWJsZSBuYW1lIGxpc3RlciwgbG9vayBmb3IgZHVtcGJpbi4KLSsgIGlmIHRlc3Qg LW4gIiREVU1QQklOIjsgdGhlbiA6Ci0rICAgICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0LgotKyAgZWxzZQotKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0r ICBmb3IgYWNfcHJvZyBpbiBkdW1wYmluICJsaW5rIC1kdW1wIgotKyAgZG8KLSsgICAgIyBFeHRy YWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNh biBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY190b29sX3ByZWZp eCRhY19wcm9nOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19EVU1QQklOKzp9IGZh bHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYg dGVzdCAtbiAiJERVTVBCSU4iOyB0aGVuCi0rICBhY19jdl9wcm9nX0RVTVBCSU49IiREVU1QQklO IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAg SUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2df RFVNUEJJTj0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVf SUZTCi0rCi0rZmkKLStmaQotK0RVTVBCSU49JGFjX2N2X3Byb2dfRFVNUEJJTgotK2lmIHRlc3Qg LW4gIiREVU1QQklOIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICREVU1QQklOIiA+JjUKLSskYXNfZWNobyAiJERVTVBCSU4iID4mNjsg fQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgICB0ZXN0 IC1uICIkRFVNUEJJTiIgJiYgYnJlYWsKLSsgIGRvbmUKLStmaQotK2lmIHRlc3QgLXogIiREVU1Q QklOIjsgdGhlbgotKyAgYWNfY3RfRFVNUEJJTj0kRFVNUEJJTgotKyAgZm9yIGFjX3Byb2cgaW4g ZHVtcGJpbiAibGluayAtZHVtcCIKLStkbwotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m ICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0 IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9E VU1QQklOKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0RVTVBCSU4iOyB0aGVuCi0rICBhY19jdl9wcm9n X2FjX2N0X0RVTVBCSU49IiRhY19jdF9EVU1QQklOIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0 aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfRFVNUEJJTj0iJGFjX3Byb2ciCi0r ICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsg IGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X0RVTVBCSU49JGFj X2N2X3Byb2dfYWNfY3RfRFVNUEJJTgotK2lmIHRlc3QgLW4gIiRhY19jdF9EVU1QQklOIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh Y19jdF9EVU1QQklOIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X0RVTVBCSU4iID4mNjsgfQotK2Vs c2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBu byIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgdGVzdCAtbiAiJGFj X2N0X0RVTVBCSU4iICYmIGJyZWFrCi0rZG9uZQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9EVU1Q QklOIiA9IHg7IHRoZW4KLSsgICAgRFVNUEJJTj0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jv c3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3Qg cHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYy O30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIERVTVBCSU49JGFjX2N0X0RV TVBCSU4KLSsgIGZpCi0rZmkKLSsKLSsgICAgY2FzZSBgJERVTVBCSU4gLXN5bWJvbHMgL2Rldi9u dWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KLSsgICAgKkNPRkYqKQotKyAgICAgIERVTVBCSU49IiRE VU1QQklOIC1zeW1ib2xzIgotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgRFVNUEJJTj06Ci0r ICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsKLSsgIGlmIHRlc3QgIiREVU1QQklOIiAhPSAi OiI7IHRoZW4KLSsgICAgTk09IiREVU1QQklOIgotKyAgZmkKLStmaQotK3Rlc3QgLXogIiROTSIg JiYgTk09bm0KLSsKLSsKLSsKLSsKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIHRoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2UiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIHRoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2Uu Li4gIiA+JjY7IH0KLStpZiAke2x0X2N2X25tX2ludGVyZmFjZSs6fSBmYWxzZTsgdGhlbiA6Ci0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X25tX2ludGVyZmFj ZT0iQlNEIG5tIgotKyAgZWNobyAiaW50IHNvbWVfdmFyaWFibGUgPSAwOyIgPiBjb25mdGVzdC4k YWNfZXh0Ci0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGFjX2NvbXBpbGVcIiIg PiY1KQotKyAgKGV2YWwgIiRhY19jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsgIGNhdCBjb25m dGVzdC5lcnIgPiY1Ci0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJE5NIFxcXCJj b25mdGVzdC4kYWNfb2JqZXh0XFxcIlwiIiA+JjUpCi0rICAoZXZhbCAiJE5NIFwiY29uZnRlc3Qu JGFjX29iamV4dFwiIiAyPmNvbmZ0ZXN0LmVyciA+IGNvbmZ0ZXN0Lm91dCkKLSsgIGNhdCBjb25m dGVzdC5lcnIgPiY1Ci0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogb3V0cHV0XCIi ID4mNSkKLSsgIGNhdCBjb25mdGVzdC5vdXQgPiY1Ci0rICBpZiAkR1JFUCAnRXh0ZXJuYWwuKnNv bWVfdmFyaWFibGUnIGNvbmZ0ZXN0Lm91dCA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICBsdF9jdl9u bV9pbnRlcmZhY2U9Ik1TIGR1bXBiaW4iCi0rICBmaQotKyAgcm0gLWYgY29uZnRlc3QqCi0rZmkK LSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2 X25tX2ludGVyZmFjZSIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9ubV9pbnRlcmZhY2UiID4mNjsg fQotKwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg d2hldGhlciBsbiAtcyB3b3JrcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBs biAtcyB3b3Jrcy4uLiAiID4mNjsgfQotK0xOX1M9JGFzX2xuX3MKLStpZiB0ZXN0ICIkTE5fUyIg PSAibG4gLXMiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLStlbHNlCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8sIHVzaW5n ICRMTl9TIiA+JjUKLSskYXNfZWNobyAibm8sIHVzaW5nICRMTl9TIiA+JjY7IH0KLStmaQotKwot KyMgZmluZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwotK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgdGhlIG1heGlt dW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLi4uICIg PiY2OyB9Ci0raWYgJHtsdF9jdl9zeXNfbWF4X2NtZF9sZW4rOn0gZmFsc2U7IHRoZW4gOgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAgIGk9MAotKyAgdGVzdHN0cmlu Zz0iQUJDRCIKLSsKLSsgIGNhc2UgJGJ1aWxkX29zIGluCi0rICBtc2Rvc2RqZ3BwKikKLSsgICAg IyBPbiBESkdQUCwgdGhpcyB0ZXN0IGNhbiBibG93IHVwIHByZXR0eSBiYWRseSBkdWUgdG8gcHJv YmxlbXMgaW4gbGliYwotKyAgICAjIChhbnkgc2luZ2xlIGFyZ3VtZW50IGV4Y2VlZGluZyAyMDAw IGJ5dGVzIGNhdXNlcyBhIGJ1ZmZlciBvdmVycnVuCi0rICAgICMgZHVyaW5nIGdsb2IgZXhwYW5z aW9uKS4gIEV2ZW4gaWYgaXQgd2VyZSBmaXhlZCwgdGhlIHJlc3VsdCBvZiB0aGlzCi0rICAgICMg Y2hlY2sgd291bGQgYmUgbGFyZ2VyIHRoYW4gaXQgc2hvdWxkIGJlLgotKyAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49MTIyODg7ICAgICMgMTJLIGlzIGFib3V0IHJpZ2h0Ci0rICAgIDs7Ci0rCi0r ICBnbnUqKQotKyAgICAjIFVuZGVyIEdOVSBIdXJkLCB0aGlzIHRlc3QgaXMgbm90IHJlcXVpcmVk IGJlY2F1c2UgdGhlcmUgaXMKLSsgICAgIyBubyBsaW1pdCB0byB0aGUgbGVuZ3RoIG9mIGNvbW1h bmQgbGluZSBhcmd1bWVudHMuCi0rICAgICMgTGlidG9vbCB3aWxsIGludGVycHJldCAtMSBhcyBu byBsaW1pdCB3aGF0c29ldmVyCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMTsKLSsgICAg OzsKLSsKLSsgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCi0rICAgICMgT24gV2luOXgvTUUs IHRoaXMgdGVzdCBibG93cyB1cCAtLSBpdCBzdWNjZWVkcywgYnV0IHRha2VzCi0rICAgICMgYWJv dXQgNSBtaW51dGVzIGFzIHRoZSB0ZXN0c3RyaW5nIGdyb3dzIGV4cG9uZW50aWFsbHkuCi0rICAg ICMgV29yc2UsIHNpbmNlIDl4L01FIGFyZSBub3QgcHJlLWVtcHRpdmVseSBtdWx0aXRhc2tpbmcs Ci0rICAgICMgeW91IGVuZCB1cCB3aXRoIGEgImZyb3plbiIgY29tcHV0ZXIsIGV2ZW4gdGhvdWdo IHdpdGggcGF0aWVuY2UKLSsgICAgIyB0aGUgdGVzdCBldmVudHVhbGx5IHN1Y2NlZWRzICh3aXRo IGEgbWF4IGxpbmUgbGVuZ3RoIG9mIDI1NmspLgotKyAgICAjIEluc3RlYWQsIGxldCdzIGp1c3Qg cHVudDogdXNlIHRoZSBtaW5pbXVtIGxpbmVsZW5ndGggcmVwb3J0ZWQgYnkKLSsgICAgIyBhbGwg b2YgdGhlIHN1cHBvcnRlZCBwbGF0Zm9ybXM6IDgxOTIgKG9uIE5ULzJLL1hQKS4KLSsgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7Ci0rICAgIDs7Ci0rCi0rICBtaW50KikKLSsgICAgIyBP biBNaU5UIHRoaXMgY2FuIHRha2UgYSBsb25nIHRpbWUgYW5kIHJ1biBvdXQgb2YgbWVtb3J5Lgot KyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKLSsgICAgOzsKLSsKLSsgIGFtaWdhb3Mq KQotKyAgICAjIE9uIEFtaWdhT1Mgd2l0aCBwZGtzaCwgdGhpcyB0ZXN0IHRha2VzIGhvdXJzLCBs aXRlcmFsbHkuCi0rICAgICMgU28gd2UganVzdCBwdW50IGFuZCB1c2UgYSBtaW5pbXVtIGxpbmUg bGVuZ3RoIG9mIDgxOTIuCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOwotKyAgICA7 OwotKwotKyAgbmV0YnNkKiB8IGZyZWVic2QqIHwgb3BlbmJzZCogfCBkYXJ3aW4qIHwgZHJhZ29u Zmx5KikKLSsgICAgIyBUaGlzIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSAzODZCU0QsIGF0IGxlYXN0 LiAgTGlrZWx5IGZ1cnRoZXIuCi0rICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY3RsOyB0aGVuCi0r ICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhg Ci0rICAgIGVsaWYgdGVzdCAteCAvdXNyL3NiaW4vc3lzY3RsOyB0aGVuCi0rICAgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPWAvdXNyL3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAotKyAgICBl bHNlCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTY1NTM2CSMgdXNhYmxlIGRlZmF1bHQg Zm9yIGFsbCBCU0RzCi0rICAgIGZpCi0rICAgICMgQW5kIGFkZCBhIHNhZmV0eSB6b25lCi0rICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRg Ci0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVu IFwqIDNgCi0rICAgIDs7Ci0rCi0rICBpbnRlcml4KikKLSsgICAgIyBXZSBrbm93IHRoZSB2YWx1 ZSAyNjIxNDQgYW5kIGhhcmRjb2RlIGl0IHdpdGggYSBzYWZldHkgem9uZSAobGlrZSBCU0QpCi0r ICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xOTY2MDgKLSsgICAgOzsKLSsKLSsgIG9zZiopCi0r ICAgICMgRHIuIEhhbnMgRWtrZWhhcmQgUGxlc3NlciByZXBvcnRzIHNlZWluZyBhIGtlcm5lbCBw YW5pYyBydW5uaW5nIGNvbmZpZ3VyZQotKyAgICAjIGR1ZSB0byB0aGlzIHRlc3Qgd2hlbiBleGVj X2Rpc2FibGVfYXJnX2xpbWl0IGlzIDEgb24gVHJ1NjQuIEl0IGlzIG5vdAotKyAgICAjIG5pY2Ug dG8gY2F1c2Uga2VybmVsIHBhbmljcyBzbyBsZXRzIGF2b2lkIHRoZSBsb29wIGJlbG93LgotKyAg ICAjIEZpcnN0IHNldCBhIHJlYXNvbmFibGUgZGVmYXVsdC4KLSsgICAgbHRfY3Zfc3lzX21heF9j bWRfbGVuPTE2Mzg0Ci0rICAgICMKLSsgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjb25maWc7IHRo ZW4KLSsgICAgICBjYXNlIGAvc2Jpbi9zeXNjb25maWcgLXEgcHJvYyBleGVjX2Rpc2FibGVfYXJn X2xpbWl0YCBpbgotKyAgICAgICAgKjEqKSBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTEgOzsKLSsg ICAgICBlc2FjCi0rICAgIGZpCi0rICAgIDs7Ci0rICBzY28zLjJ2NSopCi0rICAgIGx0X2N2X3N5 c19tYXhfY21kX2xlbj0xMDI0MDAKLSsgICAgOzsKLSsgIHN5c3Y1KiB8IHNjbzV2NiogfCBzeXN2 NC4ydXcyKikKLSsgICAga2FyZ21heD1gZ3JlcCBBUkdfTUFYIC9ldGMvY29uZi9jZi5kL3N0dW5l IDI+L2Rldi9udWxsYAotKyAgICBpZiB0ZXN0IC1uICIka2FyZ21heCI7IHRoZW4KLSsgICAgICBs dF9jdl9zeXNfbWF4X2NtZF9sZW49YGVjaG8gJGthcmdtYXggfCBzZWQgJ3MvLipbCSBdLy8nYAot KyAgICBlbHNlCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTMyNzY4Ci0rICAgIGZpCi0r ICAgIDs7Ci0rICAqKQotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YChnZXRjb25mIEFSR19N QVgpIDI+IC9kZXYvbnVsbGAKLSsgICAgaWYgdGVzdCAtbiAiJGx0X2N2X3N5c19tYXhfY21kX2xl biI7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19t YXhfY21kX2xlbiBcLyA0YAotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRf Y3Zfc3lzX21heF9jbWRfbGVuIFwqIDNgCi0rICAgIGVsc2UKLSsgICAgICAjIE1ha2UgdGVzdHN0 cmluZyBhIGxpdHRsZSBiaWdnZXIgYmVmb3JlIHdlIGRvIGFueXRoaW5nIHdpdGggaXQuCi0rICAg ICAgIyBhIDFLIHN0cmluZyBzaG91bGQgYmUgYSByZWFzb25hYmxlIHN0YXJ0LgotKyAgICAgIGZv ciBpIGluIDEgMiAzIDQgNSA2IDcgOCA7IGRvCi0rICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3Ry aW5nJHRlc3RzdHJpbmcKLSsgICAgICBkb25lCi0rICAgICAgU0hFTEw9JHtTSEVMTC0ke0NPTkZJ R19TSEVMTC0vYmluL3NofX0KLSsgICAgICAjIElmIHRlc3QgaXMgbm90IGEgc2hlbGwgYnVpbHQt aW4sIHdlJ2xsIHByb2JhYmx5IGVuZCB1cCBjb21wdXRpbmcgYQotKyAgICAgICMgbWF4aW11bSBs ZW5ndGggdGhhdCBpcyBvbmx5IGhhbGYgb2YgdGhlIGFjdHVhbCBtYXhpbXVtIGxlbmd0aCwgYnV0 Ci0rICAgICAgIyB3ZSBjYW4ndCB0ZWxsLgotKyAgICAgIHdoaWxlIHsgdGVzdCAiWCJgZnVuY19m YWxsYmFja19lY2hvICIkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIiAyPi9kZXYvbnVsbGAgXAotKwkg ICAgICAgICA9ICJYJHRlc3RzdHJpbmckdGVzdHN0cmluZyI7IH0gPi9kZXYvbnVsbCAyPiYxICYm Ci0rCSAgICAgIHRlc3QgJGkgIT0gMTcgIyAxLzIgTUIgc2hvdWxkIGJlIGVub3VnaAotKyAgICAg IGRvCi0rICAgICAgICBpPWBleHByICRpICsgMWAKLSsgICAgICAgIHRlc3RzdHJpbmc9JHRlc3Rz dHJpbmckdGVzdHN0cmluZwotKyAgICAgIGRvbmUKLSsgICAgICAjIE9ubHkgY2hlY2sgdGhlIHN0 cmluZyBsZW5ndGggb3V0c2lkZSB0aGUgbG9vcC4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49YGV4cHIgIlgkdGVzdHN0cmluZyIgOiAiLioiIDI+JjFgCi0rICAgICAgdGVzdHN0cmluZz0K LSsgICAgICAjIEFkZCBhIHNpZ25pZmljYW50IHNhZmV0eSBmYWN0b3IgYmVjYXVzZSBDKysgY29t cGlsZXJzIGNhbiB0YWNrIG9uCi0rICAgICAgIyBtYXNzaXZlIGFtb3VudHMgb2YgYWRkaXRpb25h bCBhcmd1bWVudHMgYmVmb3JlIHBhc3NpbmcgdGhlbSB0byB0aGUKLSsgICAgICAjIGxpbmtlci4g IEl0IGFwcGVhcnMgYXMgdGhvdWdoIDEvMiBpcyBhIHVzYWJsZSB2YWx1ZS4KLSsgICAgICBsdF9j dl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyAyYAotKyAg ICBmaQotKyAgICA7OwotKyAgZXNhYwotKwotK2ZpCi0rCi0raWYgdGVzdCAtbiAkbHRfY3Zfc3lz X21heF9jbWRfbGVuIDsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iID4mNQotKyRhc19lY2hvICIk bHRfY3Zfc3lzX21heF9jbWRfbGVuIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm9uZSIgPiY1Ci0rJGFzX2VjaG8gIm5v bmUiID4mNjsgfQotK2ZpCi0rbWF4X2NtZF9sZW49JGx0X2N2X3N5c19tYXhfY21kX2xlbgotKwot KwotKwotKwotKwotKwotKzogJHtDUD0iY3AgLWYifQotKzogJHtNVj0ibXYgLWYifQotKzogJHtS TT0icm0gLWYifQotKwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29uc3RydWN0 cyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFu ZHMgc29tZSBYU0kgY29uc3RydWN0cy4uLiAiID4mNjsgfQotKyMgVHJ5IHNvbWUgWFNJIGZlYXR1 cmVzCi0reHNpX3NoZWxsPW5vCi0rKCBfbHRfZHVtbXk9ImEvYi9jIgotKyAgdGVzdCAiJHtfbHRf ZHVtbXkjIyovfSwke19sdF9kdW1teSUvKn0sJHtfbHRfZHVtbXkjPz99IiR7X2x0X2R1bW15JSIk X2x0X2R1bW15In0sIFwKLSsgICAgICA9IGMsYS9iLGIvYywgXAotKyAgICAmJiBldmFsICd0ZXN0 ICQoKCAxICsgMSApKSAtZXEgMiBcCi0rICAgICYmIHRlc3QgIiR7I19sdF9kdW1teX0iIC1lcSA1 JyApID4vZGV2L251bGwgMj4mMSBcCi0rICAmJiB4c2lfc2hlbGw9eWVzCi0reyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICR4c2lfc2hlbGwiID4mNQotKyRh c19lY2hvICIkeHNpX3NoZWxsIiA+JjY7IH0KLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRz IFwiKz1cIiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5k ZXJzdGFuZHMgXCIrPVwiLi4uICIgPiY2OyB9Ci0rbHRfc2hlbGxfYXBwZW5kPW5vCi0rKCBmb289 YmFyOyBzZXQgZm9vIGJhejsgZXZhbCAiJDErPVwkMiIgJiYgdGVzdCAiJGZvbyIgPSBiYXJiYXog KSBcCi0rICAgID4vZGV2L251bGwgMj4mMSBcCi0rICAmJiBsdF9zaGVsbF9hcHBlbmQ9eWVzCi0r eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9zaGVs bF9hcHBlbmQiID4mNQotKyRhc19lY2hvICIkbHRfc2hlbGxfYXBwZW5kIiA+JjY7IH0KLSsKLSsK LStpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KLSsgIGx0X3Vuc2V0PXVuc2V0Ci0rZWxzZQotKyAgbHRfdW5zZXQ9ZmFsc2UKLStmaQotKwot KwotKwotKwotKwotKyMgdGVzdCBFQkNESUMgb3IgQVNDSUkKLStjYXNlIGBlY2hvIFh8dHIgWCAn XDEwMSdgIGluCi0rIEEpICMgQVNDSUkgYmFzZWQgc3lzdGVtCi0rICAgICMgXG4gaXMgbm90IGlu dGVycHJldGVkIGNvcnJlY3RseSBieSBTb2xhcmlzIDggL3Vzci91Y2IvdHIKLSsgIGx0X1NQMk5M PSd0ciBcMDQwIFwwMTInCi0rICBsdF9OTDJTUD0ndHIgXDAxNVwwMTIgXDA0MFwwNDAnCi0rICA7 OwotKyAqKSAjIEVCQ0RJQyBiYXNlZCBzeXN0ZW0KLSsgIGx0X1NQMk5MPSd0ciBcMTAwIFxuJwot KyAgbHRfTkwyU1A9J3RyIFxyXG4gXDEwMFwxMDAnCi0rICA7OwotK2VzYWMKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIGhvdyB0byBjb252ZXJ0ICRidWlsZCBmaWxlIG5hbWVzIHRvICRob3N0IGZvcm1h dCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIGNvbnZlcnQgJGJ1aWxkIGZpbGUg bmFtZXMgdG8gJGhvc3QgZm9ybWF0Li4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl90b19ob3N0X2Zp bGVfY21kKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgY2FzZSAkaG9zdCBpbgotKyAgKi0qLW1pbmd3KiApCi0rICAgIGNhc2UgJGJ1aWxk IGluCi0rICAgICAgKi0qLW1pbmd3KiApICMgYWN0dWFsbHkgbXN5cwotKyAgICAgICAgbHRfY3Zf dG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgotKyAgICAgICAg OzsKLSsgICAgICAqLSotY3lnd2luKiApCi0rICAgICAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21k PWZ1bmNfY29udmVydF9maWxlX2N5Z3dpbl90b193MzIKLSsgICAgICAgIDs7Ci0rICAgICAgKiAp ICMgb3RoZXJ3aXNlLCBhc3N1bWUgKm5peAotKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2Nt ZD1mdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fdzMyCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0r ICAgIDs7Ci0rICAqLSotY3lnd2luKiApCi0rICAgIGNhc2UgJGJ1aWxkIGluCi0rICAgICAgKi0q LW1pbmd3KiApICMgYWN0dWFsbHkgbXN5cwotKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2Nt ZD1mdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX2N5Z3dpbgotKyAgICAgICAgOzsKLSsgICAgICAq LSotY3lnd2luKiApCi0rICAgICAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVy dF9maWxlX25vb3AKLSsgICAgICAgIDs7Ci0rICAgICAgKiApICMgb3RoZXJ3aXNlLCBhc3N1bWUg Km5peAotKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9u aXhfdG9fY3lnd2luCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICAqICkgIyB1 bmhhbmRsZWQgaG9zdHMgKGFuZCAibm9ybWFsIiBuYXRpdmUgYnVpbGRzKQotKyAgICBsdF9jdl90 b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX25vb3AKLSsgICAgOzsKLStlc2FjCi0r Ci0rZmkKLSsKLSt0b19ob3N0X2ZpbGVfY21kPSRsdF9jdl90b19ob3N0X2ZpbGVfY21kCi0reyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl90b19o b3N0X2ZpbGVfY21kIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3RvX2hvc3RfZmlsZV9jbWQiID4m NjsgfQotKwotKwotKwotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgaG93IHRvIGNvbnZlcnQgJGJ1aWxkIGZpbGUgbmFtZXMgdG8gdG9vbGNo YWluIGZvcm1hdCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIGNvbnZlcnQgJGJ1 aWxkIGZpbGUgbmFtZXMgdG8gdG9vbGNoYWluIGZvcm1hdC4uLiAiID4mNjsgfQotK2lmICR7bHRf Y3ZfdG9fdG9vbF9maWxlX2NtZCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgICNhc3N1bWUgb3JkaW5hcnkgY3Jvc3MgdG9vbHMsIG9yIG5h dGl2ZSBidWlsZC4KLStsdF9jdl90b190b29sX2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX25v b3AKLStjYXNlICRob3N0IGluCi0rICAqLSotbWluZ3cqICkKLSsgICAgY2FzZSAkYnVpbGQgaW4K LSsgICAgICAqLSotbWluZ3cqICkgIyBhY3R1YWxseSBtc3lzCi0rICAgICAgICBsdF9jdl90b190 b29sX2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCi0rICAgICAgICA7Owot KyAgICBlc2FjCi0rICAgIDs7Ci0rZXNhYwotKwotK2ZpCi0rCi0rdG9fdG9vbF9maWxlX2NtZD0k bHRfY3ZfdG9fdG9vbF9maWxlX2NtZAotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkbHRfY3ZfdG9fdG9vbF9maWxlX2NtZCIgPiY1Ci0rJGFzX2VjaG8g IiRsdF9jdl90b190b29sX2ZpbGVfY21kIiA+JjY7IH0KLSsKLSsKLSsKLSsKLSsKLSt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkTEQgb3B0aW9u IHRvIHJlbG9hZCBvYmplY3QgZmlsZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk TEQgb3B0aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXMuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2 X2xkX3JlbG9hZF9mbGFnKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfbGRfcmVsb2FkX2ZsYWc9Jy1yJwotK2ZpCi0reyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9sZF9yZWxv YWRfZmxhZyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9sZF9yZWxvYWRfZmxhZyIgPiY2OyB9Ci0r cmVsb2FkX2ZsYWc9JGx0X2N2X2xkX3JlbG9hZF9mbGFnCi0rY2FzZSAkcmVsb2FkX2ZsYWcgaW4K LSsiIiB8ICIgIiopIDs7Ci0rKikgcmVsb2FkX2ZsYWc9IiAkcmVsb2FkX2ZsYWciIDs7Ci0rZXNh YwotK3JlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycK LStjYXNlICRob3N0X29zIGluCi0rICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyop Ci0rICAgIGlmIHRlc3QgIiRHQ0MiICE9IHllczsgdGhlbgotKyAgICAgIHJlbG9hZF9jbWRzPWZh bHNlCi0rICAgIGZpCi0rICAgIDs7Ci0rICBkYXJ3aW4qKQotKyAgICBpZiB0ZXN0ICIkR0NDIiA9 IHllczsgdGhlbgotKyAgICAgIHJlbG9hZF9jbWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGli ICR7d2x9LXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKLSsgICAgZWxzZQotKyAgICAgIHJlbG9h ZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKLSsgICAgZmkK LSsgICAgOzsKLStlc2FjCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0raWYgdGVzdCAtbiAi JGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIk e2FjX3Rvb2xfcHJlZml4fW9iamR1bXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW9iamR1bXA7IGFjX3dvcmQ9JDIK LSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAk YWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2 OyB9Ci0raWYgJHthY19jdl9wcm9nX09CSkRVTVArOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkT0JKRFVNUCI7IHRo ZW4KLSsgIGFjX2N2X3Byb2dfT0JKRFVNUD0iJE9CSkRVTVAiICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19PQkpEVU1QPSIke2FjX3Rvb2xfcHJl Zml4fW9iamR1bXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0r ICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK09C SkRVTVA9JGFjX2N2X3Byb2dfT0JKRFVNUAotK2lmIHRlc3QgLW4gIiRPQkpEVU1QIjsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRPQkpE VU1QIiA+JjUKLSskYXNfZWNobyAiJE9CSkRVTVAiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2Vj aG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2df T0JKRFVNUCI7IHRoZW4KLSsgIGFjX2N0X09CSkRVTVA9JE9CSkRVTVAKLSsgICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAib2JqZHVtcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCi0rc2V0IGR1bW15IG9iamR1bXA7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19j dl9wcm9nX2FjX2N0X09CSkRVTVArOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfT0JKRFVNUCI7IHRoZW4K LSsgIGFjX2N2X3Byb2dfYWNfY3RfT0JKRFVNUD0iJGFjX2N0X09CSkRVTVAiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVf SUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9PQkpEVU1Q PSJvYmpkdW1wIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAg ZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19j dF9PQkpEVU1QPSRhY19jdl9wcm9nX2FjX2N0X09CSkRVTVAKLStpZiB0ZXN0IC1uICIkYWNfY3Rf T0JKRFVNUCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiAkYWNfY3RfT0JKRFVNUCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9PQkpEVU1Q IiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlm IHRlc3QgIngkYWNfY3RfT0JKRFVNUCIgPSB4OyB0aGVuCi0rICAgIE9CSkRVTVA9ImZhbHNlIgot KyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0r eWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6 IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVk IHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMK LSsgICAgT0JKRFVNUD0kYWNfY3RfT0JKRFVNUAotKyAgZmkKLStlbHNlCi0rICBPQkpEVU1QPSIk YWNfY3ZfcHJvZ19PQkpEVU1QIgotK2ZpCi0rCi0rdGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRV TVA9b2JqZHVtcAotKwotKwotKwotKwotKwotKwotKwotKwotKwotK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRl bnQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gcmVjb2duaXpl IGRlcGVuZGVudCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRNQUdJQ19DTUQnCi0rbHRfY3ZfZmls ZV9tYWdpY190ZXN0X2ZpbGU9Ci0rbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J3Vua25vd24n Ci0rIyBOZWVkIHRvIHNldCB0aGUgcHJlY2VkaW5nIHZhcmlhYmxlIG9uIGFsbCBwbGF0Zm9ybXMg dGhhdCBzdXBwb3J0Ci0rIyBpbnRlcmxpYnJhcnkgZGVwZW5kZW5jaWVzLgotKyMgJ25vbmUnIC0t IGRlcGVuZGVuY2llcyBub3Qgc3VwcG9ydGVkLgotKyMgYHVua25vd24nIC0tIHNhbWUgYXMgbm9u ZSwgYnV0IGRvY3VtZW50cyB0aGF0IHdlIHJlYWxseSBkb24ndCBrbm93LgotKyMgJ3Bhc3NfYWxs JyAtLSBhbGwgZGVwZW5kZW5jaWVzIHBhc3NlZCB3aXRoIG5vIGNoZWNrcy4KLSsjICd0ZXN0X2Nv bXBpbGUnIC0tIGNoZWNrIGJ5IG1ha2luZyB0ZXN0IHByb2dyYW0uCi0rIyAnZmlsZV9tYWdpYyBb W3JlZ2V4XV0nIC0tIGNoZWNrIGJ5IGxvb2tpbmcgZm9yIGZpbGVzIGluIGxpYnJhcnkgcGF0aAot KyMgd2hpY2ggcmVzcG9uZHMgdG8gdGhlICRmaWxlX21hZ2ljX2NtZCB3aXRoIGEgZ2l2ZW4gZXh0 ZW5kZWQgcmVnZXguCi0rIyBJZiB5b3UgaGF2ZSBgZmlsZScgb3IgZXF1aXZhbGVudCBvbiB5b3Vy IHN5c3RlbSBhbmQgeW91J3JlIG5vdCBzdXJlCi0rIyB3aGV0aGVyIGBwYXNzX2FsbCcgd2lsbCAq YWx3YXlzKiB3b3JrLCB5b3UgcHJvYmFibHkgd2FudCB0aGlzIG9uZS4KLSsKLStjYXNlICRob3N0 X29zIGluCi0rYWl4WzQtOV0qKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKLSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNz X2FsbAotKyAgOzsKLSsKLStic2RpWzQ1XSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0IFtNTF1TQiAoc2hhcmVkIG9iamVjdHxk eW5hbWljIGxpYiknCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAtTCcK LSsgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS9zaGxpYi9saWJjLnNvCi0rICA7OwotKwot K2N5Z3dpbiopCi0rICAjIGZ1bmNfd2luMzJfbGliaWQgaXMgYSBzaGVsbCBmdW5jdGlvbiBkZWZp bmVkIGluIGx0bWFpbi5zaAotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFn aWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21k PSdmdW5jX3dpbjMyX2xpYmlkJwotKyAgOzsKLSsKLSttaW5ndyogfCBwdzMyKikKLSsgICMgQmFz ZSBNU1lTL01pbkdXIGRvIG5vdCBwcm92aWRlIHRoZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkK LSsgICMgZnVuY193aW4zMl9saWJpZCBzaGVsbCBmdW5jdGlvbiwgc28gdXNlIGEgd2Vha2VyIHRl c3QgYmFzZWQgb24gJ29iamR1bXAnLAotKyAgIyB1bmxlc3Mgd2UgZmluZCAnZmlsZScsIGZvciBl eGFtcGxlIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLWNvbXBpbGluZy4KLSsgICMgZnVuY193aW4zMl9s aWJpZCBhc3N1bWVzIEJTRCBubSwgc28gZGlzYWxsb3cgaXQgaWYgdXNpbmcgTVMgZHVtcGJpbi4K LSsgIGlmICggdGVzdCAiJGx0X2N2X25tX2ludGVyZmFjZSIgPSAiQlNEIG5tIiAmJiBmaWxlIC8g KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKLSsgICAgbHRfY3ZfZmls ZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCi0rICBlbHNlCi0rICAgICMgS2VlcCB0aGlz IHBhdHRlcm4gaW4gc3luYyB3aXRoIHRoZSBvbmUgaW4gZnVuY193aW4zMl9saWJpZC4KLSsgICAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgKHBlaSot aTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/fHBlLWFybS13aW5jZXxwZS14ODYtNjQpJwotKyAg ICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYnCi0rICBmaQotKyAgOzsKLSsKLStj ZWdjYyopCi0rICAjIHVzZSB0aGUgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLiBTZWUg bWluZ3cqLgotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBm b3JtYXQgcGUtYXJtLS4qbGl0dGxlKC4qYXJjaGl0ZWN0dXJlOiBhcm0pPycKLSsgIGx0X2N2X2Zp bGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5 KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2Zy ZWVic2QqIHwgZHJhZ29uZmx5KikKLSsgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdS RVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICBjYXNlICRob3N0X2NwdSBpbgotKyAg ICBpKjg2ICkKLSsgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgdGhlIHByZXNlbmNlIG9mIE9wZW5C U0QgaGVyZSB3YXMgYSBtaXN0YWtlLgotKyAgICAgICMgTGV0J3MgYWNjZXB0IGJvdGggb2YgdGhl bSB1bnRpbCB0aGlzIGlzIGNsZWFyZWQgdXAuCi0rICAgICAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9J2ZpbGVfbWFnaWMgKEZyZWVCU0R8T3BlbkJTRHxEcmFnb25GbHkpL2lbMy05XTg2IChj b21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNoYXJlZCBsaWJyYXJ5JwotKyAgICAgIGx0X2N2X2ZpbGVf bWFnaWNfY21kPS91c3IvYmluL2ZpbGUKLSsgICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmls ZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvLipgCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZWxz ZQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgZmkKLSsgIDs7 Ci0rCi0rZ251KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7 OwotKwotK2hhaWt1KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0r ICA7OwotKwotK2hwdXgxMC4yMCogfCBocHV4MTEqKQotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9 L3Vzci9iaW4vZmlsZQotKyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQqKQotKyAgICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEYt WzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gSUE2NCcKLSsgICAgbHRfY3ZfZmlsZV9t YWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvaHB1eDMyL2xpYmMuc28KLSsgICAgOzsKLSsgIGhwcGEq NjQqKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTld WzAtOV1bMC05XXxFTEZbIC1dWzAtOV1bMC05XSkoLWJpdCk/KCBbTE1dU0IpPyBzaGFyZWQgb2Jq ZWN0KCBmaWxlKT9bLCAtXSogUEEtUklTQyBbMC05XVwuWzAtOV0nCi0rICAgIGx0X2N2X2ZpbGVf bWFnaWNfdGVzdF9maWxlPS91c3IvbGliL3BhMjBfNjQvbGliYy5zbAotKyAgICA7OwotKyAgKikK LSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVswLTld WzAtOV18UEEtUklTQ1swLTldXC5bMC05XSkgc2hhcmVkIGxpYnJhcnknCi0rICAgIGx0X2N2X2Zp bGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYmMuc2wKLSsgICAgOzsKLSsgIGVzYWMKLSsg IDs7Ci0rCi0raW50ZXJpeFszLTldKikKLSsgICMgUElDIGNvZGUgaXMgYnJva2VuIG9uIEludGVy aXggMy54LCB0aGF0J3Mgd2h5IHxcLmEgbm90IHxfcGljXC5hIGhlcmUKLSsgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvfFwuYSkkJwotKyAg OzsKLSsKLStpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgY2FzZSAkTEQgaW4KLSsg ICotMzJ8KiItMzIgIikgbGlibWFnaWM9MzItYml0OzsKLSsgICotbjMyfCoiLW4zMiAiKSBsaWJt YWdpYz1OMzI7OwotKyAgKi02NHwqIi02NCAiKSBsaWJtYWdpYz02NC1iaXQ7OwotKyAgKikgbGli bWFnaWM9bmV2ZXItbWF0Y2g7OwotKyAgZXNhYwotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4 KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKLSsgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK25ldGJzZCopCi0rICBpZiBlY2hvIF9fRUxG X18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KLSsgICAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc29cLlsw LTldK1wuWzAtOV0rfF9waWNcLmEpJCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc298X3BpY1wuYSkkJwotKyAgZmkK LSsgIDs7Ci0rCi0rbmV3b3M2KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxl X21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW01MXVNCIChleGVjdXRhYmxlfGR5bmFtaWMgbGli KScKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKLSsgIGx0X2N2X2ZpbGVf bWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYm5scy5zbwotKyAgOzsKLSsKLSsqbnRvKiB8ICpx bngqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0r b3BlbmJzZCopCi0rICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JF UCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBv d2VycGMiOyB0aGVuCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0 ZXJuIC9saWJbXi9dKyhcLnNvXC5bMC05XStcLlswLTldK3xcLnNvfF9waWNcLmEpJCcKLSsgIGVs c2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlte L10rKFwuc29cLlswLTldK1wuWzAtOV0rfF9waWNcLmEpJCcKLSsgIGZpCi0rICA7OwotKwotK29z ZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3Nf YWxsCi0rICA7OwotKwotK3Jkb3MqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFz c19hbGwKLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD1wYXNzX2FsbAotKyAgOzsKLSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5p eHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3N5c3Y0IHwgc3lzdjQuMyopCi0rICBjYXNlICRo b3N0X3ZlbmRvciBpbgotKyAgbW90b3JvbGEpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW01MXVNCIChzaGFyZWQgb2JqZWN0 fGR5bmFtaWMgbGliKSBNWzAtOV1bMC05XSogVmVyc2lvbiBbMC05XScKLSsgICAgbHRfY3ZfZmls ZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL3Vzci9saWIvbGliYy5zbypgCi0rICAgIDs7Ci0rICBu Y3IpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0r ICBzZXF1ZW50KQotKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxlJwotKyAgICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0 IFtMTV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYiApJwotKyAgICA7OwotKyAgc25pKQot KyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxlJwotKyAgICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD0iZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0IFtMTV1TQiBkeW5h bWljIGxpYiIKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L2xpYi9saWJjLnNvCi0r ICAgIDs7Ci0rICBzaWVtZW5zKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNz X2FsbAotKyAgICA7OwotKyAgcGMpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBh c3NfYWxsCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK3RwZiopCi0rICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLStlc2FjCi0rCi0rZmkKLSt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k IiA+JjY7IH0KLSsKLStmaWxlX21hZ2ljX2dsb2I9Ci0rd2FudF9ub2Nhc2VnbG9iPW5vCi0raWYg dGVzdCAiJGJ1aWxkIiA9ICIkaG9zdCI7IHRoZW4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIG1p bmd3KiB8IHB3MzIqKQotKyAgICBpZiAoIHNob3B0IHwgZ3JlcCBub2Nhc2VnbG9iICkgPi9kZXYv bnVsbCAyPiYxOyB0aGVuCi0rICAgICAgd2FudF9ub2Nhc2VnbG9iPXllcwotKyAgICBlbHNlCi0r ICAgICAgZmlsZV9tYWdpY19nbG9iPWBlY2hvIGFBYkJjQ2REZUVmRmdHaEhpSWpKa0tsTG1Nbk5v T3BQcVFyUnNTdFR1VXZWd1d4WHlZelogfCAkU0VEIC1lICJzL1woLi5cKS9zXC9bXDFdXC9bXDFd XC9nOy9nImAKLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLStmaQotKwotK2ZpbGVfbWFnaWNf Y21kPSRsdF9jdl9maWxlX21hZ2ljX2NtZAotK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZAotK3Rlc3QgLXogIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgJiYg ZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93bgotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK2lmIHRlc3QgLW4gIiRhY190 b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190 b29sX3ByZWZpeH1kbGx0b29sIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1kbGx0b29sOyBhY193b3JkPSQyCi0reyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dv cmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQot K2lmICR7YWNfY3ZfcHJvZ19ETExUT09MKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJERMTFRPT0wiOyB0aGVuCi0r ICBhY19jdl9wcm9nX0RMTFRPT0w9IiRETExUT09MIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0 aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfRExMVE9PTD0iJHthY190b29sX3ByZWZpeH1k bGx0b29sIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3Vu ZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkK LStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStETExUT09M PSRhY19jdl9wcm9nX0RMTFRPT0wKLStpZiB0ZXN0IC1uICIkRExMVE9PTCI7IHRoZW4KLSsgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkRExMVE9PTCIg PiY1Ci0rJGFzX2VjaG8gIiRETExUT09MIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0RMTFRP T0wiOyB0aGVuCi0rICBhY19jdF9ETExUT09MPSRETExUT09MCi0rICAjIEV4dHJhY3QgdGhlIGZp cnN0IHdvcmQgb2YgImRsbHRvb2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmdzLgotK3NldCBkdW1teSBkbGx0b29sOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJv Z19hY19jdF9ETExUT09MKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0RMTFRPT0wiOyB0aGVuCi0rICBh Y19jdl9wcm9nX2FjX2N0X0RMTFRPT0w9IiRhY19jdF9ETExUT09MIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwot KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGlu ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfRExMVE9PTD0iZGxs dG9vbCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0r ZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfRExM VE9PTD0kYWNfY3ZfcHJvZ19hY19jdF9ETExUT09MCi0raWYgdGVzdCAtbiAiJGFjX2N0X0RMTFRP T0wiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGFjX2N0X0RMTFRPT0wiID4mNQotKyRhc19lY2hvICIkYWNfY3RfRExMVE9PTCIgPiY2 OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0 ICJ4JGFjX2N0X0RMTFRPT0wiID0geDsgdGhlbgotKyAgICBETExUT09MPSJmYWxzZSIKLSsgIGVs c2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczop Ci0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2lu ZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRo IGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAg IERMTFRPT0w9JGFjX2N0X0RMTFRPT0wKLSsgIGZpCi0rZWxzZQotKyAgRExMVE9PTD0iJGFjX2N2 X3Byb2dfRExMVE9PTCIKLStmaQotKwotK3Rlc3QgLXogIiRETExUT09MIiAmJiBETExUT09MPWRs bHRvb2wKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGhvdyB0byBhc3NvY2lhdGUgcnVudGltZSBh bmQgbGluayBsaWJyYXJpZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBhc3Nv Y2lhdGUgcnVudGltZSBhbmQgbGluayBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2 X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xp Yl9jbWQ9J3Vua25vd24nCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2N5Z3dpbiogfCBtaW5ndyog fCBwdzMyKiB8IGNlZ2NjKikKLSsgICMgdHdvIGRpZmZlcmVudCBzaGVsbCBmdW5jdGlvbnMgZGVm aW5lZCBpbiBsdG1haW4uc2gKLSsgICMgZGVjaWRlIHdoaWNoIHRvIHVzZSBiYXNlZCBvbiBjYXBh YmlsaXRpZXMgb2YgJERMTFRPT0wKLSsgIGNhc2UgYCRETExUT09MIC0taGVscCAyPiYxYCBpbgot KyAgKi0taWRlbnRpZnktc3RyaWN0KikKLSsgICAgbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xp Yl9jbWQ9ZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliCi0rICAgIDs7Ci0rICAqKQotKyAgICBs dF9jdl9zaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD1mdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBs aWJfZmFsbGJhY2sKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rKikKLSsgICMgZmFsbGJhY2s6 IGFzc3VtZSBsaW5rbGliIElTIHNoYXJlZGxpYgotKyAgbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlu a2xpYl9jbWQ9IiRFQ0hPIgotKyAgOzsKLStlc2FjCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xp bmtsaWJfY21kIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJf Y21kIiA+JjY7IH0KLStzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD0kbHRfY3Zfc2hhcmVkbGli X2Zyb21fbGlua2xpYl9jbWQKLSt0ZXN0IC16ICIkc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQi ICYmIHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPSRFQ0hPCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0raWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgZm9yIGFjX3Byb2cg aW4gYXIKLSsgIGRvCi0rICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xf cHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgot K3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiAk e2FjX2N2X3Byb2dfQVIrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkQVIiOyB0aGVuCi0rICBhY19jdl9wcm9nX0FS PSIkQVIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2Rv Ci0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgot KyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K LSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3Zf cHJvZ19BUj0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVf SUZTCi0rCi0rZmkKLStmaQotK0FSPSRhY19jdl9wcm9nX0FSCi0raWYgdGVzdCAtbiAiJEFSIjsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRBUiIgPiY1Ci0rJGFzX2VjaG8gIiRBUiIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAi bm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICAgIHRlc3QgLW4gIiRBUiIgJiYgYnJlYWsKLSsgIGRv bmUKLStmaQotK2lmIHRlc3QgLXogIiRBUiI7IHRoZW4KLSsgIGFjX2N0X0FSPSRBUgotKyAgZm9y IGFjX3Byb2cgaW4gYXIKLStkbwotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNf cHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15 ICRhY19wcm9nOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9BUis6fSBm YWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlm IHRlc3QgLW4gIiRhY19jdF9BUiI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfQVI9IiRhY19j dF9BUiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8K LSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0r ICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwot KyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVz dF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9w cm9nX2FjX2N0X0FSPSIkYWNfcHJvZyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAg IGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStm aQotK2ZpCi0rYWNfY3RfQVI9JGFjX2N2X3Byb2dfYWNfY3RfQVIKLStpZiB0ZXN0IC1uICIkYWNf Y3RfQVIiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJGFjX2N0X0FSIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X0FSIiA+JjY7IH0KLStl bHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog bm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgIHRlc3QgLW4gIiRh Y19jdF9BUiIgJiYgYnJlYWsKLStkb25lCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0FSIiA9IHg7 IHRoZW4KLSsgICAgQVI9ImZhbHNlIgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxp bmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3 aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcg Y3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rv b2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgQVI9JGFjX2N0X0FSCi0rICBmaQotK2ZpCi0r Ci0rOiAke0FSPWFyfQotKzogJHtBUl9GTEFHUz1jcnV9Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgYXJjaGl2ZXIgQEZJTEUgc3VwcG9ydCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIGFyY2hpdmVyIEBGSUxFIHN1cHBvcnQuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X2Fy X2F0X2ZpbGUrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBsdF9jdl9hcl9hdF9maWxlPW5vCi0rICAgY2F0IGNvbmZkZWZzLmggLSA8PF9B Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQK LSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFj X2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgotKyAgZWNobyBjb25mdGVzdC4k YWNfb2JqZXh0ID4gY29uZnRlc3QubHN0Ci0rICAgICAgbHRfYXJfdHJ5PSckQVIgJEFSX0ZMQUdT IGxpYmNvbmZ0ZXN0LmEgQGNvbmZ0ZXN0LmxzdCA+JjUnCi0rICAgICAgeyB7IGV2YWwgZWNobyAi XCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGx0X2FyX3RyeVwiIjsgfSA+JjUK LSsgIChldmFsICRsdF9hcl90cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0 ZXN0ICRhY19zdGF0dXMgPSAwOyB9Ci0rICAgICAgaWYgdGVzdCAiJGFjX3N0YXR1cyIgLWVxIDA7 IHRoZW4KLSsJIyBFbnN1cmUgdGhlIGFyY2hpdmVyIGZhaWxzIHVwb24gYm9ndXMgZmlsZSBuYW1l cy4KLSsJcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBsaWJjb25mdGVzdC5hCi0rCXsgeyBldmFs IGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRsdF9hcl90cnlcIiI7 IH0gPiY1Ci0rICAoZXZhbCAkbHRfYXJfdHJ5KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfQotKwlpZiB0ZXN0ICIkYWNfc3RhdHVzIiAtbmUg MDsgdGhlbgotKyAgICAgICAgICBsdF9jdl9hcl9hdF9maWxlPUAKLSsgICAgICAgIGZpCi0rICAg ICAgZmkKLSsgICAgICBybSAtZiBjb25mdGVzdC4qIGxpYmNvbmZ0ZXN0LmEKLSsKLStmaQotK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4 dAotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRsdF9jdl9hcl9hdF9maWxlIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X2FyX2F0X2ZpbGUi ID4mNjsgfQotKwotK2lmIHRlc3QgIngkbHRfY3ZfYXJfYXRfZmlsZSIgPSB4bm87IHRoZW4KLSsg IGFyY2hpdmVyX2xpc3Rfc3BlYz0KLStlbHNlCi0rICBhcmNoaXZlcl9saXN0X3NwZWM9JGx0X2N2 X2FyX2F0X2ZpbGUKLStmaQotKwotKwotKwotKwotKwotKwotKwotK2lmIHRlc3QgLW4gIiRhY190 b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190 b29sX3ByZWZpeH1zdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Ci0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9c3RyaXA7IGFjX3dvcmQ9JDIKLSt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYg JHthY19jdl9wcm9nX1NUUklQKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgotKyAgYWNfY3Zf cHJvZ19TVFJJUD0iJFNUUklQIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStl bHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIg aW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIg JiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu Ci0rICAgIGFjX2N2X3Byb2dfU1RSSVA9IiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiCi0rICAgICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUK LStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK1NUUklQPSRhY19jdl9wcm9nX1NUUklQ Ci0raWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRTVFJJUCIgPiY1Ci0rJGFzX2VjaG8gIiRTVFJJUCIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkK LStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19TVFJJUCI7IHRoZW4KLSsgIGFjX2N0X1NUUklQPSRT VFJJUAotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzdHJpcCIsIHNvIGl0IGNhbiBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IHN0cmlwOyBhY193b3JkPSQy Ci0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Ig JGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m NjsgfQotK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9TVFJJUCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9T VFJJUCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9IiRhY19jdF9TVFJJUCIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0k YXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0 ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0 X1NUUklQPSJzdHJpcCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIK LSsgIGZpCi0rZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0r YWNfY3RfU1RSSVA9JGFjX2N2X3Byb2dfYWNfY3RfU1RSSVAKLStpZiB0ZXN0IC1uICIkYWNfY3Rf U1RSSVAiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJGFjX2N0X1NUUklQIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X1NUUklQIiA+JjY7 IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3Qg IngkYWNfY3RfU1RSSVAiID0geDsgdGhlbgotKyAgICBTVFJJUD0iOiIKLSsgIGVsc2UKLSsgICAg Y2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0 b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJp cGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIFNUUklQPSRh Y19jdF9TVFJJUAotKyAgZmkKLStlbHNlCi0rICBTVFJJUD0iJGFjX2N2X3Byb2dfU1RSSVAiCi0r ZmkKLSsKLSt0ZXN0IC16ICIkU1RSSVAiICYmIFNUUklQPToKLSsKLSsKLSsKLSsKLSsKLSsKLStp ZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0 IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9cmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1yYW5saWI7IGFj X3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk Li4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX1JBTkxJQis6fSBmYWxzZTsgdGhlbiA6Ci0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRSQU5M SUIiOyB0aGVuCi0rICBhY19jdl9wcm9nX1JBTkxJQj0iJFJBTkxJQiIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMK LSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBp biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX1JBTkxJQj0iJHthY190b29s X3ByZWZpeH1yYW5saWIiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAy Ci0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQot K1JBTkxJQj0kYWNfY3ZfcHJvZ19SQU5MSUIKLStpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRSQU5M SUIiID4mNQotKyRhc19lY2hvICIkUkFOTElCIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hv ICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX1JB TkxJQiI7IHRoZW4KLSsgIGFjX2N0X1JBTkxJQj0kUkFOTElCCi0rICAjIEV4dHJhY3QgdGhlIGZp cnN0IHdvcmQgb2YgInJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCi0rc2V0IGR1bW15IHJhbmxpYjsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X3Byb2df YWNfY3RfUkFOTElCKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X1JBTkxJQiI7IHRoZW4KLSsgIGFjX2N2 X3Byb2dfYWNfY3RfUkFOTElCPSIkYWNfY3RfUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlk ZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSJyYW5saWIiCi0r ICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsg IGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X1JBTkxJQj0kYWNf Y3ZfcHJvZ19hY19jdF9SQU5MSUIKLStpZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19j dF9SQU5MSUIiID4mNQotKyRhc19lY2hvICIkYWNfY3RfUkFOTElCIiA+JjY7IH0KLStlbHNlCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4m NQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfUkFO TElCIiA9IHg7IHRoZW4KLSsgICAgUkFOTElCPSI6IgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9z c19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBw cmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklO RzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7 fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgUkFOTElCPSRhY19jdF9SQU5M SUIKLSsgIGZpCi0rZWxzZQotKyAgUkFOTElCPSIkYWNfY3ZfcHJvZ19SQU5MSUIiCi0rZmkKLSsK LSt0ZXN0IC16ICIkUkFOTElCIiAmJiBSQU5MSUI9OgotKwotKwotKwotKwotKwotKwotKyMgRGV0 ZXJtaW5lIGNvbW1hbmRzIHRvIGNyZWF0ZSBvbGQtc3R5bGUgc3RhdGljIGFyY2hpdmVzLgotK29s ZF9hcmNoaXZlX2NtZHM9JyRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJwotK29sZF9wb3N0 aW5zdGFsbF9jbWRzPSdjaG1vZCA2NDQgJG9sZGxpYicKLStvbGRfcG9zdHVuaW5zdGFsbF9jbWRz PQotKwotK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICBjYXNlICRob3N0X29zIGluCi0r ICBvcGVuYnNkKikKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxf Y21kc35cJFJBTkxJQiAtdCBcJG9sZGxpYiIKLSsgICAgOzsKLSsgICopCi0rICAgIG9sZF9wb3N0 aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCi0r ICAgIDs7Ci0rICBlc2FjCi0rICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35c JFJBTkxJQiBcJG9sZGxpYiIKLStmaQotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSsgIGRhcndpbiop Ci0rICAgIGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj15ZXMgOzsKLSsgICopCi0rICAgIGxv Y2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj1ubyA7OwotK2VzYWMKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsjIElmIG5vIEMgY29t cGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIENDLgotK0xUQ0M9JHtMVENDLSIkQ0MifQotKwotKyMg SWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KLStMVENG TEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KLSsKLSsjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJndW1lbnRzLgotK2NvbXBpbGVyPSRDQwotKwotKwotKyMgQ2hlY2sgZm9y IGNvbW1hbmQgdG8gZ3JhYiB0aGUgcmF3IHN5bWJvbCBuYW1lIGZvbGxvd2VkIGJ5IEMgc3ltYm9s IGZyb20gbm0uCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBjb21tYW5kIHRvIHBhcnNlICROTSBvdXRwdXQgZnJvbSAkY29tcGlsZXIgb2JqZWN0IiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBjb21tYW5kIHRvIHBhcnNlICROTSBvdXRwdXQgZnJv bSAkY29tcGlsZXIgb2JqZWN0Li4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF9waXBlKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKwotKyMgVGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxl YXN0IGEgZmV3IG9sZCBzeXN0ZW1zLgotKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQg Y291bGQgYmUgb2xkZXIgdGhhbiBVbHRyaXg/ISEgOyldCi0rCi0rIyBDaGFyYWN0ZXIgY2xhc3Mg ZGVzY3JpYmluZyBOTSBnbG9iYWwgc3ltYm9sIGNvZGVzLgotK3N5bWNvZGU9J1tCQ0RFR1JTVF0n Ci0rCi0rIyBSZWdleHAgdG8gbWF0Y2ggc3ltYm9scyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBkaXJl Y3RseSBmcm9tIEMuCi0rc3ltcGF0PSdcKFtfQS1aYS16XVtfQS1aYS16MC05XSpcKScKLSsKLSsj IERlZmluZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVzLgotK2Nhc2UgJGhvc3Rfb3MgaW4KLSth aXgqKQotKyAgc3ltY29kZT0nW0JDRFRdJwotKyAgOzsKLStjeWd3aW4qIHwgbWluZ3cqIHwgcHcz MiogfCBjZWdjYyopCi0rICBzeW1jb2RlPSdbQUJDREdJU1RXXScKLSsgIDs7Ci0raHB1eCopCi0r ICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKyAgICBzeW1jb2RlPSdbQUJDREVH UlNUXScKLSsgIGZpCi0rICA7OwotK2lyaXgqIHwgbm9uc3RvcHV4KikKLSsgIHN5bWNvZGU9J1tC Q0RFR1JTVF0nCi0rICA7OwotK29zZiopCi0rICBzeW1jb2RlPSdbQkNERUdRUlNUXScKLSsgIDs7 Ci0rc29sYXJpcyopCi0rICBzeW1jb2RlPSdbQkRSVF0nCi0rICA7OwotK3NjbzMuMnY1KikKLSsg IHN5bWNvZGU9J1tEVF0nCi0rICA7OwotK3N5c3Y0LjJ1dzIqKQotKyAgc3ltY29kZT0nW0RUXScK LSsgIDs7Ci0rc3lzdjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKLSsgIHN5 bWNvZGU9J1tBQkRUXScKLSsgIDs7Ci0rc3lzdjQpCi0rICBzeW1jb2RlPSdbREZOU1RVXScKLSsg IDs7Ci0rZXNhYwotKwotKyMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHVzZSBpdHMgc3Rh bmRhcmQgc3ltYm9sIGNvZGVzLgotK2Nhc2UgYCROTSAtViAyPiYxYCBpbgotKypHTlUqIHwgKid3 aXRoIEJGRCcqKQotKyAgc3ltY29kZT0nW0FCQ0RHSVJTVFddJyA7OwotK2VzYWMKLSsKLSsjIFRy YW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBhIHByb3BlciBDIGRlY2xhcmF0 aW9uLgotKyMgU29tZSBzeXN0ZW1zIChlc3AuIG9uIGlhNjQpIGxpbmsgZGF0YSBhbmQgY29kZSBz eW1ib2xzIGRpZmZlcmVudGx5LAotKyMgc28gdXNlIHRoaXMgZ2VuZXJhbCBhcHByb2FjaC4KLSts dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15UIC4qIFwoLipc KSQvZXh0ZXJuIGludCBcMSgpOy9wJyAtZSAncy9eJHN5bWNvZGUqIC4qIFwoLipcKSQvZXh0ZXJu IGNoYXIgXDE7L3AnIgotKwotKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBp bnRvIHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcwotK2x0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbXiBdKlwpWyBdKiQvICB7 XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbXiBdKlwpIFwo W14gXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCi0rbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0ic2VkIC1uIC1lICdzL146IFwo W14gXSpcKVsgXSokLyAge1xcXCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNv ZGUqIFwoW14gXSpcKSBcKGxpYlteIF0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3An IC1lICdzL14kc3ltY29kZSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7XCJsaWJcMlwiLCAodm9p ZCAqKSBcJlwyfSwvcCciCi0rCi0rIyBIYW5kbGUgQ1JMRiBpbiBtaW5ndyB0b29sIGNoYWluCi0r b3B0X2NyPQotK2Nhc2UgJGJ1aWxkX29zIGluCi0rbWluZ3cqKQotKyAgb3B0X2NyPWAkRUNITyAn eFx7MCwxXH0nIHwgdHIgeCAnXDAxNSdgICMgb3B0aW9uIGNyIGluIHJlZ2V4cAotKyAgOzsKLStl c2FjCi0rCi0rIyBUcnkgd2l0aG91dCBhIHByZWZpeCB1bmRlcnNjb3JlLCB0aGVuIHdpdGggaXQu Ci0rZm9yIGFjX3N5bXByZnggaW4gIiIgIl8iOyBkbwotKwotKyAgIyBUcmFuc2Zvcm0gc3ltY29k ZSwgc3ltcGF0LCBhbmQgc3ltcHJmeCBpbnRvIGEgcmF3IHN5bWJvbCBhbmQgYSBDIHN5bWJvbC4K LSsgIHN5bXhmcm09IlxcMSAkYWNfc3ltcHJmeFxcMiBcXDIiCi0rCi0rICAjIFdyaXRlIHRoZSBy YXcgYW5kIEMgaWRlbnRpZmllcnMuCi0rICBpZiB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9 ICJNUyBkdW1wYmluIjsgdGhlbgotKyAgICAjIEZha2UgaXQgZm9yIGR1bXBiaW4gYW5kIHNheSBU IGZvciBhbnkgbm9uLXN0YXRpYyBmdW5jdGlvbgotKyAgICAjIGFuZCBEIGZvciBhbnkgZ2xvYmFs IHZhcmlhYmxlLgotKyAgICAjIEFsc28gZmluZCBDKysgYW5kIF9fZmFzdGNhbGwgc3ltYm9scyBm cm9tIE1TVkMrKywKLSsgICAgIyB3aGljaCBzdGFydCB3aXRoIEAgb3IgPy4KLSsgICAgbHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0iJEFXSyAnIlwKLSsiICAgICB7bGFzdF9zZWN0aW9uPXNl Y3Rpb247IHNlY3Rpb249XCQgM307IlwKLSsiICAgICAvU2VjdGlvbiBsZW5ndGggLiojcmVsb2Nz LioocGljayBhbnkpL3toaWRlW2xhc3Rfc2VjdGlvbl09MX07IlwKLSsiICAgICBcJCAwIX4vRXh0 ZXJuYWwgKlx8L3tuZXh0fTsiXAotKyIgICAgIC8gMCsgVU5ERUYgL3tuZXh0fTsgLyBVTkRFRiBc KFtefF1cKSooKS97bmV4dH07IlwKLSsiICAgICB7aWYoaGlkZVtzZWN0aW9uXSkgbmV4dH07IlwK LSsiICAgICB7Zj0wfTsgXCQgMH4vXChcKS4qXHwve2Y9MX07IHtwcmludGYgZiA/IFwiVCBcIiA6 IFwiRCBcIn07IlwKLSsiICAgICB7c3BsaXQoXCQgMCwgYSwgL1x8fFxyLyk7IHNwbGl0KGFbMl0s IHMpfTsiXAotKyIgICAgIHNbMV1+L15bQD9dL3twcmludCBzWzFdLCBzWzFdOyBuZXh0fTsiXAot KyIgICAgIHNbMV1+cHJmeCB7c3BsaXQoc1sxXSx0LFwiQFwiKTsgcHJpbnQgdFsxXSwgc3Vic3Ry KHRbMV0sbGVuZ3RoKHByZngpKX0iXAotKyIgICAgICcgcHJmeD1eJGFjX3N5bXByZngiCi0rICBl bHNlCi0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipb CSBdXCgkc3ltY29kZSRzeW1jb2RlKlwpWwkgXVsJIF0qJGFjX3N5bXByZngkc3ltcGF0JG9wdF9j ciQvJHN5bXhmcm0vcCciCi0rICBmaQotKyAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0i JGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgfCBzZWQgJy8gX19nbnVfbHRvL2QnIgotKwot KyAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCi0rICBwaXBl X3dvcmtzPW5vCi0rCi0rICBybSAtZiBjb25mdGVzdCoKLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19l eHQgPDxfTFRfRU9GCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIiB7Ci0rI2VuZGlm Ci0rY2hhciBubV90ZXN0X3ZhcjsKLSt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKTsKLSt2b2lkIG5t X3Rlc3RfZnVuYyh2b2lkKXt9Ci0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZgotK2lu dCBtYWluKCl7bm1fdGVzdF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9Ci0rX0xU X0VPRgotKwotKyAgaWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJ TkVOT306IFwiJGFjX2NvbXBpbGVcIiI7IH0gPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4m NQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IHRo ZW4KLSsgICAgIyBOb3cgdHJ5IHRvIGdyYWIgdGhlIHN5bWJvbHMuCi0rICAgIG5saXN0PWNvbmZ0 ZXN0Lm5tCi0rICAgIGlmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRM SU5FTk99OiBcIiROTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICIkbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfcGlwZSIgXD4gJG5saXN0XCIiOyB9ID4mNQotKyAgKGV2YWwgJE5NIGNvbmZ0ZXN0LiRh Y19vYmpleHQgXHwgIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiBcPiAkbmxpc3QpIDI+ JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9ICYm IHRlc3QgLXMgIiRubGlzdCI7IHRoZW4KLSsgICAgICAjIFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlm eWluZyB0aGUgb3V0cHV0LgotKyAgICAgIGlmIHNvcnQgIiRubGlzdCIgfCB1bmlxID4gIiRubGlz dCJUOyB0aGVuCi0rCW12IC1mICIkbmxpc3QiVCAiJG5saXN0IgotKyAgICAgIGVsc2UKLSsJcm0g LWYgIiRubGlzdCJUCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE1ha2Ugc3VyZSB0aGF0IHdlIHNu YWdnZWQgYWxsIHRoZSBzeW1ib2xzIHdlIG5lZWQuCi0rICAgICAgaWYgJEdSRVAgJyBubV90ZXN0 X3ZhciQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KLSsJaWYgJEdSRVAgJyBubV90ZXN0X2Z1 bmMkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCi0rCSAgY2F0IDw8X0xUX0VPRiA+IGNvbmZ0 ZXN0LiRhY19leHQKLSsvKiBLZWVwIHRoaXMgY29kZSBpbiBzeW5jIGJldHdlZW4gbGlidG9vbC5t NCwgbHRtYWluLCBsdF9zeXN0ZW0uaCwgYW5kIHRlc3RzLiAgKi8KLSsjaWYgZGVmaW5lZChfV0lO MzIpIHx8IGRlZmluZWQoX19DWUdXSU5fXykgfHwgZGVmaW5lZChfV0lOMzJfV0NFKQotKy8qIERB VEEgaW1wb3J0cyBmcm9tIERMTHMgb24gV0lOMzIgY29uJ3QgYmUgY29uc3QsIGJlY2F1c2UgcnVu dGltZQotKyAgIHJlbG9jYXRpb25zIGFyZSBwZXJmb3JtZWQgLS0gc2VlIGxkJ3MgZG9jdW1lbnRh dGlvbiBvbiBwc2V1ZG8tcmVsb2NzLiAgKi8KLSsjIGRlZmluZSBMVF9ETFNZTV9DT05TVAotKyNl bGlmIGRlZmluZWQoX19vc2ZfXykKLSsvKiBUaGlzIHN5c3RlbSBkb2VzIG5vdCBjb3BlIHdlbGwg d2l0aCByZWxvY2F0aW9ucyBpbiBjb25zdCBkYXRhLiAgKi8KLSsjIGRlZmluZSBMVF9ETFNZTV9D T05TVAotKyNlbHNlCi0rIyBkZWZpbmUgTFRfRExTWU1fQ09OU1QgY29uc3QKLSsjZW5kaWYKLSsK LSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiIHsKLSsjZW5kaWYKLSsKLStfTFRfRU9G Ci0rCSAgIyBOb3cgZ2VuZXJhdGUgdGhlIHN5bWJvbCBmaWxlLgotKwkgIGV2YWwgIiRsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCInIDwgIiRubGlzdCIgfCAkR1JFUCAtdiBtYWluID4+ IGNvbmZ0ZXN0LiRhY19leHQnCi0rCi0rCSAgY2F0IDw8X0xUX0VPRiA+PiBjb25mdGVzdC4kYWNf ZXh0Ci0rCi0rLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMu ICAqLwotK0xUX0RMU1lNX0NPTlNUIHN0cnVjdCB7Ci0rICBjb25zdCBjaGFyICpuYW1lOwotKyAg dm9pZCAgICAgICAqYWRkcmVzczsKLSt9Ci0rbHRfX1BST0dSQU1fX0xUWF9wcmVsb2FkZWRfc3lt Ym9sc1tdID0KLSt7Ci0rICB7ICJAUFJPR1JBTUAiLCAodm9pZCAqKSAwIH0sCi0rX0xUX0VPRgot KwkgICRTRUQgInMvXiRzeW1jb2RlJHN5bWNvZGUqIFwoLipcKSBcKC4qXCkkLyAge1wiXDJcIiwg KHZvaWQgKikgXCZcMn0sLyIgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3Qu JGFjX2V4dAotKwkgIGNhdCA8PFxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIHswLCAo dm9pZCAqKSAwfQotK307Ci0rCi0rLyogVGhpcyB3b3JrcyBhcm91bmQgYSBwcm9ibGVtIGluIEZy ZWVCU0QgbGlua2VyICovCi0rI2lmZGVmIEZSRUVCU0RfV09SS0FST1VORAotK3N0YXRpYyBjb25z dCB2b2lkICpsdF9wcmVsb2FkZWRfc2V0dXAoKSB7Ci0rICByZXR1cm4gbHRfX1BST0dSQU1fX0xU WF9wcmVsb2FkZWRfc3ltYm9sczsKLSt9Ci0rI2VuZGlmCi0rCi0rI2lmZGVmIF9fY3BsdXNwbHVz Ci0rfQotKyNlbmRpZgotK19MVF9FT0YKLSsJICAjIE5vdyB0cnkgbGlua2luZyB0aGUgdHdvIGZp bGVzLgotKwkgIG12IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRzdG0uJGFjX29iamV4dAotKwkg IGx0X2dsb2JzeW1fc2F2ZV9MSUJTPSRMSUJTCi0rCSAgbHRfZ2xvYnN5bV9zYXZlX0NGTEFHUz0k Q0ZMQUdTCi0rCSAgTElCUz0iY29uZnRzdG0uJGFjX29iamV4dCIKLSsJICBDRkxBR1M9IiRDRkxB R1MkbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWciCi0rCSAgaWYgeyB7IGV2YWwgZWNo byAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFjX2xpbmtcIiI7IH0gPiY1 Ci0rICAoZXZhbCAkYWNfbGluaykgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIHRl c3QgJGFjX3N0YXR1cyA9IDA7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhl bgotKwkgICAgcGlwZV93b3Jrcz15ZXMKLSsJICBmaQotKwkgIExJQlM9JGx0X2dsb2JzeW1fc2F2 ZV9MSUJTCi0rCSAgQ0ZMQUdTPSRsdF9nbG9ic3ltX3NhdmVfQ0ZMQUdTCi0rCWVsc2UKLSsJICBl Y2hvICJjYW5ub3QgZmluZCBubV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+JjUKLSsJZmkKLSsgICAg ICBlbHNlCi0rCWVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRubGlzdCIgPiY1Ci0r ICAgICAgZmkKLSsgICAgZWxzZQotKyAgICAgIGVjaG8gImNhbm5vdCBydW4gJGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGUiID4mNQotKyAgICBmaQotKyAgZWxzZQotKyAgICBlY2hvICIkcHJv Z25hbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotKyAgICBjYXQgY29uZnRlc3QuJGFjX2V4 dCA+JjUKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqIGNvbmZ0c3QqCi0rCi0rICAjIERvIG5v dCB1c2UgdGhlIGdsb2JhbF9zeW1ib2xfcGlwZSB1bmxlc3MgaXQgd29ya3MuCi0rICBpZiB0ZXN0 ICIkcGlwZV93b3JrcyIgPSB5ZXM7IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVsc2UKLSsgICAgbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0KLSsgIGZpCi0rZG9uZQotKwotK2ZpCi0rCi0raWYg dGVzdCAteiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCi0rICBsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0KLStmaQotK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF9waXBlJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IGZh aWxlZCIgPiY1Ci0rJGFzX2VjaG8gImZhaWxlZCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG9rIiA+JjUKLSskYXNfZWNo byAib2siID4mNjsgfQotK2ZpCi0rCi0rIyBSZXNwb25zZSBmaWxlIHN1cHBvcnQuCi0raWYgdGVz dCAiJGx0X2N2X25tX2ludGVyZmFjZSIgPSAiTVMgZHVtcGJpbiI7IHRoZW4KLSsgIG5tX2ZpbGVf bGlzdF9zcGVjPSdAJwotK2VsaWYgJE5NIC0taGVscCAyPi9kZXYvbnVsbCB8IGdyZXAgJ1tAXUZJ TEUnID4vZGV2L251bGw7IHRoZW4KLSsgIG5tX2ZpbGVfbGlzdF9zcGVjPSdAJwotK2ZpCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3Igc3lzcm9vdCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IHN5c3Jvb3QuLi4gIiA+JjY7IH0KLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLXN5c3Jvb3Qg d2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9zeXNyb290K3NldH0iID0gc2V0OyB0aGVuIDoK LSsgIHdpdGh2YWw9JHdpdGhfc3lzcm9vdDsKLStlbHNlCi0rICB3aXRoX3N5c3Jvb3Q9bm8KLStm aQotKwotKwotK2x0X3N5c3Jvb3Q9Ci0rY2FzZSAke3dpdGhfc3lzcm9vdH0gaW4gIygKLSsgeWVz KQotKyAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgICBsdF9zeXNyb290PWAkQ0Mg LS1wcmludC1zeXNyb290IDI+L2Rldi9udWxsYAotKyAgIGZpCi0rICAgOzsgIygKLSsgLyopCi0r ICAgbHRfc3lzcm9vdD1gZWNobyAiJHdpdGhfc3lzcm9vdCIgfCBzZWQgLWUgIiRzZWRfcXVvdGVf c3Vic3QiYAotKyAgIDs7ICMoCi0rIG5vfCcnKQotKyAgIDs7ICMoCi0rICopCi0rICAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICR7d2l0aF9zeXNyb290 fSIgPiY1Ci0rJGFzX2VjaG8gIiR7d2l0aF9zeXNyb290fSIgPiY2OyB9Ci0rICAgYXNfZm5fZXJy b3IgJD8gIlRoZSBzeXNyb290IG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iICIkTElORU5PIiA1 Ci0rICAgOzsKLStlc2FjCi0rCi0rIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiAke2x0X3N5c3Jvb3Q6LW5vfSIgPiY1Ci0rJGFzX2VjaG8gIiR7bHRfc3lz cm9vdDotbm99IiA+JjY7IH0KLSsKLSsKLSsKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS1l bmFibGUtbGlidG9vbC1sb2NrIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9saWJ0b29s X2xvY2src2V0fSIgPSBzZXQ7IHRoZW4gOgotKyAgZW5hYmxldmFsPSRlbmFibGVfbGlidG9vbF9s b2NrOwotK2ZpCi0rCi0rdGVzdCAieCRlbmFibGVfbGlidG9vbF9sb2NrIiAhPSB4bm8gJiYgZW5h YmxlX2xpYnRvb2xfbG9jaz15ZXMKLSsKLSsjIFNvbWUgZmxhZ3MgbmVlZCB0byBiZSBwcm9wYWdh dGVkIHRvIHRoZSBjb21waWxlciBvciBsaW5rZXIgZm9yIGdvb2QKLSsjIGxpYnRvb2wgc3VwcG9y dC4KLStjYXNlICRob3N0IGluCi0raWE2NC0qLWhwdXgqKQotKyAgIyBGaW5kIG91dCB3aGljaCBB Qkkgd2UgYXJlIHVzaW5nLgotKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsg IGlmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRh Y19jb21waWxlXCIiOyB9ID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFjX3N0 YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVuCi0rICAgIGNh c2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KLSsgICAgICAqRUxGLTMy KikKLSsJSFBVWF9JQTY0X01PREU9IjMyIgotKwk7OwotKyAgICAgICpFTEYtNjQqKQotKwlIUFVY X0lBNjRfTU9ERT0iNjQiCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYgY29uZnRl c3QqCi0rICA7OwotKyotKi1pcml4NiopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUg dXNpbmcuCi0rICBlY2hvICcjbGluZSAnJExJTkVOTycgImNvbmZpZ3VyZSInID4gY29uZnRlc3Qu JGFjX2V4dAotKyAgaWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJ TkVOT306IFwiJGFjX2NvbXBpbGVcIiI7IH0gPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4m NQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IHRo ZW4KLSsgICAgaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICAg IGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KLSsJKjMyLWJpdCop Ci0rCSAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJic21pcCIKLSsJICA7OwotKwkqTjMyKikKLSsJICBM RD0iJHtMRC1sZH0gLW1lbGYzMmJtaXBuMzIiCi0rCSAgOzsKLSsJKjY0LWJpdCopCi0rCSAgTEQ9 IiR7TEQtbGR9IC1tZWxmNjRibWlwIgotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZWxzZQotKyAg ICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KLSsJKjMyLWJp dCopCi0rCSAgTEQ9IiR7TEQtbGR9IC0zMiIKLSsJICA7OwotKwkqTjMyKikKLSsJICBMRD0iJHtM RC1sZH0gLW4zMiIKLSsJICA7OwotKwkqNjQtYml0KikKLSsJICBMRD0iJHtMRC1sZH0gLTY0Igot KwkgIDs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCoK LSsgIDs7Ci0rCi0reDg2XzY0LSprZnJlZWJzZCotZ251fHg4Nl82NC0qbGludXgqfHBwYyotKmxp bnV4Knxwb3dlcnBjKi0qbGludXgqfCBcCi0rczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKnxzcGFy YyotKmxpbnV4KikKLSsgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KLSsgIGVj aG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiB7IHsgZXZhbCBlY2hvICJcIlwk YXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNfY29tcGlsZVwiIjsgfSA+JjUKLSsg IChldmFsICRhY19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVz dCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbgotKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0 ZXN0Lm9gIGluCi0rICAgICAgKjMyLWJpdCopCi0rCWNhc2UgJGhvc3QgaW4KLSsJICB4ODZfNjQt KmtmcmVlYnNkKi1nbnUpCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODZfZmJzZCIKLSsJ ICAgIDs7Ci0rCSAgeDg2XzY0LSpsaW51eCopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kz ODYiCi0rCSAgICA7OwotKwkgIHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSpsaW51eCopCi0rCSAg ICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKLSsJICAgIDs7Ci0rCSAgczM5MHgtKmxp bnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIKLSsJICAgIDs7Ci0rCSAgc3Bh cmM2NC0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3NwYXJjIgotKwkgICAg OzsKLSsJZXNhYwotKwk7OwotKyAgICAgICo2NC1iaXQqKQotKwljYXNlICRob3N0IGluCi0rCSAg eDg2XzY0LSprZnJlZWJzZCotZ251KQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjRf ZmJzZCIKLSsJICAgIDs7Ci0rCSAgeDg2XzY0LSpsaW51eCopCi0rCSAgICBMRD0iJHtMRC1sZH0g LW0gZWxmX3g4Nl82NCIKLSsJICAgIDs7Ci0rCSAgcHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51 eCopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCi0rCSAgICA7OwotKwkgIHMzOTAq LSpsaW51eCp8czM5MCotKnRwZiopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfczM5MCIK LSsJICAgIDs7Ci0rCSAgc3BhcmMqLSpsaW51eCopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxm NjRfc3BhcmMiCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBy bSAtcmYgY29uZnRlc3QqCi0rICA7OwotKwotKyotKi1zY28zLjJ2NSopCi0rICAjIE9uIFNDTyBP cGVuU2VydmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVyZWQgYmluYXJpZXMu Ci0rICBTQVZFX0NGTEFHUz0iJENGTEFHUyIKLSsgIENGTEFHUz0iJENGTEFHUyAtYmVsZiIKLSsg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhl ciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg d2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZi4uLiAiID4mNjsgfQotK2lmICR7bHRf Y3ZfY2NfbmVlZHNfYmVsZis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGFjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSth Y19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn Ci0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFj X2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rICAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5j b25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4g KCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY190 cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotKyAgbHRfY3ZfY2NfbmVlZHNfYmVsZj15ZXMKLStl bHNlCi0rICBsdF9jdl9jY19uZWVkc19iZWxmPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLSsgICAgIGFjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSth Y19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn Ci0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFj X2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X2NjX25lZWRzX2JlbGYiID4mNQotKyRhc19lY2hv ICIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgPiY2OyB9Ci0rICBpZiB0ZXN0IHgiJGx0X2N2X2NjX25l ZWRzX2JlbGYiICE9IHgieWVzIjsgdGhlbgotKyAgICAjIHRoaXMgaXMgcHJvYmFibHkgZ2NjIDIu OC4wLCBlZ2NzIDEuMCBvciBuZXdlcjsgbm8gbmVlZCBmb3IgLWJlbGYKLSsgICAgQ0ZMQUdTPSIk U0FWRV9DRkxBR1MiCi0rICBmaQotKyAgOzsKLStzcGFyYyotKnNvbGFyaXMqKQotKyAgIyBGaW5k IG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0 LiRhY19leHQKLSsgIGlmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRM SU5FTk99OiBcIiRhY19jb21waWxlXCIiOyB9ID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+ JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0 aGVuCi0rICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KLSsgICAgKjY0LWJp dCopCi0rICAgICAgY2FzZSAkbHRfY3ZfcHJvZ19nbnVfbGQgaW4KLSsgICAgICB5ZXMqKSBMRD0i JHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiIDs7Ci0rICAgICAgKikKLSsJaWYgJHtMRC1sZH0gLTY0 IC1yIC1vIGNvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0Lm8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCSAg TEQ9IiR7TEQtbGR9IC02NCIKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsg ICAgZXNhYwotKyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIDs7Ci0rZXNhYwotKwotK25l ZWRfbG9ja3M9IiRlbmFibGVfbGlidG9vbF9sb2NrIgotKwotK2lmIHRlc3QgLW4gIiRhY190b29s X3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29s X3ByZWZpeH1tdCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0 IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9bXQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9w cm9nX01BTklGRVNUX1RPT0wrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkTUFOSUZFU1RfVE9PTCI7IHRoZW4KLSsg IGFjX2N2X3Byb2dfTUFOSUZFU1RfVE9PTD0iJE1BTklGRVNUX1RPT0wiICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZT Ci0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19NQU5JRkVTVF9UT09MPSIk e2FjX3Rvb2xfcHJlZml4fW10IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJl YWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0r ZmkKLStNQU5JRkVTVF9UT09MPSRhY19jdl9wcm9nX01BTklGRVNUX1RPT0wKLStpZiB0ZXN0IC1u ICIkTUFOSUZFU1RfVE9PTCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiAkTUFOSUZFU1RfVE9PTCIgPiY1Ci0rJGFzX2VjaG8gIiRNQU5J RkVTVF9UT09MIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkK LSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX01BTklGRVNUX1RPT0wiOyB0aGVu Ci0rICBhY19jdF9NQU5JRkVTVF9UT09MPSRNQU5JRkVTVF9UT09MCi0rICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgIm10Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KLStzZXQgZHVtbXkgbXQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX2FjX2N0 X01BTklGRVNUX1RPT0wrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfTUFOSUZFU1RfVE9PTCI7IHRoZW4K LSsgIGFjX2N2X3Byb2dfYWNfY3RfTUFOSUZFU1RfVE9PTD0iJGFjX2N0X01BTklGRVNUX1RPT0wi ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJ RlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBm b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlm IHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19h Y19jdF9NQU5JRkVTVF9UT09MPSJtdCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAg IGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStm aQotK2ZpCi0rYWNfY3RfTUFOSUZFU1RfVE9PTD0kYWNfY3ZfcHJvZ19hY19jdF9NQU5JRkVTVF9U T09MCi0raWYgdGVzdCAtbiAiJGFjX2N0X01BTklGRVNUX1RPT0wiOyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X01BTklGRVNU X1RPT0wiID4mNQotKyRhc19lY2hvICIkYWNfY3RfTUFOSUZFU1RfVE9PTCIgPiY2OyB9Ci0rZWxz ZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5v IiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0 X01BTklGRVNUX1RPT0wiID0geDsgdGhlbgotKyAgICBNQU5JRkVTVF9UT09MPSI6IgotKyAgZWxz ZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikK LSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5n IGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGgg aG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAg TUFOSUZFU1RfVE9PTD0kYWNfY3RfTUFOSUZFU1RfVE9PTAotKyAgZmkKLStlbHNlCi0rICBNQU5J RkVTVF9UT09MPSIkYWNfY3ZfcHJvZ19NQU5JRkVTVF9UT09MIgotK2ZpCi0rCi0rdGVzdCAteiAi JE1BTklGRVNUX1RPT0wiICYmIE1BTklGRVNUX1RPT0w9bXQKLSt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmICRNQU5JRkVTVF9UT09MIGlzIGEgbWFu aWZlc3QgdG9vbCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJE1BTklGRVNUX1RPT0wg aXMgYSBtYW5pZmVzdCB0b29sLi4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9wYXRoX21haW5mZXN0 X3Rvb2wrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStl bHNlCi0rICBsdF9jdl9wYXRoX21haW5mZXN0X3Rvb2w9bm8KLSsgIGVjaG8gIiRhc19tZTokTElO RU5POiAkTUFOSUZFU1RfVE9PTCAnLT8nIiA+JjUKLSsgICRNQU5JRkVTVF9UT09MICctPycgMj5j b25mdGVzdC5lcnIgPiBjb25mdGVzdC5vdXQKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICBp ZiAkR1JFUCAnTWFuaWZlc3QgVG9vbCcgY29uZnRlc3Qub3V0ID4gL2Rldi9udWxsOyB0aGVuCi0r ICAgIGx0X2N2X3BhdGhfbWFpbmZlc3RfdG9vbD15ZXMKLSsgIGZpCi0rICBybSAtZiBjb25mdGVz dCoKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkbHRfY3ZfcGF0aF9tYWluZmVzdF90b29sIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3BhdGhf bWFpbmZlc3RfdG9vbCIgPiY2OyB9Ci0raWYgdGVzdCAieCRsdF9jdl9wYXRoX21haW5mZXN0X3Rv b2wiICE9IHh5ZXM7IHRoZW4KLSsgIE1BTklGRVNUX1RPT0w9OgotK2ZpCi0rCi0rCi0rCi0rCi0r Ci0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICAgIHJoYXBzb2R5KiB8IGRhcndpbiopCi0rICAg IGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1kc3ltdXRpbCIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0 aWw7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX0RTWU1VVElMKzp9IGZhbHNlOyB0 aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAt biAiJERTWU1VVElMIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19EU1lNVVRJTD0iJERTWU1VVElMIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZT PSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7 IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfRFNZ TVVUSUw9IiR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0aWwiCi0rICAgICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVf SUZTCi0rCi0rZmkKLStmaQotK0RTWU1VVElMPSRhY19jdl9wcm9nX0RTWU1VVElMCi0raWYgdGVz dCAtbiAiJERTWU1VVElMIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICREU1lNVVRJTCIgPiY1Ci0rJGFzX2VjaG8gIiREU1lNVVRJTCIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkK LStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19EU1lNVVRJTCI7IHRoZW4KLSsgIGFjX2N0X0RTWU1V VElMPSREU1lNVVRJTAotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkc3ltdXRpbCIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGRzeW11 dGlsOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTCs6fSBm YWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlm IHRlc3QgLW4gIiRhY19jdF9EU1lNVVRJTCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfRFNZ TVVUSUw9IiRhY19jdF9EU1lNVVRJTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu Ci0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X0RTWU1VVElMPSJkc3ltdXRpbCIKLSsgICAgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotKyAgZG9uZQot K0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfRFNZTVVUSUw9JGFjX2N2X3By b2dfYWNfY3RfRFNZTVVUSUwKLStpZiB0ZXN0IC1uICIkYWNfY3RfRFNZTVVUSUwiOyB0aGVuCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0 X0RTWU1VVElMIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X0RTWU1VVElMIiA+JjY7IH0KLStlbHNl Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8i ID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3Rf RFNZTVVUSUwiID0geDsgdGhlbgotKyAgICBEU1lNVVRJTD0iOiIKLSsgIGVsc2UKLSsgICAgY2Fz ZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29s cyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxl dCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIERTWU1VVElMPSRh Y19jdF9EU1lNVVRJTAotKyAgZmkKLStlbHNlCi0rICBEU1lNVVRJTD0iJGFjX2N2X3Byb2dfRFNZ TVVUSUwiCi0rZmkKLSsKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgot KyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fW5tZWRpdCIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNf dG9vbF9wcmVmaXh9bm1lZGl0OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19OTUVE SVQrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBpZiB0ZXN0IC1uICIkTk1FRElUIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19OTUVESVQ9IiRO TUVESVQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2Rv Ci0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgot KyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K LSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3Zf cHJvZ19OTUVESVQ9IiR7YWNfdG9vbF9wcmVmaXh9bm1lZGl0IgotKyAgICAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19z YXZlX0lGUwotKwotK2ZpCi0rZmkKLStOTUVESVQ9JGFjX2N2X3Byb2dfTk1FRElUCi0raWYgdGVz dCAtbiAiJE5NRURJVCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkTk1FRElUIiA+JjUKLSskYXNfZWNobyAiJE5NRURJVCIgPiY2OyB9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0 ZXN0IC16ICIkYWNfY3ZfcHJvZ19OTUVESVQiOyB0aGVuCi0rICBhY19jdF9OTUVESVQ9JE5NRURJ VAotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJubWVkaXQiLCBzbyBpdCBjYW4gYmUg YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBubWVkaXQ7IGFjX3dvcmQ9JDIK LSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAk YWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2 OyB9Ci0raWYgJHthY19jdl9wcm9nX2FjX2N0X05NRURJVCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9O TUVESVQiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X05NRURJVD0iJGFjX2N0X05NRURJVCIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElG Uz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2Fj X2N0X05NRURJVD0ibm1lZGl0IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJl YWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0r ZmkKLSthY19jdF9OTUVESVQ9JGFjX2N2X3Byb2dfYWNfY3RfTk1FRElUCi0raWYgdGVzdCAtbiAi JGFjX2N0X05NRURJVCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkYWNfY3RfTk1FRElUIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X05N RURJVCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0r ICBpZiB0ZXN0ICJ4JGFjX2N0X05NRURJVCIgPSB4OyB0aGVuCi0rICAgIE5NRURJVD0iOiIKLSsg IGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3ll czopCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1 c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRh c19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3 aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0r ICAgIE5NRURJVD0kYWNfY3RfTk1FRElUCi0rICBmaQotK2Vsc2UKLSsgIE5NRURJVD0iJGFjX2N2 X3Byb2dfTk1FRElUIgotK2ZpCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7 IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1s aXBvIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkg JHthY190b29sX3ByZWZpeH1saXBvOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19M SVBPKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgaWYgdGVzdCAtbiAiJExJUE8iOyB0aGVuCi0rICBhY19jdl9wcm9nX0xJUE89IiRMSVBP IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAg SUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2df TElQTz0iJHthY190b29sX3ByZWZpeH1saXBvIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK LSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwot KwotK2ZpCi0rZmkKLStMSVBPPSRhY19jdl9wcm9nX0xJUE8KLStpZiB0ZXN0IC1uICIkTElQTyI7 IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkTElQTyIgPiY1Ci0rJGFzX2VjaG8gIiRMSVBPIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19l Y2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9n X0xJUE8iOyB0aGVuCi0rICBhY19jdF9MSVBPPSRMSVBPCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0 IHdvcmQgb2YgImxpcG8iLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgot K3NldCBkdW1teSBsaXBvOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9M SVBPKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0xJUE8iOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0 X0xJUE89IiRhY19jdF9MSVBPIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStl bHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIg aW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIg JiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu Ci0rICAgIGFjX2N2X3Byb2dfYWNfY3RfTElQTz0ibGlwbyIKLSsgICAgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2 ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfTElQTz0kYWNfY3ZfcHJvZ19hY19jdF9MSVBPCi0r aWYgdGVzdCAtbiAiJGFjX2N0X0xJUE8iOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X0xJUE8iID4mNQotKyRhc19lY2hvICIk YWNfY3RfTElQTyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2Zp Ci0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0xJUE8iID0geDsgdGhlbgotKyAgICBMSVBPPSI6Igot KyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0r eWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6 IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVk IHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMK LSsgICAgTElQTz0kYWNfY3RfTElQTwotKyAgZmkKLStlbHNlCi0rICBMSVBPPSIkYWNfY3ZfcHJv Z19MSVBPIgotK2ZpCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4K LSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1vdG9vbCIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNf dG9vbF9wcmVmaXh9b3Rvb2w7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX09UT09M Kzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgaWYgdGVzdCAtbiAiJE9UT09MIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19PVE9PTD0iJE9UT09M IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAg SUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2df T1RPT0w9IiR7YWNfdG9vbF9wcmVmaXh9b3Rvb2wiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZT Ci0rCi0rZmkKLStmaQotK09UT09MPSRhY19jdl9wcm9nX09UT09MCi0raWYgdGVzdCAtbiAiJE9U T09MIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6ICRPVE9PTCIgPiY1Ci0rJGFzX2VjaG8gIiRPVE9PTCIgPiY2OyB9Ci0rZWxzZQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNf Y3ZfcHJvZ19PVE9PTCI7IHRoZW4KLSsgIGFjX2N0X09UT09MPSRPVE9PTAotKyAgIyBFeHRyYWN0 IHRoZSBmaXJzdCB3b3JkIG9mICJvdG9vbCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCi0rc2V0IGR1bW15IG90b29sOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3Zf cHJvZ19hY19jdF9PVE9PTCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9PVE9PTCI7IHRoZW4KLSsgIGFj X2N2X3Byb2dfYWNfY3RfT1RPT0w9IiRhY19jdF9PVE9PTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAk YWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X09UT09MPSJvdG9vbCIKLSsg ICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotKyAg ZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfT1RPT0w9JGFjX2N2 X3Byb2dfYWNfY3RfT1RPT0wKLStpZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0wiOyB0aGVuCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X09U T09MIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X09UT09MIiA+JjY7IH0KLStlbHNlCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRh c19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfT1RPT0wiID0g eDsgdGhlbgotKyAgICBPVE9PTD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGls aW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQg d2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5n IGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190 b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIE9UT09MPSRhY19jdF9PVE9PTAotKyAgZmkK LStlbHNlCi0rICBPVE9PTD0iJGFjX2N2X3Byb2dfT1RPT0wiCi0rZmkKLSsKLSsgICAgaWYgdGVz dCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICIke2FjX3Rvb2xfcHJlZml4fW90b29sNjQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW90b29sNjQ7IGFjX3dv cmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4u ICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX09UT09MNjQrOn0gZmFsc2U7IHRoZW4gOgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkT1RPT0w2 NCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfT1RPT0w2ND0iJE9UT09MNjQiICMgTGV0IHRoZSB1c2Vy IG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZT Ci0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19PVE9PTDY0PSIke2FjX3Rv b2xfcHJlZml4fW90b29sNjQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVh ayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStm aQotK09UT09MNjQ9JGFjX2N2X3Byb2dfT1RPT0w2NAotK2lmIHRlc3QgLW4gIiRPVE9PTDY0Ijsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRPVE9PTDY0IiA+JjUKLSskYXNfZWNobyAiJE9UT09MNjQiID4mNjsgfQotK2Vsc2UKLSsgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0r JGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2 X3Byb2dfT1RPT0w2NCI7IHRoZW4KLSsgIGFjX2N0X09UT09MNjQ9JE9UT09MNjQKLSsgICMgRXh0 cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAib3Rvb2w2NCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IG90b29sNjQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYg JHthY19jdl9wcm9nX2FjX2N0X09UT09MNjQrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0w2NCI7 IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w2ND0iJGFjX2N0X09UT09MNjQiICMgTGV0 IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJ RlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFz X3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9P VE9PTDY0PSJvdG9vbDY0IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsg MgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkK LSthY19jdF9PVE9PTDY0PSRhY19jdl9wcm9nX2FjX2N0X09UT09MNjQKLStpZiB0ZXN0IC1uICIk YWNfY3RfT1RPT0w2NCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkYWNfY3RfT1RPT0w2NCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9P VE9PTDY0IiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsK LSsgIGlmIHRlc3QgIngkYWNfY3RfT1RPT0w2NCIgPSB4OyB0aGVuCi0rICAgIE9UT09MNjQ9Ijoi Ci0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4K LSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklO RzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4 ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNh YwotKyAgICBPVE9PTDY0PSRhY19jdF9PVE9PTDY0Ci0rICBmaQotK2Vsc2UKLSsgIE9UT09MNjQ9 IiRhY19jdl9wcm9nX09UT09MNjQiCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgLXNp bmdsZV9tb2R1bGUgbGlua2VyIGZsYWciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAt c2luZ2xlX21vZHVsZSBsaW5rZXIgZmxhZy4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfYXBwbGVf Y2Nfc2luZ2xlX21vZCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9bm8KLSsgICAgICBpZiB0 ZXN0IC16ICIke0xUX01VTFRJX01PRFVMRX0iOyB0aGVuCi0rCSMgQnkgZGVmYXVsdCB3ZSB3aWxs IGFkZCB0aGUgLXNpbmdsZV9tb2R1bGUgZmxhZy4gWW91IGNhbiBvdmVycmlkZQotKwkjIGJ5IGVp dGhlciBzZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBMVF9NVUxUSV9NT0RVTEUKLSsJ IyBub24tZW1wdHkgYXQgY29uZmlndXJlIHRpbWUsIG9yIGJ5IGFkZGluZyAtbXVsdGlfbW9kdWxl IHRvIHRoZQotKwkjIGxpbmsgZmxhZ3MuCi0rCXJtIC1yZiBsaWJjb25mdGVzdC5keWxpYioKLSsJ ZWNobyAiaW50IGZvbyh2b2lkKXtyZXR1cm4gMTt9IiA+IGNvbmZ0ZXN0LmMKLSsJZWNobyAiJExU Q0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0ZXN0LmR5bGliIFwKLSstZHluYW1pY2xp YiAtV2wsLXNpbmdsZV9tb2R1bGUgY29uZnRlc3QuYyIgPiY1Ci0rCSRMVENDICRMVENGTEFHUyAk TERGTEFHUyAtbyBsaWJjb25mdGVzdC5keWxpYiBcCi0rCSAgLWR5bmFtaWNsaWIgLVdsLC1zaW5n bGVfbW9kdWxlIGNvbmZ0ZXN0LmMgMj5jb25mdGVzdC5lcnIKLSsgICAgICAgIF9sdF9yZXN1bHQ9 JD8KLSsJaWYgdGVzdCAtZiBsaWJjb25mdGVzdC5keWxpYiAmJiB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyICYmIHRlc3QgJF9sdF9yZXN1bHQgPSAwOyB0aGVuCi0rCSAgbHRfY3ZfYXBwbGVfY2Nfc2lu Z2xlX21vZD15ZXMKLSsJZWxzZQotKwkgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rCWZpCi0rCXJt IC1yZiBsaWJjb25mdGVzdC5keWxpYioKLSsJcm0gLWYgY29uZnRlc3QuKgotKyAgICAgIGZpCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0 X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfYXBwbGVfY2Nf c2luZ2xlX21vZCIgPiY2OyB9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgZm9yIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgbGlua2VyIGZsYWci ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGxp bmtlciBmbGFnLi4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xp c3QrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm8KLSsgICAgICBzYXZlX0xERkxB R1M9JExERkxBR1MKLSsgICAgICBlY2hvICJfbWFpbiIgPiBjb25mdGVzdC5zeW0KLSsgICAgICBM REZMQUdTPSIkTERGTEFHUyAtV2wsLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCxjb25mdGVzdC5zeW0i Ci0rICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAg cmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0 aGVuIDoKLSsgIGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD15ZXMKLStlbHNlCi0rICBs dF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVleHQgY29u ZnRlc3QuJGFjX2V4dAotKwlMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKwotK2ZpCi0reyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9sZF9leHBv cnRlZF9zeW1ib2xzX2xpc3QiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfbGRfZXhwb3J0ZWRfc3lt Ym9sc19saXN0IiA+JjY7IH0KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgLWZvcmNlX2xvYWQgbGlua2VyIGZsYWciID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAtZm9yY2VfbG9hZCBsaW5rZXIgZmxhZy4uLiAiID4mNjsgfQot K2lmICR7bHRfY3ZfbGRfZm9yY2VfbG9hZCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X2xkX2ZvcmNlX2xvYWQ9bm8KLSsgICAg ICBjYXQgPiBjb25mdGVzdC5jIDw8IF9MVF9FT0YKLStpbnQgZm9yY2VkX2xvYWRlZCgpIHsgcmV0 dXJuIDI7fQotK19MVF9FT0YKLSsgICAgICBlY2hvICIkTFRDQyAkTFRDRkxBR1MgLWMgLW8gY29u ZnRlc3QubyBjb25mdGVzdC5jIiA+JjUKLSsgICAgICAkTFRDQyAkTFRDRkxBR1MgLWMgLW8gY29u ZnRlc3QubyBjb25mdGVzdC5jIDI+JjUKLSsgICAgICBlY2hvICIkQVIgY3J1IGxpYmNvbmZ0ZXN0 LmEgY29uZnRlc3QubyIgPiY1Ci0rICAgICAgJEFSIGNydSBsaWJjb25mdGVzdC5hIGNvbmZ0ZXN0 Lm8gMj4mNQotKyAgICAgIGVjaG8gIiRSQU5MSUIgbGliY29uZnRlc3QuYSIgPiY1Ci0rICAgICAg JFJBTkxJQiBsaWJjb25mdGVzdC5hIDI+JjUKLSsgICAgICBjYXQgPiBjb25mdGVzdC5jIDw8IF9M VF9FT0YKLStpbnQgbWFpbigpIHsgcmV0dXJuIDA7fQotK19MVF9FT0YKLSsgICAgICBlY2hvICIk TFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAtV2wsLWZvcmNl X2xvYWQsLi9saWJjb25mdGVzdC5hIiA+JjUKLSsgICAgICAkTFRDQyAkTFRDRkxBR1MgJExERkxB R1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAtV2wsLWZvcmNlX2xvYWQsLi9saWJjb25mdGVzdC5h IDI+Y29uZnRlc3QuZXJyCi0rICAgICAgX2x0X3Jlc3VsdD0kPwotKyAgICAgIGlmIHRlc3QgLWYg Y29uZnRlc3QgJiYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0ID0g MCAmJiAkR1JFUCBmb3JjZWRfbG9hZCBjb25mdGVzdCAyPiYxID4vZGV2L251bGw7IHRoZW4KLSsJ bHRfY3ZfbGRfZm9yY2VfbG9hZD15ZXMKLSsgICAgICBlbHNlCi0rCWNhdCBjb25mdGVzdC5lcnIg PiY1Ci0rICAgICAgZmkKLSsgICAgICAgIHJtIC1mIGNvbmZ0ZXN0LmVyciBsaWJjb25mdGVzdC5h IGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMKLSsgICAgICAgIHJtIC1yZiBjb25mdGVzdC5kU1lNCi0rCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0 X2N2X2xkX2ZvcmNlX2xvYWQiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfbGRfZm9yY2VfbG9hZCIg PiY2OyB9Ci0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5b MDEyXSkKLSsgICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7 d2x9c3VwcHJlc3MnIDs7Ci0rICAgIGRhcndpbjEuKikKLSsgICAgICBfbHRfZGFyX2FsbG93X3Vu ZGVmaW5lZD0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJl c3MnIDs7Ci0rICAgIGRhcndpbiopICMgZGFyd2luIDUueCBvbgotKyAgICAgICMgaWYgcnVubmlu ZyBvbiAxMC41IG9yIGxhdGVyLCB0aGUgZGVwbG95bWVudCB0YXJnZXQgZGVmYXVsdHMKLSsgICAg ICAjIHRvIHRoZSBPUyB2ZXJzaW9uLCBpZiBvbiB4ODYsIGFuZCAxMC40LCB0aGUgZGVwbG95bWVu dAotKyAgICAgICMgdGFyZ2V0IGRlZmF1bHRzIHRvIDEwLjQuIERvbid0IHlvdSBsb3ZlIGl0Pwot KyAgICAgIGNhc2UgJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQtMTAuMH0sJGhvc3QgaW4KLSsJ MTAuMCwqODYqLWRhcndpbjgqfDEwLjAsKi1kYXJ3aW5bOTFdKikKLSsJICBfbHRfZGFyX2FsbG93 X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7Ci0rCTEw LlswMTJdKikKLSsJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tZmxhdF9uYW1lc3Bh Y2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0rCTEwLiopCi0rCSAgX2x0X2Rh cl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7 OwotKyAgICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgICAgaWYgdGVzdCAiJGx0X2N2X2Fw cGxlX2NjX3NpbmdsZV9tb2QiID0gInllcyI7IHRoZW4KLSsgICAgICBfbHRfZGFyX3NpbmdsZV9t b2Q9JyRzaW5nbGVfbW9kdWxlJwotKyAgICBmaQotKyAgICBpZiB0ZXN0ICIkbHRfY3ZfbGRfZXhw b3J0ZWRfc3ltYm9sc19saXN0IiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgX2x0X2Rhcl9leHBvcnRf c3ltcz0nICR7d2x9LWV4cG9ydGVkX3N5bWJvbHNfbGlzdCwkb3V0cHV0X29iamRpci8ke2xpYm5h bWV9LXN5bWJvbHMuZXhwc3ltJwotKyAgICBlbHNlCi0rICAgICAgX2x0X2Rhcl9leHBvcnRfc3lt cz0nfiROTUVESVQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAk e2xpYn0nCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgIiREU1lNVVRJTCIgIT0gIjoiICYmIHRlc3Qg IiRsdF9jdl9sZF9mb3JjZV9sb2FkIiA9ICJubyI7IHRoZW4KLSsgICAgICBfbHRfZHN5bXV0aWw9 J34kRFNZTVVUSUwgJGxpYiB8fCA6JwotKyAgICBlbHNlCi0rICAgICAgX2x0X2RzeW11dGlsPQot KyAgICBmaQotKyAgICA7OwotKyAgZXNhYwotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRD UFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21w aWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3NvciIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3Iu Li4gIiA+JjY7IH0KLSsjIE9uIFN1bnMsIHNvbWV0aW1lcyAkQ1BQIG5hbWVzIGEgZGlyZWN0b3J5 LgotK2lmIHRlc3QgLW4gIiRDUFAiICYmIHRlc3QgLWQgIiRDUFAiOyB0aGVuCi0rICBDUFA9Ci0r ZmkKLStpZiB0ZXN0IC16ICIkQ1BQIjsgdGhlbgotKyAgaWYgJHthY19jdl9wcm9nX0NQUCs6fSBm YWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgICAg ICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKLSsgICAg Zm9yIENQUCBpbiAiJENDIC1FIiAiJENDIC1FIC10cmFkaXRpb25hbC1jcHAiICIvbGliL2NwcCIK LSsgICAgZG8KLSsgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCi0rZm9yIGFjX2NfcHJlcHJvY193 YXJuX2ZsYWcgaW4gJycgeWVzCi0rZG8KLSsgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21l cyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKLSsgICMgd2l0aCBhIGZyZXNoIGNyb3Nz LWNvbXBpbGVyIHdvcmtzLgotKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlm IF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0rICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4g b24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KLSsgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMg dGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCi0rICAjIG5vdCBqdXN0IHRo cm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KLSsg IGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29u ZmRlZnMuaC4gICovCi0rI2lmZGVmIF9fU1REQ19fCi0rIyBpbmNsdWRlIDxsaW1pdHMuaD4KLSsj ZWxzZQotKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2VuZGlmCi0rCQkgICAgIFN5bnRheCBlcnJv cgotK19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgotKwotK2Vs c2UKLSsgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2ZpCi0r cm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LmkgY29uZnRlc3QuJGFjX2V4dAotKwotKyAgIyBP Sywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhl YWRlcnMKLSsgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCi0rICBjYXQgY29uZmRlZnMuaCAt IDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNp bmNsdWRlIDxhY19ub25leGlzdGVudC5oPgotK19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2NwcCAi JExJTkVOTyI7IHRoZW4gOgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4K LStjb250aW51ZQotK2Vsc2UKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0rYWNfcHJlcHJvY19v az06Ci0rYnJlYWsKLStmaQotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC5pIGNvbmZ0ZXN0 LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lG RUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCi0rcm0gLWYgY29uZnRlc3QuaSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotK2lmICRhY19wcmVwcm9jX29rOyB0aGVuIDoKLSsg IGJyZWFrCi0rZmkKLSsKLSsgICAgZG9uZQotKyAgICBhY19jdl9wcm9nX0NQUD0kQ1BQCi0rCi0r ZmkKLSsgIENQUD0kYWNfY3ZfcHJvZ19DUFAKLStlbHNlCi0rICBhY19jdl9wcm9nX0NQUD0kQ1BQ Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JENQUCIgPiY1Ci0rJGFzX2VjaG8gIiRDUFAiID4mNjsgfQotK2FjX3ByZXByb2Nfb2s9ZmFsc2UK LStmb3IgYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBo ZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAg IyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRz Lmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxp bWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0 aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNl ciwKLSsgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8g Y2F0Y2ggdGhpcyBjYXNlLgotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3Qu JGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18KLSsjIGlu Y2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYK LSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0raWYgYWNfZm5fY190cnlfY3BwICIkTElO RU5PIjsgdGhlbiA6Ci0rCi0rZWxzZQotKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0 LgotK2NvbnRpbnVlCi0rZmkKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuaSBjb25mdGVz dC4kYWNfZXh0Ci0rCi0rICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdo ZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycwotKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4K LSsgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQg Y29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0rX0FDRU9GCi0r aWYgYWNfZm5fY190cnlfY3BwICIkTElORU5PIjsgdGhlbiA6Ci0rICAjIEJyb2tlbjogc3VjY2Vz cyBvbiBpbnZhbGlkIGlucHV0LgotK2NvbnRpbnVlCi0rZWxzZQotKyAgIyBQYXNzZXMgYm90aCB0 ZXN0cy4KLSthY19wcmVwcm9jX29rPToKLSticmVhawotK2ZpCi0rcm0gLWYgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LmkgY29uZnRlc3QuJGFjX2V4dAotKwotK2RvbmUKLSsjIEJlY2F1c2Ugb2YgYGJy ZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLSty bSAtZiBjb25mdGVzdC5pIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0raWYgJGFjX3By ZXByb2Nfb2s7IHRoZW4gOgotKwotK2Vsc2UKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSthc19mbl9lcnJvciAkPyAiQyBw cmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi0rU2VlIFxgY29uZmlnLmxv ZycgZm9yIG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KLStmaQotKwotK2FjX2V4dD1jCi0r YWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT ID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rCi0reyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgQU5TSSBD IGhlYWRlciBmaWxlcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFk ZXIgZmlsZXMuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X2hlYWRlcl9zdGRjKzp9IGZhbHNlOyB0 aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHN0ZGFyZy5oPgotKyNpbmNsdWRl IDxzdHJpbmcuaD4KLSsjaW5jbHVkZSA8ZmxvYXQuaD4KLSsKLStpbnQKLSttYWluICgpCi0rewot KwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2NvbXBp bGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGFjX2N2X2hlYWRlcl9zdGRjPXllcwotK2Vsc2UKLSsg IGFjX2N2X2hlYWRlcl9zdGRjPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsKLStpZiB0ZXN0ICRhY19jdl9oZWFk ZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVj bGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VP RiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8 c3RyaW5nLmg+Ci0rCi0rX0FDRU9GCi0raWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4 dCIpIDI+JjUgfAotKyAgJEVHUkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbiA6Ci0r Ci0rZWxzZQotKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KLStmaQotK3JtIC1mIGNvbmZ0ZXN0Kgot KwotK2ZpCi0rCi0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsgICMg SVNDIDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90IGRlY2xhcmUgZnJlZSwgY29udHJhcnkgdG8gQU5T SS4KLSsgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBl bmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKwotK19BQ0VPRgotK2lm IChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSsgICRFR1JFUCAiZnJl ZSIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDoKLSsKLStlbHNlCi0rICBhY19jdl9oZWFkZXJfc3Rk Yz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkKLSsKLStpZiB0ZXN0ICRhY19jdl9o ZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyAvYmluL2NjIGluIElyaXgtNC4wLjUgZ2V0cyBu b24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5nIC1hbnNpLgotKyAgaWYgdGVzdCAiJGNy b3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgOgotK2Vsc2UKLSsgIGNhdCBjb25mZGVm cy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICov Ci0rI2luY2x1ZGUgPGN0eXBlLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpZiAoKCcgJyAm IDB4MEZGKSA9PSAweDAyMCkKLSsjIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYmIChj KSA8PSAneicpCi0rIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgoYykg LSAnYScpIDogKGMpKQotKyNlbHNlCi0rIyBkZWZpbmUgSVNMT1dFUihjKSBcCi0rCQkgICAoKCdh JyA8PSAoYykgJiYgKGMpIDw9ICdpJykgXAotKwkJICAgICB8fCAoJ2onIDw9IChjKSAmJiAoYykg PD0gJ3InKSBcCi0rCQkgICAgIHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicpKQotKyMgZGVm aW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCi0rI2VuZGlm Ci0rCi0rI2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYpKSkK LStpbnQKLSttYWluICgpCi0rewotKyAgaW50IGk7Ci0rICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBp KyspCi0rICAgIGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKLSsJfHwgdG91cHBl ciAoaSkgIT0gVE9VUFBFUiAoaSkpCi0rICAgICAgcmV0dXJuIDI7Ci0rICByZXR1cm4gMDsKLSt9 Ci0rX0FDRU9GCi0raWYgYWNfZm5fY190cnlfcnVuICIkTElORU5PIjsgdGhlbiA6Ci0rCi0rZWxz ZQotKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KLStmaQotK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUu Y29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKLSsgIGNvbmZ0 ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuYmVhbSBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSsKLStm aQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRhY19jdl9oZWFkZXJfc3RkYyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJfc3RkYyIg PiY2OyB9Ci0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsKLSskYXNf ZWNobyAiI2RlZmluZSBTVERDX0hFQURFUlMgMSIgPj5jb25mZGVmcy5oCi0rCi0rZmkKLSsKLSsj IE9uIElSSVggNS4zLCBzeXMvdHlwZXMgYW5kIGludHR5cGVzLmggYXJlIGNvbmZsaWN0aW5nLgot K2ZvciBhY19oZWFkZXIgaW4gc3lzL3R5cGVzLmggc3lzL3N0YXQuaCBzdGRsaWIuaCBzdHJpbmcu aCBtZW1vcnkuaCBzdHJpbmdzLmggXAotKwkJICBpbnR0eXBlcy5oIHN0ZGludC5oIHVuaXN0ZC5o Ci0rZG8gOgotKyAgYXNfYWNfSGVhZGVyPWAkYXNfZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFk ZXIiIHwgJGFzX3RyX3NoYAotK2FjX2ZuX2NfY2hlY2tfaGVhZGVyX2NvbXBpbGUgIiRMSU5FTk8i ICIkYWNfaGVhZGVyIiAiJGFzX2FjX0hlYWRlciIgIiRhY19pbmNsdWRlc19kZWZhdWx0Ci0rIgot K2lmIGV2YWwgdGVzdCBcInhcJCIkYXNfYWNfSGVhZGVyIlwiID0geCJ5ZXMiOyB0aGVuIDoKLSsg IGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8kYWNf aGVhZGVyIiB8ICRhc190cl9jcHBgIDEKLStfQUNFT0YKLSsKLStmaQotKwotK2RvbmUKLSsKLSsK LStmb3IgYWNfaGVhZGVyIGluIGRsZmNuLmgKLStkbyA6Ci0rICBhY19mbl9jX2NoZWNrX2hlYWRl cl9jb21waWxlICIkTElORU5PIiAiZGxmY24uaCIgImFjX2N2X2hlYWRlcl9kbGZjbl9oIiAiJGFj X2luY2x1ZGVzX2RlZmF1bHQKLSsiCi0raWYgdGVzdCAieCRhY19jdl9oZWFkZXJfZGxmY25faCIg PSB4eWVzOyB0aGVuIDoKLSsgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIEhB VkVfRExGQ05fSCAxCi0rX0FDRU9GCi0rCi0rZmkKLSsKLStkb25lCi0rCi0rCi0rCi0rZnVuY19z dHJpcG5hbWVfY25mICgpCi0rewotKyAgY2FzZSAkezJ9IGluCi0rICAuKikgZnVuY19zdHJpcG5h bWVfcmVzdWx0PWAkRUNITyAiJHszfSIgfCAkU0VEICJzJV4kezF9JSU7IHMlXFxcXCR7Mn1cJCUl ImA7OwotKyAgKikgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIiR7M30iIHwgJFNFRCAi cyVeJHsxfSUlOyBzJSR7Mn1cJCUlImA7OwotKyAgZXNhYwotK30gIyBmdW5jX3N0cmlwbmFtZV9j bmYKLSsKLSsKLSsKLSsKLSsKLSsjIFNldCBvcHRpb25zCi0rCi0rCi0rCi0rICAgICAgICBlbmFi bGVfZGxvcGVuPW5vCi0rCi0rCi0rICBlbmFibGVfd2luMzJfZGxsPW5vCi0rCi0rCi0rCi0rCi0r Ci0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1waWMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0 aF9waWMrc2V0fSIgPSBzZXQ7IHRoZW4gOgotKyAgd2l0aHZhbD0kd2l0aF9waWM7IHBpY19tb2Rl PSIkd2l0aHZhbCIKLStlbHNlCi0rICBwaWNfbW9kZT1kZWZhdWx0Ci0rZmkKLSsKLSsKLSt0ZXN0 IC16ICIkcGljX21vZGUiICYmIHBpY19tb2RlPWRlZmF1bHQKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1mYXN0LWluc3RhbGwgd2FzIGdpdmVuLgotK2lm IHRlc3QgIiR7ZW5hYmxlX2Zhc3RfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICBlbmFi bGV2YWw9JGVuYWJsZV9mYXN0X2luc3RhbGw7IHA9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNh c2UgJGVuYWJsZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzIDs7Ci0r ICAgIG5vKSBlbmFibGVfZmFzdF9pbnN0YWxsPW5vIDs7Ci0rICAgICopCi0rICAgICAgZW5hYmxl X2Zhc3RfaW5zdGFsbD1ubwotKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAg V2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lm cz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGlu ICRlbmFibGV2YWw7IGRvCi0rCUlGUz0iJGx0X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIg PSAiWCRwIjsgdGhlbgotKwkgIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzCi0rCWZpCi0rICAgICAg ZG9uZQotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStl bHNlCi0rICBlbmFibGVfZmFzdF9pbnN0YWxsPXllcwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rIyBUaGlzIGNhbiBiZSB1c2VkIHRvIHJlYnVpbGQgbGlidG9vbCB3aGVu IG5lZWRlZAotK0xJQlRPT0xfREVQUz0iJGx0bWFpbiIKLSsKLSsjIEFsd2F5cyB1c2Ugb3VyIG93 biBsaWJ0b29sLgotK0xJQlRPT0w9JyQoU0hFTEwpICQodG9wX2J1aWxkZGlyKS9saWJ0b29sJwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotK3Rlc3QgLXogIiRMTl9TIiAmJiBMTl9TPSJsbiAtcyIKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLStpZiB0ZXN0IC1uICIke1pT SF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZmkKLSsK LSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBv YmpkaXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBvYmpkaXIuLi4gIiA+JjY7IH0K LStpZiAke2x0X2N2X29iamRpcis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIHJtIC1mIC5saWJzIDI+L2Rldi9udWxsCi0rbWtkaXIgLmxp YnMgMj4vZGV2L251bGwKLStpZiB0ZXN0IC1kIC5saWJzOyB0aGVuCi0rICBsdF9jdl9vYmpkaXI9 LmxpYnMKLStlbHNlCi0rICAjIE1TLURPUyBkb2VzIG5vdCBhbGxvdyBmaWxlbmFtZXMgdGhhdCBi ZWdpbiB3aXRoIGEgZG90LgotKyAgbHRfY3Zfb2JqZGlyPV9saWJzCi0rZmkKLStybWRpciAubGli cyAyPi9kZXYvbnVsbAotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRsdF9jdl9vYmpkaXIiID4mNQotKyRhc19lY2hvICIkbHRfY3Zfb2JqZGly IiA+JjY7IH0KLStvYmpkaXI9JGx0X2N2X29iamRpcgotKwotKwotKwotKwotKwotK2NhdCA+PmNv bmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIExUX09CSkRJUiAiJGx0X2N2X29iamRpci8iCi0r X0FDRU9GCi0rCi0rCi0rCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeDMqKQotKyAgIyBBSVgg c29tZXRpbWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZv ciBzb21lCi0rICAjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25t ZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKLSsgICMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9r ZS4KLSsgIGlmIHRlc3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgotKyAg ICBDT0xMRUNUX05BTUVTPQotKyAgICBleHBvcnQgQ09MTEVDVF9OQU1FUwotKyAgZmkKLSsgIDs7 Ci0rZXNhYwotKwotKyMgR2xvYmFsIHZhcmlhYmxlczoKLStvZmlsZT1saWJ0b29sCi0rY2FuX2J1 aWxkX3NoYXJlZD15ZXMKLSsKLSsjIEFsbCBrbm93biBsaW5rZXJzIHJlcXVpcmUgYSBgLmEnIGFy Y2hpdmUgZm9yIHN0YXRpYyBsaW5raW5nIChleGNlcHQgTVNWQywKLSsjIHdoaWNoIG5lZWRzICcu bGliJykuCi0rbGliZXh0PWEKLSsKLSt3aXRoX2dudV9sZD0iJGx0X2N2X3Byb2dfZ251X2xkIgot KwotK29sZF9DQz0iJENDIgotK29sZF9DRkxBR1M9IiRDRkxBR1MiCi0rCi0rIyBTZXQgc2FuZSBk ZWZhdWx0cyBmb3IgdmFyaW91cyB2YXJpYWJsZXMKLSt0ZXN0IC16ICIkQ0MiICYmIENDPWNjCi0r dGVzdCAteiAiJExUQ0MiICYmIExUQ0M9JENDCi0rdGVzdCAteiAiJExUQ0ZMQUdTIiAmJiBMVENG TEFHUz0kQ0ZMQUdTCi0rdGVzdCAteiAiJExEIiAmJiBMRD1sZAotK3Rlc3QgLXogIiRhY19vYmpl eHQiICYmIGFjX29iamV4dD1vCi0rCi0rZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCi0r ICBjYXNlICRjY190ZW1wIGluCi0rICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hl IHwgKltcXC9dY2NhY2hlICkgOzsKLSsgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5 IHwgKltcXC9dcHVyaWZ5ICkgOzsKLSsgICAgXC0qKSA7OwotKyAgICAqKSBicmVhazs7Ci0rICBl c2FjCi0rZG9uZQotK2NjX2Jhc2VuYW1lPWAkRUNITyAiJGNjX3RlbXAiIHwgJFNFRCAicyUuKi8l JTsgcyVeJGhvc3RfYWxpYXMtJSUiYAotKwotKwotKyMgT25seSBwZXJmb3JtIHRoZSBjaGVjayBm b3IgZmlsZSwgaWYgdGhlIGNoZWNrIG1ldGhvZCByZXF1aXJlcyBpdAotK3Rlc3QgLXogIiRNQUdJ Q19DTUQiICYmIE1BR0lDX0NNRD1maWxlCi0rY2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4K LStmaWxlX21hZ2ljKikKLSsgIGlmIHRlc3QgIiRmaWxlX21hZ2ljX2NtZCIgPSAnJE1BR0lDX0NN RCc7IHRoZW4KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3IgJHthY190b29sX3ByZWZpeH1maWxlIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJHthY190b29sX3ByZWZpeH1maWxlLi4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9w YXRoX01BR0lDX0NNRCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGNhc2UgJE1BR0lDX0NNRCBpbgotK1tcXC8qXSB8ICA/OltcXC9dKikK LSsgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUgdXNlciBvdmVy cmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLSsgIDs7Ci0rKikKLSsgIGx0X3NhdmVfTUFHSUNf Q01EPSIkTUFHSUNfQ01EIgotKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJB VE9SCi0rICBhY19kdW1teT0iL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCIKLSsgIGZvciBh Y19kaXIgaW4gJGFjX2R1bW15OyBkbwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgdGVz dCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAkYWNfZGlyLyR7YWNf dG9vbF9wcmVmaXh9ZmlsZTsgdGhlbgotKyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNf ZGlyLyR7YWNfdG9vbF9wcmVmaXh9ZmlsZSIKLSsgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdp Y190ZXN0X2ZpbGUiOyB0aGVuCi0rCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rCSJm aWxlX21hZ2ljICIqKQotKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNr X21ldGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4qXCkiYAotKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3Bh dGhfTUFHSUNfQ01EIgotKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190 ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKLSsJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgi ID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICA6Ci0rCSAgZWxzZQotKwkgICAgY2F0IDw8X0xUX0VP RiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBkZXRl Y3Qgc2hhcmVkIGxpYnJhcmllcywKLSsqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9kdWNlcyBvdXRw dXQgdGhhdCBsaWJ0b29sIGNhbm5vdCByZWNvZ25pemUuCi0rKioqIFRoZSByZXN1bHQgaXMgdGhh dCBsaWJ0b29sIG1heSBmYWlsIHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCi0rKioqIGFz IHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmll cyB0aGF0Ci0rKioqIGRlcGVuZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJvZ3JhbXMgbGlu a2VkIHdpdGggc3VjaCBsaWJ0b29sCi0rKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJkbGVz cyBvZiB0aGlzIHByb2JsZW0uICBOZXZlcnRoZWxlc3MsIHlvdQotKyoqKiBtYXkgd2FudCB0byBy ZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KLSsqKiog YnVnLWxpYnRvb2xAZ251Lm9yZwotKwotK19MVF9FT0YKLSsJICBmaSA7OwotKwllc2FjCi0rICAg ICAgZmkKLSsgICAgICBicmVhawotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2ZV9p ZnMiCi0rICBNQUdJQ19DTUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIKLSsgIDs7Ci0rZXNhYwotK2Zp Ci0rCi0rTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0raWYgdGVzdCAtbiAiJE1B R0lDX0NNRCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiAkTUFHSUNfQ01EIiA+JjUKLSskYXNfZWNobyAiJE1BR0lDX0NNRCIgPiY2OyB9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rCi0rCi0rCi0r aWYgdGVzdCAteiAiJGx0X2N2X3BhdGhfTUFHSUNfQ01EIjsgdGhlbgotKyAgaWYgdGVzdCAtbiAi JGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIGZvciBmaWxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgZmlsZS4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfcGF0aF9NQUdJQ19DTUQrOn0gZmFs c2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXNl ICRNQUdJQ19DTUQgaW4KLStbXFwvKl0gfCAgPzpbXFwvXSopCi0rICBsdF9jdl9wYXRoX01BR0lD X0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBh IHBhdGguCi0rICA7OwotKyopCi0rICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKLSsg IGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgYWNfZHVtbXk9Ii91 c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgiCi0rICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsg ZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFj X2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgJGFjX2Rpci9maWxlOyB0aGVuCi0rICAgICAgbHRfY3Zf cGF0aF9NQUdJQ19DTUQ9IiRhY19kaXIvZmlsZSIKLSsgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9t YWdpY190ZXN0X2ZpbGUiOyB0aGVuCi0rCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0r CSJmaWxlX21hZ2ljICIqKQotKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2No ZWNrX21ldGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4qXCkiYAotKwkgIE1BR0lDX0NNRD0iJGx0X2N2 X3BhdGhfTUFHSUNfQ01EIgotKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdp Y190ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKLSsJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVn ZXgiID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICA6Ci0rCSAgZWxzZQotKwkgICAgY2F0IDw8X0xU X0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBk ZXRlY3Qgc2hhcmVkIGxpYnJhcmllcywKLSsqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9kdWNlcyBv dXRwdXQgdGhhdCBsaWJ0b29sIGNhbm5vdCByZWNvZ25pemUuCi0rKioqIFRoZSByZXN1bHQgaXMg dGhhdCBsaWJ0b29sIG1heSBmYWlsIHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCi0rKioq IGFzIHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJh cmllcyB0aGF0Ci0rKioqIGRlcGVuZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJvZ3JhbXMg bGlua2VkIHdpdGggc3VjaCBsaWJ0b29sCi0rKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJk bGVzcyBvZiB0aGlzIHByb2JsZW0uICBOZXZlcnRoZWxlc3MsIHlvdQotKyoqKiBtYXkgd2FudCB0 byByZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KLSsq KiogYnVnLWxpYnRvb2xAZ251Lm9yZwotKwotK19MVF9FT0YKLSsJICBmaSA7OwotKwllc2FjCi0r ICAgICAgZmkKLSsgICAgICBicmVhawotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2 ZV9pZnMiCi0rICBNQUdJQ19DTUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIKLSsgIDs7Ci0rZXNhYwot K2ZpCi0rCi0rTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0raWYgdGVzdCAtbiAi JE1BR0lDX0NNRCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiAkTUFHSUNfQ01EIiA+JjUKLSskYXNfZWNobyAiJE1BR0lDX0NNRCIgPiY2 OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICBlbHNl Ci0rICAgIE1BR0lDX0NNRD06Ci0rICBmaQotK2ZpCi0rCi0rICBmaQotKyAgOzsKLStlc2FjCi0r Ci0rIyBVc2UgQyBmb3IgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBz Y3JpcHQKLSsKLStsdF9zYXZlX0NDPSIkQ0MiCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQ UEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSsKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVu c2lvbiBmb3IgQyB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PWMKLSsKLSsjIE9iamVjdCBmaWxlIGV4 dGVuc2lvbiBmb3IgY29tcGlsZWQgQyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStvYmpleHQ9 JG9iamV4dAotKwotKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0r bHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgotKwot KyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCi0rbHRfc2ltcGxlX2xpbmtf dGVzdF9jb2RlPSdpbnQgbWFpbigpe3JldHVybigwKTt9JwotKwotKwotKwotKwotKwotKwotKwot KyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0Mt IiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2Ug Q0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0Mg dG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rCi0r IyBTYXZlIHRoZSBkZWZhdWx0IGNvbXBpbGVyLCBzaW5jZSBpdCBnZXRzIG92ZXJ3cml0dGVuIHdo ZW4gdGhlIG90aGVyCi0rIyB0YWdzIGFyZSBiZWluZyB0ZXN0ZWQsIGFuZCBfTFRfVEFHVkFSKGNv bXBpbGVyLCBbXSkgaXMgYSBOT1AuCi0rY29tcGlsZXJfREVGQVVMVD0kQ0MKLSsKLSsjIHNhdmUg d2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotK2FjX291dGZpbGU9Y29u ZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5j b25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRT RUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxlcnBs YXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRSTSBjb25mdGVzdCoKLSsKLSthY19vdXRmaWxlPWNv bmZ0ZXN0LiRhY19vYmpleHQKLStlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29u ZnRlc3QuJGFjX2V4dAotK2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcv XiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgotK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNh dCBjb25mdGVzdC5lcnJgCi0rJFJNIC1yIGNvbmZ0ZXN0KgotKwotKwotKyMjIENBVkVBVCBFTVBU T1I6Ci0rIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBt YWNyb3MsIGRvIG5vdCBjaGFuZ2UKLSsjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2Ug bW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQotKyMjIHdoYXQgeW91IGFy ZSBkb2luZy4uLgotK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KLSsKLStsdF9wcm9nX2Nv bXBpbGVyX25vX2J1aWx0aW5fZmxhZz0KLSsKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgot KyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgIG52Y2MqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVy X25vX2J1aWx0aW5fZmxhZz0nIC1YY29tcGlsZXIgLWZuby1idWlsdGluJyA7OwotKyAgKikKLSsg ICAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9JyAtZm5vLWJ1aWx0aW4nIDs7Ci0r ICBlc2FjCi0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWZuby1ydHRp IC1mbm8tZXhjZXB0aW9ucy4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfcHJvZ19jb21waWxlcl9y dHRpX2V4Y2VwdGlvbnMrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz1ubwot KyAgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVf Y29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGx0X2NvbXBpbGVyX2Zs YWc9Ii1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBl aXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBi ZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgot KyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tz bGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVu KSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgICMgVGhlIG9wdGlvbiBp cyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCi0rICAg bHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFH U31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNv bmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29t cGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkbHRfY29t cGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsg ICBhY19zdGF0dXM9JD8KLSsgICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVz KSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNh biBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAg ICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwg b3V0cHV0LgotKyAgICAgJEVDSE8gIiRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFNFRCAn L14kL2QnID5jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVz dC5lcnIgPmNvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBk aWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICBs dF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz15ZXMKLSsgICAgIGZpCi0rICAgZmkK LSsgICAkUk0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25z IiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zIiA+ JjY7IH0KLSsKLStpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25z IiA9IHh5ZXM7IHRoZW4KLSsgICAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9IiRs dF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25z IgotK2Vsc2UKLSsgICAgOgotK2ZpCi0rCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsgIGx0X3By b2dfY29tcGlsZXJfd2w9Ci0rbHRfcHJvZ19jb21waWxlcl9waWM9Ci0rbHRfcHJvZ19jb21waWxl cl9zdGF0aWM9Ci0rCi0rCi0rICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBsdF9w cm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLXN0 YXRpYycKLSsKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeCopCi0rICAgICAgIyBB bGwgQUlYIGNvZGUgaXMgUElDLgotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0 aGVuCi0rCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCi0rCWx0X3Byb2dfY29t cGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFt aWdhb3MqKQotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgcG93ZXJwYykKLSsgICAg ICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0Ci0rICAgICAg ICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDJwotKyAgICAgICAgOzsKLSsgICAgICBt NjhrKQotKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0 byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKLSsgICAgICAgICAgICAjIGFkZGluZyB0aGUg YC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwK LSsgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgotKyAgICAgICAgICAgIGx0X3Byb2dfY29t cGlsZXJfcGljPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCi0rICAg ICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBiZW9zKiB8IGlyaXg1KiB8 IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICAgICAgIyBQ SUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCi0rICAgICAgOzsKLSsKLSsgICAgbWlu Z3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKLSsgICAgICAjIFRoaXMgaGFj ayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5n Ci0rICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9y dCBzeW1ib2xzIGZvciBleGFtcGxlKS4KLSsgICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2Nj IGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxlCi0rICAgICAgIyAo LS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVy X3BpYz0nLURETExfRVhQT1JUJwotKyAgICAgIDs7Ci0rCi0rICAgIGRhcndpbiogfCByaGFwc29k eSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQotKyAgICAg ICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKLSsgICAgICBs dF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZuby1jb21tb24nCi0rICAgICAgOzsKLSsKLSsgICAgaGFp a3UqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBIYWlrdS4KLSsgICAgICAjIFRo ZSAiLXN0YXRpYyIgZmxhZyBleGlzdHMsIGJ1dCBpcyBicm9rZW4uCi0rICAgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWM9Ci0rICAgICAgOzsKLSsKLSsgICAgaHB1eCopCi0rICAgICAgIyBQSUMg aXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0Ci0r ICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQg dGhlIHBpYyBmbGFnCi0rICAgICAgIyBzZXRzIHRoZSBkZWZhdWx0IFRMUyBtb2RlbCBhbmQgYWZm ZWN0cyBpbmxpbmluZy4KLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQq KQotKwkjICtaIHRoZSBkZWZhdWx0Ci0rCTs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxl cl9waWM9Jy1mUElDJwotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBpbnRl cml4WzMtOV0qKQotKyAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMg Z2VuZXJhdGUgYnJva2VuIGNvZGUuCi0rICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFy ZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCi0rICAgICAgOzsKLSsKLSsgICAgbXNkb3NkamdwcCop Ci0rICAgICAgIyBKdXN0IGJlY2F1c2Ugd2UgdXNlIEdDQyBkb2Vzbid0IG1lYW4gd2Ugc3VkZGVu bHkgZ2V0IHNoYXJlZCBsaWJyYXJpZXMKLSsgICAgICAjIG9uIHN5c3RlbXMgdGhhdCBkb24ndCBz dXBwb3J0IHRoZW0uCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5v Ci0rICAgICAgZW5hYmxlX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rCi0rICAgICpudG8qIHwgKnFu eCopCi0rICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJl ZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKLSsgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCi0rICAg ICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDIC1zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsg ICAgc3lzdjQqTVAqKQotKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KLSsJbHRfcHJv Z19jb21waWxlcl9waWM9LUtjb25mb3JtX3BpYwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsg ICAgKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMnCi0rICAgICAgOzsKLSsg ICAgZXNhYwotKwotKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICBudmNjKikgIyBDdWRh IENvbXBpbGVyIERyaXZlciAyLjIKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctWGxpbmtl ciAnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1YY29tcGlsZXIgLWZQSUMnCi0rICAg ICAgOzsKLSsgICAgZXNhYwotKyAgZWxzZQotKyAgICAjIFBPUlRNRSBDaGVjayBmb3IgZmxhZyB0 byBwYXNzIGxpbmtlciBmbGFncyB0aHJvdWdoIHRoZSBzeXN0ZW0gY29tcGlsZXIuCi0rICAgIGNh c2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4KikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSct V2wsJwotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSMgQUlYIDUg bm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSct QnN0YXRpYycKLSsgICAgICBlbHNlCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctYm5zbyAt Ykk6L2xpYi9zeXNjYWxscy5leHAnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBtaW5n dyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQotKyAgICAgICMgVGhpcyBoYWNr IGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcK LSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0 IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctRERM TF9FWFBPUlQnCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSop Ci0rICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKLSsgICAgICAjIFBJQyBpcyB0aGUg ZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKLSsgICAgICAjIG5v dCBmb3IgUEEgSFAtVVguCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBocHBhKjY0 KnxpYTY0KikKLSsJIyArWiB0aGUgZGVmYXVsdAotKwk7OwotKyAgICAgICopCi0rCWx0X3Byb2df Y29tcGlsZXJfcGljPScrWicKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgIyBJcyB0aGVyZSBh IGJldHRlciBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyB0aGF0IHdvcmtzIHdpdGggdGhlIGJ1bmRs ZWQgQ0M/Ci0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9JyR7d2x9LWEgJHt3bH1hcmNo aXZlJwotKyAgICAgIDs7Ci0rCi0rICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0r ICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKLSsgICAgICAjIFBJQyAod2l0aCAtS1BJ QykgaXMgdGhlIGRlZmF1bHQuCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25f c2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNv bGFyaXMqLWdudSkKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICMgb2xkIElu dGVsIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgotKyAgICAgIGVjYyop Ci0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSct S1BJQycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCi0rICAgICAgICA7Owot KyAgICAgICMgaWNjIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0NDLgotKyAgICAgICMg SUNDIDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgotKyAgICAgIGljYyogfCBpZm9y dCopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGlj PSctZlBJQycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCi0rICAgICAgICA7 OwotKyAgICAgICMgTGFoZXkgRm9ydHJhbiA4LjEuCi0rICAgICAgbGY5NSopCi0rCWx0X3Byb2df Y29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctLXNoYXJlZCcKLSsJ bHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy0tc3RhdGljJwotKwk7OwotKyAgICAgIG5hZ2Zvciop Ci0rCSMgTkFHIEZvcnRyYW4gY29tcGlsZXIKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLC1X bCwsJwotKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLVBJQycKLSsJbHRfcHJvZ19jb21waWxlcl9z dGF0aWM9Jy1Cc3RhdGljJwotKwk7OwotKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwg cGdmOTUqIHwgcGdmb3J0cmFuKikKLSsgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgY29tcGlsZXJz ICgqbm90KiB0aGUgUGVudGl1bSBnY2MgY29tcGlsZXIsCi0rCSMgd2hpY2ggbG9va3MgdG8gYmUg YSBkZWFkIHByb2plY3QpCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2df Y29tcGlsZXJfcGljPSctZnBpYycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGlj JwotKyAgICAgICAgOzsKLSsgICAgICBjY2MqKQotKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl93 bD0nLVdsLCcKLSsgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgotKyAgICAgICAgbHRf cHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJwotKyAgICAgICAgOzsKLSsgICAgICB4 bCogfCBiZ3hsKiB8IGJnZiogfCBtcGl4bCopCi0rCSMgSUJNIFhMIEMgOC4wL0ZvcnRyYW4gMTAu MSwgMTEuMSBvbiBQUEMgYW5kIEJsdWVHZW5lCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwn Ci0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctcXBpYycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0 aWM9Jy1xc3RhdGljbGluaycKLSsJOzsKLSsgICAgICAqKQotKwljYXNlIGAkQ0MgLVYgMj4mMSB8 IHNlZCA1cWAgaW4KLSsJKlN1blwgRiogfCAqU3VuKkZvcnRyYW4qKQotKwkgICMgU3VuIEZvcnRy YW4gOC4zIHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKLSsJICBs dF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCi0rCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9 Jy1Cc3RhdGljJwotKwkgIGx0X3Byb2dfY29tcGlsZXJfd2w9JycKLSsJICA7OwotKwkqU3VuXCBD KikKLSsJICAjIFN1biBDIDUuOQotKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKLSsJ ICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rCSAgbHRfcHJvZ19jb21waWxl cl93bD0nLVdsLCcKLSsJICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7 Ci0rCi0rICAgIG5ld3NvczYpCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwot KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwot KyAgICAqbnRvKiB8ICpxbngqKQotKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQg dG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCi0rICAgICAgIyBpdCB3aWxs IGNvcmVkdW1wLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQyAtc2hhcmVkJwot KyAgICAgIDs7Ci0rCi0rICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICBsdF9wcm9n X2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICMgQWxsIE9TRi8xIGNvZGUgaXMgUElDLgotKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwot KyAgICByZG9zKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQn Ci0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9w aWM9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsg ICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KiB8IHN1 bmY3NyogfCBzdW5mOTAqIHwgc3VuZjk1KikKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVFvcHRp b24gbGQgJzs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCc7OwotKyAg ICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBzdW5vczQqKQotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfd2w9Jy1Rb3B0aW9uIGxkICcKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLVBJ QycKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgOzsK LSsKLSsgICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqKQotKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfd2w9Jy1XbCwnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwot KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwot KyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgotKwlsdF9w cm9nX2NvbXBpbGVyX3BpYz0nLUtjb25mb3JtX3BpYycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0 aWM9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgdW5p eHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKLSsgICAgICBsdF9wcm9n X2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycK LSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsK LSsgICAgdW5pY29zKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rCi0rICAg IHV0czQqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctcGljJwotKyAgICAgIGx0X3By b2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rICAg IGVzYWMKLSsgIGZpCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgIyBGb3IgcGxhdGZvcm1zIHdo aWNoIGRvIG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6Ci0rICAqZGpncHAq KQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0KLSsgICAgOzsKLSsgICopCi0rICAgIGx0X3By b2dfY29tcGlsZXJfcGljPSIkbHRfcHJvZ19jb21waWxlcl9waWMgLURQSUMiCi0rICAgIDs7Ci0r ZXNhYwotKwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDLi4uICIgPiY2OyB9 Ci0raWYgJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGlj PSRsdF9wcm9nX2NvbXBpbGVyX3BpYwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYyIgPiY1Ci0rJGFz X2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYyIgPiY2OyB9Ci0rbHRfcHJvZ19jb21waWxl cl9waWM9JGx0X2N2X3Byb2dfY29tcGlsZXJfcGljCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBz dXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0raWYgdGVzdCAtbiAiJGx0X3By b2dfY29tcGlsZXJfcGljIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGls ZXJfcGljIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgUElD IGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljIHdvcmtzLi4uICIgPiY2OyB9Ci0raWYgJHtsdF9j dl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrcys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtz PW5vCi0rICAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgZWNobyAiJGx0X3Np bXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgbHRfY29tcGls ZXJfZmxhZz0iJGx0X3Byb2dfY29tcGlsZXJfcGljIC1EUElDIgotKyAgICMgSW5zZXJ0IHRoZSBv cHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCi0rICAg IyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhl IGVuZC4KLSsgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFp biBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCi0rICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBh IGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KLSsgICAjIFRoZSBv cHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2Vk LgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdz Oi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczog W14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDog JGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzog JGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5l cnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICBlY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFj X3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCi0rICAgICAjIFRoZSBjb21w aWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXpl ZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhl IHVzdWFsIG91dHB1dC4KLSsgICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8 ICRTRUQgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcg Y29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5l cjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsg ICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3M9eWVzCi0rICAgICBmaQotKyAgIGZp Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPiY1 Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPiY2OyB9Ci0rCi0r aWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPSB4eWVzOyB0aGVuCi0r ICAgIGNhc2UgJGx0X3Byb2dfY29tcGlsZXJfcGljIGluCi0rICAgICAiIiB8ICIgIiopIDs7Ci0r ICAgICAqKSBsdF9wcm9nX2NvbXBpbGVyX3BpYz0iICRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgOzsK LSsgICAgIGVzYWMKLStlbHNlCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPQotKyAgICAgbHRf cHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCi0rZmkKLSsKLStmaQotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKyMKLSsjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3Rh dGljIGZsYWcgYWN0dWFsbHkgd29ya3MuCi0rIwotK3dsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2 YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKLSt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmICRjb21waWxl ciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3 b3Jrcy4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Mr On0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrcz1ubwotKyAgIHNhdmVfTERGTEFHUz0i JExERkxBR1MiCi0rICAgTERGTEFHUz0iJExERkxBR1MgJGx0X3RtcF9zdGF0aWNfZmxhZyIKLSsg ICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsg ICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRh Y19leGVleHQ7IHRoZW4KLSsgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25v cmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhl cmUgYXJlIHdhcm5pbmdzCi0rICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotKyAg ICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgotKyAgICAgICBjYXQg Y29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICAgJEVDSE8gIiRfbHRfbGlua2VyX2JvaWxlcnBsYXRl IiB8ICRTRUQgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAkU0VEICcvXiQvZDsgL14g KisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgICAgaWYgZGlmZiBjb25mdGVz dC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICBsdF9jdl9wcm9n X2NvbXBpbGVyX3N0YXRpY193b3Jrcz15ZXMKLSsgICAgICAgZmkKLSsgICAgIGVsc2UKLSsgICAg ICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9eWVzCi0rICAgICBmaQotKyAgIGZp Ci0rICAgJFJNIC1yIGNvbmZ0ZXN0KgotKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0 X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3By b2dfY29tcGlsZXJfc3RhdGljX3dvcmtzIiA+JjY7IH0KLSsKLStpZiB0ZXN0IHgiJGx0X2N2X3By b2dfY29tcGlsZXJfc3RhdGljX3dvcmtzIiA9IHh5ZXM7IHRoZW4KLSsgICAgOgotK2Vsc2UKLSsg ICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Ci0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJGNv bXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dCIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4uLiAi ID4mNjsgfQotK2lmICR7bHRfY3ZfcHJvZ19jb21waWxlcl9jX28rOn0gZmFsc2U7IHRoZW4gOgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBp bGVyX2Nfbz1ubwotKyAgICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAgIG1rZGlyIGNv bmZ0ZXN0Ci0rICAgY2QgY29uZnRlc3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hvICIkbHRfc2lt cGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICBsdF9jb21w aWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJbnNlcnQgdGhl IG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsg ICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0 aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250 YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90 IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgIGx0X2Nv bXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHsw LDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25mdGVz dFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVy X2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0X2NvbXBpbGVc IiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQotKyAg IGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3Rh dHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAg ICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5v dCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsg ICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IG91 dC9jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3Qu ZXJyID5vdXQvY29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVy MiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0 aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vPXllcwotKyAgICAgZmkKLSsgICBm aQotKyAgIGNobW9kIHUrdyAuIDI+JjUKLSsgICAkUk0gY29uZnRlc3QqCi0rICAgIyBTR0kgQysr IGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgotKyAgICMg dGVtcGxhdGUgaW5zdGFudGlhdGlvbgotKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRSTSBv dXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKLSsgICAkUk0gb3V0LyogJiYgcm1k aXIgb3V0Ci0rICAgY2QgLi4KLSsgICAkUk0gLXIgY29uZnRlc3QKLSsgICAkUk0gY29uZnRlc3Qq Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2df Y29tcGlsZXJfY19vIiA+JjY7IH0KLSsKLSsKLSsKLSsKLSsKLSsKLSsgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRz IC1jIC1vIGZpbGUuJGFjX29iamV4dCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNv bXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4uLiAiID4mNjsgfQotK2lmICR7 bHRfY3ZfcHJvZ19jb21waWxlcl9jX28rOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz1ubwotKyAg ICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2Qg Y29uZnRlc3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVz dF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxlcl9mbGFnPSItbyBv dXQvY29uZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIg KDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUg YSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMg Tm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVz IGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28g dGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRh Y19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21w aWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGls ZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAo ZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChl dmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwot KyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1z IG91dC9jb25mdGVzdDIuJGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVy IGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0r ICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgICRFQ0hPICIkX2x0 X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAK LSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRl c3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9j b25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgIGx0 X2N2X3Byb2dfY29tcGlsZXJfY19vPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgIGNobW9kIHUr dyAuIDI+JjUKLSsgICAkUk0gY29uZnRlc3QqCi0rICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwg Y3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgotKyAgICMgdGVtcGxhdGUgaW5zdGFu dGlhdGlvbgotKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAm JiBybWRpciBvdXQvaWlfZmlsZXMKLSsgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0Ci0rICAgY2Qg Li4KLSsgICAkUk0gLXIgY29uZnRlc3QKLSsgICAkUk0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3Byb2df Y29tcGlsZXJfY19vIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+ JjY7IH0KLSsKLSsKLSsKLSsKLStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJGx0 X2N2X3Byb2dfY29tcGlsZXJfY19vIiA9IG5vICYmIHRlc3QgIiRuZWVkX2xvY2tzIiAhPSBubzsg dGhlbgotKyAgIyBkbyBub3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZSBvZiBuZWVkX2xvY2tzIHByb3Zp ZGVkIGJ5IHRoZSB1c2VyCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcyIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzLi4uICIgPiY2OyB9 Ci0rICBoYXJkX2xpbmtzPXllcwotKyAgJFJNIGNvbmZ0ZXN0KgotKyAgbG4gY29uZnRlc3QuYSBj b25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KLSsgIHRvdWNoIGNvbmZ0ZXN0 LmEKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8KLSsg IGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGhhcmRf bGlua3MiID4mNQotKyRhc19lY2hvICIkaGFyZF9saW5rcyIgPiY2OyB9Ci0rICBpZiB0ZXN0ICIk aGFyZF9saW5rcyIgPSBubzsgdGhlbgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IFdBUk5JTkc6IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBz byBcYG1ha2UgLWonIG1heSBiZSB1bnNhZmUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBi ZSB1bnNhZmUiID4mMjt9Ci0rICAgIG5lZWRfbG9ja3M9d2FybgotKyAgZmkKLStlbHNlCi0rICBu ZWVkX2xvY2tzPW5vCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxp bmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJl ZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLSsKLSsgIHJ1bnBhdGhfdmFyPQotKyAgYWxsb3dfdW5k ZWZpbmVkX2ZsYWc9Ci0rICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9bm8KLSsgIGFyY2hpdmVfY21k cz0KLSsgIGFyY2hpdmVfZXhwc3ltX2NtZHM9Ci0rICBjb21waWxlcl9uZWVkc19vYmplY3Q9bm8K LSsgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9bm8KLSsgIGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYz0KLSsgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29u dmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBz b3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIGhhcmRjb2RlX2F1dG9tYXRpYz1ubwot KyAgaGFyZGNvZGVfZGlyZWN0PW5vCi0rICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9bm8KLSsg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Ci0rICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X2xkPQotKyAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0KLSsgIGhhcmRjb2RlX21pbnVzX0w9 bm8KLSsgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9dW5zdXBwb3J0ZWQKLSsgIGluaGVyaXRfcnBh dGg9bm8KLSsgIGxpbmtfYWxsX2RlcGxpYnM9dW5rbm93bgotKyAgbW9kdWxlX2NtZHM9Ci0rICBt b2R1bGVfZXhwc3ltX2NtZHM9Ci0rICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPQotKyAgb2xk X2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9Ci0rICB0aHJlYWRfc2FmZV9mbGFnX3NwZWM9Ci0r ICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KLSsgICMgaW5jbHVkZV9leHBzeW1zIHNob3VsZCBi ZSBhIGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIHN5bWJvbHMgdG8gYmUgKmFsd2F5cyoKLSsgICMg aW5jbHVkZWQgaW4gdGhlIHN5bWJvbCBsaXN0Ci0rICBpbmNsdWRlX2V4cHN5bXM9Ci0rICAjIGV4 Y2x1ZGVfZXhwc3ltcyBjYW4gYmUgYW4gZXh0ZW5kZWQgcmVnZXhwIG9mIHN5bWJvbHMgdG8gZXhj bHVkZQotKyAgIyBpdCB3aWxsIGJlIHdyYXBwZWQgYnkgYCAoJyBhbmQgYCkkJywgc28gb25lIG11 c3Qgbm90IG1hdGNoIGJlZ2lubmluZyBvcgotKyAgIyBlbmQgb2YgbGluZS4gIEV4YW1wbGU6IGBh fGJjfC4qZC4qJyB3aWxsIGV4Y2x1ZGUgdGhlIHN5bWJvbHMgYGEnIGFuZCBgYmMnLAotKyAgIyBh cyB3ZWxsIGFzIGFueSBzeW1ib2wgdGhhdCBjb250YWlucyBgZCcuCi0rICBleGNsdWRlX2V4cHN5 bXM9J19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKicKLSsgICMgQWx0aG91 Z2ggX0dMT0JBTF9PRkZTRVRfVEFCTEVfIGlzIGEgdmFsaWQgc3ltYm9sIEMgbmFtZSwgbW9zdCBh Lm91dAotKyAgIyBwbGF0Zm9ybXMgKGFiKXVzZSBpdCBpbiBQSUMgY29kZSwgYnV0IHRoZWlyIGxp bmtlcnMgZ2V0IGNvbmZ1c2VkIGlmCi0rICAjIHRoZSBzeW1ib2wgaXMgZXhwbGljaXRseSByZWZl cmVuY2VkLiAgU2luY2UgcG9ydGFibGUgY29kZSBjYW5ub3QKLSsgICMgcmVseSBvbiB0aGlzIHN5 bWJvbCBuYW1lLCBpdCdzIHByb2JhYmx5IGZpbmUgdG8gbmV2ZXIgaW5jbHVkZSBpdCBpbgotKyAg IyBwcmVsb2FkZWQgc3ltYm9sIHRhYmxlcy4KLSsgICMgRXhjbHVkZSBzaGFyZWQgbGlicmFyeSBp bml0aWFsaXphdGlvbi9maW5hbGl6YXRpb24gc3ltYm9scy4KLSsgIGV4dHJhY3RfZXhwc3ltc19j bWRzPQotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIq IHwgY2VnY2MqKQotKyAgICAjIEZJWE1FOiB0aGUgTVNWQysrIHBvcnQgaGFzbid0IGJlZW4gdGVz dGVkIGluIGEgbG9vb29uZyB0aW1lCi0rICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJy ZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCi0rICAgICMgTWljcm9zb2Z0IFZpc3VhbCBD KysuCi0rICAgIGlmIHRlc3QgIiRHQ0MiICE9IHllczsgdGhlbgotKyAgICAgIHdpdGhfZ251X2xk PW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBpbnRlcml4KikKLSsgICAgIyB3ZSBqdXN0IGhvcGUv YXNzdW1lIHRoaXMgaXMgZ2NjIGFuZCBub3QgYzg5ICg9IE1TVkMrKykKLSsgICAgd2l0aF9nbnVf bGQ9eWVzCi0rICAgIDs7Ci0rICBvcGVuYnNkKikKLSsgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAg OzsKLSsgIGVzYWMKLSsKLSsgIGxkX3NobGlicz15ZXMKLSsKLSsgICMgT24gc29tZSB0YXJnZXRz LCBHTlUgbGQgaXMgY29tcGF0aWJsZSBlbm91Z2ggd2l0aCB0aGUgbmF0aXZlIGxpbmtlcgotKyAg IyB0aGF0IHdlJ3JlIGJldHRlciBvZmYgdXNpbmcgdGhlIG5hdGl2ZSBpbnRlcmZhY2UgZm9yIGJv dGguCi0rICBsdF91c2VfZ251X2xkX2ludGVyZmFjZT1ubwotKyAgaWYgdGVzdCAiJHdpdGhfZ251 X2xkIiA9IHllczsgdGhlbgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4KikKLSsJ IyBUaGUgQUlYIHBvcnQgb2YgR05VIGxkIGhhcyBhbHdheXMgYXNwaXJlZCB0byBjb21wYXRpYmls aXR5Ci0rCSMgd2l0aCB0aGUgbmF0aXZlIGxpbmtlci4gIEhvd2V2ZXIsIGFzIHRoZSB3YXJuaW5n IGluIHRoZSBHTlUgbGQKLSsJIyBibG9jayBzYXlzLCB2ZXJzaW9ucyBiZWZvcmUgMi4xOS41KiBj b3VsZG4ndCByZWFsbHkgY3JlYXRlIHdvcmtpbmcKLSsJIyBzaGFyZWQgbGlicmFyaWVzLCByZWdh cmRsZXNzIG9mIHRoZSBpbnRlcmZhY2UgdXNlZC4KLSsJY2FzZSBgJExEIC12IDI+JjFgIGluCi0r CSAgKlwgXChHTlVcIEJpbnV0aWxzXClcIDIuMTkuNSopIDs7Ci0rCSAgKlwgXChHTlVcIEJpbnV0 aWxzXClcIDIuWzItOV0qKSA7OwotKwkgICpcIFwoR05VXCBCaW51dGlsc1wpXCBbMy05XSopIDs7 Ci0rCSAgKikKLSsJICAgIGx0X3VzZV9nbnVfbGRfaW50ZXJmYWNlPXllcwotKwkgICAgOzsKLSsJ ZXNhYwotKwk7OwotKyAgICAgICopCi0rCWx0X3VzZV9nbnVfbGRfaW50ZXJmYWNlPXllcwotKwk7 OwotKyAgICBlc2FjCi0rICBmaQotKwotKyAgaWYgdGVzdCAiJGx0X3VzZV9nbnVfbGRfaW50ZXJm YWNlIiA9IHllczsgdGhlbgotKyAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3QgQ0Ms IHdsYXJjIHNob3VsZCBiZSBlbXB0eQotKyAgICB3bGFyYz0nJHt3bH0nCi0rCi0rICAgICMgU2V0 IHNvbWUgZGVmYXVsdHMgZm9yIEdOVSBsZCB3aXRoIHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQuIFRo ZXNlCi0rICAgICMgYXJlIHJlc2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG5vdCBz dXBwb3J0ZWQuIFB1dHRpbmcgdGhlbQotKyAgICAjIGhlcmUgYWxsb3dzIHRoZW0gdG8gYmUgb3Zl cnJpZGRlbiBpZiBuZWNlc3NhcnkuCi0rICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0rICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsg ICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rICAg ICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4K LSsgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rl di9udWxsOyB0aGVuCi0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9IiR3bGFyYyInLS13 aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCi0r ICAgIGVsc2UKLSsgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KLSsgICAgZmkKLSsgICAg c3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPW5vCi0rICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgot KyAgICAgICpHTlVcIGdvbGQqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7Ci0rICAg ICAgKlwgWzAxXS4qIHwgKlwgMi5bMC05XS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNp b25zIDwgMi4xMQotKyAgICAgICpcIDIuMTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNp b25pbmc9eWVzIDs7ICMgUkg3LjMgLi4uCi0rICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBw b3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgotKyAgICAgICpc IDIuMTEuKikgOzsgIyBvdGhlciAyLjExIHZlcnNpb25zCi0rICAgICAgKikgc3VwcG9ydHNfYW5v bl92ZXJzaW9uaW5nPXllcyA7OwotKyAgICBlc2FjCi0rCi0rICAgICMgU2VlIGlmIEdOVSBsZCBz dXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGFp eFszLTldKikKLSsgICAgICAjIE9uIEFJWC9QUEMsIHRoZSBHTlUgbGlua2VyIGlzIHZlcnkgYnJv a2VuCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCi0rCWxkX3NobGli cz1ubwotKwljYXQgPDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogdGhlIEdOVSBsaW5r ZXIsIGF0IGxlYXN0IHVwIHRvIHJlbGVhc2UgMi4xOSwgaXMgcmVwb3J0ZWQKLSsqKiogdG8gYmUg dW5hYmxlIHRvIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KLSsqKiog VGhlcmVmb3JlLCBsaWJ0b29sIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQu ICBJZiB5b3UKLSsqKiogcmVhbGx5IGNhcmUgZm9yIHNoYXJlZCBsaWJyYXJpZXMsIHlvdSBtYXkg d2FudCB0byBpbnN0YWxsIGJpbnV0aWxzCi0rKioqIDIuMjAgb3IgYWJvdmUsIG9yIG1vZGlmeSB5 b3VyIFBBVEggc28gdGhhdCBhIG5vbi1HTlUgbGlua2VyIGlzIGZvdW5kLgotKyoqKiBZb3Ugd2ls bCB0aGVuIG5lZWQgdG8gcmVzdGFydCB0aGUgY29uZmlndXJhdGlvbiBwcm9jZXNzLgotKwotK19M VF9FT0YKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAgIGNh c2UgJGhvc3RfY3B1IGluCi0rICAgICAgcG93ZXJwYykKLSsgICAgICAgICAgICAjIHNlZSBjb21t ZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0Ci0rICAgICAgICAgICAgYXJjaGl2ZV9jbWRz PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRz PScnCi0rICAgICAgICA7OwotKyAgICAgIG02OGspCi0rICAgICAgICAgICAgYXJjaGl2ZV9jbWRz PSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1F ICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZp bmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hP ICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5k YXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIv YTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGli fihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJwotKyAgICAgICAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSsgICAgICAgICAgICBoYXJkY29k ZV9taW51c19MPXllcwotKyAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsg ICAgYmVvcyopCi0rICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVk IHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwlhbGxvd191bmRlZmluZWRfZmxh Zz11bnN1cHBvcnRlZAotKwkjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlz IHNvbWUgcmVsZWFzZXMgb2YgZ2NjCi0rCSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVz ZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLW5v c3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlsZF9zaGxpYnM9bm8KLSsgICAgICBmaQot KyAgICAgIDs7Ci0rCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsg ICAgICAjIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgKSBpcyBhY3R1YWxs eSBtZWFuaW5nbGVzcywKLSsgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBE TExzLgotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSsgICAg ICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LS1leHBvcnQtYWxsLXN5bWJvbHMnCi0r ICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsgICAgICBhbHdheXNfZXhw b3J0X3N5bWJvbHM9bm8KLSsgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVz PXllcwotKyAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29udmVuaWVu Y2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4q WyBdXChbXiBdKlwpL1wxIERBVEEvO3MvXi4qWyBdX19ubV9fXChbXiBdKlwpWyBdW14gXSovXDEg REFUQS87L15JWyBdL2Q7L15bQUlUV11bIF0vcy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRl eHBvcnRfc3ltYm9scycKLSsgICAgICBleGNsdWRlX2V4cHN5bXM9J1tfXStHTE9CQUxfT0ZGU0VU X1RBQkxFX3xbX10rR0xPQkFMX19bRklEXV8uKnxbX10raGVhZF9bQS1aYS16MC05X10rX2RsbHxb QS1aYS16MC05X10rX2RsbF9pbmFtZScKLSsKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAk R1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgICBhcmNoaXZlX2Nt ZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0 cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2Vy IC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBm aWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rCSMgaXMgRVhQT1JUUyksIHVz ZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9 J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0r CSAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwllbHNl Ci0rCSAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCSAgY2F0 ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJZml+Ci0r CSRDQyAtc2hhcmVkICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUt YXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKyAg ICAgIGVsc2UKLSsJbGRfc2hsaWJzPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBo YWlrdSopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAg ICBsaW5rX2FsbF9kZXBsaWJzPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIGludGVyaXhbMy05XSop Ci0rICAgICAgaGFyZGNvZGVfZGlyZWN0PW5vCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cj1ubwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJk aXInCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJwotKyAgICAgICMg SGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEg YnJva2VuIGdjYy4KLSsgICAgICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRl ZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5Ci0rICAgICAgIyBkZWZhdWx0KSBhbmQg cmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQot KyAgICAgICMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhp cywgd2UgcGljayBhIHJhbmRvbSwKLSsgICAgICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNl IGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCi0rICAgICAgIyB0aW1l LiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3Bh Y2UuCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFz ZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAt byAkbGliJwotKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J3NlZCAicyxeLF8sIiAkZXhwb3J0 X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNf ZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7 d2x9LS1yZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7 d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCAr IDEzNDIxNzcyODBgIC1vICRsaWInCi0rICAgICAgOzsKLSsKLSsgICAgZ251KiB8IGxpbnV4KiB8 IHRwZiogfCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUpCi0rICAgICAgdG1wX2RpZXQ9 bm8KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9vcyIgPSBsaW51eC1kaWV0bGliYzsgdGhlbgotKwlj YXNlICRjY19iYXNlbmFtZSBpbgotKwkgIGRpZXRcICopIHRtcF9kaWV0PXllczs7CSMgbGludXgt ZGlldGxpYmMgd2l0aCBzdGF0aWMgbGlua2luZyAoIWRpZXQtZHluKQotKwllc2FjCi0rICAgICAg ZmkKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkRUdSRVAgJzogc3VwcG9ydGVkIHRhcmdl dHM6LiogZWxmJyA+IC9kZXYvbnVsbCBcCi0rCSAmJiB0ZXN0ICIkdG1wX2RpZXQiID0gbm8KLSsg ICAgICB0aGVuCi0rCXRtcF9hZGRmbGFnPScgJHBpY19mbGFnJwotKwl0bXBfc2hhcmVkZmxhZz0n LXNoYXJlZCcKLSsJY2FzZSAkY2NfYmFzZW5hbWUsJGhvc3RfY3B1IGluCi0rICAgICAgICBwZ2Nj KikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNvbXBpbGVyCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7 IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmll bmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7 d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnJwotKwkg IDs7Ci0rCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KiB8IHBnZm9ydHJhbiopCi0rCQkJCQkjIFBv cnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycwotKwkgIHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwi OyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5p ZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAk e3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZyAtTW5v bWFpbicgOzsKLSsJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCSMgSW50ZWwgQyBjb21waWxlciBv biBpYTY0Ci0rCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OwotKwllZmMqLGlhNjQqIHwg aWZvcnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAotKwkgIHRtcF9h ZGRmbGFnPScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKLSsJaWZjKiB8IGlmb3J0KikJCQkj IEludGVsIEZvcnRyYW4gY29tcGlsZXIKLSsJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7 OwotKwlsZjk1KikJCQkJIyBMYWhleSBGb3J0cmFuIDguMQotKwkgIHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjPQotKwkgIHRtcF9zaGFyZWRmbGFnPSctLXNoYXJlZCcgOzsKLSsJeGxbY0NdKiB8IGJn eGxbY0NdKiB8IG1waXhsW2NDXSopICMgSUJNIFhMIEMgOC4wIG9uIFBQQyAoZGVhbCB3aXRoIHhs ZiBiZWxvdykKLSsJICB0bXBfc2hhcmVkZmxhZz0nLXFta3Nocm9iaicKLSsJICB0bXBfYWRkZmxh Zz0gOzsKLSsJbnZjYyopCSMgQ3VkYSBDb21waWxlciBEcml2ZXIgMi4yCi0rCSAgd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5p ZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3 X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmll bmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIGNvbXBpbGVyX25lZWRzX29iamVj dD15ZXMKLSsJICA7OwotKwllc2FjCi0rCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgot KwkqU3VuXCBDKikJCQkjIFN1biBDIDUuOQotKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSck e3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVu aWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3 X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmll bmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIGNvbXBpbGVyX25lZWRzX29iamVj dD15ZXMKLSsJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7Ci0rCSpTdW5cIEYqKQkJCSMgU3VuIEZv cnRyYW4gOC4zCi0rCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OwotKwllc2FjCi0rCWFyY2hpdmVf Y21kcz0nJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsK LSsgICAgICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRo ZW4KLSsgICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgfCBz ZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJ ICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgot KwkgICAgJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lv bi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsgICAg ICAgIGZpCi0rCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCXhsZiogfCBiZ2YqIHwgYmd4bGYq IHwgbXBpeGxmKikKLSsJICAjIElCTSBYTCBGb3J0cmFuIDEwLjEgb24gUFBDIGNhbm5vdCBjcmVh dGUgc2hhcmVkIGxpYnMgaXRzZWxmCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Jy0td2hv bGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAtLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYz0KLSsJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSctcnBh dGggJGxpYmRpcicKLSsJICBhcmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC1vICRsaWInCi0rCSAgaWYgdGVzdCAi eCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgotKwkgICAgYXJjaGl2ZV9l eHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZl cn4KLSsJICAgICAgY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIg Pj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgICBlY2hvICJsb2NhbDogKjsg fTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJICAgICAgJExEIC1zaGFyZWQg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLXZlcnNpb24t c2NyaXB0ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJwotKwkgIGZpCi0rCSAg OzsKLSsJZXNhYwotKyAgICAgIGVsc2UKLSsgICAgICAgIGxkX3NobGlicz1ubwotKyAgICAgIGZp Ci0rICAgICAgOzsKLSsKLSsgICAgbmV0YnNkKikKLSsgICAgICBpZiBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHM9 JyRMRCAtQnNoYXJlYWJsZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1vICRsaWIn Ci0rCXdsYXJjPQotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGlj X2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lIC1vICRsaWInCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNf ZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxp YicKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHNvbGFyaXMqKQotKyAgICAgIGlmICRM RCAtdiAyPiYxIHwgJEdSRVAgJ0JGRCAyXC44JyA+IC9kZXYvbnVsbDsgdGhlbgotKwlsZF9zaGxp YnM9bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IFRoZSByZWxlYXNl cyAyLjguKiBvZiB0aGUgR05VIGxpbmtlciBjYW5ub3QgcmVsaWFibHkKLSsqKiogY3JlYXRlIHNo YXJlZCBsaWJyYXJpZXMgb24gU29sYXJpcyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCi0r KioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0 byB1cGdyYWRlIEdOVQotKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuOS4xIG9yIG5ld2VyLiAg QW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5Ci0rKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBj b25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKLSsqKiogdXNlZCwgYW5k IHRoZW4gcmVzdGFydC4KLSsKLStfTFRfRU9GCi0rICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEg fCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0r CWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwlhcmNoaXZl X2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xz LWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlsZF9zaGxp YnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8 IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCi0rICAgICAgY2FzZSBgJExEIC12IDI+ JjFgIGluCi0rICAgICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjFbMC01XS4q KQotKwlsZF9zaGxpYnM9bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6 IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QK LSsqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3RlbXMuICBU aGVyZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3Vw cG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCi0rKioqIGJpbnV0aWxzIHRvIHJlbGVh c2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKLSsq KiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZl IGxpbmtlciBpcwotKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK19MVF9FT0YKLSsJ OzsKLSsJKikKLSsJICAjIEZvciBzZWN1cml0eSByZWFzb25zLCBpdCBpcyBoaWdobHkgcmVjb21t ZW5kZWQgdGhhdCB5b3UgYWx3YXlzCi0rCSAgIyB1c2UgYWJzb2x1dGUgcGF0aHMgZm9yIG5hbWlu ZyBzaGFyZWQgbGlicmFyaWVzLCBhbmQgZXhjbHVkZSB0aGUKLSsJICAjIERUX1JVTlBBVEggdGFn IGZyb20gZXhlY3V0YWJsZXMgYW5kIGxpYnJhcmllcy4gIEJ1dCBkb2luZyBzbwotKwkgICMgcmVx dWlyZXMgdGhhdCB5b3UgY29tcGlsZSBldmVyeXRoaW5nIHR3aWNlLCB3aGljaCBpcyBhIHBhaW4u Ci0rCSAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6Liog ZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0n JHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJl ZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgLW8gJGxpYicKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkgIGVs c2UKLSsJICAgIGxkX3NobGlicz1ubwotKwkgIGZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAg IDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLWFzc2VydCBw dXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzJwotKyAgICAgIHdsYXJjPQotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBp ZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4g L2Rldi9udWxsOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAt byAkbGliJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7 d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAg ICAgZWxzZQotKwlsZF9zaGxpYnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIGVzYWMK LSsKLSsgICAgaWYgdGVzdCAiJGxkX3NobGlicyIgPSBubzsgdGhlbgotKyAgICAgIHJ1bnBhdGhf dmFyPQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Ci0rICAgICAgZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjPQotKyAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQotKyAgICBm aQotKyAgZWxzZQotKyAgICAjIFBPUlRNRSBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBz eXN0ZW0ncyBsaW5rZXIgKG5vdCBHTlUgbGQpCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAg YWl4MyopCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsgICAgICBh bHdheXNfZXhwb3J0X3N5bWJvbHM9eWVzCi0rICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJExE IC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cyAtYkU6JGV4cG9ydF9zeW1ib2xzIC1UNTEyIC1INTEyIC1iTTpTUkV+JEFSICRBUl9GTEFHUyAk bGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCi0rICAgICAgIyBOb3RlOiB0aGlzIGxpbmtlciBo YXJkY29kZXMgdGhlIGRpcmVjdG9yaWVzIGluIExJQlBBVEggaWYgdGhlcmUKLSsgICAgICAjIGFy ZSBubyBkaXJlY3RvcmllcyBzcGVjaWZpZWQgYnkgLUwuCi0rICAgICAgaGFyZGNvZGVfbWludXNf TD15ZXMKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0IC16ICIkbHRfcHJvZ19j b21waWxlcl9zdGF0aWMiOyB0aGVuCi0rCSMgTmVpdGhlciBkaXJlY3QgaGFyZGNvZGluZyBub3Ig c3RhdGljIGxpbmtpbmcgaXMgc3VwcG9ydGVkIHdpdGggYQotKwkjIGJyb2tlbiBjb2xsZWN0Mi4K LSsJaGFyZGNvZGVfZGlyZWN0PXVuc3VwcG9ydGVkCi0rICAgICAgZmkKLSsgICAgICA7OwotKwot KyAgICBhaXhbNC05XSopCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4K LSsJIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0 LCBzbyB3ZSBkb24ndAotKwkjIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KLSsJYWl4X3Vz ZV9ydW50aW1lbGlua2luZz1ubwotKwlleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JwotKwlub19lbnRy eV9mbGFnPSIiCi0rICAgICAgZWxzZQotKwkjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3 ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KLSsJIyAtQyBtZWFucyBkZW1hbmdsZSB0byBB SVggbm0sIGJ1dCBtZWFucyBkb24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQotKwkjIEFsc28sIEFJ WCBubSB0cmVhdHMgd2VhayBkZWZpbmVkIHN5bWJvbHMgbGlrZSBvdGhlciBnbG9iYWwKLSsJIyBk ZWZpbmVkIHN5bWJvbHMsIHdoZXJlYXMgR05VIG5tIG1hcmtzIHRoZW0gYXMgIlciLgotKwlpZiAk Tk0gLVYgMj4mMSB8ICRHUkVQICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgZXhwb3J0X3N5 bWJvbHNfY21kcz0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlm ICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikgfHwgKFwk IDIgPT0gIlciKSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0g fSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKwllbHNlCi0rCSAgZXhwb3J0X3N5 bWJvbHNfY21kcz0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBp ZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAo c3Vic3RyKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUg PiAkZXhwb3J0X3N5bWJvbHMnCi0rCWZpCi0rCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KLSsK LSsJIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9y bWFsCi0rCSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZM QUdTLCB3ZQotKwkjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgotKwljYXNlICRob3N0X29z IGluIGFpeDQuWzIzXXxhaXg0LlsyM10uKnxhaXhbNS05XSopCi0rCSAgZm9yIGxkX2ZsYWcgaW4g JExERkxBR1M7IGRvCi0rCSAgaWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8IHRlc3QgJGxk X2ZsYWcgPSAiLVdsLC1icnRsIik7IHRoZW4KLSsJICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9 eWVzCi0rCSAgICBicmVhawotKwkgIGZpCi0rCSAgZG9uZQotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJ ZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKLSsJbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JwotKyAg ICAgIGZpCi0rCi0rICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmpl Y3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgotKyAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGlu ZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQotKyAgICAgICMg b3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwt dG9jIHRvCi0rICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2Fz ZXMgd2hlcmUgdGhhdCBpcyBub3QKLSsgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0s IGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KLSsKLSsgICAgICBhcmNoaXZlX2NtZHM9JycK LSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0X2Fic29s dXRlPXllcwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JzonCi0rICAgICAgbGlu a19hbGxfZGVwbGlicz15ZXMKLSsgICAgICBmaWxlX2xpc3Rfc3BlYz0nJHt3bH0tZiwnCi0rCi0r ICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJY2FzZSAkaG9zdF9vcyBpbiBhaXg0 LlswMTJdfGFpeDQuWzAxMl0uKikKLSsJIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVgg NC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCi0rCSMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0MiBk b2Vzbid0IHdvcmsgdW5kZXIgNC4zKwotKwkgIGNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXBy b2ctbmFtZT1jb2xsZWN0MmAKLSsJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJgotKwkg ICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8ICRHUkVQIHJlc29sdmVfbGliX25hbWUgPi9kZXYv bnVsbAotKwkgIHRoZW4KLSsJICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKLSsJICA6Ci0r CSAgZWxzZQotKwkgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKLSsJICBoYXJkY29kZV9kaXJlY3Q9 dW5zdXBwb3J0ZWQKLSsJICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVz IHdoZW4gdGhlIHVuaW5zdGFsbGVkCi0rCSAgIyBwYXRoIGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxp YnBhdGguICBTZXR0aW5nIGhhcmRjb2RlX21pbnVzX0wKLSsJICAjIHRvIHVuc3VwcG9ydGVkIGZv cmNlcyByZWxpbmtpbmcKLSsJICBoYXJkY29kZV9taW51c19MPXllcwotKwkgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSsJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y PQotKwkgIGZpCi0rCSAgOzsKLSsJZXNhYwotKwlzaGFyZWRfZmxhZz0nLXNoYXJlZCcKLSsJaWYg dGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgc2hhcmVkX2Zs YWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcnCi0rCWZpCi0rICAgICAgZWxzZQotKwkjIG5vdCB1 c2luZyBnY2MKLSsJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBWaXN1YWxB Z2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UK LSsJIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoKLSsJ ICBzaGFyZWRfZmxhZz0nLUcnCi0rCWVsc2UKLSsJICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1l bGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJwotKwkgIGVs c2UKLSsJICAgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCi0rCSAgZmkKLSsJZmkKLSsgICAg ICBmaQotKwotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tYmV4cGFsbCcK LSsgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMg YmVnaW5uaW5nIHdpdGgKLSsgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIg dG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8gZXhwb3J0LgotKyAgICAgIGFsd2F5c19l eHBvcnRfc3ltYm9scz15ZXMKLSsgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2lu ZyIgPSB5ZXM7IHRoZW4KLSsJIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVu dGltZSBsb2FkaW5nIGZsYWdzICgtYnJ0bCksCi0rCSMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0 IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJYWxsb3dfdW5kZWZp bmVkX2ZsYWc9Jy1iZXJvaycKLSsgICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBh dGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgotKyAgICAgICAgIyBlbXB0eSBleGVjdXRh YmxlLgotKyAgICAgICAgaWYgdGVzdCAiJHtsdF9jdl9haXhfbGlicGF0aCtzZXR9IiA9IHNldDsg dGhlbgotKyAgYWl4X2xpYnBhdGg9JGx0X2N2X2FpeF9saWJwYXRoCi0rZWxzZQotKyAgaWYgJHts dF9jdl9haXhfbGlicGF0aF8rOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4k YWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0r Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY190cnlfbGluayAi JExJTkVOTyI7IHRoZW4gOgotKwotKyAgbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgICAvSW1w b3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7Ci0rCSAgL14wLyB7Ci0rCSAgICAgIHMvXjAgICpcKFte IF0qXCkgKiQvXDEvCi0rCSAgICAgIHAKLSsJICB9Ci0rICAgICAgfScKLSsgIGx0X2N2X2FpeF9s aWJwYXRoXz1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1u IC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLSsgICMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVj dCBpZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KLSsgIGlmIHRlc3QgLXogIiRsdF9jdl9haXhf bGlicGF0aF8iOyB0aGVuCi0rICAgIGx0X2N2X2FpeF9saWJwYXRoXz1gZHVtcCAtSFg2NCBjb25m dGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhf c2VkImAKLSsgIGZpCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlm IHRlc3QgLXogIiRsdF9jdl9haXhfbGlicGF0aF8iOyB0aGVuCi0rICAgIGx0X2N2X2FpeF9saWJw YXRoXz0iL3Vzci9saWI6L2xpYiIKLSsgIGZpCi0rCi0rZmkKLSsKLSsgIGFpeF9saWJwYXRoPSRs dF9jdl9haXhfbGlicGF0aF8KLStmaQotKwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsgICAgICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpz ICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRl c3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuIGZ1bmNfZWNob19hbGwg IiR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBf c3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCi0rICAgICAgZWxzZQotKwlp ZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWM9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwotKwkgIGFsbG93X3VuZGVmaW5l ZF9mbGFnPSIteiBub2RlZnMiCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0iXCRDQyAkc2hhcmVk X2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7 d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5l ZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKLSsJZWxzZQot KwkgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVk IGluIGFuCi0rCSAjIGVtcHR5IGV4ZWN1dGFibGUuCi0rCSBpZiB0ZXN0ICIke2x0X2N2X2FpeF9s aWJwYXRoK3NldH0iID0gc2V0OyB0aGVuCi0rICBhaXhfbGlicGF0aD0kbHRfY3ZfYWl4X2xpYnBh dGgKLStlbHNlCi0rICBpZiAke2x0X2N2X2FpeF9saWJwYXRoXys6fSBmYWxzZTsgdGhlbiA6Ci0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCBjb25mZGVmcy5oIC0g PDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0r aW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStp ZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Ci0rCi0rICBsdF9haXhfbGlicGF0 aF9zZWQ9JwotKyAgICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKLSsJICAvXjAvIHsK LSsJICAgICAgcy9eMCAgKlwoW14gXSpcKSAqJC9cMS8KLSsJICAgICAgcAotKwkgIH0KLSsgICAg ICB9JwotKyAgbHRfY3ZfYWl4X2xpYnBhdGhfPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAy Pi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotKyAgIyBDaGVj ayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotKyAgaWYg dGVzdCAteiAiJGx0X2N2X2FpeF9saWJwYXRoXyI7IHRoZW4KLSsgICAgbHRfY3ZfYWl4X2xpYnBh dGhfPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4g LWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotKyAgZmkKLStmaQotK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVleHQgY29u ZnRlc3QuJGFjX2V4dAotKyAgaWYgdGVzdCAteiAiJGx0X2N2X2FpeF9saWJwYXRoXyI7IHRoZW4K LSsgICAgbHRfY3ZfYWl4X2xpYnBhdGhfPSIvdXNyL2xpYjovbGliIgotKyAgZmkKLSsKLStmaQot KwotKyAgYWl4X2xpYnBhdGg9JGx0X2N2X2FpeF9saWJwYXRoXwotK2ZpCi0rCi0rCSBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRo IgotKwkgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRp bmcgZmxhZ3MsCi0rCSAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkg cHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwkgIG5vX3VuZGVmaW5lZF9mbGFnPScgJHt3bH0t YmVybm90b2snCi0rCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1iZXJvaycKLSsJICBp ZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rCSAgICAjIFdlIG9ubHkgdXNlIHRo aXMgY29kZSBmb3IgR05VIGxkcyB0aGF0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlLgotKwkgICAg d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNl ICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIGVsc2UKLSsJICAgICMgRXhwb3J0ZWQgc3lt Ym9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcwotKwkg ICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyRjb252ZW5pZW5jZScKLSsJICBmaQotKwkgIGFy Y2hpdmVfY21kc19uZWVkX2xjPXllcwotKwkgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVgg dHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rCSAgYXJjaGl2ZV9l eHBzeW1fY21kcz0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1l ICRsaWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1i RTokZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwot KwlmaQotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2Fz ZSAkaG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1l bnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBhcmNoaXZlX2NtZHM9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9 JycKLSsgICAgICAgIDs7Ci0rICAgICAgbTY4aykKLSsgICAgICAgICAgICBhcmNoaXZlX2NtZHM9 JyRSTSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUg JGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmlu ZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8g IiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRh dGF+JEVDSE8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9h Mml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+ KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCi0rICAgICAgICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotKyAgICAgICAgICAgIGhhcmRjb2Rl X21pbnVzX0w9eWVzCi0rICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAg ICBic2RpWzQ1XSopCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPS1yZHluYW1pYwot KyAgICAgIDs7Ci0rCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsg ICAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFy ZSB1c2luZwotKyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgICAgIyBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcwot KyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgY2FzZSAkY2NfYmFzZW5h bWUgaW4KLSsgICAgICBjbCopCi0rCSMgTmF0aXZlIE1TVkMKLSsJaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYz0nICcKLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsJYWx3YXlz X2V4cG9ydF9zeW1ib2xzPXllcwotKwlmaWxlX2xpc3Rfc3BlYz0nQCcKLSsJIyBUZWxsIGx0bWFp biB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KLSsJbGliZXh0PWxpYgotKwkjIFRl bGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KLSsJc2hyZXh0X2Nt ZHM9Ii5kbGwiCi0rCSMgRklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFj ay4KLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2Jq cyAkY29tcGlsZXJfZmxhZ3MgJGRlcGxpYnMgLVdsLC1kbGx+bGlua25hbWVzPScKLSsJYXJjaGl2 ZV9leHBzeW1fY21kcz0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVY UE9SVFM7IHRoZW4KLSsJICAgIHNlZCAtbiAtZSAncy9cXFxcXFxcKC4qXFxcXFxcXCkvLWxpbmtc XFwgLUVYUE9SVDpcXFxcXFxcMS8nIC1lICcxXFxcIXAnIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZS5leHA7Ci0rCSAgZWxzZQotKwkgICAgc2VkIC1lICdzL1xcXFxc XFwoLipcXFxcXFxcKS8tbGlua1xcXCAtRVhQT1JUOlxcXFxcXFwxLycgPCAkZXhwb3J0X3N5bWJv bHMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cDsKLSsJICBmaX4KLSsJICAkQ0MgLW8gJHRv b2xfb3V0cHV0X29iamRpciRzb25hbWUgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWJz ICJAJHRvb2xfb3V0cHV0X29iamRpciRzb25hbWUuZXhwIiAtV2wsLURMTCwtSU1QTElCOiIkdG9v bF9vdXRwdXRfb2JqZGlyJGxpYm5hbWUuZGxsLmxpYiJ+Ci0rCSAgbGlua25hbWVzPScKLSsJIyBU aGUgbGlua2VyIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgYnVpbGQgYSBzdGF0aWMgbGliIGlmIHdl IGJ1aWxkIGEgRExMLgotKwkjIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywg KT0ndHJ1ZScKLSsJZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz15ZXMKLSsJZXhw b3J0X3N5bWJvbHNfY21kcz0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3lt Ym9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltCQ0RHUlNdWyBdL3MvLipbIF1cKFteIF0qXCkvXDEs REFUQS8nXCcnIHwgJFNFRCAtZSAnXCcnL15bQUlUV11bIF0vcy8uKlsgXS8vJ1wnJyB8IHNvcnQg fCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwotKwkjIERvbid0IHVzZSByYW5saWIKLSsJb2xkX3Bv c3RpbnN0YWxsX2NtZHM9J2NobW9kIDY0NCAkb2xkbGliJwotKwlwb3N0bGlua19jbWRzPSdsdF9v dXRwdXRmaWxlPSJAT1VUUFVUQCJ+Ci0rCSAgbHRfdG9vbF9vdXRwdXRmaWxlPSJAVE9PTF9PVVRQ VVRAIn4KLSsJICBjYXNlICRsdF9vdXRwdXRmaWxlIGluCi0rCSAgICAqLmV4ZXwqLkVYRSkgOzsK LSsJICAgICopCi0rCSAgICAgIGx0X291dHB1dGZpbGU9IiRsdF9vdXRwdXRmaWxlLmV4ZSIKLSsJ ICAgICAgbHRfdG9vbF9vdXRwdXRmaWxlPSIkbHRfdG9vbF9vdXRwdXRmaWxlLmV4ZSIKLSsJICAg ICAgOzsKLSsJICBlc2FjfgotKwkgIGlmIHRlc3QgIiRNQU5JRkVTVF9UT09MIiAhPSAiOiIgJiYg dGVzdCAtZiAiJGx0X291dHB1dGZpbGUubWFuaWZlc3QiOyB0aGVuCi0rCSAgICAkTUFOSUZFU1Rf VE9PTCAtbWFuaWZlc3QgIiRsdF90b29sX291dHB1dGZpbGUubWFuaWZlc3QiIC1vdXRwdXRyZXNv dXJjZToiJGx0X3Rvb2xfb3V0cHV0ZmlsZSIgfHwgZXhpdCAxOwotKwkgICAgJFJNICIkbHRfb3V0 cHV0ZmlsZS5tYW5pZmVzdCI7Ci0rCSAgZmknCi0rCTs7Ci0rICAgICAgKikKLSsJIyBBc3N1bWUg TVNWQyB3cmFwcGVyCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyAnCi0rCWFsbG93X3Vu ZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCi0rCSMgVGVsbCBsdG1haW4gdG8gbWFrZSAubGliIGZp bGVzLCBub3QgLmEgZmlsZXMuCi0rCWxpYmV4dD1saWIKLSsJIyBUZWxsIGx0bWFpbiB0byBtYWtl IC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCi0rCXNocmV4dF9jbWRzPSIuZGxsIgotKwkjIEZJ WE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCi0rCWFyY2hpdmVfY21k cz0nJENDIC1vICRsaWIgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzIGBmdW5jX2VjaG9fYWxsICIk ZGVwbGlicyIgfCAkU0VEICdcJydzLyAtbGMkLy8nXCcnYCAtbGluayAtZGxsfmxpbmtuYW1lcz0n Ci0rCSMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYg d2UgYnVpbGQgYSBETEwuCi0rCW9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9J3RydWUnCi0rCSMg RklYTUU6IFNob3VsZCBsZXQgdGhlIHVzZXIgc3BlY2lmeSB0aGUgbGliIHByb2dyYW0uCi0rCW9s ZF9hcmNoaXZlX2NtZHM9J2xpYiAtT1VUOiRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicycKLSsJ ZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz15ZXMKLSsJOzsKLSsgICAgICBlc2Fj Ci0rICAgICAgOzsKLSsKLSsgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKLSsKLSsKLSsgIGFyY2hp dmVfY21kc19uZWVkX2xjPW5vCi0rICBoYXJkY29kZV9kaXJlY3Q9bm8KLSsgIGhhcmRjb2RlX2F1 dG9tYXRpYz15ZXMKLSsgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9dW5zdXBwb3J0ZWQKLSsgIGlm IHRlc3QgIiRsdF9jdl9sZF9mb3JjZV9sb2FkIiA9ICJ5ZXMiOyB0aGVuCi0rICAgIHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjPSdgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAg LW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UgJHt3bH0t Zm9yY2VfbG9hZCwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5j ZVwiYCcKLSsgIGVsc2UKLSsgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JycKLSsgIGZpCi0r ICBsaW5rX2FsbF9kZXBsaWJzPXllcwotKyAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9IiRfbHRfZGFy X2FsbG93X3VuZGVmaW5lZCIKLSsgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICBpZm9ydCop IF9sdF9kYXJfY2FuX3NoYXJlZD15ZXMgOzsKLSsgICAgICopIF9sdF9kYXJfY2FuX3NoYXJlZD0k R0NDIDs7Ci0rICBlc2FjCi0rICBpZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9ICJ5ZXMi OyB0aGVuCi0rICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWZ1bmNfZWNob19hbGwKLSsgICAg YXJjaGl2ZV9jbWRzPSJcJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8g XCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUg XCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5 bXV0aWx9IgotKyAgICBtb2R1bGVfY21kcz0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1v IFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRf ZHN5bXV0aWx9IgotKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSJzZWQgJ3MsXixfLCcgPCBcJGV4 cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3lt flwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9i anMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29u YW1lIFwkdmVyc3RyaW5nICR7X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3lt c30ke19sdF9kc3ltdXRpbH0iCi0rICAgIG1vZHVsZV9leHBzeW1fY21kcz0ic2VkIC1lICdzLF4s XywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1i b2xzLmV4cHN5bX5cJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBc JGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9 JHtfbHRfZHN5bXV0aWx9IgotKwotKyAgZWxzZQotKyAgbGRfc2hsaWJzPW5vCi0rICBmaQotKwot KyAgICAgIDs7Ci0rCi0rICAgIGRndXgqKQotKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1o ICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9z aGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgZnJlZWJzZDEqKQotKyAgICAgIGxk X3NobGlicz1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAyLjIuWzAxMl0gYWxsb3dz IHVzIHRvIGluY2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1Y3RvcgotKyAgICAjIHN1 cHBvcnQuICBGdXR1cmUgdmVyc2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBidXQgYW4gZXhw bGljaXQgYysrcnQwLm8KLSsgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0aGluZywgYW5kIGhlbHBz IHNpZ25pZmljYW50bHkgKGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCi0rICAgICMgZXh0cmEgc3Bh Y2UpLgotKyAgICBmcmVlYnNkMi4yKikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJl YWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgL3Vzci9saWIvYysr cnQwLm8nCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJwotKyAg ICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5v Ci0rICAgICAgOzsKLSsKLSsgICAgIyBVbmZvcnR1bmF0ZWx5LCBvbGRlciB2ZXJzaW9ucyBvZiBG cmVlQlNEIDIgZG8gbm90IGhhdmUgdGhpcyBmZWF0dXJlLgotKyAgICBmcmVlYnNkMiopCi0rICAg ICAgYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJk Y29kZV9taW51c19MPXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAg ICA7OwotKwotKyAgICAjIEZyZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVkIHRv IGRvIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsgICAg ICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PSctUiRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcwotKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICBocHV4OSopCi0rICAgICAgaWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSckUk0gJG91dHB1dF9vYmpk aXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJFJNICRv dXRwdXRfb2JqZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAkb3V0 cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWInCi0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfSti ICR7d2x9JGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSsgICAg ICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rCi0rICAgICAgIyBoYXJkY29kZV9taW51c19MOiBOb3Qg cmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBs b2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsgICAgICBoYXJkY29kZV9taW51c19MPXllcwotKyAg ICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKLSsgICAgICA7OwotKwotKyAg ICBocHV4MTAqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgIiR3aXRoX2du dV9sZCIgPSBubzsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAk e3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJYXJjaGl2 ZV9jbWRzPSckTEQgLWIgK2ggJHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAi JHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7 d2x9K2IgJHt3bH0kbGliZGlyJwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPScrYiAk bGliZGlyJwotKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSsJaGFyZGNvZGVfZGlyZWN0 PXllcwotKwloYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCi0rCWV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYz0nJHt3bH0tRScKLSsJIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRo ZSBzZWFyY2ggUEFUSCwKLSsJIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxp YnJhcnkuCi0rCWhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAgZmkKLSsgICAgICA7OwotKwot KyAgICBocHV4MTEqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSBubzsgdGhlbgotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KikKLSsJ ICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQqKQotKwkg IGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICR7d2x9K2ggJHt3bH0kc29uYW1l ICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJwotKwkgIDs7Ci0rCSopCi0rCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGlj X2ZsYWcgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwllc2Fj Ci0rICAgICAgZWxzZQotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KikKLSsJICBhcmNo aXZlX2NtZHM9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwlpYTY0KikKLSsJICBhcmNoaXZlX2Nt ZHM9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwkqKQotKwot KwkgICMgT2xkZXIgdmVyc2lvbnMgb2YgdGhlIDExLjAwIGNvbXBpbGVyIGRvIG5vdCB1bmRlcnN0 YW5kIC1iIHlldAotKwkgICMgKEhQOTI0NTMtMDEgQS4xMS4wMS4yMCBkb2Vzbid0LCBIUDkyNDUz LTAxIEIuMTEuWC4zNTE3NS0zNTE3Ni5HUCBkb2VzKQotKwkgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJENDIHVuZGVyc3RhbmRzIC1iIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBpZiAkQ0MgdW5kZXJzdGFuZHMgLWIuLi4gIiA+JjY7IH0K LStpZiAke2x0X2N2X3Byb2dfY29tcGlsZXJfX2IrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX19iPW5v Ci0rICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKLSsgICBMREZMQUdTPSIkTERGTEFHUyAtYiIK LSsgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQK LSsgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVz dCRhY19leGVleHQ7IHRoZW4KLSsgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBp Z25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYg dGhlcmUgYXJlIHdhcm5pbmdzCi0rICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgot KyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgotKyAgICAgICBj YXQgY29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICAgJEVDSE8gIiRfbHRfbGlua2VyX2JvaWxlcnBs YXRlIiB8ICRTRUQgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAkU0VEICcvXiQvZDsg L14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgICAgaWYgZGlmZiBjb25m dGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICBsdF9jdl9w cm9nX2NvbXBpbGVyX19iPXllcwotKyAgICAgICBmaQotKyAgICAgZWxzZQotKyAgICAgICBsdF9j dl9wcm9nX2NvbXBpbGVyX19iPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRSTSAtciBjb25m dGVzdCoKLSsgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKwotK2ZpCi0reyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVy X19iIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfX2IiID4mNjsgfQotKwot K2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9fYiIgPSB4eWVzOyB0aGVuCi0rICAgIGFy Y2hpdmVfY21kcz0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5z dGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r ZWxzZQotKyAgICBhcmNoaXZlX2NtZHM9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xp YmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rZmkKLSsKLSsJ ICA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0g bm87IHRoZW4KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJk aXInCi0rCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKwotKwljYXNlICRob3N0X2NwdSBp bgotKwlocHBhKjY0KnxpYTY0KikKLSsJICBoYXJkY29kZV9kaXJlY3Q9bm8KLSsJICBoYXJkY29k ZV9zaGxpYnBhdGhfdmFyPW5vCi0rCSAgOzsKLSsJKikKLSsJICBoYXJkY29kZV9kaXJlY3Q9eWVz Ci0rCSAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPXllcwotKwkgIGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYz0nJHt3bH0tRScKLSsKLSsJICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkg aW4gdGhlIHNlYXJjaCBQQVRILAotKwkgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9m IHRoZSBsaWJyYXJ5LgotKwkgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rCSAgOzsKLSsJZXNhYwot KyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4 KikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRD QyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hv X2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3Jl Z2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJIyBU cnkgdG8gdXNlIHRoZSAtZXhwb3J0ZWRfc3ltYm9sIGxkIG9wdGlvbiwgaWYgaXQgZG9lcyBub3QK LSsJIyB3b3JrLCBhc3N1bWUgdGhhdCAtZXhwb3J0c19maWxlIGRvZXMgbm90IHdvcmsgZWl0aGVy IGFuZAotKwkjIGltcGxpY2l0bHkgZXhwb3J0IGFsbCBzeW1ib2xzLgotKwkjIFRoaXMgc2hvdWxk IGJlIHRoZSBzYW1lIGZvciBhbGwgbGFuZ3VhZ2VzLCBzbyBubyBwZXItdGFnIGNhY2hlIHZhcmlh YmxlLgotKwl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n IHdoZXRoZXIgdGhlICRob3N0X29zIGxpbmtlciBhY2NlcHRzIC1leHBvcnRlZF9zeW1ib2wiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlICRob3N0X29zIGxpbmtlciBhY2Nl cHRzIC1leHBvcnRlZF9zeW1ib2wuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X2lyaXhfZXhwb3J0 ZWRfc3ltYm9sKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKLSsJICAgTERGTEFHUz0iJExERkxB R1MgLXNoYXJlZCAke3dsfS1leHBvcnRlZF9zeW1ib2wgJHt3bH1mb28gJHt3bH0tdXBkYXRlX3Jl Z2lzdHJ5ICR7d2x9L2Rldi9udWxsIgotKwkgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5j b25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotK2ludCBmb28gKHZvaWQp IHsgcmV0dXJuIDA7IH0KLStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsg dGhlbiA6Ci0rICBsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJvbD15ZXMKLStlbHNlCi0rICBsdF9j dl9pcml4X2V4cG9ydGVkX3N5bWJvbD1ubwotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX29iamV4dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0Ci0rICAgICAgICAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotK2ZpCi0reyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9pcml4X2V4 cG9ydGVkX3N5bWJvbCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJv bCIgPiY2OyB9Ci0rCWlmIHRlc3QgIiRsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJvbCIgPSB5ZXM7 IHRoZW4KLSsgICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHBpY19m bGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0k c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRf dmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291 dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAke3dsfS1leHBvcnRzX2ZpbGUgJHt3bH0kZXhwb3J0 X3N5bWJvbHMgLW8gJGxpYicKLSsJZmkKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJEND IC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFt ZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2 ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z IC1vICRsaWInCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9y ZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtZXhwb3J0c19maWxlICRleHBv cnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGZpCi0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRf bGM9J25vJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7 d2x9JGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSsgICAgICBp bmhlcml0X3JwYXRoPXllcwotKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCi0rICAgICAgOzsK LSsKLSsgICAgbmV0YnNkKikKLSsgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRH UkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJl YWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0Ci0r ICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICAgICAjIEVMRgotKyAgICAgIGZpCi0rICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVj dD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsg ICAgbmV3c29zNikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9kaXJl Y3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3 bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKyAgICAgIGhh cmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngq KQotKyAgICAgIDs7Ci0rCi0rICAgIG9wZW5ic2QqKQotKyAgICAgIGlmIHRlc3QgLWYgL3Vzci9s aWJleGVjL2xkLnNvOyB0aGVuCi0rCWhhcmRjb2RlX2RpcmVjdD15ZXMKLSsJaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcj1ubwotKwloYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCi0rCWlmIHRlc3Qg LXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIk aG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsJICBhcmNo aXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKLSsJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAk cGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t cmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMnCi0rCSAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICBleHBvcnRfZHluYW1pY19mbGFn X3NwZWM9JyR7d2x9LUUnCi0rCWVsc2UKLSsJICBjYXNlICRob3N0X29zIGluCi0rCSAgIG9wZW5i c2RbMDFdLiogfCBvcGVuYnNkMi5bMC03XSB8IG9wZW5ic2QyLlswLTddLiopCi0rCSAgICAgYXJj aGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzJwotKwkgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicK LSsJICAgICA7OwotKwkgICAqKQotKwkgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBp Y19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgICAg OzsKLSsJICBlc2FjCi0rCWZpCi0rICAgICAgZWxzZQotKwlsZF9zaGxpYnM9bm8KLSsgICAgICBm aQotKyAgICAgIDs7Ci0rCi0rICAgIG9zMiopCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nLUwkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAgYWxs b3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRFQ0hP ICJMSUJSQVJZICRsaWJuYW1lIElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGlibmFt ZS5kZWZ+JEVDSE8gIkRFU0NSSVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUuZGVmfmVjaG8gREFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZWNo byAiIFNJTkdMRSBOT05TSEFSRUQiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lY2hv IEVYUE9SVFMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+ PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmRlZicKLSsgICAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSdlbXhpbXAgLW8gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCi0rICAgICAg OzsKLSsKLSsgICAgb3NmMyopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJ YWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwot KwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7 d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRp cn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlhbGxvd191bmRlZmluZWRf ZmxhZz0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJl ZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwg Ii1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKyAgICAgIGZpCi0rICAgICAgYXJjaGl2ZV9jbWRz X25lZWRfbGM9J25vJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJw YXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSsg ICAgICA7OwotKwotKyAgICBvc2Y0KiB8IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0 aW9uIG9mIC1tc3ltIGZsYWcKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlh bGxvd191bmRlZmluZWRfZmxhZz0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0r CWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcGljX2Zs YWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29u YW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAi JHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5 ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIGVsc2UK LSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCWFyY2hp dmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVy c3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRh dGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJYXJj aGl2ZV9leHBzeW1fY21kcz0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmlu dGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lOyBw cmludGYgIiVzXFxuIiAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLSsJJENDIC1zaGFyZWQke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSAke3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICRjb21waWxlcl9mbGFn cyAkbGlib2JqcyAkZGVwbGlicyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmICRFQ0hPICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtv dXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kUk0gJGxpYi5leHAnCi0rCi0rCSMg Qm90aCBjIGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKLSsJaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nLXJwYXRoICRsaWJkaXInCi0rICAgICAgZmkKLSsgICAgICBh cmNoaXZlX2NtZHNfbmVlZF9sYz0nbm8nCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv cj06Ci0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgbm9fdW5kZWZpbmVkX2Zs YWc9JyAteiBkZWZzJwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCXdsYXJj PScke3dsfScKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHt3bH0teiAk e3dsfXRleHQgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIg PiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIg Pj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJICAkQ0MgLXNo YXJlZCAkcGljX2ZsYWcgJHt3bH0teiAke3dsfXRleHQgJHt3bH0tTSAke3dsfSRsaWIuZXhwICR7 d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzfiRSTSAkbGliLmV4cCcKLSsgICAgICBlbHNlCi0rCWNhc2UgYCRDQyAtViAyPiYxYCBpbgot KwkqIkNvbXBpbGVycyA1LjAiKikKLSsJICB3bGFyYz0nJwotKwkgIGFyY2hpdmVfY21kcz0nJExE IC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBn bG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipc KS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkg ICRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsJICA7 OwotKwkqKQotKwkgIHdsYXJjPScke3dsfScKLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtRyR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6 IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsv IiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICRDQyAt RyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKwkgIDs7Ci0r CWVzYWMKLSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxp YmRpcicKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgY2FzZSAkaG9z dF9vcyBpbgotKyAgICAgIHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0uKikgOzsKLSsg ICAgICAqKQotKwkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVy IGxpbmtlciBvcHRpb25zLAotKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAg R0NDIGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCi0rCSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdo IG5vdCB0byByZW9yZGVyLgotKwkjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUg Mi41LjE/KQotKwlpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwkgIHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjPScke3dsfS16ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7 d2x9ZGVmYXVsdGV4dHJhY3QnCi0rCWVsc2UKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0n LXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKLSsJZmkKLSsJOzsK LSsgICAgICBlc2FjCi0rICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMKLSsgICAgICA7OwotKwot KyAgICBzdW5vczQqKQotKyAgICAgIGlmIHRlc3QgIngkaG9zdF92ZW5kb3IiID0geHNlcXVlbnQ7 IHRoZW4KLSsJIyBVc2UgJENDIHRvIGxpbmsgdW5kZXIgc2VxdWVudCwgYmVjYXVzZSBpdCB0aHJv d3MgaW4gc29tZSBleHRyYSAubwotKwkjIGZpbGVzIHRoYXQgbWFrZSAuaW5pdCBhbmQgLmZpbmkg c2VjdGlvbnMgd29yay4KLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLUcgJHt3bH0taCAkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJ YXJjaGl2ZV9jbWRzPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMK LSsgICAgICBoYXJkY29kZV9taW51c19MPXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92 YXI9bm8KLSsgICAgICA7OwotKwotKyAgICBzeXN2NCkKLSsgICAgICBjYXNlICRob3N0X3ZlbmRv ciBpbgotKwlzbmkpCi0rCSAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgaGFyZGNvZGVfZGlyZWN0PXll cyAjIGlzIHRoaXMgcmVhbGx5IHRydWU/Pz8KLSsJOzsKLSsJc2llbWVucykKLSsJICAjIyBMRCBp cyBsZCBpdCBtYWtlcyBhIFBMQU1MSUIKLSsJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jvc3NNb2R1 bGUuCi0rCSAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzJwotKwkgIHJlbG9hZF9jbWRzPSckQ0MgLXIgLW8gJG91dHB1dCRyZWxvYWRf b2JqcycKLSsJICBoYXJkY29kZV9kaXJlY3Q9bm8KLSsgICAgICAgIDs7Ci0rCW1vdG9yb2xhKQot KwkgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzJwotKwkgIGhhcmRjb2RlX2RpcmVjdD1ubyAjTW90b3JvbGEgbWFu dWFsIHNheXMgeWVzLCBidXQgbXkgdGVzdHMgc2F5IHRoZXkgbGllCi0rCTs7Ci0rICAgICAgZXNh YwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsgICAgICBoYXJkY29kZV9zaGxp YnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQuMyopCi0rICAgICAgYXJjaGl2 ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYz0nLUJleHBvcnQnCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQq TVAqKQotKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSck TEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn Ci0rCWhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsJcnVucGF0aF92YXI9TERfUlVOX1BBVEgK LSsJaGFyZGNvZGVfcnVucGF0aF92YXI9eWVzCi0rCWxkX3NobGlicz15ZXMKLSsgICAgICBmaQot KyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5p eFdhcmU3LlswMV0uWzEwXSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bMDI0XSopCi0rICAg ICAgbm9fdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXosdGV4dCcKLSsgICAgICBhcmNoaXZlX2NtZHNf bmVlZF9sYz1ubwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICBydW5w YXRoX3Zhcj0nTERfUlVOX1BBVEgnCi0rCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9 JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNl Ci0rCWFyY2hpdmVfY21kcz0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1H ICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0r Ci0rICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCi0rICAgICAgIyBOb3RlOiBXZSBj YW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QK LSsgICAgICAjIGxpbmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xz IHVzZWQgZnJvbSBsaWJjIHRvCi0rICAgICAgIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2gg bWVhbnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCi0rICAgICAgIyBldmVyIGxpbmsgY29y cmVjdGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAotKyAgICAg ICMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFz IGhlYXZ5LWhhbmRlZAotKyAgICAgICMgYXMgLXogZGVmcy4KLSsgICAgICBub191bmRlZmluZWRf ZmxhZz0nJHt3bH0teix0ZXh0JwotKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPScke3dsfS16 LG5vZGVmcycKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz1ubwotKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXI9bm8KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3ds fS1SLCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0nOicKLSsgICAg ICBsaW5rX2FsbF9kZXBsaWJzPXllcwotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0n JHt3bH0tQmV4cG9ydCcKLSsgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCi0rCi0rICAg ICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJl ZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4 cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJENDIC1HICR7d2x9 LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJ YXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xz ICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAgIGFyY2hpdmVf Y21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSsg ICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsg ICAgICBsZF9zaGxpYnM9bm8KLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIHRlc3Qg eCRob3N0X3ZlbmRvciA9IHhzbmk7IHRoZW4KLSsgICAgICBjYXNlICRob3N0IGluCi0rICAgICAg c3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqIHwgc3lzdjUqKQotKwlleHBvcnRfZHluYW1p Y19mbGFnX3NwZWM9JyR7d2x9LUJsYXJnZWR5bnN5bScKLSsJOzsKLSsgICAgICBlc2FjCi0rICAg IGZpCi0rICBmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiAkbGRfc2hsaWJzIiA+JjUKLSskYXNfZWNobyAiJGxkX3NobGlicyIgPiY2OyB9Ci0r dGVzdCAiJGxkX3NobGlicyIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0rd2l0aF9n bnVfbGQ9JHdpdGhfZ251X2xkCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rIwotKyMgRG8gd2UgbmVlZCB0byBleHBsaWNpdGx5IGxpbmsgbGliYz8KLSsjCi0r Y2FzZSAieCRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgaW4KLSt4fHh5ZXMpCi0rICAjIEFzc3VtZSAt bGMgc2hvdWxkIGJlIGFkZGVkCi0rICBhcmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKLSsKLSsgIGlm IHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgot KyAgICBjYXNlICRhcmNoaXZlX2NtZHMgaW4KLSsgICAgKid+JyopCi0rICAgICAgIyBGSVhNRTog d2UgbWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgotKyAgICAg IDs7Ci0rICAgICckQ0MgJyopCi0rICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGlt cGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQotKyAgICAgICMgc3lzdGVtcywg LWxnY2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYwot KyAgICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgotKyAgICAgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciAtbGMg c2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4uLi4gIiA+JjY7IH0K LStpZiAke2x0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xjKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgJFJNIGNvbmZ0ZXN0KgotKwllY2hv ICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsJ aWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFj X2NvbXBpbGVcIiI7IH0gPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gMj5jb25mdGVzdC5lcnI7 IHRoZW4KLSsJICBzb25hbWU9Y29uZnRlc3QKLSsJICBsaWI9Y29uZnRlc3QKLSsJICBsaWJvYmpz PWNvbmZ0ZXN0LiRhY19vYmpleHQKLSsJICBkZXBsaWJzPQotKwkgIHdsPSRsdF9wcm9nX2NvbXBp bGVyX3dsCi0rCSAgcGljX2ZsYWc9JGx0X3Byb2dfY29tcGlsZXJfcGljCi0rCSAgY29tcGlsZXJf ZmxhZ3M9LXYKLSsJICBsaW5rZXJfZmxhZ3M9LXYKLSsJICB2ZXJzdHJpbmc9Ci0rCSAgb3V0cHV0 X29iamRpcj0uCi0rCSAgbGlibmFtZT1jb25mdGVzdAotKwkgIGx0X3NhdmVfYWxsb3dfdW5kZWZp bmVkX2ZsYWc9JGFsbG93X3VuZGVmaW5lZF9mbGFnCi0rCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9 Ci0rCSAgaWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306 IFwiJGFyY2hpdmVfY21kcyAyXD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJc PlwmMVwiIjsgfSA+JjUKLSsgIChldmFsICRhcmNoaXZlX2NtZHMgMlw+XCYxIFx8ICRHUkVQIFwi IC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjEpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9Ci0rCSAgdGhlbgotKwkgICAgbHRfY3ZfYXJjaGl2 ZV9jbWRzX25lZWRfbGM9bm8KLSsJICBlbHNlCi0rCSAgICBsdF9jdl9hcmNoaXZlX2NtZHNfbmVl ZF9sYz15ZXMKLSsJICBmaQotKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9zYXZlX2FsbG93 X3VuZGVmaW5lZF9mbGFnCi0rCWVsc2UKLSsJICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSsJZmkK LSsJJFJNIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sYyIgPiY1Ci0rJGFz X2VjaG8gIiRsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sYyIgPiY2OyB9Ci0rICAgICAgYXJjaGl2 ZV9jbWRzX25lZWRfbGM9JGx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xjCi0rICAgICAgOzsKLSsg ICAgZXNhYwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBj aGFyYWN0ZXJpc3RpY3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGR5bmFtaWMgbGlua2Vy IGNoYXJhY3RlcmlzdGljcy4uLiAiID4mNjsgfQotKwotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0 aGVuCi0rICBjYXNlICRob3N0X29zIGluCi0rICAgIGRhcndpbiopIGx0X2F3a19hcmc9Ii9ebGli cmFyaWVzOi8sL0xSLyIgOzsKLSsgICAgKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LyIgOzsK LSsgIGVzYWMKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgbWluZ3cqIHwgY2VnY2MqKSBsdF9z ZWRfc3RyaXBfZXE9InMsPVwoW0EtWmEtel06XCksXDEsZyIgOzsKLSsgICAgKikgbHRfc2VkX3N0 cmlwX2VxPSJzLD0vLC8sZyIgOzsKLSsgIGVzYWMKLSsgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRD QyAtcHJpbnQtc2VhcmNoLWRpcnMgfCBhd2sgJGx0X2F3a19hcmcgfCAkU0VEIC1lICJzL15saWJy YXJpZXM6Ly8iIC1lICRsdF9zZWRfc3RyaXBfZXFgCi0rICBjYXNlICRsdF9zZWFyY2hfcGF0aF9z cGVjIGluCi0rICAqXDsqKQotKyAgICAjIGlmIHRoZSBwYXRoIGNvbnRhaW5zICI7IiB0aGVuIHdl IGFzc3VtZSBpdCB0byBiZSB0aGUgc2VwYXJhdG9yCi0rICAgICMgb3RoZXJ3aXNlIGRlZmF1bHQg dG8gdGhlIHN0YW5kYXJkIHBhdGggc2VwYXJhdG9yIChpLmUuICI6IikgLSBpdCBpcwotKyAgICAj IGFzc3VtZWQgdGhhdCBubyBwYXJ0IG9mIGEgbm9ybWFsIHBhdGhuYW1lIGNvbnRhaW5zICI7IiBi dXQgdGhhdCBzaG91bGQKLSsgICAgIyBva2F5IGluIHRoZSByZWFsIHdvcmxkIHdoZXJlICI7IiBp biBkaXJwYXRocyBpcyBpdHNlbGYgcHJvYmxlbWF0aWMuCi0rICAgIGx0X3NlYXJjaF9wYXRoX3Nw ZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICdzLzsvIC9nJ2AKLSsgICAg OzsKLSsgICopCi0rICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3Bh dGhfc3BlYyIgfCAkU0VEICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAotKyAgICA7OwotKyAgZXNh YwotKyAgIyBPaywgbm93IHdlIGhhdmUgdGhlIHBhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMsIHdl IGNhbiBzdGVwIHRocm91Z2ggaXQKLSsgICMgYW5kIGFkZCBtdWx0aWxpYiBkaXIgaWYgbmVjZXNz YXJ5LgotKyAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9Ci0rICBsdF9tdWx0aV9vc19kaXI9 YCRDQyAkQ1BQRkxBR1MgJENGTEFHUyAkTERGTEFHUyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5 IDI+L2Rldi9udWxsYAotKyAgZm9yIGx0X3N5c19wYXRoIGluICRsdF9zZWFyY2hfcGF0aF9zcGVj OyBkbwotKyAgICBpZiB0ZXN0IC1kICIkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciI7IHRo ZW4KLSsgICAgICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hf cGF0aF9zcGVjICRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIgotKyAgICBlbHNlCi0rICAg ICAgdGVzdCAtZCAiJGx0X3N5c19wYXRoIiAmJiBcCi0rCWx0X3RtcF9sdF9zZWFyY2hfcGF0aF9z cGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoIgotKyAgICBmaQot KyAgZG9uZQotKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF90bXBfbHRfc2VhcmNo X3BhdGhfc3BlYyIgfCBhd2sgJwotK0JFR0lOIHtSUz0iICI7IEZTPSIvfFxuIjt9IHsKLSsgIGx0 X2Zvbz0iIjsKLSsgIGx0X2NvdW50PTA7Ci0rICBmb3IgKGx0X2kgPSBORjsgbHRfaSA+IDA7IGx0 X2ktLSkgewotKyAgICBpZiAoJGx0X2kgIT0gIiIgJiYgJGx0X2kgIT0gIi4iKSB7Ci0rICAgICAg aWYgKCRsdF9pID09ICIuLiIpIHsKLSsgICAgICAgIGx0X2NvdW50Kys7Ci0rICAgICAgfSBlbHNl IHsKLSsgICAgICAgIGlmIChsdF9jb3VudCA9PSAwKSB7Ci0rICAgICAgICAgIGx0X2Zvbz0iLyIg JGx0X2kgbHRfZm9vOwotKyAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgbHRfY291bnQtLTsK LSsgICAgICAgIH0KLSsgICAgICB9Ci0rICAgIH0KLSsgIH0KLSsgIGlmIChsdF9mb28gIT0gIiIp IHsgbHRfZnJlcVtsdF9mb29dKys7IH0KLSsgIGlmIChsdF9mcmVxW2x0X2Zvb10gPT0gMSkgeyBw cmludCBsdF9mb287IH0KLSt9J2AKLSsgICMgQVdLIHByb2dyYW0gYWJvdmUgZXJyb25lb3VzbHkg cHJlcGVuZHMgJy8nIHRvIEM6L2Rvcy9wYXRocwotKyAgIyBmb3IgdGhlc2UgaG9zdHMuCi0rICBj YXNlICRob3N0X29zIGluCi0rICAgIG1pbmd3KiB8IGNlZ2NjKikgbHRfc2VhcmNoX3BhdGhfc3Bl Yz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8XAotKyAgICAgICRTRUQgJ3MsL1woW0Et WmEtel06XCksXDEsZydgIDs7Ci0rICBlc2FjCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkbHRfTkwyU1BgCi0rZWxzZQotKyAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgotK2Zp Ci0rbGlicmFyeV9uYW1lc19zcGVjPQotK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCi0rc29uYW1l X3NwZWM9Ci0rc2hyZXh0X2NtZHM9Ii5zbyIKLStwb3N0aW5zdGFsbF9jbWRzPQotK3Bvc3R1bmlu c3RhbGxfY21kcz0KLStmaW5pc2hfY21kcz0KLStmaW5pc2hfZXZhbD0KLStzaGxpYnBhdGhfdmFy PQotK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD11bmtub3duCi0rdmVyc2lvbl90eXBlPW5v bmUKLStkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCi0rc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWM9Ii9saWIgL3Vzci9saWIiCi0rbmVlZF9saWJfcHJlZml4PXVua25vd24KLStoYXJk Y29kZV9pbnRvX2xpYnM9bm8KLSsKLSsjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8s IG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KLSsjIGZsYWdzIHRvIGJl IGxlZnQgd2l0aG91dCBhcmd1bWVudHMKLStuZWVkX3ZlcnNpb249dW5rbm93bgotKwotK2Nhc2Ug JGhvc3Rfb3MgaW4KLSthaXgzKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRs aWJuYW1lLmEnCi0rICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsKLSsgICMgQUlYIDMgaGFzIG5v IHZlcnNpb25pbmcgc3VwcG9ydCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUg bmFtZS4KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICA7OwotKwotK2FpeFs0LTldKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAg bmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKLSsgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAgICMgQUlY IDUgc3VwcG9ydHMgSUE2NAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIGVsc2UKLSsgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNv bGxlY3QyIHdvdWxkIGNyZWF0ZSBhbiBpbXBvcnQgZmlsZQotKyAgICAjIGZvciBkZXBlbmRlbmNl IGxpYnJhcmllcy4gIFRoZSBpbXBvcnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCi0rICAgICMgdGhl IGxpbmUgYCMhIC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8K LSsgICAgIyBkZXBlbmQgb24gYC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3 YXMgZml4ZWQgaW4KLSsgICAgIyBkZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHByaW9yIHRv IDMuMC4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeDQgfCBhaXg0LlswMV0gfCBh aXg0LlswMV0uKikKLSsgICAgICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05V Q19fID09IDIgJiYgX19HTlVDX01JTk9SX18gPj0gOTcpJwotKwkgICBlY2hvICcgeWVzICcKLSsJ ICAgZWNobyAnI2VuZGlmJzsgfSB8ICR7Q0N9IC1FIC0gfCAkR1JFUCB5ZXMgPiAvZGV2L251bGw7 IHRoZW4KLSsJOgotKyAgICAgIGVsc2UKLSsJY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIGZp Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVy c2lvbmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0 Ci0rICAgICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJz aW9uaW5nIHN1cHBvcnQgdG8KLSsgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBj YW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4KLSsgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxp bmtpbmciID0geWVzOyB0aGVuCi0rICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChv biBBSVggNC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+LnNvCi0rICAgICAgIyBpbnN0ZWFkIG9m IGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKLSsgICAg ICAjIHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgICAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0r ICAgIGVsc2UKLSsgICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVk IGxpYnJhcmllcyB0aHJvdWdoIEFJWDQuMgotKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJl IG5vdCBkb2luZyBydW4gdGltZSBsaW5raW5nLgotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJwotKyAgICAgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGZpCi0rICAgIHNo bGlicGF0aF92YXI9TElCUEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0rYW1pZ2FvcyopCi0rICBjYXNl ICRob3N0X2NwdSBpbgotKyAgcG93ZXJwYykKLSsgICAgIyBTaW5jZSBKdWx5IDIwMDcgQW1pZ2FP UzQgb2ZmaWNpYWxseSBzdXBwb3J0cyAuc28gbGlicmFyaWVzLgotKyAgICAjIFdoZW4gY29tcGls aW5nIHRoZSBleGVjdXRhYmxlLCBhZGQgLXVzZS1keW5sZCAtTHNvYmpzOiB0byB0aGUgY29tcGls ZWxpbmUuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICA7OwotKyAgbTY4aykKLSsgICAgbGlicmFy eV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKLSsgICAgIyBDcmVh dGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KLSsgICAgZmlu aXNoX2V2YWw9J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxg OyBkbyBsaWJuYW1lPWBmdW5jX2VjaG9fYWxsICIkbGliIiB8ICRTRUQgJ1wnJ3MlXi4qL1woW14v XSpcKVwuaXhsaWJyYXJ5JCVcMSUnXCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7bGlibmFtZX1f aXhsaWJyYXJ5LmE7ICRzaG93ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9 X2l4bGlicmFyeS5hIjsgY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxp YnJhcnkuYSB8fCBleGl0IDE7IGRvbmUnCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK2Jl b3MqKQotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsg IGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKLSsgIHNobGlicGF0aF92YXI9TElCUkFS WV9QQVRICi0rICA7OwotKwotK2JzZGlbNDVdKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAg bmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21kcz0nUEFUSD0i XCRQQVRIOi9zYmluIiBsZGNvbmZpZyAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91 c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCi0rICBzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgot KyAgIyB0aGUgZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xp YiBhbmQKLSsgICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gx MVI2KSwgYnV0IGxldCB1cyBhbGxvdwotKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBp bnRvIHByb2dyYW1zCi0rICA7OwotKwotK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2Nj KikKLSsgIHZlcnNpb25fdHlwZT13aW5kb3dzCi0rICBzaHJleHRfY21kcz0iLmRsbCIKLSsgIG5l ZWRfdmVyc2lvbj1ubwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rCi0rICBjYXNlICRHQ0MsJGNj X2Jhc2VuYW1lIGluCi0rICB5ZXMsKikKLSsgICAgIyBnY2MKLSsgICAgbGlicmFyeV9uYW1lc19z cGVjPSckbGlibmFtZS5kbGwuYScKLSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGly KS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNl X2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1j ICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgot KyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAgICB0ZXN0IC1k IFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9wcm9nICRkaXIv JGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFt ZX4KLSsgICAgICBpZiB0ZXN0IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0 cmlwbGliJ1wnJzsgdGhlbgotKyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxkaXIvJGRs bmFtZSdcJycgfHwgZXhpdCBcJD87Ci0rICAgICAgZmknCi0rICAgIHBvc3R1bmluc3RhbGxfY21k cz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+ Ci0rICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4KLSsgICAgICAgJFJNIFwkZGxwYXRoJwotKyAg ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgICAgY3lnd2luKikKLSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXgg cmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8 IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8t L2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rCi0rICAgICAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC91c3IvbGliL3czMmFwaSIKLSsg ICAgICA7OwotKyAgICBtaW5ndyogfCBjZWdjYyopCi0rICAgICAgIyBNaW5HVyBETExzIHVzZSB0 cmFkaXRpb25hbCAnbGliJyBwcmVmaXgKLSsgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBl Y2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVk X2V4dH0nCi0rICAgICAgOzsKLSsgICAgcHczMiopCi0rICAgICAgIyBwdzMyIERMTHMgdXNlICdw dycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdg ZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwg JFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIDs7 Ci0rICAgIGVzYWMKLSsgICAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKLSsgICAgOzsK LSsKLSsgICosY2wqKQotKyAgICAjIE5hdGl2ZSBNU1ZDCi0rICAgIGxpYm5hbWVfc3BlYz0nJG5h bWUnCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQg LWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9LmRsbC5saWInCi0rCi0rICAgIGNhc2UgJGJ1aWxkX29zIGlu Ci0rICAgIG1pbmd3KikKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ci0rICAgICAg bHRfc2F2ZV9pZnM9JElGUwotKyAgICAgIElGUz0nOycKLSsgICAgICBmb3IgbHRfcGF0aCBpbiAk TElCCi0rICAgICAgZG8KLSsgICAgICAgIElGUz0kbHRfc2F2ZV9pZnMKLSsgICAgICAgICMgTGV0 IERPUyB2YXJpYWJsZSBleHBhbnNpb24gcHJpbnQgdGhlIHNob3J0IDguMyBzdHlsZSBmaWxlIG5h bWUuCi0rICAgICAgICBsdF9wYXRoPWBjZCAiJGx0X3BhdGgiIDI+L2Rldi9udWxsICYmIGNtZCAv L0MgImZvciAlaSBpbiAoIi4iKSBkbyBAZWNobyAlfnNpImAKLSsgICAgICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAkbHRfcGF0aCIKLSsgICAg ICBkb25lCi0rICAgICAgSUZTPSRsdF9zYXZlX2lmcwotKyAgICAgICMgQ29udmVydCB0byBNU1lT IHN0eWxlLgotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWMiIHwgc2VkIC1lICdzfFxcXFx8L3xnJyAtZSAnc3wgXFwoW2EtekEt Wl1cXCk6fCAvXFwxfGcnIC1lICdzfF4gfHwnYAotKyAgICAgIDs7Ci0rICAgIGN5Z3dpbiopCi0r ICAgICAgIyBDb252ZXJ0IHRvIHVuaXggZm9ybSwgdGhlbiB0byBkb3MgZm9ybSwgdGhlbiBiYWNr IHRvIHVuaXggZm9ybQotKyAgICAgICMgYnV0IHRoaXMgdGltZSBkb3Mgc3R5bGUgKG5vIHNwYWNl cyEpIHNvIHRoYXQgdGhlIHVuaXggZm9ybSBsb29rcwotKyAgICAgICMgbGlrZSAvY3lnZHJpdmUv Yy9QUk9HUkF+MTovY3lnZHIuLi4KLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGN5 Z3BhdGggLS1wYXRoIC0tdW5peCAiJExJQiJgCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPWBjeWdwYXRoIC0tcGF0aCAtLWRvcyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgMj4v ZGV2L251bGxgCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBjeWdwYXRoIC0tcGF0 aCAtLXVuaXggIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAicy8kUEFUSF9T RVBBUkFUT1IvIC9nImAKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iJExJQiIKLSsgICAgICBpZiAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYyIgfCAkR1JFUCAnO1tjLXpDLVpdOi8nID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICMg SXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEguCi0rICAgICAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8 ICRTRUQgLWUgJ3MvOy8gL2cnYAotKyAgICAgIGVsc2UKLSsgICAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAi cy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKLSsgICAgICBmaQotKyAgICAgICMgRklYTUU6IGZpbmQg dGhlIHNob3J0IG5hbWUgb3IgdGhlIHBhdGggY29tcG9uZW50cywgYXMgc3BhY2VzIGFyZQotKyAg ICAgICMgY29tbW9uLiAoZS5nLiAiUHJvZ3JhbSBGaWxlcyIgLT4gIlBST0dSQX4xIikKLSsgICAg ICA7OwotKyAgICBlc2FjCi0rCi0rICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikv Li4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKLSsgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9m aWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+Ci0rICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAn XCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcnYH4KLSsg ICAgICBkbGRpcj0kZGVzdGRpci9gZGlybmFtZSBcJGRscGF0aGB+Ci0rICAgICAgdGVzdCAtZCBc JGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxkaXJ+Ci0rICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRk bG5hbWUgXCRkbGRpci8kZGxuYW1lJwotKyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAk U0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRs cGF0aD0kZGlyL1wkZGxkbGx+Ci0rICAgICAgICRSTSBcJGRscGF0aCcKLSsgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGluay5l eGUnCi0rICAgIDs7Ci0rCi0rICAqKQotKyAgICAjIEFzc3VtZSBNU1ZDIHdyYXBwZXIKLSsgICAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUg J3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCi0rICAg IGR5bmFtaWNfbGlua2VyPSdXaW4zMiBsZC5leGUnCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEZJ WE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNoIC4gYW5kIHRoZSBkaXJlY3RvcnkgdGhlIGV4ZWN1 dGFibGUgaXMgaW4KLSsgIHNobGlicGF0aF92YXI9UEFUSAotKyAgOzsKLSsKLStkYXJ3aW4qIHwg cmhhcHNvZHkqKQotKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGR5bGQiCi0rICB2ZXJzaW9u X3R5cGU9ZGFyd2luCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJl ZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMKLSsgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKLSsgIHNocmV4dF9j bWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJwot KwotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IC91c3IvbG9jYWwvbGliIgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9j YWwvbGliIC9saWIgL3Vzci9saWInCi0rICA7OwotKwotK2RndXgqKQotKyAgdmVyc2lvbl90eXBl PWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFy ZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICA7OwotKwotK2Zy ZWVic2QxKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK2ZyZWVic2QqIHwgZHJh Z29uZmx5KikKLSsgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhl eSBpbXBsZW1lbnQgYSBuZXcKLSsgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlz LgotKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4KLSsgICAgb2JqZm9ybWF0 PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCi0rICBlbHNlCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsg ICAgZnJlZWJzZFsxMjNdKikgb2JqZm9ybWF0PWFvdXQgOzsKLSsgICAgKikgb2JqZm9ybWF0PWVs ZiA7OwotKyAgICBlc2FjCi0rICBmaQotKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtJG9iamZvcm1h dAotKyAgY2FzZSAkdmVyc2lvbl90eXBlIGluCi0rICAgIGZyZWVic2QtZWxmKikKLSsgICAgICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRf ZXh0fScKLSsgICAgICBuZWVkX3ZlcnNpb249bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8K LSsgICAgICA7OwotKyAgICBmcmVlYnNkLSopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICAgICAgbmVlZF92ZXJzaW9uPXllcwotKyAgICAgIDs7Ci0r ICBlc2FjCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgY2FzZSAkaG9zdF9v cyBpbgotKyAgZnJlZWJzZDIqKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz Ci0rICAgIDs7Ci0rICBmcmVlYnNkMy5bMDFdKiB8IGZyZWVic2RlbGYzLlswMV0qKQotKyAgICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKLSsgICAgOzsKLSsgIGZyZWVic2QzLlsyLTldKiB8IGZyZWVic2RlbGYzLlsyLTldKiB8IFwK LSsgIGZyZWVic2Q0LlswLTVdIHwgZnJlZWJzZGVsZjQuWzAtNV0gfCBmcmVlYnNkNC4xLjEgfCBm cmVlYnNkZWxmNC4xLjEpCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAg ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICAqKSAjIGZyb20gNC42IG9uLCBh bmQgRHJhZ29uRmx5Ci0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAg aGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStnbnUq KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRf dmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7 bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK2hhaWt1KikK LSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3Zl cnNpb249bm8KLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBydW50aW1lX2xvYWRlciIKLSsg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5h bWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAotKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9Jy9ib290L2hvbWUvY29uZmlnL2xpYiAvYm9vdC9jb21tb24vbGliIC9ib290L3N5c3RlbS9s aWInCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK2hwdXg5KiB8IGhwdXgx MCogfCBocHV4MTEqKQotKyAgIyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1h am9yIHZlcnNpb24gc28gdGhhdCBkbGQuc2wgcmVmdXNlcyB0bwotKyAgIyBsaW5rIGFnYWluc3Qg b3RoZXIgdmVyc2lvbnMuCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIG5lZWRfbGliX3ByZWZp eD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBjYXNlICRob3N0X2NwdSBpbgotKyAgaWE2NCop Ci0rICAgIHNocmV4dF9jbWRzPScuc28nCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsg ICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbyIKLSsgICAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVu bGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAg aWYgdGVzdCAiWCRIUFVYX0lBNjRfTU9ERSIgPSBYMzI7IHRoZW4KLSsgICAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vz ci9sb2NhbC9saWIiCi0rICAgIGVsc2UKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Ii91c3IvbGliL2hwdXg2NCAvdXNyL2xvY2FsL2xpYi9ocHV4NjQiCi0rICAgIGZpCi0rICAgIHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsgICAg OzsKLSsgIGhwcGEqNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNsJwotKyAgICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCi0rICAg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRIICMgSG93IHNob3VsZCB3ZSBoYW5kbGUgU0hM SUJfUEFUSAotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtu b2VudnZhciBpcyBzcGVjaWZpZWQuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBfNjQi Ci0rICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWMKLSsgICAgOzsKLSsgICopCi0rICAgIHNocmV4dF9jbWRzPScuc2wnCi0rICAgIGR5bmFtaWNf bGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCi0rICAgIHNobGlicGF0aF92YXI9U0hMSUJfUEFUSAot KyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJlZCB0byBl bmFibGUgU0hMSUJfUEFUSAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgOzsKLSsgIGVzYWMK LSsgICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMg YXJlIG1vZGUgNTU1LCAuLi4KLSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJwot KyAgIyBvciBmYWlscyBvdXRyaWdodCwgc28gb3ZlcnJpZGUgYXRvbWljYWxseToKLSsgIGluc3Rh bGxfb3ZlcnJpZGVfbW9kZT01NTUKLSsgIDs7Ci0rCi0raW50ZXJpeFszLTldKikKLSsgIHZlcnNp b25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8K LSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJu YW1lfSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJwotKyAgZHluYW1pY19saW5rZXI9J0ludGVyaXggMy54IGxkLnNv LjEgKFBFLCBsaWtlIEVMRiknCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz Ci0rICA7OwotKwotK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICBjYXNlICRob3N0 X29zIGluCi0rICAgIG5vbnN0b3B1eCopIHZlcnNpb25fdHlwZT1ub25zdG9wdXggOzsKLSsgICAg KikKLSsJaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgotKwkJdmVyc2lv bl90eXBlPWxpbnV4Ci0rCWVsc2UKLSsJCXZlcnNpb25fdHlwZT1pcml4Ci0rCWZpIDs7Ci0rICBl c2FjCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIGNhc2UgJGhvc3Rf b3MgaW4KLSsgIGlyaXg1KiB8IG5vbnN0b3B1eCopCi0rICAgIGxpYnN1ZmY9IHNobGlic3VmZj0K LSsgICAgOzsKLSsgICopCi0rICAgIGNhc2UgJExEIGluICMgbGlidG9vbC5tNCB3aWxsIGFkZCBv bmUgb2YgdGhlc2Ugc3dpdGNoZXMgdG8gTEQKLSsgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNt aXB8KiItbWVsZjMyYnNtaXAgIikKLSsgICAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2lj PTMyLWJpdDs7Ci0rICAgICotbjMyfCoiLW4zMiAifCotbWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJi bWlwbjMyICIpCi0rICAgICAgbGlic3VmZj0zMiBzaGxpYnN1ZmY9TjMyIGxpYm1hZ2ljPU4zMjs7 Ci0rICAgICotNjR8KiItNjQgInwqLW1lbGY2NGJtaXB8KiItbWVsZjY0Ym1pcCAiKQotKyAgICAg IGxpYnN1ZmY9NjQgc2hsaWJzdWZmPTY0IGxpYm1hZ2ljPTY0LWJpdDs7Ci0rICAgICopIGxpYnN1 ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9bmV2ZXItbWF0Y2g7OwotKyAgICBlc2FjCi0rICAgIDs7 Ci0rICBlc2FjCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUlkke3NobGlic3VmZn1fUEFUSAot KyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7 bGlic3VmZn0iCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1 ZmZ9IC9saWIke2xpYnN1ZmZ9IgotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsK LSsjIE5vIHNoYXJlZCBsaWIgc3VwcG9ydCBmb3IgTGludXggb2xkbGQsIGFvdXQsIG9yIGNvZmYu Ci0rbGludXgqb2xkbGQqIHwgbGludXgqYW91dCogfCBsaW51eCpjb2ZmKikKLSsgIGR5bmFtaWNf bGlua2VyPW5vCi0rICA7OwotKwotKyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KLStsaW51eCog fCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgK LSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGli ZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubwotKwotKyAgIyBTb21lIGJpbnV0aWxzIGxkIGFyZSBwYXRjaGVkIHRv IHNldCBEVF9SVU5QQVRICi0rICBpZiAke2x0X2N2X3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGx0X2N2X3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICBzYXZlX0xERkxB R1M9JExERkxBR1MKLSsgICAgc2F2ZV9saWJkaXI9JGxpYmRpcgotKyAgICBldmFsICJsaWJkaXI9 L2Zvbzsgd2w9XCIkbHRfcHJvZ19jb21waWxlcl93bFwiOyBcCi0rCSBMREZMQUdTPVwiXCRMREZM QUdTICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIiCi0rICAgIGNhdCBjb25mZGVmcy5oIC0g PDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0r aW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStp ZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Ci0rICBpZiAgKCRPQkpEVU1QIC1w IGNvbmZ0ZXN0JGFjX2V4ZWV4dCkgMj4vZGV2L251bGwgfCBncmVwICJSVU5QQVRILiokbGliZGly IiA+L2Rldi9udWxsOyB0aGVuIDoKLSsgIGx0X2N2X3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMKLStmaQotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgIExE RkxBR1M9JHNhdmVfTERGTEFHUwotKyAgICBsaWJkaXI9JHNhdmVfbGliZGlyCi0rCi0rZmkKLSsK LSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD0kbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoCi0rCi0rICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlz IHVuYWNjZXB0YWJsZS4KLSsgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cg Zm9yIGZhc3RfaW5zdGFsbAotKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KLSsgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKLSsKLSsgICMgQWRkIEFCSS1zcGVjaWZpYyBkaXJlY3Rvcmll cyB0byB0aGUgc3lzdGVtIGxpYnJhcnkgcGF0aC4KLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjPSIvbGliNjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGliIgotKwotKyAgIyBBcHBlbmQgbGQu c28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKLSsgIGlmIHRlc3QgLWYgL2V0Yy9s ZC5zby5jb25mOyB0aGVuCi0rICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lz dGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFwkMikpOyBza2lwID0g MTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXCQwOyBza2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNv bmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWwkgXSpod2NhcFsJIF0vZDtzL1s6LAldLyAvZztzLz1b Xj1dKiQvLztzLz1bXj0gXSogLyAvZztzLyIvL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCi0rICAg IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMg JGx0X2xkX2V4dHJhIgotKwotKyAgZmkKLSsKLSsgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGli L2xkLnNvLjEgYW5kIGRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgotKyAgIyBwb3dlcnBjLCBi ZWNhdXNlIE1rTGludXggb25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQot KyAgIyBHTlUgZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9z cyBjb21waWxlcnMsCi0rICAjIG1vc3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFt aWMgbGlua2luZyB0aGVzZSBkYXlzIGFuZAotKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2Fi bGUtc2hhcmVkLCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCi0rICAjIGFzc3VtZSB0aGUg R05VL0xpbnV4IGR5bmFtaWMgbGlua2VyIGlzIGluIHVzZS4KLSsgIGR5bmFtaWNfbGlua2VyPSdH TlUvTGludXggbGQuc28nCi0rICA7OwotKwotK25ldGJzZCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vu b3MKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBpZiBlY2hv IF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICBmaW5pc2hf Y21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgICBkeW5h bWljX2xpbmtlcj0nTmV0QlNEIChhLm91dCkgbGQuc28nCi0rICBlbHNlCi0rICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVk X2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCi0rICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJwotKyAgZmkK LSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK25ld3Nv czYpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMK LSsgIDs7Ci0rCi0rKm50byogfCAqcW54KikKLSsgIHZlcnNpb25fdHlwZT1xbngKLSsgIG5lZWRf bGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBkeW5hbWljX2xpbmtlcj0nbGRx bnguc28nCi0rICA7OwotKwotK29wZW5ic2QqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIiCi0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpk byogbmVlZCB2ZXJzaW9uZWQgbGlicy4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgb3BlbmJz ZDMuMyB8IG9wZW5ic2QzLjMuKikJbmVlZF92ZXJzaW9uPXllcyA7OwotKyAgICAqKQkJCQluZWVk X3ZlcnNpb249bm8gIDs7Ci0rICBlc2FjCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4JwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25m aWcgLW0gJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBpZiB0 ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVz dCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rICAg IGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBvcGVuYnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4q KQotKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsJOzsKLSsgICAgICAqKQotKwlz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgZWxz ZQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBmaQotKyAgOzsKLSsK LStvczIqKQotKyAgbGlibmFtZV9zcGVjPSckbmFtZScKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgot KyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtz aGFyZWRfZXh0fSAkbGlibmFtZS5hJwotKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJwot KyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0rICA7OwotKwotK29zZjMqIHwgb3NmNCogfCBvc2Y1 KikKLSsgIHZlcnNpb25fdHlwZT1vc2YKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92 ZXJzaW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xp YiAvdXNyL2xpYi9jbXBscnMvY2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIK LSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IgotKyAgOzsKLSsKLStyZG9zKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK3Nv bGFyaXMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsg IG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKLSsgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFy ZSBleGVjdXRhYmxlCi0rICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJwotKyAgOzsK LSsKLStzdW5vczQqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDov dXNyL2V0YyIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBpZiB0ZXN0ICIkd2l0 aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgZmkKLSsg IG5lZWRfdmVyc2lvbj15ZXMKLSsgIDs7Ci0rCi0rc3lzdjQgfCBzeXN2NC4zKikKLSsgIHZlcnNp b25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIGNhc2UgJGhvc3RfdmVuZG9yIGluCi0rICAgIHNuaSkKLSsgICAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsg ICAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAgICAgIDs7Ci0rICAgIHNpZW1lbnMpCi0r ICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgbW90b3JvbGEpCi0rICAg ICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPScvbGliIC91c3IvbGliIC91c3IvY2NzL2xpYicKLSsgICAgICA7OwotKyAgZXNhYwotKyAg OzsKLSsKLStzeXN2NCpNUCopCi0rICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0rICAgIHZl cnNpb25fdHlwZT1saW51eAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFy ZWRfZXh0fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRt YWpvcicKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGZpCi0rICA7Owot KwotK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCog fCBzeXN2NCp1dzIqKQotKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtZWxmCi0rICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7 IHRoZW4KLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvdXNy L2dudS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCi0rICBlbHNlCi0rICAgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9jY3MvbGliIC91c3IvbGliJwotKyAgICBjYXNlICRo b3N0X29zIGluCi0rICAgICAgc2NvMy4ydjUqKQotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC9saWIiCi0rCTs7Ci0rICAgIGVzYWMK LSsgIGZpCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9saWInCi0rICA7Owot KwotK3RwZiopCi0rICAjIFRQRiBpcyBhIGNyb3NzLXRhcmdldCBvbmx5LiAgUHJlZmVycmVkIGNy b3NzLWhvc3QgPSBHTlUvTGludXguCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGli X3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rdXRzNCopCi0rICB2ZXJz aW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICi0rICA7OwotKwotKyopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLStl c2FjCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRk eW5hbWljX2xpbmtlciIgPiY1Ci0rJGFzX2VjaG8gIiRkeW5hbWljX2xpbmtlciIgPiY2OyB9Ci0r dGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLSt2 YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92 YXIiCi0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIHZhcmlhYmxlc19zYXZlZF9mb3Jf cmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJ TEVSX1BBVEggTElCUkFSWV9QQVRIIgotK2ZpCi0rCi0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbGli X3NlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKLStmaQotK2lmIHRlc3Qg IiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsg IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWMiCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg aG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcyIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFt cy4uLiAiID4mNjsgfQotK2hhcmRjb2RlX2FjdGlvbj0KLStpZiB0ZXN0IC1uICIkaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYyIgfHwKLSsgICB0ZXN0IC1uICIkcnVucGF0aF92YXIiIHx8Ci0rICAg dGVzdCAiWCRoYXJkY29kZV9hdXRvbWF0aWMiID0gIlh5ZXMiIDsgdGhlbgotKwotKyAgIyBXZSBj YW4gaGFyZGNvZGUgbm9uLWV4aXN0ZW50IGRpcmVjdG9yaWVzLgotKyAgaWYgdGVzdCAiJGhhcmRj b2RlX2RpcmVjdCIgIT0gbm8gJiYKLSsgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2 b2lkIGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKLSsgICAgICMgaGF2ZSB0byByZWxp bmssIG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKLSsg ICAgICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxl ZCBvbmUKLSsgICAgICMjIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs ICkiICE9IG5vICYmCi0rICAgICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgIT0gbm87IHRoZW4K LSsgICAgIyBMaW5raW5nIGFsd2F5cyBoYXJkY29kZXMgdGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRp cmVjdG9yeS4KLSsgICAgaGFyZGNvZGVfYWN0aW9uPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdl IGNhbiBsaW5rIHdpdGhvdXQgaGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlz dGluZyBkaXJzLgotKyAgICBoYXJkY29kZV9hY3Rpb249aW1tZWRpYXRlCi0rICBmaQotK2Vsc2UK LSsgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhh cmRjb2RlIGV4aXN0aW5nCi0rICAjIGRpcmVjdG9yaWVzLgotKyAgaGFyZGNvZGVfYWN0aW9uPXVu c3VwcG9ydGVkCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJGhhcmRjb2RlX2FjdGlvbiIgPiY1Ci0rJGFzX2VjaG8gIiRoYXJkY29kZV9hY3Rp b24iID4mNjsgfQotKwotK2lmIHRlc3QgIiRoYXJkY29kZV9hY3Rpb24iID0gcmVsaW5rIHx8Ci0r ICAgdGVzdCAiJGluaGVyaXRfcnBhdGgiID0geWVzOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0 aW9uIGlzIG5vdCBzdXBwb3J0ZWQKLSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KLStlbGlmIHRl c3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzIHx8Ci0rICAgICB0ZXN0ICIk ZW5hYmxlX3NoYXJlZCIgPSBubzsgdGhlbgotKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qg bmVjZXNzYXJ5Ci0rICBlbmFibGVfZmFzdF9pbnN0YWxsPW5lZWRsZXNzCi0rZmkKLSsKLSsKLSsK LSsKLSsKLSsKLSsgIGlmIHRlc3QgIngkZW5hYmxlX2Rsb3BlbiIgIT0geHllczsgdGhlbgotKyAg ZW5hYmxlX2Rsb3Blbj11bmtub3duCi0rICBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93bgotKyAg ZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duCi0rZWxzZQotKyAgbHRfY3ZfZGxvcGVu PW5vCi0rICBsdF9jdl9kbG9wZW5fbGlicz0KLSsKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGJl b3MqKQotKyAgICBsdF9jdl9kbG9wZW49ImxvYWRfYWRkX29uIgotKyAgICBsdF9jdl9kbG9wZW5f bGlicz0KLSsgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCi0rICAgIDs7Ci0rCi0rICBtaW5ndyog fCBwdzMyKiB8IGNlZ2NjKikKLSsgICAgbHRfY3ZfZGxvcGVuPSJMb2FkTGlicmFyeSIKLSsgICAg bHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAgIDs7Ci0rCi0rICBjeWd3aW4qKQotKyAgICBsdF9jdl9k bG9wZW49ImRsb3BlbiIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAgIDs7Ci0rCi0rICBk YXJ3aW4qKQotKyAgIyBpZiBsaWJkbCBpcyBpbnN0YWxsZWQgd2UgbmVlZCB0byBsaW5rIGFnYWlu c3QgaXQKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgZGxvcGVuIGluIC1sZGwiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBk bG9wZW4gaW4gLWxkbC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfbGliX2RsX2Rsb3Blbis6fSBm YWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFj X2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbGRsICAkTElCUyIKLStjYXQgY29u ZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmgu ICAqLwotKwotKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lk IGFuIGVycm9yLgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1 cm4gdHlwZSBvZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3Rv dHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJu ICJDIgotKyNlbmRpZgotK2NoYXIgZGxvcGVuICgpOwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0 dXJuIGRsb3BlbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19m bl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Ci0rICBhY19jdl9saWJfZGxfZGxvcGVuPXll cwotK2Vsc2UKLSsgIGFjX2N2X2xpYl9kbF9kbG9wZW49bm8KLStmaQotK3JtIC1mIGNvcmUgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVleHQg Y29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGli X2RsX2Rsb3BlbiIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjY7IH0K LStpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbF9kbG9wZW4iID0geHllczsgdGhlbiA6Ci0rICBsdF9j dl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiCi0rZWxzZQotKwotKyAg ICBsdF9jdl9kbG9wZW49ImR5bGQiCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICBsdF9j dl9kbG9wZW5fc2VsZj15ZXMKLSsKLStmaQotKwotKyAgICA7OwotKwotKyAgKikKLSsgICAgYWNf Zm5fY19jaGVja19mdW5jICIkTElORU5PIiAic2hsX2xvYWQiICJhY19jdl9mdW5jX3NobF9sb2Fk IgotK2lmIHRlc3QgIngkYWNfY3ZfZnVuY19zaGxfbG9hZCIgPSB4eWVzOyB0aGVuIDoKLSsgIGx0 X2N2X2Rsb3Blbj0ic2hsX2xvYWQiCi0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Igc2hsX2xvYWQgaW4gLWxkbGQiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBzaGxfbG9hZCBpbiAtbGRsZC4uLiAiID4mNjsgfQotK2lm ICR7YWNfY3ZfbGliX2RsZF9zaGxfbG9hZCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMK LStMSUJTPSItbGRsZCAgJExJQlMiCi0rY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRl c3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlkZSBhbnkg R0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hhciBi ZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBidWls dGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAq LwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyIHNobF9s b2FkICgpOwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIHNobF9sb2FkICgpOwotKyAgOwot KyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8i OyB0aGVuIDoKLSsgIGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQ9eWVzCi0rZWxzZQotKyAgYWNfY3Zf bGliX2RsZF9zaGxfbG9hZD1ubwotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0 Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9saWJfZGxkX3NobF9sb2FkIiA+ JjUKLSskYXNfZWNobyAiJGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQiID4mNjsgfQotK2lmIHRlc3Qg IngkYWNfY3ZfbGliX2RsZF9zaGxfbG9hZCIgPSB4eWVzOyB0aGVuIDoKLSsgIGx0X2N2X2Rsb3Bl bj0ic2hsX2xvYWQiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCIKLStlbHNlCi0rICBhY19mbl9j X2NoZWNrX2Z1bmMgIiRMSU5FTk8iICJkbG9wZW4iICJhY19jdl9mdW5jX2Rsb3BlbiIKLStpZiB0 ZXN0ICJ4JGFjX2N2X2Z1bmNfZGxvcGVuIiA9IHh5ZXM7IHRoZW4gOgotKyAgbHRfY3ZfZGxvcGVu PSJkbG9wZW4iCi0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBkbG9wZW4gaW4gLWxkbC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfbGliX2RsX2Rs b3Blbis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbGRsICAkTElCUyIK LStjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo IHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVmIF9fY3BsdXNwbHVz Ci0rZXh0ZXJuICJDIgotKyNlbmRpZgotK2NoYXIgZGxvcGVuICgpOwotK2ludAotK21haW4gKCkK LSt7Ci0rcmV0dXJuIGRsb3BlbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YK LStpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Ci0rICBhY19jdl9saWJfZGxf ZGxvcGVuPXllcwotK2Vsc2UKLSsgIGFjX2N2X2xpYl9kbF9kbG9wZW49bm8KLStmaQotK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRh Y19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMK LStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk YWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9saWJfZGxfZGxvcGVu IiA+JjY7IH0KLStpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbF9kbG9wZW4iID0geHllczsgdGhlbiA6 Ci0rICBsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiCi0rZWxz ZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgZGxvcGVuIGluIC1sc3ZsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3Bl biBpbiAtbHN2bGQuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X2xpYl9zdmxkX2Rsb3Blbis6fSBm YWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFj X2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbHN2bGQgICRMSUJTIgotK2NhdCBj b25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rCi0rLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZv aWQgYW4gZXJyb3IuCi0rICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJl dHVybiB0eXBlIG9mIGEgR0NDCi0rICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRl cm4gIkMiCi0rI2VuZGlmCi0rY2hhciBkbG9wZW4gKCk7Ci0raW50Ci0rbWFpbiAoKQotK3sKLSty ZXR1cm4gZGxvcGVuICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFj X2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGFjX2N2X2xpYl9zdmxkX2Rsb3Bl bj15ZXMKLStlbHNlCi0rICBhY19jdl9saWJfc3ZsZF9kbG9wZW49bm8KLStmaQotK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19l eGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStm aQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNf Y3ZfbGliX3N2bGRfZGxvcGVuIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2xpYl9zdmxkX2Rsb3Bl biIgPiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9saWJfc3ZsZF9kbG9wZW4iID0geHllczsgdGhl biA6Ci0rICBsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sc3ZsZCIK LStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIGZvciBkbGRfbGluayBpbiAtbGRsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IGRsZF9saW5rIGluIC1sZGxkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9saWJfZGxkX2RsZF9s aW5rKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sZGxkICAkTElCUyIK LStjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo IHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVmIF9fY3BsdXNwbHVz Ci0rZXh0ZXJuICJDIgotKyNlbmRpZgotK2NoYXIgZGxkX2xpbmsgKCk7Ci0raW50Ci0rbWFpbiAo KQotK3sKLStyZXR1cm4gZGxkX2xpbmsgKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FD RU9GCi0raWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotKyAgYWNfY3ZfbGli X2RsZF9kbGRfbGluaz15ZXMKLStlbHNlCi0rICBhY19jdl9saWJfZGxkX2RsZF9saW5rPW5vCi0r ZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAg Y29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJf c2F2ZV9MSUJTCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJGFjX2N2X2xpYl9kbGRfZGxkX2xpbmsiID4mNQotKyRhc19lY2hvICIkYWNfY3Zf bGliX2RsZF9kbGRfbGluayIgPiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9saWJfZGxkX2RsZF9s aW5rIiA9IHh5ZXM7IHRoZW4gOgotKyAgbHRfY3ZfZGxvcGVuPSJkbGRfbGluayIgbHRfY3ZfZGxv cGVuX2xpYnM9Ii1sZGxkIgotK2ZpCi0rCi0rCi0rZmkKLSsKLSsKLStmaQotKwotKwotK2ZpCi0r Ci0rCi0rZmkKLSsKLSsKLStmaQotKwotKyAgICA7OwotKyAgZXNhYwotKwotKyAgaWYgdGVzdCAi eCRsdF9jdl9kbG9wZW4iICE9IHhubzsgdGhlbgotKyAgICBlbmFibGVfZGxvcGVuPXllcwotKyAg ZWxzZQotKyAgICBlbmFibGVfZGxvcGVuPW5vCi0rICBmaQotKwotKyAgY2FzZSAkbHRfY3ZfZGxv cGVuIGluCi0rICBkbG9wZW4pCi0rICAgIHNhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKLSsgICAg dGVzdCAieCRhY19jdl9oZWFkZXJfZGxmY25faCIgPSB4eWVzICYmIENQUEZMQUdTPSIkQ1BQRkxB R1MgLURIQVZFX0RMRkNOX0giCi0rCi0rICAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAg IHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjXCIKLSsKLSsgICAgc2F2ZV9MSUJTPSIkTElCUyIKLSsgICAgTElC Uz0iJGx0X2N2X2Rsb3Blbl9saWJzICRMSUJTIgotKwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgYSBwcm9ncmFtIGNhbiBkbG9w ZW4gaXRzZWxmIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGEgcHJvZ3JhbSBj YW4gZGxvcGVuIGl0c2VsZi4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfZGxvcGVuX3NlbGYrOn0g ZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAJ ICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6Ci0rICBsdF9jdl9kbG9w ZW5fc2VsZj1jcm9zcwotK2Vsc2UKLSsgIGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0x OyBsdF9kbG5lZWRfdXNjb3JlPTIKLSsgIGx0X3N0YXR1cz0kbHRfZGx1bmtub3duCi0rICBjYXQg PiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgotKyNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIK LSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSsKLSsjaWYgSEFWRV9ETEZDTl9ICi0rI2luY2x1ZGUg PGRsZmNuLmg+Ci0rI2VuZGlmCi0rCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rCi0rI2lmZGVmIFJU TERfR0xPQkFMCi0rIyAgZGVmaW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAotKyNlbHNlCi0r IyAgaWZkZWYgRExfR0xPQkFMCi0rIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAot KyMgIGVsc2UKLSsjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJMAotKyMgIGVuZGlmCi0rI2VuZGlm Ci0rCi0rLyogV2UgbWF5IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNv bW1hbmQgbGluZSBpZiB3ZQotKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBw bGF0Zm9ybS4gKi8KLSsjaWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKLSsjICBpZmRlZiBSVExEX0xB WlkKLSsjICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKLSsjICBlbHNlCi0r IyAgICBpZmRlZiBETF9MQVpZCi0rIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9M QVpZCi0rIyAgICBlbHNlCi0rIyAgICAgIGlmZGVmIFJUTERfTk9XCi0rIyAgICAgICAgZGVmaW5l IExUX0RMTEFaWV9PUl9OT1cJUlRMRF9OT1cKLSsjICAgICAgZWxzZQotKyMgICAgICAgIGlmZGVm IERMX05PVwotKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCi0rIyAg ICAgICAgZWxzZQotKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAotKyMgICAg ICAgIGVuZGlmCi0rIyAgICAgIGVuZGlmCi0rIyAgICBlbmRpZgotKyMgIGVuZGlmCi0rI2VuZGlm Ci0rCi0rLyogV2hlbiAtZnZpc2JpbGl0eT1oaWRkZW4gaXMgdXNlZCwgYXNzdW1lIHRoZSBjb2Rl IGhhcyBiZWVuIGFubm90YXRlZAotKyAgIGNvcnJlc3BvbmRpbmdseSBmb3IgdGhlIHN5bWJvbHMg bmVlZGVkLiAgKi8KLSsjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKCgoX19HTlVDX18gPT0gMykg JiYgKF9fR05VQ19NSU5PUl9fID49IDMpKSB8fCAoX19HTlVDX18gPiAzKSkKLStpbnQgZm5vcmQg KCkgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSk7Ci0rI2VuZGlmCi0rCi0r aW50IGZub3JkICgpIHsgcmV0dXJuIDQyOyB9Ci0raW50IG1haW4gKCkKLSt7Ci0rICB2b2lkICpz ZWxmID0gZGxvcGVuICgwLCBMVF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XKTsKLSsgIGludCBz dGF0dXMgPSAkbHRfZGx1bmtub3duOwotKwotKyAgaWYgKHNlbGYpCi0rICAgIHsKLSsgICAgICBp ZiAoZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsK LSsgICAgICBlbHNlCi0rICAgICAgICB7Ci0rCSAgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkg IHN0YXR1cyA9ICRsdF9kbG5lZWRfdXNjb3JlOwotKyAgICAgICAgICBlbHNlIHB1dHMgKGRsZXJy b3IgKCkpOwotKwl9Ci0rICAgICAgLyogZGxjbG9zZSAoc2VsZik7ICovCi0rICAgIH0KLSsgIGVs c2UKLSsgICAgcHV0cyAoZGxlcnJvciAoKSk7Ci0rCi0rICByZXR1cm4gc3RhdHVzOwotK30KLStf TFRfRU9GCi0rICBpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElO RU5PfTogXCIkYWNfbGlua1wiIjsgfSA+JjUKLSsgIChldmFsICRhY19saW5rKSAyPiY1Ci0rICBh Y19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0JHthY19leGVleHR9IDI+L2Rldi9udWxsOyB0aGVuCi0rICAgICguL2NvbmZ0ZXN0 OyBleGl0OyApID4mNSAyPi9kZXYvbnVsbAotKyAgICBsdF9zdGF0dXM9JD8KLSsgICAgY2FzZSB4 JGx0X3N0YXR1cyBpbgotKyAgICAgIHgkbHRfZGxub191c2NvcmUpIGx0X2N2X2Rsb3Blbl9zZWxm PXllcyA7OwotKyAgICAgIHgkbHRfZGxuZWVkX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGY9eWVz IDs7Ci0rICAgICAgeCRsdF9kbHVua25vd258eCopIGx0X2N2X2Rsb3Blbl9zZWxmPW5vIDs7Ci0r ICAgIGVzYWMKLSsgIGVsc2UgOgotKyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAotKyAgICBsdF9j dl9kbG9wZW5fc2VsZj1ubwotKyAgZmkKLStmaQotK3JtIC1mciBjb25mdGVzdCoKLSsKLSsKLStm aQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRf Y3ZfZGxvcGVuX3NlbGYiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfZGxvcGVuX3NlbGYiID4mNjsg fQotKwotKyAgICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3Blbl9zZWxmIiA9IHh5ZXM7IHRoZW4KLSsg ICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9n cmFtIGNhbiBkbG9wZW4gaXRzZWxmIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IGEgc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZi4uLiAiID4mNjsg fQotK2lmICR7bHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgCSAgaWYgdGVzdCAiJGNyb3NzX2Nv bXBpbGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPWNyb3Nz Ci0rZWxzZQotKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91 c2NvcmU9MgotKyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KLSsgIGNhdCA+IGNvbmZ0ZXN0LiRh Y19leHQgPDxfTFRfRU9GCi0rI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotKyNpbmNsdWRlICJj b25mZGVmcy5oIgotKwotKyNpZiBIQVZFX0RMRkNOX0gKLSsjaW5jbHVkZSA8ZGxmY24uaD4KLSsj ZW5kaWYKLSsKLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsKLSsjaWZkZWYgUlRMRF9HTE9CQUwKLSsj ICBkZWZpbmUgTFRfRExHTE9CQUwJCVJUTERfR0xPQkFMCi0rI2Vsc2UKLSsjICBpZmRlZiBETF9H TE9CQUwKLSsjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJRExfR0xPQkFMCi0rIyAgZWxzZQotKyMg ICAgZGVmaW5lIExUX0RMR0xPQkFMCQkwCi0rIyAgZW5kaWYKLSsjZW5kaWYKLSsKLSsvKiBXZSBt YXkgaGF2ZSB0byBkZWZpbmUgTFRfRExMQVpZX09SX05PVyBpbiB0aGUgY29tbWFuZCBsaW5lIGlm IHdlCi0rICAgZmluZCBvdXQgaXQgZG9lcyBub3Qgd29yayBpbiBzb21lIHBsYXRmb3JtLiAqLwot KyNpZm5kZWYgTFRfRExMQVpZX09SX05PVwotKyMgIGlmZGVmIFJUTERfTEFaWQotKyMgICAgZGVm aW5lIExUX0RMTEFaWV9PUl9OT1cJCVJUTERfTEFaWQotKyMgIGVsc2UKLSsjICAgIGlmZGVmIERM X0xBWlkKLSsjICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCURMX0xBWlkKLSsjICAgIGVs c2UKLSsjICAgICAgaWZkZWYgUlRMRF9OT1cKLSsjICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09S X05PVwlSVExEX05PVwotKyMgICAgICBlbHNlCi0rIyAgICAgICAgaWZkZWYgRExfTk9XCi0rIyAg ICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlETF9OT1cKLSsjICAgICAgICBlbHNlCi0r IyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkwCi0rIyAgICAgICAgZW5kaWYKLSsj ICAgICAgZW5kaWYKLSsjICAgIGVuZGlmCi0rIyAgZW5kaWYKLSsjZW5kaWYKLSsKLSsvKiBXaGVu IC1mdmlzYmlsaXR5PWhpZGRlbiBpcyB1c2VkLCBhc3N1bWUgdGhlIGNvZGUgaGFzIGJlZW4gYW5u b3RhdGVkCi0rICAgY29ycmVzcG9uZGluZ2x5IGZvciB0aGUgc3ltYm9scyBuZWVkZWQuICAqLwot KyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoKChfX0dOVUNfXyA9PSAzKSAmJiAoX19HTlVDX01J Tk9SX18gPj0gMykpIHx8IChfX0dOVUNfXyA+IDMpKQotK2ludCBmbm9yZCAoKSBfX2F0dHJpYnV0 ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKTsKLSsjZW5kaWYKLSsKLStpbnQgZm5vcmQgKCkg eyByZXR1cm4gNDI7IH0KLStpbnQgbWFpbiAoKQotK3sKLSsgIHZvaWQgKnNlbGYgPSBkbG9wZW4g KDAsIExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9OT1cpOwotKyAgaW50IHN0YXR1cyA9ICRsdF9k bHVua25vd247Ci0rCi0rICBpZiAoc2VsZikKLSsgICAgewotKyAgICAgIGlmIChkbHN5bSAoc2Vs ZiwiZm5vcmQiKSkgICAgICAgc3RhdHVzID0gJGx0X2Rsbm9fdXNjb3JlOwotKyAgICAgIGVsc2UK LSsgICAgICAgIHsKLSsJICBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSAgc3RhdHVzID0gJGx0 X2RsbmVlZF91c2NvcmU7Ci0rICAgICAgICAgIGVsc2UgcHV0cyAoZGxlcnJvciAoKSk7Ci0rCX0K LSsgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KLSsgICAgfQotKyAgZWxzZQotKyAgICBwdXRz IChkbGVycm9yICgpKTsKLSsKLSsgIHJldHVybiBzdGF0dXM7Ci0rfQotK19MVF9FT0YKLSsgIGlm IHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY19s aW5rXCIiOyB9ID4mNQotKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwot KyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2Fj X2V4ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4KLSsgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiY1 IDI+L2Rldi9udWxsCi0rICAgIGx0X3N0YXR1cz0kPwotKyAgICBjYXNlIHgkbHRfc3RhdHVzIGlu Ci0rICAgICAgeCRsdF9kbG5vX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7 OwotKyAgICAgIHgkbHRfZGxuZWVkX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXll cyA7OwotKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9 bm8gOzsKLSsgICAgZXNhYwotKyAgZWxzZSA6Ci0rICAgICMgY29tcGlsYXRpb24gZmFpbGVkCi0r ICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubwotKyAgZmkKLStmaQotK3JtIC1mciBjb25m dGVzdCoKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiAkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIiA+JjUKLSskYXNfZWNobyAiJGx0 X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyIgPiY2OyB9Ci0rICAgIGZpCi0rCi0rICAgIENQUEZMQUdT PSIkc2F2ZV9DUFBGTEFHUyIKLSsgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKLSsgICAgTElC Uz0iJHNhdmVfTElCUyIKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3Bl bl9zZWxmIGluCi0rICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZj0kbHRfY3ZfZGxvcGVuX3Nl bGYgOzsKLSsgICopIGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duIDs7Ci0rICBlc2FjCi0rCi0r ICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMgaW4KLSsgIHllc3xubykgZW5hYmxlX2Rs b3Blbl9zZWxmX3N0YXRpYz0kbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIDs7Ci0rICAqKSBlbmFi bGVfZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24gOzsKLSsgIGVzYWMKLStmaQotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK3N0cmlwbGliPQotK29s ZF9zdHJpcGxpYj0KLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIHdoZXRoZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZSIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxl Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAtbiAiJFNUUklQIiAmJiAkU1RSSVAgLVYgMj4mMSB8ICRH UkVQICJHTlUgc3RyaXAiID4vZGV2L251bGw7IHRoZW4KLSsgIHRlc3QgLXogIiRvbGRfc3RyaXBs aWIiICYmIG9sZF9zdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtZGVidWciCi0rICB0ZXN0IC16ICIk c3RyaXBsaWIiICYmIHN0cmlwbGliPSIkU1RSSVAgLS1zdHJpcC11bm5lZWRlZCIKLSsgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQotKyRh c19lY2hvICJ5ZXMiID4mNjsgfQotK2Vsc2UKLSsjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0 ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkgZ29vZCBlbm91Z2gKLSsgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgIGRhcndpbiopCi0rICAgIGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVuCi0rICAgICAg c3RyaXBsaWI9IiRTVFJJUCAteCIKLSsgICAgICBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtUyIKLSsg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVz IiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLSsgICAgZWxzZQotKyAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2Vj aG8gIm5vIiA+JjY7IH0KLSsgICAgZmkKLSsgICAgOzsKLSsgICopCi0rICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8g Im5vIiA+JjY7IH0KLSsgICAgOzsKLSsgIGVzYWMKLStmaQotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKyAgIyBSZXBvcnQgd2hpY2ggbGlicmFyeSB0eXBlcyB3aWxsIGFjdHVh bGx5IGJlIGJ1aWx0Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4u ICIgPiY2OyB9Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGNhbl9idWlsZF9zaGFyZWQiID4mNQotKyRhc19lY2hvICIkY2FuX2J1aWxkX3NoYXJl ZCIgPiY2OyB9Ci0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcyIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2 OyB9Ci0rICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9 bm8KLSsKLSsgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVz IHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAotKyAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElD LgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgYWl4MyopCi0rICAgIHRlc3QgIiRlbmFibGVfc2hh cmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIi OyB0aGVuCi0rICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGli IgotKyAgICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKLSsgICAgZmkKLSsgICAg OzsKLSsKLSsgIGFpeFs0LTldKikKLSsgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYm IHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgotKyAgICAgIHRlc3Qg IiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICAgIGZpCi0rICAg IDs7Ci0rICBlc2FjCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJGVuYWJsZV9zaGFyZWQiID4mNQotKyRhc19lY2hvICIkZW5hYmxlX3NoYXJlZCIg PiY2OyB9Ci0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLi4uICIgPiY2OyB9 Ci0rICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlz IHllcy4KLSsgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXll cwotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRl bmFibGVfc3RhdGljIiA+JjUKLSskYXNfZWNobyAiJGVuYWJsZV9zdGF0aWMiID4mNjsgfQotKwot KwotKwotKwotK2ZpCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0r YWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQ RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJf Z251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rQ0M9IiRsdF9zYXZlX0NDIgotKwotKyAg ICAgIGlmIHRlc3QgLW4gIiRDWFgiICYmICggdGVzdCAiWCRDWFgiICE9ICJYbm8iICYmCi0rICAg ICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBgZysrIC12ID4vZGV2L251bGwgMj4mMWAgKSB8 fAotKyAgICAodGVzdCAiWCRDWFgiICE9ICJYZysrIikpKSA7IHRoZW4KLSsgIGFjX2V4dD1jcHAK LSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2du dQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaG93 IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3NvciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg aG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3Nvci4uLiAiID4mNjsgfQotK2lmIHRlc3QgLXog IiRDWFhDUFAiOyB0aGVuCi0rICBpZiAke2FjX2N2X3Byb2dfQ1hYQ1BQKzp9IGZhbHNlOyB0aGVu IDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgICAgICMgRG91Ymxl IHF1b3RlcyBiZWNhdXNlIENYWENQUCBuZWVkcyB0byBiZSBleHBhbmRlZAotKyAgICBmb3IgQ1hY Q1BQIGluICIkQ1hYIC1FIiAiL2xpYi9jcHAiCi0rICAgIGRvCi0rICAgICAgYWNfcHJlcHJvY19v az1mYWxzZQotK2ZvciBhY19jeHhfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCi0rZG8KLSsg ICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcg Z2xpYmMKLSsgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgotKyAgIyBQcmVm ZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNl Ci0rICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4K LSsgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGls ZXIncyBwYXJzZXIsCi0rICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBp cyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KLSsgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0Yg PmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2lmZGVmIF9fU1RE Q19fCi0rIyBpbmNsdWRlIDxsaW1pdHMuaD4KLSsjZWxzZQotKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+ Ci0rI2VuZGlmCi0rCQkgICAgIFN5bnRheCBlcnJvcgotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90 cnlfY3BwICIkTElORU5PIjsgdGhlbiA6Ci0rCi0rZWxzZQotKyAgIyBCcm9rZW46IGZhaWxzIG9u IHZhbGlkIGlucHV0LgotK2NvbnRpbnVlCi0rZmkKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRl c3QuaSBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAg Tm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycwotKyAgIyBjYW4gYmUgZGV0ZWN0 ZWQgYW5kIGhvdy4KLSsgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19l eHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+ Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jcHAgIiRMSU5FTk8iOyB0aGVuIDoKLSsgICMg QnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCi0rY29udGludWUKLStlbHNlCi0rICAj IFBhc3NlcyBib3RoIHRlc3RzLgotK2FjX3ByZXByb2Nfb2s9OgotK2JyZWFrCi0rZmkKLStybSAt ZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuaSBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rZG9uZQotKyMg QmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdh cyBza2lwcGVkLgotK3JtIC1mIGNvbmZ0ZXN0LmkgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19l eHQKLStpZiAkYWNfcHJlcHJvY19vazsgdGhlbiA6Ci0rICBicmVhawotK2ZpCi0rCi0rICAgIGRv bmUKLSsgICAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAotKwotK2ZpCi0rICBDWFhDUFA9JGFj X2N2X3Byb2dfQ1hYQ1BQCi0rZWxzZQotKyAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAotK2Zp Ci0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDWFhD UFAiID4mNQotKyRhc19lY2hvICIkQ1hYQ1BQIiA+JjY7IH0KLSthY19wcmVwcm9jX29rPWZhbHNl Ci0rZm9yIGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2Ug YSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwot KyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGlt aXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMg PGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBP biB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBh cnNlciwKLSsgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUg dG8gY2F0Y2ggdGhpcyBjYXNlLgotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRl c3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18KLSsj IGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5k aWYKLSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jcHAg IiRMSU5FTk8iOyB0aGVuIDoKLSsKLStlbHNlCi0rICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQg aW5wdXQuCi0rY29udGludWUKLStmaQotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC5pIGNv bmZ0ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hl Y2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQg aG93LgotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNF T0YKLStpZiBhY19mbl9jeHhfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgotKyAgIyBCcm9rZW46 IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UKLSsgICMgUGFzc2Vz IGJvdGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQotK3JtIC1mIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC5pIGNvbmZ0ZXN0LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNhdXNl IG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBw ZWQuCi0rcm0gLWYgY29uZnRlc3QuaSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotK2lm ICRhY19wcmVwcm9jX29rOyB0aGVuIDoKLSsKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0rYXNfZm5fZXJyb3Ig JD8gIkMrKyBwcmVwcm9jZXNzb3IgXCIkQ1hYQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi0rU2Vl IFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KLStmaQotKwot K2FjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRD WFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5r PSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4 X2NvbXBpbGVyX2dudQotKwotK2Vsc2UKLSsgIF9sdF9jYXVnaHRfQ1hYX2Vycm9yPXllcwotK2Zp Ci0rCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGls ZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2Fj X2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExE RkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19j dl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCi0rYWxs b3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPQotK2Fsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9bm8KLSth cmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0KLStjb21waWxlcl9uZWVkc19vYmplY3RfQ1hYPW5vCi0r ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0KLStoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCi0r aGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD1ubwotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfQ1hYPQotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYPQotK2hhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3JfQ1hYPQotK2hhcmRjb2RlX21pbnVzX0xfQ1hYPW5vCi0raGFyZGNvZGVf c2hsaWJwYXRoX3Zhcl9DWFg9dW5zdXBwb3J0ZWQKLStoYXJkY29kZV9hdXRvbWF0aWNfQ1hYPW5v Ci0raW5oZXJpdF9ycGF0aF9DWFg9bm8KLSttb2R1bGVfY21kc19DWFg9Ci0rbW9kdWxlX2V4cHN5 bV9jbWRzX0NYWD0KLStsaW5rX2FsbF9kZXBsaWJzX0NYWD11bmtub3duCi0rb2xkX2FyY2hpdmVf Y21kc19DWFg9JG9sZF9hcmNoaXZlX2NtZHMKLStyZWxvYWRfZmxhZ19DWFg9JHJlbG9hZF9mbGFn Ci0rcmVsb2FkX2NtZHNfQ1hYPSRyZWxvYWRfY21kcwotK25vX3VuZGVmaW5lZF9mbGFnX0NYWD0K LSt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9Ci0rZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRp Y19ydW50aW1lc19DWFg9bm8KLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQysrIHRl c3Qgc291cmNlcy4KLSthY19leHQ9Y3BwCi0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9y IGNvbXBpbGVkIEMrKyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStvYmpleHRfQ1hYPSRvYmpl eHQKLSsKLSsjIE5vIHNlbnNlIGluIHJ1bm5pbmcgYWxsIHRoZXNlIHRlc3RzIGlmIHdlIGFscmVh ZHkgZGV0ZXJtaW5lZCB0aGF0Ci0rIyB0aGUgQ1hYIGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBT b21lIHZhcmlhYmxlcyAobGlrZSBlbmFibGVfc2hhcmVkKQotKyMgYXJlIGN1cnJlbnRseSBhc3N1 bWVkIHRvIGFwcGx5IHRvIGFsbCBjb21waWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKLSsjIGFuZCB3 aWxsIGJlIGNvcnJ1cHRlZCBieSBzZXR0aW5nIHRoZW0gYmFzZWQgb24gYSBub24td29ya2luZyBj b21waWxlci4KLStpZiB0ZXN0ICIkX2x0X2NhdWdodF9DWFhfZXJyb3IiICE9IHllczsgdGhlbgot KyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKLSsgIGx0X3NpbXBs ZV9jb21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKLSsKLSsgICMgQ29k ZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCi0rICBsdF9zaW1wbGVfbGlua190ZXN0 X2NvZGU9J2ludCBtYWluKGludCwgY2hhciAqW10pIHsgcmV0dXJuKDApOyB9JwotKwotKyAgIyBs dG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3Vy ZSAkQ0MgaXMgc2V0LgotKwotKwotKwotKwotKwotKwotKyMgSWYgbm8gQyBjb21waWxlciB3YXMg c3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNv bXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRD RkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rCi0rCi0rICAjIHNhdmUgd2FybmluZ3MvYm9p bGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNf b2JqZXh0Ci0rZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRh Y19leHQKLStldmFsICIkYWNfY29tcGlsZSIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7 IC9eICorL2QnID5jb25mdGVzdC5lcnIKLStfbHRfY29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBj b25mdGVzdC5lcnJgCi0rJFJNIGNvbmZ0ZXN0KgotKwotKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4k YWNfb2JqZXh0Ci0rZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRh Y19leHQKLStldmFsICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9e ICorL2QnID5jb25mdGVzdC5lcnIKLStfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRl c3QuZXJyYAotKyRSTSAtciBjb25mdGVzdCoKLSsKLSsKLSsgICMgQWxsb3cgQ0MgdG8gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rICBsdF9zYXZlX0NDPSRDQwotKyAgbHRfc2F2 ZV9DRkxBR1M9JENGTEFHUwotKyAgbHRfc2F2ZV9MRD0kTEQKLSsgIGx0X3NhdmVfR0NDPSRHQ0MK LSsgIEdDQz0kR1hYCi0rICBsdF9zYXZlX3dpdGhfZ251X2xkPSR3aXRoX2dudV9sZAotKyAgbHRf c2F2ZV9wYXRoX0xEPSRsdF9jdl9wYXRoX0xECi0rICBpZiB0ZXN0IC1uICIke2x0X2N2X3Byb2df Z251X2xkY3h4K3NldH0iOyB0aGVuCi0rICAgIGx0X2N2X3Byb2dfZ251X2xkPSRsdF9jdl9wcm9n X2dudV9sZGN4eAotKyAgZWxzZQotKyAgICAkYXNfdW5zZXQgbHRfY3ZfcHJvZ19nbnVfbGQKLSsg IGZpCi0rICBpZiB0ZXN0IC1uICIke2x0X2N2X3BhdGhfTERDWFgrc2V0fSI7IHRoZW4KLSsgICAg bHRfY3ZfcGF0aF9MRD0kbHRfY3ZfcGF0aF9MRENYWAotKyAgZWxzZQotKyAgICAkYXNfdW5zZXQg bHRfY3ZfcGF0aF9MRAotKyAgZmkKLSsgIHRlc3QgLXogIiR7TERDWFgrc2V0fSIgfHwgTEQ9JExE Q1hYCi0rICBDQz0ke0NYWC0iYysrIn0KLSsgIENGTEFHUz0kQ1hYRkxBR1MKLSsgIGNvbXBpbGVy PSRDQwotKyAgY29tcGlsZXJfQ1hYPSRDQwotKyAgZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7 IGRvCi0rICBjYXNlICRjY190ZW1wIGluCi0rICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwg Y2NhY2hlIHwgKltcXC9dY2NhY2hlICkgOzsKLSsgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwg cHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsKLSsgICAgXC0qKSA7OwotKyAgICAqKSBicmVhazs7 Ci0rICBlc2FjCi0rZG9uZQotK2NjX2Jhc2VuYW1lPWAkRUNITyAiJGNjX3RlbXAiIHwgJFNFRCAi cyUuKi8lJTsgcyVeJGhvc3RfYWxpYXMtJSUiYAotKwotKwotKyAgaWYgdGVzdCAtbiAiJGNvbXBp bGVyIjsgdGhlbgotKyAgICAjIFdlIGRvbid0IHdhbnQgLWZuby1leGNlcHRpb24gd2hlbiBjb21w aWxpbmcgQysrIGNvZGUsIHNvIHNldCB0aGUKLSsgICAgIyBub19idWlsdGluX2ZsYWcgc2VwYXJh dGVseQotKyAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NYWD0nIC1mbm8tYnVpbHRpbicKLSsgICAgZWxzZQotKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NYWD0KLSsgICAgZmkKLSsKLSsg ICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICAjIFNldCB1cCBkZWZhdWx0IEdO VSBDKysgY29uZmlndXJhdGlvbgotKwotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZ251 LWxkIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfZ251X2xkK3NldH0iID0gc2V0OyB0aGVu IDoKLSsgIHdpdGh2YWw9JHdpdGhfZ251X2xkOyB0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRo X2dudV9sZD15ZXMKLStlbHNlCi0rICB3aXRoX2dudV9sZD1ubwotK2ZpCi0rCi0rYWNfcHJvZz1s ZAotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAjIENoZWNrIGlmIGdjYyAtcHJpbnQt cHJvZy1uYW1lPWxkIGdpdmVzIGEgcGF0aC4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgbGQgdXNlZCBieSAkQ0MuLi4gIiA+JjY7IH0KLSsgIGNhc2UgJGhv c3QgaW4KLSsgICotKi1taW5ndyopCi0rICAgICMgZ2NjIGxlYXZlcyBhIHRyYWlsaW5nIGNhcnJp YWdlIHJldHVybiB3aGljaCB1cHNldHMgbWluZ3cKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQt cHJvZy1uYW1lPWxkKSAyPiY1IHwgdHIgLWQgJ1wwMTUnYCA7OwotKyAgKikKLSsgICAgYWNfcHJv Zz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1YCA7OwotKyAgZXNhYwotKyAgY2FzZSAk YWNfcHJvZyBpbgotKyAgICAjIEFjY2VwdCBhYnNvbHV0ZSBwYXRocy4KLSsgICAgW1xcL10qIHwg PzpbXFwvXSopCi0rICAgICAgcmVfZGlyZWx0PScvW14vXVteL10qL1wuXC4vJwotKyAgICAgICMg Q2Fub25pY2FsaXplIHRoZSBwYXRobmFtZSBvZiBsZAotKyAgICAgIGFjX3Byb2c9YCRFQ0hPICIk YWNfcHJvZyJ8ICRTRUQgJ3MlXFxcXCUvJWcnYAotKyAgICAgIHdoaWxlICRFQ0hPICIkYWNfcHJv ZyIgfCAkR1JFUCAiJHJlX2RpcmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KLSsJYWNfcHJvZz1g JEVDSE8gJGFjX3Byb2d8ICRTRUQgInMlJHJlX2RpcmVsdCUvJSJgCi0rICAgICAgZG9uZQotKyAg ICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19wcm9nIgotKyAgICAgIDs7Ci0rICAiIikKLSsg ICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCi0rICAg IGFjX3Byb2c9bGQKLSsgICAgOzsKLSsgICopCi0rICAgICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRo ZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQgaW4gUEFUSC4KLSsgICAgd2l0aF9nbnVfbGQ9dW5r bm93bgotKyAgICA7OwotKyAgZXNhYwotK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBmb3IgR05VIGxkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgR05VIGxkLi4uICIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyBmb3Igbm9uLUdOVSBsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IG5vbi1HTlUgbGQuLi4gIiA+JjY7IH0KLStmaQotK2lmICR7bHRfY3ZfcGF0aF9MRCs6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRl c3QgLXogIiRMRCI7IHRoZW4KLSsgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFS QVRPUgotKyAgZm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMi Ci0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgIiRh Y19kaXIvJGFjX3Byb2ciIHx8IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0Ijsg dGhlbgotKyAgICAgIGx0X2N2X3BhdGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCi0rICAgICAgIyBD aGVjayB0byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12 ZXJzaW9uLAotKyAgICAgICMgYnV0IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQg b25seSBhY2NlcHQgLXYuCi0rICAgICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25v bi1HTlUgbGQgdGhhdCB3ZSBwcmVmZXIuCi0rICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAt diAyPiYxIDwvZGV2L251bGxgIGluCi0rICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rCXRl c3QgIiR3aXRoX2dudV9sZCIgIT0gbm8gJiYgYnJlYWsKLSsJOzsKLSsgICAgICAqKQotKwl0ZXN0 ICIkd2l0aF9nbnVfbGQiICE9IHllcyAmJiBicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsgICAg ZmkKLSsgIGRvbmUKLSsgIElGUz0iJGx0X3NhdmVfaWZzIgotK2Vsc2UKLSsgIGx0X2N2X3BhdGhf TEQ9IiRMRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0r ZmkKLStmaQotKwotK0xEPSIkbHRfY3ZfcGF0aF9MRCIKLStpZiB0ZXN0IC1uICIkTEQiOyB0aGVu Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJExE IiA+JjUKLSskYXNfZWNobyAiJExEIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIg PiY2OyB9Ci0rZmkKLSt0ZXN0IC16ICIkTEQiICYmIGFzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRh YmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgIiRMSU5FTk8iIDUKLSt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05V IGxkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdO VSBsZC4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfcHJvZ19nbnVfbGQrOn0gZmFsc2U7IHRoZW4g OgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAjIEknZCByYXRoZXIg dXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBhY2Nl cHQgLXYuCi0rY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsqR05VKiB8ICond2l0 aCBCRkQnKikKLSsgIGx0X2N2X3Byb2dfZ251X2xkPXllcwotKyAgOzsKLSsqKQotKyAgbHRfY3Zf cHJvZ19nbnVfbGQ9bm8KLSsgIDs7Ci0rZXNhYwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2dudV9sZCIgPiY1Ci0rJGFz X2VjaG8gIiRsdF9jdl9wcm9nX2dudV9sZCIgPiY2OyB9Ci0rd2l0aF9nbnVfbGQ9JGx0X2N2X3By b2dfZ251X2xkCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAgICAgIyBDaGVjayBpZiBHTlUgQysr IHVzZXMgR05VIGxkIGFzIHRoZSB1bmRlcmx5aW5nIGxpbmtlciwgc2luY2UgdGhlCi0rICAgICAg IyBhcmNoaXZpbmcgY29tbWFuZHMgYmVsb3cgYXNzdW1lIHRoYXQgR05VIGxkIGlzIGJlaW5nIHVz ZWQuCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICAgICAg YXJjaGl2ZV9jbWRzX0NYWD0nJENDICRwaWNfZmxhZyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICAgIGFyY2hpdmVfZXhw c3ltX2NtZHNfQ1hYPSckQ0MgJHBpY19mbGFnIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBv cnRfc3ltYm9scyAtbyAkbGliJwotKwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICAgIGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsKLSsgICAgICAgICMgSWYg YXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5Ci0rICAg ICAgICAjIFhYWCBJIHRoaW5rIHdsYXJjIGNhbiBiZSBlbGltaW5hdGVkIGluIGx0Y2YtY3h4LCBi dXQgSSBuZWVkIHRvCi0rICAgICAgICAjICAgICBpbnZlc3RpZ2F0ZSBpdCBhIGxpdHRsZSBiaXQg bW9yZS4gKE1NKQotKyAgICAgICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAgICAgIyBhbmNpZW50 IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgotKyAgICAgICAg aWYgZXZhbCAiYCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkYCAtLWhlbHAgMj4mMSIgfAotKwkgICRH UkVQICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgICB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmll bmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCi0rICAgICAgICBlbHNlCi0rICAgICAg ICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0KLSsgICAgICAgIGZpCi0rICAgICAgZWxz ZQotKyAgICAgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgICAgIHdsYXJjPQotKwotKyAgICAgICAg IyBBIGdlbmVyaWMgYW5kIHZlcnkgc2ltcGxlIGRlZmF1bHQgc2hhcmVkIGxpYnJhcnkgY3JlYXRp b24KLSsgICAgICAgICMgY29tbWFuZCBmb3IgR05VIEMrKyBmb3IgdGhlIGNhc2Ugd2hlcmUgaXQg dXNlcyB0aGUgbmF0aXZlCi0rICAgICAgICAjIGxpbmtlciwgaW5zdGVhZCBvZiBHTlUgbGQuICBJ ZiBwb3NzaWJsZSwgdGhpcyBzZXR0aW5nIHNob3VsZAotKyAgICAgICAgIyBvdmVycmlkZGVuIHRv IHRha2UgYWR2YW50YWdlIG9mIHRoZSBuYXRpdmUgbGlua2VyIGZlYXR1cmVzIG9uCi0rICAgICAg ICAjIHRoZSBwbGF0Zm9ybSBpdCBpcyBiZWluZyB1c2VkIG9uLgotKyAgICAgICAgYXJjaGl2ZV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJwotKyAgICAg IGZpCi0rCi0rICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9z ZSBvdXRwdXQgdGhhdCBsaXN0cwotKyAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9i amVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKyAgICAgICMgbGlua2luZyBhIHNo YXJlZCBsaWJyYXJ5LgotKyAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJl ZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQIC12ICJeQ29uZmlndXJl ZCB3aXRoOiIgfCAkR1JFUCAiXC1MIicKLSsKLSsgICAgZWxzZQotKyAgICAgIEdYWD1ubwotKyAg ICAgIHdpdGhfZ251X2xkPW5vCi0rICAgICAgd2xhcmM9Ci0rICAgIGZpCi0rCi0rICAgICMgUE9S VE1FOiBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBDKysgbGluayBjaGFy YWN0ZXJpc3RpY3MKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNo YXJlZCBsaWJyYXJpZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlICRj b21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsg fQotKyAgICBsZF9zaGxpYnNfQ1hYPXllcwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAg YWl4MyopCi0rICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKLSsgICAgICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAgICAgIDs7Ci0rICAgICAgYWl4WzQt OV0qKQotKyAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgICAg ICAgIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0 LCBzbyB3ZSBkb24ndAotKyAgICAgICAgICAjIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4K LSsgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKyAgICAgICAgICBleHBfc3lt X2ZsYWc9Jy1CZXhwb3J0JwotKyAgICAgICAgICBub19lbnRyeV9mbGFnPSIiCi0rICAgICAgICBl bHNlCi0rICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KLSsKLSsgICAgICAgICAg IyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFs Ci0rICAgICAgICAgICMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBp biBMREZMQUdTLCB3ZQotKyAgICAgICAgICAjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgot KyAgICAgICAgICBjYXNlICRob3N0X29zIGluIGFpeDQuWzIzXXxhaXg0LlsyM10uKnxhaXhbNS05 XSopCi0rCSAgICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsJICAgICAgY2FzZSAkbGRf ZmxhZyBpbgotKwkgICAgICAqLWJydGwqKQotKwkgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtp bmc9eWVzCi0rCSAgICAgICAgYnJlYWsKLSsJICAgICAgICA7OwotKwkgICAgICBlc2FjCi0rCSAg ICBkb25lCi0rCSAgICA7OwotKyAgICAgICAgICBlc2FjCi0rCi0rICAgICAgICAgIGV4cF9zeW1f ZmxhZz0nLWJleHBvcnQnCi0rICAgICAgICAgIG5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKLSsg ICAgICAgIGZpCi0rCi0rICAgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVk IG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCi0rICAgICAgICAjIGhhdmUgcHJvYmxlbXMg Y3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKLSsg ICAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAt bW1pbmltYWwtdG9jIHRvCi0rICAgICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4g IEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAotKyAgICAgICAgIyBlbm91Z2ggdG8gZml4 IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1MuCi0rCi0rICAgICAgICBh cmNoaXZlX2NtZHNfQ1hYPScnCi0rICAgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcwotKyAg ICAgICAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD15ZXMKLSsgICAgICAgIGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3JfQ1hYPSc6JwotKyAgICAgICAgbGlua19hbGxfZGVwbGlic19DWFg9 eWVzCi0rICAgICAgICBmaWxlX2xpc3Rfc3BlY19DWFg9JyR7d2x9LWYsJwotKwotKyAgICAgICAg aWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBh aXg0LlswMTJdfGFpeDQuWzAxMl0uKikKLSsgICAgICAgICAgIyBXZSBvbmx5IHdhbnQgdG8gZG8g dGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCi0rICAgICAgICAgICMgYmVsb3cg Zm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKwotKwkgIGNvbGxlY3Qy bmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAKLSsJICBpZiB0ZXN0IC1mICIk Y29sbGVjdDJuYW1lIiAmJgotKwkgICAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgJEdSRVAg cmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9udWxsCi0rCSAgdGhlbgotKwkgICAgIyBXZSBoYXZlIHJl d29ya2VkIGNvbGxlY3QyCi0rCSAgICA6Ci0rCSAgZWxzZQotKwkgICAgIyBXZSBoYXZlIG9sZCBj b2xsZWN0MgotKwkgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD11bnN1cHBvcnRlZAotKwkgICAgIyBJ dCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxl ZAotKwkgICAgIyBwYXRoIGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhh cmRjb2RlX21pbnVzX0wKLSsJICAgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZwot KwkgICAgaGFyZGNvZGVfbWludXNfTF9DWFg9eWVzCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0NYWD0nLUwkbGliZGlyJwotKwkgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9D WFg9Ci0rCSAgZmkKLSsgICAgICAgICAgZXNhYwotKyAgICAgICAgICBzaGFyZWRfZmxhZz0nLXNo YXJlZCcKLSsJICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4K LSsJICAgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwotKwkgIGZpCi0rICAg ICAgICBlbHNlCi0rICAgICAgICAgICMgbm90IHVzaW5nIGdjYwotKyAgICAgICAgICBpZiB0ZXN0 ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgICMgVmlzdWFsQWdlIEMrKywgVmVyc2lvbiA1 LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxlYXNlCi0rCSAgIyBjaG9rZXMgb24g LVdsLC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoKLSsJICBzaGFyZWRfZmxhZz0n LUcnCi0rICAgICAgICAgIGVsc2UKLSsJICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5r aW5nIiA9IHllczsgdGhlbgotKwkgICAgICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKLSsJICAgIGVs c2UKLSsJICAgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKLSsJICAgIGZpCi0rICAgICAg ICAgIGZpCi0rICAgICAgICBmaQotKwotKyAgICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj X0NYWD0nJHt3bH0tYmV4cGFsbCcKLSsgICAgICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBk b2VzIG5vdCBleHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAotKyAgICAgICAgIyB1bmRlcnNj b3JlIChfKSwgc28gaXQgaXMgYmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRv Ci0rCSMgZXhwb3J0LgotKyAgICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWD15ZXMKLSsg ICAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKyAg ICAgICAgICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRp bmcgZmxhZ3MgKC1icnRsKSwKLSsgICAgICAgICAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQg ZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKyAgICAgICAgICBhbGxv d191bmRlZmluZWRfZmxhZ19DWFg9Jy1iZXJvaycKLSsgICAgICAgICAgIyBEZXRlcm1pbmUgdGhl IGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5Ci0rICAg ICAgICAgICMgZXhlY3V0YWJsZS4KLSsgICAgICAgICAgaWYgdGVzdCAiJHtsdF9jdl9haXhfbGli cGF0aCtzZXR9IiA9IHNldDsgdGhlbgotKyAgYWl4X2xpYnBhdGg9JGx0X2N2X2FpeF9saWJwYXRo Ci0rZWxzZQotKyAgaWYgJHtsdF9jdl9haXhfbGlicGF0aF9fQ1hYKzp9IGZhbHNlOyB0aGVuIDoK LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0IGNvbmZkZWZzLmgg LSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsK LStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgot K2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotKwotKyAgbHRfYWl4X2xp YnBhdGhfc2VkPScKLSsgICAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7Ci0rCSAgL14w LyB7Ci0rCSAgICAgIHMvXjAgICpcKFteIF0qXCkgKiQvXDEvCi0rCSAgICAgIHAKLSsJICB9Ci0r ICAgICAgfScKLSsgIGx0X2N2X2FpeF9saWJwYXRoX19DWFg9YGR1bXAgLUggY29uZnRlc3QkYWNf ZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0r ICAjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcu Ci0rICBpZiB0ZXN0IC16ICIkbHRfY3ZfYWl4X2xpYnBhdGhfX0NYWCI7IHRoZW4KLSsgICAgbHRf Y3ZfYWl4X2xpYnBhdGhfX0NYWD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2 L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLSsgIGZpCi0rZmkKLSty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29uZnRl c3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIHRlc3QgLXogIiRsdF9jdl9haXhf bGlicGF0aF9fQ1hYIjsgdGhlbgotKyAgICBsdF9jdl9haXhfbGlicGF0aF9fQ1hYPSIvdXNyL2xp YjovbGliIgotKyAgZmkKLSsKLStmaQotKwotKyAgYWl4X2xpYnBhdGg9JGx0X2N2X2FpeF9saWJw YXRoX19DWFgKLStmaQotKwotKyAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NY WD0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsKLSsgICAgICAgICAg YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3Mg YGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuIGZ1bmNfZWNo b19hbGwgIiR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iOyBlbHNlIDo7IGZpYCAnIlwke3ds fSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCi0rICAgICAgICBl bHNlCi0rICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9s aWInCi0rCSAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Ii16IG5vZGVmcyIKLSsJICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRj b21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9z eW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgotKyAgICAgICAgICBlbHNlCi0rCSAgICAjIERldGVy bWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KLSsJ ICAgICMgZW1wdHkgZXhlY3V0YWJsZS4KLSsJICAgIGlmIHRlc3QgIiR7bHRfY3ZfYWl4X2xpYnBh dGgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGFpeF9saWJwYXRoPSRsdF9jdl9haXhfbGlicGF0aAot K2Vsc2UKLSsgIGlmICR7bHRfY3ZfYWl4X2xpYnBhdGhfX0NYWCs6fSBmYWxzZTsgdGhlbiA6Ci0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCBjb25mZGVmcy5oIC0g PDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0r aW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStp ZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsKLSsgIGx0X2FpeF9saWJw YXRoX3NlZD0nCi0rICAgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkgIC9eMC8g ewotKwkgICAgICBzL14wICAqXChbXiBdKlwpICokL1wxLwotKwkgICAgICBwCi0rCSAgfQotKyAg ICAgIH0nCi0rICBsdF9jdl9haXhfbGlicGF0aF9fQ1hYPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotKyAg IyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgot KyAgaWYgdGVzdCAteiAiJGx0X2N2X2FpeF9saWJwYXRoX19DWFgiOyB0aGVuCi0rICAgIGx0X2N2 X2FpeF9saWJwYXRoX19DWFg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9u dWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rICBmaQotK2ZpCi0rcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0rICAgIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiB0ZXN0IC16ICIkbHRfY3ZfYWl4X2xp YnBhdGhfX0NYWCI7IHRoZW4KLSsgICAgbHRfY3ZfYWl4X2xpYnBhdGhfX0NYWD0iL3Vzci9saWI6 L2xpYiIKLSsgIGZpCi0rCi0rZmkKLSsKLSsgIGFpeF9saWJwYXRoPSRsdF9jdl9haXhfbGlicGF0 aF9fQ1hYCi0rZmkKLSsKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3ds fS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICAgIyBXYXJuaW5nIC0gd2l0 aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKLSsJICAgICMgLWJl cm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGli cmFyeS4KLSsJICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWJlcm5vdG9rJwotKwkg ICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0tYmVyb2snCi0rCSAgICBpZiB0ZXN0 ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rCSAgICAgICMgV2Ugb25seSB1c2UgdGhpcyBj b2RlIGZvciBHTlUgbGRzIHRoYXQgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUuCi0rCSAgICAgIHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVu Y2UgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgICBlbHNlCi0rCSAgICAgICMgRXhwb3J0 ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZl cwotKwkgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9JyRjb252ZW5pZW5jZScKLSsJ ICAgIGZpCi0rCSAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCi0rCSAgICAjIFRoaXMg aXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQKLSsJ ICAgICMgbGlicmFyaWVzLgotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9IlwkQ0MgJHNo YXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAk e3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHth bGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFt ZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKLSsgICAgICAgICAgZmkKLSsgICAg ICAgIGZpCi0rICAgICAgICA7OwotKwotKyAgICAgIGJlb3MqKQotKwlpZiAkTEQgLS1oZWxwIDI+ JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVu Ci0rCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPXVuc3VwcG9ydGVkCi0rCSAgIyBKb3NlcGgg QmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwotKwkg ICMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9u LiAgRklYTUUKLSsJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0r CWVsc2UKLSsJICBsZF9zaGxpYnNfQ1hYPW5vCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgY2hvcnVz KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgICopCi0rCSAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgbGRfc2hsaWJzX0NY WD1ubwotKwkgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIGN5Z3dp biogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsJY2FzZSAkR1hYLCRjY19iYXNlbmFtZSBp bgotKwksY2wqIHwgbm8sY2wqKQotKwkgICMgTmF0aXZlIE1TVkMKLSsJICAjIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCi0rCSAg IyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWD0nICcKLSsJICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9dW5zdXBwb3J0ZWQKLSsJICBh bHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYPXllcwotKwkgIGZpbGVfbGlzdF9zcGVjX0NYWD0nQCcK LSsJICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgotKwkg IGxpYmV4dD1saWIKLSsJICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90IC5z byBmaWxlcy4KLSsJICBzaHJleHRfY21kcz0iLmRsbCIKLSsJICAjIEZJWE1FOiBTZXR0aW5nIGxp bmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCi0rCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1v ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWJz IC1XbCwtZGxsfmxpbmtuYW1lcz0nCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2lmIHRl c3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0rCSAgICAg ICRTRUQgLW4gLWUgJ3MvXFxcXFxcXCguKlxcXFxcXFwpLy1saW5rXFxcIC1FWFBPUlQ6XFxcXFxc XDEvJyAtZSAnMVxcXCFwJyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRzb25h bWUuZXhwOwotKwkgICAgZWxzZQotKwkgICAgICAkU0VEIC1lICdzL1xcXFxcXFwoLipcXFxcXFxc KS8tbGlua1xcXCAtRVhQT1JUOlxcXFxcXFwxLycgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0 X29iamRpci8kc29uYW1lLmV4cDsKLSsJICAgIGZpfgotKwkgICAgJENDIC1vICR0b29sX291dHB1 dF9vYmpkaXIkc29uYW1lICRsaWJvYmpzICRjb21waWxlcl9mbGFncyAkZGVwbGlicyAiQCR0b29s X291dHB1dF9vYmpkaXIkc29uYW1lLmV4cCIgLVdsLC1ETEwsLUlNUExJQjoiJHRvb2xfb3V0cHV0 X29iamRpciRsaWJuYW1lLmRsbC5saWIifgotKwkgICAgbGlua25hbWVzPScKLSsJICAjIFRoZSBs aW5rZXIgd2lsbCBub3QgYXV0b21hdGljYWxseSBidWlsZCBhIHN0YXRpYyBsaWIgaWYgd2UgYnVp bGQgYSBETEwuCi0rCSAgIyBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsIENY WCk9J3RydWUnCi0rCSAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFg9eWVz Ci0rCSAgIyBEb24ndCB1c2UgcmFubGliCi0rCSAgb2xkX3Bvc3RpbnN0YWxsX2NtZHNfQ1hYPSdj aG1vZCA2NDQgJG9sZGxpYicKLSsJICBwb3N0bGlua19jbWRzX0NYWD0nbHRfb3V0cHV0ZmlsZT0i QE9VVFBVVEAifgotKwkgICAgbHRfdG9vbF9vdXRwdXRmaWxlPSJAVE9PTF9PVVRQVVRAIn4KLSsJ ICAgIGNhc2UgJGx0X291dHB1dGZpbGUgaW4KLSsJICAgICAgKi5leGV8Ki5FWEUpIDs7Ci0rCSAg ICAgICopCi0rCQlsdF9vdXRwdXRmaWxlPSIkbHRfb3V0cHV0ZmlsZS5leGUiCi0rCQlsdF90b29s X291dHB1dGZpbGU9IiRsdF90b29sX291dHB1dGZpbGUuZXhlIgotKwkJOzsKLSsJICAgIGVzYWN+ Ci0rCSAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJGx0X291dHB1dGZpbGUifgotKwkgICAgaWYgdGVz dCAiJE1BTklGRVNUX1RPT0wiICE9ICI6IiAmJiB0ZXN0IC1mICIkbHRfb3V0cHV0ZmlsZS5tYW5p ZmVzdCI7IHRoZW4KLSsJICAgICAgJE1BTklGRVNUX1RPT0wgLW1hbmlmZXN0ICIkbHRfdG9vbF9v dXRwdXRmaWxlLm1hbmlmZXN0IiAtb3V0cHV0cmVzb3VyY2U6IiRsdF90b29sX291dHB1dGZpbGUi IHx8IGV4aXQgMTsKLSsJICAgICAgJFJNICIkbHRfb3V0cHV0ZmlsZS5tYW5pZmVzdCI7Ci0rCSAg ICBmaScKLSsJICA7OwotKwkqKQotKwkgICMgZysrCi0rCSAgIyBfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMsIENYWCkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCi0rCSAgIyBh cyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsJICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0NYWD0nLUwkbGliZGlyJwotKwkgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19D WFg9JyR7d2x9LS1leHBvcnQtYWxsLXN5bWJvbHMnCi0rCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdf Q1hYPXVuc3VwcG9ydGVkCi0rCSAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWD1ubwotKwkgIGVu YWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYPXllcwotKwotKwkgIGlmICRMRCAt LWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KLSsJICAg IGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtl ciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsJICAgICMgSWYgdGhlIGV4cG9ydC1zeW1i b2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmlsZSAoMXN0IGxpbmUKLSsJICAgICMgaXMgRVhQ T1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0rCSAgICBhcmNoaXZl X2V4cHN5bV9jbWRzX0NYWD0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0g eEVYUE9SVFM7IHRoZW4KLSsJICAgICAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGly LyRzb25hbWUuZGVmOwotKwkgICAgZWxzZQotKwkgICAgICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0 X29iamRpci8kc29uYW1lLmRlZjsKLSsJICAgICAgY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0 cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJICAgIGZpfgotKwkgICAgJENDIC1zaGFyZWQgLW5v c3RkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0 LWltcGxpYiAtWGxpbmtlciAkbGliJwotKwkgIGVsc2UKLSsJICAgIGxkX3NobGlic19DWFg9bm8K LSsJICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkq KQotKwotKwotKyAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCi0rICBoYXJkY29kZV9kaXJl Y3RfQ1hYPW5vCi0rICBoYXJkY29kZV9hdXRvbWF0aWNfQ1hYPXllcwotKyAgaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcl9DWFg9dW5zdXBwb3J0ZWQKLSsgIGlmIHRlc3QgIiRsdF9jdl9sZF9mb3JjZV9s b2FkIiA9ICJ5ZXMiOyB0aGVuCi0rICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nYGZv ciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdf Y29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlICR7d2x9LWZvcmNlX2xvYWQsJGNvbnZcIjsg ZG9uZTsgZnVuY19lY2hvX2FsbCBcIiRuZXdfY29udmVuaWVuY2VcImAnCi0rICBlbHNlCi0rICAg IHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJwotKyAgZmkKLSsgIGxpbmtfYWxsX2RlcGxp YnNfQ1hYPXllcwotKyAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSIkX2x0X2Rhcl9hbGxvd191 bmRlZmluZWQiCi0rICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgaWZvcnQqKSBfbHRfZGFy X2Nhbl9zaGFyZWQ9eWVzIDs7Ci0rICAgICAqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9JEdDQyA7Owot KyAgZXNhYwotKyAgaWYgdGVzdCAiJF9sdF9kYXJfY2FuX3NoYXJlZCIgPSAieWVzIjsgdGhlbgot KyAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1mdW5jX2VjaG9fYWxsCi0rICAgIGFyY2hpdmVf Y21kc19DWFg9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxp YiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJw YXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRp bH0iCi0rICAgIG1vZHVsZV9jbWRzX0NYWD0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1v IFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRf ZHN5bXV0aWx9IgotKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0ic2VkICdzLF4sXywnIDwg XCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4 cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRs aWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9c JHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0 X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICBtb2R1bGVfZXhwc3ltX2NtZHNfQ1hYPSJzZWQg LWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5h bWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAt YnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBv cnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCi0rICAgICAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9j Y19zaW5nbGVfbW9kIiAhPSAieWVzIjsgdGhlbgotKyAgICAgIGFyY2hpdmVfY21kc19DWFg9Ilwk Q0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5v IFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRs aWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9u YW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kc3ltdXRpbH0iCi0rICAgICAg YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMg PiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtciAta2Vl cF9wcml2YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpz flwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9 LW1hc3Rlci5vIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0 aC9cJHNvbmFtZSBcJHZlcnN0cmluZyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRp bH0iCi0rICAgIGZpCi0rCi0rICBlbHNlCi0rICBsZF9zaGxpYnNfQ1hYPW5vCi0rICBmaQotKwot Kwk7OwotKwotKyAgICAgIGRndXgqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsg ICAgICAgICAgZWMrKyopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5 IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGdo Y3gqKQotKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAgICMgRklYTUU6IGlu c2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgbGRfc2hsaWJzX0NYWD1ubwot KwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysr IGxpYnJhcnkgc3VwcG9ydAotKwkgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgOzsKLSsgICAg ICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgZnJlZWJzZFsxMl0qKQotKyAgICAgICAg IyBDKysgc2hhcmVkIGxpYnJhcmllcyByZXBvcnRlZCB0byBiZSBmYWlybHkgYnJva2VuIGJlZm9y ZQotKwkjIHN3aXRjaCB0byBFTEYKLSsgICAgICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAgICAg IDs7Ci0rCi0rICAgICAgZnJlZWJzZC1lbGYqKQotKyAgICAgICAgYXJjaGl2ZV9jbWRzX25lZWRf bGNfQ1hYPW5vCi0rICAgICAgICA7OwotKwotKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikK LSsgICAgICAgICMgRnJlZUJTRCAzIGFuZCBsYXRlciB1c2UgR05VIEMrKyBhbmQgR05VIGxkIHdp dGggc3RhbmRhcmQgRUxGCi0rICAgICAgICAjIGNvbnZlbnRpb25zCi0rICAgICAgICBsZF9zaGxp YnNfQ1hYPXllcwotKyAgICAgICAgOzsKLSsKLSsgICAgICBnbnUqKQotKyAgICAgICAgOzsKLSsK LSsgICAgICBoYWlrdSopCi0rICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg LW8gJGxpYicKLSsgICAgICAgIGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcwotKyAgICAgICAgOzsK LSsKLSsgICAgICBocHV4OSopCi0rICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NY WD0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rICAgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yX0NYWD06Ci0rICAgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1F JwotKyAgICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMKLSsgICAgICAgIGhhcmRjb2RlX21p bnVzX0xfQ1hYPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCQkJCSAgICAgICAgICAg ICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAotKwkJCQkgICAgICAgICAgICAgIyBsb2NhdGlvbiBvZiB0 aGUgbGlicmFyeS4KLSsKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAg IENDKikKLSsgICAgICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKLSsgICAgICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgICAgICAgOzsKLSsg ICAgICAgICAgYUNDKikKLSsgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckUk0gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLWIgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAk b3V0cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25h bWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICAgICAg ICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0 IGxpc3RzCi0rICAgICAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZp bGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rICAgICAgICAgICAgIyBsaW5raW5nIGEgc2hh cmVkIGxpYnJhcnkuCi0rICAgICAgICAgICAgIwotKyAgICAgICAgICAgICMgVGhlcmUgZG9lc24n dCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsgICAg ICAgICAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5l ZWQgdG8gc3RyaXAgdGhlbQotKyAgICAgICAgICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQg dGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsgICAgICAgICAgICAjIGRl cGVuZGVuY2llcy4KLSsgICAgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxp c3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEVHUkVQICJc LUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0 LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAk eiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicKLSsgICAgICAgICAgICA7Owot KyAgICAgICAgICAqKQotKyAgICAgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0r ICAgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZX4kQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHBpY19mbGFnICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9s aWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29i amRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0r ICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAg ICAgICAgICAgZmkKLSsgICAgICAgICAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsK LSsKLSsgICAgICBocHV4MTAqfGhwdXgxMSopCi0rICAgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9s ZCA9IG5vOyB0aGVuCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9K2Ig JHt3bH0kbGliZGlyJwotKwkgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsg ICAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICAgICAgICBocHBhKjY0KnxpYTY0KikK LSsgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICAgKikKLSsJICAgICAgZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScKLSsgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAg IGVzYWMKLSsgICAgICAgIGZpCi0rICAgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgICAg ICBocHBhKjY0KnxpYTY0KikKLSsgICAgICAgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCi0r ICAgICAgICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KLSsgICAgICAgICAgICA7 OwotKyAgICAgICAgICAqKQotKyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCi0r ICAgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD15ZXMKLSsgICAgICAgICAg ICBoYXJkY29kZV9taW51c19MX0NYWD15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAotKwkJ CQkJICAgICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQKLSsJCQkJCSAgICAgICAgICMgbG9jYXRp b24gb2YgdGhlIGxpYnJhcnkuCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgIGVzYWMKLSsKLSsg ICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIENDKikKLSsJICAgICMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgbGRfc2hsaWJzX0NY WD1ubwotKwkgICAgOzsKLSsgICAgICAgICAgYUNDKikKLSsJICAgIGNhc2UgJGhvc3RfY3B1IGlu Ci0rCSAgICAgIGhwcGEqNjQqKQotKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtYiAk e3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgICA7OwotKwkg ICAgICBpYTY0KikKLSsJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIgJHt3bH0raCAk e3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAg ICAgICAgOzsKLSsJICAgICAgKikKLSsJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIg JHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGli ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncycKLSsJICAgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgIyBDb21tYW5kcyB0 byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAg IyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNl ZCB3aGVuCi0rCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICMKLSsJICAg ICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBp bGVyIGZyb20KLSsJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMg c28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCi0rCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0 IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIGRlcGVuZGVu Y2llcy4KLSsJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAk Q0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkR1JFUCAiXC1MImA7IGxpc3Q9IiI7 IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0 PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25l OyBmdW5jX2VjaG9fYWxsICIkbGlzdCInCi0rCSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAg aWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsJICAgICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQg PSBubzsgdGhlbgotKwkgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rCSAgICAgICAgICBocHBh KjY0KikKLSsJICAgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3Rk bGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAg ICAgICAgICA7OwotKwkgICAgICAgICAgaWE2NCopCi0rCSAgICAgICAgICAgIGFyY2hpdmVfY21k c19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcGljX2ZsYWcgJHt3bH0raCAke3dsfSRzb25h bWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgICAg IDs7Ci0rCSAgICAgICAgICAqKQotKwkgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0Mg LXNoYXJlZCAtbm9zdGRsaWIgJHBpY19mbGFnICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2Ig JHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgICAgIDs7 Ci0rCSAgICAgICAgZXNhYwotKwkgICAgICBmaQotKwkgICAgZWxzZQotKwkgICAgICAjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgICAgbGRfc2hsaWJzX0NY WD1ubwotKwkgICAgZmkKLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwot KyAgICAgIGludGVyaXhbMy05XSopCi0rCWhhcmRjb2RlX2RpcmVjdF9DWFg9bm8KLSsJaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7 d2x9LUUnCi0rCSMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBi ZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KLSsJIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFy ZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQotKwkjIGRlZmF1bHQpIGFu ZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMgYSBzbG93IHZlcnkgbWVtb3J5 Ci0rCSMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywg d2UgcGljayBhIHJhbmRvbSwKLSsJIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVu IDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluawotKwkjIHRpbWUuICBNb3ZpbmcgdXAg ZnJvbSAweDEwMDAwMDAwIGFsc28gYWxsb3dzIG1vcmUgc2JyaygyKSBzcGFjZS4KLSsJYXJjaGl2 ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5E T00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsJYXJj aGl2ZV9leHBzeW1fY21kc19DWFg9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRw dXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3lt Ym9scy1maWxlLCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNl LGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1v ICRsaWInCi0rCTs7Ci0rICAgICAgaXJpeDUqIHwgaXJpeDYqKQotKyAgICAgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgIyBTR0kgQysrCi0rCSAgICBhcmNo aXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtYWxsIC1tdWx0aWdvdCAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFt ZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3Zl cnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19s b2NhdGlvbnMgLW8gJGxpYicKLSsKLSsJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2Jq ZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkgICAgIyAiQ0MgLWFyIiwgd2hlcmUg IkNDIiBpcyB0aGUgSVJJWCBDKysgY29tcGlsZXIuICBUaGlzIGlzCi0rCSAgICAjIG5lY2Vzc2Fy eSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKLSsJICAg ICMgaW4gdGhlIGFyY2hpdmUuCi0rCSAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1hciAt V1IsLXUgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAg ICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKwkgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVf bGQiID0gbm87IHRoZW4KLSsJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAk cGljX2ZsYWcgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0 ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAk e3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkgICAgICBlbHNlCi0rCSAgICAgICAgYXJjaGl2 ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hv X2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgLW8gJGxpYicKLSsJICAg ICAgZmkKLSsJICAgIGZpCi0rCSAgICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMKLSsJICAgIDs7 Ci0rICAgICAgICBlc2FjCi0rICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0n JHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcl9DWFg9OgotKyAgICAgICAgaW5oZXJpdF9ycGF0aF9DWFg9eWVzCi0rICAgICAgICA7Owot KwotKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKLSsgICAg ICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIEtDQyopCi0rCSAgICAjIEt1Y2sg YW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCi0rCi0rCSAgICAjIEtDQyB3 aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCi0rCSAg ICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBs aWJyYXJ5Ci0rCSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBs aW5raW5nLgotKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4 dCB8ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05QS1aYS16e31dXCkvXFxcXFwxL2cnXCcnYDsgdGVt cGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0Mg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxp YicKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRf ZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0 ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRD QyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWIgJHt3bH0tcmV0YWluLXN5 bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHM7IG12IFwkdGVtcGxpYiAkbGliJwotKwkgICAgIyBD b21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0 cwotKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFn cyBhcmUgdXNlZCB3aGVuCi0rCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAg ICMKLSsJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0 aGlzIGNvbXBpbGVyIGZyb20KLSsJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmpl Y3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCi0rCSAgICAjIGZyb20gdGhlIG91dHB1 dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSAgICAj IGRlcGVuZGVuY2llcy4KLSsJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1g JENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0 IDI+JjEgfCAkR1JFUCAibGQiYDsgcm0gLWYgbGliY29uZnRlc3Qkc2hhcmVkX2V4dDsgbGlzdD0i IjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxp c3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRv bmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicKLSsKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwotKwkgICAgIyBBcmNoaXZlcyBj b250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAj ICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIgaXMgdGhlIEtBSSBDKysgY29tcGlsZXIuCi0rCSAg ICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMn Ci0rCSAgICA7OwotKwkgIGljcGMqIHwgZWNwYyogKQotKwkgICAgIyBJbnRlbCBDKysKLSsJICAg IHdpdGhfZ251X2xkPXllcwotKwkgICAgIyB2ZXJzaW9uIDguMCBhbmQgYWJvdmUgb2YgaWNwYyBj aG9rZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbHMKLSsJICAgICMgaWYgd2UgYWRkICRwcmVk ZXBfb2JqZWN0cyBhbmQgJHBvc3RkZXBfb2JqZWN0cywgaG93ZXZlciA3LjEgYW5kCi0rCSAgICAj IGVhcmxpZXIgZG8gbm90IGFkZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgotKwkgICAgY2FzZSBg JENDIC1WIDI+JjFgIGluCi0rCSAgICAgICoiVmVyc2lvbiA3LiIqKQotKwkgICAgICAgIGFyY2hp dmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAtbyAkbGliJwotKwkJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3 bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkJOzsKLSsJICAgICAgKikgICMgVmVyc2lvbiA4 LjAgb3IgbmV3ZXIKLSsJICAgICAgICB0bXBfaWR5bj0KLSsJICAgICAgICBjYXNlICRob3N0X2Nw dSBpbgotKwkJICBpYTY0KikgdG1wX2lkeW49JyAtaV9keW5hbWljJzs7Ci0rCQllc2FjCi0rCSAg ICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JwotKwkJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg JHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJ CTs7Ci0rCSAgICBlc2FjCi0rCSAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSsJICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkg ICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwot KwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS0td2hvbGUtYXJjaGl2ZSRj b252ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICAgIDs7Ci0rICAgICAgICAg IHBnQ0MqIHwgcGdjcHAqKQotKyAgICAgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBp bGVyCi0rCSAgICBjYXNlIGAkQ0MgLVZgIGluCi0rCSAgICAqcGdDQ1wgWzEtNV0uKiB8ICpwZ2Nw cFwgWzEtNV0uKikKLSsJICAgICAgcHJlbGlua19jbWRzX0NYWD0ndHBsZGlyPVRlbXBsYXRlLmRp cn4KLSsJCXJtIC1yZiAkdHBsZGlyfgotKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFu dGlhdGlvbl9kaXIgJHRwbGRpciAkb2JqcyAkbGlib2JqcyAkY29tcGlsZV9kZXBsaWJzfgotKwkJ Y29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kIGBmaW5kICR0cGxkaXIgLW5hbWUgXCou byB8IHNvcnQgfCAkTkwyU1BgIicKLSsJICAgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9J3RwbGRp cj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2Jq ZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJG9sZG9ianMkb2xkX2RlcGxpYnN+Ci0r CQkkQVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicyBgZmluZCAkdHBsZGly IC1uYW1lIFwqLm8gfCBzb3J0IHwgJE5MMlNQYH4KLSsJCSRSQU5MSUIgJG9sZGxpYicKLSsJICAg ICAgYXJjaGl2ZV9jbWRzX0NYWD0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KLSsJCXJtIC1yZiAkdHBs ZGlyfgotKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRp ciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVw X29iamVjdHN+Ci0rCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUg LW8gJGxpYicKLSsJICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0 ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWlu c3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmplY3RzfgotKwkJJENDIC1zaGFyZWQgJHBpY19mbGFn ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwq Lm8gfCBzb3J0IHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhw b3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgICAgOzsKLSsJICAgICopICMgVmVyc2lvbiA2IGFu ZCBhYm92ZSB1c2Ugd2VhayBzeW1ib2xzCi0rCSAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAt c2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAk bGliJwotKwkgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19m bGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1i b2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgICAgOzsKLSsJICAg IGVzYWMKLSsKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS0tcnBh dGggJHt3bH0kbGliZGlyJwotKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3 bH0tLWV4cG9ydC1keW5hbWljJwotKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSck e3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0 ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29u dlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8t d2hvbGUtYXJjaGl2ZScKLSsgICAgICAgICAgICA7OwotKwkgIGN4eCopCi0rCSAgICAjIENvbXBh cSBDKysKLSsJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19D WFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxp YiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scycKLSsKLSsJICAg IHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWD0nLXJwYXRoICRsaWJkaXInCi0rCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NY WD06Ci0rCi0rCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3Nl IG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmpl Y3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNoYXJl ZCBsaWJyYXJ5LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBh IHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5IGxp bmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJICAg ICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhl IGxpYnJhcnkKLSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlu a19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQg Mj4mMSB8ICRHUkVQICJsZCJgOyB0ZW1wbGlzdD1gZnVuY19lY2hvX2FsbCAiJHRlbXBsaXN0IiB8 ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBp biAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3Qg JHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZnVuY19l Y2hvX2FsbCAiWCRsaXN0IiB8ICRYc2VkJwotKwkgICAgOzsKLSsJICB4bCogfCBtcGl4bCogfCBi Z3hsKikKLSsJICAgICMgSUJNIFhMIDguMCBvbiBQUEMsIHdpdGggR05VIGxkCi0rCSAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkg ICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwot KwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1xbWtzaHJvYmogJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICBp ZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCi0rCSAgICAg IGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUudmVyfgotKwkJY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4q XCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkJZWNobyAibG9jYWw6 ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCQkkQ0MgLXFta3Nocm9i aiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIg LW8gJGxpYicKLSsJICAgIGZpCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBjYXNlIGAkQ0MgLVYg Mj4mMSB8IHNlZCA1cWAgaW4KLSsJICAgICpTdW5cIEMqKQotKwkgICAgICAjIFN1biBDKysgNS45 Ci0rCSAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nIC16ZGVmcycKLSsJICAgICAgYXJjaGl2 ZV9jbWRzX0NYWD0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRs aWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzJwotKwkgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1HJHth bGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJl dGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMnCi0rCSAgICAgIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctUiRsaWJkaXInCi0rCSAgICAgIHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9y IGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2Nv bnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxs IFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICAgICAg Y29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWD15ZXMKLSsKLSsJICAgICAgIyBOb3Qgc3VyZSB3aGV0 aGVyIHNvbWV0aGluZyBiYXNlZCBvbgotKwkgICAgICAjICRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0 LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxCi0rCSAgICAgICMgd291bGQg YmUgYmV0dGVyLgotKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZnVuY19lY2hvX2Fs bCcKLSsKLSsJICAgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVz dCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRo ZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcwotKwkgICAgICAjIG5lY2Vzc2FyeSB0byBtYWtl IHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKLSsJICAgICAgIyBpbiB0 aGUgYXJjaGl2ZS4KLSsJICAgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAteGFyIC1vICRv bGRsaWIgJG9sZG9ianMnCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwllc2Fj Ci0rCTs7Ci0rCi0rICAgICAgbHlueG9zKikKLSsgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwlsZF9zaGxpYnNfQ1hYPW5vCi0rCTs7Ci0rCi0rICAg ICAgbTg4ayopCi0rICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKLSsgICAgICAgIGxkX3NobGlic19DWFg9bm8KLSsJOzsKLSsKLSsgICAgICBtdnMqKQot KyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgY3h4KikKLSsJICAgICMg RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgbGRfc2hsaWJz X0NYWD1ubwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICA7OwotKwll c2FjCi0rCTs7Ci0rCi0rICAgICAgbmV0YnNkKikKLSsgICAgICAgIGlmIGVjaG8gX19FTEZfXyB8 ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCi0rCSAgYXJjaGl2ZV9j bWRzX0NYWD0nJExEIC1Cc2hhcmVhYmxlICAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRsaW5rZXJfZmxhZ3MnCi0rCSAgd2xhcmM9Ci0r CSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1SJGxpYmRpcicKLSsJICBoYXJkY29k ZV9kaXJlY3RfQ1hYPXllcwotKwkgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCi0rCWZp Ci0rCSMgV29ya2Fyb3VuZCBzb21lIGJyb2tlbiBwcmUtMS41IHRvb2xjaGFpbnMKLSsJb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4 dCAyPiYxIHwgJEdSRVAgY29uZnRlc3QuJG9iamV4dCB8ICRTRUQgLWUgInM6LWxnY2MgLWxjIC1s Z2NjOjoiJwotKwk7OwotKwotKyAgICAgICpudG8qIHwgKnFueCopCi0rICAgICAgICBsZF9zaGxp YnNfQ1hYPXllcwotKwk7OwotKwotKyAgICAgIG9wZW5ic2QyKikKLSsgICAgICAgICMgQysrIHNo YXJlZCBsaWJyYXJpZXMgYXJlIGZhaXJseSBicm9rZW4KLSsJbGRfc2hsaWJzX0NYWD1ubwotKwk7 OwotKwotKyAgICAgIG9wZW5ic2QqKQotKwlpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsg dGhlbgotKwkgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCi0rCSAgaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcl9DWFg9bm8KLSsJICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYPXllcwotKwkgIGFy Y2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicK LSsJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRpcicK LSsJICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19g IiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRo ZW4KLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1vICRs aWInCi0rCSAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1FJwotKwkgICAg d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252 ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwotKwkgIGZpCi0rCSAgb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWQ9ZnVuY19lY2hvX2FsbAotKwllbHNlCi0rCSAgbGRfc2hsaWJzX0NY WD1ubwotKwlmaQotKwk7OwotKwotKyAgICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAg ICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIEtDQyopCi0rCSAgICAjIEt1Y2sg YW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCi0rCi0rCSAgICAjIEtDQyB3 aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCi0rCSAg ICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBs aWJyYXJ5Ci0rCSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBs aW5raW5nLgotKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4 dCB8ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05QS1aYS16e31dXCkvXFxcXFwxL2cnXCcnYDsgdGVt cGxpYj1gZWNobyAiJGxpYiIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRD QyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAk bGliJwotKwotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRo LCRsaWJkaXInCi0rCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Ci0rCi0rCSAg ICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQg dXNpbmcKLSsJICAgICMgdGhlIEtBSSBDKysgY29tcGlsZXIuCi0rCSAgICBjYXNlICRob3N0IGlu Ci0rCSAgICAgIG9zZjMqKSBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRv bGRsaWIgJG9sZG9ianMnIDs7Ci0rCSAgICAgICopIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0Mg LW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rICAgICAgICAg IFJDQyopCi0rCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQotKwkgICAgIyBGSVhNRTogaW5zZXJ0 IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAg ICA7OwotKyAgICAgICAgICBjeHgqKQotKwkgICAgY2FzZSAkaG9zdCBpbgotKwkgICAgICBvc2Yz KikKLSsJICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS1leHBlY3RfdW5y ZXNvbHZlZCAke3dsfVwqJwotKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVk JHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkc29uYW1lIGB0 ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAk dmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9u cyAtbyAkbGliJwotKwkgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3ds fS1ycGF0aCAke3dsfSRsaWJkaXInCi0rCQk7OwotKwkgICAgICAqKQotKwkgICAgICAgIGFsbG93 X3VuZGVmaW5lZF9mbGFnX0NYWD0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJICAgICAgICBh cmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNf ZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291 dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkgICAgICAgIGFyY2hpdmVfZXhw c3ltX2NtZHNfQ1hYPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAi JXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmV+Ci0rCSAg ICAgICAgICBlY2hvICItaGlkZGVuIj4+ICRsaWIuZXhwfgotKwkgICAgICAgICAgJENDIC1zaGFy ZWQkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSAk e3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8g Ii1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifgotKwkgICAgICAgICAgJFJNICRsaWIuZXhwJwotKwkg ICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctcnBhdGggJGxpYmRpcicKLSsJ CTs7Ci0rCSAgICBlc2FjCi0rCi0rCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06 Ci0rCi0rCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91 dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3Qg ZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNoYXJlZCBs aWJyYXJ5LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdh eSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5IGxpbmtp bmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJICAgICMg ZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxp YnJhcnkKLSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19j bWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4m MSB8ICRHUkVQICJsZCIgfCAkR1JFUCAtdiAibGQ6ImA7IHRlbXBsaXN0PWBmdW5jX2VjaG9fYWxs ICIkdGVtcGxpc3QiIHwgJFNFRCAicy9cKF4uKmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlz dD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQp IGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7 IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGlm IHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwkg ICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAk e3dsfVwqJwotKwkgICAgICBjYXNlICRob3N0IGluCi0rCSAgICAgICAgb3NmMyopCi0rCSAgICAg ICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHthbGxvd191bmRl ZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZl cnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29f bG9jYXRpb25zIC1vICRsaWInCi0rCQkgIDs7Ci0rCSAgICAgICAgKikKLSsJICAgICAgICAgIGFy Y2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbm9zdGRsaWIgJHthbGxvd191 bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3Zl cnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJCSAgOzsKLSsJICAgICAgZXNhYwot KwotKwkgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3 bH0kbGliZGlyJwotKwkgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Ci0rCi0r CSAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0 IHRoYXQgbGlzdHMKLSsJICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZp bGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAgICMgbGlua2luZyBhIHNoYXJlZCBs aWJyYXJ5LgotKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENG TEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAtdiAiXkNvbmZpZ3VyZWQgd2l0 aDoiIHwgJEdSRVAgIlwtTCInCi0rCi0rCSAgICBlbHNlCi0rCSAgICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0r CSAgICBmaQotKwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAg cHNvcyopCi0rICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKLSsgICAgICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAgICAgIDs7Ci0rCi0rICAgICAgc3Vu b3M0KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIENDKikKLSsJ ICAgICMgU3VuIEMrKyA0LngKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAotKwkgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgOzsKLSsgICAgICAgICAg bGNjKikKLSsJICAgICMgTHVjaWQKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxp YnJhcnkgc3VwcG9ydAotKwkgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgOzsKLSsgICAgICAg ICAgKikKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAot KwkgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAg IDs7Ci0rCi0rICAgICAgc29sYXJpcyopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgot KyAgICAgICAgICBDQyogfCBzdW5DQyopCi0rCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENl bnRlcmxpbmUgQysrCi0rICAgICAgICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPXllcwot KwkgICAgbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScgLXpkZWZzJwotKwkgICAgYXJjaGl2ZV9jbWRz X0NYWD0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gIC1oJHNvbmFtZSAtbyAkbGliICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncycKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoi ID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8i ID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0rCSAgICAgICRD QyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAtaCRzb25h bWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKwotKwkgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19DWFg9Jy1SJGxpYmRpcicKLSsJICAgIGhhcmRjb2RlX3NobGlicGF0aF92 YXJfQ1hYPW5vCi0rCSAgICBjYXNlICRob3N0X29zIGluCi0rCSAgICAgIHNvbGFyaXMyLlswLTVd IHwgc29sYXJpczIuWzAtNV0uKikgOzsKLSsJICAgICAgKikKLSsJCSMgVGhlIGNvbXBpbGVyIGRy aXZlciB3aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCi0rCQkjIGJ1dCB1 bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLgotKwkgICAgICAgICMgU3VwcG9ydGVkIHNpbmNl IFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8pCi0rCQl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19D WFg9Jy16IGFsbGV4dHJhY3QkY29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3QnCi0rCSAgICAg ICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcwotKwotKwkg ICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2Z1bmNfZWNob19hbGwnCi0rCi0rCSAgICAjIEFy Y2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcK LSsJICAgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAg VGhpcyBpcwotKwkgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1w bGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSAgICAjIGluIHRoZSBhcmNoaXZlLgotKwkgICAgb2xkX2Fy Y2hpdmVfY21kc19DWFg9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7Owot KyAgICAgICAgICBnY3gqKQotKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAg IGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25h bWUgLW8gJGxpYicKLSsKLSsJICAgICMgVGhlIEMrKyBjb21waWxlciBtdXN0IGJlIHVzZWQgdG8g Y3JlYXRlIHRoZSBhcmNoaXZlLgotKwkgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAkTERG TEFHUyAtYXJjaGl2ZSAtbyAkb2xkbGliICRvbGRvYmpzJwotKwkgICAgOzsKLSsgICAgICAgICAg KikKLSsJICAgICMgR05VIEMrKyBjb21waWxlciB3aXRoIFNvbGFyaXMgbGlua2VyCi0rCSAgICBp ZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJ ICAgICAgbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0teiAke3dsfWRlZnMnCi0rCSAgICAg IGlmICRDQyAtLXZlcnNpb24gfCAkR1JFUCAtdiAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVuCi0r CSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxp YiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICAg ICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5j YXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJCSAgJENDIC1zaGFyZWQgJHBpY19m bGFnIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAk bGliLmV4cCcKLSsKLSsJICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVj ZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxp YnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAgICAg IyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlu a19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdS RVAgLXYgIl5Db25maWd1cmVkIHdpdGg6IiB8ICRHUkVQICJcLUwiJwotKwkgICAgICBlbHNlCi0r CSAgICAgICAgIyBnKysgMi43IGFwcGVhcnMgdG8gcmVxdWlyZSBgLUcnIE5PVCBgLXNoYXJlZCcg b24gdGhpcwotKwkgICAgICAgICMgcGxhdGZvcm0uCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NY WD0nJENDIC1HIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1l IC1vICRsaWInCi0rCSAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2VjaG8gInsgZ2xv YmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkv XDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJCSAg JENDIC1HIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRS TSAkbGliLmV4cCcKLSsKLSsJICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJv ZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAgICAgIyB3aGF0ICJoaWRkZW4i IGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAg ICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAgICAgb3V0cHV0X3ZlcmJvc2Vf bGlua19jbWQ9JyRDQyAtRyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQ IC12ICJeQ29uZmlndXJlZCB3aXRoOiIgfCAkR1JFUCAiXC1MIicKLSsJICAgICAgZmkKLSsKLSsJ ICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIgJHdsJGxpYmRpcicK LSsJICAgICAgY2FzZSAkaG9zdF9vcyBpbgotKwkJc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5b MC01XS4qKSA7OwotKwkJKikKLSsJCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3ds fS16ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJh Y3QnCi0rCQkgIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgICA7OwotKyAgICAgICAg ZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwg c3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRd KikKLSsgICAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyR7d2x9LXosdGV4dCcKLSsgICAgICBh cmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFy X0NYWD1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBjYXNl ICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgQ0MqKQotKwkgIGFyY2hpdmVfY21kc19DWFg9JyRD QyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0 OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBhcmNoaXZlX2NtZHNfQ1hYPSck Q0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICR7 d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKyAgICAgIGVzYWMKLSsgICAg ICA7OwotKwotKyAgICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCi0rCSMgTm90ZTog V2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8g bm90Ci0rCSMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMg dXNlZCBmcm9tIGxpYmMgdG8KLSsJIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMg anVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCi0rCSMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElm IHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsJIyB0aG91Z2gsIHdoaWNo IGRvZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCi0r CSMgYXMgLXogZGVmcy4KLSsJbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScke3dsfS16LHRleHQnCi0r CWFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nJHt3bH0teixub2RlZnMnCi0rCWFyY2hpdmVfY21k c19uZWVkX2xjX0NYWD1ubwotKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKwloYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tUiwkbGliZGlyJwotKwloYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yX0NYWD0nOicKLSsJbGlua19hbGxfZGVwbGlic19DWFg9eWVzCi0rCWV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUJleHBvcnQnCi0rCXJ1bnBhdGhfdmFy PSdMRF9SVU5fUEFUSCcKLSsKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0Mq KQotKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgIGFyY2hpdmVfZXhwc3lt X2NtZHNfQ1hYPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAg b2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAtVHByZWxpbmtfb2JqZWN0cyAkb2xkb2Jqc34KLSsJ ICAgICAgJyIkb2xkX2FyY2hpdmVfY21kc19DWFgiCi0rCSAgICByZWxvYWRfY21kc19DWFg9JyRD QyAtVHByZWxpbmtfb2JqZWN0cyAkcmVsb2FkX29ianN+Ci0rCSAgICAgICciJHJlbG9hZF9jbWRz X0NYWCIKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hh cmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3dsfS1C ZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICA7OwotKwllc2FjCi0rICAgICAgOzsKLSsK LSsgICAgICB0YW5kZW0qKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAg ICAgTkNDKikKLSsJICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkgICAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0r CSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0Ci0rCSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICA7OwotKyAgICAg ICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICB2eHdvcmtzKikKLSsgICAgICAgICMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgbGRfc2hsaWJz X0NYWD1ubwotKyAgICAgICAgOzsKLSsKLSsgICAgICAqKQotKyAgICAgICAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5v Ci0rICAgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbGRfc2hsaWJzX0NYWCIgPiY1Ci0rJGFzX2VjaG8g IiRsZF9zaGxpYnNfQ1hYIiA+JjY7IH0KLSsgICAgdGVzdCAiJGxkX3NobGlic19DWFgiID0gbm8g JiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotKyAgICBHQ0NfQ1hYPSIkR1hYIgotKyAgICBMRF9D WFg9IiRMRCIKLSsKLSsgICAgIyMgQ0FWRUFUIEVNUFRPUjoKLSsgICAgIyMgVGhlcmUgaXMgbm8g ZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UK LSsgICAgIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQg dW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKLSsgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCi0r ICAgICMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdCBi ZWluZyBsaW5rZWQ6Ci0rcHJlZGVwX29iamVjdHNfQ1hYPQotK3Bvc3RkZXBfb2JqZWN0c19DWFg9 Ci0rcHJlZGVwc19DWFg9Ci0rcG9zdGRlcHNfQ1hYPQotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aF9DWFg9Ci0rCi0rY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLStjbGFzcyBGb28K LSt7Ci0rcHVibGljOgotKyAgRm9vICh2b2lkKSB7IGEgPSAwOyB9Ci0rcHJpdmF0ZToKLSsgIGlu dCBhOwotK307Ci0rX0xUX0VPRgotKwotKwotK19sdF9saWJkZXBzX3NhdmVfQ0ZMQUdTPSRDRkxB R1MKLStjYXNlICIkQ0MgJENGTEFHUyAiIGluICMoCi0rKlwgLWZsdG8qXCAqKSBDRkxBR1M9IiRD RkxBR1MgLWZuby1sdG8iIDs7Ci0rKlwgLWZ3aG9wcipcICopIENGTEFHUz0iJENGTEFHUyAtZm5v LXdob3ByIiA7OwotK2VzYWMKLSsKLStpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2Fz X2xpbmVuby0kTElORU5PfTogXCIkYWNfY29tcGlsZVwiIjsgfSA+JjUKLSsgIChldmFsICRhY19j b21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVz ID0gMDsgfTsgdGhlbgotKyAgIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0 IHRoZSBuZWNlc3NhcnkKLSsgICMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdz LgotKwotKyAgIyBTZW50aW5lbCB1c2VkIHRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBvciBub3Qg d2UgYXJlIGJlZm9yZQotKyAgIyB0aGUgY29uZnRlc3Qgb2JqZWN0IGZpbGUuCi0rICBwcmVfdGVz dF9vYmplY3RfZGVwc19kb25lPW5vCi0rCi0rICBmb3IgcCBpbiBgZXZhbCAiJG91dHB1dF92ZXJi b3NlX2xpbmtfY21kImA7IGRvCi0rICAgIGNhc2UgJHtwcmV2fSR7cH0gaW4KLSsKLSsgICAgLUwq IHwgLVIqIHwgLWwqKQotKyAgICAgICAjIFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdl ZW4gIi17TCxSfSIgYW5kIHRoZSBwYXRoLgotKyAgICAgICAjIFJlbW92ZSB0aGUgc3BhY2UuCi0r ICAgICAgIGlmIHRlc3QgJHAgPSAiLUwiIHx8Ci0rICAgICAgICAgIHRlc3QgJHAgPSAiLVIiOyB0 aGVuCi0rCSBwcmV2PSRwCi0rCSBjb250aW51ZQotKyAgICAgICBmaQotKwotKyAgICAgICAjIEV4 cGFuZCB0aGUgc3lzcm9vdCB0byBlYXNlIGV4dHJhY3RpbmcgdGhlIGRpcmVjdG9yaWVzIGxhdGVy LgotKyAgICAgICBpZiB0ZXN0IC16ICIkcHJldiI7IHRoZW4KLSsgICAgICAgICBjYXNlICRwIGlu Ci0rICAgICAgICAgLUwqKSBmdW5jX3N0cmlwbmFtZV9jbmYgJy1MJyAnJyAiJHAiOyBwcmV2PS1M OyBwPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQgOzsKLSsgICAgICAgICAtUiopIGZ1bmNfc3RyaXBu YW1lX2NuZiAnLVInICcnICIkcCI7IHByZXY9LVI7IHA9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7 OwotKyAgICAgICAgIC1sKikgZnVuY19zdHJpcG5hbWVfY25mICctbCcgJycgIiRwIjsgcHJldj0t bDsgcD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7Ci0rICAgICAgICAgZXNhYwotKyAgICAgICBm aQotKyAgICAgICBjYXNlICRwIGluCi0rICAgICAgID0qKSBmdW5jX3N0cmlwbmFtZV9jbmYgJz0n ICcnICIkcCI7IHA9JGx0X3N5c3Jvb3QkZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7Ci0rICAgICAg IGVzYWMKLSsgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87 IHRoZW4KLSsJIGNhc2UgJHtwcmV2fSBpbgotKwkgLUwgfCAtUikKLSsJICAgIyBJbnRlcm5hbCBj b21waWxlciBsaWJyYXJ5IHBhdGhzIHNob3VsZCBjb21lIGFmdGVyIHRob3NlCi0rCSAgICMgcHJv dmlkZWQgdGhlIHVzZXIuICBUaGUgcG9zdGRlcHMgYWxyZWFkeSBjb21lIGFmdGVyIHRoZQotKwkg ICAjIHVzZXIgc3VwcGxpZWQgbGlicyBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nlc3MgdGhl bS4KLSsJICAgaWYgdGVzdCAteiAiJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFgiOyB0aGVu Ci0rCSAgICAgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWD0iJHtwcmV2fSR7cH0iCi0rCSAg IGVsc2UKLSsJICAgICBjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYPSIke2NvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aF9DWFh9ICR7cHJldn0ke3B9IgotKwkgICBmaQotKwkgICA7OwotKwkgIyBU aGUgIi1sIiBjYXNlIHdvdWxkIG5ldmVyIGNvbWUgYmVmb3JlIHRoZSBvYmplY3QgYmVpbmcKLSsJ ICMgbGlua2VkLCBzbyBkb24ndCBib3RoZXIgaGFuZGxpbmcgdGhpcyBjYXNlLgotKwkgZXNhYwot KyAgICAgICBlbHNlCi0rCSBpZiB0ZXN0IC16ICIkcG9zdGRlcHNfQ1hYIjsgdGhlbgotKwkgICBw b3N0ZGVwc19DWFg9IiR7cHJldn0ke3B9IgotKwkgZWxzZQotKwkgICBwb3N0ZGVwc19DWFg9IiR7 cG9zdGRlcHNfQ1hYfSAke3ByZXZ9JHtwfSIKLSsJIGZpCi0rICAgICAgIGZpCi0rICAgICAgIHBy ZXY9Ci0rICAgICAgIDs7Ci0rCi0rICAgICoubHRvLiRvYmpleHQpIDs7ICMgSWdub3JlIEdDQyBM VE8gb2JqZWN0cwotKyAgICAqLiRvYmpleHQpCi0rICAgICAgICMgVGhpcyBhc3N1bWVzIHRoYXQg dGhlIHRlc3Qgb2JqZWN0IGZpbGUgb25seSBzaG93cyB1cAotKyAgICAgICAjIG9uY2UgaW4gdGhl IGNvbXBpbGVyIG91dHB1dC4KLSsgICAgICAgaWYgdGVzdCAiJHAiID0gImNvbmZ0ZXN0LiRvYmpl eHQiOyB0aGVuCi0rCSBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPXllcwotKwkgY29udGludWUK LSsgICAgICAgZmkKLSsKLSsgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2Rv bmUiID0gbm87IHRoZW4KLSsJIGlmIHRlc3QgLXogIiRwcmVkZXBfb2JqZWN0c19DWFgiOyB0aGVu Ci0rCSAgIHByZWRlcF9vYmplY3RzX0NYWD0iJHAiCi0rCSBlbHNlCi0rCSAgIHByZWRlcF9vYmpl Y3RzX0NYWD0iJHByZWRlcF9vYmplY3RzX0NYWCAkcCIKLSsJIGZpCi0rICAgICAgIGVsc2UKLSsJ IGlmIHRlc3QgLXogIiRwb3N0ZGVwX29iamVjdHNfQ1hYIjsgdGhlbgotKwkgICBwb3N0ZGVwX29i amVjdHNfQ1hYPSIkcCIKLSsJIGVsc2UKLSsJICAgcG9zdGRlcF9vYmplY3RzX0NYWD0iJHBvc3Rk ZXBfb2JqZWN0c19DWFggJHAiCi0rCSBmaQotKyAgICAgICBmaQotKyAgICAgICA7OwotKwotKyAg ICAqKSA7OyAjIElnbm9yZSB0aGUgcmVzdC4KLSsKLSsgICAgZXNhYwotKyAgZG9uZQotKwotKyAg IyBDbGVhbiB1cC4KLSsgIHJtIC1mIGEub3V0IGEuZXhlCi0rZWxzZQotKyAgZWNobyAibGlidG9v bC5tNDogZXJyb3I6IHByb2JsZW0gY29tcGlsaW5nIENYWCB0ZXN0IHByb2dyYW0iCi0rZmkKLSsK LSskUk0gLWYgY29uZmVzdC4kb2JqZXh0Ci0rQ0ZMQUdTPSRfbHRfbGliZGVwc19zYXZlX0NGTEFH UwotKwotKyMgUE9SVE1FOiBvdmVycmlkZSBhYm92ZSB0ZXN0IG9uIHN5c3RlbXMgd2hlcmUgaXQg aXMgYnJva2VuCi0rY2FzZSAkaG9zdF9vcyBpbgotK2ludGVyaXhbMy05XSopCi0rICAjIEludGVy aXggMy41IGluc3RhbGxzIGNvbXBsZXRlbHkgaG9zZWQgLmxhIGZpbGVzIGZvciBDKyssIHNvIHJh dGhlciB0aGFuCi0rICAjIGhhY2sgYWxsIGFyb3VuZCBpdCwgbGV0J3MganVzdCB0cnVzdCAiZysr IiB0byBEVFJULgotKyAgcHJlZGVwX29iamVjdHNfQ1hYPQotKyAgcG9zdGRlcF9vYmplY3RzX0NY WD0KLSsgIHBvc3RkZXBzX0NYWD0KLSsgIDs7Ci0rCi0rbGludXgqKQotKyAgY2FzZSBgJENDIC1W IDI+JjEgfCBzZWQgNXFgIGluCi0rICAqU3VuXCBDKikKLSsgICAgIyBTdW4gQysrIDUuOQotKwot KyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMK LSsgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5 aW5nCi0rICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKLSsg ICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIgJENYWCAk Q1hYRkxBR1MgIiBpbgotKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAgICBzb2xh cmlzX3VzZV9zdGxwb3J0ND15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIHRl c3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgcG9zdGRlcHNf Q1hYPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNydW4nCi0rICAgIGZpCi0rICAgIDs7Ci0rICBl c2FjCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgIEND KiB8IHN1bkNDKikKLSsgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0 NCBsaWJyYXJ5IGlzCi0rICAgICMgaW5jb21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4g QXZvaWQgc3BlY2lmeWluZwotKyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBs aWJDcnVuIGFzCi0rICAgICMgLWxpYnJhcnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KLSsgICAg Y2FzZSAiICRDWFggJENYWEZMQUdTICIgaW4KLSsgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiop Ci0rICAgICAgc29sYXJpc191c2Vfc3RscG9ydDQ9eWVzCi0rICAgICAgOzsKLSsgICAgZXNhYwot KwotKyAgICAjIEFkZGluZyB0aGlzIHJlcXVpcmVzIGEga25vd24tZ29vZCBzZXR1cCBvZiBzaGFy ZWQgbGlicmFyaWVzIGZvcgotKyAgICAjIFN1biBjb21waWxlciB2ZXJzaW9ucyBiZWZvcmUgNS42 LCBlbHNlIFBJQyBvYmplY3RzIGZyb20gYW4gb2xkCi0rICAgICMgYXJjaGl2ZSB3aWxsIGJlIGxp bmtlZCBpbnRvIHRoZSBvdXRwdXQsIGxlYWRpbmcgdG8gc3VidGxlIGJ1Z3MuCi0rICAgIGlmIHRl c3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgcG9zdGRlcHNf Q1hYPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNydW4nCi0rICAgIGZpCi0rICAgIDs7Ci0rICBl c2FjCi0rICA7OwotK2VzYWMKLSsKLSsKLStjYXNlICIgJHBvc3RkZXBzX0NYWCAiIGluCi0rKiIg LWxjICIqKSBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8gOzsKLStlc2FjCi0rIGNvbXBpbGVy X2xpYl9zZWFyY2hfZGlyc19DWFg9Ci0raWYgdGVzdCAtbiAiJHtjb21waWxlcl9saWJfc2VhcmNo X3BhdGhfQ1hYfSI7IHRoZW4KLSsgY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD1gZWNobyAi ICR7Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWH0iIHwgJHtTRUR9IC1lICdzISAtTCEgIWcn IC1lICdzIV4gISEnYAotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r ICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPQotK2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0K LStsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Ci0rCi0rCi0rICAjIEMrKyBzcGVjaWZpYyBj YXNlcyBmb3IgcGljLCBzdGF0aWMsIHdsLCBldGMuCi0rICBpZiB0ZXN0ICIkR1hYIiA9IHllczsg dGhlbgotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWNfQ1hYPSctc3RhdGljJwotKwotKyAgICBjYXNlICRob3N0X29zIGluCi0r ICAgIGFpeCopCi0rICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElDLgotKyAgICAgIGlmIHRlc3Qg IiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJv Y2Vzc29yCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rICAgICAg ZmkKLSsgICAgICA7OwotKwotKyAgICBhbWlnYW9zKikKLSsgICAgICBjYXNlICRob3N0X2NwdSBp bgotKyAgICAgIHBvd2VycGMpCi0rICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWln YU9TNCAuc28gc3VwcG9ydAotKyAgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0n LWZQSUMnCi0rICAgICAgICA7OwotKyAgICAgIG02OGspCi0rICAgICAgICAgICAgIyBGSVhNRTog d2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1 dAotKyAgICAgICAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVu dHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAotKyAgICAgICAgICAgICMgbGlrZSBgLW02ODA0 MCcuCi0rICAgICAgICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctbTY4MDIwIC1yZXNp ZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCi0rICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsg ICAgICA7OwotKwotKyAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBv c2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRo ZXNlIE9TZXMuCi0rICAgICAgOzsKLSsgICAgbWluZ3cqIHwgY3lnd2luKiB8IG9zMiogfCBwdzMy KiB8IGNlZ2NjKikKLSsgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmls ZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCi0rICAgICAgIyBidWlsdCBmb3IgaW5jbHVz aW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KLSsg ICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQg dGhpcyBmb3Igb2xkLXN0eWxlCi0rICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJy YXJpZXMKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1ERExMX0VYUE9SVCcKLSsg ICAgICA7OwotKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgICAgICMgUElDIGlzIHRoZSBk ZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KLSsgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxv d2VkIGluIE1IX0RZTElCIGZpbGVzCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSct Zm5vLWNvbW1vbicKLSsgICAgICA7OwotKyAgICAqZGpncHAqKQotKyAgICAgICMgREpHUFAgZG9l cyBub3Qgc3VwcG9ydCBzaGFyZWQgbGlicmFyaWVzIGF0IGFsbAotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWD0KLSsgICAgICA7OwotKyAgICBoYWlrdSopCi0rICAgICAgIyBQSUMgaXMg dGhlIGRlZmF1bHQgZm9yIEhhaWt1LgotKyAgICAgICMgVGhlICItc3RhdGljIiBmbGFnIGV4aXN0 cywgYnV0IGlzIGJyb2tlbi4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Ci0r ICAgICAgOzsKLSsgICAgaW50ZXJpeFszLTldKikKLSsgICAgICAjIEludGVyaXggMy54IGdjYyAt ZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgotKyAgICAgICMgSW5zdGVh ZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgotKyAgICAgIDs7Ci0r ICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCi0rCWx0X3By b2dfY29tcGlsZXJfcGljX0NYWD0tS2NvbmZvcm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7Owot KyAgICBocHV4KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQ LVVYLCBidXQgbm90IGZvciAzMi1iaXQKLSsgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1V WCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKLSsgICAgICAjIHNldHMgdGhl IGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgotKyAgICAgIGNhc2UgJGhv c3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCopCi0rCTs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYPSctZlBJQycKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsg ICAgKnFueCogfCAqbnRvKikKLSsgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRv IGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQotKyAgICAgICMgaXQgd2lsbCBj b3JlZHVtcC4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDIC1zaGFyZWQn Ci0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1m UElDJwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgY2FzZSAkaG9zdF9vcyBp bgotKyAgICAgIGFpeFs0LTldKikKLSsJIyBBbGwgQUlYIGNvZGUgaXMgUElDLgotKwlpZiB0ZXN0 ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgICMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQg cHJvY2Vzc29yCi0rCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKLSsJ ZWxzZQotKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLWJuc28gLWJJOi9saWIvc3lz Y2FsbHMuZXhwJwotKwlmaQotKwk7OwotKyAgICAgIGNob3J1cyopCi0rCWNhc2UgJGNjX2Jhc2Vu YW1lIGluCi0rCWN4Y2g2OCopCi0rCSAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAj IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsIENYWCk9Ii0tbm9fYXV0b19pbnN0 YW50aWF0aW9uIC11IF9fbWFpbiAtdSBfX3ByZW1haW4gLXUgX2Fib3J0IC1yICRDT09MX0RJUi9s aWIvbGliT3JiLmEgJE1WTUVfRElSL2xpYi9DQy9saWJDLmEgJE1WTUVfRElSL2xpYi9jbGFzc2l4 L2xpYmN4LnMuYSIKLSsJICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbWluZ3cqIHwgY3lnd2lu KiB8IG9zMiogfCBwdzMyKiB8IGNlZ2NjKikKLSsJIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUg c291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwotKwkjIGJ1aWx0IGZvciBp bmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUp LgotKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1ERExMX0VYUE9SVCcKLSsJOzsKLSsgICAg ICBkZ3V4KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBlYysrKikKLSsJICAgIGx0X3By b2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCi0rCSAgICA7OwotKwkgIGdoY3gqKQotKwkgICAg IyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0nLXBpYycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAg ICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rCSMgRnJlZUJTRCB1c2VzIEdOVSBDKysKLSsJOzsK LSsgICAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUg aW4KLSsJICBDQyopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAg IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCi0rCSAg ICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KLSsJICAgICAgbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYPScrWicKLSsJICAgIGZpCi0rCSAgICA7OwotKwkgIGFDQyopCi0rCSAgICBs dF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljX0NYWD0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCi0rCSAgICBjYXNlICRob3N0X2NwdSBpbgot KwkgICAgaHBwYSo2NCp8aWE2NCopCi0rCSAgICAgICMgK1ogdGhlIGRlZmF1bHQKLSsJICAgICAg OzsKLSsJICAgICopCi0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nK1onCi0rCSAg ICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0r CTs7Ci0rICAgICAgaW50ZXJpeCopCi0rCSMgVGhpcyBpcyBjODksIHdoaWNoIGlzIE1TIFZpc3Vh bCBDKysgKG5vIHNoYXJlZCBsaWJzKQotKwkjIEFueW9uZSB3YW50cyB0byBkbyBhIHBvcnQ/Ci0r CTs7Ci0rICAgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsJY2FzZSAkY2NfYmFz ZW5hbWUgaW4KLSsJICBDQyopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcK LSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQnCi0rCSAgICAj IENDIHBpYyBmbGFnIC1LUElDIGlzIHRoZSBkZWZhdWx0LgotKwkgICAgOzsKLSsJICAqKQotKwkg ICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNv bGFyaXMqLWdudSkKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBLQ0MqKQotKwkgICAgIyBL QUkgQysrIENvbXBpbGVyCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLS1iYWNrZW5k IC1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJwotKwkgICAgOzsK LSsJICBlY3BjKiApCi0rCSAgICAjIG9sZCBJbnRlbCBDKysgZm9yIHg4Nl82NCB3aGljaCBzdGls bCBzdXBwb3J0ZWQgLUtQSUMuCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcK LSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCi0rCSAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpY19DWFg9Jy1zdGF0aWMnCi0rCSAgICA7OwotKwkgIGljcGMqICkKLSsJICAg ICMgSW50ZWwgQysrLCB1c2VkIHRvIGJlIGluY29tcGF0aWJsZSB3aXRoIEdDQy4KLSsJICAgICMg SUNDIDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgotKwkgICAgbHRfcHJvZ19jb21w aWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElD JwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctc3RhdGljJwotKwkgICAgOzsK LSsJICBwZ0NDKiB8IHBnY3BwKikKLSsJICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVy Ci0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWD0nLWZwaWMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9 Jy1Cc3RhdGljJwotKwkgICAgOzsKLSsJICBjeHgqKQotKwkgICAgIyBDb21wYXEgQysrCi0rCSAg ICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxs IEFscGhhCi0rCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQ SUMuCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Ci0rCSAgICBsdF9wcm9nX2NvbXBp bGVyX3N0YXRpY19DWFg9Jy1ub25fc2hhcmVkJwotKwkgICAgOzsKLSsJICB4bGMqIHwgeGxDKiB8 IGJneGxbY0NdKiB8IG1waXhsW2NDXSopCi0rCSAgICAjIElCTSBYTCA4LjAsIDkuMCBvbiBQUEMg YW5kIEJsdWVHZW5lCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAg IGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXFwaWMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9Jy1xc3RhdGljbGluaycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGNhc2Ug YCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKwkgICAgKlN1blwgQyopCi0rCSAgICAgICMgU3Vu IEMrKyA1LjkKLSsJICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAg ICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKLSsJICAgICAgbHRfcHJv Z19jb21waWxlcl93bF9DWFg9Jy1Rb3B0aW9uIGxkICcKLSsJICAgICAgOzsKLSsJICAgIGVzYWMK LSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBseW54b3MqKQotKwk7OwotKyAgICAgIG04 OGsqKQotKwk7OwotKyAgICAgIG12cyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgY3h4 KikKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLVcgYyxleHBvcnRhbGwnCi0rCSAg ICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbmV0YnNkKikKLSsJ OzsKLSsgICAgICAqcW54KiB8ICpudG8qKQotKyAgICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBi dXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKLSsgICAgICAg ICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0n LWZQSUMgLXNoYXJlZCcKLSsgICAgICAgIDs7Ci0rICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUq KQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEtDQyopCi0rCSAgICBsdF9wcm9nX2NvbXBp bGVyX3dsX0NYWD0nLS1iYWNrZW5kIC1XbCwnCi0rCSAgICA7OwotKwkgIFJDQyopCi0rCSAgICAj IFJhdGlvbmFsIEMrKyAyLjQuMQotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGlj JwotKwkgICAgOzsKLSsJICBjeHgqKQotKwkgICAgIyBEaWdpdGFsL0NvbXBhcSBDKysKLSsJICAg IGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwotKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJ QyBmbGFnIGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQotKwkgICAgIyBMaW51 eCBhbmQgQ29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUgUElDLgotKwkgICAgbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYPQotKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctbm9u X3NoYXJlZCcKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAg ICBwc29zKikKLSsJOzsKLSsgICAgICBzb2xhcmlzKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4K LSsJICBDQyogfCBzdW5DQyopCi0rCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxp bmUgQysrCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJwotKwkgICAgbHRf cHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKLSsJICAgIGx0X3Byb2dfY29tcGls ZXJfd2xfQ1hYPSctUW9wdGlvbiBsZCAnCi0rCSAgICA7OwotKwkgIGdjeCopCi0rCSAgICAjIEdy ZWVuIEhpbGxzIEMrKyBDb21waWxlcgotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSct UElDJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHN1 bm9zNCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgIyBTdW4gQysr IDQueAotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGljJwotKwkgICAgbHRfcHJv Z19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKLSsJICAgIDs7Ci0rCSAgbGNjKikKLSsJ ICAgICMgTHVjaWQKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKLSsJICAg IDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBzeXN2NSogfCB1bml4 d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgT3BlblVOSVgqKQotKwljYXNlICRjY19iYXNl bmFtZSBpbgotKwkgIENDKikKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwot KwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAgIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAg ICAgdGFuZGVtKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBOQ0MqKQotKwkgICAgIyBO b25TdG9wLVVYIE5DQyAzLjIwCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElD JwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHZ4d29y a3MqKQotKwk7OwotKyAgICAgICopCi0rCWx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJl ZF9DWFg9bm8KLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsKLStjYXNlICRob3N0X29zIGluCi0r ICAjIEZvciBwbGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFu aW5nbGVzczoKLSsgICpkamdwcCopCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLSsg ICAgOzsKLSsgICopCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0iJGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWCAtRFBJQyIKLSsgICAgOzsKLStlc2FjCi0rCi0reyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0 byBwcm9kdWNlIFBJQyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRjb21waWxlciBv cHRpb24gdG8gcHJvZHVjZSBQSUMuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X3Byb2dfY29tcGls ZXJfcGljX0NYWCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX0NYWD0kbHRfcHJvZ19jb21waWxl cl9waWNfQ1hYCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRs dF9jdl9wcm9nX2NvbXBpbGVyX3BpY19DWFgiID4mNjsgfQotK2x0X3Byb2dfY29tcGlsZXJfcGlj X0NYWD0kbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfQ1hYCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFr ZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0raWYgdGVzdCAtbiAiJGx0 X3Byb2dfY29tcGlsZXJfcGljX0NYWCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFggd29ya3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRj b21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIHdvcmtzLi4uICIgPiY2 OyB9Ci0raWYgJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgrOn0gZmFsc2U7IHRo ZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9n X2NvbXBpbGVyX3BpY193b3Jrc19DWFg9bm8KLSsgICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19v YmpleHQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0 LiRhY19leHQKLSsgICBsdF9jb21waWxlcl9mbGFnPSIkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hY IC1EUElDIgotKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFz dCAqRkxBR1MgdmFyaWFibGUsIG9yCi0rICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5n ICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KLSsgICAjIE5vdGUgdGhhdCAkYWNfY29t cGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCi0rICAg IyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3 b3JrIGNvcnJlY3RseS4KLSsgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJp YWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19j b21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxl cl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJf ZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZh bCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFs ICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZp bGUiOyB0aGVuCi0rICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUg dGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUg YXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KLSsgICAgICRFQ0hPICIk X2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCi0r ICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsg ICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRl c3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNf d29ya3NfQ1hYPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRSTSBjb25mdGVzdCoKLSsKLStm aQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRf Y3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3By b2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWCIgPiY2OyB9Ci0rCi0raWYgdGVzdCB4IiRsdF9jdl9w cm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgiID0geHllczsgdGhlbgotKyAgICBjYXNlICRsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFggaW4KLSsgICAgICIiIHwgIiAiKikgOzsKLSsgICAgICopIGx0 X3Byb2dfY29tcGlsZXJfcGljX0NYWD0iICRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiIDs7Ci0r ICAgICBlc2FjCi0rZWxzZQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Ci0rICAgICBs dF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWRfQ1hYPW5vCi0rZmkKLSsKLStmaQotKwot KwotKwotKwotKwotKyMKLSsjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcgYWN0 dWFsbHkgd29ya3MuCi0rIwotK3dsPSRsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWCBldmFsIGx0X3Rt cF9zdGF0aWNfZmxhZz1cIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFhcIgotK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN0 YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3MiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtz Li4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgr On0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFg9bm8KLSsgICBzYXZlX0xERkxB R1M9IiRMREZMQUdTIgotKyAgIExERkxBR1M9IiRMREZMQUdTICRsdF90bXBfc3RhdGljX2ZsYWci Ci0rICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0 Ci0rICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYmIHRlc3QgLXMgY29uZnRl c3QkYWNfZXhlZXh0OyB0aGVuCi0rICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBhbmQg aWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlm IHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4K LSsgICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KLSsgICAgICAg Y2F0IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgICRFQ0hPICIkX2x0X2xpbmtlcl9ib2lsZXJw bGF0ZSIgfCAkU0VEICcvXiQvZCcgPiBjb25mdGVzdC5leHAKLSsgICAgICAgJFNFRCAnL14kL2Q7 IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCi0rICAgICAgIGlmIGRpZmYgY29u ZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgICAgbHRfY3Zf cHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYPXllcwotKyAgICAgICBmaQotKyAgICAgZWxz ZQotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFg9eWVzCi0rICAg ICBmaQotKyAgIGZpCi0rICAgJFJNIC1yIGNvbmZ0ZXN0KgotKyAgIExERkxBR1M9IiRzYXZlX0xE RkxBR1MiCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCIgPiY1Ci0rJGFz X2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgiID4mNjsgfQotKwot K2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYIiA9IHh5ZXM7 IHRoZW4KLSsgICAgOgotK2Vsc2UKLSsgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPQot K2ZpCi0rCi0rCi0rCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4 dCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1v IGZpbGUuJGFjX29iamV4dC4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfcHJvZ19jb21waWxlcl9j X29fQ1hYKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYPW5vCi0rICAgJFJNIC1yIGNvbmZ0 ZXN0IDI+L2Rldi9udWxsCi0rICAgbWtkaXIgY29uZnRlc3QKLSsgICBjZCBjb25mdGVzdAotKyAg IG1rZGlyIG91dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29u ZnRlc3QuJGFjX2V4dAotKwotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIu JGFjX29iamV4dCIKLSsgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhl IGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFp bmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFj X2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwot KyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91 bGQgd29yayBjb3JyZWN0bHkuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwg JFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsg dCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQn IFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwi XCRhc19tZTokTElORU5POiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21w aWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IG91dC9j b25mdGVzdC5lcnIgPiY1Ci0rICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0 Mi4kYWNfb2JqZXh0Ci0rICAgdGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2Fy biBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5 IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgJEVDSE8gIiRfbHRfY29tcGlsZXJfYm9p bGVycGxhdGUiIHwgJFNFRCAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAn L14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKLSsgICAg IGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBv dXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21w aWxlcl9jX29fQ1hYPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgIGNobW9kIHUrdyAuIDI+JjUK LSsgICAkUk0gY29uZnRlc3QqCi0rICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRp cmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgotKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgot KyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBv dXQvaWlfZmlsZXMKLSsgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0Ci0rICAgY2QgLi4KLSsgICAk Uk0gLXIgY29uZnRlc3QKLSsgICAkUk0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJf Y19vX0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID4m NjsgfQotKwotKwotKwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBm aWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X3Byb2dfY29tcGlsZXJfY19v X0NYWCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD1ubwotKyAgICRSTSAtciBjb25mdGVz dCAyPi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2QgY29uZnRlc3QKLSsgICBt a2RpciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0 ZXN0LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRh Y19vYmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBs YXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5p bmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19j b21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsg ICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxk IHdvcmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRT RUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQn IFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBc Ci0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwk YXNfbWU6JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGls ZSIgMj5vdXQvY29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29u ZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIu JGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4g YW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBu byBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxl cnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9e JC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCi0rICAgICBp ZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0 L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGls ZXJfY19vX0NYWD15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiY1Ci0r ICAgJFJNIGNvbmZ0ZXN0KgotKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJl Y3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKLSsgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KLSsg ICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0 L2lpX2ZpbGVzCi0rICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAotKyAgIGNkIC4uCi0rICAgJFJN IC1yIGNvbmZ0ZXN0Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nf b19DWFgiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjY7 IH0KLSsKLSsKLSsKLSsKLStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJGx0X2N2 X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87 IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92 aWRlZCBieSB0aGUgdXNlcgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcy4uLiAiID4mNjsg fQotKyAgaGFyZF9saW5rcz15ZXMKLSsgICRSTSBjb25mdGVzdCoKLSsgIGxuIGNvbmZ0ZXN0LmEg Y29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB0b3VjaCBjb25mdGVz dC5hCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCi0r ICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubwot KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRoYXJk X2xpbmtzIiA+JjUKLSskYXNfZWNobyAiJGhhcmRfbGlua3MiID4mNjsgfQotKyAgaWYgdGVzdCAi JGhhcmRfbGlua3MiID0gbm87IHRoZW4KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywg c28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkg YmUgdW5zYWZlIiA+JjI7fQotKyAgICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQotKyAg bmVlZF9sb2Nrcz1ubwotK2ZpCi0rCi0rCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAo JExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJy YXJpZXMuLi4gIiA+JjY7IH0KLSsKLSsgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gJGxp Ym9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiog Ly8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICBleGNsdWRlX2V4cHN5 bXNfQ1hYPSdfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionCi0rICBjYXNl ICRob3N0X29zIGluCi0rICBhaXhbNC05XSopCi0rICAgICMgSWYgd2UncmUgdXNpbmcgR05VIG5t LCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgotKyAgICAjIC1DIG1lYW5zIGRl bWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCi0r ICAgICMgQWxzbywgQUlYIG5tIHRyZWF0cyB3ZWFrIGRlZmluZWQgc3ltYm9scyBsaWtlIG90aGVy IGdsb2JhbCBkZWZpbmVkCi0rICAgICMgc3ltYm9scywgd2hlcmVhcyBHTlUgbm0gbWFya3MgdGhl bSBhcyAiVyIuCi0rICAgIGlmICROTSAtViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7 IHRoZW4KLSsgICAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NIC1CcGcgJGxpYm9ianMg JGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAi RCIpIHx8IChcJCAyID09ICJCIikgfHwgKFwkIDIgPT0gIlciKSkgJiYgKHN1YnN0cihcJCAzLDEs MSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1i b2xzJwotKyAgICBlbHNlCi0rICAgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAtQkNw ZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8 IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0g Ii4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwot KyAgICBmaQotKyAgICA7OwotKyAgcHczMiopCi0rICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hY PSIkbHRkbGxfY21kcyIKLSsgICAgOzsKLSsgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCi0r ICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgIGNsKikgOzsKLSsgICAgKikKLSsgICAgICBl eHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9i YWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltCQ0RHUlNdWyBdL3MvLipbIF1cKFteIF0q XCkvXDEgREFUQS87cy9eLipbIF1fX25tX19cKFteIF0qXClbIF1bXiBdKi9cMSBEQVRBLzsvXklb IF0vZDsvXltBSVRXXVsgXS9zLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1i b2xzJwotKyAgICAgIGV4Y2x1ZGVfZXhwc3ltc19DWFg9J1tfXStHTE9CQUxfT0ZGU0VUX1RBQkxF X3xbX10rR0xPQkFMX19bRklEXV8uKnxbX10raGVhZF9bQS1aYS16MC05X10rX2RsbHxbQS1aYS16 MC05X10rX2RsbF9pbmFtZScKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICAqKQot KyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8 ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlx ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICA7OwotKyAgZXNhYwotKwotK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbGRfc2hsaWJzX0NYWCIgPiY1Ci0r JGFzX2VjaG8gIiRsZF9zaGxpYnNfQ1hYIiA+JjY7IH0KLSt0ZXN0ICIkbGRfc2hsaWJzX0NYWCIg PSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0rd2l0aF9nbnVfbGRfQ1hYPSR3aXRoX2du dV9sZAotKwotKwotKwotKwotKwotKwotKyMKLSsjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBs aW5rIGxpYmM/Ci0rIwotK2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiBpbgotK3h8 eHllcykKLSsgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKLSsgIGFyY2hpdmVfY21kc19u ZWVkX2xjX0NYWD15ZXMKLSsKLSsgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBjYXNlICRhcmNoaXZlX2NtZHNfQ1hYIGluCi0r ICAgIConficqKQotKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0 aS1jb21tYW5kIHNlcXVlbmNlcy4KLSsgICAgICA7OwotKyAgICAnJENDICcqKQotKyAgICAgICMg VGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNl IG9uIHNvbWUKLSsgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMu IElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKLSsgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxj IGJlZm9yZSAtbGdjYy4KLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBp biIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxp Y2l0bHkgbGlua2VkIGluLi4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9hcmNoaXZlX2NtZHNfbmVl ZF9sY19DWFgrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICAkUk0gY29uZnRlc3QqCi0rCWVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0 X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKwlpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNf bWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNfY29tcGlsZVwiIjsgfSA+JjUKLSsgIChl dmFsICRhY19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAk YWNfc3RhdHVzID0gMDsgfSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgotKwkgIHNvbmFtZT1jb25mdGVz dAotKwkgIGxpYj1jb25mdGVzdAotKwkgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4dAotKwkg IGRlcGxpYnM9Ci0rCSAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYCi0rCSAgcGljX2ZsYWc9 JGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWAotKwkgIGNvbXBpbGVyX2ZsYWdzPS12Ci0rCSAgbGlu a2VyX2ZsYWdzPS12Ci0rCSAgdmVyc3RyaW5nPQotKwkgIG91dHB1dF9vYmpkaXI9LgotKwkgIGxp Ym5hbWU9Y29uZnRlc3QKLSsJICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191 bmRlZmluZWRfZmxhZ19DWFgKLSsJICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Ci0rCSAgaWYg eyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFyY2hp dmVfY21kc19DWFggMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjFc IiI7IH0gPiY1Ci0rICAoZXZhbCAkYXJjaGl2ZV9jbWRzX0NYWCAyXD5cJjEgXHwgJEdSRVAgXCIg LWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0KLSsJICB0aGVuCi0rCSAgICBsdF9jdl9hcmNoaXZl X2NtZHNfbmVlZF9sY19DWFg9bm8KLSsJICBlbHNlCi0rCSAgICBsdF9jdl9hcmNoaXZlX2NtZHNf bmVlZF9sY19DWFg9eWVzCi0rCSAgZmkKLSsJICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JGx0 X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsJZWxzZQotKwkgIGNhdCBjb25mdGVzdC5lcnIg MT4mNQotKwlmaQotKwkkUk0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xj X0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgiID4m NjsgfQotKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD0kbHRfY3ZfYXJjaGl2ZV9jbWRz X25lZWRfbGNfQ1hYCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIDs7Ci0rZXNhYwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICIg PiY2OyB9Ci0rCi0rbGlicmFyeV9uYW1lc19zcGVjPQotK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUn Ci0rc29uYW1lX3NwZWM9Ci0rc2hyZXh0X2NtZHM9Ii5zbyIKLStwb3N0aW5zdGFsbF9jbWRzPQot K3Bvc3R1bmluc3RhbGxfY21kcz0KLStmaW5pc2hfY21kcz0KLStmaW5pc2hfZXZhbD0KLStzaGxp YnBhdGhfdmFyPQotK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD11bmtub3duCi0rdmVyc2lv bl90eXBlPW5vbmUKLStkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCi0rc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIiCi0rbmVlZF9saWJfcHJlZml4PXVua25v d24KLStoYXJkY29kZV9pbnRvX2xpYnM9bm8KLSsKLSsjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNp b24gdG8gbm8sIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KLSsjIGZs YWdzIHRvIGJlIGxlZnQgd2l0aG91dCBhcmd1bWVudHMKLStuZWVkX3ZlcnNpb249dW5rbm93bgot KwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgzKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICRsaWJuYW1lLmEnCi0rICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsKLSsgICMgQUlY IDMgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lv biB0byB0aGUgbmFtZS4KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCi0rICA7OwotKwotK2FpeFs0LTldKikKLSsgIHZlcnNpb25fdHlwZT1s aW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKLSsgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0r ICAgICMgQUlYIDUgc3VwcG9ydHMgSUE2NAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGVsc2UKLSsgICAgIyBXaXRoIEdDQyB1cCB0byAy Ljk1LngsIGNvbGxlY3QyIHdvdWxkIGNyZWF0ZSBhbiBpbXBvcnQgZmlsZQotKyAgICAjIGZvciBk ZXBlbmRlbmNlIGxpYnJhcmllcy4gIFRoZSBpbXBvcnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCi0r ICAgICMgdGhlIGxpbmUgYCMhIC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxp YnJhcnkgdG8KLSsgICAgIyBkZXBlbmQgb24gYC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5 LiAgVGhpcyB3YXMgZml4ZWQgaW4KLSsgICAgIyBkZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0ND IHByaW9yIHRvIDMuMC4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeDQgfCBhaXg0 LlswMV0gfCBhaXg0LlswMV0uKikKLSsgICAgICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIg fHwgKF9fR05VQ19fID09IDIgJiYgX19HTlVDX01JTk9SX18gPj0gOTcpJwotKwkgICBlY2hvICcg eWVzICcKLSsJICAgZWNobyAnI2VuZGlmJzsgfSB8ICR7Q0N9IC1FIC0gfCAkR1JFUCB5ZXMgPiAv ZGV2L251bGw7IHRoZW4KLSsJOgotKyAgICAgIGVsc2UKLSsJY2FuX2J1aWxkX3NoYXJlZD1ubwot KyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICAjIEFJWCAob24gUG93ZXIqKSBo YXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29k ZSBjb3JyZWN0Ci0rICAgICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2Fu IGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8KLSsgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25h bCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4KLSsgICAgaWYgdGVzdCAiJGFpeF91c2Vf cnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBs aW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+LnNvCi0rICAgICAgIyBp bnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBu b3QKLSsgICAgICAjIHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgICAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCi0rICAgIGVsc2UKLSsgICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBm b3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJWDQuMgotKyAgICAgICMgYW5kIGxhdGVyIHdo ZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGltZSBsaW5raW5nLgotKyAgICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJwotKyAgICAgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGZp Ci0rICAgIHNobGlicGF0aF92YXI9TElCUEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0rYW1pZ2Fvcyop Ci0rICBjYXNlICRob3N0X2NwdSBpbgotKyAgcG93ZXJwYykKLSsgICAgIyBTaW5jZSBKdWx5IDIw MDcgQW1pZ2FPUzQgb2ZmaWNpYWxseSBzdXBwb3J0cyAuc28gbGlicmFyaWVzLgotKyAgICAjIFdo ZW4gY29tcGlsaW5nIHRoZSBleGVjdXRhYmxlLCBhZGQgLXVzZS1keW5sZCAtTHNvYmpzOiB0byB0 aGUgY29tcGlsZWxpbmUuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICA7OwotKyAgbTY4aykKLSsg ICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKLSsg ICAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4K LSsgICAgZmluaXNoX2V2YWw9J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4v ZGV2L251bGxgOyBkbyBsaWJuYW1lPWBmdW5jX2VjaG9fYWxsICIkbGliIiB8ICRTRUQgJ1wnJ3Ml Xi4qL1woW14vXSpcKVwuaXhsaWJyYXJ5JCVcMSUnXCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7 bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAk e2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJu YW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7IGRvbmUnCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7 OwotKwotK2Jlb3MqKQotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtzaGFyZWRf ZXh0fScKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKLSsgIHNobGlicGF0aF92 YXI9TElCUkFSWV9QQVRICi0rICA7OwotKwotK2JzZGlbNDVdKikKLSsgIHZlcnNpb25fdHlwZT1s aW51eAotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21k cz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91 c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIi Ci0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvbG9j YWwvbGliIgotKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9j b250cmliL2xpYiBhbmQKLSsgICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0 byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdwotKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29k ZSB0aGVzZSBpbnRvIHByb2dyYW1zCi0rICA7OwotKwotK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMy KiB8IGNlZ2NjKikKLSsgIHZlcnNpb25fdHlwZT13aW5kb3dzCi0rICBzaHJleHRfY21kcz0iLmRs bCIKLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rCi0rICBjYXNl ICRHQ0MsJGNjX2Jhc2VuYW1lIGluCi0rICB5ZXMsKikKLSsgICAgIyBnY2MKLSsgICAgbGlicmFy eV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKLSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRv ICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9j bWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVM TCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFt ZSdcJydgfgotKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAg ICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9w cm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxk aXIvJGRsbmFtZX4KLSsgICAgICBpZiB0ZXN0IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVzdCAt biAnXCcnJHN0cmlwbGliJ1wnJzsgdGhlbgotKyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGliIFwk ZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhpdCBcJD87Ci0rICAgICAgZmknCi0rICAgIHBvc3R1bmlu c3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxu YW1lJ1wnJ2B+Ci0rICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4KLSsgICAgICAgJFJNIFwkZGxw YXRoJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgICAgY3lnd2luKikKLSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3ln JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHts aWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1l ICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rCi0rICAgICAgOzsKLSsg ICAgbWluZ3cqIHwgY2VnY2MqKQotKyAgICAgICMgTWluR1cgRExMcyB1c2UgdHJhZGl0aW9uYWwg J2xpYicgcHJlZml4Ci0rICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVh c2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAg ICAgIDs7Ci0rICAgIHB3MzIqKQotKyAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCBy YXRoZXIgdGhhbiAnbGliJwotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJu YW1lfSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3Mv Wy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICA7OwotKyAgICBlc2Fj Ci0rICAgIGR5bmFtaWNfbGlua2VyPSdXaW4zMiBsZC5leGUnCi0rICAgIDs7Ci0rCi0rICAqLGNs KikKLSsgICAgIyBOYXRpdmUgTVNWQwotKyAgICBsaWJuYW1lX3NwZWM9JyRuYW1lJwotKyAgICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8t L2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfS5kbGwubGliJwotKwotKyAgICBjYXNlICRidWlsZF9vcyBpbgotKyAgICBtaW5n dyopCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPQotKyAgICAgIGx0X3NhdmVfaWZz PSRJRlMKLSsgICAgICBJRlM9JzsnCi0rICAgICAgZm9yIGx0X3BhdGggaW4gJExJQgotKyAgICAg IGRvCi0rICAgICAgICBJRlM9JGx0X3NhdmVfaWZzCi0rICAgICAgICAjIExldCBET1MgdmFyaWFi bGUgZXhwYW5zaW9uIHByaW50IHRoZSBzaG9ydCA4LjMgc3R5bGUgZmlsZSBuYW1lLgotKyAgICAg ICAgbHRfcGF0aD1gY2QgIiRsdF9wYXRoIiAyPi9kZXYvbnVsbCAmJiBjbWQgLy9DICJmb3IgJWkg aW4gKCIuIikgZG8gQGVjaG8gJX5zaSJgCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgJGx0X3BhdGgiCi0rICAgICAgZG9uZQotKyAg ICAgIElGUz0kbHRfc2F2ZV9pZnMKLSsgICAgICAjIENvbnZlcnQgdG8gTVNZUyBzdHlsZS4KLSsg ICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjIiB8IHNlZCAtZSAnc3xcXFxcfC98ZycgLWUgJ3N8IFxcKFthLXpBLVpdXFwpOnwgL1xc MXxnJyAtZSAnc3xeIHx8J2AKLSsgICAgICA7OwotKyAgICBjeWd3aW4qKQotKyAgICAgICMgQ29u dmVydCB0byB1bml4IGZvcm0sIHRoZW4gdG8gZG9zIGZvcm0sIHRoZW4gYmFjayB0byB1bml4IGZv cm0KLSsgICAgICAjIGJ1dCB0aGlzIHRpbWUgZG9zIHN0eWxlIChubyBzcGFjZXMhKSBzbyB0aGF0 IHRoZSB1bml4IGZvcm0gbG9va3MKLSsgICAgICAjIGxpa2UgL2N5Z2RyaXZlL2MvUFJPR1JBfjE6 L2N5Z2RyLi4uCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBjeWdwYXRoIC0tcGF0 aCAtLXVuaXggIiRMSUIiYAotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gY3lncGF0 aCAtLXBhdGggLS1kb3MgIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIDI+L2Rldi9udWxsYAot KyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gY3lncGF0aCAtLXBhdGggLS11bml4ICIk c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAv ZyJgCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 IiRMSUIiCi0rICAgICAgaWYgJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJEdS RVAgJztbYy16Qy1aXTovJyA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgICAjIEl0IGlzIG1vc3Qg cHJvYmFibHkgYSBXaW5kb3dzIGZvcm1hdCBQQVRILgotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdz LzsvIC9nJ2AKLSsgICAgICBlbHNlCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgInMvJFBBVEhfU0VQ QVJBVE9SLyAvZyJgCi0rICAgICAgZmkKLSsgICAgICAjIEZJWE1FOiBmaW5kIHRoZSBzaG9ydCBu YW1lIG9yIHRoZSBwYXRoIGNvbXBvbmVudHMsIGFzIHNwYWNlcyBhcmUKLSsgICAgICAjIGNvbW1v bi4gKGUuZy4gIlByb2dyYW0gRmlsZXMiIC0+ICJQUk9HUkF+MSIpCi0rICAgICAgOzsKLSsgICAg ZXNhYwotKwotKyAgICAjIERMTCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBw b3N0aW5zdGFsbF9jbWRzCi0rICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5h bWUgXCR7ZmlsZX1gfgotKyAgICAgIGRscGF0aD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGRpci8n XCcnXCR7YmFzZV9maWxlfSdcJydpOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxkaXI9 JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBhdGhgfgotKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBt a2RpciAtcCBcJGRsZGlyfgotKyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwkZGxk aXIvJGRsbmFtZScKLSsgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEg LWMgJ1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBkbHBhdGg9JGRpci9c JGRsZGxsfgotKyAgICAgICAkUk0gXCRkbHBhdGgnCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKLSsgICAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxpbmsuZXhlJwotKyAgICA7 OwotKwotKyAgKikKLSsgICAgIyBBc3N1bWUgTVNWQyB3cmFwcGVyCi0rICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cn YCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJwotKyAgICBkeW5hbWljX2xp bmtlcj0nV2luMzIgbGQuZXhlJwotKyAgICA7OwotKyAgZXNhYwotKyAgIyBGSVhNRTogZmlyc3Qg d2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGlu Ci0rICBzaGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikK LSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgotKyAgdmVyc2lvbl90eXBlPWRhcndp bgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGli bmFtZX0kc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 bWFqb3J9JHNoYXJlZF9leHQnCi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0r ICBzaGxpYnBhdGhfdmFyPURZTERfTElCUkFSWV9QQVRICi0rICBzaHJleHRfY21kcz0nYHRlc3Qg LiRtb2R1bGUgPSAueWVzICYmIGVjaG8gLnNvIHx8IGVjaG8gLmR5bGliYCcKLSsKLSsgIHN5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvbGliIC91c3IvbGliJwotKyAg OzsKLSsKLStkZ3V4KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLStmcmVlYnNkMSopCi0rICBkeW5hbWljX2xpbmtl cj1ubwotKyAgOzsKLSsKLStmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAjIERyYWdvbkZseSBk b2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3Ci0rICAjIHZl cnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KLSsgIGlmIHRlc3QgLXggL3Vzci9iaW4v b2JqZm9ybWF0OyB0aGVuCi0rICAgIG9iamZvcm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAotKyAg ZWxzZQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGZyZWVic2RbMTIzXSopIG9iamZvcm1h dD1hb3V0IDs7Ci0rICAgICopIG9iamZvcm1hdD1lbGYgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsg IHZlcnNpb25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKLSsgIGNhc2UgJHZlcnNpb25fdHlwZSBp bgotKyAgICBmcmVlYnNkLWVsZiopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgICAgbmVlZF92ZXJzaW9u PW5vCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgZnJlZWJzZC0q KQotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICAg IG5lZWRfdmVyc2lvbj15ZXMKLSsgICAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGZyZWVic2QyKikKLSsgICAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICA7OwotKyAgZnJlZWJzZDMuWzAx XSogfCBmcmVlYnNkZWxmMy5bMDFdKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5b Mi05XSogfCBmcmVlYnNkZWxmMy5bMi05XSogfCBcCi0rICBmcmVlYnNkNC5bMC01XSB8IGZyZWVi c2RlbGY0LlswLTVdIHwgZnJlZWJzZDQuMS4xIHwgZnJlZWJzZGVsZjQuMS4xKQotKyAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwot KyAgICA7OwotKyAgKikgIyBmcm9tIDQuNiBvbiwgYW5kIERyYWdvbkZseQotKyAgICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsg ICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rZ251KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAot KyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRf ZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaGFyZGNvZGVfaW50 b19saWJzPXllcwotKyAgOzsKLSsKLStoYWlrdSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsg IG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBkeW5hbWljX2xpbmtl cj0iJGhvc3Rfb3MgcnVudGltZV9sb2FkZXIiCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0rICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hs aWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvYm9vdC9ob21lL2NvbmZpZy9saWIg L2Jvb3QvY29tbW9uL2xpYiAvYm9vdC9zeXN0ZW0vbGliJwotKyAgaGFyZGNvZGVfaW50b19saWJz PXllcwotKyAgOzsKLSsKLStocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICMgR2l2ZSBh IHNvbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNs IHJlZnVzZXMgdG8KLSsgICMgbGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgotKyAgdmVyc2lv bl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNvJwot KyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9v cyBkbGQuc28iCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICAgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmll ZC4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUi ID0gWDMyOyB0aGVuCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9o cHV4MzIgL3Vzci9sb2NhbC9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliIgotKyAgICBlbHNlCi0r ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2Nh bC9saWIvaHB1eDY0IgotKyAgICBmaQotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0k c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICBocHBhKjY0KikKLSsgICAgc2hy ZXh0X2NtZHM9Jy5zbCcKLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICBkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xp Yi9wYTIwXzY0IC91c3IvY2NzL2xpYi9wYTIwXzY0IgotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICAqKQotKyAgICBz aHJleHRfY21kcz0nLnNsJwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgot KyAgICBzaGxpYnBhdGhfdmFyPVNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BBVEgKLSsgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEhQLVVYIHJ1bnMgKnJlYWxseSog c2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NSwgLi4uCi0rICBwb3N0 aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKLSsgICMgb3IgZmFpbHMgb3V0cmlnaHQsIHNv IG92ZXJyaWRlIGF0b21pY2FsbHk6Ci0rICBpbnN0YWxsX292ZXJyaWRlX21vZGU9NTU1Ci0rICA7 OwotKwotK2ludGVyaXhbMy05XSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGli X3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGR5 bmFtaWNfbGlua2VyPSdJbnRlcml4IDMueCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJwotKyAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStpcml4NSogfCBpcml4 NiogfCBub25zdG9wdXgqKQotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBub25zdG9wdXgqKSB2 ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7Ci0rICAgICopCi0rCWlmIHRlc3QgIiRsdF9jdl9wcm9n X2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsJCXZlcnNpb25fdHlwZT1saW51eAotKwllbHNlCi0rCQl2 ZXJzaW9uX3R5cGU9aXJpeAotKwlmaSA7OwotKyAgZXNhYwotKyAgbmVlZF9saWJfcHJlZml4PW5v Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCi0rICBjYXNlICRob3N0X29zIGluCi0rICBpcml4NSogfCBub25zdG9w dXgqKQotKyAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBjYXNl ICRMRCBpbiAjIGxpYnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExE Ci0rICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCi0rICAg ICAgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz0zMi1iaXQ7OwotKyAgICAqLW4zMnwqIi1u MzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQotKyAgICAgIGxpYnN1ZmY9 MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1OMzI7OwotKyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxm NjRibWlwfCoiLW1lbGY2NGJtaXAgIikKLSsgICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBs aWJtYWdpYz02NC1iaXQ7OwotKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5l dmVyLW1hdGNoOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9X1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD1ubwotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0g L2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgotKyAgc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKLSsgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rIyBObyBzaGFyZWQgbGliIHN1cHBvcnQg Zm9yIExpbnV4IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgotK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFv dXQqIHwgbGludXgqY29mZiopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLSsjIFRo aXMgbXVzdCBiZSBMaW51eCBFTEYuCi0rbGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJp cyotZ251KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsg IG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgZmluaXNoX2NtZHM9J1BBVEg9 IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW4gJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsKLSsgICMg U29tZSBiaW51dGlscyBsZCBhcmUgcGF0Y2hlZCB0byBzZXQgRFRfUlVOUEFUSAotKyAgaWYgJHts dF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9zaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9bm8KLSsgICAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCi0rICAgIHNhdmVfbGli ZGlyPSRsaWJkaXIKLSsgICAgZXZhbCAibGliZGlyPS9mb287IHdsPVwiJGx0X3Byb2dfY29tcGls ZXJfd2xfQ1hYXCI7IFwKLSsJIExERkxBR1M9XCJcJExERkxBR1MgJGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfQ1hYXCIiCi0rICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0 LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sK LSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2xp bmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGlmICAoJE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhl ZXh0KSAyPi9kZXYvbnVsbCB8IGdyZXAgIlJVTlBBVEguKiRsaWJkaXIiID4vZGV2L251bGw7IHRo ZW4gOgotKyAgbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotK2ZpCi0rZmkK LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgTERGTEFHUz0kc2F2ZV9MREZM QUdTCi0rICAgIGxpYmRpcj0kc2F2ZV9saWJkaXIKLSsKLStmaQotKwotKyAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPSRsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKLSsKLSsg ICMgVGhpcyBpbXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgot KyAgIyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxs Ci0rICAjIGJlZm9yZSB0aGlzIGNhbiBiZSBlbmFibGVkLgotKyAgaGFyZGNvZGVfaW50b19saWJz PXllcwotKwotKyAgIyBBZGQgQUJJLXNwZWNpZmljIGRpcmVjdG9yaWVzIHRvIHRoZSBzeXN0ZW0g bGlicmFyeSBwYXRoLgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNy L2xpYjY0IC9saWIgL3Vzci9saWIiCi0rCi0rICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRz IHRvIHRoZSBzZWFyY2ggcGF0aAotKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4K LSsgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2Qg L2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lw KSBwcmludCBcJDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3Mv Iy4qLy87L15bCSBdKmh3Y2FwWwkgXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBd KiAvIC9nO3MvIi8vZzsvXiQvZCcgfCB0ciAnXG4nICcgJ2AKLSsgICAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0cmEiCi0r Ci0rICBmaQotKwotKyAgIyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlz YWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCi0rICAjIHBvd2VycGMsIGJlY2F1c2UgTWtMaW51eCBv bmx5IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFyaWVzIHdpdGggdGhlCi0rICAjIEdOVSBkeW5hbWlj IGxpbmtlci4gIFNpbmNlIHRoaXMgd2FzIGJyb2tlbiB3aXRoIGNyb3NzIGNvbXBpbGVycywKLSsg ICMgbW9zdCBwb3dlcnBjLWxpbnV4IGJveGVzIHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNl IGRheXMgYW5kCi0rICAjIHBlb3BsZSBjYW4gYWx3YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0 ZXN0IHdhcyByZW1vdmVkLCBhbmQgd2UKLSsgICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1p YyBsaW5rZXIgaXMgaW4gdXNlLgotKyAgZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycK LSsgIDs7Ci0rCi0rbmV0YnNkKikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbmVlZF9saWJf cHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAt RSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCi0rICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBB VEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCi0rICAgIGR5bmFtaWNfbGlua2VyPSdOZXRC U0QgKGEub3V0KSBsZC5zbycKLSsgIGVsc2UKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgICAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAg ZHluYW1pY19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCi0rICBmaQotKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rbmV3c29zNikKLSsgIHZlcnNpb25f dHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgOzsKLSsKLSsqbnRv KiB8ICpxbngqKQotKyAgdmVyc2lvbl90eXBlPXFueAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0r ICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKLSsgIGR5bmFtaWNfbGlua2VyPSdsZHFueC5zbycKLSsgIDs7Ci0r Ci0rb3BlbmJzZCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSIvdXNyL2xpYiIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgIyBTb21lIG9s ZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25l ZCBsaWJzLgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBvcGVuYnNkMy4zIHwgb3BlbmJzZDMu My4qKQluZWVkX3ZlcnNpb249eWVzIDs7Ci0rICAgICopCQkJCW5lZWRfdmVyc2lvbj1ubyAgOzsK LSsgIGVzYWMKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0r ICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9f RUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9z dF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsgICAgY2FzZSAkaG9zdF9vcyBp bgotKyAgICAgIG9wZW5ic2QyLls4OV0gfCBvcGVuYnNkMi5bODldLiopCi0rCXNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD1ubwotKwk7OwotKyAgICAgICopCi0rCXNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD15ZXMKLSsJOzsKLSsgICAgICBlc2FjCi0rICBlbHNlCi0rICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGZpCi0rICA7OwotKwotK29zMiopCi0rICBsaWJu YW1lX3NwZWM9JyRuYW1lJwotKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJu YW1lLmEnCi0rICBkeW5hbWljX2xpbmtlcj0nT1MvMiBsZC5leGUnCi0rICBzaGxpYnBhdGhfdmFy PUxJQlBBVEgKLSsgIDs7Ci0rCi0rb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgdmVyc2lvbl90 eXBlPW9zZgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIgL3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxy cy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAvdmFyL3NobGliIgotKyAgc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0rICA7OwotKwotK3Jk b3MqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICB2ZXJz aW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5v Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXll cwotKyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBsaWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKLSsg IHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRsaWInCi0rICA7OwotKwotK3N1bm9zNCopCi0r ICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXgnCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZp ZyAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7 IHRoZW4KLSsgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBmaQotKyAgbmVlZF92ZXJzaW9uPXll cwotKyAgOzsKLSsKLStzeXN2NCB8IHN5c3Y0LjMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgY2Fz ZSAkaG9zdF92ZW5kb3IgaW4KLSsgICAgc25pKQotKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD1ubwotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIHJ1bnBhdGhfdmFy PUxEX1JVTl9QQVRICi0rICAgICAgOzsKLSsgICAgc2llbWVucykKLSsgICAgICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsgICAgICA7OwotKyAgICBtb3Rvcm9sYSkKLSsgICAgICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsgICAgICBuZWVkX3ZlcnNpb249bm8KLSsgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9bm8KLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9s aWIgL3Vzci9jY3MvbGliJwotKyAgICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK3N5c3Y0Kk1Q KikKLSsgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KLSsgICAgdmVyc2lvbl90eXBlPWxpbnV4 Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZm aXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0r ICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yJwotKyAgICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0rc3lzdjUqIHwgc2Nv My4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCi0r ICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVl ZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19s aWJzPXllcwotKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Nj cy9saWIgL3Vzci9saWIgL2xpYicKLSsgIGVsc2UKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPScvdXNyL2Njcy9saWIgL3Vzci9saWInCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAg ICBzY28zLjJ2NSopCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHN5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xpYicKLSsgIDs7Ci0rCi0rdHBmKikKLSsgICMg VFBGIGlzIGEgY3Jvc3MtdGFyZ2V0IG9ubHkuICBQcmVmZXJyZWQgY3Jvc3MtaG9zdCA9IEdOVS9M aW51eC4KLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBu ZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVf aW50b19saWJzPXllcwotKyAgOzsKLSsKLSt1dHM0KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAot KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIDs7 Ci0rCi0rKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotK2VzYWMKLSt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGR5bmFtaWNfbGlua2VyIiA+ JjUKLSskYXNfZWNobyAiJGR5bmFtaWNfbGlua2VyIiA+JjY7IH0KLSt0ZXN0ICIkZHluYW1pY19s aW5rZXIiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotK3ZhcmlhYmxlc19zYXZlZF9m b3JfcmVsaW5rPSJQQVRIICRzaGxpYnBhdGhfdmFyICRydW5wYXRoX3ZhciIKLStpZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgotKyAgdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJs ZXNfc2F2ZWRfZm9yX3JlbGluayBHQ0NfRVhFQ19QUkVGSVggQ09NUElMRVJfUEFUSCBMSUJSQVJZ X1BBVEgiCi0rZmkKLSsKLStpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3Bl YytzZXR9IiA9IHNldDsgdGhlbgotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zf c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgotK2ZpCi0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgotKyAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKLStmaQotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGhvdyB0 byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4g IiA+JjY7IH0KLStoYXJkY29kZV9hY3Rpb25fQ1hYPQotK2lmIHRlc3QgLW4gIiRoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0NYWCIgfHwKLSsgICB0ZXN0IC1uICIkcnVucGF0aF92YXJfQ1hYIiB8 fAotKyAgIHRlc3QgIlgkaGFyZGNvZGVfYXV0b21hdGljX0NYWCIgPSAiWHllcyIgOyB0aGVuCi0r Ci0rICAjIFdlIGNhbiBoYXJkY29kZSBub24tZXhpc3RlbnQgZGlyZWN0b3JpZXMuCi0rICBpZiB0 ZXN0ICIkaGFyZGNvZGVfZGlyZWN0X0NYWCIgIT0gbm8gJiYKLSsgICAgICMgSWYgdGhlIG9ubHkg bWVjaGFuaXNtIHRvIGF2b2lkIGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKLSsgICAg ICMgaGF2ZSB0byByZWxpbmssIG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5zdGFs bGVkIGxpYnJhcnkKLSsgICAgICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0 LXRvLWJlLWluc3RhbGxlZCBvbmUKLSsgICAgICMjIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsIENYWCkiICE9IG5vICYmCi0rICAgICB0ZXN0ICIkaGFyZGNvZGVfbWlu dXNfTF9DWFgiICE9IG5vOyB0aGVuCi0rICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRo ZSB0ZW1wb3JhcnkgbGlicmFyeSBkaXJlY3RvcnkuCi0rICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9 cmVsaW5rCi0rICBlbHNlCi0rICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBh bmQgd2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCi0rICAgIGhhcmRjb2RlX2FjdGlv bl9DWFg9aW1tZWRpYXRlCi0rICBmaQotK2Vsc2UKLSsgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFu eXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCi0rICAjIGRpcmVj dG9yaWVzLgotKyAgaGFyZGNvZGVfYWN0aW9uX0NYWD11bnN1cHBvcnRlZAotK2ZpCi0reyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rp b25fQ1hYIiA+JjUKLSskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbl9DWFgiID4mNjsgfQotKwot K2lmIHRlc3QgIiRoYXJkY29kZV9hY3Rpb25fQ1hYIiA9IHJlbGluayB8fAotKyAgIHRlc3QgIiRp bmhlcml0X3JwYXRoX0NYWCIgPSB5ZXM7IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMg bm90IHN1cHBvcnRlZAotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwotK2VsaWYgdGVzdCAiJHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKLSsgICAgIHRlc3QgIiRlbmFibGVf c2hhcmVkIiA9IG5vOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3Nh cnkKLSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKLStmaQotKwotKwotKwotKwotKwot KwotKwotKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCi0rCi0rICBDQz0kbHRfc2F2ZV9DQwot KyAgQ0ZMQUdTPSRsdF9zYXZlX0NGTEFHUwotKyAgTERDWFg9JExECi0rICBMRD0kbHRfc2F2ZV9M RAotKyAgR0NDPSRsdF9zYXZlX0dDQwotKyAgd2l0aF9nbnVfbGQ9JGx0X3NhdmVfd2l0aF9nbnVf bGQKLSsgIGx0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKLSsgIGx0X2N2X3BhdGhfTEQ9 JGx0X3NhdmVfcGF0aF9MRAotKyAgbHRfY3ZfcHJvZ19nbnVfbGRjeHg9JGx0X2N2X3Byb2dfZ251 X2xkCi0rICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotK2ZpICMgdGVz dCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXMKLSsKLSthY19leHQ9Y3BwCi0rYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgICAgIGFjX2NvbmZpZ19jb21t YW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyBsaWJ0b29sIgotKwotKwotKwotKwotKyMgT25seSBl eHBhbmQgb25jZToKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29ya3MiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgbG4gLXMgd29ya3MuLi4gIiA+JjY7IH0KLStMTl9TPSRhc19sbl9zCi0raWYg dGVzdCAiJExOX1MiID0gImxuIC1zIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6IG5vLCB1c2luZyAkTE5fUyIgPiY1Ci0rJGFzX2VjaG8gIm5vLCB1c2luZyAkTE5fUyIgPiY2 OyB9Ci0rZmkKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkuLi4gIiA+JjY7 IH0KLStzZXQgeCAke01BS0UtbWFrZX0KLSthY19tYWtlPWAkYXNfZWNobyAiJDIiIHwgc2VkICdz LysvcC9nOyBzL1teYS16QS1aMC05X10vXy9nJ2AKLStpZiBldmFsIFwke2FjX2N2X3Byb2dfbWFr ZV8ke2FjX21ha2V9X3NldCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QubWFrZSA8PFxfQUNFT0YKLStTSEVMTCA9 IC9iaW4vc2gKLSthbGw6Ci0rCUBlY2hvICdAQEAlJSU9JChNQUtFKT1AQEAlJSUnCi0rX0FDRU9G Ci0rIyBHTlUgbWFrZSBzb21ldGltZXMgcHJpbnRzICJtYWtlWzFdOiBFbnRlcmluZyAuLi4iLCB3 aGljaCB3b3VsZCBjb25mdXNlIHVzLgotK2Nhc2UgYCR7TUFLRS1tYWtlfSAtZiBjb25mdGVzdC5t YWtlIDI+L2Rldi9udWxsYCBpbgotKyAgKkBAQCUlJT0/Kj1AQEAlJSUqKQotKyAgICBldmFsIGFj X2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD15ZXM7OwotKyAgKikKLSsgICAgZXZhbCBhY19j dl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9bm87OwotK2VzYWMKLStybSAtZiBjb25mdGVzdC5t YWtlCi0rZmkKLStpZiBldmFsIHRlc3QgXCRhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQg PSB5ZXM7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKyAgU0VUX01BS0U9Ci0r ZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotKyAgU0VUX01BS0U9Ik1BS0U9JHtNQUtF LW1ha2V9IgotK2ZpCi0rCi0rCi0rIyBDaGVjayBmb3IgZXhjZXB0aW9ucyBzd2l0Y2gKLSsjIENo ZWNrIHdoZXRoZXIgLS1lbmFibGUtZXhjZXB0aW9ucyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtl bmFibGVfZXhjZXB0aW9ucytzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICBlbmFibGV2YWw9JGVuYWJs ZV9leGNlcHRpb25zOwotKyRhc19lY2hvICIjZGVmaW5lIFNPQ0lfRVhDRVBUSU9OUyAxIiA+PmNv bmZkZWZzLmgKLSsKLStmaQotKwotK3Rlc3QgIngkZW5hYmxlX2V4Y2VwdGlvbnMiICE9IHhubyAm JiBlbmFibGVfZXhjZXB0aW9ucz15ZXMKLSt0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIg IT0geG5vICYmIGVuYWJsZV9leGNlcHRpb25zPXllcwotKwotKyMgQ2hlY2sgZm9yIGluZm8gcGFn ZXMKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtaW5mby1kb2Mgd2FzIGdpdmVuLgotK2lmIHRl c3QgIiR7ZW5hYmxlX2luZm9fZG9jK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIGVuYWJsZXZhbD0k ZW5hYmxlX2luZm9fZG9jOwotK2ZpCi0rCi0rdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhu byAmJiBlbmFibGVfaW5mb19kb2M9eWVzCi0rCi0rCi0rIyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dp dGNoCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWh0bWwtZG9jIHdhcyBnaXZlbi4KLStpZiB0 ZXN0ICIke2VuYWJsZV9odG1sX2RvYytzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICBlbmFibGV2YWw9 JGVuYWJsZV9odG1sX2RvYzsKLStmaQotKwotK3Rlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4 bm8gJiYgZW5hYmxlX2h0bWxfZG9jPXllcwotKwotKwotKyMgUHJvdmlkZSAtLXdpdGgtZG9jZGly Ci0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1kb2NkaXIgd2FzIGdpdmVuLgotK2lmIHRlc3Qg IiR7d2l0aF9kb2NkaXIrc2V0fSIgPSBzZXQ7IHRoZW4gOgotKyAgd2l0aHZhbD0kd2l0aF9kb2Nk aXI7IERPQ19ESVI9IiR3aXRodmFsIgotK2Vsc2UKLSsgIERPQ19ESVI9IiIKLStmaQotKwotK2lm IHRlc3QgIngkRE9DX0RJUiIgIT0geDsgdGhlbgotKyAgZG9jZGlyPSIkRE9DX0RJUiIKLStlbHNl Ci0rICBkb2NkaXI9IiR7ZGF0YWRpcn0vZG9jLyRQQUNLQUdFLSRWRVJTSU9OIgotK2ZpCi0rCi0r Ci0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBTT0NJIGl0c2VsZikK LSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYnVycmllZC1oZWFkZXJzIHdhcyBnaXZlbi4KLStp ZiB0ZXN0ICIke2VuYWJsZV9idXJyaWVkX2hlYWRlcnMrc2V0fSIgPSBzZXQ7IHRoZW4gOgotKyAg ZW5hYmxldmFsPSRlbmFibGVfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIg PSBubzsgdGhlbgotKyAgICAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0r ICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaQotK2Vsc2UKLSsgICBlbmFi bGVfYnVycmllZF9oZWFkZXJzPW5vCi0rZmkKLSsKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0g cGFja2FnZXMgZ2VuZXJhdGlvbgotK2VuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVzCi0rIGlmIHRl c3QgIngkZW5hYmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICBTT0NJX0hFQURF UlNfQlVSSUVEX1RSVUU9Ci0rICBTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJwotK2Vsc2UK LSsgIFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRT0nIycKLSsgIFNPQ0lfSEVBREVSU19CVVJJRURf RkFMU0U9Ci0rZmkKLSsKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0g eHllczsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfSEVBREVSU19CVVJJRUQgJENQUEZMQUdT IgotK2ZpCi0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBNeVNRTCBj bGllbnQpCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLW15c3FsLWJ1cnJpZWQtaGVhZGVycyB3 YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzK3NldH0i ID0gc2V0OyB0aGVuIDoKLSsgIGVuYWJsZXZhbD0kZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVy czsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsJZW5hYmxlX215c3FsX2J1cnJp ZWRfaGVhZGVycz1ubwotKyAgIGVsc2UKLSsJZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz15 ZXMKLSsgICBmaQotK2Vsc2UKLSsgICBlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPW5vCi0r ZmkKLSsKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgotK2Vu YWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCi0rIGlmIHRlc3QgIngkZW5hYmxlX215c3Fs X2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICBTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEX1RSVUU9Ci0rICBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJwotK2Vsc2UK LSsgIFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfVFJVRT0nIycKLSsgIFNPQ0lfTVlTUUxfSEVB REVSU19CVVJJRURfRkFMU0U9Ci0rZmkKLSsKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9i dXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfTVlTUUxf SEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgotK2ZpCi0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBo ZWFkZXIgZmlsZXMgKGZvciBQb3N0R3JlU1FMIGNsaWVudCkKLSsjIENoZWNrIHdoZXRoZXIgLS1l bmFibGUtcG9zdGdyZXNxbC1idXJyaWVkLWhlYWRlcnMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7 ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzK3NldH0iID0gc2V0OyB0aGVuIDoKLSsg IGVuYWJsZXZhbD0kZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAi JGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKwllbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRl cnM9bm8KLSsgICBlbHNlCi0rCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15ZXMK LSsgICBmaQotK2Vsc2UKLSsgICBlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8K LStmaQotKwotKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCi0r ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcwotKyBpZiB0ZXN0ICJ4JGVuYWJs ZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICBTT0NJX1BPU1RH UkVTUUxfSEVBREVSU19CVVJJRURfVFJVRT0KLSsgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JV UklFRF9GQUxTRT0nIycKLStlbHNlCi0rICBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURf VFJVRT0nIycKLSsgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0KLStmaQot KwotKwotK2lmIHRlc3QgIngkZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5 ZXM7IHRoZW4KLSsgICBDUFBGTEFHUz0iLURTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQg JENQUEZMQUdTIgotK2ZpCi0rCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQm9vc3QgKFNUTCBFeHRlbnNpb25zOiBodHRw Oi8vd3d3LmJvb3N0Lm9yZykKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1ib29z dCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX2Jvb3N0K3NldH0iID0gc2V0OyB0aGVuIDoK LSsgIHdpdGh2YWw9JHdpdGhfYm9vc3Q7Ci0rICAgICAgICAgICAgICAgIGlmIHRlc3QgIiR3aXRo dmFsIiA9ICJubyI7IHRoZW4KLSsJCSAgICAgICAgICAgIHdhbnRfYm9vc3Q9Im5vIgotKyAgICAg ICAgICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAg ICAgICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCi0rICAgICAgICAgICAgICAgICAgICBhY19ib29z dF9wYXRoPSIiCi0rICAgICAgICAgICAgICAgIGVsc2UKLSsJCQkgICAgICAgIHdhbnRfYm9vc3Q9 InllcyIKLSsgICAgICAgICAgICAJCWFjX2Jvb3N0X3BhdGg9IiR3aXRodmFsIgotKwkJICAgICAg ICBmaQotKwotK2Vsc2UKLSsgIHdhbnRfYm9vc3Q9InllcyIKLStmaQotKwotKwotKyMgICAgQUNf Q0FOT05JQ0FMX0JVSUxECi0rQk9PU1RfTURXX1ZFUlNJT049IjEtMzMtMSIKLStCT09TVExJQl9N RFdfVkVSU0lPTj0iMV8zM18xIgotK0JPT1NUX3ZlcnNpb25faGVhZGVyPSJib29zdC92ZXJzaW9u LmhwcCIKLSsKLSsJaWYgdGVzdCAieCR3YW50X2Jvb3N0IiA9ICJ4eWVzIjsgdGhlbgotKwkJYm9v c3RfbGliX3ZlcnNpb25fcmVxPTEuMzMKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVu PWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChbMC05XSpcLlswLTldKlwpJ2AKLSsJ CWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVx IDogJ1woWzAtOV0qXCknYAotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRi b29zdF9saWJfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsJCWJvb3N0X2xp Yl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdb MC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCi0rCQlpZiB0ZXN0ICJ4JGJvb3N0X2xpYl92ZXJz aW9uX3JlcV9zdWJfbWlub3IiID0gIngiIDsgdGhlbgotKwkJCWJvb3N0X2xpYl92ZXJzaW9uX3Jl cV9zdWJfbWlub3I9IjAiCi0rICAgIAlmaQotKwkJV0FOVF9CT09TVF9WRVJTSU9OPWBleHByICRi b29zdF9saWJfdmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwIFwrICAkYm9vc3RfbGliX3ZlcnNp b25fcmVxX21pbm9yIFwqIDEwMCBcKyAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcmAK LSsJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9y IGJvb3N0bGliID49ICRib29zdF9saWJfdmVyc2lvbl9yZXEiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBib29zdGxpYiA+PSAkYm9vc3RfbGliX3ZlcnNpb25fcmVxLi4uICIgPiY2OyB9 Ci0rCQlzdWNjZWVkZWQ9bm8KLSsKLSsJCQkJCQkJCQkJaWYgdGVzdCAtZCAvbGliNjQKLSsJCXRo ZW4KLSsJCQlCT09TVF9MSUJESVJUWVBFPSJsaWI2NCIKLSsJCWVsc2UKLSsJCQlCT09TVF9MSUJE SVJUWVBFPSJsaWIiCi0rCQlmaQotKwkJaWYgdGVzdCAiJGFjX2Jvb3N0X3BhdGgiICE9ICIiCi0r CQl0aGVuCi0rCQkJaWYgdGVzdCAiJEJPT1NUX0xJQkRJUlRZUEUiID09ICJsaWI2NCIKLSsJCQl0 aGVuCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIiAm JiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJdGhlbgot KwkgICAgICAgICAgICAgICAgQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElC RElSVFlQRSIKLSsJCQkJZWxzZQotKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfTElCUz0iLUwk YWNfYm9vc3RfcGF0aC9saWIiCi0rCQkJCWZpCi0rCQkJZWxzZQotKwkJCQlCT09TVF9MSUJTPSIt TCRhY19ib29zdF9wYXRoL2xpYiIKLSsJCQlmaQotKwkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9v c3RfcGF0aC9pbmNsdWRlIgotKwkJCUJPT1NUX1ZFUlNJT049YGdyZXAgImRlZmluZSBCT09TVF9M SUJfVkVSU0lPTiIgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS8ke0JPT1NUX3ZlcnNpb25faGVhZGVy fSB8IGN1dCAtZCcgJyAtZjMgfCBjdXQgLWRcIiAtZjJgCi0rCQllbHNlCi0rCQkJZm9yIGFjX2Jv b3N0X3BhdGhfdG1wIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IC9uYXN0b29scy9ib29zdAotKwkJ CWRvCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0IiAm JiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCIKLSsJCQkJdGhlbgot KwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZUEUi Ci0rCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUiCi0rCQkJ CQlCT09TVF9WRVJTSU9OPWBncmVwICJkZWZpbmUgQk9PU1RfTElCX1ZFUlNJT04iICRhY19ib29z dF9wYXRoX3RtcC9pbmNsdWRlLyR7Qk9PU1RfdmVyc2lvbl9oZWFkZXJ9IHwgY3V0IC1kJyAnIC1m MyB8IGN1dCAtZFwiIC1mMmAKLSsJCQkJCWJyZWFrOwotKwkJCQlmaQotKwkJCQlpZiB0ZXN0IC1k ICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04vYm9v c3QiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9N RFdfVkVSU0lPTi9ib29zdCIKLSsJCQkJdGhlbgotKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9v c3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFj X2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OIgotKwkJCQkJ Qk9PU1RfVkVSU0lPTj1gZ3JlcCAiZGVmaW5lIEJPT1NUX0xJQl9WRVJTSU9OIiAkYWNfYm9vc3Rf cGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04vJHtCT09TVF92ZXJzaW9u X2hlYWRlcn0gfCBjdXQgLWQnICcgLWYzIHwgY3V0IC1kXCIgLWYyYAotKwotKwkJCQkJCQkJCQlp ZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aF90bXAvbGliIiBcCi0rCQkJCQkmJiB0ZXN0IC1yICIk YWNfYm9vc3RfcGF0aF90bXAvbGliIiBcCi0rCQkJCQkmJiB0ZXN0ICEgLWQgIiRhY19ib29zdF9w YXRoX3RtcC9saWI2NCIKLSsJCQkJCXRoZW4KLSsJCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29z dF9wYXRoX3RtcC9saWIiCi0rCQkJCQkJZWNobyAiSGFjazogJEJPT1NUX0xJQlMiCi0rCQkJCQlm aQotKwkJCQkJYnJlYWs7Ci0rCQkJCWZpCi0rCQkJZG9uZQotKwkJZmkKLSsKLSsJCUNQUEZMQUdT X1NBVkVEPSIkQ1BQRkxBR1MiCi0rCQlDUFBGTEFHUz0iJENQUEZMQUdTICRCT09TVF9DRkxBR1Mi Ci0rCQlleHBvcnQgQ1BQRkxBR1MKLSsKLSsJCUxERkxBR1NfU0FWRUQ9IiRMREZMQUdTIgotKwkJ TERGTEFHUz0iJExERkxBR1MgJEJPT1NUX0xJQlMiCi0rCQlleHBvcnQgTERGTEFHUwotKwotKyAg ICAgCWNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQg Y29uZmRlZnMuaC4gICovCi0rCi0rI2luY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotKwotK2lu dAotK21haW4gKCkKLSt7Ci0rCi0rI2lmIEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVS U0lPTgotKy8vIEV2ZXJ5dGhpbmcgaXMgb2theQotKyNlbHNlCi0rIyAgZXJyb3IgQm9vc3QgdmVy c2lvbiBpcyB0b28gb2xkCi0rI2VuZGlmCi0rCi0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0r X0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rCi0r ICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rCQkgc3VjY2VlZGVkPXllcwotKwkJ IGZvdW5kX3N5c3RlbT15ZXMKLSsgICAgICAgICA6Ci0rCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsJCQkJCQlp ZiB0ZXN0ICJ4JHN1Y2NlZWRlZCIgIT0gInh5ZXMiOyB0aGVuCi0rCQkJX3ZlcnNpb249MAotKwkJ CWlmIHRlc3QgIiRhY19ib29zdF9wYXRoIiAhPSAiIjsgdGhlbgotKyAgICAgICAgICAgICAgICBC T09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQlpZiB0 ZXN0IC1kICIkYWNfYm9vc3RfcGF0aCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgiOyB0aGVu Ci0rCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0qIDI+ L2Rldi9udWxsYDsgZG8KLSsJCQkJCQlfdmVyc2lvbl90bXA9YGVjaG8gJGkgfCBzZWQgInMjJGFj X2Jvb3N0X3BhdGgjIyIgfCBzZWQgJ3MvXC9pbmNsdWRlXC9ib29zdC0vLycgfCBzZWQgJ3MvXy8u LydgCi0rCQkJCQkJVl9DSEVDSz1gZXhwciAkX3ZlcnNpb25fdG1wIFw+ICRfdmVyc2lvbmAKLSsJ CQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCi0rCQkJCQkJCV92ZXJzaW9uPSRf dmVyc2lvbl90bXAKLSsJCQkJCQlmaQotKwkJCQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAk X3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8nYAotKwkJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9v c3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VOREVSU0NPUkUiCi0rCQkJCQlkb25lCi0r CQkJCWZpCi0rCQkJZWxzZQotKwkJCQlmb3IgYWNfYm9vc3RfcGF0aCBpbiAvdXNyIC91c3IvbG9j YWwgL29wdCA7IGRvCi0rCQkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aCIgJiYgdGVzdCAt ciAiJGFjX2Jvb3N0X3BhdGgiOyB0aGVuCi0rCQkJCQkJZm9yIGkgaW4gYGxzIC1kICRhY19ib29z dF9wYXRoL2luY2x1ZGUvYm9vc3QtKiAyPi9kZXYvbnVsbGA7IGRvCi0rCQkJCQkJCV92ZXJzaW9u X3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0aCMjIiB8IHNlZCAncy9cL2luY2x1 ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKLSsJCQkJCQkJVl9DSEVDSz1gZXhwciAkX3Zl cnNpb25fdG1wIFw+ICRfdmVyc2lvbmAKLSsJCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEi IDsgdGhlbgotKwkJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3RtcAotKwkJCQkJCQkJYmVzdF9w YXRoPSRhY19ib29zdF9wYXRoCi0rCQkJCQkJCWZpCi0rCQkJCQkJZG9uZQotKwkJCQkJZmkKLSsJ CQkJZG9uZQotKwotKwkJCQlWRVJTSU9OX1VOREVSU0NPUkU9YGVjaG8gJF92ZXJzaW9uIHwgc2Vk ICdzL1wuL18vJ2AKLSsJCQkJQk9PU1RfQ0ZMQUdTPSItSSRiZXN0X3BhdGgvaW5jbHVkZS9ib29z dC0kVkVSU0lPTl9VTkRFUlNDT1JFIgotKwkJCQlCT09TVF9MSUJTPSItTCRiZXN0X3BhdGgvJEJP T1NUX0xJQkRJUlRZUEUiCi0rCi0rCSAgICAJCWlmIHRlc3QgIngkQk9PU1RfUk9PVCIgIT0gIngi OyB0aGVuCi0rCQkJCQlpZiB0ZXN0IC1kICIkQk9PU1RfUk9PVCIgJiYgdGVzdCAtciAiJEJPT1NU X1JPT1QiOyB0aGVuCi0rCQkJCQkJdmVyc2lvbl9kaXI9YGV4cHIgLy8kQk9PU1RfUk9PVCA6ICcu Ki9cKC4qXCknYAotKwkJCQkJCXN0YWdlX3ZlcnNpb249YGVjaG8gJHZlcnNpb25fZGlyIHwgc2Vk ICdzL2Jvb3N0Xy8vJyB8IHNlZCAncy9fLy4vZydgCi0rCQkJCQkJc3RhZ2VfdmVyc2lvbl9zaG9y dGVuPWBleHByICRzdGFnZV92ZXJzaW9uIDogJ1woWzAtOV0qXC5bMC05XSpcKSdgCi0rCQkJCQkJ Vl9DSEVDSz1gZXhwciAkc3RhZ2VfdmVyc2lvbl9zaG9ydGVuIFw+XD0gJF92ZXJzaW9uYAotKwkJ CQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KLSsJCQkJCQkJeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXZSB3aWxsIHVzZSBhIHN0YWdlZCBib29zdCBs aWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdlIHdpbGwg dXNlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgZnJvbSAkQk9PU1RfUk9PVCIgPiY2O30KLSsJCQkJ CQkJQk9PU1RfQ0ZMQUdTPSItSSRCT09TVF9ST09UIgotKwkJCQkJCQlCT09TVF9MSUJTPSItTCRC T09TVF9ST09UL3N0YWdlLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQkJCWZpCi0rCQkJCQlmaQot KwkgICAgCQlmaQotKwkJCWZpCi0rCi0rCQkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZM QUdTIgotKwkJCWV4cG9ydCBDUFBGTEFHUwotKwkJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9M SUJTIgotKwkJCWV4cG9ydCBMREZMQUdTCi0rCi0rICAgICAJCWNhdCBjb25mZGVmcy5oIC0gPDxf QUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rI2lu Y2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rI2lm IEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgotKy8vIEV2ZXJ5dGhpbmcgaXMg b2theQotKyNlbHNlCi0rIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0b28gb2xkCi0rI2VuZGlm Ci0rCi0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3Ry eV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rCi0rICAgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyAoJF92ZXJzaW9uKSIgPiY1Ci0r JGFzX2VjaG8gInllcyAoJF92ZXJzaW9uKSIgPiY2OyB9Ci0rCQkgc3VjY2VlZGVkPXllcwotKyAg ICAgICAgIDoKLSsKLStlbHNlCi0rCi0rICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vICgkX3ZlcnNpb24pIiA+JjUKLSskYXNfZWNobyAi bm8gKCRfdmVyc2lvbikiID4mNjsgfQotKyAgICAgICAgIDoKLSsKLStmaQotK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJZmkK LSsKLSsJCWlmIHRlc3QgIiRzdWNjZWVkZWQiICE9ICJ5ZXMiIDsgdGhlbgotKwkJCWlmIHRlc3Qg IiRfdmVyc2lvbiIgPSAiMCIgOyB0aGVuCi0rCQkJCWFzX2ZuX2Vycm9yICQ/ICJXZSBjb3VsZCBu b3QgZGV0ZWN0IHRoZSBib29zdCBsaWJyYXJpZXMgKHZlcnNpb24gJGJvb3N0X2xpYl92ZXJzaW9u X3JlcV9zaG9ydGVuIG9yIGhpZ2hlcikuIElmIHlvdSBoYXZlIGEgc3RhZ2VkIGJvb3N0IGxpYnJh cnkgKHN0aWxsIG5vdCBpbnN0YWxsZWQpIHBsZWFzZSBzcGVjaWZ5IFwkQk9PU1RfUk9PVCBpbiB5 b3VyIGVudmlyb25tZW50IGFuZCBkbyBub3QgZ2l2ZSBhIFBBVEggdG8gLS13aXRoLWJvb3N0IG9w dGlvbi4gIElmIHlvdSBhcmUgc3VyZSB5b3UgaGF2ZSBib29zdCBpbnN0YWxsZWQsIHRoZW4gY2hl Y2sgeW91ciB2ZXJzaW9uIG51bWJlciBsb29raW5nIGluIDxib29zdC92ZXJzaW9uLmhwcD4uIiAi JExJTkVOTyIgNQotKwkJCWVsc2UKLSsJCQkJYXNfZm5fZXJyb3IgJD8gIidZb3VyIGJvb3N0IGxp YnJhcmllcyBzZWVtcyB0byBvbGQgKHZlcnNpb24gJF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVh c3QgJGJvb3N0X2xpYl92ZXJzaW9uX3Nob3J0ZW4nIiAiJExJTkVOTyIgNQotKwkJCWZpCi0rCQll bHNlCi0rCi0rCi0rCi0rJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVCAvKiovIiA+PmNvbmZk ZWZzLmgKLSsKLSsKLSsjCi0rIyBCb29zdDo6RmlsZXN5c3RlbQotKyMKLSsJCQl7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpGaWxlc3lzdGVtIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyB3aGV0aGVyIHRoZSBCb29zdDo6RmlsZXN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4u LiAiID4mNjsgfQotK2lmICR7YXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSs6fSBmYWxzZTsgdGhlbiA6 Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNw cAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hY RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3Qu JGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJf Z251Ci0rCi0rCQkJIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L2ZpbGVzeXN0ZW0vcGF0 aC5ocHA+Ci0raW50Ci0rbWFpbiAoKQotK3sKLSt1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OmZpbGVz eXN0ZW07Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoIG15X3BhdGgo ICJmb28vYmFyL2RhdGEudHh0IiApOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5f Y3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rICBheF9jdl9ib29zdF9maWxlc3lz dGVtPXllcwotK2Vsc2UKLSsgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09bm8KLStmaQotK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAot KwkJIAkJICAgICAgICAJCQlhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycK LSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxl cl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfZmlsZXN5c3Rl bSIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA+JjY7IH0KLSsJCQlp ZiB0ZXN0ICIkYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSIgPSAieWVzIjsgdGhlbgotKwotKyRhc19l Y2hvICIjZGVmaW5lIEhBVkVfQk9PU1RfRklMRVNZU1RFTSAvKiovIiA+PmNvbmZkZWZzLmgKLSsK LSsJCQkJQk49Ym9vc3RfZmlsZXN5c3RlbQotKwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRC Ti1tdCAkQk4gJEJOLSRDQy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJEND LXMgbGliJEJOLW10IGxpYiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGli JEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJO LW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVS U0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xp YicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiBldmFsIFwk eyRhc19hY19MaWIrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhf bGliICAkTElCUyIKLStjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0 Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0 dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5f Y3h4X3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Ci0rICBldmFsICIkYXNfYWNfTGliPXllcyIK LStlbHNlCi0rICBldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25m dGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rZXZhbCBh Y19yZXM9XCQkYXNfYWNfTGliCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4m NjsgfQotK2lmIGV2YWwgdGVzdCBcInhcJCIkYXNfYWNfTGliIlwiID0geCJ5ZXMiOyB0aGVuIDoK LSsgIEJPT1NUX0ZJTEVTWVNURU1fTElCPSItbCRheF9saWIiICBsaW5rX2ZpbGVzeXN0ZW09Inll cyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX2ZpbGVzeXN0ZW09Im5vIgotK2ZpCi0rCi0rICAJCQkJ ZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfZmlsZXN5c3RlbSIgPSAieG5vIjsgdGhlbgotKwkJ CQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGlu ayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxp bmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBC b29zdDo6U3lzdGVtCi0rIwotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlN5c3RlbSBsaWJyYXJ5 IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9v c3Q6OlN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmICR7YXhfY3Zf Ym9vc3Rfc3lzdGVtKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKwotKyAgICAgICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAg JENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwot K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKyAgICAgICAgICAg IGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29u ZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L3N5c3RlbS9lcnJvcl9jb2RlLmhwcD4KLStp bnQKLSttYWluICgpCi0rewotK3VzaW5nIG5hbWVzcGFjZSBib29zdDo6c3lzdGVtOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZSBteUVycm9yQ29kZSgpOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICA7Ci0rICBy ZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5P IjsgdGhlbiA6Ci0rICBheF9jdl9ib29zdF9zeXN0ZW09eWVzCi0rZWxzZQotKyAgYXhfY3ZfYm9v c3Rfc3lzdGVtPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3Rfc3lzdGVtIiA+JjUKLSskYXNfZWNo byAiJGF4X2N2X2Jvb3N0X3N5c3RlbSIgPiY2OyB9Ci0rICAgICAgICAgICAgaWYgdGVzdCAiJGF4 X2N2X2Jvb3N0X3N5c3RlbSIgPSAieWVzIjsgdGhlbgotKwotKyRhc19lY2hvICIjZGVmaW5lIEhB VkVfQk9PU1RfU1lTVEVNIC8qKi8iID4+Y29uZmRlZnMuaAotKwotKyAgICAgICAgICAgICAgICAg Qk49Ym9vc3Rfc3lzdGVtCi0rICAgICAgICAgICAgICAgICBmb3IgYXhfbGliIGluIFwKLSsJCQkJ CSRCTi1tdCAkQk4gJEJOLSRDQy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4t JENDLXMgbGliJEJOLW10IGxpYiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0Mg bGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cg JEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdf VkVSU0lPTiA7IGRvCi0rICAgICAgICAgICAgICAgICAgICAgYXNfYWNfTGliPWAkYXNfZWNobyAi YWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2 OyB9Ci0raWYgZXZhbCBcJHskYXNfYWNfTGliKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElC UwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLStt YWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotKyAgZXZhbCAi JGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVz dCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJ QlMKLStmaQotK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgotKwkgICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19l Y2hvICIkYWNfcmVzIiA+JjY7IH0KLStpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9 IHgieWVzIjsgdGhlbiA6Ci0rICBCT09TVF9TWVNURU1fTElCPSItbCRheF9saWIiICBsaW5rX3N5 c3RlbT0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfc3lzdGVtPSJubyIKLStmaQotKwotKyAg ICAgICAgICAgICAgICAgZG9uZQotKyAgICAgICAgICAgICAgICAgaWYgdGVzdCAieCRsaW5rX3N5 c3RlbSIgPSAieG5vIjsgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGli ICEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xp YiAhIiA+JjY7fQotKyAgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICBmaQotKwotKyMK LSsjIEJvb3N0OjpQcm9ncmFtX09wdGlvbnMKLSsjCi0rCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9P cHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4u ICIgPiY2OyB9Ci0raWYgJHtheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMrOn0gZmFsc2U7IHRo ZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn Ci0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCSAgICAgICAgICAgICAgIGNhdCBj b25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+Ci0raW50Ci0rbWFp biAoKQotK3sKLStib29zdDo6cHJvZ3JhbV9vcHRpb25zOjpvcHRpb25zX2Rlc2NyaXB0aW9uIGdl bmVyaWMoIkdlbmVyaWMgb3B0aW9ucyIpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNf Zm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rICBheF9jdl9ib29zdF9wcm9n cmFtX29wdGlvbnM9eWVzCi0rZWxzZQotKyAgYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPW5v Ci0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLSsJCQkgICAgICAgICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hY Q1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVl eHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQot K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3Zf Ym9vc3RfcHJvZ3JhbV9vcHRpb25zIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3Byb2dy YW1fb3B0aW9ucyIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0 aW9ucyIgPSB5ZXM7IHRoZW4KLSsKLSskYXNfZWNobyAiI2RlZmluZSBIQVZFX0JPT1NUX1BST0dS QU1fT1BUSU9OUyAvKiovIiA+PmNvbmZkZWZzLmgKLSsKLSsJCQkJQk49Ym9vc3RfcHJvZ3JhbV9v cHRpb25zCi0rCQkJCWZvciBheF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4tJENDLW10 ICRCTi0kQ0MgXAotKwkJCQkJJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQgbGliJEJO IFwKLSsJCQkJCWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMgbGliJEJO LSRDQy1zIFwKLSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJOLW1ndy1z IFwKLSsJCQkJCSRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAg IGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJf c2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWlu IGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIGV2YWwgXCR7JGFzX2FjX0xpYis6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2No ZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCBj b25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsK LSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5F Tk8iOyB0aGVuIDoKLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgIGV2YWwgIiRh c19hY19MaWI9bm8iCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJT PSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLStldmFsIGFjX3Jlcz1cJCRhc19hY19MaWIK LSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0raWYgZXZhbCB0ZXN0 IFwieFwkIiRhc19hY19MaWIiXCIgPSB4InllcyI7IHRoZW4gOgotKyAgQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQj0iLWwkYXhfbGliIiAgbGlua19wcm9ncmFtX29wdGlvbnM9InllcyIgYnJlYWsK LStlbHNlCi0rICBsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25l Ci0rCQkJCWlmIHRlc3QgIngkbGlua19wcm9ncmFtX29wdGlvbnM9Im5vIiIgPSAieG5vIjsgdGhl bgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBu b3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQg bm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsj Ci0rIyBCb29zdDo6VGhyZWFkcwotKyMKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBp cyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiAke2F4X2N2X2Jv b3N0X3RocmVhZCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn Ci0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJIENYWEZMQUdTX1NBVkU9JENY WEZMQUdTCi0rCi0rCQkJIGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhzb2xhcmlzIiA7IHRoZW4K LSsgIAkJCQkgQ1hYRkxBR1M9Ii1wdGhyZWFkcyAkQ1hYRkxBR1MiCi0rCQkJIGVsaWYgdGVzdCAi eCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCi0rCQkJCSBDWFhGTEFHUz0iLW10aHJlYWRz ICRDWFhGTEFHUyIKLSsJCQkgZWxzZQotKwkJCQlDWFhGTEFHUz0iLXB0aHJlYWQgJENYWEZMQUdT IgotKwkJCSBmaQotKwkJCSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNf ZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC90aHJlYWQvdGhy ZWFkLmhwcD4KLStpbnQKLSttYWluICgpCi0rewotK2Jvb3N0Ojp0aHJlYWRfZ3JvdXAgdGhyZHM7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsgIDsKLSsg IHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5F Tk8iOyB0aGVuIDoKLSsgIGF4X2N2X2Jvb3N0X3RocmVhZD15ZXMKLStlbHNlCi0rICBheF9jdl9i b29zdF90aHJlYWQ9bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBDWFhGTEFHUz0kQ1hYRkxBR1NfU0FWRQot KwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfdGhyZWFkIiA+JjUKLSskYXNfZWNo byAiJGF4X2N2X2Jvb3N0X3RocmVhZCIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29z dF90aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgaWYgdGVzdCAieCRidWls ZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgotKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFk cyAkQk9PU1RfQ0ZMQUdTIgotKwkJCSAgIGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmcz MiIgOyB0aGVuCi0rIAkJCQkgIEJPT1NUX0NGTEFHUz0iLW10aHJlYWRzICRCT09TVF9DRkxBR1Mi Ci0rCQkJICAgZWxzZQotKwkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJlYWQgJEJPT1NUX0NGTEFH UyIKLSsJCQkgICBmaQotKwotKwotKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfQk9PU1RfVEhS RUFEIC8qKi8iID4+Y29uZmRlZnMuaAotKwotKwkJCQlCTj1ib29zdF90aHJlYWQKLSsJCQkJZm9y IGF4X2xpYiBpbiBcCi0rCQkJCQkkQk4tbXQgJEJOICRCTi0kQ0MtbXQgJEJOLSRDQyBcCi0rCQkJ CQkkQk4tJENDLW10LXMgJEJOLSRDQy1zIGxpYiRCTi1tdCBsaWIkQk4gXAotKwkJCQkJbGliJEJO LSRDQy1tdCBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQtcyBsaWIkQk4tJENDLXMgXAotKwkJCQkJ JEJOLW1ndy1tdCAkQk4tbWd3ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAotKwkJCQkJJEJOLSRD Qy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNf ZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4 X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4u ICIgPiY2OyB9Ci0raWYgZXZhbCBcJHskYXNfYWNfTGliKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElC Uz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0IGNvbmZkZWZzLmggLSA8PF9B Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStp bnQKLSttYWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0r fQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotKyAg ZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStm aQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBj b25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9z YXZlX0xJQlMKLStmaQotK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgotKwkgICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQot KyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLStpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xp YiJcIiA9IHgieWVzIjsgdGhlbiA6Ci0rICBCT09TVF9USFJFQURfTElCPSItbCRheF9saWIiICBs aW5rX3RocmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfdGhyZWFkPSJubyIKLStmaQot KwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhl bgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBu b3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQg bm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsj Ci0rIyBCb29zdDo6SU9TdHJlYW1zCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJy YXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUg Qm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmICR7 YXhfY3ZfYm9vc3RfaW9zdHJlYW1zKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQg JENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK LSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0IGNv bmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvaW9zdHJlYW1zL2ZpbHRlcmluZ19zdHJlYW0uaHBwPgot KwkgICAjaW5jbHVkZSA8Ym9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgotK2ludAotK21h aW4gKCkKLSt7Ci0rc3RkOjpzdHJpbmcgIGlucHV0ID0gIkhlbGxvIFdvcmxkISI7Ci0rCSAgIG5h bWVzcGFjZSBpbyA9IGJvb3N0Ojppb3N0cmVhbXM7Ci0rCSAgIGlvOjpmaWx0ZXJpbmdfaXN0cmVh bSBpbiAoYm9vc3Q6Om1ha2VfaXRlcmF0b3JfcmFuZ2UoaW5wdXQpKTsKLSsJICAgcmV0dXJuIDA7 Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9j b21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzCi0r ZWxzZQotKyAgYXhfY3ZfYm9vc3RfaW9zdHJlYW1zPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0 PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAk Q1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFgg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRl c3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGls ZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X2lvc3RyZWFtcyIgPiY1Ci0rJGFzX2VjaG8gIiRheF9j dl9ib29zdF9pb3N0cmVhbXMiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfaW9z dHJlYW1zIiA9ICJ4eWVzIjsgdGhlbgotKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfQk9PU1Rf SU9TVFJFQU1TIC8qKi8iID4+Y29uZmRlZnMuaAotKwotKwkJCQlCTj1ib29zdF9pb3N0cmVhbXMK LSsJCQkJZm9yIGF4X2xpYiBpbiBcCi0rCQkJCQkkQk4tbXQgJEJOICRCTi0kQ0MtbXQgJEJOLSRD QyBcCi0rCQkJCQkkQk4tJENDLW10LXMgJEJOLSRDQy1zIGxpYiRCTi1tdCBsaWIkQk4gXAotKwkJ CQkJbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQtcyBsaWIkQk4tJENDLXMg XAotKwkJCQkJJEJOLW1ndy1tdCAkQk4tbWd3ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAotKwkJ CQkJJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNf TGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBtYWlu IGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwk YXhfbGliLi4uICIgPiY2OyB9Ci0raWYgZXZhbCBcJHskYXNfYWNfTGliKzp9IGZhbHNlOyB0aGVu IDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGli X3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0IGNvbmZkZWZz LmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0 dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRo ZW4gOgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgZXZhbCAiJGFzX2FjX0xp Yj1ubyIKLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg XAotKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2No ZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgotKwkgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19y ZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLStpZiBldmFsIHRlc3QgXCJ4XCQi JGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6Ci0rICBCT09TVF9JT1NUUkVBTVNfTElCPSIt bCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfdGhyZWFk PSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIg PSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0r CQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6U2VyaWFsaXphdGlvbgotKyMKLSsJCQl7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWls YWJsZS4uLiAiID4mNjsgfQotK2lmICR7YXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbis6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkg YWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENY WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9 JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhf Y29tcGlsZXJfZ251Ci0rCi0rCQkJIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0 LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGZzdHJlYW0+Ci0r CSNpbmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfb2FyY2hpdmUuaHBwPgotKyAgICAgICAgI2lu Y2x1ZGUgPGJvb3N0L2FyY2hpdmUvdGV4dF9pYXJjaGl2ZS5ocHA+Ci0rCi0raW50Ci0rbWFpbiAo KQotK3sKLStzdGQ6Om9mc3RyZWFtIG9mcygiZmlsZW5hbWUiKTsKLSsJYm9vc3Q6OmFyY2hpdmU6 OnRleHRfb2FyY2hpdmUgb2Eob2ZzKTsKLSsJcmV0dXJuIDA7Ci0rCi0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhl biA6Ci0rICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPXllcwotK2Vsc2UKLSsgIGF4X2N2X2Jv b3N0X3NlcmlhbGl6YXRpb249bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsK LStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk YXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9z ZXJpYWxpemF0aW9uIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NlcmlhbGl6 YXRpb24iID0gInh5ZXMiOyB0aGVuCi0rCi0rJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9T RVJJQUxJWkFUSU9OIC8qKi8iID4+Y29uZmRlZnMuaAotKwotKwkJCQlCTj1ib29zdF9zZXJpYWxp emF0aW9uCi0rCQkJCWZvciBheF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4tJENDLW10 ICRCTi0kQ0MgXAotKwkJCQkJJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQgbGliJEJO IFwKLSsJCQkJCWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMgbGliJEJO LSRDQy1zIFwKLSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJOLW1ndy1z IFwKLSsJCQkJCSRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAg IGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJf c2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWlu IGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIGV2YWwgXCR7JGFzX2FjX0xpYis6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2No ZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCBj b25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsK LSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5F Tk8iOyB0aGVuIDoKLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgIGV2YWwgIiRh c19hY19MaWI9bm8iCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJT PSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLStldmFsIGFjX3Jlcz1cJCRhc19hY19MaWIK LSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0raWYgZXZhbCB0ZXN0 IFwieFwkIiRhc19hY19MaWIiXCIgPSB4InllcyI7IHRoZW4gOgotKyAgQk9PU1RfU0VSSUFMSVpB VElPTl9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAg bGlua190aHJlYWQ9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlCTj1ib29zdF93c2Vy aWFsaXphdGlvbgotKwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRD Qy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxp YiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxp YiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1t Z3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJ CSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFz X3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig bWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiBldmFsIFwkeyRhc19hY19MaWIrOn0g ZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBh Y19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStj YXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZk ZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0r ICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9saW5rICIk TElORU5PIjsgdGhlbiA6Ci0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICBldmFs ICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0r TElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rZXZhbCBhY19yZXM9XCQkYXNfYWNf TGliCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2lmIGV2YWwg dGVzdCBcInhcJCIkYXNfYWNfTGliIlwiID0geCJ5ZXMiOyB0aGVuIDoKLSsgIEJPT1NUX1dTRVJJ QUxJWkFUSU9OX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKLStlbHNl Ci0rICBsaW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3Qg IngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+ JjY7fQotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMgQm9vc3Q6OlNpZ25hbHMKLSsjCi0rCQkJ eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVy IHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFi bGUuLi4gIiA+JjY7IH0KLStpZiAke2F4X2N2X2Jvb3N0X3NpZ25hbHMrOn0gZmFsc2U7IHRoZW4g OgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1j cHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENY WEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVy X2dudQotKwotKwkJCSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0 Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC9zaWduYWwuaHBwPgot KwotK2ludAotK21haW4gKCkKLSt7Ci0rYm9vc3Q6OnNpZ25hbDx2b2lkICgpPiBzaWc7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKwotKyAgOwotKyAg cmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVO TyI7IHRoZW4gOgotKyAgYXhfY3ZfYm9vc3Rfc2lnbmFscz15ZXMKLStlbHNlCi0rICBheF9jdl9i b29zdF9zaWduYWxzPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENY WENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhl ZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+ JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkK LSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2 X2Jvb3N0X3NpZ25hbHMiID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc2lnbmFscyIgPiY2 OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9zaWduYWxzIiA9ICJ4eWVzIjsgdGhlbgot KwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfQk9PU1RfU0lHTkFMUyAvKiovIiA+PmNvbmZkZWZz LmgKLSsKLSsJCQkJQk49Ym9vc3Rfc2lnbmFscwotKwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJ CSRCTi1tdCAkQk4gJEJOLSRDQy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4t JENDLXMgbGliJEJOLW10IGxpYiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0Mg bGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cg JEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdf VkVSU0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4 X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiBldmFs IFwkeyRhc19hY19MaWIrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwk YXhfbGliICAkTElCUyIKLStjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNf ZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0r cmV0dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNf Zm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Ci0rICBldmFsICIkYXNfYWNfTGliPXll cyIKLStlbHNlCi0rICBldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBj b25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rZXZh bCBhY19yZXM9XCQkYXNfYWNfTGliCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMi ID4mNjsgfQotK2lmIGV2YWwgdGVzdCBcInhcJCIkYXNfYWNfTGliIlwiID0geCJ5ZXMiOyB0aGVu IDoKLSsgIEJPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiICBsaW5rX3NpZ25hbHM9InllcyIg YnJlYWsKLStlbHNlCi0rICBsaW5rX3NpZ25hbHM9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQot KwkJCQlpZiB0ZXN0ICJ4JGxpbmtfc2lnbmFscyIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0 ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5z dCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6RGF0 ZV9UaW1lCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGlt ZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmICR7YXhfY3ZfYm9vc3RfZGF0 ZV90aW1lKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSth Y19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0IGNvbmZkZWZzLmggLSA8PF9B Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVk ZSA8Ym9vc3QvZGF0ZV90aW1lL2dyZWdvcmlhbi9ncmVnb3JpYW5fdHlwZXMuaHBwPgotKwotK2lu dAotK21haW4gKCkKLSt7Ci0rdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47IGRhdGUg ZCgyMDAyLEphbiwxMCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAwOwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4 eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgotKyAgYXhfY3ZfYm9vc3RfZGF0ZV90aW1l PXllcwotK2Vsc2UKLSsgIGF4X2N2X2Jvb3N0X2RhdGVfdGltZT1ubwotK2ZpCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJ IGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRD WFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5r PSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4 X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICRheF9jdl9ib29zdF9kYXRlX3RpbWUiID4mNQotKyRhc19lY2hv ICIkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jv b3N0X2RhdGVfdGltZSIgPSAieHllcyI7IHRoZW4KLSsKLSskYXNfZWNobyAiI2RlZmluZSBIQVZF X0JPT1NUX0RBVEVfVElNRSAvKiovIiA+PmNvbmZkZWZzLmgKLSsKLSsJCQkJQk49Ym9vc3RfZGF0 ZV90aW1lCi0rCQkJCWZvciBheF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4tJENDLW10 ICRCTi0kQ0MgXAotKwkJCQkJJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQgbGliJEJO IFwKLSsJCQkJCWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMgbGliJEJO LSRDQy1zIFwKLSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJOLW1ndy1z IFwKLSsJCQkJCSRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAg IGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJf c2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWlu IGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIGV2YWwgXCR7JGFzX2FjX0xpYis6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2No ZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCBj b25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsK LSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5F Tk8iOyB0aGVuIDoKLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgIGV2YWwgIiRh c19hY19MaWI9bm8iCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJT PSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLStldmFsIGFjX3Jlcz1cJCRhc19hY19MaWIK LSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0raWYgZXZhbCB0ZXN0 IFwieFwkIiRhc19hY19MaWIiXCIgPSB4InllcyI7IHRoZW4gOgotKyAgQk9PU1RfREFURV9USU1F X0xJQj0iLWwkYXhfbGliIiAgbGlua19kYXRlX3RpbWU9InllcyIgYnJlYWsKLStlbHNlCi0rICBs aW5rX2RhdGVfdGltZT0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngk bGlua19kYXRlX3RpbWUiPSJubyIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIg ISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGli ICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6UmVnZXgKLSsjCi0r CQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0 aGVyIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJs ZS4uLiAiID4mNjsgfQotK2lmICR7YXhfY3ZfYm9vc3RfcmVnZXgrOn0gZmFsc2U7IHRoZW4gOgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAK LSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2du dQotKwotKwkJCSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0r LyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC9yZWdleC5ocHA+Ci0rCi0r aW50Ci0rbWFpbiAoKQotK3sKLStib29zdDo6cmVnZXggcigpOyByZXR1cm4gMDsKLSsgIDsKLSsg IHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5F Tk8iOyB0aGVuIDoKLSsgIGF4X2N2X2Jvb3N0X3JlZ2V4PXllcwotK2Vsc2UKLSsgIGF4X2N2X2Jv b3N0X3JlZ2V4PW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQ UCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0 ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn Ci0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jv b3N0X3JlZ2V4IiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3JlZ2V4IiA+JjY7IH0KLSsJ CQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3JlZ2V4IiA9ICJ4eWVzIjsgdGhlbgotKwotKyRhc19l Y2hvICIjZGVmaW5lIEhBVkVfQk9PU1RfUkVHRVggLyoqLyIgPj5jb25mZGVmcy5oCi0rCi0rCQkJ CUJOPWJvb3N0X3JlZ2V4Ci0rCQkJCWZvciBheF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAk Qk4tJENDLW10ICRCTi0kQ0MgXAotKwkJCQkJJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4t bXQgbGliJEJOIFwKLSsJCQkJCWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10 LXMgbGliJEJOLSRDQy1zIFwKLSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMg JEJOLW1ndy1zIFwKLSsJCQkJCSRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8K LSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIg fCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIGV2YWwgXCR7JGFzX2FjX0xp Yis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJT IgotK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQg Y29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAo KTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2xp bmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsg IGV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19l eHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLStldmFsIGFjX3Jlcz1cJCRh c19hY19MaWIKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0raWYg ZXZhbCB0ZXN0IFwieFwkIiRhc19hY19MaWIiXCIgPSB4InllcyI7IHRoZW4gOgotKyAgQk9PU1Rf UkVHRVhfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsg IGxpbmtfdGhyZWFkPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRs aW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9 Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6QVNJTzogaXQgbmVlZHMgQm9vc3Qu U3lzdGVtLCBCb29zdC5SZWdleCwgQm9vc3QuVGhyZWFkIGFuZAotKyMgQm9vc3QuRGF0ZVRpbWUs IGJ1dCBkb2VzIG5vdCBwcm9kdWNlIGFueSAob3RoZXIpIGxpYnJhcnkuCi0rIwotKwkJCXsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUg Qm9vc3Q6OkFzaW8gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpBc2lvIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2 OyB9Ci0raWYgJHtheF9jdl9ib29zdF9hc2lvKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSck Q1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19l eGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT ID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkg Y2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvYXNpby5ocHA+Ci0raW50Ci0rbWFpbiAoKQot K3sKLStib29zdDo6YXNpbzo6aW9fc2VydmljZSBpbzsKLSsJICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYm9vc3Q6OnN5c3RlbTo6ZXJyb3JfY29kZSB0aW1lcl9yZXN1bHQ7Ci0rCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb3N0Ojphc2lvOjpkZWFkbGluZV90aW1l ciB0KGlvKTsKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5jYW5jZWwoKTsK LSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW8ucnVuX29uZSgpOwotKwkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsKLSsgIDsKLSsgIHJldHVy biAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0 aGVuIDoKLSsgIGF4X2N2X2Jvb3N0X2FzaW89eWVzCi0rZWxzZQotKyAgYXhfY3ZfYm9vc3RfYXNp bz1ubwotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdC4kYWNfZXh0Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRheF9jdl9ib29zdF9hc2lv IiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2FzaW8iID4mNjsgfQotKwkJCWlmIHRlc3Qg IngkYXhfY3ZfYm9vc3RfYXNpbyIgPSAieHllcyI7IHRoZW4KLSsKLSskYXNfZWNobyAiI2RlZmlu ZSBIQVZFX0JPT1NUX0FTSU8gLyoqLyIgPj5jb25mZGVmcy5oCi0rCi0rCQkJICAgQk9PU1RfQVNJ T19MSUI9IiR7Qk9PU1RfU1lTVEVNX0xJQn0gJHtCT09TVF9USFJFQURfTElCfSIKLSsJCQkgICBC T09TVF9BU0lPX0xJQj0iJHtCT09TVF9BU0lPX0xJQn0gJHtCT09TVF9EQVRFX1RJTUVfTElCfSIK LSsJCQkgICBCT09TVF9BU0lPX0xJQj0iJHtCT09TVF9BU0lPX0xJQn0gJHtCT09TVF9SRUdFWF9M SUJ9IgotKwkJCSAgIEJPT1NUX0FTSU9fTElCPSIke0JPT1NUX0FTSU9fTElCfSAke0JPT1NUX1NF UklBTElaQVRJT05fTElCfSIKLSsKLSsJCQlmaQotKwotKyMKLSsjIFN1cHBvcnQgZm9yIFB5dGhv biBhbmQgTVBJIChNUElDSDIsIEJvb3N0OjpNUEksIEJvb3N0OjpQeXRob24sCi0rIyBCb29zdDo6 U2VyaWFsaXphdGlvbiwgQm9vc3Q6Ok1QSV9QeXRob24pCi0rIyBOb3RlOiBvbiBzb21lIGRpc3Ry aWJ1dGlvbnMgKGUuZy4sIERlYmlhbiksIEJvb3N0Lk1QSSB1c2VzIE9wZW5NUEkgcmF0aGVyCi0r IyAgICAgICB0aGFuIE1QSUNIMgotKyMKLSsJCQlDUFBGTEFHU19PUklHPSIke0NQUEZMQUdTfSIK LSsJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke01QSUdFTl9DRkxB R1N9IgotKyMJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke01QSUNI Ml9DRkxBR1N9IgotKyMJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAk e09QRU5NUElfQ0ZMQUdTfSIKLSsJCQlMREZMQUdTX09SSUc9IiR7TERGTEFHU30iCi0rCQkJTERG TEFHUz0iJHtMREZMQUdTfSAke1BZVEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElCU30gJHtNUElH RU5fTElCU30iCi0rIwkJCUxERkxBR1M9IiR7TERGTEFHU30gJHtQWVRIT05fTElCU30gJHtQWVRI T05fQUREX0xJQlN9ICR7TVBJQ0gyX0xJQlN9IgotKyMJCQlMREZMQUdTPSIke0xERkxBR1N9ICR7 UFlUSE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJTfSAke09QRU5NUElfTElCU30iCi0rCi0rIwot KyMgQm9vc3Q6OlB5dGhvbgotKyMKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpQeXRob24gbGlicmFyeSBpcyBh dmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpQ eXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiAke2F4X2N2X2Jvb3N0 X3B5dGhvbis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsKLSsJCQlhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSth Y19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLSsJCSAgICBjYXQgY29uZmRlZnMuaCAt IDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNp bmNsdWRlIDxib29zdC9weXRob24uaHBwPgotKwkJCWNoYXIgY29uc3QqIGdyZWV0KCkgeyByZXR1 cm4gImhlbGxvIjsgfQotKwkJCUJPT1NUX1BZVEhPTl9NT0RVTEUoaGVsbG9fZXh0KSB7IGJvb3N0 OjpweXRob246OmRlZigiZ3JlZXQiLCBncmVldCk7fQotKwotK2ludAotK21haW4gKCkKLSt7Ci0r Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21w aWxlICIkTElORU5PIjsgdGhlbiA6Ci0rICBheF9jdl9ib29zdF9weXRob249eWVzCi0rZWxzZQot KyAgYXhfY3ZfYm9vc3RfcHl0aG9uPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2Fj X2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRl c3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0r Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJGF4X2N2X2Jvb3N0X3B5dGhvbiIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9weXRo b24iID4mNjsgfQotKwotKwkJCUJPT1NUX1BZVEhPTl9MSUI9Ii1sYm9vc3RfcHl0aG9uICR7UFlU SE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJTfSIKLSsKLSsKLSsjCi0rIyBCb29zdDo6TVBJCi0r IwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg d2hldGhlciB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJs ZS4uLiAiID4mNjsgfQotK2lmICR7YXhfY3ZfYm9vc3RfbXBpKzp9IGZhbHNlOyB0aGVuIDoKLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0r YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK LSsKLSsJCQkgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvbXBpLmhwcD4KLStpbnQKLStt YWluICgpCi0rewotKwotKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g MDsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5 X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGF4X2N2X2Jvb3N0X21waT15ZXMKLStlbHNl Ci0rICBheF9jdl9ib29zdF9tcGk9bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNf Y3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVz dCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsK LSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkYXhfY3ZfYm9vc3RfbXBpIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X21waSIgPiY2 OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9tcGkiID0gInh5ZXMiOyB0aGVuCi0rCi0r JGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9NUEkgLyoqLyIgPj5jb25mZGVmcy5oCi0rCi0r CQkJCUJOPWJvb3N0X21waQotKwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4g JEJOLSRDQy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJO LW10IGxpYiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1t dC1zIGxpYiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1z ICRCTi1tZ3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRv Ci0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4i IHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiBldmFsIFwkeyRhc19hY19M aWIrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElC UyIKLStjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5k IGNvbmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4g KCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9s aW5rICIkTElORU5PIjsgdGhlbiA6Ci0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0r ICBldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf ZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rZXZhbCBhY19yZXM9XCQk YXNfYWNfTGliCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2lm IGV2YWwgdGVzdCBcInhcJCIkYXNfYWNfTGliIlwiID0geCJ5ZXMiOyB0aGVuIDoKLSsgIEJPT1NU X01QSV9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfbXBpPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlu a19tcGk9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfbXBp IiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZWxz ZQotKwkJCQkJQk9PU1RfTVBJX0xJQj0iJHtCT09TVF9NUElfTElCfSAke0JPT1NUX1NFUklBTEla QVRJT05fTElCfSAke01QSUdFTl9MSUJTfSIKLSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJv b3N0OjpNUElfUHl0aG9uCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6Ok1waV9QeXRob24gbGlicmFyeSBp cyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpNcGlfUHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgJHtheF9j dl9ib29zdF9tcGlfcHl0aG9uKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRD UFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENY WEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSth Y19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsjaW5jbHVkZSA8Ym9vc3QvbXBpL3B5dGhvbi9zZXJpYWxpemUuaHBwPgotKwotK2ludAot K21haW4gKCkKLSt7Ci0rCi0rCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biAwOwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90 cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgotKyAgYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbj15 ZXMKLStlbHNlCi0rICBheF9jdl9ib29zdF9tcGlfcHl0aG9uPW5vCi0rZmkKLStybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkg YWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENY WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9 JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhf Y29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X21waV9weXRob24iID4mNQotKyRhc19lY2hv ICIkYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbiIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9i b29zdF9tcGlfcHl0aG9uIiA9ICJ4eWVzIjsgdGhlbgotKwotKyRhc19lY2hvICIjZGVmaW5lIEhB VkVfQk9PU1RfTVBJX1BZVEhPTiAvKiovIiA+PmNvbmZkZWZzLmgKLSsKLSsJCQkJQk49Ym9vc3Rf bXBpX3B5dGhvbgotKyMJCQkJQk49Ym9vc3RfbXBpX3B5dGhvbi1weTI1Ci0rCQkJCWZvciBheF9s aWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4tJENDLW10ICRCTi0kQ0MgXAotKwkJCQkJJEJO LSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQgbGliJEJOIFwKLSsJCQkJCWxpYiRCTi0kQ0Mt bXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMgbGliJEJOLSRDQy1zIFwKLSsJCQkJCSRCTi1t Z3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKLSsJCQkJCSRCTi0kQ0MtbXQt JEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8g ImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4m NjsgfQotK2lmIGV2YWwgXCR7JGFzX2FjX0xpYis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJ QlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0Yg PmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0r bWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGV2YWwg IiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgIGV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLSty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29uZnRl c3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9M SUJTCi0rZmkKLStldmFsIGFjX3Jlcz1cJCRhc19hY19MaWIKLSsJICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNf ZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0raWYgZXZhbCB0ZXN0IFwieFwkIiRhc19hY19MaWIiXCIg PSB4InllcyI7IHRoZW4gOgotKyAgQk9PU1RfTVBJX1BZVEhPTl9MSUI9Ii1sJGF4X2xpYiIgIGxp bmtfbXBpX3B5dGhvbj0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfbXBpX3B5dGhvbj0ibm8i Ci0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua19tcGlfcHl0aG9uIiA9 ICJ4bm8iOyB0aGVuCi0rCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZWxzZQot KwkJCQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9PU1RfTVBJX1BZVEhPTl9MSUJ9ICR7Qk9P U1RfU0VSSUFMSVpBVElPTl9MSUJ9IgotKwkJCQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9P U1RfTVBJX1BZVEhPTl9MSUJ9ICR7Qk9PU1RfUFlUSE9OX0xJQn0iCi0rCQkJCQlCT09TVF9NUElf UFlUSE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9OX0xJQn0gJHtCT09TVF9NUElfTElCfSIKLSsJ CQkJCUJPT1NUX01QSV9QWVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke01QSUdF Tl9MSUJTfSIKLSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEVuZCBvZiBzZWN0aW9uIG9uIHN1 cHBvcnQgZm9yIE1QSQotKyMKLSsJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU19PUklHfSIKLSsJCQlM REZMQUdTPSIke0xERkxBR1NfT1JJR30iCi0rCi0rIwotKyMgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3 b3JrCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl Y2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZh aWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6VW5p dFRlc3RGcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiAke2F4 X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9 JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJ CSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+Ci0raW50 Ci0rbWFpbiAoKQotK3sKLSt1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOwotKwkJ CQkJICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAi VW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9 Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0r ICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPXllcwotK2Vsc2UKLSsgIGF4X2N2X2Jv b3N0X3VuaXRfdGVzdF9mcmFtZXdvcms9bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0r YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK LSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY1Ci0rJGFzX2VjaG8gIiRh eF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4 X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID0gInh5ZXMiOyB0aGVuCi0rCi0rJGFzX2Vj aG8gIiNkZWZpbmUgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLIC8qKi8iID4+Y29uZmRl ZnMuaAotKwotKwkJCUJOPWJvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsKLSsgICAgCQlzYXZlZF9s ZGZsYWdzPSIke0xERkxBR1N9IgotKwkJCWZvciBheF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRC TiAkQk4tJENDLW10ICRCTi0kQ0MgXAotKwkJCQkJJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIk Qk4tbXQgbGliJEJOIFwKLSsJCQkJCWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJEND LW10LXMgbGliJEJOLSRDQy1zIFwKLSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10 LXMgJEJOLW1ndy1zIFwKLSsJCQkJCSRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsg ZG8KLSsgICAgICAgICAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSAtbCRheF9saWIiCi0rICAg IAkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgdGhl IG5hbWUgb2YgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5IiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyB0aGUgbmFtZSBvZiB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3Jr IGxpYnJhcnkuLi4gIiA+JjY7IH0KLStpZiAke2F4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdv cmsrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2Nv bXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScK LSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdT ICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0k YWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKyAgICAgICAgICAgICAgIGNhdCBjb25mZGVmcy5o IC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0r I2luY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD4KLStpbnQKLSttYWluICgpCi0rewot K3VzaW5nIGJvb3N0Ojp1bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRlc3Rfc3VpdGUqIHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0IHRl c3QgZXhhbXBsZSAxIiApOyByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNF T0YKLStpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGxpbmtfdGhy ZWFkPSJ5ZXMiCi0rZWxzZQotKyAgbGlua190aHJlYWQ9Im5vIgotK2ZpCi0rcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAg JENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwot K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRheF9jdl9ib29z dF91bml0X3Rlc3RfZnJhbWV3b3JrIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3VuaXRf dGVzdF9mcmFtZXdvcmsiID4mNjsgfQotKyAgICAgICAgICAgICAgICBMREZMQUdTPSIke3NhdmVk X2xkZmxhZ3N9IgotKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4eWVzIjsgdGhl bgotKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUI9Ii1s JGF4X2xpYiIKLSsKLSsJCQkJCWJyZWFrCi0rCQkJCWZpCi0rICAgICAgICAgICAgICBkb25lCi0r CQkJICAgIGlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJICAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2Fp bnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdh aW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsKLSsJCWZpCi0rICAg ICAgICBDUFBGTEFHUz0iJENQUEZMQUdTX1NBVkVEIgotKyAgICAgICAgTERGTEFHUz0iJExERkxB R1NfU0FWRUQiCi0rCi0rCWZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgU3VwcG9ydCBmb3IgTXlTUUwgYmFja2VuZCAoQyBjbGllbnQgQVBJKTogaHR0cDov L3d3dy5teXNxbC5vcmcKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxl LWJhY2tlbmQtbXlzcWwgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfbXlz cWwrc2V0fSIgPSBzZXQ7IHRoZW4gOgotKyAgZW5hYmxldmFsPSRlbmFibGVfYmFja2VuZF9teXNx bDsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNr ZW5kX215c3FsPW5vCi0rICAgICAgZWxzZQotKwkgZW5hYmxlX2JhY2tlbmRfbXlzcWw9eWVzCi0r ICAgICAgZmkKLStlbHNlCi0rICAgZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8KLSsKLStmaQotKwot KwotK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0gInh5ZXMiOyB0aGVuCi0rICAg TVlTUUxfRElSUz0ibXlzcWwiCi0rIyAgIE1ZU1FMX1JFUV9WRVJTSU9OPSIzLjAuMCIKLSsKLSsJ IwotKwkjIFNldCB1cCBjb25maWd1cmUgc2NyaXB0IG1hY3JvcwotKwkjCi0rCi0rIyBDaGVjayB3 aGV0aGVyIC0td2l0aC1teXNxbCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX215c3FsK3Nl dH0iID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhfbXlzcWw7IE1ZU1FMX2xpYl9jaGVj az0iJHdpdGhfbXlzcWwvbGliNjQvbXlzcWwgJHdpdGhfbXlzcWwvbGliL215c3FsICR3aXRoX215 c3FsL2xpYjY0ICR3aXRoX215c3FsL2xpYiIKLSsJCU1ZU1FMX2luY19jaGVjaz0iJHdpdGhfbXlz cWwvaW5jbHVkZSAkd2l0aF9teXNxbC9pbmNsdWRlL215c3FsIgotKwkJTVlTUUxfYmluX2NoZWNr PSIkd2l0aF9teXNxbC9iaW4iCi0rZWxzZQotKyAgTVlTUUxfbGliX2NoZWNrPSIvdXNyL2xpYjY0 IC91c3IvbGliIC91c3IvbGliNjQvbXlzcWwgL3Vzci9saWIvbXlzcWwgL3Vzci9sb2NhbC9saWI2 NCAvdXNyL2xvY2FsL2xpYiAvdXNyL2xvY2FsL2xpYi9teXNxbCAvdXNyL2xvY2FsL215c3FsL2xp YiAvdXNyL2xvY2FsL215c3FsL2xpYi9teXNxbCAvb3B0L215c3FsL2xpYiAvb3B0L215c3FsL2xp Yi9teXNxbCIKLSsJCU1ZU1FMX2luY19jaGVjaz0iL3Vzci9pbmNsdWRlL215c3FsIC91c3IvbG9j YWwvaW5jbHVkZS9teXNxbCAvdXNyL2xvY2FsL215c3FsL2luY2x1ZGUgL3Vzci9sb2NhbC9teXNx bC9pbmNsdWRlL215c3FsIC9vcHQvbXlzcWwvaW5jbHVkZS9teXNxbCIKLSsJCU1ZU1FMX2Jpbl9j aGVjaz0iL3Vzci9iaW4gL3Vzci9sb2NhbC9iaW4gL3Vzci9sb2NhbC9teXNxbC9iaW4iCi0rZmkK LSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLW15c3FsLWxpYiB3YXMgZ2l2ZW4uCi0r aWYgdGVzdCAiJHt3aXRoX215c3FsX2xpYitzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICB3aXRodmFs PSR3aXRoX215c3FsX2xpYjsgTVlTUUxfbGliX2NoZWNrPSIkd2l0aF9teXNxbF9saWIgJHdpdGhf bXlzcWxfbGliL2xpYjY0ICR3aXRoX215c3FsX2xpYi9saWIgJHdpdGhfbXlzcWxfbGliL2xpYjY0 L215c3FsICR3aXRoX215c3FsX2xpYi9saWIvbXlzcWwiCi0rZmkKLSsKLSsKLSsKLSsjIENoZWNr IHdoZXRoZXIgLS13aXRoLW15c3FsLWluY2x1ZGUgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0 aF9teXNxbF9pbmNsdWRlK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhfbXlz cWxfaW5jbHVkZTsgTVlTUUxfaW5jX2NoZWNrPSIkd2l0aF9teXNxbF9pbmNsdWRlICR3aXRoX215 c3FsX2luY2x1ZGUvaW5jbHVkZSAkd2l0aF9teXNxbF9pbmNsdWRlL2luY2x1ZGUvbXlzcWwiCi0r ZmkKLSsKLSsKLSsKLSsgICAgIwotKwkjIExvb2sgZm9yIE15U1FMIENvbmZpZ3VyYXRpb24gU2Ny aXB0Ci0rCSMKLSsJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgTXlTUUwgY29uZmlndXJhdGlvbiBzY3JpcHQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBNeVNRTCBjb25maWd1cmF0aW9uIHNjcmlwdC4uLiAiID4mNjsgfQotKwlNWVNR TF9DT05GSUc9Ci0rCU1ZU1FMX2JpbmRpcj0KLSsJZm9yIG0gaW4gJE1ZU1FMX2Jpbl9jaGVjawot KwkJZG8KLSsJCQlpZiB0ZXN0IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0vbXlzcWxfY29uZmlnIgot KwkJCXRoZW4KLSsJCQkJTVlTUUxfQ09ORklHPSRtL215c3FsX2NvbmZpZwotKwkJCQlNWVNRTF9i aW5kaXI9JG0KLSsJCQlicmVhawotKwkJZmkKLSsJZG9uZQotKwotKwlpZiB0ZXN0IC16ICIkTVlT UUxfYmluZGlyIgotKwl0aGVuCi0rCQlhc19mbl9lcnJvciAkPyAiRGlkbid0IGZpbmQgJE1ZU1FM X0NPTkZJRyBiaW5hcnkgaW4gJyRNWVNRTF9iaW5fY2hlY2snIiAiJExJTkVOTyIgNQotKwlmaQot KwotKwljYXNlICIkTVlTUUxfYmluZGlyIiBpbgotKwkJLyogKSA7OwotKwkJKiApICBhc19mbl9l cnJvciAkPyAiVGhlIE15U1FMIGJpbmFyeSBkaXJlY3RvcnkgKCRNWVNRTF9iaW5kaXIpIG11c3Qg YmUgYW4gYWJzb2x1dGUgcGF0aC4iICIkTElORU5PIiA1IDs7Ci0rCWVzYWMKLSsKLSsJeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRNWVNRTF9DT05GSUci ID4mNQotKyRhc19lY2hvICIkTVlTUUxfQ09ORklHIiA+JjY7IH0KLSsKLSsjCUFDX1BBVEhfUFJP RyhNWVNRTF9DT05GSUcsIG15c3FsX2NvbmZpZywgJE1ZU1FMX2JpbmRpcikKLSsKLSsJIwotKwkj IERlY2lkZSB3aGljaCBDIEFQSSBsaWJyYXJ5IHRvIHVzZSwgYmFzZWQgb24gdGhyZWFkIHN1cHBv cnQKLSsJIwotKwlpZiB0ZXN0ICJ4JGFjeF9wdGhyZWFkX29rIiA9IHh5ZXMKLSsJdGhlbgotKwkJ TVlTUUxfQ19MSUI9bXlzcWxjbGllbnRfcgotKwkJTVlTUUxfTElCX09QVElPTj1saWJzX3IKLSsJ ZWxzZQotKwkJTVlTUUxfQ19MSUI9bXlzcWxjbGllbnQKLSsJCU1ZU1FMX0xJQl9PUFRJT049bGli cwotKwlmaQotKwotKwlpZiB0ZXN0ICJ4JHtNWVNRTF9DT05GSUd9MSIgPSAieDEiCi0rCXRoZW4K LSsJCU1ZU1FMX1ZFUlNJT049YCR7TVlTUUxfQ09ORklHfSAtLXZlcnNpb25gCi0rCQlNWVNRTF9D RkxBR1M9YCR7TVlTUUxfQ09ORklHfSAtLWNmbGFnc2AKLSsJCU1ZU1FMX0xJQlM9YCR7TVlTUUxf Q09ORklHfSAtLSR7TVlTUUxfTElCX09QVElPTn1gCi0rCWVsc2UKLSsJCSMKLSsJCSMgTG9vayBm b3IgTXlTUUwgQyBBUEkgbGlicmFyeQotKwkJIwotKwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgTXlTUUwgbGlicmFyeSBkaXJlY3RvcnkiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBNeVNRTCBsaWJyYXJ5IGRpcmVjdG9yeS4uLiAi ID4mNjsgfQotKwkJTVlTUUxfbGliZGlyPQotKwkJZm9yIG0gaW4gJE1ZU1FMX2xpYl9jaGVjawot KwkJZG8KLSsJCQlpZiB0ZXN0IC1kICIkbSIgJiYgXAotKwkJCQkodGVzdCAtZiAiJG0vbGliJE1Z U1FMX0NfTElCLnNvIiBcCi0rCQkJCXx8IHRlc3QgLWYgIiRtL2xpYiRNWVNRTF9DX0xJQi5hIikK LSsJCQl0aGVuCi0rCQkJCU1ZU1FMX2xpYmRpcj0kbQotKwkJCQlicmVhawotKwkJCWZpCi0rCQlk b25lCi0rCi0rCQlpZiB0ZXN0IC16ICIkTVlTUUxfbGliZGlyIgotKwkJdGhlbgotKwkJCWFzX2Zu X2Vycm9yICQ/ICJEaWRuJ3QgZmluZCAkTVlTUUxfQ19MSUIgbGlicmFyeSBpbiAnJE1ZU1FMX2xp Yl9jaGVjayciICIkTElORU5PIiA1Ci0rCQlmaQotKwotKwkJY2FzZSAiJE1ZU1FMX2xpYmRpciIg aW4KLSsJCQkvKiApIDs7Ci0rCQkJKiApICBhc19mbl9lcnJvciAkPyAiVGhlIE15U1FMIGxpYnJh cnkgZGlyZWN0b3J5ICgkTVlTUUxfbGliZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiAi JExJTkVOTyIgNSA7OwotKwkJZXNhYwotKwotKwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRNWVNRTF9saWJkaXIiID4mNQotKyRhc19lY2hvICIkTVlT UUxfbGliZGlyIiA+JjY7IH0KLSsKLSsjCQljYXNlICIkTVlTUUxfbGliZGlyIiBpbgotKyMJCSAg L3Vzci9saWIpIDs7Ci0rIwkJICAqKSBMREZMQUdTPSIkTERGTEFHUyAtTCR7TVlTUUxfbGliZGly fSIgOzsKLSsjCQllc2FjCi0rCi0rCQkjCi0rCQkjIExvb2sgZm9yIE15U1FMIEMgQVBJIGhlYWRl cnMKLSsJCSMKLSsJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl Y2tpbmcgZm9yIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5IiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0KLSsJCU1ZU1FMX2lu Y2Rpcj0KLSsJCWZvciBtIGluICRNWVNRTF9pbmNfY2hlY2sKLSsJCWRvCi0rCQkJaWYgdGVzdCAt ZCAiJG0iICYmIHRlc3QgLWYgIiRtL215c3FsLmgiCi0rCQkJdGhlbgotKwkJCQlNWVNRTF9pbmNk aXI9JG0KLSsJCQkJYnJlYWsKLSsJCQlmaQotKwkJZG9uZQotKwotKwkJaWYgdGVzdCAteiAiJE1Z U1FMX2luY2RpciIKLSsJCXRoZW4KLSsJCQlhc19mbl9lcnJvciAkPyAiRGlkbid0IGZpbmQgdGhl IE15U1FMIGluY2x1ZGUgZGlyIGluICckTVlTUUxfaW5jX2NoZWNrJyIgIiRMSU5FTk8iIDUKLSsJ CWZpCi0rCi0rCQljYXNlICIkTVlTUUxfaW5jZGlyIiBpbgotKwkJCSAvKiApIDs7Ci0rCQkJICog KSAgYXNfZm5fZXJyb3IgJD8gIlRoZSBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeSAoJE1ZU1FMX2lu Y2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgIiRMSU5FTk8iIDUgOzsKLSsJCWVzYWMK LSsKLSsJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk TVlTUUxfaW5jZGlyIiA+JjUKLSskYXNfZWNobyAiJE1ZU1FMX2luY2RpciIgPiY2OyB9Ci0rCi0r CQlNWVNRTF9WRVJTSU9OPWBncmVwICJkZWZpbmUgTVlTUUxfU0VSVkVSX1ZFUlNJT04iICRNWVNR TF9pbmNkaXIvbXlzcWxfdmVyc2lvbi5oIHwgY3V0IC1kXCIgLWYyYAotKwkJTVlTUUxfQ0ZMQUdT PSItSSR7TVlTUUxfaW5jZGlyfSIKLSsJCU1ZU1FMX0xJQlM9Ii1MJHtNWVNRTF9saWJkaXJ9IC1s JHtNWVNRTF9DX0xJQn0iCi0rCWZpCi0rCi0rCi0rCi0rCi0rCi0rCXNhdmVfTElCUz0iJExJQlMi Ci0rCUxJQlM9IiRMSUJTICRNWVNRTF9MSUJTIgotKwlhc19hY19MaWI9YCRhc19lY2hvICJhY19j dl9saWJfJE1ZU1FMX0NfTElCJydfbXlzcWxfc3RvcmVfcmVzdWx0IiB8ICRhc190cl9zaGAKLSt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBteXNx bF9zdG9yZV9yZXN1bHQgaW4gLWwkTVlTUUxfQ19MSUIiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBteXNxbF9zdG9yZV9yZXN1bHQgaW4gLWwkTVlTUUxfQ19MSUIuLi4gIiA+JjY7IH0K LStpZiBldmFsIFwkeyRhc19hY19MaWIrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0r TElCUz0iLWwkTVlTUUxfQ19MSUIgICRMSUJTIgotK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0Yg PmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rLyogT3ZlcnJp ZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCi0rICAgVXNl IGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCi0r ICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFw cGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiCi0rI2VuZGlmCi0rY2hh ciBteXNxbF9zdG9yZV9yZXN1bHQgKCk7Ci0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbXlz cWxfc3RvcmVfcmVzdWx0ICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lm IGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotKyAgZXZhbCAiJGFzX2FjX0xp Yj15ZXMiCi0rZWxzZQotKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVl eHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQot K2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNf cmVzIiA+JjY7IH0KLStpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsg dGhlbiA6Ci0rICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBgJGFzX2VjaG8g IkhBVkVfTElCJE1ZU1FMX0NfTElCIiB8ICRhc190cl9jcHBgIDEKLStfQUNFT0YKLSsKLSsgIExJ QlM9Ii1sJE1ZU1FMX0NfTElCICRMSUJTIgotKwotK2Vsc2UKLSsgIGFzX2ZuX2Vycm9yICQ/ICJD b3VsZCBub3QgZmluZCB3b3JraW5nIE15U1FMIGNsaWVudCBsaWJyYXJ5ISIgIiRMSU5FTk8iIDUK LSsKLStmaQotKwotKwotKwlMSUJTPSIkc2F2ZV9MSUJTIgotKwotK2ZpCi0rIGlmIHRlc3QgIngk ZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0geHllczsgdGhlbgotKyAgSEFWRV9NWVNRTF9UUlVFPQot KyAgSEFWRV9NWVNRTF9GQUxTRT0nIycKLStlbHNlCi0rICBIQVZFX01ZU1FMX1RSVUU9JyMnCi0r ICBIQVZFX01ZU1FMX0ZBTFNFPQotK2ZpCi0rCi0rI01ZU1FMX0RJUlM9Im15c3FsIgotKwotKwot KwotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3VwcG9ydCBmb3IgT3JhY2xlIGJhY2tlbmQKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYmFja2VuZC1vcmFjbGUgd2FzIGdp dmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfb3JhY2xlK3NldH0iID0gc2V0OyB0aGVu IDoKLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tlbmRfb3JhY2xlOyAgaWYgdGVzdCAiJGVuYWJs ZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vCi0rICAg ICAgZWxzZQotKwkgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPXllcwotKyAgICAgIGZpCi0rZWxzZQot KyAgIGVuYWJsZV9iYWNrZW5kX29yYWNsZT1ubwotKwotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRl bmFibGVfYmFja2VuZF9vcmFjbGUiID0gInh5ZXMiOyB0aGVuCi0rICAgT1JBQ0xFX0RJUlM9Im9y YWNsZSIKLSsgICBPUkFDTEVfT0NJX1JFUV9WRVJTSU9OPSI5LjAiCi0rCi0rCi0rCi0rIyBDaGVj ayB3aGV0aGVyIC0td2l0aC1vcmFjbGUgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9vcmFj bGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgotKyAgd2l0aHZhbD0kd2l0aF9vcmFjbGU7Ci0rICAgICAg ICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIGlmIHRlc3Qg LW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KLSsgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGly PSIkT1JBQ0xFX0hPTUUiCi0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICBvcmFj bGVfaG9tZV9kaXI9IiIKLSsgICAgICAgICAgICBmaQotKyAgICAgICAgZmkKLSsKLStlbHNlCi0r Ci0rICAgICAgICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCi0rICAgICAgICAgICAg b3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAg ICAgb3JhY2xlX2hvbWVfZGlyPSIiCi0rICAgICAgICBmaQotKwotKwotK2ZpCi0rCi0rCi0rCi0r IyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtaW5jbHVkZSB3YXMgZ2l2ZW4uCi0raWYgdGVz dCAiJHt3aXRoX29yYWNsZV9pbmNsdWRlK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9 JHdpdGhfb3JhY2xlX2luY2x1ZGU7IG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIkd2l0aHZhbCIK LStlbHNlCi0rICBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iIgotKwotK2ZpCi0rCi0rCi0rIyBD aGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtbGliIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dp dGhfb3JhY2xlX2xpYitzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICB3aXRodmFsPSR3aXRoX29yYWNs ZV9saWI7IG9yYWNsZV9ob21lX2xpYl9kaXI9IiR3aXRodmFsIgotK2Vsc2UKLSsgIG9yYWNsZV9o b21lX2xpYl9kaXI9IiIKLSsKLStmaQotKwotKwotKyAgICBPUkFDTEVfT0NJX0NGTEFHUz0iIgot KyAgICBPUkFDTEVfT0NJX0xERkxBR1M9IiIKLSsgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIiCi0r Ci0rICAgICAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJubyIKLSsKLSsgICAg aWYgdGVzdCAtbiAiJG9yYWNsZV9ob21lX2RpciI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3Qg IiRvcmFjbGVfaG9tZV9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9kaXIiICE9ICJ5ZXMi OyB0aGVuCi0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyPSIk b3JhY2xlX2hvbWVfZGlyL3JkYm1zL3B1YmxpYyIKLSsKLSsgICAgICAgICAgICAgICAgICAgICAg ICBvcmFjbGVfaW5jbHVkZV9kaXIyPSIkb3JhY2xlX2hvbWVfZGlyL3JkYm1zL2RlbW8iCi0rCi0r ICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX2xpYl9kaXI9IiRvcmFjbGVfaG9tZV9kaXIv bGliIgotKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiA9ICJ5ZXMiOyB0aGVu Ci0rICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKLSsgICAgICAgIGZp Ci0rCi0rICAgIGVsaWYgdGVzdCAtbiAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAtbyAtbiAi JG9yYWNsZV9ob21lX2xpYl9kaXIiOyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0ICIkb3JhY2xl X2hvbWVfaW5jbHVkZV9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIg IT0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVf aG9tZV9pbmNsdWRlX2RpciIKLSsgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2luY2x1 ZGVfZGlyIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3Bh dGg9InllcyIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVf bGliX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2xpYl9kaXIiICE9ICJ5ZXMiOyB0aGVu Ci0rICAgICAgICAgICAgb3JhY2xlX2xpYl9kaXI9IiRvcmFjbGVfaG9tZV9saWJfZGlyIgotKyAg ICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfbGliX2RpciIgPSAieWVzIjsgdGhlbgotKyAg ICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCi0rICAgICAgICBmaQotKyAg ICBmaQotKwotKyAgICBpZiB0ZXN0ICIkd2FudF9vcmFjbGVfYnV0X25vX3BhdGgiID0gInllcyI7 IHRoZW4KLSsgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog V0FSTklORzogT3JhY2xlIHN1cHBvcnQgaXMgcmVxdWVzdGVkIGJ1dCBubyBPcmFjbGUgcGF0aHMg aGF2ZSBiZWVuIHByb3ZpZGVkLiBcCi0rUGxlYXNlLCBsb2NhdGUgT3JhY2xlIGRpcmVjdG9yaWVz IHVzaW5nIC0td2l0aC1vcmFjbGUgb3IgXAotKy0td2l0aC1vcmFjbGUtaW5jbHVkZSBhbmQgLS13 aXRoLW9yYWNsZS1saWIgb3B0aW9ucy4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6 IE9yYWNsZSBzdXBwb3J0IGlzIHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVl biBwcm92aWRlZC4gXAotK1BsZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAt LXdpdGgtb3JhY2xlIG9yIFwKLSstLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFj bGUtbGliIG9wdGlvbnMuIiA+JjI7fQotKyAgICBmaQotKwotKyAgICAgICAgICAgICAgICBpZiB0 ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyIiAtYSAtbiAiJG9yYWNsZV9saWJfZGlyIjsgdGhl bgotKwotKyAgICAgICAgc2F2ZWRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKLSsgICAgICAgIENQUEZM QUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgotKwotKyAgICAgICAgICAgICAg ICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KLSsgICAgICAgICAgICBD UFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCi0rICAgICAgICBmaQot KwotKyAgICAgICAgIyBGaWd1cmUgb3V0IGlmIHdlIGFyZSBidWlsZGluZyBvbiB3aW4zMi4KLSsg ICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICAgICAgICAqbWluZ3czMiogKSBXSU4zMj15 ZXMgOzsKLSsgICAgICAgICAgICAqY3lnd2luKiApICBXSU4zMj15ZXMgOzsKLSsgICAgICAgICAg ICAqKSBXSU4zMj1ubyA7OwotKyAgICAgICAgZXNhYwotKwotKyAgICAgICAgaWYgdGVzdCAiJFdJ TjMyIiA9ICJubyIKLSsgICAgICAgIHRoZW4KLSsgICAgICAgICAgICBvY2lfbGlicz0iLWxjbG50 c2ggLWxubnoxMSIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBvY2lfbGlicz0iLWxvY2ki Ci0rICAgICAgICBmaQotKwotKyAgICAgICAgc2F2ZWRfTERGTEFHUz0iJExERkxBR1MiCi0rICAg ICAgICBzYXZlZF9MSUJTPSIkTElCUyIKLSsgICAgICAgIG9jaV9sZGZsYWdzPSItTCRvcmFjbGVf bGliX2RpciIKLSsgICAgICAgIExERkxBR1M9IiRMREZMQUdTICRvY2lfbGRmbGFncyIKLSsgICAg ICAgIExJQlM9IiRMSUJTICRvY2lfbGlicyIKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yIE9yYWNsZSBPQ0kgaGVhZGVycyBpbiAkb3JhY2xlX2luY2x1ZGVfZGlyIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVk ZV9kaXIuLi4gIiA+JjY7IH0KLSsKLSsgICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhD UFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1 JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKyAgICAgICAg Y2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8b2NpLmg+Ci0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsj aWYgZGVmaW5lZChPQ0lfTUFKT1JfVkVSU0lPTikKLSsjaWYgT0NJX01BSk9SX1ZFUlNJT04gPT0g MTAgJiYgT0NJX01JTk9SX1ZFUlNJT04gPT0gMgotKy8vIE9yYWNsZSAxMC4yIGRldGVjdGVkCi0r I2VuZGlmCi0rI2VsaWYgZGVmaW5lZChPQ0lfVjdfU1lOVEFYKQotKy8vIE9LLCBvbGRlciBPcmFj bGUgZGV0ZWN0ZWQKLSsvLyBUT0RPIC0gbWxvc2tvdDogZmluZCBiZXR0ZXIgbWFjcm8gdG8gY2hl Y2sgZm9yIG9sZGVyIHZlcnNpb25zOwotKyNlbHNlCi0rIyAgZXJyb3IgT3JhY2xlIG9jaS5oIGhl YWRlciBub3QgZm91bmQKLSsjZW5kaWYKLSsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsKLSsg ICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgotKwot KyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgotKyAg ICAgICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iJE9SQUNMRV9PQ0lfQ0ZMQUdTIC1JJG9y YWNsZV9pbmNsdWRlX2RpcjIiCi0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBvY2lf aGVhZGVyX2ZvdW5kPSJ5ZXMiCi0rICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9 Ci0rCi0rZWxzZQotKwotKyAgICAgICAgICAgIG9jaV9oZWFkZXJfZm91bmQ9Im5vIgotKyAgICAg ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBu b3QgZm91bmQiID4mNQotKyRhc19lY2hvICJub3QgZm91bmQiID4mNjsgfQotKwotKwotK2ZpCi0r cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf ZXh0Ci0rICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSth Y19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCi0rCi0r ICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgT3JhY2xlIE9DSSBsaWJyYXJpZXMgaW4gJG9yYWNsZV9saWJfZGlyIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBmb3IgT3JhY2xlIE9DSSBsaWJyYXJpZXMgaW4gJG9yYWNsZV9s aWJfZGlyLi4uICIgPiY2OyB9Ci0rCi0rICAgICAgICAgICAgYWNfZXh0PWNwcAotK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rICAg ICAgICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8b2NpLmg+Ci0raW50Ci0rbWFpbiAoKQot K3sKLSsKLStPQ0lFbnYqIGVudmggPSAwOwotK09DSUVudkNyZWF0ZSgmZW52aCwgT0NJX0RFRkFV TFQsIDAsIDAsIDAsIDAsIDAsIDApOwotK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgsIE9D SV9IVFlQRV9FTlYpOwotKwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lm IGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotKwotKyAgICAgICAgICAgICAg ICBPUkFDTEVfT0NJX0xERkxBR1M9IiRvY2lfbGRmbGFncyAkb2NpX2xpYnMiCi0rICAgICAgICAg ICAgICAgIG9jaV9saWJfZm91bmQ9InllcyIKLSsgICAgICAgICAgICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8g InllcyIgPiY2OyB9Ci0rCi0rZWxzZQotKwotKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5k PSJubyIKLSsgICAgICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6IG5vdCBmb3VuZCIgPiY1Ci0rJGFzX2VjaG8gIm5vdCBmb3VuZCIgPiY2 OyB9Ci0rCi0rCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgICAg ICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKLSsKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBDUFBGTEFHUz0i JHNhdmVkX0NQUEZMQUdTIgotKyAgICAgICAgTERGTEFHUz0iJHNhdmVkX0xERkxBR1MiCi0rICAg ICAgICBMSUJTPSIkc2F2ZWRfTElCUyIKLSsgICAgZmkKLSsKLSsgICAgICAgICAgICAgICAgb3Jh Y2xlX3ZlcnNpb25fcmVxPSRPUkFDTEVfT0NJX1JFUV9WRVJTSU9OCi0rCi0rICAgIGlmIHRlc3Qg IiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiIC1hICIkb2NpX2xpYl9mb3VuZCIgPSAieWVzIiAt YSBcCi0rICAgICAgICAtbiAiJG9yYWNsZV92ZXJzaW9uX3JlcSI7IHRoZW4KLSsKLSsgICAgICAg IG9yYWNsZV92ZXJzaW9uX21ham9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NQUpPUl9W RVJTSU9OLionIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNk ZWZpbmUgT0NJX01BSk9SX1ZFUlNJT04gICovLycgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKLSsKLSsgICAgICAgIG9yYWNsZV92 ZXJzaW9uX21pbm9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NSU5PUl9WRVJTSU9OLion IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJ X01JTk9SX1ZFUlNJT04gICovLycgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBz ZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKLSsKLSsgICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgT3JhY2xlIE9DSSB2ZXJzaW9uIGlz ID49ICRvcmFjbGVfdmVyc2lvbl9yZXEiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmIE9y YWNsZSBPQ0kgdmVyc2lvbiBpcyA+PSAkb3JhY2xlX3ZlcnNpb25fcmVxLi4uICIgPiY2OyB9Ci0r Ci0rICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX3ZlcnNpb25fbWFqb3IiIC1hIC1uICQib3Jh Y2xlX3ZlcnNpb25fbWlub3IiOyB0aGVuCi0rCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJT SU9OPSIkb3JhY2xlX3ZlcnNpb25fbWFqb3IuJG9yYWNsZV92ZXJzaW9uX21pbm9yIgotKwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpv cj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAotKyAgICAgICAgICAg IG9yYWNsZV92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxIDogJ1sw LTldKlwuXChbMC05XSpcKSdgCi0rCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX251 bWJlcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9yZXFf bWlub3IgXCogMTAwMGAKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfdmVyc2lv bl9udW1iZXI9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xlX3ZlcnNpb25fbWlub3IgXCog MTAwMGAKLSsKLSsgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9jaGVjaz1gZXhwciAkb3JhY2xl X3ZlcnNpb25fbnVtYmVyIFw+XD0gJG9yYWNsZV92ZXJzaW9uX3JlcV9udW1iZXJgCi0rICAgICAg ICAgICAgaWYgdGVzdCAiJG9yYWNsZV92ZXJzaW9uX2NoZWNrIiA9ICIxIjsgdGhlbgotKyAgICAg ICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLSsKLSskYXNfZWNobyAiI2RlZmlu ZSBIQVZFX09SQUNMRSAxIiA+PmNvbmZkZWZzLmgKLSsKLSsgICAgICAgICAgICBlbHNlCi0rICAg ICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgICAgICAgICAgICAgYXNf Zm5fZXJyb3IgJD8gIk9yYWNsZSAkT1JBQ0xFX09DSV9WRVJTSU9OIGZvdW5kLCBidXQgcmVxdWly ZWQgdmVyc2lvbiBpcyAkb3JhY2xlX3ZlcnNpb25fcmVxIiAiJExJTkVOTyIgNQotKyAgICAgICAg ICAgIGZpCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJV TktOT1dOIgotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgICAgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IE9yYWNs ZSB2ZXJzaW9uIHVua25vd24sIHByb2JhYmx5IE9DSSBvbGRlciB0aGFuIDEwLjIgaXMgYXZhaWxh YmxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBPcmFjbGUgdmVyc2lvbiB1bmtu b3duLCBwcm9iYWJseSBPQ0kgb2xkZXIgdGhhbiAxMC4yIGlzIGF2YWlsYWJsZSIgPiYyO30KLSsg ICAgICAgIGZpCi0rICAgIGZpCi0rCi0rCi0rCi0rCi0rCi0rZmkKLSsgaWYgdGVzdCAieCRlbmFi bGVfYmFja2VuZF9vcmFjbGUiID0geHllczsgdGhlbgotKyAgSEFWRV9PUkFDTEVfVFJVRT0KLSsg IEhBVkVfT1JBQ0xFX0ZBTFNFPScjJwotK2Vsc2UKLSsgIEhBVkVfT1JBQ0xFX1RSVUU9JyMnCi0r ICBIQVZFX09SQUNMRV9GQUxTRT0KLStmaQotKwotKyNPUkFDTEVfRElSUz0ib3JhY2xlIgotKwot KwotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3VwcG9ydCBmb3IgUG9zdGdyZVNRTCBiYWNrZW5kCi0r IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWJhY2tlbmQtcG9zdGdyZXNx bCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsK3NldH0i ID0gc2V0OyB0aGVuIDoKLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbDsg IGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNrZW5k X3Bvc3RncmVzcWw9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3Fs PXllcwotKyAgICAgIGZpCi0rZWxzZQotKyAgIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8K LSsKLStmaQotKwotKwotK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIgPSAi eHllcyI7IHRoZW4KLSsgICBQT1NUR1JFU1FMX0RJUlM9InBvc3RncmVzcWwiCi0rICAgUE9TVEdS RVNRTF9SRVFfVkVSU0lPTj0iNy4xLjQiCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1w b3N0Z3Jlc3FsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfcG9zdGdyZXNxbCtzZXR9IiA9 IHNldDsgdGhlbiA6Ci0rICB3aXRodmFsPSR3aXRoX3Bvc3RncmVzcWw7Ci0rCVBPU1RHUkVTUUxf aW5jX2NoZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCi0rICAgICAgICBpZiB0ZXN0ICIk d2l0aHZhbCIgPSAibm8iOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJubyIK LSsgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAg ICB3YW50X3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICB3YW50 X3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFsIgotKyAg ICAgICAgZmkKLSsKLStlbHNlCi0rICB3YW50X3Bvc3RncmVzcWw9InllcyIKLSsJUE9TVEdSRVNR TF9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2FsIC9vcHQiCi0rCi0rZmkKLSsKLSsK LSsgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKLSsgICAgUE9TVEdSRVNRTF9MREZMQUdTPSIiCi0r ICAgIFBPU1RHUkVTUUxfUE9TVEdSRVNRTD0iIgotKwotKwotKyAgICBpZiB0ZXN0ICIkd2FudF9w b3N0Z3Jlc3FsIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0IC16ICIkUEdfQ09O RklHIiAtbyB0ZXN0OyB0aGVuCi0rICAgICAgICAgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICJwZ19jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgot K3NldCBkdW1teSBwZ19jb25maWc7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wYXRoX1BH X0NPTkZJRys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGNhc2UgJFBHX0NPTkZJRyBpbgotKyAgW1xcL10qIHwgPzpbXFwvXSopCi0rICBh Y19jdl9wYXRoX1BHX0NPTkZJRz0iJFBHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rICA7OwotKyAgKikKLSsgIGFzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0k YXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0 ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wYXRoX1BHX0NP TkZJRz0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKLSsgICAgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2 ZV9JRlMKLSsKLSsgIDs7Ci0rZXNhYwotK2ZpCi0rUEdfQ09ORklHPSRhY19jdl9wYXRoX1BHX0NP TkZJRwotK2lmIHRlc3QgLW4gIiRQR19DT05GSUciOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJFBHX0NPTkZJRyIgPiY1Ci0rJGFzX2Vj aG8gIiRQR19DT05GSUciID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0K LStmaQotKwotKwotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgISAteCAiJFBHX0NP TkZJRyI7IHRoZW4KLSsgICAgICAgICAgICBhc19mbl9lcnJvciAkPyAiJFBHX0NPTkZJRyBkb2Vz IG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiAiJExJTkVOTyIgNQot KyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNx bD0ibm8iCi0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAiJFBHX0NPTkZJRyIgIT0g Im5vIjsgdGhlbgotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICAjIExvb2sgZm9yIFBvc3Rn cmVzcWwgQyBBUEkgaGVhZGVycwotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBQb3N0Z3Jlc3Fs IGluY2x1ZGUgZGlyZWN0b3J5IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgUG9zdGdy ZXNxbCBpbmNsdWRlIGRpcmVjdG9yeS4uLiAiID4mNjsgfQotKyAgICAgICAgICAgIFBPU1RHUkVT UUxfaW5jZGlyPQotKyAgICAgICAgICAgIGZvciBwb3N0Z3Jlc3FsX2luY19kaXIgaW4gJFBPU1RH UkVTUUxfaW5jX2NoZWNrCi0rICAgICAgICAgICAgZG8KLSsgICAgICAgICAgICAgICAgaWYgdGVz dCAtZCAiJHBvc3RncmVzcWxfaW5jX2RpciIgXAotKyAgICAgICAgICAgICAgICAmJiB0ZXN0IC1m ICIkcG9zdGdyZXNxbF9pbmNfZGlyL3Bvc3RncmVzX2V4dC5oIgotKyAgICAgICAgICAgICAgICB0 aGVuCi0rICAgICAgICAgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0kcG9zdGdyZXNxbF9p bmNfZGlyCi0rICAgICAgICAgICAgICAgICAgICBicmVhawotKyAgICAgICAgICAgICAgICBmaQot KyAgICAgICAgICAgIGRvbmUKLSsKLSsgICAgICAgICAgICBpZiB0ZXN0IC16ICIkUE9TVEdSRVNR TF9pbmNkaXIiCi0rICAgICAgICAgICAgdGhlbgotKyAgICAgICAgICAgICAgICBhc19mbl9lcnJv ciAkPyAiRGlkbid0IGZpbmQgdGhlIFBvc3RncmVzcWwgaW5jbHVkZSBkaXIgaW4gJyRQT1NUR1JF U1FMX2luY19jaGVjayciICIkTElORU5PIiA1Ci0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAg ICAgICBjYXNlICIkUE9TVEdSRVNRTF9pbmNkaXIiIGluCi0rICAgICAgICAgICAgICAgIC8qICkg OzsKLSsgICAgICAgICAgICAgICAgKiApICBhc19mbl9lcnJvciAkPyAiVGhlIFBvc3RncmVzcWwg aW5jbHVkZSBkaXJlY3RvcnkgKCRQT1NUR1JFU1FMX2luY2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0 ZSBwYXRoLiIgIiRMSU5FTk8iIDUgOzsKLSsgICAgICAgICAgICBlc2FjCi0rCi0rICAgICAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRQT1NU R1JFU1FMX2luY2RpciIgPiY1Ci0rJGFzX2VjaG8gIiRQT1NUR1JFU1FMX2luY2RpciIgPiY2OyB9 Ci0rCi0rICAgICAgICAgICAgaWYgdGVzdCAiJFBPU1RHUkVTUUxfaW5jZGlyIiA9ICIvdXNyL2lu Y2x1ZGUiOyB0aGVuCi0rICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgotKyAgICAg ICAgICAgIGVsc2UKLSsgICAgICAgICAgICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSItSSR7UE9TVEdS RVNRTF9pbmNkaXJ9IgotKyAgICAgICAgICAgIGZpCi0rCi0rICAgICAgICAgICAgUE9TVEdSRVNR TF9MREZMQUdTPSItTGAkUEdfQ09ORklHIC0tbGliZGlyYCAtbHBxIgotKwotKyAgICAgICAgICAg IFBPU1RHUkVTUUxfVkVSU0lPTj1gJFBHX0NPTkZJRyAtLXZlcnNpb24gfCBzZWQgLWUgJ3MjUG9z dGdyZVNRTCAjIydgCi0rCi0rCi0rJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9QT1NUR1JFU1FMIDEi ID4+Y29uZmRlZnMuaAotKwotKwotKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9InllcyIK LSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKLSsgICAg ICAgIGZpCi0rICAgIGZpCi0rCi0rCi0rCi0rICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXE9JFBP U1RHUkVTUUxfUkVRX1ZFUlNJT04KLSsKLSsgICAgaWYgdGVzdCAiJGZvdW5kX3Bvc3RncmVzcWwi ID0gInllcyIgLWEgLW4gIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIjsgdGhlbgotKwotKyAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiBQ b3N0Z3JlU1FMIHZlcnNpb24gaXMgPj0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGlmIFBvc3RncmVTUUwgdmVyc2lvbiBpcyA+PSAkcG9zdGdyZXNx bF92ZXJzaW9uX3JlcS4uLiAiID4mNjsgfQotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIHBv c3RncmVzcWxfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEg OiAnXChbMC05XSpcKSdgCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pbm9yPWBl eHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDogJ1swLTldKlwuXChbMC05XSpcKSdgCi0rICAg ICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxIDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAgICAgIGlmIHRlc3Qg IngkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7IHRoZW4KLSsgICAgICAgICAg ICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPSIwIgotKyAgICAgICAgZmkKLSsKLSsgICAg ICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMCBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9t aWNyb2AKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWFq b3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdcKFswLTldKlwpJ2AKLSsgICAgICAgIHBv c3RncmVzcWxfdmVyc2lvbl9taW5vcj1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1swLTld KlwuXChbMC05XSpcKSdgCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm89YGV4cHIg JFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCi0rICAg ICAgICBpZiB0ZXN0ICJ4JHBvc3RncmVzcWxfdmVyc2lvbl9taWNybyIgPSAieCI7IHRoZW4KLSsg ICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm89IjAiCi0rICAgICAgICBmaQotKwot KyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX251bWJlcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJz aW9uX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taW5vciBcKiAxMDAwIFwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm9gCi0rCi0r ICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2s9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lv bl9udW1iZXIgXD5cPSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9udW1iZXJgCi0rICAgICAgICBp ZiB0ZXN0ICIkcG9zdGdyZXNxbF92ZXJzaW9uX2NoZWNrIiA9ICIxIjsgdGhlbgotKyAgICAgICAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMi ID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1 Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0rCi0rCi0r Ci0rCi0rZmkKLSsgaWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsIiA9IHh5ZXM7 IHRoZW4KLSsgIEhBVkVfUE9TVEdSRVNRTF9UUlVFPQotKyAgSEFWRV9QT1NUR1JFU1FMX0ZBTFNF PScjJwotK2Vsc2UKLSsgIEhBVkVfUE9TVEdSRVNRTF9UUlVFPScjJwotKyAgSEFWRV9QT1NUR1JF U1FMX0ZBTFNFPQotK2ZpCi0rCi0rI1BPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKLSsKLSsK LSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIGRvY3VtZW50YXRpb24KLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scwotKyNBQ19D SEVDS19QUk9HKFt0ZXhpbmZvX29rXSwgW3RleGluZm9dLCBbeWVzXSwgW25vXSkKLSsjaWYgdGVz dCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubzsgdGhlbgotKyMgIHRlc3QgIngkdGV4aW5mb19v ayIgIT0geHllcyAmJiBlbmFibGVfaW5mb19kb2M9bm8KLSsjICBBQ19QQVRIX1BST0coW1BFUkxd LCBbcGVybF0sIFtdKQotKyNmaQotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVz OyB0aGVuCi0rICBJTkZPX0RPQ19UUlVFPQotKyAgSU5GT19ET0NfRkFMU0U9JyMnCi0rZWxzZQot KyAgSU5GT19ET0NfVFJVRT0nIycKLSsgIElORk9fRE9DX0ZBTFNFPQotK2ZpCi0rCi0rCi0rIyBD aGVja3MgZm9yIGRvY3VtZW50YXRpb24gYnVpbGQgdG9vbHMKLSsjIEV4dHJhY3QgdGhlIGZpcnN0 IHdvcmQgb2YgImRveHlnZW4iLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgotK3NldCBkdW1teSBkb3h5Z2VuOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19k b3h5Z2VuX29rKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGRveHlnZW5fb2siOyB0aGVuCi0rICBhY19jdl9wcm9n X2RveHlnZW5fb2s9IiRkb3h5Z2VuX29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBh c19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9 OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfZG94eWdlbl9vaz0ieWVzIgotKyAgICAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRh c19zYXZlX0lGUwotKwotKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfZG94eWdlbl9vayIgJiYgYWNf Y3ZfcHJvZ19kb3h5Z2VuX29rPSJubyIKLStmaQotK2ZpCi0rZG94eWdlbl9vaz0kYWNfY3ZfcHJv Z19kb3h5Z2VuX29rCi0raWYgdGVzdCAtbiAiJGRveHlnZW5fb2siOyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGRveHlnZW5fb2siID4m NQotKyRhc19lY2hvICIkZG94eWdlbl9vayIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAi bm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJsYXRl eCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGxh dGV4OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19sYXRleF9vays6fSBmYWxzZTsg dGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3Qg LW4gIiRsYXRleF9vayI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfbGF0ZXhfb2s9IiRsYXRleF9vayIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElG Uz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2xh dGV4X29rPSJ5ZXMiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0r ICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0ZXN0IC16ICIk YWNfY3ZfcHJvZ19sYXRleF9vayIgJiYgYWNfY3ZfcHJvZ19sYXRleF9vaz0ibm8iCi0rZmkKLStm aQotK2xhdGV4X29rPSRhY19jdl9wcm9nX2xhdGV4X29rCi0raWYgdGVzdCAtbiAiJGxhdGV4X29r IjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRsYXRleF9vayIgPiY1Ci0rJGFzX2VjaG8gIiRsYXRleF9vayIgPiY2OyB9Ci0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+ JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICJkdmlwcyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Ci0rc2V0IGR1bW15IGR2aXBzOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19kdmlw c19vays6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGlmIHRlc3QgLW4gIiRkdmlwc19vayI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfZHZpcHNf b2s9IiRkdmlwc19vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQot K2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQ QVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAg ICBhY19jdl9wcm9nX2R2aXBzX29rPSJ5ZXMiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQot KyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0r Ci0rICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19kdmlwc19vayIgJiYgYWNfY3ZfcHJvZ19kdmlwc19v az0ibm8iCi0rZmkKLStmaQotK2R2aXBzX29rPSRhY19jdl9wcm9nX2R2aXBzX29rCi0raWYgdGVz dCAtbiAiJGR2aXBzX29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICRkdmlwc19vayIgPiY1Ci0rJGFzX2VjaG8gIiRkdmlwc19vayIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJncyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFt ZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGdzOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3Zf cHJvZ19nc19vays6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRnc19vayI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfZ3Nf b2s9IiRnc19vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2Fz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRI Ci0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25z OyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAk YXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBh Y19jdl9wcm9nX2dzX29rPSJ5ZXMiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBi cmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0 ZXN0IC16ICIkYWNfY3ZfcHJvZ19nc19vayIgJiYgYWNfY3ZfcHJvZ19nc19vaz0ibm8iCi0rZmkK LStmaQotK2dzX29rPSRhY19jdl9wcm9nX2dzX29rCi0raWYgdGVzdCAtbiAiJGdzX29rIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRn c19vayIgPiY1Ci0rJGFzX2VjaG8gIiRnc19vayIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNo byAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9 IHhubzsgdGhlbgotKyAgdGVzdCAieCRkb3h5Z2VuX29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1s X2RvYz1ubwotKyAgdGVzdCAieCRsYXRleF9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9 bm8KLSsgIHRlc3QgIngkZHZpcHNfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0r ICB0ZXN0ICJ4JGdzX29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwotKyAgIyBFeHRy YWN0IHRoZSBmaXJzdCB3b3JkIG9mICJwZXJsIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1l IHdpdGggYXJncy4KLStzZXQgZHVtbXkgcGVybDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2 X3BhdGhfUEVSTCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGNhc2UgJFBFUkwgaW4KLSsgIFtcXC9dKiB8ID86W1xcL10qKQotKyAgYWNf Y3ZfcGF0aF9QRVJMPSIkUEVSTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0 aCBhIHBhdGguCi0rICA7OwotKyAgKikKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMK LSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBp biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wYXRoX1BFUkw9IiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVh ayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICA7Owot K2VzYWMKLStmaQotK1BFUkw9JGFjX2N2X3BhdGhfUEVSTAotK2lmIHRlc3QgLW4gIiRQRVJMIjsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRQRVJMIiA+JjUKLSskYXNfZWNobyAiJFBFUkwiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2Vj aG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0rIGlmIHRlc3QgIngkZW5hYmxlX2h0bWxf ZG9jIiA9IHh5ZXM7IHRoZW4KLSsgIEhUTUxfRE9DX1RSVUU9Ci0rICBIVE1MX0RPQ19GQUxTRT0n IycKLStlbHNlCi0rICBIVE1MX0RPQ19UUlVFPScjJwotKyAgSFRNTF9ET0NfRkFMU0U9Ci0rZmkK LSsKLSsKLSsKLSsjIENoZWNrIGZvciBkaWZmIHByb2dyYW0gdXNlZCBmb3IgdGVzdHMKLSsjIEV4 dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRpZmYiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBkaWZmOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNf Y3ZfcHJvZ19kaWZmX29rKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGRpZmZfb2siOyB0aGVuCi0rICBhY19jdl9w cm9nX2RpZmZfb2s9IiRkaWZmX29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4K LStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19k aXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2Rp ciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0 aGVuCi0rICAgIGFjX2N2X3Byb2dfZGlmZl9vaz0ieWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZl X0lGUwotKwotKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfZGlmZl9vayIgJiYgYWNfY3ZfcHJvZ19k aWZmX29rPSJubyIKLStmaQotK2ZpCi0rZGlmZl9vaz0kYWNfY3ZfcHJvZ19kaWZmX29rCi0raWYg dGVzdCAtbiAiJGRpZmZfb2siOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJGRpZmZfb2siID4mNQotKyRhc19lY2hvICIkZGlmZl9vayIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzZWQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBzZWQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19j dl9wcm9nX3NlZF9vays6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRzZWRfb2siOyB0aGVuCi0rICBhY19jdl9wcm9n X3NlZF9vaz0iJHNlZF9vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxz ZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGlu ICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRl bnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgot KyAgICBhY19jdl9wcm9nX3NlZF9vaz0ieWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK LSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwot KwotKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfc2VkX29rIiAmJiBhY19jdl9wcm9nX3NlZF9vaz0i bm8iCi0rZmkKLStmaQotK3NlZF9vaz0kYWNfY3ZfcHJvZ19zZWRfb2sKLStpZiB0ZXN0IC1uICIk c2VkX29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6ICRzZWRfb2siID4mNQotKyRhc19lY2hvICIkc2VkX29rIiA+JjY7IH0KLStlbHNl Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8i ID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStlbmFibGVfdGVzdHM9eWVz Ci0rdGVzdCAieCRkaWZmX29rIiAhPSB4eWVzICYmIGVuYWJsZV90ZXN0cz1ubwotK3Rlc3QgIngk c2VkX29rIiAhPSB4eWVzICYmIGVuYWJsZV90ZXN0cz1ubwotKyBpZiB0ZXN0ICJ4JGVuYWJsZV90 ZXN0cyIgPSB4eWVzOyB0aGVuCi0rICBSVU5fVEVTVFNfVFJVRT0KLSsgIFJVTl9URVNUU19GQUxT RT0nIycKLStlbHNlCi0rICBSVU5fVEVTVFNfVFJVRT0nIycKLSsgIFJVTl9URVNUU19GQUxTRT0K LStmaQotKwotKwotKwotKyMgQ2hlY2tzIGZvciBoZWFkZXIgZmlsZXMKLSsKLSt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVy IGZpbGVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxl cy4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfaGVhZGVyX3N0ZGMrOn0gZmFsc2U7IHRoZW4gOgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgY29uZmRlZnMuaCAt IDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNp bmNsdWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSA8c3RkYXJnLmg+Ci0rI2luY2x1ZGUgPHN0cmlu Zy5oPgotKyNpbmNsdWRlIDxmbG9hdC5oPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7 Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIk TElORU5PIjsgdGhlbiA6Ci0rICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKLStlbHNlCi0rICBhY19j dl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0 ZGMgPSB5ZXM7IHRoZW4KLSsgICMgU3VuT1MgNC54IHN0cmluZy5oIGRvZXMgbm90IGRlY2xhcmUg bWVtKiwgY29udHJhcnkgdG8gQU5TSS4KLSsgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNv bmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0cmlu Zy5oPgotKwotK19BQ0VPRgotK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAy PiY1IHwKLSsgICRFR1JFUCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgotKwotK2Vs c2UKLSsgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCi0rZmkKLStybSAtZiBjb25mdGVzdCoKLSsKLStm aQotKwotK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0rICAjIElTQyAy LjAuMiBzdGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCi0r ICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsKLStfQUNFT0YKLStpZiAoZXZh bCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Ci0rICAkRUdSRVAgImZyZWUiID4v ZGV2L251bGwgMj4mMTsgdGhlbiA6Ci0rCi0rZWxzZQotKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8K LStmaQotK3JtIC1mIGNvbmZ0ZXN0KgotKwotK2ZpCi0rCi0raWYgdGVzdCAkYWNfY3ZfaGVhZGVy X3N0ZGMgPSB5ZXM7IHRoZW4KLSsgICMgL2Jpbi9jYyBpbiBJcml4LTQuMC41IGdldHMgbm9uLUFO U0kgY3R5cGUgbWFjcm9zIHVubGVzcyB1c2luZyAtYW5zaS4KLSsgIGlmIHRlc3QgIiRjcm9zc19j b21waWxpbmciID0geWVzOyB0aGVuIDoKLSsgIDoKLStlbHNlCi0rICBjYXQgY29uZmRlZnMuaCAt IDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNp bmNsdWRlIDxjdHlwZS5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaWYgKCgnICcgJiAweDBG RikgPT0gMHgwMjApCi0rIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0g J3onKQotKyMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2En KSA6IChjKSkKLSsjZWxzZQotKyMgZGVmaW5lIElTTE9XRVIoYykgXAotKwkJICAgKCgnYScgPD0g KGMpICYmIChjKSA8PSAnaScpIFwKLSsJCSAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdy JykgXAotKwkJICAgICB8fCAoJ3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKLSsjIGRlZmluZSBU T1VQUEVSKGMpIChJU0xPV0VSKGMpID8gKChjKSB8IDB4NDApIDogKGMpKQotKyNlbmRpZgotKwot KyNkZWZpbmUgWE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCi0raW50 Ci0rbWFpbiAoKQotK3sKLSsgIGludCBpOwotKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQot KyAgICBpZiAoWE9SIChpc2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpCi0rCXx8IHRvdXBwZXIgKGkp ICE9IFRPVVBQRVIgKGkpKQotKyAgICAgIHJldHVybiAyOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfcnVuICIkTElORU5PIjsgdGhlbiA6Ci0rCi0rZWxzZQot KyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KLStmaQotK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29u ZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKLSsgIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QuYmVhbSBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSsKLStmaQot K2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh Y19jdl9oZWFkZXJfc3RkYyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJfc3RkYyIgPiY2 OyB9Ci0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsKLSskYXNfZWNo byAiI2RlZmluZSBTVERDX0hFQURFUlMgMSIgPj5jb25mZGVmcy5oCi0rCi0rZmkKLSsKLSt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGlt ZS5oIGFuZCBzeXMvdGltZS5oIG1heSBib3RoIGJlIGluY2x1ZGVkIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyIHRpbWUuaCBhbmQgc3lzL3RpbWUuaCBtYXkgYm90aCBiZSBpbmNs dWRlZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfaGVhZGVyX3RpbWUrOn0gZmFsc2U7IHRoZW4g OgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgY29uZmRlZnMu aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwot KyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSsjaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSsjaW5jbHVk ZSA8dGltZS5oPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0raWYgKChzdHJ1Y3QgdG0gKikgMCkK LStyZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9j eHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGFjX2N2X2hlYWRlcl90aW1lPXll cwotK2Vsc2UKLSsgIGFjX2N2X2hlYWRlcl90aW1lPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfaGVhZGVy X3RpbWUiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3RpbWUiID4mNjsgfQotK2lmIHRl c3QgJGFjX2N2X2hlYWRlcl90aW1lID0geWVzOyB0aGVuCi0rCi0rJGFzX2VjaG8gIiNkZWZpbmUg VElNRV9XSVRIX1NZU19USU1FIDEiID4+Y29uZmRlZnMuaAotKwotK2ZpCi0rCi0rZm9yIGFjX2hl YWRlciBpbiBjbWF0aCBcCi0rICBkZXF1ZSBcCi0rICBmc3RyZWFtIFwKLSsgIGlvbWFuaXAgXAot KyAgaW9zdHJlYW0gXAotKyAgc3N0cmVhbSBcCi0rICBsaW1pdHMgXAotKyAgbGlzdCBcCi0rICBz ZXQgXAotKyAgdmVjdG9yIFwKLSsgIG1hcCBcCi0rICBxdWV1ZSBcCi0rICBzdGRleGNlcHQgXAot KyAgc3RyaW5nCi0rZG8gOgotKyAgYXNfYWNfSGVhZGVyPWAkYXNfZWNobyAiYWNfY3ZfaGVhZGVy XyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAotK2FjX2ZuX2N4eF9jaGVja19oZWFkZXJfbW9uZ3Jl bCAiJExJTkVOTyIgIiRhY19oZWFkZXIiICIkYXNfYWNfSGVhZGVyIiAiJGFjX2luY2x1ZGVzX2Rl ZmF1bHQiCi0raWYgZXZhbCB0ZXN0IFwieFwkIiRhc19hY19IZWFkZXIiXCIgPSB4InllcyI7IHRo ZW4gOgotKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgYCRhc19lY2hvICJI QVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQotK19BQ0VPRgotKwotK2ZpCi0rCi0rZG9u ZQotKwotKwotKwotKyMgRGVmaW5lIGNvbmZpZ3VyZWQgZmlsZXMKLSthY19jb25maWdfZmlsZXM9 IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgc29jaS1jb25maWcgc29jaS5wYyBzb2NpL01ha2Vm aWxlIHNvY2kvY29yZS9NYWtlZmlsZSBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tl bmRzL01ha2VmaWxlIHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L01ha2VmaWxlIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSBzb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL29yYWNsZS9N YWtlZmlsZSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlIG1hbi9NYWtlZmlsZSBk b2MvTWFrZWZpbGUgZG9jL2JhY2tlbmRzL01ha2VmaWxlIGJ1aWxkL01ha2VmaWxlIGJ1aWxkL3Vu aXgvTWFrZWZpbGUgYnVpbGQvbXN2YzgwL01ha2VmaWxlIGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZp bGUgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIKLSsKLSsKLStjYXQgPmNvbmZjYWNoZSA8PFxf QUNFT0YKLSsjIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUgcmVz dWx0cyBvZiBjb25maWd1cmUKLSsjIHRlc3RzIHJ1biBvbiB0aGlzIHN5c3RlbSBzbyB0aGV5IGNh biBiZSBzaGFyZWQgYmV0d2VlbiBjb25maWd1cmUKLSsjIHNjcmlwdHMgYW5kIGNvbmZpZ3VyZSBy dW5zLCBzZWUgY29uZmlndXJlJ3Mgb3B0aW9uIC0tY29uZmlnLWNhY2hlLgotKyMgSXQgaXMgbm90 IHVzZWZ1bCBvbiBvdGhlciBzeXN0ZW1zLiAgSWYgaXQgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9u J3QKLSsjIHdhbnQgdG8ga2VlcCwgeW91IG1heSByZW1vdmUgb3IgZWRpdCBpdC4KLSsjCi0rIyBj b25maWcuc3RhdHVzIG9ubHkgcGF5cyBhdHRlbnRpb24gdG8gdGhlIGNhY2hlIGZpbGUgaWYgeW91 IGdpdmUgaXQKLSsjIHRoZSAtLXJlY2hlY2sgb3B0aW9uIHRvIHJlcnVuIGNvbmZpZ3VyZS4KLSsj Ci0rIyBgYWNfY3ZfZW52X2ZvbycgdmFyaWFibGVzIChzZXQgb3IgdW5zZXQpIHdpbGwgYmUgb3Zl cnJpZGRlbiB3aGVuCi0rIyBsb2FkaW5nIHRoaXMgZmlsZSwgb3RoZXIgKnVuc2V0KiBgYWNfY3Zf Zm9vJyB3aWxsIGJlIGFzc2lnbmVkIHRoZQotKyMgZm9sbG93aW5nIHZhbHVlcy4KLSsKLStfQUNF T0YKLSsKLSsjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRs ZXMgbmV3bGluZXMgaW4gdmFsdWVzLAotKyMgYnV0IHdlIGtub3cgb2Ygbm8gd29ya2Fyb3VuZCB0 aGF0IGlzIHNpbXBsZSwgcG9ydGFibGUsIGFuZCBlZmZpY2llbnQuCi0rIyBTbywgd2Uga2lsbCB2 YXJpYWJsZXMgY29udGFpbmluZyBuZXdsaW5lcy4KLSsjIFVsdHJpeCBzaCBzZXQgd3JpdGVzIHRv IHN0ZGVyciBhbmQgY2FuJ3QgYmUgcmVkaXJlY3RlZCBkaXJlY3RseSwKLSsjIGFuZCBzZXRzIHRo ZSBoaWdoIGJpdCBpbiB0aGUgY2FjaGUgZmlsZSB1bmxlc3Mgd2UgYXNzaWduIHRvIHRoZSB2YXJz LgotKygKLSsgIGZvciBhY192YXIgaW4gYChzZXQpIDI+JjEgfCBzZWQgLW4gJ3MvXlwoW2EtekEt Wl9dW2EtekEtWjAtOV9dKlwpPS4qL1wxL3AnYDsgZG8KLSsgICAgZXZhbCBhY192YWw9XCQkYWNf dmFyCi0rICAgIGNhc2UgJGFjX3ZhbCBpbiAjKAotKyAgICAqJHthc19ubH0qKQotKyAgICAgIGNh c2UgJGFjX3ZhciBpbiAjKAotKyAgICAgICpfY3ZfKikgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5z IGEgbmV3bGluZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogY2FjaGUgdmFyaWFi bGUgJGFjX3ZhciBjb250YWlucyBhIG5ld2xpbmUiID4mMjt9IDs7Ci0rICAgICAgZXNhYwotKyAg ICAgIGNhc2UgJGFjX3ZhciBpbiAjKAotKyAgICAgIF8gfCBJRlMgfCBhc19ubCkgOzsgIygKLSsg ICAgICBCQVNIX0FSR1YgfCBCQVNIX1NPVVJDRSkgZXZhbCAkYWNfdmFyPSA7OyAjKAotKyAgICAg ICopIHsgZXZhbCAkYWNfdmFyPTsgdW5zZXQgJGFjX3Zhcjt9IDs7Ci0rICAgICAgZXNhYyA7Owot KyAgICBlc2FjCi0rICBkb25lCi0rCi0rICAoc2V0KSAyPiYxIHwKLSsgICAgY2FzZSAkYXNfbmxg KGFjX3NwYWNlPScgJzsgc2V0KSAyPiYxYCBpbiAjKAotKyAgICAqJHthc19ubH1hY19zcGFjZT1c ICopCi0rICAgICAgIyBgc2V0JyBkb2VzIG5vdCBxdW90ZSBjb3JyZWN0bHksIHNvIGFkZCBxdW90 ZXM6IGRvdWJsZS1xdW90ZQotKyAgICAgICMgc3Vic3RpdHV0aW9uIHR1cm5zIFxcXFwgaW50byBc XCwgYW5kIHNlZCB0dXJucyBcXCBpbnRvIFwuCi0rICAgICAgc2VkIC1uIFwKLSsJInMvJy8nXFxc XCcnL2c7Ci0rCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwp PVxcKC4qXFwpL1xcMT0nXFwyJy9wIgotKyAgICAgIDs7ICMoCi0rICAgICopCi0rICAgICAgIyBg c2V0JyBxdW90ZXMgY29ycmVjdGx5IGFzIHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBub3QgYWRk IHF1b3Rlcy4KLSsgICAgICBzZWQgLW4gIi9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9h bG51bV0qPS9wIgotKyAgICAgIDs7Ci0rICAgIGVzYWMgfAotKyAgICBzb3J0Ci0rKSB8Ci0rICBz ZWQgJwotKyAgICAgL15hY19jdl9lbnZfL2IgZW5kCi0rICAgICB0IGNsZWFyCi0rICAgICA6Y2xl YXIKLSsgICAgIHMvXlwoW149XSpcKT1cKC4qW3t9XS4qXCkkL3Rlc3QgIiR7XDErc2V0fSIgPSBz ZXQgfHwgJi8KLSsgICAgIHQgZW5kCi0rICAgICBzL15cKFtePV0qXCk9XCguKlwpJC9cMT0ke1wx PVwyfS8KLSsgICAgIDplbmQnID4+Y29uZmNhY2hlCi0raWYgZGlmZiAiJGNhY2hlX2ZpbGUiIGNv bmZjYWNoZSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQotKyAgaWYgdGVzdCAtdyAiJGNh Y2hlX2ZpbGUiOyB0aGVuCi0rICAgIGlmIHRlc3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251 bGwiOyB0aGVuCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiB1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogdXBk YXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9Ci0rICAgICAgaWYgdGVzdCAhIC1mICIkY2Fj aGVfZmlsZSIgfHwgdGVzdCAtaCAiJGNhY2hlX2ZpbGUiOyB0aGVuCi0rCWNhdCBjb25mY2FjaGUg PiIkY2FjaGVfZmlsZSIKLSsgICAgICBlbHNlCi0rICAgICAgICBjYXNlICRjYWNoZV9maWxlIGlu ICMoCi0rICAgICAgICAqLyogfCA/OiopCi0rCSAgbXYgLWYgY29uZmNhY2hlICIkY2FjaGVfZmls ZSIkJCAmJgotKwkgIG12IC1mICIkY2FjaGVfZmlsZSIkJCAiJGNhY2hlX2ZpbGUiIDs7ICMoCi0r ICAgICAgICAqKQotKwkgIG12IC1mIGNvbmZjYWNoZSAiJGNhY2hlX2ZpbGUiIDs7Ci0rCWVzYWMK LSsgICAgICBmaQotKyAgICBmaQotKyAgZWxzZQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IG5vdCB1cGRhdGluZyB1bndyaXRhYmxlIGNhY2hlICRjYWNoZV9m aWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBub3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNo ZSAkY2FjaGVfZmlsZSIgPiY2O30KLSsgIGZpCi0rZmkKLStybSAtZiBjb25mY2FjaGUKLSsKLSt0 ZXN0ICJ4JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9JGFjX2RlZmF1bHRfcHJlZml4Ci0rIyBM ZXQgbWFrZSBleHBhbmQgZXhlY19wcmVmaXguCi0rdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9O RSAmJiBleGVjX3ByZWZpeD0nJHtwcmVmaXh9JwotKwotK0RFRlM9LURIQVZFX0NPTkZJR19ICi0r Ci0rYWNfbGlib2Jqcz0KLSthY19sdGxpYm9ianM9Ci0rVT0KLStmb3IgYWNfaSBpbiA6ICRMSUJP QkpTOyBkbyB0ZXN0ICJ4JGFjX2kiID0geDogJiYgY29udGludWUKLSsgICMgMS4gUmVtb3ZlIHRo ZSBleHRlbnNpb24sIGFuZCAkVSBpZiBhbHJlYWR5IGluc3RhbGxlZC4KLSsgIGFjX3NjcmlwdD0n cy9cJFVcLi8uLztzL1wubyQvLztzL1wub2JqJC8vJwotKyAgYWNfaT1gJGFzX2VjaG8gIiRhY19p IiB8IHNlZCAiJGFjX3NjcmlwdCJgCi0rICAjIDIuIFByZXBlbmQgTElCT0JKRElSLiAgV2hlbiB1 c2VkIHdpdGggYXV0b21ha2U+PTEuMTAgTElCT0JKRElSCi0rICAjICAgIHdpbGwgYmUgc2V0IHRv IHRoZSBkaXJlY3Rvcnkgd2hlcmUgTElCT0JKUyBvYmplY3RzIGFyZSBidWlsdC4KLSsgIGFzX2Zu X2FwcGVuZCBhY19saWJvYmpzICIgXCR7TElCT0JKRElSfSRhY19pXCRVLiRhY19vYmpleHQiCi0r ICBhc19mbl9hcHBlbmQgYWNfbHRsaWJvYmpzICIgXCR7TElCT0JKRElSfSRhY19pIickVS5sbycK LStkb25lCi0rTElCT0JKUz0kYWNfbGlib2JqcwotKwotK0xUTElCT0JKUz0kYWNfbHRsaWJvYmpz Ci0rCi0rCi0rIGlmIHRlc3QgLW4gIiRFWEVFWFQiOyB0aGVuCi0rICBhbV9fRVhFRVhUX1RSVUU9 Ci0rICBhbV9fRVhFRVhUX0ZBTFNFPScjJwotK2Vsc2UKLSsgIGFtX19FWEVFWFRfVFJVRT0nIycK LSsgIGFtX19FWEVFWFRfRkFMU0U9Ci0rZmkKLSsKLStpZiB0ZXN0IC16ICIke0hBVkVfQ1BQVU5J VF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX0NQUFVOSVRfRkFMU0V9IjsgdGhlbgotKyAgYXNf Zm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSEFWRV9DUFBVTklUXCIgd2FzIG5ldmVyIGRlZmlu ZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp dGlvbmFsbHkuIiAiJExJTkVOTyIgNQotK2ZpCi0raWYgdGVzdCAteiAiJHtBTURFUF9UUlVFfSIg JiYgdGVzdCAteiAiJHtBTURFUF9GQUxTRX0iOyB0aGVuCi0rICBhc19mbl9lcnJvciAkPyAiY29u ZGl0aW9uYWwgXCJBTURFUFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFu cyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUK LStmaQotK2lmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfVFJVRX0iICYmIHRlc3QgLXogIiR7 YW1fX2Zhc3RkZXBDWFhfRkFMU0V9IjsgdGhlbgotKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlv bmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5P IiA1Ci0rZmkKLStpZiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NfVFJVRX0iICYmIHRlc3QgLXog IiR7YW1fX2Zhc3RkZXBDQ19GQUxTRX0iOyB0aGVuCi0rICBhc19mbl9lcnJvciAkPyAiY29uZGl0 aW9uYWwgXCJhbV9fZmFzdGRlcENDXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlz IG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVO TyIgNQotK2ZpCi0raWYgdGVzdCAteiAiJHtTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUV9IiAmJiB0 ZXN0IC16ICIke1NPQ0lfSEVBREVSU19CVVJJRURfRkFMU0V9IjsgdGhlbgotKyAgYXNfZm5fZXJy b3IgJD8gImNvbmRpdGlvbmFsIFwiU09DSV9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZp bmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25k aXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKLStmaQotK2lmIHRlc3QgLXogIiR7U09DSV9NWVNRTF9I RUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEX0ZBTFNFfSI7IHRoZW4KLSsgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIlNPQ0lf TVlTUUxfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5P IiA1Ci0rZmkKLStpZiB0ZXN0IC16ICIke1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9U UlVFfSIgJiYgdGVzdCAteiAiJHtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfRkFMU0V9 IjsgdGhlbgotKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5z IHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQot K2ZpCi0raWYgdGVzdCAteiAiJHtIQVZFX01ZU1FMX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hBVkVf TVlTUUxfRkFMU0V9IjsgdGhlbgotKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSEFW RV9NWVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFj cm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKLStmaQotK2lm IHRlc3QgLXogIiR7SEFWRV9PUkFDTEVfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9PUkFDTEVf RkFMU0V9IjsgdGhlbgotKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSEFWRV9PUkFD TEVcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1Ci0rZmkKLStpZiB0ZXN0 IC16ICIke0hBVkVfUE9TVEdSRVNRTF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX1BPU1RHUkVT UUxfRkFMU0V9IjsgdGhlbgotKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSEFWRV9Q T1NUR1JFU1FMXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBt YWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQotK2ZpCi0r aWYgdGVzdCAteiAiJHtJTkZPX0RPQ19UUlVFfSIgJiYgdGVzdCAteiAiJHtJTkZPX0RPQ19GQUxT RX0iOyB0aGVuCi0rICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJJTkZPX0RPQ1wiIHdh cyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkg aW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKLStmaQotK2lmIHRlc3QgLXogIiR7 SFRNTF9ET0NfVFJVRX0iICYmIHRlc3QgLXogIiR7SFRNTF9ET0NfRkFMU0V9IjsgdGhlbgotKyAg YXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSFRNTF9ET0NcIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS4iICIkTElORU5PIiA1Ci0rZmkKLStpZiB0ZXN0IC16ICIke1JVTl9URVNUU19UUlVF fSIgJiYgdGVzdCAteiAiJHtSVU5fVEVTVFNfRkFMU0V9IjsgdGhlbgotKyAgYXNfZm5fZXJyb3Ig JD8gImNvbmRpdGlvbmFsIFwiUlVOX1RFU1RTXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxs eSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAi JExJTkVOTyIgNQotK2ZpCi0rCi0rOiAiJHtDT05GSUdfU1RBVFVTPS4vY29uZmlnLnN0YXR1c30i Ci0rYWNfd3JpdGVfZmFpbD0wCi0rYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMK LSthY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzICRDT05GSUdfU1RBVFVTIgotK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY3JlYXRpbmcgJENPTkZJR19TVEFU VVMiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjY7 fQotK2FzX3dyaXRlX2ZhaWw9MAotK2NhdCA+JENPTkZJR19TVEFUVVMgPDxfQVNFT0YgfHwgYXNf d3JpdGVfZmFpbD0xCi0rIyEgJFNIRUxMCi0rIyBHZW5lcmF0ZWQgYnkgJGFzX21lLgotKyMgUnVu IHRoaXMgZmlsZSB0byByZWNyZWF0ZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLgotKyMgQ29t cGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcK LSsjIGNvbmZpZ3VyZSwgaXMgaW4gY29uZmlnLmxvZyBpZiBpdCBleGlzdHMuCi0rCi0rZGVidWc9 ZmFsc2UKLSthY19jc19yZWNoZWNrPWZhbHNlCi0rYWNfY3Nfc2lsZW50PWZhbHNlCi0rCi0rU0hF TEw9XCR7Q09ORklHX1NIRUxMLSRTSEVMTH0KLStleHBvcnQgU0hFTEwKLStfQVNFT0YKLStjYXQg Pj4kQ09ORklHX1NUQVRVUyA8PFxfQVNFT0YgfHwgYXNfd3JpdGVfZmFpbD0xCi0rIyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBNNHNoIEluaXRpYWxpemF0aW9uLiAjIwotKyMjIC0tLS0t LS0tLS0tLS0tLS0tLS0tICMjCi0rCi0rIyBCZSBtb3JlIEJvdXJuZSBjb21wYXRpYmxlCi0rRFVB TENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAotK2lmIHRlc3QgLW4gIiR7WlNI X1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6Ci0r ICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2gg ZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0 byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICckezErIiRA In0nPSciJEAiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStlbHNlCi0rICBjYXNlIGAoc2V0 IC1vKSAyPi9kZXYvbnVsbGAgaW4gIygKLSsgICpwb3NpeCopIDoKLSsgICAgc2V0IC1vIHBvc2l4 IDs7ICMoCi0rICAqKSA6Ci0rICAgICA7OwotK2VzYWMKLStmaQotKwotKwotK2FzX25sPScKLSsn Ci0rZXhwb3J0IGFzX25sCi0rIyBQcmludGluZyBhIGxvbmcgc3RyaW5nIGNyYXNoZXMgU29sYXJp cyA3IC91c3IvYmluL3ByaW50Zi4KLSthc19lY2hvPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcJwotK2FzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hv JGFzX2VjaG8kYXNfZWNobwotK2FzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2Vj aG8kYXNfZWNobyRhc19lY2hvCi0rIyBQcmVmZXIgYSBrc2ggc2hlbGwgYnVpbHRpbiBvdmVyIGFu IGV4dGVybmFsIHByaW50ZiBwcm9ncmFtIG9uIFNvbGFyaXMsCi0rIyBidXQgd2l0aG91dCB3YXN0 aW5nIGZvcmtzIGZvciBiYXNoIG9yIHpzaC4KLStpZiB0ZXN0IC16ICIkQkFTSF9WRVJTSU9OJFpT SF9WRVJTSU9OIiBcCi0rICAgICYmICh0ZXN0ICJYYHByaW50IC1yIC0tICRhc19lY2hvYCIgPSAi WCRhc19lY2hvIikgMj4vZGV2L251bGw7IHRoZW4KLSsgIGFzX2VjaG89J3ByaW50IC1yIC0tJwot KyAgYXNfZWNob19uPSdwcmludCAtcm4gLS0nCi0rZWxpZiAodGVzdCAiWGBwcmludGYgJXMgJGFz X2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgYXNfZWNobz0ncHJp bnRmICVzXG4nCi0rICBhc19lY2hvX249J3ByaW50ZiAlcycKLStlbHNlCi0rICBpZiB0ZXN0ICJY YCgvdXNyL3VjYi9lY2hvIC1uIC1uICRhc19lY2hvKSAyPi9kZXYvbnVsbGAiID0gIlgtbiAkYXNf ZWNobyI7IHRoZW4KLSsgICAgYXNfZWNob19ib2R5PSdldmFsIC91c3IvdWNiL2VjaG8gLW4gIiQx JGFzX25sIicKLSsgICAgYXNfZWNob19uPScvdXNyL3VjYi9lY2hvIC1uJwotKyAgZWxzZQotKyAg ICBhc19lY2hvX2JvZHk9J2V2YWwgZXhwciAiWCQxIiA6ICJYXFwoLipcXCkiJwotKyAgICBhc19l Y2hvX25fYm9keT0nZXZhbAotKyAgICAgIGFyZz0kMTsKLSsgICAgICBjYXNlICRhcmcgaW4gIygK LSsgICAgICAqIiRhc19ubCIqKQotKwlleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpJGFzX25sIjsK LSsJYXJnPWBleHByICJYJGFyZyIgOiAiLiokYXNfbmxcXCguKlxcKSJgOzsKLSsgICAgICBlc2Fj OwotKyAgICAgIGV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRhc19ubCIKLSsg ICAgJwotKyAgICBleHBvcnQgYXNfZWNob19uX2JvZHkKLSsgICAgYXNfZWNob19uPSdzaCAtYyAk YXNfZWNob19uX2JvZHkgYXNfZWNobycKLSsgIGZpCi0rICBleHBvcnQgYXNfZWNob19ib2R5Ci0r ICBhc19lY2hvPSdzaCAtYyAkYXNfZWNob19ib2R5IGFzX2VjaG8nCi0rZmkKLSsKLSsjIFRoZSB1 c2VyIGlzIGFsd2F5cyByaWdodC4KLStpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9 IHNldDsgdGhlbgotKyAgUEFUSF9TRVBBUkFUT1I9OgotKyAgKFBBVEg9Jy9iaW47L2Jpbic7IEZQ QVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgJiYgewotKyAgICAoUEFUSD0nL2Jp bjovYmluJzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSB8fAotKyAgICAg IFBBVEhfU0VQQVJBVE9SPSc7JwotKyAgfQotK2ZpCi0rCi0rCi0rIyBJRlMKLSsjIFdlIG5lZWQg c3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLiAgUXVvdGlu ZyBpcwotKyMgdGhlcmUgdG8gcHJldmVudCBlZGl0b3JzIGZyb20gY29tcGxhaW5pbmcgYWJvdXQg c3BhY2UtdGFiLgotKyMgKElmIF9BU19QQVRIX1dBTEsgd2VyZSBjYWxsZWQgd2l0aCBJRlMgdW5z ZXQsIGl0IHdvdWxkIGRpc2FibGUgd29yZAotKyMgc3BsaXR0aW5nIGJ5IHNldHRpbmcgSUZTIHRv IGVtcHR5IHZhbHVlLikKLStJRlM9IiAiIgkkYXNfbmwiCi0rCi0rIyBGaW5kIHdobyB3ZSBhcmUu ICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gZGlyZWN0b3J5IHNlcGFyYXRvci4K LSthc19teXNlbGY9Ci0rY2FzZSAkMCBpbiAjKCgKLSsgICpbXFwvXSogKSBhc19teXNlbGY9JDAg OzsKLSsgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICAgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0k YXNfZGlyLyQwICYmIGJyZWFrCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgICAg OzsKLStlc2FjCi0rIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdl IHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJwotKyMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRv IGJlIGZvdW5kIGluIHRoZSBwYXRoLgotK2lmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4K LSsgIGFzX215c2VsZj0kMAotK2ZpCi0raWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgot KyAgJGFzX2VjaG8gIiRhc19teXNlbGY6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVu IHdpdGggYW4gYWJzb2x1dGUgZmlsZSBuYW1lIiA+JjIKLSsgIGV4aXQgMQotK2ZpCi0rCi0rIyBV bnNldCB2YXJpYWJsZXMgdGhhdCB3ZSBkbyBub3QgbmVlZCBhbmQgd2hpY2ggY2F1c2UgYnVncyAo ZS5nLiBpbgotKyMgcHJlLTMuMCBVV0lOIGtzaCkuICBCdXQgZG8gbm90IGNhdXNlIGJ1Z3MgaW4g YmFzaCAyLjAxOyB0aGUgInx8IGV4aXQgMSIKLSsjIHN1cHByZXNzZXMgYW55ICJTZWdtZW50YXRp b24gZmF1bHQiIG1lc3NhZ2UgdGhlcmUuICAnKCgnIGNvdWxkCi0rIyB0cmlnZ2VyIGEgYnVnIGlu IHBka3NoIDUuMi4xNC4KLStmb3IgYXNfdmFyIGluIEJBU0hfRU5WIEVOViBNQUlMIE1BSUxQQVRI Ci0rZG8gZXZhbCB0ZXN0IHhcJHskYXNfdmFyK3NldH0gPSB4c2V0IFwKLSsgICYmICggKHVuc2V0 ICRhc192YXIpIHx8IGV4aXQgMSkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0ICRhc192YXIgfHwg OgotK2RvbmUKLStQUzE9JyQgJwotK1BTMj0nPiAnCi0rUFM0PScrICcKLSsKLSsjIE5MUyBudWlz YW5jZXMuCi0rTENfQUxMPUMKLStleHBvcnQgTENfQUxMCi0rTEFOR1VBR0U9QwotK2V4cG9ydCBM QU5HVUFHRQotKwotKyMgQ0RQQVRILgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAm JiB1bnNldCBDRFBBVEgKLSsKLSsKLSsjIGFzX2ZuX2Vycm9yIFNUQVRVUyBFUlJPUiBbTElORU5P IExPR19GRF0KLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsj IE91dHB1dCAiYGJhc2VuYW1lICQwYDogZXJyb3I6IEVSUk9SIiB0byBzdGRlcnIuIElmIExJTkVO TyBhbmQgTE9HX0ZEIGFyZQotKyMgcHJvdmlkZWQsIGFsc28gb3V0cHV0IHRoZSBlcnJvciB0byBM T0dfRkQsIHJlZmVyZW5jaW5nIExJTkVOTy4gVGhlbiBleGl0IHRoZQotKyMgc2NyaXB0IHdpdGgg U1RBVFVTLCB1c2luZyAxIGlmIHRoYXQgd2FzIDAuCi0rYXNfZm5fZXJyb3IgKCkKLSt7Ci0rICBh c19zdGF0dXM9JDE7IHRlc3QgJGFzX3N0YXR1cyAtZXEgMCAmJiBhc19zdGF0dXM9MQotKyAgaWYg dGVzdCAiJDQiOyB0aGVuCi0rICAgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDMifSBhc19saW5l bm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKLSsgICAgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6ICQyIiA+JiQ0Ci0rICBmaQotKyAg JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6ICQyIiA+JjIKLSsgIGFzX2ZuX2V4aXQgJGFzX3N0YXR1 cwotK30gIyBhc19mbl9lcnJvcgotKwotKwotKyMgYXNfZm5fc2V0X3N0YXR1cyBTVEFUVVMKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTZXQgJD8gdG8gU1RBVFVTLCB3aXRob3V0IGZv cmtpbmcuCi0rYXNfZm5fc2V0X3N0YXR1cyAoKQotK3sKLSsgIHJldHVybiAkMQotK30gIyBhc19m bl9zZXRfc3RhdHVzCi0rCi0rIyBhc19mbl9leGl0IFNUQVRVUwotKyMgLS0tLS0tLS0tLS0tLS0t LS0KLSsjIEV4aXQgdGhlIHNoZWxsIHdpdGggU1RBVFVTLCBldmVuIGluIGEgInRyYXAgMCIgb3Ig InNldCAtZSIgY29udGV4dC4KLSthc19mbl9leGl0ICgpCi0rewotKyAgc2V0ICtlCi0rICBhc19m bl9zZXRfc3RhdHVzICQxCi0rICBleGl0ICQxCi0rfSAjIGFzX2ZuX2V4aXQKLSsKLSsjIGFzX2Zu X3Vuc2V0IFZBUgotKyMgLS0tLS0tLS0tLS0tLS0tCi0rIyBQb3J0YWJseSB1bnNldCBWQVIuCi0r YXNfZm5fdW5zZXQgKCkKLSt7Ci0rICB7IGV2YWwgJDE9OyB1bnNldCAkMTt9Ci0rfQotK2FzX3Vu c2V0PWFzX2ZuX3Vuc2V0Ci0rIyBhc19mbl9hcHBlbmQgVkFSIFZBTFVFCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rIyBBcHBlbmQgdGhlIHRleHQgaW4gVkFMVUUgdG8gdGhlIGVuZCBvZiB0 aGUgZGVmaW5pdGlvbiBjb250YWluZWQgaW4gVkFSLiBUYWtlCi0rIyBhZHZhbnRhZ2Ugb2YgYW55 IHNoZWxsIG9wdGltaXphdGlvbnMgdGhhdCBhbGxvdyBhbW9ydGl6ZWQgbGluZWFyIGdyb3d0aCBv dmVyCi0rIyByZXBlYXRlZCBhcHBlbmRzLCBpbnN0ZWFkIG9mIHRoZSB0eXBpY2FsIHF1YWRyYXRp YyBncm93dGggcHJlc2VudCBpbiBuYWl2ZQotKyMgaW1wbGVtZW50YXRpb25zLgotK2lmIChldmFs ICJhc192YXI9MTsgYXNfdmFyKz0yOyB0ZXN0IHhcJGFzX3ZhciA9IHgxMiIpIDI+L2Rldi9udWxs OyB0aGVuIDoKLSsgIGV2YWwgJ2FzX2ZuX2FwcGVuZCAoKQotKyAgewotKyAgICBldmFsICQxKz1c JDIKLSsgIH0nCi0rZWxzZQotKyAgYXNfZm5fYXBwZW5kICgpCi0rICB7Ci0rICAgIGV2YWwgJDE9 XCQkMVwkMgotKyAgfQotK2ZpICMgYXNfZm5fYXBwZW5kCi0rCi0rIyBhc19mbl9hcml0aCBBUkcu Li4KLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUGVyZm9ybSBhcml0aG1ldGljIGV2YWx1YXRp b24gb24gdGhlIEFSR3MsIGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluIHRoZQotKyMgZ2xvYmFsICRh c192YWwuIFRha2UgYWR2YW50YWdlIG9mIHNoZWxscyB0aGF0IGNhbiBhdm9pZCBmb3Jrcy4gVGhl IGFyZ3VtZW50cwotKyMgbXVzdCBiZSBwb3J0YWJsZSBhY3Jvc3MgJCgoKSkgYW5kIGV4cHIuCi0r aWYgKGV2YWwgInRlc3QgXCQoKCAxICsgMSApKSA9IDIiKSAyPi9kZXYvbnVsbDsgdGhlbiA6Ci0r ICBldmFsICdhc19mbl9hcml0aCAoKQotKyAgewotKyAgICBhc192YWw9JCgoICQqICkpCi0rICB9 JwotK2Vsc2UKLSsgIGFzX2ZuX2FyaXRoICgpCi0rICB7Ci0rICAgIGFzX3ZhbD1gZXhwciAiJEAi IHx8IHRlc3QgJD8gLWVxIDFgCi0rICB9Ci0rZmkgIyBhc19mbl9hcml0aAotKwotKwotK2lmIGV4 cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYmCi0rICAgdGVzdCAiWGBleHByIDAwMDAx IDogJy4qXCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KLSsgIGFzX2V4cHI9ZXhwcgotK2Vsc2UKLSsg IGFzX2V4cHI9ZmFsc2UKLStmaQotKwotK2lmIChiYXNlbmFtZSAtLSAvKSA+L2Rldi9udWxsIDI+ JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAtLSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KLSsgIGFzX2Jh c2VuYW1lPWJhc2VuYW1lCi0rZWxzZQotKyAgYXNfYmFzZW5hbWU9ZmFsc2UKLStmaQotKwotK2lm IChhc19kaXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0gWC8pID4vZGV2L251 bGwgMj4mMTsgdGhlbgotKyAgYXNfZGlybmFtZT1kaXJuYW1lCi0rZWxzZQotKyAgYXNfZGlybmFt ZT1mYWxzZQotK2ZpCi0rCi0rYXNfbWU9YCRhc19iYXNlbmFtZSAtLSAiJDAiIHx8Ci0rJGFzX2V4 cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKLSsJIFgiJDAiIDogJ1hcKC8v XCkkJyBcfCBcCi0rCSBYIiQwIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNf ZWNobyBYLyIkMCIgfAotKyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sKLSsJICAg IHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcL1woXC9cL1wpJC97Ci0rCSAgICBzLy9c MS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXC9cKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJ ICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rCi0rIyBBdm9pZCBkZXBlbmRpbmcgdXBv biBDaGFyYWN0ZXIgUmFuZ2VzLgotK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0 dXZ3eHl6JwotK2FzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotK2Fz X2NyX0xldHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUwotK2FzX2NyX2RpZ2l0cz0n MDEyMzQ1Njc4OScKLSthc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLSsK LStFQ0hPX0M9IEVDSE9fTj0gRUNIT19UPQotK2Nhc2UgYGVjaG8gLW4geGAgaW4gIygoKCgoCi0r LW4qKQotKyAgY2FzZSBgZWNobyAneHlcYydgIGluCi0rICAqYyopIEVDSE9fVD0nCSc7OwkjIEVD SE9fVCBpcyBzaW5nbGUgdGFiIGNoYXJhY3Rlci4KLSsgIHh5KSAgRUNIT19DPSdcYyc7OwotKyAg KikgICBlY2hvIGBlY2hvIGtzaDg4IGJ1ZyBvbiBBSVggNi4xYCA+IC9kZXYvbnVsbAotKyAgICAg ICBFQ0hPX1Q9JwknOzsKLSsgIGVzYWM7OwotKyopCi0rICBFQ0hPX049Jy1uJzs7Ci0rZXNhYwot KwotK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0raWYgdGVzdCAtZCBjb25m JCQuZGlyOyB0aGVuCi0rICBybSAtZiBjb25mJCQuZGlyL2NvbmYkJC5maWxlCi0rZWxzZQotKyAg cm0gLWYgY29uZiQkLmRpcgotKyAgbWtkaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotK2ZpCi0r aWYgKGVjaG8gPmNvbmYkJC5maWxlKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgaWYgbG4gLXMgY29u ZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCi0rICAgIGFzX2xuX3M9J2xuIC1zJwot KyAgICAjIC4uLiBidXQgdGhlcmUgYXJlIHR3byBnb3RjaGFzOgotKyAgICAjIDEpIE9uIE1TWVMs IGJvdGggYGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgotKyAgICAjIDIp IERKR1BQIDwgMi4wNCBoYXMgbm8gc3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBwZXIg ZXhlY3V0YWJsZS4KLSsgICAgIyBJbiBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQgdG8g YGNwIC1wJy4KLSsgICAgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVsbCAm JiB0ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAotKyAgICAgIGFzX2xuX3M9J2NwIC1wJwotKyAgZWxp ZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgYXNfbG5fcz1s bgotKyAgZWxzZQotKyAgICBhc19sbl9zPSdjcCAtcCcKLSsgIGZpCi0rZWxzZQotKyAgYXNfbG5f cz0nY3AgLXAnCi0rZmkKLStybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZGlyL2NvbmYk JC5maWxlIGNvbmYkJC5maWxlCi0rcm1kaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotKwotKwot KyMgYXNfZm5fbWtkaXJfcAotKyMgLS0tLS0tLS0tLS0tLQotKyMgQ3JlYXRlICIkYXNfZGlyIiBh cyBhIGRpcmVjdG9yeSwgaW5jbHVkaW5nIHBhcmVudHMgaWYgbmVjZXNzYXJ5LgotK2FzX2ZuX21r ZGlyX3AgKCkKLSt7Ci0rCi0rICBjYXNlICRhc19kaXIgaW4gIygKLSsgIC0qKSBhc19kaXI9Li8k YXNfZGlyOzsKLSsgIGVzYWMKLSsgIHRlc3QgLWQgIiRhc19kaXIiIHx8IGV2YWwgJGFzX21rZGly X3AgfHwgewotKyAgICBhc19kaXJzPQotKyAgICB3aGlsZSA6OyBkbwotKyAgICAgIGNhc2UgJGFz X2RpciBpbiAjKAotKyAgICAgICpcJyopIGFzX3FkaXI9YCRhc19lY2hvICIkYXNfZGlyIiB8IHNl ZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7ICMnKAotKyAgICAgICopIGFzX3FkaXI9JGFzX2Rpcjs7 Ci0rICAgICAgZXNhYwotKyAgICAgIGFzX2RpcnM9IickYXNfcWRpcicgJGFzX2RpcnMiCi0rICAg ICAgYXNfZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFzX2RpciIgfHwKLSskYXNfZXhwciBYIiRhc19k aXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0rCSBYIiRhc19kaXIiIDog J1hcKC8vXClbXi9dJyBcfCBcCi0rCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBY IiRhc19kaXIiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJGFz X2RpciIgfAotKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewotKwkg ICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAg IHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEv Ci0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAg cQotKwkgIH0KLSsJICBzLy4qLy4vOyBxJ2AKLSsgICAgICB0ZXN0IC1kICIkYXNfZGlyIiAmJiBi cmVhawotKyAgICBkb25lCi0rICAgIHRlc3QgLXogIiRhc19kaXJzIiB8fCBldmFsICJta2RpciAk YXNfZGlycyIKLSsgIH0gfHwgdGVzdCAtZCAiJGFzX2RpciIgfHwgYXNfZm5fZXJyb3IgJD8gImNh bm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRhc19kaXIiCi0rCi0rCi0rfSAjIGFzX2ZuX21rZGlyX3AK LStpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVuCi0rICBhc19ta2Rpcl9wPSdta2RpciAt cCAiJGFzX2RpciInCi0rZWxzZQotKyAgdGVzdCAtZCAuLy1wICYmIHJtZGlyIC4vLXAKLSsgIGFz X21rZGlyX3A9ZmFsc2UKLStmaQotKwotK2lmIHRlc3QgLXggLyA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KLSsgIGFzX3Rlc3RfeD0ndGVzdCAteCcKLStlbHNlCi0rICBpZiBscyAtZEwgLyA+L2Rldi9u dWxsIDI+JjE7IHRoZW4KLSsgICAgYXNfbHNfTF9vcHRpb249TAotKyAgZWxzZQotKyAgICBhc19s c19MX29wdGlvbj0KLSsgIGZpCi0rICBhc190ZXN0X3g9JwotKyAgICBldmFsIHNoIC1jICdcJycK LSsgICAgICBpZiB0ZXN0IC1kICIkMSI7IHRoZW4KLSsJdGVzdCAtZCAiJDEvLiI7Ci0rICAgICAg ZWxzZQotKwljYXNlICQxIGluICMoCi0rCS0qKXNldCAiLi8kMSI7OwotKwllc2FjOwotKwljYXNl IGBscyAtbGQnJGFzX2xzX0xfb3B0aW9uJyAiJDEiIDI+L2Rldi9udWxsYCBpbiAjKCgKLSsJPz8/ W3N4XSopOjs7KilmYWxzZTs7ZXNhYztmaQotKyAgICAnXCcnIHNoCi0rICAnCi0rZmkKLSthc19l eGVjdXRhYmxlX3A9JGFzX3Rlc3RfeAotKwotKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3Ry aW5nIG9udG8gYSB2YWxpZCBDUFAgbmFtZS4KLSthc190cl9jcHA9ImV2YWwgc2VkICd5JSokYXNf Y3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotKwot KyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCB2YXJpYWJsZSBu YW1lLgotK2FzX3RyX3NoPSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8l ZyciCi0rCi0rCi0rZXhlYyA2PiYxCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gIyMKLSsjIyBNYWluIGJvZHkgb2YgJENPTkZJR19TVEFUVVMgc2NyaXB0LiAjIwotKyMj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rX0FTRU9GCi0rdGVzdCAk YXNfd3JpdGVfZmFpbCA9IDAgJiYgY2htb2QgK3ggJENPTkZJR19TVEFUVVMgfHwgYWNfd3JpdGVf ZmFpbD0xCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2Zh aWw9MQotKyMgU2F2ZSB0aGUgbG9nIG1lc3NhZ2UsIHRvIGtlZXAgJDAgYW5kIHNvIG9uIG1lYW5p bmdmdWwsIGFuZCB0bwotKyMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJ TEVTIGV0Yy4gaW5zdGVhZCBvZiB0aGVpcgotKyMgdmFsdWVzIGFmdGVyIG9wdGlvbnMgaGFuZGxp bmcuCi0rYWNfbG9nPSIKLStUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFNPQ0kgJGFzX21lIDMu MC4wLCB3aGljaCB3YXMKLStnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjguICBJbnZvY2F0 aW9uIGNvbW1hbmQgbGluZSB3YXMKLSsKLSsgIENPTkZJR19GSUxFUyAgICA9ICRDT05GSUdfRklM RVMKLSsgIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUwotKyAgQ09ORklHX0xJTktT ICAgID0gJENPTkZJR19MSU5LUwotKyAgQ09ORklHX0NPTU1BTkRTID0gJENPTkZJR19DT01NQU5E UwotKyAgJCAkMCAkQAotKwotK29uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxs IHwgc2VkIDFxYAotKyIKLSsKLStfQUNFT0YKLSsKLStjYXNlICRhY19jb25maWdfZmlsZXMgaW4g KiIKLSsiKikgc2V0IHggJGFjX2NvbmZpZ19maWxlczsgc2hpZnQ7IGFjX2NvbmZpZ19maWxlcz0k Kjs7Ci0rZXNhYwotKwotK2Nhc2UgJGFjX2NvbmZpZ19oZWFkZXJzIGluICoiCi0rIiopIHNldCB4 ICRhY19jb25maWdfaGVhZGVyczsgc2hpZnQ7IGFjX2NvbmZpZ19oZWFkZXJzPSQqOzsKLStlc2Fj Ci0rCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0x Ci0rIyBGaWxlcyB0aGF0IGNvbmZpZy5zdGF0dXMgd2FzIG1hZGUgZm9yLgotK2NvbmZpZ19maWxl cz0iJGFjX2NvbmZpZ19maWxlcyIKLStjb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJz IgotK2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyIKLSsKLStfQUNFT0YKLSsK LStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rYWNf Y3NfdXNhZ2U9IlwKLStcYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGFuZCBvdGhlciBjb25m aWd1cmF0aW9uIGFjdGlvbnMKLStmcm9tIHRlbXBsYXRlcyBhY2NvcmRpbmcgdG8gdGhlIGN1cnJl bnQgY29uZmlndXJhdGlvbi4gIFVubGVzcyB0aGUgZmlsZXMKLSthbmQgYWN0aW9ucyBhcmUgc3Bl Y2lmaWVkIGFzIFRBR3MsIGFsbCBhcmUgaW5zdGFudGlhdGVkIGJ5IGRlZmF1bHQuCi0rCi0rVXNh Z2U6ICQwIFtPUFRJT05dLi4uIFtUQUddLi4uCi0rCi0rICAtaCwgLS1oZWxwICAgICAgIHByaW50 IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0rICAtViwgLS12ZXJzaW9uICAgIHByaW50IHZlcnNpb24g bnVtYmVyIGFuZCBjb25maWd1cmF0aW9uIHNldHRpbmdzLCB0aGVuIGV4aXQKLSsgICAgICAtLWNv bmZpZyAgICAgcHJpbnQgY29uZmlndXJhdGlvbiwgdGhlbiBleGl0Ci0rICAtcSwgLS1xdWlldCwg LS1zaWxlbnQKLSsgICAgICAgICAgICAgICAgICAgZG8gbm90IHByaW50IHByb2dyZXNzIG1lc3Nh Z2VzCi0rICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKLSsg ICAgICAtLXJlY2hlY2sgICAgdXBkYXRlICRhc19tZSBieSByZWNvbmZpZ3VyaW5nIGluIHRoZSBz YW1lIGNvbmRpdGlvbnMKLSsgICAgICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCi0rICAgICAgICAg ICAgICAgICAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQotKyAgICAg IC0taGVhZGVyPUZJTEVbOlRFTVBMQVRFXQotKyAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0 ZSB0aGUgY29uZmlndXJhdGlvbiBoZWFkZXIgRklMRQotKwotK0NvbmZpZ3VyYXRpb24gZmlsZXM6 Ci0rJGNvbmZpZ19maWxlcwotKwotK0NvbmZpZ3VyYXRpb24gaGVhZGVyczoKLSskY29uZmlnX2hl YWRlcnMKLSsKLStDb25maWd1cmF0aW9uIGNvbW1hbmRzOgotKyRjb25maWdfY29tbWFuZHMKLSsK LStSZXBvcnQgYnVncyB0byA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0Pi4iCi0rCi0r X0FDRU9GCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0x Ci0rYWNfY3NfY29uZmlnPSJgJGFzX2VjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3Mv XiAvLzsgcy9bXFwiIlxgXCRdL1xcXFwmL2cnYCIKLSthY19jc192ZXJzaW9uPSJcXAotK1NPQ0kg Y29uZmlnLnN0YXR1cyAzLjAuMAotK2NvbmZpZ3VyZWQgYnkgJDAsIGdlbmVyYXRlZCBieSBHTlUg QXV0b2NvbmYgMi42OCwKLSsgIHdpdGggb3B0aW9ucyBcXCJcJGFjX2NzX2NvbmZpZ1xcIgotKwot K0NvcHlyaWdodCAoQykgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLStUaGlz IGNvbmZpZy5zdGF0dXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KLStnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmli dXRlIGFuZCBtb2RpZnkgaXQuIgotKwotK2FjX3B3ZD0nJGFjX3B3ZCcKLStzcmNkaXI9JyRzcmNk aXInCi0rSU5TVEFMTD0nJElOU1RBTEwnCi0rTUtESVJfUD0nJE1LRElSX1AnCi0rQVdLPSckQVdL JwotK3Rlc3QgLW4gIlwkQVdLIiB8fCBBV0s9YXdrCi0rX0FDRU9GCi0rCi0rY2F0ID4+JENPTkZJ R19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyMgVGhlIGRlZmF1bHQgbGlz dHMgYXBwbHkgaWYgdGhlIHVzZXIgZG9lcyBub3Qgc3BlY2lmeSBhbnkgZmlsZS4KLSthY19uZWVk X2RlZmF1bHRzPToKLSt3aGlsZSB0ZXN0ICQjICE9IDAKLStkbwotKyAgY2FzZSAkMSBpbgotKyAg LS0qPT8qKQotKyAgICBhY19vcHRpb249YGV4cHIgIlgkMSIgOiAnWFwoW149XSpcKT0nYAotKyAg ICBhY19vcHRhcmc9YGV4cHIgIlgkMSIgOiAnWFtePV0qPVwoLipcKSdgCi0rICAgIGFjX3NoaWZ0 PToKLSsgICAgOzsKLSsgIC0tKj0pCi0rICAgIGFjX29wdGlvbj1gZXhwciAiWCQxIiA6ICdYXChb Xj1dKlwpPSdgCi0rICAgIGFjX29wdGFyZz0KLSsgICAgYWNfc2hpZnQ9OgotKyAgICA7OwotKyAg KikKLSsgICAgYWNfb3B0aW9uPSQxCi0rICAgIGFjX29wdGFyZz0kMgotKyAgICBhY19zaGlmdD1z aGlmdAotKyAgICA7OwotKyAgZXNhYwotKwotKyAgY2FzZSAkYWNfb3B0aW9uIGluCi0rICAjIEhh bmRsaW5nIG9mIHRoZSBvcHRpb25zLgotKyAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hl YyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIpCi0rICAgIGFjX2NzX3Jl Y2hlY2s9OiA7OwotKyAgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwg LS12ZXIgfCAtLXZlIHwgLS12IHwgLVYgKQotKyAgICAkYXNfZWNobyAiJGFjX2NzX3ZlcnNpb24i OyBleGl0IDs7Ci0rICAtLWNvbmZpZyB8IC0tY29uZmkgfCAtLWNvbmYgfCAtLWNvbiB8IC0tY28g fCAtLWMgKQotKyAgICAkYXNfZWNobyAiJGFjX2NzX2NvbmZpZyI7IGV4aXQgOzsKLSsgIC0tZGVi dWcgfCAtLWRlYnUgfCAtLWRlYiB8IC0tZGUgfCAtLWQgfCAtZCApCi0rICAgIGRlYnVnPTogOzsK LSsgIC0tZmlsZSB8IC0tZmlsIHwgLS1maSB8IC0tZiApCi0rICAgICRhY19zaGlmdAotKyAgICBj YXNlICRhY19vcHRhcmcgaW4KLSsgICAgKlwnKikgYWNfb3B0YXJnPWAkYXNfZWNobyAiJGFjX29w dGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKLSsgICAgJycpIGFzX2ZuX2Vycm9y ICQ/ICJtaXNzaW5nIGZpbGUgYXJndW1lbnQiIDs7Ci0rICAgIGVzYWMKLSsgICAgYXNfZm5fYXBw ZW5kIENPTkZJR19GSUxFUyAiICckYWNfb3B0YXJnJyIKLSsgICAgYWNfbmVlZF9kZWZhdWx0cz1m YWxzZTs7Ci0rICAtLWhlYWRlciB8IC0taGVhZGUgfCAtLWhlYWQgfCAtLWhlYSApCi0rICAgICRh Y19zaGlmdAotKyAgICBjYXNlICRhY19vcHRhcmcgaW4KLSsgICAgKlwnKikgYWNfb3B0YXJnPWAk YXNfZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKLSsgICAg ZXNhYwotKyAgICBhc19mbl9hcHBlbmQgQ09ORklHX0hFQURFUlMgIiAnJGFjX29wdGFyZyciCi0r ICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotKyAgLS1oZSB8IC0taCkKLSsgICAgIyBDb25m bGljdCBiZXR3ZWVuIC0taGVscCBhbmQgLS1oZWFkZXIKLSsgICAgYXNfZm5fZXJyb3IgJD8gImFt YmlndW91cyBvcHRpb246IFxgJDEnCi0rVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1h dGlvbi4iOzsKLSsgIC0taGVscCB8IC0taGVsIHwgLWggKQotKyAgICAkYXNfZWNobyAiJGFjX2Nz X3VzYWdlIjsgZXhpdCA7OwotKyAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1x dWkgfCAtLXF1IHwgLS1xIFwKLSsgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0t c2lsZSB8IC0tc2lsIHwgLS1zaSB8IC0tcykKLSsgICAgYWNfY3Nfc2lsZW50PTogOzsKLSsKLSsg ICMgVGhpcyBpcyBhbiBlcnJvci4KLSsgIC0qKSBhc19mbl9lcnJvciAkPyAidW5yZWNvZ25pemVk IG9wdGlvbjogXGAkMScKLStUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIg OzsKLSsKLSsgICopIGFzX2ZuX2FwcGVuZCBhY19jb25maWdfdGFyZ2V0cyAiICQxIgotKyAgICAg YWNfbmVlZF9kZWZhdWx0cz1mYWxzZSA7OwotKwotKyAgZXNhYwotKyAgc2hpZnQKLStkb25lCi0r Ci0rYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9Ci0rCi0raWYgJGFjX2NzX3NpbGVudDsgdGhlbgot KyAgZXhlYyA2Pi9kZXYvbnVsbAotKyAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25m aWd1cmVfZXh0cmFfYXJncyAtLXNpbGVudCIKLStmaQotKwotK19BQ0VPRgotK2NhdCA+PiRDT05G SUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotK2lmIFwkYWNfY3NfcmVjaGVj azsgdGhlbgotKyAgc2V0IFggJyRTSEVMTCcgJyQwJyAkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19j b25maWd1cmVfZXh0cmFfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgotKyAgc2hpZnQK LSsgIFwkYXNfZWNobyAicnVubmluZyBDT05GSUdfU0hFTEw9JFNIRUxMIFwkKiIgPiY2Ci0rICBD T05GSUdfU0hFTEw9JyRTSEVMTCcKLSsgIGV4cG9ydCBDT05GSUdfU0hFTEwKLSsgIGV4ZWMgIlwk QCIKLStmaQotKwotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBh Y193cml0ZV9mYWlsPTEKLStleGVjIDU+PmNvbmZpZy5sb2cKLSt7Ci0rICBlY2hvCi0rICBzZWQg J2g7cy8uLy0vZztzL14uLi4vIyMgLztzLy4uLiQvICMjLztwO3g7cDt4JyA8PF9BU0JPWAotKyMj IFJ1bm5pbmcgJGFzX21lLiAjIwotK19BU0JPWAotKyAgJGFzX2VjaG8gIiRhY19sb2ciCi0rfSA+ JjUKLSsKLStfQUNFT0YKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0 ZV9mYWlsPTEKLSsjCi0rIyBJTklULUNPTU1BTkRTCi0rIwotK0FNREVQX1RSVUU9IiRBTURFUF9U UlVFIiBhY19hdXhfZGlyPSIkYWNfYXV4X2RpciIKLSsKLSsKLSsjIFRoZSBIUC1VWCBrc2ggYW5k IFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAotKyMgaWYg Q0RQQVRIIGlzIHNldC4KLSsodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQg Q0RQQVRICi0rCi0rc2VkX3F1b3RlX3N1YnN0PSckc2VkX3F1b3RlX3N1YnN0JwotK2RvdWJsZV9x dW90ZV9zdWJzdD0nJGRvdWJsZV9xdW90ZV9zdWJzdCcKLStkZWxheV92YXJpYWJsZV9zdWJzdD0n JGRlbGF5X3ZhcmlhYmxlX3N1YnN0JwotK2VuYWJsZV9zaGFyZWQ9J2AkRUNITyAiJGVuYWJsZV9z aGFyZWQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2VuYWJsZV9zdGF0 aWM9J2AkRUNITyAiJGVuYWJsZV9zdGF0aWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK21hY3JvX3ZlcnNpb249J2AkRUNITyAiJG1hY3JvX3ZlcnNpb24iIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK21hY3JvX3JldmlzaW9uPSdgJEVDSE8gIiRt YWNyb19yZXZpc2lvbiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcGlj X21vZGU9J2AkRUNITyAiJHBpY19tb2RlIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStlbmFibGVfZmFzdF9pbnN0YWxsPSdgJEVDSE8gIiRlbmFibGVfZmFzdF9pbnN0YWxs IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStTSEVMTD0nYCRFQ0hPICIk U0hFTEwiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0VDSE89J2AkRUNI TyAiJEVDSE8iIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hvc3RfYWxp YXM9J2AkRUNITyAiJGhvc3RfYWxpYXMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2hvc3Q9J2AkRUNITyAiJGhvc3QiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK2hvc3Rfb3M9J2AkRUNITyAiJGhvc3Rfb3MiIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK2J1aWxkX2FsaWFzPSdgJEVDSE8gIiRidWlsZF9hbGlhcyIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYnVpbGQ9J2AkRUNITyAiJGJ1aWxk IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStidWlsZF9vcz0nYCRFQ0hP ICIkYnVpbGRfb3MiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK1NFRD0n YCRFQ0hPICIkU0VEIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStYc2Vk PSdgJEVDSE8gIiRYc2VkIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStH UkVQPSdgJEVDSE8gIiRHUkVQIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStFR1JFUD0nYCRFQ0hPICIkRUdSRVAiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK0ZHUkVQPSdgJEVDSE8gIiRGR1JFUCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rTEQ9J2AkRUNITyAiJExEIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStOTT0nYCRFQ0hPICIkTk0iIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK0xOX1M9J2AkRUNITyAiJExOX1MiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK21heF9jbWRfbGVuPSdgJEVDSE8gIiRtYXhfY21kX2xlbiIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYWNfb2JqZXh0PSdgJEVDSE8gIiRhY19vYmpl eHQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4ZWV4dD0nYCRFQ0hP ICIkZXhlZXh0IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF91bnNl dD0nYCRFQ0hPICIkbHRfdW5zZXQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK2x0X1NQMk5MPSdgJEVDSE8gIiRsdF9TUDJOTCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rbHRfTkwyU1A9J2AkRUNITyAiJGx0X05MMlNQIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9jdl90b19ob3N0X2ZpbGVfY21kPSdgJEVDSE8g IiRsdF9jdl90b19ob3N0X2ZpbGVfY21kIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStsdF9jdl90b190b29sX2ZpbGVfY21kPSdgJEVDSE8gIiRsdF9jdl90b190b29sX2Zp bGVfY21kIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStyZWxvYWRfZmxh Zz0nYCRFQ0hPICIkcmVsb2FkX2ZsYWciIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK3JlbG9hZF9jbWRzPSdgJEVDSE8gIiRyZWxvYWRfY21kcyIgfCAkU0VEICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rT0JKRFVNUD0nYCRFQ0hPICIkT0JKRFVNUCIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZGVwbGlic19jaGVja19tZXRob2Q9J2Ak RUNITyAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStmaWxlX21hZ2ljX2NtZD0nYCRFQ0hPICIkZmlsZV9tYWdpY19jbWQiIHwgJFNF RCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2ZpbGVfbWFnaWNfZ2xvYj0nYCRFQ0hP ICIkZmlsZV9tYWdpY19nbG9iIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LSt3YW50X25vY2FzZWdsb2I9J2AkRUNITyAiJHdhbnRfbm9jYXNlZ2xvYiIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rRExMVE9PTD0nYCRFQ0hPICIkRExMVE9PTCIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rc2hhcmVkbGliX2Zyb21fbGlua2xp Yl9jbWQ9J2AkRUNITyAiJHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStBUj0nYCRFQ0hPICIkQVIiIHwgJFNFRCAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0FSX0ZMQUdTPSdgJEVDSE8gIiRBUl9GTEFHUyIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZXJfbGlzdF9zcGVjPSdg JEVDSE8gIiRhcmNoaXZlcl9saXN0X3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK1NUUklQPSdgJEVDSE8gIiRTVFJJUCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rUkFOTElCPSdgJEVDSE8gIiRSQU5MSUIiIHwgJFNFRCAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJwotK29sZF9wb3N0aW5zdGFsbF9jbWRzPSdgJEVDSE8gIiRvbGRf cG9zdGluc3RhbGxfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r b2xkX3Bvc3R1bmluc3RhbGxfY21kcz0nYCRFQ0hPICIkb2xkX3Bvc3R1bmluc3RhbGxfY21kcyIg fCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX2FyY2hpdmVfY21kcz0n YCRFQ0hPICIkb2xkX2FyY2hpdmVfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uPSdgJEVDSE8gIiRsb2NrX29sZF9h cmNoaXZlX2V4dHJhY3Rpb24iIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K0NDPSdgJEVDSE8gIiRDQyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r Q0ZMQUdTPSdgJEVDSE8gIiRDRkxBR1MiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2NvbXBpbGVyPSdgJEVDSE8gIiRjb21waWxlciIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0rR0NDPSdgJEVDSE8gIiRHQ0MiIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9J2AkRUNITyAi JGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSdgJEVDSE8gIiRs dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9 J2AkRUNITyAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSdgJEVDSE8gIiRsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4IiB8ICRTRUQgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKLStubV9maWxlX2xpc3Rfc3BlYz0nYCRFQ0hPICIkbm1fZmlsZV9s aXN0X3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X3N5c3Jv b3Q9J2AkRUNITyAiJGx0X3N5c3Jvb3QiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK29iamRpcj0nYCRFQ0hPICIkb2JqZGlyIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLStNQUdJQ19DTUQ9J2AkRUNITyAiJE1BR0lDX0NNRCIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2Zs YWc9J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIiB8ICRTRUQgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX3BpYz0nYCRFQ0hP ICIkbHRfcHJvZ19jb21waWxlcl9waWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2x0X3Byb2dfY29tcGlsZXJfd2w9J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfd2wi IHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X3Byb2dfY29tcGlsZXJf c3RhdGljPSdgJEVDSE8gIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyIgfCAkU0VEICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfY3ZfcHJvZ19jb21waWxlcl9jX289J2AkRUNITyAi JGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStuZWVkX2xvY2tzPSdgJEVDSE8gIiRuZWVkX2xvY2tzIiB8ICRTRUQgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStNQU5JRkVTVF9UT09MPSdgJEVDSE8gIiRNQU5JRkVTVF9U T09MIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStEU1lNVVRJTD0nYCRF Q0hPICIkRFNZTVVUSUwiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK05N RURJVD0nYCRFQ0hPICIkTk1FRElUIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStMSVBPPSdgJEVDSE8gIiRMSVBPIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStPVE9PTD0nYCRFQ0hPICIkT1RPT0wiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK09UT09MNjQ9J2AkRUNITyAiJE9UT09MNjQiIHwgJFNFRCAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJwotK2xpYmV4dD0nYCRFQ0hPICIkbGliZXh0IiB8ICRTRUQgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStzaHJleHRfY21kcz0nYCRFQ0hPICIkc2hyZXh0 X2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4dHJhY3RfZXhw c3ltc19jbWRzPSdgJEVDSE8gIiRleHRyYWN0X2V4cHN5bXNfY21kcyIgfCAkU0VEICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZV9jbWRzX25lZWRfbGM9J2AkRUNITyAiJGFy Y2hpdmVfY21kc19uZWVkX2xjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPSdgJEVDSE8gIiRlbmFibGVfc2hh cmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9J2AkRUNITyAiJGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWM9J2AkRUNITyAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStjb21waWxlcl9uZWVkc19vYmplY3Q9 J2AkRUNITyAiJGNvbXBpbGVyX25lZWRzX29iamVjdCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0nYCRFQ0hPICIkb2xkX2Fy Y2hpdmVfZnJvbV9uZXdfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9J2AkRUNITyAiJG9sZF9hcmNoaXZlX2Zy b21fZXhwc3ltc19jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSth cmNoaXZlX2NtZHM9J2AkRUNITyAiJGFyY2hpdmVfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZV9leHBzeW1fY21kcz0nYCRFQ0hPICIkYXJjaGl2ZV9l eHBzeW1fY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbW9kdWxl X2NtZHM9J2AkRUNITyAiJG1vZHVsZV9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLSttb2R1bGVfZXhwc3ltX2NtZHM9J2AkRUNITyAiJG1vZHVsZV9leHBzeW1fY21k cyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rd2l0aF9nbnVfbGQ9J2Ak RUNITyAiJHdpdGhfZ251X2xkIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LSthbGxvd191bmRlZmluZWRfZmxhZz0nYCRFQ0hPICIkYWxsb3dfdW5kZWZpbmVkX2ZsYWciIHwg JFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK25vX3VuZGVmaW5lZF9mbGFnPSdg JEVDSE8gIiRub191bmRlZmluZWRfZmxhZyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nYCRFQ0hPICIkaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0nYCRFQ0hPICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19sZCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcj0nYCRFQ0hPICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfZGlyZWN0PSdgJEVD SE8gIiRoYXJkY29kZV9kaXJlY3QiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT0nYCRFQ0hPICIkaGFyZGNvZGVfZGlyZWN0X2Fi c29sdXRlIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9t aW51c19MPSdgJEVDSE8gIiRoYXJkY29kZV9taW51c19MIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9zaGxpYnBhdGhfdmFyPSdgJEVDSE8gIiRoYXJkY29k ZV9zaGxpYnBhdGhfdmFyIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSto YXJkY29kZV9hdXRvbWF0aWM9J2AkRUNITyAiJGhhcmRjb2RlX2F1dG9tYXRpYyIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raW5oZXJpdF9ycGF0aD0nYCRFQ0hPICIkaW5o ZXJpdF9ycGF0aCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbGlua19h bGxfZGVwbGlicz0nYCRFQ0hPICIkbGlua19hbGxfZGVwbGlicyIgfCAkU0VEICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSdgJEVDSE8gIiRhbHdh eXNfZXhwb3J0X3N5bWJvbHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K2V4cG9ydF9zeW1ib2xzX2NtZHM9J2AkRUNITyAiJGV4cG9ydF9zeW1ib2xzX2NtZHMiIHwgJFNF RCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4Y2x1ZGVfZXhwc3ltcz0nYCRFQ0hP ICIkZXhjbHVkZV9leHBzeW1zIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStpbmNsdWRlX2V4cHN5bXM9J2AkRUNITyAiJGluY2x1ZGVfZXhwc3ltcyIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcHJlbGlua19jbWRzPSdgJEVDSE8gIiRwcmVsaW5r X2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3Bvc3RsaW5rX2Nt ZHM9J2AkRUNITyAiJHBvc3RsaW5rX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK2ZpbGVfbGlzdF9zcGVjPSdgJEVDSE8gIiRmaWxlX2xpc3Rfc3BlYyIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxp bms9J2AkRUNITyAiJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIiB8ICRTRUQgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStuZWVkX2xpYl9wcmVmaXg9J2AkRUNITyAiJG5lZWRfbGli X3ByZWZpeCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbmVlZF92ZXJz aW9uPSdgJEVDSE8gIiRuZWVkX3ZlcnNpb24iIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK3ZlcnNpb25fdHlwZT0nYCRFQ0hPICIkdmVyc2lvbl90eXBlIiB8ICRTRUQgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStydW5wYXRoX3Zhcj0nYCRFQ0hPICIkcnVucGF0 aF92YXIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3NobGlicGF0aF92 YXI9J2AkRUNITyAiJHNobGlicGF0aF92YXIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD0nYCRFQ0hPICIkc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStsaWJuYW1lX3NwZWM9J2AkRUNITyAiJGxpYm5hbWVfc3BlYyIgfCAkU0VEICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0rbGlicmFyeV9uYW1lc19zcGVjPSdgJEVDSE8gIiRsaWJyYXJ5 X25hbWVzX3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3NvbmFt ZV9zcGVjPSdgJEVDSE8gIiRzb25hbWVfc3BlYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0raW5zdGFsbF9vdmVycmlkZV9tb2RlPSdgJEVDSE8gIiRpbnN0YWxsX292ZXJy aWRlX21vZGUiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3Bvc3RpbnN0 YWxsX2NtZHM9J2AkRUNITyAiJHBvc3RpbnN0YWxsX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK3Bvc3R1bmluc3RhbGxfY21kcz0nYCRFQ0hPICIkcG9zdHVuaW5z dGFsbF9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStmaW5pc2hf Y21kcz0nYCRFQ0hPICIkZmluaXNoX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK2ZpbmlzaF9ldmFsPSdgJEVDSE8gIiRmaW5pc2hfZXZhbCIgfCAkU0VEICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfaW50b19saWJzPSdgJEVDSE8gIiRo YXJkY29kZV9pbnRvX2xpYnMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nYCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0nYCRFQ0hPICIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiIHwgJFNF RCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2FjdGlvbj0nYCRFQ0hP ICIkaGFyZGNvZGVfYWN0aW9uIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStlbmFibGVfZGxvcGVuPSdgJEVDSE8gIiRlbmFibGVfZGxvcGVuIiB8ICRTRUQgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfZGxvcGVuX3NlbGY9J2AkRUNITyAiJGVuYWJs ZV9kbG9wZW5fc2VsZiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZW5h YmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz0nYCRFQ0hPICIkZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRp YyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX3N0cmlwbGliPSdg JEVDSE8gIiRvbGRfc3RyaXBsaWIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK3N0cmlwbGliPSdgJEVDSE8gIiRzdHJpcGxpYiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzPSdgJEVDSE8gIiRjb21waWxl cl9saWJfc2VhcmNoX2RpcnMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K3ByZWRlcF9vYmplY3RzPSdgJEVDSE8gIiRwcmVkZXBfb2JqZWN0cyIgfCAkU0VEICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcG9zdGRlcF9vYmplY3RzPSdgJEVDSE8gIiRwb3N0ZGVw X29iamVjdHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3ByZWRlcHM9 J2AkRUNITyAiJHByZWRlcHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K3Bvc3RkZXBzPSdgJEVDSE8gIiRwb3N0ZGVwcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSdgJEVDSE8gIiRjb21waWxlcl9s aWJfc2VhcmNoX3BhdGgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0xE X0NYWD0nYCRFQ0hPICIkTERfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStyZWxvYWRfZmxhZ19DWFg9J2AkRUNITyAiJHJlbG9hZF9mbGFnX0NYWCIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcmVsb2FkX2NtZHNfQ1hYPSdgJEVDSE8gIiRy ZWxvYWRfY21kc19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK29s ZF9hcmNoaXZlX2NtZHNfQ1hYPSdgJEVDSE8gIiRvbGRfYXJjaGl2ZV9jbWRzX0NYWCIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJfQ1hYPSdgJEVDSE8gIiRj b21waWxlcl9DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0dDQ19D WFg9J2AkRUNITyAiJEdDQ19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NYWD0nYCRFQ0hPICIkbHRfcHJv Z19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9J2AkRUNITyAiJGx0X3Byb2df Y29tcGlsZXJfcGljX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r bHRfcHJvZ19jb21waWxlcl93bF9DWFg9J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hY IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWCIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfY3ZfcHJvZ19jb21waWxlcl9jX29f Q1hYPSdgJEVDSE8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiIHwgJFNFRCAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2FyY2hpdmVfY21kc19uZWVkX2xjX0NYWD0nYCRFQ0hP ICIkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NYWD0nYCRFQ0hP ICIkZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFgiIHwgJFNFRCAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9J2Ak RUNITyAiJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFgiIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nYCRFQ0hPICIk d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStjb21waWxlcl9uZWVkc19vYmplY3RfQ1hYPSdgJEVDSE8gIiRjb21waWxlcl9u ZWVkc19vYmplY3RfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStv bGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0NYWD0nYCRFQ0hPICIkb2xkX2FyY2hpdmVfZnJvbV9u ZXdfY21kc19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK29sZF9h cmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWD0nYCRFQ0hPICIkb2xkX2FyY2hpdmVfZnJvbV9l eHBzeW1zX2NtZHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSth cmNoaXZlX2NtZHNfQ1hYPSdgJEVDSE8gIiRhcmNoaXZlX2NtZHNfQ1hYIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSthcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nYCRFQ0hP ICIkYXJjaGl2ZV9leHBzeW1fY21kc19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK21vZHVsZV9jbWRzX0NYWD0nYCRFQ0hPICIkbW9kdWxlX2NtZHNfQ1hYIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSttb2R1bGVfZXhwc3ltX2NtZHNfQ1hY PSdgJEVDSE8gIiRtb2R1bGVfZXhwc3ltX2NtZHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLSt3aXRoX2dudV9sZF9DWFg9J2AkRUNITyAiJHdpdGhfZ251X2xkX0NY WCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYWxsb3dfdW5kZWZpbmVk X2ZsYWdfQ1hYPSdgJEVDSE8gIiRhbGxvd191bmRlZmluZWRfZmxhZ19DWFgiIHwgJFNFRCAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK25vX3VuZGVmaW5lZF9mbGFnX0NYWD0nYCRFQ0hP ICIkbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nYCRFQ0hPICIkaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYPSdgJEVDSE8gIiRoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX2xkX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9J2AkRUNITyAiJGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3JfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStoYXJkY29kZV9kaXJlY3RfQ1hYPSdgJEVDSE8gIiRoYXJkY29kZV9kaXJlY3RfQ1hYIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9kaXJlY3RfYWJzb2x1 dGVfQ1hYPSdgJEVDSE8gIiRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYIiB8ICRTRUQgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9taW51c19MX0NYWD0nYCRFQ0hP ICIkaGFyZGNvZGVfbWludXNfTF9DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2hhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPSdgJEVDSE8gIiRoYXJkY29kZV9zaGxp YnBhdGhfdmFyX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFy ZGNvZGVfYXV0b21hdGljX0NYWD0nYCRFQ0hPICIkaGFyZGNvZGVfYXV0b21hdGljX0NYWCIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raW5oZXJpdF9ycGF0aF9DWFg9J2Ak RUNITyAiJGluaGVyaXRfcnBhdGhfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStsaW5rX2FsbF9kZXBsaWJzX0NYWD0nYCRFQ0hPICIkbGlua19hbGxfZGVwbGlic19D WFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2Fsd2F5c19leHBvcnRf c3ltYm9sc19DWFg9J2AkRUNITyAiJGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFgiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSdg JEVDSE8gIiRleHBvcnRfc3ltYm9sc19jbWRzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rZXhjbHVkZV9leHBzeW1zX0NYWD0nYCRFQ0hPICIkZXhjbHVkZV9leHBz eW1zX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raW5jbHVkZV9l eHBzeW1zX0NYWD0nYCRFQ0hPICIkaW5jbHVkZV9leHBzeW1zX0NYWCIgfCAkU0VEICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcHJlbGlua19jbWRzX0NYWD0nYCRFQ0hPICIkcHJlbGlu a19jbWRzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcG9zdGxp bmtfY21kc19DWFg9J2AkRUNITyAiJHBvc3RsaW5rX2NtZHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStmaWxlX2xpc3Rfc3BlY19DWFg9J2AkRUNITyAiJGZpbGVf bGlzdF9zcGVjX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFy ZGNvZGVfYWN0aW9uX0NYWD0nYCRFQ0hPICIkaGFyZGNvZGVfYWN0aW9uX0NYWCIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NY WD0nYCRFQ0hPICIkY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWCIgfCAkU0VEICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcHJlZGVwX29iamVjdHNfQ1hYPSdgJEVDSE8gIiRwcmVk ZXBfb2JqZWN0c19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3Bv c3RkZXBfb2JqZWN0c19DWFg9J2AkRUNITyAiJHBvc3RkZXBfb2JqZWN0c19DWFgiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3ByZWRlcHNfQ1hYPSdgJEVDSE8gIiRwcmVk ZXBzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcG9zdGRlcHNf Q1hYPSdgJEVDSE8gIiRwb3N0ZGVwc19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9J2AkRUNITyAiJGNvbXBpbGVy X2xpYl9zZWFyY2hfcGF0aF9DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotKwotK0xUQ0M9JyRMVENDJwotK0xUQ0ZMQUdTPSckTFRDRkxBR1MnCi0rY29tcGlsZXI9JyRj b21waWxlcl9ERUZBVUxUJwotKwotKyMgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgd2hlbiB0aGVy ZSBpcyBubyBwcmludCBidWlsdGluIG9yIHByaW50Zi4KLStmdW5jX2ZhbGxiYWNrX2VjaG8gKCkK LSt7Ci0rICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgotK1wkMQotK19MVEVDSE9fRU9GJwotK30K LSsKLSsjIFF1b3RlIGV2YWxlZCBzdHJpbmdzLgotK2ZvciB2YXIgaW4gU0hFTEwgXAotK0VDSE8g XAotK1NFRCBcCi0rR1JFUCBcCi0rRUdSRVAgXAotK0ZHUkVQIFwKLStMRCBcCi0rTk0gXAotK0xO X1MgXAotK2x0X1NQMk5MIFwKLStsdF9OTDJTUCBcCi0rcmVsb2FkX2ZsYWcgXAotK09CSkRVTVAg XAotK2RlcGxpYnNfY2hlY2tfbWV0aG9kIFwKLStmaWxlX21hZ2ljX2NtZCBcCi0rZmlsZV9tYWdp Y19nbG9iIFwKLSt3YW50X25vY2FzZWdsb2IgXAotK0RMTFRPT0wgXAotK3NoYXJlZGxpYl9mcm9t X2xpbmtsaWJfY21kIFwKLStBUiBcCi0rQVJfRkxBR1MgXAotK2FyY2hpdmVyX2xpc3Rfc3BlYyBc Ci0rU1RSSVAgXAotK1JBTkxJQiBcCi0rQ0MgXAotK0NGTEFHUyBcCi0rY29tcGlsZXIgXAotK2x0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgXAotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NkZWNsIFwKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBcCi0r bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCBcCi0r bm1fZmlsZV9saXN0X3NwZWMgXAotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIFwK LStsdF9wcm9nX2NvbXBpbGVyX3BpYyBcCi0rbHRfcHJvZ19jb21waWxlcl93bCBcCi0rbHRfcHJv Z19jb21waWxlcl9zdGF0aWMgXAotK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vIFwKLStuZWVkX2xv Y2tzIFwKLStNQU5JRkVTVF9UT09MIFwKLStEU1lNVVRJTCBcCi0rTk1FRElUIFwKLStMSVBPIFwK LStPVE9PTCBcCi0rT1RPT0w2NCBcCi0rc2hyZXh0X2NtZHMgXAotK2V4cG9ydF9keW5hbWljX2Zs YWdfc3BlYyBcCi0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgXAotK2NvbXBpbGVyX25lZWRzX29i amVjdCBcCi0rd2l0aF9nbnVfbGQgXAotK2FsbG93X3VuZGVmaW5lZF9mbGFnIFwKLStub191bmRl ZmluZWRfZmxhZyBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBcCi0raGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19sZCBcCi0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBcCi0rZXhjbHVk ZV9leHBzeW1zIFwKLStpbmNsdWRlX2V4cHN5bXMgXAotK2ZpbGVfbGlzdF9zcGVjIFwKLSt2YXJp YWJsZXNfc2F2ZWRfZm9yX3JlbGluayBcCi0rbGlibmFtZV9zcGVjIFwKLStsaWJyYXJ5X25hbWVz X3NwZWMgXAotK3NvbmFtZV9zcGVjIFwKLStpbnN0YWxsX292ZXJyaWRlX21vZGUgXAotK2Zpbmlz aF9ldmFsIFwKLStvbGRfc3RyaXBsaWIgXAotK3N0cmlwbGliIFwKLStjb21waWxlcl9saWJfc2Vh cmNoX2RpcnMgXAotK3ByZWRlcF9vYmplY3RzIFwKLStwb3N0ZGVwX29iamVjdHMgXAotK3ByZWRl cHMgXAotK3Bvc3RkZXBzIFwKLStjb21waWxlcl9saWJfc2VhcmNoX3BhdGggXAotK0xEX0NYWCBc Ci0rcmVsb2FkX2ZsYWdfQ1hYIFwKLStjb21waWxlcl9DWFggXAotK2x0X3Byb2dfY29tcGlsZXJf bm9fYnVpbHRpbl9mbGFnX0NYWCBcCi0rbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIFwKLStsdF9w cm9nX2NvbXBpbGVyX3dsX0NYWCBcCi0rbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYIFwKLSts dF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFggXAotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19D WFggXAotK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWCBcCi0rY29tcGlsZXJfbmVlZHNfb2Jq ZWN0X0NYWCBcCi0rd2l0aF9nbnVfbGRfQ1hYIFwKLSthbGxvd191bmRlZmluZWRfZmxhZ19DWFgg XAotK25vX3VuZGVmaW5lZF9mbGFnX0NYWCBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19D WFggXAotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYIFwKLStoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yX0NYWCBcCi0rZXhjbHVkZV9leHBzeW1zX0NYWCBcCi0raW5jbHVkZV9leHBz eW1zX0NYWCBcCi0rZmlsZV9saXN0X3NwZWNfQ1hYIFwKLStjb21waWxlcl9saWJfc2VhcmNoX2Rp cnNfQ1hYIFwKLStwcmVkZXBfb2JqZWN0c19DWFggXAotK3Bvc3RkZXBfb2JqZWN0c19DWFggXAot K3ByZWRlcHNfQ1hYIFwKLStwb3N0ZGVwc19DWFggXAotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aF9DWFg7IGRvCi0rICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gXFxcXCIiXFxcXFwkXCR2YXIi XFxcXCJcYCBpbgotKyAgICAqW1xcXFxcXFxgXFwiXFxcJF0qKQotKyAgICAgIGV2YWwgImx0X1wk dmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiXFxcJFwkdmFyXFwiIHwgXFxcJFNFRCBcXCJcXFwk c2VkX3F1b3RlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAg ICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKLSsgICAgICA7OwotKyAg ICBlc2FjCi0rZG9uZQotKwotKyMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4K LStmb3IgdmFyIGluIHJlbG9hZF9jbWRzIFwKLStvbGRfcG9zdGluc3RhbGxfY21kcyBcCi0rb2xk X3Bvc3R1bmluc3RhbGxfY21kcyBcCi0rb2xkX2FyY2hpdmVfY21kcyBcCi0rZXh0cmFjdF9leHBz eW1zX2NtZHMgXAotK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMgXAotK29sZF9hcmNoaXZlX2Zy b21fZXhwc3ltc19jbWRzIFwKLSthcmNoaXZlX2NtZHMgXAotK2FyY2hpdmVfZXhwc3ltX2NtZHMg XAotK21vZHVsZV9jbWRzIFwKLSttb2R1bGVfZXhwc3ltX2NtZHMgXAotK2V4cG9ydF9zeW1ib2xz X2NtZHMgXAotK3ByZWxpbmtfY21kcyBcCi0rcG9zdGxpbmtfY21kcyBcCi0rcG9zdGluc3RhbGxf Y21kcyBcCi0rcG9zdHVuaW5zdGFsbF9jbWRzIFwKLStmaW5pc2hfY21kcyBcCi0rc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjIFwKLStzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyBcCi0rcmVsb2Fk X2NtZHNfQ1hYIFwKLStvbGRfYXJjaGl2ZV9jbWRzX0NYWCBcCi0rb2xkX2FyY2hpdmVfZnJvbV9u ZXdfY21kc19DWFggXAotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWCBcCi0rYXJj aGl2ZV9jbWRzX0NYWCBcCi0rYXJjaGl2ZV9leHBzeW1fY21kc19DWFggXAotK21vZHVsZV9jbWRz X0NYWCBcCi0rbW9kdWxlX2V4cHN5bV9jbWRzX0NYWCBcCi0rZXhwb3J0X3N5bWJvbHNfY21kc19D WFggXAotK3ByZWxpbmtfY21kc19DWFggXAotK3Bvc3RsaW5rX2NtZHNfQ1hYOyBkbwotKyAgICBj YXNlIFxgZXZhbCBcXFxcXCRFQ0hPIFxcXFwiIlxcXFxcJFwkdmFyIlxcXFwiXGAgaW4KLSsgICAg KltcXFxcXFxcYFxcIlxcXCRdKikKLSsgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxc XCRFQ0hPIFxcIlxcXCRcJHZhclxcIiB8IFxcXCRTRUQgLWUgXFwiXFxcJGRvdWJsZV9xdW90ZV9z dWJzdFxcIiAtZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRkZWxheV92YXJp YWJsZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgZXZh bCAibHRfXCR2YXI9XFxcXFxcIlxcXCRcJHZhclxcXFxcXCIiCi0rICAgICAgOzsKLSsgICAgZXNh YwotK2RvbmUKLSsKLSthY19hdXhfZGlyPSckYWNfYXV4X2RpcicKLSt4c2lfc2hlbGw9JyR4c2lf c2hlbGwnCi0rbHRfc2hlbGxfYXBwZW5kPSckbHRfc2hlbGxfYXBwZW5kJwotKwotKyMgU2VlIGlm IHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBv dXIKLSsjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcyBJTklU LgotK2lmIHRlc3QgLW4gIlwke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgIHNldG9wdCBO T19HTE9CX1NVQlNUCi0rZmkKLSsKLSsKLSsgICAgUEFDS0FHRT0nJFBBQ0tBR0UnCi0rICAgIFZF UlNJT049JyRWRVJTSU9OJwotKyAgICBUSU1FU1RBTVA9JyRUSU1FU1RBTVAnCi0rICAgIFJNPSck Uk0nCi0rICAgIG9maWxlPSckb2ZpbGUnCi0rCi0rCi0rCi0rCi0rCi0rCi0rX0FDRU9GCi0rCi0r Y2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKwotKyMg SGFuZGxpbmcgb2YgYXJndW1lbnRzLgotK2ZvciBhY19jb25maWdfdGFyZ2V0IGluICRhY19jb25m aWdfdGFyZ2V0cwotK2RvCi0rICBjYXNlICRhY19jb25maWdfdGFyZ2V0IGluCi0rICAgICJzb2Np L2NvbmZpZy5oIikgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyBzb2NpL2NvbmZpZy5o IiA7OwotKyAgICAiZGVwZmlsZXMiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMg ZGVwZmlsZXMiIDs7Ci0rICAgICJsaWJ0b29sIikgQ09ORklHX0NPTU1BTkRTPSIkQ09ORklHX0NP TU1BTkRTIGxpYnRvb2wiIDs7Ci0rICAgICJNYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJ R19GSUxFUyBNYWtlZmlsZSIgOzsKLSsgICAgInNvY2ktY29uZmlnIikgQ09ORklHX0ZJTEVTPSIk Q09ORklHX0ZJTEVTIHNvY2ktY29uZmlnIiA7OwotKyAgICAic29jaS5wYyIpIENPTkZJR19GSUxF Uz0iJENPTkZJR19GSUxFUyBzb2NpLnBjIiA7OwotKyAgICAic29jaS9NYWtlZmlsZSIpIENPTkZJ R19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL01ha2VmaWxlIiA7OwotKyAgICAic29jaS9jb3Jl L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvY29yZS9NYWtlZmls ZSIgOzsKLSsgICAgInNvY2kvY29yZS90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09O RklHX0ZJTEVTIHNvY2kvY29yZS90ZXN0L01ha2VmaWxlIiA7OwotKyAgICAic29jaS9iYWNrZW5k cy9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL01h a2VmaWxlIiA7OwotKyAgICAic29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZSIpIENPTkZJR19G SUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlIiA7OwotKyAg ICAic29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09O RklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSIgOzsKLSsgICAgInNv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19G SUxFUyBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19G SUxFUyBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSIgOzsKLSsgICAgInNv Y2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVT IHNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlIiA7OwotKyAgICAic29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2Jh Y2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlIiA7OwotKyAgICAibWFuL01ha2VmaWxlIikgQ09O RklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIG1hbi9NYWtlZmlsZSIgOzsKLSsgICAgImRvYy9NYWtl ZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBkb2MvTWFrZWZpbGUiIDs7Ci0rICAg ICJkb2MvYmFja2VuZHMvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZG9j L2JhY2tlbmRzL01ha2VmaWxlIiA7OwotKyAgICAiYnVpbGQvTWFrZWZpbGUiKSBDT05GSUdfRklM RVM9IiRDT05GSUdfRklMRVMgYnVpbGQvTWFrZWZpbGUiIDs7Ci0rICAgICJidWlsZC91bml4L01h a2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL3VuaXgvTWFrZWZpbGUi IDs7Ci0rICAgICJidWlsZC9tc3ZjODAvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdf RklMRVMgYnVpbGQvbXN2YzgwL01ha2VmaWxlIiA7OwotKyAgICAiYnVpbGQvbXN2YzgwL2RsbC9N YWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC9tc3ZjODAvZGxsL01h a2VmaWxlIiA7OwotKyAgICAiYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIpIENPTkZJR19GSUxF Uz0iJENPTkZJR19GSUxFUyBidWlsZC9tc3ZjODAvbGliL01ha2VmaWxlIiA7OwotKwotKyAgKikg YXNfZm5fZXJyb3IgJD8gImludmFsaWQgYXJndW1lbnQ6IFxgJGFjX2NvbmZpZ190YXJnZXQnIiAi JExJTkVOTyIgNTs7Ci0rICBlc2FjCi0rZG9uZQotKwotKwotKyMgSWYgdGhlIHVzZXIgZGlkIG5v dCB1c2UgdGhlIGFyZ3VtZW50cyB0byBzcGVjaWZ5IHRoZSBpdGVtcyB0byBpbnN0YW50aWF0ZSwK LSsjIHRoZW4gdGhlIGVudnZhciBpbnRlcmZhY2UgaXMgdXNlZC4gIFNldCBvbmx5IHRob3NlIHRo YXQgYXJlIG5vdC4KLSsjIFdlIHVzZSB0aGUgbG9uZyBmb3JtIGZvciB0aGUgZGVmYXVsdCBhc3Np Z25tZW50IGJlY2F1c2Ugb2YgYW4gZXh0cmVtZWx5Ci0rIyBiaXphcnJlIGJ1ZyBvbiBTdW5PUyA0 LjEuMy4KLStpZiAkYWNfbmVlZF9kZWZhdWx0czsgdGhlbgotKyAgdGVzdCAiJHtDT05GSUdfRklM RVMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0ZJTEVTPSRjb25maWdfZmlsZXMKLSsgIHRlc3QgIiR7 Q09ORklHX0hFQURFUlMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0hFQURFUlM9JGNvbmZpZ19oZWFk ZXJzCi0rICB0ZXN0ICIke0NPTkZJR19DT01NQU5EUytzZXR9IiA9IHNldCB8fCBDT05GSUdfQ09N TUFORFM9JGNvbmZpZ19jb21tYW5kcwotK2ZpCi0rCi0rIyBIYXZlIGEgdGVtcG9yYXJ5IGRpcmVj dG9yeSBmb3IgY29udmVuaWVuY2UuICBNYWtlIGl0IGluIHRoZSBidWlsZCB0cmVlCi0rIyBzaW1w bHkgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFzb24gYWdhaW5zdCBoYXZpbmcgaXQgaGVyZSwgYW5k IGluIGFkZGl0aW9uLAotKyMgY3JlYXRpbmcgYW5kIG1vdmluZyBmaWxlcyBmcm9tIC90bXAgY2Fu IHNvbWV0aW1lcyBjYXVzZSBwcm9ibGVtcy4KLSsjIEhvb2sgZm9yIGl0cyByZW1vdmFsIHVubGVz cyBkZWJ1Z2dpbmcuCi0rIyBOb3RlIHRoYXQgdGhlcmUgaXMgYSBzbWFsbCB3aW5kb3cgaW4gd2hp Y2ggdGhlIGRpcmVjdG9yeSB3aWxsIG5vdCBiZSBjbGVhbmVkOgotKyMgYWZ0ZXIgaXRzIGNyZWF0 aW9uIGJ1dCBiZWZvcmUgaXRzIG5hbWUgaGFzIGJlZW4gYXNzaWduZWQgdG8gYCR0bXAnLgotKyRk ZWJ1ZyB8fAotK3sKLSsgIHRtcD0gYWNfdG1wPQotKyAgdHJhcCAnZXhpdF9zdGF0dXM9JD8KLSsg IDogIiR7YWNfdG1wOj0kdG1wfSIKLSsgIHsgdGVzdCAhIC1kICIkYWNfdG1wIiB8fCBybSAtZnIg IiRhY190bXAiOyB9ICYmIGV4aXQgJGV4aXRfc3RhdHVzCi0rJyAwCi0rICB0cmFwICdhc19mbl9l eGl0IDEnIDEgMiAxMyAxNQotK30KLSsjIENyZWF0ZSBhIChzZWN1cmUpIHRtcCBkaXJlY3Rvcnkg Zm9yIHRtcCBmaWxlcy4KLSsKLSt7Ci0rICB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIu L2NvbmZYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYKLSsgIHRlc3QgLWQgIiR0bXAiCi0rfSAgfHwK LSt7Ci0rICB0bXA9Li9jb25mJCQtJFJBTkRPTQotKyAgKHVtYXNrIDA3NyAmJiBta2RpciAiJHRt cCIpCi0rfSB8fCBhc19mbl9lcnJvciAkPyAiY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJl Y3RvcnkgaW4gLiIgIiRMSU5FTk8iIDUKLSthY190bXA9JHRtcAotKwotKyMgU2V0IHVwIHRoZSBz Y3JpcHRzIGZvciBDT05GSUdfRklMRVMgc2VjdGlvbi4KLSsjIE5vIG5lZWQgdG8gZ2VuZXJhdGUg dGhlbSBpZiB0aGVyZSBhcmUgbm8gQ09ORklHX0ZJTEVTLgotKyMgVGhpcyBoYXBwZW5zIGZvciBp bnN0YW5jZSB3aXRoIGAuL2NvbmZpZy5zdGF0dXMgY29uZmlnLmgnLgotK2lmIHRlc3QgLW4gIiRD T05GSUdfRklMRVMiOyB0aGVuCi0rCi0rCi0rYWNfY3I9YGVjaG8gWCB8IHRyIFggJ1wwMTUnYAot KyMgT24gY3lnd2luLCBiYXNoIGNhbiBlYXQgXHIgaW5zaWRlIGBgIGlmIHRoZSB1c2VyIHJlcXVl c3RlZCBpZ25jci4KLSsjIEJ1dCB3ZSBrbm93IG9mIG5vIG90aGVyIHNoZWxsIHdoZXJlIGFjX2Ny IHdvdWxkIGJlIGVtcHR5IGF0IHRoaXMKLSsjIHBvaW50LCBzbyB3ZSBjYW4gdXNlIGEgYmFzaGlz bSBhcyBhIGZhbGxiYWNrLgotK2lmIHRlc3QgIngkYWNfY3IiID0geDsgdGhlbgotKyAgZXZhbCBh Y19jcj1cJFwnXFxyXCcKLStmaQotK2FjX2NzX2F3a19jcj1gJEFXSyAnQkVHSU4geyBwcmludCAi YVxyYiIgfScgPC9kZXYvbnVsbCAyPi9kZXYvbnVsbGAKLStpZiB0ZXN0ICIkYWNfY3NfYXdrX2Ny IiA9ICJhJHthY19jcn1iIjsgdGhlbgotKyAgYWNfY3NfYXdrX2NyPSdcXHInCi0rZWxzZQotKyAg YWNfY3NfYXdrX2NyPSRhY19jcgotK2ZpCi0rCi0rZWNobyAnQkVHSU4geycgPiIkYWNfdG1wL3N1 YnMxLmF3ayIgJiYKLStfQUNFT0YKLSsKLSsKLSt7Ci0rICBlY2hvICJjYXQgPmNvbmYkJHN1YnMu YXdrIDw8X0FDRU9GIiAmJgotKyAgZWNobyAiJGFjX3N1YnN0X3ZhcnMiIHwgc2VkICdzLy4qLyYh JCYkYWNfZGVsaW0vJyAmJgotKyAgZWNobyAiX0FDRU9GIgotK30gPmNvbmYkJHN1YnMuc2ggfHwK LSsgIGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgIiRMSU5F Tk8iIDUKLSthY19kZWxpbV9udW09YGVjaG8gIiRhY19zdWJzdF92YXJzIiB8IGdyZXAgLWMgJ14n YAotK2FjX2RlbGltPSclIV8hIyAnCi0rZm9yIGFjX2xhc3RfdHJ5IGluIGZhbHNlIGZhbHNlIGZh bHNlIGZhbHNlIGZhbHNlIDo7IGRvCi0rICAuIC4vY29uZiQkc3Vicy5zaCB8fAotKyAgICBhc19m bl9lcnJvciAkPyAiY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiICIkTElORU5PIiA1Ci0r Ci0rICBhY19kZWxpbV9uPWBzZWQgLW4gInMvLiokYWNfZGVsaW1cJC9YL3AiIGNvbmYkJHN1YnMu YXdrIHwgZ3JlcCAtYyBYYAotKyAgaWYgdGVzdCAkYWNfZGVsaW1fbiA9ICRhY19kZWxpbV9udW07 IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVsaWYgJGFjX2xhc3RfdHJ5OyB0aGVuCi0rICAgIGFzX2Zu X2Vycm9yICQ/ICJjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgIiRMSU5FTk8iIDUKLSsg IGVsc2UKLSsgICAgYWNfZGVsaW09IiRhY19kZWxpbSEkYWNfZGVsaW0gXyRhY19kZWxpbSEhICIK LSsgIGZpCi0rZG9uZQotK3JtIC1mIGNvbmYkJHN1YnMuc2gKLSsKLStjYXQgPj4kQ09ORklHX1NU QVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLStjYXQgPj4iXCRhY190bXAvc3ViczEu YXdrIiA8PFxcX0FDQVdLICYmCi0rX0FDRU9GCi0rc2VkIC1uICcKLStoCi0rcy9eL1NbIi87IHMv IS4qLyJdPS8KLStwCi0rZwotK3MvXlteIV0qIS8vCi0rOnJlcGwKLSt0IHJlcGwKLStzLyciJGFj X2RlbGltIickLy8KLSt0IGRlbGltCi0rOm5sCi0raAotK3MvXCguXHsxNDhcfVwpLi4qL1wxLwot K3QgbW9yZTEKLStzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC9cXG4iXFwvCi0rcAotK24KLSti IHJlcGwKLSs6bW9yZTEKLStzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC8iXFwvCi0rcAotK2cK LStzLy5cezE0OFx9Ly8KLSt0IG5sCi0rOmRlbGltCi0raAotK3MvXCguXHsxNDhcfVwpLi4qL1wx LwotK3QgbW9yZTIKLStzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC8iLwotK3AKLStiCi0rOm1v cmUyCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIlxcLwotK3AKLStnCi0rcy8uXHsxNDhc fS8vCi0rdCBkZWxpbQotKycgPGNvbmYkJHN1YnMuYXdrIHwgc2VkICcKLSsvXlteIiJdL3sKLSsg IE4KLSsgIHMvXG4vLwotK30KLSsnID4+JENPTkZJR19TVEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0x Ci0rcm0gLWYgY29uZiQkc3Vicy5hd2sKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8 fCBhY193cml0ZV9mYWlsPTEKLStfQUNBV0sKLStjYXQgPj4iXCRhY190bXAvc3ViczEuYXdrIiA8 PF9BQ0FXSyAmJgotKyAgZm9yIChrZXkgaW4gUykgU19pc19zZXRba2V5XSA9IDEKLSsgIEZTID0g IgciCi0rCi0rfQotK3sKLSsgIGxpbmUgPSAkIDAKLSsgIG5maWVsZHMgPSBzcGxpdChsaW5lLCBm aWVsZCwgIkAiKQotKyAgc3Vic3RlZCA9IDAKLSsgIGxlbiA9IGxlbmd0aChmaWVsZFsxXSkKLSsg IGZvciAoaSA9IDI7IGkgPCBuZmllbGRzOyBpKyspIHsKLSsgICAga2V5ID0gZmllbGRbaV0KLSsg ICAga2V5bGVuID0gbGVuZ3RoKGtleSkKLSsgICAgaWYgKFNfaXNfc2V0W2tleV0pIHsKLSsgICAg ICB2YWx1ZSA9IFNba2V5XQotKyAgICAgIGxpbmUgPSBzdWJzdHIobGluZSwgMSwgbGVuKSAiIiB2 YWx1ZSAiIiBzdWJzdHIobGluZSwgbGVuICsga2V5bGVuICsgMykKLSsgICAgICBsZW4gKz0gbGVu Z3RoKHZhbHVlKSArIGxlbmd0aChmaWVsZFsrK2ldKQotKyAgICAgIHN1YnN0ZWQgPSAxCi0rICAg IH0gZWxzZQotKyAgICAgIGxlbiArPSAxICsga2V5bGVuCi0rICB9Ci0rCi0rICBwcmludCBsaW5l Ci0rfQotKwotK19BQ0FXSwotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VP RiB8fCBhY193cml0ZV9mYWlsPTEKLStpZiBzZWQgInMvJGFjX2NyLy8iIDwgL2Rldi9udWxsID4g L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIHNlZCAicy8kYWNfY3JcJC8vOyBzLyRhY19jci8kYWNf Y3NfYXdrX2NyL2ciCi0rZWxzZQotKyAgY2F0Ci0rZmkgPCAiJGFjX3RtcC9zdWJzMS5hd2siID4g IiRhY190bXAvc3Vicy5hd2siIFwKLSsgIHx8IGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3Qgc2V0 dXAgY29uZmlnIGZpbGVzIG1hY2hpbmVyeSIgIiRMSU5FTk8iIDUKLStfQUNFT0YKLSsKLSsjIFZQ QVRIIG1heSBjYXVzZSB0cm91YmxlIHdpdGggc29tZSBtYWtlcywgc28gd2UgcmVtb3ZlIHNvbGUg JChzcmNkaXIpLAotKyMgJHtzcmNkaXJ9IGFuZCBAc3JjZGlyQCBlbnRyaWVzIGZyb20gVlBBVEgg aWYgc3JjZGlyIGlzICIuIiwgc3RyaXAgbGVhZGluZyBhbmQKLSsjIHRyYWlsaW5nIGNvbG9ucyBh bmQgdGhlbiByZW1vdmUgdGhlIHdob2xlIGxpbmUgaWYgVlBBVEggYmVjb21lcyBlbXB0eQotKyMg KGFjdHVhbGx5IHdlIGxlYXZlIGFuIGVtcHR5IGxpbmUgdG8gcHJlc2VydmUgbGluZSBudW1iZXJz KS4KLStpZiB0ZXN0ICJ4JHNyY2RpciIgPSB4LjsgdGhlbgotKyAgYWNfdnBzdWI9Jy9eWwkgXSpW UEFUSFsJIF0qPVsJIF0qL3sKLStoCi0rcy8vLwotK3MvXi86LwotK3MvWwkgXSokLzovCi0rcy86 XCQoc3JjZGlyKTovOi9nCi0rcy86XCR7c3JjZGlyfTovOi9nCi0rcy86QHNyY2RpckA6LzovZwot K3MvXjoqLy8KLStzLzoqJC8vCi0reAotK3MvXCg9WwkgXSpcKS4qL1wxLwotK0cKLStzL1xuLy8K LStzL15bXj1dKj1bCSBdKiQvLwotK30nCi0rZmkKLSsKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8 PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rZmkgIyB0ZXN0IC1uICIkQ09ORklHX0ZJTEVT IgotKwotKyMgU2V0IHVwIHRoZSBzY3JpcHRzIGZvciBDT05GSUdfSEVBREVSUyBzZWN0aW9uLgot KyMgTm8gbmVlZCB0byBnZW5lcmF0ZSB0aGVtIGlmIHRoZXJlIGFyZSBubyBDT05GSUdfSEVBREVS Uy4KLSsjIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugd2l0aCBgLi9jb25maWcuc3RhdHVzIE1h a2VmaWxlJy4KLStpZiB0ZXN0IC1uICIkQ09ORklHX0hFQURFUlMiOyB0aGVuCi0rY2F0ID4iJGFj X3RtcC9kZWZpbmVzLmF3ayIgPDxcX0FDQVdLIHx8Ci0rQkVHSU4gewotK19BQ0VPRgotKwotKyMg VHJhbnNmb3JtIGNvbmZkZWZzLmggaW50byBhbiBhd2sgc2NyaXB0IGBkZWZpbmVzLmF3aycsIGVt YmVkZGVkIGFzCi0rIyBoZXJlLWRvY3VtZW50IGluIGNvbmZpZy5zdGF0dXMsIHRoYXQgc3Vic3Rp dHV0ZXMgdGhlIHByb3BlciB2YWx1ZXMgaW50bwotKyMgY29uZmlnLmguaW4gdG8gcHJvZHVjZSBj b25maWcuaC4KLSsKLSsjIENyZWF0ZSBhIGRlbGltaXRlciBzdHJpbmcgdGhhdCBkb2VzIG5vdCBl eGlzdCBpbiBjb25mZGVmcy5oLCB0byBlYXNlCi0rIyBoYW5kbGluZyBvZiBsb25nIGxpbmVzLgot K2FjX2RlbGltPSclIV8hIyAnCi0rZm9yIGFjX2xhc3RfdHJ5IGluIGZhbHNlIGZhbHNlIDo7IGRv Ci0rICBhY190dD1gc2VkIC1uICIvJGFjX2RlbGltL3AiIGNvbmZkZWZzLmhgCi0rICBpZiB0ZXN0 IC16ICIkYWNfdHQiOyB0aGVuCi0rICAgIGJyZWFrCi0rICBlbGlmICRhY19sYXN0X3RyeTsgdGhl bgotKyAgICBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IG1ha2UgJENPTkZJR19IRUFERVJTIiAi JExJTkVOTyIgNQotKyAgZWxzZQotKyAgICBhY19kZWxpbT0iJGFjX2RlbGltISRhY19kZWxpbSBf JGFjX2RlbGltISEgIgotKyAgZmkKLStkb25lCi0rCi0rIyBGb3IgdGhlIGF3ayBzY3JpcHQsIEQg aXMgYW4gYXJyYXkgb2YgbWFjcm8gdmFsdWVzIGtleWVkIGJ5IG5hbWUsCi0rIyBsaWtld2lzZSBQ IGNvbnRhaW5zIG1hY3JvIHBhcmFtZXRlcnMgaWYgYW55LiAgUHJlc2VydmUgYmFja3NsYXNoCi0r IyBuZXdsaW5lIHNlcXVlbmNlcy4KLSsKLSthY193b3JkX3JlPVtfJGFzX2NyX0xldHRlcnNdW18k YXNfY3JfYWxudW1dKgotK3NlZCAtbiAnCi0rcy8uXHsxNDhcfS8mJyIkYWNfZGVsaW0iJy9nCi0r dCByc2V0Ci0rOnJzZXQKLStzL15bCSBdKiNbCSBdKmRlZmluZVsJIF1bCSBdKi8gLwotK3QgZGVm Ci0rZAotKzpkZWYKLStzL1xcJC8vCi0rdCBic25sCi0rcy9bIlxcXS9cXCYvZwotK3MvXiBcKCci JGFjX3dvcmRfcmUiJ1wpXCgoW14oKV0qKVwpWwkgXSpcKC4qXCkvUFsiXDEiXT0iXDIiXAotK0Rb IlwxIl09IiBcMyIvcAotK3MvXiBcKCciJGFjX3dvcmRfcmUiJ1wpWwkgXSpcKC4qXCkvRFsiXDEi XT0iIFwyIi9wCi0rZAotKzpic25sCi0rcy9bIlxcXS9cXCYvZwotK3MvXiBcKCciJGFjX3dvcmRf cmUiJ1wpXCgoW14oKV0qKVwpWwkgXSpcKC4qXCkvUFsiXDEiXT0iXDIiXAotK0RbIlwxIl09IiBc M1xcXFxcXG4iXFwvcAotK3QgY29udAotK3MvXiBcKCciJGFjX3dvcmRfcmUiJ1wpWwkgXSpcKC4q XCkvRFsiXDEiXT0iIFwyXFxcXFxcbiJcXC9wCi0rdCBjb250Ci0rZAotKzpjb250Ci0rbgotK3Mv Llx7MTQ4XH0vJiciJGFjX2RlbGltIicvZwotK3QgY2xlYXIKLSs6Y2xlYXIKLStzL1xcJC8vCi0r dCBic25sYwotK3MvWyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kLyIvcAotK2QKLSs6YnNubGMKLStz L1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC9cXFxcXFxuIlxcL3AKLStiIGNvbnQKLSsnIDxjb25m ZGVmcy5oIHwgc2VkICcKLStzLyciJGFjX2RlbGltIicvIlxcXAotKyIvZycgPj4kQ09ORklHX1NU QVRVUyB8fCBhY193cml0ZV9mYWlsPTEKLSsKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VP RiB8fCBhY193cml0ZV9mYWlsPTEKLSsgIGZvciAoa2V5IGluIEQpIERfaXNfc2V0W2tleV0gPSAx Ci0rICBGUyA9ICIHIgotK30KLSsvXltcdCBdKiNbXHQgXSooZGVmaW5lfHVuZGVmKVtcdCBdKyRh Y193b3JkX3JlKFtcdCAoXXxcJCkvIHsKLSsgIGxpbmUgPSBcJCAwCi0rICBzcGxpdChsaW5lLCBh cmcsICIgIikKLSsgIGlmIChhcmdbMV0gPT0gIiMiKSB7Ci0rICAgIGRlZnVuZGVmID0gYXJnWzJd Ci0rICAgIG1hYzEgPSBhcmdbM10KLSsgIH0gZWxzZSB7Ci0rICAgIGRlZnVuZGVmID0gc3Vic3Ry KGFyZ1sxXSwgMikKLSsgICAgbWFjMSA9IGFyZ1syXQotKyAgfQotKyAgc3BsaXQobWFjMSwgbWFj MiwgIigiKSAjKQotKyAgbWFjcm8gPSBtYWMyWzFdCi0rICBwcmVmaXggPSBzdWJzdHIobGluZSwg MSwgaW5kZXgobGluZSwgZGVmdW5kZWYpIC0gMSkKLSsgIGlmIChEX2lzX3NldFttYWNyb10pIHsK LSsgICAgIyBQcmVzZXJ2ZSB0aGUgd2hpdGUgc3BhY2Ugc3Vycm91bmRpbmcgdGhlICIjIi4KLSsg ICAgcHJpbnQgcHJlZml4ICJkZWZpbmUiLCBtYWNybyBQW21hY3JvXSBEW21hY3JvXQotKyAgICBu ZXh0Ci0rICB9IGVsc2UgewotKyAgICAjIFJlcGxhY2UgI3VuZGVmIHdpdGggY29tbWVudHMuICBU aGlzIGlzIG5lY2Vzc2FyeSwgZm9yIGV4YW1wbGUsCi0rICAgICMgaW4gdGhlIGNhc2Ugb2YgX1BP U0lYX1NPVVJDRSwgd2hpY2ggaXMgcHJlZGVmaW5lZCBhbmQgcmVxdWlyZWQKLSsgICAgIyBvbiBz b21lIHN5c3RlbXMgd2hlcmUgY29uZmlndXJlIHdpbGwgbm90IGRlY2lkZSB0byBkZWZpbmUgaXQu Ci0rICAgIGlmIChkZWZ1bmRlZiA9PSAidW5kZWYiKSB7Ci0rICAgICAgcHJpbnQgIi8qIiwgcHJl Zml4IGRlZnVuZGVmLCBtYWNybywgIiovIgotKyAgICAgIG5leHQKLSsgICAgfQotKyAgfQotK30K LSt7IHByaW50IH0KLStfQUNBV0sKLStfQUNFT0YKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxf QUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rICBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IHNl dHVwIGNvbmZpZyBoZWFkZXJzIG1hY2hpbmVyeSIgIiRMSU5FTk8iIDUKLStmaSAjIHRlc3QgLW4g IiRDT05GSUdfSEVBREVSUyIKLSsKLSsKLStldmFsIHNldCBYICIgIDpGICRDT05GSUdfRklMRVMg IDpIICRDT05GSUdfSEVBREVSUyAgICA6QyAkQ09ORklHX0NPTU1BTkRTIgotK3NoaWZ0Ci0rZm9y IGFjX3RhZwotK2RvCi0rICBjYXNlICRhY190YWcgaW4KLSsgIDpbRkhMQ10pIGFjX21vZGU9JGFj X3RhZzsgY29udGludWU7OwotKyAgZXNhYwotKyAgY2FzZSAkYWNfbW9kZSRhY190YWcgaW4KLSsg IDpbRkhMXSo6Kik7OwotKyAgOkwqIHwgOkMqOiopIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHRh ZyBcYCRhY190YWcnIiAiJExJTkVOTyIgNTs7Ci0rICA6W0ZIXS0pIGFjX3RhZz0tOi07OwotKyAg OltGSF0qKSBhY190YWc9JGFjX3RhZzokYWNfdGFnLmluOzsKLSsgIGVzYWMKLSsgIGFjX3NhdmVf SUZTPSRJRlMKLSsgIElGUz06Ci0rICBzZXQgeCAkYWNfdGFnCi0rICBJRlM9JGFjX3NhdmVfSUZT Ci0rICBzaGlmdAotKyAgYWNfZmlsZT0kMQotKyAgc2hpZnQKLSsKLSsgIGNhc2UgJGFjX21vZGUg aW4KLSsgIDpMKSBhY19zb3VyY2U9JDE7OwotKyAgOltGSF0pCi0rICAgIGFjX2ZpbGVfaW5wdXRz PQotKyAgICBmb3IgYWNfZgotKyAgICBkbwotKyAgICAgIGNhc2UgJGFjX2YgaW4KLSsgICAgICAt KSBhY19mPSIkYWNfdG1wL3N0ZGluIjs7Ci0rICAgICAgKikgIyBMb29rIGZvciB0aGUgZmlsZSBm aXJzdCBpbiB0aGUgYnVpbGQgdHJlZSwgdGhlbiBpbiB0aGUgc291cmNlIHRyZWUKLSsJICMgKGlm IHRoZSBwYXRoIGlzIG5vdCBhYnNvbHV0ZSkuICBUaGUgYWJzb2x1dGUgcGF0aCBjYW5ub3QgYmUg RE9TLXN0eWxlLAotKwkgIyBiZWNhdXNlICRhY19mIGNhbm5vdCBjb250YWluIGA6Jy4KLSsJIHRl c3QgLWYgIiRhY19mIiB8fAotKwkgICBjYXNlICRhY19mIGluCi0rCSAgIFtcXC8kXSopIGZhbHNl OzsKLSsJICAgKikgdGVzdCAtZiAiJHNyY2Rpci8kYWNfZiIgJiYgYWNfZj0iJHNyY2Rpci8kYWNf ZiI7OwotKwkgICBlc2FjIHx8Ci0rCSAgIGFzX2ZuX2Vycm9yIDEgImNhbm5vdCBmaW5kIGlucHV0 IGZpbGU6IFxgJGFjX2YnIiAiJExJTkVOTyIgNTs7Ci0rICAgICAgZXNhYwotKyAgICAgIGNhc2Ug JGFjX2YgaW4gKlwnKikgYWNfZj1gJGFzX2VjaG8gIiRhY19mIiB8IHNlZCAicy8nLydcXFxcXFxc XCcnL2ciYDs7IGVzYWMKLSsgICAgICBhc19mbl9hcHBlbmQgYWNfZmlsZV9pbnB1dHMgIiAnJGFj X2YnIgotKyAgICBkb25lCi0rCi0rICAgICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29u ZmlndXJlJyB3aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0Ci0rICAgICMgdXNlICRhc19t ZSksIHBlb3BsZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKLSsgICAgIyAgICAvKiBjb25m aWcuaC4gIEdlbmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8KLSsgICAgY29uZmlndXJlX2lu cHV0PSdHZW5lcmF0ZWQgZnJvbSAnYAotKwkgICRhc19lY2hvICIkKiIgfCBzZWQgJ3N8XlteOl0q L3x8O3N8OlteOl0qL3wsIHxnJwotKwlgJyBieSBjb25maWd1cmUuJwotKyAgICBpZiB0ZXN0IHgi JGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0rICAgICAgY29uZmlndXJlX2lucHV0PSIkYWNfZmlsZS4g ICRjb25maWd1cmVfaW5wdXQiCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjcmVhdGluZyAkYWNfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogY3Jl YXRpbmcgJGFjX2ZpbGUiID4mNjt9Ci0gICAgIGZpCi0tZmkKLSsgICAgIyBOZXV0cmFsaXplIHNw ZWNpYWwgY2hhcmFjdGVycyBpbnRlcnByZXRlZCBieSBzZWQgaW4gcmVwbGFjZW1lbnQgc3RyaW5n cy4KLSsgICAgY2FzZSAkY29uZmlndXJlX2lucHV0IGluICMoCi0rICAgICpcJiogfCAqXHwqIHwg KlxcKiApCi0rICAgICAgIGFjX3NlZF9jb25mX2lucHV0PWAkYXNfZWNobyAiJGNvbmZpZ3VyZV9p bnB1dCIgfAotKyAgICAgICBzZWQgJ3MvW1xcXFwmfF0vXFxcXCYvZydgOzsgIygKLSsgICAgKikg YWNfc2VkX2NvbmZfaW5wdXQ9JGNvbmZpZ3VyZV9pbnB1dDs7Ci0rICAgIGVzYWMKLSAKLS1ta2Rp ciAtcCBidWlsZC91bml4L2xvY2FsCi0tcGF0aD0iYnVpbGQvdW5peC9sb2NhbC9wYXJhbWV0ZXJz IgotLXJtIC1mICRwYXRoCi0tdG91Y2ggJHBhdGgKLS1mb3IgcGFyYW0gaW4gJCoKLS1kbwotLSAg ICAgICAgZWNobyAkcGFyYW0gPj4gJHBhdGgKLS1kb25lCi0tCi0tcHJpbnRmICdUcnlpbmcgdG8g ZmluZCB0aGUgVGNsIGludGVycHJldGVyLi4uICcKLS10Y2xfZm91bmQ9MAotLQotLWZvciBwYXRo IGluICIvdXNyL2Jpbi90Y2xzaCIgXAotLSAgICAgICAgICAgICIvdXNyL2xvY2FsL2Jpbi90Y2xz aDguNSIgXAotLSAgICAgICAgICAgICIvdXNyL2xvY2FsL2Jpbi90Y2xzaDguNCIgXAotLSAgICAg ICAgICAgICIvdXNyL2xvY2FsL2Jpbi90Y2xzaDguMyI7IGRvCi0tICAgIGlmIFsgLXggJHBhdGgg XQotLSAgICB0aGVuCi0tICAgICAgICBlY2hvICRwYXRoID4gYnVpbGQvdW5peC9sb2NhbC90Y2wK LS0gICAgICAgIGVjaG8gJHBhdGgKLS0gICAgICAgIHRjbF9mb3VuZD0xCi0tICAgICAgICBicmVh awotKyAgICBjYXNlICRhY190YWcgaW4KLSsgICAgKjotOiogfCAqOi0pIGNhdCA+IiRhY190bXAv c3RkaW4iIFwKLSsgICAgICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAkYWNf ZmlsZSIgIiRMSU5FTk8iIDUgOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwotKwotKyAg YWNfZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFjX2ZpbGUiIHx8Ci0rJGFzX2V4cHIgWCIkYWNfZmls ZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLSsJIFgiJGFjX2ZpbGUiIDog J1hcKC8vXClbXi9dJyBcfCBcCi0rCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkg WCIkYWNfZmlsZSIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2VjaG8gWCIk YWNfZmlsZSIgfAotKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewot KwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJ ICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8v XDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkg ICAgcQotKwkgIH0KLSsJICBzLy4qLy4vOyBxJ2AKLSsgIGFzX2Rpcj0iJGFjX2RpciI7IGFzX2Zu X21rZGlyX3AKLSsgIGFjX2J1aWxkZGlyPS4KLSsKLStjYXNlICIkYWNfZGlyIiBpbgotKy4pIGFj X2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7 OwotKyopCi0rICBhY19kaXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5c LltcXC9dfHwnYAotKyAgIyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3Vm Zml4LgotKyAgYWNfdG9wX2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8 IHNlZCAnc3wvW15cXC9dKnwvLi58ZztzfC98fCdgCi0rICBjYXNlICRhY190b3BfYnVpbGRkaXJf c3ViIGluCi0rICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9 IDs7Ci0rICAqKSAgYWNfdG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsK LSsgIGVzYWMgOzsKLStlc2FjCi0rYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCi0rYWNfYWJz X2J1aWxkZGlyPSRhY19wd2QkYWNfZGlyX3N1ZmZpeAotKyMgZm9yIGJhY2t3YXJkIGNvbXBhdGli aWxpdHk6Ci0rYWNfdG9wX2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4Ci0rCi0rY2FzZSAk c3JjZGlyIGluCi0rICAuKSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0rICAgIGFjX3Ny Y2Rpcj0uCi0rICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKLSsgICAgYWNf YWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7OwotKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNv bHV0ZSBuYW1lLgotKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotKyAgICBh Y190b3Bfc3JjZGlyPSRzcmNkaXIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7Owot KyAgKikgIyBSZWxhdGl2ZSBuYW1lLgotKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVm aXgkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxk X3ByZWZpeCRzcmNkaXIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7 Ci0rZXNhYwotK2FjX2Fic19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgK LSsKLSsKLSsgIGNhc2UgJGFjX21vZGUgaW4KLSsgIDpGKQotKyAgIwotKyAgIyBDT05GSUdfRklM RQotKyAgIwotKwotKyAgY2FzZSAkSU5TVEFMTCBpbgotKyAgW1xcLyRdKiB8ID86W1xcL10qICkg YWNfSU5TVEFMTD0kSU5TVEFMTCA7OwotKyAgKikgYWNfSU5TVEFMTD0kYWNfdG9wX2J1aWxkX3By ZWZpeCRJTlNUQUxMIDs7Ci0rICBlc2FjCi0rICBhY19NS0RJUl9QPSRNS0RJUl9QCi0rICBjYXNl ICRNS0RJUl9QIGluCi0rICBbXFwvJF0qIHwgPzpbXFwvXSogKSA7OwotKyAgKi8qKSBhY19NS0RJ Ul9QPSRhY190b3BfYnVpbGRfcHJlZml4JE1LRElSX1AgOzsKLSsgIGVzYWMKLStfQUNFT0YKLSsK LStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyBJ ZiB0aGUgdGVtcGxhdGUgZG9lcyBub3Qga25vdyBhYm91dCBkYXRhcm9vdGRpciwgZXhwYW5kIGl0 LgotKyMgRklYTUU6IFRoaXMgaGFjayBzaG91bGQgYmUgcmVtb3ZlZCBhIGZldyB5ZWFycyBhZnRl ciAyLjYwLgotK2FjX2RhdGFyb290ZGlyX2hhY2s9OyBhY19kYXRhcm9vdGRpcl9zZWVuPQotK2Fj X3NlZF9kYXRhcm9vdD0nCi0rL2RhdGFyb290ZGlyLyB7Ci0rICBwCi0rICBxCi0rfQotKy9AZGF0 YWRpckAvcAotKy9AZG9jZGlyQC9wCi0rL0BpbmZvZGlyQC9wCi0rL0Bsb2NhbGVkaXJAL3AKLSsv QG1hbmRpckAvcCcKLStjYXNlIGBldmFsICJzZWQgLW4gXCJcJGFjX3NlZF9kYXRhcm9vdFwiICRh Y19maWxlX2lucHV0cyJgIGluCi0rKmRhdGFyb290ZGlyKikgYWNfZGF0YXJvb3RkaXJfc2Vlbj15 ZXM7OwotKypAZGF0YWRpckAqfCpAZG9jZGlyQCp8KkBpbmZvZGlyQCp8KkBsb2NhbGVkaXJAKnwq QG1hbmRpckAqKQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBX QVJOSU5HOiAkYWNfZmlsZV9pbnB1dHMgc2VlbXMgdG8gaWdub3JlIHRoZSAtLWRhdGFyb290ZGly IHNldHRpbmciID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19maWxlX2lucHV0 cyBzZWVtcyB0byBpZ25vcmUgdGhlIC0tZGF0YXJvb3RkaXIgc2V0dGluZyIgPiYyO30KLStfQUNF T0YKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSsg IGFjX2RhdGFyb290ZGlyX2hhY2s9JwotKyAgcyZAZGF0YWRpckAmJGRhdGFkaXImZwotKyAgcyZA ZG9jZGlyQCYkZG9jZGlyJmcKLSsgIHMmQGluZm9kaXJAJiRpbmZvZGlyJmcKLSsgIHMmQGxvY2Fs ZWRpckAmJGxvY2FsZWRpciZnCi0rICBzJkBtYW5kaXJAJiRtYW5kaXImZwotKyAgcyZcXFwke2Rh dGFyb290ZGlyfSYkZGF0YXJvb3RkaXImZycgOzsKLStlc2FjCi0rX0FDRU9GCi0rCi0rIyBOZXV0 cmFsaXplIFZQQVRIIHdoZW4gYCRzcmNkaXInID0gYC4nLgotKyMgU2hlbGwgY29kZSBpbiBjb25m aWd1cmUuYWMgbWlnaHQgc2V0IGV4dHJhc3ViLgotKyMgRklYTUU6IGRvIHdlIHJlYWxseSB3YW50 IHRvIG1haW50YWluIHRoaXMgZmVhdHVyZT8KLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VP RiB8fCBhY193cml0ZV9mYWlsPTEKLSthY19zZWRfZXh0cmE9IiRhY192cHN1YgotKyRleHRyYXN1 YgotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9m YWlsPTEKLSs6dAotKy9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWIKLStzfEBjb25maWd1cmVf aW5wdXRAfCRhY19zZWRfY29uZl9pbnB1dHw7dCB0Ci0rcyZAdG9wX2J1aWxkZGlyQCYkYWNfdG9w X2J1aWxkZGlyX3N1YiY7dCB0Ci0rcyZAdG9wX2J1aWxkX3ByZWZpeEAmJGFjX3RvcF9idWlsZF9w cmVmaXgmO3QgdAotK3MmQHNyY2RpckAmJGFjX3NyY2RpciY7dCB0Ci0rcyZAYWJzX3NyY2RpckAm JGFjX2Fic19zcmNkaXImO3QgdAotK3MmQHRvcF9zcmNkaXJAJiRhY190b3Bfc3JjZGlyJjt0IHQK LStzJkBhYnNfdG9wX3NyY2RpckAmJGFjX2Fic190b3Bfc3JjZGlyJjt0IHQKLStzJkBidWlsZGRp ckAmJGFjX2J1aWxkZGlyJjt0IHQKLStzJkBhYnNfYnVpbGRkaXJAJiRhY19hYnNfYnVpbGRkaXIm O3QgdAotK3MmQGFic190b3BfYnVpbGRkaXJAJiRhY19hYnNfdG9wX2J1aWxkZGlyJjt0IHQKLStz JkBJTlNUQUxMQCYkYWNfSU5TVEFMTCY7dCB0Ci0rcyZATUtESVJfUEAmJGFjX01LRElSX1AmO3Qg dAotKyRhY19kYXRhcm9vdGRpcl9oYWNrCi0rIgotK2V2YWwgc2VkIFwiXCRhY19zZWRfZXh0cmFc IiAiJGFjX2ZpbGVfaW5wdXRzIiB8ICRBV0sgLWYgIiRhY190bXAvc3Vicy5hd2siIFwKLSsgID4k YWNfdG1wL291dCB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIg IiRMSU5FTk8iIDUKLSsKLSt0ZXN0IC16ICIkYWNfZGF0YXJvb3RkaXJfaGFjayRhY19kYXRhcm9v dGRpcl9zZWVuIiAmJgotKyAgeyBhY19vdXQ9YHNlZCAtbiAnL1wke2RhdGFyb290ZGlyfS9wJyAi JGFjX3RtcC9vdXQiYDsgdGVzdCAtbiAiJGFjX291dCI7IH0gJiYKLSsgIHsgYWNfb3V0PWBzZWQg LW4gJy9eWwkgXSpkYXRhcm9vdGRpclsJIF0qOio9L3AnIFwKLSsgICAgICAiJGFjX3RtcC9vdXQi YDsgdGVzdCAteiAiJGFjX291dCI7IH0gJiYKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogV0FSTklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8g dGhlIHZhcmlhYmxlIFxgZGF0YXJvb3RkaXInCi0rd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVk LiAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkIiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiAkYWNfZmlsZSBjb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFyaWFibGUg XGBkYXRhcm9vdGRpcicKLSt3aGljaCBzZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVhc2UgbWFr ZSBzdXJlIGl0IGlzIGRlZmluZWQiID4mMjt9Ci0rCi0rICBybSAtZiAiJGFjX3RtcC9zdGRpbiIK LSsgIGNhc2UgJGFjX2ZpbGUgaW4KLSsgIC0pIGNhdCAiJGFjX3RtcC9vdXQiICYmIHJtIC1mICIk YWNfdG1wL291dCI7OwotKyAgKikgcm0gLWYgIiRhY19maWxlIiAmJiBtdiAiJGFjX3RtcC9vdXQi ICIkYWNfZmlsZSI7OwotKyAgZXNhYyBcCi0rICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90 IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUKLSsgOzsKLSsgIDpIKQotKyAgIwotKyAgIyBD T05GSUdfSEVBREVSCi0rICAjCi0rICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0r ICAgIHsKLSsgICAgICAkYXNfZWNobyAiLyogJGNvbmZpZ3VyZV9pbnB1dCAgKi8iIFwKLSsgICAg ICAmJiBldmFsICckQVdLIC1mICIkYWNfdG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0 cyIKLSsgICAgfSA+IiRhY190bXAvY29uZmlnLmgiIFwKLSsgICAgICB8fCBhc19mbl9lcnJvciAk PyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUKLSsgICAgaWYgZGlmZiAi JGFjX2ZpbGUiICIkYWNfdG1wL2NvbmZpZy5oIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY19maWxlIGlzIHVu Y2hhbmdlZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+ JjY7fQotKyAgICBlbHNlCi0rICAgICAgcm0gLWYgIiRhY19maWxlIgotKyAgICAgIG12ICIkYWNf dG1wL2NvbmZpZy5oIiAiJGFjX2ZpbGUiIFwKLSsJfHwgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5v dCBjcmVhdGUgJGFjX2ZpbGUiICIkTElORU5PIiA1Ci0gICAgIGZpCi0rICBlbHNlCi0rICAgICRh c19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAqLyIgXAotKyAgICAgICYmIGV2YWwgJyRBV0sg LWYgIiRhY190bXAvZGVmaW5lcy5hd2siJyAiJGFjX2ZpbGVfaW5wdXRzIiBcCi0rICAgICAgfHwg YXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBjcmVhdGUgLSIgIiRMSU5FTk8iIDUKLSsgIGZpCi0r IyBDb21wdXRlICIkYWNfZmlsZSIncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCi0rX2FtX2Fy Zz0iJGFjX2ZpbGUiCi0rX2FtX3N0YW1wX2NvdW50PTEKLStmb3IgX2FtX2hlYWRlciBpbiAkY29u ZmlnX2hlYWRlcnMgOjsgZG8KLSsgIGNhc2UgJF9hbV9oZWFkZXIgaW4KLSsgICAgJF9hbV9hcmcg fCAkX2FtX2FyZzoqICkKLSsgICAgICBicmVhayA7OwotKyAgICAqICkKLSsgICAgICBfYW1fc3Rh bXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCArIDFgIDs7Ci0rICBlc2FjCi0gZG9uZQot K2VjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5gJGFzX2Rpcm5hbWUgLS0gIiRfYW1fYXJn IiB8fAotKyRhc19leHByIFgiJF9hbV9hcmciIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyok JyBcfCBcCi0rCSBYIiRfYW1fYXJnIiA6ICdYXCgvL1wpW14vXScgXHwgXAotKwkgWCIkX2FtX2Fy ZyIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgiJF9hbV9hcmciIDogJ1hcKC9cKScgXHwgLiAyPi9k ZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJF9hbV9hcmciIHwKLSsgICAgc2VkICcvXlhcKC4qW14v XVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJ ICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAg L15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwv XCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgL3N0 YW1wLWgkX2FtX3N0YW1wX2NvdW50Ci0rIDs7Ci0gCi0taWYgWyAkdGNsX2ZvdW5kIC1lcSAwIF0K LS10aGVuCi0tICAgICAgICBlY2hvICdOT1QgZm91bmQuJwotLSAgICAgICAgZWNobyAnSXMgdGhl IFRjbCBpbnN0YWxsZWQ/JwotLSAgICAgICAgZXhpdAotKyAgOkMpICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGV4ZWN1dGluZyAkYWNfZmlsZSBjb21tYW5kcyIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogZXhlY3V0aW5nICRhY19maWxlIGNvbW1hbmRzIiA+JjY7fQot KyA7OwotKyAgZXNhYwotKwotKwotKyAgY2FzZSAkYWNfZmlsZSRhY19tb2RlIGluCi0rICAgICJk ZXBmaWxlcyI6QykgdGVzdCB4IiRBTURFUF9UUlVFIiAhPSB4IiIgfHwgewotKyAgIyBBdXRvY29u ZiAyLjYyIHF1b3RlcyAtLWZpbGUgYXJndW1lbnRzIGZvciBldmFsLCBidXQgbm90IHdoZW4gZmls ZXMKLSsgICMgYXJlIGxpc3RlZCB3aXRob3V0IC0tZmlsZS4gIExldCdzIHBsYXkgc2FmZSBhbmQg b25seSBlbmFibGUgdGhlIGV2YWwKLSsgICMgaWYgd2UgZGV0ZWN0IHRoZSBxdW90aW5nLgotKyAg Y2FzZSAkQ09ORklHX0ZJTEVTIGluCi0rICAqXCcqKSBldmFsIHNldCB4ICIkQ09ORklHX0ZJTEVT IiA7OwotKyAgKikgICBzZXQgeCAkQ09ORklHX0ZJTEVTIDs7Ci0rICBlc2FjCi0rICBzaGlmdAot KyAgZm9yIG1mCi0rICBkbwotKyAgICAjIFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRoZSBu YW1lIG9mIHRoZSBmaWxlLgotKyAgICBtZj1gZWNobyAiJG1mIiB8IHNlZCAtZSAncy86LiokLy8n YAotKyAgICAjIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhbiBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFr ZWZpbGUgb3Igbm90LgotKyAgICAjIFdlIHVzZWQgdG8gbWF0Y2ggb25seSB0aGUgZmlsZXMgbmFt ZWQgYE1ha2VmaWxlLmluJywgYnV0Ci0rICAgICMgc29tZSBwZW9wbGUgcmVuYW1lIHRoZW07IHNv IGluc3RlYWQgd2UgbG9vayBhdCB0aGUgZmlsZSBjb250ZW50LgotKyAgICAjIEdyZXAnaW5nIHRo ZSBmaXJzdCBsaW5lIGlzIG5vdCBlbm91Z2g6IHNvbWUgcGVvcGxlIHBvc3QtcHJvY2VzcwotKyAg ICAjIGVhY2ggTWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9uIHRvcCBvZiBlYWNoIGZp bGUgdG8gc2F5IHNvLgotKyAgICAjIEdyZXAnaW5nIHRoZSB3aG9sZSBmaWxlIGlzIG5vdCBnb29k IGVpdGhlcjogQUlYIGdyZXAgaGFzIGEgbGluZQotKyAgICAjIGxpbWl0IG9mIDIwNDgsIGJ1dCBh bGwgc2VkJ3Mgd2Uga25vdyBoYXZlIHVuZGVyc3RhbmQgYXQgbGVhc3QgNDAwMC4KLSsgICAgaWYg c2VkIC1uICdzLF4jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UuKixYLHAnICIkbWYiIHwgZ3JlcCBY ID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICAgIGRpcnBhcnQ9YCRhc19kaXJuYW1lIC0tICIk bWYiIHx8Ci0rJGFzX2V4cHIgWCIkbWYiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBc fCBcCi0rCSBYIiRtZiIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJG1mIiA6ICdYXCgvL1wp JCcgXHwgXAotKwkgWCIkbWYiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19l Y2hvIFgiJG1mIiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97 Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewot KwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBz Ly9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0r CSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKyAgICBlbHNlCi0rICAgICAgY29udGlu dWUKLSsgICAgZmkKLSsgICAgIyBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIERFUERJUiwgYW1f X2luY2x1ZGUsIGFuZCBhbV9fcXVvdGUKLSsgICAgIyBmcm9tIHRoZSBNYWtlZmlsZSB3aXRob3V0 IHJ1bm5pbmcgYG1ha2UnLgotKyAgICBERVBESVI9YHNlZCAtbiAncy9eREVQRElSID0gLy9wJyA8 ICIkbWYiYAotKyAgICB0ZXN0IC16ICIkREVQRElSIiAmJiBjb250aW51ZQotKyAgICBhbV9faW5j bHVkZT1gc2VkIC1uICdzL15hbV9faW5jbHVkZSA9IC8vcCcgPCAiJG1mImAKLSsgICAgdGVzdCAt eiAiYW1fX2luY2x1ZGUiICYmIGNvbnRpbnVlCi0rICAgIGFtX19xdW90ZT1gc2VkIC1uICdzL15h bV9fcXVvdGUgPSAvL3AnIDwgIiRtZiJgCi0rICAgICMgV2hlbiB1c2luZyBhbnNpMmtuciwgVSBt YXkgYmUgZW1wdHkgb3IgYW4gdW5kZXJzY29yZTsgZXhwYW5kIGl0Ci0rICAgIFU9YHNlZCAtbiAn cy9eVSA9IC8vcCcgPCAiJG1mImAKLSsgICAgIyBGaW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBm aWxlcywgdGhleSBhcmUgaW5jbHVkZWQgZmlsZXMgd2l0aAotKyAgICAjICQoREVQRElSKSBpbiB0 aGVpciBuYW1lcy4gIFdlIGludm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBpdCBpcyB0aGUKLSsgICAg IyBzaW1wbGVzdCBhcHByb2FjaCB0byBjaGFuZ2luZyAkKERFUERJUikgdG8gaXRzIGFjdHVhbCB2 YWx1ZSBpbiB0aGUKLSsgICAgIyBleHBhbnNpb24uCi0rICAgIGZvciBmaWxlIGluIGBzZWQgLW4g IgotKyAgICAgIHMvXiRhbV9faW5jbHVkZSAkYW1fX3F1b3RlXCguKihERVBESVIpLipcKSRhbV9f cXVvdGUiJyQvXDEvcCcgPCIkbWYiIHwgXAotKwkgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQ RElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCi0rICAgICAgIyBNYWtlIHN1cmUgdGhl IGRpcmVjdG9yeSBleGlzdHMuCi0rICAgICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNv bnRpbnVlCi0rICAgICAgZmRpcj1gJGFzX2Rpcm5hbWUgLS0gIiRmaWxlIiB8fAotKyRhc19leHBy IFgiJGZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0rCSBYIiRmaWxl IiA6ICdYXCgvL1wpW14vXScgXHwgXAotKwkgWCIkZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJ IFgiJGZpbGUiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJGZp bGUiIHwKLSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAg IHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBz Ly9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwot KwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEK LSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICAgICAgYXNfZGlyPSRkaXJwYXJ0LyRmZGlyOyBh c19mbl9ta2Rpcl9wCi0rICAgICAgIyBlY2hvICJjcmVhdGluZyAkZGlycGFydC8kZmlsZSIKLSsg ICAgICBlY2hvICcjIGR1bW15JyA+ICIkZGlycGFydC8kZmlsZSIKLSsgICAgZG9uZQotKyAgZG9u ZQotK30KLSsgOzsKLSsgICAgImxpYnRvb2wiOkMpCi0rCi0rICAgICMgU2VlIGlmIHdlIGFyZSBy dW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKLSsgICAg IyBjb21tYW5kcyB0aHJvdWdoIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCi0rICAgIGlm IHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCi0rICAgICAgc2V0b3B0IE5PX0dM T0JfU1VCU1QKLSsgICAgZmkKLSsKLSsgICAgY2ZnZmlsZT0iJHtvZmlsZX1UIgotKyAgICB0cmFw ICIkUk0gXCIkY2ZnZmlsZVwiOyBleGl0IDEiIDEgMiAxNQotKyAgICAkUk0gIiRjZmdmaWxlIgot KwotKyAgICBjYXQgPDxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsjISAkU0hFTEwKLSsKLSsjIGAk RUNITyAiJG9maWxlIiB8IHNlZCAncyVeLiovJSUnYCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGli cmFyeS1idWlsZGluZyBzdXBwb3J0IHNlcnZpY2VzLgotKyMgR2VuZXJhdGVkIGF1dG9tYXRpY2Fs bHkgYnkgJGFzX21lICgkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCi0rIyBMaWJ0b29sIHdh cyBjb25maWd1cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwg fCBzZWQgMXFgOgotKyMgTk9URTogQ2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxv c3Q6IGxvb2sgYXQgbHRtYWluLnNoLgotKyMKLSsjICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3 LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LAotKyMgICAgICAgICAg ICAgICAgIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLAotKyMgICAgICAgICAgICAgICAgIEluYy4KLSsjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0 emlna2VpdCwgMTk5NgotKyMKLSsjICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wu Ci0rIwotKyMgR05VIExpYnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCi0rIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotKyMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKLSsjIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNl cHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAotKyMgaWYgeW91IGRpc3Ry aWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAotKyMg aXMgYnVpbHQgdXNpbmcgR05VIExpYnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5k ZXIgdGhlCi0rIyBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSBy ZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLSsjCi0rIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsj IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKLSsjIGFsb25nIHdpdGggR05VIExpYnRvb2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAg SWYgbm90LCBhIGNvcHkKLSsjIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzL2dwbC5odG1sLCBvcgotKyMgb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAotKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBG aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0rCi0rCi0rIyBUaGUgbmFt ZXMgb2YgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3JpcHQu Ci0rYXZhaWxhYmxlX3RhZ3M9IkNYWCAiCi0rCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBDT05GSUcK LSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCi0rYnVpbGRf bGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVkCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBidWls ZCBzdGF0aWMgbGlicmFyaWVzLgotK2J1aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCi0rCi0r IyBXaGljaCByZWxlYXNlIG9mIGxpYnRvb2wubTQgd2FzIHVzZWQ/Ci0rbWFjcm9fdmVyc2lvbj0k bWFjcm9fdmVyc2lvbgotK21hY3JvX3JldmlzaW9uPSRtYWNyb19yZXZpc2lvbgotKwotKyMgV2hh dCB0eXBlIG9mIG9iamVjdHMgdG8gYnVpbGQuCi0rcGljX21vZGU9JHBpY19tb2RlCi0rCi0rIyBX aGV0aGVyIG9yIG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCi0rZmFzdF9p bnN0YWxsPSRlbmFibGVfZmFzdF9pbnN0YWxsCi0rCi0rIyBTaGVsbCB0byB1c2Ugd2hlbiBpbnZv a2luZyBzaGVsbCBzY3JpcHRzLgotK1NIRUxMPSRsdF9TSEVMTAotKwotKyMgQW4gZWNobyBwcm9n cmFtIHRoYXQgcHJvdGVjdHMgYmFja3NsYXNoZXMuCi0rRUNITz0kbHRfRUNITwotKwotKyMgVGhl IGhvc3Qgc3lzdGVtLgotK2hvc3RfYWxpYXM9JGhvc3RfYWxpYXMKLStob3N0PSRob3N0Ci0raG9z dF9vcz0kaG9zdF9vcwotKwotKyMgVGhlIGJ1aWxkIHN5c3RlbS4KLStidWlsZF9hbGlhcz0kYnVp bGRfYWxpYXMKLStidWlsZD0kYnVpbGQKLStidWlsZF9vcz0kYnVpbGRfb3MKLSsKLSsjIEEgc2Vk IHByb2dyYW0gdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQuCi0rU0VEPSRsdF9TRUQKLSsK LSsjIFNlZCB0aGF0IGhlbHBzIHVzIGF2b2lkIGFjY2lkZW50YWxseSB0cmlnZ2VyaW5nIGVjaG8o MSkgb3B0aW9ucyBsaWtlIC1uLgotK1hzZWQ9IlwkU0VEIC1lIDFzL15YLy8iCi0rCi0rIyBBIGdy ZXAgcHJvZ3JhbSB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcy4KLStHUkVQPSRsdF9HUkVQCi0rCi0r IyBBbiBFUkUgbWF0Y2hlci4KLStFR1JFUD0kbHRfRUdSRVAKLSsKLSsjIEEgbGl0ZXJhbCBzdHJp bmcgbWF0Y2hlci4KLStGR1JFUD0kbHRfRkdSRVAKLSsKLSsjIEEgQlNELSBvciBNUy1jb21wYXRp YmxlIG5hbWUgbGlzdGVyLgotK05NPSRsdF9OTQotKwotKyMgV2hldGhlciB3ZSBuZWVkIHNvZnQg b3IgaGFyZCBsaW5rcy4KLStMTl9TPSRsdF9MTl9TCi0rCi0rIyBXaGF0IGlzIHRoZSBtYXhpbXVt IGxlbmd0aCBvZiBhIGNvbW1hbmQ/Ci0rbWF4X2NtZF9sZW49JG1heF9jbWRfbGVuCi0rCi0rIyBP YmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCi0rb2JqZXh0PSRhY19vYmpleHQKLSsK LSsjIEV4ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KLStleGVleHQ9JGV4ZWV4 dAotKwotKyMgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgInVuc2V0Ii4KLStsdF91bnNl dD0kbHRfdW5zZXQKLSsKLSsjIHR1cm4gc3BhY2VzIGludG8gbmV3bGluZXMuCi0rU1AyTkw9JGx0 X2x0X1NQMk5MCi0rCi0rIyB0dXJuIG5ld2xpbmVzIGludG8gc3BhY2VzLgotK05MMlNQPSRsdF9s dF9OTDJTUAotKwotKyMgY29udmVydCBcJGJ1aWxkIGZpbGUgbmFtZXMgdG8gXCRob3N0IGZvcm1h dC4KLSt0b19ob3N0X2ZpbGVfY21kPSRsdF9jdl90b19ob3N0X2ZpbGVfY21kCi0rCi0rIyBjb252 ZXJ0IFwkYnVpbGQgZmlsZXMgdG8gdG9vbGNoYWluIGZvcm1hdC4KLSt0b190b29sX2ZpbGVfY21k PSRsdF9jdl90b190b29sX2ZpbGVfY21kCi0rCi0rIyBBbiBvYmplY3Qgc3ltYm9sIGR1bXBlci4K LStPQkpEVU1QPSRsdF9PQkpEVU1QCi0rCi0rIyBNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBl bmRlbnQgbGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0cy4KLStkZXBsaWJzX2NoZWNrX21ldGhv ZD0kbHRfZGVwbGlic19jaGVja19tZXRob2QKLSsKLSsjIENvbW1hbmQgdG8gdXNlIHdoZW4gZGVw bGlic19jaGVja19tZXRob2QgPSAiZmlsZV9tYWdpYyIuCi0rZmlsZV9tYWdpY19jbWQ9JGx0X2Zp bGVfbWFnaWNfY21kCi0rCi0rIyBIb3cgdG8gZmluZCBwb3RlbnRpYWwgZmlsZXMgd2hlbiBkZXBs aWJzX2NoZWNrX21ldGhvZCA9ICJmaWxlX21hZ2ljIi4KLStmaWxlX21hZ2ljX2dsb2I9JGx0X2Zp bGVfbWFnaWNfZ2xvYgotKwotKyMgRmluZCBwb3RlbnRpYWwgZmlsZXMgdXNpbmcgbm9jYXNlZ2xv YiB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID0gImZpbGVfbWFnaWMiLgotK3dhbnRfbm9jYXNl Z2xvYj0kbHRfd2FudF9ub2Nhc2VnbG9iCi0rCi0rIyBETEwgY3JlYXRpb24gcHJvZ3JhbS4KLStE TExUT09MPSRsdF9ETExUT09MCi0rCi0rIyBDb21tYW5kIHRvIGFzc29jaWF0ZSBzaGFyZWQgYW5k IGxpbmsgbGlicmFyaWVzLgotK3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPSRsdF9zaGFyZWRs aWJfZnJvbV9saW5rbGliX2NtZAotKwotKyMgVGhlIGFyY2hpdmVyLgotK0FSPSRsdF9BUgotKwot KyMgRmxhZ3MgdG8gY3JlYXRlIGFuIGFyY2hpdmUuCi0rQVJfRkxBR1M9JGx0X0FSX0ZMQUdTCi0r Ci0rIyBIb3cgdG8gZmVlZCBhIGZpbGUgbGlzdGluZyB0byB0aGUgYXJjaGl2ZXIuCi0rYXJjaGl2 ZXJfbGlzdF9zcGVjPSRsdF9hcmNoaXZlcl9saXN0X3NwZWMKLSsKLSsjIEEgc3ltYm9sIHN0cmlw cGluZyBwcm9ncmFtLgotK1NUUklQPSRsdF9TVFJJUAotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBp bnN0YWxsIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgotK1JBTkxJQj0kbHRfUkFOTElCCi0rb2xkX3Bv c3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9jbWRzCi0rb2xkX3Bvc3R1bmluc3Rh bGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcwotKwotKyMgV2hldGhlciB0byB1c2Ug YSBsb2NrIGZvciBvbGQgYXJjaGl2ZSBleHRyYWN0aW9uLgotK2xvY2tfb2xkX2FyY2hpdmVfZXh0 cmFjdGlvbj0kbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uCi0rCi0rIyBBIEMgY29tcGlsZXIu Ci0rTFRDQz0kbHRfQ0MKLSsKLSsjIExUQ0MgY29tcGlsZXIgZmxhZ3MuCi0rTFRDRkxBR1M9JGx0 X0NGTEFHUwotKwotKyMgVGFrZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlzdGlu ZyBvZiByYXcgc3ltYm9scyBhbmQgQyBuYW1lcy4KLStnbG9iYWxfc3ltYm9sX3BpcGU9JGx0X2x0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9m IG5tIGluIGEgcHJvcGVyIEMgZGVjbGFyYXRpb24uCi0rZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0k bHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wKLSsKLSsjIFRyYW5zZm9ybSB0aGUg b3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpci4KLStnbG9iYWxfc3ltYm9sX3Rv X2NfbmFtZV9hZGRyZXNzPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRk cmVzcwotKwotKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVz cyBwYWlyIHdoZW4gbGliIHByZWZpeCBpcyBuZWVkZWQuCi0rZ2xvYmFsX3N5bWJvbF90b19jX25h bWVfYWRkcmVzc19saWJfcHJlZml4PSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25h bWVfYWRkcmVzc19saWJfcHJlZml4Ci0rCi0rIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcg aW5wdXQgZmlsZXMgZm9yIFwkTk0uCi0rbm1fZmlsZV9saXN0X3NwZWM9JGx0X25tX2ZpbGVfbGlz dF9zcGVjCi0rCi0rIyBUaGUgcm9vdCB3aGVyZSB0byBzZWFyY2ggZm9yIGRlcGVuZGVudCBsaWJy YXJpZXMsYW5kIGluIHdoaWNoIG91ciBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxlZC4KLSts dF9zeXNyb290PSRsdF9zeXNyb290Ci0rCi0rIyBUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IHRo YXQgY29udGFpbnMgdGVtcG9yYXJ5IGxpYnRvb2wgZmlsZXMuCi0rb2JqZGlyPSRvYmpkaXIKLSsK LSsjIFVzZWQgdG8gZXhhbWluZSBsaWJyYXJpZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBiZWdpbnMg d2l0aCAiZmlsZSIuCi0rTUFHSUNfQ01EPSRNQUdJQ19DTUQKLSsKLSsjIE11c3Qgd2UgbG9jayBm aWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uPwotK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MK LSsKLSsjIE1hbmlmZXN0IHRvb2wuCi0rTUFOSUZFU1RfVE9PTD0kbHRfTUFOSUZFU1RfVE9PTAot KwotKyMgVG9vbCB0byBtYW5pcHVsYXRlIGFyY2hpdmVkIERXQVJGIGRlYnVnIHN5bWJvbCBmaWxl cyBvbiBNYWMgT1MgWC4KLStEU1lNVVRJTD0kbHRfRFNZTVVUSUwKLSsKLSsjIFRvb2wgdG8gY2hh bmdlIGdsb2JhbCB0byBsb2NhbCBzeW1ib2xzIG9uIE1hYyBPUyBYLgotK05NRURJVD0kbHRfTk1F RElUCi0rCi0rIyBUb29sIHRvIG1hbmlwdWxhdGUgZmF0IG9iamVjdHMgYW5kIGFyY2hpdmVzIG9u IE1hYyBPUyBYLgotK0xJUE89JGx0X0xJUE8KLSsKLSsjIGxkZC9yZWFkZWxmIGxpa2UgdG9vbCBm b3IgTWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBPUyBYLgotK09UT09MPSRsdF9PVE9PTAotKwotKyMg bGRkL3JlYWRlbGYgbGlrZSB0b29sIGZvciA2NCBiaXQgTWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBP UyBYIDEwLjQuCi0rT1RPT0w2ND0kbHRfT1RPT0w2NAotKwotKyMgT2xkIGFyY2hpdmUgc3VmZml4 IChub3JtYWxseSAiYSIpLgotK2xpYmV4dD0kbGliZXh0Ci0rCi0rIyBTaGFyZWQgbGlicmFyeSBz dWZmaXggKG5vcm1hbGx5ICIuc28iKS4KLStzaHJleHRfY21kcz0kbHRfc2hyZXh0X2NtZHMKLSsK LSsjIFRoZSBjb21tYW5kcyB0byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9t IGEgc2hhcmVkIGFyY2hpdmUuCi0rZXh0cmFjdF9leHBzeW1zX2NtZHM9JGx0X2V4dHJhY3RfZXhw c3ltc19jbWRzCi0rCi0rIyBWYXJpYWJsZXMgd2hvc2UgdmFsdWVzIHNob3VsZCBiZSBzYXZlZCBp biBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0cyBhbmQKLSsjIHJlc3RvcmVkIGF0IGxpbmsgdGltZS4K LSt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0kbHRfdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxp bmsKLSsKLSsjIERvIHdlIG5lZWQgdGhlICJsaWIiIHByZWZpeCBmb3IgbW9kdWxlcz8KLStuZWVk X2xpYl9wcmVmaXg9JG5lZWRfbGliX3ByZWZpeAotKwotKyMgRG8gd2UgbmVlZCBhIHZlcnNpb24g Zm9yIGxpYnJhcmllcz8KLStuZWVkX3ZlcnNpb249JG5lZWRfdmVyc2lvbgotKwotKyMgTGlicmFy eSB2ZXJzaW9uaW5nIHR5cGUuCi0rdmVyc2lvbl90eXBlPSR2ZXJzaW9uX3R5cGUKLSsKLSsjIFNo YXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJpYWJsZS4KLStydW5wYXRoX3Zhcj0kcnVucGF0 aF92YXIKLSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHBhdGggdmFyaWFibGUuCi0rc2hsaWJwYXRoX3Zh cj0kc2hsaWJwYXRoX3ZhcgotKwotKyMgSXMgc2hsaWJwYXRoIHNlYXJjaGVkIGJlZm9yZSB0aGUg aGFyZC1jb2RlZCBsaWJyYXJ5IHNlYXJjaCBwYXRoPwotK3NobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD0kc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoCi0rCi0rIyBGb3JtYXQgb2YgbGlicmFy eSBuYW1lIHByZWZpeC4KLStsaWJuYW1lX3NwZWM9JGx0X2xpYm5hbWVfc3BlYwotKwotKyMgTGlz dCBvZiBhcmNoaXZlIG5hbWVzLiAgRmlyc3QgbmFtZSBpcyB0aGUgcmVhbCBvbmUsIHRoZSByZXN0 IGFyZSBsaW5rcy4KLSsjIFRoZSBsYXN0IG5hbWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIg ZmluZHMgd2l0aCAtbE5BTUUKLStsaWJyYXJ5X25hbWVzX3NwZWM9JGx0X2xpYnJhcnlfbmFtZXNf c3BlYwotKwotKyMgVGhlIGNvZGVkIG5hbWUgb2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBm cm9tIHRoZSByZWFsIG5hbWUuCi0rc29uYW1lX3NwZWM9JGx0X3NvbmFtZV9zcGVjCi0rCi0rIyBQ ZXJtaXNzaW9uIG1vZGUgb3ZlcnJpZGUgZm9yIGluc3RhbGxhdGlvbiBvZiBzaGFyZWQgbGlicmFy aWVzLgotK2luc3RhbGxfb3ZlcnJpZGVfbW9kZT0kbHRfaW5zdGFsbF9vdmVycmlkZV9tb2RlCi0r Ci0rIyBDb21tYW5kIHRvIHVzZSBhZnRlciBpbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2 ZS4KLStwb3N0aW5zdGFsbF9jbWRzPSRsdF9wb3N0aW5zdGFsbF9jbWRzCi0rCi0rIyBDb21tYW5k IHRvIHVzZSBhZnRlciB1bmluc3RhbGxhdGlvbiBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK3Bvc3R1 bmluc3RhbGxfY21kcz0kbHRfcG9zdHVuaW5zdGFsbF9jbWRzCi0rCi0rIyBDb21tYW5kcyB1c2Vk IHRvIGZpbmlzaCBhIGxpYnRvb2wgbGlicmFyeSBpbnN0YWxsYXRpb24gaW4gYSBkaXJlY3Rvcnku Ci0rZmluaXNoX2NtZHM9JGx0X2ZpbmlzaF9jbWRzCi0rCi0rIyBBcyAiZmluaXNoX2NtZHMiLCBl eGNlcHQgYSBzaW5nbGUgc2NyaXB0IGZyYWdtZW50IHRvIGJlIGV2YWxlZCBidXQKLSsjIG5vdCBz aG93bi4KLStmaW5pc2hfZXZhbD0kbHRfZmluaXNoX2V2YWwKLSsKLSsjIFdoZXRoZXIgd2Ugc2hv dWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJpZXMuCi0raGFyZGNvZGVfaW50 b19saWJzPSRoYXJkY29kZV9pbnRvX2xpYnMKLSsKLSsjIENvbXBpbGUtdGltZSBzeXN0ZW0gc2Vh cmNoIHBhdGggZm9yIGxpYnJhcmllcy4KLStzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9JGx0X3N5 c19saWJfc2VhcmNoX3BhdGhfc3BlYwotKwotKyMgUnVuLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRo IGZvciBsaWJyYXJpZXMuCi0rc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjCi0rCi0rIyBXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWQuCi0r ZGxvcGVuX3N1cHBvcnQ9JGVuYWJsZV9kbG9wZW4KLSsKLSsjIFdoZXRoZXIgZGxvcGVuIG9mIHBy b2dyYW1zIGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc2VsZj0kZW5hYmxlX2Rsb3Blbl9zZWxmCi0r Ci0rIyBXaGV0aGVyIGRsb3BlbiBvZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtcyBpcyBzdXBw b3J0ZWQuCi0rZGxvcGVuX3NlbGZfc3RhdGljPSRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljCi0r Ci0rIyBDb21tYW5kcyB0byBzdHJpcCBsaWJyYXJpZXMuCi0rb2xkX3N0cmlwbGliPSRsdF9vbGRf c3RyaXBsaWIKLStzdHJpcGxpYj0kbHRfc3RyaXBsaWIKLSsKLSsKLSsjIFRoZSBsaW5rZXIgdXNl ZCB0byBidWlsZCBsaWJyYXJpZXMuCi0rTEQ9JGx0X0xECi0rCi0rIyBIb3cgdG8gY3JlYXRlIHJl bG9hZGFibGUgb2JqZWN0IGZpbGVzLgotK3JlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZwotK3Jl bG9hZF9jbWRzPSRsdF9yZWxvYWRfY21kcwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBh biBvbGQtc3R5bGUgYXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9j bWRzCi0rCi0rIyBBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgotK0NDPSRsdF9jb21waWxl cgotKwotKyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/Ci0rd2l0aF9nY2M9JEdD QwotKwotKyMgQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4KLStu b19idWlsdGluX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnCi0rCi0r IyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMu Ci0rcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljCi0rCi0rIyBIb3cgdG8gcGFzcyBh IGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgotK3dsPSRsdF9sdF9wcm9nX2NvbXBp bGVyX3dsCi0rCi0rIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgot K2xpbmtfc3RhdGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfc3RhdGljCi0rCi0rIyBEb2Vz IGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/Ci0rY29t cGlsZXJfY19vPSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2NfbwotKwotKyMgV2hldGhlciBvciBu b3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KLStidWlsZF9saWJ0 b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0 byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljLgotK2Fs bG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRo X3N0YXRpY19ydW50aW1lcwotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUg ZGxvcGVucy4KLStleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2Zs YWdfc3BlYwotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBk aXJlY3RseSBmcm9tIGFyY2hpdmVzLgotK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYwotKwotKyMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0 aCBwYXNzaW5nIG5vIG9iamVjdHMgZGlyZWN0bHkuCi0rY29tcGlsZXJfbmVlZHNfb2JqZWN0PSRs dF9jb21waWxlcl9uZWVkc19vYmplY3QKLSsKLSsjIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2 ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRf b2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcwotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1z dHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9h cmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21k cwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlLgotK2FyY2hp dmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzCi0rYXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2 ZV9leHBzeW1fY21kcwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1v ZHVsZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZwotKyMgYSBzaGFyZWQgYXJjaGl2ZS4KLStt b2R1bGVfY21kcz0kbHRfbW9kdWxlX2NtZHMKLSttb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVs ZV9leHBzeW1fY21kcwotKwotKyMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQg b3Igbm90LgotK3dpdGhfZ251X2xkPSRsdF93aXRoX2dudV9sZAotKwotKyMgRmxhZyB0aGF0IGFs bG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQu Ci0rYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnCi0rCi0rIyBG bGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHMuCi0rbm9fdW5kZWZpbmVkX2Zs YWc9JGx0X25vX3VuZGVmaW5lZF9mbGFnCi0rCi0rIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGly IGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qgd29yayBldmVuIGlm IFwkbGliZGlyIGRvZXMgbm90IGV4aXN0Ci0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRf aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYwotKwotKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtp bmcsIGZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeQotKyMgZHVyaW5nIGxp bmtpbmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0Lgot K2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfbGQKLSsKLSsjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGgg YSBzZXBhcmF0ZWQgYXJndW1lbnQuCi0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcgotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9s aWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rIyBESVIgaW50 byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KLStoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVj dAotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0g ZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFy eSBhbmQgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKLSsjICJhYnNvbHV0ZSIs aS5lIGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0gaWYg dGhlCi0rIyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4KLStoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9 JGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZQotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRo ZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsjIGludG8gdGhlIHJl c3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTAotKwot KyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5n IGhhcmRjb2RlcyBESVIKLSsjIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVf c2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3ZhcgotKwotKyMgU2V0IHRvICJ5ZXMi IGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElS Ci0rIyBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4 ZWN1dGFibGVzIGxpbmtlZAotKyMgYWdhaW5zdCBpdC4KLStoYXJkY29kZV9hdXRvbWF0aWM9JGhh cmRjb2RlX2F1dG9tYXRpYwotKwotKyMgU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1l IHBhdGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKLSsjIHRvIHJ1bnRpbWUgcGF0aCBsaXN0Lgot K2luaGVyaXRfcnBhdGg9JGluaGVyaXRfcnBhdGgKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBtdXN0 IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KLSts aW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzCi0rCi0rIyBTZXQgdG8gInllcyIgaWYg ZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCi0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRh bHdheXNfZXhwb3J0X3N5bWJvbHMKLSsKLSsjIFRoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVk IHN5bWJvbHMuCi0rZXhwb3J0X3N5bWJvbHNfY21kcz0kbHRfZXhwb3J0X3N5bWJvbHNfY21kcwot KwotKyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQg c3ltYm9scy4KLStleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltcwotKwotKyMgU3lt Ym9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgotK2luY2x1ZGVfZXhwc3ltcz0kbHRf aW5jbHVkZV9leHBzeW1zCi0rCi0rIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJv Z3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRlcy4KLStwcmVsaW5rX2NtZHM9 JGx0X3ByZWxpbmtfY21kcwotKwotKyMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBmaW5pc2hpbmcg bGlua2luZyBwcm9ncmFtcy4KLStwb3N0bGlua19jbWRzPSRsdF9wb3N0bGlua19jbWRzCi0rCi0r IyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCi0rZmlsZV9saXN0X3Nw ZWM9JGx0X2ZpbGVfbGlzdF9zcGVjCi0rCi0rIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGli cmFyeSBwYXRoIGludG8gYW4gZXhlY3V0YWJsZS4KLStoYXJkY29kZV9hY3Rpb249JGhhcmRjb2Rl X2FjdGlvbgotKwotKyMgVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIg d2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5LgotK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGly cz0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzCi0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxh Y2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KLSsjIGNyZWF0 ZSBhIHNoYXJlZCBsaWJyYXJ5LgotK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0cwot K3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzCi0rcHJlZGVwcz0kbHRfcHJlZGVw cwotK3Bvc3RkZXBzPSRsdF9wb3N0ZGVwcwotKwotKyMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGgg dXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKLSsjIGEgc2hhcmVk IGxpYnJhcnkuCi0rY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9jb21waWxlcl9saWJfc2Vh cmNoX3BhdGgKLSsKLSsjICMjIyBFTkQgTElCVE9PTCBDT05GSUcKLSsKLStfTFRfRU9GCi0rCi0r ICBjYXNlICRob3N0X29zIGluCi0rICBhaXgzKikKLSsgICAgY2F0IDw8XF9MVF9FT0YgPj4gIiRj ZmdmaWxlIgotKyMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxl Y3QyIHByb2dyYW0uICBGb3Igc29tZQotKyMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1Rf TkFNRVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcwotKyMgdmFuaXNoIGluIGEg cHVmZiBvZiBzbW9rZS4KLStpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7 IHRoZW4KLSsgIENPTExFQ1RfTkFNRVM9Ci0rICBleHBvcnQgQ09MTEVDVF9OQU1FUwotK2ZpCi0r X0xUX0VPRgotKyAgICA7OwotKyAgZXNhYwotKwotKwotK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRt YWluLnNoIgotKwotKwotKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFz aCBvbiBESkdQUCBnZXRzIGNvbmZ1c2VkIGlmCi0rICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFu ZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCi0rICAjIHRleHQgbW9kZSwg aXQgcHJvcGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQot KyAgIyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25z IHRvbz8KLSsgIHNlZCAnJHEnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKLSsgICAgIHx8IChy bSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEpCi0rCi0rICBpZiB0ZXN0IHgiJHhzaV9zaGVsbCIgPSB4 eWVzOyB0aGVuCi0rICBzZWQgLWUgJy9eZnVuY19kaXJuYW1lICgpJC8sL159ICMgZnVuY19kaXJu YW1lIC9jXAotK2Z1bmNfZGlybmFtZSAoKVwKLSt7XAotK1wgICAgY2FzZSAkezF9IGluXAotK1wg ICAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7O1wKLStcICAgICAg KiAgKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IiA7O1wKLStcICAgIGVzYWNcCi0rfSAjIEV4 dGVuZGVkLXNoZWxsIGZ1bmNfZGlybmFtZSBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRj ZmdmaWxlLnRtcCBcCi0rICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsg ICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAm JiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKLSt0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9y ZXBsYWNlX2ZhaWw9OgotKwotKwotKyAgc2VkIC1lICcvXmZ1bmNfYmFzZW5hbWUgKCkkLywvXn0g IyBmdW5jX2Jhc2VuYW1lIC9jXAotK2Z1bmNfYmFzZW5hbWUgKClcCi0re1wKLStcICAgIGZ1bmNf YmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSJcCi0rfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfYmFz ZW5hbWUgaW1wbGVtZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50bXAgXAotKyAgJiYg bXYgLWYgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiBcCi0rICAgIHx8IChybSAtZiAiJGNmZ2Zp bGUiICYmIGNwICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRt cCIpCi0rdGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKLSsKLSsK LSsgIHNlZCAtZSAnL15mdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpJC8sL159ICMgZnVuY19k aXJuYW1lX2FuZF9iYXNlbmFtZSAvY1wKLStmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpXAot K3tcCi0rXCAgICBjYXNlICR7MX0gaW5cCi0rXCAgICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3Vs dD0iJHsxJS8qfSR7Mn0iIDs7XAotK1wgICAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7 M30iIDs7XAotK1wgICAgZXNhY1wKLStcICAgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyov fSJcCi0rfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgaW1wbGVt ZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50bXAgXAotKyAgJiYgbXYgLWYgIiRjZmdm aWxlLnRtcCIgIiRjZmdmaWxlIiBcCi0rICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYmIGNwICIk Y2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRtcCIpCi0rdGVzdCAw IC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKLSsKLSsKLSsgIHNlZCAtZSAn L15mdW5jX3N0cmlwbmFtZSAoKSQvLC9efSAjIGZ1bmNfc3RyaXBuYW1lIC9jXAotK2Z1bmNfc3Ry aXBuYW1lICgpXAotK3tcCi0rXCAgICAjIHBka3NoIDUuMi4xNCBkb2VzIG5vdCBkbyAke1glJFl9 IGNvcnJlY3RseSBpZiBib3RoIFggYW5kIFkgYXJlXAotK1wgICAgIyBwb3NpdGlvbmFsIHBhcmFt ZXRlcnMsIHNvIGFzc2lnbiBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0LlwKLStcICAg IGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0kezN9XAotK1wgICAgZnVuY19zdHJpcG5hbWVfcmVzdWx0 PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0IyIkezF9In1cCi0rXCAgICBmdW5jX3N0cmlwbmFtZV9y ZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQlIiR7Mn0ifVwKLSt9ICMgRXh0ZW5kZWQtc2hl bGwgZnVuY19zdHJpcG5hbWUgaW1wbGVtZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50 bXAgXAotKyAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiBcCi0rICAgIHx8IChy bSAtZiAiJGNmZ2ZpbGUiICYmIGNwICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYg IiRjZmdmaWxlLnRtcCIpCi0rdGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9m YWlsPToKLSsKLSsKLSsgIHNlZCAtZSAnL15mdW5jX3NwbGl0X2xvbmdfb3B0ICgpJC8sL159ICMg ZnVuY19zcGxpdF9sb25nX29wdCAvY1wKLStmdW5jX3NwbGl0X2xvbmdfb3B0ICgpXAotK3tcCi0r XCAgICBmdW5jX3NwbGl0X2xvbmdfb3B0X25hbWU9JHsxJSU9Kn1cCi0rXCAgICBmdW5jX3NwbGl0 X2xvbmdfb3B0X2FyZz0kezEjKj19XAotK30gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX3NwbGl0X2xv bmdfb3B0IGltcGxlbWVudGF0aW9uJyAiJGNmZ2ZpbGUiID4gJGNmZ2ZpbGUudG1wIFwKLSsgICYm IG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAotKyAgICB8fCAocm0gLWYgIiRjZmdm aWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50 bXAiKQotK3Rlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06Ci0rCi0r Ci0rICBzZWQgLWUgJy9eZnVuY19zcGxpdF9zaG9ydF9vcHQgKCkkLywvXn0gIyBmdW5jX3NwbGl0 X3Nob3J0X29wdCAvY1wKLStmdW5jX3NwbGl0X3Nob3J0X29wdCAoKVwKLSt7XAotK1wgICAgZnVu Y19zcGxpdF9zaG9ydF9vcHRfYXJnPSR7MSM/P31cCi0rXCAgICBmdW5jX3NwbGl0X3Nob3J0X29w dF9uYW1lPSR7MSUiJGZ1bmNfc3BsaXRfc2hvcnRfb3B0X2FyZyJ9XAotK30gIyBFeHRlbmRlZC1z aGVsbCBmdW5jX3NwbGl0X3Nob3J0X29wdCBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRj ZmdmaWxlLnRtcCBcCi0rICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsg ICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAm JiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKLSt0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9y ZXBsYWNlX2ZhaWw9OgotKwotKwotKyAgc2VkIC1lICcvXmZ1bmNfbG8ybyAoKSQvLC9efSAjIGZ1 bmNfbG8ybyAvY1wKLStmdW5jX2xvMm8gKClcCi0re1wKLStcICAgIGNhc2UgJHsxfSBpblwKLStc ICAgICAgKi5sbykgZnVuY19sbzJvX3Jlc3VsdD0kezElLmxvfS4ke29iamV4dH0gOztcCi0rXCAg ICAgICopICAgIGZ1bmNfbG8yb19yZXN1bHQ9JHsxfSA7O1wKLStcICAgIGVzYWNcCi0rfSAjIEV4 dGVuZGVkLXNoZWxsIGZ1bmNfbG8ybyBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdm aWxlLnRtcCBcCi0rICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsgICAg fHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBy bSAtZiAiJGNmZ2ZpbGUudG1wIikKLSt0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBs YWNlX2ZhaWw9OgotKwotKwotKyAgc2VkIC1lICcvXmZ1bmNfeGZvcm0gKCkkLywvXn0gIyBmdW5j X3hmb3JtIC9jXAotK2Z1bmNfeGZvcm0gKClcCi0re1wKLSsgICAgZnVuY194Zm9ybV9yZXN1bHQ9 JHsxJS4qfS5sb1wKLSt9ICMgRXh0ZW5kZWQtc2hlbGwgZnVuY194Zm9ybSBpbXBsZW1lbnRhdGlv bicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBcCi0rICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1w IiAiJGNmZ2ZpbGUiIFwKLSsgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxl LnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKLSt0ZXN0IDAgLWVxICQ/ IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgotKwotKwotKyAgc2VkIC1lICcvXmZ1bmNf YXJpdGggKCkkLywvXn0gIyBmdW5jX2FyaXRoIC9jXAotK2Z1bmNfYXJpdGggKClcCi0re1wKLSsg ICAgZnVuY19hcml0aF9yZXN1bHQ9JCgoICQqICkpXAotK30gIyBFeHRlbmRlZC1zaGVsbCBmdW5j X2FyaXRoIGltcGxlbWVudGF0aW9uJyAiJGNmZ2ZpbGUiID4gJGNmZ2ZpbGUudG1wIFwKLSsgICYm IG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAotKyAgICB8fCAocm0gLWYgIiRjZmdm aWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50 bXAiKQotK3Rlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06Ci0rCi0r Ci0rICBzZWQgLWUgJy9eZnVuY19sZW4gKCkkLywvXn0gIyBmdW5jX2xlbiAvY1wKLStmdW5jX2xl biAoKVwKLSt7XAotKyAgICBmdW5jX2xlbl9yZXN1bHQ9JHsjMX1cCi0rfSAjIEV4dGVuZGVkLXNo ZWxsIGZ1bmNfbGVuIGltcGxlbWVudGF0aW9uJyAiJGNmZ2ZpbGUiID4gJGNmZ2ZpbGUudG1wIFwK LSsgICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAotKyAgICB8fCAocm0gLWYg IiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2Zn ZmlsZS50bXAiKQotK3Rlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06 Ci0rCi0rZmkKLSsKLStpZiB0ZXN0IHgiJGx0X3NoZWxsX2FwcGVuZCIgPSB4eWVzOyB0aGVuCi0r ICBzZWQgLWUgJy9eZnVuY19hcHBlbmQgKCkkLywvXn0gIyBmdW5jX2FwcGVuZCAvY1wKLStmdW5j X2FwcGVuZCAoKVwKLSt7XAotKyAgICBldmFsICIkezF9Kz1cXCR7Mn0iXAotK30gIyBFeHRlbmRl ZC1zaGVsbCBmdW5jX2FwcGVuZCBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxl LnRtcCBcCi0rICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsgICAgfHwg KHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAt ZiAiJGNmZ2ZpbGUudG1wIikKLSt0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNl X2ZhaWw9OgotKwotKwotKyAgc2VkIC1lICcvXmZ1bmNfYXBwZW5kX3F1b3RlZCAoKSQvLC9efSAj IGZ1bmNfYXBwZW5kX3F1b3RlZCAvY1wKLStmdW5jX2FwcGVuZF9xdW90ZWQgKClcCi0re1wKLStc ICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiR7Mn0iXAotK1wgICAgZXZhbCAiJHsxfSs9XFxcXCBc XCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCJcCi0rfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNf YXBwZW5kX3F1b3RlZCBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBc Ci0rICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsgICAgfHwgKHJtIC1m ICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNm Z2ZpbGUudG1wIikKLSt0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9 OgotKwotKwotKyAgIyBTYXZlIGEgYGZ1bmNfYXBwZW5kJyBmdW5jdGlvbiBjYWxsIHdoZXJlIHBv c3NpYmxlIGJ5IGRpcmVjdCB1c2Ugb2YgJys9JwotKyAgc2VkIC1lICdzJWZ1bmNfYXBwZW5kIFwo W2EtekEtWl9dXHsxLFx9XCkgIiVcMSs9IiVnJyAkY2ZnZmlsZSA+ICRjZmdmaWxlLnRtcCBcCi0r ICAgICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAotKyAgICAgIHx8IChybSAt ZiAiJGNmZ2ZpbGUiICYmIGNwICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRj ZmdmaWxlLnRtcCIpCi0rICB0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2Zh aWw9OgotK2Vsc2UKLSsgICMgU2F2ZSBhIGBmdW5jX2FwcGVuZCcgZnVuY3Rpb24gY2FsbCBldmVu IHdoZW4gJys9JyBpcyBub3QgYXZhaWxhYmxlCi0rICBzZWQgLWUgJ3MlZnVuY19hcHBlbmQgXChb YS16QS1aX11cezEsXH1cKSAiJVwxPSIkXDElZycgJGNmZ2ZpbGUgPiAkY2ZnZmlsZS50bXAgXAot KyAgICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsgICAgICB8fCAocm0g LWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIk Y2ZnZmlsZS50bXAiKQotKyAgdGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9m YWlsPToKLStmaQotKwotK2lmIHRlc3QgeCIkX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbCIgPSB4 IjoiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdB Uk5JTkc6IFVuYWJsZSB0byBzdWJzdGl0dXRlIGV4dGVuZGVkIHNoZWxsIGZ1bmN0aW9ucyBpbiAk b2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFVuYWJsZSB0byBzdWJzdGl0 dXRlIGV4dGVuZGVkIHNoZWxsIGZ1bmN0aW9ucyBpbiAkb2ZpbGUiID4mMjt9Ci0rZmkKLSsKLSsK LSsgICBtdiAtZiAiJGNmZ2ZpbGUiICIkb2ZpbGUiIHx8Ci0rICAgIChybSAtZiAiJG9maWxlIiAm JiBjcCAiJGNmZ2ZpbGUiICIkb2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZSIpCi0rICBjaG1vZCAr eCAiJG9maWxlIgotKwotKwotKyAgICBjYXQgPDxfTFRfRU9GID4+ICIkb2ZpbGUiCi0rCi0rIyAj IyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBDWFgKLSsKLSsjIFRoZSBsaW5rZXIgdXNlZCB0 byBidWlsZCBsaWJyYXJpZXMuCi0rTEQ9JGx0X0xEX0NYWAotKwotKyMgSG93IHRvIGNyZWF0ZSBy ZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KLStyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWdfQ1hY Ci0rcmVsb2FkX2NtZHM9JGx0X3JlbG9hZF9jbWRzX0NYWAotKwotKyMgQ29tbWFuZHMgdXNlZCB0 byBidWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRf YXJjaGl2ZV9jbWRzX0NYWAotKwotKyMgQSBsYW5ndWFnZSBzcGVjaWZpYyBjb21waWxlci4KLStD Qz0kbHRfY29tcGlsZXJfQ1hYCi0rCi0rIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxl cj8KLSt3aXRoX2djYz0kR0NDX0NYWAotKwotKyMgQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBi dWlsdGluIGZ1bmN0aW9ucy4KLStub19idWlsdGluX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJf bm9fYnVpbHRpbl9mbGFnX0NYWAotKwotKyMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3Ig YnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgotK3BpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVy X3BpY19DWFgKLSsKLSsjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29t cGlsZXIuCi0rd2w9JGx0X2x0X3Byb2dfY29tcGlsZXJfd2xfQ1hYCi0rCi0rIyBDb21waWxlciBm bGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgotK2xpbmtfc3RhdGljX2ZsYWc9JGx0X2x0 X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWAotKwotKyMgRG9lcyBjb21waWxlciBzaW11bHRhbmVv dXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPwotK2NvbXBpbGVyX2Nfbz0kbHRfbHRfY3Zf cHJvZ19jb21waWxlcl9jX29fQ1hYCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZv ciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzLgotK2J1aWxkX2xpYnRvb2xfbmVlZF9sYz0kYXJj aGl2ZV9jbWRzX25lZWRfbGNfQ1hYCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBz aGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljLgotK2FsbG93X2xpYnRvb2xf bGlic193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50 aW1lc19DWFgKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMu Ci0rZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWNf Q1hYCi0rCi0rIyBDb21waWxlciBmbGFnIHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVj dGx5IGZyb20gYXJjaGl2ZXMuCi0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JGx0X3dob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjX0NYWAotKwotKyMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0 aCBwYXNzaW5nIG5vIG9iamVjdHMgZGlyZWN0bHkuCi0rY29tcGlsZXJfbmVlZHNfb2JqZWN0PSRs dF9jb21waWxlcl9uZWVkc19vYmplY3RfQ1hYCi0rCi0rIyBDcmVhdGUgYW4gb2xkLXN0eWxlIGFy Y2hpdmUgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9 JGx0X29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfQ1hYCi0rCi0rIyBDcmVhdGUgYSB0ZW1wb3Jh cnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmUu Ci0rb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21fZXhw c3ltc19jbWRzX0NYWAotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNo aXZlLgotK2FyY2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzX0NYWAotK2FyY2hpdmVfZXhwc3lt X2NtZHM9JGx0X2FyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYCi0rCi0rIyBDb21tYW5kcyB1c2VkIHRv IGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIGlmIGRpZmZlcmVudCBmcm9tIGJ1aWxkaW5nCi0rIyBh IHNoYXJlZCBhcmNoaXZlLgotK21vZHVsZV9jbWRzPSRsdF9tb2R1bGVfY21kc19DWFgKLSttb2R1 bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9leHBzeW1fY21kc19DWFgKLSsKLSsjIFdoZXRoZXIg d2UgYXJlIGJ1aWxkaW5nIHdpdGggR05VIGxkIG9yIG5vdC4KLSt3aXRoX2dudV9sZD0kbHRfd2l0 aF9nbnVfbGRfQ1hYCi0rCi0rIyBGbGFnIHRoYXQgYWxsb3dzIHNoYXJlZCBsaWJyYXJpZXMgd2l0 aCB1bmRlZmluZWQgc3ltYm9scyB0byBiZSBidWlsdC4KLSthbGxvd191bmRlZmluZWRfZmxhZz0k bHRfYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYCi0rCi0rIyBGbGFnIHRoYXQgZW5mb3JjZXMgbm8g dW5kZWZpbmVkIHN5bWJvbHMuCi0rbm9fdW5kZWZpbmVkX2ZsYWc9JGx0X25vX3VuZGVmaW5lZF9m bGFnX0NYWAotKwotKyMgRmxhZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1 cmluZyBsaW5raW5nLgotKyMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5v dCBleGlzdAotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X2hhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfQ1hYCi0rCi0rIyBJZiBsZCBpcyB1c2VkIHdoZW4gbGlua2luZywgZmxhZyB0byBo YXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5Ci0rIyBkdXJpbmcgbGlua2luZy4gIFRoaXMg bXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QuCi0raGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19sZD0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFgKLSsK LSsjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0 ZWQgYXJndW1lbnQuCi0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcl9DWFgKLSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFN RVwke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcwotKyMgRElSIGludG8gdGhl IHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfZGlyZWN0PSRoYXJkY29kZV9kaXJlY3RfQ1hY Ci0rCi0rIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUVcJHtzaGFyZWRfZXh0fSBk dXJpbmcgbGlua2luZyBoYXJkY29kZXMKLSsjIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5 IGFuZCB0aGUgcmVzdWx0aW5nIGxpYnJhcnkgZGVwZW5kZW5jeSBpcwotKyMgImFic29sdXRlIixp LmUgaW1wb3NzaWJsZSB0byBjaGFuZ2UgYnkgc2V0dGluZyBcJHtzaGxpYnBhdGhfdmFyfSBpZiB0 aGUKLSsjIGxpYnJhcnkgaXMgcmVsb2NhdGVkLgotK2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT0k aGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWAotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5n IHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsjIGludG8gdGhl IHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTF9D WFgKLSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcg bGlua2luZyBoYXJkY29kZXMgRElSCi0rIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgotK2hh cmRjb2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYCi0rCi0rIyBT ZXQgdG8gInllcyIgaWYgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhh cmRjb2RlcyBESVIKLSsjIGludG8gdGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJh cmllcyBhbmQgZXhlY3V0YWJsZXMgbGlua2VkCi0rIyBhZ2FpbnN0IGl0LgotK2hhcmRjb2RlX2F1 dG9tYXRpYz0kaGFyZGNvZGVfYXV0b21hdGljX0NYWAotKwotKyMgU2V0IHRvIHllcyBpZiBsaW5r ZXIgYWRkcyBydW50aW1lIHBhdGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKLSsjIHRvIHJ1bnRp bWUgcGF0aCBsaXN0LgotK2luaGVyaXRfcnBhdGg9JGluaGVyaXRfcnBhdGhfQ1hYCi0rCi0rIyBX aGV0aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMgZGVwZW5k ZW5jeSBsaWJyYXJpZXMuCi0rbGlua19hbGxfZGVwbGlicz0kbGlua19hbGxfZGVwbGlic19DWFgK LSsKLSsjIFNldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZC4KLSth bHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFgKLSsKLSsjIFRo ZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHMuCi0rZXhwb3J0X3N5bWJvbHNfY21k cz0kbHRfZXhwb3J0X3N5bWJvbHNfY21kc19DWFgKLSsKLSsjIFN5bWJvbHMgdGhhdCBzaG91bGQg bm90IGJlIGxpc3RlZCBpbiB0aGUgcHJlbG9hZGVkIHN5bWJvbHMuCi0rZXhjbHVkZV9leHBzeW1z PSRsdF9leGNsdWRlX2V4cHN5bXNfQ1hYCi0rCi0rIyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMg YmUgZXhwb3J0ZWQuCi0raW5jbHVkZV9leHBzeW1zPSRsdF9pbmNsdWRlX2V4cHN5bXNfQ1hYCi0r Ci0rIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJvZ3JhbXMgKGFnYWluc3QgbGli cmFyaWVzKSB3aXRoIHRlbXBsYXRlcy4KLStwcmVsaW5rX2NtZHM9JGx0X3ByZWxpbmtfY21kc19D WFgKLSsKLSsjIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgZmluaXNoaW5nIGxpbmtpbmcgcHJvZ3Jh bXMuCi0rcG9zdGxpbmtfY21kcz0kbHRfcG9zdGxpbmtfY21kc19DWFgKLSsKLSsjIFNwZWNpZnkg ZmlsZW5hbWUgY29udGFpbmluZyBpbnB1dCBmaWxlcy4KLStmaWxlX2xpc3Rfc3BlYz0kbHRfZmls ZV9saXN0X3NwZWNfQ1hYCi0rCi0rIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBw YXRoIGludG8gYW4gZXhlY3V0YWJsZS4KLStoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlv bl9DWFgKLSsKLSsjIFRoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdo ZW4gY3JlYXRpbmcgYSBzaGFyZWQgbGlicmFyeS4KLStjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9 JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFgKLSsKLSsjIERlcGVuZGVuY2llcyB0byBw bGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0bwotKyMgY3Jl YXRlIGEgc2hhcmVkIGxpYnJhcnkuCi0rcHJlZGVwX29iamVjdHM9JGx0X3ByZWRlcF9vYmplY3Rz X0NYWAotK3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzX0NYWAotK3ByZWRlcHM9 JGx0X3ByZWRlcHNfQ1hYCi0rcG9zdGRlcHM9JGx0X3Bvc3RkZXBzX0NYWAotKwotKyMgVGhlIGxp YnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxp bmtpbmcKLSsjIGEgc2hhcmVkIGxpYnJhcnkuCi0rY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRs dF9jb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYCi0rCi0rIyAjIyMgRU5EIExJQlRPT0wgVEFH IENPTkZJRzogQ1hYCi0rX0xUX0VPRgotKwotKyA7OwotKwotKyAgZXNhYwotK2RvbmUgIyBmb3Ig YWNfdGFnCi0rCi0rCi0rYXNfZm5fZXhpdCAwCi0rX0FDRU9GCi0rYWNfY2xlYW5fZmlsZXM9JGFj X2NsZWFuX2ZpbGVzX3NhdmUKLSsKLSt0ZXN0ICRhY193cml0ZV9mYWlsID0gMCB8fAotKyAgYXNf Zm5fZXJyb3IgJD8gIndyaXRlIGZhaWx1cmUgY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiICIkTElO RU5PIiA1Ci0rCi0rCi0rIyBjb25maWd1cmUgaXMgd3JpdGluZyB0byBjb25maWcubG9nLCBhbmQg dGhlbiBjYWxscyBjb25maWcuc3RhdHVzLgotKyMgY29uZmlnLnN0YXR1cyBkb2VzIGl0cyBvd24g cmVkaXJlY3Rpb24sIGFwcGVuZGluZyB0byBjb25maWcubG9nLgotKyMgVW5mb3J0dW5hdGVseSwg b24gRE9TIHRoaXMgZmFpbHMsIGFzIGNvbmZpZy5sb2cgaXMgc3RpbGwga2VwdCBvcGVuCi0rIyBi eSBjb25maWd1cmUsIHNvIGNvbmZpZy5zdGF0dXMgd29uJ3QgYmUgYWJsZSB0byB3cml0ZSB0byBp dDsgaXRzCi0rIyBvdXRwdXQgaXMgc2ltcGx5IGRpc2NhcmRlZC4gIFNvIHdlIGV4ZWMgdGhlIEZE IHRvIC9kZXYvbnVsbCwKLSsjIGVmZmVjdGl2ZWx5IGNsb3NpbmcgY29uZmlnLmxvZywgc28gaXQg Y2FuIGJlIHByb3Blcmx5IChyZSlvcGVuZWQgYW5kCi0rIyBhcHBlbmRlZCB0byBieSBjb25maWcu c3RhdHVzLiAgV2hlbiBjb21pbmcgYmFjayB0byBjb25maWd1cmUsIHdlCi0rIyBuZWVkIHRvIG1h a2UgdGhlIEZEIGF2YWlsYWJsZSBhZ2Fpbi4KLStpZiB0ZXN0ICIkbm9fY3JlYXRlIiAhPSB5ZXM7 IHRoZW4KLSsgIGFjX2NzX3N1Y2Nlc3M9OgotKyAgYWNfY29uZmlnX3N0YXR1c19hcmdzPQotKyAg dGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYKLSsgICAgYWNfY29uZmlnX3N0YXR1c19hcmdzPSIkYWNf Y29uZmlnX3N0YXR1c19hcmdzIC0tcXVpZXQiCi0rICBleGVjIDU+L2Rldi9udWxsCi0rICAkU0hF TEwgJENPTkZJR19TVEFUVVMgJGFjX2NvbmZpZ19zdGF0dXNfYXJncyB8fCBhY19jc19zdWNjZXNz PWZhbHNlCi0rICBleGVjIDU+PmNvbmZpZy5sb2cKLSsgICMgVXNlIHx8LCBub3QgJiYsIHRvIGF2 b2lkIGV4aXRpbmcgZnJvbSB0aGUgaWYgd2l0aCAkPyA9IDEsIHdoaWNoCi0rICAjIHdvdWxkIG1h a2UgY29uZmlndXJlIGZhaWwgaWYgdGhpcyBpcyB0aGUgbGFzdCBpbnN0cnVjdGlvbi4KLSsgICRh Y19jc19zdWNjZXNzIHx8IGFzX2ZuX2V4aXQgMQotIGZpCi0raWYgdGVzdCAtbiAiJGFjX3VucmVj b2duaXplZF9vcHRzIiAmJiB0ZXN0ICIkZW5hYmxlX29wdGlvbl9jaGVja2luZyIgIT0gbm87IHRo ZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzog dW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6 ZWRfb3B0cyIgPiYyO30KLStmaQotKwotKwotK2VjaG8gIgotKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkgY29uZmlndXJhdGlvbjoKLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSsKLStEaXJlY3RvcmllczoKLSsgIC0gcHJlZml4IC4uLi4uLi4uLi4uLi4u LiA6ICR7cHJlZml4fQotKyAgLSBleGVjX3ByZWZpeCAuLi4uLi4uLi4uIDogJHtleGVjX3ByZWZp eH0KLSsgIC0gaW5jbHVkZWRpciAuLi4uLi4uLi4uLiA6ICR7aW5jbHVkZWRpcn0KLSsgIC0gbGli ZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bGliZGlyfQotKyAgLSBkb2NkaXIgLi4uLi4uLi4uLi4u Li4uIDogJHtkb2NkaXJ9Ci0rICAtIG1hbmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke21hbmRpcn0K LSsgIC0gaW5mb2RpciAuLi4uLi4uLi4uLi4uLiA6ICR7aW5mb2Rpcn0KLSsKLStTd2l0Y2hlczoK LSsgIC0gZXhjZXB0aW9ucyAuLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2V4Y2VwdGlvbnN9Ci0rICAt IGluZm8tZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9pbmZvX2RvY30KLSsgIC0gaHRtbC1k b2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2h0bWxfZG9jfQotKyAgLSBzaGFyZWQgLi4uLi4u Li4uLi4uLi4uIDogJHtlbmFibGVfc2hhcmVkfQotKyAgLSBzdGF0aWMgLi4uLi4uLi4uLi4uLi4u IDogJHtlbmFibGVfc3RhdGljfQotKwotK0RvY3VtZW50YXRpb24gdG9vbHM6Ci0rICAtIHRleGlu Zm8gLi4uLi4uLi4uLi4uLi4gOiAke3RleGluZm9fb2t9Ci0rICAtIGRveHlnZW4gLi4uLi4uLi4u Li4uLi4gOiAke2RveHlnZW5fb2t9Ci0rICAtIGxhdGV4IC4uLi4uLi4uLi4uLi4uLi4gOiAke2xh dGV4X29rfQotKyAgLSBkdmlwcyAuLi4uLi4uLi4uLi4uLi4uIDogJHtkdmlwc19va30KLSsgIC0g Z2hvc3RzY3JpcHQgLi4uLi4uLi4uLiA6ICR7Z3Nfb2t9Ci0rCi0rVGVzdGluZyB0b29sczoKLSsg IC0gZGlmZiAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZGlmZl9va30KLSsgIC0gc2VkIC4uLi4uLi4u Li4uLi4uLi4uLiA6ICR7c2VkX29rfQotKwotK0NvbXBpbGVyL2xpbmtlciBmbGFncy9saWJzL2Rl ZnM6Ci0rICAtIENYWCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke0NYWH0KLSsgIC0gQ1hYRkxBR1Mg Li4uLi4uLi4uLi4uLiA6ICR7Q1hYRkxBR1N9Ci0rICAtIENQUEZMQUdTIC4uLi4uLi4uLi4uLi4g OiAke0NQUEZMQUdTfQotKyAgLSBMREZMQUdTIC4uLi4uLi4uLi4uLi4uIDogJHtMREZMQUdTfQot KyAgLSBMSUJTIC4uLi4uLi4uLi4uLi4uLi4uIDogJHtMSUJTfQotKwotK0J1cnJpZWQgaGVhZGVy IGZpbGVzOgotKyAgLSBTT0NJX0hFQURFUlNfQlVSSUVEIC4uLi4uLi4gOiAke2VuYWJsZV9idXJy aWVkX2hlYWRlcnN9Ci0rICAtIE1ZU1FMX0hFQURFUlNfQlVSSUVEIC4uLi4uLiA6ICR7ZW5hYmxl X215c3FsX2J1cnJpZWRfaGVhZGVyc30KLSsgIC0gUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAu IDogJHtlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnN9Ci0rCi0rRXh0ZXJuYWwgbGli cmFyaWVzOgotKyAgLSBCb29zdCAuLi4uLi4uLi4uLi4uLi4uIDoKLSsgICAgbyBCT09TVF9WRVJT SU9OIC4uLi4uLiA6ICR7Qk9PU1RfVkVSU0lPTn0KLSsgICAgbyBCT09TVF9DRkxBR1MgLi4uLi4u LiA6ICR7Qk9PU1RfQ0ZMQUdTfQotKyAgICBvIEJPT1NUX0xJQlMgLi4uLi4uLi4uIDogJHtCT09T VF9MSUJTfQotKyAgICBvIEJPT1NUX0RUX0xJQiAuLi4uLi4uIDogJHtCT09TVF9EQVRFX1RJTUVf TElCfQotKyAgICBvIEJPT1NUX1BPX0xJQiAuLi4uLi4uIDogJHtCT09TVF9QUk9HUkFNX09QVElP TlNfTElCfQotKwotKyAgLSBNeVNRTCBzdXBwb3J0IC4uLi4uLi4uIDogJHtlbmFibGVfYmFja2Vu ZF9teXNxbH0KLSsgICAgbyBNWVNRTF9WRVJTSU9OIC4uLi4uLiA6ICR7TVlTUUxfVkVSU0lPTn0K LSsgICAgbyBNWVNRTF9DRkxBR1MgLi4uLi4uLiA6ICR7TVlTUUxfQ0ZMQUdTfQotKyAgICBvIE1Z U1FMX0xJQlMgLi4uLi4uLi4uIDogJHtNWVNRTF9MSUJTfQotKwotKyAgLSBQb3N0R3JlU1FMIHN1 cHBvcnQgLi4uIDogJHtlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsfQotKyAgICBvIFBPU1RHUkVT UUxfVkVSU0lPTiAuIDogJHtQT1NUR1JFU1FMX1ZFUlNJT059Ci0rICAgIG8gUE9TVEdSRVNRTF9D RkxBR1MgLi4gOiAke1BPU1RHUkVTUUxfQ0ZMQUdTfQotKyAgICBvIFBPU1RHUkVTUUxfTERGTEFH UyAuIDogJHtQT1NUR1JFU1FMX0xERkxBR1N9Ci0rCi0rICAtIE9yYWNsZSBzdXBwb3J0IC4uLi4u Li4gOiAke2VuYWJsZV9iYWNrZW5kX29yYWNsZX0KLSsgICAgbyBPUkFDTEVfVkVSU0lPTiAuLi4u LiA6ICR7T1JBQ0xFX09DSV9WRVJTSU9OfQotKyAgICBvIE9SQUNMRV9DRkxBR1MgLi4uLi4uIDog JHtPUkFDTEVfT0NJX0NGTEFHU30KLSsgICAgbyBPUkFDTEVfTERGTEFHUyAuLi4uLiA6ICR7T1JB Q0xFX09DSV9MREZMQUdTfQotKwotKyAgLSBDUFBVbml0IC4uLi4uLi4uLi4uLi4uIDoKLSsgICAg byBDUFBVTklUX1ZFUlNJT04gLi4uLiA6ICR7Q1BQVU5JVF9WRVJTSU9OfQotKyAgICBvIENQUFVO SVRfQ0ZMQUdTIC4uLi4uIDogJHtDUFBVTklUX0NGTEFHU30KLSsgICAgbyBDUFBVTklUX0xJQlMg Li4uLi4uLiA6ICR7Q1BQVU5JVF9MSUJTfQotIAotLWVjaG8gJycKLS1jZCBidWlsZC91bml4OyBg Y2F0IGxvY2FsL3RjbGAgcGFyc2UtcGFyYW1ldGVycy50Y2wKLS0KLS1lY2hvICcnCi0tZWNobyAn Q29uZmlndXJlIGRvbmUuJwotLWVjaG8gJ1llcywgaXQgd2FzIHNob3J0LicKLS1lY2hvICcnCi0t ZWNobyAnWW91IGNhbiBub3cgcnVuIG1ha2UuJwotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK05v dyB0eXBlICdtYWtlICYmIG1ha2UgaW5zdGFsbCcgdG8gYnVpbGQgYW5kIGluc3RhbGwgJFBBQ0tB R0UtJFZFUlNJT04gbGlicmFyeQotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyIKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUuYWMgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Z3VyZS5hYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZ3VyZS5hYwkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWd1cmUu YWMJMjAxMS0wNy0wMyAxODoyNDo1MC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzk4IEBA Ci0rIyBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIHByb2R1Y2UgYSBjb25maWd1 cmUgc2NyaXB0Ci0rIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19QUkVSRVEoMi41OSkKLStBQ19DT1BZUklHSFQo W0NvcHlyaWdodCAoQykgMjAwNC0yMDExIE1hY2llaiBTb2JjemFrIDxtc29iY3pha0B1c2Vycy5z b3VyY2Vmb3JnZS5uZXQ+XSkKLStBQ19JTklUKFtTT0NJXSxbMy4wLjBdLFttc29iY3pha0B1c2Vy cy5zb3VyY2Vmb3JnZS5uZXRdLFtzb2NpXSkKLStBQ19DT05GSUdfSEVBREVSKFtzb2NpL2NvbmZp Zy5oXSkKLStBQ19DT05GSUdfU1JDRElSKFtzb2NpL2NvcmUvZXJyb3IuY3BwXSkKLStBQ19DT05G SUdfQVVYX0RJUihbY29uZmlnXSkKLStBTV9JTklUX0FVVE9NQUtFCi0rQU1fUEFUSF9DUFBVTklU KDEuMTApCi0rQU1fQ09ORElUSU9OQUwoW0hBVkVfQ1BQVU5JVF0sIFt0ZXN0ICJ4JENQUFVOSVRf TElCUyIgIT0geF0pCi0rCi0rIyBTaGFyZWQgbGlicmFyeSB2ZXJzaW9uaW5nCi0rR0VORVJJQ19M SUJSQVJZX1ZFUlNJT049IjM6MDowIgotKyMgICAgICAgICAgICAgICAgICAgICAgICB8IHwgfAot KyMgICAgICAgICAgICAgICAgICstLS0tLS0rIHwgKy0tLSsKLSsjICAgICAgICAgICAgICAgICB8 ICAgICAgICB8ICAgICB8Ci0rIyAgICAgICAgICAgICAgY3VycmVudDpyZXZpc2lvbjphZ2UKLSsj ICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8Ci0rIyAgICAgICAgICAgICAgICAgfCAg ICAgICAgfCAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkOwot KyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHNldCB0byB6ZXJvIGlmIGludGVy ZmFjZXMgaGF2ZSBiZWVuIAotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHJl bW92ZWQgb3IgY2hhbmdlZAotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgICstIGluY3JlbWVu dCBpZiBzb3VyY2UgY29kZSBoYXMgY2hhbmdlZDsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICBzZXQgdG8gemVybyBpZiBjdXJyZW50IGlzIGluY3JlbWVudGVkCi0rIyAgICAgICAgICAg ICAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkLCByZW1vdmVk Ci0rIyAgICAgICAgICAgICAgICAgICAgb3IgY2hhbmdlZAotK0FDX1NVQlNUKEdFTkVSSUNfTElC UkFSWV9WRVJTSU9OKQotKwotKyMgVXBsb2FkIGNvbW1hbmQgZm9yIFNvdXJjZUZvcmdlCi0rVVBM T0FEX0NPTU1BTkQ9Im5jZnRwcHV0IC12IHVwbG9hZC5zb3VyY2Vmb3JnZS5uZXQgL2luY29taW5n IgotK0FDX1NVQlNUKFVQTE9BRF9DT01NQU5EKQotKwotKyMgQ2hlY2sgZm9yIGhvc3QgYW5kIGRp c2FibGUgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBpbiBXaW5kb3dzCi0rQUNfQ0FOT05JQ0FM X0hPU1QKLStjYXNlICRob3N0IGluCi0rICAqLSotbXNkb3MqIHwgKi0qLWdvMzIqIHwgKi0qLW1p bmd3MzIqIHwgKi0qLWN5Z3dpbiogfCAqLSotd2luZG93cyopIAotKyAgICBBQ19ESVNBQkxFX1NI QVJFRAotKyAgICBBQ19FTkFCTEVfU1RBVElDCi0rICAgIDs7Ci0rICAqKSAgCi0rICAgIEFDX0VO QUJMRV9TSEFSRUQKLSsgICAgQUNfRElTQUJMRV9TVEFUSUMKLSsgICAgOzsKLStlc2FjCi0rCi0r IyBTZXQgZGVmYXVsdCBsYW5ndWFnZSB0byBDKysKLStBQ19MQU5HKFtDKytdKQotK0FDX0xBTkdf Q1BMVVNQTFVTCi0rCi0rIyBDaGVja3MgZm9yIHByb2dyYW1zCi0rc2F2ZV9DWFhGTEFHUz0iJENY WEZMQUdTIgotK0FDX1BST0dfQ1hYCi0rQUNfUFJPR19DWFhDUFAKLStDWFhGTEFHUz0iJHNhdmVf Q1hYRkxBR1MiCi0rQUNfUFJPR19JTlNUQUxMCi0rQUNfUFJPR19MSUJUT09MCi0rQUNfUFJPR19M Tl9TCi0rQUNfUFJPR19NQUtFX1NFVAotKwotKyMgQ2hlY2sgZm9yIGV4Y2VwdGlvbnMgc3dpdGNo Ci0rQUNfQVJHX0VOQUJMRShleGNlcHRpb25zLAotKyAgICAgICAgICAgICAgW0FTX0hFTFBfU1RS SU5HKFstLWVuYWJsZS1leGNlcHRpb25zXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbZW5hYmxlIGV4Y2VwdGlvbnMgaGFuZGxpbmcgbWVjaGFuaXNtXSldLAotKyAgICAgICAgICAg ICAgW0FDX0RFRklORShbU09DSV9FWENFUFRJT05TXSwgWzFdLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICBbRGVmaW5lIGlmIHlvdSB3YW50IGV4Y2VwdGlvbnMgaGFuZGxpbmddKV0pCi0rdGVz dCAieCRlbmFibGVfZXhjZXB0aW9ucyIgIT0geG5vICYmIGVuYWJsZV9leGNlcHRpb25zPXllcwot K3Rlc3QgIngkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlv bnM9eWVzCi0rCi0rIyBDaGVjayBmb3IgaW5mbyBwYWdlcwotK0FDX0FSR19FTkFCTEUoaW5mby1k b2MsIAotKyAgICAgICAgICAgICAgW0FTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtaW5mby1kb2Nd LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkbyBub3QgZ2VuZXJhdGUgSW5mbyBk b2N1bWVudGF0aW9uXSldKQotK3Rlc3QgIngkZW5hYmxlX2luZm9fZG9jIiAhPSB4bm8gJiYgZW5h YmxlX2luZm9fZG9jPXllcwotKwotKwotKyMgQ2hlY2sgZm9yIGh0bWwtZG9jIHN3aXRjaAotK0FD X0FSR19FTkFCTEUoaHRtbC1kb2MsIAotKyAgICAgICAgICAgICAgW0FTX0hFTFBfU1RSSU5HKFst LWRpc2FibGUtaHRtbC1kb2NdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkbyBu b3QgZ2VuZXJhdGUgSFRNTCBkb2N1bWVudGF0aW9uXSldKQotK3Rlc3QgIngkZW5hYmxlX2h0bWxf ZG9jIiAhPSB4bm8gJiYgZW5hYmxlX2h0bWxfZG9jPXllcwotKwotKwotKyMgUHJvdmlkZSAtLXdp dGgtZG9jZGlyCi0rQUNfQVJHX1dJVEgoZG9jZGlyLAotKyAgICAgICAgICAgIFtBU19IRUxQX1NU UklORyhbLS13aXRoLWRvY2Rpcj1ESVJdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBb c2V0IGRvY3VtZW50YXRpb24gZGlyZWN0b3J5IHRvIERJUl0pXSwKLSsgICAgICAgICAgICBbRE9D X0RJUj0iJHdpdGh2YWwiXSwKLSsgICAgICAgICAgICBbRE9DX0RJUj0iIl0pCi0raWYgdGVzdCAi eCRET0NfRElSIiAhPSB4OyB0aGVuCi0rICBkb2NkaXI9IiRET0NfRElSIgotK2Vsc2UKLSsgIGRv Y2Rpcj0iJHtkYXRhZGlyfS9kb2MvJFBBQ0tBR0UtJFZFUlNJT04iCi0rZmkKLStBQ19TVUJTVChk b2NkaXIpCi0rCi0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBTT0NJ IGl0c2VsZikKLStBQ19BUkdfRU5BQkxFKGJ1cnJpZWQtaGVhZGVycywgCi0rIEFTX0hFTFBfU1RS SU5HKFstLWVuYWJsZS1idXJyaWVkLWhlYWRlcnNdLAotKwkJW2luY2x1ZGUgaGVhZGVyIGZpbGVz IGZyb20gYSBkaXJlY3Rvcnkgc3RydWN0dXJlXSksCi0rIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIg PSBubzsgdGhlbgotKyAgICAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0r ICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaSBdLAotKyBbIGVuYWJsZV9i dXJyaWVkX2hlYWRlcnM9bm8gXSkKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMg Z2VuZXJhdGlvbgotK2VuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVzCi0rQU1fQ09ORElUSU9OQUwo W1NPQ0lfSEVBREVSU19CVVJJRURdLCBbdGVzdCAieCRlbmFibGVfYnVycmllZF9oZWFkZXJzIiA9 IHh5ZXNdKQotK0FDX1NVQlNUKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0raWYgdGVzdCAieCRlbmFi bGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KLSsgICBDUFBGTEFHUz0iLURTT0NJX0hF QURFUlNfQlVSSUVEICRDUFBGTEFHUyIKLStmaQotKwotKyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVh ZGVyIGZpbGVzIChmb3IgTXlTUUwgY2xpZW50KQotK0FDX0FSR19FTkFCTEUobXlzcWwtYnVycmll ZC1oZWFkZXJzLCAKLSsgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLW15c3FsLWJ1cnJpZWQtaGVh ZGVyc10sCi0rCQlbaW5jbHVkZSBNeVNRTCBoZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeSBz dHJ1Y3R1cmVdKSwKLSsgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rCWVuYWJs ZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0rCWVuYWJsZV9teXNxbF9idXJy aWVkX2hlYWRlcnM9eWVzCi0rICAgZmkgXSwKLSsgWyBlbmFibGVfbXlzcWxfYnVycmllZF9oZWFk ZXJzPW5vIF0pCi0rIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24K LStlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPXllcwotK0FNX0NPTkRJVElPTkFMKFtTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEXSwKLSsgICAgICAgICAgICAgICBbdGVzdCAieCRlbmFibGVf bXlzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXNdKQotK0FDX1NVQlNUKFNPQ0lfTVlTUUxfSEVB REVSU19CVVJJRUQpCi0raWYgdGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzIiA9 IHh5ZXM7IHRoZW4KLSsgICBDUFBGTEFHUz0iLURTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEICRD UFBGTEFHUyIKLStmaQotKwotKyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3Ig UG9zdEdyZVNRTCBjbGllbnQpCi0rQUNfQVJHX0VOQUJMRShwb3N0Z3Jlc3FsLWJ1cnJpZWQtaGVh ZGVycywgCi0rIEFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1wb3N0Z3Jlc3FsLWJ1cnJpZWQtaGVh ZGVyc10sCi0rCQlbaW5jbHVkZSBQb3N0R3JlU1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0 b3J5IHN0cnVjdHVyZV0pLAotKyBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsJ ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPW5vCi0rICAgZWxzZQotKwllbmFibGVf cG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCi0rICAgZmkgXSwKLSsgWyBlbmFibGVfcG9z dGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8gXSkKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0g cGFja2FnZXMgZ2VuZXJhdGlvbgotK2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15 ZXMKLStBTV9DT05ESVRJT05BTChbU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEXSwKLSsg ICAgICAgICAgICAgICBbdGVzdCAieCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMi ID0geHllc10pCi0rQUNfU1VCU1QoU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEKQotK2lm IHRlc3QgIngkZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4K LSsgICBDUFBGTEFHUz0iLURTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdT IgotK2ZpCi0rCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgQm9vc3QgKFNUTCBFeHRlbnNpb25zOiBodHRwOi8vd3d3LmJv b3N0Lm9yZykKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rQVhfQk9PU1QoWzEuMzNdKQotK0FDX1NVQlNUKEJPT1NUX1ZFUlNJT04p Ci0rQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKQotK0FDX1NVQlNUKEJPT1NUX0xJQlMpCi0rQUNfU1VC U1QoQk9PU1RfREFURV9USU1FX0xJQikKLStBQ19TVUJTVChCT09TVF9QUk9HUkFNX09QVElPTlNf TElCKQotK0FDX1NVQlNUKEJPT1NUX0ZJTEVTWVNURU1fTElCKQotK0FDX1NVQlNUKEJPT1NUX1RI UkVBRF9MSUIpCi0rQUNfU1VCU1QoQk9PU1RfUFlUSE9OX0xJQikKLSsKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rIyBTdXBwb3J0IGZvciBNeVNRTCBiYWNrZW5kIChDIGNsaWVudCBBUEkpOiBodHRwOi8vd3d3 Lm15c3FsLm9yZwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19BUkdfRU5BQkxFKFtiYWNrZW5kLW15c3Fs XSwKLSsgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJhY2tlbmQtbXlzcWxdLAotKyAgICAg ICAgW2J1aWxkLWluIE15U1FMIGJhY2tlbmQgc3VwcG9ydCBAPDpAZGVmYXVsdD1ub0A6PkBdCi0r ICAgICksCi0rICAgIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkg ZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9t eXNxbD15ZXMKLSsgICAgICBmaSBdLAotKyAgICBbIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vIF0K LSspCi0rCi0raWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9teXNxbCIgPSAieHllcyI7IHRoZW4K LSsgICBNWVNRTF9ESVJTPSJteXNxbCIKLSsjICAgTVlTUUxfUkVRX1ZFUlNJT049IjMuMC4wIgot KyAgIEFYX01ZU1FMCi0rZmkKLStBTV9DT05ESVRJT05BTChbSEFWRV9NWVNRTF0sIFt0ZXN0ICJ4 JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9IHh5ZXNdKQotKyNNWVNRTF9ESVJTPSJteXNxbCIKLSsK LStBQ19TVUJTVChbTVlTUUxfRElSU10pCi0rCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTdXBwb3J0 IGZvciBPcmFjbGUgYmFja2VuZAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0FSR19FTkFCTEUoW2JhY2tl bmQtb3JhY2xlXSwKLSsgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJhY2tlbmQtb3JhY2xl XSwKLSsJCSAgIFtidWlsZC1pbiBPUkFDTEUgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5v QDo+QF0pLAotKyAgICBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsgICAgICAJ IGVuYWJsZV9iYWNrZW5kX29yYWNsZT1ubwotKyAgICAgIGVsc2UKLSsJIGVuYWJsZV9iYWNrZW5k X29yYWNsZT15ZXMKLSsgICAgICBmaSBdLAotKyAgICBbIGVuYWJsZV9iYWNrZW5kX29yYWNsZT1u byBdCi0rKQotKwotK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9ICJ4eWVzIjsg dGhlbgotKyAgIE9SQUNMRV9ESVJTPSJvcmFjbGUiCi0rICAgT1JBQ0xFX09DSV9SRVFfVkVSU0lP Tj0iOS4wIgotKyAgIEFYX0xJQl9PUkFDTEVfT0NJKCRPUkFDTEVfT0NJX1JFUV9WRVJTSU9OKQot K2ZpCi0rQU1fQ09ORElUSU9OQUwoW0hBVkVfT1JBQ0xFXSwgW3Rlc3QgIngkZW5hYmxlX2JhY2tl bmRfb3JhY2xlIiA9IHh5ZXNdKQotKyNPUkFDTEVfRElSUz0ib3JhY2xlIgotKwotK0FDX1NVQlNU KFtPUkFDTEVfRElSU10pCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTdXBwb3J0IGZvciBQb3N0Z3Jl U1FMIGJhY2tlbmQKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19BUkdfRU5BQkxFKFtiYWNrZW5kLXBvc3Rn cmVzcWxdLAotKyAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3Fs XSwKLSsgICAgICAgIFtidWlsZC1pbiBQb3N0Z3JlU1FMIGJhY2tlbmQgc3VwcG9ydCBAPDpAZGVm YXVsdD1ub0A6PkBdCi0rICAgICksCi0rICAgIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsg dGhlbgotKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD1ubwotKyAgICAgIGVsc2UK LSsJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9eWVzCi0rICAgICAgZmkgXSwKLSsgICAgWyBl bmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPW5vIF0KLSspCi0rCi0raWYgdGVzdCAieCRlbmFibGVf YmFja2VuZF9wb3N0Z3Jlc3FsIiA9ICJ4eWVzIjsgdGhlbgotKyAgIFBPU1RHUkVTUUxfRElSUz0i cG9zdGdyZXNxbCIKLSsgICBQT1NUR1JFU1FMX1JFUV9WRVJTSU9OPSI3LjEuNCIKLSsgICBBWF9M SUJfUE9TVEdSRVNRTCgkUE9TVEdSRVNRTF9SRVFfVkVSU0lPTikKLStmaQotK0FNX0NPTkRJVElP TkFMKFtIQVZFX1BPU1RHUkVTUUxdLCBbdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3Fs IiA9IHh5ZXNdKQotKyNQT1NUR1JFU1FMX0RJUlM9InBvc3RncmVzcWwiCi0rCi0rQUNfU1VCU1Qo W1BPU1RHUkVTUUxfRElSU10pCi0rCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTdXBwb3J0IGZvciBk b2N1bWVudGF0aW9uCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVja3MgZm9yIGRvY3VtZW50YXRpb24g YnVpbGQgdG9vbHMKLSsjQUNfQ0hFQ0tfUFJPRyhbdGV4aW5mb19va10sIFt0ZXhpbmZvXSwgW3ll c10sIFtub10pCi0rI2lmIHRlc3QgIngkZW5hYmxlX2luZm9fZG9jIiAhPSB4bm87IHRoZW4KLSsj ICB0ZXN0ICJ4JHRleGluZm9fb2siICE9IHh5ZXMgJiYgZW5hYmxlX2luZm9fZG9jPW5vCi0rIyAg QUNfUEFUSF9QUk9HKFtQRVJMXSwgW3BlcmxdLCBbXSkKLSsjZmkKLStBTV9DT05ESVRJT05BTChb SU5GT19ET0NdLCBbdGVzdCAieCRlbmFibGVfaW5mb19kb2MiID0geHllc10pCi0rCi0rIyBDaGVj a3MgZm9yIGRvY3VtZW50YXRpb24gYnVpbGQgdG9vbHMKLStBQ19DSEVDS19QUk9HKFtkb3h5Z2Vu X29rXSwgW2RveHlnZW5dLCBbeWVzXSwgW25vXSkKLStBQ19DSEVDS19QUk9HKFtsYXRleF9va10s IFtsYXRleF0sIFt5ZXNdLCBbbm9dKQotK0FDX0NIRUNLX1BST0coW2R2aXBzX29rXSwgW2R2aXBz XSwgW3llc10sIFtub10pCi0rQUNfQ0hFQ0tfUFJPRyhbZ3Nfb2tdLCBbZ3NdLCBbeWVzXSwgW25v XSkKLStpZiB0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgIT0geG5vOyB0aGVuCi0rICB0ZXN0ICJ4 JGRveHlnZW5fb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4JGxh dGV4X29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwotKyAgdGVzdCAieCRkdmlwc19v ayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KLSsgIHRlc3QgIngkZ3Nfb2siICE9IHh5 ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICBBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0s IFtdKQotK2ZpCi0rQU1fQ09ORElUSU9OQUwoW0hUTUxfRE9DXSwgW3Rlc3QgIngkZW5hYmxlX2h0 bWxfZG9jIiA9IHh5ZXNdKQotKwotKwotKyMgQ2hlY2sgZm9yIGRpZmYgcHJvZ3JhbSB1c2VkIGZv ciB0ZXN0cwotK0FDX0NIRUNLX1BST0coW2RpZmZfb2tdLCBbZGlmZl0sIFt5ZXNdLCBbbm9dKQot K0FDX0NIRUNLX1BST0coW3NlZF9va10sIFtzZWRdLCBbeWVzXSwgW25vXSkKLStlbmFibGVfdGVz dHM9eWVzCi0rdGVzdCAieCRkaWZmX29rIiAhPSB4eWVzICYmIGVuYWJsZV90ZXN0cz1ubwotK3Rl c3QgIngkc2VkX29rIiAhPSB4eWVzICYmIGVuYWJsZV90ZXN0cz1ubwotK0FNX0NPTkRJVElPTkFM KFtSVU5fVEVTVFNdLCBbdGVzdCAieCRlbmFibGVfdGVzdHMiID0geHllc10pCi0rCi0rCi0rIyBD aGVja3MgZm9yIGhlYWRlciBmaWxlcwotK0FDX0hFQURFUl9TVERDCi0rQUNfSEVBREVSX1RJTUUK LStBQ19DSEVDS19IRUFERVJTKFtjbWF0aCBcCi0rICBkZXF1ZSBcCi0rICBmc3RyZWFtIFwKLSsg IGlvbWFuaXAgXAotKyAgaW9zdHJlYW0gXAotKyAgc3N0cmVhbSBcCi0rICBsaW1pdHMgXAotKyAg bGlzdCBcCi0rICBzZXQgXAotKyAgdmVjdG9yIFwKLSsgIG1hcCBcCi0rICBxdWV1ZSBcCi0rICBz dGRleGNlcHQgXAotKyAgc3RyaW5nXSkKLSsKLSsKLSsjIERlZmluZSBjb25maWd1cmVkIGZpbGVz Ci0rQUNfQ09ORklHX0ZJTEVTKAotKwlNYWtlZmlsZQotKwlzb2NpLWNvbmZpZwotKwlzb2NpLnBj Ci0rCXNvY2kvTWFrZWZpbGUKLSsJc29jaS9jb3JlL01ha2VmaWxlCi0rCXNvY2kvY29yZS90ZXN0 L01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5kcy9teXNx bC9NYWtlZmlsZQotKwlzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKLSsJc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlCi0rCXNvY2kvYmFj a2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUKLSsJbWFuL01ha2VmaWxlCi0rICAgICAgICBkb2Mv TWFrZWZpbGUKLSsgICAgICAgIGRvYy9iYWNrZW5kcy9NYWtlZmlsZQotKwlidWlsZC9NYWtlZmls ZQotKwlidWlsZC91bml4L01ha2VmaWxlCi0rCWJ1aWxkL21zdmM4MC9NYWtlZmlsZQotKwlidWls ZC9tc3ZjODAvZGxsL01ha2VmaWxlCi0rCWJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUpCi0rCi0r QUNfT1VUUFVUCi0rCi0rZWNobyAiCi0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rJFBBQ0tBR0Ut JFZFUlNJT04gbGlicmFyeSBjb25maWd1cmF0aW9uOgotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KwotK0RpcmVjdG9yaWVzOgotKyAgLSBwcmVmaXggLi4uLi4uLi4uLi4uLi4uIDogJHtwcmVmaXh9 Ci0rICAtIGV4ZWNfcHJlZml4IC4uLi4uLi4uLi4gOiAke2V4ZWNfcHJlZml4fQotKyAgLSBpbmNs dWRlZGlyIC4uLi4uLi4uLi4uIDogJHtpbmNsdWRlZGlyfQotKyAgLSBsaWJkaXIgLi4uLi4uLi4u Li4uLi4uIDogJHtsaWJkaXJ9Ci0rICAtIGRvY2RpciAuLi4uLi4uLi4uLi4uLi4gOiAke2RvY2Rp cn0KLSsgIC0gbWFuZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bWFuZGlyfQotKyAgLSBpbmZvZGly IC4uLi4uLi4uLi4uLi4uIDogJHtpbmZvZGlyfQotKwotK1N3aXRjaGVzOgotKyAgLSBleGNlcHRp b25zIC4uLi4uLi4uLi4uIDogJHtlbmFibGVfZXhjZXB0aW9uc30KLSsgIC0gaW5mby1kb2MgLi4u Li4uLi4uLi4uLiA6ICR7ZW5hYmxlX2luZm9fZG9jfQotKyAgLSBodG1sLWRvYyAuLi4uLi4uLi4u Li4uIDogJHtlbmFibGVfaHRtbF9kb2N9Ci0rICAtIHNoYXJlZCAuLi4uLi4uLi4uLi4uLi4gOiAk e2VuYWJsZV9zaGFyZWR9Ci0rICAtIHN0YXRpYyAuLi4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9z dGF0aWN9Ci0rCi0rRG9jdW1lbnRhdGlvbiB0b29sczoKLSsgIC0gdGV4aW5mbyAuLi4uLi4uLi4u Li4uLiA6ICR7dGV4aW5mb19va30KLSsgIC0gZG94eWdlbiAuLi4uLi4uLi4uLi4uLiA6ICR7ZG94 eWdlbl9va30KLSsgIC0gbGF0ZXggLi4uLi4uLi4uLi4uLi4uLiA6ICR7bGF0ZXhfb2t9Ci0rICAt IGR2aXBzIC4uLi4uLi4uLi4uLi4uLi4gOiAke2R2aXBzX29rfQotKyAgLSBnaG9zdHNjcmlwdCAu Li4uLi4uLi4uIDogJHtnc19va30KLSsKLStUZXN0aW5nIHRvb2xzOgotKyAgLSBkaWZmIC4uLi4u Li4uLi4uLi4uLi4uIDogJHtkaWZmX29rfQotKyAgLSBzZWQgLi4uLi4uLi4uLi4uLi4uLi4uIDog JHtzZWRfb2t9Ci0rCi0rQ29tcGlsZXIvbGlua2VyIGZsYWdzL2xpYnMvZGVmczoKLSsgIC0gQ1hY IC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7Q1hYfQotKyAgLSBDWFhGTEFHUyAuLi4uLi4uLi4uLi4u IDogJHtDWFhGTEFHU30KLSsgIC0gQ1BQRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1BQRkxBR1N9 Ci0rICAtIExERkxBR1MgLi4uLi4uLi4uLi4uLi4gOiAke0xERkxBR1N9Ci0rICAtIExJQlMgLi4u Li4uLi4uLi4uLi4uLi4gOiAke0xJQlN9Ci0rCi0rQnVycmllZCBoZWFkZXIgZmlsZXM6Ci0rICAt IFNPQ0lfSEVBREVSU19CVVJJRUQgLi4uLi4uLiA6ICR7ZW5hYmxlX2J1cnJpZWRfaGVhZGVyc30K LSsgIC0gTVlTUUxfSEVBREVSU19CVVJJRUQgLi4uLi4uIDogJHtlbmFibGVfbXlzcWxfYnVycmll ZF9oZWFkZXJzfQotKyAgLSBQT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEIC4gOiAke2VuYWJsZV9w b3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVyc30KLSsKLStFeHRlcm5hbCBsaWJyYXJpZXM6Ci0rICAt IEJvb3N0IC4uLi4uLi4uLi4uLi4uLi4gOgotKyAgICBvIEJPT1NUX1ZFUlNJT04gLi4uLi4uIDog JHtCT09TVF9WRVJTSU9OfQotKyAgICBvIEJPT1NUX0NGTEFHUyAuLi4uLi4uIDogJHtCT09TVF9D RkxBR1N9Ci0rICAgIG8gQk9PU1RfTElCUyAuLi4uLi4uLi4gOiAke0JPT1NUX0xJQlN9Ci0rICAg IG8gQk9PU1RfRFRfTElCIC4uLi4uLi4gOiAke0JPT1NUX0RBVEVfVElNRV9MSUJ9Ci0rICAgIG8g Qk9PU1RfUE9fTElCIC4uLi4uLi4gOiAke0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJ9Ci0rCi0r ICAtIE15U1FMIHN1cHBvcnQgLi4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX215c3FsfQotKyAg ICBvIE1ZU1FMX1ZFUlNJT04gLi4uLi4uIDogJHtNWVNRTF9WRVJTSU9OfQotKyAgICBvIE1ZU1FM X0NGTEFHUyAuLi4uLi4uIDogJHtNWVNRTF9DRkxBR1N9Ci0rICAgIG8gTVlTUUxfTElCUyAuLi4u Li4uLi4gOiAke01ZU1FMX0xJQlN9Ci0rCi0rICAtIFBvc3RHcmVTUUwgc3VwcG9ydCAuLi4gOiAk e2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWx9Ci0rICAgIG8gUE9TVEdSRVNRTF9WRVJTSU9OIC4g OiAke1BPU1RHUkVTUUxfVkVSU0lPTn0KLSsgICAgbyBQT1NUR1JFU1FMX0NGTEFHUyAuLiA6ICR7 UE9TVEdSRVNRTF9DRkxBR1N9Ci0rICAgIG8gUE9TVEdSRVNRTF9MREZMQUdTIC4gOiAke1BPU1RH UkVTUUxfTERGTEFHU30gCi0rCi0rICAtIE9yYWNsZSBzdXBwb3J0IC4uLi4uLi4gOiAke2VuYWJs ZV9iYWNrZW5kX29yYWNsZX0KLSsgICAgbyBPUkFDTEVfVkVSU0lPTiAuLi4uLiA6ICR7T1JBQ0xF X09DSV9WRVJTSU9OfQotKyAgICBvIE9SQUNMRV9DRkxBR1MgLi4uLi4uIDogJHtPUkFDTEVfT0NJ X0NGTEFHU30KLSsgICAgbyBPUkFDTEVfTERGTEFHUyAuLi4uLiA6ICR7T1JBQ0xFX09DSV9MREZM QUdTfSAKLSsKLSsgIC0gQ1BQVW5pdCAuLi4uLi4uLi4uLi4uLiA6Ci0rICAgIG8gQ1BQVU5JVF9W RVJTSU9OIC4uLi4gOiAke0NQUFVOSVRfVkVSU0lPTn0KLSsgICAgbyBDUFBVTklUX0NGTEFHUyAu Li4uLiA6ICR7Q1BQVU5JVF9DRkxBR1N9Ci0rICAgIG8gQ1BQVU5JVF9MSUJTIC4uLi4uLi4gOiAk e0NQUFVOSVRfTElCU30KLSsKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStOb3cgdHlwZSAnbWFr ZSAmJiBtYWtlIGluc3RhbGwnIHRvIGJ1aWxkIGFuZCBpbnN0YWxsICRQQUNLQUdFLSRWRVJTSU9O IGxpYnJhcnkKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsiCi1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2Mv YmFja2VuZHMvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMv TWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2Np LTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6NTA6 MzguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE2IEBACi0rIyMgZG9jL2JhY2tlbmRzIHN1 Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0raW5j bHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwotKyMjIFNvdXJjZSBkaXJlY3RvcnkKLSsKLStN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9Ci0rCi0rRVhU UkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2Jja19zb3VyY2VzKQotKyNm aXJlYmlyZC5odG1sIGluZGV4Lmh0bWwgbXlzcWwuaHRtbCBvZGJjLmh0bWwgb3JhY2xlLmh0bWwg cG9zdGdyZXNxbC5odG1sIHNxbGl0ZTMuaHRtbAotKwotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJ U1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLSsKLSsjcGtnZGF0YWRpciA9ICQoaHRtbF9iY2tf c291cmNlcykKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvTWFrZWZp bGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgotLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMv TWFrZWZpbGUuaW4JMjAxMS0wNy0wMyAxODo0NDoyNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAg KzEsNjMyIEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZy b20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChD KSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAot KyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLAotKyMgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0 IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwot KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVy bWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgot KwotK0BTRVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRp cikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0r cGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4 ZWNkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBB VEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1j IC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxs X3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFM TF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxf SU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFM X1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgot K2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9D T01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJ JChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJk aXIgPSBkb2MvYmFja2VuZHMKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00 Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9z dGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRv cHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9k ZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwK LSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09O RklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFO X0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1Rf U09VUkNFUyA9Ci0rUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vy c2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5z dGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4 ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVj dXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGlu c3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1y ZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJz aXZlCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xl YW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1y ZWN1cnNpdmUKLStBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJl Y3Vyc2l2ZT0pIFwKLSsJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFn cyBUQUdTIGN0YWdzIENUQUdTIFwKLSsJZGlzdGRpcgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9 IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9D T01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3Jl bGF0aXZpemUgPSBcCi0rICBkaXIwPWBwd2RgOyBcCi0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpc KS8uKiQkLFwxLCc7IFwKLSsgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFz dD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAotKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQk LCwnOyBcCi0rICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hv ICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmly c3QiICE9ICIuIjsgdGhlbiBcCi0rICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVu IFwKLSsgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8i JCRkaXIyIjsgXAotKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRf YnV0bGFzdCJgOyBcCi0rICAgICAgZWxzZSBcCi0rICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGly MiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3Qy IiA9ICIkJGZpcnN0IjsgdGhlbiBcCi0rICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBz ZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgICAgICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9 Ii4uLyQkZGlyMiI7IFwKLSsgICAgICAgIGZpOyBcCi0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIk JGZpcnN0IjsgXAotKyAgICAgIGZpOyBcCi0rICAgIGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQk ZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIk JGRpcjIiCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFS QAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStB VVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0FTSU9fTElCID0gQEJP T1NUX0FTSU9fTElCQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFU RV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElC ID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1Rf SU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJ QiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9Q WVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACi0rQk9P U1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09T VF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACi0r Qk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZF UlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1P REVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZM QUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklH ID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQ VU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9 IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZM QUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9 IEBERVBESVJACi0rRExMVE9PTCA9IEBETExUT09MQAotK0RTWU1VVElMID0gQERTWU1VVElMQAot K0RVTVBCSU4gPSBARFVNUEJJTkAKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hP X05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhF RVhUQAotK0ZHUkVQID0gQEZHUkVQQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExA Ci0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5T VEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RB TExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTEQgPSBATERACi0r TERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNA Ci0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xJUE8gPSBATElQT0AKLStMTl9TID0gQExOX1NACi0r TFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNQU5JRkVT VF9UT09MID0gQE1BTklGRVNUX1RPT0xACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NG TEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlT UUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNR TF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJ VEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElS UyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFH U0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9P Q0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RP T0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9S VCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAot K1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQ QUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACi0rUEFDS0FHRV9W RVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFS QVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JF U1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9T VEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NA Ci0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBA UkFOTElCQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBA U0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NP Q0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01N QU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGly QAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190 b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3Rf QVIgPSBAYWNfY3RfQVJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFj X2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUg PSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSth bV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIg PSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVp bGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWls ZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxk ZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBk YXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStk b3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9 IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19v a0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1 ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0 X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGly QAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0 ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxp YmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxv Y2Fsc3RhdGVkaXJACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0r b2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJl Zml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNm b3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9v ayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGly ID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0g QHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0r dG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJA Ci0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStodG1s X2Jja19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvaW5kZXguaHRtbCBcCi0r CSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2ZpcmViaXJkLmh0bWwgXAotKwkkKHRvcF9zcmNk aXIpL2RvYy9iYWNrZW5kcy9teXNxbC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2Vu ZHMvb2RiYy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb3JhY2xlLmh0bWwg XAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsLmh0bWwgXAotKwkkKHRv cF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9zcWxpdGUzLmh0bWwKLSsKLStNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IAotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09N UEFUSUJJTElUWSA9ICQoaHRtbF9iY2tfc291cmNlcykKLSsjZmlyZWJpcmQuaHRtbCBpbmRleC5o dG1sIG15c3FsLmh0bWwgb2RiYy5odG1sIG9yYWNsZS5odG1sIHBvc3RncmVzcWwuaHRtbCBzcWxp dGUzLmh0bWwKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkpCi0rYWxsOiBhbGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtl ZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBk ZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJ ICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1m ICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsg XAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAk KEFVVE9NQUtFKSAtLWdudSBkb2MvYmFja2VuZHMvTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAk KHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBkb2MvYmFja2VuZHMvTWFr ZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmls ZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJ ICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikv JEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsK LSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsk KEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2Fs X200X2RlcHMpOgotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0r Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotKwotKyMgVGhpcyBkaXJlY3Rv cnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0r IyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFr ZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0 ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQg aW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3 aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBt YWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUg YG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWw9IGZh aWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNh c2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29t PSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBc Ci0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQk dGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhl biBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQt YW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkg IGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwK LSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRm YWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0n ZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYg aW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9 eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2Fz ZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0n JChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwll c2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQk cmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJn ZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRy ZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0Ijsg XAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRv bmUgJiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAu IHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7 IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9f Y2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25l Ci0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBc Ci0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVj dXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJ JChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYg KCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhl biBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4 PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1w dHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAot KwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICBzZXQgIiQkQCIgIiQk aW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9u ZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVT KSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYg IiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkg IGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0g XAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBp OyB9OyB9J2A7IFwKLSsJc2hpZnQ7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQk dW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVl PSQkZW1wdHlfZml4OyBcCi0rCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAotKwkgICAgJChF VEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkg ICAgICAiJCRAIiAkJHVuaXF1ZTsgXAotKwkgIGVsc2UgXAotKwkgICAgJChFVEFHUykgJChFVEFH U0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAkJHVuaXF1 ZTsgXAotKwkgIGZpOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vy c2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQo VEFHU19GSUxFUykgJChMSVNQKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElT UCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rpcikv JCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBu b25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGlu IGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5p cXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQo Q1RBR1NfQVJHUykgXAotKwkgICAgICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1f X2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQodG9wX3Ny Y2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsKLStkaXN0 Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRh Z3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNy Y2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJp cD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBc Ci0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAk JGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJz dHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWls ZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJ Ul9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChk aXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2Fj OyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRm aWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwK LSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRm aWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgIiQoZGlz dGRpcikvJCRmaWxlIjsgdGhlbiBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAt dHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7 IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNy Y2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRp cikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAt dHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7 IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7 IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAg ICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgZXhp dCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVu IDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAg fHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBc Ci0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVs c2UgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwK LSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsg XAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCi0rCSAgICAk KGFtX19yZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCi0r CSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9k aXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBc Ci0rCSAgICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9j aGVjaz06IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCi0rCSAgICAoJChhbV9fY2Qp ICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAg ICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9 IiQkbmV3X2Rpc3RkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lw X2xlbmd0aF9jaGVjaz06IFwKLSsJCWFtX19za2lwX21vZGVfZml4PTogXAotKwkgICAgICAgIGRp c3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNr LWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZQot K2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStp bnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJl Y3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFs bDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtF KSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2lu c3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BS T0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBc Ci0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAg aW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStk aXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwg cm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0 ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NM RUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8g IlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNo byAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVi dWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChN QUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4t YW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3Rj bGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4t YW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBk dmktcmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0r aHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5z dGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsK LStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1s OiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2luc3Rh bGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mby1hbToKLSsK LStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0r Ci0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUK LSsKLStpbnN0YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVy LWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLStt YWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj Ci0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFu LWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBk Zi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFt OgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1hbSBp bnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwt YW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJ Y3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRp c3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwK LSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBc Ci0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4 ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0 YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5z dGFsbC1wZGYtYW0gXAotKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBp bnN0YWxsY2hlY2sgXAotKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMt YW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHlj bGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRm LWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwgdW5pbnN0YWxs LWFtCi0rCi0rQFNFVF9NQUtFQAotKwotKyNwa2dkYXRhZGlyID0gJChodG1sX2Jja19zb3VyY2Vz KQotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhw b3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNW IGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9k b2MvYmFja2VuZHMvc291cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5k cy9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6NDc6 NTMuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDcgQEAKLStodG1sX2Jja19zb3VyY2VzID0g JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvaW5kZXguaHRtbCBcCi0rCSQodG9wX3NyY2Rpcikv ZG9jL2JhY2tlbmRzL2ZpcmViaXJkLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5k cy9teXNxbC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb2RiYy5odG1sIFwK LSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb3JhY2xlLmh0bWwgXAotKwkkKHRvcF9zcmNk aXIpL2RvYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9i YWNrZW5kcy9zcWxpdGUzLmh0bWwKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFr ZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuYW0JMjAxMC0wMS0yMyAx MzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsOCBAQAotK2luY2x1ZGUgJCh0b3Bf c3JjZGlyKS9kb2Mvc291cmNlcy5tawotKwotK1NVQkRJUlMgPSBiYWNrZW5kcwotKwotK0VYVFJB X0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICQoaHRtbF9sb2NhbF9zb3VyY2VzKSBcCi0r CSQoY3NzX2xvY2FsX3NvdXJjZXMpICQoaW1nX2xvY2FsX3NvdXJjZXMpCi0rCi0rRVhUUkFfRElT VCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2Vm aWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL01ha2VmaWxlLmluCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtl ZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw2 MzUgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBN YWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0 ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0r QFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2ds aWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2Rp cikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9T RVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0g NjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hf U0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RB VEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNU QUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5J TlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVp bGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1P TiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRv cF9zcmNkaXIpL2RvYy9zb3VyY2VzLm1rCi0rc3ViZGlyID0gZG9jCi0rQUNMT0NBTF9NNCA9ICQo dG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3Fs Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05G SUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0g JChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9j b25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT ID0KLStTT1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxs LXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJz aXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2 aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1 cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBp bnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1y ZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1 cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9z dGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJz aXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAk KFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCi0rCSQoUkVDVVJTSVZFX0NMRUFOX1RB UkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCi0rCWRpc3RkaXIKLStF VEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykK LStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykg JChFWFRSQV9ESVNUKQotK2FtX19yZWxhdGl2aXplID0gXAotKyAgZGlyMD1gcHdkYDsgXAotKyAg c2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCi0rICBzZWRfcmVzdD0ncyxeW14v XSovKiwsJzsgXAotKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKLSsgIHNl ZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAotKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsg ZG8gXAotKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsg XAotKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAotKyAgICAgIGlmIHRlc3Qg IiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCi0rICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwg c2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKLSsgICAgICAgIGRpcjA9YGVjaG8gIiQk ZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAotKyAgICAgIGVsc2UgXAotKyAgICAg ICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAg ICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAotKyAgICAgICAgICBk aXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgICAgICAgIGVs c2UgXAotKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCi0rICAgICAgICBmaTsgXAotKyAg ICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKLSsgICAgICBmaTsgXAotKyAgICBmaTsg XAotKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsg IGRvbmU7IFwKLSsgIHJlbGRpcj0iJCRkaXIyIgotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRB UiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVB REVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AK LStCT09TVF9BU0lPX0xJQiA9IEBCT09TVF9BU0lPX0xJQkAKLStCT09TVF9DRkxBR1MgPSBAQk9P U1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAK LStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9J T1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09T VF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKLStCT09TVF9NUElfUFlU SE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKLStCT09TVF9QUk9HUkFNX09QVElPTlNf TElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUFlUSE9OX0xJQiA9IEBC T09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0r Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9P U1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9 IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJ QkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJB TUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NF UklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AK LStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQ UEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NG TEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMg PSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0r Q1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9E RUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RF RlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RMTFRPT0wgPSBARExMVE9PTEAKLStE U1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVD SE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBA RUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJ QlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBA Ci0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0r SU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJ TlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9Q Uk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJ Qk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJ UE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8g PSBATUFLRUlORk9ACi0rTUFOSUZFU1RfVE9PTCA9IEBNQU5JRkVTVF9UT09MQAotK01LRElSX1Ag PSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElC ID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJT ID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0g QE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9 IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxB R1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9P Q0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAot K09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tB R0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9O QU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AK LStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVVJMID0gQFBB Q0tBR0VfVVJMQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9T RVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9 IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0r UE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1Mg PSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FM X1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0g QFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09D SV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURf Q09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1 aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJz X3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFi c190b3Bfc3JjZGlyQAotK2FjX2N0X0FSID0gQGFjX2N0X0FSQAotK2FjX2N0X0NDID0gQGFjX2N0 X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9E VU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9 IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0g QGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAot K2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2Nw dSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0g QGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFk aXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAot K2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9 IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19w cmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBA aG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NA Ci0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2lu Y2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9z aCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJk aXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJA Ci0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0r bWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStw ZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5k aXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNo YXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25m ZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9 IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9w X3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK2h0bWxfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2Rp cikvZG9jL2JhY2tlbmRzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYXNpY3MuaHRtbCBc Ci0rCSQodG9wX3NyY2RpcikvZG9jL2JleW9uZC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2Mv Ym9vc3QuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Vycm9ycy5odG1sIFwKLSsJJCh0b3Bf c3JjZGlyKS9kb2MvZXhjaGFuZ2UuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2luZGV4Lmh0 bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9pbnRlcmZhY2VzLmh0bWwgXAotKwkkKHRvcF9zcmNk aXIpL2RvYy9tdWx0aXRocmVhZGluZy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvcmF0aW9u YWxlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9yZWZlcmVuY2UuaHRtbCBcCi0rCSQodG9w X3NyY2RpcikvZG9jL3N0YXRlbWVudHMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3N0cnVj dHVyZS5odG1sCi0rCi0rY3NzX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHls ZS5jc3MKLStpbWdfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5w bmcKLStTVUJESVJTID0gYmFja2VuZHMKLStFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkgPSAkKGh0bWxfbG9jYWxfc291cmNlcykgXAotKwkkKGNzc19sb2NhbF9zb3VyY2VzKSAkKGlt Z19sb2NhbF9zb3VyY2VzKQotKwotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lf Q09NUEFUSUJJTElUWSkKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rJChz cmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2Rpcikv ZG9jL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBk byBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAq KSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBl eGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2Fj OyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkg LS1nbnUgZG9jL01ha2VmaWxlJzsgXAotKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCi0r CSAgJChBVVRPTUFLRSkgLS1nbnUgZG9jL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQot K01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5z dGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7 OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwK LSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChz dWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9i dWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdf U1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAk KGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxf bTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCi0rJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKLSsKLSttb3N0bHljbGVhbi1s aWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxp YnMgX2xpYnMKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3Rs eSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdp dGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1 ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsj ICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29u ZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJl IHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFz cyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNV UlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGlu IHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsh a10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwK LSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8t cmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0r CSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBl dmFsICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5v IjsgdGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBl eGl0IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9U QVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1B S0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsg XAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25l OyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSog fCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICop IGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVs c2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBc Ci0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2 ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQk dGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhl biBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkg ICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkg JCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJ ICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdz LXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6 Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRl c3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNF UykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3Rh Z3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykg ICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlzZXQg eDsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12 ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRh Z3MtaW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAotKwkgIGluY2x1ZGVf b3B0aW9uPS0taW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7IFwKLSsJbGlzdD0n JChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdT IHx8IFwKLSsJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRp ci9UQUdTIjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNoaWZ0OyBcCi0rCWlm IHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAg dGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgIGlmIHRlc3Qg JCQjIC1ndCAwOyB0aGVuIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFH U0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKLSsJICBl bHNlIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVU QUdTX0FSR1MpIFwKLSsJICAgICAgJCR1bmlxdWU7IFwKLSsJICBmaTsgXAotKwlmaQotK2N0YWdz OiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAk KFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJbGlzdD0n JChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1 ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVj aG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkg ICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5E IHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0r CXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RB R1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHVuaXF1 ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAg XAotKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdU QUdTX0FSR1MpICIkJGhlcmUiCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElE IEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMp Ci0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9c XFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2Vk ICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0r CSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8 IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xe JCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0 X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBc Ci0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAot KwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmls ZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBk PS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0 aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdg OyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAg ICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2ht b2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGly KS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZw UiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAg ICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2ht b2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUg IiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1m ICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0 ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJ QGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQo ZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRz dWJkaXIiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxpc3Q9 JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRp cjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAot KwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9 IiQodG9wX2Rpc3RkaXIpIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5l d190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRp c3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAotKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3Zl X2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRp c3RkaXIpIjsgXAotKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rp c3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCi0rCQlhbV9fcmVt b3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCQlhbV9fc2tp cF9tb2RlX2ZpeD06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQgMTsg XAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLXJl Y3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVj dXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStp bnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3Rh bGwtZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStp bnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1 cnNpdmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxM X1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAot KwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFN X0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmlj OgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16 ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQot KwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhf RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFp bmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9y IG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkg cmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotK2NsZWFuOiBjbGVhbi1yZWN1cnNp dmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFu LWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmls ZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRh Z3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1y ZWN1cnNpdmUKLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5m by1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZp LXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsK LStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwt YW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFs bC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBk Zi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxs LXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgot KwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAt ZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVy LWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0r Ci0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9v bAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJz aXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiAkKFJFQ1VSU0lW RV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAot KwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQo UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdT IFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFu LWxpYnRvb2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1n ZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkg ZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0g aW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZp LWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFs bC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBp bnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBp bnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGly cyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1n ZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1s aWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0rCXVuaW5z dGFsbCB1bmluc3RhbGwtYW0KLSsKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2Yg R05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lz dGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9S VDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2Mvc291cmNlcy5tayBzb2NpLTMuMC4w X3RyZXAzMDAvZG9jL3NvdXJjZXMubWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2Mvc291cmNl cy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9kb2Mvc291cmNlcy5tawkyMDEwLTAxLTIzIDEzOjI1OjU3LjAwMDAwMDAwMCArMDEw MAotQEAgLTAsMCArMSwxOCBAQAotK2h0bWxfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2Rpcikv ZG9jL2JhY2tlbmRzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYXNpY3MuaHRtbCBcCi0r CSQodG9wX3NyY2RpcikvZG9jL2JleW9uZC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYm9v c3QuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Vycm9ycy5odG1sIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9kb2MvZXhjaGFuZ2UuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2luZGV4Lmh0bWwg XAotKwkkKHRvcF9zcmNkaXIpL2RvYy9pbnRlcmZhY2VzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIp L2RvYy9tdWx0aXRocmVhZGluZy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvcmF0aW9uYWxl Lmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9yZWZlcmVuY2UuaHRtbCBcCi0rCSQodG9wX3Ny Y2RpcikvZG9jL3N0YXRlbWVudHMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVy ZS5odG1sCi0rCi0rY3NzX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHlsZS5j c3MKLSsKLStpbWdfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5w bmcKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZSBzb2NpLTMuMC4wX3Ry ZXAzMDAvTWFrZWZpbGUKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZQkyMDExLTA3LTAz IDE4OjU1OjA2LjM3NDg3NzI4MSArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmls ZQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsMjAgKzAsMCBAQAot LWJ1aWxkX2xpYnMgOgotLQljZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgYnVpbGQudGNs IGNvcmUgY29yZS1zbyBteXNxbCBteXNxbC1zbyBwb3N0Z3Jlc3FsIHBvc3RncmVzcWwtc28gb3Jh Y2xlIG9yYWNsZS1zbwotLQotLXRlc3RzIDoKLS0JY2QgYnVpbGQvdW5peDsgYGNhdCBsb2NhbC90 Y2xgIGJ1aWxkLnRjbCBteXNxbC10ZXN0IG9yYWNsZS10ZXN0IHBvc3RncmVzcWwtdGVzdAotLQot LWluc3RhbGwgOgotLQljZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgaW5zdGFsbC50Y2wK LS0KLS11bmluc3RhbGwgOgotLQljZCBidWlsZC91bml4L2xvY2FsOyAvYmluL3NoIHVuaW5zdGFs bC5zaAotLQotLWNsZWFuIDoKLS0JZmluZCAuIC1uYW1lICcqLm8nIHwgeGFyZ3Mgcm0KLS0JZmlu ZCAuIC1uYW1lICcqLmEnIHwgeGFyZ3Mgcm0KLS0JZmluZCAuIC1uYW1lICcqLnNvJyB8IHhhcmdz IHJtCi0tCXJtIC1mIHNyYy9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwKLS0Jcm0gLWYg c3JjL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlCi0tCXJtIC1mIHNyYy9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsCi0tCXJtIC1yZiBidWlsZC91bml4L2lu Y2x1ZGUgYnVpbGQvdW5peC9saWIgYnVpbGQvdW5peC90ZXN0cwotZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5hbQotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmFtCTIwMTEtMDItMDgg MjI6Mjk6NTQuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDYyIEBACi0rIyMgdG9wIGRpcmVj dG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStBQ0xPQ0FM X0FNRkxBR1MgPSAtSSBjb25maWcKLSsKLStBVVRPTUFLRV9PUFRJT05TID0gZGlzdC1iemlwMgot KwotK2lmIFJVTl9URVNUUwotKyMgIFRFU1RfRElSID0gdGVzdAotK2VuZGlmCi0rCi0rTUFOX0RP Q19ESVIgPSBtYW4KLSsKLSsjIE1haW50YWluYW5jZSBmaWxlcwotK01BSU5UQUlORVJDTEVBTkZJ TEVTID0gTWFrZWZpbGUuaW4gYWNsb2NhbC5tNCBjb25maWd1cmUgXAotKwkJCWNvbmZpZy1oLmlu IHNpYy9zdGFtcC1oLmluIGF1dG9nZW4uc2ggYm9vdHN0cmFwCi0rCi0rI0VYVFJBX0RJU1RfRk9S X1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fY29uZmlndXJlIC5fTWFrZWZpbGUgY29udHJpYgotK0VY VFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IGNvbnRyaWIKLSsKLStFWFRSQV9ESVNU ID0gTWFrZWZpbGUuY29tbW9uICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKSBA UEFDS0FHRUAubTQKLSsKLSsjIEJ1aWxkIGluIHRoZXNlIGRpcmVjdG9yaWVzOgotK1NVQkRJUlMg PSBidWlsZCBAUEFDS0FHRUAgJChNQU5fRE9DX0RJUikgZG9jICQoVEVTVF9ESVIpCi0rCi0rCi0r IyBDb25maWd1cmF0aW9uIGhlbHBlcnMKLStiaW5fU0NSSVBUUyA9IEBQQUNLQUdFQC1jb25maWcK LSsKLStwa2djb25maWdkaXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCi0rcGtnY29uZmlnX0RBVEEg PSBAUEFDS0FHRUAucGMKLSsKLSttNGRhdGFkaXIgPSAkKGRhdGFkaXIpL2FjbG9jYWwKLSttNGRh dGFfREFUQSA9IEBQQUNLQUdFQC5tNAotKwotKyMgVGFyZ2V0cwotK3VuaW5zdGFsbC1sb2NhbDoK LSsJcm0gLXJmICQoREVTVERJUikkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotKwotK2Rpc3QtaHRt bDoKLSsJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sCi0rCi0rCi0rc25hcHNob3Q6IHNuYXBzaG90 LXNyYyBzbmFwc2hvdC1odG1sCi0rCi0rCi0rc25hcHNob3Qtc3JjOgotKwkkKE1BS0UpIGRpc3Qg ZGlzdGRpcj1AUEFDS0FHRV9UQVJOQU1FQC1gZGF0ZSArIiVZJW0lZCJgCi0rCi0rc25hcHNob3Qt aHRtbDoKLSsJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sIGh0bWxfdGFybmFtZT1AUEFDS0FHRV9U QVJOQU1FQC1odG1sLWRvYy1gZGF0ZSArIiVZJW0lZCJgCi0rCi0rdXBsb2FkOiB1cGxvYWQtc3Jj IHVwbG9hZC1odG1sCi0rCi0rdXBsb2FkLXNyYzogZGlzdAotKwlAVVBMT0FEX0NPTU1BTkRAIEBQ QUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIuZ3ogXAotKwlAUEFDS0FHRV9UQVJOQU1FQC1A VkVSU0lPTkAudGFyLmJ6MgotKwotK3VwbG9hZC1odG1sOiBkaXN0LWh0bWwKLSsJQFVQTE9BRF9D T01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1AVkVSU0lPTkAudGFyLmd6IFwKLSsJ QFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5iejIKLSsKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5jb21tb24gc29jaS0zLjAuMF90cmVwMzAwL01h a2VmaWxlLmNvbW1vbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmNvbW1vbgkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9N YWtlZmlsZS5jb21tb24JMjAwOS0wNC0xOCAxNzoyMDozMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0w LDAgKzEsMiBAQAotK0BTRVRfTUFLRUAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIp IC1JJCh0b3Bfc3JjZGlyKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmlu IHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01h a2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0z LjAuMF90cmVwMzAwL01ha2VmaWxlLmluCTIwMTEtMDctMDMgMTg6NDQ6MjguMDAwMDAwMDAwICsw MjAwCi1AQCAtMCwwICsxLDkyNCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9t YWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsj IENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwg MjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4g aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMg dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdp dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHBy ZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0 aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VM QVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3Br Z2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1 ZGVkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2ds aWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQk e1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRB ID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3Rh bGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFM TF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNm b3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9J TlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQ T1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxl dCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gUkVBRE1FICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAk KHNyY2RpcikvTWFrZWZpbGUuYW0gXAotKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIp L3NvY2ktY29uZmlnLmluIFwKLSsJJChzcmNkaXIpL3NvY2kucGMuaW4gJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24gXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSBBVVRIT1JTIENPUFlJ TkcgQ2hhbmdlTG9nIElOU1RBTEwgTkVXUyBcCi0rCWNvbmZpZy9jb25maWcuZ3Vlc3MgY29uZmln L2NvbmZpZy5zdWIgY29uZmlnL2RlcGNvbXAgXAotKwljb25maWcvaW5zdGFsbC1zaCBjb25maWcv bHRtYWluLnNoIGNvbmZpZy9taXNzaW5nCi0rc3ViZGlyID0gLgotK0FDTE9DQUxfTTQgPSAkKHRv cF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv Y3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUu YWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklH VVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rYW1fX0NPTkZJR19ESVNUQ0xF QU5fRklMRVMgPSBjb25maWcuc3RhdHVzIGNvbmZpZy5jYWNoZSBjb25maWcubG9nIFwKLSsgY29u ZmlndXJlLmxpbmVubyBjb25maWcuc3RhdHVzLmxpbmVubwotK21raW5zdGFsbGRpcnMgPSAkKGlu c3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZp Zy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0gc29jaS1jb25maWcgc29jaS5wYwotK0NPTkZJR19D TEVBTl9WUEFUSF9GSUxFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBl Y2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2Ug JCRwIGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3Jj ZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJp cF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbF9t YXggPSA0MAotK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1gZWNo byAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25vYmFz ZV9zdHJpcCA9IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNl ZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFz ZV9zdHJpcF9zZXR1cCk7IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7 IGRvbmUgfCBcCi0rICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiov IC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZpbGVz WyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAgICBp ZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAkJDIs IGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBFTkQg eyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jhc2Vf bGlzdCA9IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xu LyAvZycgfCBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1fX2lu c3RhbGxkaXJzID0gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChtNGRhdGFkaXIp IiBcCi0rCSIkKERFU1RESVIpJChwa2djb25maWdkaXIpIgotK1NDUklQVFMgPSAkKGJpbl9TQ1JJ UFRTKQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rUkVDVVJTSVZFX1RBUkdFVFMgPSBh bGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1 cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwt ZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJl Y3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZl IGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNr LXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJl Y3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rREFUQSA9ICQobTRkYXRhX0RBVEEpICQocGtn Y29uZmlnX0RBVEEpCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1 cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5l ci1jbGVhbi1yZWN1cnNpdmUKLStBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RB UkdFVFM6LXJlY3Vyc2l2ZT0pIFwKLSsJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJz aXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKLSsJZGlzdGRpciBkaXN0IGRpc3QtYWxsIGRp c3RjaGVjawotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0g JChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAk KFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rZGlzdGRpciA9ICQoUEFDS0FHRSktJChWRVJTSU9O KQotK3RvcF9kaXN0ZGlyID0gJChkaXN0ZGlyKQotK2FtX19yZW1vdmVfZGlzdGRpciA9IFwKLSsg IHsgdGVzdCAhIC1kICIkKGRpc3RkaXIpIiBcCi0rICAgIHx8IHsgZmluZCAiJChkaXN0ZGlyKSIg LXR5cGUgZCAhIC1wZXJtIC0yMDAgLWV4ZWMgY2htb2QgdSt3IHt9ICc7JyBcCi0rICAgICAgICAg JiYgcm0gLWZyICIkKGRpc3RkaXIpIjsgfTsgfQotK2FtX19yZWxhdGl2aXplID0gXAotKyAgZGly MD1gcHdkYDsgXAotKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCi0rICBz ZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAotKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQk LFwxLCc7IFwKLSsgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAotKyAgd2hpbGUgdGVz dCAtbiAiJCRkaXIxIjsgZG8gXAotKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAi JCRzZWRfZmlyc3QiYDsgXAotKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAot KyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCi0rICAgICAgICBkaXIyPWBl Y2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKLSsgICAgICAg IGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAotKyAgICAg IGVsc2UgXAotKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9m aXJzdCJgOyBcCi0rICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4g XAotKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7 IFwKLSsgICAgICAgIGVsc2UgXAotKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCi0rICAg ICAgICBmaTsgXAotKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKLSsgICAgICBm aTsgXAotKyAgICBmaTsgXAotKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNl ZF9yZXN0ImA7IFwKLSsgIGRvbmU7IFwKLSsgIHJlbGRpcj0iJCRkaXIyIgotK0RJU1RfQVJDSElW RVMgPSAkKGRpc3RkaXIpLnRhci5neiAkKGRpc3RkaXIpLnRhci5iejIKLStHWklQX0VOViA9IC0t YmVzdAotK2Rpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJp bnQKLStkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKLStB Q0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NP TkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0g QEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQVNJT19MSUIgPSBAQk9PU1RfQVNJT19M SUJACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElC ID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1Rf RklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNf TElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NU X01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJA Ci0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElC QAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9M SUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NU X1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNf TElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJF QURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19M SUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBC T09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFM SVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxB R1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQ VU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5J VF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJ T04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAK LStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lH UEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAK LStETExUT09MID0gQERMTFRPT0xACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9 IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hP X1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdS RVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxM X0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dS QU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9Q Uk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0g QExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09M ID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMg PSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01BTklGRVNUX1RPT0wgPSBA TUFOSUZFU1RfVE9PTEAKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1Z U1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9ESVJTID0g QE1ZU1FMX0RJUlNACi0rTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZFUlNJT04g PSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRV TVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNM RV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNM RV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9O ID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9U T09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tB R0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9T VFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFS TkFNRUAKLStQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKLStQQUNLQUdFX1ZFUlNJT04gPSBA UEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BF UkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdT ID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJ UlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JF U1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0r U0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStT T0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9I RUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0r U1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVS U0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3Ny Y2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRp ckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9BUiA9IEBhY19j dF9BUkAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAot K2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5j bHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9 IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50 YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9 IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1 aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVp bGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGly QAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sg PSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29r QAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3Qg PSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9j cHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAot K2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2Rp ciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBs YXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAK LStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRp ckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRl ZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJl Zml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAK LStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9v a0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGly QAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2Fs aWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRk aXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBG TEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK0FDTE9DQUxfQU1GTEFH UyA9IC1JIGNvbmZpZwotK0FVVE9NQUtFX09QVElPTlMgPSBkaXN0LWJ6aXAyCi0rCi0rIyAgVEVT VF9ESVIgPSB0ZXN0Ci0rTUFOX0RPQ19ESVIgPSBtYW4KLSsKLSsjIE1haW50YWluYW5jZSBmaWxl cwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4gYWNsb2NhbC5tNCBjb25maWd1 cmUgXAotKwkJCWNvbmZpZy1oLmluIHNpYy9zdGFtcC1oLmluIGF1dG9nZW4uc2ggYm9vdHN0cmFw Ci0rCi0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fY29uZmlndXJl IC5fTWFrZWZpbGUgY29udHJpYgotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9 IGNvbnRyaWIKLStFWFRSQV9ESVNUID0gTWFrZWZpbGUuY29tbW9uICQoRVhUUkFfRElTVF9GT1Jf U09DSV9DT01QQVRJQklMSVRZKSBAUEFDS0FHRUAubTQKLSsKLSsjIEJ1aWxkIGluIHRoZXNlIGRp cmVjdG9yaWVzOgotK1NVQkRJUlMgPSBidWlsZCBAUEFDS0FHRUAgJChNQU5fRE9DX0RJUikgZG9j ICQoVEVTVF9ESVIpCi0rCi0rIyBDb25maWd1cmF0aW9uIGhlbHBlcnMKLStiaW5fU0NSSVBUUyA9 IEBQQUNLQUdFQC1jb25maWcKLStwa2djb25maWdkaXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCi0r cGtnY29uZmlnX0RBVEEgPSBAUEFDS0FHRUAucGMKLSttNGRhdGFkaXIgPSAkKGRhdGFkaXIpL2Fj bG9jYWwKLSttNGRhdGFfREFUQSA9IEBQQUNLQUdFQC5tNAotK2FsbDogYWxsLXJlY3Vyc2l2ZQot KwotKy5TVUZGSVhFUzoKLSthbS0tcmVmcmVzaDoKLSsJQDoKLSskKHNyY2RpcikvTWFrZWZpbGUu aW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24g JChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAn JChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgIGVj aG8gJyBjZCAkKHNyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUnOyBcCi0rCSAgICAgICQoYW1f X2NkKSAkKHNyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgXAotKwkJJiYgZXhpdCAwOyBcCi0r CSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQo dG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2Nk KSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBNYWtlZmlsZQotKy5Q UkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcu c3RhdHVzKikgXAotKwkgICAgZWNobyAnICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyc7IFwKLSsJ ICAgICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1czs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQCAkKGFtX19k ZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkg Li9jb25maWcuc3RhdHVzICRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsK LSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUg JChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJJChTSEVMTCkgLi9jb25maWcuc3RhdHVz IC0tcmVjaGVjawotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJl X2RlcHMpCi0rCSQoYW1fX2NkKSAkKHNyY2RpcikgJiYgJChBVVRPQ09ORikKLSskKEFDTE9DQUxf TTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwkkKGFtX19jZCkgJChzcmNkaXIpICYmICQo QUNMT0NBTCkgJChBQ0xPQ0FMX0FNRkxBR1MpCi0rJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKLStz b2NpLWNvbmZpZzogJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMgJChzcmNkaXIpL3NvY2kt Y29uZmlnLmluCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXMgJEAKLStzb2NpLnBjOiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2Rpcikv c29jaS5wYy5pbgotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3Rh dHVzICRACi0raW5zdGFsbC1iaW5TQ1JJUFRTOiAkKGJpbl9TQ1JJUFRTKQotKwlAJChOT1JNQUxf SU5TVEFMTCkKLSsJdGVzdCAteiAiJChiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIp JChiaW5kaXIpIgotKwlAbGlzdD0nJChiaW5fU0NSSVBUUyknOyB0ZXN0IC1uICIkKGJpbmRpciki IHx8IGxpc3Q9OyBcCi0rCWZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgIiQk cCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZiAi JCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlY2hvICIkJHAiOyBlbHNlIDo7IGZpOyBcCi0r CWRvbmUgfCBcCi0rCXNlZCAtZSAncDtzLC4qLywsO24nIFwKLSsJICAgIC1lICdoO3N8Lip8Lnwn IFwKLSsJICAgIC1lICdwO3g7cywuKi8sLDskKHRyYW5zZm9ybSknIHwgc2VkICdOO047TjtzLFxu LCAsZycgfCBcCi0rCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9 IDE7IH0gXAotKwkgIHsgZD0kJDM7IGlmIChkaXJzW2RdICE9IDEpIHsgcHJpbnQgImQiLCBkOyBk aXJzW2RdID0gMSB9IFwKLSsJICAgIGlmICgkJDIgPT0gJCQ0KSB7IGZpbGVzW2RdID0gZmlsZXNb ZF0gIiAiICQkMTsgXAotKwkgICAgICBpZiAoKytuW2RdID09ICQoYW1fX2luc3RhbGxfbWF4KSkg eyBcCi0rCQlwcmludCAiZiIsIGQsIGZpbGVzW2RdOyBuW2RdID0gMDsgZmlsZXNbZF0gPSAiIiB9 IH0gXAotKwkgICAgZWxzZSB7IHByaW50ICJmIiwgZCAiLyIgJCQ0LCAkJDEgfSB9IFwKLSsJICBF TkQgeyBmb3IgKGQgaW4gZmlsZXMpIHByaW50ICJmIiwgZCwgZmlsZXNbZF0gfScgfCBcCi0rCXdo aWxlIHJlYWQgdHlwZSBkaXIgZmlsZXM7IGRvIFwKLSsJICAgICBpZiB0ZXN0ICIkJGRpciIgPSAu OyB0aGVuIGRpcj07IGVsc2UgZGlyPS8kJGRpcjsgZmk7IFwKLSsJICAgICB0ZXN0IC16ICIkJGZp bGVzIiB8fCB7IFwKLSsJICAgICAgIGVjaG8gIiAkKElOU1RBTExfU0NSSVBUKSAkJGZpbGVzICck KERFU1RESVIpJChiaW5kaXIpJCRkaXInIjsgXAotKwkgICAgICAgJChJTlNUQUxMX1NDUklQVCkg JCRmaWxlcyAiJChERVNURElSKSQoYmluZGlyKSQkZGlyIiB8fCBleGl0ICQkPzsgXAotKwkgICAg IH0gXAotKwk7IGRvbmUKLSsKLSt1bmluc3RhbGwtYmluU0NSSVBUUzoKLSsJQCQoTk9STUFMX1VO SU5TVEFMTCkKLSsJQGxpc3Q9JyQoYmluX1NDUklQVFMpJzsgdGVzdCAtbiAiJChiaW5kaXIpIiB8 fCBleGl0IDA7IFwKLSsJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9u ZSB8IFwKLSsJICAgICAgIHNlZCAtZSAncywuKi8sLDskKHRyYW5zZm9ybSknYDsgXAotKwl0ZXN0 IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAotKwllY2hvICIgKCBjZCAnJChERVNURElSKSQoYmlu ZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCi0rCWNkICIkKERFU1RESVIpJChiaW5kaXIp IiAmJiBybSAtZiAkJGZpbGVzCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICou bG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rZGlzdGNs ZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiBsaWJ0b29sIGNvbmZpZy5sdAotK2luc3RhbGwtbTRkYXRh REFUQTogJChtNGRhdGFfREFUQSkKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQo bTRkYXRhZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobTRkYXRhZGlyKSIKLSsJQGxp c3Q9JyQobTRkYXRhX0RBVEEpJzsgdGVzdCAtbiAiJChtNGRhdGFkaXIpIiB8fCBsaXN0PTsgXAot Kwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBl bHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgIGVjaG8gIiQkZCQkcCI7IFwKLSsJZG9uZSB8 ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCi0rCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKLSsJICBlY2hv ICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikkKG00ZGF0YWRpciknIjsgXAot KwkgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIpJChtNGRhdGFkaXIpIiB8fCBl eGl0ICQkPzsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLW00ZGF0YURBVEE6Ci0rCUAkKE5PUk1B TF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKG00ZGF0YV9EQVRBKSc7IHRlc3QgLW4gIiQobTRkYXRh ZGlyKSIgfHwgbGlzdD07IFwKLSsJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7 IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKLSsJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhp dCAwOyBcCi0rCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChtNGRhdGFkaXIpJyAmJiBybSAtZiIg JCRmaWxlcyAiKSI7IFwKLSsJY2QgIiQoREVTVERJUikkKG00ZGF0YWRpcikiICYmIHJtIC1mICQk ZmlsZXMKLStpbnN0YWxsLXBrZ2NvbmZpZ0RBVEE6ICQocGtnY29uZmlnX0RBVEEpCi0rCUAkKE5P Uk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKHBrZ2NvbmZpZ2RpcikiIHx8ICQoTUtESVJfUCkg IiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiCi0rCUBsaXN0PSckKHBrZ2NvbmZpZ19EQVRBKSc7 IHRlc3QgLW4gIiQocGtnY29uZmlnZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2Rpcikv IjsgZmk7IFwKLSsJICBlY2hvICIkJGQkJHAiOyBcCi0rCWRvbmUgfCAkKGFtX19iYXNlX2xpc3Qp IHwgXAotKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCi0rCSAgZWNobyAiICQoSU5TVEFMTF9EQVRB KSAkJGZpbGVzICckKERFU1RESVIpJChwa2djb25maWdkaXIpJyI7IFwKLSsJICAkKElOU1RBTExf REFUQSkgJCRmaWxlcyAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSIgfHwgZXhpdCAkJD87IFwK LSsJZG9uZQotKwotK3VuaW5zdGFsbC1wa2djb25maWdEQVRBOgotKwlAJChOT1JNQUxfVU5JTlNU QUxMKQotKwlAbGlzdD0nJChwa2djb25maWdfREFUQSknOyB0ZXN0IC1uICIkKHBrZ2NvbmZpZ2Rp cikiIHx8IGxpc3Q9OyBcCi0rCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBk b25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCi0rCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQg MDsgXAotKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnY29uZmlnZGlyKScgJiYgcm0gLWYi ICQkZmlsZXMgIikiOyBcCi0rCWNkICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIiAmJiBybSAt ZiAkJGZpbGVzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0 bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3 aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFs dWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0r IyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNv bmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBi ZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBh c3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVD VVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBp biB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1b IWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBc Ci0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMv LXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAot KwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxv Y2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwg ZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJu byI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwg ZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRN QUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7 IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9u ZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0q IHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAq KSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBl bHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsg XAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNp dmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAk JHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJ ICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2Qp ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0r CSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFn cy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZl OgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0 ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJD RVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykg JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0 YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMp ICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0 IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0t dmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0 YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRl X29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9 JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFH UyB8fCBcCi0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJk aXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlp ZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkg IHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0 ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRB R1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAg ZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChF VEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFn czogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAg JChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9 JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAot Kwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENU QUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlx dWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2Rg IFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChH VEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJ RCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVT KQotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsJdGVzdCAtZCAiJChkaXN0ZGlyKSIgfHwgbWtk aXIgIiQoZGlzdGRpcikiCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9w X3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJ U1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hv ICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAot KwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBc Ci0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQk ZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9b Xi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmls ZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1k ICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAt ZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUg J3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7 IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJt IC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0 ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwK LSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4 aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJt IC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAt ZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBc Ci0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRk LyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZp OyBcCi0rCWRvbmUKLSsJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJ ICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkg IiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0r CWRvbmUKLSsJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIGRp cjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCi0rCSAgICAkKGFtX19y ZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGRpcjE9 JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6 ZSk7IFwKLSsJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAgZWNobyAiIChj ZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdf dG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAotKwkgICAgZWNobyAi ICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tp cF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAotKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBc Ci0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRp cj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGly IiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9 OiBcCi0rCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAg ICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJLXRlc3QgLW4gIiQoYW1fX3Nr aXBfbW9kZV9maXgpIiBcCi0rCXx8IGZpbmQgIiQoZGlzdGRpcikiIC10eXBlIGQgISAtcGVybSAt NzU1IFwKLSsJCS1leGVjIGNobW9kIHUrcnd4LGdvK3J4IHt9IFw7IC1vIFwKLSsJICAhIC10eXBl IGQgISAtcGVybSAtNDQ0IC1saW5rcyAxIC1leGVjIGNobW9kIGErciB7fSBcOyAtbyBcCi0rCSAg ISAtdHlwZSBkICEgLXBlcm0gLTQwMCAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8gXAotKwkgICEg LXR5cGUgZCAhIC1wZXJtIC00NDQgLWV4ZWMgJChpbnN0YWxsX3NoKSAtYyAtbSBhK3Ige30ge30g XDsgXAotKwl8fCBjaG1vZCAtUiBhK3IgIiQoZGlzdGRpcikiCi0rZGlzdC1nemlwOiBkaXN0ZGly Ci0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6 aXAgLWMgPiQoZGlzdGRpcikudGFyLmd6Ci0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotK2Rpc3Qt YnppcDI6IGRpc3RkaXIKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGJ6aXAy IC05IC1jID4kKGRpc3RkaXIpLnRhci5iejIKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCi0r ZGlzdC1sem1hOiBkaXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBs em1hIC05IC1jID4kKGRpc3RkaXIpLnRhci5sem1hCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQot KwotK2Rpc3QteHo6IGRpc3RkaXIKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8 IHh6IC1jID4kKGRpc3RkaXIpLnRhci54egotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsKLStk aXN0LXRhclo6IGRpc3RkaXIKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGNv bXByZXNzIC1jID4kKGRpc3RkaXIpLnRhci5aCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotKwot K2Rpc3Qtc2hhcjogZGlzdGRpcgotKwlzaGFyICQoZGlzdGRpcikgfCBHWklQPSQoR1pJUF9FTlYp IGd6aXAgLWMgPiQoZGlzdGRpcikuc2hhci5negotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsK LStkaXN0LXppcDogZGlzdGRpcgotKwktcm0gLWYgJChkaXN0ZGlyKS56aXAKLSsJemlwIC1ycSAk KGRpc3RkaXIpLnppcCAkKGRpc3RkaXIpCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotKwotK2Rp c3QgZGlzdC1hbGw6IGRpc3RkaXIKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8 IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS50YXIuZ3oKLSsJdGFyZGlyPSQo ZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGJ6aXAyIC05IC1jID4kKGRpc3RkaXIpLnRhci5iejIK LSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCi0rIyBUaGlzIHRhcmdldCB1bnRhcnMgdGhlIGRp c3QgZmlsZSBhbmQgdHJpZXMgYSBWUEFUSCBjb25maWd1cmF0aW9uLiAgVGhlbgotKyMgaXQgZ3Vh cmFudGVlcyB0aGF0IHRoZSBkaXN0cmlidXRpb24gaXMgc2VsZi1jb250YWluZWQgYnkgbWFraW5n IGFub3RoZXIKLSsjIHRhcmZpbGUuCi0rZGlzdGNoZWNrOiBkaXN0Ci0rCWNhc2UgJyQoRElTVF9B UkNISVZFUyknIGluIFwKLSsJKi50YXIuZ3oqKSBcCi0rCSAgR1pJUD0kKEdaSVBfRU5WKSBnemlw IC1kYyAkKGRpc3RkaXIpLnRhci5neiB8ICQoYW1fX3VudGFyKSA7O1wKLSsJKi50YXIuYnoyKikg XAotKwkgIGJ6aXAyIC1kYyAkKGRpc3RkaXIpLnRhci5iejIgfCAkKGFtX191bnRhcikgOztcCi0r CSoudGFyLmx6bWEqKSBcCi0rCSAgbHptYSAtZGMgJChkaXN0ZGlyKS50YXIubHptYSB8ICQoYW1f X3VudGFyKSA7O1wKLSsJKi50YXIueHoqKSBcCi0rCSAgeHogLWRjICQoZGlzdGRpcikudGFyLnh6 IHwgJChhbV9fdW50YXIpIDs7XAotKwkqLnRhci5aKikgXAotKwkgIHVuY29tcHJlc3MgLWMgJChk aXN0ZGlyKS50YXIuWiB8ICQoYW1fX3VudGFyKSA7O1wKLSsJKi5zaGFyLmd6KikgXAotKwkgIEda SVA9JChHWklQX0VOVikgZ3ppcCAtZGMgJChkaXN0ZGlyKS5zaGFyLmd6IHwgdW5zaGFyIDs7XAot KwkqLnppcCopIFwKLSsJICB1bnppcCAkKGRpc3RkaXIpLnppcCA7O1wKLSsJZXNhYwotKwljaG1v ZCAtUiBhLXcgJChkaXN0ZGlyKTsgY2htb2QgYSt3ICQoZGlzdGRpcikKLSsJbWtkaXIgJChkaXN0 ZGlyKS9fYnVpbGQKLSsJbWtkaXIgJChkaXN0ZGlyKS9faW5zdAotKwljaG1vZCBhLXcgJChkaXN0 ZGlyKQotKwl0ZXN0IC1kICQoZGlzdGRpcikvX2J1aWxkIHx8IGV4aXQgMDsgXAotKwlkY19pbnN0 YWxsX2Jhc2U9YCQoYW1fX2NkKSAkKGRpc3RkaXIpL19pbnN0ICYmIHB3ZCB8IHNlZCAtZSAncyxe W146XFwvXTpbXFwvXSwvLCdgIFwKLSsJICAmJiBkY19kZXN0ZGlyPSIkJHtUTVBESVItL3RtcH0v YW0tZGMtJCQkJC8iIFwKLSsJICAmJiBhbV9fY3dkPWBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkg JChkaXN0ZGlyKS9fYnVpbGQgXAotKwkgICYmIC4uL2NvbmZpZ3VyZSAtLXNyY2Rpcj0uLiAtLXBy ZWZpeD0iJCRkY19pbnN0YWxsX2Jhc2UiIFwKLSsJICAgICQoRElTVENIRUNLX0NPTkZJR1VSRV9G TEFHUykgXAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBkdmkgXAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGNo ZWNrIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsIFwKLSsJICAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsY2hlY2sgXAotKwkgICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIHVuaW5zdGFsbCBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg ZGlzdHVuaW5zdGFsbGNoZWNrX2Rpcj0iJCRkY19pbnN0YWxsX2Jhc2UiIFwKLSsJICAgICAgICBk aXN0dW5pbnN0YWxsY2hlY2sgXAotKwkgICYmIGNobW9kIC1SIGEtdyAiJCRkY19pbnN0YWxsX2Jh c2UiIFwKLSsJICAmJiAoeyBcCi0rCSAgICAgICAoY2QgLi4vLi4gJiYgdW1hc2sgMDc3ICYmIG1r ZGlyICIkJGRjX2Rlc3RkaXIiKSBcCi0rCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIGluc3RhbGwgXAotKwkgICAgICAgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiB1bmluc3RhbGwgXAotKwkgICAg ICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiBcCi0r CSAgICAgICAgICAgIGRpc3R1bmluc3RhbGxjaGVja19kaXI9IiQkZGNfZGVzdGRpciIgZGlzdHVu aW5zdGFsbGNoZWNrOyBcCi0rCSAgICAgIH0gfHwgeyBybSAtcmYgIiQkZGNfZGVzdGRpciI7IGV4 aXQgMTsgfSkgXAotKwkgICYmIHJtIC1yZiAiJCRkY19kZXN0ZGlyIiBcCi0rCSAgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgZGlzdCBcCi0rCSAgJiYgcm0gLXJmICQoRElTVF9BUkNISVZFUykg XAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpc3RjbGVhbmNoZWNrIFwKLSsJICAm JiBjZCAiJCRhbV9fY3dkIiBcCi0rCSAgfHwgZXhpdCAxCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGly KQotKwlAKGVjaG8gIiQoZGlzdGRpcikgYXJjaGl2ZXMgcmVhZHkgZm9yIGRpc3RyaWJ1dGlvbjog IjsgXAotKwkgIGxpc3Q9JyQoRElTVF9BUkNISVZFUyknOyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVj aG8gJCRpOyBkb25lKSB8IFwKLSsJICBzZWQgLWUgMWggLWUgMXMvLi89L2cgLWUgMXAgLWUgMXgg LWUgJyQkcCcgLWUgJyQkeCcKLStkaXN0dW5pbnN0YWxsY2hlY2s6Ci0rCUAkKGFtX19jZCkgJyQo ZGlzdHVuaW5zdGFsbGNoZWNrX2RpciknIFwKLSsJJiYgdGVzdCBgJChkaXN0dW5pbnN0YWxsY2hl Y2tfbGlzdGZpbGVzKSB8IHdjIC1sYCAtbGUgMSBcCi0rCSAgIHx8IHsgZWNobyAiRVJST1I6IGZp bGVzIGxlZnQgYWZ0ZXIgdW5pbnN0YWxsOiIgOyBcCi0rCSAgICAgICAgaWYgdGVzdCAtbiAiJChE RVNURElSKSI7IHRoZW4gXAotKwkgICAgICAgICAgZWNobyAiICAoY2hlY2sgREVTVERJUiBzdXBw b3J0KSI7IFwKLSsJICAgICAgICBmaSA7IFwKLSsJICAgICAgICAkKGRpc3R1bmluc3RhbGxjaGVj a19saXN0ZmlsZXMpIDsgXAotKwkgICAgICAgIGV4aXQgMTsgfSA+JjIKLStkaXN0Y2xlYW5jaGVj azogZGlzdGNsZWFuCi0rCUBpZiB0ZXN0ICckKHNyY2RpciknID0gLiA7IHRoZW4gXAotKwkgIGVj aG8gIkVSUk9SOiBkaXN0Y2xlYW5jaGVjayBjYW4gb25seSBydW4gZnJvbSBhIFZQQVRIIGJ1aWxk IiA7IFwKLSsJICBleGl0IDEgOyBcCi0rCWZpCi0rCUB0ZXN0IGAkKGRpc3RjbGVhbmNoZWNrX2xp c3RmaWxlcykgfCB3YyAtbGAgLWVxIDAgXAotKwkgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxl ZnQgaW4gYnVpbGQgZGlyZWN0b3J5IGFmdGVyIGRpc3RjbGVhbjoiIDsgXAotKwkgICAgICAgJChk aXN0Y2xlYW5jaGVja19saXN0ZmlsZXMpIDsgXAotKwkgICAgICAgZXhpdCAxOyB9ID4mMgotK2No ZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmls ZSAkKFNDUklQVFMpICQoREFUQSkKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZl Ci0raW5zdGFsbGRpcnMtYW06Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGJpbmRpcikiICIk KERFU1RESVIpJChtNGRhdGFkaXIpIiAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSI7IGRvIFwK LSsJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStp bnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJl Y3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFs bDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtF KSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2lu c3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BS T0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBc Ci0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAg aW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStk aXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwg cm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0 ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NM RUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8g IlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNo byAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVi dWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChN QUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4t YW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3Rj bGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgJChhbV9fQ09ORklHX0RJU1RDTEVB Tl9GSUxFUykKLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0 Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0r ZHZpOiBkdmktcmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZl Ci0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0r Ci0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW00ZGF0YURBVEEgaW5zdGFsbC1wa2djb25maWdE QVRBCi0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwt ZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1iaW5TQ1JJUFRTCi0rCi0raW5z dGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1odG1sLWFtOgot KwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5m by1hbToKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVj dXJzaXZlCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLStt YWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgJChh bV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUykKLSsJLXJtIC1yZiAkKHRvcF9zcmNkaXIpL2F1dG9t NHRlLmNhY2hlCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3Rj bGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5 Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMg bW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToK LSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmlu c3RhbGwtYmluU0NSSVBUUyB1bmluc3RhbGwtbG9jYWwgXAotKwl1bmluc3RhbGwtbTRkYXRhREFU QSB1bmluc3RhbGwtcGtnY29uZmlnREFUQQotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9U QVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAotKwlpbnN0YWxs LWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZF X0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxs IGFsbC1hbSBhbS0tcmVmcmVzaCBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwK LSsJY2xlYW4tbGlidG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdCBkaXN0LWFsbCBkaXN0 LWJ6aXAyIFwKLSsJZGlzdC1nemlwIGRpc3QtbHptYSBkaXN0LXNoYXIgZGlzdC10YXJaIGRpc3Qt eHogZGlzdC16aXAgXAotKwlkaXN0Y2hlY2sgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRp c3RjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuLXRhZ3MgZGlzdGNsZWFuY2hlY2sgZGlzdGRp ciBkaXN0dW5pbnN0YWxsY2hlY2sgZHZpIFwKLSsJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGlu Zm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1iaW5TQ1JJUFRTIGluc3RhbGwt ZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAotKwlpbnN0YWxsLWR2aS1hbSBpbnN0 YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCi0rCWluc3RhbGwtaHRtbC1h bSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIFwKLSsJaW5zdGFsbC1tNGRhdGFEQVRBIGlu c3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKLSsJaW5zdGFsbC1wa2djb25m aWdEQVRBIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKLSsJaW5zdGFs bGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBcCi0rCW1h aW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKLSsJ bW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMt YW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1 bmluc3RhbGwtYmluU0NSSVBUUyB1bmluc3RhbGwtbG9jYWwgdW5pbnN0YWxsLW00ZGF0YURBVEEg XAotKwl1bmluc3RhbGwtcGtnY29uZmlnREFUQQotKwotK0BTRVRfTUFLRUAKLSsKLSsjIFRhcmdl dHMKLSt1bmluc3RhbGwtbG9jYWw6Ci0rCXJtIC1yZiAkKERFU1RESVIpJChpbmNsdWRlZGlyKS9A UEFDS0FHRUAKLSsKLStkaXN0LWh0bWw6Ci0rCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRtbAotKwot K3NuYXBzaG90OiBzbmFwc2hvdC1zcmMgc25hcHNob3QtaHRtbAotKwotK3NuYXBzaG90LXNyYzoK LSsJJChNQUtFKSBkaXN0IGRpc3RkaXI9QFBBQ0tBR0VfVEFSTkFNRUAtYGRhdGUgKyIlWSVtJWQi YAotKwotK3NuYXBzaG90LWh0bWw6Ci0rCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRtbCBodG1sX3Rh cm5hbWU9QFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtYGRhdGUgKyIlWSVtJWQiYAotKwotK3Vw bG9hZDogdXBsb2FkLXNyYyB1cGxvYWQtaHRtbAotKwotK3VwbG9hZC1zcmM6IGRpc3QKLSsJQFVQ TE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmd6IFwKLSsJQFBB Q0tBR0VfVEFSTkFNRUAtQFZFUlNJT05ALnRhci5iejIKLSsKLSt1cGxvYWQtaHRtbDogZGlzdC1o dG1sCi0rCUBVUExPQURfQ09NTUFOREAgQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJ T05ALnRhci5neiBcCi0rCUBQQUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIu YnoyCi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBl eHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5 c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFr ZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9tYW4vTWFrZWZpbGUuYW0JMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01h a2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDQgQEAKLSsjIE1hbiBwYWdlcwotK21hbl9NQU5TID0gc29jaS1jb25maWcuMQotKwotK0VYVFJB X0RJU1QgPSAkKG1hbl9NQU5TKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtl ZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAu MF80LXBhY2svbWFuL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL21hbi9NYWtlZmlsZS5pbgkyMDExLTA3LTAzIDE4 OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw0OTcgQEAKLSsjIE1ha2VmaWxlLmlu IGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25m aWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcs IDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2 LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0r IyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRp c3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBh cyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0r IyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0g QHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRl ZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBB Q0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2Nk ID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2lu c3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9H UkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3No KSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChw cm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxM ID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklO U1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAK LStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStzdWJkaXIgPSBtYW4KLStESVNUX0NPTU1PTiA9ICQo c3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4KLStBQ0xPQ0FMX000ID0g JCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlz cWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmln dXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENP TkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMg PSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2Np L2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklM RVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9 IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3Zw YXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIg fCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBl c2FjOwotK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsK LSthbV9faW5zdGFsbF9tYXggPSA0MAotK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0rICBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYv ZydgCi0rYW1fX25vYmFzZV9zdHJpcCA9IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAi JCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgotK2FtX19ub2Jhc2VfbGlz dCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8g ZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCi0rICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyIn IC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAotKyAgJChBV0sp ICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAi ICQkMTsgXAotKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCi0rICAg ICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9 IH0gXAotKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJd IH0nCi0rYW1fX2Jhc2VfbGlzdCA9IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFO OyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9c bi8gL2cnCi0rbWFuMWRpciA9ICQobWFuZGlyKS9tYW4xCi0rYW1fX2luc3RhbGxkaXJzID0gIiQo REVTVERJUikkKG1hbjFkaXIpIgotK05ST0ZGID0gbnJvZmYKLStNQU5TID0gJChtYW5fTUFOUykK LStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykg JChFWFRSQV9ESVNUKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStB UiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFE RVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9BU0lPX0xJ QiA9IEBCT09TVF9BU0lPX0xJQkAKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JP T1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lT VEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0g QEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NU X01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKLStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09T VF9NUElfUFlUSE9OX0xJQkAKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElC QAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpB VElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIg PSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1f TElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStC T09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElC ID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBA Q0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9 IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklU X0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJT QAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStD WFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9 IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStE RVBESVIgPSBAREVQRElSQAotK0RMTFRPT0wgPSBARExMVE9PTEAKLStEU1lNVVRJTCA9IEBEU1lN VVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04g PSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhU ID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9 IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJ TlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFN ID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAK LStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0g QExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9 IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBM Tl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0r TUFOSUZFU1RfVE9PTCA9IEBNQU5JRkVTVF9UT09MQAotK01LRElSX1AgPSBATUtESVJfUEAKLStN WVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElC QAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNA Ci0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9 IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JB Q0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09D SV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStP UkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09M QAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9C VUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0Vf TkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5B TUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAotK1BB Q0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFU SF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0r UE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJT ID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9M REZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFO TElCID0gQFJBTkxJQkAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NI RUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklF REAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExP QURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19i dWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9 IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAot K2FjX2N0X0FSID0gQGFjX2N0X0FSQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NY WCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19p bmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19k b3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1f X3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxk QAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVA Ci0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAK LStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3Rk aXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2Nk aXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZp cHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sg PSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLSto b3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3Ig PSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5j bHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3No QAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2Rp ciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRp ciA9IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rp cl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGly QAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFt X3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAK LStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAot K3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9h bGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJl Zml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bf c3JjZGlyQAotKwotKyMgTWFuIHBhZ2VzCi0rbWFuX01BTlMgPSBzb2NpLWNvbmZpZy4xCi0rRVhU UkFfRElTVCA9ICQobWFuX01BTlMpCi0rYWxsOiBhbGwtYW0KLSsKLSsuU1VGRklYRVM6Ci0rJChz cmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICAkKGFtX19jb25maWd1 cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1 cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAg ICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwK LSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2Qg JCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBtYW4vTWFrZWZpbGUnOyBcCi0rCSQo YW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBtYW4vTWFr ZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmls ZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJ ICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikv JEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsK LSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsk KEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2Fs X200X2RlcHMpOgotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0r Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK2luc3RhbGwtbWFuMTogJCht YW5fTUFOUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQobWFuMWRpcikiIHx8 ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG1hbjFkaXIpIgotKwlAbGlzdD0nJzsgdGVzdCAtbiAi JChtYW4xZGlyKSIgfHwgZXhpdCAwOyBcCi0rCXsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIk JGkiOyBkb25lOyBcCi0rCWwyPSckKG1hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8g IiQkaSI7IGRvbmUgfCBcCi0rCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKLSsJfSB8IHdo aWxlIHJlYWQgcDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQo c3JjZGlyKS8iOyBmaTsgXAotKwkgIGVjaG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IFwKLSsJZG9u ZSB8IFwKLSsJc2VkIC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteMV1bMC05YS16XSok JCwxLDt4JyBcCi0rCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7Rztz LFxuLC4sJyB8IFwKLSsJc2VkICdOO047cyxcbiwgLGcnIHwgeyBcCi0rCWxpc3Q9OyB3aGlsZSBy ZWFkIGZpbGUgYmFzZSBpbnN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRiYXNlIiA9ICIkJGluc3Qi OyB0aGVuIGxpc3Q9IiQkbGlzdCAkJGZpbGUiOyBlbHNlIFwKLSsJICAgIGVjaG8gIiAkKElOU1RB TExfREFUQSkgJyQkZmlsZScgJyQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCciOyBcCi0rCSAg ICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCIg fHwgZXhpdCAkJD87IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWZvciBpIGluICQkbGlzdDsg ZG8gZWNobyAiJCRpIjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCi0rCXdoaWxlIHJlYWQg ZmlsZXM7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKLSsJICAgIGVjaG8gIiAk KElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuMWRpciknIjsgXAotKwkgICAg JChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKG1hbjFkaXIpIiB8fCBleGl0ICQk PzsgfTsgXAotKwlkb25lOyB9Ci0rCi0rdW5pbnN0YWxsLW1hbjE6Ci0rCUAkKE5PUk1BTF9VTklO U1RBTEwpCi0rCUBsaXN0PScnOyB0ZXN0IC1uICIkKG1hbjFkaXIpIiB8fCBleGl0IDA7IFwKLSsJ ZmlsZXM9YHsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCi0rCWwyPSck KG1hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCi0rCSAg c2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKLSsJfSB8IHNlZCAtZSAncywuKi8sLDtoO3MsLipc LiwsO3MsXlteMV1bMC05YS16XSokJCwxLDt4JyBcCi0rCSAgICAgIC1lICdzLFwuWzAtOWEtel0q JCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJ2A7IFwKLSsJdGVzdCAteiAiJCRmaWxlcyIgfHwg eyBcCi0rCSAgZWNobyAiICggY2QgJyQoREVTVERJUikkKG1hbjFkaXIpJyAmJiBybSAtZiIgJCRm aWxlcyAiKSI7IFwKLSsJICBjZCAiJChERVNURElSKSQobWFuMWRpcikiICYmIHJtIC1mICQkZmls ZXM7IH0KLSt0YWdzOiBUQUdTCi0rVEFHUzoKLSsKLStjdGFnczogQ1RBR1MKLStDVEFHUzoKLSsK LSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQGxpc3Q9JyQoTUFOUyknOyBpZiB0ZXN0IC1u ICIkJGxpc3QiOyB0aGVuIFwKLSsJICBsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICAg IGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkg ICAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlbHNlIDo7IGZpOyBk b25lYDsgXAotKwkgIGlmIHRlc3QgLW4gIiQkbGlzdCIgJiYgXAotKwkgICAgZ3JlcCAnYWIgaGVs cDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgPi9kZXYvbnVs bDsgdGhlbiBcCi0rCSAgICBlY2hvICJlcnJvcjogZm91bmQgbWFuIHBhZ2VzIGNvbnRhaW5pbmcg dGhlIFxgbWlzc2luZyBoZWxwMm1hbicgcmVwbGFjZW1lbnQgdGV4dDoiID4mMjsgXAotKwkgICAg Z3JlcCAtbCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAk JGxpc3QgfCBzZWQgJ3MvXi8gICAgICAgICAvJyA+JjI7IFwKLSsJICAgIGVjaG8gIiAgICAgICB0 byBmaXggdGhlbSwgaW5zdGFsbCBoZWxwMm1hbiwgcmVtb3ZlIGFuZCByZWdlbmVyYXRlIHRoZSBt YW4gcGFnZXM7IiA+JjI7IFwKLSsJICAgIGVjaG8gIiAgICAgICB0eXBpY2FsbHkgXGBtYWtlIG1h aW50YWluZXItY2xlYW4nIHdpbGwgcmVtb3ZlIHRoZW0iID4mMjsgXAotKwkgICAgZXhpdCAxOyBc Ci0rCSAgZWxzZSA6OyBmaTsgXAotKwllbHNlIDo7IGZpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAi JChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGly c3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUg aW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3Jj ZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3Bf YnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQo TUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xe fCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJ ZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1m ICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZp OyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAi LyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIk KGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmls ZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAg IGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0g JChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRp c3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmls ZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAg IGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhp dCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAot KwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8 IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6 IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZSAkKE1BTlMpCi0raW5zdGFsbGRpcnM6Ci0rCWZv ciBkaXIgaW4gIiQoREVTVERJUikkKG1hbjFkaXIpIjsgZG8gXAotKwkgIHRlc3QgLXogIiQkZGly IiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKLSsJZG9uZQotK2luc3RhbGw6IGluc3RhbGwtYW0K LStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1k YXRhLWFtCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0K LSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEt YW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0r CSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQ X1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJP R1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8 fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCkn ImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsK LStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIg fHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8 fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklH X0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVj aG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlA ZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8g cmVidWlsZC4iCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMg Y2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFt Ci0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdl bmVyaWMKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0r Ci0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxs LWRhdGEtYW06IGluc3RhbGwtbWFuCi0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0r Ci0raW5zdGFsbC1kdmktYW06Ci0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRt bDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5m bzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFu OiBpbnN0YWxsLW1hbjEKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KLSsKLStpbnN0 YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0raW5zdGFsbC1w cy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRh aW5lci1jbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBk aXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1v c3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBw cy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbgotKwotK3Vu aW5zdGFsbC1tYW46IHVuaW5zdGFsbC1tYW4xCi0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFs bC1zdHJpcAotKwotKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVh bi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMg ZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGlu Zm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1k YXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3Rh bGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZv IGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLW1hbjEgXAotKwlpbnN0YWxsLXBk ZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAotKwlpbnN0YWxsLXN0 cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAotKwltYWludGFp bmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCi0rCW1vc3Rs eWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwK LSsJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xCi0r Ci0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBv cnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1Yg YXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEgc29jaS0zLjAuMF90cmVwMzAwL21hbi9zb2Np LWNvbmZpZy4xCi0tLS0gc29jaS0zLjAuMF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFu L3NvY2ktY29uZmlnLjEJMjAxMS0wMi0wOSAwMTowMTo0NC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0w LDAgKzEsMzkgQEAKLSsuVEggU09DSSAxICIyOCBNYXJjaCAyMDA5IgotKy5TSCBOQU1FCi0rc29j aS1jb25maWcgLSBzY3JpcHQgdG8gZ2V0IHZlcnNpb24gbnVtYmVyIGFuZCBjb21waWxlciBmbGFn cyBvZiB0aGUgaW5zdGFsbGVkIFNPQ0kgbGlicmFyeQotKy5TSCBTWU5PUFNJUwotKy5CIHNvY2kt Y29uZmlnCi0rW1wtXC1wcmVmaXhdICBbXC1cLXZlcnNpb25dIFtcLVwtbGlic10gW1wtXC1jZmxh Z3NdCi0rLlNIIERFU0NSSVBUSU9OCi0rLlBQCi0rXGZJc29jaS1jb25maWdcZlAgaXMgYSB0b29s IHRoYXQgaXMgdXNlZCB0byBjb25maWd1cmUgdG8gZGV0ZXJtaW5lCi0rdGhlIGNvbXBpbGVyIGFu ZCBsaW5rZXIgZmxhZ3MgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBjb21waWxlCi0rYW5kIGxpbmsg cHJvZ3JhbXMgdGhhdCB1c2UgXGZJU09DSVxmUC4gSXQgaXMgYWxzbyB1c2VkIGludGVybmFsbHkK LSt0byB0aGUgLm00IG1hY3JvcyBmb3IgR05VIGF1dG9jb25mIHRoYXQgYXJlIGluY2x1ZGVkIHdp dGggXGZJU09DSVxmUC4KLSsuCi0rLlNIIE9QVElPTlMKLSsuUFAKLStcZklzb2NpLWNvbmZpZ1xm UCBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKLSsuVFAgOAotKy5CICBcLVwtdmVyc2lv bgotK1ByaW50IHRoZSBjdXJyZW50bHkgaW5zdGFsbGVkIHZlcnNpb24gb2YgXGZJU09DSVxmUCBv biB0aGUgc3RhbmRhcmQgb3V0cHV0LgotKy5UUCA4Ci0rLkIgIFwtXC1saWJzCi0rUHJpbnQgdGhl IGxpbmtlciBmbGFncyB0aGF0IGFyZSBuZWNlc3NhcnkgdG8gbGluayBhIFxmSVNPQ0lcZlAgcHJv Z3JhbSwgd2l0aCBjYmxhcwotKy5UUCA4Ci0rLkIgIFwtXC1jZmxhZ3MKLStQcmludCB0aGUgY29t cGlsZXIgZmxhZ3MgdGhhdCBhcmUgbmVjZXNzYXJ5IHRvIGNvbXBpbGUgYSBcZklTT0NJXGZQIHBy b2dyYW0uCi0rLlRQIDgKLSsuQiAgXC1cLXByZWZpeAotK1Nob3cgdGhlIFNPQ0kgaW5zdGFsbGF0 aW9uIHByZWZpeC4KLSsuU0ggU0VFIEFMU08KLSsuQlIgZ3RrLWNvbmZpZyAoMSksCi0rLkJSIGdu b21lLWNvbmZpZyAoMSkKLSsuU0ggQ09QWVJJR0hUCi0rQ29weXJpZ2h0IFwoY28gIDIwMDkgRGVu aXMgQXJuYXVkCi0rCi0rUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3Ry aWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCi0rZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBv c2UgYW5kIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLAotK3Byb3ZpZGVkIHRoYXQgdGhl IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQKLSti b3RoIHRoYXQgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBl YXIgaW4KLStzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24uCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv TWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5hbQkyMDA5LTA0LTI4IDIzOjE1 OjE0LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw5IEBACi0raW5jbHVkZSAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgotKwotKyMjIFNvdXJjZSBkaXJlY3RvcnkKLSsKLStNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IEBNWVNRTF9ESVJTQCBA UE9TVEdSRVNRTF9ESVJTQCBAT1JBQ0xFX0RJUlNACi0rCi0rRVhUUkFfRElTVCA9Ci1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbgky MDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw2MjAgQEAKLSsj IE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5h bS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUs IDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s Ci0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3 OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtF QAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAK LStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAk KGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tB R0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1Ip IiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5z dGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0g JChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJh bnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgot K1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0g OgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxl dCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3Jj ZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMKLStBQ0xPQ0FMX000ID0g JCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlz cWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmln dXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENP TkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMg PSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2Np L2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklM RVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rUkVDVVJTSVZFX1RBUkdFVFMgPSBh bGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1 cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwt ZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJl Y3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZl IGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNr LXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJl Y3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBt b3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1yZWN1 cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStBTV9SRUNVUlNJVkVfVEFSR0VUUyA9 ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKLSsJJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKLSsJZGlzdGRpcgot K0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJT KQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9T KSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0aXZpemUgPSBcCi0rICBkaXIwPWBwd2RgOyBcCi0r ICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKLSsgIHNlZF9yZXN0PSdzLF5b Xi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAotKyAg c2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCi0rICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEi OyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJg OyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCi0rICAgICAgaWYgdGVz dCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKLSsgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIg fCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAotKyAgICAgICAgZGlyMD1gZWNobyAi JCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCi0rICAgICAgZWxzZSBcCi0rICAg ICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsg ICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCi0rICAgICAgICAg IGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgICAgICAg ZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKLSsgICAgICAgIGZpOyBcCi0r ICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAotKyAgICAgIGZpOyBcCi0rICAgIGZp OyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAot KyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRpcjIiCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FN VEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9I RUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdL QAotK0JPT1NUX0FTSU9fTElCID0gQEJPT1NUX0FTSU9fTElCQAotK0JPT1NUX0NGTEFHUyA9IEBC T09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElC QAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NU X0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJP T1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01QSV9Q WVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BUSU9O U19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElCID0g QEJPT1NUX1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAK LStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStC T09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1fTElC ID0gQEJPT1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURf TElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9X U0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQEND QAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBA Q1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRf Q0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElC UyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAK LStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBN T0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0r REVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRExMVE9PTCA9IEBETExUT09MQAot K0RTWU1VVElMID0gQERTWU1VVElMQAotK0RVTVBCSU4gPSBARFVNUEJJTkAKLStFQ0hPX0MgPSBA RUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9 IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0ZHUkVQID0gQEZHUkVQQAotK0dFTkVSSUNf TElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JF UEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAK LStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0g QElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQ X1BST0dSQU1ACi0rTEQgPSBATERACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBA TElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xJUE8gPSBA TElQT0AKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5G TyA9IEBNQUtFSU5GT0AKLStNQU5JRkVTVF9UT09MID0gQE1BTklGRVNUX1RPT0xACi0rTUtESVJf UCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ19M SUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJ QlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0g PSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhU ID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NG TEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xF X09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05A Ci0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFD S0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdF X05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5H QAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9VUkwgPSBA UEFDS0FHRV9VUkxACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRI X1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklH ID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AK LStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFH UyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVT UUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0Ug PSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBT T0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9N WVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBA U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9B RF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNf YnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSth YnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBA YWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQVIgPSBAYWNfY3RfQVJACi0rYWNfY3RfQ0MgPSBAYWNf Y3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0 X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90 ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIg PSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJA Ci0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRf Y3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3Ig PSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0 YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tA Ci0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGly ID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVj X3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9 IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9v c0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0r aW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxs X3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxp YmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRp ckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbWFuZGlyID0gQG1hbmRpckAK LStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAot K3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9y bV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2Jp bmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBA c2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2Nv bmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4 ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0 b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGly KSAtSSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0r U1VCRElSUyA9IEBNWVNRTF9ESVJTQCBAUE9TVEdSRVNRTF9ESVJTQCBAT1JBQ0xFX0RJUlNACi0r RVhUUkFfRElTVCA9IAotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSskKHNy Y2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBk byBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAq KSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBl eGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2Fj OyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkg LS1nbnUgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2Rp cikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvTWFrZWZpbGUKLSsu UFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRv cF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmln LnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9f ZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAot Kwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxf TTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMp OgotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGli dG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJk aXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRo ZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0r IyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVk aXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZp Zy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNl IHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0r IyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNv bW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4 aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGlu IFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXll cyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdl dD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGlu ICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAg ICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0r CSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0r CSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2Fs X3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVz dCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwot KyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsg XAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkg ICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwK LSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGlu IFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NV QkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0r CXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAot KwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8g JEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwK LSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0i OyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZp OyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAk JGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVz dCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFt X19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9u ZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6 ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtp ZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQo SEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJ TEVTKSAkKExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1Mp IC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAg aW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJ ZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsg XAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVz dCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9v cHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBc Ci0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKLSsJc2hpZnQ7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsg dGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlf Zml4OyBcCi0rCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAotKwkgICAgJChFVEFHUykgJChF VEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAiJCRA IiAkJHVuaXF1ZTsgXAotKwkgIGVsc2UgXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAk KEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAkJHVuaXF1ZTsgXAotKwkg IGZpOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhF QURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxF UykgJChMSVNQKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9 IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCi0r CSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJH UykgXAotKwkgICAgICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRv cF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAot KwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsKLStkaXN0Y2xlYW4tdGFn czoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStk aXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAi JCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9 JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRv IGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0 IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0 ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNo byAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98 O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZv ciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRl c3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0 ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNl ZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRm aWxlIjsgdGhlbiBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEg LXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAg IGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRo ZW4gXAotKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIg fHwgZXhpdCAxOyBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEg LXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAg IGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICBl bHNlIFwKLSsJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBjcCAt cCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0r CSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2Ug XAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJ Ul9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7 IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkg ICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKLSsJICAgICQo YW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAg ZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCi0rCSAgICAkKGFtX19yZWxh dGl2aXplKTsgXAotKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBlY2hv ICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIk JG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCi0rCSAgICBl Y2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFt X19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCi0rCSAgICAoJChhbV9fY2QpICQkc3ViZGly ICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9k aXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rp c3RkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9j aGVjaz06IFwKLSsJCWFtX19za2lwX21vZGVfZml4PTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwK LSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwt YW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3RhbGxk aXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStpbnN0YWxsOiBp bnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQot K2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0 YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01B S0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVj azogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBc Ci0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RB TExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBl Y2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAot K21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4t Z2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChD T05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIk KENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRI X0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29t bWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVs ZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0r CS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVS Q0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFu LWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlz dGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFu LWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJz aXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raHRtbC1hbToK LSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRh LWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxs LWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxs LWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzog aW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mby1hbToKLSsKLStpbnN0YWxs LW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFs bC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBt YWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVy LWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9z dGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0 bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNp dmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3Vu aW5zdGFsbC1hbToKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNV UlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1hbSBpbnN0YWxsLXN0 cmlwIHRhZ3MtcmVjdXJzaXZlCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT KSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sg Y2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3Rh Z3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1s aWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1h bSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3Rh bGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlp bnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8g XAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYt YW0gXAotKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hl Y2sgXAotKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRh aW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0 bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBz LWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0r QFNFVF9NQUtFQAotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0 byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQg KGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0gc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0KLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsMjYgQEAKLSsjIyBiYWNrZW5kcy9teXNxbCBzdWItZGlyZWN0b3J5Ci0r aW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIp L3NvdXJjZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0r U1VCRElSUyA9IC4gdGVzdAotKwotK2lmIEhBVkVfTVlTUUwKLStsaWJfTFRMSUJSQVJJRVM9IGxp YnNvY2lfbXlzcWwubGEKLSsKLStsaWJzb2NpX215c3FsX2xhX1NPVVJDRVM9ICQoYmNrX215c3Fs X2hfc291cmNlcykgJChiY2tfbXlzcWxfY2Nfc291cmNlcykgCi0rbGlic29jaV9teXNxbF9sYV9D WFhGTEFHUyA9ICQoTVlTUUxfQ0ZMQUdTKQotK2xpYnNvY2lfbXlzcWxfbGFfTElCQUREID0KLSts aWJzb2NpX215c3FsX2xhX0xERkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRF X1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5m byAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLStlbmRpZgotK2lm IFNPQ0lfSEVBREVSU19CVVJJRUQKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsCi0rZWxzZQotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVk aXIpCi0rZW5kaWYKLStwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMKLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljCTIw MTEtMDctMDMgMTg6NTU6MDYuNDE0ODc3MDcxICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKLUBAIC0xLDk3ICswLDAgQEAKLS0jIFRoZSBmb2xsb3dpbmcgdmFyaWFi bGVzIGFyZSBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIHRoZWlyIGNvcnJlY3QKLS0jIHZh bHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQg aXQgYWNjb3JkaW5nbHkuCi0tCi0tTVlTUUxMSUJESVIgPSAtTC91c3IvbGliL215c3FsCi0tTVlT UUxMSUJTID0gLWxteXNxbGNsaWVudCAtbHoKLS1NWVNRTElOQ0xVREVESVIgPSAtSS91c3IvaW5j bHVkZS9teXNxbAotLQotLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW5kZW50 IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuCi0tCi0tQ09NUElMRVIgPSBnKysKLS1DWFhGTEFH UyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZwotLUNYWEZMQUdTU08gPSAke0NYWEZM QUdTfSAtZlBJQwotLUlOQ0xVREVESVJTID0gLUkuLi8uLi9jb3JlICR7TVlTUUxJTkNMVURFRElS fQotLQotLQotLU9CSkVDVFMgPSBibG9iLm8gZmFjdG9yeS5vIHJvdy1pZC5vIHNlc3Npb24ubyBz dGFuZGFyZC1pbnRvLXR5cGUubyBcCi0tCXN0YW5kYXJkLXVzZS10eXBlLm8gc3RhdGVtZW50Lm8g dmVjdG9yLWludG8tdHlwZS5vIHZlY3Rvci11c2UtdHlwZS5vIFwKLS0JY29tbW9uLm8KLS0KLS0K LS1PQkpFQ1RTU08gPSBibG9iLXMubyBmYWN0b3J5LXMubyByb3ctaWQtcy5vIHNlc3Npb24tcy5v IFwKLS0Jc3RhbmRhcmQtaW50by10eXBlLXMubyBzdGFuZGFyZC11c2UtdHlwZS1zLm8gc3RhdGVt ZW50LXMubyBcCi0tCXZlY3Rvci1pbnRvLXR5cGUtcy5vIHZlY3Rvci11c2UtdHlwZS1zLm8gY29t bW9uLXMubwotLQotLQotLWxpYnNvY2lfbXlzcWwuYSA6ICR7T0JKRUNUU30KLS0JYXIgcnYgJEAg JD8KLS0Jcm0gKi5vCi0tCi0tCi0tYmxvYi5vIDogYmxvYi5jcHAKLS0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1jb21tb24ubyA6IGNvbW1vbi5jcHAK LS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1mYWN0 b3J5Lm8gOiBmYWN0b3J5LmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQotLQotLXJvdy1pZC5vIDogcm93LWlkLmNwcAotLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXNlc3Npb24ubyA6IHNlc3Npb24uY3Bw Ci0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3Rh bmRhcmQtaW50by10eXBlLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtdXNlLXR5cGUu byA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQotLQotLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAotLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci1pbnRv LXR5cGUubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLXVzZS10eXBlLm8gOiB2ZWN0b3ItdXNl LXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 Ci0tCi0tc2hhcmVkIDogJHtPQkpFQ1RTU099Ci0tCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGli c29jaV9teXNxbC5zbyAke09CSkVDVFNTT30KLS0Jcm0gKi5vCi0tCi0tYmxvYi1zLm8gOiBibG9i LmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJ UlN9Ci0tCi0tY29tbW9uLXMubyA6IGNvbW1vbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAg JD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLWZhY3Rvcnktcy5vIDogZmFjdG9y eS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVE SVJTfQotLQotLXJvdy1pZC1zLm8gOiByb3ctaWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zZXNzaW9uLXMubyA6IHNlc3Np b24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURF RElSU30KLS0KLS1zdGFuZGFyZC1pbnRvLXR5cGUtcy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNw cAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9 Ci0tCi0tc3RhbmRhcmQtdXNlLXR5cGUtcy5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7 Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1z dGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50LmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAk e0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2 ZWN0b3ItaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdT U099ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2Ut dHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xV REVESVJTfQotLQotLQotLWNsZWFuIDoKLS0Jcm0gLWYgbGlic29jaV9teXNxbC5hIGxpYnNvY2lf bXlzcWwuc28KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3Fs L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2Vm aWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmls ZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmluCTIwMTEtMDctMDMgMTg6NDQ6 MjcuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDkwMSBAQAotKyMgTWFrZWZpbGUuaW4gZ2Vu ZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3Vy ZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRo aXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0rCi0rVlBBVEgg PSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRp ciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9A UEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFS QVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQK LStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJ UFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkK LSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwg PSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RB TEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90 cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0g JChhbV9fcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCi0r CSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBcCi0rCSQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gc29jaS9iYWNrZW5kcy9teXNxbAotK0FD TE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBz ID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2ku bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRv b2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJz aW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200 X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtp bnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVp bGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVB Tl9WUEFUSF9GSUxFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hv ICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRw IGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGly c3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9k aXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbF9tYXgg PSA0MAotK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1gZWNobyAi JChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25vYmFzZV9z dHJpcCA9IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAt ZSAic3wkJHNyY2RpcnN0cmlwL3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9z dHJpcF9zZXR1cCk7IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRv bmUgfCBcCi0rICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4v OyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIu Il0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAgICBpZiAo KytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAkJDIsIGZp bGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBFTkQgeyBm b3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jhc2VfbGlz dCA9IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAv ZycgfCBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1fX2luc3Rh bGxkaXJzID0gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGly KSIKLStMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfbXlzcWxfbGFf REVQRU5ERU5DSUVTID0KLSthbV9fbGlic29jaV9teXNxbF9sYV9TT1VSQ0VTX0RJU1QgPSAgXAot KwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmggXAotKwkkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oIFwKLSsJJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL2NvbW1vbi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvZmFjdG9yeS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv cm93LWlkLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9u LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRv LXR5cGUuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LXVzZS10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0 ZW1lbnQuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1p bnRvLXR5cGUuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rv ci11c2UtdHlwZS5jcHAKLSthbV9fb2JqZWN0c18xID0KLSthbV9fb2JqZWN0c18yID0gbGlic29j aV9teXNxbF9sYS1ibG9iLmxvIGxpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvIFwKLSsJbGlic29j aV9teXNxbF9sYS1mYWN0b3J5LmxvIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIFwKLSsJbGli c29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIFwKLSsJbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1p bnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIFwK LSsJbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gXAotKwlsaWJzb2NpX215c3FsX2xhLXZl Y3Rvci1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5s bwotK0BIQVZFX01ZU1FMX1RSVUVAYW1fbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTID0gJChhbV9f b2JqZWN0c18xKSBcCi0rQEhBVkVfTVlTUUxfVFJVRUAJJChhbV9fb2JqZWN0c18yKQotK2xpYnNv Y2lfbXlzcWxfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKQotK2xp YnNvY2lfbXlzcWxfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCi0rCSQobGli c29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAotKwkkKGxpYnNvY2lfbXlzcWxf bGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAotK0BIQVZFX01ZU1FMX1RSVUVAYW1fbGlic29j aV9teXNxbF9sYV9ycGF0aCA9IC1ycGF0aCAkKGxpYmRpcikKLStERUZBVUxUX0lOQ0xVREVTID0g LUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCi0rZGVwY29tcCA9ICQoU0hFTEwp ICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKLSthbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBm aWxlcwotK2FtX19tdiA9IG12IC1mCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwK LSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykK LStDWFhMRCA9ICQoQ1hYKQotK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChB TV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8g JEAKLStDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpIFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdT KQotK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo QU1fQ0ZMQUdTKSAkKENGTEFHUykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChMSUJUT09MKSAt LXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxp bmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExE RkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQobGlic29jaV9teXNxbF9sYV9TT1VSQ0VTKQotK0RJ U1RfU09VUkNFUyA9ICQoYW1fX2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFU19ESVNUKQotK1JFQ1VS U0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2 ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNp dmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0r CWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3Rh bGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBc Ci0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1 cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK2FtX19wa2dpbmNs dWRlX0hFQURFUlNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zb2NpLW15c3FsLmgKLStIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZl CVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStB TV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwK LSsJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdz IENUQUdTIFwKLSsJZGlzdGRpcgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElT VF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElT VF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0aXZpemUgPSBc Ci0rICBkaXIwPWBwd2RgOyBcCi0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7 IFwKLSsgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0ncyxeLiovXChb Xi9dKlwpJCQsXDEsJzsgXAotKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCi0rICB3 aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwg c2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsg dGhlbiBcCi0rICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKLSsgICAgICAg IGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAot KyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBc Ci0rICAgICAgZWxzZSBcCi0rICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUg IiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0 IjsgdGhlbiBcCi0rICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2Vk X3Jlc3QiYDsgXAotKyAgICAgICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7 IFwKLSsgICAgICAgIGZpOyBcCi0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAot KyAgICAgIGZpOyBcCi0rICAgIGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQg LWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRpcjIiCi0rcGtn aW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0r QU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVU T0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBB V0tACi0rQk9PU1RfQVNJT19MSUIgPSBAQk9PU1RfQVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdTID0g QEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9M SUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9P U1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBA Qk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJ X1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIg PSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElC QAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAot K0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9M SUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVB RF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NU X1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBA Q0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9 IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5J VF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9M SUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9O QAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERF UE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AK LStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStETExUT09MID0gQERMTFRPT0xA Ci0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9 IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQ ID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBH UkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRB QAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQg PSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RS SVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9 IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9 IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJ TkZPID0gQE1BS0VJTkZPQAotK01BTklGRVNUX1RPT0wgPSBATUFOSUZFU1RfVE9PTEAKLStNS0RJ Ul9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9D X0xJQiA9IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxf TElCUyA9IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStO TSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpF WFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQ QUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1VSTCA9 IEBQQUNLQUdFX1VSTEAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BB VEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05G SUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdT QAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZM QUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdS RVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rU0VEID0gQFNFREAKLStTRVRfTUFL RSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAot K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9BUiA9IEBhY19jdF9BUkAKLSthY19jdF9DQyA9IEBh Y19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNf Y3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19k b3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3Rh ciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRp ckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWls ZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRv ciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBk YXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9v a0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlk aXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4 ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFz ID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0 X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAK LStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3Rh bGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBA bGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxl ZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGly QAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJA Ci0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNm b3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStz YmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9 IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lz Y29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVm aXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAot K3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRk aXIpIC1JJCh0b3Bfc3JjZGlyKQotK2Jja19teXNxbF9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmggXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotKwotK2Jja19teXNx bF9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9jb21tb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvcm93LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5j cHAKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IC4g dGVzdAotK0BIQVZFX01ZU1FMX1RSVUVAbGliX0xUTElCUkFSSUVTID0gbGlic29jaV9teXNxbC5s YQotK0BIQVZFX01ZU1FMX1RSVUVAbGlic29jaV9teXNxbF9sYV9TT1VSQ0VTID0gJChiY2tfbXlz cWxfaF9zb3VyY2VzKSAkKGJja19teXNxbF9jY19zb3VyY2VzKSAKLStASEFWRV9NWVNRTF9UUlVF QGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MgPSAkKE1ZU1FMX0NGTEFHUykKLStASEFWRV9NWVNR TF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFfTElCQUREID0gCi0rQEhBVkVfTVlTUUxfVFJVRUBsaWJz b2NpX215c3FsX2xhX0xERkxBR1MgPSBcCi0rQEhBVkVfTVlTUUxfVFJVRUAJJChCT09TVF9MSUJT KSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAot K0BIQVZFX01ZU1FMX1RSVUVACS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lP TikKLSsKLStASEFWRV9NWVNRTF9UUlVFQHBrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLStAU09DSV9IRUFERVJTX0JVUklF RF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK0BTT0NJX0hFQURFUlNf QlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5k cy9teXNxbAotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklYRVM6 IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFr ZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMu bWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2Fz ZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAg ICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2Ug YnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7 IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9i YWNrZW5kcy9teXNxbC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYg XAotKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUKLSsu UFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRv cF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmln LnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9f ZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAot Kwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxf TTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMp OgotK2luc3RhbGwtbGliTFRMSUJSQVJJRVM6ICQobGliX0xUTElCUkFSSUVTKQotKwlAJChOT1JN QUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RE SVIpJChsaWJkaXIpIgotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChs aWJkaXIpIiB8fCBsaXN0PTsgXAotKwlsaXN0Mj07IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkg IGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKLSsJICAgIGxpc3QyPSIkJGxpc3QyICQkcCI7IFwKLSsJ ICBlbHNlIDo7IGZpOyBcCi0rCWRvbmU7IFwKLSsJdGVzdCAteiAiJCRsaXN0MiIgfHwgeyBcCi0r CSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICck KERFU1RESVIpJChsaWJkaXIpJyI7IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RS SVBfRkxBRykgJCRsaXN0MiAiJChERVNURElSKSQobGliZGlyKSI7IFwKLSsJfQotKwotK3VuaW5z dGFsbC1saWJMVExJQlJBUklFUzoKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQo bGliX0xUTElCUkFSSUVTKSc7IHRlc3QgLW4gIiQobGliZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9y IHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgJChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQo TElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0 YWxsIHJtIC1mICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBcCi0rCSAgJChMSUJUT09MKSAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYg IiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rY2xlYW4tbGliTFRMSUJS QVJJRVM6Ci0rCS10ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xU TElCUkFSSUVTKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAot KwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwi JCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlv bnMiOyBcCi0rCWRvbmUKLStsaWJzb2NpX215c3FsLmxhOiAkKGxpYnNvY2lfbXlzcWxfbGFfT0JK RUNUUykgJChsaWJzb2NpX215c3FsX2xhX0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9teXNx bF9sYV9MSU5LKSAkKGFtX2xpYnNvY2lfbXlzcWxfbGFfcnBhdGgpICQobGlic29jaV9teXNxbF9s YV9PQkpFQ1RTKSAkKGxpYnNvY2lfbXlzcWxfbGFfTElCQUREKSAkKExJQlMpCi0rCi0rbW9zdGx5 Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFuLWNvbXBp bGU6Ci0rCS1ybSAtZiAqLnRhYi5jCi0rCi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1f X3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAot K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X215c3FsX2xhLWNvbW1vbi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVk ZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWZhY3RvcnkuUGxvQGFt X19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNz aW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsb0BhbV9f cXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNx bF9sYS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBl LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4v JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVA Ci0rCi0rLmNwcC5vOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAk QCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcg bGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRA ICQ8Ci0rCi0rLmNwcC5vYmo6Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkg LU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9X KSAnJDwnYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRw byAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1N RiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo YW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwot K2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9teXNxbF9sYS1ibG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215 c3FsX2xhLWJsb2IuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJs b2IuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJsb2IuUGxvCi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLWJsb2IubG8nIGxpYnRv b2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJz b2NpX215c3FsX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwCi0rCi0rbGlic29jaV9teXNxbF9sYS1jb21tb24ubG86 ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215 c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1jb21tb24u bG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLlRwbyAtYyAt byBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1jb21tb24uVHBvICQoREVQ RElSKS9saWJzb2NpX215c3FsX2xhLWNvbW1vbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Nv bW1vbi5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1jb21tb24ubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215 c3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL2NvbW1vbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9jb21tb24uY3BwCi0rCi0rbGlic29jaV9teXNxbF9sYS1mYWN0b3J5Lmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf bXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWZhY3Rv cnkubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5UcG8g LWMgLW8gbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5U cG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5QbG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL2ZhY3RvcnkuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1v IGxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAKLSsKLStsaWJzb2NpX215c3Fs X2xhLXJvdy1pZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5j cHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215 c3FsX2xhLXJvdy1pZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1y b3ctaWQuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJv dy1pZC5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLlBsbwotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvcm93LWlkLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAKLSsKLStsaWJzb2NpX215c3Fs X2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9u LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf bXlzcWxfbGEtc2Vzc2lvbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9s YS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3Bw Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNx bF9sYS1zZXNzaW9uLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlBsbwot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9s YS1zZXNzaW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotKwot K2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50 by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJk LWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBl LlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNv Y2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9t eXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGFu ZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotKwotK2xp YnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBl LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10 eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gJChERVBE SVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1z dGFuZGFyZC11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11 c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXN0 YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5j cHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215 c3FsX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9s YS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRl bWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJz b2NpX215c3FsX2xhLXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3Rh dGVtZW50LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSds aWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50 LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50 LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YXRlbWVudC5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUu bG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlz cWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9t eXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rv ci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50 by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBs bwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGli c29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9t eXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0 b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lf bXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8gLWMgLW8g bGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBl LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12 ZWN0b3ItdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUu Y3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAot KwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9v bDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQo cGtnaW5jbHVkZV9IRUFERVJTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChw a2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpciki Ci0rCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVk aXIpIiB8fCBsaXN0PTsgXAotKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1m ICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgIGVjaG8gIiQk ZCQkcCI7IFwKLSsJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCi0rCXdoaWxlIHJlYWQgZmls ZXM7IGRvIFwKLSsJICBlY2hvICIgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAnJChERVNURElS KSQocGtnaW5jbHVkZWRpciknIjsgXAotKwkgICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgIiQo REVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiB8fCBleGl0ICQkPzsgXAotKwlkb25lCi0rCi0rdW5p bnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlz dD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwg bGlzdD07IFwKLSsJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBz ZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKLSsJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCi0r CWVjaG8gIiAoIGNkICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKScgJiYgcm0gLWYiICQkZmls ZXMgIikiOyBcCi0rCWNkICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgJiYgcm0gLWYgJCRm aWxlcwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGlu ZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91 dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBv ZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEp IGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcu c3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVn ZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRo ZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lW RV9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAk JE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSop OzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlk b25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1 cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwg JCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0 aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQg MTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdF VFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZM QUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0r CSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwK LSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1h aW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlz dD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBc Ci0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJ cmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9g OyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJn ZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwK LSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBs b2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1 YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8 IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVj dXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK LSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJ bGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAi JCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAk KExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElT UCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rpcikv JCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBu b25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGlu IGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczog VEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChU QUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXNldCB4OyBc Ci0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNp b24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1p bmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRp b249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwg XAotKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RB R1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVS UykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAk KHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQk MF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg Zm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJc2hpZnQ7IFwKLSsJaWYgdGVz dCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0 IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgaWYgdGVzdCAkJCMg LWd0IDA7IHRoZW4gXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxB R1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAotKwkgIGVsc2Ug XAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1Nf QVJHUykgXAotKwkgICAgICAkJHVuaXF1ZTsgXAotKwkgIGZpOyBcCi0rCWZpCi0rY3RhZ3M6IENU QUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFH U19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVz dCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZM QUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdW5pcXVlCi0r Ci0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0r CSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1Nf QVJHUykgIiQkaGVyZSIKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RB R1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJ QHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwm L2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3Mv W10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBk aXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAot KwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRv cHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmls ZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJ CQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJ ICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsg ZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9Ljsg ZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4g XAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwK LSsJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCi0rCSAgICAgIGZp bmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1 K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQk ZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtZnBSICQo c3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgICAgIGZp bmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1 K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChk aXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgIiQo ZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIp LyQkZmlsZSIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlz dD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0 ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRp ciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChE SVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0i JChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAg ICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0 b3BfZGlzdGRpcikiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X3Rv cF9kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRp cj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCi0rCSAgICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlz dGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRp cikiOyBcCi0rCSAgICAoJChhbV9fY2QpICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRp ciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwKLSsJCWFtX19yZW1vdmVf ZGlzdGRpcj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJCWFtX19za2lwX21v ZGVfZml4PTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0r CSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJz aXZlCi0rYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMpCi0raW5zdGFs bGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotKwlmb3IgZGly IGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiOyBk byBcCi0rCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAotKwlkb25l Ci0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhl Yy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1bmlu c3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsK LStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlwOgot KwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJ UF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BS T0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScg fHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVAp JyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0r Ci0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUyki IHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIg fHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJ R19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBl Y2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJ QGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRv IHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1m ICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2Ns ZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wg XAotKwltb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQot Kwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTog Y2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xl YW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBo dG1sLXJlY3Vyc2l2ZQotKwotK2h0bWwtYW06Ci0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUKLSsK LStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVS UwotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWR2 aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKLSsKLStp bnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06 Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1p bmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBz LXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwot K21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYg Li8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlz dGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0 bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGls ZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjog cGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMt YW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxs LXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMp ICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtYW0gaW5z dGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFt IGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJMVExJQlJB UklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWRpc3RjbGVhbiBk aXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29s IGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZv IGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0 YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxs LWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlp bnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxs LXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFs bC1wcyBcCi0rCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFs bGNoZWNrLWFtIFwKLSsJaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVh biBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1j b21waWxlIFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBw ZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3Rh bGwtYW0gXAotKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVI RUFERVJTCi0rCi0rQFNFVF9NQUtFQAotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBv ZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBz eXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQ T1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc291 cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2VzLm1r Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2VzLm1rCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAw MDAwMCArMDIwMAotQEAgLTAsMCArMSwxNCBAQAotK2Jja19teXNxbF9oX3NvdXJjZXMgPSBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotK2Jj a19teXNxbF9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9jb21tb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvcm93LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2Ut dHlwZS5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3QvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwv dGVzdC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUu YW0JMjAxMC0wMS0yMyAxNDo0MzoxOC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMTggQEAK LSsjIyBiYWNrZW5kL215c3FsL3Rlc3Qgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0r TUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK2lmIFJVTl9URVNUUwotKyAg bm9pbnN0X1BST0dSQU1TID0gdGVzdF9teXNxbAotK2VuZGlmCi0rCi0rdGVzdF9teXNxbF9TT1VS Q0VTID0gJChteXNxbF90ZXN0X2NjX3NvdXJjZXMpCi0rdGVzdF9teXNxbF9DWFhGTEFHUyA9ICQo Qk9PU1RfQ0ZMQUdTKQotK3Rlc3RfbXlzcWxfTERBREQgPQotK3Rlc3RfbXlzcWxfTERGTEFHUyA9 ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAotKwkJJCh0 b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvbGlic29jaV9teXNxbC5sYSBcCi0rCQkk KE1ZU1FMX0xJQlMpCi0rCi0rI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKG15c3FsX3Rl c3RfaF9zb3VyY2VzKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTIwMTEtMDctMDMgMTg6NTU6MDYuNDEx ODc3MDg2ICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwv dGVzdC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot QEAgLTEsMjIgKzAsMCBAQAotLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIHNwZWNpZmlj IHRvIHRoaXMgYmFja2VuZCBhbmQgdGhlaXIgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVu ZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4K LS0KLS1NWVNRTExJQkRJUiA9IC1ML3Vzci9saWIvbXlzcWwKLS1NWVNRTExJQlMgPSAtbG15c3Fs Y2xpZW50IC1segotLU1ZU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlL215c3FsCi0tCi0t IyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIHRhcmdldCBl bnZpcm9ubWVudC4KLS0KLS1DT01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFu dGljIC1Xbm8tbG9uZy1sb25nCi0tSU5DTFVERURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZSAk e01ZU1FMSU5DTFVERURJUn0KLS1MSUJESVJTID0gLUwuLiAtTC4uLy4uLy4uL2NvcmUgJHtNWVNR TExJQkRJUn0KLS1MSUJTID0gLWxzb2NpX2NvcmUgLWxzb2NpX215c3FsIC1sZGwgJHtNWVNRTExJ QlN9Ci0tCi0tCi0tdGVzdC1teXNxbCA6IHRlc3QtbXlzcWwuY3BwCi0tCSR7Q09NUElMRVJ9IC1v ICRAICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9ICR7TElCRElSU30gJHtMSUJTfQotLQot LQotLWNsZWFuIDoKLS0Jcm0gLWYgdGVzdC1teXNxbAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSw1NjEgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRv bWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0r IyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAs IDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5 ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmlu IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVz IHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBw cmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8g dGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNV TEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dk YXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRl ZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGli ZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHta U0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9 ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxs X3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExf SEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9y bV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5T VEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9T VF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQg PSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2Rpcikv TWFrZWZpbGUuaW4gXAotKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbgotK0BSVU5fVEVTVFNfVFJVRUBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X215c3Fs JChFWEVFWFQpCi0rc3ViZGlyID0gc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0Ci0rQUNMT0NBTF9N NCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykg JChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxk aXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikv c29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rQ09ORklHX0NMRUFOX1ZQQVRI X0ZJTEVTID0KLStQUk9HUkFNUyA9ICQobm9pbnN0X1BST0dSQU1TKQotK2FtX19vYmplY3RzXzEg PSB0ZXN0X215c3FsLXRlc3QtbXlzcWwuJChPQkpFWFQpCi0rYW1fdGVzdF9teXNxbF9PQkpFQ1RT ID0gJChhbV9fb2JqZWN0c18xKQotK3Rlc3RfbXlzcWxfT0JKRUNUUyA9ICQoYW1fdGVzdF9teXNx bF9PQkpFQ1RTKQotK3Rlc3RfbXlzcWxfREVQRU5ERU5DSUVTID0KLSt0ZXN0X215c3FsX0xJTksg PSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xG TEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSBcCi0rCSQo Q1hYRkxBR1MpICQodGVzdF9teXNxbF9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rREVGQVVM VF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK2RlcGNv bXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZpbGVz X21heWJlID0gZGVwZmlsZXMKLSthbV9fbXYgPSBtdiAtZgotK0NYWENPTVBJTEUgPSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStMVENYWENPTVBJTEUg PSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5r ICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkk KExERkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQodGVzdF9teXNxbF9TT1VSQ0VTKQotK0RJU1Rf U09VUkNFUyA9ICQodGVzdF9teXNxbF9TT1VSQ0VTKQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9 IGN0YWdzCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVY SU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1U QVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBB VVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1Rf QVNJT19MSUIgPSBAQk9PU1RfQVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFH U0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1Rf RklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1T X0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AK LStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIg PSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBC T09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlU SE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NF UklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05B TFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1Rf U1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9P U1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19M SUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFU SU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBN T0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQ RkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0r Q1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVO SVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBD WFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hY RkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERF RlNACi0rREVQRElSID0gQERFUERJUkAKLStETExUT09MID0gQERMTFRPT0xACi0rRFNZTVVUSUwg PSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0r RUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAot K0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZF UlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RB TEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExf UFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9T Q1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAK LStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAot K0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xO X1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJ TkZPQAotK01BTklGRVNUX1RPT0wgPSBATUFOSUZFU1RfVE9PTEAKLStNS0RJUl9QID0gQE1LRElS X1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJQiA9IEBNWVNR TF9DX0xJQkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTElCUyA9IEBNWVNR TF9MSUJTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStO TUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhU QAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9S QUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxB R1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9 IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BB Q0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQ QUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FH RV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VS TEAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9S ID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09O RklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVT UUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RH UkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9O QAotK1JBTkxJQiA9IEBSQU5MSUJACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFL RUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVS U19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURF UlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RH UkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQg PSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9 IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVp bGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3Ny Y2RpckAKLSthY19jdF9BUiA9IEBhY19jdF9BUkAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSth Y19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAK LSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xl YWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFy QAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9 IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVp bGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92 ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2Rh dGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIg PSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGly QAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAot K2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxp YXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3Rf dmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGly ID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5z dGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xp YmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fs c3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3Ag PSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0g QHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBA cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNi aW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0 ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0 YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1 aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIg PSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bf c3JjZGlyKQotK215c3FsX3Rlc3RfaF9zb3VyY2VzID0gCi0rbXlzcWxfdGVzdF9jY19zb3VyY2Vz ID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAK LStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rdGVzdF9teXNxbF9TT1VSQ0VT ID0gJChteXNxbF90ZXN0X2NjX3NvdXJjZXMpCi0rdGVzdF9teXNxbF9DWFhGTEFHUyA9ICQoQk9P U1RfQ0ZMQUdTKQotK3Rlc3RfbXlzcWxfTERBREQgPSAKLSt0ZXN0X215c3FsX0xERkxBR1MgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKLSsJCSQodG9w X2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2xpYnNvY2lfbXlzcWwubGEgXAotKwkJJChN WVNRTF9MSUJTKQotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKy5TVUZGSVhFUzog LmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5t ayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNl ICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAg KCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBi cmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsg XAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIp ICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFr ZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmls ZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJ ICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikv JEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsK LSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsk KEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2Fs X200X2RlcHMpOgotKwotK2NsZWFuLW5vaW5zdFBST0dSQU1TOgotKwlAbGlzdD0nJChub2luc3Rf UFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKLSsJZWNobyAiIHJtIC1m IiAkJGxpc3Q7IFwKLSsJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCi0rCXRlc3QgLW4gIiQo RVhFRVhUKSIgfHwgZXhpdCAwOyBcCi0rCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAi JCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKLSsJZWNobyAiIHJtIC1mIiAk JGxpc3Q7IFwKLSsJcm0gLWYgJCRsaXN0Ci0rdGVzdF9teXNxbCQoRVhFRVhUKTogJCh0ZXN0X215 c3FsX09CSkVDVFMpICQodGVzdF9teXNxbF9ERVBFTkRFTkNJRVMpIAotKwlAcm0gLWYgdGVzdF9t eXNxbCQoRVhFRVhUKQotKwkkKHRlc3RfbXlzcWxfTElOSykgJCh0ZXN0X215c3FsX09CSkVDVFMp ICQodGVzdF9teXNxbF9MREFERCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6Ci0r CS1ybSAtZiAqLiQoT0JKRVhUKQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi50 YWIuYwotKwotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBE SVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFD S1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAk KERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRA JyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8g JEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAt YyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQq LlRwbyAkKERFUERJUikvJCouUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLSt0ZXN0X215c3FsLXRlc3QtbXlz cWwubzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5j cHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyAtTUQgLU1Q IC1NRiAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAtYyAtbyB0ZXN0X215c3Fs LXRlc3QtbXlzcWwubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3QvdGVzdC1teXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoYW1fX212KSAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAkKERF UERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L3Rlc3QtbXlzcWwuY3BwJyBvYmplY3Q9J3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5vJyBsaWJ0b29s PW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X215c3Fs X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC90ZXN0L3Rlc3QtbXlzcWwuY3BwCi0rCi0rdGVzdF9teXNxbC10ZXN0LW15c3FsLm9iajogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqIC1NRCAtTVAgLU1GICQo REVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBvIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1t eXNxbC5vYmogYGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykg JyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15 c3FsLmNwcCc7IGZpYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIp L3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5UcG8gJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNx bC5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCcgb2JqZWN0PSd0 ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt YyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IHRoZW4gJChDWUdQQVRI X1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNw cCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBmaWAKLSsKLSttb3N0bHljbGVhbi1saWJ0 b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMg X2xpYnMKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVT KQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9u ZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0r CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogICQo SEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJ TEVTKSAkKExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJbGlzdD0nJChTT1VS Q0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNoaWZ0 OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxz ZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkg IGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykg JChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgIiQkQCIgJCR1bmlxdWU7 IFwKLSsJICBlbHNlIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZM QUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgJCR1bmlxdWU7IFwKLSsJICBmaTsgXAotKwlm aQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJbGlzdD0nJChTT1VS Q0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3Qg LXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFH UykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHVuaXF1ZQotKwot K0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkg ICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FS R1MpICIkJGhlcmUiCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdT IEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlz dF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJ ICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3Bz cmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVz IGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJ ICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAg IHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRv IFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVs c2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwK LSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0r CSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBmaW5k ICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdSty d3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZp bGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAkKHNy Y2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBmaW5k ICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdSty d3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlz dGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRp c3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8k JGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1h bTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1T KQotK2luc3RhbGxkaXJzOgotK2luc3RhbGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6IGlu c3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxs OiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hl Y2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAg aW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RS SVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJ TlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3Rs eWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJp YzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdf Q0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJ R19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT KQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBp cyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBm aWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0 IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykKLStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStk aXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBN YWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNs ZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZp LWFtOgotKwotK2h0bWw6IGh0bWwtYW0KLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tYW0K LSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5z dGFsbC1kdmktYW0KLSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0r Ci0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0r Ci0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLWluZm8tYW06Ci0r Ci0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5z dGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQotKwotK2luc3RhbGwt cHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50 YWluZXItY2xlYW4tYW0KLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUK LSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06 IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFu LWxpYnRvb2wKLSsKLStwZGY6IHBkZi1hbQotKwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsK LStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFs bC1zdHJpcAotKwotKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1h bSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9H UkFNUyBjdGFncyBkaXN0Y2xlYW4gXAotKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2Vu ZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2 aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKLSsJaW5zdGFsbCBpbnN0YWxsLWFtIGlu c3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAotKwlpbnN0YWxsLWR2aS1h bSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCi0rCWluc3RhbGwt aHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKLSsJaW5z dGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKLSsJaW5z dGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKLSsJ bWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAot Kwltb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGli dG9vbCBcCi0rCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFt Ci0rCi0rQFNFVF9NQUtFQAotKwotKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChteXNx bF90ZXN0X2hfc291cmNlcykKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05V IG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVt IGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291 cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJj ZXMubWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291 cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2 IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyIEBACi0rbXlzcWxfdGVzdF9o X3NvdXJjZXMgPQotK215c3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv TWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAg KzEsMjcgQEAKLSsjIyBiYWNrZW5kcy9vcmFjbGUgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1r Ci0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK1NVQkRJUlMgPSAu IHRlc3QKLSsKLStpZiBIQVZFX09SQUNMRQotK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9vcmFj bGUubGEKLSsKLStsaWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTPSAkKGJja19vcmFjbGVfaF9zb3Vy Y2VzKSAkKGJja19vcmFjbGVfY2Nfc291cmNlcykgCi0rbGlic29jaV9vcmFjbGVfbGFfQ1hYRkxB R1MgPSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQotK2xpYnNvY2lfb3JhY2xlX2xhX0xJQkFERCA9Ci0r bGlic29jaV9vcmFjbGVfbGFfTERGTEFHUyA9IFwKLSsJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RB VEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAotKwkkKE9SQUNMRV9P Q0lfTERGTEFHUykgXAotKwktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04p Ci0rCi0rbm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAotK2VuZGlmCi0raWYgU09DSV9IRUFERVJTX0JVUklF RAotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl Ci0rZWxzZQotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rZW5kaWYKLStwa2dp bmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmJhc2ljCTIwMTEtMDctMDMgMTg6NTU6 MDYuNDA4ODc3MTAzICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv b3JhY2xlL01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci1AQCAtMSw5NSArMCwwIEBACi0tIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmlj IHRvIHRoaXMgYmFja2VuZCBhbmQgaXRzIGNvcnJlY3QKLS0jIHZhbHVlcyBtaWdodCBkZXBlbmQg b24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCi0t Ci0tT1JBQ0xFSU5DTFVERURJUiA9IC1JL3Vzci9saWIvb3JhY2xlL3hlL2FwcC9vcmFjbGUvcHJv ZHVjdC8xMC4yLjAvc2VydmVyL3JkYm1zL3B1YmxpYwotLQotLSMgVGhlIHJlc3Qgb2YgdGhlIE1h a2VmaWxlIGlzIGluZGVwZW50ZW50IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuCi0tCi0tQ09N UElMRVIgPSBnKysKLS1DWFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZwot LUNYWEZMQUdTU08gPSAke0NYWEZMQUdTfSAtZlBJQwotLUlOQ0xVREVESVJTID0gLUkuLi8uLi9j b3JlICR7T1JBQ0xFSU5DTFVERURJUn0KLS0KLS1PQkpFQ1RTID0gYmxvYi5vIGZhY3RvcnkubyBy b3ctaWQubyBzZXNzaW9uLm8gc3RhbmRhcmQtaW50by10eXBlLm8gXAotLQlzdGFuZGFyZC11c2Ut dHlwZS5vIHN0YXRlbWVudC5vIHZlY3Rvci1pbnRvLXR5cGUubyB2ZWN0b3ItdXNlLXR5cGUubyBc Ci0tCWVycm9yLm8KLS0KLS1PQkpFQ1RTU08gPSBibG9iLXMubyBmYWN0b3J5LXMubyByb3ctaWQt cy5vIHNlc3Npb24tcy5vIFwKLS0Jc3RhbmRhcmQtaW50by10eXBlLXMubyBzdGFuZGFyZC11c2Ut dHlwZS1zLm8gc3RhdGVtZW50LXMubyBcCi0tCXZlY3Rvci1pbnRvLXR5cGUtcy5vIHZlY3Rvci11 c2UtdHlwZS1zLm8gZXJyb3Itcy5vCi0tCi0tbGlic29jaV9vcmFjbGUuYSA6ICR7T0JKRUNUU30K LS0JYXIgcnYgJEAgJD8KLS0Jcm0gKi5vCi0tCi0tc29jaS1vcmFjbGUubyA6IHNvY2ktb3JhY2xl LmNwcCAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0J Ci0tYmxvYi5vIDogYmxvYi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KLS0KLS1lcnJvci5vIDogZXJyb3IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAK LS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ct aWQubyA6IHJvdy1pZC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KLS0KLS1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8tdHlwZS5vIDog c3RhbmRhcmQtaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAk e0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlw ZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0K LS1zdGF0ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhG TEFHU30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50 by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQotLQotLXZlY3Rvci11c2UtdHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLQotLXNoYXJlZCA6ICR7 T0JKRUNUU1NPfQotLQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfb3JhY2xlLnNvICR7 T0JKRUNUU1NPfQotLQlybSAqLm8KLS0KLS1ibG9iLXMubyA6IGJsb2IuY3BwCi0tCSR7Q09NUElM RVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1lcnJvci1z Lm8gOiBlcnJvci5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAk e0lOQ0xVREVESVJTfQotLQotLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAKLS0JJHtDT01QSUxF Un0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXJvdy1pZC1z Lm8gOiByb3ctaWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30g JHtJTkNMVURFRElSU30KLS0KLS1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09NUElM RVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFy ZC1pbnRvLXR5cGUtcy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAt YyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtdXNl LXR5cGUtcy5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1lbnQtcy5vIDogc3Rh dGVtZW50LmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5D TFVERURJUlN9Ci0tCi0tdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNw cAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9 Ci0tCi0tdmVjdG9yLXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLQotLWNs ZWFuIDoKLS0Jcm0gLWYgKi5vIGxpYnNvY2lfb3JhY2xlLmEgbGlic29jaV9vcmFjbGUuc28KLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5p biBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4KLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5pbgkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAw MDAwMCArMDIwMAotQEAgLTAsMCArMSw5MDYgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBi eSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRA Ci0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTks IDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4 LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2Vm aWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs Ci0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQ QVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwotKwotK1ZQQVRIID0gQHNyY2Rp ckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxp YmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VA Ci0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAm JiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFs bF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChp bnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNm b3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BS RV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgot K1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9 IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoYW1fX25v YmFzZV9wa2dpbmNsdWRlX0hFQURFUlNfRElTVCkgXAotKwkkKHNyY2RpcikvTWFrZWZpbGUuYW0g JChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL29yYWNsZQotK0FD TE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBz ID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2ku bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRv b2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJz aW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200 X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtp bnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVp bGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVB Tl9WUEFUSF9GSUxFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hv ICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRw IGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGly c3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9k aXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbF9tYXgg PSA0MAotK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1gZWNobyAi JChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25vYmFzZV9z dHJpcCA9IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAt ZSAic3wkJHNyY2RpcnN0cmlwL3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9z dHJpcF9zZXR1cCk7IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRv bmUgfCBcCi0rICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4v OyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIu Il0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAgICBpZiAo KytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAkJDIsIGZp bGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBFTkQgeyBm b3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jhc2VfbGlz dCA9IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAv ZycgfCBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1fX2luc3Rh bGxkaXJzID0gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGly KSIKLStMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfb3JhY2xlX2xh X0RFUEVOREVOQ0lFUyA9Ci0rYW1fX2xpYnNvY2lfb3JhY2xlX2xhX1NPVVJDRVNfRElTVCA9ICBc Ci0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuaCBcCi0rCSQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCBcCi0rCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Jvdy1pZC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3Nlc3Npb24uY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFu ZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3N0YXRlbWVudC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rYW1fX29iamVjdHNfMSA9Ci0rYW1fX29iamVj dHNfMiA9IGxpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8gbGlic29jaV9vcmFjbGVfbGEtZXJyb3Iu bG8gXAotKwlsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGxpYnNvY2lfb3JhY2xlX2xhLXJv dy1pZC5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gXAotKwlsaWJzb2NpX29y YWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX29yYWNsZV9sYS1zdGFu ZGFyZC11c2UtdHlwZS5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBcCi0r CWxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX29yYWNs ZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8KLStASEFWRV9PUkFDTEVfVFJVRUBhbV9saWJzb2NpX29y YWNsZV9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVA CSQoYW1fX29iamVjdHNfMikKLStsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTID0gJChhbV9saWJz b2NpX29yYWNsZV9sYV9PQkpFQ1RTKQotK2xpYnNvY2lfb3JhY2xlX2xhX0xJTksgPSAkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1t b2RlPWxpbmsgJChDWFhMRCkgXAotKwkkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSBcCi0rCSQobGlic29jaV9vcmFjbGVfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAk QAotK0BIQVZFX09SQUNMRV9UUlVFQGFtX2xpYnNvY2lfb3JhY2xlX2xhX3JwYXRoID0gLXJwYXRo ICQobGliZGlyKQotK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVp bGRkaXIpL3NvY2kKLStkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVw Y29tcAotK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCi0rYW1fX212ID0gbXYgLWYKLStD WFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxB R1MpCi0rTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hYTElO SyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgXAotKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAk KEFNX0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK0NPTVBJTEUgPSAkKENDKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAotKwkk KENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rTFRDT01QSUxFID0gJChMSUJUT09M KSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2Rl PWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwK LSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0ND TEQgPSAkKENDKQotK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAk KENGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0g JChsaWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xpYnNv Y2lfb3JhY2xlX2xhX1NPVVJDRVNfRElTVCkKLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1 cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBp bmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVj dXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZl IGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFs bC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJz aXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZl IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSthbV9fbm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNU ID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5o Ci0rSEVBREVSUyA9ICQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKLStSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAg ZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0FNX1JFQ1VS U0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAotKwkkKFJF Q1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1Mg XAotKwlkaXN0ZGlyCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJ UlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJD RVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLSthbV9fcmVsYXRpdml6ZSA9IFwKLSsgIGRp cjA9YHB3ZGA7IFwKLSsgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAotKyAg c2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKLSsgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkk JCxcMSwnOyBcCi0rICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKLSsgIHdoaWxlIHRl c3QgLW4gIiQkZGlyMSI7IGRvIFwKLSsgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUg IiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwK LSsgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAotKyAgICAgICAgZGlyMj1g ZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCi0rICAgICAg ICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKLSsgICAg ICBlbHNlIFwKLSsgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRf Zmlyc3QiYDsgXAotKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVu IFwKLSsgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJg OyBcCi0rICAgICAgICBlbHNlIFwKLSsgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAotKyAg ICAgICAgZmk7IFwKLSsgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCi0rICAgICAg Zmk7IFwKLSsgICAgZmk7IFwKLSsgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRz ZWRfcmVzdCJgOyBcCi0rICBkb25lOyBcCi0rICByZWxkaXI9IiQkZGlyMiIKLStwa2dpbmNsdWRl ZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9 IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVS ID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStC T09TVF9BU0lPX0xJQiA9IEBCT09TVF9BU0lPX0xJQkAKLStCT09TVF9DRkxBR1MgPSBAQk9PU1Rf Q0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStC T09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NU UkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9M SUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKLStCT09TVF9NUElfUFlUSE9O X0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElC ID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09T VF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9P U1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1Rf U0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9IEBC T09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAK LStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklB TElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStD Q0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAK LStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFH U0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBA Q1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hY ID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAK LStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMg PSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RMTFRPT0wgPSBARExMVE9PTEAKLStEU1lN VVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9f Q0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdS RVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJB UllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0r SU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5T VEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNU QUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9H UkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9C SlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9A Ci0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBA TUFLRUlORk9ACi0rTUFOSUZFU1RfVE9PTCA9IEBNQU5JRkVTVF9UT09MQAotK01LRElSX1AgPSBA TUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0g QE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0g QE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5N QAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBP QkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1Mg PSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lf TERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09U T09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VA Ci0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1F ID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQ QUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVVJMID0gQFBBQ0tB R0VfVVJMQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBB UkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQ R19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9T VEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBA UE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZF UlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNF VF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9I RUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxf SEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09N TUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxk ZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3Rv cF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190 b3Bfc3JjZGlyQAotK2FjX2N0X0FSID0gQGFjX2N0X0FSQAotK2FjX2N0X0NDID0gQGFjX2N0X0ND QAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1Q QklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBh bV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFt X190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1 aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9 IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1 aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJA Ci0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2Rv Y2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBk dmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVm aXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9z dF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0r aG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1 ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9 IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJA Ci0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0r bG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtk aXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZk aXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIg PSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJl ZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGly QAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0 b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3Ny Y2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkk KHRvcF9zcmNkaXIpCi0rYmNrX29yYWNsZV9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmggXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0rCi0rYmNrX29yYWNsZV9j Y19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9ibG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L2Vycm9yLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L2ZhY3RvcnkuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvcm93LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2Ut dHlwZS5jcHAKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElS UyA9IC4gdGVzdAotK0BIQVZFX09SQUNMRV9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lf b3JhY2xlLmxhCi0rQEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfU09VUkNFUyA9 ICQoYmNrX29yYWNsZV9oX3NvdXJjZXMpICQoYmNrX29yYWNsZV9jY19zb3VyY2VzKSAKLStASEFW RV9PUkFDTEVfVFJVRUBsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUyA9ICQoT1JBQ0xFX09DSV9D RkxBR1MpCi0rQEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTElCQUREID0gCi0r QEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTERGTEFHUyA9IFwKLStASEFWRV9P UkFDTEVfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQikgXAotK0BIQVZFX09SQUNMRV9UUlVFQAkkKE9SQUNMRV9PQ0lf TERGTEFHUykgXAotK0BIQVZFX09SQUNMRV9UUlVFQAktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19M SUJSQVJZX1ZFUlNJT04pCi0rCi0rQEhBVkVfT1JBQ0xFX1RSVUVAbm9iYXNlX3BrZ2luY2x1ZGVf SEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUu aAotK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1 ZGVkaXIpCi0rQFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChp bmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZQotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwot Ky5TVUZGSVhFUzoKLSsuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFr ZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5j b21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3Ig ZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0r CSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAt ZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7 IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYg JChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUnOyBcCi0rCSQo YW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2Jh Y2tlbmRzL29yYWNsZS9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTog JChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBj YXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICop IFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcu c3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAk KGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2Nv bmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBF TkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmln dXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0r CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0raW5zdGFsbC1saWJMVExJQlJBUklFUzogJChs aWJfTFRMSUJSQVJJRVMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKGxpYmRp cikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCi0rCUBsaXN0PSckKGxpYl9M VExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCi0rCWxpc3QyPTsg Zm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAotKwkgICAg bGlzdDI9IiQkbGlzdDIgJCRwIjsgXAotKwkgIGVsc2UgOjsgZmk7IFwKLSsJZG9uZTsgXAotKwl0 ZXN0IC16ICIkJGxpc3QyIiB8fCB7IFwKLSsJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNU QUxMX1NUUklQX0ZMQUcpICQkbGlzdDIgJyQoREVTVERJUikkKGxpYmRpciknIjsgXAotKwkgICQo TElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFs bCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICIkKERFU1RESVIpJChs aWJkaXIpIjsgXAotKwl9Ci0rCi0rdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgotKwlAJChOT1JN QUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChs aWJkaXIpIiB8fCBsaXN0PTsgXAotKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICAkKGFtX19z dHJpcF9kaXIpIFwKLSsJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikv JCRmJyI7IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCi0r CWRvbmUKLSsKLStjbGVhbi1saWJMVExJQlJBUklFUzoKLSsJLXRlc3QgLXogIiQobGliX0xUTElC UkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCi0rCUBsaXN0PSckKGxpYl9MVExJ QlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBkaXI9ImBlY2hvICQkcCB8IHNl ZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCi0rCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRp cj0uOyBcCi0rCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAotKwkg IHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKLSsJZG9uZQotK2xpYnNvY2lfb3JhY2xl LmxhOiAkKGxpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpICQobGlic29jaV9vcmFjbGVfbGFfREVQ RU5ERU5DSUVTKSAKLSsJJChsaWJzb2NpX29yYWNsZV9sYV9MSU5LKSAkKGFtX2xpYnNvY2lfb3Jh Y2xlX2xhX3JwYXRoKSAkKGxpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpICQobGlic29jaV9vcmFj bGVfbGFfTElCQUREKSAkKExJQlMpCi0rCi0rbW9zdGx5Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1m ICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLnRhYi5jCi0r Ci0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfb3JhY2xlX2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuUGxvQGFt X19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVF QEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1y b3ctaWQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5QbG9AYW1fX3F1b3RlQAot K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJV RUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt c3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlBs b0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAK LStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29j aV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rCi0rLmNwcC5vOgot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAk KERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1f X212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1E RVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rLmNwcC5v Ymo6Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAg LU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCou UG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVj dD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAt YyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCou VHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJ UikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotK2xpYnNvY2lfb3JhY2xl X2xhLWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFj bGVfbGEtYmxvYi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxv Yi5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuVHBv ICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1ibG9iLlBsbwotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL2Jsb2IuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9vcmFjbGVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9v cmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1lcnJv ci5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuVHBvIC1j IC1vIGxpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5UcG8gJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L2Vycm9yLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2Np X29yYWNsZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEtZmFjdG9y eS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9s YS1mYWN0b3J5LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0 b3J5LlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVf bGEtZmFjdG9yeS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuUGxvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVf bGEtZmFjdG9yeS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3Bw Ci0rCi0rbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xh LXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9y b3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Jvdy1pZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQo REVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuVHBvICQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS1yb3ctaWQuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29y YWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtcm93 LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1p ZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvcm93LWlkLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG86ICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5UcG8gLWMg LW8gbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24u VHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlBsbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Nlc3Npb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24u bG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcAotKwotK2xpYnNv Y2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8t dHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQt aW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQt aW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10 eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlBs bwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0n bGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xl X2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5j cHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf b3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc3Rh bmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LXN0YW5kYXJkLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11 c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9z dGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQt dXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlw ZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIG9iamVj dD0nbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFj bGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNw cAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1Q IC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJz b2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50 LlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlBsbwotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtc3Rh dGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5j cHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29y YWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rv ci1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZl Y3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9y LWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBl LlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5QbG8KLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2Np X29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFj bGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rv ci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2Np X29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8g LWMgLW8gbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9y LXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIp L2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0 b3ItdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlw ZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0 b3ItdXNlLXR5cGUuY3BwCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8K LSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0raW5zdGFsbC1ub2Jh c2VfcGtnaW5jbHVkZUhFQURFUlM6ICQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKLSsJQCQo Tk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJf UCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgotKwlAbGlzdD0nJChub2Jhc2VfcGtnaW5j bHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCi0r CSQoYW1fX25vYmFzZV9saXN0KSB8IHdoaWxlIHJlYWQgZGlyIGZpbGVzOyBkbyBcCi0rCSAgeGZp bGVzPTsgZm9yIGZpbGUgaW4gJCRmaWxlczsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRmaWxl IjsgdGhlbiB4ZmlsZXM9IiQkeGZpbGVzICQkZmlsZSI7IFwKLSsJICAgIGVsc2UgeGZpbGVzPSIk JHhmaWxlcyAkKHNyY2RpcikvJCRmaWxlIjsgZmk7IGRvbmU7IFwKLSsJICB0ZXN0IC16ICIkJHhm aWxlcyIgfHwgeyBcCi0rCSAgICB0ZXN0ICJ4JCRkaXIiID0geC4gfHwgeyBcCi0rCSAgICAgIGVj aG8gIiQoTUtESVJfUCkgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZGlyJyI7IFwKLSsJ ICAgICAgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRkaXIiOyB9OyBc Ci0rCSAgICBlY2hvICIgJChJTlNUQUxMX0hFQURFUikgJCR4ZmlsZXMgJyQoREVTVERJUikkKHBr Z2luY2x1ZGVkaXIpLyQkZGlyJyI7IFwKLSsJICAgICQoSU5TVEFMTF9IRUFERVIpICQkeGZpbGVz ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGRpciIgfHwgZXhpdCAkJD87IH07IFwKLSsJ ZG9uZQotKwotK3VuaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlM6Ci0rCUAkKE5PUk1B TF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVz dCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKLSsJJChhbV9fbm9iYXNlX3N0cmlw X3NldHVwKTsgZmlsZXM9YCQoYW1fX25vYmFzZV9zdHJpcClgOyBcCi0rCXRlc3QgLW4gIiQkZmls ZXMiIHx8IGV4aXQgMDsgXAotKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnaW5jbHVkZWRp ciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAotKwljZCAiJChERVNURElSKSQocGtnaW5jbHVk ZWRpcikiICYmIHJtIC1mICQkZmlsZXMKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0 b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFu ZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8g Y2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5n IE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3Rh dHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUg TWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIp IG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5k IGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEn OyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0r CSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsg XAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVj aG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1 YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90 X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVs c2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgk KGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJn ZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0rCWlmIHRlc3QgIiQk ZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQk dGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFpbCIKLSsKLSskKFJF Q1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJ Zm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9 KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAg ZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0r CSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJT KScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9 Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBm aTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwg c2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAg ZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAot KwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAot KwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2Nh bF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXog IiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2Qp ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStj dGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhF QURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkg aW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBl bHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAn eyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5v bmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJ RCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURF UlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykg JChMSVNQKQotKwlzZXQgeDsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0 YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1 ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2Ug XAotKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJ Zmk7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0r CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAt ZiAkJHN1YmRpci9UQUdTIHx8IFwKLSsJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9u PSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0n JChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1 ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVj aG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkg ICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5E IHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0r CXNoaWZ0OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4g OjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsg XAotKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NG TEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgIiQkQCIgJCR1 bmlxdWU7IFwKLSsJICBlbHNlIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9F VEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgJCR1bmlxdWU7IFwKLSsJICBmaTsg XAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJT KSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQo TElTUCkKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxF UyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1m ICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJ ICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9 IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQg aTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAotKwkgIHx8 ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwK LSsJICAgICAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVp bGRkaXIpICYmIHB3ZGAgXAotKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKLSsJICAm JiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0r CS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRp cjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9w X3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJ U1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hv ICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAot KwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBc Ci0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQk ZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9b Xi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmls ZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1k ICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAt ZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUg J3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7 IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJt IC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0 ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwK LSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4 aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJt IC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAt ZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBc Ci0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRk LyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZp OyBcCi0rCWRvbmUKLSsJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJ ICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkg IiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0r CWRvbmUKLSsJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIGRp cjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCi0rCSAgICAkKGFtX19y ZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGRpcjE9 JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6 ZSk7IFwKLSsJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAgZWNobyAiIChj ZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdf dG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAotKwkgICAgZWNobyAi ICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tp cF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAotKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBc Ci0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRp cj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGly IiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9 OiBcCi0rCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAg ICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0r Y2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykg JChIRUFERVJTKQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxs ZGlycy1hbToKLSsJZm9yIGRpciBpbiAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikk KHBrZ2luY2x1ZGVkaXIpIjsgZG8gXAotKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1Ap ICIkJGRpciI7IFwKLSsJZG9uZQotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFs bC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRh dGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFs bC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0g aW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZl Ci0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9H UkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09 IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBg dGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9 U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsK LStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChD T05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRl c3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT KSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWlu dGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVp cmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNM RUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVh bi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJB UklFUyBjbGVhbi1saWJ0b29sIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRp c3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZp bGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1n ZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStk dmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStodG1sLWFtOgotKwotK2luZm86 IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGluc3Rh bGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTCi0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZp LXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbTogaW5z dGFsbC1saWJMVExJQlJBUklFUwotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vy c2l2ZQotKwotK2luc3RhbGwtaHRtbC1hbToKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5m by1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0r aW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcGRmLWFtOgot KwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wcy1hbToK LSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1j bGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUK LSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNs ZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0 bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwot K3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06IHVuaW5zdGFs bC1saWJMVExJQlJBUklFUyBcCi0rCXVuaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMK LSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VU UykgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVj dXJzaXZlCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lW RV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xl YW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wg Y3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRp c3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlz dGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGlu c3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGlu c3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0 bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0 YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIFwKLSsJaW5zdGFsbC1ub2Jhc2VfcGtnaW5j bHVkZUhFQURFUlMgaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAotKwlpbnN0YWxsLXBzIGlu c3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAotKwlpbnN0YWxsY2hlY2st YW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50 YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKLSsJ bW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMt YW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1 bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVS UwotKwotK0BTRVRfTUFLRUAKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05V IG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVt IGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3VyY2Vz Lm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3VyY2VzLm1rCi0t LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tawkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL29yYWNsZS9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAw MDAwICswMjAwCi1AQCAtMCwwICsxLDE0IEBACi0rYmNrX29yYWNsZV9oX3NvdXJjZXMgPSBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0r YmNrX29yYWNsZV9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9ibG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL2Vycm9yLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50 by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3ZlY3Rvci11c2UtdHlwZS5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1A QCAtMCwwICsxLDIyIEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsK LStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0raWYgSEFWRV9PUkFDTEUK LSsgIFRFU1RfT1JBQ0xFID0gdGVzdF9vcmFjbGUKLSsKLStpZiBSVU5fVEVTVFMKLSsgIG5vaW5z dF9QUk9HUkFNUyA9ICQoVEVTVF9PUkFDTEUpCi0rZW5kaWYKLSsKLSt0ZXN0X29yYWNsZV9TT1VS Q0VTID0gJChvcmFjbGVfdGVzdF9jY19zb3VyY2VzKQotK3Rlc3Rfb3JhY2xlX0NYWEZMQUdTID0g JChCT09TVF9DRkxBR1MpICQoT1JBQ0xFX09DSV9DRkxBR1MpCi0rdGVzdF9vcmFjbGVfTERBREQg PQotK3Rlc3Rfb3JhY2xlX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNv Y2lfY29yZS5sYSAtbGRsIFwKLSsJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9saWJzb2NpX29yYWNsZS5sYSBcCi0rCQkkKE9SQUNMRV9PQ0lfTERGTEFHUykKLStlbmRpZgot KwotKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChvcmFjbGVfdGVzdF9oX3NvdXJjZXMp Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVz dC9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAxMS0wNy0wMyAxODo1NTowNi40MDQ4NzcxMjMgKzAy MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtl ZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsMjMg KzAsMCBAQAotLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJh Y2tlbmQgYW5kIGl0cyBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52 aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgotLQotLU9SQUNMRUlO Q0xVREVESVIgPSAtSS91c3IvbGliL29yYWNsZS94ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4w L3NlcnZlci9yZGJtcy9wdWJsaWMgCi0tT1JBQ0xFTElCRElSID0gLUwvdXNyL2xpYi9vcmFjbGUv eGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2ZXIvbGliIAotLU9SQUNMRUxJQlMgPSAt bGNsbnRzaCAtbG5uejEwCi0tCi0tIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBl bnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KLS0KLS1DT01QSUxFUiA9IGcrKwotLUNY WEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tSU5DTFVERURJUlMgPSAt SS4uIC1JLi4vLi4vLi4vY29yZSAtSS4uLy4uLy4uL2NvcmUvdGVzdCAke09SQUNMRUlOQ0xVREVE SVJ9Ci0tTElCRElSUyA9IC1MLi4gLUwuLi8uLi8uLi9jb3JlICR7T1JBQ0xFTElCRElSfQotLUxJ QlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfb3JhY2xlIC1sZGwgLWxib29zdF9kYXRlX3RpbWUgJHtP UkFDTEVMSUJTfQotLQotLQotLXRlc3Qtb3JhY2xlIDogdGVzdC1vcmFjbGUuY3BwIAotLSMuLi8u Li8uLi9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLS0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9Ci0tCi0tCi0tY2xlYW4g OgotLQlybSAtZiAqLm8gdGVzdC1vcmFjbGUKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L29yYWNsZS90ZXN0L01ha2VmaWxlLmluCTIwMTEtMDctMDMgMTg6NDQ6MjguMDAwMDAwMDAwICsw MjAwCi1AQCAtMCwwICsxLDU2NSBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9t YWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsj IENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwg MjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4g aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMg dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdp dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHBy ZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0 aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VM QVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2Rh dGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVk aXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJl eGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pT SF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0g JChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxf c2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9I RUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3Jt X25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNU QUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NU X1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9 IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9N YWtlZmlsZS5pbiBcCi0rCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uCi0rQEhBVkVfT1JBQ0xFX1RSVUVAQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9H UkFNUyA9ICQoYW1fX0VYRUVYVF8xKQotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rl c3QKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxf bTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFj bGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQo dG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNs b2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000 KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQo dG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05G SUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK0BIQVZFX09SQUNMRV9UUlVFQGFtX19FWEVFWFRfMSA9 IHRlc3Rfb3JhY2xlJChFWEVFWFQpCi0rUFJPR1JBTVMgPSAkKG5vaW5zdF9QUk9HUkFNUykKLSth bV9fdGVzdF9vcmFjbGVfU09VUkNFU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotK2FtX19vYmplY3RzXzEgPSB0ZXN0 X29yYWNsZS10ZXN0LW9yYWNsZS4kKE9CSkVYVCkKLStASEFWRV9PUkFDTEVfVFJVRUBhbV90ZXN0 X29yYWNsZV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQotK3Rlc3Rfb3JhY2xlX09CSkVDVFMg PSAkKGFtX3Rlc3Rfb3JhY2xlX09CSkVDVFMpCi0rdGVzdF9vcmFjbGVfREVQRU5ERU5DSUVTID0K LSt0ZXN0X29yYWNsZV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpIFwKLSsJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpICQodGVzdF9vcmFj bGVfQ1hYRkxBR1MpIFwKLSsJJChDWFhGTEFHUykgJCh0ZXN0X29yYWNsZV9MREZMQUdTKSAkKExE RkxBR1MpIC1vICRACi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9i dWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9k ZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKLSthbV9fbXYgPSBtdiAtZgot K0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhG TEFHUykKLStMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhM SU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp ICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQodGVzdF9v cmFjbGVfU09VUkNFUykKLStESVNUX1NPVVJDRVMgPSAkKGFtX190ZXN0X29yYWNsZV9TT1VSQ0VT X0RJU1QpCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNURklMRVMgPSAkKERJ U1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FD TE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09O RiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBA QVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9BU0lPX0xJQiA9IEBCT09TVF9BU0lPX0xJ QkAKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIg PSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9G SUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19M SUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1Rf TVBJX0xJQkAKLStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAK LStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJA Ci0rQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJ QiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1Rf U0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19M SUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVB RF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ QiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJP T1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFH UyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBV TklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklU X0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lP TiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAot K0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQ QVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAot K0RMTFRPT0wgPSBARExMVE9PTEAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0g QERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9f VCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JF UCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllf VkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExf REFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JB TUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BS T0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBA TERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wg PSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9 IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUFOSUZFU1RfVE9PTCA9IEBN QU5JRkVTVF9UT09MQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlT UUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBA TVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9 IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVN UCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xF X0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xF X09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04g PSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RP T0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FH RV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NU UklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJO QU1FQAotK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQ QUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVS TCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1Mg PSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElS U0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVT UUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStT RUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NP Q0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStT VFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJT SU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3Jj ZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGly QAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0FSID0gQGFjX2N0 X0FSQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0r YWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNs dWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0g QGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRh ckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0g QGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVp bGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWls ZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJA Ci0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9 IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tA Ci0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9 IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2Nw dUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0r aHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGly ID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxh dGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAot K2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGly QAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVk aXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVm aXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAot K3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29r QAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJA Ci0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxp YXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRp ciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZM QUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rb3JhY2xlX3Rlc3RfaF9z b3VyY2VzID0gCi0rb3JhY2xlX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKLStNQUlOVEFJTkVSQ0xFQU5GSUxF UyA9IE1ha2VmaWxlLmluCi0rQEhBVkVfT1JBQ0xFX1RSVUVAVEVTVF9PUkFDTEUgPSB0ZXN0X29y YWNsZQotK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX1NPVVJDRVMgPSAkKG9yYWNsZV90 ZXN0X2NjX3NvdXJjZXMpCi0rQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfQ1hYRkxBR1Mg PSAkKEJPT1NUX0NGTEFHUykgJChPUkFDTEVfT0NJX0NGTEFHUykKLStASEFWRV9PUkFDTEVfVFJV RUB0ZXN0X29yYWNsZV9MREFERCA9IAotK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX0xE RkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwK LStASEFWRV9PUkFDTEVfVFJVRUAJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9saWJzb2NpX29yYWNsZS5sYSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACQkkKE9SQUNMRV9PQ0lf TERGTEFHUykKLSsKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklYRVM6IC5j cHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZp bGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsg JChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAn JChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICgg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo ICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJl YWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwK LSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2Rpcikg JiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFr ZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmls ZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJ ICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikv JEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsK LSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsk KEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2Fs X200X2RlcHMpOgotKwotK2NsZWFuLW5vaW5zdFBST0dSQU1TOgotKwlAbGlzdD0nJChub2luc3Rf UFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKLSsJZWNobyAiIHJtIC1m IiAkJGxpc3Q7IFwKLSsJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCi0rCXRlc3QgLW4gIiQo RVhFRVhUKSIgfHwgZXhpdCAwOyBcCi0rCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAi JCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKLSsJZWNobyAiIHJtIC1mIiAk JGxpc3Q7IFwKLSsJcm0gLWYgJCRsaXN0Ci0rdGVzdF9vcmFjbGUkKEVYRUVYVCk6ICQodGVzdF9v cmFjbGVfT0JKRUNUUykgJCh0ZXN0X29yYWNsZV9ERVBFTkRFTkNJRVMpIAotKwlAcm0gLWYgdGVz dF9vcmFjbGUkKEVYRUVYVCkKLSsJJCh0ZXN0X29yYWNsZV9MSU5LKSAkKHRlc3Rfb3JhY2xlX09C SkVDVFMpICQodGVzdF9vcmFjbGVfTERBREQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21w aWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJt IC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuUG9AYW1fX3F1b3RlQAotKwotKy5jcHAu bzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAt TUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8g QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5j cHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQg LU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIp LyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBv YmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElM RSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIp LyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChE RVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLSt0ZXN0X29yYWNs ZS10ZXN0LW9yYWNsZS5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv dGVzdC1vcmFjbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3Rfb3JhY2xlLXRlc3Qt b3JhY2xlLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlRw byAtYyAtbyB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFj bGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvdGVzdF9v cmFjbGUtdGVzdC1vcmFjbGUuVHBvICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5Q bwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyBvYmplY3Q9J3Rl c3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt YyAtbyB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUu Y3BwCi0rCi0rdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykg LU1UIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVz dF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9i aiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rl c3Qtb3JhY2xlLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQo c3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFj bGUuY3BwJzsgZmlgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv dGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9y YWNsZS5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyBvYmpl Y3Q9J3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xB U0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiBgaWYgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IHRo ZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv dGVzdC1vcmFjbGUuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZmlgCi0rCi0r bW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgot Kwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJ U1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkg JChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAg IGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRp OyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25l bXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZp bGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFH UwotKwotK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMp IFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlzZXQgeDsgXAotKwloZXJlPWBwd2RgOyBc Ci0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9u ZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0r CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlx dWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRl bXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAg ICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxB R1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBc Ci0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogICQoSEVBREVSUykgJChT T1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1Ap Ci0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9u ZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0r CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENU QUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAg ICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGly KSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3Rh Z3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0g LWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQo RElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10u W14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklM RVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZp bGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAg ICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwlj YXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3Rf ZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSok JCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4g JCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZp bGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRk LyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9b Xi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVu IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAw IC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAt ZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAg ICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7 IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAw IC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAk JGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkg ICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZp bGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAot Kwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFr ZWZpbGUgJChQUk9HUkFNUykKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0r aW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0 YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0r CUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFt Ci0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9Q Uk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dS QU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwg XAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJg IGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0r ZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8 IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwg dGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19D TEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hv ICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVj aG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJl YnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQo TUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNs ZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBcCi0rCW1vc3Rs eWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1yZiAuLyQoREVQ RElSKQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVh bi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6 IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raHRtbC1hbToKLSsK LStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0r aW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1kdmktYW06Ci0rCi0raW5z dGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5z dGFsbC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5z dGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxs LXBkZi1hbQotKwotK2luc3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMt YW0KLSsKLStpbnN0YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFp bmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJ LXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50 YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwot K21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMg XAotKwltb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0r Ci0rcHM6IHBzLWFtCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiBp bnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwt YW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYnRvb2wg Y2xlYW4tbm9pbnN0UFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKLSsJZGlzdGNsZWFuLWNvbXBp bGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4tdGFn cyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBcCi0rCWluc3Rh bGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwK LSsJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0 bWwgXAotKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0 YWxsLW1hbiBcCi0rCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFs bC1wcy1hbSBcCi0rCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBp bnN0YWxsZGlycyBcCi0rCW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj IG1vc3RseWNsZWFuIFwKLSsJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmlj IG1vc3RseWNsZWFuLWxpYnRvb2wgXAotKwlwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0 YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAKLSsKLSsjbm9kaXN0X3BrZ2luY2x1ZGVf SEVBREVSUyA9ICQob3JhY2xlX3Rlc3RfaF9zb3VyY2VzKQotKwotKyMgVGVsbCB2ZXJzaW9ucyBb My41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBP dGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVk ZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv c291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCAr MSwyIEBACi0rb3JhY2xlX3Rlc3RfaF9zb3VyY2VzID0KLStvcmFjbGVfdGVzdF9jY19zb3VyY2Vz ID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNw cAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9N YWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01h a2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5hbQkyMDA5 LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwzMCBAQAotKyMjIGJh Y2tlbmRzL3Bvc3RncmVzcWwgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK1NVQkRJUlMgPSAuIHRlc3QKLSsKLSsj RVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9jb21tb24uaAotKwotK0VYVFJB X0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLSsKLStpZiBIQVZF X1BPU1RHUkVTUUwKLStsaWJfTFRMSUJSQVJJRVM9IGxpYnNvY2lfcG9zdGdyZXNxbC5sYQotKwot K2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTPSAkKGJja19wb3N0Z3Jlc3FsX2hfc291cmNl cykgJChiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzKSAKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGFf Q1hYRkxBR1MgPSAkKFBPU1RHUkVTUUxfQ0ZMQUdTKQotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9M SUJBREQgPQotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9MREZMQUdTID0gXAotKwkkKEJPT1NUX0xJ QlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBc Ci0rCS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStwa2dpbmNs dWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2Np LXBvc3RncmVzcWwuaAotK2VuZGlmCi0raWYgU09DSV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5j bHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbAotK2Vsc2UK LStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRp ciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYwkyMDExLTA3LTAzIDE4 OjU1OjA2LjQwMjg3NzEzMyArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKLUBAIC0xLDk1ICswLDAgQEAKLS0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMg c3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0 IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRp bmdseS4KLS0KLS1QR1NRTElOQ0xVREVESVIgPSAtSS91c3IvaW5jbHVkZQotLQotLSMgVGhlIHJl c3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW50ZW50IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1l bnQuCi0tCi0tQ09NUElMRVIgPSBnKysKLS1DWFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25v LWxvbmctbG9uZwotLUNYWEZMQUdTU08gPSAke0NYWEZMQUdTfSAtZlBJQwotLUlOQ0xVREVESVJT ID0gLUkuLi8uLi9jb3JlICR7UEdTUUxJTkNMVURFRElSfQotLQotLQotLU9CSkVDVFMgPSBibG9i Lm8gZmFjdG9yeS5vIHJvdy1pZC5vIHNlc3Npb24ubyBzdGFuZGFyZC1pbnRvLXR5cGUubyBcCi0t CXN0YW5kYXJkLXVzZS10eXBlLm8gc3RhdGVtZW50Lm8gdmVjdG9yLWludG8tdHlwZS5vIHZlY3Rv ci11c2UtdHlwZS5vIFwKLS0JY29tbW9uLm8KLS0KLS1PQkpFQ1RTU08gPSBibG9iLXMubyBmYWN0 b3J5LXMubyByb3ctaWQtcy5vIHNlc3Npb24tcy5vIFwKLS0Jc3RhbmRhcmQtaW50by10eXBlLXMu byBzdGFuZGFyZC11c2UtdHlwZS1zLm8gc3RhdGVtZW50LXMubyBcCi0tCXZlY3Rvci1pbnRvLXR5 cGUtcy5vIHZlY3Rvci11c2UtdHlwZS1zLm8gY29tbW9uLXMubwotLQotLQotLWxpYnNvY2lfcG9z dGdyZXNxbC5hIDogJHtPQkpFQ1RTfQotLQlhciBydiAkQCAkPwotLQlybSAqLm8KLS0KLS0KLS1i bG9iLm8gOiBibG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQotLQotLWNvbW1vbi5vIDogY29tbW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWZhY3RvcnkubyA6IGZhY3RvcnkuY3BwCi0t CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93LWlk Lm8gOiByb3ctaWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9Ci0tCi0tc2Vzc2lvbi5vIDogc2Vzc2lvbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8g JHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC1pbnRvLXR5cGUubyA6IHN0 YW5kYXJkLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC11c2UtdHlwZS5vIDogc3RhbmRhcmQtdXNlLXR5cGUu Y3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0t c3RhdGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxB R1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLWludG8tdHlwZS5vIDogdmVjdG9yLWludG8t dHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K LS0KLS12ZWN0b3ItdXNlLXR5cGUubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1zaGFyZWQgOiAke09C SkVDVFNTT30KLS0JJHtDT01QSUxFUn0gLXNoYXJlZCAtbyBsaWJzb2NpX3Bvc3RncmVzcWwuc28g JHtPQkpFQ1RTU099Ci0tCXJtICoubwotLQotLWJsb2Itcy5vIDogYmxvYi5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLWNvbW1v bi1zLm8gOiBjb21tb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NT T30gJHtJTkNMVURFRElSU30KLS0KLS1mYWN0b3J5LXMubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09N UElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ct aWQtcy5vIDogcm93LWlkLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdT U099ICR7SU5DTFVERURJUlN9Ci0tCi0tc2Vzc2lvbi1zLm8gOiBzZXNzaW9uLmNwcAotLQkke0NP TVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3Rh bmRhcmQtaW50by10eXBlLXMubyA6IHN0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxF Un0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJk LXVzZS10eXBlLXMubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAt byAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50LXMubyA6 IHN0YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAk e0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci1pbnRvLXR5cGUtcy5vIDogdmVjdG9yLWludG8tdHlw ZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVE SVJTfQotLQotLXZlY3Rvci11c2UtdHlwZS1zLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCi0tCSR7 Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS0K LS1jbGVhbiA6Ci0tCXJtIC1mIGxpYnNvY2lfcG9zdGdyZXNxbC5hIGxpYnNvY2lfcG9zdGdyZXNx bC5zbwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5pbgky MDExLTA3LTAzIDE4OjQ0OjI4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw5MDcgQEAKLSsj IE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5h bS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUs IDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s Ci0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3 OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtF QAotKwotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFD S0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9 ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lP TisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFs bF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwot K2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0g JChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQot K05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoK LStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RB TEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAK LStESVNUX0NPTU1PTiA9ICQoYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUKSAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gXAotKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMu bWsgXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQK LSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0 Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9w dGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+ b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2Rl cHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAot KwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05G SUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5f RklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1 cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1f X3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQk cCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0r ICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwn YDsKLSthbV9faW5zdGFsbF9tYXggPSA0MAotK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0r ICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxc XCYvZydgCi0rYW1fX25vYmFzZV9zdHJpcCA9IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNo byAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgotK2FtX19ub2Jhc2Vf bGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKLSsgIGZvciBwIGluICQkbGlzdDsg ZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCi0rICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8 OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAotKyAgJChB V0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0g IiAiICQkMTsgXAotKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCi0r ICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAi IiB9IH0gXAotKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tk aXJdIH0nCi0rYW1fX2Jhc2VfbGlzdCA9IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjsk JCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47 cy9cbi8gL2cnCi0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERF U1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLStMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVT KQotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9ERVBFTkRFTkNJRVMgPQotK2FtX19saWJzb2NpX3Bv c3RncmVzcWxfbGFfU09VUkNFU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvY29tbW9uLmggXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvY29tbW9uLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvcm93LWlkLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAotKwkkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCi0rCSQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSth bV9fb2JqZWN0c18xID0KLSthbV9fb2JqZWN0c18yID0gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJs b2IubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIFwKLSsJbGlic29jaV9w b3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlk LmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gXAotKwlsaWJzb2NpX3Bv c3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRl bWVudC5sbyBcCi0rCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIFwK LSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbwotK0BIQVZFX1BPU1RH UkVTUUxfVFJVRUBhbV9saWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUyA9ICBcCi0rQEhBVkVf UE9TVEdSRVNRTF9UUlVFQAkkKGFtX19vYmplY3RzXzEpICQoYW1fX29iamVjdHNfMikKLStsaWJz b2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX09C SkVDVFMpCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChD WFhMRCkgXAotKwkkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg XAotKwkkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0r QEhBVkVfUE9TVEdSRVNRTF9UUlVFQGFtX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9ycGF0aCA9IC1y cGF0aCBcCi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVFQAkkKGxpYmRpcikKLStERUZBVUxUX0lOQ0xV REVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCi0rZGVwY29tcCA9ICQo U0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKLSthbV9fZGVwZmlsZXNfbWF5YmUg PSBkZXBmaWxlcwotK2FtX19tdiA9IG12IC1mCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwkt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhG TEFHUykKLStDWFhMRCA9ICQoQ1hYKQotK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDWFhM RCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFH UykgLW8gJEAKLStDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQo Q0ZMQUdTKQotK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChMSUJU T09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1t b2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAot KwkkKExERkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NP VVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJChhbV9fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJD RVNfRElTVCkKLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJz aXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0 YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhl Yy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1 cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5z dGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJl Y3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNp dmUKLSthbV9fcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QgPSAgXAotKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAotK0hFQURFUlMgPSAkKHBr Z2luY2x1ZGVfSEVBREVSUykKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFu LXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWlu dGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJ VkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAotKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1y ZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAotKwlkaXN0ZGlyCi0rRVRBR1MgPSBl dGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJ TEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFf RElTVCkKLSthbV9fcmVsYXRpdml6ZSA9IFwKLSsgIGRpcjA9YHB3ZGA7IFwKLSsgIHNlZF9maXJz dD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAotKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7 IFwKLSsgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCi0rICBzZWRfYnV0bGFz dD0ncywvKlteL10qJCQsLCc7IFwKLSsgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKLSsg ICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAg aWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKLSsgICAgICBpZiB0ZXN0ICIkJGZpcnN0 IiA9ICIuLiI7IHRoZW4gXAotKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAi JCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCi0rICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwg c2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKLSsgICAgICBlbHNlIFwKLSsgICAgICAgIGZpcnN0 Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICAgICAgaWYg dGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKLSsgICAgICAgICAgZGlyMj1gZWNo byAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICAgICAgICBlbHNlIFwKLSsg ICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAotKyAgICAgICAgZmk7IFwKLSsgICAgICAgIGRp cjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCi0rICAgICAgZmk7IFwKLSsgICAgZmk7IFwKLSsgICAg ZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICBkb25lOyBc Ci0rICByZWxkaXI9IiQkZGlyMiIKLStwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGly KQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStB VVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01B S0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9BU0lPX0xJQiA9IEBCT09TVF9B U0lPX0xJQkAKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElN RV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBC T09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RS RUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBA Qk9PU1RfTVBJX0xJQkAKLStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9O X0xJQkAKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9O U19MSUJACi0rQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JF R0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBA Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lH TkFMU19MSUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NU X1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9O ID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAot K0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AK LStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBD UFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRf VkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hY Q1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AK LStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQ RElSQAotK0RMTFRPT0wgPSBARExMVE9PTEAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1Q QklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAot K0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAK LStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJ QlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lO U1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExf UFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NU UklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxB R1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJ QlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElC T0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUFOSUZFU1RfVE9P TCA9IEBNQU5JRkVTVF9UT09MQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1Mg PSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJ UlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVS U0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0r T0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBA T1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0r T1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZF UlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQg PSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBA UEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNL QUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FH RV9UQVJOQU1FQAotK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAotK1BBQ0tBR0VfVkVSU0lP TiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JA Ci0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9D RkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVT UUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BP U1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJ QkAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxM QAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01Z U1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9Q T1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF REAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAK LStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSth YnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1 aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0FSID0g QGFjX2N0X0FSQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9D WFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFt X19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1 b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFt X191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2Fs aWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3Mg PSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9 IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJv b3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdl bl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZp cHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0r aG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBo b3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5k b3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStp bmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29r ID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVj ZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0 YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGlu Y2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9 IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9u YW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBA c2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBz cmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJn ZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9i dWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FN X0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rYmNrX3Bvc3Rn cmVzcWxfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvY29tbW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKLSsKLStiY2tfcG9zdGdyZXNxbF9jY19z b3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvY29tbW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNl LXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotKwotK01BSU5U QUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gLiB0ZXN0Ci0rCi0rI0VY VFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fY29tbW9uLmgKLStFWFRSQV9ESVNU ID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rQEhBVkVfUE9TVEdSRVNR TF9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfcG9zdGdyZXNxbC5sYQotK0BIQVZFX1BP U1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFUyA9ICQoYmNrX3Bvc3Rn cmVzcWxfaF9zb3VyY2VzKSAkKGJja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAotK0BIQVZFX1BP U1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MgPSAkKFBPU1RHUkVT UUxfQ0ZMQUdTKQotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFf TElCQUREID0gCi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9M REZMQUdTID0gXAotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NU X0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAotK0BIQVZFX1BP U1RHUkVTUUxfVFJVRUAJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQot KwotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAotK0BTT0NJX0hF QURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rQFNP Q0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklY RVM6Ci0rLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2JqCi0rJChzcmNkaXIpL01ha2VmaWxlLmlu OiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQo c3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAk PzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQk ZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRo ZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAg ZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01B S0UpIC0tZ251IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSc7IFwKLSsJJChhbV9f Y2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTog JChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBj YXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICop IFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcu c3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAk KGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2Nv bmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBF TkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmln dXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0r CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0raW5zdGFsbC1saWJMVExJQlJBUklFUzogJChs aWJfTFRMSUJSQVJJRVMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKGxpYmRp cikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCi0rCUBsaXN0PSckKGxpYl9M VExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCi0rCWxpc3QyPTsg Zm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAotKwkgICAg bGlzdDI9IiQkbGlzdDIgJCRwIjsgXAotKwkgIGVsc2UgOjsgZmk7IFwKLSsJZG9uZTsgXAotKwl0 ZXN0IC16ICIkJGxpc3QyIiB8fCB7IFwKLSsJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNU QUxMX1NUUklQX0ZMQUcpICQkbGlzdDIgJyQoREVTVERJUikkKGxpYmRpciknIjsgXAotKwkgICQo TElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFs bCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICIkKERFU1RESVIpJChs aWJkaXIpIjsgXAotKwl9Ci0rCi0rdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgotKwlAJChOT1JN QUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChs aWJkaXIpIiB8fCBsaXN0PTsgXAotKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICAkKGFtX19z dHJpcF9kaXIpIFwKLSsJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikv JCRmJyI7IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCi0r CWRvbmUKLSsKLStjbGVhbi1saWJMVExJQlJBUklFUzoKLSsJLXRlc3QgLXogIiQobGliX0xUTElC UkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCi0rCUBsaXN0PSckKGxpYl9MVExJ QlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBkaXI9ImBlY2hvICQkcCB8IHNl ZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCi0rCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRp cj0uOyBcCi0rCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAotKwkg IHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKLSsJZG9uZQotK2xpYnNvY2lfcG9zdGdy ZXNxbC5sYTogJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUykgJChsaWJzb2NpX3Bvc3Rn cmVzcWxfbGFfREVQRU5ERU5DSUVTKSAKLSsJJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElOSykg JChhbV9saWJzb2NpX3Bvc3RncmVzcWxfbGFfcnBhdGgpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xh X09CSkVDVFMpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCkgJChMSUJTKQotKwotK21v c3RseWNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLiQoT0JKRVhUKQotKwotK2Rpc3RjbGVhbi1j b21waWxlOgotKwktcm0gLWYgKi50YWIuYwotKwotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAg QGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5QbG9AYW1f X3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1mYWN0b3J5LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQuUGxvQGFt X19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24uUGxvQGFtX19xdW90ZUAKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEt c3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVu dC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5QbG9AYW1f X3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0r Ci0rLmNwcC5vOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAt TUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGli dG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8 Ci0rCi0rLmNwcC5vYmo6Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1U ICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAn JDwnYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAk KERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChD WFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAk KERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1f X212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotK2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9ibG9iLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo YW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IuVHBvICQoREVQRElS KS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvYmxvYi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8nIGxpYnRv b2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1v IGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAKLSsKLStsaWJzb2Np X3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5U cG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24uUGxvCi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xh LWNvbW1vbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv Y29tbW9uLmNwcAotKwotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvOiAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0 Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xh LWZhY3RvcnkubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1m YWN0b3J5LlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L2ZhY3RvcnkuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtZmFjdG9yeS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5j cHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAKLSsKLStsaWJz b2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2Np X3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1p ZC5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQuUGxvCi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLXJvdy1pZC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvcm93LWlkLmNwcAotKwotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvOiAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9w b3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtc2Vzc2lvbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lv bi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAKLSsKLSts aWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvCi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9w b3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf cG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQt aW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlw ZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNl LXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1N VCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gLWMg LW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFt X19tdikgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5U cG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG8K LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9 J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMg QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcAotKwotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQu bG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf cG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf cG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1z dGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LlRw byAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5QbG8KLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVz cWxfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50 LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0 ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZl Y3Rvci1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5 cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50 by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8t dHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBl LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92 ZWN0b3ItaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNl LXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11 c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1jIC1v IGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3ZlY3Rvci11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAkKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG8KLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jl c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEt dmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0r Ci0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29s OgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0raW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzogJChw a2dpbmNsdWRlX0hFQURFUlMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKHBr Z2luY2x1ZGVkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIK LSsJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRp cikiIHx8IGxpc3Q9OyBcCi0rCWZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYg IiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCi0rCSAgZWNobyAiJCRk JCRwIjsgXAotKwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKLSsJd2hpbGUgcmVhZCBmaWxl czsgZG8gXAotKwkgIGVjaG8gIiAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICckKERFU1RESVIp JChwa2dpbmNsdWRlZGlyKSciOyBcCi0rCSAgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAiJChE RVNURElSKSQocGtnaW5jbHVkZWRpcikiIHx8IGV4aXQgJCQ/OyBcCi0rCWRvbmUKLSsKLSt1bmlu c3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0 PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBs aXN0PTsgXAotKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8IHNl ZCAtZSAnc3xeLiovfHwnYDsgXAotKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKLSsJ ZWNobyAiICggY2QgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyAmJiBybSAtZiIgJCRmaWxl cyAiKSI7IFwKLSsJY2QgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAtZiAkJGZp bGVzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5k ZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0 IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9m IGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkg aWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5z dGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdl bmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhl IGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZF X1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQk TUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7 OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRv bmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vy c2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3Rh cmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAk JGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRo ZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAx OyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU Uyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxB R1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJ ICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAot Kwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFp bnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0 PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwK LSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwly ZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7 IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdl dCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAot KwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxv Y2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwg ZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1 cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAot KwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIk JHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQo TElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBU QUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwK LSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lv bikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWlu Y2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlv bj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBc Ci0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFH UyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0 IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3Qg LW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAt Z3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFH UykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBc Ci0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19B UkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RB R1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdT X0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09V UkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0 IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxB R1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsK LStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJ ICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19B UkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFH UyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlA c3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYv ZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9b XS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRp c3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0r CSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9w c3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxl cyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJ CSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkg ICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBk byBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBl bHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBc Ci0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAot KwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmlu ZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUr cnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRm aWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChz cmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmlu ZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUr cnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRp c3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChk aXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikv JCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0 PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3Rk aXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGly IiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJ U1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIk KGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAg IG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRv cF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9w X2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGly PSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0 ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGly KSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGly IiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9k aXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9k ZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJ ICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNp dmUKLSthbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKLStpbnN0YWxs ZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0rCWZvciBkaXIg aW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRv IFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUK LStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVj LXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5z dGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChN QUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwot K2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0r CSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQ X1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJP R1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8 fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCkn ImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsK LStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIg fHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8 fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklH X0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVj aG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlA ZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8g cmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYg JChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xl YW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBc Ci0rCW1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0r CS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBj bGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVh bi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0 bWwtcmVjdXJzaXZlCi0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwot K2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJT Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZp LWFtOgotKwotK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUwotKwotK2lu c3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaHRtbC1hbToK LSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWlu Zm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJl Y3Vyc2l2ZQotKwotK2luc3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMt cmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0r bWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAu LyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0 Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3Rs eWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxl IG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBw ZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1h bToKLSsKLSt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwt cGtnaW5jbHVkZUhFQURFUlMKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykg JChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1hbSBpbnN0 YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9U QVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0g Y2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYkxUTElCUkFS SUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJZGlzdGNsZWFuIGRp c3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wg ZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8g aW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRh LWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwt ZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWlu c3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwt cGRmIFwKLSsJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxs LXBzIFwKLSsJaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxs Y2hlY2stYW0gXAotKwlpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFu IFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNv bXBpbGUgXAotKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBk Zi1hbSBwcyBwcy1hbSBcCi0rCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFs bC1hbSBcCi0rCXVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhF QURFUlMKLSsKLStAU0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9m IEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5 c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBP UlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z b3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMubWsJMjAwOS0w NC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTQgQEAKLStiY2tfcG9z dGdyZXNxbF9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9jb21tb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAotK2Jja19wb3N0Z3Jlc3FsX2NjX3Nv dXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9ibG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9jb21tb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2Ut dHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUu YW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2Vm aWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUu YW0JMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTggQEAK LSsjIyBjb3JlIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uCi0raW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwotK01BSU5UQUlORVJDTEVB TkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStpZiBSVU5fVEVTVFMKLSsgIG5vaW5zdF9QUk9HUkFN UyA9IHRlc3RfcG9zdGdyZXNxbAotK2VuZGlmCi0rCi0rdGVzdF9wb3N0Z3Jlc3FsX1NPVVJDRVMg PSAkKHBvc3RncmVzcWxfdGVzdF9jY19zb3VyY2VzKQotK3Rlc3RfcG9zdGdyZXNxbF9DWFhGTEFH UyA9ICQoQk9PU1RfQ0ZMQUdTKQotK3Rlc3RfcG9zdGdyZXNxbF9MREFERCA9Ci0rdGVzdF9wb3N0 Z3Jlc3FsX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5s YSAtbGRsIFwKLSsJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvbGli c29jaV9wb3N0Z3Jlc3FsLmxhIFwKLSsJCSQoUE9TVEdSRVNRTF9MREZMQUdTKQotKwotKyNub2Rp c3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChwb3N0Z3Jlc3FsX3Rlc3RfaF9zb3VyY2VzKQotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01h a2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dGVzdC9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTIwMTEtMDctMDMgMTg6NTU6MDYuMzk5ODc3 MTUwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci1AQCAtMSwyMiArMCwwIEBACi0tIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmlj IHRvIHRoaXMgYmFja2VuZCBhbmQgaXRzIGNvcnJlY3QKLS0jIHZhbHVlcyBtaWdodCBkZXBlbmQg b24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCi0t Ci0tUEdTUUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUKLS1QR1NRTExJQkRJUiA9IC1ML3Vz ci9saWIKLS1QR1NRTExJQlMgPSAtbHBxCi0tCi0tIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUg aXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KLS0KLS1DT01QSUxFUiA9 IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tSU5DTFVE RURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZS90ZXN0IC1JLi4vLi4vLi4vY29yZSAke1BHU1FM SU5DTFVERURJUn0KLS1MSUJESVJTID0gLUwuLiAtTC4uLy4uLy4uL2NvcmUgJHtQR1NRTExJQkRJ Un0KLS1MSUJTID0gLWxzb2NpX2NvcmUgLWxzb2NpX3Bvc3RncmVzcWwgLWxkbCAke1BHU1FMTElC U30KLS0KLS0KLS10ZXN0LXBvc3RncmVzcWwgOiB0ZXN0LXBvc3RncmVzcWwuY3BwCi0tCSR7Q09N UElMRVJ9IC1vICRAICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9ICR7TElCRElSU30gJHtM SUJTfQotLQotLQotLWNsZWFuIDoKLS0Jcm0gLWYgdGVzdC1wb3N0Z3Jlc3FsCi1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUu aW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2Vm aWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUu aW4JMjAxMS0wNy0wMyAxODo0NDoyOC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTYyIEBA Ci0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZp bGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAx OTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywg MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLAotKyMgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0 byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh dGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5 IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRf TUFLRUAKLSsKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBB Q0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rcGtnbGli ZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIp L0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQ QVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0 NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1ND UklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRB KQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFM TCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5T VEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxk X3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04g PSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNk aXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStAUlVOX1RFU1RT X1RSVUVAbm9pbnN0X1BST0dSQU1TID0gdGVzdF9wb3N0Z3Jlc3FsJChFWEVFWFQpCi0rc3ViZGly ID0gc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3Jj ZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29u ZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVu aXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdh ci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0r YW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9E RVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3Rh bGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5o Ci0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1BS T0dSQU1TID0gJChub2luc3RfUFJPR1JBTVMpCi0rYW1fX29iamVjdHNfMSA9IHRlc3RfcG9zdGdy ZXNxbC10ZXN0LXBvc3RncmVzcWwuJChPQkpFWFQpCi0rYW1fdGVzdF9wb3N0Z3Jlc3FsX09CSkVD VFMgPSAkKGFtX19vYmplY3RzXzEpCi0rdGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMgPSAkKGFtX3Rl c3RfcG9zdGdyZXNxbF9PQkpFQ1RTKQotK3Rlc3RfcG9zdGdyZXNxbF9ERVBFTkRFTkNJRVMgPQot K3Rlc3RfcG9zdGdyZXNxbF9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpIFwKLSsJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKLSsJJCh0 ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwKLSsJJCh0ZXN0X3Bvc3RncmVz cWxfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAotK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1f X2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKLStkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bf c3JjZGlyKS9jb25maWcvZGVwY29tcAotK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCi0r YW1fX212ID0gbXYgLWYKLStDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1f Q1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0NYWExE ID0gJChDWFgpCi0rQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NP VVJDRVMgPSAkKHRlc3RfcG9zdGdyZXNxbF9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQodGVz dF9wb3N0Z3Jlc3FsX1NPVVJDRVMpCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStE SVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChF WFRSQV9ESVNUKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9 IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJA Ci0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9BU0lPX0xJQiA9 IEBCT09TVF9BU0lPX0xJQkAKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NU X0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVN X0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJP T1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01Q SV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKLStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9N UElfUFlUSE9OX0xJQkAKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAot K0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBA Qk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElC QAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09T VF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NE RVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBD UFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NP TkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAot K0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhD UFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBD WFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBE SVIgPSBAREVQRElSQAotK0RMTFRPT0wgPSBARExMVE9PTEAKLStEU1lNVVRJTCA9IEBEU1lNVVRJ TEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBA RUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0g QEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBH RU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNU QUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0g QElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJ TlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExE QAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBM SUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9T QAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUFO SUZFU1RfVE9PTCA9IEBNQU5JRkVTVF9UT09MQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNR TF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAot K01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0r TVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBO TUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xF X0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9D RkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFD TEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAot K09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdS RVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFN RUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUg PSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAotK1BBQ0tB R0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9T RVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9T VEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0g QFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZM QUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElC ID0gQFJBTkxJQkAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxM ID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAK LStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURA Ci0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURf Q09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWls ZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBh YnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2Fj X2N0X0FSID0gQGFjX2N0X0FSQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9 IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNs dWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RA Ci0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3Vu dGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAot K2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0r YnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLSti dWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIg PSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJA Ci0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNf b2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBA Z3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0 X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBA aG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVk ZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAot K2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9 IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9 IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9w QAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAot K3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStz ZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3Ny Y2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlh cyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4 QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3Jj ZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0r cG9zdGdyZXNxbF90ZXN0X2hfc291cmNlcyA9IAotK3Bvc3RncmVzcWxfdGVzdF9jY19zb3VyY2Vz ID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3Rn cmVzcWwuY3BwCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK3Rlc3RfcG9z dGdyZXNxbF9TT1VSQ0VTID0gJChwb3N0Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcykKLSt0ZXN0X3Bv c3RncmVzcWxfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykKLSt0ZXN0X3Bvc3RncmVzcWxfTERB REQgPSAKLSt0ZXN0X3Bvc3RncmVzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2Nv cmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAotKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9saWJzb2NpX3Bvc3RncmVzcWwubGEgXAotKwkJJChQT1NUR1JFU1FMX0xE RkxBR1MpCi0rCi0rYWxsOiBhbGwtYW0KLSsKLSsuU1VGRklYRVM6Ci0rLlNVRkZJWEVTOiAuY3Bw IC5sbyAubyAub2JqCi0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxl LmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQo YW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQo YW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCAp IFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFr OyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0r CWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlJzsgXAotKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGly KSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9N YWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGlu IFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBl Y2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz OiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQot KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQot KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19h Y2xvY2FsX200X2RlcHMpOgotKwotK2NsZWFuLW5vaW5zdFBST0dSQU1TOgotKwlAbGlzdD0nJChu b2luc3RfUFJPR1JBTVMpJzsgdGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKLSsJZWNobyAi IHJtIC1mIiAkJGxpc3Q7IFwKLSsJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCi0rCXRlc3Qg LW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAwOyBcCi0rCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8g ZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKLSsJZWNobyAiIHJt IC1mIiAkJGxpc3Q7IFwKLSsJcm0gLWYgJCRsaXN0Ci0rdGVzdF9wb3N0Z3Jlc3FsJChFWEVFWFQp OiAkKHRlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTKSAkKHRlc3RfcG9zdGdyZXNxbF9ERVBFTkRFTkNJ RVMpIAotKwlAcm0gLWYgdGVzdF9wb3N0Z3Jlc3FsJChFWEVFWFQpCi0rCSQodGVzdF9wb3N0Z3Jl c3FsX0xJTkspICQodGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMpICQodGVzdF9wb3N0Z3Jlc3FsX0xE QUREKSAkKExJQlMpCi0rCi0rbW9zdGx5Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICouJChPQkpF WFQpCi0rCi0rZGlzdGNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLnRhYi5jCi0rCi0rQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3RfcG9zdGdyZXNx bC10ZXN0LXBvc3RncmVzcWwuUG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQq LlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBE SVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJ UikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0 b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQo Q1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAk QCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAk KERFUERJUikvJCouUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLSt0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0 Z3Jlc3FsLm86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVz dC1wb3N0Z3Jlc3FsLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9wb3N0Z3Jl c3FsLXRlc3QtcG9zdGdyZXNxbC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X3Bvc3RncmVz cWwtdGVzdC1wb3N0Z3Jlc3FsLlRwbyAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jl c3FsLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRl c3QtcG9zdGdyZXNxbC5UcG8gJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVz cWwuUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3Bw JyBvYmplY3Q9J3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubycgbGlidG9vbD1ubyBA QU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0r QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3Fs X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jl c3FsLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi0rCi0r dGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmo6ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmogLU1EIC1N UCAtTUYgJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvIC1jIC1v IHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAn OyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGly KS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdy ZXNxbC5jcHAnOyBmaWAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlRwbyAkKERFUERJUikvdGVzdF9wb3N0 Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0 L3Rlc3QtcG9zdGdyZXNxbC5jcHAnIG9iamVjdD0ndGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdy ZXNxbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9w b3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmogYGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IHRoZW4g JChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0 L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNw cCc7IGZpYAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xl YW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotKwotK0lEOiAkKEhFQURFUlMpICQo U09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFE RVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1 ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJ aGVyZT1gcHdkYDsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChU QUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlm IHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBm aTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0 eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVz KSBwcmludCBpOyB9OyB9J2A7IFwKLSsJc2hpZnQ7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19B UkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIg fHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAot KwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJH UykgXAotKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAotKwkgIGVsc2UgXAotKwkgICAgJChFVEFH UykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAg ICAkJHVuaXF1ZTsgXAotKwkgIGZpOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6ICAk KEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19G SUxFUykgJChMSVNQKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChU QUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlm IHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBm aTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0 eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVz KSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBc Ci0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1Nf QVJHUykgXAotKwkgICAgICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAk KHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2Rpcikg XAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsKLStkaXN0Y2xlYW4t dGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsK LStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rpciki IHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNo byAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxp c3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7 IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98 fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikv fDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBg ZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGly KS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0r CWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8 IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBp ZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8 IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikv JCRmaWxlIjsgdGhlbiBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBk ICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJ ICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7 IHRoZW4gXAotKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRp ciIgfHwgZXhpdCAxOyBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBk ICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJ ICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJ ICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBj cCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgZXhpdCAxOyBc Ci0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stYW0K LSthbGwtYW06IE1ha2VmaWxlICQoUFJPR1JBTVMpCi0raW5zdGFsbGRpcnM6Ci0raW5zdGFsbDog aW5zdGFsbC1hbQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCi0raW5zdGFsbC1kYXRh OiBpbnN0YWxsLWRhdGEtYW0KLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQotKwotK2luc3RhbGwt YW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGlu c3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCi0raW5zdGFs bC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFM TF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAn JChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9H PSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1n ZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xF QU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIk KHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0g LWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0 byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lh bCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMp IiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1hbQotKwot K2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JB TVMgXAotKwltb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCi0rCS1y bSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVh bi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10 YWdzCi0rCi0rZHZpOiBkdmktYW0KLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1hbQotKwot K2h0bWwtYW06Ci0rCi0raW5mbzogaW5mby1hbQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1k YXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3RhbGwtZHZp LWFtOgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRt bC1hbQotKwotK2luc3RhbGwtaHRtbC1hbToKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5m by1hbQotKwotK2luc3RhbGwtaW5mby1hbToKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxs LXBkZjogaW5zdGFsbC1wZGYtYW0KLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBz OiBpbnN0YWxsLXBzLWFtCi0rCi0raW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06 Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQotKwktcm0gLXJmIC4v JChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3Rj bGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5 Y2xlYW4tYW0KLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHlj bGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFtCi0r Ci0rcGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbToK LSsKLSsuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBDVEFHUyBH VEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwlj bGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCi0rCWRp c3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKLSsJ ZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8t YW0gXAotKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBp bnN0YWxsLWR2aSBcCi0rCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMt YW0gaW5zdGFsbC1odG1sIFwKLSsJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxs LWluZm8tYW0gaW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0 YWxsLXBzIGluc3RhbGwtcHMtYW0gXAotKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0 YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAotKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCi0rCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIFwKLSsJcGRmIHBkZi1hbSBwcyBwcy1h bSB0YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rI25vZGlz dF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHBvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMpCi0rCi0r IyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxs IHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVh c3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tawotLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5 OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyIEBACi0rcG9zdGdyZXNxbF90ZXN0 X2hfc291cmNlcyA9Ci0rcG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvbmZpZy5oLmluIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2NvbmZpZy5oLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb25maWcuaC5p bgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2NvbmZpZy5oLmluCTIwMTEtMDctMDMgMTg6NDQ6MjYuMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDE1OCBAQAotKy8qIHNvY2kvY29uZmlnLmguaW4uICBHZW5lcmF0ZWQgZnJv bSBjb25maWd1cmUuYWMgYnkgYXV0b2hlYWRlci4gICovCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBC b29zdCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUCi0rCi0rLyog ZGVmaW5lIGlmIHRoZSBCb29zdDo6QXNpbyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRl ZiBIQVZFX0JPT1NUX0FTSU8KLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpEYXRlX1RpbWUg bGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9EQVRFX1RJTUUKLSsK LSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpGSUxFU1lTVEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxl ICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfRklMRVNZU1RFTQotKwotKy8qIGRlZmluZSBpZiB0aGUg Qm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JP T1NUX0lPU1RSRUFNUwotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlz IGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX01QSQotKwotKy8qIGRlZmluZSBpZiB0 aGUgQm9vc3Q6Ok1waV9QeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFW RV9CT09TVF9NUElfUFlUSE9OCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6UFJPR1JBTV9P UFRJT05TIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfUFJPR1JB TV9PUFRJT05TCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBh dmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9SRUdFWAotKwotKy8qIGRlZmluZSBpZiB0 aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYg SEFWRV9CT09TVF9TRVJJQUxJWkFUSU9OCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6U2ln bmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX1NJR05BTFMK LSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpTWVNURU0gbGlicmFyeSBpcyBhdmFpbGFibGUg Ki8KLSsjdW5kZWYgSEFWRV9CT09TVF9TWVNURU0KLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0 OjpUSFJFQUQgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9USFJF QUQKLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpVbml0X3Rlc3RfZnJhbWV3b3JrIGxpYnJh cnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S SwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Y21hdGg+IGhlYWRlciBmaWxl LiAqLwotKyN1bmRlZiBIQVZFX0NNQVRICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIDxkZXF1ZT4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfREVRVUUKLSsKLSsvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRsZmNuLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1 bmRlZiBIQVZFX0RMRkNOX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZz dHJlYW0+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX0ZTVFJFQU0KLSsKLSsvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1 bmRlZiBIQVZFX0lOVFRZUEVTX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PGlvbWFuaXA+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX0lPTUFOSVAKLSsKLSsvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvc3RyZWFtPiBoZWFkZXIgZmlsZS4gKi8KLSsj dW5kZWYgSEFWRV9JT1NUUkVBTQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 bGltaXRzPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9MSU1JVFMKLSsKLSsvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpc3Q+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBI QVZFX0xJU1QKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hcD4gaGVhZGVy IGZpbGUuICovCi0rI3VuZGVmIEhBVkVfTUFQCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxtZW1vcnkuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfTUVNT1JZX0gK LSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB0aGUgT3JhY2xlIE9DSSBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSAqLwotKyN1bmRlZiBIQVZFX09SQUNMRQotKwotKy8qIERlZmluZSB0byAxIGlmIFBvc3RncmVT UUwgbGlicmFyaWVzIGFyZSBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9QT1NUR1JFU1FMCi0r Ci0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxxdWV1ZT4gaGVhZGVyIGZpbGUuICov Ci0rI3VuZGVmIEhBVkVfUVVFVUUKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PHNldD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU0VUCi0rCi0rLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIDxzc3RyZWFtPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFW RV9TU1RSRUFNCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRleGNlcHQ+ IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NUREVYQ0VQVAotKwotKy8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkaW50Lmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBI QVZFX1NURElOVF9ICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRsaWIu aD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1RETElCX0gKLSsKLSsvKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZz4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhB VkVfU1RSSU5HCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmdzLmg+ IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NUUklOR1NfSAotKwotKy8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5nLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBI QVZFX1NUUklOR19ICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3Rh dC5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TWVNfU1RBVF9ICi0rCi0rLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCi0r I3VuZGVmIEhBVkVfU1lTX1RZUEVTX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgPHVuaXN0ZC5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9VTklTVERfSAotKwot Ky8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dmVjdG9yPiBoZWFkZXIgZmlsZS4gKi8K LSsjdW5kZWYgSEFWRV9WRUNUT1IKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIHN1Yi1kaXJlY3Rvcnkg aW4gd2hpY2ggbGlidG9vbCBzdG9yZXMgdW5pbnN0YWxsZWQgbGlicmFyaWVzLgotKyAgICovCi0r I3VuZGVmIExUX09CSkRJUgotKwotKy8qIE5hbWUgb2YgcGFja2FnZSAqLwotKyN1bmRlZiBQQUNL QUdFCi0rCi0rLyogRGVmaW5lIHRvIHRoZSBhZGRyZXNzIHdoZXJlIGJ1ZyByZXBvcnRzIGZvciB0 aGlzIHBhY2thZ2Ugc2hvdWxkIGJlIHNlbnQuICovCi0rI3VuZGVmIFBBQ0tBR0VfQlVHUkVQT1JU Ci0rCi0rLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLwotKyN1 bmRlZiBQQUNLQUdFX05BTUUKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBhbmQgdmVy c2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfU1RSSU5HCi0rCi0rLyog RGVmaW5lIHRvIHRoZSBvbmUgc3ltYm9sIHNob3J0IG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLwot KyN1bmRlZiBQQUNLQUdFX1RBUk5BTUUKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIGhvbWUgcGFnZSBm b3IgdGhpcyBwYWNrYWdlLiAqLwotKyN1bmRlZiBQQUNLQUdFX1VSTAotKwotKy8qIERlZmluZSB0 byB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfVkVSU0lP TgotKwotKy8qIERlZmluZSBpZiB5b3Ugd2FudCBleGNlcHRpb25zIGhhbmRsaW5nICovCi0rI3Vu ZGVmIFNPQ0lfRVhDRVBUSU9OUwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBB TlNJIEMgaGVhZGVyIGZpbGVzLiAqLwotKyN1bmRlZiBTVERDX0hFQURFUlMKLSsKLSsvKiBEZWZp bmUgdG8gMSBpZiB5b3UgY2FuIHNhZmVseSBpbmNsdWRlIGJvdGggPHN5cy90aW1lLmg+IGFuZCA8 dGltZS5oPi4gKi8KLSsjdW5kZWYgVElNRV9XSVRIX1NZU19USU1FCi0rCi0rLyogVmVyc2lvbiBu dW1iZXIgb2YgcGFja2FnZSAqLwotKyN1bmRlZiBWRVJTSU9OCi1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Nv cmUvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUu YW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmFtCTIwMDktMDUtMDYgMDA6Mjg6MTAuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDI5IEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVk ZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJj ZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElS UyA9IC4gdGVzdAotKwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX3Jv dy5jcHAgLl9zb2NpLXNpbXBsZS5jcHAgLl9zb2NpLXNpbXBsZS5oIC5fdmFsdWVzLWV4Y2hhbmdl LmgKLSsKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkp Ci0rCi0rbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX2NvcmUubGEKLSsKLStsaWJzb2NpX2NvcmVf bGFfU09VUkNFUz0gJChjb3JlX2hfc291cmNlcykgJChjb3JlX2NjX3NvdXJjZXMpIAotK2xpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUyA9Ci0rbGlic29jaV9jb3JlX2xhX0xJQkFERCA9Ci0rbGlic29j aV9jb3JlX2xhX0xERkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVf TElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdF TkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9o X3NvdXJjZXMpCi0raWYgU09DSV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9kaXIgPSAk KGluY2x1ZGVkaXIpL3NvY2kvY29yZQotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNs dWRlZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLSsK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYwkyMDExLTA3LTAzIDE4OjU1OjA2LjM5Mjg3 NzE4NyArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYmFz aWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDc2ICswLDAgQEAK LS1DT01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1s b25nCi0tSU5DTFVERURJUlMgPSAKLS1PQkpTID0gIHNlc3Npb24ubyBzdGF0ZW1lbnQubyByb3cu byB2YWx1ZXMubyBcCi0tCWludG8tdHlwZS5vIHVzZS10eXBlLm8gXAotLQlibG9iLm8gcm93aWQu byBwcm9jZWR1cmUubyByZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubyByZWYtY291bnRlZC1zdGF0 ZW1lbnQubyBcCi0tCW9uY2UtdGVtcC10eXBlLm8gcHJlcGFyZS10ZW1wLXR5cGUubyBlcnJvci5v IHRyYW5zYWN0aW9uLm8gYmFja2VuZC1sb2FkZXIubyBcCi0tCWNvbm5lY3Rpb24tcG9vbC5vIHNv Y2ktc2ltcGxlLm8KLS0KLS0KLS1saWJzb2NpX2NvcmUuYSA6ICR7T0JKU30gCi0tCWFyIHJ2ICRA ICQ/Ci0tCXJtICoubwotLQotLXNoYXJlZCA6ICR7T0JKU30gCi0tCSR7Q09NUElMRVJ9IC1mUElD IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCSR7Q09NUElMRVJ9IC1zaGFyZWQg LW8gbGlic29jaV9jb3JlLnNvICR7T0JKU30gCi0tCXJtICoubwotLQotLXNlc3Npb24ubyA6IHNl c3Npb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 Ci0tCi0tc3RhdGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93Lm8gOiByb3cuY3BwCi0tCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmFsdWVzLm8gOiB2YWx1 ZXMuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0t Ci0taW50by10eXBlLm8gOiBpbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdXNlLXR5cGUubyA6IHVzZS10eXBlLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQkKLS1ibG9iLm8g OiBibG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQotLQotLWVycm9yLm8gOiBlcnJvci5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KLS0KLS1yb3dpZC5vIDogcm93aWQuY3BwCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcHJvY2VkdXJlLm8gOiBwcm9j ZWR1cmUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 Ci0tCi0tcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLm8gOiByZWYtY291bnRlZC1wcmVwYXJlLWlu Zm8uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0t Ci0tcmVmLWNvdW50ZWQtc3RhdGVtZW50Lm8gOiByZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCi0t CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tb25jZS10 ZW1wLXR5cGUubyA6IG9uY2UtdGVtcC10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXByZXBhcmUtdGVtcC10eXBlLm8gOiBwcmVwYXJl LXRlbXAtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURF RElSU30KLS0KLS10cmFuc2FjdGlvbi5vIDogdHJhbnNhY3Rpb24uY3BwCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tYmFja2VuZC1sb2FkZXIubyA6 IGJhY2tlbmQtbG9hZGVyLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQotLQotLWNvbm5lY3Rpb24tcG9vbC5vIDogY29ubmVjdGlvbi1wb29sLmNwcAot LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXNvY2kt c2ltcGxlLm8gOiBzb2NpLXNpbXBsZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mIGxpYnNvY2lfY29yZS5h IGxpYnNvY2lfY29yZS5zbwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9N YWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmluCi0tLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtl ZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw5 OTkgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBN YWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0 ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0r QFNFVF9NQUtFQAotKwotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRh ZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGli ZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHta U0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9 ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxs X3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExf SEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9y bV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5T VEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9T VF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQg PSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQocGtnaW5jbHVkZV9IRUFERVJTKSAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gXAotKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMu bWsgXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvY29y ZQotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9t NF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNs ZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xv Y2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQp Ci0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0 b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJ R19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlw PWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNh c2UgJCRwIGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQk c3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19z dHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFs bF9tYXggPSA0MAotK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1g ZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25v YmFzZV9zdHJpcCA9IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8 IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25v YmFzZV9zdHJpcF9zZXR1cCk7IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQk cCI7IGRvbmUgfCBcCi0rICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8g LiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZp bGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAg ICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAk JDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBF TkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jh c2VfbGlzdCA9IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtz L1xuLyAvZycgfCBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1f X2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKSIKLStMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfY29y ZV9sYV9ERVBFTkRFTkNJRVMgPQotK2FtX19vYmplY3RzXzEgPQotK2FtX19vYmplY3RzXzIgPSBs aWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtYmxv Yi5sbyBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIFwKLSsJbGlic29jaV9jb3Jl X2xhLWVycm9yLmxvIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX2Nv cmVfbGEtb25jZS10ZW1wLXR5cGUubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1w LXR5cGUubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIFwKLSsJbGlic29jaV9j b3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1y ZWYtY291bnRlZC1zdGF0ZW1lbnQubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcm93LmxvIGxpYnNv Y2lfY29yZV9sYS1yb3dpZC5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIGxpYnNv Y2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQu bG8gbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLXVz ZS10eXBlLmxvIGxpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8KLSthbV9saWJzb2NpX2NvcmVfbGFf T0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkgJChhbV9fb2JqZWN0c18yKQotK2xpYnNvY2lfY29y ZV9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX2NvcmVfbGFfT0JKRUNUUykKLStsaWJzb2NpX2Nv cmVfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0r CSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCi0rCSQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCi0rCSQobGlic29jaV9jb3JlX2xhX0xERkxBR1Mp ICQoTERGTEFHUykgLW8gJEAKLStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQo dG9wX2J1aWxkZGlyKS9zb2NpCi0rZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29u ZmlnL2RlcGNvbXAKLSthbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwotK2FtX19tdiA9IG12 IC1mCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAk KENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStDWFhMRCA9ICQoQ1hYKQot K0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhG TEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStDT01QSUxFID0gJChD QykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp IFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0xUQ09NUElMRSA9ICQo TElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0r CS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFH UykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NG TEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rU09V UkNFUyA9ICQobGlic29jaV9jb3JlX2xhX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJChsaWJz b2NpX2NvcmVfbGFfU09VUkNFUykKLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUg Y2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJl Y3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZl IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3Rh bGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1y ZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGlu c3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5z dGFsbC1yZWN1cnNpdmUKLStIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZl CVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStB TV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwK LSsJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdz IENUQUdTIFwKLSsJZGlzdGRpcgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElT VF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElT VF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0aXZpemUgPSBc Ci0rICBkaXIwPWBwd2RgOyBcCi0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7 IFwKLSsgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0ncyxeLiovXChb Xi9dKlwpJCQsXDEsJzsgXAotKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCi0rICB3 aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwg c2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsg dGhlbiBcCi0rICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKLSsgICAgICAg IGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAot KyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBc Ci0rICAgICAgZWxzZSBcCi0rICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUg IiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0 IjsgdGhlbiBcCi0rICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2Vk X3Jlc3QiYDsgXAotKyAgICAgICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7 IFwKLSsgICAgICAgIGZpOyBcCi0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAot KyAgICAgIGZpOyBcCi0rICAgIGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQg LWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRpcjIiCi0rcGtn aW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0r QU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVU T0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBB V0tACi0rQk9PU1RfQVNJT19MSUIgPSBAQk9PU1RfQVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdTID0g QEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9M SUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9P U1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBA Qk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJ X1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIg PSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElC QAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAot K0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9M SUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVB RF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NU X1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBA Q0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9 IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5J VF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9M SUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9O QAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERF UE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AK LStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStETExUT09MID0gQERMTFRPT0xA Ci0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9 IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQ ID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBH UkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRB QAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQg PSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RS SVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9 IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9 IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJ TkZPID0gQE1BS0VJTkZPQAotK01BTklGRVNUX1RPT0wgPSBATUFOSUZFU1RfVE9PTEAKLStNS0RJ Ul9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9D X0xJQiA9IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxf TElCUyA9IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStO TSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpF WFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQ QUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1VSTCA9 IEBQQUNLQUdFX1VSTEAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BB VEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05G SUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdT QAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZM QUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdS RVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rU0VEID0gQFNFREAKLStTRVRfTUFL RSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAot K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9BUiA9IEBhY19jdF9BUkAKLSthY19jdF9DQyA9IEBh Y19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNf Y3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19k b3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3Rh ciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRp ckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWls ZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRv ciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBk YXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9v a0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlk aXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4 ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFz ID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0 X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAK LStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3Rh bGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBA bGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxl ZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGly QAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJA Ci0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNm b3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStz YmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9 IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lz Y29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVm aXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAot K3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRk aXIpIC1JJCh0b3Bfc3JjZGlyKQotK2NvcmVfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuaCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9ibG9iLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv YmxvYi1leGNoYW5nZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0 LWdyZWdvcmlhbi1kYXRlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9v c3QtZnVzaW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3Qtb3B0 aW9uYWwuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC10dXBsZS5o IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmggXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXhjaGFuZ2UtdHJhaXRzLmggXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvaW50by5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2ludG8tdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2Ut dGVtcC10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10 ZW1wLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUu aCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJl LWluZm8uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1z dGF0ZW1lbnQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuaCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3ctZXhjaGFuZ2UuaCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Jvd2lkLWV4Y2hhbmdlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcm93c2V0LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vz c2lvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktYmFja2VuZC5o IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktY29uZmlnLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmggXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvc29jaS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3N0YXRlbWVudC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5z YWN0aW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJz aW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9u LXRyYWl0cy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtaG9sZGVy LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1wdHIuaCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS91c2UtdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3ZhbHVlcy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy1l eGNoYW5nZS5oCi0rCi0rY29yZV9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nv bm5lY3Rpb24tcG9vbC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJy b3IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50 LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zb2NpLXNpbXBsZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFu c2FjdGlvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUu Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKLSsKLStN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IC4gdGVzdAotKwot KyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX3Jvdy5jcHAgLl9zb2NpLXNp bXBsZS5jcHAgLl9zb2NpLXNpbXBsZS5oIC5fdmFsdWVzLWV4Y2hhbmdlLmgKLStFWFRSQV9ESVNU ID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rbGliX0xUTElCUkFSSUVT ID0gbGlic29jaV9jb3JlLmxhCi0rbGlic29jaV9jb3JlX2xhX1NPVVJDRVMgPSAkKGNvcmVfaF9z b3VyY2VzKSAkKGNvcmVfY2Nfc291cmNlcykgCi0rbGlic29jaV9jb3JlX2xhX0NYWEZMQUdTID0g Ci0rbGlic29jaV9jb3JlX2xhX0xJQkFERCA9IAotK2xpYnNvY2lfY29yZV9sYV9MREZMQUdTID0g XAotKwkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFN X09QVElPTlNfTElCKSBcCi0rCS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lP TikKLSsKLStwa2dpbmNsdWRlX0hFQURFUlMgPSAkKGNvcmVfaF9zb3VyY2VzKQotK0BTT0NJX0hF QURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rQFNP Q0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9z b2NpL2NvcmUKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rLlNVRkZJWEVT OiAuY3BwIC5sbyAubyAub2JqCi0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01h a2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2Vz Lm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNh c2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAg ICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNl IGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25l OyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kv Y29yZS9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQo QVVUT01BS0UpIC0tZ251IHNvY2kvY29yZS9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUK LStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcu c3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo OzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVM TCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBc Ci0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQo c3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklH X1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAg JChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2Fs X200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0raW5zdGFsbC1saWJMVExJ QlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0 IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCi0rCUBs aXN0PSckKGxpYl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBc Ci0rCWxpc3QyPTsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJHA7IHRo ZW4gXAotKwkgICAgbGlzdDI9IiQkbGlzdDIgJCRwIjsgXAotKwkgIGVsc2UgOjsgZmk7IFwKLSsJ ZG9uZTsgXAotKwl0ZXN0IC16ICIkJGxpc3QyIiB8fCB7IFwKLSsJICBlY2hvICIgJChMSUJUT09M KSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5T VEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICQkbGlzdDIgJyQoREVTVERJUikkKGxpYmRpcikn IjsgXAotKwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICIk KERFU1RESVIpJChsaWJkaXIpIjsgXAotKwl9Ci0rCi0rdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVT OgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsg dGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsgXAotKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwK LSsJICAkKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJ UikkKGxpYmRpcikvJCRmJyI7IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQobGliZGly KS8kJGYiOyBcCi0rCWRvbmUKLSsKLStjbGVhbi1saWJMVExJQlJBUklFUzoKLSsJLXRlc3QgLXog IiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCi0rCUBsaXN0 PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBkaXI9ImBl Y2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCi0rCSAgdGVzdCAiJCRkaXIiICE9 ICIkJHAiIHx8IGRpcj0uOyBcCi0rCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9u c1wiIjsgXAotKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKLSsJZG9uZQotK2xp YnNvY2lfY29yZS5sYTogJChsaWJzb2NpX2NvcmVfbGFfT0JKRUNUUykgJChsaWJzb2NpX2NvcmVf bGFfREVQRU5ERU5DSUVTKSAKLSsJJChsaWJzb2NpX2NvcmVfbGFfTElOSykgLXJwYXRoICQobGli ZGlyKSAkKGxpYnNvY2lfY29yZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV9sYV9MSUJBREQp ICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkK LSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJV RUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJh Y2tlbmQtbG9hZGVyLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlBsb0BhbV9fcXVvdGVA Ci0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWVycm9y LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4v JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3Jl X2xhLW9uY2UtdGVtcC10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNs dWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAt dHlwZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLlBsb0BhbV9fcXVvdGVACi0r QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uUGxvQGFtX19xdW90ZUAKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xh LXJlZi1jb3VudGVkLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93LlBsb0Bh bV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc2Vzc2lv bi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUuUGxvQGFtX19xdW90ZUAKLStA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9j b3JlX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVk ZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uUGxv QGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS12 YWx1ZXMuUGxvQGFtX19xdW90ZUAKLSsKLSsuY3BwLm86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8g JEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8g JChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo Q1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLSsuY3BwLm9iajoKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAt YyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1f X212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1E RVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykg JyQ8J2AKLSsKLSsuY3BwLmxvOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElM RSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQq LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2Jq ZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJ TEUpIC1jIC1vICRAICQ8Ci0rCi0rbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRl ci5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVy LlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tl bmQtbG9hZGVyLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLlBs bwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xh LWJhY2tlbmQtbG9hZGVyLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3Bw Ci0rCi0rbGlic29jaV9jb3JlX2xhLWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Js b2IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X2NvcmVfbGEtYmxvYi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJs b2IuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmxvYi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1ibG9iLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEt YmxvYi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9ibG9iLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG86 ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAKLStAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29y ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9u LXBvb2wubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9u LXBvb2wuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtY29ubmVjdGlvbi1wb29sLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rp b24tcG9vbC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCcgb2JqZWN0PSdsaWJz b2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlv bi1wb29sLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBv b2wuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25u ZWN0aW9uLXBvb2wuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLWVycm9yLmxvOiAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9lcnJvci5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLWVycm9yLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWVycm9yLlRwbyAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLWVycm9yLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAn IG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWVycm9yLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9j b3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtZXJyb3Iu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwCi0rCi0rbGlic29j aV9jb3JlX2xhLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBl LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9j b3JlX2xhLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUu VHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlBsbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9p bnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8nIGxpYnRv b2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfY29yZV9sYS1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2ludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2ludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG86 ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10 eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5 cGUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25j ZS10ZW1wLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUu UGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVf bGEtb25jZS10ZW1wLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5j cHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG86ICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxv IC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUu VHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtcHJlcGFyZS10ZW1wLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFy ZS10ZW1wLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1w cmVwYXJlLXRlbXAtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJl cGFyZS10ZW1wLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtcHJvY2Vk dXJlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJl LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLlRwbyAt YyAtbyBsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1f X212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5UcG8gJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1wcm9jZWR1cmUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAnIG9i amVjdD0nbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf Y29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXByb2Nl ZHVyZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNw cAotKwotK2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubG86ICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf Y29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yZWYtY291 bnRlZC1wcmVwYXJlLWluZm8ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYt Y291bnRlZC1wcmVwYXJlLWluZm8ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNv dW50ZWQtcHJlcGFyZS1pbmZvLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3Vu dGVkLXByZXBhcmUtaW5mby5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZv LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAt byBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVw YXJlLWluZm8uY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJl Zi1jb3VudGVkLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXJlZi1j b3VudGVkLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVm LWNvdW50ZWQtc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0 ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50 LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNv Y2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYt Y291bnRlZC1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jl Zi1jb3VudGVkLXN0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKLSsKLStsaWJzb2NpX2NvcmVf bGEtcm93LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcm93LmxvIC1NRCAt TVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93LlRwbyAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtcm93LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJv dy5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuUGxvCi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5j cHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJvdy5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf Y29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXJvdy5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcAotKwotK2xpYnNvY2lfY29y ZV9sYS1yb3dpZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcm93aWQu bG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5UcG8gLWMgLW8g bGlic29jaV9jb3JlX2xhLXJvd2lkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9yb3dpZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Jvd2lkLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1yb3dpZC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5Q bG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yb3dpZC5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMg LW8gbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yb3dpZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Jvd2lkLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc2Vz c2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXNlc3Npb24uVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5QbG8KLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvc2Vzc2lvbi5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8nIGxp YnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc2Vzc2lvbi5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG86ICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIC1NRCAt TVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUuVHBvIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvc29jaS1zaW1wbGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9f bXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUuVHBvICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNw cCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG8nIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9s YS1zb2NpLXNpbXBsZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1z aW1wbGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9z b2NpLXNpbXBsZS5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0 ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9z dGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1z dGF0ZW1lbnQuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9j b3JlX2xhLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcAotKwotK2xpYnNvY2lf Y29yZV9sYS10cmFuc2FjdGlvbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rp b24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X2NvcmVfbGEtdHJhbnNhY3Rpb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS10cmFuc2FjdGlvbi5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS10cmFuc2FjdGlvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5Q bG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS10 cmFuc2FjdGlvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcAotKwotK2xpYnNvY2lf Y29yZV9sYS11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3Bw Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVf bGEtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS11c2Ut dHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5UcG8gJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3Bw JyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXVz ZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNw cAotKwotK2xpYnNvY2lfY29yZV9sYS12YWx1ZXMubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3ZhbHVlcy5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfY29yZV9sYS12YWx1ZXMubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS12YWx1ZXMuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlRwbyAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwCi0rCi0rbW9zdGx5 Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0g LXJmIC5saWJzIF9saWJzCi0raW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzogJChwa2dpbmNsdWRl X0hFQURFUlMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVk aXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLSsJQGxpc3Q9 JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxp c3Q9OyBcCi0rCWZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRo ZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCi0rCSAgZWNobyAiJCRkJCRwIjsgXAot Kwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKLSsJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAot KwkgIGVjaG8gIiAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICckKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKSciOyBcCi0rCSAgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAiJChERVNURElSKSQo cGtnaW5jbHVkZWRpcikiIHx8IGV4aXQgJCQ/OyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtcGtn aW5jbHVkZUhFQURFUlM6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKHBrZ2lu Y2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAot KwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8IHNlZCAtZSAnc3xe LiovfHwnYDsgXAotKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKLSsJZWNobyAiICgg Y2QgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwK LSsJY2QgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAtZiAkJGZpbGVzCi0rCi0r IyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7 IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRo cm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2 YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZh cmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0r IyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3 aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQg dmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMp OgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdT OyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAg ICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJ ZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsg XAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBl Y2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207 IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkg ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZp OyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBm YWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwK LSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikg ZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vl bj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1j bGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJ UlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJl dj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2 IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9y IHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1 YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZh aWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0r CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3Qg IiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIg PSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3Rh Z3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChU QUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc Ci0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0r VEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5E RU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1g cHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYv bnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwK LSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1 ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRo ZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAg IHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJ ICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVU QUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5p cXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhl biBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFH U19BUkdTKSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAk KEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0r CSAgICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFH UzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVO Q0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENU QUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1f Q1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoK LSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFt X19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRo ZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1Mg R1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3Ry aXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0r CXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwq XS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9 YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1l ICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3Ry aXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0r CSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAn L1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11 YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAg aWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChz cmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBk aXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYg dGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0 ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7 OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRl c3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQk ZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0 ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7 OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRk aXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8k JGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBc Ci0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1Rf U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3Vi ZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAg ICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIp LyQkc3ViZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0 ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGly KSI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9 JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19k aXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1f X3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJ ICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAg ICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTog XAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBc Ci0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAot Kwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwt YW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKLStpbnN0YWxsZGlyczogaW5z dGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0rCWZvciBkaXIgaW4gIiQoREVT VERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKLSsJICB0 ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxs OiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2 ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5p bnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFN X01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxj aGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElO U1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAg ICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFs bAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xl YW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16 ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQ QVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMg Y29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQg ZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4i Ci0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJ TkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNs ZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCi0rCW1vc3Rs eWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYg Li8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBk aXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0r Ci0rZHZpOiBkdmktcmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJz aXZlCi0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06 Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0raW5z dGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwot K2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUwotKwotK2luc3RhbGwtaHRt bDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaHRtbC1hbToKLSsKLStpbnN0 YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm8tYW06Ci0r Ci0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQot KwotK2luc3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZl Ci0rCi0raW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5l ci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElS KQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0g bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJl Y3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNs ZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJz aXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1 bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVk ZUhFQURFUlMKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJ VkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlw IHRhZ3MtcmVjdXJzaXZlCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAk KFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hl Y2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFu LWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1j b21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFu LXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBp bnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3Rh bGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBp bnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5m by1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKLSsJ aW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxsLXBzIFwKLSsJ aW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0g XAotKwlpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFp bnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAot Kwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBw cy1hbSBcCi0rCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCi0r CXVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsK LStAU0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtl IHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1p dCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3NvdXJjZXMubWsgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvY29yZS9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9j b3JlL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzow NS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTggQEAKLStjb3JlX2hfc291cmNlcyA9IFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Jsb2ItZXhjaGFuZ2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9ib29zdC1ncmVnb3JpYW4tZGF0ZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL2Jvb3N0LWZ1c2lvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Jvb3N0LW9wdGlvbmFsLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvYm9vc3QtdHVwbGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25u ZWN0aW9uLXBvb2wuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5o IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2V4Y2hhbmdlLXRyYWl0cy5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8uaCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcHJvY2VkdXJlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVm LWNvdW50ZWQtcHJlcGFyZS1pbmZvLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcm93LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LWV4Y2hh bmdlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuaCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC1leGNoYW5nZS5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd3NldC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Nlc3Npb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9zb2NpLWJhY2tlbmQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2Np LWNvbmZpZy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktcGxhdGZv cm0uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2kuaCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS90cmFuc2FjdGlvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3R5cGUtY29udmVyc2lvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3R5cGUtY29udmVyc2lvbi10cmFpdHMuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS90eXBlLWhvbGRlci5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5 cGUtcHRyLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuaCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS92YWx1ZXMtZXhjaGFuZ2UuaAotK2NvcmVfY2Nfc291cmNlcyA9IFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Vycm9yLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9p bnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVt cC10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRl bXAtdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJl LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVw YXJlLWluZm8uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3Vu dGVkLXN0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93 LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3VzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1 ZXMuY3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZp bGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtCi0tLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3Jl L3Rlc3QvTWFrZWZpbGUuYW0JMjAwOS0wNS0wNiAwMDoyOTowNi4wMDAwMDAwMDAgKzAyMDAKLUBA IC0wLDAgKzEsMjYgQEAKLSsjIyBjb3JlIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uCi0raW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwot K01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkgPQotKwotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NP Q0lfQ09NUEFUSUJJTElUWSkKLSsKLStub2luc3RfTFRMSUJSQVJJRVM9IGxpYnNvY2lfY29yZV90 ZXN0LmxhCi0rCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfU09VUkNFUz0gJChjb3JlX3Rlc3RfaF9z b3VyY2VzKQotK2xpYnNvY2lfY29yZV90ZXN0X2xhX0NYWEZMQUdTID0KLStsaWJzb2NpX2NvcmVf dGVzdF9sYV9MSUJBREQgPQotKyNsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0gLXZlcnNp b24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotK2xpYnNvY2lfY29yZV90ZXN0X2xh X0xERkxBR1MgPQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291cmNl cykKLStpZiBTT0NJX0hFQURFUlNfQlVSSUVECi0rc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVk ZWRpcikvc29jaS9jb3JlL3Rlc3QKLStlbHNlCi0rc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVk ZWRpcikKLStlbmRpZgotK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi0rCi1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4gc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAu MF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFr ZWZpbGUuaW4JMjAxMS0wNy0wMyAxODo0NDoyOC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEs NTY3IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20g TWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAx OTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMg MjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLAotKyMgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0 dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwot K0BTRVRfTUFLRUAKLSsKLSsKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0 YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2xp YmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7 WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEg PSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFs bF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxM X0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lO U1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BP U1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0 ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHBrZ2luY2x1ZGVfSEVBREVSUykgJChzcmNkaXIp L01ha2VmaWxlLmFtIFwKLSsJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb3VyY2Vz Lm1rIFwKLSsJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBzb2NpL2Nv cmUvdGVzdAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNs b2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUu bTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFt X19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9D QUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVS ID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQot K0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rTFRMSUJSQVJJRVMgPSAkKG5vaW5zdF9MVExJ QlJBUklFUykKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9ERVBFTkRFTkNJRVMgPQotK2FtX19vYmpl Y3RzXzEgPQotK2FtX2xpYnNvY2lfY29yZV90ZXN0X2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3Rz XzEpCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9jb3JlX3Rl c3RfbGFfT0JKRUNUUykKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSU5LID0gJChMSUJUT09MKSAt LXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxp bmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIFwKLSsJJChsaWJzb2NpX2NvcmVfdGVz dF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBh bV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK0NPTVBJTEUgPSAkKENDKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAotKwkkKENQ UEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rTFRDT01QSUxFID0gJChMSUJUT09MKSAt LXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNv bXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJ JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0NDTEQg PSAkKENDKQotK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENG TEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0gJChs aWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQobGlic29jaV9j b3JlX3Rlc3RfbGFfU09VUkNFUykKLSthbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9 YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKLSthbV9fdnBhdGhfYWRqID0gY2Fz ZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRz cmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQkcDs7IFwKLSsgIGVzYWM7Ci0rYW1fX3N0 cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOwotK2FtX19pbnN0YWxs X21heCA9IDQwCi0rYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKLSsgIHNyY2RpcnN0cmlwPWBl Y2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKLSthbV9fbm9i YXNlX3N0cmlwID0gXAotKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwg c2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCi0rYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9i YXNlX3N0cmlwX3NldHVwKTsgXAotKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRw IjsgZG9uZSB8IFwKLSsgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAu Ki8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCi0rICAkKEFXSykgJ0JFR0lOIHsgZmls ZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCi0rICAg IGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKLSsgICAgICB7IHByaW50ICQk MiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCi0rICAgIEVO RCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKLSthbV9fYmFz ZV9saXN0ID0gXAotKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3Mv XG4vIC9nJyB8IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKLSthbV9f aW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rSEVBREVSUyA9ICQo cGtnaW5jbHVkZV9IRUFERVJTKQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElT VEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhU UkFfRElTVCkKLStwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotK0FDTE9DQUwg PSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBB VVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01B S0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9BU0lPX0xJQiA9IEBCT09TVF9BU0lPX0xJQkAKLStC T09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9P U1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lT VEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0r Qk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJ QkAKLStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKLStCT09T VF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9P U1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBC T09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFM SVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0r Qk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVBRF9MSUIg PSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBC T09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZF UlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9O X0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBD RkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NG TEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJ R0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBD UFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERF UE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cg PSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RMTFRP T0wgPSBARExMVE9PTEAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBC SU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBF Q0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBG R1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lP TkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9 IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJ TlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0g PSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFH U0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElC VE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJ Qk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUFOSUZFU1RfVE9PTCA9IEBNQU5JRkVT VF9UT09MQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZM QUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxf RElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNR TF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBP QkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNA Ci0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9M REZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JB Q0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAK LStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdS RVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9 IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAot K1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdF X1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQ RVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9T VEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQ T1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVS U0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStTRUQgPSBA U0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVB REVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9 IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0g QFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0g QGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fi c190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0FSID0gQGFjX2N0X0FSQAot K2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3Rf RFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAot K2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19x dW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLSti aW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxk X2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NA Ci0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAK LStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlm Zl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5 Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhl Y19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0 QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLSto b3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRp ciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGlu Zm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29r QAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2Fs ZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK21h bmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBA b2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0r cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGly ID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3No YXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lz Y29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0r dG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0 b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0g LUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rY29yZV90ZXN0X2hfc291cmNlcyA9 ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLStjb3JlX3Rlc3Rf Y2Nfc291cmNlcyA9IAotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStFWFRS QV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAKLStFWFRSQV9ESVNUID0gJChFWFRSQV9E SVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rbm9pbnN0X0xUTElCUkFSSUVTID0gbGlic29j aV9jb3JlX3Rlc3QubGEKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTID0gJChjb3JlX3Rl c3RfaF9zb3VyY2VzKQotK2xpYnNvY2lfY29yZV90ZXN0X2xhX0NYWEZMQUdTID0gCi0rbGlic29j aV9jb3JlX3Rlc3RfbGFfTElCQUREID0gCi0rI2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1Mg PSAtdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCi0rbGlic29jaV9jb3Jl X3Rlc3RfbGFfTERGTEFHUyA9IAotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hf c291cmNlcykKLStAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0g JChpbmNsdWRlZGlyKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2Rp ciA9ICQoaW5jbHVkZWRpcikvc29jaS9jb3JlL3Rlc3QKLSthbGw6IGFsbC1hbQotKwotKy5TVUZG SVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29u ZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29u ZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkg ICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9 OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAn IGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9jb3JlL3Rlc3QvTWFr ZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtF KSAtLWdudSBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStN YWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3Rh dHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsg XAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkg Li9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0r CSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3Vi ZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NU QVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChh bV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200 X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rY2xlYW4tbm9pbnN0TFRM SUJSQVJJRVM6Ci0rCS10ZXN0IC16ICIkKG5vaW5zdF9MVExJQlJBUklFUykiIHx8IHJtIC1mICQo bm9pbnN0X0xUTElCUkFSSUVTKQotKwlAbGlzdD0nJChub2luc3RfTFRMSUJSQVJJRVMpJzsgZm9y IHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10q JCR8fCdgIjsgXAotKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVj aG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGly fS9zb19sb2NhdGlvbnMiOyBcCi0rCWRvbmUKLStsaWJzb2NpX2NvcmVfdGVzdC5sYTogJChsaWJz b2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0RFUEVOREVO Q0lFUykgCi0rCSQobGlic29jaV9jb3JlX3Rlc3RfbGFfTElOSykgICQobGlic29jaV9jb3JlX3Rl c3RfbGFfT0JKRUNUUykgJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQpICQoTElCUykKLSsK LSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xl YW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgot Kwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMK LStpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykKLSsJQCQo Tk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJf UCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hF QURFUlMpJzsgdGVzdCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAg aW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIk KHNyY2RpcikvIjsgZmk7IFwKLSsJICBlY2hvICIkJGQkJHAiOyBcCi0rCWRvbmUgfCAkKGFtX19i YXNlX2xpc3QpIHwgXAotKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCi0rCSAgZWNobyAiICQoSU5T VEFMTF9IRUFERVIpICQkZmlsZXMgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyI7IFwKLSsJ ICAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIg fHwgZXhpdCAkJD87IFwKLSsJZG9uZQotKwotK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoK LSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7 IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCi0rCWZpbGVzPWBmb3IgcCBp biAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCi0rCXRl c3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQgMDsgXAotKwllY2hvICIgKCBjZCAnJChERVNURElSKSQo cGtnaW5jbHVkZWRpciknICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAotKwljZCAiJChERVNURElS KSQocGtnaW5jbHVkZWRpcikiICYmIHJtIC1mICQkZmlsZXMKLSsKLStJRDogJChIRUFERVJTKSAk KFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVB REVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlx dWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdT X0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXNldCB4OyBcCi0r CWhlcmU9YHB3ZGA7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQo VEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBp ZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsg Zmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1w dHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxl cykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNoaWZ0OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1Nf QVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUi IHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwK LSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FS R1MpIFwKLSsJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKLSsJICBlbHNlIFwKLSsJICAgICQoRVRB R1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAg ICAgJCR1bmlxdWU7IFwKLSsJICBmaTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiAg JChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1Nf RklMRVMpICQoTElTUCkKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQo VEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBp ZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsg Zmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1w dHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxl cykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIg XAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdT X0FSR1MpIFwKLSsJICAgICAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkg JCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIp IFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCi0rCi0rZGlzdGNsZWFu LXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0r Ci0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIp IiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVj aG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwls aXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0 OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAv fHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIp L3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkg YGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRp cikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAot Kwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8 fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAg aWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIg fCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIp LyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUg ZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0r CSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIp OyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRk aXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUg ZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0r CSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0r CSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwg Y3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsg XAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFt Ci0rYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMpCi0raW5zdGFsbGRp cnM6Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIjsgZG8gXAotKwkg IHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKLSsJZG9uZQotK2luc3Rh bGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwt ZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0 YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2lu c3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0i JChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3Qg LXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQ UFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xl YW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklH X0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4g PSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8 IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4t Z2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5l cnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNw ZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tYW0K LSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExU TElCUkFSSUVTIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1h bQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1j b21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2 aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raHRtbC1hbToKLSsKLStp bmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwt cGtnaW5jbHVkZUhFQURFUlMKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KLSsKLStp bnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBp bnN0YWxsLWh0bWwtYW0KLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBp bnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0r Ci0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0r aW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFs bGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJ LXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50 YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwot K21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMg XAotKwltb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0r Ci0rcHM6IHBzLWFtCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtcGtn aW5jbHVkZUhFQURFUlMKLSsKLSsuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0r LlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFu LWdlbmVyaWMgXAotKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIGN0YWdz IGRpc3RjbGVhbiBcCi0rCWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3Rj bGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwg aHRtbC1hbSBpbmZvIGluZm8tYW0gXAotKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRh IGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCi0rCWluc3RhbGwtZHZpLWFtIGluc3RhbGwt ZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKLSsJaW5zdGFsbC1odG1sLWFtIGlu c3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBkZiBp bnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIFwKLSsJaW5zdGFsbC1wcyBp bnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKLSsJaW5zdGFsbGNoZWNr LWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdl bmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCi0rCW1vc3RseWNsZWFuLWdl bmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJdGFncyB1 bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK0BT RVRfTUFLRUAKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8g bm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChm b3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9jb3JlL3Rlc3Qvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCTIw MDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIgQEAKLStjb3Jl X3Rlc3RfaF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVz dHMuaAotK2NvcmVfdGVzdF9jY19zb3VyY2VzID0KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCi0t LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFt CTIwMDktMDQtMTYgMTk6Mzc6MDcuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDkgQEAKLStp bmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rIyMgU291cmNlIGRpcmVj dG9yeQotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJT ID0gY29yZSBiYWNrZW5kcwotKwotK0VYVFJBX0RJU1QgPQotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUu aW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZp bGUuaW4JMjAxMS0wNy0wMyAxODo0NDoyNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNjM4 IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFr ZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0 LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAw MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLAotKyMgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlm aWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVk IGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BT RVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBB Q0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rcGtnbGli ZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIp L0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQ QVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0 NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1ND UklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRB KQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFM TCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5T VEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxk X3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04g PSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNk aXIpL2NvbmZpZy5oLmluICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0g c29jaQotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2Nh bF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29y YWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQg JCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19h Y2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxf TTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0g Y29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxF UyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFs bC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vy c2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1k dmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVj dXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUg aW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2st cmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVj dXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1v c3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vy c2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0g JChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAotKwkkKFJFQ1VSU0lWRV9DTEVBTl9U QVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAotKwlkaXN0ZGlyCi0r RVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMp Ci0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1Mp ICQoRVhUUkFfRElTVCkKLSthbV9fcmVsYXRpdml6ZSA9IFwKLSsgIGRpcjA9YHB3ZGA7IFwKLSsg IHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAotKyAgc2VkX3Jlc3Q9J3MsXlte L10qLyosLCc7IFwKLSsgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCi0rICBz ZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKLSsgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7 IGRvIFwKLSsgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7 IFwKLSsgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKLSsgICAgICBpZiB0ZXN0 ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAotKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8 IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCi0rICAgICAgICBkaXIwPWBlY2hvICIk JGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKLSsgICAgICBlbHNlIFwKLSsgICAg ICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAg ICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKLSsgICAgICAgICAg ZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICAgICAgICBl bHNlIFwKLSsgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAotKyAgICAgICAgZmk7IFwKLSsg ICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCi0rICAgICAgZmk7IFwKLSsgICAgZmk7 IFwKLSsgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0r ICBkb25lOyBcCi0rICByZWxkaXI9IiQkZGlyMiIKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1U QVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hF QURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tA Ci0rQk9PU1RfQVNJT19MSUIgPSBAQk9PU1RfQVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdTID0gQEJP T1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJA Ci0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1Rf SU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9P U1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZ VEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBA Qk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAot K0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JP T1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIg PSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9M SUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZS QU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NA Ci0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBD UFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9D RkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJT ID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAot K0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1P REVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStE RUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStETExUT09MID0gQERMTFRPT0xACi0r RFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBF Q0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0g QEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19M SUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQ QAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAot K0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBA SU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBf UFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBM SUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBM SVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZP ID0gQE1BS0VJTkZPQAotK01BTklGRVNUX1RPT0wgPSBATUFOSUZFU1RfVE9PTEAKLStNS0RJUl9Q ID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJ QiA9IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTElC UyA9IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9 IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQg PSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZM QUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVf T0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAK LStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNL QUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0Vf TkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdA Ci0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1VSTCA9IEBQ QUNLQUdFX1VSTEAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhf U0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcg PSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAot K1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdT ID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNR TF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9 IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01Z U1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FE X0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19i dWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fi c190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBh YnNfdG9wX3NyY2RpckAKLSthY19jdF9BUiA9IEBhY19jdF9BUkAKLSthY19jdF9DQyA9IEBhY19j dF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3Rf RFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3Qg PSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9 IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAK LStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9j cHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9 IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRh ZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AK LStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIg PSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNf cHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0g QGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29z QAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStp bmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxf c2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGli ZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGly QAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAot K21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0r cGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3Jt X25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmlu ZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBz aGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29u ZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXgg PSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3Rv cF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIp IC1JJCh0b3Bfc3JjZGlyKQotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStT VUJESVJTID0gY29yZSBiYWNrZW5kcwotK0VYVFJBX0RJU1QgPSAKLSthbGw6IGNvbmZpZy5oCi0r CSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0r JChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAk PzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQk ZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRo ZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAg ZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01B S0UpIC0tZ251IHNvY2kvTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYm IFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtl ZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2Nv bmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0r CSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJl KSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSsk KHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChD T05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoCi0rJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKLSsKLStjb25maWcu aDogc3RhbXAtaDEKLSsJQGlmIHRlc3QgISAtZiAkQDsgdGhlbiBcCi0rCSAgcm0gLWYgc3RhbXAt aDE7IFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBzdGFtcC1oMTsgXAotKwllbHNlIDo7 IGZpCi0rCi0rc3RhbXAtaDE6ICQoc3JjZGlyKS9jb25maWcuaC5pbiAkKHRvcF9idWlsZGRpcikv Y29uZmlnLnN0YXR1cwotKwlAcm0gLWYgc3RhbXAtaDEKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyBzb2NpL2NvbmZpZy5oCi0rJChzcmNkaXIpL2NvbmZp Zy5oLmluOiAgJChhbV9fY29uZmlndXJlX2RlcHMpIAotKwkoJChhbV9fY2QpICQodG9wX3NyY2Rp cikgJiYgJChBVVRPSEVBREVSKSkKLSsJcm0gLWYgc3RhbXAtaDEKLSsJdG91Y2ggJEAKLSsKLStk aXN0Y2xlYW4taGRyOgotKwktcm0gLWYgY29uZmlnLmggc3RhbXAtaDEKLSsKLSttb3N0bHljbGVh bi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYg LmxpYnMgX2xpYnMKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1v c3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2Un IHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2 YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywK LSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBg Y29uZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRv IGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwg cGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChS RUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBm IGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAt LVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7 IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQg cy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBc Ci0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRz dWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8 fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0g Im5vIjsgdGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8 fCBleGl0IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAk JE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSop OzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlk b25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFu LSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkg ICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7 IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25l OyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vy c2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5n ICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsg dGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAot KwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19j ZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwK LSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0 YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNp dmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkg IHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09V UkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQot K3RhZ3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNF UykgY29uZmlnLmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAk KExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRh Z3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVk ZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBc Ci0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlm aTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1m ICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRpb249 JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSck KFNPVVJDRVMpICQoSEVBREVSUykgY29uZmlnLmguaW4gJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9u ZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0r CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlx dWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRl bXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAg ICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxB R1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBc Ci0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZl ICQoSEVBREVSUykgJChTT1VSQ0VTKSBjb25maWcuaC5pbiAkKFRBR1NfREVQRU5ERU5DSUVTKSBc Ci0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp IGNvbmZpZy5oLmluICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBp biAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVs c2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7 IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9u ZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAi JChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAk KEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdW5pcXVlCi0rCi0rR1RB R1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYg JChhbV9fY2QpICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykg IiQkaGVyZSIKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JU QUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2Rp cnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsg XAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14k JFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2Zp bGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNl ZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2Rp cnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4g XAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBz ZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29y dCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAot KwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBk PSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkg ICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAg IGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCi0rCSAgICAgIGZpbmQgIiQo ZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7 fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAm JiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtZnBSICQoc3JjZGly KS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgICAgIGZpbmQgIiQo ZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7 fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGly KSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgIiQoZGlzdGRp cikvJCRmaWxlIiBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmls ZSIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChE SVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8k JHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAot KwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0 ZGlyKS8kJHN1YmRpciI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdf ZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlz dGRpcikiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X3RvcF9kaXN0 ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRu ZXdfZGlzdGRpciIgXFwiOyBcCi0rCSAgICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06 IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBc Ci0rCSAgICAoJChhbV9fY2QpICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAot KwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRp cj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJCWFtX19za2lwX21vZGVfZml4 PTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7 IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0r YWxsLWFtOiBNYWtlZmlsZSBjb25maWcuaAotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1 cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2lu c3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFs bC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVj LWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vy c2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExf UFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9H UkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0r CSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1f RU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6 Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXog IiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0r CS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9G SUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWlu ZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3Ig bWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSBy ZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlO RVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjog Y2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9v bCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwkt cm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmlj IGRpc3RjbGVhbi1oZHIgZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsK LStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStodG1sLWFtOgotKwotK2lu Zm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0r Ci0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFt OgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxs LWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgot KwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1h bToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMt YW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWlu ZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4t YW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVh bjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFu LWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwot K3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxs LWFtOgotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9U QVJHRVRTKSBhbGwgXAotKwljdGFncy1yZWN1cnNpdmUgaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlw IHRhZ3MtcmVjdXJzaXZlCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAk KFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hl Y2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3RhZ3Mt cmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1oZHIg ZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgXAotKwlkdmktYW0g aHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxs LWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5z dGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwK LSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBc Ci0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlw IFwKLSsJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGly cy1hbSBcCi0rCW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuIFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBw ZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3Rh bGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9m IEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5 c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBP UlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS1jb25maWcuaW4gc29jaS0zLjAu MF90cmVwMzAwL3NvY2ktY29uZmlnLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS1jb25m aWcuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS1jb25maWcuaW4JMjAwOS0wNC0xNiAxOTozNzoxMC4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsNzYgQEAKLSsjIS9iaW4vc2gKLSsKLStwcmVmaXg9QHByZWZpeEAKLStl eGVjX3ByZWZpeD0ke3ByZWZpeH0KLStsaWJkaXI9QGxpYmRpckAKLStpbmNsdWRlZGlyPUBpbmNs dWRlZGlyQAotKwotK3VzYWdlKCkKLSt7Ci0rICBjYXQgPDxFT0YKLStVc2FnZTogQFBBQ0tBR0VA LWNvbmZpZyBbT1BUSU9OXQotKwotK0tub3duIHZhbHVlcyBmb3IgT1BUSU9OIGFyZToKLSsKLSsg IC0tcHJlZml4ICAgICAgICBwcmludCBAUEFDS0FHRV9OQU1FQCBpbnN0YWxsYXRpb24gcHJlZml4 Ci0rICAtLWxpYnMgICAgICAgICAgcHJpbnQgbGlicmFyeSBsaW5raW5nIGluZm9ybWF0aW9uCi0r ICAtLWNmbGFncyAgICAgICAgcHJpbnQgcHJlLXByb2Nlc3NvciBhbmQgY29tcGlsZXIgZmxhZ3MK LSsgIC0taGVscCAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAotKyAgLS12ZXJz aW9uICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uCi0rRU9GCi0rICBleGl0ICQxCi0r fQotKwotK2lmIHRlc3QgJCMgLWVxIDA7IHRoZW4KLSsgIHVzYWdlIDEKLStmaQotKwotK2NmbGFn cz1mYWxzZQotK2xpYnM9ZmFsc2UKLSsKLSt3aGlsZSB0ZXN0ICQjIC1ndCAwOyBkbwotKyAgY2Fz ZSAiJDEiIGluCi0rICAtKj0qKSBvcHRhcmc9YGVjaG8gIiQxIiB8IHNlZCAncy9bLV9hLXpBLVow LTldKj0vLydgIDs7Ci0rICAqKSBvcHRhcmc9IDs7Ci0rICBlc2FjCi0rCi0rICBjYXNlICQxIGlu Ci0rICAgIC0tcHJlZml4PSopCi0rICAgICAgcHJlZml4PSRvcHRhcmcKLSsgICAgICA7OwotKwot KyAgICAtLXByZWZpeCkKLSsgICAgICBlY2hvICRwcmVmaXgKLSsgICAgICA7OwotKwotKyAgICAt LXZlcnNpb24pCi0rICAgICAgZWNobyBAVkVSU0lPTkAKLSsgICAgICA7OwotKwotKyAgICAtLWhl bHApCi0rICAgICAgdXNhZ2UgMAotKyAgICAgIDs7Ci0rCi0rICAgIC0tY2ZsYWdzKQotKyAgICAg IGlmIFsgIiR7cHJlZml4fSIgIT0gIi91c3IiIF07IHRoZW4KLSsgICAgICAgIGVjaG8gLUkke2lu Y2x1ZGVkaXJ9Ci0rICAgICAgZWxzZQotKyAgICAgICAgZWNobwotKyAgICAgIGZpCi0rICAgICAg OzsKLSsKLSsgICAgLS1saWJzKQotKyAgICAgIGlmIFsgIiR7cHJlZml4fSIgIT0gIi91c3IiIF07 IHRoZW4KLSsgICAgICAgIGVjaG8gLUwke2xpYmRpcn0gLWxAUEFDS0FHRUAKLSsgICAgICBlbHNl Ci0rICAgICAgICBlY2hvIC1sQFBBQ0tBR0VACi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAg ICAqKQotKyAgICAgIHVzYWdlCi0rICAgICAgZXhpdCAxCi0rICAgICAgOzsKLSsgIGVzYWMKLSsg IHNoaWZ0Ci0rZG9uZQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kubTQgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLm00CTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kubTQJMjAwOS0wNS0wMiAyMzo1OToxMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTE4 IEBACi0rZG5sIEBzeW5vcHNpcyBBWF9TT0NJCi0rZG5sIAotK2RubCBUaGlzIG1hY3JvIHRyaWVz IHRvIGZpbmQgU29jaSBDIEFQSSBoZWFkZXIgYW5kIGxpYnJhcnkgbG9jYXRpb25zLgotK2RubAot K2RubCBXZSBkZWZpbmUgdGhlIGZvbGxvd2luZyBjb25maWd1cmUgc2NyaXB0IGZsYWdzOgotK2Ru bAotK2RubAktLXdpdGgtc29jaTogR2l2ZSBwcmVmaXggZm9yIGJvdGggbGlicmFyeSBhbmQgaGVh ZGVycywgYW5kIHRyeQotK2RubAkJICAgICB0byBndWVzcyBzdWJkaXJlY3RvcnkgbmFtZXMgZm9y IGVhY2guICAoZS5nLiBhZGQgL2xpYiBhbmQKLStkbmwJCSAgICAgL2luY2x1ZGUgb250byBnaXZl biBkaXIgbmFtZXMsIGFuZCBvdGhlciBjb21tb24gc2NoZW1lcy4pCi0rZG5sCi0rZG5sIEB2ZXJz aW9uIDEuMywgMjAwOS8wNS8wMgotK2RubCBAYXV0aG9yIERlbmlzIEFybmF1ZCA8ZGVuaXNfYXJu YXVkQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLStkbmwKLStkbmwgQHZlcnNpb24gMS4yLCAyMDA3 LzAyLzIwCi0rZG5sIEBhdXRob3IgV2FycmVuIFlvdW5nIDxzb2NpcHBAZXRyLXVzYS5jb20+Ci0r Ci0rQUNfREVGVU4oW0FYX1NPQ0ldLAotK1sKLSsjCi0rIyBTZXQgdXAgY29uZmlndXJlIHNjcmlw dCBtYWNyb3MKLSsjCi0rQUNfQVJHX1dJVEgoc29jaSwKLSsJWy0td2l0aC1zb2NpPTxwYXRoPiAg ICAgcm9vdCBkaXJlY3RvcnkgcGF0aCBvZiBTb2NpIGluc3RhbGxhdGlvbl0sCi0rCVtTT0NJX2xp Yl9jaGVjaz0iJHdpdGhfc29jaS9saWI2NC9zb2NpICR3aXRoX3NvY2kvbGliL3NvY2kgJHdpdGhf c29jaS9saWI2NCAkd2l0aF9zb2NpL2xpYiIKLSsJU09DSV9pbmNfY2hlY2s9IiR3aXRoX3NvY2kv aW5jbHVkZSAkd2l0aF9zb2NpL2luY2x1ZGUvc29jaSJdLAotKwlbU09DSV9saWJfY2hlY2s9Ii91 c3IvbGliNjQgL3Vzci9saWIgL3Vzci9saWI2NC9zb2NpIC91c3IvbGliL3NvY2kgL3Vzci9sb2Nh bC9saWI2NCAvdXNyL2xvY2FsL2xpYiAvb3B0L3NvY2kvbGliNjQgL29wdC9zb2NpL2xpYiAvdXNy L2xvY2FsL2xpYjY0L3NvY2kgL3Vzci9sb2NhbC9saWIvc29jaSAvdXNyL2xvY2FsL3NvY2kvbGli NjQgL3Vzci9sb2NhbC9zb2NpL2xpYiAvb3B0L3NvY2kvbGliNjQvc29jaSAvb3B0L3NvY2kvbGli L3NvY2kiCi0rCVNPQ0lfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9pbmNsdWRlL3NvY2kg L3Vzci9sb2NhbC9pbmNsdWRlIC9vcHQvc29jaS9pbmNsdWRlIC91c3IvbG9jYWwvaW5jbHVkZS9z b2NpIC91c3IvbG9jYWwvc29jaS9pbmNsdWRlIC91c3IvbG9jYWwvc29jaS9pbmNsdWRlL3NvY2kg L29wdC9zb2NpL2luY2x1ZGUvc29jaSJdKQotKwotKyMgU09DSSBsaWJyYXJ5Ci0rU09DSV9DT1JF X0xJQj1zb2NpX2NvcmUKLStTT0NJX01ZU1FMX0xJQj1zb2NpX215c3FsCi0rCi0rIwotKyMgTG9v ayBmb3IgU29jaSBDb3JlIEFQSSBsaWJyYXJ5Ci0rIwotK0FDX01TR19DSEVDS0lORyhbZm9yIFNv Y2kgbGlicmFyeSBkaXJlY3RvcnldKQotK1NPQ0lfbGliZGlyPQotK2ZvciBtIGluICRTT0NJX2xp Yl9jaGVjawotK2RvCi0rCWlmIHRlc3QgLWQgIiRtIiAmJiBcCi0rCQkodGVzdCAtZiAiJG0vbGli JFNPQ0lfQ09SRV9MSUIuc28iIHx8IHRlc3QgLWYgIiRtL2xpYiRTT0NJX0NPUkVfTElCLmEiKQot Kwl0aGVuCi0rCQlTT0NJX2xpYmRpcj0kbQotKwkJYnJlYWsKLSsJZmkKLStkb25lCi0rCi0raWYg dGVzdCAteiAiJFNPQ0lfbGliZGlyIgotK3RoZW4KLSsJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmlu ZCAkU09DSV9DT1JFX0xJQiBsaWJyYXJ5IGluICckU09DSV9saWJfY2hlY2snXSkKLStmaQotKwot K2Nhc2UgIiRTT0NJX2xpYmRpciIgaW4KLSsJLyogKSA7OwotKwkqICkgIEFDX01TR19FUlJPUihb VGhlIFNvY2kgbGlicmFyeSBkaXJlY3RvcnkgKCRTT0NJX2xpYmRpcikgbXVzdCBiZSBhbiBhYnNv bHV0ZSBwYXRoLl0pIDs7Ci0rZXNhYwotKwotK0FDX01TR19SRVNVTFQoWyRTT0NJX2xpYmRpcl0p Ci0rCi0rY2FzZSAiJFNPQ0lfbGliZGlyIiBpbgotKyAgL3Vzci9saWI2NCkgOzsKLSsgIC91c3Iv bGliKSA7OwotKyAgKikgU09DSV9MSUJTPSItTCR7U09DSV9saWJkaXJ9IiA7OwotK2VzYWMKLStM REZMQUdTPSIkTERGTEFHUyAke1NPQ0lfTElCU30iCi0rCi0rCi0rIwotKyMgTG9vayBmb3IgU29j aSBDb3JlIEFQSSBoZWFkZXJzCi0rIwotK0FDX01TR19DSEVDS0lORyhbZm9yIFNvY2kgaW5jbHVk ZSBkaXJlY3RvcnldKQotK1NPQ0lfaW5jZGlyPQotK2ZvciBtIGluICRTT0NJX2luY19jaGVjawot K2RvCi0rCWlmIHRlc3QgLWQgIiRtIiAmJiB0ZXN0IC1mICIkbS9zb2NpL2NvcmUvc29jaS5oIgot Kwl0aGVuCi0rCQlTT0NJX2luY2Rpcj0kbQotKwkJYnJlYWsKLSsJZmkKLStkb25lCi0rCi0raWYg dGVzdCAteiAiJFNPQ0lfaW5jZGlyIgotK3RoZW4KLSsJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmlu ZCB0aGUgU29jaSBpbmNsdWRlIGRpciBpbiAnJFNPQ0lfaW5jX2NoZWNrJ10pCi0rZmkKLSsKLStj YXNlICIkU09DSV9pbmNkaXIiIGluCi0rCS8qICkgOzsKLSsJKiApICBBQ19NU0dfRVJST1IoW1Ro ZSBTb2NpIGluY2x1ZGUgZGlyZWN0b3J5ICgkU09DSV9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1 dGUgcGF0aC5dKSA7OwotK2VzYWMKLSsKLStBQ19NU0dfUkVTVUxUKFskU09DSV9pbmNkaXJdKQot KwotK2Nhc2UgIiRTT0NJX2luY2RpciIgaW4KLSsgIC91c3IvaW5jbHVkZSkgOzsKLSsgICopIFNP Q0lfQ0ZMQUdTPSItSSR7U09DSV9pbmNkaXJ9IiA7OwotK2VzYWMKLSsKLStTT0NJX0xJQlM9IiR7 U09DSV9MSUJTfSAtbCR7U09DSV9DT1JFX0xJQn0gLWwke1NPQ0lfTVlTUUxfTElCfSAtbGRsIgot KwotK0FDX1NVQlNUKFNPQ0lfQ0ZMQUdTKQotK0FDX1NVQlNUKFNPQ0lfTElCUykKLSsKLSsjIFRl c3QgbGlua2luZyB3aXRoIHNvY2kgKG5vdGUgdGhhdCBpdCBuZWVkcyBNeVNRTCBjbGllbnQgdG8g aGF2ZSBiZWVuIGRlZmluZWQKLSsjIGJlZm9yZSkKLStzYXZlX0xJQlM9IiRMSUJTIgotK2lmIHRl c3QgLXogIiRNWVNRTF9MSUJTIgotK3RoZW4KLSsJTVlTUUxfTElCUz0iLUwvdXNyL2xpYjY0L215 c3FsIC1ML3Vzci9saWIvbXlzcWwgLWxteXNxbGNsaWVudCIKLStmaQotK0xJQlM9IiRMSUJTICRN WVNRTF9MSUJTICRTT0NJX0xJQlMiCi0rQUNfQ0hFQ0tfTElCKCRTT0NJX0NPUkVfTElCLCBzb2Np X2JlZ2luLAotKwkgICAgIFtdLCAKLSsgICAgICAgICAgICAgW0FDX01TR19FUlJPUihbQ291bGQg bm90IGZpbmQgd29ya2luZyBTb2NpIGNsaWVudCBsaWJyYXJ5IV0pXQotKwkgICAgICkKLStMSUJT PSIkc2F2ZV9MSUJTIgotK0FDX1NVQlNUKFNPQ0lfQ09SRV9MSUIpCi0rXSkgZG5sIEFYX1NPQ0kK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLnBjLmluIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpLnBjLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS5wYy5pbgkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnBj LmluCTIwMDktMDQtMTYgMTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDExIEBA Ci0rcHJlZml4PUBwcmVmaXhACi0rZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QAotK2xpYmRpcj1A bGliZGlyQAotK2luY2x1ZGVkaXI9QGluY2x1ZGVkaXJACi0rCi0rTmFtZTogQFBBQ0tBR0VfTkFN RUAKLStEZXNjcmlwdGlvbjogVGhlIGRhdGFiYXNlIGFjY2VzcyBsaWJyYXJ5IGZvciBDKysgcHJv Z3JhbW1lcnMKLStWZXJzaW9uOiBAUEFDS0FHRV9WRVJTSU9OQAotK1VSTDogaHR0cDovL0BQQUNL QUdFQC5zb3VyY2Vmb3JnZS5uZXQKLStMaWJzOiAtTCR7bGliZGlyfSAtbEBQQUNLQUdFQF9jb3Jl IEBMREZMQUdTQCBATElCU0AKLStDZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfQo=