<?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>39525</bug_id>
          
          <creation_ts>2010-05-21 19:22:22 -0700</creation_ts>
          <short_desc>Make HTML5 parser parse &lt;script&gt;alert(&quot;&lt;hi&gt;&quot;);&lt;/script&gt;</short_desc>
          <delta_ts>2010-05-23 13:38:22 -0700</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>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>39259</blocked>
    
    <blocked>39533</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>229220</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-21 19:22:22 -0700</bug_when>
    <thetext>Make HTML5 parser parse &lt;script&gt;alert(&quot;&lt;hi&gt;&quot;);&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229221</commentid>
    <comment_count>1</comment_count>
      <attachid>56772</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-21 19:28:06 -0700</bug_when>
    <thetext>Created attachment 56772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229242</commentid>
    <comment_count>2</comment_count>
      <attachid>56775</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-22 01:13:07 -0700</bug_when>
    <thetext>Created attachment 56775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229243</commentid>
    <comment_count>3</comment_count>
      <attachid>56775</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-22 01:26:59 -0700</bug_when>
    <thetext>Comment on attachment 56775
Patch

I&apos;m not really happy with this patch yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229265</commentid>
    <comment_count>4</comment_count>
      <attachid>56779</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-22 08:39:01 -0700</bug_when>
    <thetext>Created attachment 56779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229493</commentid>
    <comment_count>5</comment_count>
      <attachid>56779</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-23 13:12:16 -0700</bug_when>
    <thetext>Comment on attachment 56779
Patch

WebCore/html/HTML5Lexer.cpp:225
 +          m_bufferedEndTagName.clear();
This seems like a temporary hack we should remove.

WebCore/html/HTML5Lexer.cpp:331
 +                  emitCurrentToken();
Seems strange that we don&apos;t return right after this call.  Do we have asserts in emitCurrentToken that we haven&apos;t already emitted?

WebCore/html/HTML5Lexer.cpp:1264
 +          if (actual[i] != appropriate[i])
Doesn&apos;t a UChar buffer compare method exist already?  Or shouldn&apos;t we make this into one?

WebCore/html/HTML5Token.h:128
 +              m_cachedName = AtomicString(StringImpl::adopt(m_data));
This is a good change. :)


Please conisder above comments.  This seems less than perfect but moves us forward.  100% correctness first, then several rounds of bathing are needed. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229495</commentid>
    <comment_count>6</comment_count>
      <attachid>56827</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-23 13:20:43 -0700</bug_when>
    <thetext>Created attachment 56827
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229497</commentid>
    <comment_count>7</comment_count>
      <attachid>56827</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-23 13:38:16 -0700</bug_when>
    <thetext>Comment on attachment 56827
Patch for landing

Clearing flags on attachment: 56827

Committed r60047: &lt;http://trac.webkit.org/changeset/60047&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229498</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-23 13:38:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56772</attachid>
            <date>2010-05-21 19:28:06 -0700</date>
            <delta_ts>2010-05-22 01:13:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39525-20100521192804.patch</filename>
            <type>text/plain</type>
            <size>12449</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmViMmRkZTljOTkwN2ZmYTlkZWUxYTRhNDcyZGIxODg1OTQwMjZlNS4uZDRhMjcxNTQzYmMyY2Fk
