
--=-sinamail_alt_7a0e4b1d0545b8fbf1709c3d5daa23b9 Content-Type: text/plain; charset=GBK Content-Transfer-Encoding: base64 Content-Disposition: inline ZW5naW5lIFZNo7oxOTIuMTY4LjEyMi45MWhvc3RlZC1lbmdpbmUxIDogMTkyLjE2OC4xMjIuNjZo b3N0ZWQtZW5naW5lMiA6IDE5Mi4xNjguMTIyLjIyMwpJIGNhbiBub3QgdmlzaXQgd2ViIFVJLCBi dXQgbXkgZW5naW5lIFZNIGlzIHJ1biwgaSBjYW4gbG9naW4gaXQuICBlbmdpbmUgaGFzIHNvbWUg ZXJyb3IgCiAyMDE4LTA0LTI1IDE4OjM1OjAzLDQwMSswOCBJTkZPCiBbb3JnLm92aXJ0LnZkc20u anNvbnJwYy5jbGllbnQucmVhY3RvcnMuUmVhY3RvckNsaWVudF0gKFNTTCBTdG9tcCBSZWFjdG9y KQogW10gQ29ubmVjdGluZyB0byBob3N0ZWQtZW5naW5lMS8xOTIuMTY4LjEyMi42NgogMjAxOC0w NC0yNSAxODozNTowNiw0MTErMDggRVJST1IKIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudmRzYnJv a2VyLnZkc2Jyb2tlci5HZXRBbGxWbVN0YXRzVkRTQ29tbWFuZF0KIChFRS1NYW5hZ2VkVGhyZWFk RmFjdG9yeS1lbmdpbmVTY2hlZHVsZWQtVGhyZWFkLTIpIFtdIENvbW1hbmQKICdHZXRBbGxWbVN0 YXRzVkRTQ29tbWFuZChIb3N0TmFtZSA9IGhvc3RlZC1lbmdpbmUxLAogVmRzSWRWRFNDb21tYW5k UGFyYW1ldGVyc0Jhc2U6e2hvc3RJZD0nMWI1Zjc5OWEtMTI1ZC00ZjRlLThhZWYtY2IyZWNkZDYz MTM2J30pJwogZXhlY3V0aW9uIGZhaWxlZDogamF2YS5uZXQuTm9Sb3V0ZVRvSG9zdEV4Y2VwdGlv bjogTm8gcm91dGUgdG8gaG9zdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1bcm9vdEBob3N0ZWQtZW5n aW5lMiB+XSMgaG9zdGVkLWVuZ2luZSAtLWNoZWNrLWxpdmVsaW5lc3NIb3N0ZWQgRW5naW5lIGlz IG5vdCB1cCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVtyb290QGhvc3RlZC1lbmdpbmUyIH5dIyBj dXJsIGh0dHA6Ly9ob3N0ZWQtZW5naW5lLm92aXJ0LmNvbS9vdmlydC1lbmdpbmUvc2VydmljZXMv aGVhbHRoPGh0bWw+PGhlYWQ+PHRpdGxlPkVycm9yPC90aXRsZT48L2hlYWQ+PGJvZHk+NDA0IC0g Tm90IEZvdW5kPC9ib2R5PjwvaHRtbD4KTm90ZaO6IHRoaXMgY29tbWFuZCBpcyBibG9ja2VkICxp dCB0YWtlcyA1IG1pbnV0ZXMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT0gSG9zdCAxIHN0YXR1 cyA9PS0tCmNvbmZfb25fc2hhcmVkX3N0b3JhZ2UgICAgICAgICAgICAgOiBUcnVlU3RhdHVzIHVw LXRvLWRhdGUgICAgICAgICAgICAgICAgICA6IEZhbHNlSG9zdG5hbWUgICAgICAgICAgICAgICAg ICAgICAgICAgICA6IGhvc3RlZC1lbmdpbmUxSG9zdCBJRCAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6IDFFbmdpbmUgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgIDogdW5rbm93biBzdGFs ZS1kYXRhU2NvcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDM0MDBzdG9wcGVkICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogRmFsc2VMb2NhbCBtYWludGVuYW5jZSAgICAgICAg ICAgICAgICAgIDogRmFsc2VjcmMzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMWVh ZTg5Njhsb2NhbF9jb25mX3RpbWVzdGFtcCAgICAgICAgICAgICAgIDogNDg5MDdIb3N0IHRpbWVz dGFtcCAgICAgICAgICAgICAgICAgICAgIDogNDg5MDdFeHRyYSBtZXRhZGF0YSAodmFsaWQgYXQg dGltZXN0YW1wKToJbWV0YWRhdGFfcGFyc2VfdmVyc2lvbj0xCW1ldGFkYXRhX2ZlYXR1cmVfdmVy c2lvbj0xCXRpbWVzdGFtcD00ODkwNyAoVGh1IEFwciAyNiAwMTo1NzoxNCAyMDE4KQlob3N0LWlk PTEJc2NvcmU9MzQwMAl2bV9jb25mX3JlZnJlc2hfdGltZT00ODkwNyAoVGh1IEFwciAyNiAwMTo1 NzoxNSAyMDE4KQljb25mX29uX3NoYXJlZF9zdG9yYWdlPVRydWUJbWFpbnRlbmFuY2U9RmFsc2UJ c3RhdGU9RW5naW5lVXAJc3RvcHBlZD1GYWxzZQoKLS09PSBIb3N0IDIgc3RhdHVzID09LS0KY29u Zl9vbl9zaGFyZWRfc3RvcmFnZSAgICAgICAgICAgICA6IFRydWVTdGF0dXMgdXAtdG8tZGF0ZSAg ICAgICAgICAgICAgICAgIDogVHJ1ZUhvc3RuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAg OiBob3N0ZWQtZW5naW5lMkhvc3QgSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAyRW5n aW5lIHN0YXR1cyAgICAgICAgICAgICAgICAgICAgICA6IHsicmVhc29uIjogImZhaWxlZCBsaXZl bGluZXNzIGNoZWNrIiwgImhlYWx0aCI6ICJiYWQiLCAidm0iOiAidXAiLCAiZGV0YWlsIjogIlVw In1TY29yZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMzAwMHN0b3BwZWQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOiBGYWxzZUxvY2FsIG1haW50ZW5hbmNlICAgICAgICAgICAg ICAgICAgOiBGYWxzZWNyYzMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAxYjkyNzU2 ZGxvY2FsX2NvbmZfdGltZXN0YW1wICAgICAgICAgICAgICAgOiA0NDA1N0hvc3QgdGltZXN0YW1w ICAgICAgICAgICAgICAgICAgICAgOiA0NDA1N0V4dHJhIG1ldGFkYXRhICh2YWxpZCBhdCB0aW1l c3RhbXApOgltZXRhZGF0YV9wYXJzZV92ZXJzaW9uPTEJbWV0YWRhdGFfZmVhdHVyZV92ZXJzaW9u PTEJdGltZXN0YW1wPTQ0MDU3IChUaHUgQXByIDI2IDAyOjAwOjU3IDIwMTgpCWhvc3QtaWQ9Mglz Y29yZT0zMDAwCXZtX2NvbmZfcmVmcmVzaF90aW1lPTQ0MDU3IChUaHUgQXByIDI2IDAyOjAwOjU3 IDIwMTgpCWNvbmZfb25fc2hhcmVkX3N0b3JhZ2U9VHJ1ZQltYWludGVuYW5jZT1GYWxzZQlzdGF0 ZT1FbmdpbmVTdGFydGluZwlzdG9wcGVkPUZhbHNlCgoKCgoKLS0tLS0gT3JpZ2luYWwgTWVzc2Fn ZSAtLS0tLW92aXJ0CkZyb206IE1hcnRpbiBTaXZhayA8bXNpdmFrQHJlZGhhdC5jb20+ClRvOiBk aHkzMzYgPGRoeTMzNkBzaW5hLmNvbT4KQ2M6IHVzZXJzIDx1c2Vyc0BvdmlydC5vcmc+ClN1Ympl Y3Q6IFJlOiBSZTogW292aXJ0LXVzZXJzXSC72Li0o7pSZTogSG9zdGVkLWVuZ2luZSBjYW4gbm90 X3N3aXRjaApEYXRlOiAyMDE4LTA0LTI1IDIwOjQxCgoKPiAyMDE4LTA0LTI1IDE4OjM1OjA2LDQx MSswOCBFUlJPUgo+IFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudmRzYnJva2VyLnZkc2Jyb2tlci5H ZXRBbGxWbVN0YXRzVkRTQ29tbWFuZF0KPiAoRUUtTWFuYWdlZFRocmVhZEZhY3RvcnktZW5naW5l U2NoZWR1bGVkLVRocmVhZC0yKSBbXSBDb21tYW5kCj4gJ0dldEFsbFZtU3RhdHNWRFNDb21tYW5k KEhvc3ROYW1lID0gaG9zdGVkLWVuZ2luZTEsCj4gVmRzSWRWRFNDb21tYW5kUGFyYW1ldGVyc0Jh c2U6e2hvc3RJZD0nMWI1Zjc5OWEtMTI1ZC00ZjRlLThhZWYtY2IyZWNkZDYzMTM2J30pJwo+IGV4 ZWN1dGlvbiBmYWlsZWQ6IGphdmEubmV0Lk5vUm91dGVUb0hvc3RFeGNlcHRpb246IE5vIHJvdXRl IHRvIGhvc3QKVGhpcyBpcyBleHBlY3RlZCBhbmQgbm9ybWFsLiBUaGUgb3ZpcnQtZW5naW5lIHNl cnZpY2UgaXMgdHJ5aW5nIHRvCmZpbmQgb3V0IHdoZXRoZXIgaG9zdCBBIGlzIHN0aWxsIHVucmVh Y2hhYmxlIG9yIG5vdC4gVGhpcyBpcyBub3QgdGhlCmlzc3VlIHlvdSBhcmUgbG9va2luZyBmb3Iu Cj4gMTkyLjE2OC4xMjIuNjYgaGFzIGJlZW4gcG93ZXJlZCBvZmYsIGFuZCBob3N0ZWQgZW5naW5l IFZNIHJ1biBpbgo+IDE5Mi4xNjguMTIyLjIyMywgSSB0aGluayBlbmdpbmUgc2hvdWxkIGNvbm5l Y3QgdG8gMTkyLjE2OC4xMjIuMjIzLApZb3UgYXJlIG1peGluZyB0aGUgSVAgb2YgdGhlIGVuZ2lu ZSBWTSBhbmQgdGhlIElQIG9mIGEgaG9zdC4gVGhlCmVuZ2luZSBydW5zIGluIFZNIHdpdGggc3Rh YmxlIC4xMjIuMjIzIChpbmRlcGVuZGVudCBvbiB3aGljaCBob3N0IHRoZQpWTSBydW5zIGF0KSBh bmQgbWFuYWdlcyB0d28gaG9zdHMgLjEyMi42NSBhbmQgLjEyMi42Ni4gVGhlIGVuZ2luZQpjb25z dGFudGx5IG1vbml0b3JzIGFsbCBpdHMgaG9zdHMgYW5kIHRoYXQgbWVhbnMgaXQgaXMgdHJ5aW5n IHRvCmNvbm5lY3QgdG8gdGhlbSBldmVyeSBub3cgYW5kIHRoZW4uClBsZWFzZSBleGVjdXRlIHRo ZSB0d28gZm9sbG93aW5nIGNvbW1hbmRzIG9uIEhvc3QgQiBhbmQgc2hvdyB1cyB0aGUKcmVzdWx0 cyAodXNlIHRoZSBwcm9wZXIgZnFkbik6CiQoaG9zdGVkLWVuZ2luZSAtLWNoZWNrLWxpdmVsaW5l c3MpCiQoY3VybCBodHRwOi8ve2ZxZG59L292aXJ0LWVuZ2luZS9zZXJ2aWNlcy9oZWFsdGgpCkJl c3QgcmVnYXJkcwpNYXJ0aW4gU2l2YWsKT24gV2VkLCBBcHIgMjUsIDIwMTggYXQgMjozNCBQTSwg IDxkaHkzMzZAc2luYS5jb20+IHdyb3RlOgo+IEkgIGxvZ2luIGluIGVuZ2luZSBWTSBieSAoI2hv c3RlZC1lbmdpbmUgLS1jb25zb2xlKSAsIEkgZmluZCBvdmlydC1lbmdpbmUKPiBwcm9jZXNzLiBh bmQgSSBmaW5kIHNvbWUgZXJyb3IgaW4gL3Zhci9sb2cvb3ZpcnQtZW5naW5lL2VuZ2luZS5sb2cK Pgo+IDE5Mi4xNjguMTIyLjY2IGhhcyBiZWVuIHBvd2VyZWQgb2ZmLCBhbmQgaG9zdGVkIGVuZ2lu ZSBWTSBydW4gaW4KPiAxOTIuMTY4LjEyMi4yMjMsIEkgdGhpbmsgZW5naW5lIHNob3VsZCBjb25u ZWN0IHRvIDE5Mi4xNjguMTIyLjIyMywKPgo+Cj4gMjAxOC0wNC0yNSAxODozNTowMyw0MDErMDgg SU5GTwo+IFtvcmcub3ZpcnQudmRzbS5qc29ucnBjLmNsaWVudC5yZWFjdG9ycy5SZWFjdG9yQ2xp ZW50XSAoU1NMIFN0b21wIFJlYWN0b3IpCj4gW10gQ29ubmVjdGluZyB0byBob3N0ZWQtZW5naW5l MS8xOTIuMTY4LjEyMi42Ngo+IDIwMTgtMDQtMjUgMTg6MzU6MDYsNDExKzA4IEVSUk9SCj4gW29y Zy5vdmlydC5lbmdpbmUuY29yZS52ZHNicm9rZXIudmRzYnJva2VyLkdldEFsbFZtU3RhdHNWRFND b21tYW5kXQo+IChFRS1NYW5hZ2VkVGhyZWFkRmFjdG9yeS1lbmdpbmVTY2hlZHVsZWQtVGhyZWFk LTIpIFtdIENvbW1hbmQKPiAnR2V0QWxsVm1TdGF0c1ZEU0NvbW1hbmQoSG9zdE5hbWUgPSBob3N0 ZWQtZW5naW5lMSwKPiBWZHNJZFZEU0NvbW1hbmRQYXJhbWV0ZXJzQmFzZTp7aG9zdElkPScxYjVm Nzk5YS0xMjVkLTRmNGUtOGFlZi1jYjJlY2RkNjMxMzYnfSknCj4gZXhlY3V0aW9uIGZhaWxlZDog amF2YS5uZXQuTm9Sb3V0ZVRvSG9zdEV4Y2VwdGlvbjogTm8gcm91dGUgdG8gaG9zdAo+IDIwMTgt MDQtMjUgMTg6MzU6MDYsNDExKzA4IElORk8KPiBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnZkc2Jy b2tlci5tb25pdG9yaW5nLlBvbGxWbVN0YXRzUmVmcmVzaGVyXQo+IChFRS1NYW5hZ2VkVGhyZWFk RmFjdG9yeS1lbmdpbmVTY2hlZHVsZWQtVGhyZWFkLTIpIFtdIEZhaWxlZCB0byBmZXRjaCB2bXMK PiBpbmZvIGZvciBob3N0ICdob3N0ZWQtZW5naW5lMScgLSBza2lwcGluZyBWTXMgbW9uaXRvcmlu Zy4KPiAyMDE4LTA0LTI1IDE4OjM1OjIxLDQyMCswOCBJTkZPCj4gW29yZy5vdmlydC52ZHNtLmpz b25ycGMuY2xpZW50LnJlYWN0b3JzLlJlYWN0b3JDbGllbnRdIChTU0wgU3RvbXAgUmVhY3RvcikK PiBbXSBDb25uZWN0aW5nIHRvIGhvc3RlZC1lbmdpbmUxLzE5Mi4xNjguMTIyLjY2Cj4gMjAxOC0w NC0yNSAxODozNToyNCw0MzArMDggRVJST1IKPiBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnZkc2Jy b2tlci52ZHNicm9rZXIuR2V0QWxsVm1TdGF0c1ZEU0NvbW1hbmRdCj4gKEVFLU1hbmFnZWRUaHJl YWRGYWN0b3J5LWVuZ2luZVNjaGVkdWxlZC1UaHJlYWQtMSkgW10gQ29tbWFuZAo+ICdHZXRBbGxW bVN0YXRzVkRTQ29tbWFuZChIb3N0TmFtZSA9IGhvc3RlZC1lbmdpbmUxLAo+IFZkc0lkVkRTQ29t bWFuZFBhcmFtZXRlcnNCYXNlOntob3N0SWQ9JzFiNWY3OTlhLTEyNWQtNGY0ZS04YWVmLWNiMmVj ZGQ2MzEzNid9KScKPiBleGVjdXRpb24gZmFpbGVkOiBqYXZhLm5ldC5Ob1JvdXRlVG9Ib3N0RXhj ZXB0aW9uOiBObyByb3V0ZSB0byBob3N0Cj4gMjAxOC0wNC0yNSAxODozNToyNCw0MzErMDggSU5G Two+IFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudmRzYnJva2VyLm1vbml0b3JpbmcuUG9sbFZtU3Rh dHNSZWZyZXNoZXJdCj4gKEVFLU1hbmFnZWRUaHJlYWRGYWN0b3J5LWVuZ2luZVNjaGVkdWxlZC1U aHJlYWQtMSkgW10gRmFpbGVkIHRvIGZldGNoIHZtcwo+IGluZm8gZm9yIGhvc3QgJ2hvc3RlZC1l bmdpbmUxJyAtIHNraXBwaW5nIFZNcyBtb25pdG9yaW5nLgo+IDIwMTgtMDQtMjUgMTg6MzU6Mzks NDM4KzA4IElORk8KPiBbb3JnLm92aXJ0LnZkc20uanNvbnJwYy5jbGllbnQucmVhY3RvcnMuUmVh Y3RvckNsaWVudF0gKFNTTCBTdG9tcCBSZWFjdG9yKQo+IFtdIENvbm5lY3RpbmcgdG8gaG9zdGVk LWVuZ2luZTEvMTkyLjE2OC4xMjIuNjYKPgo+Cj4KPiAtLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0t LS0tCj4gRnJvbTogTWFydGluIFNpdmFrIDxtc2l2YWtAcmVkaGF0LmNvbT4KPiBUbzogZGh5MzM2 IDxkaHkzMzZAc2luYS5jb20+Cj4gQ2M6IHVzZXJzIDx1c2Vyc0BvdmlydC5vcmc+Cj4gU3ViamVj dDogUmU6IFtvdmlydC11c2Vyc10gu9i4tKO6UmU6IEhvc3RlZC1lbmdpbmUgY2FuIG5vdF9zd2l0 Y2gKPiBEYXRlOiAyMDE4LTA0LTI1IDIwOjI3Cj4KPgo+IFRoZSBlbmdpbmUgd2lsbCB0cnkgY29u bmVjdGluZyB0byBhbGwgcmVnaXN0ZXJlZCBob3N0cyBhbGwgdGhlIHRpbWUuCj4gVGhhdCBpcyBu b3JtYWwuCj4gSWYgeW91ciBob3N0IGNhbiByZWFjaCB0aGUgZW5naW5lIHRoZW4gY2hlY2sgd2hl dGhlciBpdCBjYW4gcmVhY2gKPiBodHRwOi8ve2ZxZG59L292aXJ0LWVuZ2luZS9zZXJ2aWNlcy9o ZWFsdGggYXMgdGhhdCBpcyB3aGF0IGlzIHVzZWQgdG8KPiBtYWtlIHN1cmUgdGhlIGVuZ2luZSBp cyBhbGl2ZS4KPiBCZXN0IHJlZ2FyZHMKPiBNYXJ0aW4gU2l2YWsKPiBPbiBXZWQsIEFwciAyNSwg MjAxOCBhdCAyOjE1IFBNLCA8ZGh5MzM2QHNpbmEuY29tPiB3cm90ZToKPj4gSGkgTWFydGluLAo+ Pgo+PiB0aGFuayB5b3UgZm9yIGFuc3dlcgo+PiBteSBob3N0IGNhbiByZWFjaCB0aGUgZW5naW5l LCBJIGNvbmZ1c2Ugd2h5IGVuZ2luZSBjb25uZWN0IHRvIGFub3RoZXIgaG9zdAo+PiB3aGljaCBo YXMgYmVlbiBwb3dlciBvZmYgYnkgbWU/Cj4+Cj4+IC0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0t LS0KPj4gRnJvbTogTWFydGluIFNpdmFrIDxtc2l2YWtAcmVkaGF0LmNvbT4KPj4gVG86IGRoeTMz NiA8ZGh5MzM2QHNpbmEuY29tPiwgdXNlcnMgPHVzZXJzQG92aXJ0Lm9yZz4KPj4gU3ViamVjdDog UmU6IFJlOiBSZTogUmU6IFJlOiBSZTogW292aXJ0LXVzZXJzXSC72Li0o7pSZTogSG9zdGVkLWVu Z2luZSBjYW4KPj4gbm90X3N3aXRjaAo+PiBEYXRlOiAyMDE4LTA0LTI1IDE5OjEyCj4+Cj4+IEl0 IGlzIGFzIEkgZXhwZWN0ZWQ6Cj4+IEVuZ2luZSBzdGF0dXMgOiB7InJlYXNvbiI6ICJmYWlsZWQg bGl2ZWxpbmVzcyBjaGVjayIKPj4gVGhlIGhvc3QgY2FuJ3QgdGFsayB0byB0aGUgb3ZpcnQtZW5n aW5lIHNlcnZpY2UuIFBsZWFzZSBtYWtlIHN1cmUgdGhlCj4+IGhvc3QgY2FuIHJlYWNoIHRoZSBl bmdpbmUgZnFkbiBhcyBjb25maWd1cmVkIGluCj4+IC9ldGMvb3ZpcnQtaG9zdGVkLWVuZ2luZS9o b3N0ZWQtZW5naW5lLmNvbmYgb24gdGhlIGZxZG49IGxpbmUuCj4+IFlvdSBjYW4gY2hlY2sgaXQg bWFudWFsbHkgYnkgZXhlY3V0aW5nICQoaG9zdGVkLWVuZ2luZQo+PiAtLWNoZWNrLWxpdmVsaW5l c3MpIGZyb20gdGhlIGhvc3QuCj4+IEJlc3QgcmVnYXJkcwo+PiBNYXJ0aW4gU2l2YWsKPj4gT24g V2VkLCBBcHIgMjUsIDIwMTggYXQgMTI6NTEgUE0sIDxkaHkzMzZAc2luYS5jb20+IHdyb3RlOgo+ Pj4gSGksCj4+Pgo+Pj4gdHdvIG5vZGUgOgo+Pj4gMTkyLjE2OC4xMjIuNjYgaG9zdGVkLWVuZ2lu ZTEKPj4+IDE5Mi4xNjguMTIyLjIyMyBob3N0ZWQtZW5naW5lMgo+Pj4KPj4+IEkgcG93ZXIgb2Zm IGhvc3RlZC1lbmdpbmUxLCBzbyBJIGRvIG5vdCBhdHRhY2ggaG9zdGVkLWVuZ2luZTFgcyBsb2cs Cj4+Pgo+Pj4gW3Jvb3RAaG9zdGVkLWVuZ2luZTIgfl0jIGhvc3RlZC1lbmdpbmUgLS12bS1zdGF0 dXMKPj4+Cj4+PiAtLT09IEhvc3QgMSBzdGF0dXMgPT0tLQo+Pj4KPj4+IGNvbmZfb25fc2hhcmVk X3N0b3JhZ2UgOiBUcnVlCj4+PiBTdGF0dXMgdXAtdG8tZGF0ZSA6IEZhbHNlCj4+PiBIb3N0bmFt ZSA6IGhvc3RlZC1lbmdpbmUxCj4+PiBIb3N0IElEIDogMQo+Pj4gRW5naW5lIHN0YXR1cyA6IHVu a25vd24gc3RhbGUtZGF0YQo+Pj4gU2NvcmUgOiAzNDAwCj4+PiBzdG9wcGVkIDogRmFsc2UKPj4+ IExvY2FsIG1haW50ZW5hbmNlIDogRmFsc2UKPj4+IGNyYzMyIDogYTdhZjBhZmEKPj4+IGxvY2Fs X2NvbmZfdGltZXN0YW1wIDogMTE0ODUKPj4+IEhvc3QgdGltZXN0YW1wIDogMTE0ODUKPj4+IEV4 dHJhIG1ldGFkYXRhICh2YWxpZCBhdCB0aW1lc3RhbXApOgo+Pj4gbWV0YWRhdGFfcGFyc2VfdmVy c2lvbj0xCj4+PiBtZXRhZGF0YV9mZWF0dXJlX3ZlcnNpb249MQo+Pj4gdGltZXN0YW1wPTExNDg1 IChXZWQgQXByIDI1IDEwOjA4OjM0IDIwMTgpCj4+PiBob3N0LWlkPTEKPj4+IHNjb3JlPTM0MDAK Pj4+IHZtX2NvbmZfcmVmcmVzaF90aW1lPTExNDg1IChXZWQgQXByIDI1IDEwOjA4OjM0IDIwMTgp Cj4+PiBjb25mX29uX3NoYXJlZF9zdG9yYWdlPVRydWUKPj4+IG1haW50ZW5hbmNlPUZhbHNlCj4+ PiBzdGF0ZT1FbmdpbmVVcAo+Pj4gc3RvcHBlZD1GYWxzZQo+Pj4KPj4+Cj4+PiAtLT09IEhvc3Qg MiBzdGF0dXMgPT0tLQo+Pj4KPj4+IGNvbmZfb25fc2hhcmVkX3N0b3JhZ2UgOiBUcnVlCj4+PiBT dGF0dXMgdXAtdG8tZGF0ZSA6IFRydWUKPj4+IEhvc3RuYW1lIDogaG9zdGVkLWVuZ2luZTIKPj4+ IEhvc3QgSUQgOiAyCj4+PiBFbmdpbmUgc3RhdHVzIDogeyJyZWFzb24iOiAiZmFpbGVkIGxpdmVs aW5lc3MgY2hlY2siLAo+Pj4gImhlYWx0aCI6ICJiYWQiLCAidm0iOiAidXAiLCAiZGV0YWlsIjog IlVwIn0KPj4+IFNjb3JlIDogMzAwMAo+Pj4gc3RvcHBlZCA6IEZhbHNlCj4+PiBMb2NhbCBtYWlu dGVuYW5jZSA6IEZhbHNlCj4+PiBjcmMzMiA6IGEyZTgyODgzCj4+PiBsb2NhbF9jb25mX3RpbWVz dGFtcCA6IDYyNzgKPj4+IEhvc3QgdGltZXN0YW1wIDogNjI3OAo+Pj4gRXh0cmEgbWV0YWRhdGEg KHZhbGlkIGF0IHRpbWVzdGFtcCk6Cj4+PiBtZXRhZGF0YV9wYXJzZV92ZXJzaW9uPTEKPj4+IG1l dGFkYXRhX2ZlYXR1cmVfdmVyc2lvbj0xCj4+PiB0aW1lc3RhbXA9NjI3OCAoV2VkIEFwciAyNSAx MDozNzo0NCAyMDE4KQo+Pj4gaG9zdC1pZD0yCj4+PiBzY29yZT0zMDAwCj4+PiB2bV9jb25mX3Jl ZnJlc2hfdGltZT02Mjc4IChXZWQgQXByIDI1IDEwOjM3OjQ0IDIwMTgpCj4+PiBjb25mX29uX3No YXJlZF9zdG9yYWdlPVRydWUKPj4+IG1haW50ZW5hbmNlPUZhbHNlCj4+PiBzdGF0ZT1FbmdpbmVT dG9wCj4+PiBzdG9wcGVkPUZhbHNlCj4+PiB0aW1lb3V0PVRodSBKYW4gMSAwOTo0OTozOCAxOTcw Cj4+Pgo+Pj4KPj4+Cj4+PiAtLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tCj4+PiBGcm9tOiBN YXJ0aW4gU2l2YWsgPG1zaXZha0ByZWRoYXQuY29tPgo+Pj4gVG86IGRoeTMzNiA8ZGh5MzM2QHNp bmEuY29tPiwgdXNlcnMgPHVzZXJzQG92aXJ0Lm9yZz4KPj4+IFN1YmplY3Q6IFJlOiBSZTogUmU6 IFJlOiBSZTogW292aXJ0LXVzZXJzXSC72Li0o7pSZTogSG9zdGVkLWVuZ2luZSBjYW4KPj4+IG5v dF9zd2l0Y2gKPj4+IERhdGU6IDIwMTgtMDQtMjUgMTc6NDEKPj4+Cj4+Pgo+Pj4gUGxlYXNlIGF0 dGFjaCB0aGUgb3V0cHV0IG9mIGhvc3RlZC1lbmdpbmUgLS12bS1zdGF0dXMgYW5kIHRoZQo+Pj4g L3Zhci9sb2cvb3ZpcnQtaG9zdGVkLWVuZ2luZS1oYS9hZ2VudC5sb2cgZmlsZSBmcm9tIGJvdGgg aG9zdHMuCj4+PiBUaGUgVk0gd2lsbCByZXN0YXJ0IGlmIHRoZSBvdmlydC1lbmdpbmUgc2Vydmlj ZSBkb2VzIG5vdCBiZWNvbWUKPj4+IGF2YWlsYWJsZSB3aXRoaW4gdGltZW91dC4gQW5kIHRoYXQg bWlnaHQgbWVhbiBjb3VwbGUgb2YgdGhpbmdzIC0gdGhlCj4+PiBGUUROIG9mIHRoZSBlbmdpbmUg aXMgd3JvbmcsIHRoZSBlbmdpbmUgbmVlZHMgc29tZXRoaW5nIHRoYXQgd2FzIG9ubHkKPj4+IGF2 YWlsYWJsZSBvbiB0aGUgZGVhZCBob3N0IChBKSBsaWtlIHNvbWUgc3RvcmFnZSwgaG9zdCBCIGNh bm5vdCBwaW5nCj4+PiB0aGUgZ2F0ZXdheS4uCj4+PiBCZXN0IHJlZ2FyZHMKPj4+IE1hcnRpbiBT aXZhawo+Pj4gT24gV2VkLCBBcHIgMjUsIDIwMTggYXQgMTE6MzMgQU0sIDxkaHkzMzZAc2luYS5j b20+IHdyb3RlOgo+Pj4+IHNvcnJ5LCBJIG1pcy1yZXByZXNlbnQsCj4+Pj4KPj4+PiBJIGhhdmEg dHdvIG5vZGUsIEE6MTkyLjE2OC4xMjIuNjUgLCBCOjE5Mi4xNjguMTIyLjY2IHdpdGggaG9zdGVk LWVuZ2luZS4KPj4+Pgo+Pj4+IHRlc3RpbmcgZW5naW5lIEhBIDoKPj4+Pgo+Pj4+IGZpcnN0IHR3 byBub2RlIGlzIHVwLCBhbmQgaG9zdGVkLWVuZ2luZSBWTSBydW4gaW4gQSwgdGhlbiBJIHBvd2Vy b2ZmIEEsCj4+Pj4gYW5kCj4+Pj4gYWZ0ZXIgMyBtaW51dGVzLCBCIHN0YXJ0IGl0YHMgaG9zdGVk IGVuZ2luZSBWTSwKPj4+PiBCdXQgaXRgcyBvdmlydC1lbmdpbmUgY29ubmVjdCB0byBob3N0IEEs IGFuZCBjb250aW51ZSBmb3IgYWJvdXQgMTAKPj4+PiBtaW51dGVzLAo+Pj4+IHRoZW4gaG9zdGVk IGVuZ2luZSBWTSByZXN0YXJ0Lgo+Pj4+IC0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0KPj4+ PiBGcm9tOiBNYXJ0aW4gU2l2YWsgPG1zaXZha0ByZWRoYXQuY29tPgo+Pj4+IFRvOiBkaHkzMzYg PGRoeTMzNkBzaW5hLmNvbT4KPj4+PiBTdWJqZWN0OiBSZTogUmU6IFJlOiBSZTogW292aXJ0LXVz ZXJzXSC72Li0o7pSZTogSG9zdGVkLWVuZ2luZSBjYW4KPj4+PiBub3Rfc3dpdGNoCj4+Pj4gRGF0 ZTogMjAxOC0wNC0yNSAxNzoxMQo+Pj4+Cj4+Pj4KPj4+PiBZb3VyIGhvc3RlZCBlbmdpbmUgVk0g aGFzIGl0cyBvd24gYWRkcmVzcyB0aGF0IGRvZXMgbm90IGRlcGVuZCBvbgo+Pj4+IHdoaWNoIGhv c3QgaXQgaXMgY3VycmVudGx5IHJ1bm5pbmcuIFNvIGl0IHNob3VsZCBiZSBhdmFpbGFibGUgb24g dGhlCj4+Pj4gc2FtZSBhZGRyZXNzIG5vIG1hdHRlciB3aGVyZSB0aGUgVk0gaXMgcnVubmluZy4K Pj4+PiBCZXN0IHJlZ2FyZHMKPj4+PiBNYXJ0aW4gU2l2YWsKPj4+PiBPbiBXZWQsIEFwciAyNSwg MjAxOCBhdCA5OjA3IEFNLCA8ZGh5MzM2QHNpbmEuY29tPiB3cm90ZToKPj4+Pj4+PiBJIGRlcGxv eSB0d28gbm9kZSBmb3IgaG9zdGVkIGVuZ2luZSwgZmlyc3QgaG9zdGVkIGVuZ2luZSBWTSBydW4g aW4KPj4+Pj4+PiAxOTIuMTY4LjEyMi42NSwgSSBwb3dlciBvZmYgdGhpcyBob3N0LCBob3N0ZWQt ZW5naW5lIFZNIHN3aXRjaAo+Pj4+Pj4+IGFub3RoZXIgaG9zdKOsYnV0IG92aXJ0IGVuZ2luZSBz dGlsbCBjb25uZWN0IDE5Mi4xNjguMTIyLjY1LiBpZgo+Pj4+Pj4+IHJlc3RhcnQKPj4+Pj4+PiBv dmlydC1lbmdpbmUgc2VydmVyLCBpdCBpcyB3b3JrLgo+Pj4+Pgo+Pj4+PiBJIHRoaW5rIHRoaXMg aXNzdWUgaXMgZXJyb3IsIGJlY2F1c2UgaG9zdGVkIGVuZ2luZSBWTSBoYXMgcG93ZXIgdXAgaW4K Pj4+Pj4gYW5vdGhlciBob3N0KCAxOTIuMTY4LjEyMi42NiksIHNvIGhvc3RlZCBlbmdpbmUgc2hv dWxkCj4+Pj4+IGNvbm5lY3QgdG8gaG9zdCggMTkyLjE2OC4xMjIuNjYpLCBub3QgY29ubmV0IHRv IGhvc3QoMTkyLjE2OC4xMjIuNjYpPwo+Pj4+Pgo+Pj4+PiB0aGFua3MKPj4+Pj4KPj4+Pj4gLS0t LS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLQo+Pj4+PiBGcm9tOiBNYXJ0aW4gU2l2YWsgPG1zaXZh a0ByZWRoYXQuY29tPgo+Pj4+PiBUbzogZGh5MzM2IDxkaHkzMzZAc2luYS5jb20+Cj4+Pj4+IENj OiB1c2VycyA8dXNlcnNAb3ZpcnQub3JnPgo+Pj4+PiBTdWJqZWN0OiBSZTogUmU6IFJlOiBbb3Zp cnQtdXNlcnNdILvYuLSjulJlOiBIb3N0ZWQtZW5naW5lIGNhbiBub3Rfc3dpdGNoCj4+Pj4+IERh dGU6IDIwMTgtMDQtMjAgMTg6MjgKPj4+Pj4KPj4+Pj4KPj4+Pj4gSGksCj4+Pj4+IE5vLCB0aGlz IGlzIG5vdCBhbiBlcnJvci4gWW91IGtpbGxlZCB0aGUgaG9zdCB3aXRob3V0IG1vdmluZyBpdCB0 bwo+Pj4+PiBtYWludGVuYW5jZSBmaXJzdC4gVGhlIGVuZ2luZSBoYXMgbm8gd2F5IHRvIGRpc3Rp bmd1aXNoIHRoaXMgZnJvbQo+Pj4+PiB0ZW1wb3JhcnkgbmV0d29yayBmYWlsdXJlIGZvciBleGFt cGxlLiBHaXZlIGl0IHNvbWUgdGltZSBhbmQgdGhlIGhvc3QKPj4+Pj4gd2lsbCBtb3ZlIGl0cyBz dGF0dXMgdG8gb25lIG9mIHRoZSBlcnJvciBzdGF0ZXMgYW5kIGhhbmRsZSB0aGUgaGlnaGx5Cj4+ Pj4+IGF2YWlsYWJsZSBWTXMgb24gaXQgKGlmIGZlbmNpbmcgaXMgcHJvcGVybHkgY29uZmlndXJl ZCkuCj4+Pj4+IEJlc3QgcmVnYXJkcwo+Pj4+PiBNYXJ0aW4gU2l2YWsKPj4+Pj4gT24gRnJpLCBB cHIgMjAsIDIwMTggYXQgMTI6MTMgUE0sIDxkaHkzMzZAc2luYS5jb20+IHdyb3RlOgo+Pj4+Pj4g dGhpcyBwcm9jZXNzIGlzIG5vdCBlcnJvciA/Cj4+Pj4+PiAtLS0tLSBPcmlnaW5hbCBNZXNzYWdl IC0tLS0tCj4+Pj4+PiBGcm9tOiBNYXJ0aW4gU2l2YWsgPG1zaXZha0ByZWRoYXQuY29tPgo+Pj4+ Pj4gVG86IGRoeTMzNiA8ZGh5MzM2QHNpbmEuY29tPgo+Pj4+Pj4gQ2M6IHVzZXJzIDx1c2Vyc0Bv dmlydC5vcmc+Cj4+Pj4+PiBTdWJqZWN0OiBSZTogUmU6IFtvdmlydC11c2Vyc10gu9i4tKO6UmU6 IEhvc3RlZC1lbmdpbmUgY2FuIG5vdF9zd2l0Y2gKPj4+Pj4+IERhdGU6IDIwMTgtMDQtMjAgMTg6 MDUKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gSGksCj4+Pj4+PiB0aGUgZW5naW5lIGRvZXMgbm90IGtu b3cgeW91IGtpbGxlZCB0aGUgaG9zdC4gSXQgd2lsbCBub3RpY2UKPj4+Pj4+IGV2ZW50dWFsbHkg YW5kIGhhbmRsZSB0aGUgc2l0dWF0aW9uLiBKdXN0IGdpdmUgaXQgdGltZSAoNSBtaW51dGVzIG9y Cj4+Pj4+PiBzbykuCj4+Pj4+PiBCZXN0IHJlZ2FyZHMKPj4+Pj4+IC0tCj4+Pj4+PiBNYXJ0aW4g U2l2YWsKPj4+Pj4+IFNMQSAvIG9WaXJ0Cj4+Pj4+PiBPbiBGcmksIEFwciAyMCwgMjAxOCBhdCAx MjowMCBQTSwgPGRoeTMzNkBzaW5hLmNvbT4gd3JvdGU6Cj4+Pj4+Pj4gSGmjrCB0aGFua3MgZm9y IHlvdXIgZmVlZGJhY2suIEkgaGF2YSBhbm90aGVyIHFldXN0aW9ucwo+Pj4+Pj4+Cj4+Pj4+Pj4g SSBkZXBsb3kgdHdvIG5vZGUgZm9yIGhvc3RlZCBlbmdpbmUsIGZpcnN0IGhvc3RlZCBlbmdpbmUg Vk0gcnVuIGluCj4+Pj4+Pj4gMTkyLjE2OC4xMjIuNjUsIEkgcG93ZXIgb2ZmIHRoaXMgaG9zdCwg aG9zdGVkLWVuZ2luZSBWTSBzd2l0Y2gKPj4+Pj4+PiBhbm90aGVyIGhvc3SjrGJ1dCBvdmlydCBl bmdpbmUgc3RpbGwgY29ubmVjdCAxOTIuMTY4LjEyMi42NS4gaWYKPj4+Pj4+PiByZXN0YXJ0Cj4+ Pj4+Pj4gb3ZpcnQtZW5naW5lIHNlcnZlciwgaXQgaXMgd29yay4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+ Pj4+Pj4gMjAxOC0wNC0yMCAxNzoxMzowNCw2OTIrMDggRVJST1IKPj4+Pj4+PiBbb3JnLm92aXJ0 LmVuZ2luZS5jb3JlLnZkc2Jyb2tlci52ZHNicm9rZXIuR2V0QWxsVm1TdGF0c1ZEU0NvbW1hbmRd Cj4+Pj4+Pj4gKEVFLU1hbmFnZWRUaHJlYWRGYWN0b3J5LWVuIGdpbmVTY2hlZHVsZWQtVGhyZWFk LTk4KSBbXSBDb21tYW5kCj4+Pj4+Pj4gJ0dldEFsbFZtU3RhdHNWRFNDb21tYW5kKEhvc3ROYW1l ID0gaG9zdGVkLWVuZ2luZTIsCj4+Pj4+Pj4gVmRzSWRWRFNDb21tYW5kUGFyYW1ldGVyc0Jhc2U6 e2hvcwo+Pj4+Pj4+IHRJZD0nYTU0MjhlZjctOWRmNi00YTg2LTkxZGUtN2UzNmZkYTM0MGZhJ30p JyBleGVjdXRpb24gZmFpbGVkOgo+Pj4+Pj4+IGphdmEubmV0Lk5vUm91dGVUb0hvc3RFeGNlcHRp b246IE5vIHJvdXRlIHRvIGhvc3QKPj4+Pj4+PiA2NTY4IDIwMTgtMDQtMjAgMTc6MTM6MDQsNjkz KzA4IElORk8KPj4+Pj4+PiBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnZkc2Jyb2tlci5tb25pdG9y aW5nLlBvbGxWbVN0YXRzUmVmcmVzaGVyXQo+Pj4+Pj4+IChFRS1NYW5hZ2VkVGhyZWFkRmFjdG9y eS1lbmdpIG5lU2NoZWR1bGVkLVRocmVhZC05OCkgW10gRmFpbGVkIHRvCj4+Pj4+Pj4gZmV0Y2gK Pj4+Pj4+PiB2bXMgaW5mbyBmb3IgaG9zdCAnaG9zdGVkLWVuZ2luMicgLSBza2lwcGluZyBWTXMg bW9uaXRvcmluZy4KPj4+Pj4+PiA2NTY5IDIwMTgtMDQtMjAgMTc6MTM6MTksNzEwKzA4IElORk8K Pj4+Pj4+PiBbb3JnLm92aXJ0LnZkc20uanNvbnJwYy5jbGllbnQucmVhY3RvcnMuUmVhY3RvckNs aWVudF0gKFNTTCBTdG9tcAo+Pj4+Pj4+IFJlYWN0b3IpCj4+Pj4+Pj4gW10gQ29ubmVjdGluZyB0 byBob3N0ZWQtZW5naW5lMi8xOTIuMTY4LjEyMi42NTY1NzAgMjAxOC0wNC0yMAo+Pj4+Pj4+IDE3 OjEzOjIyLDczMCswOCBFUlJPUgo+Pj4+Pj4+IFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudmRzYnJv a2VyLnZkc2Jyb2tlci5HZXRBbGxWbVN0YXRzVkRTQ29tbWFuZF0KPj4+Pj4+PiAoRUUtTWFuYWdl ZFRocmVhZEZhY3RvcnktZW4gZ2luZVNjaGVkdWxlZC1UaHJlYWQtNDUpIFtdIENvbW1hbmQKPj4+ Pj4+PiAnR2V0QWxsVm1TdGF0c1ZEU0NvbW1hbmQoSG9zdE5hbWUgPSBob3N0ZWQtZW5naW5lLXRj aHlwMiwKPj4+Pj4+PiBWZHNJZFZEU0NvbW1hbmRQYXJhbWV0ZXJzQmFzZTp7aG9zCj4+Pj4+Pj4g dElkPSdhNTQyOGVmNy05ZGY2LTRhODYtOTFkZS03ZTM2ZmRhMzQwZmEnfSknIGV4ZWN1dGlvbiBm YWlsZWQ6Cj4+Pj4+Pj4gamF2YS5uZXQuTm9Sb3V0ZVRvSG9zdEV4Y2VwdGlvbjogTm8gcm91dGUg dG8gaG9zdAo+Pj4+Pj4+IDY1NzEgMjAxOC0wNC0yMCAxNzoxMzoyMiw3MzIrMDggSU5GTwo+Pj4+ Pj4+IFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudmRzYnJva2VyLm1vbml0b3JpbmcuUG9sbFZtU3Rh dHNSZWZyZXNoZXJdCj4+Pj4+Pj4gKEVFLU1hbmFnZWRUaHJlYWRGYWN0b3J5LWVuZ2kgbmVTY2hl ZHVsZWQtVGhyZWFkLTQ1KSBbXSBGYWlsZWQgdG8KPj4+Pj4+PiBmZXRjaAo+Pj4+Pj4+IHZtcyBp bmZvIGZvciBob3N0ICdob3N0ZWQtZW5naW5lMicgLSBza2lwcGluZyBWTXMgbW9uaXRvcmluZy4K Pj4+Pj4+Pgo+Pj4+Pj4+IC0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0KPj4+Pj4+PiBGcm9t OiBNYXJ0aW4gU2l2YWsgPG1zaXZha0ByZWRoYXQuY29tPgo+Pj4+Pj4+IFRvOiBkaHkzMzYgPGRo eTMzNkBzaW5hLmNvbT4KPj4+Pj4+PiBDYzogdXNlcnMgPHVzZXJzQG92aXJ0Lm9yZz4KPj4+Pj4+ PiBTdWJqZWN0OiBSZTogW292aXJ0LXVzZXJzXSC72Li0o7pSZTogSG9zdGVkLWVuZ2luZSBjYW4g bm90X3N3aXRjaAo+Pj4+Pj4+IERhdGU6IDIwMTgtMDQtMjAgMTY6NDAKPj4+Pj4+Pgo+Pj4+Pj4+ Cj4+Pj4+Pj4gSGksCj4+Pj4+Pj4geW91ciBvdmlydC1ob3N0ZWQtZW5naW5lLWhhIHBhY2thZ2Ug aXMgdG9vIG9sZC4gWW91IG5lZWQgYXQgbGVhc3QKPj4+Pj4+PiAyLjEuOSB0byBwcm9wZXJseSBz dXBwb3J0IDQuMiBlbmdpbmUuIFRoZSBzYW1lIGFwcGxpZXMgdG8gdmRzbS4KPj4+Pj4+PiBQbGVh c2UKPj4+Pj4+PiB1cGdyYWRlIHRoZSBub2RlLgo+Pj4+Pj4+IEJlc3QgcmVnYXJkcwo+Pj4+Pj4+ IE1hcnRpbiBTaXZhawo+Pj4+Pj4+IE9uIEZyaSwgQXByIDIwLCAyMDE4IGF0IDM6NTggQU0sIDxk aHkzMzZAc2luYS5jb20+IHdyb3RlOgo+Pj4+Pj4+PiBIaSBJIGZpbmQgc29tZSBlcnJvciBsb2dz IGluIC92YXIvbG9nL292aXJ0LWhvc3RlZC1lbmdpbmUtaGEvYnJva2VyLgo+Pj4+Pj4+Pgo+Pj4+ Pj4+PiBbcm9vdEBob3N0ZWQtZW5naW5lMiB+XSMgbGwgL3JoZXYvZGF0YS1jZW50ZXIvbW50Cj4+ Pj4+Pj4+IHRvdGFsIDAKPj4+Pj4+Pj4gZHJ3eHIteHIteC4gMyB2ZHNtIGt2bSA3NiBBcHIgMTgg MjI6MjggMTkyLjE2OC4xMjIuMjE4Ol9leHBvcnRzX2RhdGEKPj4+Pj4+Pj4gZHJ3eHIteHIteC4g MyB2ZHNtIGt2bSA3NiBBcHIgMTggMjI6MTIKPj4+Pj4+Pj4gMTkyLjE2OC4xMjIuMjE4Ol9leHBv cnRzX2hvc3RlZC1lbmdpbmUtdGVzdDEKPj4+Pj4+Pj4gW3Jvb3RAaG9zdGVkLWVuZ2luZTIgfl0j IGxsCj4+Pj4+Pj4+IC9yaGV2L2RhdGEtY2VudGVyL21udC8xOTIuMTY4LjEyMi4yMThcOl9leHBv cnRzX2hvc3RlZC1lbmdpbmUtdGVzdDEvCj4+Pj4+Pj4+IHRvdGFsIDAKPj4+Pj4+Pj4gZHJ3eHIt eHIteC4gNSB2ZHNtIGt2bSA1MCBBcHIgMTggMjI6MTQKPj4+Pj4+Pj4gOGE3MzQyMDUtNjViNy00 ODAxLWI3ZjAtZDM4MGViNDVkYmFlCj4+Pj4+Pj4+IC1yd3hyLXhyLXguIDEgdmRzbSBrdm0gMCBB cHIgMjAgMDk6NTQgX19ESVJFQ1RfSU9fVEVTVF9fCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IHV1aWQgOGE3 MzQyMDUtNjViNy00ODAxLWI3ZjAtZDM4MGViNDVkYmFlIGlzIGluCj4+Pj4+Pj4+IC9yaGV2L2Rh dGEtY2VudGVyL21udC8xOTIuMTY4LjEyMi4yMThcOl9leHBvcnRzX2hvc3RlZC1lbmdpbmUtdGVz dDEvCj4+Pj4+Pj4+IGJ1dCBicm9rZXIgZmluZCBpdCBpbiAvcmhldi9kYXRhLWNlbnRlci9tbnQs IGlzIGl0IG15IHZlcnNpb24gaXMKPj4+Pj4+Pj4gZXJyb3I/Cj4+Pj4+Pj4+IG15Cj4+Pj4+Pj4+ IG92aXJ0LWhvc3RlZC1lbmdpbmUtaGEgdmVyc2lvbiBpcyAyLjEuNSwgdmRzbSBpcyA0LjIwLjWj rAo+Pj4+Pj4+PiBvdmlydC1lbmdpbmUgaXMgNC4yCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IE1haW5UaHJl YWQ6OklORk86OjIwMTgtMDQtMTkKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4K Pj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gMTk6MjY6MzEsNDc5OjpsaXN0ZW5l cjo6NDE6Om92aXJ0X2hvc3RlZF9lbmdpbmVfaGEuYnJva2VyLmxpc3RlbmVyLkxpc3RlbmVyOjoo X19pbml0X18pCj4+Pj4+Pj4+IEluaXRpYWxpemluZyBTb2NrZXRTZXJ2ZXIKPj4+Pj4+Pj4gTWFp blRocmVhZDo6SU5GTzo6MjAxOC0wNC0xOQo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+ Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAxOToyNjozMSw0ODA6Omxp c3RlbmVyOjo1Njo6b3ZpcnRfaG9zdGVkX2VuZ2luZV9oYS5icm9rZXIubGlzdGVuZXIuTGlzdGVu ZXI6OihfX2luaXRfXykKPj4+Pj4+Pj4gU29ja2V0U2VydmVyIHJlYWR5Cj4+Pj4+Pj4+IFRocmVh ZC0xOjpJTkZPOjoyMDE4LTA0LTE5Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IDE5OjI2OjMxLDU1ODo6bGlzdGVu ZXI6OjEzNDo6b3ZpcnRfaG9zdGVkX2VuZ2luZV9oYS5icm9rZXIubGlzdGVuZXIuQ29ubmVjdGlv bkhhbmRsZXI6OihzZXR1cCkKPj4+Pj4+Pj4gQ29ubmVjdGlvbiBlc3RhYmxpc2hlZAo+Pj4+Pj4+ PiBUaHJlYWQtMTo6RVJST1I6OjIwMTgtMDQtMTkKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4K Pj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gMTk6MjY6MzEsNTU5 OjpsaXN0ZW5lcjo6MTkyOjpvdmlydF9ob3N0ZWRfZW5naW5lX2hhLmJyb2tlci5saXN0ZW5lci5D b25uZWN0aW9uSGFuZGxlcjo6KGhhbmRsZSkKPj4+Pj4+Pj4gRXJyb3IgaGFuZGxpbmcgcmVxdWVz dCwgZGF0YTogJ3NldC1zdG9yYWdlLWRvbWFpbiBGaWxlc3lzdGVtQmFja2VuZAo+Pj4+Pj4+PiBk b21fdHlwZT1uZnMzIHNkX3V1aWQ9OGE3MzQyMDUtNjViNy00ODAxLWI3ZjAtZDM4MGViNDVkYmFl Jwo+Pj4+Pj4+PiBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6Cj4+Pj4+Pj4+IEZp bGUKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4K Pj4+Pj4+Pj4KPj4+Pj4+Pj4gIi91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL292aXJ0 X2hvc3RlZF9lbmdpbmVfaGEvYnJva2VyL2xpc3RlbmVyLnB5IiwKPj4+Pj4+Pj4gbGluZSAxNjYs IGluIGhhbmRsZQo+Pj4+Pj4+PiBkYXRhKQo+Pj4+Pj4+PiBGaWxlCj4+Pj4+Pj4+Cj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICIv dXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy9vdmlydF9ob3N0ZWRfZW5naW5lX2hhL2Jy b2tlci9saXN0ZW5lci5weSIsCj4+Pj4+Pj4+IGxpbmUgMjk5LCBpbiBfZGlzcGF0Y2gKPj4+Pj4+ Pj4gLnNldF9zdG9yYWdlX2RvbWFpbihjbGllbnQsIHNkX3R5cGUsICoqb3B0aW9ucykKPj4+Pj4+ Pj4gRmlsZQo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+ Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAiL3Vzci9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMv b3ZpcnRfaG9zdGVkX2VuZ2luZV9oYS9icm9rZXIvc3RvcmFnZV9icm9rZXIucHkiLAo+Pj4+Pj4+ PiBsaW5lIDY2LCBpbiBzZXRfc3RvcmFnZV9kb21haW4KPj4+Pj4+Pj4gc2VsZi5fYmFja2VuZHNb Y2xpZW50XS5jb25uZWN0KCkKPj4+Pj4+Pj4gRmlsZQo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+ Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAiL3Vzci9saWIv cHl0aG9uMi43L3NpdGUtcGFja2FnZXMvb3ZpcnRfaG9zdGVkX2VuZ2luZV9oYS9saWIvc3RvcmFn ZV9iYWNrZW5kcy5weSIsCj4+Pj4+Pj4+IGxpbmUgNDYyLCBpbiBjb25uZWN0Cj4+Pj4+Pj4+IHNl bGYuX2RvbV90eXBlKQo+Pj4+Pj4+PiBGaWxlCj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICIvdXNyL2xpYi9weXRo b24yLjcvc2l0ZS1wYWNrYWdlcy9vdmlydF9ob3N0ZWRfZW5naW5lX2hhL2xpYi9zdG9yYWdlX2Jh Y2tlbmRzLnB5IiwKPj4+Pj4+Pj4gbGluZSAxMDcsIGluIGdldF9kb21haW5fcGF0aAo+Pj4+Pj4+ PiAiIGluIHsxfSIuZm9ybWF0KHNkX3V1aWQsIHBhcmVudCkpCj4+Pj4+Pj4+IEJhY2tlbmRGYWls dXJlRXhjZXB0aW9uOiBwYXRoIHRvIHN0b3JhZ2UgZG9tYWluCj4+Pj4+Pj4+IDhhNzM0MjA1LTY1 YjctNDgwMS1iN2YwLWQzODBlYjQ1ZGJhZSBub3QgZm91bmQgaW4KPj4+Pj4+Pj4gL3JoZXYvZGF0 YS1jZW50ZXIvbW50Cj4+Pj4+Pj4+IFRocmVhZC0xOjpJTkZPOjoyMDE4LTA0LTE5Cj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+ Pj4+Pj4+IDE5OjI2OjMxLDU2Mzo6bGlzdGVuZXI6OjE4Njo6b3ZpcnRfaG9zdGVkX2VuZ2luZV9o YS5icm9rZXIubGlzdGVuZXIuQ29ubmVjdGlvbkhhbmRsZXI6OihoYW5kbGUpCj4+Pj4+Pj4+IENv bm5lY3Rpb24gY2xvc2VkCj4+Pj4+Pj4+IFRocmVhZC0yOjpJTkZPOjoyMDE4LTA0LTE5Cj4+Pj4+ Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ Cj4+Pj4+Pj4+IDE5OjI2OjQ0LDYwMTo6bGlzdGVuZXI6OjEzNDo6b3ZpcnRfaG9zdGVkX2VuZ2lu ZV9oYS5icm9rZXIubGlzdGVuZXIuQ29ubmVjdGlvbkhhbmRsZXI6OihzZXR1cCkKPj4+Pj4+Pj4g Q29ubmVjdGlvbiBlc3RhYmxpc2hlZAo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAtLS0tLSDUrcq808q8/iAt LS0tLQo+Pj4+Pj4+PiC3orz+yMujujxkaHkzMzZAc2luYS5jb20+Cj4+Pj4+Pj4+IMrVvP7Iy6O6 Ik1hcnRpbiBTaXZhayIgPG1zaXZha0ByZWRoYXQuY29tPgo+Pj4+Pj4+PiCzrcvNyMujunVzZXJz IDx1c2Vyc0BvdmlydC5vcmc+Cj4+Pj4+Pj4+INb3zOKjultvdmlydC11c2Vyc10gu9i4tKO6UmU6 IEhvc3RlZC1lbmdpbmUgY2FuIG5vdF9zd2l0Y2gKPj4+Pj4+Pj4gyNXG2qO6MjAxOMTqMDTUwjIw yNUgMDm14zMwt9YKPj4+Pj4+Pj4KPj4+Pj4+Pj4gbGlidmlydCBoYXMgbm90IGVycm9yIGxvZ3Mg LiBJIG9ubHkgZmluZCBzb21lIGVycm9yIGZvciB2ZHNtLgo+Pj4+Pj4+PiB2ZHNtIGxvZyBpczoK Pj4+Pj4+Pj4gMjAxOC0wNC0yMCAwOToyNDo1Miw2MTArMDgwMCBJTkZPIChqc29ucnBjLzEpIFt2 ZHNtLmFwaV0gRklOSVNICj4+Pj4+Pj4+IGdldFZvbHVtZUluZm8gcmV0dXJuPXsnaW5mbyc6IHsn c3RhdHVzJzogJ09LJywgJ2RvbWFpbic6Cj4+Pj4+Pj4+ICc4YTczNDIwNS02NWI3LTQ4MDEtYjdm MC1kMzgwZWI0NWRiYWUnLCAndm9sdHlwZSc6ICdMRUFGJywKPj4+Pj4+Pj4gJ2Rlc2NyaXB0aW9u JzoKPj4+Pj4+Pj4gJ2hvc3RlZC1lbmdpbmUubG9ja3NwYWNlJywgJ3BhcmVudCc6Cj4+Pj4+Pj4+ ICcwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAnLAo+Pj4+Pj4+PiAnZm9ybWF0 JzogJ1JBVycsICdnZW5lcmF0aW9uJzogMCwgJ2ltYWdlJzoKPj4+Pj4+Pj4gJzYxMTI3MmJkLWMy Y2MtNDJiYy05NGUyLTlhYTUyZTc1NGMzNScsICdjdGltZSc6ICcxNTI0MDMyMDM3JywKPj4+Pj4+ Pj4gJ2Rpc2t0eXBlJzoKPj4+Pj4+Pj4gJzInLCAnbGVnYWxpdHknOiAnTEVHQUwnLCAnbXRpbWUn OiAnMCcsICdhcHBhcmVudHNpemUnOiAnMTA0ODU3NicsCj4+Pj4+Pj4+ICdjaGlsZHJlbic6IFtd LCAncG9vbCc6ICcnLCAnY2FwYWNpdHknOiAnMTA0ODU3NicsICd1dWlkJzoKPj4+Pj4+Pj4gdSc3 MDM3YWFjNi03YzhlLTRlZmQtODJmNy1jYTYxOGM5NTNmZTYnLCAndHJ1ZXNpemUnOiAnMTA0ODU3 NicsCj4+Pj4+Pj4+ICd0eXBlJzoKPj4+Pj4+Pj4gJ1BSRUFMTE9DQVRFRCcsICdsZWFzZSc6IHsn b3duZXJzJzogW10sICd2ZXJzaW9uJzogTm9uZX19fQo+Pj4+Pj4+PiBmcm9tPTo6MSw0ODMwNiwK Pj4+Pj4+Pj4gdGFza19pZD0wM2E3OTM4ZS04YWZiLTRiMTYtYjhkZC0xMjZjMmIxZjVkNTIgKGFw aTo1MikKPj4+Pj4+Pj4gMjAxOC0wNC0yMCAwOToyNDo1Miw2MTErMDgwMCBJTkZPIChqc29ucnBj LzEpCj4+Pj4+Pj4+IFtqc29ucnBjLkpzb25ScGNTZXJ2ZXJdCj4+Pj4+Pj4+IFJQQwo+Pj4+Pj4+ PiBjYWxsIFZvbHVtZS5nZXRJbmZvIHN1Y2NlZWRlZCBpbiAwLjAzIHNlY29uZHMgKF9faW5pdF9f OjYzMCkKPj4+Pj4+Pj4gMjAxOC0wNC0yMCAwOToyNDo1NCwxMTMrMDgwMCBFUlJPUiAocGVyaW9k aWMvMykKPj4+Pj4+Pj4gW3ZpcnQucGVyaW9kaWMuT3BlcmF0aW9uXQo+Pj4+Pj4+PiA8dmRzbS52 aXJ0LnNhbXBsaW5nLlZNQnVsa3N0YXRzTW9uaXRvciBvYmplY3QgYXQgMHgxZTkyZjkwPgo+Pj4+ Pj4+PiBvcGVyYXRpb24KPj4+Pj4+Pj4gZmFpbGVkCj4+Pj4+Pj4+IChwZXJpb2RpYzoyMTUpCj4+ Pj4+Pj4+IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKPj4+Pj4+Pj4gRmlsZSAi L3Vzci9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMvdmRzbS92aXJ0L3BlcmlvZGljLnB5Iiwg bGluZQo+Pj4+Pj4+PiAyMTMsCj4+Pj4+Pj4+IGluIF9fY2FsbF9fCj4+Pj4+Pj4+IHNlbGYuX2Z1 bmMoKQo+Pj4+Pj4+PiBGaWxlICIvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy92ZHNt L3ZpcnQvc2FtcGxpbmcucHkiLCBsaW5lCj4+Pj4+Pj4+IDUyMiwKPj4+Pj4+Pj4gaW4gX19jYWxs X18KPj4+Pj4+Pj4gc2VsZi5fc2VuZF9tZXRyaWNzKCkKPj4+Pj4+Pj4gRmlsZSAiL3Vzci9saWIv cHl0aG9uMi43L3NpdGUtcGFja2FnZXMvdmRzbS92aXJ0L3NhbXBsaW5nLnB5IiwgbGluZQo+Pj4+ Pj4+PiA1MzgsCj4+Pj4+Pj4+IGluIF9zZW5kX21ldHJpY3MKPj4+Pj4+Pj4gdm1fc2FtcGxlLmlu dGVydmFsKQo+Pj4+Pj4+PiBGaWxlICIvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdlcy92 ZHNtL3ZpcnQvdm1zdGF0cy5weSIsIGxpbmUKPj4+Pj4+Pj4gNDUsCj4+Pj4+Pj4+IGluCj4+Pj4+ Pj4+IHByb2R1Y2UKPj4+Pj4+Pj4gbmV0d29ya3Modm0sIHN0YXRzLCBmaXJzdF9zYW1wbGUsIGxh c3Rfc2FtcGxlLCBpbnRlcnZhbCkKPj4+Pj4+Pj4gRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L3Np dGUtcGFja2FnZXMvdmRzbS92aXJ0L3Ztc3RhdHMucHkiLCBsaW5lCj4+Pj4+Pj4+IDMyMiwKPj4+ Pj4+Pj4gaW4KPj4+Pj4+Pj4gbmV0d29ya3MKPj4+Pj4+Pj4gaWYgbmljLm5hbWUuc3RhcnRzd2l0 aCgnaG9zdGRldicpOgo+Pj4+Pj4+PiBBdHRyaWJ1dGVFcnJvcjogbmFtZQo+Pj4+Pj4+PiAyMDE4 LTA0LTIwIDA5OjI0OjU0LDgwMCswODAwIElORk8gKFJlYWN0b3IgdGhyZWFkKQo+Pj4+Pj4+PiBb UHJvdG9jb2xEZXRlY3Rvci5BY2NlcHRvckltcGxdIEFjY2VwdGVkIGNvbm5lY3Rpb24gZnJvbSA6 OjE6NDgzMDgKPj4+Pj4+Pj4gKHByb3RvY29sZGV0ZWN0b3I6NjEpCj4+Pj4+Pj4+IDIwMTgtMDQt MjAgMDk6MjQ6NTQsODEwKzA4MDAgSU5GTyAoUmVhY3RvciB0aHJlYWQpCj4+Pj4+Pj4+IFtQcm90 b2NvbERldGVjdG9yLkRldGVjdG9yXSBEZXRlY3RlZCBwcm90b2NvbCBzdG9tcCBmcm9tIDo6MTo0 ODMwOAo+Pj4+Pj4+PiAocHJvdG9jb2xkZXRlY3RvcjoxMjUpCj4+Pj4+Pj4+IDIwMTgtMDQtMjAg MDk6MjQ6NTQsODEwKzA4MDAgSU5GTyAoUmVhY3RvciB0aHJlYWQpCj4+Pj4+Pj4+IFtCcm9rZXIu U3RvbXBBZGFwdGVyXQo+Pj4+Pj4+PiBQcm9jZXNzaW5nIENPTk5FQ1QgcmVxdWVzdCAoc3RvbXBy ZWFjdG9yOjEwMykKPj4+Pj4+Pj4gMjAxOC0wNC0yMCAwOToyNDo1NCw4MTgrMDgwMCBJTkZPIChK c29uUnBjIChTdG9tcFJlYWN0b3IpKQo+Pj4+Pj4+PiBbQnJva2VyLlN0b21wQWRhcHRlcl0gU3Vi c2NyaWJlIGNvbW1hbmQgcmVjZWl2ZWQgKHN0b21wcmVhY3RvcjoxMzIpCj4+Pj4+Pj4+IDIwMTgt MDQtMjAgMDk6MjQ6NTUsMTE5KzA4MDAgSU5GTyAoanNvbnJwYy82KSBbYXBpLmhvc3RdIFNUQVJU Cj4+Pj4+Pj4+IGdldEhhcmR3YXJlSW5mbygpIGZyb209OjoxLDQ4MzA4IChhcGk6NDYpCj4+Pj4+ Pj4+Cj4+Pj4+Pj4+IC0tLS0tINStyrzTyrz+IC0tLS0tCj4+Pj4+Pj4+ILeivP7Iy6O6TWFydGlu IFNpdmFrIDxtc2l2YWtAcmVkaGF0LmNvbT4KPj4+Pj4+Pj4gytW8/sjLo7pkaHkzMzYgPGRoeTMz NkBzaW5hLmNvbT4KPj4+Pj4+Pj4gs63LzcjLo7p1c2VycyA8dXNlcnNAb3ZpcnQub3JnPgo+Pj4+ Pj4+PiDW98zio7pSZTogW292aXJ0LXVzZXJzXSBIb3N0ZWQtZW5naW5lIGNhbiBub3Qgc3dpdGNo Cj4+Pj4+Pj4+IMjVxtqjujIwMTjE6jA01MIxOcjVIDIwteMxNrfWCj4+Pj4+Pj4+Cj4+Pj4+Pj4+ Cj4+Pj4+Pj4+IFdlIG5lZWQgbW9yZSB0aGFuIGp1c3QgdGhpcyBzbWFsbCBsb2cgc25pcHBldC4g UGxlYXNlIGNoZWNrIHRoZSB2ZHNtCj4+Pj4+Pj4+IGFuZCBsaWJ2aXJ0IGxvZ3MgYXMgd2VsbC4K Pj4+Pj4+Pj4gQmVzdCByZWdhcmRzCj4+Pj4+Pj4+IE1hcnRpbiBTaXZhawo+Pj4+Pj4+PiBPbiBU aHUsIEFwciAxOSwgMjAxOCBhdCAyOjA1IFBNLCA8ZGh5MzM2QHNpbmEuY29tPiB3cm90ZToKPj4+ Pj4+Pj4+IEhpo6wKPj4+Pj4+Pj4+IEkgZGVwbG95IHRocmVlIG5vZGUgd2l0aCBob3N0ZWQgZW5n aW5lLCBJIGZvcmNlIHNodXQgZG93biBhIG5vZGUKPj4+Pj4+Pj4+IHdoaWNoCj4+Pj4+Pj4+PiBI b3N0LWVuZ2luZSBWTSBpcyBydW4sIEJ1dCBob3N0ZWQgZW5naW5lIFZNIGluIG90aGVyIG5vZGVz IGNhbiBub3QKPj4+Pj4+Pj4+IHJ1bi4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBJIGZpbmQgc29tZSBl cnJvciBpbiAvdmFyL2xvZy9vdmlydC1ob3N0ZWQtZW5naW5lLWhhL2FnZW50LmxvZwo+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+IE1haW5UaHJlYWQ6OklORk86OjIwMTgtMDQtMTkKPj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gMTk6NTY6MzUsNzg3Ojpob3N0ZWRfZW5naW5lOjoxMTkyOjpvdmly dF9ob3N0ZWRfZW5naW5lX2hhLmFnZW50Lmhvc3RlZF9lbmdpbmUuSG9zdGVkRW5naW5lOjooX2Ns ZWFuX3Zkc21fc3RhdGUpCj4+Pj4+Pj4+PiBDbGVhbmluZyBzdGF0ZSBmb3Igbm9uLXJ1bm5pbmcg Vk0KPj4+Pj4+Pj4+IE1haW5UaHJlYWQ6OklORk86OjIwMTgtMDQtMTkKPj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gMTk6NTY6NDIsNTg3Ojpob3N0ZWRfZW5naW5lOjoxMTc2Ojpvdmly dF9ob3N0ZWRfZW5naW5lX2hhLmFnZW50Lmhvc3RlZF9lbmdpbmUuSG9zdGVkRW5naW5lOjooX2Ns ZWFuX3Zkc21fc3RhdGUpCj4+Pj4+Pj4+PiBWZHNtIHN0YXRlIGZvciBWTSBjbGVhbgo+Pj4+Pj4+ Pj4gTWFpblRocmVhZDo6SU5GTzo6MjAxOC0wNC0xOQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+PiAxOTo1Njo0Miw1ODk6Omhvc3RlZF9lbmdpbmU6OjExMjU6Om92aXJ0X2hvc3RlZF9l bmdpbmVfaGEuYWdlbnQuaG9zdGVkX2VuZ2luZS5Ib3N0ZWRFbmdpbmU6Oihfc3RhcnRfZW5naW5l X3ZtKQo+Pj4+Pj4+Pj4gU3RhcnRpbmcgdm0gdXNpbmcgYC91c3Ivc2Jpbi9ob3N0ZWQtZW5naW5l IC0tdm0tc3RhcnRgCj4+Pj4+Pj4+PiBNYWluVGhyZWFkOjpJTkZPOjoyMDE4LTA0LTE5Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IDE5OjU2OjQ3LDU5OTo6aG9zdGVkX2VuZ2luZTo6 MTEzMTo6b3ZpcnRfaG9zdGVkX2VuZ2luZV9oYS5hZ2VudC5ob3N0ZWRfZW5naW5lLkhvc3RlZEVu Z2luZTo6KF9zdGFydF9lbmdpbmVfdm0pCj4+Pj4+Pj4+PiBzdGRvdXQ6Cj4+Pj4+Pj4+PiBNYWlu VGhyZWFkOjpJTkZPOjoyMDE4LTA0LTE5Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ IDE5OjU2OjQ3LDYwMDo6aG9zdGVkX2VuZ2luZTo6MTEzMjo6b3ZpcnRfaG9zdGVkX2VuZ2luZV9o YS5hZ2VudC5ob3N0ZWRfZW5naW5lLkhvc3RlZEVuZ2luZTo6KF9zdGFydF9lbmdpbmVfdm0pCj4+ Pj4+Pj4+PiBzdGRlcnI6IFZpcnR1YWwgbWFjaGluZSBkb2VzIG5vdCBleGlzdDogeyd2bUlkJzoK Pj4+Pj4+Pj4+IHUnMDhiYmQ2ODAtYThhNy00MjY3LTgyZTctODlmMzZlODdlOTMwJ30KPj4+Pj4+ Pj4+Cj4+Pj4+Pj4+PiBNYWluVGhyZWFkOjpJTkZPOjoyMDE4LTA0LTE5Cj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IDE5OjU2OjQ3LDYwMDo6aG9zdGVkX2VuZ2luZTo6MTE0NDo6b3Zp cnRfaG9zdGVkX2VuZ2luZV9oYS5hZ2VudC5ob3N0ZWRfZW5naW5lLkhvc3RlZEVuZ2luZTo6KF9z dGFydF9lbmdpbmVfdm0pCj4+Pj4+Pj4+PiBFbmdpbmUgVk0gc3RhcnRlZCBvbiBsb2NhbGhvc3QK Pj4+Pj4+Pj4+IE1haW5UaHJlYWQ6OklORk86OjIwMTgtMDQtMTkKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4gMTk6NTY6NDcsNjA5Ojpicm9rZXJsaW5rOjoxMTE6Om92aXJ0X2hvc3Rl ZF9lbmdpbmVfaGEubGliLmJyb2tlcmxpbmsuQnJva2VyTGluazo6KG5vdGlmeSkKPj4+Pj4+Pj4+ IFRyeWluZzogbm90aWZ5IHRpbWU9MTUyNDEzOTAwNy42MSB0eXBlPXN0YXRlX3RyYW5zaXRpb24K Pj4+Pj4+Pj4+IGRldGFpbD1FbmdpbmVTdGFydC1FbmdpbmVTdGFydGluZyBob3N0bmFtZT0naG9z dGVkLWVuZ2luZTInCj4+Pj4+Pj4+PiBNYWluVGhyZWFkOjpJTkZPOjoyMDE4LTA0LTE5Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IDE5OjU2OjQ3LDY3MDo6YnJva2VybGluazo6MTIx OjpvdmlydF9ob3N0ZWRfZW5naW5lX2hhLmxpYi5icm9rZXJsaW5rLkJyb2tlckxpbms6Oihub3Rp ZnkpCj4+Pj4+Pj4+PiBTdWNjZXNzLCB3YXMgbm90aWZpY2F0aW9uIG9mIHN0YXRlX3RyYW5zaXRp b24KPj4+Pj4+Pj4+IChFbmdpbmVTdGFydC1FbmdpbmVTdGFydGluZykKPj4+Pj4+Pj4+IHNlbnQ/ IHNlbnQKPj4+Pj4+Pj4+IE1haW5UaHJlYWQ6OklORk86OjIwMTgtMDQtMTkKPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gMTk6NTY6NDcsNjcwOjpob3N0ZWRfZW5naW5lOjo2MDQ6Om92 aXJ0X2hvc3RlZF9lbmdpbmVfaGEuYWdlbnQuaG9zdGVkX2VuZ2luZS5Ib3N0ZWRFbmdpbmU6Oihf aW5pdGlhbGl6ZV92ZHNtKQo+Pj4+Pj4+Pj4gSW5pdGlhbGl6aW5nIFZEU00KPj4+Pj4+Pj4+IE1h aW5UaHJlYWQ6OklORk86OjIwMTgtMDQtMTkKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4gMTk6NTY6NTAsMDk1Ojpob3N0ZWRfZW5naW5lOjo2MzA6Om92aXJ0X2hvc3RlZF9lbmdpbmVf aGEuYWdlbnQuaG9zdGVkX2VuZ2luZS5Ib3N0ZWRFbmdpbmU6OihfaW5pdGlhbGl6ZV9zdG9yYWdl X2ltYWdlcykKPj4+Pj4+Pj4+IENvbm5lY3RpbmcgdGhlIHN0b3JhZ2UKPj4+Pj4+Pj4+IE1haW5U aHJlYWQ6OklORk86OjIwMTgtMDQtMTkKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4g MTk6NTY6NTAsMDk2OjpzdG9yYWdlX3NlcnZlcjo6MjIwOjpvdmlydF9ob3N0ZWRfZW5naW5lX2hh LmxpYi5zdG9yYWdlX3NlcnZlci5TdG9yYWdlU2VydmVyOjoodmFsaWRhdGVfc3RvcmFnZV9zZXJ2 ZXIpCj4+Pj4+Pj4+PiBWYWxpZGF0aW5nIHN0b3JhZ2Ugc2VydmVyCj4+Pj4+Pj4+PiBNYWluVGhy ZWFkOjpJTkZPOjoyMDE4LTA0LTE5Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IDE5 OjU2OjUyLDQ0OTo6aG9zdGVkX2VuZ2luZTo6NjM5OjpvdmlydF9ob3N0ZWRfZW5naW5lX2hhLmFn ZW50Lmhvc3RlZF9lbmdpbmUuSG9zdGVkRW5naW5lOjooX2luaXRpYWxpemVfc3RvcmFnZV9pbWFn ZXMpCj4+Pj4+Pj4+PiBTdG9yYWdlIGRvbWFpbiByZXBvcnRlZCBhcyB2YWxpZCBhbmQgcmVjb25u ZWN0IGlzIG5vdCBmb3JjZWQuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+Pj4+PiBVc2VycyBt YWlsaW5nIGxpc3QKPj4+Pj4+Pj4+IFVzZXJzQG92aXJ0Lm9yZwo+Pj4+Pj4+Pj4gaHR0cDovL2xp c3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3VzZXJzCj4+Pj4+Pj4+Pgo+Pj4+Pj4+PiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4+PiBV c2VycyBtYWlsaW5nIGxpc3QKPj4+Pj4+Pj4gVXNlcnNAb3ZpcnQub3JnCj4+Pj4+Pj4+IGh0dHA6 Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2Vycwo= --=-sinamail_alt_7a0e4b1d0545b8fbf1709c3d5daa23b9 Content-Type: text/html; charset=GBK Content-Transfer-Encoding: base64 Content-Disposition: inline PGRpdj5lbmdpbmUgVk2jujE5Mi4xNjguMTIyLjkxPC9kaXY+PGRpdj5ob3N0ZWQtZW5naW5lMSA6 IDE5Mi4xNjguMTIyLjY2PC9kaXY+PGRpdj5ob3N0ZWQtZW5naW5lMiA6IDE5Mi4xNjguMTIyLjIy MzwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SSBjYW4gbm90IHZpc2l0IHdlYiBVSSwgYnV0IG15 IGVuZ2luZSBWTSBpcyBydW4sIGkgY2FuIGxvZ2luIGl0LiZuYnNwOyBlbmdpbmUgaGFzIHNvbWUg ZXJyb3ImbmJzcDs8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PiZuYnNwOzIwMTgtMDQtMjUgMTg6 MzU6MDMsNDAxKzA4IElORk88YnI+Jm5ic3A7W29yZy5vdmlydC52ZHNtLmpzb25ycGMuY2xpZW50 LnJlYWN0b3JzLlJlYWN0b3JDbGllbnRdIChTU0wgU3RvbXAgUmVhY3Rvcik8YnI+Jm5ic3A7W10g Q29ubmVjdGluZyB0byBob3N0ZWQtZW5naW5lMS8xOTIuMTY4LjEyMi42Njxicj4mbmJzcDsyMDE4 LTA0LTI1IDE4OjM1OjA2LDQxMSswOCBFUlJPUjxicj4mbmJzcDtbb3JnLm92aXJ0LmVuZ2luZS5j b3JlLnZkc2Jyb2tlci52ZHNicm9rZXIuR2V0QWxsVm1TdGF0c1ZEU0NvbW1hbmRdPGJyPiZuYnNw OyhFRS1NYW5hZ2VkVGhyZWFkRmFjdG9yeS1lbmdpbmVTY2hlZHVsZWQtVGhyZWFkLTIpIFtdIENv bW1hbmQ8YnI+Jm5ic3A7J0dldEFsbFZtU3RhdHNWRFNDb21tYW5kKEhvc3ROYW1lID0gaG9zdGVk LWVuZ2luZTEsPGJyPiZuYnNwO1Zkc0lkVkRTQ29tbWFuZFBhcmFtZXRlcnNCYXNlOntob3N0SWQ9 JzFiNWY3OTlhLTEyNWQtNGY0ZS04YWVmLWNiMmVjZGQ2MzEzNid9KSc8YnI+Jm5ic3A7ZXhlY3V0 aW9uIGZhaWxlZDogamF2YS5uZXQuTm9Sb3V0ZVRvSG9zdEV4Y2VwdGlvbjogTm8gcm91dGUgdG8g aG9zdDwvZGl2PjxkaXY+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvZGl2PjxkaXY+PGRpdj5bcm9v dEBob3N0ZWQtZW5naW5lMiB+XSMgaG9zdGVkLWVuZ2luZSAtLWNoZWNrLWxpdmVsaW5lc3M8L2Rp dj48ZGl2Pkhvc3RlZCBFbmdpbmUgaXMgbm90IHVwITwvZGl2PjxkaXY+LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS08L2Rpdj48ZGl2Pltyb290QGhvc3RlZC1lbmdpbmUyIH5dIyBjdXJsIGh0dHA6Ly9o b3N0ZWQtZW5naW5lLm92aXJ0LmNvbS9vdmlydC1lbmdpbmUvc2VydmljZXMvaGVhbHRoPC9kaXY+ PC9kaXY+PGRpdj4mbHQ7aHRtbCZndDsmbHQ7aGVhZCZndDsmbHQ7dGl0bGUmZ3Q7RXJyb3ImbHQ7 L3RpdGxlJmd0OyZsdDsvaGVhZCZndDsmbHQ7Ym9keSZndDs0MDQgLSBOb3QgRm91bmQmbHQ7L2Jv ZHkmZ3Q7Jmx0Oy9odG1sJmd0OzwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+Tm90ZaO6IHRoaXMg Y29tbWFuZCBpcyBibG9ja2VkICxpdCB0YWtlcyA1IG1pbnV0ZXM8L2Rpdj48ZGl2Pi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tPC9kaXY+PGRpdj48ZGl2Pi0tPT0gSG9zdCAxIHN0YXR1cyA9PS0tPC9k aXY+PGRpdj48YnI+PC9kaXY+PGRpdj5jb25mX29uX3NoYXJlZF9zdG9yYWdlJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBUcnVlPC9kaXY+PGRpdj5TdGF0 dXMgdXAtdG8tZGF0ZSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IDogRmFsc2U8L2Rpdj48ZGl2Pkhvc3RuYW1lJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogaG9zdGVkLWVuZ2luZTE8L2Rpdj48ZGl2Pkhv c3QgSUQmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogMTwvZGl2Pjxk aXY+RW5naW5lIHN0YXR1cyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiB1bmtub3duIHN0YWxlLWRhdGE8 L2Rpdj48ZGl2PlNjb3JlJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgOiAzNDAwPC9kaXY+PGRpdj5zdG9wcGVkJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyA6IEZhbHNlPC9kaXY+PGRpdj5Mb2NhbCBtYWludGVuYW5jZSZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDog RmFsc2U8L2Rpdj48ZGl2PmNyYzMyJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgOiAxZWFlODk2ODwvZGl2PjxkaXY+bG9jYWxfY29uZl90aW1lc3RhbXAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiA0ODkw NzwvZGl2PjxkaXY+SG9zdCB0aW1lc3RhbXAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiA0ODkwNzwvZGl2 PjxkaXY+RXh0cmEgbWV0YWRhdGEgKHZhbGlkIGF0IHRpbWVzdGFtcCk6PC9kaXY+PGRpdj48c3Bh biBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPm1ldGFkYXRhX3BhcnNlX3ZlcnNpb249 MTwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5tZXRhZGF0 YV9mZWF0dXJlX3ZlcnNpb249MTwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnBy ZSI+CTwvc3Bhbj50aW1lc3RhbXA9NDg5MDcgKFRodSBBcHIgMjYgMDE6NTc6MTQgMjAxOCk8L2Rp dj48ZGl2PjxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aG9zdC1pZD0xPC9k aXY+PGRpdj48c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnNjb3JlPTM0MDA8 L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dm1fY29uZl9y ZWZyZXNoX3RpbWU9NDg5MDcgKFRodSBBcHIgMjYgMDE6NTc6MTUgMjAxOCk8L2Rpdj48ZGl2Pjxz cGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Y29uZl9vbl9zaGFyZWRfc3RvcmFn ZT1UcnVlPC9kaXY+PGRpdj48c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPm1h aW50ZW5hbmNlPUZhbHNlPC9kaXY+PGRpdj48c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J PC9zcGFuPnN0YXRlPUVuZ2luZVVwPC9kaXY+PGRpdj48c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9zcGFuPnN0b3BwZWQ9RmFsc2U8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48 L2Rpdj48ZGl2Pi0tPT0gSG9zdCAyIHN0YXR1cyA9PS0tPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRp dj5jb25mX29uX3NoYXJlZF9zdG9yYWdlJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7OiBUcnVlPC9kaXY+PGRpdj5TdGF0dXMgdXAtdG8tZGF0ZSZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDog VHJ1ZTwvZGl2PjxkaXY+SG9zdG5hbWUmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7OiBob3N0ZWQtZW5naW5lMjwvZGl2PjxkaXY+SG9zdCBJRCZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAyPC9kaXY+PGRpdj5FbmdpbmUgc3RhdHVzJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyA6IHsicmVhc29uIjogImZhaWxlZCBsaXZlbGluZXNzIGNoZWNrIiwgImhl YWx0aCI6ICJiYWQiLCAidm0iOiAidXAiLCAiZGV0YWlsIjogIlVwIn08L2Rpdj48ZGl2PlNjb3Jl Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAzMDAwPC9k aXY+PGRpdj5zdG9wcGVkJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6 IEZhbHNlPC9kaXY+PGRpdj5Mb2NhbCBtYWludGVuYW5jZSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDogRmFsc2U8L2Rpdj48ZGl2 PmNyYzMyJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiAx YjkyNzU2ZDwvZGl2PjxkaXY+bG9jYWxfY29uZl90aW1lc3RhbXAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiA0NDA1NzwvZGl2PjxkaXY+SG9z dCB0aW1lc3RhbXAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiA0NDA1NzwvZGl2PjxkaXY+RXh0cmEgbWV0 YWRhdGEgKHZhbGlkIGF0IHRpbWVzdGFtcCk6PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9zcGFuPm1ldGFkYXRhX3BhcnNlX3ZlcnNpb249MTwvZGl2PjxkaXY+PHNw YW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5tZXRhZGF0YV9mZWF0dXJlX3ZlcnNp b249MTwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj50aW1l c3RhbXA9NDQwNTcgKFRodSBBcHIgMjYgMDI6MDA6NTcgMjAxOCk8L2Rpdj48ZGl2PjxzcGFuIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+aG9zdC1pZD0yPC9kaXY+PGRpdj48c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnNjb3JlPTMwMDA8L2Rpdj48ZGl2PjxzcGFu IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+dm1fY29uZl9yZWZyZXNoX3RpbWU9NDQw NTcgKFRodSBBcHIgMjYgMDI6MDA6NTcgMjAxOCk8L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJ3aGl0 ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Y29uZl9vbl9zaGFyZWRfc3RvcmFnZT1UcnVlPC9kaXY+PGRp dj48c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPm1haW50ZW5hbmNlPUZhbHNl PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPnN0YXRlPUVu Z2luZVN0YXJ0aW5nPC9kaXY+PGRpdj48c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9z cGFuPnN0b3BwZWQ9RmFsc2U8L2Rpdj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rp dj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48 L2Rpdj48ZGl2IGlkPSJvcmlnYm9keSI+PGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsi Pi0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS1vdmlydDxicj5Gcm9tOiBNYXJ0aW4gU2l2YWsg Jmx0O21zaXZha0ByZWRoYXQuY29tJmd0Ozxicj5UbzogZGh5MzM2ICZsdDtkaHkzMzZAc2luYS5j b20mZ3Q7PGJyPkNjOiB1c2VycyAmbHQ7dXNlcnNAb3ZpcnQub3JnJmd0Ozxicj5TdWJqZWN0OiBS ZTogUmU6IFtvdmlydC11c2Vyc10gu9i4tKO6UmU6IEhvc3RlZC1lbmdpbmUgY2FuIG5vdF9zd2l0 Y2g8YnI+RGF0ZTogMjAxOC0wNC0yNSAyMDo0MTxicj48L2Rpdj48YnI+PGJyPiZndDsgMjAxOC0w NC0yNSAxODozNTowNiw0MTErMDggRVJST1I8YnI+Jmd0OyBbb3JnLm92aXJ0LmVuZ2luZS5jb3Jl LnZkc2Jyb2tlci52ZHNicm9rZXIuR2V0QWxsVm1TdGF0c1ZEU0NvbW1hbmRdPGJyPiZndDsgKEVF LU1hbmFnZWRUaHJlYWRGYWN0b3J5LWVuZ2luZVNjaGVkdWxlZC1UaHJlYWQtMikgW10gQ29tbWFu ZDxicj4mZ3Q7ICdHZXRBbGxWbVN0YXRzVkRTQ29tbWFuZChIb3N0TmFtZSA9IGhvc3RlZC1lbmdp bmUxLDxicj4mZ3Q7IFZkc0lkVkRTQ29tbWFuZFBhcmFtZXRlcnNCYXNlOntob3N0SWQ9JzFiNWY3 OTlhLTEyNWQtNGY0ZS04YWVmLWNiMmVjZGQ2MzEzNid9KSc8YnI+Jmd0OyBleGVjdXRpb24gZmFp bGVkOiBqYXZhLm5ldC5Ob1JvdXRlVG9Ib3N0RXhjZXB0aW9uOiBObyByb3V0ZSB0byBob3N0PGJy PlRoaXMgaXMgZXhwZWN0ZWQgYW5kIG5vcm1hbC4gVGhlIG92aXJ0LWVuZ2luZSBzZXJ2aWNlIGlz IHRyeWluZyB0bzxicj5maW5kIG91dCB3aGV0aGVyIGhvc3QgQSBpcyBzdGlsbCB1bnJlYWNoYWJs ZSBvciBub3QuIFRoaXMgaXMgbm90IHRoZTxicj5pc3N1ZSB5b3UgYXJlIGxvb2tpbmcgZm9yLjxi cj4mZ3Q7IDE5Mi4xNjguMTIyLjY2IGhhcyBiZWVuIHBvd2VyZWQgb2ZmLCBhbmQgaG9zdGVkIGVu Z2luZSBWTSBydW4gaW48YnI+Jmd0OyAxOTIuMTY4LjEyMi4yMjMsIEkgdGhpbmsgZW5naW5lIHNo b3VsZCBjb25uZWN0IHRvIDE5Mi4xNjguMTIyLjIyMyw8YnI+WW91IGFyZSBtaXhpbmcgdGhlIElQ IG9mIHRoZSBlbmdpbmUgVk0gYW5kIHRoZSBJUCBvZiBhIGhvc3QuIFRoZTxicj5lbmdpbmUgcnVu cyBpbiBWTSB3aXRoIHN0YWJsZSAuMTIyLjIyMyAoaW5kZXBlbmRlbnQgb24gd2hpY2ggaG9zdCB0 aGU8YnI+Vk0gcnVucyBhdCkgYW5kIG1hbmFnZXMgdHdvIGhvc3RzIC4xMjIuNjUgYW5kIC4xMjIu NjYuIFRoZSBlbmdpbmU8YnI+Y29uc3RhbnRseSBtb25pdG9ycyBhbGwgaXRzIGhvc3RzIGFuZCB0 aGF0IG1lYW5zIGl0IGlzIHRyeWluZyB0bzxicj5jb25uZWN0IHRvIHRoZW0gZXZlcnkgbm93IGFu ZCB0aGVuLjxicj5QbGVhc2UgZXhlY3V0ZSB0aGUgdHdvIGZvbGxvd2luZyBjb21tYW5kcyBvbiBI b3N0IEIgYW5kIHNob3cgdXMgdGhlPGJyPnJlc3VsdHMgKHVzZSB0aGUgcHJvcGVyIGZxZG4pOjxi cj4kKGhvc3RlZC1lbmdpbmUgLS1jaGVjay1saXZlbGluZXNzKTxicj4kKGN1cmwgaHR0cDovL3tm cWRufS9vdmlydC1lbmdpbmUvc2VydmljZXMvaGVhbHRoKTxicj5CZXN0IHJlZ2FyZHM8YnI+TWFy dGluIFNpdmFrPGJyPk9uIFdlZCwgQXByIDI1LCAyMDE4IGF0IDI6MzQgUE0sICAmbHQ7ZGh5MzM2 QHNpbmEuY29tJmd0OyB3cm90ZTo8YnI+Jmd0OyBJICBsb2dpbiBpbiBlbmdpbmUgVk0gYnkgKCNo b3N0ZWQtZW5naW5lIC0tY29uc29sZSkgLCBJIGZpbmQgb3ZpcnQtZW5naW5lPGJyPiZndDsgcHJv Y2Vzcy4gYW5kIEkgZmluZCBzb21lIGVycm9yIGluIC92YXIvbG9nL292aXJ0LWVuZ2luZS9lbmdp bmUubG9nPGJyPiZndDs8YnI+Jmd0OyAxOTIuMTY4LjEyMi42NiBoYXMgYmVlbiBwb3dlcmVkIG9m ZiwgYW5kIGhvc3RlZCBlbmdpbmUgVk0gcnVuIGluPGJyPiZndDsgMTkyLjE2OC4xMjIuMjIzLCBJ IHRoaW5rIGVuZ2luZSBzaG91bGQgY29ubmVjdCB0byAxOTIuMTY4LjEyMi4yMjMsPGJyPiZndDs8 YnI+Jmd0Ozxicj4mZ3Q7IDIwMTgtMDQtMjUgMTg6MzU6MDMsNDAxKzA4IElORk88YnI+Jmd0OyBb b3JnLm92aXJ0LnZkc20uanNvbnJwYy5jbGllbnQucmVhY3RvcnMuUmVhY3RvckNsaWVudF0gKFNT TCBTdG9tcCBSZWFjdG9yKTxicj4mZ3Q7IFtdIENvbm5lY3RpbmcgdG8gaG9zdGVkLWVuZ2luZTEv MTkyLjE2OC4xMjIuNjY8YnI+Jmd0OyAyMDE4LTA0LTI1IDE4OjM1OjA2LDQxMSswOCBFUlJPUjxi cj4mZ3Q7IFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudmRzYnJva2VyLnZkc2Jyb2tlci5HZXRBbGxW bVN0YXRzVkRTQ29tbWFuZF08YnI+Jmd0OyAoRUUtTWFuYWdlZFRocmVhZEZhY3RvcnktZW5naW5l U2NoZWR1bGVkLVRocmVhZC0yKSBbXSBDb21tYW5kPGJyPiZndDsgJ0dldEFsbFZtU3RhdHNWRFND b21tYW5kKEhvc3ROYW1lID0gaG9zdGVkLWVuZ2luZTEsPGJyPiZndDsgVmRzSWRWRFNDb21tYW5k UGFyYW1ldGVyc0Jhc2U6e2hvc3RJZD0nMWI1Zjc5OWEtMTI1ZC00ZjRlLThhZWYtY2IyZWNkZDYz MTM2J30pJzxicj4mZ3Q7IGV4ZWN1dGlvbiBmYWlsZWQ6IGphdmEubmV0Lk5vUm91dGVUb0hvc3RF eGNlcHRpb246IE5vIHJvdXRlIHRvIGhvc3Q8YnI+Jmd0OyAyMDE4LTA0LTI1IDE4OjM1OjA2LDQx MSswOCBJTkZPPGJyPiZndDsgW29yZy5vdmlydC5lbmdpbmUuY29yZS52ZHNicm9rZXIubW9uaXRv cmluZy5Qb2xsVm1TdGF0c1JlZnJlc2hlcl08YnI+Jmd0OyAoRUUtTWFuYWdlZFRocmVhZEZhY3Rv cnktZW5naW5lU2NoZWR1bGVkLVRocmVhZC0yKSBbXSBGYWlsZWQgdG8gZmV0Y2ggdm1zPGJyPiZn dDsgaW5mbyBmb3IgaG9zdCAnaG9zdGVkLWVuZ2luZTEnIC0gc2tpcHBpbmcgVk1zIG1vbml0b3Jp bmcuPGJyPiZndDsgMjAxOC0wNC0yNSAxODozNToyMSw0MjArMDggSU5GTzxicj4mZ3Q7IFtvcmcu b3ZpcnQudmRzbS5qc29ucnBjLmNsaWVudC5yZWFjdG9ycy5SZWFjdG9yQ2xpZW50XSAoU1NMIFN0 b21wIFJlYWN0b3IpPGJyPiZndDsgW10gQ29ubmVjdGluZyB0byBob3N0ZWQtZW5naW5lMS8xOTIu MTY4LjEyMi42Njxicj4mZ3Q7IDIwMTgtMDQtMjUgMTg6MzU6MjQsNDMwKzA4IEVSUk9SPGJyPiZn dDsgW29yZy5vdmlydC5lbmdpbmUuY29yZS52ZHNicm9rZXIudmRzYnJva2VyLkdldEFsbFZtU3Rh dHNWRFNDb21tYW5kXTxicj4mZ3Q7IChFRS1NYW5hZ2VkVGhyZWFkRmFjdG9yeS1lbmdpbmVTY2hl ZHVsZWQtVGhyZWFkLTEpIFtdIENvbW1hbmQ8YnI+Jmd0OyAnR2V0QWxsVm1TdGF0c1ZEU0NvbW1h bmQoSG9zdE5hbWUgPSBob3N0ZWQtZW5naW5lMSw8YnI+Jmd0OyBWZHNJZFZEU0NvbW1hbmRQYXJh bWV0ZXJzQmFzZTp7aG9zdElkPScxYjVmNzk5YS0xMjVkLTRmNGUtOGFlZi1jYjJlY2RkNjMxMzYn fSknPGJyPiZndDsgZXhlY3V0aW9uIGZhaWxlZDogamF2YS5uZXQuTm9Sb3V0ZVRvSG9zdEV4Y2Vw dGlvbjogTm8gcm91dGUgdG8gaG9zdDxicj4mZ3Q7IDIwMTgtMDQtMjUgMTg6MzU6MjQsNDMxKzA4 IElORk88YnI+Jmd0OyBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnZkc2Jyb2tlci5tb25pdG9yaW5n LlBvbGxWbVN0YXRzUmVmcmVzaGVyXTxicj4mZ3Q7IChFRS1NYW5hZ2VkVGhyZWFkRmFjdG9yeS1l bmdpbmVTY2hlZHVsZWQtVGhyZWFkLTEpIFtdIEZhaWxlZCB0byBmZXRjaCB2bXM8YnI+Jmd0OyBp bmZvIGZvciBob3N0ICdob3N0ZWQtZW5naW5lMScgLSBza2lwcGluZyBWTXMgbW9uaXRvcmluZy48 YnI+Jmd0OyAyMDE4LTA0LTI1IDE4OjM1OjM5LDQzOCswOCBJTkZPPGJyPiZndDsgW29yZy5vdmly dC52ZHNtLmpzb25ycGMuY2xpZW50LnJlYWN0b3JzLlJlYWN0b3JDbGllbnRdIChTU0wgU3RvbXAg UmVhY3Rvcik8YnI+Jmd0OyBbXSBDb25uZWN0aW5nIHRvIGhvc3RlZC1lbmdpbmUxLzE5Mi4xNjgu MTIyLjY2PGJyPiZndDs8YnI+Jmd0Ozxicj4mZ3Q7PGJyPiZndDsgLS0tLS0gT3JpZ2luYWwgTWVz c2FnZSAtLS0tLTxicj4mZ3Q7IEZyb206IE1hcnRpbiBTaXZhayAmbHQ7bXNpdmFrQHJlZGhhdC5j b20mZ3Q7PGJyPiZndDsgVG86IGRoeTMzNiAmbHQ7ZGh5MzM2QHNpbmEuY29tJmd0Ozxicj4mZ3Q7 IENjOiB1c2VycyAmbHQ7dXNlcnNAb3ZpcnQub3JnJmd0Ozxicj4mZ3Q7IFN1YmplY3Q6IFJlOiBb b3ZpcnQtdXNlcnNdILvYuLSjulJlOiBIb3N0ZWQtZW5naW5lIGNhbiBub3Rfc3dpdGNoPGJyPiZn dDsgRGF0ZTogMjAxOC0wNC0yNSAyMDoyNzxicj4mZ3Q7PGJyPiZndDs8YnI+Jmd0OyBUaGUgZW5n aW5lIHdpbGwgdHJ5IGNvbm5lY3RpbmcgdG8gYWxsIHJlZ2lzdGVyZWQgaG9zdHMgYWxsIHRoZSB0 aW1lLjxicj4mZ3Q7IFRoYXQgaXMgbm9ybWFsLjxicj4mZ3Q7IElmIHlvdXIgaG9zdCBjYW4gcmVh Y2ggdGhlIGVuZ2luZSB0aGVuIGNoZWNrIHdoZXRoZXIgaXQgY2FuIHJlYWNoPGJyPiZndDsgaHR0 cDovL3tmcWRufS9vdmlydC1lbmdpbmUvc2VydmljZXMvaGVhbHRoIGFzIHRoYXQgaXMgd2hhdCBp cyB1c2VkIHRvPGJyPiZndDsgbWFrZSBzdXJlIHRoZSBlbmdpbmUgaXMgYWxpdmUuPGJyPiZndDsg QmVzdCByZWdhcmRzPGJyPiZndDsgTWFydGluIFNpdmFrPGJyPiZndDsgT24gV2VkLCBBcHIgMjUs IDIwMTggYXQgMjoxNSBQTSwgJmx0O2RoeTMzNkBzaW5hLmNvbSZndDsgd3JvdGU6PGJyPiZndDsm Z3Q7IEhpIE1hcnRpbiw8YnI+Jmd0OyZndDs8YnI+Jmd0OyZndDsgdGhhbmsgeW91IGZvciBhbnN3 ZXI8YnI+Jmd0OyZndDsgbXkgaG9zdCBjYW4gcmVhY2ggdGhlIGVuZ2luZSwgSSBjb25mdXNlIHdo eSBlbmdpbmUgY29ubmVjdCB0byBhbm90aGVyIGhvc3Q8YnI+Jmd0OyZndDsgd2hpY2ggaGFzIGJl ZW4gcG93ZXIgb2ZmIGJ5IG1lPzxicj4mZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyAtLS0tLSBPcmlnaW5h bCBNZXNzYWdlIC0tLS0tPGJyPiZndDsmZ3Q7IEZyb206IE1hcnRpbiBTaXZhayAmbHQ7bXNpdmFr QHJlZGhhdC5jb20mZ3Q7PGJyPiZndDsmZ3Q7IFRvOiBkaHkzMzYgJmx0O2RoeTMzNkBzaW5hLmNv bSZndDssIHVzZXJzICZsdDt1c2Vyc0BvdmlydC5vcmcmZ3Q7PGJyPiZndDsmZ3Q7IFN1YmplY3Q6 IFJlOiBSZTogUmU6IFJlOiBSZTogUmU6IFtvdmlydC11c2Vyc10gu9i4tKO6UmU6IEhvc3RlZC1l bmdpbmUgY2FuPGJyPiZndDsmZ3Q7IG5vdF9zd2l0Y2g8YnI+Jmd0OyZndDsgRGF0ZTogMjAxOC0w NC0yNSAxOToxMjxicj4mZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyBJdCBpcyBhcyBJIGV4cGVjdGVkOjxi cj4mZ3Q7Jmd0OyBFbmdpbmUgc3RhdHVzIDogeyJyZWFzb24iOiAiZmFpbGVkIGxpdmVsaW5lc3Mg Y2hlY2siPGJyPiZndDsmZ3Q7IFRoZSBob3N0IGNhbid0IHRhbGsgdG8gdGhlIG92aXJ0LWVuZ2lu ZSBzZXJ2aWNlLiBQbGVhc2UgbWFrZSBzdXJlIHRoZTxicj4mZ3Q7Jmd0OyBob3N0IGNhbiByZWFj aCB0aGUgZW5naW5lIGZxZG4gYXMgY29uZmlndXJlZCBpbjxicj4mZ3Q7Jmd0OyAvZXRjL292aXJ0 LWhvc3RlZC1lbmdpbmUvaG9zdGVkLWVuZ2luZS5jb25mIG9uIHRoZSBmcWRuPSBsaW5lLjxicj4m Z3Q7Jmd0OyBZb3UgY2FuIGNoZWNrIGl0IG1hbnVhbGx5IGJ5IGV4ZWN1dGluZyAkKGhvc3RlZC1l bmdpbmU8YnI+Jmd0OyZndDsgLS1jaGVjay1saXZlbGluZXNzKSBmcm9tIHRoZSBob3N0Ljxicj4m Z3Q7Jmd0OyBCZXN0IHJlZ2FyZHM8YnI+Jmd0OyZndDsgTWFydGluIFNpdmFrPGJyPiZndDsmZ3Q7 IE9uIFdlZCwgQXByIDI1LCAyMDE4IGF0IDEyOjUxIFBNLCAmbHQ7ZGh5MzM2QHNpbmEuY29tJmd0 OyB3cm90ZTo8YnI+Jmd0OyZndDsmZ3Q7IEhpLDxicj4mZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsm Z3Q7IHR3byBub2RlIDo8YnI+Jmd0OyZndDsmZ3Q7IDE5Mi4xNjguMTIyLjY2IGhvc3RlZC1lbmdp bmUxPGJyPiZndDsmZ3Q7Jmd0OyAxOTIuMTY4LjEyMi4yMjMgaG9zdGVkLWVuZ2luZTI8YnI+Jmd0 OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyBJIHBvd2VyIG9mZiBob3N0ZWQtZW5naW5lMSwgc28g SSBkbyBub3QgYXR0YWNoIGhvc3RlZC1lbmdpbmUxYHMgbG9nLDxicj4mZ3Q7Jmd0OyZndDs8YnI+ Jmd0OyZndDsmZ3Q7IFtyb290QGhvc3RlZC1lbmdpbmUyIH5dIyBob3N0ZWQtZW5naW5lIC0tdm0t c3RhdHVzPGJyPiZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsgLS09PSBIb3N0IDEgc3RhdHVz ID09LS08YnI+Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyBjb25mX29uX3NoYXJlZF9zdG9y YWdlIDogVHJ1ZTxicj4mZ3Q7Jmd0OyZndDsgU3RhdHVzIHVwLXRvLWRhdGUgOiBGYWxzZTxicj4m Z3Q7Jmd0OyZndDsgSG9zdG5hbWUgOiBob3N0ZWQtZW5naW5lMTxicj4mZ3Q7Jmd0OyZndDsgSG9z dCBJRCA6IDE8YnI+Jmd0OyZndDsmZ3Q7IEVuZ2luZSBzdGF0dXMgOiB1bmtub3duIHN0YWxlLWRh dGE8YnI+Jmd0OyZndDsmZ3Q7IFNjb3JlIDogMzQwMDxicj4mZ3Q7Jmd0OyZndDsgc3RvcHBlZCA6 IEZhbHNlPGJyPiZndDsmZ3Q7Jmd0OyBMb2NhbCBtYWludGVuYW5jZSA6IEZhbHNlPGJyPiZndDsm Z3Q7Jmd0OyBjcmMzMiA6IGE3YWYwYWZhPGJyPiZndDsmZ3Q7Jmd0OyBsb2NhbF9jb25mX3RpbWVz dGFtcCA6IDExNDg1PGJyPiZndDsmZ3Q7Jmd0OyBIb3N0IHRpbWVzdGFtcCA6IDExNDg1PGJyPiZn dDsmZ3Q7Jmd0OyBFeHRyYSBtZXRhZGF0YSAodmFsaWQgYXQgdGltZXN0YW1wKTo8YnI+Jmd0OyZn dDsmZ3Q7IG1ldGFkYXRhX3BhcnNlX3ZlcnNpb249MTxicj4mZ3Q7Jmd0OyZndDsgbWV0YWRhdGFf ZmVhdHVyZV92ZXJzaW9uPTE8YnI+Jmd0OyZndDsmZ3Q7IHRpbWVzdGFtcD0xMTQ4NSAoV2VkIEFw ciAyNSAxMDowODozNCAyMDE4KTxicj4mZ3Q7Jmd0OyZndDsgaG9zdC1pZD0xPGJyPiZndDsmZ3Q7 Jmd0OyBzY29yZT0zNDAwPGJyPiZndDsmZ3Q7Jmd0OyB2bV9jb25mX3JlZnJlc2hfdGltZT0xMTQ4 NSAoV2VkIEFwciAyNSAxMDowODozNCAyMDE4KTxicj4mZ3Q7Jmd0OyZndDsgY29uZl9vbl9zaGFy ZWRfc3RvcmFnZT1UcnVlPGJyPiZndDsmZ3Q7Jmd0OyBtYWludGVuYW5jZT1GYWxzZTxicj4mZ3Q7 Jmd0OyZndDsgc3RhdGU9RW5naW5lVXA8YnI+Jmd0OyZndDsmZ3Q7IHN0b3BwZWQ9RmFsc2U8YnI+ Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsgLS09PSBIb3N0IDIg c3RhdHVzID09LS08YnI+Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyBjb25mX29uX3NoYXJl ZF9zdG9yYWdlIDogVHJ1ZTxicj4mZ3Q7Jmd0OyZndDsgU3RhdHVzIHVwLXRvLWRhdGUgOiBUcnVl PGJyPiZndDsmZ3Q7Jmd0OyBIb3N0bmFtZSA6IGhvc3RlZC1lbmdpbmUyPGJyPiZndDsmZ3Q7Jmd0 OyBIb3N0IElEIDogMjxicj4mZ3Q7Jmd0OyZndDsgRW5naW5lIHN0YXR1cyA6IHsicmVhc29uIjog ImZhaWxlZCBsaXZlbGluZXNzIGNoZWNrIiw8YnI+Jmd0OyZndDsmZ3Q7ICJoZWFsdGgiOiAiYmFk IiwgInZtIjogInVwIiwgImRldGFpbCI6ICJVcCJ9PGJyPiZndDsmZ3Q7Jmd0OyBTY29yZSA6IDMw MDA8YnI+Jmd0OyZndDsmZ3Q7IHN0b3BwZWQgOiBGYWxzZTxicj4mZ3Q7Jmd0OyZndDsgTG9jYWwg bWFpbnRlbmFuY2UgOiBGYWxzZTxicj4mZ3Q7Jmd0OyZndDsgY3JjMzIgOiBhMmU4Mjg4Mzxicj4m Z3Q7Jmd0OyZndDsgbG9jYWxfY29uZl90aW1lc3RhbXAgOiA2Mjc4PGJyPiZndDsmZ3Q7Jmd0OyBI b3N0IHRpbWVzdGFtcCA6IDYyNzg8YnI+Jmd0OyZndDsmZ3Q7IEV4dHJhIG1ldGFkYXRhICh2YWxp ZCBhdCB0aW1lc3RhbXApOjxicj4mZ3Q7Jmd0OyZndDsgbWV0YWRhdGFfcGFyc2VfdmVyc2lvbj0x PGJyPiZndDsmZ3Q7Jmd0OyBtZXRhZGF0YV9mZWF0dXJlX3ZlcnNpb249MTxicj4mZ3Q7Jmd0OyZn dDsgdGltZXN0YW1wPTYyNzggKFdlZCBBcHIgMjUgMTA6Mzc6NDQgMjAxOCk8YnI+Jmd0OyZndDsm Z3Q7IGhvc3QtaWQ9Mjxicj4mZ3Q7Jmd0OyZndDsgc2NvcmU9MzAwMDxicj4mZ3Q7Jmd0OyZndDsg dm1fY29uZl9yZWZyZXNoX3RpbWU9NjI3OCAoV2VkIEFwciAyNSAxMDozNzo0NCAyMDE4KTxicj4m Z3Q7Jmd0OyZndDsgY29uZl9vbl9zaGFyZWRfc3RvcmFnZT1UcnVlPGJyPiZndDsmZ3Q7Jmd0OyBt YWludGVuYW5jZT1GYWxzZTxicj4mZ3Q7Jmd0OyZndDsgc3RhdGU9RW5naW5lU3RvcDxicj4mZ3Q7 Jmd0OyZndDsgc3RvcHBlZD1GYWxzZTxicj4mZ3Q7Jmd0OyZndDsgdGltZW91dD1UaHUgSmFuIDEg MDk6NDk6MzggMTk3MDxicj4mZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7 Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsgLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLTxicj4mZ3Q7 Jmd0OyZndDsgRnJvbTogTWFydGluIFNpdmFrICZsdDttc2l2YWtAcmVkaGF0LmNvbSZndDs8YnI+ Jmd0OyZndDsmZ3Q7IFRvOiBkaHkzMzYgJmx0O2RoeTMzNkBzaW5hLmNvbSZndDssIHVzZXJzICZs dDt1c2Vyc0BvdmlydC5vcmcmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyBTdWJqZWN0OiBSZTogUmU6IFJl OiBSZTogUmU6IFtvdmlydC11c2Vyc10gu9i4tKO6UmU6IEhvc3RlZC1lbmdpbmUgY2FuPGJyPiZn dDsmZ3Q7Jmd0OyBub3Rfc3dpdGNoPGJyPiZndDsmZ3Q7Jmd0OyBEYXRlOiAyMDE4LTA0LTI1IDE3 OjQxPGJyPiZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7IFBsZWFz ZSBhdHRhY2ggdGhlIG91dHB1dCBvZiBob3N0ZWQtZW5naW5lIC0tdm0tc3RhdHVzIGFuZCB0aGU8 YnI+Jmd0OyZndDsmZ3Q7IC92YXIvbG9nL292aXJ0LWhvc3RlZC1lbmdpbmUtaGEvYWdlbnQubG9n IGZpbGUgZnJvbSBib3RoIGhvc3RzLjxicj4mZ3Q7Jmd0OyZndDsgVGhlIFZNIHdpbGwgcmVzdGFy dCBpZiB0aGUgb3ZpcnQtZW5naW5lIHNlcnZpY2UgZG9lcyBub3QgYmVjb21lPGJyPiZndDsmZ3Q7 Jmd0OyBhdmFpbGFibGUgd2l0aGluIHRpbWVvdXQuIEFuZCB0aGF0IG1pZ2h0IG1lYW4gY291cGxl IG9mIHRoaW5ncyAtIHRoZTxicj4mZ3Q7Jmd0OyZndDsgRlFETiBvZiB0aGUgZW5naW5lIGlzIHdy b25nLCB0aGUgZW5naW5lIG5lZWRzIHNvbWV0aGluZyB0aGF0IHdhcyBvbmx5PGJyPiZndDsmZ3Q7 Jmd0OyBhdmFpbGFibGUgb24gdGhlIGRlYWQgaG9zdCAoQSkgbGlrZSBzb21lIHN0b3JhZ2UsIGhv c3QgQiBjYW5ub3QgcGluZzxicj4mZ3Q7Jmd0OyZndDsgdGhlIGdhdGV3YXkuLjxicj4mZ3Q7Jmd0 OyZndDsgQmVzdCByZWdhcmRzPGJyPiZndDsmZ3Q7Jmd0OyBNYXJ0aW4gU2l2YWs8YnI+Jmd0OyZn dDsmZ3Q7IE9uIFdlZCwgQXByIDI1LCAyMDE4IGF0IDExOjMzIEFNLCAmbHQ7ZGh5MzM2QHNpbmEu Y29tJmd0OyB3cm90ZTo8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyBzb3JyeSwgSSBtaXMtcmVwcmVzZW50 LDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsgSSBoYXZhIHR3byBub2Rl LCBBOjE5Mi4xNjguMTIyLjY1ICwgQjoxOTIuMTY4LjEyMi42NiB3aXRoIGhvc3RlZC1lbmdpbmUu PGJyPiZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyB0ZXN0aW5nIGVuZ2luZSBI QSA6PGJyPiZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyBmaXJzdCB0d28gbm9k ZSBpcyB1cCwgYW5kIGhvc3RlZC1lbmdpbmUgVk0gcnVuIGluIEEsIHRoZW4gSSBwb3dlcm9mZiBB LDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7IGFuZDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7IGFmdGVyIDMgbWlu dXRlcywgQiBzdGFydCBpdGBzIGhvc3RlZCBlbmdpbmUgVk0sPGJyPiZndDsmZ3Q7Jmd0OyZndDsg QnV0IGl0YHMgb3ZpcnQtZW5naW5lIGNvbm5lY3QgdG8gaG9zdCBBLCBhbmQgY29udGludWUgZm9y IGFib3V0IDEwPGJyPiZndDsmZ3Q7Jmd0OyZndDsgbWludXRlcyw8YnI+Jmd0OyZndDsmZ3Q7Jmd0 OyB0aGVuIGhvc3RlZCBlbmdpbmUgVk0gcmVzdGFydC48YnI+Jmd0OyZndDsmZ3Q7Jmd0OyAtLS0t LSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tPGJyPiZndDsmZ3Q7Jmd0OyZndDsgRnJvbTogTWFydGlu IFNpdmFrICZsdDttc2l2YWtAcmVkaGF0LmNvbSZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyBUbzog ZGh5MzM2ICZsdDtkaHkzMzZAc2luYS5jb20mZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsgU3ViamVj dDogUmU6IFJlOiBSZTogUmU6IFtvdmlydC11c2Vyc10gu9i4tKO6UmU6IEhvc3RlZC1lbmdpbmUg Y2FuPGJyPiZndDsmZ3Q7Jmd0OyZndDsgbm90X3N3aXRjaDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7IERh dGU6IDIwMTgtMDQtMjUgMTc6MTE8YnI+Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsm Z3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsgWW91ciBob3N0ZWQgZW5naW5lIFZNIGhhcyBpdHMgb3du IGFkZHJlc3MgdGhhdCBkb2VzIG5vdCBkZXBlbmQgb248YnI+Jmd0OyZndDsmZ3Q7Jmd0OyB3aGlj aCBob3N0IGl0IGlzIGN1cnJlbnRseSBydW5uaW5nLiBTbyBpdCBzaG91bGQgYmUgYXZhaWxhYmxl IG9uIHRoZTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7IHNhbWUgYWRkcmVzcyBubyBtYXR0ZXIgd2hlcmUg dGhlIFZNIGlzIHJ1bm5pbmcuPGJyPiZndDsmZ3Q7Jmd0OyZndDsgQmVzdCByZWdhcmRzPGJyPiZn dDsmZ3Q7Jmd0OyZndDsgTWFydGluIFNpdmFrPGJyPiZndDsmZ3Q7Jmd0OyZndDsgT24gV2VkLCBB cHIgMjUsIDIwMTggYXQgOTowNyBBTSwgJmx0O2RoeTMzNkBzaW5hLmNvbSZndDsgd3JvdGU6PGJy PiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgSSBkZXBsb3kgdHdvIG5vZGUgZm9yIGhvc3Rl ZCBlbmdpbmUsIGZpcnN0IGhvc3RlZCBlbmdpbmUgVk0gcnVuIGluPGJyPiZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsgMTkyLjE2OC4xMjIuNjUsIEkgcG93ZXIgb2ZmIHRoaXMgaG9zdCwgaG9z dGVkLWVuZ2luZSBWTSBzd2l0Y2g8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBhbm90 aGVyIGhvc3SjrGJ1dCBvdmlydCBlbmdpbmUgc3RpbGwgY29ubmVjdCAxOTIuMTY4LjEyMi42NS4g aWY8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyByZXN0YXJ0PGJyPiZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsgb3ZpcnQtZW5naW5lIHNlcnZlciwgaXQgaXMgd29yay48YnI+Jmd0 OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgSSB0aGluayB0aGlzIGlz c3VlIGlzIGVycm9yLCBiZWNhdXNlIGhvc3RlZCBlbmdpbmUgVk0gaGFzIHBvd2VyIHVwIGluPGJy PiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IGFub3RoZXIgaG9zdCggMTkyLjE2OC4xMjIuNjYpLCBzbyBo b3N0ZWQgZW5naW5lIHNob3VsZDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBjb25uZWN0IHRvIGhv c3QoIDE5Mi4xNjguMTIyLjY2KSwgbm90IGNvbm5ldCB0byBob3N0KDE5Mi4xNjguMTIyLjY2KT88 YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgdGhhbmtzPGJy PiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IC0tLS0tIE9yaWdp bmFsIE1lc3NhZ2UgLS0tLS08YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgRnJvbTogTWFydGluIFNp dmFrICZsdDttc2l2YWtAcmVkaGF0LmNvbSZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgVG86 IGRoeTMzNiAmbHQ7ZGh5MzM2QHNpbmEuY29tJmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBD YzogdXNlcnMgJmx0O3VzZXJzQG92aXJ0Lm9yZyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsg U3ViamVjdDogUmU6IFJlOiBSZTogW292aXJ0LXVzZXJzXSC72Li0o7pSZTogSG9zdGVkLWVuZ2lu ZSBjYW4gbm90X3N3aXRjaDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBEYXRlOiAyMDE4LTA0LTIw IDE4OjI4PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJy PiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IEhpLDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBObywgdGhp cyBpcyBub3QgYW4gZXJyb3IuIFlvdSBraWxsZWQgdGhlIGhvc3Qgd2l0aG91dCBtb3ZpbmcgaXQg dG88YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgbWFpbnRlbmFuY2UgZmlyc3QuIFRoZSBlbmdpbmUg aGFzIG5vIHdheSB0byBkaXN0aW5ndWlzaCB0aGlzIGZyb208YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsgdGVtcG9yYXJ5IG5ldHdvcmsgZmFpbHVyZSBmb3IgZXhhbXBsZS4gR2l2ZSBpdCBzb21lIHRp bWUgYW5kIHRoZSBob3N0PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IHdpbGwgbW92ZSBpdHMgc3Rh dHVzIHRvIG9uZSBvZiB0aGUgZXJyb3Igc3RhdGVzIGFuZCBoYW5kbGUgdGhlIGhpZ2hseTxicj4m Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBhdmFpbGFibGUgVk1zIG9uIGl0IChpZiBmZW5jaW5nIGlzIHBy b3Blcmx5IGNvbmZpZ3VyZWQpLjxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBCZXN0IHJlZ2FyZHM8 YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgTWFydGluIFNpdmFrPGJyPiZndDsmZ3Q7Jmd0OyZndDsm Z3Q7IE9uIEZyaSwgQXByIDIwLCAyMDE4IGF0IDEyOjEzIFBNLCAmbHQ7ZGh5MzM2QHNpbmEuY29t Jmd0OyB3cm90ZTo8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IHRoaXMgcHJvY2VzcyBpcyBu b3QgZXJyb3IgPzxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgLS0tLS0gT3JpZ2luYWwgTWVz c2FnZSAtLS0tLTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgRnJvbTogTWFydGluIFNpdmFr ICZsdDttc2l2YWtAcmVkaGF0LmNvbSZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IFRv OiBkaHkzMzYgJmx0O2RoeTMzNkBzaW5hLmNvbSZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7IENjOiB1c2VycyAmbHQ7dXNlcnNAb3ZpcnQub3JnJmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsgU3ViamVjdDogUmU6IFJlOiBbb3ZpcnQtdXNlcnNdILvYuLSjulJlOiBIb3N0ZWQt ZW5naW5lIGNhbiBub3Rfc3dpdGNoPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBEYXRlOiAy MDE4LTA0LTIwIDE4OjA1PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IEhpLDxicj4mZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsgdGhlIGVuZ2luZSBkb2VzIG5vdCBrbm93IHlvdSBraWxsZWQgdGhl IGhvc3QuIEl0IHdpbGwgbm90aWNlPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBldmVudHVh bGx5IGFuZCBoYW5kbGUgdGhlIHNpdHVhdGlvbi4gSnVzdCBnaXZlIGl0IHRpbWUgKDUgbWludXRl cyBvcjxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgc28pLjxicj4mZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsgQmVzdCByZWdhcmRzPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAtLTxicj4m Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgTWFydGluIFNpdmFrPGJyPiZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyBTTEEgLyBvVmlydDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgT24gRnJpLCBB cHIgMjAsIDIwMTggYXQgMTI6MDAgUE0sICZsdDtkaHkzMzZAc2luYS5jb20mZ3Q7IHdyb3RlOjxi cj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IEhpo6wgdGhhbmtzIGZvciB5b3VyIGZlZWRi YWNrLiBJIGhhdmEgYW5vdGhlciBxZXVzdGlvbnM8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IEkgZGVwbG95IHR3byBub2RlIGZv ciBob3N0ZWQgZW5naW5lLCBmaXJzdCBob3N0ZWQgZW5naW5lIFZNIHJ1biBpbjxicj4mZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IDE5Mi4xNjguMTIyLjY1LCBJIHBvd2VyIG9mZiB0aGlzIGhv c3QsIGhvc3RlZC1lbmdpbmUgVk0gc3dpdGNoPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsgYW5vdGhlciBob3N0o6xidXQgb3ZpcnQgZW5naW5lIHN0aWxsIGNvbm5lY3QgMTkyLjE2OC4x MjIuNjUuIGlmPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgcmVzdGFydDxicj4mZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IG92aXJ0LWVuZ2luZSBzZXJ2ZXIsIGl0IGlzIHdvcmsu PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IDIwMTgtMDQtMjAgMTc6MTM6 MDQsNjkyKzA4IEVSUk9SPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgW29yZy5vdmly dC5lbmdpbmUuY29yZS52ZHNicm9rZXIudmRzYnJva2VyLkdldEFsbFZtU3RhdHNWRFNDb21tYW5k XTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IChFRS1NYW5hZ2VkVGhyZWFkRmFjdG9y eS1lbiBnaW5lU2NoZWR1bGVkLVRocmVhZC05OCkgW10gQ29tbWFuZDxicj4mZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7ICdHZXRBbGxWbVN0YXRzVkRTQ29tbWFuZChIb3N0TmFtZSA9IGhvc3Rl ZC1lbmdpbmUyLDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IFZkc0lkVkRTQ29tbWFu ZFBhcmFtZXRlcnNCYXNlOntob3M8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyB0SWQ9 J2E1NDI4ZWY3LTlkZjYtNGE4Ni05MWRlLTdlMzZmZGEzNDBmYSd9KScgZXhlY3V0aW9uIGZhaWxl ZDo8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBqYXZhLm5ldC5Ob1JvdXRlVG9Ib3N0 RXhjZXB0aW9uOiBObyByb3V0ZSB0byBob3N0PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsgNjU2OCAyMDE4LTA0LTIwIDE3OjEzOjA0LDY5MyswOCBJTkZPPGJyPiZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsgW29yZy5vdmlydC5lbmdpbmUuY29yZS52ZHNicm9rZXIubW9uaXRvcmlu Zy5Qb2xsVm1TdGF0c1JlZnJlc2hlcl08YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAo RUUtTWFuYWdlZFRocmVhZEZhY3RvcnktZW5naSBuZVNjaGVkdWxlZC1UaHJlYWQtOTgpIFtdIEZh aWxlZCB0bzxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IGZldGNoPGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgdm1zIGluZm8gZm9yIGhvc3QgJ2hvc3RlZC1lbmdpbjInIC0g c2tpcHBpbmcgVk1zIG1vbml0b3JpbmcuPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsg NjU2OSAyMDE4LTA0LTIwIDE3OjEzOjE5LDcxMCswOCBJTkZPPGJyPiZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsgW29yZy5vdmlydC52ZHNtLmpzb25ycGMuY2xpZW50LnJlYWN0b3JzLlJlYWN0 b3JDbGllbnRdIChTU0wgU3RvbXA8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBSZWFj dG9yKTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IFtdIENvbm5lY3RpbmcgdG8gaG9z dGVkLWVuZ2luZTIvMTkyLjE2OC4xMjIuNjU2NTcwIDIwMTgtMDQtMjA8YnI+Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyAxNzoxMzoyMiw3MzArMDggRVJST1I8YnI+Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnZkc2Jyb2tlci52ZHNicm9rZXIu R2V0QWxsVm1TdGF0c1ZEU0NvbW1hbmRdPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsg KEVFLU1hbmFnZWRUaHJlYWRGYWN0b3J5LWVuIGdpbmVTY2hlZHVsZWQtVGhyZWFkLTQ1KSBbXSBD b21tYW5kPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgJ0dldEFsbFZtU3RhdHNWRFND b21tYW5kKEhvc3ROYW1lID0gaG9zdGVkLWVuZ2luZS10Y2h5cDIsPGJyPiZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsgVmRzSWRWRFNDb21tYW5kUGFyYW1ldGVyc0Jhc2U6e2hvczxicj4mZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IHRJZD0nYTU0MjhlZjctOWRmNi00YTg2LTkxZGUtN2Uz NmZkYTM0MGZhJ30pJyBleGVjdXRpb24gZmFpbGVkOjxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7IGphdmEubmV0Lk5vUm91dGVUb0hvc3RFeGNlcHRpb246IE5vIHJvdXRlIHRvIGhvc3Q8 YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyA2NTcxIDIwMTgtMDQtMjAgMTc6MTM6MjIs NzMyKzA4IElORk88YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBbb3JnLm92aXJ0LmVu Z2luZS5jb3JlLnZkc2Jyb2tlci5tb25pdG9yaW5nLlBvbGxWbVN0YXRzUmVmcmVzaGVyXTxicj4m Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IChFRS1NYW5hZ2VkVGhyZWFkRmFjdG9yeS1lbmdp IG5lU2NoZWR1bGVkLVRocmVhZC00NSkgW10gRmFpbGVkIHRvPGJyPiZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsgZmV0Y2g8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyB2bXMgaW5m byBmb3IgaG9zdCAnaG9zdGVkLWVuZ2luZTInIC0gc2tpcHBpbmcgVk1zIG1vbml0b3JpbmcuPGJy PiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyAtLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsgRnJvbTogTWFydGluIFNpdmFrICZsdDttc2l2YWtAcmVkaGF0LmNvbSZndDs8YnI+ Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBUbzogZGh5MzM2ICZsdDtkaHkzMzZAc2luYS5j b20mZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgQ2M6IHVzZXJzICZsdDt1c2Vy c0BvdmlydC5vcmcmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgU3ViamVjdDog UmU6IFtvdmlydC11c2Vyc10gu9i4tKO6UmU6IEhvc3RlZC1lbmdpbmUgY2FuIG5vdF9zd2l0Y2g8 YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBEYXRlOiAyMDE4LTA0LTIwIDE2OjQwPGJy PiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IEhpLDxicj4mZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7IHlvdXIgb3ZpcnQtaG9zdGVkLWVuZ2luZS1oYSBwYWNrYWdlIGlzIHRv byBvbGQuIFlvdSBuZWVkIGF0IGxlYXN0PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsg Mi4xLjkgdG8gcHJvcGVybHkgc3VwcG9ydCA0LjIgZW5naW5lLiBUaGUgc2FtZSBhcHBsaWVzIHRv IHZkc20uPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgUGxlYXNlPGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgdXBncmFkZSB0aGUgbm9kZS48YnI+Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyBCZXN0IHJlZ2FyZHM8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyBNYXJ0aW4gU2l2YWs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBPbiBGcmksIEFw ciAyMCwgMjAxOCBhdCAzOjU4IEFNLCAmbHQ7ZGh5MzM2QHNpbmEuY29tJmd0OyB3cm90ZTo8YnI+ Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgSGkgSSBmaW5kIHNvbWUgZXJyb3IgbG9n cyBpbiAvdmFyL2xvZy9vdmlydC1ob3N0ZWQtZW5naW5lLWhhL2Jyb2tlci48YnI+Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsgW3Jvb3RAaG9zdGVkLWVuZ2luZTIgfl0jIGxsIC9yaGV2L2RhdGEtY2VudGVyL21udDxicj4m Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyB0b3RhbCAwPGJyPiZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7IGRyd3hyLXhyLXguIDMgdmRzbSBrdm0gNzYgQXByIDE4IDIyOjI4 IDE5Mi4xNjguMTIyLjIxODpfZXhwb3J0c19kYXRhPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7IGRyd3hyLXhyLXguIDMgdmRzbSBrdm0gNzYgQXByIDE4IDIyOjEyPGJyPiZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IDE5Mi4xNjguMTIyLjIxODpfZXhwb3J0c19ob3N0 ZWQtZW5naW5lLXRlc3QxPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IFtyb290 QGhvc3RlZC1lbmdpbmUyIH5dIyBsbDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyAvcmhldi9kYXRhLWNlbnRlci9tbnQvMTkyLjE2OC4xMjIuMjE4XDpfZXhwb3J0c19ob3N0ZWQt ZW5naW5lLXRlc3QxLzxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyB0b3RhbCAw PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IGRyd3hyLXhyLXguIDUgdmRzbSBr dm0gNTAgQXByIDE4IDIyOjE0PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IDhh NzM0MjA1LTY1YjctNDgwMS1iN2YwLWQzODBlYjQ1ZGJhZTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyAtcnd4ci14ci14LiAxIHZkc20ga3ZtIDAgQXByIDIwIDA5OjU0IF9fRElS RUNUX0lPX1RFU1RfXzxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyB1dWlkIDhhNzM0MjA1LTY1YjctNDgwMS1iN2Yw LWQzODBlYjQ1ZGJhZSBpcyBpbjxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAv cmhldi9kYXRhLWNlbnRlci9tbnQvMTkyLjE2OC4xMjIuMjE4XDpfZXhwb3J0c19ob3N0ZWQtZW5n aW5lLXRlc3QxLzxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBidXQgYnJva2Vy IGZpbmQgaXQgaW4gL3JoZXYvZGF0YS1jZW50ZXIvbW50LCBpcyBpdCBteSB2ZXJzaW9uIGlzPGJy PiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IGVycm9yPzxicj4mZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBteTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyBvdmlydC1ob3N0ZWQtZW5naW5lLWhhIHZlcnNpb24gaXMgMi4xLjUsIHZkc20gaXMgNC4yMC41 o6w8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgb3ZpcnQtZW5naW5lIGlzIDQu Mjxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyBNYWluVGhyZWFkOjpJTkZPOjoyMDE4LTA0LTE5PGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJy PiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IDE5OjI2OjMx LDQ3OTo6bGlzdGVuZXI6OjQxOjpvdmlydF9ob3N0ZWRfZW5naW5lX2hhLmJyb2tlci5saXN0ZW5l ci5MaXN0ZW5lcjo6KF9faW5pdF9fKTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyBJbml0aWFsaXppbmcgU29ja2V0U2VydmVyPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7IE1haW5UaHJlYWQ6OklORk86OjIwMTgtMDQtMTk8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgMTk6MjY6MzEsNDgwOjpsaXN0 ZW5lcjo6NTY6Om92aXJ0X2hvc3RlZF9lbmdpbmVfaGEuYnJva2VyLmxpc3RlbmVyLkxpc3RlbmVy OjooX19pbml0X18pPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IFNvY2tldFNl cnZlciByZWFkeTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBUaHJlYWQtMTo6 SU5GTzo6MjAxOC0wNC0xOTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4m Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAxOToyNjozMSw1NTg6Omxpc3RlbmVyOjoxMzQ6Om92aXJ0X2hv c3RlZF9lbmdpbmVfaGEuYnJva2VyLmxpc3RlbmVyLkNvbm5lY3Rpb25IYW5kbGVyOjooc2V0dXAp PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IENvbm5lY3Rpb24gZXN0YWJsaXNo ZWQ8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgVGhyZWFkLTE6OkVSUk9SOjoy MDE4LTA0LTE5PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJy PiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7IDE5OjI2OjMxLDU1OTo6bGlzdGVuZXI6OjE5Mjo6b3ZpcnRfaG9zdGVkX2Vu Z2luZV9oYS5icm9rZXIubGlzdGVuZXIuQ29ubmVjdGlvbkhhbmRsZXI6OihoYW5kbGUpPGJyPiZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IEVycm9yIGhhbmRsaW5nIHJlcXVlc3QsIGRh dGE6ICdzZXQtc3RvcmFnZS1kb21haW4gRmlsZXN5c3RlbUJhY2tlbmQ8YnI+Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgZG9tX3R5cGU9bmZzMyBzZF91dWlkPThhNzM0MjA1LTY1Yjct NDgwMS1iN2YwLWQzODBlYjQ1ZGJhZSc8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOjxicj4mZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyBGaWxlPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7ICIvdXNyL2xpYi9weXRob24yLjcvc2l0ZS1wYWNrYWdl cy9vdmlydF9ob3N0ZWRfZW5naW5lX2hhL2Jyb2tlci9saXN0ZW5lci5weSIsPGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IGxpbmUgMTY2LCBpbiBoYW5kbGU8YnI+Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgZGF0YSk8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsgRmlsZTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyAiL3Vzci9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMvb3ZpcnRf aG9zdGVkX2VuZ2luZV9oYS9icm9rZXIvbGlzdGVuZXIucHkiLDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyBsaW5lIDI5OSwgaW4gX2Rpc3BhdGNoPGJyPiZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7IC5zZXRfc3RvcmFnZV9kb21haW4oY2xpZW50LCBzZF90eXBlLCAq Km9wdGlvbnMpPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IEZpbGU8YnI+Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgIi91 c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL292aXJ0X2hvc3RlZF9lbmdpbmVfaGEvYnJv a2VyL3N0b3JhZ2VfYnJva2VyLnB5Iiw8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsgbGluZSA2NiwgaW4gc2V0X3N0b3JhZ2VfZG9tYWluPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7IHNlbGYuX2JhY2tlbmRzW2NsaWVudF0uY29ubmVjdCgpPGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IEZpbGU8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+ Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgIi91c3IvbGliL3B5dGhvbjIuNy9zaXRl LXBhY2thZ2VzL292aXJ0X2hvc3RlZF9lbmdpbmVfaGEvbGliL3N0b3JhZ2VfYmFja2VuZHMucHki LDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBsaW5lIDQ2MiwgaW4gY29ubmVj dDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBzZWxmLl9kb21fdHlwZSk8YnI+ Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgRmlsZTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4m Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAiL3Vzci9saWIvcHl0aG9u Mi43L3NpdGUtcGFja2FnZXMvb3ZpcnRfaG9zdGVkX2VuZ2luZV9oYS9saWIvc3RvcmFnZV9iYWNr ZW5kcy5weSIsPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IGxpbmUgMTA3LCBp biBnZXRfZG9tYWluX3BhdGg8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgIiBp biB7MX0iLmZvcm1hdChzZF91dWlkLCBwYXJlbnQpKTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyBCYWNrZW5kRmFpbHVyZUV4Y2VwdGlvbjogcGF0aCB0byBzdG9yYWdlIGRvbWFp bjxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyA4YTczNDIwNS02NWI3LTQ4MDEt YjdmMC1kMzgwZWI0NWRiYWUgbm90IGZvdW5kIGluPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7IC9yaGV2L2RhdGEtY2VudGVyL21udDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyBUaHJlYWQtMTo6SU5GTzo6MjAxOC0wNC0xOTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4m Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAxOToyNjozMSw1NjM6Omxp c3RlbmVyOjoxODY6Om92aXJ0X2hvc3RlZF9lbmdpbmVfaGEuYnJva2VyLmxpc3RlbmVyLkNvbm5l Y3Rpb25IYW5kbGVyOjooaGFuZGxlKTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyBDb25uZWN0aW9uIGNsb3NlZDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBU aHJlYWQtMjo6SU5GTzo6MjAxOC0wNC0xOTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxi cj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAxOToyNjo0NCw2MDE6Omxpc3RlbmVyOjoxMzQ6 Om92aXJ0X2hvc3RlZF9lbmdpbmVfaGEuYnJva2VyLmxpc3RlbmVyLkNvbm5lY3Rpb25IYW5kbGVy Ojooc2V0dXApPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IENvbm5lY3Rpb24g ZXN0YWJsaXNoZWQ8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgLS0tLS0g1K3KvNPKvP4gLS0tLS08YnI+Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgt6K8/sjLo7ombHQ7ZGh5MzM2QHNpbmEuY29tJmd0 Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyDK1bz+yMujuiJNYXJ0aW4gU2l2 YWsiICZsdDttc2l2YWtAcmVkaGF0LmNvbSZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsgs63LzcjLo7p1c2VycyAmbHQ7dXNlcnNAb3ZpcnQub3JnJmd0Ozxicj4mZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyDW98zio7pbb3ZpcnQtdXNlcnNdILvYuLSjulJlOiBI b3N0ZWQtZW5naW5lIGNhbiBub3Rfc3dpdGNoPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7IMjVxtqjujIwMTjE6jA01MIyMMjVIDA5teMzMLfWPGJyPiZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IGxpYnZp cnQgaGFzIG5vdCBlcnJvciBsb2dzIC4gSSBvbmx5IGZpbmQgc29tZSBlcnJvciBmb3IgdmRzbS48 YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgdmRzbSBsb2cgaXM6PGJyPiZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IDIwMTgtMDQtMjAgMDk6MjQ6NTIsNjEwKzA4MDAg SU5GTyAoanNvbnJwYy8xKSBbdmRzbS5hcGldIEZJTklTSDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyBnZXRWb2x1bWVJbmZvIHJldHVybj17J2luZm8nOiB7J3N0YXR1cyc6ICdP SycsICdkb21haW4nOjxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAnOGE3MzQy MDUtNjViNy00ODAxLWI3ZjAtZDM4MGViNDVkYmFlJywgJ3ZvbHR5cGUnOiAnTEVBRicsPGJyPiZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7ICdkZXNjcmlwdGlvbic6PGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7ICdob3N0ZWQtZW5naW5lLmxvY2tzcGFjZScsICdwYXJl bnQnOjxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAnMDAwMDAwMDAtMDAwMC0w MDAwLTAwMDAtMDAwMDAwMDAwMDAwJyw8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsgJ2Zvcm1hdCc6ICdSQVcnLCAnZ2VuZXJhdGlvbic6IDAsICdpbWFnZSc6PGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7ICc2MTEyNzJiZC1jMmNjLTQyYmMtOTRlMi05YWE1MmU3 NTRjMzUnLCAnY3RpbWUnOiAnMTUyNDAzMjAzNycsPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7ICdkaXNrdHlwZSc6PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 ICcyJywgJ2xlZ2FsaXR5JzogJ0xFR0FMJywgJ210aW1lJzogJzAnLCAnYXBwYXJlbnRzaXplJzog JzEwNDg1NzYnLDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAnY2hpbGRyZW4n OiBbXSwgJ3Bvb2wnOiAnJywgJ2NhcGFjaXR5JzogJzEwNDg1NzYnLCAndXVpZCc6PGJyPiZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IHUnNzAzN2FhYzYtN2M4ZS00ZWZkLTgyZjctY2E2 MThjOTUzZmU2JywgJ3RydWVzaXplJzogJzEwNDg1NzYnLDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyAndHlwZSc6PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 ICdQUkVBTExPQ0FURUQnLCAnbGVhc2UnOiB7J293bmVycyc6IFtdLCAndmVyc2lvbic6IE5vbmV9 fX08YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgZnJvbT06OjEsNDgzMDYsPGJy PiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IHRhc2tfaWQ9MDNhNzkzOGUtOGFmYi00 YjE2LWI4ZGQtMTI2YzJiMWY1ZDUyIChhcGk6NTIpPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7IDIwMTgtMDQtMjAgMDk6MjQ6NTIsNjExKzA4MDAgSU5GTyAoanNvbnJwYy8xKTxi cj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBbanNvbnJwYy5Kc29uUnBjU2VydmVy XTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBSUEM8YnI+Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgY2FsbCBWb2x1bWUuZ2V0SW5mbyBzdWNjZWVkZWQgaW4gMC4w MyBzZWNvbmRzIChfX2luaXRfXzo2MzApPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7IDIwMTgtMDQtMjAgMDk6MjQ6NTQsMTEzKzA4MDAgRVJST1IgKHBlcmlvZGljLzMpPGJyPiZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IFt2aXJ0LnBlcmlvZGljLk9wZXJhdGlvbl08 YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgJmx0O3Zkc20udmlydC5zYW1wbGlu Zy5WTUJ1bGtzdGF0c01vbml0b3Igb2JqZWN0IGF0IDB4MWU5MmY5MCZndDs8YnI+Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgb3BlcmF0aW9uPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7IGZhaWxlZDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAo cGVyaW9kaWM6MjE1KTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBUcmFjZWJh Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7IEZpbGUgIi91c3IvbGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL3Zkc20vdmlydC9w ZXJpb2RpYy5weSIsIGxpbmU8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgMjEz LDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBpbiBfX2NhbGxfXzxicj4mZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBzZWxmLl9mdW5jKCk8YnI+Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L3NpdGUtcGFja2Fn ZXMvdmRzbS92aXJ0L3NhbXBsaW5nLnB5IiwgbGluZTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyA1MjIsPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IGluIF9f Y2FsbF9fPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IHNlbGYuX3NlbmRfbWV0 cmljcygpPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IEZpbGUgIi91c3IvbGli L3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL3Zkc20vdmlydC9zYW1wbGluZy5weSIsIGxpbmU8YnI+ Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgNTM4LDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyBpbiBfc2VuZF9tZXRyaWNzPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7IHZtX3NhbXBsZS5pbnRlcnZhbCk8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L3NpdGUtcGFja2FnZXMvdmRzbS92 aXJ0L3Ztc3RhdHMucHkiLCBsaW5lPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 IDQ1LDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBpbjxicj4mZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBwcm9kdWNlPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7IG5ldHdvcmtzKHZtLCBzdGF0cywgZmlyc3Rfc2FtcGxlLCBsYXN0X3NhbXBsZSwg aW50ZXJ2YWwpPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IEZpbGUgIi91c3Iv bGliL3B5dGhvbjIuNy9zaXRlLXBhY2thZ2VzL3Zkc20vdmlydC92bXN0YXRzLnB5IiwgbGluZTxi cj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAzMjIsPGJyPiZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7IGluPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 IG5ldHdvcmtzPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IGlmIG5pYy5uYW1l LnN0YXJ0c3dpdGgoJ2hvc3RkZXYnKTo8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsgQXR0cmlidXRlRXJyb3I6IG5hbWU8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsgMjAxOC0wNC0yMCAwOToyNDo1NCw4MDArMDgwMCBJTkZPIChSZWFjdG9yIHRocmVhZCk8YnI+ Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgW1Byb3RvY29sRGV0ZWN0b3IuQWNjZXB0 b3JJbXBsXSBBY2NlcHRlZCBjb25uZWN0aW9uIGZyb20gOjoxOjQ4MzA4PGJyPiZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IChwcm90b2NvbGRldGVjdG9yOjYxKTxicj4mZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAyMDE4LTA0LTIwIDA5OjI0OjU0LDgxMCswODAwIElORk8g KFJlYWN0b3IgdGhyZWFkKTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBbUHJv dG9jb2xEZXRlY3Rvci5EZXRlY3Rvcl0gRGV0ZWN0ZWQgcHJvdG9jb2wgc3RvbXAgZnJvbSA6OjE6 NDgzMDg8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgKHByb3RvY29sZGV0ZWN0 b3I6MTI1KTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAyMDE4LTA0LTIwIDA5 OjI0OjU0LDgxMCswODAwIElORk8gKFJlYWN0b3IgdGhyZWFkKTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyBbQnJva2VyLlN0b21wQWRhcHRlcl08YnI+Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsgUHJvY2Vzc2luZyBDT05ORUNUIHJlcXVlc3QgKHN0b21wcmVhY3Rv cjoxMDMpPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IDIwMTgtMDQtMjAgMDk6 MjQ6NTQsODE4KzA4MDAgSU5GTyAoSnNvblJwYyAoU3RvbXBSZWFjdG9yKSk8YnI+Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgW0Jyb2tlci5TdG9tcEFkYXB0ZXJdIFN1YnNjcmliZSBj b21tYW5kIHJlY2VpdmVkIChzdG9tcHJlYWN0b3I6MTMyKTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyAyMDE4LTA0LTIwIDA5OjI0OjU1LDExOSswODAwIElORk8gKGpzb25ycGMv NikgW2FwaS5ob3N0XSBTVEFSVDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBn ZXRIYXJkd2FyZUluZm8oKSBmcm9tPTo6MSw0ODMwOCAoYXBpOjQ2KTxicj4mZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAt LS0tLSDUrcq808q8/iAtLS0tLTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyC3 orz+yMujuk1hcnRpbiBTaXZhayAmbHQ7bXNpdmFrQHJlZGhhdC5jb20mZ3Q7PGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IMrVvP7Iy6O6ZGh5MzM2ICZsdDtkaHkzMzZAc2luYS5j b20mZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7ILOty83Iy6O6dXNlcnMg Jmx0O3VzZXJzQG92aXJ0Lm9yZyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsg1vfM4qO6UmU6IFtvdmlydC11c2Vyc10gSG9zdGVkLWVuZ2luZSBjYW4gbm90IHN3aXRjaDxi cj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyDI1cbao7oyMDE4xOowNNTCMTnI1SAy MLXjMTa31jxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyBXZSBuZWVkIG1vcmUgdGhhbiBqdXN0IHRoaXMgc21hbGwgbG9nIHNuaXBwZXQuIFBsZWFzZSBj aGVjayB0aGUgdmRzbTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBhbmQgbGli dmlydCBsb2dzIGFzIHdlbGwuPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IEJl c3QgcmVnYXJkczxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBNYXJ0aW4gU2l2 YWs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgT24gVGh1LCBBcHIgMTksIDIw MTggYXQgMjowNSBQTSwgJmx0O2RoeTMzNkBzaW5hLmNvbSZndDsgd3JvdGU6PGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBIaaOsPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyBJIGRlcGxveSB0aHJlZSBub2RlIHdpdGggaG9zdGVkIGVuZ2luZSwg SSBmb3JjZSBzaHV0IGRvd24gYSBub2RlPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyB3aGljaDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgSG9z dC1lbmdpbmUgVk0gaXMgcnVuLCBCdXQgaG9zdGVkIGVuZ2luZSBWTSBpbiBvdGhlciBub2RlcyBj YW4gbm90PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBydW4uPGJyPiZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsgSSBmaW5kIHNvbWUgZXJyb3IgaW4gL3Zhci9sb2cvb3ZpcnQtaG9z dGVkLWVuZ2luZS1oYS9hZ2VudC5sb2c8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBNYWluVGhyZWFk OjpJTkZPOjoyMDE4LTA0LTE5PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+ Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IDE5OjU2OjM1LDc4Nzo6aG9zdGVk X2VuZ2luZTo6MTE5Mjo6b3ZpcnRfaG9zdGVkX2VuZ2luZV9oYS5hZ2VudC5ob3N0ZWRfZW5naW5l Lkhvc3RlZEVuZ2luZTo6KF9jbGVhbl92ZHNtX3N0YXRlKTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsgQ2xlYW5pbmcgc3RhdGUgZm9yIG5vbi1ydW5uaW5nIFZNPGJyPiZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBNYWluVGhyZWFkOjpJTkZPOjoyMDE4 LTA0LTE5PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4m Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IDE5OjU2OjQyLDU4Nzo6aG9zdGVkX2VuZ2luZTo6MTE3 Njo6b3ZpcnRfaG9zdGVkX2VuZ2luZV9oYS5hZ2VudC5ob3N0ZWRfZW5naW5lLkhvc3RlZEVuZ2lu ZTo6KF9jbGVhbl92ZHNtX3N0YXRlKTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsgVmRzbSBzdGF0ZSBmb3IgVk0gY2xlYW48YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7IE1haW5UaHJlYWQ6OklORk86OjIwMTgtMDQtMTk8YnI+Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+ Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsgMTk6NTY6NDIsNTg5Ojpob3N0ZWRfZW5naW5lOjoxMTI1OjpvdmlydF9ob3N0ZWRfZW5naW5l X2hhLmFnZW50Lmhvc3RlZF9lbmdpbmUuSG9zdGVkRW5naW5lOjooX3N0YXJ0X2VuZ2luZV92bSk8 YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IFN0YXJ0aW5nIHZtIHVzaW5n IGAvdXNyL3NiaW4vaG9zdGVkLWVuZ2luZSAtLXZtLXN0YXJ0YDxicj4mZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgTWFpblRocmVhZDo6SU5GTzo6MjAxOC0wNC0xOTxicj4mZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxi cj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyAxOTo1Njo0Nyw1OTk6Omhvc3RlZF9lbmdpbmU6OjExMzE6Om92aXJ0X2hvc3Rl ZF9lbmdpbmVfaGEuYWdlbnQuaG9zdGVkX2VuZ2luZS5Ib3N0ZWRFbmdpbmU6Oihfc3RhcnRfZW5n aW5lX3ZtKTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgc3Rkb3V0Ojxi cj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgTWFpblRocmVhZDo6SU5GTzo6 MjAxOC0wNC0xOTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8 YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAxOTo1Njo0Nyw2MDA6Omhvc3RlZF9lbmdpbmU6 OjExMzI6Om92aXJ0X2hvc3RlZF9lbmdpbmVfaGEuYWdlbnQuaG9zdGVkX2VuZ2luZS5Ib3N0ZWRF bmdpbmU6Oihfc3RhcnRfZW5naW5lX3ZtKTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsgc3RkZXJyOiBWaXJ0dWFsIG1hY2hpbmUgZG9lcyBub3QgZXhpc3Q6IHsndm1JZCc6 PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyB1JzA4YmJkNjgwLWE4YTct NDI2Ny04MmU3LTg5ZjM2ZTg3ZTkzMCd9PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgTWFpblRocmVh ZDo6SU5GTzo6MjAxOC0wNC0xOTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJy PiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAxOTo1Njo0Nyw2MDA6Omhvc3Rl ZF9lbmdpbmU6OjExNDQ6Om92aXJ0X2hvc3RlZF9lbmdpbmVfaGEuYWdlbnQuaG9zdGVkX2VuZ2lu ZS5Ib3N0ZWRFbmdpbmU6Oihfc3RhcnRfZW5naW5lX3ZtKTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsgRW5naW5lIFZNIHN0YXJ0ZWQgb24gbG9jYWxob3N0PGJyPiZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBNYWluVGhyZWFkOjpJTkZPOjoyMDE4LTA0 LTE5PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxi cj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IDE5OjU2OjQ3LDYwOTo6YnJva2VybGluazo6MTExOjpvdmly dF9ob3N0ZWRfZW5naW5lX2hhLmxpYi5icm9rZXJsaW5rLkJyb2tlckxpbms6Oihub3RpZnkpPGJy PiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBUcnlpbmc6IG5vdGlmeSB0aW1l PTE1MjQxMzkwMDcuNjEgdHlwZT1zdGF0ZV90cmFuc2l0aW9uPGJyPiZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBkZXRhaWw9RW5naW5lU3RhcnQtRW5naW5lU3RhcnRpbmcgaG9z dG5hbWU9J2hvc3RlZC1lbmdpbmUyJzxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsgTWFpblRocmVhZDo6SU5GTzo6MjAxOC0wNC0xOTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAxOTo1 Njo0Nyw2NzA6OmJyb2tlcmxpbms6OjEyMTo6b3ZpcnRfaG9zdGVkX2VuZ2luZV9oYS5saWIuYnJv a2VybGluay5Ccm9rZXJMaW5rOjoobm90aWZ5KTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsgU3VjY2Vzcywgd2FzIG5vdGlmaWNhdGlvbiBvZiBzdGF0ZV90cmFuc2l0aW9u PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAoRW5naW5lU3RhcnQtRW5n aW5lU3RhcnRpbmcpPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBzZW50 PyBzZW50PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBNYWluVGhyZWFk OjpJTkZPOjoyMDE4LTA0LTE5PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+ Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IDE5OjU2OjQ3LDY3MDo6aG9zdGVk X2VuZ2luZTo6NjA0OjpvdmlydF9ob3N0ZWRfZW5naW5lX2hhLmFnZW50Lmhvc3RlZF9lbmdpbmUu SG9zdGVkRW5naW5lOjooX2luaXRpYWxpemVfdmRzbSk8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7IEluaXRpYWxpemluZyBWRFNNPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyBNYWluVGhyZWFkOjpJTkZPOjoyMDE4LTA0LTE5PGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7IDE5OjU2OjUwLDA5NTo6aG9zdGVkX2VuZ2luZTo6NjMwOjpvdmlydF9ob3N0ZWRfZW5n aW5lX2hhLmFnZW50Lmhvc3RlZF9lbmdpbmUuSG9zdGVkRW5naW5lOjooX2luaXRpYWxpemVfc3Rv cmFnZV9pbWFnZXMpPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBDb25u ZWN0aW5nIHRoZSBzdG9yYWdlPGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyBNYWluVGhyZWFkOjpJTkZPOjoyMDE4LTA0LTE5PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+ Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IDE5OjU2OjUw LDA5Njo6c3RvcmFnZV9zZXJ2ZXI6OjIyMDo6b3ZpcnRfaG9zdGVkX2VuZ2luZV9oYS5saWIuc3Rv cmFnZV9zZXJ2ZXIuU3RvcmFnZVNlcnZlcjo6KHZhbGlkYXRlX3N0b3JhZ2Vfc2VydmVyKTxicj4m Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgVmFsaWRhdGluZyBzdG9yYWdlIHNl cnZlcjxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgTWFpblRocmVhZDo6 SU5GTzo6MjAxOC0wNC0xOTxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8 YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZndDsmZ3Q7 Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyAxOTo1Njo1Miw0NDk6Omhvc3RlZF9l bmdpbmU6OjYzOTo6b3ZpcnRfaG9zdGVkX2VuZ2luZV9oYS5hZ2VudC5ob3N0ZWRfZW5naW5lLkhv c3RlZEVuZ2luZTo6KF9pbml0aWFsaXplX3N0b3JhZ2VfaW1hZ2VzKTxicj4mZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgU3RvcmFnZSBkb21haW4gcmVwb3J0ZWQgYXMgdmFsaWQg YW5kIHJlY29ubmVjdCBpcyBub3QgZm9yY2VkLjxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsm Z3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7PGJyPiZn dDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXzxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7 Jmd0OyZndDsgVXNlcnMgbWFpbGluZyBsaXN0PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZn dDsmZ3Q7Jmd0OyBVc2Vyc0BvdmlydC5vcmc8YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7IGh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2Vyczxi cj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDs8YnI+Jmd0OyZndDsmZ3Q7Jmd0 OyZndDsmZ3Q7Jmd0OyZndDsgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX188YnI+Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsgVXNlcnMgbWFpbGlu ZyBsaXN0PGJyPiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IFVzZXJzQG92aXJ0Lm9y Zzxicj4mZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyBodHRwOi8vbGlzdHMub3ZpcnQu b3JnL21haWxtYW4vbGlzdGluZm8vdXNlcnM8YnI+PC9kaXY+ --=-sinamail_alt_7a0e4b1d0545b8fbf1709c3d5daa23b9--

