Final Call for Papers: ICFP 2017
Lindsey Kuper <[email protected]> Wed, 15 Feb 2017 20:43:34 -0800
| Newsgroups | gmane.comp.lang.lambda-prolog |
|---|---|
| Message-ID | <[email protected]> |
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQ0ZQIDIwMTcKICAgIFRoZSAyMm5k IEFDTSBTSUdQTEFOIEludGVybmF0aW9uYWwgQ29uZmVyZW5jZSBvbiBGdW5jdGlvbmFsIFByb2dy YW1taW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3hmb3JkLCBVbml0ZWQgS2luZ2Rv bQogICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vaWNmcDE3LnNpZ3BsYW4ub3JnLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbmFsIENhbGwgZm9yIFBhcGVycwogCiMjIyBJ bXBvcnRhbnQgZGF0ZXMKClN1Ym1pc3Npb25zIGR1ZTogICAgTW9uZGF5LCBGZWJydWFyeSAyNywg QW55d2hlcmUgb24gRWFydGgKICAgICAgICAgICAgICAgICAgICBodHRwczovL2ljZnAxNy5ob3Rj cnAuY29tCkF1dGhvciByZXNwb25zZTogICAgTW9uZGF5LCBBcHJpbCAxNywgMjAxNywgMTU6MDAg KFVUQykgLQogICAgICAgICAgICAgICAgICAgIFRodXJzZGF5LCBBcHJpbCAyMCwgMjAxNywgMTU6 MDAgKFVUQykKTm90aWZpY2F0aW9uOiAgICAgICBNb25kYXksIDEgTWF5LCAyMDE3CkZpbmFsIGNv cHkgZHVlOiAgICAgTW9uZGF5LCA1IEp1bmUgMjAxNwpFYXJseSByZWdpc3RyYXRpb246IFRCQQpD b25mZXJlbmNlOiAgICAgICAgIE1vbmRheSwgNCBTZXB0ZW1iZXIgLQogICAgICAgICAgICAgICAg ICAgIFdlZG5lc2RheSwgNiBTZXB0ZW1iZXIsIDIwMTcKCiMjIyBOZXcgdGhpcyB5ZWFyCgpUaG9z ZSBmYW1pbGlhciB3aXRoIHByZXZpb3VzIElDRlAgY29uZmVyZW5jZXMgc2hvdWxkIGJlIGF3YXJl IG9mIHR3bwpzaWduaWZpY2FudCBjaGFuZ2VzIHRoYXQgYXJlIGJlaW5nIGludHJvZHVjZWQgaW4g MjAxNzoKCjEuIFBhcGVycyBzZWxlY3RlZCBmb3IgSUNGUCAyMDE3IHdpbGwgYmUgcHVibGlzaGVk IGFzIHRoZSBJQ0ZQIDIwMTcKaXNzdWUgb2YgYSBuZXcgam91cm5hbCwgUHJvY2VlZGluZ3Mgb2Yg dGhlIEFDTSBvbiBQcm9ncmFtbWluZyBMYW5ndWFnZXMKKFBBQ01QTCksIHdoaWNoIHJlcGxhY2Vz IHRoZSBwcmV2aW91cyBJQ0ZQIGNvbmZlcmVuY2UgcHJvY2VlZGluZ3MuIFRoZQptb3ZlIHRvIFBB Q01QTCB3aWxsIGhhdmUgdHdvIG5vdGljZWFibGUgaW1wYWN0cyBvbiBhdXRob3JzOgoKICAgICog QSBuZXcsIHR3by1waGFzZSBzZWxlY3Rpb24gYW5kIHJldmlld2luZyBwcm9jZXNzIHRoYXQgY29u Zm9ybXMgdG8KICAgICAgQUNN4oCZcyBqb3VybmFsIHJldmlld2luZyBndWlkZWxpbmVzLgoKICAg ICogQSBuZXcsIHNpbmdsZS1jb2x1bW4gZm9ybWF0IGZvciBzdWJtaXNzaW9ucy4KCjIuIEF1dGhv cnMgb2YgcGFwZXJzIHRoYXQgYXJlIGNvbmRpdGlvbmFsbHkgYWNjZXB0ZWQgaW4gdGhlIGZpcnN0 IHBoYXNlCm9mIHRoZSByZXZpZXdpbmcgcHJvY2VzcyB3aWxsIGhhdmUgdGhlIG9wdGlvbiB0byBz dWJtaXQgbWF0ZXJpYWxzIGZvcgpBcnRpZmFjdCBFdmFsdWF0aW9uLgoKRnVydGhlciBkZXRhaWxz IG9uIGVhY2ggb2YgdGhlc2UgY2hhbmdlcyBhcmUgaW5jbHVkZWQgaW4gdGhlIGZvbGxvd2luZwp0 ZXh0LgoKIyMjIFNjb3BlCgpJQ0ZQIDIwMTcgc2Vla3Mgb3JpZ2luYWwgcGFwZXJzIG9uIHRoZSBh cnQgYW5kIHNjaWVuY2Ugb2YgZnVuY3Rpb25hbApwcm9ncmFtbWluZy4gU3VibWlzc2lvbnMgYXJl IGludml0ZWQgb24gYWxsIHRvcGljcyBmcm9tIHByaW5jaXBsZXMgdG8KcHJhY3RpY2UsIGZyb20g Zm91bmRhdGlvbnMgdG8gZmVhdHVyZXMsIGFuZCBmcm9tIGFic3RyYWN0aW9uIHRvCmFwcGxpY2F0 aW9uLiBUaGUgc2NvcGUgaW5jbHVkZXMgYWxsIGxhbmd1YWdlcyB0aGF0IGVuY291cmFnZSBmdW5j dGlvbmFsCnByb2dyYW1taW5nLCBpbmNsdWRpbmcgYm90aCBwdXJlbHkgYXBwbGljYXRpdmUgYW5k IGltcGVyYXRpdmUgbGFuZ3VhZ2VzLAphcyB3ZWxsIGFzIGxhbmd1YWdlcyB3aXRoIG9iamVjdHMs IGNvbmN1cnJlbmN5LCBvciBwYXJhbGxlbGlzbS4gVG9waWNzCm9mIGludGVyZXN0IGluY2x1ZGUg KGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8pOgoKICAqICpMYW5ndWFnZSBEZXNpZ24qOiBjb25jdXJy ZW5jeSwgcGFyYWxsZWxpc20sIGFuZCBkaXN0cmlidXRpb247CiAgICBtb2R1bGVzOyBjb21wb25l bnRzIGFuZCBjb21wb3NpdGlvbjsgbWV0YXByb2dyYW1taW5nOyB0eXBlIHN5c3RlbXM7CiAgICBp bnRlcm9wZXJhYmlsaXR5OyBkb21haW4tc3BlY2lmaWMgbGFuZ3VhZ2VzOyBhbmQgcmVsYXRpb25z IHRvCiAgICBpbXBlcmF0aXZlLCBvYmplY3Qtb3JpZW50ZWQsIG9yIGxvZ2ljIHByb2dyYW1taW5n LgoKICAqICpJbXBsZW1lbnRhdGlvbio6IGFic3RyYWN0IG1hY2hpbmVzOyB2aXJ0dWFsIG1hY2hp bmVzOwogICAgaW50ZXJwcmV0YXRpb247IGNvbXBpbGF0aW9uOyBjb21waWxlLXRpbWUgYW5kIHJ1 bi10aW1lIG9wdGltaXphdGlvbjsKICAgIGdhcmJhZ2UgY29sbGVjdGlvbiBhbmQgbWVtb3J5IG1h bmFnZW1lbnQ7IG11bHRpLXRocmVhZGluZzsKICAgIGV4cGxvaXRpbmcgcGFyYWxsZWwgaGFyZHdh cmU7IGludGVyZmFjZXMgdG8gZm9yZWlnbiBmdW5jdGlvbnMsCiAgICBzZXJ2aWNlcywgY29tcG9u ZW50cywgb3IgbG93LWxldmVsIG1hY2hpbmUgcmVzb3VyY2VzLgoKICAqICpTb2Z0d2FyZS1EZXZl bG9wbWVudCBUZWNobmlxdWVzKjogYWxnb3JpdGhtcyBhbmQgZGF0YSBzdHJ1Y3R1cmVzOwogICAg ZGVzaWduIHBhdHRlcm5zOyBzcGVjaWZpY2F0aW9uOyB2ZXJpZmljYXRpb247IHZhbGlkYXRpb247 IHByb29mCiAgICBhc3Npc3RhbnRzOyBkZWJ1Z2dpbmc7IHRlc3Rpbmc7IHRyYWNpbmc7IHByb2Zp bGluZy4KCiAgKiAqRm91bmRhdGlvbnMqOiBmb3JtYWwgc2VtYW50aWNzOyBsYW1iZGEgY2FsY3Vs dXM7IHJld3JpdGluZzsgdHlwZQogICAgdGhlb3J5OyBtb25hZHM7IGNvbnRpbnVhdGlvbnM7IGNv bnRyb2w7IHN0YXRlOyBlZmZlY3RzOyBwcm9ncmFtCiAgICB2ZXJpZmljYXRpb247IGRlcGVuZGVu dCB0eXBlcy4KCiAgKiAqQW5hbHlzaXMgYW5kIFRyYW5zZm9ybWF0aW9uKjogY29udHJvbC1mbG93 OyBkYXRhLWZsb3c7IGFic3RyYWN0CiAgICBpbnRlcnByZXRhdGlvbjsgcGFydGlhbCBldmFsdWF0 aW9uOyBwcm9ncmFtIGNhbGN1bGF0aW9uLgoKICAqICpBcHBsaWNhdGlvbnMqOiBzeW1ib2xpYyBj b21wdXRpbmc7IGZvcm1hbC1tZXRob2RzIHRvb2xzOyBhcnRpZmljaWFsCiAgICBpbnRlbGxpZ2Vu Y2U7IHN5c3RlbXMgcHJvZ3JhbW1pbmc7IGRpc3RyaWJ1dGVkLXN5c3RlbXMgYW5kIHdlYgogICAg cHJvZ3JhbW1pbmc7IGhhcmR3YXJlIGRlc2lnbjsgZGF0YWJhc2VzOyBYTUwgcHJvY2Vzc2luZzsg c2NpZW50aWZpYwogICAgYW5kIG51bWVyaWNhbCBjb21wdXRpbmc7IGdyYXBoaWNhbCB1c2VyIGlu dGVyZmFjZXM7IG11bHRpbWVkaWEgYW5kCiAgICAzRCBncmFwaGljcyBwcm9ncmFtbWluZzsgc2Ny aXB0aW5nOyBzeXN0ZW0gYWRtaW5pc3RyYXRpb247IHNlY3VyaXR5LgoKICAqICpFZHVjYXRpb24q OiB0ZWFjaGluZyBpbnRyb2R1Y3RvcnkgcHJvZ3JhbW1pbmc7IHBhcmFsbGVsCiAgICBwcm9ncmFt bWluZzsgbWF0aGVtYXRpY2FsIHByb29mOyBhbGdlYnJhLgoKU3VibWlzc2lvbnMgd2lsbCBiZSBl dmFsdWF0ZWQgYWNjb3JkaW5nIHRvIHRoZWlyIHJlbGV2YW5jZSwgY29ycmVjdG5lc3MsCnNpZ25p ZmljYW5jZSwgb3JpZ2luYWxpdHksIGFuZCBjbGFyaXR5LiBFYWNoIHN1Ym1pc3Npb24gc2hvdWxk IGV4cGxhaW4KaXRzIGNvbnRyaWJ1dGlvbnMgaW4gYm90aCBnZW5lcmFsIGFuZCB0ZWNobmljYWwg dGVybXMsIGNsZWFybHkKaWRlbnRpZnlpbmcgd2hhdCBoYXMgYmVlbiBhY2NvbXBsaXNoZWQsIGV4 cGxhaW5pbmcgd2h5IGl0IGlzCnNpZ25pZmljYW50LCBhbmQgY29tcGFyaW5nIGl0IHdpdGggcHJl dmlvdXMgd29yay4gVGhlIHRlY2huaWNhbCBjb250ZW50CnNob3VsZCBiZSBhY2Nlc3NpYmxlIHRv IGEgYnJvYWQgYXVkaWVuY2UuCgpJQ0ZQIDIwMTcgYWxzbyB3ZWxjb21lcyBzdWJtaXNzaW9ucyBp biB0d28gc2VwYXJhdGUgY2F0ZWdvcmllcyAtLS0KRnVuY3Rpb25hbCBQZWFybHMgYW5kIEV4cGVy aWVuY2UgUmVwb3J0cyAtLS0gdGhhdCBtdXN0IGJlIG1hcmtlZCBhcwpzdWNoIGF0IHRoZSB0aW1l IG9mIHN1Ym1pc3Npb24gYW5kIHRoYXQgbmVlZCBub3QgcmVwb3J0IG9yaWdpbmFsCnJlc2VhcmNo IHJlc3VsdHMuICBEZXRhaWxlZCBndWlkZWxpbmVzIG9uIGJvdGggY2F0ZWdvcmllcyBhcmUgZ2l2 ZW4gYXQKdGhlIGVuZCBvZiB0aGlzIGNhbGwuCgpQbGVhc2UgY29udGFjdCB0aGUgcHJvZ3JhbSBj aGFpciBpZiB5b3UgaGF2ZSBxdWVzdGlvbnMgb3IgYXJlIGNvbmNlcm5lZAphYm91dCB0aGUgYXBw cm9wcmlhdGVuZXNzIG9mIGEgdG9waWMuCgojIyMgUHJlcGFyYXRpb24gb2Ygc3VibWlzc2lvbnMK CklDRlAgMjAxNyB3aWxsIGVtcGxveSBhIGxpZ2h0d2VpZ2h0IGRvdWJsZS1ibGluZCByZXZpZXdp bmcgcHJvY2VzcywgYXMKZGVzY3JpYmVkIGJlbG93LgoKKipEZWFkbGluZSoqOiBUaGUgZGVhZGxp bmUgZm9yIHN1Ym1pc3Npb25zIGlzIE1vbmRheSwgRmVicnVhcnkgMjcsIDIwMTcsCkFueXdoZXJl IG9uIEVhcnRoICg8aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQW55d2hlcmVfb25fRWFy dGg+KS4KVGhpcyBkZWFkbGluZSB3aWxsIGJlIHN0cmljdGx5IGVuZm9yY2VkLgoKKipGb3JtYXR0 aW5nKio6IChOT1RFOiBORVcgRk9STUFUIFJFUVVJUkVNRU5UUyBGT1IgSUNGUCAyMDE3KQpTdWJt aXNzaW9ucyBtdXN0IGJlIGluIFBERiBmb3JtYXQsIHByaW50YWJsZSBpbiBibGFjayBhbmQgd2hp dGUgb24gVVMKTGV0dGVyIHNpemVkIHBhcGVyLCBhbmQgaW50ZXJwcmV0YWJsZSBieSBjb21tb24g UERGIHRvb2xzLiBBbGwKc3VibWlzc2lvbnMgbXVzdCBhZGhlcmUgdG8gdGhlICJBQ00gTGFyZ2Ui IHRlbXBsYXRlIHRoYXQgaXMgYXZhaWxhYmxlCihpbiBib3RoIExhVGVYIGFuZCBXb3JkIGZvcm1h dHMpIGZyb20KPGh0dHA6Ly93d3cuYWNtLm9yZy9wdWJsaWNhdGlvbnMvcHJvY2VlZGluZ3MtdGVt cGxhdGU+LgoKRm9yIGF1dGhvcnMgdXNpbmcgTGFUZVgsIGEgbGlnaHRlci13ZWlnaHQgcGFja2Fn ZSwgaW5jbHVkaW5nIG9ubHkgdGhlCmVzc2VudGlhbCBmaWxlcywgaXMgYXZhaWxhYmxlIGZyb20K PGh0dHA6Ly9zaWdwbGFuLm9yZy9SZXNvdXJjZXMvQXV0aG9yLyNhY21hcnQtZm9ybWF0PjsgdGhl IGFwcHJvcHJpYXRlCnRlbXBsYXRlIGZvciBJQ0ZQIDIwMTcgYXV0aG9ycyBpcyBpbiB0aGUgZmls ZQpgYWNtYXJ0LXBhY21wbC10ZW1wbGF0ZS50ZXhgLiAgQXMgZG9jdW1lbnRlZCBpbiB0aGUgdGVt cGxhdGUsCnN1Ym1pc3Npb25zIHNob3VsZCBiZSBwcmVwYXJlZCB1c2luZyB0aGUgYGFjbWxhcmdl YCBhbmQgYGFub255bW91c2AKb3B0aW9ucy4gIFRoZSB1c2Ugb2YgdGhlIGByZXZpZXdgIG9wdGlv biBpcyBhbHNvIHN0cm9uZ2x5IGVuY291cmFnZWQgYnV0Cm5vdCByZXF1aXJlZC4gIChUaGUgYHJl dmlld2Agb3B0aW9uIHdpbGwgYWRkIGxpbmUgbnVtYmVycywgd2hpY2ggd2lsbAptYWtlIGl0IGVh c2llciBmb3IgcmV2aWV3ZXJzIHRvIHJlZmVyZW5jZSBzcGVjaWZpYyBwYXJ0cyBvZiB5b3VyIHBh cGVyCmluIHRoZWlyIGNvbW1lbnRzLCBidXQgc2hvdWxkIGhhdmUgYWJzb2x1dGVseSBubyBvdGhl ciBlZmZlY3Qgb24gdGhlCnR5cGVzZXR0aW5nLikgRGV0YWlscyBvZiBhdmFpbGFibGUgdGVjaG5p Y2FsIHN1cHBvcnQgZm9yIExhVGVYLXNwZWNpZmljCnF1ZXN0aW9ucyBpcyBhdmFpbGFibGUgYXQK PGh0dHA6Ly93d3cuYWNtLm9yZy9wdWJsaWNhdGlvbnMvcHJvY2VlZGluZ3MtdGVtcGxhdGUjaC10 ZWNobmljYWwtc3VwcG9ydD4uCgpUaGVyZSBpcyBhIGxpbWl0IG9mIDI0IHBhZ2VzIGZvciBhIGZ1 bGwgcGFwZXIgb3IgMTIgcGFnZXMgZm9yIGFuCkV4cGVyaWVuY2UgUmVwb3J0OyBpbiBlaXRoZXIg Y2FzZSwgdGhlIGJpYmxpb2dyYXBoeSB3aWxsIG5vdCBiZSBjb3VudGVkCmFnYWluc3QgdGhlc2Ug bGltaXRzLiBUaGVzZSBwYWdlIGxpbWl0cyBoYXZlIGJlZW4gY2hvc2VuIHRvIGFsbG93CmVzc2Vu dGlhbGx5IHRoZSBzYW1lIGFtb3VudCBvZiBjb250ZW50IHdpdGggdGhlIG5ldyBzaW5nbGUtY29s dW1uIGZvcm1hdAphcyB3YXMgcG9zc2libGUgd2l0aCB0aGUgdHdvLWNvbHVtbiBmb3JtYXQgdXNl ZCBpbiBwYXN0IElDRlAKY29uZmVyZW5jZXMuIFN1Ym1pc3Npb25zIHRoYXQgZXhjZWVkIHRoZSBw YWdlIGxpbWl0cyBvciwgZm9yIG90aGVyCnJlYXNvbnMsIGRvIG5vdCBtZWV0IHRoZSByZXF1aXJl bWVudHMgZm9yIGZvcm1hdHRpbmcsIHdpbGwgYmUgc3VtbWFyaWx5CnJlamVjdGVkLgoKKipDaXRh dGlvbnMqKjogQXMgcGFydCBvZiBQQUNNUEwsIElDRlAgMjAxNyBwYXBlcnMgYXJlIGV4cGVjdGVk IHRvIHVzZQphdXRob3IteWVhciBjaXRhdGlvbnMgZm9yIHJlZmVyZW5jZXMgdG8gb3RoZXIgd29y ay4gQXV0aG9yLXllYXIKY2l0YXRpb25zIG1heSBiZSB1c2VkIGFzIGVpdGhlciBhIG5vdW4gcGhy YXNlLCBzdWNoIGFzICJUaGUgbGFtYmRhCmNhbGN1bHVzIHdhcyBvcmlnaW5hbGx5IGNvbmNlaXZl ZCBieSBDaHVyY2ggKDE5MzIpIiwgb3IgYSBwYXJlbnRoZXRpYwpwaHJhc2UsIHN1Y2ggYXMgIlRo ZSBsYW1iZGEgY2FsY3VsdXMgKENodXJjaCAxOTMyKSB3YXMgaW50ZW5kZWQgYXMgYQpmb3VuZGF0 aW9uIGZvciBtYXRoZW1hdGljcyIuIEEgdXNlZnVsIHRlc3QgZm9yIGNvcnJlY3QgdXNhZ2UgaXQg dG8gbWFrZQpzdXJlIHRoYXQgdGhlIHRleHQgc3RpbGwgcmVhZHMgY29ycmVjdGx5IHdoZW4gdGhl IHBhcmVudGhlc2l6ZWQgcG9ydGlvbnMKb2YgYW55IHJlZmVyZW5jZXMgYXJlIG9taXR0ZWQuIFRh a2UgY2FyZSB3aXRoIHByZXBvc2l0aW9uczsgaW4gdGhlIGZpcnN0CmV4YW1wbGUgYWJvdmUsICJi eSIgaXMgbW9yZSBhcHByb3ByaWF0ZSB0aGFuICJpbiIgYmVjYXVzZSBpdCBhbGxvd3MgdGhlCnRl eHQgdG8gYmUgcmVhZCBjb3JyZWN0bHkgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGF1dGhvci4gU29t ZXRpbWVzLApyZWFkYWJpbGl0eSBtYXkgYmUgaW1wcm92ZWQgYnkgcHV0dGluZyBwYXJlbnRoZXRp YyBjaXRhdGlvbnMgYXQgdGhlIGVuZApvZiBhIGNsYXVzZSBvciBhIHNlbnRlbmNlLCBzdWNoIGFz ICJBIGZvdW5kYXRpb24gZm9yIG1hdGhlbWF0aWNzIHdhcwpwcm92aWRlZCBieSB0aGUgbGFtYmRh IGNhbGN1bHVzIChDaHVyY2ggMTkzMikiLiBJbiBMYVRlWCwgdXNlCmBcY2l0ZXR7Q2h1cmNoLTE5 MzJ9YCBmb3IgY2l0YXRpb25zIGFzIGEgbm91biBwaHJhc2UsICJDaHVyY2ggKDE5MzIpIiwKYW5k IGBcY2l0ZXB7Q2h1cmNoLTE5MzJ9YCBmb3IgY2l0YXRpb25zIGFzIGEgcGFyZW50aGV0aWMgcGhy YXNlLAoiKENodXJjaCAxOTMyKSI7IGZvciBkZXRhaWxzLCBzZWUgU2VjdGlvbnMgMi4zLS0yLjUg b2YgdGhlIG5hdGJpYgpkb2N1bWVudGF0aW9uICg8aHR0cDovL2N0YW4ub3JnL3BrZy9uYXRiaWI+ KS4KCioqU3VibWlzc2lvbioqOiBTdWJtaXNzaW9ucyB3aWxsIGJlIGFjY2VwdGVkIGF0CjxodHRw czovL2ljZnAxNy5ob3RjcnAuY29tLz4uCgpJbXByb3ZlZCB2ZXJzaW9ucyBvZiBhIHBhcGVyIG1h eSBiZSBzdWJtaXR0ZWQgYXQgYW55IHBvaW50IGJlZm9yZSB0aGUKc3VibWlzc2lvbiBkZWFkbGlu ZSB1c2luZyB0aGUgc2FtZSB3ZWIgaW50ZXJmYWNlLgoKKipBdXRob3IgUmVzcG9uc2UgUGVyaW9k Kio6IEF1dGhvcnMgd2lsbCBoYXZlIGEgNzItaG91ciBwZXJpb2QsIHN0YXJ0aW5nCmF0IDE1OjAw IFVUQyBvbiBNb25kYXksIEFwcmlsIDE3LCAyMDE3LCB0byByZWFkIHJldmlld3MgYW5kIHJlc3Bv bmQgdG8KdGhlbS4KCioqU3VwcGxlbWVudGFyeSBNYXRlcmlhbHMqKjogQXV0aG9ycyBoYXZlIHRo ZSBvcHRpb24gdG8gYXR0YWNoCnN1cHBsZW1lbnRhcnkgbWF0ZXJpYWwgdG8gYSBzdWJtaXNzaW9u LCBvbiB0aGUgdW5kZXJzdGFuZGluZyB0aGF0CnJldmlld2VycyBtYXkgY2hvb3NlIG5vdCB0byBs b29rIGF0IGl0LiBUaGUgbWF0ZXJpYWwgc2hvdWxkIGJlIHVwbG9hZGVkCmF0IHN1Ym1pc3Npb24g dGltZSwgYXMgYSBzaW5nbGUgcGRmIG9yIGEgdGFyYmFsbCwgbm90IHZpYSBhIFVSTC4gVGhpcwpz dXBwbGVtZW50YXJ5IG1hdGVyaWFsIG1heSBvciBtYXkgbm90IGJlIGFub255bWl6ZWQ7IGlmIG5v dCBhbm9ueW1pemVkLAppdCB3aWxsIG9ubHkgYmUgcmV2ZWFsZWQgdG8gcmV2aWV3ZXJzIGFmdGVy IHRoZXkgaGF2ZSBzdWJtaXR0ZWQgdGhlaXIKcmV2aWV3IG9mIHRoZSBwYXBlciBhbmQgbGVhcm5l ZCB0aGUgaWRlbnRpdHkgb2YgdGhlIGF1dGhvcihzKS4KCioqQXV0aG9yc2hpcCBQb2xpY2llcyoq OiBBbGwgc3VibWlzc2lvbnMgYXJlIGV4cGVjdGVkIHRvIGNvbXBseSB3aXRoIHRoZQpBQ00gUG9s aWNpZXMgZm9yIEF1dGhvcnNoaXAgdGhhdCBhcmUgZGV0YWlsZWQgYXQKPGh0dHBzOi8vd3d3LmFj bS5vcmcvcHVibGljYXRpb25zL2F1dGhvcnMvaW5mb3JtYXRpb24tZm9yLWF1dGhvcnM+LgoKKipS ZXB1YmxpY2F0aW9uIFBvbGljaWVzKio6IEVhY2ggc3VibWlzc2lvbiBtdXN0IGFkaGVyZSB0byBT SUdQTEFOJ3MKcmVwdWJsaWNhdGlvbiBwb2xpY3ksIGFzIGV4cGxhaW5lZCBvbiB0aGUgd2ViIGF0 CjxodHRwOi8vd3d3LnNpZ3BsYW4ub3JnL1Jlc291cmNlcy9Qb2xpY2llcy9SZXB1YmxpY2F0aW9u Pi4KCioqUmVzdWJtaXR0ZWQgUGFwZXJzKio6IEF1dGhvcnMgd2hvIHN1Ym1pdCBhIHJldmlzZWQg dmVyc2lvbiBvZiBhIHBhcGVyCnRoYXQgaGFzIHByZXZpb3VzbHkgYmVlbiByZWplY3RlZCBieSBh bm90aGVyIGNvbmZlcmVuY2UgaGF2ZSB0aGUgb3B0aW9uCnRvIGF0dGFjaCBhbiBhbm5vdGF0ZWQg Y29weSBvZiB0aGUgcmV2aWV3cyBvZiB0aGVpciBwcmV2aW91cwpzdWJtaXNzaW9uKHMpLCBleHBs YWluaW5nIGhvdyB0aGV5IGhhdmUgYWRkcmVzc2VkIHRoZXNlIHByZXZpb3VzIHJldmlld3MKaW4g dGhlIHByZXNlbnQgc3VibWlzc2lvbi4gSWYgYSByZXZpZXdlciBpZGVudGlmaWVzIGhpbS9oZXJz ZWxmIGFzIGEKcmV2aWV3ZXIgb2YgdGhpcyBwcmV2aW91cyBzdWJtaXNzaW9uIGFuZCB3aXNoZXMg dG8gc2VlIGhvdyBoaXMvaGVyCmNvbW1lbnRzIGhhdmUgYmVlbiBhZGRyZXNzZWQsIHRoZSBwcm9n cmFtIGNoYWlyIHdpbGwgY29tbXVuaWNhdGUgdG8gdGhpcwpyZXZpZXdlciB0aGUgYW5ub3RhdGVk IGNvcHkgb2YgaGlzL2hlciBwcmV2aW91cyByZXZpZXcuIE90aGVyd2lzZSwgbm8KcmV2aWV3ZXIg d2lsbCByZWFkIHRoZSBhbm5vdGF0ZWQgY29waWVzIG9mIHRoZSBwcmV2aW91cyByZXZpZXdzLgoK IyMjIFJldmlldyBQcm9jZXNzCgpUaGlzIHNlY3Rpb24gb3V0bGluZXMgdGhlIHR3by1zdGFnZSBw cm9jZXNzIHdpdGggbGlnaHR3ZWlnaHQKZG91YmxlLWJsaW5kIHJldmlld2luZyB0aGF0IHdpbGwg YmUgdXNlZCB0byBzZWxlY3QgcGFwZXJzIGZvcgpwcmVzZW50YXRpb24gYXQgSUNGUCAyMDE3LiBB IFtsaXN0IG9mIGZyZXF1ZW50bHkgYXNrZWQgcXVlc3Rpb25zIGFuZAphbnN3ZXJzXShodHRwOi8v aWNmcDE3LnNpZ3BsYW4ub3JnL3RyYWNrL2ljZnAtMjAxNy1wYXBlcnMjU3VibWlzc2lvbi1hbmQt UmV2aWV3aW5nLUZBUSkKdGhhdCBhZGRyZXNzIGNvbW1vbiBjb25jZXJucyBpcyBhdmFpbGFibGUg b24gdGhlIGNvbmZlcmVuY2Ugd2Vic2l0ZSBhbmQKd2lsbCBiZSB1cGRhdGVkIGFzIG5lY2Vzc2Fy eSB0byBjbGFyaWZ5IGFuZCBleHBhbmQgb24gdGhpcyBwcm9jZXNzLgoKKipJQ0ZQIDIwMTcgd2ls bCBlbXBsb3kgYSB0d28tc3RhZ2UgcmV2aWV3IHByb2Nlc3MuKiogIFRoZSBmaXJzdCBzdGFnZQpp biB0aGUgcmV2aWV3IHByb2Nlc3Mgd2lsbCBhc3Nlc3Mgc3VibWl0dGVkIHBhcGVycyB1c2luZyB0 aGUgY3JpdGVyaWEKc3RhdGVkIGFib3ZlIGFuZCB3aWxsIGFsbG93IGZvciBmZWVkYmFjayBhbmQg aW5wdXQgb24gaW5pdGlhbCByZXZpZXdzCnRocm91Z2ggdGhlIGF1dGhvciByZXNwb25zZSBwZXJp b2QgbWVudGlvbmVkIHByZXZpb3VzbHkuIEF0IHRoZSBQQwptZWV0aW5nLCBhIHNldCBvZiBwYXBl cnMgd2lsbCBiZSBjb25kaXRpb25hbGx5IGFjY2VwdGVkIGFuZCBhbGwgb3RoZXIKcGFwZXJzIHdp bGwgYmUgcmVqZWN0ZWQuICBBdXRob3JzIHdpbGwgYmUgbm90aWZpZWQgb2YgdGhlc2UgZGVjaXNp b25zIG9uCk1heSAxLCAyMDE3LgoKQXV0aG9ycyBvZiBjb25kaXRpb25hbGx5IGFjY2VwdGVkIHBh cGVycyB3aWxsIGJlIHByb3ZpZGVkIHdpdGggY29tbWl0dGVlCnJldmlld3MgKGp1c3QgYXMgaW4g cHJldmlvdXMgY29uZmVyZW5jZXMpIGFsb25nIHdpdGggYSBzZXQgb2YgbWFuZGF0b3J5CnJldmlz aW9ucy4gQWZ0ZXIgZml2ZSB3ZWVrcyAoSnVuZSA1LCAyMDE3KSwgdGhlIGF1dGhvcnMgd2lsbCBw cm92aWRlIGEKc2Vjb25kIHN1Ym1pc3Npb24uIFRoZSBzZWNvbmQgYW5kIGZpbmFsIHJldmlld2lu ZyBwaGFzZSBhc3Nlc3NlcyB3aGV0aGVyCnRoZSBtYW5kYXRvcnkgcmV2aXNpb25zIGhhdmUgYmVl biBhZGVxdWF0ZWx5IGFkZHJlc3NlZCBieSB0aGUgYXV0aG9ycwphbmQgdGhlcmVieSBkZXRlcm1p bmVzIHRoZSBmaW5hbCBhY2NlcHQvcmVqZWN0IHN0YXR1cyBvZiB0aGUgcGFwZXIuIFRoZQppbnRl bnQgYW5kIGV4cGVjdGF0aW9uIGlzIHRoYXQgdGhlIG1hbmRhdG9yeSByZXZpc2lvbnMgY2FuIGJl IGFkZHJlc3NlZAp3aXRoaW4gZml2ZSB3ZWVrcyBhbmQgaGVuY2UgdGhhdCBjb25kaXRpb25hbGx5 IGFjY2VwdGVkIHBhcGVycyB3aWxsIGluCmdlbmVyYWwgYmUgYWNjZXB0ZWQgaW4gdGhlIHNlY29u ZCBwaGFzZS4KClRoZSBzZWNvbmQgc3VibWlzc2lvbiBzaG91bGQgY2xlYXJseSBpZGVudGlmeSBo b3cgdGhlIG1hbmRhdG9yeQpyZXZpc2lvbnMgd2VyZSBhZGRyZXNzZWQuIFRvIHRoYXQgZW5kLCB0 aGUgc2Vjb25kIHN1Ym1pc3Npb24gbXVzdCBiZQphY2NvbXBhbmllZCBieSBhIGNvdmVyIGxldHRl ciBtYXBwaW5nIGVhY2ggbWFuZGF0b3J5IHJldmlzaW9uIHJlcXVlc3QgdG8Kc3BlY2lmaWMgcGFy dHMgb2YgdGhlIHBhcGVyLiBUaGUgY292ZXIgbGV0dGVyIHdpbGwgZmFjaWxpdGF0ZSBhIHF1aWNr CnNlY29uZCByZXZpZXcsIGFsbG93aW5nIGZvciBjb25maXJtYXRpb24gb2YgZmluYWwgYWNjZXB0 YW5jZSB3aXRoaW4gdHdvCndlZWtzLiBDb252ZXJzZWx5LCB0aGUgYWJzZW5jZSBvZiBhIGNvdmVy IGxldHRlciB3aWxsIGJlIGdyb3VuZHMgZm9yIHRoZQpwYXBlcuKAmXMgcmVqZWN0aW9uLgoKVGhp cyBwcm9jZXNzIGlzIGludGVuZGVkIGFzIGEgcmVmaW5lbWVudCBvZiB0aGUgcmV2aWV3IHByb2Nl c3MgdGhhdCBoYXMKYmVlbiB1c2VkIGluIHByZXZpb3VzIElDRlAgY29uZmVyZW5jZXMuIEJ5IGlu Y29ycG9yYXRpbmcgYSBzZWNvbmQgc3RhZ2UsCnRoZSBwcm9jZXNzIHdpbGwgY29uZm9ybSB0byBB Q03igJlzIGpvdXJuYWwgcmV2aWV3aW5nIGd1aWRlbGluZXMgZm9yClBBQ01QTC4KCioqSUNGUCAy MDE3IHdpbGwgZW1wbG95IGEgbGlnaHR3ZWlnaHQgZG91YmxlLWJsaW5kIHJldmlld2luZyBwcm9j ZXNzLioqClRvIGZhY2lsaXRhdGUgdGhpcywgc3VibWl0dGVkIHBhcGVycyBtdXN0IGFkaGVyZSB0 byB0d28gcnVsZXM6CgogIDEuICoqYXV0aG9yIG5hbWVzIGFuZCBpbnN0aXR1dGlvbnMgbXVzdCBi ZSBvbWl0dGVkKiosIGFuZAogIDIuICoqcmVmZXJlbmNlcyB0byBhdXRob3JzJyBvd24gcmVsYXRl ZCB3b3JrIHNob3VsZCBiZSBpbiB0aGUgdGhpcmQKICBwZXJzb24qKiAoZS5nLiwgbm90ICJXZSBi dWlsZCBvbiBvdXIgcHJldmlvdXMgd29yayAuLi4iIGJ1dCByYXRoZXIgIldlCiAgYnVpbGQgb24g dGhlIHdvcmsgb2YgLi4uIikuCgpUaGUgcHVycG9zZSBvZiB0aGlzIHByb2Nlc3MgaXMgdG8gaGVs cCB0aGUgUEMgYW5kIGV4dGVybmFsIHJldmlld2Vycwpjb21lIHRvIGFuIGluaXRpYWwganVkZ2Vt ZW50IGFib3V0IHRoZSBwYXBlciB3aXRob3V0IGJpYXMsIG5vdCB0byBtYWtlCml0IGltcG9zc2li bGUgZm9yIHRoZW0gdG8gZGlzY292ZXIgdGhlIGF1dGhvcnMgaWYgdGhleSB3ZXJlIHRvIHRyeS4K Tm90aGluZyBzaG91bGQgYmUgZG9uZSBpbiB0aGUgbmFtZSBvZiBhbm9ueW1pdHkgdGhhdCB3ZWFr ZW5zIHRoZQpzdWJtaXNzaW9uIG9yIG1ha2VzIHRoZSBqb2Igb2YgcmV2aWV3aW5nIHRoZSBwYXBl ciBtb3JlIGRpZmZpY3VsdCAoZS5nLiwKaW1wb3J0YW50IGJhY2tncm91bmQgcmVmZXJlbmNlcyBz aG91bGQgbm90IGJlIG9taXR0ZWQgb3IgYW5vbnltaXplZCkuIEluCmFkZGl0aW9uLCBhdXRob3Jz IHNob3VsZCBmZWVsIGZyZWUgdG8gZGlzc2VtaW5hdGUgdGhlaXIgaWRlYXMgb3IgZHJhZnQKdmVy c2lvbnMgb2YgdGhlaXIgcGFwZXIgYXMgdGhleSBub3JtYWxseSB3b3VsZC4gRm9yIGluc3RhbmNl LCBhdXRob3JzCm1heSBwb3N0IGRyYWZ0cyBvZiB0aGVpciBwYXBlcnMgb24gdGhlIHdlYiBvciBn aXZlIHRhbGtzIG9uIHRoZWlyCnJlc2VhcmNoIGlkZWFzLgoKIyMjIEluZm9ybWF0aW9uIGZvciBB dXRob3JzIG9mIEFjY2VwdGVkIFBhcGVycwoKKiBBcyBhIGNvbmRpdGlvbiBvZiBhY2NlcHRhbmNl LCBmaW5hbCB2ZXJzaW9ucyBvZiBhbGwgcGFwZXJzIG11c3QgYWRoZXJlCiAgdG8gdGhlIG5ldyBB Q00gTGFyZ2UgZm9ybWF0LiBUaGUgcGFnZSBsaW1pdHMgZm9yIGZpbmFsIHZlcnNpb25zIG9mCiAg cGFwZXJzIHdpbGwgYmUgaW5jcmVhc2VkIHRvIGVuc3VyZSB0aGF0IGF1dGhvcnMgaGF2ZSBzcGFj ZSB0byByZXNwb25kCiAgdG8gcmV2aWV3ZXIgY29tbWVudHMgYW5kIG1hbmRhdG9yeSByZXZpc2lv bnMuCgoqIEF1dGhvcnMgb2YgYWNjZXB0ZWQgc3VibWlzc2lvbnMgd2lsbCBiZSByZXF1aXJlZCB0 byBhZ3JlZSB0byBvbmUgb2YKICB0aGUgdGhyZWUgQUNNIGxpY2Vuc2luZyBvcHRpb25zOiBjb3B5 cmlnaHQgdHJhbnNmZXIgdG8gQUNNOyByZXRhaW5pbmcKICBjb3B5cmlnaHQgYnV0IGdyYW50aW5n IEFDTSBleGNsdXNpdmUgcHVibGljYXRpb24gcmlnaHRzOyBvciBvcGVuCiAgYWNjZXNzIG9uIHBh eW1lbnQgb2YgYSBmZWUuICBGdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IEFDTSBhdXRob3IKICBy aWdodHMgaXMgYXZhaWxhYmxlIGZyb20gPGh0dHA6Ly9hdXRob3JzLmFjbS5vcmc+LgoKKiBBdCBs ZWFzdCBvbmUgYXV0aG9yIG9mIGVhY2ggYWNjZXB0ZWQgc3VibWlzc2lvbiB3aWxsIGJlIGV4cGVj dGVkIHRvCiAgYXR0ZW5kIGFuZCBwcmVzZW50IHRoZWlyIHBhcGVyIGF0IHRoZSBjb25mZXJlbmNl LiAoSUNGUCB3ZWxjb21lcyBhbGwKICBhdXRob3JzLCByZWdhcmRsZXNzIG9mIG5hdGlvbmFsaXR5 LiBJZiBhbnkgYXV0aG9yIG9mIGFuIGFjY2VwdGVkCiAgc3VibWlzc2lvbiBoYXMgdmlzYS1yZWxh dGVkIGRpZmZpY3VsdGllcyBpbiB0cmF2ZWxsaW5nIHRvIHRoZQogIGNvbmZlcmVuY2UsIHdlIHdp bGwgbWFrZSBhcnJhbmdlbWVudHMgdG8gZW5hYmxlIHJlbW90ZSBwYXJ0aWNpcGF0aW9uLAogIGFu ZCBub3QgcmVxdWlyZSB0aGVtIHRvIGF0dGVuZCB0aGUgY29uZmVyZW5jZSBpbiBvcmRlciB0byBw cmVzZW50CiAgdGhlaXIgdGFsay4gSW4gc3VjaCBhIGNhc2UgY29udGFjdCB1cyAoaWNmcDIwMTdA Y3Mub3guYWMudWspIGZvcgogIGZ1cnRoZXIgZ3VpZGFuY2UuKSBUaGUgc2NoZWR1bGUgZm9yIHBy ZXNlbnRhdGlvbnMgd2lsbCBiZSBkZXRlcm1pbmVkCiAgYW5kIHNoYXJlZCB3aXRoIGF1dGhvcnMg YWZ0ZXIgdGhlIGZ1bGwgcHJvZ3JhbSBoYXMgYmVlbiBzZWxlY3RlZC4KICBQcmVzZW50YXRpb25z IHdpbGwgYmUgdmlkZW90YXBlZCBhbmQgcmVsZWFzZWQgb25saW5lIGlmIHRoZSBwcmVzZW50ZXIK ICBjb25zZW50cy4KCiogV2UgaW50ZW5kIHRoYXQgdGhlIHByb2NlZWRpbmdzIHdpbGwgYmUgZnJl ZWx5IGF2YWlsYWJsZSBmb3IgZG93bmxvYWQKICBmcm9tIHRoZSBBQ00gRGlnaXRhbCBMaWJyYXJ5 IGluIHBlcnBldHVpdHkgdmlhIHRoZSBPcGVuVE9DIG1lY2hhbmlzbS4KCiogQUNNIEF1dGhvci1J emVyIGlzIGEgdW5pcXVlIHNlcnZpY2UgdGhhdCBlbmFibGVzIEFDTSBhdXRob3JzIHRvCiAgZ2Vu ZXJhdGUgYW5kIHBvc3QgbGlua3Mgb24gZWl0aGVyIHRoZWlyIGhvbWUgcGFnZSBvciBpbnN0aXR1 dGlvbmFsCiAgcmVwb3NpdG9yeSBmb3IgdmlzaXRvcnMgdG8gZG93bmxvYWQgdGhlIGRlZmluaXRp dmUgdmVyc2lvbiBvZiB0aGVpcgogIGFydGljbGVzIGZyb20gdGhlIEFDTSBEaWdpdGFsIExpYnJh cnkgYXQgbm8gY2hhcmdlLiBEb3dubG9hZHMgdGhyb3VnaAogIEF1dGhvci1JemVyIGxpbmtzIGFy ZSBjYXB0dXJlZCBpbiBvZmZpY2lhbCBBQ00gc3RhdGlzdGljcywgaW1wcm92aW5nCiAgdGhlIGFj Y3VyYWN5IG9mIHVzYWdlIGFuZCBpbXBhY3QgbWVhc3VyZW1lbnRzLiBDb25zaXN0ZW50bHkgbGlu a2luZyB0bwogIHRoZSBkZWZpbml0aXZlIHZlcnNpb24gb2YgYW4gQUNNIGFydGljbGUgc2hvdWxk IHJlZHVjZSB1c2VyIGNvbmZ1c2lvbgogIG92ZXIgYXJ0aWNsZSB2ZXJzaW9uaW5nLiBBZnRlciBh biBhcnRpY2xlIGhhcyBiZWVuIHB1Ymxpc2hlZCBhbmQKICBhc3NpZ25lZCB0byB0aGUgYXBwcm9w cmlhdGUgQUNNIEF1dGhvciBQcm9maWxlIHBhZ2VzLCBhdXRob3JzIHNob3VsZAogIHZpc2l0IDxo dHRwOi8vd3d3LmFjbS5vcmcvcHVibGljYXRpb25zL2FjbS1hdXRob3ItaXplci1zZXJ2aWNlPiB0 bwogIGxlYXJuIGhvdyB0byBjcmVhdGUgbGlua3MgZm9yIGZyZWUgZG93bmxvYWRzIGZyb20gdGhl IEFDTSBETC4KCiogKipBVVRIT1JTIFRBS0UgTk9URTogVGhlIG9mZmljaWFsIHB1YmxpY2F0aW9u IGRhdGUgaXMgdGhlIGRhdGUgdGhlCiAgcHJvY2VlZGluZ3MgYXJlIG1hZGUgYXZhaWxhYmxlIGlu IHRoZSBBQ00gRGlnaXRhbCBMaWJyYXJ5LiBUaGlzIGRhdGUKICBtYXkgYmUgdXAgdG8gKnR3byB3 ZWVrcyBwcmlvciogdG8gdGhlIGZpcnN0IGRheSBvZiB0aGUgY29uZmVyZW5jZS4gVGhlCiAgb2Zm aWNpYWwgcHVibGljYXRpb24gZGF0ZSBhZmZlY3RzIHRoZSBkZWFkbGluZSBmb3IgYW55IHBhdGVu dCBmaWxpbmdzCiAgcmVsYXRlZCB0byBwdWJsaXNoZWQgd29yay4qKgoKIyMjIEFydGlmYWN0IEV2 YWx1YXRpb24KCkF1dGhvcnMgb2YgcGFwZXJzIHRoYXQgYXJlIGNvbmRpdGlvbmFsbHkgYWNjZXB0 ZWQgaW4gdGhlIGZpcnN0IHBoYXNlIG9mCnRoZSByZXZpZXcgcHJvY2VzcyB3aWxsIGJlIGVuY291 cmFnZWQgKGJ1dCBub3QgcmVxdWlyZWQpIHRvIHN1Ym1pdApzdXBwb3J0aW5nIG1hdGVyaWFscyBm b3IgQXJ0aWZhY3QgRXZhbHVhdGlvbi4gVGhlc2UgaXRlbXMgd2lsbCB0aGVuIGJlCnJldmlld2Vk IGJ5IGEgY29tbWl0dGVlLCBzZXBhcmF0ZSBmcm9tIHRoZSBwcm9ncmFtIGNvbW1pdHRlZSwgd2hv c2UgdGFzawppcyB0byBhc3Nlc3MgaG93IHRoZSBhcnRpZmFjdHMgc3VwcG9ydCB0aGUgd29yayBk ZXNjcmliZWQgaW4gdGhlCmFzc29jaWF0ZWQgcGFwZXIuIFBhcGVycyB0aGF0IGdvIHRocm91Z2gg dGhlIEFydGlmYWN0IEV2YWx1YXRpb24gcHJvY2VzcwpzdWNjZXNzZnVsbHkgd2lsbCByZWNlaXZl IGEgc2VhbCBvZiBhcHByb3ZhbCBwcmludGVkIG9uIHRoZSBwYXBlcnMKdGhlbXNlbHZlcy4gQXV0 aG9ycyBvZiBhY2NlcHRlZCBwYXBlcnMgd2lsbCBiZSBlbmNvdXJhZ2VkIHRvIG1ha2UgdGhlCnN1 cHBvcnRpbmcgbWF0ZXJpYWxzIHB1YmxpY2x5IGF2YWlsYWJsZSB1cG9uIHB1YmxpY2F0aW9uIG9m IHRoZQpwcm9jZWVkaW5ncywgZm9yIGV4YW1wbGUsIGJ5IGluY2x1ZGluZyB0aGVtIGFzICJzb3Vy Y2UgbWF0ZXJpYWxzIiBpbiB0aGUKQUNNIERpZ2l0YWwgTGlicmFyeS4gIEFuIGFkZGl0aW9uYWwg c2VhbCB3aWxsIG1hcmsgcGFwZXJzIHdob3NlCmFydGlmYWN0cyBhcmUgbWFkZSBhdmFpbGFibGUs IGFzIG91dGxpbmVkIGluIHRoZSBBQ00gZ3VpZGVsaW5lcyBmb3IKYXJ0aWZhY3QgYmFkZ2luZy4K ClBhcnRpY2lwYXRpb24gaW4gQXJ0aWZhY3QgRXZhbHVhdGlvbiBpcyB2b2x1bnRhcnkgYW5kIHdp bGwgbm90IGluZmx1ZW5jZQp0aGUgZmluYWwgZGVjaXNpb24gcmVnYXJkaW5nIHBhcGVyIGFjY2Vw dGFuY2UuCgpGdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IHRoZSBtb3RpdmF0aW9ucyBhbmQgZXhw ZWN0YXRpb25zIGZvciBBcnRpZmFjdApFdmFsdWF0aW9uIGNhbiBiZSBmb3VuZCBhdAo8aHR0cDov L2ljZnAxNy5zaWdwbGFuLm9yZy90cmFjay9pY2ZwLTIwMTctQXJ0aWZhY3RzPi4KCiMjIyBTcGVj aWFsIGNhdGVnb3JpZXMgb2YgcGFwZXJzCgpJbiBhZGRpdGlvbiB0byByZXNlYXJjaCBwYXBlcnMs IElDRlAgc29saWNpdHMgdHdvIGtpbmRzIG9mIHBhcGVycyB0aGF0CmRvIG5vdCByZXF1aXJlIG9y aWdpbmFsIHJlc2VhcmNoIGNvbnRyaWJ1dGlvbnM6IEZ1bmN0aW9uYWwgUGVhcmxzLCB3aGljaAph cmUgZnVsbCBwYXBlcnMsIGFuZCBFeHBlcmllbmNlIFJlcG9ydHMsIHdoaWNoIGFyZSBsaW1pdGVk IHRvIGhhbGYgdGhlCmxlbmd0aCBvZiBhIGZ1bGwgcGFwZXIuIEF1dGhvcnMgc3VibWl0dGluZyBz dWNoIHBhcGVycyBzaG91bGQgY29uc2lkZXIKdGhlIGZvbGxvd2luZyBndWlkZWxpbmVzLgoKIyMj IyBGdW5jdGlvbmFsIFBlYXJscwoKQSBGdW5jdGlvbmFsIFBlYXJsIGlzIGFuIGVsZWdhbnQgZXNz YXkgYWJvdXQgc29tZXRoaW5nIHJlbGF0ZWQgdG8KZnVuY3Rpb25hbCBwcm9ncmFtbWluZy4gRXhh bXBsZXMgaW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bzoKCiAgKiBhIG5ldyBhbmQgdGhv dWdodC1wcm92b2tpbmcgd2F5IG9mIGxvb2tpbmcgYXQgYW4gb2xkIGlkZWEKCiAgKiBhbiBpbnN0 cnVjdGl2ZSBleGFtcGxlIG9mIHByb2dyYW0gY2FsY3VsYXRpb24gb3IgcHJvb2YKCiAgKiBhIG5p ZnR5IHByZXNlbnRhdGlvbiBvZiBhbiBvbGQgb3IgbmV3IGRhdGEgc3RydWN0dXJlCgogICogYW4g aW50ZXJlc3RpbmcgYXBwbGljYXRpb24gb2YgZnVuY3Rpb25hbCBwcm9ncmFtbWluZyB0ZWNobmlx dWVzCgogICogYSBub3ZlbCB1c2Ugb3IgZXhwb3NpdGlvbiBvZiBmdW5jdGlvbmFsIHByb2dyYW1t aW5nIGluIHRoZSBjbGFzc3Jvb20KCldoaWxlIHBlYXJscyBvZnRlbiBkZW1vbnN0cmF0ZSBhbiBp ZGVhIHRocm91Z2ggdGhlIGRldmVsb3BtZW50IG9mIGEKc2hvcnQgcHJvZ3JhbSwgdGhlcmUgaXMg bm8gcmVxdWlyZW1lbnQgb3IgZXhwZWN0YXRpb24gdGhhdCB0aGV5IGRvIHNvLgpUaHVzLCB0aGV5 IGVuY29tcGFzcyB0aGUgbm90aW9ucyBvZiB0aGVvcmV0aWNhbCBhbmQgZWR1Y2F0aW9uYWwgcGVh cmxzLgoKRnVuY3Rpb25hbCBQZWFybHMgYXJlIHZhbHVlZCBhcyBoaWdobHkgYW5kIGp1ZGdlZCBh cyByaWdvcm91c2x5IGFzCm9yZGluYXJ5IHBhcGVycywgYnV0IHVzaW5nIHNvbWV3aGF0IGRpZmZl cmVudCBjcml0ZXJpYS4gSW4gcGFydGljdWxhciwgYQpwZWFybCBpcyBub3QgcmVxdWlyZWQgdG8g cmVwb3J0IG9yaWdpbmFsIHJlc2VhcmNoLCBidXQsIGl0IHNob3VsZCBiZQpjb25jaXNlLCBpbnN0 cnVjdGl2ZSwgYW5kIGVudGVydGFpbmluZy4gQSBwZWFybCBpcyBsaWtlbHkgdG8gYmUgcmVqZWN0 ZWQKaWYgaXRzIHJlYWRlcnMgZ2V0IGJvcmVkLCBpZiB0aGUgbWF0ZXJpYWwgZ2V0cyB0b28gY29t cGxpY2F0ZWQsIGlmIHRvbwptdWNoIHNwZWNpYWxpemVkIGtub3dsZWRnZSBpcyBuZWVkZWQsIG9y IGlmIHRoZSB3cml0aW5nIGlzIGluZWxlZ2FudC4KVGhlIGtleSB0byB3cml0aW5nIGEgZ29vZCBw ZWFybCBpcyBwb2xpc2hpbmcuCgpBIHN1Ym1pc3Npb24gdGhhdCBpcyBpbnRlbmRlZCB0byBiZSB0 cmVhdGVkIGFzIGEgcGVhcmwgbXVzdCBiZSBtYXJrZWQgYXMKc3VjaCBvbiB0aGUgc3VibWlzc2lv biB3ZWIgcGFnZSwgYW5kIHNob3VsZCBjb250YWluIHRoZSB3b3JkcwoiRnVuY3Rpb25hbCBQZWFy bCIgc29tZXdoZXJlIGluIGl0cyB0aXRsZSBvciBzdWJ0aXRsZS4gVGhlc2Ugc3RlcHMgd2lsbAph bGVydCByZXZpZXdlcnMgdG8gdXNlIHRoZSBhcHByb3ByaWF0ZSBldmFsdWF0aW9uIGNyaXRlcmlh LiBQZWFybHMgd2lsbApiZSBjb21iaW5lZCB3aXRoIG9yZGluYXJ5IHBhcGVycywgaG93ZXZlciwg Zm9yIHRoZSBwdXJwb3NlIG9mIGNvbXB1dGluZwp0aGUgY29uZmVyZW5jZSdzIGFjY2VwdGFuY2Ug cmF0ZS4KCiMjIyMgRXhwZXJpZW5jZSBSZXBvcnRzCgpUaGUgcHVycG9zZSBvZiBhbiBFeHBlcmll bmNlIFJlcG9ydCBpcyB0byBoZWxwIGNyZWF0ZSBhIGJvZHkgb2YKcHVibGlzaGVkLCByZWZlcmVl ZCwgY2l0YWJsZSBldmlkZW5jZSB0aGF0IGZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmcgcmVhbGx5Cndv cmtzIC0tLSBvciB0byBkZXNjcmliZSB3aGF0IG9ic3RhY2xlcyBwcmV2ZW50IGl0IGZyb20gd29y a2luZy4KClBvc3NpYmxlIHRvcGljcyBmb3IgYW4gRXhwZXJpZW5jZSBSZXBvcnQgaW5jbHVkZSwg YnV0IGFyZSBub3QgbGltaXRlZAp0bzoKCiAgKiBpbnNpZ2h0cyBnYWluZWQgZnJvbSByZWFsLXdv cmxkIHByb2plY3RzIHVzaW5nIGZ1bmN0aW9uYWwKICAgIHByb2dyYW1taW5nCgogICogY29tcGFy aXNvbiBvZiBmdW5jdGlvbmFsIHByb2dyYW1taW5nIHdpdGggY29udmVudGlvbmFsIHByb2dyYW1t aW5nCiAgICBpbiB0aGUgY29udGV4dCBvZiBhbiBpbmR1c3RyaWFsIHByb2plY3Qgb3IgYSB1bml2 ZXJzaXR5IGN1cnJpY3VsdW0KCiAgKiBwcm9qZWN0LW1hbmFnZW1lbnQsIGJ1c2luZXNzLCBvciBs ZWdhbCBpc3N1ZXMgZW5jb3VudGVyZWQgd2hlbiB1c2luZwogICAgZnVuY3Rpb25hbCBwcm9ncmFt bWluZyBpbiBhIHJlYWwtd29ybGQgcHJvamVjdAoKICAqIGN1cnJpY3VsYXIgaXNzdWVzIGVuY291 bnRlcmVkIHdoZW4gdXNpbmcgZnVuY3Rpb25hbCBwcm9ncmFtbWluZyBpbgogICAgZWR1Y2F0aW9u CgogICogcmVhbC13b3JsZCBjb25zdHJhaW50cyB0aGF0IGNyZWF0ZWQgc3BlY2lhbCBjaGFsbGVu Z2VzIGZvciBhbgogICAgaW1wbGVtZW50YXRpb24gb2YgYSBmdW5jdGlvbmFsIGxhbmd1YWdlIG9y IGZvciBmdW5jdGlvbmFsCiAgICBwcm9ncmFtbWluZyBpbiBnZW5lcmFsCgpBbiBFeHBlcmllbmNl IFJlcG9ydCBpcyBkaXN0aW5ndWlzaGVkIGZyb20gYSBub3JtYWwgSUNGUCBwYXBlciBieSBpdHMK dGl0bGUsIGJ5IGl0cyBsZW5ndGgsIGFuZCBieSB0aGUgY3JpdGVyaWEgdXNlZCB0byBldmFsdWF0 ZSBpdC4KCiAgKiBCb3RoIGluIHRoZSBwcm9jZWVkaW5ncyBhbmQgaW4gYW55IGNpdGF0aW9ucywg dGhlIHRpdGxlIG9mIGVhY2gKICAgIGFjY2VwdGVkIEV4cGVyaWVuY2UgUmVwb3J0IG11c3QgYmVn aW4gd2l0aCB0aGUgd29yZHMgIkV4cGVyaWVuY2UKICAgIFJlcG9ydCIgZm9sbG93ZWQgYnkgYSBj b2xvbi4gVGhlIGFjY2VwdGFuY2UgcmF0ZSBmb3IgRXhwZXJpZW5jZQogICAgUmVwb3J0cyB3aWxs IGJlIGNvbXB1dGVkIGFuZCByZXBvcnRlZCBzZXBhcmF0ZWx5IGZyb20gdGhlIHJhdGUgZm9yCiAg ICBvcmRpbmFyeSBwYXBlcnMuCgogICogRXhwZXJpZW5jZSBSZXBvcnQgc3VibWlzc2lvbnMgY2Fu IGJlIGF0IG1vc3QgMTIgcGFnZXMgbG9uZywKICAgIGV4Y2x1ZGluZyBiaWJsaW9ncmFwaHkuCgog ICogRWFjaCBhY2NlcHRlZCBFeHBlcmllbmNlIFJlcG9ydCB3aWxsIGJlIHByZXNlbnRlZCBhdCB0 aGUgY29uZmVyZW5jZSwKICAgIGJ1dCBkZXBlbmRpbmcgb24gdGhlIG51bWJlciBvZiBFeHBlcmll bmNlIFJlcG9ydHMgYW5kIHJlZ3VsYXIgcGFwZXJzCiAgICBhY2NlcHRlZCwgYXV0aG9ycyBvZiBF eHBlcmllbmNlIHJlcG9ydHMgbWF5IGJlIGFza2VkIHRvIGdpdmUgc2hvcnRlcgogICAgdGFsa3Mu CgogICogQmVjYXVzZSB0aGUgcHVycG9zZSBvZiBFeHBlcmllbmNlIFJlcG9ydHMgaXMgdG8gZW5h YmxlIG91ciBjb21tdW5pdHkKICAgIHRvIGFjY3VtdWxhdGUgYSBib2R5IG9mIGV2aWRlbmNlIGFi b3V0IHRoZSBlZmZpY2FjeSBvZiBmdW5jdGlvbmFsCiAgICBwcm9ncmFtbWluZywgYW4gYWNjZXB0 YWJsZSBFeHBlcmllbmNlIFJlcG9ydCBuZWVkIG5vdCBhZGQgdG8gdGhlCiAgICBib2R5IG9mIGtu b3dsZWRnZSBvZiB0aGUgZnVuY3Rpb25hbC1wcm9ncmFtbWluZyBjb21tdW5pdHkgYnkKICAgIHBy ZXNlbnRpbmcgbm92ZWwgcmVzdWx0cyBvciBjb25jbHVzaW9ucy4gSXQgaXMgc3VmZmljaWVudCBp ZiB0aGUKICAgIFJlcG9ydCBzdGF0ZXMgYSBjbGVhciB0aGVzaXMgYW5kIHByb3ZpZGVzIHN1cHBv cnRpbmcgZXZpZGVuY2UuIFRoZQogICAgdGhlc2lzIG11c3QgYmUgcmVsZXZhbnQgdG8gSUNGUCwg YnV0IGl0IG5lZWQgbm90IGJlIG5vdmVsLgoKVGhlIHByb2dyYW0gY29tbWl0dGVlIHdpbGwgYWNj ZXB0IG9yIHJlamVjdCBFeHBlcmllbmNlIFJlcG9ydHMgYmFzZWQgb24Kd2hldGhlciB0aGV5IGp1 ZGdlIHRoZSBldmlkZW5jZSB0byBiZSBjb252aW5jaW5nLiBBbmVjZG90YWwgZXZpZGVuY2UKd2ls bCBiZSBhY2NlcHRhYmxlIHByb3ZpZGVkIGl0IGlzIHdlbGwgYXJndWVkIGFuZCB0aGUgYXV0aG9y IGV4cGxhaW5zCndoYXQgZWZmb3J0cyB3ZXJlIG1hZGUgdG8gZ2F0aGVyIGFzIG11Y2ggZXZpZGVu Y2UgYXMgcG9zc2libGUuClR5cGljYWxseSwgbW9yZSBjb252aW5jaW5nIGV2aWRlbmNlIGlzIG9i dGFpbmVkIGZyb20gcGFwZXJzIHdoaWNoIHNob3cKaG93IGZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmcg d2FzIHVzZWQgdGhhbiBmcm9tIHBhcGVycyB3aGljaCBvbmx5IHNheSB0aGF0CmZ1bmN0aW9uYWwg cHJvZ3JhbW1pbmcgd2FzIHVzZWQuIFRoZSBtb3N0IGNvbnZpbmNpbmcgZXZpZGVuY2Ugb2Z0ZW4K aW5jbHVkZXMgY29tcGFyaXNvbnMgb2Ygc2l0dWF0aW9ucyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBp bnRyb2R1Y3Rpb24gb3IKZGlzY29udGludWF0aW9uIG9mIGZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmcu IEV2aWRlbmNlIGRyYXduIGZyb20gYSBzaW5nbGUKcGVyc29uJ3MgZXhwZXJpZW5jZSBtYXkgYmUg c3VmZmljaWVudCwgYnV0IG1vcmUgd2VpZ2h0IHdpbGwgYmUgZ2l2ZW4gdG8KZXZpZGVuY2UgZHJh d24gZnJvbSB0aGUgZXhwZXJpZW5jZSBvZiBncm91cHMgb2YgcGVvcGxlLgoKQW4gRXhwZXJpZW5j ZSBSZXBvcnQgc2hvdWxkIGJlIHNob3J0IGFuZCB0byB0aGUgcG9pbnQ6IGl0IHNob3VsZCBtYWtl IGEKY2xhaW0gYWJvdXQgaG93IHdlbGwgZnVuY3Rpb25hbCBwcm9ncmFtbWluZyB3b3JrZWQgb24g YSBwYXJ0aWN1bGFyCnByb2plY3QgYW5kIHdoeSwgYW5kIHByb2R1Y2UgZXZpZGVuY2UgdG8gc3Vi c3RhbnRpYXRlIHRoaXMgY2xhaW0uIElmCmZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmcgd29ya2VkIGlu IHRoaXMgY2FzZSBpbiB0aGUgc2FtZSB3YXlzIGl0IGhhcwp3b3JrZWQgZm9yIG90aGVycywgdGhl IHBhcGVyIG5lZWQgb25seSBzdW1tYXJpemUgdGhlIHJlc3VsdHMgLS0tIHRoZQptYWluIHBhcnQg b2YgdGhlIHBhcGVyIHNob3VsZCBkaXNjdXNzIGhvdyB3ZWxsIGl0IHdvcmtlZCBhbmQgaW4gd2hh dApjb250ZXh0LiBNb3N0IHJlYWRlcnMgd2lsbCBub3Qgd2FudCB0byBrbm93IGFsbCB0aGUgZGV0 YWlscyBvZiB0aGUKcHJvamVjdCBhbmQgaXRzIGltcGxlbWVudGF0aW9uLCBidXQgdGhlIHBhcGVy IHNob3VsZCBjaGFyYWN0ZXJpemUgdGhlCnByb2plY3QgYW5kIGl0cyBjb250ZXh0IHdlbGwgZW5v dWdoIHNvIHRoYXQgcmVhZGVycyBjYW4ganVkZ2UgdG8gd2hhdApkZWdyZWUgdGhpcyBleHBlcmll bmNlIGlzIHJlbGV2YW50IHRvIHRoZWlyIG93biBwcm9qZWN0cy4gVGhlIHBhcGVyCnNob3VsZCB0 YWtlIGNhcmUgdG8gaGlnaGxpZ2h0IGFueSB1bnVzdWFsIGFzcGVjdHMgb2YgdGhlIHByb2plY3Qu ClNwZWNpZmljcyBhYm91dCB0aGUgcHJvamVjdCBhcmUgbW9yZSB2YWx1YWJsZSB0aGFuIGdlbmVy YWxpdGllcyBhYm91dApmdW5jdGlvbmFsIHByb2dyYW1taW5nOyBmb3IgZXhhbXBsZSwgaXQgaXMg bW9yZSB2YWx1YWJsZSB0byBzYXkgdGhhdCB0aGUKdGVhbSBkZWxpdmVyZWQgaXRzIHNvZnR3YXJl IGEgbW9udGggYWhlYWQgb2Ygc2NoZWR1bGUgdGhhbiBpdCBpcyB0byBzYXkKdGhhdCBmdW5jdGlv bmFsIHByb2dyYW1taW5nIG1hZGUgdGhlIHRlYW0gbW9yZSBwcm9kdWN0aXZlLgoKSWYgdGhlIHBh cGVyIG5vdCBvbmx5IGRlc2NyaWJlcyBleHBlcmllbmNlIGJ1dCBhbHNvIHByZXNlbnRzIG5ldwp0 ZWNobmljYWwgcmVzdWx0cywgb3IgaWYgdGhlIGV4cGVyaWVuY2UgcmVmdXRlcyBjaGVyaXNoZWQg YmVsaWVmcyBvZiB0aGUKZnVuY3Rpb25hbC1wcm9ncmFtbWluZyBjb21tdW5pdHksIGl0IG1heSBi ZSBiZXR0ZXIgb2ZmIHN1Ym1pdHRlZCBpdCBhcyBhCmZ1bGwgcGFwZXIsIHdoaWNoIHdpbGwgYmUg anVkZ2VkIGJ5IHRoZSB1c3VhbCBjcml0ZXJpYSBvZiBub3ZlbHR5LApvcmlnaW5hbGl0eSwgYW5k IHJlbGV2YW5jZS4gVGhlIHByb2dyYW0gY2hhaXIgd2lsbCBiZSBoYXBweSB0byBhZHZpc2Ugb24K YW55IGNvbmNlcm5zIGFib3V0IHdoaWNoIGNhdGVnb3J5IHRvIHN1Ym1pdCB0by4KCgojIyMgT3Jn YW5pemVycwoKR2VuZXJhbCBDaGFpcjogSmVyZW15IEdpYmJvbnMgKFVuaXZlcnNpdHkgb2YgT3hm b3JkLCBVSykKUHJvZ3JhbSBDaGFpcjogTWFyayBKb25lcyAoUG9ydGxhbmQgU3RhdGUgVW5pdmVy c2l0eSwgVVNBKQoKQXJ0aWZhY3QgRXZhbHVhdGlvbiBDaGFpcjogUnlhbiBSLiBOZXd0b24gKElu ZGlhbmEgVW5pdmVyc2l0eSwgVVNBKQpJbmR1c3RyaWFsIFJlbGF0aW9ucyBDaGFpcjogUnlhbiBU cmlua2xlIChPYnNpZGlhbiBTeXN0ZW1zIExMQywgVVNBKQpQcm9ncmFtbWluZyBDb250ZXN0IE9y Z2FuaXNlcjogU2FtIExpbmRsZXkgKFVuaXZlcnNpdHkgb2YgRWRpbmJ1cmdoLCBVSykKUHVibGlj aXR5IGFuZCBXZWIgQ2hhaXI6IExpbmRzZXkgS3VwZXIgKEludGVsIExhYnMsIFVTQSkKU3R1ZGVu dCBSZXNlYXJjaCBDb21wZXRpdGlvbiBDaGFpcjogSWx5YSBTZXJnZXkgKFVuaXZlcnNpdHkgQ29s bGVnZSBMb25kb24sIFVLKQpWaWRlbyBDaGFpcjogSm9zZSBDYWxkZXJvbiAoR2Fsb2lzLCBJbmMu LCBVU0EpCldvcmtzaG9wcyBDby1DaGFpcjogQW5kcmVzIEzDtmggKFdlbGwtVHlwZWQgTExQKQpX b3Jrc2hvcHMgQ28tQ2hhaXI6IERhdmlkIENocmlzdGlhbnNlbiAoSW5kaWFuYSBVbml2ZXJzaXR5 LCBVU0EpCgpQcm9ncmFtIENvbW1pdHRlZToKCkJvYiBBdGtleSAoVW5pdmVyc2l0eSBvZiBTdHJh dGhjbHlkZSwgU2NvdGxhbmQpCkFkYW0gQ2hsaXBhbGEgKE1JVCwgVVNBKQpEb21pbmlxdWUgRGV2 cmllc2UgKEtVIExldXZlbiwgQmVsZ2l1bSkKTWFydGluIEVyd2lnIChPcmVnb24gU3RhdGUsIFVT QSkKTWF0dGhldyBGbGF0dCAoVW5pdmVyc2l0eSBvZiBVdGFoLCBVU0EpClJvbmFsZCBHYXJjaWEg KFVuaXZlcnNpdHkgb2YgQnJpdGlzaCBDb2x1bWJpYSwgQ2FuYWRhKQpLYXRocnluIEdyYXkgKFVu aXZlcnNpdHkgb2YgQ2FtYnJpZGdlLCBFbmdsYW5kKQpKb2huIEh1Z2hlcyAoQ2hhbG1lcnMgVW5p dmVyc2l0eSBhbmQgUXV2aWssIFN3ZWRlbikKQ2h1bmctS2lsIEh1ciAoU2VvdWwgTmF0aW9uYWwg VW5pdmVyc2l0eSwgS29yZWEpCkdyYWhhbSBIdXR0b24gKFVuaXZlcnNpdHkgb2YgTm90dGluZ2hh bSwgRW5nbGFuZCkKQWxhbiBKZWZmcmV5IChNb3ppbGxhIFJlc2VhcmNoLCBVU0EpClJhbmppdCBK aGFsYSAoVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLCBTYW4gRGllZ28sIFVTQSkKU2hpbi15YSBL YXRzdW1hdGEgKEt5b3RvIFVuaXZlcnNpdHksIEphcGFuKQpMaW5kc2V5IEt1cGVyIChJbnRlbCBM YWJzLCBVU0EpCkRhbiBMaWNhdGEgKFdlc2xleWFuIFVuaXZlcnNpdHksIFVTQSkKQmVuIExpcHBt ZWllciAoRGlnaXRhbCBBc3NldCwgQXVzdHJhbGlhKQpHYWJyaWVsIFNjaGVyZXIgKE5vcnRoZWFz dGVybiBVbml2ZXJzaXR5LCBVU0EpCkFsZXhhbmRyYSBTaWx2YSAoVW5pdmVyc2l0eSBDb2xsZWdl IExvbmRvbiwgRW5nbGFuZCkKTmlraGlsIFN3YW15IChNaWNyb3NvZnQgUmVzZWFyY2gsIFVTQSkK U2FtIFRvYmluLUhvY2hzdGFkdCAoSW5kaWFuYSBVbml2ZXJzaXR5LCBVU0EpCk5pY29sYXMgV3Ug KFVuaXZlcnNpdHkgb2YgQnJpc3RvbCwgRW5nbGFuZCkKQmV0YSBaaWxpYW5pIChDT05JQ0VUIGFu ZCBGQU1BRiwgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ8OzcmRvYmEsIEFyZ2VudGluYSkKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxwcm9sb2cgbWFp bGluZyBsaXN0Ckxwcm9sb2dAY3MudW1uLmVkdQpodHRwczovL3d3d3MuY3MudW1uLmVkdS9tbS1j cy9saXN0aW5mby9scHJvbG9n