PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo9ICAgICAgQiBlIG0gICBWIGkgbiBkIG8gICBhIG8gICBWIEkgTSAgIFQgdSB0IG8gciAgIC0gICBWZXJz428gMS43IHB0X0JSICAgICA9Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgVmltIOkgdW0gcG9kZXJvc28gZWRpdG9yIHF1ZSBwb3NzdWkgbXVpdG9zIGNvbWFuZG9zLCB0YW50b3MgcXVlIHNlcmlhCiAgICAgaW1wb3Nz7XZlbCBlbnNpbmFyIG51bSB0dXRvcmlhbCBjb21vIGVzdGUuIEVzdGUgdHV0b3JpYWwg6SBwbGFuZWphZG8gcGFyYQogICAgIGFwcmVzZW50YXIgb3MgY29tYW5kb3Mgc3VmaWNpZW50ZXMgcGFyYSB2b2PqIGZpY2FyIGhhYmlsaXRhZG8gYSB1c2FyCiAgICAgZmFjaWxtZW50ZSBvIFZpbSBjb21vIHVtIGVkaXRvciBkZSB0ZXh0b3MgZ2Vu6XJpY28uCgogICAgIE8gdGVtcG8gYXByb3hpbWFkbyByZXF1ZXJpZG8gcGFyYSBjb21wbGV0YXIgbyB0dXRvcmlhbCDpIGRlIDI1LTMwIG1pbnV0b3MsCiAgICAgZGVwZW5kZW5kbyBkZSBxdWFudG8gdGVtcG8g6SBnYXN0byBwcmF0aWNhbmRvIG9zIGNvbWFuZG9zLgoKICAgICBBVEVOx8NPOgogICAgIE9zIGNvbWFuZG9zIG5hcyBsaef1ZXMgduNvIG1vZGlmaWNhciBvIHRleHRvLiBVdGlsaXplIHVtYSBj83BpYSBkZXN0ZQogICAgIGFycXVpdm8gcGFyYSBwcmF0aWNhciBvcyBjb21hbmRvcyAoc2Ugdm9j6iBpbmljaW91IG8gInZpbXR1dG9yIiwgZXN0YSBq4QogICAgIOkgdW1hIGPzcGlhKS4KCiAgICAgySBpbXBvcnRhbnRlIGxlbWJyYXIgcXVlIGVzdGUgdHV0b3JpYWwg6SBwbGFuZWphZG8gcGFyYSBlbnNpbmFyIGF0cmF26XMgZGEKICAgICBwcuF0aWNhLiBJc3NvIHNpZ25pZmljYSBxdWUgdm9j6iBwcmVjaXNhIGV4ZWN1dGFyIG9zIGNvbWFuZG9zIHBhcmEgCiAgICAgYXByZW5k6i1sb3MgYWRlcXVhZGFtZW50ZS4gU2Ugdm9j6iBzb21lbnRlIGxlciBvIHRleHRvLCBlc3F1ZWNlcuEgb3MKICAgICBjb21hbmRvcyEKCiAgICAgQWdvcmEsIGNlcnRpZmlxdWUtc2UgZGUgcXVlIHN1YSB0ZWNsYSBTaGlmdC1Mb2NrIChvdSBDYXBzIExvY2spIG7jbyBlc3RlamEKICAgICBhdGl2YWRhIGUgcHJlc3Npb25lIGEgdGVjbGEgIGogIG8gYmFzdGFudGUgcGFyYSBtb3ZlciBvIGN1cnNvciBhdOkgcXVlIGEKICAgICBMaefjbyAxLjEgZXN0ZWphIGNvbXBsZXRhbWVudGUgbmEgdGVsYS4Kfn5+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+CgkJCSBMaefjbyAxLjE6ICBNT1ZFTkRPIE8gQ1VSU09SCgoKICAqKiBQYXJhIG1vdmVyIG8gY3Vyc29yLCBwcmVzc2lvbmUgYXMgdGVjbGFzIGgsaixrLGwgY29uZm9ybWUgaW5kaWNhZG8uICoqCiAgICAgICAgICAgICBeCiAgICAgICAgICAgICBrICAgICAgICAgIERpY2E6IEEgdGVjbGEgaCBlc3ThIOAgZXNxdWVyZGEgZSBtb3ZlIHBhcmEgYSBlc3F1ZXJkYS4KICAgICAgIDwgaCAgICAgICBsID4gICAgICAgICAgQSB0ZWNsYSBsIGVzdOEg4CBkaXJlaXRhIGUgbW92ZSBwYXJhIGEgZGlyZWl0YS4KICAgICAgICAgICAgIGogICAgICAgICAgICAgICAgQSB0ZWNsYSBqIHNlIHBhcmVjZSBjb20gdW1hIHNldGEgcGFyYSBiYWl4by4KICAgICAgICAgICAgIHYKICAxLiBNb3ZhIG8gY3Vyc29yIHBlbGEgdGVsYSBhdOkgcXVlIHZvY+ogc2Ugc2ludGEgY29uZm9ydOF2ZWwuCgogIDIuIFNlZ3VyZSBwcmVzc2lvbmFkYSBhIHRlY2xhIChqKSBhdOkgaGF2ZXIgcmVwZXRp5+NvLgogICAgIEFnb3JhIHZvY+ogauEgc2FiZSBjb21vIGlyIHBhcmEgYSBwcvN4aW1hIGxp5+NvLgoKICAzLiBVc2FuZG8gYSB0ZWNsYSBqLCBtb3ZhIGF06SBhIGxp5+NvIDEuMi4KCk5PVEE6IFNlIHZvY+ogZXN04SBpbnNlZ3VybyBzb2JyZSBvIHF1ZSBkaWdpdG91LCBwcmVzc2lvbmUgPEVTQz4gcGFyYSAKICAgICAgY29sb2PhLWxvIG5vIG1vZG8gTm9ybWFsLiBFbnTjbyByZWRpZ2l0ZSBvIGNvbWFuZG8gcXVlIHZvY+ogcXVlcmlhLgoKTk9UQTogQXMgdGVjbGFzIGRlIGN1cnNvciBkZXZlbSBmdW5jaW9uYXIgdGFtYultLiBNYXMgdXNhbmRvIGhqa2wsIHTjbyBsb2dvCiAgICAgIGVzdGVqYSBhY29zdHVtYWRvLCB2b2PqIHBvZGVy4SBzZSBtb3ZlciBtdWl0byBtYWlzIHJhcGlkYW1lbnRlLgoKfn5+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+CgkJCSAgIExp5+NvIDEuMjogU0FJTkRPIERPIFZJTQoKCiAhISBOT1RBOiBBbnRlcyBkZSBleGVjdXRhciBxdWFscXVlciBkb3MgcGFzc29zIGFiYWl4bywgbGVpYSBhIGxp5+NvIGludGVpcmEgISEKCiAgMS4gUHJlc3Npb25lIDxFU0M+IChwYXJhIHRlciBjZXJ0ZXphIGRlIHF1ZSBlc3ThIG5vIG1vZG8gTm9ybWFsKS4KCiAgMi4gRGlnaXRlICAgIDpxISA8RU5URVI+LgogICAgIElzc28gc2FpIGRvIGVkaXRvciBTRU0gc2FsdmFyIHF1YWxxdWVyIG11ZGFu52EgcXVlIHRlbmhhIHNpZG8gZmVpdGEuCiAgICAgU2UgcXVpc2VyIHNhbHZhciBhcyBhbHRlcmHn9WVzIGUgc2FpciwgZGlnaXRlICAgICA6d3EgPEVOVEVSPgoKICAzLiBRdWFuZG8gdmlyIG8gcHJvbXB0IGRvIHNoZWxsIGRpZ2l0ZSBvIGNvbWFuZG8gcXVlIGxoZSB0cm91eGUgYSBlc3RlCiAgICAgdHV0b3JpYWwsIG5hIG1haW9yaWEgZG9zIGNhc29zOiAgICAgIHZpbXR1dG9yIDxFTlRFUj4uCgogIDQuIFNlIHZvY+ogbWVtb3Jpem91IGVzdGVzIHBhc3NvcyBlIGVzdOEgY29uZmlhbnRlLCBleGVjdXRlIG9zIHBhc3NvcyBkZQogICAgIDEgYSAzIHBhcmEgc2FpciBlIHJlLWVudHJhciBubyBlZGl0b3IuCgpOT1RBOiAgOnEhIDxFTlRFUj4gIGRlc2NhcnRhIHF1YWxxdWVyIG11ZGFu52EuIEVtIHVtYSBwcvN4aW1hIGxp5+NvIHNlcuEKICAgICAgIGVuc2luYWRvIGNvbW8gc2FsdmFyIGFzIG11ZGFu52FzIGZlaXRhcyBlbSB1bSBhcnF1aXZvLgoKICA1LiBEZXPnYSBvIGN1cnNvciBhdOkgYSBMaefjbyAxLjMuCgp+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+fn4KCQkgICAgIExp5+NvIDEuMzogRURJVEFORE8gVEVYVE9TIC0gREVMRcfDTwoKICAqKiBObyBtb2RvIE5vcm1hbCwgcHJlc3Npb25lICB4ICBwYXJhIGRlbGV0YXIgbyBjYXJhY3RlcmUgc29iIG8gY3Vyc29yLiAqKgoKCiAgMS4gTW92YSBvIGN1cnNvciBwYXJhIGEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCgogIDIuIFBhcmEgY29ycmlnaXIgb3MgZXJyb3MsIG1vdmEgbyBjdXJzb3IgYXTpIHF1ZSBlbGUgZXN0ZWphIHNvYnJlIG8gCiAgICAgY2FyYWN0ZXJlIGEgc2VyIGRlbGV0YWRvLgoKICAzLiBQcmVzc2lvbmUgYSB0ZWNsYSAgeCAgcGFyYSBkZWxldGFyIG8gY2FyYWN0ZXJlIGluZGVzZWphZG8uCgogIDQuIFJlcGl0YSBvcyBwYXNzb3MgMiBhdOkgNCBhdOkgcXVlIGEgc2VudGVu52EgZXN0ZWphIGNvcnJldGEuCgotLS0+IEEgdnZhY2EgcHVsbG91dSBwb3IgY2NpbWFhIGRkYSBsdXV1YS4KCiAgNS4gQWdvcmEgcXVlIGEgc2VudGVu52EgZXN04SBjb3JyZXRhLCB24SBwYXJhIGEgTGnn428gMS40LgoKTk9UQTogRW5xdWFudG8gc2VndWUgZXN0ZSB0dXRvcmlhbCwgbuNvIHRlbnRlIG1lbW9yaXphciwgYXByZW5kYSBwZWxvIHVzby4KCgoKfn5+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+CgkJICAgIExp5+NvIDEuNDogRURJVEFORE8gVEVYVE9TIC0gSU5TRVLHw08KCgkJICAgKiogUHJlc3Npb25lICBpICBwYXJhIGluc2VyaXIgdGV4dG8uICoqCgoKICAxLiBNb3ZhIG8gY3Vyc29yIGF06SBhIHByaW1laXJhIGxpbmhhIGFiYWl4byBtYXJjYWRhIGNvbSAtLS0+LgoKICAyLiBQYXJhIGZhemVyIGEgcHJpbWVpcmEgbGluaGEgZmljYXIgaWd1YWwg4CBzZWd1bmRhLCBtb3ZhIG8gY3Vyc29yIHBhcmEKICAgICBvIHByaW1laXJvIGNhcmFjdGVyZSBERVBPSVMgZGUgb25kZSBvIHRleHRvIGRldmVy4SBzZXIgaW5zZXJpZG8uCgogIDMuIFByZXNzaW9uZSAgaSAgZSBkaWdpdGUgYXMgYWRp5/VlcyBuZWNlc3Phcmlhcy4KCiAgNC4gQXNzaW0gcXVlIGNhZGEgZXJybyBmb3IgY29ycmlnaWRvIHByZXNzaW9uZSA8RVNDPiBwYXJhIHJldG9ybmFyIGFvIG1vZG8KICAgICBOb3JtYWwuIFJlcGl0YSBvcyBwYXNzb3MgMiBhdOkgNCBwYXJhIGNvcnJpZ2lyIGEgc2VudGVu52EuCgotLS0+IFRlbSB0ZXh0IGZhdGFkbyBkZXN0YSAuCi0tLT4gVGVtIGFsZ3VtIHRleHRvIGZhbHRhbmRvIGRlc3RhIGxpbmhhLgoKICA1LiBRdWFuZG8gc2Ugc2VudGlyIGNvbmZvcnThdmVsIGNvbSBhIGluc2Vy5+NvIGRlIHRleHRvLCBtb3ZhIG8gY3Vyc29yIHBhcmEKICAgICBhIGxp5+NvIDEuNS4KCgp+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+fn4KCQkgICBMaefjbyAxLjU6IEVESVRBTkRPIFRFWFRPIC0gQURJQ0lPTkFORE8KCgkJICAqKiBQcmVzc2lvbmUgIEEgIHBhcmEgYWRpY2lvbmFyIHRleHRvLiAqKgoKICAxLiBNb3ZhIG8gY3Vyc28gcGFyYSBhIHByaW1laXJhIGxpbmhhIGFiYWl4byBtYXJjYWRhIGNvbSAtLS0+LgogICAgIE7jbyBpbXBvcnRhIHNvYnJlIHF1YWwgY2FyYWN0ZXJlIG8gY3Vyc29yIGVzdGFy4SBuYSBsaW5oYS4KCiAgMi4gUHJlc3Npb25lICBBICBlIGRpZ2l0ZSBhcyBhZGnn9WVzIG5lY2Vzc+FyaWFzLgoKICAzLiBRdWFuZG8gYWRpY2lvbmFyIG8gdGV4dG8sIHByZXNzaW9uZSA8RVNDPiBwYXJhIHJldG9ybmFyIGFvIG1vZG8gTm9ybWFsLgoKICA0LiBNb3ZhIG8gY3Vyc29yIHBhcmEgYSBzZWd1bmRhIGxpbmhhIG1hcmNhZGEgLS0tPiBlIHJlcGl0YSBvcyBwYXNzb3MgMiBlIDMKICAgICBwYXJhIGNvcnJpZ2lyIG8gdGV4dG8uCgotLS0+IEjhIGFsZ3VtIHRleHRvIGZhbHRhbmRvIGRlcwogICAgIEjhIGFsZ3VtIHRleHRvIGZhbHRhbmRvIGRlc3RhIGxpbmhhLgogICAgIEjhIGFsZ3VtIHRleHRvIGZhbHRhbgotLS0+IEjhIGFsZ3VtIHRleHRvIGZhbHRhbmRvIGFxdWkuCgogIDUuIFF1YW5kbyBzZSBzZW50aXIgY29uZm9ydOF2ZWwgYWRpY2lvbmFuZG8gdGV4dG8sIG1vdmEgcGFyYSBhIGxp5+NvIDEuNi4KCgp+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+fn4KCQkJTGnn428gMS42OiBFRElUQU5ETyBVTSBBUlFVSVZPCgkJKiogVXNlICA6d3EgIHBhcmEgc2FsdmFyIHVtIGFycXVpdm8gZSBzYWlyLiAqKgoKCSAgISEgTk9UQTogQW50ZXMgZGUgZXhlY3V0YXIgcXVhbHF1ZXIgdW0gZG9zIHBhc3NvcyBhYmFpeG8sCgkJICAgICAgIGxlaWEgZXN0YSBsaefjbyBjb21wbGV0YW1lbnRlISEKCiAgMS4gU2FpYSBkZXN0ZSB0dXRvcmlhbCBjb21vIG8gZmV6IG5hIGxp5+NvIDEuMjogIDpxIQogICAgIE91LCBzZSB0aXZlciBhY2Vzc28gYSBvdXRybyB0ZXJtaW5hbCwgZmHnYSBvIHNlZ3VpbnRlIG5lbGUuCgogIDIuIE5vIHByb21wdCBkbyBzaGVsbCwgZGlnaXRlIGVzc2UgY29tYW5kbzogIHZpbSB0dXRvciA8RU5URVI+CiAgICAgJ3ZpbScgaXMg6SBjb21hbmRvIHBhcmEgaW5pY2lhciBvIGVkaXRvciBWaW0gZSAndHV0b3InIOkgbyBub21lIGRvCiAgICAgYXJxdWl2byBxdWUgdm9j6iBkZXNlamEgZWRpdGFyLiAgVXNlIHVtIGFycXVpdm8gcXVlIHBvc3NhIHNlciBtb2RpZmljYWRvLgoKICAzLiBJbnNpcmEgZSBkZWxldGUgdGV4dG8gdGFsIGNvbW8gYXByZW5kZXUgY29tIGFzIGxp5/VlcyBhbnRlcmlvcmVzLgoKICA0LiBTYWx2ZSBvIGFycXVpdm8gY29tIGFzIG11ZGFu52FzIGUgc2FpYSBkbyBWaW0gY29tOiAgOndxIDxFTlRFUj4KCiAgNS4gU2Ugdm9j6iB0aXZlciBzYe1kbyBkbyB2aW10dXRvciBubyBwYXNzbyAxLCByZWluaWNpZSBvIHZpbXR1dG9yIGUgduEgcGFyYQogICAgIG8gc3Vt4XJpbyBzZWd1aW50ZS4KCiAgNi4gQXDzcyBsZXIgb3MgcGFzc29zIGFjaW1hIGUgY29tcHJlZW5k6i1sb3MsIGV4ZWN1dGUtb3MuCgp+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+fn4KCQkJICAgICAgU1VNwVJJTyBEQSBMScfDTyAxCgogIDEuIE8gY3Vyc29yIOkgbW92aWRvIHVzYW5kbyB0YW50byBhcyB0ZWNsYXMgZGUgc2V0YSBxdWFudG8gYXMgdGVjbGFzIGhqa2wuCgloIChlc3F1ZXJkYSkJaiAocGFyYSBiYWl4bykJayAocGFyYSBjaW1hKQlsIChkaXJlaXRhKQoKICAyLiBQYXJhIGVudHJhciBubyBWaW0gYSBwYXJ0aXIgZGUgdW0gc2hlbGwgZGlnaXRlOiB2aW0gTk9NRURPQVJRVUlWTyA8RU5URVI+CgogIDMuIFBhcmEgc2FpciBkbyBWaW0gZGlnaXRlOiAgPEVTQz4gOnEhIDxFTlRFUj4gcGFyYSBkZXNjYXJ0YXIgYXMgYWx0ZXJh5/Vlcy4KICAgICAgICAgICAgICAgICAgIE9VIGRpZ2l0ZTogIDxFU0M+IDp3cSA8RU5URVI+IHBhcmEgc2FsdmFyIGFzIGFsdGVyYef1ZXMuCgogIDQuIFBhcmEgZGVsZXRhciB1bSBjYXJhY3RlcmUgc29iIG8gY3Vyc29yIG5vIG1vZG8gTm9ybWFsIGRpZ2l0ZTogIHgKCiAgNS4gUGFyYSBpbnNlcmlyIHRleHRvIG5hIHBvc2nn428gZG8gY3Vyc29yIGVucXVhbnRvIGVzdGl2ZXIgbm8gbW9kbyBOb3JtYWwKICAgICBkaWdpdGU6CiAgICAgICAgICAgICBpICAgICBkaWdpdGUgbyB0ZXh0byA8RVNDPiAgIGluc2VyaXIgZGVwb2lzIGRvIGN1cnNvcgoJICAgICBBICAgICBkaWdpdGUgbyB0ZXh0byA8RVNDPiAgIGFkaWNpb25hciBubyBmaW5hbCBkYSBsaW5oYQoKTk9UQTogUHJlc3Npb25hbmRvIDxFU0M+IHZvY+ogaXLhIHBhcmEgbyBtb2RvIE5vcm1hbCBvdSBjYW5jZWxhcuEgdW0gY29tYW5kbwogICAgICBhaW5kYSBpbmNvbXBsZXRvLgoKQWdvcmEgY29udGludWUgY29tIGEgTGnn428gMi4KCn5+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+fgoJCQlMaefjbyAyLjE6IENPTUFORE9TIERFIERFTEXHw08KCgkgICoqIERpZ2l0ZSAgZHcgIHBhcmEgZGVsZXRhciBhdOkgbyBmaW5hbCBkZSB1bWEgcGFsYXZyYS4gKioKCgogIDEuIFByZXNzaW9uZSAgPEVTQz4gIHBhcmEgdGVyIGNlcnRlemEgZGUgcXVlIGVzdOEgbm8gbW9kbyBOb3JtYWwuCgogIDIuIE1vdmEgbyBjdXJzb3IgYXTpIGEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCgogIDMuIE1vdmEgbyBjdXJzb3IgYXTpIG8gY29tZedvIGRhIHBhbGF2cmEgcXVlIHByZWNpc2Egc2VyIGRlbGV0YWRhLgoKICA0LiBEaWdpdGUgIGR3ICBwYXJhIGZhemVyIGEgcGFsYXZyYSBkZXNhcGFyZWNlci4KCiAgTk9UQTogQSBsZXRyYSAgZCAgdmFpIGFwYXJlY2UgbmEg+mx0aW1hIGxpbmhhIGRhIHRlbGEgZW5xdWFudG8gdm9j6iBhCglkaWdpdGEuIE8gVmltIGVzdOEgbGhlIGVzcGVyYW5kbyBkaWdpdGFyIHVtICB3IC4gU2Ugdm9j6iBkaWdpdG91CglhbGd1bWEgY29pc2EgZXJyYWRhLCBwcmVzc2lvbmUgPEVTQz4gZSBjb21lY2UgZGUgbm92by4KCi0tLT4gVGVtIGEgYWxndW1hcyBvaSBwYWxhdnJhcyBkaXZlcnPjbyBxdWUgbuNvIHBlcnRlbmNlbSBwYXBlbCBhIGVzdGEgc2VudGVu52EuCgogIDUuIFJlcGl0YSBvcyBwYXNzb3MgMyBhbyA0IGF06SBxdWUgYSBzZW50ZW7nYSBlc3RlamEgY29ycmV0YSBlIHbhIHBhcmEgYQogICAgIExp5+NvIDIuMi4KCn5+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+fgogICAgICAgICAgICAgICAgICAgICBMaefjbyAyLjI6IE1BSVMgQ09NQU5ET1MgREUgREVMRcfDTwoKICAgICAgICAgICoqIERpZ2l0ZSAgZCQgIHBhcmEgZGVsZXRhciBhdOkgbyBmaW5hbCBkYSBsaW5oYS4gKioKCgoKICAxLiBQcmVzc2lvbmUgPEVTQz4gcGFyYSB0ZXIgY2VydGV6YSBkZSBlc3RhciBubyBtb2RvIE5vcm1hbC4KCiAgMi4gTW92YSBvIGN1cnNvciBhdOkgYSBsaW5oYSBhYmFpeG8gbWFyY2FkYSBjb20gLS0tPi4KCiAgMy4gTW92YSBvIGN1cnNvciBhdOkgbyBmaW0gZGEgbGluaGEgY29ycmV0YSAoREVQT0lTIGRvIHByaW1laXJvICAuKS4KCiAgNC4gRGlnaXRlICBkJCAgcGFyYSBkZWxldGFyIGF06SBvIGZpbmFsIGRhIGxpbmhhLgoKLS0tPiBBbGd16W0gZGlnaXRvdSBvIGZpbmFsIGRlc3RhIGxpbmhhIGR1YXMgdmV6ZXMuIGRlc3RhIGxpbmhhIGR1YXMgdmV6ZXMuCgogIDUuIFbhIHBhcmEgYSBsaefjbyAyLjMgcGFyYSBlbnRlbmRlciBvIHF1ZSBlc3ThIGFjb250ZWNlbmRvLgoKCgoKCn5+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+fgoJCSAgIExp5+NvIDIuMzogU09CUkUgT1BFUkFET1JFUyBFIE1PVklNRU5UT1MgCgogIE11aXRvcyBjb21hbmRvcyBxdWUgbXVkYW0gdGV4dG8gc+NvIGZlaXRvcyBkZSB1bSBvcGVyYWRvciBlIHVtIG1vdmltZW50by4KICBPIGZvcm1hdG8gcGFyYSB1bSBjb21hbmRvIGRlbGV0YXIgY29tIG8gb3BlcmFkb3IgZGUgZGVsZefjbyAgZCAgdGVtIGEKICBzZWd1aW50ZSBmb3JtYToKCiAgICAgICAgIGQgICBtb3ZpbWVudG8KICBPbmRlOgogICAgZCAtIOkgbyBvcGVyYWRvciBkZWxldGFyLgogICAgbW92aW1lbnRvIC0g6SBjb21vIG8gb3BlcmFkb3IgdmFpIG9wZXJhciAobGlzdGFkbyBhYmFpeG8pLgoKICBVbWEgcGVxdWVuYSBsaXN0YSBkZSB0ZWNsYXMgZGUgbW92aW1lbnRvOgogICAgdyAtIGRvIGN1cnNvciBhdOkgbyBmaW0gZGEgcGFsYXZyYSwgaW5jbHVpbmRvIG8gZXNwYedvLgogICAgZSAtIGRvIGN1cnNvciBhdOkgbyBmaW0gZGEgcGFsYXZyYSwgTsNPIGluY2x1aW5kbyBvIGVzcGHnby4KICAgICQgLSBkbyBjdXJzb3IgYXTpIG8gZmltIGRhIGxpbmhhLgoKICBQb3J0YW50bywgZGlnaXRhbmRvICBkZSAgaXLhIGRlbGV0YXIgZG8gY3Vyc29yIGFvIGZpbSBkYSBwYWxhdnJhLgoKTk9UQTogUHJlc3Npb25hbmRvIGFwZW5hcyBhIHRlY2xhIGRlIG1vdmltZW50byBlbnF1YW50byBlbSBtb2RvIE5vcm1hbCwgc2VtIG8Kb3BlcmFkb3IsIGly4SBtb3ZlciBvIGN1cnNvciBjb21vIGVzcGVjaWZpY2FkbyBuYSBsaXN0YSBkZSB0ZWNsYXMgZGUKbW92aW1lbnRvLgoKfn5+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+CgkgICAgICAgTGnn428gMi40OiBVU0FORE8gVU0gQ09OVEFET1IgUEFSQSBVTSBNT1ZJTUVOVE8KCiAgICAqKiBEaWdpdGFuZG8gdW0gbvptZXJvIGFudGVzIGRlIHVtIG1vdmltZW50byByZXBldGUtbyBtdWl0YXMgdmV6ZXMuICoqCgoKICAgMS4gTW92YSBvIGN1cnNvciBwYXJhIG8gY29tZedvIGRhIGxpbmhhIG1hcmNhZGEgY29tIC0tLT4gYWJhaXhvLgoKICAgMi4gRGlnaXRlICAydyAgcGFyYSBtb3ZlciBvIGN1cnNvciBkdWFzIHBhbGF2cmFzIGFkaWFudGUuCgogICAzLiBEaWdpdGUgIDNlICBwYXJhIG1vdmVyIG8gY3Vyc29yIHBhcmEgbyBmaW0gZGEgdGVyY2VpcmEgcGFsYXZyYSBhZGlhbnRlLgoKICAgNC4gRGlnaXRlICAwICAoemVybykgcGFyYSBtb3ZlciBwYXJhIG8gaW7tY2lvIGRhIGxpbmhhLgoKICAgNS4gUmVwaXRhIG9zIHBhc3NvcyAyIGUgMyBjb20gZGlmZXJlbnRlcyBu+m1lcm9zLgoKLS0tPiBFc3RhIOkgdW1hIGxpbmhhIGNvbSBhbGd1bWFzIHBhbGF2cmFzIHBhcmEgbGhlIHBlcm1pdGlyIGZhemVyIG1vdmltZW50b3MuCgogICA2LiBW4SBwYXJhIGEgTGnn428gMi41LgoKCgoKfn5+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+CgkgICAgICAgTGnn428gMi41OiBVU0FORE8gVU0gQ09OVEFET1IgUEFSQSBERUxFVEFSIE1BSVMKCiAgICoqIERpZ2l0YW5kbyB1bSBu+m1lcm8gY29tIHVtIG9wZXJhZG9yIHJlcGV0ZS1vIGVzc2UgbvptZXJvIGRlIHZlemVzLiAqKgoKCiAgIFZvY+ogZGV2ZSBpbnNlcmlyIHVtIGNvbnRhZG9yIGVudHJlIG8gb3BlcmFkb3IgZGUgZGVsZefjbyBlIG8gbW92aW1lbnRvCiAgIG1lbmNpb25hZG9zIGFjaW1hIHBhcmEgcGFyYSBkZWxldGFyIG1haXM6CiAgICAgICBkICAgbvptZXJvICAgbW92aW1lbnRvCgogICAxLiBNb3ZpbWVudGUgbyBjdXJzb3IgcGFyYSBhIHByaW1laXJhIHBhbGF2cmEgY29tIExFVFJBUyBNQUnaU0NVTEFTIG5hCiAgICAgIGxpbmhhIG1hcmNhZGEgY29tIC0tLT4uCgogICAyLiBEaWdpdGUgIGQydyAgcGFyYSBkZWxldGFyIGFzIGR1YXMgcGFsYXZyYXMgY29tIExFVFJBUyBNQUnaU0NVTEFTLgoKICAgMy4gUmVwaXRhIG9zIHBhc3NvcyAxIGUgMiBjb20gZGlmZXJlbnRlcyBjb250YWRvcmVzIHBhcmEgZGVsZXRhciBhcwogICAgICBwYWxhdnJhcyBkZSBMRVRSQVMgTUFJ2lNDVUxBUyBjb20gdW0gY29tYW5kby4KCi0tLT4gIGVzdGEgQUJDIERFIGxpbmhhIEZHSEkgSksgTE1OIE9QIGRlIHBhbGF2cmFzIGVzdOEgUSBSUyBUVVYgbGltcGEuCgoKCgp+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+fn4KCQkgICAgICAgTGnn428gMi42OiBPUEVSQU5ETyBTT0JSRSBMSU5IQVMKCgkgICAgICAqKiBEaWdpdGUgIGRkICBwYXJhIGRlbGV0YXIgdW1hIGxpbmhhIGludGVpcmEuICoqCgogIEVtIHZpcnR1ZGUgZGEgZnJlcXXqbmNpYSBlbSBkZWxldGFyIHVtYSBsaW5oYSBpbnRlaXJhLCBvcyBwcm9qZXRpc3RhcyBkbyBWaQogIGRlY2lkaXJhbSBxdWUgc2VyaWEgbWFpcyBzaW1wbGVzIGRpZ2l0YXIgZG9pcyBkJ3MgbnVtYSBsaW5oYSBwYXJhIGRlbGV04S1sYS4KCiAgMS4gTW92YSBvIGN1cnNvciBhdOkgYSBzZWd1bmRhIGxpbmhhIG5hIGxpc3RhIGEgYmFpeG8uCiAgMi4gRGlnaXRlICBkZCAgcGFyYSBkZWxldGFyIGEgbGluaGEuCiAgMy4gQWdvcmEgbW92YSBhdOkgYSBxdWFydGEgbGluaGEuCiAgNC4gRGlnaXRlICAyZGQgIHBhcmEgZGVsZXRhciBkdWFzIGxpbmhhcy4KCi0tLT4gIDEpICBSb3NhcyBz428gdmVybWVsaGFzLAotLS0+ICAyKSAgTGFtYSDpIGRpdmVydGlkYSwKLS0tPiAgMykgIFZpb2xldGFzIHPjbyBhenVpcywKLS0tPiAgNCkgIEV1IHRlbmhvIHVtIGNhcnJvLAotLS0+ICA1KSAgUmVs82dpb3MgZGl6ZW0gYXMgaG9yYXMsCi0tLT4gIDYpICBB5/pjYXIg6SBkb2NlLAotLS0+ICA3KSAgRSBhc3NpbSDpIHZvY+ouCgpOb3RhcyBkbyB0cmFkdXRvcjogTGFtYSAobXVkKSBlbSBpbmds6nMgcG9kZSBzaWduaWZpY2FyIGZvZm9jYSwgZGlmYW1h5+NvLgogICAgICAgICAgICAgICAgICAgSOEgcmltYSBubyB0ZXh0byBvcmlnaW5hbC4Kfn5+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+CgkJICAgICBMaefjbyAyLjc6IE8gQ09NQU5ETyBVTkRPIChERVNGQVpFUikKCioqIFByZXNzaW9uZSB1IHBhcmEgZGVzZmF6ZXIgb3Mg+mx0aW1vcyBjb21hbmRvcywgVSByZXN0YXVyYSBsaW5oYSBpbnRlaXJhLioqCgoKICAxLiBNb3ZhIG8gY3Vyc29yIHBhcmEgYSBsaW5oYSBhYmFpeG8gbWFyY2FkYSBjb20gLS0tPiBlIHBvc2ljaW9uZS1vIHNvYnJlIG8KICAgICBwcmltZWlybyBlcnJvLgogIDIuIERpZ2l0ZSAgeCAgcGFyYSBkZWxldGFyIG8gcHJpbWVpcm8gY2FyYWN0ZXJlIGluZGVzZWphZG8uCiAgMy4gQWdvcmEsIGRpZ2l0ZSAgdSAgcGFyYSBkZXNmYXplciBvIPpsdGltbyBjb21hbmRvIGV4ZWN1dGFkby4KICA0LiBEZXN0YSB2ZXosIGNvcnJpamEgdG9kb3Mgb3MgZXJyb3MgbmEgbGluaGEgdXNhbmRvIG8gY29tYW5kbyAgeCAuCiAgNS4gQWdvcmEsIGRpZ2l0ZSB1bSBVIG1hafpzY3VsbyBwYXJhIHJldG9ybmFyIGEgbGluaGEgYW8gc2V1IGVzdGFkbyBvcmlnaW5hbC4KICA2LiBEaWdpdGUgIHUgIGFsZ3VtYXMgdmV6ZXMgcGFyYSBkZXNmYXplciBvICBVICBlIG9zIGNvbWFuZG9zIGFudGVyaW9yZXMuCiAgNy4gRGlnaXRlIENUUkwtUiAoc2VndXJhbmRvIGEgdGVjbGEgQ1RSTCBlbnF1YW50byBkaWdpdGEgUikgYWxndW1hcyB2ZXplcwogICAgIHBhcmEgcmVmYXplciBvcyBjb21hbmRvcyAoZGVzZmF6ZXIgb3MgdW5kbydzKS4KCi0tLT4gQ29ycmlpamEgb3MgZXJyb3Mgbm5lc3RhIGxpbmhhIGUgcmVldG9ybmUtb3MgY29tIHVuZG8uCgogIDguIEVzc2VzIGNvbWFuZG9zIHPjbyBtdWl0byD6dGVpcy4gQWdvcmEgduEgcGFyYSBvIHN1beFyaW8gZGEgTGnn428gMi4KCgoKCn5+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+fgoJCQkgICAgICBTVU3BUklPIERBIExJx8NPIDIKCgogIDEuIFBhcmEgZGVsZXRhciBkbyBjdXJzb3IgYXTpIG8gZmltIGRlIHVtYSBwYWxhdnJhIGRpZ2l0ZTogICBkdwogIDIuIFBhcmEgZGVsZXRhciBkbyBjdXJzb3IgYXTpIG8gZmltIGRlIHVtYSBsaW5oYSBkaWdpdGU6ICAgZCQKICAzLiBQYXJhIGRlbGV0YXIgdW1hIGxpbmhhIGludGVpcmEgZGlnaXRlOiAgIGRkCiAgNC4gUGFyYSByZXBldGlyIHVtIG1vdmltZW50byBhZGljaW9uZSBhbnRlcyB1bSBu+m1lcm86ICAgMncKICA1LiBPIGZvcm1hdG8gcGFyYSB1bSBjb21hbmRvIG5vIG1vZG8gTm9ybWFsIOk6CiAgICAgICAgICAgb3BlcmFkb3IgICBbbvptZXJvXSAgIG1vdmltZW50bwogICBvbmRlOgogICAgICBvcGVyYWRvciAgLSDpIG8gcXVlIHNlcuEgZmVpdG8sIGNvbW8gIGQgIHBhcmEgZGVsZXRhcgogICAgICBu+m1lcm8gICAgLSDpIHF1YW50YXMgdmV6ZXMgbyBjb21hbmRvIHNlcuEgcmVwZXRpZG8KICAgICAgbW92aW1lbnRvIC0gbW92aW1lbnRvIHNvYnJlIG8gdGV4dG8gcXVlIHNvZnJlcuEgYSBvcGVyYefjbywgY29tbwogICAgICAgICAgICAgICAgICB3IChwYWxhdnJhKSwgJCAoYXTpIG8gZmluYWwgZGEgbGluaGEpLCBldGMuCgogIDUuIFBhcmEgZGVzZmF6ZXIgdW0gYefjbyBhbnRlcmlvciwgZGlnaXRlOiAgICAgICAgICAgICAgICAgIHUgIChtaW76c2N1bG8pCiAgICAgUGFyYSBkZXNmYXplciB0b2RhcyBhcyBtb2RpZmljYef1ZXMgZW0gdW1hIGxpbmhhIGRpZ2l0ZTogVSAobWFp+nNjdWxvKQogICAgIFBhcmEgZGVzZmF6ZXIgbyBxdWUgZm9pIGRlc2ZlaXRvIGRpZ2l0ZTogICAgICAgICAgICAgICAgIENUUkwtUgoKCgoKfn5+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+CgkJCUxp5+NvIDMuMTogTyBDT01BTkRPIFBVVCAoUNRSKQoKCSoqIERpZ2l0ZSAgcCAgcGFyYSBjb2xvY2FyIGEg+mx0aW1hIGRlbGXn428gYXDzcyBvIGN1cnNvci4gKioKCgogIDEuIE1vdmEgbyBjdXJzb3IgYXTpIGEgcHJpbWVpcmEgbGluaGEgbmEgbGlzdGEgYWJhaXhvLgoKICAyLiBEaWdpdGUgIGRkICBwYXJhIGRlbGV0YXIgYSBsaW5oYSBlIGd1YXJk4S1sYSBubyBidWZmZXIgZG8gVmltLgoKICAzLiBNb3ZhIG8gY3Vyc29yIGF06SBhIGxpbmhhIEFDSU1BIGRlIG9uZGUgYSBsaW5oYSBkZWxldGFkYSBkZXZlIGZpY2FyLgoKICA0LiBObyBtb2RvIE5vcm1hbCwgZGlnaXRlICBwICBwYXJhIGluc2VyaXIgYSBsaW5oYS4KCiAgNS4gUmVwaXRhIG9zIHBhc3NvcyAyIGFvIDQgcGFyYSBw9HIgdG9kYXMgYXMgbGluaGFzIG5hIG9yZGVtIGNvcnJldGEuCgogICAgIGQpIFZvY+ogcG9kZSBhcHJlbmRlciB0YW1i6W0/CiAgICAgYikgVmlvbGV0YXMgc+NvIGF6dWlzLAogICAgIGMpIEludGVsaWfqbmNpYSBzZSBhcHJlbmRlLAogICAgIGEpIFJvc2FzIHPjbyB2ZXJtZWxoYXMsCgpOb3RhIGRvIHRyYWR1dG9yOiBI4SByaW1hIG5vIG9yaWdpbmFsLgoKfn5+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+CgkJICBMaefjbyAzLjI6IE8gQ09NQU5ETyBSRVBMQUNFIChTVUJTVElUVUlSKQoKICAgICAqKiBEaWdpdGUgIHJ4ICBwYXJhIHN1YnN0aXR1aXIgbyBjYXJhY3RlcmUgc29iIG8gY3Vyc29yIHBvciAgeCAuICoqIAoKCiAgMS4gTW92YSBvIGN1cnNvciBhdOkgYSBwcmltZWlyYSBsaW5oYSBhYmFpeG8gbWFyY2FkYSBjb20gLS0tPi4KCiAgMi4gTW92YSBvIGN1cnNvciBhdOkgcXVlIGVsZSBlc3RlamEgc29icmUgbyBwcmltZWlybyBlcnJvLgoKICAzLiBEaWdpdGUgIHIgIGUgZW50428gbyBjYXJhY3RlcmUgcXVlIGRldmVyaWEgZXN0YXIgbOEuCgogIDQuIFJlcGl0YSBvcyBwYXNzb3MgMiBlIDMgYXTpIHF1ZSBhIHByaW1laXJhIGxpbmhhIGVzdGVqYSBjb3JyZXRhLgoKLS0tPiBRdWVuZG8gZXN0ZSBsaW1oYSBmb2kgZHVnaXRhZGEsIGFsZ3VlbSBwcmVzc2lvbml1IGFsZ3VtYXMgdGVjbGFzIGVycmFkenMhCi0tLT4gUXVhbmRvIGVzdGEgbGluaGEgZm9pIGRpZ2l0YWRhLCBhbGd16W0gcHJlc3Npb25vdSBhbGd1bWFzIHRlY2xhcyBlcnJhZGFzIQoKICA1LiBBZ29yYSB24SBwYXJhIGEgTGnn428gMy4zLgoKTk9UQTogTGVtYnJlLXNlIHF1ZSB2b2PqIGRldmUgYXByZW5kZXIgcGVsbyB1c28sIG7jbyBwZWxhIG1lbW9yaXph5+NvLgoKCgp+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+fn4KCQkgICAgIExp5+NvIDMuMzogTyBPUEVSQURPUiBDSEFOR0UgKE1VREFSKQoKCSoqIFBhcmEgbXVkYXIgdG9kYSB1bWEgcGFsYXZyYSBvdSBwYXJ0ZSBkZWxhLCBkaWdpdGUgIGN3IC4gKioKCgogIDEuIE1vdmEgbyBjdXJzb3IgYXTpIGEgcHJpbWVpcmEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCiAgCiAgMi4gUG9zaWNpb25lIG8gY3Vyc29yIHNvYnJlIG8gdSBlbSBsdW5iYS4KCiAgMy4gRGlnaXRlICBjdyAgZSBhIHBhbGF2cmEgY29ycmV0YSAobmVzc2UgY2FzbywgZGlnaXRlICdpbmhhJy4pCgogIDQuIFByZXNzaW9uZSA8RVNDPiBlIG1vdmEgcGFyYSBvIHBy83hpbW8gY2FyYWN0ZXJlIGEgc2VyIGFsdGVyYWRvLgoKICA1LiBSZXBpdGEgb3MgcGFzc29zIDMgZSA0IGF06SBxdWUgYSBwcmltZWlyYSBzZW50ZW7nYSBlc3RlamEgaWd1YWwg4CBzZWd1bmRhLgoKLS0tPiBFc3NhIGx1bmJhIHRlbSBwd2xlc21mciBxdWUgb2NyaW1tbSAgc29pIGFsdGVyYWRhcyBjdXAgbyBjb21hbmRvIGNoYW5nZS4KLS0tPiBFc3NhIGxpbmhhIHRlbSBwYWxhdnJhcyBxdWUgcHJlY2lzYW0gc2VyIGFsdGVyYWRhcyBjb20gbyBjb21hbmRvIGNoYW5nZS4gCgpOb3RlIHF1ZSAgY3cgIG7jbyBzb21lbnRlIHN1YnN0aXR1aSBhIHBhbGF2cmEsIG1hcyB0YW1i6W0gbGhlIGNvbG9jYSBubyBtb2RvCmRlIGluc2Vy5+NvLgoKCn5+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+fgoJCSAgICAgIExp5+NvIDMuNDogTUFJUyBNVURBTsdBUyBVU0FORE8gYwoKICAgICAgKiogTyBvcGVyYWRvciBjaGFuZ2Ug6SB1c2FkbyBjb20gb3MgbWVzbW9zIG9iamV0b3MgcXVlIGRlbGV0ZS4gKioKCiAgMS4gTyBvcGVyYWRvciBjaGFuZ2UgdHJhYmFsaGEgZGEgbWVzbWEgbWFuZWlyYSBxdWUgbyBkZWxldGUuIE8gZm9ybWF0byDpOgoKICAgICAgICAgIGMgICAgW276bWVyb10gICAgbW92aW1lbnRvCgogIDIuIE9zIG1vdmltZW50b3MgdGFtYultIHPjbyBvcyBtZXNtb3M6IHcgKHBhbGF2cmEpLCAkIChmaW0gZGEgbGluaGEpLCBldGMuCgogIDMuIE1vdmEgYXTpIGEgcHJpbWVpcmEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCgogIDQuIE1vdmEgbyBjdXJzb3IgYXTpIG8gcHJpbWVpcm8gZXJyby4KCiAgNS4gRGlnaXRlICBjJCAgcGFyYSBmYXplciBvIHJlc3RvIGRhIGxpbmhhIGZpY2FyIGlndWFsIOAgc2VndW5kYSBlIHByZXNzaW9uZQogICAgIDxFU0M+LgoKLS0tPiBPIGZpbSBkZXN0YSBsaW5oYSBwcmVjaXNhIGRlIGFqdWRhIHBhcmEgZmljYXIgaWd1YWwg4CBzZWd1bmRhLgotLS0+IE8gZmltIGRlc3RhIGxpbmhhIHByZWNpc2Egc2VyIGNvcnJpZ2lkbyB1c2FuZG8gbyBjb21hbmRvICBjJC4KCk5PVEE6IFZvY+ogcG9kZSB1c2FyIGEgdGVjbGEgQmFja3NwYWNlIHBhcmEgY29ycmlnaXIgZXJyb3MgZW5xdWFudG8gZGlnaXRhLgoKfn5+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+CgkJCSAgICAgIFNVTcFSSU8gREEgTEnHw08gMwoKCiAgMS4gUGFyYSBpbnNlcmlyIHVtIHRleHRvIHF1ZSBq4SBmb2kgZGVsZXRhZG8sIGRpZ2l0ZSAgcCAuIElzc28gY29sb2NhIG8gdGV4dG8KICAgICBkZWxldGFkbyBBUNNTIG8gY3Vyc29yIChzZSB1bWEgbGluaGEg6SBkZWxldGFkYSBlbGEgc2Vy4SBpbnNlcmlkYSBuYSBsaW5oYQogICAgIGFiYWl4byBkbyBjdXJzb3IpLgoKICAyLiBQYXJhIHN1YnN0aXR1aXIgbyBjYXJhY3RlcmUgc29iIG8gY3Vyc29yLCBkaWdpdGUgIHIgIGUgZW50428gbyBjYXJhY3RlcmUKICAgICBxdWUgaXLhIHN1YnN0aXR1aXIgbyBvcmlnaW5hbC4KCiAgMy4gTyBjb21hbmRvIGNoYW5nZSBwb3NzaWJpbGl0YSBtdWRhciBkbyBjdXJzb3IgYXTpIG9uZGUgbyBtb3ZpbWVudG8gZm9yLgogICAgIEV4OiBEaWdpdGUgIGN3ICBwYXJhIG11ZGFyIGRvIGN1cnNvciBhdOkgbyBmaW0gZGUgdW1hIHBhbGF2cmEsIGMkIHBhcmEKICAgICBtdWRhciBhdOkgbyBmaW0gZGEgbGluaGEuCgogIDQuIE8gZm9ybWF0byBwYXJhIHVtYSBvcGVyYefjbyBjaGFuZ2Ug6ToKCiAgICAgICAgIGMgICBbbvptZXJvXSAgIG1vdmltZW50bwoKQWdvcmEgduEgcGFyYSBhIHBy83hpbWEgbGnn428uCgoKCn5+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+fgoJICAgICBMaefjbyA0LjE6IExPQ0FMSVpBx8NPIERPIENVUlNPUiBFIFNUQVRVUyBETyBBUlFVSVZPCgogICAgKiogRGlnaXRlIENUUkwtRyBwYXJhIG1vc3RyYXIgc3VhIGxvY2FsaXph5+NvIG5vIGFycXVpdm8gZSBzZXUgc3RhdHVzLgogICAgICAgRGlnaXRlICBHICBwYXJhIG1vdmVyIHBhcmEgdW1hIGxpbmhhIGRvIGFycXVpdm8uICAqKgoKICBOb3RhOiBMZWlhIGVzdGEgbGnn428gaW50ZWlyYSBhbnRlcyBkZSBleGVjdXRhciBxdWFscXVlciB1bSBkb3MgcGFzc29zISEKCiAgMS4gU2VndXJlIHByZXNzaW9uYWRhIGEgdGVjbGEgQ3RybCBlIHByZXNzaW9uZSAgZyAuIE7zcyBjaGFtYW1vcyBpc3NvIGRlCiAgICAgQ1RSTC1HLiBVbWEgbWVuc2FnZW0gYXBhcmVjZXLhIG5vIHJvZGFw6SBkYSBw4WdpbmEgY29tIG8gbm9tZSBkbyBhcnF1aXZvCiAgICAgZSBhIHN1YSBwb3Np5+NvIG5vIGFycXVpdm8uIExlbWJyZS1zZSBkbyBu+m1lcm8gZGEgbGluaGEgcGFyYSBvIFBhc3NvIDMuCgpOT1RBOiAgQSBwb3Np5+NvIGRvIGN1cnNvciBwb2RlIGVzdGFyIHZpc+12ZWwgbm8gY2FudG8gZGlyZWl0byBpbmZlcmlvciBkYQogICAgICAgdGVsYS4gSXNzbyBhY29udGVjZSBxdWFuZG8gYSBvcOfjbyAncnVsZXInIGVzdOEgYXRpdmEKICAgICAgICh2ZWphICA6aGVscCAncnVsZXInICkuCgogIDIuIFByZXNzaW9uZSAgRyAgcGFyYSBtb3ZlciBwYXJhIG8gZmluYWwgZG8gYXJxdWl2by4KICAgICBEaWdpdGUgIGdnICBwYXJhIG1vdmVyIHBhcmEgbyBpbu1jaW8gZG8gYXJxdWl2by4KCiAgMy4gRGlnaXRlIG8gbvptZXJvIGRhIGxpbmhhIGVtIHF1ZSB2b2PqIGVzdGF2YSBlIGVudONvIEcgLiBJc3RvCiAgICAgcmV0b3JuYXLhIG8gY3Vyc29yIOAgbGluaGEgZW0gcXVlIHZvY+ogZXN0YXZhIHF1YW5kbyBwcmVzc2lvbm91IENUUkwtRy4KCiAgNC4gU2Ugdm9j6iBlc3RpdmVyIGNvbmZpYW50ZSBwYXJhIGZhemVyIGlzdG8sIGV4ZWN1dGUgb3MgcGFzc29zIDEgYW8gMy4Kfn5+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+CiAgICAgICAgICAgICAgICAgICAgICAgTGnn428gNC4yOiBPIENPTUFORE8gU0VBUkNIIChQUk9DVVJBKQoKICAgICAgKiogRGlnaXRlICAvICBzZWd1aWRvIHBvciB1bWEgc3RyaW5nIHBhcmEgcHJvY3VyYXIgcGVsYSBzdHJpbmcuICoqCgogIDEuIE5vIG1vZG8gTm9ybWFsIGRpZ2l0ZSBvIGNhcmFjdGVyZSAgLyAuIE5vdGUgcXVlIGVsZSBlIG8gY3Vyc29yIGFwYXJlY2VtCiAgICAgbm8gcm9kYXDpIGRhIHRlbGEsIGNvbW8gb2NvcnJlIGNvbSBvIGNvbWFuZG8gIDogLgoKICAyLiBBZ29yYSBkaWdpdGUgJ2VycnJvbycgPEVOVEVSPi4gRXN0YSDpIGEgcGFsYXZyYSBxdWUgdm9j6iBxdWVyIHByb2N1cmFyLgoKICAzLiBQYXJhIHByb2N1cmFyIHBlbGEgbWVzbWEgcGFsYXZyYSBkZSBub3ZvLCBzaW1wbGVzbWVudGUgdGVjbGUgIG4gLgogICAgIFBhcmEgcHJvY3VyYXIgcGVsYSBtZXNtYSBwYWxhdnJhIG5hIGRpcmXn428gb3Bvc3RhLCB0ZWNsZSAgTiAuCgogIDQuIFNlIHZvY+ogcXVlciBwcm9jdXJhciBwb3IgdW1hIHN0cmluZyBubyBzZW50aWRvIGRlIGZyZW50ZSBwYXJhIHRy4XMsIHVzZQogICAgID8gIGVtIHZleiBkZSAgLyAuCgogIDUuIFBhcmEgdm9sdGFyIHBhcmEgb25kZSBlc3RhdmEsIHByZXNzaW9uZSBDVFJMLU8gKG1hbnRlbmhhIGEgdGVjbGEgQ3RybAogICAgIHByZXNzaW9uYWRhIGUgcHJlc3Npb25lIGEgdGVjbGEgbykuIFJlcGl0YSBwYXJhIHZvbHRhciBvdXRyYXMgcG9zaef1ZXMuCiAgICAgQ1RSTC1JIHNlZ3VlIHBhcmEgcG9zaef1ZXMgbWFpcyByZWNlbnRlcy4KCi0tLT4gICJlcnJyb28iIG7jbyDpIHVtYSBtYW5laXJhIGRlIGVzY3JldmVyIGVycm87ICBlcnJyb28g6SB1bSBlcnJvLgpOT1RBOiBRdWFuZG8gYSBidXNjYSBhdGluZ2UgbyBmaW5hbCBkbyBhcnF1aXZvIGVsYSBjb250aW51YXLhIGRvIGNvbWXnbywgYQogICAgICBtZW5vcyBxdWUgYSBvcOfjbyAnd3JhcHNjYW4nIGVzdGVqYSBkZXNhdGl2YWRhLgp+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+fn4KCQlMaefjbyA0LjM6IFBST0NVUkEgUE9SIENBU0FNRU5UTyBERSBQQVLKTlRFU0VTCgoJICAgKiogRGlnaXRlICAlICBwYXJhIGFjaGFyIHVtIGNhc2FtZW50byBkZSApLF0sIG91IH0gLiAqKgoKCiAgMS4gUG9zaWNpb25lIG8gY3Vyc29yIGVtIHF1YWxxdWVyICgsIFssIG91IHsgbmEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCiAgCiAgMi4gQWdvcmEgZGlnaXRlIG8gY2FyYWN0ZXJlICAlIC4KICAKICAzLiBPIGN1cnNvciBkZXZlIGVzdGFyIG5vIHBhcupudGVzZXMgb3UgY29sY2hldGVzIHF1ZSBjYXNhIGNvbSBvIHByaW1laXJvLgoKICA0LiBEaWdpdGUgICUgIHBhcmEgbW92ZXIgbyBjdXJzb3IgZGUgdm9sdGEgYW8gcHJpbWVpcm8gY29sY2hldGUgb3UgcGFy6m50ZXNlcwogICAgIChwb3IgY2FzYW1lbnRvKS4KCi0tLT4gSXN0byAoIOkgdW1hIGxpbmhhIGRlIHRlc3RlIGNvbnRlbmRvICgncywgWydzIF0gZSB7J3MgfS4gKSkKCk5vdGE6IElzc28g6SBtdWl0byD6dGlsIHBhcmEgY29ycmlnaXIgdW0gcHJvZ3JhbWEgY29tIHBhcupudGVzZXMgbuNvLWNhc2Fkb3MhCgoKCgoKfn5+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+CgkJICAgICAgIExp5+NvIDQuNDogTyBDT01BTkRPIFNVQlNUSVRVSVIKCiAgICAgICoqIERpZ2l0ZSAgOnMvdmVsaG8vbm92by9nICBwYXJhIHN1YnN0aXR1aXIgJ3ZlbGhvJyBwb3IgJ25vdm8nLiAqKgoKCiAgMS4gTW92YSBvIGN1cnNvciBwYXJhIGEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCgogIDIuIERpZ2l0ZSAgOi9zL2FhL2EgPEVOVEVSPiAuIE5vdGUgcXVlIGVzdGUgY29tYW5kbyBzb21lbnRlIG11ZGEgYSAKICAgICBwcmltZWlyYSBvY29ycupuY2lhIG5hIGxpbmhhLgoKICAzLiBBZ29yYSBkaWdpdGUgIDpzL2FhL2EvZyAgIHNpZ25pZmljYW5kbyBzdWJzdGl0dWlyIGdsb2JhbG1lbnRlIG5hIGxpbmhhLgogICAgIElzdG8gbXVkYSB0b2RhcyBhcyBvY29ycupuY2lhcyBuYSBsaW5oYS4KCi0tLT4gYWEgbWVsaG9yIOlwb2NhIHBhcmEgdmVyIGFhcyBmbG9yZXMg6SBhYSBwcmltYXZlcmEuIAoKICA0LiBQYXJhIG11ZGFyIHRvZGEgb2NvcnLqbmNpYSBkZSB1bWEgc3RyaW5nIGVudHJlIGR1YXMgbGluaGFzLAogICAgIGRpZ2l0ZSAgOiMsI3MvdmVsaG8vbm92by9nICAgb25kZSAjLCMgc+NvIG9zIG76bWVyb3MgZGFzIGR1YXMgbGluaGFzLgogICAgIERpZ2l0ZSAgOiVzL3ZlbGhvL25vdm8vZyAgICAgcGFyYSBtdWRhciB0b2RhcyBhcyBvY29ycupuY2lhcyBubyBhcnF1aXZvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlaXJvLgogICAgIERpZ2l0ZSAgOiUvdmVsaG8vbm92by9nYyAgICAgcGFyYSBtdWRhciB0b2RhcyBhcyBvY29ycupuY2lhIG5vIGFycXVpdm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVpcm8sIGNvbSBhIG9w5+NvIGRlIGNvbmZpcm1hciBjYWRhCgkJCQkgIHN1YnN0aXR1aefjby4Kfn5+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+fgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVU3BUklPIERBIExJx8NPIDQKICAxLiAgICBDVFJMLUcgIG1vc3RyYSBhIHN1YSBsb2NhbGl6YefjbyBubyBhcnF1aXZvIGUgbyBzdGF0dXMgZG8gbWVzbW8uCiAgICAgICAgICAgICBHICBtb3ZlIHBhcmEgbyBmaW5hbCBkbyBhcnF1aXZvLgogICAgIG76bWVybyAgRyAgbW92ZSBwYXJhIGVzdGEgbGluaGEgY29tIGVzc2UgbvptZXJvLgogICAgICAgICAgICBnZyAgbW92ZSBwYXJhIGEgcHJpbWVpcmEgbGluaGEuCgogIDIuIERpZ2l0YW5kbyAgLyAgc2VndWlkbyBwb3IgdW1hIGV4cHJlc3PjbyBwcm9jdXJhIMAgRlJFTlRFIHBvciBlbGEuCiAgICAgRGlnaXRhbmRvICA/ICBzZWd1aWRvIHBvciB1bWEgZXhwcmVzc+NvIHByb2N1cmEgcGVsYSBleHByZXNz428gZGUgVFLBUwogICAgIFBBUkEgRlJFTlRFLgogICAgIEFw83MgdW1hIGJ1c2NhLCBkaWdpdGUgbiBwYXJhIGFjaGFyIGEgcHLzeGltYSBvY29ycupuY2lhIG5hIG1lc21hIGRpcmXn428KICAgICBvdSBOIHBhcmEgcHJvY3VyYXIgbmEgZGlyZefjbyBvcG9zdGEuCiAgICAgQ1RSTC1PIGxldmEgYSBwb3Np5/VlcyBhbnRpZ2FzIGUgQ1RSTC1JIGEgcG9zaef1ZXMgbWFpcyByZWNlbnRlcy4KCiAgMy4gRGlnaXRhbmRvICAlICBlbnF1YW50byBvIGN1cnNvciBlc3ThIHNvYnJlIHVtICgsKSxbLF0seywgb3UgfSBsb2NhbGl6YQogICAgIG8gcGFyIHF1ZSBjYXNhIGNvbSBlbGUuCgogIDQuIFBhcmEgc3Vic3RpdHVpcjoKICAgICAgIG8gcHJpbWVpcm8gJ3ZlbGhvJyBkZSB1bWEgbGluaGEgcG9yICdub3ZvJyBkaWdpdGUgICA6cy92ZWxoby9ub3ZvCiAgICAgICB0b2RvcyBvcyAndmVsaG8ncyBlbSB1bWEgbGluaGEgcG9yICdub3ZvJyBkaWdpdGUgICAgOnMvdmVsaG8vbm92by9nCiAgICAgICBleHByZXNz9WVzIGVudHJlIGRvaXMgbvptZXJvcyAoIykgZGUgbGluaGFzIGRpZ2l0ZSAgOiMsI3MvdmVsaG8vbm92bwogICAgICAgdG9kYXMgYXMgb2NvcnLqbmNpYXMgbm8gYXJxdWl2byBkaWdpdGUgICAgICAgICAgICAgIDolcy92ZWxoby9ub3ZvL2cKICAgICBQYXJhIGNvbmZpcm1hciBjYWRhIHN1YnN0aXR1aefjbyBhZGljaW9uZSAnYycgICAgICAgICA6JXMvdmVsaG8vbm92by9nYwp+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+fn5+CgkJIExp5+NvIDUuMTogQ09NTyBFWEVDVVRBUiBVTSBDT01BTkRPIEVYVEVSTk8KCgogKiogRGlnaXRlICA6ISAgc2VndWlkbyBwb3IgdW0gY29tYW5kbyBleHRlcm5vIHBhcmEgZXhlY3V0YXIgZXNzZSBjb21hbmRvLiAqKgoKICAxLiBEaWdpdGUgbyBmYW1pbGlhciBjb21hbmRvICA6ICBwYXJhIGxldmFyIG8gY3Vyc29yIGFvIHJvZGFw6SBkYSB0ZWxhLiBJc3NvCiAgICAgbGhlIHBlcm1pdGUgZW50cmFyIHVtIGNvbWFuZG8uCgogIDIuIEFnb3JhIGRpZ2l0ZSBvIGNhcmFjdGVyZSAgISAgKHBvbnRvIGRlIGV4Y2xhbWHn428pLiBJc3NvIGxoZSBwZXJtaXRlCiAgICAgZXhlY3V0YXIgcXVhbHF1ZXIgY29tYW5kbyBkbyBzaGVsbC4KCiAgMy4gQ29tbyB1bSBleGVtcGxvIGRpZ2l0ZSAgbHMgIHNlZ3VpbmRvIG8gICEgIGUgZW50428gdGVjbGUgPEVOVEVSPi4gSXN0bwogICAgIGly4SBtb3N0cmFyIHVtYSBsaXN0YWdlbSBkbyBzZXUgZGlyZXTzcmlvLCBjb21vIHNlIHZvY+ogZXN0aXZlc3NlIG5vCiAgICAgcHJvbXB0IGRvIHNoZWxsLiBPdSB1c2UgIDohZGlyIHNlIGxzIG7jbyBmdW5jaW9uYXIuCgpOT1RBOiAgySBwb3Nz7XZlbCBleGVjdXRhciBxdWFscXVlciBjb21hbmRvIGV4dGVybm8gZGVzc2EgbWFuZWlyYSwgaW5jbHVzaXZlCiAgICAgICBjb20gYXJndW1lbnRvcy4KCk5PVEE6ICBUb2RvcyBvcyBjb21hbmRvcyAgOiAgZGV2ZW0gc2VyIGZpbmFsaXphZG9zIHRlY2xhbmRvLXNlIDxFTlRFUj4KICAgICAgIERhcXVpIGVtIGRpYW50ZSBu428gaXJlbW9zIG1lbmNpb25hciBpc3NvIHNlbXByZS4KCgp+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+fn5+CgkJICAgIExp5+NvIDUuMjogTUFJUyBTT0JSRSBTQUxWQVIgQVJRVUlWT1MKCiAgICAgKiogUGFyYSBzYWx2YXIgYXMgYWx0ZXJh5/VlcyBubyB0ZXh0bywgZGlnaXRlICA6dyBOT01FRE9BUlFVSVZPLiAqKgoKCiAgMS4gRGlnaXRlICA6IWRpciAgb3UgIDohbHMgcGFyYSB0ZXIgdW1hIGxpc3RhZ2VtIGRlIHNldSBkaXJldPNyaW8uCiAgICAgVm9j6iBq4SBkZXZlIHNhYmVyIHF1ZSBwcmVjaXNhIHRlY2xhciA8RU5URVI+IGRlcG9pcyBkaXNzby4KCiAgMi4gRXNjb2xoYSB1bSBub21lIGRlIGFycXVpdm8gcXVlIGFpbmRhIG7jbyBleGlzdGEsIGNvbW8gVEVTVEUuCgogIDMuIEFnb3JhIGRpZ2l0ZTogICA6dyBURVNURSAgKG9uZGUgVEVTVEUg6SBvIG5vbWUgcXVlIHZvY+ogZXNjb2xoZXUuKQoKICA0LiBJc3RvIHNhbHZhIG8gYXJxdWl2byBpbnRlaXJvICAobyBWaW0gVHV0b3IpIGNvbSBvIG5vbWUgVEVTVEUuCiAgICAgUGFyYSB2ZXJpZmljYXIgaXNzbywgZGlnaXRlICA6IWxzIGRlIG5vdm8gcGFyYSB2ZXIgc2V1IGRpcmV083JpbwoKTk9UQTogU2Ugdm9j6iBzYWlyIGRvIFZpbSBlIGVudHJhciBkZSBub3ZvIGNvbSBvIG5vbWUgZG8gYXJxdWl2byBURVNURSwKICAgICAgbyBhcnF1aXZvIGRldmUgc2VyIHVtYSBj83BpYSBleGF0YSBkbyB0dXRvciBxdWFuZG8gdm9j6iBvIHNhbHZvdS4KCiAgNS4gQWdvcmEgcmVtb3ZhIG8gYXJxdWl2byBkaWdpdGFuZG8gKE1TLURPUyk6ICAgICA6IWRlbCBURVNURQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91IChVbml4KTogICAgICAgOiFybSBURVNURQoKCn5+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+fgoJCSBMaefjbyA1LjM6IFNFTEVDSU9OQU5ETyBPIFRFWFRPIEEgU0VSIFNBTFZPCgogICoqIFBhcmEgc2FsdmFyIHBhcnRlIGRlIHVtIGFycXVpdm8sIGRpZ2l0ZSAgdiAgbW92aW1lbnRvIE5PTUVET0FSUVVJVk8gKioKCiAgMS4gTW92YSBvIGN1cnNvciBwYXJhIGVzdGEgbGluaGEuCgogIDIuIFByZXNzaW9uZSAgdiAgZSBtb3ZhIG8gY3Vyc29yIHBhcmEgbyBxdWludG8gaXRlbSBhYmFpeG8uIE5vdGUgcXVlIG8gdGV4dG8KICAgICDpIHJlYWznYWRvLgoKICAzLiBQcmVzc2lvbmUgbyBjYXJhY3RlcmUgIDogIGUgbm90ZSBxdWUgYXBhcmVjZXLhICA6JzwsJz4gIG5vIGxhZG8gaW5mZXJpb3IKICAgICBkYSB0ZWxhLgoKICA0LiBEaWdpdGUgIHcgVEVTVEUgLCBzZW5kbyBURVNURSB1bSBub21lIGRlIGFycXVpdm8gcXVlIG7jbyBleGlzdGUgYWluZGEuCiAgICAgVm9j6iBkZXZlcuEgdmVyICA6JzwsJz53IFRFU1RFICBhbnRlcyBkZSBwcmVzc2lvbmFyIDxFTlRFUj4uCgogIDUuIE8gVmltIHNhbHZhcuEgYXMgbGluaGFzIHNlbGVjaW9uYWRhcyBubyBhcnF1aXZvIFRFU1RFLiBVc2UgIDohZGlyICBvdQogICAgICE6bHMgcGFyYSB26i1sby4gTuNvIG8gYXBhZ3VlIGFnb3JhISBO83MgbyB1c2FyZW1vcyBuYSBwcvN4aW1hIGxp5+NvLgoKTk9UQTogIFByZXNzaW9uYW5kbyAgdiAgaW5pY2lhIG8gbW9kbyBWaXN1YWwgZGUgc2VsZefjby4gIFZvY+ogcG9kZSBtb3ZlciBvCmN1cnNvciBwZWxhIHRlbGEgcGFyYSB0b3JuYXIgYSBzZWxl5+NvIG1haW9yIG91IG1lbm9yLiBQb2RlLCBlbnTjbywgdXNhciB1bQpvcGVyYWRvciBwYXJhIGV4ZWN1dGFyIGFsZ3VtYSBh5+NvLiBQb3IgZXhlbXBsbywgIGQgIGRlbGV0YSBvIHRleHRvLgoKfn5+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+CgkJICBMaefjbyA1LjQ6IFJFQ1VQRVJBTkRPIEUgSlVOVEFORE8gQVJRVUlWT1MKCiAgICAqKiBQYXJhIGluc2VyaXIgbyBjb250ZfpkbyBkZSB1bSBhcnF1aXZvLCBkaWdpdGUgIDpyIE5PTUVET0FSUVVJVk8gKioKCgogIDEuIFBvc2ljaW9uZSBvIGN1cnNvciBsb2dvIGFjaW1hIGRlc3RhIGxpbmhhLgoKTk9UQTogIERlcG9pcyBkZSBleGVjdXRhciBvIFBhc3NvIDIgdm9j6iB2ZXLhIGEgbGnn428gNS4zLiBFbnTjbyBERVPHQSBvCiAgICAgICBjdXJzb3IgcGFyYSB2ZXIgZXN0YSBsaefjbyBub3ZhbWVudGUuCgogIDIuIEFnb3JhIHJlY3VwZXJlIG8gYXJxdWl2byBURVNURSB1c2FuZG8gbyBjb21hbmRvICA6ciBURVNURSAgb25kZSBURVNURSDpIG8KICAgICBub21lIGRvIGFycXVpdm8uCiAgICAgTyBhcnF1aXZvIHJlY3VwZXJhZG8g6SBjb2xvY2FkbyBhYmFpeG8gZGEgbGluaGEgYXR1YWwgZG8gY3Vyc29yLgoKICAzLiBQYXJhIHZlcmlmaWNhciBxdWUgbyBhcnF1aXZvIGZvaSByZWN1cGVyYWRvLCB2b2x0ZSBjb20gbyBjdXJzb3IgZSB2ZXJpZmlxdWUKICAgICBxdWUgYWdvcmEgZXhpc3RlbSBkdWFzIGPzcGlhcyBkYSBMaefjbyA1LjMsIGEgb3JpZ2luYWwgZSBhIHZlcnPjbyBkbyAKICAgICBhcnF1aXZvLgoKTk9UQTogVm9j6iB0YW1i6W0gcG9kZSBsZXIgYSBzYe1kYSBkZSB1bSBjb21hbmRvIGV4dGVybm8uIFBvciBleGVtcGxvLCAgOnIgIWxzCiAgICAgIGzqIGEgc2HtZGEgZG8gY29tYW5kbyBscyBlIGNvbG9jYSBvIHJlc3VsdGFkbyBhYmFpeG8gZG8gY3Vyc29yLgoKCn5+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+fgoJCQkgICAgICBTVU3BUklPIERBIExJx8NPIDUgCgoKICAxLiAgOiFjb21hbmRvICBleGVjdXRhIHVtIGNvbWFuZG8gZXh0ZXJuby4KCiAgICAgIEFsZ3VucyBleGVtcGxvcyD6dGVpcyBz4286CiAgICAgICAgIChNUy1ET1MpICAgICAgICAgKFVOSVgpCgkgIDohZGlyICAgICAgICAgICAgOiFscyAgICAgICAgICAtICBsaXN0YSBjb250ZfpkbyBkbyBkaXJldPNyaW8uCiAgICAgICAgICA6IWRlbCBBUlFVSVZPICAgIDohcm0gQVJRVUlWTyAgLSAgcmVtb3ZlIEFSUVVJVk8uCgogIDIuIDp3IEFSUVVJVk8gIHNhbHZhIG8gYXR1YWwgYXJxdWl2byBkbyBWaW0gcGFyYSBvIGRpc2NvIGNvbSBvIG5vbWUgQVJRVUlWTy4KCiAgMy4gdiAgbW92aW1lbnRvICA6dyBBUlFVSVZPICBzYWx2YSBhcyBsaW5oYXMgVmlzdWFsbWVudGUgc2VsZWNpb25hZGFzIGVtCiAgICAgQVJRVUlWTy4KCiAgNC4gOnIgQVJRVUlWTyAgcmVjdXBlcmEgQVJRVUlWTyBkbyBkaXNjbyBlIG8gaW5zZXJlIGRlbnRybyBkbyBhcnF1aXZvIGF0dWFsCiAgICAgbmEgcG9zaefjbyBkbyBjdXJzb3IuCgogIDUuIDpyICFkaXIgIGzqIGEgc2HtZGEgZG8gY29tYW5kbyBkaXIgZSBjb2xvY2EgbyByZXN1bHRhZG8gYWJhaXhvIGRhIHBvc2nn428KICAgICBhdHVhbCBkbyBjdXJzb3IuCgoKfn5+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+fgogICAgICAgICAgICAgICAgICAgICAgICBMaefjbyA2LjE6IE8gQ09NQU5ETyBPUEVOIChBQlJJUikKCiAgICoqIERpZ2l0ZSAgbyAgcGFyYSBhYnJpciB1bWEgbGluaGEgZW1iYWl4byBkbyBjdXJzb3IgZSBpciBwYXJhIG8gbW9kbyBkZQogICAgICBJbnNlcufjbyAoSU5TRVJUKS4gKioKCiAgMS4gTW92YSBvIGN1cnNvciBwYXJhIGEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCgogIDIuIERpZ2l0ZSAgbyAobWlu+nNjdWxvKSBwYXJhIGFicmlyIHVtYSBsaW5oYSBBQkFJWE8gZG8gY3Vyc29yIGUgaXIgcGFyYSBvCiAgICAgbW9kbyBkZSBJbnNlcufjbyAoSU5TRVJUKS4KCiAgMy4gQWdvcmEgZGlnaXRlIGFsZ3VtIHRleHRvIGUgcHJlc3Npb25lIDxFU0M+IHBhcmEgc2FpciBkbyBtb2RvIGRlCiAgICAgSW5zZXLn428uCgotLS0+IEFw83MgdGVjbGFyICBvICBvIGN1cnNvciDpIGNvbG9jYWRvIG5hIGxpbmhhIGFiZXJ0YSBubyBtb2RvIGRlIEluc2Vy5+NvLgoKICA0LiBQYXJhIGFicmlyIHVtYSBsaW5oYSBBQ0lNQSBkbyBjdXJzb3IsIHNpbXBsZXNtZW50ZSB0ZWNsZSB1bSAgTyAgbWFp+nNjdWxvLAogICAgIGVtIHZleiBkZSB1bSAgbyAgbWlu+nNjdWxvLiBUZW50ZSBpc3NvIG5hIGxpbmhhIGFiYWl4by4KCi0tLT4gQWJyYSB1bWEgbGluaGEgYWNpbWEgZGVzdGEgdGVjbGFuZG8gTyBlbnF1YW50byBvIGN1cnNvciBlc3ThIG5lc3RhIGxpbmhhLgoKCgp+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+fn5+CgkJCSBMaefjbyA2LjI6IE8gQ09NQU5ETyBBUFBFTkQKCgkgICAgKiogRGlnaXRlICBhICBwYXJhIGluc2VyaXIgdGV4dG8gREVQT0lTIGRvIGN1cnNvci4gKioKCiAgMS4gTW92YSBvIGN1cnNvciBwYXJhIG8gaW7tY2lvIGRhIGxpbmhhIG1hcmNhZGEgY29tIC0tLT4gLgoKICAyLiBQcmVzc2lvbmUgIGUgIGF06SBvIGN1cnNvciBmaWNhciBzb2JyZSBvIGZpbmFsIGRlIGxpIC4KCiAgMy4gRGlnaXRlIHVtICBhICAobWlu+nNjdWxvKSBwYXJhIGFkaWNpb25hciB0ZXh0byBERVBPSVMgZG8gY2FyYWN0ZXJlIHNvYiBvCiAgICAgY3Vyc29yLgoKICA0LiBDb21wbGV0ZSBhIHBhbGF2cmEgY29uZm9ybWUgYSBsaW5oYSBhYmFpeG8uIFByZXNzaW9uZSA8RVNDPiBwYXJhIHNhaXIgZG8KICAgICBtb2RvIGRlIEluc2Vy5+NvLgoKICA1LiBVc2UgIGUgIHBhcmEgbW92ZXIgcGFyYSBhIHBy83hpbWEgcGFsYXZyYSBpbmNvbXBsZXRhICByZXBpdGEgb3MgcGFzc29zIDMKICAgICBlIDQuCgotLS0+IEVzdGEgbGluIGxoZSBwZXJtaXRlIHByYXRpYyBhIGFkaecgZGUgdGV4dG8gYSB1bWEgbGluaGEuCi0tLT4gRXN0YSBsaW5oYSBsaGUgcGVybWl0ZSBwcmF0aWNhciBhIGFkaefjbyBkZSB0ZXh0byBhIHVtYSBsaW5oYS4KCk5PVEE6IGEsIGkgZSBBIGxldmFtIGFvIG1lc21vIG1vZG8gZGUgSW5zZXLn428sIGEg+m5pY2EgZGlmZXJlbudhIOkgb25kZSBvcwogICAgICBjYXJhY3RlcmVzIHPjbyBpbnNlcmlkb3MuCn5+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+fn4KCSAgICAgTGnn428gNi4zOiBVTUEgT1VUUkEgVkVSU8NPIERPIFJFUExBQ0UgKFNVQlNUSVRVSVIpCgogICAgICAqKiBEaWdpdGUgdW0gUiBtYWn6c2N1bG8gcGFyYSBzdWJzdGl0dWlyIG1haXMgZGUgdW0gY2FyYWN0ZXJlLiAqKgoKCiAgMS4gTW92YSBvIGN1cnNvciBwYXJhIGEgcHJpbWVpcmEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uIE1vdmEgbwogICAgIGN1cnNvciBwYXJhIG8gaW7tY2lvIGRvIHByaW1laXJvICB4eHggLgogIAogIDIuIEFnb3JhIHByZXNzaW9uZSAgUiAgZSBkaWdpdGUgb3MgbvptZXJvcyBxdWUgZXN0428gYWJhaXhvIGRlbGUsIG5hIHNlZ3VuZGEKICAgICBsaW5oYSwgcGFyYSBzdWJzdGl0dWlyIG8gIHh4eCAuCgogIDMuIFByZXNzaW9uZSA8RVNDPiBwYXJhIHNhaXIgZG8gbW9kbyBkZSBTdWJzdGl0dWnn428uIE5vdGUgcXVlIG8gcmVzdG8gZGEKICAgICBsaW5oYSBwZXJtYW5lY2UgaW5hbHRlcmFkYS4KCiAgNC4gUmVwaXRhIG9zIHBhc3NvcyBwYXJhIHN1YnN0aXR1aXIgb3MgIHh4eCAgcmVzdGFudGVzLgoKLS0tPiAgQWRpY2lvbmFuZG8gMTIzIGEgeHh4IHJlc3VsdGEgZW0geHh4LgotLS0+ICBBZGljaW9uYW5kbyAxMjMgYSA0NTYgcmVzdWx0YSBlbSA1NzkuCgpOT1RBOiAgTyBtb2RvIGRlIFN1YnN0aXR1aefjbyDpIGNvbW8gbyBtb2RvIGRlIEluc2Vy5+NvLCBtYXMgY2FkYSBjYXJhY3RlcmUKICAgICAgIGRpZ2l0YWRvIGRlbGV0YSB1bSBjYXJhY3RlcmUgZXhpc3RlbnRlLgoKfn5+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+CgkJICAgICAgIExp5+NvIDYuNDogQ09QSUFSIEUgQ09MQVIgVEVYVE8KCgkqKiBVc2UgbyBvcGVyYWRvciAgeSAgcGFyYSBjb3BpYXIgdGV4dG8gZSAgcCAgcGFyYSBjb2zhLWxvLiAqKgoKICAgMS4gVuEgcGFyYSBhIGxpbmhhIG1hcmNhZGEgY29tIC0tLT4gYWJhaXhvIGUgcG9zaWNpb25lIG8gY3Vyc29yIGFw83MgImEpIi4KCiAgIDIuIEluaWNpZSBvIG1vZG8gVmlzdWFsIGNvbSAgdiAgZSBtb3ZhIG8gY3Vyc29yIHBhcmEgbG9nbyBhbnRlcyBkZQogICAgICAicHJpbWVpcm8iLgoKICAgMy4gRGlnaXRlICB5ICBwYXJhIGNvcGlhciBvIHRleHRvIHNlbGVjaW9uYWRvLgoKICAgNC4gTW92YSBvIGN1cnNvciBwYXJhIG8gZmluYWwgZGEgcHLzeGltYSBsaW5oYTogIGokCgogICA1LiBEaWdpdGUgIHAgIHBhciBw9HIgKGNvbGFyKSBvIHRleHRvLiBFbnTjbywgZGlnaXRlOiAgbyBzZWd1bmRvIDxFU0M+IC4KCiAgIDYuIFVzZSBvIG1vZG8gVmlzdWFsIHBhcmEgc2VsZWNpb25hciAgIiBpdGVtLiIsIGNvcGllLW8gY29tICB5ICwgbW92YSBwYXJhCiAgICAgIG8gZmluYSBkYSBwcvN4aW1hIGxpbmhhIGNvbSAgaiQgIGUgcG9uaGEgKGNvbGUpIG8gdGV4dG8gY29tICBwIC4KCi0tLT4gIGEpIGVzc2Ug6SBvIHByaW1laXJvIGl0ZW0uCiAgICAgIGIpCk5PVEE6ICBWb2PqIHRhbWLpbSBwb2RlIHVzYXIgIHkgIGNvbW8gdW0gb3BlcmFkb3I7IHBvciBleGVtcGxvLCB5dyBjb3BpYSB1bWEKICAgICAgIHBhbGF2cmEuCn5+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+fgoJCSAgICAgIExp5+NvIDYuNTogQ09ORklHVVJBUiBQUkVGRVLKTkNJQVMKCiAgICAgICoqIENvbmZpZ3VyYXIgdW1hIHByZWZlcupuY2lhIGRlIG1vZG8gcXVlIHVtIHNlYXJjaCBvdSBzdWJzdGl0dXRlCgkgaWdub3JhIHNlIGFzIGxldHJhcyBlc3TjbyBlbSBtYWn6c2N1bGFzIG91IG1pbvpzY3VsYXMuICoqCgogIDEuIFByb2N1cmUgcG9yICdpZ25vcmUnIGVudHJhbmRvOiAgL2lnbm9yZSA8RU5URVI+CiAgICAgUmVwaXRhIHbhcmlhcyB2ZXplcyB0ZWNsYW5kbyAgbiAuCiAgMi4gQ29uZmlndXJlIGEgb3Dn428gJ2ljJyAoSWdub3JlIGNhc2UpIGRpZ2l0YW5kbzoKICAgICA6c2V0IGljCiAgMy4gQWdvcmEgcHJvY3VyZSBwb3IgJ2lnbm9yZScgZGUgbm92byB0ZWNsYW5kbzogbgogICAgIFJlcGl0YSB24XJpYXMgdmV6ZXMuCiAgNC4gQ29uZmlndXJlIGFzIG9w5/VlcyAnaGxzZWFyY2gnIGUgJ2luY3NlYXJjaCc6CiAgICAgOnNldCBobHMgaXMKICA1LiBBZ29yYSBlbnRyZSBjb20gbyBjb21hbmRvIHNlYXJjaCBkZSBub3ZvLCBlIHZlamEgbyBxdWUgYWNvbnRlY2U6CiAgICAgL2lnbm9yZQogIDYuIFBhcmEgZGVzYWJpbGl0YXIgYSBkZXNjb25zaWRlcmHn428gZGUgbWFp+nNjdWxhcyBlIG1pbvpzY3VsYXM6CiAgICAgOnNldCBub2ljCgpOT1RBOiAgUGFyYSByZW1vdmVyIG8gcmVhbGNlIGRvcyB0ZXJtb3MgbG9jYWxpemFkb3MgZW50cmU6ICA6bm9obHNlYXJjaApOT1RBOiAgU2UgcXVpc2VyIGlnbm9yYXIgYSBkaWZlcmVu52EgZW50cmUgbWFp+nNjdWxhcyBlIG1pbvpzY3VsYXMgZW0gYXBlbmFzCiAgICAgICB1bWEgcGVzcXVpc2EsIHVzZSAgXGMgIG5vIGNvbWFuZG86ICAvaWdub3JlXGMgPEVOVEVSPgoKfn5+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+CgkJCSAgICAgIFNVTcFSSU8gREEgTEnHw08gNgoKICAxLiBEaWdpdGUgIG8gIHBhcmEgYWJyaXIgdW1hIGxpbmhhIEFCQUlYTyBkbyBjdXJzb3IgZSBpbmljaWFyIG8gbW9kbyBkZQogICAgIEluc2Vy5+NvLgogICAgIERpZ2l0ZSAgTyAgcGFyYSBhYnJpciB1bWEgbGluaGEgQUNJTUEgZGEgbGluaGEgb25kZSBvIGN1cnNvciBlc3ThLgoKICAyLiBEaWdpdGUgIGEgIHBhcmEgYWRpY2lvbmFyIHRleHRvIERFUE9JUyBkbyBjYXJhY3RlcmUgb25kZSBlc3ThIG8gY3Vyc29yLgogICAgIERpZ2l0ZSAgQSAgcGFyYSBhZGljaW9uYXIgdGV4dG8gYW8gZmluYWwgZGEgbGluaGEuCgogIDMuIE8gY29tYW5kbyAgZSAgbW92ZSBvIGN1cnNvciBwYXJhIG8gZmluYWwgZGUgdW1hIHBhbGF2cmEuCgogIDQuIE8gb3BlcmFkb3IgIHkgIGNvcGlhIHRleHRvLCAgcCAgcPVlIChjb2xhKSBvIHRleHRvIGNvcGlhZG8uCgogIDUuIERpZ2l0YW5kbyAgUiAgZW50cmEtc2Ugbm8gbW9kbyBkZSBTdWJzdGl0dWnn428gYXTpIHF1ZSA8RVNDPiBzZWphCiAgICAgcHJlc3Npb25hZG8uCgogIDYuIERpZ2l0YW5kbyAgIjpzZXQgeHh4IiBtb2RpZmljYS1zZSBhIG9w5+NvICJ4eHgiLiBBbGd1bWFzIG9w5/VlcyBz4286CiAgICAgICAgICdpYycgJ2lnbm9yZWNhc2UnICAgICBpZ25vcmEgZGlmZXJlbudhIGVudHJlIG1hafpzY3VsYXMvbWlu+nNjdWxhcwoJICdpcycgJ2luY3NlYXJjaCcgICAgICByZWFsaXphIGEgYnVzY2EgZW5xdWFudG8gc2UgZGlnaXRhCgkgJ2hscycgJ2hsc2VhcmNoJyAgICAgIHJlYWznYSB0b2RvcyBvcyB0cmVjaG9zIGxvY2FsaXphZG9zCiAgICAgVm9j6iB0YW50byBwb2RlIHVzYXIgbyBub21lIGN1cnRvIHF1YW50byBvIG5vbWUgbG9uZ28gZGEgb3Dn428uCiAgNy4gQWRpY2lvbmUgbyBwcmVmaXhvICJubyIgcGFyYSBkZXNhYmlsaXRhciB1bWEgb3Dn4286ICA6c2V0IG5vaWMKfn5+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+CgkJCSAgIExJx8NPIDcuMTogT0JURU5ETyBBSlVEQQoKCQkgKiogVXNhciBvIHNpc3RlbWEgZGUgYWp1ZGEgZG8gcHLzcHJpbyBWaW0gKioKCiAgTyBWaW0gcG9zc3VpIHNpc3RlbWEgZGUgYWp1ZGEgYWJyYW5nZW50ZS4gUGFyYSBjb21l52FyLCB0ZW50ZSBhbGd1bQogIGRlc3NlcyB0cupzOgogICAgICAgIC0gcHJlc3Npb25lIGEgdGVjbGEgPEhFTFA+IChzZSB2b2PqIHRpdmVyIHVtYSkKICAgICAgICAtIHByZXNzaW9uZSBhIHRlY2xhIDxGMT4gICAoc2Ugdm9j6iB0aXZlciB1bWEpCiAgICAgICAgLSBkaWdpdGUgICAgICA6aGVscCA8RU5URVI+CgogIExlaWEgbyB0ZXh0byBkYSBhanVkYSBwYXJhIGFwcmVuZGVyIGNvbW8gbyBzaXN0ZW1hIGRlIGFqdWRhIGZ1bmNpb25hLgogIERpZ2l0ZSAgQ1RSTC1XIENUUkwtVyAgcGFyYSBwdWxhciBkZSB1bWEgamFuZWxhIHBhcmEgb3V0cmEuCiAgRGlnaXRlICA6cSA8RU5URVI+IHBhcmEgZmVjaGFyIGEgamFuZWxhIGRhIGFqdWRhLgoKICBWb2PqIHBvZGUgYWNoYXIgYWp1ZGEgc29icmUgcXVhbHF1ZXIgYXNzdW50bywgZm9ybmVjZW5kbyB1bSBhcmd1bWVudG8gcGFyYQogIG8gY29tYW5kbyAiOmhlbHAiLiBUZW50ZSBpc3RvIChu428gZXNxdWXnYSBkZSBwcmVzc2lvbmFyIDxFTlRFUj4pOgoKICAgICAgIDpoZWxwIHcKICAgICAgIDpoZWxwIGNfQ1RSTC1ECiAgICAgICA6aGVscCBpbnNlcnQtaW5kZXgKICAgICAgIDpoZWxwIHVzZXItbWFudWFsCgp+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+fn4KCQkgTGnn428gNy4yOiBDUklBUiBVTSBTQ1JJUFQgREUgSU5JQ0lBTElaQcfDTwoKCQkgICAgICAgKiogSGFiaWxpdGFyIHJlY3Vyc29zIGRvIFZpbSAqKgoKICBPIFZpbSB0ZW0gbXVpdG8gbWFpcyByZWN1cnNvcyBkbyBxdWUgbyBWaSwgbWFzIG5hIHN1YSBtYWlvcmlhIGVsZXMgc+NvCiAgZGVzYWJpbGl0YWRvcyBwb3IgcGFkcuNvLiAgUGFyYSB1c2FyIG1haXMgcmVjdXJzb3MsIHZvY+ogdGVtIHF1ZSBjcmlhciB1bQogIGFycXVpdm8gInZpbXJjIi4KCiAgMS4gQ29tZWNlIGEgZWRpdGFyIG8gYXJxdWl2byAidmltcmMiLiBJc3NvIGRlcGVuZGUgZG8gc2lzdGVtYToKICAgICAgICAgOmUgfi8udmltcmMgICAgICAgICAgICAgIHBhcmEgVW5peAogICAgICAgICA6ZSAkVklNL192aW1yYyAgICAgICAgICAgcGFyYSBNUy1XaW5kb3dzCgogIDIuIEFnb3JhLCBsZWlhIG8gY29udGX6ZG8gZG8gYXJxdWl2byAidmltcmMiIGRlIGV4ZW1wbG86CiAgICAgICAgIDpyICRWSU0vdmltcmNfZXhhbXBsZS52aW0KCiAgMy4gU2FsdmUgbyBhcnF1aXZvIGNvbToKICAgICAgICAgOncKCiAgRGEgcHLzeGltYSB2ZXogcXVlIG8gVmltIGZvciBpbmljaWFkbywgZWxlIGly4SB1c2FyIHJlYWxjZSBkZSBzaW50YXhlLiBWb2PqCiAgcG9kZSBhZGljaW9uYXIgc3VhcyBjb25maWd1cmHn9WVzIHByZWZlcmlkYXMgcGFyYSBlc3NlIGFycXVpdm8gInZpbXJjIi4gUGFyYQogIG1haW9yZXMgaW5mb3JtYef1ZXMsIGRpZ2l0ZTogIDpoZWxwIHZpbXJjLWludHJvCgp+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+fn4KCQkJICAgIExp5+NvIDcuMzogQ09NUExFVEHHw08KCgkgICAqKiBDb21wbGV0YefjbyBkYSBsaW5oYSBkZSBjb21hbmRvIGNvbSBDVFJMLUQgZSA8VEFCPiAqKgoKICAgMS4gQ2VydGlmaXF1ZS1zZSBkZSBxdWUgbyBWaW0gbuNvIGVzdOEgbm8gbW9kbyBjb21wYXTtdmVsOiAgOnNldCBub2NwCgogICAyLiBPbGhlIHF1YWlzIGFycXVpdm9zIGV4aXN0ZW0gbm8gZGlyZXTzcmlvOiAgOiFscyAgb3UgIDohZGlyCgogICAzLiBEaWdpdGUgbyBpbu1jaW8gZGUgdW0gY29tYW5kbzogIDplCgogICA0LiBQcmVzc2lvbmUgIENUUkwtRCAgZSBvIFZpbSBpcuEgbW9zdHJhciBhIGxpc3RhIGRvcyBjb21hbmRvcyBpbmljaWFkb3MKICAgICAgY29tICJlIi4KCiAgIDUuIFByZXNzaW9uZSAgPFRBQj4gIGUgbyBWaW0gaXLhIGNvbXBsZXRhciBvIG5vbWUgZG8gY29tYW5kbyBwYXJhICI6ZWRpdCIuCgogICA2LiBBZ29yYSwgYWRpY2lvbmUgdW0gZXNwYedvIGUgbyBpbu1jaW8gZG8gbm9tZSBkZSB1bSBhcnF1aXZvIGV4aXN0ZW50ZToKICAgICAgOmVkaXQgQVJRCgogICA3LiBQcmVzc2lvbmUgPFRBQj4uICBPIFZpbSBpcuEgY29tcGxldGFyIG8gbm9tZSAoc2UgZWxlIGZvciD6bmljbykuCgpOT1RBOiAgQSBjb21wbGV0YefjbyBmdW5jaW9uYSBjb20gbXVpdG9zIGNvbWFuZG9zLiBCYXN0YSBwcmVzc2lvbmFyIENUUkwtRCBlCjxUQUI+LiBJc3NvIOkgZXNwZWNpYWxtZW50ZSD6dGlsIHBhcmEgIDpoZWxwIC4Kfn5+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+CgkJCSAgICAgIFNVTcFSSU8gREEgTEnHw08gNwoKCiAgMS4gRGlnaXRlICA6aGVscCBvdSBwcmVzc2lvbmUgPEYxPiBvdSA8SGVscD4gIHBhcmEgYWJyaXIgYSBqYW5lbGEgZGUgYWp1ZGEuCgogIDIuIERpZ2l0ZSAgOmhlbHAgY21kICBwYXJhIGFjaGFyIGEgYWp1ZGEgc29icmUgIGNtZCAuCgogIDMuIERpZ2l0ZSAgQ1RSTC1XIENUUkwtVyAgcGFyYSBwdWxhciBkZSB1bWEgamFuZWxhIHBhcmEgb3V0cmEuCgogIDQuIERpZ2l0ZSAgOnEgIHBhcmEgZmVjaGFyIGEgamFuZWxhIGRlIGFqdWRhLgoKICA1LiBDcmllIHVtIHNjcmlwdCBkZSBpbmljaWFsaXph5+NvIHZpbXJjIHBhcmEgYXRpdmFyIGF1dG9tYXRpY2FtZW50ZSBhcyBzdWFzCiAgICAgY29uZmlndXJh5/VlcyBwcmVmZXJpZGFzLgoKICA2LiBRdWFuZG8gcHJlc3Npb25hbmRvIHVtIGNvbWFuZG8gIDogLCBwcmVzc2lvbmUgQ1RSTC1EIHBhcmEgdmVyIGFzCiAgICAgcG9zc2liaWxpZGFkZSBkZSBjb21wbGV0Yefjby4KCgoKICAKCn5+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+fgoKICBJc3RvIGNvbmNsdWkgbyBWaW0gdHV0b3IuIEVsZSBwcmV0ZW5kZXUgZGFyIHVtYSBicmV2ZSBhcHJlc2VudGHn428gZG8gZWRpdG9yCiAgVmltLCBzb21lbnRlIG8gYmFzdGFudGUgcGFyYSBxdWUgdm9j6iBwb3NzYSB1c2FyIG8gZWRpdG9yIGNvbSBmYWNpbGlkYWRlLgogIEVsZSBlc3ThIGxvbmdlIGRlIHNlciBjb21wbGV0bywgdW1hIHZleiBxdWUgbyBWaW0gcG9zc3VpIG11aXRvcywgbXVpdG9zIG1haXMKICBjb21hbmRvcy4gTyBwcvN4aW1vIHBhc3NvIOkgbGVyIG8gbWFudWFsOiAgIjpoZWxwIHVzZXItbWFudWFsIi4KCiAgTGl2cm8gcmVjb21lbmRhZG8gZW0gUG9ydHVndepzIHNvYnJlIG8gVmltOgogICAgICAgTyBlZGl0b3IgZGUgdGV4dG8gVmltIC0gZGUgU+lyZ2lvIEx1aXogQXJh+mpvIGRhIFNpbHZhIGV0IGFsLgogICAgICAgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3ZpbWJvb2svCgogIFBhcmEgZnV0dXJhIGxlaXR1cmEgZSBlc3R1ZG8sIGVzdGUgbGl2cm8g6SByZWNvbWVuZGFkbzoKICAgICAgIFZpbSAtIFZpIEltcHJvdmVkIC0gZGUgU3RldmUgT3VhbGxpbmUKICAgICAgIEVkaXRvcmE6IE5ldyBSaWRlcnMKICBFc3RlIOkgbyBwcmltZWlybyBsaXZybyBjb21wbGV0YW1lbnRlIGRlZGljYWRvIGFvIFZpbS4gRXNwZWNpYWxtZW50ZSD6dGlsCiAgcGFyYSBpbmljaWFudGVzLCBjb20gbXVpdG9zIGV4ZW1wbG9zIGUgaWx1c3RyYef1ZXMuCiAgVmVqYSBodHRwOi8vaWNjZi1ob2xsYW5kLm9yZy9jbGljazUuaHRtbAoKICBFc3NlIGxpdnJvIOkgbWFpcyBhbnRpZ28gZSBtYWlzIHNvYnJlIG8gVmkgZG8gcXVlIHNvYnJlIG8gVmltLCBtYXMgdGFtYultIOkKICByZWNvbWVuZGFkbzoKICAgICAgIExlYXJuaW5nIHRoZSBWaSBFZGl0b3IgLSBkZSBMaW5kYSBMYW1iCiAgICAgICBFZGl0b3JhOiBPJ1JlaWxseSAmIEFzc29jaWF0ZXMgSW5jLgogIEVzdGUg6SB1bSBib20gbGl2cm8gcGFyYSBhcHJlbmRlciBxdWFzZSB0dWRvIG8gcXVlIHZvY+ogcXVlciBmYXplciBjb20gbyBWaS4KICBBIHNleHRhIGVkaefjbyB0YW1i6W0gaW5jbHVpIGluZm9ybWHn9WVzIHNvYnJlIG8gVmltLgoKICBFc3RlIHR1dG9yaWFsIGZvaSBlc2NyaXRvIHBvciBNaWNoYWVsIEMuIFBpZXJjZSBlIFJvYmVydCBLLiBXYXJlLAogIENvbG9yYWRvIFNjaG9vbCBvZiBNaW5lcywgdXNhbmRvIGlk6WlhcyBmb3JuZWNpZGFzIHBvciBDaGFybGVzIFNtaXRoLAogIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuICBFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KCiAgTW9kaWZpY2FkbyBwYXJhIG8gVmltIHBvciBCcmFtIE1vb2xlbmFyLgoKICBWZXJz428gMS40IHRyYWR1emlkYSBwYXJhIG8gcG9ydHVndepzIHBvciBNYXJjZWxvIERydWRpIE1pcmFuZGEsIEVzY29sYQogIFBvbGl06WNuaWNhIGRhIFVuaXZlcnNpZGFkZSBkZSBT428gUGF1bG8uCgogIFJldmlz428gZSBhdHVhbGl6YefjbyBkYSB0cmFkdefjbyBwYXJhIGEgdmVyc+NvIDEuNyBwb3IgSmFrc29uIEFxdWlubywKICBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkbyBDZWFy4TogRS1tYWlsOiBqYWx2ZXNhcUBnbWFpbC5jb20KCiAgTGFzdCBDaGFuZ2U6IDIwMTAgSnVsIDI3Cgp+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