OWM1NDg2MDU3ZjE0MjBkY2ZjMzA5NmMwNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0wNS0yMSAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgSFRNTDUgcGFyc2VyIHBhcnNlIDxzY3JpcHQ+YWxl
cnQoIjxoaT4iKTs8L3NjcmlwdD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM5NTI1CisKKyAgICAgICAgTW9yZSBwcm9ncmVzcyB0b3dhcmRzIGdldHRp
bmcgdGhlIGh0bWw1bGliIHRlc3QgaGFybmVzcyBydW5uaW5nLiAgV2UKKyAgICAgICAgbmVlZCB0
byBwYXJzZSBzY3JpcHQgZGF0YSBpbiB0aGUgU2NyaXB0RGF0YVN0YXRlLiAgVGhlIHNwZWMgc2F5
cyB0aGUKKyAgICAgICAgcGFyc2VyIHNob3VsZCBzZXQgdGhlIGxleGVyJ3Mgc3RhdGUgdG8gU2Ny
aXB0RGF0YVN0YXRlLCBidXQgd2Ugd2FudCB0bworICAgICAgICBrZWVwIHVzaW5nIHRoZSBleGlz
dGluZyBwYXJzZXIgZm9yIGEgd2hpbGUgc28gSSd2ZSBhZGRlZCBzb21lIHRlbXBvcmFyeQorICAg
ICAgICBsb2dpYyB0byBIVE1MNVRva2VuaXplciB0byBzZXQgdGhlIHN0YXRlIGluIHRoZSBsZXhl
ci4KKworICAgICAgICBUbyBnZXQgdGhpcyBjYXNlIHJ1bm5pbmcsIEkgbmVlZGVkIHRvIGZsZXNo
IG91dCBhIGJ1bmNoIG9mIHRoZQorICAgICAgICBTY3JpcHREYXRhU3RhdGUgbG9naWMuICBUaGVy
ZSdzIGEgYnVuY2ggbW9yZSB0byBkbywgYnV0IHRoaXMgaXMgYQorICAgICAgICBzdGFydC4KKwor
ICAgICAgICAqIGh0bWwvSFRNTDVMZXhlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNUxl
eGVyOjpuZXh0VG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVMZXhlcjo6aXNBcHByb3By
aWF0ZUVuZFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNUxleGVyOjplbWl0Q3VycmVudFRh
Z1Rva2VuKToKKyAgICAgICAgKiBodG1sL0hUTUw1TGV4ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUw1TGV4ZXI6OnNldFN0YXRlKToKKyAgICAgICAgKiBodG1sL0hUTUw1VG9rZW4uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW46OmJlZ2luRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUw1VG9rZW46OmFwcGVuZFRvQ2hhcmFjdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUw1VG9rZW46Om5hbWUpOgorICAgICAgICAqIGh0bWwvSFRNTDVUb2tlbml6ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbml6ZXI6OndyaXRlKToKKwogMjAxMC0wNS0yMSAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmNwcCBiL1dlYkNvcmUv
aHRtbC9IVE1MNUxleGVyLmNwcAppbmRleCA4YWY1NTdjZDliNjQ0NzRiZTdlZTk1ODY2NzlhMTc4
ZDc1ZDA5MGFlLi42MDE4OTQzMzg4NGUwZTk5MDhlN2M2ODFhYjkyODdiMDdkZDg4MDhjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUw1TGV4ZXIuY3BwCkBAIC0yMTgsNiArMjE4LDE3IEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4dFRv
a2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0b2tlbikKICAgICAvLyB3
aXRoIHRoZSBzYW1lIHRva2VuIHNvIHdlIGNhbiBmaW5pc2ggaXQuCiAgICAgQVNTRVJUKCFtX3Rv
a2VuIHx8IG1fdG9rZW4gPT0gJnRva2VuIHx8IHRva2VuLnR5cGUoKSA9PSBIVE1MNVRva2VuOjpV
bmluaXRpYWxpemVkKTsKICAgICBtX3Rva2VuID0gJnRva2VuOworCisgICAgaWYgKCFtX2J1ZmZl
cmVkRW5kVGFnTmFtZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8gV2Ugc3RhcnRlZCBhbiBlbmQg
dGFnIGR1cmluZyBvdXIgbGFzdCBpdGVyYXRpb24uCisgICAgICAgIG1fdG9rZW4tPmJlZ2luRW5k
VGFnKG1fYnVmZmVyZWRFbmRUYWdOYW1lKTsKKyAgICAgICAgbV9idWZmZXJlZEVuZFRhZ05hbWUu
Y2xlYXIoKTsKKyAgICAgICAgaWYgKG1fc3RhdGUgPT0gRGF0YVN0YXRlKSB7CisgICAgICAgICAg
ICAvLyBXZSdyZSBiYWNrIGluIHRoZSBkYXRhIHN0YXRlLCBzbyB3ZSBtdXN0IGJlIGRvbmUgd2l0
aCB0aGUgdGFnLgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisK
ICAgICAvLyBTb3VyY2U6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJy
ZW50LXdvcmsvI3Rva2VuaXNhdGlvbjAKICAgICAvLyBGSVhNRTogVGhpcyB3aGlsZSBzaG91bGQg
c3RvcCBhcyBzb29uIGFzIHdlIGhhdmUgYSB0b2tlbiB0byByZXR1cm4uCiAgICAgd2hpbGUgKCFz
b3VyY2UuaXNFbXB0eSgpKSB7CkBAIC00MjUsNiArNDM2LDcgQEAgYm9vbCBIVE1MNUxleGVyOjpu
ZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAg
ICAgICBjYXNlIFNjcmlwdERhdGFMZXNzVGhhblNpZ25TdGF0ZTogewogICAgICAgICAgICAgaWYg
KGNjID09ICcvJykgewogICAgICAgICAgICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmNsZWFyKCk7
CisgICAgICAgICAgICAgICAgQVNTRVJUKG1fYnVmZmVyZWRFbmRUYWdOYW1lLmlzRW1wdHkoKSk7
CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IFNjcmlwdERhdGFFbmRUYWdPcGVuU3RhdGU7CiAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGNjID09ICchJykgewogICAgICAgICAgICAgICAgIGVtaXRD
aGFyYWN0ZXIoJzwnKTsKQEAgLTQzOSwxMCArNDUxLDEyIEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0b2tlbikKICAgICAg
ICAgfQogICAgICAgICBjYXNlIFNjcmlwdERhdGFFbmRUYWdPcGVuU3RhdGU6IHsKICAgICAgICAg
ICAgIGlmIChjYyA+PSAnQScgJiYgY2MgPD0gJ1onKSB7Ci0gICAgICAgICAgICAgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICAgICAgICAgICAgICBtX3RlbXBvcmFyeUJ1ZmZlci5hcHBlbmQoY2Mp
OworICAgICAgICAgICAgICAgIG1fYnVmZmVyZWRFbmRUYWdOYW1lLmFwcGVuZCh0b0xvd2VyQ2Fz
ZShjYykpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBTY3JpcHREYXRhRW5kVGFnTmFtZVN0
YXRlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA+PSAnYScgJiYgY2MgPD0gJ3onKSB7Ci0g
ICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgICAgICAgICBtX3RlbXBv
cmFyeUJ1ZmZlci5hcHBlbmQoY2MpOworICAgICAgICAgICAgICAgIG1fYnVmZmVyZWRFbmRUYWdO
YW1lLmFwcGVuZChjYyk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IFNjcmlwdERhdGFFbmRU
YWdOYW1lU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGVtaXRD
aGFyYWN0ZXIoJzwnKTsKQEAgLTQ1MywyMyArNDY3LDM2IEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0b2tlbikKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgU2NyaXB0RGF0YUVuZFRhZ05h
bWVTdGF0ZTogewotICAgICAgICAgICAgaWYgKGNjID09ICdceDA5JyB8fCBjYyA9PSAnXHgwQScg
fHwgY2MgPT0gJ1x4MEMnIHx8IGNjID09ICcgJykgewotICAgICAgICAgICAgICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgICAgICAgICAgICAgbV9zdGF0ZSA9IEJlZm9yZUF0dHJpYnV0ZU5hbWVT
dGF0ZTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJy8nKSB7Ci0gICAgICAgICAgICAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgICAgICAgICBtX3N0YXRlID0gU2VsZkNsb3Np
bmdTdGFydFRhZ1N0YXRlOwotICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAg
ICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICAgICAgICAgIG1fc3RhdGUg
PSBEYXRhU3RhdGU7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGNjID49ICdBJyAmJiBjYyA8PSAn
WicpCi0gICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKGNjID49ICdhJyAmJiBjYyA8PSAneicpCi0gICAgICAgICAgICAgICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGNjID49ICdBJyAmJiBj
YyA8PSAnWicpIHsKKyAgICAgICAgICAgICAgICBtX3RlbXBvcmFyeUJ1ZmZlci5hcHBlbmQoY2Mp
OworICAgICAgICAgICAgICAgIG1fYnVmZmVyZWRFbmRUYWdOYW1lLmFwcGVuZCh0b0xvd2VyQ2Fz
ZShjYykpOworICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA+PSAnYScgJiYgY2MgPD0gJ3onKSB7
CisgICAgICAgICAgICAgICAgbV90ZW1wb3JhcnlCdWZmZXIuYXBwZW5kKGNjKTsKKyAgICAgICAg
ICAgICAgICBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5hcHBlbmQoY2MpOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoY2MgPT0gJ1x4MDknIHx8IGNjID09ICdceDBBJyB8
fCBjYyA9PSAnXHgwQycgfHwgY2MgPT0gJyAnKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChp
c0FwcHJvcHJpYXRlRW5kVGFnKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUg
PSBCZWZvcmVBdHRyaWJ1dGVOYW1lU3RhdGU7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NF
UlQobV90b2tlbi0+dHlwZSgpID09IEhUTUw1VG9rZW46OkNoYXJhY3Rlcik7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gRW1pdCB0aGUgcXVldWUgY2hhcmFjdGVyczsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0g
Jy8nKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0FwcHJvcHJpYXRlRW5kVGFnKCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBTZWxmQ2xvc2luZ1N0YXJ0VGFnU3Rh
dGU7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQobV90b2tlbi0+dHlwZSgpID09IEhU
TUw1VG9rZW46OkNoYXJhY3Rlcik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsgLy8gRW1pdCB0aGUgcXVldWUgY2hhcmFjdGVyczsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChpc0FwcHJvcHJpYXRlRW5kVGFnKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1fc3RhdGUgPSBEYXRhU3RhdGU7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQobV90
b2tlbi0+dHlwZSgpID09IEhUTUw1VG9rZW46OkNoYXJhY3Rlcik7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gRW1pdCB0aGUgcXVldWUgY2hhcmFjdGVyczsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBlbWl0
Q2hhcmFjdGVyKCc8Jyk7CiAgICAgICAgICAgICAgICAgZW1pdENoYXJhY3RlcignLycpOwotICAg
ICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90b2tlbi0+
YXBwZW5kVG9DaGFyYWN0ZXIobV90ZW1wb3JhcnlCdWZmZXIpOworICAgICAgICAgICAgICAgIG1f
YnVmZmVyZWRFbmRUYWdOYW1lLmNsZWFyKCk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IFNj
cmlwdERhdGFTdGF0ZTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0K
QEAgLTEyMjQsNiArMTI1MSwxOSBAQCBpbmxpbmUgYm9vbCBIVE1MNUxleGVyOjp0ZW1wb3JhcnlC
dWZmZXJJcyhjb25zdCBjaGFyKikKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAoraW5saW5lIGJvb2wg
SFRNTDVMZXhlcjo6aXNBcHByb3ByaWF0ZUVuZFRhZygpCit7CisgICAgaWYgKG1fYnVmZmVyZWRF
bmRUYWdOYW1lLnNpemUoKSAhPSBtX2FwcHJvcHJpYXRlRW5kVGFnTmFtZS5sZW5ndGgoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNvbnN0IFVDaGFyKiBhcHByb3ByaWF0ZSA9IG1fYXBw
cm9wcmlhdGVFbmRUYWdOYW1lLmNoYXJhY3RlcnMoKTsKKyAgICBjb25zdCBVQ2hhciogYWN0dWFs
ID0gbV9idWZmZXJlZEVuZFRhZ05hbWUuZGF0YSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoYWN0
dWFsW2ldICE9IGFwcHJvcHJpYXRlW2ldKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogaW5saW5lIHZvaWQgSFRNTDVMZXhlcjo6ZW1pdENv
bW1lbnRUb2tlbigpCiB7CiB9CkBAIC0xMjQ1LDYgKzEyODUsOCBAQCBpbmxpbmUgdm9pZCBIVE1M
NUxleGVyOjplbWl0UGFyc2VFcnJvcigpCiBpbmxpbmUgdm9pZCBIVE1MNUxleGVyOjplbWl0Q3Vy
cmVudFRhZ1Rva2VuKCkgCiB7CiAgICAgbV9lbWl0UGVuZGluZyA9IHRydWU7CisgICAgaWYgKG1f
dG9rZW4tPnR5cGUoKSA9PSBIVE1MNVRva2VuOjpTdGFydFRhZykKKyAgICAgICAgbV9hcHByb3By
aWF0ZUVuZFRhZ05hbWUgPSBtX3Rva2VuLT5uYW1lKCk7CiB9CiAKIGlubGluZSB2b2lkIEhUTUw1
TGV4ZXI6OmVtaXRDdXJyZW50RG9jdHlwZVRva2VuKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MNUxleGVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5oCmluZGV4IDkxYmNkNzIx
NzU5ZDc4YmNiYzhkMmYzM2Y4MTBlMmQwNTQ1YjViNzQuLmNmODQyZTQ1NTkyOGNlYjAwNDU2ZWVh
NDVlZDJlODQxYmI4ZjI5OWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmgK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuaApAQCAtMzgsMjcgKzM4LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgSFRNTDVMZXhlciA6IHB1YmxpYyBOb25jb3B5YWJs
ZSB7CiAgICAgcHVibGljOgotICAgICAgICBIVE1MNUxleGVyKCk7Ci0gICAgICAgIH5IVE1MNUxl
eGVyKCk7Ci0KLSAgICAgICAgdm9pZCByZXNldCgpOwotCi0gICAgICAgIC8vIFRoaXMgZnVuY3Rp
b24gcmV0dXJucyB0cnVlIGlmIGl0IGVtaXRzIGEgdG9rZW4uICBPdGhlcndpc2UsIGNhbGxlcnMK
LSAgICAgICAgLy8gbXVzdCBwcm92aWRlIHRoZSBzYW1lIChpbiBwcm9ncmVzcykgdG9rZW4gb24g
dGhlIG5leHQgY2FsbCAodW5sZXNzCi0gICAgICAgIC8vIHRoZXkgY2FsbCByZXNldCgpIGZpcnN0
KS4KLSAgICAgICAgYm9vbCBuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiwgSFRNTDVUb2tlbiYp
OwotCi0gICAgICAgIHN0YXRpYyB1bnNpZ25lZCBjb25zdW1lRW50aXR5KFNlZ21lbnRlZFN0cmlu
ZyYsIGJvb2wmIG5vdEVub3VnaENoYXJhY3RlcnMpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAg
aW5saW5lIHZvaWQgZW1pdENvbW1lbnRUb2tlbigpOwotICAgICAgICBpbmxpbmUgdm9pZCBlbWl0
Q2hhcmFjdGVyKFVDaGFyKTsKLSAgICAgICAgaW5saW5lIHZvaWQgZW1pdFBhcnNlRXJyb3IoKTsK
LSAgICAgICAgaW5saW5lIHZvaWQgZW1pdEN1cnJlbnRUYWdUb2tlbigpOwotICAgICAgICBpbmxp
bmUgdm9pZCBlbWl0Q3VycmVudERvY3R5cGVUb2tlbigpOwotCi0gICAgICAgIGlubGluZSBib29s
IHRlbXBvcmFyeUJ1ZmZlcklzKGNvbnN0IGNoYXIqKTsKLQogICAgICAgICBlbnVtIFN0YXRlIHsK
ICAgICAgICAgICAgIERhdGFTdGF0ZSwKICAgICAgICAgICAgIENoYXJhY3RlclJlZmVyZW5jZUlu
RGF0YVN0YXRlLApAQCAtMTMyLDE5ICsxMTEsNDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAgICAgVG9rZW5pemluZ0NoYXJhY3RlclJlZmVyZW5jZXNTdGF0ZSwKICAgICAgICAgfTsK
IAorICAgICAgICBIVE1MNUxleGVyKCk7CisgICAgICAgIH5IVE1MNUxleGVyKCk7CisKKyAgICAg
ICAgdm9pZCByZXNldCgpOworCisgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVl
IGlmIGl0IGVtaXRzIGEgdG9rZW4uICBPdGhlcndpc2UsIGNhbGxlcnMKKyAgICAgICAgLy8gbXVz
dCBwcm92aWRlIHRoZSBzYW1lIChpbiBwcm9ncmVzcykgdG9rZW4gb24gdGhlIG5leHQgY2FsbCAo
dW5sZXNzCisgICAgICAgIC8vIHRoZXkgY2FsbCByZXNldCgpIGZpcnN0KS4KKyAgICAgICAgYm9v
bCBuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiwgSFRNTDVUb2tlbiYpOworCisgICAgICAgIHZv
aWQgc2V0U3RhdGUoU3RhdGUgc3RhdGUpIHsgbV9zdGF0ZSA9IHN0YXRlOyB9CisKKyAgICAgICAg
c3RhdGljIHVuc2lnbmVkIGNvbnN1bWVFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiwgYm9vbCYgbm90
RW5vdWdoQ2hhcmFjdGVycyk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBpbmxpbmUgdm9pZCBl
bWl0Q29tbWVudFRva2VuKCk7CisgICAgICAgIGlubGluZSB2b2lkIGVtaXRDaGFyYWN0ZXIoVUNo
YXIpOworICAgICAgICBpbmxpbmUgdm9pZCBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICBpbmxp
bmUgdm9pZCBlbWl0Q3VycmVudFRhZ1Rva2VuKCk7CisgICAgICAgIGlubGluZSB2b2lkIGVtaXRD
dXJyZW50RG9jdHlwZVRva2VuKCk7CisKKyAgICAgICAgaW5saW5lIGJvb2wgdGVtcG9yYXJ5QnVm
ZmVySXMoY29uc3QgY2hhciopOworCisgICAgICAgIGlubGluZSBib29sIGlzQXBwcm9wcmlhdGVF
bmRUYWcoKTsKKwogICAgICAgICBTdGF0ZSBtX3N0YXRlOwogCisgICAgICAgIEF0b21pY1N0cmlu
ZyBtX2FwcHJvcHJpYXRlRW5kVGFnTmFtZTsKKwogICAgICAgICAvLyBtX3Rva2VuIGlzIG93bmVk
IGJ5IHRoZSBjYWxsZXIuICBJZiBuZXh0VG9rZW4gaXMgbm90IG9uIHRoZSBzdGFjaywKICAgICAg
ICAgLy8gdGhpcyBtZW1iZXIgbWlnaHQgYmUgcG9pbnRpbmcgdG8gdW5hbGxvY2F0ZWQgbWVtb3J5
LgogICAgICAgICBIVE1MNVRva2VuKiBtX3Rva2VuOwogCiAgICAgICAgIGJvb2wgbV9lbWl0UGVu
ZGluZzsKIAotICAgICAgICBWZWN0b3I8VUNoYXIsIDMyPiBtX2F0dHJpYnV0ZU5hbWU7Ci0gICAg
ICAgIFZlY3RvcjxVQ2hhciwgMzI+IG1fYXR0cmlidXRlVmFsdWU7Ci0KICAgICAgICAgLy8gaHR0
cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jdGVtcG9yYXJ5
LWJ1ZmZlcgotICAgICAgICBWZWN0b3I8VUNoYXIsIDEwMjQ+IG1fdGVtcG9yYXJ5QnVmZmVyOwor
ICAgICAgICBWZWN0b3I8VUNoYXIsIDMyPiBtX3RlbXBvcmFyeUJ1ZmZlcjsKKworICAgICAgICAv
LyBXZSBvY2NhdGlvbmFsbHkgd2FudCB0byBlbWl0IGJvdGggYSBjaGFyYWN0ZXIgdG9rZW4gYW5k
IGFuIGVuZCB0YWcKKyAgICAgICAgLy8gdG9rZW4gKGUuZy4sIHdoZW4gbGV4aW5nIHNjcmlwdCku
ICBXZSBidWZmZXIgdGhlIG5hbWUgb2YgdGhlIGVuZCB0YWcKKyAgICAgICAgLy8gdG9rZW4gaGVy
ZSBzbyB3ZSByZW1lbWJlciBpdCBuZXh0IHRpbWUgd2UgcmUtZW50ZXIgdGhlIGxleGVyLgorICAg
ICAgICBWZWN0b3I8VUNoYXIsIDMyPiBtX2J1ZmZlcmVkRW5kVGFnTmFtZTsKIAogICAgICAgICAv
LyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNhZGRp
dGlvbmFsLWFsbG93ZWQtY2hhcmFjdGVyCiAgICAgICAgIFVDaGFyIG1fYWRkaXRpb25hbEFsbG93
ZWRDaGFyYWN0ZXI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbi5oIGIvV2Vi
Q29yZS9odG1sL0hUTUw1VG9rZW4uaAppbmRleCA5OTQwZDdlNjdiYzk1NjRmOTUyZWE1NDhhZDZh
OTRlMzg3NTIyOTBjLi44ZTM1YjkyNDA3ZWI5Y2NmYTllZTMyYmNlNGQzMjAzZGI0N2RiNzZhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbi5oCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MNVRva2VuLmgKQEAgLTY3LDcgKzY3LDggQEAgcHVibGljOgogICAgICAgICBtX2RhdGEuYXBw
ZW5kKGNoYXJhY3Rlcik7CiAgICAgfQogCi0gICAgdm9pZCBiZWdpbkVuZFRhZyhVQ2hhciBjaGFy
YWN0ZXIpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGJlZ2luRW5kVGFnKFQg
Y2hhcmFjdGVycykKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVW5pbml0aWFsaXpl
ZCk7CiAgICAgICAgIG1fdHlwZSA9IEVuZFRhZzsKQEAgLTc1LDcgKzc2LDcgQEAgcHVibGljOgog
ICAgICAgICBtX3NlbGZDbG9zaW5nID0gZmFsc2U7CiAgICAgICAgIG1fY3VycmVudEF0dHJpYnV0
ZSA9IDA7CiAKLSAgICAgICAgbV9kYXRhLmFwcGVuZChjaGFyYWN0ZXIpOworICAgICAgICBtX2Rh
dGEuYXBwZW5kKGNoYXJhY3RlcnMpOwogICAgIH0KIAogICAgIHZvaWQgYmVnaW5DaGFyYWN0ZXIo
VUNoYXIgY2hhcmFjdGVyKQpAQCAtOTIsMTAgKzkzLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9k
YXRhLmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kVG9DaGFyYWN0
ZXIoVUNoYXIgY2hhcmFjdGVyKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBh
cHBlbmRUb0NoYXJhY3RlcihUIGNoYXJhY3RlcnMpCiAgICAgewogICAgICAgICBBU1NFUlQobV90
eXBlID09IENoYXJhY3Rlcik7Ci0gICAgICAgIG1fZGF0YS5hcHBlbmQoY2hhcmFjdGVyKTsKKyAg
ICAgICAgbV9kYXRhLmFwcGVuZChjaGFyYWN0ZXJzKTsKICAgICB9CiAKICAgICB2b2lkIGFkZE5l
d0F0dHJpYnV0ZSgpCkBAIC0xMjIsNyArMTI0LDEwIEBAIHB1YmxpYzoKICAgICBBdG9taWNTdHJp
bmcgbmFtZSgpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IFN0YXJ0VGFnIHx8IG1f
dHlwZSA9PSBFbmRUYWcgfHwgbV90eXBlID09IERPQ1RZUEUpOwotICAgICAgICByZXR1cm4gQXRv
bWljU3RyaW5nKFN0cmluZ0ltcGw6OmFkb3B0KG1fZGF0YSkpOworICAgICAgICBpZiAoIW1fZGF0
YS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX2NhY2hlZE5hbWUgPSBBdG9taWNTdHJpbmcoU3Ry
aW5nSW1wbDo6YWRvcHQobV9kYXRhKSk7CisgICAgICAgIEFTU0VSVCghbV9jYWNoZWROYW1lLmlz
RW1wdHkoKSk7CisgICAgICAgIHJldHVybiBtX2NhY2hlZE5hbWU7CiAgICAgfQogCiAgICAgYm9v
bCBzZWxmQ2xvc2luZygpIGNvbnN0CkBAIC0xNjIsNiArMTY3LDggQEAgcHJpdmF0ZToKIAogICAg
IC8vIEEgcG9pbnRlciBpbnRvIG1fYXR0cmlidXRlcyB1c2VkIGR1cmluZyBsZXhpbmcuCiAgICAg
QXR0cmlidXRlKiBtX2N1cnJlbnRBdHRyaWJ1dGU7CisKKyAgICBBdG9taWNTdHJpbmcgbV9jYWNo
ZWROYW1lOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVy
LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAKaW5kZXggYzdhOWJiOTZhODM5
OTk1OGM0Y2Q5YjE2YWIxYzFhNzRhNGIxZGQwMS4uOTZkMjY5MjlhODAyNGU5NzI3MmVlODM4NjU1
NzlkYTIwOTlmMmE1ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNw
cAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwCkBAIC0xMDAsNiArMTAwLDEz
IEBAIHZvaWQgSFRNTDVUb2tlbml6ZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291
cmNlLCBib29sKQogICAgICAgICAgICAgLy8gRm9yIG5vdywgd2UgdHJhbnNsYXRlIGludG8gYW4g
b2xkLXN0eWxlIHRva2VuIGZvciB0ZXN0aW5nLgogICAgICAgICAgICAgVG9rZW4gb2xkU3R5bGVU
b2tlbjsKICAgICAgICAgICAgIGNvbnZlcnRUb09sZFN0eWxlKHRva2VuLCBvbGRTdHlsZVRva2Vu
KTsKKyAgICAgICAgICAgIGlmIChvbGRTdHlsZVRva2VuLnRhZ05hbWUgPT0gInNjcmlwdCIpIHsK
KyAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB3b3JrIGlzIHN1cHBvc2VkIHRvIGJlIGRv
bmUgYnkgdGhlIHBhcnNlciwgYnV0CisgICAgICAgICAgICAgICAgLy8gd2Ugd2FudCB0byBrZWVw
IHVzaW5nIHRoZSBvbGQgcGFyc2VyIGZvciBub3csIHNvIHdlIGhhdmUgdG8KKyAgICAgICAgICAg
ICAgICAvLyBkbyB0aGlzIHdvcmsgbWFudWFsbHkuCisgICAgICAgICAgICAgICAgbV9sZXhlci0+
c2V0U3RhdGUoSFRNTDVMZXhlcjo6U2NyaXB0RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIH0KKwog
ICAgICAgICAgICAgbV9wYXJzZXItPnBhcnNlVG9rZW4oJm9sZFN0eWxlVG9rZW4pOwogCiAgICAg
ICAgICAgICB0b2tlbi5jbGVhcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56775</attachid>
            <date>2010-05-22 01:13:07 -0700</date>
            <delta_ts>2010-05-22 08:38:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39525-20100522011305.patch</filename>
            <type>text/plain</type>
            <size>15812</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWE3YmQ1ZTExNTk3YTQ5MmNiZmY4NmY4ZGZmMGRkNTQ4ZWRhNmUwMC4uNjNmZDc4NGQwNzg5ZDU3