Hi,
hosted-engine1 : 192.168.122.66 hosted-engine2 : 192.168.122.223
But you said in an earlier email that:
I hava two node, A:192.168.122.65 , B:192.168.122.66
Make sure your names resolve properly. So far it does exactly what it is supposed to do - when the engine is unreachable, it tries restarting it. Did you really use hosted-engine.ovirt.com as the fqdn? Are you sure it resolves to whatever IP the VM has (192.168.122.91)? Maybe you used /etc/hosts to configure the name on the first host and in the VM, but miss the record on the second host? What does $(host hosted-engine.ovirt.com) show you?
I can not visit web UI, but my engine VM is run, i can login it. engine has some error
VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' execution failed: java.net.NoRouteToHostException: No route to host
I told you before. This is normal as it is trying to figure out whether the host is up. Best regards Martin Sivak On Thu, Apr 26, 2018 at 4:14 AM, <dhy336@sina.com> wrote:
engine VM:192.168.122.91 hosted-engine1 : 192.168.122.66 hosted-engine2 : 192.168.122.223
I can not visit web UI, but my engine VM is run, i can login it. engine has some error
2018-04-25 18:35:03,401+08 INFO [org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient] (SSL Stomp Reactor) [] Connecting to hosted-engine1/192.168.122.66 2018-04-25 18:35:06,411+08 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] (EE-ManagedThreadFactory-engineScheduled-Thread-2) [] Command 'GetAllVmStatsVDSCommand(HostName = hosted-engine1,
VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' execution failed: java.net.NoRouteToHostException: No route to host ---------------------------------------------------------------------------------------------------------------------------------------- [root@hosted-engine2 ~]# hosted-engine --check-liveliness Hosted Engine is not up! ----------------------------------------------------------------------------------------------------------------------------------------- [root@hosted-engine2 ~]# curl http://hosted-engine.ovirt.com/ovirt-engine/services/health <html><head><title>Error</title></head><body>404 - Not Found</body></html>
Note: this command is blocked ,it takes 5 minutes ----------------------------------------------------------------------------------------------------------------------------------------- --== Host 1 status ==--
conf_on_shared_storage : True Status up-to-date : False Hostname : hosted-engine1 Host ID : 1 Engine status : unknown stale-data Score : 3400 stopped : False Local maintenance : False crc32 : 1eae8968 local_conf_timestamp : 48907 Host timestamp : 48907 Extra metadata (valid at timestamp): metadata_parse_version=1 metadata_feature_version=1 timestamp=48907 (Thu Apr 26 01:57:14 2018) host-id=1 score=3400 vm_conf_refresh_time=48907 (Thu Apr 26 01:57:15 2018) conf_on_shared_storage=True maintenance=False state=EngineUp stopped=False
--== Host 2 status ==--
conf_on_shared_storage : True Status up-to-date : True Hostname : hosted-engine2 Host ID : 2 Engine status : {"reason": "failed liveliness check", "health": "bad", "vm": "up", "detail": "Up"} Score : 3000 stopped : False Local maintenance : False crc32 : 1b92756d local_conf_timestamp : 44057 Host timestamp : 44057 Extra metadata (valid at timestamp): metadata_parse_version=1 metadata_feature_version=1 timestamp=44057 (Thu Apr 26 02:00:57 2018) host-id=2 score=3000 vm_conf_refresh_time=44057 (Thu Apr 26 02:00:57 2018) conf_on_shared_storage=True maintenance=False state=EngineStarting stopped=False
----- Original Message -----ovirt From: Martin Sivak <msivak@redhat.com> To: dhy336 <dhy336@sina.com> Cc: users <users@ovirt.org> Subject: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch Date: 2018-04-25 20:41
2018-04-25 18:35:06,411+08 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] (EE-ManagedThreadFactory-engineScheduled-Thread-2) [] Command 'GetAllVmStatsVDSCommand(HostName = hosted-engine1,
VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' execution failed: java.net.NoRouteToHostException: No route to host This is expected and normal. The ovirt-engine service is trying to find out whether host A is still unreachable or not. This is not the issue you are looking for. 192.168.122.66 has been powered off, and hosted engine VM run in 192.168.122.223, I think engine should connect to 192.168.122.223, You are mixing the IP of the engine VM and the IP of a host. The engine runs in VM with stable .122.223 (independent on which host the VM runs at) and manages two hosts .122.65 and .122.66. The engine constantly monitors all its hosts and that means it is trying to connect to them every now and then. Please execute the two following commands on Host B and show us the results (use the proper fqdn): $(hosted-engine --check-liveliness) $(curl http://{fqdn}/ovirt-engine/services/health) Best regards Martin Sivak On Wed, Apr 25, 2018 at 2:34 PM, <dhy336@sina.com> wrote: I login in engine VM by (#hosted-engine --console) , I find ovirt-engine process. and I find some error in /var/log/ovirt-engine/engine.log
192.168.122.66 has been powered off, and hosted engine VM run in 192.168.122.223, I think engine should connect to 192.168.122.223,
2018-04-25 18:35:03,401+08 INFO [org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient] (SSL Stomp Reactor) [] Connecting to hosted-engine1/192.168.122.66 2018-04-25 18:35:06,411+08 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] (EE-ManagedThreadFactory-engineScheduled-Thread-2) [] Command 'GetAllVmStatsVDSCommand(HostName = hosted-engine1,
VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' execution failed: java.net.NoRouteToHostException: No route to host 2018-04-25 18:35:06,411+08 INFO [org.ovirt.engine.core.vdsbroker.monitoring.PollVmStatsRefresher] (EE-ManagedThreadFactory-engineScheduled-Thread-2) [] Failed to fetch vms info for host 'hosted-engine1' - skipping VMs monitoring. 2018-04-25 18:35:21,420+08 INFO [org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient] (SSL Stomp Reactor) [] Connecting to hosted-engine1/192.168.122.66 2018-04-25 18:35:24,430+08 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] (EE-ManagedThreadFactory-engineScheduled-Thread-1) [] Command 'GetAllVmStatsVDSCommand(HostName = hosted-engine1,
VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' execution failed: java.net.NoRouteToHostException: No route to host 2018-04-25 18:35:24,431+08 INFO [org.ovirt.engine.core.vdsbroker.monitoring.PollVmStatsRefresher] (EE-ManagedThreadFactory-engineScheduled-Thread-1) [] Failed to fetch vms info for host 'hosted-engine1' - skipping VMs monitoring. 2018-04-25 18:35:39,438+08 INFO [org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient] (SSL Stomp Reactor) [] Connecting to hosted-engine1/192.168.122.66
----- Original Message ----- From: Martin Sivak <msivak@redhat.com> To: dhy336 <dhy336@sina.com> Cc: users <users@ovirt.org> Subject: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch Date: 2018-04-25 20:27
The engine will try connecting to all registered hosts all the time. That is normal. If your host can reach the engine then check whether it can reach http://{fqdn}/ovirt-engine/services/health as that is what is used to make sure the engine is alive. Best regards Martin Sivak On Wed, Apr 25, 2018 at 2:15 PM, <dhy336@sina.com> wrote:
Hi Martin,
thank you for answer my host can reach the engine, I confuse why engine connect to another host which has been power off by me?
----- Original Message ----- From: Martin Sivak <msivak@redhat.com> To: dhy336 <dhy336@sina.com>, users <users@ovirt.org> Subject: Re: Re: Re: Re: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch Date: 2018-04-25 19:12
It is as I expected: Engine status : {"reason": "failed liveliness check" The host can't talk to the ovirt-engine service. Please make sure the host can reach the engine fqdn as configured in /etc/ovirt-hosted-engine/hosted-engine.conf on the fqdn= line. You can check it manually by executing $(hosted-engine --check-liveliness) from the host. Best regards Martin Sivak On Wed, Apr 25, 2018 at 12:51 PM, <dhy336@sina.com> wrote:
Hi,
two node : 192.168.122.66 hosted-engine1 192.168.122.223 hosted-engine2
I power off hosted-engine1, so I do not attach hosted-engine1`s log,
[root@hosted-engine2 ~]# hosted-engine --vm-status
--== Host 1 status ==--
conf_on_shared_storage : True Status up-to-date : False Hostname : hosted-engine1 Host ID : 1 Engine status : unknown stale-data Score : 3400 stopped : False Local maintenance : False crc32 : a7af0afa local_conf_timestamp : 11485 Host timestamp : 11485 Extra metadata (valid at timestamp): metadata_parse_version=1 metadata_feature_version=1 timestamp=11485 (Wed Apr 25 10:08:34 2018) host-id=1 score=3400 vm_conf_refresh_time=11485 (Wed Apr 25 10:08:34 2018) conf_on_shared_storage=True maintenance=False state=EngineUp stopped=False
--== Host 2 status ==--
conf_on_shared_storage : True Status up-to-date : True Hostname : hosted-engine2 Host ID : 2 Engine status : {"reason": "failed liveliness check", "health": "bad", "vm": "up", "detail": "Up"} Score : 3000 stopped : False Local maintenance : False crc32 : a2e82883 local_conf_timestamp : 6278 Host timestamp : 6278 Extra metadata (valid at timestamp): metadata_parse_version=1 metadata_feature_version=1 timestamp=6278 (Wed Apr 25 10:37:44 2018) host-id=2 score=3000 vm_conf_refresh_time=6278 (Wed Apr 25 10:37:44 2018) conf_on_shared_storage=True maintenance=False state=EngineStop stopped=False timeout=Thu Jan 1 09:49:38 1970
----- Original Message ----- From: Martin Sivak <msivak@redhat.com> To: dhy336 <dhy336@sina.com>, users <users@ovirt.org> Subject: Re: Re: Re: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch Date: 2018-04-25 17:41
Please attach the output of hosted-engine --vm-status and the /var/log/ovirt-hosted-engine-ha/agent.log file from both hosts. The VM will restart if the ovirt-engine service does not become available within timeout. And that might mean couple of things - the FQDN of the engine is wrong, the engine needs something that was only available on the dead host (A) like some storage, host B cannot ping the gateway.. Best regards Martin Sivak On Wed, Apr 25, 2018 at 11:33 AM, <dhy336@sina.com> wrote:
sorry, I mis-represent,
I hava two node, A:192.168.122.65 , B:192.168.122.66 with hosted-engine.
testing engine HA :
first two node is up, and hosted-engine VM run in A, then I poweroff A, and after 3 minutes, B start it`s hosted engine VM, But it`s ovirt-engine connect to host A, and continue for about 10 minutes, then hosted engine VM restart. ----- Original Message ----- From: Martin Sivak <msivak@redhat.com> To: dhy336 <dhy336@sina.com> Subject: Re: Re: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch Date: 2018-04-25 17:11
Your hosted engine VM has its own address that does not depend on which host it is currently running. So it should be available on the same address no matter where the VM is running. Best regards Martin Sivak On Wed, Apr 25, 2018 at 9:07 AM, <dhy336@sina.com> wrote:
>> I deploy two node for hosted engine, first hosted engine VM run in >> 192.168.122.65, I power off this host, hosted-engine VM switch >> another host,but ovirt engine still connect 192.168.122.65. if >> restart >> ovirt-engine server, it is work.
I think this issue is error, because hosted engine VM has power up in another host( 192.168.122.66), so hosted engine should connect to host( 192.168.122.66), not connet to host(192.168.122.66)?
thanks
----- Original Message ----- From: Martin Sivak <msivak@redhat.com> To: dhy336 <dhy336@sina.com> Cc: users <users@ovirt.org> Subject: Re: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch Date: 2018-04-20 18:28
Hi, No, this is not an error. You killed the host without moving it to maintenance first. The engine has no way to distinguish this from temporary network failure for example. Give it some time and the host will move its status to one of the error states and handle the highly available VMs on it (if fencing is properly configured). Best regards Martin Sivak On Fri, Apr 20, 2018 at 12:13 PM, <dhy336@sina.com> wrote: > this process is not error ? > ----- Original Message ----- > From: Martin Sivak <msivak@redhat.com> > To: dhy336 <dhy336@sina.com> > Cc: users <users@ovirt.org> > Subject: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch > Date: 2018-04-20 18:05 > > > Hi, > the engine does not know you killed the host. It will notice > eventually and handle the situation. Just give it time (5 minutes or > so). > Best regards > -- > Martin Sivak > SLA / oVirt > On Fri, Apr 20, 2018 at 12:00 PM, <dhy336@sina.com> wrote: >> Hi, thanks for your feedback. I hava another qeustions >> >> I deploy two node for hosted engine, first hosted engine VM run in >> 192.168.122.65, I power off this host, hosted-engine VM switch >> another host,but ovirt engine still connect 192.168.122.65. if >> restart >> ovirt-engine server, it is work. >> >> >> 2018-04-20 17:13:04,692+08 ERROR >> [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] >> (EE-ManagedThreadFactory-en gineScheduled-Thread-98) [] Command >> 'GetAllVmStatsVDSCommand(HostName = hosted-engine2, >> VdsIdVDSCommandParametersBase:{hos >> tId='a5428ef7-9df6-4a86-91de-7e36fda340fa'})' execution failed: >> java.net.NoRouteToHostException: No route to host >> 6568 2018-04-20 17:13:04,693+08 INFO >> [org.ovirt.engine.core.vdsbroker.monitoring.PollVmStatsRefresher] >> (EE-ManagedThreadFactory-engi neScheduled-Thread-98) [] Failed to >> fetch >> vms info for host 'hosted-engin2' - skipping VMs monitoring. >> 6569 2018-04-20 17:13:19,710+08 INFO >> [org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient] (SSL Stomp >> Reactor) >> [] Connecting to hosted-engine2/192.168.122.656570 2018-04-20 >> 17:13:22,730+08 ERROR >> [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] >> (EE-ManagedThreadFactory-en gineScheduled-Thread-45) [] Command >> 'GetAllVmStatsVDSCommand(HostName = hosted-engine-tchyp2, >> VdsIdVDSCommandParametersBase:{hos >> tId='a5428ef7-9df6-4a86-91de-7e36fda340fa'})' execution failed: >> java.net.NoRouteToHostException: No route to host >> 6571 2018-04-20 17:13:22,732+08 INFO >> [org.ovirt.engine.core.vdsbroker.monitoring.PollVmStatsRefresher] >> (EE-ManagedThreadFactory-engi neScheduled-Thread-45) [] Failed to >> fetch >> vms info for host 'hosted-engine2' - skipping VMs monitoring. >> >> ----- Original Message ----- >> From: Martin Sivak <msivak@redhat.com> >> To: dhy336 <dhy336@sina.com> >> Cc: users <users@ovirt.org> >> Subject: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch >> Date: 2018-04-20 16:40 >> >> >> Hi, >> your ovirt-hosted-engine-ha package is too old. You need at least >> 2.1.9 to properly support 4.2 engine. The same applies to vdsm. >> Please >> upgrade the node. >> Best regards >> Martin Sivak >> On Fri, Apr 20, 2018 at 3:58 AM, <dhy336@sina.com> wrote: >>> Hi I find some error logs in >>> /var/log/ovirt-hosted-engine-ha/broker. >>> >>> [root@hosted-engine2 ~]# ll /rhev/data-center/mnt >>> total 0 >>> drwxr-xr-x. 3 vdsm kvm 76 Apr 18 22:28 >>> 192.168.122.218:_exports_data >>> drwxr-xr-x. 3 vdsm kvm 76 Apr 18 22:12 >>> 192.168.122.218:_exports_hosted-engine-test1 >>> [root@hosted-engine2 ~]# ll >>> >>> /rhev/data-center/mnt/192.168.122.218\:_exports_hosted-engine-test1/ >>> total 0 >>> drwxr-xr-x. 5 vdsm kvm 50 Apr 18 22:14 >>> 8a734205-65b7-4801-b7f0-d380eb45dbae >>> -rwxr-xr-x. 1 vdsm kvm 0 Apr 20 09:54 __DIRECT_IO_TEST__ >>> >>> uuid 8a734205-65b7-4801-b7f0-d380eb45dbae is in >>> >>> /rhev/data-center/mnt/192.168.122.218\:_exports_hosted-engine-test1/ >>> but broker find it in /rhev/data-center/mnt, is it my version is >>> error? >>> my >>> ovirt-hosted-engine-ha version is 2.1.5, vdsm is 4.20.5, >>> ovirt-engine is 4.2 >>> >>> MainThread::INFO::2018-04-19 >>> >>> >>> >>> >>> >>> >>> >>> >>> 19:26:31,479::listener::41::ovirt_hosted_engine_ha.broker.listener.Listener::(__init__) >>> Initializing SocketServer >>> MainThread::INFO::2018-04-19 >>> >>> >>> >>> >>> >>> >>> >>> >>> 19:26:31,480::listener::56::ovirt_hosted_engine_ha.broker.listener.Listener::(__init__) >>> SocketServer ready >>> Thread-1::INFO::2018-04-19 >>> >>> >>> >>> >>> >>> >>> >>> >>> 19:26:31,558::listener::134::ovirt_hosted_engine_ha.broker.listener.ConnectionHandler::(setup) >>> Connection established >>> Thread-1::ERROR::2018-04-19 >>> >>> >>> >>> >>> >>> >>> >>> >>> 19:26:31,559::listener::192::ovirt_hosted_engine_ha.broker.listener.ConnectionHandler::(handle) >>> Error handling request, data: 'set-storage-domain FilesystemBackend >>> dom_type=nfs3 sd_uuid=8a734205-65b7-4801-b7f0-d380eb45dbae' >>> Traceback (most recent call last): >>> File >>> >>> >>> >>> >>> >>> >>> >>> >>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/broker/listener.py", >>> line 166, in handle >>> data) >>> File >>> >>> >>> >>> >>> >>> >>> >>> >>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/broker/listener.py", >>> line 299, in _dispatch >>> .set_storage_domain(client, sd_type, **options) >>> File >>> >>> >>> >>> >>> >>> >>> >>> >>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/broker/storage_broker.py", >>> line 66, in set_storage_domain >>> self._backends[client].connect() >>> File >>> >>> >>> >>> >>> >>> >>> >>> >>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/lib/storage_backends.py", >>> line 462, in connect >>> self._dom_type) >>> File >>> >>> >>> >>> >>> >>> >>> >>> >>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/lib/storage_backends.py", >>> line 107, in get_domain_path >>> " in {1}".format(sd_uuid, parent)) >>> BackendFailureException: path to storage domain >>> 8a734205-65b7-4801-b7f0-d380eb45dbae not found in >>> /rhev/data-center/mnt >>> Thread-1::INFO::2018-04-19 >>> >>> >>> >>> >>> >>> >>> >>> >>> 19:26:31,563::listener::186::ovirt_hosted_engine_ha.broker.listener.ConnectionHandler::(handle) >>> Connection closed >>> Thread-2::INFO::2018-04-19 >>> >>> >>> >>> >>> >>> >>> >>> >>> 19:26:44,601::listener::134::ovirt_hosted_engine_ha.broker.listener.ConnectionHandler::(setup) >>> Connection established >>> >>> ----- 原始邮件 ----- >>> 发件人:<dhy336@sina.com> >>> 收件人:"Martin Sivak" <msivak@redhat.com> >>> 抄送人:users <users@ovirt.org> >>> 主题:[ovirt-users] 回复:Re: Hosted-engine can not_switch >>> 日期:2018年04月20日 09点30分 >>> >>> libvirt has not error logs . I only find some error for vdsm. >>> vdsm log is: >>> 2018-04-20 09:24:52,610+0800 INFO (jsonrpc/1) [vdsm.api] FINISH >>> getVolumeInfo return={'info': {'status': 'OK', 'domain': >>> '8a734205-65b7-4801-b7f0-d380eb45dbae', 'voltype': 'LEAF', >>> 'description': >>> 'hosted-engine.lockspace', 'parent': >>> '00000000-0000-0000-0000-000000000000', >>> 'format': 'RAW', 'generation': 0, 'image': >>> '611272bd-c2cc-42bc-94e2-9aa52e754c35', 'ctime': '1524032037', >>> 'disktype': >>> '2', 'legality': 'LEGAL', 'mtime': '0', 'apparentsize': '1048576', >>> 'children': [], 'pool': '', 'capacity': '1048576', 'uuid': >>> u'7037aac6-7c8e-4efd-82f7-ca618c953fe6', 'truesize': '1048576', >>> 'type': >>> 'PREALLOCATED', 'lease': {'owners': [], 'version': None}}} >>> from=::1,48306, >>> task_id=03a7938e-8afb-4b16-b8dd-126c2b1f5d52 (api:52) >>> 2018-04-20 09:24:52,611+0800 INFO (jsonrpc/1) >>> [jsonrpc.JsonRpcServer] >>> RPC >>> call Volume.getInfo succeeded in 0.03 seconds (__init__:630) >>> 2018-04-20 09:24:54,113+0800 ERROR (periodic/3) >>> [virt.periodic.Operation] >>> <vdsm.virt.sampling.VMBulkstatsMonitor object at 0x1e92f90> >>> operation >>> failed >>> (periodic:215) >>> Traceback (most recent call last): >>> File "/usr/lib/python2.7/site-packages/vdsm/virt/periodic.py", line >>> 213, >>> in __call__ >>> self._func() >>> File "/usr/lib/python2.7/site-packages/vdsm/virt/sampling.py", line >>> 522, >>> in __call__ >>> self._send_metrics() >>> File "/usr/lib/python2.7/site-packages/vdsm/virt/sampling.py", line >>> 538, >>> in _send_metrics >>> vm_sample.interval) >>> File "/usr/lib/python2.7/site-packages/vdsm/virt/vmstats.py", line >>> 45, >>> in >>> produce >>> networks(vm, stats, first_sample, last_sample, interval) >>> File "/usr/lib/python2.7/site-packages/vdsm/virt/vmstats.py", line >>> 322, >>> in >>> networks >>> if nic.name.startswith('hostdev'): >>> AttributeError: name >>> 2018-04-20 09:24:54,800+0800 INFO (Reactor thread) >>> [ProtocolDetector.AcceptorImpl] Accepted connection from ::1:48308 >>> (protocoldetector:61) >>> 2018-04-20 09:24:54,810+0800 INFO (Reactor thread) >>> [ProtocolDetector.Detector] Detected protocol stomp from ::1:48308 >>> (protocoldetector:125) >>> 2018-04-20 09:24:54,810+0800 INFO (Reactor thread) >>> [Broker.StompAdapter] >>> Processing CONNECT request (stompreactor:103) >>> 2018-04-20 09:24:54,818+0800 INFO (JsonRpc (StompReactor)) >>> [Broker.StompAdapter] Subscribe command received (stompreactor:132) >>> 2018-04-20 09:24:55,119+0800 INFO (jsonrpc/6) [api.host] START >>> getHardwareInfo() from=::1,48308 (api:46) >>> >>> ----- 原始邮件 ----- >>> 发件人:Martin Sivak <msivak@redhat.com> >>> 收件人:dhy336 <dhy336@sina.com> >>> 抄送人:users <users@ovirt.org> >>> 主题:Re: [ovirt-users] Hosted-engine can not switch >>> 日期:2018年04月19日 20点16分 >>> >>> >>> We need more than just this small log snippet. Please check the >>> vdsm >>> and libvirt logs as well. >>> Best regards >>> Martin Sivak >>> On Thu, Apr 19, 2018 at 2:05 PM, <dhy336@sina.com> wrote: >>>> Hi, >>>> I deploy three node with hosted engine, I force shut down a node >>>> which >>>> Host-engine VM is run, But hosted engine VM in other nodes can not >>>> run. >>>> >>>> I find some error in /var/log/ovirt-hosted-engine-ha/agent.log >>>> >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:56:35,787::hosted_engine::1192::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_clean_vdsm_state) >>>> Cleaning state for non-running VM >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:56:42,587::hosted_engine::1176::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_clean_vdsm_state) >>>> Vdsm state for VM clean >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:56:42,589::hosted_engine::1125::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_start_engine_vm) >>>> Starting vm using `/usr/sbin/hosted-engine --vm-start` >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:56:47,599::hosted_engine::1131::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_start_engine_vm) >>>> stdout: >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:56:47,600::hosted_engine::1132::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_start_engine_vm) >>>> stderr: Virtual machine does not exist: {'vmId': >>>> u'08bbd680-a8a7-4267-82e7-89f36e87e930'} >>>> >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:56:47,600::hosted_engine::1144::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_start_engine_vm) >>>> Engine VM started on localhost >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:56:47,609::brokerlink::111::ovirt_hosted_engine_ha.lib.brokerlink.BrokerLink::(notify) >>>> Trying: notify time=1524139007.61 type=state_transition >>>> detail=EngineStart-EngineStarting hostname='hosted-engine2' >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:56:47,670::brokerlink::121::ovirt_hosted_engine_ha.lib.brokerlink.BrokerLink::(notify) >>>> Success, was notification of state_transition >>>> (EngineStart-EngineStarting) >>>> sent? sent >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:56:47,670::hosted_engine::604::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_initialize_vdsm) >>>> Initializing VDSM >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:56:50,095::hosted_engine::630::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_initialize_storage_images) >>>> Connecting the storage >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:56:50,096::storage_server::220::ovirt_hosted_engine_ha.lib.storage_server.StorageServer::(validate_storage_server) >>>> Validating storage server >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:56:52,449::hosted_engine::639::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_initialize_storage_images) >>>> Storage domain reported as valid and reconnect is not forced. >>>> >>>> >>>> _______________________________________________ >>>> Users mailing list >>>> Users@ovirt.org >>>> http://lists.ovirt.org/mailman/listinfo/users >>>> >>> _______________________________________________ >>> Users mailing list >>> Users@ovirt.org >>> http://lists.ovirt.org/mailman/listinfo/users

sorry, I used 192.168.223 to replace 192.168.122.65, forget tell you, hosted-engine.ovirt.com=192.168.122.91, it is engine VM, visit hosted-engine.ovirt.com show me web UI. 发自网易邮箱手机版 在2018年04月26日 14:52,Martin Sivak 写道: Hi, > hosted-engine1 : 192.168.122.66 > hosted-engine2 : 192.168.122.223 But you said in an earlier email that: > I hava two node, A:192.168.122.65 , B:192.168.122.66 Make sure your names resolve properly. So far it does exactly what it is supposed to do - when the engine is unreachable, it tries restarting it. Did you really use hosted-engine.ovirt.com as the fqdn? Are you sure it resolves to whatever IP the VM has (192.168.122.91)? Maybe you used /etc/hosts to configure the name on the first host and in the VM, but miss the record on the second host? What does $(host hosted-engine.ovirt.com) show you? > I can not visit web UI, but my engine VM is run, i can login it. engine has > some error > > VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' > execution failed: java.net.NoRouteToHostException: No route to host I told you before. This is normal as it is trying to figure out whether the host is up. Best regards Martin Sivak On Thu, Apr 26, 2018 at 4:14 AM, <dhy336@sina.com> wrote: > engine VM:192.168.122.91 > hosted-engine1 : 192.168.122.66 > hosted-engine2 : 192.168.122.223 > > I can not visit web UI, but my engine VM is run, i can login it. engine has > some error > > 2018-04-25 18:35:03,401+08 INFO > [org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient] (SSL Stomp Reactor) > [] Connecting to hosted-engine1/192.168.122.66 > 2018-04-25 18:35:06,411+08 ERROR > [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] > (EE-ManagedThreadFactory-engineScheduled-Thread-2) [] Command > 'GetAllVmStatsVDSCommand(HostName = hosted-engine1, > > VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' > execution failed: java.net.NoRouteToHostException: No route to host > ---------------------------------------------------------------------------------------------------------------------------------------- > [root@hosted-engine2 ~]# hosted-engine --check-liveliness > Hosted Engine is not up! > ----------------------------------------------------------------------------------------------------------------------------------------- > [root@hosted-engine2 ~]# curl > http://hosted-engine.ovirt.com/ovirt-engine/services/health > <html><head><title>Error</title></head><body>404 - Not Found</body></html> > > Note: this command is blocked ,it takes 5 minutes > ----------------------------------------------------------------------------------------------------------------------------------------- > --== Host 1 status ==-- > > conf_on_shared_storage : True > Status up-to-date : False > Hostname : hosted-engine1 > Host ID : 1 > Engine status : unknown stale-data > Score : 3400 > stopped : False > Local maintenance : False > crc32 : 1eae8968 > local_conf_timestamp : 48907 > Host timestamp : 48907 > Extra metadata (valid at timestamp): > metadata_parse_version=1 > metadata_feature_version=1 > timestamp=48907 (Thu Apr 26 01:57:14 2018) > host-id=1 > score=3400 > vm_conf_refresh_time=48907 (Thu Apr 26 01:57:15 2018) > conf_on_shared_storage=True > maintenance=False > state=EngineUp > stopped=False > > > --== Host 2 status ==-- > > conf_on_shared_storage : True > Status up-to-date : True > Hostname : hosted-engine2 > Host ID : 2 > Engine status : {"reason": "failed liveliness check", > "health": "bad", "vm": "up", "detail": "Up"} > Score : 3000 > stopped : False > Local maintenance : False > crc32 : 1b92756d > local_conf_timestamp : 44057 > Host timestamp : 44057 > Extra metadata (valid at timestamp): > metadata_parse_version=1 > metadata_feature_version=1 > timestamp=44057 (Thu Apr 26 02:00:57 2018) > host-id=2 > score=3000 > vm_conf_refresh_time=44057 (Thu Apr 26 02:00:57 2018) > conf_on_shared_storage=True > maintenance=False > state=EngineStarting > stopped=False > > > > > > > ----- Original Message -----ovirt > From: Martin Sivak <msivak@redhat.com> > To: dhy336 <dhy336@sina.com> > Cc: users <users@ovirt.org> > Subject: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch > Date: 2018-04-25 20:41 > > >> 2018-04-25 18:35:06,411+08 ERROR >> [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] >> (EE-ManagedThreadFactory-engineScheduled-Thread-2) [] Command >> 'GetAllVmStatsVDSCommand(HostName = hosted-engine1, >> >> VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' >> execution failed: java.net.NoRouteToHostException: No route to host > This is expected and normal. The ovirt-engine service is trying to > find out whether host A is still unreachable or not. This is not the > issue you are looking for. >> 192.168.122.66 has been powered off, and hosted engine VM run in >> 192.168.122.223, I think engine should connect to 192.168.122.223, > You are mixing the IP of the engine VM and the IP of a host. The > engine runs in VM with stable .122.223 (independent on which host the > VM runs at) and manages two hosts .122.65 and .122.66. The engine > constantly monitors all its hosts and that means it is trying to > connect to them every now and then. > Please execute the two following commands on Host B and show us the > results (use the proper fqdn): > $(hosted-engine --check-liveliness) > $(curl http://{fqdn}/ovirt-engine/services/health) > Best regards > Martin Sivak > On Wed, Apr 25, 2018 at 2:34 PM, <dhy336@sina.com> wrote: >> I login in engine VM by (#hosted-engine --console) , I find ovirt-engine >> process. and I find some error in /var/log/ovirt-engine/engine.log >> >> 192.168.122.66 has been powered off, and hosted engine VM run in >> 192.168.122.223, I think engine should connect to 192.168.122.223, >> >> >> 2018-04-25 18:35:03,401+08 INFO >> [org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient] (SSL Stomp Reactor) >> [] Connecting to hosted-engine1/192.168.122.66 >> 2018-04-25 18:35:06,411+08 ERROR >> [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] >> (EE-ManagedThreadFactory-engineScheduled-Thread-2) [] Command >> 'Get

Hi, Martin, can you please take a look? Even though the setup is a bit weird (the hostname mainly..) it seems to be running, but the health endpoint returns 404. Is there something maybe in SSO hostname detection that would cause that? How can we debug this more? A current summary of the issue at hand:
hosted-engine.ovirt.com=192.168.122.91, it is engine VM, visit hosted-engine.ovirt.com show me web UI.
[root@hosted-engine2 ~]# curl http://hosted-engine.ovirt.com/ovirt-engine/services/health <html><head><title>Error</title></head><body>404 - Not Found</body></html>
Best regards Martin Sivak On Thu, Apr 26, 2018 at 9:32 AM, dhy336 <dhy336@sina.com> wrote:
sorry, I used 192.168.223 to replace 192.168.122.65, forget tell you, hosted-engine.ovirt.com=192.168.122.91, it is engine VM, visit hosted-engine.ovirt.com show me web UI.
发自网易邮箱手机版
在2018年04月26日 14:52,Martin Sivak 写道:
Hi,
hosted-engine1 : 192.168.122.66 hosted-engine2 : 192.168.122.223
But you said in an earlier email that:
I hava two node, A:192.168.122.65 , B:192.168.122.66
Make sure your names resolve properly. So far it does exactly what it is supposed to do - when the engine is unreachable, it tries restarting it. Did you really use hosted-engine.ovirt.com as the fqdn? Are you sure it resolves to whatever IP the VM has (192.168.122.91)?
Maybe you used /etc/hosts to configure the name on the first host and in the VM, but miss the record on the second host?
What does $(host hosted-engine.ovirt.com) show you?
I can not visit web UI, but my engine VM is run, i can login it. engine has some error
VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' execution failed: java.net.NoRouteToHostException: No route to host
I told you before. This is normal as it is trying to figure out whether the host is up.
Best regards
Martin Sivak
On Thu, Apr 26, 2018 at 4:14 AM, <dhy336@sina.com> wrote:
engine VM:192.168.122.91 hosted-engine1 : 192.168.122.66 hosted-engine2 : 192.168.122.223
I can not visit web UI, but my engine VM is run, i can login it. engine has some error
2018-04-25 18:35:03,401+08 INFO [org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient] (SSL Stomp Reactor) [] Connecting to hosted-engine1/192.168.122.66 2018-04-25 18:35:06,411+08 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] (EE-ManagedThreadFactory-engineScheduled-Thread-2) [] Command 'GetAllVmStatsVDSCommand(HostName = hosted-engine1,
VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' execution failed: java.net.NoRouteToHostException: No route to host
---------------------------------------------------------------------------------------------------------------------------------------- [root@hosted-engine2 ~]# hosted-engine --check-liveliness Hosted Engine is not up!
----------------------------------------------------------------------------------------------------------------------------------------- [root@hosted-engine2 ~]# curl http://hosted-engine.ovirt.com/ovirt-engine/services/health <html><head><title>Error</title></head><body>404 - Not Found</body></html>
Note: this command is blocked ,it takes 5 minutes
----------------------------------------------------------------------------------------------------------------------------------------- --== Host 1 status ==--
conf_on_shared_storage : True Status up-to-date : False Hostname : hosted-engine1 Host ID : 1 Engine status : unknown stale-data Score : 3400 stopped : False Local maintenance : False crc32 : 1eae8968 local_conf_timestamp : 48907 Host timestamp : 48907 Extra metadata (valid at timestamp): metadata_parse_version=1 metadata_feature_version=1 timestamp=48907 (Thu Apr 26 01:57:14 2018) host-id=1 score=3400 vm_conf_refresh_time=48907 (Thu Apr 26 01:57:15 2018) conf_on_shared_storage=True maintenance=False state=EngineUp stopped=False
--== Host 2 status ==--
conf_on_shared_storage : True Status up-to-date : True Hostname : hosted-engine2 Host ID : 2 Engine status : {"reason": "failed liveliness check", "health": "bad", "vm": "up", "detail": "Up"} Score : 3000 stopped : False Local maintenance : False crc32 : 1b92756d local_conf_timestamp : 44057 Host timestamp : 44057 Extra metadata (valid at timestamp): metadata_parse_version=1 metadata_feature_version=1 timestamp=44057 (Thu Apr 26 02:00:57 2018) host-id=2 score=3000 vm_conf_refresh_time=44057 (Thu Apr 26 02:00:57 2018) conf_on_shared_storage=True maintenance=False state=EngineStarting stopped=False
----- Original Message -----ovirt From: Martin Sivak <msivak@redhat.com> To: dhy336 <dhy336@sina.com> Cc: users <users@ovirt.org> Subject: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch Date: 2018-04-25 20:41
2018-04-25 18:35:06,411+08 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] (EE-ManagedThreadFactory-engineScheduled-Thread-2) [] Command 'GetAllVmStatsVDSCommand(HostName = hosted-engine1,
VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' execution failed: java.net.NoRouteToHostException: No route to host This is expected and normal. The ovirt-engine service is trying to find out whether host A is still unreachable or not. This is not the issue you are looking for. 192.168.122.66 has been powered off, and hosted engine VM run in 192.168.122.223, I think engine should connect to 192.168.122.223, You are mixing the IP of the engine VM and the IP of a host. The engine runs in VM with stable .122.223 (independent on which host the VM runs at) and manages two hosts .122.65 and .122.66. The engine constantly monitors all its hosts and that means it is trying to connect to them every now and then. Please execute the two following commands on Host B and show us the results (use the proper fqdn): $(hosted-engine --check-liveliness) $(curl http://{fqdn}/ovirt-engine/services/health) Best regards Martin Sivak On Wed, Apr 25, 2018 at 2:34 PM, <dhy336@sina.com> wrote: I login in engine VM by (#hosted-engine --console) , I find ovirt-engine process. and I find some error in /var/log/ovirt-engine/engine.log
192.168.122.66 has been powered off, and hosted engine VM run in 192.168.122.223, I think engine should connect to 192.168.122.223,
2018-04-25 18:35:03,401+08 INFO [org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient] (SSL Stomp Reactor) [] Connecting to hosted-engine1/192.168.122.66 2018-04-25 18:35:06,411+08 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] (EE-ManagedThreadFactory-engineScheduled-Thread-2) [] Command 'GetAllVmStatsVDSCommand(HostName = hosted-engine1,
VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' execution failed: java.net.NoRouteToHostException: No route to host 2018-04-25 18:35:06,411+08 INFO [org.ovirt.engine.core.vdsbroker.monitoring.PollVmStatsRefresher] (EE-ManagedThreadFactory-engineScheduled-Thread-2) [] Failed to fetch vms info for host 'hosted-engine1' - skipping VMs monitoring. 2018-04-25 18:35:21,420+08 INFO [org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient] (SSL Stomp Reactor) [] Connecting to hosted-engine1/192.168.122.66 2018-04-25 18:35:24,430+08 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] (EE-ManagedThreadFactory-engineScheduled-Thread-1) [] Command 'GetAllVmStatsVDSCommand(HostName = hosted-engine1,
VdsIdVDSCommandParametersBase:{hostId='1b5f799a-125d-4f4e-8aef-cb2ecdd63136'})' execution failed: java.net.NoRouteToHostException: No route to host 2018-04-25 18:35:24,431+08 INFO [org.ovirt.engine.core.vdsbroker.monitoring.PollVmStatsRefresher] (EE-ManagedThreadFactory-engineScheduled-Thread-1) [] Failed to fetch vms info for host 'hosted-engine1' - skipping VMs monitoring. 2018-04-25 18:35:39,438+08 INFO [org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient] (SSL Stomp Reactor) [] Connecting to hosted-engine1/192.168.122.66
----- Original Message ----- From: Martin Sivak <msivak@redhat.com> To: dhy336 <dhy336@sina.com> Cc: users <users@ovirt.org> Subject: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch Date: 2018-04-25 20:27
The engine will try connecting to all registered hosts all the time. That is normal. If your host can reach the engine then check whether it can reach http://{fqdn}/ovirt-engine/services/health as that is what is used to make sure the engine is alive. Best regards Martin Sivak On Wed, Apr 25, 2018 at 2:15 PM, <dhy336@sina.com> wrote:
Hi Martin,
thank you for answer my host can reach the engine, I confuse why engine connect to another host which has been power off by me?
----- Original Message ----- From: Martin Sivak <msivak@redhat.com> To: dhy336 <dhy336@sina.com>, users <users@ovirt.org> Subject: Re: Re: Re: Re: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch Date: 2018-04-25 19:12
It is as I expected: Engine status : {"reason": "failed liveliness check" The host can't talk to the ovirt-engine service. Please make sure the host can reach the engine fqdn as configured in /etc/ovirt-hosted-engine/hosted-engine.conf on the fqdn= line. You can check it manually by executing $(hosted-engine --check-liveliness) from the host. Best regards Martin Sivak On Wed, Apr 25, 2018 at 12:51 PM, <dhy336@sina.com> wrote:
Hi,
two node : 192.168.122.66 hosted-engine1 192.168.122.223 hosted-engine2
I power off hosted-engine1, so I do not attach hosted-engine1`s log,
[root@hosted-engine2 ~]# hosted-engine --vm-status
--== Host 1 status ==--
conf_on_shared_storage : True Status up-to-date : False Hostname : hosted-engine1 Host ID : 1 Engine status : unknown stale-data Score : 3400 stopped : False Local maintenance : False crc32 : a7af0afa local_conf_timestamp : 11485 Host timestamp : 11485 Extra metadata (valid at timestamp): metadata_parse_version=1 metadata_feature_version=1 timestamp=11485 (Wed Apr 25 10:08:34 2018) host-id=1 score=3400 vm_conf_refresh_time=11485 (Wed Apr 25 10:08:34 2018) conf_on_shared_storage=True maintenance=False state=EngineUp stopped=False
--== Host 2 status ==--
conf_on_shared_storage : True Status up-to-date : True Hostname : hosted-engine2 Host ID : 2 Engine status : {"reason": "failed liveliness check", "health": "bad", "vm": "up", "detail": "Up"} Score : 3000 stopped : False Local maintenance : False crc32 : a2e82883 local_conf_timestamp : 6278 Host timestamp : 6278 Extra metadata (valid at timestamp): metadata_parse_version=1 metadata_feature_version=1 timestamp=6278 (Wed Apr 25 10:37:44 2018) host-id=2 score=3000 vm_conf_refresh_time=6278 (Wed Apr 25 10:37:44 2018) conf_on_shared_storage=True maintenance=False state=EngineStop stopped=False timeout=Thu Jan 1 09:49:38 1970
----- Original Message ----- From: Martin Sivak <msivak@redhat.com> To: dhy336 <dhy336@sina.com>, users <users@ovirt.org> Subject: Re: Re: Re: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch Date: 2018-04-25 17:41
Please attach the output of hosted-engine --vm-status and the /var/log/ovirt-hosted-engine-ha/agent.log file from both hosts. The VM will restart if the ovirt-engine service does not become available within timeout. And that might mean couple of things - the FQDN of the engine is wrong, the engine needs something that was only available on the dead host (A) like some storage, host B cannot ping the gateway.. Best regards Martin Sivak On Wed, Apr 25, 2018 at 11:33 AM, <dhy336@sina.com> wrote:
sorry, I mis-represent,
I hava two node, A:192.168.122.65 , B:192.168.122.66 with hosted-engine.
testing engine HA :
first two node is up, and hosted-engine VM run in A, then I poweroff A, and after 3 minutes, B start it`s hosted engine VM, But it`s ovirt-engine connect to host A, and continue for about 10 minutes, then hosted engine VM restart. ----- Original Message ----- From: Martin Sivak <msivak@redhat.com> To: dhy336 <dhy336@sina.com> Subject: Re: Re: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch Date: 2018-04-25 17:11
Your hosted engine VM has its own address that does not depend on which host it is currently running. So it should be available on the same address no matter where the VM is running. Best regards Martin Sivak On Wed, Apr 25, 2018 at 9:07 AM, <dhy336@sina.com> wrote: >>> I deploy two node for hosted engine, first hosted engine VM run in >>> 192.168.122.65, I power off this host, hosted-engine VM switch >>> another host,but ovirt engine still connect 192.168.122.65. if >>> restart >>> ovirt-engine server, it is work. > > I think this issue is error, because hosted engine VM has power up in > another host( 192.168.122.66), so hosted engine should > connect to host( 192.168.122.66), not connet to host(192.168.122.66)? > > thanks > > ----- Original Message ----- > From: Martin Sivak <msivak@redhat.com> > To: dhy336 <dhy336@sina.com> > Cc: users <users@ovirt.org> > Subject: Re: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can > not_switch > Date: 2018-04-20 18:28 > > > Hi, > No, this is not an error. You killed the host without moving it to > maintenance first. The engine has no way to distinguish this from > temporary network failure for example. Give it some time and the host > will move its status to one of the error states and handle the highly > available VMs on it (if fencing is properly configured). > Best regards > Martin Sivak > On Fri, Apr 20, 2018 at 12:13 PM, <dhy336@sina.com> wrote: >> this process is not error ? >> ----- Original Message ----- >> From: Martin Sivak <msivak@redhat.com> >> To: dhy336 <dhy336@sina.com> >> Cc: users <users@ovirt.org> >> Subject: Re: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch >> Date: 2018-04-20 18:05 >> >> >> Hi, >> the engine does not know you killed the host. It will notice >> eventually and handle the situation. Just give it time (5 minutes or >> so). >> Best regards >> -- >> Martin Sivak >> SLA / oVirt >> On Fri, Apr 20, 2018 at 12:00 PM, <dhy336@sina.com> wrote: >>> Hi, thanks for your feedback. I hava another qeustions >>> >>> I deploy two node for hosted engine, first hosted engine VM run in >>> 192.168.122.65, I power off this host, hosted-engine VM switch >>> another host,but ovirt engine still connect 192.168.122.65. if >>> restart >>> ovirt-engine server, it is work. >>> >>> >>> 2018-04-20 17:13:04,692+08 ERROR >>> [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] >>> (EE-ManagedThreadFactory-en gineScheduled-Thread-98) [] Command >>> 'GetAllVmStatsVDSCommand(HostName = hosted-engine2, >>> VdsIdVDSCommandParametersBase:{hos >>> tId='a5428ef7-9df6-4a86-91de-7e36fda340fa'})' execution failed: >>> java.net.NoRouteToHostException: No route to host >>> 6568 2018-04-20 17:13:04,693+08 INFO >>> [org.ovirt.engine.core.vdsbroker.monitoring.PollVmStatsRefresher] >>> (EE-ManagedThreadFactory-engi neScheduled-Thread-98) [] Failed to >>> fetch >>> vms info for host 'hosted-engin2' - skipping VMs monitoring. >>> 6569 2018-04-20 17:13:19,710+08 INFO >>> [org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient] (SSL Stomp >>> Reactor) >>> [] Connecting to hosted-engine2/192.168.122.656570 2018-04-20 >>> 17:13:22,730+08 ERROR >>> [org.ovirt.engine.core.vdsbroker.vdsbroker.GetAllVmStatsVDSCommand] >>> (EE-ManagedThreadFactory-en gineScheduled-Thread-45) [] Command >>> 'GetAllVmStatsVDSCommand(HostName = hosted-engine-tchyp2, >>> VdsIdVDSCommandParametersBase:{hos >>> tId='a5428ef7-9df6-4a86-91de-7e36fda340fa'})' execution failed: >>> java.net.NoRouteToHostException: No route to host >>> 6571 2018-04-20 17:13:22,732+08 INFO >>> [org.ovirt.engine.core.vdsbroker.monitoring.PollVmStatsRefresher] >>> (EE-ManagedThreadFactory-engi neScheduled-Thread-45) [] Failed to >>> fetch >>> vms info for host 'hosted-engine2' - skipping VMs monitoring. >>> >>> ----- Original Message ----- >>> From: Martin Sivak <msivak@redhat.com> >>> To: dhy336 <dhy336@sina.com> >>> Cc: users <users@ovirt.org> >>> Subject: Re: [ovirt-users] 回复:Re: Hosted-engine can not_switch >>> Date: 2018-04-20 16:40 >>> >>> >>> Hi, >>> your ovirt-hosted-engine-ha package is too old. You need at least >>> 2.1.9 to properly support 4.2 engine. The same applies to vdsm. >>> Please >>> upgrade the node. >>> Best regards >>> Martin Sivak >>> On Fri, Apr 20, 2018 at 3:58 AM, <dhy336@sina.com> wrote: >>>> Hi I find some error logs in >>>> /var/log/ovirt-hosted-engine-ha/broker. >>>> >>>> [root@hosted-engine2 ~]# ll /rhev/data-center/mnt >>>> total 0 >>>> drwxr-xr-x. 3 vdsm kvm 76 Apr 18 22:28 >>>> 192.168.122.218:_exports_data >>>> drwxr-xr-x. 3 vdsm kvm 76 Apr 18 22:12 >>>> 192.168.122.218:_exports_hosted-engine-test1 >>>> [root@hosted-engine2 ~]# ll >>>> >>>> >>>> /rhev/data-center/mnt/192.168.122.218\:_exports_hosted-engine-test1/ >>>> total 0 >>>> drwxr-xr-x. 5 vdsm kvm 50 Apr 18 22:14 >>>> 8a734205-65b7-4801-b7f0-d380eb45dbae >>>> -rwxr-xr-x. 1 vdsm kvm 0 Apr 20 09:54 __DIRECT_IO_TEST__ >>>> >>>> uuid 8a734205-65b7-4801-b7f0-d380eb45dbae is in >>>> >>>> >>>> /rhev/data-center/mnt/192.168.122.218\:_exports_hosted-engine-test1/ >>>> but broker find it in /rhev/data-center/mnt, is it my version is >>>> error? >>>> my >>>> ovirt-hosted-engine-ha version is 2.1.5, vdsm is 4.20.5, >>>> ovirt-engine is 4.2 >>>> >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:26:31,479::listener::41::ovirt_hosted_engine_ha.broker.listener.Listener::(__init__) >>>> Initializing SocketServer >>>> MainThread::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:26:31,480::listener::56::ovirt_hosted_engine_ha.broker.listener.Listener::(__init__) >>>> SocketServer ready >>>> Thread-1::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:26:31,558::listener::134::ovirt_hosted_engine_ha.broker.listener.ConnectionHandler::(setup) >>>> Connection established >>>> Thread-1::ERROR::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:26:31,559::listener::192::ovirt_hosted_engine_ha.broker.listener.ConnectionHandler::(handle) >>>> Error handling request, data: 'set-storage-domain >>>> FilesystemBackend >>>> dom_type=nfs3 sd_uuid=8a734205-65b7-4801-b7f0-d380eb45dbae' >>>> Traceback (most recent call last): >>>> File >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/broker/listener.py", >>>> line 166, in handle >>>> data) >>>> File >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/broker/listener.py", >>>> line 299, in _dispatch >>>> .set_storage_domain(client, sd_type, **options) >>>> File >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/broker/storage_broker.py", >>>> line 66, in set_storage_domain >>>> self._backends[client].connect() >>>> File >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/lib/storage_backends.py", >>>> line 462, in connect >>>> self._dom_type) >>>> File >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/lib/storage_backends.py", >>>> line 107, in get_domain_path >>>> " in {1}".format(sd_uuid, parent)) >>>> BackendFailureException: path to storage domain >>>> 8a734205-65b7-4801-b7f0-d380eb45dbae not found in >>>> /rhev/data-center/mnt >>>> Thread-1::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:26:31,563::listener::186::ovirt_hosted_engine_ha.broker.listener.ConnectionHandler::(handle) >>>> Connection closed >>>> Thread-2::INFO::2018-04-19 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 19:26:44,601::listener::134::ovirt_hosted_engine_ha.broker.listener.ConnectionHandler::(setup) >>>> Connection established >>>> >>>> ----- 原始邮件 ----- >>>> 发件人:<dhy336@sina.com> >>>> 收件人:"Martin Sivak" <msivak@redhat.com> >>>> 抄送人:users <users@ovirt.org> >>>> 主题:[ovirt-users] 回复:Re: Hosted-engine can not_switch >>>> 日期:2018年04月20日 09点30分 >>>> >>>> libvirt has not error logs . I only find some error for vdsm. >>>> vdsm log is: >>>> 2018-04-20 09:24:52,610+0800 INFO (jsonrpc/1) [vdsm.api] FINISH >>>> getVolumeInfo return={'info': {'status': 'OK', 'domain': >>>> '8a734205-65b7-4801-b7f0-d380eb45dbae', 'voltype': 'LEAF', >>>> 'description': >>>> 'hosted-engine.lockspace', 'parent': >>>> '00000000-0000-0000-0000-000000000000', >>>> 'format': 'RAW', 'generation': 0, 'image': >>>> '611272bd-c2cc-42bc-94e2-9aa52e754c35', 'ctime': '1524032037', >>>> 'disktype': >>>> '2', 'legality': 'LEGAL', 'mtime': '0', 'apparentsize': '1048576', >>>> 'children': [], 'pool': '', 'capacity': '1048576', 'uuid': >>>> u'7037aac6-7c8e-4efd-82f7-ca618c953fe6', 'truesize': '1048576', >>>> 'type': >>>> 'PREALLOCATED', 'lease': {'owners': [], 'version': None}}} >>>> from=::1,48306, >>>> task_id=03a7938e-8afb-4b16-b8dd-126c2b1f5d52 (api:52) >>>> 2018-04-20 09:24:52,611+0800 INFO (jsonrpc/1) >>>> [jsonrpc.JsonRpcServer] >>>> RPC >>>> call Volume.getInfo succeeded in 0.03 seconds (__init__:630) >>>> 2018-04-20 09:24:54,113+0800 ERROR (periodic/3) >>>> [virt.periodic.Operation] >>>> <vdsm.virt.sampling.VMBulkstatsMonitor object at 0x1e92f90> >>>> operation >>>> failed >>>> (periodic:215) >>>> Traceback (most recent call last): >>>> File "/usr/lib/python2.7/site-packages/vdsm/virt/periodic.py", >>>> line >>>> 213, >>>> in __call__ >>>> self._func() >>>> File "/usr/lib/python2.7/site-packages/vdsm/virt/sampling.py", >>>> line >>>> 522, >>>> in __call__ >>>> self._send_metrics() >>>> File "/usr/lib/python2.7/site-packages/vdsm/virt/sampling.py", >>>> line >>>> 538, >>>> in _send_metrics >>>> vm_sample.interval) >>>> File "/usr/lib/python2.7/site-packages/vdsm/virt/vmstats.py", line >>>> 45, >>>> in >>>> produce >>>> networks(vm, stats, first_sample, last_sample, interval) >>>> File "/usr/lib/python2.7/site-packages/vdsm/virt/vmstats.py", line >>>> 322, >>>> in >>>> networks >>>> if nic.name.startswith('hostdev'): >>>> AttributeError: name >>>> 2018-04-20 09:24:54,800+0800 INFO (Reactor thread) >>>> [ProtocolDetector.AcceptorImpl] Accepted connection from ::1:48308 >>>> (protocoldetector:61) >>>> 2018-04-20 09:24:54,810+0800 INFO (Reactor thread) >>>> [ProtocolDetector.Detector] Detected protocol stomp from ::1:48308 >>>> (protocoldetector:125) >>>> 2018-04-20 09:24:54,810+0800 INFO (Reactor thread) >>>> [Broker.StompAdapter] >>>> Processing CONNECT request (stompreactor:103) >>>> 2018-04-20 09:24:54,818+0800 INFO (JsonRpc (StompReactor)) >>>> [Broker.StompAdapter] Subscribe command received >>>> (stompreactor:132) >>>> 2018-04-20 09:24:55,119+0800 INFO (jsonrpc/6) [api.host] START >>>> getHardwareInfo() from=::1,48308 (api:46) >>>> >>>> ----- 原始邮件 ----- >>>> 发件人:Martin Sivak <msivak@redhat.com> >>>> 收件人:dhy336 <dhy336@sina.com> >>>> 抄送人:users <users@ovirt.org> >>>> 主题:Re: [ovirt-users] Hosted-engine can not switch >>>> 日期:2018年04月19日 20点16分 >>>> >>>> >>>> We need more than just this small log snippet. Please check the >>>> vdsm >>>> and libvirt logs as well. >>>> Best regards >>>> Martin Sivak >>>> On Thu, Apr 19, 2018 at 2:05 PM, <dhy336@sina.com> wrote: >>>>> Hi, >>>>> I deploy three node with hosted engine, I force shut down a node >>>>> which >>>>> Host-engine VM is run, But hosted engine VM in other nodes can >>>>> not >>>>> run. >>>>> >>>>> I find some error in /var/log/ovirt-hosted-engine-ha/agent.log >>>>> >>>>> MainThread::INFO::2018-04-19 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 19:56:35,787::hosted_engine::1192::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_clean_vdsm_state) >>>>> Cleaning state for non-running VM >>>>> MainThread::INFO::2018-04-19 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 19:56:42,587::hosted_engine::1176::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_clean_vdsm_state) >>>>> Vdsm state for VM clean >>>>> MainThread::INFO::2018-04-19 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 19:56:42,589::hosted_engine::1125::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_start_engine_vm) >>>>> Starting vm using `/usr/sbin/hosted-engine --vm-start` >>>>> MainThread::INFO::2018-04-19 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 19:56:47,599::hosted_engine::1131::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_start_engine_vm) >>>>> stdout: >>>>> MainThread::INFO::2018-04-19 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 19:56:47,600::hosted_engine::1132::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_start_engine_vm) >>>>> stderr: Virtual machine does not exist: {'vmId': >>>>> u'08bbd680-a8a7-4267-82e7-89f36e87e930'} >>>>> >>>>> MainThread::INFO::2018-04-19 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 19:56:47,600::hosted_engine::1144::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_start_engine_vm) >>>>> Engine VM started on localhost >>>>> MainThread::INFO::2018-04-19 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 19:56:47,609::brokerlink::111::ovirt_hosted_engine_ha.lib.brokerlink.BrokerLink::(notify) >>>>> Trying: notify time=1524139007.61 type=state_transition >>>>> detail=EngineStart-EngineStarting hostname='hosted-engine2' >>>>> MainThread::INFO::2018-04-19 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 19:56:47,670::brokerlink::121::ovirt_hosted_engine_ha.lib.brokerlink.BrokerLink::(notify) >>>>> Success, was notification of state_transition >>>>> (EngineStart-EngineStarting) >>>>> sent? sent >>>>> MainThread::INFO::2018-04-19 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 19:56:47,670::hosted_engine::604::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_initialize_vdsm) >>>>> Initializing VDSM >>>>> MainThread::INFO::2018-04-19 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 19:56:50,095::hosted_engine::630::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_initialize_storage_images) >>>>> Connecting the storage >>>>> MainThread::INFO::2018-04-19 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 19:56:50,096::storage_server::220::ovirt_hosted_engine_ha.lib.storage_server.StorageServer::(validate_storage_server) >>>>> Validating storage server >>>>> MainThread::INFO::2018-04-19 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 19:56:52,449::hosted_engine::639::ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine::(_initialize_storage_images) >>>>> Storage domain reported as valid and reconnect is not forced. >>>>> >>>>> >>>>> _______________________________________________ >>>>> Users mailing list >>>>> Users@ovirt.org >>>>> http://lists.ovirt.org/mailman/listinfo/users >>>>> >>>> _______________________________________________ >>>> Users mailing list >>>> Users@ovirt.org >>>> http://lists.ovirt.org/mailman/listinfo/users
participants (3)
-
dhy336
-
dhy336@sina.com
-
Martin Sivak