Mycorrhizal fungi: all you need to know about the Internet of Plants
Lawrence London <[email protected]> Mon, 23 Dec 2019 07:39:19 -0500
| Newsgroups | gmane.politics.activism.permaculture |
|---|---|
| Message-ID | <CA+j2Q+A55UsjV83ewd8Ey58fzfKifRy3G857URJS-_6ahNB4fA@mail.gmail.com> |
TXljb3JyaGl6YWwgZnVuZ2k6IGFsbCB5b3UgbmVlZCB0byBrbm93IGFib3V0IHRoZSBJbnRlcm5l dCBvZiBQbGFudHMKaHR0cHM6Ly9tZWRpdW0uY29tL0BkYXJpby5jb3J0ZXNlL3RoZS1pbnRlcm5l dC1vZi1wbGFudHMtbXljb3JyaGl6YWwtZnVuZ2ktc29ydGluZy1mYWN0cy1mcm9tLW15dGhzLTdh YjVjN2I3M2JmMQoKTXljb3JyaGl6YWwgZnVuZ2k6IGFsbCB5b3UgbmVlZCB0byBrbm93IGFib3V0 IHRoZSBJbnRlcm5ldCBvZiBQbGFudHMKU3ltYmlvdGljIGZ1bmdpIGhhdmUgYSBrZXkgcm9sZSBp biBzb2lsIGVjb3N5c3RlbXMgYW5kIGlub2N1bGF0aW5nIHBsYW50cwp3aXRoIHRoZW0gaGFzIGJl ZW4gY2xhaW1lZCB0byBiZW5lZml0IHRoZWlyIGdyb3d0aC4gQnV0IHNjaWVudGlmaWMgZXZpZGVu Y2UKc2hvd3MgYSB2ZXJ5IGNvbXBsZXggcGljdHVyZTsgd2hpY2ggbWlnaHQgc3VycHJpc2UgeW91 LgpbaW1hZ2U6IERhcmlvIENvcnRlc2VdCjxodHRwczovL21lZGl1bS5jb20vQGRhcmlvLmNvcnRl c2U/c291cmNlPXBvc3RfcGFnZS0tLS0tN2FiNWM3YjczYmYxLS0tLS0tLS0tLS0tLS0tLS0tLS0t LT4KRGFyaW8gQ29ydGVzZQo8aHR0cHM6Ly9tZWRpdW0uY29tL0BkYXJpby5jb3J0ZXNlP3NvdXJj ZT1wb3N0X3BhZ2UtLS0tLTdhYjVjN2I3M2JmMS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+CkRlYyAy MQo8aHR0cHM6Ly9tZWRpdW0uY29tL0BkYXJpby5jb3J0ZXNlL3RoZS1pbnRlcm5ldC1vZi1wbGFu dHMtbXljb3JyaGl6YWwtZnVuZ2ktc29ydGluZy1mYWN0cy1mcm9tLW15dGhzLTdhYjVjN2I3M2Jm MT9zb3VyY2U9cG9zdF9wYWdlLS0tLS03YWI1YzdiNzNiZjEtLS0tLS0tLS0tLS0tLS0tLS0tLS0t PgrCtyAxNSBtaW4gcmVhZAo8aHR0cHM6Ly9tZWRpdW0uY29tL3AvN2FiNWM3YjczYmYxL3NoYXJl L3R3aXR0ZXI/c291cmNlPXBvc3RfYWN0aW9uc19oZWFkZXItLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0+CjxodHRwczovL21lZGl1bS5jb20vcC83YWI1YzdiNzNiZjEvc2hhcmUvZmFjZWJvb2s/ c291cmNlPXBvc3RfYWN0aW9uc19oZWFkZXItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+Cjxo dHRwczovL21lZGl1bS5jb20vbS9zaWduaW4/b3BlcmF0aW9uPXJlZ2lzdGVyJnJlZGlyZWN0PWh0 dHBzJTNBJTJGJTJGbWVkaXVtLmNvbSUyRiU0MGRhcmlvLmNvcnRlc2UlMkZ0aGUtaW50ZXJuZXQt b2YtcGxhbnRzLW15Y29ycmhpemFsLWZ1bmdpLXNvcnRpbmctZmFjdHMtZnJvbS1teXRocy03YWI1 YzdiNzNiZjEmc291cmNlPXBvc3RfYWN0aW9uc19oZWFkZXItLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLWJvb2ttYXJrX3NpZGViYXItPgoKSWYgeW91IGFyZSBhIGdhcmRlbmVyLCBuZXdzIG1pZ2h0 IGhhdmUgcmVhY2hlZCB5b3VyIGVhciBhYm91dCBhIHN1cHBvc2VkbHkKYmVuZWZpY2lhbCBjYXRl Z29yeSBvZiBmdW5naSBjYWxsZWQgKm15Y29ycmhpemFsKi4gSWYgeW91IGFyZSBhbiBlY29sb2dp c3QsCmNoYW5jZXMgYXJlIHlvdSBjb25zaWRlciAqbXljb3JyaGl6YWUqIG9uZSBvZiB0aGUgbW9z dCBzdWNjZXNzZnVsCnBhcnRuZXJzaGlwcyBvZiBhbGwgdGltZS4gSWYgeW91IGFyZSBhIHBsYW50 IHNjaWVudGlzdCwgeW91IGtub3cgYSBncmVhdApkZWFsIGFib3V0IHRoZW0sIGJ1dCBwZXJoYXBz IHlvdSBhcmUgcGVycGxleGVkIGFib3V0IHRoZSBzZW5zYXRpb25hbCBjbGFpbXMKdGhhdCBob21l IGdhcmRlbmVycywgc29tZSByZWdlbmVyYXRpdmUgZmFybWVycyBhbmQgbW9zdCBzdXBwbGllcnMg aGF2ZSBiZWVuCm1ha2luZyBpbiB0aGUgbGFzdCB0ZW4geWVhcnMuIEFsdGhvdWdoIHRoZXJlIGlz IGEgd2lkZSBjb25zZW5zdXMgYWJvdXQgdGhlCmV4dHJlbWUgaW1wb3J0YW5jZSBvZiBoZWFsdGh5 IG15Y29ycmhpemFsIHBvcHVsYXRpb25zIGluIHRocml2aW5nCmVjb3N5c3RlbXMgYW5kIHByb2R1 Y3RpdmUgc29pbHMsIHRoZWlyIGVmZmVjdHMgYXMgcGxhbnQgZ3Jvd3RoIHN0aW11bGFudHMKY29u c3RpdHV0ZSBhIGNvbnRyb3ZlcnNpYWwgaXNzdWUsIHRvIHNheSB0aGUgbGVhc3QuCgpVbmZvcnR1 bmF0ZWx5LCB3ZSBhcmUgb2Z0ZW4gZXhwb3NlZCBvbmx5IHRvIHBhcnQgb2YgdGhlIHNjaWVudGlm aWMgZXZpZGVuY2UKYXZhaWxhYmxlLiBJbiB0aGlzIGFydGljbGUsIEkgd2lsbCB0cnkgdG8gcHJv dmlkZSBhICpjb21wcmVoZW5zaXZlKiwgKmZ1bGx5CnJlZmVyZW5jZWQqIHlldCAqbm9uLXRlY2hu aWNhbCogcmV2aWV3IG9mOgoKICAgMS4gd2hhdCBteWNvcnJoaXphbCBmdW5naSBhcmUgYW5kIGhv dyB0aGV5IHdvcms7CiAgIDIuIGhvdyB0aGV5IGludGVyYWN0IHdpdGggcGxhbnRzOiB3aGVuIGFu ZCBob3cgdGhleSBhcmUgYmVuZWZpY2lhbCBvcgogICBkZXRyaW1lbnRhbCB0byB0aGVtOwogICAz LiBob3cgbXljb3JyaGl6YWwgZnVuZ2kgY2FuIGJlIGVmZmVjdGl2ZWx5IGVtcGxveWVkIHdpdGhv dXQgaW5jdXJyaW5nCiAgIHJpc2tzIHRvIHBsYW50IGhlYWx0aC4KClRoZSBzZWN0aW9ucyB0aGF0 IGZvbGxvdyBhcmUgbnVtYmVyZWQgYWNjb3JkaW5nIHRvIHRoZSBsaXN0IGFib3ZlLCBzbyB0aGF0 CnlvdSBtYXkganVtcCBzdHJhaWdodCB0byBhbnkgb25lIG9mIHRoZW0sIHNob3VsZCB5b3Ugd2lz aCB0by4KMS4gV2hhdCBhcmUgbXljb3JyaGl6YWU/CgpUaGUgdGVybSAqbXljb3JyaGl6YSogKHBs dXJhbCAqbXljb3JyaGl6YWUqKSByZWZlcnMgdG8gdGhlIGNsb3NlIGFuZApsb25nLXRlcm0gKG9y ICpzeW1iaW90aWMqKSBhc3NvY2lhdGlvbiBiZXR3ZWVuIGEgcGxhbnQgYW5kIGEgZnVuZ3VzIHBy ZXNlbnQKaW4gdGhlIHBsYW504oCZcyByb290IHpvbmUgKHRoZSAqcmhpem9zcGhlcmUqKS4gU2Np ZW50aXN0cyBoYXZlIGtub3duIGFib3V0CnRoZXNlIGZhc2NpbmF0aW5nIHJlbGF0aW9uc2hpcHMg Zm9yIG1vcmUgdGhhbiBhIGNlbnR1cnnCuSwgd2hpbGUgYWdyb25vbWlzdHMKYW5kIGdhcmRlbmVy cyBoYXZlIHN0YXJ0ZWQgdG8gYmVjb21lIGFjcXVhaW50ZWQgd2l0aCBteWNvcnJoaXphbCBmdW5n aSBvbmx5CmluIHRoZSBsYXN0IGZldyBkZWNhZGVzLCB0aGFua3MgdG8gYm9va3Mgc3VjaCBhcyBU ZWFtaW5nIHdpdGgKbWljcm9iZXMsIE15Y29ycmhpemFsClBsYW5ldCA8aHR0cHM6Ly93d3cuZ29v ZHJlYWRzLmNvbS9lbi9ib29rL3Nob3cvMzI1NjQ5NTQ+YW5kIE15Y2VsaXVtIFJ1bm5pbmcKPGh0 dHBzOi8vd3d3Lmdvb2RyZWFkcy5jb20vYm9vay9zaG93LzIzOTM5NS5NeWNlbGl1bV9SdW5uaW5n Pi4KCk5lYXJseSBhbGwgcGxhbnRzIGluIHRoZSB3aWxkIHJlbHksIGZvciB0aGVpciBudXRyaXRp b24sIG9uIHRoZSBleGNoYW5nZSBvZgpudXRyaWVudHMgYW5kIG90aGVyIGJlbmVmaXRzIHdpdGgg dGhlIGNvbXBsZXggbmV0d29yayBvZiBzb2lsCm1pY3Jvb3JnYW5pc21zIHRoYXQgaXMga25vd24g YXMgdGhlIHNvaWwgbWljcm9iaW9tZSBvciB0aGUgKnNvaWwgZm9vZCB3ZWIqCjxodHRwczovL2Vu Lndpa2lwZWRpYS5vcmcvd2lraS9Tb2lsX2Zvb2Rfd2ViPsKyLiBXaXRoaW4gdGhpcyByaWNoCnVu ZGVyZ3JvdW5kIGVjb3N5c3RlbSBtYWRlIHVwIG9mIHdvcm1zLCBpbnNlY3RzLCBiYWN0ZXJpYSwg YWxnYWUsIGFuZCBvdGhlcgptaWNyb3Njb3BpYyBjcmVhdHVyZXMsIGZ1bmdpIHBsYXkgdHdvIGNy dWNpYWwgcm9sZXM6IHNvbWUgb2YgdGhlbSAoCipzYXByb3BoeXRpYyopIGFyZSB1bmlxdWUgaW4g dGhlaXIgYWJpbGl0eSB0byBkZWNvbXBvc2Ugd29vZHkgbWF0ZXJpYWwKKHJpY2ggaW4gKmxpZ25p biopLCB3aGlsZSBvdGhlcnMgKihteWNvcnJoaXphbCkgYXJlIHRoZSBmb29kIHRyYW5zcG9ydGF0 aW9uCnN5c3RlbSBvZiB0aGUgc29pbCouIFRoZSBib2R5IG9mIGEgZnVuZ3VzIGlzIGNvbXBvc2Vk IGJ5IGZpbmUgYW5kCmludHJpY2F0ZWx5IGJyYW5jaGVkIHRocmVhZHMgY2FsbGVkICpoeXBoYWUq LCB3aGljaCBmb3JtIGEgZGVuc2UgbmV0d29yawpyZWZlcnJlZCB0byBhcyAqbXljZWxpdW0qLiBJ biBzZWFzb25hbCBjeWNsZXMsIHRoZSBteWNlbGl1bSBnaXZlcyByaXNlIHRvCnRoZSBtb3JlIHJl Y29nbmlzYWJsZSBtdXNocm9vbXM7IHRoZXNlIGFyZSBmcnVpdGluZyBzdHJ1Y3R1cmVzIGFuZCBj b250YWluCnRoZSBzcG9yZXMgdGhhdCBhbGxvdyBhIGZ1bmd1cyB0byBzcHJlYWQgZmFyIGFuZCB3 aWRlIGFuZCBwb3B1bGF0ZSBuZXcKZ3JvdW5kLgoKQSBzaW5nbGUgZnVuZ3Vz4oCZIG15Y2VsaXVt IGNhbiBleHRlbmQgb3ZlciBhIHN1cmZhY2Ugb2YgNCBzcXVhcmUgbWlsZXMsIGFzCmluIHRoZSBj YXNlIG9mIHRoZSBsYXJnZXN0IGxpdmluZyBiZWluZyBvbiBlYXJ0aCDigJQgYSBzcGVjaW1lbiBv ZiAqQXJtaWxsYXJpYQpvc3RveWFlKiBsaXZpbmcgaW4gTWFsaGV1ciBOYXRpb25hbCBGb3Jlc3Qs IE9yZWdvbgo8aHR0cDovL3d3dy5iYmMuY28udWsvZWFydGgvc3RvcnkvMjAxNDExMTQtdGhlLWJp Z2dlc3Qtb3JnYW5pc20taW4tdGhlLXdvcmxkPi4KVGhpcyBnaXZlcyBmdW5naSB0aGUgYWJpbGl0 eSB0byBwb3B1bGF0ZSBhIHZhc3Qgdm9sdW1lIG9mIHNvaWwsIHNjb3V0aW5nCmZvciBudXRyaWVu dHMgYW5kIHdhdGVyLCBhbmQgdHJhbnNwb3J0aW5nIHRoZW0gb3ZlciBsYXJnZSBkaXN0YW5jZXMu IE9uIHRoZQpvdGhlciBoYW5kLCBtb3N0IHBsYW50cyBjYW7igJl0IGV4dGVuZCB0aGVpciByb290 cyBhbnl3aGVyZSBhcyBmYXIsIGFuZCB0aHVzCnN0YXJ0ZWQgdG8gbWFrZSBhZHZhbnRhZ2Ugb2Yg dGhlaXIgbmVpZ2hib3VyaW5nIGZ1bmdhbCBuZXR3b3JrcyBhcyBlYXJseSBhcwo0MDAgbWlsbGlv biB5ZWFycyBhZ2/CsyDigJQgYXMgc29vbiBhcyB0aGV5IHN0YXJ0ZWQgY29sb25pc2luZyBsYW5k LiBJbiBpdHMKb3duIHJvb3Qgem9uZSwgKmEgcGxhbnQgY2FuIHRyYWRlIHRoZSBzdXJwbHVzIG9m IHN1Z2FycyBwcm9kdWNlZCBieQpwaG90b3N5bnRoZXNpcyBpbiBleGNoYW5nZSBmb3IgaW5jcmVh c2VkIGFjY2VzcyB0byB3YXRlciwgbnV0cmllbnRzIGFuZApwcm90ZWN0aW9uIGZyb20gcGF0aG9n ZW5zKuKBtC4gSW4gc29tZSBjYXNlcywgcGxhbnRzIHdoaWNoIGFyZSBsb2NhdGVkIGZhcgphd2F5 IGZyb20gZWFjaCBvdGhlciBjYW4gZXhjaGFuZ2UgbnV0cmllbnRzIHZpYSB0aGUgZnVuZ2FsIG5l dHdvcmsgdGhhdApjb25uZWN0cyB0aGVtIHVuZGVyZ3JvdW5kLiBJbiB0ZW1wZXJhdGUgZm9yZXN0 cywgeW91bmcgdHJlZXMgYmVuZWZpdCBmcm9tCnRoZSBhYmlsaXR5IG9mIG9sZGVyIChhbmQgdGFs bGVyKSBvbmVzIHRvIHJlYWNoIHVwIHRvIHN1bmxpZ2h0OyBzbyBtdWNoIHNvCnRoYXQgdXAgdG8g NDAlIG9mIHRoZWlyIGNhcmJvbiBjYW4gY29tZSBmcm9tIHRoZWlyIGdyb3duLXVwIG5laWdoYm91 cnPigJkKcGhvdG9zeW50aGVzaXPigbUgdmlhIHRoZSBmdW5nYWwgKndvb2Qgd2lkZSB3ZWIqLgpU aGUgd29vZCB3aWRlIHdlYiwgbXljb3JyaGl6YWwgZnVuZ2kgaW4gdGVtcGVyYXRlIGZvcmVzdHMg YWxsb3cgdGhlCmV4Y2hhbmdlIG9mIGNhcmJvbiBhbW9uZyB0cmVlcy4gRnJvbTogTmV3IFplbGFu ZCBHZW9ncmFwaGljcwo8aHR0cHM6Ly93d3cubnpnZW8uY29tL3N0b3JpZXMvdGhlLXdvb2Qtd2lk ZS13ZWIvPi5BcmUgYWxsIG15Y29ycmhpemFlIHRoZQpzYW1lPwoKQnV0IG5vdCBhbGwgbXljb3Jy aGl6YWwgZnVuZ2kgYXJlIHRoZSBzYW1lLiBGaXJzdCBvZiBhbGwsIGZ1bmdpIGNhbgppbnRlcmFj dCB3aXRoIHBsYW50cyBlaXRoZXIgZnJvbSB3aXRoaW4gb3Igd2l0aG91dCB0aGVpciBjZWxsIHdh bGxzLiBBbW9uZwp0aGUgb25lcyB0aGF0IGNvbG9uaXNlIHRoZSBjZWxscyBvZiB0aGUgaG9zdCBw bGFudCBhbmQgZnJvbSB0aGVyZSBleHRlbmQKaW50byB0aGUgc29pbCwgdGhlIG1vc3QgbnVtZXJv dXMgYXJlICphcmJ1c2N1bGFyIG15Y29ycmhpemFsIChBTUYpKiosICp3aGVyZWFzCiplY3RvbXlj b3JyaGl6YWwgKEVNRikgKmdyb3cgb24gdGhlIHJvb3Rz4oCZIHN1cmZhY2UgYW5kIGZvcm0gd2Vi cyBhcm91bmQKdGhlbS4KRU1GIGFyZSB0aGUgZmF2b3VyaXRlIGhlbHBlcnMgb2YgY29uaWZlcnMg YW5kIGRlY2lkdW91cyB0cmVlcywgd2l0aCB3aGljaAp0aGV5IHNvbWV0aW1lcyBmb3JtIGV4Y2x1 c2l2ZSBvbmUtdG8tb25lIHJlbGF0aW9uc2hpcHMsIHN1Y2ggdGhhdCBvbmx5IGEKc3BlY2lmaWMg c3BlY2llcyBvZiBmdW5ndXMgcGFpcnMgdXAgd2l0aCBhIGdpdmVuIHNwZWNpZXMgb2YgdHJlZeKB ti4KCipBTUYgYXJlIGZvdW5kIGluIDg1JSBvZiBhbGwgcGxhbnQgZmFtaWxpZXMgYW5kIGFyZSBo b3N0ZWQgYnkgbW9zdAphZ3JpY3VsdHVyYWwgY3JvcHMgYXMgd2VsbCBhcyBncmFzc2VzLCBzaHJ1 YnMsIGFuZCBzb21lIHRyZWVzKuKBti4gRm9yIHRoaXMKcmVhc29uLCBBTUYgaGF2ZSBiZWVuIHVz ZWQgaW4gYWdyaWN1bHR1cmUgYW5kIGhvcnRpY3VsdHVyZSBhcyBhCmJpb2ZlcnRpbGl6ZXIsIGFu ZCBhcmUgYXZhaWxhYmxlIGNvbW1lcmNpYWxseSB0byB1c2UgaW4gaG9tZSBnYXJkZW5zLiBNb3Jl CnRoYW4gMTUwIHNwZWNpZXMgb2YgQU1GIGFyZSBrbm93biwgYW5kIHRoZXkgY2FuIGFzc29jaWF0 ZSB3aXRoIG92ZXIgMjAwLDAwMApwbGFudCBzcGVjaWVz4oG3LiBBTUYgbGl2ZSBvbmx5IGZvciBh IHNob3J0IHBlcmlvZCBvZiB0aW1lICg4LjUgZGF5cyBvbgphdmVyYWdl4oG4KSwgYWN0aW5nIGFz IHBlcmZlY3QgZ3Vlc3RzOiB0aGV5IGRvIG5vdCBtaXggdGhlaXIgY2VsbCBjb250ZW50cyAoCipw cm90b3BsYXNtKikgd2l0aCB0aGUgaG9zdOKAmXMgb25lcywgYnV0IGZvcm0gZWl0aGVyIGJhbGxv b24tbGlrZSBvcgp0cmVlLXNoYXBlZCBzdHJ1Y3R1cmVzIChhcmJ1c2N1bGVzIOKAlCBmcm9tIHRo ZSBsYXRpbiAqYXJib3IqLCDigJx0cmVl4oCdKQpsb2NhdGVkIHdpdGhpbiB0aGUgaG9zdCBjZWxs IG1lbWJyYW5lLCB3aGVyZSBudXRyaWVudHMgYXJlIHN0b3JlZCBhbmQgdGhlCmV4Y2hhbmdlIHRh a2VzIHBsYWNl4oG3LgpMZWZ0OiBNeWNlbGl1bSBpbiBhIHRlbXBlcmF0ZSBmb3Jlc3QsIGZyb20g TmF0aW9uYWxmb3Jlc3RzLm9yZwo8aHR0cDovL25hdGlvbmFsZm9yZXN0cy5vcmc+LiBSaWdodDog RWN0b215Y2hvcnJpemFlIGluIFBpbnVzIHN5bHZlc3RyaXMKVGhlIGNoYWxsZW5naW5nIGxpZmUg b2YgYW4gYXJidXNjdWxhciBteWNvcnJoaXphCgpUaGUgbGlmZSBzcGFuIG9mIEFNRiBpcyBzdHJv bmdseSBjb3JyZWxhdGVkIHdpdGggdGhlaXIgYWJpbGl0eSB0byBkZWxpdmVyCm51dHJpZW50cyB0 byB0aGUgaG9zdCBwbGFudCwgYW5kIGlzIHRoZXJlZm9yZSByZWd1bGF0ZWQgdGhlIHBsYW504oCZ cwpkZW1hbmTigbkuIFBsYW50cyBjYW4gYWxzbyByZW1vdmUgaW5lZmZpY2llbnQgcGFydG5lcnMs IHRodXMgZW5jb3VyYWdpbmcKYW5vdGhlciBvbmUgdG8gY29tZSBmb3J3YXJkwrnigbAuIEJlZm9y ZSBkeWluZywgYXJidXNjdWxhciBteWNob3JyaXphbApyZXByb2R1Y2UgYXNleHVhbGx5IGJ5IG1l YW5zIG9mIHNwb3Jlcywgd2hpY2ggY2FuIGdlcm1pbmF0ZSBldmVuIHdpdGhvdXQKdGhlIHByZXNl bmNlIG9mIGEgaG9zdCwgYWx0aG91Z2ggdGhlIHNwZWVkIGF0IHdoaWNoIHRoZWlyIGh5cGFlIGNh biBzcHJlYWQKc2lnbmlmaWNhbnRseSBpbmNyZWFzZXMgaW4gdGhlIHByZXNlbmNlIG9mIHJvb3Qg ZXh1ZGF0ZXPCucK5LiBTb21lCnJlc2VhcmNoZXJzIGhhdmUgc3VnZ2VzdGVkIGFyYnVzY3VsYXIg bXljb3JyaGl6YWwgbWlnaHQgaGF2ZSBiZWVuIGFzZXh1YWwKZm9yIG1pbGxpb25zIG9mIHllYXJz wrnCsi4gT25jZSBnZXJtaW5hdGVkLCB0aGUgc3BvcmUgaW5vY3VsYXRlcyB0aGUgbmVhcmVzdApo b3N0IGFuZCBhIG5ldyBsaWZlIGN5Y2xlIGJlZ2lucy4gSW4gb3JkZXIsIHRvIHN1cnZpdmUsIGhv d2V2ZXIgaG9zdCBwbGFudHMKbXVzdCBiZSBmb3VuZCBieSB0aGUgbmV3Ym9ybiBmdW5ndXMsIG9y IGVsc2UgaXQgd2lsbCBzdGFydmUgdG8gZGVhdGguCgpBcyB5b3UgbWlnaHQgaGF2ZSBhbHJlYWR5 IGd1ZXNzZWQsICpteWNob3JyaXphbCBmdW5naSBhcmUgdmVyeSBkZWxpY2F0ZQpvcmdhbmlzbXMq LiBBZnRlciBhbGwsIG1hbnkgb2YgdXMgaGF2ZSBleHBlcmllbmNlZCBob3cgZWFzeSBpdCBjYW4g YmUgdG8KcGh5c2ljYWxseSByZW1vdmUgdGhlIGh5cGhhZSBvZiBtb2xkcy4gQW55IHNpZ25pZmlj YW50IHNvaWwgZGlzdHVyYmFuY2UsCnN1Y2ggYXMgdGlsbGFnZSwgZGlnZ2luZyBhbmQgY29tcGFj dGlvbiBoYXZlIGJlZW4gc2hvd24gdG8gcmVkdWNlIEFNCmZ1bmdp4oCZcyBkaXZlcnNpdHkgYW5k IGxpZmVzcGFuwrnCsy4KT3RoZXIgcHJhY3RpY2VzLCBjb21tb24gaW4gY29udmVudGlvbmFsIGFn cmljdWx0dXJlLCBhbHNvIGhhdmUgYQpkZXRyaW1lbnRhbCBpbXBhY3Qgb24gbXljb3JyaGl6YWwg bmV0d29ya3MuIEZvciBpc3RhbmNlLCB0aGUgYXBwbGljYXRpb24gb2YKYW55IGZ1bmdpY2lkZSBh cyBhIGRpc2Vhc2UgY29udHJvbCBtZWFzdXJlIGFsc28ga2lsbHMgQU1GwrnigbQsIGFzIHdlIG1p Z2h0CmV4cGVjdC4gRnVydGhlcm1vcmUsIGxvdyBwSCBjb25kaXRpb25zIChhY2lkIHNvaWwpIG9m dGVuIGluZHVjZWQgYnkKY2hlbWljYWwgZmVydGlsaXNlciB1c2XCueKBtS4KCk1vbm9jdWx0dXJl cyBhbHNvIGhhdmUgYSBuZWdhdGl2ZSBpbXBhY3Qgb24gYXJidXNjdWxhciBwb3B1bGF0aW9uczsg aW4KcGFydGljdWxhciwgKmJyYXNzaWNhY2FlKiAocGxhbnRzIGJlbG9uZ2luZyB0byBjYWJiYWdl IGZhbWlseSkgZG8gbm90IGZvcm0KYXNzb2NpYXRpb25zIHdpdGggQU1GwrnigbYsIGFuZCB0aGVy ZWZvcmUgY2FuIGFjdCBhcyBhIGJpb2xvZ2ljYWwgZ2FwLCB0aHVzCnNsb3dpbmcgZG93biB0aGVp ciBzcHJlYWQgYWNyb3NzIGxhcmdlciBhcmVhcy4gQ29udmVyc2VseSwgYSBsYXJnZSB2YXJpZXR5 Cm9mIGNyb3BzIGRvZXMgZW5jb3VyYWdlIHRoZSBlc3RhYmxpc2htZW50IG9mIHN5bWJpb3RpYyBy ZWxhdGlvbnNoaXBzLApiZWNhdXNlIOKAnHRoZXJlIG1heSBiZSBkaWZmZXJlbnQgc3RyYWlucyBv ZiBteWNvcnJoaXphZSB0aGF0IHdpbGwgbGlrZQpzb21ldGhpbmcgYmV0dGVyIHRoYW4gYW5vdGhl ciBvbmXigJ0g4oCUIGFzIHN1Z2dlc3RlZCBieSBKLkMuIENhaGlsbCBvZiB0aGUKVW5pdmVyc2l0 eSBvZiBBbGJlcnRhCjxodHRwczovL21lZGl1bS5jb20vQGluZm9fMzEyMTEvd2hhdC1mYXJtZXJz LW5lZWQtdG8ta25vdy1hYm91dC1teWNvcnJoaXphZS0xZWY5ZGU0N2EzNmI+LgpDYWhpbGwgYWxz byBwb2ludHMgb3V0IGhvdyBleHRyZW1lIHNvaWwgY29uZGl0aW9ucywgc3VjaCBhcyBkcm91Z2h0 LCBoaWdoCnRlbXBlcmF0dXJlcywgd2F0ZXJsb2dnaW5nLCBmcm9zdHMgY2FuIGFmZmVjdCBBTUYu CkZpbmFsbHksIGFuZCBtb3N0IGltcG9ydGFudGx5LCB0aGUgYWJzZW5jZSBvZiBsaXZpbmcgdmVn ZXRhdGlvbiBvdmVyIGxhcmdlCmFyZWFzIChmYWxsb3cgZ3JvdW5kKSwgc3RhcnZlcyBhbmQgaW4g dGhlIGxvbmcgdGVybSB3aXBlcyBvdXQgYWxsCm15Y29ycmhpemFsIGxpZmUgZnJvbSB0aGUgc29p bMK54oG3LgoKSW50ZXJlc3RpbmdseSwgaG93ZXZlciwgcmVjZW50IGZpZWxkIGV4cGVyaW1lbnRz IHN1Z2dlc3RlZCB0aGF0IHRoZQpuZWdhdGl2ZSBpbXBhY3RzIG9mIHRoZSBhZ3JpY3VsdHVyYWwg cHJhY3RpY2VzIGRpc2N1c3NlZCBhYm92ZSBoYXMgYmVlbgpvdmVyZXN0aW1hdGVkIGJ5IHByZXZp b3VzIHJlc2VhcmNoOyBpbiBmYWN0LCAqdGhlIHJlY292ZXJ5IG9mIG15Y29ycmhpemFsCnN5c3Rl bXMgdGhyb3VnaCB0aGVpciBpbnRlcmFjdGlvbiB3aXRoIG90aGVyIHNvaWwgbWljcm9iZXMgaXMg c3RpbGwgcG9vcmx5CnVuZGVyc3Rvb2QgYW5kIGNvdWxkIGJlIG1vcmUgZWZmaWNpZW50IHRoYW4g d2UgYmVsaWV2ZSrCueKBuC4KQXJidXNjdWxhciBteWNvcnJoaXphbCBmdW5ndXMgaW4gYSBjb2xv bmlzZWQgcm9vdCBzeXN0ZW0uIEZ1bmdhbCBoeXBoYWUgKEUpCmluY3JlYXNlIHRoZSBzdXJmYWNl IGFyZWEgb2YgdGhlIHJvb3QgYW5kIHVwdGFrZSBvZiBrZXkgbnV0cmllbnRzIHdoaWxlIHRoZQpw bGFudCBzdXBwbGllcyB0aGUgZnVuZ2kgd2l0aCBmaXhlZCBjYXJib24gKEE9cm9vdCBjb3J0ZXgs IEI9cm9vdAplcGlkZXJtaXMsIEM9YXJidXNjbGUsIEQ9dmVzaWNsZSwgRj1yb290IGhhaXIsIEc9 bnVjbGVpKS4gQ3JlZGl0OiBBbWFyYWNodWt3dQpJZmVqaQo8aHR0cHM6Ly9jb21tb25zLndpa2lt ZWRpYS5vcmcvdy9pbmRleC5waHA/dGl0bGU9VXNlcjpBaWZlamkyMCZhY3Rpb249ZWRpdCZyZWRs aW5rPTE+Mi4KSG93IHRoZXkgaW1wYWN0IHBsYW50cyBhbmQgZWNvc3lzdGVtc1RoZSBpbXBvcnRh bmNlIG9mIGZpbmRpbmcgdGhlIHJpZ2h0Cm1hdGNoCgpBc3NvY2lhdGlvbnMgYmV0d2VlbiBhcmJ1 c2N1bGFyIG15Y29ycmhpemFsIGZ1bmdpIGFuZCBwbGFudHMgYXJlIG5vdCBhbHdheXMKc3RyYWln aHRmb3J3YXJkLiBPdmVyIGEgY2VudHVyeSBvZiByZXNlYXJjaCBoYXMgc2hvd24gdGhhdCwgc2lt aWxhcmx5IHRvCmVjdG9teWNvcnJoaXphZSwgYXJidXNjdWxhciBwYXJ0bmVyc2hpcHMgb25seSBk ZXZlbG9wIGJldHdlZW4gY2VydGFpbgpjb21iaW5hdGlvbnMgb2YgcGxhbnRzwrnigbkuIFNvbWUg cGxhbnRzIGFyZSBnZW5lcmFsaXN0cywgd2hpY2ggbWVhbnMgdGhhdAp0aGV5IGNhbiBhc3NvY2lh dGUgd2l0aCBzZXZlcmFsIHNwZWNpZXMgb2YgQU1GLiBTaW1pbGFybHksIHNvbWUgQU1GIGRvIG5v dApzaG93IHBhcnRpY3VsYXIgcHJlZmVyZW5jZXMsIGFuZCBwYWlyIHVwIHdpdGggaHVuZHJlZHMg b2YgcGxhbnQgZ2VuZXJhLgpIb3dldmVyLCB0aGlzIGlzIG5vdCBhbHdheXMgdGhlIGNhc2UsIGFu ZCByZXNlYXJjaCBsYWJzIGFyb3VuZCB0aGUgd29ybGQKaGF2ZSBiZWVuIGludmVzdGlnYXRpbmcg c2V2ZXJhbCBjb21iaW5hdGlvbnMgb2YgZnVuZ2kgYW5kIHBsYW50cywgaW4KZGl2ZXJzZSBzb2ls IHR5cGVzIGFuZCBjb25kaXRpb25zLCB0byB0ZXN0IHdoZW4gYW5kIHdoZXJlIG15Y29ycmhpemFl IGFyZQpmb3JtZWTCsuKBsC4KClVuZm9ydHVuYXRlbHksIGEgbG90IG9mIGNvbmZsaWN0aW5nIGlu Zm9ybWF0aW9uIGhhcyBiZWVuIHB1Ymxpc2hlZCwgYW5kIGl0CmlzIHZlcnkgZGlmZmljdWx0IHRv IGRldGVybWluZSB3aXRoIGNlcnRhaW50eSB3aGV0aGVyIGEgc3BlY2lmaWMgZnVuZ3VzCndpbGwg YXNzb2NpYXRlIHdpdGggYSBnaXZlbiBwbGFudMKywrkuIE1vc3QgbGlrZWx5LCB0aGlzIGRpc2Fn cmVlbWVudCBpcyBkdWUKdG8gZGlmZmVyZW50IG1ldGhvZHMgdXNlZCB0byBkZXRlcm1pbmUgd2hl biBjb2xvbml6YXRpb24gaGFkIGhhcHBlbmVkLCBhbmQKd2hlbiBpdCB3YXMgYmVuZWZpY2lhbC4g UmVjZW50bHksIHNldmVyYWwgZWZmb3J0cyBoYXZlIGJlZW4gbWFkZSwgYW5kCm1ldGhvZHMgcHJv cG9zZWQsIHRvIHVuaWZ5IHRoZSBib2R5IG9mIGxpdGVyYXR1cmUgYW5kIGNvbGxlY3QgYWxsIHRo ZQpzaWduaWZpY2FudCBhbmQgbW9zdCB1cC10by1kYXRlIGluZm9ybWF0aW9uIGF2YWlsYWJsZSB0 byB1cy4gQSBodWdlCmRhdGFiYXNlLCBNeWNvREIgPGh0dHBzOi8vd3d3Lm5hdHVyZS5jb20vYXJ0 aWNsZXMvc2RhdGEyMDE2Mjg+LCBoYXMgYmVlbgpjcmVhdGVkLCBhbmQgY29sbGF0ZXMgYWxsIHRo ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZWZmZWN0IG9mIHNwZWNpZmljIEFNRgpzcGVjaWVzIG9u IHRoZSBwcm9kdWN0aXZpdHkgb2Ygc2luZ2xlIHBsYW50IHNwZWNpZXPigbcuCgpPbmUgb2YgdGhl IGxhdGVzdCBpbnNpZ2h0cyBmcm9tIHJlc2VhcmNoIHNob3dzIHRoYXQgcGxhbnRzIHdob3NlIG5p dHJvZ2VuCihOKSBjb250ZW50IGlzIGhpZ2hlciBkbyByZWx5IGxlc3Mgb24gbXljb3JyaGl6YWwg ZnVuZ2nCs8KzLgpEaWZmZXJlbnQgcGxhbnQgc3BlY2llcyByZWx5IGRpZmZlcmVudGx5IG9udGhl IHNhbWUgcG9wdWxhdGlvbiBvZiBBTUYuIFRoZQpncmFwaCBzaG93cyB0aGUgYmVsb3dncm91bmQg c3VyZmFjZSBhcmVhIHByb3ZpZGVkIGJ5IHJvb3RzICgqZ3JleSopIGFuZCBBTUYKaHlwaGFlICgq d2hpdGUqKcKzwrNGcm9tIG11dHVhbGlzbSB0byBwYXJhc2l0aXNtOiB0aGUgZnVsbCBzeW1iaW90 aWMgc3BlY3RydW0KCktub3dpbmcgd2hhdCBoYXBwZW5zIHdoZW4gZnVuZ3VzIFggbWVldHMgcGxh bnQgWSBpcyBleHRyZW1lbHkgaW1wb3J0YW50LApub3Qgb25seSB0byB0YXJnZXQgc3BlY2lmaWMg c2l0dWF0aW9ucy4gSW4gZmFjdCwgYWx0aG91Z2ggc29tZSBjb21iaW5hdGlvbnMKYXJlIGRlc3Rp bmVkIHRvIHJlc3VsdCBpbiBtdXR1YWwgYmVuZWZpdHMsIG90aGVycyBjYW4gdHVybiBvdXQgdG8g YmUKaGFybWZ1bCBmb3IgdGhlIGhvc3QgcGxhbnQsIHRvIHRoZSBhZHZhbnRhZ2Ugb2YgdGhlIG15 Y29ycmhpemFsIGZ1bmd1cy4KClN5bWJpb3NlcyBjYW4gaW5kZWVkIGJlIG11dHVhbGlzdGljLCBj b21tZW5zYWxpc3RpYyBvciBwYXJhc2l0aWMuCk11dHVhbGlzdGljIDxodHRwczovL2VuLndpa2lw ZWRpYS5vcmcvd2lraS9NdXR1YWxpc21fJTI4YmlvbG9neSUyOT4KYXNzb2NpYXRpb25zIGJlbmVm aXQgYm90aCBwYXJ0aWNpcGFudHMgKGFzIGlzIHRoZSBjYXNlIGZvciBveHBlY2tlcnMgYW5kCmlt cGFsYXMsIG9yIGNsb3duZmlzaCBhbmQgc2VhIGFuZW1vbmVzwrLCsiksIHdoaWxlIGluIGNvbW1l bmFsaXN0aWMKPGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NvbW1lbnNhbGlzbT4gb25l cyBvbmx5IG9uZSBtZW1iZXIgZ2FpbnMgYW4KYWR2YW50YWdlIHdoaWxlIHRoZSBvdGhlciBpcyBu ZWl0aGVyIGJlbmVmaXRlZCBub3IgaGFybWVkLiBJbiB0aGUgd29yc3QKY2FzZSBzY2VuYXJpbywg cGFyYXNpdGlzbSA8aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUGFyYXNpdGlzbT4gdGFr ZXMKcGxhY2UsIGFuZCBvbmUgb3JnYW5pc20gZXhwbG9pdHMgdGhlIG90aGVyIHRvIGl0cyBvd24g YWR2YW50YWdlLCB0aHVzCmhhcm1pbmcgaXQgKHRoZSBvYnZpb3VzIGV4YW1wbGUgYmVpbmcgdmly dXNlcwo8aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVmlydXM+LCB3aGljaCBhcmUgb2Js aWdhdGUgcGFyYXNpdGVzKS4KCkFsdGhvdWdoIG1vc3Qgb2YgdGhlIHJlc2VhcmNoIHNvIGZhciBo YXMgZm9jdXNlZCBvbiB0aGUgc3VjY2Vzc2Z1bCBzdG9yaWVzCnR5cGljYWwgb2YgbXV0dWFsaXN0 IG15Y29ycmhpemFlLCBpbiB0aGUgbGFzdCBmZXcgeWVhcnMgc29tZSByZXNlYXJjaApncm91cHMg YXJvdW5kIHRoZSB3b3JsZCBoYXZlIHN0YXJ0ZWQgdG8gZXhwbG9yZSB3aGF0IGhhcHBlbnMgd2hl biB0aGUKZnVuZ3VzIHBhcmFzaXRpc2VzIGl0cyBob3N0LiBUaGlzIGluZm9ybWF0aW9uIHdpbGwg cHJvdmUgZnVuZGFtZW50YWwgaW4Kb3JkZXIgdG8gZGlzY2VybiB3aGV0aGVyIGludHJvZHVjaW5n IGFyYnVzY3VsYXIgZnVuZ2kgdG8gYSBnYXJkZW4gb3IgYSBmYXJtCmlzIHRoZSByaWdodCB0aGlu ZyB0byBkby4KClRvIGNvbXBsaWNhdGUgdGhpbmdzLCBhcyB3ZSB3aWxsIHNlZSwgd2hhdCBkZXRl cm1pbmVzIHdoZXRoZXIgYSBmdW5nYWwKc3ltYmlvc2lzIGlzIGJlbmVmaWNpYWwgdG8gYSBwbGFu dCBpcyBub3Qgb25seSB0aGUgY29tYmluYXRpb24gb2Ygc3BlY2llcywKYmVjYXVzZSBzb21lIGZ1 bmd1cy1ob3N0IHBhaXJzIGNhbiBzdGFydCBhcyBtdXR1YWxpc3QgYW5kIGdyYWR1YWxseSBiZWNv bWUKcGFyYXNpdGljLgpOb3QgYWxsIHBsYW50cyBlc3RhYmxpc2ggYmVuZWZpY2lhbCBwYXJ0bmVy c2hpcHMgd2l0aCBBTUYuIFRoZSBncmFwaCBzaG93cwpNeWNvcnJoaXphbCBncm93dGggZGVwZW5k ZW5jeSAoTUdEKSBhcyBjYWxjdWxhdGVkIGZyb20gcmVsYXRpdmUgYmlvbWFzcwpkaWZmZXJlbmNl cyBiZXR3ZWVuIEFNIGFuZCBub24tbXljb3JyaGl6YWwgcGxhbnRzwrPCs011dHVhbGlzdCBteWNv cnJoaXphZTogYQp3ZWFsdGggb2YgYmVuZWZpY2lhbCBlZmZlY3RzCgpJdCBpcyBoYXJkbHkgZGlm ZmljdWx0IHRvIGV4cGxhaW4gd2h5IHNvIG11Y2ggb2YgdGhlIHNjaWVudGlmaWMgbGl0ZXJhdHVy ZSwKYXMgd2VsbCBhcyBnYXJkZW5pbmcgY2x1YnMgYW5kIGZlcnRpbGlzZXIgc3VwcGxpZXJzIGhh dmUgYmVlbiBsZWFuaW5nCnRvd2FyZHMgb3Zlci1vcHRpbWlzbSB3aGVuIHRhbGtpbmcgYWJvdXQg bXljb3JyaGl6YWwgZnVuZ2kuIEluZGVlZCwgdGhlCmxpc3Qgb2YgZG9jdW1lbnRlZCBpbXBhY3Rz IG9mIHN5bWJpb3RpYyBmdW5naSByYW5nZSBmcm9tIHN0aW11bGF0aW5nIHBsYW50cwpyb290IGdy b3d0aCBhbmQgY3JvcCB5aWVsZHMsIHRvIGVjb3N5c3RlbSBiaW9kaXZlcnNpdHkgcmVnZW5lcmF0 aW9uIGFuZApncmVlbmhvdXNlIGdhc2VzIHJlZHVjdGlvbi4gSGVyZSBJIHByb3ZpZGUgYSBsaXN0 IG9mIHRoZSBiZW5lZmljaWFsIGVmZmVjdHMKZ2VuZXJhbGx5IGFjY2VwdGVkIGFtb25nIHRoZSBz Y2llbnRpZmljIGNvbW11bml0eSwgYWxvbmcgd2l0aCBhbGwgdGhlCnJlZmVyZW5jZXMgeW91IHdp bGwgbmVlZCwgc2hvdWxkIHlvdSB3aXNoIHRvIGRpZyBhIGJpdCBkZWVwZXIuCgogICAtIEluIG51 bWVyb3VzIHN0dWRpZXMsICphZ3JpY3VsdHVyYWwgY3JvcCB5aWVsZHMgaGF2ZSBiZWVuIHNob3du IHRvCiAgIGluY3JlYXNlKiB3aGVyZSBoaWdoZXIgZGVuc2l0aWVzIG9mIGFyYnVzY3VsYXIgbXlj b3JyaGl6YWwgd2VyZQogICBtZWFzdXJlZMKywrMuIEhvd2V2ZXIsIHlpZWxkcyBhcmUgbm90IGRp cmVjdGx5IHByb3BvcnRpb25hbCB0byB0aGUgZXh0ZW50IG9mCiAgIHRoZSBBTUYgaW5mZWN0aW9u LCBidXQgdG8gdGhlIHBoeXNpb2xvZ2ljYWwgZWZmZWN0IHRoZXkgaGF2ZSBvbiBwbGFudHPigbYK ICAgLSBEdWUgdG8gdGhlaXIgcm9sZSBpbiBwbGFudCBudXRyaXRpb24sIHN5bWJpb3RpYyBBTUYg Y291bGQgYWxzbwpoYXZlIGEgKnBvc2l0aXZlCiAgIGltcGFjdCBvbiB0aGUgcXVhbGl0eSBvZiB2 ZWdldGFibGVzKiwgYnkgaW5jcmVhc2luZyB0aGUgY29uY2VudHJhdGlvbiBvZgogICBib3RoIG1h Y3JvIGFuZCBtaWNyb251dHJpZW50c8Ky4oG0LiBPbmUgb2YgdGhlIG1vc3QgaW5lc3RpbWFibGUg YmVuZWZpdHMgb2YKICAgbXljb3JyaGl6YWUgaXMgaW4gZmFjdCB0aGUgZmFjaWxpdGF0aW9uIG9m ICpwaG9zcGhvcm91cyB1cHRha2UqLgogICBQaG9zcGhyb3VzIChQKSBpcyBjcml0aWNhbCBtYWNy b251dHJpZW50IGZvciBwbGFudCBncm93dGgsIGJ1dCBpdCBpcyBvbmUgb2YKICAgdGhlIG1vc3Qg ZGlmZmljdWx0IG51dHJpZW50cyBmb3IgcGxhbnRzIHRvIGFjcXVpcmUuIEV2ZW4gdGhvdWdoIGl0 IG1pZ2h0IGJlCiAgIHByZXNlbnQgaW4gbGFyZ2UgcXVhbnRpdGllcywgb2Z0ZW4gbW9zdCBvZiBp dCBpcyBwb29ybHkgYXZhaWxhYmxlIGJlY2F1c2UKICAgb2YgdGhlIHZlcnkgbG93IHNvbHViaWxp dHkgb2YgcGhvc3BoYXRlcyBvZiBpcm9uLCBhbHVtaW51bSwgYW5kIGNhbGNpdW0uCiAgIE15Y29y cmhpemFsIHN5bWJpb3NpcyBpcyB0aGUgbW9zdCBjb21tb24gc3RyYXRlZ3kgcGxhbnRzIGV2b2x2 ZWQgdG8gYWNjZXNzCiAgIHBob3NwaG9yb3VzIGluIGl0cyBhdmFpbGFibGUgZm9ybSwgYXMgbmVn YXRpdmVseSBjaGFyZ2VkIFBpIGlvbnPCsuKBtS4gVGhlCiAgIHVwdGFrZSBvZiBwaG9zcGhvcm91 cyBpbiBpbm9jdWxhdGVkIHJvb3RzIGNhbiBiZSB0aHJlZSB0byBmaXZlIHRpbWVzIGhpZ2hlcgog ICB0aGFuIGluIG5vbi1teWNvcnJoaXphbCByb290c8Ky4oG2LgogICAtIEFNRiAqYmVuZWZpdCBl bnRpcmUgZWNvc3lzdGVtcyogb24gbWFueSBsZXZlbHMsIGFzIHRoZXkgaW1wcm92ZSBzb2lsCiAg IHN0cnVjdHVyZSBhbmQgYWdncmVnYXRpb24gYW5kIGRyaXZlIHRoZSBzdHJ1Y3R1cmUgb2YgcGxh bnQgY29tbXVuaXRpZXMsCiAgIGJpb2RpdmVyc2l0eSwgbnV0cmllbnQgY2FwdHVyZSBhbmQgcHJv ZHVjdGl2aXR5wrLigbcKICAgLSBNeWNvcnJoaXphbCBmdW5naSBpbiBnZW5lcmFsIGFyZSByZXNw b25zaWJsZSBmb3IgKnJlZHVjaW5nIGVtaXNzaW9ucwogICBvZiBuaXRyb2dlbiBveGlkZSosIHdo aWNoIGlzIG9uZSBvZiB0aGUgZ3JlZW5ob3VzZSBnYXNlcyB0aGF0IGRyaXZlCiAgIGNsaW1hdGUg Y2hhbmdlwrLigbgKICAgLSBQbGFudHMgKnRvbGVyYW5jZSB0byBzdHJlc3NmdWwgc29pbCBjb25k aXRpb25zKiwgc3VjaCBhcyBkcm91Z2h0IGFuZAogICBoaWdoIHNhbGluaXR5LCBpcyBpbXByb3Zl ZCBpbiB0aGUgcHJlc2VuY2Ugb2YgQU1GwrLigbkKICAgLSBBcmJ1Y3VsZXMgY2FuIHJlZHVjZSB0 aGUgaW1wYWN0IG9mIGhlYXZ5IG1ldGFscyBpbiB0aGUgaG9zdCBwbGFudHPCs+KBsC4KICAgVGhp cyBjYW4gYWxzbyBiZSB1c2VkIGZvciAqcGh5dG9yZW1lZGlhdGlvbioKICAgPGh0dHBzOi8vZW4u d2lraXBlZGlhLm9yZy93aWtpL1BoeXRvcmVtZWRpYXRpb24+LCAqaS5lLiosIHRoZSB1c2Ugb2YK ICAgcGxhbnRzIHRvICpjbGVhbiB1cCBzb2lsLCB3YXRlciBhbmQgYWlyIGluIGNvbnRhbWluYXRl ZCBhcmVhcyrCs8K5CiAgIC0gKkluY3JlYXNlZCByZXNpc3RhbmNlIHRvIHNvaWwtYm9ybmUgcGF0 aG9nZW5zKiwgYm90aCBmdW5nYWwgYW5kCiAgIGJhY3RlcmlhbCwgaGFzIGJlZW4gd2lkZWx5IG9i c2VydmVkIG9uIHBsYW50cyBjb2xvbmlzZWQgYnkgQU1GLCBhbHRob3VnaCB3ZQogICBzdGlsbCBk b27igJl0IGtub3cgd2hhdCB0aGUgbWVjaGFuaXNtIGludm9sdmVkIGlzLiBTb21lIGFyZ3VlIHRo YXQgdGhlCiAgIGJlbmVmaWNpYWwgZnVuZ2kgcGh5c2ljYWxseSBpbmhpYml0IHRoZSBhdHRhY2sg b2YgcGFyYXNpdGljIG9uZXMsIG90aGVyCiAgIHJlc2VhcmNoZXJzIGhhdmUgZGlzY292ZXJlZCB0 aGF0IHBsYW50cyByZWZpbmUgdGhlaXIgb3duIGRlZmVuY2VzIGFzIGEKICAgcmVzdWx0IG9mIHRo ZSBjaGVtaWNhbCBpbnRlcmFjdGlvbiB3aXRoIHRoZSBteWNvcnJoaXphbCBmdW5nacKzwrIKClRo ZSBiZW5lZml0cyBvZiBBTS1wYXJ0bmVyc2hpcHMgZnJvbSBKYWNvdHQgZXQgYWwsICpBZ3Jvbm9t eSogKjIwMTcqLCAqNyooNCkKPGh0dHBzOi8vZG9pLm9yZy8xMC4zMzkwL2Fncm9ub215NzA0MDA3 NT5QYXJhc2l0aXNtOiB0aGUgZGFyayBzaWRlIG9mIHRoZQpmdW5ndXMKCkFscmVhZHkgaW4gdGhl IDE5ODDigJlzLCBwbGFudCBzY2llbnRpc3RzIGtuZXcgdmVyeSB3ZWxsIHRoYXQgbXljb3JyaGl6 YWwKZnVuZ2kgY291bGQgbm90IG9ubHkgYmUgcGFyYXNpdGljLCBidXQgYWxzbyBzdGFydCBhcyBm cmllbmRseSBhbGxpZXMgYW5kCmVuZCB1cCBhcyBkZWFkbHkgZW5lbWllcy4gU3R1ZGllcyBoYXZl IHNob3duIHBhcmFzaXRpYyBiZWhhdmlvdXIgaW4gdmFyaW91cwp2ZWdldGFibGUgY3JvcHMsIGFu ZCBpbiBtb3N0IGNhc2VzIHRoZSBjdWxwYWJsZSBmdW5ndXMgd2FzIG9uZSB0aGF0IGlzIGFsc28K a25vd24gdG8gZm9ybSBtdXR1YWxpc3RpYyBwYXJ0bmVyc2hpcHMsIGV2ZW4gd2l0aCB0aGUgc2Ft ZSBwbGFudHMuIFNvLCB3aGVuCmRvIG15Y29ycmhpemFsIGZ1bmdpIHR1cm4gdGhlaXIgYmFja3Mg dG8gcGxhbnQgbmVlZHMgYW5kIHN0YXJ0IHRvIGV4cGxvaXQKdGhlbT8KCkFzIHBvaW50ZWQgb3V0 IGJ5IEpvaG5zb24gZXQgYWwuwrPigbYsCgpNeWNvcnJoaXphbCBmdW5naSBtaWdodCBiZSBjb25z aWRlcmVkIHRvIGJlIHBhcmFzaXRpYyBvbiBwbGFudHMgd2hlbiBuZXQKY29zdCBvZiB0aGUgc3lt Ymlvc2lzIGV4Y2VlZHMgbmV0IGJlbmVmaXRzLiBQYXJhc2l0aXNtIGNhbiBiZQpkZXZlbG9wbWVu dGFsbHkgaW5kdWNlZCwgZW52aXJvbm1lbnRhbGx5IGluZHVjZWQsIG9yIHBvc3NpYmx5IGdlbm90 eXBpY2FsbHkKaW5kdWNlZC4KCkluIHByYWN0aWNlLCB0aGlzIG1lYW5zIHRoYXQgdGhlcmUgYXJl IG1hbnkgd2F5cyBpbiB3aGljaCB0aGUgYW1vdW50IG9mCnBsYW50IHJlc291cmNlcyBhbGxvY2F0 ZWQgdG8gYW4gQU1GICh0aGUgKmNvc3RzKikgbWlnaHQgZW5kIHVwIGV4Y2VlZGluZwp0aGUgKmJl bmVmaXRzICppdCBnYWlucyBmcm9tIGFzc29jaWF0aW5nIHdpdGggaXQuCgpUbyBiZWdpbiB3aXRo LCAqZW52aXJvbm1lbnRhbCBmYWN0b3JzIGFyZSBleHRyZW1lbHkgaW1wb3J0YW50Ki4gRm9yCmlu c3RhbmNlLCBhIG15Y29ycmhpemEgbWlnaHQgYmVjb21lIHBhcmFzaXRpYyBpbiBhICpjaGVtaWNh bGx5IGZlcnRpbGlzZWQKc29pbCosIHdoZXJlIHRoZSBwbGFudCBhbHJlYWR5IGhhcyBlbm91Z2gg cGhvc3Bob3JvdXMgYW5kIHdhdGVyLCBhbmQgZW5kcwp1cCBwcm92aWRpbmcgY2FyYm9uIHRvIHRo ZSBmdW5ndXMgZm9yIGZyZWUuClNpbWlsYXJseSwgaW4gKnJlZHVjZWQgbGlnaHQgY29uZGl0aW9u cyosIGEgcGxhbnQgaG9zdCBtaWdodCBiZSB1bmFibGUKcGhvdG9zeW50aGVzaXNlIHF1aWNrbHkg ZW5vdWdoIHRvIHByb3ZpZGUgY2FyYm9uIGJvdGggZm9yIGl0cyBvd24gZ3Jvd3RoCmFuZCB0byBz YXRpc2Z5IHRoZSBmdW5ndXMgbmVlZHM7IG9mdGVuLCB0aGlzIG1lYW5zIHRoYXQgdGhlIHBsYW50 IHdpbGwgc2xvdwpkb3duIGl0cyBncm93dGggb3IgZ2VuZXJhbCBwcm9kdWN0aXZpdHkuCkNvc3Rs eSBhbmQgZGV0cmltZW50YWwgcGFydG5lcnNoaXBzIGNhbiBhbHNvIG9jY3VyICp3aGVyZSogKnBs YW50IGRlbnNpdGllcwphcmUgbG93KiwgYW5kIEFNRiBlbnRlciBpbiBjb21wZXRpdGlvbiB3aXRo IGVhY2ggb3RoZXIgYW5kIHRoZSBob3N0c+KAmSByb290cy4KCkZ1cnRoZXJtb3JlLCBhdCBkaWZm ZXJlbnQgc3RhZ2VzIG9mIHRoZSBkZXZlbG9wbWVudCBvZiBhIHBsYW50LCB0aGluZ3MgY2FuCmxv b2sgZGlmZmVyZW50bHkuIEFzIGEgKnNlZWRsaW5nKiwgcGxhbnRz4oCZIG5lZWRzIGZvciBudXRy aWVudHMgYXJlIHZlcnkgbG93CihhcyBtb3N0IG9mIHRoZW0gYXJlIGRyYXduIGZyb20gdGhlIHNl ZWTigJlzIHN0b3JlKSwgYW5kIHRoZXJlZm9yZSB0aGUgKmNvc3RzCiphcmUgaGlnaGVyOyBob3dl dmVyLCB0aGlzIHNob3J0LXRlcm0gZGlzYWR2YW50YWdlIGlzIHVzdWFsbHkgY29tcGVuc2F0ZWQK YnkgdGhlIGxvbmctdGVybSBhZHZhbnRhZ2VzIG9mIGhhdmluZyBlYXNpZXIgYWNjZXNzIHRvIHNv aWwgcmVzb3VyY2VzLgoKVG8gY29tcGxpY2F0ZSB0aGluZ3MgZXZlbiBmdXJ0aGVyLCAqZ2VuZXRp Y3MgcGxheSBhbiBpbXBvcnRhbnQgcm9sZSosIGFzIHdlCmFscmVhZHkga25vdyBmcm9tIHRoZSBm YWN0IHRoYXQgbm90IGFsbCBtYXRjaGVzIGFyZSBzdWNjZXNzZnVsLiBHZW5ldGljCnByZWRpc3Bv c2l0aW9ucyBpbnRlcmFjdCB3aXRoIGVudmlyb25tZW50YWwgZmFjdG9ycywgYXMgd2VsbCBhcyBj b21wbGV4CmVjb3N5c3RlbWljIGR5bmFtaWNzIHRoYXQgcmVzdWx0IGZyb20gdGhlIGludGVyYWN0 aW9uIG9mIHNldmVyYWwgdHlwZXMgb2YKcGxhbnRzIGFuZCBsaWZlIGluIHRoZSBzb2lsLgozLiBB cHBsaWNhdGlvbnMKCkJlZm9yZSB3ZSBleHBsb3JlIGhvdyBteWNvcnJoaXphbCBmdW5naSBjYW4g YmUgdXNlZCBpbiBhZ3JpY3VsdHVyYWwgYW5kCmhvcnRpY3VsdHVyYWwgc2l0dWF0aW9ucywgaXQg aXMgaW1wb3J0YW50IHRvIG5vdGljZSB0aGF0LCBjb250cmFyeSB0byB3aGF0CmlzIGNvbW1vbmx5 IGJlbGlldmVkLCAqd2hlcmUgYSBtdXR1YWxseSBiZW5lZmljaWFsIG15Y29ycmhpemFsIHN5bWJp b3NpcyBpcwpwcmVzZW50LCB0aGUgaG9zdCBwbGFudCBoYXMgZmV3ZXIgcm9vdHMqLCBiZWNhdXNl IGl0IGNhbiBtYWtlIGFkdmFudGFnZSBvZgp0aGUgZnVuZ3VzIGZvcmFnaW5nIGFiaWxpdHksIHRo dXMgZWNvbm9taXNpbmcgb24gcm9vdCB0aXNzdWXCs8KzLgpMZXTigJlzIHBhdXNlIG9uIHRoaXMg aWRlYSBmb3IgYSBtb21lbnQuIFBlcmhhcHMgc29tZSBvZiB5b3UgaGF2ZSBjb21lCmFjY3Jvc3Mg dGhlIGNvbXBhcmF0aXZlIHBob3RvZ3JhcGhzIHRoYXQgbXljb3JyaGl6YWwgc3VwcGxpZXJzIHVz ZSB0bwpyZWluZm9yY2UgdGhlaXIgY2xhaW0gdGhhdCBpbm9jdWxhdGVkIHBsYW50cyBoYXZlIGhl YWx0aGllciByb290cyBzeXN0ZW1zCihhbiBleGFtcGxlIGhhcyBiZWVuIGluY2x1ZGVkIGJlbG93 KS4gVGhlc2UgY2FuIGJlIGludGVycHJldGVkIGluIHR3byB3YXlzOgoKICAgMS4gaWYgdGhlIHN1 cHBsaWVyIGlzIHRyeWluZyB0byB0ZWxsIHVzIHRoYXQgdGhlIHJvb3RzIG9mIHRoZSBpbm9jdWxh dGVkCiAgIHBsYW50IGFyZSBtb3JlIG51bWVyb3VzLCB0aGV5IHByb2JhYmx5IGhhdmUgYSBsaW1p dGVkIGNvbXByZWhlbnNpb24gb2YgaG93CiAgIG15Y29ycmhpemFlIHdvcms7CiAgIDIuIGlmIHRo ZSBpbnRlbnQgaXMgdG8gc2hvdyB0aGUgb3ZlcmFsbCBiaW9tYXNzIG9mIHJvb3RzIHBsdXMKICAg bXljb3JyaGl6YWwgaHlwaGFlLCByYXRoZXIgdGhhbiByb290cyBhbG9uZSwgdGhlbiB0aGUgc3Vw cGxpZXIgaXMganVzdAogICBkaXBsYXlpbmcgaG93IGEgbXljb3JyaGl6YWwgYW5kIGEgbm9uLW15 Y29ycmhpemFsIHNwZWNpbWVuIGxvb2suIEhvd2V2ZXIsCiAgIGhhdmluZyBBTUYgaHlwaGFlIGFy b3VuZCBpdHMgb3duIHJvb3RzLCBhcyB5b3Ugbm93IGtub3csIGRvZXMgbm90IG1lYW4gdGhhdAog ICBhIHBsYW50IGlzIGJlbmVmaXRpbmcgZnJvbSB0aGVtwrLCsywgYW5kIGV2ZW4gaWYgaXQgd2Fz LCBpdCB3b3VsZCBub3QgZW5zdXJlCiAgIHRoYXQgaXRzIHByb2R1Y3Rpdml0eSB3aWxsIGJlIGlu Y3JlYXNlZOKBti4KCkEgY29tcGFyaXNvbiBvZiB0aGUgcm9vdHMgb2YgaW5vY3VsYXRlZCBhbmQg dW5pbm9jdWxhdGVkIGJhcmxleSBwbGFudHMsCmZyb20gVGVhbWluZyB3aXRoIEZ1bmdpCjxodHRw czovL3d3dy5nb29kcmVhZHMuY29tL2Jvb2svc2hvdy8yODAwOTg5Ny10ZWFtaW5nLXdpdGgtZnVu Z2k+CihKLkxvd2VuZmVscylBIGdyb3d0aCBzdGltdWxhbnQ/CgpBcyBkaXNjdXNzZWQgaW4gdGhl IHByZXZpb3VzIHNlY3Rpb24sIHdoZW4gbXljb3JyaGl6YSBpcyBtdXR1YWxpc3RpYywgdGhlCnBy b2R1Y3Rpdml0eSBhbmQgZ2VuZXJhbCBoZWFsdGggKHNvbWV0aW1lcyBncm91cGVkIHVuZGVyIHRo ZSB0ZXJtCipmaXRuZXNzwrLigbUqKSBvZiB0aGUgaW5vY3VsYXRlZCBwbGFudCBhcmUgaW5jcmVh c2VkLCBhbG9uZ3NpZGUgdGhlCmJpb2RpdmVyc2l0eSBvZiBtaWNyb29yZ2FuaXNtcyBpbiB0aGUg c29pbC4KCkhvd2V2ZXIsIHJlc2VhcmNoZXJzIGhhdmUgc3RhcnRlZCB0byBwb2ludCBvdXQgdGhh dCBteWNvcnJoaXphZSBjYW4gYmUKcGFyYXNpdGljIG1vcmUgb2Z0ZW4gdGhhbiB3ZSBvcmlnaW5h bGx5IHRob3VnaHQuIEouIENhaGlsbCBnb2VzIGFzIGZhciBhcwpzYXlpbmcgdGhlIGludGVyYWN0 aW9uIGJldHdlZW4gcGxhbnRzIGFuZCBzb2lsIGxpZmUgaXMgc28gY29tcGxleCB0aGF0ICppZgp3 ZSBpbnRyb2R1Y2UgYSBkaXZlcnNlIG1peCBvZiBteWNvcnJoaXphbCBmdW5naSBpbiBhIGdlbmVy aWMgc29pbCwgNTAlIG9mCnRoZSBBTUYgYXJlIHBvdGVudGlhbCBwYXJhc2l0ZXMqCjxodHRwczov L3d3dy5uby10aWxsZmFybWVyLmNvbS9hcnRpY2xlcy84NDEwLXBvZGNhc3QtaG93LXBsYW50cy1m aW5kLXRoZWlyLWZvb2QtdGhlLWJlaGF2aW9yYWwtc2NpZW5jZS11bmRlcmx5aW5nLXBsYW50LW51 dHJpdGlvbj4KwrPigbQuClRoZXJlZm9yZSwgaWYgd2UgYXJlIG1haW5seSBpbnRlcmVzdGVkIGlu IHRoZSBwZXJmb3JtYW5jZSBvZiBpbmRpdmlkdWFsCnBsYW50cywgcmF0aGVyIHRoYW4gdGhlIGVj b3N5c3RlbeKAmXMgZGl2ZXJzaXR5IGFuZCB0aGUgb3RoZXIgcG90ZW50aWFsCmJlbmVmaXRzIG9m IG15Y29ycmhpemFlLCB3ZSBzaG91bGQgdGFrZSBzb21lIHByZWNhdXRpb25zIGJlZm9yZSBzcHJl YWRpbmcKdGhlbSBpbmRpc2NyaW1pbmF0ZWx5IG92ZXIgb3VyIGdhcmRlbiBvciBmaWVsZC4gQSBm ZXcgY29uc2lkZXJhdGlvbnMgdG8KbWFrZSwgaW4gdGhlIGxpZ2h0IG9mIHRoZSBwcmV2aW91cyBz ZWN0aW9ucywgYXJlIHRoZSBmb2xsb3dpbmc6CgogICAtIFZlcmlmeSB0aGF0IHlvdXIgc29pbCBp cyBub3QgYWxyZWFkeSByaWNoIGluIGF2YWlsYWJsZSAoc29sdWJsZSkKICAgcGhvc3Bob3JvdXMs IGFzIHRoaXMgbWlnaHQgY2F1c2UgbXljb3JyaGl6YWwgZnVuZ2kgdG8gYmUgcGFyYXNpdGljOwog ICAtIEFsdGhvdWdoIG15Y29ycmhpemFlIGltcHJvdmUgbnV0cmllbnQgdXB0YWtlLCB0aGVzZSBu dXRyaWVudHMgbmVlZCB0bwogICBiZSBwcmVzZW50IGluIHRoZSBzb2lsIGluIHRoZSBmaXJzdCBw bGFjZS4gVGhlcmVmb3JlLCBlc3BlY2lhbGx5IGlmIHBsYW50CiAgIHBlcmZvcm1hbmNlIGlzIGEg cHJpb3JpdHksIGl0IGlzIHdvcnRoIGVuc3VyaW5nIHRoYXQgc29pbCBpcyBjaGVtaWNhbGx5CiAg IGJhbGFuY2VkwrPigbUKICAgLSAqQXZvaWQgaW50cm9kdWNpbmcgbm9uLW5hdGl2ZSBzcGVjaWVz KiBvZiBBTUYsIGFzIHRoZXNlIGFyZSBsZXNzCiAgIGxpa2VseSB0byBlc3RhYmxpc2ggcmVhZGls eSBhbmQgaGVhbHRoaWx5IGluIGEgZm9yZWlnbiBzb2lsIGZvb2Qgd2ViOwogICAtIElmIHBvc3Np YmxlLCB5b3Ugc2hvdWxkICphbHdheXMgdGVzdCogbXljaG9ycml6YWwgYWN0aW9uIG9uIHNvbWUK ICAgaW5kaXZpZHVhbCBwbGFudHMgZmlyc3QsIGFuZCBjb21wYXJlIHRoZWlyIHN1YnNlcXVlbnQg cGVyZm9ybWFuY2Ugd2l0aAogICBvdGhlciBpbmRpdmlkdWFscyBvZiB0aGUgc2FtZSBzcGVjaWVz IG9yIGZhbWlseS4gVGhpcyB3aWxsIGdpdmUgeW91IGFuCiAgIGluZGljYXRpb24gb2Ygd2hldGhl ciBhbnkgYmVuZWZpY2lhbCBlZmZlY3RzIGFyZSBvYnNlcnZlZCBpbiB5b3VyIHNvaWwKICAgZWNv c3lzdGVtLgogICAtIE5vdGljZSB0aGF0IEFNRiBkb27igJl0IGFzc29jaWF0ZSB3aXRoIEJyYXNz aWNhcyBhbmQgcGxhbnRzIHRoYXQgdGhyaXZlCiAgIG9uIGFjaWRpYyBzb2lscyAobG93IHBIKSwg c3VjaCBhcyBSaG9kb2RlbmRyb25zLCBBemFsZWFzLCBIZWF0aGVycywKICAgQ3JhbmJlcnJpZXMg YW5kIEJsdWViZXJyaWVzOwogICAtIEluIHZlZ2V0YWJsZSBnYXJkZW5zIG9yIGZhcm0gb3BlcmF0 aW9ucywgKmluY3JlYXNlIHRoZSBjcm9wIGRpdmVyc2l0eSoKICAgYW5kIHJvdGF0ZSBicmFzc2lj YXMgb2Z0ZW4sIGFzIHRvIGVuY291cmFnZSBwZXJtYW5lbnQgZXN0YWJsaXNobWVudCBvZiBhCiAg IGRpdmVyc2UgY29tbXVuaXR5IG9mIEFNRjsKICAgLSAqQXZvaWQgdGlsbGFnZSBhbmQgZGlnZ2lu ZyosIGFzIHRoZXNlIGRlc3Ryb3kgZnVuZ2FsIGh5cGhhZTsKICAgLSBJZiB3YW50IG15Y29ycmhp emFlIHRvIGVzdGFibGlzaCBwZXJtYW5lbnRseSBpbiBhIHZlZ2V0YWJsZSBvciBmbG93ZXIKICAg YmVkLCB3aGVuZXZlciBwbGFudHMgYXJlIHJlbW92ZWQgdG8gbWFrZSByb29tIHRvIGFub3RoZXIg Y3JvcCwgdGhlaXIgKnJvb3RzCiAgIHNob3VsZCBiZSBsZWZ0IGluIHRoZSBzb2lsKi4gVGhpcyBt aWdodCBiZSBlYXNpZXIgc2FpZCB0aGFuIGRvbmUsCiAgIGVzcGVjaWFsbHkgb24gcGxhbnRzIHdp dGggc3Ryb25nIGFuZCBicmFuY2hlZCB0YXByb290cy4gSG93ZXZlciwgd2hhdCBpcwogICBjcnVj aWFsIGlzIHRvIGxlYXZlIHRoZSBmaW5lciByb290cyBpbiB0aGUgc29pbCwgYXMgdGhlc2UgaGF2 ZSBhIGhpZ2hlcgogICBkZW5zaXR5IG9mIG15Y29ycmhpemFsIGZ1bmdpOyB0aGlzIGNhbiBiZSBh Y2hpZXZlZCBieSAqcHVsbGluZyBwbGFudHMgdXAKICAgY2FyZWZ1bGx5IG9yIGN1dHRpbmcgdGhl aXIgc3RlbSBiZWxvdyBncm91bmQqOwogICAtICpEbyBub3QgbGVhdmUgc29pbCB1bmN1bHRpdmF0 ZWQqIG92ZXIgd2ludGVyIG9yIGF0IGFueSBnaXZlbiB0aW1lIGZvcgogICBsb25nIHBlcmlvZHMs IGJlY2F1c2UgbXljb3JyaGl6YWwgZnVuZ2kgbmVlZCBob3N0cyB0byBzdXJ2aXZlIChpbmNpZGVu dGx5LAogICB3ZWVkcyBhcyBmaXhpbmcgYWdlbnRzIGluIGRpc3R1cmJlZCBzb2lsIGRvLCBhbW9u ZyBvdGhlciB0aGluZ3MsIHByb3ZpZGUgYQogICBob21lIGZvciBzdHJhbmRlZCBteWNvcnJoaXph bCBmdW5naS4KCkNvbW1lcmNpYWwgaW5vY3VsYW50czogYXJlIHRoZXkgZWZmZWN0aXZlPwoKQWx0 aG91Z2ggd2UgbWF5IGxlZ2l0aW1hdGVseSBleHBlY3QgdGhhdCBpbm9jdWxhbnRzIGNvbnRhaW4g dmlhYmxlIHNwb3JlcywKc29tZSByZXNlYXJjaCBoYXMgc2hvd24gdGhhdCBtb3JlIHRoYW4gNTAl IG9mIHRoZSBwcm9kdWN0cyBhdmFpbGFibGUgdG8KaG9tZSBnYXJkZW5lcnMgYXJlIG5vdCB2aWFi bGXCs+KBty4gVGhpcyBpcyBlc3BlY2lhbGx5IHRydWUgb2YgbWl4ZXMgdGhhdCBhcmUKbWFkZSB1 cCBvZiBzcG9yZXMgb25seS4gUHJvZHVjdHMgY29uc2lzdGluZyBhIGNsYXkgaW5lcnQgc3Vic3Ry YXRlICh3aGl0ZQpncmFudWxlcykgaW5vY3VsYXRlZCB3aXRoIGxpdmluZyBteWNlbGl1bSBtYXkg YmUgbW9yZSBlZmZlY3RpdmUuCkEgUmVnZW5lcmF0aXZlIHRvb2wKClRoZSBzb2lsIGlzIHRoZSBn cmVhdCBjb25uZWN0b3Igb2YgbGl2ZXMsIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIG9mCmFs bC4gSXQgaXMgdGhlIGhlYWxlciBhbmQgcmVzdG9yZXIgYW5kIHJlc3VycmVjdG9yLCBieSB3aGlj aCBkaXNlYXNlIHBhc3NlcwppbnRvIGhlYWx0aCwgYWdlIGludG8geW91dGgsIGRlYXRoIGludG8g bGlmZS4gV2l0aG91dCBwcm9wZXIgY2FyZSBmb3IgaXQgd2UKY2FuIGhhdmUgbm8gY29tbXVuaXR5 LCBiZWNhdXNlIHdpdGhvdXQgcHJvcGVyIGNhcmUgZm9yIGl0IHdlIGNhbiBoYXZlIG5vCmxpZmUu IChXZW5kZWwgQmVycnnCs+KBtykKCkRlc3BpdGUgdGhlaXIgcG90ZW50aWFsIHNpZGUgZWZmZWN0 cyBvbiBpbmRpdmlkdWFsIHBsYW50IHByb2R1Y3Rpdml0eSwgdGhlCmJlbmVmaXRzIG9mIG15Y29y cmhpemFsIHN5bWJpb3NlcyB0byBlY29zeXN0ZW1zLCB0aGUgc29pbCBmb29kIHdlYiwgcGxhbnQK YmlvZGl2ZXJzaXR5IGFuZCB0aGUgZWFydGjigJlzIGNsaW1hdGUgY2Fubm90IGJlIHN0cmVzc2Vk IGVub3VnaC4KCkFsbCB0aG9zZSBnYXJkZW5lcnMsIGxhbmRzY2FwZXJzLCBmYXJtZXJzIGFuZCBw b2xpY3ktbWFrZXJzIHdobyBhcmUKaW50ZXJlc3RlZCBub3Qgb25seSBpbiBhICpzdXN0YWluYWJs ZSAqd2F5IG9mIG1haW50YW5pbmcgYW5kIG1hbmFnaW5nCmVjb3N5c3RlbXMsIGJ1dCBpbiByZWdl bmVyYXRpbmcgdGhlIGJpb2xvZ2ljYWwgYmFsYW5jZSB0aGF0IGNlbnR1cmllcyBvZgpuYWl2ZSBo dW1hbiBhY3Rpb24gaGF2ZSBzZXJpb3VzbHkgaW1wYWlyZWQsIGhhdmUgbG9uZyBmb3VuZCBpbiBt eWNvcnJoaXphbApmdW5naSBhbiBpbnZhbHVhYmxlIGFsbHkuIFJlZ2VuZXJhdGl2ZSBhZ3JpY3Vs dHVyYWwgYW5kIGdhcmRlbmluZwpwcmFjdGljZXMsIHN1Y2ggYXMgbm8tZGlnIGdhcmRlbmluZwo8 aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTm8tZGlnX2dhcmRlbmluZz4sIG9yZ2FuaWMg bm8tdGlsbCBjcm9wCnByb2R1Y3Rpb24gPGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL05v LXRpbGxfZmFybWluZz4sIGFncm9mb3Jlc3RyeQo8aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dp a2kvQWdyb2ZvcmVzdHJ5PmFuZCBvdGhlcnMgYXJlIGhlYXZpbHkKZGVwZW5kZW50IG9uIHRoZSBm dW5nYWwgbmV0d29yayB0aGF0IGNvbm5lY3RzIHBsYW50cyBhbmQgc29pbCBtaWNyb2Jpb2xvZ3ks CnJlZGlzdHJ1YnV0aW5nIG51dHJpZW50cyBhbmQgZW5oYW5jaW5nIHN5bmVyZ2lzdGljIGR5bmFt aWNzLgoKSW4gdGhpcyBzZW5zZSwgbXljb3JyaGl6YWwgZnVuZ2kgYXJlIGEgdG9vbCBvZiB0aGUg ZnV0dXJlLCBhbmQgd2UgbmVlZCB0bwp1bmRlcnN0YW5kIHRoZW0gYmV0dGVyIGluIG9yZGVyIHRv IGF2b2lkIHVzaW5nIHRoZW0gaW1wcm9wZXJseSBvcgppbmVmZmVjdGl2ZWx5LgpGdXJ0aGVyIChu b24tdGVjaG5pY2FsKSByZWFkaW5nCgoqTXljZWxpdW0gcnVubmluZyoKPGh0dHBzOi8vd3d3Lmdv b2RyZWFkcy5jb20vYm9vay9zaG93LzIzOTM5NS5NeWNlbGl1bV9SdW5uaW5nP2Zyb21fc2VhcmNo PXRydWUmcWlkPTFuckUzaUp6aEomcmFuaz0xPio6CioqSG93IE11c2hyb29tcyBDYW4gSGVscCBT YXZlIHRoZSBXb3JsZCoKPGh0dHBzOi8vd3d3Lmdvb2RyZWFkcy5jb20vYm9vay9zaG93LzIzOTM5 NS5NeWNlbGl1bV9SdW5uaW5nP2Zyb21fc2VhcmNoPXRydWUmcWlkPTFuckUzaUp6aEomcmFuaz0x PgoqLFBhdWwgU3RhbWV0cyoKSWYgeW91IGFyZSBhZnRlciBhbiBpbnRyaWd1aW5nIGJvb2sgb24g ZnVuZ2ksIFBhdWwgU3RhbWV0c+KAmSBib29rIHdvbuKAmXQKZGlzYXBwb2ludCB5b3UuCgoqTXlj b3JyaGl6YWwgcGxhbmV0KiA8aHR0cHM6Ly93d3cuZ29vZHJlYWRzLmNvbS9lbi9ib29rL3Nob3cv MzI1NjQ5NTQ+KiwgTS4KUGhpbGxpcHMgKgpGb3IgdGhvc2UgaW50ZXJlc3RlZCBpbiB1bmRlcnN0 YW5kaW5nIG15Y29ycmhpemFsLCB3aXRoIHBhcnRpY3VsYXIKYXR0ZW50aW9uIHRvIHRoZWlyIHVz ZSBpbiBwZXJtYWN1bHR1cmUgYW5kIHJlZ2VuZXJhdGl2ZSBhZ3JpY3VsdHVyZSwgdGhpcwppcyBh IHJpY2ggYW5kIHBsZWFzYW50IHJlYWQuClJlZmVyZW5jZXMKClRoZSBzY2llbnRpZmljIGFydGlj bGVzIGFuZCBhbGwgdGhlIG90aGVyIHJlZmVyZW5jZXMgY29ycmVzcG9uZGluZyB0byB0aGUKbnVt YmVyZWQgZm9vdG5vdGVzIGNhbiBiZSBvcGVuZWQgYnkgY2xpY2tpbmcgb24gdGhlIGxpbmsgYmVs b3cuIFRoZXkgYXJlIGluCmEgZ29vZ2xlIGRvYyBmb3JtYXQuIEkgc3VnZ2VzdCB0aGF0IHlvdSBv cGVuIHRoZW0gaW4gYSBzZXBhcmF0ZSB0YWIgKGJ5CnByZXNzaW5nIENUUkwrbGVmdC1jbGljaykg c28gdGhhdCB5b3UgbWlnaHQgcmVmZXIgYmFjayB0byB0aGVtIHdoaWxlIHlvdQpyZWFkIHRoZSBh cnRpY2xlLCB3aXRob3V0IHRoZSBuZWVkIHRvIHNjcm9sbCBiYWNrIGFuZCBmb3J0aC4KCmh0dHBz Oi8vZG9jcy5nb29nbGUuY29tL2RvY3VtZW50L2QvMTNVLVJhU3FfV3NraDJrdmpCZEstbDdVcWVp N0kxWXk3aThiTHpKeHlqLXcvZWRpdAoKUmVmZXJlbmNlcyAoTXljb3JyaGl6YWwgZnVuZ2kpCgog ICAxLgoKICAgRnJhbmssIEEuQi4sIDE4ODUuIMOcYmVyIGRpZSBhdWYgV3VyemVsc3ltYmlvc2Ug YmVydWhlbmRlIEVybsOkaHJ1bmcKICAgZ2V3aXNzZXIgQsOkdW1lIGR1cmNoIHVudGVyaXJkaXNj aGUgUGlsemUuIFtsaW5rCiAgIDxodHRwczovL3d3dy53b3JsZGNhdC5vcmcvdGl0bGUvYmVyaWNo dGUtZGVyLWRldXRzY2hlbi1ib3RhbmlzY2hlbi1nZXNlbGxzY2hhZnQvb2NsYy8xNTY2MzU5Pgog ICBdCiAgIDIuCgogICBTY2hldSwgUy4sIDIwMDIuIFRoZSBzb2lsIGZvb2Qgd2ViOiBzdHJ1Y3R1 cmUgYW5kIHBlcnNwZWN0aXZlcy4gRXVyb3BlYW4KICAgam91cm5hbCBvZiBzb2lsIGJpb2xvZ3ks IDM4KDEpLCBwcC4xMeKAkzIwLiBbbGluawogICA8aHR0cHM6Ly9kb2kub3JnLzEwLjEwMTYvUzEx NjQtNTU2MyUyODAxJTI5MDExMTctNz5dCiAgIDMuCgogICBCcnVuZHJldHQsIE0uQy4sIDIwMDIu IENvZXZvbHV0aW9uIG9mIHJvb3RzIGFuZCBteWNvcnJoaXphcyBvZiBsYW5kCiAgIHBsYW50cy4g TmV3IHBoeXRvbG9naXN0LCAxNTQoMiksIHBwLjI3NeKAkzMwNC4gW2xpbmsKICAgPGh0dHBzOi8v ZG9pLm9yZy8xMC4xMDQ2L2ouMTQ2OS04MTM3LjIwMDIuMDAzOTcueD5dCiAgIDQuCgogICBCZXJy dXRpLCBBLiwgTHVtaW5pLCBFLiwgQmFsZXN0cmluaSwgUi4gYW5kIEJpYW5jaW90dG8sIFYuLCAy MDE2LgogICBBcmJ1c2N1bGFyIG15Y29ycmhpemFsIGZ1bmdpIGFzIG5hdHVyYWwgYmlvZmVydGls aXplcnM6IGxldOKAmXMgYmVuZWZpdCBmcm9tCiAgIHBhc3Qgc3VjY2Vzc2VzLiBGcm9udGllcnMg aW4gbWljcm9iaW9sb2d5LCA2LCBwLjE1NTkuIFtsaW5rCiAgIDxodHRwczovL3d3dy5mcm9udGll cnNpbi5vcmcvYXJ0aWNsZXMvMTAuMzM4OS9mbWljYi4yMDE1LjAxNTU5L2Z1bGw+XQogICA1LgoK ICAgS2xlaW4sIFQuLCBTaWVnd29sZiwgUi5ULiBhbmQgS8O2cm5lciwgQy4sIDIwMTYuIEJlbG93 Z3JvdW5kIGNhcmJvbiB0cmFkZQogICBhbW9uZyB0YWxsIHRyZWVzIGluIGEgdGVtcGVyYXRlIGZv cmVzdC4gU2NpZW5jZSwgMzUyKDYyODMpLCBwcC4zNDLigJMzNDQuIFsKICAgbGluayA8aHR0cHM6 Ly9zY2llbmNlLnNjaWVuY2VtYWcub3JnL2NvbnRlbnQvMzUyLzYyODMvMzQyPl0KICAgNi4KCiAg IENoYXVkaGFyeSwgVi5CLiwgUsO6YSwgTS5BLiwgQW50b25pbmthLCBBLiwgQmV2ZXIsIEouRC4s IENhbm5vbiwgSi4sCiAgIENyYWlnLCBBLiwgRHVjaGljZWxhLCBKLiwgRnJhbWUsIEEuLCBHYXJk ZXMsIE0uLCBHZWhyaW5nLCBDLiBhbmQgSGEsIE0uLAogICAyMDE2LiBNeWNvREIsIGEgZ2xvYmFs IGRhdGFiYXNlIG9mIHBsYW50IHJlc3BvbnNlIHRvIG15Y29ycmhpemFsCmZ1bmdpLiBTY2llbnRp ZmljCiAgIGRhdGEsIDMsIHAuMTYwMDI4LiBbbGluayA8aHR0cHM6Ly9kb2kub3JnLzEwLjUwNjEv ZHJ5YWQuNzIzbTE+XQogICA3LgoKICAgU21pdGgsIFMuRS4gYW5kIFJlYWQsIEQuSi4sIDIwMTAu IE15Y29ycmhpemFsIHN5bWJpb3Npcy4gQWNhZGVtaWMgcHJlc3MuCiAgIFtsaW5rCiAgIDxodHRw czovL2Jvb2tzLmdvb2dsZS5jby51ay9ib29rcz9obD1lbiZscj0maWQ9cUxjaU9KYUcwQzRDJm9p PWZuZCZwZz1QUDEmb3RzPXpxeVdvVlZFbk4mc2lnPUw5UnphcDQyMTFsRVRSQ3o3dEF3b2RJOVlT dyZyZWRpcl9lc2M9eSN2PW9uZXBhZ2UmcSZmPWZhbHNlPgogICBdCiAgIDguCgogICBBbGV4YW5k ZXIsIFQuLCBUb3RoLCBSLiwgTWVpZXIsIFIuIGFuZCBXZWJlciwgSC5DLiwgMTk4OS4gRHluYW1p Y3Mgb2YKICAgYXJidXNjdWxlIGRldmVsb3BtZW50IGFuZCBkZWdlbmVyYXRpb24gaW4gb25pb24s IGJlYW4sIGFuZCB0b21hdG8gd2l0aAogICByZWZlcmVuY2UgdG8gdmVzaWN1bGFy4oCTYXJidXNj dWxhciBteWNvcnJoaXphZSBpbiBncmFzc2VzLiBDYW5hZGlhbgogICBKb3VybmFsIG9mIEJvdGFu eSwgNjcoOCksIHBwLjI1MDXigJMyNTEzLiBbbGluawogICA8aHR0cHM6Ly9kb2kub3JnLzEwLjEx MzkvYjg5LTMyMD5dCiAgIDkuCgogICBCYXRpLCBDLkIuLCBTYW50aWxsaSwgRS4gYW5kIExvbWJh cmRvLCBMLiwgMjAxNS4gRWZmZWN0IG9mIGFyYnVzY3VsYXIKICAgbXljb3JyaGl6YWwgZnVuZ2kg b24gZ3Jvd3RoIGFuZCBvbiBtaWNyb251dHJpZW50IGFuZCBtYWNyb251dHJpZW50IHVwdGFrZQog ICBhbmQgYWxsb2NhdGlvbiBpbiBvbGl2ZSBwbGFudGxldHMgZ3Jvd2luZyB1bmRlciBoaWdoIHRv dGFsIE1uIGxldmVscy4KICAgTXljb3JyaGl6YSwgMjUoMiksIHBwLjk34oCTMTA4LiBbbGluawog ICA8aHR0cHM6Ly9kb2kub3JnLzEwLjEwMDcvczAwNTcyLTAxNC0wNTg5LTA+XQogICAxMC4KCiAg IELDvGNraW5nLCBILiwgMjAxMS4gRWN0b215Y29yZW1lZGlhdGlvbjogYW4gZWNvLWZyaWVuZGx5 IHRlY2huaXF1ZSBmb3IKICAgdGhlIHJlbWVkaWF0aW9uIG9mIHBvbGx1dGVkIHNpdGVzLiBJbiBE aXZlcnNpdHkgYW5kIGJpb3RlY2hub2xvZ3kgb2YKICAgZWN0b215Y29ycmhpemFlIChwcC4gMjA5 4oCTMjI5KS4gU3ByaW5nZXIsIEJlcmxpbiwgSGVpZGVsYmVyZy4gW2xpbmsKICAgPGh0dHBzOi8v ZG9pLm9yZy8xMC4xMDA3Lzk3OC0zLTY0Mi0xNTE5Ni01XzEwXT5dCiAgIDExLgoKICAgQsO8Y2tp bmcsIEguLCBBYnViYWtlciwgSi4sIEdvdmluZGFyYWp1bHUsIE0uLCBUYWxhLCBNLiwgUGZlZmZl ciwgUC5FLiwKICAgTmFnYWhhc2hpLCBHLiwgTGFtbWVycywgUC4gYW5kIFNoYWNoYXLigJBIaWxs LCBZLiwgMjAwOC4gUm9vdCBleHVkYXRlcwogICBzdGltdWxhdGUgdGhlIHVwdGFrZSBhbmQgbWV0 YWJvbGlzbSBvZiBvcmdhbmljIGNhcmJvbiBpbiBnZXJtaW5hdGluZyBzcG9yZXMKICAgb2YgR2xv bXVzIGludHJhcmFkaWNlcy4gTmV3IFBoeXRvbG9naXN0LCAxODAoMyksIHBwLjY4NOKAkzY5NS4g W2xpbmsKICAgPGh0dHBzOi8vZG9pLm9yZy8xMC4xMTExL2ouMTQ2OS04MTM3LjIwMDguMDI1OTAu eD5dCiAgIDEyLgoKICAgSGlqcmksIE0uIGFuZCBTYW5kZXJzLCBJLlIuLCAyMDA1LiBMb3cgZ2Vu ZSBjb3B5IG51bWJlciBzaG93cyB0aGF0CiAgIGFyYnVzY3VsYXIgbXljb3JyaGl6YWwgZnVuZ2kg aW5oZXJpdCBnZW5ldGljYWxseSBkaWZmZXJlbnQgbnVjbGVpLiBOYXR1cmUsCiAgIDQzMyg3MDIy KSwgcC4xNjAuIFtsaW5rCiAgIDxodHRwczovL3VpLmFkc2Ficy5oYXJ2YXJkLmVkdS9hYnMvMjAw NU5hdHVyLjQzMy4uMTYwSC9hYnN0cmFjdD5dCiAgIDEzLgoKICAgRG91ZHMgSnIsIEQuRC4sIEdh bHZleiwgTC4sIEphbmtlLCBSLlIuIGFuZCBXYWdvbmVyLCBQLiwgMTk5NS4gRWZmZWN0IG9mCiAg IHRpbGxhZ2UgYW5kIGZhcm1pbmcgc3lzdGVtIHVwb24gcG9wdWxhdGlvbnMgYW5kIGRpc3RyaWJ1 dGlvbiBvZgogICB2ZXNpY3VsYXItYXJidXNjdWxhciBteWNvcnJoaXphbCBmdW5naS4gQWdyaWN1 bHR1cmUsIGVjb3N5c3RlbXMgJgogICBlbnZpcm9ubWVudCwgNTIoMuKAkzMpLCBwcC4xMTHigJMx MTguIFtsaW5rCiAgIDxodHRwczovL2RvaS5vcmcvMTAuMTAxNi8wMTY3LTg4MDklMjg5NCUyOTAw NTUwLVg+XQogICAxNC4KCiAgIFN1a2Fybm8sIE4uLCBTbWl0aCwgUy5FLiBhbmQgU2NvdHQsIEUu Uy4sIDE5OTMuIFRoZSBlZmZlY3Qgb2YgZnVuZ2ljaWRlcwogICBvbiB2ZXNpY3VsYXLigJNhcmJ1 c2N1bGFyIG15Y29ycmhpemFsIHN5bWJpb3NpczogSS4gVGhlIGVmZmVjdHMgb24KICAgdmVzaWN1 bGFy4oCTYXJidXNjdWxhciBteWNvcnJoaXphbCBmdW5naSBhbmQgcGxhbnQgZ3Jvd3RoLiBOZXcg UGh5dG9sb2dpc3QsCiAgIDEyNSgxKSwgcHAuMTM54oCTMTQ3LiBbbGluawogICA8aHR0cHM6Ly9k b2kub3JnLzEwLjExMTEvai4xNDY5LTgxMzcuMTk5My50YjAzODcyLng+XQogICAxNS4KCiAgIFdh bmcsIEcuTS4sIFN0cmlibGV5LCBELlAuLCBUaW5rZXIsIFAuQi4gYW5kIFdhbGtlciwgQy4sIDE5 OTMuIEVmZmVjdHMKICAgb2YgcEggb24gYXJidXNjdWxhciBteWNvcnJoaXphIEkuIEZpZWxkIG9i c2VydmF0aW9ucyBvbiB0aGUgbG9uZ+KAkHRlcm0KICAgbGltaW5nIGV4cGVyaW1lbnRzIGF0IFJv dGhhbXN0ZWQgYW5kIFdvYnVybi4gTmV3IFBoeXRvbG9naXN0LCAxMjQoMyksCiAgIHBwLjQ2NeKA kzQ3Mi4gW2xpbmsgPGh0dHBzOi8vZG9pLm9yZy8xMC4xMTExL2ouMTQ2OS04MTM3LjE5OTMudGIw MzgzNy54Pl0KICAgMTYuCgogICBMYW1iZXJzLCBILiBhbmQgVGVzdGUsIEYuUC4sIDIwMTMuIElu dGVyYWN0aW9ucyBiZXR3ZWVuIGFyYnVzY3VsYXIKICAgbXljb3JyaGl6YWwgYW5kIG5vbuKAkG15 Y29ycmhpemFsIHBsYW50czogZG8gbm9u4oCQbXljb3JyaGl6YWwgc3BlY2llcyBhdCBib3RoCiAg IGV4dHJlbWVzIG9mIG51dHJpZW50IGF2YWlsYWJpbGl0eSBwbGF5IHRoZSBzYW1lIGdhbWU/LiBQ bGFudCwgQ2VsbCAmCiAgIEVudmlyb25tZW50LCAzNigxMSksIHBwLjE5MTHigJMxOTE1LiBbbGlu awogICA8aHR0cHM6Ly9vbmxpbmVsaWJyYXJ5LndpbGV5LmNvbS9kb2kvcGRmLzEwLjExMTEvcGNl LjEyMTE3Pl0KICAgMTcuCgogICBEb3VkcywgRC5ELiwgTmFnYWhhc2hpLCBHLiwgV2lsc29uLCBE Lk8uIGFuZCBNb3llciwgSi4sIDIwMTEuIE1vbml0b3JpbmcKICAgdGhlIGRlY2xpbmUgaW4gQU0g ZnVuZ3VzIHBvcHVsYXRpb25zIGFuZCBlZmZpY2FjeSBkdXJpbmcgYSBsb25nIHRlcm0gYmFyZQog ICBmYWxsb3cuIFBsYW50IGFuZCBzb2lsLCAzNDIoMeKAkzIpLCBwcC4zMTnigJMzMjYuIFtsaW5r CiAgIDxodHRwczovL2RvaS5vcmcvMTAuMTAwNy9zMTExMDQtMDEwLTA2OTctMz5dCiAgIDE4LgoK ICAgUnlhbiwgTS5ILiBhbmQgR3JhaGFtLCBKLkguLCAyMDE4LiBMaXR0bGUgZXZpZGVuY2UgdGhh dCBmYXJtZXJzIHNob3VsZAogICBjb25zaWRlciBhYnVuZGFuY2Ugb3IgZGl2ZXJzaXR5IG9mIGFy YnVzY3VsYXIgbXljb3JyaGl6YWwgZnVuZ2kgd2hlbgogICBtYW5hZ2luZyBjcm9wcy4gTmV3IFBo eXRvbG9naXN0LCAyMjAoNCksIHBwLjEwOTLigJMxMTA3LiBbbGluawogICA8aHR0cHM6Ly9ucGgu b25saW5lbGlicmFyeS53aWxleS5jb20vZG9pL2Ficy8xMC4xMTExL25waC4xNTMwOCU0MDEwLjEx MTEvJTI4SVNTTiUyOTE0NjktODEzNy5jcm9zcy1zY2FsZWludGVyZ3JhdGlvbm9mbXljb3JyaGl6 YWxmdW5jdGlvbj4KICAgXQogICAxOS4KCiAgIExhbmcsIEMuLCBTZXZlbiwgSi4gYW5kIFBvbGxl LCBBLiwgMjAxMS4gSG9zdCBwcmVmZXJlbmNlcyBhbmQKICAgZGlmZmVyZW50aWFsIGNvbnRyaWJ1 dGlvbnMgb2YgZGVjaWR1b3VzIHRyZWUgc3BlY2llcyBzaGFwZSBteWNvcnJoaXphbAogICBzcGVj aWVzIHJpY2huZXNzIGluIGEgbWl4ZWQgQ2VudHJhbCBFdXJvcGVhbiBmb3Jlc3QuIE15Y29ycmhp emEsIDIxKDQpLAogICBwcC4yOTfigJMzMDguCiAgIDIwLgoKICAgRmVybGlhbiwgTy4sIEJpZXJl LCBBLiwgQm9uZmFudGUsIFAuLCBCdXNjb3QsIEYuLCBFaXNlbmhhdWVyLCBOLiwKICAgRmVybmFu ZGV6LCBJLiwgSGF1c2UsIEIuLCBIZXJybWFubiwgUy4sIEtyYWppbnNraS1CYXJ0aCwgRi4sIE1l aWVyLCBJLkMuCiAgIGFuZCBQb3pvLCBNLkouLCAyMDE4LiBHcm93aW5nIHJlc2VhcmNoIG5ldHdv cmtzIG9uIG15Y29ycmhpemFlIGZvciBtdXR1YWwKICAgYmVuZWZpdHMuIFRyZW5kcyBpbiBwbGFu dCBzY2llbmNlLCAyMygxMSksIHBwLjk3NeKAkzk4NC4gW2xpbmsKICAgPGh0dHBzOi8vd3d3LnNj aWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzEzNjAxMzg1MTgzMDE4ODIjYmli MDA1MD4KICAgXQogICAyMS4KCiAgIEJydW5kcmV0dCwgTS5DLiwgMjAwOS4gTXljb3JyaGl6YWwg YXNzb2NpYXRpb25zIGFuZCBvdGhlciBtZWFucyBvZgogICBudXRyaXRpb24gb2YgdmFzY3VsYXIg cGxhbnRzOiB1bmRlcnN0YW5kaW5nIHRoZSBnbG9iYWwgZGl2ZXJzaXR5IG9mIGhvc3QKICAgcGxh bnRzIGJ5IHJlc29sdmluZyBjb25mbGljdGluZyBpbmZvcm1hdGlvbiBhbmQgZGV2ZWxvcGluZyBy ZWxpYWJsZSBtZWFucwogICBvZiBkaWFnbm9zaXMuIFBsYW50IGFuZCBTb2lsLCAzMjAoMeKAkzIp LCBwcC4zN+KAkzc3LiBbbGluawogICA8aHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xl LzEwLjEwMDcvczExMTA0LTAwOC05ODc3LTk+XQogICAyMi4KCiAgIExpdHNpb3MsIEcuLCBTaW1z LCBDLkEuLCBXw7xlc3QsIFIuTy4sIFBlYXJtYW4sIFAuQi4sIFppbW1lcm1hbm4sIE4uRS4KICAg YW5kIFNhbGFtaW4sIE4uLCAyMDEyLiBNdXR1YWxpc20gd2l0aCBzZWEgYW5lbW9uZXMgdHJpZ2dl cmVkIHRoZSBhZGFwdGl2ZQogICByYWRpYXRpb24gb2YgY2xvd25maXNoZXMuIEJNQyBFdm9sdXRp b25hcnkgQmlvbG9neSwgMTIoMSksIHAuMjEyLgogICAyMy4KCiAgIFZhbiBEZXIgSGVpamRlbiwg TS5HLiwgS2xpcm9ub21vcywgSi5OLiwgVXJzaWMsIE0uLCBNb3V0b2dsaXMsIFAuLAogICBTdHJl aXR3b2xmLUVuZ2VsLCBSLiwgQm9sbGVyLCBULiwgV2llbWtlbiwgQS4gYW5kIFNhbmRlcnMsIEku Ui4sIDE5OTguCiAgIE15Y29ycmhpemFsIGZ1bmdhbCBkaXZlcnNpdHkgZGV0ZXJtaW5lcyBwbGFu dCBiaW9kaXZlcnNpdHksIGVjb3N5c3RlbQogICB2YXJpYWJpbGl0eSBhbmQgcHJvZHVjdGl2aXR5 LiBOYXR1cmUsIDM5Nig2NzA2KSwgcC42OS4gW2xpbmsKICAgPGh0dHBzOi8vZG9pLm9yZy8xMC4x MDM4LzIzOTMyPl0KICAgMjQuCgogICBIYXJ0LCBNLk0uIGFuZCBGb3JzeXRoZSwgSi5BLiwgMjAx Mi4gVXNpbmcgYXJidXNjdWxhciBteWNvcnJoaXphbCBmdW5naQogICB0byBpbXByb3ZlIHRoZSBu dXRyaWVudCBxdWFsaXR5IG9mIGNyb3BzOyBudXRyaXRpb25hbCBiZW5lZml0cyBpbiBhZGRpdGlv bgogICB0byBwaG9zcGhvcnVzLiBTY2llbnRpYSBIb3J0aWN1bHR1cmFlLCAxNDgsIHBwLjIwNuKA kzIxNC4KICAgMjUuCgogICBTbWl0aCwgUy5FLiwgSmFrb2JzZW4sIEkuLCBHcsO4bmx1bmQsIE0u IGFuZCBTbWl0aCwgRi5BLiwgMjAxMS4gUm9sZXMgb2YKICAgYXJidXNjdWxhciBteWNvcnJoaXph cyBpbiBwbGFudCBwaG9zcGhvcnVzIG51dHJpdGlvbjogaW50ZXJhY3Rpb25zIGJldHdlZW4KICAg cGF0aHdheXMgb2YgcGhvc3Bob3J1cyB1cHRha2UgaW4gYXJidXNjdWxhciBteWNvcnJoaXphbCBy b290cyBoYXZlCiAgIGltcG9ydGFudCBpbXBsaWNhdGlvbnMgZm9yIHVuZGVyc3RhbmRpbmcgYW5k IG1hbmlwdWxhdGluZyBwbGFudCBwaG9zcGhvcnVzCiAgIGFjcXVpc2l0aW9uLiBQbGFudCBwaHlz aW9sb2d5LCAxNTYoMyksIHBwLjEwNTDigJMxMDU3LgogICAyNi4KCiAgIFNjaGFjaHRtYW4sIEQu UC4sIFJlaWQsIFIuSi4gYW5kIEF5bGluZywgUy5NLiwgMTk5OC4gUGhvc3Bob3J1cyB1cHRha2UK ICAgYnkgcGxhbnRzOiBmcm9tIHNvaWwgdG8gY2VsbC4gUGxhbnQgcGh5c2lvbG9neSwgMTE2KDIp LCBwcC40NDfigJM0NTMuCiAgIDI3LgoKICAgR2lhbmluYXp6aSwgUy4sIEdvbGxvdHRlLCBBLiwg QmluZXQsIE0uTi4sIHZhbiBUdWluZW4sIEQuLCBSZWRlY2tlciwgRC4KICAgYW5kIFdpcGYsIEQu LCAyMDEwLiBBZ3JvZWNvbG9neTogdGhlIGtleSByb2xlIG9mIGFyYnVzY3VsYXIgbXljb3JyaGl6 YXMgaW4KICAgZWNvc3lzdGVtIHNlcnZpY2VzLiBNeWNvcnJoaXphLCAyMCg4KSwgcHAuNTE54oCT NTMwLiBbbGluawogICA8aHR0cHM6Ly9kb2kub3JnLzEwLjEwMDcvczAwNTcyLTAxMC0wMzMzLTM+ XQogICAyOC4KCiAgIEJlbmRlciwgUy5GLiwgUGxhbnRlbmdhLCBGLiwgTmVmdGVsLCBBLiwgSm9j aGVyLCBNLiwgT2JlcmhvbHplciwgSC5SLiwKICAgS8O2aGwsIEwuLCBHaWxlcywgTS4sIERhbmll bGwsIFQuSi4gYW5kIFZhbiBEZXIgSGVpamRlbiwgTS5HLiwgMjAxNC4KICAgU3ltYmlvdGljIHJl bGF0aW9uc2hpcHMgYmV0d2VlbiBzb2lsIGZ1bmdpIGFuZCBwbGFudHMgcmVkdWNlIE4gMiBPCiAg IGVtaXNzaW9ucyBmcm9tIHNvaWwuIFRoZSBJU01FIGpvdXJuYWwsIDgoNiksIHAuMTMzNi4KICAg MjkuCgogICBhKSBQb3JjZWwsIFIuLCBBcm9jYSwgUi4gYW5kIFJ1aXotTG96YW5vLCBKLk0uLCAy MDEyLiBTYWxpbml0eSBzdHJlc3MKICAgYWxsZXZpYXRpb24gdXNpbmcgYXJidXNjdWxhciBteWNv cnJoaXphbCBmdW5naS4gQSByZXZpZXcuIEFncm9ub215IGZvcgogICBTdXN0YWluYWJsZSBEZXZl bG9wbWVudCwgMzIoMSksIHBwLjE4MeKAkzIwMC4KICAgYikgSGFydCwgTS5NLiBhbmQgRm9yc3l0 aGUsIEouQS4sIDIwMTIuIFVzaW5nIGFyYnVzY3VsYXIgbXljb3JyaGl6YWwKICAgZnVuZ2kgdG8g aW1wcm92ZSB0aGUgbnV0cmllbnQgcXVhbGl0eSBvZiBjcm9wczsgbnV0cml0aW9uYWwgYmVuZWZp dHMgaW4KICAgYWRkaXRpb24gdG8gcGhvc3Bob3J1cy4gU2NpZW50aWEgSG9ydGljdWx0dXJhZSwg MTQ4LCBwcC4yMDbigJMyMTQuCiAgIDMwLgoKICAgVGFtYXlvLCBFLiwgR8OzbWV6LUdhbGxlZ28s IFQuLCBBemPDs24tQWd1aWxhciwgQy4gYW5kIEZlcnJvbCwgTi4sIDIwMTQuCiAgIEdlbm9tZS13 aWRlIGFuYWx5c2lzIG9mIGNvcHBlciwgaXJvbiBhbmQgemluYyB0cmFuc3BvcnRlcnMgaW4gdGhl CiAgIGFyYnVzY3VsYXIgbXljb3JyaGl6YWwgZnVuZ3VzIFJoaXpvcGhhZ3VzIGlycmVndWxhcmlz LiBGcm9udGllcnMgaW4KICAgcGxhbnQgc2NpZW5jZSwgNSwgcC41NDcuCiAgIDMxLgoKICAgUmVp Y2hlbmF1ZXIgVEcsIEdlcm1pZGEgSkogKDIwMDgpLiDigJxQaHl0b3JlbWVkaWF0aW9uIG9mIG9y Z2FuaWMKICAgY29udGFtaW5hbnRzIGluIHNvaWwgYW5kIGdyb3VuZHdhdGVyCiAgIDMyLgoKICAg UG96bywgTS5KLiBhbmQgQXpjw7NuLUFndWlsYXIsIEMuLCAyMDA3LiBVbnJhdmVsaW5nIG15Y29y cmhpemEtaW5kdWNlZAogICByZXNpc3RhbmNlLiBDdXJyZW50IG9waW5pb24gaW4gcGxhbnQgYmlv bG9neSwgMTAoNCksIHBwLjM5M+KAkzM5OC4KICAgMzMuCgogICBVbmdlciwgUy4sIEZyaWVkZSwg TS4sIEh1bmRhY2tlciwgSi4sIFZvbGttYXIsIEsuIGFuZCBCZXlzY2hsYWcsIFcuLAogICAyMDE2 LiBBbGxvY2F0aW9uIHRyYWRlLW9mZiBiZXR3ZWVuIHJvb3QgYW5kIG15Y29ycmhpemFsIHN1cmZh Y2UgZGVmaW5lcwogICBuaXRyb2dlbiBhbmQgcGhvc3Bob3J1cyByZWxhdGlvbnMgaW4gMTMgZ3Jh c3NsYW5kIHNwZWNpZXMuIFBsYW50IGFuZCBzb2lsLAogICA0MDcoMeKAkzIpLCBwcC4yNznigJMy OTIuCiAgIDM0LgoKCiAgIGh0dHBzOi8vd3d3Lm5vLXRpbGxmYXJtZXIuY29tL2FydGljbGVzLzg0 MTAtcG9kY2FzdC1ob3ctcGxhbnRzLWZpbmQtdGhlaXItZm9vZC10aGUtYmVoYXZpb3JhbC1zY2ll bmNlLXVuZGVybHlpbmctcGxhbnQtbnV0cml0aW9uCiAgIDM1LgoKICAgQ29ya2lkaSwgTC4sIEFs bGVuLCBFLkIuLCBNZXJoYXV0LCBELiwgQWxsZW4sIE0uRi4sIERvd25lciwgSi4sIEJvaG4sIEou CiAgIGFuZCBFdmFucywgTS4sIDIwMDUuIEVmZmVjdGl2ZW5lc3Mgb2YgY29tbWVyY2lhbCBteWNv cnJoaXphbCBpbm9jdWxhbnRzIG9uCiAgIHRoZSBncm93dGggb2YgTGlxdWlkYW1iYXIgc3R5cmFj aWZsdWEgaW4gcGxhbnQgbnVyc2VyeSBjb25kaXRpb25zLiBKb3VybmFsCiAgIG9mIEVudmlyb25t ZW50YWwgSG9ydGljdWx0dXJlLCAyMygyKSwgcHAuNzLigJM3Ni4KICAgMzYuCgogICBKb2huc29u LCBOLkMuLCBHcmFoYW0sIEouSC4gYW5kIFNtaXRoLCBGLkEuLCAxOTk3LiBGdW5jdGlvbmluZyBv ZgogICBteWNvcnJoaXphbCBhc3NvY2lhdGlvbnMgYWxvbmcgdGhlIG11dHVhbGlzbeKAk3BhcmFz aXRpc20gY29udGludXVtLiBUaGUKICAgTmV3IFBoeXRvbG9naXN0LCAxMzUoNCksIHBwLjU3NS01 ODUuCiAgIDM3LgoKICAgQmVycnksIFcuIFRoZSB1bnNldHRsaW5nIG9mIEFtZXJpY2E6IGN1bHR1 cmUgYW5kIGFncmljdWx0dXJlLiBbbGluawogICA8aHR0cHM6Ly93d3cuZ29vZHJlYWRzLmNvbS9i b29rL3Nob3cvMTQ2MTkxLlRoZV9VbnNldHRsaW5nX29mX0FtZXJpY2E+XQpwZXJtYWN1bHR1cmUg bWFpbGluZyBsaXN0CnBlcm1hY3VsdHVyZUBsaXN0cy5pYmlibGlvLm9yZwpzdWJzY3JpYmUvdW5z dWJzY3JpYmV8dXNlciBjb25maWd8bGlzdCBpbmZvOgpodHRwczovL2xpc3RzLmliaWJsaW8ub3Jn L21haWxtYW4vbGlzdGluZm8vcGVybWFjdWx0dXJlCg==