NzcyOWZhZTg5NWYyNThjOWY0ZmIwMmFjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0wNS0yMiAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgSFRNTDUgcGFyc2VyIHBhcnNlIDxzY3JpcHQ+YWxl
cnQoIjxoaT4iKTs8L3NjcmlwdD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM5NTI1CisKKyAgICAgICAgTW9yZSBwcm9ncmVzcyB0b3dhcmRzIGdldHRp
bmcgdGhlIGh0bWw1bGliIHRlc3QgaGFybmVzcyBydW5uaW5nLiAgV2UKKyAgICAgICAgbmVlZCB0
byBwYXJzZSBzY3JpcHQgZGF0YSBpbiB0aGUgU2NyaXB0RGF0YVN0YXRlLiAgVGhlIHNwZWMgc2F5
cyB0aGUKKyAgICAgICAgcGFyc2VyIHNob3VsZCBzZXQgdGhlIGxleGVyJ3Mgc3RhdGUgdG8gU2Ny
aXB0RGF0YVN0YXRlLCBidXQgd2Ugd2FudCB0bworICAgICAgICBrZWVwIHVzaW5nIHRoZSBleGlz
dGluZyBwYXJzZXIgZm9yIGEgd2hpbGUgc28gSSd2ZSBhZGRlZCBzb21lIHRlbXBvcmFyeQorICAg
ICAgICBsb2dpYyB0byBIVE1MNVRva2VuaXplciB0byBzZXQgdGhlIHN0YXRlIGluIHRoZSBsZXhl
ci4KKworICAgICAgICBUbyBnZXQgdGhpcyBjYXNlIHJ1bm5pbmcsIEkgbmVlZGVkIHRvIGZsZXNo
IG91dCBhIGJ1bmNoIG9mIHRoZQorICAgICAgICBTY3JpcHREYXRhU3RhdGUgbG9naWMuICBUaGVy
ZSdzIGEgYnVuY2ggbW9yZSB0byBkbywgYnV0IHRoaXMgaXMgYQorICAgICAgICBzdGFydC4KKwor
ICAgICAgICAqIGh0bWwvSFRNTDVMZXhlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNUxl
eGVyOjpuZXh0VG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVMZXhlcjo6aXNBcHByb3By
aWF0ZUVuZFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNUxleGVyOjplbWl0Q3VycmVudFRh
Z1Rva2VuKToKKyAgICAgICAgKiBodG1sL0hUTUw1TGV4ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUw1TGV4ZXI6OnNldFN0YXRlKToKKyAgICAgICAgKiBodG1sL0hUTUw1VG9rZW4uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUw1VG9rZW46OmJlZ2luRW5kVGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUw1VG9rZW46OmFwcGVuZFRvQ2hhcmFjdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUw1VG9rZW46Om5hbWUpOgorICAgICAgICAqIGh0bWwvSFRNTDVUb2tlbml6ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbml6ZXI6OndyaXRlKToKKwogMjAxMC0wNS0yMSAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
U2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuY3BwIGIvV2ViQ29y
ZS9odG1sL0hUTUw1TGV4ZXIuY3BwCmluZGV4IDhhZjU1N2NkOWI2NDQ3NGJlN2VlOTU4NjY3OWEx
NzhkNzVkMDkwYWUuLmRkMWNmMTEyNGRhOWIyODEyYmUwODUyYzkyZmJkODYyNzE2ODM3YTYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTDVMZXhlci5jcHAKQEAgLTIxOCw2ICsyMTgsMTcgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgIC8v
IHdpdGggdGhlIHNhbWUgdG9rZW4gc28gd2UgY2FuIGZpbmlzaCBpdC4KICAgICBBU1NFUlQoIW1f
dG9rZW4gfHwgbV90b2tlbiA9PSAmdG9rZW4gfHwgdG9rZW4udHlwZSgpID09IEhUTUw1VG9rZW46
OlVuaW5pdGlhbGl6ZWQpOwogICAgIG1fdG9rZW4gPSAmdG9rZW47CisKKyAgICBpZiAoIW1fYnVm
ZmVyZWRFbmRUYWdOYW1lLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBXZSBzdGFydGVkIGFuIGVu
ZCB0YWcgZHVyaW5nIG91ciBsYXN0IGl0ZXJhdGlvbi4KKyAgICAgICAgbV90b2tlbi0+YmVnaW5F
bmRUYWcobV9idWZmZXJlZEVuZFRhZ05hbWUpOworICAgICAgICBtX2J1ZmZlcmVkRW5kVGFnTmFt
ZS5jbGVhcigpOworICAgICAgICBpZiAobV9zdGF0ZSA9PSBEYXRhU3RhdGUpIHsKKyAgICAgICAg
ICAgIC8vIFdlJ3JlIGJhY2sgaW4gdGhlIGRhdGEgc3RhdGUsIHNvIHdlIG11c3QgYmUgZG9uZSB3
aXRoIHRoZSB0YWcuCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0K
KwogICAgIC8vIFNvdXJjZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1
cnJlbnQtd29yay8jdG9rZW5pc2F0aW9uMAogICAgIC8vIEZJWE1FOiBUaGlzIHdoaWxlIHNob3Vs
ZCBzdG9wIGFzIHNvb24gYXMgd2UgaGF2ZSBhIHRva2VuIHRvIHJldHVybi4KICAgICB3aGlsZSAo
IXNvdXJjZS5pc0VtcHR5KCkpIHsKQEAgLTMxNyw3ICszMjgsNyBAQCBib29sIEhUTUw1TGV4ZXI6
Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAg
ICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnLycpCiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9
IFNlbGZDbG9zaW5nU3RhcnRUYWdTdGF0ZTsKICAgICAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+
JykgewotICAgICAgICAgICAgICAgIGVtaXRDdXJyZW50VGFnVG9rZW4oKTsKKyAgICAgICAgICAg
ICAgICBlbWl0Q3VycmVudFRva2VuKCk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IERhdGFT
dGF0ZTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPj0gJ0EnICYmIGNjIDw9ICdaJykKICAg
ICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb05hbWUodG9Mb3dlckNhc2UoY2MpKTsKQEAg
LTQyNSw2ICs0MzYsNyBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgIGNhc2UgU2NyaXB0RGF0YUxl
c3NUaGFuU2lnblN0YXRlOiB7CiAgICAgICAgICAgICBpZiAoY2MgPT0gJy8nKSB7CiAgICAgICAg
ICAgICAgICAgbV90ZW1wb3JhcnlCdWZmZXIuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBBU1NF
UlQobV9idWZmZXJlZEVuZFRhZ05hbWUuaXNFbXB0eSgpKTsKICAgICAgICAgICAgICAgICBtX3N0
YXRlID0gU2NyaXB0RGF0YUVuZFRhZ09wZW5TdGF0ZTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAo
Y2MgPT0gJyEnKSB7CiAgICAgICAgICAgICAgICAgZW1pdENoYXJhY3RlcignPCcpOwpAQCAtNDM5
LDEwICs0NTEsMTIgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICB9CiAgICAgICAgIGNhc2UgU2Ny
aXB0RGF0YUVuZFRhZ09wZW5TdGF0ZTogewogICAgICAgICAgICAgaWYgKGNjID49ICdBJyAmJiBj
YyA8PSAnWicpIHsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICAg
ICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmFwcGVuZChjYyk7CisgICAgICAgICAgICAgICAgbV9i
dWZmZXJlZEVuZFRhZ05hbWUuYXBwZW5kKHRvTG93ZXJDYXNlKGNjKSk7CiAgICAgICAgICAgICAg
ICAgbV9zdGF0ZSA9IFNjcmlwdERhdGFFbmRUYWdOYW1lU3RhdGU7CiAgICAgICAgICAgICB9IGVs
c2UgaWYgKGNjID49ICdhJyAmJiBjYyA8PSAneicpIHsKLSAgICAgICAgICAgICAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgICAgICAgICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmFwcGVuZChjYyk7
CisgICAgICAgICAgICAgICAgbV9idWZmZXJlZEVuZFRhZ05hbWUuYXBwZW5kKGNjKTsKICAgICAg
ICAgICAgICAgICBtX3N0YXRlID0gU2NyaXB0RGF0YUVuZFRhZ05hbWVTdGF0ZTsKICAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZW1pdENoYXJhY3RlcignPCcpOwpAQCAtNDUz
LDIzICs0NjcsMzYgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBTY3JpcHREYXRhRW5kVGFnTmFtZVN0YXRlOiB7Ci0gICAgICAgICAg
ICBpZiAoY2MgPT0gJ1x4MDknIHx8IGNjID09ICdceDBBJyB8fCBjYyA9PSAnXHgwQycgfHwgY2Mg
PT0gJyAnKSB7Ci0gICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgICAg
ICAgICBtX3N0YXRlID0gQmVmb3JlQXR0cmlidXRlTmFtZVN0YXRlOwotICAgICAgICAgICAgfSBl
bHNlIGlmIChjYyA9PSAnLycpIHsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBTZWxmQ2xvc2luZ1N0YXJ0VGFnU3RhdGU7Ci0gICAg
ICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAgICAgICAgICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgICAgICAgICAgICAgbV9zdGF0ZSA9IERhdGFTdGF0ZTsKLSAgICAgICAg
ICAgIH0gZWxzZSBpZiAoY2MgPj0gJ0EnICYmIGNjIDw9ICdaJykKLSAgICAgICAgICAgICAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgICAgICAgICAgZWxzZSBpZiAoY2MgPj0gJ2EnICYmIGNjIDw9
ICd6JykKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICBpZiAoY2MgPj0gJ0EnICYmIGNjIDw9ICdaJykgeworICAgICAgICAg
ICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmFwcGVuZChjYyk7CisgICAgICAgICAgICAgICAgbV9i
dWZmZXJlZEVuZFRhZ05hbWUuYXBwZW5kKHRvTG93ZXJDYXNlKGNjKSk7CisgICAgICAgICAgICB9
IGVsc2UgaWYgKGNjID49ICdhJyAmJiBjYyA8PSAneicpIHsKKyAgICAgICAgICAgICAgICBtX3Rl
bXBvcmFyeUJ1ZmZlci5hcHBlbmQoY2MpOworICAgICAgICAgICAgICAgIG1fYnVmZmVyZWRFbmRU
YWdOYW1lLmFwcGVuZChjYyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IGlmIChjYyA9PSAnXHgwOScgfHwgY2MgPT0gJ1x4MEEnIHx8IGNjID09ICdceDBDJyB8fCBjYyA9
PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzQXBwcm9wcmlhdGVFbmRUYWcoKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9IEJlZm9yZUF0dHJpYnV0ZU5hbWVT
dGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChtX3Rva2VuLT50eXBlKCkgPT0g
SFRNTDVUb2tlbjo6Q2hhcmFjdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVtaXRDdXJy
ZW50VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoY2MgPT0gJy8nKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0FwcHJvcHJpYXRl
RW5kVGFnKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBTZWxmQ2xvc2lu
Z1N0YXJ0VGFnU3RhdGU7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQobV90b2tlbi0+
dHlwZSgpID09IEhUTUw1VG9rZW46OkNoYXJhY3Rlcik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBlbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNB
cHByb3ByaWF0ZUVuZFRhZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3N0YXRlID0g
RGF0YVN0YXRlOworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKG1fdG9rZW4tPnR5cGUo
KSA9PSBIVE1MNVRva2VuOjpDaGFyYWN0ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgZW1p
dEN1cnJlbnRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJzwnKTsKICAgICAgICAgICAgICAgICBl
bWl0Q2hhcmFjdGVyKCcvJyk7Ci0gICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NoYXJhY3RlcihtX3RlbXBvcmFyeUJ1ZmZl
cik7CisgICAgICAgICAgICAgICAgbV9idWZmZXJlZEVuZFRhZ05hbWUuY2xlYXIoKTsKICAgICAg
ICAgICAgICAgICBtX3N0YXRlID0gU2NyaXB0RGF0YVN0YXRlOwogICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAgICAgfQpAQCAtNjgyLDcgKzcwOSw3IEBAIGJvb2wgSFRNTDVMZXhl
cjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0b2tlbikK
ICAgICAgICAgICAgIGVsc2UgaWYgKGNjID09ICcvJykKICAgICAgICAgICAgICAgICBtX3N0YXRl
ID0gU2VsZkNsb3NpbmdTdGFydFRhZ1N0YXRlOwogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0g
Jz4nKSB7Ci0gICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUYWdUb2tlbigpOworICAgICAgICAg
ICAgICAgIGVtaXRDdXJyZW50VG9rZW4oKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gRGF0
YVN0YXRlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA+PSAnQScgJiYgY2MgPD0gJ1onKSB7
CiAgICAgICAgICAgICAgICAgbV90b2tlbi0+YWRkTmV3QXR0cmlidXRlKCk7CkBAIC03MDYsNyAr
NzMzLDcgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3Vy
Y2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz0nKQog
ICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBCZWZvcmVBdHRyaWJ1dGVWYWx1ZVN0YXRlOwogICAg
ICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKSB7Ci0gICAgICAgICAgICAgICAgZW1pdEN1cnJl
bnRUYWdUb2tlbigpOworICAgICAgICAgICAgICAgIGVtaXRDdXJyZW50VG9rZW4oKTsKICAgICAg
ICAgICAgICAgICBtX3N0YXRlID0gRGF0YVN0YXRlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChj
YyA+PSAnQScgJiYgY2MgPD0gJ1onKQogICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRv
QXR0cmlidXRlTmFtZSh0b0xvd2VyQ2FzZShjYykpOwpAQCAtNzI3LDcgKzc1NCw3IEBAIGJvb2wg
SFRNTDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2Vu
JiB0b2tlbikKICAgICAgICAgICAgIGVsc2UgaWYgKGNjID09ICc9JykKICAgICAgICAgICAgICAg
ICBtX3N0YXRlID0gQmVmb3JlQXR0cmlidXRlVmFsdWVTdGF0ZTsKICAgICAgICAgICAgIGVsc2Ug
aWYgKGNjID09ICc9JykgewotICAgICAgICAgICAgICAgIGVtaXRDdXJyZW50VGFnVG9rZW4oKTsK
KyAgICAgICAgICAgICAgICBlbWl0Q3VycmVudFRva2VuKCk7CiAgICAgICAgICAgICAgICAgbV9z
dGF0ZSA9IERhdGFTdGF0ZTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPj0gJ0EnICYmIGNj
IDw9ICdaJykgewogICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFkZE5ld0F0dHJpYnV0ZSgpOwpA
QCAtNzU1LDcgKzc4Miw3IEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0
cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgICAgICAgICBtX3N0YXRl
ID0gQXR0cmlidXRlVmFsdWVTaW5nbGVRdW90ZWRTdGF0ZTsKICAgICAgICAgICAgIGVsc2UgaWYg
KGNjID09ICc+JykgewogICAgICAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Ci0gICAgICAg
ICAgICAgICAgZW1pdEN1cnJlbnRUYWdUb2tlbigpOworICAgICAgICAgICAgICAgIGVtaXRDdXJy
ZW50VG9rZW4oKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gRGF0YVN0YXRlOwogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoY2MgPT0gJzwnIHx8IGNjID09ICc9
JyB8fCBjYyA9PSAnYCcpCkBAIC03OTQsNyArODIxLDcgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAg
ICAgICAgICAgIG1fc3RhdGUgPSBDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZVZhbHVlU3Rh
dGU7CiAgICAgICAgICAgICAgICAgbV9hZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlciA9ICc+JzsK
ICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7Ci0gICAgICAgICAgICAgICAgZW1p
dEN1cnJlbnRUYWdUb2tlbigpOworICAgICAgICAgICAgICAgIGVtaXRDdXJyZW50VG9rZW4oKTsK
ICAgICAgICAgICAgICAgICBtX3N0YXRlID0gRGF0YVN0YXRlOwogICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICBpZiAoY2MgPT0gJyInIHx8IGNjID09ICdcJycgfHwgY2MgPT0g
JzwnIHx8IGNjID09ICc9JyB8fCBjYyA9PSAnYCcpCkBAIC04MTQsNyArODQxLDcgQEAgYm9vbCBI
VE1MNUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4m
IHRva2VuKQogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJy8nKQogICAgICAgICAgICAgICAg
IG1fc3RhdGUgPSBTZWxmQ2xvc2luZ1N0YXJ0VGFnU3RhdGU7CiAgICAgICAgICAgICBlbHNlIGlm
IChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgICAgICBlbWl0Q3VycmVudFRhZ1Rva2VuKCk7Cisg
ICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOwogICAgICAgICAgICAgICAgIG1fc3Rh
dGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGVt
aXRQYXJzZUVycm9yKCk7CkBAIC04MjcsNyArODU0LDcgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAg
ICBjYXNlIFNlbGZDbG9zaW5nU3RhcnRUYWdTdGF0ZTogewogICAgICAgICAgICAgaWYgKGNjID09
ICc+JykgewogICAgICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgICAgICAgICAg
ICAgZW1pdEN1cnJlbnRUYWdUb2tlbigpOworICAgICAgICAgICAgICAgIGVtaXRDdXJyZW50VG9r
ZW4oKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlID0gRGF0YVN0YXRlOwogICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwpAQCAtMTIyNCw2ICsx
MjUxLDE5IEBAIGlubGluZSBib29sIEhUTUw1TGV4ZXI6OnRlbXBvcmFyeUJ1ZmZlcklzKGNvbnN0
IGNoYXIqKQogICAgIHJldHVybiB0cnVlOwogfQogCitpbmxpbmUgYm9vbCBIVE1MNUxleGVyOjpp
c0FwcHJvcHJpYXRlRW5kVGFnKCkKK3sKKyAgICBpZiAobV9idWZmZXJlZEVuZFRhZ05hbWUuc2l6
ZSgpICE9IG1fYXBwcm9wcmlhdGVFbmRUYWdOYW1lLmxlbmd0aCgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgY29uc3QgVUNoYXIqIGFwcHJvcHJpYXRlID0gbV9hcHByb3ByaWF0ZUVuZFRh
Z05hbWUuY2hhcmFjdGVycygpOworICAgIGNvbnN0IFVDaGFyKiBhY3R1YWwgPSBtX2J1ZmZlcmVk
RW5kVGFnTmFtZS5kYXRhKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYnVmZmVy
ZWRFbmRUYWdOYW1lLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChhY3R1YWxbaV0gIT0gYXBw
cm9wcmlhdGVbaV0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVy
biB0cnVlOworfQorCiBpbmxpbmUgdm9pZCBIVE1MNUxleGVyOjplbWl0Q29tbWVudFRva2VuKCkK
IHsKIH0KQEAgLTEyNDIsOSArMTI4MiwxMSBAQCBpbmxpbmUgdm9pZCBIVE1MNUxleGVyOjplbWl0
UGFyc2VFcnJvcigpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotaW5saW5lIHZvaWQgSFRN
TDVMZXhlcjo6ZW1pdEN1cnJlbnRUYWdUb2tlbigpIAoraW5saW5lIHZvaWQgSFRNTDVMZXhlcjo6
ZW1pdEN1cnJlbnRUb2tlbigpCiB7CiAgICAgbV9lbWl0UGVuZGluZyA9IHRydWU7CisgICAgaWYg
KG1fdG9rZW4tPnR5cGUoKSA9PSBIVE1MNVRva2VuOjpTdGFydFRhZykKKyAgICAgICAgbV9hcHBy
b3ByaWF0ZUVuZFRhZ05hbWUgPSBtX3Rva2VuLT5uYW1lKCk7CiB9CiAKIGlubGluZSB2b2lkIEhU
TUw1TGV4ZXI6OmVtaXRDdXJyZW50RG9jdHlwZVRva2VuKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MNUxleGVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5oCmluZGV4IDkxYmNk
NzIxNzU5ZDc4YmNiYzhkMmYzM2Y4MTBlMmQwNTQ1YjViNzQuLjY1NDZkOTdmZjc4ZTFiMWQ0NDY4
ZDQxNDAyNTZkMDUxYjI2OWRlNTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVy
LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuaApAQCAtMzgsMjcgKzM4LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgSFRNTDVMZXhlciA6IHB1YmxpYyBOb25jb3B5
YWJsZSB7CiAgICAgcHVibGljOgotICAgICAgICBIVE1MNUxleGVyKCk7Ci0gICAgICAgIH5IVE1M
NUxleGVyKCk7Ci0KLSAgICAgICAgdm9pZCByZXNldCgpOwotCi0gICAgICAgIC8vIFRoaXMgZnVu
Y3Rpb24gcmV0dXJucyB0cnVlIGlmIGl0IGVtaXRzIGEgdG9rZW4uICBPdGhlcndpc2UsIGNhbGxl
cnMKLSAgICAgICAgLy8gbXVzdCBwcm92aWRlIHRoZSBzYW1lIChpbiBwcm9ncmVzcykgdG9rZW4g
b24gdGhlIG5leHQgY2FsbCAodW5sZXNzCi0gICAgICAgIC8vIHRoZXkgY2FsbCByZXNldCgpIGZp
cnN0KS4KLSAgICAgICAgYm9vbCBuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiwgSFRNTDVUb2tl
biYpOwotCi0gICAgICAgIHN0YXRpYyB1bnNpZ25lZCBjb25zdW1lRW50aXR5KFNlZ21lbnRlZFN0
cmluZyYsIGJvb2wmIG5vdEVub3VnaENoYXJhY3RlcnMpOwotCi0gICAgcHJpdmF0ZToKLSAgICAg
ICAgaW5saW5lIHZvaWQgZW1pdENvbW1lbnRUb2tlbigpOwotICAgICAgICBpbmxpbmUgdm9pZCBl
bWl0Q2hhcmFjdGVyKFVDaGFyKTsKLSAgICAgICAgaW5saW5lIHZvaWQgZW1pdFBhcnNlRXJyb3Io
KTsKLSAgICAgICAgaW5saW5lIHZvaWQgZW1pdEN1cnJlbnRUYWdUb2tlbigpOwotICAgICAgICBp
bmxpbmUgdm9pZCBlbWl0Q3VycmVudERvY3R5cGVUb2tlbigpOwotCi0gICAgICAgIGlubGluZSBi
b29sIHRlbXBvcmFyeUJ1ZmZlcklzKGNvbnN0IGNoYXIqKTsKLQogICAgICAgICBlbnVtIFN0YXRl
IHsKICAgICAgICAgICAgIERhdGFTdGF0ZSwKICAgICAgICAgICAgIENoYXJhY3RlclJlZmVyZW5j
ZUluRGF0YVN0YXRlLApAQCAtMTMyLDE5ICsxMTEsNDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICAgICAgVG9rZW5pemluZ0NoYXJhY3RlclJlZmVyZW5jZXNTdGF0ZSwKICAgICAgICAg
fTsKIAorICAgICAgICBIVE1MNUxleGVyKCk7CisgICAgICAgIH5IVE1MNUxleGVyKCk7CisKKyAg
ICAgICAgdm9pZCByZXNldCgpOworCisgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0
cnVlIGlmIGl0IGVtaXRzIGEgdG9rZW4uICBPdGhlcndpc2UsIGNhbGxlcnMKKyAgICAgICAgLy8g
bXVzdCBwcm92aWRlIHRoZSBzYW1lIChpbiBwcm9ncmVzcykgdG9rZW4gb24gdGhlIG5leHQgY2Fs
bCAodW5sZXNzCisgICAgICAgIC8vIHRoZXkgY2FsbCByZXNldCgpIGZpcnN0KS4KKyAgICAgICAg
Ym9vbCBuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiwgSFRNTDVUb2tlbiYpOworCisgICAgICAg
IHZvaWQgc2V0U3RhdGUoU3RhdGUgc3RhdGUpIHsgbV9zdGF0ZSA9IHN0YXRlOyB9CisKKyAgICAg
ICAgc3RhdGljIHVuc2lnbmVkIGNvbnN1bWVFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiwgYm9vbCYg
bm90RW5vdWdoQ2hhcmFjdGVycyk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBpbmxpbmUgdm9p
ZCBlbWl0Q29tbWVudFRva2VuKCk7CisgICAgICAgIGlubGluZSB2b2lkIGVtaXRDaGFyYWN0ZXIo
VUNoYXIpOworICAgICAgICBpbmxpbmUgdm9pZCBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICBp
bmxpbmUgdm9pZCBlbWl0Q3VycmVudFRva2VuKCk7CisgICAgICAgIGlubGluZSB2b2lkIGVtaXRD
dXJyZW50RG9jdHlwZVRva2VuKCk7CisKKyAgICAgICAgaW5saW5lIGJvb2wgdGVtcG9yYXJ5QnVm
ZmVySXMoY29uc3QgY2hhciopOworCisgICAgICAgIGlubGluZSBib29sIGlzQXBwcm9wcmlhdGVF
bmRUYWcoKTsKKwogICAgICAgICBTdGF0ZSBtX3N0YXRlOwogCisgICAgICAgIEF0b21pY1N0cmlu
ZyBtX2FwcHJvcHJpYXRlRW5kVGFnTmFtZTsKKwogICAgICAgICAvLyBtX3Rva2VuIGlzIG93bmVk
IGJ5IHRoZSBjYWxsZXIuICBJZiBuZXh0VG9rZW4gaXMgbm90IG9uIHRoZSBzdGFjaywKICAgICAg
ICAgLy8gdGhpcyBtZW1iZXIgbWlnaHQgYmUgcG9pbnRpbmcgdG8gdW5hbGxvY2F0ZWQgbWVtb3J5
LgogICAgICAgICBIVE1MNVRva2VuKiBtX3Rva2VuOwogCiAgICAgICAgIGJvb2wgbV9lbWl0UGVu
ZGluZzsKIAotICAgICAgICBWZWN0b3I8VUNoYXIsIDMyPiBtX2F0dHJpYnV0ZU5hbWU7Ci0gICAg
ICAgIFZlY3RvcjxVQ2hhciwgMzI+IG1fYXR0cmlidXRlVmFsdWU7Ci0KICAgICAgICAgLy8gaHR0
cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jdGVtcG9yYXJ5
LWJ1ZmZlcgotICAgICAgICBWZWN0b3I8VUNoYXIsIDEwMjQ+IG1fdGVtcG9yYXJ5QnVmZmVyOwor
ICAgICAgICBWZWN0b3I8VUNoYXIsIDMyPiBtX3RlbXBvcmFyeUJ1ZmZlcjsKKworICAgICAgICAv
LyBXZSBvY2NhdGlvbmFsbHkgd2FudCB0byBlbWl0IGJvdGggYSBjaGFyYWN0ZXIgdG9rZW4gYW5k
IGFuIGVuZCB0YWcKKyAgICAgICAgLy8gdG9rZW4gKGUuZy4sIHdoZW4gbGV4aW5nIHNjcmlwdCku
ICBXZSBidWZmZXIgdGhlIG5hbWUgb2YgdGhlIGVuZCB0YWcKKyAgICAgICAgLy8gdG9rZW4gaGVy
ZSBzbyB3ZSByZW1lbWJlciBpdCBuZXh0IHRpbWUgd2UgcmUtZW50ZXIgdGhlIGxleGVyLgorICAg
ICAgICBWZWN0b3I8VUNoYXIsIDMyPiBtX2J1ZmZlcmVkRW5kVGFnTmFtZTsKIAogICAgICAgICAv
LyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNhZGRp
dGlvbmFsLWFsbG93ZWQtY2hhcmFjdGVyCiAgICAgICAgIFVDaGFyIG1fYWRkaXRpb25hbEFsbG93
ZWRDaGFyYWN0ZXI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbi5oIGIvV2Vi
Q29yZS9odG1sL0hUTUw1VG9rZW4uaAppbmRleCA5OTQwZDdlNjdiYzk1NjRmOTUyZWE1NDhhZDZh
OTRlMzg3NTIyOTBjLi44ZTM1YjkyNDA3ZWI5Y2NmYTllZTMyYmNlNGQzMjAzZGI0N2RiNzZhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbi5oCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MNVRva2VuLmgKQEAgLTY3LDcgKzY3LDggQEAgcHVibGljOgogICAgICAgICBtX2RhdGEuYXBw
ZW5kKGNoYXJhY3Rlcik7CiAgICAgfQogCi0gICAgdm9pZCBiZWdpbkVuZFRhZyhVQ2hhciBjaGFy
YWN0ZXIpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGJlZ2luRW5kVGFnKFQg
Y2hhcmFjdGVycykKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVW5pbml0aWFsaXpl
ZCk7CiAgICAgICAgIG1fdHlwZSA9IEVuZFRhZzsKQEAgLTc1LDcgKzc2LDcgQEAgcHVibGljOgog
ICAgICAgICBtX3NlbGZDbG9zaW5nID0gZmFsc2U7CiAgICAgICAgIG1fY3VycmVudEF0dHJpYnV0
ZSA9IDA7CiAKLSAgICAgICAgbV9kYXRhLmFwcGVuZChjaGFyYWN0ZXIpOworICAgICAgICBtX2Rh
dGEuYXBwZW5kKGNoYXJhY3RlcnMpOwogICAgIH0KIAogICAgIHZvaWQgYmVnaW5DaGFyYWN0ZXIo
VUNoYXIgY2hhcmFjdGVyKQpAQCAtOTIsMTAgKzkzLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9k
YXRhLmFwcGVuZChjaGFyYWN0ZXIpOwogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kVG9DaGFyYWN0
ZXIoVUNoYXIgY2hhcmFjdGVyKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBh
cHBlbmRUb0NoYXJhY3RlcihUIGNoYXJhY3RlcnMpCiAgICAgewogICAgICAgICBBU1NFUlQobV90
eXBlID09IENoYXJhY3Rlcik7Ci0gICAgICAgIG1fZGF0YS5hcHBlbmQoY2hhcmFjdGVyKTsKKyAg
ICAgICAgbV9kYXRhLmFwcGVuZChjaGFyYWN0ZXJzKTsKICAgICB9CiAKICAgICB2b2lkIGFkZE5l
d0F0dHJpYnV0ZSgpCkBAIC0xMjIsNyArMTI0LDEwIEBAIHB1YmxpYzoKICAgICBBdG9taWNTdHJp
bmcgbmFtZSgpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IFN0YXJ0VGFnIHx8IG1f
dHlwZSA9PSBFbmRUYWcgfHwgbV90eXBlID09IERPQ1RZUEUpOwotICAgICAgICByZXR1cm4gQXRv
bWljU3RyaW5nKFN0cmluZ0ltcGw6OmFkb3B0KG1fZGF0YSkpOworICAgICAgICBpZiAoIW1fZGF0
YS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX2NhY2hlZE5hbWUgPSBBdG9taWNTdHJpbmcoU3Ry
aW5nSW1wbDo6YWRvcHQobV9kYXRhKSk7CisgICAgICAgIEFTU0VSVCghbV9jYWNoZWROYW1lLmlz
RW1wdHkoKSk7CisgICAgICAgIHJldHVybiBtX2NhY2hlZE5hbWU7CiAgICAgfQogCiAgICAgYm9v
bCBzZWxmQ2xvc2luZygpIGNvbnN0CkBAIC0xNjIsNiArMTY3LDggQEAgcHJpdmF0ZToKIAogICAg
IC8vIEEgcG9pbnRlciBpbnRvIG1fYXR0cmlidXRlcyB1c2VkIGR1cmluZyBsZXhpbmcuCiAgICAg
QXR0cmlidXRlKiBtX2N1cnJlbnRBdHRyaWJ1dGU7CisKKyAgICBBdG9taWNTdHJpbmcgbV9jYWNo
ZWROYW1lOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVy
LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAKaW5kZXggOTZlZmExMTQ3NDk3
YjM2NzMxMmU2MWI4YzhmNjY4MjZmZTlmNGY2Yy4uOTE4OWIzZDliNjdlZjg5NDllOGVmMjYzYjI1
MTMzNmY4YmI3YjExOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNw
cAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwCkBAIC0xMDAsNiArMTAwLDEz
IEBAIHZvaWQgSFRNTDVUb2tlbml6ZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291
cmNlLCBib29sKQogICAgICAgICAgICAgLy8gRm9yIG5vdywgd2UgdHJhbnNsYXRlIGludG8gYW4g
b2xkLXN0eWxlIHRva2VuIGZvciB0ZXN0aW5nLgogICAgICAgICAgICAgVG9rZW4gb2xkU3R5bGVU
b2tlbjsKICAgICAgICAgICAgIGNvbnZlcnRUb09sZFN0eWxlKHRva2VuLCBvbGRTdHlsZVRva2Vu
KTsKKyAgICAgICAgICAgIGlmIChvbGRTdHlsZVRva2VuLnRhZ05hbWUgPT0gInNjcmlwdCIpIHsK
KyAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB3b3JrIGlzIHN1cHBvc2VkIHRvIGJlIGRv
bmUgYnkgdGhlIHBhcnNlciwgYnV0CisgICAgICAgICAgICAgICAgLy8gd2Ugd2FudCB0byBrZWVw
IHVzaW5nIHRoZSBvbGQgcGFyc2VyIGZvciBub3csIHNvIHdlIGhhdmUgdG8KKyAgICAgICAgICAg
ICAgICAvLyBkbyB0aGlzIHdvcmsgbWFudWFsbHkuCisgICAgICAgICAgICAgICAgbV9sZXhlci0+
c2V0U3RhdGUoSFRNTDVMZXhlcjo6U2NyaXB0RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIH0KKwog
ICAgICAgICAgICAgbV9wYXJzZXItPnBhcnNlVG9rZW4oJm9sZFN0eWxlVG9rZW4pOwogCiAgICAg
ICAgICAgICB0b2tlbi5jbGVhcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56779</attachid>
            <date>2010-05-22 08:39:01 -0700</date>
            <delta_ts>2010-05-23 13:20:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39525-20100522083859.patch</filename>
            <type>text/plain</type>
            <size>16348</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWE3YmQ1ZTExNTk3YTQ5MmNiZmY4NmY4ZGZmMGRkNTQ4ZWRhNmUwMC4uMzg0NzEzYzY0OWZkOTUx
