QGMgVGhpcyBmaWxlIGlzIHByb2Nlc3NlZCBieSBHTlUncyBUZVhpbmZvCkBjIElmIHlvdSBtb2RpZnkgaXQgb3IgbW92ZSBpdCB0byBhbm90aGVyIGxvY2F0aW9uLCBtYWtlIHN1cmUgdGhhdApAYyBUZVhpbmZvIHdvcmtzICh0eXBlIGBtYWtlJyBpbiBkaXJlY3RvcnkgZG9jdW1lbnRhdGlvbikuCgpAYyBUaGlzIGlzIGEgbGlzdCBvZiB0aGUgV2luZSBhdXRob3JzIGFuZCBjb3B5cmlnaHQgaG9sZGVycy4KCldpbmUgaXMgYXZhaWxhYmxlIHRoYW5rcyB0byB0aGUgd29yayBvZjoKQm9iIEFtc3RhZHQsCkRhZyBBc2hlaW0sCk1hcnRpbiBBeW90dGUsCkthcmwgQmFja3N0cvZtLApQZXRlciBCYWp1c3osCk1hcmNlbCBCYXVyLApHZW9yZyBCZXllcmxlLApSb3NzIEJpcm8sCk1hcnRpbiBCb2VobWUsClV3ZSBCb25uZXMsCkVyaWsgQm9zLApGb25zIEJvdG1hbiwKSm9obiBCcmV6YWssCkFuZHJldyBCdWxoYWssCkpvaG4gQnVydG9uLApOaWVscyBkZSBDYXJwZW50aWVyLApHb3Jkb24gQ2hhZmZlZSwKSmltZW4gQ2hpbmcsClBhc2NhbCBDdW9xLApEYXZpZCBBLiBDdXRoYmVydCwKSHV3IEQuIE0uIERhdmllcywKUm9tYW4gRG9sZWpzaSwKRnJhbnMgdmFuIERvcnNzZWxhZXIsCkNocmlzIEZhaGVydHksCkNhcnN0ZW4gRmFsbGVzZW4sClBhdWwgRmFsc3RhZCwKRGF2aWQgRmF1cmUsCkNsYXVzIEZpc2NoZXIsCk9sYWYgRmxlYmJlLApDaGFkIEZyYWxlaWdoLApNYXR0aGV3IEZyYW5jaXMsClBldGVyIEdhbGJhdnksClJhbW9uIEdhcmNpYSwKTWF0dGhldyBHaGlvLApKb2R5IEdvbGRiZXJnLApIYW5zIGRlIEdyYWFmZiwKQ2hhcmxlcyBNLiBIYW5udW0sCkFkcmlhbiBIYXJ2ZXksCkpvaG4gSGFydmV5LApCaWxsIEhhd2VzLApDYW1lcm9uIEhlaWRlLApKb2NoZW4gSG9lbmlja2UsCk9ubm8gSG92ZXJzLApKZWZmcmV5IEhzdSwKTWlndWVsIGRlIEljYXphLApKdWtrYSBJaXZvbmVuLApMZWUgSmFla2lsLApBbGV4YW5kcmUgSnVsbGlhcmQsCkJhbmcgSnVuLVlvdW5nLApQYXZlbCBLYW5rb3Zza3ksCkpvY2hlbiBLYXJyZXIsCkFuZHJlYXMgS2lyc2NoYmF1bSwKUmVpbiBLbGF6ZXMsCkFsYnJlY2h0IEtsZWluZSwKRXJpYyBLb2hsLApKb24gS29ucmF0aCwKQWxleCBLb3JvYmthLApHcmVnIEtyZWlkZXIsCkFuYW5kIEt1bXJpYSwKU2NvdHQgQS4gTGFpcmQsCkRhdmlkIExlZSBMYW1iZXJ0LApBbmRyZXcgTGV3eWNreSwKUGVyIExpbmRzdHL2bSwKTWFydGluIHZvbiBMb2V3aXMsCk1pY2hpZWwgdmFuIExvb24sCktlbm5ldGggTWFjRG9uYWxkLApQZXRlciBNYWNEb25hbGQsCldpbGxpYW0gTWFncm8sCkp1ZXJnZW4gTWFycXVhcmR0LApSaWNhcmRvIE1hc3Nhcm8sCk1hcmN1cyBNZWlzc25lciwKR3JhaGFtIE1lbmhlbm5pdHQsCkRhdmlkIE1ldGNhbGZlLApCcnVjZSBNaWxuZXIsClN0ZWZmZW4gTW9lbGxlciwKQW5kcmVhcyBNb2hyLApKYW1lcyBNb29keSwKUGhpbGlwcGUgRGUgTXV5dGVyLApJdGFpIE5haHNob24sCktyaXN0aWFuIE5pZWxzZW4sCkhlbnJpayBPbHNlbiwKTWljaGFlbCBQYXRyYSwKRGltaXRyaWUgTy4gUGF1biwKSmltIFBldGVyc29uLApSb2JlcnQgUG91bGlvdCwKS2VpdGggUmV5bm9sZHMsClNsYXZlbiBSZXppYywKSm9obiBSaWNoYXJkc29uLApSaWNrIFJpY2hhcmRzb24sCkRvdWcgUmlkZ3dheSwKQmVybmhhcmQgUm9zZW5rcmFlbnplciwKSm9oYW5uZXMgUnVzY2hlaW5za2ksClRob21hcyBTYW5kZm9yZCwKQ29uc3RhbnRpbmUgU2FwdW50emFraXMsClBhYmxvIFNhcmF0eGFnYSwKRGFuaWVsIFNjaGVwbGVyLApQZXRlciBTY2hsYWlsZSwKVWxyaWNoIFNjaG1pZCwKQmVybmQgU2NobWlkdCwKSnVlcmdlbiBTY2htaWVkLApJbmdvIFNjaG5laWRlciwKVmljdG9yIFNjaG5laWRlciwKWW5ndmkgU2lndXJqb25zc29uLApTdGVwaGVuIFNpbW1vbnMsClJpY2sgU2xhZGtleSwKV2lsbGlhbSBTbWl0aCwKRG9taW5payBTdHJhc3NlciwKVmFkaW0gU3RyaXpoZXZza3ksCkJlcnRobyBTdHVsdGllbnMsCkVyaWsgU3ZlbmRzZW4sClRyaXN0YW4gVGFycmFudCwKQW5kcmV3IFRheWxvciwKRHVuY2FuIEMgVGhvbXNvbiwKR29yYW4gVGh5bmksCkppbW15IFRpcnRhd2FuZ3NhLApKb24gVG9tYnMsCkxpbnVzIFRvcnZhbGRzLApHcmVnb3J5IFRydWJldHNrb3ksClBldHJpIFR1b21vbGEsCk1pY2hhZWwgVmVrc2xlciwKU3ZlbiBWZXJkb29sYWVnZSwKUm9uYW4gV2FpZGUsCkVyaWMgV2FybmtlLApNYW5mcmVkIFdlaWNoZWwsClVscmljaCBXZWlnYW5kLApNb3J0ZW4gV2VsaW5kZXIsCkxlbiBXaGl0ZSwKTGF3c29uIFdoaXRuZXksCkphbiBXaWxsYW1vd2l1cywKQ2FybCBXaWxsaWFtcywKS2FybCBHdWVudGVyIFd1ZW5zY2gsCkVyaWMgWW91bmdkYWxlLApKYW1lcyBZb3VuZ21hbiwKTmlraXRhIFYuIFlvdXNoY2hlbmtvLApNaWtvbGFqIFphbGV3c2tpLApKb2huIFplcm8sCmFuZCBMdWl6IE90YXZpbyBMLiBab3J6ZWxsYS4K