<?xml version="1.0" encoding="UTF-8"?>
<zaznam xmlns="http://portal.gov.cz/rejstriky/ISRS/1.2/"><data><identifikator><idSmlouvy>35090441</idSmlouvy><idVerze>37370649</idVerze></identifikator><odkaz>https://smlouvy.gov.cz/smlouva/37370649</odkaz><casZverejneni>2026-03-30T13:07:52+02:00</casZverejneni><smlouva><subjekt><datovaSchranka>jwaeuen</datovaSchranka><nazev>Krajská nemocnice Liberec, a.s.</nazev><ico>27283933</ico><adresa>Husova 1430/34, 46001 Liberec, CZ</adresa></subjekt><smluvniStrana><nazev>ELI LILLY CORK LIMITED</nazev><ico>x</ico><adresa>ISLAND HOUSE,EASTGATE ROAD,EASTGATE BUSINESS PARK LITTLE ISLAND</adresa></smluvniStrana><predmet>Smlouva o provedení klinického hodnocení</predmet><datumUzavreni>2026-03-25</datumUzavreni><cisloSmlouvy>S2026/00305/00</cisloSmlouvy><hodnotaBezDph>1500000</hodnotaBezDph></smlouva><prilohy><priloha><data>77u/Q1ogMy12bXkgSU5TVCBIXFRWIENUQSBFTDI0LkdPSS5DMDFfUDAwClZhc25vbjogU2VwdGVtYmVyIDIwMjQKCkNaIDMtd2F5IEhcSVNUIElOViBDVEEgRUwyNF9HT0lfQ09MUDAwClZlcnplOiB6w6HFmcOtIDIwMjQKCiAKCkNMSU5JQ0FMIFRSSUFMIEFHUkVFTUVOVAoKU01MT1VWQSBvIFBST1bDgURFTsONUEtMSU5JQ0vDiUhPCkhPRE5PQ0nEmgoKIAoKIAoKVGhpcyBDbGluaWNhbCBUcmlhbCBBZ3JlZW1lbnQgKEFncmVlbWVudCkgaXMKZW50ZXJlZCBpbnRvIGFzIG9mIHRoZSBkYXRlIG9mIHRoZSBsYXN0IHNpZ25hdHVyZSBoZXJldG8KYnkgYW5kIGJldHdlZW46CgpUYXRvIHNtbG91dmEgb3Byb3bDoWTEjW7DrSBrbGluaWNrw6lobyBob2Rub2NlbsOtCihkw6FsZSAuLlNtbG91dsOtJykgc2UgdXphdsOtcsOhIGtkYXR1IHDFmWlwb2plbsOtCnBvc2xlZG7DrWhvIHBvZHBpc3Uga2UgU21sb3V2xJsgbWV6aSB0xJttaXRvCnN0cmFuYW1pOgoKIAoKIAoKRWxpIExpbGx5IENvcmsgTGltaXRlZC4gV2l0aCByZWdpc3RlcmVkIG9mZmljZSBpbgpJc2xhbmQgSG91c2UuIEVhc3RnYXRlIFJvYWQuIEVhc3RnYXRlIEJ1c2luZXNzIFBhcmssCkxpdHRsZSBJc2xhbmQuIEMgb3JrLiBJcmVsYW5kLiBWQVQgTm8uIElFMzUwODMxMEJICnJlcHJlc2VudGVkIGJ5IGl0cyBhdXRob3JpemVkIHNpZ25hdG9yeS4gKOKAnExpbGx5Iik6CgphbmQKCkVsaSBMaWxseSBDb3JrIExpbWl0ZWQuIHNlIHPDrWRsZW0gSXNsYW5kIEhvdXNlLgpFYXN0Z2F0YyBSb2FkLiBFYXN0Z2F0ZSBCdXNpbmVzcyBQYXJrLiBMaXR0bGUKSXNsYW5kLiBDIG9yaywgSXJza28uIERJxIwgSUUzNTA4MzEwQkguCnphc3RvdXBlbsOhIG9wcsOhdm7Em27DvW0gesOhc3R1cGNlbS4gKGTDoWxlIF9fTGlsbHnigJwpLgoKYQoKIAoK4oCeIE9kZMSbbGVuw60gcG0gbMOpxI1idQpuZXNwZWVsIDFjIHllIDEgc3TFmWV2bWUgMSBsYW5lbS4gS3JhanNrw6EgbmVtb2NuaWNlCgpMaWJlcmVjIGEucy4uIEh1c292YSAxNDMwLzM0LiBMaWJlcmVjIEnigJRTdGFyZScgTcSbc3RvLAo0NjAwMSBMaWJlcmVjLiBDIHplY2ggUmVwdWJsaWMKYXMgdGhlIHByaW5jaXBhbCBpbnZlc3RpZ2F0b3IgKOKAnEludmVzdGlnYXRvcuKAnCk7CgphbmQKCl9fX2rigJRPZGTEm2xtw60KZ2FzdHJvZW50ZXJvIG9nbGUgYSBsZXBhdG8gb2dsZS4gS3JhanNrw6EKCm5lbW9jbmljZSBMaWJlcmVjIGEucy4uIEh1X3NvdmEgMTQzMC8zNC4gNDYwIDAxCkxpYmVyZWMgSSAtIFN0YXLDqSBNxJtzdG8uIENlc2vDoSByZXB1Ymxpa2EuIGpha28KaGxhdm7DrSB6a291xaFlasOtY8OtIChkw6FsZSDigJ5aa291xaFlamljw63igJwpXwoKYQoKIAoKS3JhanNrw6EgbmVtb2NuaWNlIExpYmVyZWMgYS5zLiB3aXRoIG9mZmljZXMgYXQKSHVzb3ZhIDE0MzAvMzQuIExpYmVyZWMgSeKAlFN0YXJlJyBNxJtzdG8sIDQ2MDAxCkxpYmVyZWMuIEN6ZWNoIHJlcHVibGljLiBJRCBObyAyNzI4MzkzMy4gVkFUIE5vCkNaWjcyODM5MzMuIHJlcHJlc2VudGVkIGJ5IE1VRHIuIFJpY2hhcmQgTHVrw6HFoSwKUGguRC4uIENFTyBhbmQgSGVhZCBvZiBCb2FyZCBvciBkb2MuIE1VRHIuClRvbcOhxaEgUm91YsOtxI1lay4gUGguRC4gRkVTQy4gRGVwdXR5IEhlYWQgb2YKQm9hcmQgKConSW5zdGl0dXRpb3XigJwpOgoKS3JhanNrw6EgbmVtb2NuaWNlIExpYmVyZWMgYS5zLi4gc2Ugc8OtZGxlbQpIdXNvdmEgMTQzMC8zNC4gTGliZXJlYyBJ4oCUU3RhcsOpIE3Em3N0by4gNDYwMDEKTGliZXJlYy4gxIwgZXNrw6EgcmVwdWJsaWthLiBJxIxPIDI3MjgzOTMzLCBEScSMCkNaWjcyODM5MzMuIHphc3RvdXBlbmEgTVVEci4gUmljaGFyZGVtCkx1a8OhxaFlbV8gUGguRC7igJ4gxZllZGl0ZWxlbSBhIHDFmWVkc2Vkb3UKcMWZZWRzdGF2ZW5zdHZhLCBuZWJvIGRvYy4gTVVEci4gVG9tw6HFoWVtClJvdWLDrcSNa2VtLiBQaC5ELiBGRVNDIG3DrXN0b3DFmWVkc2Vkb3UKcMWZZWRzdGF2ZW5zdHZhOiAoZMOhbGUg4oCeWmRyYXZvdG5pY2vDqQp6YcWZw616ZW7DreKAnCkuCgogCgpmb3IgdGhlIHBlbGZvbm5hbmNlIG9mIHRoZSBzdHVkeSBlbnRpdGxlZDoKCnphIMO6xI1lbGVtIHByb3bDoWTEm27DrSBrbGluaWNrw6lobyBob2Rub2NlbsOtCnNuw6F6dmVtOgoKIAoKIAoKIAoKICAgCgogCgogCgpJb3RvY29segoKZm90b2tvbDoKCiAKCijigJxQbCdvdG9tbCIpCgooZMOhbGUgX+KAnlBsJ290b2tvbOKAnClfCgogCgp3aGljaCBQcm90b2NvbCBpcyBpbmVvcnBvcmF0Y2QgaGVyZWluIGJ5IHJlZmVyZW5jZS4KCiAKCiAKCiAKCmt0ZXLDvSBqZSBvZGthemVtIG5hIG7Em2ogbmVkw61sbm91IHNvdcSNw6FzdMOtIHTDqXRvClNtbG91dnkuCgogCgogCgpQYWdlIDEgb2Y0NSAvIFN0cmFuYSAxIDI0NQoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnplOiB6w6HFmcOtIDIwMjQKCiAKClN0dWR5IFdpbGwgYmUgY29uZHVjdGVkIGF0IHRoZSBwcmVtaXNlcyBvZgpPZGTEm2xlbsOtIGdhc3Ryb2VudGVyb2xvZ2llIGEgaGVwYXRvbG9naWUKS3JhanNrw6EgbmVtb2NuaWNlIExpYmVyZWMgYS5zLgoKSHVzb3ZhIDE0MzAvMzQKCjQ2MCAwMSBMaWJlcmVjIEkgLSBTdGFyw6kgTcSbc3RvLCBDemVjaCBSZXB1YmxpYwoKU3R1ZGllIGJ1ZGUgcHJvdmVkZW5hIHYgcHJvc3RvcsOhY2gKCk9kZMSbbGVuw60gZ2FzdHJvZW50ZXJvbG9naWUgYSBoZXBhdG9sb2dpZQpLcmFqc2vDoSBuZW1vY25pY2UgTGliZXJlYyBhLnMuCgpIdXNvdmEgMTQzMC8zNAoKNDYwIDAxIExpYmVyZWMgSSAtIFN0YXLDqSBNxJtzdG8sIMSMZXNrw6EgcmVwdWJsaWthCgogCgpQUkVBTUJMRToKCsOaVk9ETsONIFVTVEFOT1ZFTsONOgoKIAoKV0hFUkVBUyBMaWxseSBhcHByZWNpYXRlcyB0aGUgb3Bwb3J0dW5pdHkgdG8KY29vcGVyYXRlIFdpdGggdGhlIEluc3RpdHV0aW9uIGFuZCB0aGUgSW52ZXN0aWdhdG9yIGluCnRoZSBTdHVkeS4KCkJ5IHNpZ25pbmcgdGhpcyBBZ3JlZW1lbnQsIExpbGx5IGNvbmZ1bXMgdGhhdCB0aGUKYW50aWNpcGF0ZWQgc3R1ZHkgcGVuJ29kIGlzIGZyb20gRmVicnVhcnkgMjAyNiB0bwpPY3RvYmVyIDIwMjkgYW5kIGZ1cnRoZXIgYWNrbm93bGVkZ2VzIHRoYXQgdGhlCmV4cGVjdGVkIG51bWJlciBvZiBlbnJvbGxlZCBzdHVkeSBzdWJqZWN0cyBhdCB0aGUKSW5zdGl0dXRpb24gaXMgdHdlbHZlICgxMikgcGF0aWVudHMuCgpTcG9sZcSNbm9zdCBMaWxseSBvY2XFiHVqZSBwxZnDrWxlxb5pdG9zdCBzcG9sdXByYWNvdmF0Cm5hIFN0dWRpaSBzZSB6ZHJhdm90bmlja8O9bSB6YcWZw616ZW7DrW0KYSB6a291xaFlasOtY8OtbS4KClNwb2xlxI1ub3N0IExpbGx5IHBvZHBpc2VtIHTDqXRvIHNtbG91dnkgcG90dnJ6dWplLArFvmUgb8SNZWvDoXZhbsOhIGRvYmEgcHJvdsOhZMSbbsOtIHN0dWRpZSBqZSBvZCDDum5vcmEKMjAyNiBkbyDFmcOtam5hIDIwMjksIGEgesOhcm92ZcWIIHBvdHZyenVqZSwgxb5lCnDFmWVkcG9rbMOhZGFuw70gcG/EjWV0IHphxZlhemVuw71jaCBzdWJqZWt0xa8KaG9kbm9jZW7DrSDEjWluw60gdmUgemRyYXZvdG5pY2vDqW0gemHFmcOtemVuw60gZHZhbsOhY3QKKDEyKSBwYWNpZW50xa8uCgogCgpXSEVSRUFTIHRoZSBTdHVkeSBpcyBzcG9uc29yZWQgYnkgRWxpIExpbGx5IGFuZApDb21wYW55ICjigJxTcG9uc29yYWEpIFdpdGggcmVnaXN0ZXJlZCBvZmZsY2UgaW4gTGlsbHkKQ29ycG9yYXRlIENlbnRlciBJbmRpYW5hcG9saXMsIEluZGlhbmEgNDYyNTgsIFVTQSwKVkFUIE5vLiAzNS0wNDcwOTUwOyBXaGlsZSB0aGUgRWxpIExpbGx5IGFuZApDb21wYW55IGlzIG5vdCBhIHBhcnR5IHRvIHRoZSBBZ3JlZW1lbnQsIEVsaSBMaWxseQpDb3JrIExpbWl0ZWQgc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yIGVuc3VyaW5nCmNvbXBsaWFuY2UgV2l0aCB0aGUgU3BvbnNvxaVzIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMKQWdyZWVtZW50LgoKWmFkYXZhdGVsZW0gU3R1ZGllIGplIHNwb2xlxI1ub3N0IEVsaSBMaWxseSBhbmQKQ29tcGFueSAoZMOhbGUg4oCeWmFkYXZhdGVs4oCcKSwgc2Ugc8OtZGxlbSBMaWxseQpDb3Jwb3JhdGUgQ2VudGVyIEluZGlhbmFwb2xpcywgSW5kaWFuYSA0NjI1OCwKVVNBLCBkYcWIb3bDqSBpZGVudGlmaWthxI1uw60gxI0uIHNwb2xlxI1ub3N0aSAzNS0KMDQ3MDk1MDsgc3BvbGXEjW5vc3QgRWxpIExpbGx5IGFuZCBDb21wYW55IG5lbsOtCnN0cmFub3UgU21sb3V2eSwgemEgcGxuxJtuw60gesOhdmF6a8WvIGEgcG92aW5ub3N0w60KeiB0w6l0byBTbWxvdXZ5IG9kcG92w61kw6Egc3BvbGXEjW5vc3QgRWxpIExpbGx5IENvcmsKTGltaXRlZC4KCiAKCldIRVJFQVMgRWxpIExpbGx5IENvcmsgTGltaXRlZCBpcyBhdXRob24nc2VkIHRvCmFjdCBhcyBFbGkgTGlsbHkgYW5kIEMwMW5wYW55N3NsZWdhMSByZXByZXNlbnRhdGl2ZSBpbgp0aGUgRXVyb3BlYW4gVW5pb24gYnkgdGhlIHZpbnVlIG9mIGEgcHJveHkvbWFuZGF0ZS4KClNwb2xlxI1ub3N0IEVsaSBMaWxseSBDb3JrIExpbWl0ZWQgamUgb3Byw6F2bsSbbmEKamVkbmF0IGpha28gcHLDoXZuw60gesOhc3R1cGNlIHNwb2xlxI1ub3N0aSBFbGkgTGlsbHkKYW5kIENvbXBhbnkgdmFyb3Bza2UgdW5paSBuYSB6w6FrbGFkxJsgcGxuw6kKbW9jaSAvIHBvdsSbxZllbsOtLgoKIAoKV0hFUkVBUyB0aGUgdGVubnMgIkxpbGx54oCcIGFuZCDigJxTcG9uc29y4oCcIG1heSBiZQp1c2VkIGludGVyY2hhbmdlYWJseSBpbiB0aGlzIGRvY3VtZW50IHRvIHJlZmVyIHRvCmVpdGhlciBFbGkgTGlsbHkgQ29yayBMaW1pdGVkLCBFbGkgTGlsbHkgYW5kIENvbXBhbnksCm9yIGJvdGgsIGRlcGVuZGluZyBvbiB0aGVpciByZXNwZWN0aXZlIHJvbGVzIGluIHRoZQpTdHVkeS4KClbDvXJhenkg4oCec3BvbGXEjW5vc3QgTGlsbHnigJwgYeKAnlphZGF2YXRlbOKAnCBtb2hvdQpiw710IHYgdG9tdG8gZG9rdW1lbnR1IHBvdcW+w612w6FueSB6YW3Em25pdGVsbsSbCmEgb3puYcSNb3ZhdCBidcSPIHNwb2xlxI1ub3N0IEVsaSBMaWxseSBDb3JrCkxpbWl0ZWQsIG5lYm8gc3BvbGXEjW5vc3QgRWxpIExpbGx5IGFuZCBDb21wYW55LApuZWJvIHDFmcOtcGFkbsSbIG9ixJsgc3BvbGXEjW5vc3RpIHBvZGxlIGplamljaCByb2xlIHZlClN0dWRpaS4KCiAKCldIRVJFQVMgRWxpIExpbGx5IENvcmsgTGltaXRlZCBoYXMgZW50ZXJlZCBpbnRvLApvciBXaWxsIGVudGVyIGludG8sIGEgc2VwYXJhdGUgYWdyZWVtZW50KHMpIFdpdGggRVVDCktsaW5pa2EgTGliZXJlY20gcy5yLm8uLCBXaG8gc2hhbGwgc2VydmUgYXMgcHJvdmlkZXIKb2YgZGVuc2l0b21ldHJ5IHNlcnZpY2VzLgoKU3BvbGXEjW5vc3QgRWxpIExpbGx5IENvcmsgTGltaXRlZCB1emF2xZllbGEgbmVibwp1emF2xZllIHNhbW9zdGF0bm91IHNtbG91dnUgcyBFVUMgS2xpbmlrYQpMaWJlcmVjIHMuci5vLiwga3RlcsOhIGJ1ZGUgcGxuaXQgZnVua2NpIHBvc2t5dG92w6Fuw60Kc2x1xb5lYiBkZW56aXRvbWV0cmllLgoKIAoKV0hFUkVBUyBFbGkgTGlsbHkgQ29yayBMaW1pdGVkLCBJbnN0aXR1dGlvbiwgYW5kCnRoZSBJbnZlc3RpZ2F0b3IgYWxzbyBpbmRpdmlkdWFsbHkgcmVmZXJyZWQgdG8gYXMK4oCcUGFydHkiIGFuZCBjb2xsZWN0aXZlbHkgYXMg4oCcUGFydGllcyIuCgpTcG9sZcSNbm9zdCBFbGkgTGlsbHkgQ29yayBMaW1pdGVkLCBaZHJhdm90bmlja8OpCnphxZnDrXplbsOtIGFaa291xaFlasOtY8OtIGpzb3UgZMOhbGUgamVkbm90bGl2xJsKb3puYcSNb3bDoW5pIHRha8OpIGpha28g4oCeU3RyYW5h4oCcIGFzcG9sZcSNbsSbIGpha28K4oCeU3RyYW554oCcLgoKIAoKTk9XLCBUSEVSRUZPUkUgUGFydGllcyBhZ3JlZSB0byBhc3N1bWUgdGhlCmZvbGxvd2luZyBvYmxpZ2F0aW9ucyBpbiBleGVjdXRpbmcgdGhpcyBBZ3JlZW1lbnQuCgpWWkhMRURFTSBLIFbDncWgRSBVVkVERU7DiU1VIHNlClN0cmFueSBkb2hvZGx5IG5hIHV6YXbFmWVuw60gdMOpdG8gU21sb3V2eSwga3Rlcm91Cm5hIHNlYmUgYmVyb3UgbsOhc2xlZHVqw61jw60gesOhdmF6a3kgYSBwb3Zpbm5vc3RpLgoKIAoKIAoKIAoKIAoKIAoKMS4gSU5WRVNUSUdBVE9SIEFORCBJTlNUSVRVVElPTiBaw4FWQVpLWSBaS09VU0VKw41Dw41ITwpPQkxJR0FUSU9OUyBBIFpEUkFWT1ROSUNLw4lITyBaQVLDjVpFTsONCjEuMS4gQ29uZHVjdCBvZiB0aGUgU3R1ZHYgUHJvdsOhZMSbbsOtIFN0dWRpZQoKIAoKIAoKIAoKIAoKUGFnZSAyIG9mNDUgLyBTdHJhbmF6IHogNDUKCiAKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnNpb246IFNlcHRlbWJlciAyMDI0CgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJ6ZTogesOhxZnDrSAyMDI0CgogCgoxLjEuMS4KCkNvbXBsaWFuY2UgV2l0aCBQcm90b2NvbCBMYXdzIFJlZ3VsYXRpb25zOgpJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIGFncmVlIHRoYXQgSW52ZXN0aWdhdG9yCldpbGwgcGVyc29uYWxseSBjb25kdWN0IGFuZC9vciBzdXBlcnZpc2UgdGhlIFN0dWR5IGF0Ckluc3RpdHV0aW9uIGFuZCBhbnkgTGlsbHktYXBwcm92ZWQgc3ViLXNpdGVzIG9yCnNhdGVsbGl0ZSBzaXRlcyAo4oCcU3R1ZHkgU2l0ZXNhYSksIGlmIGFwcGxpY2FibGUuCkludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gYWdyZWUgdGhhdCBJbnZlc3RpZ2F0b3IKYW5kIEluc3RpdHV0aW9uIFdpbGwgbm90IHVzZSBzdWItc2l0ZXMgb3Igc2F0ZWxsaXRlIHNpdGVzCmluIHRoZSBjb25kdWN0IG9mIHRoZSBTdHVkeSB1bmxlc3MgTGlsbHkgYW5kL29yCmNvbXBldGVudCBFdGhpY2FsIENvbW1pdHRlZSAo4oCcRUMiKSBoYXMgZ2l2ZW4Kd3JpdHRlbiBhcHByb3ZhbCBmb3IgdXNlIG9mIHRoZSBzdWItc2l0ZXMgYW5kIHNhdGVsbGl0ZQpzaXRlcy4KClNvdWxhZCBzIFByb3Rva29sZW0gcGxhdG7DvW1pIHByw6F2bsOtbWkgcMWZZWRwaXN5CmFuYcWZw616ZW7DrW1pOiBaa291xaFlasOtY8OtIGFaZHJhdm90bmlja2UgemHFmcOtemVuw60Kc2UgZG9ob2RsaSwgxb5lIFprb3XFoWVqw61jw60gYnVkZSBTdHVkaWkgdmUKemRyYXZvdG5pY2vDqW0gemHFmcOtemVuw60gYW5hIHbFoWVjaCBkw61sxI3DrWNoIG5lYm8KcMWZaWRydcW+ZW7DvWNoIHByYWNvdmnFoXTDrWNoIHNjaHbDoWxlbsO9Y2ggc3BvbGXEjW5vc3TDrQpMaWxseSAoZMOhbGUg4oCeTcOtc3RhIHByb3bDoWTEm27DrSBrbGluaWNrw6lobwpob2Rub2NlbsOt4oCcKSBvc29ibsSbIHByb3bDoWTEm3QgbmVibyBidWRlIG5hIGplasOtCnByb3bDoWTEm27DrSBkb2hsw63FvmV0LiBaa291xaFlasOtY8OtIGFaZHJhdm90bmlja2UKemHFmcOtemVuw60gc2UgemF2YXp1asOtLCDFvmUgbmVidWRvdSBwxZlpIHByb3bDoWTEm27DrQpTdHVkaWUgdnl1xb7DrXZhdCBkw61sxI3DrSBuZWJvIHDFmWlkcnXFvmVuw6kgcHJhY292acWhdMSbLApwb2t1ZCBzcG9sZcSNbm9zdCBMaWxseSBhL25lYm8gcMWZw61zbHXFoW7DoSBldGlja8OhCmtvbWlzZSAoZMOhbGUg4oCeRUvigJwpIG5lcG9za3l0bm91IHDDrXNlbW7DvSBzb3VobGFzCnN2eXXFvsOtdsOhbsOtbSB0YWtvdsO9Y2ggZMOtbMSNw61jaCBhcMWZaWRydcW+ZW7DvWNoCnByYWNvdmnFocWlLgoKIAoKSW52ZXN0aWdhdG9yIGFuZCBJbnN0aXR1dGlvbiBhZ3JlZSBhbmQgc2hhbGwgZW5zdXJlIHRoYXQKYWxsIG90aGVyIHBlcnNvbm5lbCwgZW1wbG95ZWVzLCBPZmZpY2VycywgY29udHJhY3RvcnMKYW5kIGFnZW50IG9mIEludmVzdGlnYXRvciAoaW5jbHVkaW5nIHN1YiBpbnZlc3RpZ2F0b3JzKQphbmQgSW5zdGl0dXRpb24gV2hvIGFyZSBpbnZvbHZlZCBpbnRvIHRoZSBTdHVkeQoo4oCcU3R1ZHkgUGVyc29ubmVsYWEpIHVuZGVyc3RhbmQgYW5kIGFncmVlIHRvIGNvbXBseQpXaXRoIHRoZSBmb2xsb3dpbmc6IChpKSBhbGwgY29uZGl0aW9ucywgcmVxdWlyZW1lbnRzLAphbmQgd3JpdHRlbiBkaXJlY3Rpb25zIHNwZWNpZmllZCBieSBMaWxseSwgKGlpKSB0aGUKUHJvdG9jb2wsIGFuZCBQcm90b2NvbCBhbWVuZG1lbnRzIGFuZC9vciBhZGRlbmRhCnRoZXJlb2Y7IChpaWkpIEdvb2QgQ2xpbmljYWwgUHJhY3RpY2UgR3VpZGVsaW5lczsgKGl2KQp0aGUgYXBwcm92YWwgb2YgdGhlIEVDOyAodikgZGF0YSBwcml2YWN5IGxhd3M7ICh2aSkgYWxsCmFwcGxpY2FibGUgbGF3cywgcmVndWxhdGlvbnMsIGFuZCBzdGFuZGFyZHM7ICh2aWkpIGFuZAp0aGUgcHJvdmlzaW9ucyBvZiB0aGlzIEFncmVlbWVudC4gSW52ZXN0aWdhdG9yIGFuZC9vcgpJbnN0aXR1dGlvbiBzaGFsbCBlbnN1cmUgdGhhdCBhbGwgb3RoZXIgcGVyc29ubmVsLAplbXBsb3llZXMsIHNlbmlvciBzdGFmZiwgY29udHJhY3RvcnMsIGFuZApyZXByZXNlbnRhdGl2ZXMgb2YgSW52ZXN0aWdhdG9yIChpbmNsdWRpbmcgY28tCmludmVzdGlnYXRvcnMgYW5kIGFueSBwZXJzb25uZWwgb2YgSW5zdGl0dXRpb24KaW52b2x2ZWQgaW4gdGhlIFN0dWR5LCBoZXJlaW5hZnRlciByZWZlcnJlZCB0byBhcyB0aGUK4oCcU3R1ZHkgVGVhbSBNZW1iZXJzYWEpIGFyZSBtYWRlIGF3YXJlIG9mIGFuZApjb21wbHkgV2l0aCB0aGUgcmVsZXZhbnQgcHJvdmlzaW9ucy4KClprb3XFoWVqw61jw60gYSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIHNlIHphdmF6dWrDrSwgxb5lCmJ1ZG91IGRvZHLFvm92YXQ6IChpKSB2ZcWha2Vyw6kgcG9kbcOtbmt5LApwb8W+YWRhdmt5IGEgcMOtc2VtbsOpIHBva3lueSBzdGFub3ZlbmUKc3BvbGXEjW5vc3TDrSBMaWxseSwgKGlpKVByb3RvazAxIGEgamVobyBkb2RhdGt5CmEvbmVibyBkb3BsxYhreSwgKGlpaSkgc23Em3JuaWNlIHBybyBzcHLDoXZub3UKa2xpbmlja291IHByYXjDrSwgKGl2KSBzb3VobGFzbsOpIHN0YW5vdmlza2EgdnlkYW7DoQpldGlja291IGtvbWlzw60sICh2KXAxYXRuZSBwcsOhdm7DrSBwxZllZHBpc3kKb29jaHJhbsSbIG9zb2Juw61jaCDDumRhasWvLCAodmkpIHZlxaFrZXLDqSBwbGF0bsOpCnByw6F2bsOtIHDFmWVkcGlzeSwgbmHFmcOtemVuw60gYW5vbm55ICh2aWkpCmF1c3Rhbm92ZW7DrSB0ZXRvIFNtbG91dnkuIFprb3XFoWVqw61jw60gYS9uZWJvClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw61hIHphamlzdMOtLCBhYnkgc2Ugc25pbWkKc2V6bsOhbWlsaSBhZG9kcsW+b3ZhbGkgamUgdGFrZSB2xaFpY2huaSBvc3RhdG7DrQoKcHJhY292bsOtY2ksIHphbcSbc3RuYW5jaSwgdmVkb3Vjw60gcHJhY292bsOtY2ksCnNtbHV2bsOtIGRvZGF2YXRlbGUgYSB6w6FzdHVwY2kgWmtvdcWhZWrDrWPDrWhvCih2xI1ldG7EmyBzcG9sdXprb3XFoWVqw61jw61jaCBhIHpkcmF2b3RuaWNrw6lobwoKemHFmcOtemVuw60gcG9kw61sZWrDrWPDrSBzZSBuYSBTdHVkaWkgKGTDoWxlIOKAnsSMbGVub3bDqQpzdHVkaWpuw61obyB0w71tdeKAnCkuCgogCgogCgogCgpBbnRpLUNvcnJ1cHRpb246IEluIGNhcnJ5aW5nIG91dCBJbnZlc3RpZ2F0b3IgYW5kCkluc3RpdHV0aW/Ej3MgcmVzcG9uc2liaWxpdGllcyB1bmRlciB0aGlzIEFncmVlbWVudCwKSW52ZXN0aWdhdG9yIGFuZCBJbnN0aXR1dGlvbiBhZ3JlZSB0byBjb21wbHkgV2l0aCBhbGwKYXBwbGljYWJsZSBhbnRpLWJyaWJlcnkgbGF3cyBpbiB0aGUgY291bnRyeSBXaGVyZQpJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIGhhdmUgSW5zdGl0dXRpb27FoQpwcmluY2lwYWwgcGxhY2Ugb2YgYnVzaW5lc3MgYW5kIFdoZXJlIEludmVzdGlnYXRvciBhbmQKSW5zdGl0dXRpb24gY29uZHVjdCBhY3Rpdml0aWVzIHVuZGVyIHRoaXMgQWdyZWVtZW50LgpJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIGFncmVlIHRvIGNvbXBseSBXaXRoIGFsbAphcHBsaWNhYmxlIHRyYWRlIHNhbmN0aW9ucywgZXhwb3J0IGNvbnRyb2wgYW5kCmltcG90dC9jdXN0b21zIGxhd3MgYW5kIHJlZ3VsYXRpb25zIHdoaWNoIGdlbmVyYWxseQpwcm9oaWJpdHMgdGhlIG9mZmVyLCBwcm9taXNlLCBwYXltZW50LCBvciBnaXZpbmcgb2YKYW55dGhpbmcgb2YgdmFsdWUsIGRpcmVjdGx5IG9yIGluZGlyZWN0bHksIHRvIGFueQpnb3Zlcm5tZW50IG9mZmxjaWFsIGZvciB0aGUgcHVycG9zZSBvZiBvYnRhaW5pbmcgb3IKcmV0YWluaW5nIGJ1c2luZXNzIG9yIGFueSBpbXByb3BlciBhZHZhbnRhZ2UgLiBGb3IKcHVycG9zZXMgb2YgdGhpcyBzZWN0aW9uLCDigJxnb3Zlcm5tZW50IG9mZmljaWFsYWEKbWVhbnMgYW55IG9mZmljaWFsLCBvZmZsY2VyLCByZXByZXNlbnRhdGl2ZSwgb3IKZW1wbG95ZWUgb2YsIGluY2x1ZGluZyBhbnkgZG9jdG9yIGVtcGxveWVkIGJ5LCBhbnkKbm9uLVUuUy4gZ292ZXJubWVudCBkZXBhcnRtZW50LCBhZ2VuY3ksIG9yCmluc3RydW1lbnRhbGl0eSAoaW5jbHVkaW5nIGFueSBnb3ZlbW1lbnQtb3duZWQgb3IKCiAKCiAKClByb3Rpa29ydXDEjW7DrSB6w6FzYWR5OiBQxZlpIHBsbsSbbsOtIHBvdmlubm9zdMOtClprb3XFoWVqw61jw61obyBhWmRyYXZvdG5pY2tlaG8gemHFmcOtemVuw60genRldG8KClNtbG91dnkgc2UgWmtvdcWhZWrDrWPDrSBhWmRyYXZvdG5pY2tlIHphxZnDrXplbsOtCnphdmF6dWrDrSBkb2Ryxb5vdmF0IHbFoWVjaG55IHBsYXRuw6kgcHLDoXZuw60gcMWZZWRwaXN5Cnpha2F6dWrDrWPDrSB1cGzDoWNlbsOtIHZ6ZW1pLCBrZGUgbWFqw60gc3bDqSBobGF2bsOtCnPDrWRsbyBha2RlIHZ5a29uw6F2YWrDrSDEjWlubm9zdGkgcG9kbGUgdMOpdG8KU21sb3V2eS4gWmtvdcWhZWrDrWPDrSBhIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gc2UKemF2YXp1asOtIGRvZHLFvm92YXQgdmXFoWtlcsOpIHBsYXRuw6kgcHLDoXZuw60gcMWZZWRwaXN5CmEgbmHFmcOtemVuw60gdMO9a2Fqw61jw60gc2Ugb2JjaG9kbsOtY2ggc2Fua2PDrSwga29udHJvbHkKdsO9dm96dSwgZG92b3p1IGEgY2VsLCBrdGVyZSBvYmVjbsSbIHpha2F6dWrDrQpuYWLDrXpldCwgc2xpYm92YXQsIHZ5cGzDoWNldCBuZWJvIHBvc2t5dG92YXQgcMWZw61tbwpuZWJvIG5lcMWZw61tbyBqYWtla29saSBob2Rub3Ruw6kgcGxuxJtuw60gw7rFmWVkbsOtbQpvc29iw6FtIHphIMO6xI1lbGVtIHrDrXNrw6Fuw60gbmVibyB1ZHLFvmVuw60gc2kKb2JjaG9kbsOtIHpha8Ohemt5IG5lYm8gamFrZWtvbGkgbmVwYXTFmWnEjW7Emwp2w71ob2R5LiBQcm8gw7rEjWVseSB0w6l0byDEjcOhc3RpIHpuYW1lbsOhIHBvamVtCuKAnsO6xZllZG7DrSBvc29iYeKAnCBqYWtlaG9rb2xpIMO6xZllZG7DrWthLCB2ZWRvdWPDrWhvCnByYWNvdm7DrWthLCB6w6FzdHVwY2UgbmVibyB6YW3Em3N0bmFuY2UsIGEgcm92bsSbxb4KamFrZWhva29saSBsw6lrYcWZZSwga3RlcsO9IGplIHphbcSbc3RuYW5jZW0KamFrZWhva29saSBzdMOhdG7DrWhvIMO6xZlhZHUsIG1pbmlzdGVyc3R2YSBuZWJvCgogCgpQYWdlIDMgb2Y0NSAvIFN0cmFuYTMgeiA0NQoKIAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnplOiB6w6HFmcOtIDIwMjQKCiAKCmNvbnRyb2xsZWQgY29tbWVyY2lhbCBlbnRlcnByaXNlKSBvciBhbnkgb2ZmaWNpYWwgb2YgYQpwdWJsaWMgaW50ZXJuYXRpb25hbCBvcmdhbml6YXRpb24gb3IgcG9saXRpY2FsIHBhcnR5IG9yCmNhbmRpZGF0ZSBmb3IgcG9saXRpY2FsIG9mZmxjZS4gQWRkaXRpb25hbGx5LCBpZgpJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIG9yIGFueSBvZiBJbnN0aXR1dGlvbsWhCm93bmVycywgZGlyZWN0b3JzLCBlbXBsb3llZXMsIGFnZW50cywgYW5kIGNvbnN1bHRhbnRzCmFyZSBnb3Zlcm5tZW50IG9mZmljaWFscywgSW52ZXN0aWdhdG9yIGFuZCBJbnN0aXR1dGlvbgphZ3JlZSB0aGF0IExpbGx5dnMgcGF5bWVudCBvZiBJbnZlc3RpZ2F0b3IgYW5kCkluc3RpdHV0aW9uIGluIGNvbm5lY3Rpb24gV2l0aCB0aGlzIEFncmVlbWVudCBpcyBub3QKaW50ZW5kZWQgdG8gaW5mbHVlbmNlIGFueSBkZWNpc2lvbiB0aGF0IGFueSBpbmRpdmlkdWFsCm1heSBtYWtlIGluIHRoZWlyIGNhcGFjaXR5IGFzIGEgZ292ZXJubWVudCBvZmZpY2lhbC4KCnbDvWtvbm7DqWhvIG9yZ8OhbnUgamluZSB2bMOhZHkgbmXFviB2bMOhZHkgVVNBCih2xI1ldG7EmyB2ZcWha2Vyw71jaCBrb21lcsSNbsOtY2ggcG9kbmlrxa8Kdmxhc3RuxJtuw71jaCBuZWJvIG92bMOhZGFuw71jaCBzdMOhdGVtKSwgbmVibwpqYWtlaG9rb2xpIHByYWNvdm7DrWthIHZlxZllam7DqSBtZXppbsOhcm9kbsOtCm9yZ2FuaXphY2UgxI1pIHBvbGl0aWNrw6kgc3RyYW55IG5lYm8ga2FuZGlkw6F0YSBuYQpwb2xpdGlja291IGZ1bmtjaS4gUG9rdWQganNvdSBaa291xaFlasOtY8OtCmEgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBuZWJvIG7Em2t0ZXLDvSB6dmxhc3Ruw61rxa8sCsSNbGVuxa8gc3RhdHV0w6Ftw61obyBvcmfDoW51LCB6YW3Em3N0bmFuY8WvLCB6w6FzdHVwY8WvCm5lYm8ga29uenVsdGFudMWvIHpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrQrDusWZZWRuw61taSBvc29iYW1pLCBzb3VobGFzw60gWmtvdcWhZWrDrWPDrQphWmRyYXZvdG5pY2tlIHphxZnDrXplbsOtIHN0w61tLCDFvmUgxI3DoXN0a3kgaHJhemVuw6kKc3BvbGXEjW5vc3RpIExpbGx5IFprb3XFoWVqw61jw61tdSBhIFpkcmF2b3RuaWNrZW11CnphxZnDrXplbsOtIHYgc291dmlzbG9zdGkgcyB0b3V0byBTbWxvdXZvdSBuZW1hasOtIHphCmPDrWwgb3ZsaXbFiG92YXQgcm96aG9kbnV0w60sIGt0ZXLDoSBtxa/FvmUga2Rva29saSDEjWluaXQKdmUgZnVua2NpIMO6xZllZG7DrSBvc29ieS4KCiAKCkludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gZnVydGhlciByZXByZXNlbnQgdGhhdApuZWl0aGVyIEludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gbm9yIGFueSBvZgpJbnN0aXR1dGlvxI9zIG93bmVycywgZGlyZWN0b3JzLCBlbXBsb3llZXMsIGFnZW50cywgb3IKY29uc3VsdGFudHMgV2lsbCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IG9mZmVyIHRvIHBheSwKcHJvbWlzZSB0byBwYXksIG9yIGdpdmUgYW55dGhpbmcgb2YgdmFsdWUgdG8gYW55CmdvdmVybm1lbnQgb2ZmbGNpYWwgZm9yIHB1cnBvc2VzIG9mIChpKSBpbmZsdWVuY2luZwphbnkgYWN0IG9yIGRlY2lzaW9uIG9mIHN1Y2ggZ292ZW1tZW50IG9mZmxjaWFsIGluIGhpcwpvZmZsY2lhbCBjYXBhY2l0eTsgKGlpKSBpbmR1Y2luZyBzdWNoIGdvdmVtbWVudApvZmZsY2lhbCB0byBkbyBvciBvbWl0IHRvIGRvIGFueSBhY3QgaW4gdmlvbGF0aW9uIG9mIHRoZQpsYXdmdWwgZHV0eSBvZiBzdWNoIG9mZmljaWFsOyAoaWlpKSBzZWN1biduZyBhbnkKaW1wcm9wZXIgYWR2YW50YWdlOyBvciAoaXYpIGluZHVjaW5nIHN1Y2gKZ292ZXJubWVudCBvZmZpY2lhbCB0byB1c2UgaGlzIGluZmx1ZW5jZSBXaXRoIHRoZQpnb3Zlcm5tZW50IG9yIGluc3RydW1lbnRhbGl0eSB0aGVyZW9mIHRvIGFmZmVjdCBvcgppbmZsdWVuY2UgYW55IGFjdCBvciBkZWNpc2lvbiBvZiB0aGUgZ292ZW1tZW50IG9yCnN1Y2ggaW5zdHJ1bWVudGFsaXR5IFdpdGggcmVzcGVjdCB0byBhbnkgYWN0aXZpdGllcwp1bmRlcnRha2VuIHJlbGF0aW5nIHRvIHRoaXMgQWdyZWVtZW50LgoKWmtvdcWhZWrDrWPDrSBhIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gZMOhbGUgcHJvaGxhxaF1asOtLArFvmUgb25pIHNhbWkgYW5pIMW+w6FkbsO9IHp2bGFzdG7DrWvFrywgxI1sZW7FrwpzdGF0dXTDoXJuw61obyBvcmfDoW51LCB6YW3Em3N0bmFuY8WvLCB6w6FzdHVwY8WvIG5lYm8Ka29uenVsdGFudMWvIHpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSBuZWJ1ZG91CnDFmcOtbW8gYW5pIG5lcMWZw61tbyBwb3NreXRvdmF0LCBuYWLDrXpldCBuZWJvCnNsaWJvdmF0IGhvZG5vY2Vuw6kgcGxuxJtuw60gw7rFmWVkbsOtbSBvc29iw6FtIHNlCnrDoW3Em3JlbSAoaSlvdjFpdm5pdCBqZWRuw6Fuw60gbmVibyByb3pob2RvdsOhbsOtCsO6xZllZG7DrSBvc29ieSB2IGplasOtIMO6xZllZG7DrSBmdW5rY2ksIChpaSkgcMWZaW3Em3Qgw7rFmWVkbsOtCm9zb2J1LCBhYnkgdnJvenBvcnUgcyBqZWrDrSB6w6Frb25ub3UgcG92aW5ub3N0w60KdcSNaW5pbGEsIG5lYm8gbmFvcGFrIG5ldcSNaW5pbGEgbsSbamFrw70gw7prb24sCihpaWkpIHphamlzdGl0IHNpIGpha291a29saSBuZXBhdMWZacSNbm91IHbDvWhvZHUgbmVibwooaXYpIHDFmWltxJt0IMO6xZllZG7DrSBvc29idSwgYWJ5IHZ5dcW+aWxhIHN2w6lobyB2bGl2dQp2ZSBzdMOhdG7DrSBzcHLDoXbEmyBuZWJvIHZuxJtrdGVyZW0gemplasOtY2ggb3Jnw6Fuxa8Ka292bGl2bsSbbsOtIGpha2Vob2tvbGkgw7prb251IG5lYm8gcm96aG9kbnV0w60Kc3TDoXRuw60gc3Byw6F2eSBuZWJvIGplasOtaG8gb3Jnw6FudSBzb2hsZWRlbSBuYQrDumtvbnkgcHJvdsOhZMSbbsOpIHYgc291dmlzbG9zdGkgcyB0b3V0byBTbWxvdXZvdS4KCiAKCkFkZGl0aW9uYWxseSwgSW52ZXN0aWdhdG9yIGFuZC9vciBJbnN0aXR1dGlvbiBXaWxsCm1ha2UgcmVhc29uYWJsZSBlZmZvcnRzIHRvIGNvbXBseSBXaXRoIHJlcXVlc3RzIGZvcgppbmZvbm5hdGlvbiwgaW5jbHVkaW5nIGFuc3dlcmluZyBxdWVzdGlvbm5haXJlcyBhbmQKbmFycm93bHkgdGFpbG9yZWQgYXVkaXQgaW5xdWlyaWVzLCB0byBlbmFibGUgTGlsbHkgdG8KZW5zdXJlIGNvbXBsaWFuY2UgV2l0aCBhcHBsaWNhYmxlIGFudGktYnJpYmVyeSBsYXdzLgoKWmtvdcWhZWrDrWPDrSBhL25lYm8gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBidWRvdQp0YWvDqSBzIHZ5bmFsb8W+ZW7DrW0gcMWZaW3Em8WZZW7DqWhvIMO6c2lsw60gcG9za3l0b3ZhdApwb8W+YWRvdmFuw6kgaW5mb3JtYWNlIHbEjWV0bsSbIHZ5cGzFiG92w6Fuw60KZG90YXpuw61rxa8gYSBvZHBvdsOtZMOhbsOtIG5hIGtvbmtyw6l0bsSbamkgemFtxJvFmWVuw6kKZG90YXp5IHYgcsOhbWNpIGF1ZGl0xa8sIGFieSBzcG9sZcSNbm9zdCBMaWxseSBtb2hsYQpkb2Ryxb5vdmF0IHBsYXRuw6kgcHLDoXZuw60gcMWZZWRwaXN5IHpha2F6dWrDrWPDrQp1cGzDoWNlbsOtLgoKIAoKSW52ZXN0aWdhdG9yIGFuZCBJbnN0aXR1dGlvbiBhZ3JlZSB0aGF0TGkxMXk3cyBwYXltZW50CnRvIEludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gaW4gY29ubmVjdGlvbiBXaXRoIHRoZQpzZXJ2aWNlcyB0byBiZSBwcm92aWRlZCB1bmRlciB0aGlzIEFncmVlbWVudCBpcyBub3QKaW50ZW5kZWQgdG8gaW5mbHVlbmNlIGFueSBkZWNpc2lvbiBJbnZlc3RpZ2F0b3IgYW5kCkluc3RpdHV0aW9uIG1heSBtYWtlIHJlZ2FyZGluZyB0aGUgcHJlc2NyaXB0aW9uIG9mCkxpbGx5IG1lZGljaW5lcyBvciB0byBvdGhlcndpc2UgaW5mbHVlbmNlIGFueSBwZW5kaW5nCm9yIGZ1dHVyZSBMaWxseSBidXNpbmVzcy4KClprb3XFoWVqw61jw60gYSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIHNvdWhsYXPDrSBzIHTDrW0sCsW+ZSDEjcOhc3RreSBocmF6ZW7DqSBzcG9sZcSNbm9zdMOtIExpbGx5IFprb3XFoWVqw61jw61tdQphIFpkcmF2b3RuaWNrZW11IHphxZnDrXplbsOtIHYgc291dmlzbG9zdGkgc2UKc2x1xb5iYW1pIHBvc2t5dG92YW7DvW1pIG5hIHrDoWtsYWTEmyB0w6l0byBTbWxvdXZ5Cm5lbWFqw60gemEgY8OtbCBvdmxpdm5pdCByb3pob2RvdsOhbsOtIFprb3XFoWVqw61jw61obyBhCnpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSBvaGxlZG7EmyBwxZllZGVwaXNvdsOhbsOtCmzDqcSNaXYgc3BvbGXEjW5vc3RpIExpbGx5IGFuaSBqaW5hayBvdmxpdm5pdCBqYWtla29saQpwcm9iw61oYWrDrWPDrSBuZWJvIGJ1ZG91Y8OtIG9iY2hvZG7DrSBha3Rpdml0eQpzcG9sZcSNbm9zdGkgTGlsbHkuCgogCgpJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIHVuZGVyc3RhbmQgYW5kIGFncmVlIHRoZQpFbGkgTGlsbHkgQ29yayBMaW1pdGVkIGlzIHRoZSByZWNpcGllbnQgb2YgdGhlIHNlcnZpY2VzCnVuZGVyIHRoaXMgYWdyZWVtZW50LgoKWmtvdcWhZWrDrWPDrSBhIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60ganNvdSBzcm96dW3Em25pCnMgdMOtbSwgxb5lIHDFmcOtamVtY2VtIHNsdcW+ZWIgeiB0w6l0byBTbWxvdXZ5IGplCnNwb2xlxI1ub3N0IEVsaSBMaWxseSBDb3JrIExpbWl0ZWQsIGEgc291aGxhc8OtIHMgdMOtbS4KCiAKCiAKCiAKCkV4cG9ydCBDb250cm9sIFJlZ3VsYXRpb25zOiBJbnZlc3RpZ2F0b3IgYW5kCkluc3RpdHV0aW9uIGFncmVlIHRvIGNvbXBseSBXaXRoIGFsbCBFdXJvcGVhbiBVbmlvbgoKIAoKIAoKUMWZZWRwaXN5IG8ga29udHJvbGUgZyd2b3p1OiBaa291xaFlasOtY8OtCmFaZHJhdm90bmlja2UgemHFmcOtemVuw60gc2UgemF2YXp1asOtLCDFvmUgYnVkb3UKCiAKClBhZ2UgNCBvZjQ1IC8gU3RyYW5hIDQgeiA0NQoKIAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnplOiB6w6HFmcOtIDIwMjQKCiAKCnRyYWRlIHNhbmN0aW9ucyBhbmQgZXhwb3J0IGxhd3MgKGluY2x1ZGluZyBXaXRob3V0CmxpbWl0YXRpb24gQ291bmNpbCBSZWd1bGF0aW9uIChFQykgTm8uIDQyOC8yMDA5IChhcwphbWVuZGVkKSkuCgpkb2Ryxb5vdmF0IHZlxaFrZXLDqSBwxZllZHBpc3kgRXZyb3Bza2UgdW5pZQowIG9iY2hvZG7DrWNoIHNhbmtjw61jaCBhdsO9dm96dSAobmFwxZkuIG5hxZnDrXplbsOtClJhZHkgKEVTKSDEjS4gNDI4LzIwMDkpLCB2IHBsYXRuw6ltIHpuxJtuw60uCgogCgpTYW5jdGlvbnM6IEludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gcmVwcmVzZW50IGFuZAp3YXJyYW50cyB0aGF0IG5laXRoZXIgSW52ZXN0aWdhdG9yLCBJbnN0aXR1dGlvbiBhbmQsIHRvCnRoZSBiZXN0IG9mIHRoZWlyIGtub3dsZWRnZSwgaXRzIGRpcmVjdG9ycywgZXhlY3V0aXZlCk9mZmljZXJzLCBhZ2VudHMsIFNoYXJlaG9sZGVycywgbm9yIGFueSBwZXJzb24gaGF2aW5nCmEgY29udHJvbGxpbmcgaW50ZXJlc3QgaW4gSW5zdGl0dXRpb24gYXJlIChpKSBhIHBlcnNvbgp0YXJnZXRlZCBieSB0cmFkZSBvciBmaW5hbmNpYWwgc2FuY3Rpb25zIGluIGFjY29yZGFuY2UKV2l0aCBpbnRlcm5hdGlvbmFsIGFuZCBuYXRpb25hbCBsZWdhbCByZWd1bGF0aW9uczsgKGlpKQppbmNvcnBvcmF0ZWQgb3IgaGVhZHF1YXJ0ZXJlZCBpbiwgb3Igb3JnYW5pemVkIHVuZGVyCnRoZSBsYXdzIG9mLCBhIHRlbSd0b3J5IHN1YmplY3QgdG8gc2FuY3Rpb25zIGluCmFjY29yZGFuY2UgV2l0aCBpbnRlcm5hdGlvbmFsIGFuZCBuYXRpb25hbCBsZWdhbApyZWd1bGF0aW9ucyAoZWFjaCwgYSDigJxTYW5jdGlvbmVkIFRlcnJpdG9yeWFhKSBvciAoaWlpKQpkaXJlY3RseSBvciBpbmRpcmVjdGx5IG93bmVkIG9yIGNvbnRyb2xsZWQgYnkgc3VjaApwZXJzb25zICh0b2dldGhlciDigJxSZXN0cmljdGVkIFBlcnNvbiIpLgoKU2Fua2NlOiBaa291xaFlasOtY8OtIGEgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrQpwcm9obGHFoXVqw60gYSB6YXJ1xI11asOtIHNlLCDFvmUgb25pIHNhbWkgYSBwb2RsZSBqZWppY2gKbmVqbGVwxaHDrWhvIHbEm2RvbcOtIGFuaSBuaWtkbyB6IMSNbGVuxa8gc3RhdHV0w6FybsOtaG8Kb3Jnw6FudSwgdsO9a29ubsO9Y2ggxZnDrWTDrWPDrWNoIHByYWNvdm7DrWvFryB6w6FzdHVwY8WvLApha2Npb27DocWZxa8gbmVibyBwb2TDrWxuw61rxa8gdmxhc3Ruw61jw61jaCBrb250cm9sbsOtCnBvZMOtbCB2ZSB6ZHJhdm90bmlja8OpbSB6YcWZw616ZW7DrSAoaSkgbmVqc291Cm9zb2JhbWksIG5hIGt0ZXJlIHNlIHZ6dGFodWrDrSBvYmNob2Ruw60gbmVibwpmaW5hbsSNbsOtIHNhbmtjZSBwb2RsZSBtZXppbsOhcm9kbsOtY2ggYSBuw6Fyb2Ruw61jaApwcsOhdm7DrWNoIHDFmWVkcGlzxa8sIChpaSkgbmVqc291IG9zb2JhbWkKemFsb8W+ZW7DvW1pLCBtYWrDrWPDrW1pIHPDrWRsbyBhIG9yZ2FuaXpvdmFuw71taQpwb2RsZSB6w6Frb27FryDDunplbcOtLCBrdGVyw6kgcG9kbMOpaMOhIG9iZWNuw71tCnNhbmtjw61tIGRsZSBtZXppbsOhcm9kbsOtY2ggYSBuw6Fyb2Ruw61jaCBwcsOhdm7DrWNoCnDFmWVkcGlzxa8gKGTDoWxlIOKAnlNhbmtjaW9ub3ZhbsOpIMO6emVtw63igJwpIG5lYm8KKGlpaSkgbmVqc291IG9zb2JhbWkgcMWZw61tbyBuZWJvIG5lcMWZw61tbwp2bGFzdG7Em27DvW1pIG5lYm8gb3Zsw6FkYW7DvW1pIHRha292w71taSBvc29iYW1pCihkw6FsZSBzcG9sZcSNbsSbIOKAnlNhbmtjaW92YW7DoSBvc29iYeKAnCkuCgogCgpJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIGZ1cnRoZXIgcmVwcmVzZW50IGFuZAp3YXJyYW50cyB0aGF0IEludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gc2hhbGwgbm90aWZ5CkxpbGx5IGluIHdyaXRpbmcgaW1tZWRpYXRlbHkgaWYgSW52ZXN0aWdhdG9yLApJbnN0aXR1dGlvbiBvciBhbnkgb2YgaXRzIGRpcmVjdG9ycywgZXhlY3V0aXZlIE9mZmljZXJzLAphZ2VudHMsIFNoYXJlaG9sZGVycywgb3IgYW55IHBlcnNvbiBoYXZpbmcgYQpjb250cm9sbGluZyBpbnRlcmVzdCBpbiBJbnN0aXR1dGlvbiBiZWNvbWVzIGEKUmVzdHJpY3RlZCBQZXJzb24gb3IgaWZJbnN0aXR1dGlvbiBiZWNvbWVzIGRpcmVjdGx5IG9yCmluZGlyZWN0bHkgb3duZWQgb3IgY29udHJvbGxlZCBieSBvbmUgb3IgbW9yZQpSZXN0cmljdGVkIFBlcnNvbnMuCgpaa291xaFlasOtY8OtIGEgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBkw6FsZSBwcm9obGHFoXVqw60KYSB6YXJ1xI11asOtIHNlLCDFvmUgYnVkb3Ugc3BvbGXEjW5vc3QgTGlsbHkgbmVwcm9kbGVuxJsKcMOtc2VtbsSbIGluZm9ubm92YXQgdiBwxZnDrXBhZMSbLCDFvmUgYnkgc2Ugb25pIHNhbWkKbmVibyBwxZnDrXBhZG7EmyBuxJtrdGVyw70geiDEjWxlbsWvIGplamljaCBzdGF0dXTDoXJuw61obwpvcmfDoW51LCB2w71rb25uw70gxZnDrWRpY8OtIHByYWNvdm7DrWssIHrDoXN0dXBjZSwKdmxhc3Ruw61rIHBvZMOtbMWvIG5lYm8gamluw6Egb3NvYmEsIGt0ZXLDoSBtw6EgdiBkcsW+ZW7DrQprb250cm9sbsOtIHBvZMOtbCB2ZSB6ZHJhdm90bmlja8OpbSB6YcWZw616ZW7DrSwgc3RhbGkKU2Fua2Npb3Zhbm91IG9zb2JvdSwgbmVibyBwb2t1ZCBieSBzZSBwxZnDrW3DvW0KxI1pIG5lcMWZw61tw71tIHZsYXN0bsOta2VtIG5lYm8gb3Zsw6FkYWrDrWPDrSBvc29ib3UKemRyYXZvdG5pY2vDqWhvIHphxZnDrXplbsOtIHN0YWxhIG7Em2t0ZXLDoSB6ZQpTYW5rY2lvdmFuw71jaCBvc29iLgoKIAoKRmluYW5jaWFsIEZvbm5zOiBJbnZlc3RpZ2F0b3Igc2hhbGwgYWxzbyBlbnN1cmUgdGhhdAp0aGUgSW52ZXN0aWdhdG9yIGFuZCBlYWNoIHN1Yi1pbnZlc3RpZ2F0b3IgYXQKSW5zdGl0dXRpb8SPcyBTdHVkeSBTaXRlKHMpIHByb3ZpZGVzIExpbGx5IFdpdGggdGhlCmFwcHJvcHJpYXRlIGZpbmFuY2lhbCBpbmZvcm1hdGlvbiBmb3IgY29tcGxpYW5jZSBXaXRoCmFsbCBhcHBsaWNhYmxlIGxhd3MgYW5kIHJlZ3VsYXRpb25zIGFuZCBMaWxseSBwb2xpY2llcywKYW5kIEludmVzdGlnYXRvciB1bmRlcnN0YW5kcyBhbmQgc2hhbGwgZW5zdXJlIHRoYXQKZWFjaCBzdWItaW52ZXN0aWdhdG9yIHVuZGVyc3RhbmRzIHRoYXQgbGF3cywKcmVndWxhdGlvbnMsIGFuZCBMaWxseSBwb2xpY3kgbWF5IHJlcXVpcmUgY2VydGFpbgpmaW5hbmNpYWwgaW5mb3JtYXRpb24gdG8gYmUgc3VibWl0dGVkIHRvIHJlZ3VsYXRvcnkKYXV0aG9yaXRpZXMuCgpGaW5hbsSNbsOtIGZvbm51bMOhxZllOiBaa291xaFlasOtY8OtIHRha2UgemFqaXN0w60sIGFieQpaa291xaFlasOtY8OtIGFrYcW+ZMO9IHNwb2x1emtvdcWhZWrDrWPDrSB2TcOtc3TEmwooTcOtc3RlY2gpIHByb3bDoWTEm27DrSBrbGluaWNrw6lobyBob2Rub2NlbsOtIHZlCnpkcmF2b3RuaWNrw6ltIHphxZnDrXplbsOtIHBvc2t5dGwgc3BvbGXEjW5vc3RpIExpbGx5CnDFmcOtc2x1xaFuw6kgZmluYW7EjW7DrSBpbmZvcm1hY2UgbmV6Ynl0bsOpIGsgZG9kcsW+ZW7DrQpwbGF0bsO9Y2ggesOha29uxa8gYSBwxZllZHBpc8WvIGEgc23Em21pYyBzcG9sZcSNbm9zdGkKTGlsbHkuIFprb3XFoWVqw61jw60gc2kgamUgdsSbZG9tIHRvaG8sIMW+ZSB6w6Frb255LApwxZllZHBpc3kgYXNtxJttaWNlIHNwb2xlxI1ub3N0aSBMaWxseSBtb2hvdQp2ecW+YWRvdmF0IHBvc2t5dG51dMOtIHVyxI1pdMO9Y2ggZmluYW7EjW7DrWNoCmluZm9ybWFjw60ga29udHJvbG7DrW0gw7rFmWFkxa9tLCBhIHphamlzdMOtLCBhYnkgc2kgdG9obwpieWxpIHbEm2RvbWkgdGFrZSB2xaFpY2huaSBzcG9sdXprb3XFoWVqw61jw60uCgogCgogCgogCgpMaWNlbnNpbmcgYW5kIERlYmFubmVudDogVGhlIEludGVybmF0aW9uYWwgQ291bmNpbApmb3IgSGFybW9uaXNhdGlvbiBvZiBUZWNobmljYWwgUmVxdWlyZW1lbnRzIGZvcgpQaGFybWFjZXV0aWNhbHMgZm9yIEh1bWFuIFVzZSAo4oCcSUNI4oCcKSBHdWlkZWxpbmUKZm9yIEdvb2QgQ2xpbmljYWwgUHJhY3RpY2UgKOKAnEdDUGFhKSA0LjMuMSByZXF1aXJlcwp0aGF0IGEgbGljZW5zZWQgcGh5c2ljaWFuIGlzIHJlc3BvbnNpYmxlIGZvciBwYXRpZW50CmNhcmUuIEludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gYWdyZWUgdGhhdCB0aGV5IGFyZQpub3QgYW5kIGhhdmUgbm90IGJlZW4gZGViYXJyZWQgb3IgZGlzcXVhbGlmbGVkIGZyb20KcGF0dGljaXBhdGluZyBpbiBjbGluaWNhbCByZXNlYXJjaCBieSBhbnkKYWRtaW5pc3RyYXRpdmUgYXV0aG9yaXR5IG9yIGJ5IGFueSBvdGhlciByZWd1bGF0b3J5CmF1dGhvcml0eSBhbmQgdGhhdCB0aGV5IFdpbGwgbm90IHVzZSBvciBpbnZvbHZlIGFueQpwZXJzb24gb3Igb3JnYW5pemF0aW9uIGluIGNvbm5lY3Rpb24gV2l0aCB0aGlzIFN0dWR5CgogCgogCgpLdmFsaWZpa2FjZSBhesOha2F6IMSNaW5ub3N0aTogU23Em21pY2Ugc3Byw6F2bmUKa2xpbmlja8OpIHByYXhlIChkw6FsZSDigJ5HQ1DigJwpIDQuMy4xIHZ5ZGFuZQpNZXppbsOhcm9kbsOtIHJhZG91IHBybyBoYW5ub25pemFjaSB0ZWNobmlja8O9Y2gKcG/FvmFkYXZrxa8gbmEgcmVnaXN0cmFjaSBsw6nEjWl2IHBybyBodW3DoW5uw60gcG91xb5pdMOtCihkw6FsZSDigJ5JQ0jigJwpIHZ5xb5hZHVqZSwgYWJ5IHphIHDDqcSNaSBvcGFjaWVudHkKb2Rwb3bDrWRhbCBrdmFsaWZpa292YW7DvSBsw6lrYcWZLiBaa291xaFlasOtY8OtCmFaZHJhdm90bmlja2UgemHFmcOtemVuw60gcHJvaGxhxaF1asOtLCDFvmUgbmVqc291CmEgbmVieWxpIHZ5bG91xI1lbmkgbmVibyBkaXNrdmFsaWZpa292w6FuaSB6IMO6xI1hc3RpCnYga2xpbmlja8OpbSB2w716a3VtdSDFvsOhZG7DvW0gc3Byw6F2bsOtbSBvcmfDoW5lbQphbmkgamluw71tIGtvbnRyb2xuw61tIMO6xZlhZGVtIGEgxb5lIHZzb3V2aXNsb3N0aQpzdG91dG8gU3R1ZGnDrSBuZWJ1ZG91IHZ5dcW+w612YXQgYW5pIG5lemFwb2rDrQoKIAoKUGFnZSA1IG9mNDUgLyBTdHJhbmEgNSB6IDQ1CgogCgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZXIgMjAyNAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyemU6IHrDocWZw60gMjAyNAoKIAoKdGhhdCBpcyBvciBoYXMgYmVlbiBkZWJhcnJlZCBvciBkaXNxdWFsaWZsZWQgYnkgYW55CnJlZ3VsYXRvcnkgYXV0aG9yaXR5IGZyb20gcGF0dGljaXBhdGluZyBpbiBjbGluaWNhbApyZXNlYXJjaC4KCsW+w6Fkbm91IG9zb2J1IG5lYm8gb3JnYW5pemFjaSwga3RlcsOhIGplIG5lYm8gYnlsYQp2eWxvdcSNZW5hIG5lYm8gZGlza3ZhbGlmaWtvdsOhbmEga3RlcsO9bWtvbGkKa29udHJvbG7DrW0gw7rFmWFkZW0geiDDusSNYXN0aSB2IGtsaW5pY2vDqW0gdsO9emt1bXUuCgogCgpJbiB0aGUgZXZlbnQgdGhhdCBJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIG9yIGFueQpwZXJzb24gb3Igb3JnYW5pemF0aW9uIHRoZXkgdXNlIG9yIGludm9sdmUgaW4KY29ubmVjdGlvbiBXaXRoIHRoZSBTdHVkeSBzaG91bGQgYmVjb21lIGRlYmFycmVkLAp1bmxpY2Vuc2VkLCBvciBkaXNxdWFsaWZsZWQgZHVyaW5nIHRoZSBjb3Vyc2Ugb2YgdGhlClN0dWR5LCBJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIGFncmVlIHRvCnByb21wdGx5IG5vdGlmeSBMaWxseSBpbiB3cml0aW5nLgoKUG9rdWQgYnVkb3UgWmtvdcWhZWrDrWPDrSBhL25lYm8gWmRyYXZvdG5pY2vDqQp6YcWZw616ZW7DrSBuZWJvIGt0ZXLDoWtvbGkgb3NvYmEgbmVibyBvcmdhbml6YWNlLAprdGVyb3UgdiBzb3V2aXNsb3N0aSBzIHRvdXRvIFN0dWRpw60gdnl1xb7DrXZhasOtIG5lYm8Ka3Rlcm91IHphcG9qaWxpLCB2eWxvdcSNZW5hLCB6YmF2ZW5hIG9wcsOhdm7Em27DrQpuZWJvIGRpc2t2YWxpZmlrb3bDoW5hIHYgcHLFr2LEm2h1IFN0dWRpZSwgdXbEm2RvbcOtCm8gdG9tIG5lcHJvZGxlbsSbIHDDrXNlbW7EmyBzcG9sZcSNbm9zdCBMaWxseS4KCiAKCiAKCiAKCiAKCiAKCiAKCjEuMS43LiBSZWZlcnJhbCBGZWVzOiBJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIGFncmVlIG5vdCB0byBQb3BsYXRreSB6YSBkb3BvcnXEjWVuw606IFprb3XFoWVqw61jw60KcGF5IGZlZXMgZm9yIHRoZSByZWZlcnJhbCBvZiBwYXRpZW50cy4gYSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIHNlIHphdmF6dWrDrSwgxb5lIG5lYnVkb3UKdnlwbMOhY2V0IMW+w6FkbsOpIHBvcGxhdGt5IHphIGRvcG9ydcSNb3bDoW7DrSBwYWNpZW50xa8uCjEuMS44LiBFQyBBcHByb3ZhbCBhbmQgSW5mb25uZWQgQ29uc2VudDogUHJpb3IgdG8gU291aGxhc27DoSBzdGFub3Zpc2thIEVLIGFmb25udWzDocWZCmJlZ2lubmluZyB0aGUgU3R1ZHksIExpbGx5IHNoYWxsIG9idGFpbiBhcHByb3ZhbCBmcm9tIGluZm9ubm92YW5laG8gc291aGxhc3U6IFDFmWVkIHphaMOhamVuw61tIFN0dWRpZQp0aGUgRUMgZm9yIHRoZSBTdHVkeSBhbmQgdGhlIGluZm9ubmVkIGNvbnNlbnQgesOtc2vDoSBzcG9sZcSNbm9zdCBMaWxseSBzb3VobGFzbsOpIHN0YW5vdmlza28gRUsga2UKZG9jdW1lbnQsV2hpY2h3aWxsdGhlbmJlIHByb3ZpZGVkdG8gSW52ZXN0aWdhdG9yIFN0dWRpaSBha2Zvbm51bMOhxZlpIGluZm9ubm92YW5laG8gc291aGxhc3UsCmFuZCBJbnN0aXR1dGlvbi4ga3RlcsOpIG7DoXNsZWRuxJsgcG9za3l0bmUgWmtvdcWhZWrDrWPDrW11IGEKWmRyYXZvdG5pY2tlbXUgemHFmcOtemVuw60uCkludmVzdGlnYXRvciBhZ3JlZXMgdG8gb25seSB1c2UgYW4gaW5mb25uZWQgY29uc2VudCBaa291xaFlasOtY8OtIHNlIHphdmF6dWplLCDFvmUgYnVkZSBwb3XFvsOtdmF0IHBvdXplCmRvY3VtZW50IHdoaWNoIGhhcyBiZWVuIHByb3ZpZGVkLCBieSBMaWxseSBhbmQgZm9ybXVsw6HFmSBpbmZvcm1vdmFuZWhvIHNvdWhsYXN1IHBvc2t5dG51dMO9CmFwcHJvdmVkIGJ5IHRoZSBFQy4gc3BvbGXEjW5vc3TDrSBMaWxseSBhIHNjaHbDoWxlbsO9IEVLLgoxLjEuOS4gTW9uaXRvcmluZyBhbmQgQXVkaXQgQWNjZXNzOiBJbnZlc3RpZ2F0b3IgYW5kIFDFmcOtc3R1cCBwcm8gbW9uaXRvcm92w6Fuw60gYSBhdWRpdDogWmtvdcWhZWrDrWPDrQoKSW5zdGl0dXRpb24gYWdyZWUgdGhhdCBMaWxseSBhbmQvb3IgTGlsbHktZGVzaWduYXRlZApyZXByZXNlbnRhdGl2ZXMsIGFuZCBkb21lc3RpYyBvciBmb3JlaWduIHJlZ3VsYXRvcnkKYWdlbmNpZXMgaGF2ZSB0aGUgcmlnaHQgdG8gaW5zcGVjdCBwcm9jZWR1cmVzLApmYWNpbGl0aWVzLCBhbmQgU3R1ZHkgcmVjb3JkcyAoaW5jbHVkaW5nIHBvdHRpb25zIG9mCm90aGVyIHBldHRpbmVudCByZWNvcmRzIGZvciBhbGwgcGF0aWVudHMgaW4gdGhlIFN0dWR5KSBvZgpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yLCBhbnkgY29udHJhY3RvciwgYWdlbnQsIG9yClN0dWR5IFNpdGUocykgdXNlZCBpbiBjb25kdWN0aW5nIHRoZSBTdHVkeS4gV2hlbmV2ZXIKcG9zc2libGUsIHN1Y2ggaW5zcGVjdGlvbnMgc2hhbGwgb2NjdXIgZHVyaW5nIG5vbm5hbApidXNpbmVzcyBob3VycyBhbmQgdXBvbiByZWFzb25hYmxlIGFkdmFuY2VkIG5vdGljZS4KTGlsbHkgYW5kIExpbGx5LWRlc2lnbmF0ZWQgcmVwcmVzZW50YXRpdmVzIHNoYWxsX2FiaWRlCmJ5IGFsbCBhcHBsaWNhYmxlIHByaXZhY3kgbGF3cyBhbmQgSW5zdGl0dXRpb27FoQpwcml2YWN5IHJlZ3VsYXRpb25zLiBUaGVuIHRoZSBkYXRhIGFyZSByZXZpZXdlZCBieQpMaWxseSBvciBhIExpbGx5LWRlc2lnbmF0ZWQgcmVwcmVzZW50YXRpdmUsCkludmVzdGlnYXRvciBhbmQvb3IgSW5zdGl0dXRpb24gc2hhbGwgaGF2ZSBhbGwKcmVhc29uYWJseSBhdmFpbGFibGUgZGF0YSBvYnRhaW5lZCB0aHJvdWdoIHRoZQpwcmVjZWRpbmcgZGF5IGNvbXBsZXRlIGFuZCByZWFkeSBmb3IgZXZhbHVhdGlvbi4KCmEgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBzb3VobGFzw60gcyB0w61tLCDFvmUKc3BvbGXEjW5vc3QgTGlsbHkgYS9uZWJvIGplasOtIHBvdsSbxZllbsOtIHrDoXN0dXBjaSwKamFrb8W+IGltw61zdG7DrSDEjWkgemFocmFuacSNbsOtIGtvbnRyb2xuw60gw7rFmWFkeSwgbWFqw60Kb3Byw6F2bsSbbsOtIHBvZHJvYml0IGtvbnRyb2xlIHBvc3R1cHksIHByb3N0b3J5CmEgesOhem5hbXkgdMO9a2Fqw61jw60gc2UgU3R1ZGllICh2xI1ldG7EmyDEjcOhc3TDrSBkYWzFocOtY2gKcmVsZXZhbnRuw61jaCBsw6lrYcWZc2vDvWNoIHrDoXpuYW3FryB2xaFlY2ggcGFjaWVudMWvCnZlIFN0dWRpaSkgWmtvdcWhZWrDrWPDrWhvIGEgemRyYXZvdG5pY2vDqWhvIHphxZnDrXplbsOtLAprdGVyw6lob2tvbGkgc21sdXZuw61obyBkb2RhdmF0ZWxlLCB6w6FzdHVwY2UgbmVibwpjZW50cmEgxI1pIGNlbnRlciBTdHVkaWUgdnl1xb7DrXZhbsO9Y2ggcMWZaSBwcm92w6FkxJtuw60KU3R1ZGllLiBCdWRlLWxpIHRvIG1vxb5uw6ksIHByb2LEm2hub3UgdGFrb3ZlCmtvbnRyb2x5IGLEm2hlbSBixJvFvm5lIHByYWNvdm7DrSBkb2J5CmEgcyBwxZllZGLEm8W+bsO9bSBvem7DoW1lbsOtbSB2cMWZaW3Em8WZZW5lIGxoxa90xJsuClNwb2xlxI1ub3N0IExpbGx5IGFqZWrDrSBwb3bEm8WZZW7DrSB6w6FzdHVwY2kgYnVkb3UKCmRvZHLFvm92YXQgdsWhZWNobnkgcGxhdG7DqSBwcsOhdm7DrSBwxZllZHBpc3kKbyBvY2hyYW7EmyBvc29ibsOtY2ggw7pkYWrFryBhIHNtxJttaWNlCnpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSBvIG9jaHJhbsSbIG9zb2Juw61jaAoKw7pkYWrFry4gUMWZaSBrb250cm9sZSDDumRhasWvIHNwb2xlxI1ub3N0w60gTGlsbHkgbmVibwpqZWrDrW0gcG92xJvFmWVuw71tIHrDoXN0dXBjZW0gYnVkb3UgbcOtdCBaa291xaFlasOtY8OtCmEvbmVibyBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIHprb21wbGV0b3ZhbmUKYXDFmWlwcmF2ZW5lIGsgcG9zb3V6ZW7DrSB2ZcWha2Vyw6kgcMWZaW3Em8WZZW7Emwpkb3N0dXBuw6kgw7pkYWplIHrDrXNrYW7DqSBixJtoZW0gcMWZZWRjaMOhemVqw61jw61obwpkbmUuCgogCgogCgogCgpJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIHNoYWxsIHByb3ZpZGUgTGlsbHkgV2l0aAppbW1lZGlhdGUgbm90aWNlIG9mIGFueSBnb3Zlcm5tZW50YWwgb3IgcmVndWxhdG9yeQpyZXZpZXcsIGF1ZGl0LCBvciBpbnNwZWN0aW9uIG9mIHRoZSBmYWNpbGl0eSBvciBwcm9jZXNzZXMKcmVsYXRlZCB0byB0aGUgU3R1ZHkgYW5kIHNoYWxsIHByb3ZpZGUgTGlsbHkgV2l0aCB0aGUKb3Bwb3J0dW5pdHkgdG8gYXNzaXN0IEludmVzdGlnYXRvciBhbmQvb3IgSW5zdGl0dXRpb24gaW4KcmVzcG9uZGluZyB0byBhbnkgc3VjaCByZXZpZXcsIGF1ZGl0LCBvciBpbnNwZWN0aW9uLgpJbmZvcm1hdGlvbiBvYnRhaW5lZCBmcm9tIHN1Y2ggcmV2aWV3cywgYXVkaXRzLCBvcgoKIAoKIAoKWmtvdcWhZWrDrWPDrSBhL25lYm8gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrQpuZXByb2RsZW7EmyB2eXJvenVtw60gc3BvbGXEjW5vc3QgTGlsbHkgb2pha2Vrb2xpCmtvbnRyb2xlLCBhdWRpdHUgxI1pIGluc3Bla2NpIGplaG8gcHJvc3RvcsWvIG5lYm8KcHJvY2Vzxa8gdMO9a2Fqw61jw61jaCBzZSBTdHVkaWUgemUgc3RyYW55IHN0w6F0bsOtY2ggbmVibwprb250cm9sbsOtY2ggw7rFmWFkxa8gYXVtb8W+bsOtIHNwb2xlxI1ub3N0aSBMaWxseQpwb3NreXRub3V0IGppbSBzb3XEjWlubm9zdCBwxZlpIHRha292w71jaAprb250cm9sw6FjaCwgYXVkaXRlY2ggbmVibyBpbnNwZWtjw61jaC4gSW5mb3JtYWNlCgogCgpQYWdlIDYgb2Y0NSAvIFN0cmFuYSA2IHogNDUKCiAKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnNpb246IFNlcHRlbWJlciAyMDI0CgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJ6ZTogesOhxZnDrSAyMDI0CgogCgppbnNwZWN0aW9ucyBtYXkgYmUgc2hhcmVkIFdpdGggTGlsbHkgYW5kIExpbGx5LQpkZXNpZ25hdGVkIHJlcHJlc2VudGF0aXZlcy4KCnrDrXNrYW7DqSB6dMSbY2h0byBrb250cm9sLCBhdWRpdMWvIG5lYm8gaW5zcGVrY8OtCm1vaG91IGLDvXQgc2TDrWxlbnkgc2Ugc3BvbGXEjW5vc3TDrSBMaWxseSBhIGplasOtbWkKcG92xJvFmWVuw71taSB6YXN0dXBjaS4KCiAKCjEuMS4xMC4KCkFkdmVyc2UgRXZlbnQgUmVwb3J0aW5nOiBJbnZlc3RpZ2F0b3Igc2hhbGwgcmVwb3J0IGExMQphZHZlcnNlIGV2ZW50cywgc2VyaW91cyBhZHZlcnNlIGRydWcgcmVhY3Rpb25zLApzZXJpb3VzIHVuZXhwZWN0ZWQgYWR2ZXJzZSBkcnVnIHJlYWN0aW9ucywgYW5kCnByZWduYW5jeSBldmVudHMgdGhhdCBJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uCmJlY29tZSBhd2FyZSBvZiBkdXJpbmcgdGhlIFN0dWR5IHRvIExpbGx5IGluCmFjY29yZGFuY2UgV2l0aCB0aGUgcmVwb3J0aW5nIHByb2NlZHVyZXMgc3BlY2lmaWVkIGluCnRoZSBQcm90b2NvbC4gTm90aGluZyBoZXJlaW4gbm9yIGluIHRoZSBQcm90b2NvbCBsaW1pdHMKSW52ZXN0aWdhdG9yIGZyb20gcmVwb3J0aW5nIHN1Y2ggZXZlbnRzIHRvIHRoZSBFQyBvcgpyZWd1bGF0b3J5IGF1dGhvcml0aWVzIGluIGFjY29yZGFuY2UgV2l0aCBhcHBsaWNhYmxlCnJlZ3VsYXRpb25zIGFuZC9vciB0aGUgcmVxdWlyZW1lbnRzIG9mIHN1Y2ggZW50aXRpZXMuCgpIbMOhxaFlbsOtIG5lxb7DoWRvdWPDrWNoIHDFmcOtaG9kOiBaa291xaFlasOtY8OtIGJ1ZGUKc3BvbGXEjW5vc3RpIExpbGx5IHYgc291bGFkdSBzIHBvc3R1cHkgaGzDocWhZW7DrQp1dmVkZW7DvW1pIHZQcm90b2tvbHUgaGxhc2l0IHZlxaFrZXLDqSBuZcW+w6Fkb3Vjw60KcMWZw61ob2R5LCB6w6F2YcW+bsOpIG5lxb7DoWRvdWPDrSDDusSNaW5reSBsw6nEjWl2LCB6w6F2YcW+bsOpCm5lb8SNZWvDoXZhbsOpIG5lxb7DoWRvdWPDrSDDusSNaW5reSBsw6nEjWl2IGEgcMWZw61wYWR5Cm90xJtob3RuxJtuw60sIG8gbmljaMW+IHNlIFprb3XFoWVqw61jw60gZG96dsOtIGLEm2hlbQpTdHVkaWUuIFRlbnRvIGRva3VtZW50IGFuaSBQcm90b2tvbCBuaWogYWsgbmVicsOhbsOtClprb3XFoWVqw61jw61tdSAsIGFieSB0YWtvdmUgcMWZw61ob2R5IGhsw6FzaWwgRUsgbmVibwprb250cm9sbsOtbSDDusWZYWTFr20gdiBzb3VsYWR1IHMgcGxhdG7DvW1pIHByw6F2bsOtbWkKcMWZZWRwaXN5IGEvbmVibyBwb8W+YWRhdmt5IHTEm2NodG8gc3ViamVrdMWvLgoKIAoKMS4xLjExLgoKU2FmZWcgUmVwb3J0aW5nOiBMaWxseSBzaGFsbCBpbmNsdWRlIGEgU3R1ZHkgZGF0YSBhbmQKc2FmZXR5IG1vbml0b3JpbmcgcGxhbiBpbiB0aGUgUHJvdG9jb2wgb3Igc2VwYXJhdGVseQp3aGljaCBXaWxsIGJlIHJldmlld2VkIGFuZCBhcHByb3ZlZCBieSBFQy4gQXMgc3VjaCwKTGlsbHkgc2hhbGwga2VlcCBJbnZlc3RpZ2F0b3IgaW5mb3JtZWQgb2YgbmV3Cm9ic2VydmF0aW9ucyBkaXNjb3ZlcmVkIGJ5IG9yIHJlcG9ydGVkIHRvIExpbGx5IHJlbGF0ZWQKdG8gdGhlIFN0dWR5IGRydWcocyksIHBhcnRpY3VsYXJseSBXaXRoIHJlc3BlY3QgdG8KYWR2ZXJzZSBldmVudHMsIHNhZmUgdXNlIGFuZCBpbmZvcm1hdGlvbiB0aGF0IGNvdWxkCmFmZmVjdCB0aGUgc2FmZXR5IG9yIG1lZGljYWwgY2FyZSBvZiBjdXJyZW50IG9yIGZvcm1lcgpzdWJqZWN0cywgaW5mbHVlbmNlIHRoZSBjb25kdWN0IG9mIHRoZSBTdHVkeSwgb3IgYWx0ZXIKdGhlIEVDN3MgYXBwcm92YWwuIFN1Y2ggaW5mb3JtYXRpb24gV2lsbCBiZSBwcm9tcHRseQpwcm92aWRlZCB0byBJbnZlc3RpZ2F0b3IgYW5kIFdpbGwgYmUgZGlzdHJpYnV0ZWQgdG8KSW52ZXN0aWdhdG9yIGluIGFjY29yZGFuY2UgV2l0aCByZWd1bGF0b3J5IGd1aWRlbGluZXMuCkludmVzdGlnYXRvciBzaGFsbCByZXZpZXcgc2FmZXR5IGluZm9ybWF0aW9uIHByb3ZpZGVkCmJ5IExpbGx5LgoKSGzDocWhZW7DrSBnJ2thasOtY8OtIHNlIGJlenBlxI1ub3N0aTogU3BvbGXEjW5vc3QgTGlsbHkKCnphaHJuZSBkbyBwcm90b2tvbHUgbmVibyB2eXByYWN1amUgc2Ftb3N0YXRuw70KcGxhbiBtb25pdG9yb3bDoW7DrSBTdHVkaWpuw61jaCDDumRhasWvIGEgYmV6cGXEjW5vc3RpLAprdGVyw70gYnVkZSBwb3NvdXplbiBhc2NodmFsZW4gRUsuIFNwb2xlxI1ub3N0CkxpbGx5IHByb3RvIGJ1ZGUgWmtvdcWhZWrDrWPDrWhvIGluZm9ybW92YXQKbyBub3bDvWNoIHBvem9yb3bDoW7DrWNoLCBrdGVyYSB6amlzdGlsYSBuZWJvIGt0ZXLDqSBqw60KYnlsYSBuYWhsw6HFoWVuYSB2c291dmlzbG9zdGkgc0hvZG5vY2Vuw71tCmzDqcSNaXbDvW0gcMWZw61wcmF2a2VtIChsw6nEjWl2w71taSBwxZnDrXByYXZreSksCnplam3DqW5hIHBva3VkIGpkZSBvIG5lxb7DoWRvdWPDrSDDusSNaW5reSwgYmV6cGXEjW7DqQpwb3XFvsOtdmFuw60gYWluZm9ybWFjZSwga3RlcsOpIGJ5IG1vaGx5IG3DrXQKbmVwxZnDrXpuaXbDvSB2bGl2IG5hIGJlenBlxI1ub3N0IG5lYm8gbMOpxI1idQpzdMOhdmFqw61jw61jaCBuZWJvIGLDvXZhbMO9Y2ggc3ViamVrdMWvLCBvdmxpdm5pdApwcm92w6FkxJtuw60gU3R1ZGllIG5lYm8gem3Em25pdCBzb3VobGFzbsOpCnN0YW5vdmlza28gRUsuIFR5dG8gaW5mb3JtYWNlIGJ1ZG91Clprb3XFoWVqw61jw61tdSBwb3NreXRvdsOhbnkgbmVwcm9kbGVuxJsgYWJ1ZG91Cm11IHDFmWVkw6F2w6FueSB2c291bGFkdSBzcG9reW55IGtvbnRyb2xuw61obwrDusWZYWR1LiBaa291xaFlasOtY8OtIGJ1ZGUgdnlob2Rub2NvdmF0CmJlenBlxI1ub3N0bsOtIGluZm9ybWFjZSBvZCBzcG9sZcSNbm9zdGkgTGlsbHkuCgogCgoxLjEuMTIuCgpDb25mcmRlbnRpYWwgSW5mb3JtYXRpb24gYW5kIEluZm9ybWF0aW9uIFNlY3VyaXR5OgoKRMWvdsSbcm5lIGluZm9ybWFjZSBhemFiZXpwZcSNZW7DrSBpbmZvcm1hY8OtOgoKIAoKSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciByZXByZXNlbnQgYW5kIHdhcnJhbnQgdGhhdAp0aGV5IGhhdmUgZG9jdW1lbnRlZCBpbmZvcm1hdGlvbiBzZWN1cml0eSBwb2xpY2llcywKc3RhbmRhcmRzLCBhbmQvb3IgcHJvY2VkdXJlcyBpbiBwbGFjZSB0byBwcm90ZWN0IHRoZQpjb25maWRlbnRpYWxpdHkgYW5kIGludGVncml0eSBvZiBpbmNsdWRpbmcsIGJ1dCBub3QKbGltaXRlZCB0bzogQ29uZnJkZW50aWFsIEluZm9ybWF0aW9uLCBkZWZpbmVkIGhlcmVpbiwKc2Vuc2l0aXZlIGluZm9ybWF0aW9uLCBvciBhbnkgb3RoZXIgc3BlY2lhbApjbGFzc2lmaWNhdGlvbiBvZiBpbmZvcm1hdGlvbiBnaXZlbiBwcm90ZWN0aW9uIHVuZGVyCmxvY2FsIHByaXZhY3kgbGF3cyAoaW5jbHVkaW5nIGl0cyBjb2xsZWN0aW9uLCB1c2UsCnN0b3JhZ2UsIGFuZCBkaXNjbG9zdXJlKSwgaW4gYWRkaXRpb24gdG8gUGVyc29uYWwgRGF0YSwKZGVmaW5lZCBoZXJlaW4sIGFuZCBpbmRpdmlkdWFsbHkgaWRlbnRpZmlhYmxlIGhlYWx0aAppbmZvcm1hdGlvbiAodG9nZXRoZXIg4oCcUHJvdGVjdGVkIERhdGFhYSkuCgpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGFaa291xaFlasOtY8OtIHByb2hsYcWhdWrDrQphemFydcSNdWrDrSBzZSwgxb5lIG1hasOtIHDDrXNlbW7DqSB6YXNhZHksIG5vcm15CmEvbmVibyBwb3N0dXB5IHBybyB6YWJlenBlxI1lbsOtIGluZm9ybWFjw60sIGt0ZXLDqQpjaHLDoW7DrSBkxa92xJtybm9zdCBhIGludGVncml0dSwgbWltbyBqaW7DqTogZMWvdsSbcm7DvWNoCmluZm9ybWFjw60gemRlIGRlZmlub3ZhbsO9Y2gsIGNpdGxpdsO9Y2ggaW5mb3JtYWPDrQpuZWJvIGluZm9ybWFjw60gcyBqYWtvdWtvbGkgamlub3Ugc3BlY2lhbG7DrQprbGFzaWZpa2Fjw60gcG9kbGUgbcOtc3Ruw61jaCB6w6Frb27FryBuYSBvY2hyYW51CmTFr3bEm3Juw71jaCBpbmZvcm1hY8OtICh2xI1ldG7EmyBqZWppY2gKc2hyb21hxb7Ej292w6Fuw60sIHBvdcW+w612YW7DrSwgdWNob3bDoW7DrSBhIHDFmWVkw6F2w6Fuw60pLApuYXbDrWMgayBvc29ibsOtbSDDumRhasWvbSB6ZGUgZGVmaW5vdmFuw71tLAphcm92bsSbxb4gb3NvYm7EmyBpZGVudGlmaWtvdmF0ZWxuw71jaCB6ZHJhdm90bsOtY2gKaW5mb3JtYWPDrSAoZGFsZSBzcG9sZcSNbsSbIOKAnkNocsOhbsSbbsOpIMO6ZGFqZeKAnCkuCgogCgogCgogCgpJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIGZ1cnRoZXIgcmVwcmVzZW50IGFuZAp3YXJyYW50IHRoYXQgdGhleSBoYXZlIHByb2NlZHVyZXMgYW5kL29yIHByb2Nlc3Nlcwpmb3IgaWRlbnRpZnlpbmcgdGhyZWF0cyBhbmQgdnVsbmVyYWJpbGl0aWVzIHRvIHRoZWlyCmluZm9ybWF0aW9uIHN5c3RlbShzKSBhbmQgV2lsbCB0cmFpbiB0aGVpciBwZXJzb25uZWwKYWNjb3JkaW5nbHkuIFRoZSBJbnN0aXR1dGlvbiBhZ3JlZXMgdGhhdCBhMTEgUGVyc29uYWwKRGF0YSB0cmFuc2ZlcnJlZCB0byBvciBzdG9yZWQgb24gYW55IG1vYmlsZSBkZXZpY2UsCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc21hcnQgcGhvbmVzIGFuZCBsYXB0b3AKY29tcHV0ZXJzLCBzaGFsbCBiZSBwcm90ZWN0ZWQgYnkgZW5jcnlwdGlvbi4KCiAKCiAKClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYSBaa291xaFlasOtY8OtIGRhbGUgcHJvaGxhxaF1asOtCmF6YXJ1xI11asOtIHNlLCDFvmUgbWFqw60gemF2ZWRlbsOpIHBvc3R1cHkgcHJvCmlkZW50aWZpa2FjaSBocm96ZWIgYSB6cmFuaXRlbG7DvWNoIG3DrXN0IHZlIHN2w71jaAppbmZvcm1hxI1uw61jaCBzeXN0w6ltZWNoIGEgxb5lIHDFmcOtc2x1xaFuw71tCnpwxa9zb2JlbSB2ecWha29sw60gc3bFr2ogcGVyc29uYWwuIFpkcmF2b3RuaWNrw6kKemHFmcOtemVuw60gc2UgemF2YXp1amUsIMW+ZSB2xaFlY2hueSBvc29ibsOtIMO6ZGFqZQpwxZlldmVkZW7DqSBuYSBqYWvDqWtvbGkgbW9iaWxuw60gemHFmcOtemVuw60gbmVibyB2IG7Em20KCiAKClBhZ2UgNyBvZjQ1IC8gU3RyYW5hIDcgeiA0NQoKIAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnplOiB6w6HFmcOtIDIwMjQKCiAKCnVsb8W+ZW7DqSwgY2/FviBtaW1vIGppbsOpIHphaHJudWplIGNoeXRyw6kgdGVsZWZvbnkKYSBub3RlYm9va3ksIGJ1ZG91IGNocsOhbsSbbnkgxaFpZnJvdsOhbsOtbS4KCiAKCkludmVzdGlnYXRvciBhbmQvb3IgSW5zdGl0dXRpb24gc2hhbGwgbm90aWZ5IExpbGx5IHZpYQplbWFpbCBhdCBXaXRoaW4gMjQgaG91cnMgb2YKc3VzcGVjdGVkIG9yIGtub3duIHNlY3VyaXR5IGluY2lkZW50cyB0aGF0IGhhdmUKcG90ZW50aWFsIGltcGFjdCB0byBQcm90ZWN0ZWQgRGF0YSwgU3BvbnNvciBEYXRhIChhcwpkZWYxbmVkIGJlbG93KSwgTGlsbHl2cyBwYXltZW50cyB0byBJbnN0aXR1dGlvbiBvcgpJbnN0aXR1dGlvxI9zIHBheW1lbnQgc3lzdGVtcywgb3IgYW55IG90aGVyCmNvbmZsZGVudGlhbCBpbmZvcm1hdGlvbiBwcm92aWRlZCBvciBnZW5lcmF0ZWQgdW5kZXIKdGhpcyBBZ3JlZW1lbnQuIEluIGFkZGl0aW9uLCBJbnN0aXR1dGlvbiBzaGFsbCBoYXZlIGEKZG9jdW1lbnRlZCBwcm9jZXNzIHRvIGVuc3VyZSBjb21wbGlhbmNlIFdpdGggdGhpcwpub3RpZmljYXRpb24gcmVxdWlyZW1lbnQuCgpaa291xaFlasOtY8OtIGEvbmVibyBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIHJvenVtw60KWmFkYXZhdGVsZSBlLW1haWxlbSBuYWQgZG8gMjQKaG9kaW4gb2QgZG9ieSwga2R5IHBvam1vdSBwb2RlesWZZW7DrSBuZWJvIHNlCmRvenbEm2TDrSBvIGJlenBlxI1ub3N0bsOtY2ggaW5jaWRlbnRlY2gsIGt0ZXLDqSBtYWrDrQpwb3RlbmNpw6FsbsOtIGRvcGFkIG5hIENocsOhbsSbbsOpIHVkYWplLApaYWRhdmF0ZWxvdnkgw7pkYWplIChwb2RsZSBkZWZpbmljZSBuw63FvmUpLCBwbGF0YnkKc3BvbGXEjW5vc3RpIExpbGx5IFpkcmF2b3RuaWNrZW11IHphxZnDrXplbsOtIG5lYm8KcGxhdGVibsOtIHN5c3RlbXkgemRyYXZvdG5pY2vDqWhvIHphxZnDrXplbsOtIG5lYm8gbmEKamFrw6lrb2xpIGppbsOpIGTFr3bEm3Juw6kgaW5mb3JtYWNlIHBvc2t5dG51dMOpIG5lYm8Kdnl0dm/FmWVuw6kgcG9kbGUgdMOpdG8gU21sb3V2eS4gWmRyYXZvdG5pY2vDqQp6YcWZw616ZW7DrSBidWRlIHBvdcW+w612YXQgcMOtc2VtbsSbIHN0YW5vdmVuw70gcG9zdHVwCnBybyB6YWppxaF0xJtuw60gc291bGFkdSBzIHTDrW10byBwb8W+YWRhdmtlbSBuYQpobMOhxaFlbsOtLgoKIAoKMS4xLjEzLgoKQnJlYWNoOiBJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIHNoYWxsIHByb21wdGx5Cm5vdGlmeSBMaWxseSBpbiB3cml0aW5nIGluIHRoZSBldmVudCBJbnZlc3RpZ2F0b3Igb3IKSW5zdGl0dXRpb24gb3IgdGhlIFN0dWR5IFBlcnNvbm5lbCBicmVhY2ggb3IgYmVjb21lCmF3YXJlIG9mIGFueSBicmVhY2ggb2YgYW55IHRlbm5zIGFuZC9vciBvYmxpZ2F0aW9ucwpjb250YWluZWQgaW4gdGhpcyBBZ3JlZW1lbnQgYW5kL29yIGFueSBkZXZpYXRpb24gb2YKdGhlIGFwcHJvdmVkIFByb3RvY29sIHZlcnNpb24gb3IgdGhlIENsaW5pY2FsIFRuJ2FsClJlZ3VsYXRpb24gb3IgYW55IG90aGVyIGFwcGxpY2FibGUgcmVndWxhdGlvbi4KClBvcnXFoWVuw60gU21sb3VnOiBaa291xaFlasOtY8OtIGEvbmVibwpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGJ1ZG91IG5lcHJvZGxlbsSbIHDDrXNlbW7EmwoKaW5mb25ub3ZhdCBzcG9sZcSNbm9zdGkgTGlsbHksIHBva3VkIFprb3XFoWVqw61jw60sClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gbmVibyDEjGxlbm92w6kgc3R1ZGlqbsOtaG8KdMO9bXUgcG9ydcWhw60gdXN0YW5vdmVuw60gYS9uZWJvIHBvdmlubm9zdGkKb2JzYcW+ZW7DqSB2dGV0byBTbWxvdXbEmyBhL25lYm8gb3DFmcOtcGFkbmUKb2RjaHlsY2Ugb2Qgc2NodsOhbGVuw6kgdmVyemUgUHJvdG9rb2x1IG5lYm8KTmHFmcOtemVuw60gb2tsaW5pY2tlbSBob2Rub2NlbsOtIG5lYm8gamluw6lobwpwbGF0bsOpaG8gcMWZZWRwaXN1LgoKIAoKMS4xLjE0LgoKU2VuJ291cyBicmVhY2g6IEVhY2ggUGF0dHkgc2hhbGwgaW5mb25uIHRoZSBvdGhlcgppbW1lZGlhdGVseSB1cG9uIGJlY29taW5nIGF3YXJlIG9mIGFueSBzZW4nb3VzCmJyZWFjaCBvZiB0aGUgUHJvdG9jb2wgYW5kL29yIHRoZSBjb25kaXRpb25zIGFuZApwcmluY2lwbGVzIG9mIElDSC9HQ1Agb3IgYW55IG90aGVyIHJ1bGVzLCBwcmluY2lwbGUgb3IKZ3VpZGFuY2UsIHJlbGF0aW5nIHRvIHRoZSBDbGluaWNhbCBUbidhbCBjb25kdWN0ZWQgYXQKdGhlIEluc3RpdHV0aW9uIGZhY2lsaXR5LiBUaGUgU3BvbnNvciBzaGFsbCBpbmZvbm4gdGhlCnJlbGV2YW50IFJlZ3VsYXRvcnkgQXV0aG9uJ3R5IG9mIHN1Y2ggc2VuJ291cyBicmVhY2gKaW4gd3JpdGluZyBXaXRoaW4gc2V2ZW4gKDcpIGRheXMgb2YgYmVjb21pbmcgYXdhcmUKb2YgdGhhdCBicmVhY2guIFRoZSBTcG9uc29yIHNoYWxsLCBhdCBpdHMgZGlzY3JldGlvbiwKaW5mb25uIG90aGVyIHNpdGVzIHRoYXQgYSBzZW4nb3VzIGJyZWFjaCBoYXMgb2NjdXJyZWQKYnV0IHNoYWxsIG5vdCBiZSB1bmRlciBhbnkgb2JsaWdhdGlvbiB0byBkbyBzbyB1bmxlc3MgYQpyZWd1bGF0b3J5IG9ibGlnYXRpb24gaXMgYXBwbGljYWJsZSBvciBhcyBpbnN0cnVjdGVkIGJ5CmEgUmVndWxhdG9yeSBBdXRob3JpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcwpDbGF1c2UgMS4xLjE0LCBhIOKAnHNlbidvdXMgYnJlYWNo4oCcIGlzIGEgYnJlYWNoIHRoYXQgaXMKbGlrZWx5IHRvIGFmZmVjdCwgdG8gYSBzaWduaWZpY2FudCBkZWdyZWU6IGEuIHRoZSBzYWZldHkgb3IKcGh5c2ljYWwgb3IgbWVudGFsIGludGVncml0eSBvZiB0aGUgQ2xpbmljYWwgVHJpYWwKU3ViamVjdHM7IG9yIGIuIHRoZSBzY2llbnRpZmljIHZhbHVlIG9mIHRoZSBDbGluaWNhbApUcmlhbC4KClrDoXZhxb5uw6kgcG9ydcWhZW7DrTogS2HFvmTDoSB6ZSBTdHJhbiBidWRlIG5lcHJvZGxlbsSbCmluZm9ubm92YXQgZHJ1aG91IFN0cmFudSBvamFrZW1rb2xpIHrDoXZhxb5uw6ltCnBvcnXFoWVuw60gUHJvdG9rb2x1IGEvbmVibyBwb2Rtw61uZWsgYXrDoXNhZApJQ0gvR0NQIG5lYm8gamFrw71jaGtvbGkgamluw71jaCBwcmF2aWRlbCwgesOhc2FkCm5lYm8gcG9reW7FryB0w71rYWrDrWPDrWNoIHNlIEtsaW5pY2tlaG8gaG9kbm9jZW7DrQpwcm92w6FkxJtuw6lobyB2IHphxZnDrXplbsOtIHpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrS4gLgpaYWRhdmF0ZWwgYnVkZSBvdGFrb3ZlbXRvIHrDoXZhxb5uw6ltIHBvcnXFoWVuw60KcMOtc2VtbsSbIGluZm9ybW92YXQgcMWZw61zbHXFoW7DvSBLb250cm9sbsOtIMO6xZlhZCBkbwpzZWRtaSAoNykgZG7FryBvZCBqZWhvIHpqacWhdMSbbsOtLiBaYWRhdmF0ZWwgYnVkZSBkbGUKdmxhc3Ruw61obyB1dsOhxb5lbsOtIGluZm9ubm92YXQgZGFsxaHDrSBjZW50cmEKa2xpbmlja8OpaG8gaG9kbm9jZW7DrSBvIHRvbSwgxb5lIGRvxaFsbyBrIHrDoXZhxb5uw6ltdQpwb3J1xaFlbsOtLCBuZW7DrSB2xaFhayBwb3ZpbmVuIHRhayB1xI1pbml0LCBwb2t1ZCBzZSBuYQpuxJtqIG5ldnp0YWh1amUgcG92aW5ub3N0IHbFr8SNaSBLb250cm9sbsOtbXUgw7rFmWFkdQpuZWJvIHBva3VkIGt0b211IG9kIHRvaG90byDDusWZYWR1IG5lb2JkcsW+ZWwKcG9reW4uIFBybyDDusSNZWx5IHRvaG90byDEjGzDoW5rdSAxLjEuMTQgc2UK4oCeesOhdmHFvm7DvW0gcG9ydcWhZW7DrW3igJwgcm96dW3DrSBwb3J1xaFlbsOtLCBrdGVyw6kKcHJhdmTEm3BvZG9ibsSbIG92bGl2bsOtOiBhLiBiZXpwZcSNbm9zdCBuZWJvCmZ5emlja291IMSNaSBkdcWhZXZuw60gaW50ZWduJ3R1IFN1Ympla3TFryBrbGluaWNrw6lobwpob2Rub2NlbsOtOyBuZWJvIGIuIHbEm2RlY2tvdSBob2Rub3R1IEtsaW5pY2tlaG8KaG9kbm9jZW7DrS4KCiAKCjEuMi4KCkNsaW5pY2FsIFRuJ2FsIE1hdGVyaWFscyBhbmQgUmVjb3JkIFJldGVudGlvbgoKIAoKTWF0ZXJpw6FseSBrbGluaWNrw6lobyBob2Rub2NlbsOtIGF1Y2hvdsOhdsOhbsOtCnrDoXpuYW3FrwoKIAoKIAoKMS4yLjEuCgogCgpDbGluaWNhbCBUbidhbCBNYXRlcmlhbHM6IENsaW5pY2FsIHRuJ2FsIG1hdGVyaWFscwppbmNsdWRpbmcgU3R1ZHkgZHJ1ZyhzKSBhbmQvb3IgY29uc3VtYWJsZXMsCnByb3ZpZGVkIGZvciB0aGUgU3R1ZHkgV2lsbCBiZSB1c2VkIHNvbGVseSB1bmRlciB0aGUKUHJvdG9jb2wgYW5kIG1heSBub3QgYmUgdXNlZCBmb3IgYW55IG90aGVyIHB1cnBvc2VzLgpJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIHNoYWxsIGZvbGxvdyBMaTExeTdzCmluc3RydWN0aW9ucyByZWxhdGVkIHRvIGRpc3Bvc2l0aW9uIG9mIGNsaW5pY2FsIHRuJ2FsCgogCgogCgpNYXRlcmnDoWx5IGtsaW5pY2vDqWhvIGhvZG5vY2Vuw606IE1hdGVyacOhbHkKa2xpbmlja8OpaG8gaG9kbm9jZW7DrSwgdsSNZXRuxJsgSG9kbm9jZW5laG8KCnDFmcOtcHJhdmt1ICjEjWkgcMWZw61wcmF2a8WvKSBhL25lYm8gc3BvdMWZZWJuw61jaAptYXRlcmnDoWzFrywgYnVkb3UgcG91xb7DrXbDoW55IHbDvWhyYWRuxJsgcG9kbGUKUHJvdG9rb2x1IGEgbmVzbcSbasOtIHNlIHBvdcW+w612YXQgayDFvsOhZG7DvW0gamluw71tCsO6xI1lbMWvbS4KCiAKClBhZ2UgOCBvZjQ1IC8gU3RyYW5hIDggeiA0NQoKIAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnplOiB6w6HFmcOtIDIwMjQKCiAKCm1hdGVyaWFscywgYXQgTGlsbHl2cyBlWHBlbnNlLiBJbnZlc3RpZ2F0b3IgYW5kCkluc3RpdHV0aW9uIHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBjb21wbGlhbmNlIHdpdGgKYWxsIGxhd3MgYW5kIHJlZ3VsYXRpb25zIGFwcGxpY2FibGUgdG8gYW55IGRlc3RydWN0aW9uCm9yIGRpc3Bvc2l0aW9uIG9mIGMxaW5pY2ExIHRyaWFsIG1hdGVyaWFscyBhdCBTdHVkeQpTaXRlKHMpLgoKWmtvdcWhZWrDrWPDrSBhWmRyYXZvdG5pY2tlIHphxZnDrXplbsOtIGJ1ZG91CnBvc3R1cG92YXQgcG9kbGUgcG9reW7FryBzcG9sZcSNbm9zdGkgTGlsbHkKCmsgbmFrbMOhZMOhbsOtIHMgbWF0ZXJpw6FseSBrbGluaWNrw6lobyBob2Rub2NlbsOtLCBhIHRvCm5hIG7DoWtsYWR5IHNwb2xlxI1ub3N0aSBMaWxseS4gWmtvdcWhZWrDrWPDrQphIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYnVkb3Ugb2Rwb3bDrWRhdCB6YSBzb3VsYWQKc2UgdsWhZW1pIHByw6F2bsOtbWkgcMWZZWRwaXN5IHTDvWthasOtY8OtbWkgc2UgbGlrdmlkYWNlCm1hdGVyacOhbMWvIGtsaW5pY2vDqWhvIGhvZG5vY2Vuw60gbmVibyB6YWNow6F6ZW7DrQpzIG5pbWkgdiBNw61zdMSbIMSNaSBNw61zdGVjaCBwcm92w6FkxJtuw60ga2xpbmlja8OpaG8KaG9kbm9jZW7DrS4KCiAKCkluc3RpdHV0aW9uIHNoYWxsIGVuc3VyZSB0aGF0IGEgcGhhcm1hY2lzdCwgYXMgYW4KSW5zdGl0dXRpb24gZW1wbG95ZWUsIFdpbGwgYmUgYSBTdHVkeSBQZXJzb25uZWwgYW5kCldpbGwgYmUgcmVzcG9uc2libGUgZm9yIHRoZSByZWNlaXB0IGFuZCwgdGhlIGNhc2UKbWF5YmUsIHByb3BlciBzdG9yYWdlIGFuZCBkaXNwZW5zaW5nIG9mIFN0dWR5J3MgZHJ1Zwpmb3IgdGhlIHB1cnBvc2Ugb2YgY29uZHVjdGluZyBTdHVkeSBhdCBJbnN0aXR1dGlvbgphY2NvcmRpbmcgdG8gYXBwbGljYWJsZSBsZWdhbCByZWd1bGF0aW9ucy4gSW5zdGl0dXRpb24Kc2hhbGwgZ3VhcmFudGVlIGFuZCBiZSBsaWFibGUgZm9yIHRoZSBwcm9wZXIKcGVyZm9ybWFuY2Ugb2YgYWxsIGFib3ZlIG1lbnRpb25lZCBhY3Rpdml0aWVzIGJ5IGEKcGhhcm1hY2lzdC4KClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gemFqaXN0w60sIGFieSDEjGxlbmVtCnN0dWRpam7DrWhvIHTDvW11IGJ5bCBsw6lrw6FybsOtaywgamVuxb4gamUKemFtxJtzdG5hbmNlbSB6ZHJhdm90bmlja8OpaG8gemHFmcOtemVuw60uIEzDqWvDoXJuw61rCnBvbmVzZSBvZHBvdsSbZG5vc3QgemEgcMWZw61qZW0gYXDFmcOtcGFkbsSbIMWZw6FkbsOpCnVjaG92w6F2w6Fuw60gYXbDvWRlaiBsw6nEjWl2w71jaCBwxZnDrXByYXZrxa8gcHJvIFN0dWRpaQpwcm8gw7rEjWVseSBwcm92w6FkxJtuw60gU3R1ZGllIHZlIHpkcmF2b3RuaWNrw6ltCnphxZnDrXplbsOtIHYgc291bGFkdSBzIHBsYXRuw71taSBwcsOhdm7DrW1pIHDFmWVkcGlzeS4KWmEgxZnDoWRuw70gdsO9a29uIHbFoWVjaCB2w73FoWUgdXZlZGVuw71jaCDEjWlubm9zdMOtCmzDqWvDoXJuw61rZW0gcnXEjcOtIGEgb2Rwb3bDrWTDoSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtLgoKIAoKIAoKIAoKMS4yLjIuIFJlY29yZCBSZXRlbnRpb246IExpbGx5IHJlcXVpcmVzIGExMSBTdHVkeSByZWNvcmRzIFVjaG92w6F2w6Fuw60gesOhem5hbcWvOiBTcG9sZcSNbm9zdCBMaWxseSB2ecW+YWR1amUKbXVzdCBiZSByZXRhaW5lZCBmb3IgdHdlbnR5LWZydmUgKDI1KSB5ZWFycyBhZnRlciB1Y2hvdsOhbsOtIHbFoWVjaCB6w6F6bmFtxa8gemUgU3R1ZGllIHBvIGRvYnUgZHZhY2V0aQpjb21wbGV0aW9uIG9yIHRlcm1pbmF0aW9uIG9mIHRoZSBTdHVkeSwgcHJvdmlkZWQsIHDEm3RpICgyNSkgbGV0IHBvIGRva29uxI1lbsOtIG5lYm8gdWtvbsSNZW7DrSBTdHVkaWUsCmhvd2V2ZXIsIHRoYXQgaW4gdGhlIHVubGlrZWx5IGV2ZW50IHRoYXQsIFJlZy4gRVUgYXbFoWFrIHMgdMOtbSwgxb5lIHBva3VkIG5hc3RhbmUgbmVwcmF2ZMSbcG9kb2Juw6EKNTM2LzIwMTQsIG9yIG90aGVyIHJlbGV2YW50bGVnYWxyZWd1bGF0aW9uc3YgcmVjb3JkIHNpdHVhY2UsIGtkeSBOYcWZw616ZW7DrSBFVSDEjS4gNTM2LzIwMTQsIG5lYm8KcmV0ZW50aW9uIHJlcXVpcmVtZW50cywgYXJlIGxvbmdlciB0aGFuIHR3ZW50eS1mcnZlIHDFmcOtc2x1xaFuw6kgcHLDoXZuw60gcMWZZWRwaXN5LCBzdGFub3bDrSBwb8W+YWRhdmt5IG5hCigyNSkgeWVhcnMsIExpbGx5IFdpbGwgbm90aWZ5IEludmVzdGlnYXRvciBhbmQgdWNob3bDoW7DrSB6w6F6bmFtxa8gcG8gZG9idSBkZWzFocOtIG5lxb4gZHZhY2V0IHDEm3RsZXQKSW5zdGl0dXRpb24gcmVnYXJkaW5nIGFueSBhZGRpdGlvbmFsIGxlbmd0aCBvZiB0aW1lIHRoYXQgKDI1KSwgc3BvbGXEjW5vc3QgTGlsbHkgdnlyb3p1bcOtIFprb3XFoWVqw61jw61obwpyZWNvcmRzIG11c3QgYmUgcmV0YWluZWQgdG8gbWVldCBzdWNoIHJlcXVpcmVtZW50cy4gYSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIG8gcMWZw61wYWRuw6ltIGRlbMWhw61tClRoZSBJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIHNoYWxsdXNlIHRoZWlyIGJlc3Qgb2Jkb2LDrSwgcG8ga3RlcsOpIGJ1ZG91IG11c2V0IGLDvXQgemF6bmFteQplZmZvcnRzIHRvIHByZXZlbnQgcHJlbWF0dXJlIGRlc3RydWN0aW9uIG9mIFN0dWR5IHVjaG92w6FueSBrZSBzcGxuxJtuw60gdGFrb3bDvWNoIHBvxb5hZGF2a8WvLgpyZWNvcmRzLiBJZiB0aGVyZSBpcyBhIGNoYW5nZSBvZiBaa291xaFlasOtY8OtIGEvbmVibyBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIHZ5bmFsb8W+w60KcmVzcG9uc2liaWxpdHkvb3duZXJzaGlwIG9mIFN0dWR5IHJlY29yZHMgKGVYLiBzdsOpIG5lamxlcMWhw60gw7pzaWzDrSBuYSB0bywgYWJ5IHphYnLDoW5pbGkgcMWZZWTEjWFzbsOpbXUKSW52ZXN0aWdhdG9yIHJldGlyZXMgb3IgaG9zcGl0YWwgY2xvc2VzKSwgSW52ZXN0aWdhdG9yIHpuacSNZW7DrSB6w6F6bmFtxa8gemUgU3R1ZGllLiBWIHDFmcOtcGFkxJssIMW+ZSBkb2pkZSBrZQphbmQgSW5zdGl0dXRpb25tdXN0bm90aWZ5IExpbGx5LiB6bcSbbsSbIG9kcG92xJtkbm9zdGkgemEgemF6bmFteSB6ZSBTdHVkaWUvCgp2bGFzdG5pY3R2w60gesOhem5hbcWvIHplIFN0dWRpZSAobmFwxZkuIFprb3XFoWVqw61jw60Kb2RlamRlIGRvIGTFr2Nob2R1IG5lYm8gc2UgbmVtb2NuaWNlIHV6YXbFmWUpLApidWRvdSBvdG9tIFprb3XFoWVqw61jw60gYVpkcmF2b3RuaWNrZSB6YcWZw616ZW7DrQppbmZvcm1vdmF0IHNwb2xlxI1ub3N0IExpbGx5LgoKMS4zLiBEYXRhIMOaZGFpZS4KCjEuMy4xLiBBbGwgZGF0YSBnZW5lcmF0ZWQgaW4gY29ubmVjdGlvbiBXaXRoIHRoZSBTdHVkeSwgVsWhZWNobnkgw7pkYWplIHrDrXNrYW5ldnNvdXZpc2xvc3RpIHNlIFN0dWRpw60oZGExZQoo4oCcU3BvbnNvciBEYXRhIikgc2hhbGwgYmUgdGhlIHNvbGUgcHJvcGVydHkgb2YgTGlsbHkg4oCeWmFkYXZhdGVsb3Z5IMO6ZGFqZeKAnCkgYnVkb3UgdsO9bHXEjW7DvW0KCmFuZCBzaGFsbCBiZSBzdWJqZWN0IHRvIHRoZSBvYmxpZ2F0aW9ucyBvZgpDb25mcmRlbnRpYWxpdHkgYW5kIE5vbi1Vc2Ugb2YgY29uZmlkZW50aWFsCmluZm9ybWF0aW9uIHNldCBmb3J0aCBoZXJlaW4uIFRoZSB0ZXJtIFNwb25zb3IgRGF0YQpzaGFsbCBub3RpbmMxdWRlIHBhdGllbnQgbWVkaWNhbCByZWNvcmRzLCBleGNlcHQgdG8gdGhlCmV4dGVudCB0aGV5IGFyZSByZWNvcmRlZCBpbiBjYXNlIHJlcG9ydCBmb3Jtcwoo4oCcQ1JGKHMpIiksIHJhdyBzb3VyY2UgZGF0YSwg4oCcU291cmNlIERvY3VtZW50c2FhCmFuZCDigJxTb3VyY2UgRGF0YeKAniBhcyBkZWZpbmVkIGluIElDSCBndWlkZWxpbmVzLApvdGhlciBwZXJzb25hbCByZWNvcmRzLCBhbmQgdGhlIEludmVzdGlnYXRvxaUgcyBwZXJzb25hbApub3Rlcy4KCnZsYXN0bmljdHbDrW0gc3BvbGXEjW5vc3RpIExpbGx5IGFidWRvdSBzZSBuYSBuxJsKdnp0YWhvdmF0IHBvdmlubm9zdGkgc3Rhbm92ZW7DqSB2IMSNw6FzdGkgRMWvdsSbcm5vc3QKYSBuZXBvdcW+w612w6Fuw60gZMWvdsSbcm7DvWNoIGluZm9ybWFjw60uIFBvamVtClphZGF2YXRlbG92eSB1ZGFqZSBuZWJ1ZGUgemFocm5vdmF0IHpkcmF2b3Ruw60KemF6bmFteSBwYWNpZW50xa8sIGtyb23EmyB0ZSBqZWppY2ggxI3DoXN0aSwga3RlcsOhIHNlCnphem5hbWVuw6F2w6EgZG8gesOhem5hbcWvIHN1Ympla3TFryBob2Rub2NlbsOtCihkYWxlIOKAnkNSRuKAnCksIG5lenByYWNvdmFuw71jaCB6ZHJvam92w71jaCB1ZGFqxa8sCuKAnlpkcm9qb3bDqSBkb2t1bWVudGFjZeKAnCBhIOKAnlpkcm9qb3bDvWNoIMO6ZGFqxa/igJwKcG9kbGUgZGVmaW5pY2Ugc23Em3JuaWNlIElDSCBhIGppbsO9Y2ggb3NvYm7DrWNoCnrDoXpuYW3FryBhIG9zb2Juw61jaCBwb3puYW1layBaa291xaFlasOtY8OtaG8uCgogCgogCgogCgpJbnN0aXR1dGlvbiBhbmQvb3IgSW52ZXN0aWdhdG9yIHNoYWxsIGhhdmUgdGhlIHJpZ2h0IHRvCnVzZSBTcG9uc29yIERhdGEgZm9yIHRoZWlyIG93biBpbnRlcm5hbCBub24tCgogCgogCgpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEvbmVibyBaa291xaFlasOtY8OtIGJ1ZG91IG3DrXQKcHLDoXZvIHBvdcW+w612YXQgWmFkYXZhdGVsb3Z5IHVkYWplIGtlIHN2w71tCgogCgpQYWdlIDkgb2Y0NSAvIFN0cmFuYSA5IHogNDUKCiAKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnNpb246IFNlcHRlbWJlciAyMDI0CgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJ6ZTogesOhxZnDrSAyMDI0CgogCgpjb21tZXJjaWFsIGVkdWNhdGlvbmFsLCByZXNlYXJjaCwgcXVhbGl0eSBhc3N1cmFuY2UsCmFuZC9vciBwYXRpZW50IGNhcmUgcHVycG9zZXMsIHByb3ZpZGVkIHRoYXQgSW5zdGl0dXRpb24KYW5kIEludmVzdGlnYXRvciBzaGFsbCwgZm9yIGFsbCBzdWNoIHVzZXMgYW5kIGZvciBhcyBsb25nCmFzIHRoZXkgcmV0YWluIHN1Y2ggU3BvbnNvciBEYXRhLCByZW1haW4gaW4KY29tcGxpYW5jZSBXaXRoIHRoZWlyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMKQWdyZWVtZW50LgoKdm5pdMWZbsOtbSBuZWtvbWVyxI1uw61tIHZ6ZMSbbMOhdmFjw61tCmF2w716a3VtbsO9bSDDusSNZWzFr20sIGsgemFqacWhdMSbbsOtIGt2YWxpdHkgYS9uZWJvCnBybyBww6nEjWkgbyBwYWNpZW50eSwgYXbFoWFrIHMgdMOtbSwgxb5lIFpkcmF2b3RuaWNrw6kKemHFmcOtemVuw60gYSBaa291xaFlasOtY8OtIHDFmWkgdmXFoWtlcmVtIHRha292ZW0gcG91xb5pdMOtCmEgdGFrIGRsb3VobywgZG9rdWQgYnVkb3UgbcOtdCBaYWRhdmF0ZWxvdnkgw7pkYWplCnYgZHLFvmVuw60sIGJ1ZG91IHbFvmR5IHphY2hvdsOhdmF0IHNvdWxhZCBzZSBzdsO9bWkKcG92aW5ub3N0bWkgcG9kbGUgdMOpdG8gU21sb3V2eS4KCiAKCiAKCiAKCiAKCiAKCjEuMy4yLiBJbnZlc3RpZ2F0b3Igc2hhbGwgdXNlIHRoZWlyIGJlc3QgZWZmb3J0cyB0byBlbnRlciBhbGwgZGF0YSBaa291xaFlasOtY8OtIHZ5bmFsb8W+w60gc3bDqSBuZWpsZXDFocOtIMO6c2lsw60sIGFieSB6YWRhbAppbmNsdWRpbmcgU3BvbnNvciBEYXRhIFdpdGhpbiBmbHZlICg1KSBidXNpbmVzcyBkYXlzLCB2xaFlY2hueSDDumRhamUsIHbEjWV0bsSbIFphZGF2YXRlbG92w71jaCDDumRhasWvLCBkbwp1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCBieSB0aGUgTGlsbHkgU3R1ZHkgdGVhbSwgcMSbdGkgKDUpIHByYWNvdm7DrWNoIGRuxa8sIHBva3VkIMSMbGVub3bDqSBzdHVkaWpuw61obwpmcm9tIHRoZSBlbmQgb2YgdGhlIHBhdGllbnQgdmlzaXQvY3ljbGUgb3IgcmVjZWlwdCBvZiB0aGUgdMO9bXUgc3BvbGXEjW5vc3RpIExpbGx5IG5lc3Rhbm92w60gamluYWssIG9kCnVuZGVybHlpbmcgZGF0YSAoZWcuLCBsb2NhbCBsYWIgcmVzdWx0cykgYW5kIHRvIHVrb27EjWVuw60gcGFjaWVudG92w71jaCBuw6F2xaF0xJt2L2N5a2x1IG5lYm8KY29tcGxldGUgYWxsIGRhdGEgcXVlbidlcyBXaXRoaW4gZmx2ZSAoNSkgYnVzaW5lc3MgZGF5cyBvYmRyxb5lbsOtIHBvZGtsYWRvdsO9Y2ggdWRhasWvIChuYXDFmS4gbGFib3JhdG9ybsOtY2gKb2YgdGhlIHJlcXVlc3QgZGF0ZSB1bmxlc3MsIEluc3RpdHV0aW9uIGhhcyBhIHBvbGljeSBvciB2w71zbGVka8WvKSwgYSBhYnkgdnnFmWXFoWlsaSB2xaFlY2hueSBkb3Rhenkgb2hsZWRuxJsKcHJvY2VkdXJlIHRoYXQgZGljdGF0ZXMgYSBkaWZmZXJlbnQgdGltZWZyYW1lIGZvciBkYXRhIMO6ZGFqxa8gZG8gcMSbdGkgKDUpIHByYWNvdm7DrWNoIGRuxa8gb2QgZGF0YSDFvsOhZG9zdGksCmVudHJ5LCBpbiB3aGljaCBjYXNlIEluc3RpdHV0aW9uIGFuZC9vciBJbnZlc3RpZ2F0b3IgcG9rdWQgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBuZW3DoSB6w6FzYWR5IG5lYm8Kc2hhbGwgcHJvbXB0bHkgaW5mb25uIExpbGx5LiBOb3R3aXRoc3RhbmRpbmcgdGhlIHBvc3R1cCB2ecW+YWR1asOtY8OtIGppbm91IMSNYXNvdm91IGxoxa90dSBwcm8KZm9yZWdvaW5nLCBMaWxseSBtYXkgcmVxdWVzdCBzaG90dGVuZWQgdGltZWxpbmVzIHphZMOhdsOhbsOtIHVkYWrFry4gViB0YWtvdsOpbSBwxZnDrXBhZMSbIG8gdG9tCmJhc2VkIG9uIFN0dWR5IG5lZWRzLCBzdWNoIGFzIGZvciBpbnRlbidtIGFuYWx5c2lzIGFuZCBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEvbmVibyBaa291xaFlasOtY8OtCmRhdGFiYXNlIGxvY2ssIFdoZXJlIGFwcHJvcHJpYXRlLCBhbmQgSW52ZXN0aWdhdG9yIHNwb2xlxI1ub3N0IExpbGx5IG5lcHJvZGxlbsSbIHZ5cm96dW3DrS4gQmV6IG9obGVkdQpXaWxsIHVzZSB0aGVpciBiZXN0IGVmZm9ydHMgdG8gbWVldCBzdWNoIHNob3R0ZW5lZCBuYSB2w73FoWUgdXZlZGVuw6kgbcWvxb5lIHNwb2xlxI1ub3N0IExpbGx5IHZ5xb5hZG92YXQKdGltZWxpbmVzLiBuYSB6w6FrbGFkxJsgcG90xZllYiBTdHVkaWUgdiBvZMWvdm9kbsSbbsO9Y2gKCnDFmcOtcGFkZWNoIHprcsOhY2Vuw6kgbGjFr3R5LCBuYXDFmcOta2xhZCBwcm8KcMWZZWRixJvFvm5vdSBhbmFsw716dSBhIHV6YW3EjWVuw60gZGF0YWLDoXplLAphIFprb3XFoWVqw61jw60gdnluYWxvxb7DrSBzdsOpIG5lamxlcMWhw60gw7pzaWzDrSBuYQpkb2Ryxb5lbsOtIHRha292w71jaCB6a3LDoWNlbsO9Y2ggbGjFr3QuCgoxLjMuMy4gVG8gdGhlIGVYdGVudCB0aGUgUHJvdG9jb2wgcmVxdWlyZXMgSW5zdGl0dXRpb24gYW5kL29yIFByb3Rva29sIHZ5xb5hZHVqZSwgYWJ5IFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60KSW52ZXN0aWdhdG/FpXMgdXNlIG9mIGVsZWN0cm9uaWMgdG9vbHMgYmVsb25naW5nIHRvIGEgYS9uZWJvIFprb3XFoWVqw61jw60gcG91xb7DrXZhbGkgZWxla3Ryb25pY2vDqSBuw6FzdHJvamUKdmVuZG9yIGNvbnRyYWN0ZWQgYnkgTGlsbHkgKOKAnHRoaXJkLXBhcnR5IHNtbHV2bsOtaG8gZG9kYXZhdGVsZSBzcG9sZcSNbm9zdGkgTGlsbHkgKGTDoWxlCnRlY2hub2xvZ3l2KSBzb2xlbHkgZm9yIHB1cnBvc2VzIHJlbGF0ZWQgdG8gdGhlIOKAnnRlY2hub2xvZ2llIHTFmWV0w60gc3RyYW554oCcKSB2w71ocmFkbsSbIHBybyDDusSNZWx5ClByb3RvY29sLiBMaWxseSBzaGFsbCBjb21wbHkgV2l0aCBpdHMgcmVzcG9uc2liaWxpdGllcyBzb3V2aXNlasOtY8OtIHMgUHJvdG9rb2xlbS4gUMWZaSB6cHJhY292w6Fuw60gb3NvYm7DrWNoCnVuZGVyIGFwcGxpY2FibGUgZGF0YSBsYXdzIHJlZ2FyZGluZyB0aGUgcHJvY2Vzc2luZyDDumRhasWvIGEgc3R1ZGlqbsOtY2ggZGF0IHVrbMOhZGFuw71jaCBkbyBlWHRlbcOtY2gKb2YgY29kZWQgYW5kIG5vbi1jb2RlZCBTcG9uc29yIERhdGEgdXBsb2FkZWQgaW50byB0ZWNobm9sb2dpw60gcGxuw60gc3BvbGXEjW5vc3QgTGlsbHkgc3bDqSBwb3Zpbm5vc3RpCnRoZSB0aGlyZC0gcGFydHkgdGVjaG5vbG9neS4gQW55IGNvZGVkIGFuZC9vciBub24tIHBvZGxlIHBsYXRuw71jaCB6w6Frb27FryBvIG9jaHJhbsSbIG9zb2Juw61jaCDDumRhasWvLgpjb2RlZCBkYXRhIHVzZWQgb3IgYWNjZXNzZWQgYnkgSW5zdGl0dXRpb24gYW5kL29yIE5hIHZlxaFrZXLDqSBrw7Nkb3ZhbsOpIGEvbmVibyBuZWvDs2RvdmFuw6kgdWRhamUsCkludmVzdGlnYXRvciBvdXRzaWRlIG9mIHRoYXQgd2hpY2ggaXMgcmVxdWlyZWQgYnkgdGhlIGt0ZXLDqSBidWRvdSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEvbmVibwpQcm90b2NvbCBzaGFsbCBmYWxsIHVuZGVyIEluc3RpdHV0aW9uIGFuZC9vciBaa291xaFlasOtY8OtIHBvdcW+w612YXQgbmVibyBrZSBrdGVyw71tIHrDrXNrYWrDrSBwxZnDrXN0dXAKSW52ZXN0aWdhdG/FpXMgbGVnYWwgcmVzcG9uc2liaWxpdGllcyB1bmRlciBhcHBsaWNhYmxlIG1pbW8gcm96c2FoIHZ5xb5hZG92YW7DvSBQcm90b2tvbGVtLCBzZSBidWRvdQpkYXRhIGxhd3MgKGluIHBhcnRpY3VsYXIgQWN0IE5vLiAzNzIvMjAxMSBDb2xsLiwgb24gdnp0YWhvdmF0IHrDoWtvbm7DqSBwb3Zpbm5vc3RpIFBvc2t5dG92YXRlbGUKSGVhbHRoIFNlcnZpY2VzIGFuZCBDb25kaXRpb25zIG9mIFRoZWlyIFByb3Zpc2lvbjsgc2x1xb5lYiBwb2RsZSBwbGF0bsO9Y2ggcHLDoXZuw61jaCBwxZllZHBpc8WvIG8gb2NocmFuxJsKRGVjcmVlIE5vLiA0NDQvMjAyNCBDb2xsLiwgb24gTWVkaWNhbCBvc29ibsOtY2ggw7pkYWrFryAoemVqbWVuYSB6w6Frb24gxI0uIDM3Mi8yMDExLCBTYi4sIG8KRG9jdW1lbnRhdGlvbikuIHpkcmF2b3Ruw61jaCBzbHXFvmLDoWNoIGEgcG9kbcOtbmvDoWNoIGplamljaAoKcG9za3l0b3bDoW7DrTsgdnlobMOhxaFrYSDEjS4gNDQ0LzIwMjQgU2IuLCBvCnpkcmF2b3RuaWNrw6kgZG9rdW1lbnRhY2kpLgoKMS40LiBQdWJsaWNhdGlvbnMgWnZlxZllaW7Em27DrQoKMS40LjEuIE5vdHdpdGhzdGFuZGluZyB0aGUgb2JsaWdhdGlvbnMgb2YgQ29uZmxkZW50aWFsaXR5IEJleiBvaGxlZHUgbmEgesOhdmF6a3kgRMWvdsSbcm5vc3RpIGEgTmVwb3XFvsOtdsOhbsOtCgogCgphbmQgTm9u4oCUVXNlIG9mIGNvbmZsZGVudGlhbCBpbmZvcm1hdGlvbiBzZXQgZm90dGgKaGVyZWluLCBJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIFdpbGwgYmUgZnJlZSB0bwpwdWJsaXNoIGFuZCBwcmVzZW50IHRoZSByZXN1bHRzIG9mIHRoZSBTdHVkeSBzdWJqZWN0IHRvCnRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczogTGlsbHkgU3R1ZHkgdGVhbSBXaWxsIGJlCnByb3ZpZGVkIFdpdGggYSBjb3B5IG9mIGFueSBwcm9wb3NlZCBwdWJsaWNhdGlvbiBvcgpwcmVzZW50YXRpb24sIHZpYSB0cmFja2FibGUgZm9ubmF0LCBmb3IgcmV2aWV3IGFuZAoKIAoKIAoKZMWvdsSbbXknY2ggaW5mb3JtYWPDrSB2IHRldG8gU21sb3V2xJsgYnVkb3UgbW9jaQpaa291xaFlasOtY8OtIGEgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSB6dmXFmWVqxYhvdmF0CmFwcmV6ZW50b3ZhdCB2w71zbGVka3kgU3R1ZGllIHphIG7DoXNsZWR1asOtY8OtY2gKcG9kbcOtbmVrOiBUxZlpY2V0ICgzMCkgZG7FryBwxZllZCBwcmV6ZW50YWPDrSBuZWJvCnB1Ymxpa2Fjw60gYnVkZSBzdHVkaWpuw61tdSB0w71tdSBzcG9sZcSNbm9zdGkgTGlsbHkKcMWZZWRsb8W+ZW5hIGtwb3NvdXplbsOtIGFwxZlpcG9tw61ua292w6Fuw60ga29waWUKCiAKClBhZ2UgMTAgb2Y0NSAvIFN0cmFuYSAxMCB6IDQ1CgogCgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZXIgMjAyNAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyemU6IHrDocWZw60gMjAyNAoKIAoKY29tbWVudCB0aGlydHkgKDMwKSBkYXlzIHByaW9yIHRvIHN1Y2ggcHJlc2VudGF0aW9uIG9yCnN1Ym1pc3Npb24gZm9yIHB1YmxpY2F0aW9uLgoKbmF2cmhvdmFuw6kgcHVibGlrYWNlIG5lYm8gcHJlemVudGFjZSB2ZSBmb3JtYXR1CnVtb8W+xYh1asOtY8OtbSBzbGVkb3bDoW7DrSB6bcSbbi4KCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCjEuNC4yLiBBdCB0aGUgZXhwaXJhdGlvbiBvZiBzdWNoIHRoaXJ0eSAoMzApIGRheSBwZXJpb2QsIFBvIHVwbHludXTDrXRldG8gdMWZaWNldGlkZW5uw60gKDMwKTFoxa90eSBidWRvdW1vY2kKSW52ZXN0aWdhdG9yIGFuZC9vciBJbnN0aXR1dGlvbiBtYXkgcHJvY2VlZCBXaXRoIHRoZSBaa291xaFlasOtY8OtIGEvbmVibyBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIHDFmWlrcm/EjWl0CnByZXNlbnRhdGlvbiBvciBzdWJtaXNzaW9uIGZvciBwdWJsaWNhdGlvbjsgcHJvdmlkZWQsIGsgcHJlemVudGFjaSBuZWJvIHB1Ymxpa2FjaS4gUG9rdWQgYWxlIHNwb2xlxI1ub3N0Cmhvd2V2ZXIsIHRoYXQgaW4gdGhlIGV2ZW50IExpbGx5IGhhcyBub3RpZmllZCBMaWxseSBaa291xaFlasOtY8OtbXUgbmVibyBaZHJhdm90bmlja2VtdSB6YcWZw616ZW7DrQpJbnZlc3RpZ2F0b3Igb3IgSW5zdGl0dXRpb24gaW4gd3JpdGluZyB0aGF0IHRoZSBMaWxseSBww61zZW1uxJsgc2TEm2zDrSwgxb5lIHNlIGTFr3ZvZG7EmyBkb21uw612w6EsIMW+ZSBtdXPDrQpyZWFzb25hYmx5IGJlbGlldmVzIHRoYXQgaXQgbXVzdCB0YWtlIGFjdGlvbiB0byBwcm90ZWN0IHBvZG5pa25vdXQga3Jva3kgayBvY2hyYW7EmyBzdsO9Y2ggesOham3FryB2IG9ibGFzdGkKaXRzIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbnRlcmVzdHMsIHN1Y2ggYXMgdGhlIGZybGluZyBvZiBkdcWhZXZuw61obyB2bGFzdG5pY3R2w60sIG5hcMWZLiBwb2TDoW7DrW0gcGF0ZW50b3bDqQphIHBhdGVudCBhcHBsaWNhdGlvbiBjbGFpbWluZyBhbiBpbnZlbnRpb24gb3IgYSBwxZlpaGzDocWha3kgdiBwxZnDrXBhZMSbIHZ5bsOhbGV6dSBuZWJvIHDFmWlobMOhxaFreQp0cmFkZW1hcmsgcmVnaXN0cmF0aW9uIGFwcGxpY2F0aW9uLCBJbnZlc3RpZ2F0b3Iga3JlZ2lzdHJhY2kgb2NocmFubsOpIHpuw6Fta3ksIG11c2Vqw60gWmtvdcWhZWrDrWPDrQphbmQvb3IgSW5zdGl0dXRpb24gc2hhbGwgZWl0aGVyOiBhL25lYm8gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrToKCihhKSBkZWxheSBzdWNoIHB1YmxpY2F0aW9uIG9yIHByZXNlbnRhdGlvbiBmb3IgYW4gb2Rsb8W+aXQgenZlxZllam7Em27DrSBuZWJvIHByZXplbnRhY2kgbyBkYWzFocOtY2gKYWRkaXRpb25hbCBzaXh0eSAoNjApIGRheXMgb3IgdW50aTEgdGhlIGZvcmVnb2luZyDFoWVkZXPDoXQgKDYwKSBkbsWvIG5lYm8gZG8gZG9ieSwgbmXFviBidWRvdSB1xI1pbsSbbnkKYWN0aW9uKHMpIGhhdmUgYmVlbiB0YWtlbiwgV2hpY2hldmVyIHNoYWxsIGZpcnN0IG9jY3VyOyB2w73FoWUgdXZlZGVuw6kga3Jva3ksIHBvZGxlIHRvaG8sIGNvIG5hc3RhbmUgZMWZw612ZSwKT1IgTkVCTwoKKGIpIGlmIEludmVzdGlnYXRvciBhbmQvb3IgSW5zdGl0dXRpb24gYXJlIHVuV2lsbGluZyB0byBwb2t1ZCBaa291xaFlasOtY8OtIGEvbmVibyBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtCmRlbGF5IHRoZSBwdWJsaWNhdGlvbiBvciBwcmVzZW50YXRpb24sIEludmVzdGlnYXRvciBuZWJ1ZG91IG9jaG90bmkgcHVibGlrYWNpIG5lYm8gcHJlemVudGFjaSBvZGxvxb5pdCwKYW5kL29yIEluc3RpdHV0aW9uIFdpbGwgcmVtb3ZlIGZyb20gdGhlIHB1YmxpY2F0aW9uIG9yIG9kc3RyYW7DrSBaa291xaFlasOtY8OtIGEvbmVibyBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtCnByZXNlbnRhdGlvbiB0aGUgaW5mb3JtYXRpb24gd2hpY2ggTGlsbHkgaGFzIHNwZWNpZmllZCB6IHB1Ymxpa2FjZSwgcmVzcC4geiBwcmV6ZW50YWNlIGluZm9ybWFjZSwKaXQgcmVhc29uYWJseSBiZWxpZXZlcyB3b3VsZCBqZW9wYXJkaXplIGl0cyB1a3RlcsO9Y2ggc3BvbGXEjW5vc3QgTGlsbHkgdXZlZGUsIMW+ZSBzZSBkxa92b2RuxJsKaW50ZWxsZWN0dWFsIHByb3BlcnR5IGludGVyZXN0cy4gZG9tbsOtdsOhLCDFvmUgYnkgbW9obHkgb2hyb3ppdCBqZWrDrSB6YWpteSB2IG9ibGFzdGkKCmR1xaFldm7DrWhvIHZsYXN0bmljdHbDrS4KCjEuNC4zLiBJZiB0aGUgU3R1ZHkgaXMgcGFydCBvZiBhIG11bHRpLWNlbnRlciBTdHVkeSwgSW5zdGl0dXRpb24gUG9rdWQgamUgU3R1ZGllIHNvdcSNYXN0w60gbXVsdGljZW50cmlja2UgU3R1ZGllLAphbmQgSW52ZXN0aWdhdG9yIHNoYWxsIGRlbGF5IHB1YmxpY2F0aW9uIG9mIHRoZWlyIG9kbG/FvsOtIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYVprb3XFoWVqw61jw60KcmVzdWx0cyBvZiB0aGUgU3R1ZHkgdW50aTEgdGhlIHJlc3VsdHMgb2YgdGhlIG11bHRpLWNlbnRlciB6dmXFmWVqbsSbbsOtIHN2w71jaCB2w71zbGVka8WvIFN0dWRpZSwgZG9rdWQgbmVidWRvdQpTdHVkeSBhcmUgcHVibGlzaGVkIG9yIHByZXNlbnRlZCwgcHJvdmlkZWQgdGhhdCBpZiB0aGUgenZlxZllam7Em255IG5lYm8gcHJlemVudG92w6FueSB2w71zbGVka3kKcmVzdWx0cyBvZiB0aGUgbXVsdGktY2VudGVyIFN0dWR5IGFyZSBub3QgcHVibGlzaGVkIG9yIG11bHRpY2VudHJpY2tlIFN0dWRpZSwgcyB0w61tLCDFvmUgcG9rdWQgdsO9c2xlZGt5CnByZXNlbnRlZCBXaXRoaW4gdHdlbnR5IGZvdXIgKDI0KSBtb250aHMgb2YgdGhlIG11bHRpY2VudHJpY2tlIFN0dWRpZSBuZWJ1ZG91IHp2ZcWZZWpuxJtueSBuZWJvCnRlcm1pbmF0aW9uLGNvbmMxdXNpb24sb3IgYWJhbmRvbm1lbnQgb2YgdGhlIFN0dWR5IHByZXplbnRvdsOhbnkgZG8gZHZhY2V0aSDEjXR5xZkgKDI0KSBtxJtzw61jxa8gb2QKYnkgYTExIHNpdGVzLCBJbnN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIG1heSBwdWJsaXNoIHVrb27EjWVuw60sIHV6YXbFmWVuw60gbmVibyB6cnXFoWVuw60gU3R1ZGllIHbFoWVtaQp0aGVpciByZXN1bHRzIG9mIHRoZSBTdHVkeSBXaXRob3V0IGZ1cnRoZXIgZGVsYXkgc3ViamVjdCBjZW50cnksIGJ1ZG91IFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYSBaa291xaFlasOtY8OtCnRvIHRoZSB0ZXJtcyBhYm92ZS4gbW9jaSB6dmXFmWVqbml0IHN2w6kgdsO9c2xlZGt5IFN0dWRpZSBiZXogZGFsxaHDrWhvCgpvZGtsYWR1IHphIHbDvcWhZSB1dmVkZW7DvWNoIHBvZG3DrW5lay4KCjEuNC40LiBOb3RXaXRoc3RhbmRpbmcgdGhlIGZvcmVnb2luZywgc2NpZW50aWZpYyBjb25jbHVzaW9ucyBCZXogb2hsZWR1IG5hIHbDvcWhZSB1dmVkZW7DqSBidWRvdSB2xJtkZWNrw6kgesOhdsSbcnkKYW5kIHByb2Zlc3Npb25hbCBqdWRnbWVudHMgcmVnYXJkaW5nIHRoZSByZXN1bHRzIG9mIGEgYSBvZGJvcm7DqSDDunN1ZGt5IHTDvWthasOtY8OtIHNlIHbDvXNsZWRrxa8gU3R1ZGllClN0dWR5IGluIGFueSBwdWJsaWNhdGlvbiBzdWJtaXR0ZWQgYnkgSW52ZXN0aWdhdG9yIHZqYWtla29saSBwdWJsaWthY2kgcMWZZWRsb8W+ZW7DqSBaa291xaFlasOtY8OtbQpzaGFsbCBiZSBkZXRlcm1pbmVkIHNvbGVseSBieSBJbnZlc3RpZ2F0b3IgYW5kIFdpbGwgdXLEjWVueSB2w71ocmFkbsSbIFprb3XFoWVqw61jw61tIGFidWRvdSBzZSDFmcOtZGl0CmFkaGVyZSB0byB0aGUgcG9saWNpZXMgYW5kIHByaW5jaXBsZXMgb2YgdGhlIHrDoXNhZGFtaSBhIHByaW5jaXB5IE1lemluw6Fyb2Ruw61obyB2w71ib3J1CkludGVybmF0aW9uYWwgQ29tbWl0dGVlIG9mIE1lZGljYWwgSm91cm5hbCBFZGl0b3JzIHJlZGFrdG9yxa8gbMOpa2HFmXNrw71jaCDEjWFzb3Bpc8WvIGEgamluw71jaAphbmQgb3RoZXIgbWFqb3IgbWVkaWNhbCBqb3VybmFscyBhbmQgV2lsbCBub3QgYmUgdsO9em5hbW7DvWNoIGzDqWthxZlza8O9Y2ggxI1hc29waXPFryBhbmVidWRvdQpzdWJqZWN0IHRvIGNlbnNvciBvciB1bnJlYXNvbmFibGUgY29udHJvbCBvciBkZWxheSBieSBwb2Rsw6loYXQgY2VuenXFmWUgYW5pIG5lcMWZaW3Em8WZZW7DqSBrb250cm9sZSDEjWkKTGlsbHkuIHpkcsW+ZW7DrSB6ZSBzdHJhbnkgc3BvbGXEjW5vc3RpIExpbGx5LgoKMSAuIDUuIEludmVudGlvbnMgVnluw6FsZXp5CgoxLjUuMS4gSW4gY29uc2lkZXJhdGlvbiBvZiBMaWxseSBwcm92aWRpbmcgc3VwcG9ydCBmb3IgdGhlIEpha28gcHJvdGlwbG7Em27DrSB6YSBwb2Rwb3J1IHBvc2t5dG92YW5vdQoKIAoKU3R1ZHksIGlmIGR1cmluZyB0aGUgY291cnNlIG9mIHRoZSBTdHVkeSBvciBXaXRoaW4gb25lCigxKSB5ZWFyIGFmdGVyIHRlcm1pbmF0aW9uIG9mIHRoaXMgQWdyZWVtZW50LApJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIGFuZC9vciwgaWYgYXBwbGljYWJsZSwKU3R1ZHkgUGVyc29ubmVsLCBjb25jZWl2ZSBvciBhY3R1YWxseSByZWR1Y2UgdG8KcHJhY3RpY2UgV2hhdCBJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIGJlbGlldmUKdG8gYmUgYSBuZXcgaW52ZW50aW9uIG9jY3VycmluZyBhcyBhIHJlc3VsdCBvZiB0aGUKCiAKCiAKCnNwb2xlxI1ub3N0w60gTGlsbHkgcHJvIFN0dWRpaSBwbGF0w60sIMW+ZSBwb2t1ZAp2cHLFr2LEm2h1IFN0dWRpZSBuZWJvIGRvIGplZG5vaG8gKDEpIHJva3UgcG8KdWtvbsSNZW7DrSBwbGF0bm9zdGkgdGV0byBTbWxvdXZ5IFprb3XFoWVqw61jw60gYS9uZWJvClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gbmVibyBwxZnDrXBhZG7EmyDEjGxlbm92w6kKc3R1ZGlqbsOtaG8gdMO9bXUgemZvcm11bHVqw60gbmVibyB1cGxhdG7DrSB2IHByYXhpIHRvLApjbyBqZSBwb2RsZSBuw6F6b3J1IFprb3XFoWVqw61jw61obyBhL25lYm8KCiAKClBhZ2UgMTEgb2Y0NSAvIFN0cmFuYSAxMSB6IDQ1CgogCgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZXIgMjAyNAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyemU6IHrDocWZw60gMjAyNAoKIAoKcGVyZm9ubmFuY2Ugb2YgdGhlIFN0dWR5IGNvdmVyZWQgYnkgdGhpcyBBZ3JlZW1lbnQKb3IgaW52b2x2aW5nIHRoZSBTdHVkeSBkcnVnKHMpLCBkZXZpY2UocyksIG9yIHNpbXBsZQpkZXJpdmF0aXZlcyBvZiB0aGUgU3R1ZHkgZHJ1ZyhzKSwgKOKAnFNwb25zb3IKSW52ZW50aW9uYWEpLCBJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIHNoYWxsCnByb21wdGx5IG5vdGlmeSBMaWxseS4KCnpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSBub3bDvW0gdnluw6FsZXplbSwga3RlcsO9CmplIHbDvXNsZWRrZW0gcHJvdsOhZMSbbsOtIFN0dWRpZSwgamXFviBqZSBwxZllZG3Em3RlbQp0ZXRvIFNtbG91dnksIG5lYm8gY28gemFocm51amUgSG9kbm9jZW7DvQpwxZnDrXByYXZlayAoxI1pIHDFmcOtcHJhdmt5KSwgcHJvc3TFmWVkZWsgKHByb3N0xZllZGt5KQpuZWJvIGplZG5vZHVjaGUgZGVyaXbDoXR5IHDFmcOtcHJhdmt1IChwxZnDrXByYXZrxa8pCihkYWxlIOKAnlphZGF2YXRlbG92eSB2eW7DoWxlennigJwpLCBidWRvdSBvdG9tClprb3XFoWVqw61jw60gYS9uZWJvIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60KbmVwcm9kbGVuxJsgaW5mb3Jtb3ZhdCBzcG9sZcSNbm9zdCBMaWxseS4KCiAKClRoZSBTcG9uc29yIEludmVudGlvbiBzaGFsbCBiZSB0aGUgc29sZSBwcm9wZXJ0eSBvZgpMaWxseS4gQXMgc3VjaCwgSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBoZXJlYnkKYXNzaWduIHRoZSBleGNsdXNpdmUgb3duZXJzaGlwIG9mIGFueSBzdWNoIFNwb25zb3IKSW52ZW50aW9uIHRvIExpbGx5LgoKWmFkYXZhdGVsxa92IHZ5bmFsZXogYnVkZSB2w71ocmFkbsOtbSB2bGFzdG5pY3R2w61tCnNwb2xlxI1ub3N0aSBMaWxseS4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrQphIFprb3XFoWVqw61jw60gcHJvdG8gdMOtbXRvIHDFmWV2w6FkxJtqw60gdsO9aHJhZG7DrQp2bGFzdG5pY3R2w60ga2HFvmTDqWhvIHRha292ZWhvIFphZGF2YXRlbG92YQp2eW7DoWxlenUgbmEgc3BvbGXEjW5vc3QgTGlsbHkuCgogCgpBZGRpdGlvbmFsbHksIEludmVzdGlnYXRvciBhbmQvb3IgSW5zdGl0dXRpb24gYWdyZWUKdGhhdCB0aGV5IFdpbGwgbm90IGF0dGVtcHQgdG8gcmV2ZXJzZSBlbmdpbmVlciB0aGUKClprb3XFoWVqw61jw60gYS9uZWJvIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gc2UgdGFrZQp6YXZhenVqw60sIMW+ZSBzZSBuZWJ1ZG91IHBva291xaFldCBIb2Rub2NlbsO9CgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgpTdHVkeSBkcnVnLiBwxZnDrXByYXZlayB6cMSbdG7EmyBhbmFseXpvdmF0LgoKMS42LiBQdWJsaWNpdHYgUmVrbGFtYQpDb25zaXN0ZW50IFdpdGggdGhlIG9ibGlnYXRpb25zIG9mIENvbmZsZGVudGlhbGlnIGFuZCBWIHNvdWxhZHUgc2UgesOhdmF6a2VtIETFr3bEm3Jub3N0aSBhIG5lcG91xb7DrXbDoW7DrQpOb27igJRVc2Ugb2YgY29uZmxkZW50aWFsIGluZm9ybWF0aW9uIHNldCBmb3h0aCBoZXJlaW4sIGTFr3bEm23DvWNoIGluZm9ubmFjw60gcG9kbGUgdMOpdG8gU21sb3V2eSBzZQpJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIGFncmVlIHRvIHRoZSBmb2xsb3dpbmc6IFprb3XFoWVqw61jw60gYS9uZWJvIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gemF2YXp1asOtCgprIG7DoXNsZWR1asOtY8OtbXU6CgoxLjYuMS4gUmVjcnVpdG1lbnQgb2YgcGF0aWVudHM6IE7DoWJvciBwYWNpZW50xa86CgpSZWNydWl0bWVudCBvZiBwYXRpZW50czogU3ViamVjdCB0byB0aGUgcmVxdWlyZW1lbnRzIE7DoWJvciBwYWNpZW50xa86IFYgc291bGFkdSBzIHBvxb5hZGF2a3kKc2V0IGZveHRoIGhlcmVpbiwgSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBtYXkgc3Rhbm92ZW7DvW1pIHZ0b210byBkb2t1bWVudHUgbW9ob3UKaW5kZXBlbmRlbnRseSBwcmVwYXJlIG1hdGVuJ2FscyBmb3IgdGhlIHB1cnBvc2Ugb2YgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhWmtvdcWhZWrDrWPDrSBuZXphdmlzbGUKcmVjcnVpdGluZyBwYXRpZW50cyB0byBwYXJ0aWNpcGF0ZSBpbiB0aGUgU3R1ZHkgdnl0dsOhxZlldCBtYXRlcmnDoWx5IHBybyDDusSNZWx5IG7DoWJvcnUgcGFjaWVudMWvCijigJxSZWNydWl0bWVudCBNYXRlbidhbHNhYSkuIFJlY3J1aXRtZW50IE1hdGVyaWFscyBrdcSNYXN0aSB2ZSBTdHVkaWkgKGRhbGUg4oCeTsOhYm9yb3bDqSBtYXRlcmnDoWx54oCcKS4KbWF5IGluY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8gcmFkaW8sIHRlbGV2aXNpb24sIFRha292w71taSBOw6Fib3JvdsO9bWkgbWF0ZW4nYWx5IG1vaG91IGLDvXQKYW5kIGludGVybmV0IGFkdmVydGlzZW1lbnRzOyDDjWx5ZXJzOyBicm9jaHVyZXM7IHNvY2lhbCBtai4gcm96aGxhc292w6EsIHRlbGV2aXpuw60gbmVibyBpbnRlbWV0b3ZhCm1lZGlhIHBvc3RpbmdzOyBhbmQgdmVyYmFsIHNjcmlwdHMuIElmIEluc3RpdHV0aW9uIG9yIHJla2xhbWEsIGxldMOha3ksIGJyb8W+dXJ5LCBwxZnDrXNwxJt2a3kgbmEgc29jacOhbG7DrWNoCkludmVzdGlnYXRvciBpbmRlcGVuZGVudGx5IHByZXBhcmUgUmVjcnVpdG1lbnQgc8OtdMOtY2ggbmVibyB6dnVrb3ZlIHZlcnplIGRva3VtZW50xa8uIFBva3VkCk1hdGVyaWFscywgcHJpb3IgdG8gdGhlIHVzZSBvZiBzdWNoIFJlY3J1aXRtZW50IFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gbmVibyBaa291xaFlasOtY8OtIG5lemF2aXNsZQpNYXRlcmlhbHMsIEluc3RpdHV0aW9uIGFuZCBJbnZlc3RpZ2F0b3IgbXVzdCBlbnN1cmUgdnl0dm/FmcOtIE7DoWJvcm92w6kgbWF0ZXJpYWx5LCBidWRvdSBwb3Zpbm5pIHDFmWVkCnRoYXQgdGhlIFJlY3J1aXRtZW50IE1hdGVuJ2FsczogamVqaWNoIHBvdcW+aXTDrW0gemFqaXN0aXQsIGFieSBOw6Fib3JvdsOpIG1hdGVyacOhbHk6CgooYSkgY29tcGx5IHdpdGggYWxsIGFwcGxpY2FibGUgbGF3cyBhbmQgZ3VpZGVsaW5lcyBieWx5IHYgc291bGFkdSBzZSB2xaFlbWkgcGxhdG7DvW1pIHByw6F2bsOtbWkKZGVzY24nYmVkIGluIFNlY3Rpb24gMS4xLjEuIENvbXBsaWFuY2UgV2l0aCBQcm90b2NvbCwgcMWZZWRwaXN5IGEgc23Em3JuaWNlbWkgdXZlZGVuw71taSB2IGJvZMSbIDEuMS4xCkxhd3MsIFJlZ3VsYXRpb25zOyBhbmQgU291bGFkIHMgUHJvdG9rb2xlbSwgUGxhdG7DvW1pIHByw6F2bsOtbWkgcMWZZWRwaXN5CgphIE5hxZnDrXplbsOtbWksCgooYikgYXJlIGNvbnNpc3RlbnQgV2l0aCB0aGUgb2JqZWN0aXZlcyBvZiB0aGUgU3R1ZHksIGFzIGJ5bHkgdnNvdWxhZHUgcyBjw61saSBTdHVkaWUgcG9wc2Fuw71taQpkZXNjbidiZWQgaW4gdGhlIFByb3RvY29sOyBhbmQgdiBQcm90b2tvbHUsCgooYykgcmVmZXJlbmNlIHRoYXQgdGhlIFN0dWR5IGRydWcgaXMgaW52ZXN0aWdhdGlvbmFsIGFuZCBkbyBvYnNhaG92YWx5IHVwb3pvbcSbbsOtLCDFvmUgSG9kbm9jZW7DvSBwxZnDrXByYXZlawpub3QgY29udGFpbiBhbnkgcHJvbW90aW9uYWwgY2xhaW1zIGFib3V0IHRoZSBiZW5lZml0cyBqZSBwxZllZG3Em3RlbSB2w716a3VtdSwgYSBuZW9ic2Fob3ZhbHkgxb5hZG7DoQpvZiB0aGUgU3R1ZHkgZHJ1ZzsgYW5kIHJla2xhbW7DrSB0dnJ6ZW7DrSBvIHByb3NwxJvFoW5vc3RpIEhvZG5vY2VuZWhvCgpwxZnDrXByYXZrdSwKCihkKSBkbyBub3QgaW5jbHVkZSBhbnkgQ29uZmxkZW50aWFsIEluZm9ubmF0aW9uLCBMaWxseSBuZW9ic2Fob3ZhbHkgxb5hZG7DqSBkxa92xJtybsOpIGluZm9ybWFjZSwgbG9nbyBuZWJvCmxvZ28gb3IgYnJhbmQgZWxlbWVudHMsIG9yIHRoZSBuYW1lIG9yIGNvbXBvdW5kIHBydmt5IHpuYcSNa3kgTGlsbHkgYW5pIG7DoXpldiBuZWJvIMSNw61zbG8KbnVtYmVyIGZvciB0aGUgU3R1ZHkgZHJ1ZzsgYW5kIEhvZG5vY2VuZWhvIHDFmcOtcHJhdmt1LAoKKGUpIGRvIG5vdCBzdGF0ZSBvciBzdWdnZXN0LCBkaXJlY3RseSBvciBpbmRpcmVjdGx5LCB0aGF0IHRoZSBwxZnDrW1vIGFuaSBuZXDFmcOtbW8gbmV1dsOhZMSbbHkgbmVibyBuYXpuYcSNb3ZhbHksClN0dWR5IGRydWcgaXMgc2FmZSBvciBlZmZlY3RpdmU7IGFuZCDFvmUgSG9kbm9jZW7DvSBwxZnDrXByYXZlayBqZSBiZXpwZcSNbsO9IG5lYm8gw7rEjWlubsO9LAoKKMONKSBhcmUgbm90IGNvZXJjaXZlOyBhbmQgbmVwxa9zb2JpbHkgamFrbyBuw6F0bGFrIG5hIHBhY2llbnR5CgogCgpQYWdlIDEyIG9mNDUgLyBTdHJhbmEgMTIgeiA0NQoKIAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnplOiB6w6HFmcOtIDIwMjQKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCihnKSBhcmUgYXBwcm92ZWQgaW4gd3JpdGluZyBieSB0aGUgcmVzcG9uc2libGUgSVJCIGJlZm9yZSBieWx5IHDFmWVkIHBydm7DrW0gcG91xb5pdMOtbSBww61zZW1uxJsgc2NodsOhbGVueQpmaXJzdCB1c2UuIHDFmcOtc2x1xaFub3UgZXRpY2tvdSBrb21pc8OtLgpMaWxseSBoYXMgdGhlIHJpZ2h0LCBidXQgbm90IHRoZSBvYmxpZ2F0aW9uLCB0byByZXF1ZXN0IFNwb2xlxI1ub3N0IExpbGx5IG3DoSBwcsOhdm8sIGF2xaFhayBuaWtvbGkgcG92aW5ub3N0CnJldmlldyBvZiBzdWNoIFJlY3J1aXRtZW50IE1hdGVyaWFscywgYW5kIEluc3RpdHV0aW9uIHRha292ZSBOw6Fib3JvdsOpIG1hdGVyaWFseSBwb3NvdWRpdAphbmQvb3IgSW52ZXN0aWdhdG9yIHNoYWxsIHByb3ZpZGUgTGlsbHkgV2l0aCBhIGNvcHkgb2YgYSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEvbmVibyBaa291xaFlasOtY8OtClJlY3J1aXRtZW50IE1hdGVyaWFscyB1cG9uIHdyaXR0ZW4gcmVxdWVzdC4gcG9za3l0bm91IHNwb2xlxI1ub3N0aSBMaWxseSBuYSBqZWrDrSBww61zZW1ub3UKSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBzaGFsbCBub3QgdXNlIGFueSDFvmFkb3N0IGtvcGlpIE7DoWJvcm92w71jaCBtYXRlcmnDoWzFry4gWmRyYXZvdG5pY2vDqQpSZWNydWl0bWVudCBNYXRlcmlhbHMgaWYgTGlsbHkgaW5mb3JtcyBJbnN0aXR1dGlvbiBvciB6YcWZw616ZW7DrSBhIFprb3XFoWVqw61jw60gbmVzbcSbasOtIE7DoWJvcm92w6kgbWF0ZXJpYWx5CkludmVzdGlnYXRvciB0aGF0IHN1Y2ggUmVjcnVpdG1lbnQgTWF0ZXJpYWxzIHNob3VsZCBwb3XFvsOtdCwgcG9rdWQgc3BvbGXEjW5vc3QgTGlsbHkgWmRyYXZvdG5pY2tlbXUKbm90IGJlIHVzZWQsIGV2ZW4gaWYgc3VjaCBtYXRlcmlhbHMgd2VyZSBhcHByb3ZlZCBieSB6YcWZw616ZW7DrSBuZWJvIFprb3XFoWVqw61jw61tdSBzZMSbbMOtLCDFvmUgYnkgTsOhYm9yb3bDqQp0aGUgSVJCLiBJbiB0aGUgZXZlbnQgTGlsbHkgcHJvdmlkZXMgUmVjcnVpdG1lbnQgbWF0ZXJpYWx5IHBvdcW+aXR5IGLDvXQgbmVtxJtseSwgYXRvIGFuaXZwxZnDrXBhZMSbLCDFvmUKTWF0ZXJpYWxzIHRvIEludmVzdGlnYXRvciBhbmQvb3IgSW5zdGl0dXRpb24gZm9yIHRoZSB1xb4gYnlseSBzY2h2w6FsZW55IGV0aWNrb3Uga29taXPDrS4gUG9rdWQgYnVkb3UKU3R1ZHksIHRoZSBJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIHNoYWxsIG5vdCByZXZpc2UgTsOhYm9yb3bDqSBtYXRlcmlhbHkga2UgU3R1ZGlpIFprb3XFoWVqw61jw61tdQpvciBvdGhlcndpc2UgYWx0ZXIgc3VjaCBSZWNydWl0bWVudCBNYXRlcmlhbHMgV2l0aG91dCBhL25lYm8gWmRyYXZvdG5pY2tlbXUgemHFmcOtemVuw60gcG9za3l0bnV0eQpMaTExeTdzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gc3BvbGXEjW5vc3TDrSBMaWxseSwgbmVzbcSbasOtIGplIFprb3XFoWVqw61jw60gYW5pClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gdXByYXZvdmF0IGFuaSBqaW5hayBtxJtuaXQKYmV6IHDFmWVkY2hvesOtaG8gcMOtc2VtbsOpaG8gc291aGxhc3Ugc3BvbGXEjW5vc3RpCkxpbGx5LgoxLjcuIEVxdWlwbWVudCBWeWJhdmVuw60KMS43LjEuIElmIExpbGx5IGlzIHByb3ZpZGluZyBJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIFBva3VkIHNwb2xlxI1ub3N0IExpbGx5IHBvc2t5dHVqZSBrcG91xb5pdMOtIHZlCldpdGggbGVhc2VkIG9yIExpbGx5IG93bmVkIGVxdWlwbWVudCBTdHVkaWkgWmtvdcWhZWrDrWPDrW11IGEvbmVibyBaZHJhdm90bmlja2VtdQoo4oCcRXF1aXBtZW50YWEpIGZvciB1c2VpbiB0aGlzIFN0dWR5LCBzdWNoIEVxdWlwbWVudCB6YcWZw616ZW7DrSBwcm9uYWphdMOpIHZ5YmF2ZW7DrSBuZWJvIHZ5YmF2ZW7DrSB2ZQpzaGFsbCBiZSBhbmQgcmVtYWluIHRoZSBzb2xlIGFuZCBleGNsdXNpdmUgcHJvcGVydHkgb2Ygc3ZlbSB2bGFzdG5pY3R2w60gKGRhbGUg4oCeVnliYXZlbsOt4oCcKSwgesWvc3RhbmUKTGlsbHkgYW5kL29yIHRoZSBsZXNzb3IuIHRha292ZSBWeWJhdmVuw60gdsO9aHJhZG7DrW0gdmxhc3RuaWN0dsOtbQpzcG9sZcSNbm9zdGkgTGlsbHkgYS9uZWJvIHByb25hasOtbWF0ZWxlLgpJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIHNoYWxsIGNvbXBseSB3aXRoIGFsbCBaa291xaFlasOtY8OtIGEgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBidWRvdSBqZWRuYXQKbWFudWFscyBhbmRpbnN0cnVjdGlvbnMgZnJvbSBMaWxseSBhbmQvb3IgdGhlIGxlc3NvciB2c291bGFkdSBzZSB2xaFlbWkgbmF2b2R5IG5lYm8gcG9reW55IG9kCnJlZ2FyZGluZyB0aGUgdXNlLCBjYXJlLCBtYWludGVuYW5jZSwgYW5kIHJldHVybiBvciBzcG9sZcSNbm9zdGkgTGlsbHkgYS9uZWJvIHByb25hasOtbWF0ZWxlLCBjbyBzZSB0w73EjWUKZGlzcG9zaXRpb24gb2YgdGhlIEVxdWlwbWVudCwgc3VjaCByZXR1cm4gb3IgcG91xb7DrXZhbsOtLCBwZcSNZSwgw7pkcsW+YnkgYXZyYWNlbsOtIG5lYm8gbGlrdmlkYWNlCmRpc3Bvc2l0aW9uIHRvIGJlIGF0IExpMTF5N3MgZVhwZW5zZS4gVnliYXZlbsOtOyB0YWtvdmUgdnJhY2Vuw60gbmVibyBsaWt2aWRhY2UgYnVkZSBuYQpuw6FrbGFkeSBzcG9sZcSNbm9zdGkgTGlsbHkuClRoZSBFcXVpcG1lbnQgc2hhbGwgb25seSBiZSB1c2VkIGZvciBjb25kdWN0aW5nIHRoZSBWeWJhdmVuw60gYnVkZSBwb3XFvsOtdsOhbm8gcG91emUgayBwcm92w6FkxJtuw60KU3R1ZHkgYW5kIHNoYWxsIG5vdCBiZSB1c2VkIGZvciBhbnkgb3RoZXIgYzFpbmljYTEgb3IgU3R1ZGllIGEgbmlrb2xpIHBybyBqYWvDqWtvbGkgamluw6kga2xpbmlja8OpIG5lYm8KY29tbWVyY2lhbCBwdXJwb3Nlcy4ga29tZXLEjW7DrSDDusSNZWx5LgpUaGUgRXF1aXBtZW50IHNoYWxsIHJlbWFpbiBpbiB0aGUgc2FtZSBjb25kaXRpb24gYXMgVnliYXZlbsOtIHrFr3N0YW5lIHZlIHN0ZWpuw6ltIHN0YXZ1IGpha28gdiBkb2LEmywKcHJvdmlkZWQsIG9yZGluYXJ5IHdlYXIgYW5kIHRlYXIgZXhjZXB0ZWQuIGtkeSBieWxvIGRvZMOhbm8sIHMgdsO9amlta291IGLEm8W+bsOpaG8gb3BvdMWZZWJlbsOtLgpJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBaa291xaFlasOtY8OtIGEvbmVibyBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtCmFueSBsb3NzIG9yIGRhbWFnZSAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBvZHBvdsOtZGFqw60gemEgenRyw6F0dSBuZWJvIHBvxaFrb3plbsOtIFZ5YmF2ZW7DrQptYWludGVuYW5jZSwgcmVwYWlyIG9yIHJlcGxhY2VtZW50KSB0byB0aGUgRXF1aXBtZW50IHYgZMWvc2xlZGt1IG5lZGJhbG9zdGkgbmVibyDFoXBhdG7DqWhvIHphY2jDoXplbsOtIHplCmR1ZSB0byBJbnZlc3RpZ2F0b3J2cyBhbmQvb3IgSW5zdGl0dXRpb3LFpXMgbmVnbGlnZW5jZSBzdHJhbnkgWmtvdcWhZWrDrWPDrWhvIGEvbmVibyBaZHJhdm90bmlja2Vobwpvcm1pc3RyZWF0bWVudC4gemHFmcOtemVuw60gKHRhdG8gb2Rwb3bEm2Rub3N0IHphaHJudWplIG1qLiDDumRyxb5idSwKb3ByYXZ5IG5lYm8gbmFocmF6ZW7DrSkuCkEgc3BlY2lmaWMgbGlzdCBvZiBlcXVpcG1lbnQgcHJvdmlkZWQgYnkgTGlsbHkgYW5kL29yIEtvbmtyw6l0bsOtIHNlem5hbSBWeWJhdmVuw60gcG9za3l0bnV0w6lobwp0aGUgbGVzc29yIFdpbGwgYmUgZGVzY3JpYmVkIGluIHRoZSBkb2N1bWVudGF0aW9uIHNwb2xlxI1ub3N0w60gTGlsbHkgYS9uZWJvIHByb25hasOtbWF0ZWxlbSBidWRlCnByb3ZpZGVkIGJ5IExpbGx5IGFuZC9vciB0aGUgbGVzc29yLCB3aGljaCBpcyBhdHRhY2hlZCBwb3Bzw6FuIHYgxI3DoXN0aSBkb2t1bWVudGFjZSBwb3NreXRudXTDqQp0byB0aGlzIEFncmVlbWVudC4gVGhlIGVxdWlwbWVudCBXaWxsIGJlIGhhbmRlZCBzcG9sZcSNbm9zdMOtIExpbGx5IGEvbmVibyBwcm9uYWrDrW1hdGVsZW0sIGt0ZXJhIGplCm92ZXIgdG8gdGhlIEludmVzdGlnYXRvciBhdCB0aGUgc3RhcnQgb2YgdGhlIHN0dWR5IGJhc2VkIHDFmcOtbG9ob3UgdGV0byBTbWxvdXZ5LiBWeWJhdmVuw60gYnVkZSBwxZlpIHphaGFqIGVuw60Kb24gYSBoYW5kb3ZlciBwcm90b2NvbC4gc3R1ZGllIHDFmWVkw6FubyBrIHJ1a8OhbSBaa291xaFlasOtY8OtaG8gbmEgesOha2xhZMSbCnDFmWVkw6F2YWPDrWhvIHByb3Rva29sdS4KMi4gTElMTFkgU1VQUE9SVCBQT0RQT1JBIE9EIFNQT0xFQ05PU1RJIExJTExZCgogCgogCgogCgogCgpQYWdlIDEzIG9mNDUgLyBTdHJhbmEgMTMgeiA0NQoKIAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnplOiB6w6HFmcOtIDIwMjQKCiAKCkxpbGx5IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBmdWxmbGxsaW5nIFN0YXR1dG9yeQpvYmxpZ2F0aW9ucyBpbiByZWxhdGlvbiB0byByZWd1bGF0b3J5IGF1dGhvbid0aWVzCihpbmNsdWRpbmcgdGhlIFN0YXRlIEluc3RpdHV0ZSBmb3IgRHJ1ZyBDb250cm9sIF8KU8OaS0wgYW5kIEV0aGljcyBDb21taXR0ZWUgXyBFQyksIG90aGVyIHJlZ3VsYXRvcnkKYm9kaWVzLCBpbmNsdWRpbmcgdGhlIGluaXRpYXRpb24sIHN1c3BlbnNpb24sIGFuZAp0ZXJtaW5hdGlvbiBvZiB0aGUgU3R1ZHksIHJlcG9ydGluZyBhbmQgbm90aWZpY2F0aW9uIG9mCmFkdmVyc2UgZXZlbnRzLCBkaXNjbG9zdXJlIG9mIG5ldyBmYWN0cyBhbmQgbWVhc3VyZXMKdGFrZW4sIGFuZCBvdGhlciBpbmZvbm5hdGlvbiBvYmxpZ2F0aW9ucywgYXBwcm92YWwgb2YKdGhlIGluZm9ubmVkIGNvbnNlbnQgZjAxbSBhbmQgaXRzIGFtZW5kbWVudHMsCmFwcHJvdmFsIG9mIFByb3RvY29sIGFtZW5kbWVudHMsIGFuZCBmb3IKY29tbXVuaWNhdGlvbiBXaXRoIHN1Y2ggYXV0aG9yaXRpZXMgaW4gY29ubmVjdGlvbgpXaXRoIHRoaXMgU3R1ZHkuCgpTcG9sZcSNbm9zdCBMaWxseSBvZHBvdsOtZMOhIHphIHBsbsSbbsOtIHrDoWtvbm7DvWNoCnBvdmlubm9zdMOtIHZlIHZ6dGFodSBrZSBrb250cm9sbsOtbSBvcmfDoW7Fr20KKHbEjWV0bsSbIFPDmktMIGEgRUspLCBqaW7DvW0gcmVndWxhxI1uw61tIMO6xZlhZMWvbSwgYQp0byB2xI1ldG7EmyB6YWjDoWplbsOtLCBwxZllcnXFoWVuw60gYSB1a29uxI1lbsOtIFN0dWRpZSwKcG9kw6F2YW7DrSB6cHLDoXYgYSBobMOhxaFlbsOtIG5lxb7DoWRvdWPDrWNoIMO6xI1pbmvFrywKb3puYW1lbsOtIG5vdsO9Y2ggc2t1dGXEjW5vc3TDrSBhIHDFmWlqYXTDvWNoIG9wYXTFmWVuw60KYSBkYWzFocOtY2ggaW5mb3JtYcSNbsOtY2ggcG92aW5ub3N0w60sIHNjaHbDoWxlbsOtCmluZm90bW92YW7DqWhvIHNvdWhsYXN1IGEgamVobyB6bcSbbiwgc2NodsOhbGVuw60KZG9kYXRrxa8gayBQcm90b2tvbHUsIGEgdGFrw6kgemEgamVkbmFuw60gdsWvxI1pIHTEm210bwpvcmfDoW7Fr20gdiBzb3V2aXNsb3N0aSBzIHRvdXRvIFN0dWRpw60uCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgoyLjEuIFN0dWR5IERydWcgSG9kbm9jZW7DvSBwxZnDrXByYXZlawoyLjEuMS4gTGlsbHkgV2lsbCBwcm92aWRlIEludmVzdGlnYXRvciBhbmQvb3IgSW5zdGl0dXRpb24gV2l0aCBIb2Rub2NlbsO9IHDFmcOtcHJhdmVrIChwxZnDrXByYXZreSkgYS9uZWJvClN0dWR5IGRydWcocykgYW5kL29yIGRldmljZShzKSBhcyBhcHBsaWNhYmxlIHRvIHRoZSBwcm9zdMWZZWRlayAocHJvc3TFmWVka3kpIHNvdXZpc2Vqw61jw60gc2UgU3R1ZGnDrSBidWRlClN0dWR5IGZyZWUgb2YgY2hhcmdlLiBzcG9sZcSNbm9zdCBMaWxseSBkb2TDoXZhdCBaa291xaFlasOtY8OtbXUgYS9uZWJvClpkcmF2b3RuaWNrZW11IHphxZnDrXplbsOtIHpkYW5uYS4KVGhlIGRpc3Bvc2FsIG9mIFN0dWR5IGRydWdzIHNoYWxsIGJlIGRvbmUgYnkgTGlrdmlkYWNpIGhvZG5vY2Vuw71jaCBsw6nEjWl2w71jaCBwxZnDrXByYXZrxa8gemFqaXN0w60KRXVtZWRpY2EgUGhhbm5hY2V1dGljYWxzIFNBIFdoaWxlIGFsc28gc3BvbGXEjW5vc3QgRXVtZWRpY2EgUGhhcm1hY2V1dGljYWxzIFNBIGEKbWFpbnRhaW5pbmcgY2xlYXIgU3R1ZHkgZHJ1ZyBhY2NvdW50YWJpbGl0eSByZWNvcmRzLiB6YXJvdmXFiCBwb3ZlZGUgZXZpZGVuY2kgdnlkw6Fuw60gYSBsaWt2aWRhY2UKaG9kbm9jZW7DqWhvIGzDqcSNaXbDqWhvIHDFmcOtcHJhdmt1LgoyLjIuIFBheW1lbnQgUGxhdGJhCjIuMi4xLiBMaWxseSBXaWxsIHByb3ZpZGUgZmluYW5jaWFsIHN1cHBvcnQgZm9yIHRoZSBTdHVkeSBhcyBTcG9sZcSNbm9zdCBMaWxseSBidWRlIHBvc2t5dG92YXQgZmluYW7EjW7DrQpkZXRhaWxlZCBpbiB0aGUgc2VjdGlvbiBiZWxvdyBhbmQgRVhoaWJpdCBBIC0gUGF5bWVudCBwb2Rwb3J1IHBybyBTdHVkaWkgcG9kcm9ibsSbIHV2ZWRlbm91ClRlbm5zIG9mIHRoaXMgQWdyZWVtZW50IHYgbsOhc2xlZHVqw61jw61tIG9kZMOtbHUgYSB2IFDFmcOtbG96ZSBBIF8gUGxhdGVibsOtCnBvZG3DrW5reSBrIHTDqXRvIFNtbG91dsSbLgoyLjMuIE1lZXRpbmdzIGFuZCBUcmFpbmluZyBTY2jFr3preSBhIMWha29sZW7DrQoyLjMuMS4gSW4gYWRkaXRpb24sIGlmTGlsbHkgcmVxdWVzdHMgSW52ZXN0aWdhdG9yIGFuZC8gb3Igc3R1ZHkgQnVkZS1saSBzcG9sZcSNbm9zdCBMaWxseSBwb8W+YWRvdmF0IMO6xI1hc3QKdGVhbSBhdHRlbmRhbmNlIGF0IGFuIEludmVzdGlnYXRvciBtZWV0aW5nIG9yIG90aGVyIFprb3XFoWVqw61jw61obyBhL25lYm8gc3R1ZGlqbsOtaG8gdMO9bXUgbmEgc2Noxa96Y2UKbWVldGluZyBuZWNlc3NhcnkgdG8gcHJvdmlkZSBJbnZlc3RpZ2F0b3IgYW5kL29yIHprb3XFoWVqw61jw61jaCBuZWJvIG5hIGppbmUgc2Noxa96Y2UsIGt0ZXLDoSBidWRlCkluc3RpdHV0aW9uIGluZm9ybWF0aW9uIHJlZ2FyZGluZyB0aGUgU3R1ZHkgb3IgU3R1ZHkgbmV6Ynl0bsOhIGsgcG9za3l0bnV0w60gaW5mb25uYWPDrSBaa291xaFlasOtY8OtbXUKZHJ1Zy4gTGlsbHkgc2hhbGwgcmVpbWJ1cnNlIEluc3RpdHV0aW9uIGFuZC9vciBhL25lYm8gWmRyYXZvdG5pY2tlbXUgemHFmcOtemVuw60gb2hsZWRuxJsgU3R1ZGllCkludmVzdGlnYXRvciBhbmQvb3Igc3R1ZHkgdGVhbSBmb3IgcmVhc29uYWJsZSBhbmQgbmVibyBIb2Rub2NlbmVobyBwxZnDrXByYXZrdSwgdWhyYWTDrQpuZWNlc3NhcnkgdHJhdmVsIGFuZCBsb2RnaW5nIGV4cGVuc2VzIChpbmNsdWRpbmcgWmRyYXZvdG5pY2tlbXUgemHFmcOtemVuw60gYS9uZWJvIFprb3XFoWVqw61jw61tdQptZWFscykgdGhhdCBhcmUgaW5jdXJyZWQgdG8gYXR0ZW5kIHN1Y2ggbWVldGluZyhzKSB0aGF0IGEvbmVibyBzdHVkaWpuw61tdSB0w71tdSBwxZlpbcSbxZllbsOpIGEgbmV6Ynl0bmUKaGF2ZSBiZWVuIHNwZWNpZmxjYWxseSBhcHByb3ZlZCBpbiBhZHZhbmNlIGJ5IExpbGx5LiBjZXN0b3Zuw60gdsO9ZGFqZSBhIHbDvWRhamUgbmEgdWJ5dG92w6Fuw60gKHbEjWV0bsSbCkxpbGx5IHNoYWxsIG1ha2Ugc3VjaCByZWltYnVyc2VtZW50cyBXaXRoaW4gZm90dHktIHN0cmF2eSksIGt0ZXLDqSBqaW0gdnpuaWtub3V2IHNvdXZpc2xvc3RpIHMgw7rEjWFzdMOtIG5hCmYxdmUgKDQ1KSBkYXlzIG9mIHJlY2VpdmluZyBhY2NlcHRhYmxlIGRldGFpbGVkIHRha292ZW0gc2V0a8OhbsOtICh0YWtvdsO9Y2ggc2V0a8OhbsOtY2gpIGEga3RlcsOpCmRvY3VtZW50YXRpb24gb2Ygc3VjaCBleHBlbnNlcywgcHJvdmlkZWQgdGhhdCBMaWxseSBtdXNlasOtIGLDvXQgcMWZZWRlbSB2w71zbG92bsSbIHNjaHbDoWxlbnkgc3BvbGXEjW5vc3TDrQpyZWNlaXZlcyBzdWNoIGRvY3VtZW50YXRpb24gV2l0aGluIHNpeHR5ICg2MCkgZGF5cyBvZiBMaWxseS4gU3BvbGXEjW5vc3QgTGlsbHkgdWhyYWTDrSB0eXRvIMSNw6FzdGt5IGRvCnRoZSBkYXRlIHRoYXQgdGhlIGV4cGVuc2VzIHdlcmUgaW5jdXJyZWQuIHDEm3RhxI10ecWZaWNldGkgKDQ1KSBkbsWvIG9kIGRvcnXEjWVuw60KYWtjZXB0b3ZhdGVsbsO9Y2ggcG9kcm9ibsO9Y2ggcG9ka2xhZMWvCmsgdGFrb3bDvW0gdsO9ZGFqxa9tLCBwxZlpxI1lbcW+IHBvZGtsYWR5IG11c2Vqw60gYsO9dApzcG9sZcSNbm9zdGkgTGlsbHkgZG9ydcSNZW55IG5lanBvemTEm2ppIGRvIMWhZWRlc8OhdGkKKDYwKSBkbsWvIG9kZSBkbmUsIGtkeSB2w71kYWplIHZ6bmlrbHkuCjIuNC4gU3ViamVjdCBJbml1cnYgUmVpbWJ1cnNlbWVudCBOw6FocmFkYSB6YSB6ZHJhdm90bsOtIMO6am11IHN1Ymlla3R1IGhvZG5vY2Vuw60KMi40LjEuIExpbGx5IGFncmVlcyB0byByZWltYnVyc2UgUGF5ZWUocykgZm9yIHRoZSBmb2xsb3dpbmcgU3BvbGXEjW5vc3QgTGlsbHkgc2UgemF2YXp1amUgdWhyYWRpdCBQxZnDrWplbWNpCmNvc3RzOiAoUMWZw61qZW1jxa9tKSBwbGF0ZWIgdHl0byBuw6FrbGFkeToKMjQxMSBBbGwgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IGNvc3RzIGluY3VycmVkIHRoZSBWZcWha2Vyw6kgcMWZaW3Em8WZZW7DqSBhIG9idnlrbGUgbmFrbGFkeSB2eW5hbG/FvmVuw6kKCiAKCm1lZGljYWxseSBuZWNlc3NhcnkgZGlhZ25vc2lzIG9mIGFuIHBoeXNpY2FsIGluanVyeSB0bwp0aGUgU3R1ZHkgc3ViamVjdCBpZiBMaWxseSwgYWZ0ZXIgY29uc3VsdGF0aW9uIFdpdGggdGhlCgogCgogCgpuYSBsw6lrYcWZc2t5IG5lemJ5dG5vdSBkaWFnbsOzenUgZnl6aWNrZSDDumpteQpTdWJqZWt0dSBzdHVkaWUsIHBva3VkIHNwb2xlxI1ub3N0IExpbGx5IHBvIHBvcmFkxJsKCiAKClBhZ2UgMTQgb2Y0NSAvIFN0cmFuYSAxNCB6IDQ1CgogCgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZXIgMjAyNAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyemU6IHrDocWZw60gMjAyNAoKIAoKSW52ZXN0aWdhdG9yLCBkZXRlcm1pbmVzIHRoYXQgc3VjaCBpbmp1cnkgaW52b2x2ZWQgb3IKbWF5IGhhdmUgaW52b2x2ZWQgdGhlIFN0dWR5IGRydWcocyksIGRldmljZShzKSBvciBhClByb3RvY29sIHByb2NlZHVyZTsgYW5kCgpzZSBaa291xaFlasOtY8OtbSB1c291ZMOtLCDFvmUgdGFrb3bDoSDDumptYSBzb3V2aXNlbGEKbmVibyBtb2hsYSBzb3V2aXNldCBzIEhvZG5vY2Vuw71tIHDFmcOtcHJhdmtlbQoocMWZw61wcmF2a3kpLCB6ZHJhdm90bmlja8O9bSBwcm9zdMWZZWRrZW0KKHByb3N0xZllZGt5KSBuZWJvIHBvc3R1cGVtIHBvZGxlIFByb3Rva29sdSwgYQoKIAoKIAoKIAoKIAoKIAoKIAoKIAoKIAoKIAoKIAoKIAoKIAoKMi40LjEyLiBBbGwgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IGNvc3RzIGluY3VycmVkIGZvciBWZcWha2Vyw6kgcMWZaW3Em8WZZW7DqSBhb2J2eWtsZW5ha2xhZHkgdnluYWxvxb5lbsOpCm1lZGljYWxseSBuZWNlc3NhcnkgdHJlYXRtZW50IG9mIGEgcGh5c2ljYWwgaW5qdXJ5IHRvIG5hIGzDqWthxZlza3kgbmV6Ynl0bm91IGzDqcSNYnUgZnl6aWNrZSDDumpteQp0aGUgU3R1ZHkgc3ViamVjdCBpZiBMaWxseSwgYWZ0ZXIgY29uc3VsdGF0aW9uIFdpdGggdGhlIFN1Ympla3R1IHN0dWRpZSwgcG9rdWQgc3BvbGXEjW5vc3QgTGlsbHkgcG8gcG9yYWTEmwpJbnZlc3RpZ2F0b3IsIGRldGVybWluZXMgdGhhdCBzdWNoIGluanVyeSBkaXJlY3RseSBzZSBaa291xaFlasOtY8OtbSB1c291ZMOtLCDFvmUgdGFrb3bDoSDDumptYSB2em5pa2xhCmFyb3NlIGZyb20gdGhlIGFkbWluaXN0cmF0aW9uIG9mIHRoZSBTdHVkeSBkcnVnKHMpLCBvciB2IHDFmcOtbcOpbSBkxa9zbGVka3UgcG9kYW7DrSBIb2Rub2NlbmVobwpkZXZpY2UocykgaW4gYWNjb3JkYW5jZSBXaXRoIHRoZSBQcm90b2NvbCwgb3IgYSBwxZnDrXByYXZrdSAocMWZw61wcmF2a8WvKSwgcG91xb7DrXZhbsOtIHpkcmF2b3RuaWNrw6lobwpQcm90b2NvbCBwcm9jZWR1cmUgcGVyZm9ybWVkIGluIGFjY29yZGFuY2UgV2l0aCB0aGUgcHJvc3TFmWVka3UgKHByb3N0xZllZGvFrykgdiBzb3VsYWR1IHMgUHJvdG9rb2xlbQpQcm90b2NvbC4gbmVibyBwb3N0dXB1IHBvxb5hZG92YW7DqWhvIFByb3Rva29sZW0KCnByb3ZlZGVuw6lobyB2IHNvdWxhZHUgcyBQcm90b2tvbGVtLgoKMi40LjEzIE5vdFdpdGhzdGFuZGluZyB0aGUgZm9yZWdvaW5nLCBMaWxseSBXaWxsIG9ubHkgQmV6IG9obGVkdSBuYSB2w73FoWUgdXZlZGVuw6kgdWhyYWTDrSBzcG9sZcSNbm9zdApyZWltYnVyc2UgUGF5ZWUocykgZm9yIHN1Y2ggZGlhZ25vc2lzIGFuZC9vciBMaWxseSBQxZnDrWplbWNpIChQxZnDrWplbWPFr20pIHBsYXRlYiBuw6FrbGFkeSBuYQp0cmVhdG1lbnQgY29zdHMgaWY6IHN0YW5vdmVuw60gZGlhZ27Ds3p5LCByZXNwLiBuYSBsw6nEjWJ1IHBvdXplCgp2IHDFmcOtcGFkxJssIMW+ZToKCihhKSBzdWNoIGNvc3RzIGFyZSBub3QgY292ZXJlZCBieSB0aGUgc3ViamVjdDdzIG1lZGljYWwgb3IgdHl0byB2w71kYWplIG5la3J5amUgemRyYXZvdG7DrSBuZWJvIG5lbW9jbmnEjW7DrQpob3NwaXRhbCBpbnN1cmFuY2Ugb3Igb3RoZXIgZ292ZXJubWVudGFsIHByb2dyYW0gcG9qacWhdMSbbsOtIHN1Ympla3R1IGhvZG5vY2Vuw60gYW5pIMW+w6FkbsO9IGppbsO9IHN0YXRuw60KcHJvdmlkaW5nIHN1Y2ggY292ZXJhZ2U7IHByb2dyYW0gdXLEjWVuw70gbmEgcG9rcnl0w60gdMSbY2h0byB2w71kYWrFrzsKCihiKSBzdWNoIHBoeXNpY2FsaW5qdXJ5aXNub3QgYXR0cmlidXRhYmxlIHRvIEludmVzdGlnYXRvciBmeXppY2tvdSDDumptdSBuZWx6ZSBwxZlpxI3DrXN0IG5lZGJhbG9zdGkgbmVibwphbmQvb3IgSW5zdGl0dXRpb24gb3IgYW55IG9mIHRoZWlyIGFnZW50c3Ygb3IgbmVzcHLDoXZuw6ltdSBqZWRuw6Fuw60gbmEgc3RyYW7EmyBaa291xaFlasOtY8OtaG8KZW1wbG95ZWVzNyBuZWdsaWdlbmNlIG9yIG1pc2NvbmR1Y3Q7IGEvbmVibyB6ZHJhdm90bmlja8OpaG8gemHFmcOtemVuw60gYW5pIG7Em2t0ZXLDqWhvIGplaG8KCnrDoXN0dXBjZSBuZWJvIHphbcSbc3RuYW5jZSwKCihjKSBzdWNoIGNvc3RzIGFyZSBub3QgYXR0cmlidXRhYmxlIHRvIHRoZSBuYXR1cmFsIG5ha2xhZHkgbmVzb3V2aXNlasOtIHMgcMWZaXJvemVub3UgcHJvZ3Jlc2kKcHJvZ3Jlc3Npb24gb2YgYW55IHVuZGVybHlpbmcgaTExbmVzcyBvZiB0aGUgU3R1ZHkgemFrbGFkbmlobyBvbmVtb2NuxJtuw60gU3ViamVrdHUgc3R1ZGllIGJlegpzdWJqZWN0LCBXaGV0aGVyIHByZXZpb3VzbHkgZGlhZ25vc2VkIG9yIG5vdDsgb2hsZWR1IG5hIHRvLCB6ZGEgYnlsbyB2IG1pbnVsb3N0aQoKZGlhZ25vc3Rpa292w6FubywKCihkKSBJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIGhhdmUgY29tcGxpZWQgV2l0aCB0aGUgWmtvdcWhZWrDrWPDrSBhIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gZG9kcsW+ZWxpClByb3RvY29sIGFuZCBhbGwgd3JpdHRlbiBpbnN0cnVjdGlvbnMgZnVybmlzaGVkIGJ5IG9yIFByb3Rva29sIGF2xaFlY2hueSBww61zZW1uw6kgcG9reW55IHBvc2t5dG51dMOpCm9uIGJlaGFsZiBvZiBMaWxseSwgcHJvdmlkZWQgdGhhdCBkZXZpYXRpb25zIGZyb20gdGhlIHNwb2xlxI1ub3N0w60gTGlsbHkgbmVibyBqZWrDrW0gam1lbmVtLCBwxZlpxI1lbcW+ClByb3RvY29sIG5lY2Vzc2FyeSB0byBwcm90ZWN0IHRoZSBTdHVkeSBzdWJqZWN0IGZyb20gb2RjaHlsa3kgb2QgUHJvdG9rb2x1IG5lemJ5dG7DqSBrIG9jaHJhbsSbCmFuIGltcm5pbmVudCB0aHJlYXQgdG8gdGhlIFN0dWR5IHN1YmplY3R2cyBoZWFsdGggb3IgU3ViamVrdHUgc3R1ZGllIHDFmWVkIGJlenByb3N0xZllZG7DrW0gb2hyb8W+ZW7DrW0Kc2FmZXR5LCB0aGF0IGRvIG5vdCBjYXVzZSB0aGUgaW5qdXJ5IHRvIHRoZSBTdHVkeSBzdWJqZWN0IGplaG8gemRyYXbDrSBuZWJvIGplaG8gYmV6cGXEjW5vc3RpLCBrdGVyZQpXaWxsIG5vdCBkaXNxdWFsaWZ5IEluc3RpdHV0aW9uIGFuZC9vciBJbnZlc3RpZ2F0b3IgbmV6cMWvc29iaWx5IFN1Ympla3R1IHN0dWRpZSDDumptdSwgbmV6YmF2dWrDrQpmcm9tIHJlaW1idXJzZW1lbnQgdW5kZXIgdGhpcyBwcm92aXNpb246IGFuZDsgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhL25lYm8gWmtvdcWhZWrDrWPDrWhvIG7DoXJva3UKCm5hIMO6aHJhZHUgcG9kbGUgdG9ob3RvIHVzdGFub3ZlbsOtIGEKCihlKSBzdWNoIGNvc3RzIGFyZSBub3QgY2F1c2VkIGJ5IGEgZmFpbHVyZSB0byBvYnRhaW4gcHJvcGVyIG5ha2xhZHkgbmVqc291IHpwxa9zb2JlbnkgdMOtbSwgxb5lIG5lYnlsIHrDrXNrw6FuCmluZm9ybWVkIGNvbnNlbnQgb3IgcHJvcGVybHkgaW5zdHJ1Y3QgdGhlIFN0dWR5IMWZw6FkbsO9IGluZm9ybW92YW7DvSBzb3VobGFzIG5lYm8gU3ViamVrdCBzdHVkaWUKc3ViamVjdCBuZWJ5bCDFmWFkbsSbIHBvdcSNZW4uCgoyNDEuNAoKMy4gVEVSTUlOQVRJT04gVUtPTsSMRU7DjSBQTEFUTk9TVEkKCjMuMS4xLiBMaWxseSByZXNlcnZlcyB0aGUgcmlnaHQgdG8gdGVybWluYXRlIEludmVzdGlnYXRvciwgU3BvbGXEjW5vc3QgTGlsbHkgc2kgdnlocmF6dWplIHByw6F2byBrZHlrb2xpCkluc3RpdHV0aW9uLCBvciBhbnkgcGF0aWVyacWlcyBwYXJ0aWNpcGF0aW9uIGluIHRoZSBTdHVkeSBhIHogamFrw6lob2tvbGkgZMWvdm9kdSB1a29uxI1pdCDDusSNYXN0IFprb3XFoWVqw61jw61obywKb3IgdGhlIFN0dWR5IGl0c2VsZiBhdCBhbnkgdGltZSBmb3IgYW55IHJlYXNvbiB1cG9uIHpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSBuZWJvIGpha2Vob2tvbGkgcGFjaWVudGEKd3JpdHRlbiBub3RpZmljYXRpb24uIHZlIFN0dWRpaSBuZWJvIHVrb27EjWl0IFN0dWRpaSBqYWtvIHRha292b3UsIGEgdG8gbmEKCnrDoWtsYWTEmyBww61zZW1uw6lobyBvem5hbWVuw60KCjMuMS4yLiBJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIG1heSB0ZXJtaW5hdGUgdGhlaXIgWmtvdcWhZWrDrWPDrSBhL25lYm8gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBtb2hvdQoKIAoKcGFydGljaXBhdGlvbiBpbiB0aGUgU3R1ZHkgdXBvbiB0aGlydHkgKDMwKSBkYXlzCndyaXR0ZW4gbm90aWNlIGluIHRoZSBldmVudDoKCiAKCiAKCnN2b3Ugw7rEjWFzdCB2ZSBTdHVkaWkgdWtvbsSNaXQgc3TFmWljZXRpZGVubsOtICgzMCkKcMOtc2Vtbm91IHbDvXBvdsSbZG7DrSBsaMWvdG91IHZuYXNsZWR1asOtY8OtY2gKcMWZw61wYWRlY2g6CgogCgpQYWdlIDE1IG9mNDUgLyBTdHJhbmEgMTUgeiA0NQoKIAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnplOiB6w6HFmcOtIDIwMjQKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCihhKSB0aGVyZSBpcyBhIHNlcmlvdXMgYnJlYWNoIG9mIHRoaXMgQWdyZWVtZW50IGJ5IExpbGx5LCBkb2pkZSBrIHBvZHN0YXRuw6ltdSBwb3J1xaFlbsOtIHRldG8gU21sb3V2eQp3aGljaCBicmVhY2ggaXMgbm90IGN1cmVkIGJ5IExpbGx5IFdpdGhpbiBuaW5ldHkgKDkwKSBzcG9sZcSNbm9zdMOtIExpbGx5IGEgdGEgbmV6YWppc3TDrSBuYXByYXZ1IHZlIGxoxa90xJsKZGF5cyBmb2xsb3dpbmcgcmVjZWlwdCBmcm9tIEludmVzdGlnYXRvciBhbmQvb3IgZGV2YWRlc8OhdGkgKDkwKSBkbsWvIG9kIG9iZHLFvmVuw60gcMOtc2VtbsOpaG8KSW5zdGl0dXRpb24gb2Ygd3JpdHRlbiBub3RpY2UgdGhlcmVvZjsgb3puw6FtZW7DrSBvIHBvcnXFoWVuw60gU21sb3V2eSB6YXNsYW7DqWhvCgpaa291xaFlasOtY8Otcm4gYS9uZWJvIFpkcmF2b3RuaWNrw71tIHphxZnDrXplbsOtbSwKCihiKSBpZiB0aGUgSW52ZXN0aWdhdG9yIGJlY29tZXMgdW5hdmFpbGFibGUgZHVlIHRvIGRlYXRoIHBva3VkIHDFmWVzdGFuZSBiw710IFprb3XFoWVqw61jw60genDFr3NvYmlsw70gayDDusSNYXN0aQpvciBkaXNhYmlsaXR5IGFuZCBJbnN0aXR1dGlvbiBhbmQgTGlsbHkgYXJlIHVuYWJsZSB0byB2ZSBTdHVkaWkgeiBkxa92b2R1IHVtcnTDrSBuZWJvIHByYWNvdm7DrQphZ3JlZSB1cG9uIGFuIGFjY2VwdGFibGUgcmVwbGFjZW1lbnQ7IG9yIG5lc2Nob3Bub3N0aSBhIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gc2Ugc2UKCnNwb2xlxI1ub3N0w60gTGlsbHkgbmVkb2hvZG5lIG5hIHDFmWlqYXRlbG7DqSBuw6FocmFkxJssCm5lYm8KCihjKSBpZiB0aGUgYXV0aG9yaXphdGlvbiBhbmQgYXBwcm92YWwgdG8gcGVyZm9ybSB0aGUgU3R1ZHkgcG9rdWQgamFrw71rb2xpIG3DrXN0bsOtIGtvbnRyb2xuw60gxI1pIHNwcsOhdm7DrSBvcmfDoW4sCmlzIHdpdGhkcmF3biBieSBhbnkgbG9jYWwgcmVndWxhdG9yeSBvciBleGVjdXRpdmUgamFrw71rb2xpIGtvbnRyb2xuw60gw7rFmWFkIFNwb2plbsO9Y2ggc3TDoXTFrwphdXRob3JpdHksIGFueSBVbml0ZWQgU3RhdGVzIHJlZ3VsYXRvcnkgYXV0aG9yaXR5LCBvciBhbWVyaWNrw71jaCBuZWJvIGV0aWNrYSBrb21pc2Ugb2R2b2zDoSBzY2h2YWxlbmkKYnkgdGhlIEVDLiBhIHBvdm9sZW7DrSBwcm92w6FkxJt0IFN0dWRpaS4KCjMuMS4zLiBJbiB0aGUgZXZlbnQgSW52ZXN0aWdhdG9yIGFuZC9vciBJbnN0aXR1dGlvcsWlcyBWIHDFmcOtcGFkxJsgdWtvbsSNZW7DrSDDusSNYXN0aSBaa291xaFlanInY3InaG8gYS9uZWJvCnBhcnRpY2lwYXRpb24gaW4gdGhlIFN0dWR5IG9yIHRoZSBTdHVkeSBpdHNlbGYgaXMgemRyYXZvdG5pY2vDqWhvIHphxZnDrXplbsOtIG5hIFN0dWRpaSBuZWJvIHVrb27EjWVuw60KdGVybWluYXRlZCwgSW52ZXN0aWdhdG9yIGFuZC9vciBJbnN0aXR1dGlvbiBhZ3JlZSB0byBTdHVkaWUgamFrbyB0YWtvdsOpIHNlIFprb3XFoWVqw61jw60gYS9uZWJvCnJldHVybiBhMTEgU3R1ZHkgZHJ1ZyhzKSBpbiBhY2NvcmRhbmNlIFdpdGggWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSB6YXZhenVqw60gdnJhdGl0IHbFoWVjaG55Cmluc3RydWN0aW9ucyBwcm92aWRlZCBieSBMaWxseSBhbmQgcmVndWxhdG9yeSBIb2Rub2NlbmUgcMWZw61wcmF2a3kgcG9kbGUgcG9reW7FryBzcG9sZcSNbm9zdGkKcmVxdWlyZW1lbnRzLCBvbiB0aGUgZVhwZW5zZSBvZkxpMTF5LiBMaWxseSBhcG/FvmFkYXZrxa8ga29udHJvbG7DrWNoIMO6xZlhZMWvLCBhIHRvIG5hCgpuw6FrbGFkeSBzcG9sZcSNbm9zdGkgTGlsbHkuCgozLjEuNC4gSW4gdGhlIGV2ZW50IG9mIHRlcm1pbmF0aW9uIG9mIFN0dWR5LCBwYXltZW50cyBzaGFsbCBWIHDFmcOtcGFkxJsgdWtvbsSNZW7DrSBzdHVkaWUsIGJ1ZG91IHVocmF6ZW55IHBsYXRieQpiZSBtYWRlIGZvciBhbGwgd29yayB0aGF0IGhhcyBiZWVuIHBlcmZvcm1lZCB1cCB0byB6YSB2ZcWha2Vyb3UgcHJhY2kgdnlrb25hbm91IGHFviBkbyBkYXRhIHRvaG90bwp0aGUgZGF0ZSBvZiB0ZXJtaW5hdGlvbiBhbmQgc2hhbGwgYmUgbGltaXRlZCB0byB1a29uxI1lbsOtOyBwbGF0YnkgYnVkb3Ugb21lemVueSBuYSDDumhyYWR1CnJlYXNvbmFibGUgbm9uLWNhbmNlMTFhYjFlIGNvc3RzIHdoaWNoIHdlcmUgaW5jdXJyZWQgbmV6cnXFoWl0ZWxuw71jaCBuw6FrbGFkxa8sIGt0ZXLDqSB2em5pa2x5CmJ5IEludmVzdGlnYXRvciBhbmQvb3IgSW5zdGl0dXRpb24gaW4gY29ubmVjdGlvbiBXaXRoIFprb3XFoWVqw61jw61tdSBhL25lYm8gWmRyYXZvdG5pY2tlbXUgemHFmcOtemVuw60KdGhlIFN0dWR5IGFzIHJlcXVpcmVkIHVuZGVyIHRoZSBQcm90b2NvbCBhbmQgdiBzb3V2aXNsb3N0aSBzZSBTdHVkacOtIHBvZGxlIHBvxb5hZGF2a8WvIFByb3Rva29sdQpjb250ZW1wbGF0ZWQgaW4gRVhoaWJpdCBBIC0gUGF5bWVudCBUZXJtcy4gYSBrdGVyw6kganNvdSBwxZllZHBva2zDoWRhbsOpIHYgUMWZw61sb3plIEEgXyBQbGF0ZWJuw60KCnBvZG3DrW5reS4KCjQuIFRFUk0gRE9CQSBQTEFUTk9TVEkKVGhlIHRlcm0gb2YgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgYmVjb21lIHZhbGlkIG9uIHRoZSBUYXRvIFNtbG91dmEgbmFiw712w6EgcGxhdG5vc3RpIGRuZW0gcG9kcGlzdQpkYXkgb2Ygc2lnbmF0dXJlIGJ5IHRoZSBsYXN0IFBhcnR5IGFuZCBlZmZlY3RpdmUgb24gdGhlIHBvc2xlZG7DrSBTdHJhbnkgYSDDusSNaW5ub3N0aSBrZSBkbmkgamVqcidobyB1dmXFmWVqbsSbbsOtCmRheSBvZiBpdHMgcHVibGljYXRpb24gaW4gdGhlIFJlZ2lzdGVyIG9mIENvbnRyYWN0cyB2cmVnaXN0cnUgc21sdXYgc3ByYXZvdmFuZW0gTWluaXN0ZXJzdHZlbQptYWludGFpbmVkIGJ5IHRoZSBPZmZpY2Ugb2YgdGhlIEdvdmVybm1lbnQgb2YgdGhlIHZuaXRyYSDEjGVza8OpIHJlcHVibGlreSAoZMOhbGUg4oCeRGF0dW0gw7rEjWlubm9zdMWZJykKQ3plY2ggUmVwdWJsaWMgKOKAnEVmZmVjdGl2ZSBEYXRlYWEpIHVudGkxIHRoZSBhIHrFr3N0w6F2w6EgdiBwbGF0bm9zdGkgZG8gZG9rb27EjWVuw60gU3R1ZGllLApjb21wbGV0aW9uIG9mIHRoZSBTdHVkeSwgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gb2NjdXIgayBuxJttdcW+IGJ5IG3Em2xvIGRvasOtdCBwxZlpYmxpxb5uxJsgdMWZaSAoMykgbcSbc8OtY2UgcG8KYXBwcm94aW1hdGVseSB0aHJlZSAoMykgbW9udGhzIGFmdGVyIGRhdGFiYXNlIGxvY2sgdXphbcSNZW7DrSBkYXRhYmF6ZSBTdHVkaWUsIGF2xaFhayBuaWtvbGkgZMWZw612ZSBuZcW+CmZvciB0aGUgU3R1ZHksIGJ1dCBpbiBubyBldmVudCBwcmlvciB0byBjb21wbGV0aW9uIG9mIHBvIGRva29uxI1lbsOtIFByb3Rva29sdSBhIGplaG8gcMWZw61wYWRuw71jaCB6bcSbbgp0aGUgUHJvdG9jb2wgYW5kIGFueSBhbWVuZG1lbnRzIHRoZXJldG8gYW5kIGEgem9kcG92xJt6ZW7DrSB2xaFlY2ggZG90YXrFryBrIMO6ZGFqxa9tLCBwb2t1ZCBqZWrDrQpjb21wbGV0aW9uIG9mIGFsbCBkYXRhIHF1ZXJpZXMsIHVubGVzcyB0ZXJtaW5hdGVkIHBsYXRub3N0IG5lYnVkZSB1a29uxI1lbmEgZMWZw612ZSBwb2RsZSB1c3Rhbm92ZW7DrQplYXJsaWVyIHB1cnN1YW50IHRvIHRoZSB0ZXJtaW5hdGlvbiBjbGF1c2Ugb2YgdGhpcyDEjWxhbmt1b3Vrb27EjWVuw60gcGxhdG5vc3RpdGV0byBTbWxvdXZ5LgpBZ3JlZW1lbnQuCgo1LiBDT05GSURFTlRJQUxJVFkgQU5EIE5PTi1VU0UgT0YgRFVWRVJOT1NUIEEgTkVQT1Vaw41Ww4FOw40KQ09ORklERU5USUFMIERBVEEgRMOaVsSaUk7DnUNIIElORk9STUFDw40KCjUuMS4gQ29uZnJkZW50aWFsIEluZm9ybWF0aW9uIGluIGNvbm5lY3Rpb24gV2l0aCB0aGUgRMWvdsSbcm5lIGluZm9ybWFjZSB2IHNvdXZpc2xvc3RpIHNlIFN0dWRpw60KU3R1ZHkKCjUuMS4xLiBBbGwgaW5mb3JtYXRpb24gcHJvdmlkZWQgdG8gSW52ZXN0aWdhdG9yIGFuZC9vciBWxaFlY2hueSBpbmZvcm1hY2UgcG9za3l0bnV0w6kgWmtvdcWhZWrDrWPDrW11CgogCgpJbnN0aXR1dGlvbiBieSBMaWxseSBvciBMaWxseS1kZXNpZ25hdGVkCnJlcHJlc2VudGF0aXZlcywgb3IgZ2VuZXJhdGVkIGJ5IEludmVzdGlnYXRvciBhbmQvb3IKCiAKCiAKCmEvbmVibyBaZHJhdm90bmlja2VtdSB6YcWZw616ZW7DrSBzcG9sZcSNbm9zdMOtIExpbGx5CsSNaSBqZWrDrW1pIHBvdsSbxZllbsO9bWkgemFzdHVwY2kgbmVibyB6w61za2Fuw6kKCiAKClBhZ2UgMTYgb2Y0NSAvIFN0cmFuYSAxNiB6IDQ1CgogCgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZXIgMjAyNAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyemU6IHrDocWZw60gMjAyNAoKIAoKSW5zdGl0dXRpb24gaW4gY29ubmVjdGlvbiBXaXRoIHRoZSBTdHVkeQoo4oCcQ29uZmxkZW50aWFsIEluZm9ybWF0aW9uIiAhLCBXaWxsIGJlIGtlcHQgaW4KY29uZmlkZW5jZSBhbmQgbm90IHVzZWQgZm9yIGFueSBwdXJwb3NlIG5vdCBlWHByZXNzbHkKcHJvdmlkZWQgZm9yIGluIHRoaXMgQWdyZWVtZW50IGZvciBhdCBsZWFzdCBmaXZlICg1KQp5ZWFycyBhZnRlciB0aGUgdGVybWluYXRpb24gb3IgY29uY2x1c2lvbiBvZiB0aGUgU3R1ZHksCmV4Y2VwdCBpbiBhY2NvcmRhbmNlIFdpdGggdGhlIFB1YmxpY2F0aW9ucyBzZWN0aW9uIG9mCnRoaXMgQWdyZWVtZW50LCBvciB0byB0aGUgZXh0ZW50IHRoYXQgTGlsbHkgZ2l2ZXMKSW52ZXN0aWdhdG9yIGFuZC9vciBJbnN0aXR1dGlvbiB3cml0dGVuIHBlcm1pc3Npb24gb3IKcGFydGljdWxhciBpbmZvcm1hdGlvbiBpcyByZXF1aXJlZCBieSBsYXdzIG9yCnJlZ3VsYXRpb25zIHRvIGJlIGRpc2Nsb3NlZCB0byB0aGUgRUMsIHRoZSBwYXRpZW50LCBvcgpsb2NhbCByZWd1bGF0b3J5IGFnZW5jaWVzLgoKWmtvdcWhZWrDrWPDrW0gYS9uZWJvIFpkcmF2b3RuaWNrw71tIHphxZnDrXplbsOtbQp2c291dmlzbG9zdGkgc2UgU3R1ZGnDrSAoZGFsZSDigJ5Exa92xJtybsOpCmluZm9ybWFjZeKAnFsgYnVkb3UgdWNob3bDoW55IGpha28gZMWvdsSbcm7DqQphbmVidWRvdSBwb3XFvml0eSBrIMW+w6FkbsOpbXUgw7rEjWVsdSwga3RlcsO9IG5lbsOtCnbDvXNsb3ZuxJsgc3Rhbm92ZW52IHRldG8gU21sb3V2xJssIGEgdG8gbmVqbcOpbsSbIHBvCmRvYnUgcMSbdGkgKDUpIGxldCBvZCB1a29uxI1lbsOtIG5lYm8gZG9rb27EjWVuw60KU3R1ZGllLCBzdsO9amlybmtvdSBwb3N0dXDFryB2c291bGFkdSBzxI1hc3TDrQrigJ5QdWJsaWthY2XigJwgdGV0byBTbWxvdXZ5LCBuZWJvIHYgcm96c2FodSwKdmpha8OpbSBzcG9sZcSNbm9zdCBMaWxseSB1ZMSbbMOtIFprb3XFoWVqw61jw61tdQphL25lYm8gWmRyYXZvdG5pY2tlbXUgemHFmcOtemVuw60gcMOtc2VtbsO9IHNvdWhsYXMsCm5lYm8gcMWZw61wYWTFrywga2R5IGplIHBvZGxlIHByw6F2bsOtY2ggcMWZZWRwaXPFrwp2ecW+YWRvdsOhbm8gcMWZZWTDoW7DrSBrb25rcmV0bsOtIGluZm9ybWFjZSBldGlja8OpCmtvbWlzaSwgcGFjaWVudG92aSBuZWJvIGtvbnRyb2xuw61tdSBvcmdhbnUuCgogCgpUbyB0aGUgZXh0ZW50IGRpc2Nsb3N1cmUgaXMgcmVxdWVzdGVkIGJ5IGFueSBvdGhlcgpwZXJzb24gb3IgZW50aXR5LCBJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIHNoYWxsCnByb21wdGx5IG5vdGlmeSBMaWxseSBhbmQgc2hhbGwgbm90IGRpc2Nsb3NlIGFueQppbmZvcm1hdGlvbiBXaXRob3V0IExpMTF5N3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiBJZgpzdWNoIGRpc2Nsb3N1cmUgaXMgc291Z2h0IGJ5IGEgdGhpcmQgcGFydHkgdW5kZXIgYQpjbGFpbSBvZiBsZWdhbCByaWdodCwgSW52ZXN0aWdhdG9yIGFuZC9vciBJbnN0aXR1dGlvbgpXaWxsIHJlYXNvbmFibHkgY29vcGVyYXRlIFdpdGggTGlsbHkgaW4gdGhlIGV2ZW50IExpbGx5Cldpc2hlcyB0byB0YWtlIGxlZ2FsIGFjdGlvbiB0byBjaGFsbGVuZ2Ugc3VjaCBjbGFpbSBvcgp0aGUgZGlzY2xvc3VyZTsgcHJvdmlkZWQsIGhvd2V2ZXIsIGluIG5vIGV2ZW50IHNoYWxsCkludmVzdGlnYXRvciBhbmQvb3IgSW5zdGl0dXRpb24gYmUgb2JsaWdhdGVkIHRvIGRlZnkKYW55IGxhdywgcmVndWxhdGlvbiwgb3IganVkaWNpYTEgb3IgZ292ZXJubWVudGFsIG9yZGVyLgoKUG9rdWQgcMWZZWTDoW7DrSBpbmZvcm1hY8OtIHBvxb5hZHVqZSBqYWvDoWtvbGkgamluYQpmeXppY2vDoSDEjWkgcHLDoXZuaWNrw6Egb3NvYmEsIFprb3XFoWVqw61jw60gYS9uZWJvClpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gdG8gbmVwcm9kbGVuxJsgb3puw6Ftw60Kc3BvbGXEjW5vc3RpIExpbGx5IGEgbmVwxZllZMOhIMW+w6FkbsOpIGluZm9ybWFjZSBiZXoKcMWZZWRjaG96w61obyBww61zZW1uw6lobyBzdm9sZW7DrSBzcG9sZcSNbm9zdGkgTGlsbHkuCkplc3RsacW+ZSBvIHDFmWVkw6Fuw60gaW5mb3JtYWPDrSBidWRlIHVzaWxvdmF0IHTFmWV0w60Kc3RyYW5hIG5hIHrDoWtsYWTEmyB1cGxhdG7Em27DrSB6w6Frb25uw6lobyBwcmF2YSwKcG9za3l0bm91IFprb3XFoWVqw61jw60gYS9uZWJvIFpkcmF2b3RuaWNrw6kKemHFmcOtemVuw60gc3BvbGXEjW5vc3RpIExpbGx5IHDFmWltxJvFmWVub3Ugc291xI1pbm5vc3QKcHJvIHDFmcOtcGFkLCDFvmUgc3BvbGXEjW5vc3QgTGlsbHkgYnVkZSBjaHTDrXQKcG9kbmlrbm91dCBwcmF2bsOtIGtyb2t5IGsgbmFwYWRudXTDrSB0YWtvdmVobwpuYXJva3UgbmVibyB6cMWZw61zdHVwbsSbbsOtLCBhdsWhYWsgcyB0w61tLCDFvmUKWmtvdcWhZWrDrWPDrSBhL25lYm8gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBuZWJ1ZG91CnYgxb7DoWRuw6ltIHDFmcOtcGFkxJsgcG92aW5uaSBwb3J1xaFpdCB6YWtvbiwgcMWZZWRwaXMKbmVibyBzb3VkbsOtIMSNaSB2bMOhZG7DrSBuYcWZw616ZW7DrS4KCiAKCkludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yCmVuc3VyaW5nIHRoYXQgdGhlaXIgZW1wbG95ZWVzLCBzdWItaW52ZXN0aWdhdG9ycywKY29udHJhY3RvcnMsIGFuZCBhZ2VudHMgYXJlIG9ibGlnYXRlZCB0byB0aGVzZSBzYW1lCnRlcm1zIG9mIGNvbmZpZGVudGlhbGl0eSBhbmQgbm9uLXVzZS4gVGhlIHRlcm1zIG9mCmNvbmZpZGVudGlhbGl0eSBhbmQgbm9uLXVzZSBzZXQgZm9ydGggaGVyZWluIHNoYWxsCnN1cGVyc2VkZSBhbnkgcHJpb3IgdGVybXMgb2YgY29uZmlkZW50aWFsaXR5IGFuZCBub24tCnVzZSBhZ3JlZWQgdG8gYnkgdGhlIFBhcnRpZXMgaW4gY29ubmVjdGlvbiBXaXRoIHRoaXMKU3R1ZHkuIFRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCBzaGFsbCBhbHNvIGJlCmNvbnNpZGVyZWQgQ29uZnJkZW50aWFsIEluZm9ybWF0aW9uIGFuZCBtYXkgYmUKZGlzY2xvc2VkIG9ubHkgdG8gdGhlIGV4dGVudCByZXF1aXJlZCBieSBsYXcgb3IKbmVjZXNzYXJ5IGZvciBhcHByb3ZhbCBvZiB0aGlzIFN0dWR5IG9yIGFzIHBlcm1pdHRlZApieSBMaWxseSBpbiB3cml0aW5nLgoKWmtvdcWhZWrDrWPDrSBhWmRyYXZvdG5pY2tlIHphxZnDrXplbsOtIGpzb3UgcG92aW5uaQp6YWppc3RpdCwgYWJ5IGplamljaCB6YW3Em3N0bmFuY2ksIHNwb2x1emtvdcWhZWrDrWPDrSwKemFzdHVwY2kgYSBzbWx1dm7DrSBkb2RhdmF0ZWxlIGJ5bGkgdmF6YW5pIHN0ZWpuw71taQp6w6F2YXpreSB6YWNob3ZhbsOtIGTFr3bEm3Jub3N0aSBhbmVwb3XFvsOtdmFuw60KZMWvdsSbcm7DvWNoIGluZm9ybWFjw60uIFVzdGFub3ZlbsOtIHRldG8gU21sb3V2eQpvIHphY2hvdsOhbsOtIGTFr3bEm3Jub3N0aSBhIHpha2F6dSBwb3XFvml0w60gbmFocmFkw60KamFrw6Frb2xpIHDFmWVkY2hvesOtIHVzdGFub3ZlbsOtIG8gemFjaG92w6Fuw60KZMWvdsSbcm5vc3RpIGF6YWthenUgcG91xb5pdMOtLCBuYSBuaWNoxb4gc2UgU3RyYW55CnYgc291dmlzbG9zdGkgcyB0b3V0byBTdHVkacOtIGRvaG9kbHkuIFphIETFr3bEm3JuZQppbmZvcm1hY2UganNvdSBwb3Zhxb5vdsOhbmEgaXVzdGFub3ZlbsOtIHRldG8KU21sb3V2eSwga3RlcsOhIHRhayBtb2hvdSBiw710IHNkxJtsb3ZhbmEgcG91emUKdiBwxZnDrXBhZMSbLCDFvmUgamUgdG8gdnnFvmFkb3bDoW5vIHplIHrDoWtvbmEgbmVibyBqZQp0byBuZXpieXRuw6kga2Ugc2NodsOhbGVuw60gU3R1ZGllIG5lYm8gcyB0w61tCnNwb2xlxI1ub3N0IExpbGx5IHDDrXNlbW7EmyBzb3VobGFzw60uCgogCgogCgogCgogCgo1LjEuMi4gVGhlIGZvcmVnb2luZyBvYmxpZ2F0aW9ucyBvZiBjb25maWRlbnRpYWxpdHkgYW5kIG5vbi0gVsO9xaFlIHV2ZWRlbsOpIHrDoXZhemt5IHphY2hvdmFuw60gZMWvdsSbcm5vc3RpCnVzZSBXaWxsIG5vdCBhcHBseSB0byBpbmZvcm1hdGlvbiB0aGF0OiBhIHpha2F6dSBwb3XFvml0w60gaW5mb3JtYWPDrSBzZSBuZXZ6dGFodWrDrSBuYQoKaW5mb3JtYWNlLCBrdGVyw6k6CgooYSkgaXMgb3IgbGF0ZXIgYmVjb21lcyBwYXJ0IG9mIHRoZSBwdWJsaWMgZG9tYWluIG90aGVyIGpzb3UgbmVibyBzZSBwb3pkxJtqaSBzdGFub3UgdmXFmWVqbsSbIHpuw6Ftw71taSwgYW5pxb4KdGhhbiB0aHJvdWdoIGJyZWFjaCBvZiB0aGlzIEFncmVlbWVudCBieSBJbnZlc3RpZ2F0b3IgYnkgc2UgdGFrIHN0YWxvIHBvcnXFoWVuw61tIHRldG8gU21sb3V2eSB6ZSBzdHJhbnkKb3IgSW5zdGl0dXRpb247IG9yIHpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSBuZWJvIFprb3XFoWVqw61jw61obywKCihiKSB3YXMga25vd24gYnkgSW52ZXN0aWdhdG9yIGFuZC9vciBJbnN0aXR1dGlvbiBwcmlvciB0byBieWx5IFprb3XFoWVqw61jw61tdSBhL25lYm8gWmRyYXZvdG5pY2tlbXUKCiAKCmRpc2Nsb3N1cmUgYnkgTGlsbHkgb3IgYmVjb21lcyBrbm93biBmcm9tIGFuCmluZGVwZW5kZW50IHNvdXJjZSBvciB0aGlyZCBwYXJ0eSB1bmRlciBubyBvYmxpZ2F0aW9uCnRvIExpbGx5IG9yIGFueSBvdGhlciB0aGlyZCBwYXJ0eSB0byBrZWVwIHN1Y2gKCiAKCiAKCnphxZnDrXplbsOtIHpuYW15IGppxb4gcMWZZWR0w61tLCBuZcW+IGppbSBieWx5IHDFmWVkw6FueQpzcG9sZcSNbm9zdMOtIExpbGx5LCBuZWJvIGplIHrDrXNrYWxpIHogbmV6w6F2aXNsw6lobwp6ZHJvamUgbmVibyBvZCB0xZlldMOtIHN0cmFueSBiZXogamFrw6lob2tvbGkgemF2YXprdQoKIAoKUGFnZSAxNyBvZjQ1IC8gU3RyYW5hIDE3IHogNDUKCiAKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnNpb246IFNlcHRlbWJlciAyMDI0CgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJ6ZTogesOhxZnDrSAyMDI0CgogCgppbmZvcm1hdGlvbiBjb25mcmRlbnRpYWwsIGFzIGNhbiBiZSBzaG93biBieSBwcmlvcgp3cml0dGVuIGRvY3VtZW50YXRpb247IG9yCgp6YWNob3bDoXbDoW7DrSBkxa92xJtybm9zdGkgdGFrb3bDvWNoIGluZm9ybWFjaSB2xa/EjWkKc3BvbGXEjW5vc3RpIExpbGx5IG5lYm8gdMWZZXTDrSBzdHJhbsSbLCBqYWsgdG8gbHplCnByb2vDoXphdCBwxZllZGNob3rDrSBww61zZW1ub3UgZG9rdW1lbnRhY8OtLCBuZWJvCgogCgooMCkKCmlzIGluZGVwZW5kZW50bHkgZGV2ZWxvcGVkLCBhcyBzaG93biBieSB3cml0dGVuCmRvY3VtZW50YXRpb24sIGJ5IEludmVzdGlnYXRvciBvciBJbnN0aXR1dGlvbiBvciB0aGVpcgpwZXJzb25uZWwgV2hvIGhhdmUgbm90IGhhZCBhY2Nlc3MgdG8gQ29uZnJkZW50aWFsCkluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IExpbGx5LgoKanNvdSBuZXphdmlzbGUgdnl0dm/FmWVueSwgamFrIGx6ZSBkb2xvxb5pdCBww61zZW1ub3UKZG9rdW1lbnRhY8OtLCBaa291xaFlasOtY8Otcm4gbmVibyB6YW3Em3N0bmFuY2kKemRyYXZvdG5pY2vDqWhvIHphxZnDrXplbsOtLCBrdGXFmcOtIG5lbcSbbGkgcMWZw61zdHVwCmsgZMWvdsSbcm7DvW0gaW5mb3JtYWPDrW0gc3BvbGXEjW5vc3RpIExpbGx5LgoKIAoKTm90aGluZyBoZXJlaW4gc2hhbGwgcmVzdHJpY3Qgb3IgcHJvaGliaXQgZGlzY2xvc3VyZXMgdG8Kb3RoZXIgaGVhbHRoY2FyZSBwcm92aWRlcnMgdG8gdGhlIGV4dGVudCBuZWNlc3NhcnkgdG8KcHJvdmlkZSB1cmdlbnQgcGF0aWVudCBjYXJlIGZvciBhbnkgcGF0aWVudApwYXJ0aWNpcGF0aW5nIGluIHRoZSBTdHVkeS4gSW4gdGhlIGV2ZW50IHRoZSBwYXRpZW50J3MKbWVkaWNhbCBjb21wbGFpbnQgaXMgbm90IG9mIGFuIHVyZ2VudCBuYXR1cmUsCkludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gc2hhbGwgY29udGFjdCBMaWxseSB0bwpkaXNjdXNzIFdoYXQgaW5mb3JtYXRpb24sIGlmIGFueSwgbWF5IGJlIGRpc2Nsb3NlZCB0bwphbm90aGVyIGhlYWx0aGNhcmUgcHJvdmlkZXIgYXMgaXQgcmVsYXRlcyB0byB0aGUKZGlhZ25vc2lzIGFuZC9vciB0cmVhdG1lbnQgb2YgdGhlIHBhdGllbnQuCgpOaWMgdnRldG8gU21sb3V2xJsgbmVvbWV6dWplIGFuaSBuZXpha2F6dWplCnDFmWVkw6Fuw60gaW5mb3JtYWPDrSBqaW7DvW0gcG9za3l0b3ZhdGVsxa9tIHpkcmF2b3Ruw60KcMOpxI1lIHZyb3pzYWh1IG5lemJ5dG7DqW0gayBwb3NreXRudXTDrSB1cmdlbnRuw60KcGXEjWUga3RlcsOpbXVrb2xpIHBhY2llbnRvdmkgw7rEjWFzdG7DrWPDrW11IHNlClN0dWRpZS4gViBwxZnDrXBhZMSbLCDFvmUgcGFjaWVudMWvdiB6ZHJhdm90bsOtIHByb2Jsw6ltCm5lbsOtIHVyZ2VudG7DrWhvIGNoYXJha3RlcnUsIFprb3XFoWVqw61jw60KYVpkcmF2b3RuaWNrZSB6YcWZw616ZW7DrSBzZSBzcG9sZcSNbm9zdMOtIExpbGx5CnByb2plZG5hasOtLCBqYWtlIGluZm9ybWFjZSBwxZnDrXBhZG7EmyBsemUgc2TEm2xpdApqaW5lbXUgcG9za3l0b3ZhdGVsaSB6ZHJhdm90bsOtIHDDqcSNZSB2IHNvdXZpc2xvc3RpCnMgcGFjaWVudG92b3UgZGlhZ27Ds3pvdSBhL25lYm8gbMOpxI1ib3UuCgogCgo1LjIuCgpDb25mcmRlbnRpYWwgSW5mb3JtYXRpb24gZm9yIFNwb25zb3IgUHVibGljYXRpb24gYW5kCgpExa92xJtybmUgaW5mb3JtYWNlIHBybyBwdWJsaWthY2UgWmFkYXZhdGVsZQoKIAoKQXV0aG9yc2hpcAoKYSBhdXRvcnNrb3UgxI1pbm5vc3QKCiAKCjUuMi4xLgoKSW4gdGhlIGV2ZW50IEludmVzdGlnYXRvciBpcyBpbnZpdGVkIHRvIGJlIGFuIGF1dGhvciBvZgphIFNwb25zb3IgcHVibGljYXRpb24gb3IgcHJlc2VudGF0aW9uIGR1cmluZyB0aGUKY291cnNlIG9mIG9yIGFmdGVyIHRoZSBjb25jbHVzaW9uIG9mIHRoZSBTdHVkeSBjb3ZlcmVkCmJ5IHRoaXMgQWdyZWVtZW50LCBJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIHNoYWxsCmhvbGQgYTExIG5ldyBDb25mcmRlbnRpYWwgSW5mb3JtYXRpb24gKGluY2x1ZGluZyBkYXRhCmZyb20gb3RoZXIgaW52ZXN0aWdhdG9yIHNpdGVzIGZvciBtdWx0aS1zaXRlIHN0dWRpZXMpCnByb3ZpZGVkIHRvIEludmVzdGlnYXRvciBvciBJbnN0aXR1dGlvbiBieSBMaWxseSBvcgpMaWxseS1kZXNpZ25hdGVkIHJlcHJlc2VudGF0aXZlcywgb3IgZ2VuZXJhdGVkIGJ5CkludmVzdGlnYXRvciBvciBJbnN0aXR1dGlvbiBpbiBjb25uZWN0aW9uIFdpdGggc3VjaAphdXRob3JzaGlwLCBpbiBjb25maWRlbmNlIGZvciBmaXZlICg1KSB5ZWFycyBmcm9tIHRoZQpkYXRlIG9mIHN1Y2ggZGlzY2xvc3VyZSBvciB0aGUgZ2VuZXJhdGlvbiBvZgpDb25mcmRlbnRpYWwgSW5mb3JtYXRpb24sIGFzIGFwcGxpY2FibGUuCgpQb2t1ZCBidWRlIFprb3XFoWVqw61jw61tdSBuYWLDrWRudXRhIG1vxb5ub3N0IGLDvXQKYXV0b3JlbSBuxJtrdGVyw6kgcHVibGlrYWNlIG5lYm8gcHJlemVudGFjZQpaYWRhdmF0ZWxlLCBhxaUgamnFviB2cHLFr2LEm2h1IG5lYm8gcG8gZG9rb27EjWVuw60KU3R1ZGllLCBrdGVyYSBqZSBwxZllZG3Em3RlbSB0ZXRvIFNtbG91dnksCnphY2hvdmFqw60gWmtvdcWhZWrDrWPDrSBhWmRyYXZvdG5pY2tlIHphxZnDrXplbsOtCnZlxaFrZXLDqSBub3ZlIETFr3bEm3JuZSBpbmZvcm1hY2UgKHbEjWV0bsSbIHVkYWrFryBvZApqaW7DvWNoIHprb3XFoWVqw61jcidjaCB2cMWZw61wYWTEmyBtdWx0aWNlbnRyaWNrw71jaApzdHVkacOtKSwga3RlcsOpIGppbSBzcG9sZcSNbm9zdCBMaWxseSBuZWJvIGplasOtCnBvdsSbxZllbsO9IHphc3R1cGNlIHBvc2t5dG5lIG5lYm8ga3RlcsOpIHNhbWkKdnl0dm/FmcOtLCB2IGTFr3bEm3Jub3N0aSBwbyBkb2J1IHDEm3RpICg1KSBsZXQgb2QgZGF0YQpwxZllZMOhbsOtLCByZXNwLiB6w61za8OhbsOtIHRha292w71jaCBExa92xJtybsO9Y2gKaW5mb3JtYWPDrS4KCiAKCjUuMy4KClRyYWRlIFNlY3JldAoKT2JjaG9kbsOtIHRhamVtc3R2w60KCiAKCkxpbGx5IGNvbnNpZGVycyB0aGUgc3ViamVjdCBudW1iZXIsIGRlc2NyaXB0aW9uIG9mIHRoZQpTdHVkeSwgdGhlIFBheW1lbnQgVGVybXMsIHRoZSBCdWRnZXQsIHRoZQpJbnZlc3RpZ2F0b3J2cyBCcm9jaHVyZSwgdGhlIEluc3VyYW5jZSBQb2xpY3kgcmVsYXRlZAp0byB0aGUgU3R1ZHksIGFuZCB0aGUgUHJvdG9jb2wgdG8gYmUgc2lnbmlmaWNhbnQKaW5mb3JtYXRpb24gdW5kZXIgdGhlIFN0YXR1dG9yeSBkZWZpbml0aW9uIG9mIGEgdHJhZGUKc2VjcmV0cyAoU2VjLiA1MDQgb2YgQWN0IE5vLiA4OS8yMDEyIENvbGwuLCBDaXZpbApDb2RlKSDigJxUcmFkZSBTZWNyZXRzPyBHZW5lcmFsIGFjY2VzcyB0byB0aGlzCmluZm9ybWF0aW9uIGNvdWxkIG1hdGVyaWFsbHkgaW1wYWN0IExpbGx5IDdzIGVjb25vbWljCnJlc3VsdHMgYW5kIG1hcmtldCBwb3NpdGlvbi4gVGhlIEluc3RpdHV0aW9uIGFuZCB0aGUKSW52ZXN0aWdhdG9yIGNvbmZpcm0gdGhhdCB0aGV5IGFsc28gY29uc2lkZXIgdGhlCmluZm9ybWF0aW9uIG1lbnRpb25lZCBhYm92ZSBhcyBUcmFkZSBTZWNyZXRzIGFuZAphZ3JlZSB0byBtYWludGFpbiBpdHMgY29uZnJkZW50aWFsaXR5IGluIGFjY29yZGFuY2UKV2l0aCB0aGlzIEFncmVlbWVudC4KClNwb2xlxI1ub3N0IExpbGx5IHBvdmHFvnVqZSBwb8SNZXQgc3ViamVrdMWvLCBwb3BpcwpTdHVkaWUsIFBsYXRlYm7DrSBwb2Rtw61ua3ksIFJvenBvxI1ldCwgU291Ym9yCmluZm9ybWFjw60gcHJvIHprb3XFoWVqw61jcidobywgUG9qaXN0bm91IHNtbG91dnUKdMO9a2Fqw61jw60gc2UgU3R1ZGllIGFQcm90b2tvbCB6YSBrb25rdXJlbsSNbsSbCnbDvXpuYW1uw6kgaW5mb3JtYWNlIHZlIHNteXNsdSB6w6Frb25uw6kgZGVmaW5pY2UKb2JjaG9kbsOtaG8gdGFqZW1zdHbDrSAoJiA1MDQgesOha29uYSDEjS4gODkvMjAxMgpTYi4sIG9ixI1hbnNrw70gesOha29uw61rKSAoZGFsZSDigJ5PYmNob2Ruw60KdGFqZW1zdHbDreKAnCkuIE9iZWNuw70gcMWZw61zdHVwIGsgdMSbbXRvIGluZm9ybWFjw61tCmJ5IG1vaGwgbcOtdCBwb2RzdGF0bsO9IGRvcGFkIG5hIGhvc3BvZMOhxZlza8OpCnbDvXNsZWRreSBhcG9zdGF2ZW7DrSBzcG9sZcSNbm9zdGkgTGlsbHkgbmEgdHJodS4KWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhWmtvdcWhZWrDrWPDrSBwb3R2cnp1asOtLCDFvmUKdsO9xaFlIHV2ZWRlbsOpIGluZm9ybWFjZSByb3ZuxJvFviBwb3Zhxb51asOtIHphCm9iY2hvZG7DrSB0YWplbXN0dsOtIGEgemF2YXp1asOtIHNlIHphY2hvdsOhdmF0IG8gbmljaAptbMSNZW5saXZvc3QgdiBzb3VsYWR1IHMgdG91dG8gU21sb3V2b3UuCgogCgogCgogCgpUaGUgUGFydGllcyBoYXZlIG11dHVhbGx5IGluZm9ybWVkIGVhY2ggb3RoZXIgb2YgdGhlCm9ibGlnYXRpb24gdG8gcHVibGlzaCB0aGUgQWdyZWVtZW50IHVuZGVyIEFjdCBOby4KMzQwLzIwMTUgQ29sbC4sIG9uIFNwZWNpYWwgUHJlcmVxdWlzaXRlcyBmb3IgdGhlCkVmZmVjdGl2ZW5lc3Mgb2YgQ2VydGFpbiBDb250cmFjdHMsIHRoZSBQdWJsaWNhdGlvbiBvZgpUaG9zZSBDb250cmFjdHMsIGFuZCB0aGUgUmVnaXN0ZXIgb2YgQ29udHJhY3RzLCBvciBhbnkKCiAKCiAKClN0cmFueSBzZSB2esOhamVtbsSbIGluZm9ybW92YWx5IG8gcG92aW5ub3N0aQp1dmXFmWVqbml0IFNtbG91dnUgcG9kbGUgesOha29uYSDEjS4gMzQwLzIwMTUgU2IuLApvIHp2bMOhxaF0bsOtY2ggcG9kbWlua2FjaCDDusSNaW5ub3N0aSBuxJtrdGVyw71jaApzbWx1diwgdXZlxZllasWIb3bDoW7DrSB0xJtjaHRvIHNtbHV2IGFvcmVnaXN0cnUKc21sdXYsIG5lYm8gamluw71jaCBwbGF0bsO9Y2ggcHLDoXZuw61jaCBwxZllZHBpc8WvLAoKIAoKUGFnZSAxOCBvZjQ1IC8gU3RyYW5hIDE4IHogNDUKCiAKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnNpb246IFNlcHRlbWJlciAyMDI0CgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJ6ZTogesOhxZnDrSAyMDI0CgogCgpvdGhlciBhcHBsaWNhYmxlIGxlZ2FsIHJlZ3VsYXRpb25zLCBhbmQgdG8gYWN0IGluCmFjY29yZGFuY2UgV2l0aCB0aGlzIEFncmVlbWVudC4gUHJpb3IgdG8gcHVibGljYXRpb24sCmExMSBwcm92aXNpb25zIGFuZCBFeGhpYml0cyBpZGVudGlmaWVkIGJ5IHRoZSBQYXJ0aWVzIGFzCnRyYWRlIHNlY3JldHMsIGFzIHdlbGwgYXMgYW55IGRhdGEgdGhhdCBzaG91bGQgbm90IGJlCnB1Ymxpc2hlZCB1bmRlciBBY3QgTm8uIDM0MC8yMDE1IENvbGwuLCBXaWxsIGJlCnJlbW92ZWQgZnJvbSB0aGUgQWdyZWVtZW50LiBUaGUgSW5zdGl0dXRpb24gV2lsbApjYXJyeSBvdXQgdGhlIHB1YmxpY2F0aW9uLgoKYXBvc3R1cG92YXQgdnNvdWxhZHUgc3RvdXRvIFNtbG91dm91LiBQxZllZAp1dmXFmWVqbsSbbsOtbSBidWRvdSB6ZSBTbWxvdXZ5IG9kc3RyYW7Em25hCnbFoWVjaG5hIHVzdGFub3ZlbsOtIGEgUMWZw61sb2h5LCBrdGVyZSBTdHJhbnkgb3puYcSNw60KemEgb2JjaG9kbsOtIHRhamVtc3R2w60sIGEgdGFrZSB2ZcWha2Vyw6kgw7pkYWplLCBrdGVyw6kKYnkgbmVtxJtseSBiw710IHV2ZcWZZWpuxJtueSBwb2RsZSB6w6Frb25hCsSNLiAzNDAvMjAxNSBTYi4gVXZlxZllam7Em27DrSB6YWppc3TDrSBaZHJhdm90bmlja8OpCnphxZnDrXplbsOtLgoKIAoKUHJpb3IgdG8gc2lnbmluZyBvZiB0aGUgQWdyZWVtZW50LCBMaWxseSBXaWxsIHByb3ZpZGUKdGhlIEluc3RpdHV0aW9uIFdpdGggYSB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQKbW9kaWZpZWQgZm9yIHB1YmxpY2F0aW9uIGluIHRoZSBSZWdpc3RlciBvZiBDb250cmFjdHMKaW4gYWNjb3JkYW5jZSBXaXRoIEFjdCBOby4gMzQwLzIwMTUgQ29sbC4gVGhlCkluc3RpdHV0aW9uIFdpbGwgcHVibGlzaCB0aGUgbW9kaWZpZWQgdmVyc2lvbiBXaXRoaW4KZml2ZSAoNSkgd29ya2luZyBkYXlzIG9mIHNpZ25pbmcuCgpQxZllZCBwb2RwaXNlbSB0ZXRvIFNtbG91dnkgcG9za3l0bmUgc3BvbGXEjW5vc3QKTGlsbHkgWmRyYXZvdG5pY2tlbXUgemHFmcOtemVuw60gdmVyemkgU21sb3V2eQp1cHJhdmVub3UgcHJvIHV2ZcWZZWpuxJtuw60gdiByZWdpc3RydSBzbWx1dgp2IHNvdWxhZHUgc2UgesOha29uZW0gxI0uIDM0MC8yMDE1IFNiLgpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIHV2ZcWZZWpuw60gdXByYXZlbm91IHZlcnppIGRvCnDEm3RpICg1KSBwcmFjb3Zuw61jaCBkbsWvIG9kIHBvZHBpc3UuCgogCgogCgogCgogCgogCgogCgogCgo2LiBEQVRBIFBSSVZBQ1kgQU5EIFNFQ1VSSVRZIE9DSFJBTkEgw5pEQUpVIEEgSkVKSUNIClpBQkVaUEXEjEVOw40KCjYuMS4xLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgQWdyZWVtZW50IOKAnFBlcnNvbmFsIERhdGHigJ4sIFBybyDDusSNZWx5IHTDqXRvIFNtbG91dnkganNvdSBwb2pteSDigJ5vc29ibsOtIHVkYWpl4oCcLArigJxQZXJzb25hbCBEYXRhIEJyZWFjaOKAniwg4oCcQ29udHJvbGxlcmFhLCDigJxEYXRhIOKAnnBvcnXFoWVuw60gemFiZXpwZcSNZW7DrSBvc29ibsOtY2ggw7pkYWrFr+KAnCwKU3ViamVjdOKAnCwg4oCcU3VwZXJ2aXNvcnkgQXV0aG9yaXR54oCeIGFuZCDigJxQcm9jZXNzb3JhYSDigJ5zcHJhdmNl4oCcLCDigJ5kb3pvcm92w70gw7rFmWFk4oCcIGHigJ56cHJhY292YXRlbOKAnAphcmUgZGVmaW5lZCBhcyBpdCBpcyBpbiBBcnQuIDQgb2YgdGhlIEdlbmVyYWwgRGF0YSBkZWZpbm92w6FueSB2c291bGFkdSBzIMSNbMOhbmtlbSA0IG9iZWNuw6lobwpQcm90ZWN0aW9uIFJlZ3VsYXRpb24gKEVVKSAyMDE2LzY3OSAo4oCcR0RQUmFhKS4gbmHFmcOtemVuw60gbyBvY2hyYW7EmyBvc29ibsOtY2ggw7pkYWrFryAoRVUpCgrEjS4gMjAxNi82NzkgKGRhbGUg4oCeR0RQUuKAnCkuCgo2LjEuMi4gV2hlbiBwcm9jZXNzaW5nIFBlcnNvbmFsIERhdGEgZm9yIHB1cnBvc2VzIG9mIFDFmWkgenByYWNvdsOhbsOtIG9zb2Juw61jaCDDumRhasWvIHphIMO6xI1lbGVtIHBsbsSbbsOtCmZ1bGZpbGxpbmcgYW4gb2JsaWdhdGlvbiB1bmRlciB0aGUgUHJvdG9jb2wgb3IgYXMgcG92aW5ub3N0w60gcG9kbGUgUHJvdG9rb2x1LCBuZWJvIGphayBqaW5ha3Z5cGzDvXZhCm90aGVyd2lzZSBhcmlzaW5nIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBFbGkgTGlsbHkgYW5kIHogdMOpdG8gU21sb3V2eSwgc3BvbGXEjW5vc3QgRWxsaSBMaWxseSBhbmQgQ29tcGFueQpDb21wYW55IGlzIGRldGVybWluaW5nIHRoZSBwdXJwb3NlcyBhbmQgbWVhbnMgZm9yIHN0YW5vdsOtIMO6xI1lbHkgYSBwcm9zdMWZZWRreSB6cHJhY292w6Fuw60gb3NvYm7DrWNoCnRoZSBwcm9jZXNzaW5nIG9mIFBlcnNvbmFsIERhdGEgYW5kIHRoZXJlZm9yZSBhY3Rpbmcgw7pkYWrFryBhIGplZG5hIHByb3RvIGpha28gU3ByYXZjZSBvc29ibsOtY2ggw7pkYWrFry4KYXMgZGF0YSBDb250cm9sbGVyLiBUaGUgSW5zdGl0dXRpb24gYW5kL29yIEludmVzdGlnYXRvciBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEvbmVibyBaa291xaFlasOtY8OtCmlzIHByb2Nlc3NpbmcgdGhpcyBQZXJzb25hbCBEYXRhIHB1cnN1YW50IHRvIHRoZSB6cHJhY292w6F2YWrDrSB0eXRvIG9zb2Juw60gw7pkYWplIHBvZGxlIFByb3Rva29sdSwKUHJvdG9jb2wsIHRoaXMgQWdyZWVtZW50LCBhcHBsaWNhYmxlIGxhdyAoaW5jbHVkaW5nIHRldG8gU21sb3V2eSwgcGxhdG7DvWNoIHrDoWtvbsWvICh2xI1ldG7EmyBuYcWZw616ZW7DrQpidXQgbm90IGxpbWl0ZWQgdG8gR0RQUiksIGFuZCBhbnkgb3RoZXIgZG9jdW1lbnRlZCBHRFBSKSBhIHDFmcOtcGFkbsO9Y2ggZGFsxaHDrWNoIGRva3VtZW50b3ZhbsO9Y2gKaW5zdHJ1Y3Rpb25zIGZyb20gTGlsbHkgYW5kIGFjdCBpbiB0aGUgY2FwYWNpdHkgb2YgcG9reW7FryBvZCBzcG9sZcSNbm9zdGkgTGlsbHksIGpzb3UgdnBvc3RhdmVuw60KUGVyc29uYWwgRGF0YSBQcm9jZXNzb3JzLiBJbnN0aXR1dGlvbiBhbmQvb3IgWnByYWNvdmF0ZWxlIG9zb2Juw61jaCDDumRhasWvLiBaZHJhdm90bmlja8OpCkludmVzdGlnYXRvciBzaGFsbCBtYWludGFpbiB3cml0dGVuIHJlY29yZHMgb2YgdGhlIHphxZnDrXplbsOtIGEvbmVibyBaa291xaFlasOtY8OtIHZlZG91IHDDrXNlbW7DqQpwcm9jZXNzaW5nIG9mIGFsbCBQZXJzb25hbCBEYXRhIGFzIHJlcXVpcmVkIGJ5IEdEUFIgesOhem5hbXkgbyB6cHJhY292w6F2w6Fuw60gdsWhZWNoIE9zb2Juw61jaCB1ZGFqxa8sCkFydC4gMzAuIEluc3RpdHV0aW9uIGFuZC9vciBJbnZlc3RpZ2F0b3Igc2hhbGwgcHJvdmlkZSBqYWsgdG8gdnnFvmFkdWrDrSB1c3Rhbm92ZW7DrSDEjWzDoW5rdSAzMCBuYcWZw616ZW7DrQpzdWNoIHdyaXR0ZW4gcmVjb3JkIHRvIExpbGx5IHByb21wdGx5IHVwb24gcmVxdWVzdC4gR0RQUi4gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhL25lYm8gWmtvdcWhZWrDrWPDrSBuYQoKdnnFvsOhZMOhbsOtIG5lcHJvZGxlbsSbIHDFmWVkbG/FvsOtIHR5dG8gcMOtc2VtbsOpCnrDoXpuYW15IHNwb2xlxI1ub3N0aSBMaWxseS4KCjYuMS4zLiBJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIHNoYWxsIHByb21wdGx5IG5vdGlmeSBaa291xaFlasOtY8OtIGEvbmVibyBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGJ1ZG91CkxpbGx5IGluIHRoZSBldmVudCBJbnZlc3RpZ2F0b3IgYW5kL29yIEluc3RpdHV0aW9uIHNwb2xlxI1ub3N0TGlsbHkgbmVwcm9kbGVuxJsgaW5mb3Jtb3ZhdCxqZXN0MWnFvmUgc2UKYnJlYWNoIHRoZSB0ZXJtcyBhbmQvb3Igb2JsaWdhdGlvbnMgY29udGFpbmVkIGluIHRoZSBaa291xaFlasOtY8OtIGEvbmVibyBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGRvcHVzdMOtCkRBVEEgUFJJVkFDWSBBTkQgU0VDVVJJVFkgc2VjdGlvbiBvciBwb3J1xaFlbsOtIHBvZG3DrW5layBhL25lYm8gesOhdmF6a8WvIHV2ZWRlbsO9Y2gKYmVjb21lIGF3YXJlIG9mIHN1Y2ggYnJlYWNoLiB2IMSNbMOhbmt1IETDmlbEmlJOT1NUIEEgWkFCRVpQRcSMRU7DjQoKw5pEQUrDmiBuZWJvIHNlIG8gdGFrb3bDqW0gcG9ydcWhZW7DrSBkb3p2xJtkw60uCgo2LjEuNC4gTGlsbHkgYW5kIEluc3RpdHV0aW9uIGFuZC9vciBJbnZlc3RpZ2F0b3IgV2lsbCBlYWNoIFNwb2xlxI1ub3N0IExpbGx5IGFaZHJhdm90bmlja2UgemHFmcOtemVuw60gYS9uZWJvCgogCgptYWludGFpbiBhIGNvbXByZWhlbnNpdmUgcHJpdmFjeSBhbmQgc2VjdXJpdHkKcHJvZ3JhbSBkZXNpZ25lZCB0byBlbnN1cmUgdGhhdCBQZXJzb25hbCBEYXRhIFdpbGwKb25seSBiZSBwcm9jZXNzZWQgaW4gYWNjb3JkYW5jZSBXaXRoIHRoZSB0ZXJtcyBvZiB0aGlzCkFncmVlbWVudCBhbmQgYXBwbGljYWJsZSBuYXRpb25hbCBsYXdzLgoKIAoKIAoKWmtvdcWhZWrDrWPDrSBidWRvdSBrYcW+ZMO9IGplZG5vdGxpdsSbIHVkcsW+b3ZhdAp1Y2VsZW7DvSBwcm9ncmFtIG9jaHJhbnkgZMWvdsSbcm5vc3RpCmEgemFiZXpwZcSNZW7DrSwgYWJ5IHphamlzdGlsaSwgxb5lIG9zb2Juw60gw7pkYWplIGJ1ZG91CnpwcmFjb3bDoW55IHbDvWhyYWRuxJsgdiBzb3VsYWR1IHMgcG9kbcOtbmthbWkgdGV0bwpTbWxvdXZ5IGEgcGxhdG7DvWNoIHByw6F2bsOtY2ggcMWZZWRwaXPFry4KCiAKClBhZ2UgMTkgb2Y0NSAvIFN0cmFuYSAxOSB6IDQ1CgogCgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZXIgMjAyNAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyemU6IHrDocWZw60gMjAyNAoKIAoKNi4xLjUuCgpMaWxseSBhbmQgSW5zdGl0dXRpb24gYW5kL29yIEludmVzdGlnYXRvciBzaGFsbCBhcHBvaW50CmEgZGF0YSBwcm90ZWN0aW9uIG9mZnJjZXIgYXMgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcuCgpTcG9sZcSNbm9zdCBMaWxseSBhWmRyYXZvdG5pY2tlIHphxZnDrXplbsOtIGptZW51asOtCnBvdsSbxZllbmNlIHBybyBvY2hyYW51IG9zb2Juw61jaCDDumRhasWvIHYgc291bGFkdQpzIHBsYXRuw71taSBwcsOhdm7DrW1pIHDFmWVkcGlzeS4KCiAKCkxpbGx5LCBJbnN0aXR1dGlvbiBhbmQvb3IgSW52ZXN0aWdhdG9yIGhhdmUgYWdyZWVkIHRoYXQKaXQgaXMgbW9zdCBhcHByb3ByaWF0ZSBmb3IgcmVxdWVzdHMgdG8gZXhlcmNpc2UgRGF0YQpTdWJqZWN0IHJpZ2h0cyB0byBiZSBoYW5kbGVkIGluIHRoZSBmaXJzdCBpbnN0YW5jZSBieQpJbnN0aXR1dGlvbiBhbmQvb3IgSW52ZXN0aWdhdG9ybG5zdGl0dXRpb24KYWNrbm93bGVkZ2VzIHRoYXQgaW4gb3JkZXIgdG8gbWFpbnRhaW4gdGhlIGludGVncml0eQpvZiBTdHVkeSByZXN1bHRzLCB0aGUgYWJpbGl0eSB0byBhbWVuZCwgYmxvY2ssIG9yIGRlbGV0ZQpQZXJzb25hbCBEYXRhIG1heSBiZSBsaW1pdGVkLCBieSBhcHBsaWNhYmxlIGxhdy4KClNwb2xlxI1ub3N0IExpbGx5IGFaZHJhdm90bmlja2UgemHFmcOtemVuw60gYS9uZWJvClprb3XFoWVqw61jw60gc2UgZG9ob2RsaSwgxb5lIGJ1ZGUgbmVqdmhvZG7Em2rFocOtLCBhYnkKxb7DoWRvc3RpIG8gdXBsYXRuxJtuw60gcHJhdiBTdWJqZWt0xa8gdWRhasWvIHZ5xZlpem92YWxpCnYgcHJ2bsOtbSBzdHVwbmkgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBuZWJvClprb3XFoWVqw61jw60uIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYmVyZSBuYSB2xJtkb23DrSwKxb5lIHZ6YWptdSB6YWNob3ZhbsOtIGludGVncml0eSB2w71zbGVka8WvIFN0dWRpZQptxa/FvmUgYsO9dCBtb8W+bm9zdCBtxJtuaXQsIG9tZXpvdmF0IG5lYm8gbWF6YXQKb3NvYm7DrSDDumRhamUgb21lemVuYSB2IHNvdWxhZHUgcyBwbGF0bsO9bWkKesOha29ueS4KCiAKCjYuMi4KCkRhdGEgUHJvdGVjdGlvbiBJbXBhY3QgQXNzZXNzbWVudAoKUG9zb3V6ZW7DrSB2bGl2dSBuYSBvY2hyYW51IHVkYWrFrwoKIAoKNi4yLjEuCgpUaGUgSW5zdGl0dXRpb24gYW5kL29yIEludmVzdGlnYXRvciBzaGFsbCBjb29wZXJhdGUKYW5kIGFzc2lzdCBMaWxseSBXaXRoIHJlc3BlY3QgdG8gYW55IGRhdGEgcHJvdGVjdGlvbgppbXBhY3QgYXNzZXNzbWVudHMgYW5kL29yIHByaW9yIGNvbnN1bHRhdGlvbnMgV2l0aApTdXBlcnZpc29yeSBBdXRob3JpdHkgdGhhdCBtYXkgYmUgcmVxdWlyZWQgaW4gcmVzcGVjdApvZiBwcm9jZXNzaW5nIGNhcnJpZWQgb3V0IHVuZGVyIHRoaXMgQWdyZWVtZW50LgoKWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBhL25lYm8gWmtvdcWhZWrDrWPDrSBidWRvdQpzcG9sdXByYWNvdmF0IHNlIHNwb2xlxI1ub3N0w60gTGlsbHkgYSBwb3NreXRvdmF0IGrDrQpzb3XEjWlubm9zdCBwxZlpIHBvc3V6b3bDoW7DrSBkb3BhZHUgbmEgb2NocmFudQpvc29ibsOtY2ggw7pkYWrFryBhL25lYm8gcMWZaSBwxZllZGLEm8W+bsO9Y2gKa29uenVsdGFjw61jaCBzIGRvem9yb3bDvW0gw7rFmWFkZW0sIGt0ZXLDqSBtb2hvdQpiw710IHZ5xb5hZG92w6FueSB2c291dmlzbG9zdGkgc2UgenByYWNvdsOhbsOtbQp1ZGFqxa8gcHJvdsOhZMSbbsO9bSBwb2RsZSB0w6l0byBTbWxvdXZ5LgoKIAoKNjMKClNlY3VyaXR5IEluY2lkZW50cwoKQmV6cGXEjW5vc3Ruw60gaW5jaWRlbnR2CgogCgo2LjMuMS4KCk5vdGlmaWNhdGlvbiBvZiBTdXNwZWN0ZWQgUGVyc29uYWwgRGF0YSBCcmVhY2g6CgpPem7DoW1lbsOtIG9wb2RlesWZZW7DrSBuYSBwb3J1xaFlbsOtIHphYmV6cGXEjWVuw60Kb3NvYm7DrWNoIMO6ZGFqxa86CgogCgpUaGUgSW52ZXN0aWdhdG9yIGFuZCBJbnN0aXR1dGlvbiBhZ3JlZSB0byBub3RpZnkgTGlsbHkKV2l0aGluIHR3ZW50eS1mb3VyICgyNCkgaG91cnMgb2YgZGlzY292ZXJ5IG9mIGEKUGVyc29uYWwgRGF0YSBCcmVhY2ggYW5kIFdpbGwgY29vcGVyYXRlIFdpdGgKcmVhc29uYWJsZSBMaWxseSByZXF1ZXN0cyBmb3IgaW5mb3JtYXRpb24gcmVnYXJkaW5nCnN1Y2ggUGVyc29uYWwgRGF0YSBCcmVhY2ggYXMgbmVjZXNzYXJ5IHRvIGVuYWJsZQpMaWxseSB0byBkZXRlcm1pbmUgYW5kIGNvbXBseSBXaXRoIExpMTF5N3MKbm90aWZpY2F0aW9uIG9ibGlnYXRpb25zIHVuZGVyIGFwcGxpY2FibGUgbGF3LgoKWmtvdcWhZWrDrWPDrSBhWmRyYXZvdG5pY2tlIHphxZnDrXplbsOtIHNlIHphdmF6dWrDrQp2eXJvenVtxJt0IHNwb2xlxI1ub3N0IExpbGx5IG8gcG9ydcWhZW7DrQp6YWJlenBlxI1lbsOtIG9zb2Juw61jaCDDumRhasWvIGRvIGR2YWNldGkgxI10ecWZICgyNCkKaG9kaW4gb2QgamVobyB6amnFoXTEm27DrSBhYnVkb3Ugc3BvbHVwcmFjb3ZhdCBwxZlpCnDFmWltxJvFmWVuw71jaCDFvsOhZG9zdGVjaCBvaW5mb3JtYWNlIHplIHN0cmFueQpzcG9sZcSNbm9zdGkgTGlsbHkgb3RvbXRvIHBvcnXFoWVuw60gemFiZXpwZcSNZW7DrQpvc29ibsOtY2ggw7pkYWrFryB0YWssIGphayBidWRlIG5lemJ5dG7DqSwgYWJ5CnNwb2xlxI1ub3N0IExpbGx5IG1vaGxhIHN0YW5vdml0IGFzcGxuaXQgc3ZlCm96bmFtb3ZhY8OtIHBvdmlubm9zdGkgcG9kbGUgcGxhdG7DvWNoIHrDoWtvbsWvLgoKIAoKNi4zLjIuCgpJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIGFncmVlIHRvIGluZGVtbmlmeSBMaWxseQpmb3IgYWxsIGxvc3NlcyByZXN1bHRpbmcgZnJvbSBhbnkgUGVyc29uYWwgRGF0YSBCcmVhY2gKZHVlIHRvIG5lZ2xpZ2VuY2Ugb3IgV2lsZnVsIG1pc2NvbmR1Y3QgYnkKSW52ZXN0aWdhdG9yLCBJbnN0aXR1dGlvbiBvciBhbnkgb2YgaXRzIGFnZW50cywgaXRzCmFmZmlsaWF0ZXMsIG9yIGFueSBQcm9jZXNzb3IgcmV0YWluZWQgYnkgSW5zdGl0dXRpb24sCkludmVzdGlnYXRvciBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGxlZ2FsCmRhbWFnZXMsIGdvdmVybm1lbnQgcGVuYWx0aWVzLCBhbmQvb3IgbWl0aWdhdGlvbgpleHBlbnNlcy4KClprb3XFoWVqw61jw60gYSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIHNlIHphdmF6dWrDrSwgxb5lCnNwb2xlxI1ub3N0aSBMaWxseSBuYWhyYWTDrSB2ZcWha2Vyb3UgxaFrb2R1LCBrdGVyw6EgasOtCnZ6bmlrbmUgdiBkxa9zbGVka3UgUG9ydcWhZW7DrSB6YWJlenBlxI1lbsOtCm9zb2Juw61jaCDDumRhasWvIHpwxa9zb2JlbsOpaG8gbmVkYmFsw71tIGplZG7DoW7DrW0KbmVibyDDum15c2xuw71tIHBvcnXFoWVuw61tIHBvdmlubm9zdMOtIHplIHN0cmFueQpaa291xaFlanInY3InaG8sIHpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSBuZWJvIGplaG8KesOhc3R1cGPFrywgcMWZaWRydcW+ZW7DvWNoIHNwb2xlxI1ub3N0aSBuZWJvClpwcmFjb3ZhdGVsxa8gcG92xJvFmWVuw71jaCBaZHJhdm90bmlja8O9bQp6YcWZw616ZW7DrW0gbmVibyBaa291xaFlasOtY8Otcm4sIHbEjWV0bsSbIG7DoWhyYWR5CsWha29keSB6ZSB6w6Frb25hLCBwZW7DoWxlIGEgcG9rdXQgdWxvxb5lbsO9Y2gKc3TDoXRuw61taSDDusWZYWR5IG5lYm8gcMWZw61wYWRuw71jaCB2w71kYWrFryBuYQp6bcOtcm7Em27DrSBuw6FzbGVka8WvLgoKIAoKIAoKNi4zLjMuCgogCgpJbnZlc3RpZ2F0b3IgYW5kIEluc3RpdHV0aW9uIHNoYWxsIHByb2Nlc3Mgbm8gbW9yZSB0aGFuCnRoZSBtaW5pbXVtIGFtb3VudCBvZiBQZXJzb25hbCBEYXRhIG5lY2Vzc2FyeSB0bwpwZXJmb3JtIHRoZSBzZXJ2aWNlcyB1bmRlciB0aGlzIEFncmVlbWVudC4KSW52ZXN0aWdhdG9yIGFuZCBJbnN0aXR1dGlvbiBzaGFsbCBlbnN1cmUgdGhhdCBhY2Nlc3MgdG8KUGVyc29uYWwgRGF0YSBpcyBsaW1pdGVkIHRvIHRob3NlIHBlcnNvbm5lbApwZXJmb3JtaW5nIHNlcnZpY2VzIGluIGFjY29yZGFuY2UgV2l0aCB0aGUKQWdyZWVtZW50LiBOZWl0aGVyIEludmVzdGlnYXRvciBub3IsIEluc3RpdHV0aW9uIG5vcgoKIAoKIAoKWmtvdcWhZWrDrWPDrSBhWmRyYXZvdG5pY2tlIHphxZnDrXplbsOtIG5lYnVkb3UKenByYWNvdsOhdmF0IHbDrWNlIG5lxb4gbWluaW3DoWxuw60gbW5vxb5zdHbDrSBvc29ibsOtY2gKw7pkYWrFryBuZXpieXRuZSBrcG9za3l0b3ZhbsOtIHNsdcW+ZWIgcG9kbGUgdMOpdG8KU21sb3V2eS4gWmtvdcWhZWrDrWPDrSBhWmRyYXZvdG5pY2tlIHphxZnDrXplbsOtCnphamlzdMOtLCBhYnkgcMWZw61zdHVwIGsgb3NvYm7DrW0gw7pkYWrFr20gbcSbbGkgcG91emUKcHJhY292bsOtY2ksIGt0ZcWZw60gcG9za3l0dWrDrSBzbHXFvmJ5IHBvZGxlIHTDqXRvClNtbG91dnkuIFprb3XFoWVqw61jw60sIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYW5pCgogCgpQYWdlIDIwIG9mNDUgLyBTdHJhbmEgMjAgeiA0NQoKIAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnplOiB6w6HFmcOtIDIwMjQKCiAKCmFueSBvZiBpdHMgZW1wbG95ZWVzLCBhZ2VudHMsIGNvbnN1bHRhbnRzIG9yIGFzc2lnbnMKc2hhbGwgaGF2ZSBhbnkgcmlnaHQgdG8gcHJvY2VzcyBQZXJzb25hbCBEYXRhIGZvciB0aGVpcgpvd24gY29tbWVyY2lhbCBiZW5lZml0IGluIGFueSBmb3JtLgoKbmlrZG8geiBqZWhvIHphbcSbc3RuYW5jxa8sIHrDoXN0dXBjxa8sIGtvbnp1bHRhbnTFrwpuZWJvIG5hYnl2YXRlbMWvIG5lYnVkZSBtw610IMW+w6FkbsOpIHByw6F2bwp6cHJhY292w6F2YXQgb3NvYm7DrSDDumRhamUgcHJvIHN2xa9qIGtvbWVyxI1uw60KcHJvc3DEm2NoLCBhIHRvIHYgxb7DoWRuw6kgcG9kb2LEmy4KCiAKCjYuMy40LgoKSW52ZXN0aWdhdG9yIGFuZCBJbnN0aXR1dGlvbiBhZ3JlZXMgdG8gcmV0YWluIFBlcnNvbmFsCkRhdGEgcmVjZWl2ZWQgZnJvbSBMaWxseSBvciBjcmVhdGVkIG9uIGJlaGFsZiBvZiBMaWxseQpmb3Igb25seSBzbyBsb25nIGFzIG5lY2Vzc2FyeSB0byBjb25kdWN0IHRoZSBzZXJ2aWNlcwp1bmRlciB0aGUgQWdyZWVtZW50IG9yIGFzIG1heSBvdGhlcndpc2UgYmUgcmVxdWlyZWQKdW5kZXIgYXBwbGljYWJsZSBsYXcuCgpaa291xaFlasOtY8OtIGEgWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrSBzZSB6YXZhenVqw60KdWNob3bDoXZhdCBvc29ibsOtIMO6ZGFqZSBvYmRyxb5lbsOpIG9kIHNwb2xlxI1ub3N0aQpMaWxseSBuZWJvIHZ5dHZvxZllbsOpIHBybyBzcG9sZcSNbm9zdCBMaWxseSBwb3V6ZSBwbwpkb2J1IG5lemJ5dG5vdSBwcm8gcG9za3l0b3bDoW7DrSBzbHXFvmViIHBvZGxlIHTDqXRvClNtbG91dnkgbmVibyBqaW5hayB2ecW+YWRvdmFub3UgcGxhdG7DvW1pCnrDoWtvbnkuCgogCgo2NAoKQ3Jvc3MgQm9yZGVyIERhdGEgVHJhbnNmZXJzCgpQxZllc2hyYW5pxI1uw60gcMWZZWTDoXbDoW7DrSB1ZGFqxa8KCiAKCjYuNC4xLgoKSW4gdGhlIGV2ZW50IExpbGx5IHJlcXVlc3RzIEludmVzdGlnYXRvciBhbmQvb3IKSW5zdGl0dXRpb24gdG8gdHJhbnNmZXIgUGVyc29uYWwgRGF0YSBhY3Jvc3MgbmF0aW9uYWwKYm9yZGVycywgYW5kIFdpdGhvdXQgcHJlanVkaWNlIHRvIHRoZSBEYXRhIFN1YmplY3R2cwpyaWdodHMsIGFncmVlcyB0byBjb25zdWx0IFdpdGggTGlsbHkgdG8gZW5zdXJlIHRoZQpsYXdmdWwgZXhwb3J0IG9mIFBlcnNvbmFsIERhdGEsIHRoZSB0ZXJtcyBvZiB3aGljaAptYXkgYmUgb3V0bGluZWQgaW4gYSBzZXBhcmF0ZSBhZ3JlZW1lbnQuIFdoZXJlCnBlcm1pdHRlZCBieSBhcHBsaWNhYmxlIGxhdyBvZiB0aGUgY291bnRyeSBmcm9tCndoaWNoIFBlcnNvbmFsIERhdGEgaXMgZVhwb3J0ZWQsIHBvc3NpYmxlCmFycmFuZ2VtZW50cyBmb3IgdGhlIGV4cG9ydCBvZiBQZXJzb25hbCBEYXRhIG1heQppbmNsdWRlLCBXaXRob3V0IGxpbWl0YXRpb246CgpQb2t1ZCBidWRlIHNwb2xlxI1ub3N0IExpbGx5IG9kIFprb3XFoWVqw61jw61obwphL25lYm8gemRyYXZvdG5pY2vDqWhvIHphxZnDrXplbsOtIHZ5xb5hZG92YXQKcMWZZWTDoXbDoW7DrSBvc29ibsOtY2ggw7pkYWrFryBwxZllcyBzdMOhdG7DrSBocmFuaWNlLCBhbmnFvgpieSB0w61tIGJ5bGEgcG9ydcWhZW5hIHByYXZhIHN1Ympla3TFryB1ZGFqxa8sCnphdmF6dWrDrSBzZSBaa291xaFlasOtY8OtIGEvbmVibyBaZHJhdm90bmlja8OpCnphxZnDrXplbsOtLCDFvmUgdGFrb3bDqSBwxZllZMOhdsOhbsOtIHVkYWrFryBidWRvdSBzZQpzcG9sZcSNbm9zdMOtIExpbGx5IGtvbnp1bHRvdmF0LCBhYnkgemFqaXN0aWxpCnrDoWtvbm5vc3QgdsO9dm96dSBPc29ibsOtY2ggdWRhasWvLCBqZWhvxb4KcG9kbcOtbmt5IG1vaG91IGLDvXQgc3Rhbm92ZW55IHZzYW1vc3RhdG5lCnNtbG91dsSbLiBUYW0sIGtkZSB0byBkb3ZvbHVqw60gcGxhdG7DqSB6w6Frb255CnplbcSbLCB6bsOtxb4ganNvdSBvc29ibsOtIMO6ZGFqZSB2eXbDocW+ZW55LCBtb2hvdQptb8W+bmEgb3BhdMWZZW7DrSBwcm8gw7rEjWVseSBleHBvcnR1IG9zb2Juw61jaCDDumRhasWvCnphaHJub3ZhdCBuYXDFmcOta2xhZCBuYXNsZWR1asOtY8OtOgoKIAoKKGEpCgpDb25zZW50IG9mIHRoZSBEYXRhIFN1YmplY3QvIHRyaWFsIHBhcnRpY2lwYW50LCBvbmNlIHRoZQpEYXRhIFN1YmplY3QgaGFzIGJlZW4gbm90aWZpZWQgYW5kIGluZm9ybWVkIG9mCnBvdGVudGlhbCByaXNrcyBwdXJzdWFudCB0byBhcHBsaWNhYmxlIGxhdzsKCnNvdWhsYXMgc3ViamVrdHUgdWRhasWvLyDDusSNYXN0bsOta2Ega2xpbmlja8OpaG8KaG9kbm9jZW7DrSB2IHNvdWxhZHUgcyBwbGF0bsO9bWkgcHLDoXZuw61taSBwxZllZHBpc3kKcG90w6ksIGNvIGplIHN1Ympla3QgdWRhasWvIHNlem7DoW1lbiBzbW/Fvm7DvW1pCnJpemlreSwKCiAKCihiKQoKQXBwbGljYWJsZSBsYXcgaW4gdGhlIGltcG9ydGluZyBjb3VudHJ5IGVuc3VyZXMgYW4KYWRlcXVhdGUgbGV2ZWwgb2YgcHJvdGVjdGlvbiBmb3IgdGhlIFBlcnNvbmFsIERhdGEsIGFzCnJlY29nbml6ZWQgYnkgdGhlIGxhd3Mgb2YgdGhlIGVYcG9ydGluZyBjb3VudHJ5OwphbmQvb3IKCnBsYXRuw6kgcHLDoXZuw60gcMWZZWRwaXN5IHYgemVtaSBkb3ZvenUgemFqacWhxaV1asOtY8OtCmFkZWt2w6F0bsOtIMO6cm92ZcWIIG9jaHJhbnkgb3NvYm7DrWNoIMO6ZGFqxa8sIGt0ZXLDqQpqc291IHV6bsOhdsOhbnkgemFrb255IHplbcSbIHbDvXZvenUsIGEvbmVibwoKIAoKKDApCgpDb250cmFjdHVhbCBkYXRhIHByb3RlY3Rpb24gY2xhdXNlcyBoYXZlIGJlZW4gcHV0IGluCnBsYWNlIGJldHdlZW4gTGlsbHkgYW5kIEludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24KYW5kL29yIFRoaXJkLXBhcnR5IFRlY2hub2xvZ3kgV2hlcmUgYXBwbGljYWJsZSwgdGhhdApwcm92aWRlIGFkZXF1YXRlIHByb3RlY3Rpb24uCgpzbWx1dm7DrSBkb2xvxb5reSBuYSBvY2hyYW51IG9zb2Juw61jaCDDumRhasWvCnV6YXbFmWVuw6kgbWV6aSBzcG9sZcSNbm9zdMOtIExpbGx5IGFaa291xaFlasOtY8OtbQphWmRyYXZvdG5pY2vDvW0gemHFmcOtemVuw61tIGEvbmVibyBwxZnDrXBhZG7DvW0KZXh0ZXJuw61tIHBvc2t5dG92YXRlbGVtIHRlY2hub2xvZ2llIHBvc2t5dHVqw61jw60KZG9zdGF0ZcSNbm91IG9jaHJhbnUuCgogCgooZCkKCkludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gYWdyZWVzIHRvIGNvbXBseSBXaXRoIGFueQphbHRlcm5hdGl2ZSBsYXdmdWwgbWV0aG9kIG9mIHRyYW5zZmVyIGFzIG1heSBiZQpyZXF1aXJlZCBieSBMaWxseS4KClprb3XFoWVqw61jw60gYVpkcmF2b3RuaWNrZSB6YcWZw616ZW7DrSBzZSB6YXZhenVqw60KcG9zdHVwb3ZhdCB2c291bGFkdSBzcMWZw61wYWRub3UgYWx0ZXJuYXRpdm7DrQp6w6Frb25ub3UgbWV0b2RvdSBwxZllZMOhdsOhbsOtIHVkYWrFrywgYnVkZS1saQpzcG9sZcSNbm9zdGkgTGlsbHkgamVqw60gcG91xb5pdMOtIHZ5xb5hZG92YXQuCgogCgoo4oKsKQoKV2hlcmUgdGhlIHNhZmVndWFyZHMgc2V0IG91dCBpbiBpdGVtcyAoYSkgdGhyb3VnaCAoYykKb2YgcGFyYWdyYXBoIDYuNC4xIGFib3ZlIGFyZSBub3QgYXZhaWxhYmxlLCB0aGF0IExpbGx5Cm1heSByZXF1ZXN0IEludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gdG8gdHJhbnNmZXIKUGVyc29uYWwgRGF0YSBwdXJzdWFudCB0byBvdGhlciBhcnJhbmdlbWVudHMKcGVybWl0dGVkIHVuZGVyIGFwcGxpY2FibGUgbGF3LgoKSmVzdGxpxb5lIG9jaHJhbm7DoSBvcGF0xZllbsOtIHV2ZWRlbmEgdmJvZMSbIChhKSBhxb4KKGMpIG9kc3RhdmNlIDYuNC4xIHbDvcWhZSBuZWpzb3UgayBkaXNwb3ppY2ksIG3Fr8W+ZQpzcG9sZcSNbm9zdCBMaWxseSBwb8W+YWRvdmF0LCBhYnkgWmtvdcWhZWrDrWPDrQphIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gcMWZZWTDoXZhbGkgb3NvYm7DrSDDumRhamUKdiBzb3VsYWR1IHMgamluw71taSBvcGF0xZllbsOtbWksIGt0ZXJhIHBsYXRuw6kgcHLDoXZuw60KcMWZZWRwaXN5IHVtb8W+xYh1asOtLgoKIAoKIAoKKMONKQoKIAoKVGhlIFBhcnRpZXMgZGVjbGFyZSB0aGF0IGNyb3NzLWJvcmRlciBkYXRhIHRyYW5zZmVycyBhcmUKZ292ZXJuZWQgYnkgdGhlIFN0YW5kYXJkIENvbnRyYWN0dWFsIENsYXVzZXMsIHdoaWNoCmZvcm0gQW5uZXggNCB0byB0aGlzIEFncmVlbWVudC4KCiAKCiAKClNtbHV2bsOtIHN0cmFueSBwcm9obGHFoXVqw60sIMW+ZSBwxZllc2hyYW5pxI1uw60KcMWZZWTDoXbDoW7DrSDDumRhasWvIGplIG/FoWV0xZllbm8gU3RhbmRhcmRuw61taQpzbWx1dm7DrW1pIGRvbG/FvmthbWksIGt0ZXLDqSB0dm/FmcOtIHDFmcOtbG9odSA0IHTDqXRvClNtbG91dnkuCgogCgpQYWdlIDIxMGY0NS9TdDEnYW5hMjEyIDQ1CgogCgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZXIgMjAyNAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyemU6IHrDocWZw60gMjAyNAoKIAoKKGcpCgpUaGUgUGFydGllcyBhZ3JlZSB0aGF0IEFubmV4IDQgdG8gdGhpcyBBZ3JlZW1lbnQgbWF5CmJlIHN1cHBsZW1lbnRlZCBieSB3YXkgb2YgYW4gYWRkZW5kdW0gdG8gdGhpcwpBZ3JlZW1lbnQgKGkuZS4sIHRoZSBTdGFuZGFyZCBDb250cmFjdHVhbCBDbGF1c2VzCm1heSBiZSBleGVjdXRlZCBhZnRlciB0aGUgc2lnbmF0dXJlIG9mIHRoZSBDbGluaWNhbApUcmlhbCBBZ3JlZW1lbnQgaXRzZWxmKSwgcHJvdmlkZWQgdGhhdCB0aGUgZW5yb2xtZW50Cm9mIHN0dWR5IHN1YmplY3RzIGFuZC9vciB0aGUgdHJhbnNmZXIgb2YgcGVyc29uYWwgZGF0YQpvdXRzaWRlIHRoZSBFdXJvcGVhbiBFY29ub21pYyBBcmVhIChFRUEpIHNoYWxsCm9ubHkgdGFrZSBwbGFjZSBhZnRlciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBTdGFuZGFyZApDb250cmFjdHVhbCBDbGF1c2VzLgoKU21sdXZuw60gc3RyYW55IHNlIGRvaG9kbHksIMW+ZSBwxZnDrWxvaHUgNCB0w6l0bwpTbWxvdXZ5IGplIG1vxb5uw6kgZG9wbG5pdCBmb3Jtb3UgZG9kYXRrdSBrIHTDqXRvCnNtbG91dsSbICh0em4uIHV6YXbFmcOtdCBTdGFuZGFyZG7DrSBzbWx1dm7DrSBkb2xvxb5reQphxb4gcG8gcG9kcGlzdSBzYW1vdG7DqSBzbWxvdXZ5IG8gcHJvdmVkZW7DrQprbGluaWNrw6lobyBob2Rub2NlbsOtKSwgYSB0byB6YSBwxZllZHBva2xhZHUsIMW+ZQp6YcWZYXplbsOtIHN1Ympla3TFryBob2Rub2NlbsOtIGEvbmVibyBwxZllZMOhdsOhbsOtCm9zb2Juw61jaCDDumRhasWvIG1pbW8gRXZyb3Bza8O9IGhvc3BvZMOhxZlza8O9CnByb3N0b3IgKEVIUCkgYnVkZSBwcm9iw61oYXQgYcW+IHBvIHV6YXbFmWVuw60KU3RhbmRhcmRuw61jaCBzbWx1dm7DrWNoIGRvbG/FvmVrLgoKIAoKNi41LgoKU2l0ZSBQZXJzb25uZWwgRGF0YSBOb3RpY2UKClNkxJtsZW7DrSBvIG9jaHJhbsSbIG9zb2Juw61jaCDDumRhasWvIHBlcnNvbsOhbHUgY2VudHJhCmtsaW5pY2vDqWhvIGhvZG5vY2Vuw60KCiAKCiAKCjYuNS4xLgoKTGlsbHkgbWF5LCB0byB0aGUgZVh0ZW50IGFsbG93ZWQgYnkgYXBwbGljYWJsZSBsYXdzLApjb2xsZWN0IHBlcnNvbmFsIGluZm9ybWF0aW9uIGZyb20gSW52ZXN0aWdhdG9yLApJbnN0aXR1dGlvbiBhbmQgU3R1ZHkgUGVyc29ubmVsIGluY2x1ZGluZywgYnV0IG5vdApsaW1pdGVkIHRvLCBuYW1lcywgdGl0bGVzLCBhbmQgYnVzaW5lc3MgY29udGFjdAppbmZvcm1hdGlvbiwgKOKAnFNpdGUgUGVyc29ubmVsIERhdMSPKSBhbmQgbWF5CnByb3ZpZGUgdGhhdCBpbmZvcm1hdGlvbiB0byBMaWxseXZzIGJ1c2luZXNzIHBhcnRuZXJzCmFuZCB2ZW5kb3JzIHdvcmtpbmcgV2l0aCBMaWxseSBvbiBtYXR0ZXJzIHJlbGF0ZWQgdG8KdGhlIFN0dWR5IHRvIGZ1bGZpbGwgTGlsbHl2cyBidXNpbmVzcyBwdXJwb3NlcywKaW5jbHVkaW5nOgoKUG9rdWQgdG8gdW1vxb7FiHVqw60gcGxhdG7DqSBwcsOhdm7DrSBwxZllZHBpc3ksIG3Fr8W+ZQpzcG9sZcSNbm9zdCBMaWxseSBzaHJvbWHFvsSPb3ZhdCBvc29ibsOtIGluZm9ybWFjZQpvZCBaa291xaFlanInY3InaG8sIHpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSBhIMSMbGVuxa8Kc3R1ZGlqbsOtaG8gdMO9bXUgUG9za3l0b3ZhdGVsZSBzbHXFvmViLCBuYXDFmcOta2xhZApqbWVuYSwgcHJhY292bsOtIGZ1bmtjZSBhIHByYWNvdm7DrSBrb250YWt0bsOtIMO6ZGFqZQooZGFsZSDigJ7DmmRhamUgcGVyc29uw6FsdSBjZW50cmHigJwpLCBhIG3Fr8W+ZSB0eXRvCmluZm9ybWFjZSBwb3NreXRvdmF0IHN2w71tIG9iY2hvZG7DrW0gcGFydG5lcsWvbQphIGRvZGF2YXRlbMWvbSwga3RlxZnDrSBzIG7DrSBzcG9sdXByYWN1asOtCnYgesOhbGXFvml0b3N0ZWNoIHTDvWthasOtY8OtY2ggc2UgU3R1ZGllLCBwcm8gdHl0byBzdsOpCm9iY2hvZG7DrSDDusSNZWx5OgoKIAoKKGEpCgpDb21wbGlhbmNlIFdpdGggbGF3cyBhbmQgcmVndWxhdGlvbnMgcmVnYXJkaW5nCnBvc3NpYmxlIGZpbmFuY2lhbCBjb25mbGljdHMgb2YgaW50ZXJlc3Q7Cgpzb3VsYWQgc2UgesOha29ueSBhIHDFmWVkcGlzeSwgY28gc2UgdMO9xI1lIG1vxb5uw71jaApmaW5hbsSNbsOtY2ggc3TFmWV0xa8gesOham3FrzsKCiAKCihiKQoKQXNzZXNzbWVudCBvZiBwZXJzb25uZWwgcXVhbGlmaWNhdGlvbnMgdG8gY29uZHVjdCB0aGUKU3R1ZHk7Cgpwb3NvdXplbsOtIGt2YWxpZmlrYWNlIHphbcSbc3RuYW5jxa8gcHJvIHByb3bDoWTEm27DrQpTdHVkaWUsCgogCgooMCkKClF1YWxpdHkgY29udHJvbCBhbmQgU3R1ZHkgbWFuYWdlbWVudDsgYW5kCgprb250cm9seSBrdmFsaXR5IGEgxZnDrXplbsOtIFN0dWRpZSBhCgogCgooZCkKCkRpc2Nsb3N1cmVzIHRvIEVDIG9yIG5hdGlvbmFsIG9yIGZvcmVpZ24gcmVndWxhdG9yeQphdXRob3JpdGllcyBpbiBjb25uZWN0aW9uIFdpdGggdGhlaXIgcGVyZm9ybWFuY2Ugb2YKcmV2aWV3IG9yIG92ZXJzaWdodCByZXNwb25zaWJpbGl0aWVzIGZvciB0aGUgU3R1ZHkuCgpwb3NreXRvdsOhbsOtIGluZm9ybWFjw60gRUsgbmVibyBtw61zdG7DrW0gxI1pCnphaHJhbmnEjW7DrW0ga29udHJvbG7DrW0gw7rFmWFkxa9tIHYgc291dmlzbG9zdGkKcyBwbG7Em27DrW0gamVqaWNoIHBvdmlubm9zdMOtIHDFmWkgcG9zdXpvdsOhbsOtIFN0dWRpZQpuZWJvIGRvaGzDrcW+ZW7DrSBuYSBTdHVkaWkuCgogCgo2LjUuMi4KCkFzIHBhcnQgb2ZMaTExeTdzIGxlZ2l0aW1hdGUgaW50ZXJlc3QgaW4gaW1wcm92aW5nIHRoZQpjb25kdWN0IG9mIGl0cyByZXNlYXJjaCBzdHVkaWVzLCBTaXRlIFBlcnNvbm5lbCBEYXRhCm1heSBhbHNvIGJlIGFnZ3JlZ2F0ZWQgV2l0aCBkYXRhIGZyb20gb3RoZXIgTGlsbHkKc291cmNlcyBhbmQgZXZhbHVhdGVkIGZvciBidXNpbmVzcyBkZWNpc2lvbnMKaW5jbHVkaW5nIHRob3NlIGludm9sdmluZyBmdXR1cmUgcmVzZWFyY2guCkludmVzdGlnYXRvciBhbmQvb3IgcGVyc29ubmVsIHdob3NlIFNpdGUgUGVyc29ubmVsCkRhdGEgYXJlIHByb2Nlc3NlZCBmb3IgdGhpcyBzcGVjaWZpYyBwdXJwb3NlIG1heQpvYidlY3QgdG8gc3VjaCByb2Nlc3NpbmcgYnkgY29udGFjdGluZyBMaWxseSBhdApfLiBMaWxseSBtYXkgc3RvcmUgb3IgcHJvY2VzcyBzdWNoClNpdGUgUGVyc29ubmVsIERhdGEgaW4gdGhlIFUuUy4gb3Igb3RoZXIgY291bnRyaWVzIGF0CkxpbGx5IG9yIExpbGx5LWFzc29jaWF0ZWQgZmFjaWxpdGllcywgYXMgbG9uZyBhcyBhCmJ1c2luZXNzIG5lZWQgb3IgbGVnYWwgb2JsaWdhdGlvbiBleGlzdHMuCgpWIHLDoW1jaSBvcHLDoXZuxJtuw6lobyB6YWptdSBzcG9sZcSNbm9zdGkgTGlsbHkgbmEKemxlcMWhb3bDoW7DrSBwcm92w6FkxJtuw60gamVqw61jaCB2w716a3VtbsO9Y2ggc3R1ZGnDrQptb2hvdSBiw710IMOaZGFqZSBwZXJzb27DoWx1IGNlbnRyYSByb3ZuxJvFvgprb21iaW5vdsOhbnkgcyDDumRhamkgemppbsO9Y2ggemRyb2rFryBzcG9sZcSNbm9zdGkKTGlsbHkgYXZ5aG9kbm9jb3ZhbnkgcHJvIMO6xI1lbHkgb2JjaG9kbsOtY2gKcm96aG9kbnV0w60sIHbEjWV0bsSbIHJvemhvZG51dMOtIHTDvWthasOtY8OtY2ggc2UKYnVkb3Vjw61obyB2w716a3VtdS4gWmtvdcWhZWrDrWPDrSBhL25lYm8KcHJhY292bsOtY2ksIGplamljaMW+IMOaZGFqZSBwZXJzb27DoWx1IGNlbnRyYSBqc291CnpwcmFjb3bDoXbDoW55IHphIHTDrW10byBzcGVjaWZpY2vDvW0gw7rEjWVsZW0sCm1vaG91IHByb3RpIHRha292w6ltdSB6cHJhY292YW7DrSB2em7DqXN0IG7DoW1pdGt5LAphIHRvIHRhaywgxb5lIGtvbnRha3R1J3InIHNwb2xlxI1ub3N0IExpbGx5IGUtbWFpbGVtIG5hCl8gU3BvbGXEjW5vc3QgTGlsbHkgbcWvxb5lIHR5dG8KVWRhamUgcGVyc29uw6FsdSBjZW50cmEgdWNob3bDoXZhdCBuZWJvCnpwcmFjb3bDoXZhdCBWVVNBIG5lYm8gamluw71jaCB6ZW3DrWNoCnYgemHFmcOtemVuw61jaCBzcG9sZcSNbm9zdGkgTGlsbHkgbmVibyB6YcWZw616ZW7DrWNoIHMgbsOtCnByb3BvamVuw71jaCBwbyBkb2J1IGV4aXN0ZW5jZSBvYmNob2Ruw61jaCBwb3TFmWViCm5lYm8gcHLDoXZuw61jaCB6w6F2YXprxa8uCgogCgogCgo2LjUuMy4KCiAKCkludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gcGVyc29ubmVsIG1heSBoYXZlCmFjY2VzcyB0byBTaXRlIFBlcnNvbm5lbCBEYXRhIGFib3V0IHRoZW1zZWx2ZXMgdGhhdApMaWxseSBoYXMgY29sbGVjdGVkIGFuZCBtYXkgaGF2ZSBjb3JyZWN0aW9ucyBtYWRlIHRvClNpdGUgUGVyc29ubmVsIERhdGEgYWJvdXQgdGhlbXNlbHZlcyB0aGF0IGlzCgogCgogCgpaa291xaFlasOtY8OtIGEgcHJhY292bsOtY2kgemRyYXZvdG5pY2vDqWhvIHphxZnDrXplbsOtCmJ1ZG91IG3DrXQgcMWZw61zdHVwIGtlIHN2w71tIG9zb2Juw61tIMO6ZGFqxa9tLCBrdGVyw6kKYnlseSBzaHJvbcOhxb5kxJtueSBzcG9sZcSNbm9zdMOtIExpbGx5LCBhIG1vaG91Cm5lY2hhdCBwcm92ZXN0IG9wcmF2eSB2ZSBzdsO9Y2ggb3NvYm7DrWNoIMO6ZGFqw61jaCwKCiAKClBhZ2UgMjIgb2Y0NSAvIFN0cmFuYSAyMiB6IDQ1CgogCgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZXIgMjAyNAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyemU6IHrDocWZw60gMjAyNAoKIAoKaW5hY2N1cmF0ZS4gSW52ZXN0aWdhdG9yIGFuZCBJbnN0aXR1dGlvbiBhZ3JlZSB0bwpsYXdmdWxseSBvYnRhaW4gdGhlIFNpdGUgUGVyc29ubmVsIERhdGEgZm9yIHRyYW5zZmVyCmFuZCB1c2UgZm9yIHRoZSBwdXJwb3NlcyBkZXNjcmliZWQgaW4gU2l0ZSBQZXJzb25uZWwKRGF0YSBOb3RpY2Ugc2VjdGlvbi4KCnBva3VkIGpzb3Ugdm5pY2ggbmVwxZllc25vc3RpLiBaa291xaFlasOtY8OtCmFaZHJhdm90bmlja2UgemHFmcOtemVuw60gc291aGxhc8OtIHNlIHrDoWtvbm7DvW0KesOtc2vDoXbDoW7DrW0gT3NvYm7DrWNoIHVkYWrFryBwcmFjb3Zuw61rxa8gTcOtc3RhCnByb3bDoWTEm27DrSBrbGluaWNrw6lobyBob2Rub2NlbsOtIGFzIGplamljaApwxZllZMOhdsOhbsOtbSBhIHBvdcW+w612w6Fuw61tIHBybyDDusSNZWx5IHBvcHNhbsOpIHZlClNkxJtsZW7DrSBvIG9jaHJhbsSbIG9zb2Juw61jaCDDumRhasWvIHBlcnNvbsOhbHUgY2VudHJhCmtsaW5pY2vDqWhvIGhvZG5vY2Vuw60uCgogCgo2LjUuNC4KCkludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gbWF5IGNvbnRhY3QgTGlsbHkgV2l0aAppbnF1aXJpZXMgcmVnYXJkaW5nIExpbGx5dnMgY29sbGVjdGlvbiBvciB1c2Ugb2YgU2l0ZQpQZXJzb25uZWwgRGF0YS4gTGlsbHkgYWdyZWVzIHRvIGNvbXBseSB3aXRoIGFsbAphcHBsaWNhYmxlIGxhd3MgYW5kIHJlZ3VsYXRpb25zIHJlZ2FyZGluZyBMaTExeTdzIHVzZQpvZiBTaXRlIFBlcnNvbm5lbCBEYXRhLgoKUyBkb3Rhenkgb2hsZWRuxJsgc2hyb21hxb7Ej292w6Fuw60gbmVibyBwb3XFvsOtdmFuw60KT3NvYm7DrWNoIHVkYWrFryBwcmFjb3Zuw61rxa8gY2VudHJhIHNwb2xlxI1ub3N0w60KTGlsbHkgc2UgWmtvdcWhZWrDrWPDrSBhIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gbW9ob3UKb2JyYWNldCBuYSBzcG9sZcSNbm9zdCBMaWxseS4gU3BvbGXEjW5vc3QgTGlsbHkgc2UKemF2YXp1amUgamVkbmF0IHYgc291bGFkdSBzZSB2xaFlbWkgcGxhdG7DvW1pCnrDoWtvbnkgYXDFmWVkcGlzeSwgY28gc2UgdMO9xI1lIGplasOtaG8gcG91xb7DrXZhbsOtCsOaZGFqxa8gcGVyc29uw6FsdSBjZW50cmEuCgogCgogCgpJTkRFTU5JRklDQVRJT04gQU5EIElOU1VSQU5DRQoKT0TFoEtPRE7Emk7DjSBBIFBPSknFoFTEmk7DjS4KCiAKCjcuMS4KCkluZGVtbmlmaWNhdGlvbgoKT2TFoWtvZG7Em27DrQoKIAoKNy4xLjEuCgpJbiBjb25zaWRlcmF0aW9uIG9mIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgU3R1ZHkgYnkKSW52ZXN0aWdhdG9yLCBJbnN0aXR1dGlvbiBhbmQgU3R1ZHkgUGVyc29ubmVsCijigJxJbmRlbW5pdGVlxI8pLCBMaWxseSBhZ3JlZXMgdG8gaW5kZW1uaWZ5LCBkZWZlbmQsCmFuZCBob2xkIGhhcm1sZXNzIHRoZSBJbmRlbW5pdGVlcyBmcm9tIGFuZCBhZ2FpbnN0Cmxvc3MsIGRhbWFnZSwgY29zdCwgYW5kIGVYcGVuc2Ugb2YgY2xhaW1zIGFuZCBzdWl0cwooaW5jbHVkaW5nIHJlYXNvbmFibGUgbGVnYWwgZmVlcykgcmVzdWx0aW5nIGZyb20gYW4KaW5qdXJ5IHRvIGEgcGF0aWVudCBzZWVraW5nIGRhbWFnZXMgYWxsZWdlZCB0byBoYXZlCmJlZW4gZGlyZWN0bHkgY2F1c2VkIG9yIGNvbnRyaWJ1dGVkIHRvIGJ5IGFueQpzdWJzdGFuY2Ugb3IgcHJvY2VkdXJlIGFkbWluaXN0ZXJlZCBpbiBhY2NvcmRhbmNlCldpdGggdGhlIFByb3RvY29sLCBpbmNsdWRpbmcgdGhlIGNvc3QgYW5kIGVYcGVuc2Ugb2YKaGFuZGxpbmcgc3VjaCBjbGFpbXMgYW5kIGRlZmVuZGluZyBzdWNoIHN1aXRzLgoKViBzb3V2aXNsb3N0aSBzIHByb3bDoWTEm27DrW0gU3R1ZGllIHplIHN0cmFueQpaa291xaFlasOtY8OtaG8sIHpkcmF2b3RuaWNrw6lobyB6YcWZw616ZW7DrSBhIMSMbGVuxa8Kc3R1ZGlqbsOtaG8gdMO9bXUgKGRhbGUg4oCeT2TFoWtvZMWIb3ZhbsOpIG9zb2J54oCcKQpzcG9sZcSNbm9zdCBMaWxseSBzb3VobGFzw60gcyB0w61tLCDFvmUgb2TFoWtvZG7DrSwgYnVkZQpoYWppdCBhb2NocmFuw60gT2TFoWtvZMWIb3ZhbmUgb3NvYnkgdsWvxI1pIMO6am3EmywKxaFrb2TEmywgbsOha2xhZMWvbSBhdsO9ZGFqxa9tIHBseW5vdWPDrW0gem7DoXJva8WvCmEgc291ZG7DrWNoIMWZw616ZW7DrSAodsSNZXRuxJsgcMWZaW3Em8WZZW7DvWNoIG7DoWtsYWTFryBuYQpwcsOhdm7DrSB6YXN0b3VwZW7DrSkgdnpuaWtsw71jaCB2IGTFr3NsZWRrdSDDumpteSBuYQp6ZHJhdsOtIHpwxa9zb2JlbsOpIHBhY2llbnRvdmkgZG9tYWhhasOtY8OtbXUgc2UKb2TFoWtvZG7Em27DrSwga3RlcsOhxb50byDDumptYSBtdSBieWxhIMO6ZGFqbsSbIHDFmcOtbW8KenDFr3NvYmVuYSBrdGVyb3Vrb2xpIGzDoXRrb3UgcG9kYXZhbm91IHBvZGxlClByb3Rva29sdSBuZWJvIHBvc3R1cGVtIHByb3bDoWTEm27DvW0gcG9kbGUKUHJvdG9rb2x1IHbEjWV0bsSbIG7DoWtsYWTFryBhdsO9ZGFqxa8gbmEgdnnFmWl6b3bDoW7DrQp0YWtvdsO9Y2ggbsOhcm9rxa8gYW5hIHZlZGVuw60gcHJvY2VzbsOtIG9icmFueQp2IHRha292w71jaCBzb3VkbsOtY2ggxZnDrXplbsOtY2guCgogCgpJbiBvcmRlciBmb3IgSW5kZW1uaWZpY2F0aW9uIG9ibGlnYXRpb25zIHRvIGJlY29tZQphcHBsaWNhYmxlLCBJbmRlbW5pdGVlcyBtdXN0IGhhdmUgYWRoZXJlZCB0byBhbmQKY29tcGxpZWQgd2l0aCBhbGwgYXBwbGljYWJsZSBuYXRpb25hbCByZWd1bGF0aW9ucwooaW5jbHVkaW5nLCBXaXRob3V0IGxpbWl0YXRpb24sIG9idGFpbmluZyBpbmZvcm1lZApjb25zZW50cyksIHRoZSBzcGVjaWZpY2F0aW9ucyBvZiB0aGUgUHJvdG9jb2wsIGFuZCBhbGwKcmVjb21tZW5kYXRpb25zIGZ1cm5pc2hlZCBieSBMaWxseSBmb3IgdGhlIHVzZSBhbmQKYWRtaW5pc3RyYXRpb24gb2YgYW55IGRydWcgb3IgZGV2aWNlIGRlc2NyaWJlZCBpbiB0aGUKUHJvdG9jb2wgYW5kIExpbGx5IG11c3QgYmUgcHJvbXB0bHkgbm90aWZpZWQgb2YgYW55CnN1Y2ggY2xhaW0gb3Igc3VpdC4KCkFieSB0eXRvIHrDoXZhemt5IG9kxaFrb2RuxJtuw60gcGxhdGlseSwgamUgbmV6Ynl0bsOpLAphYnkgT2TFoWtvZMWIb3ZhbmUgb3NvYnkgZG9kcsW+ZWx5IGFzcGxuaWx5CnZlxaFrZXLDqSBwbGF0bsOpIG1lemluw6Fyb2Ruw60gYSBuw6Fyb2Ruw60gcHLDoXZuw60KcMWZZWRwaXN5IChtai56w61za2ExeSBpbmZvcm1vdmFuw6kgc291aGxhc3kgKSwKc3BlY2lmaWthY2UgdlByb3Rva29sdSBhdmXFoWtlcmEgZG9wb3J1xI1lbsOtIG9kCnNwb2xlxI1ub3N0aSBMaWxseSBwcm8gcG91xb5pdMOtIGFwb2RhdmFuw60gbMOpxI1pdmEKbmVibyBwcm9zdMWZZWRrdSBwb3BzYW7DqWhvIHYgUHJvdG9rb2x1LAphc3BvbGXEjW5vc3QgTGlsbHkgbXVzw60gYsO9dCBva2HFvmRlbSB0YWtvdmVtCm5hcm9rdSBuZWJvIMW+YWxvYsSbIG5lcHJvZGxlbsSbIGluZm9ybW92w6FuYS4KCiAKClVwb24gbm90aWNlIHRoYXQgY2xhaW1zIGhhdmUgYmVlbiBtYWRlIG9yIHN1aXRzIGhhdmUKYmVlbiBmaWxlZCBhbmQgaW5kZW1uaWZpY2F0aW9uIGhhcyBiZWVuIHJlcXVlc3RlZCBieQpJbmRlbW5pdGVlcywgTGlsbHkgcmVxdWlyZXMgdGhhdDoKClBvIG96bmFtZW7DrSBvdnpuZXNlbsOtIG7DoXJva8WvIG5lYm8gb3BvZGFuw60KbsOhdnJodSBuYSB6YWjDoWplbsOtIHNvdWRuw61obyDFmcOtemVuw60gYW/FvmFkb3N0aQpPZMWha29kxYhvdmFuw71jaCBvc29iIG9vZMWha29kbsSbbsOtIHNwb2xlxI1ub3N0CkxpbGx5IHZ5xb5hZHVqZSBuYXNsZWR1asOtY8OtOgoKIAoKKGEpCgp0aGF0IHRoZSBJbmRlbW5pdGVlcyBjb29wZXJhdGUgZnVsbHkgaW4gdGhlCmludmVzdGlnYXRpb24gYW5kIGRlZmVuY2Ugb2YgYW55IHN1Y2ggY2xhaW0gb3Igc3VpdDsKCk9kxaFrb2TFiG92YW5lIG9zb2J5IG11c2Vqw60gcGxuxJsgc3BvbHVwcmFjb3ZhdApuYSBwcm/FoWV0xZllbsOtIGpha8O9Y2hrb2xpIHRha292w71jaCBuw6Fyb2vFryBuZWJvCsWZw616ZW7DrSBhIG5hIG9icmFuxJsgcHJvdGkgbmltLAoKIAoKIAoKKGIpCgogCgp0aGF0IExpbGx5IHJldGFpbnMgdGhlIHJpZ2h0IHRvIGRlZmVuZCB0aGUgbGF3c3VpdCBpbiBhbnkKbWFubmVyIGl0IGRlZW1zIGFwcHJvcHJpYXRlLCBpbmNsdWRpbmcgdGhlIHJpZ2h0IHRvCnJldGFpbiBjb3Vuc2VsIG9mIGl0cyBjaG9pY2U7IGFuZAoKIAoKIAoKc3BvbGXEjW5vc3QgTGlsbHkgc2kgcG9uZWNow6EgcHLDoXZvIG5hIHZlZGVuw60KcHJvY2VzbsOtIG9icmFueSB2dGFrb3ZlbSBzb3VkbsOtbSDFmcOtemVuw60KenDFr3NvYmVtLCBrdGVyw70gYnVkZSBwb2tsw6FkYXQgemEgdmhvZG7DvSwgdsSNZXRuxJsKCiAKClBhZ2UgMjMgb2Y0NSAvIFN0cmFuYSAyMyB6IDQ1CgogCgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZXIgMjAyNAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyemU6IHrDocWZw60gMjAyNAoKIAoKcHJhdmEgbmFqbW91dCBzaSBwcmF2bmlobyBwb3JhZGNlIHBvZGxlIHZsYXN0bsOtaG8KdsO9YsSbcnUsIGEKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCiAKCihjKSB0aGF0IExpbGx5IHNoYWxsIGhhdmUgdGhlIHNvbGUgcmlnaHQgdG8gc2V0dGxlIHRoZSBjbGFpbSBzcG9sZcSNbm9zdCBMaWxseSBidWRlIG3DrXQgdsO9bHXEjW7DqSBwcsOhdm8gbmEKb3Igc3VpdDsgcHJvdmlkZWQsIGhvd2V2ZXIsIHRoYXQgTGlsbHkgc2hhbGwgbm90IGFkbWl0IHZ5cG/FmcOhZMOhbsOtIHRha292ZWhvIG5hcm9rdSDEjWkgbmFyb3Zuw6Fuw60KZmF1bHQgb24gSW5kZW1uaXRlZXM3IGJlaGFsZiBXaXRob3V0IEluZGVtbml0ZWXEjyB2dGFrb3ZlbSDFmcOtemVuw60sIE0gJSwgxb5lIG5ldXpuw6EKYWR2YW5jZSB3cml0dGVuIHBlcm1pc3Npb24uIHBvY2h5YmVuw60gT2TFoWtvZMWIb3ZhbsO9Y2ggb3NvYiwgcG9rdWRqw60gayB0b211CgpPZMWha29kxYhvdmFuZSBvc29ieSBuZXVkxJtsw60gcMWZZWRjaG96w60gcMOtc2VtbsO9CnNvdWhsYXMuCgo3LjEuNC4gSW4gYWRkaXRpb24sIExpMTF5NyBzIG9ibGlnYXRpb24gb2YgaW5kZW1uaWZpY2F0aW9uIHNoYWxsIFBvdmlubm9zdCBzcG9sZcSNbm9zdGkgTGlsbHkgcG9za3l0bm91dApub3QgZXh0ZW5kIHRvIGFueSBsb3NzLCBkYW1hZ2UsIG9yIGVYcGVuc2UgYXJpc2luZyBvZMWha29kbsSbbsOtIHNlIG5ldnp0YWh1amUgbmEgenRyYXR1LCDFoWtvZHUgbmVibwpmcm9tIHRoZSBuZWdsaWdlbmNlLCBXaWxmdWwgbWFsZmVhc2FuY2UsIG9yIHVubGFudWwgbmFrbGFkIHZ6bmlrbMO9IHYgZMWvc2xlZGt1IG5lZGJhbG9zdGksIMO6bXlzbG7DqWhvCmFjdCBvciBtYWxwcmFjdGljZSBieSB0aGUgSW5kZW1uaXRlZXMsIGl0IGJlaW5nIHByb3RpcHLDoXZuw61obyBqZWRuw6Fuw60gbmVibyBuZXrDoWtvbm7DqWhvIGplZG5hbsOtCnVuZGVyc3Rvb2QgdGhhdCB0aGUgYWRtaW5pc3RyYXRpb24gb2YgYW55IHN1YnN0YW5jZSBpbiBuZWJvIHphbmVkYsOhbsOtIHBvdmlubmUgcGXEjWUgemUgc3RyYW55CmFjY29yZGFuY2UgV2l0aCB0aGUgUHJvdG9jb2wgc2hhbGwgbm90IGNvbnN0aXR1dGUgT2TFoWtvZMWIb3ZhbsO9Y2ggb3NvYiwgcMWZacSNZW3FviBzZSByb3p1bcOtLCDFvmUgcHJvCm5lZ2xpZ2VuY2UsIFdpbGZ1bCBtYWxmZWFzYW5jZSwgb3IgdW5sYW51bCBhY3Qgb3Igw7rEjWVseSB0w6l0byBTbWxvdXZ5IHNlIHBvZMOhdmFuw60gamFrZWtvbGkgbGF0a3kKbWFscHJhY3RpY2UgZm9yIHB1cnBvc2VzIG9mIHRoaXMgQWdyZWVtZW50LiBMaWxseSB2IHNvdWxhZHUgcyBQcm90b2tvbGVtIG5lcG92YcW+dWplIHphIG5lZGJhbG9zdCwKaGVyZWJ5IGFncmVlcyB0aGF0IGFueSBkZXZpYXRpb25zIGZyb20gb3IgZmFpbHVyZXMgdG8gw7pteXNsbsOpIHByb3RpcHLDoXZuw60gamVkbsOhbsOtIG5lYm8gemFuZWRiw6Fuw60KYWRoZXJlIHRvIHRoZSB0ZXJtcyBvZiB0aGUgUHJvdG9jb2wgdGhhdCBhcmUgbXV0dWFsbHkgcG92aW5uZSBwZcSNZS4gU3BvbGXEjW5vc3QgTGlsbHkgdMOtbXRvIHNvdWhsYXPDrQphZ3JlZWQgdXBvbiBpbiB3cml0aW5nIGJ5IGExMSBwYXJ0aWVzIHRvIHRoZSBTdHVkeSBzIHTDrW0sIMW+ZSBwxZnDrXBhZG7DqSBvZGNoeWxreSBuZWJvIG5lZG9kcsW+ZW7DrQooaW5jbHVkaW5nIHRoZSBFQykgb3IgYW55IGRldmlhdGlvbnMgZnJvbSB0aGUgcG9kbcOtbmVrIFByb3Rva29sdSwga3RlcsOpIGJ1ZG91IHZ6w6FqZW1uxJsKUHJvdG9jb2wgdGhhdCBhcmUgbmVjZXNzYXJ5IHRvIGVsaW1pbmF0ZSBhbiBpbW1lZGlhdGUgcMOtc2VtbsSbIG9kc291aGxhc2VueSB2xaFlbWkgc3RyYW5hbWkgemFwb2ogZW7DvW1pCnNhZmV0eSBoYXphcmQgdG8gdGhlIFN0dWR5IHBhcnRpY2lwYW50cyBhcmUgbm90IGRvIFN0dWRpZSAodsSNZXRuxJsgZXRpY2vDqSBrb21pc2UpLCBuZWJvIGpha2Vrb2xpCmNvbnNpZGVyZWQgdmlvbGF0aW9ucyBvZiB0aGUgUHJvdG9jb2wgb3IgZmFpbHVyZXMgdG8gb2RjaHlsa3kgb2QgUHJvdG9rb2x1LCBrdGVyZSBqc291IG5lemJ5dG7DqQphZGhlcmUgdG8gdGhlIHRlcm1zIG9mIHRoZSBQcm90b2NvbCBwdXJzdWFudCB0byB0aGlzIGsgb2R2cmFjZW7DrWJlenByb3N0xZllZG7DrWhvIGJlenBlxI1ub3N0bsOtaG8gcml6aWthCnByb3Zpc2lvbi4gaHJvesOtY8OtaG8gw7rEjWFzdG7DrWvFr20gU3R1ZGllLCBuZWpzb3UgcG92YcW+b3bDoW55Cgp6YSBwb3J1xaFlbsOtIFByb3Rva29sdSBuZWJvIG5lZG9kcsW+ZW7DrSBwb2Rtw61uZWsKUHJvdG9rb2x1IHBvZGxlIHRvaG90byB1c3Rhbm92ZW7DrS4KCjcuMi4gSW5zdXJhbmNlIFBvamnFoXTEm27DrQoKNy4yLjEuIExpbGx5IGRlY2xhcmVzIGFuZHdhcnJhbnRzIHRoYXQxaWFiaTFpdHlpbnN1cmFuY2VoYXMgU3BvbGXEjW5vc3QgTGlsbHkgcHJvaGxhxaF1amUgYSB6YXJ1xI11amUsIMW+ZSBieWxvCmJlZW4gb2J0YWluZWQgaW4gY29ubmVjdGlvbiBXaXRoIHRoZSBjb25kdWN0IG9mIHRoZSB1emF2xZllbm8gcG9qacWhdMSbbsOtIG9kcG92xJtkbm9zdGkgdiBzb3V2aXNsb3N0aSBzCmNsaW5pY2FsIHRyaWFsIGluIGFjY29yZGFuY2UgV2l0aCB0aGUgYXBwbGljYWJsZSBsZWdhbCBwcm92w6FkxJtuw61tIGtsaW5pY2vDqWhvIGhvZG5vY2Vuw60gcG9kbGUKcmVndWxhdGlvbiwgY292ZXJpbmcgdGhlIEludmVzdGlnYXRvciBhbmQgdGhlIHDFmcOtc2x1xaFuw6lobyBwcsOhdm7DrWhvIHDFmWVkcGlzdSwgYSB0byBwcm8KSW5zdGl0dXRpb24gZm9yIHRoZSBlbnRpcmUgZHVyYXRpb24gb2YgdGhlIFN0dWR5LiBMaWxseSBaa291xaFlanInY3InaG8gYSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIHBvIGNlbG91CnNoYWxsIHByb3ZpZGUgSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvciBXaXRoIGEgY29weSBkb2J1IHByb3bDoWTEm27DrSBTdHVkaWUuIFNwb2xlxI1ub3N0IExpbGx5IHDFmWVkbG/FvsOtCm9mIHRoZSBpbnN1cmFuY2UgcG9saWN5LCB0aGUgaW5zdXJhbmNlIHRlcm1zIGFuZCBrb3BpaSBwb2ppc3Ruw6kgc21sb3V2eSwgcG9qaXN0bsO9Y2ggcG9kbcOtbmVrIGEKY29uZGl0aW9ucywgYW5kIHRoZSBpbnN1cmFuY2UgY2VydGlmaWNhdGUgcHJpb3IgdG8gdGhlIHBvamlzdG7DqWhvIGNlcnRpZmlrw6F0dSBaZHJhdm90bmlja2VtdSB6YcWZw616ZW7DrSBhCmV4ZWN1dGlvbiBvZiB0aGlzIEFncmVlbWVudC4gWmtvdcWhZWrDrWPDrW11IHDFmWVkIHV6YXbFmWVuw61tIHTDqXRvIFNtbG91dnkuCgo4LiBOT1RJQ0VTIE9aTsOBTUVOw40KCjguMS4xLiBBbGwgbm90aWNlcyByZXF1aXJlZCB0byBiZSBpbiB3cml0aW5nIHVuZGVyIHRoaXMgVmXFoWtlcsOhIG96bmFtZW7DrSwga3RlcmEgbXVzZWrDrSBiw710IHBvZGxlIHTDqXRvCkFncmVlbWVudCBzaGFsbCBiZSBkZWxpdmVyZWQgcGVyc29uYWxseSwgU21sb3V2eSBww61zZW1uw6EsIHNlIFN0cmFuYW0gZG9ydcSNdWrDrSBvc29ibsSbLAplbGVjdHJvbmljYWxseSAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBlbWFpbCksIGJ5IGVsZWt0cm9uaWNreSAobmFwxZkuIGUtbWFpbGVtKSwga3Vyw71ybsOtIHNsdcW+Ym91CmNvdXJpZXIsIG9yIGNlcnRpZmllZCwgcG9zdGFnZSBwcmVwYWlkIG1haWwgdG8gdGhlIG5lYm8gZG9wb3J1xI1lbm91IHBvxaF0b3Ugc3DFmWVkcGxhY2Vuw71tClBhcnRpZXMgYXQgdGhlIGFkZHJlc3NlcyBzZXQgZm9ydGggKGluY2x1ZGluZyBlbWFpbCBwb8WhdG92bsO9bSBuYSBhZHJlc3kgdXZlZGVuZSB2dGV0byBTbWxvdXbEmwphZGRyZXNzZXMgbWVudGlvbmVkIGluIHRoaXMgQWdyZWVtZW50KSwgb3Igc3VjaCAodsSNZXRuxJsgZS1tYWlsb3bDvWNoIGFkcmVzIHV2ZWRlbsO9Y2ggdnRldG8Kb3RoZXIgYWRkcmVzc2VzIGFzIHRoZSBQYXJ0aWVzIG1heSBkZXNpZ25hdGUgaW4gU21sb3V2xJspIG5lYm8gbmEgamluZSBhZHJlc3ksIGt0ZXJlIHNpIFN0cmFueQp3cml0aW5nLiBww61zZW1uxJsgdXLEjcOtLgoKOC4xLjIuIFRoZSBQYXJ0aWVzIGFncmVlIHRoYXQgYW55IG5vdGljZSBkZWVtZWQgZGVsaXZlcmVkIChpKSBTdHJhbnkgc2UgZG9ob2RseSwgxb5lIGpha2Vrb2xpIG96bmFtZW7DrSBidWRlCgogCgpXaGVuIHJlY2VpdmVkLCBpZiBkZWxpdmVyZWQgcGVyc29uYWxseSBvciBzZW50IGJ5IGEKY291cmllciwgb3IgY2VydGlmaWVkLCBwb3N0YWdlIHByZXBhaWQgbWFpbCAoaWkpIGlmIHNlbnQKYnkgZWxlY3Ryb25pY2FsbHksIDUgKGZpdmUpIGJ1c2luZXNzIGRheSBhZnRlciBiZWluZwoKcG9rbMOhZMOhbm8gemEgZG9ydcSNZW7DqSwgKGkpIGpha21pbGUgamUgcMWZaWphdG8sCnBva3VkIGJ5bG8gZG9ydcSNZW5vIG9zb2JuxJssIGt1csO9cm7DrSBzbHXFvmJvdSBuZWJvCmRvcG9ydcSNZW5vdSBwb8WhdG91IHMgcMWZZWRwbGFjZW7DvW0gcG/FoXRvdm7DvW0sCgogCgogCgogCgpQYWdlIDI0IG9mNDUgLyBTdHJhbmEgMjQgeiA0NQoKIAoKQ1ogMy1teSBJTlNUIElOViBDVEEgRUwyNC5HT0kuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZXIgMjAyNAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuR09MQzAxLlAwMApWdXplOiB6w6HFmcOtIDIwMjQKCiAKCnNlbnQgKGFzIHJlY29yZGVkIG9uIHRoZSBkZXZpY2UgZnJvbSB3aGljaCB0aGUgc2VuZGVyCnNlbnQgdGhlIGVtYWlsKSBtaWxlc3MgdGhlIHNlbmRlciByZWNlaXZlcyBhbgphdXRvbWF0ZWQgbWVzc2FnZSB0aGF0IHRoZSBlbWFpbCBoYXMgbm90IGJlZW4KZGVsaXZlcmVkLgoKKGlpKSBwb2t1ZCBieWxvIG9kZXNsw6FubyBlbGVrdHJvbmlja3kuIDUgKHDEm3QpIGRuxa8KcG8gb2Rlc2zDoW7DrSAocG9kbGUgesOhem5hbXUgdiB6YcWZw616ZW7DrS4gemUga3RlcsOpaG8Kb2Rlc8OtbGF0ZWwgcG9zbGFsIGUtbWFpbCkuIHMgdsO9amlta291IHDDrcOtcGFkxa8uIGtkeQpvZGVzw61sYXRlbCBvYmRyxb7DrSBhdXRvbWF0aWNrb3UgenByw6F2dS4gxb5lIGUtbWFpbApuZWJ5bCBkb3J1xI1lbi4KCiAKCklmIHRvIExpbGx5OgoKUHJvIHNwb2xlxI1ub3N0IExpbGx5OgoKIAoKRWxpIExpbGx5IENvcmsgTGltaXRlZAoKQXR0ZW50aW9uOiBCdWRnZXQgYW5kIENvbnRyYWN0IENlbnRyYWxpc2VkIFRlYW0KQWRkcmVzczogSXNsYW5kIEhvdXNlLiBFYXN0Z2F0ZSBSb2FkLiBFYXN0Z2F0ZQpCdXNpbmVzcyBQYXJrLgoKTGl0dGxlIElzbGFuZC4gQyBvcmsuIElyZWxhbmQKCkVtYWlsOgoKRWxpIExpbGx5IENvcmsgTGltaXRlZAoKSyBuaWvDoW06IEJ1ZGdldCBhbmQgQ29udHJhY3QgQ2VudHJhbGlzZWQgVGVhbQpBZHJlc2E6IElzbGFuZCBIb3VzZS4gRWFzdGdhdGUgUm9hZC4gRWFzdGdhdGUKQnVzaW5lc3MgUGFyay4KCkxpdHRsZSBJc2xhbmQuIEMgb3JrIElyc2tvCgpFLW1haWw6CgogCgpJZiB0byBJbnZlc3RpZ2F0b3I6CgpQcm8gWmtvdcWhZSfDrWPDrWhvOgoKIAoKIAoKSWYgdG8gSW5zdGl0dXRpb246CgogCgpQcm8gWmRyYXZvdG5pY2vDqSB6YcWZw616ZW7DrToKCiAKCktyYWpza8OhIG5lbW9jbmljZSBMaWJlcmVjIGEucy4uIEh1c292YSAxNDMwLzM0LiA0NjAKMDEgTGliZXJlYyBDemVjaCByZXAuCgpBdHRlbnRpb246IE9kZMSbbGVuw60ga2xpbmljICdlaCBzdHVkacOtCkVtYWlsCgpLcmFqc2vDoSBuZW1vY25pY2UgTGliZXJlYyBhLnMuLiBIdXNvdmEgMTQzMC8zNCwKNDYwIDAxIExpYmVyZWMuIMSMIGVza8OhIHJlcHVibGlrYQoKSyBydWvDoW06IE9kZMSbbGVuw60ga2xpbmllICdlaCBzdHVkacOtCkUtbWFpbAoKIAoKIAoKIAoKIAoKIAoKIAoKIAoKOS4gU1VSVklWT1JTSElQIENMQVVTRSBET0xPxb1LQSBPIFDFmEVUUlbDgU4gw40gUExBVE5PU1RJCgo5LjEuMS4gVGhlIG9ibGlnYXRpb25zIHVuZGVyIHRoZSBzZWN0aW9ucyBJTlZFU1RJR0FUT1IgWsOhdmF6a3kgcG9kbGUgxI1sw6Fua8WvIFpBVkFaS1kKQU5EIElOU1RJVFVUSU9OIE9CTElHQVRJT05TLiBEQVRBIFpLT1XFoEVKw41Dw41ITyBBIFpEUkFWT1ROSUNLw4lITwpQUklWQUMgWSBBTkQgU0VDVVJJVFkuIFNVQkpFQyBUIElOSVVSWSBaQcWYw41aRU7DjS4gT0NIUkFOQSDDmkRBSsOaIEFKRUpJQ0gKUkVJTUJVUlNFTUVOVC4gQyBPTkZMREVOVElBTElUWSBBTkQgWkFCRVpQRcSMRU7DjS4gTsOBSFJBREEgUFJPIFNVQkpFS1RZCk5PTi1VU0UgT0YgQyBPTkZJREVOVElBTCBJTkZPUk1BVElPTiBWIFDFmElQQUTDiSBVSk1ZIE5BIFpEUkFWw40uIETDmlbEmlJOT1NUCmFuZCBJTkRFTU5JRklDQVRJT04gQU5EIElOU1VSQU5DRSBzaGFsbCBBIE5FUE9Vxb3DjVbDgU7DjSBEw5pWxJpSTsOdQ0gKc3Vydml2ZSB0aGUgZXhwaXJhdGlvbiBvciB0ZXJtaW5hdGlvbiBvZiB0aGlzIElORk9STUFDw40gYSBPRMWgS09ETsSaTsONIEEgUE9KScWgVMSaTsONCkFncmVlbWVudC4gesWvc3TDoXZhasOtIHYgcGxhdG5vc3RpIGlwbyBza29uxI1lbsOtIG5lYm8gdWtvbsSNZW7DrQoKcGxhdG5vc3RpIHRlJ3RvIFNtbG91dnkuCjEwLiBBU0pHTk1FTkkgZ29zSU9VUEVOw60KMTAuMS4xLiBJbnN0aXR1dGlvbiBhbmQvb3IgSW52ZXN0aWdhdG9yIHNoYWxsIG5vdCBhc3NpZ24uIEJleiBwxZllZGNob3rDrWhvIHDDrXNlbW7DqWhvIHNvdWhsYXN1IHNwb2xlxI1ub3N0aQoKdHJhbnNmZXIuIG9yIG90aGVyd2lzZSBkZWxlZ2F0ZSBhbnkgb2YgaXRzIG9ibGlnYXRpb25zCnVuZGVyIHRoaXMgQWdyZWVtZW50IHdpdGhvdXQgTGlsbHkncyBwcmlvciB3cml0dGVuCmNvbnNlbnQgaW4gZWFjaCBpbnN0YW5jZS4gSW5zdGl0dXRpb24gYW5kIEludmVzdGlnYXRvcgphY2tub3dsZWRnZSB0aGF0IExpbGx5IGhhcyB0aGUgcmlnaHQgdG8gYXNzaWduIHRoaXMKQWdyZWVtZW50IHRvIGFueSBvZiBpdHMgYWZmaWxpYXRlcyBvciB0byBhIGNvbnRyYWN0CnJlc2VhcmNoIG9yZ2FuaXphdGlvbiBpdSBjb25uZWN0aW9uIHdpdGggdGhlIHRyYW5zZmVyCm9mIHNwb25zb3Igb2JsaWdhdGlvbnMuIGluIGNvbm5lY3Rpb24gd2l0aCBhIG1lcmdlciBvcgpvdGhlciBjb3Jwb3JhdGUgcmVvcmdhbml6YXRpb24uIG9yIG90aGVyd2lzZSBpbgpjb25uZWN0aW9uIHdpdGggdGhlIHRyYW5zZmVyIG9mIGFsbCBvciBzdWJzdGFudGlhbGx5IGFsbApvZiBMaWxseeKAnHMgYXNzZXRzIHRoYXQgYmVhciBvbiB0aGUgU3R1ZHkgZHJ1ZyhzKSBvcgpkZXZpY2UocykuIFRoZSBobHN0aXR1dGlvbiBhbmQgSW52ZXN0aWdhdG9yIG11c3QgYmUKaW5mb3JtZWQgb2YgdGhpcyBmYWN0LgoKIAoKTGlsbHkgbmVzbcSbasOtIFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYS9uZWJvCnprb3XFoWVqw61jw60gcG9zdHVwb3ZhdCDFvsOhZG7DqSBzdsOpIHrDoXZhemt5IHp0ZSd0bwpTbWxvdXZ5LiBwxZlldsOhZMSbdCBqZSBhbmkgamUgamluYWsgZGVsZWdvdmF0LgpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGEgemtvdcWhZWrDrWPDrSBiZXJvdSBuYQp2xJtkb23DrS4gxb5lIFphZGF2YXRlbCBqZSBvcHLDoW3Em24gdHV0byBTbWxvdXZ1CnBvc3RvdXBpdCBrdGVyw6ltdWtvbGkgemUgc3bDvWNoIHDDrWlkcnXFvmVuw71laApzdWJqZWt0xa8gbmVibyBzbWx1dm7DrSB2w716a3VtbsOpIG9yZ2FuaXphY2kKdnNvdXZpc2xvc3RpIHNwxZlldm9kZW0gcG92aW5ub3N0w60gemFkYXZhdGVsZS4KdnNvdXZpc2xvc3RpIHMgZsO6esOtIMSNaSBqaW5vdSByZW9yZ2FuaXphY8OtCnNwb2xlxI1ub3N0aSBuZWJvIGppbmFrIHZzb3V2aXNsb3N0aSBzcMWZZXZvZGVtCnZlxaFrZXLDqWhvIG1hamV0a3UgWmFkYXZhdGVsZSDEjWkgamVobyBwb2RzdGF0bsOpCsSNw6FzdGkuIGt0ZXLDqSBzb3V2aXNlasOtIHNIb2Rub2NlbsO9bSBwxZnDrXByYXZrZW0KKHDFmWlwcmF2a3kpIG5lYm8gcHJvc3TFmWVka2VtIChwcm9zdMWZZWRreSkuIDAgdMOpdG8Kc2t1dGXEjW5vc3RpIGplIHBvdmluZW4gaW5mb3Jtb3ZhdCBaZHJhdm90bmlja8OpCnphxZnDrXplbsOtIGEgWmtvdcWhZWnDrWPDrWhvLgoKIAoKIAoKIAoKUGFnZSAyNSBvZjQ1IC8gU3RyYW5hIDI1IHogNDUKCiAKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnNpb246IFNlcHRlbWJlciAyMDI0CgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJ6ZTogesOhxZnDrSAyMDI0CgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgoxMS4gQU1FTkRNRU5UUyBaTUVOWSBBIERPREFUS1kKCjExLjEuMS4gVGhlIFBhcnRpZXMgYWdyZWUgdGhhdCBjaGFuZ2VzIG9ybW9kaWZpY2F0aW9ucyB0byB0aGUgU3RyYW55IHNlIGRvaG9kbHksIMW+ZSB6bcSbbnkgbmVibyB1cHJhdnkgbnInxb5lCmZvbGxvd2luZyBtYXkgYmUgY29tbXVuaWNhdGVkIHZpYSB3cml0dGVuIHV2ZWRlbsO9Y2ggc2t1dGXEjW5vc3TDrSBsemUgc2TEm2xvdmF0IHDDrXNlbW7DvW0Kbm90aWZpY2F0aW9uIHNpZ25lZCBieSBMaWxseSBXaXRob3V0IHNpZ25pbmcgYW4gb3puw6FtZW7DrW0gcG9kZXBzYW7DvW0gc3BvbGXEjW5vc3TDrSBMaWxseSBiZXoKQW1lbmRtZW50OiBudXRub3N0aSB1emF2xZllbsOtIGRvZGF0a3U6CgooYSkgbnVtYmVyIG9mIGVucm9sbGVkIHBhdGllbnRzIGFzIHBlciBFWGhpYml0IEEgLSBwb8SNZXQgemHFmWF6ZW7DvWNoIHBhY2llbnTFryBwb2RsZSBwxZnDrWxvaHlBZgpQYXltZW50IFRlcm1zOiBMaW1pdCBvZiBQYXRpZW50IEVudHJ5IG9yIEVucm9sbG1lbnQgUGxhdGVibsOtIHBvZG3DrW5reTogb21lemVuw60gemHFmWF6b3bDoW7DrSBuZWJvCnNlY3Rpb24gb2YgdGhpcyBBZ3JlZW1lbnQ7IG7DoWJvcnUgcGFjaWVudMWvIHBvZGxlIHTDqXRvIFNtbG91dnksCgooYikgdGhlIGR1cmF0aW9uIG9mIHRoZSBTdHVkeTsgdHJ2w6Fuw60gU3R1ZGllLAoKMTEuMS4yLiBUaGUgUGFydGllcyBhZ3JlZSB0aGF0IGluIHRoZSBldmVudCB0aGF0IFBheWVlIGRldGFpbHMgU3RyYW55IHNlIGRvaG9kbHksIMW+ZSBwb2t1ZCB2cHLFr2LEm2h1IFN0dWRpZQphcmUgbW9kaWZpZWQgZHVyaW5nIHRoZSBjb3Vyc2Ugb2YgdGhlIFN0dWR5LCBubyBkb2pkZSBrZSB6bcSbbsSbIHVkYWrFryBvcMWZw61qZW1jaSBwbGF0ZWIsIG5lYnVkZQphbWVuZG1lbnRzIHRvIHRoaXMgQWdyZWVtZW50IHNoYWxsIGJlIHJlcXVpcmVkLCB6YXBvdMWZZWJyJ3Z5aG90b3ZpdCDFvmFkbsO9IGRvZGF0ZWtrdGV0byBTbWxvdXbEmywKcHJvdmlkZWQgdGhhdCBQYXllZSBmb2xsb3cgdGhlIGluc3RydWN0aW9uIGFncmVlZCBvbiBwb2t1ZCBidWRlIHDFmcOtamVtY2UgcGxhdGViIHBvc3R1cG92YXQgcG9kbGUKRVhoaWJpdCBBIC0gUGF5bWVudCBUZXJtcy4gcG9reW7FryBkb2hvZG51dMO9Y2ggdiBQxZnDrWxvemUgQSBfIFBsYXRlYm7DrQoKcG9kbcOtbmt5LgoKMTEuMS4zLiBUaGUgUGFydGllcyBhZ3JlZSB0aGF0IGNoYW5nZXMgaW4gdGhlIHByb3RvY29sIHRoYXQgU3RyYW55IHNlIGRvaG9kbHksIMW+ZSB6bcSbbnkgdlByb3Rva29sdSwga3RlcmUKZG9lcyBub3QgYWZmZWN0IHRoZSBGaW5hbmNpYWwgQXJyYW5nZW1lbnRzLCBvciB0aGlzIG5lb3ZsaXbFiHVqw60gZmluYW7EjW7DrSB1amVkbsOhbsOtIG5lYm8gdHV0byBTbWxvdXZ1LApBZ3JlZW1lbnQgY2FuIGJlIGNvbW11bmljYXRlZCB0aHJvdWdoIGVtYWlsIG9yIGx6ZSBzZMSbbGl0IGUtbWFpbGVtIG5lYm8gcMOtc2Vtbm91IGtvcmVzcG9uZGVuY2kuCndyaXR0ZW4gY29ycmVzcG9uZGVuY2UuCgoxMS4xLjQuIFRoZSBQYXJ0aWVzIGFncmVlIHRoYXQgYWxsIG90aGVyIGNoYW5nZXMgcmVxdWlyZSBhbiBTdHJhbnkgc2UgZG9ob2RseSwgxb5lIHZlxaFrZXLDqSBkYWzFocOtIHptxJtueSBidWRvdQphbWVuZG1lbnQgc2lnbmVkIGJ5IGFsbCB0aGUgUGFydGllcy4gdnnFvmFkb3ZhdCB2eXByYWNvdsOhbsOtIGRvZGF0a3UgcG9kZXBzYW7DqWhvCgp2xaFlbWkgU3RyYW5hbWkuCgoxMS4xLjUuIFRoZSBJbnN0aXR1dGlvbiBhbmQgdGhlIEludmVzdGlnYXRvciBzaGFsbCBtYWtlIGV2ZXJ5IFpkcmF2b3RuaWNrw6kgemHFmcOtemVuw60gYSBaa291xaFlasOtY8OtIHZ5bmFsb8W+w60KZWZmb3J0IHRvIHJldmlldyBhMTEgYW1lbmRtZW50cyB0byB0aGlzIEFncmVlbWVudCBpbiBtYXhpbWFsbsOtIMO6c2lsw60gayBwb3NvdXplbsOtIHZlxaFrZXLDvWNoIGRvZGF0a8WvCmdvb2QgZmFpdGggYW5kIGluIGEgdGltZWx5IG1hbm5lciwgYW5kLCBXaGVyZSBrIHTDqXRvIFNtbG91dsSbIHYgZG9icsOpIHbDrcWZZSBhIHbEjWFzIGEgdiBwxZnDrXNsdcWhbsO9Y2gKYXBwbGljYWJsZSwgdG8gZW5zdXJlIHRoZSBwcm9tcHQgc2lnbmluZyBvZiBzdWNoIHDFmcOtcGFkZWNoIG5hIHphamnFoXTEm27DrSB2xI1hc27DqWhvIHBvZGVwc2Fuw60KYW1lbmRtZW50cyBXaXRob3V0IHVuZHVlIGRlbGF5LCBpbmNsdWRpbmcgdGhlIHRha292w71jaCBkb2RhdGvFryBiZXogemJ5dGXEjW7DqWhvIG9ka2xhZHUsIHbEjWV0bsSbCnByb3Zpc2lvbiBvciBhY3F1aXNpdGlvbiBvZiBhbGwgcmVsZXZhbnQgcG9za3l0bnV0w60gbmVibyB6w61za8OhbsOtIHZlxaFrZXLDqSBwxZnDrXNsdcWhbsOpCmRvY3VtZW50YXRpb24uIGRva3VtZW50YWNlLgoKMTIuIElOREVQRU5ERU5UIENPTlRSQUNUT1IgTkVaw4FWSVNMT1NUIFNNTFVWTsONQ0ggUEFSVE5FUsOaCgoxMi4xLjEuIEludmVzdGlnYXRvciBhbmQgSW5zdGl0dXRpb24gYXJlIGluZGVwZW5kZW50IFprb3XFoWVqw61jw60gYSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIGpzb3UKY29udHJhY3RvcnMgYW5kIG5vdCBhZ2VudHMsIHBhcnRuZXJzLCBvciBlbXBsb3llZXMgb2YgbmV6w6F2aXNsw71taSBzbWx1dm7DrW1pIHBhcnRuZXJ5LCBuaWtvbGkgemFzdHVwY2ksCkxpbGx5LiBObyBQYXJ0eSBoYXMgdGhlIGF1dGhvcml0eSB0byBtYWtlIGFncmVlbWVudHMgcGFydG5lcnkgbmVibyB6YW3Em3N0bmFuY2kgc3BvbGXEjW5vc3RpIExpbGx5LgpXaXRoIHRoaXJkIHBhcnRpZXMgdGhhdCBhcmUgYmluZGluZyBvbiBhbnkgb3RoZXIgUGFydHkgxb3DoWRuw6Egc3RyYW5hIG5lbsOtIG9wcsOhdm7Em25hIGsgdXphdsOtcsOhbsOtIGRvaG9kIHNlCmluIGNvbm5lY3Rpb24gYWN0aXZpdGllcyB1bmRlciB0aGlzIEFncmVlbWVudC4gdMWZZXTDrW1pIHN0cmFuYW1pLCBrdGVyw6kgYnkgYnlseSB6YXZhenVqw61jw60gcHJvCgprdGVyb3Vrb2xpIGppbm91IHN0cmFudSwgdiBzb3V2aXNsb3N0aSBzIMSNaW5ub3N0bWkKTGlsbHkgaGVyZWJ5IGRlY2xhcmVzIHRoYXQgaXQgaGFzIG5vdCBlbnRlcmVkIGludG8sIG5vciBwb2RsZSB0w6l0byBTbWxvdXZ5LgpXaWxsIGl0IGVudGVyIGludG8sIGFueSBzZXBhcmF0ZSBhZ3JlZW1lbnQgV2l0aCB0aGUgU3BvbGXEjW5vc3QgTGlsbHkgdMOtbXRvIHByb2hsYcWhdWplLCDFvmUgbmV1emF2xZllbGEsCkludmVzdGlnYXRvciBvciBhbnkgb3RoZXIgZW1wbG95ZWUgb2YgdGhlIEluc3RpdHV0aW9uIGFuaSBuZXV6YXbFmWUsIGpha291a29saSBzZXBhcsOhdG7DrSBkb2hvZHUgc2UKaW4gY29ubmVjdGlvbiBXaXRoIHRoaXMgU3R1ZHkgKGV4Y2VwdCBmb3IgdGhlIFprb3XFoWVqw61jw61ybiwgYW5pIGppbsO9bSB6YW3Em3N0bmFuY2VtCkNvbmZyZGVudGlhbGl0eSBBZ3JlZW1lbnQpLiB6ZHJhdm90bmlja8OpaG8gemHFmcOtemVuw60gdiBzb3V2aXNsb3N0aSBzIHRvdXRvClN0dWRpw60gKGtyb23EmyBTbWxvdXZ5IG8gemFjaG92w6Fuw60gZMWvdsSbcm5vc3RpCsO6ZGFqxa8pLgoxMy4gV0FJVkVSIFZaRMOBTsONIFNFIFBSw4FWCjEzLjEuMS4gVGhlIHdhaXZlciBieSBhbnkgUGFydHkgb2YgYSBicmVhY2ggb3IgdmlvbGF0aW9uIG9mIEpha8Opa29saSB2emTDoW7DrSBzZSBwcmF2YSBrdGVyb3Vrb2xpIHN0cmFub3UKCiAKCmFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgbmVpdGhlciBvcGVyYXRlCmFzLCBub3IgYmUgY29uc3RydWVkIGFzLCBhIHdhaXZlciBvZiBhbnkgc3Vic2VxdWVudApicmVhY2ggb2YgdGhpcyBBZ3JlZW1lbnQuCgogCgogCgp2IHNvdXZpc2xvc3RpIHMgcG9ydcWhZW7DrW0gbmVibyBuZWRvZHLFvmVuw61tCmt0ZXLDqWhva29saSB1c3Rhbm92ZW7DrSB0ZXRvIFNtbG91dnkgbmVidWRlCnDFr3NvYml0IGFuaSBuZWJ1ZGUgdnlrbMOhZMOhbm8gamFrbyB2emTDoW7DrSBzZSBwcmF2CgogCgpQYWdlIDI2IG9mNDUgLyBTdHJhbmEgMjYgeiA0NQoKIAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQKCkNaIDMtd2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnplOiB6w6HFmcOtIDIwMjQKCiAKCnNvdXZpc2Vqw61jw61jaCBzamFrw71ta29saSBkYWzFocOtbSBwb3J1xaFlbsOtbSB0ZXRvClNtbG91dnkuCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgoxNC4gU0VWRVJBQklMSVRZIE9EREVMSVRFTE5PU1QgVVNUQU5PVkVOw40KCjE0LjEuMS4gSW4gdGhlIGV2ZW50IHRoYXQgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBCdWRlLWxpIG7Em2t0ZXLDqSB1c3Rhbm92ZW7DrSB0ZXRvIFNtbG91dnkgc2hsZWTDoW5vCmZvdW5kIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSBwdXJzdWFudCB0byBqdWRpY2lhMSBuZXBsYXRuw71tIG5lYm8gbmV2eW1haGF0ZWxuw71tIG5hIHrDoWtsYWTEmwpkZWNyZWUgb3IgZGVjaXNpb24sIHRoYXQgcHJvdmlzaW9uKHMpIGlzIGRlZW1lZCBzb3VkbsOtaG8gcm96aG9kbnV0w60sIGJ1ZGUgdGFrb3ZlIHVzdGFub3ZlbsOtCnNldmVyZWQgZnJvbSB0aGlzIEFncmVlbWVudCBhbmQgdGhlIHJlbWFpbmRlciBvZiBwb3Zhxb5vdsOhbm8gemEgb2RkxJtsaXRlbG5lIG9kIFNtbG91dnkgYSB6YsO9dmFqw61jw60KdGhpcyBBZ3JlZW1lbnQgc2hhbGwgcmVtYWluIHZhbGlkIGFuZCBlbmZvcmNlYWJsZSDEjWFzdCBTbWxvdXZ5IHrFr3N0YW5lIHBsYXRuw6EgYXZ5bWFoYXRlbG5hCmFjY29yZGluZyB0byBpdHMgdGVybXMuIHYgc291bGFkdSBzIGplasOtbWkgdXN0YW5vdmVuw61taS4KCjE1LiBCSU5ESU5HIEVGRkVDVCBaw4FWQVpOw50gw5pDSU5FSwoKMTUuMS4xLiBCeSBzaWduaW5nIHRoaXMgQWdyZWVtZW50LCBJbnZlc3RpZ2F0b3IgYW5kIFBvZGVwc2Fuw61tIHRldG8gU21sb3V2eSBaZHJhdm90bmlja8OpIHphxZnDrXplbsOtCkluc3RpdHV0aW9uIHJlcHJlc2VudCBhbmQgd2FycmFudCB0aGF0IHRoZXkgaGF2ZSB0aGUgYSBaa291xaFlasOtY8OtIHByb2hsYcWhdWrDrSBhIHphcnXEjXVqw60gc2UsIMW+ZSBtYWrDrQphdXRob3JpdHkgYW5kIGFiaWxpdHkgdG8gb3IgV2lsbCBvdGhlcndpc2UgY29udHJhY3R1YWxseSBvcHLDoXZuxJtuw60gYSB6cMWvc29iaWxvc3Qgc21sdXZuxJsgemF2w6F6YXQKYmluZCBhbnkgaW5kaXZpZHVhbCBvciBlbnRpdHkgV2hvIHBlcmZvcm1zIHNlcnZpY2VzIGt0ZXJvdWtvbGkgZnl6aWNrb3UgbmVibyBwcsOhdm5pY2tvdSBvc29idQpmb3IgSW52ZXN0aWdhdG9yIGFuZCBJbnN0aXR1dGlvbiBpbiBjb25uZWN0aW9uIFdpdGggdGhlIHBvc2t5dHVqw61jw60gc2x1xb5ieSBwcm8gUG9za3l0b3ZhdGVsZSBzbHXFvmViClN0dWR5IGhlcmV1bmRlciB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyB2IHNvdXZpc2xvc3RpIHNlIFN0dWRpw60gayBkb2Ryxb5vdsOhbsOtIHVzdGFub3ZlbsOtCkFncmVlbWVudC4gYSBwb2Rtw61uZWsgdGV0byBTbWxvdXZ5LgoKMTUuMS4yLiBUaGlzIEFncmVlbWVudCB0b2dldGhlciBXaXRoIGl0cyBFeGhpYml0cyByZXByZXNlbnRzIFRhdG8gU21sb3V2YSBzcG9sdSBzIHDFmcOtbG9oYW1pIHDFmWVkc3RhdnVqZSB1cGxuZQp0aGUgZW50aXJlIHVuZGVyc3RhbmRpbmcgYmV0d2VlbiB0aGUgUGFydGllcyBhbmQgdWplZG7DoW7DrSBtZXppIFN0cmFuYW1pIGEgbmFocmF6dWplIHbFoWVjaG55CnN1cGVyc2VkZXMgYWxsIG90aGVyIGFncmVlbWVudHMsIGV4cHJlc3Mgb3IgaW1wbGllZCwgcMWZZWRjaG96w60gZG9ob2R5LCB2w71zbG92bmUgbmVibyBwxZllZHBva2zDoWRhbsOpLApiZXR3ZWVuIHRoZSBQYXJ0aWVzIGNvbmNlcm5pbmcgdGhlIHN1YmplY3QgbWF0dGVyIG1lemkgU3RyYW5hbWl0w71rYWrDrWPDrSBzZSBwxZllZG3Em3R1IHRldG8gU21sb3V2eS4KaGVyZW9mCgoxNS4xLjMuIFRoaXMgQWdyZWVtZW50IGhhcyBiZWVuIHRob3VnaHRmdWxseSBjb25zaWRlcmVkIGJ5IFN0cmFueSB0dXRvIFNtbG91dnUgcGXEjWxpdsSbIHp2w6HFvmlseSBhIHYgZMWvc2xlZGt1CnRoZSBQYXJ0aWVzIGFuZCwgY29uc2VxdWVudGx5LCBzaGFsbCBub3QgYmUgc3RyaWN0bHkgdG9obyBuZWJ1ZGUgU21sb3V2YSBzdHJpa3RuxJsgdnlrbMOhZMOhbmEgcHJvdGkKY29uc3RydWVkIGFnYWluc3QgZWl0aGVyIFBhcnR5LiBUaGlzIEFncmVlbWVudCBzaGFsbCBrdGVyw6lrb2xpIHplIFN0cmFuLiBUYXRvIFNtbG91dmEgc2UgxZnDrWTDrSBwcsOhdm7DrW0KYmUgZ292ZXJuZWQgYnkgdGhlIGxhd3Mgb2YgQ3plY2ggUmVwdWJsaWMuIMWZw6FkZW0gxIxlc2vDqSByZXB1Ymxpa3kuCgoxNS4xLjQuIEluIHRoZSBldmVudCBvZiBhIGNvbmZsaWN0IGJldHdlZW4gb2YgdGhlIHRlcm1zIG9mIHRoaXMgViBwxZnDrXBhZMSbIHJvenBvcnUgbWV6aSB1c3Rhbm92ZW7DrW1pIHRldG8KQWdyZWVtZW50IGFuZCB0aGUgUHJvdG9jb2wsIHRoZSBQcm90b2NvbCBzaGFsbCBTbWxvdXZ5IGEgdXN0YW5vdmVuw61taSBQcm90b2tvbHUgbWFqw60KcHJldmFpbCBXaXRoIHJlc3BlY3Qgb2YgbWF0dGVycyBvZiBtZWRpY2FsLCB2IGzDqWthxZlza8O9Y2ggesOhbGXFvml0b3N0ZWNoIG5lYm8gb2hsZWRuxJsKc2NpZW5jZS9zY2llbnRpZmljYWwgcmVzdWx0cyBhbmQgY29uZHVjdCBvZiB0aGUgU3R1ZHkuIHbEm2RlY2vDvWNoIHphbGXFvml0b3N0w60vdsO9c2xlZGvFryBhIHByb3bDoWTEm27DrSBTdHVkaWUKCnDFmWVkbm9zdCB1c3Rhbm92ZW7DrSBQcm90b2tvbHUsIHVzdGFub3ZlbsOtIHRldG8KU21sb3V2eSBtYWrDrSBwxZllZG5vc3QsIHBva3VkIGpkZSBvIHbFoWVjaG55Cm9zdGF0bsOtIHrDoWxlxb5pdG9zdGkuCgoxNi4gUFJFVkFJTElORyBMQU5HVUFHRSBST1pIT0ROw4EgSkFaWUtPVsOBIFZFUlpFCgoxNi4xLjEuIFRoZSBQYXJ0aWVzIGhhdmUgYWdyZWVkIHRoYXQgdGhpcyBBZ3JlZW1lbnRoYXMgYmVlbiBTdHJhbnkgc2UgZG9ob2RseSwgxb5lIHRhdG8gU21sb3V2YSBieWxhCnByZXBhcmVkIGluIGJvdGggRW5nbGlzaCBhbmQgQ3plY2ggbGFuZ3VhZ2UuIEluIHRoZSB2eWhvdG92ZW5hIHYgYW5nbGlja8OpbSBhIMSNZXNrw6ltIGphenljZS4KZXZlbnQgb2YgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdGhlIHR3by1sYW5ndWFnZSBWIHDFmcOtcGFkxJsgamFrZWhva29saSByb3pwb3J1IG1lemkgb2LEm21hCgogCgp2ZXJzaW9uLCB0aGUgQ3plY2ggdmVyc2lvbiBzaGFsbCBwcmV2YWlsLgoKIAoKIAoKamF6eWtvdsO9bWkgdmVyemVtaSBidWRlIG3DrXQgcMWZZWRub3N0IMSNZXNrw6EKdmVyemUuCgogCgpQYWdlIDI3IG9mNDUgLyBTdHJhbmEgMjcgeiA0NQoKIAoKQ1ogMy12d3J5IFdTVCBJTlYgQ1RBIEVMMjQuR09JLkMwMS5QMDAKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQKCklOIFdJJ0lOJ0VTUyBXSeKAlFtFUkVPUiB0aGUgUGFydGllcyBoYXZlIGVudGVyZWQgaW50bwp0aGlzIEFncmVlbWVudCB1bmRlciBzZWFsIGFzIG9mIHRoZSBFZmZlY3RpdmUgRGF0ZSBieSB0aGVpcgpkdWx5IGF1dGhvcml6ZWQgcmVwcmVzZW50YXRpdmVzLgoKRWxpIExpbGx5IENvcmsgTGltaXRlZAoKRGlnaXRhbGx5IHNpZ25lZCBoeSBQQUwgSU4uClBBIEwgRCBSCicgUmFtbjogSSBhbSBhcHBtdmluZyB0aGlzCmRvY3VtZW50CgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUxaNC5HT0xDMDEuUDAwClZ1emU6IG4nw63DrSAyMDI0CgpOQSBEw5pLQVogVE9ITyBTdHJhbnkgdXphdsWZZWx5IHR1dG8gU21sb3V2dSBrZQoKRG5pIMO6xI1pbm5vc3RpIHByb3N0xZllZG5pY3R2w61tIHN2w71jaCDFmcOhZG7Emwp6bW9jbsSbbsO9Y2ggesOhc3R1cGPFry4KCkludmVzdGlnYXRvciAvIFprb3XFoWVqw61jw606CgogCgpEYW06IDIwMTYxMzA2IDE3MTMzMTA0IFoKCkFkb2JlIEFjcm9iYXQgdmVyc2lvbjoKMjAyNS4wMDExMTIyMwoKTmFtZSAvIEptw6lubzogRHIuIDE+YWwgQm9ybwoKVGl0bGUgLyBUIGl0dWw6IFNyLiBNYW5hZ2VyIC0gVHJpYWwgQ2FwYWJpbGl0aWVzIEJ1ZGdldHMgJgoKQ29udHJhY3RzCgowNiBNYXJjaCAyMDI2CgogCgpOYW1lIC8gSm3DqW5vOiBNVURyLiBLYXJlbCBEdm/FmcOhay4gUGguRC4KCiAKCkRhdGUgLyBEYXR1bQoKIAoKRGF0ZSAvIERhdHVtCgpLcmFqc2vDoSBuZW1vY25pY2UgTGliZXJlYywgYS5zLgoKIAoKTmFtZSAvSm3DqW5hOiBNVURyLiBSaWNoYXJkIEx1a8OhxaEuIFBoLkQuLgpUaXRsZSAvIFRpdHVsOiBEaXJlY3RvciBhbmQgQ2hhaXJtYW4gb2YgdGhlIEJvYXJkIG9mCkRpcmVjdG9ycyAvxZllZGl0ZWwgYSBwxZllZHNlZGEgcMWZZWRzdGF2ZW5zdHZhCgoob3IvIG5lYm8pCgpOYW1lIC8gSm3DqW5vOiBkb2MuIE1VRHIuIFRvbcOhxaEgUm91YsOtxI1laywgUGguRC4KRkVTQy4KClRpdGxlIC8gVCBpdHVsOiBWaWNlLUNoYWltcmFuIG9mIHRoZSBCb2FyZCBvZiBEaXJlY3RvcnMKTcOtc3RvcMWZZWRzZWRhIHDFmWVkc3RhdmVuc3R2YQoKIAoKRGF0ZSAvIERhdHVtCgpQYWdlIDI4IG9mNDUgw40gU3RyYW5hIDI4IHogNDUKCkFQUFJPVkVECkJ5IE1pY2hhZWwgV2Fsa2VyIGF0IDg6NTYgYW0sIEluISAwNi4gMjAyNgoKQ1ogMy1XYXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQKCjE3LgoKMTguCgoxOC4xLgoKMTguMi4KCjE4Mi4xLgoKMTgyLjIuCgoxODIuMy4KCjE4Mi40LgoKRXhoaWJpdCBBIC0gUGF5bWVudCBUZXJtcwoKQXMgY29uc2lkZXJhdGlvbiBmb3IgcGVyZm9ybWFuY2UgdW5kZXIgdGhlIHRlcm1zIG9mCnRoaXMgQWdyZWVtZW50LCBMaWxseSBzaGFsbCBwcm92aWRlIGZybmFuY2lhbCBzdXBwb3J0CmZvciB0aGUgU3R1ZHkgaW4gYWNjb3JkYW5jZSBXaXRoIHRoZSBQYXltZW50IFRlcm1zCmFzIHNldCBmb3J0aCBpbiB0aGlzIEVYaGliaXQgQSBhbmQgb24gdGhlIGFtb3VudCBzZXQKZm9ydGggaW4gRVhoaWJpdCBCIC0gQnVkZ2V0LgoKUGF5bWVudCBpbiBjb25uZWN0aW9uIFdpdGggdGhlIFN0dWR5IFdpbGwgYmUgbWFkZQpieSBMaWxseSB2aWEgYmFuayB0cmFuc2ZlciB0byB0aGUgSW5zdGl0dXRpb24gYW5kIG9yCkludmVzdGlnYXRvciAo4oCcUGF5ZWUiKSB0byB0aGUgYmFuayBhY2NvdW50IGRlZnJuZWQKb24gdGhlIFN1cHBsaWVyIEluZm9ybWF0aW9uIEZvcjFuKHMpICjigJxTSUYnKQphdHRhY2hlZCBiZWxvdyBhcyBBcHBlbmRpeCAxLgoKRWxpZ2liaWxpdHYgZm9yIHBheW1lbnQ6ClRvIGJlIGVsaWdpYmxlIGZvciBwYXltZW50LCBlYWNoIFBheWVlIHNoYWxsOgoKQ29tcGxldGUsIHNpZ24gYW5kIHByb3ZpZGUgYSBTSUYgdG8gTGlsbHkgbm90IGxhdGVyCnRoYW4gdGhlIGRhdGUgb2YgZXhlY3V0aW9uIG9mIHRoZSBBZ3JlZW1lbnQuClByb3ZpZGUgdmVyaWZyY2F0aW9uIG9mIGJhbmsgZGV0YWlscyB0byBlbnN1cmUgc2VjdXJpdHkKYW5kIHByaXZhY3kgb2YgUGF5ZWUgZGF0YS4gVmVyaWZpY2F0aW9uIG9mIGJhbmsKZGV0YWlscyBtYXkgYmUgcHJvdmlkZWQgaW4gb25lIG9mIHRoZSBmb2xsb3dpbmcKZm9ybXM6CgpCYW5rIFN0YXRlbWVudCBfIFJlY2VudCBzdGF0ZW1lbnQgY2xlYXJseQpkaXNwbGF5aW5nIGFjY291bnQgbnVtYmVyIGFuZCBhY2NvdW50IGhvbGRlcidzCm5hbWUuCgpCYW5rIHZlcmlmcmNhdGlvbiBsZXR0ZXIgXyBUaGlzIGxldHRlciBzaG91bGQgYmUKcmVxdWVzdGVkIGZyb20gdGhlIFBheWVlJ3MgYmFuayBhbmQgY29uZnJybQphY2NvdW50IG51bWJlciBhbmQgYWNjb3VudCBob2xkZXIncyBuYW1lLgoKQmFuayBjb25maXJtYXRpb24gbGV0dGVyIC0gVGhpcyBsZXR0ZXIgc2hvdWxkIGJlCnJlcXVlc3RlZCBmcm9tIHRoZSBQYXllZSdzIGJhbmsgYW5kIGF0dGVzdHMgdG8gdGhlCmF1dGhlbnRpY2l0eSBvZiB0aGUgYmFuayBhY2NvdW50IGNvbmZycm1pbmcgYWNjb3VudApudW1iZXIgYW5kIGFjY291bnQgaG9sZGVyJ3MgbmFtZS4KCk9ubGluZSBiYW5raW5nIHNjcmVlbnNob3QgXyBBIHNjcmVlbnNob3Qgb2YgdGhlClBheWVlJ3Mgb25saW5lIGJhbmtpbmcgcG9ydGFsLCBsw7pnaGxpZ2h0aW5nIHRoZQpyZWxldmFudCBhY2NvdW50IGRldGFpbHMgaW5jbHVkaW5nIGFjY291bnQgbnVtYmVyCmFuZCBhY2NvdW50IGhvbGRlcidzIG5hbWUuIEhvd2V2ZXIsIHRoaXMgb3B0aW9uCm1heSByZXN1bHQgaW4gYSByZXF1aXJlcm5lbnQgZm9yIGFkZGl0aW9uYWwKdmVyaWZyY2F0aW9uIGR1ZSB0byB0aGUgcG90ZW50aWFsIGZvciBybmFuaXB1bGF0aW9uIG9mCmRpZ2l0YWwgaW1hZ2VzLgoKSWYgUGF5ZWUgZGV0YWlscyBhcmUgbW9kaWZpZWQgZHVyaW5nIHRoZSBTdHVkeSwgdGhlClBhcnRpZXMgYWdyZWUgdGhhdCAxMTAgYW1lbmRtZW50cyB0byB0aGlzIEFncmVlbWVudApzaGFsbCBiZSByZXF1aXJlZCwgcHJvdmlkZWQgdGhhdCB0aGUgUGF5ZWUgcHJvdmlkZXMsCmFzIHNvb24gYXMgcG9zc2libGUsIGEgd3JpdHRlbiBub3RpZnJjYXRpb24gV2l0aCBhCmNvbXBsZXRlZCBCYW5rIEluZm9ybWF0aW9uIEZvcm0gKOKAnEJJRicpIGF0dGFjaGVkCmJlbG93IGFzIEFwcGVuZGl4IDIgYW5kIG9yIHByb3ZpZGVzIGFuIHVwZGF0ZWQgU0lGCmFuZCB2ZXJpZnJjYXRpb24gb2YgYmFuayBkZXRhaWxzIHRvIHRoZSBmb2xsb3dpbmcgZS0KbWFpbCBhZGRyZXNzOiAuIFRoZQpQYXllZSB1bmRlcnN0YW5kcyBhbmQgYWNrbm93bGVkZ2VzIHRoYXQgaW4gdGhlCmV2ZW50IG9mIHJub2RpZnJjYXRpb24gdG8gdGhlaXIgZGV0YWlscywgTGlsbHkgbWF5CgpDWiAzLVdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMAoKVmVyemU6IHrDocWZw60gMjAyNAoKUMWZw61sb2hhIEEg4oCUIFBsYXRlYm7DrSBwb2Rtw61ua3kKClphIHNtbHV2bsOtIHBsbsSbbsOtIHZzb3VsYWR1IHNwb2RybsOtbmthbWkgdMOpdG8KU21sb3V2eSBidWRlIHNwb2xlxI1ub3N0IExpbGx5IHBvc2t5dG92YXQgcHJvClN0dWRpaSBmcm5hbsSNbsOtIHBvZHBvcnUgcG9kbGUgcGxhdGVibsOtY2ggcG9kbcOtbmVrCnV2ZWRlbsO9Y2ggdiB0w6l0byBQxZnDrWxvemUgQSBhcm96cG/EjXR1IHV2ZWRlbsOpaG8KdiBQxZnDrWxvemUgQi4KClBsYXRieSBzb3V2aXNlasOtY8OtIHNlIFN0dWRpw60gYnVkZSBzcG9sZcSNbm9zdCBMaWxseQpocmFkaXQgYmFua292bsOtbSBwxZlldm9kZW0gWmRyYXZvdG5pY2vDqXJudQp6YcWZw616ZW7DrSBhIG5lYm8gWmtvdcWhZWrDrWPDrXJudSAoZMOhbGUgamVuIOKAnlDFmcOtamVtY2UKcGxhdGVi4oCcKSBuYSBiYW5rb3Zuw60gw7rEjWV0IHV2ZWRlbsO9IHZlIGZvcm11bMOhxZlpIMSNaQpmb3JtdWzDocWZw61jaCBpbmZvcm1hY8OtIGRvZGF2YXRlbGUgKGTDoWxlIGplbiDigJ5TSUbigJwpCnDFmWlwb2plbsOpaG8gbsOtxb5lIGpha28gRG9wbG7Em2sgMS4KClpwxa9zb2JpbG9zdCBrIHBsYXRiw6FtOgoKQWJ5IG1vaGwgUMWZw61qZW1jZSBwbGF0YnkgdHl0byBwbGF0YnkgZG9zdMOhdmF0LAptdXPDrToKClZ5cGxuaXQsIHBvZGVwc2F0IGFwxZllZGF0IFNJRiBzcG9sZcSNbm9zdGkgTGlsbHkKbmVqcG96ZMSbamkgayBkYXR1IHBvZGVwc8OhbsOtIFNtbG91dnkuCgpQb3NreXRub3V0IG92xJvFmWVuw60gYmFua292bsOtaG8gc3BvamVuw60gayB6YWppxaF0xJtuw60KemFiZXpwZcSNZW7DrSBhIHNvdWtyb23DrSDDumRhasWvIFDFmcOtamVtY2UgcGxhdGViLgpPdsSbxZllbsOtIGJhbmtvdm7DrWhvIHNwb2plbsOtIGx6ZSBwcm92w6lzdCBuxJtrdGVyw71tCnogdMSbY2h0byB6cMWvc29ixa86CgpCYW5rb3Zuw60gdsO9cGlzIF8gYWt0dcOhbG7DrSB2w71waXMsIG5hIGt0ZXLDqW0gamUgamFzbsSbCnV2ZWRlbm8gxI3DrXNsbyDDusSNdHUgYSBqbcOpbm8gbWFqaXRlbGUgw7rEjXR1LgoKT3bEm8WZZW7DrSBvZCBiYW5reSBfIG8gdGVudG8gZG9waXMgamUgdMWZZWJhIHBvxb7DoWRhdApiYW5rdSBwxZnDrWplbWNlIGEgbXVzw60gdm7Em20gYsO9dCBwb3R2cnplbm8gxI3DrXNsbwrDusSNdHUgYSBqbcOpbm8gbWFqaXRlbGUgw7rEjXR1LgoKUG90dnJ6ZW7DrSBvZCBiYW5reSBfIG8gdGVudG8gZG9waXMgamUgdMWZZWJhIHBvxb7DoWRhdApiYW5rdSBwxZnDrWplbWNlLiBQb3R2cnp1amUgcHJhdm9zdCBiYW5rb3Zuw61obyDDusSNdHUKdsSNZXRuxJsgxI3DrXNsYSDDusSNdHUgYSBqbcOpbmEgbWFqaXRlbGUgw7rEjXR1LgoKU27DrW1layBvYnJhem92a3kgemludGVybmV0b3bDqWhvIGJhbmtvdm5pY3R2w61mClNuw61tZWsgb2JyYXpvdmt5IHBvcnTDoWx1IGludGVybmV0b3bDqWhvCmJhbmtvdm5pY3R2w60gcMWZw61qZW1jZSBzZSB6dsO9cmF6bsSbbsOtcm4gcMWZw61zbHXFoW7DvWNoCsO6ZGFqxa8gbyDDusSNdHUgdsSNZXRuxJsgxI3DrXNsYSDDusSNdHUgYSBqbcOpbmEgbWFqaXRlbGUgw7rEjXR1LgpQb3XFvml0w60gdMOpdG8gbW/Fvm5vc3RpIHbFoWFrIG3Fr8W+ZSB2w6lzdCBrxb7DoWRvc3RpCm8gZG9kYXRlxI1uw6kgb3bEm8WZZW7DrSB2emhsZWRlbSBrIG1vxb5ub3N0aSBmYWzFoW92w6Fuw60KZGlnaXTDoWxuw61jaCBzbsOtbWvFry4KCkplc3RsacW+ZSBzZSDDumRhamUgUMWZw61qZW1jZSBwbGF0ZWIgYsSbaGVtIFN0dWRpZQp6cm7Em27DrSwgc21sdXZuw60gc3RyYW55IHNlIGRvaG9kbHksIMW+ZSBuZWJ1ZG91CnphcG90xZllYsOtIMW+w6FkbsOpIGRvZGF0a3kga3TDqXRvIFNtbG91dsSbLCBwb2t1ZApQxZnDrWplbWNlIHBsYXRlYiBjbyBuZWpkxZnDrXZlIHBvc2t5dG5lIHDDrXNlbW7DqQpvem7DoW1lbsOtIHMgdnlwbG7Em27DvW0gZm9ybXVsw6HFmWVtIEJhbmtvdm7DrSDDumRhamUKKGTDoWxlIOKAnmZvcm11bMOhxZkgQklG4oCcKSBwxZlpbG/FvmVuw71tIGsgdMOpdG8gU21sb3V2xJsKamFrbyBqZWrDrSBQxZnDrWxvaGFaIGF6YcWhbGUgYWt0dWFsaXpvdmFuw70gZm9ybXVsw6HFmQoKU0lGIGFvdsSbxZllbsOtIGJhbmtvdm7DrWhvIHMgbyplbsOtIG5hIHR1dG8gZS0KbWFpbG92b3UgYWRyZXN1OgoKUMWZw61qZW1jZSBwbGF0ZWIgYmVyZSBuYSB2xJtkb23DrSBhcG90dnJ6dWplLCDFvmUKClBhZ2UgMjkgb2Y0NSAvIFN0cmFuYSAyOSB6IDQ1CgpDWiAzLXdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZXIgMjAyNAoKMTguMjUKCjE4LjIuNi4KCjE5LgoKMjAuCgoyMS4KCjIyLgoyMi4xLgoKcmVxdWlyZSBhZGRpdGlvbmFsIGNvbmZpcm1hdGlvbiBmcm9tIHRoZSBQYXllZSwgc3VjaAphcyBhIHBob25lIGNvbnZlcnNhdGlvbiBmb3IgY2xhcmlmaWNhdGlvbi4KCkFsbCBwcm9jZWR1cmVzIG11c3QgYmUgcGVyZm9ybWVkIGluIGZ1bGwgY29tcGxpYW5jZQpXaXRoIHRoZSBQcm90b2NvbCBhbmQgdGhpcyBBZ3JlZW1lbnQsIGFuZCB0aGUgZGF0YQpzdWJtaXR0ZWQgbXVzdCBiZSBjb21wbGV0ZSBhbmQgY29ycmVjdC4gRm9yIGRhdGEgdG8KYmUgY29tcGxldGUgYW5kIGNvcnJlY3QsIGVhY2ggcGF0aWVudCBtdXN0IGhhdmUKc2lnbmVkIGFuIEVD4oCUYXBwcm92ZWQgY29uc2VudCBkb2N1bWVudCBhbmQgYWxsCnByb2NlZHVyZXMgZGVzaWduYXRlZCBpbiB0aGUgUHJvdG9jb2wgbXVzdCBiZQpjYXJyaWVkIG91dCBvbiBhIOKAnGJlc3QgZWZmb3J0c+KAniBiYXNpcy4gT21pc3Npb25zIG11c3QKYmUgc2F0aXNmYWN0b3JpbHkgZVhwbGFpbmVkLgoKSWYgYXBwbGljYWJsZSwgdGhlIHJlcXVpcmVkIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbgooZWcuIGxvZ3MsIHRoaXJkIHBhcnR5IGludm9pY2UsIGV0Yy4pIG11c3QgYmUgcHJvdmlkZWQKV2l0aCB0aGUgaW52b2ljZS4gTGlsbHkgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHJlcXVlc3QKc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uIGZvciBwcmV2aW91c2x5IGNvbXBsZXRlZApwYXltZW50cyBhdCBhbnkgdGltZSAoaSkgZHVyaW5nIHRoZSB0ZXJtIG9mIGFuZCAoaWkpCmZvbGxvd2luZyB0aGUgZXhwaXJhdGlvbiBvciB0ZXJtaW5hdGlvbiBvZiB0aGlzCkFncmVlbWVudC4KCkxpbWl0IG9mIFBhdGllbnQgRW50ZyBvciBFbnJvbGxtZW50OgoKVGhlIEludmVzdGlnYXRvciBXaWxsIHVzZSByZWFzb25hYmxlIGJlc3QgZWZmb3J0cyB0bwppbmNsdWRlIHVwIHRvIDEyIGVucm9sbGVkIHBhdGllbnRzIGluIHRoZSBTdHVkeS4gTGlsbHkKcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIGxpbWl0IG9yIGluY3JlYXNlIHBhdGllbnQKZW50cnkvZW5yb2xsbWVudCBhdCBhbnkgdGltZSwgc3ViaiBlY3QgdG8gcHJpb3Igd3JpdHRlbgpub3RpY2UuIEluIHRoZSBldmVudCBvZiBhIG1vZGlmaWNhdGlvbiB0byB0aGUgbnVtYmVyCm9mIHBhdGllbnRzLCBubyBhbWVuZG1lbnRzIHRvIHRoaXMgQWdyZWVtZW50IHNoYWxsCmJlIHJlcXVpcmVkLiBMaWxseSBXaWxsIHByb3ZpZGUgYSBXcml0dGVuIEFwcHJvdmFsCk5vdGlmaWNhdGlvbiAo4oCcV0FOYWEpIGFzIGFuIGFja25vd2xlZGdtZW50IG9mIHRoZQptb2RpZmljYXRpb24sIGdyYW50aW5nIGFwcHJvdmFsIGZvciBmdXJ0aGVyIENSRi0KYmFzZWQgdmlzaXQgcGF5bWVudHMsIGFkZGl0aW9uYWwgQ1JGLWJhc2VkIHZpc2l0CgpwYXltZW50cywgaW52b2ljZWFibGUgaXRlbXMsIGFuZCBwYXRpZW50CnJlaW1idXJzZW1lbnQgcGF5bWVudHMgdG8gdGhlIFBheWVlLgpDdXJyZW5jeToKCkFsbCBmZWVzIG1lbnRpb25lZCBpbiB0aGlzIEFncmVlbWVudCBhcmUgc3RhdGVkIGluCkN6ZWNoIENyb3duIChDWkspIGN1cnJlbmN5LgoKVkFUOgoKQWxsIGZlZXMgbWVudGlvbmVkIGluIHRoaXMgQWdyZWVtZW50IGFyZSBleGNsdXNpdmUKb2YgVkFULiBBdCB0aGUgdGltZSBvZiBleGVjdXRpb24gb2YgdGhpcyBBZ3JlZW1lbnQsCkVsaSBMaWxseSBDb3JrIExpbWl0ZWQsIENvcmssIElyZWxhbmQgYXMgcmVjaXBpZW50IG9mCkVVIGNyb3NzIGJvcmRlciBzZXJ2aWNlcyBpcyBvYmxpZ2VkIHRvIGFjY291bnQgZm9yClZBVCBvbiBhIHJldmVyc2UgY2hhcmdlIGJhc2lzIChEaXJlY3RpdmUgMjAwOC84LyBFQwphbWVuZGluZyBDb3VuY2lsIERpcmVjdGl2ZSAyMDA2LzExMi9FQykuClRoZXJlZm9yZSwgdGhlIGludm9pY2UgaXNzdWVkIGZvciBmZWVzIG1lbnRpb25lZCBpbgp0aGlzIEFncmVlbWVudCBpcyB0byBpbmNsdWRlIDAlIFZBVC4gSW4gY2FzZSB0aGUKYWJvdmUgVkFUIHJlZ3VsYXRpb24gaXMgbm8gbG9uZ2VyIHZhbGlkLCB0aGUgVkFUCnRheGF0aW9uIHNoYWxsIGZvbGxvdyBhbnkgbGF3cyB2YWxpZCBhbmQgYXBwbGljYWJsZSBhdAp0aGUgdGltZSBvZiBpc3N1aW5nIHRoZSBpbnZvaWNlLgoKSW52b2ljaW5nOgpBbGwgaW52b2ljZXMgc2hhbGwgYmUgaXNzdWVkIHRvOgoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuRzAxLkMwMS5QMDAKClZlcnplOiB6w6HFmcOtIDIwMjQKCnYgcMWZw61wYWTEmyB6bcSbbnkgamVobyB1ZGFqxa8gbcWvxb5lIHNwb2xlxI1ub3N0IExpbGx5CnBvxb5hZG92YXQgayB1cMWZZXNuxJtuw60gZGFsxaHDrSBwb3R2cnplbsOtLApuYXDFmS4gdGVsZWZvbmlja3kuCgpWxaFlY2hueSDDumtvbnkgc3Rhbm92ZW5lIHZQcm90b2tvbHUgbXVzZWrDrSBiw710CnByb3ZlZGVueSBwbG7EmyB2IHNvdWxhZHUgcyBQcm90b2tvbGVtIGEgdG91dG8KU21sb3V2b3UgYXbFoWVjaG55IHDFmWVka2zDoWRhbsOpIHVkYWplIGJ5bHkgw7pwbG7EmwphIHNwcsOhdm7DqS4gQWJ5IGJ5bHkgdWRhamUgw7pwbG7DqSBhIHNwcsOhdm7DqSwgbXVzw60Ka2HFvmTDvSBwYWNpZW50IHBvZGVwc2F0IGZvcm11bMOhxZkgaW5mb3Jtb3ZhbmVobwpzb3VobGFzdSBzY2h2w6FsZW7DvSBFSyBhIHMgdnluYWxvxb5lbsOtbSDigJ5uZWpsZXDFocOtaG8Kw7pzaWzDreKAnCBtdXNlasOtIGLDvXQgcHJvdmVkZW55IHbFoWVjaG55IHBvc3R1cHkKdnnFvmFkb3ZhbsOpIFByb3Rva29sZW0uIFBva3VkIGJ1ZG91IG7Em2t0ZXLDqQpwb3N0dXB5IHZ5bmVjaMOhbnksIGJ1ZGUgdMWZZWJhIGplamljaCB2eW5lY2jDoW7DrQp1c3Bva29qaXbEmyB2eXN2xJt0bGl0LgoKS2Zha3R1xZllIGplIHTFmWViYSBwxZnDrXBhZG7EmyBwxZlpbG/Fvml0IHBvxb5hZG92YW5vdQpkb2t1bWVudGFjaSAobmFwxZkuIHByb3Rva29seSwgZmFrdHVydSB0xZlldMOtIHN0cmFueQphdGQuKS4gU3BvbGXEjW5vc3QgTGlsbHkgc2kgdnlocmF6dWplIHByw6F2byBwb8W+YWRvdmF0CnBvZGtsYWRvdm91IGRva3VtZW50YWNpIHphIGppxb4gcHJvdmVkZW7DqSBwbGF0YnkKa2R5a29saSAoaSkgYsSbaGVtIHRydsOhbsOtIGEgKGlpKSBwbyB1cGx5bnV0w60gcGxhdG5vc3RpCm5lYm8gdWtvbsSNZW7DrSB0ZXRvIFNtbG91dnkuCgpPbWV6ZW7DrSB6YcWZYXpvdsOhbsOtIG5lYm8gbsOhYm9ydSBwYWNpZW50xa86Clprb3XFoWVqw61jw60gdnluYWxvxb7DrSBtYXhpbWFsbsOtIMO6c2lsw60sIGFieSBkbyBTdHVkaWUKemHFmWFkaWwgYcW+IDEyIHBhY2llbnTFry4gU3BvbGXEjW5vc3QgTGlsbHkgc2kgdnlocmF6dWplCnByw6F2byBuYSB6w6FrbGFkxJsgcMWZZWRjaG96w61obyBvem5hbWVuw60gcG/EjWV0CnBhY2llbnTFryBrZHlrb2xpIG9tZXppdCBuZWJvIHp2w73FoWl0LiBWIHDFmcOtcGFkxJsKem3Em255IHBvxI10dSBwYWNpZW50xa8gbmVidWRlIG51dG5lIFNtbG91dnUgbcSbbml0LgpKYWtvIHBvdHZyemVuw60gem3Em255IHphxaFsZSBzcG9sZcSNbm9zdCBMaWxseSBww61zZW1uw6kKb3puw6FtZW7DrSBvIHNjaHbDoWxlbsOtIChXQU4pLCBrdGVyw71tIHZ5asOhZMWZw60Kc291aGxhcyBzIGRhbMWhw61taSBwbGF0YmFtaSB6YSBuw6F2xaF0xJt2eSBuYSB6w6FrbGFkxJsKQ1JGLCBwbGF0YmFtaSB6YSBkYWzFocOtIG7DoXbFoXTEm3Z5IG5hIHrDoWtsYWTEmyBDUkYsCmZha3R1cm92YXRlbG7DvW1pIHBvbG/FvmthbWkgYXZ5cGxhY2Vuw61tIMO6aHJhZApQxZnDrWplbWNpIHBsYXRlYiBwcm8gcGFjaWVudHkuCgogCgpNxJtuYToKClbFoWVjaG55IHBvcGxhdGt5IHYgdGV0byBTbWxvdXbEmyBqc291IHYgbcSbbsSbCsSMZXNrw6Ega29ydW5hIChLxI0pLgoKxb3DoWRuw6kgcG9wbGF0a3kgdiB0ZXRvIFNtbG91dsSbIG5lemFocm51asOtIERQSC4KViBkb2LEmyB1emF2xZllbsOtIHTDqXRvIFNtbG91dnkgamUgc3BvbGXEjW5vc3QgRWxpIExpbGx5CkNvcmsgTGltaXRlZCwgQ29yaywgSXJza28sIGpha28gcMWZw61qZW1jZQpwxZllc2hyYW5pxI1uw61jaCBzbHXFvmViIHYgRVUgcG92aW5uYSDDusSNdG92YXQgRFBIIG5hCnrDoWtsYWTEmyBwxZllbmVzZW7DrSBkYcWIb3bDqSBwb3Zpbm5vc3RpIChzbcSbcm5pY2UKMjAwOC84L0VTLCBrdGVyb3Ugc2UgbcSbbsOtIHNtxJtybmljZSBSYWR5CjIwMDYvMTEyL0VTKS4gRmFrdHVyYSB2eXN0YXZlbmEgemEgcG9wbGF0a3kgcG9kbGUKdMOpdG8gU21sb3V2eSBwcm90byBtdXPDrSBvYnNhaG92YXQgc2F6YnUgRFBIIDAgJS4KUG9rdWQgdsO9xaFlIHptw61uxJtuw70gcMWZZWRwaXMgbyBEUEggamnFviBuZWJ1ZGUKcGxhdG7DvSwgYnVkZSBzZSBEUEggxZnDrWRpdCB6w6Frb25uw71taSBwxZllZHBpc3kKcGxhdG7DvW1pIGEgcMWZw61zbHXFoW7DvW1pIHYgZG9ixJsgdnlzdGF2ZW7DrSBmYWt0dXJ5LgpGYWt0dXJhY2U6CgpGYWt0dXJ5IG11c2Vqw60gYsO9dCB2eXN0YXZlbnkgbmE6CgpQYWdlIDMwIG9mNDUgLyBTdHJhbmEgMzAgeiA0NQoKQ1ogMy1teSBJTlNUIElOViBDVEEgRUwyNC5HT0kuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZXIgMjAyNAoKICAgIAogICAKClAgZWFzZSBpbmNsdWRlClByb3RvY28gJiByYXMgJyB0aGUgU3R1ZHkgU2l0ZQpQdXJlIGFzZSBPcmRlciAo4oCcUE/igJwpCm51bWJlci4gY29tbXJtaWNhdGVkIGFmdGVyIHRoZSBmdWxseSBleGVjdXRlZApjb250cmFjdCBpcyByZWNlaXZlZCBieSBMaWxseS4gaW4gdGhlIHN1YmplY3QgaG5lIG9mIHRoZQplbWFpbC4gRG8gbm90IHNlbmQgaW52b2ljZXMgdmlhIHJlZ3VsYXIgbWFpbC4KCiAgIAoKQ1ogMy13YXkgSU5TVCBJTlYgQ1RBIEVMMjQuR09MQzAxLlAwMApWdXplOiB6w6HFmcOtIDIwMjQKCm91emUgZS1tYWlsZW0gbmE6ClbFmcOhZGt1CgrDumRhamUgYnVkb3UgNSDFvmVueSBzcG9sZcSNbm9zdMOtIExpbGx5IHBvdMOpLiBjbwpvYmRyxb7DrSBwaHLEmyBwb2RlcHNhbm91IFNtbG91dnUuIE5lemFzw61sZWp0ZQpmYWt0dXJ5IGLEm8W+bm91IHBvxaF0b3UuCgogCgoyMy4gUGEgZW50IGVzIGFuZCB0aW1lbGluZXM6IFRteSBwbGF0ZWIgYSBsaMWvdHk6CjIzIC4gMS4gQ1JGIGJhc2VkIHZpc2l0IHBheW1lbnRzIGFuZCBBZGRpdGlvbmFsIENSRiBiYXNlZCBQbGF0YnYgemEgbsOhdsWhdMSbdnUgbmEgesOha2xhZMSbIENSRiBhIERhbMWhw60gbsOhdsWhdMSbdnUKdmlzaXQ6IG5hIHrDoWtsYWTEmyBDUkY6CgpQYXltZW50cyB3aWxsIGJlIG1hZGUgd2l0aGluIDYgd2Vla3MgYcWIZXIgYQpjb21wbGV0ZWQgQ1JGIHZpc2l0LiBBbGwgcGF5bWVudHMgd2lsbCBiZSBtYWRlCmF1dG9tYXRpY2FsbHkgYW5kIHdpbGwgYmUgYmFzZWQgb24gY29tcGxldGVkIHZpc2l0cwplbnRlcmVkIGluIHRoZSBDUkYuIEludm9pY2UgaXMgbm90IHJlcXVpcmVkLiBob3dldmVyLgpzaG91bGQgdGhlcmUgYmUgYSByZWd1bGF0b3J5IDAxJyB0YXgtcmVsYXRlZApyZXF1aXJlcm5lbnQuIHRoZSBQYXllZSBjYW4gc3RpbGwgaXNzdWUgYW4gaW52b2ljZSBhZnRlcgpyZWNlaXZpbmcgdGhlIGNsaW5pY2FsIHJlcm5pdHRhbmNlIGZvcm0gb3IgdGhlCgpwYXltZW50LgoKMjMuMi4gSXRlbXMgcGFpZCBieSBpbnZvaWNlOgpQYXltZW50IGZvciBpbnZvaWNlYWJsZSBpdGVtcyB3aWxsIGJlIGlzc3VlZCB3aXRoaW4KCjQ1IGRheXMgZnJvbSB0aGUgcmVjZWlwdCBvZiBhIHZhbGlkIGludm9pY2UgZm9yIHRoZQppbW1lZGlhdGVseSBwcmVjZWRpbmcgYW5kIGFzIHlldCB1bmJpbGxlZCBwZXJpb2Qgb2YKZWFjaCBjYWxlbmRhciBxdWFydGVyLiBIb3dldmVyLiB0aGUgUGF5ZWUKYWNrbm93bGVkZ2VzIHRoYXQgTGlsbHkgd2lsbCBub3QgYWNjZXB0IG9yIHBheSBhbnkKaW52b2ljZSBkYXRlZCBlYXJsaWVyIHRoYW4gdGhlIEVmZmVjdGl2ZSBEYXRlIG9mIHRoaXMKQWdyZWVtZW50IHBsdXMgMTAgKHRlbikgYnVzaW5lc3MgZGF5cy4gSW52b2ljZXMKZGF0ZWQgcHJpb3IgdG8gdGhpcyB0aW1lZnJhbWUgd2lsbCBiZSByZXR1cm5lZCB0byB0aGUKUGF5ZWUgZm9yIHJl4oCUaW52b2ljaW5nIHdpdGggYSBkYXRlIHRoYXQgZmFsbHMgYWZ0ZXIgdGhpcwpwZXJpb2QuIFBheW1lbnQgZm9yIGludm9pY2VhYmxlIGl0ZW1zIG1heSBiZQpzdWJqZWN0IHRvIGxpbWl0YXRpb25zIGJ5IExpbGx5IG9yIG1heSByZXF1aXJlIGl0cyBwbGlvcgphcHByb3ZhbCBhbmQvb3Igc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uIGFjY29yZGluZwp0byB0aGUgaXRlbSdzIGRlc2NyaXB0aW9uLiBQYXltZW50IGZvciBpdGVtcyB3aXRoCnNwZWNpZmljIHRpbWVmcmFtZXMgKGVnLi4geWVhcmx5IGZlZXMuIHF1YXJ0ZXJseSBmZWVzLgpldGMuKSAoYSkgYXBwbGllcyBmcm9tIHRoZSBFZmZlY3RpdmUgRGF0ZSBvZiB0aGlzCkFncmVlbWVudC4gcmF0aGVyIHRoYW4gYmVpbmcgYmFzZWQgb24gdGhlIGNhbGVuZGFyCnllYXI6IGFuZCAoYikgbWF5IGJlIHByb210ZWQgaWYgdGhlIGZ1bGwgdGltZWZyYW1lCmhhcyBub3QgYmVlbiBzZXJ2aWNlZCBieSB0aGUgUGF5ZWUuCgoyMy4zLiBDbGluaWNhbCBUcmlhbCBTdWJqZWN0IFJlaW1idXJzZW1lbnRzOgpBbGwgY2xpbmljYWwgdHJpYWwgc3ViamVjdCByZWltYnVyc2VtZW50cyB3aWxsIGJlCgptYW5hZ2VkIGJ5IGEgdGhpcmTigJRwYXJ0eSB2ZW5kb3IgY29udHJhY3RlZCBieSBMaWxseS4KVGhlIEluc3RpdHV0aW9uIGFuZC9vciB0aGUgUHJpbmNpcGFsIEludmVzdGlnYXRvciB3aWxsCmJlIHJlc3BvbnNpYmxlIGZvciBhZG1pbmlzdHJhdGl2ZSB0YXNrcyByZWxhdGVkIHRvIHRoZQpyZWltYnVyc2VtZW50IG9ubHkuCgpQbGF0YnkgYnVkb3UgcHJvdmVkZW55IGRvIDZ0w71kbsWvIHBvIHphZMOhbsOtCm7DoXbFoXTEm3Z5IGRvIGZvcm11bMOhxZllIENSRi4gVsWhZWNobnkgcGxhdGJ5IGJ1ZG91CnByb3bDoWTEm255IGF1dG9tYXRpY2t5IGFidWRvdSB2eWNow6F6ZXQKenVza3V0ZcSNbsSbbsO9Y2ggbsOhdsWhdMSbdiB6YWRhbsO9Y2ggdmUgZm9ybXVsw6HFmWkKQ1JGLiBGYWt0dXJhIG5lbsOtIG51dG7DoS4gYWxlIHBva3VkIGppIHZ5xb5hZHVqw60Ka29udHJvaGzDrSDDusWZYWR5IG5lYm8gZGHFiG92w6kgcMWZZWRwaXN5LiBtxa/FvmUKUMOtcidqZW1jZSBwbGF0ZWIgdnlzdGF2aXQgZmFrdHVydSBpcG8gZG9ydcSNZW7DrQpmb3JtdWzDocWZZSBrbGluaWNrw6kgw7pocmFkeSBuZWJvIHNhbW90bsOpIHBsYXRieS4KClBvbG96ZyBocmF6ZW7DqSBuYSB6w6FrbGFkxJsgdGFraW5nOgpQbGF0YmEgemEgZmFrdHVyb3ZhdGVobGUnIHBvbG/Fvmt5IGJ1ZGUgcHJvdmVkZW5hIGRvCgo0NSBkbsWvIG9kIG9iZHLFvmVuw60gcGxhdG7DqSBmYWt0dXJ5IHphIGJlenByb3N0xZllZG7Emwp1cGx5bnVsw6kgYSBkb3N1ZCB1ZWZha3R1cm92YW7DqSBvYmRvYsOtIFbFvmR5Cmthxb5kw6lobyBrYWxlbmTDoW3DrWhvIMSNdHZydGxldMOtLiBQxZnDrWplbWNlIHBsYXRlYiBhbGUKYmVyZSBuYSB2xJtkb23DrS4gxb5lIHNwb2xlxI1ub3N0IExpbGx5IG5lcMWZaWptZQphbmV1aHJhZMOtIGZha3R1cnUgc2Rpw612xI1qxaHDrW0gZGF0ZW0gbmXFviBkZW4Kw7rEjWlubm9zdGkgdMOpdG8gU21sb3V2eSBwbHVzIDEwIChkZXNldCkgcHJhY292bsOtY2gKZG7Fry4gRmFrdHVyeSBkYXRvdmFuw6kgcMWZZWQgdMOtbXRvIGRhdGVtIGJ1ZG91CnZyw6FjZW55IFDFmcOtamVtY2kgcGxhdGViIG5hIG9wcmF2dSBzIGRhdGVtLiBrdGVyw6kKc3BhZMOhIGRvIG9iZG9iw60gcG8gdXZlZGVuw6ltIGRhdHUuIFBsYXRiYSB6YQpmYWt0bHUnb3ZhdGVobGUnIHBvbG/Fvmt5IG3Fr8W+ZSBwb2Rsw6loYXQgb21lemVuw61tIHplCnN0cmFueSBzcG9sZcSNbm9zdGkgTGlsbHkgbmVibyBtxa/FvmUgdnnFvmFkb3ZhdCBqZWrDrQpwxZllZGNob3rDrSBzY2h2w6FsZW7DrSBhL25lYm8gcG9ka2xhZHkgcG9kbGUgcG9waXN1CnBvbG/Fvmt5LiBQbGF0YmEgemEgcG9sb8W+a3kgc2UgenZsw6HFoXRuw60gxI1hc292b3UKbGjFr3RvdSAobmFwxZkuIHJvxI1uw60gcG9wbGF0a3kuIMSNdHZydGxldG7DrSBwb3BsYXRreSBhdGQuKQooYSkgc2UgcG/EjcOtdMOhIHBvZGxlIERhdGEgw7rEjWlubm9zdGkgdMOpdG8gU21sb3V2eS4Kbmlrb2xpIHphIGthbGVuZMOhxZluw60gcm9rLCBhIChiKSBtxa/FvmUgYsO9dCBwb23Em3JuxJsKcMWZZXBvxI3DrXTDoW5hLiBwb2t1ZCBQxZnDrWplbWNlIHBsYXRlYiBuZXBvc2t5dG92YWwKc2x1xb5ieSBwbyBjZWzDqSBkYW7DqSBvYmRvYsOtLgoKTsOhaHJhZGEgdsO9ZGFpxa8gc3ViaWVrdMWvbSBrbGluaWNrw6lobyBob2Rub2NlbsOtOgpWZcWha2Vyw6kgw7pocmFkeSB2w71kYWrFryBzdWJqZWt0xa9tIGtsaW5pY2vDqWhvCmhvZG5vY2Vuw60gYnVkZSB2eXBsw6FjZXQgZXh0ZXJuw60gZG9kYXZhdGVsLiBzZQprdGVyw71tIHNwb2xlxI1ub3N0IExpbGx5IHV6YXbFmWVsYSBzbWxvdXZ1LgpaZHJhdm90bmlja8OpIHphxZnDrXplbsOtIE1uZWJvIEhsYXZuw60gemtvdcWhZWrDrWPDrQpidWRvdSBvZHBvdsSbZG7DrSBwb3V6ZSB6YSBhZG1pbmlzdHJhdGl2bsOtIMO6a29ueQpzb3V2aXNlasOtY8OtIHMgw7pocmFkb3UuCgpQYWdlIDMxIG9mNDUgLyBTdHJhbmEgMzEgMjQ1CgpDWiAzLVdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJzaW9uOiBTZXB0ZW1iZTEnMjAyNAoKMjQuCgoyNS4KCjI2LgoKRmluYWwgcGF5bWVudDoKRmluYWwgcGF5bWVudCBXaWxsIGJlIG1hZGUgYnkgTGlsbHkgdG8gdGhlIFBheWVlCgpXaGVuIGFsbCBwYXRpZW50cyBhdCB0aGUgU3R1ZHkgU2l0ZSBoYXZlIGNvbXBsZXRlZAp0aGUgU3R1ZHkgYW5kIHVwb24gZjExMWExIGFjY2VwdGFuY2UgYnkgTGlsbHkgb2YgYWxsCkNSRnMgcGFnZXMsIGFsbCBkYXRhIGNsYXJpZnJjYXRpb25zIGlzc3VlZCwgdGhlIHJlY2VpcHQKYW5kIGFwcHJvdmFsIG9mIGFueSBvdXRzdGFuZGluZyByZWd1bGF0b3J5CmRvY3VtZW50cyBhcyByZXF1aXJlZCBieSBMaWxseSwgdGhlIHJldHVybiBvZiBhbGwKdW51c2VkIHN1cHBsaWVzIHRvIExpbGx5LCBhbmQgdXBvbiBzYXRpc2ZhY3Rpb24gb2YgYWxsCm90aGVyIGFwcGxpY2FibGUgY29uZGl0aW9ucyBzZXQgZm9ydGggaW4gdGhpcwpBZ3JlZW1lbnQuCgpQYXllZSBzaGFsbCB1c2UgdGhlaXIgYmVzdCBlZmZvcnRzIHRvIHN1Ym1pdCBhbGwgU3R1ZHkKcmVsYXRlZCBwYXltZW50IHJlcXVlc3RzIHRvIExpbGx5IFdpdGhpbiBzaXggKDYpCm1vbnRocyBvZiBkYXRhYmFzZSBsb2NrLiBQYXllZXMgdW5kZXJzdGFuZCB0aGF0IGFueQpwYXltZW50IHJlcXVlc3RzIHN1Ym1pdHRlZCBtb3JlIHRoYW4gNTEzOyAoNikKbW9udGhzIGFmdGVyIGRhdGFiYXNlIGxvY2sgbWF5IGJlIGRlbmllZCBieSBMaWxseS4KCkV4Y2x1c2l2ZSBDb21wZW5zYXRpb24gU291cmNlOgpJdCBpcyBleHBlY3RlZCB0aGF0IGZvciBhbGwgaXRlbXMgcmVxdWlyZWQgdW5kZXIgdGhlCgpQcm90b2NvbCBmb3Igd2hpY2ggTGlsbHkgaGFzIGFncmVlZCB0byBwcm92aWRlCmNvbXBlbnNhdGlvbiwgTGlsbHkgV2lsbCBiZSB0aGUgc29sZSBzb3VyY2Ugb2YKY29tcGVuc2F0aW9uLiBQYXllZSBXaWxsIG5vdCBzZWVrIHBheW1lbnQgZnJvbSBhbnkKdGhpcmQtcGFydHkgcGF5b3IsIFdoZXRoZXIgcHVibGljIG9yIHByaXZhdGUsIGZvciBhbnkKY29zdHMgY292ZXJlZCBieSBwYXltZW50cyBtYWRlIGJ5IExpbGx5IHVuZGVyIHRoaXMKQWdyZWVtZW50LgoKRXhjZXNzIFBheW1lbnQgYW5kIERpc3B1dGUgUmVzb2x1dGlvbjoKCklmIGFueSBwYXltZW50cyBleGNlZWQgdGhlIGFtb3VudCBvd2VkIGZvciB3b3JrCnBlcmZvcm1lZCB1bmRlciB0aGUgUHJvdG9jb2wgYW5kIG9yIHRoaXMgQWdyZWVtZW50LApQYXllZSBzaGFsbCByZXR1cm4gdGhlIGV4Y2VzcyBiYWxhbmNlIHRvIExpbGx5LgpNYXR0ZXJzIGluIGRpc3B1dGUgc2hhbGwgYmUgcGF5YWJsZSB1cG9uIG11dHVhbApyZXNvbHV0aW9uIG9mIHN1Y2ggZGlzcHV0ZS4gRnVuZHMgc2hvdWxkIGJlIHJldHVybmVkCnRvIExpbGx2J3MgYmFuayBhY2NvdW50CgpDWiAzLVdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMApWZXJ6ZTogesOhxZnDrSAyMDI0Cgpaw6F2xJtyZcSNbsOhIHBsYXRiYToKClrDoXbEm3JlxI1ub3UgcGxhdGJhIHVocmFkw60gc3BvbGXEjW5vc3QgTGlsbHkgUMWZw61qZW1jaQpwbGF0ZWIsIGpha21pbGUgdsWhaWNobmkgcGFjaWVudGkgdmhoJ3N0xJsgcHJvdsOhZMSbbsOtCmtsaW5pY2vDqWhvIGhvZG5vY2Vuw60gZG9rb27EjcOtIFN0dWRpaSwgYXBvCmtvbmXEjW7DqW0gcMWZaWpldMOtIHbFoWVjaCBzdHLDoW5layBDUkYgc3BvbGXEjW5vc3TDrQpMaWxseSwgcG8gdnlkw6Fuw60gdsWhZWNoIG9iamFzbsSbbsOtIMO6ZGFqxa8sIHDFmWlqZXTDrQphIHNjaHbDoWxlbsOtIHZlxaFrZXLDvWNoIG5ldnnFmcOtemVuw71jaCBkb2t1bWVudMWvIHBybwprb250cm9sbsOtIMO6xZlhZHksIGphayB0byB2ecW+YWR1amUgc3BvbGXEjW5vc3QgTGlsbHksCnZyw6FjZW7DrSB2ZcWha2Vyw6lobyBuZXZ5dcW+aXTDqWhvIG1hdGVyacOhbHUgc3BvbGXEjW5vc3RpCkxpbGx5IGEgcG8gc3BsbsSbbsOtIHbFoWVjaCBkYWzFocOtY2ggcMWZw61zbHXFoW7DvWNoCnBvZG3DrW5layBzdGFub3ZlbsO9Y2ggdmUgU21sb3V2xJsuCgpQxZnDrWplbWNlIHBsYXRlYiB2eW5hbG/FvsOtIHN2w6kgbmVqbGVwxaHDrSDDunNpbMOtIG5hIHphc2zDoW7DrQp2xaFlY2ggxb7DoWRvc3TDrSBvIHBsYXRieSBzb3V2aXNlasOtY8OtIHNlIFN0dWRpw60Kc3BvbGXEjW5vc3RpIExpbGx5IGRvIMWhZXN0aSAoNikgbcSbc8OtY8WvIG9kIHV6YW3EjWVuw60KZGF0YWLDoXplLiBQxZnDrWplbWNlIHBsYXRlYiBzaSBqZSB2xJtkb20sIMW+ZSBqYWvDqWtvbGkKxb7DoWRvc3RpIG8gcGxhdGJ5IHphc2xhbsOpIHBvemTEm2ppIG5lxb4gxaFlc3QgKDYpIG3Em3PDrWPFrwpvZCB1emFtxI1lbsOtIGRhdGFiw6F6ZSBtxa/FvmUgc3BvbGXEjW5vc3QgTGlsbHkKemFtw610bm91dC4KClbDvWhyYWRuw60gemRyb2ogw7pocmFkOgoKWmEgdmXFoWtlcsOpIHNsdcW+YnkgcG/FvmFkb3ZhbsOpIHBvZGxlIFByb3Rva29sdSwgemEKbsSbxb4gc2Ugc3BvbGXEjW5vc3QgTGlsbHkgemF2w6F6YWxhIHBvc2t5dG5vdXQgw7pocmFkdSwKYnVkZSBwcm92w6FkxJt0IHBsYXRieSB2w71ocmFkbsSbIHNwb2xlxI1ub3N0IExpbGx5LgpQxZnDrWplbWNlIHBsYXRlYiBuZWJ1ZGUgdnnFvmFkb3ZhdCBwbGF0YnUgb2Qgxb7DoWRuw6kKdMWZZXTDrSBzdHJhbnksIGHFpSBqacW+IHZlxZllam7DqSBuZWJvIHNvdWtyb23DqSwgemEgamFrw6lrb2xpCnbDvWRhamUga3J5dMOpIHBsYXRiYW1pIG9kIHNwb2xlxI1ub3N0aSBMaWxseSBwb2RsZSB0w6l0bwpTbWxvdXZ5LgoKUMWZZXBsYXRrdiBhIMWZZcWhZW7DrSBzcG9yxa86CgpQb2t1ZCBwbGF0YnkgcMWZZXbDvcWhw60gxI3DoXN0a3Ugc3BsYXRub3UgemEgcHLDoWNpCnByb3ZlZGVub3UgcG9kbGUgUHJvdG9rb2x1IGEgbmVibyB0w6l0byBTbWxvdXZ5LApQxZnDrWplbWNlIHBsYXRlYiBiZXpvZGtsYWRuxJsgdnLDoXTDrSBwxZllcGxhdGVrCnNwb2xlxI1ub3N0aSBMaWxseS4gU3Bvcm7DqSBwbGF0YnkgYnVkb3Ugc3BsYXRuw6kgcG8KdnnFmWXFoWVuw60gc3BvcnUgZG9ob2RvdS4gRmluYW7EjW7DrSBwcm9zdMWZZWRreSBidWRvdQoKdnLDoWNlbnkgbmEgw7rEjWV0IHMgb2xlxI1ub3N0aSBMaWxseQrEjS4gXwoKUGFnZSAzMiBvZjQ1IC8gU3RyYW5hIDMyIHogNDUKCkNaIMWh4oCUd2F2IElOU1QgSU5WICggQSBFTEotbCBHT0kgQ09JIFAwMCAnIFZJTlNUIElOViBDVEEgRUwzNCBHT0kgQ0dJIFBPTwpWZXJzaW9uIFNlcHRlbWJlciBdIDE0CgpcJ2hpYml0IEIgXyBCdWRnZXQgUMWZw61sb2hhIEIgXyBSb3pwb8SNZXQKClBhZ2UgMzMgb2Y0NSAvIFN0cmFuYSAzMyB6IDQ1CgogCgpDWiDFoeKAlHdhdiBJTlNUIElOViAoIEEgRUxKLWwgR09JIENPSSBQMDAgJyBWSU5TVCBJTlYgQ1RBIEVMMzQgR09JIENHSSBQT08KVmVyc2lvbiBTZXB0ZW1iZXIgXSAxNAoKUGFnZSAzNCBvZjQ1IC8gU3RyYW5hIDM0IHogNDUKCiAKCklOU1QgSU5WIENUQSBFTDI0LiAuQ09JIC5QT08KU2VwdGVtYmVyIDIgMjQKClBhZ2UgMzUgbmY0NSAvIFN0cmFuYSAzNSB6IDQ1CgogCgpJTlNUIElOViBDVEEgRUwyNC4gLkNPSSAuUE9PClNlcHRlbWJlciAyIDI0CgpQYWdlIDM2IG5mLUlTIC8gU3RyYW5hIDM2IHogNDUKCiAKCklOU1QgSU5WIENUQSBFTDI0LiAuQ09JIC5QT08KU2VwdGVtYmVyIDIgMjQKClBhZ2UgM+KAnCBuZjQ1IC8gU3RyYW5hIDPigJwgeiA0NQoKIAoKSU5TVCBJTlYgQ1RBIEVMMjQuIC5DT0kgLlBPTwpTZXB0ZW1iZXIgMiAyNAoKUGFnZSAzOCBuZi1JUyAvIFN0cmFuYSAzOCB6IDQ1CgogCgpDWiDFoeKAlHdhdiBJTlNUIElOViAoIEEgRUxKLWwgR09JIENPSSBQMDAgJyBWSU5TVCBJTlYgQ1RBIEVMSeKAlHQgR09JIENHSSBQT08KVmVyc2lvbiBTZXB0ZW1iZXIgXSAxNAoKUGFnZSAzOSBvZjQ1IC8gU3RyYW5hIDM5IHogNDUKCiAKCklOU1QgSU5WIENUQSBFTDI0LiAuQ09JIC5QT08KU2VwdGVtYmUxJzIgMjQKClBhZ2UgNDAgbmY0NSAvIFN0cmFuYSA0MDIgNDUKCiAKCkNaIDMtV2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnNpb246IFNlcHRlbWJlciAyMDI0CgpBcHBlbmRpeCAxIOKAlCBTdXBwbGllciBJbmZvcm1hdGlvbiBGb3JtKHMpCgpQcm92aWRlZCBzZXBhcmF0ZWx5CgpBcHBlbmRpeCAyIOKAlCBCYW5rIEluZm9ybWF0aW9uIEZvcm0KClByb3ZpZGVkIHNlcGFyYXRlbHkKCkNaIDMtV2F5IElOU1QgSU5WIENUQSBFTDI0LkcwMS5DMDEuUDAwClZlcnplOiB6w6HFmcOtIDIwMjQKClDFmcOtbG9oYSAxIOKAlCBGb3JtdWzDocWZIGluZm9ybWFjw60gZG9kYXZhdGVsZQoKUG9za3l0dWplIHNlIHNhbW9zdGF0bsSbCgpQxZnDrWxvaGEgMiDigJQgRm9ybXVsw6HFmSBCYW5rb3Zuw60gw7pkYWplCgpQb3NreXR1amUgc2Ugc2Ftb3N0YXRuxJsKClBhZ2UgNDEgb2Y0NSAvIFN0cmFuYSA0MSB6IDQ1CgpDWiAzLXdheSBJTlNUIEhcVFYgQ1RBIEVMMjQgR29sIENPSVBPTyBDWiAzLXdheSBXU1QgSU5WIENUQSBFTDI0LkdPSS5DMDEgUDAwClZlcnNpb246IFNlcHRlbWJlciAyMDI0IFZlcnplOiB6w6HFmcOtIDIwMjQKCkFwcGVuZGl4IDMgKiBMaXN0IG9mIEVxdWlwbWVudCBQxZlub2hhIDMgNCBTZXpuYW0gdnliYXZlbsOtCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgrigJQgUGFnZSA0MiBvZjQ1IC8gU3VtIDQyIHogNDUKCkNaIDMtXFwnYXkgSU5TVCBJTlYgQ1RBIEVMMjQgR29sIENHSSBQT08gQ1ogMy1cXCdhX3YgSU5TVCBJTlYgQ1RBIEVMTSAoMzAxICgnMDEgUE9PClZlcnNpb24gU2VwdGVtYmVyIDIwMjQgVmVyemUgesOhxZnDrSAzMDI0CgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgogCgoiV00KClBhZ2UgNDMgb2Y0NSAvIFN0cmFuYSA0MyB6IDQ1CgpDWiAzLXdheSBJTlNUIEhcVFYgQ1RBIEVMMjQgR29sIENPSVBPTyBDWiAzLXdheSBXU1QgSU5WIENUQSBFTDI0LkdPSS5DMDEgUDAwClZlcnNpb246IFNlcHRlbWJlciAyMDI0IFZlcnplOiB6w6HFmcOtIDIwMjQKCiAKCiAKCiAKCiAKCiAKCiAKCuKAlCBQYWdldW9tcyAvIFN1bW1hCgpDWiAzLVdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMCBDWiAzLVdheSBJTlNUIElOViBDVEEgRUwyNC5HMDEuQzAxLlAwMAoKVmVyc2lvbjogU2VwdGVtYmVyIDIwMjQgVmVyemU6IHrDocWZw60gMjAyNApBcHBlbmRpeCA0IOKAlCBTdGFuZGFyZCBQxZnDrWxvaGEgNCDigJQgU3RhbmRhcmRuw60KQ29udHJhY3R1YWwgQ2xhdXNlcyBzbWx1dm7DrSBkb2xvxb5reQoK4oCUIFBhZ2UgNDUgb2Y0NSAvIFN0cmFuYSA0NSB6IDQ1CgogCgogCgogCgomKQoKYikKCkMpCgpkKQoKU1RBTkRBUkQgQ09OVFJBQ1RVQUwgQ0xBVVNFUyBTVEFOREFSRE7DjSBTTUxVVk7DjSBET0xPxb1LWQoKTW9kdWw0CgpNb2R1bCA0ClRyYW5zZmVyIGZyb20gcHJvY2Vzc29yIHRvIGNvbnRyb2xsZXIKClDFmWVkw6Fuw60gb2QgenByYWNvdmF0ZWxlIHNwcsOhdmNpCgpTRUNUSU9OIEkgLApPRERJTCBJCkNsYXVzZSAxCkRvbG/FvmthIDEKUHVycG9zZSBhbmQgc2NvcGUgXwpVxI1lbCBhIG9ibGFzdCBwxa9zb2Jub3N0aQoKVGhlIHB1cnBvc2Ugb2Z0aGVzZSBzdGFuZGFyZCBjb250cmFjdHVhbCBjbGF1c2VzIGlzIF8KdG8gZW5zdXJlIGNvbXBsaWFuY2Ugd2l0aCB0aGUgcmVxdWlyZW1lbnRzIG9mIGEpIFXEjWVsZW0gdMSbY2h0byBzdGFuZGFyZG7DrWNoIHNtbHV2bsOtY2ggZG9sb8W+ZWsgamUKUmVndWxhdGlvbiAoRVUpIDIwMTYvNjc5IG9mIHRoZSBFdXJvcGVhbiB6YWppc3RpdCBkb2Ryxb5vdsOhbsOtIHBvxb5hZGF2a8WvIHV2ZWRlbsO9Y2ggdiBuYcWZw616ZW7DrQoKXyBfIF8gRXZyb3Bza8OpaG8gcGFybGFtZW50dSBhIFJhZHkgKEVVKSAyMDE2LzYxNzkgemUgZG5lClBhcmxsYW1lbnQgYW5kIG9mdGhlIENvdW5tbCBvZjI3QXByfHwgMjAxNiBvbiB0aGUgMjcuIGR1Ym5hIDIwMTYgbyBvY2hyYW7EmyBmeXppY2vDvWNoIG9zb2IgdiBzb3V2aXNsb3N0aQoKcHJvdGVjdGlvbiBPZiBuYXR1cmFsIHBlcnNvbnMgV2l0aCByZWdhcmQgdG8gdGhlIHNlIHpwcmFjb3bDoW7DrW0gb3NvYm7DrWNoIMO6ZGFqxa8gYSBvIHZvbG7DqW0gcG9oeWJ1CnByb2Nlc3Npbmcgb2YgcGVyc29uYWwgZGF0YSBhbmQgb24gdGhlIGZyZWUgdMSbY2h0byDDumRhasWvIChvYmVjbsOpIG5hxZnDrXplbsOtIG8gb2NocmFuxJsgw7pkYWrFrykgKDEpLAptb3ZlbWVudCBvZiBzdWNoIGRhdGEgKEdlbmVyYWwgRGF0YSBQcm90ZWN0aW9uIHBva3VkamRlIG8gcMWZZWTDoXbDoW7DrW9zb2Juw61laCDDumRhasWvIGRvIHTFmWV0w616ZW3Emy4KClJlZ3VsYXRpb24pbGZvciB0aGUgdHJhbnNmZXIgb2YgcGVyc29uYWwgZGF0YSB0byBhIGIpCgp0aGlyZCBjb3VudHJ5LgpUaGUgUGFydGllczogaSkgZnl6aWNrw6EgbmVibyBwcsOhdm5pY2vDoSBvc29iYSDEjWkgb3NvYnksIG9yZ8OhbiDEjWkgb3Jnw6FueQp2ZcWZZWpuw6kgbW9jaSwgYWdlbnR1cmEgxI1pIGFnZW50dXJ5IG5lYm8gamluw70Kc3ViamVrdCDEjWkgamluw6kgc3ViamVrdHkgKGTDoWxlIGplbiDigJ5zdWJqZWt0IiDEjWkKYXV0aG9yaXR5L2llcywgYWdlbmV5L2llcyBPZiBvdGhlciBiT2RWL8ONR1Mg4oCec3ViamVrdHkiKSBwxZllZMOhdmFqw61lw60gb3NvYm7DrSDDumRhamUsIHV2ZWRlbsOpIHYKKGhlcmVpbmFmdGVyICdlbnRpdHkvaWVzJykgdHJhbnNmZXJyaW5nIHRoZSBwxZnDrWxvemUgSSDEjcOhc3RpIEEgKGTDoWxlamVuIOKAnnbDvXZvemNlIMO6ZGFqxa8iKSwgYQoKcGVyc29uYWwgZGF0YSwgYXMgbGlzdGVkIGluIEFubmV4IEkuQQooaGVyZWluYWZ0ZXIgZWFjaCAnZGF0YSBleHBvcnRlcicpLCBhbmQKClN0cmFueToKCmkpIHRoZSBuYXR1cmFsIG9yIGxlZ2FsIHBlcnNvbihzKSwgcHVibGljCgppaSkgc3ViamVrdCDEjWkgc3ViamVrdHkgdmUgdMWZZXTDrSB6ZW1pLCBwxZlpasOtbWFqw61jw60gcMWZw61tbwpuZWJvIG5lcMWZw61tbyBwcm9zdMWZZWRuaWN0dsOtbSBqaW7DqWhvIHN1Ympla3R1LAoK4oCcKSB0aGUgZW50aXR5L2llc2luYXRoaXJkIGNvdW50cnkgcmVlZWl2aW5ndGhlIGplbsW+IGplIHJvdm7Em8W+IHN0cmFub3UgdMSbY2h0byBkb2xvxb5laywgb3NvYm7DrQpwZXJzb25hbCBkYXRhIGZyb20gdGhlIGRhdGEgZXhwb3J0ZXIsIMO6ZGFqZSBvZCB2w712b3pjZSDDumRhasWvLCB1dmVkZW7DqSB2IHDFmcOtbG96ZSBJIMSNw6FzdGkgQQpkaXJlY3RseSBvciBpbmRpcmVjdGx5IHZpYSBhbm90aGVyIGVudGl0eSBhbHNvIChkw6FsZWplbiDigJ5kT1ZPWkNHIMO6ZGFqxa8iKSwKClBhcnR5IHRvIHRoZXNlIENsYXVzZXMsIDM1IGxpc3RlZCBpbiBBbm5leCAnQSBzZSBkb2hvZGx5IG5hIHTEm2NodG8gc3RhbmRhcmRuw61jaCBzbWx1dm7DrWNoIGRvbG/FvmvDoWNoIChkw6FsZSBqZW4KKGhlcmVpbmFmdGVyIGVhY2ggJ2RhdGEgaW1wb3J0ZXInKSDigJ5kb2xvxb5reSIpLgpoYXZlIGFncmVlZCB0byB0aGVzZSBzdGFuZGFyZCBjb250cmFjdHVhbCBjbGF1c2VzCi0gLiwgPiBjIG8gMDAyIHNlIG91em4gc28gZWVtIG5hIHJlIGF2YW0KKGhlcmVsbmFmdGVyLiBDbGF1c2VzICkuIFQgZCB8IHZreSBQIHlpaiwgaGwgZCBQViBkICcgJyAsCgpvc29ibsOtY2ggw7pkYWrFryBwb2RsZSBwxZnDrWxvaHkgSSDEjcOhc3RpIEIuCgogCgpkKSBEb2RhdGVrIGt0xJttdG8gZG9sb8W+a8OhbSBvYnNhaHVqIMOtcMWZw61sb2h5LCBuYSBuxJvFvgoKc2UgdnTEm2VodG8gZG9sb8W+a8OhZWggb2Qga2F6dWplLCB0dm/FmcOtIG5lZMOtbG5vdSBzb3XEjcOhc3QKcGVyc29uYWwgZGF0YSBhcyBzcGVjaWZpZWQgaW4gQW5uZXggSS5CLiB0xJtjaHRvIGRvbG/FvmVrLgoKVGhlc2UgQ2xhdXNlcyBhcHBseSB3aXRoIHJlc3BlY3QgdG8gdGhlIHRyYW5zZmVyIG9mCgpUaGUgQXBwZW5kaXggdG8gdGhlc2UgQ2xhdXNlcyBjb250YWluaW5nIHRoZQpBbm5leGVzIHJlZmVycmVkIHRvIHRoZXJlaW4gZm9ybXMgYW4gaW50ZWdyYWwgcGFydApvZnRoZXNlIENsYXVzZXMsCgpEb2xvxb5rYSAyCkNsYXVzZSAyCgrDmiIgayAnIHQgZCBJICcgawpFZmZlY3QgYW5kIGludmFyaWFiaWxpdHYgb2YgdGhlIGNsYXVzZXMgbW5lIGEgbmVtZW5ub3MgbyBvemUKCiAKCiAKCiAKCldoZXJlIHRoZSBkYXRhIGV4cG9ydGVyIGlzIGEgcHJvY2Vzc29yIHN1YmplY3QgdG8gUmVndWxhdGlvbiAoRVUpIDIwMTYvNjc5IGFjdGluZyBvbiBiZWhhbGYgb2YgYSBVbmlvbiBpbnN0aXR1dGlvbiBvciBib2R5IDM1IGNvbnRyb2xsZXIsCnJlbGlhbmNlIG9uIHRoZXNlIGNsYXVzZXMgd2hlbiBlbmdhZ2luZyBhbm90aGVyIHByb2Nlc3NvciAoc3VicnByb2Nlc3NpbmcpIG5vdCBzdWJqZWN0IHRvIFJlZ3VsYXRpb24gKEVVKSAyMDE2LzY3OSBhbHNvIGVuc3VyZXMKY29tcGxpYW5jZSB3aXRoIEFydGljbGUgMjkoNCkgb2YgUmVndWxhdGlvbiAoRVUpIDIwMTgvMTcyNSBvZiB0aGUgRXVyb3BlYW4gUGFybGlhbWVudCBhbmQgb2YgdGhlIENvdW5jaWwgb2YgMjMgT2N0b2JlciAyMDE4IG9uIHRoZQpwcm90ZWN0aW9uIG9mIG5hdHVyYWwgcGVyc29ucyB3aXRoIHJlZ2FyZCB0byB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIGJ5IHRoZSBVbmlvbiBpbnN0aXR1dGlvbnMsIGJvZGllcywgb2ZmaWNlcyBhbmQgYWdlbmNpZXMgYW5kIG9uCnRoZSBmcmVlIG1vdmVtZW50IG9mIHN1Y2ggZGF0YSwgYW5kIHJlcGVhbGluZyBSZWd1bGF0aW9uIChFQykgTm8gNDUvMjAwMSBhbmQgRGVjaXNpb24gTm8gMTI0Ny8yMDAyL0VDIChPSiBMIDI5NSBvZiAyMS4xMS4yMDE4LCBwLgozOSksIHRvIHRoZSBleHRlbnQgdGhlc2UgY2xhdXNlcyBhbmQgdGhlIGRhdGEgcHJvdGVjdGlvbiBvYmxpZ2F0aW9ucyBhcyBzZXQgb3V0IGluIHRoZSBjb250cmFjdCBvciBvdGhlciBsZWdhbCBhY3QgYmV0d2VlbiB0aGUgY29udHJvbGxlcgphbmQgdGhlIHByb2Nlc3NvciBwdXJzdWFudCB0b0FydGljSWUgMjkoMykgb2YgUmVndWxhdGlvbiAoRVUpIDIwMTgvMTcyNSBhcmUgYWxpZ25lZC4gVGhpcyB3aWxsIGluIHBhcnRpY3VsYXIgYmUgdGhlIGNhc2Ugd2hlcmUgdGhlIGNvbnRyb2xsZXIKYW5kIHByb2Nlc3NvciByZWx5IG9uIHRoZSBzdGFuZGFyZCBjb250cmFjdHVhbCBjbGF1c2VzIGluY2x1ZGVkIGluIERlY2lzaW9uLiAyMDIxLzkxNS8gKDEpLyBQb2t1ZCBqZSB2w712b3pjZW0gw7pkYWrFryB6cHJhY292YXRlbCwgbmEKbsSbasW+IFNlIHZ6dGFodWplIG5hxZnDrXplbsOtIChFVSkgMjAxNS8xNTc5IGEga3RlcsO9IGplZG7DoSBqbcOpbmVtIG9yZ8OhbnUgbmVibyA1dWJqZWt0dSBVbmllIGpha28gU3Byw6F2Y2UsIFNwb2zDqWjDum7DrSA1OSBuYSB0eXRvIGRvbG/Fvmt5IHDFmWkKenVwbmplbsOtamluw6lobiB6cHJhY292YXRlbGUgKGTDrWzEjcOtenBydWNudsO6bsOtKSwgbmEga3RlcsOpaG8gNTkgbmHFmcOtemVuw60gKEVVKSAyMDE1LzU3OSBuZXZ6dGFodWplLCByb3ZuxJvFviB6YWppxaHFpXVqZSBTb3VsYWQgNSDEjGwuIDI5IDBkNXQuIDQKbmHFmcOtemVuw60gRXZyMHA1a8OpaG4gcGFybGFtZW50dSBhIFJhZHkgKEVVKSAyMDE4LzE3MjUgemUgZG5lIDIzLiDFmcOtam51IDIwMTggbyBvY2hyYW7EmyBmeXppY2vDvWNoIDA1MDIpIHYgNTB1dmk1LzA1dGkgU2UgenByYWNvdsOhbsOtbQpvbWJtJ2NoIMO6ZGFqxa8gb3Jnw6FueSwgaW41dGl0dWNlbWkgdWppbsO9bWkgNXViamVrdHkgVW5pZSwgYSBvIHZvbG7DqW0gcG9oeWJ1IHTEm2NodG8gw7pkYWrFryB1IDAxcnXFoWVuw61udcWZw616ZW7DrShFJCkgxIwuIDQ1LzIwMDEgYSByb3pob2RudXTDrQoxMjQ3LzIwMDIvRVMgKMOaxZkuIHbEmzV0LiBMIDI5NSB6ZSBkbmUgMjEuMTEuMjAxOCwgNS4gMzkpLCB2IG16bWh1LCB2bsSbbcW+am11IHR5dG8gZG9sb8W+a3kgdXBtL2lubW50aSB0w71rYWrDrWPDrW0gb2NocmFueSDDumRhasWvIFN0YW5vdmVuw6kKdmUgNW1sbnV2xJsgbmVibmppbsOpbSBwcsOhdm7DrW0gYWt0dSBtZXppNXByw7p2Y2VtIHUgenByYWNvdmF0ZWxlbSBwb2RsZSDEjGwuIDI5IDBkNXQuIDMgbnXFmcOtemVuw60oRVUpIDIwMTgvMTcyNSBTbGFkxJtueS4gVG8gYnVkZSB6ZWptw6luYQpwxZnDrXBhZCwga2R5IFNlIFNwcsOhdmNlIHUgenByYWNvdmF0ZWwgU3BvbMOpaHVqw60gbnUgNXR1bmR1cmRuw601bWx1dm7DrSBkb2xvxb5reSBuYm3FvmVuw6kgdiByb3pob2RudXTDrSAyMDIxLzkxNS4KCjEKCiAKCiAKCiAKCmIpCgpiKQoKYSkKCmIpCgpUaGVzZSBDbGF1c2VzIHNldCBvdXQgYXBwcm9wcmlhdGUgc2FmZWd1YXJkcywKaW5jbHVkaW5nIGVuZm9yY2VhYmxlIGRhdGEgc3ViamVjdCByaWdodHMgYW5kCmVmZmVjdGl2ZSBsZWdhbCByZW1lZGllcywgcHVyc3VhbnQgdG8gQXJ0aWNsZSA0NigxKQphbmQgQXJ0aWNsZSA0NigyKShjKSBvZiBSZWd1bGF0aW9uIChFVSkgMjAxNi82NzkKYW5kLCB3aXRoIHJlc3BlY3QgdG8gZGF0YSB0cmFuc2ZlcnMgZnJvbSBjb250cm9sbGVycwp0byBwcm9jZXNzb3JzIGFuZC9vciBwcm9jZXNzb3JzIHRvIHByb2Nlc3NvcnMsCnN0YW5kYXJkIGNvbnRyYWN0dWFsIGNsYXVzZXMgcHVyc3VhbnQgdG8gQXJ0aWNsZQoyOCg3KSBvZiBSZWd1bGF0aW9uIChFVSkgMjAxNi82NzksIHByb3ZpZGVkIHRoZXkKYXJlIG5vdCBtb2RpZmllZCwgZXhjZXB0IHRvIHNlbGVjdCB0aGUgYXBwcm9wcmlhdGUKTW9kdWxlKHMpIG9yIHRvIGFkZCBvciB1cGRhdGUgaW5mb3JtYXRpb24gaW4gdGhlCkFwcGVuZGl4LiBUaGlzIGRvZXMgbm90IHByZXZlbnQgdGhlIFBhcnRpZXMgZnJvbQppbmNsdWRpbmd0aGVzdGFuZGFyZCBjb250cmFjdHVhbGNsYXVzZXNsYWlkIGRvd24KaW4gdGhlc2UgQ2xhdXNlcyBpbiBhIHdpZGVyIGNvbnRyYWN0IGFuZC9vciB0byBhZGQKb3RoZXIgY2xhdXNlcyBvciBhZGRpdGlvbmFsIHNhZmVndWFyZHMsIHByb3ZpZGVkCnRoYXQgdGhleSBkbyBub3QgY29udHJhZGljdCwgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSwKdGhlc2UgQ2xhdXNlcyBvciBwcmVqdWRpY2UgdGhlIGZ1bmRhbWVudGFsIHJpZ2h0cyBvcgpmcmVlZG9tcyBvZiBkYXRhIHN1YmplY3RzLgoKVGhlc2UgQ2xhdXNlcyBhcmUgd2l0aG91dCBwcmVqdWRpY2UgdG8gb2JsaWdhdGlvbnMKdG8gd2hpY2ggdGhlIGRhdGEgZXhwb3J0ZXIgaXMgc3ViamVjdCBieSB2aXJ0dWUgb2YKUmVndWxhdGlvbiAoRVUpIDIwMTYvNjc5LgoKQ2xhdXNlIDMKVGhpcmQtcGFydHYgYmVuZWZpY2lhcmllcwoKRGF0YSBzdWJqZWN0cyBtYXkgaW52b2tlIGFuZCBlbmZvcmNlIHRoZXNlCkNsYXVzZXMsIGFzIHRoaXJkLXBhcnR5IGJlbmVmaWNpYXJpZXMsIGFnYWluc3QgdGhlCmRhdGEgZXhwb3J0ZXIgYW5kL29yIGRhdGEgaW1wb3J0ZXIsIHdpdGggdGhlCmZvbGxvd2luZ2V4Y2VwdGlvbnM6CgppKSBDbGF1c2UgMSwgQ2xhdXNlIDIsIENsYXVzZSAzLCBDbGF1c2UgNiwgQ2xhdXNlCjc7CgppaSkgQ2xhdXNlIDgxMTMsIGFuZCBDbGF1c2UgOC4zLjEzOwoKaWlpKSBDbGF1c2UgMTMKCml2KSBDbGF1c2UgMTUxIGMpLCBkKSBhbmQgZSk7Cgp2KSBDbGF1c2UgMTYoZSkKCnZpKSBDbGF1c2UgMTgKClBhcmFncmFwaCAoMykgaXMgd2l0aG91dCBwcmVqdWRpY2UgdG8gcmlnaHRzIG9mIGRhdGEKc3ViamVjdHMgdW5kZXIgUmVndWxhdGlvbiAoRVUpIDIwMTYvNjc5LgoKQ2xhdXNlIDQKSW50ZXJwcmV0YXRpb24KCldoZXJlIHRoZXNlIENsYXVzZXMgdXNlIHRlcm1zIHRoYXQgYXJlIGRlZmluZWQgaW4KUmVndWxhdGlvbiAoRVUpIDIwMTYvNjc5LCB0aG9zZSB0ZXJtcyBzaGFsbCBoYXZlCnRoZSBzYW1lIG1lYW5pbmcgYXMgaW4gdGhhdCBSZWd1bGF0aW9uLgoKVGhlc2UgQ2xhdXNlcyBzaGFsbCBiZSByZWFkIGFuZCBpbnRlcnByZXRlZCBpbiB0aGUKbGlnaHQgb2Z0aGUgcHJvdmlzaW9ucyBvZiBSZWd1bGF0aW9uIChFVSkgMjAxNi82NzkuCgogCgomKQoKYikKCmIpCgpkKQoKVHl0byBkb2xvxb5reSBzdGFub3bDrSB2aG9kbsOpIHrDoXJ1a3ksIHbEjWV0bsSbCnZ5bWFoYXRlbG7DvWNoIHByw6F2IHN1Ympla3R1IMO6ZGFqxa8gYSDDusSNaW5uw6kgcHLDoXZuw60Kb2NocmFueSwgcG9kbGUgxI1sLiA0NiBvZHN0LiAxIGEgxI1sLiA0NiBvZHN0LiAyIHDDrXNtLiBjKQpuYcWZw616ZW7DrSAoRVUpIDIwMTYvNjc5IGEgcyBvaGxlZGVtIG5hIHDFmWVkw6F2w6Fuw60Kw7pkYWrFryBvZCBzcHLDoXZjxa8genByYWNvdmF0ZWzFr20gYS9uZWJvIG9kCnpwcmFjb3ZhdGVsxa8genByYWNvdmF0ZWzFr20sIHN0YW5kYXJkbsOtIHNtbHV2bsOtCmRvbG/Fvmt5IHBvZGxlIMSNbC4gMjggb2RzdC4gNyBuYcWZw616ZW7DrSAoRVUpIDIwMTYvNjc5LApwb2t1ZCBuZWJ1ZG91IHptxJtuxJtueSwgcyB2w71qaW1rb3UgdsO9YsSbcnUKdmhvZG7DqWhvIG1vZHV8dSh2aG9kbsO9Y2ggbW9kdWzFryluZWJvemEgw7rEjWVsZW0KcMWZaWTDoW7DrSBuZWJvIGFrdHVhbGl6YWNlIGluZm9ybWFjw60gdiBkb2RhdGt1LiBUbwpzbWx1dm7DrW0gc3RyYW7DoW0gbmVicsOhbsOtIHYgdG9tLCBhYnkgemFocm51bHkKc3RhbmRhcmRuw60gc21sdXZuw60gZG9sb8W+a3kgc3Rhbm92ZW7DqSB2IHTEm2NodG8KZG9sb8W+a8OhY2ggZG8gxaFpcsWhw60gc21sb3V2eSBhL25lYm8gcMWZaWRhbHkgZGFsxaHDrQpkb2xvxb5reSBuZWJvIGRvZGF0ZcSNbsOpIHrDoXJ1a3ksIHBva3VkIG5lYnVkb3UKcMWZw61tbyBuZWJvIG5lcMWZw61tbyB2IHJvenBvcnUgcyB0xJttaXRvIGRvbG/FvmthbWkKbmVibyBuZWJ1ZG91IGRvdMSNZW5hIHrDoWtsYWRuw60gcHLDoXZhIG5lYm8gc3ZvYm9keQpzdWJqZWt0xa8gw7pkYWrFry4KClTEm21pdG8gZG9sb8W+a2FtaSBuZWpzb3UgZG90xI1lbnkgcG92aW5ub3N0aSwga3RlcsOpIHNlCnZ6dGFodWrDrSBuYSB2w712b3pjZSDDumRhasWvIG5hIHrDoWtsYWTEmyBuYcWZw616ZW7DrSAoRVUpCjIwMTYvNjc5LgoKRG9sb8W+a2EgMwpPcHLDoXZuxJtuw6kgdMWZZXTDrSBzdHJhbnkKClN1Ympla3R5IMO6ZGFqxa8gc2UgbW9ob3UgamFrbyBvcHLDoXZuxJtuw6kgdMWZZXTDrSBzdHJhbnkKdmUgdnp0YWh1IGsgdsO9dm96Y2kgYS9uZWJvIGRvdm96Y2kgw7pkYWrFryBkb3ZvbMOhdmF0CnTEm2NodG8gZG9sb8W+ZWsgYSB2eW3DoWhhdCBqZSwgYSB0byBzIG7DoXNsZWR1asOtY8OtbWkKdsO9amlta2FtaToKCmkpIGRvbG/FvmthIDEsIGRvbG/FvmthIDIsIGRvbG/FvmthIDMsIGRvbG/FvmthIDYsCmRvbG/FvmthIDc7CgppaSkgZG9sb8W+a2EgOCDigJQgbW9kdWwgMTogZG9sb8W+a2EgODUgcMOtc20uIGUpIGEKZG9sb8W+a2EgODkgcMOtc20uIGIpOyBtb2R1bCAyOiBkb2xvxb5rYSA4LjEKcMOtc20uIGIpLGRvbG/FvmthIDguOSBww61zbS5hKSxjKSxkKSBhIGUpOyBtb2R1bAozOiBkb2xvxb5rYSA4LjEgcMOtc20uIGEpLCBjKSBhIGQpIGEgZG9sb8W+a2EgODkKcMOtc20uIGEpLCBjKSwgZCksIGUpLCBmKSAzIGcpOyBtb2R1bCA0OiBkb2xvxb5rYSA4MQpww61zbS4gYikgYSBkb2xvxb5rYSA4MyBww61zbS4gYik7CgppaWkpIGRvbG/FvmthIDkg4oCUIG1vZHV8MjFkb2xvxb5rYSA5IHDDrXNtLiBhKSwgYyksIGQpCmEgZSk7IG1vZHVsIDM6IGRvbG/FvmthIDkgcMOtc20uIGEpLCBjKSwgZCkgYSBlKTsKCml2KSBkb2xvxb5rYSAxMiDigJQgbW9kdWwgMTogZG9sb8W+a2EgMTIgcMOtc21hKSBhIGQpOwptb2R1bHkgMiBhIDM6IGRvbG/FvmthIDEyIHDDrXNtLiBhKSwgZCkgYSBmKTsKCnYpIGRvbG/FvmthIDEzOwoKdmkpIGRvbG/FvmthIDE1MSBww61zbS4gYyksZCkgYSBlKTsKCnZpaSkgZG9sb8W+a2EgMTYgcMOtc20uIGUpOwoKdmlpaSkgZG9sb8W+a2EgMTjigJQgbW9kdWx5IDEsIDIgYSAzOiBkb2xvxb5rYSAxOCBww61zbS4KYSkgYSBiKTsgbW9kdWwgNDogZG9sb8W+a2EgMTguCgpQw61zbWVuZW0gYSkgbmVqc291IGRvdMSNZW5hIHByw6F2YSBzdWJqZWt0xa8gw7pkYWrFryBwb2RsZQpuYcWZw616ZW7DrSAoRVUpIDIwMTYvNjc5LgoKRG9sb8W+a2EgNApWw71rbGFkClBva3VkIHR5dG8gZG9sb8W+a3kgcG91xb7DrXZhasOtIHBvam15LCBrdGVyw6kganNvdQp2eW1lemVueSB2IG5hxZnDrXplbsOtIChFVSkgMjAxNi82NzksIG1hasOtdHl0byBwb2pteQpzdGVqbsO9IHbDvXpuYW0gamFrbyB2IHV2ZWRlbsOpbSBuYcWZw616ZW7DrS4KVHl0byBkb2xvxb5reSBqZSB0xZllYmEgxI3DrXN0IGEgdnlrbMOhZGF0IHMgb2hsZWRlbSBuYQp1c3Rhbm92ZW7DrSBuYcWZw616ZW7DrShFVSkgMjAxNi82NzkuCgogCgogCgogCgogCgogCgpjKSBUaGVzZSBDbGF1c2VzIHNoYWxsIG5vdCBiZSBpbnRlcnByZXRlZCBpbiBhIHdheSB0aGF0CmNvbmZsaWN0cyB3aXRoIHJpZ2h0cyBhbmQgb2JsaWdhdGlvbnMgcHJvdmlkZWQgZm9yIGluClJlZ3VsYXRpb24gKEVVKSAyMDE2LzY3OS4KCkNsYXVzZSA1CkhpZXJhcmNodgoKSW4gdGhlIGV2ZW50IG9mIGEgY29udHJhZGljdGlvbiBiZXR3ZWVuIHRoZXNlIENsYXVzZXMgYW5kCnRoZSBwcm92aXNpb25zIG9mIHJlbGF0ZWQgYWdyZWVtZW50cyBiZXR3ZWVuIHRoZSBQYXJ0aWVzLApleGlzdGluZyBhdHRoZSB0aW1lIHRoZXNlIENsYXVzZXMgYXJlIGFncmVlZCBvciBlbnRlcmVkIGludG8KdGhlcmVhZnRlciwgdGhlc2UgQ2xhdXNlcyBzaGFsbCBwcmV2YWlsLgoKQ2xhdXNlIDYKRGVzY3JpcHRpb24gb2YgdGhlIHRyYW5zZmVyKHMpCgpUaGUgZGV0YWlscyBvZiB0aGUgdHJhbnNmZXIocyksIGFuZCBpbiBwYXJ0aWN1bGFyIHRoZSBjYXRlZ29yaWVzCm9mIHBlcnNvbmFsIGRhdGEgdGhhdCBhcmUgdHJhbnNmZXJyZWQgYW5kIHRoZSBwdXJwb3NlKDUpIGZvcgp3aGljaCB0aGV5IGFyZSB0cmFuc2ZlcnJlZCwgYXJlIHNwZWNpZmllZCBpbiBBbm5leCBJLkIKCkNsYXVzZSA3IOKAlCBPcHRpb25hbApEb2NraW5nIGNsYXVzZQoKYSkgQW4gZW50aXR5IHRoYXQgaXMgbm90IGEgUGFydHkgdG8gdGhlc2UgQ2xhdXNlcyBtYXksCndpdGggdGhlIGFncmVlbWVudCBvZiB0aGUgUGFydGllcywgYWNjZWRlIHRvIHRoZXNlCkNsYXVzZXMgYXQgYW55IHRpbWUsIGVpdGhlciBhcyBhIGRhdGEgZXhwb3J0ZXIgb3IgYXMgYQpkYXRhIGltcG9ydGVyLCBieSBjb21wbGV0aW5nIHRoZSBBcHBlbmRpeCBhbmQKc2lnbmluZyBBbm5leCBJLkEuCgpiKSBPbmNlIGl0IGhhcyBjb21wbGV0ZWQgdGhlIEFwcGVuZGl4IGFuZCBzaWduZWQKQW5uZXggSS5BLCB0aGUgYWNjZWRpbmcgZW50aXR5IHNoYWxsIGJlY29tZSBhIFBhcnR5CnRvIHRoZXNlIENsYXVzZXMgYW5kIGhhdmUgdGhlIHJpZ2h0cyBhbmQgb2JsaWdhdGlvbnMKb2YgYSBkYXRhIGV4cG9ydGVyIG9yIGRhdGEgaW1wb3J0ZXIgaW4gYWNjb3JkYW5jZQp3aXRoIGl0cyBkZXNpZ25hdGlvbiBpbiBBbm5leCBJLkEuCgpvKSBUaGUgYWNjZWRpbmcgZW50aXR5IHNoYWxsIGhhdmUgbm8gcmlnaHRzIG9yCgpvYmxpZ2F0aW9ucyBhcmlzaW5nIHVuZGVyIHRoZXNlIENsYXVzZXMgZnJvbSB0aGUKCnBlcmlvZCBwcmlvciB0byBiZWNvbWluZyBhIFBhcnR5LgoKU0VDVElPTiBJSSDigJQKT0JMSUdBVElPTlMgT0YgVEhFIFBBUlRJRVMKCkNsYXVzZSA4CkRhdGEgcHJvdGVjdGlvbiBzYWZlZ3VhcmRzCgpUaGUgZGF0YSBleHBvcnRlciB3YXJyYW50cyB0aGF0IGl0IGhhcyB1c2VkIHJlYXNvbmFibGUKZWZmb3J0cyB0byBkZXRlcm1pbmUgdGhhdCB0aGUgZGF0YSBpbXBvcnRlciBpcyBhYmxlLCB0aHJvdWdoCnRoZSBpbXBsZW1lbnRhdGlvbiBvZiBhcHByb3ByaWF0ZSB0ZWNobmljYWwgYW5kCm9yZ2FuaXNhdGlvbmFsIG1lYXN1cmVzLCB0byBzYXRpc2Z5IGl0cyBvYmxpZ2F0aW9ucyB1bmRlcgp0aGVzZSBDbGF1c2VzLgoKOC4xLiBJbnN0cnVjdGlvbnMKCmEpIFRoZSBkYXRhIGV4cG9ydGVyIHNoYWxsIHByb2Nlc3MgdGhlIHBlcnNvbmFsIGRhdGEKb25seSBvbiBkb2N1bWVudGVkIGluc3RydWN0aW9ucyBmcm9tIHRoZSBkYXRhCmltcG9ydGVyIGFjdGluZyBhcyBpdHMgY29udHJvbGxlci4KCmIpIFRoZSBkYXRhIGV4cG9ydGVyIHNoYWxsIGltbWVkaWF0ZWx5IGluZm9ybSB0aGUgZGF0YQppbXBvcnRlciBpZiBpdCBpcyB1bmFibGUgdG8gZm9sbG93IHRob3NlIGluc3RydWN0aW9ucywKaW5jbHVkaW5nIGlmIHN1Y2ggaW5zdHJ1Y3Rpb25zIGluZnJpbmdlIFJlZ3VsYXRpb24KKEVVKSAyMDE2LzY3OSBvciBvdGhlciBVbmlvbiBvciBNZW1iZXIgU3RhdGUgZGF0YQpwcm90ZWN0aW9uIGxhdy4KCiAKCsONKSBUeXRvIGRvbG/Fvmt5IG5lYnVkb3UgdnlrbMOhZMOhbnkgxb7DoWRuw71tIHpwxa9zb2JlbSwKa3RlcsO9IGJ5IGJ5bCB2IHJvenBvcnUgcyBwcsOhdnkgYSBwb3Zpbm5vc3RtaQpzdGFub3ZlbsO9bWkgdiBuYcWZw616ZW7DrSAoRVUpIDIwMTYvNjc5LgoKRG9sb8W+a2EgNQpIaWVyYXJjaGllCgpWIHDFmcOtcGFkxJsgcm96cG9ydSBtZXppIHTEm21pdG8gZG9sb8W+a2FtaSBhIHVzdGFub3ZlbsOtbWkKc291dmlzZWrDrWPDrWNoIGRvaG9kIG1lemkgc3RyYW5hbWksIGt0ZXJlIGV4aXN0b3ZhbHkgdiBkb2LEmwpzamVkbsOhbsOtIHTEm2NodG8gZG9sb8W+ZWssIG5lYm8ga3RlcsOpIGJ5bHkgdXphdsWZZW55IGHFviBwbwpqZWppY2ggc2plZG7DoW7DrSwgbWFqw610eXRvIGRvbG/Fvmt5IHDFmWVkbm9zdC4KCkRvbG/FvmthIDYKUG9waXMgcMWZZWTDoXbDoW7DrQpQb2Ryb2Jub3N0aSB0w71rYWrDrWPDrSBzZSBwxZllZMOhdsOhbsOtLCB6ZWptZW5hIGthdGVnb3JpZQpvc29ibsOtY2ggw7pkYWrFrywga3RlcmVqc291IHDFmWVkw6F2w6FueSwgYSDDusSNZWwgbmVibyDDusSNZWx5LCBwcm8Ka3RlcmVqc291IHDFmWVkw6F2w6FueSxqc291IHV2ZWRlbnkgdiBwxZnDrWxvemUgSSDEjcOhc3RpIEIuCgpEb2xvxb5rYSA3IOKAlCB2b2xpdGVsbsOhCkRvbG/FvmthIG8gcMWZaXN0b3VwZW7DrQoKYSkgU3ViamVrdCwga3RlcsO9IG5lbsOtIHN0cmFub3UgdMSbY2h0byBkb2xvxb5laywgbcWvxb5lIHNlCnNvdWhsYXNlbSBzdHJhbiBrdMSbbXRvIGRvbG/FvmvDoW0ga2R5a29saSBwxZlpc3RvdXBpdCwKYnVkJ2pha28gdsO9dm96Y2Ugw7pkYWrFrywgbmVib2pha28gZG92b3pjZSDDumRhasWvLCBhIHRvCnZ5cGxuxJtuw61tIGRvZGF0a3UgYSBwb2RlcHPDoW7DrW0gcMWZw61sb2h5IEkgxI3DoXN0aSBBLgoKYikgUG90w6ksIGNvIHDFmWlzdHVwdWrDrWPDrXN1Ympla3QgdnlwbG7DrSBkb2RhdGVrIGEgcG9kZXDDrcWhZQpwxZnDrWxvaHUgScSNw6FzdCBBLCBzdGFuZSBzZSBzdHJhbm91IHTEm2NodG8gZG9sb8W+ZWsgYSBtw6EKcHLDoXZhIGEgcG92aW5ub3N0aSB2w712b3pjZSDDumRhasWvIG5lYm8gZG92b3pjZSDDumRhasWvCnYgc291bGFkdSBzZSBzdsO9bSB1csSNZW7DrW0gdiBwxZnDrWxvemUgSSDEjcOhc3RpIEEuCgpDXSBQxZlpc3R1cHVqw61jw60gc3ViamVrdCBuZW3DoSDFvsOhZG7DoSBwcsOhdmEgYW5pIHBvdmlubm9zdGkKbmEgesOha2xhZMSbIHTEm2NodG8gZG9sb8W+ZWsgcGx5bm91Y8OtIHogb2Jkb2LDrSBwxZllZCB0w61tLApuZcW+IHNlIHN0YWwgc3RyYW5vdS4KCk9ERMONTCB8fApQb3Ztbm9zbiBTVFJBTgoKRG9sb8W+a2EgOApaw6Fta3kgb2NocmFueSDDumRhasWvCgpWw712b3pjZSDDumRhasWvIHphcnXEjXVqZSwgxb5lIHZ5bmFsb8W+aWwgcMWZaW3Em8WZZW7DqSDDunNpbMOtLCBhYnkKbW9obCBzdGFub3ZpdCwgemRhIGplIGRvdm96Y2Ugw7pkYWrFryBzY2hvcGVuIOKAlCB6YXZlZGVuw61tCnZob2Ruw71jaCB0ZWNobmlja8O9Y2ggYSBvcmdhbml6YcSNbsOtY2ggb3BhdMWZZW7DrSDigJQgcGxuaXQgc3bDqQpwb3Zpbm5vc3RpIHBvZGxlIHTEm2NodG8gZG9sb8W+ZWsuCgo4LjEuIFBva3lueQoKYSkgVsO9dm96Y2Ugw7pkYWrFryB6cHJhY292w6F2w6Egb3NvYm7DrSDDumRhamUgcG91emUKbmEgesOha2xhZMSbIGRvbG/FvmVuw71jaCBwb2t5bsWvIG9kIGRvdm96Y2UKw7pkYWrFrywga3RlcsO9amVkbsOhIGpha29qZWhvIHNwcsOhdmNlLgoKYikgVsO9dm96Y2Ugw7pkYWrFryBuZXByb2RsZW7EmyBpbmZvcm11amUgZG92b3pjZQrDumRhasWvLCBwb2t1ZCBuZW7DrSBzY2hvcGVuIHR5dG8gcG9reW55CmRvZHLFvm92YXQsIHbEjWV0bsSbIHDFmcOtcGFkxa8sIGtkeSB0eXRvIHBva3lueQpwb3J1xaF1asOtIG5hxZnDrXplbsOtIChFVSkgMjAxNi82NzkgbmVibyBqaW7DqQpwcsOhdm7DrSBwxZllZHBpc3kgVW5pZSBuZWJvIMSNbGVuc2vDqWhvIHN0w6F0dSB2Cm9ibGFzdGkgb2NocmFueSDDumRhasWvLgoKQ10gRG92b3pjZSDDumRhasWvIHNlIHpkcsW+w60gcMWZaWrDrW3DoW7DrSBqYWvDvWNoa29saQoKIAoKIAoKIAoKIAoKIAoKZCkKClRoZSBkYXRhIGltcG9ydGVyIHNoYWxsIHJlZnJhaW4gZnJvbSBhbnkgYWN0aW9uIHRoYXQKd291bGQgcHJldmVudCB0aGUgZGF0YSBleHBvcnRlciBmcm9tIGZ1bGZpbGxpbmcgaXRzCm9ibGlnYXRpb25zIHVuZGVyIFJlZ3VsYXRpb24gKEVVKSAyMDE2LzY3OSwKaW5jbHVkaW5nIGluIHRoZSBjb250ZXh0IG9mIHN1Yi1wcm9lZXNzaW5nIG9yIGFzCnJlZ2FyZHMgY29vcGVyYXRpb24gd2l0aCBjb21wZXRlbnQgc3VwZXJ2aXNvcnkKYXV0aG9yaXRpZXMuCgpBZnRlciB0aGUgZW5kIG9mIHRoZSBwcm92aXNpb24gb2YgdGhlIHByb2Nlc3NpbmcKc2VydmljZXMsIHRoZSBkYXRhIGV4cG9ydGVyIHNoYWxsLCBhdCB0aGUgY2hvaWNlIG9mdGhlCmRhdGEgaW1wb3J0ZXIsIGRlbGV0ZSBhbGwgcGVyc29uYWwgZGF0YSBwcm9jZXNzZWQgb24KYmVoYWxmIG9mIHRoZSBkYXRhIGltcG9ydGVyIGFuZCBjZXJ0aWZ5IHRvIHRoZSBkYXRhCmltcG9ydGVyIHRoYXQgaXQgaGFzIGRvbmUgc28sIG9yIHJldHVybiB0byB0aGUgZGF0YQppbXBvcnRlciBhbGwgcGVyc29uYWwgZGF0YSBwcm9jZXNzZWQgb24gaXRzIGJlaGFsZgphbmQgZGVsZXRlIGV4aXN0aW5nIGNvcGllcy4KCjguMi4gU2VjdXJpdHkgb2YgcHJvY2Vzc2luZwoKJikKCmIpCgpDKQoKVGhlIFBhcnRpZXMgc2hhbGwgaW1wbGVtZW50IGFwcHJvcHJpYXRlIHRlY2huaWNhbAphbmQgb3JnYW5pc2F0aW9uYWwgbWVhc3VyZXMgdG8gZW5zdXJlIHRoZSBzZWN1cml0eQpvZiB0aGUgZGF0YSwgaW5jbHVkaW5nIGR1cmluZyB0cmFuc21pc3Npb24sIGFuZApwcm90ZWN0aW9uIGFnYWluc3QgYSBicmVhY2ggb2Ygc2VjdXJpdHkgbGVhZGluZyB0bwphZWNpZGVudGFsIG9yIHVubGF3ZnVsIGRlc3RydWN0aW9uLCBsb3NzLCBhbHRlcmF0aW9uLAp1bmF1dGhvcmlzZWQgZGlzY2xvc3VyZSBvciBhY2Nlc3MgKGhlcmVpbmFmdGVyCidwZXJzb25hbCBkYXRhIGJyZWFjaCcpLiB8biBhc3Nlc3NpbmcgdGhlIGFwcHJvcHJpYXRlCmxldmVsIG9mIHNlY3VyaXR5LCB0aGV5IHNoYWxsIHRha2UgZHVlIGFjY291bnQgb2YgdGhlCnN0YXRlIG9mIHRoZSBhcnQsIHRoZSBjb3N0cyBvZiBpbXBsZW1lbnRhdGlvbiwgdGhlCm5hdHVyZSBvZiB0aGUgcGVyc29uYWwgZGF0YSAoNyApLCB0aGUgbmF0dXJlLCBzY29wZSwKY29udGV4dCBhbmQgcHVycG9zZSg1KSBvZiBwcm9jZXNzaW5nIGFuZCB0aGUgcmlza3MKaW52b2x2ZWQgaW4gdGhlIHByb2Nlc3NpbmcgZm9yIHRoZSBkYXRhIHN1YmplY3RzLCBhbmQKaW4gcGFydGljdWxhciBjb25zaWRlciBoYXZpbmcgcmVlb3Vyc2UgdG8gZW5jcnlwdGlvbgpvciBwc2V1ZG9ueW1pc2F0aW9uLCBpbmNsdWRpbmcgZHVyaW5nCnRyYW5zbWlzc2lvbiwgd2hlcmUgdGhlIHB1cnBvc2Ugb2YgcHJvY2Vzc2luZyBjYW4KYmUgZnVsZmlsbGVkIGluIHRoYXQgbWFubmVyLgoKVGhlIGRhdGEgZXhwb3J0ZXIgc2hhbGwgYXNzaXN0IHRoZSBkYXRhIGltcG9ydGVyIGluCmVuc3VyaW5nIGFwcHJvcHJpYXRlIHNlY3VyaXR5IG9mIHRoZSBkYXRhIGluCmFjY29yZGFuY2Ugd2l0aCBwYXJhZ3JhcGggKDMpLCBJbiBlYXNlIG9mYSBwZXJzb25hbApkYXRhIGJyZWFjaCBlb25jZXJuaW5ndGhlIHBlcnNvbmFsIGRhdGEgcHJvY2Vzc2VkCmJ5IHRoZSBkYXRhIGV4cG9ydGVyIHVuZGVyIHRoZXNlIENsYXVzZXMsIHRoZSBkYXRhCmV4cG9ydGVyIHNoYWxsIG5vdGlmeSB0aGUgZGF0YSBpbXBvcnRlciB3aXRob3V0CnVuZHVlIGRlbGF5IGFmdGVyIGJlY29taW5nIGF3YXJlIG9mIGl0IGFuZCBhc3Npc3QKdGhlIGRhdGEgaW1wb3J0ZXIgaW4gYWRkcmVzc2luZyB0aGUgYnJlYWNoLgoKVGhlIGRhdGEgZXhwb3J0ZXIgc2hhbGwgZW5zdXJlIHRoYXQgcGVyc29ucwphdXRob3Jpc2VkIHRvIHByb2Nlc3MgdGhlIHBlcnNvbmFsIGRhdGEgaGF2ZQpjb21taXR0ZWQgdGhlbXNlbHZlcyB0byBjb25maWRlbnRpYWxpdHkgb3IgYXJlCnVuZGVyIGFuIGFwcHJvcHJpYXRlIFN0YXR1dG9yeSBvYmxpZ2F0aW9uIG9mCmNvbmZpZGVudGlhbGl0eS4KCjguMy4gRG9jdW1lbnRhdGlvbiBhbmQgY29tcGxpYW5jZQoKYSkKCmIpCgpUaGUgUGFydGllcyBzaGFsbCBiZSBhYmxlIHRvIGRlbW9uc3RyYXRlIGNvbXBsaWFuY2UKd2l0aCB0aGVzZSBDbGF1c2VzLAoKVGhlIGRhdGEgZXhwb3J0ZXIgc2hhbGwgbWFrZSBhdmFpbGFibGUgdG8gdGhlIGRhdGEKaW1wb3J0ZXIgYWxsIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSB0byBkZW1vbnN0cmF0ZQoKIAoKb3BhdMWZZW7DrSwga3RlcsOhIGJ5IHbDvXZvemNpIMO6ZGFqxa8gYnLDoW5pbGEgdiBwbG7Em27DrQpqZWhvIHBvdmlubm9zdMOtIHBvZGxlIG5hxZnDrXplbsOtIChFVSkgMjAxNi82NzksCm1pbW8gamluw6kgdiBrb250ZXh0dSBkw61sxI3DrWhvIHpwcmFjb3bDoW7DrSwgbmVibwpwb2t1ZCBzZSBqZWRuw6EgbyBzcG9sdXByw6FjaSBzIHDFmcOtc2x1xaFuw71taQpkb3pvcm92w71taSDDusWZYWR5LgoKZCkgUG8gc2tvbsSNZW7DrSBwb3NreXRvdsOhbsOtIHpwcmFjb3ZhdGVsc2vDvWNoCnNsdcW+ZWIgdsO9dm96Y2Ugw7pkYWrFryB2IHNvdWxhZHUgcyB2b2xib3UKZG92b3pjZSDDumRhasWvIHZ5bWHFvmUgdsWhZWNobnkgb3NvYm7DrSDDumRhamUKenByYWNvdsOhdmFuw6lqbcOpbmVtIGRvdm96Y2Ugw7pkYWrFryBhIHBvdHZyZMOtCmRvdm96Y2kgw7pkYWrFrywgxb5lIHRhayB1xI1pbmlsLCBuZWJvIGRvdm96Y2kgw7pkYWrFrwp2csOhdMOtIHbFoWVjaG55IG9zb2Juw60gw7pkYWplIHpwcmFjb3bDoXZhbsOpIGplaG8Kam3DqW5lbSBhIHZ5bWHFvmUgdsWhZWNobnkgZXhpc3R1asOtY8OtIGtvcGllLgoKOC4yLiBaYWJlenBlxI1lbsOtenByYWVvdsOhbsOtCgphKSBTdHJhbnkgemF2ZWRvdSB2aG9kbsOhIHRlY2huaWNrw6EgYSBvcmdhbml6YcSNbsOtCm9wYXTFmWVuw60gayB6YWppxaF0xJtuw60gemFiZXpwZcSNZW7DrSDDumRhasWvLCBhIHRvIGkKYsSbaGVtIHDFmWVkw6F2w6Fuw60sIGEgemFqaXN0w60gb2NocmFudSBwxZllZApwb3J1xaFlbsOtbSB6YWJlenBlxI1lbsOtIHZlZG91Y8OtbSBrCm7DoWhvZG7DqW11IG5lYm8gcHJvdGlwcsOhdm7DrW11IHpuacSNZW7DrSwKenRyw6F0xJssIHptxJtuxJssIG5lb3Byw6F2bsSbbsOpbXUgcG9za3l0bnV0w60KbmVibyB6cMWZw61zdHVwbsSbbsOtIChkw6FsZSBqZW4g4oCecG9ydcWhZW7DrQp6YWJlenBlxI1lbsOtIG9zb2Juw61jaCDDumRhasWvIikuIFDFmWkgcG9zdXpvdsOhbsOtCnZob2Ruw6kgw7pyb3ZuxJsgemFiZXpwZcSNZW7DrSBzdHJhbnkgbsOhbGXFvml0xJsKem9obGVkbsOtIGFrdHXDoWxuw60gc3RhdiB0ZWNobmlreSwgbsOha2xhZHkgbmEKcHJvdmVkZW7DrSwgcG92YWh1IG9zb2Juw61jaCDDumRhasWvICg3KSwgcG92YWh1LApyb3pzYWgsIGtvbnRleHQgYSDDusSNZWwgbmVibyDDusSNZWx5IHpwcmFjb3bDoW7DrWEKcml6aWthIHBybyBzdWJqZWt0eSDDumRhasWvIHNwb2plbsOhIHNlCnpwcmFjb3bDoW7DrW0sIGEgemVqbcOpbmEgenbDocW+w60gcG91xb5pdMOtIMWhaWZyb3bDoW7DrQpuZWJvIHBzZXVkb255bWl6YWVlLCBhIHRvIGkgYsSbaGVtIHDFmWVkw6F2w6Fuw60sCnBva3VkIGx6ZSB0w61tdG8genDFr3NvYmVtIHNwbG5pdCDDusSNZWwKenByYWNvdsOhbsOtLgoKYikgVsO9dm96Y2Ugw7pkYWrFryBwb23DoWjDoSBkb3ZvemNpIMO6ZGFqxa8gcMWZaQp6YWppxaHFpW92w6Fuw60gb2Rwb3bDrWRhasOtY8OtaG8gemFiZXpwZcSNZW7DrSDDumRhasWvIHYKc291bGFkdSBzIHDDrXNtZW5lbSBhKS4gViBwxZnDrXBhZMSbIHBvcnXFoWVuw60KemFiZXpwZcSNZW7DrSBvc29ibsOtY2ggw7pkYWrFryB0w71rYWrDrWPDrWhvIHNlCm9zb2Juw61jaCDDumRhasWvIHpwcmFjb3bDoXZhbsO9Y2ggdsO9dm96Y2VtCsO6ZGFqxa8gcG9kbGUgdMSbY2h0byBkb2xvxb5la3bDvXZvemVlIMO6ZGFqxa8gcG9kw6EKaGzDocWhZW7DrSBkb3ZvemNpIMO6ZGFqxa8gYmV6IHpieXRlxI1uw6lobyBvZGtsYWR1CnBvdMOpLCBjbyBzZSBvIG7Em20gZG96dsSbZMSbbCwgYSBkb3ZvemNpIMO6ZGFqxa8KYnVkZSBwxZlpIMWZZcWhZW7DrSB1dmVkZW7DqWhvIHBvcnXFoWVuw60KbsOhcG9tb2Nlbi4KCkNdIFbDvXZvemNlIMO6ZGFqxa8gemFqaXN0w60sIGFieSBzZSBvc29ieSBvcHLDoXZuxJtuw6kKenByYWNvdsOhdmF0IG9zb2Juw60gw7pkYWplIHphdsOhemFseSBrCm1sxI1lbmxpdm9zdGksIG5lYm8gYWJ5IHNlIG5hIG7EmyB2enRhaG92YWxhCnrDoWtvbm7DoSBwb3Zpbm5vc3QgbWzEjWVubGl2b3N0aS4KCjguMyBEb2t1bWVudGFjZSBhIHBsbsSbbsOtIHBvdmlubm9zdMOtCgphKSBTdHJhbnkgbXVzw60gYsO9dCBzY2hvcG55IHByb2vDoXphdCBkb2Ryxb5vdsOhbsOtCnTEm2NodG8gZG9sb8W+ZSBrLgoKYikgVsO9dm96Y2Ugw7pkYWrFryBwb3NreXRuZSBkb3ZvemNpIMO6ZGFqxa8gdmXFoWtlcsOpCmluZm9ybWFjZSBwb3TFmWVibsOpIGsgZG9sb8W+ZW7DrSB0b2hvLCDFvmUgYnlseQpzcGxuxJtueSBwb3Zpbm5vc3RpIHN0YW5vdmVuw6kgdiB0xJtjaHRvCgogCgogCgogCgogCgogCgpjb21wbGlhbmNlIHdpdGggaXRzIG9ibGlnYXRpb25zIHVuZGVydGhlc2UgQ2xhdXNlcwphbmQgYWxsb3cgZm9yIGFuZCBjb250cmlidXRlIHRvIGF1ZGl0cy4KCkNsYXVzZSA5ClVzZSBvZiBzdWItcHJvY2Vzc29ycwpOb24tYXBwbGljYWJsZQoKQ2xhdXNlIDEwCkRhdGEgc3ViamVjdCByaWdodHMKClRoZSBQYXJ0aWVzIHNoYWxsIGFzc2lzdCBlYWNoIG90aGVyIGluIHJlc3BvbmRpbmcgdG8KCmVucXVpcmllcyBhbmQgcmVxdWVzdHMgbWFkZSBieSBkYXRhIHN1YmplY3RzIHVuZGVyIHRoZQpsb2NhbCBsYXcgYXBwbGljYWJsZSB0byB0aGUgZGF0YSBpbXBvcnRlciBvciwgZm9yIGRhdGEKcHJvY2Vzc2luZyBieSB0aGUgZGF0YSBleHBvcnRlciBpbiB0aGUgRVUsIHVuZGVyClJlZ3VsYXRpb24gKEVVKSAyMDE2LzY3OS4KCiYpCgpDbGF1c2UgMTEKUmVkcmVzcwoKVGhlIGRhdGEgaW1wb3J0ZXIgc2hhbGwgaW5mb3JtIGRhdGEgc3ViamVjdHMgaW4gYQp0cmFuc3BhcmVudCBhbmQgZWFzaWx5IGFjY2Vzc2libGUgZm9ybWF0LCB0aHJvdWdoCmluZGl2aWR1YWwgbm90aWNlIG9yIG9uIGl0cyB3ZWJzaXRlLCBvZiBhIGNvbnRhY3QgcG9pbnQKYXV0aG9yaXNlZCB0byBoYW5kbGUgY29tcGxhaW50cy4gfHQgc2hhbGwgZGVhbApwcm9tcHRseSB3aXRoIGFueSBjb21wbGFpbnRzIGl0IHJlY2VpdmVzIGZyb20gYQpkYXRhIHN1YmplY3QuCgpbT1BUSU9OeiBUaGUgZGF0YSBpbXBvcnRlciBhZ3JlZXMgdGhhdCBkYXRhIHN1YmplY3RzIG1heQoKYWxzbyBsb2RnZSBhIGNvbXBsYWludCB3aXRoIGFuIGluZGVwZW5kZW50IGRpc3B1dGUKcmVzb2x1dGlvbiBib2R5WiBhdCBubyBjb3N0IHRvIHRoZSBkYXRhIHN1YmplY3QuIHx0IHNoYWxsCmluZm9ybSB0aGUgZGF0YSBzdWJqZWN0cywgaW4gdGhlIG1hbm5lciBzZXQgb3V0IGluCnBhcmFncmFwaCAoMyksIG9mIHN1Y2ggcmVkcmVzcyBtZWNoYW5pc20gYW5kIHRoYXQgdGhleQphcmUgbm90IHJlcXVpcmVkIHRvIHVzZSBpdCwgb3IgZm9sbG93IGEgcGFydGljdWxhcgpzZXF1ZW5jZSBpbiBzZWVraW5nIHJlZHJlNTUuXQoKIAoKZG9sb8W+a8OhY2gsIHVtb8W+bsOtIHByb3ZlZGVuw60gYXVkaXTFryBhIGJ1ZGUgawpuaW0gcMWZaXNww612YXQuCgpEb2xvxb5rYSA5CicgJ2NoIHpwcmFjb3ZhdGVsxa8KTmVhcGxpa3VqZSBzZQoKIAoKVnl1xb5pdMOtCgpEb2xvxb5rYSAxMApQcsOhdmEgc3ViamVrdMWvIMO6ZGFqxa8KClN0cmFueSBzaSB2esOhamVtbsSbIHBvbcOhaGFqw60gcMWZaSBvZHBvdsOtZMOhbsOtIG5hIGRvdGF6eSBhCsW+w6Fkb3N0aSBzdWJqZWt0xa8gw7pkYWrFryBwb2RsZSBtw61zdG7DrWhvIHByw6F2YSBwb3XFvml0ZWxuw6lobwpuYSBkb3ZvemNlIMO6ZGFqxa8gbmVibyB2IHDFmcOtcGFkxJsgenByYWNvdsOhbsOtIMO6ZGFqxa8KZG92b3pjZW0gw7pkYWrFryB2IEVVIHBvZGxlIG5hxZnDrXplbsOtKEVVKSAyMDE2LzY3OS4KCiYpCgpEb2xvxb5rYSAxMQpOw6FwcmF2YQoKRG92b3pjZSDDumRhasWvIHRyYW5zcGFyZW50bsSbIGEgdmUgc25hZG5vIHDFmcOtc3R1cG7DqW0KZm9ybcOhdHUgaW5mb3JtdWplIHN1Ympla3R5IMO6ZGFqxa8gcHJvc3TFmWVkbmljdHbDrW0KaW5kaXZpZHXDoWxuw61obyBvem7DoW1lbsOtIG5lYm8gbmEgc3bDvWNoIGludGVybmV0b3bDvWNoCnN0csOhbmvDoWNoIG8ga29udGFrdG7DrW0gbcOtc3TEmyBvcHLDoXZuxJtuZW0gdnnFmWl6b3ZhdApzdMOtxb5ub3N0aS4gVGFrb3ZlIG3DrXN0byBuZXByb2RsZW7EmyB2ecWZw61kw60gamFrZWtvbGkKc3TDrcW+bm9zdGksIGt0ZXLDqSBvZCBzdWJqZWt0dSDDumRhasWvIHDFmWlqbWUuCgpbVkFSSUFOVEF6IERvdm96Y2Ugw7pkYWrFryBzb3VobGFzw60gcyB0w61tLCDFvmUgc3ViamVrdHkKCsO6ZGFqxa8gbW9ob3Ugcm92bsSbxb4gYmV6cGxhdG7EmyBwb2RhdCBzdMOtxb5ub3N0IHUKbmV6w6F2aXNsw6lobyBvcmfDoW51IHBybyDFmWXFoWVuw60gc3BvcsWvICgxMSksIE8gdG9tdG8KbWVjaGFuaXNtdSBuw6FwcmF2eSBhIG8gdG9tLCDFvmUgc3ViamVrdHkgw7pkYWrFrwpuZWpzb3UgcG92aW5ueSBqZWogdnl1xb7DrXZhdCBuZWJvIHBvc3R1cG92YXQgcG9kbGUKa29ua3LDqXRuw61obyBwb3N0dXB1IHDFmWkgaGxlZMOhbsOtIG7DoXByYXZ5LCBkb3ZvemNlCsO6ZGFqxa8gaW5mb3JtdWplIHN1Ympla3R5IMO6ZGFqxa8genDFr3NvYmVtIHV2ZWRlbsO9bQp2IHDDrXNtZW51IGEpLl0KCkRvbG/FvmthIDEyCgogCgogCgpDbGF1c2UgMTIgT2QgJ2QKTGlhYmlsaXR5ICwgXyBfIHBvImVfIm/igJwgLCBfIF8KYSkgRWFjaCBQYXJ0eSBzaGFsbCBiZSBsaWFibGUgdG8gdGhlIG90aGVyIFBhcnR5L2llcyBmb3IgYSkgS2F6ZGEgP+KAnCwiYSBKZSBWSFB8IGRydWhlIDV0cl9hX25lL29zdGF0bnxtIHN0cmFuYXJoCl8gXyBvZHBvdmVkbmEgemEgSmFrb3Vrb2xsIHVqbXUsIGt0ZXJvdSBkcnVoZQphbnkgZGFtYWdlcyAndCBjYXVzZXMgdGhlIG90aGVyIFBhcnR5L2xlcyBieSBhbnkgc3RyYW7Emy9vc3RhdG7DrW0gc3RyYW7DoW0gcMWZaSBwb3J1xaFlbsOtdMSbY2h0byBkb2xvxb5lawpicmVhY2ggb2Z0aGVzZSBDbGF1c2VzLiB6cMWvc29iw60uCmIpIEVhY2ggUGFydHkgc2hhbGwgYmUgbGlhYmxlIHRvIHRoZSBkYXRhIHN1YmplY3QsIGFuZCB0aGUKZGF0YSBzdWJqZWN0IHNoYWxsIGJlIGVudGl0bGVkIHRvIHJlY2VpdmUgYikgS2HFvmTDoSBzdHJhbmEgamUgb2Rwb3bEm2Ruw6EgdsWvxI1pIHN1Ympla3R1IMO6ZGFqxa8gYQouIC4gLiBzdWJqZWt0IMO6ZGFqxa8gbcOhIG7DoXJvayBuYSBuw6FocmFkdSBqYWtla29saSBobW90bmUKY29tcGVuc2F0bG9uLCBmb3IgYW55IG1hdGVybGFsIG9yIG5vbi1tYXRlcmxhbCAsICwuIC4sICwgLgoKXyBuZWJvIG5laG1vdG5lIHVqbXksIGt0ZXJvdSBzdHJhbmEgenB1c29ibCBzdWJqZWt0dQpkYW1hZ2VzIHRoYXQgdGhlIFBhcnR5IGNhdXNlcyB0aGUgZGF0YSDigJxibGXigJwgYnkgw7pkYWrFryBwb3J1xaFlbsOtbSBwcsOhdiBuw6FsZcW+ZWrDrWPDrWNoIG9wcsOhdm7Em27DqSB0xZlldMOtCmJyZWFjaGluZyB0aGUgdGhpcmQtcGFydHkgYmVuZWZpY2lhcnkgcmlnaHRzIHVuZGVyIHN0cmFuxJsgbmEgesOha2xhZMSbIHTEm2NodG8gZG9sb8W+ZWsuIFTDrW0gbmVuw60gZG90xI1lbmEKdGhlc2UgQ2xhdXNlcy4gVGhpcyBpcyB3aXRob3V0IHByZWp1ZGljZSB0byB0aGUgb2Rwb3bEm2Rub3N0IHbDvXZvemNlIMO6ZGFqxa8gcG9kbGUgbmHFmcOtemVuw60gKEVVKQpsaWFiaWxpdHkgb2YgdGhlIGRhdGEgZXhwb3J0ZXIgdW5kZXIgUmVndWxhdGlvbiAoRVUpIDIwMTYvNjc5CjIwMTYvNjc5LgoKKDEpIHogVGhlIGRhdGEgaW1wb3J0ZXIgbWF5IG9mZmVyIGluZGVwZW5kZW50IGRpc3B1dGUgcmVzb2x1dGlvbiB0aHJvdWdoIGFuIGFyYml0cmF0aW9uIGJvZHkgb25seSBpZiBpdCBpcwoKZXN0YWJsaXNoZWQgaW4gYSBjb3VudHJ5IHRoYXQgaGFzIHJhdGlmaWVkIHRoZSBOZXcgWW9yayBDb252ZW50aW9uIG9uIEVuZm9yY2VtZW50IG9mIEFyYml0cmF0aW9uIEF3YXJkc0oKRG92b3pjZSDDumRhasWvIG3Fr8W+ZSBuYWLDrWRub3V0IG5lesOhdmlzbMOpIMWZZcWhZW7DrSBzcG9yxa8gcHJvc3TFmWVkbmljdHbDrW0gcm96aG9kxI3DrWhvIG9yZ8OhbnUgcG91emUgdiBwxZnDrXBhZMSbLCDFvWUgamUKdXNhemVuIHYgemVtaSwga3RlcsOhIHJhdGlmaWtvdmFsYSBOZXd5b3Jza291IMO6bWx1dnUgbyB2w71rb251IHJvemhvZMSNw61jaCBuw6FsZXrFry4KCjUKCiAKCiAKCiAKCmQpCgpXaGVyZSBtb3JlIHRoYW4gb25lIFBhcnR5IGlzIHJlc3BvbnNpYmxlIGZvciBhbnkKZGFtYWdlIGNhdXNlZCB0byB0aGUgZGF0YSBzdWJqZWN0IGFzIGEgcmVzdWx0IG9mIGEKYnJlYWNoIG9mIHRoZXNlIENsYXVzZXMsIGFsbCByZXNwb25zaWJsZSBQYXJ0aWVzIHNoYWxsCmJlam9pbnRseWFuZCBzZXZlcmFsbHkgbGlhYmxlIGFuZCB0aGUgZGF0YSBzdWJqZWN0IGlzCmVudGl0bGVkIHRvIGJyaW5nIGFuIGFjdGlvbiBpbiBjb3VydCBhZ2FpbnN0IGFueSBvZgp0aGVzZSBQYXJ0aWVzLgoKVGhlIFBhcnRpZXMgYWdyZWUgdGhhdCBpZiBvbmUgUGFydHkgaXMgaGVsZCBsaWFibGUKdW5kZXIgcGFyYWdyYXBoIChjKSwgaXQgc2hhbGwgYmUgZW50aXRsZWQgdG8gY2xhaW0gYmFjawpmcm9tIHRoZSBvdGhlciBQYXJ0eS9pZXMgdGhhdCBwYXJ0IG9mIHRoZQpjb21wZW5zYXRpb24gY29ycmVzcG9uZGluZyB0byBpdHMgLyB0aGVpcgpyZXNwb25zaWJpbGl0eSBmb3IgdGhlIGRhbWFnZS4KClRoZSBkYXRhIGltcG9ydGVyIG1heSBub3QgaW52b2tlIHRoZSBjb25kdWN0IG9mIGEKcHJvY2Vzc29yIG9yIHN1Yi1wcm9lZXNzb3IgdG8gYXZvaWQgaXRzIG93biBsaWFiaWxpdHkuCgpDbGF1c2UgMTMKU3VwZXJ2aXNpb24KTmF0IGFwcGxpY2FibGUKClNFQ1RJT04gSUlJIOKAlCBMT0NBTCBMQVdTIEFORCBPQkxJR0FUSU9OUyBJTiBDQVNFIE9GCgomKQoKYikKCkFDQ0VTUyBCWSBQVUJMSUMgQVVUSE9SSVRJRVMKCkNsYXVzZSAxNApMb2NhbCBsYXdzIGFuZCBwcmFjdGljZXMgYWZmZWN0aW5nIGNvbXBsaWFuY2Ugd2l0aAp0aGUgQ2xhdXNlcwoKVGhlIFBhcnRpZXMgd2FycmFudCB0aGF0IHRoZXkgaGF2ZSBubyByZWFzb24gdG8KYmVsaWV2ZSB0aGF0IHRoZSBsYXdzIGFuZCBwcmFjdGljZXMgaW4gdGhlIHRoaXJkCmNvdW50cnkgb2YgZGVzdGluYXRpb24gYXBwbGljYWJsZSB0byB0aGUgcHJvY2Vzc2luZwpvZnRoZSBwZXJzb25hbCBkYXRhIGJ5IHRoZSBkYXRhIGltcG9ydGVyLCBpbmNsdWRpbmcKYW55IHJlcXVpcmVtZW50cyB0byBkaXNjbG9zZSBwZXJzb25hbCBkYXRhIG9yCm1lYXN1cmVzIGF1dGhvcmlzaW5nIGFjY2VzcyBieSBwdWJsaWMgYXV0aG9yaXRpZXMsCnByZXZlbnQgdGhlIGRhdGEgaW1wb3J0ZXIgZnJvbSBmdWxmaWxsaW5nIGl0cwpvYmxpZ2F0aW9ucyB1bmRlcnRoZXNlIENsYXVzZXMsIFRoaXMgaXMgYmFzZWQgb24gdGhlCnVuZGVyc3RhbmRpbmcgdGhhdCBsYXdzIGFuZCBwcmFjdGljZXMgdGhhdCByZXNwZWN0CnRoZSBlc3NlbmNlIG9mdGhlIGZ1bmRhbWVudGFsIHJpZ2h0cyBhbmQgZnJlZWRvbXMKYW5kIGRvIG5vdCBleGNlZWQgd2hhdCBpcyBuZWNlc3NhcnkgYW5kCnByb3BvcnRpb25hdGUgaW4gYSBkZW1vY3JhdGljIHNvY2lldHkgdG8gc2FmZWd1YXJkCm9uZSBvZiB0aGUgb2JqZWN0aXZlcyBsaXN0ZWQgaW4gQXJ0aWNsZSAyMygxKSBvZgpSZWd1bGF0aW9uIChFVSkgMjAxNi82NzksIGFyZSBub3QgaW4gZW9udHJhZGljdGlvbgp3aXRoIHRoZXNlIENsYXVzZXMsCgpUaGUgUGFydGllcyBkZWNsYXJlIHRoYXQgaW4gcHJvdmlkaW5nIHRoZSB3YXJyYW50eSBpbgpwYXJhZ3JhcGggKGEpLCB0aGV5IGhhdmUgdGFrZW4gZHVlIGFjY291bnQgaW4KcGFydGljdWxhciBvZiB0aGUgZm9sbG93aW5nIGVsZW1lbnRzOgoKaSkgdGhlIHNwZWNpZmljIGNpcmN1bXN0YW5jZXMgb2YgdGhlIHRyYW5zZmVyLAppbmNsdWRpbmcgdGhlIGxlbmd0aCBvZiB0aGUgcHJvY2Vzc2luZyBjaGFpbiwKdGhlIG51bWJlciBvZiBhY3RvcnMgaW52b2x2ZWQgYW5kIHRoZQp0cmFuc21pc3Npb24gY2hhbm5lbHMgdXNlZDsgaW50ZW5kZWQgb253YXJkCnRyYW5zZmVyczsgdGhlIHR5cGUgb2YgcmVjaXBpZW50OyB0aGUgcHVycG9zZSBvZgpwcm9jZXNzaW5nOyB0aGUgY2F0ZWdvcmllcyBhbmQgZm9ybWF0IG9mIHRoZQp0cmFuc2ZlcnJlZCBwZXJzb25hbCBkYXRhOyB0aGUgZWNvbm9taWMKCiAKCkNdIFBva3VkIGplIHphIMO6am11IHpwxa9zb2Jlbm91IHN1Ympla3R1IMO6ZGFqxa8gdgpkxa9zbGVka3UgcG9ydcWhZW7DrXTEm2VodG8gZG9sb8W+ZWsgb2Rwb3bEm2Ruw6EgdsOtY2UgbmXFvgpqZWRuYSBzdHJhbmEsIG5lc291IHNwb2xlxI1ub3UgYSBuZXJvemTDrWxub3UKb2Rwb3bEm2Rub3N0IHbFoWVjaG55IG9kcG92xJtkbsOpIHN0cmFueSBhIHN1Ympla3QKw7pkYWrFryBqZSBvcHLDoXZuxJtuIHByb3RpIGt0ZXLDqWtvbGkgeiB0xJtjaHRvIHN0cmFuIHBvZGF0CsW+YWxvYnUgdSBzb3VkdS4KCmQpIFNtbHV2bsOtIHN0cmFueSBzZSBkb2hvZGx5LCDFvmUgcG9rdWQgamUgamVkbmEgemUKc21sdXZuw61jaCBzdHJhbiBvZHBvdsSbZG7DoSBwb2RsZSBww61zbWVuZSBjKSwgamUKb3Byw6F2bsSbbmEgcG/FvmFkb3ZhdCBvZCBkcnVow6kgc21sdXZuw60Kc3RyYW55L29zdGF0bsOtY2ggc21sdXZuw61jaCBzdHJhbiB6cMSbdCDEjcOhc3QgbsOhaHJhZHkKw7pqbXkgb2Rwb3bDrWRhasOtZcOtamVqw60gb2Rwb3bEm2Rub3N0aSB6YSDDumptdS4KCmUpIERvdm96Y2Ugw7pkYWrFryBzZSBuZW3Fr8W+ZSBkb3ZvbMOhdmF0IGplZG7DoW7DrQp6cHJhY292YXRlbGUgbmVibyBkw61sxI3DrWhvIHpwcmFjb3ZhdGVsZSwgYWJ5IHNlIHZ5aG51bApzdsOpIHZsYXN0bsOtIG9kcG92xJtkbm9zdGkuCgpEb2xvxb5rYSAxMwpEb2hsZWQKTmVhcGxpa3VqZSBzZQoKT0REw41MIHx8fCDigJQgTcONU1ROw40gUFLDgVZOw40gUMWYRURQSVNZIEEgUE9WSU5OT1NUSSB2ClDFmMONUEFExJogUMWYw41TVFVQVSBPUkfDgU7DmiBWRcWYRUpOw4kgTU9DSQoKRG9sb8W+a2EgMTQKTcOtc3Ruw60gcHLDoXZuw60gcMWZZWRwaXN5IGEgcG9zdHVweSBtYWrDrWPDrSBkb3BhZCBuYQpkb2Ryxb5vdsOhbsOtIGRvbG/FvmVrCgphKSBTdHJhbnkgemFydcSNdWrDrSwgxb5lIG5lbWFqw60gZMWvdm9kIHNlIGRvbW7DrXZhdCwgxb5lIHByw6F2bsOtCnDFmWVkcGlzeSBhIHBvc3R1cHkgdmUgdMWZZXTDrXplbWkgdXLEjWVuw60sIGt0ZXLDqSBzZSB2enRhaHVqw60KbmEgenByYWNvdsOhbsOtIG9zb2Juw61jaCDDumRhasWvIGRvdm96Y2VtIMO6ZGFqxa8sIHbEjWV0bsSbCmpha8O9Y2hrb2xpIHBvxb5hZGF2a8WvIG5hIHpwxZnDrXN0dXBuxJtuw60gb3NvYm7DrWNoIMO6ZGFqxa8KbmVibyBvcGF0xZllbsOtLCBrdGVyw71taSBzZSBwb3ZvbHVqZSBwxZnDrXN0dXAgb3Jnw6Fuxa9tCnZlxZllam7DqSBtb2NpLCBicsOhbsOtIGRvdm96Y2kgw7pkYWrFryBwxZlpIHBsbsSbbsOtIHN2w71jaApwb3Zpbm5vc3TDrSBwb2RsZSB0xJtjaHRvIGRvbG/FvmVrLiBUbyBqZSB6YWxvxb5lbm8gbmEKcMWZZWRwb2tsYWR1LCDFvmUgcHLDoXZuw60gcMWZZWRwaXN5IGEgcG9zdHVweSwga3RlcsOpCnJlc3Bla3R1asOtIHBvZHN0YXR1IHrDoWtsYWRuw61jaCBwcsOhdiBhIHN2b2JvZCBhCm5lcMWZZWtyYcSNdWrDrSB0bywgY28gamUgdiBkZW1va3JhdGlja8OpIHNwb2xlxI1ub3N0aQpuZXpieXRuw6kgYSBwxZlpbcSbxZllbsOpIGsgemFqacWhdMSbbsOtIGplZG5vaG8geiBjw61sxa8KdXZlZGVuw71jaCB2xI1sLiAyMyBvZHN0LiAxIG5hxZnDrXplbsOtKEVVKSAyMDE2LzY3OSwgbmVqc291CnYgcm96cG9ydSBzIHTEm21pdG8gZG9sb8W+a2FtaS4KCmIpIFNtbHV2bsOtIHN0cmFueSBwcm9obGHFoXVqw60sIMW+ZSBwxZlpIHBvc2t5dG92w6Fuw60gesOhcnVreQp1dmVkZW7DqSB2IHDDrXNtZW51IGEpIG7DoWxlxb5pdMSbIHpvaGxlZG5pbHkgemVqbcOpbmEKbsOhc2xlZHVqw61jw61wcnZreToKCmkpIGtvbmtyw6l0bsOtIG9rb2xub3N0aSBwxZllZMOhbsOtLCB2xI1ldG7EmyBkw6lsa3kKenByYWNvdmF0ZWxza8OpaG8gxZlldMSbemNlLCBwb8SNdHUgemFwb2plbsO9Y2gKc3ViamVrdMWvIGEgcG91xb5pdMO9Y2gga2Fuw6Fsxa8gcHJvIHDFmWVub3Mgw7pkYWrFrywKemFtw73FoWxlbsOpIGRhbMWhw60gcMWZZWTDoW7DrSwgZHJ1aCBwxZnDrWplbWNlLCDDusSNZWx5CnpwcmFjb3bDoW7DrSwga2F0ZWdvcmllIGEgZm9ybcOhdCBwxZllZMOhdmFuw71jaApvc29ibsOtY2ggw7pkYWrFrywgaG9zcG9kw6HFmXNrw6kgb2R2xJt0dsOtLCB2IG7Em23FviBzZQpwxZllZMOhdsOhbsOtIHVza3V0ZcSNxYh1amUsIG3DrXN0bywga2RlIHNlIHDFmWVkYW7DqSDDumRhamUKdWNob3bDoXZhasOtOwoKIAoKIAoKIAoKIAoKIAoKc2VjdG9yIGluIHdoaWNoIHRoZSB0cmFuc2ZlciBvY2N1cnM7IHRoZSBpaSkgcHLDoXZuw61wxZllZHBpc3kgYSBwb3N0dXB5dMWZZXTDrXplbcSbIHVyxI1lbsOt4oCUdsSNZXRuxJsKc3RvcmFnZSBsb2NhdGlvbiBvZnRoZSBkYXRhIHRyYW5zZmVycmVkOyB0xJtjaCwga3RlcsOpIHZ5xb5hZHVqw60genDFmcOtc3R1cG7Em27DrSDDumRhasWvIG9yZ8OhbsWvbQp2ZcWZZWpuw6kgbW9jaSBuZWJvIHBvdm9sdWrDrSBwxZnDrXN0dXAgdMSbY2h0byBvcmfDoW7FryDigJQKCmlpKSB0aGUgbGF3cyBhbmQgcHJhY3RpY2VzIG9mIHRoZSB0aGlyZCBjb3VudHJ5IG9mICwgLCAsIF8KcmVsZXZhbnRubCBzIG9obGVkZW0gbmEga29ua3JldG5sIG9rb2xub3N0bAoKZGVzdGluYXRpb27igJQgaW5jbHVkaW5nIHRob3NlIHJlcXVpcmluZyB0aGUKZGlzY2xvc3VyZSBvZiBkYXRhIHRvIHB1YmxpYyBhdXRob3JpdGllcyBvcgphdXRob3Jpc2luZyBhY2Nlc3MgYnkgc3VjaCBhdXRob3JpdGllcyDigJQKcmVsZXZhbnQgaW4gbGlnaHQgb2YgdGhlIHNwZWNpZmljIGNpcmN1bXN0YW5jZXMKb2YgdGhlIHRyYW5zZmVyLCBhbmQgdGhlIGFwcGxpY2FibGUgbGltaXRhdGlvbnMKYW5kIHNhZmVndWFyZHMzCgpwxZllZMOhbsOtLGpha2/FvmkgcG91xb5pdGVsbsOhIG9tZXplbsOtIGEgesOhcnVreSAoMTIpOwppaWkpdmXFoWtlcmUgcMWZw61zbHXFoW7DqSBzbWx1dm7DrSwgdGVjaG5pY2tlIG5lYm8Kb3JnYW5pemHEjW7DrSB6w6FydWt5IHphdmVkZW7DqSB6YSDDusSNZWxlbSBkb3BsbsSbbsOtCnrDoXJ1ayBwb2RsZSB0xJtjaHRvIGRvbG/FvmVrLCB2xI1ldG7EmyBvcGF0xZllbsOtCnVwbGF0xYhvdmFuw71jaCBixJtoZW0gcMWZZWTDoW7DrSBhIHpwcmFjb3bDoW7DrQpvc29ibsOtY2ggw7pkYWrFryB2IHplbWkgdXLEjWVuw60uCmlpaSkgYW55IHJlbGV2YW50IGNvbnRyYWN0dWFsLCB0ZWNobmljYWwgb3IKCm9yZ2FuaXNhdGlvbmFsIHNhZmVndWFyZHMgUFV0IGloIHBsYWNlIHRvIG8pIERvdm96Y2Ugw7pkYWrFryB6YXJ1xI11amUsIMW+ZSBwxZlpIHByb3bDoWTEm27DrSBwb3NvdXplbsOtCgpzdXBwbGVtZW50IHRoZSBzYWZlZ3VhcmRzIHVuZGVyIHRoZXNlIHBvZGxlIHDDrXNtZW5lIGIpIHZ5bmFsb8W+aWwgbWF4aW3DoWxuw60gw7pzaWzDrSwgYWJ5IHBvc2t5dGwKQ2xhdXNlcywgw41oQ2xVZGloxaEgbWVhc3VyZXMgYXBwbGllZCBkdXJpbmcgdsO9dm96Y2kgw7pkYWrFryByZWxldmFudG7DrSBpbmZvcm1hY2UsIGEgc291aGxhc8OtIHMgdMOtbSwgxb5lCnRyYW5zbWlzc2lvbiBhbmQgdE8gdGhlIHByb2Nlc3NpbmcgT2YgdGhlIGJ1ZGUgcMWZaSB6YWppxaHFpW92w6Fuw60gZG9kcsW+b3bDoW7DrSB0xJtjaHRvIGRvbG/FvmVrIHMKcGVyc29uYWwgZGF0YSBpbiB0aGUgY291bnRyeSBvZiBkZXN0aW5hdGlvbiB2w712b3pjZW0gw7pkYWrFryBpIG5hZMOhbGUgc3BvbHVwcmFjb3ZhdC4KCm8pIFRoZSBkYXRhIGltcG9ydGVyIHdhcnJhbnRzIHRoYXQsIGluIGNhcnJ5aW5nIG91dHRoZQoKZCkgU3RyYW55IHNvdWhsYXPDrSwgxb5lIHBvc291emVuw60gcG9kbGUgcMOtc21lbmUgYikKemRva3VtZW50dWrDrSBhIG5hIHBvxb7DoWTDoW7DrSB6cMWZw61zdHVwbsOtIHDFmcOtc2x1xaFuw6ltdQpkb3pvcm92ZW11IMO6xZlhZHUuCgphc3Nlc3NtZW50IHVuZGVyIHBhcmFncmFwaCAoYiksIGl0IGhhcyBtYWRlIGl0cwpiZXN0IGVmZm9ydHMgdG8gcHJvdmlkZSB0aGUgZGF0YSBleHBvcnRlciB3aXRoCnJlbGV2YW50IGluZm9ybWF0aW9uIGFuZCBhZ3JlZXMgdGhhdCBpdCB3aWxsIGNvbnRpbnVlCnRvIGNvb3BlcmF0ZSB3aXRoIHRoZSBkYXRhIGV4cG9ydGVyIGluIGVuc3VyaW5nCgpjb21wbGlhbmNlIHdpdGggdGhlc2UgQ2xhdXNlcy4gZSkgRG92b3pjZSB1ZGFqdSBzb3VoSWFTfCBzIHRsbSwgemUgbmVwcm9kbGVuZSB1dmVkb21sCgp2w712b3pjZSDDumRhasWvLCBwb2t1ZCBtw6EgcG8gdnlqw6FkxZllbsOtc291aGxhc3Ugc3TEm21pdG8KCmQpIFRoZSBQYXJ0aWVzIGFncmVlIHRPIGRvY3VtZW50IHRoZSBhc3Nlc3NtZW50IHVzdGFub3ZlbsOtbWkgYSBwbyBkb2J1IHRydsOhbsOtIHNtbG91dnkgZMWvdm9kIHNlCnVuZGVyIHBhcmFncmFwaCAoYikgYW5kIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHRoZSBkb21uw612YXQsIMW+ZSBzZSBuYSBuxJtqIHZ6dGFodWrDrSwgbmVibyBzZSB6YcSNYWx5IHZ6dGFob3ZhdApjb21wZXRlbnQgc3VwZXJ2aXNvcnkgYXV0aG9yaXR5IE9oIHJlcXVlc3QuIHByw6F2bsOtIHDFmWVkcGlzeSBuZWJvIHBvc3R1cHksIGt0ZXLDqSBuZWpzb3UgdiBzb3VsYWR1IHMKCnBvxb5hZGF2a3kgcG9kbGUgcMOtc21lbmUgYSksIGEgdG8gaSBwbyB6bcSbbsSbIHYgcHLDoXZuw61jaApwxZllZHBpc2VjaCB0xZlldMOtIHplbcSbIG5lYm8gb3BhdMWZZW7DrSAoamFrbyBqZSBuYXDFmcOta2xhZAo2KSBUaGUgZGF0YSBpbXBvcnRlcmFncmVlcyB0byBub3RpZnl0aGUgZGF0YSBleHBvcnRlciDFvsOhZG9zdCBvIHBvc2t5dG51dMOtIMO6ZGFqxa8pLCBqZcW+IHN2xJtkxI3DrSBvIHRvbSwgxb5lCgpwcm9tcHRseSBpZiwgYWZ0ZXIgaGF2aW5nIGFncmVlZCB0byB0aGVzZSBDbGF1c2VzIHVwbGF0xYhvdsOhbsOtIHTEm2NodG8gcHLDoXZuw61jaCBwxZllZHBpc8WvIHYgcHJheGkgbmVuw60gdgoKIAoKIAoKIAoKQXMgcmVnYXJkcyB0aGUgaW1wYWN0IG9mIHN1Y2ggbGF3cyBhbmQgcHJhY3RpY2VzIG9uIGNvbXBsaWFuY2UgV2l0aCB0aGVzZSBDbGF1c2VzLCBkaWZmZXJlbnQgZWxlbWVudHMgbWF5IGJlCmNvbnNpZGVyZWQgYXMgcGFydCBvZiBhbiBvdmVyYWxsIGFzc2Vzc21lbnQuIFN1Y2ggZWxlbWVudHMgbWF5IGluY2x1ZGUgcmVsZXZhbnQgYW5kIGRvY3VtZW50ZWQgcHJhY3RpY2FsCmV4cGVyaWVuY2UgV2l0aCBwcmlvciBpbnN0YW5jZXMgb2YgcmVxdWVzdHMgZm9yIGRpc2Nsb3N1cmUgZnJvbSBwdWJsaWMgYXV0aG9yaXRpZXMsIG9yIHRoZSBhYnNlbmNlIG9mIHN1Y2ggcmVxdWVzdHMsCmNvdmVyaW5nIGEgc3VmZmljaWVudGx5IHJlcHJlc2VudGF0aXZlIHRpbSBlLWZyYW1lLiBUaGlzIHJlZmVycyBpbiBwYXJ0aWN1bGFyIHRvIGludGVybmFsIHJlY29yZHMgb3Igb3RoZXIKZG9jdW1lbnRhdGlvbiwgZHJhd24gdXAgb24gYSBjb250aW51b3VzIGJhc2lzIGluIGFjY29yZGFuY2UgV2l0aCBkdWUgZGlsaWdlbmNlIGFuZCBjZXJ0aWZpZWQgYXQgc2VuaW9yCm1hbmFnZW0gZW50IGxldmVsLCBwcm92aWRlZCB0aGF0IHRoaXMgaW5mb3JtYXRpb24gY2FuIGJlIGxhd2Z1bGx5IHNoYXJlZCBXaXRoIHRoaXJkIHBhcnRpZXMuIFdoZXJlIHRoaXMgcHJhY3RpY2FsCmV4cGVyaWVuY2UgaXMgcmVsaWVkIHVwb24gdG8gY29uY2x1ZGUgdGhhdCB0aGUgZGF0YSBpbXBvcnRlciBXaWxsIG5vdCBiZSBwcmV2ZW50ZWQgZnJvbSBjb21wbHlpbmcgV2l0aCB0aGVzZQpDbGF1c2VzLCBpdCBuZWVkcyB0byBiZSBzdXBwb3J0ZWQgYnkgb3RoZXIgcmVsZXZhbnQsIG9iamVjdGl2ZSBlbGVtZW50cywgYW5kIGl0IGlzIGZvciB0aGUgUGFydGllcyB0byBjb25zaWRlcgpjYXJlZnVsbHkgV2hldGhlciB0aGVzZSBlbGVtZW50cyB0b2dldGhlciBjYXJyeSBzdWZmaWNpZW50IHdlaWdodCwgaW4gdGVybXMgb2YgdGhlaXIgcmVsaWFiaWxpdHkgYW5kCnJlcHJlc2VudGF0aXZlbmVzcywgdG8gc3VwcG9ydCB0aGlzIGNvbmNsdXNpb24uIEluIHBhcnRpY3VsYXIsIHRoZSBQYXJ0aWVzIGhhdmUgdG8gdGFrZSBpbnRvIGFjY291bnQgV2hldGhlciB0aGVpcgpwcmFjdGljYWwgZXhwZXJpZW5jZSBpcyBjb3Jyb2JvcmF0ZWQgYW5kIG5vdCBjb250cmFkaWN0ZWQgYnkgcHVibGljbHkgYXZhaWxhYmxlIG9yIG90aGVyd2lzZSBhY2Nlc3NpYmxlLCByZWxpYWJsZQppbmZvcm1hdGlvbiBvbiB0aGUgZXhpc3RlbmNlIG9yIGFic2VuY2Ugb2YgcmVxdWVzdHMgV2l0aGluIHRoZSBzYW1lIHNlY3RvciBhbmQvb3IgdGhlIGFwcGxpY2F0aW9uIG9mIHRoZSBsYXcgaW4KcHJhY3RpY2UsIHN1Y2ggYXMgY2FzZSBsYXcgYW5kIHJlcG9ydHMgYnkgaW5kZXBlbmRlbnQgb3ZlcnNpZ2h0IGJvZGllcy4vIFBva3VkIGpkZSBvIGRvcGFkIHRha292w71jaCBwcsOhdm7DrWNoCnDFmWVkcGlzxa8gYSBwb3N0dXDFryBuYSBkb2Ryxb5vdsOhbsOtIHTEm2NodG8gZG9sb8W+ZWssIHphIHNvdcSNw6FzdCBjZWxrb3bDqWhvIHBvc291emVuaSBsemUgcG92YcW+b3ZhdCByxa96bsOpIHBydmt5LgpNZXppIHR5dG8gcHJ2a3kgbW9ob3UgcGF0xZlpdCByZWxldmFudG5pIGEgemRva3VtZW50b3ZhbsOpIHByYWt0aWNrw6kgemt1xaFlbm9zdGkgcyBwxZllZGNob3rDrW1pIHDFmcOtcGFkeSDFvsOhZG9zdGkKbyB6cMWZw61zdHVwbsSbbsOtIG9kIG9yZ8OhbsWvIHZlxZllam7DqSBtb2NpIG5lYm8gbmVleGlzdGVuY2UgdGFrb3bDvWNoIMW+w6Fkb3N0aSwga3RlcsOpIHBva3LDvXZhasOtIGRvc3RhdGXEjW7EmwpyZXByZXplbnRhdGl2bsOtIMSNYXNvdsO9IHLDoW1lYy4gVMO9a8OhIHNlIHRvIHplam3DqW5hIGludGVybsOtY2ggesOhem5hbcWvIG5lYm8gamluw6kgZG9rdW1lbnRhY2UsIHZ5cHJhY292w6F2YW5lJwpwcsWvYsSbxb5uxJsgdiBzb3VsYWR1IHMgbsOhbGXFvml0b3UgcMOpxI1pIGEgY2VydGlmaWtvdmFuw6kgbmEgw7pyb3ZuaSB2cmNob2xvdsOpaG8gdmVkZW5pLCB6YSBwxZllZHBva2xhZHUsIMW+ZSB0eXRvCmluZm9ybWFjZSBsemUgdiBzb3VsYWR1IHMgcHLDoXZuw61taSBwxZllZHBpc3kgc2RpbGV0IHNlIHTFmWV0w61taSBzdHJhbmFtaS4gUG9rdWQgc2UgbmEgesOha2xhZMSbIHTDqXRvIHByYWt0aWNrw6kKemt1xaFlbm9zdGkgZG9zcMSbamUgayB6w6F2xJtydSwgxb5lIGRvdm96Y2kgw7pkYWrFryBuZWJ1ZGUgYnLDoW7Em25vIHYgZG9kcsW+b3bDoW7DrSB0xJtjaHRvIGRvbG/FvmVrLCBqZSB0xZllYmEgdG8gcG9kcG/FmWl0CmRhbMWhw61taSByZWxldmFudG7DrW1pLCBvYmpla3Rpdm7DrW1pIHBydmt5IGEgamUgbmEgc21sdXZuw61jaCBzdHJhbsOhY2gsIGFieSBwZcSNbGl2xJsgenbDocW+aWx5LCB6ZGEgdHl0byBwcnZreSBtYWppCnNwb2xlxI1uxJsgZG9zdGF0ZcSNbm91IHbDoWh1IG5hIHBvZHBvcnUgdG9ob3RvIHrDoXbEm3J1LCBwb2t1ZCBqZGUgbyBqZWppY2ggc3BvbGVobGl2b3N0IGEgcmVwcmV6ZW50YXRpdm5vc3QuClNtbHV2bsOtIHN0cmFueSBtdXNpIHplam3DqW5hIHpvaGxlZG5pdCwgemRhIGpzb3UgamVqaWNoIHByYWt0aWNrw6kgemt1xaFlbm9zdGkgcG90dnJ6ZW55IHZlxZllam7EmyBkb3N0dXBuw71taSBuZWJvCmppbmFrIHDFmcOtc3R1cG7DvW1pIHNwb2xlaGxpdsO9bWkgaW5mb3JtYWNlbWkgbyBleGlzdGVuY2kgxI1pIG5lZXhpc3RlbmNpIMW+w6Fkb3N0aSB2ZSBzdGVqbsOpbSBvZHbEm3R2w60gYS9uZWJvIG8KdXBsYXTFiG92w6Fuw60gcHLDoXZhIHYgcHJheGksIGpha28gamUgbmFwxZnDrWtsYWQganVkaWthdHVyYSBhIHpwcsOhdnkgbmV6w6F2aXNsw71jaCBvcmfDoW7FryBkb2hsZWR1LCBhIG5lanNvdSBzIG5pbWkgdgpyb3pwb3J1Lgo3CgogCgogCgogCgphbmQgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY29udHJhY3QsIGl0IGhhcyByZWFzb24gdG8KYmVsaWV2ZSB0aGF0IGl0IGlzIG9yIGhhcyBiZWNvbWUgc3ViamVjdCB0byBsYXdzIG9yCnByYWN0aWNlcyBub3QgaW4gbGluZSB3aXRoIHRoZSByZXF1aXJlbWVudHMgdW5kZXIKcGFyYWdyYXBoIChhKSwgaW5jbHVkaW5nIGZvbGxvd2luZyBhIGNoYW5nZSBpbiB0aGUKbGF3cyBvZiB0aGUgdGhpcmQgY291bnRyeSBvciBhIG1lYXN1cmUgKHN1Y2ggYXMgYQpkaXNjbG9zdXJlIHJlcXVlc3QpIGluZGllYXRpbmcgYW4gYXBwbGljYXRpb24gb2Ygc3VjaApsYXdzIGluIHByYWN0aWNlIHRoYXQgaXMgbm90IGluIGxpbmUgd2l0aCB0aGUKcmVxdWlyZW1lbnRzIGluIHBhcmFncmFwaCAoYSkuCgpGb2xsb3dpbmcgYSBub3RpZmljYXRpb24gcHVyc3VhbnQgdG8gcGFyYWdyYXBoIChlKSwKb3IgaWYgdGhlIGRhdGEgZXhwb3J0ZXIgb3RoZXJ3aXNlIGhhcyByZWFzb24gdG8KYmVsaWV2ZSB0aGF0IHRoZSBkYXRhIGltcG9ydGVyIGNhbiBubyBsb25nZXJmdWxmaWwgaXRzCm9ibGlnYXRpb25zIHVuZGVyIHRoZXNlIENsYXVzZXMsIHRoZSBkYXRhIGV4cG9ydGVyCnNoYWxsIHByb21wdGx5IGlkZW50aWZ5IGFwcHJvcHJpYXRlIG1lYXN1cmVzIChlZy4KdGVjaG5pY2FsIG9yIG9yZ2FuaXNhdGlvbmFsIG1lYXN1cmVzIHRvIGVuc3VyZQpzZWN1cml0eSBhbmQgY29uZmlkZW50aWFsaXR5KSB0byBiZSBhZG9wdGVkIGJ5IHRoZQpkYXRhIGV4cG9ydGVyIGFuZC9vciBkYXRhIGltcG9ydGVyIHRvIGFkZHJlc3MgdGhlCnNpdHVhdGlvbi4gVGhlIGRhdGEgZXhwb3J0ZXIgc2hhbGwgc3VzcGVuZCB0aGUgZGF0YQp0cmFuc2ZlciBpZiBpdCBlb25zaWRlcnMgdGhhdCBubyBhcHByb3ByaWF0ZQpzYWZlZ3VhcmRzIGZvciBzdWNoIHRyYW5zZmVyIGNhbiBiZSBlbnN1cmVkLCBvciBpZgppbnN0cnVjdGVkIGJ5IHRoZSBjb21wZXRlbnQgc3VwZXJ2aXNvcnkgYXV0aG9yaXR5CnRvIGRvIHNvLiBJbiB0aGlzIGVhc2UsIHRoZSBkYXRhIGV4cG9ydGVyIHNoYWxsIGJlCmVudGl0bGVkIHRvIHRlcm1pbmF0ZSB0aGUgY29udHJhY3QsIGluc29mYXIgYXMgaXQKY29uY2VybnMgdGhlIHByb2Nlc3Npbmcgb2YgcGVyc29uYWwgZGF0YSB1bmRlcgp0aGVzZSBDbGF1c2VzLCBJZiB0aGUgY29udHJhY3QgaW52b2x2ZXMgbW9yZSB0aGFuCnR3byBQYXJ0aWVzLCB0aGUgZGF0YSBleHBvcnRlciBtYXkgZXhlcmNpc2UgdGhpcwpyaWdodCB0byB0ZXJtaW5hdGlvbiBvbmx5IHdpdGggcmVzcGVjdCB0byB0aGUKcmVsZXZhbnQgUGFydHksIHVubGVzcyB0aGUgUGFydGllcyBoYXZlIGFncmVlZApvdGhlcndpc2UuIFdoZXJlIHRoZSBjb250cmFjdCBpcyB0ZXJtaW5hdGVkCnB1cnN1YW50IHRvIHRoaXMgQ2xhdXNlLCBDbGF1c2UgMTYoZCkgYW5kIChlKSBzaGFsbAphcHBseS4KCkNsYXVzZSAxNQoKb2JsaWdhdGlvbnMgb2YgdGhlIGRhdGEgaW1wb3J0ZXIgaW4gY2FzZSBvZiBhY2Nlc3MgYnkKcHVibGljIGF1dGhvcml0aWVzCgoxNS4xIE5vdGlmaWVhdGlvbgoKVGhlIGRhdGEgaW1wb3J0ZXIgYWdyZWVzIHRvIG5vdGlmeXRoZSBkYXRhIGV4cG9ydGVyCmFuZCwgd2hlcmUgcG9zc2libGUsIHRoZSBkYXRhIHN1YmplY3QgcHJvbXB0bHkgKGlmCm5lY2Vzc2FyeSB3aXRoIHRoZSBoZWxwIG9mIHRoZSBkYXRhIGV4cG9ydGVyKSBpZiBpdDoKCmkpIHJlY2VpdmVzIGEgbGVnYWxseSBiaW5kaW5nIHJlcXVlc3QgZnJvbSBhCnB1YmxpYyBhdXRob3JpdHksIGluY2x1ZGluZyBqdWRpY2lhbAphdXRob3JpdGllcywgdW5kZXIgdGhlIGxhd3Mgb2YgdGhlIGNvdW50cnkKb2YgZGVzdGluYXRpb24gZm9yIHRoZSBkaXNjbG9zdXJlIG9mCnBlcnNvbmFsIGRhdGEgdHJhbnNmZXJyZWQgcHVyc3VhbnQgdG8KdGhlc2UgQ2xhdXNlczsgc3VjaCBub3RpZmljYXRpb24gc2hhbGwKaW5jbHVkZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGVyc29uYWwKZGF0YSByZXF1ZXN0ZWQsIHRoZSByZXF1ZXN0aW5nIGF1dGhvcml0eSwKdGhlIGxlZ2FsIGJhc2lzIGZvciB0aGUgcmVxdWVzdCBhbmQgdGhlCnJlc3BvbnNlIHByb3ZpZGVkOyBvcgoKaWkpIGJlY29tZXMgYXdhcmUgb2YgYW55IGRpcmVjdCBhY2Nlc3MgYnkKcHVibGljIGF1dGhvcml0aWVzIHRvIHBlcnNvbmFsIGRhdGEKdHJhbnNmZXJyZWQgcHVyc3VhbnQgdG8gdGhlc2UgQ2xhdXNlcyBpbgoKIAoKc291bGFkdSBzIHBvxb5hZGF2a3kgdXZlZGVuw71taSB2IHDDrXNtZW5pIGEpLiBbUG9rdWQgamRlCm8gbW9kdXwzMVbDvXZvemNlIMO6ZGFqxa8gcMWZZWTDoSBvem7DoW1lbsOtc3Byw6F2ZWlqCgpQbyBvem7DoW1lbsOtIHBvZGxlIHDDrXNtZW5lIGUpLCBuZWJvIHBva3VkIG3DoSB2w712b3pjZQrDumRhasWvIGppbmFrIGTFr3ZvZCBzZSBkb21uw612YXQsIMW+ZSBkb3ZvemNlIMO6ZGFqxa8gamnFvgpuZW3Fr8W+ZSBwbG5pdCBzdsOpIHBvdmlubm9zdGkgbmEgesOha2xhZMSbIHTEm2NodG8gZG9sb8W+ZWssCnbDvXZvemNlIMO6ZGFqxa8gbmVwcm9kbGVuxJsgdXLEjcOtIHZob2Ruw6Egb3BhdMWZZW7DrSAobmFwxZkuCnRlY2huaWNrw6EgbmVibyBvcmdhbml6YcSNbsOtIG9wYXTFmWVuw60gayB6YWppxaF0xJtuw60KYmV6cGXEjW5vc3RpIGEgZMWvdsSbcm5vc3RpKSwga3RlcsOhIG3DoSBwxZlpam1vdXQgdsO9dm96Y2UKw7pkYWrFryBhL25lYm8gZG92b3pjZSDDumRhasWvIGsgxZllxaFlbsOtIHNpdHVhY2UgW3Bva3VkIGpkZQpvIG1vZHV8MzFwxZnDrXBhZG7EmyBwbyBrb256dWx0YWNpIHNlIHNwcsOhdmNlbV0uVsO9dm96ZWUKw7pkYWrFryBwb3phc3RhdsOtIHDFmWVkw6F2w6Fuw60gw7pkYWrFrywgcG9rdWQgc2UgZG9tbsOtdsOhLCDFvmUKcHJvIHRvdG8gcMWZZWTDoXbDoW7DrSBuZW1vaG91IGLDvXQgemFqacWhdMSbbnkgxb7DoWRuw6kgdmhvZG7DqQp6w6FydWt5LCBuZWJvIHBva3VkIG11IGTDoSBwb2t5biBbcG9rdWQgamRlIG8gbW9kdWwgMzoKc3Byw6F2Y2UgbmVib2wgcMWZw61zbHXFoW7DvSBkb3pvcm92w70gw7rFmWFkLiBWdG9tdG8gcMWZw61wYWTEmwpqZSB2w712b3pjZSDDumRhasWvIG9wcsOhdm7Em24gdnlwb3bEm2TEm3Qgc21sb3V2dSwgcG9rdWQKamRlIG8genByYWNvdsOhbsOtIG9zb2Juw61jaCDDumRhasWvIHBvZGxlIHTEm2NodG8gZG9sb8W+ZWsuCkplc3RsacW+ZSBzbWxvdXZhIHphaHJudWplIHbDrWNlIG5lxb4gZHbEmyBzbWx1dm7DrSBzdHJhbnksCm3Fr8W+ZSB2w712b3pjZSDDumRhasWvIHRvdG8gcHLDoXZvIG5hIHZ5cG92xJt6ZW7DrSB1cGxhdG5pdApwb3V6ZSB2ZSB2enRhaHUgayBwxZnDrXNsdcWhbsOpIHN0cmFuxJssIHBva3VkIHNlIHN0cmFueQpuZWRvaG9kbHkgamluYWsuIEplc3RsacW+ZSBqZSBzbWxvdXZhIHZ5cG92xJt6ZW5hIHBvZGxlCnTDqXRvIGRvbG/Fvmt5LCBwb3XFvmlqZSBzZSBkb2xvxb5rYSAxNiBww61zbS4gZCkgYSBlKS4KCkRvbG/FvmthIDE1ClBvdmlubm9zdCBkb3ZvemNlIMO6ZGFqxa8gdiBwxZnDrXBhZMSbIHDFmcOtc3R1cHUgb3Jnw6Fuxa8KdmXFmWVqbsOpIG1vY2kKCjE1LjEuIE96bsOhbWVuw60KCmEpIERvdm96Y2Ugw7pkYWrFryBzb3VobGFzw60gcyB0w61tLCDFvmUgbmVwcm9kbGVuxJsKdXbEm2RvbcOtIHbDvXZvemNlIMO6ZGFqxa8sIGEgamUtSWkgdG8gbW/Fvm7DqSwgc3ViamVrdArDumRhasWvICh2IHDFmcOtcGFkxJsgcG90xZllYnkgNSBwb21vZcOtdsO9dm96ZWUgw7pkYWrFryksCnBva3VkOgoKaSkgbmEgesOha2xhZMSbIHByw6F2bsOtY2ggcMWZZWRwaXPFryB6ZW3EmyB1csSNZW7DrQpvYmRyxb7DrSBwcsOhdm7EmyB6w6F2YXpub3Ugxb7DoWRvc3Qgb2Qgb3Jnw6FudQp2ZcWZZWpuw6kgbW9jaSwgdsSNZXRuxJsgc291ZG7DrWNoIG9yZ8OhbsWvLCBvCnpwxZnDrXN0dXBuxJtuw61vc29ibsOtZWggw7pkYWrFryBwxZllZGFuw71jaCBwb2RsZQp0xJtjaHRvIGRvbG/FvmVrOyB0YWtvdsOpIG96bsOhbWVuw60gb2JzYWh1amUKaW5mb3JtYWNlIG8gcG/FvmFkb3ZhbsO9Y2ggb3NvYm7DrWNoIMO6ZGFqw61jaCwKZG/FvmFkdWrDrWXDrW0gb3Jnw6FudSwgcHLDoXZuw61tIHrDoWtsYWR1IMW+w6Fkb3N0aQphIHBvc2t5dG51dMOpIG9kcG92xJtkaSwgbmVibwoKaWkpIHNlIGRvenbDrSBvamFrw6lta29saSBwxZnDrW3DqW0gcMWZw61zdHVwdSBvcmfDoW7Frwp2ZcWZZWpuw6kgbW9jaSBrIG9zb2Juw61tIMO6ZGFqxa9tIHDFmWVkw6F2YW7DvW0KcG9kbGUgdMSbY2h0byBkb2xvxb5layB2IHNvdWxhZHUgcyBwcsOhdm7DrW1pCnDFmWVkcGlzeSB6ZW3EmyB1csSNZW7DrTsgdGFrb3bDqSBvem7DoW1lbsOtCgogCgogCgogCgogCgogCgpiKQoKQykKCmQpCgoxNS4yCgphY2NvcmRhbmNlIHdpdGggdGhlIGxhd3Mgb2Z0aGUgY291bnRyeSBvZgpkZXN0aW5hdGlvbjsgc3VjaCBub3RpZmljYXRpb24gc2hhbGwgaW5jbHVkZQphfHwgaW5mb3JtYXRpb24gYXZhaWxhYmxlIHRvIHRoZSBpbXBvcnRlcgoKSWZ0aGUgZGF0YSBpbXBvcnRlciBpcyBwcm9oaWJpdGVkIGZyb20gbm90aWZ5aW5nIHRoZQpkYXRhIGV4cG9ydGVyIGFuZC9vciB0aGUgZGF0YSBzdWJqZWN0IHVuZGVyIHRoZQpsYXdzIG9mdGhlIGNvdW50cnkgb2ZkZXN0aW5hdGlvbix0aGUgZGF0YSBpbXBvcnRlcgphZ3JlZXMgdG8gdXNlIGl0cyBiZXN0IGVmZm9ydHMgdG8gb2J0YWluIGEgd2FpdmVyIG9mCnRoZSBwcm9oaWJpdGlvbiwgd2l0aCBhIHZpZXcgdG8gY29tbXVuaWNhdGluZyBhcwptdWNoIGluZm9ybWF0aW9uIGFzIHBvc3NpYmxlLCBhcyBzb29uIGFzIHBvc3NpYmxlLgpUaGUgZGF0YSBpbXBvcnRlciBhZ3JlZXMgdG8gZG9jdW1lbnQgaXRzIGJlc3QKZWZmb3J0cyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGRlbW9uc3RyYXRlIHRoZW0gb24KcmVxdWVzdCBvZiB0aGUgZGF0YSBleHBvcnRlcgoKV2hlcmUgcGVybWlzc2libGUgdW5kZXIgdGhlIGxhd3Mgb2Z0aGUgY291bnRyeSBvZgpkZXN0aW5hdGlvbiwgdGhlIGRhdGEgaW1wb3J0ZXIgYWdyZWVzIHRvIHByb3ZpZGUgdGhlCmRhdGEgZXhwb3J0ZXIsIGF0IHJlZ3VsYXIgaW50ZXJ2YWxzIGZvciB0aGUgZHVyYXRpb24Kb2YgdGhlIGNvbnRyYWN0LCB3aXRoIGFzIG11Y2ggcmVsZXZhbnQgaW5mb3JtYXRpb24KYXMgcG9zc2libGUgb24gdGhlIHJlcXVlc3RzIHJlY2VpdmVkIChpbiBwYXJ0aWN1bGFyLApudW1iZXIgb2YgcmVxdWVzdHMsIHR5cGUgb2YgZGF0YSByZXF1ZXN0ZWQsCnJlcXVlc3RpbmcgYXV0aG9yaXR5L2llcywgd2hldGhlciByZXF1ZXN0cyBoYXZlCmJlZW4gY2hhbGxlbmdlZCBhbmQgdGhlIG91dGNvbWUgb2Ygc3VjaApjaGFsbGVuZ2VzLCBldGMuKS4KClRoZSBkYXRhIGltcG9ydGVyIGFncmVlcyB0byBwcmVzZXJ2ZSB0aGUKaW5mb3JtYXRpb24gcHVyc3VhbnQgdG8gcGFyYWdyYXBoNShhKXRvIChjKSBmb3IgdGhlCmR1cmF0aW9uIG9mdGhlIGNvbnRyYWN0YW5kIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHRoZQpjb21wZXRlbnQgc3VwZXJ2aXNvcnkgYXV0aG9yaXR5IG9uIHJlcXVlc3QuClBhcmFncmFwaHMgKGEpIHRvIChjKSBhcmUgd2l0aG91dCBwcmVqdWRpY2UgdG8gdGhlCm9ibGlnYXRpb24gb2YgdGhlIGRhdGEgaW1wb3J0ZXIgcHVyc3VhbnQgdG8gQ2xhdXNlCjE0KGUpIGFuZCBDbGF1c2UgMTYgdG8gaW5mb3JtIHRoZSBkYXRhIGV4cG9ydGVyCnByb21wdGx5IHdoZXJlIGl0IGlzIHVuYWJsZSB0byBjb21wbHkgd2l0aCB0aGVzZQpDbGF1c2VzLgoKUmV2aWV3IG9mIEllZ2FsaXR2IGFuZCBkYXRhIG1pbmltaXNhdGlvbgoKVGhlIGRhdGEgaW1wb3J0ZXIgYWdyZWVzIHRvIHJldmlldyB0aGUgbGVnYWxpdHkgb2YKdGhlIHJlcXVlc3QgZm9yIGRpc2Nsb3N1cmUsIGluIHBhcnRpY3VsYXIgd2hldGhlciBpdApyZW1haW5zIHdpdGhpbiB0aGUgcG93ZXJzIGdyYW50ZWQgdG8gdGhlCnJlcXVlc3RpbmcgcHVibGljIGF1dGhvcml0eSwgYW5kIHRvIGNoYWxsZW5nZSB0aGUKcmVxdWVzdCBpZiwgYWZ0ZXIgY2FyZWZ1bCBhc3Nlc3NtZW50LCBpdCBjb25jbHVkZXMKdGhhdCB0aGVyZSBhcmUgcmVhc29uYWJsZSBncm91bmRzIHRvIGNvbnNpZGVyIHRoYXQKdGhlIHJlcXVlc3QgaXMgdW5sYXdmdWwgdW5kZXIgdGhlIGxhd3Mgb2YgdGhlCmNvdW50cnkgb2YgZGVzdGluYXRpb24sIGFwcGxpY2FibGUgb2JsaWdhdGlvbnMgdW5kZXIKaW50ZXJuYXRpb25hbCBsYXcgYW5kIHByaW5jaXBsZXMgb2YgaW50ZXJuYXRpb25hbApjb21pdHkuIFRoZSBkYXRhIGltcG9ydGVyIHNoYWxsLCB1bmRlciB0aGUgc2FtZQpjb25kaXRpb25zLCBwdXJzdWUgcG9zc2liaWxpdGllcyBvZiBhcHBlYWwuIFdoZW4KY2hhbGxlbmdpbmcgYSByZXF1ZXN0LCB0aGUgZGF0YSBpbXBvcnRlciBzaGFsbCBzZWVrCmludGVyaW0gbWVhc3VyZXMgd2l0aCBhIHZpZXcgdG8gc3VzcGVuZGluZyB0aGUKZWZmZWN0cyBvZiB0aGUgcmVxdWVzdCB1bnRpbCB0aGUgY29tcGV0ZW50IGp1ZGljaWFsCmF1dGhvcml0eSBoYXMgZGVjaWRlZCBvbiBpdHMgbWVyaXRzLiB8dCBzaGFsbCBub3QKZGlzY2xvc2UgdGhlIHBlcnNvbmFsIGRhdGEgcmVxdWVzdGVkIHVudGlsIHJlcXVpcmVkCnRvIGRvIHNvIHVuZGVyIHRoZSBhcHBsaWNhYmxlIHByb2NlZHVyYWwgcnVsZXMuClRoZXNlIHJlcXVpcmVtZW50cyBhcmUgd2l0aG91dCBwcmVqdWRpY2UgdG8gdGhlCm9ibGlnYXRpb25zIG9mdGhlIGRhdGEgaW1wb3J0ZXIgdW5kZXIgQ2xhdXNlIDE0KGUpLgoKIAoKb2JzYWh1amUgdsWhZWNobnkgaW5mb3JtYWNlCgpkb3ZvemNpLgoKZG9zdHVwbmUKCmIpIFBva3VkIGplIHBvZGxlIHByw6F2bsOtY2ggcMWZZWRwaXPFryB6ZW3EmyB1csSNZW7DrQpkb3ZvemNpIHVkYWrFryB6YWvDoXrDoW5vIGluZm9ybW92YXQgdsO9dm96Y2UKdWRhasWvIGEvbmVibyBzdWJqZWt0IHVkYWrFrywgc291aGxhc8OtIGRvdm96Y2UKw7pkYWrFryBzIHTDrW0sIMW+ZSB6YSDDusSNZWxlbSBjbyBuZWpyeWNobGVqxaHDrWhvCnNkxJtsZW7DrSBjbyBuZWp2xJt0xaHDrWhvIG1ub8W+c3R2w60gaW5mb3JtYWPDrQp2eW5hbG/FvsOtIG1heGltw6FsbsOtIMO6c2lsw60sIGFieSBvZCB0b2hvdG8gesOha2F6dQpieWxvIHVwdcWhdMSbbm8uIERvdm96Y2UgdWRhasWvIHNvdWhsYXPDrSwgxb5lCnpkb2t1bWVudHVqZSBzdmUgbWF4aW3DoWxuw60gw7pzaWzDrSwgYWJ5amUgbW9obApuYSDFvsOhZG9zdCB2w712b3pjZSB1ZGFqxa8gcHJva8OhemF0LgoKQ10gSmUtSWkgdG8gcG92b2xlbm8gcHLDoXZuw61taSBwxZllZHBpc3kgemVtxJsKdXLEjWVuw60sIGRvdm96Y2UgdWRhasWvIHNvdWhsYXPDrSwgxb5lIGJ1ZGUKcG9za3l0b3ZhdCB2w712b3pjaSDDumRhasWvIHYgcHJhdmlkZWxuw71jaAppbnRlcnZhbGVjaCBwbyBkb2J1IHRydsOhbsOtIHNtbG91dnkgY28KbmVqcmVsZXZhbnRuxJtqxaHDrSBpbmZvcm1hY2UgbyBwxZlpamF0w71jaArFvsOhZG9zdGVjaCAoemVqbWVuYSBpbmZvcm1hY2UgbyBwb8SNdHUgxb7DoWRvc3TDrSwKZHJ1aHUgcG/FvmFkb3ZhbsO9Y2ggdWRhasWvLCBkb8W+YWR1asOtY8OtbQpvcmfDoW51IG5lYm8gb3Jnw6FuZWNoLCB6ZGEgYnlseSB0eXRvIMW+w6Fkb3N0aQpuYXBhZGVueSBhIHbDvXNsZWRlayB0YWtvdmVobyBuYXBhZGVuw60gYXRkLikuCltQb2t1ZCBqZGUgbyBtb2R1bCAzOiBWw712b3pjZSB1ZGFqxa8gcMWZZWTDoQppbmZvcm1hY2UgNXByw6F2Y2kuXQoKZCkgRG92b3pjZSB1ZGFqxa8gc291aGxhc8Otc3TDrW0sIMW+ZSBwbyBkb2J1IHRydsOhbsOtCnNtbG91dnkgYnVkZSBpbmZvcm1hY2UgcG9kbGUgcMOtc21lbmUgYSkgYcW+IGMpCnVjaG92w6F2YXQgYSBuYSB2ecW+w6Fkw6Fuw60gamUgcG9za3l0bmUKcMWZw61zbHXFoW7DqW11IGRvem9yb3ZlbXUgw7rFmWFkdS4KCmUpIFDDrXNtZW55IGEpIGHFviBjKSBuZW7DrSBkb3TEjWVuYSBwb3Zpbm5vc3QKZG92b3pjZSDDumRhasWvIHBvZGxlIGRvbG/Fvmt5IDE0IHDDrXNtLiBlKSBhCmRvbG/Fvmt5IDE2IG5lcHJvZGxlbsSbIGluZm9ybW92YXQgdsO9dm96Y2UKdWRhasWvLCBwb2t1ZCBuZW7DrSBzY2hvcGVuIHR5dG8gZG9sb8W+a3kKZG9kcsW+b3ZhdC4KCjE1LjIuIFDFmWV6a3VtIHrDoWtvbm5vc3RpIGEgbWluaW1hbGl6YWNlIMO6ZGFqxa8KCmEpIERvdm96Y2Ugw7pkYWrFryBzb3VobGFzw60gcyB0w61tLCDFvWUgcMWZZXprb3Vtw6EKesOha29ubm9zdCDFvcOhZG9zdGkgbyBwb3NreXRudXTDrSDDumRhasWvLCB6ZWptw6luYQp6ZGEgbmVwxZlla3JvxI1pbGEgbWV6ZSBwcmF2b21vY8OtIHVkxJtsZW7DvWNoCmRvxb5hZHVqw61jw61tdSBvcmfDoW51IHZlxZllam7DqSBtb2NpLCBhIMW9ZQrFvcOhZG9zdCBuYXBhZG5lLCBwb2t1ZCBwbyBwZcSNbGl2w6ltCnBvc291emVuw60gZG9qZGUgayB6w6F2xJtydSwgxb1lIGV4aXN0dWrDrQpvcG9kc3RhdG7Em27DqSBkxa92b2R5IHNlIGRvbW7DrXZhdCwgxb1lIMW9w6Fkb3N0amUKcG9kbGUgcHLDoXZuw61jaCBwxZllZHBpc8WvIHplbcSbIHVyxI1lbsOtLApwbGF0bsO9Y2ggesOhdmF6a8WvIHBvZGxlIG1lemluw6Fyb2Ruw61obyBwcsOhdmEKYSB6w6FzYWQgbWV6aW7DoXJvZG7DrSB6ZHZvxZlpbG9zdGkgcHJvdGlwcsOhdm7DrS4KRG92b3pjZSDDumRhasWvIHphIHN0ZWpuw71jaCBwb2Rtw61uZWsgdnl1xb7DrXbDoQptb8W+bm9zdMOtIG9kdm9sw6Fuw60uIFDFmWkgbmFwYWRlbsOtIMW9w6Fkb3N0aQpkb3ZvemNlIMO6ZGFqxa8gcMWZaWptZSBwxZllZGLEm8W+bsOhIG9wYXTFmWVuw60gcwpjw61sZW0gcG96YXN0YXZpdCDDusSNaW5reSDFvcOhZG9zdGksIGRva3VkCnDFmcOtc2x1xaFuw70gc291ZG7DrSBvcmfDoW4gbmVyb3pob2RuZSBvIGplasOtCm9wb2RzdGF0bsSbbm9zdGkuIE5lenDFmcOtc3R1cG7DrSBwb8W+YWRvdmFuw6kKb3NvYm7DrSDDumRhamUsIGRva3VkIG11IHRha292w6EgcG92aW5ub3N0Cm5lYnVkZSBzdGFub3ZlbmEgbmEgesOha2xhZMSbIHBsYXRuw71jaApwcm9jZXNuw61jaCBwcmF2aWRlbC4gVMSbbWl0byBwb8W+YWRhdmt5Cm5lanNvdSBkb3TEjWVueSBwb3Zpbm5vc3RpIGRvdm96Y2Ugw7pkYWrFrwpwb2RsZSBkb2xvxb5reSAxNCBww61zbS4gZSkuCgpiKSBEb3ZvemNlIMO6ZGFqxa8gc291aGxhc8OtLCDFvWUgemRva3VtZW50dWplIHN2w6kKcHLDoXZuw60gcG9zb3V6ZW7DrSBpIGpha8Opa29saSBuYXBhZGVuw60gxb3DoWRvc3RpIG8KCiAKCiAKCiAKCiAKCiAKCmIpCgpDKQoKYSkKCmIpCgpUaGUgZGF0YSBpbXBvcnRlciBhZ3JlZXMgdG8gZG9jdW1lbnQgaXRzIGxlZ2FsCmFzc2Vzc21lbnQgYW5kIGFueSBjaGFsbGVuZ2UgdG8gdGhlIHJlcXVlc3QgZm9yCmRpc2Nsb3N1cmUgYW5kLCB0byB0aGUgZXh0ZW50IHBlcm1pc3NpYmxlIHVuZGVyIHRoZQpsYXdzIG9mIHRoZSBjb3VudHJ5IG9mIGRlc3RpbmF0aW9uLCBtYWtlIHRoZQpkb2N1bWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgZGF0YSBleHBvcnRlci4gSXQKc2hhbGwgYWxzbyBtYWtlIGl0IGF2YWlsYWJsZSB0byB0aGUgY29tcGV0ZW50CnN1cGVydmlzb3J5IGF1dGhvcml0eSBvbiByZXF1ZXN0LgoKVGhlIGRhdGEgaW1wb3J0ZXIgYWdyZWVzIHRvIHByb3ZpZGUgdGhlIG1pbmltdW0KCmFtb3VudCBvZiBpbmZvcm1hdGlvbiBwZXJtaXNzaWJsZSB3aGVuCnJlc3BvbmRpbmcgdG8gYSByZXF1ZXN0IGZvciBkaXNjbG9zdXJlLCBiYXNlZCBvbiBhCgpyZWFzb25hYmxlIGludGVycHJldGF0aW9uIG9mdGhlIHJlcXVlc3QuCgpDbGF1c2UgMTYKCk5vbi1lb21wbGlhbmVlIHdpdGggdGhlIENsYXVzZXMgYW5kIHRlcm1pbmF0aW9uCgpUaGUgZGF0YSBpbXBvcnRlciBzaGFsbCBwcm9tcHRseSBpbmZvcm0gdGhlIGRhdGEKZXhwb3J0ZXIgaWYgaXQgaXMgdW5hYmxlIHRvIGNvbXBseSB3aXRoIHRoZXNlIENsYXVzZXMsCmZvciBXaGF0ZXZlciByZWFzb24uCgpJbiB0aGUgZXZlbnQgdGhhdCB0aGUgZGF0YSBpbXBvcnRlciBpcyBpbiBicmVhY2ggb2YKdGhlc2UgQ2xhdXNlcyBvciB1bmFibGUgdG8gY29tcGx5IHdpdGggdGhlc2UKQ2xhdXNlcywgdGhlIGRhdGEgZXhwb3J0ZXIgc2hhbGwgc3VzcGVuZCB0aGUgdHJhbnNmZXIKb2YgcGVyc29uYWwgZGF0YSB0byB0aGUgZGF0YSBpbXBvcnRlcgpjb21wbGlhbmNlIGlzIGFnYWluIGVuc3VyZWQgb3IgdGhlIGNvbnRyYWN0IGlzCgp1bnRpbAoKdGVybWluYXRlZC4gVGhpcyBpcyB3aXRob3V0IHByZWp1ZGljZSB0byBDbGF1c2UgMTQoZikuClRoZSBkYXRhIGV4cG9ydGVyIHNoYWxsIGJlIGVudGl0bGVkIHRvIHRlcm1pbmF0ZSB0aGUKY29udHJhY3QsIGluc29mYXIgYXMgaXQgY29uY2VybnMgdGhlIHByb2Nlc3Npbmcgb2YKcGVyc29uYWwgZGF0YSB1bmRlcnRoZXNlIENsYXVzZXMsIHdoZXJlOgoKaSkgdGhlIGRhdGEgZXhwb3J0ZXIgaGFzIHN1c3BlbmRlZCB0aGUKdHJhbnNmZXIgb2YgcGVyc29uYWwgZGF0YSB0byB0aGUgZGF0YQppbXBvcnRlciBwdXJzdWFudCB0byBwYXJhZ3JhcGggKGIpIGFuZApjb21wbGlhbmNlIHdpdGggdGhlc2UgQ2xhdXNlcyBpcyBub3QKcmVzdG9yZWQgd2l0aGluIGEgcmVhc29uYWJsZSB0aW1lIGFuZCBpbgoKYW55IGV2ZW50IHdpdGhpbiBvbmUgbW9udGggb2YKc3VzcGVuc2lvbjsKaWkpIHRoZSBkYXRhIGltcG9ydGVyIGlzIGluIHN1YnN0YW50aWFsIG9yCgpwZXJzaXN0ZW50IGJyZWFjaCBvZiB0aGVzZSBDbGF1c2VzOyBvcgoKaWlpKSB0aGUgZGF0YSBpbXBvcnRlciBmYWlscyB0byBjb21wbHkgd2l0aCBhCmJpbmRpbmcgZGVjaXNpb24gb2YgYSBjb21wZXRlbnQgY291cnQgb3IKc3VwZXJ2aXNvcnkgYXV0aG9yaXR5IHJlZ2FyZGluZyBpdHMKb2JsaWdhdGlvbnMgdW5kZXIgdGhlc2UgQ2xhdXNlcywKCnxuIHRoZXNlIGNhc2VzLCBpdCBzaGFsbCBpbmZvcm0gdGhlIGNvbXBldGVudCBzdXBlcnZpc29yeQphdXRob3JpdHkuIFdoZXJlIHRoZSBjb250cmFjdCBpbnZvbHZlcyBtb3JlIHRoYW4gdHdvCgpQYXJ0aWVzLCB0aGUgZGF0YSBleHBvcnRlciBtYXkgZXhlcmNpc2UgdGhpcyByaWdodCB0bwp0ZXJtaW5hdGlvbiBvbmx5d2l0aCByZXNwZWN0dG8gdGhlIHJlbGV2YW50IFBhcnR5LCB1bmxlc3MKdGhlIFBhcnRpZXMgaGF2ZSBhZ3JlZWQgb3RoZXJ3aXNlLgoKZCkKClBlcnNvbmFsIGRhdGEgY29sbGVjdGVkIGJ5IHRoZSBkYXRhIGV4cG9ydGVyIGluIHRoZQpFVSB0aGF0IGhhcyBiZWVuIHRyYW5zZmVycmVkIHByaW9yIHRvIHRoZQp0ZXJtaW5hdGlvbiBvZiB0aGUgY29udHJhY3QgcHVyc3VhbnQgdG8gcGFyYWdyYXBoCihjKSBzaGFsbCBpbW1lZGlhdGVseSBiZSBkZWxldGVkIGluIGl0cyBlbnRpcmV0eSwKaW5jbHVkaW5nIGFueSBjb3B5IHRoZXJlb2YuXSBUaGUgZGF0YSBpbXBvcnRlciBzaGFsbApjZXJ0aWZ5IHRoZSBkZWxldGlvbiBvZnRoZSBkYXRhIHRvIHRoZSBkYXRhIGV4cG9ydGVyLgpVbnRpbCB0aGUgZGF0YSBpcyBkZWxldGVkIG9yIHJldHVybmVkLCB0aGUgZGF0YQppbXBvcnRlciBzaGFsbCBjb250aW51ZSB0byBlbnN1cmUgY29tcGxpYW5jZSB3aXRoCnRoZXNlIENsYXVzZXMsIHxuIGNhc2Ugb2YgbG9jYWwgbGF3cyBhcHBsaWNhYmxlIHRvIHRoZQoKIAoKcG9za3l0bnV0w60gw7pkYWrFryBhIHYgcm96c2FodSBwb3ZvbGVuw6ltCnByw6F2bsOtbWkgcMWZZWRwaXN5IHplbcSbIHVyxI1lbsOtIHpwxZnDrXN0dXBuw60KZG9rdW1lbnRhY2kgdsO9dm96Y2kgw7pkYWrFry4gTmEgcG/FvsOhZMOhbsOtIGppCnJvdm7Em8W+IHpwxZnDrXN0dXBuw60gcMWZw61zbHXFoW7DqW11IGRvem9yb3bDqW11CsO6xZlhZHUuIFtQb2t1ZCBqZGUgbyBtb2R1bCAzOiBWw712b3plZSDDumRhasWvCnBvc291emVuw60genDFmcOtc3R1cG7DrSBzcHLDoXZjaS5dCgpDXSBEb3ZvemNlIMO6ZGFqxa8gc291aGxhc8OtIHMgcG9za3l0bnV0w61tCm1pbmltw6FsbsOtaG8gcMWZw61wdXN0bsOpaG8gbW5vxb5zdHbDrSBpbmZvcm1hY8OtCnDFmWkgb2Rwb3bEm2RpIG5hIMW+w6Fkb3N0IG8genDFmcOtc3R1cG7Em27DrSwgYSB0byBuYQp6w6FrbGFkxJsgcMWZaW3Em8WZZW7DqWhvIHbDvWtsYWR1IMW9w6Fkb3N0aS4KCkRvbG/FvmthIDE2CgpOZWRvZHLFvmVuw60gZG9sb8W+ZWsgYSB2eXBvdsSbemVuw60KYSkgRG92b3pjZSB1ZGFqxa8gbmVwcm9kbGVuxJsgaW5mb3JtdWplIHbDvXZvemNlCsO6ZGFqxa8sIHBva3VkIG5lbsOtIHogamFrw6lob2tvbGkgZMWvdm9kdSBzY2hvcGVuIHTDvXRvCmRvbG/Fvmt5IGRvZHLFvmV0LgpiKSBQb2t1ZCBkb3ZvemNlIHVkYWrFryBwb3J1xaHDrSB0w710byBkb2xvxb5reSBuZWJvCm5lbsOtIHNjaG9wZW4gdMO9dG8gZG9sb8W+a3kgZG9kcsW+ZXQsIHbDvXZvemNlIHVkYWrFrwpwb3phc3RhdsOtIHDFmWVkw6F2w6Fuw60gb3NvYm7DrWNoIMO6ZGFqxa8gZG92b3pjaSB1ZGFqxa8sCmRva3VkIG5lbsOtIGRvZHLFvm92w6Fuw60gb3DEm3QgemFqacWhdMSbbm8gbmVibyBzbWxvdXZhCnZ5cG92xJt6ZW5hLiBUw61tdG8gbmVuw61kb3TEjWVuYSBkb2xvxb5rYSAxNCBww61zbS4gZikuCm8pIFbDvXZvemNlIMO6ZGFqxa8gamUgb3Byw6F2bsSbbiB2eXBvdsSbZMSbdCBzbWxvdXZ1IHYKcm96c2FodSwgdiBuxJttxb4gc2UgamVkbsOhIG8genByYWNvdsOhbsOtIG9zb2Juw61jaCDDumRhasWvCnBvZGxlIHTEm2NodG8gZG9sb8W+ZWssIHBva3VkOgoKaSkgdsO9dm96Y2UgdWRhasWvIHBvemFzdGF2aWwgcMWZZWTDoXbDoW7DrW9zb2Juw61laAp1ZGFqxa8gZG92b3pjaSDDumRhasWvIHBvZGxlIHDDrXNtLiBiKSBhCmRvZHLFvm92w6Fuw610xJtlaHRvIGRvbG/FvmVrIG5lbsOtIHYgcMWZaW3Em8WZZW7DqQpsaMWvdMSbIGEgdiBrYcW+ZMOpbSBwxZnDrXBhZMSbIGRvamVkbm9obyBtxJtzw61jZQpvZCBwb3phc3RhdmVuw61vYm5vdmVubzsKCmlpKSBkb3ZvemNlIHVkYWrFryB0w710byBkb2xvxb5reSBwb2RzdGF0bsSbIG5lYm8KdHJ2YWxlIHBvcnXFoXVqZSBuZWJvCgppaWkpIGRvdm96Y2UgdWRhasWvIG5lZG9kcsW+w60gesOhdmF6bsOpIHJvemhvZG51dMOtCnDFmcOtc2x1xaFuw6lobyBzb3VkdSBuZWJvIGRvem9yb3bDqWhvIMO6xZlhZHUKdMO9a2Fqw61jw61obyBzZSBqZWhvIHBvdmlubm9zdMOtIHBvZGxlIHTEm2NodG8KCmRvbG/FvmVrLgoKViB0YWtvdsO9Y2ggcMWZw61wYWRlY2ggbyBuZWRvZHLFvmVuw60gaW5mb3JtdWplIHDFmcOtc2x1xaFuw70KZG96b3JvdsO9IMO6xZlhZCBbcG9rdWQgamRlIG8gbW9kdWwgMzogYSBzcHLDoXZjZV0uIFBva3VkCnNtbG91dmEgemFocm51amUgdsOtY2UgbmXFviBkdsSbIHNtbHV2bsOtc3RyYW55LCBtxa/FvmUgdsO9dm96Y2UKdWRhasWvIHRvdG8gcHLDoXZvIG5hIHZ5cG92xJt6ZW7DrSB1cGxhdG5pdCBwb3V6ZSB2ZSB2enRhaHUgawpwxZnDrXNsdcWhbsOpIHN0cmFuxJssIHBva3VkIHNlIHN0cmFueSBuZWRvaG9kbHlqaW5hay4KCmQpIE9zb2Juw63DumRhamUgc2hyb23DocW+ZMSbbsOpIHbDvXZvemNlbSB1ZGFqxa8gdkVVLAprdGVyw6kgYnlseSBwxZllZMOhbnkgcMWZZWQgdnlwb3bEm3plbsOtbSBzbWxvdXZ5IHBvZGxlCnDDrXNtZW5lIGMpLCBtdXPDrSBiw710IG5lcHJvZGxlbsSbIHZ5bWF6w6FueSB2IGNlbMOpbQpyb3pzYWh1LCB2xI1ldG7EmyB2ZcWha2Vyw71jaCBqZWppY2gga29wacOtLl0gRG92b3pjZSB1ZGFqxa8KcG90dnJkw60gdsO9dm96Y2kgdWRhasWvLCDFvmUgYnlseSB1ZGFqZSB2eW1hesOhbnkuIERva3VkCm5lanNvdSB1ZGFqZSB2eW1hesOhbnkgbmVibyB2csOhY2VueSwgZG92b3pjZSB1ZGFqxa8KbmFkw6FsZSB6YWppxaF0J3VqZSBzb3VsYWQgcyB0xJttaXRvIGRvbG/FvmthbWkuIFYgcMWZw61wYWTEmywKxb5lIHNlIG5hIGRvdm96Y2UgdWRhasWvIHZ6dGFodWrDrSBtw61zdG7DrSBwcsOhdm7DrSBwxZllZHBpc3ksCmt0ZXLDqSBtdSB6YWthenVqw60gcMWZZWRhbsOpIG9zb2Juw60gw7pkYWplIHZyw6F0aXQgbmVibwp2eW1hemF0LCBkb3ZvemNlIHVkYWrFryB6YXJ1xI11amUsIMW+ZSBidWRlIGkgbmFkw6FsZQp6YWppxaHFpW92YXQgZG9kcsW+b3bDoW7DrSB0xJtjaHRvIGRvbG/FvmVrIGEgYnVkZSB1ZGFqZQoKIAoKMTAKCiAKCiAKCiAKCiAKCmRhdGEgaW1wb3J0ZXIgdGhhdCBwcm9oaWJpdCB0aGUgcmV0dXJuIG9yIGRlbGV0aW9uIG9mCnRoZSB0cmFuc2ZlcnJlZCBwZXJzb25hbCBkYXRhLCB0aGUgZGF0YSBpbXBvcnRlcgp3YXJyYW50cyB0aGF0IGl0IHdpbGwgY29udGludWUgdG8gZW5zdXJlIGNvbXBsaWFuY2UKd2l0aCB0aGVzZSBDbGF1c2VzIGFuZCB3aWxsIG9ubHkgcHJvY2VzcyB0aGUgZGF0YSB0bwp0aGUgZXh0ZW50IGFuZCBmb3IgYXMgbG9uZyBhcyByZXF1aXJlZCB1bmRlciB0aGF0CmxvY2FsIGxhdy4KCmUpIEVpdGhlciBQYXJ0eSBtYXkgcmV2b2tlIGl0cyBhZ3JlZW1lbnQgdG8gYmUgYm91bmQKYnkgdGhlc2UgKGkpIHRoZSBFdXJvcGVhbgpDb21taXNzaW9uIGFkb3B0cyBhIGRlY2lzaW9uIHB1cnN1YW50IHRvIEFydGljbGUKNDUoMykgb2YgUmVndWxhdGlvbiAoRVUpIDIwMTYvNjc5IHRoYXQgY292ZXJzIHRoZQp0cmFuc2ZlciBvZiBwZXJzb25hbCBkYXRhIHRvIHdoaWNoIHRoZXNlIENsYXVzZXMKYXBwbHk7IG9yIChpaSkgUmVndWxhdGlvbiAoRVUpIDIwMTYvNjc5IGJlY29tZXMgcGFydApvZiB0aGUgbGVnYWwgZnJhbWV3b3JrIG9mIHRoZSBjb3VudHJ5IHRvIHdoaWNoIHRoZQpwZXJzb25hbCBkYXRhCnByZWp1ZGljZSB0byBvdGhlciBvYmxpZ2F0aW9ucyBhcHBseWluZyB0byB0aGUKCkNsYXVzZXMgd2hlcmUKCmlzIHRyYW5zZmVycmVkLiBUaGlzIGlzIHdpdGhvdXQKcHJvY2Vzc2luZyBpbiBxdWVzdGlvbiB1bmRlciBSZWd1bGF0aW9uIChFVSkKMjAxNi82NzkuCgpDbGF1c2UgMTcKR292ZXJuaW5nIGxhdwpUaGVzZSBDbGF1c2VzIHNoYWxsIGJlIGdvdmVybmVkIGJ5IHRoZSBsYXcgb2YgYSBjb3VudHJ5CmFsbG93aW5nIGZvciB0aGlyZC1wYXJ0eSBiZW5lZmljaWFyeSByaWdodHMuIFRoZSBQYXJ0aWVzIGFncmVlCnRoYXQgdGhpcyBzaGFsbCBiZSB0aGUgbGF3IG9mIHRoZSBDemVjaCBSZXB1YmxpYy4KCkNsYXVzZSAxOApDaG9pY2Ugb2YgZm9ydW0gYW5kIGp1cmlzZGljdGlvbgoKQW55IGRpc3B1dGUgYXJpc2luZyBmcm9tIHRoZXNlIENsYXVzZXMgc2hhbGwgYmUgcmVzb2x2ZWQgYnkKdGhlIGNvdXJ0cyBvZiB0aGUgQ3plY2ggUmVwdWJsaWMuCgogCgp6cHJhY292w6F2YXQgcG91emUgdiB0YWtvdsOpbSByb3pzYWh1IGEgdGFrIGRsb3VobywgamFrCnRvIHV2ZWRlbmUgbcOtc3Ruw60gcHLDoXZvIHZ5xb5hZHVqZS4KCmUpIEt0ZXLDoWtvbGkgemUgc3RyYW4gbcWvxb5lIG9kdm9sYXQgc3bFr2ogc291aGxhcyBzIHTDrW0sCsW+ZSBidWRlIHbDoXrDoW5hIHTEm21pdG8gZG9sb8W+a2FtaSwgcG9rdWQgaSkgRXZyb3Bza8OhCmtvbWlzZSBwxZlpam1lIHJvemhvZG51dMOtIHBvZGxlIMSNbC4gNDUgb2RzdC4gMyBuYcWZw616ZW7DrQooRVUpIDIwMTYvNjc5IHTDvWthasOtY8OtIHNlIHDFmWVkw6F2w6Fuw60gb3NvYm7DrWNoIMO6ZGFqxa8sIG5hCmt0ZXJlIHNlIHR5dG8gZG9sb8W+a3kgdnp0YWh1asOtLCBuZWJvIGlpKSBzZSBuYcWZw616ZW7DrSAoRVUpCjIwMTYvNjc5IHN0YW5lIHNvdcSNw6FzdMOtIHByw6F2bsOtaG8gcsOhbWNlIHplbcSbLCBkbyBrdGVyw6kKanNvdSBvc29ibsOtIMO6ZGFqZSBwxZllZMOhdsOhbnkuIFTDrW0gbmVqc291IGRvdMSNZW55IGRhbMWhw60KcG92aW5ub3N0aSB2enRhaHVqw61jw60gc2UgbmEgZG90xI1lbsOpIHpwcmFjb3bDoW7DrSBwb2RsZQpuYcWZw616ZW7DrSAoRVUpIDIwMTYvNjc5LgoKRG9sb8W+a2EgMTcKUm96aG9kbsSbIHByw6F2bwpUeXRvIGRvbG/Fvmt5IHNlIMWZw61kw60gcHLDoXZlbSB6ZW3EmywgamXFviB1bW/FvsWIdWplIHVwbGF0xYhvdmF0CnByw6F2YSBuw6FsZcW+ICIgw61vcHLDoXZuxJtuZSB0xZlldMOtIHN0cmFuxJsuIFN0cmFueSBzZSBkb2hvZGx5LArFvmUgc2UgYnVkb3UgxZnDrWRpdCBwcsOhdmVtIMSMZXNrw6kgcmVwdWJsaWt5LgoKIAoKRG9sb8W+a2EgMTgKVm9sYmEgc291ZHUgYSBwxZnDrXNsdcWhbm9zdAoKVmXFoWtlcsOpIHNwb3J5IHZ5cGzDvXZhasOtY8OtIHogdMSbY2h0byBkb2xvxb5layBidWRvdSDFmWXFoWVueQpzb3VkeSDEjGVza8OpIHJlcHVibGlreS4KCiAKCmxsCgogCgogCgogCgogCgpBUFBFTkRJWCBbVE8gU0NDc2oKCkFOTkVYIHwKQS4gTElTVCBPRiBQQVJUSUVTCkRhdGEgZXhwb3J0ZXIoNSk6CgoxLiBOYW1lOiBBZHJlc3M6IEtyYWpza8OhIG5lbW9jbmljZSBMaWJlcmVjLCBhLnMuCkNvbnRhY3QgcGVyc29uJ3MgbmFtZSwgcG9zaXRpb24gYW5kIGNvbnRhY3QgZGV0YWlsczoKCkluaS4gSmnFmcOtIEJlbmVkaWt0LCBEYXRhIFByb3RlY3Rpb24gT2ZmaWNlciwKClJvbGU6IFByb2Nlc3NvcgoKU0lHTkVEIGZvciBhbmQgb24gYmVoYWxmIG9mLgpyZXByZXNlbnRhdGl2ZToKCiAKCi4gYnkgaXRzIGR1bHkgYXV0aG9yaXNlZAoKTmFtZSBvZiBzaWduYXRvcsO9OiBNVURyLiBSaWNoYXJkIEx1a8OhxaEsIFBoRC4sCkNoYWlybWFuIG9mdGhlIEJvYXJkIG9mIERpcmVjdG9ycywgb3IKZG9jLiBNVURyLiBUb23DocWhIFJvdWLDrcSNZWssIFBoLkQuLCBGRVNDLCBWaWNlLQoKQ2hhaXJtYW4gb2Z0aGUgQm9hcmQgb2YgRGlyZWN0b3JzCkRhdGU6CgoyLiBEYXRhIGltcG9ydGVyKHMpOgoKTmFtZTogRWxpIExpbGx5IGFuZCBDb21wYW55CgpBZHJlc3M6IExpbGx5IENvcnBvcmF0ZSBDZW50ZXIsIDg5MyBTb3V0aCBEZWxhd2FyZQpTdHJlZXQsIEluZGlhbmFwb2xpcywgSU4gNDYyODUsIFVTQQoKQ29udGFjdCBwZXJzb24ncyBuYW1lOiBfCgpBZXRpdicgJ2VzIHJlbGV2YW50IHRvIHRoZSBkYXRhIHRyYW5zZmVycmVkIHVuZGVyIHRoZXNlCmNsYXVzZXM6CgpBcyB0aGUgc3BvbnNvciwgdGhlIGRhdGEgaW1wb3J0ZXIgd2lsbCByZWNlaXZlCnBzZXVkb255bWl6ZWQgZGF0YSBmcm9tIHRoZSBkYXRhIGV4cG9ydGVyIGZvciB0aGUKcHVycG9zZXMgb2YgY29uZHVjdGluZyB0aGUgY2xpbmljYWwgdHJpYWwuCgpSb3xlMUNvbnRyb3x8ZXIKClNJR05FRCBmb3IgYW5kIG9uIGJlaGFsZiBvZiAuLi4uLi4uLiBieSBpdHMgZHVseSBhdXRob3Jpc2VkCnJlcHJlc2VudGF0aXZlOgoKU2hlcnJ5CnN0YWx0LgoKTmFtZSBvZiBzaWduYXRvcnk6IFNoZXJyeSBPc3dhbHQKCkRpZ2l0YWxseSBzaWduZWQgYnkKClNoZXJyeSBPc3dhbHQKCkRhdGU6IDIwMjYuMDMuMDQK4oCeMDc6Mzk6MTEgLTA1JzAwJwoKUG9zaXRpb246IERpcmVjdG9yLCBUcmlhbCBDYXBhYmlsaXRpZXMKCkRhdGU6IDRNYXIyMDI2CgogCgpBUFBFTkRJWDFUTyBTQ0NzWwpQxZnDrWxvaGEgfApBLiBTRVpOQU0gU01MVVZOw41DSCBTVFJBTgpWw712b3pjZSDDumRhasWvOgoKMS4gSm3DqW5vL27DoXpldjogS3JhanNrw6EgbmVtb2NuaWNlIExpYmVyZWMsIGEucy4KSm3DqW5vLCBmdW5rY2UgYSBrb250YWt0bsOtIMO6ZGFqZSBrb250YWt0bsOtIG9zb2J5OjpsbmcuCgpKacWZw60gQmVuZWRpa3QsIGlvdsSbxZllbmVjIHBybyBvY2hyYW51IG9zb2Juw61jaCDDumRhasWvClBvc3RhdmVuw60xMnByYWNvdmF0ZXwKClNJR05FRCBmb3IgYW5kIG9uIGJlaGFsZiBvZiAuLi4uLiBieSBpdHMgZHVseSBhdXRob3Jpc2VkCnJlcHJlc2VudGF0aXZlOgoKTmFtZSBvZiBzaWduYXRvcnk6IE1VRHIuIFJpY2hhcmQgTHVrw6HFoSwKcMWZZWRzZWRhIHDFmWVkc3RhdmVuc3R2YSwgbmVibwoKUGhELiwKCmRvYy4gTVVEci4gVG9tw6HFoSBSb3Viw63EjWVrLCBQaC5ELiBGRVNDLCBtw61zdG9wxZllZHNlZGEKcMWZZWRzdGF2ZW5zdHZhCgpEYXR1bToKCjIuIERvdm96Y2Ugw7pkYWrFrzoKSm3DqW5vL27DoXpldjogRWxpIExpbGx5IGFuZCBDb21wYW55Ckptw6lubywgZnVua2NlIGEga29udGFrdG7DrSDDumRhamUga29udGFrdG7DrSBvc29ieTo6IExpbGx5CgpDb3Jwb3JhdGUgQ2VudGVyLCA4OTMgU291dGggRGVsYXdhcmUgU3RyZWV0LApJbmRpYW5hcG9saXMsIElOIDQ2Mjg1LCBVU0EKCktvbnRha3Ruw60gw7pkYWplIG9zb2J5OiBfCgrEjGlubm9zdGkgcmVsZXZhbnRuw60gcHJvIHDFmWVkw6F2w6Fuw60gw7pkYWrFryBuYSB6w6FrbGFkxJsKdMSbY2h0byBkb2xvxb5lazoKCkpha28gemFkYXZhdGVsIG9iZHLFvsOtIHDFmcOtamVtY2UgdWRhasWvCnBzZXVkb255bWl6b3ZhbsOhIGRhdGEgb2QgcG9za3l0b3ZhdGVsZSB1ZGFqxa8gemEKw7rEjWVsZW0gcHJvdmVkZW7DrSBrbGluaWNrw6lobyBob2Rub2NlbsOtLgoKUG9zdGF2ZW7DrTogU3Byw6F2Y2UKClNJR05FRCBmb3IgYW5kIG9uIGJlaGFsZiBvZiAuLi4uLi4gYnkgaXRzIGR1bHkgYXV0aG9yaXNlZApyZXByZXNlbnRhdGl2ZToKCk5hbWUgb2Ygc2lnbmF0b3LDvTogU2hlcnJ5IE9zd2FsdAoKUG9zaXRpb246IERpcmVjdG9yLCBUcmlhbCBDYXBhYmlsaXRpZXMKCkRhdGU6CgogCgoxMgoKIAoKIAoKIAoKIAoKQi4gREVTQ1JJUFRJT04gT0YgVFJBTlNGRVIKCkNhdGVnb3JpZXMgb2YgZGF0YSBzdWJqZWN0cyB3aG9zZSBwZXJzb25hbCBkYXRhIGlzCnRyYW5zZmVycmVkCgpQcm9jZXNzb3IgcGF0aWVudHMgYW5kIHN0YWZmCkNhdGVnb3JpZXMgb2ZwZXJzb25hbCBkYXRhIHRyYW5zZmVycmVkCgpQc2V1ZG9ueW3DrXplZCBwZXJzb25hbCBkYXRhIHJlbGF0ZWQgdG8gdGhlIGhlYWx0aCBzdGF0dXMKYWZwYXTDrWVudHMgaW52b2x2ZWQgaW4gdGhlIGNsaW5pY2FsIHRyaWFsLCBhbmQgcGVyc29uYWwgU3Rhaj8KZGF0YSwgc3VjaCBhcyBuYW1lLCBDdXJyaWN1bHVtIHZpdGFlLCBldGMuCgpTZW5zaXRpdmUgZGF0YSB0cmFuc2ZlcnJlZCAoaWYgYXBwbGljYWJsZSkgYW5kIGFwcGxpZWQKcmVzdHJpY3Rpb25zIGFyIHNhZmVndWFyZHMgdGhhdGZ1bGx5IHRha2UgaW50byBjb25zaWRlcmF0aW9uCnRoZSBuYXR1cmUgb2YgdGhlIGRhdGEgYW5kIHRoZSByw61za3MgaW52b2x2ZWQsIHN1Y2ggYXMgZmFyCmluc3RhbmNlIHN0cmljdCBwdXJwb3NlIElpbcOtdGF0w61hbiwgYWNjZXNzIHJlc3RyaWN0aW9ucwooaW5jbHVkaW5nIGFjY2VzcyBhbmx5ZmFyIHN0YWZmIGhhdmluZyBmb2xsb3dlZCBzcGVjaWFsaXNlZAp0cmFpbmluZyksIGtlZXBpbmcgYSByZWNvcmQgYWYgYWNjZXNzIHRvIHRoZSBkYXRhLApyZXN0cmljdGlvbnMgZmFyIGFud2FyZCB0cmFuc2ZlcnMgYXIgYWRkaXRpb25hbCBzZWN1cml0eQptZWFzdXJlcy4KClRoZSBwYXJ0aWVzIHJlcHJlc2VudCBhbmQgY2VydMOtZnkgdGhhdCB0aGV5IGhhdmUKZG9jdW1lbnRlZCBpbmZvcm1hdGlvbiBzZWN1cml0eSBwb2xpY2llcywgc3RhbmRhcmRzLAphbmQvYXIgcHJvY2VkdXJlcyBpbiBwbGFjZSB0YSBwcm90ZWN0IHRoZSBjYW5mw61kZW50w61hbMOtdHkKYW5kIGludGVncml0eSBhZiBjYW5mw61kZW50w61hbCBpbmZvcm1hdGlvbi4gVGhlIHBhcnRpZXMKZnVydGhlciByZXByZXNlbnQgYW5kIGNlcnTDrWZ5IHRoYXQgdGhleSBoYXZlIHByb2NlZHVyZXMKYW5kL2FyIHByb2Nlc3NlcyBmYXIgw61kZW50w61mecOtbmcgdGhyZWF0cyBhbmQgVnVsbmVyYWJpbGl0aWVzCnRvIHRoZWlyIGluZm9ybWF0aW9uIHN5c3RlbShzKSBhbmQgd2lsbCB0cmFpbiB0aGVpcgpwZXJzb25uZWwgYWNjb3JkaW5nbHkuIFRoZSBwYXJ0aWVzIGFncmVlIHRoYXQgYWxscGVyc2FuYWwKZGF0YSB0cmFuc2ZlcnJlZCB0YSBhciBzdG9yZWQgYW4gYW55IG1vYmlsZSBkZXZpY2UsCmluY2x1ZGluZyBidXQgbmF0IGxpbWl0ZWQgdGEgc21hcnQgcGhvbmVzIGFuZCBjb21wdXRlcnMsCnNoYWxsIGJlIHByb3RlY3RlZCBieSBlbmNyeXB0aW9uLgoKVGhlIGZyZXF1ZW5jeSBvZiB0aGUgdHJhbnNmZXIgKGUuZy4gd2hldGhlciB0aGUgZGF0YSBpcwp0cmFuc2ZlcnJlZCBvbiBhIG9uZS1vZmYgb3IgY29udGludW91cyBiYXNpcykuCgpUaGlzIGFjdGl2aXR5IGlzIGFudGljaXBhdGVkIHRhIHJlcXVpcmUgYSBjb250aW51b3VzIGRhdGEKdHJhbnNmZXIKCk5hdHVyZSBvZiB0aGUgcHJvY2Vzc2luZwoKQ2hlY2tpbmcsIGNvbGxlY3Rpb24sIGbDrWzDrW5nLCBjYXBpbmcsIHJlcG9ydGluZywKdHJhbnNtaXNzaW9uLCBjb3JyZWN0aW9uIGlmIGFwcGxpY2FibGUsIGFyY2jDrXbDrW5nIGFuZApkZXN0cnVjdGlvbgoKUHVycG9zZShzKSBvZiB0aGUgZGF0YSB0cmFuc2ZlciBhbmRmdXJ0aGVyIHByb2Nlc3NpbmcKCkFkbWluaXN0cmF0aW9uIG9mIG91ciBidXNpbmVzcyBwcm9jZXNzZXM7IHN0dWR5CnJlY3J1aXRtZW50OyBQYXRpZW50IHRlc3TDrW1hbsOtYWxzIChyZXNlYXJjaCk7IELDrWFiYW5rw61uZzsKQ2xpbmljYWwgdHJpYWwgYWN0aXZpdGllcywgaW5jbHVkaW5nIHNhbXBsZXMgYW5kIHPDrXRlCm1vbml0b3Jpbmc7IERic2VuL2F0w61hbmFsIFN0dWRpZXM7IFJlY3J1aXRtZW50IGFuZArDrW5jbHVzw61hbi9leGNsdXPDrWFuIGFjdGl2aXRpZXM7IFJlZ3VsYXRvcnkgYW5kIGxlZ2FsCnJlcXVpcmVtZW50cyB0aGF0IGluY2x1ZGUgYWR2ZXJzZSBldmVudCwgcHJvZHVjdApjb21wbGFpbnRzLCBhbmQgcGF0aWVudCByZWdpc3Ryw61lczsgUmVzcG9uZGluZyB0YSByZXF1ZXN0cwpmb3IgaW5mb3JtYXRpb247IFN0YXRpc3RpY2FsIGFuYWx5dGljcy4KClRoZSBwZXJpb2Rmb3Igd2hpY2ggdGhlIHBlcnNvbmFsIGRhdGEgd2lsbCBiZSByZXRhaW5lZCwKb3IsIGlmIHRoYXQgaXMgbm90IHBvc3NpYmxlLCB0aGUgY3JpdGVyaWEgdXNlZCB0byBkZXRlcm1pbmUKdGhhdCBwZXJpb2QuCgpQZXJzb25hbCBkYXRhIHdpbGwgYmUgc2F2ZWRmYXIgdGhlIHBlcmlvZCBvZiB0aW1lIG5lZWRlZAp0YSBmdWxmaWwgbGVnaXRpbWF0ZSBhbmQgSWF3ZnVsIGJ1c2luZXNzIHB1cnBvc2VzIGluCmFjY29yZGFuY2Ugd2l0aCByZWNvcmRzIHJldGVudGlvbiBwb2xpY2llcyBhbmQgYXBwbGljYWJsZQpsYXdzIGFuZCByZWd1bGF0aW9ucwoKIAoKQi4gUE9QSVMgUMWYRUTDgU7DjQoKS2F0ZWdvcmllIHN1Ympla3TFryDDumRhasWvLCBqZWppY2jFviBvc29ibsOtIMO6ZGFqZSBzZQpwxZllZMOhdmFqw60KClBhY2llbnRpIGEgemFtxJtzdG5hbmNpIHpwcmFjb3ZhdGVsZQoKS2F0ZWdvcmllIHDFmWVkw6F2YW7DvWNoIG9zb2Juw61jaCDDumRhasWvCgpQc2V1ZG9ueW3DrXphdmFuZScgb3NvYm7DrSDDumRhamUgdMO9a2Fqw61jw60gc2UgemRyYXZvdG7DrWhvCnN0YXZ1IHBhY2llbnTFryB6YXBvamVuw71jaCBkbyBrbGluaWNrw6lobyBob2Rub2NlbsOtIGEKb3NvYm7DrSDDumRhamUgemFtxJtzdG5hbmPFrywgamFrYSBqZSBqbcOpbm8sIMW+aXZvdG9waXMKKEN1cnJpY3VsdW0gdml0YWUpIGFwb2QuCgpQxZllZMOhdmFuZScgY2l0bGl2ZSDDumRhamUgKGplLUnDrSByZWxldmFudG5pKSBhIHVwbGF0xYhvdmFuw6EKb21lemVuaSBuZWJhIHrDoXJ1a3ksIGt0ZXJlIHBsbmUgemFobGVkxYh1amlwYXZhaHUgw7pkYWrFrwphIHNvdXZpc2Vqw61jw60gcml6aWthLCBuYXDFmcOta2xhZCBwxZlpc25lJyBvbWV6ZW5pIMO6xI1lbHUsCmFtZXplbmlwxZlpc3R1cHUgKHbEjWV0bmUgcMWZw61zdHVwdSBwb3V6ZSBwcm8gemFtxJtzdG5hbmNlLAprdGXFmWlhYnNhbHZhdmFsw61zcGVjaWFsaXpvdmFuw6kgxaFrb2xlbmkpLCB2ZWRlbml6w6F6bmFtxa8gYQpwxZnDrXN0dXBlY2ggayDDumRhasWvbSwgb21lemVuaSBkYWzFocOtaG8gcMWZZWTDoXbDoW7DrSBuZWJhCmRvZGF0ZcSNbsOhIGJlenBlxI1ub3N0bsOtIG9wYXTFmWVuw60KClN0cmFueSBwcm9obGHFoXVqw60gYSBwb3R2cnp1asOtLCDFvmUgbWFqw60gemRva3VtZW50b3ZhbsOpCnrDoXNhZHksIHN0YW5kYXJkeSBhL25lYmEgcG9zdHVweSBpbmZvcm1hxI1uw60gYmV6cGXEjW5vc3RpCmsgb2NocmFuxJsgZMWvdsSbcm5vc3RpIGEgaW50ZWdyaXR5IGTFr3bEm3Juw71jaCBpbmZvcm1hY2kuClN0cmFueSBkw6FsZSBwcm9obGHFoXVqw60gYSBwb3R2cnp1asOtLCDFvmUgbWFqw60gemF2ZWRlbsOpCnBvc3R1cHkgYS9uZWJhIHByb2Nlc3kgcHJvIGlkZW50aWZpa2FjaSBocm96ZWIgYQp6cmFuaXRlbG5vc3RpIHN2w71jaCBpbmZvcm1hxI1uw61jaCBzeXN0w6ltxa8gYSDFvmUgdiB0b210bwpzbcSbcnUgYnVkb3Ugc3bDqSB6YW3Em3N0bmFuY2Ugb2Rwb3ZpZGFqaWNpbSB6cMWvc29iZW0KxaFrb2xpdC4gU3RyYW55IHNlIGRvaG9kbHksIMW+ZSB2ZcWha2Vyw6kgb3NvYm7DrSDDumRhamUKcMWZZWTDoXZhbsOpIG5lYmEgdWtsw6FkYW7DqSBuYSBqYWtlbWtvbGkgbW9iaWxuw61tIHphxZlpemVuw60sCm1pbW8gamluw6kgdsSNZXRuZSBjaHl0csO9Y2ggdGVsZWZvbsWvIGEgcG/EjcOtdGHEjcWvLCBidWRvdQpjaHLDoW7Em255xaHDrWZyYXbDoW5pbS4KCsSMZXRub3N0IHDFmWVkw6F2w6Fuw60gKG5hcMWZLiB6ZGEganNvdSDDumRhamUgcMWZZWTDoXbDoW55CmplZG5vcsOhem92xJsgbmVibyBwcsWvYsSbxb5uxJspLgoKUMWZZWRwb2tsw6Fkw6Egc2UgcHLFr2LEm8W+bsOpIHDFmWVkw6F2w6Fuw60gw7pkYWrFry4KClBvdmFoYSB6cHJhY292w6FuaQoKS29udHJvbGEsIHNocm9tYcW+xI9vdsOhbsOtLCBldmlkZW5jZSwga29ww61yb3bDoW7DrSwKdnlrYXpvdsOhbsOtLCBwxZllbm9zLCBwxZlpcGFkbmUgb3ByYXZ5LCBhcmNoaXZhY2UgYSBsaWt2aWRhY2UuCgrDmsSNZWwgbmVibyDDusSNZWx5IHDFmWVkYW0gdWRhasWvIGEgZGFsxaFpenByYW12w6FuaQoKU3Byw6F2YSBuYcWhw61jaCBvYmNob2RuaWNoIHByb2Nlc8WvOyBuw6Fib3IgZGEgc3R1ZGlpOwpwYWNpZW50c2vDoSBzdsSbZGVjdHbDrSAodsO9emt1bSk7IGJpYWJhbmthdm7DrWN0dmk7IMSNaW5ub3N0w60Kc291dmlzZWrDrWPDrSBzIGtsaW5pY2vDvW1pIGhhZG5hY2VuaW3DrSwgdsSNZXRuZSB2em9ya8WvIGEKbW9uaXRvcmluZ3UgcHJhY292acWhxaU7IGFic2VuL2HEjW5pc3R1ZMOtZTsgbsOhYm9yIGEgxI1pbm5vc3TDrQpzb3V2aXNlasOtY8OtIHNlIHphxZlhemVuaW0vdnnFmWF6ZW5pbSBzdWJqZWt0xa87IHJlZ3VsYXRhcm5pIGEKcHLDoXZuw60gcG/FvmFkYXZreSwgdsSNZXRuZSBobMOhxaFlbmkgbmXFvsOhZG91Y8OtY2ggw7rEjWlua8WvLApyZWtsYW1hY2lwbWR1a3TFryBhIHJlZ2lzdHLFryBwYWNpZW50xa87IHZ5xZlpem92w6FuacW+w6FkYXN0aQphIGluZm9ybWFjZTsgc3RhdGlzdGlja8OpIGFuYWzDvXp5LgoKRG9iYSwgcG8ga3Rlcm91IGJ1ZG91IG9zb2Juw60gw7pkYWplIHVjaG92w6F2w6FueSwgbmVibwpuZW5pLWxpIGppIG1vxb5uw6kgdXLEjWl0LCBrcml0ZSdyaWEgcG91xb5pdMOhIHBybyBzdGFub3ZlbsOtIHTDqXRvCmRvYnkKCk9zb2Juw60gw7pkYWplIGJ1ZG91IHVjaG92w6F2w6FueSBwbyBkb2J1IG5lemJ5dG5vdSBrCm5hcGxuxJtuw60gb3Byw6F2bsSbbsO9Y2ggYSB6w6Frb25uw71jaCBvYmNob2RuaWNoIMO6xI1lbMWvIHYKc291bGFkdSBzZSB6w6FzYWRhbWkgdWNob3bDoXbDoW7DrSB6w6F6bmFtxa8gYSBwbGF0bsO9bWkKcHLDoXZuw61taSBwxZllZHBpc3kuCgogCgoxMwoKIAoKIAoKIAoKIAoKRm9yIHRyYW5zZmVycyB0byAoc3ViLSkgcHJvY2Vzc29ycywgYWxzbyBzcGVjaWZ5IHN1YmplY3QKbWF0dGVyLCBuYXR1cmUgYW5kIGR1cmF0aW9uIG9mIHRoZSBwcm9jZXNzaW5nCgpTdWItcHJhY2Vzc2FycyBhcmUgbm90IGFudGljaXBhdGVkIHRvIGJlIGVuZ2FnZWQgZm9yIHRoaXMKYWN0aXZpdHkuCgpQb2t1ZCBqZGUgYSBwxZllZMOhdsOhbsOtIChkw61sxI3DrW0pIHpwcmFjb3ZhdGVsxa9tLCByb3ZuxJvFvgp1dmXEj3RlIHDFmWVkbcSbdCwgcG92YWh1IGEgdHJ2w6Fuw60genByYWNvdsOhbmkKClBybyB0dXRvIMSNaW5ub3N0IHNlIG5lcMWZZWRwb2tsw6Fkw6EgemFwYWplbsOtc3VienByYWNhdmF0ZWzFry4KCiAKCiAKCjE0CgogCgo=</data><hash algoritmus="sha256">b862c05f5dec309dc64f0b4305c179fbe7a3f8aab8791a3ae903f2f38998f3ab</hash><nazevSouboru>[A] S20260030500 Smlouva o provedení klinického hodnocení.txt</nazevSouboru></priloha></prilohy><casGenerovani>2026-05-30T11:32:00+02:00</casGenerovani><platnyZaznam>1</platnyZaznam></data><potvrzeni><hash algoritmus="sha256">cae37b55a733156eefb6c7718a92f381833ea7532a7c6caac259fce37f3c8b2e</hash><elektronickaZnacka/></potvrzeni></zaznam>