NDExMWNlYTE0OTdiOTVmYTQ4Yjk4ZTk0NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMC0wNS0yMiAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgSFRNTDUgcGFyc2VyIHBhcnNlIDxzY3JpcHQ+YWxl
cnQoIjxoaT4iKTs8L3NjcmlwdD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM5NTI1CisKKyAgICAgICAgTW9yZSBwcm9ncmVzcyB0b3dhcmRzIGdldHRp
bmcgdGhlIGh0bWw1bGliIHRlc3QgaGFybmVzcyBydW5uaW5nLiAgV2UKKyAgICAgICAgbmVlZCB0
byBwYXJzZSBzY3JpcHQgZGF0YSBpbiB0aGUgU2NyaXB0RGF0YVN0YXRlLiAgVGhlIHNwZWMgc2F5
cyB0aGUKKyAgICAgICAgcGFyc2VyIHNob3VsZCBzZXQgdGhlIGxleGVyJ3Mgc3RhdGUgdG8gU2Ny
aXB0RGF0YVN0YXRlLCBidXQgd2Ugd2FudCB0bworICAgICAgICBrZWVwIHVzaW5nIHRoZSBleGlz
dGluZyBwYXJzZXIgZm9yIGEgd2hpbGUgc28gSSd2ZSBhZGRlZCBzb21lIHRlbXBvcmFyeQorICAg
ICAgICBsb2dpYyB0byBIVE1MNVRva2VuaXplciB0byBzZXQgdGhlIHN0YXRlIGluIHRoZSBsZXhl
ci4KKworICAgICAgICBUbyBnZXQgdGhpcyBjYXNlIHJ1bm5pbmcsIEkgbmVlZGVkIHRvIGZsZXNo
IG91dCBhIGJ1bmNoIG9mIHRoZQorICAgICAgICBTY3JpcHREYXRhU3RhdGUgbG9naWMuICBUaGVy
ZSdzIGEgYnVuY2ggbW9yZSB0byBkbywgYnV0IHRoaXMgaXMgYQorICAgICAgICBzdGFydC4KKwor
ICAgICAgICBJJ20gbm90IDEwMCUgaGFwcHkgd2l0aCB0aGlzIHBhdGNoLCBidXQgaXQgbGV0cyB1
cyBleGVjdXRlIGEgc2ltcGxpZmllZAorICAgICAgICB2ZXJzaW9uIG9mIHRoZSB0ZXN0IGhhcm5l
c3MgdXAgdG8gdGhlIHBvaW50IHdoZXJlIGl0IHN0YXJ0cyBydW5uaW5nIHRoZQorICAgICAgICBm
aXJzdCB0ZXN0LgorCisgICAgICAgICogaHRtbC9IVE1MNUxleGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUw1TGV4ZXI6Om5leHRUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNUxl
eGVyOjppc0FwcHJvcHJpYXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1TGV4ZXI6
OmVtaXRDdXJyZW50VGFnVG9rZW4pOgorICAgICAgICAqIGh0bWwvSFRNTDVMZXhlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVMZXhlcjo6c2V0U3RhdGUpOgorICAgICAgICAqIGh0bWwvSFRN
TDVUb2tlbi5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbjo6YmVnaW5FbmRUYWcpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbjo6YXBwZW5kVG9DaGFyYWN0ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVUb2tlbjo6bmFtZSk6CisgICAgICAgICogaHRtbC9IVE1MNVRva2Vu
aXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRva2VuaXplcjo6d3JpdGUpOgorCiAy
MDEwLTA1LTIxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVMZXhl
ci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5jcHAKaW5kZXggOGFmNTU3Y2Q5YjY0NDc0
YmU3ZWU5NTg2Njc5YTE3OGQ3NWQwOTBhZS4uMjg1N2JiMGViNmU4Y2I0MGQ0NWYyMmY4OGRmZjhj
MGZiYTQ2YTJjMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuY3BwCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmNwcApAQCAtMjE4LDYgKzIxOCwxNyBAQCBib29sIEhU
TUw1TGV4ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYg
dG9rZW4pCiAgICAgLy8gd2l0aCB0aGUgc2FtZSB0b2tlbiBzbyB3ZSBjYW4gZmluaXNoIGl0Lgog
ICAgIEFTU0VSVCghbV90b2tlbiB8fCBtX3Rva2VuID09ICZ0b2tlbiB8fCB0b2tlbi50eXBlKCkg
PT0gSFRNTDVUb2tlbjo6VW5pbml0aWFsaXplZCk7CiAgICAgbV90b2tlbiA9ICZ0b2tlbjsKKwor
ICAgIGlmICghbV9idWZmZXJlZEVuZFRhZ05hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIFdl
IHN0YXJ0ZWQgYW4gZW5kIHRhZyBkdXJpbmcgb3VyIGxhc3QgaXRlcmF0aW9uLgorICAgICAgICBt
X3Rva2VuLT5iZWdpbkVuZFRhZyhtX2J1ZmZlcmVkRW5kVGFnTmFtZSk7CisgICAgICAgIG1fYnVm
ZmVyZWRFbmRUYWdOYW1lLmNsZWFyKCk7CisgICAgICAgIGlmIChtX3N0YXRlID09IERhdGFTdGF0
ZSkgeworICAgICAgICAgICAgLy8gV2UncmUgYmFjayBpbiB0aGUgZGF0YSBzdGF0ZSwgc28gd2Ug
bXVzdCBiZSBkb25lIHdpdGggdGhlIHRhZy4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisgICAgfQorCiAgICAgLy8gU291cmNlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyN0b2tlbmlzYXRpb24wCiAgICAgLy8gRklYTUU6IFRo
aXMgd2hpbGUgc2hvdWxkIHN0b3AgYXMgc29vbiBhcyB3ZSBoYXZlIGEgdG9rZW4gdG8gcmV0dXJu
LgogICAgIHdoaWxlICghc291cmNlLmlzRW1wdHkoKSkgewpAQCAtMzE3LDcgKzMyOCw3IEBAIGJv
b2wgSFRNTDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRv
a2VuJiB0b2tlbikKICAgICAgICAgICAgIGVsc2UgaWYgKGNjID09ICcvJykKICAgICAgICAgICAg
ICAgICBtX3N0YXRlID0gU2VsZkNsb3NpbmdTdGFydFRhZ1N0YXRlOwogICAgICAgICAgICAgZWxz
ZSBpZiAoY2MgPT0gJz4nKSB7Ci0gICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUYWdUb2tlbigp
OworICAgICAgICAgICAgICAgIGVtaXRDdXJyZW50VG9rZW4oKTsKICAgICAgICAgICAgICAgICBt
X3N0YXRlID0gRGF0YVN0YXRlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA+PSAnQScgJiYg
Y2MgPD0gJ1onKQogICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvTmFtZSh0b0xvd2Vy
Q2FzZShjYykpOwpAQCAtNDI1LDYgKzQzNiw3IEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4dFRva2Vu
KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgY2Fz
ZSBTY3JpcHREYXRhTGVzc1RoYW5TaWduU3RhdGU6IHsKICAgICAgICAgICAgIGlmIChjYyA9PSAn
LycpIHsKICAgICAgICAgICAgICAgICBtX3RlbXBvcmFyeUJ1ZmZlci5jbGVhcigpOworICAgICAg
ICAgICAgICAgIEFTU0VSVChtX2J1ZmZlcmVkRW5kVGFnTmFtZS5pc0VtcHR5KCkpOwogICAgICAg
ICAgICAgICAgIG1fc3RhdGUgPSBTY3JpcHREYXRhRW5kVGFnT3BlblN0YXRlOwogICAgICAgICAg
ICAgfSBlbHNlIGlmIChjYyA9PSAnIScpIHsKICAgICAgICAgICAgICAgICBlbWl0Q2hhcmFjdGVy
KCc8Jyk7CkBAIC00MzksMTAgKzQ1MSwxMiBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tlbihT
ZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBTY3JpcHREYXRhRW5kVGFnT3BlblN0YXRlOiB7CiAgICAgICAgICAgICBpZiAo
Y2MgPj0gJ0EnICYmIGNjIDw9ICdaJykgewotICAgICAgICAgICAgICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgICAgICAgICAgICAgbV90ZW1wb3JhcnlCdWZmZXIuYXBwZW5kKGNjKTsKKyAgICAg
ICAgICAgICAgICBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5hcHBlbmQodG9Mb3dlckNhc2UoY2MpKTsK
ICAgICAgICAgICAgICAgICBtX3N0YXRlID0gU2NyaXB0RGF0YUVuZFRhZ05hbWVTdGF0ZTsKICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPj0gJ2EnICYmIGNjIDw9ICd6JykgewotICAgICAgICAg
ICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90ZW1wb3JhcnlCdWZm
ZXIuYXBwZW5kKGNjKTsKKyAgICAgICAgICAgICAgICBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5hcHBl
bmQoY2MpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBTY3JpcHREYXRhRW5kVGFnTmFtZVN0
YXRlOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBlbWl0Q2hhcmFjdGVy
KCc8Jyk7CkBAIC00NTMsMjMgKzQ2NywzOSBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tlbihT
ZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFNjcmlwdERhdGFFbmRUYWdOYW1lU3RhdGU6
IHsKLSAgICAgICAgICAgIGlmIChjYyA9PSAnXHgwOScgfHwgY2MgPT0gJ1x4MEEnIHx8IGNjID09
ICdceDBDJyB8fCBjYyA9PSAnICcpIHsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBCZWZvcmVBdHRyaWJ1dGVOYW1lU3RhdGU7Ci0g
ICAgICAgICAgICB9IGVsc2UgaWYgKGNjID09ICcvJykgewotICAgICAgICAgICAgICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgICAgICAgICAgICAgbV9zdGF0ZSA9IFNlbGZDbG9zaW5nU3RhcnRU
YWdTdGF0ZTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7Ci0gICAgICAgICAg
ICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgICAgICAgICBtX3N0YXRlID0gRGF0YVN0
YXRlOwotICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA+PSAnQScgJiYgY2MgPD0gJ1onKQotICAg
ICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgICAgICAgICBlbHNlIGlmIChjYyA+
PSAnYScgJiYgY2MgPD0gJ3onKQotICAgICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChjYyA+PSAnQScgJiYgY2MgPD0gJ1on
KSB7CisgICAgICAgICAgICAgICAgbV90ZW1wb3JhcnlCdWZmZXIuYXBwZW5kKGNjKTsKKyAgICAg
ICAgICAgICAgICBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5hcHBlbmQodG9Mb3dlckNhc2UoY2MpKTsK
KyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPj0gJ2EnICYmIGNjIDw9ICd6JykgeworICAgICAg
ICAgICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmFwcGVuZChjYyk7CisgICAgICAgICAgICAgICAg
bV9idWZmZXJlZEVuZFRhZ05hbWUuYXBwZW5kKGNjKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgaWYgKGNjID09ICdceDA5JyB8fCBjYyA9PSAnXHgwQScgfHwgY2MgPT0g
J1x4MEMnIHx8IGNjID09ICcgJykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNBcHByb3By
aWF0ZUVuZFRhZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQmVmb3Jl
QXR0cmlidXRlTmFtZVN0YXRlOworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKG1fdG9r
ZW4tPnR5cGUoKSA9PSBIVE1MNVRva2VuOjpDaGFyYWN0ZXIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNjID09
ICcvJykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNBcHByb3ByaWF0ZUVuZFRhZygpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBtX3N0YXRlID0gU2VsZkNsb3NpbmdTdGFydFRhZ1N0
YXRlOworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKG1fdG9rZW4tPnR5cGUoKSA9PSBI
VE1MNVRva2VuOjpDaGFyYWN0ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgZW1pdEN1cnJl
bnRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoaXNBcHByb3ByaWF0ZUVuZFRhZygpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBtX3N0YXRlID0gRGF0YVN0YXRlOworICAgICAgICAgICAgICAgICAgICAgICAg
QVNTRVJUKG1fdG9rZW4tPnR5cGUoKSA9PSBIVE1MNVRva2VuOjpDaGFyYWN0ZXIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgZW1pdENoYXJhY3RlcignPCcpOwogICAgICAgICAgICAgICAgIGVtaXRD
aGFyYWN0ZXIoJy8nKTsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAg
ICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ2hhcmFjdGVyKG1fdGVtcG9yYXJ5QnVmZmVyKTsK
KyAgICAgICAgICAgICAgICBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5jbGVhcigpOwogICAgICAgICAg
ICAgICAgIG1fc3RhdGUgPSBTY3JpcHREYXRhU3RhdGU7CiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICB9CkBAIC02ODIsNyArNzEyLDcgQEAgYm9vbCBIVE1MNUxleGVyOjpu
ZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAg
ICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJy8nKQogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBT
ZWxmQ2xvc2luZ1N0YXJ0VGFnU3RhdGU7CiAgICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicp
IHsKLSAgICAgICAgICAgICAgICBlbWl0Q3VycmVudFRhZ1Rva2VuKCk7CisgICAgICAgICAgICAg
ICAgZW1pdEN1cnJlbnRUb2tlbigpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3Rh
dGU7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGNjID49ICdBJyAmJiBjYyA8PSAnWicpIHsKICAg
ICAgICAgICAgICAgICBtX3Rva2VuLT5hZGROZXdBdHRyaWJ1dGUoKTsKQEAgLTcwNiw3ICs3MzYs
NyBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwg
SFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnPScpCiAgICAg
ICAgICAgICAgICAgbV9zdGF0ZSA9IEJlZm9yZUF0dHJpYnV0ZVZhbHVlU3RhdGU7CiAgICAgICAg
ICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgICAgICBlbWl0Q3VycmVudFRh
Z1Rva2VuKCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOwogICAgICAgICAg
ICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGNjID49
ICdBJyAmJiBjYyA8PSAnWicpCiAgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9BdHRy
aWJ1dGVOYW1lKHRvTG93ZXJDYXNlKGNjKSk7CkBAIC03MjcsNyArNzU3LDcgQEAgYm9vbCBIVE1M
NUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRv
a2VuKQogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz0nKQogICAgICAgICAgICAgICAgIG1f
c3RhdGUgPSBCZWZvcmVBdHRyaWJ1dGVWYWx1ZVN0YXRlOwogICAgICAgICAgICAgZWxzZSBpZiAo
Y2MgPT0gJz0nKSB7Ci0gICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUYWdUb2tlbigpOworICAg
ICAgICAgICAgICAgIGVtaXRDdXJyZW50VG9rZW4oKTsKICAgICAgICAgICAgICAgICBtX3N0YXRl
ID0gRGF0YVN0YXRlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA+PSAnQScgJiYgY2MgPD0g
J1onKSB7CiAgICAgICAgICAgICAgICAgbV90b2tlbi0+YWRkTmV3QXR0cmlidXRlKCk7CkBAIC03
NTUsNyArNzg1LDcgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBB
dHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZFN0YXRlOwogICAgICAgICAgICAgZWxzZSBpZiAoY2Mg
PT0gJz4nKSB7CiAgICAgICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKLSAgICAgICAgICAg
ICAgICBlbWl0Q3VycmVudFRhZ1Rva2VuKCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRU
b2tlbigpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmIChjYyA9PSAnPCcgfHwgY2MgPT0gJz0nIHx8
IGNjID09ICdgJykKQEAgLTc5NCw3ICs4MjQsNyBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tl
bihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgICAg
ICAgICAgbV9zdGF0ZSA9IENoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlVmFsdWVTdGF0ZTsK
ICAgICAgICAgICAgICAgICBtX2FkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyID0gJz4nOwogICAg
ICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgICAgICBlbWl0Q3Vy
cmVudFRhZ1Rva2VuKCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOwogICAg
ICAgICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgICAgIGlmIChjYyA9PSAnIicgfHwgY2MgPT0gJ1wnJyB8fCBjYyA9PSAnPCcg
fHwgY2MgPT0gJz0nIHx8IGNjID09ICdgJykKQEAgLTgxNCw3ICs4NDQsNyBAQCBib29sIEhUTUw1
TGV4ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9r
ZW4pCiAgICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnLycpCiAgICAgICAgICAgICAgICAgbV9z
dGF0ZSA9IFNlbGZDbG9zaW5nU3RhcnRUYWdTdGF0ZTsKICAgICAgICAgICAgIGVsc2UgaWYgKGNj
ID09ICc+JykgewotICAgICAgICAgICAgICAgIGVtaXRDdXJyZW50VGFnVG9rZW4oKTsKKyAgICAg
ICAgICAgICAgICBlbWl0Q3VycmVudFRva2VuKCk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9
IERhdGFTdGF0ZTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZW1pdFBh
cnNlRXJyb3IoKTsKQEAgLTgyNyw3ICs4NTcsNyBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tl
bihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgIGNh
c2UgU2VsZkNsb3NpbmdTdGFydFRhZ1N0YXRlOiB7CiAgICAgICAgICAgICBpZiAoY2MgPT0gJz4n
KSB7CiAgICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgICAgICAgICBl
bWl0Q3VycmVudFRhZ1Rva2VuKCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigp
OwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CkBAIC0xMjI0LDYgKzEyNTQs
MTkgQEAgaW5saW5lIGJvb2wgSFRNTDVMZXhlcjo6dGVtcG9yYXJ5QnVmZmVySXMoY29uc3QgY2hh
ciopCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2lubGluZSBib29sIEhUTUw1TGV4ZXI6OmlzQXBw
cm9wcmlhdGVFbmRUYWcoKQoreworICAgIGlmIChtX2J1ZmZlcmVkRW5kVGFnTmFtZS5zaXplKCkg
IT0gbV9hcHByb3ByaWF0ZUVuZFRhZ05hbWUubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBjb25zdCBVQ2hhciogYXBwcm9wcmlhdGUgPSBtX2FwcHJvcHJpYXRlRW5kVGFnTmFt
ZS5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNoYXIqIGFjdHVhbCA9IG1fYnVmZmVyZWRFbmRU
YWdOYW1lLmRhdGEoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9idWZmZXJlZEVu
ZFRhZ05hbWUuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKGFjdHVhbFtpXSAhPSBhcHByb3By
aWF0ZVtpXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIGlubGluZSB2b2lkIEhUTUw1TGV4ZXI6OmVtaXRDb21tZW50VG9rZW4oKQogewog
fQpAQCAtMTI0Miw5ICsxMjg1LDExIEBAIGlubGluZSB2b2lkIEhUTUw1TGV4ZXI6OmVtaXRQYXJz
ZUVycm9yKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1pbmxpbmUgdm9pZCBIVE1MNUxl
eGVyOjplbWl0Q3VycmVudFRhZ1Rva2VuKCkgCitpbmxpbmUgdm9pZCBIVE1MNUxleGVyOjplbWl0
Q3VycmVudFRva2VuKCkKIHsKICAgICBtX2VtaXRQZW5kaW5nID0gdHJ1ZTsKKyAgICBpZiAobV90
b2tlbi0+dHlwZSgpID09IEhUTUw1VG9rZW46OlN0YXJ0VGFnKQorICAgICAgICBtX2FwcHJvcHJp
YXRlRW5kVGFnTmFtZSA9IG1fdG9rZW4tPm5hbWUoKTsKIH0KIAogaW5saW5lIHZvaWQgSFRNTDVM
ZXhlcjo6ZW1pdEN1cnJlbnREb2N0eXBlVG9rZW4oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUw1TGV4ZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmgKaW5kZXggOTFiY2Q3MjE3
NTlkNzhiY2JjOGQyZjMzZjgxMGUyZDA1NDViNWI3NC4uNjU0NmQ5N2ZmNzhlMWIxZDQ0NjhkNDE0
MDI1NmQwNTFiMjY5ZGU1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuaAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5oCkBAIC0zOCwyNyArMzgsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBIVE1MNUxleGVyIDogcHVibGljIE5vbmNvcHlhYmxl
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEhUTUw1TGV4ZXIoKTsKLSAgICAgICAgfkhUTUw1TGV4
ZXIoKTsKLQotICAgICAgICB2b2lkIHJlc2V0KCk7Ci0KLSAgICAgICAgLy8gVGhpcyBmdW5jdGlv
biByZXR1cm5zIHRydWUgaWYgaXQgZW1pdHMgYSB0b2tlbi4gIE90aGVyd2lzZSwgY2FsbGVycwot
ICAgICAgICAvLyBtdXN0IHByb3ZpZGUgdGhlIHNhbWUgKGluIHByb2dyZXNzKSB0b2tlbiBvbiB0
aGUgbmV4dCBjYWxsICh1bmxlc3MKLSAgICAgICAgLy8gdGhleSBjYWxsIHJlc2V0KCkgZmlyc3Qp
LgotICAgICAgICBib29sIG5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmLCBIVE1MNVRva2VuJik7
Ci0KLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGNvbnN1bWVFbnRpdHkoU2VnbWVudGVkU3RyaW5n
JiwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycyk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBp
bmxpbmUgdm9pZCBlbWl0Q29tbWVudFRva2VuKCk7Ci0gICAgICAgIGlubGluZSB2b2lkIGVtaXRD
aGFyYWN0ZXIoVUNoYXIpOwotICAgICAgICBpbmxpbmUgdm9pZCBlbWl0UGFyc2VFcnJvcigpOwot
ICAgICAgICBpbmxpbmUgdm9pZCBlbWl0Q3VycmVudFRhZ1Rva2VuKCk7Ci0gICAgICAgIGlubGlu
ZSB2b2lkIGVtaXRDdXJyZW50RG9jdHlwZVRva2VuKCk7Ci0KLSAgICAgICAgaW5saW5lIGJvb2wg
dGVtcG9yYXJ5QnVmZmVySXMoY29uc3QgY2hhciopOwotCiAgICAgICAgIGVudW0gU3RhdGUgewog
ICAgICAgICAgICAgRGF0YVN0YXRlLAogICAgICAgICAgICAgQ2hhcmFjdGVyUmVmZXJlbmNlSW5E
YXRhU3RhdGUsCkBAIC0xMzIsMTkgKzExMSw0OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgICAgICBUb2tlbml6aW5nQ2hhcmFjdGVyUmVmZXJlbmNlc1N0YXRlLAogICAgICAgICB9Owog
CisgICAgICAgIEhUTUw1TGV4ZXIoKTsKKyAgICAgICAgfkhUTUw1TGV4ZXIoKTsKKworICAgICAg
ICB2b2lkIHJlc2V0KCk7CisKKyAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUg
aWYgaXQgZW1pdHMgYSB0b2tlbi4gIE90aGVyd2lzZSwgY2FsbGVycworICAgICAgICAvLyBtdXN0
IHByb3ZpZGUgdGhlIHNhbWUgKGluIHByb2dyZXNzKSB0b2tlbiBvbiB0aGUgbmV4dCBjYWxsICh1
bmxlc3MKKyAgICAgICAgLy8gdGhleSBjYWxsIHJlc2V0KCkgZmlyc3QpLgorICAgICAgICBib29s
IG5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmLCBIVE1MNVRva2VuJik7CisKKyAgICAgICAgdm9p
ZCBzZXRTdGF0ZShTdGF0ZSBzdGF0ZSkgeyBtX3N0YXRlID0gc3RhdGU7IH0KKworICAgICAgICBz
dGF0aWMgdW5zaWduZWQgY29uc3VtZUVudGl0eShTZWdtZW50ZWRTdHJpbmcmLCBib29sJiBub3RF
bm91Z2hDaGFyYWN0ZXJzKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGlubGluZSB2b2lkIGVt
aXRDb21tZW50VG9rZW4oKTsKKyAgICAgICAgaW5saW5lIHZvaWQgZW1pdENoYXJhY3RlcihVQ2hh
cik7CisgICAgICAgIGlubGluZSB2b2lkIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgIGlubGlu
ZSB2b2lkIGVtaXRDdXJyZW50VG9rZW4oKTsKKyAgICAgICAgaW5saW5lIHZvaWQgZW1pdEN1cnJl
bnREb2N0eXBlVG9rZW4oKTsKKworICAgICAgICBpbmxpbmUgYm9vbCB0ZW1wb3JhcnlCdWZmZXJJ
cyhjb25zdCBjaGFyKik7CisKKyAgICAgICAgaW5saW5lIGJvb2wgaXNBcHByb3ByaWF0ZUVuZFRh
ZygpOworCiAgICAgICAgIFN0YXRlIG1fc3RhdGU7CiAKKyAgICAgICAgQXRvbWljU3RyaW5nIG1f
YXBwcm9wcmlhdGVFbmRUYWdOYW1lOworCiAgICAgICAgIC8vIG1fdG9rZW4gaXMgb3duZWQgYnkg
dGhlIGNhbGxlci4gIElmIG5leHRUb2tlbiBpcyBub3Qgb24gdGhlIHN0YWNrLAogICAgICAgICAv
LyB0aGlzIG1lbWJlciBtaWdodCBiZSBwb2ludGluZyB0byB1bmFsbG9jYXRlZCBtZW1vcnkuCiAg
ICAgICAgIEhUTUw1VG9rZW4qIG1fdG9rZW47CiAKICAgICAgICAgYm9vbCBtX2VtaXRQZW5kaW5n
OwogCi0gICAgICAgIFZlY3RvcjxVQ2hhciwgMzI+IG1fYXR0cmlidXRlTmFtZTsKLSAgICAgICAg
VmVjdG9yPFVDaGFyLCAzMj4gbV9hdHRyaWJ1dGVWYWx1ZTsKLQogICAgICAgICAvLyBodHRwOi8v
d3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyN0ZW1wb3JhcnktYnVm
ZmVyCi0gICAgICAgIFZlY3RvcjxVQ2hhciwgMTAyND4gbV90ZW1wb3JhcnlCdWZmZXI7CisgICAg
ICAgIFZlY3RvcjxVQ2hhciwgMzI+IG1fdGVtcG9yYXJ5QnVmZmVyOworCisgICAgICAgIC8vIFdl
IG9jY2F0aW9uYWxseSB3YW50IHRvIGVtaXQgYm90aCBhIGNoYXJhY3RlciB0b2tlbiBhbmQgYW4g
ZW5kIHRhZworICAgICAgICAvLyB0b2tlbiAoZS5nLiwgd2hlbiBsZXhpbmcgc2NyaXB0KS4gIFdl
IGJ1ZmZlciB0aGUgbmFtZSBvZiB0aGUgZW5kIHRhZworICAgICAgICAvLyB0b2tlbiBoZXJlIHNv
IHdlIHJlbWVtYmVyIGl0IG5leHQgdGltZSB3ZSByZS1lbnRlciB0aGUgbGV4ZXIuCisgICAgICAg
IFZlY3RvcjxVQ2hhciwgMzI+IG1fYnVmZmVyZWRFbmRUYWdOYW1lOwogCiAgICAgICAgIC8vIGh0
dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2FkZGl0aW9u
YWwtYWxsb3dlZC1jaGFyYWN0ZXIKICAgICAgICAgVUNoYXIgbV9hZGRpdGlvbmFsQWxsb3dlZENo
YXJhY3RlcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuLmggYi9XZWJDb3Jl
L2h0bWwvSFRNTDVUb2tlbi5oCmluZGV4IDk5NDBkN2U2N2JjOTU2NGY5NTJlYTU0OGFkNmE5NGUz
ODc1MjI5MGMuLjhlMzViOTI0MDdlYjljY2ZhOWVlMzJiY2U0ZDMyMDNkYjQ3ZGI3NmEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1
VG9rZW4uaApAQCAtNjcsNyArNjcsOCBAQCBwdWJsaWM6CiAgICAgICAgIG1fZGF0YS5hcHBlbmQo
Y2hhcmFjdGVyKTsKICAgICB9CiAKLSAgICB2b2lkIGJlZ2luRW5kVGFnKFVDaGFyIGNoYXJhY3Rl
cikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgYmVnaW5FbmRUYWcoVCBjaGFy
YWN0ZXJzKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBVbmluaXRpYWxpemVkKTsK
ICAgICAgICAgbV90eXBlID0gRW5kVGFnOwpAQCAtNzUsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIG1fc2VsZkNsb3NpbmcgPSBmYWxzZTsKICAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlID0g
MDsKIAotICAgICAgICBtX2RhdGEuYXBwZW5kKGNoYXJhY3Rlcik7CisgICAgICAgIG1fZGF0YS5h
cHBlbmQoY2hhcmFjdGVycyk7CiAgICAgfQogCiAgICAgdm9pZCBiZWdpbkNoYXJhY3RlcihVQ2hh
ciBjaGFyYWN0ZXIpCkBAIC05MiwxMCArOTMsMTEgQEAgcHVibGljOgogICAgICAgICBtX2RhdGEu
YXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmRUb0NoYXJhY3RlcihV
Q2hhciBjaGFyYWN0ZXIpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGFwcGVu
ZFRvQ2hhcmFjdGVyKFQgY2hhcmFjdGVycykKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUg
PT0gQ2hhcmFjdGVyKTsKLSAgICAgICAgbV9kYXRhLmFwcGVuZChjaGFyYWN0ZXIpOworICAgICAg
ICBtX2RhdGEuYXBwZW5kKGNoYXJhY3RlcnMpOwogICAgIH0KIAogICAgIHZvaWQgYWRkTmV3QXR0
cmlidXRlKCkKQEAgLTEyMiw3ICsxMjQsMTAgQEAgcHVibGljOgogICAgIEF0b21pY1N0cmluZyBu
YW1lKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gU3RhcnRUYWcgfHwgbV90eXBl
ID09IEVuZFRhZyB8fCBtX3R5cGUgPT0gRE9DVFlQRSk7Ci0gICAgICAgIHJldHVybiBBdG9taWNT
dHJpbmcoU3RyaW5nSW1wbDo6YWRvcHQobV9kYXRhKSk7CisgICAgICAgIGlmICghbV9kYXRhLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgIG1fY2FjaGVkTmFtZSA9IEF0b21pY1N0cmluZyhTdHJpbmdJ
bXBsOjphZG9wdChtX2RhdGEpKTsKKyAgICAgICAgQVNTRVJUKCFtX2NhY2hlZE5hbWUuaXNFbXB0
eSgpKTsKKyAgICAgICAgcmV0dXJuIG1fY2FjaGVkTmFtZTsKICAgICB9CiAKICAgICBib29sIHNl
bGZDbG9zaW5nKCkgY29uc3QKQEAgLTE2Miw2ICsxNjcsOCBAQCBwcml2YXRlOgogCiAgICAgLy8g
QSBwb2ludGVyIGludG8gbV9hdHRyaWJ1dGVzIHVzZWQgZHVyaW5nIGxleGluZy4KICAgICBBdHRy
aWJ1dGUqIG1fY3VycmVudEF0dHJpYnV0ZTsKKworICAgIEF0b21pY1N0cmluZyBtX2NhY2hlZE5h
bWU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3Bw
IGIvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNwcAppbmRleCA5NmVmYTExNDc0OTdiMzY3
MzEyZTYxYjhjOGY2NjgyNmZlOWY0ZjZjLi5kYWU3ZjUwOGNlZTM0OGI1MTcxMDc4MDA4Yzk3YmE3
ZjNkMWE1MmM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwCisr
KyBiL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAKQEAgLTk3LDkgKzk3LDE2IEBAIHZv
aWQgSFRNTDVUb2tlbml6ZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBi
b29sKQogICAgICAgICAgICAgLy8gc2VwYXJhdGlvbiBiZXR3ZWVuIHRoZSBwYXJzZXIgbG9naWMg
YW5kIHRva2VuaXplciBsb2dpYyBsaWtlCiAgICAgICAgICAgICAvLyB0aGUgSFRNTDUgY29kZXBh
dGggc2hvdWxkLiAgVGhlIGNhbGwgc2hvdWxkIGxvb2sgc29tZXRoaW5nIGxpa2U6CiAgICAgICAg
ICAgICAvLyBtX3BhcnNlci0+Y29uc3RydWN0VHJlZUZyb21Ub2tlbih0b2tlbik7CisgICAgICAg
ICAgICBpZiAodG9rZW4udHlwZSgpID09IEhUTUw1VG9rZW46OlN0YXJ0VGFnICYmIHRva2VuLm5h
bWUoKSA9PSAic2NyaXB0IikgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHdvcmsg
aXMgc3VwcG9zZWQgdG8gYmUgZG9uZSBieSB0aGUgcGFyc2VyLCBidXQKKyAgICAgICAgICAgICAg
ICAvLyB3ZSB3YW50IHRvIGtlZXAgdXNpbmcgdGhlIG9sZCBwYXJzZXIgZm9yIG5vdywgc28gd2Ug
aGF2ZSB0bworICAgICAgICAgICAgICAgIC8vIGRvIHRoaXMgd29yayBtYW51YWxseS4KKyAgICAg
ICAgICAgICAgICBtX2xleGVyLT5zZXRTdGF0ZShIVE1MNUxleGVyOjpTY3JpcHREYXRhU3RhdGUp
OworICAgICAgICAgICAgfSAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBGb3Igbm93LCB3ZSB0
cmFuc2xhdGUgaW50byBhbiBvbGQtc3R5bGUgdG9rZW4gZm9yIHRlc3RpbmcuCiAgICAgICAgICAg
ICBUb2tlbiBvbGRTdHlsZVRva2VuOwogICAgICAgICAgICAgY29udmVydFRvT2xkU3R5bGUodG9r
ZW4sIG9sZFN0eWxlVG9rZW4pOworCiAgICAgICAgICAgICBtX3BhcnNlci0+cGFyc2VUb2tlbigm
b2xkU3R5bGVUb2tlbik7CiAKICAgICAgICAgICAgIHRva2VuLmNsZWFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56827</attachid>
            <date>2010-05-23 13:20:43 -0700</date>
            <delta_ts>2010-05-23 13:38:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-39525-20100523132043.patch</filename>
            <type>text/plain</type>
            <size>16350</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTg2NTViZjM3YzRlMmEyNzEyYzZmOTNkMjRlMGRkYmZiZGU5YjQ5ZS4uZTM1MmIxMTVhNmFjZjc4
