CiAgICAgICAgIAkJICAgICBIIEEgLSBQIHIgbyB4IHkKICAgICAgICAgCQkgICAgIC0tLS0tLS0tLS0tLS0tLQogICAgICAgICAJCSAgICAgIHZlcnNpb24gMS4xLjE2CgkJCSAgICAgIHdpbGx5IHRhcnJlYXUKCQkJICAgICAgIDIwMDIvMDkvMDEKCj09PT09PT09PT09PT09PT0KfCBJbnRyb2R1Y3Rpb24gfAo9PT09PT09PT09PT09PT09CgpIQS1Qcm94eSBlc3QgdW4gcmVsYWlzIFRDUC9IVFRQIG9mZnJhbnQgZGVzIGZhY2lsaXTpcyBkJ2ludOlncmF0aW9uIGVuCmVudmlyb25uZW1lbnQgaGF1dGVtZW50IGRpc3BvbmlibGUuIEVuIGVmZmV0LCBpbCBlc3QgY2FwYWJsZSBkZSA6CiAgLSBlZmZlY3R1ZXIgdW4gYWlndWlsbGFnZSBzdGF0aXF1ZSBk6WZpbmkgcGFyIGRlcyBjb29raWVzIDsKICAtIGVmZmVjdHVlciB1bmUgculwYXJ0aXRpb24gZGUgY2hhcmdlIGF2ZWMgY3LpYXRpb24gZGUgY29va2llcyBwb3VyIGFzc3VyZXIgbGEKICAgIHBlcnNpc3RlbmNlIGRlIHNlc3Npb24gOyAKICAtIGZvdXJuaXIgdW5lIHZpc2liaWxpdOkgZXh0ZXJuZSBkZSBzb24g6XRhdCBkZSBzYW506SA7CiAgLSBzJ2Fycup0ZXIgZW4gZG91Y2V1ciBzYW5zIHBlcnRlIGJydXRhbGUgZGUgc2VydmljZS4KICAtIG1vZGlmaWVyL2Fqb3V0ZXIvc3VwcHJpbWVyIGRlcyBlbnTqdGVzIGRhbnMgbGEgcmVxdep0ZSBldCBsYSBy6XBvbnNlLgogIC0gaW50ZXJkaXJlIGRlcyByZXF16nRlcyBxdWkgdulyaWZpZW50IGNlcnRhaW5lcyBjb25kaXRpb25zLgoKSWwgcmVxdWllcnQgcGV1IGRlIHJlc3NvdXJjZXMsIGV0IHNvbiBhcmNoaXRlY3R1cmUg6XbpbmVtZW50aWVsbGUgbW9uby1wcm9jZXNzdXMKbHVpIHBlcm1ldCBmYWNpbGVtZW50IGRlIGfpcmVyIHBsdXNpZXVycyBtaWxsaWVycyBkZSBjb25uZXhpb25zIHNpbXVsdGFu6WVzIHN1cgpwbHVzaWV1cnMgcmVsYWlzIHNhbnMgZWZmb25kcmVyIGxlIHN5c3TobWUuCgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09CnwgUGFyYW3odHJlcyBkZSBsYW5jZW1lbnQgfAo9PT09PT09PT09PT09PT09PT09PT09PT09PT0KCkxlcyBvcHRpb25zIGRlIGxhbmNlbWVudCBzb250IHBldSBub21icmV1c2VzIDoKCiAgICAtZiA8ZmljaGllciBkZSBjb25maWd1cmF0aW9uPgogICAgLW4gPG5vbWJyZSBtYXhpbWFsIHRvdGFsIGRlIGNvbm5leGlvbnMgc2ltdWx0YW7pZXM+CiAgICAtTiA8bm9tYnJlIG1heGltYWwgZGUgY29ubmV4aW9ucyBzaW11bHRhbullcyBwYXIgcHJveHk+CiAgICAtZCBhY3RpdmUgbGUgbW9kZSBkZWJ1ZwogICAgLUQgcGFzc2UgZW4gZGFlbW9uCiAgICAtcyBhZmZpY2hlIGxlcyBzdGF0aXN0aXF1ZXMgKHNpIG9wdGlvbiBjb21waWzpZSkKICAgIC1sIGFqb3V0ZSBkZXMgaW5mb3JtYXRpb25zIGF1eCBzdGF0aXN0aXF1ZXMKCkxlIG5vbWJyZSBtYXhpbWFsIGRlIGNvbm5leGlvbiBzaW11bHRhbullcyBwYXIgcHJveHkgZXN0IGxlIHBhcmFt6HRyZSBwYXIgZOlmYXV0CnBvdXIgbGVzIHByb3hpZXMgcG91ciBsZXNxdWVscyBjZSBwYXJhbeh0cmUgbidlc3QgcGFzIHBy6WNpc+kgZGFucyBsZSBmaWNoaWVyIGRlCmNvbmZpZ3VyYXRpb24uIElsIHMnYWdpdCBkdSBwYXJhbeh0cmUgJ21heGNvbm4nIGRhbnMgbGVzIHNlY3Rpb25zICdsaXN0ZW4nLgoKTGUgbm9tYnJlIG1heGltYWwgdG90YWwgZGUgY29ubmV4aW9ucyBzaW11bHRhbullcyBsaW1pdGUgbGUgbm9tYnJlIGRlIGNvbm5leGlvbnMKVENQIHV0aWxpc2FibGVzIOAgdW4gaW5zdGFudCBkb25u6SBwYXIgbGUgcHJvY2Vzc3VzLCB0b3VzIHByb3hpZXMgY29uZm9uZHVzLiBDZQpwYXJhbeh0cmUgcmVtcGxhY2UgbGUgcGFyYW3odHJlICdtYXhjb25uJyBkZSBsYSBzZWN0aW9uICdnbG9iYWwnLgoKTGUgbW9kZSBkZWJ1ZyBjb3JyZXNwb25kIOAgbCdvcHRpb24gJ2RlYnVnJyBkZSBsYSBzZWN0aW9uICdnbG9iYWwnLiBEYW5zIGNlCm1vZGUsIHRvdXRlcyBsZXMgY29ubmV4aW9ucywgZOljb25uZXhpb25zLCBldCB0b3VzIGxlcyDpY2hhbmdlcyBkJ2VudOp0ZXMgSFRUUApzb250IGFmZmljaOlzLgoKTGVzIHN0YXRpc3RpcXVlcyBuZSBzb250IGRpc3BvbmlibGVzIHF1ZSBzaSBsZSBwcm9ncmFtbWUgYSDpdOkgY29tcGls6SBhdmVjCmwnb3B0aW9uICJTVEFUVElNRSIuIElsIHMnYWdpdCBwcmluY2lwYWxlbWVudCBkZSBkb25u6WVzIGJydXRlcyBuJ2F5YW50CmQndXRpbGl06SBxdWUgbG9ycyBkZSBiZW5jaG1hcmtzIHBhciBleGVtcGxlLgoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT0KfCBGaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24gfAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpTdHJ1Y3R1cmUKPT09PT09PT09CgpMJ2FuYWx5c2V1ciBkdSBmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24gaWdub3JlIGRlcyBsaWduZXMgdmlkZXMsIGxlcyBlc3BhY2VzLApsZXMgdGFidWxhdGlvbnMsIGV0IHRvdXQgY2UgcXVpIGVzdCBjb21wcmlzIGVudHJlIGxlIHN5bWJvbGUgJyMnIChzJ2lsIG4nZXN0IHBhcwpwculj6WTpIGQndW4gJ1wnKSwgZXQgbGEgZmluIGRlIGxhIGxpZ25lLCBjZSBxdWkgY29uc3RpdHVlIHVuIGNvbW1lbnRhaXJlLgoKTGUgZmljaGllciBkZSBjb25maWd1cmF0aW9uIGVzdCBk6WNvdXDpIGVuIHNlY3Rpb25zIHLpcOly6WVzIHBhciBkZXMgbW90cyBjbOlzCnRlbHMgcXVlIDoKCiAgLSAnZ2xvYmFsJwogIC0gJ2xpc3RlbicKClRvdXMgbGVzIHBhcmFt6HRyZXMgZm9udCBy6WbpcmVuY2Ug4CBsYSBzZWN0aW9uIGTpZmluaWUgcGFyIGxlIGRlcm5pZXIgbW90IGNs6QpyZWNvbm51LgoKCjEpIFBhcmFt6HRyZXMgZ2xvYmF1eAo9PT09PT09PT09PT09PT09PT09PT0KCklsIHMnYWdpdCBkZXMgcGFyYW3odHJlcyBhZ2lzc2FudCBzdXIgbGUgcHJvY2Vzc3VzLCBvdSBiaWVuIHN1ciBsJ2Vuc2VtYmxlIGRlcwpwcm94aWVzLiBJbHMgc29udCB0b3VzIHNw6WNpZmnpcyBkYW5zIGxhIHNlY3Rpb24gJ2dsb2JhbCcuIExlcyBwYXJhbeh0cmVzCnN1cHBvcnTpcyBzb250IDoKCiAgLSBsb2cgPGFkcmVzc2U+IDxjYXTpZ29yaWU+CiAgLSBtYXhjb25uIDxub21icmU+CiAgLSB1aWQgPGlkZW50aWZpYW50PgogIC0gZ2lkIDxpZGVudGlmaWFudD4KICAtIGNocm9vdCA8culwZXJ0b2lyZT4KICAtIG5icHJvYyA8bm9tYnJlPgogIC0gZGFlbW9uCiAgLSBkZWJ1ZwogIC0gcXVpZXQKCjEuMSkgSm91cm5hbGlzYXRpb24gZGVzIOl26W5lbWVudHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpMYSBwbHVwYXJ0IGRlcyDpduluZW1lbnRzIHNvbnQgam91cm5hbGlz6XMgOiBk6W1hcnJhZ2VzLCBhcnLqdHMsIGRpc3Bhcml0aW9uIGV0CmFwcGFyaXRpb24gZGUgc2VydmV1cnMsIGNvbm5leGlvbnMsIGVycmV1cnMuIFRvdXMgbGVzIG1lc3NhZ2VzIHNvbnQgZW52b3npcyBlbgpzeXNsb2cgdmVycyB1biBvdSBkZXV4IHNlcnZldXJzLiBMYSBzeW50YXhlIGVzdCBsYSBzdWl2YW50ZSA6CgogICAgbG9nIDxhZHJlc3NlX2lwPiA8ZmFjaWxpdHk+CgpMZXMgY29ubmV4aW9ucyBzb250IGVudm956WVzIGVuIG5pdmVhdSAiaW5mbyIuIExlcyBk6W1hcnJhZ2VzIGRlIHNlcnZpY2UgZXQgZGUKc2VydmV1cnMgc2Vyb250IGVudm956XMgZW4gIm5vdGljZSIsIGxlcyBzaWduYXV4IGQnYXJy6nRzIGVuICJ3YXJuaW5nIiBldCBsZXMKYXJy6nRzIGTpZmluaXRpZnMgZGUgc2VydmljZXMgZXQgZGUgc2VydmV1cnMgZW4gImFsZXJ0Ii4gQ2VjaSBlc3QgdmFsYWJsZSBhdXNzaQpiaWVuIHBvdXIgbGVzIHByb3hpZXMgcXVlIHBvdXIgbGVzIHNlcnZldXJzIHRlc3TpcyBwYXIgbGVzIHByb3hpZXMuCgpMZXMgY2F06WdvcmllcyBwb3NzaWJsZXMgc29udCA6CiAgICBrZXJuLCB1c2VyLCBtYWlsLCBkYWVtb24sIGF1dGgsIHN5c2xvZywgbHByLCBuZXdzLAogICAgdXVjcCwgY3JvbiwgYXV0aDIsIGZ0cCwgbnRwLCBhdWRpdCwgYWxlcnQsIGNyb24yLAogICAgbG9jYWwwLCBsb2NhbDEsIGxvY2FsMiwgbG9jYWwzLCBsb2NhbDQsIGxvY2FsNSwgbG9jYWw2LCBsb2NhbDcKCkV4ZW1wbGUgOgotLS0tLS0tLS0KICAgIGdsb2JhbAoJbG9nIDE5Mi4xNjguMi4yMDAgbG9jYWwzCglsb2cgMTkyLjE2OC4yLjIwMSBsb2NhbDQKCjEuMikgbGltaXRhdGlvbiBkdSBub21icmUgZGUgY29ubmV4aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSWwgZXN0IHBvc3NpYmxlIGV0IGNvbnNlaWxs6SBkZSBsaW1pdGVyIGxlIG5vbWJyZSBnbG9iYWwgZGUgY29ubmV4aW9ucyBwYXIKcHJvY2Vzc3VzLiBMZXMgY29ubmV4aW9ucyBzb250IGNvbXByaXNlcyBhdSBzZW5zICdhY2NlcHRhdGlvbiBkZSBjb25uZXhpb24nLApkb25jIGlsIGZhdXQgcydhdHRlbmRyZSBlbiBy6GdsZSBn6W7pcmFsIOAgYXZvaXIgdW4gcGV1IHBsdXMgZHUgZG91YmxlIGRlCnNlc3Npb25zIFRDUCBxdWUgbGUgbWF4aW11bSBkZSBjb25uZXhpb25zIGZpeOkuIEMnZXN0IGltcG9ydGFudCBwb3VyIGZpeGVyIGxlCnBhcmFt6HRyZSAndWxpbWl0IC1uJyBhdmFudCBkZSBsYW5jZXIgbGUgcHJveHkuIFBvdXIgY29tcHRhYmlsaXNlciBsZSBub21icmUKZGUgc29ja2V0cyBu6WNlc3NhaXJlcywgaWwgZmF1dCBwcmVuZHJlIGVuIGNvbXB0ZSBjZXMgcGFyYW3odHJlcyA6CiAgLSAxIHNvY2tldCBwYXIgY29ubmV4aW9uIGVudHJhbnRlCiAgLSAxIHNvY2tldCBwYXIgY29ubmV4aW9uIHNvcnRhbnRlCiAgLSAxIHNvY2tldCBwYXIgcHJveHkKICAtIDEgc29ja2V0IHBvdXIgY2hhcXVlIHNlcnZldXIgZW4gY291cnMgZGUgaGVhbHRoLWNoZWNrCiAgLSAxIHNvY2tldCBwb3VyIGxlcyBsb2dzICh0b3VzIHNlcnZldXJzIGNvbmZvbmR1cykKClBvc2l0aW9ubmVyIGxhIGxpbWl0ZSBkdSBub21icmUgZGUgZGVzY3JpcHRldXJzIGRlIGZpY2hpZXJzICh1bGltaXQgLW4pIOAKMiAqIG1heGNvbm4gKyBuYnByb3h5ICsgbmJzZXJ2ZXVycyArIDEuIERhbnMgdW5lIGZ1dHVyZSB2ZXJzaW9uLCBoYXByb3h5IHNlcmEKY2FwYWJsZSBkZSBwb3NpdGlvbm5lciBsdWktbeptZSBjZXR0ZSBsaW1pdGUuCgoxLjMpIERpbWludXRpb24gZGVzIHByaXZpbOhnZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkFmaW4gZGUgculkdWlyZSBsZXMgcmlzcXVlcyBkJ2F0dGFxdWVzIGRhbnMgbGUgY2FzIG/5IHVuZSBmYWlsbGUgbm9uIGlkZW50aWZp6WUKc2VyYWl0IGV4cGxvaXTpZSwgaWwgZXN0IHBvc3NpYmxlIGRlIGRpbWludWVyIGxlcyBwcml2aWzoZ2VzIGR1IHByb2Nlc3N1cywgZXQKZGUgbGUgY2xvaXNvbm5lci4KCkRhbnMgbGEgc2VjdGlvbiAnZ2xvYmFsJywgbGUgcGFyYW3odHJlICd1aWQnIHBlcm1ldCBkZSBzcOljaWZpZXIgdW4gaWRlbnRpZmlhbnQKbnVt6XJpcXVlIGQndXRpbGlzYXRldXIuIExhIHZhbGV1ciAwLCBjb3JyZXNwb25kYW50IG5vcm1hbGVtZW50IGF1IHN1cGVyLQp1dGlsaXNhdGV1ciwgcG9zc+hkZSBpY2kgdW5lIHNpZ25pZmljYXRpb24gcGFydGljdWxp6HJlIGNhciBlbGxlIGluZGlxdWUgcXVlCmwnb24gbmUgc291aGFpdGUgcGFzIGNoYW5nZXIgY2V0IGlkZW50aWZpYW50IGV0IGNvbnNlcnZlciBsYSB2YWxldXIgY291cmFudGUuCkMnZXN0IGxhIHZhbGV1ciBwYXIgZOlmYXV0LiBEZSBsYSBt6m1lIG1hbmnocmUsIGxlIHBhcmFt6HRyZSAnZ2lkJyBjb3JyZXNwb25kIOAKdW4gaWRlbnRpZmlhbnQgZGUgZ3JvdXBlLCBldCB1dGlsaXNlIHBhciBk6WZhdXQgbGEgdmFsZXVyIDAgcG91ciBuZSByaWVuCmNoYW5nZXIuIElsIGVzdCBwYXJ0aWN1bGnocmVtZW50IGTpY29uc2VpbGzpIGQndXRpbGlzZXIgZGVzIGNvbXB0ZXMgZ+lu6XJpcXVlcwp0ZWxzIHF1ZSAnbm9ib2R5JyBjYXIgY2V0dGUgcHJhdGlxdWUgcmV2aWVudCDgIHV0aWxpc2VyICdyb290JyBzaSBkJ2F1dHJlcwpwcm9jZXNzdXMgdXRpbGlzZW50IGxlcyBt6m1lcyBpZGVudGlmaWFudHMuCgpMZSBwYXJhbeh0cmUgJ2Nocm9vdCcgYXV0b3Jpc2Ug4CBjaGFuZ2VyIGxhIHJhY2luZSBkdSBwcm9jZXNzdXMgdW5lIGZvaXMgbGUKcHJvZ3JhbW1lIGxhbmPpLCBkZSBzb3J0ZSBxdWUgbmkgbGUgcHJvY2Vzc3VzLCBuaSBsJ3VuIGRlIHNlcyBkZXNjZW5kYW50cyBuZQpwdWlzc2UgcmVtb250ZXIgZGUgbm91dmVhdSDgIGxhIHJhY2luZS4gQ2UgdHlwZSBkZSBjbG9pc29ubmVtZW50IChjaHJvb3QpIGVzdApwYXJmb2lzIGNvbnRvdXJuYWJsZSBzdXIgY2VydGFpbnMgT1MgKExpbnV4IDIuMiwgU29sYXJpcyksIG1haXMgdmlzaWJsZW1lbnQKZmlhYmxlIHN1ciBkJ2F1dHJlcyAoTGludXggMi40KS4gQXVzc2ksIGlsIGVzdCBpbXBvcnRhbnQgZCd1dGlsaXNlciB1bgpy6XBlcnRvaXJlIHNw6WNpZmlxdWUgYXUgc2VydmljZSBwb3VyIGNldCB1c2FnZSwgZXQgZGUgbmUgcGFzIG11dHVhbGlzZXIgdW4gbeptZQpy6XBlcnRvaXJlIHBvdXIgcGx1c2lldXJzIHNlcnZpY2VzIGRlIG5hdHVyZSBkaWZm6XJlbnRlLgoKUmVtYXJxdWU6IGRhbnMgbGUgY2FzIG/5IHVuZSB0ZWxsZSBmYWlsbGUgc2VyYWl0IG1pc2UgZW4g6XZpZGVuY2UsIGlsIGVzdCBmb3J0CnByb2JhYmxlIHF1ZSBsZXMgcHJlbWnocmVzIHRlbnRhdGl2ZXMgZGUgc29uIGV4cGxvaXRhdGlvbiBwcm92b3F1ZW50IHVuIGFycup0IGR1CnByb2dyYW1tZSwg4CBjYXVzZSBkJ3VuIHNpZ25hbCBkZSB0eXBlICdTZWdtZW50YXRpb24gRmF1bHQnLCAnQnVzIEVycm9yJyBvdQplbmNvcmUgJ0lsbGVnYWwgSW5zdHJ1Y3Rpb24nLiBN6m1lIHMnaWwgZXN0IHZyYWkgcXVlIGZhaXJlIHRvdXJuZXIgbGUgc2VydmV1ciBlbgplbnZpcm9ubmVtZW50IGxpbWl06SBy6WR1aXQgbGVzIHJpc3F1ZXMgZCdpbnRydXNpb24sIGlsIGVzdCBwYXJmb2lzIGJpZW4gdXRpbGUKZGFucyBjZXMgY2lyY29uc3RhbmNlcyBkZSBjb25uYe50cmUgbGVzIGNvbmRpdGlvbnMgZCdhcHBhcml0aW9uIGR1IHByb2Js6G1lLCB2aWEKbCdvYnRlbnRpb24gZCd1biBmaWNoaWVyICdjb3JlJy4gTGEgcGx1cGFydCBkZXMgc3lzdOhtZXMsIHBvdXIgZGVzIHJhaXNvbnMgZGUKc+ljdXJpdOksIGTpc2FjdGl2ZW50IGxhIGfpbulyYXRpb24gZHUgZmljaGllciAnY29yZScgYXBy6HMgdW4gY2hhbmdlbWVudApkJ2lkZW50aWZpYW50IHBvdXIgbGUgcHJvY2Vzc3VzLiBJbCBmYXVkcmEgZG9uYyBzb2l0IGxhbmNlciBsZSBwcm9jZXNzdXMg4ApwYXJ0aXIgZCd1biBjb21wdGUgdXRpbGlzYXRldXIgYXV4IGRyb2l0cyBy6WR1aXRzIChtYWlzIG5lIHBvdXZhbnQgcGFzIGVmZmVjdHVlcgpsZSBjaHJvb3QpLCBvdSBiaWVuIGxlIGZhaXJlIGVuIHJvb3Qgc2FucyBy6WR1Y3Rpb24gZGVzIGRyb2l0cyAodWlkIDApLiBEYW5zIGNlCmNhcywgbGUgZmljaGllciBzZSB0cm91dmVyYSBzb2l0IGRhbnMgbGUgculwZXJ0b2lyZSBkZSBsYW5jZW1lbnQsIHNvaXQgZGFucyBsZQpy6XBlcnRvaXJlIHNw6WNpZmnpIGFwcuhzIGwnb3B0aW9uICdjaHJvb3QnLiBOZSBwYXMgb3VibGllciBsYSBjb21tYW5kZSBzdWl2YW50ZQpwb3VyIGF1dG9yaXNlciBsYSBn6W7pcmF0aW9uIGR1IGZpY2hpZXIgYXZhbnQgZGUgbGFuY2VyIGxlIHByb2dyYW1tZSA6CgojIHVsaW1pdCAtYyB1bmxpbWl0ZWQKCkV4ZW1wbGUgOgotLS0tLS0tLS0KCiAgICBnbG9iYWwKCXVpZAkzMDAwMAoJZ2lkCTMwMDAwCgljaHJvb3QgIC92YXIvY2hyb290L2hhcHJveHkKCjEuNCkgbW9kZXMgZGUgZm9uY3Rpb25uZW1lbnQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpMZSBzZXJ2aWNlIHBldXQgZm9uY3Rpb25uZXIgZGFucyBwbHVzaWV1cnMgbW9kZXMgOgogIC0gYXZhbnQtIC8gYXJyaehyZS1wbGFuCiAgLSBzaWxlbmNpZXV4IC8gbm9ybWFsIC8gZGVidWcKCkxlIG1vZGUgcGFyIGTpZmF1dCBlc3Qgbm9ybWFsLCBhdmFudC1wbGFuLCBjJ2VzdCDgIGRpcmUgcXVlIGxlIHByb2dyYW1tZSBuZSByZW5kCnBhcyBsYSBtYWluIHVuZSBmb2lzIGxhbmPpLiBJbCBuZSBmYXV0IHN1cnRvdXQgcGFzIGxlIGxhbmNlciBjb21tZSBjZWNpIGRhbnMgdW4Kc2NyaXB0IGRlIGTpbWFycmFnZSBkdSBzeXN06G1lLCBzaW5vbiBsZSBzeXN06G1lIG5lIGZpbmlyYWl0IHBhcyBzb24KaW5pdGlhbGlzYXRpb24uIElsIGZhdXQgbGUgbWV0dHJlIGVuIGFycmnocmUtcGxhbiwgZGUgc29ydGUgcXUnaWwgcmVuZGUgbGEgbWFpbgphdSBwcm9jZXNzdXMgYXBwZWxhbnQuIEMnZXN0IGNlIHF1ZSBmYWl0IGwnb3B0aW9uICdkYWVtb24nIGRlIGxhIHNlY3Rpb24KJ2dsb2JhbCcsIGV0IHF1aSBlc3QgbCfpcXVpdmFsZW50IGR1IHBhcmFt6HRyZSAnLUQnIGRlIGxhIGxpZ25lIGRlIGNvbW1hbmRlLgoKUGFyIGFpbGxldXJzLCBjZXJ0YWlucyBtZXNzYWdlcyBkJ2FsZXJ0ZSBzb250IHRvdWpvdXJzIGVudm956XMgc3VyIGxhIHNvcnRpZQpzdGFuZGFyZCwgbeptZSBlbiBtb2RlICdkYWVtb24nLiBQb3VyIG5lIHBsdXMgbGVzIHZvaXIgYWlsbGV1cnMgcXVlIGRhbnMgbGVzCmxvZ3MsIGlsIHN1ZmZpdCBkZSBwYXNzZXIgZW4gbW9kZSBzaWxlbmNpZXV4IHBhciBsJ2Fqb3V0IGRlIGwnb3B0aW9uICdxdWlldCcuCkNldHRlIG9wdGlvbiBuJ2EgcGFzIGQn6XF1aXZhbGVudCBlbiBsaWduZSBkZSBjb21tYW5kZS4KCkVuZmluLCBsZSBtb2RlICdkZWJ1ZycgcGVybWV0IGRlIGRpYWdub3N0aXF1ZXIgbGVzIG9yaWdpbmVzIGRlIGNlcnRhaW5zCnByb2Js6G1lcyBlbiBhZmZpY2hhbnQgbGVzIGNvbm5leGlvbnMsIGTpY29ubmV4aW9ucyBldCDpY2hhbmdlcyBkJ2VuLXTqdGVzIEhUVFAKZW50cmUgbGVzIGNsaWVudHMgZXQgbGVzIHNlcnZldXJzLiBDZSBtb2RlIGVzdCBpbmNvbXBhdGlibGUgYXZlYyBsZXMgb3B0aW9ucwonZGFlbW9uJyBldCAncXVpZXQnIHBvdXIgZGVzIHJhaXNvbnMgZGUgYm9uIHNlbnMuCgoxLjUpIGFjY3JvaXNzZW1lbnQgZGUgbGEgY2FwYWNpdOkgZGUgdHJhaXRlbWVudAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpTdXIgZGVzIG1hY2hpbmVzIG11bHRpLXByb2Nlc3NldXJzLCBpbCBwZXV0IHNlbWJsZXIgZ+JjaOkgZGUgbid1dGlsaXNlciBxdSd1bgpwcm9jZXNzZXVyIHBvdXIgZWZmZWN0dWVyIGxlcyB04mNoZXMgZGUgcmVsYXlhZ2UsIG3qbWUgc2kgbGVzIGNoYXJnZXMKbuljZXNzYWlyZXMg4CBzYXR1cmVyIHVuIHByb2Nlc3NldXIgYWN0dWVsIHNvbnQgYmllbiBhdS1kZWzgIGRlcyBvcmRyZXMgZGUKZ3JhbmRldXIgY291cmFtbWVudCByZW5jb250culzLiBDZXBlbmRhbnQsIHBvdXIgZGVzIGJlc29pbnMgcGFydGljdWxpZXJzLCBsZQpwcm9ncmFtbWUgc2FpdCBk6W1hcnJlciBwbHVzaWV1cnMgcHJvY2Vzc3VzIHNlIHLpcGFydGlzc2FudCBsYSBjaGFyZ2UgZGUKdHJhdmFpbC4gQ2Ugbm9tYnJlIGRlIHByb2Nlc3N1cyBlc3Qgc3DpY2lmaekgcGFyIGxlIHBhcmFt6HRyZSAnbmJwcm9jJyBkZSBsYQpzZWN0aW9uICdnbG9iYWwnLiBTYSB2YWxldXIgcGFyIGTpZmF1dCBlc3QgbmF0dXJlbGxlbWVudCAxLiBDZWNpIG5lIGZvbmN0aW9ubmUKcXUnZW4gbW9kZSAnZGFlbW9uJy4KCkV4ZW1wbGUgOgotLS0tLS0tLS0KCiAgICBnbG9iYWwKCWRhZW1vbgoJcXVpZXQKCW5icHJvYwkyCgoKMikgROlmaW5pdGlvbiBkJ3VuIHNlcnZpY2UgZW4g6WNvdXRlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKTGVzIHNlY3Rpb25zIGRlIHNlcnZpY2UgZOlidXRlbnQgcGFyIGxlIG1vdCBjbOkgImxpc3RlbiIgOgoKICAgIGxpc3RlbiA8bm9tX2luc3RhbmNlPiA8YWRyZXNzZV9JUD46PHBvcnQ+CgotIDxub21faW5zdGFuY2U+IGVzdCBsZSBub20gZGUgbCdpbnN0YW5jZSBk6WNyaXRlLiBDZSBub20gc2VyYSBlbnZveekgZGFucyBsZXMKICBsb2dzLCBkb25jIGlsIGVzdCBzb3VoYWl0YWJsZSBkJ3V0aWxpc2VyIHVuIG5vbSByZWxhdGlmIGF1IHNlcnZpY2UgcmVsYXnpLiBBdWN1bgogIHRlc3Qgbidlc3QgZWZmZWN0dekgY29uY2VybmFudCBsJ3VuaWNpdOkgZGUgY2Ugbm9tLCBxdWkgbidlc3QgcGFzIG9ibGlnYXRvaXJlLAogIG1haXMgZm9ydGVtZW50IHJlY29tbWFuZOllLiAKCi0gPGFkcmVzc2VfSVA+IGVzdCBsJ2FkcmVzc2UgSVAgc3VyIGxhcXVlbGxlIGxlIHJlbGFpcyBhdHRlbmQgc2VzCiAgY29ubmV4aW9ucy4gTCdhZHJlc3NlIDAuMC4wLjAgc2lnbmlmaWUgcXVlIGxlcyBjb25uZXhpb25zIHBvdXJyb250IHMnZWZmZWN0dWVyCiAgc3VyIHRvdXRlcyBsZXMgYWRyZXNzZXMgZGUgbGEgbWFjaGluZS4KCi0gPHBvcnQ+IGVzdCBsZSBudW3pcm8gZGUgcG9ydCBUQ1Agc3VyIGxlcXVlbCBsZSByZWxhaXMgYXR0ZW5kIHNlcwogIGNvbm5leGlvbnMuIExlIGNvdXBsZSA8YWRyZXNzZV9JUD46PHBvcnQ+IGRvaXQg6nRyZSB1bmlxdWUgcG91ciB0b3V0ZXMgbGVzCiAgaW5zdGFuY2VzIGQndW5lIG3qbWUgbWFjaGluZS4gTCdhdHRhY2hlbWVudCDgIHVuIHBvcnQgaW5m6XJpZXVyIOAgMTAyNAogIG7pY2Vzc2l0ZSB1biBuaXZlYXUgZGUgcHJpdmls6GdlIHBhcnRpY3VsaWVyIGxvcnMgZHUgbGFuY2VtZW50IGR1IHByb2dyYW1tZQogIChpbmTpcGVuZGFtbWVudCBkdSBwYXJhbeh0cmUgJ3VpZCcgZGUgbGEgc2VjdGlvbiAnZ2xvYmFsJykuCgpFeGVtcGxlIDoKLS0tLS0tLS0tCiAgICBsaXN0ZW4gaHR0cF9wcm94eSAxMjcuMC4wLjE6ODAKCgoyLjEpIEluaGliaXRpb24gZCd1biBzZXJ2aWNlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVW4gc2VydmV1ciBwZXV0IOp0cmUgZOlzYWN0aXbpIHBvdXIgZGVzIGJlc29pbnMgZGUgbWFpbnRlbmFuY2UsIHNhbnMgYXZvaXIg4Apjb21tZW50ZXIgdG91dGUgdW5lIHBhcnRpZSBkdSBmaWNoaWVyLiBJbCBzdWZmaXQgZGUgcG9zaXRpb25uZXIgbGUgbW90IGNs6QoiZGlzYWJsZWQiIGRhbnMgc2Egc2VjdGlvbiA6CgogICAgbGlzdGVuIHNtdHBfcHJveHkgMC4wLjAuMDoyNQoJZGlzYWJsZWQKCjIuMikgTW9kZSBkZSBmb25jdGlvbm5lbWVudAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVW4gc2VydmV1ciBwZXV0IGZvbmN0aW9ubmVyIGRhbnMgdHJvaXMgbW9kZXMgZGlmZulyZW50cyA6CiAgLSBUQ1AKICAtIEhUVFAKICAtIHN1cGVydmlzaW9uCgpNb2RlIFRDUAotLS0tLS0tLQpEYW5zIGNlIG1vZGUsIGxlIHNlcnZpY2UgcmVsYXllLCBk6HMgbGV1ciDpdGFibGlzc2VtZW50LCBsZXMgY29ubmV4aW9ucyBUQ1AgdmVycwp1biBvdSBwbHVzaWV1cnMgc2VydmV1cnMuIEF1Y3VuIHRyYWl0ZW1lbnQgbidlc3QgZWZmZWN0dekgc3VyIGxlIGZsdXguIElsIHMnYWdpdApzaW1wbGVtZW50IGQndW5lIGFzc29jaWF0aW9uIHNvdXJjZTxhZHJlc3NlOnBvcnQ+IC0+IGRlc3RpbmF0aW9uPGFkcmVzc2U6cG9ydD4uClBvdXIgbCd1dGlsaXNlciwgcHLpY2lzZXIgbGUgbW9kZSBUQ1Agc291cyBsYSBk6WNsYXJhdGlvbiBkdSByZWxhaXMuCgpFeGVtcGxlIDoKLS0tLS0tLS0tCiAgICBsaXN0ZW4gc210cF9wcm94eSAwLjAuMC4wOjI1Cgltb2RlIHRjcAoKTW9kZSBIVFRQCi0tLS0tLS0tLQpEYW5zIGNlIG1vZGUsIGxlIHNlcnZpY2UgcmVsYXllIGxlcyBjb25uZXhpb25zIFRDUCB2ZXJzIHVuIG91IHBsdXNpZXVycwpzZXJ2ZXVycywgdW5lIGZvaXMgcXUnaWwgZGlzcG9zZSBkJ2Fzc2V6IGQnaW5mb3JtYXRpb25zIHBvdXIgZW4gcHJlbmRyZSBsYQpk6WNpc2lvbi4gTGVzIGVudOp0ZXMgSFRUUCBzb250IGFuYWx5c+lzIHBvdXIgeSB0cm91dmVyIHVuIOl2ZW50dWVsIGNvb2tpZSwgZXQKY2VydGFpbnMgZCdlbnRyZS1ldXggcGV1dmVudCDqdHJlIG1vZGlmaelzIHBhciBsZSBiaWFpcyBkJ2V4cHJlc3Npb25zCnLpZ3VsaehyZXMuIFBvdXIgYWN0aXZlciBjZSBtb2RlLCBwculjaXNlciBsZSBtb2RlIEhUVFAgc291cyBsYSBk6WNsYXJhdGlvbiBkdQpyZWxhaXMuCgpFeGVtcGxlIDoKLS0tLS0tLS0tCiAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCgltb2RlIGh0dHAKCk1vZGUgc3VwZXJ2aXNpb24KLS0tLS0tLS0tLS0tLS0tLQpJbCBzJ2FnaXQgZCd1biBtb2RlIG9mZnJhbnQg4CB1biBjb21wb3NhbnQgZXh0ZXJuZSB1bmUgdmlzaWJpbGl06SBkZSBsJ+l0YXQgZGUKc2FudOkgZHUgc2VydmljZS4gSWwgc2UgY29udGVudGUgZGUgcmV0b3VybmVyICJPSyIg4CB0b3V0IGNsaWVudCBzZSBjb25uZWN0YW50CnN1ciBzb24gcG9ydC4gSWwgcGV1dCDqdHJlIHV0aWxpc+kgYXZlYyBkZXMgculwYXJ0aXRldXJzIGRlIGNoYXJnZSDpdm9sdelzIHBvdXIKZOl0ZXJtaW5lciBxdWVscyBzb250IGxlcyBzZXJ2aWNlcyB1dGlsaXNhYmxlcy4gUG91ciBhY3RpdmVyIGNlIG1vZGUsIHBy6WNpc2VyCmxlIG1vZGUgSEVBTFRIIHNvdXMgbGEgZOljbGFyYXRpb24gZHUgcmVsYWlzLgoKRXhlbXBsZSA6Ci0tLS0tLS0tLQogICAgbGlzdGVuIGhlYWx0aF9jaGVjayAwLjAuMC4wOjYwMDAwCgltb2RlIGhlYWx0aAoKCjIuMykgTGltaXRhdGlvbiBkdSBub21icmUgZGUgY29ubmV4aW9ucyBzaW11bHRhbullcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTGUgcGFyYW3odHJlICJtYXhjb25uIiBwZXJtZXQgZGUgZml4ZXIgbGEgbGltaXRlIGFjY2VwdGFibGUgZW4gbm9tYnJlIGRlCmNvbm5leGlvbnMgc2ltdWx0YW7pZXMgcGFyIHByb3h5LiBDaGFxdWUgcHJveHkgcXVpIGF0dGVpbnQgY2V0dGUgdmFsZXVyIGNlc3NlCmQn6WNvdXRlciBqdXNxdSfgIGxpYulyYXRpb24gZCd1bmUgY29ubmV4aW9uLiBWb2lyIHBsdXMgbG9pbiBjb25jZXJuYW50IGxlcwpsaW1pdGF0aW9ucyBsaellcyBhdSBzeXN06G1lLgoKRXhlbXBsZSA6Ci0tLS0tLS0tLQogICAgbGlzdGVuIHRpbnlfc2VydmVyIDAuMC4wLjA6ODAKICAgICAgICBtYXhjb25uIDEwCgoKMi40KSBBcnLqdCBlbiBkb3VjZXVyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbCBlc3QgcG9zc2libGUgZCdhcnLqdGVyIGxlcyBzZXJ2aWNlcyBlbiBkb3VjZXVyIGVuIGVudm95YW50IHVuIHNpZ25hbCBTSUdfVVNSMQphdSBwcm9jZXNzdXMgcmVsYWlzLiBUb3VzIGxlcyBzZXJ2aWNlcyBzZXJvbnQgYWxvcnMgbWlzIGVuIHBoYXNlIGQnYXJy6nQsIG1haXMKcG91cnJvbnQgY29udGludWVyIGQnYWNjZXB0ZXIgZGVzIGNvbm5leGlvbnMgcGVuZGFudCB1biB0ZW1wcyBk6WZpbmkgcGFyIGxlCnBhcmFt6HRyZSAnZ3JhY2UnIChlbiBtaWxsaXNlY29uZGVzKS4gQ2VsYSBwZXJtZXQgcGFyIGV4ZW1wbGUsIGRlIGZhaXJlIHNhdm9pcgpyYXBpZGVtZW50IOAgdW4gculwYXJ0aXRldXIgZGUgY2hhcmdlIHF1J2lsIG5lIGRvaXQgcGx1cyB1dGlsaXNlciB1biByZWxhaXMsCnRvdXQgZW4gY29udGludWFudCBkJ2Fzc3VyZXIgbGUgc2VydmljZSBsZSB0ZW1wcyBxdSdpbCBzJ2VuIHJlbmRlIGNvbXB0ZS4KUmVtYXJxdWUgOiBsZXMgY29ubmV4aW9ucyBhY3RpdmVzIG5lIHNvbnQgamFtYWlzIGNhc3PpZXMuIERhbnMgbGUgcGlyZSBkZXMgY2FzLAppbCBmYXVkcmEgYXR0ZW5kcmUgZW4gcGx1cyBsZXVyIGV4cGlyYXRpb24gYXZhbnQgbCdhcnLqdCB0b3RhbCBkdSBwcm9jZXNzdXMuIExhCnZhbGV1ciBwYXIgZOlmYXV0IGVzdCAwIChwYXMgZGUgZ3LiY2UsIGFycup0IGltbelkaWF0IGRlIGwn6WNvdXRlKS4KCkV4ZW1wbGUgOgotLS0tLS0tLS0KICAgICMgYXJy6nRlciBlbiBkb3VjZXVyIHBhciAna2lsbGFsbCAtVVNSMSBoYXByb3h5JwogICAgIyBsZSBzZXJ2aWNlIHRvdXJuZXJhIGVuY29yZSAxMCBzZWNvbmRlcyBhcHLocyBsYSBkZW1hbmRlIGQnYXJy6nQKICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKCW1vZGUgaHR0cAoJZ3JhY2UgMTAwMDAKCiAgICAjIGNlIHBvcnQgbidlc3QgdGVzdOkgcXVlIHBhciB1biBy6XBhcnRpdGV1ciBkZSBjaGFyZ2UuCiAgICBsaXN0ZW4gaGVhbHRoX2NoZWNrIDAuMC4wLjA6NjAwMDAKCW1vZGUgaGVhbHRoCglncmFjZSAwCgoKMi41KSBUZW1wcyBkJ2V4cGlyYXRpb24gZGVzIGNvbm5leGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSWwgZXN0IHBvc3NpYmxlIGRlIHBhcmFt6XRyZXIgY2VydGFpbmVzIGR1cullcyBkJ2V4cGlyYXRpb24gYXUgbml2ZWF1IGRlcwpjb25uZXhpb25zIFRDUC4gVHJvaXMgdGVtcHMgaW5k6XBlbmRhbnRzIHNvbnQgY29uZmlndXJhYmxlcyBldCBhY2NlcHRlbnQgZGVzCnZhbGV1cnMgZW4gbWlsbGlzZWNvbmRlcy4gU2kgbCd1bmUgZGUgY2VzIHRyb2lzIHRlbXBvcmlzYXRpb25zIGVzdCBk6XBhc3PpZSwgbGEKc2Vzc2lvbiBlc3QgdGVybWlu6WUg4CBjaGFxdWUgZXh0cultaXTpLgoKICAtIHRlbXBzIGQnYXR0ZW50ZSBkJ3VuZSBkb25u6WUgZGUgbGEgcGFydCBkdSBjbGllbnQsIG91IGRlIGxhCiAgICBwb3NzaWJpbGl06SBkZSBsdWkgZW52b3llciBkZXMgZG9ubullcyA6ICJjbGl0aW1lb3V0IiA6CgoJIyB0aW1lLW91dCBjbGllbnQg4CAybW4zMC4KCWNsaXRpbWVvdXQJMTUwMDAwCgogIC0gdGVtcHMgZCdhdHRlbnRlIGQndW5lIGRvbm7pZSBkZSBsYSBwYXJ0IGR1IHNlcnZldXIsIG91IGRlIGxhCiAgICBwb3NzaWJpbGl06SBkZSBsdWkgZW52b3llciBkZXMgZG9ubullcyA6ICJzcnZ0aW1lb3V0IiA6CgoJIyB0aW1lLW91dCBzZXJ2ZXVyIOAgMzBzLgoJc3J2dGltZW91dAkzMDAwMAoKICAtIHRlbXBzIGQnYXR0ZW50ZSBkZSBsJ+l0YWJsaXNzZW1lbnQgZCd1bmUgY29ubmV4aW9uIHZlcnMgdW4gc2VydmV1cgogICAgImNvbnRpbWVvdXQiIDoKCiAgICAgICAgIyBvbiBhYmFuZG9ubmUgc2kgbGEgY29ubmV4aW9uIG4nZXN0IHBhcyDpdGFibGllIGFwcuhzIDQgc2Vjb25kZXMKCWNvbnRpbWVvdXQJNDAwMAoKUmVtYXJxdWVzIDoKLS0tLS0tLS0tLS0KICAtICJjb250aW1lb3V0IiBldCAic3J2dGltZW91dCIgbidvbnQgcGFzIGQndXRpbGl06SBkYW5zIGxlIGNhcyBkdSBzZXJ2ZXVyIGRlCiAgICB0eXBlICJoZWFsdGgiLgogIC0gc291cyBkZSBmb3J0ZXMgY2hhcmdlcywgb3Ugc3VyIHVuIHLpc2VhdSBzYXR1cukgb3UgZOlmZWN0dWV1eCwgaWwgZXN0CiAgICBwb3NzaWJsZSBkZSBwZXJkcmUgZGVzIHBhcXVldHMuIER1IGZhaXQgcXVlIGxhIHByZW1p6HJlIHJldHJhbnNtaXNzaW9uIFRDUAogICAgbidhaXQgbGlldSBxdSdhdSBib3V0IGRlIDMgc2Vjb3VkZXMsIGZpeGVyIHVuIHRpbWVvdXQgZGUgY29ubmV4aW9uIGluZulyaWV1cgogICAg4CAzIHNlY29uZGVzIG5lIHBlcm1ldCBwYXMgZGUgc2UgcmF0dHJhcGVyIHN1ciBsYSBwZXJ0ZSBkZSBwYXF1ZXRzIGNhciBsYQogICAgc2Vzc2lvbiBhdXJhIOl06SBhYmFuZG9ubullIGF2YW50IGxhIHByZW1p6HJlIHJldHJhbnNtaXNzaW9uLiBVbmUgdmFsZXVyIGRlCiAgICA0IHNlY29uZGVzIHLpZHVpcmEgY29uc2lk6XJhYmxlbWVudCBsZSBub21icmUgZCfpY2hlY3MgZGUgY29ubmV4aW9uLgoKMi42KSBUZW50YXRpdmVzIGRlIHJlY29ubmV4aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpMb3JzIGQndW4g6WNoZWMgZGUgY29ubmV4aW9uIHZlcnMgdW4gc2VydmV1ciwgaWwgZXN0IHBvc3NpYmxlIGRlCnJldGVudGVyIChwb3RlbnRpZWxsZW1lbnQgdmVycyB1biBhdXRyZSBzZXJ2ZXVyLCBlbiBjYXMgZGUgculwYXJ0aXRpb24KZGUgY2hhcmdlKS4gTGUgbm9tYnJlIGRlIG5vdXZlbGxlcyB0ZW50YXRpdmVzIGluZnJ1Y3R1ZXVzZXMgYXZhbnQKYWJhbmRvbiBlc3QgZm91cm5pIHBhciBsZSBwYXJhbeh0cmUgInJldHJpZXMiLgoKRXhlbXBsZSA6Ci0tLS0tLS0tLQoJIyBvbiBlc3NhaWUgZW5jb3JlIHRyb2lzIGZvaXMgbWF4aQoJcmV0cmllcyAzCgoKMi43KSBBZHJlc3NlIGR1IHNlcnZldXIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTGUgc2VydmV1ciB2ZXJzIGxlcXVlbCBzb250IHJlZGlyaWfpZXMgbGVzIG5vdXZlbGxlcyBjb25uZXhpb25zIGVzdCBk6WZpbmkgcGFyCmxlIHBhcmFt6HRyZSAiZGlzcGF0Y2giIHNvdXMgbGEgZm9ybWUgPGFkcmVzc2VfaXA+Ojxwb3J0Pi4gSWwgY29ycmVzcG9uZCDgIHVuCnNlcnZldXIgZCdhc3NpZ25hdGlvbiBkZSBjb29raWUgZGFucyBsZSBjYXMgb/kgbGUgc2VydmljZSBjb25zaXN0ZSDgIGFzc3VyZXIKdW5pcXVlbWVudCB1bmUgcGVyc2lzdGVuY2UgSFRUUCwgb3UgYmllbiBzaW1wbGVtZW50IGF1IHNlcnZldXIgZGVzdGluYXRpb24gZGFucwpsZSBjYXMgZGUgcmVsYXlhZ2UgVENQIHNpbXBsZS4KCkV4ZW1wbGUgOgotLS0tLS0tLS0KICAgCSMgb24gZW52b2llIHRvdXRlcyBsZXMgbm91dmVsbGVzIGNvbm5leGlvbnMgaWNpCglkaXNwYXRjaCAxOTIuMTY4LjEuMjo4MAoKUmVtYXJxdWUgOgotLS0tLS0tLS0tCkNlIHBhcmFt6HRyZSBuJ2EgcGFzIGQndXRpbGl06SBwb3VyIHVuIHNlcnZldXIgZW4gbW9kZSAnaGVhbHRoJywgbmkgZW4gbW9kZQonYmFsYW5jZScuCgoKMi44KSBBZHJlc3NlIGRlIHNvcnRpZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCklsIGVzdCBwb3NzaWJsZSBkZSBmb3JjZXIgbCdhZHJlc3NlIHV0aWxpc+llIHBvdXIg6XRhYmxpciBsZXMgY29ubmV4aW9ucwp2ZXJzIGxlcyBzZXJ2ZXVycyDgIGwnYWlkZSBkdSBwYXJhbeh0cmUgInNvdXJjZSIuIElsIGVzdCBt6m1lIHBvc3NpYmxlIGRlCmZvcmNlciBsZSBwb3J0LCBiaWVuIHF1ZSBjZXR0ZSBmb25jdGlvbm5hbGl06SBzZSBsaW1pdGUg4CBkZXMgdXNhZ2VzIHRy6HMKc3DpY2lmaXF1ZXMuIEMnZXN0IHBhcnRpY3VsaehyZW1lbnQgdXRpbGUgZW4gY2FzIGQnYWRyZXNzYWdlIG11bHRpcGxlLCBldApwbHVzIGfpbulyYWxlbWVudCBwb3VyIHBlcm1ldHRyZSBhdXggc2VydmV1cnMgZGUgdHJvdXZlciBsZSBjaGVtaW4gZGUKcmV0b3VyIGRhbnMgZGVzIGNvbnRleHRlcyBkZSByb3V0YWdlIGRpZmZpY2lsZXMuIFNpIGwnYWRyZXNzZSBlc3QgMC4wLjAuMCwKZWxsZSBzZXJhIGNob2lzaWUgbGlicmVtZW50IHBhciBsZSBzeXN0ZW1lLiBTaSBsZSBwb3J0IGVzdCAwLCBpbApzZXJhIGNob2lzaSBsaWJyZW1lbnQgcGFyIGxlIHN5c3TobWUuCgpFeGVtcGxlcyA6Ci0tLS0tLS0tLS0KICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKICAgCSMgdG91dGVzIGxlcyBjb25uZXhpb25zIHByZW5uZW50IGwnYWRyZXNzZSAxOTIuMTY4LjEuMjAwCglzb3VyY2UgMTkyLjE2OC4xLjIwMDowCgogICAgbGlzdGVuIHJsb2dpbl9wcm94eSAwLjAuMC4wOjUxMwogICAJIyB1dGlsaXNlciBsJ2FkcmVzc2UgMTkyLjE2OC4xLjIwMCBldCBsZSBwb3J0IHLpc2VydukgOTAwCglzb3VyY2UgMTkyLjE2OC4xLjIwMDo5MDAKCgoyLjkpIETpZmluaXRpb24gZHUgbm9tIGR1IGNvb2tpZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpFbiBtb2RlIEhUVFAsIGlsIGVzdCBwb3NzaWJsZSBkZSByZWNoZXJjaGVyIGxhIHZhbGV1ciBkJ3VuIGNvb2tpZSBwb3VyIHNhdm9pcgp2ZXJzIHF1ZWwgc2VydmV1ciBhaWd1aWxsZXIgbGEgcmVxdep0ZSB1dGlsaXNhdGV1ci4gTGUgbm9tIGR1IGNvb2tpZSBlc3QgZG9ubukKcGFyIGxlIHBhcmFt6HRyZSAiY29va2llIi4KCkV4ZW1wbGUgOgotLS0tLS0tLS0KICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKCW1vZGUgaHR0cAoJY29va2llIFNFUlZFUklECgpPbiBwZXV0IG1vZGlmaWVyIGwndXRpbGlzYXRpb24gZHUgY29va2llIHBvdXIgbGEgcmVuZHJlIHBsdXMgaW50ZWxsaWdlbnRlCnZpcy3gLXZpcyBkZXMgYXBwbGljYXRpb25zIHJlbGF56WVzLiBJbCBlc3QgcG9zc2libGUsIG5vdGFtbWVudCBkZSBzdXBwcmltZXIgb3UKcunpY3JpcmUgdW4gY29va2llIHJldG91cm7pIHBhciB1biBzZXJ2ZXVyIGFjY+lk6SBlbiBkaXJlY3QsIGV0IGQnaW5z6XJlciB1bgpjb29raWUgZGFucyB1bmUgculwb25zZSBIVFRQIGFkcmVzc+llIOAgdW4gc2VydmV1ciBz6WxlY3Rpb25u6SBlbiBy6XBhcnRpdGlvbgpkZSBjaGFyZ2UsIGV0IG3qbWUgZGUgc2lnbmFsZXIgYXV4IHByb3hpZXMgYW1vbnQgZGUgbmUgcGFzIGNhY2hlciBsZSBjb29raWUKaW5z6XLpLgoKRXhlbXBsZXMgOgotLS0tLS0tLS0tCgpQb3VyIG5lIGNvbnNlcnZlciBsZSBjb29raWUgcXUnZW4gYWNj6HMgaW5kaXJlY3QsIGRvbmMg4CB0cmF2ZXJzIGxlCmRpc3BhdGNoZXVyLCBldCBzdXBwcmltZXIgdG91dGVzIHNlcyDpdmVudHVlbGxlcyBvY2N1cmVuY2VzIGxvcnMgZGVzIGFjY+hzCmRpcmVjdHMgOgoKCWNvb2tpZSBTRVJWRVJJRCBpbmRpcmVjdAoKUG91ciByZW1wbGFjZXIgbGEgdmFsZXVyIGQndW4gY29va2llIGV4aXN0YW50IHBhciBjZWxsZSBhdHRyaWJ16WUg4CB1biBzZXJ2ZXVyLApsb3JzIGQndW4gYWNj6HMgZGlyZWN0IDoKCgljb29raWUgU0VSVkVSSUQgcmV3cml0ZQoKUG91ciBjcullciB1biBjb29raWUgY29tcG9ydGFudCBsYSB2YWxldXIgYXR0cmlidellIOAgdW4gc2VydmV1ciBsb3JzIGQndW4gYWNj6HMKZW4gculwYXJ0aXRpb24gZGUgY2hhcmdlIGludGVybmUuIERhbnMgY2UgY2FzLCBpbCBlc3QgaW5kaXNwZW5zYWJsZSBxdWUgdG91cyBsZXMKc2VydmV1cnMgYWllbnQgdW4gY29va2llIHJlbnNlaWdu6SA6CgoJY29va2llIFNFUlZFUklEIGluc2VydAoKUG91ciBpbnPpcmVyIHVuIGNvb2tpZSwgZW4gcydhc3N1cmFudCBxdSd1biBjYWNoZSBlbiBhbW9udCBuZSBsZSBzdG9ja2VyYSBwYXMsCmFqb3V0ZXIgbGUgbW90IGNs6SAnbm9jYWNoZScgYXBy6HMgJ2luc2VydCcgOgoKCWNvb2tpZSBTRVJWRVJJRCBpbnNlcnQgbm9jYWNoZQoKUG91ciBpbnPpcmVyIHVuIGNvb2tpZSBzZXVsZW1lbnQgc3VpdGUgYXV4IHJlcXXqdGVzIGRlIHR5cGUgUE9TVCwgYWpvdXRlciBsZSBtb3QKY2zpICdwb3N0b25seScgYXBy6HMgJ2luc2VydCcgOgoKCWNvb2tpZSBTRVJWRVJJRCBpbnNlcnQgcG9zdG9ubHkKCgpSZW1hcnF1ZXMgOgotLS0tLS0tLS0tLQotIElsIGVzdCBwb3NzaWJsZSBkZSBjb21iaW5lciAnaW5zZXJ0JyBhdmVjICdpbmRpcmVjdCcgb3UgJ3Jld3JpdGUnIHBvdXIgcydhZGFwdGVyCiAg4CBkZXMgYXBwbGljYXRpb25zIGfpbulyYW50IGTpauAgbGUgY29va2llLCBhdmVjIHVuIGNvbnRlbnUgaW52YWxpZGUuIElsIHN1ZmZpdAogIHBvdXIgY2VsYSBkZSBsZXMgc3DpY2lmaWVyIHN1ciBsYSBt6m1lIGxpZ25lLgotIGRhbnMgbGUgY2FzIG/5ICdpbnNlcnQnIGV0ICdpbmRpcmVjdCcgc29udCBzcOljaWZp6XMsIGxlIGNvb2tpZSBuJ2VzdCBqYW1haXMKICB0cmFuc21pcyBhdSBzZXJ2ZXVyIHZ1IHF1J2lsIG4nZW4gYSBwYXMgY29ubmFpc3NhbmNlIGV0IG5lIHBvdXJyYWl0IHBhcyBsZQogIGNvbXByZW5kcmUuCi0gaWwgZXN0IHBhcnRpY3VsaehyZW1lbnQgcmVjb21tYW5k6SBkJ3V0aWxpc2VyICdub2NhY2hlJyBlbiBtb2RlIGluc2VydGlvbiBzaQogIGRlcyBjYWNoZXMgcGV1dmVudCBzZSB0cm91dmVyIGVudHJlIGxlcyBjbGllbnRzIGV0IGwnaW5zdGFuY2UgZHUgcHJveHkuIERhbnMKICBsZSBjYXMgY29udHJhaXJlLCB1biBjYWNoZSBIVFRQIDEuMCBwb3VycmFpdCBjYWNoZXIgbGEgculwb25zZSwgaW5jbHVhbnQgbGUKICBjb29raWUgZGUgcGVyc2lzdGVuY2UgaW5z6XLpLCBkb25jIHByb3ZvcXVlciBkZXMgY2hhbmdlbWVudHMgZGUgc2VydmV1cnMgcG91cgogIGRlcyBjbGllbnRzIHBhcnRhZ2VhbnQgbGUgbeptZSBjYWNoZS4KLSBsb3JzcXVlIGwnYXBwbGljYXRpb24gZXN0IGJpZW4gY29ubnVlLCBldCBxdWUgbGVzIHBhcnRpZXMgbuljZXNzaXRhbnQgZGUgbGEKICBwZXJzaXN0ZW5jZSBzb250IHN5c3TpbWF0aXF1ZW1lbnQgYWNj6WTpZXMgcGFyIHVuIGZvcm11bGFpcmUgZW4gbW9kZSBQT1NULAogIGlsIGVzdCBwbHVzIGVmZmljYWNlIGVuY29yZSBkZSBjb21iaW5lciBsZSBtb3QgY2zpICJwb3N0b25seSIgYXZlYyAiaW5zZXJ0IgogIGV0ICJpbmRpcmVjdCIsIGNhciBsYSBwYWdlIGQnYWNjdWVpbCByZXN0ZSBjYWNoYWJsZSwgZXQgYydlc3QgbCdhcHBsaWNhdGlvbgogIHF1aSBn6HJlIGxlICdjYWNoZS1jb250cm9sJy4KCjIuMTApIEFzc2lnbmF0aW9uIGQndW4gc2VydmV1ciDgIHVuZSB2YWxldXIgZGUgY29va2llCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRW4gbW9kZSBIVFRQLCBpbCBlc3QgcG9zc2libGUgZCdhc3NvY2llciBkZXMgc2VydmV1cnMg4CBkZXMgdmFsZXVycyBkZQpjb29raWUgcGFyIGxlIHBhcmFt6HRyZSAnc2VydmVyJy4gTGEgc3ludGF4ZSBlc3QgOgoKICAgIHNlcnZlciA8aWRlbnRpZmlhbnQ+IDxhZHJlc3NlX2lwPjo8cG9ydD4gY29va2llIDx2YWxldXI+CgotIDxpZGVudGlmaWFudD4gZXN0IHVuIG5vbSBxdWVsY29ucXVlIGRlIHNlcnZldXIgdXRpbGlz6SBwb3VyIGwnaWRlbnRpZmllciBkYW5zIGxhCiAgY29uZmlndXJhdGlvbiBldCBsZXMgbG9ncy4KLSA8YWRyZXNzZV9pcD46PHBvcnQ+IGVzdCBsZSBjb3VwbGUgYWRyZXNzZS1wb3J0IHN1ciBsZXF1ZWwgbGUgc2VydmV1ciDpY291dGUuCi0gPHZhbGV1cj4gZXN0IGxhIHZhbGV1ciDgIHJlY29ubmHudHJlIG91IHBvc2l0aW9ubmVyIGRhbnMgbGUgY29va2llLgoKRXhlbXBsZSA6IGxlIGNvb2tpZSBTRVJWRVJJRCBwZXV0IGNvbnRlbmlyIHNlcnZlcjAxIG91IHNlcnZlcjAyCi0tLS0tLS0tLQogICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAoJbW9kZSBodHRwCgljb29raWUgU0VSVkVSSUQKCWRpc3BhdGNoIDE5Mi4xNjguMS4xMDA6ODAKCXNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMQoJc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyCgpBdHRlbnRpb24gOiBsYSBzeW50YXhlIGEgY2hhbmfpIGRlcHVpcyBsYSB2ZXJzaW9uIDEuMC4KLS0tLS0tLS0tLS0KCjMpIFLpcGFydGl0ZXVyIGRlIGNoYXJnZSBpbnRlcm5lCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKTGUgcmVsYWlzIHBldXQgZWZmZWN0dWVyIGx1aS1t6m1lIGxhIHLpcGFydGl0aW9uIGRlIGNoYXJnZSBlbnRyZSBsZXMgZGlmZulyZW50cwpzZXJ2ZXVycyBk6WZpbmlzIHBvdXIgdW4gc2VydmljZSBkb25u6SwgZW4gbW9kZSBUQ1AgY29tbWUgZW4gbW9kZSBIVFRQLiBQb3VyCmNlbGEsIG9uIHBy6WNpc2UgbGUgbW90IGNs6SAnYmFsYW5jZScgZGFucyBsYSBk6WZpbml0aW9uIGR1IHNlcnZpY2UsCul2ZW50dWVsbGVtZW50IHN1aXZpIGR1IG5vbSBkJ3VuIGFsZ29yaXRobWUgZGUgculwYXJ0aXRpb24uIEVuIHZlcnNpb24gMS4xLjksCnNldWwgJ3JvdW5kcm9iaW4nIGVzdCBn6XLpLCBldCBjJ2VzdCBhdXNzaSBsYSB2YWxldXIgaW1wbGljaXRlIHBhciBk6WZhdXQuIElsCmVzdCDpdmlkZW50IHF1J2VuIGNhcyBkJ3V0aWxpc2F0aW9uIGR1IHLpcGFydGl0ZXVyIGludGVybmUsIGlsIG5lIGZhdWRyYSBwYXMKc3DpY2lmaWVyIGQnYWRyZXNzZSBkZSBkaXNwYXRjaCwgZXQgcXUnaWwgZmF1ZHJhIGF1IG1vaW5zIHVuIHNlcnZldXIuCgpFeGVtcGxlIDogbeptZSBxdWUgcHLpY+lkZW1tZW50IGVuIHLpcGFydGl0aW9uIGludGVybmUKLS0tLS0tLS0tCgogICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAoJbW9kZSBodHRwCgljb29raWUgU0VSVkVSSUQKCWJhbGFuY2Ugcm91bmRyb2JpbgoJc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxCglzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIKCgozLjEpIFN1cnZlaWxsYW5jZSBkZXMgc2VydmV1cnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCklsIGVzdCBwb3NzaWJsZSBkZSB0ZXN0ZXIgbCfpdGF0IGRlcyBzZXJ2ZXVycyBwYXIg6XRhYmxpc3NlbWVudCBkZSBjb25uZXhpb24gVENQCm91IHBhciBlbnZvaSBkJ3VuZSByZXF16nRlIEhUVFAuIFVuIHNlcnZldXIgaG9ycyBkJ3VzYWdlIG5lIHNlcmEgcGFzIHV0aWxpc+kKZGFucyBsZXByb2Nlc3N1cyBkZSBy6XBhcnRpdGlvbiBkZSBjaGFyZ2UgaW50ZXJuZS4gUG91ciBhY3RpdmVyIGxhIHN1cnZlaWxsYW5jZSwKYWpvdXRlciBsZSBtb3QgY2zpICdjaGVjaycg4CBsYSBmaW4gZGUgbGEgZOljbGFyYXRpb24gZHUgc2VydmV1ci4gSWwgZXN0CnBvc3NpYmxlIGRlIHNw6WNpZmllciBsJ2ludGVydmFsbGUgKGVuIG1pbGxpc2Vjb25kZXMpIHPpcGFyYW50IGRldXggdGVzdHMgZHUKc2VydmV1ciBwYXIgbGUgcGFyYW3odHJlICJpbnRlciIsIGxlIG5vbWJyZSBkJ+ljaGVjcyBhY2NlcHTpcyBwYXIgbGUgcGFyYW3odHJlCiJmYWxsIiwgZXQgbGUgbm9tYnJlIGRlIHN1Y2PocyBhdmFudCByZXByaXNlIHBhciBsZSBwYXJhbeh0cmUgInJpc2UiLiBMZXMKcGFyYW3odHJlcyBub24gcHLpY2lz6XMgcHJlbm5lbnQgbGVzIHZhbGV1cnMgc3VpdmFudGVzIHBhciBk6WZhdXQgOgogLSBpbnRlciA6IDIwMDAKIC0gcmlzZSAgOiAyCiAtIGZhbGwgIDogMwoKTGUgbW9kZSBwYXIgZOlmYXV0IGNvbnNpc3RlIOAg6XRhYmxpciBkZXMgY29ubmV4aW9ucyBUQ1AgdW5pcXVlbWVudC4gRGFucwpjZXJ0YWlucyBjYXMgZGUgcGFubmVzLCBkZXMgc2VydmV1cnMgcGV1dmVudCBjb250aW51ZXIg4CBhY2NlcHRlciBsZXMgY29ubmV4aW9ucwpzYW5zIGxlcyB0cmFpdGVyLiBEZXB1aXMgbGEgdmVyc2lvbiAxLjEuMTYsIGhhcHJveHkgZXN0IGVuIG1lc3VyZSBkJ2Vudm95ZXIgZGVzCnJlcXXqdGVzIEhUVFAgY291cnRlcyBldCB0cuhzIHBldSBjb/t0ZXVzZXMgOiAiT1BUSU9OUyAvIEhUVFAvMS4wIi4gRWxsZXMKcHLpc2VudGVudCBsJ2F2YW50YWdlIGQn6nRyZSBmYWNpbGVtZW50IGV4dHJhY3RpYmxlcyBkZXMgbG9ncywgZXQgZGUgbmUgcGFzCmluZHVpcmUgZCdhY2PocyBhdXggZmljaGllcnMgY/R06SBzZXJ2ZXVyLiBTZXVsZXMgbGVzIHLpcG9uc2VzIDJ4eCBldCAzeHggc29udApjb25zaWTpcullcyB2YWxpZGVzLCBsZXMgYXV0cmVzICh5IGNvbXByaXMgbm9uLXLpcG9uc2VzKSBhYm91dGlzc2VudCDgIHVuIOljaGVjLgpMZSB0ZW1wcyBtYXhpbWFsIGltcGFydGkgcG91ciB1bmUgculwb25zZSBlc3Qg6WdhbCDgIGwnaW50ZXJ2YWxsZSBlbnRyZSBkZXV4CnRlc3RzIChwYXJhbeh0cmUgImludGVyIikuIFBvdXIgYWN0aXZlciBjZSBtb2RlLCBzcOljaWZpZXIgbCdvcHRpb24gImh0dHBjaGsiLgoKRXhlbXBsZXMgOgotLS0tLS0tLS0tCiMgbeptZSBxdWUgcHLpY+lkZW1tZW50IGF2ZWMgc3VydmVpbGxhbmNlIFRDUAogICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAoJbW9kZSBodHRwCgljb29raWUgU0VSVkVSSUQKCWJhbGFuY2Ugcm91bmRyb2JpbgoJc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxIGNoZWNrCglzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sgaW50ZXIgNTAwIHJpc2UgMSBmYWxsIDIKCiMgbeptZSBxdWUgcHLpY+lkZW1tZW50IGF2ZWMgc3VydmVpbGxhbmNlIEhUVFAKICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKCW1vZGUgaHR0cAoJY29va2llIFNFUlZFUklECgliYWxhbmNlIHJvdW5kcm9iaW4KCW9wdGlvbiBodHRwY2hrCglzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEgY2hlY2sKCXNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMiBjaGVjayBpbnRlciA1MDAgcmlzZSAxIGZhbGwgMgoKIyBJbnNlcnRpb24gYXV0b21hdGlxdWUgZGUgY29va2llIGRhbnMgbGEgculwb25zZSBkdSBzZXJ2ZXVyLCBldCBzdXBwcmVzc2lvbgojIGF1dG9tYXRpcXVlIGRhbnMgbGEgcmVxdep0ZSwgdG91dCBlbiBpbmRpcXVhbnQgYXV4IGNhY2hlcyBkZSBuZSBwYXMgZ2FyZGVyCiMgY2UgY29va2llLgogICAgbGlzdGVuIHdlYl9hcHBsIDAuMC4wLjA6ODAKCW1vZGUgaHR0cAoJY29va2llIFNFUlZFUklEIGluc2VydCBub2NhY2hlIGluZGlyZWN0CgliYWxhbmNlIHJvdW5kcm9iaW4KCXNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMSBjaGVjawoJc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyIGNoZWNrCgoKMy4yKSBSZWNvbm5leGlvbiB2ZXJzIHVuIHLpcGFydGl0ZXVyIGVuIGNhcyBkJ+ljaGVjIGRpcmVjdAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkVuIG1vZGUgSFRUUCwgc2kgdW4gc2VydmV1ciBk6WZpbmkgcGFyIHVuIGNvb2tpZSBuZSBy6XBvbmQgcGx1cywgbGVzIGNsaWVudHMKc2Vyb250IGTpZmluaXRpdmVtZW50IGFpZ3VpbGzpcyBkZXNzdXMg4CBjYXVzZSBkZSBsZXVyIGNvb2tpZSwgZXQgZGUgY2UgZmFpdCwKZOlmaW5pdGl2ZW1lbnQgcHJpdulzIGRlIHNlcnZpY2UuIExhIHNw6WNpZmljYXRpb24gZHUgcGFyYW3odHJlICdyZWRpc3BhdGNoJwphdXRvcmlzZSBkYW5zIGNlIGNhcyDgIHJlbnZveWVyIGxlcyBjb25uZXhpb25zIOljaG916WVzIHZlcnMgbGUgculwYXJ0aXRldXIKKGV4dGVybmUgb3UgaW50ZXJuZSkgYWZpbiBkJ2Fzc2lnbmVyIHVuIG5vdXZlYXUgc2VydmV1ciDgIGNlcyBjbGllbnRzLgoKRXhlbXBsZSA6Ci0tLS0tLS0tLQogICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAoJbW9kZSBodHRwCgljb29raWUgU0VSVkVSSUQKCWRpc3BhdGNoIDE5Mi4xNjguMS4xMDA6ODAKCXNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMQoJc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyCglyZWRpc3BhdGNoICMgcmVudm95ZXIgdmVycyBkaXNwYXRjaCBzaSBzZXJ2ZXVyIEhTLgoKCjQpIEZvbmN0aW9ubmFsaXTpcyBhZGRpdGlvbm5lbGxlcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCkQnYXV0cmVzIGZvbmN0aW9ubmFsaXTpcyBkJ3VzYWdlIG1vaW5zIGNvdXJhbnQgc29udCBkaXNwb25pYmxlcy4gSWwgcydhZ2l0CnByaW5jaXBhbGVtZW50IGR1IG1vZGUgdHJhbnNwYXJlbnQsIGRlIGxhIGpvdXJuYWxpc2F0aW9uIGRlcyBjb25uZXhpb25zLCBldCBkZQpsYSBy6eljcml0dXJlIGRlcyBlbnTqdGVzLgoKNC4xKSBGb25jdGlvbm5lbWVudCBlbiBtb2RlIHRyYW5zcGFyZW50Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpFbiBtb2RlIEhUVFAsIGxlIG1vdCBjbOkgJ3RyYW5zcGFyZW50JyBwZXJtZXQgZCdpbnRlcmNlcHRlciBkZXMgc2Vzc2lvbnMgcm91dOllcwrgIHRyYXZlcnMgbGEgbWFjaGluZSBo6WJlcmdlYW50IGxlIHByb3h5LiBEYW5zIGNlIG1vZGUsIG9uIG5lIHBy6WNpc2UgcGFzCmwnYWRyZXNzZSBkZSBy6XBhcnRpdGlvbiAnZGlzcGF0Y2gnLCBjYXIgY2VsbGUtY2kgZXN0IHRpcullIGRlIGwnYWRyZXNzZQpkZXN0aW5hdGlvbiBkZSBsYSBzZXNzaW9uIGTpdG91cm7pZS4gTGUgc3lzdOhtZSBkb2l0IHBlcm1ldHRyZSBkZSByZWRpcmlnZXIgbGVzCnBhcXVldHMgdmVycyB1biBwcm9jZXNzdXMgbG9jYWwuCgpFeGVtcGxlIDoKLS0tLS0tLS0tCiAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjY1MDAwCgltb2RlIGh0dHAKCXRyYW5zcGFyZW50Cgljb29raWUgU0VSVkVSSUQKCXNlcnZlciBzZXJ2ZXIwMSAxOTIuMTY4LjEuMTo4MAoJc2VydmVyIHNlcnZlcjAyIDE5Mi4xNjguMS4yOjgwCgogICAgIyBpcHRhYmxlcyAtdCBuYXQgLUEgUFJFUk9VVElORyAtaSBldGgwIC1wIHRjcCAtZCAxOTIuMTY4LjEuMTAwIFwKICAgICAgLS1kcG9ydCA4MCAtaiBSRURJUkVDVCAtLXRvLXBvcnRzIDY1MDAwCgoKNC4yKSBKb3VybmFsaXNhdGlvbiBkZXMgY29ubmV4aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkxlcyBjb25uZXhpb25zIFRDUCBldCBIVFRQIHBldXZlbnQgZG9ubmVyIGxpZXUg4CB1bmUgam91cm5hbGlzYXRpb24gc29tbWFpcmUgb3UKZOl0YWlsbOllIGluZGlxdWFudCwgcG91ciBjaGFxdWUgY29ubmV4aW9uLCBsYSBkYXRlLCBsJ2hldXJlLCBsJ2FkcmVzc2UgSVAKc291cmNlLCBsZSBzZXJ2ZXVyIGRlc3RpbmF0aW9uLCBsYSBkdXLpZSBkZSBsYSBjb25uZXhpb24sIGxlcyB0ZW1wcyBkZSBy6XBvbnNlLApsYSByZXF16nRlIEhUVFAsIGxlIGNvZGUgZGUgcmV0b3VyLCBsYSBxdWFudGl06SBkZSBkb25u6WVzIHRyYW5zbWlzZS4KVG91cyBsZXMgbWVzc2FnZXMgc29udCBlbnZveelzIGVuIHN5c2xvZyB2ZXJzIHVuIG91IGRldXggc2VydmV1cnMuIExhIHN5bnRheGUKZXN0IGxhIHN1aXZhbnRlIDoKCiAgICBsb2cgPGFkcmVzc2VfaXA+IDxmYWNpbGl0eT4KICAgIGxvZyA8YWRyZXNzZV9pcD4gPGZhY2lsaXR5PgpvdQogICAgbG9nIGdsb2JhbAoKUmVtYXJxdWUgOgotLS0tLS0tLS0tCkxhIHN5bnRheGUgc3DpY2lmaXF1ZSAnbG9nIGdsb2JhbCcgaW5kaXF1ZSBxdWUgbCdvbiBzb3VoYWl0ZSB1dGlsaXNlciBsZXMKcGFyYW3odHJlcyBkZSBqb3VybmFsaXNhdGlvbiBk6WZpbmlzIGRhbnMgbGEgc2VjdGlvbiAnZ2xvYmFsJy4KCkV4ZW1wbGUgOgotLS0tLS0tLS0KICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKCW1vZGUgaHR0cAoJbG9nIDE5Mi4xNjguMi4yMDAgbG9jYWwzCglsb2cgMTkyLjE2OC4yLjIwMSBsb2NhbDQKCkxlcyBjb25uZXhpb25zIHNvbnQgZW52b3npZXMgZW4gbml2ZWF1ICJpbmZvIi4gTGVzIGTpbWFycmFnZXMgZGUgc2VydmljZSBzZXJvbnQKZW52b3npcyBlbiAibm90aWNlIiwgbGVzIHNpZ25hdXggZCdhcnLqdHMgZW4gIndhcm5pbmciIGV0IGxlcyBhcnLqdHMgZOlmaW5pdGlmcwplbiAiYWxlcnQiLiBDZWNpIGVzdCB2YWxhYmxlIGF1c3NpIGJpZW4gcG91ciBsZXMgcHJveGllcyBxdWUgcG91ciBsZXMgc2VydmV1cnMKdGVzdOlzIGF1IHNlaW4gZGVzIHByb3hpZXMuIExlcyBjYXTpZ29yaWVzIHBvc3NpYmxlcyBzb250IDoKCiAgICBrZXJuLCB1c2VyLCBtYWlsLCBkYWVtb24sIGF1dGgsIHN5c2xvZywgbHByLCBuZXdzLAogICAgdXVjcCwgY3JvbiwgYXV0aDIsIGZ0cCwgbnRwLCBhdWRpdCwgYWxlcnQsIGNyb24yLAogICAgbG9jYWwwLCBsb2NhbDEsIGxvY2FsMiwgbG9jYWwzLCBsb2NhbDQsIGxvY2FsNSwgbG9jYWw2LCBsb2NhbDcKClBhciBk6WZhdXQsIGxlcyBpbmZvcm1hdGlvbnMgY29udGVudWVzIGRhbnMgbGVzIGxvZ3Mgc2Ugc2l0dWVudCBhdSBuaXZlYXUgVENQCnVuaXF1ZW1lbnQuIElsIGZhdXQgcHLpY2lzZXIgbCdvcHRpb24gJ2h0dHBsb2cnIHBvdXIgb2J0ZW5pciBsZXMgZOl0YWlscyBkdQpwcm90b2NvbGUgSFRUUC4gRGFucyBsZXMgY2FzIG/5IHVuIG3pY2FuaXNtZSBkZSBzdXJ2ZWlsbGFuY2UgZWZmZWN0dWFudCBkZXMKY29ubmV4aW9ucyBldCBk6WNvbm5leGlvbnMgZnLpcXVlbnRlcywgcG9sbHVlcmFpdCBsZXMgbG9ncywgaWwgc3VmZml0IGQnYWpvdXRlcgpsJ29wdGlvbiAnZG9udGxvZ251bGwnLCBwb3VyIG5lIHBsdXMgb2J0ZW5pciB1bmUgbGlnbmUgZGUgbG9nIHBvdXIgbGVzIHNlc3Npb25zCm4nYXlhbnQgcGFzIGRvbm7pIGxpZXUg4CB1biDpY2hhbmdlIGRlIGRvbm7pZXMgKHJlcXXqdGUgb3Ugculwb25zZSkuCgpFbmZpbiwgbCdvcHRpb24gJ2ZvcndhcmRmb3InIGFqb3V0ZSBsJ2FkcmVzc2UgSVAgZHUgY2xpZW50IGRhbnMgdW4gY2hhbXAKJ1gtRm9yd2FyZGVkLUZvcicgZGUgbGEgcmVxdep0ZSwgY2UgcXVpIHBlcm1ldCDgIHVuIHNlcnZldXIgd2ViIGZpbmFsIGRlCmNvbm5h7nRyZSBsJ2FkcmVzc2UgSVAgZHUgY2xpZW50IGluaXRpYWwuCgpFeGVtcGxlIDoKLS0tLS0tLS0tCiAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCgltb2RlIGh0dHAKCWxvZyAgZ2xvYmFsCglvcHRpb24gaHR0cGxvZwoJb3B0aW9uIGRvbnRsb2dudWxsCglvcHRpb24gZm9yd2FyZGZvcgoKCjQuMykgTW9kaWZpY2F0aW9uIGRlcyBlbnTqdGVzIEhUVFAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpFbiBtb2RlIEhUVFAgdW5pcXVlbWVudCwgaWwgZXN0IHBvc3NpYmxlIGRlIHJlbXBsYWNlciBjZXJ0YWlucyBlbi106nRlcyBkYW5zIGxhCnJlcXXqdGUgZXQvb3UgbGEgculwb25zZSDgIHBhcnRpciBkJ2V4cHJlc3Npb25zIHLpZ3VsaehyZXMuIElsIGVzdCDpZ2FsZW1lbnQKcG9zc2libGUgZGUgYmxvcXVlciBjZXJ0YWluZXMgcmVxdep0ZXMgZW4gZm9uY3Rpb24gZHUgY29udGVudSBkZXMgZW4tdOp0ZXMgb3UgZGUKbGEgcmVxdep0ZS4gVW5lIGxpbWl0YXRpb24gY2VwZW5kYW50IDogbGVzIGVuLXTqdGVzIGZvdXJuaXMgYXUgbWlsaWV1IGRlCmNvbm5leGlvbnMgcGVyc2lzdGVudGVzIChrZWVwLWFsaXZlKSBuZSBzb250IHBhcyB2dXMgY2FyIGlscyBzb250IGNvbnNpZOly6XMKY29tbWUgZmFpc2FudCBwYXJ0aWUgZGVzIOljaGFuZ2VzIGRlIGRvbm7pZXMgY29uc+ljdXRpZnMg4CBsYSBwcmVtaehyZSByZXF16nRlLgpMZXMgZG9ubullcyBuZSBzb250IHBhcyBhZmZlY3TpZXMsIGNlY2kgbmUgcydhcHBsaXF1ZSBxdSdhdXggZW4tdOp0ZXMuIAoKTGEgc3ludGF4ZSBlc3QgOgogICByZXFhZGQgICAgPHN0cmluZz4gICAgICAgICAgICAgcG91ciBham91dGVyIHVuIGVuLXTqdGUgZGFucyBsYSByZXF16nRlCiAgIHJlcXJlcCAgICA8c2VhcmNoPiA8cmVwbGFjZT4gICBwb3VyIG1vZGlmaWVyIGxhIHJlcXXqdGUKICAgcmVxaXJlcCAgIDxzZWFyY2g+IDxyZXBsYWNlPiAgIGlkZW0gc2FucyBkaXN0aW5jdGlvbiBtYWp1c2N1bGVzL21pbnVzY3VsZXMKICAgcmVxZGVsICAgIDxzZWFyY2g+ICAgICAgICAgICAgIHBvdXIgc3VwcHJpbWVyIHVuIGVuLXTqdGUgZGFucyBsYSByZXF16nRlCiAgIHJlcWlkZWwgICA8c2VhcmNoPiAgICAgICAgICAgICBpZGVtIHNhbnMgZGlzdGluY3Rpb24gbWFqdXNjdWxlcy9taW51c2N1bGVzCiAgIHJlcWFsbG93ICA8c2VhcmNoPiAgICAgICAgICAgICBhdXRvcmlzZXIgdW5lIHJlcXXqdGUgcXVpIHZhbGlkZSA8c2VhcmNoPgogICByZXFpYWxsb3cgPHNlYXJjaD4gICAgICAgICAgICAgaWRlbSBzYW5zIGRpc3RpbmN0aW9uIG1hanVzY3VsZXMvbWludXNjdWxlcwogICByZXFkZW55ICAgPHNlYXJjaD4gICAgICAgICAgICAgaW50ZXJkaXJlIHVuZSByZXF16nRlIHF1aSB2YWxpZGUgPHNlYXJjaD4KICAgcmVxaWRlbnkgIDxzZWFyY2g+ICAgICAgICAgICAgIGlkZW0gc2FucyBkaXN0aW5jdGlvbiBtYWp1c2N1bGVzL21pbnVzY3VsZXMKCiAgIHJzcGFkZCAgIDxzdHJpbmc+ICAgICAgICAgICAgIHBvdXIgYWpvdXRlciB1biBlbi106nRlIGRhbnMgbGEgculwb25zZQogICByc3ByZXAgICA8c2VhcmNoPiA8cmVwbGFjZT4gICBwb3VyIG1vZGlmaWVyIGxhIHLpcG9uc2UKICAgcnNwaXJlcCAgPHNlYXJjaD4gPHJlcGxhY2U+ICAgaWRlbSBzYW5zIGRpc3RpbmN0aW9uIG1hanVzY3VsZXMvbWludXNjdWxlcwogICByc3BkZWwgICA8c2VhcmNoPiAgICAgICAgICAgICBwb3VyIHN1cHByaW1lciB1biBlbi106nRlIGRhbnMgbGEgculwb25zZQogICByc3BpZGVsICA8c2VhcmNoPiAgICAgICAgICAgICBpZGVtIHNhbnMgZGlzdGluY3Rpb24gbWFqdXNjdWxlcy9taW51c2N1bGVzCgoKPHNlYXJjaD4gZXN0IHVuZSBleHByZXNzaW9uIHLpZ3VsaehyZSBjb21wYXRpYmxlIEdOVSByZWdleHAgc3VwcG9ydGFudApsZSBncm91cGFnZSBwYXIgcGFyZW50aOhzZXMgKHNhbnMgbGVzICdcJykuIExlcyBlc3BhY2VzIGV0IGF1dHJlcwpz6XBhcmF0ZXVycyBkb2l2ZW50IOp0cmVzIHBy6WPpZOlzIGQndW4gJ1wnIHBvdXIgbmUgcGFzIOp0cmUgY29uZm9uZHVzCmF2ZWMgbGEgZmluIGRlIGxhIGNoYe5uZS4gRGUgcGx1cywgY2VydGFpbnMgY2FyYWN06HJlcyBzcOljaWF1eCBwZXV2ZW50Cup0cmUgcHLpY+lk6XMgZCd1biBiYWNrc2xhY2ggKCdcJykgOgoKICBcdCAgIHBvdXIgdW5lIHRhYnVsYXRpb24KICBcciAgIHBvdXIgdW4gcmV0b3VyIGNoYXJyaW90CiAgXG4gICBwb3VyIHVuIHNhdXQgZGUgbGlnbmUKICBcICAgIHBvdXIgZGlmZulyZW5jaWVyIHVuIGVzcGFjZSBkJ3VuIHPpcGFyYXRldXIKICBcIyAgIHBvdXIgZGlmZulyZW5jaWVyIHVuIGRp6HNlIGQndW4gY29tbWVudGFpcmUKICBcXCAgIHBvdXIgdW4gYmFja3NsYXNoCiAgXHhYWCBwb3VyIHVuIGNhcmFjdOhyZSBzcOljaWZpcXVlIFhYIChjb21tZSBlbiBDKQoKCjxyZXBsYWNlPiBjb250aWVudCBsYSBjaGHubmUgcmVtcGxh52FudCBsYSBwb3J0aW9uIHbpcmlmaellIHBhciBsJ2V4cHJlc3Npb24uCkVsbGUgcGV1dCBpbmNsdXJlIGxlcyBjYXJhY3TocmVzIHNw6WNpYXV4IGNpLWRlc3N1cywgZmFpcmUgculm6XJlbmNlIOAgdW4KZ3JvdXBlIGTpbGltaXTpIHBhciBkZXMgcGFyZW50aOhzZXMgZGFucyBsJ2V4cHJlc3Npb24gculndWxp6HJlLCBwYXIgc2EKcG9zaXRpb24gbnVt6XJhbGUuIExlcyBwb3NpdGlvbnMgdm9udCBkZSAxIOAgOSwgZXQgc29udCBjb2TpZXMgcGFyIHVuICdcJwpzdWl2aSBkdSBjaGlmZnJlIGTpc2ly6S4gSWwgZXN0IOlnYWxlbWVudCBwb3NzaWJsZSBkJ2luc+lyZXIgdW4gY2FyYWN06HJlIG5vbgppbXByaW1hYmxlICh1dGlsZSBwb3VyIGxlIHNhdXQgZGUgbGlnbmUpIGluc2NyaXZhbnQgJ1x4JyBzdWl2aSBkdSBjb2RlCmhleGFk6WNpbWFsIGRlIGNlIGNhcmFjdOhyZSAoY29tbWUgZW4gQykuCgo8c3RyaW5nPiByZXBy6XNlbnRlIHVuZSBjaGHubmUgcXVpIHNlcmEgYWpvdXTpZSBzeXN06W1hdGlxdWVtZW50IGFwcuhzIGxhCmRlcm5p6HJlIGxpZ25lIGQnZW4tdOp0ZS4KClJlbWFycXVlcyA6Ci0tLS0tLS0tLQogIC0gbGEgcHJlbWnocmUgbGlnbmUgZGUgbGEgcmVxdep0ZSBldCBjZWxsZSBkZSBsYSBy6XBvbnNlIHNvbnQgdHJhaXTpZXMgY29tbWUKICAgIGRlcyBlbi106nRlcywgY2UgcXVpIHBlcm1ldCBkZSBy6eljcmlyZSBkZXMgVVJMIGV0IGRlcyBjb2RlcyBkJ2VycmV1ci4KICAtICdyZXFyZXAnIGVzdCBsJ+lxdWl2YWxlbnQgZGUgJ2NsaWV4cCcgZW4gdmVyc2lvbiAxLjAsIGV0ICdyc3ByZXAnIGNlbHVpIGRlCiAgICAnc3J2ZXhwJy4gQ2VzIG5vbXMgc29udCB0b3Vqb3VycyBzdXBwb3J06XMgbWFpcyBk6WNvbnNlaWxs6XMuCiAgLSBwb3VyIGRlcyByYWlzb25zIGRlIHBlcmZvcm1hbmNlcywgbGUgbm9tYnJlIHRvdGFsIGRlIGNhcmFjdOhyZXMgYWpvdXTpcyBzdXIKICAgIHVuZSByZXF16nRlIG91IHVuZSBy6XBvbnNlIGVzdCBsaW1pdOkg4CA0MDk2IGRlcHVpcyBsYSB2ZXJzaW9uIDEuMS41IChjZXR0ZQogICAgbGltaXRlIOl0YWl0IOAgMjU2IGF1cGFyYXZhbnQpLiBDZXR0ZSB2YWxldXIgZXN0IG1vZGlmaWFibGUgZGFucyBsZSBjb2RlLgogICAgUG91ciB1biB1c2FnZSB0ZW1wb3JhaXJlLCBvbiBwZXV0IGdhZ25lciBkZSBsYSBwbGFjZSBlbiBzdXBwcmltYW50IHF1ZWxxdWVzCiAgICBlbnTqdGVzIGludXRpbGVzIGF2YW50IGxlcyBham91dHMuCgpFeGVtcGxlcyA6Ci0tLS0tLS0tCglyZXFyZXAJXihHRVQuKikoLmZyZWUuZnIpKC4qKSBcMS5vbmxpbmUuZnJcMwoJcmVxcmVwCV4oUE9TVC4qKSguZnJlZS5mcikoLiopIFwxLm9ubGluZS5mclwzCglyZXFpcmVwCV5Qcm94eS1Db25uZWN0aW9uOi4qCVByb3h5LUNvbm5lY3Rpb246XCBjbG9zZQoJcnNwaXJlcAleU2VydmVyOi4qIFNlcnZlcjpcIFR1eC0yLjAKCXJzcGlyZXAJXihMb2NhdGlvbjpcICkoW146XSo6Ly9bXi9dKikoLiopIFwxXDMKCXJzcGlkZWwgIF5Db25uZWN0aW9uOgoJcnNwYWRkCUNvbm5lY3Rpb246XCBjbG9zZQoKCjQuNCkgUulwYXJ0aXRpb24gYXZlYyBwZXJzaXN0ZW5jZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkxhIGNvbWJpbmFpc29uIGRlIGwnaW5zZXJ0aW9uIGRlIGNvb2tpZSBhdmVjIGxhIHLpcGFydGl0aW9uIGRlIGNoYXJnZSBpbnRlcm5lCnBlcm1ldCBkJ2Fzc3VyZXIgdW5lIHBlcnNpc3RlbmNlIGRhbnMgbGVzIHNlc3Npb25zIEhUVFAgZCd1bmUgbWFuaehyZQpwcmF0aXF1ZW1lbnQgdHJhbnNwYXJlbnRlIHBvdXIgbGVzIGFwcGxpY2F0aW9ucy4gTGUgcHJpbmNpcGUgZXN0IHNpbXBsZSA6CiAgLSBhdHRyaWJ1ZXIgdW5lIHZhbGV1ciBkJ3VuIGNvb2tpZSDgIGNoYXF1ZSBzZXJ2ZXVyCiAgLSBlZmZlY3R1ZXIgdW5lIHLpcGFydGl0aW9uIGludGVybmUKICAtIGluc+lyZXIgdW4gY29va2llIGRhbnMgbGVzIHLpcG9uc2VzIGlzc3VlcyBkJ3VuZSBy6XBhcnRpdGlvbiB1bmlxdWVtZW50LAogICAgZXQgZmFpcmUgZW4gc29ydGUgcXVlIGRlcyBjYWNoZXMgbmUgbeltb3Jpc2VudCBwYXMgY2UgY29va2llLgogIC0gY2FjaGVyIGNlIGNvb2tpZSDgIGwnYXBwbGljYXRpb24gbG9ycyBkZXMgcmVxdep0ZXMgdWx06XJpZXVyZXMuCgpFeGVtcGxlIDoKLS0tLS0tLQogICAgbGlzdGVuIGFwcGxpY2F0aW9uIDAuMC4wLjA6ODAKCW1vZGUgaHR0cAoJY29va2llIFNFUlZFUklEIGluc2VydCBub2NhY2hlIGluZGlyZWN0CgliYWxhbmNlIHJvdW5kcm9iaW4KCXNlcnZlciAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEgY2hlY2sKCXNlcnZlciAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sKCj09PT09PT09PT09PT09PT09PT09PT09CnwgUGFyYW3pdHJhZ2Ugc3lzdOhtZSB8Cj09PT09PT09PT09PT09PT09PT09PT09CgpTb3VzIExpbnV4IDIuNAo9PT09PT09PT09PT09PQoKLS0gY3V0IGhlcmUgLS0KIyEvYmluL3NoCiMgc2V0IHRoaXMgdG8gYWJvdXQgMjU2LzRNICgxNjM4NCBmb3IgMjU2TSBtYWNoaW5lKQpNQVhGSUxFUz0xNjM4NAplY2hvICRNQVhGSUxFUyA+IC9wcm9jL3N5cy9mcy9maWxlLW1heAp1bGltaXQgLW4gJE1BWEZJTEVTCgppZiBbIC1lIC9wcm9jL3N5cy9uZXQvaXB2NC9pcF9jb25udHJhY2tfbWF4IF07IHRoZW4KCWVjaG8gNjU1MzYgPiAvcHJvYy9zeXMvbmV0L2lwdjQvaXBfY29ubnRyYWNrX21heApmaQoKaWYgWyAtZSAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF90aW1lb3V0X2Zpbl93YWl0IF07IHRoZW4KCSMgMzAgc2Vjb25kcyBmb3IgZmluLCAxNSBmb3IgdGltZSB3YWl0CgllY2hvIDMwMDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF90aW1lb3V0X2Zpbl93YWl0CgllY2hvIDE1MDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF90aW1lb3V0X3RpbWVfd2FpdAoJZWNobyAwID4gL3Byb2Mvc3lzL25ldC9pcHY0L25ldGZpbHRlci9pcF9jdF90Y3BfbG9nX2ludmFsaWRfc2NhbGUKCWVjaG8gMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC9uZXRmaWx0ZXIvaXBfY3RfdGNwX2xvZ19vdXRfb2Zfd2luZG93CmZpCgplY2hvIDEwMjQgNjA5OTkgPiAvcHJvYy9zeXMvbmV0L2lwdjQvaXBfbG9jYWxfcG9ydF9yYW5nZQplY2hvIDMwID4gL3Byb2Mvc3lzL25ldC9pcHY0L3RjcF9maW5fdGltZW91dAplY2hvIDQwOTYgPiAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX21heF9zeW5fYmFja2xvZwplY2hvIDI2MjE0NCA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3BfbWF4X3R3X2J1Y2tldHMKZWNobyAyNjIxNDQgPiAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX21heF9vcnBoYW5zCmVjaG8gMzAwID4gL3Byb2Mvc3lzL25ldC9pcHY0L3RjcF9rZWVwYWxpdmVfdGltZQplY2hvIDEgPiAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX3R3X3JlY3ljbGUKZWNobyAwID4gL3Byb2Mvc3lzL25ldC9pcHY0L3RjcF90aW1lc3RhbXBzCmVjaG8gMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3BfZWNuCmVjaG8gMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3Bfc2FjawplY2hvIDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX2RzYWNrCgojIGF1dG8tdHVuZWQgb24gMi40CiNlY2hvIDI2MjE0MyA+IC9wcm9jL3N5cy9uZXQvY29yZS9ybWVtX21heAojZWNobyAyNjIxNDMgPiAvcHJvYy9zeXMvbmV0L2NvcmUvcm1lbV9kZWZhdWx0CgplY2hvIDE2Mzg0IDY1NTM2IDUyNDI4OCA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3Bfcm1lbQplY2hvIDE2Mzg0IDM0OTUyMCA2OTkwNDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX3dtZW0KCi0tIGN1dCBoZXJlIC0tCgotLSBmaW4gLS0K