QGMgVGhpcyBmaWxlIGlzIHByb2Nlc3NlZCBieSBHTlUncyBUZVhpbmZvCkBjIElmIHlvdSBtb2RpZnkgaXQgb3IgbW92ZSBpdCB0byBhbm90aGVyIGxvY2F0aW9uLCBtYWtlIHN1cmUgdGhhdApAYyBUZVhpbmZvIHdvcmtzICh0eXBlIGBtYWtlJyBpbiBkaXJlY3RvcnkgZG9jdW1lbnRhdGlvbikuCgpAYyBUaGlzIGlzIGEgbGlzdCBvZiB0aGUgV2luZSBhdXRob3JzIGFuZCBjb3B5cmlnaHQgaG9sZGVycy4KCldpbmUgaXMgYXZhaWxhYmxlIHRoYW5rcyB0byB0aGUgd29yayBvZjoKQm9iIEFtc3RhZHQsCkRhZyBBc2hlaW0sCk1hcnRpbiBBeW90dGUsCkthcmwgQmFja3N0cvZtLApQZXRlciBCYWp1c3osCkdlb3JnIEJleWVybGUsClJvc3MgQmlybywKTWFydGluIEJvZWhtZSwKVXdlIEJvbm5lcywKRXJpayBCb3MsCkZvbnMgQm90bWFuLApKb2huIEJyZXphaywKQW5kcmV3IEJ1bGhhaywKSm9obiBCdXJ0b24sCk5pZWxzIGRlIENhcnBlbnRpZXIsCkdvcmRvbiBDaGFmZmVlLApKaW1lbiBDaGluZywKRGF2aWQgQS4gQ3V0aGJlcnQsCkh1dyBELiBNLiBEYXZpZXMsClJvbWFuIERvbGVqc2ksCkZyYW5zIHZhbiBEb3Jzc2VsYWVyLApDaHJpcyBGYWhlcnR5LApDYXJzdGVuIEZhbGxlc2VuLApQYXVsIEZhbHN0YWQsCkRhdmlkIEZhdXJlLApDbGF1cyBGaXNjaGVyLApPbGFmIEZsZWJiZSwKQ2hhZCBGcmFsZWlnaCwKUGV0ZXIgR2FsYmF2eSwKUmFtb24gR2FyY2lhLApNYXR0aGV3IEdoaW8sCkpvZHkgR29sZGJlcmcsCkhhbnMgZGUgR3JhYWZmLApDaGFybGVzIE0uIEhhbm51bSwKQWRyaWFuIEhhcnZleSwKSm9obiBIYXJ2ZXksCkNhbWVyb24gSGVpZGUsCkpvY2hlbiBIb2VuaWNrZSwKT25ubyBIb3ZlcnMsCkplZmZyZXkgSHN1LApNaWd1ZWwgZGUgSWNhemEsCkp1a2thIElpdm9uZW4sCkxlZSBKYWVraWwsCkFsZXhhbmRyZSBKdWxsaWFyZCwKQmFuZyBKdW4tWW91bmcsClBhdmVsIEthbmtvdnNreSwKSm9jaGVuIEthcnJlciwKQW5kcmVhcyBLaXJzY2hiYXVtLApBbGJyZWNodCBLbGVpbmUsCkpvbiBLb25yYXRoLApBbGV4IEtvcm9ia2EsCkdyZWcgS3JlaWRlciwKQW5hbmQgS3VtcmlhLApTY290dCBBLiBMYWlyZCwKQW5kcmV3IExld3lja3ksCk1hcnRpbiB2b24gTG9ld2lzLApNaWNoaWVsIHZhbiBMb29uLApLZW5uZXRoIE1hY0RvbmFsZCwKUGV0ZXIgTWFjRG9uYWxkLApXaWxsaWFtIE1hZ3JvLApKdWVyZ2VuIE1hcnF1YXJkdCwKUmljYXJkbyBNYXNzYXJvLApNYXJjdXMgTWVpc3NuZXIsCkdyYWhhbSBNZW5oZW5uaXR0LApEYXZpZCBNZXRjYWxmZSwKQnJ1Y2UgTWlsbmVyLApTdGVmZmVuIE1vZWxsZXIsCkFuZHJlYXMgTW9ociwKSmFtZXMgTW9vZHksClBoaWxpcHBlIERlIE11eXRlciwKSXRhaSBOYWhzaG9uLApLcmlzdGlhbiBOaWVsc2VuLApIZW5yaWsgT2xzZW4sCk1pY2hhZWwgUGF0cmEsCkRpbWl0cmllIE8uIFBhdW4sCkppbSBQZXRlcnNvbiwKUm9iZXJ0IFBvdWxpb3QsCktlaXRoIFJleW5vbGRzLApTbGF2ZW4gUmV6aWMsCkpvaG4gUmljaGFyZHNvbiwKUmljayBSaWNoYXJkc29uLApEb3VnIFJpZGd3YXksCkJlcm5oYXJkIFJvc2Vua3JhZW56ZXIsCkpvaGFubmVzIFJ1c2NoZWluc2tpLApUaG9tYXMgU2FuZGZvcmQsCkNvbnN0YW50aW5lIFNhcHVudHpha2lzLApQYWJsbyBTYXJhdHhhZ2EsCkRhbmllbCBTY2hlcGxlciwKUGV0ZXIgU2NobGFpbGUsClVscmljaCBTY2htaWQsCkJlcm5kIFNjaG1pZHQsCkluZ28gU2NobmVpZGVyLApWaWN0b3IgU2NobmVpZGVyLApZbmd2aSBTaWd1cmpvbnNzb24sClN0ZXBoZW4gU2ltbW9ucywKUmljayBTbGFka2V5LApXaWxsaWFtIFNtaXRoLApEb21pbmlrIFN0cmFzc2VyLApWYWRpbSBTdHJpemhldnNreSwKQmVydGhvIFN0dWx0aWVucywKRXJpayBTdmVuZHNlbiwKVHJpc3RhbiBUYXJyYW50LApBbmRyZXcgVGF5bG9yLApEdW5jYW4gQyBUaG9tc29uLApHb3JhbiBUaHluaSwKSmltbXkgVGlydGF3YW5nc2EsCkpvbiBUb21icywKTGludXMgVG9ydmFsZHMsCkdyZWdvcnkgVHJ1YmV0c2tveSwKUGV0cmkgVHVvbW9sYSwKTWljaGFlbCBWZWtzbGVyLApTdmVuIFZlcmRvb2xhZWdlLApSb25hbiBXYWlkZSwKRXJpYyBXYXJua2UsCk1hbmZyZWQgV2VpY2hlbCwKTW9ydGVuIFdlbGluZGVyLApMZW4gV2hpdGUsCkxhd3NvbiBXaGl0bmV5LApKYW4gV2lsbGFtb3dpdXMsCkNhcmwgV2lsbGlhbXMsCkthcmwgR3VlbnRlciBXdWVuc2NoLApFcmljIFlvdW5nZGFsZSwKSmFtZXMgWW91bmdtYW4sCk5pa2l0YSBWLiBZb3VzaGNoZW5rbywKTWlrb2xhaiBaYWxld3NraSwKYW5kIEpvaG4gWmVyby4K