MzE0MzA0MGIwY2NkNzliNTE5MTY3ZGQ1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMC0wNS0yMyAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
U2VpZGVsLgorCisgICAgICAgIE1ha2UgSFRNTDUgcGFyc2VyIHBhcnNlIDxzY3JpcHQ+YWxlcnQo
IjxoaT4iKTs8L3NjcmlwdD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM5NTI1CisKKyAgICAgICAgTW9yZSBwcm9ncmVzcyB0b3dhcmRzIGdldHRpbmcg
dGhlIGh0bWw1bGliIHRlc3QgaGFybmVzcyBydW5uaW5nLiAgV2UKKyAgICAgICAgbmVlZCB0byBw
YXJzZSBzY3JpcHQgZGF0YSBpbiB0aGUgU2NyaXB0RGF0YVN0YXRlLiAgVGhlIHNwZWMgc2F5cyB0
aGUKKyAgICAgICAgcGFyc2VyIHNob3VsZCBzZXQgdGhlIGxleGVyJ3Mgc3RhdGUgdG8gU2NyaXB0
RGF0YVN0YXRlLCBidXQgd2Ugd2FudCB0bworICAgICAgICBrZWVwIHVzaW5nIHRoZSBleGlzdGlu
ZyBwYXJzZXIgZm9yIGEgd2hpbGUgc28gSSd2ZSBhZGRlZCBzb21lIHRlbXBvcmFyeQorICAgICAg
ICBsb2dpYyB0byBIVE1MNVRva2VuaXplciB0byBzZXQgdGhlIHN0YXRlIGluIHRoZSBsZXhlci4K
KworICAgICAgICBUbyBnZXQgdGhpcyBjYXNlIHJ1bm5pbmcsIEkgbmVlZGVkIHRvIGZsZXNoIG91
dCBhIGJ1bmNoIG9mIHRoZQorICAgICAgICBTY3JpcHREYXRhU3RhdGUgbG9naWMuICBUaGVyZSdz
IGEgYnVuY2ggbW9yZSB0byBkbywgYnV0IHRoaXMgaXMgYQorICAgICAgICBzdGFydC4KKworICAg
ICAgICBJJ20gbm90IDEwMCUgaGFwcHkgd2l0aCB0aGlzIHBhdGNoLCBidXQgaXQgbGV0cyB1cyBl
eGVjdXRlIGEgc2ltcGxpZmllZAorICAgICAgICB2ZXJzaW9uIG9mIHRoZSB0ZXN0IGhhcm5lc3Mg
dXAgdG8gdGhlIHBvaW50IHdoZXJlIGl0IHN0YXJ0cyBydW5uaW5nIHRoZQorICAgICAgICBmaXJz
dCB0ZXN0LgorCisgICAgICAgICogaHRtbC9IVE1MNUxleGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUw1TGV4ZXI6Om5leHRUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNUxleGVy
Ojppc0FwcHJvcHJpYXRlRW5kVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1TGV4ZXI6OmVt
aXRDdXJyZW50VGFnVG9rZW4pOgorICAgICAgICAqIGh0bWwvSFRNTDVMZXhlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVMZXhlcjo6c2V0U3RhdGUpOgorICAgICAgICAqIGh0bWwvSFRNTDVU
b2tlbi5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbjo6YmVnaW5FbmRUYWcpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTDVUb2tlbjo6YXBwZW5kVG9DaGFyYWN0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTDVUb2tlbjo6bmFtZSk6CisgICAgICAgICogaHRtbC9IVE1MNVRva2VuaXpl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNVRva2VuaXplcjo6d3JpdGUpOgorCiAyMDEw
LTA1LTIzICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTDVMZXhl
ci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5jcHAKaW5kZXggOGFmNTU3Y2Q5YjY0NDc0
YmU3ZWU5NTg2Njc5YTE3OGQ3NWQwOTBhZS4uM2I3NWNhMWY1N2UyMGIxNjk0NWIwZmZiMmMxYjA0
ODIyNmNiZmZmOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuY3BwCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmNwcApAQCAtMjE4LDYgKzIxOCwxNyBAQCBib29sIEhU
TUw1TGV4ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYg
dG9rZW4pCiAgICAgLy8gd2l0aCB0aGUgc2FtZSB0b2tlbiBzbyB3ZSBjYW4gZmluaXNoIGl0Lgog
ICAgIEFTU0VSVCghbV90b2tlbiB8fCBtX3Rva2VuID09ICZ0b2tlbiB8fCB0b2tlbi50eXBlKCkg
PT0gSFRNTDVUb2tlbjo6VW5pbml0aWFsaXplZCk7CiAgICAgbV90b2tlbiA9ICZ0b2tlbjsKKwor
ICAgIGlmICghbV9idWZmZXJlZEVuZFRhZ05hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIFdl
IHN0YXJ0ZWQgYW4gZW5kIHRhZyBkdXJpbmcgb3VyIGxhc3QgaXRlcmF0aW9uLgorICAgICAgICBt
X3Rva2VuLT5iZWdpbkVuZFRhZyhtX2J1ZmZlcmVkRW5kVGFnTmFtZSk7CisgICAgICAgIG1fYnVm
ZmVyZWRFbmRUYWdOYW1lLmNsZWFyKCk7CisgICAgICAgIGlmIChtX3N0YXRlID09IERhdGFTdGF0
ZSkgeworICAgICAgICAgICAgLy8gV2UncmUgYmFjayBpbiB0aGUgZGF0YSBzdGF0ZSwgc28gd2Ug
bXVzdCBiZSBkb25lIHdpdGggdGhlIHRhZy4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisgICAgfQorCiAgICAgLy8gU291cmNlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyN0b2tlbmlzYXRpb24wCiAgICAgLy8gRklYTUU6IFRo
aXMgd2hpbGUgc2hvdWxkIHN0b3AgYXMgc29vbiBhcyB3ZSBoYXZlIGEgdG9rZW4gdG8gcmV0dXJu
LgogICAgIHdoaWxlICghc291cmNlLmlzRW1wdHkoKSkgewpAQCAtMzE3LDcgKzMyOCw3IEBAIGJv
b2wgSFRNTDVMZXhlcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRv
a2VuJiB0b2tlbikKICAgICAgICAgICAgIGVsc2UgaWYgKGNjID09ICcvJykKICAgICAgICAgICAg
ICAgICBtX3N0YXRlID0gU2VsZkNsb3NpbmdTdGFydFRhZ1N0YXRlOwogICAgICAgICAgICAgZWxz
ZSBpZiAoY2MgPT0gJz4nKSB7Ci0gICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUYWdUb2tlbigp
OworICAgICAgICAgICAgICAgIGVtaXRDdXJyZW50VG9rZW4oKTsKICAgICAgICAgICAgICAgICBt
X3N0YXRlID0gRGF0YVN0YXRlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA+PSAnQScgJiYg
Y2MgPD0gJ1onKQogICAgICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvTmFtZSh0b0xvd2Vy
Q2FzZShjYykpOwpAQCAtNDI1LDYgKzQzNiw3IEBAIGJvb2wgSFRNTDVMZXhlcjo6bmV4dFRva2Vu
KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MNVRva2VuJiB0b2tlbikKICAgICAgICAgY2Fz
ZSBTY3JpcHREYXRhTGVzc1RoYW5TaWduU3RhdGU6IHsKICAgICAgICAgICAgIGlmIChjYyA9PSAn
LycpIHsKICAgICAgICAgICAgICAgICBtX3RlbXBvcmFyeUJ1ZmZlci5jbGVhcigpOworICAgICAg
ICAgICAgICAgIEFTU0VSVChtX2J1ZmZlcmVkRW5kVGFnTmFtZS5pc0VtcHR5KCkpOwogICAgICAg
ICAgICAgICAgIG1fc3RhdGUgPSBTY3JpcHREYXRhRW5kVGFnT3BlblN0YXRlOwogICAgICAgICAg
ICAgfSBlbHNlIGlmIChjYyA9PSAnIScpIHsKICAgICAgICAgICAgICAgICBlbWl0Q2hhcmFjdGVy
KCc8Jyk7CkBAIC00MzksMTAgKzQ1MSwxMiBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tlbihT
ZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBTY3JpcHREYXRhRW5kVGFnT3BlblN0YXRlOiB7CiAgICAgICAgICAgICBpZiAo
Y2MgPj0gJ0EnICYmIGNjIDw9ICdaJykgewotICAgICAgICAgICAgICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgICAgICAgICAgICAgbV90ZW1wb3JhcnlCdWZmZXIuYXBwZW5kKGNjKTsKKyAgICAg
ICAgICAgICAgICBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5hcHBlbmQodG9Mb3dlckNhc2UoY2MpKTsK
ICAgICAgICAgICAgICAgICBtX3N0YXRlID0gU2NyaXB0RGF0YUVuZFRhZ05hbWVTdGF0ZTsKICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPj0gJ2EnICYmIGNjIDw9ICd6JykgewotICAgICAgICAg
ICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAgICAgICAgbV90ZW1wb3JhcnlCdWZm
ZXIuYXBwZW5kKGNjKTsKKyAgICAgICAgICAgICAgICBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5hcHBl
bmQoY2MpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBTY3JpcHREYXRhRW5kVGFnTmFtZVN0
YXRlOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBlbWl0Q2hhcmFjdGVy
KCc8Jyk7CkBAIC00NTMsMjMgKzQ2NywzOSBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tlbihT
ZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFNjcmlwdERhdGFFbmRUYWdOYW1lU3RhdGU6
IHsKLSAgICAgICAgICAgIGlmIChjYyA9PSAnXHgwOScgfHwgY2MgPT0gJ1x4MEEnIHx8IGNjID09
ICdceDBDJyB8fCBjYyA9PSAnICcpIHsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBCZWZvcmVBdHRyaWJ1dGVOYW1lU3RhdGU7Ci0g
ICAgICAgICAgICB9IGVsc2UgaWYgKGNjID09ICcvJykgewotICAgICAgICAgICAgICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgICAgICAgICAgICAgbV9zdGF0ZSA9IFNlbGZDbG9zaW5nU3RhcnRU
YWdTdGF0ZTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7Ci0gICAgICAgICAg
ICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgICAgICAgICBtX3N0YXRlID0gRGF0YVN0
YXRlOwotICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA+PSAnQScgJiYgY2MgPD0gJ1onKQotICAg
ICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgICAgICAgICBlbHNlIGlmIChjYyA+
PSAnYScgJiYgY2MgPD0gJ3onKQotICAgICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChjYyA+PSAnQScgJiYgY2MgPD0gJ1on
KSB7CisgICAgICAgICAgICAgICAgbV90ZW1wb3JhcnlCdWZmZXIuYXBwZW5kKGNjKTsKKyAgICAg
ICAgICAgICAgICBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5hcHBlbmQodG9Mb3dlckNhc2UoY2MpKTsK
KyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPj0gJ2EnICYmIGNjIDw9ICd6JykgeworICAgICAg
ICAgICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmFwcGVuZChjYyk7CisgICAgICAgICAgICAgICAg
bV9idWZmZXJlZEVuZFRhZ05hbWUuYXBwZW5kKGNjKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgaWYgKGNjID09ICdceDA5JyB8fCBjYyA9PSAnXHgwQScgfHwgY2MgPT0g
J1x4MEMnIHx8IGNjID09ICcgJykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNBcHByb3By
aWF0ZUVuZFRhZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3N0YXRlID0gQmVmb3Jl
QXR0cmlidXRlTmFtZVN0YXRlOworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKG1fdG9r
ZW4tPnR5cGUoKSA9PSBIVE1MNVRva2VuOjpDaGFyYWN0ZXIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNjID09
ICcvJykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNBcHByb3ByaWF0ZUVuZFRhZygpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBtX3N0YXRlID0gU2VsZkNsb3NpbmdTdGFydFRhZ1N0
YXRlOworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKG1fdG9rZW4tPnR5cGUoKSA9PSBI
VE1MNVRva2VuOjpDaGFyYWN0ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgZW1pdEN1cnJl
bnRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoaXNBcHByb3ByaWF0ZUVuZFRhZygpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBtX3N0YXRlID0gRGF0YVN0YXRlOworICAgICAgICAgICAgICAgICAgICAgICAg
QVNTRVJUKG1fdG9rZW4tPnR5cGUoKSA9PSBIVE1MNVRva2VuOjpDaGFyYWN0ZXIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgZW1pdENoYXJhY3RlcignPCcpOwogICAgICAgICAgICAgICAgIGVtaXRD
aGFyYWN0ZXIoJy8nKTsKLSAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAg
ICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ2hhcmFjdGVyKG1fdGVtcG9yYXJ5QnVmZmVyKTsK
KyAgICAgICAgICAgICAgICBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5jbGVhcigpOwogICAgICAgICAg
ICAgICAgIG1fc3RhdGUgPSBTY3JpcHREYXRhU3RhdGU7CiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICB9CkBAIC02ODIsNyArNzEyLDcgQEAgYm9vbCBIVE1MNUxleGVyOjpu
ZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAg
ICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJy8nKQogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBT
ZWxmQ2xvc2luZ1N0YXJ0VGFnU3RhdGU7CiAgICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicp
IHsKLSAgICAgICAgICAgICAgICBlbWl0Q3VycmVudFRhZ1Rva2VuKCk7CisgICAgICAgICAgICAg
ICAgZW1pdEN1cnJlbnRUb2tlbigpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3Rh
dGU7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGNjID49ICdBJyAmJiBjYyA8PSAnWicpIHsKICAg
ICAgICAgICAgICAgICBtX3Rva2VuLT5hZGROZXdBdHRyaWJ1dGUoKTsKQEAgLTcwNiw3ICs3MzYs
NyBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwg
SFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnPScpCiAgICAg
ICAgICAgICAgICAgbV9zdGF0ZSA9IEJlZm9yZUF0dHJpYnV0ZVZhbHVlU3RhdGU7CiAgICAgICAg
ICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgICAgICBlbWl0Q3VycmVudFRh
Z1Rva2VuKCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOwogICAgICAgICAg
ICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGNjID49
ICdBJyAmJiBjYyA8PSAnWicpCiAgICAgICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9BdHRy
aWJ1dGVOYW1lKHRvTG93ZXJDYXNlKGNjKSk7CkBAIC03MjcsNyArNzU3LDcgQEAgYm9vbCBIVE1M
NUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRv
a2VuKQogICAgICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz0nKQogICAgICAgICAgICAgICAgIG1f
c3RhdGUgPSBCZWZvcmVBdHRyaWJ1dGVWYWx1ZVN0YXRlOwogICAgICAgICAgICAgZWxzZSBpZiAo
Y2MgPT0gJz0nKSB7Ci0gICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUYWdUb2tlbigpOworICAg
ICAgICAgICAgICAgIGVtaXRDdXJyZW50VG9rZW4oKTsKICAgICAgICAgICAgICAgICBtX3N0YXRl
ID0gRGF0YVN0YXRlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA+PSAnQScgJiYgY2MgPD0g
J1onKSB7CiAgICAgICAgICAgICAgICAgbV90b2tlbi0+YWRkTmV3QXR0cmlidXRlKCk7CkBAIC03
NTUsNyArNzg1LDcgQEAgYm9vbCBIVE1MNUxleGVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UsIEhUTUw1VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBB
dHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZFN0YXRlOwogICAgICAgICAgICAgZWxzZSBpZiAoY2Mg
PT0gJz4nKSB7CiAgICAgICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKLSAgICAgICAgICAg
ICAgICBlbWl0Q3VycmVudFRhZ1Rva2VuKCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRU
b2tlbigpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmIChjYyA9PSAnPCcgfHwgY2MgPT0gJz0nIHx8
IGNjID09ICdgJykKQEAgLTc5NCw3ICs4MjQsNyBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tl
bihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgICAg
ICAgICAgbV9zdGF0ZSA9IENoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlVmFsdWVTdGF0ZTsK
ICAgICAgICAgICAgICAgICBtX2FkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyID0gJz4nOwogICAg
ICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgICAgICBlbWl0Q3Vy
cmVudFRhZ1Rva2VuKCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOwogICAg
ICAgICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgICAgIGlmIChjYyA9PSAnIicgfHwgY2MgPT0gJ1wnJyB8fCBjYyA9PSAnPCcg
fHwgY2MgPT0gJz0nIHx8IGNjID09ICdgJykKQEAgLTgxNCw3ICs4NDQsNyBAQCBib29sIEhUTUw1
TGV4ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9r
ZW4pCiAgICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnLycpCiAgICAgICAgICAgICAgICAgbV9z
dGF0ZSA9IFNlbGZDbG9zaW5nU3RhcnRUYWdTdGF0ZTsKICAgICAgICAgICAgIGVsc2UgaWYgKGNj
ID09ICc+JykgewotICAgICAgICAgICAgICAgIGVtaXRDdXJyZW50VGFnVG9rZW4oKTsKKyAgICAg
ICAgICAgICAgICBlbWl0Q3VycmVudFRva2VuKCk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZSA9
IERhdGFTdGF0ZTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZW1pdFBh
cnNlRXJyb3IoKTsKQEAgLTgyNyw3ICs4NTcsNyBAQCBib29sIEhUTUw1TGV4ZXI6Om5leHRUb2tl
bihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTDVUb2tlbiYgdG9rZW4pCiAgICAgICAgIGNh
c2UgU2VsZkNsb3NpbmdTdGFydFRhZ1N0YXRlOiB7CiAgICAgICAgICAgICBpZiAoY2MgPT0gJz4n
KSB7CiAgICAgICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgICAgICAgICBl
bWl0Q3VycmVudFRhZ1Rva2VuKCk7CisgICAgICAgICAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigp
OwogICAgICAgICAgICAgICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CiAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CkBAIC0xMjI0LDYgKzEyNTQs
MTYgQEAgaW5saW5lIGJvb2wgSFRNTDVMZXhlcjo6dGVtcG9yYXJ5QnVmZmVySXMoY29uc3QgY2hh
ciopCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2lubGluZSBib29sIEhUTUw1TGV4ZXI6OmlzQXBw
cm9wcmlhdGVFbmRUYWcoKQoreworICAgIGlmIChtX2J1ZmZlcmVkRW5kVGFnTmFtZS5zaXplKCkg
IT0gbV9hcHByb3ByaWF0ZUVuZFRhZ05hbWUubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBjb25zdCBVQ2hhciogYXBwcm9wcmlhdGUgPSBtX2FwcHJvcHJpYXRlRW5kVGFnTmFt
ZS5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNoYXIqIGFjdHVhbCA9IG1fYnVmZmVyZWRFbmRU
YWdOYW1lLmRhdGEoKTsKKyAgICAvLyBGSVhNRTogSXMgdGhlcmUgYSBoaWdoZXItbGV2ZWwgZnVu
Y3Rpb24gd2Ugc2hvdWxkIGJlIGNhbGxpbmcgaGVyZT8KKyAgICByZXR1cm4gIW1lbWNtcChhcHBy
b3ByaWF0ZSwgYWN0dWFsLCBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5zaXplKCkgKiBzaXplb2YoVUNo
YXIpKTsKK30KKwogaW5saW5lIHZvaWQgSFRNTDVMZXhlcjo6ZW1pdENvbW1lbnRUb2tlbigpCiB7
CiB9CkBAIC0xMjQyLDkgKzEyODIsMTEgQEAgaW5saW5lIHZvaWQgSFRNTDVMZXhlcjo6ZW1pdFBh
cnNlRXJyb3IoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLWlubGluZSB2b2lkIEhUTUw1
TGV4ZXI6OmVtaXRDdXJyZW50VGFnVG9rZW4oKSAKK2lubGluZSB2b2lkIEhUTUw1TGV4ZXI6OmVt
aXRDdXJyZW50VG9rZW4oKQogewogICAgIG1fZW1pdFBlbmRpbmcgPSB0cnVlOworICAgIGlmICht
X3Rva2VuLT50eXBlKCkgPT0gSFRNTDVUb2tlbjo6U3RhcnRUYWcpCisgICAgICAgIG1fYXBwcm9w
cmlhdGVFbmRUYWdOYW1lID0gbV90b2tlbi0+bmFtZSgpOwogfQogCiBpbmxpbmUgdm9pZCBIVE1M
NUxleGVyOjplbWl0Q3VycmVudERvY3R5cGVUb2tlbigpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTDVMZXhlci5oIGIvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuaAppbmRleCA5MWJjZDcy
MTc1OWQ3OGJjYmM4ZDJmMzNmODEwZTJkMDU0NWI1Yjc0Li42NTQ2ZDk3ZmY3OGUxYjFkNDQ2OGQ0
MTQwMjU2ZDA1MWIyNjlkZTU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5o
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmgKQEAgLTM4LDI3ICszOCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEhUTUw1TGV4ZXIgOiBwdWJsaWMgTm9uY29weWFi
bGUgewogICAgIHB1YmxpYzoKLSAgICAgICAgSFRNTDVMZXhlcigpOwotICAgICAgICB+SFRNTDVM
ZXhlcigpOwotCi0gICAgICAgIHZvaWQgcmVzZXQoKTsKLQotICAgICAgICAvLyBUaGlzIGZ1bmN0
aW9uIHJldHVybnMgdHJ1ZSBpZiBpdCBlbWl0cyBhIHRva2VuLiAgT3RoZXJ3aXNlLCBjYWxsZXJz
Ci0gICAgICAgIC8vIG11c3QgcHJvdmlkZSB0aGUgc2FtZSAoaW4gcHJvZ3Jlc3MpIHRva2VuIG9u
IHRoZSBuZXh0IGNhbGwgKHVubGVzcwotICAgICAgICAvLyB0aGV5IGNhbGwgcmVzZXQoKSBmaXJz
dCkuCi0gICAgICAgIGJvb2wgbmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYsIEhUTUw1VG9rZW4m
KTsKLQotICAgICAgICBzdGF0aWMgdW5zaWduZWQgY29uc3VtZUVudGl0eShTZWdtZW50ZWRTdHJp
bmcmLCBib29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAg
IGlubGluZSB2b2lkIGVtaXRDb21tZW50VG9rZW4oKTsKLSAgICAgICAgaW5saW5lIHZvaWQgZW1p
dENoYXJhY3RlcihVQ2hhcik7Ci0gICAgICAgIGlubGluZSB2b2lkIGVtaXRQYXJzZUVycm9yKCk7
Ci0gICAgICAgIGlubGluZSB2b2lkIGVtaXRDdXJyZW50VGFnVG9rZW4oKTsKLSAgICAgICAgaW5s
aW5lIHZvaWQgZW1pdEN1cnJlbnREb2N0eXBlVG9rZW4oKTsKLQotICAgICAgICBpbmxpbmUgYm9v
bCB0ZW1wb3JhcnlCdWZmZXJJcyhjb25zdCBjaGFyKik7Ci0KICAgICAgICAgZW51bSBTdGF0ZSB7
CiAgICAgICAgICAgICBEYXRhU3RhdGUsCiAgICAgICAgICAgICBDaGFyYWN0ZXJSZWZlcmVuY2VJ
bkRhdGFTdGF0ZSwKQEAgLTEzMiwxOSArMTExLDQ4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgICAgIFRva2VuaXppbmdDaGFyYWN0ZXJSZWZlcmVuY2VzU3RhdGUsCiAgICAgICAgIH07
CiAKKyAgICAgICAgSFRNTDVMZXhlcigpOworICAgICAgICB+SFRNTDVMZXhlcigpOworCisgICAg
ICAgIHZvaWQgcmVzZXQoKTsKKworICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1
ZSBpZiBpdCBlbWl0cyBhIHRva2VuLiAgT3RoZXJ3aXNlLCBjYWxsZXJzCisgICAgICAgIC8vIG11
c3QgcHJvdmlkZSB0aGUgc2FtZSAoaW4gcHJvZ3Jlc3MpIHRva2VuIG9uIHRoZSBuZXh0IGNhbGwg
KHVubGVzcworICAgICAgICAvLyB0aGV5IGNhbGwgcmVzZXQoKSBmaXJzdCkuCisgICAgICAgIGJv
b2wgbmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYsIEhUTUw1VG9rZW4mKTsKKworICAgICAgICB2
b2lkIHNldFN0YXRlKFN0YXRlIHN0YXRlKSB7IG1fc3RhdGUgPSBzdGF0ZTsgfQorCisgICAgICAg
IHN0YXRpYyB1bnNpZ25lZCBjb25zdW1lRW50aXR5KFNlZ21lbnRlZFN0cmluZyYsIGJvb2wmIG5v
dEVub3VnaENoYXJhY3RlcnMpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgaW5saW5lIHZvaWQg
ZW1pdENvbW1lbnRUb2tlbigpOworICAgICAgICBpbmxpbmUgdm9pZCBlbWl0Q2hhcmFjdGVyKFVD
aGFyKTsKKyAgICAgICAgaW5saW5lIHZvaWQgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgaW5s
aW5lIHZvaWQgZW1pdEN1cnJlbnRUb2tlbigpOworICAgICAgICBpbmxpbmUgdm9pZCBlbWl0Q3Vy
cmVudERvY3R5cGVUb2tlbigpOworCisgICAgICAgIGlubGluZSBib29sIHRlbXBvcmFyeUJ1ZmZl
cklzKGNvbnN0IGNoYXIqKTsKKworICAgICAgICBpbmxpbmUgYm9vbCBpc0FwcHJvcHJpYXRlRW5k
VGFnKCk7CisKICAgICAgICAgU3RhdGUgbV9zdGF0ZTsKIAorICAgICAgICBBdG9taWNTdHJpbmcg
bV9hcHByb3ByaWF0ZUVuZFRhZ05hbWU7CisKICAgICAgICAgLy8gbV90b2tlbiBpcyBvd25lZCBi
eSB0aGUgY2FsbGVyLiAgSWYgbmV4dFRva2VuIGlzIG5vdCBvbiB0aGUgc3RhY2ssCiAgICAgICAg
IC8vIHRoaXMgbWVtYmVyIG1pZ2h0IGJlIHBvaW50aW5nIHRvIHVuYWxsb2NhdGVkIG1lbW9yeS4K
ICAgICAgICAgSFRNTDVUb2tlbiogbV90b2tlbjsKIAogICAgICAgICBib29sIG1fZW1pdFBlbmRp
bmc7CiAKLSAgICAgICAgVmVjdG9yPFVDaGFyLCAzMj4gbV9hdHRyaWJ1dGVOYW1lOwotICAgICAg
ICBWZWN0b3I8VUNoYXIsIDMyPiBtX2F0dHJpYnV0ZVZhbHVlOwotCiAgICAgICAgIC8vIGh0dHA6
Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3RlbXBvcmFyeS1i
dWZmZXIKLSAgICAgICAgVmVjdG9yPFVDaGFyLCAxMDI0PiBtX3RlbXBvcmFyeUJ1ZmZlcjsKKyAg
ICAgICAgVmVjdG9yPFVDaGFyLCAzMj4gbV90ZW1wb3JhcnlCdWZmZXI7CisKKyAgICAgICAgLy8g
V2Ugb2NjYXRpb25hbGx5IHdhbnQgdG8gZW1pdCBib3RoIGEgY2hhcmFjdGVyIHRva2VuIGFuZCBh
biBlbmQgdGFnCisgICAgICAgIC8vIHRva2VuIChlLmcuLCB3aGVuIGxleGluZyBzY3JpcHQpLiAg
V2UgYnVmZmVyIHRoZSBuYW1lIG9mIHRoZSBlbmQgdGFnCisgICAgICAgIC8vIHRva2VuIGhlcmUg
c28gd2UgcmVtZW1iZXIgaXQgbmV4dCB0aW1lIHdlIHJlLWVudGVyIHRoZSBsZXhlci4KKyAgICAg
ICAgVmVjdG9yPFVDaGFyLCAzMj4gbV9idWZmZXJlZEVuZFRhZ05hbWU7CiAKICAgICAgICAgLy8g
aHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jYWRkaXRp
b25hbC1hbGxvd2VkLWNoYXJhY3RlcgogICAgICAgICBVQ2hhciBtX2FkZGl0aW9uYWxBbGxvd2Vk
Q2hhcmFjdGVyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW4uaCBiL1dlYkNv
cmUvaHRtbC9IVE1MNVRva2VuLmgKaW5kZXggOTk0MGQ3ZTY3YmM5NTY0Zjk1MmVhNTQ4YWQ2YTk0
ZTM4NzUyMjkwYy4uOGUzNWI5MjQwN2ViOWNjZmE5ZWUzMmJjZTRkMzIwM2RiNDdkYjc2YSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW4uaAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TDVUb2tlbi5oCkBAIC02Nyw3ICs2Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgbV9kYXRhLmFwcGVu
ZChjaGFyYWN0ZXIpOwogICAgIH0KIAotICAgIHZvaWQgYmVnaW5FbmRUYWcoVUNoYXIgY2hhcmFj
dGVyKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBiZWdpbkVuZFRhZyhUIGNo
YXJhY3RlcnMpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IFVuaW5pdGlhbGl6ZWQp
OwogICAgICAgICBtX3R5cGUgPSBFbmRUYWc7CkBAIC03NSw3ICs3Niw3IEBAIHB1YmxpYzoKICAg
ICAgICAgbV9zZWxmQ2xvc2luZyA9IGZhbHNlOwogICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUg
PSAwOwogCi0gICAgICAgIG1fZGF0YS5hcHBlbmQoY2hhcmFjdGVyKTsKKyAgICAgICAgbV9kYXRh
LmFwcGVuZChjaGFyYWN0ZXJzKTsKICAgICB9CiAKICAgICB2b2lkIGJlZ2luQ2hhcmFjdGVyKFVD
aGFyIGNoYXJhY3RlcikKQEAgLTkyLDEwICs5MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZGF0
YS5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAKLSAgICB2b2lkIGFwcGVuZFRvQ2hhcmFjdGVy
KFVDaGFyIGNoYXJhY3RlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgYXBw
ZW5kVG9DaGFyYWN0ZXIoVCBjaGFyYWN0ZXJzKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlw
ZSA9PSBDaGFyYWN0ZXIpOwotICAgICAgICBtX2RhdGEuYXBwZW5kKGNoYXJhY3Rlcik7CisgICAg
ICAgIG1fZGF0YS5hcHBlbmQoY2hhcmFjdGVycyk7CiAgICAgfQogCiAgICAgdm9pZCBhZGROZXdB
dHRyaWJ1dGUoKQpAQCAtMTIyLDcgKzEyNCwxMCBAQCBwdWJsaWM6CiAgICAgQXRvbWljU3RyaW5n
IG5hbWUoKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBTdGFydFRhZyB8fCBtX3R5
cGUgPT0gRW5kVGFnIHx8IG1fdHlwZSA9PSBET0NUWVBFKTsKLSAgICAgICAgcmV0dXJuIEF0b21p
Y1N0cmluZyhTdHJpbmdJbXBsOjphZG9wdChtX2RhdGEpKTsKKyAgICAgICAgaWYgKCFtX2RhdGEu
aXNFbXB0eSgpKQorICAgICAgICAgICAgbV9jYWNoZWROYW1lID0gQXRvbWljU3RyaW5nKFN0cmlu
Z0ltcGw6OmFkb3B0KG1fZGF0YSkpOworICAgICAgICBBU1NFUlQoIW1fY2FjaGVkTmFtZS5pc0Vt
cHR5KCkpOworICAgICAgICByZXR1cm4gbV9jYWNoZWROYW1lOwogICAgIH0KIAogICAgIGJvb2wg
c2VsZkNsb3NpbmcoKSBjb25zdApAQCAtMTYyLDYgKzE2Nyw4IEBAIHByaXZhdGU6CiAKICAgICAv
LyBBIHBvaW50ZXIgaW50byBtX2F0dHJpYnV0ZXMgdXNlZCBkdXJpbmcgbGV4aW5nLgogICAgIEF0
dHJpYnV0ZSogbV9jdXJyZW50QXR0cmlidXRlOworCisgICAgQXRvbWljU3RyaW5nIG1fY2FjaGVk
TmFtZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5j
cHAgYi9XZWJDb3JlL2h0bWwvSFRNTDVUb2tlbml6ZXIuY3BwCmluZGV4IDk2ZWZhMTE0NzQ5N2Iz
NjczMTJlNjFiOGM4ZjY2ODI2ZmU5ZjRmNmMuLmRhZTdmNTA4Y2VlMzQ4YjUxNzEwNzgwMDhjOTdi
YTdmM2QxYTUyYzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNVRva2VuaXplci5jcHAK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUw1VG9rZW5pemVyLmNwcApAQCAtOTcsOSArOTcsMTYgQEAg
dm9pZCBIVE1MNVRva2VuaXplcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IGJvb2wpCiAgICAgICAgICAgICAvLyBzZXBhcmF0aW9uIGJldHdlZW4gdGhlIHBhcnNlciBsb2dp
YyBhbmQgdG9rZW5pemVyIGxvZ2ljIGxpa2UKICAgICAgICAgICAgIC8vIHRoZSBIVE1MNSBjb2Rl
cGF0aCBzaG91bGQuICBUaGUgY2FsbCBzaG91bGQgbG9vayBzb21ldGhpbmcgbGlrZToKICAgICAg
ICAgICAgIC8vIG1fcGFyc2VyLT5jb25zdHJ1Y3RUcmVlRnJvbVRva2VuKHRva2VuKTsKKyAgICAg
ICAgICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTDVUb2tlbjo6U3RhcnRUYWcgJiYgdG9rZW4u
bmFtZSgpID09ICJzY3JpcHQiKSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgd29y
ayBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBwYXJzZXIsIGJ1dAorICAgICAgICAgICAg
ICAgIC8vIHdlIHdhbnQgdG8ga2VlcCB1c2luZyB0aGUgb2xkIHBhcnNlciBmb3Igbm93LCBzbyB3
ZSBoYXZlIHRvCisgICAgICAgICAgICAgICAgLy8gZG8gdGhpcyB3b3JrIG1hbnVhbGx5LgorICAg
ICAgICAgICAgICAgIG1fbGV4ZXItPnNldFN0YXRlKEhUTUw1TGV4ZXI6OlNjcmlwdERhdGFTdGF0
ZSk7CisgICAgICAgICAgICB9ICAgICAgICAgICAKICAgICAgICAgICAgIC8vIEZvciBub3csIHdl
IHRyYW5zbGF0ZSBpbnRvIGFuIG9sZC1zdHlsZSB0b2tlbiBmb3IgdGVzdGluZy4KICAgICAgICAg
ICAgIFRva2VuIG9sZFN0eWxlVG9rZW47CiAgICAgICAgICAgICBjb252ZXJ0VG9PbGRTdHlsZSh0
b2tlbiwgb2xkU3R5bGVUb2tlbik7CisKICAgICAgICAgICAgIG1fcGFyc2VyLT5wYXJzZVRva2Vu
KCZvbGRTdHlsZVRva2VuKTsKIAogICAgICAgICAgICAgdG9rZW4uY2xlYXIoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>