<?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>80405</bug_id>
          
          <creation_ts>2012-03-06 04:37:11 -0800</creation_ts>
          <short_desc>[Shadow DOM] Extends path notation used in test utility function so that we can specify arbitrary ShadowRoot in Shadow Tree.</short_desc>
          <delta_ts>2012-03-06 23:19:28 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>79197</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Hayato Ito">hayato</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>morrita</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>571725</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-06 04:37:11 -0800</bug_when>
    <thetext>Some layout tests (in fast/dom/shadow) use a &apos;getElementByIdInShadow(path)&apos; utility function, which does not support getting an element in arbitrary ShadowRoot.
We can get an element only from the youngest ShadowRoot by the current path notation.

It&apos;d be nice to get an element from arbitrary ShadowRoot in ShadowTree, extending path notation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571730</commentid>
    <comment_count>1</comment_count>
      <attachid>130353</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-06 04:42:12 -0800</bug_when>
    <thetext>Created attachment 130353
support multiple shadowroots notation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571893</commentid>
    <comment_count>2</comment_count>
      <attachid>130353</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-03-06 08:57:09 -0800</bug_when>
    <thetext>Comment on attachment 130353
support multiple shadowroots notation

View in context: https://bugs.webkit.org/attachment.cgi?id=130353&amp;action=review

&gt; LayoutTests/fast/dom/shadow/resources/shadow-dom.js:38
&gt; +function getElementInShadowTree(path)

ShadowTreeStack maybe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572341</commentid>
    <comment_count>3</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-06 17:38:05 -0800</bug_when>
    <thetext>Thank you for the review.

