QGMgVGhpcyBmaWxlIGlzIHByb2Nlc3NlZCBieSBHTlUncyBUZVhpbmZvCkBjIElmIHlvdSBtb2RpZnkgaXQgb3IgbW92ZSBpdCB0byBhbm90aGVyIGxvY2F0aW9uLCBtYWtlIHN1cmUgdGhhdApAYyBUZVhpbmZvIHdvcmtzICh0eXBlIGBtYWtlJyBpbiBkaXJlY3RvcnkgZG9jdW1lbnRhdGlvbikuCgpAYyBUaGlzIGlzIGEgbGlzdCBvZiB0aGUgV2luZSBhdXRob3JzIGFuZCBjb3B5cmlnaHQgaG9sZGVycy4KCldpbmUgaXMgYXZhaWxhYmxlIHRoYW5rcyB0byB0aGUgd29yayBvZjoKQm9iIEFtc3RhZHQsCkRhZyBBc2hlaW0sCk1hcnRpbiBBeW90dGUsCkthcmwgQmFja3N0cvZtLApQZXRlciBCYWp1c3osCk1hcmNlbCBCYXVyLApHZW9yZyBCZXllcmxlLApSb3NzIEJpcm8sCk1hcnRpbiBCb2VobWUsClV3ZSBCb25uZXMsCkVyaWsgQm9zLApGb25zIEJvdG1hbiwKSnVzdGluIEJyYWRmb3JkLApKb2huIEJyZXphaywKQW5kcmV3IEJ1bGhhaywKSm9obiBCdXJ0b24sCk5pZWxzIGRlIENhcnBlbnRpZXIsCkdvcmRvbiBDaGFmZmVlLApKaW1lbiBDaGluZywKSmVhbi1DbGF1ZGUgQ290ZSwKU3RlcGhlbiBDcm93bGV5LApQYXNjYWwgQ3VvcSwKRGF2aWQgQS4gQ3V0aGJlcnQsCkh1dyBELiBNLiBEYXZpZXMsClJvbWFuIERvbGVqc2ksCkZyYW5zIHZhbiBEb3Jzc2VsYWVyLApDaHJpcyBGYWhlcnR5LApDYXJzdGVuIEZhbGxlc2VuLApQYXVsIEZhbHN0YWQsCkRhdmlkIEZhdXJlLApXZXNsZXkgRmlsYXJkbywKQ2xhdXMgRmlzY2hlciwKT2xhZiBGbGViYmUsCkNoYWQgRnJhbGVpZ2gsCk1hdHRoZXcgRnJhbmNpcywKUGV0ZXIgR2FsYmF2eSwKUmFtb24gR2FyY2lhLApNYXR0aGV3IEdoaW8sCkpvZHkgR29sZGJlcmcsCkhhbnMgZGUgR3JhYWZmLApDaGFybGVzIE0uIEhhbm51bSwKQWRyaWFuIEhhcnZleSwKSm9obiBIYXJ2ZXksCkJpbGwgSGF3ZXMsCkNhbWVyb24gSGVpZGUsCkpvY2hlbiBIb2VuaWNrZSwKT25ubyBIb3ZlcnMsCkplZmZyZXkgSHN1LApQZXRlciBIdW5uaXNldHQsCk1pZ3VlbCBkZSBJY2F6YSwKSnVra2EgSWl2b25lbiwKTGVlIEphZWtpbCwKQWxleGFuZHJlIEp1bGxpYXJkLApCYW5nIEp1bi1Zb3VuZywKUGF2ZWwgS2Fua292c2t5LApKb2NoZW4gS2FycmVyLApBbmRyZWFzIEtpcnNjaGJhdW0sClJlaW4gS2xhemVzLApBbGJyZWNodCBLbGVpbmUsCkVyaWMgS29obCwKSm9uIEtvbnJhdGgsCkFsZXggS29yb2JrYSwKR3JlZyBLcmVpZGVyLApBbmFuZCBLdW1yaWEsCk92ZSBL5XZlbiwKU2NvdHQgQS4gTGFpcmQsCkRhdmlkIExlZSBMYW1iZXJ0LApBbmRyZXcgTGV3eWNreSwKUGVyIExpbmRzdHL2bSwKTWFydGluIHZvbiBMb2V3aXMsCk1pY2hpZWwgdmFuIExvb24sCkRhdmlkIEx1eWVyLApLZW5uZXRoIE1hY0RvbmFsZCwKUGV0ZXIgTWFjRG9uYWxkLApXaWxsaWFtIE1hZ3JvLApKdWVyZ2VuIE1hcnF1YXJkdCwKUmljYXJkbyBNYXNzYXJvLApNYXJjdXMgTWVpc3NuZXIsCkdyYWhhbSBNZW5oZW5uaXR0LApEYXZpZCBNZXRjYWxmZSwKQnJ1Y2UgTWlsbmVyLApTdGVmZmVuIE1vZWxsZXIsCkFuZHJlYXMgTW9ociwKSmFtZXMgTW9vZHksClBoaWxpcHBlIERlIE11eXRlciwKSXRhaSBOYWhzaG9uLApLcmlzdGlhbiBOaWVsc2VuLApIZW5yaWsgT2xzZW4sCk1pY2hhZWwgUGF0cmEsCkRpbWl0cmllIE8uIFBhdW4sCkppbSBQZXRlcnNvbiwKRXJpYyBQb3VlY2gsClJvYmVydCBQb3VsaW90LApKb2UgUHJhbmV2aWNoLApBbGV4IFByaWVtLApQZXR0ZXIgUmVpbmhvbGR0c2VuLApLZWl0aCBSZXlub2xkcywKU2xhdmVuIFJlemljLApKb2huIFJpY2hhcmRzb24sClJpY2sgUmljaGFyZHNvbiwKRG91ZyBSaWRnd2F5LApSb2JlcnQgUmlnZ3MsCkJlcm5oYXJkIFJvc2Vua3JhZW56ZXIsCkpvaGFubmVzIFJ1c2NoZWluc2tpLApUaG9tYXMgU2FuZGZvcmQsCkNvbnN0YW50aW5lIFNhcHVudHpha2lzLApQYWJsbyBTYXJhdHhhZ2EsCkRhbmllbCBTY2hlcGxlciwKUGV0ZXIgU2NobGFpbGUsClVscmljaCBTY2htaWQsCkJlcm5kIFNjaG1pZHQsCkp1ZXJnZW4gU2NobWllZCwKSW5nbyBTY2huZWlkZXIsClZpY3RvciBTY2huZWlkZXIsClluZ3ZpIFNpZ3Vyam9uc3NvbiwKU3RlcGhlbiBTaW1tb25zLApSaWNrIFNsYWRrZXksCldpbGxpYW0gU21pdGgsCkRvbWluaWsgU3RyYXNzZXIsClBhdHJpayBTdHJpZHZhbGwsClZhZGltIFN0cml6aGV2c2t5LApCZXJ0aG8gU3R1bHRpZW5zLApFcmlrIFN2ZW5kc2VuLApUcmlzdGFuIFRhcnJhbnQsCkFuZHJldyBUYXlsb3IsCkR1bmNhbiBDIFRob21zb24sCkdvcmFuIFRoeW5pLApKaW1teSBUaXJ0YXdhbmdzYSwKSm9uIFRvbWJzLApMaW51cyBUb3J2YWxkcywKR3JlZ29yeSBUcnViZXRza295LApQZXRyaSBUdW9tb2xhLApMaW9uZWwgVWxtZXIsCk1pY2hhZWwgVmVrc2xlciwKU3ZlbiBWZXJkb29sYWVnZSwKUm9uYW4gV2FpZGUsCkVyaWMgV2FybmtlLApNYW5mcmVkIFdlaWNoZWwsClVscmljaCBXZWlnYW5kLApNb3J0ZW4gV2VsaW5kZXIsCkxlbiBXaGl0ZSwKTGF3c29uIFdoaXRuZXksCkphbiBXaWxsYW1vd2l1cywKQ2FybCBXaWxsaWFtcywKS2FybCBHdWVudGVyIFd1ZW5zY2gsCkVyaWMgWW91bmdkYWxlLApKYW1lcyBZb3VuZ21hbiwKTmlraXRhIFYuIFlvdXNoY2hlbmtvLApNaWtvbGFqIFphbGV3c2tpLApKb2huIFplcm8sCmFuZCBMdWl6IE90YXZpbyBMLiBab3J6ZWxsYS4K