REDROOM
PHP 8.0.30
Path:
Logout
Edit File
Size: 81.67 KB
Close
//opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/dialects/mysql/__pycache__/base.cpython-37.pyc
Text
Base64
Qg0NCgAAAADDzDRdz3oBAOMAAAAAAAAAAAAAAAAZAQAAQAAAAHNiBwAAZABaAGQBZAJsAW0BWgIBAGQBZANsA20EWgQBAGQBZARsBVoFZAFkBGwGWgZkBWQGbAdtCFoJAQBkBWQHbAptC1oLAQBkBWQIbAptDFoMAQBkBWQJbA1tDloOAQBkBWQKbA1tD1oPAQBkBWQLbA1tEFoQAQBkBWQMbBFtEloSAQBkBWQNbBFtE1oTAQBkBWQObBFtFFoUAQBkBWQPbBFtFVoVAQBkBWQQbBFtFloWAQBkBWQRbBFtF1oXAQBkBWQSbBFtGFoYAQBkBWQTbBFtGVoZAQBkBWQUbBFtGloaAQBkBWQVbBFtG1obAQBkBWQWbBFtHFocAQBkBWQXbBFtHVodAQBkBWQYbBFtHloeAQBkBWQZbBFtH1ofAQBkBWQabBFtIFogAQBkBWQbbBFtIVohAQBkBWQcbBFtIloiAQBkBWQdbBFtI1ojAQBkBWQebBFtJFokAQBkBWQfbBFtJVolAQBkBWQgbBFtJlomAQBkBWQhbBFtJ1onAQBkBWQibBFtKFooAQBkBWQjbBFtKVopAQBkBWQkbBFtKloqAQBkBWQlbBFtK1orAQBkBWQmbBFtLFosAQBkBWQnbBFtLVotAQBkBWQobBFtLlouAQBkBWQpbBFtL1ovAQBkBWQqbBFtMFowAQBkK2QsbAdtMVoxAQBkK2QtbAdtMloyAQBkK2QubAdtM1o0AQBkK2QvbAdtNVo1AQBkK2QwbAdtEVo2AQBkK2QxbAdtN1o3AQBkK2QybDhtOVo5AQBkK2QGbDhtCFoIAQBkK2QzbDVtOlo6AQBkK2Q0bDVtO1o7AQBkK2Q1bBFtPFo8AQBkK2Q2bBFtPVo9AQBkK2Q3bBFtPlo+AQBkK2Q4bBFtP1o/AQBkK2Q5bBFtQFpAAQBkK2Q6bDdtQVpBAQBlQmQ7ZDxkPWQ+ZD9kQGRBZEJkQ2REZEVkRmRHZEhkSWRKZEtkTGRNZE5kT2RQZFFkUmRTZFRkVWRWZFdkWGRZZFpkW2RcZF1kXmRfZGBkYWRiZGNkZGRlZGZkZ2RoZGlkamRrZGxkbWRuZG9kcGRxZHJkc2R0ZHVkdmR3ZHhkeWR6ZHtkfGR9ZH5kf2SAZIFkgmSDZIRkhWSGZIdkiGSJZIpki2SMZI1kjmSPZJBkkWSSZJNklGSVZJZkl2SYZJlkmmSbZJxknWSeZJ9koGShZKJko2SkZKVkpmSnZKhkqWSqZKtkrGStZK5kr2SwZLFksmSzZLRktWS2ZLdkuGS5ZLpku2S8ZL1kvmS/ZMBkwWTCZMNkxGTFZMZkx2TIZMlkymTLZMxkzWTOZM9k0GTRZNJk02TUZNVk1mTXZNhk2WTaZNtk3GTdZN5k32TgZOFk4mTjZORk5WTmZOdk6GTpZOpk62TsZO1k7mTvZPBk8WTyZPNk9GT1ZPZk92T4ZPlk+mT7ZPxk/WT+ZP+QAWQAkAFkAZABZAKQAWQDkAFkBJABZAWQAWQGkAFkB5ABZAiQAWQJkAFkCpABZAuQAWQMkAFkDZABZA6QAWQPkAFkEJABZBGQAWQSkAFkE5ABZBSQAWQVkAFkFpABZBeQAWQYkAFkGZABZBqQAWQbkAFkHJABZB2QAWQekAFkH5ABZCBkO2SqZLVk0WTUZNWQAWQhkAFkIpABZCOQAWQkkAFkJZABZCaQAWQnkAFkKJABZCmQAWQqkAFkK5ABZCyQAWQtkAFkLpABZC+QAWQwkAFkMZABZDKQAWQzkAFkNJABZDWQAWQ2kAFkN5ABZDiQAWQ5kAFkOpABZDuQAWQ8kAFkPZABZD6QAWQ/kAFkQJABZEGQAWRCkAFkQ5ABZESQAWRFkAFkRpABZEeQAWRIkAFkSZABZEqQAWRLkAFkTJABZxiDAVpDZQWgRJABZE1lBWpFZQVqRkIAoQJaR2UFoESQAWROZQVqRWUFakZCAKECWkhlKlpJZQxaSmULWktlH1pMZSFaTWUsWk5lPVpPZTxaUGVAWlFlJFpSZSZaU2UZWlRlL1pVZSBaVmUjWldlLlpYZSlaWWUwWlplK1pbZRhaXGUoWl1lLVpeZSJaX2UXWmBlJVphZRtaYmUcWmNlJ1pkZR1aZWUeWmZlE2UTZRVlFWUSZRJlNmpnZSVlNmpoZR1lNmppZSplNmpqZQtlNmprZRRlNmoOZQ5lNmoOag9lD2U2ag5qEGUQaQtabGUXZTxlGGU9ZT5lGWU/ZRplG2UcZQtlG2UdZR5lHmUOZR9lIGUhZSJlI2UkZSZlJWUMZShlKWUqZStlLGUtZS5lQGUvZTCQAWRPnCNabUcAkAFkUJABZFGEAJABZFFlOWpugwNab0cAkAFkUpABZFOEAJABZFNlOmpwgwNacUcAkAFkVJABZFWEAJABZFVlOmpygwNac0cAkAFkVpABZFeEAJABZFdlOmp0gwNadUcAkAFkWJABZFmEAJABZFllOmp2gwNad2UyanhHAJABZFqQAWRbhACQAWRbZTlqeYMDgwFaekcAkAFkXJABZF2EAJABZF1le4MDWnxkBFMAKF4BAABhgW0AAAoKLi4gZGlhbGVjdDo6IG15c3FsCiAgICA6bmFtZTogTXlTUUwKClN1cHBvcnRlZCBWZXJzaW9ucyBhbmQgRmVhdHVyZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKU1FMQWxjaGVteSBzdXBwb3J0cyBNeVNRTCBzdGFydGluZyB3aXRoIHZlcnNpb24gNC4xIHRocm91Z2ggbW9kZXJuIHJlbGVhc2VzLgpIb3dldmVyLCBubyBoZXJvaWMgbWVhc3VyZXMgYXJlIHRha2VuIHRvIHdvcmsgYXJvdW5kIG1ham9yIG1pc3NpbmcKU1FMIGZlYXR1cmVzIC0gaWYgeW91ciBzZXJ2ZXIgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHN1Yi1zZWxlY3RzLCBmb3IKZXhhbXBsZSwgdGhleSB3b24ndCB3b3JrIGluIFNRTEFsY2hlbXkgZWl0aGVyLgoKU2VlIHRoZSBvZmZpY2lhbCBNeVNRTCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBmZWF0dXJlcwpzdXBwb3J0ZWQgaW4gYW55IGdpdmVuIHNlcnZlciByZWxlYXNlLgoKLi4gX215c3FsX2Nvbm5lY3Rpb25fdGltZW91dHM6CgpDb25uZWN0aW9uIFRpbWVvdXRzIGFuZCBEaXNjb25uZWN0cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKTXlTUUwgZmVhdHVyZXMgYW4gYXV0b21hdGljIGNvbm5lY3Rpb24gY2xvc2UgYmVoYXZpb3IsIGZvciBjb25uZWN0aW9ucyB0aGF0CmhhdmUgYmVlbiBpZGxlIGZvciBhIGZpeGVkIHBlcmlvZCBvZiB0aW1lLCBkZWZhdWx0aW5nIHRvIGVpZ2h0IGhvdXJzLgpUbyBjaXJjdW12ZW50IGhhdmluZyB0aGlzIGlzc3VlLCB1c2UKdGhlIDpwYXJhbXJlZjpgLmNyZWF0ZV9lbmdpbmUucG9vbF9yZWN5Y2xlYCBvcHRpb24gd2hpY2ggZW5zdXJlcyB0aGF0CmEgY29ubmVjdGlvbiB3aWxsIGJlIGRpc2NhcmRlZCBhbmQgcmVwbGFjZWQgd2l0aCBhIG5ldyBvbmUgaWYgaXQgaGFzIGJlZW4KcHJlc2VudCBpbiB0aGUgcG9vbCBmb3IgYSBmaXhlZCBudW1iZXIgb2Ygc2Vjb25kczo6CgogICAgZW5naW5lID0gY3JlYXRlX2VuZ2luZSgnbXlzcWwrbXlzcWxkYjovLy4uLicsIHBvb2xfcmVjeWNsZT0zNjAwKQoKRm9yIG1vcmUgY29tcHJlaGVuc2l2ZSBkaXNjb25uZWN0IGRldGVjdGlvbiBvZiBwb29sZWQgY29ubmVjdGlvbnMsIGluY2x1ZGluZwphY2NvbW1vZGF0aW9uIG9mICBzZXJ2ZXIgcmVzdGFydHMgYW5kIG5ldHdvcmsgaXNzdWVzLCBhIHByZS1waW5nIGFwcHJvYWNoIG1heQpiZSBlbXBsb3llZC4gIFNlZSA6cmVmOmBwb29sX2Rpc2Nvbm5lY3RzYCBmb3IgY3VycmVudCBhcHByb2FjaGVzLgoKLi4gc2VlYWxzbzo6CgogICAgOnJlZjpgcG9vbF9kaXNjb25uZWN0c2AgLSBCYWNrZ3JvdW5kIG9uIHNldmVyYWwgdGVjaG5pcXVlcyBmb3IgZGVhbGluZwogICAgd2l0aCB0aW1lZCBvdXQgY29ubmVjdGlvbnMgYXMgd2VsbCBhcyBkYXRhYmFzZSByZXN0YXJ0cy4KCi4uIF9teXNxbF9zdG9yYWdlX2VuZ2luZXM6CgpDUkVBVEUgVEFCTEUgYXJndW1lbnRzIGluY2x1ZGluZyBTdG9yYWdlIEVuZ2luZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpNeVNRTCdzIENSRUFURSBUQUJMRSBzeW50YXggaW5jbHVkZXMgYSB3aWRlIGFycmF5IG9mIHNwZWNpYWwgb3B0aW9ucywKaW5jbHVkaW5nIGBgRU5HSU5FYGAsIGBgQ0hBUlNFVGBgLCBgYE1BWF9ST1dTYGAsIGBgUk9XX0ZPUk1BVGBgLApgYElOU0VSVF9NRVRIT0RgYCwgYW5kIG1hbnkgbW9yZS4KVG8gYWNjb21tb2RhdGUgdGhlIHJlbmRlcmluZyBvZiB0aGVzZSBhcmd1bWVudHMsIHNwZWNpZnkgdGhlIGZvcm0KYGBteXNxbF9hcmd1bWVudF9uYW1lPSJ2YWx1ZSJgYC4gIEZvciBleGFtcGxlLCB0byBzcGVjaWZ5IGEgdGFibGUgd2l0aApgYEVOR0lORWBgIG9mIGBgSW5ub0RCYGAsIGBgQ0hBUlNFVGBgIG9mIGBgdXRmOG1iNGBgLCBhbmQgYGBLRVlfQkxPQ0tfU0laRWBgCm9mIGBgMTAyNGBgOjoKCiAgVGFibGUoJ215dGFibGUnLCBtZXRhZGF0YSwKICAgICAgICBDb2x1bW4oJ2RhdGEnLCBTdHJpbmcoMzIpKSwKICAgICAgICBteXNxbF9lbmdpbmU9J0lubm9EQicsCiAgICAgICAgbXlzcWxfY2hhcnNldD0ndXRmOG1iNCcsCiAgICAgICAgbXlzcWxfa2V5X2Jsb2NrX3NpemU9IjEwMjQiCiAgICAgICApCgpUaGUgTXlTUUwgZGlhbGVjdCB3aWxsIG5vcm1hbGx5IHRyYW5zZmVyIGFueSBrZXl3b3JkIHNwZWNpZmllZCBhcwpgYG15c3FsX2tleXdvcmRfbmFtZWBgIHRvIGJlIHJlbmRlcmVkIGFzIGBgS0VZV09SRF9OQU1FYGAgaW4gdGhlCmBgQ1JFQVRFIFRBQkxFYGAgc3RhdGVtZW50LiAgQSBoYW5kZnVsIG9mIHRoZXNlIG5hbWVzIHdpbGwgcmVuZGVyIHdpdGggYSBzcGFjZQppbnN0ZWFkIG9mIGFuIHVuZGVyc2NvcmU7IHRvIHN1cHBvcnQgdGhpcywgdGhlIE15U1FMIGRpYWxlY3QgaGFzIGF3YXJlbmVzcyBvZgp0aGVzZSBwYXJ0aWN1bGFyIG5hbWVzLCB3aGljaCBpbmNsdWRlIGBgREFUQSBESVJFQ1RPUllgYAooZS5nLiBgYG15c3FsX2RhdGFfZGlyZWN0b3J5YGApLCBgYENIQVJBQ1RFUiBTRVRgYCAoZS5nLgpgYG15c3FsX2NoYXJhY3Rlcl9zZXRgYCkgYW5kIGBgSU5ERVggRElSRUNUT1JZYGAgKGUuZy4KYGBteXNxbF9pbmRleF9kaXJlY3RvcnlgYCkuCgpUaGUgbW9zdCBjb21tb24gYXJndW1lbnQgaXMgYGBteXNxbF9lbmdpbmVgYCwgd2hpY2ggcmVmZXJzIHRvIHRoZSBzdG9yYWdlCmVuZ2luZSBmb3IgdGhlIHRhYmxlLiAgSGlzdG9yaWNhbGx5LCBNeVNRTCBzZXJ2ZXIgaW5zdGFsbGF0aW9ucyB3b3VsZCBkZWZhdWx0CnRvIGBgTXlJU0FNYGAgZm9yIHRoaXMgdmFsdWUsIGFsdGhvdWdoIG5ld2VyIHZlcnNpb25zIG1heSBiZSBkZWZhdWx0aW5nCnRvIGBgSW5ub0RCYGAuICBUaGUgYGBJbm5vREJgYCBlbmdpbmUgaXMgdHlwaWNhbGx5IHByZWZlcnJlZCBmb3IgaXRzIHN1cHBvcnQKb2YgdHJhbnNhY3Rpb25zIGFuZCBmb3JlaWduIGtleXMuCgpBIDpjbGFzczpgLlRhYmxlYCB0aGF0IGlzIGNyZWF0ZWQgaW4gYSBNeVNRTCBkYXRhYmFzZSB3aXRoIGEgc3RvcmFnZSBlbmdpbmUKb2YgYGBNeUlTQU1gYCB3aWxsIGJlIGVzc2VudGlhbGx5IG5vbi10cmFuc2FjdGlvbmFsLCBtZWFuaW5nIGFueQpJTlNFUlQvVVBEQVRFL0RFTEVURSBzdGF0ZW1lbnQgcmVmZXJyaW5nIHRvIHRoaXMgdGFibGUgd2lsbCBiZSBpbnZva2VkIGFzCmF1dG9jb21taXQuICAgSXQgYWxzbyB3aWxsIGhhdmUgbm8gc3VwcG9ydCBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludHM7IHdoaWxlCnRoZSBgYENSRUFURSBUQUJMRWBgIHN0YXRlbWVudCBhY2NlcHRzIGZvcmVpZ24ga2V5IG9wdGlvbnMsIHdoZW4gdXNpbmcgdGhlCmBgTXlJU0FNYGAgc3RvcmFnZSBlbmdpbmUgdGhlc2UgYXJndW1lbnRzIGFyZSBkaXNjYXJkZWQuICBSZWZsZWN0aW5nIHN1Y2ggYQp0YWJsZSB3aWxsIGFsc28gcHJvZHVjZSBubyBmb3JlaWduIGtleSBjb25zdHJhaW50IGluZm9ybWF0aW9uLgoKRm9yIGZ1bGx5IGF0b21pYyB0cmFuc2FjdGlvbnMgYXMgd2VsbCBhcyBzdXBwb3J0IGZvciBmb3JlaWduIGtleQpjb25zdHJhaW50cywgYWxsIHBhcnRpY2lwYXRpbmcgYGBDUkVBVEUgVEFCTEVgYCBzdGF0ZW1lbnRzIG11c3Qgc3BlY2lmeSBhCnRyYW5zYWN0aW9uYWwgZW5naW5lLCB3aGljaCBpbiB0aGUgdmFzdCBtYWpvcml0eSBvZiBjYXNlcyBpcyBgYElubm9EQmBgLgoKLi4gc2VlYWxzbzo6CgogICAgYFRoZSBJbm5vREIgU3RvcmFnZSBFbmdpbmUKICAgIDxodHRwOi8vZGV2Lm15c3FsLmNvbS9kb2MvcmVmbWFuLzUuMC9lbi9pbm5vZGItc3RvcmFnZS1lbmdpbmUuaHRtbD5gXyAtCiAgICBvbiB0aGUgTXlTUUwgd2Vic2l0ZS4KCkNhc2UgU2Vuc2l0aXZpdHkgYW5kIFRhYmxlIFJlZmxlY3Rpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKTXlTUUwgaGFzIGluY29uc2lzdGVudCBzdXBwb3J0IGZvciBjYXNlLXNlbnNpdGl2ZSBpZGVudGlmaWVyCm5hbWVzLCBiYXNpbmcgc3VwcG9ydCBvbiBzcGVjaWZpYyBkZXRhaWxzIG9mIHRoZSB1bmRlcmx5aW5nCm9wZXJhdGluZyBzeXN0ZW0uIEhvd2V2ZXIsIGl0IGhhcyBiZWVuIG9ic2VydmVkIHRoYXQgbm8gbWF0dGVyCndoYXQgY2FzZSBzZW5zaXRpdml0eSBiZWhhdmlvciBpcyBwcmVzZW50LCB0aGUgbmFtZXMgb2YgdGFibGVzIGluCmZvcmVpZ24ga2V5IGRlY2xhcmF0aW9ucyBhcmUgKmFsd2F5cyogcmVjZWl2ZWQgZnJvbSB0aGUgZGF0YWJhc2UKYXMgYWxsLWxvd2VyIGNhc2UsIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIGFjY3VyYXRlbHkgcmVmbGVjdCBhCnNjaGVtYSB3aGVyZSBpbnRlci1yZWxhdGVkIHRhYmxlcyB1c2UgbWl4ZWQtY2FzZSBpZGVudGlmaWVyIG5hbWVzLgoKVGhlcmVmb3JlIGl0IGlzIHN0cm9uZ2x5IGFkdmlzZWQgdGhhdCB0YWJsZSBuYW1lcyBiZSBkZWNsYXJlZCBhcwphbGwgbG93ZXIgY2FzZSBib3RoIHdpdGhpbiBTUUxBbGNoZW15IGFzIHdlbGwgYXMgb24gdGhlIE15U1FMCmRhdGFiYXNlIGl0c2VsZiwgZXNwZWNpYWxseSBpZiBkYXRhYmFzZSByZWZsZWN0aW9uIGZlYXR1cmVzIGFyZQp0byBiZSB1c2VkLgoKLi4gX215c3FsX2lzb2xhdGlvbl9sZXZlbDoKClRyYW5zYWN0aW9uIElzb2xhdGlvbiBMZXZlbAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkFsbCBNeVNRTCBkaWFsZWN0cyBzdXBwb3J0IHNldHRpbmcgb2YgdHJhbnNhY3Rpb24gaXNvbGF0aW9uIGxldmVsIGJvdGggdmlhIGEKZGlhbGVjdC1zcGVjaWZpYyBwYXJhbWV0ZXIgOnBhcmFtcmVmOmAuY3JlYXRlX2VuZ2luZS5pc29sYXRpb25fbGV2ZWxgIGFjY2VwdGVkCmJ5IDpmdW5jOmAuY3JlYXRlX2VuZ2luZWAsIGFzIHdlbGwgYXMgdGhlCjpwYXJhbXJlZjpgLkNvbm5lY3Rpb24uZXhlY3V0aW9uX29wdGlvbnMuaXNvbGF0aW9uX2xldmVsYCBhcmd1bWVudCBhcyBwYXNzZWQgdG8KOm1ldGg6YC5Db25uZWN0aW9uLmV4ZWN1dGlvbl9vcHRpb25zYC4gVGhpcyBmZWF0dXJlIHdvcmtzIGJ5IGlzc3VpbmcgdGhlCmNvbW1hbmQgYGBTRVQgU0VTU0lPTiBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwgPGxldmVsPmBgIGZvciBlYWNoIG5ldwpjb25uZWN0aW9uLiAgRm9yIHRoZSBzcGVjaWFsIEFVVE9DT01NSVQgaXNvbGF0aW9uIGxldmVsLCBEQkFQSS1zcGVjaWZpYwp0ZWNobmlxdWVzIGFyZSB1c2VkLgoKVG8gc2V0IGlzb2xhdGlvbiBsZXZlbCB1c2luZyA6ZnVuYzpgLmNyZWF0ZV9lbmdpbmVgOjoKCiAgICBlbmdpbmUgPSBjcmVhdGVfZW5naW5lKAogICAgICAgICAgICAgICAgICAgICJteXNxbDovL3Njb3R0OnRpZ2VyQGxvY2FsaG9zdC90ZXN0IiwKICAgICAgICAgICAgICAgICAgICBpc29sYXRpb25fbGV2ZWw9IlJFQUQgVU5DT01NSVRURUQiCiAgICAgICAgICAgICAgICApCgpUbyBzZXQgdXNpbmcgcGVyLWNvbm5lY3Rpb24gZXhlY3V0aW9uIG9wdGlvbnM6OgoKICAgIGNvbm5lY3Rpb24gPSBlbmdpbmUuY29ubmVjdCgpCiAgICBjb25uZWN0aW9uID0gY29ubmVjdGlvbi5leGVjdXRpb25fb3B0aW9ucygKICAgICAgICBpc29sYXRpb25fbGV2ZWw9IlJFQUQgQ09NTUlUVEVEIgogICAgKQoKVmFsaWQgdmFsdWVzIGZvciBgYGlzb2xhdGlvbl9sZXZlbGBgIGluY2x1ZGU6CgoqIGBgUkVBRCBDT01NSVRURURgYAoqIGBgUkVBRCBVTkNPTU1JVFRFRGBgCiogYGBSRVBFQVRBQkxFIFJFQURgYAoqIGBgU0VSSUFMSVpBQkxFYGAKKiBgYEFVVE9DT01NSVRgYAoKVGhlIHNwZWNpYWwgYGBBVVRPQ09NTUlUYGAgdmFsdWUgbWFrZXMgdXNlIG9mIHRoZSB2YXJpb3VzICJhdXRvY29tbWl0IgphdHRyaWJ1dGVzIHByb3ZpZGVkIGJ5IHNwZWNpZmljIERCQVBJcywgYW5kIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQgYnkKTXlTUUxkYiwgTXlTUUwtQ2xpZW50LCBNeVNRTC1Db25uZWN0b3IgUHl0aG9uLCBhbmQgUHlNeVNRTC4gICBVc2luZyBpdCwKdGhlIE15U1FMIGNvbm5lY3Rpb24gd2lsbCByZXR1cm4gdHJ1ZSBmb3IgdGhlIHZhbHVlIG9mCmBgU0VMRUNUIEBAYXV0b2NvbW1pdDtgYC4KCi4uIHZlcnNpb25hZGRlZDo6IDEuMSAtIGFkZGVkIHN1cHBvcnQgZm9yIHRoZSBBVVRPQ09NTUlUIGlzb2xhdGlvbiBsZXZlbC4KCkFVVE9fSU5DUkVNRU5UIEJlaGF2aW9yCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpXaGVuIGNyZWF0aW5nIHRhYmxlcywgU1FMQWxjaGVteSB3aWxsIGF1dG9tYXRpY2FsbHkgc2V0IGBgQVVUT19JTkNSRU1FTlRgYCBvbgp0aGUgZmlyc3QgOmNsYXNzOmAuSW50ZWdlcmAgcHJpbWFyeSBrZXkgY29sdW1uIHdoaWNoIGlzIG5vdCBtYXJrZWQgYXMgYQpmb3JlaWduIGtleTo6CgogID4+PiB0ID0gVGFibGUoJ215dGFibGUnLCBtZXRhZGF0YSwKICAuLi4gICBDb2x1bW4oJ215dGFibGVfaWQnLCBJbnRlZ2VyLCBwcmltYXJ5X2tleT1UcnVlKQogIC4uLiApCiAgPj4+IHQuY3JlYXRlKCkKICBDUkVBVEUgVEFCTEUgbXl0YWJsZSAoCiAgICAgICAgICBpZCBJTlRFR0VSIE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULAogICAgICAgICAgUFJJTUFSWSBLRVkgKGlkKQogICkKCllvdSBjYW4gZGlzYWJsZSB0aGlzIGJlaGF2aW9yIGJ5IHBhc3NpbmcgYGBGYWxzZWBgIHRvIHRoZQo6cGFyYW1yZWY6YH4uQ29sdW1uLmF1dG9pbmNyZW1lbnRgIGFyZ3VtZW50IG9mIDpjbGFzczpgLkNvbHVtbmAuICBUaGlzIGZsYWcKY2FuIGFsc28gYmUgdXNlZCB0byBlbmFibGUgYXV0by1pbmNyZW1lbnQgb24gYSBzZWNvbmRhcnkgY29sdW1uIGluIGEKbXVsdGktY29sdW1uIGtleSBmb3Igc29tZSBzdG9yYWdlIGVuZ2luZXM6OgoKICBUYWJsZSgnbXl0YWJsZScsIG1ldGFkYXRhLAogICAgICAgIENvbHVtbignZ2lkJywgSW50ZWdlciwgcHJpbWFyeV9rZXk9VHJ1ZSwgYXV0b2luY3JlbWVudD1GYWxzZSksCiAgICAgICAgQ29sdW1uKCdpZCcsIEludGVnZXIsIHByaW1hcnlfa2V5PVRydWUpCiAgICAgICApCgouLiBfbXlzcWxfc3NfY3Vyc29yczoKClNlcnZlciBTaWRlIEN1cnNvcnMKLS0tLS0tLS0tLS0tLS0tLS0tLQoKU2VydmVyLXNpZGUgY3Vyc29yIHN1cHBvcnQgaXMgYXZhaWxhYmxlIGZvciB0aGUgTXlTUUxkYiBhbmQgUHlNeVNRTCBkaWFsZWN0cy4KRnJvbSBhIE15U1FMIHBvaW50IG9mIHZpZXcgdGhpcyBtZWFucyB0aGF0IHRoZSBgYE15U1FMZGIuY3Vyc29ycy5TU0N1cnNvcmBgIG9yCmBgcHlteXNxbC5jdXJzb3JzLlNTQ3Vyc29yYGAgY2xhc3MgaXMgdXNlZCB3aGVuIGJ1aWxkaW5nIHVwIHRoZSBjdXJzb3Igd2hpY2gKd2lsbCByZWNlaXZlIHJlc3VsdHMuICBUaGUgbW9zdCB0eXBpY2FsIHdheSBvZiBpbnZva2luZyB0aGlzIGZlYXR1cmUgaXMgdmlhIHRoZQo6cGFyYW1yZWY6YC5Db25uZWN0aW9uLmV4ZWN1dGlvbl9vcHRpb25zLnN0cmVhbV9yZXN1bHRzYCBjb25uZWN0aW9uIGV4ZWN1dGlvbgpvcHRpb24uICAgU2VydmVyIHNpZGUgY3Vyc29ycyBjYW4gYWxzbyBiZSBlbmFibGVkIGZvciBhbGwgU0VMRUNUIHN0YXRlbWVudHMKdW5jb25kaXRpb25hbGx5IGJ5IHBhc3NpbmcgYGBzZXJ2ZXJfc2lkZV9jdXJzb3JzPVRydWVgYCB0bwo6ZnVuYzpgLmNyZWF0ZV9lbmdpbmVgLgoKLi4gdmVyc2lvbmFkZGVkOjogMS4xLjQgLSBhZGRlZCBzZXJ2ZXItc2lkZSBjdXJzb3Igc3VwcG9ydC4KCi4uIF9teXNxbF91bmljb2RlOgoKVW5pY29kZQotLS0tLS0tCgpDaGFyc2V0IFNlbGVjdGlvbgp+fn5+fn5+fn5+fn5+fn5+fgoKTW9zdCBNeVNRTCBEQkFQSXMgb2ZmZXIgdGhlIG9wdGlvbiB0byBzZXQgdGhlIGNsaWVudCBjaGFyYWN0ZXIgc2V0IGZvcgphIGNvbm5lY3Rpb24uICAgVGhpcyBpcyB0eXBpY2FsbHkgZGVsaXZlcmVkIHVzaW5nIHRoZSBgYGNoYXJzZXRgYCBwYXJhbWV0ZXIKaW4gdGhlIFVSTCwgc3VjaCBhczo6CgogICAgZSA9IGNyZWF0ZV9lbmdpbmUoCiAgICAgICAgIm15c3FsK3B5bXlzcWw6Ly9zY290dDp0aWdlckBsb2NhbGhvc3QvdGVzdD9jaGFyc2V0PXV0ZjhtYjQiKQoKVGhpcyBjaGFyc2V0IGlzIHRoZSAqKmNsaWVudCBjaGFyYWN0ZXIgc2V0KiogZm9yIHRoZSBjb25uZWN0aW9uLiAgU29tZQpNeVNRTCBEQkFQSXMgd2lsbCBkZWZhdWx0IHRoaXMgdG8gYSB2YWx1ZSBzdWNoIGFzIGBgbGF0aW4xYGAsIGFuZCBzb21lCndpbGwgbWFrZSB1c2Ugb2YgdGhlIGBgZGVmYXVsdC1jaGFyYWN0ZXItc2V0YGAgc2V0dGluZyBpbiB0aGUgYGBteS5jbmZgYApmaWxlIGFzIHdlbGwuICAgRG9jdW1lbnRhdGlvbiBmb3IgdGhlIERCQVBJIGluIHVzZSBzaG91bGQgYmUgY29uc3VsdGVkCmZvciBzcGVjaWZpYyBiZWhhdmlvci4KClRoZSBlbmNvZGluZyB1c2VkIGZvciBVbmljb2RlIGhhcyB0cmFkaXRpb25hbGx5IGJlZW4gYGAndXRmOCdgYC4gIEhvd2V2ZXIsCmZvciBNeVNRTCB2ZXJzaW9ucyA1LjUuMyBvbiBmb3J3YXJkLCBhIG5ldyBNeVNRTC1zcGVjaWZpYyBlbmNvZGluZwpgYCd1dGY4bWI0J2BgIGhhcyBiZWVuIGludHJvZHVjZWQsIGFuZCBhcyBvZiBNeVNRTCA4LjAgYSB3YXJuaW5nIGlzIGVtaXR0ZWQKYnkgdGhlIHNlcnZlciBpZiBwbGFpbiBgYHV0ZjhgYCBpcyBzcGVjaWZpZWQgd2l0aGluIGFueSBzZXJ2ZXItc2lkZQpkaXJlY3RpdmVzLCByZXBsYWNlZCB3aXRoIGBgdXRmOG1iM2BgLiAgIFRoZSByYXRpb25hbGUgZm9yIHRoaXMgbmV3IGVuY29kaW5nCmlzIGR1ZSB0byB0aGUgZmFjdCB0aGF0IE15U1FMJ3MgbGVnYWN5IHV0Zi04IGVuY29kaW5nIG9ubHkgc3VwcG9ydHMKY29kZXBvaW50cyB1cCB0byB0aHJlZSBieXRlcyBpbnN0ZWFkIG9mIGZvdXIuICBUaGVyZWZvcmUsCndoZW4gY29tbXVuaWNhdGluZyB3aXRoIGEgTXlTUUwgZGF0YWJhc2UKdGhhdCBpbmNsdWRlcyBjb2RlcG9pbnRzIG1vcmUgdGhhbiB0aHJlZSBieXRlcyBpbiBzaXplLAp0aGlzIG5ldyBjaGFyc2V0IGlzIHByZWZlcnJlZCwgaWYgc3VwcG9ydGVkIGJ5IGJvdGggdGhlIGRhdGFiYXNlIGFzIHdlbGwKYXMgdGhlIGNsaWVudCBEQkFQSSwgYXMgaW46OgoKICAgIGUgPSBjcmVhdGVfZW5naW5lKAogICAgICAgICJteXNxbCtweW15c3FsOi8vc2NvdHQ6dGlnZXJAbG9jYWxob3N0L3Rlc3Q/Y2hhcnNldD11dGY4bWI0IikKCkFsbCBtb2Rlcm4gREJBUElzIHNob3VsZCBzdXBwb3J0IHRoZSBgYHV0ZjhtYjRgYCBjaGFyc2V0LgoKSW4gb3JkZXIgdG8gdXNlIGBgdXRmOG1iNGBgIGVuY29kaW5nIGZvciBhIHNjaGVtYSB0aGF0IHdhcyBjcmVhdGVkIHdpdGggIGxlZ2FjeQpgYHV0ZjhgYCwgY2hhbmdlcyB0byB0aGUgTXlTUUwgc2NoZW1hIGFuZC9vciBzZXJ2ZXIgY29uZmlndXJhdGlvbiBtYXkgYmUKcmVxdWlyZWQuCgouLiBzZWVhbHNvOjoKCiAgICBgVGhlIHV0ZjhtYjQgQ2hhcmFjdGVyIFNldCBcCiAgICA8aHR0cDovL2Rldi5teXNxbC5jb20vZG9jL3JlZm1hbi81LjUvZW4vY2hhcnNldC11bmljb2RlLXV0ZjhtYjQuaHRtbD5gXyAtIFwKICAgIGluIHRoZSBNeVNRTCBkb2N1bWVudGF0aW9uCgouLiBfbXlzcWxfYmluYXJ5X2ludHJvZHVjZXI6CgpEZWFsaW5nIHdpdGggQmluYXJ5IERhdGEgV2FybmluZ3MgYW5kIFVuaWNvZGUKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgpNeVNRTCB2ZXJzaW9ucyA1LjYsIDUuNyBhbmQgbGF0ZXIgKG5vdCBNYXJpYURCIGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZykgbm93CmVtaXQgYSB3YXJuaW5nIHdoZW4gYXR0ZW1wdGluZyB0byBwYXNzIGJpbmFyeSBkYXRhIHRvIHRoZSBkYXRhYmFzZSwgd2hpbGUgYQpjaGFyYWN0ZXIgc2V0IGVuY29kaW5nIGlzIGFsc28gaW4gcGxhY2UsIHdoZW4gdGhlIGJpbmFyeSBkYXRhIGl0c2VsZiBpcyBub3QKdmFsaWQgZm9yIHRoYXQgZW5jb2Rpbmc6OgoKICAgIGRlZmF1bHQucHk6NTA5OiBXYXJuaW5nOiAoMTMwMCwgIkludmFsaWQgdXRmOG1iNCBjaGFyYWN0ZXIgc3RyaW5nOgogICAgJ0Y5ODc2QSciKQogICAgICBjdXJzb3IuZXhlY3V0ZShzdGF0ZW1lbnQsIHBhcmFtZXRlcnMpCgpUaGlzIHdhcm5pbmcgaXMgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhlIE15U1FMIGNsaWVudCBsaWJyYXJ5IGlzIGF0dGVtcHRpbmcgdG8KaW50ZXJwcmV0IHRoZSBiaW5hcnkgc3RyaW5nIGFzIGEgdW5pY29kZSBvYmplY3QgZXZlbiBpZiBhIGRhdGF0eXBlIHN1Y2gKYXMgOmNsYXNzOmAuTGFyZ2VCaW5hcnlgIGlzIGluIHVzZS4gICBUbyByZXNvbHZlIHRoaXMsIHRoZSBTUUwgc3RhdGVtZW50IHJlcXVpcmVzCmEgYmluYXJ5ICJjaGFyYWN0ZXIgc2V0IGludHJvZHVjZXIiIGJlIHByZXNlbnQgYmVmb3JlIGFueSBub24tTlVMTCB2YWx1ZQp0aGF0IHJlbmRlcnMgbGlrZSB0aGlzOjoKCiAgICBJTlNFUlQgSU5UTyB0YWJsZSAoZGF0YSkgVkFMVUVTIChfYmluYXJ5ICVzKQoKVGhlc2UgY2hhcmFjdGVyIHNldCBpbnRyb2R1Y2VycyBhcmUgcHJvdmlkZWQgYnkgdGhlIERCQVBJIGRyaXZlciwgYXNzdW1pbmcgdGhlCnVzZSBvZiBteXNxbGNsaWVudCBvciBQeU15U1FMIChib3RoIG9mIHdoaWNoIGFyZSByZWNvbW1lbmRlZCkuICBBZGQgdGhlIHF1ZXJ5CnN0cmluZyBwYXJhbWV0ZXIgYGBiaW5hcnlfcHJlZml4PXRydWVgYCB0byB0aGUgVVJMIHRvIHJlcGFpciB0aGlzIHdhcm5pbmc6OgoKICAgICMgbXlzcWxjbGllbnQKICAgIGVuZ2luZSA9IGNyZWF0ZV9lbmdpbmUoCiAgICAgICAgIm15c3FsK215c3FsZGI6Ly9zY290dDp0aWdlckBsb2NhbGhvc3QvdGVzdD9jaGFyc2V0PXV0ZjhtYjQmYmluYXJ5X3ByZWZpeD10cnVlIikKCiAgICAjIFB5TXlTUUwKICAgIGVuZ2luZSA9IGNyZWF0ZV9lbmdpbmUoCiAgICAgICAgIm15c3FsK3B5bXlzcWw6Ly9zY290dDp0aWdlckBsb2NhbGhvc3QvdGVzdD9jaGFyc2V0PXV0ZjhtYjQmYmluYXJ5X3ByZWZpeD10cnVlIikKCgpUaGUgYGBiaW5hcnlfcHJlZml4YGAgZmxhZyBtYXkgb3IgbWF5IG5vdCBiZSBzdXBwb3J0ZWQgYnkgb3RoZXIgTXlTUUwgZHJpdmVycy4KClNRTEFsY2hlbXkgaXRzZWxmIGNhbm5vdCByZW5kZXIgdGhpcyBgYF9iaW5hcnlgYCBwcmVmaXggcmVsaWFibHksIGFzIGl0IGRvZXMKbm90IHdvcmsgd2l0aCB0aGUgTlVMTCB2YWx1ZSwgd2hpY2ggaXMgdmFsaWQgdG8gYmUgc2VudCBhcyBhIGJvdW5kIHBhcmFtZXRlci4KQXMgdGhlIE15U1FMIGRyaXZlciByZW5kZXJzIHBhcmFtZXRlcnMgZGlyZWN0bHkgaW50byB0aGUgU1FMIHN0cmluZywgaXQncyB0aGUKbW9zdCBlZmZpY2llbnQgcGxhY2UgZm9yIHRoaXMgYWRkaXRpb25hbCBrZXl3b3JkIHRvIGJlIHBhc3NlZC4KCi4uIHNlZWFsc286OgoKICAgIGBDaGFyYWN0ZXIgc2V0IGludHJvZHVjZXJzIDxodHRwczovL2Rldi5teXNxbC5jb20vZG9jL3JlZm1hbi81LjcvZW4vY2hhcnNldC1pbnRyb2R1Y2VyLmh0bWw+YF8gLSBvbiB0aGUgTXlTUUwgd2Vic2l0ZQoKCkFOU0kgUXVvdGluZyBTdHlsZQotLS0tLS0tLS0tLS0tLS0tLS0KCk15U1FMIGZlYXR1cmVzIHR3byB2YXJpZXRpZXMgb2YgaWRlbnRpZmllciAicXVvdGluZyBzdHlsZSIsIG9uZSB1c2luZwpiYWNrdGlja3MgYW5kIHRoZSBvdGhlciB1c2luZyBxdW90ZXMsIGUuZy4gYGBgc29tZV9pZGVudGlmaWVyYGBgICB2cy4KYGAic29tZV9pZGVudGlmaWVyImBgLiAgIEFsbCBNeVNRTCBkaWFsZWN0cyBkZXRlY3Qgd2hpY2ggdmVyc2lvbgppcyBpbiB1c2UgYnkgY2hlY2tpbmcgdGhlIHZhbHVlIG9mIGBgc3FsX21vZGVgYCB3aGVuIGEgY29ubmVjdGlvbiBpcyBmaXJzdAplc3RhYmxpc2hlZCB3aXRoIGEgcGFydGljdWxhciA6Y2xhc3M6YC5FbmdpbmVgLiAgVGhpcyBxdW90aW5nIHN0eWxlIGNvbWVzCmludG8gcGxheSB3aGVuIHJlbmRlcmluZyB0YWJsZSBhbmQgY29sdW1uIG5hbWVzIGFzIHdlbGwgYXMgd2hlbiByZWZsZWN0aW5nCmV4aXN0aW5nIGRhdGFiYXNlIHN0cnVjdHVyZXMuICBUaGUgZGV0ZWN0aW9uIGlzIGVudGlyZWx5IGF1dG9tYXRpYyBhbmQKbm8gc3BlY2lhbCBjb25maWd1cmF0aW9uIGlzIG5lZWRlZCB0byB1c2UgZWl0aGVyIHF1b3Rpbmcgc3R5bGUuCgpNeVNRTCBTUUwgRXh0ZW5zaW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLQoKTWFueSBvZiB0aGUgTXlTUUwgU1FMIGV4dGVuc2lvbnMgYXJlIGhhbmRsZWQgdGhyb3VnaCBTUUxBbGNoZW15J3MgZ2VuZXJpYwpmdW5jdGlvbiBhbmQgb3BlcmF0b3Igc3VwcG9ydDo6CgogIHRhYmxlLnNlbGVjdCh0YWJsZS5jLnBhc3N3b3JkPT1mdW5jLm1kNSgncGxhaW50ZXh0JykpCiAgdGFibGUuc2VsZWN0KHRhYmxlLmMudXNlcm5hbWUub3AoJ3JlZ2V4cCcpKCdeW2EtZF0nKSkKCkFuZCBvZiBjb3Vyc2UgYW55IHZhbGlkIE15U1FMIHN0YXRlbWVudCBjYW4gYmUgZXhlY3V0ZWQgYXMgYSBzdHJpbmcgYXMgd2VsbC4KClNvbWUgbGltaXRlZCBkaXJlY3Qgc3VwcG9ydCBmb3IgTXlTUUwgZXh0ZW5zaW9ucyB0byBTUUwgaXMgY3VycmVudGx5CmF2YWlsYWJsZS4KCiogSU5TRVJULi5PTiBEVVBMSUNBVEUgS0VZIFVQREFURTogIFNlZQogIDpyZWY6YG15c3FsX2luc2VydF9vbl9kdXBsaWNhdGVfa2V5X3VwZGF0ZWAKCiogU0VMRUNUIHByYWdtYSwgdXNlIDptZXRoOmAuU2VsZWN0LnByZWZpeF93aXRoYCBhbmQgOm1ldGg6YC5RdWVyeS5wcmVmaXhfd2l0aGA6OgoKICAgIHNlbGVjdCguLi4pLnByZWZpeF93aXRoKFsnSElHSF9QUklPUklUWScsICdTUUxfU01BTExfUkVTVUxUJ10pCgoqIFVQREFURSB3aXRoIExJTUlUOjoKCiAgICB1cGRhdGUoLi4uLCBteXNxbF9saW1pdD0xMCkKCiogb3B0aW1pemVyIGhpbnRzLCB1c2UgOm1ldGg6YC5TZWxlY3QucHJlZml4X3dpdGhgIGFuZCA6bWV0aDpgLlF1ZXJ5LnByZWZpeF93aXRoYDo6CgogICAgc2VsZWN0KC4uLikucHJlZml4X3dpdGgoIi8qKyBOT19SQU5HRV9PUFRJTUlaQVRJT04odDQgUFJJTUFSWSkgKi8iKQoKKiBpbmRleCBoaW50cywgdXNlIDptZXRoOmAuU2VsZWN0LndpdGhfaGludGAgYW5kIDptZXRoOmAuUXVlcnkud2l0aF9oaW50YDo6CgogICAgc2VsZWN0KC4uLikud2l0aF9oaW50KHNvbWVfdGFibGUsICJVU0UgSU5ERVggeHl6IikKCi4uIF9teXNxbF9pbnNlcnRfb25fZHVwbGljYXRlX2tleV91cGRhdGU6CgpJTlNFUlQuLi5PTiBEVVBMSUNBVEUgS0VZIFVQREFURSAoVXBzZXJ0KQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk15U1FMIGFsbG93cyAidXBzZXJ0cyIgKHVwZGF0ZSBvciBpbnNlcnQpCm9mIHJvd3MgaW50byBhIHRhYmxlIHZpYSB0aGUgYGBPTiBEVVBMSUNBVEUgS0VZIFVQREFURWBgIGNsYXVzZSBvZiB0aGUKYGBJTlNFUlRgYCBzdGF0ZW1lbnQuICBBIGNhbmRpZGF0ZSByb3cgd2lsbCBvbmx5IGJlIGluc2VydGVkIGlmIHRoYXQgcm93IGRvZXMKbm90IG1hdGNoIGFuIGV4aXN0aW5nIHByaW1hcnkgb3IgdW5pcXVlIGtleSBpbiB0aGUgdGFibGU7IG90aGVyd2lzZSwgYW4gVVBEQVRFCndpbGwgYmUgcGVyZm9ybWVkLiAgIFRoZSBzdGF0ZW1lbnQgYWxsb3dzIGZvciBzZXBhcmF0ZSBzcGVjaWZpY2F0aW9uIG9mIHRoZQp2YWx1ZXMgdG8gSU5TRVJUIHZlcnN1cyB0aGUgdmFsdWVzIGZvciBVUERBVEUuCgpTUUxBbGNoZW15IHByb3ZpZGVzIGBgT04gRFVQTElDQVRFIEtFWSBVUERBVEVgYCBzdXBwb3J0IHZpYSB0aGUgTXlTUUwtc3BlY2lmaWMKOmZ1bmM6YC5teXNxbC5kbWwuaW5zZXJ0KClgIGZ1bmN0aW9uLCB3aGljaCBwcm92aWRlcwp0aGUgZ2VuZXJhdGl2ZSBtZXRob2QgOm1ldGg6YH4ubXlzcWwuZG1sLkluc2VydC5vbl9kdXBsaWNhdGVfa2V5X3VwZGF0ZWA6OgoKICAgIGZyb20gc3FsYWxjaGVteS5kaWFsZWN0cy5teXNxbCBpbXBvcnQgaW5zZXJ0CgogICAgaW5zZXJ0X3N0bXQgPSBpbnNlcnQobXlfdGFibGUpLnZhbHVlcygKICAgICAgICBpZD0nc29tZV9leGlzdGluZ19pZCcsCiAgICAgICAgZGF0YT0naW5zZXJ0ZWQgdmFsdWUnKQoKICAgIG9uX2R1cGxpY2F0ZV9rZXlfc3RtdCA9IGluc2VydF9zdG10Lm9uX2R1cGxpY2F0ZV9rZXlfdXBkYXRlKAogICAgICAgIGRhdGE9aW5zZXJ0X3N0bXQuaW5zZXJ0ZWQuZGF0YSwKICAgICAgICBzdGF0dXM9J1UnCiAgICApCgogICAgY29ubi5leGVjdXRlKG9uX2R1cGxpY2F0ZV9rZXlfc3RtdCkKClVubGlrZSBQb3N0Z3JlU1FMJ3MgIk9OIENPTkZMSUNUIiBwaHJhc2UsIHRoZSAiT04gRFVQTElDQVRFIEtFWSBVUERBVEUiCnBocmFzZSB3aWxsIGFsd2F5cyBtYXRjaCBvbiBhbnkgcHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSwgYW5kIHdpbGwgYWx3YXlzCnBlcmZvcm0gYW4gVVBEQVRFIGlmIHRoZXJlJ3MgYSBtYXRjaDsgdGhlcmUgYXJlIG5vIG9wdGlvbnMgZm9yIGl0IHRvIHJhaXNlCmFuIGVycm9yIG9yIHRvIHNraXAgcGVyZm9ybWluZyBhbiBVUERBVEUuCgpgYE9OIERVUExJQ0FURSBLRVkgVVBEQVRFYGAgaXMgdXNlZCB0byBwZXJmb3JtIGFuIHVwZGF0ZSBvZiB0aGUgYWxyZWFkeQpleGlzdGluZyByb3csIHVzaW5nIGFueSBjb21iaW5hdGlvbiBvZiBuZXcgdmFsdWVzIGFzIHdlbGwgYXMgdmFsdWVzCmZyb20gdGhlIHByb3Bvc2VkIGluc2VydGlvbi4gICBUaGVzZSB2YWx1ZXMgYXJlIG5vcm1hbGx5IHNwZWNpZmllZCB1c2luZwprZXl3b3JkIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlCjptZXRoOmB+Lm15c3FsLmRtbC5JbnNlcnQub25fZHVwbGljYXRlX2tleV91cGRhdGVgCmdpdmVuIGNvbHVtbiBrZXkgdmFsdWVzICh1c3VhbGx5IHRoZSBuYW1lIG9mIHRoZSBjb2x1bW4sIHVubGVzcyBpdApzcGVjaWZpZXMgOnBhcmFtcmVmOmAuQ29sdW1uLmtleWApIGFzIGtleXMgYW5kIGxpdGVyYWwgb3IgU1FMIGV4cHJlc3Npb25zCmFzIHZhbHVlczo6CgogICAgb25fZHVwbGljYXRlX2tleV9zdG10ID0gaW5zZXJ0X3N0bXQub25fZHVwbGljYXRlX2tleV91cGRhdGUoCiAgICAgICAgZGF0YT0ic29tZSBkYXRhIiwKICAgICAgICB1cGRhdGVkX2F0PWZ1bmMuY3VycmVudF90aW1lc3RhbXAoKSwKICAgICkKCkluIGEgbWFubmVyIHNpbWlsYXIgdG8gdGhhdCBvZiA6bWV0aDpgLlVwZGF0ZUJhc2UudmFsdWVzYCwgb3RoZXIgcGFyYW1ldGVyCmZvcm1zIGFyZSBhY2NlcHRlZCwgaW5jbHVkaW5nIGEgc2luZ2xlIGRpY3Rpb25hcnk6OgoKICAgIG9uX2R1cGxpY2F0ZV9rZXlfc3RtdCA9IGluc2VydF9zdG10Lm9uX2R1cGxpY2F0ZV9rZXlfdXBkYXRlKAogICAgICAgIHsiZGF0YSI6ICJzb21lIGRhdGEiLCAidXBkYXRlZF9hdCI6IGZ1bmMuY3VycmVudF90aW1lc3RhbXAoKX0sCiAgICApCgphcyB3ZWxsIGFzIGEgbGlzdCBvZiAyLXR1cGxlcywgd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5IHByb3ZpZGUKYSBwYXJhbWV0ZXItb3JkZXJlZCBVUERBVEUgc3RhdGVtZW50IGluIGEgbWFubmVyIHNpbWlsYXIgdG8gdGhhdCBkZXNjcmliZWQKYXQgOnJlZjpgdXBkYXRlc19vcmRlcl9wYXJhbWV0ZXJzYC4gIFVubGlrZSB0aGUgOmNsYXNzOmAuVXBkYXRlYCBvYmplY3QsCm5vIHNwZWNpYWwgZmxhZyBpcyBuZWVkZWQgdG8gc3BlY2lmeSB0aGUgaW50ZW50IHNpbmNlIHRoZSBhcmd1bWVudCBmb3JtIGlzCnRoaXMgY29udGV4dCBpcyB1bmFtYmlndW91czo6CgogICAgb25fZHVwbGljYXRlX2tleV9zdG10ID0gaW5zZXJ0X3N0bXQub25fZHVwbGljYXRlX2tleV91cGRhdGUoCiAgICAgICAgWwogICAgICAgICAgICAoImRhdGEiLCAic29tZSBkYXRhIiksCiAgICAgICAgICAgICgidXBkYXRlZF9hdCIsIGZ1bmMuY3VycmVudF90aW1lc3RhbXAoKSksCiAgICAgICAgXSwKICAgICkKCi4uIHZlcnNpb25jaGFuZ2VkOjogMS4zIHN1cHBvcnQgZm9yIHBhcmFtZXRlci1vcmRlcmVkIFVQREFURSBjbGF1c2Ugd2l0aGluCiAgIE15U1FMIE9OIERVUExJQ0FURSBLRVkgVVBEQVRFCgouLiB3YXJuaW5nOjoKCiAgICBUaGUgOm1ldGg6YC5JbnNlcnQub25fZHVwbGljYXRlX2tleV91cGRhdGVgIG1ldGhvZCBkb2VzICoqbm90KiogdGFrZSBpbnRvCiAgICBhY2NvdW50IFB5dGhvbi1zaWRlIGRlZmF1bHQgVVBEQVRFIHZhbHVlcyBvciBnZW5lcmF0aW9uIGZ1bmN0aW9ucywgZS5nLgogICAgZS5nLiB0aG9zZSBzcGVjaWZpZWQgdXNpbmcgOnBhcmFtcmVmOmAuQ29sdW1uLm9udXBkYXRlYC4KICAgIFRoZXNlIHZhbHVlcyB3aWxsIG5vdCBiZSBleGVyY2lzZWQgZm9yIGFuIE9OIERVUExJQ0FURSBLRVkgc3R5bGUgb2YgVVBEQVRFLAogICAgdW5sZXNzIHRoZXkgYXJlIG1hbnVhbGx5IHNwZWNpZmllZCBleHBsaWNpdGx5IGluIHRoZSBwYXJhbWV0ZXJzLgoKCgpJbiBvcmRlciB0byByZWZlciB0byB0aGUgcHJvcG9zZWQgaW5zZXJ0aW9uIHJvdywgdGhlIHNwZWNpYWwgYWxpYXMKOmF0dHI6YH4ubXlzcWwuZG1sLkluc2VydC5pbnNlcnRlZGAgaXMgYXZhaWxhYmxlIGFzIGFuIGF0dHJpYnV0ZSBvbgp0aGUgOmNsYXNzOmAubXlzcWwuZG1sLkluc2VydGAgb2JqZWN0OyB0aGlzIG9iamVjdCBpcyBhCjpjbGFzczpgLkNvbHVtbkNvbGxlY3Rpb25gIHdoaWNoIGNvbnRhaW5zIGFsbCBjb2x1bW5zIG9mIHRoZSB0YXJnZXQKdGFibGU6OgoKICAgIGZyb20gc3FsYWxjaGVteS5kaWFsZWN0cy5teXNxbCBpbXBvcnQgaW5zZXJ0CgogICAgc3RtdCA9IGluc2VydChteV90YWJsZSkudmFsdWVzKAogICAgICAgIGlkPSdzb21lX2lkJywKICAgICAgICBkYXRhPSdpbnNlcnRlZCB2YWx1ZScsCiAgICAgICAgYXV0aG9yPSdqbGgnKQogICAgZG9fdXBkYXRlX3N0bXQgPSBzdG10Lm9uX2R1cGxpY2F0ZV9rZXlfdXBkYXRlKAogICAgICAgIGRhdGE9InVwZGF0ZWQgdmFsdWUiLAogICAgICAgIGF1dGhvcj1zdG10Lmluc2VydGVkLmF1dGhvcgogICAgKQogICAgY29ubi5leGVjdXRlKGRvX3VwZGF0ZV9zdG10KQoKV2hlbiByZW5kZXJlZCwgdGhlICJpbnNlcnRlZCIgbmFtZXNwYWNlIHdpbGwgcHJvZHVjZSB0aGUgZXhwcmVzc2lvbgpgYFZBTFVFUyg8Y29sdW1ubmFtZT4pYGAuCgouLiB2ZXJzaW9uYWRkZWQ6OiAxLjIgQWRkZWQgc3VwcG9ydCBmb3IgTXlTUUwgT04gRFVQTElDQVRFIEtFWSBVUERBVEUgY2xhdXNlCgoKCnJvd2NvdW50IFN1cHBvcnQKLS0tLS0tLS0tLS0tLS0tLQoKU1FMQWxjaGVteSBzdGFuZGFyZGl6ZXMgdGhlIERCQVBJIGBgY3Vyc29yLnJvd2NvdW50YGAgYXR0cmlidXRlIHRvIGJlIHRoZQp1c3VhbCBkZWZpbml0aW9uIG9mICJudW1iZXIgb2Ygcm93cyBtYXRjaGVkIGJ5IGFuIFVQREFURSBvciBERUxFVEUiIHN0YXRlbWVudC4KVGhpcyBpcyBpbiBjb250cmFkaWN0aW9uIHRvIHRoZSBkZWZhdWx0IHNldHRpbmcgb24gbW9zdCBNeVNRTCBEQkFQSSBkcml2ZXJzLAp3aGljaCBpcyAibnVtYmVyIG9mIHJvd3MgYWN0dWFsbHkgbW9kaWZpZWQvZGVsZXRlZCIuICBGb3IgdGhpcyByZWFzb24sIHRoZQpTUUxBbGNoZW15IE15U1FMIGRpYWxlY3RzIGFsd2F5cyBhZGQgdGhlIGBgY29uc3RhbnRzLkNMSUVOVC5GT1VORF9ST1dTYGAKZmxhZywgb3Igd2hhdGV2ZXIgaXMgZXF1aXZhbGVudCBmb3IgdGhlIHRhcmdldCBkaWFsZWN0LCB1cG9uIGNvbm5lY3Rpb24uClRoaXMgc2V0dGluZyBpcyBjdXJyZW50bHkgaGFyZGNvZGVkLgoKLi4gc2VlYWxzbzo6CgogICAgOmF0dHI6YC5SZXN1bHRQcm94eS5yb3djb3VudGAKCgpDQVNUIFN1cHBvcnQKLS0tLS0tLS0tLS0tCgpNeVNRTCBkb2N1bWVudHMgdGhlIENBU1Qgb3BlcmF0b3IgYXMgYXZhaWxhYmxlIGluIHZlcnNpb24gNC4wLjIuICBXaGVuIHVzaW5nCnRoZSBTUUxBbGNoZW15IDpmdW5jOmAuY2FzdGAgZnVuY3Rpb24sIFNRTEFsY2hlbXkKd2lsbCBub3QgcmVuZGVyIHRoZSBDQVNUIHRva2VuIG9uIE15U1FMIGJlZm9yZSB0aGlzIHZlcnNpb24sIGJhc2VkIG9uIHNlcnZlcgp2ZXJzaW9uIGRldGVjdGlvbiwgaW5zdGVhZCByZW5kZXJpbmcgdGhlIGludGVybmFsIGV4cHJlc3Npb24gZGlyZWN0bHkuCgpDQVNUIG1heSBzdGlsbCBub3QgYmUgZGVzaXJhYmxlIG9uIGFuIGVhcmx5IE15U1FMIHZlcnNpb24gcG9zdC00LjAuMiwgYXMgaXQKZGlkbid0IGFkZCBhbGwgZGF0YXR5cGUgc3VwcG9ydCB1bnRpbCA0LjEuMS4gICBJZiB5b3VyIGFwcGxpY2F0aW9uIGZhbGxzIGludG8KdGhpcyBuYXJyb3cgYXJlYSwgdGhlIGJlaGF2aW9yIG9mIENBU1QgY2FuIGJlIGNvbnRyb2xsZWQgdXNpbmcgdGhlCjpyZWY6YHNxbGFsY2hlbXkuZXh0LmNvbXBpbGVyX3RvcGxldmVsYCBzeXN0ZW0sIGFzIHBlciB0aGUgcmVjaXBlIGJlbG93OjoKCiAgICBmcm9tIHNxbGFsY2hlbXkuc3FsLmV4cHJlc3Npb24gaW1wb3J0IENhc3QKICAgIGZyb20gc3FsYWxjaGVteS5leHQuY29tcGlsZXIgaW1wb3J0IGNvbXBpbGVzCgogICAgQGNvbXBpbGVzKENhc3QsICdteXNxbCcpCiAgICBkZWYgX2NoZWNrX215c3FsX3ZlcnNpb24oZWxlbWVudCwgY29tcGlsZXIsICoqa3cpOgogICAgICAgIGlmIGNvbXBpbGVyLmRpYWxlY3Quc2VydmVyX3ZlcnNpb25faW5mbyA8ICg0LCAxLCAwKToKICAgICAgICAgICAgcmV0dXJuIGNvbXBpbGVyLnByb2Nlc3MoZWxlbWVudC5jbGF1c2UsICoqa3cpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIGNvbXBpbGVyLnZpc2l0X2Nhc3QoZWxlbWVudCwgKiprdykKClRoZSBhYm92ZSBmdW5jdGlvbiwgd2hpY2ggb25seSBuZWVkcyB0byBiZSBkZWNsYXJlZCBvbmNlCndpdGhpbiBhbiBhcHBsaWNhdGlvbiwgb3ZlcnJpZGVzIHRoZSBjb21waWxhdGlvbiBvZiB0aGUKOmZ1bmM6YC5jYXN0YCBjb25zdHJ1Y3QgdG8gY2hlY2sgZm9yIHZlcnNpb24gNC4xLjAgYmVmb3JlCmZ1bGx5IHJlbmRlcmluZyBDQVNUOyBlbHNlIHRoZSBpbnRlcm5hbCBlbGVtZW50IG9mIHRoZQpjb25zdHJ1Y3QgaXMgcmVuZGVyZWQgZGlyZWN0bHkuCgoKLi4gX215c3FsX2luZGV4ZXM6CgpNeVNRTCBTcGVjaWZpYyBJbmRleCBPcHRpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk15U1FMLXNwZWNpZmljIGV4dGVuc2lvbnMgdG8gdGhlIDpjbGFzczpgLkluZGV4YCBjb25zdHJ1Y3QgYXJlIGF2YWlsYWJsZS4KCkluZGV4IExlbmd0aAp+fn5+fn5+fn5+fn5+CgpNeVNRTCBwcm92aWRlcyBhbiBvcHRpb24gdG8gY3JlYXRlIGluZGV4IGVudHJpZXMgd2l0aCBhIGNlcnRhaW4gbGVuZ3RoLCB3aGVyZQoibGVuZ3RoIiByZWZlcnMgdG8gdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIG9yIGJ5dGVzIGluIGVhY2ggdmFsdWUgd2hpY2ggd2lsbApiZWNvbWUgcGFydCBvZiB0aGUgaW5kZXguIFNRTEFsY2hlbXkgcHJvdmlkZXMgdGhpcyBmZWF0dXJlIHZpYSB0aGUKYGBteXNxbF9sZW5ndGhgYCBwYXJhbWV0ZXI6OgoKICAgIEluZGV4KCdteV9pbmRleCcsIG15X3RhYmxlLmMuZGF0YSwgbXlzcWxfbGVuZ3RoPTEwKQoKICAgIEluZGV4KCdhX2JfaWR4JywgbXlfdGFibGUuYy5hLCBteV90YWJsZS5jLmIsIG15c3FsX2xlbmd0aD17J2EnOiA0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYic6IDl9KQoKUHJlZml4IGxlbmd0aHMgYXJlIGdpdmVuIGluIGNoYXJhY3RlcnMgZm9yIG5vbmJpbmFyeSBzdHJpbmcgdHlwZXMgYW5kIGluIGJ5dGVzCmZvciBiaW5hcnkgc3RyaW5nIHR5cGVzLiBUaGUgdmFsdWUgcGFzc2VkIHRvIHRoZSBrZXl3b3JkIGFyZ3VtZW50ICptdXN0KiBiZQplaXRoZXIgYW4gaW50ZWdlciAoYW5kLCB0aHVzLCBzcGVjaWZ5IHRoZSBzYW1lIHByZWZpeCBsZW5ndGggdmFsdWUgZm9yIGFsbApjb2x1bW5zIG9mIHRoZSBpbmRleCkgb3IgYSBkaWN0IGluIHdoaWNoIGtleXMgYXJlIGNvbHVtbiBuYW1lcyBhbmQgdmFsdWVzIGFyZQpwcmVmaXggbGVuZ3RoIHZhbHVlcyBmb3IgY29ycmVzcG9uZGluZyBjb2x1bW5zLiBNeVNRTCBvbmx5IGFsbG93cyBhIGxlbmd0aCBmb3IKYSBjb2x1bW4gb2YgYW4gaW5kZXggaWYgaXQgaXMgZm9yIGEgQ0hBUiwgVkFSQ0hBUiwgVEVYVCwgQklOQVJZLCBWQVJCSU5BUlkgYW5kCkJMT0IuCgpJbmRleCBQcmVmaXhlcwp+fn5+fn5+fn5+fn5+fgoKTXlTUUwgc3RvcmFnZSBlbmdpbmVzIHBlcm1pdCB5b3UgdG8gc3BlY2lmeSBhbiBpbmRleCBwcmVmaXggd2hlbiBjcmVhdGluZwphbiBpbmRleC4gU1FMQWxjaGVteSBwcm92aWRlcyB0aGlzIGZlYXR1cmUgdmlhIHRoZQpgYG15c3FsX3ByZWZpeGBgIHBhcmFtZXRlciBvbiA6Y2xhc3M6YC5JbmRleGA6OgoKICAgIEluZGV4KCdteV9pbmRleCcsIG15X3RhYmxlLmMuZGF0YSwgbXlzcWxfcHJlZml4PSdGVUxMVEVYVCcpCgpUaGUgdmFsdWUgcGFzc2VkIHRvIHRoZSBrZXl3b3JkIGFyZ3VtZW50IHdpbGwgYmUgc2ltcGx5IHBhc3NlZCB0aHJvdWdoIHRvIHRoZQp1bmRlcmx5aW5nIENSRUFURSBJTkRFWCwgc28gaXQgKm11c3QqIGJlIGEgdmFsaWQgaW5kZXggcHJlZml4IGZvciB5b3VyIE15U1FMCnN0b3JhZ2UgZW5naW5lLgoKLi4gdmVyc2lvbmFkZGVkOjogMS4xLjUKCi4uIHNlZWFsc286OgoKICAgIGBDUkVBVEUgSU5ERVggPGh0dHA6Ly9kZXYubXlzcWwuY29tL2RvYy9yZWZtYW4vNS4wL2VuL2NyZWF0ZS1pbmRleC5odG1sPmBfIC0gTXlTUUwgZG9jdW1lbnRhdGlvbgoKSW5kZXggVHlwZXMKfn5+fn5+fn5+fn5+fgoKU29tZSBNeVNRTCBzdG9yYWdlIGVuZ2luZXMgcGVybWl0IHlvdSB0byBzcGVjaWZ5IGFuIGluZGV4IHR5cGUgd2hlbiBjcmVhdGluZwphbiBpbmRleCBvciBwcmltYXJ5IGtleSBjb25zdHJhaW50LiBTUUxBbGNoZW15IHByb3ZpZGVzIHRoaXMgZmVhdHVyZSB2aWEgdGhlCmBgbXlzcWxfdXNpbmdgYCBwYXJhbWV0ZXIgb24gOmNsYXNzOmAuSW5kZXhgOjoKCiAgICBJbmRleCgnbXlfaW5kZXgnLCBteV90YWJsZS5jLmRhdGEsIG15c3FsX3VzaW5nPSdoYXNoJykKCkFzIHdlbGwgYXMgdGhlIGBgbXlzcWxfdXNpbmdgYCBwYXJhbWV0ZXIgb24gOmNsYXNzOmAuUHJpbWFyeUtleUNvbnN0cmFpbnRgOjoKCiAgICBQcmltYXJ5S2V5Q29uc3RyYWludCgiZGF0YSIsIG15c3FsX3VzaW5nPSdoYXNoJykKClRoZSB2YWx1ZSBwYXNzZWQgdG8gdGhlIGtleXdvcmQgYXJndW1lbnQgd2lsbCBiZSBzaW1wbHkgcGFzc2VkIHRocm91Z2ggdG8gdGhlCnVuZGVybHlpbmcgQ1JFQVRFIElOREVYIG9yIFBSSU1BUlkgS0VZIGNsYXVzZSwgc28gaXQgKm11c3QqIGJlIGEgdmFsaWQgaW5kZXgKdHlwZSBmb3IgeW91ciBNeVNRTCBzdG9yYWdlIGVuZ2luZS4KCk1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGF0OgoKaHR0cDovL2Rldi5teXNxbC5jb20vZG9jL3JlZm1hbi81LjAvZW4vY3JlYXRlLWluZGV4Lmh0bWwKCmh0dHA6Ly9kZXYubXlzcWwuY29tL2RvYy9yZWZtYW4vNS4wL2VuL2NyZWF0ZS10YWJsZS5odG1sCgpJbmRleCBQYXJzZXJzCn5+fn5+fn5+fn5+fn4KCkNSRUFURSBGVUxMVEVYVCBJTkRFWCBpbiBNeVNRTCBhbHNvIHN1cHBvcnRzIGEgIldJVEggUEFSU0VSIiBvcHRpb24uICBUaGlzCmlzIGF2YWlsYWJsZSB1c2luZyB0aGUga2V5d29yZCBhcmd1bWVudCBgYG15c3FsX3dpdGhfcGFyc2VyYGA6OgoKICAgIEluZGV4KAogICAgICAgICdteV9pbmRleCcsIG15X3RhYmxlLmMuZGF0YSwKICAgICAgICBteXNxbF9wcmVmaXg9J0ZVTExURVhUJywgbXlzcWxfd2l0aF9wYXJzZXI9Im5ncmFtIikKCi4uIHZlcnNpb25hZGRlZDo6IDEuMwoKCi4uIF9teXNxbF9mb3JlaWduX2tleXM6CgpNeVNRTCBGb3JlaWduIEtleXMKLS0tLS0tLS0tLS0tLS0tLS0tCgpNeVNRTCdzIGJlaGF2aW9yIHJlZ2FyZGluZyBmb3JlaWduIGtleXMgaGFzIHNvbWUgaW1wb3J0YW50IGNhdmVhdHMuCgpGb3JlaWduIEtleSBBcmd1bWVudHMgdG8gQXZvaWQKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoKTXlTUUwgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9yZWlnbiBrZXkgYXJndW1lbnRzICJERUZFUlJBQkxFIiwgIklOSVRJQUxMWSIsCm9yICJNQVRDSCIuICBVc2luZyB0aGUgYGBkZWZlcnJhYmxlYGAgb3IgYGBpbml0aWFsbHlgYCBrZXl3b3JkIGFyZ3VtZW50IHdpdGgKOmNsYXNzOmAuRm9yZWlnbktleUNvbnN0cmFpbnRgIG9yIDpjbGFzczpgLkZvcmVpZ25LZXlgIHdpbGwgaGF2ZSB0aGUgZWZmZWN0IG9mCnRoZXNlIGtleXdvcmRzIGJlaW5nIHJlbmRlcmVkIGluIGEgRERMIGV4cHJlc3Npb24sIHdoaWNoIHdpbGwgdGhlbiByYWlzZSBhbgplcnJvciBvbiBNeVNRTC4gIEluIG9yZGVyIHRvIHVzZSB0aGVzZSBrZXl3b3JkcyBvbiBhIGZvcmVpZ24ga2V5IHdoaWxlIGhhdmluZwp0aGVtIGlnbm9yZWQgb24gYSBNeVNRTCBiYWNrZW5kLCB1c2UgYSBjdXN0b20gY29tcGlsZSBydWxlOjoKCiAgICBmcm9tIHNxbGFsY2hlbXkuZXh0LmNvbXBpbGVyIGltcG9ydCBjb21waWxlcwogICAgZnJvbSBzcWxhbGNoZW15LnNjaGVtYSBpbXBvcnQgRm9yZWlnbktleUNvbnN0cmFpbnQKCiAgICBAY29tcGlsZXMoRm9yZWlnbktleUNvbnN0cmFpbnQsICJteXNxbCIpCiAgICBkZWYgcHJvY2VzcyhlbGVtZW50LCBjb21waWxlciwgKiprdyk6CiAgICAgICAgZWxlbWVudC5kZWZlcnJhYmxlID0gZWxlbWVudC5pbml0aWFsbHkgPSBOb25lCiAgICAgICAgcmV0dXJuIGNvbXBpbGVyLnZpc2l0X2ZvcmVpZ25fa2V5X2NvbnN0cmFpbnQoZWxlbWVudCwgKiprdykKCi4uIHZlcnNpb25jaGFuZ2VkOjogMC45LjAgLSB0aGUgTXlTUUwgYmFja2VuZCBubyBsb25nZXIgc2lsZW50bHkgaWdub3JlcwogICB0aGUgYGBkZWZlcnJhYmxlYGAgb3IgYGBpbml0aWFsbHlgYCBrZXl3b3JkIGFyZ3VtZW50cyBvZgogICA6Y2xhc3M6YC5Gb3JlaWduS2V5Q29uc3RyYWludGAgYW5kIDpjbGFzczpgLkZvcmVpZ25LZXlgLgoKVGhlICJNQVRDSCIga2V5d29yZCBpcyBpbiBmYWN0IG1vcmUgaW5zaWRpb3VzLCBhbmQgaXMgZXhwbGljaXRseSBkaXNhbGxvd2VkCmJ5IFNRTEFsY2hlbXkgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgTXlTUUwgYmFja2VuZC4gIFRoaXMgYXJndW1lbnQgaXMKc2lsZW50bHkgaWdub3JlZCBieSBNeVNRTCwgYnV0IGluIGFkZGl0aW9uIGhhcyB0aGUgZWZmZWN0IG9mIE9OIFVQREFURSBhbmQgT04KREVMRVRFIG9wdGlvbnMgYWxzbyBiZWluZyBpZ25vcmVkIGJ5IHRoZSBiYWNrZW5kLiAgIFRoZXJlZm9yZSBNQVRDSCBzaG91bGQKbmV2ZXIgYmUgdXNlZCB3aXRoIHRoZSBNeVNRTCBiYWNrZW5kOyBhcyBpcyB0aGUgY2FzZSB3aXRoIERFRkVSUkFCTEUgYW5kCklOSVRJQUxMWSwgY3VzdG9tIGNvbXBpbGF0aW9uIHJ1bGVzIGNhbiBiZSB1c2VkIHRvIGNvcnJlY3QgYSBNeVNRTApGb3JlaWduS2V5Q29uc3RyYWludCBhdCBEREwgZGVmaW5pdGlvbiB0aW1lLgoKLi4gdmVyc2lvbmFkZGVkOjogMC45LjAgLSB0aGUgTXlTUUwgYmFja2VuZCB3aWxsIHJhaXNlIGEKICAgOmNsYXNzOmAuQ29tcGlsZUVycm9yYCB3aGVuIHRoZSBgYG1hdGNoYGAga2V5d29yZCBpcyB1c2VkIHdpdGgKICAgOmNsYXNzOmAuRm9yZWlnbktleUNvbnN0cmFpbnRgIG9yIDpjbGFzczpgLkZvcmVpZ25LZXlgLgoKUmVmbGVjdGlvbiBvZiBGb3JlaWduIEtleSBDb25zdHJhaW50cwp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgpOb3QgYWxsIE15U1FMIHN0b3JhZ2UgZW5naW5lcyBzdXBwb3J0IGZvcmVpZ24ga2V5cy4gIFdoZW4gdXNpbmcgdGhlCnZlcnkgY29tbW9uIGBgTXlJU0FNYGAgTXlTUUwgc3RvcmFnZSBlbmdpbmUsIHRoZSBpbmZvcm1hdGlvbiBsb2FkZWQgYnkgdGFibGUKcmVmbGVjdGlvbiB3aWxsIG5vdCBpbmNsdWRlIGZvcmVpZ24ga2V5cy4gIEZvciB0aGVzZSB0YWJsZXMsIHlvdSBtYXkgc3VwcGx5IGEKOmNsYXNzOmB+c3FsYWxjaGVteS5Gb3JlaWduS2V5Q29uc3RyYWludGAgYXQgcmVmbGVjdGlvbiB0aW1lOjoKCiAgVGFibGUoJ215dGFibGUnLCBtZXRhZGF0YSwKICAgICAgICBGb3JlaWduS2V5Q29uc3RyYWludChbJ290aGVyX2lkJ10sIFsnb3RoZXJ0YWJsZS5vdGhlcl9pZCddKSwKICAgICAgICBhdXRvbG9hZD1UcnVlCiAgICAgICApCgouLiBzZWVhbHNvOjoKCiAgICA6cmVmOmBteXNxbF9zdG9yYWdlX2VuZ2luZXNgCgouLiBfbXlzcWxfdW5pcXVlX2NvbnN0cmFpbnRzOgoKTXlTUUwgVW5pcXVlIENvbnN0cmFpbnRzIGFuZCBSZWZsZWN0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKU1FMQWxjaGVteSBzdXBwb3J0cyBib3RoIHRoZSA6Y2xhc3M6YC5JbmRleGAgY29uc3RydWN0IHdpdGggdGhlCmZsYWcgYGB1bmlxdWU9VHJ1ZWBgLCBpbmRpY2F0aW5nIGEgVU5JUVVFIGluZGV4LCBhcyB3ZWxsIGFzIHRoZQo6Y2xhc3M6YC5VbmlxdWVDb25zdHJhaW50YCBjb25zdHJ1Y3QsIHJlcHJlc2VudGluZyBhIFVOSVFVRSBjb25zdHJhaW50LgpCb3RoIG9iamVjdHMvc3ludGF4ZXMgYXJlIHN1cHBvcnRlZCBieSBNeVNRTCB3aGVuIGVtaXR0aW5nIERETCB0byBjcmVhdGUKdGhlc2UgY29uc3RyYWludHMuICBIb3dldmVyLCBNeVNRTCBkb2VzIG5vdCBoYXZlIGEgdW5pcXVlIGNvbnN0cmFpbnQKY29uc3RydWN0IHRoYXQgaXMgc2VwYXJhdGUgZnJvbSBhIHVuaXF1ZSBpbmRleDsgdGhhdCBpcywgdGhlICJVTklRVUUiCmNvbnN0cmFpbnQgb24gTXlTUUwgaXMgZXF1aXZhbGVudCB0byBjcmVhdGluZyBhICJVTklRVUUgSU5ERVgiLgoKV2hlbiByZWZsZWN0aW5nIHRoZXNlIGNvbnN0cnVjdHMsIHRoZSA6bWV0aDpgLkluc3BlY3Rvci5nZXRfaW5kZXhlc2AKYW5kIHRoZSA6bWV0aDpgLkluc3BlY3Rvci5nZXRfdW5pcXVlX2NvbnN0cmFpbnRzYCBtZXRob2RzIHdpbGwgKipib3RoKioKcmV0dXJuIGFuIGVudHJ5IGZvciBhIFVOSVFVRSBpbmRleCBpbiBNeVNRTC4gIEhvd2V2ZXIsIHdoZW4gcGVyZm9ybWluZwpmdWxsIHRhYmxlIHJlZmxlY3Rpb24gdXNpbmcgYGBUYWJsZSguLi4sIGF1dG9sb2FkPVRydWUpYGAsCnRoZSA6Y2xhc3M6YC5VbmlxdWVDb25zdHJhaW50YCBjb25zdHJ1Y3QgaXMKKipub3QqKiBwYXJ0IG9mIHRoZSBmdWxseSByZWZsZWN0ZWQgOmNsYXNzOmAuVGFibGVgIGNvbnN0cnVjdCB1bmRlciBhbnkKY2lyY3Vtc3RhbmNlczsgdGhpcyBjb25zdHJ1Y3QgaXMgYWx3YXlzIHJlcHJlc2VudGVkIGJ5IGEgOmNsYXNzOmAuSW5kZXhgCndpdGggdGhlIGBgdW5pcXVlPVRydWVgYCBzZXR0aW5nIHByZXNlbnQgaW4gdGhlIDphdHRyOmAuVGFibGUuaW5kZXhlc2AKY29sbGVjdGlvbi4KCgouLiBfbXlzcWxfdGltZXN0YW1wX251bGw6CgpUSU1FU1RBTVAgQ29sdW1ucyBhbmQgTlVMTAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKTXlTUUwgaGlzdG9yaWNhbGx5IGVuZm9yY2VzIHRoYXQgYSBjb2x1bW4gd2hpY2ggc3BlY2lmaWVzIHRoZQpUSU1FU1RBTVAgZGF0YXR5cGUgaW1wbGljaXRseSBpbmNsdWRlcyBhIGRlZmF1bHQgdmFsdWUgb2YKQ1VSUkVOVF9USU1FU1RBTVAsIGV2ZW4gdGhvdWdoIHRoaXMgaXMgbm90IHN0YXRlZCwgYW5kIGFkZGl0aW9uYWxseQpzZXRzIHRoZSBjb2x1bW4gYXMgTk9UIE5VTEwsIHRoZSBvcHBvc2l0ZSBiZWhhdmlvciB2cy4gdGhhdCBvZiBhbGwKb3RoZXIgZGF0YXR5cGVzOjoKCiAgICBteXNxbD4gQ1JFQVRFIFRBQkxFIHRzX3Rlc3QgKAogICAgICAgIC0+IGEgSU5URUdFUiwKICAgICAgICAtPiBiIElOVEVHRVIgTk9UIE5VTEwsCiAgICAgICAgLT4gYyBUSU1FU1RBTVAsCiAgICAgICAgLT4gZCBUSU1FU1RBTVAgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKICAgICAgICAtPiBlIFRJTUVTVEFNUCBOVUxMKTsKICAgIFF1ZXJ5IE9LLCAwIHJvd3MgYWZmZWN0ZWQgKDAuMDMgc2VjKQoKICAgIG15c3FsPiBTSE9XIENSRUFURSBUQUJMRSB0c190ZXN0OwogICAgKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgfCBUYWJsZSAgIHwgQ3JlYXRlIFRhYmxlCiAgICArLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICB8IHRzX3Rlc3QgfCBDUkVBVEUgVEFCTEUgYHRzX3Rlc3RgICgKICAgICAgYGFgIGludCgxMSkgREVGQVVMVCBOVUxMLAogICAgICBgYmAgaW50KDExKSBOT1QgTlVMTCwKICAgICAgYGNgIHRpbWVzdGFtcCBOT1QgTlVMTCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QIE9OIFVQREFURSBDVVJSRU5UX1RJTUVTVEFNUCwKICAgICAgYGRgIHRpbWVzdGFtcCBOT1QgTlVMTCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLAogICAgICBgZWAgdGltZXN0YW1wIE5VTEwgREVGQVVMVCBOVUxMCiAgICApIEVOR0lORT1NeUlTQU0gREVGQVVMVCBDSEFSU0VUPWxhdGluMQoKQWJvdmUsIHdlIHNlZSB0aGF0IGFuIElOVEVHRVIgY29sdW1uIGRlZmF1bHRzIHRvIE5VTEwsIHVubGVzcyBpdCBpcyBzcGVjaWZpZWQKd2l0aCBOT1QgTlVMTC4gICBCdXQgd2hlbiB0aGUgY29sdW1uIGlzIG9mIHR5cGUgVElNRVNUQU1QLCBhbiBpbXBsaWNpdApkZWZhdWx0IG9mIENVUlJFTlRfVElNRVNUQU1QIGlzIGdlbmVyYXRlZCB3aGljaCBhbHNvIGNvZXJjZXMgdGhlIGNvbHVtbgp0byBiZSBhIE5PVCBOVUxMLCBldmVuIHRob3VnaCB3ZSBkaWQgbm90IHNwZWNpZnkgaXQgYXMgc3VjaC4KClRoaXMgYmVoYXZpb3Igb2YgTXlTUUwgY2FuIGJlIGNoYW5nZWQgb24gdGhlIE15U1FMIHNpZGUgdXNpbmcgdGhlCmBleHBsaWNpdF9kZWZhdWx0c19mb3JfdGltZXN0YW1wCjxodHRwOi8vZGV2Lm15c3FsLmNvbS9kb2MvcmVmbWFuLzUuNi9lbi9zZXJ2ZXItc3lzdGVtLXZhcmlhYmxlcy5odG1sCiNzeXN2YXJfZXhwbGljaXRfZGVmYXVsdHNfZm9yX3RpbWVzdGFtcD5gXyBjb25maWd1cmF0aW9uIGZsYWcgaW50cm9kdWNlZCBpbgpNeVNRTCA1LjYuICBXaXRoIHRoaXMgc2VydmVyIHNldHRpbmcgZW5hYmxlZCwgVElNRVNUQU1QIGNvbHVtbnMgYmVoYXZlIGxpa2UKYW55IG90aGVyIGRhdGF0eXBlIG9uIHRoZSBNeVNRTCBzaWRlIHdpdGggcmVnYXJkcyB0byBkZWZhdWx0cyBhbmQgbnVsbGFiaWxpdHkuCgpIb3dldmVyLCB0byBhY2NvbW1vZGF0ZSB0aGUgdmFzdCBtYWpvcml0eSBvZiBNeVNRTCBkYXRhYmFzZXMgdGhhdCBkbyBub3QKc3BlY2lmeSB0aGlzIG5ldyBmbGFnLCBTUUxBbGNoZW15IGVtaXRzIHRoZSAiTlVMTCIgc3BlY2lmaWVyIGV4cGxpY2l0bHkgd2l0aAphbnkgVElNRVNUQU1QIGNvbHVtbiB0aGF0IGRvZXMgbm90IHNwZWNpZnkgYGBudWxsYWJsZT1GYWxzZWBgLiAgIEluIG9yZGVyIHRvCmFjY29tbW9kYXRlIG5ld2VyIGRhdGFiYXNlcyB0aGF0IHNwZWNpZnkgYGBleHBsaWNpdF9kZWZhdWx0c19mb3JfdGltZXN0YW1wYGAsClNRTEFsY2hlbXkgYWxzbyBlbWl0cyBOT1QgTlVMTCBmb3IgVElNRVNUQU1QIGNvbHVtbnMgdGhhdCBkbyBzcGVjaWZ5CmBgbnVsbGFibGU9RmFsc2VgYC4gICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgaWxsdXN0cmF0ZXM6OgoKICAgIGZyb20gc3FsYWxjaGVteSBpbXBvcnQgTWV0YURhdGEsIEludGVnZXIsIFRhYmxlLCBDb2x1bW4sIHRleHQKICAgIGZyb20gc3FsYWxjaGVteS5kaWFsZWN0cy5teXNxbCBpbXBvcnQgVElNRVNUQU1QCgogICAgbSA9IE1ldGFEYXRhKCkKICAgIHQgPSBUYWJsZSgndHNfdGVzdCcsIG0sCiAgICAgICAgICAgIENvbHVtbignYScsIEludGVnZXIpLAogICAgICAgICAgICBDb2x1bW4oJ2InLCBJbnRlZ2VyLCBudWxsYWJsZT1GYWxzZSksCiAgICAgICAgICAgIENvbHVtbignYycsIFRJTUVTVEFNUCksCiAgICAgICAgICAgIENvbHVtbignZCcsIFRJTUVTVEFNUCwgbnVsbGFibGU9RmFsc2UpCiAgICAgICAgKQoKCiAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IGNyZWF0ZV9lbmdpbmUKICAgIGUgPSBjcmVhdGVfZW5naW5lKCJteXNxbDovL3Njb3R0OnRpZ2VyQGxvY2FsaG9zdC90ZXN0IiwgZWNobz1UcnVlKQogICAgbS5jcmVhdGVfYWxsKGUpCgpvdXRwdXQ6OgoKICAgIENSRUFURSBUQUJMRSB0c190ZXN0ICgKICAgICAgICBhIElOVEVHRVIsCiAgICAgICAgYiBJTlRFR0VSIE5PVCBOVUxMLAogICAgICAgIGMgVElNRVNUQU1QIE5VTEwsCiAgICAgICAgZCBUSU1FU1RBTVAgTk9UIE5VTEwKICAgICkKCi4uIHZlcnNpb25jaGFuZ2VkOjogMS4wLjAgLSBTUUxBbGNoZW15IG5vdyByZW5kZXJzIE5VTEwgb3IgTk9UIE5VTEwgaW4gYWxsCiAgIGNhc2VzIGZvciBUSU1FU1RBTVAgY29sdW1ucywgdG8gYWNjb21tb2RhdGUKICAgYGBleHBsaWNpdF9kZWZhdWx0c19mb3JfdGltZXN0YW1wYGAuICBQcmlvciB0byB0aGlzIHZlcnNpb24sIGl0IHdpbGwKICAgbm90IHJlbmRlciAiTk9UIE5VTEwiIGZvciBhIFRJTUVTVEFNUCBjb2x1bW4gdGhhdCBpcyBgYG51bGxhYmxlPUZhbHNlYGAuCgrpAAAAACkB2gVhcnJheSkB2gtkZWZhdWx0ZGljdE7pAQAAACkB2gpyZWZsZWN0aW9uKQHaBEVOVU0pAdoDU0VUKQHaBEpTT04pAdoNSlNPTkluZGV4VHlwZSkB2gxKU09OUGF0aFR5cGUpAdoKX0Zsb2F0VHlwZSkB2gxfSW50ZWdlclR5cGUpAdoKX01hdGNoVHlwZSkB2gxfTnVtZXJpY1R5cGUpAdoLX1N0cmluZ1R5cGUpAdoGQklHSU5UKQHaA0JJVCkB2gRDSEFSKQHaCERBVEVUSU1FKQHaB0RFQ0lNQUwpAdoGRE9VQkxFKQHaBUZMT0FUKQHaB0lOVEVHRVIpAdoITE9OR0JMT0IpAdoITE9OR1RFWFQpAdoKTUVESVVNQkxPQikB2glNRURJVU1JTlQpAdoKTUVESVVNVEVYVCkB2gVOQ0hBUikB2gdOVU1FUklDKQHaCE5WQVJDSEFSKQHaBFJFQUwpAdoIU01BTExJTlQpAdoEVEVYVCkB2gRUSU1FKQHaCVRJTUVTVEFNUCkB2ghUSU5ZQkxPQikB2gdUSU5ZSU5UKQHaCFRJTllURVhUKQHaB1ZBUkNIQVIpAdoEWUVBUukDAAAAKQHaA2V4YykB2gNsb2cpAdoGc2NoZW1hKQHaA3NxbCkB2gV0eXBlcykB2gR1dGlsKQHaB2RlZmF1bHQpAdoIY29tcGlsZXIpAdoIZWxlbWVudHMpAdoGQklOQVJZKQHaBEJMT0IpAdoHQk9PTEVBTikB2gREQVRFKQHaCVZBUkJJTkFSWSkB2gt0b3BvbG9naWNhbFoKYWNjZXNzaWJsZdoDYWRk2gNhbGxaBWFsdGVyWgdhbmFseXpl2gNhbmTaAmFzWgNhc2NaCmFzZW5zaXRpdmXaBmJlZm9yZVoHYmV0d2VlbtoGYmlnaW502gZiaW5hcnnaBGJsb2JaBGJvdGhaAmJ52gRjYWxsWgdjYXNjYWRl2gRjYXNlWgZjaGFuZ2XaBGNoYXLaCWNoYXJhY3RlctoFY2hlY2vaB2NvbGxhdGXaBmNvbHVtbtoJY29uZGl0aW9u2gpjb25zdHJhaW502ghjb250aW51ZdoHY29udmVydNoGY3JlYXRlWgVjcm9zc1oMY3VycmVudF9kYXRlWgxjdXJyZW50X3RpbWVaEWN1cnJlbnRfdGltZXN0YW1wWgxjdXJyZW50X3VzZXLaBmN1cnNvcloIZGF0YWJhc2VaCWRhdGFiYXNlc1oIZGF5X2hvdXJaD2RheV9taWNyb3NlY29uZFoKZGF5X21pbnV0ZVoKZGF5X3NlY29uZNoDZGVj2gdkZWNpbWFsWgdkZWNsYXJlcjEAAABaB2RlbGF5ZWTaBmRlbGV0ZdoEZGVzY1oIZGVzY3JpYmVaDWRldGVybWluaXN0aWNaCGRpc3RpbmN0WgtkaXN0aW5jdHJvd1oDZGl22gZkb3VibGXaBGRyb3BaBGR1YWxaBGVhY2jaBGVsc2VaBmVsc2VpZloIZW5jbG9zZWTaB2VzY2FwZWTaBmV4aXN0c9oEZXhpdFoHZXhwbGFpbtoFZmFsc2VaBWZldGNo2gVmbG9hdFoGZmxvYXQ0WgZmbG9hdDjaA2ZvctoFZm9yY2XaB2ZvcmVpZ27aBGZyb21aCGZ1bGx0ZXh0WgVncmFudNoFZ3JvdXBaBmhhdmluZ1oNaGlnaF9wcmlvcml0eVoQaG91cl9taWNyb3NlY29uZFoLaG91cl9taW51dGVaC2hvdXJfc2Vjb25k2gJpZtoGaWdub3Jl2gJpbtoFaW5kZXjaBmluZmlsZdoFaW5uZXJaBWlub3V0WgtpbnNlbnNpdGl2ZdoGaW5zZXJ02gNpbnRaBGludDFaBGludDJaBGludDNaBGludDRaBGludDjaB2ludGVnZXLaCGludGVydmFsWgRpbnRv2gJpc9oHaXRlcmF0ZdoEam9pbtoDa2V52gRrZXlz2gRraWxsWgdsZWFkaW5nWgVsZWF2ZdoEbGVmdFoEbGlrZdoFbGltaXRaBmxpbmVhctoFbGluZXPaBGxvYWTaCWxvY2FsdGltZVoObG9jYWx0aW1lc3RhbXDaBGxvY2vaBGxvbmfaCGxvbmdibG9i2ghsb25ndGV4dFoEbG9vcFoMbG93X3ByaW9yaXR5Wh1tYXN0ZXJfc3NsX3ZlcmlmeV9zZXJ2ZXJfY2VydNoFbWF0Y2jaCm1lZGl1bWJsb2LaCW1lZGl1bWludNoKbWVkaXVtdGV4dFoJbWlkZGxlaW50WhJtaW51dGVfbWljcm9zZWNvbmRaDW1pbnV0ZV9zZWNvbmTaA21vZFoIbW9kaWZpZXNaB25hdHVyYWzaA25vdFoSbm9fd3JpdGVfdG9fYmlubG9n2gRudWxs2gdudW1lcmlj2gJvbtoIb3B0aW1pemXaBm9wdGlvbloKb3B0aW9uYWxsedoCb3LaBW9yZGVy2gNvdXTaBW91dGVy2gdvdXRmaWxl2glwcmVjaXNpb25aB3ByaW1hcnlaCXByb2NlZHVyZdoFcHVyZ2XaBXJhbmdl2gRyZWFkWgVyZWFkc1oJcmVhZF9vbmx5WgpyZWFkX3dyaXRl2gRyZWFsWgpyZWZlcmVuY2VzWgZyZWdleHDaB3JlbGVhc2XaBnJlbmFtZdoGcmVwZWF02gdyZXBsYWNl2gdyZXF1aXJlWghyZXN0cmljdNoGcmV0dXJuWgZyZXZva2XaBXJpZ2h0WgVybGlrZXItAAAAWgdzY2hlbWFzWhJzZWNvbmRfbWljcm9zZWNvbmTaBnNlbGVjdFoJc2Vuc2l0aXZl2glzZXBhcmF0b3LaA3NldFoEc2hvd9oIc21hbGxpbnRaB3NwYXRpYWxaCHNwZWNpZmljci4AAABaDHNxbGV4Y2VwdGlvbloIc3Fsc3RhdGVaCnNxbHdhcm5pbmdaDnNxbF9iaWdfcmVzdWx0WhNzcWxfY2FsY19mb3VuZF9yb3dzWhBzcWxfc21hbGxfcmVzdWx0WgNzc2xaCHN0YXJ0aW5nWg1zdHJhaWdodF9qb2lu2gV0YWJsZVoKdGVybWluYXRlZFoEdGhlbtoIdGlueWJsb2LaB3RpbnlpbnTaCHRpbnl0ZXh02gJ0b1oIdHJhaWxpbmdaB3RyaWdnZXLaBHRydWVaBHVuZG/aBXVuaW9u2gZ1bmlxdWVaBnVubG9ja9oIdW5zaWduZWTaBnVwZGF0ZdoFdXNhZ2VaA3VzZdoFdXNpbmdaCHV0Y19kYXRlWgh1dGNfdGltZVoNdXRjX3RpbWVzdGFtcNoGdmFsdWVz2gl2YXJiaW5hcnnaB3ZhcmNoYXJaDHZhcmNoYXJhY3RlcloHdmFyeWluZ1oEd2hlbtoFd2hlcmXaBXdoaWxl2gR3aXRo2gV3cml0ZVoEeDUwOdoDeG9yWgp5ZWFyX21vbnRo2gh6ZXJvZmlsbNoHY29sdW1uc9oGZmllbGRzWgpwcml2aWxlZ2VzWgZzb25hbWVaBnRhYmxlc1oHZ2VuZXJhbFoRaWdub3JlX3NlcnZlcl9pZHNaF21hc3Rlcl9oZWFydGJlYXRfcGVyaW9kWghtYXh2YWx1ZVoIcmVzaWduYWzaBnNpZ25hbFoEc2xvd9oDZ2V0Wg5pb19hZnRlcl9ndGlkc1oPaW9fYmVmb3JlX2d0aWRzWgttYXN0ZXJfYmluZFoIb25lX3Nob3TaCXBhcnRpdGlvbloPc3FsX2FmdGVyX2d0aWRzWhBzcWxfYmVmb3JlX2d0aWRzWglnZW5lcmF0ZWRaD29wdGltaXplcl9jb3N0c1oGc3RvcmVkWgd2aXJ0dWFsWgVhZG1pbloJY3VtZV9kaXN02gVlbXB0edoGZXhjZXB02gtmaXJzdF92YWx1ZdoIZ3JvdXBpbmfaCGZ1bmN0aW9u2gZncm91cHNaCmpzb25fdGFibGXaCmxhc3RfdmFsdWVaCW50aF92YWx1ZVoFbnRpbGVaAm9mWgRvdmVyWgxwZXJjZW50X3JhbmtaB3BlcnNpc3RaDHBlcnNpc3Rfb25seVoEcmFua9oJcmVjdXJzaXZlWgRyb2xl2gNyb3faBHJvd3NaCnJvd19udW1iZXLaBnN5c3RlbdoGd2luZG93ekBccyooPzpVUERBVEV8SU5TRVJUfENSRUFURXxERUxFVEV8RFJPUHxBTFRFUnxMT0FEICtEQVRBfFJFUExBQ0UpeiVccypTRVRccysoPzooPzpHTE9CQUx8U0VTU0lPTilccyspP1x3KSNyPwAAAHJAAAAA2gNiaXRyQQAAAFoHYm9vbGVhbnJEAAAA2gRkYXRl2ghkYXRldGltZXJQAAAAclMAAADaBGVudW1aBWZpeGVkcloAAAByZwAAAHJoAAAA2gRqc29ucncAAAByeAAAAHJ6AAAAcnsAAAByfAAAAFoFbmNoYXJaCG52YXJjaGFycoAAAABylwAAAHKYAAAA2gR0ZXh02gR0aW1l2gl0aW1lc3RhbXBymgAAAHKbAAAAcpwAAABypgAAAHKnAAAA2gR5ZWFyYwAAAAAAAAAAAAAAAAIAAABAAAAAcxwAAABlAFoBZABaAmQBZAKEAFoDZANkBIQAWgRkBVMAKQbaFU15U1FMRXhlY3V0aW9uQ29udGV4dGMCAAAAAAAAAAIAAAADAAAAQwAAAHMKAAAAdACgAXwBoQFTACkBTikC2g1BVVRPQ09NTUlUX1JFcnkAAAApAtoEc2VsZtoJc3RhdGVtZW50qQByzAAAAPpRL29wdC9hbHQvcHl0aG9uMzcvbGliNjQvcHl0aG9uMy43L3NpdGUtcGFja2FnZXMvc3FsYWxjaGVteS9kaWFsZWN0cy9teXNxbC9iYXNlLnB52hZzaG91bGRfYXV0b2NvbW1pdF90ZXh0ngQAAHMCAAAAAAF6LE15U1FMRXhlY3V0aW9uQ29udGV4dC5zaG91bGRfYXV0b2NvbW1pdF90ZXh0YwEAAAAAAAAAAQAAAAMAAABDAAAAcyIAAAB8AGoAagFyGHwAagKgA3wAagBqBKEBUwB0BYMAggFkAFMAKQFOKQbaB2RpYWxlY3RaHHN1cHBvcnRzX3NlcnZlcl9zaWRlX2N1cnNvcnNaEV9kYmFwaV9jb25uZWN0aW9uck4AAABaCV9zc2N1cnNvctoTTm90SW1wbGVtZW50ZWRFcnJvcikBcsoAAAByzAAAAHLMAAAAcs0AAADaGWNyZWF0ZV9zZXJ2ZXJfc2lkZV9jdXJzb3KhBAAAcwYAAAAAAQgBEAJ6L015U1FMRXhlY3V0aW9uQ29udGV4dC5jcmVhdGVfc2VydmVyX3NpZGVfY3Vyc29yTikF2ghfX25hbWVfX9oKX19tb2R1bGVfX9oMX19xdWFsbmFtZV9fcs4AAABy0QAAAHLMAAAAcswAAAByzAAAAHLNAAAAcsgAAACdBAAAcwQAAAAIAQgDcsgAAABjAAAAAAAAAAAAAAAABAAAAAAAAABz7gAAAGUAWgFkAFoCZAFaA2UEagVqBqAHoQBaBmUGoAhkAmQDaQGhAQEAZARkBYQAWglkBmQHhABaCmQIZAmEAFoLZApkC4QAWgxkDGQNhABaDWQOZA+EAFoOZBBkEYQAWg9kEmQThABaEGQ0ZBVkFoQBWhFkF2QYhABaEocAZgFkGWQahAhaE2QbZByEAFoUZB1kHoQAWhVkH2QghABaFmQ1ZCJkI4QBWhdkJGQlhABaGGQmZCeEAFoZZChkKYQAWhpkKmQrhABaG2QsZC2EAFocZC5kL4QAWh1kMGQxhABaHmQyZDOEAFofhwAEAFogUwApNtoNTXlTUUxDb21waWxlclRaDG1pbGxpc2Vjb25kc1oLbWlsbGlzZWNvbmRjAgAAAAAAAAADAAAABAAAAEsAAABzDgAAAGQBfACgAHwBoQEWAFMAKQJOegZyYW5kJXMpAVoQZnVuY3Rpb25fYXJnc3BlYykDcsoAAADaAmZu2gJrd3LMAAAAcswAAAByzQAAANoRdmlzaXRfcmFuZG9tX2Z1bmOwBAAAcwIAAAAAAXofTXlTUUxDb21waWxlci52aXNpdF9yYW5kb21fZnVuY2MCAAAAAAAAAAMAAAABAAAASwAAAHMEAAAAZAFTACkCTnoJU1lTREFURSgpcswAAAApA3LKAAAActYAAABy1wAAAHLMAAAAcswAAAByzQAAANoSdmlzaXRfc3lzZGF0ZV9mdW5jswQAAHMCAAAAAAF6IE15U1FMQ29tcGlsZXIudmlzaXRfc3lzZGF0ZV9mdW5jYwMAAAAAAAAABAAAAAUAAABLAAAAcyQAAABkAXwAagB8AWoBZgF8A44BfABqAHwBagJmAXwDjgFmAhYAUwApAk56FEpTT05fRVhUUkFDVCglcywgJXMpKQPaB3Byb2Nlc3NycAAAAHKUAAAAKQRyygAAAHJAAAAA2ghvcGVyYXRvcnLXAAAAcswAAAByzAAAAHLNAAAA2hx2aXNpdF9qc29uX2dldGl0ZW1fb3BfYmluYXJ5tgQAAHMGAAAAAAECAQ4BeipNeVNRTENvbXBpbGVyLnZpc2l0X2pzb25fZ2V0aXRlbV9vcF9iaW5hcnljAwAAAAAAAAAEAAAABQAAAEsAAABzJAAAAGQBfABqAHwBagFmAXwDjgF8AGoAfAFqAmYBfAOOAWYCFgBTACkCTnoUSlNPTl9FWFRSQUNUKCVzLCAlcykpA3LaAAAAcnAAAABylAAAACkEcsoAAAByQAAAAHLbAAAActcAAAByzAAAAHLMAAAAcs0AAADaIXZpc2l0X2pzb25fcGF0aF9nZXRpdGVtX29wX2JpbmFyebwEAABzBgAAAAABAgEOAXovTXlTUUxDb21waWxlci52aXNpdF9qc29uX3BhdGhfZ2V0aXRlbV9vcF9iaW5hcnljAgAAAAAAAAALAAAACAAAAAsAAABzpgEAAIgAagBySmQBZAKEAIgAagBEAIMBfQN0AXwDgwGJAYcCZgFkA2QChAh8A0QAgwGHAWYBZARkAoQIiAJqAmoDagREAIMBFwB9BG4KiAJqAmoDagR9BGcAfQV49IcAZgFkBWQGhAh8BEQAgwFEAF3efQaIAGoFfAZqBhkAfQd0B6AIfAehAXKsdAdqCWQAfAd8BmoKZAeNA30HiAJqC3wHoAyhAGQIZAmNAn0Ibn50DXwHdAdqCYMCcuR8B2oKag5y5HwHoA+hAH0HfAZqCnwHXwqIAmoLfAegDKEAZAhkCY0CfQhuRnQNfAd0B2oQgwKQAXIYfAdqA4gAahFrCJABchhkCogCahKgE3wGahShARcAZAsXAH0IbhKIAmoLfAegDKEAZAhkCY0CfQiIAmoSoBN8BmoUoQF9CXwFoBVkDHwJfAhmAhYAoQEBAHFsVwB0AYgAagWDAXQBZA1kBoQAfAREAIMBgwEYAH0KfAqQAXKYdBagF2QOiAJqAmoDahRkD6AYZBBkBoQAfApEAIMBoQFmAhYAoQEBAGQRZA+gGHwFoQEXAFMAKRJOYwEAAAAAAAAAAgAAAAUAAABTAAAAcxYAAABnAHwAXQ59AXQAoAF8AaEBkQJxBFMAcswAAAApAnIzAAAAWg5fY29sdW1uX2FzX2tleSkC2gIuMHJtAAAAcswAAAByzAAAAHLNAAAA+go8bGlzdGNvbXA+xQQAAHMCAAAABgF6P015U1FMQ29tcGlsZXIudmlzaXRfb25fZHVwbGljYXRlX2tleV91cGRhdGUuPGxvY2Fscz4uPGxpc3Rjb21wPmMBAAAAAAAAAAIAAAAEAAAAEwAAAHMoAAAAZwB8AF0gfQF8AYgAagBqAWoCawZyBIgAagBqAWoCfAEZAJECcQRTAHLMAAAAKQNyywAAAHKZAAAA2gFjKQJy3gAAAHJtAAAAKQFyygAAAHLMAAAAcs0AAABy3wAAAMoEAABzBAAAAAYBAgFjAQAAAAAAAAACAAAABAAAABMAAABzGgAAAGcAfABdEn0BfAFqAIgAawdyBHwBkQJxBFMAcswAAAApAXJtAAAAKQJy3gAAAHLgAAAAKQHaDG9yZGVyZWRfa2V5c3LMAAAAcs0AAABy3wAAAM4EAABzAgAAAAYAYwEAAAAAAAAAAgAAAAMAAAAzAAAAcx4AAAB8AF0WfQF8AWoAiABqAWsGcgJ8AVYAAQBxAmQAUwApAU4pAnJtAAAAcqIAAAApAnLeAAAA2gNjb2wpAdoMb25fZHVwbGljYXRlcswAAAByzQAAAPoJPGdlbmV4cHI+1QQAAHMCAAAABAB6Pk15U1FMQ29tcGlsZXIudmlzaXRfb25fZHVwbGljYXRlX2tleV91cGRhdGUuPGxvY2Fscz4uPGdlbmV4cHI+KQHaBXR5cGVfRikBWgp1c2Vfc2NoZW1hegdWQUxVRVMo+gEpegclcyA9ICVzYwEAAAAAAAAAAgAAAAIAAABzAAAAcxQAAAB8AF0MfQF8AWoAVgABAHECZABTACkBTikBcm0AAAApAnLeAAAAcuAAAAByzAAAAHLMAAAAcs0AAABy5AAAAOoEAABzAgAAAAQAekZBZGRpdGlvbmFsIGNvbHVtbiBuYW1lcyBub3QgbWF0Y2hpbmcgYW55IGNvbHVtbiBrZXlzIGluIHRhYmxlICclcyc6ICVzegIsIGMBAAAAAAAAAAIAAAADAAAAcwAAAHMWAAAAfABdDn0BZAB8ARYAVgABAHECZAFTACkCegQnJXMnTnLMAAAAKQJy3gAAAHLgAAAAcswAAAByzAAAAHLNAAAAcuQAAADxBAAAcwIAAAAEAHoYT04gRFVQTElDQVRFIEtFWSBVUERBVEUgKRlaE19wYXJhbWV0ZXJfb3JkZXJpbmdylwAAAHLLAAAAcpkAAABy4AAAAHKiAAAAcm0AAAByMwAAAFoLX2lzX2xpdGVyYWxaDUJpbmRQYXJhbWV0ZXLaBHR5cGVy2gAAANoKc2VsZl9ncm91cNoKaXNpbnN0YW5jZVoHX2lzbnVsbFoGX2Nsb25lWgxDb2x1bW5DbGF1c2VaDmluc2VydGVkX2FsaWFz2ghwcmVwYXJlctoFcXVvdGXaBG5hbWXaBmFwcGVuZHIwAAAA2gR3YXJucmwAAAApC3LKAAAAcuMAAABy1wAAAFoScGFyYW1ldGVyX29yZGVyaW5n2gRjb2xzWgdjbGF1c2VzckgAAADaA3ZhbFoKdmFsdWVfdGV4dFoJbmFtZV90ZXh0Wgxub25fbWF0Y2hpbmdyzAAAACkDcuMAAABy4QAAAHLKAAAAcs0AAADaHXZpc2l0X29uX2R1cGxpY2F0ZV9rZXlfdXBkYXRlwgQAAHM+AAAAAAEGAgYBCgIIAgoBBgMcAwoCBAIYAgwCCgESARQBFAEIAQgBFAIOAQ4CGAISAQ4BFgIcAQYBBAECAwgBGgR6K015U1FMQ29tcGlsZXIudmlzaXRfb25fZHVwbGljYXRlX2tleV91cGRhdGVjAwAAAAAAAAAEAAAABQAAAEsAAABzJAAAAGQBfABqAHwBagFmAXwDjgF8AGoAfAFqAmYBfAOOAWYCFgBTACkCTnoOY29uY2F0KCVzLCAlcykpA3LaAAAAcnAAAABylAAAACkEcsoAAAByQAAAAHLbAAAActcAAAByzAAAAHLMAAAAcs0AAADaFnZpc2l0X2NvbmNhdF9vcF9iaW5hcnn3BAAAcwYAAAAAAQIBDgF6JE15U1FMQ29tcGlsZXIudmlzaXRfY29uY2F0X29wX2JpbmFyeWMDAAAAAAAAAAQAAAAFAAAASwAAAHMkAAAAZAF8AGoAfAFqAWYBfAOOAXwAagB8AWoCZgF8A44BZgIWAFMAKQJOeidNQVRDSCAoJXMpIEFHQUlOU1QgKCVzIElOIEJPT0xFQU4gTU9ERSkpA3LaAAAAcnAAAABylAAAACkEcsoAAAByQAAAAHLbAAAActcAAAByzAAAAHLMAAAAcs0AAADaFXZpc2l0X21hdGNoX29wX2JpbmFyef0EAABzBgAAAAABAgEOAXojTXlTUUxDb21waWxlci52aXNpdF9tYXRjaF9vcF9iaW5hcnljAwAAAAAAAAADAAAAAQAAAEMAAABzBAAAAHwCUwApAU5yzAAAACkDcsoAAABymQAAAHLEAAAAcswAAAByzAAAAHLNAAAA2hJnZXRfZnJvbV9oaW50X3RleHQDBQAAcwIAAAAAAXogTXlTUUxDb21waWxlci5nZXRfZnJvbV9oaW50X3RleHROYwMAAAAAAAAABQAAAAYAAABLAAAAcwwBAAB8AmQAawhyFnwBagCgAXwAagKhAX0CdAN8AnQEagWDAnI0fABqBnwBfAJqB2YCfAOOAVMAdAN8AnQEagiDAnJWdAl8AmQBZAKDA3JQZANTAGQEUwBusnQDfAJ0BGoKgwJyZmQFUwB0A3wCdARqC3QEagx0BGoNdARqDmYEgwJyjnwAagJqD6AQfAKhAVMAdAN8AnQEahGDAnLAdAN8AnQSdBNmAoMCc8B0FKAVfAKhAX0EfABqAmoPoBB8BKEBUwB0A3wCdARqFoMCctBkBlMAdAN8AnQEaheDAnLgZAdTAHQDfAJ0BGoYgwKQAXIEfABqAmoPoBB8AqEBoBlkCGQJoQJTAGQAUwBkAFMAKQpOcqEAAABGehBVTlNJR05FRCBJTlRFR0VSeg5TSUdORUQgSU5URUdFUnITAAAAcjQAAAByCAAAAHIeAAAAchQAAAApGnLnAAAAWgxkaWFsZWN0X2ltcGxyzwAAAHLpAAAA2ghzcWx0eXBlc1oNVHlwZURlY29yYXRvctoQdmlzaXRfdHlwZWNsYXVzZdoEaW1wbFoHSW50ZWdlctoHZ2V0YXR0cnIkAAAAchQAAABaCERhdGVUaW1lWgREYXRl2gRUaW1l2g10eXBlX2NvbXBpbGVyctoAAADaBlN0cmluZ3IGAAAAcgcAAAByEgAAAFoWX2FkYXB0X3N0cmluZ19mb3JfY2FzdFoHX0JpbmFyeXIIAAAAch4AAABykQAAACkFcsoAAADaCnR5cGVjbGF1c2Vy5QAAAHLXAAAAWgdhZGFwdGVkcswAAAByzAAAAHLNAAAAcvYAAAAGBQAAczoAAAAAAQgBDgEMARIBDAEMAQQCBgEMAQQBAgECAgQBBAEEAQoDDgEOAQwCCgEOAQwBBAEMAQQBDgEOAQgDeh5NeVNRTENvbXBpbGVyLnZpc2l0X3R5cGVjbGF1c2VjAgAAAAAAAAAEAAAABgAAAEsAAABzggAAAHwAagBqAXMmdAKgA2QBoQEBAHwAagR8AWoFoAahAGYBfAKOAVMAfACgBHwBagehAX0DfANkAGsIcmp0AqADZAJ8AGoAagigBHwBagdqCaEBFgChAQEAfABqBHwBagWgBqEAZgF8Ao4BUwBkA3wAagR8AWoFZgF8Ao4BfANmAhYAUwApBE56RkN1cnJlbnQgTXlTUUwgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IENBU1Q7IHRoZSBDQVNUIHdpbGwgYmUgc2tpcHBlZC56RURhdGF0eXBlICVzIGRvZXMgbm90IHN1cHBvcnQgQ0FTVCBvbiBNeVNRTDsgdGhlIENBU1Qgd2lsbCBiZSBza2lwcGVkLnoOQ0FTVCglcyBBUyAlcykpCnLPAAAA2g5fc3VwcG9ydHNfY2FzdHIwAAAAcu4AAABy2gAAAFoGY2xhdXNlcugAAABy/AAAAHL6AAAAcucAAAApBHLKAAAA2gRjYXN0ctcAAABy5QAAAHLMAAAAcswAAAByzQAAANoKdmlzaXRfY2FzdCwFAABzFgAAAAACCAEEAQYDFAIMAQgBBAECAhYCFAJ6GE15U1FMQ29tcGlsZXIudmlzaXRfY2FzdGMDAAAAAAAAAAMAAAAEAAAAAwAAAHMqAAAAdAB0AXwAgwKgAnwBfAKhAn0BfABqA2oEciZ8AaAFZAFkAqECfQF8AVMAKQNO+gFcegJcXCkG2gVzdXBlcnLVAAAA2hRyZW5kZXJfbGl0ZXJhbF92YWx1ZXLPAAAA2hJfYmFja3NsYXNoX2VzY2FwZXNykQAAACkDcsoAAADaBXZhbHVlcuUAAAApAdoJX19jbGFzc19fcswAAAByzQAAAHICAQAAQAUAAHMIAAAAAAESAQgBDAF6Ik15U1FMQ29tcGlsZXIucmVuZGVyX2xpdGVyYWxfdmFsdWVjAgAAAAAAAAADAAAAAQAAAEsAAABzBAAAAGQBUwApAk5yngAAAHLMAAAAKQNyygAAANoHZWxlbWVudHLXAAAAcswAAAByzAAAAHLNAAAA2gp2aXNpdF90cnVlSAUAAHMCAAAAAAF6GE15U1FMQ29tcGlsZXIudmlzaXRfdHJ1ZWMCAAAAAAAAAAMAAAABAAAASwAAAHMEAAAAZAFTACkCTnJZAAAAcswAAAApA3LKAAAAcgYBAABy1wAAAHLMAAAAcswAAAByzQAAANoLdmlzaXRfZmFsc2VLBQAAcwIAAAAAAXoZTXlTUUxDb21waWxlci52aXNpdF9mYWxzZWMCAAAAAAAAAAMAAAADAAAASwAAAHMuAAAAdAB8AWoBdAJqA4MCchx8AWoBoAShAGQBFwBTAHwBagFyJmQCUwBkA1MAZARTACkFeuFBZGQgc3BlY2lhbCBNeVNRTCBrZXl3b3JkcyBpbiBwbGFjZSBvZiBESVNUSU5DVC4KCiAgICAgICAgLi4gbm90ZTo6CgogICAgICAgICAgdGhpcyB1c2FnZSBpcyBkZXByZWNhdGVkLiAgOm1ldGg6YC5TZWxlY3QucHJlZml4X3dpdGhgCiAgICAgICAgICBzaG91bGQgYmUgdXNlZCBmb3Igc3BlY2lhbCBrZXl3b3JkcyBhdCB0aGUgc3RhcnQKICAgICAgICAgIG9mIGEgU0VMRUNULgoKICAgICAgICD6ASB6CURJU1RJTkNUINoATikFcukAAABaCV9kaXN0aW5jdHIwAAAA2gxzdHJpbmdfdHlwZXPaBXVwcGVyKQNyygAAAHKVAAAActcAAAByzAAAAHLMAAAAcs0AAADaFWdldF9zZWxlY3RfcHJlY29sdW1uc04FAABzCgAAAAAKDgEOAQYBBAJ6I015U1FMQ29tcGlsZXIuZ2V0X3NlbGVjdF9wcmVjb2x1bW5zRmMDAAAAAAAAAAUAAAAJAAAASwAAAHNkAAAAfAFqAHIMZAF9BG4QfAFqAXIYZAJ9BG4EZAN9BGQEoAJ8AGoDfAFqBGYBZAVkBmkBfAOXAo4BfAR8AGoDfAFqBWYBZAVkBmkBfAOXAo4BZAd8AGoDfAFqBmYBfAOOAWYFoQFTACkITnoRIEZVTEwgT1VURVIgSk9JTiB6ESBMRUZUIE9VVEVSIEpPSU4gegwgSU5ORVIgSk9JTiByCgEAANoGYXNmcm9tVHoEIE9OICkH2gRmdWxsWgdpc291dGVycmwAAABy2gAAAHJwAAAAcpQAAABaCG9uY2xhdXNlKQVyygAAAHJsAAAAcg4BAADaBmt3YXJnc1oJam9pbl90eXBlcswAAAByzAAAAHLNAAAA2gp2aXNpdF9qb2luXwUAAHMWAAAAAAEGAQYBBgEGAgQCBAIWAQIBFgECAXoYTXlTUUxDb21waWxlci52aXNpdF9qb2luYwIAAAAAAAAAAwAAAAEAAABLAAAAcxQAAAB8AWoAagFyDGQBUwBkAlMAZABTACkDTnoTIExPQ0sgSU4gU0hBUkUgTU9ERXoLIEZPUiBVUERBVEUpAloPX2Zvcl91cGRhdGVfYXJncowAAAApA3LKAAAAcpUAAABy1wAAAHLMAAAAcswAAAByzQAAANoRZm9yX3VwZGF0ZV9jbGF1c2VxBQAAcwYAAAAAAQgBBAJ6H015U1FMQ29tcGlsZXIuZm9yX3VwZGF0ZV9jbGF1c2VjAgAAAAAAAAAFAAAABQAAAEsAAABzggAAAHwBagB8AWoBAgB9A30EfANkAGsIciJ8BGQAawhyImQBUwB8BGQAawlyanwDZABrCHJIZAJ8AGoCfARmAXwCjgFkA2YCFgBTAGQCfABqAnwEZgF8Ao4BfABqAnwDZgF8Ao4BZgIWAFMAbhRkBHwAagJ8A2YBfAKOAWYBFgBTAGQAUwApBU5yCgEAAHoPIAogTElNSVQgJXMsICVzWhQxODQ0Njc0NDA3MzcwOTU1MTYxNXoLIAogTElNSVQgJXMpA1oNX2xpbWl0X2NsYXVzZVoOX29mZnNldF9jbGF1c2Vy2gAAACkFcsoAAABylQAAAHLXAAAA2gxsaW1pdF9jbGF1c2VaDW9mZnNldF9jbGF1c2VyzAAAAHLMAAAAcs0AAAByEwEAAHcFAABzGgAAAAAKBAEKAxABBAEIBAgHAgEMAQgDAgEMARQEehpNeVNRTENvbXBpbGVyLmxpbWl0X2NsYXVzZWMCAAAAAAAAAAMAAAAEAAAAQwAAAHMqAAAAfAFqAKABZAF8AGoCagMWAGQAoQJ9AnwCciJkAnwCFgBTAGQAUwBkAFMAKQNOegglc19saW1pdHoITElNSVQgJXMpBHIQAQAAcrEAAAByzwAAAHLsAAAAKQNyygAAANoLdXBkYXRlX3N0bXRycQAAAHLMAAAAcswAAAByzQAAANoTdXBkYXRlX2xpbWl0X2NsYXVzZZ8FAABzCAAAAAABFgEEAQgCeiFNeVNRTENvbXBpbGVyLnVwZGF0ZV9saW1pdF9jbGF1c2VjBAAAAAAAAAAFAAAABgAAAAsAAABzJAAAAGQBoACHAIcBZgJkAmQDhAh8AmcBdAF8A4MBFwBEAIMBoQFTACkETnoCLCBjAQAAAAAAAAACAAAABQAAADMAAABzJAAAAHwAXRx9AXwBagCIAWYBZABkAWkBiACXAo4BVgABAHECZAJTACkDcg4BAABUTikB2hJfY29tcGlsZXJfZGlzcGF0Y2gpAnLeAAAA2gF0KQJy1wAAAHLKAAAAcswAAAByzQAAAHLkAAAAqAUAAHMCAAAABAF6NU15U1FMQ29tcGlsZXIudXBkYXRlX3RhYmxlc19jbGF1c2UuPGxvY2Fscz4uPGdlbmV4cHI+KQJybAAAANoEbGlzdCkFcsoAAAByFAEAANoKZnJvbV90YWJsZdoLZXh0cmFfZnJvbXNy1wAAAHLMAAAAKQJy1wAAAHLKAAAAcs0AAADaFHVwZGF0ZV90YWJsZXNfY2xhdXNlpgUAAHMGAAAAAAEEAQwBeiJNeVNRTENvbXBpbGVyLnVwZGF0ZV90YWJsZXNfY2xhdXNlYwUAAAAAAAAABgAAAAEAAABLAAAAcwQAAABkAFMAKQFOcswAAAApBnLKAAAAchQBAAByGQEAAHIaAQAA2gpmcm9tX2hpbnRzctcAAAByzAAAAHLMAAAAcs0AAADaEnVwZGF0ZV9mcm9tX2NsYXVzZawFAABzAgAAAAADeiBNeVNRTENvbXBpbGVyLnVwZGF0ZV9mcm9tX2NsYXVzZWMEAAAAAAAAAAUAAAAGAAAAQwAAAHMeAAAAZAF9BHwDcgxkAn0EfAJqAHwAZAJkAnwEZAONBFMAKQR6PUlmIHdlIGhhdmUgZXh0cmEgZnJvbXMgbWFrZSBzdXJlIHdlIHJlbmRlciBhbnkgYWxpYXMgYXMgaGludC5GVCkDcg4BAABaBmlzY3J1ZNoGYXNoaW50KQFyFgEAACkFcsoAAADaC2RlbGV0ZV9zdG10chkBAAByGgEAAHIeAQAAcswAAAByzAAAAHLNAAAA2hNkZWxldGVfdGFibGVfY2xhdXNlsQUAAHMKAAAAAAIEAQQBBAEEAXohTXlTUUxDb21waWxlci5kZWxldGVfdGFibGVfY2xhdXNlYwUAAAAAAAAABgAAAAYAAAALAAAAcyYAAABkAWQCoACHAIcBhwJmA2QDZASECHwCZwF8AxcARACDAaEBFwBTACkFejRSZW5kZXIgdGhlIERFTEVURSAuLiBVU0lORyBjbGF1c2Ugc3BlY2lmaWMgdG8gTXlTUUwuegZVU0lORyB6AiwgYwEAAAAAAAAAAgAAAAYAAAAzAAAAcyYAAAB8AF0efQF8AWoAiAJmAWQAiABkAZwCiAGXAo4BVgABAHECZAJTACkDVCkCcg4BAABaCWZyb21oaW50c04pAXIWAQAAKQJy3gAAAHIXAQAAKQNyHAEAAHLXAAAAcsoAAAByzAAAAHLNAAAAcuQAAAC/BQAAcwIAAAAEAXo5TXlTUUxDb21waWxlci5kZWxldGVfZXh0cmFfZnJvbV9jbGF1c2UuPGxvY2Fscz4uPGdlbmV4cHI+KQFybAAAACkGcsoAAAByHwEAAHIZAQAAchoBAAByHAEAAHLXAAAAcswAAAApA3IcAQAActcAAAByygAAAHLNAAAA2hhkZWxldGVfZXh0cmFfZnJvbV9jbGF1c2W6BQAAcwYAAAAABAYBDgF6Jk15U1FMQ29tcGlsZXIuZGVsZXRlX2V4dHJhX2Zyb21fY2xhdXNlYwIAAAAAAAAAAgAAAAcAAABDAAAAczYAAABkAWQCoABkA2QEhAB0AXwBgwFEAIMBoQFkAqAAZAVkBIQAdAF8AYMBRACDAaEBZAacAhYAUwApB056QVNFTEVDVCAlKG91dGVyKXMgRlJPTSAoU0VMRUNUICUoaW5uZXIpcykgYXMgX2VtcHR5X3NldCBXSEVSRSAxIT0xegIsIGMBAAAAAAAAAAMAAAADAAAAcwAAAHMaAAAAfABdElwCfQF9AmQAfAEWAFYAAQBxAmQBUwApAnoLMSBBUyBfaW5fJXNOcswAAAApA3LeAAAA2gNpZHhy5QAAAHLMAAAAcswAAAByzQAAAHLkAAAAyQUAAHMCAAAABAF6NU15U1FMQ29tcGlsZXIudmlzaXRfZW1wdHlfc2V0X2V4cHIuPGxvY2Fscz4uPGdlbmV4cHI+YwEAAAAAAAAAAwAAAAMAAABzAAAAcxoAAAB8AF0SXAJ9AX0CZAB8ARYAVgABAHECZAFTACkCegZfaW5fJXNOcswAAAApA3LeAAAAciIBAABy5QAAAHLMAAAAcswAAAByzQAAAHLkAAAAzQUAAHMCAAAABAApAnJlAAAAcocAAAApAnJsAAAA2gllbnVtZXJhdGUpAnLKAAAAWg1lbGVtZW50X3R5cGVzcswAAAByzAAAAHLNAAAA2hR2aXNpdF9lbXB0eV9zZXRfZXhwcsMFAABzDAAAAAACAgMEAQYBDAIEAXoiTXlTUUxDb21waWxlci52aXNpdF9lbXB0eV9zZXRfZXhwcikBTikBRikhctIAAABy0wAAAHLUAAAAWidyZW5kZXJfdGFibGVfd2l0aF9jb2x1bW5faW5fdXBkYXRlX2Zyb21yMgAAANoLU1FMQ29tcGlsZXJaC2V4dHJhY3RfbWFw2gRjb3B5cqIAAABy2AAAAHLZAAAActwAAABy3QAAAHLxAAAAcvIAAABy8wAAAHL0AAAAcvYAAABy/wAAAHICAQAAcgcBAAByCAEAAHINAQAAchEBAAByEgEAAHITAQAAchUBAAByGwEAAHIdAQAAciABAAByIQEAAHIkAQAA2g1fX2NsYXNzY2VsbF9fcswAAAByzAAAACkBcgUBAAByzQAAAHLVAAAAqAQAAHM0AAAACAIEAwwBDgIIAwgDCAYIBgg1CAYIBggDCiYIFAwICAMIAwgRChIIBggoCAcIBggFCAkICXLVAAAAYwAAAAAAAAAAAAAAAAMAAAAAAAAAc2QAAABlAFoBZABaAmQBZAKEAFoDZANkBIQAWgRkBWQGhABaBYcAZgFkB2QIhAhaBmQJZAqEAFoHZAtkDIQAWghkDWQOhABaCWQPZBCEAFoKZBFkEoQAWgtkE2QUhABaDIcABABaDVMAKRXaEE15U1FMRERMQ29tcGlsZXJjAgAAAAAAAAAIAAAABQAAAEsAAABz3gAAAHwAagCgAXwBoQF8AGoCagNqBHwBagV8AWQBjQJnAn0DdAZ8AWoFoAd8AGoCoQF0CGoJgwJ9BHwBagpzSHwDoAtkAqEBAQBuFHwBagpyXHwEclx8A6ALZAOhAQEAfACgDHwBoQF9BXwFZARrCXJ8fAOgC2QFfAUXAKEBAQB8AWoNfQZ8BmQEawlyqnwAag6gD3wGdAigEKEAoQJ9B3wDoAtkBnwHFwChAQEAfAFqEWQEawly1HwBfAFqEWoSawhy1HwBahNkBGsIctR8A6ALZAehAQEAZAigFHwDoQFTACkJehJCdWlsZHMgY29sdW1uIERETC4pAVoPdHlwZV9leHByZXNzaW9ueghOT1QgTlVMTNoETlVMTE56CERFRkFVTFQgeghDT01NRU5UIFoOQVVUT19JTkNSRU1FTlRyCQEAACkVcuoAAADaDWZvcm1hdF9jb2x1bW5yzwAAAHL6AAAActoAAABy5wAAAHLpAAAAWhdfdW53cmFwcGVkX2RpYWxlY3RfaW1wbHL1AAAAciQAAABaCG51bGxhYmxlcu0AAABaGWdldF9jb2x1bW5fZGVmYXVsdF9zdHJpbmfaB2NvbW1lbnTaDHNxbF9jb21waWxlcnICAQAAcvsAAABymQAAAFoVX2F1dG9pbmNyZW1lbnRfY29sdW1uWg5zZXJ2ZXJfZGVmYXVsdHJsAAAAKQhyygAAAHJIAAAActcAAABaB2NvbHNwZWNaDGlzX3RpbWVzdGFtcHIxAAAAcisBAADaB2xpdGVyYWxyzAAAAHLMAAAAcs0AAADaGGdldF9jb2x1bW5fc3BlY2lmaWNhdGlvbtQFAABzLgAAAAAECgEIAQ4EAgEMAQgDBgEMBAoBCgIKAQgBDgIGAQgBBgEMAg4DCgEMAQoCCgJ6KU15U1FMRERMQ29tcGlsZXIuZ2V0X2NvbHVtbl9zcGVjaWZpY2F0aW9uYwIAAAAAAAAACgAAAAgAAAADAAAAc0gBAABnAH0CdACHAGYBZAFkAoQIfAFqAaACoQBEAIMBgwF9A3wBagNkA2sJcjR8AWoDfANkBDwAZAVkBmQHZAhnBH0EdAR8A4MBoAV8BKEBfQV0BHwDgwGgBnwEoQF9Bnh0dAegCGQJZApnAnwFoQJEAF1gfQd8A3wHGQB9CHwHdAlqCmsGcpaIAGoLoAx8CHQNoA6hAKECfQh8B2QLawZyqnwHoA9kDGQNoQJ9B2QOfQl8B2QPawZyumQNfQl8AqAQfAmgEXwHfAhmAqEBoQEBAHFuVwB4anQHoAhkEGQRZBJkE2QUZBVnBnwGoQJEAF1OfQd8A3wHGQB9CHwHdAlqCmsGkAFyFogAagugDHwIdA2gDqEAoQJ9CHwHoA9kDGQNoQJ9B2QNfQl8AqAQfAmgEXwHfAhmAqEBoQEBAHHsVwBkDaARfAKhAVMAKRZ6OUJ1aWxkIHRhYmxlLWxldmVsIENSRUFURSBvcHRpb25zIGxpa2UgRU5HSU5FIGFuZCBDT0xMQVRFLmMBAAAAAAAAAAMAAAAFAAAAMwAAAHNEAAAAfABdPFwCfQF9AnwBoABkAIgAagFqAhYAoQFyAnwBdAOIAGoBagKDAWQBFwBkAoUCGQCgBKEAfAJmAlYAAQBxAmQCUwApA3oDJXNfcgQAAABOKQXaCnN0YXJ0c3dpdGhyzwAAAHLsAAAA2gNsZW5yDAEAACkDct4AAADaAWvaAXYpAXLKAAAAcswAAAByzQAAAHLkAAAABQYAAHMEAAAABAEGAXo1TXlTUUxERExDb21waWxlci5wb3N0X2NyZWF0ZV90YWJsZS48bG9jYWxzPi48Z2VuZXhwcj5O2gdDT01NRU5U2gxQQVJUSVRJT05fQlnaClBBUlRJVElPTlPaDVNVQlBBUlRJVElPTlPaD1NVQlBBUlRJVElPTl9CWSkC2g9ERUZBVUxUX0NIQVJTRVTaB0NPTExBVEUpAtoVREVGQVVMVF9DSEFSQUNURVJfU0VUcjkBAAApBloOREFUQV9ESVJFQ1RPUllaD0lOREVYX0RJUkVDVE9SWXI6AQAAWg1DSEFSQUNURVJfU0VUcjgBAABaD0RFRkFVTFRfQ09MTEFURdoBX3IJAQAA+gE9KQRaClRBQkxFU1BBQ0V6FURFRkFVTFQgQ0hBUkFDVEVSIFNFVHoNQ0hBUkFDVEVSIFNFVHI5AQAAKQJyNAEAAHI1AQAAKQJyNAEAAHI3AQAAKQJyNAEAAHI2AQAAKQJyNQEAAHI2AQAAKQJyNQEAAHI3AQAAKQJyNwEAAHI2AQAAKRLaBGRpY3RyEAEAANoFaXRlbXNyKwEAAHKXAAAA2gpkaWZmZXJlbmNl2gxpbnRlcnNlY3Rpb25yOQAAANoEc29ydNoLX3JlZmxlY3Rpb25aF19vcHRpb25zX29mX3R5cGVfc3RyaW5nciwBAAByAgEAAHL1AAAAcvsAAABykQAAAHLtAAAAcmwAAAApCnLKAAAAcpkAAABaCnRhYmxlX29wdHPaBG9wdHNaEXBhcnRpdGlvbl9vcHRpb25zWg9ub25wYXJ0X29wdGlvbnNaDHBhcnRfb3B0aW9uc9oDb3B02gNhcmdaBmpvaW5lcnLMAAAAKQFyygAAAHLNAAAA2hFwb3N0X2NyZWF0ZV90YWJsZf8FAABzWAAAAAADBAICAQoBEAQKAQoDAgECAQIBBgMOAQ4CBgICAQQCCgIIAQoCBgEMAwIBBgcMAgQBAgEGBQQCGAIGAgIBAgECAQIBAgEEAgoCCAEMAQYBDAMMAQQCGAJ6Ik15U1FMRERMQ29tcGlsZXIucG9zdF9jcmVhdGVfdGFibGVjAgAAAAAAAAAMAAAABgAAAAsAAABzRgEAAHwBagB9A4gBoAF8A6EBAQCIAWoCfQR8BKADfANqBKEBfQWHAWYBZAFkAoQIfANqBUQAgwF9BogBoAZ8A6EBfQdkA30IfANqB3JSfAhkBDcAfQh8A2oIoAlkBWQAoQJ9CXwJcnB8CHwJZAYXADcAfQh8CGQHfAd8BWYCFgA3AH0IfANqCmQIGQBkCRkAiQCIAGQAawly3HQLiAB0DIMCcsJkCqANhwBmAWQLZAyECHQOfANqBXwGgwJEAIMBoQF9BnHmZAqgDYcAZgFkDWQMhAh8BkQAgwGhAX0GbgpkCqANfAahAX0GfAhkDnwGFgA3AH0IfANqCmQIGQBkDxkAfQp8CmQAawmQAXIYfAhkEHwKZgEWADcAfQh8A2oKZAgZAGQRGQB9C3wLZABrCZABckJ8CGQSfASgD3wLoQEWADcAfQh8CFMAKRNOYwEAAAAAAAAAAgAAAAcAAAATAAAAcx4AAABnAHwAXRZ9AYgAagBqAXwBZABkAWQCjQORAnEEUwApA0ZUKQJaDWluY2x1ZGVfdGFibGVaDWxpdGVyYWxfYmluZHMpAnIsAQAActoAAAApAnLeAAAA2gRleHByKQFyygAAAHLMAAAAcs0AAABy3wAAAFgGAABzAgAAAAYDejdNeVNRTERETENvbXBpbGVyLnZpc2l0X2NyZWF0ZV9pbmRleC48bG9jYWxzPi48bGlzdGNvbXA+egdDUkVBVEUgegdVTklRVUUg2gxteXNxbF9wcmVmaXhyCQEAAHoPSU5ERVggJXMgT04gJXMg2gVteXNxbNoGbGVuZ3RoegIsIGMBAAAAAAAAAAMAAAAFAAAAMwAAAHNOAAAAfABdRlwCfQF9AnwBagCIAGsGciZkAHwCiAB8AWoAGQBmAhYAbh58AogAawZyPmQAfAKIAHwCGQBmAhYAbgZkAXwCFgBWAAEAcQJkAlMAKQN6BiVzKCVkKXoCJXNOKQFy7AAAACkDct4AAABy4gAAAHJHAQAAKQFySgEAAHLMAAAAcs0AAABy5AAAAHIGAABzAgAAAAQHejZNeVNRTERETENvbXBpbGVyLnZpc2l0X2NyZWF0ZV9pbmRleC48bG9jYWxzPi48Z2VuZXhwcj5jAQAAAAAAAAACAAAABAAAADMAAABzGgAAAHwAXRJ9AWQAfAGIAGYCFgBWAAEAcQJkAVMAKQJ6BiVzKCVkKU5yzAAAACkCct4AAABy4gAAACkBckoBAAByzAAAAHLNAAAAcuQAAAB/BgAAcwIAAAAEAHoEKCVzKdoLd2l0aF9wYXJzZXJ6DyBXSVRIIFBBUlNFUiAlc3KkAAAAegkgVVNJTkcgJXMpEHIGAQAAWhNfdmVyaWZ5X2luZGV4X3RhYmxlcuoAAADaDGZvcm1hdF90YWJsZXKZAAAAWgtleHByZXNzaW9uc9oUX3ByZXBhcmVkX2luZGV4X25hbWVyoAAAAHIQAQAAcrEAAADaD2RpYWxlY3Rfb3B0aW9uc3LpAAAAcj0BAABybAAAANoDemlwcusAAAApDHLKAAAAck0AAABy1wAAAHJjAAAAcuoAAABymQAAAHKuAAAAcuwAAAByxAAAAFoMaW5kZXhfcHJlZml42gZwYXJzZXJypAAAAHLMAAAAKQJySgEAAHLKAAAAcs0AAADaEnZpc2l0X2NyZWF0ZV9pbmRleFIGAABzPgAAAAABBgEKAQYBDAIKAwoDCgIEAQYBCAIOAQQBDAIQAg4BCAIKBAQBCgcUBQQBFgMKAQwCDgEKAQ4CDgEKARICeiNNeVNRTERETENvbXBpbGVyLnZpc2l0X2NyZWF0ZV9pbmRleGMCAAAAAAAAAAQAAAAFAAAAAwAAAHM6AAAAdAB0AXwAgwKgAnwBoQF9AnwBagNkARkAZAIZAH0DfANyNnwCZAN8AGoEoAV8A6EBFgA3AH0CfAJTACkETnJJAQAAcqQAAAB6CSBVU0lORyAlcykGcgEBAAByKAEAANocdmlzaXRfcHJpbWFyeV9rZXlfY29uc3RyYWludHJOAQAAcuoAAABy6wAAACkEcsoAAABySgAAAHLEAAAAcqQAAAApAXIFAQAAcswAAAByzQAAAHJSAQAAjwYAAHMMAAAAAAEKAQYCDgEEARQBei1NeVNRTERETENvbXBpbGVyLnZpc2l0X3ByaW1hcnlfa2V5X2NvbnN0cmFpbnRjAgAAAAAAAAADAAAABQAAAEMAAABzJgAAAHwBagB9AmQBfABqAXwCZAJkA40CfABqAqADfAJqBKEBZgIWAFMAKQROehQKRFJPUCBJTkRFWCAlcyBPTiAlc0YpAVoOaW5jbHVkZV9zY2hlbWEpBXIGAQAAck0BAABy6gAAAHJMAQAAcpkAAAApA3LKAAAAclQAAAByYwAAAHLMAAAAcswAAAByzQAAANoQdmlzaXRfZHJvcF9pbmRleJgGAABzCAAAAAABBgICAQwBeiFNeVNRTERETENvbXBpbGVyLnZpc2l0X2Ryb3BfaW5kZXhjAgAAAAAAAAAFAAAABAAAAEMAAABzrAAAAHwBagB9AnQBfAJ0AmoDgwJyJGQBfQN8AGoEoAV8AqEBfQRucHQBfAJ0AmoGgwJyOmQCfQNkA30Eblp0AXwCdAJqB4MCclhkBH0DfABqBKAFfAKhAX0Ebjx0AXwCdAJqCIMCcoR8AGoJagpycmQFfQNuBGQGfQN8AGoEoAV8AqEBfQRuEGQDfQN8AGoEoAV8AqEBfQRkB3wAagSgC3wCagyhAXwDfARmAxYAUwApCE56DEZPUkVJR04gS0VZIHoMUFJJTUFSWSBLRVkgcgoBAAB6BklOREVYIHoLQ09OU1RSQUlOVCB6BkNIRUNLIHoYQUxURVIgVEFCTEUgJXMgRFJPUCAlcyVzKQ1yBgEAAHLpAAAA2glzYV9zY2hlbWFaFEZvcmVpZ25LZXlDb25zdHJhaW50cuoAAABaEWZvcm1hdF9jb25zdHJhaW502hRQcmltYXJ5S2V5Q29uc3RyYWludFoQVW5pcXVlQ29uc3RyYWludFoPQ2hlY2tDb25zdHJhaW50cs8AAADaC19pc19tYXJpYWRickwBAABymQAAACkFcsoAAAByVAAAAHJKAAAAWgRxdWFs2gVjb25zdHLMAAAAcswAAAByzQAAANoVdmlzaXRfZHJvcF9jb25zdHJhaW50oAYAAHMqAAAAAAEGAQwBBAEOAQwBBAEGAQwBBAEOAQwBCAEGAgQBDgIEAQwBAgEMAQIBeiZNeVNRTERETENvbXBpbGVyLnZpc2l0X2Ryb3BfY29uc3RyYWludGMCAAAAAAAAAAIAAAADAAAAQwAAAHMYAAAAfAFqAGQAawlyFHQBoAJkAaEBggFkAlMAKQNOempNeVNRTCBpZ25vcmVzIHRoZSAnTUFUQ0gnIGtleXdvcmQgd2hpbGUgYXQgdGhlIHNhbWUgdGltZSBjYXVzZXMgT04gVVBEQVRFL09OIERFTEVURSBjbGF1c2VzIHRvIGJlIGlnbm9yZWQucgoBAAApA3J5AAAAcisAAADaDENvbXBpbGVFcnJvcikCcsoAAABySgAAAHLMAAAAcswAAAByzQAAANoXZGVmaW5lX2NvbnN0cmFpbnRfbWF0Y2i6BgAAcwgAAAAAAQoBBAEGA3ooTXlTUUxERExDb21waWxlci5kZWZpbmVfY29uc3RyYWludF9tYXRjaGMCAAAAAAAAAAIAAAAHAAAAQwAAAHMoAAAAZAF8AGoAoAF8AWoCoQF8AGoDoAR8AWoCagV0BqAHoQChAmYCFgBTACkCTnoZQUxURVIgVEFCTEUgJXMgQ09NTUVOVCAlcykIcuoAAAByTAEAAHIGAQAAciwBAAByAgEAAHIrAQAAcvUAAABy+wAAACkCcsoAAAByTQAAAHLMAAAAcswAAAByzQAAANoXdmlzaXRfc2V0X3RhYmxlX2NvbW1lbnTCBgAAcwgAAAAAAQIBDAEGAXooTXlTUUxERExDb21waWxlci52aXNpdF9zZXRfdGFibGVfY29tbWVudGMCAAAAAAAAAAIAAAAEAAAAQwAAAHMSAAAAZAF8AGoAoAF8AWoCoQEWAFMAKQJOehlBTFRFUiBUQUJMRSAlcyBDT01NRU5UICcnKQNy6gAAAHJMAQAAcgYBAAApAnLKAAAAck0AAAByzAAAAHLMAAAAcs0AAADaGHZpc2l0X2Ryb3BfdGFibGVfY29tbWVudMoGAABzBAAAAAABAgF6KU15U1FMRERMQ29tcGlsZXIudmlzaXRfZHJvcF90YWJsZV9jb21tZW50YwIAAAAAAAAAAgAAAAYAAABDAAAAcywAAABkAXwAagCgAXwBagJqA6EBfABqAKAEfAFqAqEBfACgBXwBagKhAWYDFgBTACkCTnobQUxURVIgVEFCTEUgJXMgQ0hBTkdFICVzICVzKQZy6gAAAHJMAQAAcgYBAABymQAAAHIqAQAAci4BAAApAnLKAAAAck0AAAByzAAAAHLMAAAAcs0AAADaGHZpc2l0X3NldF9jb2x1bW5fY29tbWVudM8GAABzCAAAAAABAgEOAQwBeilNeVNRTERETENvbXBpbGVyLnZpc2l0X3NldF9jb2x1bW5fY29tbWVudCkOctIAAABy0wAAAHLUAAAAci4BAAByRgEAAHJRAQAAclIBAAByUwEAAHJYAQAAcloBAAByWwEAAHJcAQAAcl0BAAByJwEAAHLMAAAAcswAAAApAXIFAQAAcs0AAAByKAEAANMFAABzFAAAAAgBCCsIUwg9DAkICAgaCAgICAgFcigBAABjAAAAAAAAAAAAAAAAAwAAAAAAAABzTAEAAGUAWgFkAFoCZAFkAoQAWgNkA2QEhABaBGQFZAaEAFoFZAdkCIQAWgZkCWQKhABaB2QLZAyEAFoIZA1kDoQAWglkD2QQhABaCmQRZBKEAFoLZBNkFIQAWgxkFWQWhABaDWQXZBiEAFoOZBlkGoQAWg9kG2QchABaEGQdZB6EAFoRZB9kIIQAWhJkIWQihABaE2QjZCSEAFoUZCVkJoQAWhVkJ2QohABaFmQpZCqEAFoXZCtkLIQAWhhkLWQuhABaGWQvZDCEAFoaZDFkMoQAWhtkM2Q0hABaHGQ1ZDaEAFodZDdkOIQAWh5kOWQ6hABaH2Q7ZDyEAFoghwBmAWQ9ZD6ECFohZD9kQIQAWiJkQWRChABaI2RDZESEAFokZEVkRoQAWiVkR2RIhABaJmRJZEqEAFonZEtkTIQAWihkTWROhABaKYcABABaKlMAKU/aEU15U1FMVHlwZUNvbXBpbGVyYwMAAAAAAAAAAwAAAAMAAABDAAAAcy4AAAB8AKAAfAGhAXMOfAJTAHwBagFyHHwCZAE3AH0CfAFqAnIqfAJkAjcAfQJ8AlMAKQN6QUV4dGVuZCBhIG51bWVyaWMtdHlwZSBkZWNsYXJhdGlvbiB3aXRoIE15U1FMIHNwZWNpZmljIGV4dGVuc2lvbnMuegkgVU5TSUdORUR6CSBaRVJPRklMTCkD2gtfbXlzcWxfdHlwZXKhAAAAcq0AAAApA3LKAAAAcuUAAADaBHNwZWNyzAAAAHLMAAAAcs0AAADaD19leHRlbmRfbnVtZXJpY9gGAABzDgAAAAADCgEEAgYBCAEGAQgBeiFNeVNRTFR5cGVDb21waWxlci5fZXh0ZW5kX251bWVyaWNjBAAAAAAAAAAHAAAABgAAAAMAAABzpgAAAIcAhwFmAmQBZAKECH0EfARkA4MBciRkBHwEZAODARYAfQVuIHwEZAWDAXIyZAZ9BW4SfARkB4MBckBkCH0FbgRkCX0FfARkCoMBclhkC4gBagAWAH0GbhJ8BGQMgwFyZmQNfQZuBGQJfQZ8BGQOgwFyjGQPoAFkEGQRhABkEnwDfAZmA0QAgwGhAVMAZA+gAWQTZBGEAHwDfAV8BmYDRACDAaEBUwApFHqHRXh0ZW5kIGEgc3RyaW5nLXR5cGUgZGVjbGFyYXRpb24gd2l0aCBzdGFuZGFyZCBTUUwgQ0hBUkFDVEVSIFNFVCAvCiAgICAgICAgQ09MTEFURSBhbm5vdGF0aW9ucyBhbmQgTXlTUUwgc3BlY2lmaWMgZXh0ZW5zaW9ucy4KCiAgICAgICAgYwEAAAAAAAAAAQAAAAYAAAATAAAAcxIAAAB0AIgBfACIAKABfAChAYMDUwApAU4pAnL4AAAAcrEAAAApAXLsAAAAKQLaCGRlZmF1bHRzcuUAAAByzAAAAHLNAAAA2gRhdHRy6gYAAHMCAAAAAAF6Lk15U1FMVHlwZUNvbXBpbGVyLl9leHRlbmRfc3RyaW5nLjxsb2NhbHM+LmF0dHLaB2NoYXJzZXR6EENIQVJBQ1RFUiBTRVQgJXPaBWFzY2lp2gVBU0NJSdoHdW5pY29kZdoHVU5JQ09ERU7aCWNvbGxhdGlvbnoKQ09MTEFURSAlc3JAAAAAcjQAAADaCG5hdGlvbmFscgkBAABjAQAAAAAAAAACAAAABAAAAFMAAABzGAAAAGcAfABdEH0BfAFkAGsJcgR8AZECcQRTACkBTnLMAAAAKQJy3gAAAHLgAAAAcswAAAByzAAAAHLNAAAAct8AAAAABwAAcwIAAAAGAHo0TXlTUUxUeXBlQ29tcGlsZXIuX2V4dGVuZF9zdHJpbmcuPGxvY2Fscz4uPGxpc3Rjb21wPloITkFUSU9OQUxjAQAAAAAAAAACAAAABAAAAFMAAABzGAAAAGcAfABdEH0BfAFkAGsJcgR8AZECcQRTACkBTnLMAAAAKQJy3gAAAHLgAAAAcswAAAByzAAAAHLNAAAAct8AAAADBwAAcwIAAAAGACkCcmkBAABybAAAACkHcsoAAABy5QAAAHJiAQAAcmABAAByYwEAAHJkAQAAcmkBAAByzAAAACkCcmIBAABy5QAAAHLNAAAA2g5fZXh0ZW5kX3N0cmluZ+QGAABzJAAAAAAGDgMIAQ4BCAEGAQgBBgIEAggBDAEIAQYCBAIIAgQBFgIEAXogTXlTUUxUeXBlQ29tcGlsZXIuX2V4dGVuZF9zdHJpbmdjAgAAAAAAAAACAAAABAAAAEMAAABzDgAAAHQAfAF0AXQCZgKDAlMAKQFOKQNy6QAAAHIPAAAAcg4AAAApAnLKAAAAcuUAAAByzAAAAHLMAAAAcs0AAAByXwEAAAYHAABzAgAAAAABeh1NeVNRTFR5cGVDb21waWxlci5fbXlzcWxfdHlwZWMCAAAAAAAAAAMAAAAHAAAASwAAAHNUAAAAfAFqAGQAawhyFnwAoAF8AWQBoQJTAHwBagJkAGsIcjZ8AKABfAFkAmQDfAFqAGkBFgChAlMAfACgAXwBZAR8AWoAfAFqAmQFnAIWAKECUwBkAFMAKQZOch4AAAB6Fk5VTUVSSUMoJShwcmVjaXNpb24pcylyiQAAAHohTlVNRVJJQyglKHByZWNpc2lvbilzLCAlKHNjYWxlKXMpKQJyiQAAANoFc2NhbGUpA3KJAAAAcmEBAABybAEAACkDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2g12aXNpdF9OVU1FUklDCQcAAHMUAAAAAAEKAQwBCgEEAQIBEAMEAQIBAgF6H015U1FMVHlwZUNvbXBpbGVyLnZpc2l0X05VTUVSSUNjAgAAAAAAAAADAAAABwAAAEsAAABzVAAAAHwBagBkAGsIchZ8AKABfAFkAaECUwB8AWoCZABrCHI2fACgAXwBZAJkA3wBagBpARYAoQJTAHwAoAF8AWQEfAFqAHwBagJkBZwCFgChAlMAZABTACkGTnIUAAAAehZERUNJTUFMKCUocHJlY2lzaW9uKXMpcokAAAB6IURFQ0lNQUwoJShwcmVjaXNpb24pcywgJShzY2FsZSlzKSkCcokAAABybAEAACkDcokAAAByYQEAAHJsAQAAKQNyygAAAHLlAAAActcAAAByzAAAAHLMAAAAcs0AAADaDXZpc2l0X0RFQ0lNQUwYBwAAcxQAAAAAAQoBDAEKAQQBAgEQAwQBAgECAXofTXlTUUxUeXBlQ29tcGlsZXIudmlzaXRfREVDSU1BTGMCAAAAAAAAAAMAAAAHAAAASwAAAHM+AAAAfAFqAGQAawlyLnwBagFkAGsJci58AKACfAFkAXwBagB8AWoBZAKcAhYAoQJTAHwAoAJ8AWQDoQJTAGQAUwApBE56IERPVUJMRSglKHByZWNpc2lvbilzLCAlKHNjYWxlKXMpKQJyiQAAAHJsAQAAchUAAAApA3KJAAAAcmwBAAByYQEAACkDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2gx2aXNpdF9ET1VCTEUnBwAAcwwAAAAAARQBBAECAQIBEgN6Hk15U1FMVHlwZUNvbXBpbGVyLnZpc2l0X0RPVUJMRWMCAAAAAAAAAAMAAAAHAAAASwAAAHM+AAAAfAFqAGQAawlyLnwBagFkAGsJci58AKACfAFkAXwBagB8AWoBZAKcAhYAoQJTAHwAoAJ8AWQDoQJTAGQAUwApBE56HlJFQUwoJShwcmVjaXNpb24pcywgJShzY2FsZSlzKSkCcokAAABybAEAAHIgAAAAKQNyiQAAAHJsAQAAcmEBAAApA3LKAAAAcuUAAABy1wAAAHLMAAAAcswAAAByzQAAANoKdmlzaXRfUkVBTDEHAABzDAAAAAABFAEEAQIBAgESA3ocTXlTUUxUeXBlQ29tcGlsZXIudmlzaXRfUkVBTGMCAAAAAAAAAAMAAAAGAAAASwAAAHNkAAAAfACgAHwBoQFyNnwBagFkAGsJcjZ8AWoCZABrCXI2fACgA3wBZAF8AWoCfAFqAWYCFgChAlMAfAFqAmQAawlyVHwAoAN8AWQCfAFqAmYBFgChAlMAfACgA3wBZAOhAlMAZABTACkETnoNRkxPQVQoJXMsICVzKXoJRkxPQVQoJXMpchYAAAApBHJfAQAAcmwBAAByiQAAAHJhAQAAKQNyygAAAHLlAAAActcAAAByzAAAAHLMAAAAcs0AAADaC3Zpc2l0X0ZMT0FUOwcAAHMSAAAAAAIKAQoBCgIEARQCCgEEARADeh1NeVNRTFR5cGVDb21waWxlci52aXNpdF9GTE9BVGMCAAAAAAAAAAMAAAAGAAAASwAAAHM6AAAAfACgAHwBoQFyKnwBagFkAGsJcip8AKACfAFkAWQCfAFqAWkBFgChAlMAfACgAnwBZAOhAlMAZABTACkETnoaSU5URUdFUiglKGRpc3BsYXlfd2lkdGgpcynaDWRpc3BsYXlfd2lkdGhyFwAAACkDcl8BAABycgEAAHJhAQAAKQNyygAAAHLlAAAActcAAAByzAAAAHLMAAAAcs0AAADaDXZpc2l0X0lOVEVHRVJLBwAAcwwAAAAAARQBBAECAQIBDgN6H015U1FMVHlwZUNvbXBpbGVyLnZpc2l0X0lOVEVHRVJjAgAAAAAAAAADAAAABgAAAEsAAABzOgAAAHwAoAB8AaEBcip8AWoBZABrCXIqfACgAnwBZAFkAnwBagFpARYAoQJTAHwAoAJ8AWQDoQJTAGQAUwApBE56GUJJR0lOVCglKGRpc3BsYXlfd2lkdGgpcylycgEAAHIQAAAAKQNyXwEAAHJyAQAAcmEBAAApA3LKAAAAcuUAAABy1wAAAHLMAAAAcswAAAByzQAAANoMdmlzaXRfQklHSU5UVQcAAHMMAAAAAAEUAQQBAgECAQ4Deh5NeVNRTFR5cGVDb21waWxlci52aXNpdF9CSUdJTlRjAgAAAAAAAAADAAAABgAAAEsAAABzOgAAAHwAoAB8AaEBcip8AWoBZABrCXIqfACgAnwBZAFkAnwBagFpARYAoQJTAHwAoAJ8AWQDoQJTAGQAUwApBE56HE1FRElVTUlOVCglKGRpc3BsYXlfd2lkdGgpcylycgEAAHIbAAAAKQNyXwEAAHJyAQAAcmEBAAApA3LKAAAAcuUAAABy1wAAAHLMAAAAcswAAAByzQAAANoPdmlzaXRfTUVESVVNSU5UXwcAAHMMAAAAAAEUAQQBAgECAQ4DeiFNeVNRTFR5cGVDb21waWxlci52aXNpdF9NRURJVU1JTlRjAgAAAAAAAAADAAAABQAAAEsAAABzNgAAAHwAoAB8AaEBciZ8AWoBZABrCXImfACgAnwBZAF8AWoBFgChAlMAfACgAnwBZAKhAlMAZABTACkDTnoLVElOWUlOVCglcylyJgAAACkDcl8BAABycgEAAHJhAQAAKQNyygAAAHLlAAAActcAAAByzAAAAHLMAAAAcs0AAADaDXZpc2l0X1RJTllJTlRpBwAAcwgAAAAAARQBBAEOA3ofTXlTUUxUeXBlQ29tcGlsZXIudmlzaXRfVElOWUlOVGMCAAAAAAAAAAMAAAAGAAAASwAAAHM6AAAAfACgAHwBoQFyKnwBagFkAGsJcip8AKACfAFkAWQCfAFqAWkBFgChAlMAfACgAnwBZAOhAlMAZABTACkETnobU01BTExJTlQoJShkaXNwbGF5X3dpZHRoKXMpcnIBAAByIQAAACkDcl8BAABycgEAAHJhAQAAKQNyygAAAHLlAAAActcAAAByzAAAAHLMAAAAcs0AAADaDnZpc2l0X1NNQUxMSU5UcQcAAHMMAAAAAAEUAQQBAgECAQ4DeiBNeVNRTFR5cGVDb21waWxlci52aXNpdF9TTUFMTElOVGMCAAAAAAAAAAMAAAACAAAASwAAAHMcAAAAfAFqAGQAawlyFGQBfAFqABYAUwBkAlMAZABTACkDTnoHQklUKCVzKXIRAAAAKQFySgEAACkDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2gl2aXNpdF9CSVR7BwAAcwYAAAAAAQoBCgJ6G015U1FMVHlwZUNvbXBpbGVyLnZpc2l0X0JJVGMCAAAAAAAAAAMAAAAEAAAASwAAAHMeAAAAdAB8AWQBZACDA3IWZAJ8AWoBFgBTAGQDUwBkAFMAKQRO2gNmc3B6DERBVEVUSU1FKCVkKXITAAAAKQJy+AAAAHJ5AQAAKQNyygAAAHLlAAAActcAAAByzAAAAHLMAAAAcs0AAADaDnZpc2l0X0RBVEVUSU1FgQcAAHMGAAAAAAEMAQoCeiBNeVNRTFR5cGVDb21waWxlci52aXNpdF9EQVRFVElNRWMCAAAAAAAAAAMAAAABAAAASwAAAHMEAAAAZAFTACkCTnI3AAAAcswAAAApA3LKAAAAcuUAAABy1wAAAHLMAAAAcswAAAByzQAAANoKdmlzaXRfREFURYcHAABzAgAAAAABehxNeVNRTFR5cGVDb21waWxlci52aXNpdF9EQVRFYwIAAAAAAAAAAwAAAAQAAABLAAAAcx4AAAB0AHwBZAFkAIMDchZkAnwBagEWAFMAZANTAGQAUwApBE5yeQEAAHoIVElNRSglZClyIwAAACkCcvgAAAByeQEAACkDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2gp2aXNpdF9USU1FigcAAHMGAAAAAAEMAQoCehxNeVNRTFR5cGVDb21waWxlci52aXNpdF9USU1FYwIAAAAAAAAAAwAAAAQAAABLAAAAcx4AAAB0AHwBZAFkAIMDchZkAnwBagEWAFMAZANTAGQAUwApBE5yeQEAAHoNVElNRVNUQU1QKCVkKXIkAAAAKQJy+AAAAHJ5AQAAKQNyygAAAHLlAAAActcAAAByzAAAAHLMAAAAcs0AAADaD3Zpc2l0X1RJTUVTVEFNUJAHAABzBgAAAAABDAEKAnohTXlTUUxUeXBlQ29tcGlsZXIudmlzaXRfVElNRVNUQU1QYwIAAAAAAAAAAwAAAAIAAABLAAAAcxwAAAB8AWoAZABrCHIOZAFTAGQCfAFqABYAUwBkAFMAKQNOcikAAAB6CFlFQVIoJXMpKQFycgEAACkDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2gp2aXNpdF9ZRUFSlgcAAHMGAAAAAAEKAQQCehxNeVNRTFR5cGVDb21waWxlci52aXNpdF9ZRUFSYwIAAAAAAAAAAwAAAAYAAABLAAAAcywAAAB8AWoAchp8AKABfAFpAGQBfAFqABYAoQNTAHwAoAF8AWkAZAKhA1MAZABTACkDTnoIVEVYVCglZClyIgAAACkCckoBAAByawEAACkDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2gp2aXNpdF9URVhUnAcAAHMGAAAAAAEGARQCehxNeVNRTFR5cGVDb21waWxlci52aXNpdF9URVhUYwIAAAAAAAAAAwAAAAUAAABLAAAAcw4AAAB8AKAAfAFpAGQBoQNTACkCTnInAAAAKQFyawEAACkDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2g52aXNpdF9USU5ZVEVYVKIHAABzAgAAAAABeiBNeVNRTFR5cGVDb21waWxlci52aXNpdF9USU5ZVEVYVGMCAAAAAAAAAAMAAAAFAAAASwAAAHMOAAAAfACgAHwBaQBkAaEDUwApAk5yHAAAACkBcmsBAAApA3LKAAAAcuUAAABy1wAAAHLMAAAAcswAAAByzQAAANoQdmlzaXRfTUVESVVNVEVYVKUHAABzAgAAAAABeiJNeVNRTFR5cGVDb21waWxlci52aXNpdF9NRURJVU1URVhUYwIAAAAAAAAAAwAAAAUAAABLAAAAcw4AAAB8AKAAfAFpAGQBoQNTACkCTnIZAAAAKQFyawEAACkDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2g52aXNpdF9MT05HVEVYVKgHAABzAgAAAAABeiBNeVNRTFR5cGVDb21waWxlci52aXNpdF9MT05HVEVYVGMCAAAAAAAAAAMAAAAGAAAASwAAAHMwAAAAfAFqAHIafACgAXwBaQBkAXwBagAWAKEDUwB0AqADZAJ8AGoEagUWAKEBggFkAFMAKQNOegtWQVJDSEFSKCVkKXonVkFSQ0hBUiByZXF1aXJlcyBhIGxlbmd0aCBvbiBkaWFsZWN0ICVzKQZySgEAAHJrAQAAcisAAAByWQEAAHLPAAAAcuwAAAApA3LKAAAAcuUAAABy1wAAAHLMAAAAcswAAAByzQAAANoNdmlzaXRfVkFSQ0hBUqsHAABzCAAAAAABBgEUAgQBeh9NeVNRTFR5cGVDb21waWxlci52aXNpdF9WQVJDSEFSYwIAAAAAAAAAAwAAAAcAAABLAAAAczAAAAB8AWoAch58AKABfAFpAGQBZAJ8AWoAaQEWAKEDUwB8AKABfAFpAGQDoQNTAGQAUwApBE56EENIQVIoJShsZW5ndGgpcylySgEAAHISAAAAKQJySgEAAHJrAQAAKQNyygAAAHLlAAAActcAAAByzAAAAHLMAAAAcs0AAADaCnZpc2l0X0NIQVKzBwAAcwgAAAAAAQYBBAEUA3ocTXlTUUxUeXBlQ29tcGlsZXIudmlzaXRfQ0hBUmMCAAAAAAAAAAMAAAAHAAAASwAAAHM4AAAAfAFqAHIifACgAXwBZAFkAmkBZANkBHwBagBpARYAoQNTAHQCoANkBXwAagRqBRYAoQGCAWQAUwApBk5yagEAAFR6E1ZBUkNIQVIoJShsZW5ndGgpcylySgEAAHooTlZBUkNIQVIgcmVxdWlyZXMgYSBsZW5ndGggb24gZGlhbGVjdCAlcykGckoBAAByawEAAHIrAAAAclkBAAByzwAAAHLsAAAAKQNyygAAAHLlAAAActcAAAByzAAAAHLMAAAAcs0AAADaDnZpc2l0X05WQVJDSEFSuwcAAHMOAAAAAAMGAQQBAgEGARADBAF6IE15U1FMVHlwZUNvbXBpbGVyLnZpc2l0X05WQVJDSEFSYwIAAAAAAAAAAwAAAAcAAABLAAAAczgAAAB8AWoAciJ8AKABfAFkAWQCaQFkA2QEfAFqAGkBFgChA1MAfACgAXwBZAFkAmkBZAWhA1MAZABTACkGTnJqAQAAVHoQQ0hBUiglKGxlbmd0aClzKXJKAQAAchIAAAApAnJKAQAAcmsBAAApA3LKAAAAcuUAAABy1wAAAHLMAAAAcswAAAByzQAAANoLdmlzaXRfTkNIQVLJBwAAcwwAAAAAAwYBBAECAQYBEAN6HU15U1FMVHlwZUNvbXBpbGVyLnZpc2l0X05DSEFSYwIAAAAAAAAAAwAAAAIAAABLAAAAcwoAAABkAXwBagAWAFMAKQJOeg1WQVJCSU5BUlkoJWQpKQFySgEAACkDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2g92aXNpdF9WQVJCSU5BUlnVBwAAcwIAAAAAAXohTXlTUUxUeXBlQ29tcGlsZXIudmlzaXRfVkFSQklOQVJZYwIAAAAAAAAAAwAAAAEAAABLAAAAcwQAAABkAVMAKQJOcggAAAByzAAAACkDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2gp2aXNpdF9KU09O2AcAAHMCAAAAAAF6HE15U1FMVHlwZUNvbXBpbGVyLnZpc2l0X0pTT05jAgAAAAAAAAADAAAAAwAAAEsAAABzCgAAAHwAoAB8AaEBUwApAU4pAdoKdmlzaXRfQkxPQikDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2hJ2aXNpdF9sYXJnZV9iaW5hcnnbBwAAcwIAAAAAAXokTXlTUUxUeXBlQ29tcGlsZXIudmlzaXRfbGFyZ2VfYmluYXJ5YwIAAAAAAAAAAwAAAAUAAAALAAAAcyoAAAB8AWoAcxZ0AXQCfACDAqADfAGhAVMAfACgBGQBfAF8AWoFoQNTAGQAUwApAk5yBgAAACkGWgtuYXRpdmVfZW51bXIBAQAAcl4BAADaCnZpc2l0X2VudW3aGF92aXNpdF9lbnVtZXJhdGVkX3ZhbHVlc1oFZW51bXMpA3LKAAAAcuUAAABy1wAAACkBcgUBAAByzAAAAHLNAAAAcosBAADeBwAAcwYAAAAAAQYBEAJ6HE15U1FMVHlwZUNvbXBpbGVyLnZpc2l0X2VudW1jAgAAAAAAAAADAAAAAgAAAEsAAABzGAAAAHwBagByEGQBfAFqABYAUwBkAlMAZABTACkDTnoIQkxPQiglZClyNQAAACkBckoBAAApA3LKAAAAcuUAAABy1wAAAHLMAAAAcswAAAByzQAAAHKJAQAA5AcAAHMGAAAAAAEGAQoCehxNeVNRTFR5cGVDb21waWxlci52aXNpdF9CTE9CYwIAAAAAAAAAAwAAAAEAAABLAAAAcwQAAABkAVMAKQJOciUAAAByzAAAACkDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2g52aXNpdF9USU5ZQkxPQuoHAABzAgAAAAABeiBNeVNRTFR5cGVDb21waWxlci52aXNpdF9USU5ZQkxPQmMCAAAAAAAAAAMAAAABAAAASwAAAHMEAAAAZAFTACkCTnIaAAAAcswAAAApA3LKAAAAcuUAAABy1wAAAHLMAAAAcswAAAByzQAAANoQdmlzaXRfTUVESVVNQkxPQu0HAABzAgAAAAABeiJNeVNRTFR5cGVDb21waWxlci52aXNpdF9NRURJVU1CTE9CYwIAAAAAAAAAAwAAAAEAAABLAAAAcwQAAABkAVMAKQJOchgAAAByzAAAACkDcsoAAABy5QAAAHLXAAAAcswAAAByzAAAAHLNAAAA2g52aXNpdF9MT05HQkxPQvAHAABzAgAAAAABeiBNeVNRTFR5cGVDb21waWxlci52aXNpdF9MT05HQkxPQmMEAAAAAAAAAAYAAAAJAAAAQwAAAHNEAAAAZwB9BHgifANEAF0afQV8BKAAZAF8BaABZAJkA6ECFgChAQEAcQpXAHwAoAJ8AmkAZAR8AWQFoAN8BKEBZgIWAKEDUwApBk56BCclcyf6ASd6AicnegYlcyglcyn6ASwpBHLtAAAAcpEAAAByawEAAHJsAAAAKQZyygAAAHLsAAAAcuUAAABaEWVudW1lcmF0ZWRfdmFsdWVzWgxxdW90ZWRfZW51bXPaAWVyzAAAAHLMAAAAcs0AAAByjAEAAPMHAABzCgAAAAABBAEKARoBBAF6Kk15U1FMVHlwZUNvbXBpbGVyLl92aXNpdF9lbnVtZXJhdGVkX3ZhbHVlc2MCAAAAAAAAAAMAAAAFAAAASwAAAHMQAAAAfACgAGQBfAF8AWoBoQNTACkCTnIGAAAAKQJyjAEAANoSX2VudW1lcmF0ZWRfdmFsdWVzKQNyygAAAHLlAAAActcAAAByzAAAAHLMAAAAcs0AAADaCnZpc2l0X0VOVU37BwAAcwQAAAAAAQQBehxNeVNRTFR5cGVDb21waWxlci52aXNpdF9FTlVNYwIAAAAAAAAAAwAAAAUAAABLAAAAcxAAAAB8AKAAZAF8AXwBagGhA1MAKQJOcgcAAAApAnKMAQAAcpMBAAApA3LKAAAAcuUAAABy1wAAAHLMAAAAcswAAAByzQAAANoJdmlzaXRfU0VUAAgAAHMEAAAAAAEEAXobTXlTUUxUeXBlQ29tcGlsZXIudmlzaXRfU0VUYwIAAAAAAAAAAwAAAAEAAABLAAAAcwQAAABkAVMAKQJOWgRCT09McswAAAApA3LKAAAAcuUAAABy1wAAAHLMAAAAcswAAAByzQAAANoNdmlzaXRfQk9PTEVBTgUIAABzAgAAAAABeh9NeVNRTFR5cGVDb21waWxlci52aXNpdF9CT09MRUFOKSty0gAAAHLTAAAActQAAAByYQEAAHJrAQAAcl8BAABybQEAAHJuAQAAcm8BAABycAEAAHJxAQAAcnMBAABydAEAAHJ1AQAAcnYBAABydwEAAHJ4AQAAcnoBAAByewEAAHJ8AQAAcn0BAAByfgEAAHJ/AQAAcoABAABygQEAAHKCAQAAcoMBAAByhAEAAHKFAQAAcoYBAAByhwEAAHKIAQAAcooBAAByiwEAAHKJAQAAco0BAAByjgEAAHKPAQAAcowBAABylAEAAHKVAQAAcpYBAAByJwEAAHLMAAAAcswAAAApAXIFAQAAcs0AAAByXgEAANcGAABzTgAAAAgBCAwIIggDCA8IDwgKCAoIEAgKCAoICggICAoIBggGCAMIBggGCAYIBggDCAMIAwgICAgIDggMCAMIAwgDDAYIBggDCAMIAwgICAUIBXJeAQAAYwAAAAAAAAAAAAAAAAQAAAAAAAAAcyoAAABlAFoBZABaAmUDWgRkBocAZgFkAmQDhAlaBWQEZAWEAFoGhwAEAFoHUwApB9oXTXlTUUxJZGVudGlmaWVyUHJlcGFyZXJGYwMAAAAAAAAABQAAAAUAAAALAAAAcygAAAB8AnMKZAF9BG4EZAJ9BHQAdAF8AIMCagJ8AXwEfARkA40DAQBkAFMAKQRO+gFg+gEiKQJaDWluaXRpYWxfcXVvdGVaDGVzY2FwZV9xdW90ZSkDcgEBAABylwEAANoIX19pbml0X18pBXLKAAAAcs8AAADaEXNlcnZlcl9hbnNpcXVvdGVzctcAAABy6wAAACkBcgUBAAByzAAAAHLNAAAAcpoBAAANCAAAcwoAAAAAAQQBBgIEAgoBeiBNeVNRTElkZW50aWZpZXJQcmVwYXJlci5fX2luaXRfX2MBAAAAAAAAAAIAAAAEAAAABwAAAHMWAAAAdACHAGYBZAFkAoQIfAFEAIMBgwFTACkDejRVbmlsYXRlcmFsbHkgaWRlbnRpZmllci1xdW90ZSBhbnkgbnVtYmVyIG9mIHN0cmluZ3MuYwEAAAAAAAAAAgAAAAUAAAATAAAAcx4AAABnAHwAXRZ9AXwBZABrCXIEiACgAHwBoQGRAnEEUwApAU4pAdoQcXVvdGVfaWRlbnRpZmllcikCct4AAADaAWkpAXLKAAAAcswAAAByzQAAAHLfAAAAGggAAHMCAAAABgB6Q015U1FMSWRlbnRpZmllclByZXBhcmVyLl9xdW90ZV9mcmVlX2lkZW50aWZpZXJzLjxsb2NhbHM+LjxsaXN0Y29tcD4pAdoFdHVwbGUpAnLKAAAAWgNpZHNyzAAAACkBcsoAAAByzQAAANoXX3F1b3RlX2ZyZWVfaWRlbnRpZmllcnMXCAAAcwIAAAAAA3ovTXlTUUxJZGVudGlmaWVyUHJlcGFyZXIuX3F1b3RlX2ZyZWVfaWRlbnRpZmllcnMpAUYpCHLSAAAActMAAABy1AAAANoOUkVTRVJWRURfV09SRFNaDnJlc2VydmVkX3dvcmRzcpoBAABynwEAAHInAQAAcswAAAByzAAAACkBcgUBAAByzQAAAHKXAQAACQgAAHMGAAAACAIEAg4KcpcBAABjAAAAAAAAAAAAAAAACQAAAEAAAABz2gIAAGUAWgFkAFoCZAFaA2QCWgRkA1oFZARaBmQFWgdkBloIZANaCWQDWgpkBFoLZANaDGQDWg1kA1oOZAdaD2UQWhBkA1oRZRJaE2UUWhVlFloXZRhaGGUZWhpkA1obZARaHGUdah5kCGQJaQFmAmUfaiBkCmQJaQFmAmUdaiFkC2QJaQFmAmUdaiJkCWQJZAlkCWQMnARmAmcEWiNkd2QNZA6EAVokZA9kEIQAWiVlJmQRZBJkE2QUZwSDAVonZBVkFoQAWihkF2QYhABaKWQZZBqEAFoqZBtkHIQAWitkHWQehABaLGQfZCCEAFotZCFkIoQAWi5kI2QkhABaL2QlZCaEAFowZHhkJ2QohAFaMWR5ZClkKoQBWjJkK2QshABaM2QtZC6EAFo0ZHpkL2QwhAFaNWR7ZDFkMoQBWjZkfGQzZDSEAVo3ZDVkNoQAWjhkN2Q4hABaOWR9ZDlkOoQBWjpkO2Q8hABaO2Q9ZD6EAFo8ZT1kP2RAhACDAVo+ZT1kQWRChACDAVo/ZT1kQ2REhACDAVpAZT1kRWRGhACDAVpBZT1kR2RIhACDAVpCZUNqRGRJZEqEAIMBWkVlQ2pEZH5kS2RMhAGDAVpGZUNqRGR/ZE1kToQBgwFaR2VDakRkgGRPZFCEAYMBWkhlQ2pEZIFkUWRShAGDAVpJZUNqRGSCZFNkVIQBgwFaSmVDakRkg2RVZFaEAYMBWktkV2RYhABaTGVDakRkhGRZZFqEAYMBWk1lQ2pEZIVkW2RchAGDAVpOZUNqRGSGZF1kXoQBgwFaT2VDakRkh2RfZGCEAYMBWlBlQ2pEZIhkYWRihAGDAVpRZIlkY2RkhAFaUmVTalRkZWRmhACDAVpVZUNqRGSKZGdkaIQBgwFaVmRpZGqEAFpX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YWJsZWBgIGFuZCByZXR1cm4gcHJvY2Vzc2VkIHJvd3MuTnoLREVTQ1JJQkUgJXMpAk5OVCkBcukBAABpegQAAGlMBQAAejFUYWJsZSBvciB2aWV3IG5hbWVkICVzIGNvdWxkIG5vdCBiZSByZWZsZWN0ZWQ6ICVzKQFyZAEAACkMcuoBAAByTAEAAHLrAQAAcrMBAAByKwAAAHLsAQAAct0BAABy7QEAAHI2AgAAWhdVbnJlZmxlY3RhYmxlVGFibGVFcnJvcnLiAQAAcrQBAAApCnLKAAAAcq0BAABymQAAAHJkAQAAcu8BAABy8AEAAHLhAQAAcrwAAABykgEAANoEY29kZXLMAAAAcswAAAByzQAAAHIvAgAAOwsAAHMsAAAAAAMIAQwBCAIIAQIBAgEEAQgBCgESAQwBCAEMAQgBBAECAQ4DFAESAgQBCgF6HE15U1FMRGlhbGVjdC5fZGVzY3JpYmVfdGFibGUpA05OTikCVEYpAlRGKQFOKQFOKQFOKQFOKQFOKQFOKQFOKQFOKQFOKQFOKQFOKQFOKQFOKQFOKQFOKQFOKQFOKQJOTikCTk4pXnLSAAAActMAAABy1AAAANoHX19kb2NfX3LsAAAAWg5zdXBwb3J0c19hbHRlcloXc3VwcG9ydHNfbmF0aXZlX2Jvb2xlYW5aFW1heF9pZGVudGlmaWVyX2xlbmd0aFoVbWF4X2luZGV4X25hbWVfbGVuZ3RoWhRzdXBwb3J0c19uYXRpdmVfZW51bVoWc3VwcG9ydHNfc2FuZV9yb3djb3VudFocc3VwcG9ydHNfc2FuZV9tdWx0aV9yb3djb3VudFobc3VwcG9ydHNfbXVsdGl2YWx1ZXNfaW5zZXJ0WhFzdXBwb3J0c19jb21tZW50c1oPaW5saW5lX2NvbW1lbnRzWhJkZWZhdWx0X3BhcmFtc3R5bGXaCGNvbHNwZWNzWhJjdGVfZm9sbG93c19pbnNlcnRy1QAAAFoSc3RhdGVtZW50X2NvbXBpbGVycigBAABaDGRkbF9jb21waWxlcnJeAQAAcvoAAADaDWlzY2hlbWFfbmFtZXNylwEAAHLqAAAAcgMBAABy+QEAAHJUAQAAWgVUYWJsZXIuAAAAWgZVcGRhdGVyVQEAANoFSW5kZXhaE2NvbnN0cnVjdF9hcmd1bWVudHNymgEAAHKs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AQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAwICAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQIBAgECAQIBAgECAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBDAQEAQQBDgIEARIFBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQDBAEEAQQBBgEGAQYBBgEGAQYBCAEMBQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBCgQYCxh/AH8ALRh/AH8ABhh/AH8ANBgUFAEKfwB/AH8AfwB/AH8AQg==
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 15
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
base.cpython-37.pyc
81.67 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cymysql.cpython-37.pyc
2.46 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
dml.cpython-37.pyc
4.52 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
enumerated.cpython-37.pyc
10.18 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
gaerdbms.cpython-37.pyc
2.92 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
json.cpython-37.pyc
2.68 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
mysqlconnector.cpython-37.pyc
8.22 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
mysqldb.cpython-37.pyc
6.90 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
oursql.cpython-37.pyc
7.62 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pymysql.cpython-37.pyc
2.35 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pyodbc.cpython-37.pyc
2.71 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
reflection.cpython-37.pyc
11.96 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
types.cpython-37.pyc
26.93 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
zxjdbc.cpython-37.pyc
4.04 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-37.pyc
1.70 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).