#FILE text/x-emacs-lisp Ozs7IGVkaWZmLXRyZWVzLmVsIC0tLSBSZWN1cnNpdmVseSBlZGlmZiB0d28gZGlyZWN0b3J5IHRy ZWVzIAo7OzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCjs7IEF1dGhvcjogSm9hbyBDYWNob3BvIDxqb2FvLmNhY2hv cG9AaW5lc2MtaWQucHQ+Cjs7IENyZWF0ZWQgb246IFdlZCBNYXkgMTAgMTc6MzA6NDkgMjAwNgo7 OyBLZXl3b3JkczogZWRpZmYsIGNvbXBhcmluZwo7Owo7OyBDb3B5cmlnaHQgKEMpIDIwMDYgSm9h byBDYWNob3BvCgo7OyBUaGlzIHByb2dyYW0gaXMgbm90IHBhcnQgb2YgR05VIEVtYWNzCgo7OyBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCjs7IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzCjs7IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQKOzsgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgoKOzsgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsIGJ1dAo7OyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCjs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCjs7IEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCjs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCjs7IGFsb25nIHdpdGggR05VIEVt YWNzOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8gdGhlCjs7IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgNjc1IE1hc3NhY2h1c2V0dGVzIEF2ZSwgQ2FtYnJpZGdlLCBN QQo7OyAwMjEzOSwgVVNBLgoKOzs7IENvbW1lbnRhcnk6Cgo7OyBUaGUgZWRpZmYtdHJlZXMgcGFj a2FnZSBpcyBhIHNpbXBsZSBmcm9udGVuZCB0byB0aGUgZW1hY3MnIGVkaWZmCjs7IHBhY2thZ2Ug dG8gYWxsb3cgYSBzaW1wbGVyIGNvbXBhcmlzb24gb2YgdHdvIHNpbWlsYXIgZGlyZWN0b3J5Cjs7 IHRyZWVzLgoKOzsgSSB3cm90ZSB0aGlzIHBhY2thZ2UgYmVjYXVzZSBJIG9mdGVuIG5lZWQgdG8g Y29tcGFyZSB0d28gZGlmZmVyZW50Cjs7IHZlcnNpb25zIG9mIHRoZSBzYW1lIGRpcmVjdG9yeSB0 cmVlIGFuZCBlZGlmZi1kaXJlY3RvcmllcyBpcyBub3QKOzsgdmVyeSBoZWxwZnVsIGluIHRoaXMg Y2FzZS4gIFNwZWNpYWxseSB3aGVuIHRoZSBkaXJlY3RvcnkgdHJlZXMgdG8KOzsgY29tcGFyZSBh cmUgZGVlcCBhbmQgb25seSBhIGZldyBmaWxlcyBoYXZlIGNoYW5nZWQuCjs7IFR5cGljYWxseSwg dGhhdCBvY2N1cnMgd2hlbiBJIGNyZWF0ZSBhIGNvcHkgb2Ygc29tZSBwcm9qZWN0Cjs7IGRpcmVj dG9yeSB0cmVlIGVpdGhlciB0byBtYWtlIHNvbWUgZXhwZXJpbWVudHMgbXlzZWxmIG9yIHRvIHNl bmQgdG8KOzsgc29tZW9uZSBlbHNlIHRoYXQgd2lsbCByZXR1cm4gYSBtb2RpZmllZCBkaXJlY3Rv cnkgdHJlZSB0byBtZQo7OyBsYXRlci4gIChZZXMsIEkgaGVhcmQgb2YgdmVyc2lvbiBjb250cm9s IHN5c3RlbXMsIGFuZCBJIHVzZSB0aGVtCjs7IHJlZ3VsYXJseS4gIFlldCwgZm9yIHNldmVyYWwg cmVhc29ucywgc29tZXRpbWVzIHRoYXQgaXMgbm90IGFuCjs7IG9wdGlvbi4pCgo7OyBMYXRlciwg d2hlbiBJIHdhbnQgdG8gaW50ZWdyYXRlIHRoZSBtb2RpZmllZCBkaXJlY3RvcnkgdHJlZSB3aXRo Cjs7IHRoZSBvcmlnaW5hbCB0cmVlLCBJIHdhbnQgdG8gc2VlIHRoZSBkaWZmZXJlbmNlcyB0byB0 aGUgb3JpZ2luYWwKOzsgdmVyc2lvbiwgc28gdGhhdCBJIG1heSBkZWNpZGUgd2hldGhlciB0byBh Y2NlcHQgdGhlIGNoYW5nZXMgb3Igbm90Lgo7OyBUaGlzIGlzIHdoZXJlIHRoaXMgcGFja2FnZSBr aWNrcyBpbi4uLgoKOzsgVG8gdXNlIGl0LCBqdXN0IGNhbGwgYGVkaWZmLXRyZWVzJywgd2hpY2gg d2lsbCBhc2sgZm9yIHR3bwo7OyBkaXJlY3RvcmllcyB0byBjb21wYXJlLiAgVXN1YWxseSwgSSBn aXZlIHRoZSBvcmlnaW5hbCBkaXJlY3RvcnkgYXMKOzsgdGhlIGZpcnN0IG9uZSBhbmQgdGhlIG1v ZGlmaWVkIGRpcmVjdG9yeSBhcyB0aGUgc2Vjb25kIG9uZS4KCjs7IGVkaWZmLXRyZWVzIHJlY3Vy c2l2ZWx5IGRlc2NlbmRzIGJvdGggZGlyZWN0b3JpZXMsIGNvbGxlY3RpbmcgdGhlCjs7IHBhaXJz IG9mIGZpbGVzIHRoYXQgYXJlIHdvcnRoICJjb21wYXJpbmciOiBlaXRoZXIgZmlsZXMgdGhhdAo7 OyBjaGFuZ2VkLCBvciB0aGF0IGFwcGVhciBpbiBvbmUgb2YgdGhlIHR3byBkaXJlY3RvcnkgdHJl ZXMgYnV0IG5vdAo7OyBpbiB0aGUgb3RoZXIuICBUaGVuLCBpdCBzaG93cyB0aGUgZmlyc3QgImNo YW5nZSIgdXNpbmcgZWRpZmYuCgo7OyBJbiBmYWN0LCBlZGlmZi10cmVlcyBlaXRoZXIgdXNlcyBl ZGlmZiB0byBjb21wYXJlIGEgZmlsZSB3aXRoIGl0cwo7OyBjaGFuZ2VkIHZlcnNpb24sIG9yIHNp bXBseSBvcGVucyBhIGZpbGUgdGhhdCBvY2N1cnMgaW4gb25seSBvbmUgb2YKOzsgdGhlIHRyZWVz LgoKOzsgVGhlIHVzZXIgY2FuIHRoZW4gbmF2aWdhdGUgYmFja3dhcmQgYW5kIGZvcndhcmQgaW4g dGhlIHNldCBvZgo7OyBjaGFuZ2VzIGJ5IHVzaW5nIGBlZGlmZi10cmVlcy1leGFtaW5lLW5leHQn IGFuZAo7OyBgZWRpZmYtdHJlZXMtZXhhbWluZS1wcmV2aW91cycsIHJlc3BlY3RpdmVseS4gIFRo ZXNlIGZ1bmN0aW9ucyBtb3ZlCjs7IGZyb20gb25lIGNoYW5nZSAocXVpdGluZyB0aGUgY3VycmVu dCBlZGlmZiBzZXNzaW9uIG9yIGtpbGxpbmcgdGhlCjs7IGN1cnJlbnQgZmlsZSBidWZmZXIpIHRv IGFub3RoZXIuICBUaGVyZWZvcmUsIGJ5IHJlcGVhdGVkbHkgdXNpbmcKOzsgdGhlc2UgZnVuY3Rp b25zIHdlIGNhbiBnbyB0aHJvdWdoIGFsbCB0aGUgY2hhbmdlcy4gIEkgdXN1YWxseSB1c2UKOzsg c29tZSBnbG9iYWwgYmluZGluZ3MgZm9yIHRoZXNlIGZ1bmN0aW9ucy4gIFNvbWV0aGluZyBsaWtl IHRoaXM6Cjs7Cjs7ICAgKGdsb2JhbC1zZXQta2V5IChrYmQgInMtU1BDIikgJ2VkaWZmLXRyZWVz LWV4YW1pbmUtbmV4dCkKOzsgICAoZ2xvYmFsLXNldC1rZXkgKGtiZCAiUy1zLVNQQyIpICdlZGlm Zi10cmVlcy1leGFtaW5lLXByZXZpb3VzKQo7OyAgIChnbG9iYWwtc2V0LWtleSAoa2JkICJDLXMt U1BDIikgJ2VkaWZmLXRyZWVzLWV4YW1pbmUtbmV4dC1yZWdleHApCjs7ICAgKGdsb2JhbC1zZXQt a2V5IChrYmQgIkMtUy1zLVNQQyIpICdlZGlmZi10cmVlcy1leGFtaW5lLXByZXZpb3VzLXJlZ2V4 cCkpCgo7OyBUaGUgYGVkaWZmLXRyZWVzLWV4YW1pbmUtbmV4dC1yZWdleHAnIGFuZAo7OyBgZWRp ZmYtdHJlZXMtZXhhbWluZS1wcmV2aW91cy1yZWdleHAnIHNraXAgb3ZlciB0aGUgbGlzdCBvZiBj aGFuZ2VzCjs7IHRvIGEgZmlsZSB3aXRoIGEgZmlsZW5hbWUgdGhhdCBtYXRjaGVzIGEgZ2l2ZW4g cmVnZXhwLgoKOzsgVGhpcyBwYWNrYWdlIGFsbG93cyBmb3Igc29tZSBjdXN0b21pemF0aW9uLiAg UGxlYXNlLCBzZWUgdGhlCjs7IGVkaWZmLXRyZWVzIGdyb3VwIHVuZGVyIGN1c3RvbWl6ZS4KCjs7 IEZpbmFsbHksIHRvIGRlYWwgd2l0aCBzbWFsbCBjaGFuZ2VzIGluIHRoZSB3aGl0ZSBzcGFjZSBJ IG9mdGVuIGZpbmQKOzsgaXQgdXNlZnVsIHRvIGNvbmZpZ3VyZSBlZGlmZiBsaWtlIHRoaXM6Cjs7 Cjs7ICAgKHNldHEgZWRpZmYtZGlmZi1vcHRpb25zICItdyIpCjs7ICAgKHNldHEtZGVmYXVsdCBl ZGlmZi1pZ25vcmUtc2ltaWxhci1yZWdpb25zIHQpCgo7OzsgQ29kZToKCgoocmVxdWlyZSAnZWRp ZmYpCgooZGVmZ3JvdXAgZWRpZmYtdHJlZXMgbmlsCiAgIkV4dGVuZCBlZGlmZiB0byBhbGxvdyBj b21wYXJpbmcgdHdvIHRyZWVzIHJlY3Vyc2l2ZWx5LiIKICA6dGFnICJFZGlmZiBUcmVlcyIKICA6 Z3JvdXAgJ2VkaWZmKQoKCihkZWZmYWNlIGVkaWZmLXRyZWVzLWRlbGV0ZWQtb3JpZ2luYWwtZmFj ZQogICcoKCgoY2xhc3MgY29sb3IpKQogICAgICg6YmFja2dyb3VuZCAiUGluayIpKQogICAgKHQg KDppbnZlcnNlLXZpZGVvIHQpKSkKICAiRmFjZSBmb3IgaGlnaGxpZ2h0aW5nIHRoZSBidWZmZXIg d2hlbiBpdCB3YXMgZGVsZXRlZCBmcm9tIHRoZSBvcmlnaW5hbCB0cmVlLiIKICA6Z3JvdXAgJ2Vk aWZmLXRyZWVzKQoKKGRlZmN1c3RvbSBlZGlmZi10cmVlcy1maWxlLWlnbm9yZS1yZWdleHAKICAi XFxgXFwoXFwuPyMuKlxcfC4qLHZcXHwuKn5cXHxDVlNcXHxfZGFyY3NcXClcXCciCiAgIkEgcmVn ZXhwIG1hdGNoaW5nIGVpdGhlciBmaWxlcyBvciBkaXJlY3RvcmllcyB0byBiZSBpZ25vcmVkCndo ZW4gY29tcGFyaW5nIHR3byB0cmVlcy4gIElmIGEgZGlyZWN0b3J5IG1hdGNoZXMgdGhlIHJlZ2V4 cCwKdGhlbiBpdHMgY29udGVudHMgaXMgbm90IHNjYW5uZWQgYnkgYGVkaWZmLXRyZWVzJy4iCiAg OnR5cGUgJ3JlZ2V4cAogIDpncm91cCAnZWRpZmYtdHJlZXMpCgoKKGRlZmN1c3RvbSBlZGlmZi10 cmVlcy1zb3J0LW9yZGVyLXJlZ2V4cHMgbmlsCiAgIipTcGVjaWZpZXMgYSBsaXN0IG9mIHJlZ2V4 cHMgdGhhdCBkZXRlcm1pbmUgdGhlIG9yZGVyIGluIHdoaWNoCmZpbGVzIHdpbGwgYmUgcHJlc2Vu dGVkIGR1cmluZyB0aGUgZWRpZmYtdHJlZXMgc2Vzc2lvbi4gIEZpbGVzCndpdGggZmlsZW5hbWVz IG1hdGNoaW5nIGZvcm1lciByZWdleHBzIGFwcGVhciBlYXJsaWVyIGluIHRoZQpzZXNzaW9uLiAg SWYgYSBmaWxlbmFtZSBtYXRjaGVzIG1vcmUgdGhhbiBvbmUgcmVnZXhwLCB0aGUgZmlyc3QKb25l IHdpbnMuIgogIDp0eXBlICcocmVwZWF0IHJlZ2V4cCkKICA6Z3JvdXAgJ2VkaWZmLXRyZWVzKQoK CgooZGVmdW4gZWRpZmYtdHJlZXMgKHJvb3QxIHJvb3QyKQogICJTdGFydHMgYSBuZXcgZWRpZmYg c2Vzc2lvbiB0aGF0IHJlY3Vyc2l2ZWx5IGNvbXBhcmVzIHR3bwp0cmVlcy4iCiAgKGludGVyYWN0 aXZlCiAgIChsZXQgKChkaXItQSAoZWRpZmYtZ2V0LWRlZmF1bHQtZGlyZWN0b3J5LW5hbWUpKQog ICAgICAgICBmKQogICAgIChsaXN0IChzZXRxIGYgKGVkaWZmLXJlYWQtZmlsZS1uYW1lICJEaXJl Y3RvcnkgQSB0byBjb21wYXJlOiIgZGlyLUEgbmlsKSkKCSAgIChlZGlmZi1yZWFkLWZpbGUtbmFt ZSAiRGlyZWN0b3J5IEIgdG8gY29tcGFyZToiCgkJCQkgKGlmIGVkaWZmLXVzZS1sYXN0LWRpcgoJ CQkJICAgICBlZGlmZi1sYXN0LWRpci1CCgkJCQkgICAoZWRpZmYtc3RyaXAtbGFzdC1kaXIgZikp CgkJCQkgbmlsKSkpKQogIChlZGlmZi10cmVlcy1pbnRlcm5hbCByb290MSByb290MikpCgoKOzs7 IEludGVybmFsIHZhcmlhYmxlcywgdXNlZCBkdXJpbmcgYW4gZWRpZmYtdHJlZXMgc2Vzc2lvbgoo ZGVmdmFyIGVkaWZmLXRyZWVzLWN1cnJlbnQtZmlsZSBuaWwpCihkZWZ2YXIgZWRpZmYtdHJlZXMt cmVtYWluaW5nLWZpbGVzIChsaXN0KSkKKGRlZnZhciBlZGlmZi10cmVlcy1leGFtaW5lZC1maWxl cyAobGlzdCkpCgoKKGRlZnVuIGVkaWZmLXRyZWVzLWludGVybmFsIChyb290MSByb290MikKICAo bGV0ICgoZmlsZXMtY2hhbmdlZCAoZWRpZmYtdHJlZXMtY29sbGVjdC1maWxlcyByb290MSByb290 MikpKQogICAgKGlmIChub3QgKG51bGwgZmlsZXMtY2hhbmdlZCkpCiAgICAgICAgKHByb2duCiAg ICAgICAgICAoc2V0cSBlZGlmZi10cmVlcy1yZW1haW5pbmctZmlsZXMgZmlsZXMtY2hhbmdlZCkK ICAgICAgICAgIChzZXRxIGVkaWZmLXRyZWVzLWV4YW1pbmVkLWZpbGVzIChsaXN0KSkKICAgICAg ICAgIChlZGlmZi10cmVlcy1leGFtaW5lLW5leHQgMSkpCiAgICAgIChtZXNzYWdlICJUaGVyZSBh cmUgbm8gY2hhbmdlcyBiZXR3ZWVuIHRoZSB0cmVlcyEiKSkpKQoKKGRlZnVuIGVkaWZmLXRyZWVz LWNvbGxlY3QtZmlsZXMgKHJvb3QxIHJvb3QyKQogIChlZGlmZi10cmVlcy1zb3J0LWZpbGVzCiAg IChuY29uYyAoZWRpZmYtdHJlZXMtY29sbGVjdC1jaGFuZ2VkLWZpbGVzIHJvb3QxIHJvb3QyKQog ICAgICAgICAgKG1hcGNhciAobGFtYmRhIChlbCkgKGNvbnMgZWwgbmlsKSkKICAgICAgICAgICAg ICAgICAgKGVkaWZmLXRyZWVzLWNvbGxlY3QtbmV3LWZpbGVzIHJvb3QxIHJvb3QyKSkKICAgICAg ICAgIChtYXBjYXIgKGxhbWJkYSAoZWwpIChjb25zIG5pbCBlbCkpCiAgICAgICAgICAgICAgICAg IChlZGlmZi10cmVlcy1jb2xsZWN0LW5ldy1maWxlcyByb290MiByb290MSkpKSkpCgoKKGRlZnVu IGVkaWZmLXRyZWVzLXNvcnQtZmlsZXMgKGZpbGVzKQogIChsZXQgKCh0YWdnZWQtZmlsZXMgKG1h cGNhciAobGFtYmRhIChwYWlyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25z IChlZGlmZi10cmVlcy1nZXQtc29ydC1vcmRlciAob3IgKGNhciBwYWlyKSAoY2RyIHBhaXIpKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWlyKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmlsZXMpKSkKICAgIChtYXBjYXIgIydjZHIgCiAgICAgICAgICAg IChzb3J0IHRhZ2dlZC1maWxlcwogICAgICAgICAgICAgICAgICAobGFtYmRhICh0ZjEgdGYyKQog ICAgICAgICAgICAgICAgICAgIChsZXQgKChvcmRlcjEgKGNhciB0ZjEpKQogICAgICAgICAgICAg ICAgICAgICAgICAgIChvcmRlcjIgKGNhciB0ZjIpKSkKICAgICAgICAgICAgICAgICAgICAgIChv ciAoPCBvcmRlcjEgb3JkZXIyKQogICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKD0gb3Jk ZXIxIG9yZGVyMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChlbDEgKG9y IChjYWRyIHRmMSkgKGNkZHIgdGYxKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoZWwyIChvciAoY2FkciB0ZjIpIChjZGRyIHRmMikpKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHN0cmluZzwgZWwxIGVsMikpKSkpKSkpKSkKCgooZGVmdW4gZWRpZmYt dHJlZXMtZ2V0LXNvcnQtb3JkZXIgKHBhdGhuYW1lKQogIChsZXQgKChvcmRlciAwKQogICAgICAg IChzb3J0aW5nLXJlZ2V4cHMgZWRpZmYtdHJlZXMtc29ydC1vcmRlci1yZWdleHBzKSkKICAgICh3 aGlsZSAoYW5kIChub3QgKG51bGwgc29ydGluZy1yZWdleHBzKSkKICAgICAgICAgICAgICAgIChu b3QgKHN0cmluZy1tYXRjaCAocG9wIHNvcnRpbmctcmVnZXhwcykgcGF0aG5hbWUpKSkKICAgICAg KGluY2Ygb3JkZXIpKQogICAgb3JkZXIpKQogICAgICAKCgooZGVmdW4gZWRpZmYtdHJlZXMtY29s bGVjdC1jaGFuZ2VkLWZpbGVzIChyb290MSByb290MikKICAobGV0ICgoY2hhbmdlZCAobGlzdCkp KQogICAgKGRvbGlzdCAoZmlsZW5hbWUgKGRpcmVjdG9yeS1maWxlcyByb290MSkpCiAgICAgICh1 bmxlc3MgKGVkaWZmLXRyZWVzLXNraXAtZmlsZS1wIGZpbGVuYW1lKQogICAgICAgIChsZXQgKChm aWxlMSAoZXhwYW5kLWZpbGUtbmFtZSBmaWxlbmFtZSByb290MSkpCiAgICAgICAgICAgICAgKGZp bGUyIChleHBhbmQtZmlsZS1uYW1lIGZpbGVuYW1lIHJvb3QyKSkpCiAgICAgICAgICAod2hlbiAo ZmlsZS1leGlzdHMtcCBmaWxlMikKICAgICAgICAgICAgKHVubGVzcyAoZXFsIChmaWxlLWRpcmVj dG9yeS1wIGZpbGUxKQogICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUtZGlyZWN0b3J5LXAg ZmlsZTIpKQogICAgICAgICAgICAgIChlcnJvciAiQ2FuJ3QgY29tcGFyZSBkaXJlY3Rvcnkgd2l0 aCByZWd1bGFyIGZpbGUiKSkKICAgICAgICAgICAgKGNvbmQgKChmaWxlLWRpcmVjdG9yeS1wIGZp bGUxKQogICAgICAgICAgICAgICAgICAgKHNldHEgY2hhbmdlZCAobmNvbmMgY2hhbmdlZCAoZWRp ZmYtdHJlZXMtY29sbGVjdC1jaGFuZ2VkLWZpbGVzIGZpbGUxIGZpbGUyKSkpKQogICAgICAgICAg ICAgICAgICAoKG5vdCAoZWRpZmYtc2FtZS1maWxlLWNvbnRlbnRzIGZpbGUxIGZpbGUyKSkKICAg ICAgICAgICAgICAgICAgIChwdXNoIChjb25zIGZpbGUxIGZpbGUyKSBjaGFuZ2VkKSkpKSkpKQog ICAgY2hhbmdlZCkpCgoKKGRlZnVuIGVkaWZmLXRyZWVzLWNvbGxlY3QtbmV3LWZpbGVzIChyb290 MSByb290MikKICAiQ29sbGVjdCBmaWxlcyBmcm9tIHJvb3QxIHRoYXQgZG8gbm90IGFwcGVhciBh dCByb290Mi4iCiAgKGxldCAoKG5ldy1maWxlcyAobGlzdCkpKQogICAgKGRvbGlzdCAoZmlsZW5h bWUgKGRpcmVjdG9yeS1maWxlcyByb290MSkpCiAgICAgICh1bmxlc3MgKGVkaWZmLXRyZWVzLXNr aXAtZmlsZS1wIGZpbGVuYW1lKQogICAgICAgIChsZXQgKChmaWxlMSAoZXhwYW5kLWZpbGUtbmFt ZSBmaWxlbmFtZSByb290MSkpCiAgICAgICAgICAgICAgKGZpbGUyIChhbmQgcm9vdDIgKGV4cGFu ZC1maWxlLW5hbWUgZmlsZW5hbWUgcm9vdDIpKSkpCiAgICAgICAgICAoY29uZCAoKGZpbGUtZGly ZWN0b3J5LXAgZmlsZTEpCiAgICAgICAgICAgICAgICAgKHNldHEgbmV3LWZpbGVzCiAgICAgICAg ICAgICAgICAgICAgICAgKG5jb25jIG5ldy1maWxlcwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoZWRpZmYtdHJlZXMtY29sbGVjdC1uZXctZmlsZXMgZmlsZTEKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKHN0cmlu Z3AgZmlsZTIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChmaWxlLWRpcmVjdG9yeS1wIGZpbGUyKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxl MikpKSkpCiAgICAgICAgICAgICAgICAoKG9yIChudWxsIGZpbGUyKSAobm90IChmaWxlLWV4aXN0 cy1wIGZpbGUyKSkpCiAgICAgICAgICAgICAgICAgKHB1c2ggZmlsZTEgbmV3LWZpbGVzKSkpKSkp CiAgICBuZXctZmlsZXMpKQoKKGRlZnVuIGVkaWZmLXRyZWVzLXNraXAtZmlsZS1wIChmaWxlbmFt ZSkKICA7OyBhbHdheXMgaWdub3JlIC4gYW5kIC4uCiAgKG9yIChzdHJpbmc9IGZpbGVuYW1lICIu IikKICAgICAgKHN0cmluZz0gZmlsZW5hbWUgIi4uIikKICAgICAgKHN0cmluZy1tYXRjaCBlZGlm Zi10cmVlcy1maWxlLWlnbm9yZS1yZWdleHAgZmlsZW5hbWUpKSkKCgooZGVmdW4gZWRpZmYtdHJl ZXMtZXhhbWluZS1uZXh0IChudW0pCiAgKGludGVyYWN0aXZlICJwIikKICAoaWYgKDwgbnVtIDAp CiAgICAoZWRpZmYtdHJlZXMtZXhhbWluZS1wcmV2aW91cyAoLSBudW0pKQogICAgKGVkaWZmLXRy ZWVzLWV4YW1pbmUtZmlsZQogICAgIChsYW1iZGEgKGZpbGUpICh6ZXJvcCAoZGVjZiBudW0pKSkK ICAgICAobGFtYmRhIChmaWxlKSAocHVzaCBmaWxlIGVkaWZmLXRyZWVzLWV4YW1pbmVkLWZpbGVz KSkKICAgICAobGFtYmRhICgpIChwb3AgZWRpZmYtdHJlZXMtcmVtYWluaW5nLWZpbGVzKSkpKSkK CgooZGVmdW4gZWRpZmYtdHJlZXMtZXhhbWluZS1wcmV2aW91cyAobnVtKQogIChpbnRlcmFjdGl2 ZSAicCIpCiAgKGlmICg8IG51bSAwKQogICAgKGVkaWZmLXRyZWVzLWV4YW1pbmUtbmV4dCAoLSBu dW0pKQogICAgKGVkaWZmLXRyZWVzLWV4YW1pbmUtZmlsZSAKICAgICAobGFtYmRhIChmaWxlKSAo emVyb3AgKGRlY2YgbnVtKSkpCiAgICAgKGxhbWJkYSAoZmlsZSkgKHB1c2ggZmlsZSBlZGlmZi10 cmVlcy1yZW1haW5pbmctZmlsZXMpKQogICAgIChsYW1iZGEgKCkgKHBvcCBlZGlmZi10cmVlcy1l eGFtaW5lZC1maWxlcykpKSkpCgoKKGRlZnVuIGVkaWZmLXRyZWVzLWV4YW1pbmUtbmV4dC1yZWdl eHAgKHJlZ2V4cCkKICAoaW50ZXJhY3RpdmUgInNTZWFyY2ggZm9yIChyZWdleHApOiAiKQogIChl ZGlmZi10cmVlcy1leGFtaW5lLWZpbGUKICAgKGxhbWJkYSAoZmlsZSkgKHN0cmluZy1tYXRjaCBy ZWdleHAgKG9yIChjYXIgZmlsZSkgKGNkciBmaWxlKSkpKQogICAobGFtYmRhIChmaWxlKSAocHVz aCBmaWxlIGVkaWZmLXRyZWVzLWV4YW1pbmVkLWZpbGVzKSkKICAgKGxhbWJkYSAoKSAocG9wIGVk aWZmLXRyZWVzLXJlbWFpbmluZy1maWxlcykpKSkKCgooZGVmdW4gZWRpZmYtdHJlZXMtZXhhbWlu ZS1wcmV2aW91cy1yZWdleHAgKHJlZ2V4cCkKICAoaW50ZXJhY3RpdmUgInNTZWFyY2ggZm9yIChy ZWdleHApOiAiKQogIChlZGlmZi10cmVlcy1leGFtaW5lLWZpbGUKICAgKGxhbWJkYSAoZmlsZSkg KHN0cmluZy1tYXRjaCByZWdleHAgKG9yIChjYXIgZmlsZSkgKGNkciBmaWxlKSkpKQogICAobGFt YmRhIChmaWxlKSAocHVzaCBmaWxlIGVkaWZmLXRyZWVzLXJlbWFpbmluZy1maWxlcykpCiAgIChs YW1iZGEgKCkgKHBvcCBlZGlmZi10cmVlcy1leGFtaW5lZC1maWxlcykpKSkKCgooZGVmdW4gZWRp ZmYtdHJlZXMtZXhhbWluZS1maWxlIChwcmVkIHNhdmUtY3VycmVudC1maWxlLWZuIGdldC1uZXh0 LWZpbGUtZm4pCiAgKHdoZW4gKGVxIChjdXJyZW50LWJ1ZmZlcikgZWRpZmYtY29udHJvbC1idWZm ZXIpCiAgICAoZWRpZmYtcmVhbGx5LXF1aXQgbmlsKSkKICAodW5sZXNzIChudWxsIGVkaWZmLXRy ZWVzLWN1cnJlbnQtZmlsZSkKICAgIChmdW5jYWxsIHNhdmUtY3VycmVudC1maWxlLWZuIGVkaWZm LXRyZWVzLWN1cnJlbnQtZmlsZSkKICAgICh3aGVuIChjYXIgZWRpZmYtdHJlZXMtY3VycmVudC1m aWxlKQogICAgICAoa2lsbC1idWZmZXIgKGZpbmQtYnVmZmVyLXZpc2l0aW5nIChjYXIgZWRpZmYt dHJlZXMtY3VycmVudC1maWxlKSkpKQogICAgKHdoZW4gKGNkciBlZGlmZi10cmVlcy1jdXJyZW50 LWZpbGUpCiAgICAgIChraWxsLWJ1ZmZlciAoZmluZC1idWZmZXItdmlzaXRpbmcgKGNkciBlZGlm Zi10cmVlcy1jdXJyZW50LWZpbGUpKSkpCiAgICAoc2V0cSBlZGlmZi10cmVlcy1jdXJyZW50LWZp bGUgbmlsKSkKICAobGV0ICgobmV4dC1maWxlIChlZGlmZi10cmVlcy1nZXQtbmV4dC1maWxlIHBy ZWQgc2F2ZS1jdXJyZW50LWZpbGUtZm4gZ2V0LW5leHQtZmlsZS1mbikpKQogICAgKGlmIChudWxs IG5leHQtZmlsZSkKICAgICAgICAobWVzc2FnZSAiTm8gbW9yZSBmaWxlcy4iKQogICAgICAocHJv Z24KICAgICAgICAoc2V0cSBlZGlmZi10cmVlcy1jdXJyZW50LWZpbGUgbmV4dC1maWxlKQogICAg ICAgIChpZiAoYW5kIChjYXIgbmV4dC1maWxlKSAoY2RyIG5leHQtZmlsZSkpCiAgICAgICAgICAg IChlZGlmZi1maWxlcyAoY2FyIG5leHQtZmlsZSkgKGNkciBuZXh0LWZpbGUpKQogICAgICAgICAg KHByb2duCiAgICAgICAgICAgIChkZWxldGUtb3RoZXItd2luZG93cykKICAgICAgICAgICAgKGZp bmQtZmlsZS1yZWFkLW9ubHkgKG9yIChjYXIgbmV4dC1maWxlKSAoY2RyIG5leHQtZmlsZSkpKQog ICAgICAgICAgICAod2hlbiAobnVsbCAoY2RyIG5leHQtZmlsZSkpCiAgICAgICAgICAgICAgKGxl dCAoKG92ZXJsYXkgKG1ha2Utb3ZlcmxheSAwIChwb2ludC1tYXgpKSkpCiAgICAgICAgICAgICAg ICAob3ZlcmxheS1wdXQgb3ZlcmxheSAnZmFjZSAnZWRpZmYtdHJlZXMtZGVsZXRlZC1vcmlnaW5h bC1mYWNlKSkpKSkpKSkpCgoKKGRlZnVuIGVkaWZmLXRyZWVzLWdldC1uZXh0LWZpbGUgKHByZWQg c2F2ZS1jdXJyZW50LWZpbGUtZm4gZ2V0LW5leHQtZmlsZS1mbikKICAoYmxvY2sgbmlsCiAgICAo d2hpbGUgdAogICAgICAobGV0ICgobmV4dC1maWxlIChmdW5jYWxsIGdldC1uZXh0LWZpbGUtZm4p KSkKICAgICAgICAoY29uZCAoKG51bGwgbmV4dC1maWxlKQogICAgICAgICAgICAgICAocmV0dXJu IG5pbCkpCiAgICAgICAgICAgICAgKChmdW5jYWxsIHByZWQgbmV4dC1maWxlKQogICAgICAgICAg ICAgICAocmV0dXJuIG5leHQtZmlsZSkpCiAgICAgICAgICAgICAgKHQKICAgICAgICAgICAgICAg KGZ1bmNhbGwgc2F2ZS1jdXJyZW50LWZpbGUtZm4gbmV4dC1maWxlKSkpKSkpKQoKCihwcm92aWRl ICdlZGlmZi10cmVlcykK