<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>155327</bug_id>
          
          <creation_ts>2016-03-10 14:54:19 -0800</creation_ts>
          <short_desc>Extract a helper functions out of event-inside-slotted-node.html</short_desc>
          <delta_ts>2016-03-10 19:21:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>153538</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1173363</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-10 14:54:19 -0800</bug_when>
    <thetext>Extract a helper functions out of event-inside-slotted-node.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173364</commentid>
    <comment_count>1</comment_count>
      <attachid>273624</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-10 14:55:09 -0800</bug_when>
    <thetext>Created attachment 273624
Refactor event-inside-slotted-node</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173368</commentid>
    <comment_count>2</comment_count>
      <attachid>273626</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-10 14:57:22 -0800</bug_when>
    <thetext>Created attachment 273626
Refactoring</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173371</commentid>
    <comment_count>3</comment_count>
      <attachid>273627</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-10 14:59:04 -0800</bug_when>
    <thetext>Created attachment 273627
Updated for ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173528</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-10 19:21:44 -0800</bug_when>
    <thetext>Not gonna do this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273624</attachid>
            <date>2016-03-10 14:55:09 -0800</date>
            <delta_ts>2016-03-10 14:57:18 -0800</delta_ts>
            <desc>Refactor event-inside-slotted-node</desc>
            <filename>bug-155327-20160310145456.patch</filename>
            <type>text/plain</type>
            <size>20445</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5Nzk1NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTAzLTEwICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEV4dHJhY3QgYSBoZWxwZXIgZnVuY3Rpb25zIG91
dCBvZiBldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTMyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3RlZCBzaGFkb3ctdHJlZS1oZWxwZXJz
LmpzIG91dCBvZiBldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLmh0bWwgZm9yIHRlc3RzIHRvIGJl
IGFkZGVkIGluIHdlYmtpdC5vcmcvYi8xNTM1MzguCisKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1k
b20vZXZlbnQtaW5zaWRlLXNsb3R0ZWQtbm9kZS5odG1sOgorICAgICAgICAqIGZhc3Qvc2hhZG93
LWRvbS9yZXNvdXJjZXM6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9yZXNvdXJj
ZXMvc2hhZG93LXRyZWUtaGVscGVycy5qczogQWRkZWQuCisgICAgICAgIChkaXNwYXRjaEV2ZW50
V2l0aExvZyk6CisgICAgICAgIChlbGVtZW50KToKKyAgICAgICAgKGF0dGFjaFNoYWRvdyk6Cisg
ICAgICAgIChjcmVhdGVTaGFkb3dIb3N0V2l0aEFzc2lnbmVkR3JhbmRDaGlsZCk6CisgICAgICAg
IChjcmVhdGVOZXN0ZWRTaGFkb3dUcmVlc1dpdGhTbG90cyk6CisgICAgICAgICogcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzOgorCiAyMDE2LTAzLTEwICBNeWxlcyBDLiBNYXhmaWVsZCAg
PG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW09TIFhdIE1haW4gZnJhbWUgc2Nyb2xs
YmFycyBzaG91bGQgYXBwZWFyIG9uIHRoZSBsZWZ0IG9uIFJUTCBzeXN0ZW1zCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZXZlbnQtaW5zaWRlLXNsb3R0ZWQtbm9kZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9ldmVudC1pbnNpZGUtc2xv
dHRlZC1ub2RlLmh0bWwJKHJldmlzaW9uIDE5Nzk1NSkKKysrIExheW91dFRlc3RzL2Zhc3Qvc2hh
ZG93LWRvbS9ldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTcsODMgKzcsMzIgQEAKICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdp
dGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvc2hhZG93LyNldmVudC1wYXRocyI+CiAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctdHJlZS1oZWxwZXJzLmpzIj48
L3NjcmlwdD4KICAgICA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5jc3MnPgogPC9oZWFkPgogPGJvZHk+CiAgICAgPGRpdiBpZD0ibG9nIj48
L2Rpdj4KICAgICA8c2NyaXB0PgogCi0gICAgICAgIGZ1bmN0aW9uIGRpc3BhdGNoRXZlbnRXaXRo
TG9nKHNoYWRvdywgZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBsb2cgPSBbXTsKLQotICAgICAg
ICAgICAgdmFyIGF0dGFjaGVkTm9kZXMgPSBbXTsKLSAgICAgICAgICAgIGZvciAodmFyIG5vZGVL
ZXkgaW4gc2hhZG93KSB7Ci0gICAgICAgICAgICAgICAgdmFyIHN0YXJ0aW5nTm9kZSA9IHNoYWRv
d1tub2RlS2V5XTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBub2RlID0gc3RhcnRpbmdOb2Rl
OyBub2RlOyBub2RlID0gbm9kZS5wYXJlbnROb2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChhdHRhY2hlZE5vZGVzLmluZGV4T2Yobm9kZSkgPj0gMCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZE5vZGVzLnB1c2gobm9k
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudC50eXBl
LCAoZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsb2cucHVzaChb
dGhpcywgZXZlbnQudGFyZ2V0XSk7Ci0gICAgICAgICAgICAgICAgICAgIH0pLmJpbmQobm9kZSkp
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2hhZG93
LnRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLQotICAgICAgICAgICAgcmV0dXJuIGxvZzsK
LSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGVsZW1lbnQobmFtZSwgY2hpbGRyZW4sIGNs
YXNzTmFtZSkgewotICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KG5hbWUpOwotICAgICAgICAgICAgaWYgKGNsYXNzTmFtZSkKLSAgICAgICAgICAgICAgICBl
bGVtZW50LmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsKLSAgICAgICAgICAgIGlmIChjaGlsZHJlbikg
ewotICAgICAgICAgICAgICAgIGZvciAodmFyIGNoaWxkIG9mIGNoaWxkcmVuKQotICAgICAgICAg
ICAgICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNoaWxkKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHJldHVybiBlbGVtZW50OwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24g
YXR0YWNoU2hhZG93KGhvc3QsIG1vZGUsIGNoaWxkcmVuKSB7Ci0gICAgICAgICAgICB2YXIgc2hh
ZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiBtb2RlfSk7Ci0gICAgICAgICAgICBp
ZiAoY2hpbGRyZW4pIHsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBjaGlsZCBvZiBjaGlsZHJl
bikKLSAgICAgICAgICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjaGlsZCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gc2hhZG93Um9vdDsKLSAgICAgICAgfQot
Ci0gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVNoYWRvd0hvc3RXaXRoQXNzaWduZWRHcmFuZENoaWxk
KG1vZGUpIHsKLSAgICAgICAgICAgIHZhciBob3N0ID0gZWxlbWVudCgnZGl2JywgWwotICAgICAg
ICAgICAgICAgIGVsZW1lbnQoJ2InLCBbCi0gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ2kn
KQotICAgICAgICAgICAgICAgIF0pCi0gICAgICAgICAgICBdKTsKLQotICAgICAgICAgICAgdmFy
IHJvb3QgPSBhdHRhY2hTaGFkb3coaG9zdCwgbW9kZSwgWwotICAgICAgICAgICAgICAgIGVsZW1l
bnQoJ3NwYW4nLCBbCi0gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3Nsb3QnKQotICAgICAg
ICAgICAgICAgIF0pCi0gICAgICAgICAgICBdKTsKLQotICAgICAgICAgICAgcmV0dXJuIHt0YXJn
ZXQ6IGhvc3QucXVlcnlTZWxlY3RvcignaScpLCB0YXJnZXRQYXJlbnQ6IGhvc3QucXVlcnlTZWxl
Y3RvcignYicpLCBob3N0OiBob3N0LAotICAgICAgICAgICAgICAgICAgICBzbG90OiByb290LnF1
ZXJ5U2VsZWN0b3IoJ3Nsb3QnKSwgc2xvdFBhcmVudDogcm9vdC5xdWVyeVNlbGVjdG9yKCdzcGFu
JyksIHJvb3Q6IHJvb3R9OwotICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgIGRpdiAoaG9z
dDsgNSkgLS0tLS0tLS0tLS0tLSAocm9vdDsgNCkKKyAgICAgICAgICsgYiAoaG9zdENoaWxkOyAx
KSAgICAgICAgICArIHNwYW4gKHNsb3RQYXJlbnQ7IDMpCisgICAgICAgICAgICsgaSAoaG9zdEdy
YW5kQ2hpbGQ7IDApICAgICArIHNsb3QgKHNsb3Q7IDIpCisgICAgICAgICovCiAKICAgICAgICAg
ZnVuY3Rpb24gdGVzdEV2ZW50SW5EZXRhY2hlZFNoYWRvd0hvc3REZXNjZW5kYW50KG1vZGUpIHsK
ICAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHZhciBzaGFk
b3cgPSBjcmVhdGVTaGFkb3dIb3N0V2l0aEFzc2lnbmVkR3JhbmRDaGlsZChtb2RlKTsKIAotICAg
ICAgICAgICAgICAgIGxvZyA9IGRpc3BhdGNoRXZlbnRXaXRoTG9nKHNoYWRvdywgbmV3IEV2ZW50
KCdmb28nLCB7YnViYmxlczogdHJ1ZX0pKTsKKyAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRj
aEV2ZW50V2l0aExvZyhzaGFkb3csIHNoYWRvdy5ob3N0R3JhbmRDaGlsZCwgbmV3IEV2ZW50KCdm
b28nLCB7YnViYmxlczogdHJ1ZX0pKTsKIAogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
bG9nLmxlbmd0aCwgNiwgJ0V2ZW50UGF0aCBtdXN0IGNvbnRhaW4gW3RhcmdldCwgdGFyZ2V0IHBh
cmVudCwgc2xvdCwgc2xvdCBwYXJlbnQsIHNoYWRvdyByb290LCBzaGFkb3cgaG9zdF0nKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1swXSwgW3NoYWRvdy50YXJnZXQs
IHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzBdIG11c3QgYmUgdGhlIHRhcmdldCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbc2hhZG93LnRhcmdldFBh
cmVudCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0aGUgcGFyZW50IG9m
IHRoZSB0YXJnZXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sw
XSwgW3NoYWRvdy5ob3N0R3JhbmRDaGlsZCwgc2hhZG93Lmhvc3RHcmFuZENoaWxkXSwgJ0V2ZW50
UGF0aFswXSBtdXN0IGJlIHRoZSB0YXJnZXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZ1sxXSwgW3NoYWRvdy5ob3N0Q2hpbGQsIHNoYWRvdy5ob3N0R3JhbmRDaGls
ZF0sICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgW3NoYWRvdy5zbG90LCBz
aGFkb3cuc2xvdF0sICdFdmVudFBhdGhbMl0gbXVzdCBiZSB0aGUgc2xvdCcpOwogICAgICAgICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbc2hhZG93LnNsb3RQYXJlbnQsIHNo
YWRvdy5zbG90XSwgJ0V2ZW50UGF0aFszXSBtdXN0IGJlIHRoZSBwYXJlbnQgb2YgdGhlIHNsb3Qn
KTsKICAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s0XSwgW3NoYWRvdy5y
b290LCBzaGFkb3cuc2xvdF0sICdFdmVudFBhdGhbNF0gbXVzdCBiZSB0aGUgc2hhZG93IHJvb3Qn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s1XSwgW3NoYWRvdy5o
b3N0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFs1XSBtdXN0IGJlIHRoZSBzaGFkb3cgaG9z
dCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzVdLCBbc2hhZG93
Lmhvc3QsIHNoYWRvdy5ob3N0R3JhbmRDaGlsZF0sICdFdmVudFBhdGhbNV0gbXVzdCBiZSB0aGUg
c2hhZG93IGhvc3QnKTsKIAogICAgICAgICAgICAgfSwgJ0ZpcmluZyBhbiBldmVudCBpbnNpZGUg
YSBncmFuZCBjaGlsZCBvZiBhIGRldGFjaGVkICcgKyBtb2RlICsgJyBtb2RlIHNoYWRvdyBob3N0
Jyk7CiAgICAgICAgIH0KQEAgLTk2LDE4ICs0NSwxOCBAQAogICAgICAgICAgICAgICAgIHZhciBz
aGFkb3cgPSBjcmVhdGVTaGFkb3dIb3N0V2l0aEFzc2lnbmVkR3JhbmRDaGlsZChtb2RlKTsKICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNoYWRvdy5ob3N0KTsKIAot
ICAgICAgICAgICAgICAgIGxvZyA9IGRpc3BhdGNoRXZlbnRXaXRoTG9nKHNoYWRvdywgbmV3IEV2
ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZX0pKTsKKyAgICAgICAgICAgICAgICBsb2cgPSBkaXNw
YXRjaEV2ZW50V2l0aExvZyhzaGFkb3csIHNoYWRvdy5ob3N0R3JhbmRDaGlsZCwgbmV3IEV2ZW50
KCdmb28nLCB7YnViYmxlczogdHJ1ZX0pKTsKIAogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobG9nLmxlbmd0aCwgOSwgJ0V2ZW50UGF0aCBtdXN0IGNvbnRhaW4gW3RhcmdldCwgdGFyZ2V0
IHBhcmVudCwgc2xvdCwgc2xvdCBwYXJlbnQsIHNoYWRvdyByb290LCBzaGFkb3cgaG9zdCwgYm9k
eSwgaHRtbCwgZG9jdW1lbnRdJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dbMF0sIFtzaGFkb3cudGFyZ2V0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFswXSBt
dXN0IGJlIHRoZSB0YXJnZXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZ1sxXSwgW3NoYWRvdy50YXJnZXRQYXJlbnQsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRo
WzFdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgdGFyZ2V0Jyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFtzaGFkb3cuaG9zdEdyYW5kQ2hpbGQsIHNoYWRv
dy5ob3N0R3JhbmRDaGlsZF0sICdFdmVudFBhdGhbMF0gbXVzdCBiZSB0aGUgdGFyZ2V0Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMV0sIFtzaGFkb3cuaG9zdENo
aWxkLCBzaGFkb3cuaG9zdEdyYW5kQ2hpbGRdLCAnRXZlbnRQYXRoWzFdIG11c3QgYmUgdGhlIHBh
cmVudCBvZiB0aGUgdGFyZ2V0Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dbMl0sIFtzaGFkb3cuc2xvdCwgc2hhZG93LnNsb3RdLCAnRXZlbnRQYXRoWzJdIG11c3Qg
YmUgdGhlIHNsb3QnKTsKICAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sz
XSwgW3NoYWRvdy5zbG90UGFyZW50LCBzaGFkb3cuc2xvdF0sICdFdmVudFBhdGhbM10gbXVzdCBi
ZSB0aGUgcGFyZW50IG9mIHRoZSBzbG90Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhsb2dbNF0sIFtzaGFkb3cucm9vdCwgc2hhZG93LnNsb3RdLCAnRXZlbnRQYXRoWzRd
IG11c3QgYmUgdGhlIHNoYWRvdyByb290Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhsb2dbNV0sIFtzaGFkb3cuaG9zdCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhb
NV0gbXVzdCBiZSB0aGUgc2hhZG93IGhvc3QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZ1s2XSwgW2RvY3VtZW50LmJvZHksIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQ
YXRoWzZdIG11c3QgYmUgdGhlIGJvZHkgZWxlbWVudCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobG9nWzddLCBbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBzaGFkb3cu
dGFyZ2V0XSwgJ0V2ZW50UGF0aFs3XSBtdXN0IGJlIHRoZSBodG1sIGVsZW1lbnQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s4XSwgW2RvY3VtZW50LCBzaGFkb3cu
dGFyZ2V0XSwgJ0V2ZW50UGF0aFs4XSBtdXN0IGJlIHRoZSBodG1sIGVsZW1lbnQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s1XSwgW3NoYWRvdy5ob3N0LCBzaGFk
b3cuaG9zdEdyYW5kQ2hpbGRdLCAnRXZlbnRQYXRoWzVdIG11c3QgYmUgdGhlIHNoYWRvdyBob3N0
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNl0sIFtkb2N1bWVu
dC5ib2R5LCBzaGFkb3cuaG9zdEdyYW5kQ2hpbGRdLCAnRXZlbnRQYXRoWzZdIG11c3QgYmUgdGhl
IGJvZHkgZWxlbWVudCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
WzddLCBbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBzaGFkb3cuaG9zdEdyYW5kQ2hpbGRdLCAn
RXZlbnRQYXRoWzddIG11c3QgYmUgdGhlIGh0bWwgZWxlbWVudCcpOworICAgICAgICAgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzhdLCBbZG9jdW1lbnQsIHNoYWRvdy5ob3N0R3JhbmRD
aGlsZF0sICdFdmVudFBhdGhbOF0gbXVzdCBiZSB0aGUgaHRtbCBlbGVtZW50Jyk7CiAKICAgICAg
ICAgICAgIH0sICdGaXJpbmcgYW4gZXZlbnQgaW5zaWRlIGEgZ3JhbmQgY2hpbGQgb2YgYW4gaW4t
ZG9jdW1lbnQgJyArIG1vZGUgKyAnIG1vZGUgc2hhZG93IGhvc3QnKTsKICAgICAgICAgfQpAQCAt
MTE1LDcwICs2NCwyNiBAQAogICAgICAgICB0ZXN0RXZlbnRJblNoYWRvd0hvc3REZXNjZW5kYW50
SW5zaWRlRG9jdW1lbnQoJ29wZW4nKTsKICAgICAgICAgdGVzdEV2ZW50SW5TaGFkb3dIb3N0RGVz
Y2VuZGFudEluc2lkZURvY3VtZW50KCdjbG9zZWQnKTsKIAotICAgICAgICBmdW5jdGlvbiBjcmVh
dGVOZXN0ZWRTaGFkb3dUcmVlc1dpdGhTbG90cyhpbm5lck1vZGUsIG91dGVyVXBwZXJNb2RlLCBv
dXRlckxvd2VyTW9kZSkgewotICAgICAgICAgICAgdmFyIHVwcGVySG9zdCA9IGVsZW1lbnQoJ3Vw
cGVyLWhvc3QnLCBbCi0gICAgICAgICAgICAgICAgZWxlbWVudCgncCcsIFsKLSAgICAgICAgICAg
ICAgICAgICAgZWxlbWVudCgnbG93ZXItaG9zdCcsIFsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGVsZW1lbnQoJ2EnKQotICAgICAgICAgICAgICAgICAgICBdKQotICAgICAgICAgICAgICAgIF0p
Ci0gICAgICAgICAgICBdKTsKLQotICAgICAgICAgICAgdmFyIHVwcGVyU2hhZG93ID0gYXR0YWNo
U2hhZG93KHVwcGVySG9zdCwgb3V0ZXJVcHBlck1vZGUsIFsKLSAgICAgICAgICAgICAgICBlbGVt
ZW50KCdiJywgWwotICAgICAgICAgICAgICAgICAgICBlbGVtZW50KCdzbG90JywgW10sICd1cHBl
ci1zbG90JykKLSAgICAgICAgICAgICAgICBdKQotICAgICAgICAgICAgXSk7Ci0KLSAgICAgICAg
ICAgIHZhciBsb3dlckhvc3QgPSB1cHBlckhvc3QucXVlcnlTZWxlY3RvcignbG93ZXItaG9zdCcp
OwotICAgICAgICAgICAgdmFyIGxvd2VyU2hhZG93ID0gYXR0YWNoU2hhZG93KGxvd2VySG9zdCwg
b3V0ZXJMb3dlck1vZGUsIFsKLSAgICAgICAgICAgICAgICBlbGVtZW50KCdlbScsIFsKLSAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudCgnaW5uZXItaG9zdCcsIFsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGVsZW1lbnQoJ3NwYW4nLCBbCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxl
bWVudCgnc2xvdCcsIFtdLCAnbG93ZXItc2xvdCcpCi0gICAgICAgICAgICAgICAgICAgICAgICBd
KQotICAgICAgICAgICAgICAgICAgICBdKQotICAgICAgICAgICAgICAgIF0pCi0gICAgICAgICAg
ICBdKTsKLQotICAgICAgICAgICAgaW5uZXJTaGFkb3cgPSBhdHRhY2hTaGFkb3cobG93ZXJTaGFk
b3cucXVlcnlTZWxlY3RvcignaW5uZXItaG9zdCcpLCBpbm5lck1vZGUsIFsKLSAgICAgICAgICAg
ICAgICBlbGVtZW50KCdpJywgWwotICAgICAgICAgICAgICAgICAgICBlbGVtZW50KCdzbG90Jywg
W10sICdpbm5lci1zbG90JykKLSAgICAgICAgICAgICAgICBdKQotICAgICAgICAgICAgXSk7Ci0K
LSAgICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAgICAgaG9zdDogdXBwZXJIb3N0LAot
ICAgICAgICAgICAgICAgIHRhcmdldDogdXBwZXJIb3N0LnF1ZXJ5U2VsZWN0b3IoJ2EnKSwKLSAg
ICAgICAgICAgICAgICB1cHBlclNoYWRvdzogdXBwZXJTaGFkb3csCi0gICAgICAgICAgICAgICAg
dXBwZXJTbG90OiB1cHBlclNoYWRvdy5xdWVyeVNlbGVjdG9yKCdzbG90JyksCi0gICAgICAgICAg
ICAgICAgbG93ZXJTaGFkb3c6IGxvd2VyU2hhZG93LAotICAgICAgICAgICAgICAgIGxvd2VyU2xv
dDogbG93ZXJTaGFkb3cucXVlcnlTZWxlY3Rvcignc2xvdCcpLAotICAgICAgICAgICAgICAgIGlu
bmVyU2hhZG93OiBpbm5lclNoYWRvdywKLSAgICAgICAgICAgICAgICBpbm5lclNsb3Q6IGlubmVy
U2hhZG93LnF1ZXJ5U2VsZWN0b3IoJ3Nsb3QnKSwKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH0K
LQogICAgICAgICAvKgogICAgICAgICB1cHBlci1ob3N0ICgxNCkgLS0gKHVwcGVyU2hhZG93OyAx
MykKICAgICAgICAgICsgcCAoMTApICAgICAgICAgICsgYiAoMTIpCiAgICAgICAgICAgfCAgICAg
ICAgICAgICAgICAgICsgc2xvdCAodXBwZXJTbG90OyAxMSkKLSAgICAgICAgICArIGxvd2VyLWhv
c3QgKDkpIC0tIChsb3dlclNoYWRvdzsgOCkKLSAgICAgICAgICAgICsgYSAodGFyZ2V0OyAwKSAg
ICsgZW0gKDcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgaW5uZXItaG9zdCAo
NikgLS0tLS0tLS0gKGlubmVyU2hhZG93OyA1KQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICsgc3BhbiAoMikgICAgICAgICAgICAgICsgaSAoNCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICsgc2xvdCAobG93ZXJTbG90OyAxKSArIHNsb3QgKGlubmVyU2xv
dDsgMykKKyAgICAgICAgICArIGxvd2VyLWhvc3QgKDkpIC0tLS0tLSAobG93ZXJTaGFkb3c7IDgp
CisgICAgICAgICAgICArIGEgKGxvd2VyQ2hpbGQ7IDApICAgKyBlbSAoNykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICsgaW5uZXItaG9zdCAoNikgLS0tLS0tLS0gKGlubmVy
U2hhZG93OyA1KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNwYW4g
KDIpICAgICAgICAgICAgICArIGkgKDQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKyBzbG90IChsb3dlclNsb3Q7IDEpICsgc2xvdCAoaW5uZXJTbG90OyAzKQogICAg
ICAgICAqLwogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RFdmVudFVuZGVyVHdvU2hhZG93Um9vdHMo
b3V0ZXJVcHBlck1vZGUsIG91dGVyTG93ZXJNb2RlLCBpbm5lck1vZGUpIHsKICAgICAgICAgICAg
IHRlc3QoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHZhciBzaGFkb3cgPSBjcmVhdGVO
ZXN0ZWRTaGFkb3dUcmVlc1dpdGhTbG90cyhpbm5lck1vZGUsIG91dGVyVXBwZXJNb2RlLCBvdXRl
ckxvd2VyTW9kZSk7CiAKLSAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExv
ZyhzaGFkb3csIG5ldyBFdmVudCgnZm9vJywge2J1YmJsZXM6IHRydWV9KSk7CisgICAgICAgICAg
ICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2coc2hhZG93LCBzaGFkb3cubG93ZXJDaGls
ZCwgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZX0pKTsKIAogICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwgMTUsICdFdmVudFBhdGggbXVzdCBjb250YWluIDE1
IHRhcmdldHMnKTsKIAotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBd
LCBbc2hhZG93LnRhcmdldCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMF0gbXVzdCBiZSB0
aGUgdGFyZ2V0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0s
IFtzaGFkb3cubG93ZXJDaGlsZCwgc2hhZG93Lmxvd2VyQ2hpbGRdLCAnRXZlbnRQYXRoWzBdIG11
c3QgYmUgdGhlIHRhcmdldCcpOwogICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nWzFdLCBbc2hhZG93Lmxvd2VyU2xvdCwgc2hhZG93Lmxvd2VyU2xvdF0sICdFdmVudFBhdGhb
MV0gbXVzdCBiZSB0aGUgc2xvdCBpbnNpZGUgdGhlIGxvd2VyIHNoYWRvdyB0cmVlJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMl0sIFtzaGFkb3cubG93ZXJTbG90
LnBhcmVudE5vZGUsIHNoYWRvdy5sb3dlclNsb3RdLCAnRXZlbnRQYXRoWzJdIG11c3QgYmUgdGhl
IHBhcmVudCBvZiB0aGUgc2xvdCBpbnNpZGUgdGhlIGxvd2VyIHNoYWRvdyB0cmVlJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbM10sIFtzaGFkb3cuaW5uZXJTbG90
LCBzaGFkb3cuaW5uZXJTbG90XSwgJ0V2ZW50UGF0aFszXSBtdXN0IGJlIHRoZSBzbG90IGluc2lk
ZSB0aGUgc2hhZG93IHRyZWUgaW5zaWRlIHRoZSBsb3dlciBzaGFkb3cgdHJlZScpOwpAQCAtMTg3
LDEyICs5MiwxMiBAQAogICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzZd
LCBbc2hhZG93LmlubmVyU2hhZG93Lmhvc3QsIHNoYWRvdy5sb3dlclNsb3RdLCAnRXZlbnRQYXRo
WzZdIG11c3QgYmUgdGhlIGhvc3Qgb2YgdGhlIGlubmVyIHNoYWRvdyB0cmVlJyk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbN10sIFtzaGFkb3cubG93ZXJTaGFkb3cu
Zmlyc3RDaGlsZCwgc2hhZG93Lmxvd2VyU2xvdF0sICdFdmVudFBhdGhbN10gbXVzdCBiZSB0aGUg
cGFyZW50IG9mIHRoZSBpbm5lciBzaGFkb3cgaG9zdCcpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobG9nWzhdLCBbc2hhZG93Lmxvd2VyU2hhZG93LCBzaGFkb3cubG93ZXJT
bG90XSwgJ0V2ZW50UGF0aFs4XSBtdXN0IGJlIHRoZSBsb3dlciBzaGFkb3cgcm9vdCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzldLCBbc2hhZG93Lmxvd2VyU2hh
ZG93Lmhvc3QsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzldIG11c3QgYmUgdGhlIGxvd2Vy
IHNoYWRvdyBob3N0Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
MTBdLCBbc2hhZG93Lmhvc3QuZmlyc3RDaGlsZCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhb
MTBdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgZ3JhbmQgcGFyZW50IG9mIHRoZSB0YXJnZXQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s5XSwgW3NoYWRvdy5s
b3dlclNoYWRvdy5ob3N0LCBzaGFkb3cubG93ZXJDaGlsZF0sICdFdmVudFBhdGhbOV0gbXVzdCBi
ZSB0aGUgbG93ZXIgc2hhZG93IGhvc3QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZ1sxMF0sIFtzaGFkb3cuaG9zdC5maXJzdENoaWxkLCBzaGFkb3cubG93ZXJDaGls
ZF0sICdFdmVudFBhdGhbMTBdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgZ3JhbmQgcGFyZW50
IG9mIHRoZSB0YXJnZXQnKTsKICAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxv
Z1sxMV0sIFtzaGFkb3cudXBwZXJTbG90LCBzaGFkb3cudXBwZXJTbG90XSwgJ0V2ZW50UGF0aFsx
MV0gbXVzdCBiZSB0aGUgc2xvdCBpbnNpZGUgdGhlIHVwcGVyIHNoYWRvdyB0cmVlJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMTJdLCBbc2hhZG93LnVwcGVyU2xv
dC5wYXJlbnROb2RlLCBzaGFkb3cudXBwZXJTbG90XSwgJ0V2ZW50UGF0aFsxMl0gbXVzdCBiZSB0
aGUgcGFyZW50IG9mIHRoZSBzbG90IGluc2lkZSB0aGUgdXBwZXIgc2hhZG93IHRyZWUnKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxM10sIFtzaGFkb3cudXBwZXJT
aGFkb3csIHNoYWRvdy51cHBlclNsb3RdLCAnRXZlbnRQYXRoWzEzXSBtdXN0IGJlIHRoZSB1cHBl
ciBzaGFkb3cgcm9vdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
WzE0XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFsxNF0gbXVzdCBi
ZSB0aGUgaG9zdCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzE0
XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cubG93ZXJDaGlsZF0sICdFdmVudFBhdGhbMTRdIG11c3Qg
YmUgdGhlIGhvc3QnKTsKIAogICAgICAgICAgICAgfSwgJ0ZpcmluZyBhbiBldmVudCBvbiBhIG5v
ZGUgd2l0aCB0d28gYW5jZXN0b3JzIHdpdGggYSBkZXRhY2hlZCAnICsgb3V0ZXJVcHBlck1vZGUg
KyAnIGFuZCAnICsgb3V0ZXJMb3dlck1vZGUKICAgICAgICAgICAgICAgICArICcgc2hhZG93IHRy
ZWVzIHdpdGggYW4gaW5uZXIgJyArIGlubmVyTW9kZSArICcgc2hhZG93IHRyZWUnKTsKQEAgLTIy
MSwxNiArMTI2LDE0IEBACiAgICAgICAgIGZ1bmN0aW9uIHRlc3RFdmVudEluc2lkZU5lc3RlZFNo
YWRvd3NVbmRlckFub3RoZXJTaGFkb3cob3V0ZXJVcHBlck1vZGUsIG91dGVyTG93ZXJNb2RlLCBp
bm5lck1vZGUpIHsKICAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgIHZhciBzaGFkb3cgPSBjcmVhdGVOZXN0ZWRTaGFkb3dUcmVlc1dpdGhTbG90cyhpbm5lck1v
ZGUsIG91dGVyVXBwZXJNb2RlLCBvdXRlckxvd2VyTW9kZSk7Ci0gICAgICAgICAgICAgICAgc2hh
ZG93LmRlZXBlc3ROb2RlSW5MaWdodERPTSA9IHNoYWRvdy50YXJnZXQ7IC8vIE5lZWRlZCBmb3Ig
ZGlzcGF0Y2hFdmVudFdpdGhMb2cgdG8gYXR0YWNoIGV2ZW50IGxpc3RlbmVycy4gCi0gICAgICAg
ICAgICAgICAgc2hhZG93LnRhcmdldCA9IHNoYWRvdy5pbm5lclNsb3Q7CiAKLSAgICAgICAgICAg
ICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhzaGFkb3csIG5ldyBFdmVudCgnZm9vJywg
e2J1YmJsZXM6IHRydWV9KSk7CisgICAgICAgICAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdp
dGhMb2coc2hhZG93LCBzaGFkb3cuaW5uZXJTbG90LCBuZXcgRXZlbnQoJ2ZvbycsIHtidWJibGVz
OiB0cnVlfSkpOwogCiAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCAx
MiwgJ0V2ZW50UGF0aCBtdXN0IGNvbnRhaW4gMTIgdGFyZ2V0cycpOwogCi0gICAgICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFtzaGFkb3cudGFyZ2V0LCBzaGFkb3cudGFy
Z2V0XSwgJ0V2ZW50UGF0aFswXSBtdXN0IGJlIHRoZSB0YXJnZXQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgW3NoYWRvdy50YXJnZXQucGFyZW50Tm9kZSwg
c2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSB0
YXJnZXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgW3No
YWRvdy5pbm5lclNoYWRvdywgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMl0gbXVzdCBiZSB0
aGUgaW5uZXIgc2hhZG93IHJvb3QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZ1swXSwgW3NoYWRvdy5pbm5lclNsb3QsIHNoYWRvdy5pbm5lclNsb3RdLCAnRXZlbnRQ
YXRoWzBdIG11c3QgYmUgdGhlIHRhcmdldCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMobG9nWzFdLCBbc2hhZG93LmlubmVyU2xvdC5wYXJlbnROb2RlLCBzaGFkb3cuaW5u
ZXJTbG90XSwgJ0V2ZW50UGF0aFsxXSBtdXN0IGJlIHRoZSBwYXJlbnQgb2YgdGhlIHRhcmdldCcp
OworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzJdLCBbc2hhZG93Lmlu
bmVyU2hhZG93LCBzaGFkb3cuaW5uZXJTbG90XSwgJ0V2ZW50UGF0aFsyXSBtdXN0IGJlIHRoZSBp
bm5lciBzaGFkb3cgcm9vdCcpOwogICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nWzNdLCBbc2hhZG93LmlubmVyU2hhZG93Lmhvc3QsIHNoYWRvdy5pbm5lclNoYWRvdy5ob3N0
XSwgJ0V2ZW50UGF0aFszXSBtdXN0IGJlIHRoZSBpbm5lciBzaGFkb3cgaG9zdCcpOwogICAgICAg
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbc2hhZG93Lmxvd2VyU2hhZG93
LmZpcnN0Q2hpbGQsIHNoYWRvdy5pbm5lclNoYWRvdy5ob3N0XSwgJ0V2ZW50UGF0aFs0XSBtdXN0
IGJlIHRoZSBwYXJlbnQgb2YgdGhlIGlubmVyIHNoYWRvdyBob3N0Jyk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNV0sIFtzaGFkb3cubG93ZXJTaGFkb3csIHNoYWRv
dy5pbm5lclNoYWRvdy5ob3N0XSwgJ0V2ZW50UGF0aFs1XSBtdXN0IGJlIHRoZSBsb3dlciAoYnV0
IG91dGVyKSBzaGFkb3cgcm9vdCcpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9t
L3Jlc291cmNlcy9zaGFkb3ctdHJlZS1oZWxwZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3Qvc2hhZG93LWRvbS9yZXNvdXJjZXMvc2hhZG93LXRyZWUtaGVscGVycy5qcwkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9yZXNvdXJjZXMvc2hhZG93
LXRyZWUtaGVscGVycy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyNiBAQAorCitmdW5j
dGlvbiBkaXNwYXRjaEV2ZW50V2l0aExvZyhzaGFkb3csIHRhcmdldCwgZXZlbnQpIHsKKyAgICB2
YXIgbG9nID0gW107CisKKyAgICB2YXIgYXR0YWNoZWROb2RlcyA9IFtdOworICAgIGZvciAodmFy
IG5vZGVLZXkgaW4gc2hhZG93KSB7CisgICAgICAgIHZhciBzdGFydGluZ05vZGUgPSBzaGFkb3db
bm9kZUtleV07CisgICAgICAgIGZvciAodmFyIG5vZGUgPSBzdGFydGluZ05vZGU7IG5vZGU7IG5v
ZGUgPSBub2RlLnBhcmVudE5vZGUpIHsKKyAgICAgICAgICAgIGlmIChhdHRhY2hlZE5vZGVzLmlu
ZGV4T2Yobm9kZSkgPj0gMCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
IGF0dGFjaGVkTm9kZXMucHVzaChub2RlKTsKKyAgICAgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0
ZW5lcihldmVudC50eXBlLCAoZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgbG9n
LnB1c2goW3RoaXMsIGV2ZW50LnRhcmdldF0pOworICAgICAgICAgICAgfSkuYmluZChub2RlKSk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7CisK
KyAgICByZXR1cm4gbG9nOworfQorCitmdW5jdGlvbiBlbGVtZW50KG5hbWUsIGNoaWxkcmVuLCBj
bGFzc05hbWUpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFt
ZSk7CisgICAgaWYgKGNsYXNzTmFtZSkKKyAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSBjbGFz
c05hbWU7CisgICAgaWYgKGNoaWxkcmVuKSB7CisgICAgICAgIGZvciAodmFyIGNoaWxkIG9mIGNo
aWxkcmVuKQorICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjaGlsZCk7CisgICAgfQor
ICAgIHJldHVybiBlbGVtZW50OworfQorCitmdW5jdGlvbiBhdHRhY2hTaGFkb3coaG9zdCwgbW9k
ZSwgY2hpbGRyZW4pIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHtt
b2RlOiBtb2RlfSk7CisgICAgaWYgKGNoaWxkcmVuKSB7CisgICAgICAgIGZvciAodmFyIGNoaWxk
IG9mIGNoaWxkcmVuKQorICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjaGlsZCk7
CisgICAgfQorICAgIHJldHVybiBzaGFkb3dSb290OworfQorCitmdW5jdGlvbiBjcmVhdGVTaGFk
b3dIb3N0V2l0aEFzc2lnbmVkR3JhbmRDaGlsZChtb2RlKSB7CisgICAgdmFyIGhvc3QgPSBlbGVt
ZW50KCdkaXYnLCBbCisgICAgICAgIGVsZW1lbnQoJ2InLCBbCisgICAgICAgICAgICBlbGVtZW50
KCdpJykKKyAgICAgICAgXSkKKyAgICBdKTsKKworICAgIHZhciByb290ID0gYXR0YWNoU2hhZG93
KGhvc3QsIG1vZGUsIFsKKyAgICAgICAgZWxlbWVudCgnc3BhbicsIFsKKyAgICAgICAgICAgIGVs
ZW1lbnQoJ3Nsb3QnKQorICAgICAgICBdKQorICAgIF0pOworCisgICAgcmV0dXJuIHsKKyAgICAg
ICAgaG9zdDogaG9zdCwKKyAgICAgICAgaG9zdENoaWxkOiBob3N0LnF1ZXJ5U2VsZWN0b3IoJ2In
KSwKKyAgICAgICAgaG9zdEdyYW5kQ2hpbGQ6IGhvc3QucXVlcnlTZWxlY3RvcignaScpLAorICAg
ICAgICBzbG90OiByb290LnF1ZXJ5U2VsZWN0b3IoJ3Nsb3QnKSwKKyAgICAgICAgc2xvdFBhcmVu
dDogcm9vdC5xdWVyeVNlbGVjdG9yKCdzcGFuJyksCisgICAgICAgIHJvb3Q6IHJvb3QKKyAgICB9
OworfQorCisvKgorZGl2IChob3N0KSAtLS0tLS0tLS0tLS0tIChyb290KQorICsgYiAoaG9zdENo
aWxkKSAgICAgICAgICArIHNwYW4gKHNsb3RQYXJlbnQpCisgICArIGkgKGhvc3RHcmFuZENoaWxk
KSAgICAgKyBzbG90IChzbG90KQorKi8KKworZnVuY3Rpb24gY3JlYXRlTmVzdGVkU2hhZG93VHJl
ZXNXaXRoU2xvdHMoaW5uZXJNb2RlLCBvdXRlclVwcGVyTW9kZSwgb3V0ZXJMb3dlck1vZGUpIHsK
KyAgICB2YXIgdXBwZXJIb3N0ID0gZWxlbWVudCgndXBwZXItaG9zdCcsIFsKKyAgICAgICAgZWxl
bWVudCgncCcsIFsKKyAgICAgICAgICAgIGVsZW1lbnQoJ2xvd2VyLWhvc3QnLCBbCisgICAgICAg
ICAgICAgICAgZWxlbWVudCgnYScpCisgICAgICAgICAgICBdKQorICAgICAgICBdKQorICAgIF0p
OworCisgICAgdmFyIHVwcGVyU2hhZG93ID0gYXR0YWNoU2hhZG93KHVwcGVySG9zdCwgb3V0ZXJV
cHBlck1vZGUsIFsKKyAgICAgICAgZWxlbWVudCgnYicsIFsKKyAgICAgICAgICAgIGVsZW1lbnQo
J3Nsb3QnLCBbXSwgJ3VwcGVyLXNsb3QnKQorICAgICAgICBdKQorICAgIF0pOworCisgICAgdmFy
IGxvd2VySG9zdCA9IHVwcGVySG9zdC5xdWVyeVNlbGVjdG9yKCdsb3dlci1ob3N0Jyk7CisgICAg
dmFyIGxvd2VyU2hhZG93ID0gYXR0YWNoU2hhZG93KGxvd2VySG9zdCwgb3V0ZXJMb3dlck1vZGUs
IFsKKyAgICAgICAgZWxlbWVudCgnZW0nLCBbCisgICAgICAgICAgICBlbGVtZW50KCdpbm5lci1o
b3N0JywgWworICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3NwYW4nLCBbCisgICAgICAgICAgICAg
ICAgICAgIGVsZW1lbnQoJ3Nsb3QnLCBbXSwgJ2xvd2VyLXNsb3QnKQorICAgICAgICAgICAgICAg
IF0pCisgICAgICAgICAgICBdKQorICAgICAgICBdKQorICAgIF0pOworCisgICAgaW5uZXJTaGFk
b3cgPSBhdHRhY2hTaGFkb3cobG93ZXJTaGFkb3cucXVlcnlTZWxlY3RvcignaW5uZXItaG9zdCcp
LCBpbm5lck1vZGUsIFsKKyAgICAgICAgZWxlbWVudCgnaScsIFsKKyAgICAgICAgICAgIGVsZW1l
bnQoJ3Nsb3QnLCBbXSwgJ2lubmVyLXNsb3QnKQorICAgICAgICBdKQorICAgIF0pOworCisgICAg
cmV0dXJuIHsKKyAgICAgICAgaG9zdDogdXBwZXJIb3N0LAorICAgICAgICBsb3dlckNoaWxkOiB1
cHBlckhvc3QucXVlcnlTZWxlY3RvcignYScpLAorICAgICAgICB1cHBlclNoYWRvdzogdXBwZXJT
aGFkb3csCisgICAgICAgIHVwcGVyU2xvdDogdXBwZXJTaGFkb3cucXVlcnlTZWxlY3Rvcignc2xv
dCcpLAorICAgICAgICBsb3dlclNoYWRvdzogbG93ZXJTaGFkb3csCisgICAgICAgIGxvd2VyU2xv
dDogbG93ZXJTaGFkb3cucXVlcnlTZWxlY3Rvcignc2xvdCcpLAorICAgICAgICBpbm5lclNoYWRv
dzogaW5uZXJTaGFkb3csCisgICAgICAgIGlubmVyU2xvdDogaW5uZXJTaGFkb3cucXVlcnlTZWxl
Y3Rvcignc2xvdCcpLAorICAgIH07Cit9CisKKy8qCit1cHBlci1ob3N0IC0tICh1cHBlclNoYWRv
dykKKyArIHAgICAgICAgICAgICsgYgorICAgfCAgICAgICAgICAgICArIHNsb3QgKHVwcGVyU2xv
dCkKKyAgIHwKKyAgICsgbG93ZXItaG9zdCAtLS0tLS0gKGxvd2VyU2hhZG93KQorICAgICArIGEg
KGxvd2VyQ2hpbGQpICAgKyBlbQorICAgICAgICAgICAgICAgICAgICAgICAgICArIGlubmVyLWhv
c3QgLS0tLS0tLS0tLS0tIChpbm5lclNoYWRvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICArIHNwYW4gICAgICAgICAgICAgICAgICAgKyBpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICArIHNsb3QgKGxvd2VyU2xvdCkgICAgICsgc2xvdCAoaW5uZXJTbG90KQorKi8KSW5kZXg6
IExheW91dFRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMJKHJldmlzaW9uIDE5
Nzk1NSkKKysrIExheW91dFRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcwkod29y
a2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBmdW5jdGlvbiBjb252ZXJ0UmVzdWx0KHJlc3Vs
dFN0YXR1cyl7DQogKiAgc3BhY2luZyBiZXR3ZWVuIGNlbGxzIGlzIHByZXNlcnZlZCwgYW5kIGl0
IGlzIHRoZXJlZm9yZSBub3QgcmVhZGFibGUuIEJ5DQogKiAgc2V0dGluZyBvdXRwdXQgdG8gZmFs
c2UsIHRoZSBIVE1MIHRhYmxlIHdpbGwgbm90IGJlIGNyZWF0ZWQNCiAqLw0KLXNldHVwKHsib3V0
cHV0IjogZmFsc2UsICJleHBsaWNpdF90aW1lb3V0IjogISF0ZXN0UnVubmVyfSk7DQorc2V0dXAo
eyJvdXRwdXQiOiBmYWxzZSwgImV4cGxpY2l0X3RpbWVvdXQiOiAhIXNlbGYudGVzdFJ1bm5lcn0p
Ow0KIA0KIC8qICBVc2luZyBhIGNhbGxiYWNrIGZ1bmN0aW9uLCB0ZXN0IHJlc3VsdHMgd2lsbCBi
ZSBhZGRlZCB0byB0aGUgcGFnZSBpbiBhIA0KICogICBtYW5uZXIgdGhhdCBhbGxvd3MgZHVtcEFz
VGV4dCB0byBwcm9kdWNlIHJlYWRhYmxlIHRlc3QgcmVzdWx0cw0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273626</attachid>
            <date>2016-03-10 14:57:22 -0800</date>
            <delta_ts>2016-03-10 14:59:02 -0800</delta_ts>
            <desc>Refactoring</desc>
            <filename>bug-155327-20160310145709.patch</filename>
            <type>text/plain</type>
            <size>20532</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5Nzk1NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTAzLTEwICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEV4dHJhY3QgYSBoZWxwZXIgZnVuY3Rpb25zIG91
dCBvZiBldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTMyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3RlZCBzaGFkb3ctdHJlZS1oZWxwZXJz
LmpzIG91dCBvZiBldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLmh0bWwgZm9yIHRlc3RzIHRvIGJl
IGFkZGVkIGluIHdlYmtpdC5vcmcvYi8xNTM1MzguCisKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1k
b20vZXZlbnQtaW5zaWRlLXNsb3R0ZWQtbm9kZS5odG1sOgorICAgICAgICAqIGZhc3Qvc2hhZG93
LWRvbS9yZXNvdXJjZXM6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9yZXNvdXJj
ZXMvc2hhZG93LXRyZWUtaGVscGVycy5qczogQWRkZWQuCisgICAgICAgIChkaXNwYXRjaEV2ZW50
V2l0aExvZyk6CisgICAgICAgIChlbGVtZW50KToKKyAgICAgICAgKGF0dGFjaFNoYWRvdyk6Cisg
ICAgICAgIChjcmVhdGVTaGFkb3dIb3N0V2l0aEFzc2lnbmVkR3JhbmRDaGlsZCk6CisgICAgICAg
IChjcmVhdGVOZXN0ZWRTaGFkb3dUcmVlc1dpdGhTbG90cyk6CisgICAgICAgICogcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzOiBGaXhlZCB0aGUgYnV0IHRoYXQgYSBSZWZlcmVuY2VFcnJv
ciB3aWxsIGJlIHRocm93biB3aGVuIHRlc3RzIGFyZSBvcGVuZWQgaW4gYSBicm93c2VyLgorCiAy
MDE2LTAzLTEwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW09TIFhdIE1haW4gZnJhbWUgc2Nyb2xsYmFycyBzaG91bGQgYXBwZWFyIG9uIHRoZSBs
ZWZ0IG9uIFJUTCBzeXN0ZW1zCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZXZl
bnQtaW5zaWRlLXNsb3R0ZWQtbm9kZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9ldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLmh0bWwJKHJldmlzaW9uIDE5
Nzk1NSkKKysrIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9ldmVudC1pbnNpZGUtc2xvdHRl
ZC1ub2RlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsODMgKzcsMzIgQEAKICAgICA8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMv
c2hhZG93LyNldmVudC1wYXRocyI+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFkb3ctdHJlZS1oZWxwZXJzLmpzIj48L3NjcmlwdD4KICAgICA8bGluayByZWw9J3N0
eWxlc2hlZXQnIGhyZWY9Jy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgogPC9oZWFk
PgogPGJvZHk+CiAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KICAgICA8c2NyaXB0PgogCi0gICAg
ICAgIGZ1bmN0aW9uIGRpc3BhdGNoRXZlbnRXaXRoTG9nKHNoYWRvdywgZXZlbnQpIHsKLSAgICAg
ICAgICAgIHZhciBsb2cgPSBbXTsKLQotICAgICAgICAgICAgdmFyIGF0dGFjaGVkTm9kZXMgPSBb
XTsKLSAgICAgICAgICAgIGZvciAodmFyIG5vZGVLZXkgaW4gc2hhZG93KSB7Ci0gICAgICAgICAg
ICAgICAgdmFyIHN0YXJ0aW5nTm9kZSA9IHNoYWRvd1tub2RlS2V5XTsKLSAgICAgICAgICAgICAg
ICBmb3IgKHZhciBub2RlID0gc3RhcnRpbmdOb2RlOyBub2RlOyBub2RlID0gbm9kZS5wYXJlbnRO
b2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhdHRhY2hlZE5vZGVzLmluZGV4T2Yobm9k
ZSkgPj0gMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
ICAgICAgICBhdHRhY2hlZE5vZGVzLnB1c2gobm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgIG5v
ZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudC50eXBlLCAoZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBsb2cucHVzaChbdGhpcywgZXZlbnQudGFyZ2V0XSk7Ci0gICAg
ICAgICAgICAgICAgICAgIH0pLmJpbmQobm9kZSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgc2hhZG93LnRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50
KTsKLQotICAgICAgICAgICAgcmV0dXJuIGxvZzsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0
aW9uIGVsZW1lbnQobmFtZSwgY2hpbGRyZW4sIGNsYXNzTmFtZSkgewotICAgICAgICAgICAgdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG5hbWUpOwotICAgICAgICAgICAgaWYg
KGNsYXNzTmFtZSkKLSAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGNsYXNzTmFt
ZTsKLSAgICAgICAgICAgIGlmIChjaGlsZHJlbikgewotICAgICAgICAgICAgICAgIGZvciAodmFy
IGNoaWxkIG9mIGNoaWxkcmVuKQotICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZENo
aWxkKGNoaWxkKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBlbGVtZW50Owot
ICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gYXR0YWNoU2hhZG93KGhvc3QsIG1vZGUsIGNo
aWxkcmVuKSB7Ci0gICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93
KHttb2RlOiBtb2RlfSk7Ci0gICAgICAgICAgICBpZiAoY2hpbGRyZW4pIHsKLSAgICAgICAgICAg
ICAgICBmb3IgKHZhciBjaGlsZCBvZiBjaGlsZHJlbikKLSAgICAgICAgICAgICAgICAgICAgc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChjaGlsZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBy
ZXR1cm4gc2hhZG93Um9vdDsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVNo
YWRvd0hvc3RXaXRoQXNzaWduZWRHcmFuZENoaWxkKG1vZGUpIHsKLSAgICAgICAgICAgIHZhciBo
b3N0ID0gZWxlbWVudCgnZGl2JywgWwotICAgICAgICAgICAgICAgIGVsZW1lbnQoJ2InLCBbCi0g
ICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ2knKQotICAgICAgICAgICAgICAgIF0pCi0gICAg
ICAgICAgICBdKTsKLQotICAgICAgICAgICAgdmFyIHJvb3QgPSBhdHRhY2hTaGFkb3coaG9zdCwg
bW9kZSwgWwotICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3NwYW4nLCBbCi0gICAgICAgICAgICAg
ICAgICAgIGVsZW1lbnQoJ3Nsb3QnKQotICAgICAgICAgICAgICAgIF0pCi0gICAgICAgICAgICBd
KTsKLQotICAgICAgICAgICAgcmV0dXJuIHt0YXJnZXQ6IGhvc3QucXVlcnlTZWxlY3RvcignaScp
LCB0YXJnZXRQYXJlbnQ6IGhvc3QucXVlcnlTZWxlY3RvcignYicpLCBob3N0OiBob3N0LAotICAg
ICAgICAgICAgICAgICAgICBzbG90OiByb290LnF1ZXJ5U2VsZWN0b3IoJ3Nsb3QnKSwgc2xvdFBh
cmVudDogcm9vdC5xdWVyeVNlbGVjdG9yKCdzcGFuJyksIHJvb3Q6IHJvb3R9OwotICAgICAgICB9
CisgICAgICAgIC8qCisgICAgICAgIGRpdiAoaG9zdDsgNSkgLS0tLS0tLS0tLS0tLSAocm9vdDsg
NCkKKyAgICAgICAgICsgYiAoaG9zdENoaWxkOyAxKSAgICAgICAgICArIHNwYW4gKHNsb3RQYXJl
bnQ7IDMpCisgICAgICAgICAgICsgaSAoaG9zdEdyYW5kQ2hpbGQ7IDApICAgICArIHNsb3QgKHNs
b3Q7IDIpCisgICAgICAgICovCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdEV2ZW50SW5EZXRhY2hl
ZFNoYWRvd0hvc3REZXNjZW5kYW50KG1vZGUpIHsKICAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIHZhciBzaGFkb3cgPSBjcmVhdGVTaGFkb3dIb3N0V2l0aEFz
c2lnbmVkR3JhbmRDaGlsZChtb2RlKTsKIAotICAgICAgICAgICAgICAgIGxvZyA9IGRpc3BhdGNo
RXZlbnRXaXRoTG9nKHNoYWRvdywgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZX0pKTsK
KyAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhzaGFkb3csIHNoYWRv
dy5ob3N0R3JhbmRDaGlsZCwgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZX0pKTsKIAog
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwgNiwgJ0V2ZW50UGF0aCBt
dXN0IGNvbnRhaW4gW3RhcmdldCwgdGFyZ2V0IHBhcmVudCwgc2xvdCwgc2xvdCBwYXJlbnQsIHNo
YWRvdyByb290LCBzaGFkb3cgaG9zdF0nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZ1swXSwgW3NoYWRvdy50YXJnZXQsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRo
WzBdIG11c3QgYmUgdGhlIHRhcmdldCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nWzFdLCBbc2hhZG93LnRhcmdldFBhcmVudCwgc2hhZG93LnRhcmdldF0sICdFdmVu
dFBhdGhbMV0gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1swXSwgW3NoYWRvdy5ob3N0R3JhbmRDaGlsZCwg
c2hhZG93Lmhvc3RHcmFuZENoaWxkXSwgJ0V2ZW50UGF0aFswXSBtdXN0IGJlIHRoZSB0YXJnZXQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgW3NoYWRvdy5o
b3N0Q2hpbGQsIHNoYWRvdy5ob3N0R3JhbmRDaGlsZF0sICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0
aGUgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKICAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZ1syXSwgW3NoYWRvdy5zbG90LCBzaGFkb3cuc2xvdF0sICdFdmVudFBhdGhbMl0g
bXVzdCBiZSB0aGUgc2xvdCcpOwogICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nWzNdLCBbc2hhZG93LnNsb3RQYXJlbnQsIHNoYWRvdy5zbG90XSwgJ0V2ZW50UGF0aFszXSBt
dXN0IGJlIHRoZSBwYXJlbnQgb2YgdGhlIHNsb3QnKTsKICAgICAgICAgICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1s0XSwgW3NoYWRvdy5yb290LCBzaGFkb3cuc2xvdF0sICdFdmVudFBh
dGhbNF0gbXVzdCBiZSB0aGUgc2hhZG93IHJvb3QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1s1XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50
UGF0aFs1XSBtdXN0IGJlIHRoZSBzaGFkb3cgaG9zdCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobG9nWzVdLCBbc2hhZG93Lmhvc3QsIHNoYWRvdy5ob3N0R3JhbmRDaGls
ZF0sICdFdmVudFBhdGhbNV0gbXVzdCBiZSB0aGUgc2hhZG93IGhvc3QnKTsKIAogICAgICAgICAg
ICAgfSwgJ0ZpcmluZyBhbiBldmVudCBpbnNpZGUgYSBncmFuZCBjaGlsZCBvZiBhIGRldGFjaGVk
ICcgKyBtb2RlICsgJyBtb2RlIHNoYWRvdyBob3N0Jyk7CiAgICAgICAgIH0KQEAgLTk2LDE4ICs0
NSwxOCBAQAogICAgICAgICAgICAgICAgIHZhciBzaGFkb3cgPSBjcmVhdGVTaGFkb3dIb3N0V2l0
aEFzc2lnbmVkR3JhbmRDaGlsZChtb2RlKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKHNoYWRvdy5ob3N0KTsKIAotICAgICAgICAgICAgICAgIGxvZyA9IGRpc3Bh
dGNoRXZlbnRXaXRoTG9nKHNoYWRvdywgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZX0p
KTsKKyAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhzaGFkb3csIHNo
YWRvdy5ob3N0R3JhbmRDaGlsZCwgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZX0pKTsK
IAogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwgOSwgJ0V2ZW50UGF0
aCBtdXN0IGNvbnRhaW4gW3RhcmdldCwgdGFyZ2V0IHBhcmVudCwgc2xvdCwgc2xvdCBwYXJlbnQs
IHNoYWRvdyByb290LCBzaGFkb3cgaG9zdCwgYm9keSwgaHRtbCwgZG9jdW1lbnRdJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFtzaGFkb3cudGFyZ2V0LCBz
aGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFswXSBtdXN0IGJlIHRoZSB0YXJnZXQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgW3NoYWRvdy50YXJnZXRQYXJl
bnQsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzFdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0
aGUgdGFyZ2V0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0s
IFtzaGFkb3cuaG9zdEdyYW5kQ2hpbGQsIHNoYWRvdy5ob3N0R3JhbmRDaGlsZF0sICdFdmVudFBh
dGhbMF0gbXVzdCBiZSB0aGUgdGFyZ2V0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhsb2dbMV0sIFtzaGFkb3cuaG9zdENoaWxkLCBzaGFkb3cuaG9zdEdyYW5kQ2hpbGRd
LCAnRXZlbnRQYXRoWzFdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgdGFyZ2V0Jyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMl0sIFtzaGFkb3cuc2xvdCwgc2hh
ZG93LnNsb3RdLCAnRXZlbnRQYXRoWzJdIG11c3QgYmUgdGhlIHNsb3QnKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1szXSwgW3NoYWRvdy5zbG90UGFyZW50LCBzaGFk
b3cuc2xvdF0sICdFdmVudFBhdGhbM10gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSBzbG90Jyk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNF0sIFtzaGFkb3cucm9v
dCwgc2hhZG93LnNsb3RdLCAnRXZlbnRQYXRoWzRdIG11c3QgYmUgdGhlIHNoYWRvdyByb290Jyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNV0sIFtzaGFkb3cuaG9z
dCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbNV0gbXVzdCBiZSB0aGUgc2hhZG93IGhvc3Qn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s2XSwgW2RvY3VtZW50
LmJvZHksIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzZdIG11c3QgYmUgdGhlIGJvZHkgZWxl
bWVudCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzddLCBbZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFs3XSBtdXN0
IGJlIHRoZSBodG1sIGVsZW1lbnQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZ1s4XSwgW2RvY3VtZW50LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFs4XSBtdXN0
IGJlIHRoZSBodG1sIGVsZW1lbnQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZ1s1XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cuaG9zdEdyYW5kQ2hpbGRdLCAnRXZlbnRQ
YXRoWzVdIG11c3QgYmUgdGhlIHNoYWRvdyBob3N0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhsb2dbNl0sIFtkb2N1bWVudC5ib2R5LCBzaGFkb3cuaG9zdEdyYW5kQ2hp
bGRdLCAnRXZlbnRQYXRoWzZdIG11c3QgYmUgdGhlIGJvZHkgZWxlbWVudCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzddLCBbZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LCBzaGFkb3cuaG9zdEdyYW5kQ2hpbGRdLCAnRXZlbnRQYXRoWzddIG11c3QgYmUgdGhlIGh0
bWwgZWxlbWVudCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzhd
LCBbZG9jdW1lbnQsIHNoYWRvdy5ob3N0R3JhbmRDaGlsZF0sICdFdmVudFBhdGhbOF0gbXVzdCBi
ZSB0aGUgaHRtbCBlbGVtZW50Jyk7CiAKICAgICAgICAgICAgIH0sICdGaXJpbmcgYW4gZXZlbnQg
aW5zaWRlIGEgZ3JhbmQgY2hpbGQgb2YgYW4gaW4tZG9jdW1lbnQgJyArIG1vZGUgKyAnIG1vZGUg
c2hhZG93IGhvc3QnKTsKICAgICAgICAgfQpAQCAtMTE1LDcwICs2NCwyNiBAQAogICAgICAgICB0
ZXN0RXZlbnRJblNoYWRvd0hvc3REZXNjZW5kYW50SW5zaWRlRG9jdW1lbnQoJ29wZW4nKTsKICAg
ICAgICAgdGVzdEV2ZW50SW5TaGFkb3dIb3N0RGVzY2VuZGFudEluc2lkZURvY3VtZW50KCdjbG9z
ZWQnKTsKIAotICAgICAgICBmdW5jdGlvbiBjcmVhdGVOZXN0ZWRTaGFkb3dUcmVlc1dpdGhTbG90
cyhpbm5lck1vZGUsIG91dGVyVXBwZXJNb2RlLCBvdXRlckxvd2VyTW9kZSkgewotICAgICAgICAg
ICAgdmFyIHVwcGVySG9zdCA9IGVsZW1lbnQoJ3VwcGVyLWhvc3QnLCBbCi0gICAgICAgICAgICAg
ICAgZWxlbWVudCgncCcsIFsKLSAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgnbG93ZXItaG9z
dCcsIFsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ2EnKQotICAgICAgICAgICAg
ICAgICAgICBdKQotICAgICAgICAgICAgICAgIF0pCi0gICAgICAgICAgICBdKTsKLQotICAgICAg
ICAgICAgdmFyIHVwcGVyU2hhZG93ID0gYXR0YWNoU2hhZG93KHVwcGVySG9zdCwgb3V0ZXJVcHBl
ck1vZGUsIFsKLSAgICAgICAgICAgICAgICBlbGVtZW50KCdiJywgWwotICAgICAgICAgICAgICAg
ICAgICBlbGVtZW50KCdzbG90JywgW10sICd1cHBlci1zbG90JykKLSAgICAgICAgICAgICAgICBd
KQotICAgICAgICAgICAgXSk7Ci0KLSAgICAgICAgICAgIHZhciBsb3dlckhvc3QgPSB1cHBlckhv
c3QucXVlcnlTZWxlY3RvcignbG93ZXItaG9zdCcpOwotICAgICAgICAgICAgdmFyIGxvd2VyU2hh
ZG93ID0gYXR0YWNoU2hhZG93KGxvd2VySG9zdCwgb3V0ZXJMb3dlck1vZGUsIFsKLSAgICAgICAg
ICAgICAgICBlbGVtZW50KCdlbScsIFsKLSAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgnaW5u
ZXItaG9zdCcsIFsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3NwYW4nLCBbCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgnc2xvdCcsIFtdLCAnbG93ZXItc2xv
dCcpCi0gICAgICAgICAgICAgICAgICAgICAgICBdKQotICAgICAgICAgICAgICAgICAgICBdKQot
ICAgICAgICAgICAgICAgIF0pCi0gICAgICAgICAgICBdKTsKLQotICAgICAgICAgICAgaW5uZXJT
aGFkb3cgPSBhdHRhY2hTaGFkb3cobG93ZXJTaGFkb3cucXVlcnlTZWxlY3RvcignaW5uZXItaG9z
dCcpLCBpbm5lck1vZGUsIFsKLSAgICAgICAgICAgICAgICBlbGVtZW50KCdpJywgWwotICAgICAg
ICAgICAgICAgICAgICBlbGVtZW50KCdzbG90JywgW10sICdpbm5lci1zbG90JykKLSAgICAgICAg
ICAgICAgICBdKQotICAgICAgICAgICAgXSk7Ci0KLSAgICAgICAgICAgIHJldHVybiB7Ci0gICAg
ICAgICAgICAgICAgaG9zdDogdXBwZXJIb3N0LAotICAgICAgICAgICAgICAgIHRhcmdldDogdXBw
ZXJIb3N0LnF1ZXJ5U2VsZWN0b3IoJ2EnKSwKLSAgICAgICAgICAgICAgICB1cHBlclNoYWRvdzog
dXBwZXJTaGFkb3csCi0gICAgICAgICAgICAgICAgdXBwZXJTbG90OiB1cHBlclNoYWRvdy5xdWVy
eVNlbGVjdG9yKCdzbG90JyksCi0gICAgICAgICAgICAgICAgbG93ZXJTaGFkb3c6IGxvd2VyU2hh
ZG93LAotICAgICAgICAgICAgICAgIGxvd2VyU2xvdDogbG93ZXJTaGFkb3cucXVlcnlTZWxlY3Rv
cignc2xvdCcpLAotICAgICAgICAgICAgICAgIGlubmVyU2hhZG93OiBpbm5lclNoYWRvdywKLSAg
ICAgICAgICAgICAgICBpbm5lclNsb3Q6IGlubmVyU2hhZG93LnF1ZXJ5U2VsZWN0b3IoJ3Nsb3Qn
KSwKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH0KLQogICAgICAgICAvKgogICAgICAgICB1cHBl
ci1ob3N0ICgxNCkgLS0gKHVwcGVyU2hhZG93OyAxMykKICAgICAgICAgICsgcCAoMTApICAgICAg
ICAgICsgYiAoMTIpCiAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICsgc2xvdCAodXBwZXJT
bG90OyAxMSkKLSAgICAgICAgICArIGxvd2VyLWhvc3QgKDkpIC0tIChsb3dlclNoYWRvdzsgOCkK
LSAgICAgICAgICAgICsgYSAodGFyZ2V0OyAwKSAgICsgZW0gKDcpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICsgaW5uZXItaG9zdCAoNikgLS0tLS0tLS0gKGlubmVyU2hhZG93OyA1
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc3BhbiAoMikgICAgICAgICAg
ICAgICsgaSAoNCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2xvdCAo
bG93ZXJTbG90OyAxKSArIHNsb3QgKGlubmVyU2xvdDsgMykKKyAgICAgICAgICArIGxvd2VyLWhv
c3QgKDkpIC0tLS0tLSAobG93ZXJTaGFkb3c7IDgpCisgICAgICAgICAgICArIGEgKGxvd2VyQ2hp
bGQ7IDApICAgKyBlbSAoNykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsg
aW5uZXItaG9zdCAoNikgLS0tLS0tLS0gKGlubmVyU2hhZG93OyA1KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICArIHNwYW4gKDIpICAgICAgICAgICAgICArIGkgKDQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzbG90IChsb3dlclNsb3Q7
IDEpICsgc2xvdCAoaW5uZXJTbG90OyAzKQogICAgICAgICAqLwogCiAgICAgICAgIGZ1bmN0aW9u
IHRlc3RFdmVudFVuZGVyVHdvU2hhZG93Um9vdHMob3V0ZXJVcHBlck1vZGUsIG91dGVyTG93ZXJN
b2RlLCBpbm5lck1vZGUpIHsKICAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgICAgIHZhciBzaGFkb3cgPSBjcmVhdGVOZXN0ZWRTaGFkb3dUcmVlc1dpdGhTbG90cyhp
bm5lck1vZGUsIG91dGVyVXBwZXJNb2RlLCBvdXRlckxvd2VyTW9kZSk7CiAKLSAgICAgICAgICAg
ICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhzaGFkb3csIG5ldyBFdmVudCgnZm9vJywg
e2J1YmJsZXM6IHRydWV9KSk7CisgICAgICAgICAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdp
dGhMb2coc2hhZG93LCBzaGFkb3cubG93ZXJDaGlsZCwgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxl
czogdHJ1ZX0pKTsKIAogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwg
MTUsICdFdmVudFBhdGggbXVzdCBjb250YWluIDE1IHRhcmdldHMnKTsKIAotICAgICAgICAgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbc2hhZG93LnRhcmdldCwgc2hhZG93LnRh
cmdldF0sICdFdmVudFBhdGhbMF0gbXVzdCBiZSB0aGUgdGFyZ2V0Jyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFtzaGFkb3cubG93ZXJDaGlsZCwgc2hhZG93
Lmxvd2VyQ2hpbGRdLCAnRXZlbnRQYXRoWzBdIG11c3QgYmUgdGhlIHRhcmdldCcpOwogICAgICAg
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbc2hhZG93Lmxvd2VyU2xvdCwg
c2hhZG93Lmxvd2VyU2xvdF0sICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0aGUgc2xvdCBpbnNpZGUg
dGhlIGxvd2VyIHNoYWRvdyB0cmVlJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dbMl0sIFtzaGFkb3cubG93ZXJTbG90LnBhcmVudE5vZGUsIHNoYWRvdy5sb3dlclNs
b3RdLCAnRXZlbnRQYXRoWzJdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgc2xvdCBpbnNpZGUg
dGhlIGxvd2VyIHNoYWRvdyB0cmVlJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dbM10sIFtzaGFkb3cuaW5uZXJTbG90LCBzaGFkb3cuaW5uZXJTbG90XSwgJ0V2ZW50
UGF0aFszXSBtdXN0IGJlIHRoZSBzbG90IGluc2lkZSB0aGUgc2hhZG93IHRyZWUgaW5zaWRlIHRo
ZSBsb3dlciBzaGFkb3cgdHJlZScpOwpAQCAtMTg3LDEyICs5MiwxMiBAQAogICAgICAgICAgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzZdLCBbc2hhZG93LmlubmVyU2hhZG93Lmhvc3Qs
IHNoYWRvdy5sb3dlclNsb3RdLCAnRXZlbnRQYXRoWzZdIG11c3QgYmUgdGhlIGhvc3Qgb2YgdGhl
IGlubmVyIHNoYWRvdyB0cmVlJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dbN10sIFtzaGFkb3cubG93ZXJTaGFkb3cuZmlyc3RDaGlsZCwgc2hhZG93Lmxvd2VyU2xv
dF0sICdFdmVudFBhdGhbN10gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSBpbm5lciBzaGFkb3cg
aG9zdCcpOwogICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzhdLCBbc2hh
ZG93Lmxvd2VyU2hhZG93LCBzaGFkb3cubG93ZXJTbG90XSwgJ0V2ZW50UGF0aFs4XSBtdXN0IGJl
IHRoZSBsb3dlciBzaGFkb3cgcm9vdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nWzldLCBbc2hhZG93Lmxvd2VyU2hhZG93Lmhvc3QsIHNoYWRvdy50YXJnZXRdLCAn
RXZlbnRQYXRoWzldIG11c3QgYmUgdGhlIGxvd2VyIHNoYWRvdyBob3N0Jyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMTBdLCBbc2hhZG93Lmhvc3QuZmlyc3RDaGls
ZCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMTBdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0
aGUgZ3JhbmQgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1s5XSwgW3NoYWRvdy5sb3dlclNoYWRvdy5ob3N0LCBzaGFkb3cubG93
ZXJDaGlsZF0sICdFdmVudFBhdGhbOV0gbXVzdCBiZSB0aGUgbG93ZXIgc2hhZG93IGhvc3QnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxMF0sIFtzaGFkb3cuaG9z
dC5maXJzdENoaWxkLCBzaGFkb3cubG93ZXJDaGlsZF0sICdFdmVudFBhdGhbMTBdIG11c3QgYmUg
dGhlIHBhcmVudCBvZiB0aGUgZ3JhbmQgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxMV0sIFtzaGFkb3cudXBwZXJTbG90LCBz
aGFkb3cudXBwZXJTbG90XSwgJ0V2ZW50UGF0aFsxMV0gbXVzdCBiZSB0aGUgc2xvdCBpbnNpZGUg
dGhlIHVwcGVyIHNoYWRvdyB0cmVlJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dbMTJdLCBbc2hhZG93LnVwcGVyU2xvdC5wYXJlbnROb2RlLCBzaGFkb3cudXBwZXJT
bG90XSwgJ0V2ZW50UGF0aFsxMl0gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSBzbG90IGluc2lk
ZSB0aGUgdXBwZXIgc2hhZG93IHRyZWUnKTsKICAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZ1sxM10sIFtzaGFkb3cudXBwZXJTaGFkb3csIHNoYWRvdy51cHBlclNsb3RdLCAn
RXZlbnRQYXRoWzEzXSBtdXN0IGJlIHRoZSB1cHBlciBzaGFkb3cgcm9vdCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzE0XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cu
dGFyZ2V0XSwgJ0V2ZW50UGF0aFsxNF0gbXVzdCBiZSB0aGUgaG9zdCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzE0XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cubG93
ZXJDaGlsZF0sICdFdmVudFBhdGhbMTRdIG11c3QgYmUgdGhlIGhvc3QnKTsKIAogICAgICAgICAg
ICAgfSwgJ0ZpcmluZyBhbiBldmVudCBvbiBhIG5vZGUgd2l0aCB0d28gYW5jZXN0b3JzIHdpdGgg
YSBkZXRhY2hlZCAnICsgb3V0ZXJVcHBlck1vZGUgKyAnIGFuZCAnICsgb3V0ZXJMb3dlck1vZGUK
ICAgICAgICAgICAgICAgICArICcgc2hhZG93IHRyZWVzIHdpdGggYW4gaW5uZXIgJyArIGlubmVy
TW9kZSArICcgc2hhZG93IHRyZWUnKTsKQEAgLTIyMSwxNiArMTI2LDE0IEBACiAgICAgICAgIGZ1
bmN0aW9uIHRlc3RFdmVudEluc2lkZU5lc3RlZFNoYWRvd3NVbmRlckFub3RoZXJTaGFkb3cob3V0
ZXJVcHBlck1vZGUsIG91dGVyTG93ZXJNb2RlLCBpbm5lck1vZGUpIHsKICAgICAgICAgICAgIHRl
c3QoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHZhciBzaGFkb3cgPSBjcmVhdGVOZXN0
ZWRTaGFkb3dUcmVlc1dpdGhTbG90cyhpbm5lck1vZGUsIG91dGVyVXBwZXJNb2RlLCBvdXRlckxv
d2VyTW9kZSk7Ci0gICAgICAgICAgICAgICAgc2hhZG93LmRlZXBlc3ROb2RlSW5MaWdodERPTSA9
IHNoYWRvdy50YXJnZXQ7IC8vIE5lZWRlZCBmb3IgZGlzcGF0Y2hFdmVudFdpdGhMb2cgdG8gYXR0
YWNoIGV2ZW50IGxpc3RlbmVycy4gCi0gICAgICAgICAgICAgICAgc2hhZG93LnRhcmdldCA9IHNo
YWRvdy5pbm5lclNsb3Q7CiAKLSAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0
aExvZyhzaGFkb3csIG5ldyBFdmVudCgnZm9vJywge2J1YmJsZXM6IHRydWV9KSk7CisgICAgICAg
ICAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2coc2hhZG93LCBzaGFkb3cuaW5uZXJT
bG90LCBuZXcgRXZlbnQoJ2ZvbycsIHtidWJibGVzOiB0cnVlfSkpOwogCiAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCAxMiwgJ0V2ZW50UGF0aCBtdXN0IGNvbnRhaW4g
MTIgdGFyZ2V0cycpOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
MF0sIFtzaGFkb3cudGFyZ2V0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFswXSBtdXN0IGJl
IHRoZSB0YXJnZXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sx
XSwgW3NoYWRvdy50YXJnZXQucGFyZW50Tm9kZSwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhb
MV0gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgW3NoYWRvdy5pbm5lclNoYWRvdywgc2hhZG93LnRh
cmdldF0sICdFdmVudFBhdGhbMl0gbXVzdCBiZSB0aGUgaW5uZXIgc2hhZG93IHJvb3QnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1swXSwgW3NoYWRvdy5pbm5lclNs
b3QsIHNoYWRvdy5pbm5lclNsb3RdLCAnRXZlbnRQYXRoWzBdIG11c3QgYmUgdGhlIHRhcmdldCcp
OworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbc2hhZG93Lmlu
bmVyU2xvdC5wYXJlbnROb2RlLCBzaGFkb3cuaW5uZXJTbG90XSwgJ0V2ZW50UGF0aFsxXSBtdXN0
IGJlIHRoZSBwYXJlbnQgb2YgdGhlIHRhcmdldCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzJdLCBbc2hhZG93LmlubmVyU2hhZG93LCBzaGFkb3cuaW5uZXJTbG90
XSwgJ0V2ZW50UGF0aFsyXSBtdXN0IGJlIHRoZSBpbm5lciBzaGFkb3cgcm9vdCcpOwogICAgICAg
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbc2hhZG93LmlubmVyU2hhZG93
Lmhvc3QsIHNoYWRvdy5pbm5lclNoYWRvdy5ob3N0XSwgJ0V2ZW50UGF0aFszXSBtdXN0IGJlIHRo
ZSBpbm5lciBzaGFkb3cgaG9zdCcpOwogICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzRdLCBbc2hhZG93Lmxvd2VyU2hhZG93LmZpcnN0Q2hpbGQsIHNoYWRvdy5pbm5lclNo
YWRvdy5ob3N0XSwgJ0V2ZW50UGF0aFs0XSBtdXN0IGJlIHRoZSBwYXJlbnQgb2YgdGhlIGlubmVy
IHNoYWRvdyBob3N0Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
NV0sIFtzaGFkb3cubG93ZXJTaGFkb3csIHNoYWRvdy5pbm5lclNoYWRvdy5ob3N0XSwgJ0V2ZW50
UGF0aFs1XSBtdXN0IGJlIHRoZSBsb3dlciAoYnV0IG91dGVyKSBzaGFkb3cgcm9vdCcpOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Jlc291cmNlcy9zaGFkb3ctdHJlZS1oZWxw
ZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9yZXNvdXJj
ZXMvc2hhZG93LXRyZWUtaGVscGVycy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9yZXNvdXJjZXMvc2hhZG93LXRyZWUtaGVscGVycy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEyNiBAQAorCitmdW5jdGlvbiBkaXNwYXRjaEV2ZW50V2l0aExvZyhz
aGFkb3csIHRhcmdldCwgZXZlbnQpIHsKKyAgICB2YXIgbG9nID0gW107CisKKyAgICB2YXIgYXR0
YWNoZWROb2RlcyA9IFtdOworICAgIGZvciAodmFyIG5vZGVLZXkgaW4gc2hhZG93KSB7CisgICAg
ICAgIHZhciBzdGFydGluZ05vZGUgPSBzaGFkb3dbbm9kZUtleV07CisgICAgICAgIGZvciAodmFy
IG5vZGUgPSBzdGFydGluZ05vZGU7IG5vZGU7IG5vZGUgPSBub2RlLnBhcmVudE5vZGUpIHsKKyAg
ICAgICAgICAgIGlmIChhdHRhY2hlZE5vZGVzLmluZGV4T2Yobm9kZSkgPj0gMCkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGF0dGFjaGVkTm9kZXMucHVzaChub2RlKTsK
KyAgICAgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudC50eXBlLCAoZnVuY3Rpb24g
KGV2ZW50KSB7CisgICAgICAgICAgICAgICAgbG9nLnB1c2goW3RoaXMsIGV2ZW50LnRhcmdldF0p
OworICAgICAgICAgICAgfSkuYmluZChub2RlKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0
YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7CisKKyAgICByZXR1cm4gbG9nOworfQorCitmdW5j
dGlvbiBlbGVtZW50KG5hbWUsIGNoaWxkcmVuLCBjbGFzc05hbWUpIHsKKyAgICB2YXIgZWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7CisgICAgaWYgKGNsYXNzTmFtZSkKKyAg
ICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSBjbGFzc05hbWU7CisgICAgaWYgKGNoaWxkcmVuKSB7
CisgICAgICAgIGZvciAodmFyIGNoaWxkIG9mIGNoaWxkcmVuKQorICAgICAgICAgICAgZWxlbWVu
dC5hcHBlbmRDaGlsZChjaGlsZCk7CisgICAgfQorICAgIHJldHVybiBlbGVtZW50OworfQorCitm
dW5jdGlvbiBhdHRhY2hTaGFkb3coaG9zdCwgbW9kZSwgY2hpbGRyZW4pIHsKKyAgICB2YXIgc2hh
ZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiBtb2RlfSk7CisgICAgaWYgKGNoaWxk
cmVuKSB7CisgICAgICAgIGZvciAodmFyIGNoaWxkIG9mIGNoaWxkcmVuKQorICAgICAgICAgICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChjaGlsZCk7CisgICAgfQorICAgIHJldHVybiBzaGFkb3dS
b290OworfQorCitmdW5jdGlvbiBjcmVhdGVTaGFkb3dIb3N0V2l0aEFzc2lnbmVkR3JhbmRDaGls
ZChtb2RlKSB7CisgICAgdmFyIGhvc3QgPSBlbGVtZW50KCdkaXYnLCBbCisgICAgICAgIGVsZW1l
bnQoJ2InLCBbCisgICAgICAgICAgICBlbGVtZW50KCdpJykKKyAgICAgICAgXSkKKyAgICBdKTsK
KworICAgIHZhciByb290ID0gYXR0YWNoU2hhZG93KGhvc3QsIG1vZGUsIFsKKyAgICAgICAgZWxl
bWVudCgnc3BhbicsIFsKKyAgICAgICAgICAgIGVsZW1lbnQoJ3Nsb3QnKQorICAgICAgICBdKQor
ICAgIF0pOworCisgICAgcmV0dXJuIHsKKyAgICAgICAgaG9zdDogaG9zdCwKKyAgICAgICAgaG9z
dENoaWxkOiBob3N0LnF1ZXJ5U2VsZWN0b3IoJ2InKSwKKyAgICAgICAgaG9zdEdyYW5kQ2hpbGQ6
IGhvc3QucXVlcnlTZWxlY3RvcignaScpLAorICAgICAgICBzbG90OiByb290LnF1ZXJ5U2VsZWN0
b3IoJ3Nsb3QnKSwKKyAgICAgICAgc2xvdFBhcmVudDogcm9vdC5xdWVyeVNlbGVjdG9yKCdzcGFu
JyksCisgICAgICAgIHJvb3Q6IHJvb3QKKyAgICB9OworfQorCisvKgorZGl2IChob3N0KSAtLS0t
LS0tLS0tLS0tIChyb290KQorICsgYiAoaG9zdENoaWxkKSAgICAgICAgICArIHNwYW4gKHNsb3RQ
YXJlbnQpCisgICArIGkgKGhvc3RHcmFuZENoaWxkKSAgICAgKyBzbG90IChzbG90KQorKi8KKwor
ZnVuY3Rpb24gY3JlYXRlTmVzdGVkU2hhZG93VHJlZXNXaXRoU2xvdHMoaW5uZXJNb2RlLCBvdXRl
clVwcGVyTW9kZSwgb3V0ZXJMb3dlck1vZGUpIHsKKyAgICB2YXIgdXBwZXJIb3N0ID0gZWxlbWVu
dCgndXBwZXItaG9zdCcsIFsKKyAgICAgICAgZWxlbWVudCgncCcsIFsKKyAgICAgICAgICAgIGVs
ZW1lbnQoJ2xvd2VyLWhvc3QnLCBbCisgICAgICAgICAgICAgICAgZWxlbWVudCgnYScpCisgICAg
ICAgICAgICBdKQorICAgICAgICBdKQorICAgIF0pOworCisgICAgdmFyIHVwcGVyU2hhZG93ID0g
YXR0YWNoU2hhZG93KHVwcGVySG9zdCwgb3V0ZXJVcHBlck1vZGUsIFsKKyAgICAgICAgZWxlbWVu
dCgnYicsIFsKKyAgICAgICAgICAgIGVsZW1lbnQoJ3Nsb3QnLCBbXSwgJ3VwcGVyLXNsb3QnKQor
ICAgICAgICBdKQorICAgIF0pOworCisgICAgdmFyIGxvd2VySG9zdCA9IHVwcGVySG9zdC5xdWVy
eVNlbGVjdG9yKCdsb3dlci1ob3N0Jyk7CisgICAgdmFyIGxvd2VyU2hhZG93ID0gYXR0YWNoU2hh
ZG93KGxvd2VySG9zdCwgb3V0ZXJMb3dlck1vZGUsIFsKKyAgICAgICAgZWxlbWVudCgnZW0nLCBb
CisgICAgICAgICAgICBlbGVtZW50KCdpbm5lci1ob3N0JywgWworICAgICAgICAgICAgICAgIGVs
ZW1lbnQoJ3NwYW4nLCBbCisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3Nsb3QnLCBbXSwg
J2xvd2VyLXNsb3QnKQorICAgICAgICAgICAgICAgIF0pCisgICAgICAgICAgICBdKQorICAgICAg
ICBdKQorICAgIF0pOworCisgICAgaW5uZXJTaGFkb3cgPSBhdHRhY2hTaGFkb3cobG93ZXJTaGFk
b3cucXVlcnlTZWxlY3RvcignaW5uZXItaG9zdCcpLCBpbm5lck1vZGUsIFsKKyAgICAgICAgZWxl
bWVudCgnaScsIFsKKyAgICAgICAgICAgIGVsZW1lbnQoJ3Nsb3QnLCBbXSwgJ2lubmVyLXNsb3Qn
KQorICAgICAgICBdKQorICAgIF0pOworCisgICAgcmV0dXJuIHsKKyAgICAgICAgaG9zdDogdXBw
ZXJIb3N0LAorICAgICAgICBsb3dlckNoaWxkOiB1cHBlckhvc3QucXVlcnlTZWxlY3RvcignYScp
LAorICAgICAgICB1cHBlclNoYWRvdzogdXBwZXJTaGFkb3csCisgICAgICAgIHVwcGVyU2xvdDog
dXBwZXJTaGFkb3cucXVlcnlTZWxlY3Rvcignc2xvdCcpLAorICAgICAgICBsb3dlclNoYWRvdzog
bG93ZXJTaGFkb3csCisgICAgICAgIGxvd2VyU2xvdDogbG93ZXJTaGFkb3cucXVlcnlTZWxlY3Rv
cignc2xvdCcpLAorICAgICAgICBpbm5lclNoYWRvdzogaW5uZXJTaGFkb3csCisgICAgICAgIGlu
bmVyU2xvdDogaW5uZXJTaGFkb3cucXVlcnlTZWxlY3Rvcignc2xvdCcpLAorICAgIH07Cit9CisK
Ky8qCit1cHBlci1ob3N0IC0tICh1cHBlclNoYWRvdykKKyArIHAgICAgICAgICAgICsgYgorICAg
fCAgICAgICAgICAgICArIHNsb3QgKHVwcGVyU2xvdCkKKyAgIHwKKyAgICsgbG93ZXItaG9zdCAt
LS0tLS0gKGxvd2VyU2hhZG93KQorICAgICArIGEgKGxvd2VyQ2hpbGQpICAgKyBlbQorICAgICAg
ICAgICAgICAgICAgICAgICAgICArIGlubmVyLWhvc3QgLS0tLS0tLS0tLS0tIChpbm5lclNoYWRv
dykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNwYW4gICAgICAgICAgICAgICAgICAg
KyBpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNsb3QgKGxvd2VyU2xvdCkgICAg
ICsgc2xvdCAoaW5uZXJTbG90KQorKi8KSW5kZXg6IExheW91dFRlc3RzL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMJKHJldmlzaW9uIDE5Nzk1NSkKKysrIExheW91dFRlc3RzL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcwkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBA
QCBmdW5jdGlvbiBjb252ZXJ0UmVzdWx0KHJlc3VsdFN0YXR1cyl7DQogKiAgc3BhY2luZyBiZXR3
ZWVuIGNlbGxzIGlzIHByZXNlcnZlZCwgYW5kIGl0IGlzIHRoZXJlZm9yZSBub3QgcmVhZGFibGUu
IEJ5DQogKiAgc2V0dGluZyBvdXRwdXQgdG8gZmFsc2UsIHRoZSBIVE1MIHRhYmxlIHdpbGwgbm90
IGJlIGNyZWF0ZWQNCiAqLw0KLXNldHVwKHsib3V0cHV0IjogZmFsc2UsICJleHBsaWNpdF90aW1l
b3V0IjogISF0ZXN0UnVubmVyfSk7DQorc2V0dXAoeyJvdXRwdXQiOiBmYWxzZSwgImV4cGxpY2l0
X3RpbWVvdXQiOiAhIXNlbGYudGVzdFJ1bm5lcn0pOw0KIA0KIC8qICBVc2luZyBhIGNhbGxiYWNr
IGZ1bmN0aW9uLCB0ZXN0IHJlc3VsdHMgd2lsbCBiZSBhZGRlZCB0byB0aGUgcGFnZSBpbiBhIA0K
ICogICBtYW5uZXIgdGhhdCBhbGxvd3MgZHVtcEFzVGV4dCB0byBwcm9kdWNlIHJlYWRhYmxlIHRl
c3QgcmVzdWx0cw0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273627</attachid>
            <date>2016-03-10 14:59:04 -0800</date>
            <delta_ts>2016-03-10 19:21:30 -0800</delta_ts>
            <desc>Updated for ToT</desc>
            <filename>bug-155327-20160310145851.patch</filename>
            <type>text/plain</type>
            <size>20532</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5Nzk1OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTAzLTEwICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEV4dHJhY3QgYSBoZWxwZXIgZnVuY3Rpb25zIG91
dCBvZiBldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTMyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3RlZCBzaGFkb3ctdHJlZS1oZWxwZXJz
LmpzIG91dCBvZiBldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLmh0bWwgZm9yIHRlc3RzIHRvIGJl
IGFkZGVkIGluIHdlYmtpdC5vcmcvYi8xNTM1MzguCisKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1k
b20vZXZlbnQtaW5zaWRlLXNsb3R0ZWQtbm9kZS5odG1sOgorICAgICAgICAqIGZhc3Qvc2hhZG93
LWRvbS9yZXNvdXJjZXM6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9yZXNvdXJj
ZXMvc2hhZG93LXRyZWUtaGVscGVycy5qczogQWRkZWQuCisgICAgICAgIChkaXNwYXRjaEV2ZW50
V2l0aExvZyk6CisgICAgICAgIChlbGVtZW50KToKKyAgICAgICAgKGF0dGFjaFNoYWRvdyk6Cisg
ICAgICAgIChjcmVhdGVTaGFkb3dIb3N0V2l0aEFzc2lnbmVkR3JhbmRDaGlsZCk6CisgICAgICAg
IChjcmVhdGVOZXN0ZWRTaGFkb3dUcmVlc1dpdGhTbG90cyk6CisgICAgICAgICogcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzOiBGaXhlZCB0aGUgYnV0IHRoYXQgYSBSZWZlcmVuY2VFcnJv
ciB3aWxsIGJlIHRocm93biB3aGVuIHRlc3RzIGFyZSBvcGVuZWQgaW4gYSBicm93c2VyLgorCiAy
MDE2LTAzLTEwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW09TIFhdIE1haW4gZnJhbWUgc2Nyb2xsYmFycyBzaG91bGQgYXBwZWFyIG9uIHRoZSBs
ZWZ0IG9uIFJUTCBzeXN0ZW1zCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vZXZl
bnQtaW5zaWRlLXNsb3R0ZWQtbm9kZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9ldmVudC1pbnNpZGUtc2xvdHRlZC1ub2RlLmh0bWwJKHJldmlzaW9uIDE5
Nzk1OCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9ldmVudC1pbnNpZGUtc2xvdHRl
ZC1ub2RlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsODMgKzcsMzIgQEAKICAgICA8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMv
c2hhZG93LyNldmVudC1wYXRocyI+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFkb3ctdHJlZS1oZWxwZXJzLmpzIj48L3NjcmlwdD4KICAgICA8bGluayByZWw9J3N0
eWxlc2hlZXQnIGhyZWY9Jy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgogPC9oZWFk
PgogPGJvZHk+CiAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KICAgICA8c2NyaXB0PgogCi0gICAg
ICAgIGZ1bmN0aW9uIGRpc3BhdGNoRXZlbnRXaXRoTG9nKHNoYWRvdywgZXZlbnQpIHsKLSAgICAg
ICAgICAgIHZhciBsb2cgPSBbXTsKLQotICAgICAgICAgICAgdmFyIGF0dGFjaGVkTm9kZXMgPSBb
XTsKLSAgICAgICAgICAgIGZvciAodmFyIG5vZGVLZXkgaW4gc2hhZG93KSB7Ci0gICAgICAgICAg
ICAgICAgdmFyIHN0YXJ0aW5nTm9kZSA9IHNoYWRvd1tub2RlS2V5XTsKLSAgICAgICAgICAgICAg
ICBmb3IgKHZhciBub2RlID0gc3RhcnRpbmdOb2RlOyBub2RlOyBub2RlID0gbm9kZS5wYXJlbnRO
b2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhdHRhY2hlZE5vZGVzLmluZGV4T2Yobm9k
ZSkgPj0gMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
ICAgICAgICBhdHRhY2hlZE5vZGVzLnB1c2gobm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgIG5v
ZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudC50eXBlLCAoZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBsb2cucHVzaChbdGhpcywgZXZlbnQudGFyZ2V0XSk7Ci0gICAg
ICAgICAgICAgICAgICAgIH0pLmJpbmQobm9kZSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgc2hhZG93LnRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50
KTsKLQotICAgICAgICAgICAgcmV0dXJuIGxvZzsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0
aW9uIGVsZW1lbnQobmFtZSwgY2hpbGRyZW4sIGNsYXNzTmFtZSkgewotICAgICAgICAgICAgdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG5hbWUpOwotICAgICAgICAgICAgaWYg
KGNsYXNzTmFtZSkKLSAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGNsYXNzTmFt
ZTsKLSAgICAgICAgICAgIGlmIChjaGlsZHJlbikgewotICAgICAgICAgICAgICAgIGZvciAodmFy
IGNoaWxkIG9mIGNoaWxkcmVuKQotICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZENo
aWxkKGNoaWxkKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBlbGVtZW50Owot
ICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gYXR0YWNoU2hhZG93KGhvc3QsIG1vZGUsIGNo
aWxkcmVuKSB7Ci0gICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93
KHttb2RlOiBtb2RlfSk7Ci0gICAgICAgICAgICBpZiAoY2hpbGRyZW4pIHsKLSAgICAgICAgICAg
ICAgICBmb3IgKHZhciBjaGlsZCBvZiBjaGlsZHJlbikKLSAgICAgICAgICAgICAgICAgICAgc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChjaGlsZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBy
ZXR1cm4gc2hhZG93Um9vdDsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVNo
YWRvd0hvc3RXaXRoQXNzaWduZWRHcmFuZENoaWxkKG1vZGUpIHsKLSAgICAgICAgICAgIHZhciBo
b3N0ID0gZWxlbWVudCgnZGl2JywgWwotICAgICAgICAgICAgICAgIGVsZW1lbnQoJ2InLCBbCi0g
ICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ2knKQotICAgICAgICAgICAgICAgIF0pCi0gICAg
ICAgICAgICBdKTsKLQotICAgICAgICAgICAgdmFyIHJvb3QgPSBhdHRhY2hTaGFkb3coaG9zdCwg
bW9kZSwgWwotICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3NwYW4nLCBbCi0gICAgICAgICAgICAg
ICAgICAgIGVsZW1lbnQoJ3Nsb3QnKQotICAgICAgICAgICAgICAgIF0pCi0gICAgICAgICAgICBd
KTsKLQotICAgICAgICAgICAgcmV0dXJuIHt0YXJnZXQ6IGhvc3QucXVlcnlTZWxlY3RvcignaScp
LCB0YXJnZXRQYXJlbnQ6IGhvc3QucXVlcnlTZWxlY3RvcignYicpLCBob3N0OiBob3N0LAotICAg
ICAgICAgICAgICAgICAgICBzbG90OiByb290LnF1ZXJ5U2VsZWN0b3IoJ3Nsb3QnKSwgc2xvdFBh
cmVudDogcm9vdC5xdWVyeVNlbGVjdG9yKCdzcGFuJyksIHJvb3Q6IHJvb3R9OwotICAgICAgICB9
CisgICAgICAgIC8qCisgICAgICAgIGRpdiAoaG9zdDsgNSkgLS0tLS0tLS0tLS0tLSAocm9vdDsg
NCkKKyAgICAgICAgICsgYiAoaG9zdENoaWxkOyAxKSAgICAgICAgICArIHNwYW4gKHNsb3RQYXJl
bnQ7IDMpCisgICAgICAgICAgICsgaSAoaG9zdEdyYW5kQ2hpbGQ7IDApICAgICArIHNsb3QgKHNs
b3Q7IDIpCisgICAgICAgICovCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdEV2ZW50SW5EZXRhY2hl
ZFNoYWRvd0hvc3REZXNjZW5kYW50KG1vZGUpIHsKICAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIHZhciBzaGFkb3cgPSBjcmVhdGVTaGFkb3dIb3N0V2l0aEFz
c2lnbmVkR3JhbmRDaGlsZChtb2RlKTsKIAotICAgICAgICAgICAgICAgIGxvZyA9IGRpc3BhdGNo
RXZlbnRXaXRoTG9nKHNoYWRvdywgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZX0pKTsK
KyAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhzaGFkb3csIHNoYWRv
dy5ob3N0R3JhbmRDaGlsZCwgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZX0pKTsKIAog
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwgNiwgJ0V2ZW50UGF0aCBt
dXN0IGNvbnRhaW4gW3RhcmdldCwgdGFyZ2V0IHBhcmVudCwgc2xvdCwgc2xvdCBwYXJlbnQsIHNo
YWRvdyByb290LCBzaGFkb3cgaG9zdF0nKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZ1swXSwgW3NoYWRvdy50YXJnZXQsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRo
WzBdIG11c3QgYmUgdGhlIHRhcmdldCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nWzFdLCBbc2hhZG93LnRhcmdldFBhcmVudCwgc2hhZG93LnRhcmdldF0sICdFdmVu
dFBhdGhbMV0gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1swXSwgW3NoYWRvdy5ob3N0R3JhbmRDaGlsZCwg
c2hhZG93Lmhvc3RHcmFuZENoaWxkXSwgJ0V2ZW50UGF0aFswXSBtdXN0IGJlIHRoZSB0YXJnZXQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgW3NoYWRvdy5o
b3N0Q2hpbGQsIHNoYWRvdy5ob3N0R3JhbmRDaGlsZF0sICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0
aGUgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKICAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZ1syXSwgW3NoYWRvdy5zbG90LCBzaGFkb3cuc2xvdF0sICdFdmVudFBhdGhbMl0g
bXVzdCBiZSB0aGUgc2xvdCcpOwogICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nWzNdLCBbc2hhZG93LnNsb3RQYXJlbnQsIHNoYWRvdy5zbG90XSwgJ0V2ZW50UGF0aFszXSBt
dXN0IGJlIHRoZSBwYXJlbnQgb2YgdGhlIHNsb3QnKTsKICAgICAgICAgICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1s0XSwgW3NoYWRvdy5yb290LCBzaGFkb3cuc2xvdF0sICdFdmVudFBh
dGhbNF0gbXVzdCBiZSB0aGUgc2hhZG93IHJvb3QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1s1XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50
UGF0aFs1XSBtdXN0IGJlIHRoZSBzaGFkb3cgaG9zdCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobG9nWzVdLCBbc2hhZG93Lmhvc3QsIHNoYWRvdy5ob3N0R3JhbmRDaGls
ZF0sICdFdmVudFBhdGhbNV0gbXVzdCBiZSB0aGUgc2hhZG93IGhvc3QnKTsKIAogICAgICAgICAg
ICAgfSwgJ0ZpcmluZyBhbiBldmVudCBpbnNpZGUgYSBncmFuZCBjaGlsZCBvZiBhIGRldGFjaGVk
ICcgKyBtb2RlICsgJyBtb2RlIHNoYWRvdyBob3N0Jyk7CiAgICAgICAgIH0KQEAgLTk2LDE4ICs0
NSwxOCBAQAogICAgICAgICAgICAgICAgIHZhciBzaGFkb3cgPSBjcmVhdGVTaGFkb3dIb3N0V2l0
aEFzc2lnbmVkR3JhbmRDaGlsZChtb2RlKTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKHNoYWRvdy5ob3N0KTsKIAotICAgICAgICAgICAgICAgIGxvZyA9IGRpc3Bh
dGNoRXZlbnRXaXRoTG9nKHNoYWRvdywgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZX0p
KTsKKyAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhzaGFkb3csIHNo
YWRvdy5ob3N0R3JhbmRDaGlsZCwgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxlczogdHJ1ZX0pKTsK
IAogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwgOSwgJ0V2ZW50UGF0
aCBtdXN0IGNvbnRhaW4gW3RhcmdldCwgdGFyZ2V0IHBhcmVudCwgc2xvdCwgc2xvdCBwYXJlbnQs
IHNoYWRvdyByb290LCBzaGFkb3cgaG9zdCwgYm9keSwgaHRtbCwgZG9jdW1lbnRdJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFtzaGFkb3cudGFyZ2V0LCBz
aGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFswXSBtdXN0IGJlIHRoZSB0YXJnZXQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgW3NoYWRvdy50YXJnZXRQYXJl
bnQsIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzFdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0
aGUgdGFyZ2V0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0s
IFtzaGFkb3cuaG9zdEdyYW5kQ2hpbGQsIHNoYWRvdy5ob3N0R3JhbmRDaGlsZF0sICdFdmVudFBh
dGhbMF0gbXVzdCBiZSB0aGUgdGFyZ2V0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhsb2dbMV0sIFtzaGFkb3cuaG9zdENoaWxkLCBzaGFkb3cuaG9zdEdyYW5kQ2hpbGRd
LCAnRXZlbnRQYXRoWzFdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgdGFyZ2V0Jyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMl0sIFtzaGFkb3cuc2xvdCwgc2hh
ZG93LnNsb3RdLCAnRXZlbnRQYXRoWzJdIG11c3QgYmUgdGhlIHNsb3QnKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1szXSwgW3NoYWRvdy5zbG90UGFyZW50LCBzaGFk
b3cuc2xvdF0sICdFdmVudFBhdGhbM10gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSBzbG90Jyk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNF0sIFtzaGFkb3cucm9v
dCwgc2hhZG93LnNsb3RdLCAnRXZlbnRQYXRoWzRdIG11c3QgYmUgdGhlIHNoYWRvdyByb290Jyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNV0sIFtzaGFkb3cuaG9z
dCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbNV0gbXVzdCBiZSB0aGUgc2hhZG93IGhvc3Qn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s2XSwgW2RvY3VtZW50
LmJvZHksIHNoYWRvdy50YXJnZXRdLCAnRXZlbnRQYXRoWzZdIG11c3QgYmUgdGhlIGJvZHkgZWxl
bWVudCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzddLCBbZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFs3XSBtdXN0
IGJlIHRoZSBodG1sIGVsZW1lbnQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZ1s4XSwgW2RvY3VtZW50LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFs4XSBtdXN0
IGJlIHRoZSBodG1sIGVsZW1lbnQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZ1s1XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cuaG9zdEdyYW5kQ2hpbGRdLCAnRXZlbnRQ
YXRoWzVdIG11c3QgYmUgdGhlIHNoYWRvdyBob3N0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhsb2dbNl0sIFtkb2N1bWVudC5ib2R5LCBzaGFkb3cuaG9zdEdyYW5kQ2hp
bGRdLCAnRXZlbnRQYXRoWzZdIG11c3QgYmUgdGhlIGJvZHkgZWxlbWVudCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzddLCBbZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LCBzaGFkb3cuaG9zdEdyYW5kQ2hpbGRdLCAnRXZlbnRQYXRoWzddIG11c3QgYmUgdGhlIGh0
bWwgZWxlbWVudCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzhd
LCBbZG9jdW1lbnQsIHNoYWRvdy5ob3N0R3JhbmRDaGlsZF0sICdFdmVudFBhdGhbOF0gbXVzdCBi
ZSB0aGUgaHRtbCBlbGVtZW50Jyk7CiAKICAgICAgICAgICAgIH0sICdGaXJpbmcgYW4gZXZlbnQg
aW5zaWRlIGEgZ3JhbmQgY2hpbGQgb2YgYW4gaW4tZG9jdW1lbnQgJyArIG1vZGUgKyAnIG1vZGUg
c2hhZG93IGhvc3QnKTsKICAgICAgICAgfQpAQCAtMTE1LDcwICs2NCwyNiBAQAogICAgICAgICB0
ZXN0RXZlbnRJblNoYWRvd0hvc3REZXNjZW5kYW50SW5zaWRlRG9jdW1lbnQoJ29wZW4nKTsKICAg
ICAgICAgdGVzdEV2ZW50SW5TaGFkb3dIb3N0RGVzY2VuZGFudEluc2lkZURvY3VtZW50KCdjbG9z
ZWQnKTsKIAotICAgICAgICBmdW5jdGlvbiBjcmVhdGVOZXN0ZWRTaGFkb3dUcmVlc1dpdGhTbG90
cyhpbm5lck1vZGUsIG91dGVyVXBwZXJNb2RlLCBvdXRlckxvd2VyTW9kZSkgewotICAgICAgICAg
ICAgdmFyIHVwcGVySG9zdCA9IGVsZW1lbnQoJ3VwcGVyLWhvc3QnLCBbCi0gICAgICAgICAgICAg
ICAgZWxlbWVudCgncCcsIFsKLSAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgnbG93ZXItaG9z
dCcsIFsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ2EnKQotICAgICAgICAgICAg
ICAgICAgICBdKQotICAgICAgICAgICAgICAgIF0pCi0gICAgICAgICAgICBdKTsKLQotICAgICAg
ICAgICAgdmFyIHVwcGVyU2hhZG93ID0gYXR0YWNoU2hhZG93KHVwcGVySG9zdCwgb3V0ZXJVcHBl
ck1vZGUsIFsKLSAgICAgICAgICAgICAgICBlbGVtZW50KCdiJywgWwotICAgICAgICAgICAgICAg
ICAgICBlbGVtZW50KCdzbG90JywgW10sICd1cHBlci1zbG90JykKLSAgICAgICAgICAgICAgICBd
KQotICAgICAgICAgICAgXSk7Ci0KLSAgICAgICAgICAgIHZhciBsb3dlckhvc3QgPSB1cHBlckhv
c3QucXVlcnlTZWxlY3RvcignbG93ZXItaG9zdCcpOwotICAgICAgICAgICAgdmFyIGxvd2VyU2hh
ZG93ID0gYXR0YWNoU2hhZG93KGxvd2VySG9zdCwgb3V0ZXJMb3dlck1vZGUsIFsKLSAgICAgICAg
ICAgICAgICBlbGVtZW50KCdlbScsIFsKLSAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgnaW5u
ZXItaG9zdCcsIFsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3NwYW4nLCBbCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCgnc2xvdCcsIFtdLCAnbG93ZXItc2xv
dCcpCi0gICAgICAgICAgICAgICAgICAgICAgICBdKQotICAgICAgICAgICAgICAgICAgICBdKQot
ICAgICAgICAgICAgICAgIF0pCi0gICAgICAgICAgICBdKTsKLQotICAgICAgICAgICAgaW5uZXJT
aGFkb3cgPSBhdHRhY2hTaGFkb3cobG93ZXJTaGFkb3cucXVlcnlTZWxlY3RvcignaW5uZXItaG9z
dCcpLCBpbm5lck1vZGUsIFsKLSAgICAgICAgICAgICAgICBlbGVtZW50KCdpJywgWwotICAgICAg
ICAgICAgICAgICAgICBlbGVtZW50KCdzbG90JywgW10sICdpbm5lci1zbG90JykKLSAgICAgICAg
ICAgICAgICBdKQotICAgICAgICAgICAgXSk7Ci0KLSAgICAgICAgICAgIHJldHVybiB7Ci0gICAg
ICAgICAgICAgICAgaG9zdDogdXBwZXJIb3N0LAotICAgICAgICAgICAgICAgIHRhcmdldDogdXBw
ZXJIb3N0LnF1ZXJ5U2VsZWN0b3IoJ2EnKSwKLSAgICAgICAgICAgICAgICB1cHBlclNoYWRvdzog
dXBwZXJTaGFkb3csCi0gICAgICAgICAgICAgICAgdXBwZXJTbG90OiB1cHBlclNoYWRvdy5xdWVy
eVNlbGVjdG9yKCdzbG90JyksCi0gICAgICAgICAgICAgICAgbG93ZXJTaGFkb3c6IGxvd2VyU2hh
ZG93LAotICAgICAgICAgICAgICAgIGxvd2VyU2xvdDogbG93ZXJTaGFkb3cucXVlcnlTZWxlY3Rv
cignc2xvdCcpLAotICAgICAgICAgICAgICAgIGlubmVyU2hhZG93OiBpbm5lclNoYWRvdywKLSAg
ICAgICAgICAgICAgICBpbm5lclNsb3Q6IGlubmVyU2hhZG93LnF1ZXJ5U2VsZWN0b3IoJ3Nsb3Qn
KSwKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH0KLQogICAgICAgICAvKgogICAgICAgICB1cHBl
ci1ob3N0ICgxNCkgLS0gKHVwcGVyU2hhZG93OyAxMykKICAgICAgICAgICsgcCAoMTApICAgICAg
ICAgICsgYiAoMTIpCiAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICsgc2xvdCAodXBwZXJT
bG90OyAxMSkKLSAgICAgICAgICArIGxvd2VyLWhvc3QgKDkpIC0tIChsb3dlclNoYWRvdzsgOCkK
LSAgICAgICAgICAgICsgYSAodGFyZ2V0OyAwKSAgICsgZW0gKDcpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICsgaW5uZXItaG9zdCAoNikgLS0tLS0tLS0gKGlubmVyU2hhZG93OyA1
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc3BhbiAoMikgICAgICAgICAg
ICAgICsgaSAoNCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2xvdCAo
bG93ZXJTbG90OyAxKSArIHNsb3QgKGlubmVyU2xvdDsgMykKKyAgICAgICAgICArIGxvd2VyLWhv
c3QgKDkpIC0tLS0tLSAobG93ZXJTaGFkb3c7IDgpCisgICAgICAgICAgICArIGEgKGxvd2VyQ2hp
bGQ7IDApICAgKyBlbSAoNykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsg
aW5uZXItaG9zdCAoNikgLS0tLS0tLS0gKGlubmVyU2hhZG93OyA1KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICArIHNwYW4gKDIpICAgICAgICAgICAgICArIGkgKDQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzbG90IChsb3dlclNsb3Q7
IDEpICsgc2xvdCAoaW5uZXJTbG90OyAzKQogICAgICAgICAqLwogCiAgICAgICAgIGZ1bmN0aW9u
IHRlc3RFdmVudFVuZGVyVHdvU2hhZG93Um9vdHMob3V0ZXJVcHBlck1vZGUsIG91dGVyTG93ZXJN
b2RlLCBpbm5lck1vZGUpIHsKICAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgICAgIHZhciBzaGFkb3cgPSBjcmVhdGVOZXN0ZWRTaGFkb3dUcmVlc1dpdGhTbG90cyhp
bm5lck1vZGUsIG91dGVyVXBwZXJNb2RlLCBvdXRlckxvd2VyTW9kZSk7CiAKLSAgICAgICAgICAg
ICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0aExvZyhzaGFkb3csIG5ldyBFdmVudCgnZm9vJywg
e2J1YmJsZXM6IHRydWV9KSk7CisgICAgICAgICAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdp
dGhMb2coc2hhZG93LCBzaGFkb3cubG93ZXJDaGlsZCwgbmV3IEV2ZW50KCdmb28nLCB7YnViYmxl
czogdHJ1ZX0pKTsKIAogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwg
MTUsICdFdmVudFBhdGggbXVzdCBjb250YWluIDE1IHRhcmdldHMnKTsKIAotICAgICAgICAgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbc2hhZG93LnRhcmdldCwgc2hhZG93LnRh
cmdldF0sICdFdmVudFBhdGhbMF0gbXVzdCBiZSB0aGUgdGFyZ2V0Jyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFtzaGFkb3cubG93ZXJDaGlsZCwgc2hhZG93
Lmxvd2VyQ2hpbGRdLCAnRXZlbnRQYXRoWzBdIG11c3QgYmUgdGhlIHRhcmdldCcpOwogICAgICAg
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbc2hhZG93Lmxvd2VyU2xvdCwg
c2hhZG93Lmxvd2VyU2xvdF0sICdFdmVudFBhdGhbMV0gbXVzdCBiZSB0aGUgc2xvdCBpbnNpZGUg
dGhlIGxvd2VyIHNoYWRvdyB0cmVlJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dbMl0sIFtzaGFkb3cubG93ZXJTbG90LnBhcmVudE5vZGUsIHNoYWRvdy5sb3dlclNs
b3RdLCAnRXZlbnRQYXRoWzJdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0aGUgc2xvdCBpbnNpZGUg
dGhlIGxvd2VyIHNoYWRvdyB0cmVlJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dbM10sIFtzaGFkb3cuaW5uZXJTbG90LCBzaGFkb3cuaW5uZXJTbG90XSwgJ0V2ZW50
UGF0aFszXSBtdXN0IGJlIHRoZSBzbG90IGluc2lkZSB0aGUgc2hhZG93IHRyZWUgaW5zaWRlIHRo
ZSBsb3dlciBzaGFkb3cgdHJlZScpOwpAQCAtMTg3LDEyICs5MiwxMiBAQAogICAgICAgICAgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzZdLCBbc2hhZG93LmlubmVyU2hhZG93Lmhvc3Qs
IHNoYWRvdy5sb3dlclNsb3RdLCAnRXZlbnRQYXRoWzZdIG11c3QgYmUgdGhlIGhvc3Qgb2YgdGhl
IGlubmVyIHNoYWRvdyB0cmVlJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dbN10sIFtzaGFkb3cubG93ZXJTaGFkb3cuZmlyc3RDaGlsZCwgc2hhZG93Lmxvd2VyU2xv
dF0sICdFdmVudFBhdGhbN10gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSBpbm5lciBzaGFkb3cg
aG9zdCcpOwogICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzhdLCBbc2hh
ZG93Lmxvd2VyU2hhZG93LCBzaGFkb3cubG93ZXJTbG90XSwgJ0V2ZW50UGF0aFs4XSBtdXN0IGJl
IHRoZSBsb3dlciBzaGFkb3cgcm9vdCcpOwotICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nWzldLCBbc2hhZG93Lmxvd2VyU2hhZG93Lmhvc3QsIHNoYWRvdy50YXJnZXRdLCAn
RXZlbnRQYXRoWzldIG11c3QgYmUgdGhlIGxvd2VyIHNoYWRvdyBob3N0Jyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMTBdLCBbc2hhZG93Lmhvc3QuZmlyc3RDaGls
ZCwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhbMTBdIG11c3QgYmUgdGhlIHBhcmVudCBvZiB0
aGUgZ3JhbmQgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1s5XSwgW3NoYWRvdy5sb3dlclNoYWRvdy5ob3N0LCBzaGFkb3cubG93
ZXJDaGlsZF0sICdFdmVudFBhdGhbOV0gbXVzdCBiZSB0aGUgbG93ZXIgc2hhZG93IGhvc3QnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxMF0sIFtzaGFkb3cuaG9z
dC5maXJzdENoaWxkLCBzaGFkb3cubG93ZXJDaGlsZF0sICdFdmVudFBhdGhbMTBdIG11c3QgYmUg
dGhlIHBhcmVudCBvZiB0aGUgZ3JhbmQgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxMV0sIFtzaGFkb3cudXBwZXJTbG90LCBz
aGFkb3cudXBwZXJTbG90XSwgJ0V2ZW50UGF0aFsxMV0gbXVzdCBiZSB0aGUgc2xvdCBpbnNpZGUg
dGhlIHVwcGVyIHNoYWRvdyB0cmVlJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dbMTJdLCBbc2hhZG93LnVwcGVyU2xvdC5wYXJlbnROb2RlLCBzaGFkb3cudXBwZXJT
bG90XSwgJ0V2ZW50UGF0aFsxMl0gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSBzbG90IGluc2lk
ZSB0aGUgdXBwZXIgc2hhZG93IHRyZWUnKTsKICAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZ1sxM10sIFtzaGFkb3cudXBwZXJTaGFkb3csIHNoYWRvdy51cHBlclNsb3RdLCAn
RXZlbnRQYXRoWzEzXSBtdXN0IGJlIHRoZSB1cHBlciBzaGFkb3cgcm9vdCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzE0XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cu
dGFyZ2V0XSwgJ0V2ZW50UGF0aFsxNF0gbXVzdCBiZSB0aGUgaG9zdCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzE0XSwgW3NoYWRvdy5ob3N0LCBzaGFkb3cubG93
ZXJDaGlsZF0sICdFdmVudFBhdGhbMTRdIG11c3QgYmUgdGhlIGhvc3QnKTsKIAogICAgICAgICAg
ICAgfSwgJ0ZpcmluZyBhbiBldmVudCBvbiBhIG5vZGUgd2l0aCB0d28gYW5jZXN0b3JzIHdpdGgg
YSBkZXRhY2hlZCAnICsgb3V0ZXJVcHBlck1vZGUgKyAnIGFuZCAnICsgb3V0ZXJMb3dlck1vZGUK
ICAgICAgICAgICAgICAgICArICcgc2hhZG93IHRyZWVzIHdpdGggYW4gaW5uZXIgJyArIGlubmVy
TW9kZSArICcgc2hhZG93IHRyZWUnKTsKQEAgLTIyMSwxNiArMTI2LDE0IEBACiAgICAgICAgIGZ1
bmN0aW9uIHRlc3RFdmVudEluc2lkZU5lc3RlZFNoYWRvd3NVbmRlckFub3RoZXJTaGFkb3cob3V0
ZXJVcHBlck1vZGUsIG91dGVyTG93ZXJNb2RlLCBpbm5lck1vZGUpIHsKICAgICAgICAgICAgIHRl
c3QoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHZhciBzaGFkb3cgPSBjcmVhdGVOZXN0
ZWRTaGFkb3dUcmVlc1dpdGhTbG90cyhpbm5lck1vZGUsIG91dGVyVXBwZXJNb2RlLCBvdXRlckxv
d2VyTW9kZSk7Ci0gICAgICAgICAgICAgICAgc2hhZG93LmRlZXBlc3ROb2RlSW5MaWdodERPTSA9
IHNoYWRvdy50YXJnZXQ7IC8vIE5lZWRlZCBmb3IgZGlzcGF0Y2hFdmVudFdpdGhMb2cgdG8gYXR0
YWNoIGV2ZW50IGxpc3RlbmVycy4gCi0gICAgICAgICAgICAgICAgc2hhZG93LnRhcmdldCA9IHNo
YWRvdy5pbm5lclNsb3Q7CiAKLSAgICAgICAgICAgICAgICBsb2cgPSBkaXNwYXRjaEV2ZW50V2l0
aExvZyhzaGFkb3csIG5ldyBFdmVudCgnZm9vJywge2J1YmJsZXM6IHRydWV9KSk7CisgICAgICAg
ICAgICAgICAgbG9nID0gZGlzcGF0Y2hFdmVudFdpdGhMb2coc2hhZG93LCBzaGFkb3cuaW5uZXJT
bG90LCBuZXcgRXZlbnQoJ2ZvbycsIHtidWJibGVzOiB0cnVlfSkpOwogCiAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCAxMiwgJ0V2ZW50UGF0aCBtdXN0IGNvbnRhaW4g
MTIgdGFyZ2V0cycpOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
MF0sIFtzaGFkb3cudGFyZ2V0LCBzaGFkb3cudGFyZ2V0XSwgJ0V2ZW50UGF0aFswXSBtdXN0IGJl
IHRoZSB0YXJnZXQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sx
XSwgW3NoYWRvdy50YXJnZXQucGFyZW50Tm9kZSwgc2hhZG93LnRhcmdldF0sICdFdmVudFBhdGhb
MV0gbXVzdCBiZSB0aGUgcGFyZW50IG9mIHRoZSB0YXJnZXQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgW3NoYWRvdy5pbm5lclNoYWRvdywgc2hhZG93LnRh
cmdldF0sICdFdmVudFBhdGhbMl0gbXVzdCBiZSB0aGUgaW5uZXIgc2hhZG93IHJvb3QnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1swXSwgW3NoYWRvdy5pbm5lclNs
b3QsIHNoYWRvdy5pbm5lclNsb3RdLCAnRXZlbnRQYXRoWzBdIG11c3QgYmUgdGhlIHRhcmdldCcp
OworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbc2hhZG93Lmlu
bmVyU2xvdC5wYXJlbnROb2RlLCBzaGFkb3cuaW5uZXJTbG90XSwgJ0V2ZW50UGF0aFsxXSBtdXN0
IGJlIHRoZSBwYXJlbnQgb2YgdGhlIHRhcmdldCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzJdLCBbc2hhZG93LmlubmVyU2hhZG93LCBzaGFkb3cuaW5uZXJTbG90
XSwgJ0V2ZW50UGF0aFsyXSBtdXN0IGJlIHRoZSBpbm5lciBzaGFkb3cgcm9vdCcpOwogICAgICAg
ICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbc2hhZG93LmlubmVyU2hhZG93
Lmhvc3QsIHNoYWRvdy5pbm5lclNoYWRvdy5ob3N0XSwgJ0V2ZW50UGF0aFszXSBtdXN0IGJlIHRo
ZSBpbm5lciBzaGFkb3cgaG9zdCcpOwogICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzRdLCBbc2hhZG93Lmxvd2VyU2hhZG93LmZpcnN0Q2hpbGQsIHNoYWRvdy5pbm5lclNo
YWRvdy5ob3N0XSwgJ0V2ZW50UGF0aFs0XSBtdXN0IGJlIHRoZSBwYXJlbnQgb2YgdGhlIGlubmVy
IHNoYWRvdyBob3N0Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
NV0sIFtzaGFkb3cubG93ZXJTaGFkb3csIHNoYWRvdy5pbm5lclNoYWRvdy5ob3N0XSwgJ0V2ZW50
UGF0aFs1XSBtdXN0IGJlIHRoZSBsb3dlciAoYnV0IG91dGVyKSBzaGFkb3cgcm9vdCcpOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Jlc291cmNlcy9zaGFkb3ctdHJlZS1oZWxw
ZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9yZXNvdXJj
ZXMvc2hhZG93LXRyZWUtaGVscGVycy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3Qvc2hhZG93LWRvbS9yZXNvdXJjZXMvc2hhZG93LXRyZWUtaGVscGVycy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEyNiBAQAorCitmdW5jdGlvbiBkaXNwYXRjaEV2ZW50V2l0aExvZyhz
aGFkb3csIHRhcmdldCwgZXZlbnQpIHsKKyAgICB2YXIgbG9nID0gW107CisKKyAgICB2YXIgYXR0
YWNoZWROb2RlcyA9IFtdOworICAgIGZvciAodmFyIG5vZGVLZXkgaW4gc2hhZG93KSB7CisgICAg
ICAgIHZhciBzdGFydGluZ05vZGUgPSBzaGFkb3dbbm9kZUtleV07CisgICAgICAgIGZvciAodmFy
IG5vZGUgPSBzdGFydGluZ05vZGU7IG5vZGU7IG5vZGUgPSBub2RlLnBhcmVudE5vZGUpIHsKKyAg
ICAgICAgICAgIGlmIChhdHRhY2hlZE5vZGVzLmluZGV4T2Yobm9kZSkgPj0gMCkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGF0dGFjaGVkTm9kZXMucHVzaChub2RlKTsK
KyAgICAgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudC50eXBlLCAoZnVuY3Rpb24g
KGV2ZW50KSB7CisgICAgICAgICAgICAgICAgbG9nLnB1c2goW3RoaXMsIGV2ZW50LnRhcmdldF0p
OworICAgICAgICAgICAgfSkuYmluZChub2RlKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0
YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7CisKKyAgICByZXR1cm4gbG9nOworfQorCitmdW5j
dGlvbiBlbGVtZW50KG5hbWUsIGNoaWxkcmVuLCBjbGFzc05hbWUpIHsKKyAgICB2YXIgZWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7CisgICAgaWYgKGNsYXNzTmFtZSkKKyAg
ICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSBjbGFzc05hbWU7CisgICAgaWYgKGNoaWxkcmVuKSB7
CisgICAgICAgIGZvciAodmFyIGNoaWxkIG9mIGNoaWxkcmVuKQorICAgICAgICAgICAgZWxlbWVu
dC5hcHBlbmRDaGlsZChjaGlsZCk7CisgICAgfQorICAgIHJldHVybiBlbGVtZW50OworfQorCitm
dW5jdGlvbiBhdHRhY2hTaGFkb3coaG9zdCwgbW9kZSwgY2hpbGRyZW4pIHsKKyAgICB2YXIgc2hh
ZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiBtb2RlfSk7CisgICAgaWYgKGNoaWxk
cmVuKSB7CisgICAgICAgIGZvciAodmFyIGNoaWxkIG9mIGNoaWxkcmVuKQorICAgICAgICAgICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChjaGlsZCk7CisgICAgfQorICAgIHJldHVybiBzaGFkb3dS
b290OworfQorCitmdW5jdGlvbiBjcmVhdGVTaGFkb3dIb3N0V2l0aEFzc2lnbmVkR3JhbmRDaGls
ZChtb2RlKSB7CisgICAgdmFyIGhvc3QgPSBlbGVtZW50KCdkaXYnLCBbCisgICAgICAgIGVsZW1l
bnQoJ2InLCBbCisgICAgICAgICAgICBlbGVtZW50KCdpJykKKyAgICAgICAgXSkKKyAgICBdKTsK
KworICAgIHZhciByb290ID0gYXR0YWNoU2hhZG93KGhvc3QsIG1vZGUsIFsKKyAgICAgICAgZWxl
bWVudCgnc3BhbicsIFsKKyAgICAgICAgICAgIGVsZW1lbnQoJ3Nsb3QnKQorICAgICAgICBdKQor
ICAgIF0pOworCisgICAgcmV0dXJuIHsKKyAgICAgICAgaG9zdDogaG9zdCwKKyAgICAgICAgaG9z
dENoaWxkOiBob3N0LnF1ZXJ5U2VsZWN0b3IoJ2InKSwKKyAgICAgICAgaG9zdEdyYW5kQ2hpbGQ6
IGhvc3QucXVlcnlTZWxlY3RvcignaScpLAorICAgICAgICBzbG90OiByb290LnF1ZXJ5U2VsZWN0
b3IoJ3Nsb3QnKSwKKyAgICAgICAgc2xvdFBhcmVudDogcm9vdC5xdWVyeVNlbGVjdG9yKCdzcGFu
JyksCisgICAgICAgIHJvb3Q6IHJvb3QKKyAgICB9OworfQorCisvKgorZGl2IChob3N0KSAtLS0t
LS0tLS0tLS0tIChyb290KQorICsgYiAoaG9zdENoaWxkKSAgICAgICAgICArIHNwYW4gKHNsb3RQ
YXJlbnQpCisgICArIGkgKGhvc3RHcmFuZENoaWxkKSAgICAgKyBzbG90IChzbG90KQorKi8KKwor
ZnVuY3Rpb24gY3JlYXRlTmVzdGVkU2hhZG93VHJlZXNXaXRoU2xvdHMoaW5uZXJNb2RlLCBvdXRl
clVwcGVyTW9kZSwgb3V0ZXJMb3dlck1vZGUpIHsKKyAgICB2YXIgdXBwZXJIb3N0ID0gZWxlbWVu
dCgndXBwZXItaG9zdCcsIFsKKyAgICAgICAgZWxlbWVudCgncCcsIFsKKyAgICAgICAgICAgIGVs
ZW1lbnQoJ2xvd2VyLWhvc3QnLCBbCisgICAgICAgICAgICAgICAgZWxlbWVudCgnYScpCisgICAg
ICAgICAgICBdKQorICAgICAgICBdKQorICAgIF0pOworCisgICAgdmFyIHVwcGVyU2hhZG93ID0g
YXR0YWNoU2hhZG93KHVwcGVySG9zdCwgb3V0ZXJVcHBlck1vZGUsIFsKKyAgICAgICAgZWxlbWVu
dCgnYicsIFsKKyAgICAgICAgICAgIGVsZW1lbnQoJ3Nsb3QnLCBbXSwgJ3VwcGVyLXNsb3QnKQor
ICAgICAgICBdKQorICAgIF0pOworCisgICAgdmFyIGxvd2VySG9zdCA9IHVwcGVySG9zdC5xdWVy
eVNlbGVjdG9yKCdsb3dlci1ob3N0Jyk7CisgICAgdmFyIGxvd2VyU2hhZG93ID0gYXR0YWNoU2hh
ZG93KGxvd2VySG9zdCwgb3V0ZXJMb3dlck1vZGUsIFsKKyAgICAgICAgZWxlbWVudCgnZW0nLCBb
CisgICAgICAgICAgICBlbGVtZW50KCdpbm5lci1ob3N0JywgWworICAgICAgICAgICAgICAgIGVs
ZW1lbnQoJ3NwYW4nLCBbCisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQoJ3Nsb3QnLCBbXSwg
J2xvd2VyLXNsb3QnKQorICAgICAgICAgICAgICAgIF0pCisgICAgICAgICAgICBdKQorICAgICAg
ICBdKQorICAgIF0pOworCisgICAgaW5uZXJTaGFkb3cgPSBhdHRhY2hTaGFkb3cobG93ZXJTaGFk
b3cucXVlcnlTZWxlY3RvcignaW5uZXItaG9zdCcpLCBpbm5lck1vZGUsIFsKKyAgICAgICAgZWxl
bWVudCgnaScsIFsKKyAgICAgICAgICAgIGVsZW1lbnQoJ3Nsb3QnLCBbXSwgJ2lubmVyLXNsb3Qn
KQorICAgICAgICBdKQorICAgIF0pOworCisgICAgcmV0dXJuIHsKKyAgICAgICAgaG9zdDogdXBw
ZXJIb3N0LAorICAgICAgICBsb3dlckNoaWxkOiB1cHBlckhvc3QucXVlcnlTZWxlY3RvcignYScp
LAorICAgICAgICB1cHBlclNoYWRvdzogdXBwZXJTaGFkb3csCisgICAgICAgIHVwcGVyU2xvdDog
dXBwZXJTaGFkb3cucXVlcnlTZWxlY3Rvcignc2xvdCcpLAorICAgICAgICBsb3dlclNoYWRvdzog
bG93ZXJTaGFkb3csCisgICAgICAgIGxvd2VyU2xvdDogbG93ZXJTaGFkb3cucXVlcnlTZWxlY3Rv
cignc2xvdCcpLAorICAgICAgICBpbm5lclNoYWRvdzogaW5uZXJTaGFkb3csCisgICAgICAgIGlu
bmVyU2xvdDogaW5uZXJTaGFkb3cucXVlcnlTZWxlY3Rvcignc2xvdCcpLAorICAgIH07Cit9CisK
Ky8qCit1cHBlci1ob3N0IC0tICh1cHBlclNoYWRvdykKKyArIHAgICAgICAgICAgICsgYgorICAg
fCAgICAgICAgICAgICArIHNsb3QgKHVwcGVyU2xvdCkKKyAgIHwKKyAgICsgbG93ZXItaG9zdCAt
LS0tLS0gKGxvd2VyU2hhZG93KQorICAgICArIGEgKGxvd2VyQ2hpbGQpICAgKyBlbQorICAgICAg
ICAgICAgICAgICAgICAgICAgICArIGlubmVyLWhvc3QgLS0tLS0tLS0tLS0tIChpbm5lclNoYWRv
dykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNwYW4gICAgICAgICAgICAgICAgICAg
KyBpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNsb3QgKGxvd2VyU2xvdCkgICAg
ICsgc2xvdCAoaW5uZXJTbG90KQorKi8KSW5kZXg6IExheW91dFRlc3RzL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMJKHJldmlzaW9uIDE5Nzk1OCkKKysrIExheW91dFRlc3RzL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcwkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBA
QCBmdW5jdGlvbiBjb252ZXJ0UmVzdWx0KHJlc3VsdFN0YXR1cyl7DQogKiAgc3BhY2luZyBiZXR3
ZWVuIGNlbGxzIGlzIHByZXNlcnZlZCwgYW5kIGl0IGlzIHRoZXJlZm9yZSBub3QgcmVhZGFibGUu
IEJ5DQogKiAgc2V0dGluZyBvdXRwdXQgdG8gZmFsc2UsIHRoZSBIVE1MIHRhYmxlIHdpbGwgbm90
IGJlIGNyZWF0ZWQNCiAqLw0KLXNldHVwKHsib3V0cHV0IjogZmFsc2UsICJleHBsaWNpdF90aW1l
b3V0IjogISF0ZXN0UnVubmVyfSk7DQorc2V0dXAoeyJvdXRwdXQiOiBmYWxzZSwgImV4cGxpY2l0
X3RpbWVvdXQiOiAhIXNlbGYudGVzdFJ1bm5lcn0pOw0KIA0KIC8qICBVc2luZyBhIGNhbGxiYWNr
IGZ1bmN0aW9uLCB0ZXN0IHJlc3VsdHMgd2lsbCBiZSBhZGRlZCB0byB0aGUgcGFnZSBpbiBhIA0K
ICogICBtYW5uZXIgdGhhdCBhbGxvd3MgZHVtcEFzVGV4dCB0byBwcm9kdWNlIHJlYWRhYmxlIHRl
c3QgcmVzdWx0cw0K
</data>

          </attachment>
      

    </bug>

</bugzilla>