gASVTWsAAAAAAACMDmRvY3V0aWxzLm5vZGVzlIwIZG9jdW1lbnSUk5QpgZR9lCiMCXJhd3NvdXJjZZSMAJSMCGNoaWxkcmVulF2UaACMB3NlY3Rpb26Uk5QpgZR9lChoBWgGaAddlChoAIwFdGl0bGWUk5QpgZR9lChoBYw5YXBhY2hlXF9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVcX2JlYW0gbW9kdWxllGgHXZRoAIwEVGV4dJSTlIw3YXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtIG1vZHVsZZSFlIGUfZQoaAWMOWFwYWNoZVxfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlXF9iZWFtIG1vZHVsZZSMBnBhcmVudJRoEGgBaAOMBnNvdXJjZZROjARsaW5llE51YmGMCmF0dHJpYnV0ZXOUfZQojANpZHOUXZSMB2NsYXNzZXOUXZSMBW5hbWVzlF2UjAhkdXBuYW1lc5RdlIwIYmFja3JlZnOUXZR1jAd0YWduYW1llGgOaBtoC2gBaANoHIyPL3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ydXdhbmcvcmVsZWFzZS9iZWFtX3JlbGVhc2UvZG9jL2JlYW0vc2Rrcy9weXRob24vdGFyZ2V0L2RvY3Mvc291cmNlL2FwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbS5yc3SUaB1LAnVijA9zcGhpbnguYWRkbm9kZXOUjAVpbmRleJSTlCmBlH2UKGgFaAZoB12UaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlIwHZW50cmllc5RdlCiMBnNpbmdsZZSMOWFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbSAobW9kdWxlKZSMN21vZHVsZS1hcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW2UaAZOdJRhdWgqaC1oG2gLaAFoA2gcjLkvdXNyL2xvY2FsL2dvb2dsZS9ob21lL3J1d2FuZy9yZWxlYXNlL2JlYW1fcmVsZWFzZS9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS9ydW5uZXJzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlX2JlYW0ucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbZRoHUsBdWJoAIwJcGFyYWdyYXBolJOUKYGUfZQoaAWMQU1vZHVsZSBvZiBJbnRlcmFjdGl2ZSBCZWFtIGZlYXR1cmVzIHRoYXQgY2FuIGJlIHVzZWQgaW4gbm90ZWJvb2sulGgHXZRoFYxBTW9kdWxlIG9mIEludGVyYWN0aXZlIEJlYW0gZmVhdHVyZXMgdGhhdCBjYW4gYmUgdXNlZCBpbiBub3RlYm9vay6UhZSBlH2UKGgFaENoG2hBaAFoA2gcTmgdTnViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZR1aCpoP2gcjLkvdXNyL2xvY2FsL2dvb2dsZS9ob21lL3J1d2FuZy9yZWxlYXNlL2JlYW1fcmVsZWFzZS9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS9ydW5uZXJzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlX2JlYW0ucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbZRoHUsBaBtoC2gBaAN1YmhAKYGUfZQoaAVYEgIAAFRoZSBwdXJwb3NlIG9mIHRoZSBtb2R1bGUgaXMgdG8gcmVkdWNlIHRoZSBsZWFybmluZyBjdXJ2ZSBvZiBJbnRlcmFjdGl2ZSBCZWFtCnVzZXJzLCBwcm92aWRlIGEgc2luZ2xlIHBsYWNlIGZvciBpbXBvcnRpbmcgYW5kIGFkZCBzdWdhciBzeW50YXggZm9yIGFsbApJbnRlcmFjdGl2ZSBCZWFtIGNvbXBvbmVudHMuIEl0IGdpdmVzIHVzZXJzIGNhcGFiaWxpdHkgdG8gaW50ZXJhY3Qgd2l0aCBleGlzdGluZwplbnZpcm9ubWVudC9zZXNzaW9uL2NvbnRleHQgZm9yIEludGVyYWN0aXZlIEJlYW0gYW5kIHZpc3VhbGl6ZSBQQ29sbGVjdGlvbnMgYXMKYm91bmRlZCBkYXRhc2V0LiBJbiB0aGUgbWVhbnRpbWUsIGl0IGhpZGVzIHRoZSBpbnRlcmFjdGl2aXR5IGltcGxlbWVudGF0aW9uCmZyb20gdXNlcnMgc28gdGhhdCB1c2VycyBjYW4gZm9jdXMgb24gZGV2ZWxvcGluZyBCZWFtIHBpcGVsaW5lIHdpdGhvdXQgd29ycnlpbmcKYWJvdXQgaG93IGhpZGRlbiBzdGF0ZXMgaW4gdGhlIGludGVyYWN0aXZlIHNlc3Npb24gYXJlIG1hbmFnZWQulGgHXZRoFVgSAgAAVGhlIHB1cnBvc2Ugb2YgdGhlIG1vZHVsZSBpcyB0byByZWR1Y2UgdGhlIGxlYXJuaW5nIGN1cnZlIG9mIEludGVyYWN0aXZlIEJlYW0KdXNlcnMsIHByb3ZpZGUgYSBzaW5nbGUgcGxhY2UgZm9yIGltcG9ydGluZyBhbmQgYWRkIHN1Z2FyIHN5bnRheCBmb3IgYWxsCkludGVyYWN0aXZlIEJlYW0gY29tcG9uZW50cy4gSXQgZ2l2ZXMgdXNlcnMgY2FwYWJpbGl0eSB0byBpbnRlcmFjdCB3aXRoIGV4aXN0aW5nCmVudmlyb25tZW50L3Nlc3Npb24vY29udGV4dCBmb3IgSW50ZXJhY3RpdmUgQmVhbSBhbmQgdmlzdWFsaXplIFBDb2xsZWN0aW9ucyBhcwpib3VuZGVkIGRhdGFzZXQuIEluIHRoZSBtZWFudGltZSwgaXQgaGlkZXMgdGhlIGludGVyYWN0aXZpdHkgaW1wbGVtZW50YXRpb24KZnJvbSB1c2VycyBzbyB0aGF0IHVzZXJzIGNhbiBmb2N1cyBvbiBkZXZlbG9waW5nIEJlYW0gcGlwZWxpbmUgd2l0aG91dCB3b3JyeWluZwphYm91dCBob3cgaGlkZGVuIHN0YXRlcyBpbiB0aGUgaW50ZXJhY3RpdmUgc2Vzc2lvbiBhcmUgbWFuYWdlZC6UhZSBlH2UKGgFaFJoG2hQaAFoA2gcTmgdTnViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZR1aCpoP2gcaE9oHUsDaBtoC2gBaAN1YmhAKYGUfZQoaAWMfk5vdGU6IElmIHlvdSB3YW50IGJhY2t3YXJkLWNvbXBhdGliaWxpdHksIG9ubHkgaW52b2tlIGludGVyZmFjZXMgcHJvdmlkZWQgYnkKdGhpcyBtb2R1bGUgaW4geW91ciBub3RlYm9vayBvciBhcHBsaWNhdGlvbiBjb2RlLpRoB12UaBWMfk5vdGU6IElmIHlvdSB3YW50IGJhY2t3YXJkLWNvbXBhdGliaWxpdHksIG9ubHkgaW52b2tlIGludGVyZmFjZXMgcHJvdmlkZWQgYnkKdGhpcyBtb2R1bGUgaW4geW91ciBub3RlYm9vayBvciBhcHBsaWNhdGlvbiBjb2RlLpSFlIGUfZQoaAVoYGgbaF5oAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aBxoT2gdSwtoG2gLaAFoA3ViaC4pgZR9lChoBWgGaAddlGgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMB2VudHJpZXOUXZQoaDqMQ09wdGlvbnMgKGNsYXNzIGluIGFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbSmUjDhhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0uT3B0aW9uc5RoBk50lGF1aCpoLWgbaAtoAWgDaBxOaB1OdWJoLIwEZGVzY5STlCmBlH2UKGgFaAZoB12UKGgsjA5kZXNjX3NpZ25hdHVyZZSTlCmBlH2UKGgFjAlPcHRpb25zKCmUaAddlChoLIwPZGVzY19hbm5vdGF0aW9ulJOUKYGUfZQoaAWMBmNsYXNzIJRoB12UaBWMBmNsYXNzIJSFlIGUfZQoaAVoBmgbaIdoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlIwJeG1sOnNwYWNllIwIcHJlc2VydmWUdWgqaIVoG2iBaAFoA2gcjMEvdXNyL2xvY2FsL2dvb2dsZS9ob21lL3J1d2FuZy9yZWxlYXNlL2JlYW1fcmVsZWFzZS9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS9ydW5uZXJzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlX2JlYW0ucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbS5PcHRpb25zlGgdTnViaCyMDGRlc2NfYWRkbmFtZZSTlCmBlH2UKGgFjDFhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0ulGgHXZRoFYwxYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtLpSFlIGUfZQoaAVoBmgbaJpoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGiVaJZ1aCpomGgbaIFoAWgDaBxol2gdTnViaCyMCWRlc2NfbmFtZZSTlCmBlH2UKGgFjAdPcHRpb25zlGgHXZRoFYwHT3B0aW9uc5SFlIGUfZQoaAVoBmgbaKpoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGiVaJZ1aCpoqGgbaIFoAWgDaBxol2gdTnViaCyMBG9ubHmUk5QpgZR9lChoBWgGaAddlGgsjAxwZW5kaW5nX3hyZWaUk5QpgZR9lChoBWgGaAddlGgAjAZpbmxpbmWUk5QpgZR9lChoBWgGaAddlGgVjAhbc291cmNlXZSFlIGUfZQoaAVoBmgbaMR1YmFoHn2UKGggXZRoIl2UjA12aWV3Y29kZS1saW5rlGFoJF2UaCZdlGgoXZR1aCpowmgbaL91YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjAdyZWZ0eXBllIwIdmlld2NvZGWUjAlyZWZkb21haW6UjANzdGSUjAtyZWZleHBsaWNpdJSJjAlyZWZ0YXJnZXSUjDlfbW9kdWxlcy9hcGFjaGVfYmVhbS9ydW5uZXJzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlX2JlYW2UjAVyZWZpZJRorIwGcmVmZG9jlIwwYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtlHVoKmi9aBtounViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMBGV4cHKUjARodG1slHVoKmi4aBtogWgBaANoHE5oHU51YmVoHn2UKGggXZRoeGFoIl2UaCRdlGh4YWgmXZRoKF2UjAVmaXJzdJSJjAZtb2R1bGWUjDBhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW2UjAVjbGFzc5RoBowIZnVsbG5hbWWUaKx1aCpof2gbaHxoAWgDaBxol2gdTnViaCyMDGRlc2NfY29udGVudJSTlCmBlH2UKGgFaAZoB12UKGhAKYGUfZQoaAWMXkJhc2VzOiA6Y2xhc3M6YGFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUub3B0aW9ucy5pbnRlcmFjdGl2ZV9vcHRpb25zLkludGVyYWN0aXZlT3B0aW9uc2CUaAddlChoFYwHQmFzZXM6IJSFlIGUfZQoaAWMB0Jhc2VzOiCUaBto+mgBaANoHE5oHU51Ymi+KYGUfZQoaAWMVzpjbGFzczpgYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5vcHRpb25zLmludGVyYWN0aXZlX29wdGlvbnMuSW50ZXJhY3RpdmVPcHRpb25zYJRoB12UaACMB2xpdGVyYWyUk5QpgZR9lChoBWoFAQAAaAddlGgVjE5hcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLm9wdGlvbnMuaW50ZXJhY3RpdmVfb3B0aW9ucy5JbnRlcmFjdGl2ZU9wdGlvbnOUhZSBlH2UKGgFaAZoG2oJAQAAdWJhaB59lChoIF2UaCJdlCiMBHhyZWaUjAJweZSMCHB5LWNsYXNzlGVoJF2UaCZdlGgoXZR1aCpqBwEAAGgbagMBAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjAdyZWZ0eXBllIwFY2xhc3OUjAlyZWZkb21haW6UahQBAACMC3JlZmV4cGxpY2l0lImMCXB5Om1vZHVsZZRo8owIcHk6Y2xhc3OUaKyMCXJlZnRhcmdldJSMTmFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUub3B0aW9ucy5pbnRlcmFjdGl2ZV9vcHRpb25zLkludGVyYWN0aXZlT3B0aW9uc5SMBnJlZmRvY5Ro4YwHcmVmd2FybpSJdWgqaL1oHIzBL3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ydXdhbmcvcmVsZWFzZS9iZWFtX3JlbGVhc2UvZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vcnVubmVycy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZV9iZWFtLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0uT3B0aW9uc5RoHUsBaBto+nViZWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZR1aCpoP2gcaikBAABoHUsBaBto92gBaAN1YmhAKYGUfZQoaAWMLk9wdGlvbnMgdGhhdCBndWlkZSBob3cgSW50ZXJhY3RpdmUgQmVhbSB3b3Jrcy6UaAddlGgVjC5PcHRpb25zIHRoYXQgZ3VpZGUgaG93IEludGVyYWN0aXZlIEJlYW0gd29ya3MulIWUgZR9lChoBWoyAQAAaBtqMAEAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaD9oHIzBL3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ydXdhbmcvcmVsZWFzZS9iZWFtX3JlbGVhc2UvZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vcnVubmVycy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZV9iZWFtLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0uT3B0aW9uc5RoHUsBaBto92gBaAN1YmguKYGUfZQoaAVoBmgHXZRoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjAdlbnRyaWVzlF2UKGg6jFplbmFibGVfY2FwdHVyZV9yZXBsYXkgKGFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbS5PcHRpb25zIGF0dHJpYnV0ZSmUjE5hcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0uT3B0aW9ucy5lbmFibGVfY2FwdHVyZV9yZXBsYXmUaAZOdJRhdWgqaC1oG2j3aAFoA2gcjNcvdXNyL2xvY2FsL2dvb2dsZS9ob21lL3J1d2FuZy9yZWxlYXNlL2JlYW1fcmVsZWFzZS9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS9ydW5uZXJzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlX2JlYW0ucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbS5PcHRpb25zLmVuYWJsZV9jYXB0dXJlX3JlcGxheZRoHU51Ymh7KYGUfZQoaAVoBmgHXZQoaIApgZR9lChoBYwdT3B0aW9ucy5lbmFibGVfY2FwdHVyZV9yZXBsYXmUaAddlGipKYGUfZQoaAWMFWVuYWJsZV9jYXB0dXJlX3JlcGxheZRoB12UaBWMFWVuYWJsZV9jYXB0dXJlX3JlcGxheZSFlIGUfZQoaAVoBmgbalUBAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGiVaJZ1aCpoqGgbalEBAABoAWgDaByM1y91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvcnV3YW5nL3JlbGVhc2UvYmVhbV9yZWxlYXNlL2RvYy9iZWFtL3Nka3MvcHl0aG9uL2FwYWNoZV9iZWFtL3J1bm5lcnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVfYmVhbS5weTpkb2NzdHJpbmcgb2YgYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtLk9wdGlvbnMuZW5hYmxlX2NhcHR1cmVfcmVwbGF5lGgdTnViYWgefZQoaCBdlGpLAQAAYWgiXZRoJF2UaksBAABhaCZdlGgoXZRo8Ilo8YwwYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtlGjzaKxo9IwdT3B0aW9ucy5lbmFibGVfY2FwdHVyZV9yZXBsYXmUdWgqaH9oG2pOAQAAaAFoA2gcamMBAABoHU51Ymj2KYGUfZQoaAVoBmgHXZRoQCmBlH2UKGgFjJ1XaGV0aGVyIHJlcGxheWFibGUgc291cmNlIGRhdGEgY2FwdHVyZSBzaG91bGQgYmUgcmVwbGF5ZWQgZm9yIG11bHRpcGxlClBDb2xsZWN0aW9uIGV2YWx1YXRpb25zIGFuZCBwaXBlbGluZSBydW5zIGFzIGxvbmcgYXMgdGhlIGRhdGEgY2FwdHVyZWQgaXMKc3RpbGwgdmFsaWQulGgHXZRoFYydV2hldGhlciByZXBsYXlhYmxlIHNvdXJjZSBkYXRhIGNhcHR1cmUgc2hvdWxkIGJlIHJlcGxheWVkIGZvciBtdWx0aXBsZQpQQ29sbGVjdGlvbiBldmFsdWF0aW9ucyBhbmQgcGlwZWxpbmUgcnVucyBhcyBsb25nIGFzIHRoZSBkYXRhIGNhcHR1cmVkIGlzCnN0aWxsIHZhbGlkLpSFlIGUfZQoaAVqcQEAAGgbam8BAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aBxqTQEAAGgdSwFoG2psAQAAaAFoA3ViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZR1aCpo9Wgbak4BAABoAWgDaBxqYwEAAGgdTnViZWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMBmRvbWFpbpSMAnB5lIwHb2JqdHlwZZSMCWF0dHJpYnV0ZZSMCGRlc2N0eXBllGqMAQAAjAdub2luZGV4lIl1aCpoemgBaANoG2j3aBxqTQEAAGgdTnViaC4pgZR9lChoBWgGaAddlGgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMB2VudHJpZXOUXZQoaDqMV2NhcHR1cmFibGVfc291cmNlcyAoYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtLk9wdGlvbnMgYXR0cmlidXRlKZSMS2FwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbS5PcHRpb25zLmNhcHR1cmFibGVfc291cmNlc5RoBk50lGF1aCpoLWgbaPdoAWgDaByM1C91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvcnV3YW5nL3JlbGVhc2UvYmVhbV9yZWxlYXNlL2RvYy9iZWFtL3Nka3MvcHl0aG9uL2FwYWNoZV9iZWFtL3J1bm5lcnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVfYmVhbS5weTpkb2NzdHJpbmcgb2YgYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtLk9wdGlvbnMuY2FwdHVyYWJsZV9zb3VyY2VzlGgdTnViaHspgZR9lChoBWgGaAddlChogCmBlH2UKGgFjBpPcHRpb25zLmNhcHR1cmFibGVfc291cmNlc5RoB12UaKkpgZR9lChoBYwSY2FwdHVyYWJsZV9zb3VyY2VzlGgHXZRoFYwSY2FwdHVyYWJsZV9zb3VyY2VzlIWUgZR9lChoBWgGaBtqpQEAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaJVolnVoKmioaBtqoQEAAGgBaANoHIzUL3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ydXdhbmcvcmVsZWFzZS9iZWFtX3JlbGVhc2UvZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vcnVubmVycy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZV9iZWFtLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0uT3B0aW9ucy5jYXB0dXJhYmxlX3NvdXJjZXOUaB1OdWJhaB59lChoIF2UapsBAABhaCJdlGgkXZRqmwEAAGFoJl2UaChdlGjwiWjxjDBhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW2UaPNorGj0jBpPcHRpb25zLmNhcHR1cmFibGVfc291cmNlc5R1aCpof2gbap4BAABoAWgDaBxqswEAAGgdTnViaPYpgZR9lChoBWgGaAddlGhAKYGUfZQoaAWMRkludGVyYWN0aXZlIEJlYW0gYXV0b21hdGljYWxseSBjYXB0dXJlcyBkYXRhIGZyb20gc291cmNlcyBpbiB0aGlzIHNldC6UaAddlGgVjEZJbnRlcmFjdGl2ZSBCZWFtIGF1dG9tYXRpY2FsbHkgY2FwdHVyZXMgZGF0YSBmcm9tIHNvdXJjZXMgaW4gdGhpcyBzZXQulIWUgZR9lChoBWrBAQAAaBtqvwEAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaD9oHGqdAQAAaB1LAWgbarwBAABoAWgDdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmj1aBtqngEAAGgBaANoHGqzAQAAaB1OdWJlaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGqJAQAAjAJweZRqiwEAAIwJYXR0cmlidXRllGqNAQAAatoBAABqjgEAAIl1aCpoemgBaANoG2j3aBxqnQEAAGgdTnViaC4pgZR9lChoBWgGaAddlGgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMB2VudHJpZXOUXZQoaDqMVWNhcHR1cmVfZHVyYXRpb24gKGFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbS5PcHRpb25zIGF0dHJpYnV0ZSmUjElhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0uT3B0aW9ucy5jYXB0dXJlX2R1cmF0aW9ulGgGTnSUYXVoKmgtaBto92gBaANoHIzSL3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ydXdhbmcvcmVsZWFzZS9iZWFtX3JlbGVhc2UvZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vcnVubmVycy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZV9iZWFtLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0uT3B0aW9ucy5jYXB0dXJlX2R1cmF0aW9ulGgdTnViaHspgZR9lChoBWgGaAddlChogCmBlH2UKGgFjBhPcHRpb25zLmNhcHR1cmVfZHVyYXRpb26UaAddlGipKYGUfZQoaAWMEGNhcHR1cmVfZHVyYXRpb26UaAddlGgVjBBjYXB0dXJlX2R1cmF0aW9ulIWUgZR9lChoBWgGaBtq8QEAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaJVolnVoKmioaBtq7QEAAGgBaANoHIzSL3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ydXdhbmcvcmVsZWFzZS9iZWFtX3JlbGVhc2UvZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vcnVubmVycy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZV9iZWFtLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0uT3B0aW9ucy5jYXB0dXJlX2R1cmF0aW9ulGgdTnViYWgefZQoaCBdlGrnAQAAYWgiXZRoJF2UaucBAABhaCZdlGgoXZRo8Ilo8YwwYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtlGjzaKxo9IwYT3B0aW9ucy5jYXB0dXJlX2R1cmF0aW9ulHVoKmh/aBtq6gEAAGgBaANoHGr/AQAAaB1OdWJo9imBlH2UKGgFaAZoB12UaEApgZR9lChoBYxdVGhlIGRhdGEgY2FwdHVyZSBvZiBzb3VyY2VzIGVuZHMgYXMgc29vbiBhcyB0aGUgYmFja2dyb3VuZCBjYWNoaW5nIGpvYgpoYXMgcnVuIGZvciB0aGlzIGxvbmculGgHXZRoFYxdVGhlIGRhdGEgY2FwdHVyZSBvZiBzb3VyY2VzIGVuZHMgYXMgc29vbiBhcyB0aGUgYmFja2dyb3VuZCBjYWNoaW5nIGpvYgpoYXMgcnVuIGZvciB0aGlzIGxvbmculIWUgZR9lChoBWoNAgAAaBtqCwIAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaD9oHGrpAQAAaB1LAWgbaggCAABoAWgDdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmj1aBtq6gEAAGgBaANoHGr/AQAAaB1OdWJlaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGqJAQAAjAJweZRqiwEAAIwJYXR0cmlidXRllGqNAQAAaiYCAABqjgEAAIl1aCpoemgBaANoG2j3aBxq6QEAAGgdTnViZWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZR1aCpo9WgbaHxoAWgDaBxol2gdTnViZWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZRqiQEAAIwCcHmUaosBAACMBWNsYXNzlGqNAQAAajQCAABqjgEAAIl1aCpoemgBaANoG2gLaBxOaB1OdWJoLimBlH2UKGgFaAZoB12UaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlIwHZW50cmllc5RdlChoOoxEd2F0Y2goKSAoaW4gbW9kdWxlIGFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbSmUjDZhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0ud2F0Y2iUaAZOdJRhdWgqaC1oG2gLaAFoA2gcjL8vdXNyL2xvY2FsL2dvb2dsZS9ob21lL3J1d2FuZy9yZWxlYXNlL2JlYW1fcmVsZWFzZS9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS9ydW5uZXJzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlX2JlYW0ucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbS53YXRjaJRoHU51Ymh7KYGUfZQoaAVoBmgHXZQoaIApgZR9lChoBYwQd2F0Y2god2F0Y2hhYmxlKZRoB12UKGiZKYGUfZQoaAWMMWFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbS6UaAddlGgVjDFhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0ulIWUgZR9lChoBWgGaBtqSwIAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaJVolnVoKmiYaBtqRwIAAGgBaANoHIy/L3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ydXdhbmcvcmVsZWFzZS9iZWFtX3JlbGVhc2UvZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vcnVubmVycy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZV9iZWFtLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0ud2F0Y2iUaB1OdWJoqSmBlH2UKGgFjAV3YXRjaJRoB12UaBWMBXdhdGNolIWUgZR9lChoBWgGaBtqWgIAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaJVolnVoKmioaBtqRwIAAGgBaANoHGpZAgAAaB1OdWJoLIwSZGVzY19wYXJhbWV0ZXJsaXN0lJOUKYGUfZQoaAWMCXdhdGNoYWJsZZRoB12UaCyMDmRlc2NfcGFyYW1ldGVylJOUKYGUfZQoaAWMCXdhdGNoYWJsZZRoB12UaBWMCXdhdGNoYWJsZZSFlIGUfZQoaAVoBmgbanACAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaJVolnVoKmpuAgAAaBtqagIAAHViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZRolWiWdWgqamgCAABoG2pHAgAAaAFoA2gcalkCAABoHU51Ymi5KYGUfZQoaAVoBmgHXZRovimBlH2UKGgFaAZoB12UaMMpgZR9lChoBWgGaAddlGgVjAhbc291cmNlXZSFlIGUfZQoaAVoBmgbaooCAAB1YmFoHn2UKGggXZRoIl2UaM5haCRdlGgmXZRoKF2UdWgqaMJoG2qHAgAAdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlIwHcmVmdHlwZZRo2YwJcmVmZG9tYWlulGjbjAtyZWZleHBsaWNpdJSJjAlyZWZ0YXJnZXSUjDlfbW9kdWxlcy9hcGFjaGVfYmVhbS9ydW5uZXJzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlX2JlYW2UjAVyZWZpZJRqXAIAAIwGcmVmZG9jlGjhdWgqaL1oG2qEAgAAdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlIwEZXhwcpRo6XVoKmi4aBtqRwIAAGgBaANoHE5oHU51YmVoHn2UKGggXZRqQQIAAGFoIl2UaCRdlGpBAgAAYWgmXZRoKF2UaPCJaPGMMGFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbZRo82gGaPRqXAIAAHVoKmh/aBtqRAIAAGgBaANoHGpZAgAAaB1OdWJo9imBlH2UKGgFaAZoB12UKGhAKYGUfZQoaAWMFU1vbml0b3JzIGEgd2F0Y2hhYmxlLpRoB12UaBWMFU1vbml0b3JzIGEgd2F0Y2hhYmxlLpSFlIGUfZQoaAVqtwIAAGgbarUCAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aBxqQwIAAGgdSwFoG2qyAgAAaAFoA3ViaEApgZR9lChoBYxyVGhpcyBhbGxvd3MgSW50ZXJhY3RpdmUgQmVhbSB0byBpbXBsaWNpdGx5IHBhc3Mgb24gdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZQpsb2NhdGlvbiBvZiB5b3VyIHBpcGVsaW5lIGRlZmluaXRpb24ulGgHXZRoFYxyVGhpcyBhbGxvd3MgSW50ZXJhY3RpdmUgQmVhbSB0byBpbXBsaWNpdGx5IHBhc3Mgb24gdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZQpsb2NhdGlvbiBvZiB5b3VyIHBpcGVsaW5lIGRlZmluaXRpb24ulIWUgZR9lChoBWrFAgAAaBtqwwIAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaD9oHGpDAgAAaB1LA2gbarICAABoAWgDdWJoQCmBlH2UKGgFWEUBAABDdXJyZW50IGltcGxlbWVudGF0aW9uIG1haW5seSB3YXRjaGVzIGZvciBQQ29sbGVjdGlvbiB2YXJpYWJsZXMgZGVmaW5lZCBpbgp1c2VyIGNvZGUuIEEgd2F0Y2hhYmxlIGNhbiBiZSBhIGRpY3Rpb25hcnkgb2YgdmFyaWFibGUgbWV0YWRhdGEgc3VjaCBhcwpsb2NhbHMoKSwgYSBzdHIgbmFtZSBvZiBhIG1vZHVsZSwgYSBtb2R1bGUgb2JqZWN0IG9yIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MuClRoZSB2YXJpYWJsZSBjYW4gY29tZSBmcm9tIGFueSBzY29wZSBldmVuIGxvY2FsIHZhcmlhYmxlcyBpbiBhIG1ldGhvZCBvZiBhCmNsYXNzIGRlZmluZWQgaW4gYSBtb2R1bGUulGgHXZRoFVhFAQAAQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBtYWlubHkgd2F0Y2hlcyBmb3IgUENvbGxlY3Rpb24gdmFyaWFibGVzIGRlZmluZWQgaW4KdXNlciBjb2RlLiBBIHdhdGNoYWJsZSBjYW4gYmUgYSBkaWN0aW9uYXJ5IG9mIHZhcmlhYmxlIG1ldGFkYXRhIHN1Y2ggYXMKbG9jYWxzKCksIGEgc3RyIG5hbWUgb2YgYSBtb2R1bGUsIGEgbW9kdWxlIG9iamVjdCBvciBhbiBpbnN0YW5jZSBvZiBhIGNsYXNzLgpUaGUgdmFyaWFibGUgY2FuIGNvbWUgZnJvbSBhbnkgc2NvcGUgZXZlbiBsb2NhbCB2YXJpYWJsZXMgaW4gYSBtZXRob2Qgb2YgYQpjbGFzcyBkZWZpbmVkIGluIGEgbW9kdWxlLpSFlIGUfZQoaAVq0wIAAGgbatECAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aBxqQwIAAGgdSwZoG2qyAgAAaAFoA3ViaACMC2Jsb2NrX3F1b3RllJOUKYGUfZQoaAVoBmgHXZQoaEApgZR9lChoBYwVQmVsb3cgYXJlIGFsbCB2YWxpZDo6lGgHXZRoFYwUQmVsb3cgYXJlIGFsbCB2YWxpZDqUhZSBlH2UKGgFjBRCZWxvdyBhcmUgYWxsIHZhbGlkOpRoG2rkAgAAdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aBxqQwIAAGgdSwxoG2rhAgAAdWJoAIwNbGl0ZXJhbF9ibG9ja5STlCmBlH2UKGgFWBYBAAB3YXRjaChfX21haW5fXykgICMgaWYgaW1wb3J0IF9fbWFpbl9fIGlzIGFscmVhZHkgaW52b2tlZAp3YXRjaCgnX19tYWluX18nKSAgIyBkb2VzIG5vdCByZXF1aXJlIGludm9raW5nIGltcG9ydCBfX21haW5fXyBiZWZvcmVoYW5kCndhdGNoKHNlbGYpICAjIGluc2lkZSBhIGNsYXNzCndhdGNoKFNvbWVJbnN0YW5jZSgpKSAgIyBhbiBpbnN0YW5jZSBvZiBhIGNsYXNzCndhdGNoKGxvY2FscygpKSAgIyBpbnNpZGUgYSBmdW5jdGlvbiwgd2F0Y2hpbmcgbG9jYWwgdmFyaWFibGVzIHdpdGhpbpRoB12UaBVYFgEAAHdhdGNoKF9fbWFpbl9fKSAgIyBpZiBpbXBvcnQgX19tYWluX18gaXMgYWxyZWFkeSBpbnZva2VkCndhdGNoKCdfX21haW5fXycpICAjIGRvZXMgbm90IHJlcXVpcmUgaW52b2tpbmcgaW1wb3J0IF9fbWFpbl9fIGJlZm9yZWhhbmQKd2F0Y2goc2VsZikgICMgaW5zaWRlIGEgY2xhc3MKd2F0Y2goU29tZUluc3RhbmNlKCkpICAjIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MKd2F0Y2gobG9jYWxzKCkpICAjIGluc2lkZSBhIGZ1bmN0aW9uLCB3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Z2xlL2hvbWUvcnV3YW5nL3JlbGVhc2UvYmVhbV9yZWxlYXNlL2RvYy9iZWFtL3Nka3MvcHl0aG9uL2FwYWNoZV9iZWFtL3J1bm5lcnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVfYmVhbS5weTpkb2NzdHJpbmcgb2YgYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtLnNob3eUaB1OdWJoeymBlH2UKGgFaAZoB12UKGiAKYGUfZQoaAWMDXNob3coKnBjb2xscymUaAddlChomSmBlH2UKGgFjDFhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0ulGgHXZRoFYwxYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtLpSFlIGUfZQoaAVoBmgbapoDAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGiVaJZ1aCpomGgbapYDAABoAWgDaByMvi91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvcnV3YW5nL3JlbGVhc2UvYmVhbV9yZWxlYXNlL2RvYy9iZWFtL3Nka3MvcHl0aG9uL2FwYWNoZV9iZWFtL3J1bm5lcnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVfYmVhbS5weTpkb2NzdHJpbmcgb2YgYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtLnNob3eUaB1OdWJoqSmBlH2UKGgFjARzaG93lGgHXZRoFYwEc2hvd5SFlIGUfZQoaAVoBmgbaqkDAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGiVaJZ1aCpoqGgbapYDAABoAWgDaBxqqAMAAGgdTnViamkCAAApgZR9lChoBYwHKnBjb2xsc5RoB12Uam8CAAApgZR9lChoBYwHKnBjb2xsc5RoB12UaBWMBypwY29sbHOUhZSBlH2UKGgFaAZoG2q7AwAAdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGiVaJZ1aCpqbgIAAGgbarcDAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaJVolnVoKmpoAgAAaBtqlgMAAGgBaANoHGqoAwAAaB1OdWJouSmBlH2UKGgFaAZoB12UaL4pgZR9lChoBWgGaAddlGjDKYGUfZQoaAVoBmgHXZRoFYwIW3NvdXJjZV2UhZSBlH2UKGgFaAZoG2rVAwAAdWJhaB59lChoIF2UaCJdlGjOYWgkXZRoJl2UaChdlHVoKmjCaBtq0gMAAHViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMB3JlZnR5cGWUaNmMCXJlZmRvbWFpbpRo24wLcmVmZXhwbGljaXSUiYwJcmVmdGFyZ2V0lIw5X21vZHVsZXMvYXBhY2hlX2JlYW0vcnVubmVycy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZV9iZWFtlIwFcmVmaWSUaqsDAACMBnJlZmRvY5Ro4XVoKmi9aBtqzwMAAHViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMBGV4cHKUaOl1aCpouGgbapYDAABoAWgDaBxOaB1OdWJlaB59lChoIF2UapADAABhaCJdlGgkXZRqkAMAAGFoJl2UaChdlGjwiWjxjDBhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW2UaPNoBmj0aqsDAAB1aCpof2gbapMDAABoAWgDaBxqqAMAAGgdTnViaPYpgZR9lChoBWgGaAddlChoQCmBlH2UKGgFjMtWaXN1YWxpemVzIGdpdmVuIFBDb2xsZWN0aW9ucyBpbiBhbiBpbnRlcmFjdGl2ZSBleHBsb3JhdG9yeSB3YXkgaWYgdXNlZAp3aXRoaW4gYSBub3RlYm9vaywgb3IgcHJpbnRzIGEgaGVhZGluZyBzYW1wbGVkIGRhdGEgaWYgdXNlZCB3aXRoaW4gYW4gaXB5dGhvbgpzaGVsbC4gTm9vcCBpZiB1c2VkIGluIGEgbm9uLWludGVyYWN0aXZlIGVudmlyb25tZW50LpRoB12UaBWMy1Zpc3VhbGl6ZXMgZ2l2ZW4gUENvbGxlY3Rpb25zIGluIGFuIGludGVyYWN0aXZlIGV4cGxvcmF0b3J5IHdheSBpZiB1c2VkCndpdGhpbiBhIG5vdGVib29rLCBvciBwcmludHMgYSBoZWFkaW5nIHNhbXBsZWQgZGF0YSBpZiB1c2VkIHdpdGhpbiBhbiBpcHl0aG9uCnNoZWxsLiBOb29wIGlmIHVzZWQgaW4gYSBub24taW50ZXJhY3RpdmUgZW52aXJvbm1lbnQulIWUgZR9lChoBWoCBAAAaBtqAAQAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaD9oHGqSAwAAaB1LAWgbav0DAABoAWgDdWJoQCmBlH2UKGgFjNdBZCBob2MgYnVpbGRzIGEgcGlwZWxpbmUgZnJhZ21lbnQgaW5jbHVkaW5nIG9ubHkgdHJhbnNmb3JtcyB0aGF0IGFyZQpuZWNlc3NhcnkgdG8gcHJvZHVjZSBkYXRhIGZvciBnaXZlbiBQQ29sbGVjdGlvbnMgcGNvbGxzLCBydW5zIHRoZSBwaXBlbGluZQpmcmFnbWVudCB0byBjb21wdXRlIGRhdGEgZm9yIHRob3NlIHBjb2xscyBhbmQgdGhlbiB2aXN1YWxpemVzIHRoZSBkYXRhLpRoB12UaBWM10FkIGhvYyBidWlsZHMgYSBwaXBlbGluZSBmcmFnbWVudCBpbmNsdWRpbmcgb25seSB0cmFuc2Zvcm1zIHRoYXQgYXJlCm5lY2Vzc2FyeSB0byBwcm9kdWNlIGRhdGEgZm9yIGdpdmVuIFBDb2xsZWN0aW9ucyBwY29sbHMsIHJ1bnMgdGhlIHBpcGVsaW5lCmZyYWdtZW50IHRvIGNvbXB1dGUgZGF0YSBmb3IgdGhvc2UgcGNvbGxzIGFuZCB0aGVuIHZpc3VhbGl6ZXMgdGhlIGRhdGEulIWUgZR9lChoBWoQBAAAaBtqDgQAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaD9oHGqSAwAAaB1LBWgbav0DAABoAWgDdWJoQCmBlH2UKGgFWHQBAABUaGUgZnVuY3Rpb24gaXMgYWx3YXlzIGJsb2NraW5nLiBJZiB1c2VkIHdpdGhpbiBhIG5vdGVib29rLCB0aGUgZGF0YQp2aXN1YWxpemVkIG1pZ2h0IGJlIGR5bmFtaWNhbGx5IHVwZGF0ZWQgYmVmb3JlIHRoZSBmdW5jdGlvbiByZXR1cm5zIGFzIG1vcmUKYW5kIG1vcmUgZGF0YSBjb3VsZCBnZXR0aW5nIHByb2Nlc3NlZCBhbmQgZW1pdHRlZCB3aGVuIHRoZSBwaXBlbGluZSBmcmFnbWVudAppcyBiZWluZyBleGVjdXRlZC4gSWYgdXNlZCB3aXRoaW4gYW4gaXB5dGhvbiBzaGVsbCwgdGhlcmUgd2lsbCBiZSBubyBkeW5hbWljCnBsb3R0aW5nIGJ1dCBhIHN0YXRpYyBwbG90dGluZyBpbiB0aGUgZW5kIG9mIHBpcGVsaW5lIGZyYWdtZW50IGV4ZWN1dGlvbi6UaAddlGgVWHQBAABUaGUgZnVuY3Rpb24gaXMgYWx3YXlzIGJsb2NraW5nLiBJZiB1c2VkIHdpdGhpbiBhIG5vdGVib29rLCB0aGUgZGF0YQp2aXN1YWxpemVkIG1pZ2h0IGJlIGR5bmFtaWNhbGx5IHVwZGF0ZWQgYmVmb3JlIHRoZSBmdW5jdGlvbiByZXR1cm5zIGFzIG1vcmUKYW5kIG1vcmUgZGF0YSBjb3VsZCBnZXR0aW5nIHByb2Nlc3NlZCBhbmQgZW1pdHRlZCB3aGVuIHRoZSBwaXBlbGluZSBmcmFnbWVudAppcyBiZWluZyBleGVjdXRlZC4gSWYgdXNlZCB3aXRoaW4gYW4gaXB5dGhvbiBzaGVsbCwgdGhlcmUgd2lsbCBiZSBubyBkeW5hbWljCnBsb3R0aW5nIGJ1dCBhIHN0YXRpYyBwbG90dGluZyBpbiB0aGUgZW5kIG9mIHBpcGVsaW5lIGZyYWdtZW50IGV4ZWN1dGlvbi6UhZSBlH2UKGgFah4EAABoG2ocBAAAaAFoA2gcTmgdTnViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZR1aCpoP2gcapIDAABoHUsJaBtq/QMAAGgBaAN1YmhAKYGUfZQoaAWMOFRoZSBQQ29sbGVjdGlvbnMgZ2l2ZW4gbXVzdCBiZWxvbmcgdG8gdGhlIHNhbWUgcGlwZWxpbmUulGgHXZRoFYw4VGhlIFBDb2xsZWN0aW9ucyBnaXZlbiBtdXN0IGJlbG9uZyB0byB0aGUgc2FtZSBwaXBlbGluZS6UhZSBlH2UKGgFaiwEAABoG2oqBAAAaAFoA2gcTmgdTnViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZR1aCpoP2gcapIDAABoHUsPaBtq/QMAAGgBaAN1YmrgAgAAKYGUfZQoaAVoBmgHXZQoaEApgZR9lChoBYwNRm9yIGV4YW1wbGU6OpRoB12UaBWMDEZvciBleGFtcGxlOpSFlIGUfZQoaAWMDEZvciBleGFtcGxlOpRoG2o7BAAAdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aBxqkgMAAGgdSxFoG2o4BAAAdWJq9AIAACmBlH2UKGgFWBoDAABwID0gYmVhbS5QaXBlbGluZShJbnRlcmFjdGl2ZVJ1bm5lcigpKQppbml0ID0gcCB8ICdJbml0JyA+PiBiZWFtLkNyZWF0ZShyYW5nZSgxMDAwKSkKc3F1YXJlID0gaW5pdCB8ICdTcXVhcmUnID4+IGJlYW0uTWFwKGxhbWJkYSB4OiB4ICogeCkKY3ViZSA9IGluaXQgfCAnQ3ViZScgPj4gYmVhbS5NYXAobGFtYmRhIHg6IHggKiogMykKCiMgQmVsb3cgYnVpbGRzIGEgcGlwZWxpbmUgZnJhZ21lbnQgZnJvbSB0aGUgZGVmaW5lZCBwaXBlbGluZSBgcGAgdGhhdAojIGNvbnRhaW5zIG9ubHkgYXBwbGllZCB0cmFuc2Zvcm1zIG9mIGBJbml0YCBhbmQgYFNxdWFyZWAuIFRoZW4gdGhlCiMgaW50ZXJhY3RpdmUgcnVubmVyIHJ1bnMgdGhlIHBpcGVsaW5lIGZyYWdtZW50IGltcGxpY2l0bHkgdG8gY29tcHV0ZSBkYXRhCiMgcmVwcmVzZW50ZWQgYnkgUENvbGxlY3Rpb24gYHNxdWFyZWAgYW5kIHZpc3VhbGl6ZXMgaXQuCnNob3coc3F1YXJlKQoKIyBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gYHNob3coc3F1YXJlKWAgYmVjYXVzZSBgc3F1YXJlYCBkZXBlbmRzIG9uIGBpbml0YAojIGFuZCBgaW5pdGAgaXMgaW5jbHVkZWQgaW4gdGhlIHBpcGVsaW5lIGZyYWdtZW50IGFuZCBjb21wdXRlZCBhbnl3YXkuCnNob3coaW5pdCwgc3F1YXJlKQoKIyBCZWxvdyBpcyBzaW1pbGFyIHRvIHJ1bm5pbmcgYHAucnVuKClgLiBJdCBjb21wdXRlcyBkYXRhIGZvciBib3RoCiMgUENvbGxlY3Rpb24gYHNxdWFyZWAgYW5kIFBDb2xsZWN0aW9uIGBjdWJlYCwgdGhlbiB2aXN1YWxpemVzIHRoZW0uCnNob3coc3F1YXJlLCBjdWJlKZRoB12UaBVYGgMAAHAgPSBiZWFtLlBpcGVsaW5lKEludGVyYWN0aXZlUnVubmVyKCkpCmluaXQgPSBwIHwgJ0luaXQnID4+IGJlYW0uQ3JlYXRlKHJhbmdlKDEwMDApKQpzcXVhcmUgPSBpbml0IHwgJ1NxdWFyZScgPj4gYmVhbS5NYXAobGFtYmRhIHg6IHggKiB4KQpjdWJlID0gaW5pdCB8ICdDdWJlJyA+PiBiZWFtLk1hcChsYW1iZGEgeDogeCAqKiAzKQoKIyBCZWxvdyBidWlsZHMgYSBwaXBlbGluZSBmcmFnbWVudCBmcm9tIHRoZSBkZWZpbmVkIHBpcGVsaW5lIGBwYCB0aGF0CiMgY29udGFpbnMgb25seSBhcHBsaWVkIHRyYW5zZm9ybXMgb2YgYEluaXRgIGFuZCBgU3F1YXJlYC4gVGhlbiB0aGUKIyBpbnRlcmFjdGl2ZSBydW5uZXIgcnVucyB0aGUgcGlwZWxpbmUgZnJhZ21lbnQgaW1wbGljaXRseSB0byBjb21wdXRlIGRhdGEKIyByZXByZXNlbnRlZCBieSBQQ29sbGVjdGlvbiBgc3F1YXJlYCBhbmQgdmlzdWFsaXplcyBpdC4Kc2hvdyhzcXVhcmUpCgojIFRoaXMgaXMgZXF1aXZhbGVudCB0byBgc2hvdyhzcXVhcmUpYCBiZWNhdXNlIGBzcXVhcmVgIGRlcGVuZHMgb24gYGluaXRgCiMgYW5kIGBpbml0YCBpcyBpbmNsdWRlZCBpbiB0aGUgcGlwZWxpbmUgZnJhZ21lbnQgYW5kIGNvbXB1dGVkIGFueXdheS4Kc2hvdyhpbml0LCBzcXVhcmUpCgojIEJlbG93IGlzIHNpbWlsYXIgdG8gcnVubmluZyBgcC5ydW4oKWAuIEl0IGNvbXB1dGVzIGRhdGEgZm9yIGJvdGgKIyBQQ29sbGVjdGlvbiBgc3F1YXJlYCBhbmQgUENvbGxlY3Rpb24gYGN1YmVgLCB0aGVuIHZpc3VhbGl6ZXMgdGhlbS4Kc2hvdyhzcXVhcmUsIGN1YmUplIWUgZR9lChoBWgGaBtqSgQAAHViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZRolWiWdWgqavMCAABoHGqSAwAAaB1LE2gbajgEAAB1YmVoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqat8CAABoG2r9AwAAaAFoA2gcapIDAABoHU51YmVoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaPVoG2qTAwAAaAFoA2gcaqgDAABoHU51YmVoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaokBAACMAnB5lGqLAQAAjAhmdW5jdGlvbpRqjQEAAGprBAAAao4BAACJdWgqaHpoAWgDaBtoC2gcapIDAABoHU51YmguKYGUfZQoaAVoBmgHXZRoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjAdlbnRyaWVzlF2UKGg6jFJldmljdF9jYXB0dXJlZF9kYXRhKCkgKGluIG1vZHVsZSBhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0plIxEYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtLmV2aWN0X2NhcHR1cmVkX2RhdGGUaAZOdJRhdWgqaC1oG2gLaAFoA2gcjM0vdXNyL2xvY2FsL2dvb2dsZS9ob21lL3J1d2FuZy9yZWxlYXNlL2JlYW1fcmVsZWFzZS9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS9ydW5uZXJzL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlX2JlYW0ucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbS5ldmljdF9jYXB0dXJlZF9kYXRhlGgdTnViaHspgZR9lChoBWgGaAddlChogCmBlH2UKGgFjBVldmljdF9jYXB0dXJlZF9kYXRhKCmUaAddlChomSmBlH2UKGgFjDFhcGFjaGVfYmVhbS5ydW5uZXJzLmludGVyYWN0aXZlLmludGVyYWN0aXZlX2JlYW0ulGgHXZRoFYwxYXBhY2hlX2JlYW0ucnVubmVycy5pbnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtLpSFlIGUfZQoaAVoBmgbaoIEAABoAWgDaBxOaB1OdWJhaB59lChoIF2U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bnRlcmFjdGl2ZS5pbnRlcmFjdGl2ZV9iZWFtlIw3YXBhY2hlLWJlYW0tcnVubmVycy1pbnRlcmFjdGl2ZS1pbnRlcmFjdGl2ZS1iZWFtLW1vZHVsZZRlaCJdlGgkXZSMN2FwYWNoZV9iZWFtLnJ1bm5lcnMuaW50ZXJhY3RpdmUuaW50ZXJhY3RpdmVfYmVhbSBtb2R1bGWUYWgmXZRoKF2UdWgqaAloG2gDaAFoA2gcaCtoHUsCdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlIwGc291cmNllGgrdWgqaAGMDmN1cnJlbnRfc291cmNllE6MDGN1cnJlbnRfbGluZZROjAhzZXR0aW5nc5SMEWRvY3V0aWxzLmZyb250ZW5klIwGVmFsdWVzlJOUKYGUfZQoaA5OjAlnZW5lcmF0b3KUTowJZGF0ZXN0YW1wlE6MC3NvdXJjZV9saW5rlE6MCnNvdXJjZV91cmyUTowNdG9jX2JhY2tsaW5rc5SMBWVudHJ5lIwSZm9vdG5vdGVfYmFja2xpbmtzlEsBjA1zZWN0bnVtX3hmb3JtlEsBjA5zdHJpcF9jb21tZW50c5ROjBtzdHJpcF9lbGVtZW50c193aXRoX2NsYXNzZXOUTowNc3RyaXBfY2xhc3Nlc5ROjAxyZXBvcnRfbGV2ZWyUSwKMCmhhbHRfbGV2ZWyUSwWMEWV4aXRfc3RhdHVzX2xldmVslEsFjAVkZWJ1Z5ROjA53YXJuaW5nX3N0cmVhbZROjAl0cmFjZWJhY2uUiIwOaW5wdXRfZW5jb2RpbmeUjAl1dGYtOC1zaWeUjBxpbnB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwGc3RyaWN0lIwPb3V0cHV0X2VuY29kaW5nlIwFdXRmLTiUjB1vdXRwdXRfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpRqLwUAAIwOZXJyb3JfZW5jb2RpbmeUjAVVVEYtOJSMHGVycm9yX2VuY29kaW5nX2Vycm9yX2hhbmRsZXKUjBBiYWNrc2xhc2hyZXBsYWNllIwNbGFuZ3VhZ2VfY29kZZSMAmVulIwTcmVjb3JkX2RlcGVuZGVuY2llc5ROjAZjb25maWeUTowJaWRfcHJlZml4lGgGjA5hdXRvX2lkX3ByZWZpeJSMAmlklIwNZHVtcF9zZXR0aW5nc5ROjA5kdW1wX2ludGVybmFsc5ROjA9kdW1wX3RyYW5zZm9ybXOUTowPZHVtcF9wc2V1ZG9feG1slE6MEGV4cG9zZV9pbnRlcm5hbHOUTowOc3RyaWN0X3Zpc2l0b3KUTowPX2Rpc2FibGVfY29uZmlnlE6MB19zb3VyY2WUaCuMDF9kZXN0aW5hdGlvbpROjA1fY29uZmlnX2ZpbGVzlF2UjA5wZXBfcmVmZXJlbmNlc5ROjAxwZXBfYmFzZV91cmyUjCBodHRwczovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL5SMFXBlcF9maWxlX3VybF90ZW1wbGF0ZZSMCHBlcC0lMDRklIwOcmZjX3JlZmVyZW5jZXOUTowMcmZjX2Jhc2VfdXJslIwcaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL5SMCXRhYl93aWR0aJRLCIwddHJpbV9mb290bm90ZV9yZWZlcmVuY2Vfc3BhY2WUiYwWZmlsZV9pbnNlcnRpb25fZW5hYmxlZJSIjAtyYXdfZW5hYmxlZJRLAYwQc3ludGF4X2hpZ2hsaWdodJSMBGxvbmeUjAxzbWFydF9xdW90ZXOUiIwTc21hcnRxdW90ZXNfbG9jYWxlc5RdlIwdY2hhcmFjdGVyX2xldmVsX2lubGluZV9tYXJrdXCUiYwOZG9jdGl0bGVfeGZvcm2UiYwNZG9jaW5mb194Zm9ybZRLAYwSc2VjdHN1YnRpdGxlX3hmb3JtlImMEGVtYmVkX3N0eWxlc2hlZXSUiYwVY2xvYWtfZW1haWxfYWRkcmVzc2VzlIiMA2VudpROdWKMCHJlcG9ydGVylE6MEGluZGlyZWN0X3RhcmdldHOUXZSMEXN1YnN0aXR1dGlvbl9kZWZzlH2UjBJzdWJzdGl0dXRpb25fbmFtZXOUfZSMCHJlZm5hbWVzlH2UjAZyZWZpZHOUfZSMB25hbWVpZHOUfZQoagkFAABqBgUAAGh4aHhqSwEAAGpLAQAAapsBAABqmwEAAGrnAQAAaucBAABqQQIAAGpBAgAAapADAABqkAMAAGp4BAAAangEAAB1jAluYW1ldHlwZXOUfZQoagkFAABOaHiIaksBAACIapsBAACIaucBAACIakECAACIapADAACIangEAACIdWggfZQoagYFAABoC2oFBQAAaACMBnRhcmdldJSTlCmBlH2UKGgFaAZoB12UaB59lChoIF2UagUFAABhaCJdlGgkXZRoJl2UaChdlIwFaXNtb2SUiHVoKmpxBQAAaBtoC2gBaANoHGg+aB1LAXViaHhogWpLAQAAalEBAABqmwEAAGqhAQAAaucBAABq7QEAAGpBAgAAakcCAABqkAMAAGqWAwAAangEAABqfgQAAHWMDWZvb3Rub3RlX3JlZnOUfZSMDWNpdGF0aW9uX3JlZnOUfZSMDWF1dG9mb290bm90ZXOUXZSMEWF1dG9mb290bm90ZV9yZWZzlF2UjBBzeW1ib2xfZm9vdG5vdGVzlF2UjBRzeW1ib2xfZm9vdG5vdGVfcmVmc5RdlIwJZm9vdG5vdGVzlF2UjAljaXRhdGlvbnOUXZSMEmF1dG9mb290bm90ZV9zdGFydJRLAYwVc3ltYm9sX2Zvb3Rub3RlX3N0YXJ0lEsAjAppZF9jb3VudGVylIwLY29sbGVjdGlvbnOUjAdDb3VudGVylJOUfZSFlFKUjA5wYXJzZV9tZXNzYWdlc5RdlIwSdHJhbnNmb3JtX21lc3NhZ2VzlF2UjAt0cmFuc2Zvcm1lcpROjApkZWNvcmF0aW9ulE5oAWgDdWIu