PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo9IEIgaSBlIG4gdiBlIG4gdSBlICBkYW5zIGxlICBUIHUgdCBvIHIgaSBlIGwgIGRlICBWIEkgTSAgLSAgVmVyc2lvbiAxLjUuZnIuMiA9Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgVmltIGVzdCB1biDpZGl0ZXVyIHRy6HMgcHVpc3NhbnQgcXVpIGEgdHJvcCBkZSBjb21tYW5kZXMgcG91ciBwb3V2b2lyCiAgICAgdG91dGVzIGxlcyBleHBsaXF1ZXIgZGFucyB1biBjb3VycyBjb21tZSBjZWx1aS1jaSwgcXVpIGVzdCBjb27ndSBwb3VyIGVuCiAgICAgZOljcmlyZSBzdWZmaXNhbW1lbnQgYWZpbiBkZSB2b3VzIHBlcm1ldHRyZSBkJ3V0aWxpc2VyIHNpbXBsZW1lbnQgVmltLgoKICAgICBMZSB0ZW1wcyByZXF1aXMgcG91ciBzdWl2cmUgY2UgY291cnMgZXN0IGQnZW52aXJvbiAyNSDgIDMwIG1pbnV0ZXMsIHNlbG9uCiAgICAgbGUgdGVtcHMgcXVlIHZvdXMgcGFzc2VyZXog4CBleHDpcmltZW50ZXIuICBMZXMgY29tbWFuZGVzIHV0aWxpc+llcyBkYW5zCiAgICAgbGVzIGxl529ucyBtb2RpZmllcm9udCBsZSB0ZXh0ZS4gRmFpdGVzIHVuZSBjb3BpZSBkZSBjZSBmaWNoaWVyIGFmaW4gZGUKICAgICB2b3VzIGVudHJh7m5lciBkZXNzdXMgKHNpIHZvdXMgYXZleiBsYW5j6SAidmltdHV0b3IiIGNlY2kgZXN0IGTpauAgdW5lCiAgICAgY29waWUpLgoKICAgICBJbCBlc3QgaW1wb3J0YW50IGRlIGdhcmRlciBlbiB06nRlIHF1ZSBjZSBjb3VycyBlc3QgY29u53UgcG91ciBhcHByZW5kcmUKICAgICBwYXIgbGEgcHJhdGlxdWUuICBDZWxhIHNpZ25pZmllIHF1ZSB2b3VzIGRldmV6IGV46WN1dGVyIGxlcyBjb21tYW5kZXMKICAgICBwb3VyIGxlcyBhcHByZW5kcmUgY29ycmVjdGVtZW50LiAgU2kgdm91cyB2b3VzIGNvbnRlbnRleiBkZSBsaXJlIGxlCiAgICAgdGV4dGUsIHZvdXMgb3VibGllcmV6IGxlcyBjb21tYW5kZXMgIQoKICAgICBNYWludGVuYW50LCB26XJpZmlleiBxdWUgdm90cmUgY2xhdmllciBuJ2VzdCBQQVMgdmVyb3VpbGzpIGVuIG1hanVzY3VsZXMsCiAgICAgZXQgYXBwdXlleiBsYSB0b3VjaGUgIGogIGxlIG5vbWJyZSBkZSBmb2lzIHN1ZmZpc2FudCBwb3VyIHF1ZSBsYSBsZedvbgogICAgIDEuMSByZW1wbGlzc2UgY29tcGzodGVtZW50IGwn6WNyYW4uCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgICAgIExl529uIDEuMSA6IETJUExBQ0VNRU5UIERVIENVUlNFVVIKCgogICoqIFBvdXIgZOlwbGFjZXIgbGUgY3Vyc2V1ciwgYXBwdXlleiBsZXMgdG91Y2hlcyBoLGosayxsIGNvbW1lIGluZGlxdekuICoqCgkgICAgXgoJICAgIGsJICAgICBBc3R1Y2U6ICBMYSB0b3VjaGUgaCBlc3Qg4CBnYXVjaGUgZXQgZOlwbGFjZSDgIGdhdWNoZS4KICAgICAgPCBoICAgICAgbCA+CSAgICAgIExhIHRvdWNoZSBsIGVzdCDgIGRyb2l0ZSBldCBk6XBsYWNlIOAgZHJvaXRlLgoJICAgagkJICAgICAgTGEgdG91Y2hlIGogcmVzc2VtYmxlIOAgdW5lIGZs6GNoZSB2ZXJzIGxlIGJhcy4KCSAgIHYKICAxLiBE6XBsYWNleiBsZSBjdXJzZXVyIHN1ciBsJ+ljcmFuIGp1c3F1J+Agdm91cyBzZW50aXIg4CBsJ2Fpc2UuCgogIDIuIE1haW50ZW5leiBsYSB0b3VjaGUgQmFzIChqKSBlbmZvbmPpZSBqdXNxdSfgIGNlIHF1J2VsbGUgc2Ugculw6HRlLgotLS0+IE1haW50ZW5hbnQgdm91cyDqdGVzIGNhcGFibGUgZGUgdm91cyBk6XBsYWNlciBqdXNxdSfgIGxhIGxl529uIHN1aXZhbnRlLgoKICAzLiBFbiB1dGlsaXNhbnQgbGEgdG91Y2hlIEJhcywgYWxsZXog4CBsYSBMZedvbiAxLjIuCgpOb3RlOiBTaSBqYW1haXMgdm91cyBkb3V0ZXogZGUgY2UgcXVlIHZvdXMgdmVuZXogZGUgdGFwZXIsIGFwcHV5ZXogPMljaGFwPgogICAgICBwb3VyIHJldmVuaXIgZW4gbW9kZSBOb3JtYWwuIFB1aXMgcmV0YXBleiBsYSBjb21tYW5kZSBxdWUgdm91cyB2b3VsaWV6LgoKTm90ZTogTGVzIHRvdWNoZXMgZmzpY2jpZXMgZGV2cmFpZW50IOlnYWxlbWVudCBmb25jdGlvbm5lci4gTWFpcyBlbiB1dGlsaXNhbnQKICAgICAgaGprbCB2b3VzIHBvdXJyZXogdm91cyBk6XBsYWNlciBiZWF1Y291cCBwbHVzIHJhcGlkZW1lbnQsIHVuZSBmb2lzIHF1ZQogICAgICB2b3VzIGF1cmV6IHByaXMgbCdoYWJpdHVkZS4Kfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICBMZedvbiAxLjIgOiBFTlRSyUUgRVQgU09SVElFIERFIFZJTQoKCiAhISBOT1RFOiBBdmFudCBkJ2VmZmVjdHVlciBsZXMg6XRhcGVzIGNpLWRlc3NvdXMsIGxpc2V6IHRvdXRlIGNldHRlIGxl529uICEhCgogIDEuIEFwcHV5ZXogbGEgdG91Y2hlCTzJY2hhcD4gIChwb3VyIOp0cmUgc/tyIGQn6nRyZSBlbiBtb2RlIE5vcm1hbCkuCgogIDIuIFRhcGV6OgkJCTpxISA8RW50cullPgoKLS0tPiBDZWNpIHF1aXR0ZSBsJ+lkaXRldXIgU0FOUyBzYXV2ZXIgbGVzIGNoYW5nZW1lbnRzIHF1ZSB2b3VzIGF2ZXogZmFpdHMuCiAgICAgU2kgdm91cyB2b3VsZXogZW5yZWdpc3RyZXIgbGVzIGNoYW5nZW1lbnRzIGV0IHNvcnRpciwgdGFwZXo6CgkJCQk6d3EgPEVudHLpZT4KCiAgMy4gTG9yc3F1ZSBsJ2ludml0ZSBkdSAnc2hlbGwnIHZvdXMgc2VyYSBwculzZW506WUsIHRhcGV6IGxhIGNvbW1hbmRlIHF1aQogICAgIHZvdXMgYSBhbWVu6SBkYW5zIGNlIHR1dG9yaWVsLiAgQ2VsYSBwb3VycmFpdCDqdHJlOiAgICB2aW10dXRvciA8RW50cullPgogICAgIE5vcm1hbGVtZW50LCB2b3VzIHV0aWxpc2VyaWV6OgkJCSAgICB2aW0gdHV0b3IgPEVudHLpZT4KCi0tLT4gJ3ZpbScgbGFuY2UgbCfpZGl0ZXVyLCAndHV0b3InIGVzdCBsZSBmaWNoaWVyIHF1ZSB2b3VzIHNvdWhhaXRleiDpZGl0ZXIuCgogIDQuIFNpIHZvdXMgYXZleiBt6W1vcmlz6SBjZXMg6XRhcGVzIGV0IOp0ZXMgY29uZmlhbnQsIGVmZmVjdHVleiBsZXMg6XRhcGVzCiAgICAgMSDgIDMgcG91ciBzb3J0aXIgcHVpcyByZW50cmVyIGRhbnMgbCfpZGl0ZXVyLiAgROlwbGFjZXogZW5zdWl0ZSBsZQogICAgICBjdXJzZXVyIGp1c3F1J+AgbGEgTGXnb24gMS4zLgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgIExl529uIDEuMyA6IMlESVRJT04gREUgVEVYVEUgLSBFRkZBQ0VNRU5UCgoKICoqIEVuIG1vZGUgTm9ybWFsLCBhcHB1eWV6ICB4CXBvdXIgZWZmYWNlciBsZSBjYXJhY3TocmUgc291cyBsZSBjdXJzZXVyLiAqKgoKICAxLiBE6XBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cy4KCiAgMi4gUG91ciBjb3JyaWdlciBsZXMgZXJyZXVycywgZOlwbGFjZXogbGUgY3Vyc2V1ciBqdXNxdSfgIGNlIHF1J2lsIHNvaXQKICAgICBzdXIgdW4gY2FyYWN06HJlIOAgZWZmYWNlci4KCiAgMy4gQXBwdXlleiBsYSB0b3VjaGUJeCAgcG91ciBlZmZhY2VyIGxlIGNhcmFjdOhyZSByZWRvbmRhbnQuCgogIDQuIFLpcOl0ZXogbGVzIOl0YXBlcyAyIOAgNCBqdXNxdSfgIGNlIHF1ZSBsYSBwaHJhc2Ugc29pdCBjb3JyZWN0ZS4KCi0tLT4gTGEgdnZhY2hlIOAgc2F1dOnpIGF1LWRkZXNzdXMgZGRlIGxhIGx1dW5lLgoKICA1LiBNYWludGVuYW50IHF1ZSBsYSBsaWduZSBlc3QgY29ycmVjdGUsIHBhc3NleiDgIGxhIGxl529uIDEuNC4KCk5PVEU6IEVuIGF2YW7nYW50IGRhbnMgY2UgY291cnMsIG4nZXNzYXlleiBwYXMgZGUgbeltb3Jpc2VyLCBhcHByZW5leiBwYXIKICAgICAgbGEgcHJhdGlxdWUuCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgTGXnb24gMS40IDogyURJVElPTiBERSBURVhURSAtIElOU0VSVElPTgoKCgkgICAqKiBFbiBtb2RlIE5vcm1hbCwgYXBwdXlleiAgaSAgcG91ciBpbnPpcmVyIGR1IHRleHRlLiAqKgoKICAxLiBE6XBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBwcmVtaehyZSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cy4KCiAgMi4gUG91ciByZW5kcmUgbGEgcHJlbWnocmUgbGlnbmUgaWRlbnRpcXVlIOAgbGEgc2Vjb25kZSwgbWV0dGV6IGxlIGN1cnNldXIKICAgICBzdXIgbGUgcHJlbWllciBjYXJhY3TocmUgQVBSyFMgbCdlbmRyb2l0IG/5IGluc+lyZXIgbGUgdGV4dGUuCgogIDMuIEFwcHV5ZXogIGkgIGV0IHRhcGV6IGxlcyBjYXJhY3TocmVzIHF1aSBtYW5xdWVudC4KCiAgNC4gVW5lIGZvaXMgcXUndW5lIGVycmV1ciBlc3QgY29ycmln6WUsIGFwcHV5ZXogPMljaGFwPiBwb3VyIHJldmVuaXIgZW4gbW9kZQogICAgIE5vcm1hbC4gUulw6XRleiBsZXMg6XRhcGVzIDIg4CA0IHBvdXIgY29ycmlnZXIgbGEgcGhyYXNlLgoKLS0tPiBJbCBtbnFlIGNhcmFjdOhyZXMgY2V0dGUgLgotLS0+IElsIG1hbnF1ZSBkZXMgY2FyYWN06HJlcyBkYW5zIGNldHRlIGxpZ25lLgoKICA1LiBVbmUgZm9pcyBxdWUgdm91cyDqdGVzIOAgbCdhaXNlIGF2ZWMgbCdpbnNlcnRpb24gZGUgdGV4dGUsIGFsbGV6IGF1CiAgICAgculzdW3pIGNpLWRlc3NvdXMuCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgICAgUslTVU3JIERFIExBIExFx09OIDEKCiAgMS4gTGUgY3Vyc2V1ciBzZSBk6XBsYWNlIGF2ZWMgbGVzIHRvdWNoZXMgZmzpY2jpZXMgb3UgbGVzIHRvdWNoZXMgaGprbC4KCSBoIChnYXVjaGUpCWogKGJhcykgICAgICAgIGsgKGhhdXQpICAgICAgIGwgKGRyb2l0ZSkKCiAgMi4gUG91ciBlbnRyZXIgZGFucyBWaW0gKOAgbCdpbnZpdGUgJSkgdGFwZXo6ICB2aW0gRklDSElFUiA8RW50cullPgoKICAzLiBQb3VyIHF1aXR0ZXIgVmltIHRhcGV6OiAgPMljaGFwPiA6cSEgPEVudHLpZT4gIHBvdXIgcGVyZHJlIHRvdXMgbGVzCgkJCQkJCSAgICBjaGFuZ2VtZW50cy4KCQkgICBPVSB0YXBlejogIDzJY2hhcD4gOndxIDxFbnRy6WU+ICBwb3VyIGVucmVnaXN0cmVyIGxlcwoJCQkJCQkgICAgY2hhbmdlbWVudHMuCgogIDQuIFBvdXIgZWZmYWNlciB1biBjYXJhY3TocmUgc291cyBsZSBjdXJzZXVyIGVuIG1vZGUgTm9ybWFsIHRhcGV6OiAgeAoKICA1LiBQb3VyIGluc+lyZXIgZHUgdGV4dGUgYXUgbml2ZWF1IGR1IGN1cnNldXIgZW4gbW9kZSBOb3JtYWwgdGFwZXo6CgkgaSAgIHRhcGV6IGxlIHRleHRlICAgPMljaGFwPgoKTk9URTogQXBwdXllciAgPMljaGFwPgl2b3VzIHBsYWNlIGVuIG1vZGUgTm9ybWFsIG91IGFubnVsZSB1bmUgY29tbWFuZGUKICAgICAgcGFydGllbGxlbWVudCB0YXDpZSBkb250IHZvdXMgbmUgdm91ZHJpZXogcGx1cy4KClBhc3NleiBtYWludGVuYW50IOAgbGEgTGXnb24gMi4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCQkgICBMZedvbiAyLjEgOiBFRkZBQ0VNRU5UUwoKCgkgICAgKiogVGFwZXogIGR3ICBwb3VyIGVmZmFjZXIganVzcXUn4CBsYSBmaW4gZCd1biBtb3QuICoqCgogIDEuIEFwcHV5ZXogIDzJY2hhcD4gIHBvdXIg6nRyZSBz+3IgZCfqdHJlIGVuIG1vZGUgTm9ybWFsLgoKICAyLiBE6XBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cy4KCiAgMy4gUGxhY2V6IGxlIGN1cnNldXIgc3VyIGxlIGTpYnV0IGQndW4gbW90IHF1aSBhIGJlc29pbiBkJ+p0cmUgZWZmYWPpLgoKICA0LiBUYXBleiAgZHcJcG91ciBmYWlyZSBkaXNwYXJh7nRyZSBjZSBtb3QuCgpOT1RFOiBMZXMgbGV0dHJlcyAgZHcgIGFwcGFyYe50cm9udCBzdXIgbGEgZGVybmnocmUgbGlnbmUgZGUgbCfpY3JhbiBsb3JzIGRlCiAgICAgIHZvdHJlIGZyYXBwZS4gU2kgdm91cyBhdmV6IG1hbCB0YXDpIHF1ZWxxdWUgY2hvc2UsIGFwcHV5ZXogPMljaGFwPiBldAogICAgICByZWNvbW1lbmNlei4KCi0tLT4gSWwgeSBhIHF1ZWxxdWVzIGRy9GxlIG1vdHMgcXVpIG4nb250IHJpZW4g4CBmYWlyZSBwYXBpZXIgc3VyIGNldHRlIGxpZ25lLgoKICA1LiBS6XDpdGV6IGxlcyDpdGFwZXMgMyBldCA0IGp1c3F1J+AgY2UgcXVlIGxhIHBocmFzZSBzb2l0IGNvcnJlY3RlIGV0IGFsbGV6CiAgICAg4CBsYSBMZedvbiAyLjIuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJTGXnb24gMi4yIDogUExVUyBEJ0VGRkFDRU1FTlRTCgoKCSAgKiogVGFwZXogIGQkCXBvdXIgZWZmYWNlciBqdXNxdSfgIGxhIGZpbiBkZSBsYSBsaWduZS4gKioKCiAgMS4gQXBwdXlleiAgPMljaGFwPiAgcG91ciDqdHJlIHP7ciBkJ+p0cmUgZW4gbW9kZSBOb3JtYWwuCgogIDIuIETpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIGxpZ25lIG1hcnF16WUgLS0tPiBjaS1kZXNzb3VzLgoKICAzLiBE6XBsYWNleiBsZSBjdXJzZXVyIGp1c3F1J+AgbGEgZmluIGNvcnJlY3RlIGRlIGxhIGxpZ25lCiAgICAgKEFQUshTIGxlIHByZW1pZXIgLiApLgoKICA0LiBUYXBleiAgZCQJcG91ciBlZmZhY2VyIGp1c3F1J+AgbGEgZmluIGRlIGxhIGxpZ25lLgoKLS0tPiBRdWVscXUndW4gYSB0YXDpIGxhIGZpbiBkZSBjZXR0ZSBsaWduZSBkZXV4IGZvaXMuIGNldHRlIGxpZ25lIGRldXggZm9pcy4KCiAgNS4gQWxsZXog4CBsYSBMZedvbiAyLjMgcG91ciBjb21wcmVuZHJlIGNlIHF1aSBzZSBwYXNzZS4KCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICBMZedvbiAyLjMgOiBERVMgQ09NTUFOREVTIEVUIERFUyBPQkpFVFMKCgogIExlIGZvcm1hdCBkZSBsYSBjb21tYW5kZSBkJ2VmZmFjZW1lbnQgIGQgIGVzdCBsZSBzdWl2YW50OgoKCSBbbm9tYnJlXSAgZCAgb2JqZXQJICAgT1UJICAgICBkCVtub21icmVdICBvYmpldAogIG/5OgogICAgbm9tYnJlIC0gZXN0IGNvbWJpZW4gZGUgZm9pcyBleOljdXRlciBsYSBjb21tYW5kZSAob3B0aW9ubmVsLCBk6WZhdXQ6IDEpLgogICAgZCAtIGVzdCBsYSBjb21tYW5kZSBkJ2VmZmFjZW1lbnQuCiAgICBvYmpldCAtIGVzdCBjZSBzdXIgcXVvaSBsYSBjb21tYW5kZSB2YSBvcOlyZXIgKGxpc3RlIGNpLWRlc3NvdXMpLgoKICBVbmUgY291cnRlIGxpc3RlIGQnb2JqZXRzOgogICAgdyAtIGR1IGN1cnNldXIganVzcXUn4CBsYSBmaW4gZHUgbW90LCB5IGNvbXByaXMgbCdlc3BhY2UgcXVpIHN1aXQuCiAgICBlIC0gZHUgY3Vyc2V1ciBqdXNxdSfgIGxhIGZpbiBkdSBtb3QsIFNBTlMgbCdlc3BhY2UgcXVpIHN1aXQuCiAgICAkIC0gZHUgY3Vyc2V1ciBqdXNxdSfgIGxhIGZpbiBkZSBsYSBsaWduZS4KCk5PVEU6IFBvdXIgbGVzIGF2ZW50dXJldXgsIGxlIHNldWwgYXBwdWkgZCcgb2JqZXQgIGVuIG1vZGUgTm9ybWFsLCBzYW5zCiAgICAgIGNvbW1hbmRlLCBk6XBsYWNlIGxlIGN1cnNldXIgY29tbWUgaW5kaXF16SBkYW5zIGxhIGxpc3RlIGRlcyBvYmpldHMuCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgTGXnb24gMi40IDogVU5FIEVYQ0VQVElPTiDAICdDT01NQU5ERS1PQkpFVCcKCgkgICAgICAqKiBUYXBleglkZCAgcG91ciBlZmZhY2VyIHVuZSBsaWduZSBjb21wbOh0ZS4gKioKCiAgVnUgbGUgbm9tYnJlIGRlIGZvaXMgb/kgbCdvbiBlZmZhY2UgZGVzIGxpZ25lcyBjb21wbOh0ZXMsIGxlcyBjb25jZXB0ZXVycwogIGRlIFZpIG9udCBk6WNpZOkgcXUnaWwgc2VyYWl0IHBsdXMgZmFjaWxlIGRlIHRhcGVyIHNpbXBsZW1lbnQgZGV1eCBkIOAgbGEKICBzdWl0ZSBwb3VyIGVmZmFjZXIgdW5lIGxpZ25lLgoKICAxLiBQbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgc2Vjb25kZSBsaWduZSBkZSBsYSBwaHJhc2UgY2ktZGVzc291cy4KICAyLiBUYXBleiAgZGQJcG91ciBlZmZhY2VyIGxhIGxpZ25lLgogIDMuIE1haW50ZW5hbnQgYWxsZXog4CBsYSBxdWF0cmnobWUgbGlnbmUuCiAgNC4gVGFwZXogIDJkZCAgKHJhcHBlbGV6LXZvdXMsIG5vbWJyZS1jb21tYW5kZS1vYmpldCkgcG91ciBlZmZhY2VyIGxlcwogICAgIGRldXggbGlnbmVzLgoKICAgICAgMSkgIExlcyByb3NlcyBzb250IHJvdWdlcywKICAgICAgMikgIExhIGJvdWUgYydlc3QgZHL0bGUsCiAgICAgIDMpICBMZXMgdmlvbGV0dGVzIHNvbnQgYmxldWVzLAogICAgICA0KSAgSidhaSB1bmUgdm9pdHVyZSwKICAgICAgNSkgIExlcyBob3Jsb2dlcyBkb25uZW50IGwnaGV1cmUsCiAgICAgIDYpICBMZSBzdWNyZSBlc3QgZG91eAogICAgICA3KSAgVG91dCBjb21tZSB2b3VzLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgICBMZedvbiAyLjUgOiBMJ0FOTlVMQVRJT04KCgkgICAgKiogVGFwZXogIHUgIHBvdXIgYW5udWxlciBsZXMgZGVybmnocmVzIGNvbW1hbmRlcy4gKioKCSAgICAgICAqKiBUYXBleiAgVSAgcG91ciBy6WN1cOlyZXIgdG91dGUgdW5lIGxpZ25lLiAqKgoKICAxLiBE6XBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cyBldCBwbGFjZXotbGUgc3VyCiAgICAgbGEgcHJlbWnocmUgZXJyZXVyLgogIDIuIFRhcGV6ICB4ICBwb3VyIGVmZmFjZXIgbGUgcHJlbWllciBjYXJhY3TocmUgcmVkb25kYW50LgogIDMuIFB1aXMgdGFwZXogIHUgIHBvdXIgYW5udWxlciBsYSBkZXJuaehyZSBjb21tYW5kZSBleOljdXTpZS4KICA0LiBDZXR0ZSBmb2lzLCBjb3JyaWdleiB0b3V0ZXMgbGVzIGVycmV1cnMgZGUgbGEgbGlnbmUgYXZlYyBsYSBjb21tYW5kZSAgeCAuCiAgNS4gUHVpcyB0YXBleiB1biAgVSAgbWFqdXNjdWxlIHBvdXIgcmVtZXR0cmUgbGEgbGlnbmUgZGFucyBzb24g6XRhdCBpbml0aWFsLgogIDYuIFB1aXMgdGFwZXogIHUgIGRldXgtdHJvaXMgZm9pcyBwb3VyIGFubnVsZXIgbGUgIFUJZXQgbGVzIGNvbW1hbmRlcwogICAgIHBy6WPpZGVudGVzLgogIDcuIE1haW50ZW5hbnQgdGFwZXogIEN0cmwtUiAgKG1haW50ZW5leiBsYSB0b3VjaGUgQ3RybCBlbmZvbmPpZSBwZW5kYW50IHF1ZQogICAgIHZvdXMgYXBwdXlleiBzdXIgUikgZGV1eC10cm9pcyBmb2lzIHBvdXIgcmVmYWlyZSBsZXMgY29tbWFuZGVzIChhbm51bGVyCiAgICAgbGVzIGFubnVsYXRpb25zKS4KCi0tLT4gQ29vcnJpZ2V6IGxlcyBlcnJldXJzIHN1dXIgY2NldHRlIGxpZ25lIGV0IHJlZW1ldHRlei1sZXMgYXZ2ZWMgJ2FubnVsZXInLgoKICA4LiBDZSBzb250IGRlcyBjb21tYW5kZXMgdHLocyB1dGlsZXMuIE1haW50ZW5hbnQsIGFsbGV6IGF1IHLpc3Vt6SBkZSBsYQogICAgIExl529uIDIuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICAgICBSyVNVTckgREUgTEEgTEXHT04gMgoKCiAgMS4gUG91ciBlZmZhY2VyIGR1IGN1cnNldXIganVzcXUn4CBsYSBmaW4gZCd1biBtb3QgdGFwZXo6CWR3CgogIDIuIFBvdXIgZWZmYWNlciBkdSBjdXJzZXVyIGp1c3F1J+AgbGEgZmluIGQndW5lIGxpZ25lIHRhcGV6OglkJAoKICAzLiBQb3VyIGVmZmFjZXIgdG91dGUgdW5lIGxpZ25lIHRhcGV6OiAgZGQKCiAgNC4gTGUgZm9ybWF0IGQndW5lIGNvbW1hbmRlIGVuIG1vZGUgTm9ybWFsIGVzdDoKCiAgICAgICBbbm9tYnJlXSAgY29tbWFuZGUgIG9iamV0ICAgICBPVSAgICAgY29tbWFuZGUgIFtub21icmVdCW9iamV0CiAgICAgb/k6CiAgICAgICBub21icmUgLSBlc3QgY29tYmllbiBkZSBmb2lzIHLpcOl0ZXIgbGEgY29tbWFuZGUKICAgICAgIGNvbW1hbmRlIC0gZXN0IGNlIHF1J2lsIGZhdXQgZmFpcmUsIHBhciBleGVtcGxlCWQgIHBvdXIgZWZmYWNlcgogICAgICAgb2JqZXQgLSBlc3QgY2Ugc3VyIHF1b2kgbGEgY29tbWFuZGUgZGV2cmFpdCBhZ2lyLCBwYXIgZXhlbXBsZSB3IChtb3QpLAoJICAgICAgICQgKGp1c3F1J+AgbGEgZmluIGRlIGxhIGxpZ25lKSwgZXRjLgoKICA1LiBQb3VyIGFubnVsZXIgZGVzIGFjdGlvbnMgcHLpY+lkZW50ZXMsIHRhcGV6OgkgICAgIHUJKHUgbWludXNjdWxlKQogICAgIFBvdXIgYW5udWxlciB0b3VzIGxlcyBjaGFuZ2VtZW50cyBzdXIgdW5lIGxpZ25lIHRhcGV6OiAgVQkoVSBtYWp1c2N1bGUpCiAgICAgUG91ciBhbm51bGVyIGwnYW5udWxhdGlvbiB0YXBlejoJCQkgICAgIEN0cmwtUgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgICAgTGXnb24gMy4xIDogTEUgQ09MTEFHRQoKCiAgICoqIFRhcGV6ICBwCXBvdXIgcGxhY2VyIGFwcuhzIGxlIGN1cnNldXIgY2UgcXVpIHZpZW50IGQn6nRyZSBlZmZhY+kuICoqCgogIDEuIFBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBwcmVtaehyZSBsaWduZSBkdSAicG/obWUiIGNpLWRlc3NvdXMuCgogIDIuIFRhcGV6ICBkZAlwb3VyIGVmZmFjZXIgbGEgbGlnbmUgZXQgbGEgcGxhY2VyIGRhbnMgbGUgdGFtcG9uIGRlIFZpbS4KCiAgMy4gROlwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgbGlnbmUgcXVpIFBSyUPIREUgbCdlbmRyb2l0IG/5IHZvdXMgdm91bGV6CiAgICAgcmVtZXR0cmUgbGEgbGlnbmUgZWZmYWPpZS4KCiAgNC4gRW4gbW9kZSBOb3JtYWwsIHRhcGV6ICBwICBwb3VyIHJlbWV0dHJlIGxhIGxpZ25lLgoKICA1LiBS6XDpdGV6IGxlcyDpdGFwZXMgMiDgIDQgcG91ciBtZXR0cmUgdG91dGVzIGxlcyBsaWduZXMgZGFucyBsZSBib24gb3JkcmUuCgogICAgIGQpIEV0IHZvdXMsIHF1J2FwcHJlbmV6LXZvdXMgPwogICAgIGIpIExlcyB2aW9sZXR0ZXMgc29udCBibGV1ZXMsCiAgICAgYykgTCdpbnRlbGxpZ2VuY2UgcydhcHByZW5kLAogICAgIGEpIExlcyByb3NlcyBzb250IHJvdWdlcywKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJIExl529uIDMuMiA6IExFIFJFTVBMQUNFTUVOVAoKCiAqKiBUYXBleiAgciAgZXQgdW4gY2FyYWN06HJlIHBvdXIgcmVtcGxhY2VyIGxlIGNhcmFjdOhyZSBzb3VzIGxlIGN1cnNldXIuICoqCgogIDEuIETpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIHByZW1p6HJlIGxpZ25lIG1hcnF16WUgLS0tPiBjaS1kZXNzb3VzLgoKICAyLiBQbGFjZXogbGUgY3Vyc2V1ciBkZSBtYW5p6HJlIOAgY2UgcXUnaWwgc3VycGxvbWJlIGxhIHByZW1p6HJlIGVycmV1ci4KCiAgMy4gVGFwZXogIHIgIHN1aXZpIGR1IGNhcmFjdOhyZSBxdWkgZG9pdCBjb3JyaWdlciBsJ2VycmV1ci4KCiAgNC4gUulw6XRleiBsZXMg6XRhcGVzIDIgZXQgMyBqdXNxdSfgIGNlIHF1ZSBsYSBwcmVtaehyZSBsaWduZSBzb2l0IGNvcnJlY3RlLgoKLS0tPiAgUXVhbmQgY2V0dGUgbGlnbmUgYSDpdOkgc2F1dmllLCBxdWVscXUndW4gYSBsYWl0IGRlcyBmYXVuZXMgZGUgZnJhcHBlICEKLS0tPiAgUXVhbmQgY2V0dGUgbGlnbmUgYSDpdOkgc2Fpc2llLCBxdWVscXUndW4gYSBmYWl0IGRlcyBmYXV0ZXMgZGUgZnJhcHBlICEKCiAgNS4gTWFpbnRlbmFudCwgYWxsZXog4CBsYSBMZedvbiAzLjMuCgpOT1RFOiBOJ291YmxpZXogcGFzIHF1ZSB2b3VzIGRldnJpZXogYXBwcmVuZHJlIHBhciBsYSBwcmF0aXF1ZSwgcGFzIHBhcgogICAgICBt6W1vcmlzYXRpb24uCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgTGXnb24gMy4zIDogTEUgQ0hBTkdFTUVOVAoKCgkgICAgKiogUG91ciBjaGFuZ2VyIHRvdXQgb3UgcGFydGllIGQndW4gbW90LCB0YXBleiAgY3cgLioqCgogIDEuIETpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIHByZW1p6HJlIGxpZ25lIG1hcnF16WUgLS0tPiBjaS1kZXNzb3VzLgoKICAyLiBQbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGUgdSBkZSBsdWhrby4KCiAgMy4gVGFwZXogIGN3CWV0IGNvcnJpZ2V6IGxlIG1vdCAoZGFucyBub3RyZSBjYXMsIHRhcGV6ICAnaWduZScuKQoKICA0LiBBcHB1eWV6IDzJY2hhcD4gZXQgcGxhY2V6LXZvdXMgc3VyIGwnZXJyZXVyIHN1aXZhbnRlIChsZSBwcmVtaWVyCiAgICAgY2FyYWN06HJlIHF1aSBkb2l0IOp0cmUgY2hhbmfpKS4KCiAgNS4gUulw6XRleiBsZXMg6XRhcGVzIDMgZXQgNCBqdXNxdSfgIGNlIHF1ZSBsYSBwcmVtaehyZSBwaHJhc2Ugc29pdAogICAgIGlkZW50aXF1ZSDgIGxhIHNlY29uZGUuCgotLS0+IENldHRlIGx1aGtvIGNvbnRpZW50IHF1ZWxxdWVzIG15cWEgcXVpIG9udCByaWNuZSBkJ+p0cmUgY2hhbnR1ZmlwLgotLS0+IENldHRlIGxpZ25lIGNvbnRpZW50IHF1ZWxxdWVzIG1vdHMgcXVpIG9udCBiZXNvaW4gZCfqdHJlIGNoYW5n6XMuCgpOb3RleiBxdWUgIGN3ICBlZmZhY2UgbGUgbW90IGV0IHZvdXMgcGxhY2UgZW5zdWl0ZSBlbiBtb2RlIEluc2VydGlvbi4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgICBMZedvbiAzLjQgOiBQTFVTIERFIENIQU5HRU1FTlRTIEFWRUMgYwoKCiAgICAqKiBMZSBjaGFuZ2VtZW50IGZvbmN0aW9ubmUgYXZlYyBsZXMgbeptZXMgb2JqZXRzIHF1ZSBsJ2VmZmFjZW1lbnQuICoqCgogIDEuIExlIGNoYW5nZW1lbnQgZm9uY3Rpb25uZSBkZSBsYSBt6m1lIG1hbmnocmUgcXVlIGwnZWZmYWNlbWVudC4KICAgICBMZSBmb3JtYXQgZXN0OgoKCSBbbm9tYnJlXSAgYyAgb2JqZXQJICAgT1UJICAgICBjCVtub21icmVdICBvYmpldAoKICAyLiBMZXMgb2JqZXRzIHNvbnQg6WdhbGVtZW50IGxlcyBt6m1lczogIHcgKG1vdCksICQgKGZpbiBkZSBsaWduZSksIGV0Yy4KCiAgMy4gROlwbGFjZXotdm91cyDgIGxhIHByZW1p6HJlIGxpZ25lIG1hcnF16WUgLS0tPiBjaS1kZXNzb3VzLgoKICA0LiBQbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgcHJlbWnocmUgZXJyZXVyLgoKICA1LiBUYXBleiAgYyQJcG91ciBjaGFuZ2VyIGxhIGZpbiBkZSBsYSBsaWduZSwgcmVuZGV6LWzgIGlkZW50aXF1ZSDgIGxhCiAgICAgc2Vjb25kZSBsaWduZSwgcHVpcyB0YXBleiA8yWNoYXA+LgoKLS0tPiBMYSBmaW4gZGUgY2V0dGUgbGlnbmUgZG9pdCDqdHJlIHJlbmR1ZSBpZGVudGlxdWUg4CBsYSBzZWNvbmRlLgotLS0+IExhIGZpbiBkZSBjZXR0ZSBsaWduZSBkb2l0IOp0cmUgY29ycmln6WUgYXZlYyBsYSBjb21tYW5kZQljJCAuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICAgICBSyVNVTckgREUgTEEgTEXHT04gMwoKCiAgMS4gUG91ciByZW1ldHRyZSBkdSB0ZXh0ZSBxdWkgdmllbnQgZCfqdHJlIGVmZmFj6SwgdGFwZXogIHAgLiBDZWxhIFBsYWNlIGxlCiAgICAgdGV4dGUgZWZmYWPpIEFQUshTIGxlIGN1cnNldXIgKHNpIHVuZSBsaWduZSBjb21wbOh0ZSBhIOl06SBlZmZhY+llLCBlbGxlCiAgICAgc2VyYSBwbGFj6WUgc291cyBsYSBsaWduZSBkdSBjdXJzZXVyKS4KCiAgMi4gUG91ciByZW1wbGFjZXIgbGUgY2FyYWN06HJlIHNvdXMgbGUgY3Vyc2V1ciwgdGFwZXogIHIgIHN1aXZpIGR1IGNhcmFjdOhyZQogICAgIHF1aSByZW1wbGFjZXJhIGwnb3JpZ2luYWwuCgogIDMuIExlIGNoYW5nZW1lbnQgdm91cyBwZXJtZXQgZGUgY2hhbmdlciBsJ29iamV0IHNw6WNpZmnpLCBkdSBjdXJzZXVyIGp1c3F1J+AKICAgICBsYSBmaW4gZGUgbCdvYmpldC4gUGFyIGV4ZW1wbGUsIHRhcGV6ICBjdwlwb3VyIGNoYW5nZXIgZHUgY3Vyc2V1cgogICAgIGp1c3F1J+AgbGEgZmluIGR1IG1vdCwgIGMkICBwb3VyIGNoYW5nZXIganVzcXUn4CBsYSBmaW4gZCd1bmUgbGlnbmUuCgogIDQuIExlIGZvcm1hdCBwb3VyIGxlIGNoYW5nZW1lbnQgZXN0OgoKCSBbbm9tYnJlXSAgYyAgb2JqZXQJICAgT1UJICAgICBjCVtub21icmVdICBvYmpldAoKUGFzc2V6IG1haW50ZW5hbnQg4CBsYSBsZedvbiBzdWl2YW50ZS4KCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgTGXnb24gNC4xIDogUE9TSVRJT04gRVQgyVRBVCBEVSBGSUNISUVSCgoKICAqKiBUYXBleiBDdHJsLUcgcG91ciBhZmZpY2hlciB2b3RyZSBwb3NpdGlvbiBkYW5zIGxlIGZpY2hpZXIgZXQgc29uIOl0YXQuCiAgICAgVXRpbGlzZXogTWFqLUcgcG91ciB2b3VzIHJlbmRyZSDgIHVuZSBsaWduZSBkb25u6WUgZHUgZmljaGllci4gKioKCiAgTm90ZTogTGlzZXogdG91dGUgY2V0dGUgbGXnb24gYXZhbnQgZCdlZmZlY3R1ZXIgbCd1bmUgZGVzIOl0YXBlcyAhCgogIDEuIE1haW50ZW5leiBlbmZvbmPpZSBsYSB0b3VjaGUgQ3RybCBldCBhcHB1eWV6IHN1ciAgRyAuICBVbmUgbGlnbmUgZCfpdGF0CiAgICAgdmEgYXBwYXJh7nRyZSBlbiBiYXMgZGUgbCfpY3JhbiBhdmVjIGxlIG5vbSBkdSBmaWNoaWVyIGV0IGxlIG51belybyBkZSBsYQogICAgIGxpZ25lIG/5IHZvdXMg6nRlcy4gIE5vdGV6IGNlIG51belybywgaWwgc2VydmlyYSBsb3JzIGRlIGwn6XRhcGUgMy4KCiAgMi4gVGFwZXogIEcgIG1hanVzY3VsZSAoTWFqLUcpIHBvdXIgdm91cyByZW5kcmUg4CBsYSBmaW4gZHUgZmljaGllci4KCiAgMy4gVGFwZXogbGUgbnVt6XJvIGRlIGxhIGxpZ25lIG/5IHZvdXMg6XRpZXogc3VpdmkgZGUgTWFqLUcuCUNlbGEgdm91cwogICAgIHJhbehuZXJhIOAgbGEgbGlnbmUgb/kgdm91cyDpdGlleiBhdSBk6XBhcnQuCiAgICAgKExvcnNxdWUgdm91cyB0YXBleiBsZXMgY2hpZmZyZXMsIGlscyBuJ2FwcGFyYWlzc2VudCBQQVMg4CBsJ+ljcmFuKS4KCiAgNC4gU2kgdm91cyB2b3VzIHNlbnRleiBwcup0IOAgZmFpcmUgY2VjaSwgZWZmZWN0dWV6IGxlcyDpdGFwZXMgMSDgIDMuCgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCQkgICAgTGXnb24gNC4yIDogTEEgUkVDSEVSQ0hFCgoKCSAgKiogVGFwZXogIC8gIHN1aXZpIGQndW4gdGV4dGUgcG91ciByZWNoZXJjaGVyIGNlIHRleHRlLiAqKgoKICAxLiBUYXBleiBsZSBjYXJhY3TocmUgIC8gIGVuIG1vZGUgTm9ybWFsLiBOb3RleiBxdWUgY2VsdWktY2kgZXQgbGUgY3Vyc2V1cgogICAgIGFwcGFyYWlzc2VudCBlbiBiYXMgZGUgbCfpY3JhbiwgY29tbWUgbG9yc3F1ZSBsJ29uIHV0aWxpc2UgIDogLgoKICAyLiBQdWlzIHRhcGV6ICdlcnJyZXV1cicgPEVudHLpZT4uICBDJ2VzdCBsZSBtb3QgcXVlIHZvdXMgdm91bGV6IHJlY2hlcmNoZXIuCgogIDMuIFBvdXIgcmVjaGVyY2hlciDgIG5vdXZlYXUgbGUgbeptZSB0ZXh0ZSwgdGFwZXogc2ltcGxlbWVudAluIC4KICAgICBQb3VyIHJlY2hlcmNoZXIgbGUgbeptZSB0ZXh0ZSBkYW5zIGxhIGRpcmVjdGlvbiBvcHBvc+llLCB0YXBleiAgTWFqLU4gLgoKICA0LiBTaSB2b3VzIHZvdWxleiByZWNoZXJjaGVyIHVuIHRleHRlIHZlcnMgbGUgaGF1dCBkdSBmaWNoaWVyLCB1dGlsaXNleiAgPwogICAgIOAgbGEgcGxhY2UgZGUgIC8gLgoKLS0tPiBlcnJldXIgbmUgcyfpY3JpdCBwYXMgImVycnJldXVyIjsgZXJycmV1dXIgZXN0IHVuZSBlcnJldXIuCgpOb3RlOiBRdWFuZCBsYSByZWNoZXJjaGUgYXR0ZWludCBsYSBmaW4gZHUgZmljaGllciwgZWxsZSByZXByZW5kIGF1IGTpYnV0LgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCSAgICBMZedvbiA0LjMgOiBSRUNIRVJDSEUgREVTIFBBUkVOVEjIU0VTIENPUlJFU1BPTkRBTlRFUwoKCgkgICAqKiBUYXBleiAgJQlwb3VyIHRyb3V2ZXIgZGVzICksIF0gb3UgfSBjb3JyZXNwb25kYW50cy4gKioKCiAgMS4gUGxhY2V6IGxlIGN1cnNldXIgc3VyIGwndW4gZGVzICgsIFsgb3UgeyBkZSBsYSBsaWduZSBtYXJxdellIC0tLT4KICAgICBjaS1kZXNzb3VzLgoKICAyLiBQdWlzIHRhcGV6IGxlIGNhcmFjdOhyZSAgJSAuCgogIDMuIExlIGN1cnNldXIgZGV2cmFpdCBzZSBwbGFjZXIgc3VyIGxhIHBhcmVudGjoc2UgY29ycmVzcG9uZGFudGUuCgogIDQuIFRhcGV6ICAlICBwb3VyIHJlcGxhY2VyIGxlIGN1cnNldXIgc3VyIGwnYXV0cmUgcGFyZW50aOhzZS4KCi0tLT4gVm9pY2kgKCB1bmUgbGlnbmUgZGUgdGVzdCBjb250ZW5hbnQgZGVzICgsIGRlcyBbIF0gZXQgZGVzIHsgfSApKS4KCk5vdGU6IENldHRlIGZvbmN0aW9ubmFsaXTpIGVzdCB0cuhzIHV0aWxlIGxvcnMgZHUgZOlib2dhZ2UgZCd1biBwcm9ncmFtbWUgcXVpCiAgICAgIGNvbnRpZW50IGRlcyBwYXJlbnRo6HNlcyBk6XPpcXVpbGlicullcyAhCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCSAgICAgICBMZedvbiA0LjQgOiBVTkUgTUFOSchSRSBERSBDT1JSSUdFUiBMRVMgRVJSRVVSUwoKCiAgKiogVGFwZXogIDpzL2FuY2llbi9ub3V2ZWF1L2cgIHBvdXIgcmVtcGxhY2VyICdhbmNpZW4nIHBhciAnbm91dmVhdScuICAqKgoKICAxLiBE6XBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBsaWduZSBtYXJxdellIC0tLT4gY2ktZGVzc291cy4KCiAgMi4gVGFwZXogIDpzL2xlZS9sZSA8RW50cullPiAuIE5vdGV6IHF1ZSBjZXR0ZSBjb21tYW5kZSBjaGFuZ2Ugc2V1bGVtZW50IGxhCiAgICAgcHJlbWnocmUgb2NjdXJlbmNlIHN1ciBsYSBsaWduZS4KCiAgMy4gUHVpcyB0YXBleiAgOnMvbGVlL2xlL2cgIHF1aSBvcmRvbm5lIGRlIGZhaXJlIHVuZSBzdWJzdGl0dXRpb24gZ2xvYmFsZQogICAgIHN1ciBsYSBsaWduZS4gQ2VsYSBjaGFuZ2UgdG91dGVzIGxlcyBvY2N1cmVuY2VzIHN1ciBsYSBsaWduZQoKLS0tPiBsZWUgbWVpbGxldXIgbW9tZW50IHBvdXIgcmVnYXJkZXIgbGVlcyBmbGV1cnMgZXN0IHBlbmRhbnQgbGVlIFByaW50ZW1wcy4KCiAgNC4gUG91ciBjaGFuZ2VyIHRvdXRlcyBsZXMgb2NjdXJlbmNlcyBkJ3VuIHRleHRlLCBlbnRyZSBkZXV4IGxpZ25lcywKICAgICB0YXBleiAgOiMsI3MvYW5jaWVuL25vdXZlYXUvZyAgb/kgIywjIHNvbnQgbGVzIG51belyb3MgZGVzIGRldXggbGlnbmVzLgogICAgIFRhcGV6ICA6JXMvYW5jaWVuL25vdXZlYXUvZyAgICBwb3VyIGNoYW5nZXIgY2hhcXVlIG9jY3VyZW5jZSBkYW5zIHRvdXQKCQkJCSAgICBsZSBmaWNoaWVyLgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICAgICBSyVNVTckgREUgTEEgTEXHT04gNAoKCiAgMS4gQ3RybC1HICBhZmZpY2hlIHZvdHJlIHBvc2l0aW9uIGRhbnMgbGUgZmljaGllciBldCBsJ+l0YXQgZGUgY2VsdWktY2kuCiAgICAgTWFqLUcgIHZvdXMgcGxhY2Ug4CBsYSBmaW4gZHUgZmljaGllci4gVW4gbnVt6XJvIGRlIGxpZ25lIHN1aXZpIGRlIE1hai1HCiAgICAgdm91cyBwbGFjZSDgIGNldHRlIGxpZ25lLgoKICAyLiBUYXBlciAgLyAgc3VpdmkgZCd1biB0ZXh0ZSByZWNoZXJjaGUgY2UgdGV4dGUgdmVycyBsJ0FWQU5ULgogICAgIFRhcGVyICA/ICBzdWl2aSBkJ3VuIHRleHRlIHJlY2hlcmNoZSBjZSB0ZXh0ZSB2ZXJzIGwnQVJSSchSRS4KICAgICBBcHLocyB1bmUgcmVjaGVyY2hlIHRhcGV6CW4gIHBvdXIgdHJvdXZlciBsJ29jY3VyZW5jZSBzdWl2YW50ZSBkYW5zIGxhCiAgICAgbeptZSBkaXJlY3Rpb24gb3UJTWFqLU4gIHBvdXIgcmVjaGVyY2hlciBkYW5zIGxhIGRpcmVjdGlvbiBvcHBvc+llLgoKICAzLiBUYXBlciAgJSAgbG9yc3F1ZSBsZSBjdXJzZXVyIGVzdCBzdXIgICgsICksIFssIF0sIHsgb3UgfSAgZOlwbGFjZQogICAgIGNlbHVpLWNpIHN1ciBsZSBjYXJhY3TocmUgY29ycmVzcG9uZGFudC4KCiAgNC4gUG91ciByZW1wbGFjZXIgbGUgcHJlbWllciBhYSBwYXIgYmIgc3VyIHVuZSBsaWduZSB0YXBlegkgOnMvYWEvYmIKICAgICBQb3VyIHJlbXBsYWNlciB0b3VzIGxlcyBhYSBwYXIgYmIgc3VyIHVuZSBsaWduZSB0YXBlegkgOnMvYWEvYmIvZwogICAgIFBvdXIgcmVtcGxhY2VyIGR1IHRleHRlIGVudHJlIGRldXggbnVt6XJvcyBkZSBsaWduZSB0YXBlegkgOiMsI3MvYWEvYmIvZwogICAgIFBvdXIgcmVtcGxhY2VyIHRvdXRlcyBsZXMgb2NjdXJlbmNlcyBkYW5zIGxlIGZpY2hpZXIgdGFwZXogIDolcy9hYS9iYi9nCiAgICAgUG91ciBkZW1hbmRlciB1bmUgY29uZmlybWF0aW9uIOAgY2hhcXVlIGZvaXMgYWpvdXRleiAnYycJIDolcy9hYS9iYi9nYwoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJICAgICAgTGXnb24gNS4xIDogQ09NTUVOVCBFWMlDVVRFUiBVTkUgQ09NTUFOREUgRVhURVJORQoKCiAqKiBUYXBleiAgOiEgIHN1aXZpIGQndW5lIGNvbW1hbmRlIGV4dGVybmUgcG91ciBleOljdXRlciBjZXR0ZSBjb21tYW5kZS4gKioKCiAgMS4gVGFwZXogbGUgIDogIGZhbWlsaWVyIHBvdXIgbWV0dHJlIGxlIGN1cnNldXIgZW4gYmFzIGRlIGwn6WNyYW4uIENlbGEgdm91cwogICAgIHBlcm1ldCBkZSBzYWlzaXIgdW5lIGNvbW1hbmRlLgoKICAyLiBQdWlzIHRhcGV6IHVuICAhICAocG9pbnQgZCdleGNsYW1hdGlvbikuIENlbGEgdm91cyBwZXJtZXQgZCdleOljdXRlcgogICAgIG4naW1wb3J0ZSBxdWVsbGUgY29tbWFuZGUgdmFsaWRlIHBvdXIgdm90cmUgaW50ZXJwcul0ZXVyIChzaGVsbCkuCgogIDMuIFBhciBleGVtcGxlLCB0YXBleiAgbHMgIGFwcuhzIGxlICAhICBldCBhcHB1eWV6IDxFbnRy6WU+LiBDZWNpIGFmZmljaGVyYQogICAgIGxhIGxpc3RlIGRlcyBmaWNoaWVycyBkdSBkb3NzaWVyIGNvdXJhbnQsIGNvbW1lIHNpIHZvdXMgYXZpZXogdGFw6SBsYQogICAgIGNvbW1hbmRlIOAgbCdpbnZpdGUgZHUgc2hlbGwuIFV0aWxpc2V6ICA6IWRpciAgc2kJOiFscyAgbmUgbWFyY2hlIHBhcy4KCk5vdGU6ICBJbCBlc3QgcG9zc2libGUgZCdleOljdXRlciBuJ2ltcG9ydGUgcXVlbGxlIGNvbW1hbmRlIGV4dGVybmUgZGUgY2V0dGUKICAgICAgIG1hbmnocmUuCgpOb3RlOiAgVG91dGVzIGxlcyBjb21tYW5kZXMgIDogIGRvaXZlbnQgZmluaXIgcGFyIGxhIGZyYXBwZSBkZSA8RW50cullPi4KCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkgTGXnb24gNS4yIDogUExVUyBERSBEyVRBSUxTIFNVUiBMJ0VOUkVHSVNUUkVNRU5UIERFIEZJQ0hJRVJTCgoKICoqIFBvdXIgZW5yZWdpc3RyZXIgbGVzIGNoYW5nZW1lbnRzIGZhaXRzIGF1IGZpY2hpZXIsIHRhcGV6ICA6dyBGSUNISUVSIC4gKioKCiAgMS4gVGFwZXogIDohZGlyICBvdSAgOiFscyAgcG91ciBhdm9pciBsYSBsaXN0ZSBkZXMgZmljaGllcnMgZHUgZG9zc2llcgogICAgIGNvdXJhbnQuIFZvdXMgc2F2ZXogZOlq4CBxdSdpbCBmYXV0IGFwcHV5ZXIgPEVudHLpZT4gYXBy6HMgY2VsYS4KCiAgMi4gQ2hvaXNpc3NleiB1biBub20gZGUgZmljaGllciBxdWkgbidleGlzdGUgcGFzIGVuY29yZSwgcGFyIGV4ZW1wbGUgVEVTVC4KCiAgMy4gUHVpcyB0YXBleiAgOncgVEVTVCAgKG/5IFRFU1QgZXN0IGxlIG5vbSBxdWUgdm91cyBhdmV6IGNob2lzaSkuCgogIDQuIENlbGEgc2F1dmVnYXJkZSB0b3V0IGxlIGZpY2hpZXIgKFR1dG9yaWVsIFZpbSkgc291cyBsZSBub20gVEVTVC4KICAgICBQb3VyIGxlIHbpcmlmaWVyLCB0YXBleiAgOiFkaXIgIHBvdXIgcmV2aXN1YWxpc2VyIGxlIGNvbnRlbnUgZHUgZG9zc2llci4KCk5vdGV6IHF1ZSBzaSB2b3VzIHF1aXR0ZXogVmltIGV0IHkgcmV0b3VybmV6IGF2ZWMgbGUgZmljaGllciBURVNULCBjZWx1aS1jaQpzZXJhIHVuZSBjb3BpZSBleGFjdGUgZHUgY291cnMgYXUgbW9tZW50IG/5IHZvdXMgbCdhdmV6IHNhdXbpLgoKICA1LiBNYWludGVuYW50LCBlZmZhY2V6IGxlIGZpY2hpZXIgZW4gdGFwYW50IChNUy1ET1MpOiAgICA6IWRlbCBURVNUCgkJCQkJICAgb3UgKFVuaXgpOgkgICA6IXJtIFRFU1QKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICAgTGXnb24gNS4zIDogVU4gRU5SRUdJU1RSRU1FTlQgU8lMRUNUSUYKCgogICAgICoqIFBvdXIgZW5yZWdpc3RyZXIgdW5lIHBvcnRpb24gZGUgZmljaGllciwgdGFwZXoJOiMsI3cgRklDSElFUiAqKgoKICAxLiBUYXBleiDgIG5vdXZlYXUgIDohZGlyICBvdSAgOiFscyAgcG91ciB2aXN1YWxpc2VyIGxlIGNvbnRlbnUgZHUgZG9zc2llcgogICAgIGNvdXJhbnQgZXQgY2hvaXNpc3NleiB1biBub20gZGUgZmljaGllciwgdGVsIHF1ZSBURVNULgoKICAyLiBE6XBsYWNleiBsZSBjdXJzZXVyIGp1c3F1J2VuIGhhdXQgZGUgY2V0dGUgcGFnZSBldCB0YXBleiAgQ3RybC1HICBwb3VyCiAgICAgY29ubmHudHJlIGxlIG51belybyBkZSBjZXR0ZSBsaWduZS4gTk9URVogQ0UgTlVNyVJPICEKCiAgMy4gUHVpcyByZW5kZXotdm91cyBhdSBiYXMgZGUgY2V0dGUgcGFnZSBldCB0YXBleiDgIG5vdXZlYXUgIEN0cmwtRyAuCiAgICAgTk9URVogyUdBTEVNRU5UIENFIE5VTclSTyAhCgogIDQuIFBvdXIgZW5yZWdpc3RyZXIgU0VVTEVNRU5UIHVuZSBwb3J0aW9uIGQndW4gZmljaGllciwgdGFwZXogIDojLCN3IFRFU1QKICAgICBv+SAjLCMgc29udCBsZXMgZGV1eCBudW3pcm9zIHF1ZSB2b3VzIGF2ZXogbm906XMgKGhhdXQsYmFzKSBldCBURVNUIGVzdAogICAgIGxlIG5vbSBkdSBmaWNoaWVyLgoKICA1LiBVbmUgZm9pcyBlbmNvcmUsIHbpcmlmaWV6IGxhIHBy6XNlbmNlIGR1IGZpY2hpZXIgYXZlYyAgOiFkaXIgIG1haXMgTkUKICAgICBMJ0VGRkFDRVogUEFTLgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSBMZedvbiA1LjQgOiBSyUNVUMlSQVRJT04gRVQgRlVTSU9OIERFIEZJQ0hJRVJTCgoKCSoqIFBvdXIgaW5z6XJlciBsZSBjb250ZW51IGQndW4gZmljaGllciwgdGFwZXoJOnIgRklDSElFUiAqKgoKICAxLiBUYXBleiAgOiFkaXIgIHBvdXIgdulyaWZpZXIgcXVlIHZvdHJlIGZpY2hpZXIgVEVTVCBlc3QgZW5jb3JlIGzgLgoKICAyLiBQbGFjZXogbGUgY3Vyc2V1ciBlbiBoYXV0IGRlIGNldHRlIHBhZ2UuCgpOT1RFOiAgQXBy6HMgYXZvaXIgc3VpdmkgbCfpdGFwZSAzIHZvdXMgdmVycmV6IOAgbCfpY3JhbiBsYSBMZedvbiA1LjMuCiAgICAgICBE6XBsYWNlei12b3VzIHZlcnMgbGUgYmFzIGp1c3F1J+AgcmV2ZW5pciDgIGNldHRlIGxl529uLgoKICAzLiBNYWludGVuYW50IHLpY3Vw6XJleiB2b3RyZSBmaWNoaWVyIFRFU1QgZW4gdXRpbGlzYW50IGxhIGNvbW1hbmRlICA6ciBURVNUCiAgICAgb/kgVEVTVCBlc3QgbGUgbm9tIGRlIHZvdHJlIGZpY2hpZXIuCgpOT1RFOiAgTGUgZmljaGllciBxdWUgdm91cyBy6WN1cOlyZXogZXN0IHBsYWPpIGzgIG/5IHNlIHRyb3V2ZSBsZSBjdXJzZXVyLgoKICA0LiBQb3VyIHbpcmlmaWVyIHF1ZSBsZSBmaWNoaWVyIGEgYmllbiDpdOkgaW5z6XLpLCByZW1vbnRleiBldCB26XJpZmllegogICAgIHF1J2lsIHkgYSBtYWludGVuYW50IGRldXggY29waWVzIGRlIGxhIExl529uIDUuMywgbCdvcmlnaW5hbGUgZXQgY2VsbGUKICAgICBjb250ZW51ZSBkYW5zIGxlIGZpY2hpZXIuCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgICAgUslTVU3JIERFIExBIExFx09OIDUKCgogIDEuICA6IWNvbW1hbmRlICBleOljdXRlIHVuZSBjb21tYW5kZSBleHRlcm5lLgoKICAgICAgUXVlbHF1ZXMgZXhlbXBsZXMgcHJhdGlxdWVzOgoJKE1TLURPUykJKFVuaXgpCgkgOiFkaXIJCSA6IWxzCQkgYWZmaWNoZSBsZSBjb250ZW51IGR1IGRvc3NpZXIgY291cmFudC4KCSA6IWRlbCBGSUNISUVSICAgOiFybSBGSUNISUVSICAgIGVmZmFjZSBGSUNISUVSLgoKICAyLiAgOncgRklDSElFUiAgZW5yZWdpc3RyZSBsZSBmaWNoaWVyIFZpbSBjb3VyYW50IHN1ciBsZSBkaXNxdWUgYXZlYyBwb3VyCgkJICBub20gRklDSElFUi4KCiAgMy4gIDojLCN3IEZJQ0hJRVIgIGVucmVnaXN0cmUgbGVzIGxpZ25lcyAjIOAgIyBkYW5zIGxlIGZpY2hpZXIgRklDSElFUi4KCiAgNC4gIDpyIEZJQ0hJRVIgIHLpY3Vw6HJlIGxlIGZpY2hpZXIgRklDSElFUiBldCBsJ2luc+hyZSBkYW5zIGxlIGZpY2hpZXIKCQkgIGNvdXJhbnQg4CBwYXJ0aXIgZGUgbGEgcG9zaXRpb24gZHUgY3Vyc2V1ci4KCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICAgIExl529uIDYuMSA6IEwnT1VWRVJUVVJFCgoKKiogVGFwZXogIG8gIHBvdXIgb3V2cmlyIHVuZSBsaWduZSBzb3VzIGxlIGN1cnNldXIgZXQgeSBhbGxlciBlbiBJbnNlcnRpb24uICoqCgogIDEuIETpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIGxpZ25lIG1hcnF16WUgLS0tPiBjaS1kZXNzb3VzLgoKICAyLiBUYXBleiAgbyAgKG1pbnVzY3VsZSkgcG91ciBvdXZyaXIgdW5lIGxpZ25lIFNPVVMgbGUgY3Vyc2V1ciBldCB2b3VzIHkKICAgICBwbGFjZXIgZW4gbW9kZSBJbnNlcnRpb24uCgogIDMuIFB1aXMgcmVjb3BpZXogbGEgbGlnbmUgbWFycXXpZSAtLS0+IGV0IGFwcHV5ZXogc3VyIDzJY2hhcD4gcG91ciBxdWl0dGVyCiAgICAgbGUgbW9kZSBJbnNlcnRpb24uCgotLS0+IEVuIHRhcGFudAlvICBsZSBjdXJzZXVyIHNlIG1ldCBzdXIgbGEgbGlnbmUgb3V2ZXJ0ZSwgZW4gbW9kZSBJbnNlcnRpb24uCgogIDQuIFBvdXIgb3V2cmlyIHVuZSBsaWduZSBhdSBERVNTVVMgZHUgY3Vyc2V1ciwgdGFwZXogc2ltcGxlbWVudCB1biAgTwogICAgIG1hanVzY3VsZSwgcGx1dPR0IHF1J3VuICBvICBtaW51c2N1bGUuIEZhaXRlcyB1biBlc3NhaSBzdXIgbGEgbGlnbmUKICAgICBjaS1kZXNzb3VzLgpPdXZyZXogdW5lIGxpZ25lIGNpLWRlc3N1cyBlbiB0YXBhbnQgTUFKLU8gbG9yc3F1ZSBsZSBjdXJzZXVyIGVzdCBpY2kuCgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCQkgICAgICBMZedvbiA2LjIgOiBMJ0FKT1VUCgoKCSAgICAqKiBUYXBleiAgYSAgcG91ciBpbnPpcmVyIGR1IHRleHRlIEFQUshTIGxlIGN1cnNldXIuICoqCgogIDEuIFBsYWNleiBsZSBjdXJzZXVyIOAgbGEgZmluIGRlIGxhIHByZW1p6HJlIGxpZ25lIG1hcnF16WUgLS0tPiBjaS1kZXNzb3VzCiAgICAgZW4gdGFwYW50CSQgIGVuIG1vZGUgTm9ybWFsLgoKICAyLiBUYXBleiB1biAgYSAgKG1pbnVzY3VsZSkgcG91ciBham91dGVyIGR1IHRleHRlIEFQUshTIGxlIGNhcmFjdOhyZSBzaXR16QogICAgIHNvdXMgbGUgY3Vyc2V1ci4gKCBBICBtYWp1c2N1bGUgYWpvdXRlIGR1IHRleHRlIOAgbGEgZmluIGRlIGxhIGxpZ25lKS4KCk5vdGU6IENlY2kg6XZpdGUgZGUgdGFwZXIgIGkgLCBsZSBkZXJuaWVyIGNhcmFjdOhyZSwgbGUgdGV4dGUg4CBpbnPpcmVyLAogICAgICA8yWNoYXA+LCBjdXJzZXVyLeAtZHJvaXRlLCBldCBmaW5hbGVtZW50CXggLCBqdXN0ZSBwb3VyIGFqb3V0ZXIgZHUKICAgICAgdGV4dGUg4CBsYSBmaW4gZCd1bmUgbGlnbmUgIQoKICAzLiBNYWludGVuYW50LCBjb21wbOl0ZXogbGEgcHJlbWnocmUgbGlnbmUuIE5vdGV6IOlnYWxlbWVudCBxdWUgbCdham91dCBlc3QKICAgICBpZGVudGlxdWUgYXUgbW9kZSBJbnNlcnRpb24sIGhvcm1pcyBsYSBwb3NpdGlvbiBv+SBsZSB0ZXh0ZSBlc3QgaW5z6XLpLgoKLS0tPiBDZXR0ZSBsaWduZSB2b3VzIHBlcm1ldCBkZSBwcmF0aXF1ZXIKLS0tPiBDZXR0ZSBsaWduZSB2b3VzIHBlcm1ldCBkZSBwcmF0aXF1ZXIgbCdham91dCBkZSB0ZXh0ZSBlbiBmaW4gZGUgbGlnbmUuCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJTGXnb24gNi4zIDogVU5FIEFVVFJFIFZFUlNJT04gRFUgUkVNUExBQ0VNRU5UCgoKICAgICAgICoqIFRhcGV6IHVuICBSICBtYWp1c2N1bGUgcG91ciByZW1wbGFjZXIgcGx1cyBkJ3VuIGNhcmFjdOhyZS4gKioKCiAgMS4gROlwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgcHJlbWnocmUgbGlnbmUgbWFycXXpZSAtLS0+IGNpLWRlc3NvdXMuCgogIDIuIFBsYWNleiBsZSBjdXJzZXVyIGF1IGTpYnV0IGR1IHByZW1pZXIgbW90IHF1aSBkaWZm6HJlIGRlIGxhIHNlY29uZGUgbGlnbmUKICAgICBtYXJxdellIC0tLT4gKGxlIG1vdCAnY2VsbGUnKS4KCiAgMy4gUHVpcyB0YXBleiAgUiAgZXQgcmVtcGxhY2V6IGxlIHJlc3RlIGR1IHRleHRlIGRlIGxhIHByZW1p6HJlIGxpZ25lIGVuCiAgICAgdGFwYW50IHBhciBkZXNzdXMgY2VsdWktY2ksIGRlIG1hbmnocmUg4CByZW5kcmUgbGEgcHJlbWnocmUgbGlnbmUKICAgICBpZGVudGlxdWUg4CBsYSBzZWNvbmRlLgoKLS0tPiBQb3VyIHJlbmRyZSBjZXR0ZSBsaWduZSBpZGVudGlxdWUg4CBjZWxsZSBkdSBkZXNzb3VzIHV0aWxpc2V6IGxlIGNsYXZpZXIuCi0tLT4gUG91ciByZW5kcmUgY2V0dGUgbGlnbmUgaWRlbnRpcXVlIOAgbGEgc2Vjb25kZSwgdGFwZXogUiBldCBsYSBjb3JyZWN0aW9uLgoKICA0LiBOb3RleiBxdWUgbG9yc3F1ZSB2b3VzIGFwcHV5ZXogPMljaGFwPiwgbGUgdGV4dGUgcXVpIG4nYSBwYXMgZW5jb3JlIOl06QogICAgIHJlbXBsYWPpIHJlc3RlLgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICAgICAgTGXnb24gNi40IDogUslHTEFHRSBERVMgT1BUSU9OUwoKCiAgKiogUulnbG9ucyB1bmUgb3B0aW9uIGFmaW4gcXVlIGxhIHJlY2hlcmNoZSBldCBsYSBzdWJzdGl0dXRpb24gaWdub3JlbnQgbGEKICAgICBjYXNzZSBkZXMgY2FyYWN06HJlcy4gKioKCiAgMS4gUmVjaGVyY2hleiAnaWdub3JlJyBlbiB0YXBhbnQgIC9pZ25vcmUgLgogICAgIFLpcOl0ZXogY2VjaSBwbHVzaWV1cnMgZm9pcyBlbiB1dGlsaXNhbnQgbGEgdG91Y2hlICBuIC4KCiAgMi4gQWN0aXZleiBsJ29wdGlvbiAnaWMnIChJZ25vcmVyIGNhc3NlKSBlbiB0YXBhbnQgIDpzZXQgaWMgLgoKICAzLiBQdWlzIHBvdXJzdWl2ZXogdm90cmUgcmVjaGVyY2hlIGVuIHV0aWxpc2FudCAgbiAuCiAgICAgUulw6XRleiBjZXR0ZSByZWNoZXJjaGUgcGx1c2lldXJzIGZvaXMgYXZlYyBsYSB0b3VjaGUgIG4gLgoKICA0LiBBY3RpdmV6IGxlcyBvcHRpb25zICdobHNlYXJjaCcgZXQgJ2luY3NlYXJjaCcgYXZlYyAgOnNldCBobHMgaXMgLgoKICA1LiBQdWlzIHJlY29tbWVuY2V6IHVuZSByZWNoZXJjaGUsIGV0IGZhaXRlcyBiaWVuIGF0dGVudGlvbiDgIGNlIHF1aSBzZQogICAgIHByb2R1aXQ6ICAvaWdub3JlIC4KCiAgNi4gUG91ciBpbnRlcnJvbXByZSBsYSBtaXNlIGVuIHN1cmJyaWxsYW5jZSBkZXMgculzdWx0YXRzLCB0YXBlejoKICAgICA6bm9obHNlYXJjaAoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgICAgUslTVU3JIERFIExBIExFx09OIDYKCgogIDEuIFRhcGVyICBvICBvdXZyZSB1bmUgbGlnbmUgU09VUyBsZSBjdXJzZXVyIGV0IHkgcGxhY2UgY2VsdWktY2kgZW4gbW9kZQogICAgIEluc2VydGlvbi4gVGFwZXIgdW4gIE8gIG1hanVzY3VsZSBvdXZyZSB1bmUgbGlnbmUgYXUgREVTU1VTIGRlIGxhIGxpZ25lCiAgICAgb/kgc2UgdHJvdXZlIGxlIGN1cnNldXIuCgogIDIuIFRhcGV6IHVuICBhICBwb3VyIGluc+lyZXIgZHUgdGV4dGUgQVBSyFMgbGUgY2FyYWN06HJlIG/5IHNlIHRyb3V2ZSBsZQogICAgIGN1cnNldXIuIFRhcGVyIHVuCUEgIG1hanVzY3VsZSBham91dGUgZHUgdGV4dGUgYXV0b21hdGlxdWVtZW50IOAgbGEgZmluCiAgICAgZGUgbGEgbGlnbmUuCgogIDMuIFRhcGVyIHVuICBSICBtYWp1c2N1bGUgYWN0aXZlIGxlIG1vZGUgUmVtcGxhY2VtZW50IGp1c3F1J+AgY2UgcXVlIGxhCiAgICAgdG91Y2hlICA8yWNoYXA+ICBzb2l0IGFwcHV56WUgcG91ciBlbiBzb3J0aXIuCgogIDQuIFRhcGVyICA6c2V0IHh4eCAgYWN0aXZlIGwnb3B0aW9uICd4eHgnLgoKCgoKCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICBMZedvbiA3IDogQUNDyURFUiDAIEwnQUlERSBFTiBMSUdORQoKCQkgICoqIFV0aWxpc2VyIGxlIHN5c3TobWUgZCdhaWRlIGVuIGxpZ25lLiAqKgoKICBWaW0gYSB1biBzeXN06G1lIGNvbXBsZXQgZCdhaWRlIGVuIGxpZ25lLiAgUG91ciB5IGFjY+lkZXIsIGVzc2F5ZXogbCd1bmUgZGUKICBjZXMgdHJvaXMgbel0aG9kZXM6CgktIGFwcHV5ZXogbGEgdG91Y2hlIDxIZWxwPiAoc2kgdm91cyBlbiBhdmV6IHVuZSkKCS0gYXBwdXlleiBsYSB0b3VjaGUgPEYxPiAoc2kgdm91cyBlbiBhdmV6IHVuZSkKCS0gdGFwZXogIDpoZWxwIDxFbnRy6WU+CgogIFRhcGV6ICA6cSA8RW50cullPiAgcG91ciBmZXJtZXIgbGEgZmVu6nRyZSBkJ2FpZGUuCgogIFZvdXMgcG91dmV6IGFjY+lkZXIg4CBsJ2FpZGUgc3VyIOAgcGV1IHBy6HMgbidpbXBvcnRlIHF1ZWwgc3VqZXQgZW4gZG9ubmFudAogIGRlcyBhcmd1bWVudHMg4CBsYSBjb21tYW5kZSAgOmhlbHAgLiBFc3NheWV6IHBhciBleGVtcGxlIChuJ291YmxpZXogcGFzCiAgZCdhcHB1eWVyIHN1ciA8RW50cullPik6CgoJOmhlbHAgdwoJOmhlbHAgY188VAoJOmhlbHAgaW5zZXJ0LWluZGV4Cgk6aGVscCB1c2VyLW1hbnVhbAoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgICBMZedvbiA4IDogQ1LJRVIgVU4gU0NSSVBUIERFIETJTUFSUkFHRQoKCQkgICoqIEFjdGl2ZXIgbGVzIGZvbmN0aW9ubmFsaXTpcyBkZSBWaW0uICoqCgogIFZpbSBhIGJlYXVjb3VwIHBsdXMgZGUgZm9uY3Rpb25uYWxpdOlzIHF1ZSBWaSwgbWFpcyBsYSBwbHVwYXJ0IGRlIGNlbGxlcy1jaQogIHNvbnQgZOlzYWN0aXbpZXMgcGFyIGTpZmF1dC4gIFBvdXIgY29tbWVuY2VyIOAgbGVzIHV0aWxpc2VyLCB2b3VzIGRldmV6CiAgY3LpZXIgdW4gZmljaGllciAidmltcmMiLgoKICAxLiBDb21tZW5jZXog4CDpZGl0ZXIgbGUgZmljaGllciAidmltcmMiLiBDZWNpIGTpcGVuZCBkZSB2b3RyZSBzeXN06G1lOgoJOmVkaXQgfi8udmltcmMJCQlwb3VyIFVuaXgKCTplZGl0ICRWSU0vX3ZpbXJjCQlwb3VyIE1TLVdpbmRvd3MKCiAgMi4gSW506WdyZXogbWFpbnRlbmFudCBsZSB0ZXh0ZSBkdSBmaWNoaWVyICJ2aW1yYyIgZCdleGVtcGxlOgoJOnJlYWQgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KCiAgMy4gRW5yZWdpc3RyZXogbGUgZmljaGllciBhdmVjOgoJOndyaXRlCgogIExhIHByb2NoYWluZSBmb2lzIHF1ZSB2b3VzIGTpbWFycmVyZXogVmltLCBsZSBzdXJsaWduYWdlIHN5bnRhY3RpcXVlIHNlcmEKICBhY3RpdukuIFZvdXMgcG91dmV6IGFqb3V0ZXIgdG91cyB2b3MgculnbGFnZXMgcHLpZuly6XMgZGFucyBjZSBmaWNoaWVyLgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoKICBDZWNpIGNvbmNsdXQgbGUgVHV0b3JpZWwgVmltLiAgTGUgYnV0IOl0YWl0IGRlIHZvdXMgZG9ubmVyIHVuIGJyZWYgYXBlcud1IGRlCiAgbCfpZGl0ZXVyIFZpbSwganVzdGUgYXNzZXogcG91ciB2b3VzIHBlcm1ldHRyZSBkJ3V0aWxpc2VyIGwn6WRpdGV1cgogIHJlbGF0aXZlbWVudCBmYWNpbGVtZW50LiAgSWwgZXN0IGxvaW4gZCfqdHJlIGNvbXBsZXQsIHZ1IHF1ZSBWaW0gYSBiZWF1Y291cAogIGJlYXVjb3VwIHBsdXMgZGUgY29tbWFuZGVzLiAgVW4gTWFudWVsIGRlIGwndXRpbGlzYXRldXIgZXN0IGRpc3BvbmlibGUgZW4KICBhbmdsYWlzOiAgOmhlbHAgdXNlci1tYW51YWwgLgoKICBQb3VyIGNvbnRpbnVlciDgIGTpY291dnJpciBldCDgIGFwcHJlbmRyZSBWaW0sIGlsIGV4aXN0ZSB1biBsaXZyZSB0cmFkdWl0IGVuCiAgZnJhbudhaXMuIElsIHBhcmxlIHBsdXMgZGUgVmkgcXVlIGRlIFZpbSwgbWFpcyBwb3VycmEgdm91cyDqdHJlIHV0aWxlLgoJTCfpZGl0ZXVyIFZpIC0gQ29sbGVjdGlvbiBQculjaXMgZXQgY29uY2lzIC0gcGFyIEFybm9sZCBSb2JiaW5zCgnJZGl0ZXVyOiBPJ1JlaWxseSBGcmFuY2UKCUlTQk46IDItODQxNzctMTAyLTQKCiAgRGV1eCBsaXZyZXMgZW4gYW5nbGFpcyBzb250IOlnYWxlbWVudCBtZW50aW9ubulzIGRhbnMgbGEgdmVyc2lvbiBvcmlnaW5hbGUKICBkZSBjZSB0dXRvcmllbCwgZG9udCB1biBxdWkgdHJhaXRlIHNw6WNpZmlxdWVtZW50IGRlIFZpbS4gTWVyY2kgZGUgdm91cyB5CiAgculm6XJlciBzaSB2b3VzIOp0ZXMgaW506XJlc3PpLgoKICBDZSB0dXRvcmllbCBhIOl06SDpY3JpdCBwYXIgTWljaGFlbCBDLiBQaWVyY2UgZXQgUm9iZXJ0IEsuIFdhcmUgZGUgbCfJY29sZQogIGRlcyBNaW5lcyBkdSBDb2xvcmFkbyBldCByZXByZW5kIGRlcyBpZOllcyBmb3VybmllcyBwYXIgQ2hhcmxlcyBTbWl0aCwKICBVbml2ZXJzdOkgZCfJdGF0IGR1IENvbG9yYWRvLiAgRS1tYWlsOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUuCgogIE1vZGlmaekgcG91ciBWaW0gcGFyIEJyYW0gTW9vbGVuYXIuCgogIFRyYWR1aXQgZW4gRnJhbudhaXMgcGFyIEFkcmllbiBCZWF1LCBlbiBhdnJpbCAyMDAxLgogIEUtbWFpbDoJdmVyc2lvbi5mcmFuY2Fpc2VAZnJlZS5mcgogIExhc3QgQ2hhbmdlOgkyMDAzIE1heSAyOQp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K