daily pastebin goal
26%
SHARE
TWEET

Untitled

a guest Mar 25th, 2019 65 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ICAKQWNjb3JkaW5nIHRvIGFsbCBrbm93biBsYXdzCm9mIGF2aWF0aW9uLAoKICAKdGhlcmUgaXMgbm8gd2F5IGEgYmVlCnNob3VsZCBiZSBhYmxlIHRvIGZseS4KCiAgCkl0cyB3aW5ncyBhcmUgdG9vIHNtYWxsIHRvIGdldAppdHMgZmF0IGxpdHRsZSBib2R5IG9mZiB0aGUgZ3JvdW5kLgoKICAKVGhlIGJlZSwgb2YgY291cnNlLCBmbGllcyBhbnl3YXkKCiAgCmJlY2F1c2UgYmVlcyBkb24ndCBjYXJlCndoYXQgaHVtYW5zIHRoaW5rIGlzIGltcG9zc2libGUuCgogIApZZWxsb3csIGJsYWNrLiBZZWxsb3csIGJsYWNrLgpZZWxsb3csIGJsYWNrLiBZZWxsb3csIGJsYWNrLgoKICAKT29oLCBibGFjayBhbmQgeWVsbG93IQpMZXQncyBzaGFrZSBpdCB1cCBhIGxpdHRsZS4KCiAgCkJhcnJ5ISBCcmVha2Zhc3QgaXMgcmVhZHkhCgogIApPb21pbmchCgogIApIYW5nIG9uIGEgc2Vjb25kLgoKICAKSGVsbG8/CgogIAotIEJhcnJ5PwotIEFkYW0/CgogIAotIE9hbiB5b3UgYmVsaWV2ZSB0aGlzIGlzIGhhcHBlbmluZz8KLSBJIGNhbid0LiBJJ2xsIHBpY2sgeW91IHVwLgoKICAKTG9va2luZyBzaGFycC4KCiAgClVzZSB0aGUgc3RhaXJzLiBZb3VyIGZhdGhlcgpwYWlkIGdvb2QgbW9uZXkgZm9yIHRob3NlLgoKICAKU29ycnkuIEknbSBleGNpdGVkLgoKICAKSGVyZSdzIHRoZSBncmFkdWF0ZS4KV2UncmUgdmVyeSBwcm91ZCBvZiB5b3UsIHNvbi4KCiAgCkEgcGVyZmVjdCByZXBvcnQgY2FyZCwgYWxsIEIncy4KCiAgClZlcnkgcHJvdWQuCgogIApNYSEgSSBnb3QgYSB0aGluZyBnb2luZyBoZXJlLgoKICAKLSBZb3UgZ290IGxpbnQgb24geW91ciBmdXp6LgotIE93ISBUaGF0J3MgbWUhCgogIAotIFdhdmUgdG8gdXMhIFdlJ2xsIGJlIGluIHJvdyAxMTgsMDAwLgotIEJ5ZSEKCiAgCkJhcnJ5LCBJIHRvbGQgeW91LApzdG9wIGZseWluZyBpbiB0aGUgaG91c2UhCgogIAotIEhleSwgQWRhbS4KLSBIZXksIEJhcnJ5LgoKICAKLSBJcyB0aGF0IGZ1enogZ2VsPwotIEEgbGl0dGxlLiBTcGVjaWFsIGRheSwgZ3JhZHVhdGlvbi4KCiAgCk5ldmVyIHRob3VnaHQgSSdkIG1ha2UgaXQuCgogIApUaHJlZSBkYXlzIGdyYWRlIHNjaG9vbCwKdGhyZWUgZGF5cyBoaWdoIHNjaG9vbC4KCiAgClRob3NlIHdlcmUgYXdrd2FyZC4KCiAgClRocmVlIGRheXMgY29sbGVnZS4gSSdtIGdsYWQgSSB0b29rCmEgZGF5IGFuZCBoaXRjaGhpa2VkIGFyb3VuZCB0aGUgaGl2ZS4KCiAgCllvdSBkaWQgY29tZSBiYWNrIGRpZmZlcmVudC4KCiAgCi0gSGksIEJhcnJ5LgotIEFydGllLCBncm93aW5nIGEgbXVzdGFjaGU/IExvb2tzIGdvb2QuCgogIAotIEhlYXIgYWJvdXQgRnJhbmtpZT8KLSBZZWFoLgoKICAKLSBZb3UgZ29pbmcgdG8gdGhlIGZ1bmVyYWw/Ci0gTm8sIEknbSBub3QgZ29pbmcuCgogIApFdmVyeWJvZHkga25vd3MsCnN0aW5nIHNvbWVvbmUsIHlvdSBkaWUuCgogIApEb24ndCB3YXN0ZSBpdCBvbiBhIHNxdWlycmVsLgpTdWNoIGEgaG90aGVhZC4KCiAgCkkgZ3Vlc3MgaGUgY291bGQgaGF2ZQpqdXN0IGdvdHRlbiBvdXQgb2YgdGhlIHdheS4KCiAgCkkgbG92ZSB0aGlzIGluY29ycG9yYXRpbmcKYW4gYW11c2VtZW50IHBhcmsgaW50byBvdXIgZGF5LgoKICAKVGhhdCdzIHdoeSB3ZSBkb24ndCBuZWVkIHZhY2F0aW9ucy4KCiAgCkJveSwgcXVpdGUgYSBiaXQgb2YgcG9tcC4uLgp1bmRlciB0aGUgY2lyY3Vtc3RhbmNlcy4KCiAgCi0gV2VsbCwgQWRhbSwgdG9kYXkgd2UgYXJlIG1lbi4KLSBXZSBhcmUhCgogIAotIEJlZS1tZW4uCi0gQW1lbiEKCiAgCkhhbGxlbHVqYWghCgogIApTdHVkZW50cywgZmFjdWx0eSwgZGlzdGluZ3Vpc2hlZCBiZWVzLAoKICAKcGxlYXNlIHdlbGNvbWUgRGVhbiBCdXp6d2VsbC4KCiAgCldlbGNvbWUsIE5ldyBIaXZlIE9pdHkKZ3JhZHVhdGluZyBjbGFzcyBvZi4uLgoKICAKLi4uOToxNS4KCiAgClRoYXQgY29uY2x1ZGVzIG91ciBjZXJlbW9uaWVzLgoKICAKQW5kIGJlZ2lucyB5b3VyIGNhcmVlcgphdCBIb25leCBJbmR1c3RyaWVzIQoKICAKV2lsbCB3ZSBwaWNrIG91cmpvYiB0b2RheT8KCiAgCkkgaGVhcmQgaXQncyBqdXN0IG9yaWVudGF0aW9uLgoKICAKSGVhZHMgdXAhIEhlcmUgd2UgZ28uCgogIApLZWVwIHlvdXIgaGFuZHMgYW5kIGFudGVubmFzCmluc2lkZSB0aGUgdHJhbSBhdCBhbGwgdGltZXMuCgogIAotIFdvbmRlciB3aGF0IGl0J2xsIGJlIGxpa2U/Ci0gQSBsaXR0bGUgc2NhcnkuCgogIApXZWxjb21lIHRvIEhvbmV4LAphIGRpdmlzaW9uIG9mIEhvbmVzY28KCiAgCmFuZCBhIHBhcnQgb2YgdGhlIEhleGFnb24gR3JvdXAuCgogIApUaGlzIGlzIGl0IQoKICAKV293LgoKICAKV293LgoKICAKV2Uga25vdyB0aGF0IHlvdSwgYXMgYSBiZWUsCmhhdmUgd29ya2VkIHlvdXIgd2hvbGUgbGlmZQoKICAKdG8gZ2V0IHRvIHRoZSBwb2ludCB3aGVyZSB5b3UKY2FuIHdvcmsgZm9yIHlvdXIgd2hvbGUgbGlmZS4KCiAgCkhvbmV5IGJlZ2lucyB3aGVuIG91ciB2YWxpYW50IFBvbGxlbgpKb2NrcyBicmluZyB0aGUgbmVjdGFyIHRvIHRoZSBoaXZlLgoKICAKT3VyIHRvcC1zZWNyZXQgZm9ybXVsYQoKICAKaXMgYXV0b21hdGljYWxseSBjb2xvci1jb3JyZWN0ZWQsCnNjZW50LWFkanVzdGVkIGFuZCBidWJibGUtY29udG91cmVkCgogIAppbnRvIHRoaXMgc29vdGhpbmcgc3dlZXQgc3lydXAKCiAgCndpdGggaXRzIGRpc3RpbmN0aXZlCmdvbGRlbiBnbG93IHlvdSBrbm93IGFzLi4uCgogIApIb25leSEKCiAgCi0gVGhhdCBnaXJsIHdhcyBob3QuCi0gU2hlJ3MgbXkgY291c2luIQoKICAKLSBTaGUgaXM/Ci0gWWVzLCB3ZSdyZSBhbGwgY291c2lucy4KCiAgCi0gUmlnaHQuIFlvdSdyZSByaWdodC4KLSBBdCBIb25leCwgd2UgY29uc3RhbnRseSBzdHJpdmUKCiAgCnRvIGltcHJvdmUgZXZlcnkgYXNwZWN0Cm9mIGJlZSBleGlzdGVuY2UuCgogIApUaGVzZSBiZWVzIGFyZSBzdHJlc3MtdGVzdGluZwphIG5ldyBoZWxtZXQgdGVjaG5vbG9neS4KCiAgCi0gV2hhdCBkbyB5b3UgdGhpbmsgaGUgbWFrZXM/Ci0gTm90IGVub3VnaC4KCiAgCkhlcmUgd2UgaGF2ZSBvdXIgbGF0ZXN0IGFkdmFuY2VtZW50LAp0aGUgS3JlbG1hbi4KCiAgCi0gV2hhdCBkb2VzIHRoYXQgZG8/Ci0gT2F0Y2hlcyB0aGF0IGxpdHRsZSBzdHJhbmQgb2YgaG9uZXkKCiAgCnRoYXQgaGFuZ3MgYWZ0ZXIgeW91IHBvdXIgaXQuClNhdmVzIHVzIG1pbGxpb25zLgoKICAKT2FuIGFueW9uZSB3b3JrIG9uIHRoZSBLcmVsbWFuPwoKICAKT2YgY291cnNlLiBNb3N0IGJlZSBqb2JzIGFyZQpzbWFsbCBvbmVzLiBCdXQgYmVlcyBrbm93CgogIAp0aGF0IGV2ZXJ5IHNtYWxsIGpvYiwKaWYgaXQncyBkb25lIHdlbGwsIG1lYW5zIGEgbG90LgoKICAKQnV0IGNob29zZSBjYXJlZnVsbHkKCiAgCmJlY2F1c2UgeW91J2xsIHN0YXkgaW4gdGhlIGpvYgp5b3UgcGljayBmb3IgdGhlIHJlc3Qgb2YgeW91ciBsaWZlLgoKICAKVGhlIHNhbWUgam9iIHRoZSByZXN0IG9mIHlvdXIgbGlmZT8KSSBkaWRuJ3Qga25vdyB0aGF0LgoKICAKV2hhdCdzIHRoZSBkaWZmZXJlbmNlPwoKICAKWW91J2xsIGJlIGhhcHB5IHRvIGtub3cgdGhhdCBiZWVzLAphcyBhIHNwZWNpZXMsIGhhdmVuJ3QgaGFkIG9uZSBkYXkgb2ZmCgogIAppbiAyNyBtaWxsaW9uIHllYXJzLgoKICAKU28geW91J2xsIGp1c3Qgd29yayB1cyB0byBkZWF0aD8KCiAgCldlJ2xsIHN1cmUgdHJ5LgoKICAKV293ISBUaGF0IGJsZXcgbXkgbWluZCEKCiAgCiJXaGF0J3MgdGhlIGRpZmZlcmVuY2U/IgpIb3cgY2FuIHlvdSBzYXkgdGhhdD8KCiAgCk9uZSBqb2IgZm9yZXZlcj8KVGhhdCdzIGFuIGluc2FuZSBjaG9pY2UgdG8gaGF2ZSB0byBtYWtlLgoKICAKSSdtIHJlbGlldmVkLiBOb3cgd2Ugb25seSBoYXZlCnRvIG1ha2Ugb25lIGRlY2lzaW9uIGluIGxpZmUuCgogIApCdXQsIEFkYW0sIGhvdyBjb3VsZCB0aGV5Cm5ldmVyIGhhdmUgdG9sZCB1cyB0aGF0PwoKICAKV2h5IHdvdWxkIHlvdSBxdWVzdGlvbiBhbnl0aGluZz8KV2UncmUgYmVlcy4KCiAgCldlJ3JlIHRoZSBtb3N0IHBlcmZlY3RseQpmdW5jdGlvbmluZyBzb2NpZXR5IG9uIEVhcnRoLgoKICAKWW91IGV2ZXIgdGhpbmsgbWF5YmUgdGhpbmdzCndvcmsgYSBsaXR0bGUgdG9vIHdlbGwgaGVyZT8KCiAgCkxpa2Ugd2hhdD8gR2l2ZSBtZSBvbmUgZXhhbXBsZS4KCiAgCkkgZG9uJ3Qga25vdy4gQnV0IHlvdSBrbm93CndoYXQgSSdtIHRhbGtpbmcgYWJvdXQuCgogIApQbGVhc2UgY2xlYXIgdGhlIGdhdGUuClJveWFsIE5lY3RhciBGb3JjZSBvbiBhcHByb2FjaC4KCiAgCldhaXQgYSBzZWNvbmQuIE9oZWNrIGl0IG91dC4KCiAgCi0gSGV5LCB0aG9zZSBhcmUgUG9sbGVuIEpvY2tzIQotIFdvdy4KCiAgCkkndmUgbmV2ZXIgc2VlbiB0aGVtIHRoaXMgY2xvc2UuCgogIApUaGV5IGtub3cgd2hhdCBpdCdzIGxpa2UKb3V0c2lkZSB0aGUgaGl2ZS4KCiAgClllYWgsIGJ1dCBzb21lIGRvbid0IGNvbWUgYmFjay4KCiAgCi0gSGV5LCBKb2NrcyEKLSBIaSwgSm9ja3MhCgogIApZb3UgZ3V5cyBkaWQgZ3JlYXQhCgogIApZb3UncmUgbW9uc3RlcnMhCllvdSdyZSBza3kgZnJlYWtzISBJIGxvdmUgaXQhIEkgbG92ZSBpdCEKCiAgCi0gSSB3b25kZXIgd2hlcmUgdGhleSB3ZXJlLgotIEkgZG9uJ3Qga25vdy4KCiAgClRoZWlyIGRheSdzIG5vdCBwbGFubmVkLgoKICAKT3V0c2lkZSB0aGUgaGl2ZSwgZmx5aW5nIHdobyBrbm93cwp3aGVyZSwgZG9pbmcgd2hvIGtub3dzIHdoYXQuCgogIApZb3UgY2FuJ3RqdXN0IGRlY2lkZSB0byBiZSBhIFBvbGxlbgpKb2NrLiBZb3UgaGF2ZSB0byBiZSBicmVkIGZvciB0aGF0LgoKICAKUmlnaHQuCgogIApMb29rLiBUaGF0J3MgbW9yZSBwb2xsZW4KdGhhbiB5b3UgYW5kIEkgd2lsbCBzZWUgaW4gYSBsaWZldGltZS4KCiAgCkl0J3MganVzdCBhIHN0YXR1cyBzeW1ib2wuCkJlZXMgbWFrZSB0b28gbXVjaCBvZiBpdC4KCiAgClBlcmhhcHMuIFVubGVzcyB5b3UncmUgd2VhcmluZyBpdAphbmQgdGhlIGxhZGllcyBzZWUgeW91IHdlYXJpbmcgaXQuCgogIApUaG9zZSBsYWRpZXM/CkFyZW4ndCB0aGV5IG91ciBjb3VzaW5zIHRvbz8KCiAgCkRpc3RhbnQuIERpc3RhbnQuCgogIApMb29rIGF0IHRoZXNlIHR3by4KCiAgCi0gT291cGxlIG9mIEhpdmUgSGFycnlzLgotIExldCdzIGhhdmUgZnVuIHdpdGggdGhlbS4KCiAgCkl0IG11c3QgYmUgZGFuZ2Vyb3VzCmJlaW5nIGEgUG9sbGVuIEpvY2suCgogIApZZWFoLiBPbmNlIGEgYmVhciBwaW5uZWQgbWUKYWdhaW5zdCBhIG11c2hyb29tIQoKICAKSGUgaGFkIGEgcGF3IG9uIG15IHRocm9hdCwKYW5kIHdpdGggdGhlIG90aGVyLCBoZSB3YXMgc2xhcHBpbmcgbWUhCgogIAotIE9oLCBteSEKLSBJIG5ldmVyIHRob3VnaHQgSSdkIGtub2NrIGhpbSBvdXQuCgogIApXaGF0IHdlcmUgeW91IGRvaW5nIGR1cmluZyB0aGlzPwoKICAKVHJ5aW5nIHRvIGFsZXJ0IHRoZSBhdXRob3JpdGllcy4KCiAgCkkgY2FuIGF1dG9ncmFwaCB0aGF0LgoKICAKQSBsaXR0bGUgZ3VzdHkgb3V0IHRoZXJlIHRvZGF5LAp3YXNuJ3QgaXQsIGNvbXJhZGVzPwoKICAKWWVhaC4gR3VzdHkuCgogIApXZSdyZSBoaXR0aW5nIGEgc3VuZmxvd2VyIHBhdGNoCnNpeCBtaWxlcyBmcm9tIGhlcmUgdG9tb3Jyb3cuCgogIAotIFNpeCBtaWxlcywgaHVoPwotIEJhcnJ5IQoKICAKQSBwdWRkbGUganVtcCBmb3IgdXMsCmJ1dCBtYXliZSB5b3UncmUgbm90IHVwIGZvciBpdC4KCiAgCi0gTWF5YmUgSSBhbS4KLSBZb3UgYXJlIG5vdCEKCiAgCldlJ3JlIGdvaW5nIDA5MDAgYXQgSi1HYXRlLgoKICAKV2hhdCBkbyB5b3UgdGhpbmssIGJ1enp5LWJveT8KQXJlIHlvdSBiZWUgZW5vdWdoPwoKICAKSSBtaWdodCBiZS4gSXQgYWxsIGRlcGVuZHMKb24gd2hhdCAwOTAwIG1lYW5zLgoKICAKSGV5LCBIb25leCEKCiAgCkRhZCwgeW91IHN1cnByaXNlZCBtZS4KCiAgCllvdSBkZWNpZGUgd2hhdCB5b3UncmUgaW50ZXJlc3RlZCBpbj8KCiAgCi0gV2VsbCwgdGhlcmUncyBhIGxvdCBvZiBjaG9pY2VzLgotIEJ1dCB5b3Ugb25seSBnZXQgb25lLgoKICAKRG8geW91IGV2ZXIgZ2V0IGJvcmVkCmRvaW5nIHRoZSBzYW1lIGpvYiBldmVyeSBkYXk/CgogIApTb24sIGxldCBtZSB0ZWxsIHlvdSBhYm91dCBzdGlycmluZy4KCiAgCllvdSBncmFiIHRoYXQgc3RpY2ssIGFuZCB5b3UganVzdAptb3ZlIGl0IGFyb3VuZCwgYW5kIHlvdSBzdGlyIGl0IGFyb3VuZC4KCiAgCllvdSBnZXQgeW91cnNlbGYgaW50byBhIHJoeXRobS4KSXQncyBhIGJlYXV0aWZ1bCB0aGluZy4KCiAgCllvdSBrbm93LCBEYWQsCnRoZSBtb3JlIEkgdGhpbmsgYWJvdXQgaXQsCgogIAptYXliZSB0aGUgaG9uZXkgZmllbGQKanVzdCBpc24ndCByaWdodCBmb3IgbWUuCgogIApZb3Ugd2VyZSB0aGlua2luZyBvZiB3aGF0LAptYWtpbmcgYmFsbG9vbiBhbmltYWxzPwoKICAKVGhhdCdzIGEgYmFkIGpvYgpmb3IgYSBndXkgd2l0aCBhIHN0aW5nZXIuCgogIApKYW5ldCwgeW91ciBzb24ncyBub3Qgc3VyZQpoZSB3YW50cyB0byBnbyBpbnRvIGhvbmV5IQoKICAKLSBCYXJyeSwgeW91IGFyZSBzbyBmdW5ueSBzb21ldGltZXMuCi0gSSdtIG5vdCB0cnlpbmcgdG8gYmUgZnVubnkuCgogIApZb3UncmUgbm90IGZ1bm55ISBZb3UncmUgZ29pbmcKaW50byBob25leS4gT3VyIHNvbiwgdGhlIHN0aXJyZXIhCgogIAotIFlvdSdyZSBnb25uYSBiZSBhIHN0aXJyZXI/Ci0gTm8gb25lJ3MgbGlzdGVuaW5nIHRvIG1lIQoKICAKV2FpdCB0aWxsIHlvdSBzZWUgdGhlIHN0aWNrcyBJIGhhdmUuCgogIApJIGNvdWxkIHNheSBhbnl0aGluZyByaWdodCBub3cuCkknbSBnb25uYSBnZXQgYW4gYW50IHRhdHRvbyEKCiAgCkxldCdzIG9wZW4gc29tZSBob25leSBhbmQgY2VsZWJyYXRlIQoKICAKTWF5YmUgSSdsbCBwaWVyY2UgbXkgdGhvcmF4LgpTaGF2ZSBteSBhbnRlbm5hZS4KCiAgClNoYWNrIHVwIHdpdGggYSBncmFzc2hvcHBlci4gR2V0CmEgZ29sZCB0b290aCBhbmQgY2FsbCBldmVyeWJvZHkgImRhd2ciIQoKICAKSSdtIHNvIHByb3VkLgoKICAKLSBXZSdyZSBzdGFydGluZyB3b3JrIHRvZGF5IQotIFRvZGF5J3MgdGhlIGRheS4KCiAgCk9vbWUgb24hIEFsbCB0aGUgZ29vZCBqb2JzCndpbGwgYmUgZ29uZS4KCiAgClllYWgsIHJpZ2h0LgoKICAKUG9sbGVuIGNvdW50aW5nLCBzdHVudCBiZWUsIHBvdXJpbmcsCnN0aXJyZXIsIGZyb250IGRlc2ssIGhhaXIgcmVtb3ZhbC4uLgoKICAKLSBJcyBpdCBzdGlsbCBhdmFpbGFibGU/Ci0gSGFuZyBvbi4gVHdvIGxlZnQhCgogIApPbmUgb2YgdGhlbSdzIHlvdXJzISBPb25ncmF0dWxhdGlvbnMhClN0ZXAgdG8gdGhlIHNpZGUuCgogIAotIFdoYXQnZCB5b3UgZ2V0PwotIFBpY2tpbmcgY3J1ZCBvdXQuIFN0ZWxsYXIhCgogIApXb3chCgogIApPb3VwbGUgb2YgbmV3Ymllcz8KCiAgClllcywgc2lyISBPdXIgZmlyc3QgZGF5ISBXZSBhcmUgcmVhZHkhCgogIApNYWtlIHlvdXIgY2hvaWNlLgoKICAKLSBZb3Ugd2FudCB0byBnbyBmaXJzdD8KLSBObywgeW91IGdvLgoKICAKT2gsIG15LiBXaGF0J3MgYXZhaWxhYmxlPwoKICAKUmVzdHJvb20gYXR0ZW5kYW50J3Mgb3BlbiwKbm90IGZvciB0aGUgcmVhc29uIHlvdSB0aGluay4KCiAgCi0gQW55IGNoYW5jZSBvZiBnZXR0aW5nIHRoZSBLcmVsbWFuPwotIFN1cmUsIHlvdSdyZSBvbi4KCiAgCkknbSBzb3JyeSwgdGhlIEtyZWxtYW4ganVzdCBjbG9zZWQgb3V0LgoKICAKV2F4IG1vbmtleSdzIGFsd2F5cyBvcGVuLgoKICAKVGhlIEtyZWxtYW4gb3BlbmVkIHVwIGFnYWluLgoKICAKV2hhdCBoYXBwZW5lZD8KCiAgCkEgYmVlIGRpZWQuIE1ha2VzIGFuIG9wZW5pbmcuIFNlZT8KSGUncyBkZWFkLiBBbm90aGVyIGRlYWQgb25lLgoKICAKRGVhZHkuIERlYWRpZmllZC4gVHdvIG1vcmUgZGVhZC4KCiAgCkRlYWQgZnJvbSB0aGUgbmVjayB1cC4KRGVhZCBmcm9tIHRoZSBuZWNrIGRvd24uIFRoYXQncyBsaWZlIQoKICAKT2gsIHRoaXMgaXMgc28gaGFyZCEKCiAgCkhlYXRpbmcsIGNvb2xpbmcsCnN0dW50IGJlZSwgcG91cmVyLCBzdGlycmVyLAoKICAKaHVtbWluZywgaW5zcGVjdG9yIG51bWJlciBzZXZlbiwKbGludCBjb29yZGluYXRvciwgc3RyaXBlIHN1cGVydmlzb3IsCgogIAptaXRlIHdyYW5nbGVyLiBCYXJyeSwgd2hhdApkbyB5b3UgdGhpbmsgSSBzaG91bGQuLi4gQmFycnk/CgogIApCYXJyeSEKCiAgCkFsbCByaWdodCwgd2UndmUgZ290IHRoZSBzdW5mbG93ZXIgcGF0Y2gKaW4gcXVhZHJhbnQgbmluZS4uLgoKICAKV2hhdCBoYXBwZW5lZCB0byB5b3U/CldoZXJlIGFyZSB5b3U/CgogIAotIEknbSBnb2luZyBvdXQuCi0gT3V0PyBPdXQgd2hlcmU/CgogIAotIE91dCB0aGVyZS4KLSBPaCwgbm8hCgogIApJIGhhdmUgdG8sIGJlZm9yZSBJIGdvCnRvIHdvcmsgZm9yIHRoZSByZXN0IG9mIG15IGxpZmUuCgogIApZb3UncmUgZ29ubmEgZGllISBZb3UncmUgY3JhenkhIEhlbGxvPwoKICAKQW5vdGhlciBjYWxsIGNvbWluZyBpbi4KCiAgCklmIGFueW9uZSdzIGZlZWxpbmcgYnJhdmUsCnRoZXJlJ3MgYSBLb3JlYW4gZGVsaSBvbiA4M3JkCgogIAp0aGF0IGdldHMgdGhlaXIgcm9zZXMgdG9kYXkuCgogIApIZXksIGd1eXMuCgogIAotIExvb2sgYXQgdGhhdC4KLSBJc24ndCB0aGF0IHRoZSBraWQgd2Ugc2F3IHllc3RlcmRheT8KCiAgCkhvbGQgaXQsIHNvbiwgZmxpZ2h0IGRlY2sncyByZXN0cmljdGVkLgoKICAKSXQncyBPSywgTG91LiBXZSdyZSBnb25uYSB0YWtlIGhpbSB1cC4KCiAgClJlYWxseT8gRmVlbGluZyBsdWNreSwgYXJlIHlvdT8KCiAgClNpZ24gaGVyZSwgaGVyZS4gSnVzdCBpbml0aWFsIHRoYXQuCgogIAotIFRoYW5rIHlvdS4KLSBPSy4KCiAgCllvdSBnb3QgYSByYWluIGFkdmlzb3J5IHRvZGF5LAoKICAKYW5kIGFzIHlvdSBhbGwga25vdywKYmVlcyBjYW5ub3QgZmx5IGluIHJhaW4uCgogIApTbyBiZSBjYXJlZnVsLiBBcyBhbHdheXMsCndhdGNoIHlvdXIgYnJvb21zLAoKICAKaG9ja2V5IHN0aWNrcywgZG9ncywKYmlyZHMsIGJlYXJzIGFuZCBiYXRzLgoKICAKQWxzbywgSSBnb3QgYSBjb3VwbGUgb2YgcmVwb3J0cwpvZiByb290IGJlZXIgYmVpbmcgcG91cmVkIG9uIHVzLgoKICAKTXVycGh5J3MgaW4gYSBob21lIGJlY2F1c2Ugb2YgaXQsCmJhYmJsaW5nIGxpa2UgYSBjaWNhZGEhCgogIAotIFRoYXQncyBhd2Z1bC4KLSBBbmQgYSByZW1pbmRlciBmb3IgeW91IHJvb2tpZXMsCgogIApiZWUgbGF3IG51bWJlciBvbmUsCmFic29sdXRlbHkgbm8gdGFsa2luZyB0byBodW1hbnMhCgogIApBbGwgcmlnaHQsIGxhdW5jaCBwb3NpdGlvbnMhCgogIApCdXp6LCBidXp6LCBidXp6LCBidXp6ISBCdXp6LCBidXp6LApidXp6LCBidXp6ISBCdXp6LCBidXp6LCBidXp6LCBidXp6IQoKICAKQmxhY2sgYW5kIHllbGxvdyEKCiAgCkhlbGxvIQoKICAKWW91IHJlYWR5IGZvciB0aGlzLCBob3Qgc2hvdD8KCiAgClllYWguIFllYWgsIGJyaW5nIGl0IG9uLgoKICAKV2luZCwgY2hlY2suCgogIAotIEFudGVubmFlLCBjaGVjay4KLSBOZWN0YXIgcGFjaywgY2hlY2suCgogIAotIFdpbmdzLCBjaGVjay4KLSBTdGluZ2VyLCBjaGVjay4KCiAgClNjYXJlZCBvdXQgb2YgbXkgc2hvcnRzLCBjaGVjay4KCiAgCk9LLCBsYWRpZXMsCgogIApsZXQncyBtb3ZlIGl0IG91dCEKCiAgClBvdW5kIHRob3NlIHBldHVuaWFzLAp5b3Ugc3RyaXBlZCBzdGVtLXN1Y2tlcnMhCgogIApBbGwgb2YgeW91LCBkcmFpbiB0aG9zZSBmbG93ZXJzIQoKICAKV293ISBJJ20gb3V0IQoKICAKSSBjYW4ndCBiZWxpZXZlIEknbSBvdXQhCgogIApTbyBibHVlLgoKICAKSSBmZWVsIHNvIGZhc3QgYW5kIGZyZWUhCgogIApCb3gga2l0ZSEKCiAgCldvdyEKCiAgCkZsb3dlcnMhCgogIApUaGlzIGlzIEJsdWUgTGVhZGVyLgpXZSBoYXZlIHJvc2VzIHZpc3VhbC4KCiAgCkJyaW5nIGl0IGFyb3VuZCAzMCBkZWdyZWVzIGFuZCBob2xkLgoKICAKUm9zZXMhCgogIAozMCBkZWdyZWVzLCByb2dlci4gQnJpbmdpbmcgaXQgYXJvdW5kLgoKICAKU3RhbmQgdG8gdGhlIHNpZGUsIGtpZC4KSXQncyBnb3QgYSBiaXQgb2YgYSBraWNrLgoKICAKVGhhdCBpcyBvbmUgbmVjdGFyIGNvbGxlY3RvciEKCiAgCi0gRXZlciBzZWUgcG9sbGluYXRpb24gdXAgY2xvc2U/Ci0gTm8sIHNpci4KCiAgCkkgcGljayB1cCBzb21lIHBvbGxlbiBoZXJlLCBzcHJpbmtsZSBpdApvdmVyIGhlcmUuIE1heWJlIGEgZGFzaCBvdmVyIHRoZXJlLAoKICAKYSBwaW5jaCBvbiB0aGF0IG9uZS4KU2VlIHRoYXQ/IEl0J3MgYSBsaXR0bGUgYml0IG9mIG1hZ2ljLgoKICAKVGhhdCdzIGFtYXppbmcuIFdoeSBkbyB3ZSBkbyB0aGF0PwoKICAKVGhhdCdzIHBvbGxlbiBwb3dlci4gTW9yZSBwb2xsZW4sIG1vcmUKZmxvd2VycywgbW9yZSBuZWN0YXIsIG1vcmUgaG9uZXkgZm9yIHVzLgoKICAKT29vbC4KCiAgCkknbSBwaWNraW5nIHVwIGEgbG90IG9mIGJyaWdodCB5ZWxsb3cuCk9vdWxkIGJlIGRhaXNpZXMuIERvbid0IHdlIG5lZWQgdGhvc2U/CgogIApPb3B5IHRoYXQgdmlzdWFsLgoKICAKV2FpdC4gT25lIG9mIHRoZXNlIGZsb3dlcnMKc2VlbXMgdG8gYmUgb24gdGhlIG1vdmUuCgogIApTYXkgYWdhaW4/IFlvdSdyZSByZXBvcnRpbmcKYSBtb3ZpbmcgZmxvd2VyPwoKICAKQWZmaXJtYXRpdmUuCgogIApUaGF0IHdhcyBvbiB0aGUgbGluZSEKCiAgClRoaXMgaXMgdGhlIGNvb2xlc3QuIFdoYXQgaXMgaXQ/CgogIApJIGRvbid0IGtub3csIGJ1dCBJJ20gbG92aW5nIHRoaXMgY29sb3IuCgogIApJdCBzbWVsbHMgZ29vZC4KTm90IGxpa2UgYSBmbG93ZXIsIGJ1dCBJIGxpa2UgaXQuCgogIApZZWFoLCBmdXp6eS4KCiAgCk9oZW1pY2FsLXkuCgogIApPYXJlZnVsLCBndXlzLiBJdCdzIGEgbGl0dGxlIGdyYWJieS4KCiAgCk15IHN3ZWV0IGxvcmQgb2YgYmVlcyEKCiAgCk9hbmR5LWJyYWluLCBnZXQgb2ZmIHRoZXJlIQoKICAKUHJvYmxlbSEKCiAgCi0gR3V5cyEKLSBUaGlzIGNvdWxkIGJlIGJhZC4KCiAgCkFmZmlybWF0aXZlLgoKICAKVmVyeSBjbG9zZS4KCiAgCkdvbm5hIGh1cnQuCgogIApNYW1hJ3MgbGl0dGxlIGJveS4KCiAgCllvdSBhcmUgd2F5IG91dCBvZiBwb3NpdGlvbiwgcm9va2llIQoKICAKT29taW5nIGluIGF0IHlvdSBsaWtlIGEgbWlzc2lsZSEKCiAgCkhlbHAgbWUhCgogIApJIGRvbid0IHRoaW5rIHRoZXNlIGFyZSBmbG93ZXJzLgoKICAKLSBTaG91bGQgd2UgdGVsbCBoaW0/Ci0gSSB0aGluayBoZSBrbm93cy4KCiAgCldoYXQgaXMgdGhpcz8hCgogIApNYXRjaCBwb2ludCEKCiAgCllvdSBjYW4gc3RhcnQgcGFja2luZyB1cCwgaG9uZXksCmJlY2F1c2UgeW91J3JlIGFib3V0IHRvIGVhdCBpdCEKCiAgCllvd3NlciEKCiAgCkdyb3NzLgoKICAKVGhlcmUncyBhIGJlZSBpbiB0aGUgY2FyIQoKICAKLSBEbyBzb21ldGhpbmchCi0gSSdtIGRyaXZpbmchCgogIAotIEhpLCBiZWUuCi0gSGUncyBiYWNrIGhlcmUhCgogIApIZSdzIGdvaW5nIHRvIHN0aW5nIG1lIQoKICAKTm9ib2R5IG1vdmUuIElmIHlvdSBkb24ndCBtb3ZlLApoZSB3b24ndCBzdGluZyB5b3UuIEZyZWV6ZSEKCiAgCkhlIGJsaW5rZWQhCgogIApTcHJheSBoaW0sIEdyYW5ueSEKCiAgCldoYXQgYXJlIHlvdSBkb2luZz8hCgogIApXb3cuLi4gdGhlIHRlbnNpb24gbGV2ZWwKb3V0IGhlcmUgaXMgdW5iZWxpZXZhYmxlLgoKICAKSSBnb3R0YSBnZXQgaG9tZS4KCiAgCk9hbid0IGZseSBpbiByYWluLgoKICAKT2FuJ3QgZmx5IGluIHJhaW4uCgogIApPYW4ndCBmbHkgaW4gcmFpbi4KCiAgCk1heWRheSEgTWF5ZGF5ISBCZWUgZ29pbmcgZG93biEKCiAgCktlbiwgY291bGQgeW91IGNsb3NlCnRoZSB3aW5kb3cgcGxlYXNlPwoKICAKS2VuLCBjb3VsZCB5b3UgY2xvc2UKdGhlIHdpbmRvdyBwbGVhc2U/CgogIApPaGVjayBvdXQgbXkgbmV3IHJlc3VtZS4KSSBtYWRlIGl0IGludG8gYSBmb2xkLW91dCBicm9jaHVyZS4KCiAgCllvdSBzZWU/IEZvbGRzIG91dC4KCiAgCk9oLCBuby4gTW9yZSBodW1hbnMuIEkgZG9uJ3QgbmVlZCB0aGlzLgoKICAKV2hhdCB3YXMgdGhhdD8KCiAgCk1heWJlIHRoaXMgdGltZS4gVGhpcyB0aW1lLiBUaGlzIHRpbWUuClRoaXMgdGltZSEgVGhpcyB0aW1lISBUaGlzLi4uCgogIApEcmFwZXMhCgogIApUaGF0IGlzIGRpYWJvbGljYWwuCgogIApJdCdzIGZhbnRhc3RpYy4gSXQncyBnb3QgYWxsIG15IHNwZWNpYWwKc2tpbGxzLCBldmVuIG15IHRvcC10ZW4gZmF2b3JpdGUgbW92aWVzLgoKICAKV2hhdCdzIG51bWJlciBvbmU/IFN0YXIgV2Fycz8KCiAgCk5haCwgSSBkb24ndCBnbyBmb3IgdGhhdC4uLgoKICAKLi4ua2luZCBvZiBzdHVmZi4KCiAgCk5vIHdvbmRlciB3ZSBzaG91bGRuJ3QgdGFsayB0byB0aGVtLgpUaGV5J3JlIG91dCBvZiB0aGVpciBtaW5kcy4KCiAgCldoZW4gSSBsZWF2ZSBhIGpvYiBpbnRlcnZpZXcsIHRoZXkncmUKZmxhYmJlcmdhc3RlZCwgY2FuJ3QgYmVsaWV2ZSB3aGF0IEkgc2F5LgoKICAKVGhlcmUncyB0aGUgc3VuLiBNYXliZSB0aGF0J3MgYSB3YXkgb3V0LgoKICAKSSBkb24ndCByZW1lbWJlciB0aGUgc3VuCmhhdmluZyBhIGJpZyA3NSBvbiBpdC4KCiAgCkkgcHJlZGljdGVkIGdsb2JhbCB3YXJtaW5nLgoKICAKSSBjb3VsZCBmZWVsIGl0IGdldHRpbmcgaG90dGVyLgpBdCBmaXJzdCBJIHRob3VnaHQgaXQgd2FzIGp1c3QgbWUuCgogIApXYWl0ISBTdG9wISBCZWUhCgogIApTdGFuZCBiYWNrLiBUaGVzZSBhcmUgd2ludGVyIGJvb3RzLgoKICAKV2FpdCEKCiAgCkRvbid0IGtpbGwgaGltIQoKICAKWW91IGtub3cgSSdtIGFsbGVyZ2ljIHRvIHRoZW0hClRoaXMgdGhpbmcgY291bGQga2lsbCBtZSEKCiAgCldoeSBkb2VzIGhpcyBsaWZlIGhhdmUKbGVzcyB2YWx1ZSB0aGFuIHlvdXJzPwoKICAKV2h5IGRvZXMgaGlzIGxpZmUgaGF2ZSBhbnkgbGVzcyB2YWx1ZQp0aGFuIG1pbmU/IElzIHRoYXQgeW91ciBzdGF0ZW1lbnQ/CgogIApJJ20ganVzdCBzYXlpbmcgYWxsIGxpZmUgaGFzIHZhbHVlLiBZb3UKZG9uJ3Qga25vdyB3aGF0IGhlJ3MgY2FwYWJsZSBvZiBmZWVsaW5nLgoKICAKTXkgYnJvY2h1cmUhCgogIApUaGVyZSB5b3UgZ28sIGxpdHRsZSBndXkuCgogIApJJ20gbm90IHNjYXJlZCBvZiBoaW0uCkl0J3MgYW4gYWxsZXJnaWMgdGhpbmcuCgogIApQdXQgdGhhdCBvbiB5b3VyIHJlc3VtZSBicm9jaHVyZS4KCiAgCk15IHdob2xlIGZhY2UgY291bGQgcHVmZiB1cC4KCiAgCk1ha2UgaXQgb25lIG9mIHlvdXIgc3BlY2lhbCBza2lsbHMuCgogIApLbm9ja2luZyBzb21lb25lIG91dAppcyBhbHNvIGEgc3BlY2lhbCBza2lsbC4KCiAgClJpZ2h0LiBCeWUsIFZhbmVzc2EuIFRoYW5rcy4KCiAgCi0gVmFuZXNzYSwgbmV4dCB3ZWVrPyBZb2d1cnQgbmlnaHQ/Ci0gU3VyZSwgS2VuLiBZb3Uga25vdywgd2hhdGV2ZXIuCgogIAotIFlvdSBjb3VsZCBwdXQgY2Fyb2IgY2hpcHMgb24gdGhlcmUuCi0gQnllLgoKICAKLSBTdXBwb3NlZCB0byBiZSBsZXNzIGNhbG9yaWVzLgotIEJ5ZS4KCiAgCkkgZ290dGEgc2F5IHNvbWV0aGluZy4KCiAgClNoZSBzYXZlZCBteSBsaWZlLgpJIGdvdHRhIHNheSBzb21ldGhpbmcuCgogIApBbGwgcmlnaHQsIGhlcmUgaXQgZ29lcy4KCiAgCk5haC4KCiAgCldoYXQgd291bGQgSSBzYXk/CgogIApJIGNvdWxkIHJlYWxseSBnZXQgaW4gdHJvdWJsZS4KCiAgCkl0J3MgYSBiZWUgbGF3LgpZb3UncmUgbm90IHN1cHBvc2VkIHRvIHRhbGsgdG8gYSBodW1hbi4KCiAgCkkgY2FuJ3QgYmVsaWV2ZSBJJ20gZG9pbmcgdGhpcy4KCiAgCkkndmUgZ290IHRvLgoKICAKT2gsIEkgY2FuJ3QgZG8gaXQuIE9vbWUgb24hCgogIApOby4gWWVzLiBOby4KCiAgCkRvIGl0LiBJIGNhbid0LgoKICAKSG93IHNob3VsZCBJIHN0YXJ0IGl0PwoiWW91IGxpa2UgamF6ej8iIE5vLCB0aGF0J3Mgbm8gZ29vZC4KCiAgCkhlcmUgc2hlIGNvbWVzISBTcGVhaywgeW91IGZvb2whCgogIApIaSEKCiAgCkknbSBzb3JyeS4KCiAgCi0gWW91J3JlIHRhbGtpbmcuCi0gWWVzLCBJIGtub3cuCgogIApZb3UncmUgdGFsa2luZyEKCiAgCkknbSBzbyBzb3JyeS4KCiAgCk5vLCBpdCdzIE9LLiBJdCdzIGZpbmUuCkkga25vdyBJJ20gZHJlYW1pbmcuCgogIApCdXQgSSBkb24ndCByZWNhbGwgZ29pbmcgdG8gYmVkLgoKICAKV2VsbCwgSSdtIHN1cmUgdGhpcwppcyB2ZXJ5IGRpc2NvbmNlcnRpbmcuCgogIApUaGlzIGlzIGEgYml0IG9mIGEgc3VycHJpc2UgdG8gbWUuCkkgbWVhbiwgeW91J3JlIGEgYmVlIQoKICAKSSBhbS4gQW5kIEknbSBub3Qgc3VwcG9zZWQKdG8gYmUgZG9pbmcgdGhpcywKCiAgCmJ1dCB0aGV5IHdlcmUgYWxsIHRyeWluZyB0byBraWxsIG1lLgoKICAKQW5kIGlmIGl0IHdhc24ndCBmb3IgeW91Li4uCgogIApJIGhhZCB0byB0aGFuayB5b3UuCkl0J3MganVzdCBob3cgSSB3YXMgcmFpc2VkLgoKICAKVGhhdCB3YXMgYSBsaXR0bGUgd2VpcmQuCgogIAotIEknbSB0YWxraW5nIHdpdGggYSBiZWUuCi0gWWVhaC4KCiAgCkknbSB0YWxraW5nIHRvIGEgYmVlLgpBbmQgdGhlIGJlZSBpcyB0YWxraW5nIHRvIG1lIQoKICAKSSBqdXN0IHdhbnQgdG8gc2F5IEknbSBncmF0ZWZ1bC4KSSdsbCBsZWF2ZSBub3cuCgogIAotIFdhaXQhIEhvdyBkaWQgeW91IGxlYXJuIHRvIGRvIHRoYXQ/Ci0gV2hhdD8KCiAgClRoZSB0YWxraW5nIHRoaW5nLgoKICAKU2FtZSB3YXkgeW91IGRpZCwgSSBndWVzcy4KIk1hbWEsIERhZGEsIGhvbmV5LiIgWW91IHBpY2sgaXQgdXAuCgogIAotIFRoYXQncyB2ZXJ5IGZ1bm55LgotIFllYWguCgogIApCZWVzIGFyZSBmdW5ueS4gSWYgd2UgZGlkbid0IGxhdWdoLAp3ZSdkIGNyeSB3aXRoIHdoYXQgd2UgaGF2ZSB0byBkZWFsIHdpdGguCgogIApBbnl3YXkuLi4KCiAgCk9hbiBJLi4uCgogIAouLi5nZXQgeW91IHNvbWV0aGluZz8KLSBMaWtlIHdoYXQ/CgogIApJIGRvbid0IGtub3cuIEkgbWVhbi4uLgpJIGRvbid0IGtub3cuIE9vZmZlZT8KCiAgCkkgZG9uJ3Qgd2FudCB0byBwdXQgeW91IG91dC4KCiAgCkl0J3Mgbm8gdHJvdWJsZS4gSXQgdGFrZXMgdHdvIG1pbnV0ZXMuCgogIAotIEl0J3MganVzdCBjb2ZmZWUuCi0gSSBoYXRlIHRvIGltcG9zZS4KCiAgCi0gRG9uJ3QgYmUgcmlkaWN1bG91cyEKLSBBY3R1YWxseSwgSSB3b3VsZCBsb3ZlIGEgY3VwLgoKICAKSGV5LCB5b3Ugd2FudCBydW0gY2FrZT8KCiAgCi0gSSBzaG91bGRuJ3QuCi0gSGF2ZSBzb21lLgoKICAKLSBObywgSSBjYW4ndC4KLSBPb21lIG9uIQoKICAKSSdtIHRyeWluZyB0byBsb3NlIGEgY291cGxlIG1pY3JvZ3JhbXMuCgogIAotIFdoZXJlPwotIFRoZXNlIHN0cmlwZXMgZG9uJ3QgaGVscC4KCiAgCllvdSBsb29rIGdyZWF0IQoKICAKSSBkb24ndCBrbm93IGlmIHlvdSBrbm93CmFueXRoaW5nIGFib3V0IGZhc2hpb24uCgogIApBcmUgeW91IGFsbCByaWdodD8KCiAgCk5vLgoKICAKSGUncyBtYWtpbmcgdGhlIHRpZSBpbiB0aGUgY2FiCmFzIHRoZXkncmUgZmx5aW5nIHVwIE1hZGlzb24uCgogIApIZSBmaW5hbGx5IGdldHMgdGhlcmUuCgogIApIZSBydW5zIHVwIHRoZSBzdGVwcyBpbnRvIHRoZSBjaHVyY2guClRoZSB3ZWRkaW5nIGlzIG9uLgoKICAKQW5kIGhlIHNheXMsICJXYXRlcm1lbG9uPwpJIHRob3VnaHQgeW91IHNhaWQgR3VhdGVtYWxhbi4KCiAgCldoeSB3b3VsZCBJIG1hcnJ5IGEgd2F0ZXJtZWxvbj8iCgogIApJcyB0aGF0IGEgYmVlIGpva2U/CgogIApUaGF0J3MgdGhlIGtpbmQgb2Ygc3R1ZmYgd2UgZG8uCgogIApZZWFoLCBkaWZmZXJlbnQuCgogIApTbywgd2hhdCBhcmUgeW91IGdvbm5hIGRvLCBCYXJyeT8KCiAgCkFib3V0IHdvcms/IEkgZG9uJ3Qga25vdy4KCiAgCkkgd2FudCB0byBkbyBteSBwYXJ0IGZvciB0aGUgaGl2ZSwKYnV0IEkgY2FuJ3QgZG8gaXQgdGhlIHdheSB0aGV5IHdhbnQuCgogIApJIGtub3cgaG93IHlvdSBmZWVsLgoKICAKLSBZb3UgZG8/Ci0gU3VyZS4KCiAgCk15IHBhcmVudHMgd2FudGVkIG1lIHRvIGJlIGEgbGF3eWVyIG9yCmEgZG9jdG9yLCBidXQgSSB3YW50ZWQgdG8gYmUgYSBmbG9yaXN0LgoKICAKLSBSZWFsbHk/Ci0gTXkgb25seSBpbnRlcmVzdCBpcyBmbG93ZXJzLgoKICAKT3VyIG5ldyBxdWVlbiB3YXMganVzdCBlbGVjdGVkCndpdGggdGhhdCBzYW1lIGNhbXBhaWduIHNsb2dhbi4KCiAgCkFueXdheSwgaWYgeW91IGxvb2suLi4KCiAgClRoZXJlJ3MgbXkgaGl2ZSByaWdodCB0aGVyZS4gU2VlIGl0PwoKICAKWW91J3JlIGluIFNoZWVwIE1lYWRvdyEKCiAgClllcyEgSSdtIHJpZ2h0IG9mZiB0aGUgVHVydGxlIFBvbmQhCgogIApObyB3YXkhIEkga25vdyB0aGF0IGFyZWEuCkkgbG9zdCBhIHRvZSByaW5nIHRoZXJlIG9uY2UuCgogIAotIFdoeSBkbyBnaXJscyBwdXQgcmluZ3Mgb24gdGhlaXIgdG9lcz8KLSBXaHkgbm90PwoKICAKLSBJdCdzIGxpa2UgcHV0dGluZyBhIGhhdCBvbiB5b3VyIGtuZWUuCi0gTWF5YmUgSSdsbCB0cnkgdGhhdC4KCiAgCi0gWW91IGFsbCByaWdodCwgbWEnYW0/Ci0gT2gsIHllYWguIEZpbmUuCgogIApKdXN0IGhhdmluZyB0d28gY3VwcyBvZiBjb2ZmZWUhCgogIApBbnl3YXksIHRoaXMgaGFzIGJlZW4gZ3JlYXQuClRoYW5rcyBmb3IgdGhlIGNvZmZlZS4KCiAgClllYWgsIGl0J3Mgbm8gdHJvdWJsZS4KCiAgClNvcnJ5IEkgY291bGRuJ3QgZmluaXNoIGl0LiBJZiBJIGRpZCwKSSdkIGJlIHVwIHRoZSByZXN0IG9mIG15IGxpZmUuCgogIApBcmUgeW91Li4uPwoKICAKT2FuIEkgdGFrZSBhIHBpZWNlIG9mIHRoaXMgd2l0aCBtZT8KCiAgClN1cmUhIEhlcmUsIGhhdmUgYSBjcnVtYi4KCiAgCi0gVGhhbmtzIQotIFllYWguCgogIApBbGwgcmlnaHQuIFdlbGwsIHRoZW4uLi4KSSBndWVzcyBJJ2xsIHNlZSB5b3UgYXJvdW5kLgoKICAKT3Igbm90LgoKICAKT0ssIEJhcnJ5LgoKICAKQW5kIHRoYW5rIHlvdQpzbyBtdWNoIGFnYWluLi4uIGZvciBiZWZvcmUuCgogIApPaCwgdGhhdD8gVGhhdCB3YXMgbm90aGluZy4KCiAgCldlbGwsIG5vdCBub3RoaW5nLCBidXQuLi4gQW55d2F5Li4uCgogIApUaGlzIGNhbid0IHBvc3NpYmx5IHdvcmsuCgogIApIZSdzIGFsbCBzZXQgdG8gZ28uCldlIG1heSBhcyB3ZWxsIHRyeSBpdC4KCiAgCk9LLCBEYXZlLCBwdWxsIHRoZSBjaHV0ZS4KCiAgCi0gU291bmRzIGFtYXppbmcuCi0gSXQgd2FzIGFtYXppbmchCgogIApJdCB3YXMgdGhlIHNjYXJpZXN0LApoYXBwaWVzdCBtb21lbnQgb2YgbXkgbGlmZS4KCiAgCkh1bWFucyEgSSBjYW4ndCBiZWxpZXZlCnlvdSB3ZXJlIHdpdGggaHVtYW5zIQoKICAKR2lhbnQsIHNjYXJ5IGh1bWFucyEKV2hhdCB3ZXJlIHRoZXkgbGlrZT8KCiAgCkh1Z2UgYW5kIGNyYXp5LiBUaGV5IHRhbGsgY3JhenkuCgogIApUaGV5IGVhdCBjcmF6eSBnaWFudCB0aGluZ3MuClRoZXkgZHJpdmUgY3JhenkuCgogIAotIERvIHRoZXkgdHJ5IGFuZCBraWxsIHlvdSwgbGlrZSBvbiBUVj8KLSBTb21lIG9mIHRoZW0uIEJ1dCBzb21lIG9mIHRoZW0gZG9uJ3QuCgogIAotIEhvdydkIHlvdSBnZXQgYmFjaz8KLSBQb29kbGUuCgogIApZb3UgZGlkIGl0LCBhbmQgSSdtIGdsYWQuIFlvdSBzYXcKd2hhdGV2ZXIgeW91IHdhbnRlZCB0byBzZWUuCgogIApZb3UgaGFkIHlvdXIgImV4cGVyaWVuY2UuIiBOb3cgeW91CmNhbiBwaWNrIG91dCB5b3Vyam9iIGFuZCBiZSBub3JtYWwuCgogIAotIFdlbGwuLi4KLSBXZWxsPwoKICAKV2VsbCwgSSBtZXQgc29tZW9uZS4KCiAgCllvdSBkaWQ/IFdhcyBzaGUgQmVlLWlzaD8KCiAgCi0gQSB3YXNwPyEgWW91ciBwYXJlbnRzIHdpbGwga2lsbCB5b3UhCi0gTm8sIG5vLCBubywgbm90IGEgd2FzcC4KCiAgCi0gU3BpZGVyPwotIEknbSBub3QgYXR0cmFjdGVkIHRvIHNwaWRlcnMuCgogIApJIGtub3cgaXQncyB0aGUgaG90dGVzdCB0aGluZywKd2l0aCB0aGUgZWlnaHQgbGVncyBhbmQgYWxsLgoKICAKSSBjYW4ndCBnZXQgYnkgdGhhdCBmYWNlLgoKICAKU28gd2hvIGlzIHNoZT8KCiAgClNoZSdzLi4uIGh1bWFuLgoKICAKTm8sIG5vLiBUaGF0J3MgYSBiZWUgbGF3LgpZb3Ugd291bGRuJ3QgYnJlYWsgYSBiZWUgbGF3LgoKICAKLSBIZXIgbmFtZSdzIFZhbmVzc2EuCi0gT2gsIGJveS4KCiAgClNoZSdzIHNvIG5pY2UuIEFuZCBzaGUncyBhIGZsb3Jpc3QhCgogIApPaCwgbm8hIFlvdSdyZSBkYXRpbmcgYSBodW1hbiBmbG9yaXN0IQoKICAKV2UncmUgbm90IGRhdGluZy4KCiAgCllvdSdyZSBmbHlpbmcgb3V0c2lkZSB0aGUgaGl2ZSwgdGFsa2luZwp0byBodW1hbnMgdGhhdCBhdHRhY2sgb3VyIGhvbWVzCgogIAp3aXRoIHBvd2VyIHdhc2hlcnMgYW5kIE0tODBzIQpPbmUtZWlnaHRoIGEgc3RpY2sgb2YgZHluYW1pdGUhCgogIApTaGUgc2F2ZWQgbXkgbGlmZSEKQW5kIHNoZSB1bmRlcnN0YW5kcyBtZS4KCiAgClRoaXMgaXMgb3ZlciEKCiAgCkVhdCB0aGlzLgoKICAKVGhpcyBpcyBub3Qgb3ZlciEgV2hhdCB3YXMgdGhhdD8KCiAgCi0gVGhleSBjYWxsIGl0IGEgY3J1bWIuCi0gSXQgd2FzIHNvIHN0aW5naW4nIHN0cmlwZXkhCgogIApBbmQgdGhhdCdzIG5vdCB3aGF0IHRoZXkgZWF0LgpUaGF0J3Mgd2hhdCBmYWxscyBvZmYgd2hhdCB0aGV5IGVhdCEKCiAgCi0gWW91IGtub3cgd2hhdCBhIE9pbm5hYm9uIGlzPwotIE5vLgoKICAKSXQncyBicmVhZCBhbmQgY2lubmFtb24gYW5kIGZyb3N0aW5nLgpUaGV5IGhlYXQgaXQgdXAuLi4KCiAgClNpdCBkb3duIQoKICAKLi4ucmVhbGx5IGhvdCEKLSBMaXN0ZW4gdG8gbWUhCgogIApXZSBhcmUgbm90IHRoZW0hIFdlJ3JlIHVzLgpUaGVyZSdzIHVzIGFuZCB0aGVyZSdzIHRoZW0hCgogIApZZXMsIGJ1dCB3aG8gY2FuIGRlbnkKdGhlIGhlYXJ0IHRoYXQgaXMgeWVhcm5pbmc/CgogIApUaGVyZSdzIG5vIHllYXJuaW5nLgpTdG9wIHllYXJuaW5nLiBMaXN0ZW4gdG8gbWUhCgogIApZb3UgaGF2ZSBnb3QgdG8gc3RhcnQgdGhpbmtpbmcgYmVlLApteSBmcmllbmQuIFRoaW5raW5nIGJlZSEKCiAgCi0gVGhpbmtpbmcgYmVlLgotIFRoaW5raW5nIGJlZS4KCiAgClRoaW5raW5nIGJlZSEgVGhpbmtpbmcgYmVlIQpUaGlua2luZyBiZWUhIFRoaW5raW5nIGJlZSEKCiAgClRoZXJlIGhlIGlzLiBIZSdzIGluIHRoZSBwb29sLgoKICAKWW91IGtub3cgd2hhdCB5b3VyIHByb2JsZW0gaXMsIEJhcnJ5PwoKICAKSSBnb3R0YSBzdGFydCB0aGlua2luZyBiZWU/CgogIApIb3cgbXVjaCBsb25nZXIgd2lsbCB0aGlzIGdvIG9uPwoKICAKSXQncyBiZWVuIHRocmVlIGRheXMhCldoeSBhcmVuJ3QgeW91IHdvcmtpbmc/CgogIApJJ3ZlIGdvdCBhIGxvdCBvZiBiaWcgbGlmZSBkZWNpc2lvbnMKdG8gdGhpbmsgYWJvdXQuCgogIApXaGF0IGxpZmU/IFlvdSBoYXZlIG5vIGxpZmUhCllvdSBoYXZlIG5vIGpvYi4gWW91J3JlIGJhcmVseSBhIGJlZSEKCiAgCldvdWxkIGl0IGtpbGwgeW91CnRvIG1ha2UgYSBsaXR0bGUgaG9uZXk/CgogIApCYXJyeSwgY29tZSBvdXQuCllvdXIgZmF0aGVyJ3MgdGFsa2luZyB0byB5b3UuCgogIApNYXJ0aW4sIHdvdWxkIHlvdSB0YWxrIHRvIGhpbT8KCiAgCkJhcnJ5LCBJJ20gdGFsa2luZyB0byB5b3UhCgogIApZb3UgY29taW5nPwoKICAKR290IGV2ZXJ5dGhpbmc/CgogIApBbGwgc2V0IQoKICAKR28gYWhlYWQuIEknbGwgY2F0Y2ggdXAuCgogIApEb24ndCBiZSB0b28gbG9uZy4KCiAgCldhdGNoIHRoaXMhCgogIApWYW5lc3NhIQoKICAKLSBXZSdyZSBzdGlsbCBoZXJlLgotIEkgdG9sZCB5b3Ugbm90IHRvIHllbGwgYXQgaGltLgoKICAKSGUgZG9lc24ndCByZXNwb25kIHRvIHllbGxpbmchCgogIAotIFRoZW4gd2h5IHllbGwgYXQgbWU/Ci0gQmVjYXVzZSB5b3UgZG9uJ3QgbGlzdGVuIQoKICAKSSdtIG5vdCBsaXN0ZW5pbmcgdG8gdGhpcy4KCiAgClNvcnJ5LCBJJ3ZlIGdvdHRhIGdvLgoKICAKLSBXaGVyZSBhcmUgeW91IGdvaW5nPwotIEknbSBtZWV0aW5nIGEgZnJpZW5kLgoKICAKQSBnaXJsPyBJcyB0aGlzIHdoeSB5b3UgY2FuJ3QgZGVjaWRlPwoKICAKQnllLgoKICAKSSBqdXN0IGhvcGUgc2hlJ3MgQmVlLWlzaC4KCiAgClRoZXkgaGF2ZSBhIGh1Z2UgcGFyYWRlCm9mIGZsb3dlcnMgZXZlcnkgeWVhciBpbiBQYXNhZGVuYT8KCiAgClRvIGJlIGluIHRoZSBUb3VybmFtZW50IG9mIFJvc2VzLAp0aGF0J3MgZXZlcnkgZmxvcmlzdCdzIGRyZWFtIQoKICAKVXAgb24gYSBmbG9hdCwgc3Vycm91bmRlZApieSBmbG93ZXJzLCBjcm93ZHMgY2hlZXJpbmcuCgogIApBIHRvdXJuYW1lbnQuIERvIHRoZSByb3Nlcwpjb21wZXRlIGluIGF0aGxldGljIGV2ZW50cz8KCiAgCk5vLiBBbGwgcmlnaHQsIEkndmUgZ290IG9uZS4KSG93IGNvbWUgeW91IGRvbid0IGZseSBldmVyeXdoZXJlPwoKICAKSXQncyBleGhhdXN0aW5nLiBXaHkgZG9uJ3QgeW91CnJ1biBldmVyeXdoZXJlPyBJdCdzIGZhc3Rlci4KCiAgClllYWgsIE9LLCBJIHNlZSwgSSBzZWUuCkFsbCByaWdodCwgeW91ciB0dXJuLgoKICAKVGlWby4gWW91IGNhbiBqdXN0IGZyZWV6ZSBsaXZlIFRWPwpUaGF0J3MgaW5zYW5lIQoKICAKWW91IGRvbid0IGhhdmUgdGhhdD8KCiAgCldlIGhhdmUgSGl2bywgYnV0IGl0J3MgYSBkaXNlYXNlLgpJdCdzIGEgaG9ycmlibGUsIGhvcnJpYmxlIGRpc2Vhc2UuCgogIApPaCwgbXkuCgogIApEdW1iIGJlZXMhCgogIApZb3UgbXVzdCB3YW50IHRvIHN0aW5nIGFsbCB0aG9zZSBqZXJrcy4KCiAgCldlIHRyeSBub3QgdG8gc3RpbmcuCkl0J3MgdXN1YWxseSBmYXRhbCBmb3IgdXMuCgogIApTbyB5b3UgaGF2ZSB0byB3YXRjaCB5b3VyIHRlbXBlci4KCiAgClZlcnkgY2FyZWZ1bGx5LgpZb3Uga2ljayBhIHdhbGwsIHRha2UgYSB3YWxrLAoKICAKd3JpdGUgYW4gYW5ncnkgbGV0dGVyIGFuZCB0aHJvdyBpdCBvdXQuCldvcmsgdGhyb3VnaCBpdCBsaWtlIGFueSBlbW90aW9uOgoKICAKQW5nZXIsIGplYWxvdXN5LCBsdXN0LgoKICAKT2gsIG15IGdvb2RuZXNzISBBcmUgeW91IE9LPwoKICAKWWVhaC4KCiAgCi0gV2hhdCBpcyB3cm9uZyB3aXRoIHlvdT8hCi0gSXQncyBhIGJ1Zy4KCiAgCkhlJ3Mgbm90IGJvdGhlcmluZyBhbnlib2R5LgpHZXQgb3V0IG9mIGhlcmUsIHlvdSBjcmVlcCEKCiAgCldoYXQgd2FzIHRoYXQ/IEEgUGljICdOJyBTYXZlIGNpcmN1bGFyPwoKICAKWWVhaCwgaXQgd2FzLiBIb3cgZGlkIHlvdSBrbm93PwoKICAKSXQgZmVsdCBsaWtlIGFib3V0IDEwIHBhZ2VzLgpTZXZlbnR5LWZpdmUgaXMgcHJldHR5IG11Y2ggb3VyIGxpbWl0LgoKICAKWW91J3ZlIHJlYWxseSBnb3QgdGhhdApkb3duIHRvIGEgc2NpZW5jZS4KCiAgCi0gSSBsb3N0IGEgY291c2luIHRvIEl0YWxpYW4gVm9ndWUuCi0gSSdsbCBiZXQuCgogIApXaGF0IGluIHRoZSBuYW1lCm9mIE1pZ2h0eSBIZXJjdWxlcyBpcyB0aGlzPwoKICAKSG93IGRpZCB0aGlzIGdldCBoZXJlPwpPdXRlIEJlZSwgR29sZGVuIEJsb3Nzb20sCgogIApSYXkgTGlvdHRhIFByaXZhdGUgU2VsZWN0PwoKICAKLSBJcyBoZSB0aGF0IGFjdG9yPwotIEkgbmV2ZXIgaGVhcmQgb2YgaGltLgoKICAKLSBXaHkgaXMgdGhpcyBoZXJlPwotIEZvciBwZW9wbGUuIFdlIGVhdCBpdC4KCiAgCllvdSBkb24ndCBoYXZlCmVub3VnaCBmb29kIG9mIHlvdXIgb3duPwoKICAKLSBXZWxsLCB5ZXMuCi0gSG93IGRvIHlvdSBnZXQgaXQ/CgogIAotIEJlZXMgbWFrZSBpdC4KLSBJIGtub3cgd2hvIG1ha2VzIGl0IQoKICAKQW5kIGl0J3MgaGFyZCB0byBtYWtlIGl0IQoKICAKVGhlcmUncyBoZWF0aW5nLCBjb29saW5nLCBzdGlycmluZy4KWW91IG5lZWQgYSB3aG9sZSBLcmVsbWFuIHRoaW5nIQoKICAKLSBJdCdzIG9yZ2FuaWMuCi0gSXQncyBvdXItZ2FuaWMhCgogIApJdCdzIGp1c3QgaG9uZXksIEJhcnJ5LgoKICAKSnVzdCB3aGF0PyEKCiAgCkJlZXMgZG9uJ3Qga25vdyBhYm91dCB0aGlzIQpUaGlzIGlzIHN0ZWFsaW5nISBBIGxvdCBvZiBzdGVhbGluZyEKCiAgCllvdSd2ZSB0YWtlbiBvdXIgaG9tZXMsIHNjaG9vbHMsCmhvc3BpdGFscyEgVGhpcyBpcyBhbGwgd2UgaGF2ZSEKCiAgCkFuZCBpdCdzIG9uIHNhbGU/IQpJJ20gZ2V0dGluZyB0byB0aGUgYm90dG9tIG9mIHRoaXMuCgogIApJJ20gZ2V0dGluZyB0byB0aGUgYm90dG9tCm9mIGFsbCBvZiB0aGlzIQoKICAKSGV5LCBIZWN0b3IuCgogIAotIFlvdSBhbG1vc3QgZG9uZT8KLSBBbG1vc3QuCgogIApIZSBpcyBoZXJlLiBJIHNlbnNlIGl0LgoKICAKV2VsbCwgSSBndWVzcyBJJ2xsIGdvIGhvbWUgbm93CgogIAphbmQganVzdCBsZWF2ZSB0aGlzIG5pY2UgaG9uZXkgb3V0LAp3aXRoIG5vIG9uZSBhcm91bmQuCgogIApZb3UncmUgYnVzdGVkLCBib3ggYm95IQoKICAKSSBrbmV3IEkgaGVhcmQgc29tZXRoaW5nLgpTbyB5b3UgY2FuIHRhbGshCgogIApJIGNhbiB0YWxrLgpBbmQgbm93IHlvdSdsbCBzdGFydCB0YWxraW5nIQoKICAKV2hlcmUgeW91IGdldHRpbmcgdGhlIHN3ZWV0IHN0dWZmPwpXaG8ncyB5b3VyIHN1cHBsaWVyPwoKICAKSSBkb24ndCB1bmRlcnN0YW5kLgpJIHRob3VnaHQgd2Ugd2VyZSBmcmllbmRzLgoKICAKVGhlIGxhc3QgdGhpbmcgd2Ugd2FudAp0byBkbyBpcyB1cHNldCBiZWVzIQoKICAKWW91J3JlIHRvbyBsYXRlISBJdCdzIG91cnMgbm93IQoKICAKWW91LCBzaXIsIGhhdmUgY3Jvc3NlZAp0aGUgd3Jvbmcgc3dvcmQhCgogIApZb3UsIHNpciwgd2lsbCBiZSBsdW5jaApmb3IgbXkgaWd1YW5hLCBJZ25hY2lvIQoKICAKV2hlcmUgaXMgdGhlIGhvbmV5IGNvbWluZyBmcm9tPwoKICAKVGVsbCBtZSB3aGVyZSEKCiAgCkhvbmV5IEZhcm1zISBJdCBjb21lcyBmcm9tIEhvbmV5IEZhcm1zIQoKICAKT3JhenkgcGVyc29uIQoKICAKV2hhdCBob3JyaWJsZSB0aGluZyBoYXMgaGFwcGVuZWQgaGVyZT8KCiAgClRoZXNlIGZhY2VzLCB0aGV5IG5ldmVyIGtuZXcKd2hhdCBoaXQgdGhlbS4gQW5kIG5vdwoKICAKdGhleSdyZSBvbiB0aGUgcm9hZCB0byBub3doZXJlIQoKICAKSnVzdCBrZWVwIHN0aWxsLgoKICAKV2hhdD8gWW91J3JlIG5vdCBkZWFkPwoKICAKRG8gSSBsb29rIGRlYWQ/IFRoZXkgd2lsbCB3aXBlIGFueXRoaW5nCnRoYXQgbW92ZXMuIFdoZXJlIHlvdSBoZWFkZWQ/CgogIApUbyBIb25leSBGYXJtcy4KSSBhbSBvbnRvIHNvbWV0aGluZyBodWdlIGhlcmUuCgogIApJJ20gZ29pbmcgdG8gQWxhc2thLiBNb29zZSBibG9vZCwKY3Jhenkgc3R1ZmYuIEJsb3dzIHlvdXIgaGVhZCBvZmYhCgogIApJJ20gZ29pbmcgdG8gVGFjb21hLgoKICAKLSBBbmQgeW91PwotIEhlIHJlYWxseSBpcyBkZWFkLgoKICAKQWxsIHJpZ2h0LgoKICAKVWgtb2ghCgogIAotIFdoYXQgaXMgdGhhdD8hCi0gT2gsIG5vIQoKICAKLSBBIHdpcGVyISBUcmlwbGUgYmxhZGUhCi0gVHJpcGxlIGJsYWRlPwoKICAKSnVtcCBvbiEgSXQncyB5b3VyIG9ubHkgY2hhbmNlLCBiZWUhCgogIApXaHkgZG9lcyBldmVyeXRoaW5nIGhhdmUKdG8gYmUgc28gZG9nZ29uZSBjbGVhbj8hCgogIApIb3cgbXVjaCBkbyB5b3UgcGVvcGxlIG5lZWQgdG8gc2VlPyEKCiAgCk9wZW4geW91ciBleWVzIQpTdGljayB5b3VyIGhlYWQgb3V0IHRoZSB3aW5kb3chCgogIApGcm9tIE5QUiBOZXdzIGluIFdhc2hpbmd0b24sCkknbSBPYXJsIEthc2VsbC4KCiAgCkJ1dCBkb24ndCBraWxsIG5vIG1vcmUgYnVncyEKCiAgCi0gQmVlIQotIE1vb3NlIGJsb29kIGd1eSEhCgogIAotIFlvdSBoZWFyIHNvbWV0aGluZz8KLSBMaWtlIHdoYXQ/CgogIApMaWtlIHRpbnkgc2NyZWFtaW5nLgoKICAKVHVybiBvZmYgdGhlIHJhZGlvLgoKICAKV2hhc3N1cCwgYmVlIGJveT8KCiAgCkhleSwgQmxvb2QuCgogIApKdXN0IGEgcm93IG9mIGhvbmV5IGphcnMsCmFzIGZhciBhcyB0aGUgZXllIGNvdWxkIHNlZS4KCiAgCldvdyEKCiAgCkkgYXNzdW1lIHdoZXJldmVyIHRoaXMgdHJ1Y2sgZ29lcwppcyB3aGVyZSB0aGV5J3JlIGdldHRpbmcgaXQuCgogIApJIG1lYW4sIHRoYXQgaG9uZXkncyBvdXJzLgoKICAKLSBCZWVzIGhhbmcgdGlnaHQuCi0gV2UncmUgYWxsIGphbW1lZCBpbi4KCiAgCkl0J3MgYSBjbG9zZSBjb21tdW5pdHkuCgogIApOb3QgdXMsIG1hbi4gV2Ugb24gb3VyIG93bi4KRXZlcnkgbW9zcXVpdG8gb24gaGlzIG93bi4KCiAgCi0gV2hhdCBpZiB5b3UgZ2V0IGluIHRyb3VibGU/Ci0gWW91IGEgbW9zcXVpdG8sIHlvdSBpbiB0cm91YmxlLgoKICAKTm9ib2R5IGxpa2VzIHVzLiBUaGV5IGp1c3Qgc21hY2suClNlZSBhIG1vc3F1aXRvLCBzbWFjaywgc21hY2shCgogIApBdCBsZWFzdCB5b3UncmUgb3V0IGluIHRoZSB3b3JsZC4KWW91IG11c3QgbWVldCBnaXJscy4KCiAgCk1vc3F1aXRvIGdpcmxzIHRyeSB0byB0cmFkZSB1cCwKZ2V0IHdpdGggYSBtb3RoLCBkcmFnb25mbHkuCgogIApNb3NxdWl0byBnaXJsIGRvbid0IHdhbnQgbm8gbW9zcXVpdG8uCgogIApZb3UgZ290IHRvIGJlIGtpZGRpbmcgbWUhCgogIApNb29zZWJsb29kJ3MgYWJvdXQgdG8gbGVhdmUKdGhlIGJ1aWxkaW5nISBTbyBsb25nLCBiZWUhCgogIAotIEhleSwgZ3V5cyEKLSBNb29zZWJsb29kIQoKICAKSSBrbmV3IEknZCBjYXRjaCB5J2FsbCBkb3duIGhlcmUuCkRpZCB5b3UgYnJpbmcgeW91ciBjcmF6eSBzdHJhdz8KCiAgCldlIHRocm93IGl0IGluIGphcnMsIHNsYXAgYSBsYWJlbCBvbiBpdCwKYW5kIGl0J3MgcHJldHR5IG11Y2ggcHVyZSBwcm9maXQuCgogIApXaGF0IGlzIHRoaXMgcGxhY2U/CgogIApBIGJlZSdzIGdvdCBhIGJyYWluCnRoZSBzaXplIG9mIGEgcGluaGVhZC4KCiAgClRoZXkgYXJlIHBpbmhlYWRzIQoKICAKUGluaGVhZC4KCiAgCi0gT2hlY2sgb3V0IHRoZSBuZXcgc21va2VyLgotIE9oLCBzd2VldC4gVGhhdCdzIHRoZSBvbmUgeW91IHdhbnQuCgogIApUaGUgVGhvbWFzIDMwMDAhCgogIApTbW9rZXI/CgogIApOaW5ldHkgcHVmZnMgYSBtaW51dGUsIHNlbWktYXV0b21hdGljLgpUd2ljZSB0aGUgbmljb3RpbmUsIGFsbCB0aGUgdGFyLgoKICAKQSBjb3VwbGUgYnJlYXRocyBvZiB0aGlzCmtub2NrcyB0aGVtIHJpZ2h0IG91dC4KCiAgClRoZXkgbWFrZSB0aGUgaG9uZXksCmFuZCB3ZSBtYWtlIHRoZSBtb25leS4KCiAgCiJUaGV5IG1ha2UgdGhlIGhvbmV5LAphbmQgd2UgbWFrZSB0aGUgbW9uZXkiPwoKICAKT2gsIG15IQoKICAKV2hhdCdzIGdvaW5nIG9uPyBBcmUgeW91IE9LPwoKICAKWWVhaC4gSXQgZG9lc24ndCBsYXN0IHRvbyBsb25nLgoKICAKRG8geW91IGtub3cgeW91J3JlCmluIGEgZmFrZSBoaXZlIHdpdGggZmFrZSB3YWxscz8KCiAgCk91ciBxdWVlbiB3YXMgbW92ZWQgaGVyZS4KV2UgaGFkIG5vIGNob2ljZS4KCiAgClRoaXMgaXMgeW91ciBxdWVlbj8KVGhhdCdzIGEgbWFuIGluIHdvbWVuJ3MgY2xvdGhlcyEKCiAgClRoYXQncyBhIGRyYWcgcXVlZW4hCgogIApXaGF0IGlzIHRoaXM/CgogIApPaCwgbm8hCgogIApUaGVyZSdzIGh1bmRyZWRzIG9mIHRoZW0hCgogIApCZWUgaG9uZXkuCgogIApPdXIgaG9uZXkgaXMgYmVpbmcgYnJhemVubHkgc3RvbGVuCm9uIGEgbWFzc2l2ZSBzY2FsZSEKCiAgClRoaXMgaXMgd29yc2UgdGhhbiBhbnl0aGluZyBiZWFycwpoYXZlIGRvbmUhIEkgaW50ZW5kIHRvIGRvIHNvbWV0aGluZy4KCiAgCk9oLCBCYXJyeSwgc3RvcC4KCiAgCldobyB0b2xkIHlvdSBodW1hbnMgYXJlIHRha2luZwpvdXIgaG9uZXk/IFRoYXQncyBhIHJ1bW9yLgoKICAKRG8gdGhlc2UgbG9vayBsaWtlIHJ1bW9ycz8KCiAgClRoYXQncyBhIGNvbnNwaXJhY3kgdGhlb3J5LgpUaGVzZSBhcmUgb2J2aW91c2x5IGRvY3RvcmVkIHBob3Rvcy4KCiAgCkhvdyBkaWQgeW91IGdldCBtaXhlZCB1cCBpbiB0aGlzPwoKICAKSGUncyBiZWVuIHRhbGtpbmcgdG8gaHVtYW5zLgoKICAKLSBXaGF0PwotIFRhbGtpbmcgdG8gaHVtYW5zPyEKCiAgCkhlIGhhcyBhIGh1bWFuIGdpcmxmcmllbmQuCkFuZCB0aGV5IG1ha2Ugb3V0IQoKICAKTWFrZSBvdXQ/IEJhcnJ5IQoKICAKV2UgZG8gbm90LgoKICAKLSBZb3Ugd2lzaCB5b3UgY291bGQuCi0gV2hvc2Ugc2lkZSBhcmUgeW91IG9uPwoKICAKVGhlIGJlZXMhCgogIApJIGRhdGVkIGEgY3JpY2tldCBvbmNlIGluIFNhbiBBbnRvbmlvLgpUaG9zZSBjcmF6eSBsZWdzIGtlcHQgbWUgdXAgYWxsIG5pZ2h0LgoKICAKQmFycnksIHRoaXMgaXMgd2hhdCB5b3Ugd2FudAp0byBkbyB3aXRoIHlvdXIgbGlmZT8KCiAgCkkgd2FudCB0byBkbyBpdCBmb3IgYWxsIG91ciBsaXZlcy4KTm9ib2R5IHdvcmtzIGhhcmRlciB0aGFuIGJlZXMhCgogIApEYWQsIEkgcmVtZW1iZXIgeW91CmNvbWluZyBob21lIHNvIG92ZXJ3b3JrZWQKCiAgCnlvdXIgaGFuZHMgd2VyZSBzdGlsbCBzdGlycmluZy4KWW91IGNvdWxkbid0IHN0b3AuCgogIApJIHJlbWVtYmVyIHRoYXQuCgogIApXaGF0IHJpZ2h0IGRvIHRoZXkgaGF2ZSB0byBvdXIgaG9uZXk/CgogIApXZSBsaXZlIG9uIHR3byBjdXBzIGEgeWVhci4gVGhleSBwdXQgaXQKaW4gbGlwIGJhbG0gZm9yIG5vIHJlYXNvbiB3aGF0c29ldmVyIQoKICAKRXZlbiBpZiBpdCdzIHRydWUsIHdoYXQgY2FuIG9uZSBiZWUgZG8/CgogIApTdGluZyB0aGVtIHdoZXJlIGl0IHJlYWxseSBodXJ0cy4KCiAgCkluIHRoZSBmYWNlISBUaGUgZXllIQoKICAKLSBUaGF0IHdvdWxkIGh1cnQuCi0gTm8uCgogIApVcCB0aGUgbm9zZT8gVGhhdCdzIGEga2lsbGVyLgoKICAKVGhlcmUncyBvbmx5IG9uZSBwbGFjZSB5b3UgY2FuIHN0aW5nCnRoZSBodW1hbnMsIG9uZSBwbGFjZSB3aGVyZSBpdCBtYXR0ZXJzLgoKICAKSGl2ZSBhdCBGaXZlLCB0aGUgaGl2ZSdzIG9ubHkKZnVsbC1ob3VyIGFjdGlvbiBuZXdzIHNvdXJjZS4KCiAgCk5vIG1vcmUgYmVlIGJlYXJkcyEKCiAgCldpdGggQm9iIEJ1bWJsZSBhdCB0aGUgYW5jaG9yIGRlc2suCgogIApXZWF0aGVyIHdpdGggU3Rvcm0gU3Rpbmdlci4KCiAgClNwb3J0cyB3aXRoIEJ1enogTGFydmkuCgogIApBbmQgSmVhbmV0dGUgT2h1bmcuCgogIAotIEdvb2QgZXZlbmluZy4gSSdtIEJvYiBCdW1ibGUuCi0gQW5kIEknbSBKZWFuZXR0ZSBPaHVuZy4KCiAgCkEgdHJpLWNvdW50eSBiZWUsIEJhcnJ5IEJlbnNvbiwKCiAgCmludGVuZHMgdG8gc3VlIHRoZSBodW1hbiByYWNlCmZvciBzdGVhbGluZyBvdXIgaG9uZXksCgogIApwYWNrYWdpbmcgaXQgYW5kIHByb2ZpdGluZwpmcm9tIGl0IGlsbGVnYWxseSEKCiAgClRvbW9ycm93IG5pZ2h0IG9uIEJlZSBMYXJyeSBLaW5nLAoKICAKd2UnbGwgaGF2ZSB0aHJlZSBmb3JtZXIgcXVlZW5zIGhlcmUgaW4Kb3VyIHN0dWRpbywgZGlzY3Vzc2luZyB0aGVpciBuZXcgYm9vaywKCiAgCk9sYXNzeSBMYWRpZXMsCm91dCB0aGlzIHdlZWsgb24gSGV4YWdvbi4KCiAgClRvbmlnaHQgd2UncmUgdGFsa2luZyB0byBCYXJyeSBCZW5zb24uCgogIApEaWQgeW91IGV2ZXIgdGhpbmssICJJJ20gYSBraWQKZnJvbSB0aGUgaGl2ZS4gSSBjYW4ndCBkbyB0aGlzIj8KCiAgCkJlZXMgaGF2ZSBuZXZlciBiZWVuIGFmcmFpZAp0byBjaGFuZ2UgdGhlIHdvcmxkLgoKICAKV2hhdCBhYm91dCBCZWUgT29sdW1idXM/CkJlZSBHYW5kaGk/IEJlamVzdXM/CgogIApXaGVyZSBJJ20gZnJvbSwgd2UnZCBuZXZlciBzdWUgaHVtYW5zLgoKICAKV2Ugd2VyZSB0aGlua2luZwpvZiBzdGlja2JhbGwgb3IgY2FuZHkgc3RvcmVzLgoKICAKSG93IG9sZCBhcmUgeW91PwoKICAKVGhlIGJlZSBjb21tdW5pdHkKaXMgc3VwcG9ydGluZyB5b3UgaW4gdGhpcyBjYXNlLAoKICAKd2hpY2ggd2lsbCBiZSB0aGUgdHJpYWwKb2YgdGhlIGJlZSBjZW50dXJ5LgoKICAKWW91IGtub3csIHRoZXkgaGF2ZSBhIExhcnJ5IEtpbmcKaW4gdGhlIGh1bWFuIHdvcmxkIHRvby4KCiAgCkl0J3MgYSBjb21tb24gbmFtZS4gTmV4dCB3ZWVrLi4uCgogIApIZSBsb29rcyBsaWtlIHlvdSBhbmQgaGFzIGEgc2hvdwphbmQgc3VzcGVuZGVycyBhbmQgY29sb3JlZCBkb3RzLi4uCgogIApOZXh0IHdlZWsuLi4KCiAgCkdsYXNzZXMsIHF1b3RlcyBvbiB0aGUgYm90dG9tIGZyb20gdGhlCmd1ZXN0IGV2ZW4gdGhvdWdoIHlvdSBqdXN0IGhlYXJkICdlbS4KCiAgCkJlYXIgV2VlayBuZXh0IHdlZWshClRoZXkncmUgc2NhcnksIGhhaXJ5IGFuZCBoZXJlIGxpdmUuCgogIApBbHdheXMgbGVhbnMgZm9yd2FyZCwgcG9pbnR5IHNob3VsZGVycywKc3F1aW50eSBleWVzLCB2ZXJ5IEpld2lzaC4KCiAgCkluIHRlbm5pcywgeW91IGF0dGFjawphdCB0aGUgcG9pbnQgb2Ygd2Vha25lc3MhCgogIApJdCB3YXMgbXkgZ3JhbmRtb3RoZXIsIEtlbi4gU2hlJ3MgODEuCgogIApIb25leSwgaGVyIGJhY2toYW5kJ3MgYSBqb2tlIQpJJ20gbm90IGdvbm5hIHRha2UgYWR2YW50YWdlIG9mIHRoYXQ/CgogIApRdWlldCwgcGxlYXNlLgpBY3R1YWwgd29yayBnb2luZyBvbiBoZXJlLgoKICAKLSBJcyB0aGF0IHRoYXQgc2FtZSBiZWU/Ci0gWWVzLCBpdCBpcyEKCiAgCkknbSBoZWxwaW5nIGhpbSBzdWUgdGhlIGh1bWFuIHJhY2UuCgogIAotIEhlbGxvLgotIEhlbGxvLCBiZWUuCgogIApUaGlzIGlzIEtlbi4KCiAgClllYWgsIEkgcmVtZW1iZXIgeW91LiBUaW1iZXJsYW5kLCBzaXplCnRlbiBhbmQgYSBoYWxmLiBWaWJyYW0gc29sZSwgSSBiZWxpZXZlLgoKICAKV2h5IGRvZXMgaGUgdGFsayBhZ2Fpbj8KCiAgCkxpc3RlbiwgeW91IGJldHRlciBnbwonY2F1c2Ugd2UncmUgcmVhbGx5IGJ1c3kgd29ya2luZy4KCiAgCkJ1dCBpdCdzIG91ciB5b2d1cnQgbmlnaHQhCgogIApCeWUtYnllLgoKICAKV2h5IGlzIHlvZ3VydCBuaWdodCBzbyBkaWZmaWN1bHQ/IQoKICAKWW91IHBvb3IgdGhpbmcuCllvdSB0d28gaGF2ZSBiZWVuIGF0IHRoaXMgZm9yIGhvdXJzIQoKICAKWWVzLCBhbmQgQWRhbSBoZXJlCmhhcyBiZWVuIGEgaHVnZSBoZWxwLgoKICAKLSBGcm9zdGluZy4uLgotIEhvdyBtYW55IHN1Z2Fycz8KCiAgCkp1c3Qgb25lLiBJIHRyeSBub3QKdG8gdXNlIHRoZSBjb21wZXRpdGlvbi4KCiAgClNvIHdoeSBhcmUgeW91IGhlbHBpbmcgbWU/CgogIApCZWVzIGhhdmUgZ29vZCBxdWFsaXRpZXMuCgogIApBbmQgaXQgdGFrZXMgbXkgbWluZCBvZmYgdGhlIHNob3AuCgogIApJbnN0ZWFkIG9mIGZsb3dlcnMsIHBlb3BsZQphcmUgZ2l2aW5nIGJhbGxvb24gYm91cXVldHMgbm93LgoKICAKVGhvc2UgYXJlIGdyZWF0LCBpZiB5b3UncmUgdGhyZWUuCgogIApBbmQgYXJ0aWZpY2lhbCBmbG93ZXJzLgoKICAKLSBPaCwgdGhvc2UganVzdCBnZXQgbWUgcHN5Y2hvdGljIQotIFllYWgsIG1lIHRvby4KCiAgCkJlbnQgc3RpbmdlcnMsIHBvaW50bGVzcyBwb2xsaW5hdGlvbi4KCiAgCkJlZXMgbXVzdCBoYXRlIHRob3NlIGZha2UgdGhpbmdzIQoKICAKTm90aGluZyB3b3JzZQp0aGFuIGEgZGFmZm9kaWwgdGhhdCdzIGhhZCB3b3JrIGRvbmUuCgogIApNYXliZSB0aGlzIGNvdWxkIG1ha2UgdXAKZm9yIGl0IGEgbGl0dGxlIGJpdC4KCiAgCi0gVGhpcyBsYXdzdWl0J3MgYSBwcmV0dHkgYmlnIGRlYWwuCi0gSSBndWVzcy4KCiAgCllvdSBzdXJlIHlvdSB3YW50IHRvIGdvIHRocm91Z2ggd2l0aCBpdD8KCiAgCkFtIEkgc3VyZT8gV2hlbiBJJ20gZG9uZSB3aXRoCnRoZSBodW1hbnMsIHRoZXkgd29uJ3QgYmUgYWJsZQoKICAKdG8gc2F5LCAiSG9uZXksIEknbSBob21lLCIKd2l0aG91dCBwYXlpbmcgYSByb3lhbHR5IQoKICAKSXQncyBhbiBpbmNyZWRpYmxlIHNjZW5lCmhlcmUgaW4gZG93bnRvd24gTWFuaGF0dGFuLAoKICAKd2hlcmUgdGhlIHdvcmxkIGFueGlvdXNseSB3YWl0cywKYmVjYXVzZSBmb3IgdGhlIGZpcnN0IHRpbWUgaW4gaGlzdG9yeSwKCiAgCndlIHdpbGwgaGVhciBmb3Igb3Vyc2VsdmVzCmlmIGEgaG9uZXliZWUgY2FuIGFjdHVhbGx5IHNwZWFrLgoKICAKV2hhdCBoYXZlIHdlIGdvdHRlbiBpbnRvIGhlcmUsIEJhcnJ5PwoKICAKSXQncyBwcmV0dHkgYmlnLCBpc24ndCBpdD8KCiAgCkkgY2FuJ3QgYmVsaWV2ZSBob3cgbWFueSBodW1hbnMKZG9uJ3Qgd29yayBkdXJpbmcgdGhlIGRheS4KCiAgCllvdSB0aGluayBiaWxsaW9uLWRvbGxhciBtdWx0aW5hdGlvbmFsCmZvb2QgY29tcGFuaWVzIGhhdmUgZ29vZCBsYXd5ZXJzPwoKICAKRXZlcnlib2R5IG5lZWRzIHRvIHN0YXkKYmVoaW5kIHRoZSBiYXJyaWNhZGUuCgogIAotIFdoYXQncyB0aGUgbWF0dGVyPwotIEkgZG9uJ3Qga25vdywgSSBqdXN0IGdvdCBhIGNoaWxsLgoKICAKV2VsbCwgaWYgaXQgaXNuJ3QgdGhlIGJlZSB0ZWFtLgoKICAKWW91IGJveXMgd29yayBvbiB0aGlzPwoKICAKQWxsIHJpc2UhIFRoZSBIb25vcmFibGUKSnVkZ2UgQnVtYmxldG9uIHByZXNpZGluZy4KCiAgCkFsbCByaWdodC4gT2FzZSBudW1iZXIgNDQ3NSwKCiAgClN1cGVyaW9yIE9vdXJ0IG9mIE5ldyBZb3JrLApCYXJyeSBCZWUgQmVuc29uIHYuIHRoZSBIb25leSBJbmR1c3RyeQoKICAKaXMgbm93IGluIHNlc3Npb24uCgogIApNci4gTW9udGdvbWVyeSwgeW91J3JlIHJlcHJlc2VudGluZwp0aGUgZml2ZSBmb29kIGNvbXBhbmllcyBjb2xsZWN0aXZlbHk/CgogIApBIHByaXZpbGVnZS4KCiAgCk1yLiBCZW5zb24uLi4geW91J3JlIHJlcHJlc2VudGluZwphbGwgdGhlIGJlZXMgb2YgdGhlIHdvcmxkPwoKICAKSSdtIGtpZGRpbmcuIFllcywgWW91ciBIb25vciwKd2UncmUgcmVhZHkgdG8gcHJvY2VlZC4KCiAgCk1yLiBNb250Z29tZXJ5LAp5b3VyIG9wZW5pbmcgc3RhdGVtZW50LCBwbGVhc2UuCgogIApMYWRpZXMgYW5kIGdlbnRsZW1lbiBvZiB0aGUganVyeSwKCiAgCm15IGdyYW5kbW90aGVyIHdhcyBhIHNpbXBsZSB3b21hbi4KCiAgCkJvcm4gb24gYSBmYXJtLCBzaGUgYmVsaWV2ZWQKaXQgd2FzIG1hbidzIGRpdmluZSByaWdodAoKICAKdG8gYmVuZWZpdCBmcm9tIHRoZSBib3VudHkKb2YgbmF0dXJlIEdvZCBwdXQgYmVmb3JlIHVzLgoKICAKSWYgd2UgbGl2ZWQgaW4gdGhlIHRvcHN5LXR1cnZ5IHdvcmxkCk1yLiBCZW5zb24gaW1hZ2luZXMsCgogIApqdXN0IHRoaW5rIG9mIHdoYXQgd291bGQgaXQgbWVhbi4KCiAgCkkgd291bGQgaGF2ZSB0byBuZWdvdGlhdGUKd2l0aCB0aGUgc2lsa3dvcm0KCiAgCmZvciB0aGUgZWxhc3RpYyBpbiBteSBicml0Y2hlcyEKCiAgClRhbGtpbmcgYmVlIQoKICAKSG93IGRvIHdlIGtub3cgdGhpcyBpc24ndCBzb21lIHNvcnQgb2YKCiAgCmhvbG9ncmFwaGljIG1vdGlvbi1waWN0dXJlLWNhcHR1cmUKSG9sbHl3b29kIHdpemFyZHJ5PwoKICAKVGhleSBjb3VsZCBiZSB1c2luZyBsYXNlciBiZWFtcyEKCiAgClJvYm90aWNzISBWZW50cmlsb3F1aXNtIQpPbG9uaW5nISBGb3IgYWxsIHdlIGtub3csCgogIApoZSBjb3VsZCBiZSBvbiBzdGVyb2lkcyEKCiAgCk1yLiBCZW5zb24/CgogIApMYWRpZXMgYW5kIGdlbnRsZW1lbiwKdGhlcmUncyBubyB0cmlja2VyeSBoZXJlLgoKICAKSSdtIGp1c3QgYW4gb3JkaW5hcnkgYmVlLgpIb25leSdzIHByZXR0eSBpbXBvcnRhbnQgdG8gbWUuCgogIApJdCdzIGltcG9ydGFudCB0byBhbGwgYmVlcy4KV2UgaW52ZW50ZWQgaXQhCgogIApXZSBtYWtlIGl0LiBBbmQgd2UgcHJvdGVjdCBpdAp3aXRoIG91ciBsaXZlcy4KCiAgClVuZm9ydHVuYXRlbHksIHRoZXJlIGFyZQpzb21lIHBlb3BsZSBpbiB0aGlzIHJvb20KCiAgCndobyB0aGluayB0aGV5IGNhbiB0YWtlIGl0IGZyb20gdXMKCiAgCidjYXVzZSB3ZSdyZSB0aGUgbGl0dGxlIGd1eXMhCkknbSBob3BpbmcgdGhhdCwgYWZ0ZXIgdGhpcyBpcyBhbGwgb3ZlciwKCiAgCnlvdSdsbCBzZWUgaG93LCBieSB0YWtpbmcgb3VyIGhvbmV5LAp5b3Ugbm90IG9ubHkgdGFrZSBldmVyeXRoaW5nIHdlIGhhdmUKCiAgCmJ1dCBldmVyeXRoaW5nIHdlIGFyZSEKCiAgCkkgd2lzaCBoZSdkIGRyZXNzIGxpa2UgdGhhdAphbGwgdGhlIHRpbWUuIFNvIG5pY2UhCgogIApPYWxsIHlvdXIgZmlyc3Qgd2l0bmVzcy4KCiAgClNvLCBNci4gS2xhdXNzIFZhbmRlcmhheWRlbgpvZiBIb25leSBGYXJtcywgYmlnIGNvbXBhbnkgeW91IGhhdmUuCgogIApJIHN1cHBvc2Ugc28uCgogIApJIHNlZSB5b3UgYWxzbyBvd24KSG9uZXlidXJ0b24gYW5kIEhvbnJvbiEKCiAgClllcywgdGhleSBwcm92aWRlIGJlZWtlZXBlcnMKZm9yIG91ciBmYXJtcy4KCiAgCkJlZWtlZXBlci4gSSBmaW5kIHRoYXQKdG8gYmUgYSB2ZXJ5IGRpc3R1cmJpbmcgdGVybS4KCiAgCkkgZG9uJ3QgaW1hZ2luZSB5b3UgZW1wbG95CmFueSBiZWUtZnJlZS1lcnMsIGRvIHlvdT8KCiAgCi0gTm8uCi0gSSBjb3VsZG4ndCBoZWFyIHlvdS4KCiAgCi0gTm8uCi0gTm8uCgogIApCZWNhdXNlIHlvdSBkb24ndCBmcmVlIGJlZXMuCllvdSBrZWVwIGJlZXMuIE5vdCBvbmx5IHRoYXQsCgogIAppdCBzZWVtcyB5b3UgdGhvdWdodCBhIGJlYXIgd291bGQgYmUKYW4gYXBwcm9wcmlhdGUgaW1hZ2UgZm9yIGEgamFyIG9mIGhvbmV5LgoKICAKVGhleSdyZSB2ZXJ5IGxvdmFibGUgY3JlYXR1cmVzLgoKICAKWW9naSBCZWFyLCBGb3p6aWUgQmVhciwgQnVpbGQtQS1CZWFyLgoKICAKWW91IG1lYW4gbGlrZSB0aGlzPwoKICAKQmVhcnMga2lsbCBiZWVzIQoKICAKSG93J2QgeW91IGxpa2UgaGlzIGhlYWQgY3Jhc2hpbmcKdGhyb3VnaCB5b3VyIGxpdmluZyByb29tPyEKCiAgCkJpdGluZyBpbnRvIHlvdXIgY291Y2ghClNwaXR0aW5nIG91dCB5b3VyIHRocm93IHBpbGxvd3MhCgogIApPSywgdGhhdCdzIGVub3VnaC4gVGFrZSBoaW0gYXdheS4KCiAgClNvLCBNci4gU3RpbmcsIHRoYW5rIHlvdSBmb3IgYmVpbmcgaGVyZS4KWW91ciBuYW1lIGludHJpZ3VlcyBtZS4KCiAgCi0gV2hlcmUgaGF2ZSBJIGhlYXJkIGl0IGJlZm9yZT8KLSBJIHdhcyB3aXRoIGEgYmFuZCBjYWxsZWQgVGhlIFBvbGljZS4KCiAgCkJ1dCB5b3UndmUgbmV2ZXIgYmVlbgphIHBvbGljZSBvZmZpY2VyLCBoYXZlIHlvdT8KCiAgCk5vLCBJIGhhdmVuJ3QuCgogIApObywgeW91IGhhdmVuJ3QuIEFuZCBzbyBoZXJlCndlIGhhdmUgeWV0IGFub3RoZXIgZXhhbXBsZQoKICAKb2YgYmVlIGN1bHR1cmUgY2FzdWFsbHkKc3RvbGVuIGJ5IGEgaHVtYW4KCiAgCmZvciBub3RoaW5nIG1vcmUgdGhhbgphIHByYW5jZS1hYm91dCBzdGFnZSBuYW1lLgoKICAKT2gsIHBsZWFzZS4KCiAgCkhhdmUgeW91IGV2ZXIgYmVlbiBzdHVuZywgTXIuIFN0aW5nPwoKICAKQmVjYXVzZSBJJ20gZmVlbGluZwphIGxpdHRsZSBzdHVuZywgU3RpbmcuCgogIApPciBzaG91bGQgSSBzYXkuLi4gTXIuIEdvcmRvbiBNLiBTdW1uZXIhCgogIApUaGF0J3Mgbm90IGhpcyByZWFsIG5hbWU/ISBZb3UgaWRpb3RzIQoKICAKTXIuIExpb3R0YSwgZmlyc3QsCmJlbGF0ZWQgY29uZ3JhdHVsYXRpb25zIG9uCgogIAp5b3VyIEVtbXkgd2luIGZvciBhIGd1ZXN0IHNwb3QKb24gRVIgaW4gMjAwNS4KCiAgClRoYW5rIHlvdS4gVGhhbmsgeW91LgoKICAKSSBzZWUgZnJvbSB5b3VyIHJlc3VtZQp0aGF0IHlvdSdyZSBkZXZpbGlzaGx5IGhhbmRzb21lCgogIAp3aXRoIGEgY2h1cm5pbmcgaW5uZXIgdHVybW9pbAp0aGF0J3MgcmVhZHkgdG8gYmxvdy4KCiAgCkkgZW5qb3kgd2hhdCBJIGRvLiBJcyB0aGF0IGEgY3JpbWU/CgogIApOb3QgeWV0IGl0IGlzbid0LiBCdXQgaXMgdGhpcwp3aGF0IGl0J3MgY29tZSB0byBmb3IgeW91PwoKICAKRXhwbG9pdGluZyB0aW55LCBoZWxwbGVzcyBiZWVzCnNvIHlvdSBkb24ndAoKICAKaGF2ZSB0byByZWhlYXJzZQp5b3VyIHBhcnQgYW5kIGxlYXJuIHlvdXIgbGluZXMsIHNpcj8KCiAgCldhdGNoIGl0LCBCZW5zb24hCkkgY291bGQgYmxvdyByaWdodCBub3chCgogIApUaGlzIGlzbid0IGEgZ29vZGZlbGxhLgpUaGlzIGlzIGEgYmFkZmVsbGEhCgogIApXaHkgZG9lc24ndCBzb21lb25lIGp1c3Qgc3RlcCBvbgp0aGlzIGNyZWVwLCBhbmQgd2UgY2FuIGFsbCBnbyBob21lPyEKCiAgCi0gT3JkZXIgaW4gdGhpcyBjb3VydCEKLSBZb3UncmUgYWxsIHRoaW5raW5nIGl0IQoKICAKT3JkZXIhIE9yZGVyLCBJIHNheSEKCiAgCi0gU2F5IGl0IQotIE1yLiBMaW90dGEsIHBsZWFzZSBzaXQgZG93biEKCiAgCkkgdGhpbmsgaXQgd2FzIGF3ZnVsbHkgbmljZQpvZiB0aGF0IGJlYXIgdG8gcGl0Y2ggaW4gbGlrZSB0aGF0LgoKICAKSSB0aGluayB0aGUganVyeSdzIG9uIG91ciBzaWRlLgoKICAKQXJlIHdlIGRvaW5nIGV2ZXJ5dGhpbmcgcmlnaHQsIGxlZ2FsbHk/CgogIApJJ20gYSBmbG9yaXN0LgoKICAKUmlnaHQuIFdlbGwsIGhlcmUncyB0byBhIGdyZWF0IHRlYW0uCgogIApUbyBhIGdyZWF0IHRlYW0hCgogIApXZWxsLCBoZWxsby4KCiAgCi0gS2VuIQotIEhlbGxvLgoKICAKSSBkaWRuJ3QgdGhpbmsgeW91IHdlcmUgY29taW5nLgoKICAKTm8sIEkgd2FzIGp1c3QgbGF0ZS4KSSB0cmllZCB0byBjYWxsLCBidXQuLi4gdGhlIGJhdHRlcnkuCgogIApJIGRpZG4ndCB3YW50IGFsbCB0aGlzIHRvIGdvIHRvIHdhc3RlLApzbyBJIGNhbGxlZCBCYXJyeS4gTHVja2lseSwgaGUgd2FzIGZyZWUuCgogIApPaCwgdGhhdCB3YXMgbHVja3kuCgogIApUaGVyZSdzIGEgbGl0dGxlIGxlZnQuCkkgY291bGQgaGVhdCBpdCB1cC4KCiAgClllYWgsIGhlYXQgaXQgdXAsIHN1cmUsIHdoYXRldmVyLgoKICAKU28gSSBoZWFyIHlvdSdyZSBxdWl0ZSBhIHRlbm5pcyBwbGF5ZXIuCgogIApJJ20gbm90IG11Y2ggZm9yIHRoZSBnYW1lIG15c2VsZi4KVGhlIGJhbGwncyBhIGxpdHRsZSBncmFiYnkuCgogIApUaGF0J3Mgd2hlcmUgSSB1c3VhbGx5IHNpdC4KUmlnaHQuLi4gdGhlcmUuCgogIApLZW4sIEJhcnJ5IHdhcyBsb29raW5nIGF0IHlvdXIgcmVzdW1lLAoKICAKYW5kIGhlIGFncmVlZCB3aXRoIG1lIHRoYXQgZWF0aW5nIHdpdGgKY2hvcHN0aWNrcyBpc24ndCByZWFsbHkgYSBzcGVjaWFsIHNraWxsLgoKICAKWW91IHRoaW5rIEkgZG9uJ3Qgc2VlIHdoYXQgeW91J3JlIGRvaW5nPwoKICAKSSBrbm93IGhvdyBoYXJkIGl0IGlzIHRvIGZpbmQKdGhlIHJpZ2h0am9iLiBXZSBoYXZlIHRoYXQgaW4gY29tbW9uLgoKICAKRG8gd2U/CgogIApCZWVzIGhhdmUgMTAwIHBlcmNlbnQgZW1wbG95bWVudCwKYnV0IHdlIGRvIGpvYnMgbGlrZSB0YWtpbmcgdGhlIGNydWQgb3V0LgoKICAKVGhhdCdzIGp1c3Qgd2hhdApJIHdhcyB0aGlua2luZyBhYm91dCBkb2luZy4KCiAgCktlbiwgSSBsZXQgQmFycnkgYm9ycm93IHlvdXIgcmF6b3IKZm9yIGhpcyBmdXp6LiBJIGhvcGUgdGhhdCB3YXMgYWxsIHJpZ2h0LgoKICAKSSdtIGdvaW5nIHRvIGRyYWluIHRoZSBvbGQgc3Rpbmdlci4KCiAgClllYWgsIHlvdSBkbyB0aGF0LgoKICAKTG9vayBhdCB0aGF0LgoKICAKWW91IGtub3csIEkndmUganVzdCBhYm91dCBoYWQgaXQKCiAgCndpdGggeW91ciBsaXR0bGUgbWluZCBnYW1lcy4KCiAgCi0gV2hhdCdzIHRoYXQ/Ci0gSXRhbGlhbiBWb2d1ZS4KCiAgCk1hbW1hIG1pYSwgdGhhdCdzIGEgbG90IG9mIHBhZ2VzLgoKICAKQSBsb3Qgb2YgYWRzLgoKICAKUmVtZW1iZXIgd2hhdCBWYW4gc2FpZCwgd2h5IGlzCnlvdXIgbGlmZSBtb3JlIHZhbHVhYmxlIHRoYW4gbWluZT8KCiAgCkZ1bm55LCBJIGp1c3QgY2FuJ3Qgc2VlbSB0byByZWNhbGwgdGhhdCEKCiAgCkkgdGhpbmsgc29tZXRoaW5nIHN0aW5rcyBpbiBoZXJlIQoKICAKSSBsb3ZlIHRoZSBzbWVsbCBvZiBmbG93ZXJzLgoKICAKSG93IGRvIHlvdSBsaWtlIHRoZSBzbWVsbCBvZiBmbGFtZXM/IQoKICAKTm90IGFzIG11Y2guCgogIApXYXRlciBidWchIE5vdCB0YWtpbmcgc2lkZXMhCgogIApLZW4sIEknbSB3ZWFyaW5nIGEgT2hhcHN0aWNrIGhhdCEKVGhpcyBpcyBwYXRoZXRpYyEKCiAgCkkndmUgZ290IGlzc3VlcyEKCiAgCldlbGwsIHdlbGwsIHdlbGwsIGEgcm95YWwgZmx1c2ghCgogIAotIFlvdSdyZSBibHVmZmluZy4KLSBBbSBJPwoKICAKU3VyZidzIHVwLCBkdWRlIQoKICAKUG9vIHdhdGVyIQoKICAKVGhhdCBib3dsIGlzIGduYXJseS4KCiAgCkV4Y2VwdCBmb3IgdGhvc2UgZGlydHkgeWVsbG93IHJpbmdzIQoKICAKS2VubmV0aCEgV2hhdCBhcmUgeW91IGRvaW5nPyEKCiAgCllvdSBrbm93LCBJIGRvbid0IGV2ZW4gbGlrZSBob25leSEKSSBkb24ndCBlYXQgaXQhCgogIApXZSBuZWVkIHRvIHRhbGshCgogIApIZSdzIGp1c3QgYSBsaXR0bGUgYmVlIQoKICAKQW5kIGhlIGhhcHBlbnMgdG8gYmUKdGhlIG5pY2VzdCBiZWUgSSd2ZSBtZXQgaW4gYSBsb25nIHRpbWUhCgogIApMb25nIHRpbWU/IFdoYXQgYXJlIHlvdSB0YWxraW5nIGFib3V0PyEKQXJlIHRoZXJlIG90aGVyIGJ1Z3MgaW4geW91ciBsaWZlPwoKICAKTm8sIGJ1dCB0aGVyZSBhcmUgb3RoZXIgdGhpbmdzIGJ1Z2dpbmcKbWUgaW4gbGlmZS4gQW5kIHlvdSdyZSBvbmUgb2YgdGhlbSEKCiAgCkZpbmUhIFRhbGtpbmcgYmVlcywgbm8geW9ndXJ0IG5pZ2h0Li4uCgogIApNeSBuZXJ2ZXMgYXJlIGZyaWVkIGZyb20gcmlkaW5nCm9uIHRoaXMgZW1vdGlvbmFsIHJvbGxlciBjb2FzdGVyIQoKICAKR29vZGJ5ZSwgS2VuLgoKICAKQW5kIGZvciB5b3VyIGluZm9ybWF0aW9uLAoKICAKSSBwcmVmZXIgc3VnYXItZnJlZSwgYXJ0aWZpY2lhbApzd2VldGVuZXJzIG1hZGUgYnkgbWFuIQoKICAKSSdtIHNvcnJ5IGFib3V0IGFsbCB0aGF0LgoKICAKSSBrbm93IGl0J3MgZ290CmFuIGFmdGVydGFzdGUhIEkgbGlrZSBpdCEKCiAgCkkgYWx3YXlzIGZlbHQgdGhlcmUgd2FzIHNvbWUga2luZApvZiBiYXJyaWVyIGJldHdlZW4gS2VuIGFuZCBtZS4KCiAgCkkgY291bGRuJ3Qgb3ZlcmNvbWUgaXQuCk9oLCB3ZWxsLgoKICAKQXJlIHlvdSBPSyBmb3IgdGhlIHRyaWFsPwoKICAKSSBiZWxpZXZlIE1yLiBNb250Z29tZXJ5CmlzIGFib3V0IG91dCBvZiBpZGVhcy4KCiAgCldlIHdvdWxkIGxpa2UgdG8gY2FsbApNci4gQmFycnkgQmVuc29uIEJlZSB0byB0aGUgc3RhbmQuCgogIApHb29kIGlkZWEhIFlvdSBjYW4gcmVhbGx5IHNlZSB3aHkgaGUncwpjb25zaWRlcmVkIG9uZSBvZiB0aGUgYmVzdCBsYXd5ZXJzLi4uCgogIApZZWFoLgoKICAKTGF5dG9uLCB5b3UndmUKZ290dGEgd2VhdmUgc29tZSBtYWdpYwoKICAKd2l0aCB0aGlzIGp1cnksCm9yIGl0J3MgZ29ubmEgYmUgYWxsIG92ZXIuCgogIApEb24ndCB3b3JyeS4gVGhlIG9ubHkgdGhpbmcgSSBoYXZlCnRvIGRvIHRvIHR1cm4gdGhpcyBqdXJ5IGFyb3VuZAoKICAKaXMgdG8gcmVtaW5kIHRoZW0Kb2Ygd2hhdCB0aGV5IGRvbid0IGxpa2UgYWJvdXQgYmVlcy4KCiAgCi0gWW91IGdvdCB0aGUgdHdlZXplcnM/Ci0gQXJlIHlvdSBhbGxlcmdpYz8KCiAgCk9ubHkgdG8gbG9zaW5nLCBzb24uIE9ubHkgdG8gbG9zaW5nLgoKICAKTXIuIEJlbnNvbiBCZWUsIEknbGwgYXNrIHlvdQp3aGF0IEkgdGhpbmsgd2UnZCBhbGwgbGlrZSB0byBrbm93LgoKICAKV2hhdCBleGFjdGx5IGlzIHlvdXIgcmVsYXRpb25zaGlwCgogIAp0byB0aGF0IHdvbWFuPwoKICAKV2UncmUgZnJpZW5kcy4KCiAgCi0gR29vZCBmcmllbmRzPwotIFllcy4KCiAgCkhvdyBnb29kPyBEbyB5b3UgbGl2ZSB0b2dldGhlcj8KCiAgCldhaXQgYSBtaW51dGUuLi4KCiAgCkFyZSB5b3UgaGVyIGxpdHRsZS4uLgoKICAKLi4uYmVkYnVnPwoKICAKSSd2ZSBzZWVuIGEgYmVlIGRvY3VtZW50YXJ5IG9yIHR3by4KRnJvbSB3aGF0IEkgdW5kZXJzdGFuZCwKCiAgCmRvZXNuJ3QgeW91ciBxdWVlbiBnaXZlIGJpcnRoCnRvIGFsbCB0aGUgYmVlIGNoaWxkcmVuPwoKICAKLSBZZWFoLCBidXQuLi4KLSBTbyB0aG9zZSBhcmVuJ3QgeW91ciByZWFsIHBhcmVudHMhCgogIAotIE9oLCBCYXJyeS4uLgotIFllcywgdGhleSBhcmUhCgogIApIb2xkIG1lIGJhY2shCgogIApZb3UncmUgYW4gaWxsZWdpdGltYXRlIGJlZSwKYXJlbid0IHlvdSwgQmVuc29uPwoKICAKSGUncyBkZW5vdW5jaW5nIGJlZXMhCgogIApEb24ndCB5J2FsbCBkYXRlIHlvdXIgY291c2lucz8KCiAgCi0gT2JqZWN0aW9uIQotIEknbSBnb2luZyB0byBwaW5jdXNoaW9uIHRoaXMgZ3V5IQoKICAKQWRhbSwgZG9uJ3QhIEl0J3Mgd2hhdCBoZSB3YW50cyEKCiAgCk9oLCBJJ20gaGl0ISEKCiAgCk9oLCBsb3JkeSwgSSBhbSBoaXQhCgogIApPcmRlciEgT3JkZXIhCgogIApUaGUgdmVub20hIFRoZSB2ZW5vbQppcyBjb3Vyc2luZyB0aHJvdWdoIG15IHZlaW5zIQoKICAKSSBoYXZlIGJlZW4gZmVsbGVkCmJ5IGEgd2luZ2VkIGJlYXN0IG9mIGRlc3RydWN0aW9uIQoKICAKWW91IHNlZT8gWW91IGNhbid0IHRyZWF0IHRoZW0KbGlrZSBlcXVhbHMhIFRoZXkncmUgc3RyaXBlZCBzYXZhZ2VzIQoKICAKU3RpbmdpbmcncyB0aGUgb25seSB0aGluZwp0aGV5IGtub3chIEl0J3MgdGhlaXIgd2F5IQoKICAKLSBBZGFtLCBzdGF5IHdpdGggbWUuCi0gSSBjYW4ndCBmZWVsIG15IGxlZ3MuCgogIApXaGF0IGFuZ2VsIG9mIG1lcmN5CndpbGwgY29tZSBmb3J3YXJkIHRvIHN1Y2sgdGhlIHBvaXNvbgoKICAKZnJvbSBteSBoZWF2aW5nIGJ1dHRvY2tzPwoKICAKSSB3aWxsIGhhdmUgb3JkZXIgaW4gdGhpcyBjb3VydC4gT3JkZXIhCgogIApPcmRlciwgcGxlYXNlIQoKICAKVGhlIGNhc2Ugb2YgdGhlIGhvbmV5YmVlcwp2ZXJzdXMgdGhlIGh1bWFuIHJhY2UKCiAgCnRvb2sgYSBwb2ludGVkIHR1cm4gYWdhaW5zdCB0aGUgYmVlcwoKICAKeWVzdGVyZGF5IHdoZW4gb25lIG9mIHRoZWlyIGxlZ2FsCnRlYW0gc3R1bmcgTGF5dG9uIFQuIE1vbnRnb21lcnkuCgogIAotIEhleSwgYnVkZHkuCi0gSGV5LgoKICAKLSBJcyB0aGVyZSBtdWNoIHBhaW4/Ci0gWWVhaC4KCiAgCkkuLi4KCiAgCkkgYmxldyB0aGUgd2hvbGUgY2FzZSwgZGlkbid0IEk/CgogIApJdCBkb2Vzbid0IG1hdHRlci4gV2hhdCBtYXR0ZXJzIGlzCnlvdSdyZSBhbGl2ZS4gWW91IGNvdWxkIGhhdmUgZGllZC4KCiAgCkknZCBiZSBiZXR0ZXIgb2ZmIGRlYWQuIExvb2sgYXQgbWUuCgogIApUaGV5IGdvdCBpdCBmcm9tIHRoZSBjYWZldGVyaWEKZG93bnN0YWlycywgaW4gYSB0dW5hIHNhbmR3aWNoLgoKICAKTG9vaywgdGhlcmUncwphIGxpdHRsZSBjZWxlcnkgc3RpbGwgb24gaXQuCgogIApXaGF0IHdhcyBpdCBsaWtlIHRvIHN0aW5nIHNvbWVvbmU/CgogIApJIGNhbid0IGV4cGxhaW4gaXQuIEl0IHdhcyBhbGwuLi4KCiAgCkFsbCBhZHJlbmFsaW5lIGFuZCB0aGVuLi4uCmFuZCB0aGVuIGVjc3Rhc3khCgogIApBbGwgcmlnaHQuCgogIApZb3UgdGhpbmsgaXQgd2FzIGFsbCBhIHRyYXA/CgogIApPZiBjb3Vyc2UuIEknbSBzb3JyeS4KSSBmbGV3IHVzIHJpZ2h0IGludG8gdGhpcy4KCiAgCldoYXQgd2VyZSB3ZSB0aGlua2luZz8gTG9vayBhdCB1cy4gV2UncmUKanVzdCBhIGNvdXBsZSBvZiBidWdzIGluIHRoaXMgd29ybGQuCgogIApXaGF0IHdpbGwgdGhlIGh1bWFucyBkbyB0byB1cwppZiB0aGV5IHdpbj8KCiAgCkkgZG9uJ3Qga25vdy4KCiAgCkkgaGVhciB0aGV5IHB1dCB0aGUgcm9hY2hlcyBpbiBtb3RlbHMuClRoYXQgZG9lc24ndCBzb3VuZCBzbyBiYWQuCgogIApBZGFtLCB0aGV5IGNoZWNrIGluLApidXQgdGhleSBkb24ndCBjaGVjayBvdXQhCgogIApPaCwgbXkuCgogIApPb3VsZCB5b3UgZ2V0IGEgbnVyc2UKdG8gY2xvc2UgdGhhdCB3aW5kb3c/CgogIAotIFdoeT8KLSBUaGUgc21va2UuCgogIApCZWVzIGRvbid0IHNtb2tlLgoKICAKUmlnaHQuIEJlZXMgZG9uJ3Qgc21va2UuCgogIApCZWVzIGRvbid0IHNtb2tlIQpCdXQgc29tZSBiZWVzIGFyZSBzbW9raW5nLgoKICAKVGhhdCdzIGl0ISBUaGF0J3Mgb3VyIGNhc2UhCgogIApJdCBpcz8gSXQncyBub3Qgb3Zlcj8KCiAgCkdldCBkcmVzc2VkLiBJJ3ZlIGdvdHRhIGdvIHNvbWV3aGVyZS4KCiAgCkdldCBiYWNrIHRvIHRoZSBjb3VydCBhbmQgc3RhbGwuClN0YWxsIGFueSB3YXkgeW91IGNhbi4KCiAgCkFuZCBhc3N1bWluZyB5b3UndmUgZG9uZSBzdGVwIGNvcnJlY3RseSwgeW91J3JlIHJlYWR5IGZvciB0aGUgdHViLgoKICAKTXIuIEZsYXltYW4uCgogIApZZXM/IFllcywgWW91ciBIb25vciEKCiAgCldoZXJlIGlzIHRoZSByZXN0IG9mIHlvdXIgdGVhbT8KCiAgCldlbGwsIFlvdXIgSG9ub3IsIGl0J3MgaW50ZXJlc3RpbmcuCgogIApCZWVzIGFyZSB0cmFpbmVkIHRvIGZseSBoYXBoYXphcmRseSwKCiAgCmFuZCBhcyBhIHJlc3VsdCwKd2UgZG9uJ3QgbWFrZSB2ZXJ5IGdvb2QgdGltZS4KCiAgCkkgYWN0dWFsbHkgaGVhcmQgYSBmdW5ueSBzdG9yeSBhYm91dC4uLgoKICAKWW91ciBIb25vciwKaGF2ZW4ndCB0aGVzZSByaWRpY3Vsb3VzIGJ1Z3MKCiAgCnRha2VuIHVwIGVub3VnaApvZiB0aGlzIGNvdXJ0J3MgdmFsdWFibGUgdGltZT8KCiAgCkhvdyBtdWNoIGxvbmdlciB3aWxsIHdlIGFsbG93CnRoZXNlIGFic3VyZCBzaGVuYW5pZ2FucyB0byBnbyBvbj8KCiAgClRoZXkgaGF2ZSBwcmVzZW50ZWQgbm8gY29tcGVsbGluZwpldmlkZW5jZSB0byBzdXBwb3J0IHRoZWlyIGNoYXJnZXMKCiAgCmFnYWluc3QgbXkgY2xpZW50cywKd2hvIHJ1biBsZWdpdGltYXRlIGJ1c2luZXNzZXMuCgogIApJIG1vdmUgZm9yIGEgY29tcGxldGUgZGlzbWlzc2FsCm9mIHRoaXMgZW50aXJlIGNhc2UhCgogIApNci4gRmxheW1hbiwgSSdtIGFmcmFpZCBJJ20gZ29pbmcKCiAgCnRvIGhhdmUgdG8gY29uc2lkZXIKTXIuIE1vbnRnb21lcnkncyBtb3Rpb24uCgogIApCdXQgeW91IGNhbid0ISBXZSBoYXZlIGEgdGVycmlmaWMgY2FzZS4KCiAgCldoZXJlIGlzIHlvdXIgcHJvb2Y/CldoZXJlIGlzIHRoZSBldmlkZW5jZT8KCiAgClNob3cgbWUgdGhlIHNtb2tpbmcgZ3VuIQoKICAKSG9sZCBpdCwgWW91ciBIb25vciEKWW91IHdhbnQgYSBzbW9raW5nIGd1bj8KCiAgCkhlcmUgaXMgeW91ciBzbW9raW5nIGd1bi4KCiAgCldoYXQgaXMgdGhhdD8KCiAgCkl0J3MgYSBiZWUgc21va2VyIQoKICAKV2hhdCwgdGhpcz8KVGhpcyBoYXJtbGVzcyBsaXR0bGUgY29udHJhcHRpb24/CgogIApUaGlzIGNvdWxkbid0IGh1cnQgYSBmbHksCmxldCBhbG9uZSBhIGJlZS4KCiAgCkxvb2sgYXQgd2hhdCBoYXMgaGFwcGVuZWQKCiAgCnRvIGJlZXMgd2hvIGhhdmUgbmV2ZXIgYmVlbiBhc2tlZCwKIlNtb2tpbmcgb3Igbm9uPyIKCiAgCklzIHRoaXMgd2hhdCBuYXR1cmUgaW50ZW5kZWQgZm9yIHVzPwoKICAKVG8gYmUgZm9yY2libHkgYWRkaWN0ZWQKdG8gc21va2UgbWFjaGluZXMKCiAgCmFuZCBtYW4tbWFkZSB3b29kZW4gc2xhdCB3b3JrIGNhbXBzPwoKICAKTGl2aW5nIG91dCBvdXIgbGl2ZXMgYXMgaG9uZXkgc2xhdmVzCnRvIHRoZSB3aGl0ZSBtYW4/CgogIAotIFdoYXQgYXJlIHdlIGdvbm5hIGRvPwotIEhlJ3MgcGxheWluZyB0aGUgc3BlY2llcyBjYXJkLgoKICAKTGFkaWVzIGFuZCBnZW50bGVtZW4sIHBsZWFzZSwKZnJlZSB0aGVzZSBiZWVzIQoKICAKRnJlZSB0aGUgYmVlcyEgRnJlZSB0aGUgYmVlcyEKCiAgCkZyZWUgdGhlIGJlZXMhCgogIApGcmVlIHRoZSBiZWVzISBGcmVlIHRoZSBiZWVzIQoKICAKVGhlIGNvdXJ0IGZpbmRzIGluIGZhdm9yIG9mIHRoZSBiZWVzIQoKICAKVmFuZXNzYSwgd2Ugd29uIQoKICAKSSBrbmV3IHlvdSBjb3VsZCBkbyBpdCEgSGlnaC1maXZlIQoKICAKU29ycnkuCgogIApJJ20gT0shIFlvdSBrbm93IHdoYXQgdGhpcyBtZWFucz8KCiAgCkFsbCB0aGUgaG9uZXkKd2lsbCBmaW5hbGx5IGJlbG9uZyB0byB0aGUgYmVlcy4KCiAgCk5vdyB3ZSB3b24ndCBoYXZlCnRvIHdvcmsgc28gaGFyZCBhbGwgdGhlIHRpbWUuCgogIApUaGlzIGlzIGFuIHVuaG9seSBwZXJ2ZXJzaW9uCm9mIHRoZSBiYWxhbmNlIG9mIG5hdHVyZSwgQmVuc29uLgoKICAKWW91J2xsIHJlZ3JldCB0aGlzLgoKICAKQmFycnksIGhvdyBtdWNoIGhvbmV5IGlzIG91dCB0aGVyZT8KCiAgCkFsbCByaWdodC4gT25lIGF0IGEgdGltZS4KCiAgCkJhcnJ5LCB3aG8gYXJlIHlvdSB3ZWFyaW5nPwoKICAKTXkgc3dlYXRlciBpcyBSYWxwaCBMYXVyZW4sCmFuZCBJIGhhdmUgbm8gcGFudHMuCgogIAotIFdoYXQgaWYgTW9udGdvbWVyeSdzIHJpZ2h0PwotIFdoYXQgZG8geW91IG1lYW4/CgogIApXZSd2ZSBiZWVuIGxpdmluZyB0aGUgYmVlIHdheQphIGxvbmcgdGltZSwgMjcgbWlsbGlvbiB5ZWFycy4KCiAgCk9vbmdyYXR1bGF0aW9ucyBvbiB5b3VyIHZpY3RvcnkuCldoYXQgd2lsbCB5b3UgZGVtYW5kIGFzIGEgc2V0dGxlbWVudD8KCiAgCkZpcnN0LCB3ZSdsbCBkZW1hbmQgYSBjb21wbGV0ZSBzaHV0ZG93bgpvZiBhbGwgYmVlIHdvcmsgY2FtcHMuCgogIApUaGVuIHdlIHdhbnQgYmFjayB0aGUgaG9uZXkKdGhhdCB3YXMgb3VycyB0byBiZWdpbiB3aXRoLAoKICAKZXZlcnkgbGFzdCBkcm9wLgoKICAKV2UgZGVtYW5kIGFuIGVuZCB0byB0aGUgZ2xvcmlmaWNhdGlvbgpvZiB0aGUgYmVhciBhcyBhbnl0aGluZyBtb3JlCgogIAp0aGFuIGEgZmlsdGh5LCBzbWVsbHksCmJhZC1icmVhdGggc3RpbmsgbWFjaGluZS4KCiAgCldlJ3JlIGFsbCBhd2FyZQpvZiB3aGF0IHRoZXkgZG8gaW4gdGhlIHdvb2RzLgoKICAKV2FpdCBmb3IgbXkgc2lnbmFsLgoKICAKVGFrZSBoaW0gb3V0LgoKICAKSGUnbGwgaGF2ZSBuYXVzZW91cwpmb3IgYSBmZXcgaG91cnMsIHRoZW4gaGUnbGwgYmUgZmluZS4KCiAgCkFuZCB3ZSB3aWxsIG5vIGxvbmdlciB0b2xlcmF0ZQpiZWUtbmVnYXRpdmUgbmlja25hbWVzLi4uCgogIApCdXQgaXQncyBqdXN0IGEgcHJhbmNlLWFib3V0IHN0YWdlIG5hbWUhCgogIAouLi51bm5lY2Vzc2FyeSBpbmNsdXNpb24gb2YgaG9uZXkKaW4gYm9ndXMgaGVhbHRoIHByb2R1Y3RzCgogIAphbmQgbGEtZGVlLWRhIGh1bWFuCnRlYS10aW1lIHNuYWNrIGdhcm5pc2htZW50cy4KCiAgCk9hbid0IGJyZWF0aGUuCgogIApCcmluZyBpdCBpbiwgYm95cyEKCiAgCkhvbGQgaXQgcmlnaHQgdGhlcmUhIEdvb2QuCgogIApUYXAgaXQuCgogIApNci4gQnV6endlbGwsIHdlIGp1c3QgcGFzc2VkIHRocmVlIGN1cHMsCmFuZCB0aGVyZSdzIGdhbGxvbnMgbW9yZSBjb21pbmchCgogIAotIEkgdGhpbmsgd2UgbmVlZCB0byBzaHV0IGRvd24hCi0gU2h1dCBkb3duPyBXZSd2ZSBuZXZlciBzaHV0IGRvd24uCgogIApTaHV0IGRvd24gaG9uZXkgcHJvZHVjdGlvbiEKCiAgClN0b3AgbWFraW5nIGhvbmV5IQoKICAKVHVybiB5b3VyIGtleSwgc2lyIQoKICAKV2hhdCBkbyB3ZSBkbyBub3c/CgogIApPYW5ub25iYWxsIQoKICAKV2UncmUgc2h1dHRpbmcgaG9uZXkgcHJvZHVjdGlvbiEKCiAgCk1pc3Npb24gYWJvcnQuCgogIApBYm9ydGluZyBwb2xsaW5hdGlvbiBhbmQgbmVjdGFyIGRldGFpbC4KUmV0dXJuaW5nIHRvIGJhc2UuCgogIApBZGFtLCB5b3Ugd291bGRuJ3QgYmVsaWV2ZQpob3cgbXVjaCBob25leSB3YXMgb3V0IHRoZXJlLgoKICAKT2gsIHllYWg/CgogIApXaGF0J3MgZ29pbmcgb24/IFdoZXJlIGlzIGV2ZXJ5Ym9keT8KCiAgCi0gQXJlIHRoZXkgb3V0IGNlbGVicmF0aW5nPwotIFRoZXkncmUgaG9tZS4KCiAgClRoZXkgZG9uJ3Qga25vdyB3aGF0IHRvIGRvLgpMYXlpbmcgb3V0LCBzbGVlcGluZyBpbi4KCiAgCkkgaGVhcmQgeW91ciBVbmNsZSBPYXJsIHdhcyBvbiBoaXMgd2F5CnRvIFNhbiBBbnRvbmlvIHdpdGggYSBjcmlja2V0LgoKICAKQXQgbGVhc3Qgd2UgZ290IG91ciBob25leSBiYWNrLgoKICAKU29tZXRpbWVzIEkgdGhpbmssIHNvIHdoYXQgaWYgaHVtYW5zCmxpa2VkIG91ciBob25leT8gV2hvIHdvdWxkbid0PwoKICAKSXQncyB0aGUgZ3JlYXRlc3QgdGhpbmcgaW4gdGhlIHdvcmxkIQpJIHdhcyBleGNpdGVkIHRvIGJlIHBhcnQgb2YgbWFraW5nIGl0LgoKICAKVGhpcyB3YXMgbXkgbmV3IGRlc2suIFRoaXMgd2FzIG15Cm5ldyBqb2IuIEkgd2FudGVkIHRvIGRvIGl0IHJlYWxseSB3ZWxsLgoKICAKQW5kIG5vdy4uLgoKICAKTm93IEkgY2FuJ3QuCgogIApJIGRvbid0IHVuZGVyc3RhbmQKd2h5IHRoZXkncmUgbm90IGhhcHB5LgoKICAKSSB0aG91Z2h0IHRoZWlyIGxpdmVzIHdvdWxkIGJlIGJldHRlciEKCiAgClRoZXkncmUgZG9pbmcgbm90aGluZy4gSXQncyBhbWF6aW5nLgpIb25leSByZWFsbHkgY2hhbmdlcyBwZW9wbGUuCgogIApZb3UgZG9uJ3QgaGF2ZSBhbnkgaWRlYQp3aGF0J3MgZ29pbmcgb24sIGRvIHlvdT8KCiAgCi0gV2hhdCBkaWQgeW91IHdhbnQgdG8gc2hvdyBtZT8KLSBUaGlzLgoKICAKV2hhdCBoYXBwZW5lZCBoZXJlPwoKICAKVGhhdCBpcyBub3QgdGhlIGhhbGYgb2YgaXQuCgogIApPaCwgbm8uIE9oLCBteS4KCiAgClRoZXkncmUgYWxsIHdpbHRpbmcuCgogIApEb2Vzbid0IGxvb2sgdmVyeSBnb29kLCBkb2VzIGl0PwoKICAKTm8uCgogIApBbmQgd2hvc2UgZmF1bHQgZG8geW91IHRoaW5rIHRoYXQgaXM/CgogIApZb3Uga25vdywgSSdtIGdvbm5hIGd1ZXNzIGJlZXMuCgogIApCZWVzPwoKICAKU3BlY2lmaWNhbGx5LCBtZS4KCiAgCkkgZGlkbid0IHRoaW5rIGJlZXMgbm90IG5lZWRpbmcgdG8gbWFrZQpob25leSB3b3VsZCBhZmZlY3QgYWxsIHRoZXNlIHRoaW5ncy4KCiAgCkl0J3Mgbm90anVzdCBmbG93ZXJzLgpGcnVpdHMsIHZlZ2V0YWJsZXMsIHRoZXkgYWxsIG5lZWQgYmVlcy4KCiAgClRoYXQncyBvdXIgd2hvbGUgU0FUIHRlc3QgcmlnaHQgdGhlcmUuCgogIApUYWtlIGF3YXkgcHJvZHVjZSwgdGhhdCBhZmZlY3RzCnRoZSBlbnRpcmUgYW5pbWFsIGtpbmdkb20uCgogIApBbmQgdGhlbiwgb2YgY291cnNlLi4uCgogIApUaGUgaHVtYW4gc3BlY2llcz8KCiAgClNvIGlmIHRoZXJlJ3Mgbm8gbW9yZSBwb2xsaW5hdGlvbiwKCiAgCml0IGNvdWxkIGFsbCBqdXN0IGdvIHNvdXRoIGhlcmUsCmNvdWxkbid0IGl0PwoKICAKSSBrbm93IHRoaXMgaXMgYWxzbyBwYXJ0bHkgbXkgZmF1bHQuCgogIApIb3cgYWJvdXQgYSBzdWljaWRlIHBhY3Q/CgogIApIb3cgZG8gd2UgZG8gaXQ/CgogIAotIEknbGwgc3RpbmcgeW91LCB5b3Ugc3RlcCBvbiBtZS4KLSBUaGF0anVzdCBraWxscyB5b3UgdHdpY2UuCgogIApSaWdodCwgcmlnaHQuCgogIApMaXN0ZW4sIEJhcnJ5Li4uCnNvcnJ5LCBidXQgSSBnb3R0YSBnZXQgZ29pbmcuCgogIApJIGhhZCB0byBvcGVuIG15IG1vdXRoIGFuZCB0YWxrLgoKICAKVmFuZXNzYT8KCiAgClZhbmVzc2E/IFdoeSBhcmUgeW91IGxlYXZpbmc/CldoZXJlIGFyZSB5b3UgZ29pbmc/CgogIApUbyB0aGUgZmluYWwgVG91cm5hbWVudCBvZiBSb3NlcyBwYXJhZGUKaW4gUGFzYWRlbmEuCgogIApUaGV5J3ZlIG1vdmVkIGl0IHRvIHRoaXMgd2Vla2VuZApiZWNhdXNlIGFsbCB0aGUgZmxvd2VycyBhcmUgZHlpbmcuCgogIApJdCdzIHRoZSBsYXN0IGNoYW5jZQpJJ2xsIGV2ZXIgaGF2ZSB0byBzZWUgaXQuCgogIApWYW5lc3NhLCBJIGp1c3Qgd2FubmEgc2F5IEknbSBzb3JyeS4KSSBuZXZlciBtZWFudCBpdCB0byB0dXJuIG91dCBsaWtlIHRoaXMuCgogIApJIGtub3cuIE1lIG5laXRoZXIuCgogIApUb3VybmFtZW50IG9mIFJvc2VzLgpSb3NlcyBjYW4ndCBkbyBzcG9ydHMuCgogIApXYWl0IGEgbWludXRlLiBSb3Nlcy4gUm9zZXM/CgogIApSb3NlcyEKCiAgClZhbmVzc2EhCgogIApSb3Nlcz8hCgogIApCYXJyeT8KCiAgCi0gUm9zZXMgYXJlIGZsb3dlcnMhCi0gWWVzLCB0aGV5IGFyZS4KCiAgCkZsb3dlcnMsIGJlZXMsIHBvbGxlbiEKCiAgCkkga25vdy4KVGhhdCdzIHdoeSB0aGlzIGlzIHRoZSBsYXN0IHBhcmFkZS4KCiAgCk1heWJlIG5vdC4KT291bGQgeW91IGFzayBoaW0gdG8gc2xvdyBkb3duPwoKICAKT291bGQgeW91IHNsb3cgZG93bj8KCiAgCkJhcnJ5IQoKICAKT0ssIEkgbWFkZSBhIGh1Z2UgbWlzdGFrZS4KVGhpcyBpcyBhIHRvdGFsIGRpc2FzdGVyLCBhbGwgbXkgZmF1bHQuCgogIApZZXMsIGl0IGtpbmQgb2YgaXMuCgogIApJJ3ZlIHJ1aW5lZCB0aGUgcGxhbmV0LgpJIHdhbnRlZCB0byBoZWxwIHlvdQoKICAKd2l0aCB0aGUgZmxvd2VyIHNob3AuCkkndmUgbWFkZSBpdCB3b3JzZS4KCiAgCkFjdHVhbGx5LCBpdCdzIGNvbXBsZXRlbHkgY2xvc2VkIGRvd24uCgogIApJIHRob3VnaHQgbWF5YmUgeW91IHdlcmUgcmVtb2RlbGluZy4KCiAgCkJ1dCBJIGhhdmUgYW5vdGhlciBpZGVhLCBhbmQgaXQncwpncmVhdGVyIHRoYW4gbXkgcHJldmlvdXMgaWRlYXMgY29tYmluZWQuCgogIApJIGRvbid0IHdhbnQgdG8gaGVhciBpdCEKCiAgCkFsbCByaWdodCwgdGhleSBoYXZlIHRoZSByb3NlcywKdGhlIHJvc2VzIGhhdmUgdGhlIHBvbGxlbi4KCiAgCkkga25vdyBldmVyeSBiZWUsIHBsYW50CmFuZCBmbG93ZXIgYnVkIGluIHRoaXMgcGFyay4KCiAgCkFsbCB3ZSBnb3R0YSBkbyBpcyBnZXQgd2hhdCB0aGV5J3ZlIGdvdApiYWNrIGhlcmUgd2l0aCB3aGF0IHdlJ3ZlIGdvdC4KCiAgCi0gQmVlcy4KLSBQYXJrLgoKICAKLSBQb2xsZW4hCi0gRmxvd2Vycy4KCiAgCi0gUmVwb2xsaW5hdGlvbiEKLSBBY3Jvc3MgdGhlIG5hdGlvbiEKCiAgClRvdXJuYW1lbnQgb2YgUm9zZXMsClBhc2FkZW5hLCBPYWxpZm9ybmlhLgoKICAKVGhleSd2ZSBnb3Qgbm90aGluZwpidXQgZmxvd2VycywgZmxvYXRzIGFuZCBjb3R0b24gY2FuZHkuCgogIApTZWN1cml0eSB3aWxsIGJlIHRpZ2h0LgoKICAKSSBoYXZlIGFuIGlkZWEuCgogIApWYW5lc3NhIEJsb29tZSwgRlRELgoKICAKT2ZmaWNpYWwgZmxvcmFsIGJ1c2luZXNzLiBJdCdzIHJlYWwuCgogIApTb3JyeSwgbWEnYW0uIE5pY2UgYnJvb2NoLgoKICAKVGhhbmsgeW91LiBJdCB3YXMgYSBnaWZ0LgoKICAKT25jZSBpbnNpZGUsCndlIGp1c3QgcGljayB0aGUgcmlnaHQgZmxvYXQuCgogIApIb3cgYWJvdXQgVGhlIFByaW5jZXNzIGFuZCB0aGUgUGVhPwoKICAKSSBjb3VsZCBiZSB0aGUgcHJpbmNlc3MsCmFuZCB5b3UgY291bGQgYmUgdGhlIHBlYSEKCiAgClllcywgSSBnb3QgaXQuCgogIAotIFdoZXJlIHNob3VsZCBJIHNpdD8KLSBXaGF0IGFyZSB5b3U/CgogIAotIEkgYmVsaWV2ZSBJJ20gdGhlIHBlYS4KLSBUaGUgcGVhPwoKICAKSXQgZ29lcyB1bmRlciB0aGUgbWF0dHJlc3Nlcy4KCiAgCi0gTm90IGluIHRoaXMgZmFpcnkgdGFsZSwgc3dlZXRoZWFydC4KLSBJJ20gZ2V0dGluZyB0aGUgbWFyc2hhbC4KCiAgCllvdSBkbyB0aGF0IQpUaGlzIHdob2xlIHBhcmFkZSBpcyBhIGZpYXNjbyEKCiAgCkxldCdzIHNlZSB3aGF0IHRoaXMgYmFieSdsbCBkby4KCiAgCkhleSwgd2hhdCBhcmUgeW91IGRvaW5nPyEKCiAgClRoZW4gYWxsIHdlIGRvCmlzIGJsZW5kIGluIHdpdGggdHJhZmZpYy4uLgoKICAKLi4ud2l0aG91dCBhcm91c2luZyBzdXNwaWNpb24uCgogIApPbmNlIGF0IHRoZSBhaXJwb3J0LAp0aGVyZSdzIG5vIHN0b3BwaW5nIHVzLgoKICAKU3RvcCEgU2VjdXJpdHkuCgogIAotIFlvdSBhbmQgeW91ciBpbnNlY3QgcGFjayB5b3VyIGZsb2F0PwotIFllcy4KCiAgCkhhcyBpdCBiZWVuCmluIHlvdXIgcG9zc2Vzc2lvbiB0aGUgZW50aXJlIHRpbWU/CgogIApXb3VsZCB5b3UgcmVtb3ZlIHlvdXIgc2hvZXM/CgogIAotIFJlbW92ZSB5b3VyIHN0aW5nZXIuCi0gSXQncyBwYXJ0IG9mIG1lLgoKICAKSSBrbm93LiBKdXN0IGhhdmluZyBzb21lIGZ1bi4KRW5qb3kgeW91ciBmbGlnaHQuCgogIApUaGVuIGlmIHdlJ3JlIGx1Y2t5LCB3ZSdsbCBoYXZlCmp1c3QgZW5vdWdoIHBvbGxlbiB0byBkbyB0aGUgam9iLgoKICAKT2FuIHlvdSBiZWxpZXZlIGhvdyBsdWNreSB3ZSBhcmU/IFdlCmhhdmUganVzdCBlbm91Z2ggcG9sbGVuIHRvIGRvIHRoZSBqb2IhCgogIApJIHRoaW5rIHRoaXMgaXMgZ29ubmEgd29yay4KCiAgCkl0J3MgZ290IHRvIHdvcmsuCgogIApBdHRlbnRpb24sIHBhc3NlbmdlcnMsCnRoaXMgaXMgT2FwdGFpbiBTY290dC4KCiAgCldlIGhhdmUgYSBiaXQgb2YgYmFkIHdlYXRoZXIKaW4gTmV3IFlvcmsuCgogIApJdCBsb29rcyBsaWtlIHdlJ2xsIGV4cGVyaWVuY2UKYSBjb3VwbGUgaG91cnMgZGVsYXkuCgogIApCYXJyeSwgdGhlc2UgYXJlIGN1dCBmbG93ZXJzCndpdGggbm8gd2F0ZXIuIFRoZXknbGwgbmV2ZXIgbWFrZSBpdC4KCiAgCkkgZ290dGEgZ2V0IHVwIHRoZXJlCmFuZCB0YWxrIHRvIHRoZW0uCgogIApCZSBjYXJlZnVsLgoKICAKT2FuIEkgZ2V0IGhlbHAKd2l0aCB0aGUgU2t5IE1hbGwgbWFnYXppbmU/CgogIApJJ2QgbGlrZSB0byBvcmRlciB0aGUgdGFsa2luZwppbmZsYXRhYmxlIG5vc2UgYW5kIGVhciBoYWlyIHRyaW1tZXIuCgogIApPYXB0YWluLCBJJ20gaW4gYSByZWFsIHNpdHVhdGlvbi4KCiAgCi0gV2hhdCdkIHlvdSBzYXksIEhhbD8KLSBOb3RoaW5nLgoKICAKQmVlIQoKICAKRG9uJ3QgZnJlYWsgb3V0ISBNeSBlbnRpcmUgc3BlY2llcy4uLgoKICAKV2hhdCBhcmUgeW91IGRvaW5nPwoKICAKLSBXYWl0IGEgbWludXRlISBJJ20gYW4gYXR0b3JuZXkhCi0gV2hvJ3MgYW4gYXR0b3JuZXk/CgogIApEb24ndCBtb3ZlLgoKICAKT2gsIEJhcnJ5LgoKICAKR29vZCBhZnRlcm5vb24sIHBhc3NlbmdlcnMuClRoaXMgaXMgeW91ciBjYXB0YWluLgoKICAKV291bGQgYSBNaXNzIFZhbmVzc2EgQmxvb21lIGluIDI0QgpwbGVhc2UgcmVwb3J0IHRvIHRoZSBjb2NrcGl0PwoKICAKQW5kIHBsZWFzZSBodXJyeSEKCiAgCldoYXQgaGFwcGVuZWQgaGVyZT8KCiAgClRoZXJlIHdhcyBhIER1c3RCdXN0ZXIsCmEgdG91cGVlLCBhIGxpZmUgcmFmdCBleHBsb2RlZC4KCiAgCk9uZSdzIGJhbGQsIG9uZSdzIGluIGEgYm9hdCwKdGhleSdyZSBib3RoIHVuY29uc2Npb3VzIQoKICAKLSBJcyB0aGF0IGFub3RoZXIgYmVlIGpva2U/Ci0gTm8hCgogIApObyBvbmUncyBmbHlpbmcgdGhlIHBsYW5lIQoKICAKVGhpcyBpcyBKRksgY29udHJvbCB0b3dlciwgRmxpZ2h0IDM1Ni4KV2hhdCdzIHlvdXIgc3RhdHVzPwoKICAKVGhpcyBpcyBWYW5lc3NhIEJsb29tZS4KSSdtIGEgZmxvcmlzdCBmcm9tIE5ldyBZb3JrLgoKICAKV2hlcmUncyB0aGUgcGlsb3Q/CgogIApIZSdzIHVuY29uc2Npb3VzLAphbmQgc28gaXMgdGhlIGNvcGlsb3QuCgogIApOb3QgZ29vZC4gRG9lcyBhbnlvbmUgb25ib2FyZApoYXZlIGZsaWdodCBleHBlcmllbmNlPwoKICAKQXMgYSBtYXR0ZXIgb2YgZmFjdCwgdGhlcmUgaXMuCgogIAotIFdobydzIHRoYXQ/Ci0gQmFycnkgQmVuc29uLgoKICAKRnJvbSB0aGUgaG9uZXkgdHJpYWw/ISBPaCwgZ3JlYXQuCgogIApWYW5lc3NhLCB0aGlzIGlzIG5vdGhpbmcgbW9yZQp0aGFuIGEgYmlnIG1ldGFsIGJlZS4KCiAgCkl0J3MgZ290IGdpYW50IHdpbmdzLCBodWdlIGVuZ2luZXMuCgogIApJIGNhbid0IGZseSBhIHBsYW5lLgoKICAKLSBXaHkgbm90PyBJc24ndCBKb2huIFRyYXZvbHRhIGEgcGlsb3Q/Ci0gWWVzLgoKICAKSG93IGhhcmQgY291bGQgaXQgYmU/CgogIApXYWl0LCBCYXJyeSEKV2UncmUgaGVhZGVkIGludG8gc29tZSBsaWdodG5pbmcuCgogIApUaGlzIGlzIEJvYiBCdW1ibGUuIFdlIGhhdmUgc29tZQpsYXRlLWJyZWFraW5nIG5ld3MgZnJvbSBKRksgQWlycG9ydCwKCiAgCndoZXJlIGEgc3VzcGVuc2VmdWwgc2NlbmUKaXMgZGV2ZWxvcGluZy4KCiAgCkJhcnJ5IEJlbnNvbiwKZnJlc2ggZnJvbSBoaXMgbGVnYWwgdmljdG9yeS4uLgoKICAKVGhhdCdzIEJhcnJ5IQoKICAKLi4uaXMgYXR0ZW1wdGluZyB0byBsYW5kIGEgcGxhbmUsCmxvYWRlZCB3aXRoIHBlb3BsZSwgZmxvd2VycwoKICAKYW5kIGFuIGluY2FwYWNpdGF0ZWQgZmxpZ2h0IGNyZXcuCgogIApGbG93ZXJzPyEKCiAgCldlIGhhdmUgYSBzdG9ybSBpbiB0aGUgYXJlYQphbmQgdHdvIGluZGl2aWR1YWxzIGF0IHRoZSBjb250cm9scwoKICAKd2l0aCBhYnNvbHV0ZWx5IG5vIGZsaWdodCBleHBlcmllbmNlLgoKICAKSnVzdCBhIG1pbnV0ZS4KVGhlcmUncyBhIGJlZSBvbiB0aGF0IHBsYW5lLgoKICAKSSdtIHF1aXRlIGZhbWlsaWFyIHdpdGggTXIuIEJlbnNvbgphbmQgaGlzIG5vLWFjY291bnQgY29tcGFkcmVzLgoKICAKVGhleSd2ZSBkb25lIGVub3VnaCBkYW1hZ2UuCgogIApCdXQgaXNuJ3QgaGUgeW91ciBvbmx5IGhvcGU/CgogIApUZWNobmljYWxseSwgYSBiZWUKc2hvdWxkbid0IGJlIGFibGUgdG8gZmx5IGF0IGFsbC4KCiAgClRoZWlyIHdpbmdzIGFyZSB0b28gc21hbGwuLi4KCiAgCkhhdmVuJ3Qgd2UgaGVhcmQgdGhpcyBhIG1pbGxpb24gdGltZXM/CgogIAoiVGhlIHN1cmZhY2UgYXJlYSBvZiB0aGUgd2luZ3MKYW5kIGJvZHkgbWFzcyBtYWtlIG5vIHNlbnNlLiIKCiAgCi0gR2V0IHRoaXMgb24gdGhlIGFpciEKLSBHb3QgaXQuCgogIAotIFN0YW5kIGJ5LgotIFdlJ3JlIGdvaW5nIGxpdmUuCgogIApUaGUgd2F5IHdlIHdvcmsgbWF5IGJlIGEgbXlzdGVyeSB0byB5b3UuCgogIApNYWtpbmcgaG9uZXkgdGFrZXMgYSBsb3Qgb2YgYmVlcwpkb2luZyBhIGxvdCBvZiBzbWFsbCBqb2JzLgoKICAKQnV0IGxldCBtZSB0ZWxsIHlvdSBhYm91dCBhIHNtYWxsIGpvYi4KCiAgCklmIHlvdSBkbyBpdCB3ZWxsLAppdCBtYWtlcyBhIGJpZyBkaWZmZXJlbmNlLgoKICAKTW9yZSB0aGFuIHdlIHJlYWxpemVkLgpUbyB1cywgdG8gZXZlcnlvbmUuCgogIApUaGF0J3Mgd2h5IEkgd2FudCB0byBnZXQgYmVlcwpiYWNrIHRvIHdvcmtpbmcgdG9nZXRoZXIuCgogIApUaGF0J3MgdGhlIGJlZSB3YXkhCldlJ3JlIG5vdCBtYWRlIG9mIEplbGwtTy4KCiAgCldlIGdldCBiZWhpbmQgYSBmZWxsb3cuCgogIAotIEJsYWNrIGFuZCB5ZWxsb3chCi0gSGVsbG8hCgogIApMZWZ0LCByaWdodCwgZG93biwgaG92ZXIuCgogIAotIEhvdmVyPwotIEZvcmdldCBob3Zlci4KCiAgClRoaXMgaXNuJ3Qgc28gaGFyZC4KQmVlcC1iZWVwISBCZWVwLWJlZXAhCgogIApCYXJyeSwgd2hhdCBoYXBwZW5lZD8hCgogIApXYWl0LCBJIHRoaW5rIHdlIHdlcmUKb24gYXV0b3BpbG90IHRoZSB3aG9sZSB0aW1lLgoKICAKLSBUaGF0IG1heSBoYXZlIGJlZW4gaGVscGluZyBtZS4KLSBBbmQgbm93IHdlJ3JlIG5vdCEKCiAgClNvIGl0IHR1cm5zIG91dCBJIGNhbm5vdCBmbHkgYSBwbGFuZS4KCiAgCkFsbCBvZiB5b3UsIGxldCdzIGdldApiZWhpbmQgdGhpcyBmZWxsb3chIE1vdmUgaXQgb3V0IQoKICAKTW92ZSBvdXQhCgogIApPdXIgb25seSBjaGFuY2UgaXMgaWYgSSBkbyB3aGF0IEknZCBkbywKeW91IGNvcHkgbWUgd2l0aCB0aGUgd2luZ3Mgb2YgdGhlIHBsYW5lIQoKICAKRG9uJ3QgaGF2ZSB0byB5ZWxsLgoKICAKSSdtIG5vdCB5ZWxsaW5nIQpXZSdyZSBpbiBhIGxvdCBvZiB0cm91YmxlLgoKICAKSXQncyB2ZXJ5IGhhcmQgdG8gY29uY2VudHJhdGUKd2l0aCB0aGF0IHBhbmlja3kgdG9uZSBpbiB5b3VyIHZvaWNlIQoKICAKSXQncyBub3QgYSB0b25lLiBJJ20gcGFuaWNraW5nIQoKICAKSSBjYW4ndCBkbyB0aGlzIQoKICAKVmFuZXNzYSwgcHVsbCB5b3Vyc2VsZiB0b2dldGhlci4KWW91IGhhdmUgdG8gc25hcCBvdXQgb2YgaXQhCgogIApZb3Ugc25hcCBvdXQgb2YgaXQuCgogIApZb3Ugc25hcCBvdXQgb2YgaXQuCgogIAotIFlvdSBzbmFwIG91dCBvZiBpdCEKLSBZb3Ugc25hcCBvdXQgb2YgaXQhCgogIAotIFlvdSBzbmFwIG91dCBvZiBpdCEKLSBZb3Ugc25hcCBvdXQgb2YgaXQhCgogIAotIFlvdSBzbmFwIG91dCBvZiBpdCEKLSBZb3Ugc25hcCBvdXQgb2YgaXQhCgogIAotIEhvbGQgaXQhCi0gV2h5PyBPb21lIG9uLCBpdCdzIG15IHR1cm4uCgogIApIb3cgaXMgdGhlIHBsYW5lIGZseWluZz8KCiAgCkkgZG9uJ3Qga25vdy4KCiAgCkhlbGxvPwoKICAKQmVuc29uLCBnb3QgYW55IGZsb3dlcnMKZm9yIGEgaGFwcHkgb2NjYXNpb24gaW4gdGhlcmU/CgogIApUaGUgUG9sbGVuIEpvY2tzIQoKICAKVGhleSBkbyBnZXQgYmVoaW5kIGEgZmVsbG93LgoKICAKLSBCbGFjayBhbmQgeWVsbG93LgotIEhlbGxvLgoKICAKQWxsIHJpZ2h0LCBsZXQncyBkcm9wIHRoaXMgdGluIGNhbgpvbiB0aGUgYmxhY2t0b3AuCgogIApXaGVyZT8gSSBjYW4ndCBzZWUgYW55dGhpbmcuIE9hbiB5b3U/CgogIApObywgbm90aGluZy4gSXQncyBhbGwgY2xvdWR5LgoKICAKT29tZSBvbi4gWW91IGdvdCB0byB0aGluayBiZWUsIEJhcnJ5LgoKICAKLSBUaGlua2luZyBiZWUuCi0gVGhpbmtpbmcgYmVlLgoKICAKVGhpbmtpbmcgYmVlIQpUaGlua2luZyBiZWUhIFRoaW5raW5nIGJlZSEKCiAgCldhaXQgYSBtaW51dGUuCkkgdGhpbmsgSSdtIGZlZWxpbmcgc29tZXRoaW5nLgoKICAKLSBXaGF0PwotIEkgZG9uJ3Qga25vdy4gSXQncyBzdHJvbmcsIHB1bGxpbmcgbWUuCgogIApMaWtlIGEgMjctbWlsbGlvbi15ZWFyLW9sZCBpbnN0aW5jdC4KCiAgCkJyaW5nIHRoZSBub3NlIGRvd24uCgogIApUaGlua2luZyBiZWUhClRoaW5raW5nIGJlZSEgVGhpbmtpbmcgYmVlIQoKICAKLSBXaGF0IGluIHRoZSB3b3JsZCBpcyBvbiB0aGUgdGFybWFjPwotIEdldCBzb21lIGxpZ2h0cyBvbiB0aGF0IQoKICAKVGhpbmtpbmcgYmVlIQpUaGlua2luZyBiZWUhIFRoaW5raW5nIGJlZSEKCiAgCi0gVmFuZXNzYSwgYWltIGZvciB0aGUgZmxvd2VyLgotIE9LLgoKICAKT3V0IHRoZSBlbmdpbmVzLiBXZSdyZSBnb2luZyBpbgpvbiBiZWUgcG93ZXIuIFJlYWR5LCBib3lzPwoKICAKQWZmaXJtYXRpdmUhCgogIApHb29kLiBHb29kLiBFYXN5LCBub3cuIFRoYXQncyBpdC4KCiAgCkxhbmQgb24gdGhhdCBmbG93ZXIhCgogIApSZWFkeT8gRnVsbCByZXZlcnNlIQoKICAKU3BpbiBpdCBhcm91bmQhCgogIAotIE5vdCB0aGF0IGZsb3dlciEgVGhlIG90aGVyIG9uZSEKLSBXaGljaCBvbmU/CgogIAotIFRoYXQgZmxvd2VyLgotIEknbSBhaW1pbmcgYXQgdGhlIGZsb3dlciEKCiAgClRoYXQncyBhIGZhdCBndXkgaW4gYSBmbG93ZXJlZCBzaGlydC4KSSBtZWFuIHRoZSBnaWFudCBwdWxzYXRpbmcgZmxvd2VyCgogIAptYWRlIG9mIG1pbGxpb25zIG9mIGJlZXMhCgogIApQdWxsIGZvcndhcmQuIE5vc2UgZG93bi4gVGFpbCB1cC4KCiAgClJvdGF0ZSBhcm91bmQgaXQuCgogIAotIFRoaXMgaXMgaW5zYW5lLCBCYXJyeSEKLSBUaGlzJ3MgdGhlIG9ubHkgd2F5IEkga25vdyBob3cgdG8gZmx5LgoKICAKQW0gSSBrb28ta29vLWthY2hvbywgb3IgaXMgdGhpcyBwbGFuZQpmbHlpbmcgaW4gYW4gaW5zZWN0LWxpa2UgcGF0dGVybj8KCiAgCkdldCB5b3VyIG5vc2UgaW4gdGhlcmUuIERvbid0IGJlIGFmcmFpZC4KU21lbGwgaXQuIEZ1bGwgcmV2ZXJzZSEKCiAgCkp1c3QgZHJvcCBpdC4gQmUgYSBwYXJ0IG9mIGl0LgoKICAKQWltIGZvciB0aGUgY2VudGVyIQoKICAKTm93IGRyb3AgaXQgaW4hIERyb3AgaXQgaW4sIHdvbWFuIQoKICAKT29tZSBvbiwgYWxyZWFkeS4KCiAgCkJhcnJ5LCB3ZSBkaWQgaXQhCllvdSB0YXVnaHQgbWUgaG93IHRvIGZseSEKCiAgCi0gWWVzLiBObyBoaWdoLWZpdmUhCi0gUmlnaHQuCgogIApCYXJyeSwgaXQgd29ya2VkIQpEaWQgeW91IHNlZSB0aGUgZ2lhbnQgZmxvd2VyPwoKICAKV2hhdCBnaWFudCBmbG93ZXI/IFdoZXJlPyBPZiBjb3Vyc2UKSSBzYXcgdGhlIGZsb3dlciEgVGhhdCB3YXMgZ2VuaXVzIQoKICAKLSBUaGFuayB5b3UuCi0gQnV0IHdlJ3JlIG5vdCBkb25lIHlldC4KCiAgCkxpc3RlbiwgZXZlcnlvbmUhCgogIApUaGlzIHJ1bndheSBpcyBjb3ZlcmVkCndpdGggdGhlIGxhc3QgcG9sbGVuCgogIApmcm9tIHRoZSBsYXN0IGZsb3dlcnMKYXZhaWxhYmxlIGFueXdoZXJlIG9uIEVhcnRoLgoKICAKVGhhdCBtZWFucyB0aGlzIGlzIG91ciBsYXN0IGNoYW5jZS4KCiAgCldlJ3JlIHRoZSBvbmx5IG9uZXMgd2hvIG1ha2UgaG9uZXksCnBvbGxpbmF0ZSBmbG93ZXJzIGFuZCBkcmVzcyBsaWtlIHRoaXMuCgogIApJZiB3ZSdyZSBnb25uYSBzdXJ2aXZlIGFzIGEgc3BlY2llcywKdGhpcyBpcyBvdXIgbW9tZW50ISBXaGF0IGRvIHlvdSBzYXk/CgogIApBcmUgd2UgZ29pbmcgdG8gYmUgYmVlcywgb3JqdXN0Ck11c2V1bSBvZiBOYXR1cmFsIEhpc3Rvcnkga2V5Y2hhaW5zPwoKICAKV2UncmUgYmVlcyEKCiAgCktleWNoYWluIQoKICAKVGhlbiBmb2xsb3cgbWUhIEV4Y2VwdCBLZXljaGFpbi4KCiAgCkhvbGQgb24sIEJhcnJ5LiBIZXJlLgoKICAKWW91J3ZlIGVhcm5lZCB0aGlzLgoKICAKWWVhaCEKCiAgCkknbSBhIFBvbGxlbiBKb2NrISBBbmQgaXQncyBhIHBlcmZlY3QKZml0LiBBbGwgSSBnb3R0YSBkbyBhcmUgdGhlIHNsZWV2ZXMuCgogIApPaCwgeWVhaC4KCiAgClRoYXQncyBvdXIgQmFycnkuCgogIApNb20hIFRoZSBiZWVzIGFyZSBiYWNrIQoKICAKSWYgYW55Ym9keSBuZWVkcwp0byBtYWtlIGEgY2FsbCwgbm93J3MgdGhlIHRpbWUuCgogIApJIGdvdCBhIGZlZWxpbmcgd2UnbGwgYmUKd29ya2luZyBsYXRlIHRvbmlnaHQhCgogIApIZXJlJ3MgeW91ciBjaGFuZ2UuIEhhdmUgYSBncmVhdAphZnRlcm5vb24hIE9hbiBJIGhlbHAgd2hvJ3MgbmV4dD8KCiAgCldvdWxkIHlvdSBsaWtlIHNvbWUgaG9uZXkgd2l0aCB0aGF0PwpJdCBpcyBiZWUtYXBwcm92ZWQuIERvbid0IGZvcmdldCB0aGVzZS4KCiAgCk1pbGssIGNyZWFtLCBjaGVlc2UsIGl0J3MgYWxsIG1lLgpBbmQgSSBkb24ndCBzZWUgYSBuaWNrZWwhCgogIApTb21ldGltZXMgSSBqdXN0IGZlZWwKbGlrZSBhIHBpZWNlIG9mIG1lYXQhCgogIApJIGhhZCBubyBpZGVhLgoKICAKQmFycnksIEknbSBzb3JyeS4KSGF2ZSB5b3UgZ290IGEgbW9tZW50PwoKICAKV291bGQgeW91IGV4Y3VzZSBtZT8KTXkgbW9zcXVpdG8gYXNzb2NpYXRlIHdpbGwgaGVscCB5b3UuCgogIApTb3JyeSBJJ20gbGF0ZS4KCiAgCkhlJ3MgYSBsYXd5ZXIgdG9vPwoKICAKSSB3YXMgYWxyZWFkeSBhIGJsb29kLXN1Y2tpbmcgcGFyYXNpdGUuCkFsbCBJIG5lZWRlZCB3YXMgYSBicmllZmNhc2UuCgogIApIYXZlIGEgZ3JlYXQgYWZ0ZXJub29uIQoKICAKQmFycnksIEkganVzdCBnb3QgdGhpcyBodWdlIHR1bGlwIG9yZGVyLAphbmQgSSBjYW4ndCBnZXQgdGhlbSBhbnl3aGVyZS4KCiAgCk5vIHByb2JsZW0sIFZhbm5pZS4KSnVzdCBsZWF2ZSBpdCB0byBtZS4KCiAgCllvdSdyZSBhIGxpZmVzYXZlciwgQmFycnkuCk9hbiBJIGhlbHAgd2hvJ3MgbmV4dD8KCiAgCkFsbCByaWdodCwgc2NyYW1ibGUsIGpvY2tzIQpJdCdzIHRpbWUgdG8gZmx5LgoKICAKVGhhbmsgeW91LCBCYXJyeSEKCiAgClRoYXQgYmVlIGlzIGxpdmluZyBteSBsaWZlIQoKICAKTGV0IGl0IGdvLCBLZW5ueS4KCiAgCi0gV2hlbiB3aWxsIHRoaXMgbmlnaHRtYXJlIGVuZD8hCi0gTGV0IGl0IGFsbCBnby4KCiAgCi0gQmVhdXRpZnVsIGRheSB0byBmbHkuCi0gU3VyZSBpcy4KCiAgCkJldHdlZW4geW91IGFuZCBtZSwKSSB3YXMgZHlpbmcgdG8gZ2V0IG91dCBvZiB0aGF0IG9mZmljZS4KCiAgCllvdSBoYXZlIGdvdAp0byBzdGFydCB0aGlua2luZyBiZWUsIG15IGZyaWVuZC4KCiAgCi0gVGhpbmtpbmcgYmVlIQotIE1lPwoKICAKSG9sZCBpdC4gTGV0J3MganVzdCBzdG9wCmZvciBhIHNlY29uZC4gSG9sZCBpdC4KCiAgCkknbSBzb3JyeS4gSSdtIHNvcnJ5LCBldmVyeW9uZS4KT2FuIHdlIHN0b3AgaGVyZT8KCiAgCkknbSBub3QgbWFraW5nIGEgbWFqb3IgbGlmZSBkZWNpc2lvbgpkdXJpbmcgYSBwcm9kdWN0aW9uIG51bWJlciEKCiAgCkFsbCByaWdodC4gVGFrZSB0ZW4sIGV2ZXJ5Ym9keS4KV3JhcCBpdCB1cCwgZ3V5cy4KCiAgCkkgaGFkIHZpcnR1YWxseSBubyByZWhlYXJzYWwgZm9yIHRoYXQuCg==
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top