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aW5lCmZyb20gbWFydmluX3B5dGhvbl90b29sYm94LmNvbW1vbi5kYXRhIGltcG9ydCBNYXJ2aW5EYXRhCmltcG9ydCBwYW5kYXMgYXMgcGQKCmZpbGVfcGF0aCA9IE1hcnZpbkRhdGEuZG93bmxvYWRfZmlsZSh1cmw9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9tYXJ2aW4tZW5naW5lcy1kYXRhL0lyaXMuY3N2IikKCmlyaXMgPSBwZC5yZWFkX2NzdihmaWxlX3BhdGgpCmlyaXMuZHJvcCgnSWQnLGF4aXM9MSxpbnBsYWNlPVRydWUpCgptYXJ2aW5faW5pdGlhbF9kYXRhc2V0ID0gaXJpc5RoB12UaC5YSwEAACNEYXRhIEFjcXVpc2l0b3IKaW1wb3J0IG1hcnZpbl9pcmlzX2NsYXNzaWZpY2F0aW9uX2VuZ2luZQpmcm9tIG1hcnZpbl9weXRob25fdG9vbGJveC5jb21tb24uZGF0YSBpbXBvcnQgTWFydmluRGF0YQppbXBvcnQgcGFuZGFzIGFzIHBkCgpmaWxlX3BhdGggPSBNYXJ2aW5EYXRhLmRvd25sb2FkX2ZpbGUodXJsPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vbWFydmluLWVuZ2luZXMtZGF0YS9JcmlzLmNzdiIpCgppcmlzID0gcGQucmVhZF9jc3YoZmlsZV9wYXRoKQppcmlzLmRyb3AoJ0lkJyxheGlzPTEsaW5wbGFjZT1UcnVlKQoKbWFydmluX2luaXRpYWxfZGF0YXNldCA9IGlyaXOUhZSBlH2UKGgFaAZoH2rFAwAAdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlGhzaHSMCGxhbmd1YWdllIwGcHl0aG9ulIwHbGluZW5vc5SJjA5oaWdobGlnaHRfYXJnc5R9lHVoHWhjaCBoIWgeS2RoH2r/AgAAaAFoA3ViaDopgZR9lChoBYxrSW4gdGhlIG5leHQgY2VsbCB3ZSBzcGxpdCB0aGUgZGF0YXNldCB0byBwcmVwYXJlIGZvciB0cmFpbmluZy4gVGhpcyBjZWxsIGl04oCZcyB0aGXCoCpUcmFpbmluZyBQcmVwYXJhdG9yKi6UaAddlChoLoxVSW4gdGhlIG5leHQgY2VsbCB3ZSBzcGxpdCB0aGUgZGF0YXNldCB0byBwcmVwYXJlIGZvciB0cmFpbmluZy4gVGhpcyBjZWxsIGl04oCZcyB0aGXCoJSFlIGUfZQoaAWMVUluIHRoZSBuZXh0IGNlbGwgd2Ugc3BsaXQgdGhlIGRhdGFzZXQgdG8gcHJlcGFyZSBmb3IgdHJhaW5pbmcuIFRoaXMgY2VsbCBpdOKAmXMgdGhlwqCUaB9q2AMAAGgBaANoIE5oHk51YmqsAwAAKYGUfZQoaAWMFSpUcmFpbmluZyBQcmVwYXJhdG9yKpRoB12UaC6ME1RyYWluaW5nIFByZXBhcmF0b3KUhZSBlH2UKGgFaAZoH2rhAwAAdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlHVoHWqrAwAAaB9q2AMAAHViaC6MAS6UhZSBlH2UKGgFaIVoH2rYAwAAaAFoA2ggTmgeTnViZWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZR1aB1oOWggaCFoHktyaB9q/wIAAGgBaAN1YmhkKYGUfZQoaAVYwQEAACNUcmFpbmluZyBQcmVwYXJhdG9yCmZyb20gc2tsZWFybi5tb2RlbF9zZWxlY3Rpb24gaW1wb3J0IHRyYWluX3Rlc3Rfc3BsaXQKCnRyYWluLCB0ZXN0ID0gdHJhaW5fdGVzdF9zcGxpdChtYXJ2aW5faW5pdGlhbF9kYXRhc2V0LCB0ZXN0X3NpemUgPSAwLjMpCgp0cmFpbl9YID0gdHJhaW5bWydTZXBhbExlbmd0aENtJywnU2VwYWxXaWR0aENtJywnUGV0YWxMZW5ndGhDbScsJ1BldGFsV2lkdGhDbSddXQp0cmFpbl95ID0gdHJhaW4uU3BlY2llcwoKdGVzdF9YID0gdGVzdFtbJ1NlcGFsTGVuZ3RoQ20nLCdTZXBhbFdpZHRoQ20nLCdQZXRhbExlbmd0aENtJywnUGV0YWxXaWR0aENtJ11dCnRlc3RfeSA9IHRlc3QuU3BlY2llcwoKbWFydmluX2RhdGFzZXQgPSB7J3RyYWluX1gnOiB0cmFpbl9YLCAndHJhaW5feSc6IHRyYWluX3ksICd0ZXN0X1gnOiB0ZXN0X1gsICd0ZXN0X3knOiB0ZXN0X3l9lGgHXZRoLljBAQAAI1RyYWluaW5nIFByZXBhcmF0b3IKZnJvbSBza2xlYXJuLm1vZGVsX3NlbGVjdGlvbiBpbXBvcnQgdHJhaW5fdGVzdF9zcGxpdAoKdHJhaW4sIHRlc3QgPSB0cmFpbl90ZXN0X3NwbGl0KG1hcnZpbl9pbml0aWFsX2RhdGFzZXQsIHRlc3Rfc2l6ZSA9IDAuMykKCnRyYWluX1ggPSB0cmFpbltbJ1NlcGFsTGVuZ3RoQ20nLCdTZXBhbFdpZHRoQ20nLCdQZXRhbExlbmd0aENtJywnUGV0YWxXaWR0aENtJ11dCnRyYWluX3kgPSB0cmFpbi5TcGVjaWVzCgp0ZXN0X1ggPSB0ZXN0W1snU2VwYWxMZW5ndGhDbScsJ1NlcGFsV2lkdGhDbScsJ1BldGFsTGVuZ3RoQ20nLCdQZXRhbFdpZHRoQ20nXV0KdGVzdF95ID0gdGVzdC5TcGVjaWVzCgptYXJ2aW5fZGF0YXNldCA9IHsndHJhaW5fWCc6IHRyYWluX1gsICd0cmFpbl95JzogdHJhaW5feSwgJ3Rlc3RfWCc6IHRlc3RfWCwgJ3Rlc3RfeSc6IHRlc3RfeX2UhZSBlH2UKGgFaAZoH2r5AwAAdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlGhzaHRq0wMAAIwGcHl0aG9ulGrVAwAAiWrWAwAAfZR1aB1oY2ggaCFoHkt1aB9q/wIAAGgBaAN1Ymg6KYGUfZQoaAWMoE5leHQgaXMgdGhlIG1vZGVsIHRyYWluaW5nLiBJbiB0aGlzIHR1dG9yaWFsIHdlIHVzZWQgYSBTdXBwb3J0IFZlY3RvciBNYWNoaW5lIChTVk0pLCBidXQgeW91IGNhbiB1c2UgdGhlIGFsZ29yaXRobSBvZiB5b3VyIGNob2ljZS4gVGhpcyBwaGFzZSBpcyB0aGXCoCpUcmFpbmVyKi6UaAddlChoLoyWTmV4dCBpcyB0aGUgbW9kZWwgdHJhaW5pbmcuIEluIHRoaXMgdHV0b3JpYWwgd2UgdXNlZCBhIFN1cHBvcnQgVmVjdG9yIE1hY2hpbmUgKFNWTSksIGJ1dCB5b3UgY2FuIHVzZSB0aGUgYWxnb3JpdGhtIG9mIHlvdXIgY2hvaWNlLiBUaGlzIHBoYXNlIGlzIHRoZcKglIWUgZR9lChoBYyWTmV4dCBpcyB0aGUgbW9kZWwgdHJhaW5pbmcuIEluIHRoaXMgdHV0b3JpYWwgd2UgdXNlZCBhIFN1cHBvcnQgVmVjdG9yIE1hY2hpbmUgKFNWTSksIGJ1dCB5b3UgY2FuIHVzZSB0aGUgYWxnb3JpdGhtIG9mIHlvdXIgY2hvaWNlLiBUaGlzIHBoYXNlIGlzIHRoZcKglGgfagkEAABoAWgDaCBOaB5OdWJqrAMAACmBlH2UKGgFjAkqVHJhaW5lciqUaAddlGgujAdUcmFpbmVylIWUgZR9lChoBWgGaB9qEgQAAHViYWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZR1aB1qqwMAAGgfagkEAAB1YmgujAEulIWUgZR9lChoBWiFaB9qCQQAAGgBaANoIE5oHk51YmVoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UdWgdaDloIGghaB5LhGgfav8CAABoAWgDdWJoZCmBlH2UKGgFjJMjTW9kZWwgVHJhbmluZwpmcm9tIHNrbGVhcm4gaW1wb3J0IHN2bQoKY2xmID0gc3ZtLlNWQygpCm1vZGVsID0gY2xmLmZpdChtYXJ2aW5fZGF0YXNldFsndHJhaW5fWCddLCBtYXJ2aW5fZGF0YXNldFsndHJhaW5feSddKQoKbWFydmluX21vZGVsID0gbW9kZWyUaAddlGgujJMjTW9kZWwgVHJhbmluZwpmcm9tIHNrbGVhcm4gaW1wb3J0IHN2bQoKY2xmID0gc3ZtLlNWQygpCm1vZGVsID0gY2xmLmZpdChtYXJ2aW5fZGF0YXNldFsndHJhaW5fWCddLCBtYXJ2aW5fZGF0YXNldFsndHJhaW5feSddKQoKbWFydmluX21vZGVsID0gbW9kZWyUhZSBlH2UKGgFaAZoH2oqBAAAdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlGhzaHRq0wMAAIwGcHl0aG9ulGrVAwAAiWrWAwAAfZR1aB1oY2ggaCFoHkuGaB9q/wIAAGgBaAN1Ymg6KYGUfZQoaAWMY0hlcmUgd2UgZXZhbHVhdGUgbW9kZWwgcGVyZm9ybWFuY2UgdXRpbGl6aW5nIHByZWRpY3Rpb24gYWNjdXJhY3kuIFRoaXMgaXMgdGhlwqAqTWV0cmljcyBFdmFsdWF0b3IqLpRoB12UKGgujE9IZXJlIHdlIGV2YWx1YXRlIG1vZGVsIHBlcmZvcm1hbmNlIHV0aWxpemluZyBwcmVkaWN0aW9uIGFjY3VyYWN5LiBUaGlzIGlzIHRoZcKglIWUgZR9lChoBYxPSGVyZSB3ZSBldmFsdWF0ZSBtb2RlbCBwZXJmb3JtYW5jZSB1dGlsaXppbmcgcHJlZGljdGlvbiBhY2N1cmFjeS4gVGhpcyBpcyB0aGXCoJRoH2o6BAAAaAFoA2ggTmgeTnViaqwDAAApgZR9lChoBYwTKk1ldHJpY3MgRXZhbHVhdG9yKpRoB12UaC6MEU1ldHJpY3MgRXZhbHVhdG9ylIWUgZR9lChoBWgGaB9qQwQAAHViYWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZR1aB1qqwMAAGgfajoEAAB1YmgujAEulIWUgZR9lChoBWiFaB9qOgQAAGgBaANoIE5oHk51YmVoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UdWgdaDloIGghaB5LkGgfav8CAABoAWgDdWJoZCmBlH2UKGgFjM4jTW9kZWwgRXZhbHVhdGlvbgpmcm9tIHNrbGVhcm4ubWV0cmljcyBpbXBvcnQgYWNjdXJhY3lfc2NvcmUKCnByZWRpY3RlZCA9IG1hcnZpbl9tb2RlbC5wcmVkaWN0KG1hcnZpbl9kYXRhc2V0Wyd0ZXN0X1gnXSkKbWV0cmljID0gYWNjdXJhY3lfc2NvcmUobWFydmluX2RhdGFzZXRbJ3Rlc3RfeSddLCBwcmVkaWN0ZWQpCgptYXJ2aW5fbWV0cmljcyA9IG1ldHJpY5RoB12UaC6MziNNb2RlbCBFdmFsdWF0aW9uCmZyb20gc2tsZWFybi5tZXRyaWNzIGltcG9ydCBhY2N1cmFjeV9zY29yZQoKcHJlZGljdGVkID0gbWFydmluX21vZGVsLnByZWRpY3QobWFydmluX2RhdGFzZXRbJ3Rlc3RfWCddKQptZXRyaWMgPSBhY2N1cmFjeV9zY29yZShtYXJ2aW5fZGF0YXNldFsndGVzdF95J10sIHByZWRpY3RlZCkKCm1hcnZpbl9tZXRyaWNzID0gbWV0cmljlIWUgZR9lChoBWgGaB9qWwQAAHViYWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZRoc2h0atMDAACMBnB5dGhvbpRq1QMAAIlq1gMAAH2UdWgdaGNoIGghaB5Lkmgfav8CAABoAWgDdWJoOimBlH2UKGgFjM1UaGUgZm9sbG93aW5nIG1lc3NhZ2UgZG9lcyBub3QgZW50ZXIgdGhlIERBU0ZFIEFyY2hpdGVjdHVyZSwgd2UgdXNlIHRoaXMgZm9yIHRlc3RzIHB1cnBvc2VzIHdoaWxlIGNvZGluZyBpbiB0aGUgbm90ZWJvb2suwqAgVGhlcmVmb3JlLCBpdCB3aWxsIGJlIHBsYWNlZCBpbiBhbiBpc29sYXRlZCBjZWxsIGFuZCB3aWxsIG5vdCByZWNlaXZlIGFueSBtYXJrdXAulGgHXZRoLozNVGhlIGZvbGxvd2luZyBtZXNzYWdlIGRvZXMgbm90IGVudGVyIHRoZSBEQVNGRSBBcmNoaXRlY3R1cmUsIHdlIHVzZSB0aGlzIGZvciB0ZXN0cyBwdXJwb3NlcyB3aGlsZSBjb2RpbmcgaW4gdGhlIG5vdGVib29rLsKgIFRoZXJlZm9yZSwgaXQgd2lsbCBiZSBwbGFjZWQgaW4gYW4gaXNvbGF0ZWQgY2VsbCBhbmQgd2lsbCBub3QgcmVjZWl2ZSBhbnkgbWFya3VwLpSFlIGUfZQoaAVqbQQAAGgfamsEAABoAWgDaCBOaB5OdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlHVoHWg5aCBoIWgeS5xoH2r/AgAAaAFoA3ViaGQpgZR9lChoBYwoaW5wdXRfbWVzc2FnZSA9IFsiMTIiLCAiMzQiLCAiMTAiLCAiMjMiXZRoB12UaC6MKGlucHV0X21lc3NhZ2UgPSBbIjEyIiwgIjM0IiwgIjEwIiwgIjIzIl2UhZSBlH2UKGgFaAZoH2p5BAAAdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlGhzaHRq0wMAAIwGcHl0aG9ulGrVAwAAiWrWAwAAfZR1aB1oY2ggaCFoHkueaB9q/wIAAGgBaAN1Ymg6KYGUfZQoaAVYOAEAAEluIHRoaXMgY2VsbCBvY2N1cnMgdGhlIHJlYWRpbmcgYW5kIHRyYW5zZm9ybWF0aW9uIG9mIHRoZSBtZXNzYWdlIHdoaWNoIHdpbGwgYmUgZnVydGhlciBwYXNzZWQgdG8gdGhlIHByZWRpY3Rvci4gSW4gdGhpcyBjYXNlLCBzaW5jZSB0aGVyZSBpcyBubyBuZWVkIHRvIGFwcGx5IGFueSB0cmVhdG1lbnQgdG8gdGhlIGlucHV0IG1lc3NhZ2UsIHRoZSBtZXNzYWdlIGlzIGFscmVhZHkgcHJlcGFyZWQsIHRodXMgd2UgZG8gbm90IG1vZGlmeSB2YXJpYWJsZcKgaW5wdXRfbWVzc2FnZS4gVGhpcyBpcyB0aGXCoCpQcmVkaWN0aW9uIFByZXBhcmF0b3IqLpRoB12UKGguWCABAABJbiB0aGlzIGNlbGwgb2NjdXJzIHRoZSByZWFkaW5nIGFuZCB0cmFuc2Zvcm1hdGlvbiBvZiB0aGUgbWVzc2FnZSB3aGljaCB3aWxsIGJlIGZ1cnRoZXIgcGFzc2VkIHRvIHRoZSBwcmVkaWN0b3IuIEluIHRoaXMgY2FzZSwgc2luY2UgdGhlcmUgaXMgbm8gbmVlZCB0byBhcHBseSBhbnkgdHJlYXRtZW50IHRvIHRoZSBpbnB1dCBtZXNzYWdlLCB0aGUgbWVzc2FnZSBpcyBhbHJlYWR5IHByZXBhcmVkLCB0aHVzIHdlIGRvIG5vdCBtb2RpZnkgdmFyaWFibGXCoGlucHV0X21lc3NhZ2UuIFRoaXMgaXMgdGhlwqCUhZSBlH2UKGgFWCABAABJbiB0aGlzIGNlbGwgb2NjdXJzIHRoZSByZWFkaW5nIGFuZCB0cmFuc2Zvcm1hdGlvbiBvZiB0aGUgbWVzc2FnZSB3aGljaCB3aWxsIGJlIGZ1cnRoZXIgcGFzc2VkIHRvIHRoZSBwcmVkaWN0b3IuIEluIHRoaXMgY2FzZSwgc2luY2UgdGhlcmUgaXMgbm8gbmVlZCB0byBhcHBseSBhbnkgdHJlYXRtZW50IHRvIHRoZSBpbnB1dCBtZXNzYWdlLCB0aGUgbWVzc2FnZSBpcyBhbHJlYWR5IHByZXBhcmVkLCB0aHVzIHdlIGRvIG5vdCBtb2RpZnkgdmFyaWFibGXCoGlucHV0X21lc3NhZ2UuIFRoaXMgaXMgdGhlwqCUaB9qiQQAAGgBaANoIE5oHk51YmqsAwAAKYGUfZQoaAWMFypQcmVkaWN0aW9uIFByZXBhcmF0b3IqlGgHXZRoLowVUHJlZGljdGlvbiBQcmVwYXJhdG9ylIWUgZR9lChoBWgGaB9qkgQAAHViYWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZR1aB1qqwMAAGgfaokEAAB1YmgujAEulIWUgZR9lChoBWiFaB9qiQQAAGgBaANoIE5oHk51YmVoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UdWgdaDloIGghaB5Lomgfav8CAABoAWgDdWJoZCmBlH2UKGgFjDQjUHJlZGljdGlvbiBQcmVwYXJhdG9yCmlucHV0X21lc3NhZ2UgPSBpbnB1dF9tZXNzYWdllGgHXZRoLow0I1ByZWRpY3Rpb24gUHJlcGFyYXRvcgppbnB1dF9tZXNzYWdlID0gaW5wdXRfbWVzc2FnZZSFlIGUfZQoaAVoBmgfaqoEAAB1YmFoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UaHNodGrTAwAAjAZweXRob26UatUDAACJatYDAAB9lHVoHWhjaCBoIWgeS6RoH2r/AgAAaAFoA3ViaDopgZR9lChoBYxgVGhlIGZvbGxvd2luZyBjZWxsIHBlcmZvcm1zIHRoZSBwcmVkaWN0aW9uLCBiZWluZyB0aGUgZW5kIHJlc3VsdC4gVGhpcyBzdGFnZSBpcyB0aGUgKlByZWRpY3RvcioulGgHXZQoaC6MVFRoZSBmb2xsb3dpbmcgY2VsbCBwZXJmb3JtcyB0aGUgcHJlZGljdGlvbiwgYmVpbmcgdGhlIGVuZCByZXN1bHQuIFRoaXMgc3RhZ2UgaXMgdGhlIJSFlIGUfZQoaAWMVFRoZSBmb2xsb3dpbmcgY2VsbCBwZXJmb3JtcyB0aGUgcHJlZGljdGlvbiwgYmVpbmcgdGhlIGVuZCByZXN1bHQuIFRoaXMgc3RhZ2UgaXMgdGhlIJRoH2q6BAAAaAFoA2ggTmgeTnViaqwDAAApgZR9lChoBYwLKlByZWRpY3RvciqUaAddlGgujAlQcmVkaWN0b3KUhZSBlH2UKGgFaAZoH2rDBAAAdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlHVoHWqrAwAAaB9qugQAAHViaC6MAS6UhZSBlH2UKGgFaIVoH2q6BAAAaAFoA2ggTmgeTnViZWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZR1aB1oOWggaCFoHkupaB9q/wIAAGgBaAN1YmhkKYGUfZQoaAWMRyMgUHJlZGljdG9yCmZpbmFsX3ByZWRpY3Rpb24gPSBtYXJ2aW5fbW9kZWwucHJlZGljdChbaW5wdXRfbWVzc2FnZV0pWzBdlGgHXZRoLoxHIyBQcmVkaWN0b3IKZmluYWxfcHJlZGljdGlvbiA9IG1hcnZpbl9tb2RlbC5wcmVkaWN0KFtpbnB1dF9tZXNzYWdlXSlbMF2UhZSBlH2UKGgFaAZoH2rbBAAAdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlGhzaHRq0wMAAIwGcHl0aG9ulGrVAwAAiWrWAwAAfZR1aB1oY2ggaCFoHkuraB9q/wIAAGgBaAN1Ymg6KYGUfZQoaAWMkExpa2Ugb24gdGhlIHRlc3QgbWVzc2FnZSwgdGhpcyBjZWxsIGRvZXMgbm90IGVudGVyIHRoZSBEQVNGRSBBcmNoaXRlY3R1cmUuIFRoaXMgY2VsbCBpcyBvbmx5IGZvciBjaGVja2luZyB0aGUgcmVzdWx0IHdpdGhpbiB0aGUgbm90ZWJvb2sgaXRzZWxmLpRoB12UaC6MkExpa2Ugb24gdGhlIHRlc3QgbWVzc2FnZSwgdGhpcyBjZWxsIGRvZXMgbm90IGVudGVyIHRoZSBEQVNGRSBBcmNoaXRlY3R1cmUuIFRoaXMgY2VsbCBpcyBvbmx5IGZvciBjaGVja2luZyB0aGUgcmVzdWx0IHdpdGhpbiB0aGUgbm90ZWJvb2sgaXRzZWxmLpSFlIGUfZQoaAVq7QQAAGgfausEAABoAWgDaCBOaB5OdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlHVoHWg5aCBoIWgeS7BoH2r/AgAAaAFoA3ViaGQpgZR9lChoBYwXcHJpbnQoZmluYWxfcHJlZGljdGlvbimUaAddlGgujBdwcmludChmaW5hbF9wcmVkaWN0aW9uKZSFlIGUfZQoaAVoBmgfavkEAAB1YmFoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UaHNodGrTAwAAjAZweXRob26UatUDAACJatYDAAB9lHVoHWhjaCBoIWgeS7JoH2r/AgAAaAFoA3ViZWgPfZQoaBFdlIwWd3JpdHRpbmctZG9jdW1lbnRhdGlvbpRhaBNdlGgVXZSMFndyaXR0aW5nIGRvY3VtZW50YXRpb26UYWgXXZRoGV2UdWgdaCJoH2oWAQAAaAFoA2ggaCFoHktVdWJoIymBlH2UKGgFaAZoB12UKGgoKYGUfZQoaAWMIE1hcmsgY2VsbHMgb24gREFTRkUgQXJjaGl0ZWN0dXJllGgHXZRoLowgTWFyayBjZWxscyBvbiBEQVNGRSBBcmNoaXRlY3R1cmWUhZSBlH2UKGgFahYFAABoH2oUBQAAaAFoA2ggTmgeTnViYWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZR1aB1oJ2gfahEFAABoAWgDaCBoIWgeS7h1Ymg6KYGUfZQoaAWMZFRvIGFwcGx5IG1hcmsgY2VsbHMsIHVzZSB0aGUgZHJvcC1kb3duIG1lbnUgYXQgdGhlIHRvcCBvZiB0aGUgSnVweXRlciBub3RlYm9vayBhcyBpbGx1c3RyYXRlZCBiZWxvdy6UaAddlGgujGRUbyBhcHBseSBtYXJrIGNlbGxzLCB1c2UgdGhlIGRyb3AtZG93biBtZW51IGF0IHRoZSB0b3Agb2YgdGhlIEp1cHl0ZXIgbm90ZWJvb2sgYXMgaWxsdXN0cmF0ZWQgYmVsb3culIWUgZR9lChoBWokBQAAaB9qIgUAAGgBaANoIE5oHk51YmFoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UdWgdaDloIGghaB5LumgfahEFAABoAWgDdWJq/AEAACmBlH2UKGgFjCYuLiBpbWFnZTo6IC4uL2ltYWdlcy9kYXNmZS1tYXJ2aW4ucG5nCpRoB12UaA99lChoEV2UaBNdlGgVXZRoF12UaBldlIwDdXJplIwgcGFnZXMvLi4vaW1hZ2VzL2Rhc2ZlLW1hcnZpbi5wbmeUagkCAAB9lGqYAQAAajsFAABzdWgdavsBAABoH2oRBQAAaAFoA2ggaCFoHku9dWJoOimBlH2UKGgFjDhPbmNlIHRoZSBtYXJrdXAgaXMgZG9uZSwgdGhlIGNvZGUgc2hvdWxkIGxvb2sgbGlrZSB0aGlzOpRoB12UaC6MOE9uY2UgdGhlIG1hcmt1cCBpcyBkb25lLCB0aGUgY29kZSBzaG91bGQgbG9vayBsaWtlIHRoaXM6lIWUgZR9lChoBWo/BQAAaB9qPQUAAGgBaANoIE5oHk51YmFoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UdWgdaDloIGghaB5LvmgfahEFAABoAWgDdWJq/AEAACmBlH2UKGgFjCAuLiBpbWFnZTo6IC4uL2ltYWdlcy9tYXJrZWQucG5nCpRoB12UaA99lChoEV2UaBNdlGgVXZRoF12UaBldlIwDdXJplIwacGFnZXMvLi4vaW1hZ2VzL21hcmtlZC5wbmeUagkCAAB9lGqYAQAAalYFAABzdWgdavsBAABoH2oRBQAAaAFoA2ggaCFoHkvBdWJoOimBlH2UKGgFjEVJZiBldmVyeXRoaW5nIGlzIGNvcnJlY3QsIHNhdmUgdGhlIGNoYW5nZXMgYW5kIHF1aXQgSnVweXRlciBOb3RlYm9vay6UaAddlGgujEVJZiBldmVyeXRoaW5nIGlzIGNvcnJlY3QsIHNhdmUgdGhlIGNoYW5nZXMgYW5kIHF1aXQgSnVweXRlciBOb3RlYm9vay6UhZSBlH2UKGgFaloFAABoH2pYBQAAaAFoA2ggTmgeTnViYWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZR1aB1oOWggaCFoHkvCaB9qEQUAAGgBaAN1YmVoD32UKGgRXZSMIG1hcmstY2VsbHMtb24tZGFzZmUtYXJjaGl0ZWN0dXJllGFoE12UaBVdlIwgbWFyayBjZWxscyBvbiBkYXNmZSBhcmNoaXRlY3R1cmWUYWgXXZRoGV2UdWgdaCJoH2oWAQAAaAFoA2ggaCFoHku4dWJoIymBlH2UKGgFaAZoB12UKGgoKYGUfZQoaAWMElJ1bm5pbmcgdGhlIERyeXJ1bpRoB12UaC6MElJ1bm5pbmcgdGhlIERyeXJ1bpSFlIGUfZQoaAVqcwUAAGgfanEFAABoAWgDaCBOaB5OdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlHVoHWgnaB9qbgUAAGgBaANoIGghaB5LxXViaDopgZR9lChoBYxBTWFydmluIGRyeXJ1biBpcyBhIHdheSB0byB0ZXN0IHlvdXIgY29kZSBhZ2FpbnN0IERBU0ZFIHN0YW5kYXJkcy6UaAddlGgujEFNYXJ2aW4gZHJ5cnVuIGlzIGEgd2F5IHRvIHRlc3QgeW91ciBjb2RlIGFnYWluc3QgREFTRkUgc3RhbmRhcmRzLpSFlIGUfZQoaAVqgQUAAGgfan8FAABoAWgDaCBOaB5OdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlHVoHWg5aCBoIWgeS8doH2puBQAAaAFoA3ViaDopgZR9lChoBYy/KipCeSBkZWZhdWx0LCBhIFN0cmluZyBtZXNzYWdlIGlzIHNlbnQgdG8gZHJ5cnVuLCBidXQgYmVjYXVzZSB0aGUgSXJpcyBDbGFzc2lmaWNhdGlvbiBtZXNzYWdlIHNob3VsZCBiZSBhIGxpc3Qgb2YgZm91ciBudW1iZXJzIChmbG93ZXIgY2hhcmFjdGVyaXN0aWNzKSwgeW91IG11c3QgY2hhbmdlIGl0IHRvIGJlIGNvbXBhdGlibGUuKiqUaAddlGpTAwAAKYGUfZQoaAVqjwUAAGgHXZRoLoy7QnkgZGVmYXVsdCwgYSBTdHJpbmcgbWVzc2FnZSBpcyBzZW50IHRvIGRyeXJ1biwgYnV0IGJlY2F1c2UgdGhlIElyaXMgQ2xhc3NpZmljYXRpb24gbWVzc2FnZSBzaG91bGQgYmUgYSBsaXN0IG9mIGZvdXIgbnVtYmVycyAoZmxvd2VyIGNoYXJhY3RlcmlzdGljcyksIHlvdSBtdXN0IGNoYW5nZSBpdCB0byBiZSBjb21wYXRpYmxlLpSFlIGUfZQoaAVoBmgfapEFAAB1YmFoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UdWgdalIDAABoH2qNBQAAdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlHVoHWg5aCBoIWgeS8loH2puBQAAaAFoA3ViaDopgZR9lChoBYx3KipJbiBvcmRlciB0byBkbyB0aGlzLCBhY2Nlc3MgdGhlIGVuZ2luZS5tZXNzYWdlcyBmaWxlIGluc2lkZSB0aGUgZm9sZGVyKiogOnJlZDpgLi4vbWFydmluL2lyaXMtY2xhc3NpZmljYXRpb24tZW5naW5lL2CUaAddlChqUwMAACmBlH2UKGgFjEoqKkluIG9yZGVyIHRvIGRvIHRoaXMsIGFjY2VzcyB0aGUgZW5naW5lLm1lc3NhZ2VzIGZpbGUgaW5zaWRlIHRoZSBmb2xkZXIqKpRoB12UaC6MRkluIG9yZGVyIHRvIGRvIHRoaXMsIGFjY2VzcyB0aGUgZW5naW5lLm1lc3NhZ2VzIGZpbGUgaW5zaWRlIHRoZSBmb2xkZXKUhZSBlH2UKGgFaAZoH2qoBQAAdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlHVoHWpSAwAAaB9qpAUAAHViaC6MASCUhZSBlH2UKGgFamYDAABoH2qkBQAAaAFoA2ggTmgeTnViasMBAAApgZR9lChoBYwsOnJlZDpgLi4vbWFydmluL2lyaXMtY2xhc3NpZmljYXRpb24tZW5naW5lL2CUaAddlGgujCUuLi9tYXJ2aW4vaXJpcy1jbGFzc2lmaWNhdGlvbi1lbmdpbmUvlIWUgZR9lChoBWgGaB9qugUAAHViYWgPfZQoaBFdlGgTXZRqWgIAAGFoFV2UaBddlGgZXZR1aB1qwgEAAGgfaqQFAAB1YmVoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UdWgdaDloIGghaB5Ly2gfam4FAABoAWgDdWJoOimBlH2UKGgFjCtUaGUgZGVmYXVsdCBtZXNzYWdlIHNob3VsZCBsb29rIGxpa2UgdGhpczo6lGgHXZRoLowqVGhlIGRlZmF1bHQgbWVzc2FnZSBzaG91bGQgbG9vayBsaWtlIHRoaXM6lIWUgZR9lChoBYwqVGhlIGRlZmF1bHQgbWVzc2FnZSBzaG91bGQgbG9vayBsaWtlIHRoaXM6lGgfas4FAABoAWgDaCBOaB5OdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlHVoHWg5aCBoIWgeS81oH2puBQAAaAFoA3ViaGQpgZR9lChoBYwtW3sKICAgICJtc2cxIjogIkhlbGxvIGZyb20gbWFydmluIGVuZ2luZSEiCn1dlGgHXZRoLowtW3sKICAgICJtc2cxIjogIkhlbGxvIGZyb20gbWFydmluIGVuZ2luZSEiCn1dlIWUgZR9lChoBWgGaB9q3QUAAHViYWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZRoc2h0dWgdaGNoHkvPaB9qbgUAAGgBaANoIGghdWJoOimBlH2UKGgFjD1EZWxldGUgdGhlIG9yaWdpbmFsIGNvbnRlbnQgYW5kIGlucHV0IHRoZSBmb2xsb3dpbmcgbWVzc2FnZTo6lGgHXZRoLow8RGVsZXRlIHRoZSBvcmlnaW5hbCBjb250ZW50IGFuZCBpbnB1dCB0aGUgZm9sbG93aW5nIG1lc3NhZ2U6lIWUgZR9lChoBYw8RGVsZXRlIHRoZSBvcmlnaW5hbCBjb250ZW50IGFuZCBpbnB1dCB0aGUgZm9sbG93aW5nIG1lc3NhZ2U6lGgfausFAABoAWgDaCBOaB5OdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlHVoHWg5aCBoIWgeS9NoH2puBQAAaAFoA3ViaGQpgZR9lChoBYwLW1sxLDIsMyw0XV2UaAddlGgujAtbWzEsMiwzLDRdXZSFlIGUfZQoaAVoBmgfavoFAAB1YmFoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UaHNodHVoHWhjaB5L1Wgfam4FAABoAWgDaCBoIXViaDopgZR9lChoBYxdTm93IGl0IGlzIHBvc3NpYmxlIHRvIHBlcmZvcm0gZHJ5cnVuIGNvcnJlY3RseS4gQXQgdGhlIHRlcm1pbmFsLCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDo6lGgHXZRoLoxcTm93IGl0IGlzIHBvc3NpYmxlIHRvIHBlcmZvcm0gZHJ5cnVuIGNvcnJlY3RseS4gQXQgdGhlIHRlcm1pbmFsLCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDqUhZSBlH2UKGgFjFxOb3cgaXQgaXMgcG9zc2libGUgdG8gcGVyZm9ybSBkcnlydW4gY29ycmVjdGx5LiBBdCB0aGUgdGVybWluYWwsIHR5cGUgdGhlIGZvbGxvd2luZyBjb21tYW5kOpRoH2oIBgAAaAFoA2ggTmgeTnViYWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZR1aB1oOWggaCFoHkvXaB9qbgUAAGgBaAN1YmhkKYGUfZQoaAWMFiQgbWFydmluIGVuZ2luZS1kcnlydW6UaAddlGgujBYkIG1hcnZpbiBlbmdpbmUtZHJ5cnVulIWUgZR9lChoBWgGaB9qFwYAAHViYWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZRoc2h0dWgdaGNoHkvZaB9qbgUAAGgBaANoIGghdWJlaA99lChoEV2UjBJydW5uaW5nLXRoZS1kcnlydW6UYWgTXZRoFV2UjBJydW5uaW5nIHRoZSBkcnlydW6UYWgXXZRoGV2UdWgdaCJoH2oWAQAAaAFoA2ggaCFoHkvFdWJoIymBlH2UKGgFaAZoB12UKGgoKYGUfZQoaAWMC0h0dHAgU2VydmVylGgHXZRoLowLSHR0cCBTZXJ2ZXKUhZSBlH2UKGgFajIGAABoH2owBgAAaAFoA2ggTmgeTnViYWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZR1aB1oJ2gfai0GAABoAWgDaCBoIWgeS911Ymg6KYGUfZQoaAWMeUFmdGVyIGV4ZWN1dGluZyBkcnlydW4gd2l0aG91dCBhbnkgZXJyb3IgcmFpc2VkLCBpdOKAmXMgcG9zc2libGUgdG8gZ2VuZXJhdGUgdGhlIHByb2plY3QgQVBJLiBVc2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOjqUaAddlGgujHhBZnRlciBleGVjdXRpbmcgZHJ5cnVuIHdpdGhvdXQgYW55IGVycm9yIHJhaXNlZCwgaXTigJlzIHBvc3NpYmxlIHRvIGdlbmVyYXRlIHRoZSBwcm9qZWN0IEFQSS4gVXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDqUhZSBlH2UKGgFjHhBZnRlciBleGVjdXRpbmcgZHJ5cnVuIHdpdGhvdXQgYW55IGVycm9yIHJhaXNlZCwgaXTigJlzIHBvc3NpYmxlIHRvIGdlbmVyYXRlIHRoZSBwcm9qZWN0IEFQSS4gVXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDqUaB9qPgYAAGgBaANoIE5oHk51YmFoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UdWgdaDloIGghaB5L32gfai0GAABoAWgDdWJoZCmBlH2UKGgFjBokIG1hcnZpbiBlbmdpbmUtaHR0cHNlcnZlcpRoB12UaC6MGiQgbWFydmluIGVuZ2luZS1odHRwc2VydmVylIWUgZR9lChoBWgGaB9qTQYAAHViYWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZRoc2h0dWgdaGNoHkvhaB9qLQYAAGgBaANoIGghdWJoOimBlH2UKGgFjFNUaGUgc2VydmVyIGlzIGFjY2Vzc2VkIGJ5IHRoZSBicm93c2VyIHVzaW5nIHRoZSBhZGRyZXNzIDpyZWQ6YGxvY2FsaG9zdDo4MDAwL2RvY3NgLpRoB12UKGgujDhUaGUgc2VydmVyIGlzIGFjY2Vzc2VkIGJ5IHRoZSBicm93c2VyIHVzaW5nIHRoZSBhZGRyZXNzIJSFlIGUfZQoaAWMOFRoZSBzZXJ2ZXIgaXMgYWNjZXNzZWQgYnkgdGhlIGJyb3dzZXIgdXNpbmcgdGhlIGFkZHJlc3MglGgfalsGAABoAWgDaCBOaB5OdWJqwwEAACmBlH2UKGgFjBo6cmVkOmBsb2NhbGhvc3Q6ODAwMC9kb2NzYJRoB12UaC6ME2xvY2FsaG9zdDo4MDAwL2RvY3OUhZSBlH2UKGgFaAZoH2pkBgAAdWJhaA99lChoEV2UaBNdlGpaAgAAYWgVXZRoF12UaBldlHVoHWrCAQAAaB9qWwYAAHViaC6MAS6UhZSBlH2UKGgFaIVoH2pbBgAAaAFoA2ggTmgeTnViZWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZR1aB1oOWggaCFoHkvjaB9qLQYAAGgBaAN1Ymg6KYGUfZQoaAWMilRvIHRlc3QgdGhlIEFQSSwgZ28gdG8gKlByZWRpY3RvciosIGNsaWNrIGluICpQb3N0KiwgdGhlbiBpbiAqVHJ5IGl0IG91dCosIGVudGVyIHRoZSBtZXNzYWdlIGFuZCBjbGljayBvbiAqRXhlY3V0ZSogYXMgaW4gdGhlIGltYWdlIGJlbG93LpRoB12UKGgujBdUbyB0ZXN0IHRoZSBBUEksIGdvIHRvIJSFlIGUfZQoaAWMF1RvIHRlc3QgdGhlIEFQSSwgZ28gdG8glGgfanwGAABoAWgDaCBOaB5OdWJqrAMAACmBlH2UKGgFjAsqUHJlZGljdG9yKpRoB12UaC6MCVByZWRpY3RvcpSFlIGUfZQoaAVoBmgfaoUGAAB1YmFoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UdWgdaqsDAABoH2p8BgAAdWJoLowLLCBjbGljayBpbiCUhZSBlH2UKGgFjAssIGNsaWNrIGluIJRoH2p8BgAAaAFoA2ggTmgeTnViaqwDAAApgZR9lChoBYwGKlBvc3QqlGgHXZRoLowEUG9zdJSFlIGUfZQoaAVoBmgfapgGAAB1YmFoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UdWgdaqsDAABoH2p8BgAAdWJoLowKLCB0aGVuIGluIJSFlIGUfZQoaAWMCiwgdGhlbiBpbiCUaB9qfAYAAGgBaANoIE5oHk51YmqsAwAAKYGUfZQoaAWMDCpUcnkgaXQgb3V0KpRoB12UaC6MClRyeSBpdCBvdXSUhZSBlH2UKGgFaAZoH2qrBgAAdWJhaA99lChoEV2UaBNdlGgVXZRoF12UaBldlHVoHWqrAwAAaB9qfAYAAHViaC6MISwgZW50ZXIgdGhlIG1lc3NhZ2UgYW5kIGNsaWNrIG9uIJSFlIGUfZQoaAWMISwgZW50ZXIgdGhlIG1lc3NhZ2UgYW5kIGNsaWNrIG9uIJRoH2p8BgAAaAFoA2ggTmgeTnViaqwDAAApgZR9lChoBYwJKkV4ZWN1dGUqlGgHXZRoLowHRXhlY3V0ZZSFlIGUfZQoaAVoBmgfar4GAAB1YmFoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UdWgdaqsDAABoH2p8BgAAdWJoLowXIGFzIGluIHRoZSBpbWFnZSBiZWxvdy6UhZSBlH2UKGgFjBcgYXMgaW4gdGhlIGltYWdlIGJlbG93LpRoH2p8BgAAaAFoA2ggTmgeTnViZWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZR1aB1oOWggaCFoHkvlaB9qLQYAAGgBaAN1Ymr8AQAAKYGUfZQoaAWMIy4uIGltYWdlOjogLi4vaW1hZ2VzL3ByZWRpY3Rvci5wbmcKlGgHXZRoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UjAN1cmmUjB1wYWdlcy8uLi9pbWFnZXMvcHJlZGljdG9yLnBuZ5RqCQIAAH2UapgBAABq4gYAAHN1aB1q+wEAAGgfai0GAABoAWgDaCBoIWgeS+h1Ymg6KYGUfZQoaAWMH1Rlc3QgbWVzc2FnZSBmb3IgdGhpcyBleGFtcGxlOjqUaAddlGgujB5UZXN0IG1lc3NhZ2UgZm9yIHRoaXMgZXhhbXBsZTqUhZSBlH2UKGgFjB5UZXN0IG1lc3NhZ2UgZm9yIHRoaXMgZXhhbXBsZTqUaB9q5AYAAGgBaANoIE5oHk51YmFoD32UKGgRXZRoE12UaBVdlGgXXZRoGV2UdWgdaDloIGghaB5L6Wgfai0GAABoAWgDdWJoZCmBlH2UKGgFjCl7Im1lc3NhZ2UiOiBbIjQuOCIsICIzLjQiLCAiMS45IiwgIjAuMiJdfZRoB12UaC6MKXsibWVzc2FnZSI6IFsiNC44IiwgIjMuNCIsICIxLjkiLCAiMC4yIl19lIWUgZR9lChoBWgGaB9q8wYAAHViYWgPfZQoaBFdlGgTXZRoFV2UaBddlGgZXZRoc2h0dWgdaGNoHkvraB9qLQYAAGgBaANoIGghdWJlaA99lChoEV2UjAtodHRwLXNlcnZlcpRhaBNdlGgVXZSMC2h0dHAgc2VydmVylGFoF12UaBldlHVoHWgiaB9qFgEAAGgBaANoIGghaB5L3XViZWgPfZQoaBFdlIw0Y3JlYXRpbmctYS1pcmlzLWZsb3dlci1jbGFzc2lmaWNhdGlvbi1lbmdpbmUtZXhhbXBsZZRhaBNdlGgVXZSMNGNyZWF0aW5nIGEgaXJpcyBmbG93ZXIgY2xhc3NpZmljYXRpb24gZW5naW5lIGV4YW1wbGWUYWgXXZRoGV2UdWgdaCJoH2gkaAFoA2ggaCFoHkskdWJlaA99lChoEV2UKIwVY3JlYXRpbmctYS1uZXctZW5naW5llGgcZWgTXZRoFV2UKIwVY3JlYXRpbmcgYSBuZXcgZW5naW5llIwGY3JlYXRllGVoF12UaBldlHVoHWgiaB9oA2gBaANoIGghaB5LBYwZZXhwZWN0X3JlZmVyZW5jZWRfYnlfbmFtZZR9lGoXBwAAaAtzjBdleHBlY3RfcmVmZXJlbmNlZF9ieV9pZJR9lGgcaAtzdWJlaA99lChoEV2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllGghdWgdaAGMDmN1cnJlbnRfc291cmNllE6MDGN1cnJlbnRfbGluZZROjAhzZXR0aW5nc5SMEWRvY3V0aWxzLmZyb250ZW5klIwGVmFsdWVzlJOUKYGUfZQoaCdOjAlnZW5lcmF0b3KUTowJZGF0ZXN0YW1wlE6MC3NvdXJjZV9saW5rlE6MCnNvdXJjZV91cmyUTowNdG9jX2JhY2tsaW5rc5SMBWVudHJ5lIwSZm9vdG5vdGVfYmFja2xpbmtzlEsBjA1zZWN0bnVtX3hmb3JtlEsBjA5zdHJpcF9jb21tZW50c5ROjBtzdHJpcF9lbGVtZW50c193aXRoX2NsYXNzZXOUTowNc3RyaXBfY2xhc3Nlc5ROjAxyZXBvcnRfbGV2ZWyUSwKMCmhhbHRfbGV2ZWyUSwWMEWV4aXRfc3RhdHVzX2xldmVslEsFjAVkZWJ1Z5ROjA53YXJuaW5nX3N0cmVhbZROjAl0cmFjZWJhY2uUiIwOaW5wdXRfZW5jb2RpbmeUjAl1dGYtOC1zaWeUjBxpbnB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwGc3RyaWN0lIwPb3V0cHV0X2VuY29kaW5nlIwFdXRmLTiUjB1vdXRwdXRfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpRqQQcAAIwOZXJyb3JfZW5jb2RpbmeUjAVVVEYtOJSMHGVycm9yX2VuY29kaW5nX2Vycm9yX2hhbmRsZXKUjBBiYWNrc2xhc2hyZXBsYWNllIwNbGFuZ3VhZ2VfY29kZZSMAmVulIwTcmVjb3JkX2RlcGVuZGVuY2llc5ROjAZjb25maWeUTowJaWRfcHJlZml4lGgGjA5hdXRvX2lkX3ByZWZpeJSMAmlklIwNZHVtcF9zZXR0aW5nc5ROjA5kdW1wX2ludGVybmFsc5ROjA9kdW1wX3RyYW5zZm9ybXOUTowPZHVtcF9wc2V1ZG9feG1slE6MEGV4cG9zZV9pbnRlcm5hbHOUTowOc3RyaWN0X3Zpc2l0b3KUTowPX2Rpc2FibGVfY29uZmlnlE6MB19zb3VyY2WUaCGMDF9kZXN0aW5hdGlvbpROjA1fY29uZmlnX2ZpbGVzlF2UjA5wZXBfcmVmZXJlbmNlc5ROjAxwZXBfYmFzZV91cmyUjCBodHRwczovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL5SMFXBlcF9maWxlX3VybF90ZW1wbGF0ZZSMCHBlcC0lMDRklIwOcmZjX3JlZmVyZW5jZXOUTowMcmZjX2Jhc2VfdXJslIwcaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL5SMCXRhYl93aWR0aJRLCIwddHJpbV9mb290bm90ZV9yZWZlcmVuY2Vfc3BhY2WUiYwWZmlsZV9pbnNlcnRpb25fZW5hYmxlZJSIjAtyYXdfZW5hYmxlZJRLAYwQc3ludGF4X2hpZ2hsaWdodJSMBGxvbmeUjAxzbWFydF9xdW90ZXOUiIwTc21hcnRxdW90ZXNfbG9jYWxlc5RdlIwdY2hhcmFjdGVyX2xldmVsX2lubGluZV9tYXJrdXCUiYwOZG9jdGl0bGVfeGZvcm2UiYwNZG9jaW5mb194Zm9ybZRLAYwSc2VjdHN1YnRpdGxlX3hmb3JtlImMEGVtYmVkX3N0eWxlc2hlZXSUiYwVY2xvYWtfZW1haWxfYWRkcmVzc2VzlIiMA2VudpROdWKMCHJlcG9ydGVylE6MEGluZGlyZWN0X3RhcmdldHOU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