(In reply to comment #2)
&gt; (From update of attachment 130353 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130353&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/dom/shadow/resources/shadow-dom.js:38
&gt; &gt; +function getElementInShadowTree(path)
&gt; 
&gt; ShadowTreeStack maybe?


Okay. Let me rename that. I&apos;ll land this patch after renaming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572366</commentid>
    <comment_count>4</comment_count>
      <attachid>130501</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-06 17:53:57 -0800</bug_when>
    <thetext>Created attachment 130501
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572384</commentid>
    <comment_count>5</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-06 18:05:17 -0800</bug_when>
    <thetext>Let me merge this patch with http://trac.webkit.org/changeset/109967.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572410</commentid>
    <comment_count>6</comment_count>
      <attachid>130510</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-06 18:26:28 -0800</bug_when>
    <thetext>Created attachment 130510
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572574</commentid>
    <comment_count>7</comment_count>
      <attachid>130510</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-06 23:19:24 -0800</bug_when>
    <thetext>Comment on attachment 130510
Patch for landing

Clearing flags on attachment: 130510

Committed r110022: &lt;http://trac.webkit.org/changeset/110022&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572575</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-06 23:19:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130353</attachid>
            <date>2012-03-06 04:42:12 -0800</date>
            <delta_ts>2012-03-06 17:53:51 -0800</delta_ts>
            <desc>support multiple shadowroots notation</desc>
            <filename>bug-80405-20120306214210.patch</filename>
            <type>text/plain</type>
            <size>13670</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5Nzg0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWM0MzYzYzc5MWNjODM3YTY4Zjg0
ODE5ZDY1YmU0YjJiNGQ4ZDg3Yi4uYjIxMTA4YTkyN2NkNDVlOWM5Mzg1OTk1ZTJjMDk4MzljNDRj
N2I5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTA2ICBIYXlhdG8gSXRvICA8aGF5
YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93IERPTV0gRXh0ZW5kIGEgJ3BhdGgn
IG5vdGF0aW9uIGluIHV0aWxpdHkgZnVuY3Rpb24gc28gdGhhdCB3ZSBjYW4gc3BlY2lmeSBhcmJp
dHJhcnkgU2hhZG93Um9vdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwNDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRXh0cmFjdCBjb21tb24gdXRpbGl0eSBmdW5jdGlvbiwgZ2V0RWxlbWVudEJ5SWRJ
blNoYWRvdyhwYXRoKSwgaW50byBhIHNoYWRvdy1kb20uanMKKyAgICAgICAgKHJlbmFtZWQgZnJv
bSBjcmVhdGUtZG9tLmpzKSBhbmQgc3VwcG9ydCAnY29uc2VjdXRpdmUgc2xhc2hlcycgbm90YXRp
b24gc28gdGhhdAorICAgICAgICB3ZSBjYW4gc3BlY2lmeSBhcmJpdHJhcnkgU2hhZG93Um9vdCBp
biBzaGFkb3cgRE9NIHRyZWUuICBVbnRpbCBub3csIHdlIGNhbiBnZXQgYW4gZWxlbWVudAorICAg
ICAgICBvbmx5IGZyb20gdGhlIHlvdW5nZXN0IFNoYWRvd1Jvb3QuCisKKyAgICAgICAgKiBmYXN0
L2RvbS9zaGFkb3cvYWNjZXNzLWtleS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9n
ZXQtZWxlbWVudC1ieS1pZC1pbi1zaGFkb3ctcm9vdC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRvdy1yb290Lmh0bWw6Cisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9zaGFkb3ctZG9tLmpzOiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9jcmVhdGUtZG9tLmpz
LgorICAgICAgICAoY3JlYXRlU2hhZG93Um9vdCk6CisgICAgICAgIChjcmVhdGVET00pOgorICAg
ICAgICAoaXNTaGFkb3dSb290KToKKyAgICAgICAgKGdldEVsZW1lbnRJblNoYWRvd1RyZWUpOgor
ICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0bWw6CisK
IDIwMTItMDMtMDUgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VXNlIGEgcHJvcGVyIGNsb3NpbmcgdGFnIGZvciBzaGFkb3cgZWxlbWVudCBsYXlvdXQgdGVzdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2FjY2Vzcy1rZXkuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hY2Nlc3Mta2V5Lmh0bWwKaW5kZXggMzUwZWQz
MTlmYjAxZDk1MzI2ZGYwYmRlMjQ3OWQyN2Y1YTFjYmVjMS4uNTkwNjFjM2ZlMjQ5Zjg0YWNkZDA0
YWYwOTZiMmM4ZDk5ZGFkN2Y4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2FjY2Vzcy1rZXkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYWNj
ZXNzLWtleS5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jcmVhdGUtZG9tLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgpAQCAtNDQsMTcgKzQ0LDYgQEAgZnVuY3Rpb24gcmVjb3JkRXZlbnQo
ZXZlbnQpCiAgICAgZXZlbnRSZWNvcmRzW2V2ZW50VHlwZV0ucHVzaChldmVudC50YXJnZXQuaWQp
OwogfQogCi1mdW5jdGlvbiBnZXRFbGVtZW50SW5TaGFkb3cocGF0aCkKLXsKLSAgICB2YXIgaWRz
ID0gcGF0aC5zcGxpdCgnLycpOwotICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoaWRzWzBdKTsKLSAgICBmb3IgKHZhciBpID0gMTsgZWxlbWVudCAhPSBudWxsICYmIGkg
PCBpZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMu
c2hhZG93Um9vdChlbGVtZW50KTsKLSAgICAgICAgZWxlbWVudCA9IGludGVybmFscy5nZXRFbGVt
ZW50QnlJZEluU2hhZG93Um9vdChzaGFkb3dSb290LCBpZHNbaV0pOwotICAgIH0KLSAgICByZXR1
cm4gZWxlbWVudDsKLX0KLQogZnVuY3Rpb24gcHJlcGFyZURPTVRyZWUocGFyZW50KQogewogICAg
IHBhcmVudC5hcHBlbmRDaGlsZCgKQEAgLTcyLDcgKzYxLDcgQEAgZnVuY3Rpb24gcHJlcGFyZURP
TVRyZWUocGFyZW50KQogICAgICAgICAgICAgICAgJ3NoYWRvd0MvaW5wdXREJywgJ3NoYWRvd0Mv
aW5wdXRFJywKICAgICAgICAgICAgICAgICdzaGFkb3dDL3NoYWRvd0YvaW5wdXRHJ107CiAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIGVsZW1l
bnQgPSBnZXRFbGVtZW50SW5TaGFkb3coaWRzW2ldKTsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBn
ZXRFbGVtZW50SW5TaGFkb3dUcmVlKGlkc1tpXSk7CiAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcignZm9jdXMnLCByZWNvcmRFdmVudCwgZmFsc2UpOwogICAgIH0KIH0KQEAgLTkzLDEy
ICs4MiwxMiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBwcmVzc0FjY2Vzc0tleSgnYScpOwogICAg
IHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJpbnB1dEUiXScpOwogCi0g
ICAgZ2V0RWxlbWVudEluU2hhZG93KCdzaGFkb3dDL2lucHV0RCcpLmZvY3VzKCk7CisgICAgZ2V0
RWxlbWVudEluU2hhZG93VHJlZSgnc2hhZG93Qy9pbnB1dEQnKS5mb2N1cygpOwogICAgIGNsZWFy
RXZlbnRSZWNvcmRzKCk7CiAgICAgcHJlc3NBY2Nlc3NLZXkoJ2EnKTsKICAgICBzaG91bGRCZSgn
ZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpJywgJ1siaW5wdXRFIl0nKTsKIAotICAgIGdldEVsZW1l
bnRJblNoYWRvdygnc2hhZG93Qy9zaGFkb3dGL2lucHV0RycpLmZvY3VzKCk7CisgICAgZ2V0RWxl
bWVudEluU2hhZG93VHJlZSgnc2hhZG93Qy9zaGFkb3dGL2lucHV0RycpLmZvY3VzKCk7CiAgICAg
Y2xlYXJFdmVudFJlY29yZHMoKTsKICAgICBwcmVzc0FjY2Vzc0tleSgnYScpOwogICAgIHNob3Vs
ZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJpbnB1dEUiXScpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRv
dy1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXQtZWxl
bWVudC1ieS1pZC1pbi1zaGFkb3ctcm9vdC1leHBlY3RlZC50eHQKaW5kZXggOWFkM2IxYjdkYmY2
ZGM0YmRkZjg3MWNkN2NkNjNkZTg3YTQzZmJhOS4uODRmYjJhYjQyYjJjY2JhNjc5YWY3MGFjOTUw
NzgxYWM5ZjE1ZmE5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dl
dC1lbGVtZW50LWJ5LWlkLWluLXNoYWRvdy1yb290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LXJvb3QtZXhw
ZWN0ZWQudHh0CkBAIC0xLDExICsxLDEzIEBACi1UZXN0cyB0byBlbnN1cmUgdGhhdCBpbnRlcm5h
bHMuZ2V0RWxlbWVudEJ5SWRJblRyZWVTY29wZSBjYW4gZ2V0IGFuIGVsZW1lbnQgaW4gVHJlZVNj
b3BlIGJ5IGl0cyBpZC4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQKK1Rlc3RzIHRvIGVuc3VyZSB0
aGF0IGludGVybmFscy5nZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdCBjYW4gZ2V0IGFuIGVsZW1l
bnQgaW4gU2hhZG93Um9vdCBieSBpdHMgaWQuIENhbiBvbmx5IHJ1biB3aXRoaW4gRFJUCiAKIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGdldEVsZW1lbnRJblNoYWRvdygnZGl2
QS9pbnB1dEInKS5pZCBpcyAiaW5wdXRCIgotUEFTUyBnZXRFbGVtZW50SW5TaGFkb3coJ2RpdkEv
ZGl2QycpLmlkIGlzICJkaXZDIgotUEFTUyBnZXRFbGVtZW50SW5TaGFkb3coJ2RpdkEvZGl2Qy9p
bnB1dEQnKS5pZCBpcyAiaW5wdXREIgorUEFTUyBnZXRFbGVtZW50SW5TaGFkb3dUcmVlKCdkaXZB
L2lucHV0QicpLmlkIGlzICJpbnB1dEIiCitQQVNTIGdldEVsZW1lbnRJblNoYWRvd1RyZWUoJ2Rp
dkEvZGl2QycpLmlkIGlzICJkaXZDIgorUEFTUyBnZXRFbGVtZW50SW5TaGFkb3dUcmVlKCdkaXZB
L2RpdkMvaW5wdXREJykuaWQgaXMgImlucHV0RCIKK1BBU1MgZ2V0RWxlbWVudEluU2hhZG93VHJl
ZSgnZGl2QS9kaXZDLy9pbnB1dEUnKS5pZCBpcyAiaW5wdXRFIgorUEFTUyBnZXRFbGVtZW50SW5T
aGFkb3dUcmVlKCdkaXZBL2RpdkMvLy9pbnB1dEYnKS5pZCBpcyAiaW5wdXRGIgogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LXJvb3Qu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVudC1ieS1pZC1pbi1z
aGFkb3ctcm9vdC5odG1sCmluZGV4IDc0NzlhNzZhMjZlNjY0ZmExMDBjYTlhMmVjMmY1OTMxYzUz
ZDE3ODYuLjE5ZjhiMDI5NWFhNjZlYmI3MDFhM2I3YWFmZmU2YzY2MTRjMjFjYjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVudC1ieS1pZC1pbi1zaGFk
b3ctcm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVu
dC1ieS1pZC1pbi1zaGFkb3ctcm9vdC5odG1sCkBAIC0yLDIyICsyLDExIEBACiA8aHRtbD4KIDxo
ZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NyZWF0ZS1kb20uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4K
IDxib2R5PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0byBlbnN1cmUgdGhhdCBpbnRl
cm5hbHMuZ2V0RWxlbWVudEJ5SWRJblRyZWVTY29wZSBjYW4gZ2V0IGFuIGVsZW1lbnQgaW4gVHJl
ZVNjb3BlIGJ5IGl0cyBpZC4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQiKTsKLQotZnVuY3Rpb24g
Z2V0RWxlbWVudEluU2hhZG93KHBhdGgpCi17Ci0gICAgdmFyIGlkcyA9IHBhdGguc3BsaXQoJy8n
KTsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkc1swXSk7Ci0g
ICAgZm9yICh2YXIgaSA9IDE7IGVsZW1lbnQgIT0gbnVsbCAmJiBpIDwgaWRzLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgIHZhciBzaGFkb3dSb290ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZWxlbWVu
dCk7Ci0gICAgICAgIGVsZW1lbnQgPSBpbnRlcm5hbHMuZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jv
b3Qoc2hhZG93Um9vdCwgaWRzW2ldKTsKLSAgICB9Ci0gICAgcmV0dXJuIGVsZW1lbnQ7Ci19Citk
ZXNjcmlwdGlvbigiVGVzdHMgdG8gZW5zdXJlIHRoYXQgaW50ZXJuYWxzLmdldEVsZW1lbnRCeUlk
SW5TaGFkb3dSb290IGNhbiBnZXQgYW4gZWxlbWVudCBpbiBTaGFkb3dSb290IGJ5IGl0cyBpZC4g
Q2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQiKTsKIAogZnVuY3Rpb24gcHJlcGFyZURvbVRyZWUocGFy
ZW50KQogewpAQCAtMjcsMTcgKzE2LDI5IEBAIGZ1bmN0aW9uIHByZXBhcmVEb21UcmVlKHBhcmVu
dCkKICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1
dEInfSksCiAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2Rp
dkMnfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7
J2lkJzogJ2lucHV0RCd9KSkpKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXREJ30pKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0RSd9KSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdp
bnB1dEYnfSkpKSkpKTsKIH0KIAogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldE11bHRpcGxlU2hhZG93U3VidHJlZXNFbmFibGVkKHRydWUpOworCiAgICAgcHJlcGFy
ZURvbVRyZWUoZG9jdW1lbnQuYm9keSk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRF
bGVtZW50SW5TaGFkb3coJ2RpdkEvaW5wdXRCJykuaWQiLCAnaW5wdXRCJyk7Ci0gICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJnZXRFbGVtZW50SW5TaGFkb3coJ2RpdkEvZGl2QycpLmlkIiwgJ2Rp
dkMnKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldEVsZW1lbnRJblNoYWRvdygnZGl2
QS9kaXZDL2lucHV0RCcpLmlkIiwgJ2lucHV0RCcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZ2V0RWxlbWVudEluU2hhZG93VHJlZSgnZGl2QS9pbnB1dEInKS5pZCIsICdpbnB1dEInKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldEVsZW1lbnRJblNoYWRvd1RyZWUoJ2RpdkEv
ZGl2QycpLmlkIiwgJ2RpdkMnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldEVsZW1l
bnRJblNoYWRvd1RyZWUoJ2RpdkEvZGl2Qy9pbnB1dEQnKS5pZCIsICdpbnB1dEQnKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImdldEVsZW1lbnRJblNoYWRvd1RyZWUoJ2RpdkEvZGl2Qy8v
aW5wdXRFJykuaWQiLCAnaW5wdXRFJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRF
bGVtZW50SW5TaGFkb3dUcmVlKCdkaXZBL2RpdkMvLy9pbnB1dEYnKS5pZCIsICdpbnB1dEYnKTsK
KworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dE11bHRpcGxlU2hhZG93U3VidHJlZXNFbmFibGVkKGZhbHNlKTsKIH0KIAogdGVzdCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9jcmVhdGUtZG9t
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9jcmVhdGUtZG9tLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MmNhM2RhNGZlOGZlZmFlMGU4MjI4MzNm
ODY0YWE3NGZjOTg4YWVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvY3JlYXRlLWRvbS5q
cworKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLWZ1bmN0aW9uIGNyZWF0ZVNoYWRvd1Jv
b3QoKQotewotICAgIHJldHVybiB7J2lzU2hhZG93Um9vdCc6IHRydWUsCi0gICAgICAgICAgICAn
Y2hpbGRyZW4nOiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpfTsKLX0KLQot
Ly8gVGhpcyBmdW5jdGlvbiBjYW4gdGFrZSBvcHRpb25hbCBjaGlsZCBlbGVtZW50cywgd2hpY2gg
bWlnaHQgYmUgYSByZXN1bHQgb2YgY3JlYXRlU2hhZG93Um9vdCgpLCBhcyBhcmd1bWVudHNbMjpd
LgotZnVuY3Rpb24gY3JlYXRlRE9NKHRhZ05hbWUsIGF0dHJpYnV0ZXMpCi17Ci0gICAgdmFyIGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpOwotICAgIGZvciAodmFyIG5h
bWUgaW4gYXR0cmlidXRlcykKLSAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgYXR0
cmlidXRlc1tuYW1lXSk7Ci0gICAgdmFyIGNoaWxkRWxlbWVudHMgPSBBcnJheS5wcm90b3R5cGUu
c2xpY2UuY2FsbChhcmd1bWVudHMsIDIpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRF
bGVtZW50cy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgY2hpbGQgPSBjaGlsZEVsZW1lbnRz
W2ldOwotICAgICAgICBpZiAoY2hpbGQuaXNTaGFkb3dSb290KSB7Ci0gICAgICAgICAgICB2YXIg
c2hhZG93Um9vdDsKLSAgICAgICAgICAgIGlmICh3aW5kb3cuV2ViS2l0U2hhZG93Um9vdCkKLSAg
ICAgICAgICAgICAgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGVsZW1lbnQpOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICBzaGFkb3dSb290ID0gbmV3IGludGVybmFs
cy5lbnN1cmVTaGFkb3dSb290KGVsZW1lbnQpOwotICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7
IGogPCBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7ICsraikKLSAgICAgICAgICAgICAgICBzaGFkb3dS
b290LmFwcGVuZENoaWxkKGNoaWxkLmNoaWxkcmVuW2pdKTsKLSAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNoaWxkKTsKLSAgICB9Ci0gICAgcmV0dXJuIGVs
ZW1lbnQ7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3Vy
Y2VzL3NoYWRvdy1kb20uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2Vz
L3NoYWRvdy1kb20uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNkMDM4OGU3ODYzM2Y3MzU5MDY5MWUwMjM3OTlh
YWRmZTE2MDJmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9yZXNvdXJjZXMvc2hhZG93LWRvbS5qcwpAQCAtMCwwICsxLDUyIEBACitmdW5jdGlvbiBjcmVh
dGVTaGFkb3dSb290KCkKK3sKKyAgICByZXR1cm4geydpc1NoYWRvd1Jvb3QnOiB0cnVlLAorICAg
ICAgICAgICAgJ2NoaWxkcmVuJzogQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRz
KX07Cit9CisKKy8vIFRoaXMgZnVuY3Rpb24gY2FuIHRha2Ugb3B0aW9uYWwgY2hpbGQgZWxlbWVu
dHMsIHdoaWNoIG1pZ2h0IGJlIGEgcmVzdWx0IG9mIGNyZWF0ZVNoYWRvd1Jvb3QoKSwgYXMgYXJn
dW1lbnRzWzI6XS4KK2Z1bmN0aW9uIGNyZWF0ZURPTSh0YWdOYW1lLCBhdHRyaWJ1dGVzKQorewor
ICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTsKKyAgICBm
b3IgKHZhciBuYW1lIGluIGF0dHJpYnV0ZXMpCisgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRl
KG5hbWUsIGF0dHJpYnV0ZXNbbmFtZV0pOworICAgIHZhciBjaGlsZEVsZW1lbnRzID0gQXJyYXku
cHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAyKTsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGNoaWxkRWxlbWVudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIGNoaWxkID0gY2hp
bGRFbGVtZW50c1tpXTsKKyAgICAgICAgaWYgKGNoaWxkLmlzU2hhZG93Um9vdCkgeworICAgICAg
ICAgICAgdmFyIHNoYWRvd1Jvb3Q7CisgICAgICAgICAgICBpZiAod2luZG93LldlYktpdFNoYWRv
d1Jvb3QpCisgICAgICAgICAgICAgIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChl
bGVtZW50KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgc2hhZG93Um9vdCA9IG5l
dyBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChlbGVtZW50KTsKKyAgICAgICAgICAgIGZvciAo
dmFyIGogPSAwOyBqIDwgY2hpbGQuY2hpbGRyZW4ubGVuZ3RoOyArK2opCisgICAgICAgICAgICAg
ICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjaGlsZC5jaGlsZHJlbltqXSk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjaGlsZCk7CisgICAgfQorICAg
IHJldHVybiBlbGVtZW50OworfQorCitmdW5jdGlvbiBpc1NoYWRvd1Jvb3Qobm9kZSkKK3sKKyAg
ICAvLyBGSVhNRTogd2luZG93LmludGVybmFscyBzaG91bGQgaGF2ZSBpbnRlcm5hbHMuaXNTaGFk
b3dSb290KG5vZGUpLgorICAgIHJldHVybiBub2RlLmhvc3Q7Cit9CisKKy8vIFlvdSBjYW4gc3Bl
ZmlmeSB5b3VuZ2VyU2hhZG93Um9vdCBieSBjb25zZWN1dGl2ZSBzbGFzaGVzLgorLy8gU2VlIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVudC1ieS1pZC1pbi1zaGFkb3ctcm9v
dC5odG1sIGZvciBhY3R1YWwgdXNhZ2VzLgorZnVuY3Rpb24gZ2V0RWxlbWVudEluU2hhZG93VHJl
ZShwYXRoKQoreworICAgIHZhciBpZHMgPSBwYXRoLnNwbGl0KCcvJyk7CisgICAgdmFyIG5vZGUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZHNbMF0pOworICAgIGZvciAodmFyIGkgPSAxOyBu
b2RlICE9IG51bGwgJiYgaSA8IGlkcy5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoaXNTaGFk
b3dSb290KG5vZGUpKQorICAgICAgICAgICAgbm9kZSA9IGludGVybmFscy55b3VuZ2VyU2hhZG93
Um9vdChub2RlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbm9kZSA9IGludGVybmFscy5v
bGRlc3RTaGFkb3dSb290KG5vZGUpOworICAgICAgICBpZiAoaWRzW2ldICE9ICcnKQorICAgICAg
ICAgICAgbm9kZSA9IGludGVybmFscy5nZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChub2RlLCBp
ZHNbaV0pOworICAgIH0KKyAgICByZXR1cm4gbm9kZTsKK30KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0bWwKaW5kZXgg
YzQ5NDQzMTdkMTg3ZmJjNGJlYjkzODFhYjI2OTI0Njk1NDA2ODU3ZC4uNGIyNzMxNDZmY2U5MDI5
ODA5NGNlODJiNjMwYWU4ZWM3YWFlOGIzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5odG1sCkBAIC0yLDcgKzIsNyBA
QAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jcmVhdGUtZG9tLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3Jp
cHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgpAQCAtNjQsMTcg
KzY0LDYgQEAgZnVuY3Rpb24gcmVjb3JkRXZlbnQoZXZlbnQpCiAgICAgZXZlbnRSZWNvcmRzW2V2
ZW50VHlwZV0ucHVzaChldmVudFN0cmluZyk7CiB9CiAKLWZ1bmN0aW9uIGdldEVsZW1lbnRJblNo
YWRvdyhwYXRoKQotewotICAgIHZhciBpZHMgPSBwYXRoLnNwbGl0KCcvJyk7Ci0gICAgdmFyIGVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZHNbMF0pOwotICAgIGZvciAodmFyIGkg
PSAxOyBlbGVtZW50ICE9IG51bGwgJiYgaSA8IGlkcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2
YXIgc2hhZG93Um9vdCA9IGludGVybmFscy5zaGFkb3dSb290KGVsZW1lbnQpOwotICAgICAgICBl
bGVtZW50ID0gaW50ZXJuYWxzLmdldEVsZW1lbnRCeUlkSW5TaGFkb3dSb290KHNoYWRvd1Jvb3Qs
IGlkc1tpXSk7Ci0gICAgfQotICAgIHJldHVybiBlbGVtZW50OwotfQotCiBmdW5jdGlvbiBwcmVw
YXJlRE9NVHJlZShwYXJlbnQpCiB7CiAgICAgcGFyZW50LmFwcGVuZENoaWxkKApAQCAtMTAwLDcg
Kzg5LDcgQEAgZnVuY3Rpb24gcHJlcGFyZURPTVRyZWUocGFyZW50KQogICAgICAgICAgICAgICAg
J3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkgnLCAnc2hhZG93RC9zaGFkb3dGL3NoYWRvd0cv
ZGl2SScsCiAgICAgICAgICAgICAgICAnc2hhZG93RC9kaXZKJywgJ3NoYWRvd0Qvc2hhZG93Sycs
ICdzaGFkb3dEL3NoYWRvd0svZGl2TCddOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWRzLmxl
bmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gZ2V0RWxlbWVudEluU2hhZG93KGlk
c1tpXSk7CisgICAgICAgIHZhciBlbGVtZW50ID0gZ2V0RWxlbWVudEluU2hhZG93VHJlZShpZHNb
aV0pOwogICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIHJlY29y
ZEV2ZW50LCBmYWxzZSk7CiAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vv
dXQnLCByZWNvcmRFdmVudCwgZmFsc2UpOwogICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoJ2ZvY3VzaW4nLCByZWNvcmRFdmVudCwgZmFsc2UpOwpAQCAtMTEzLDE3ICsxMDIsMTcgQEAg
ZnVuY3Rpb24gcHJlcGFyZURPTVRyZWUocGFyZW50KQogZnVuY3Rpb24gbW92ZU1vdXNlKG9sZEVs
ZW1lbnRJZCwgbmV3RWxlbWVudElkLCBtZXNzYWdlKQogewogICAgIGRlYnVnKCdcbicgKyBtZXNz
YWdlICsgJ1xuJyArICdNb3ZpbmcgbW91c2UgZnJvbSAnICsgb2xkRWxlbWVudElkICsgJyB0byAn
ICsgbmV3RWxlbWVudElkKTsKLSAgICBtb3ZlTW91c2VPdmVyKGdldEVsZW1lbnRJblNoYWRvdyhv
bGRFbGVtZW50SWQpKTsKKyAgICBtb3ZlTW91c2VPdmVyKGdldEVsZW1lbnRJblNoYWRvd1RyZWUo
b2xkRWxlbWVudElkKSk7CiAgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKLSAgICBtb3ZlTW91c2VP
dmVyKGdldEVsZW1lbnRJblNoYWRvdyhuZXdFbGVtZW50SWQpKTsKKyAgICBtb3ZlTW91c2VPdmVy
KGdldEVsZW1lbnRJblNoYWRvd1RyZWUobmV3RWxlbWVudElkKSk7CiB9CiAKIGZ1bmN0aW9uIG1v
dmVGb2N1cyhvbGRFbGVtZW50SWQsIG5ld0VsZW1lbnRJZCwgbWVzc2FnZSkKIHsKICAgICBkZWJ1
ZygnXG4nICsgbWVzc2FnZSArICdcbicgKyAnTW92aW5nIGZvY3VzIGZyb20gJyArIG9sZEVsZW1l
bnRJZCArICcgdG8gJyArIG5ld0VsZW1lbnRJZCk7Ci0gICAgZ2V0RWxlbWVudEluU2hhZG93KG9s
ZEVsZW1lbnRJZCkuZm9jdXMoKTsKKyAgICBnZXRFbGVtZW50SW5TaGFkb3dUcmVlKG9sZEVsZW1l
bnRJZCkuZm9jdXMoKTsKICAgICBjbGVhckV2ZW50UmVjb3JkcygpOwotICAgIGdldEVsZW1lbnRJ
blNoYWRvdyhuZXdFbGVtZW50SWQpLmZvY3VzKCk7CisgICAgZ2V0RWxlbWVudEluU2hhZG93VHJl
ZShuZXdFbGVtZW50SWQpLmZvY3VzKCk7CiB9CiAKIGZ1bmN0aW9uIHRlc3QoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130501</attachid>
            <date>2012-03-06 17:53:57 -0800</date>
            <delta_ts>2012-03-06 18:26:22 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-80405-20120307105355.patch</filename>
            <type>text/plain</type>
            <size>13771</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5Nzg0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWM0MzYzYzc5MWNjODM3YTY4Zjg0
ODE5ZDY1YmU0YjJiNGQ4ZDg3Yi4uMzA2OGUyOTcxNWZkNDc0ODNiOWQxNGE3MTcxNWRlNzkxN2Y1
NjBmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTA2ICBIYXlhdG8gSXRvICA8aGF5
YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93IERPTV0gRXh0ZW5kIGEgJ3BhdGgn
IG5vdGF0aW9uIGluIHV0aWxpdHkgZnVuY3Rpb24gc28gdGhhdCB3ZSBjYW4gc3BlY2lmeSBhcmJp
dHJhcnkgU2hhZG93Um9vdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwNDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292Lgor
CisgICAgICAgIEV4dHJhY3QgY29tbW9uIHV0aWxpdHkgZnVuY3Rpb24sIGdldEVsZW1lbnRCeUlk
SW5TaGFkb3cocGF0aCksIGludG8gYSBzaGFkb3ctZG9tLmpzCisgICAgICAgIChyZW5hbWVkIGZy
b20gY3JlYXRlLWRvbS5qcykgYW5kIHN1cHBvcnQgJ2NvbnNlY3V0aXZlIHNsYXNoZXMnIG5vdGF0
aW9uIHNvIHRoYXQKKyAgICAgICAgd2UgY2FuIHNwZWNpZnkgYXJiaXRyYXJ5IFNoYWRvd1Jvb3Qg
aW4gc2hhZG93IERPTSB0cmVlLiAgVW50aWwgbm93LCB3ZSBjYW4gZ2V0IGFuIGVsZW1lbnQKKyAg
ICAgICAgb25seSBmcm9tIHRoZSB5b3VuZ2VzdCBTaGFkb3dSb290LgorCisgICAgICAgICogZmFz
dC9kb20vc2hhZG93L2FjY2Vzcy1rZXkuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cv
Z2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVudC1ieS1pZC1pbi1zaGFkb3ctcm9vdC5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS5qczogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvY3JlYXRlLWRvbS5q
cy4KKyAgICAgICAgKGNyZWF0ZVNoYWRvd1Jvb3QpOgorICAgICAgICAoY3JlYXRlRE9NKToKKyAg
ICAgICAgKGlzU2hhZG93Um9vdCk6CisgICAgICAgIChnZXRFbGVtZW50SW5TaGFkb3dUcmVlU3Rh
Y2spOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0
bWw6CisKIDIwMTItMDMtMDUgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVXNlIGEgcHJvcGVyIGNsb3NpbmcgdGFnIGZvciBzaGFkb3cgZWxlbWVudCBsYXlvdXQg
dGVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2FjY2Vzcy1rZXku
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hY2Nlc3Mta2V5Lmh0bWwKaW5kZXgg
MzUwZWQzMTlmYjAxZDk1MzI2ZGYwYmRlMjQ3OWQyN2Y1YTFjYmVjMS4uZjA5NjE4NWJjMDk2YTMy
NmE5NGUzMzdjMmEwYzIxN2I5NTlkNWVlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2FjY2Vzcy1rZXkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvYWNjZXNzLWtleS5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jcmVhdGUtZG9tLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgpAQCAtNDQsMTcgKzQ0LDYgQEAgZnVuY3Rpb24gcmVjb3Jk
RXZlbnQoZXZlbnQpCiAgICAgZXZlbnRSZWNvcmRzW2V2ZW50VHlwZV0ucHVzaChldmVudC50YXJn
ZXQuaWQpOwogfQogCi1mdW5jdGlvbiBnZXRFbGVtZW50SW5TaGFkb3cocGF0aCkKLXsKLSAgICB2
YXIgaWRzID0gcGF0aC5zcGxpdCgnLycpOwotICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoaWRzWzBdKTsKLSAgICBmb3IgKHZhciBpID0gMTsgZWxlbWVudCAhPSBudWxs
ICYmIGkgPCBpZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBpbnRl
cm5hbHMuc2hhZG93Um9vdChlbGVtZW50KTsKLSAgICAgICAgZWxlbWVudCA9IGludGVybmFscy5n
ZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChzaGFkb3dSb290LCBpZHNbaV0pOwotICAgIH0KLSAg
ICByZXR1cm4gZWxlbWVudDsKLX0KLQogZnVuY3Rpb24gcHJlcGFyZURPTVRyZWUocGFyZW50KQog
ewogICAgIHBhcmVudC5hcHBlbmRDaGlsZCgKQEAgLTcyLDcgKzYxLDcgQEAgZnVuY3Rpb24gcHJl
cGFyZURPTVRyZWUocGFyZW50KQogICAgICAgICAgICAgICAgJ3NoYWRvd0MvaW5wdXREJywgJ3No
YWRvd0MvaW5wdXRFJywKICAgICAgICAgICAgICAgICdzaGFkb3dDL3NoYWRvd0YvaW5wdXRHJ107
CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFy
IGVsZW1lbnQgPSBnZXRFbGVtZW50SW5TaGFkb3coaWRzW2ldKTsKKyAgICAgICAgdmFyIGVsZW1l
bnQgPSBnZXRFbGVtZW50SW5TaGFkb3dUcmVlU3RhY2soaWRzW2ldKTsKICAgICAgICAgZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIHJlY29yZEV2ZW50LCBmYWxzZSk7CiAgICAgfQog
fQpAQCAtOTMsMTIgKzgyLDEyIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHByZXNzQWNjZXNzS2V5
KCdhJyk7CiAgICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9jdXMiKScsICdbImlucHV0
RSJdJyk7CiAKLSAgICBnZXRFbGVtZW50SW5TaGFkb3coJ3NoYWRvd0MvaW5wdXREJykuZm9jdXMo
KTsKKyAgICBnZXRFbGVtZW50SW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0MvaW5wdXREJykuZm9j
dXMoKTsKICAgICBjbGVhckV2ZW50UmVjb3JkcygpOwogICAgIHByZXNzQWNjZXNzS2V5KCdhJyk7
CiAgICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9jdXMiKScsICdbImlucHV0RSJdJyk7
CiAKLSAgICBnZXRFbGVtZW50SW5TaGFkb3coJ3NoYWRvd0Mvc2hhZG93Ri9pbnB1dEcnKS5mb2N1
cygpOworICAgIGdldEVsZW1lbnRJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93Qy9zaGFkb3dGL2lu
cHV0RycpLmZvY3VzKCk7CiAgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKICAgICBwcmVzc0FjY2Vz
c0tleSgnYScpOwogICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJp
bnB1dEUiXScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1l
bGVtZW50LWJ5LWlkLWluLXNoYWRvdy1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVudC1ieS1pZC1pbi1zaGFkb3ctcm9vdC1leHBlY3RlZC50
eHQKaW5kZXggOWFkM2IxYjdkYmY2ZGM0YmRkZjg3MWNkN2NkNjNkZTg3YTQzZmJhOS4uMzRkMjJl
M2NiMGI0MzM1ZmFkNzg2ODY3YTc2YmU5YzA2NGU2NDhmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRvdy1yb290LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnkt
aWQtaW4tc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDEzIEBACi1UZXN0cyB0
byBlbnN1cmUgdGhhdCBpbnRlcm5hbHMuZ2V0RWxlbWVudEJ5SWRJblRyZWVTY29wZSBjYW4gZ2V0
IGFuIGVsZW1lbnQgaW4gVHJlZVNjb3BlIGJ5IGl0cyBpZC4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBE
UlQKK1Rlc3RzIHRvIGVuc3VyZSB0aGF0IGludGVybmFscy5nZXRFbGVtZW50QnlJZEluU2hhZG93
Um9vdCBjYW4gZ2V0IGFuIGVsZW1lbnQgaW4gU2hhZG93Um9vdCBieSBpdHMgaWQuIENhbiBvbmx5
IHJ1biB3aXRoaW4gRFJUCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGdl
dEVsZW1lbnRJblNoYWRvdygnZGl2QS9pbnB1dEInKS5pZCBpcyAiaW5wdXRCIgotUEFTUyBnZXRF
bGVtZW50SW5TaGFkb3coJ2RpdkEvZGl2QycpLmlkIGlzICJkaXZDIgotUEFTUyBnZXRFbGVtZW50
SW5TaGFkb3coJ2RpdkEvZGl2Qy9pbnB1dEQnKS5pZCBpcyAiaW5wdXREIgorUEFTUyBnZXRFbGVt
ZW50SW5TaGFkb3dUcmVlU3RhY2soJ2RpdkEvaW5wdXRCJykuaWQgaXMgImlucHV0QiIKK1BBU1Mg
Z2V0RWxlbWVudEluU2hhZG93VHJlZVN0YWNrKCdkaXZBL2RpdkMnKS5pZCBpcyAiZGl2QyIKK1BB
U1MgZ2V0RWxlbWVudEluU2hhZG93VHJlZVN0YWNrKCdkaXZBL2RpdkMvaW5wdXREJykuaWQgaXMg
ImlucHV0RCIKK1BBU1MgZ2V0RWxlbWVudEluU2hhZG93VHJlZVN0YWNrKCdkaXZBL2RpdkMvL2lu
cHV0RScpLmlkIGlzICJpbnB1dEUiCitQQVNTIGdldEVsZW1lbnRJblNoYWRvd1RyZWVTdGFjaygn
ZGl2QS9kaXZDLy8vaW5wdXRGJykuaWQgaXMgImlucHV0RiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRvdy1yb290Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LXJvb3Qu
aHRtbAppbmRleCA3NDc5YTc2YTI2ZTY2NGZhMTAwY2E5YTJlYzJmNTkzMWM1M2QxNzg2Li5kMTll
Y2RiNmZmZWZjMWUyZTBlYTE1YTczOTU0MWRhYWQzOTUxZGY5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LXJvb3QuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4t
c2hhZG93LXJvb3QuaHRtbApAQCAtMiwyMiArMiwxMSBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jcmVhdGUtZG9tLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxz
Y3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdG8gZW5zdXJlIHRoYXQgaW50ZXJuYWxzLmdldEVs
ZW1lbnRCeUlkSW5UcmVlU2NvcGUgY2FuIGdldCBhbiBlbGVtZW50IGluIFRyZWVTY29wZSBieSBp
dHMgaWQuIENhbiBvbmx5IHJ1biB3aXRoaW4gRFJUIik7Ci0KLWZ1bmN0aW9uIGdldEVsZW1lbnRJ
blNoYWRvdyhwYXRoKQotewotICAgIHZhciBpZHMgPSBwYXRoLnNwbGl0KCcvJyk7Ci0gICAgdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZHNbMF0pOwotICAgIGZvciAodmFy
IGkgPSAxOyBlbGVtZW50ICE9IG51bGwgJiYgaSA8IGlkcy5sZW5ndGg7ICsraSkgewotICAgICAg
ICB2YXIgc2hhZG93Um9vdCA9IGludGVybmFscy5zaGFkb3dSb290KGVsZW1lbnQpOwotICAgICAg
ICBlbGVtZW50ID0gaW50ZXJuYWxzLmdldEVsZW1lbnRCeUlkSW5TaGFkb3dSb290KHNoYWRvd1Jv
b3QsIGlkc1tpXSk7Ci0gICAgfQotICAgIHJldHVybiBlbGVtZW50OwotfQorZGVzY3JpcHRpb24o
IlRlc3RzIHRvIGVuc3VyZSB0aGF0IGludGVybmFscy5nZXRFbGVtZW50QnlJZEluU2hhZG93Um9v
dCBjYW4gZ2V0IGFuIGVsZW1lbnQgaW4gU2hhZG93Um9vdCBieSBpdHMgaWQuIENhbiBvbmx5IHJ1
biB3aXRoaW4gRFJUIik7CiAKIGZ1bmN0aW9uIHByZXBhcmVEb21UcmVlKHBhcmVudCkKIHsKQEAg
LTI3LDE3ICsxNiwyOSBAQCBmdW5jdGlvbiBwcmVwYXJlRG9tVHJlZShwYXJlbnQpCiAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXRCJ30pLAogICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkaXZDJ30sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1
dEQnfSkpKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0RCd9KSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1dEUnfSkpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXRGJ30pKSkp
KSk7CiB9CiAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXRNdWx0
aXBsZVNoYWRvd1N1YnRyZWVzRW5hYmxlZCh0cnVlKTsKKwogICAgIHByZXBhcmVEb21UcmVlKGRv
Y3VtZW50LmJvZHkpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0RWxlbWVudEluU2hh
ZG93KCdkaXZBL2lucHV0QicpLmlkIiwgJ2lucHV0QicpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiZ2V0RWxlbWVudEluU2hhZG93KCdkaXZBL2RpdkMnKS5pZCIsICdkaXZDJyk7Ci0gICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRFbGVtZW50SW5TaGFkb3coJ2RpdkEvZGl2Qy9pbnB1
dEQnKS5pZCIsICdpbnB1dEQnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldEVsZW1l
bnRJblNoYWRvd1RyZWVTdGFjaygnZGl2QS9pbnB1dEInKS5pZCIsICdpbnB1dEInKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImdldEVsZW1lbnRJblNoYWRvd1RyZWVTdGFjaygnZGl2QS9k
aXZDJykuaWQiLCAnZGl2QycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0RWxlbWVu
dEluU2hhZG93VHJlZVN0YWNrKCdkaXZBL2RpdkMvaW5wdXREJykuaWQiLCAnaW5wdXREJyk7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRFbGVtZW50SW5TaGFkb3dUcmVlU3RhY2soJ2Rp
dkEvZGl2Qy8vaW5wdXRFJykuaWQiLCAnaW5wdXRFJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJnZXRFbGVtZW50SW5TaGFkb3dUcmVlU3RhY2soJ2RpdkEvZGl2Qy8vL2lucHV0RicpLmlk
IiwgJ2lucHV0RicpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0TXVsdGlwbGVTaGFkb3dTdWJ0cmVlc0VuYWJsZWQoZmFsc2UpOwogfQog
CiB0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3Vy
Y2VzL2NyZWF0ZS1kb20uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2Vz
L2NyZWF0ZS1kb20uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyY2EzZGE0ZmU4
ZmVmYWUwZTgyMjgzM2Y4NjRhYTc0ZmM5ODhhZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNl
cy9jcmVhdGUtZG9tLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotZnVuY3Rpb24g
Y3JlYXRlU2hhZG93Um9vdCgpCi17Ci0gICAgcmV0dXJuIHsnaXNTaGFkb3dSb290JzogdHJ1ZSwK
LSAgICAgICAgICAgICdjaGlsZHJlbic6IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3Vt
ZW50cyl9OwotfQotCi0vLyBUaGlzIGZ1bmN0aW9uIGNhbiB0YWtlIG9wdGlvbmFsIGNoaWxkIGVs
ZW1lbnRzLCB3aGljaCBtaWdodCBiZSBhIHJlc3VsdCBvZiBjcmVhdGVTaGFkb3dSb290KCksIGFz
IGFyZ3VtZW50c1syOl0uCi1mdW5jdGlvbiBjcmVhdGVET00odGFnTmFtZSwgYXR0cmlidXRlcykK
LXsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7Ci0g
ICAgZm9yICh2YXIgbmFtZSBpbiBhdHRyaWJ1dGVzKQotICAgICAgICBlbGVtZW50LnNldEF0dHJp
YnV0ZShuYW1lLCBhdHRyaWJ1dGVzW25hbWVdKTsKLSAgICB2YXIgY2hpbGRFbGVtZW50cyA9IEFy
cmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMik7Ci0gICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjaGlsZEVsZW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBjaGlsZCA9
IGNoaWxkRWxlbWVudHNbaV07Ci0gICAgICAgIGlmIChjaGlsZC5pc1NoYWRvd1Jvb3QpIHsKLSAg
ICAgICAgICAgIHZhciBzaGFkb3dSb290OwotICAgICAgICAgICAgaWYgKHdpbmRvdy5XZWJLaXRT
aGFkb3dSb290KQotICAgICAgICAgICAgICBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jv
b3QoZWxlbWVudCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIHNoYWRvd1Jvb3Qg
PSBuZXcgaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QoZWxlbWVudCk7Ci0gICAgICAgICAgICBm
b3IgKHZhciBqID0gMDsgaiA8IGNoaWxkLmNoaWxkcmVuLmxlbmd0aDsgKytqKQotICAgICAgICAg
ICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoY2hpbGQuY2hpbGRyZW5bal0pOwotICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hpbGQpOwotICAgIH0K
LSAgICByZXR1cm4gZWxlbWVudDsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjAyNGNlY2Q5MTM2YjMw
ZDI3ZTMxOTllOWNjYzY4MjEwOTljMDc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9zaGFkb3ctZG9tLmpzCkBAIC0wLDAgKzEsNTIgQEAK
K2Z1bmN0aW9uIGNyZWF0ZVNoYWRvd1Jvb3QoKQoreworICAgIHJldHVybiB7J2lzU2hhZG93Um9v
dCc6IHRydWUsCisgICAgICAgICAgICAnY2hpbGRyZW4nOiBBcnJheS5wcm90b3R5cGUuc2xpY2Uu
Y2FsbChhcmd1bWVudHMpfTsKK30KKworLy8gVGhpcyBmdW5jdGlvbiBjYW4gdGFrZSBvcHRpb25h
bCBjaGlsZCBlbGVtZW50cywgd2hpY2ggbWlnaHQgYmUgYSByZXN1bHQgb2YgY3JlYXRlU2hhZG93
Um9vdCgpLCBhcyBhcmd1bWVudHNbMjpdLgorZnVuY3Rpb24gY3JlYXRlRE9NKHRhZ05hbWUsIGF0
dHJpYnV0ZXMpCit7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRh
Z05hbWUpOworICAgIGZvciAodmFyIG5hbWUgaW4gYXR0cmlidXRlcykKKyAgICAgICAgZWxlbWVu
dC5zZXRBdHRyaWJ1dGUobmFtZSwgYXR0cmlidXRlc1tuYW1lXSk7CisgICAgdmFyIGNoaWxkRWxl
bWVudHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgY2hpbGRFbGVtZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICB2
YXIgY2hpbGQgPSBjaGlsZEVsZW1lbnRzW2ldOworICAgICAgICBpZiAoY2hpbGQuaXNTaGFkb3dS
b290KSB7CisgICAgICAgICAgICB2YXIgc2hhZG93Um9vdDsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cuV2ViS2l0U2hhZG93Um9vdCkKKyAgICAgICAgICAgICAgc2hhZG93Um9vdCA9IG5ldyBXZWJL
aXRTaGFkb3dSb290KGVsZW1lbnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICBz
aGFkb3dSb290ID0gbmV3IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KGVsZW1lbnQpOworICAg
ICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7ICsraikK
KyAgICAgICAgICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGNoaWxkLmNoaWxkcmVuW2pd
KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNoaWxk
KTsKKyAgICB9CisgICAgcmV0dXJuIGVsZW1lbnQ7Cit9CisKK2Z1bmN0aW9uIGlzU2hhZG93Um9v
dChub2RlKQoreworICAgIC8vIEZJWE1FOiB3aW5kb3cuaW50ZXJuYWxzIHNob3VsZCBoYXZlIGlu
dGVybmFscy5pc1NoYWRvd1Jvb3Qobm9kZSkuCisgICAgcmV0dXJuIG5vZGUuaG9zdDsKK30KKwor
Ly8gWW91IGNhbiBzcGVmaWZ5IHlvdW5nZXJTaGFkb3dSb290IGJ5IGNvbnNlY3V0aXZlIHNsYXNo
ZXMuCisvLyBTZWUgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50LWJ5LWlk
LWluLXNoYWRvdy1yb290Lmh0bWwgZm9yIGFjdHVhbCB1c2FnZXMuCitmdW5jdGlvbiBnZXRFbGVt
ZW50SW5TaGFkb3dUcmVlU3RhY2socGF0aCkKK3sKKyAgICB2YXIgaWRzID0gcGF0aC5zcGxpdCgn
LycpOworICAgIHZhciBub2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRzWzBdKTsKKyAg
ICBmb3IgKHZhciBpID0gMTsgbm9kZSAhPSBudWxsICYmIGkgPCBpZHMubGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgaWYgKGlzU2hhZG93Um9vdChub2RlKSkKKyAgICAgICAgICAgIG5vZGUgPSBpbnRl
cm5hbHMueW91bmdlclNoYWRvd1Jvb3Qobm9kZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG5vZGUgPSBpbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdChub2RlKTsKKyAgICAgICAgaWYgKGlk
c1tpXSAhPSAnJykKKyAgICAgICAgICAgIG5vZGUgPSBpbnRlcm5hbHMuZ2V0RWxlbWVudEJ5SWRJ
blNoYWRvd1Jvb3Qobm9kZSwgaWRzW2ldKTsKKyAgICB9CisgICAgcmV0dXJuIG5vZGU7Cit9CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnkt
ZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5
LWV2ZW50cy5odG1sCmluZGV4IGM0OTQ0MzE3ZDE4N2ZiYzRiZWI5MzgxYWIyNjkyNDY5NTQwNjg1
N2QuLjMwM2U3YzFkYzUzMGI5NGFhYzc0OTAwOThiZTA5NGJhMGI1MjUwZDcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMu
aHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvY3JlYXRlLWRvbS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3No
YWRvdy1kb20uanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KQEAgLTY0LDE3ICs2NCw2IEBAIGZ1bmN0aW9uIHJlY29yZEV2ZW50KGV2ZW50KQog
ICAgIGV2ZW50UmVjb3Jkc1tldmVudFR5cGVdLnB1c2goZXZlbnRTdHJpbmcpOwogfQogCi1mdW5j
dGlvbiBnZXRFbGVtZW50SW5TaGFkb3cocGF0aCkKLXsKLSAgICB2YXIgaWRzID0gcGF0aC5zcGxp
dCgnLycpOwotICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRzWzBd
KTsKLSAgICBmb3IgKHZhciBpID0gMTsgZWxlbWVudCAhPSBudWxsICYmIGkgPCBpZHMubGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93Um9vdChl
bGVtZW50KTsKLSAgICAgICAgZWxlbWVudCA9IGludGVybmFscy5nZXRFbGVtZW50QnlJZEluU2hh
ZG93Um9vdChzaGFkb3dSb290LCBpZHNbaV0pOwotICAgIH0KLSAgICByZXR1cm4gZWxlbWVudDsK
LX0KLQogZnVuY3Rpb24gcHJlcGFyZURPTVRyZWUocGFyZW50KQogewogICAgIHBhcmVudC5hcHBl
bmRDaGlsZCgKQEAgLTEwMCw3ICs4OSw3IEBAIGZ1bmN0aW9uIHByZXBhcmVET01UcmVlKHBhcmVu
dCkKICAgICAgICAgICAgICAgICdzaGFkb3dEL3NoYWRvd0Yvc2hhZG93Ry9kaXZIJywgJ3NoYWRv
d0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkknLAogICAgICAgICAgICAgICAgJ3NoYWRvd0QvZGl2Sics
ICdzaGFkb3dEL3NoYWRvd0snLCAnc2hhZG93RC9zaGFkb3dLL2RpdkwnXTsKICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGlkcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGdl
dEVsZW1lbnRJblNoYWRvdyhpZHNbaV0pOworICAgICAgICB2YXIgZWxlbWVudCA9IGdldEVsZW1l
bnRJblNoYWRvd1RyZWVTdGFjayhpZHNbaV0pOwogICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoJ21vdXNlb3ZlcicsIHJlY29yZEV2ZW50LCBmYWxzZSk7CiAgICAgICAgIGVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCByZWNvcmRFdmVudCwgZmFsc2UpOwogICAgICAg
ICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCByZWNvcmRFdmVudCwgZmFsc2Up
OwpAQCAtMTEzLDE3ICsxMDIsMTcgQEAgZnVuY3Rpb24gcHJlcGFyZURPTVRyZWUocGFyZW50KQog
ZnVuY3Rpb24gbW92ZU1vdXNlKG9sZEVsZW1lbnRJZCwgbmV3RWxlbWVudElkLCBtZXNzYWdlKQog
ewogICAgIGRlYnVnKCdcbicgKyBtZXNzYWdlICsgJ1xuJyArICdNb3ZpbmcgbW91c2UgZnJvbSAn
ICsgb2xkRWxlbWVudElkICsgJyB0byAnICsgbmV3RWxlbWVudElkKTsKLSAgICBtb3ZlTW91c2VP
dmVyKGdldEVsZW1lbnRJblNoYWRvdyhvbGRFbGVtZW50SWQpKTsKKyAgICBtb3ZlTW91c2VPdmVy
KGdldEVsZW1lbnRJblNoYWRvd1RyZWVTdGFjayhvbGRFbGVtZW50SWQpKTsKICAgICBjbGVhckV2
ZW50UmVjb3JkcygpOwotICAgIG1vdmVNb3VzZU92ZXIoZ2V0RWxlbWVudEluU2hhZG93KG5ld0Vs
ZW1lbnRJZCkpOworICAgIG1vdmVNb3VzZU92ZXIoZ2V0RWxlbWVudEluU2hhZG93VHJlZVN0YWNr
KG5ld0VsZW1lbnRJZCkpOwogfQogCiBmdW5jdGlvbiBtb3ZlRm9jdXMob2xkRWxlbWVudElkLCBu
ZXdFbGVtZW50SWQsIG1lc3NhZ2UpCiB7CiAgICAgZGVidWcoJ1xuJyArIG1lc3NhZ2UgKyAnXG4n
ICsgJ01vdmluZyBmb2N1cyBmcm9tICcgKyBvbGRFbGVtZW50SWQgKyAnIHRvICcgKyBuZXdFbGVt
ZW50SWQpOwotICAgIGdldEVsZW1lbnRJblNoYWRvdyhvbGRFbGVtZW50SWQpLmZvY3VzKCk7Cisg
ICAgZ2V0RWxlbWVudEluU2hhZG93VHJlZVN0YWNrKG9sZEVsZW1lbnRJZCkuZm9jdXMoKTsKICAg
ICBjbGVhckV2ZW50UmVjb3JkcygpOwotICAgIGdldEVsZW1lbnRJblNoYWRvdyhuZXdFbGVtZW50
SWQpLmZvY3VzKCk7CisgICAgZ2V0RWxlbWVudEluU2hhZG93VHJlZVN0YWNrKG5ld0VsZW1lbnRJ
ZCkuZm9jdXMoKTsKIH0KIAogZnVuY3Rpb24gdGVzdCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130510</attachid>
            <date>2012-03-06 18:26:28 -0800</date>
            <delta_ts>2012-03-06 23:19:24 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-80405-20120307112627.patch</filename>
            <type>text/plain</type>
            <size>13751</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5OTkyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNThkNmE3MjZlMTcyMGUxYzkyMWI2
OTljM2JlYjdhMGVkMzMyYzMwOC4uNmUwNTM4MTY1NGJlNTBmOWFkODE4MDgxMzY3NzEwZWI0ZmNi
ZDQ4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTA2ICBIYXlhdG8gSXRvICA8aGF5
YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93IERPTV0gRXh0ZW5kIGEgJ3BhdGgn
IG5vdGF0aW9uIGluIHV0aWxpdHkgZnVuY3Rpb24gc28gdGhhdCB3ZSBjYW4gc3BlY2lmeSBhcmJp
dHJhcnkgU2hhZG93Um9vdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwNDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292Lgor
CisgICAgICAgIEV4dHJhY3QgY29tbW9uIHV0aWxpdHkgZnVuY3Rpb24sIGdldEVsZW1lbnRCeUlk
SW5TaGFkb3cocGF0aCksIGludG8gYSBzaGFkb3ctZG9tLmpzCisgICAgICAgIChyZW5hbWVkIGZy
b20gY3JlYXRlLWRvbS5qcykgYW5kIHN1cHBvcnQgJ2NvbnNlY3V0aXZlIHNsYXNoZXMnIG5vdGF0
aW9uIHNvIHRoYXQKKyAgICAgICAgd2UgY2FuIHNwZWNpZnkgYXJiaXRyYXJ5IFNoYWRvd1Jvb3Qg
aW4gc2hhZG93IERPTSB0cmVlLiAgVW50aWwgbm93LCB3ZSBjYW4gZ2V0IGFuIGVsZW1lbnQKKyAg
ICAgICAgb25seSBmcm9tIHRoZSB5b3VuZ2VzdCBTaGFkb3dSb290LgorCisgICAgICAgICogZmFz
dC9kb20vc2hhZG93L2FjY2Vzcy1rZXkuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cv
Z2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVudC1ieS1pZC1pbi1zaGFkb3ctcm9vdC5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS5qczogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvY3JlYXRlLWRvbS5q
cy4KKyAgICAgICAgKGNyZWF0ZVNoYWRvd1Jvb3QpOgorICAgICAgICAoY3JlYXRlRE9NKToKKyAg
ICAgICAgKGlzU2hhZG93Um9vdCk6CisgICAgICAgIChnZXRFbGVtZW50SW5TaGFkb3dUcmVlU3Rh
Y2spOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0
bWw6CisKIDIwMTItMDMtMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQ2FuJ3Qgc2VsZWN0IGEgbGluZSBvZiBSVEwgdGV4dCBvbiBGYWNlYm9vawpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2FjY2Vzcy1rZXkuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hY2Nlc3Mta2V5Lmh0bWwKaW5kZXggMzUwZWQzMTlmYjAx
ZDk1MzI2ZGYwYmRlMjQ3OWQyN2Y1YTFjYmVjMS4uZjA5NjE4NWJjMDk2YTMyNmE5NGUzMzdjMmEw
YzIxN2I5NTlkNWVlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Fj
Y2Vzcy1rZXkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYWNjZXNzLWtl
eS5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jcmVhdGUtZG9tLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgpAQCAtNDQsMTcgKzQ0LDYgQEAgZnVuY3Rpb24gcmVjb3JkRXZlbnQoZXZlbnQp
CiAgICAgZXZlbnRSZWNvcmRzW2V2ZW50VHlwZV0ucHVzaChldmVudC50YXJnZXQuaWQpOwogfQog
Ci1mdW5jdGlvbiBnZXRFbGVtZW50SW5TaGFkb3cocGF0aCkKLXsKLSAgICB2YXIgaWRzID0gcGF0
aC5zcGxpdCgnLycpOwotICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
aWRzWzBdKTsKLSAgICBmb3IgKHZhciBpID0gMTsgZWxlbWVudCAhPSBudWxsICYmIGkgPCBpZHMu
bGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93
Um9vdChlbGVtZW50KTsKLSAgICAgICAgZWxlbWVudCA9IGludGVybmFscy5nZXRFbGVtZW50QnlJ
ZEluU2hhZG93Um9vdChzaGFkb3dSb290LCBpZHNbaV0pOwotICAgIH0KLSAgICByZXR1cm4gZWxl
bWVudDsKLX0KLQogZnVuY3Rpb24gcHJlcGFyZURPTVRyZWUocGFyZW50KQogewogICAgIHBhcmVu
dC5hcHBlbmRDaGlsZCgKQEAgLTcyLDcgKzYxLDcgQEAgZnVuY3Rpb24gcHJlcGFyZURPTVRyZWUo
cGFyZW50KQogICAgICAgICAgICAgICAgJ3NoYWRvd0MvaW5wdXREJywgJ3NoYWRvd0MvaW5wdXRF
JywKICAgICAgICAgICAgICAgICdzaGFkb3dDL3NoYWRvd0YvaW5wdXRHJ107CiAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBn
ZXRFbGVtZW50SW5TaGFkb3coaWRzW2ldKTsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBnZXRFbGVt
ZW50SW5TaGFkb3dUcmVlU3RhY2soaWRzW2ldKTsKICAgICAgICAgZWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCdmb2N1cycsIHJlY29yZEV2ZW50LCBmYWxzZSk7CiAgICAgfQogfQpAQCAtOTMsMTIg
KzgyLDEyIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHByZXNzQWNjZXNzS2V5KCdhJyk7CiAgICAg
c2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9jdXMiKScsICdbImlucHV0RSJdJyk7CiAKLSAg
ICBnZXRFbGVtZW50SW5TaGFkb3coJ3NoYWRvd0MvaW5wdXREJykuZm9jdXMoKTsKKyAgICBnZXRF
bGVtZW50SW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0MvaW5wdXREJykuZm9jdXMoKTsKICAgICBj
bGVhckV2ZW50UmVjb3JkcygpOwogICAgIHByZXNzQWNjZXNzS2V5KCdhJyk7CiAgICAgc2hvdWxk
QmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9jdXMiKScsICdbImlucHV0RSJdJyk7CiAKLSAgICBnZXRF
bGVtZW50SW5TaGFkb3coJ3NoYWRvd0Mvc2hhZG93Ri9pbnB1dEcnKS5mb2N1cygpOworICAgIGdl
dEVsZW1lbnRJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93Qy9zaGFkb3dGL2lucHV0RycpLmZvY3Vz
KCk7CiAgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKICAgICBwcmVzc0FjY2Vzc0tleSgnYScpOwog
ICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJpbnB1dEUiXScpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50LWJ5LWlk
LWluLXNoYWRvdy1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9nZXQtZWxlbWVudC1ieS1pZC1pbi1zaGFkb3ctcm9vdC1leHBlY3RlZC50eHQKaW5kZXggOWFk
M2IxYjdkYmY2ZGM0YmRkZjg3MWNkN2NkNjNkZTg3YTQzZmJhOS4uMzRkMjJlM2NiMGI0MzM1ZmFk
Nzg2ODY3YTc2YmU5YzA2NGU2NDhmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRvdy1yb290LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93
LXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDEzIEBACi1UZXN0cyB0byBlbnN1cmUgdGhh
dCBpbnRlcm5hbHMuZ2V0RWxlbWVudEJ5SWRJblRyZWVTY29wZSBjYW4gZ2V0IGFuIGVsZW1lbnQg
aW4gVHJlZVNjb3BlIGJ5IGl0cyBpZC4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQKK1Rlc3RzIHRv
IGVuc3VyZSB0aGF0IGludGVybmFscy5nZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdCBjYW4gZ2V0
IGFuIGVsZW1lbnQgaW4gU2hhZG93Um9vdCBieSBpdHMgaWQuIENhbiBvbmx5IHJ1biB3aXRoaW4g
RFJUCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGdldEVsZW1lbnRJblNo
YWRvdygnZGl2QS9pbnB1dEInKS5pZCBpcyAiaW5wdXRCIgotUEFTUyBnZXRFbGVtZW50SW5TaGFk
b3coJ2RpdkEvZGl2QycpLmlkIGlzICJkaXZDIgotUEFTUyBnZXRFbGVtZW50SW5TaGFkb3coJ2Rp
dkEvZGl2Qy9pbnB1dEQnKS5pZCBpcyAiaW5wdXREIgorUEFTUyBnZXRFbGVtZW50SW5TaGFkb3dU
cmVlU3RhY2soJ2RpdkEvaW5wdXRCJykuaWQgaXMgImlucHV0QiIKK1BBU1MgZ2V0RWxlbWVudElu
U2hhZG93VHJlZVN0YWNrKCdkaXZBL2RpdkMnKS5pZCBpcyAiZGl2QyIKK1BBU1MgZ2V0RWxlbWVu
dEluU2hhZG93VHJlZVN0YWNrKCdkaXZBL2RpdkMvaW5wdXREJykuaWQgaXMgImlucHV0RCIKK1BB
U1MgZ2V0RWxlbWVudEluU2hhZG93VHJlZVN0YWNrKCdkaXZBL2RpdkMvL2lucHV0RScpLmlkIGlz
ICJpbnB1dEUiCitQQVNTIGdldEVsZW1lbnRJblNoYWRvd1RyZWVTdGFjaygnZGl2QS9kaXZDLy8v
aW5wdXRGJykuaWQgaXMgImlucHV0RiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRvdy1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LXJvb3QuaHRtbAppbmRleCA3
NDc5YTc2YTI2ZTY2NGZhMTAwY2E5YTJlYzJmNTkzMWM1M2QxNzg2Li5kMTllY2RiNmZmZWZjMWUy
ZTBlYTE1YTczOTU0MWRhYWQzOTUxZGY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LXJvb3QuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LXJvb3Qu
aHRtbApAQCAtMiwyMiArMiwxMSBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jcmVhdGUtZG9tLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxzY3JpcHQ+Ci1kZXNj
cmlwdGlvbigiVGVzdHMgdG8gZW5zdXJlIHRoYXQgaW50ZXJuYWxzLmdldEVsZW1lbnRCeUlkSW5U
cmVlU2NvcGUgY2FuIGdldCBhbiBlbGVtZW50IGluIFRyZWVTY29wZSBieSBpdHMgaWQuIENhbiBv
bmx5IHJ1biB3aXRoaW4gRFJUIik7Ci0KLWZ1bmN0aW9uIGdldEVsZW1lbnRJblNoYWRvdyhwYXRo
KQotewotICAgIHZhciBpZHMgPSBwYXRoLnNwbGl0KCcvJyk7Ci0gICAgdmFyIGVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChpZHNbMF0pOwotICAgIGZvciAodmFyIGkgPSAxOyBlbGVt
ZW50ICE9IG51bGwgJiYgaSA8IGlkcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgc2hhZG93
Um9vdCA9IGludGVybmFscy5zaGFkb3dSb290KGVsZW1lbnQpOwotICAgICAgICBlbGVtZW50ID0g
aW50ZXJuYWxzLmdldEVsZW1lbnRCeUlkSW5TaGFkb3dSb290KHNoYWRvd1Jvb3QsIGlkc1tpXSk7
Ci0gICAgfQotICAgIHJldHVybiBlbGVtZW50OwotfQorZGVzY3JpcHRpb24oIlRlc3RzIHRvIGVu
c3VyZSB0aGF0IGludGVybmFscy5nZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdCBjYW4gZ2V0IGFu
IGVsZW1lbnQgaW4gU2hhZG93Um9vdCBieSBpdHMgaWQuIENhbiBvbmx5IHJ1biB3aXRoaW4gRFJU
Iik7CiAKIGZ1bmN0aW9uIHByZXBhcmVEb21UcmVlKHBhcmVudCkKIHsKQEAgLTI3LDE3ICsxNiwy
OSBAQCBmdW5jdGlvbiBwcmVwYXJlRG9tVHJlZShwYXJlbnQpCiAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXRCJ30pLAogICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkaXZDJ30sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1dEQnfSkpKSkpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7
J2lkJzogJ2lucHV0RCd9KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZVNoYWRvd1Jvb3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2lucHV0JywgeydpZCc6ICdpbnB1dEUnfSkpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVTaGFkb3dSb290KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXRGJ30pKSkpKSk7CiB9CiAKIGZ1
bmN0aW9uIHRlc3QoKQogewogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXRNdWx0aXBsZVNoYWRvd1N1
YnRyZWVzRW5hYmxlZCh0cnVlKTsKKwogICAgIHByZXBhcmVEb21UcmVlKGRvY3VtZW50LmJvZHkp
OwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0RWxlbWVudEluU2hhZG93KCdkaXZBL2lu
cHV0QicpLmlkIiwgJ2lucHV0QicpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0RWxl
bWVudEluU2hhZG93KCdkaXZBL2RpdkMnKS5pZCIsICdkaXZDJyk7Ci0gICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJnZXRFbGVtZW50SW5TaGFkb3coJ2RpdkEvZGl2Qy9pbnB1dEQnKS5pZCIsICdp
bnB1dEQnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldEVsZW1lbnRJblNoYWRvd1Ry
ZWVTdGFjaygnZGl2QS9pbnB1dEInKS5pZCIsICdpbnB1dEInKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImdldEVsZW1lbnRJblNoYWRvd1RyZWVTdGFjaygnZGl2QS9kaXZDJykuaWQiLCAn
ZGl2QycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0RWxlbWVudEluU2hhZG93VHJl
ZVN0YWNrKCdkaXZBL2RpdkMvaW5wdXREJykuaWQiLCAnaW5wdXREJyk7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJnZXRFbGVtZW50SW5TaGFkb3dUcmVlU3RhY2soJ2RpdkEvZGl2Qy8vaW5w
dXRFJykuaWQiLCAnaW5wdXRFJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRFbGVt
ZW50SW5TaGFkb3dUcmVlU3RhY2soJ2RpdkEvZGl2Qy8vL2lucHV0RicpLmlkIiwgJ2lucHV0Ricp
OworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0TXVsdGlwbGVTaGFkb3dTdWJ0cmVlc0VuYWJsZWQoZmFsc2UpOwogfQogCiB0ZXN0KCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2NyZWF0ZS1k
b20uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2NyZWF0ZS1kb20u
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5OTEwYmU5NTFiZjcyMTlhMTg0Mzkx
NmYwZjgwNmQyMTg2YjY4MWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9jcmVhdGUtZG9t
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotZnVuY3Rpb24gY3JlYXRlU2hhZG93
Um9vdCgpCi17Ci0gICAgcmV0dXJuIHsnaXNTaGFkb3dSb290JzogdHJ1ZSwKLSAgICAgICAgICAg
ICdjaGlsZHJlbic6IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyl9OwotfQot
Ci0vLyBUaGlzIGZ1bmN0aW9uIGNhbiB0YWtlIG9wdGlvbmFsIGNoaWxkIGVsZW1lbnRzLCB3aGlj
aCBtaWdodCBiZSBhIHJlc3VsdCBvZiBjcmVhdGVTaGFkb3dSb290KCksIGFzIGFyZ3VtZW50c1sy
Ol0uCi1mdW5jdGlvbiBjcmVhdGVET00odGFnTmFtZSwgYXR0cmlidXRlcykKLXsKLSAgICB2YXIg
ZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7Ci0gICAgZm9yICh2YXIg
bmFtZSBpbiBhdHRyaWJ1dGVzKQotICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCBh
dHRyaWJ1dGVzW25hbWVdKTsKLSAgICB2YXIgY2hpbGRFbGVtZW50cyA9IEFycmF5LnByb3RvdHlw
ZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMik7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGls
ZEVsZW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBjaGlsZCA9IGNoaWxkRWxlbWVu
dHNbaV07Ci0gICAgICAgIGlmIChjaGlsZC5pc1NoYWRvd1Jvb3QpIHsKLSAgICAgICAgICAgIHZh
ciBzaGFkb3dSb290OwotICAgICAgICAgICAgaWYgKHdpbmRvdy5XZWJLaXRTaGFkb3dSb290KQot
ICAgICAgICAgICAgICBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZWxlbWVudCk7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMu
ZW5zdXJlU2hhZG93Um9vdChlbGVtZW50KTsKLSAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBq
IDwgY2hpbGQuY2hpbGRyZW4ubGVuZ3RoOyArK2opCi0gICAgICAgICAgICAgICAgc2hhZG93Um9v
dC5hcHBlbmRDaGlsZChjaGlsZC5jaGlsZHJlbltqXSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjaGlsZCk7Ci0gICAgfQotICAgIHJldHVybiBlbGVt
ZW50OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNl
cy9zaGFkb3ctZG9tLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9z
aGFkb3ctZG9tLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5NzFiN2UyYTRhODE2YjY2YjQxODE4Mjc5YTRkNTgx
NWE1NjFmZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
cmVzb3VyY2VzL3NoYWRvdy1kb20uanMKQEAgLTAsMCArMSw1MiBAQAorZnVuY3Rpb24gY3JlYXRl
U2hhZG93Um9vdCgpCit7CisgICAgcmV0dXJuIHsnaXNTaGFkb3dSb290JzogdHJ1ZSwKKyAgICAg
ICAgICAgICdjaGlsZHJlbic6IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyl9
OworfQorCisvLyBUaGlzIGZ1bmN0aW9uIGNhbiB0YWtlIG9wdGlvbmFsIGNoaWxkIGVsZW1lbnRz
LCB3aGljaCBtaWdodCBiZSBhIHJlc3VsdCBvZiBjcmVhdGVTaGFkb3dSb290KCksIGFzIGFyZ3Vt
ZW50c1syOl0uCitmdW5jdGlvbiBjcmVhdGVET00odGFnTmFtZSwgYXR0cmlidXRlcykKK3sKKyAg
ICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7CisgICAgZm9y
ICh2YXIgbmFtZSBpbiBhdHRyaWJ1dGVzKQorICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShu
YW1lLCBhdHRyaWJ1dGVzW25hbWVdKTsKKyAgICB2YXIgY2hpbGRFbGVtZW50cyA9IEFycmF5LnBy
b3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBjaGlsZEVsZW1lbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBjaGlsZCA9IGNoaWxk
RWxlbWVudHNbaV07CisgICAgICAgIGlmIChjaGlsZC5pc1NoYWRvd1Jvb3QpIHsKKyAgICAgICAg
ICAgIHZhciBzaGFkb3dSb290OworICAgICAgICAgICAgaWYgKHdpbmRvdy5XZWJLaXRTaGFkb3dS
b290KQorICAgICAgICAgICAgICBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZWxl
bWVudCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHNoYWRvd1Jvb3QgPSBpbnRl
cm5hbHMuZW5zdXJlU2hhZG93Um9vdChlbGVtZW50KTsKKyAgICAgICAgICAgIGZvciAodmFyIGog
PSAwOyBqIDwgY2hpbGQuY2hpbGRyZW4ubGVuZ3RoOyArK2opCisgICAgICAgICAgICAgICAgc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChjaGlsZC5jaGlsZHJlbltqXSk7CisgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjaGlsZCk7CisgICAgfQorICAgIHJldHVy
biBlbGVtZW50OworfQorCitmdW5jdGlvbiBpc1NoYWRvd1Jvb3Qobm9kZSkKK3sKKyAgICAvLyBG
SVhNRTogd2luZG93LmludGVybmFscyBzaG91bGQgaGF2ZSBpbnRlcm5hbHMuaXNTaGFkb3dSb290
KG5vZGUpLgorICAgIHJldHVybiBub2RlLmhvc3Q7Cit9CisKKy8vIFlvdSBjYW4gc3BlZmlmeSB5
b3VuZ2VyU2hhZG93Um9vdCBieSBjb25zZWN1dGl2ZSBzbGFzaGVzLgorLy8gU2VlIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVudC1ieS1pZC1pbi1zaGFkb3ctcm9vdC5odG1s
IGZvciBhY3R1YWwgdXNhZ2VzLgorZnVuY3Rpb24gZ2V0RWxlbWVudEluU2hhZG93VHJlZVN0YWNr
KHBhdGgpCit7CisgICAgdmFyIGlkcyA9IHBhdGguc3BsaXQoJy8nKTsKKyAgICB2YXIgbm9kZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkc1swXSk7CisgICAgZm9yICh2YXIgaSA9IDE7IG5v
ZGUgIT0gbnVsbCAmJiBpIDwgaWRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmIChpc1NoYWRv
d1Jvb3Qobm9kZSkpCisgICAgICAgICAgICBub2RlID0gaW50ZXJuYWxzLnlvdW5nZXJTaGFkb3dS
b290KG5vZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBub2RlID0gaW50ZXJuYWxzLm9s
ZGVzdFNoYWRvd1Jvb3Qobm9kZSk7CisgICAgICAgIGlmIChpZHNbaV0gIT0gJycpCisgICAgICAg
ICAgICBub2RlID0gaW50ZXJuYWxzLmdldEVsZW1lbnRCeUlkSW5TaGFkb3dSb290KG5vZGUsIGlk
c1tpXSk7CisgICAgfQorICAgIHJldHVybiBub2RlOworfQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaHRtbAppbmRleCBj
NDk0NDMxN2QxODdmYmM0YmViOTM4MWFiMjY5MjQ2OTU0MDY4NTdkLi4zMDNlN2MxZGM1MzBiOTRh
YWM3NDkwMDk4YmUwOTRiYTBiNTI1MGQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0bWwKQEAgLTIsNyArMiw3IEBA
CiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NyZWF0ZS1kb20uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3Njcmlw
dD4KIDwvaGVhZD4KIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CkBAIC02NCwxNyAr
NjQsNiBAQCBmdW5jdGlvbiByZWNvcmRFdmVudChldmVudCkKICAgICBldmVudFJlY29yZHNbZXZl
bnRUeXBlXS5wdXNoKGV2ZW50U3RyaW5nKTsKIH0KIAotZnVuY3Rpb24gZ2V0RWxlbWVudEluU2hh
ZG93KHBhdGgpCi17Ci0gICAgdmFyIGlkcyA9IHBhdGguc3BsaXQoJy8nKTsKLSAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkc1swXSk7Ci0gICAgZm9yICh2YXIgaSA9
IDE7IGVsZW1lbnQgIT0gbnVsbCAmJiBpIDwgaWRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZh
ciBzaGFkb3dSb290ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZWxlbWVudCk7Ci0gICAgICAgIGVs
ZW1lbnQgPSBpbnRlcm5hbHMuZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3Qoc2hhZG93Um9vdCwg
aWRzW2ldKTsKLSAgICB9Ci0gICAgcmV0dXJuIGVsZW1lbnQ7Ci19Ci0KIGZ1bmN0aW9uIHByZXBh
cmVET01UcmVlKHBhcmVudCkKIHsKICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoCkBAIC0xMDAsNyAr
ODksNyBAQCBmdW5jdGlvbiBwcmVwYXJlRE9NVHJlZShwYXJlbnQpCiAgICAgICAgICAgICAgICAn
c2hhZG93RC9zaGFkb3dGL3NoYWRvd0cvZGl2SCcsICdzaGFkb3dEL3NoYWRvd0Yvc2hhZG93Ry9k
aXZJJywKICAgICAgICAgICAgICAgICdzaGFkb3dEL2RpdkonLCAnc2hhZG93RC9zaGFkb3dLJywg
J3NoYWRvd0Qvc2hhZG93Sy9kaXZMJ107CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpZHMubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBnZXRFbGVtZW50SW5TaGFkb3coaWRz
W2ldKTsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBnZXRFbGVtZW50SW5TaGFkb3dUcmVlU3RhY2so
aWRzW2ldKTsKICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCBy
ZWNvcmRFdmVudCwgZmFsc2UpOwogICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21v
dXNlb3V0JywgcmVjb3JkRXZlbnQsIGZhbHNlKTsKICAgICAgICAgZWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCdmb2N1c2luJywgcmVjb3JkRXZlbnQsIGZhbHNlKTsKQEAgLTExMywxNyArMTAyLDE3
IEBAIGZ1bmN0aW9uIHByZXBhcmVET01UcmVlKHBhcmVudCkKIGZ1bmN0aW9uIG1vdmVNb3VzZShv
bGRFbGVtZW50SWQsIG5ld0VsZW1lbnRJZCwgbWVzc2FnZSkKIHsKICAgICBkZWJ1ZygnXG4nICsg
bWVzc2FnZSArICdcbicgKyAnTW92aW5nIG1vdXNlIGZyb20gJyArIG9sZEVsZW1lbnRJZCArICcg
dG8gJyArIG5ld0VsZW1lbnRJZCk7Ci0gICAgbW92ZU1vdXNlT3ZlcihnZXRFbGVtZW50SW5TaGFk
b3cob2xkRWxlbWVudElkKSk7CisgICAgbW92ZU1vdXNlT3ZlcihnZXRFbGVtZW50SW5TaGFkb3dU
cmVlU3RhY2sob2xkRWxlbWVudElkKSk7CiAgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKLSAgICBt
b3ZlTW91c2VPdmVyKGdldEVsZW1lbnRJblNoYWRvdyhuZXdFbGVtZW50SWQpKTsKKyAgICBtb3Zl
TW91c2VPdmVyKGdldEVsZW1lbnRJblNoYWRvd1RyZWVTdGFjayhuZXdFbGVtZW50SWQpKTsKIH0K
IAogZnVuY3Rpb24gbW92ZUZvY3VzKG9sZEVsZW1lbnRJZCwgbmV3RWxlbWVudElkLCBtZXNzYWdl
KQogewogICAgIGRlYnVnKCdcbicgKyBtZXNzYWdlICsgJ1xuJyArICdNb3ZpbmcgZm9jdXMgZnJv
bSAnICsgb2xkRWxlbWVudElkICsgJyB0byAnICsgbmV3RWxlbWVudElkKTsKLSAgICBnZXRFbGVt
ZW50SW5TaGFkb3cob2xkRWxlbWVudElkKS5mb2N1cygpOworICAgIGdldEVsZW1lbnRJblNoYWRv
d1RyZWVTdGFjayhvbGRFbGVtZW50SWQpLmZvY3VzKCk7CiAgICAgY2xlYXJFdmVudFJlY29yZHMo
KTsKLSAgICBnZXRFbGVtZW50SW5TaGFkb3cobmV3RWxlbWVudElkKS5mb2N1cygpOworICAgIGdl
dEVsZW1lbnRJblNoYWRvd1RyZWVTdGFjayhuZXdFbGVtZW50SWQpLmZvY3VzKCk7CiB9CiAKIGZ1
bmN0aW9uIHRlc3QoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>