1 line
9.8 KiB
Markdown
1 line
9.8 KiB
Markdown
IyBTdHJhdGVnaWMgRGlyZWN0aW9uCgojIyBFeGVjdXRpdmUgU3VtbWFyeQoKKipNaXNzaW9uKio6IEJyaWRnZSB0aGUgT1QvSVQgZ2FwIGZvciBzbWFsbC10by1taWQgbWFudWZhY3R1cmVycyB0aHJvdWdoIGVkZ2UtZmlyc3QgaW5kdXN0cmlhbCBJb1Qgc29sdXRpb25zLgoKKipWaXNpb24qKjogQmVjb21lIHRoZSB0cnVzdGVkIHBhcnRuZXIgZm9yIG1hbnVmYWN0dXJlcnMgd2hvIHdhbnQgbW9kZXJuIHZpc2liaWxpdHkgd2l0aG91dCBjbG91ZCB2ZW5kb3IgbG9jay1pbi4KCioqUG9zaXRpb25pbmcqKjogIlRoZSBPVC9JVCB0cmFuc2xhdG9yIGZvciBtYW51ZmFjdHVyZXJzIHdobyB2YWx1ZSBkYXRhIHNvdmVyZWlnbnR5IGFuZCBwcmVkaWN0YWJsZSBjb3N0cy4iCgojIyBNYXJrZXQgT3Bwb3J0dW5pdHkKCiMjIyBUaGUgUHJvYmxlbQoKLSAqKk9UL0lUIFNraWxscyBHYXAqKjogQ29udHJvbHMgZW5naW5lZXJzIGRvbid0IHVuZGVyc3RhbmQgY2xvdWQ7IGNsb3VkIGVuZ2luZWVycyBhcmUgdGVycmlmaWVkIG9mIFBMQ3MKLSAqKkVudGVycHJpc2UgU29sdXRpb25zIFRvbyBFeHBlbnNpdmUqKjogU2llbWVucywgUm9ja3dlbGwsIEdFIHNvbHV0aW9ucyBjb3N0ICQ1MGstNTAwaysKLSAqKkNsb3VkIFNrZXB0aWNpc20qKjogTWFudWZhY3R1cmluZyBjb21wYW5pZXMgaGVzaXRhbnQgYWJvdXQgQVdTL0F6dXJlIGR1ZSB0byBkYXRhIHNvdmVyZWlnbnR5LCB2ZW5kb3IgbG9jay1pbgotICoqQnJvd25maWVsZCBDaGFsbGVuZ2VzKio6IExlZ2FjeSBlcXVpcG1lbnQgbmVlZHMgY29ubmVjdGl2aXR5IGJ1dCBjYW4ndCBhZmZvcmQgcmlwLWFuZC1yZXBsYWNlCgojIyMgVGhlIE9wcG9ydHVuaXR5CgoqKk1hcmtldCBTaXplOioqCi0gSW5kdXN0cmlhbCBJb1QgUGxhdGZvcm0gTWFya2V0OiBHcm93aW5nIGF0IDEzLTQ3JSBDQUdSCi0gVmlydHVhbCBQTEMgTWFya2V0OiAkMS44QiAoMjAyNSkg4oaSICQzLjZCICgyMDMyKQotIERpZ2l0YWwgVHdpbiBNYXJrZXQ6ICQyMUIgKDIwMjUpIOKGkiAkMTUwQiAoMjAzMCkKCioqVW5kZXJzZXJ2ZWQgU2VnbWVudDoqKgotIDIwLTEwMCBlbXBsb3llZSBtYW51ZmFjdHVyZXJzCi0gJDEwLTEwME0gYW5udWFsIHJldmVudWUKLSAxLTUgcHJvZHVjdGlvbiBsaW5lcwotIEFnaW5nIGluZnJhc3RydWN0dXJlCi0gTm8gZGVkaWNhdGVkIElUIHN0YWZmCgoqKk1hcmtldCBHYXBzOioqCi0gRW50ZXJwcmlzZSBzb2x1dGlvbnMgdG9vIGV4cGVuc2l2ZSBmb3IgU01CCi0gQ2xvdWQtZmlyc3QgdmVuZG9ycyBkb24ndCBhZGRyZXNzIGRhdGEgc292ZXJlaWdudHkgY29uY2VybnMKLSBNb3N0IE1TUHMgbGFjayBPVCBleHBlcnRpc2UKLSBWaXJ0dWFsIFBMQ3Mgc3RpbGwgPDUlIG9mIG1hcmtldCAoaHVnZSB3aGl0ZXNwYWNlKQoKIyMgQ29tcGV0aXRpdmUgQWR2YW50YWdlcwoKIyMjIDEuIFJhcmUgU2tpbGwgQ29tYmluYXRpb24KLSAxMyB5ZWFycyBQTEMgcHJvZ3JhbW1pbmcgKEFsbGVuLUJyYWRsZXksIFNpZW1lbnMpCi0gNCB5ZWFycyBjbG91ZCBlbmdpbmVlcmluZwotIFNwZWFrcyBib3RoIE9UIGFuZCBJVCBsYW5ndWFnZXMgZmx1ZW50bHkKCiMjIyAyLiBFZGdlLUZpcnN0IEFyY2hpdGVjdHVyZQotIE9uLXByZW1pc2Ugb3IgY3VzdG9tZXIgaGFyZHdhcmUgZGVwbG95bWVudAotIE5vIGZvcmNlZCBjbG91ZCBtaWdyYXRpb24KLSBXb3JrcyBvZmZsaW5lIChjcml0aWNhbCBmb3IgbWFudWZhY3R1cmluZykKLSBTdWItMTBtcyBsYXRlbmN5IGZvciBjb250cm9sIGFwcGxpY2F0aW9ucwoKIyMjIDMuIEJvb3RzdHJhcCBFY29ub21pY3MKLSBObyBWQyByZXF1aXJlZAotIEN1c3RvbWVyLWZ1bmRlZCBncm93dGggbW9kZWwKLSBTdGFydCB3aXRoICQ1MDAgY2FwaXRhbAotIFNjYWxlIHdpdGggY2FzaCBmbG93CgojIyMgNC4gTm8gQVdTIENvbmZsaWN0Ci0gUG9zaXRpb25lZCBhcyBjb21wbGVtZW50YXJ5LCBub3QgY29tcGV0aXRpdmUKLSBDYW4gaW50ZWdyYXRlIFdJVEggQVdTL0F6dXJlIGlmIGN1c3RvbWVyIHdhbnRzCi0gRm9jdXMgb24gZWRnZSBwcm9jZXNzaW5nIGxheWVyCi0gVGFyZ2V0cyBBV1Mgbm9uLWN1c3RvbWVycyAoZGF0YSBzb3ZlcmVpZ250eSBjcm93ZCkKCiMjIyA1LiBQbGF0Zm9ybSBFeHBlcnRpc2UKLSBMWEMgY29udGFpbmVyIGV4cGVyaWVuY2UgZnJvbSBaZXJvTGFnSHViCi0gTXVsdGktdGVuYW50IGFyY2hpdGVjdHVyZSBwcm92ZW4KLSBDYW4gc2NhbGUgZWZmaWNpZW50bHkKCiMjIFN0cmF0ZWdpYyBQb3NpdGlvbmluZwoKIyMjIFdoYXQgV2UgQXJlCgoqKiJUaGUgRWRnZS1GaXJzdCBJbmR1c3RyaWFsIElvVCBQYXJ0bmVyIioqCi0gT1QvSVQgaW50ZWdyYXRpb24gc3BlY2lhbGlzdAotIEVkZ2UgbW9uaXRvcmluZyBhbmQgY29udHJvbAotIERhdGEgc292ZXJlaWdudHkgYWR2b2NhdGUKLSBQcmVkaWN0YWJsZSBjb3N0IGFsdGVybmF0aXZlIHRvIGNsb3VkIHZlbmRvcnMKCiMjIyBXaGF0IFdlJ3JlIE5PVAoKLSBDbG91ZCBwbGF0Zm9ybSByZXBsYWNlbWVudCAod2UncmUgZWRnZS1maXJzdCkKLSBFbnRlcnByaXNlIHNvZnR3YXJlIHZlbmRvciAod2UncmUgYm9vdHN0cmFwL2FnaWxlKQotIENvbnRyb2xzLW9ubHkgaW50ZWdyYXRvciAod2UgYnJpZGdlIHRvIElUL2FuYWx5dGljcykKLSBIYXJkd2FyZSB2ZW5kb3IgKHdlJ3JlIHBsYXRmb3JtLWFnbm9zdGljKQoKIyMgVGFyZ2V0IEN1c3RvbWVyIFByb2ZpbGUKCiMjIyBJZGVhbCBDdXN0b21lciBDaGFyYWN0ZXJpc3RpY3MKCioqQ29tcGFueSBQcm9maWxlOioqCi0gMjAtMTAwIGVtcGxveWVlcwotICQxMC0xMDBNIGFubnVhbCByZXZlbnVlCi0gRGlzY3JldGUgbWFudWZhY3R1cmluZywgZm9vZC9iZXYsIG9yIHBhY2thZ2luZwotIDEtNSBwcm9kdWN0aW9uIGxpbmVzCi0gU29tZSBleGlzdGluZyBQTENzL1NDQURBCi0gTGltaXRlZCBJVCByZXNvdXJjZXMKCioqUGFpbiBQb2ludHM6KioKLSAiV2UgaGF2ZSBubyB2aXNpYmlsaXR5IGludG8gcHJvZHVjdGlvbiIKLSAiT3VyIGRhdGEgaXMgdHJhcHBlZCBpbiBQTENzIgotICJXZSBjYW4ndCBhZmZvcmQgU2llbWVucy9Sb2Nrd2VsbCIKLSAiV2UgZG9uJ3QgdHJ1c3QgY2xvdWQgdmVuZG9ycyB3aXRoIG91ciBkYXRhIgotICJXZSBuZWVkIGJldHRlciBPRUUgdHJhY2tpbmciCgoqKkJ1eWluZyBUcmlnZ2VyczoqKgotIE5ldyBwbGFudCBtYW5hZ2VyIHdhbnRzIEtQSXMKLSBRdWFsaXR5IGlzc3VlcyByZXF1aXJpbmcgcm9vdCBjYXVzZSBhbmFseXNpcwotIEN1c3RvbWVyIGF1ZGl0IHJlcXVpcmVtZW50cwotIENhcGl0YWwgYnVkZ2V0IGF2YWlsYWJsZSAoJDE1ay01MGspCi0gUmVndWxhdG9yeSBjb21wbGlhbmNlIG5lZWRzCgoqKkRlY2lzaW9uIE1ha2VyczoqKgotIFBsYW50IE1hbmFnZXIgKHByaW1hcnkpCi0gTWFpbnRlbmFuY2UgTWFuYWdlciAoaW5mbHVlbmNlcikKLSBPcGVyYXRpb25zIERpcmVjdG9yIChidWRnZXQgaG9sZGVyKQotIElUIE1hbmFnZXIgKG9jY2FzaW9uYWwgZ2F0ZWtlZXBlcikKCiMjIEJ1c2luZXNzIE1vZGVsIEV2b2x1dGlvbgoKIyMjIFBoYXNlIDE6IENvbnN1bHRpbmcgKE1vbnRocyAxLTMpCi0gKipTZXJ2aWNlKio6IE9UL0lUIGludGVncmF0aW9uIHByb2plY3RzCi0gKipSZXZlbnVlKio6ICQxNTAtMjAwL2hvdXIgb3IgJDE1ay00MGsgcGVyIHByb2plY3QKLSAqKlB1cnBvc2UqKjogQ2FzaCBmbG93LCBtYXJrZXQgdmFsaWRhdGlvbiwgbmV0d29yayBidWlsZGluZwoKIyMjIFBoYXNlIDI6IFBsYXRmb3JtIChNb250aHMgNC05KQotICoqU2VydmljZSoqOiBFZGdlIG1vbml0b3JpbmcgKyBjb25zdWx0aW5nIGh5YnJpZAotICoqUmV2ZW51ZSoqOiAkMWstMmsvbW9udGggcmVjdXJyaW5nICsgcHJvamVjdCBmZWVzCi0gKipQdXJwb3NlKio6IFRyYW5zaXRpb24gdG8gcmVjdXJyaW5nIHJldmVudWUsIGJ1aWxkIGluZnJhc3RydWN0dXJlCgojIyMgUGhhc2UgMzogUHJlbWl1bSBBSSAoTW9udGhzIDEwLTE4KQotICoqU2VydmljZSoqOiBQcmVkaWN0aXZlIG1haW50ZW5hbmNlLCBjb21wdXRlciB2aXNpb24KLSAqKlJldmVudWUqKjogJDRrLThrL21vbnRoIHByZW1pdW0gdGllcgotICoqUHVycG9zZSoqOiBEaWZmZXJlbnRpYXRpb24sIG1hcmdpbiBleHBhbnNpb24sIG1vYXQgYnVpbGRpbmcKCiMjIENvbXBldGl0aXZlIFN0cmF0ZWd5CgojIyMgQWdhaW5zdCBFbnRlcnByaXNlIFZlbmRvcnMgKFNpZW1lbnMsIFJvY2t3ZWxsLCBHRSkKCioqVGhlaXIgU3RyZW5ndGhzOioqCi0gQnJhbmQgcmVjb2duaXRpb24KLSBDb21wcmVoZW5zaXZlIHNvbHV0aW9ucwotIERlZXAgcG9ja2V0cwotIEV4aXN0aW5nIGN1c3RvbWVyIHJlbGF0aW9uc2hpcHMKCioqT3VyIFJlc3BvbnNlOioqCi0gVGFyZ2V0IGN1c3RvbWVycyB0aGV5IGlnbm9yZSAodG9vIHNtYWxsKQotIDEweCBmYXN0ZXIgZGVwbG95bWVudCAod2Vla3MgdnMgbW9udGhzKQotIDEweCBsb3dlciBjb3N0ICgkMjBrIHZzICQyMDBrKQotIE1vcmUgZmxleGlibGUgKG5vIHZlbmRvciBsb2NrLWluKQoKIyMjIEFnYWluc3QgQ2xvdWQtRmlyc3QgVmVuZG9ycyAoQVdTIElvVCwgQXp1cmUpCgoqKlRoZWlyIFN0cmVuZ3RoczoqKgotIFNjYWxhYmlsaXR5Ci0gRmVhdHVyZSBicmVhZHRoCi0gTWFya2V0aW5nIGJ1ZGdldHMKLSBJbnRlZ3JhdGlvbiBlY29zeXN0ZW0KCioqT3VyIFJlc3BvbnNlOioqCi0gVGFyZ2V0IGRhdGEgc292ZXJlaWdudHkgY29uc2Npb3VzIGN1c3RvbWVycwotIEVkZ2UtZmlyc3QgKHdvcmtzIG9mZmxpbmUpCi0gUHJlZGljdGFibGUgY29zdHMgKG5vIHBlci1tZXNzYWdlIGZlZXMpCi0gT1QgZXhwZXJ0aXNlICh3ZSB1bmRlcnN0YW5kIFBMQ3MpCgojIyMgQWdhaW5zdCBUcmFkaXRpb25hbCBNU1BzCgoqKlRoZWlyIFN0cmVuZ3RoczoqKgotIEV4aXN0aW5nIHJlbGF0aW9uc2hpcHMKLSBJVCBleHBlcnRpc2UKLSBTdXBwb3J0IGluZnJhc3RydWN0dXJlCgoqKk91ciBSZXNwb25zZToqKgotIE9UIGV4cGVydGlzZSB0aGV5IGxhY2sKLSBNYW51ZmFjdHVyaW5nLXNwZWNpZmljIGtub3dsZWRnZQotIENhbiBhY3R1YWxseSBwcm9ncmFtIFBMQ3MKLSBVbmRlcnN0YW5kIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzCgojIyBHcm93dGggU3RyYXRlZ3kKCiMjIyBZZWFyIDE6IEVzdGFibGlzaCAmIFZhbGlkYXRlCgoqKkdvYWxzOioqCi0gMTAtMTUgY3VzdG9tZXJzCi0gJDM1ay9tb250aCByZWN1cnJpbmcgcmV2ZW51ZQotIDUtMTAgY2FzZSBzdHVkaWVzCi0gTmV0d29yayBvZiA1MCsgbWFudWZhY3R1cmluZyBjb250YWN0cwoKKipUYWN0aWNzOioqCi0gUGVyc29uYWwgbmV0d29yayBvdXRyZWFjaAotIExpbmtlZEluIGNvbnRlbnQgKE9UL0lUIGJyaWRnZSBwb3NpdGlvbmluZykKLSBMb2NhbCBJU0EgY2hhcHRlciBwYXJ0aWNpcGF0aW9uCi0gUmVmZXJyYWwgcHJvZ3JhbQoKIyMjIFllYXIgMjogU2NhbGUgJiBTeXN0ZW1pemUKCioqR29hbHM6KioKLSAzMC00MCBjdXN0b21lcnMKLSAkODBrLTEyMGsvbW9udGggcmV2ZW51ZQotIDItMyBlbXBsb3llZXMvY29udHJhY3RvcnMKLSBTdGFuZGFyZGl6ZWQgcHJvY2Vzc2VzCgoqKlRhY3RpY3M6KioKLSBDb250ZW50IG1hcmtldGluZwotIFBhcnRuZXIgd2l0aCBzeXN0ZW0gaW50ZWdyYXRvcnMKLSBBdHRlbmQgdHJhZGUgc2hvd3MgKFBhY2sgRXhwbywgQXV0b21hdGUpCi0gQ2hhbm5lbCBwYXJ0bmVyc2hpcHMKCiMjIyBZZWFyIDM6IEV4cGFuZCAmIERvbWluYXRlCgoqKkdvYWxzOioqCi0gNjAtODAgY3VzdG9tZXJzCi0gJDIwMGsrL21vbnRoIHJldmVudWUKLSA1LTggdGVhbSBtZW1iZXJzCi0gUmVnaW9uYWwgcHJlc2VuY2UKCioqVGFjdGljczoqKgotIEdlb2dyYXBoaWMgZXhwYW5zaW9uCi0gVmVydGljYWwgc3BlY2lhbGl6YXRpb24KLSBQYXJ0bmVyIGVjb3N5c3RlbQotIFBvdGVudGlhbCBhY3F1aXNpdGlvbiB0YXJnZXRzCgojIyBSaXNrIE1pdGlnYXRpb24KCiMjIyBLZXkgUmlza3MKCjEuICoqQVdTIE5vbi1Db21wZXRlIFZpb2xhdGlvbioqCiAgIC0gTWl0aWdhdGlvbjogRWRnZS1maXJzdCBwb3NpdGlvbmluZywgdGFyZ2V0IG5vbi1BV1MgY3VzdG9tZXJzCiAgIAoyLiAqKlNsb3cgQ3VzdG9tZXIgQWNxdWlzaXRpb24qKgogICAtIE1pdGlnYXRpb246IFN0YXJ0IHdpdGggbmV0d29yaywgY29uc3VsdGluZyBjYXNoIGZsb3cgYnVmZmVyCiAgIAozLiAqKlRlY2huaWNhbCBDb21wbGV4aXR5KioKICAgLSBNaXRpZ2F0aW9uOiBTdGFydCBzaW1wbGUgKG1vbml0b3Jpbmcgb25seSksIGFkZCBmZWF0dXJlcyBncmFkdWFsbHkKICAgCjQuICoqQ29tcGV0aXRpb24gZnJvbSBFc3RhYmxpc2hlZCBQbGF5ZXJzKioKICAgLSBNaXRpZ2F0aW9uOiBGb2N1cyBvbiB1bmRlcnNlcnZlZCBzZWdtZW50LCBtb3ZlIGZhc3QKCjUuICoqQ2FzaCBGbG93IER1cmluZyBCdWlsZCBQaGFzZSoqCiAgIC0gTWl0aWdhdGlvbjogQ29uc3VsdGluZyByZXZlbnVlIGZ1bmRzIHBsYXRmb3JtIGRldmVsb3BtZW50CgojIyBTdWNjZXNzIE1ldHJpY3MKCiMjIyBQaGFzZSAxIChNb250aHMgMS0zKQotIFsgXSAyLTMgY29tcGxldGVkIGNvbnN1bHRpbmcgcHJvamVjdHMKLSBbIF0gJDIway00NWsgcmV2ZW51ZSBnZW5lcmF0ZWQKLSBbIF0gNSsgZGlzY292ZXJ5IGNhbGxzIGNvbXBsZXRlZAotIFsgXSAxIGNhc2Ugc3R1ZHkgcHVibGlzaGVkCgojIyMgUGhhc2UgMiAoTW9udGhzIDQtOSkKLSBbIF0gRmlyc3QgR1RIb3N0IHNlcnZlciBkZXBsb3llZAotIFsgXSA1LTggcmVjdXJyaW5nIGN1c3RvbWVycwotIFsgXSAkMTBrLTE1ayBNUlIgYWNoaWV2ZWQKLSBbIF0gTXVsdGktdGVuYW50IGFyY2hpdGVjdHVyZSBwcm92ZW4KCiMjIyBQaGFzZSAzIChNb250aHMgMTAtMTgpCi0gWyBdIEdQVSBzZXJ2ZXIgb3BlcmF0aW9uYWwKLSBbIF0gMTItMjAgdG90YWwgY3VzdG9tZXJzCi0gWyBdICQzNWsrIE1SUiBhY2hpZXZlZAotIFsgXSBGaXJzdCBjb250cmFjdG9yIGhpcmVkCgojIyBTdHJhdGVnaWMgUHJpbmNpcGxlcwoKMS4gKipCb290c3RyYXAgQWx3YXlzKio6IE5ldmVyIHRha2UgZnVuZGluZyBpZiBhdm9pZGFibGUKMi4gKipDdXN0b21lci1GdW5kZWQgR3Jvd3RoKio6IFVzZSB0aGVpciBwcm9qZWN0cyB0byBidWlsZCBwbGF0Zm9ybQozLiAqKkVkZ2UtRmlyc3QgRm9yZXZlcioqOiBDbG91ZCBpcyBvcHRpb25hbCwgZWRnZSBpcyBtYW5kYXRvcnkKNC4gKipPVC9JVCBCcmlkZ2UqKjogQWx3YXlzIHBvc2l0aW9uIGFzIHRoZSB0cmFuc2xhdG9yLCBuZXZlciBqdXN0IG9uZSBzaWRlCjUuICoqU2xvdyBpcyBTbW9vdGgsIFNtb290aCBpcyBGYXN0Kio6IFF1YWxpdHkgb3ZlciBzcGVlZAo2LiAqKkRhdGEgU292ZXJlaWdudHkqKjogQ3VzdG9tZXIgb3ducyB0aGVpciBkYXRhLCBhbHdheXMKNy4gKipObyBWZW5kb3IgTG9jay1JbioqOiBQbGF0Zm9ybS1hZ25vc3RpYywgc3RhbmRhcmRzLWJhc2VkCjguICoqTWFudWZhY3R1cmluZy1GaXJzdCoqOiBCdWlsZCBmb3IgcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMsIG5vdCBJVCBsYWJzCgotLS0KCipMYXN0IFVwZGF0ZWQ6IERlY2VtYmVyIDIwMjUqCg== |