<?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>41397</bug_id>
          
          <creation_ts>2010-06-30 02:25:20 -0700</creation_ts>
          <short_desc>HTMLTokenizer should use fewer macros</short_desc>
          <delta_ts>2010-06-30 03:27:20 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>244697</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-30 02:25:20 -0700</bug_when>
    <thetext>HTMLTokenizer should use fewer macros</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244698</commentid>
    <comment_count>1</comment_count>
      <attachid>60102</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-30 02:26:15 -0700</bug_when>
    <thetext>Created attachment 60102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244700</commentid>
    <comment_count>2</comment_count>
      <attachid>60102</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-30 02:38:49 -0700</bug_when>
    <thetext>Comment on attachment 60102
Patch

I like this.  It&apos;s a bit subtle that we now always have to call &quot;return emit*&quot; and never just &quot;emit*&quot;.  The macros were slightly nice for making sure folks didn&apos;t hit that error.

You might try searching for &quot;  emit&quot; just to make sure we didn&apos;t miss one.

&quot;bufferCurrentToken&quot; makes little sense. :)  It&apos;s an emit-helper, it doesn&apos;t do any buffering.  bufferCharacter on the other hand is a great name!

bufferEndOfFile also makes no sense.  it&apos;s just called by emitEndOfFile and can just be inlined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244701</commentid>
    <comment_count>3</comment_count>
      <attachid>60103</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-30 02:44:51 -0700</bug_when>
    <thetext>Created attachment 60103
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244717</commentid>
    <comment_count>4</comment_count>
      <attachid>60103</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-30 03:27:15 -0700</bug_when>
    <thetext>Comment on attachment 60103
Patch for landing

Clearing flags on attachment: 60103

Committed r62175: &lt;http://trac.webkit.org/changeset/62175&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244718</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-30 03:27:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60102</attachid>
            <date>2010-06-30 02:26:15 -0700</date>
            <delta_ts>2010-06-30 02:44:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41397-20100630022613.patch</filename>
            <type>text/plain</type>
            <size>56713</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDlkNzYwMTMxNGEwYzM0YTU4ZWQ3N2Q2YzMzN2NjOWY4NGQ2NTczMi4uOGRhNTEwOGE5M2VlOGUz
ZjhhNjUyM2ZiOGVhMjhlNGM5ZDkyYTZiNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wNi0zMCAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEhUTUxUb2tlbml6ZXIgc2hvdWxkIHVzZSBmZXdlciBtYWNy
b3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMzk3
CisKKyAgICAgICAgTWFjcm9zIGFyZSBzYWRuZXNzLiAgSW5saW5lIGZ1bmN0aW9ucyBhcmUgdGhl
IG5ldyBob3RuZXNzLgorCisgICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnByb2Nlc3NFbnRpdHkpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRva2VuaXplcjo6ZW1pdEFuZFJlc3VtZUluKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUb2tlbml6ZXI6OmVtaXRBbmRSZWNvbnN1bWVJbik6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVG9rZW5pemVyOjplbWl0RW5kT2ZGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tl
bml6ZXI6OmZsdXNoQnVmZmVyZWRFbmRUYWcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2Vu
aXplcjo6Zmx1c2hFbWl0QW5kUmVzdW1lSW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2Vu
aXplcjo6bmV4dFRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OmJ1ZmZl
ckNoYXJhY3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpidWZmZXJDb2Rl
UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6YnVmZmVyUGFyc2VFcnJv
cik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpidWZmZXJDdXJyZW50VG9rZW4p
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6YnVmZmVyRW5kT2ZGaWxlKToKKyAg
ICAgICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuaDoKKwogMjAxMC0wNi0yOSAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcCBiL1dlYkNvcmUvaHRtbC9I
VE1MVG9rZW5pemVyLmNwcAppbmRleCAwNTQ4ZDFkMjBkMGQ3ZGEzMzliOGUzNTVmZTVlYzJkNDI4
MGQ3NDhkLi41MjEzMWJlNTU4MTdlNGJjNzAyMGFkYTE2YzRjZDk2NWUzZGE1YTI5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxUb2tlbml6ZXIuY3BwCkBAIC0xMTUsOSArMTE1LDkgQEAgaW5saW5lIGJvb2wgSFRNTFRva2Vu
aXplcjo6cHJvY2Vzc0VudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKICAgICBpZiAobm90
RW5vdWdoQ2hhcmFjdGVycykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghdmFsdWUp
Ci0gICAgICAgIGVtaXRDaGFyYWN0ZXIoJyYnKTsKKyAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCcm
Jyk7CiAgICAgZWxzZQotICAgICAgICBlbWl0Q29kZVBvaW50KHZhbHVlKTsKKyAgICAgICAgYnVm
ZmVyQ29kZVBvaW50KHZhbHVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTYyLDUzICsx
NjIsNTQgQEAgaW5saW5lIGJvb2wgSFRNTFRva2VuaXplcjo6cHJvY2Vzc0VudGl0eShTZWdtZW50
ZWRTdHJpbmcmIHNvdXJjZSkKICAgICAgICAgZ290byBzdGF0ZU5hbWU7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxz
ZSkKIAotLy8gV2UgdXNlIHRoaXMgbWFjcm8gd2hlbiB0aGUgSFRNTDUgc3BlYyBzYXlzICJFbWl0
IHRoZSBjdXJyZW50IDxtdW1ibGU+CisvLyBXZSB1c2UgdGhpcyBmdW5jdGlvbiB3aGVuIHRoZSBI
VE1MNSBzcGVjIHNheXMgIkVtaXQgdGhlIGN1cnJlbnQgPG11bWJsZT4KIC8vIHRva2VuLiBTd2l0
Y2ggdG8gdGhlIDxtdW1ibGU+IHN0YXRlLiIgIFdlIHVzZSB0aGUgd29yZCAicmVzdW1lIiBpbnN0
ZWFkIG9mCiAvLyBzd2l0Y2ggdG8gaW5kaWNhdGUgdGhhdCB0aGlzIG1hY3JvIGFjdHVhbGx5IHJl
dHVybnMgYW5kIHRoYXQgd2UnbGwgZW5kIHVwCiAvLyBpbiB0aGUgc3RhdGUgd2hlbiB3ZSAicmVz
dW1lIiAoaS5lLiwgYXJlIGNhbGxlZCBhZ2FpbikuCi0jZGVmaW5lIEVNSVRfQU5EX1JFU1VNRV9J
TihzdGF0ZU5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgICAgIG1fc3RhdGUgPSBzdGF0ZU5hbWU7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHNvdXJjZS5hZHZh
bmNlKG1fbGluZU51bWJlcik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICAgIGVtaXRDdXJyZW50VG9rZW4oKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiB0cnVlOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSB3aGlsZSAo
ZmFsc2UpCitib29sIEhUTUxUb2tlbml6ZXI6OmVtaXRBbmRSZXN1bWVJbihTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSwgU3RhdGUgc3RhdGUpCit7CisgICAgbV9zdGF0ZSA9IHN0YXRlOworICAgIHNv
dXJjZS5hZHZhbmNlKG1fbGluZU51bWJlcik7CisgICAgYnVmZmVyQ3VycmVudFRva2VuKCk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CiAKLS8vIElkZW50aWNhbCB0byBFTUlUX0FORF9SRVNVTUVfSU4s
IGV4Y2VwdCBkb2VzIG5vdCBhZHZhbmNlLgotI2RlZmluZSBFTUlUX0FORF9SRUNPTlNVTUVfSU4o
c3RhdGVOYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvIHsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICAgICBtX3N0YXRlID0gc3RhdGVOYW1lOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBlbWl0Q3VycmVudFRva2Vu
KCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
ICAgICByZXR1cm4gdHJ1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIH0gd2hpbGUgKGZhbHNlKQorLy8gSWRlbnRpY2FsIHRvIGVt
aXRBbmRSZXN1bWVJbiwgZXhjZXB0IGRvZXMgbm90IGFkdmFuY2UuCitib29sIEhUTUxUb2tlbml6
ZXI6OmVtaXRBbmRSZWNvbnN1bWVJbihTZWdtZW50ZWRTdHJpbmcmLCBTdGF0ZSBzdGF0ZSkKK3sK
KyAgICBtX3N0YXRlID0gc3RhdGU7CisgICAgYnVmZmVyQ3VycmVudFRva2VuKCk7CisgICAgcmV0
dXJuIHRydWU7Cit9CiAKIC8vIFVzZWQgdG8gZW1pdCB0aGUgRW5kT2ZGaWxlIHRva2VuLgogLy8g
Q2hlY2sgaWYgd2UgaGF2ZSBidWZmZXJlZCBjaGFyYWN0ZXJzIHRvIGVtaXQgZmlyc3QgYmVmb3Jl
IGVtaXR0aW5nIHRoZSBFT0YuCi0jZGVmaW5lIEVNSVRfRU5EX09GX0ZJTEUoKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8geyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgICAgIGlmIChzaG91bGRFbWl0QnVmZmVyZWRDaGFyYWN0ZXJUb2tlbihzb3VyY2Up
KSAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIG1f
c3RhdGUgPSBEYXRhU3RhdGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgIHNvdXJjZS5hZHZhbmNlKG1fbGluZU51bWJlcik7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGVtaXRFbmRPZkZpbGUoKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgIHJldHVybiB0cnVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgfSB3aGlsZSAoZmFsc2UpCitib29sIEhUTUxUb2tlbml6ZXI6
OmVtaXRFbmRPZkZpbGUoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCit7CisgICAgaWYgKHNob3Vs
ZEVtaXRCdWZmZXJlZENoYXJhY3RlclRva2VuKHNvdXJjZSkpCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIG1fc3RhdGUgPSBEYXRhU3RhdGU7CisgICAgc291cmNlLmFkdmFuY2UobV9saW5lTnVt
YmVyKTsKKyAgICBidWZmZXJFbmRPZkZpbGUoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAotI2Rl
ZmluZSBfRkxVU0hfQlVGRkVSRURfRU5EX1RBRygpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBBU1NFUlQobV90
b2tlbi0+dHlwZSgpID09IEhUTUxUb2tlbjo6Q2hhcmFjdGVyIHx8ICAgICAgICAgICAgICAgICAg
XAotICAgICAgICAgICAgICAgbV90b2tlbi0+dHlwZSgpID09IEhUTUxUb2tlbjo6VW5pbml0aWFs
aXplZCk7ICAgICAgICAgICAgICAgXAotICAgICAgICBzb3VyY2UuYWR2YW5jZShtX2xpbmVOdW1i
ZXIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAo
bV90b2tlbi0+dHlwZSgpID09IEhUTUxUb2tlbjo6Q2hhcmFjdGVyKSAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgICAgICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBtX3Rva2VuLT5iZWdpbkVuZFRh
ZyhtX2J1ZmZlcmVkRW5kVGFnTmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAg
ICBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5jbGVhcigpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIH0gd2hpbGUgKGZhbHNlKQorYm9vbCBIVE1MVG9rZW5pemVyOjpm
bHVzaEJ1ZmZlcmVkRW5kVGFnKFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQoreworICAgIEFTU0VS
VChtX3Rva2VuLT50eXBlKCkgPT0gSFRNTFRva2VuOjpDaGFyYWN0ZXIgfHwgbV90b2tlbi0+dHlw
ZSgpID09IEhUTUxUb2tlbjo6VW5pbml0aWFsaXplZCk7CisgICAgc291cmNlLmFkdmFuY2UobV9s
aW5lTnVtYmVyKTsKKyAgICBpZiAobV90b2tlbi0+dHlwZSgpID09IEhUTUxUb2tlbjo6Q2hhcmFj
dGVyKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBtX3Rva2VuLT5iZWdpbkVuZFRhZyhtX2J1
ZmZlcmVkRW5kVGFnTmFtZSk7CisgICAgbV9idWZmZXJlZEVuZFRhZ05hbWUuY2xlYXIoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CiAKICNkZWZpbmUgRkxVU0hfQU5EX0FEVkFOQ0VfVE8oc3RhdGVO
YW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBkbyB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICAgICAgbV9zdGF0ZSA9IHN0YXRlTmFtZTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgX0ZMVVNIX0JVRkZFUkVEX0VORF9U
QUcoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
aWYgKGZsdXNoQnVmZmVyZWRFbmRUYWcoc291cmNlKSkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgICAgIHJldHVybiB0cnVlOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgaWYgKHNvdXJjZS5pc0Vt
cHR5KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg
ICAgICAgICAgIHx8ICFtX2lucHV0U3RyZWFtUHJlcHJvY2Vzc29yLnBlZWsoc291cmNlLCBtX2xp
bmVOdW1iZXIpKSAgICAgIFwKICAgICAgICAgICAgIHJldHVybiBzaG91bGRFbWl0QnVmZmVyZWRD
aGFyYWN0ZXJUb2tlbihzb3VyY2UpOyAgICAgICAgICAgICAgIFwKQEAgLTIxNiwxMiArMjE3LDEy
IEBAIGlubGluZSBib29sIEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NFbnRpdHkoU2VnbWVudGVkU3Ry
aW5nJiBzb3VyY2UpCiAgICAgICAgIGdvdG8gc3RhdGVOYW1lOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAK
LSNkZWZpbmUgRkxVU0hfRU1JVF9BTkRfUkVTVU1FX0lOKHN0YXRlTmFtZSkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgbV9zdGF0
ZSA9IHN0YXRlTmFtZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgICAgX0ZMVVNIX0JVRkZFUkVEX0VORF9UQUcoKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB9IHdo
aWxlIChmYWxzZSkKK2Jvb2wgSFRNTFRva2VuaXplcjo6Zmx1c2hFbWl0QW5kUmVzdW1lSW4oU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIFN0YXRlIHN0YXRlKQoreworICAgIG1fc3RhdGUgPSBzdGF0
ZTsKKyAgICBmbHVzaEJ1ZmZlcmVkRW5kVGFnKHNvdXJjZSk7CisgICAgcmV0dXJuIHRydWU7Cit9
CiAKIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNl
LCBIVE1MVG9rZW4mIHRva2VuKQogewpAQCAtMjc1LDkgKzI3Niw5IEBAIGJvb2wgSFRNTFRva2Vu
aXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2Vu
KQogICAgICAgICAgICAgfQogICAgICAgICAgICAgQURWQU5DRV9UTyhUYWdPcGVuU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZp
bGVNYXJrZXIpCi0gICAgICAgICAgICBFTUlUX0VORF9PRl9GSUxFKCk7CisgICAgICAgICAgICBy
ZXR1cm4gZW1pdEVuZE9mRmlsZShzb3VyY2UpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
IGVtaXRDaGFyYWN0ZXIoY2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAg
ICAgICAgICAgIEFEVkFOQ0VfVE8oRGF0YVN0YXRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI5
Niw5ICsyOTcsOSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJzwn
KQogICAgICAgICAgICAgQURWQU5DRV9UTyhSQ0RBVEFMZXNzVGhhblNpZ25TdGF0ZSk7CiAgICAg
ICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJr
ZXIpCi0gICAgICAgICAgICBFTUlUX0VORF9PRl9GSUxFKCk7CisgICAgICAgICAgICByZXR1cm4g
ZW1pdEVuZE9mRmlsZShzb3VyY2UpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRD
aGFyYWN0ZXIoY2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAg
ICAgIEFEVkFOQ0VfVE8oUkNEQVRBU3RhdGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtMzE1LDkg
KzMxNiw5IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBpZiAoY2MgPT0gJzwnKQogICAgICAg
ICAgICAgQURWQU5DRV9UTyhSQVdURVhUTGVzc1RoYW5TaWduU3RhdGUpOwogICAgICAgICBlbHNl
IGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKQotICAg
ICAgICAgICAgRU1JVF9FTkRfT0ZfRklMRSgpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRFbmRP
ZkZpbGUoc291cmNlKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVy
KGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBBRFZB
TkNFX1RPKFJBV1RFWFRTdGF0ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0zMjcsOSArMzI4LDkg
QEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChjYyA9PSAnPCcpCiAgICAgICAgICAgICBB
RFZBTkNFX1RPKFNjcmlwdERhdGFMZXNzVGhhblNpZ25TdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYg
KGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCi0gICAgICAg
ICAgICBFTUlUX0VORF9PRl9GSUxFKCk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEVuZE9mRmls
ZShzb3VyY2UpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoY2Mp
OworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0Vf
VE8oU2NyaXB0RGF0YVN0YXRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTMzNyw5ICszMzgsOSBA
QCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwg
SFRNTFRva2VuJiB0b2tlbikKIAogICAgIEJFR0lOX1NUQVRFKFBMQUlOVEVYVFN0YXRlKSB7CiAg
ICAgICAgIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2Vy
KQotICAgICAgICAgICAgRU1JVF9FTkRfT0ZfRklMRSgpOworICAgICAgICAgICAgcmV0dXJuIGVt
aXRFbmRPZkZpbGUoc291cmNlKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZW1pdENoYXJh
Y3RlcihjYyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICBBRFZB
TkNFX1RPKFBMQUlOVEVYVFN0YXRlKTsKICAgICB9CiAgICAgRU5EX1NUQVRFKCkKQEAgLTM1Niwx
NCArMzU3LDE0IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmlu
ZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5T
dGFydFRhZyhjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFRhZ05hbWVTdGF0ZSk7CiAgICAg
ICAgIH0gZWxzZSBpZiAoY2MgPT0gJz8nKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigp
OworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgLy8gVGhlIHNw
ZWMgY29uc3VtZXMgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGJlZm9yZSBzd2l0Y2hpbmcKICAgICAg
ICAgICAgIC8vIHRvIHRoZSBib2d1cyBjb21tZW50IHN0YXRlLCBidXQgaXQncyBlYXNpZXIgdG8g
aW1wbGVtZW50CiAgICAgICAgICAgICAvLyBpZiB3ZSByZWNvbnN1bWUgdGhlIGN1cnJlbnQgY2hh
cmFjdGVyLgogICAgICAgICAgICAgUkVDT05TVU1FX0lOKEJvZ3VzQ29tbWVudFN0YXRlKTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Ci0gICAgICAgICAg
ICBlbWl0Q2hhcmFjdGVyKCc8Jyk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7Cisg
ICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJzwnKTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9J
TihEYXRhU3RhdGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtMzc3LDE1ICszNzgsMTUgQEAgYm9v
bCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxU
b2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBtX3Rva2VuLT5iZWdpbkVuZFRhZyhjYyk7CiAgICAg
ICAgICAgICBBRFZBTkNFX1RPKFRhZ05hbWVTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2Mg
PT0gJz4nKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgYnVm
ZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhEYXRhU3RhdGUpOwogICAg
ICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVN
YXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Ci0gICAgICAgICAgICBlbWl0
Q2hhcmFjdGVyKCc8Jyk7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKCcvJyk7CisgICAgICAg
ICAgICBidWZmZXJQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJzwn
KTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcignLycpOwogICAgICAgICAgICAgUkVDT05T
VU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbWl0UGFy
c2VFcnJvcigpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAg
UkVDT05TVU1FX0lOKEJvZ3VzQ29tbWVudFN0YXRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTM5
NywxMiArMzk4LDEyIEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0
cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChjYyA9PSAn
LycpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNlbGZDbG9zaW5nU3RhcnRUYWdTdGF0ZSk7CiAg
ICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFU1VNRV9J
TihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2Us
IERhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID49ICdBJyAmJiBjYyA8PSAnWicpIHsK
ICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvTmFtZSh0b0xvd2VyQ2FzZShjYykpOwogICAg
ICAgICAgICAgQURWQU5DRV9UTyhUYWdOYW1lU3RhdGUpOwogICAgICAgICB9IGlmIChjYyA9PSBJ
bnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBl
bWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAg
ICAgICAgUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBtX3Rva2VuLT5hcHBlbmRUb05hbWUoY2MpOwpAQCAtNDE3LDcgKzQxOCw3IEBAIGJvb2wg
SFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9r
ZW4mIHRva2VuKQogICAgICAgICAgICAgQVNTRVJUKG1fYnVmZmVyZWRFbmRUYWdOYW1lLmlzRW1w
dHkoKSk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFJDREFUQUVuZFRhZ09wZW5TdGF0ZSk7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKCc8Jyk7CisgICAgICAg
ICAgICBidWZmZXJDaGFyYWN0ZXIoJzwnKTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9JTihSQ0RB
VEFTdGF0ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC00MzMsOCArNDM0LDggQEAgYm9vbCBIVE1M
VG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYg
dG9rZW4pCiAgICAgICAgICAgICBhZGRUb1Bvc3NpYmxlRW5kVGFnKGNjKTsKICAgICAgICAgICAg
IEFEVkFOQ0VfVE8oUkNEQVRBRW5kVGFnTmFtZVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJzwnKTsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIo
Jy8nKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcignPCcpOworICAgICAgICAgICAgYnVm
ZmVyQ2hhcmFjdGVyKCcvJyk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oUkNEQVRBU3RhdGUp
OwogICAgICAgICB9CiAgICAgfQpAQCAtNDU4LDEwICs0NTksMTAgQEAgYm9vbCBIVE1MVG9rZW5p
emVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4p
CiAgICAgICAgICAgICAgICAgICAgIEZMVVNIX0FORF9BRFZBTkNFX1RPKFNlbGZDbG9zaW5nU3Rh
cnRUYWdTdGF0ZSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgewogICAgICAg
ICAgICAgICAgIGlmIChpc0FwcHJvcHJpYXRlRW5kVGFnKCkpCi0gICAgICAgICAgICAgICAgICAg
IEZMVVNIX0VNSVRfQU5EX1JFU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZmx1c2hFbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgZW1pdENoYXJhY3RlcignPCcpOwotICAgICAgICAgICAgZW1p
dENoYXJhY3RlcignLycpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCc8Jyk7CisgICAg
ICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJy8nKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVu
ZFRvQ2hhcmFjdGVyKG1fdGVtcG9yYXJ5QnVmZmVyKTsKICAgICAgICAgICAgIG1fYnVmZmVyZWRF
bmRUYWdOYW1lLmNsZWFyKCk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oUkNEQVRBU3RhdGUp
OwpAQCAtNDc1LDcgKzQ3Niw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21l
bnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgQVNTRVJU
KG1fYnVmZmVyZWRFbmRUYWdOYW1lLmlzRW1wdHkoKSk7CiAgICAgICAgICAgICBBRFZBTkNFX1RP
KFJBV1RFWFRFbmRUYWdPcGVuU3RhdGUpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ZW1pdENoYXJhY3RlcignPCcpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCc8Jyk7CiAg
ICAgICAgICAgICBSRUNPTlNVTUVfSU4oUkFXVEVYVFN0YXRlKTsKICAgICAgICAgfQogICAgIH0K
QEAgLTQ5MSw4ICs0OTIsOCBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50
ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIGFkZFRvUG9z
c2libGVFbmRUYWcoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhSQVdURVhURW5kVGFnTmFt
ZVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJzwn
KTsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJy8nKTsKKyAgICAgICAgICAgIGJ1ZmZlckNo
YXJhY3RlcignPCcpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCcvJyk7CiAgICAgICAg
ICAgICBSRUNPTlNVTUVfSU4oUkFXVEVYVFN0YXRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTUx
NiwxMCArNTE3LDEwIEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0
cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgICAgICAgICBGTFVT
SF9BTkRfQURWQU5DRV9UTyhTZWxmQ2xvc2luZ1N0YXJ0VGFnU3RhdGUpOwogICAgICAgICAgICAg
fSBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgICAgICBpZiAoaXNBcHByb3ByaWF0
ZUVuZFRhZygpKQotICAgICAgICAgICAgICAgICAgICBGTFVTSF9FTUlUX0FORF9SRVNVTUVfSU4o
RGF0YVN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZsdXNoRW1pdEFuZFJlc3Vt
ZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVtaXRD
aGFyYWN0ZXIoJzwnKTsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJy8nKTsKKyAgICAgICAg
ICAgIGJ1ZmZlckNoYXJhY3RlcignPCcpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCcv
Jyk7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NoYXJhY3RlcihtX3RlbXBvcmFyeUJ1
ZmZlcik7CiAgICAgICAgICAgICBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5jbGVhcigpOwogICAgICAg
ICAgICAgUkVDT05TVU1FX0lOKFJBV1RFWFRTdGF0ZSk7CkBAIC01MzMsMTEgKzUzNCwxMSBAQCBi
b29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRN
TFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIEFTU0VSVChtX2J1ZmZlcmVkRW5kVGFnTmFtZS5p
c0VtcHR5KCkpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhTY3JpcHREYXRhRW5kVGFnT3BlblN0
YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnIScpIHsKLSAgICAgICAgICAgIGVtaXRD
aGFyYWN0ZXIoJzwnKTsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJyEnKTsKKyAgICAgICAg
ICAgIGJ1ZmZlckNoYXJhY3RlcignPCcpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCch
Jyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFFc2NhcGVTdGFydFN0YXRlKTsK
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJzwnKTsKKyAgICAg
ICAgICAgIGJ1ZmZlckNoYXJhY3RlcignPCcpOwogICAgICAgICAgICAgUkVDT05TVU1FX0lOKFNj
cmlwdERhdGFTdGF0ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC01NTMsOCArNTU0LDggQEAgYm9v
bCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxU
b2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBhZGRUb1Bvc3NpYmxlRW5kVGFnKGNjKTsKICAgICAg
ICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YUVuZFRhZ05hbWVTdGF0ZSk7CiAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKCc8Jyk7Ci0gICAgICAgICAgICBlbWl0
Q2hhcmFjdGVyKCcvJyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJzwnKTsKKyAgICAg
ICAgICAgIGJ1ZmZlckNoYXJhY3RlcignLycpOwogICAgICAgICAgICAgUkVDT05TVU1FX0lOKFNj
cmlwdERhdGFTdGF0ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC01NzgsMTAgKzU3OSwxMCBAQCBi
b29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRN
TFRva2VuJiB0b2tlbikKICAgICAgICAgICAgICAgICAgICAgRkxVU0hfQU5EX0FEVkFOQ0VfVE8o
U2VsZkNsb3NpbmdTdGFydFRhZ1N0YXRlKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0g
Jz4nKSB7CiAgICAgICAgICAgICAgICAgaWYgKGlzQXBwcm9wcmlhdGVFbmRUYWcoKSkKLSAgICAg
ICAgICAgICAgICAgICAgRkxVU0hfRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmbHVzaEVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFT
dGF0ZSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKCc8Jyk7Ci0g
ICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKCcvJyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0
ZXIoJzwnKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcignLycpOwogICAgICAgICAgICAg
bV90b2tlbi0+YXBwZW5kVG9DaGFyYWN0ZXIobV90ZW1wb3JhcnlCdWZmZXIpOwogICAgICAgICAg
ICAgbV9idWZmZXJlZEVuZFRhZ05hbWUuY2xlYXIoKTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9J
TihTY3JpcHREYXRhU3RhdGUpOwpAQCAtNTkxLDcgKzU5Miw3IEBAIGJvb2wgSFRNTFRva2VuaXpl
cjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQog
CiAgICAgQkVHSU5fU1RBVEUoU2NyaXB0RGF0YUVzY2FwZVN0YXJ0U3RhdGUpIHsKICAgICAgICAg
aWYgKGNjID09ICctJykgewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcihjYyk7CisgICAgICAg
ICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhTY3JpcHRE
YXRhRXNjYXBlU3RhcnREYXNoU3RhdGUpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIFJF
Q09OU1VNRV9JTihTY3JpcHREYXRhU3RhdGUpOwpAQCAtNjAwLDcgKzYwMSw3IEBAIGJvb2wgSFRN
TFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4m
IHRva2VuKQogCiAgICAgQkVHSU5fU1RBVEUoU2NyaXB0RGF0YUVzY2FwZVN0YXJ0RGFzaFN0YXRl
KSB7CiAgICAgICAgIGlmIChjYyA9PSAnLScpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIo
Y2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFO
Q0VfVE8oU2NyaXB0RGF0YUVzY2FwZWREYXNoRGFzaFN0YXRlKTsKICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICBSRUNPTlNVTUVfSU4oU2NyaXB0RGF0YVN0YXRlKTsKQEAgLTYwOSwxNSArNjEw
LDE1IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291
cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogCiAgICAgQkVHSU5fU1RBVEUoU2NyaXB0RGF0YUVzY2Fw
ZWRTdGF0ZSkgewogICAgICAgICBpZiAoY2MgPT0gJy0nKSB7Ci0gICAgICAgICAgICBlbWl0Q2hh
cmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAg
ICBBRFZBTkNFX1RPKFNjcmlwdERhdGFFc2NhcGVkRGFzaFN0YXRlKTsKICAgICAgICAgfSBlbHNl
IGlmIChjYyA9PSAnPCcpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFFc2NhcGVk
TGVzc1RoYW5TaWduU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVBy
ZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJv
cigpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgUkVDT05T
VU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbWl0Q2hh
cmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAg
ICBBRFZBTkNFX1RPKFNjcmlwdERhdGFFc2NhcGVkU3RhdGUpOwogICAgICAgICB9CiAgICAgfQpA
QCAtNjI1LDE1ICs2MjYsMTUgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAKICAgICBCRUdJTl9TVEFURShT
Y3JpcHREYXRhRXNjYXBlZERhc2hTdGF0ZSkgewogICAgICAgICBpZiAoY2MgPT0gJy0nKSB7Ci0g
ICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3Rl
cihjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFFc2NhcGVkRGFzaERhc2hT
dGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJzwnKQogICAgICAgICAgICAgQURWQU5D
RV9UTyhTY3JpcHREYXRhRXNjYXBlZExlc3NUaGFuU2lnblN0YXRlKTsKICAgICAgICAgZWxzZSBp
ZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAg
ICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1ZmZlclBhcnNlRXJyb3Io
KTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcihjYyk7CisgICAgICAgICAgICBidWZmZXJDaGFy
YWN0ZXIoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhTY3JpcHREYXRhRXNjYXBlZFN0YXRl
KTsKICAgICAgICAgfQogICAgIH0KQEAgLTY0MSwxOCArNjQyLDE4IEBAIGJvb2wgSFRNTFRva2Vu
aXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2Vu
KQogCiAgICAgQkVHSU5fU1RBVEUoU2NyaXB0RGF0YUVzY2FwZWREYXNoRGFzaFN0YXRlKSB7CiAg
ICAgICAgIGlmIChjYyA9PSAnLScpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoY2MpOwor
ICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8o
U2NyaXB0RGF0YUVzY2FwZWREYXNoRGFzaFN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9
PSAnPCcpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFFc2NhcGVkTGVzc1RoYW5T
aWduU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgIGVt
aXRDaGFyYWN0ZXIoY2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAg
ICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YVN0YXRlKTsKICAgICAgICAgfSBpZiAoY2MgPT0g
SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAgICAgICAg
ZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1ZmZlclBhcnNlRXJyb3IoKTsKICAgICAg
ICAgICAgIFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgZW1pdENoYXJhY3RlcihjYyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2Mp
OwogICAgICAgICAgICAgQURWQU5DRV9UTyhTY3JpcHREYXRhRXNjYXBlZFN0YXRlKTsKICAgICAg
ICAgfQogICAgIH0KQEAgLTY2NCwxOSArNjY1LDE5IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICAgICAgQVNTRVJUKG1fYnVmZmVyZWRFbmRUYWdOYW1lLmlzRW1wdHkoKSk7CiAgICAgICAgICAg
ICBBRFZBTkNFX1RPKFNjcmlwdERhdGFFc2NhcGVkRW5kVGFnT3BlblN0YXRlKTsKICAgICAgICAg
fSBlbHNlIGlmIChjYyA+PSAnQScgJiYgY2MgPD0gJ1onKSB7Ci0gICAgICAgICAgICBlbWl0Q2hh
cmFjdGVyKCc8Jyk7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAgICAg
IGJ1ZmZlckNoYXJhY3RlcignPCcpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsK
ICAgICAgICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmNsZWFyKCk7CiAgICAgICAgICAgICBtX3Rl
bXBvcmFyeUJ1ZmZlci5hcHBlbmQodG9Mb3dlckNhc2UoY2MpKTsKICAgICAgICAgICAgIEFEVkFO
Q0VfVE8oU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0U3RhdGUpOwogICAgICAgICB9IGVsc2Ug
aWYgKGNjID49ICdhJyAmJiBjYyA8PSAneicpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIo
JzwnKTsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoY2MpOworICAgICAgICAgICAgYnVmZmVy
Q2hhcmFjdGVyKCc8Jyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAg
ICAgICAgbV90ZW1wb3JhcnlCdWZmZXIuY2xlYXIoKTsKICAgICAgICAgICAgIG1fdGVtcG9yYXJ5
QnVmZmVyLmFwcGVuZChjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFEb3Vi
bGVFc2NhcGVTdGFydFN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRD
aGFyYWN0ZXIoJzwnKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcignPCcpOwogICAgICAg
ICAgICAgUkVDT05TVU1FX0lOKFNjcmlwdERhdGFFc2NhcGVkU3RhdGUpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtNjkyLDggKzY5Myw4IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNl
Z21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgYWRk
VG9Qb3NzaWJsZUVuZFRhZyhjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFF
c2NhcGVkRW5kVGFnTmFtZVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVt
aXRDaGFyYWN0ZXIoJzwnKTsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJy8nKTsKKyAgICAg
ICAgICAgIGJ1ZmZlckNoYXJhY3RlcignPCcpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVy
KCcvJyk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oU2NyaXB0RGF0YUVzY2FwZWRTdGF0ZSk7
CiAgICAgICAgIH0KICAgICB9CkBAIC03MTcsMTAgKzcxOCwxMCBAQCBib29sIEhUTUxUb2tlbml6
ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikK
ICAgICAgICAgICAgICAgICAgICAgRkxVU0hfQU5EX0FEVkFOQ0VfVE8oU2VsZkNsb3NpbmdTdGFy
dFRhZ1N0YXRlKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKGlzQXBwcm9wcmlhdGVFbmRUYWcoKSkKLSAgICAgICAgICAgICAgICAgICAg
RkxVU0hfRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBmbHVzaEVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKCc8Jyk7Ci0gICAgICAgICAgICBlbWl0
Q2hhcmFjdGVyKCcvJyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJzwnKTsKKyAgICAg
ICAgICAgIGJ1ZmZlckNoYXJhY3RlcignLycpOwogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5k
VG9DaGFyYWN0ZXIobV90ZW1wb3JhcnlCdWZmZXIpOwogICAgICAgICAgICAgbV9idWZmZXJlZEVu
ZFRhZ05hbWUuY2xlYXIoKTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9JTihTY3JpcHREYXRhRXNj
YXBlZFN0YXRlKTsKQEAgLTczMCwxNyArNzMxLDE3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogCiAgICAg
QkVHSU5fU1RBVEUoU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0U3RhdGUpIHsKICAgICAgICAg
aWYgKGNjID09ICdceDA5JyB8fCBjYyA9PSAnXHgwQScgfHwgY2MgPT0gJ1x4MEMnIHx8IGNjID09
ICcgJyB8fCBjYyA9PSAnLycgfHwgY2MgPT0gJz4nKSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFj
dGVyKGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBp
ZiAodGVtcG9yYXJ5QnVmZmVySXMoc2NyaXB0VGFnLmxvY2FsTmFtZSgpKSkKICAgICAgICAgICAg
ICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFEb3VibGVFc2NhcGVkU3RhdGUpOwogICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YUVzY2FwZWRTdGF0
ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPj0gJ0EnICYmIGNjIDw9ICdaJykgewotICAgICAg
ICAgICAgZW1pdENoYXJhY3RlcihjYyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2Mp
OwogICAgICAgICAgICAgbV90ZW1wb3JhcnlCdWZmZXIuYXBwZW5kKHRvTG93ZXJDYXNlKGNjKSk7
CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFEb3VibGVFc2NhcGVTdGFydFN0YXRl
KTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA+PSAnYScgJiYgY2MgPD0gJ3onKSB7Ci0gICAgICAg
ICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7
CiAgICAgICAgICAgICBtX3RlbXBvcmFyeUJ1ZmZlci5hcHBlbmQoY2MpOwogICAgICAgICAgICAg
QURWQU5DRV9UTyhTY3JpcHREYXRhRG91YmxlRXNjYXBlU3RhcnRTdGF0ZSk7CiAgICAgICAgIH0g
ZWxzZQpAQCAtNzUwLDE2ICs3NTEsMTYgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4o
U2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAKICAgICBCRUdJTl9T
VEFURShTY3JpcHREYXRhRG91YmxlRXNjYXBlZFN0YXRlKSB7CiAgICAgICAgIGlmIChjYyA9PSAn
LScpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoY2MpOworICAgICAgICAgICAgYnVmZmVy
Q2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YURvdWJsZUVz
Y2FwZWREYXNoU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc8JykgewotICAgICAg
ICAgICAgZW1pdENoYXJhY3RlcihjYyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2Mp
OwogICAgICAgICAgICAgQURWQU5DRV9UTyhTY3JpcHREYXRhRG91YmxlRXNjYXBlZExlc3NUaGFu
U2lnblN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nl
c3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwor
ICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgUkVDT05TVU1FX0lO
KERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVy
KGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBBRFZB
TkNFX1RPKFNjcmlwdERhdGFEb3VibGVFc2NhcGVkU3RhdGUpOwogICAgICAgICB9CiAgICAgfQpA
QCAtNzY3LDE2ICs3NjgsMTYgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAKICAgICBCRUdJTl9TVEFURShT
Y3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2hTdGF0ZSkgewogICAgICAgICBpZiAoY2MgPT0gJy0n
KSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNo
YXJhY3RlcihjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFEb3VibGVFc2Nh
cGVkRGFzaERhc2hTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJzwnKSB7Ci0gICAg
ICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3Rlcihj
Yyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1Ro
YW5TaWduU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJv
Y2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7
CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBSRUNPTlNVTUVf
SU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0
ZXIoY2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFE
VkFOQ0VfVE8oU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRTdGF0ZSk7CiAgICAgICAgIH0KICAgICB9
CkBAIC03ODQsMTkgKzc4NSwxOSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKIAogICAgIEJFR0lOX1NUQVRF
KFNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaERhc2hTdGF0ZSkgewogICAgICAgICBpZiAoY2Mg
PT0gJy0nKSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1
ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFEb3Vi
bGVFc2NhcGVkRGFzaERhc2hTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJzwnKSB7
Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJh
Y3RlcihjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFEb3VibGVFc2NhcGVk
TGVzc1RoYW5TaWduU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgewotICAg
ICAgICAgICAgZW1pdENoYXJhY3RlcihjYyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIo
Y2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhTY3JpcHREYXRhU3RhdGUpOwogICAgICAgICB9
IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIp
IHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJz
ZUVycm9yKCk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoY2MpOworICAgICAgICAgICAgYnVm
ZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YURvdWJs
ZUVzY2FwZWRTdGF0ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC04MDQsNyArODA1LDcgQEAgYm9v
bCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxU
b2tlbiYgdG9rZW4pCiAKICAgICBCRUdJTl9TVEFURShTY3JpcHREYXRhRG91YmxlRXNjYXBlZExl
c3NUaGFuU2lnblN0YXRlKSB7CiAgICAgICAgIGlmIChjYyA9PSAnLycpIHsKLSAgICAgICAgICAg
IGVtaXRDaGFyYWN0ZXIoY2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAg
ICAgICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmNsZWFyKCk7CiAgICAgICAgICAgICBBRFZBTkNF
X1RPKFNjcmlwdERhdGFEb3VibGVFc2NhcGVFbmRTdGF0ZSk7CiAgICAgICAgIH0gZWxzZQpAQCAt
ODE0LDE3ICs4MTUsMTcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVk
U3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAKICAgICBCRUdJTl9TVEFURShTY3Jp
cHREYXRhRG91YmxlRXNjYXBlRW5kU3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICdceDA5JyB8
fCBjYyA9PSAnXHgwQScgfHwgY2MgPT0gJ1x4MEMnIHx8IGNjID09ICcgJyB8fCBjYyA9PSAnLycg
fHwgY2MgPT0gJz4nKSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAg
ICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBpZiAodGVtcG9yYXJ5QnVmZmVy
SXMoc2NyaXB0VGFnLmxvY2FsTmFtZSgpKSkKICAgICAgICAgICAgICAgICBBRFZBTkNFX1RPKFNj
cmlwdERhdGFFc2NhcGVkU3RhdGUpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IEFEVkFOQ0VfVE8oU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRTdGF0ZSk7CiAgICAgICAgIH0gZWxz
ZSBpZiAoY2MgPj0gJ0EnICYmIGNjIDw9ICdaJykgewotICAgICAgICAgICAgZW1pdENoYXJhY3Rl
cihjYyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICAgICAgbV90
ZW1wb3JhcnlCdWZmZXIuYXBwZW5kKHRvTG93ZXJDYXNlKGNjKSk7CiAgICAgICAgICAgICBBRFZB
TkNFX1RPKFNjcmlwdERhdGFEb3VibGVFc2NhcGVFbmRTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBp
ZiAoY2MgPj0gJ2EnICYmIGNjIDw9ICd6JykgewotICAgICAgICAgICAgZW1pdENoYXJhY3Rlcihj
Yyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICAgICAgbV90ZW1w
b3JhcnlCdWZmZXIuYXBwZW5kKGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0
YURvdWJsZUVzY2FwZUVuZFN0YXRlKTsKICAgICAgICAgfSBlbHNlCkBAIC04MzgsMTcgKzgzOSwx
NyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJj
ZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJy8nKQogICAgICAg
ICAgICAgQURWQU5DRV9UTyhTZWxmQ2xvc2luZ1N0YXJ0VGFnU3RhdGUpOwogICAgICAgICBlbHNl
IGlmIChjYyA9PSAnPicpCi0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0YXRl
KTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3RhdGUp
OwogICAgICAgICBlbHNlIGlmIChjYyA+PSAnQScgJiYgY2MgPD0gJ1onKSB7CiAgICAgICAgICAg
ICBtX3Rva2VuLT5hZGROZXdBdHRyaWJ1dGUoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVu
ZFRvQXR0cmlidXRlTmFtZSh0b0xvd2VyQ2FzZShjYykpOwogICAgICAgICAgICAgQURWQU5DRV9U
TyhBdHRyaWJ1dGVOYW1lU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3Ry
ZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJz
ZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBS
RUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlm
IChjYyA9PSAnIicgfHwgY2MgPT0gJ1wnJyB8fCBjYyA9PSAnPCcgfHwgY2MgPT0gJz0nKQotICAg
ICAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICAgICAgYnVmZmVyUGFy
c2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+YWRkTmV3QXR0cmlidXRlKCk7CiAgICAg
ICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0F0dHJpYnV0ZU5hbWUoY2MpOwogICAgICAgICAgICAg
QURWQU5DRV9UTyhBdHRyaWJ1dGVOYW1lU3RhdGUpOwpAQCAtODY0LDE2ICs4NjUsMTYgQEAgYm9v
bCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxU
b2tlbiYgdG9rZW4pCiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc9JykKICAgICAgICAgICAgIEFE
VkFOQ0VfVE8oQmVmb3JlQXR0cmlidXRlVmFsdWVTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNj
ID09ICc+JykKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFU1VNRV9JTihEYXRhU3RhdGUpOworICAg
ICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAg
ICAgIGVsc2UgaWYgKGNjID49ICdBJyAmJiBjYyA8PSAnWicpIHsKICAgICAgICAgICAgIG1fdG9r
ZW4tPmFwcGVuZFRvQXR0cmlidXRlTmFtZSh0b0xvd2VyQ2FzZShjYykpOwogICAgICAgICAgICAg
QURWQU5DRV9UTyhBdHRyaWJ1dGVOYW1lU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09
IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAg
IGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAg
ICAgICAgICBSRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIGlmIChjYyA9PSAnIicgfHwgY2MgPT0gJ1wnJyB8fCBjYyA9PSAnPCcgfHwgY2MgPT0g
Jz0nKQotICAgICAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICAgICAg
YnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9BdHRyaWJ1
dGVOYW1lKGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQXR0cmlidXRlTmFtZVN0YXRlKTsK
ICAgICAgICAgfQpAQCAtODg4LDE3ICs4ODksMTcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAg
IGVsc2UgaWYgKGNjID09ICc9JykKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQmVmb3JlQXR0cmli
dXRlVmFsdWVTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykKLSAgICAgICAgICAg
IEVNSVRfQU5EX1JFU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRB
bmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID49ICdB
JyAmJiBjYyA8PSAnWicpIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFkZE5ld0F0dHJpYnV0ZSgp
OwogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9BdHRyaWJ1dGVOYW1lKHRvTG93ZXJDYXNl
KGNjKSk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKEF0dHJpYnV0ZU5hbWVTdGF0ZSk7CiAgICAg
ICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1h
cmtlcikgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1ZmZl
clBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKGNjID09ICciJyB8fCBjYyA9PSAnXCcnIHx8
IGNjID09ICc8JykKLSAgICAgICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAg
ICAgICAgIGJ1ZmZlclBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmFkZE5ld0F0
dHJpYnV0ZSgpOwogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9BdHRyaWJ1dGVOYW1lKGNj
KTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQXR0cmlidXRlTmFtZVN0YXRlKTsKQEAgLTkxNiwx
NCArOTE3LDE0IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmlu
ZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChjYyA9PSAnXCcn
KQogICAgICAgICAgICAgQURWQU5DRV9UTyhBdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZFN0YXRl
KTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VF
cnJvcigpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAg
ICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJl
c3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1
dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBlbWl0
UGFyc2VFcnJvcigpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAg
ICAgUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBpZiAoY2MgPT0gJzwnIHx8IGNjID09ICc9JyB8fCBjYyA9PSAnYCcpCi0gICAgICAgICAgICAg
ICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7
CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKGNjKTsKICAgICAg
ICAgICAgIEFEVkFOQ0VfVE8oQXR0cmlidXRlVmFsdWVVbnF1b3RlZFN0YXRlKTsKICAgICAgICAg
fQpAQCAtOTM3LDcgKzkzOCw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21l
bnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgbV9hZGRp
dGlvbmFsQWxsb3dlZENoYXJhY3RlciA9ICciJzsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQ2hh
cmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGVWYWx1ZVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlm
IChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAg
ICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigp
OwogICAgICAgICAgICAgUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKGNjKTsKQEAgLTk1
Myw3ICs5NTQsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIG1fYWRkaXRpb25hbEFs
bG93ZWRDaGFyYWN0ZXIgPSAnXCcnOwogICAgICAgICAgICAgQURWQU5DRV9UTyhDaGFyYWN0ZXJS
ZWZlcmVuY2VJbkF0dHJpYnV0ZVZhbHVlU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09
IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAg
IGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAg
ICAgICAgICBSRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoY2MpOwpAQCAtOTY5LDEzICs5
NzAsMTMgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBtX2FkZGl0aW9uYWxBbGxvd2Vk
Q2hhcmFjdGVyID0gJz4nOwogICAgICAgICAgICAgQURWQU5DRV9UTyhDaGFyYWN0ZXJSZWZlcmVu
Y2VJbkF0dHJpYnV0ZVZhbHVlU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykK
LSAgICAgICAgICAgIEVNSVRfQU5EX1JFU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAg
cmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2Ug
aWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAg
ICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9y
KCk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIGlmIChjYyA9PSAnIicgfHwgY2MgPT0gJ1wnJyB8fCBjYyA9PSAnPCcg
fHwgY2MgPT0gJz0nIHx8IGNjID09ICdgJykKLSAgICAgICAgICAgICAgICBlbWl0UGFyc2VFcnJv
cigpOworICAgICAgICAgICAgICAgIGJ1ZmZlclBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1f
dG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9U
TyhBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkU3RhdGUpOwogICAgICAgICB9CkBAIC0xMDE2LDEyICsx
MDE3LDEyIEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChjYyA9PSAnLycpCiAg
ICAgICAgICAgICBBRFZBTkNFX1RPKFNlbGZDbG9zaW5nU3RhcnRUYWdTdGF0ZSk7CiAgICAgICAg
IGVsc2UgaWYgKGNjID09ICc+JykKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFU1VNRV9JTihEYXRh
U3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFT
dGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpl
bmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAg
ICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oRGF0YVN0
YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Cisg
ICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4o
QmVmb3JlQXR0cmlidXRlTmFtZVN0YXRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTEwMzAsMTIg
KzEwMzEsMTIgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgQkVHSU5fU1RBVEUoU2VsZkNsb3NpbmdT
dGFydFRhZ1N0YXRlKSB7CiAgICAgICAgIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0YXRl
KTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3RhdGUp
OwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRP
ZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAg
ICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oRGF0YVN0YXRl
KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAg
ICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oQmVm
b3JlQXR0cmlidXRlTmFtZVN0YXRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTEwNDgsNyArMTA0
OSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291
cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICB3aGlsZSAoIXNvdXJjZS5pc0VtcHR5KCkp
IHsKICAgICAgICAgICAgIGNjID0gbV9pbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5uZXh0SW5wdXRD
aGFyYWN0ZXIoKTsKICAgICAgICAgICAgIGlmIChjYyA9PSAnPicpCi0gICAgICAgICAgICAgICAg
RU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVt
aXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgICAgICBtX3Rva2VuLT5h
cHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAgICAgbV9pbnB1dFN0cmVhbVByZXByb2Nlc3Nv
ci5hZHZhbmNlKHNvdXJjZSwgbV9saW5lTnVtYmVyKTsKICAgICAgICAgICAgIC8vIFdlIGlnbm9y
ZSB0aGUgcmV0dXJuIHZhbHVlICh3aGljaCBpbmRpY2F0ZXMgdGhhdCB8c291cmNlfCBpcwpAQCAt
MTA4Myw3ICsxMDg0LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVk
U3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgICAgIC8vIEZJWE1FOiBXZSdyZSBzdGlsbCBtaXNzaW5nIHRoZSBiaXRzIGFib3V0
IHRoZSBpbnNlcnRpb24gbW9kZSBiZWluZyBpbiBmb3JlaWduIGNvbnRlbnQ6CiAgICAgICAgIC8v
IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlw
YWdlL3Rva2VuaXphdGlvbi5odG1sI21hcmt1cC1kZWNsYXJhdGlvbi1vcGVuLXN0YXRlCi0gICAg
ICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgIGJ1ZmZlclBhcnNlRXJyb3IoKTsKICAgICAg
ICAgUkVDT05TVU1FX0lOKEJvZ3VzQ29tbWVudFN0YXRlKTsKICAgICB9CiAgICAgRU5EX1NUQVRF
KCkKQEAgLTEwOTIsMTEgKzEwOTMsMTEgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4o
U2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChj
YyA9PSAnLScpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKENvbW1lbnRTdGFydERhc2hTdGF0ZSk7
CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJy
b3IoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAg
ICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1
bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAgICAgICAgZW1pdFBh
cnNlRXJyb3IoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUp
OworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOworICAgICAgICAgICAgcmV0dXJuIGVt
aXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAgICAgQURW
QU5DRV9UTyhDb21tZW50U3RhdGUpOwpAQCAtMTEwOCwxMSArMTEwOSwxMSBAQCBib29sIEhUTUxU
b2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgaWYgKGNjID09ICctJykKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQ29t
bWVudEVuZFN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKSB7Ci0gICAgICAgICAg
ICBlbWl0UGFyc2VFcnJvcigpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFT
dGF0ZSk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CisgICAgICAgICAgICByZXR1
cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlm
IChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAg
ICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVDT05TVU1F
X0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CisgICAgICAg
ICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOwog
ICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KGNjKTsKQEAgLTExMjUsOCArMTEy
Niw4IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291
cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBpZiAoY2MgPT0gJy0nKQogICAgICAgICAg
ICAgQURWQU5DRV9UTyhDb21tZW50RW5kRGFzaFN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2Mg
PT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAgICAg
ICAgZW1pdFBhcnNlRXJyb3IoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFQ09OU1VNRV9JTihE
YXRhU3RhdGUpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOworICAgICAgICAgICAg
cmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAg
ICAgICAgQURWQU5DRV9UTyhDb21tZW50U3RhdGUpOwpAQCAtMTEzOCw4ICsxMTM5LDggQEAgYm9v
bCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxU
b2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChjYyA9PSAnLScpCiAgICAgICAgICAgICBBRFZBTkNF
X1RPKENvbW1lbnRFbmRTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFt
UHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVy
cm9yKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKKyAg
ICAgICAgICAgIGJ1ZmZlclBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5k
UmVjb25zdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7CiAgICAgICAgICAgICBtX3Rva2Vu
LT5hcHBlbmRUb0NvbW1lbnQoY2MpOwpAQCAtMTE1MCwyNiArMTE1MSwyNiBAQCBib29sIEhUTUxU
b2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0
b2tlbikKIAogICAgIEJFR0lOX1NUQVRFKENvbW1lbnRFbmRTdGF0ZSkgewogICAgICAgICBpZiAo
Y2MgPT0gJz4nKQotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7Cisg
ICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAg
ICAgICAgZWxzZSBpZiAoY2MgPT0gJ1x4MDknIHx8IGNjID09ICdceDBBJyB8fCBjYyA9PSAnXHgw
QycgfHwgY2MgPT0gJyAnKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAg
ICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9D
b21tZW50KCctJyk7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsK
ICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7CiAgICAgICAgICAgICBB
RFZBTkNFX1RPKENvbW1lbnRFbmRTcGFjZVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9
PSAnIScpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZm
ZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKENvbW1lbnRFbmRCYW5nU3Rh
dGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICctJykgewotICAgICAgICAgICAgZW1pdFBh
cnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1ZmZlclBhcnNlRXJyb3IoKTsKICAgICAgICAgICAg
IG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOwogICAgICAgICAgICAgbV90b2tlbi0+YXBw
ZW5kVG9Db21tZW50KGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQ29tbWVudEVuZFN0YXRl
KTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5k
T2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwotICAgICAgICAg
ICAgRU1JVF9BTkRfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICBidWZmZXJQ
YXJzZUVycm9yKCk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJj
ZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVy
cm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rv
a2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRv
Q29tbWVudCgnLScpOwogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KGNjKTsK
QEAgLTExODUsMTAgKzExODYsMTAgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBtX3Rv
a2VuLT5hcHBlbmRUb0NvbW1lbnQoJyEnKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQ29tbWVu
dEVuZERhc2hTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKQotICAgICAgICAg
ICAgRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0g
SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAgICAgICAg
ZW1pdFBhcnNlRXJyb3IoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFQ09OU1VNRV9JTihEYXRh
U3RhdGUpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOworICAgICAgICAgICAgcmV0
dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsKICAgICAgICAg
ICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOwpAQCAtMTIwNiwxMCArMTIwNywxMCBA
QCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwg
SFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnLScpCiAgICAgICAg
ICAgICBBRFZBTkNFX1RPKENvbW1lbnRFbmREYXNoU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChj
YyA9PSAnPicpCi0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0YXRlKTsKKyAg
ICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAg
ICAgICBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFy
a2VyKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwotICAgICAgICAgICAgRU1JVF9B
TkRfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9y
KCk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0
YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29t
bWVudChjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKENvbW1lbnRTdGF0ZSk7CkBAIC0xMjIx
LDEyICsxMjIyLDEyIEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0
cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBpZiAoY2MgPT0gJ1x4MDkn
IHx8IGNjID09ICdceDBBJyB8fCBjYyA9PSAnXHgwQycgfHwgY2MgPT0gJyAnKQogICAgICAgICAg
ICAgQURWQU5DRV9UTyhCZWZvcmVET0NUWVBFTmFtZVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAo
Y2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAg
ICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1ZmZlclBhcnNlRXJyb3IoKTsK
ICAgICAgICAgICAgIG1fdG9rZW4tPmJlZ2luRE9DVFlQRSgpOwogICAgICAgICAgICAgbV90b2tl
bi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFQ09OU1VNRV9JTihE
YXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2Us
IERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJv
cigpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgUkVDT05T
VU1FX0lOKEJlZm9yZURPQ1RZUEVOYW1lU3RhdGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTIz
OSwxNSArMTI0MCwxNSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRT
dHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIG1fdG9rZW4tPmJl
Z2luRE9DVFlQRSh0b0xvd2VyQ2FzZShjYykpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhET0NU
WVBFTmFtZVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAgICAgICAg
ICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAg
ICAgICAgICAgICBtX3Rva2VuLT5iZWdpbkRPQ1RZUEUoKTsKICAgICAgICAgICAgIG1fdG9rZW4t
PnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0
YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3Rh
dGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpl
bmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAg
ICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5iZWdpbkRPQ1RZ
UEUoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAg
ICBFTUlUX0FORF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBl
bWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5ET0NUWVBFKGNjKTsKICAgICAgICAgICAgIEFEVkFO
Q0VfVE8oRE9DVFlQRU5hbWVTdGF0ZSk7CkBAIC0xMjU5LDE0ICsxMjYwLDE0IEBAIGJvb2wgSFRN
TFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4m
IHRva2VuKQogICAgICAgICBpZiAoY2MgPT0gJ1x4MDknIHx8IGNjID09ICdceDBBJyB8fCBjYyA9
PSAnXHgwQycgfHwgY2MgPT0gJyAnKQogICAgICAgICAgICAgQURWQU5DRV9UTyhBZnRlckRPQ1RZ
UEVOYW1lU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpCi0gICAgICAgICAgICBF
TUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5k
UmVzdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA+PSAnQScg
JiYgY2MgPD0gJ1onKSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb05hbWUodG9Mb3dl
ckNhc2UoY2MpKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oRE9DVFlQRU5hbWVTdGF0ZSk7CiAg
ICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmls
ZU1hcmtlcikgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1
ZmZlclBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7
Ci0gICAgICAgICAgICBFTUlUX0FORF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAg
ICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9OYW1lKGNjKTsKICAgICAg
ICAgICAgIEFEVkFOQ0VfVE8oRE9DVFlQRU5hbWVTdGF0ZSk7CkBAIC0xMjc4LDExICsxMjc5LDEx
IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNl
LCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBpZiAoY2MgPT0gJ1x4MDknIHx8IGNjID09ICdc
eDBBJyB8fCBjYyA9PSAnXHgwQycgfHwgY2MgPT0gJyAnKQogICAgICAgICAgICAgQURWQU5DRV9U
TyhBZnRlckRPQ1RZUEVOYW1lU3RhdGUpOwogICAgICAgICBpZiAoY2MgPT0gJz4nKQotICAgICAg
ICAgICAgRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4g
ZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2Mg
PT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAgICAg
ICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1ZmZlclBhcnNlRXJyb3IoKTsKICAg
ICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICBFTUlUX0FO
RF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVj
b25zdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHB1YmxpY1N0cmluZywgKCJwdWJsaWMiKSk7
CiAgICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc3lzdGVtU3RyaW5nLCAo
InN5c3RlbSIpKTsKQEAgLTEzMDEsNyArMTMwMiw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IFNlZ21lbnRlZFN0cmluZzo6Tm90RW5vdWdo
Q2hhcmFjdGVycykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNob3VsZEVtaXRCdWZmZXJl
ZENoYXJhY3RlclRva2VuKHNvdXJjZSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbWl0
UGFyc2VFcnJvcigpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAg
ICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQm9n
dXNET0NUWVBFU3RhdGUpOwogICAgICAgICB9CkBAIC0xMzEyLDIzICsxMzEzLDIzIEBAIGJvb2wg
SFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9r
ZW4mIHRva2VuKQogICAgICAgICBpZiAoY2MgPT0gJ1x4MDknIHx8IGNjID09ICdceDBBJyB8fCBj
YyA9PSAnXHgwQycgfHwgY2MgPT0gJyAnKQogICAgICAgICAgICAgQURWQU5DRV9UTyhCZWZvcmVE
T0NUWVBFUHVibGljSWRlbnRpZmllclN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJyIn
KSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgYnVmZmVyUGFy
c2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0UHVibGljSWRlbnRpZmllclRvRW1w
dHlTdHJpbmcoKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oRE9DVFlQRVB1YmxpY0lkZW50aWZp
ZXJEb3VibGVRdW90ZWRTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJ1wnJykgewot
ICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1ZmZlclBhcnNlRXJy
b3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldFB1YmxpY0lkZW50aWZpZXJUb0VtcHR5U3Ry
aW5nKCk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKERPQ1RZUEVQdWJsaWNJZGVudGlmaWVyU2lu
Z2xlUXVvdGVkU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAg
ICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1ZmZlclBhcnNlRXJyb3IoKTsK
ICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICBFTUlU
X0FORF9SRVNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVz
dW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0
U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQ
YXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAg
ICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVDT05T
VU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUlu
KHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRQ
YXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAg
ICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhCb2d1
c0RPQ1RZUEVTdGF0ZSk7CiAgICAgICAgIH0KQEAgLTEzNDUsMTUgKzEzNDYsMTUgQEAgYm9vbCBI
VE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tl
biYgdG9rZW4pCiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRQdWJsaWNJZGVudGlmaWVyVG9FbXB0
eVN0cmluZygpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhET0NUWVBFUHVibGljSWRlbnRpZmll
clNpbmdsZVF1b3RlZFN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAg
ICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9y
KCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAg
RU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFu
ZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJ
bnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBl
bWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAg
ICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JF
Q09OU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1
bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBl
bWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAg
ICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8o
Qm9ndXNET0NUWVBFU3RhdGUpOwogICAgICAgICB9CkBAIC0xMzY0LDEzICsxMzY1LDEzIEBAIGJv
b2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1M
VG9rZW4mIHRva2VuKQogICAgICAgICBpZiAoY2MgPT0gJyInKQogICAgICAgICAgICAgQURWQU5D
RV9UTyhBZnRlckRPQ1RZUEVQdWJsaWNJZGVudGlmaWVyU3RhdGUpOwogICAgICAgICBlbHNlIGlm
IChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAg
ICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJr
cygpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAg
ICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAg
fSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2Vy
KSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgYnVmZmVyUGFy
c2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAg
ICAgICAgIEVNSVRfQU5EX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0
dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb1B1YmxpY0lkZW50aWZpZXIoY2MpOwog
ICAgICAgICAgICAgQURWQU5DRV9UTyhET0NUWVBFUHVibGljSWRlbnRpZmllckRvdWJsZVF1b3Rl
ZFN0YXRlKTsKQEAgLTEzODIsMTMgKzEzODMsMTMgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAg
IGlmIChjYyA9PSAnXCcnKQogICAgICAgICAgICAgQURWQU5DRV9UTyhBZnRlckRPQ1RZUEVQdWJs
aWNJZGVudGlmaWVyU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAgICAg
ICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7
CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAgRU1J
VF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJl
c3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1
dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBlbWl0
UGFyc2VFcnJvcigpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAg
ICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFQ09O
U1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJ
bihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX3Rv
a2VuLT5hcHBlbmRUb1B1YmxpY0lkZW50aWZpZXIoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9U
TyhET0NUWVBFUHVibGljSWRlbnRpZmllclNpbmdsZVF1b3RlZFN0YXRlKTsKQEAgLTE0MDAsMjEg
KzE0MDEsMjEgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChjYyA9PSAnXHgwOScgfHwg
Y2MgPT0gJ1x4MEEnIHx8IGNjID09ICdceDBDJyB8fCBjYyA9PSAnICcpCiAgICAgICAgICAgICBB
RFZBTkNFX1RPKEJldHdlZW5ET0NUWVBFUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnNTdGF0ZSk7
CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFU1VN
RV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3Vy
Y2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICciJykgewotICAgICAgICAg
ICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1ZmZlclBhcnNlRXJyb3IoKTsKICAg
ICAgICAgICAgIG1fdG9rZW4tPnNldFN5c3RlbUlkZW50aWZpZXJUb0VtcHR5U3RyaW5nKCk7CiAg
ICAgICAgICAgICBBRFZBTkNFX1RPKERPQ1RZUEVTeXN0ZW1JZGVudGlmaWVyRG91YmxlUXVvdGVk
U3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICdcJycpIHsKLSAgICAgICAgICAgIGVt
aXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAg
ICAgICBtX3Rva2VuLT5zZXRTeXN0ZW1JZGVudGlmaWVyVG9FbXB0eVN0cmluZygpOwogICAgICAg
ICAgICAgQURWQU5DRV9UTyhET0NUWVBFU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZFN0YXRl
KTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5k
T2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAg
ICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWly
a3MoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOworICAg
ICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAg
ICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWly
a3MoKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQm9ndXNET0NUWVBFU3RhdGUpOwogICAgICAg
ICB9CkBAIC0xNDI1LDcgKzE0MjYsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihT
ZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgaWYgKGNj
ID09ICdceDA5JyB8fCBjYyA9PSAnXHgwQScgfHwgY2MgPT0gJ1x4MEMnIHx8IGNjID09ICcgJykK
ICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQmV0d2VlbkRPQ1RZUEVQdWJsaWNBbmRTeXN0ZW1JZGVu
dGlmaWVyc1N0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKQotICAgICAgICAgICAg
RU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFu
ZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJyIn
KSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRTeXN0ZW1JZGVudGlmaWVyVG9FbXB0eVN0cmlu
ZygpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhET0NUWVBFU3lzdGVtSWRlbnRpZmllckRvdWJs
ZVF1b3RlZFN0YXRlKTsKQEAgLTE0MzMsMTEgKzE0MzQsMTEgQEAgYm9vbCBIVE1MVG9rZW5pemVy
OjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgICAgICAgICBtX3Rva2VuLT5zZXRTeXN0ZW1JZGVudGlmaWVyVG9FbXB0eVN0cmluZygpOwog
ICAgICAgICAgICAgQURWQU5DRV9UTyhET0NUWVBFU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3Rl
ZFN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nv
cjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAg
ICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9y
Y2VRdWlya3MoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUp
OworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIERhdGFTdGF0
ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAg
ICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9y
Y2VRdWlya3MoKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQm9ndXNET0NUWVBFU3RhdGUpOwog
ICAgICAgICB9CkBAIC0xNDQ4LDIzICsxNDQ5LDIzIEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICBpZiAoY2MgPT0gJ1x4MDknIHx8IGNjID09ICdceDBBJyB8fCBjYyA9PSAnXHgwQycgfHwgY2Mg
PT0gJyAnKQogICAgICAgICAgICAgQURWQU5DRV9UTyhCZWZvcmVET0NUWVBFU3lzdGVtSWRlbnRp
ZmllclN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJyInKSB7Ci0gICAgICAgICAgICBl
bWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAg
ICAgICAgbV90b2tlbi0+c2V0U3lzdGVtSWRlbnRpZmllclRvRW1wdHlTdHJpbmcoKTsKICAgICAg
ICAgICAgIEFEVkFOQ0VfVE8oRE9DVFlQRVN5c3RlbUlkZW50aWZpZXJEb3VibGVRdW90ZWRTdGF0
ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJ1wnJykgewotICAgICAgICAgICAgZW1pdFBh
cnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1ZmZlclBhcnNlRXJyb3IoKTsKICAgICAgICAgICAg
IG1fdG9rZW4tPnNldFN5c3RlbUlkZW50aWZpZXJUb0VtcHR5U3RyaW5nKCk7CiAgICAgICAgICAg
ICBBRFZBTkNFX1RPKERPQ1RZUEVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJy
b3IoKTsKKyAgICAgICAgICAgIGJ1ZmZlclBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9r
ZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0
YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRh
U3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29y
OjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAg
ICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3Jj
ZVF1aXJrcygpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7
CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRl
KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAg
ICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3Jj
ZVF1aXJrcygpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhCb2d1c0RPQ1RZUEVTdGF0ZSk7CiAg
ICAgICAgIH0KQEAgLTE0ODEsMTUgKzE0ODIsMTUgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAg
ICAgICBtX3Rva2VuLT5zZXRTeXN0ZW1JZGVudGlmaWVyVG9FbXB0eVN0cmluZygpOwogICAgICAg
ICAgICAgQURWQU5DRV9UTyhET0NUWVBFU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZFN0YXRl
KTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgIGVtaXRQYXJz
ZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBt
X3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1FX0lO
KERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwg
RGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nl
c3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwor
ICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0
Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFQ09OU1VNRV9JTihEYXRhU3Rh
dGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIERhdGFT
dGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwor
ICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0
Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQm9ndXNET0NUWVBFU3RhdGUp
OwogICAgICAgICB9CkBAIC0xNTAwLDEzICsxNTAxLDEzIEBAIGJvb2wgSFRNTFRva2VuaXplcjo6
bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAg
ICAgICBpZiAoY2MgPT0gJyInKQogICAgICAgICAgICAgQURWQU5DRV9UTyhBZnRlckRPQ1RZUEVT
eXN0ZW1JZGVudGlmaWVyU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAg
ICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9y
KCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAg
RU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFu
ZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJ
bnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBl
bWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAg
ICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JF
Q09OU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1
bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBt
X3Rva2VuLT5hcHBlbmRUb1N5c3RlbUlkZW50aWZpZXIoY2MpOwogICAgICAgICAgICAgQURWQU5D
RV9UTyhET0NUWVBFU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZFN0YXRlKTsKQEAgLTE1MTgs
MTMgKzE1MTksMTMgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3Ry
aW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChjYyA9PSAnXCcnKQog
ICAgICAgICAgICAgQURWQU5DRV9UTyhBZnRlckRPQ1RZUEVTeXN0ZW1JZGVudGlmaWVyU3RhdGUp
OwogICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVy
cm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rv
a2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1FX0lOKERh
dGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0
YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nv
cjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAg
ICAgICAgICAgYnVmZmVyUGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9y
Y2VRdWlya3MoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUp
OworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIERhdGFTdGF0
ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb1N5c3Rl
bUlkZW50aWZpZXIoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhET0NUWVBFU3lzdGVtSWRl
bnRpZmllclNpbmdsZVF1b3RlZFN0YXRlKTsKQEAgLTE1MzYsMTMgKzE1MzcsMTMgQEAgYm9vbCBI
VE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tl
biYgdG9rZW4pCiAgICAgICAgIGlmIChjYyA9PSAnXHgwOScgfHwgY2MgPT0gJ1x4MEEnIHx8IGNj
ID09ICdceDBDJyB8fCBjYyA9PSAnICcpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKEFmdGVyRE9D
VFlQRVN5c3RlbUlkZW50aWZpZXJTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykK
LSAgICAgICAgICAgIEVNSVRfQU5EX1JFU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAg
cmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2Ug
aWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAg
ICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9y
KCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAg
RU1JVF9BTkRfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBidWZmZXJQYXJzZUVycm9y
KCk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKEJvZ3VzRE9DVFlQRVN0YXRlKTsKICAgICAgICAg
fQogICAgIH0KQEAgLTE1NTAsOSArMTU1MSw5IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogCiAgICAgQkVH
SU5fU1RBVEUoQm9ndXNET0NUWVBFU3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICc+JykKLSAg
ICAgICAgICAgIEVNSVRfQU5EX1JFU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0
dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYg
KGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCi0gICAgICAg
ICAgICBFTUlUX0FORF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVy
biBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICBBRFZBTkNF
X1RPKEJvZ3VzRE9DVFlQRVN0YXRlKTsKICAgICB9CiAgICAgRU5EX1NUQVRFKCkKQEAgLTE1ODYs
NyArMTU4Nyw3IEBAIGlubGluZSBib29sIEhUTUxUb2tlbml6ZXI6OmlzQXBwcm9wcmlhdGVFbmRU
YWcoKQogICAgIHJldHVybiBtX2J1ZmZlcmVkRW5kVGFnTmFtZSA9PSBtX2FwcHJvcHJpYXRlRW5k
VGFnTmFtZTsKIH0KIAotaW5saW5lIHZvaWQgSFRNTFRva2VuaXplcjo6ZW1pdENoYXJhY3RlcihV
Q2hhciBjaGFyYWN0ZXIpCitpbmxpbmUgdm9pZCBIVE1MVG9rZW5pemVyOjpidWZmZXJDaGFyYWN0
ZXIoVUNoYXIgY2hhcmFjdGVyKQogewogICAgIEFTU0VSVChjaGFyYWN0ZXIgIT0gSW5wdXRTdHJl
YW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcik7CiAgICAgaWYgKG1fdG9rZW4tPnR5cGUo
KSAhPSBIVE1MVG9rZW46OkNoYXJhY3RlcikgewpAQCAtMTU5NiwyOSArMTU5NywyOSBAQCBpbmxp
bmUgdm9pZCBIVE1MVG9rZW5pemVyOjplbWl0Q2hhcmFjdGVyKFVDaGFyIGNoYXJhY3RlcikKICAg
ICBtX3Rva2VuLT5hcHBlbmRUb0NoYXJhY3RlcihjaGFyYWN0ZXIpOwogfQogCi1pbmxpbmUgdm9p
ZCBIVE1MVG9rZW5pemVyOjplbWl0Q29kZVBvaW50KHVuc2lnbmVkIHZhbHVlKQoraW5saW5lIHZv
aWQgSFRNTFRva2VuaXplcjo6YnVmZmVyQ29kZVBvaW50KHVuc2lnbmVkIHZhbHVlKQogewogICAg
IGlmICh2YWx1ZSA8IDB4RkZGRikgewotICAgICAgICBlbWl0Q2hhcmFjdGVyKHZhbHVlKTsKKyAg
ICAgICAgYnVmZmVyQ2hhcmFjdGVyKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAg
ICBlbWl0Q2hhcmFjdGVyKFUxNl9MRUFEKHZhbHVlKSk7Ci0gICAgZW1pdENoYXJhY3RlcihVMTZf
VFJBSUwodmFsdWUpKTsKKyAgICBidWZmZXJDaGFyYWN0ZXIoVTE2X0xFQUQodmFsdWUpKTsKKyAg
ICBidWZmZXJDaGFyYWN0ZXIoVTE2X1RSQUlMKHZhbHVlKSk7CiB9CiAKLWlubGluZSB2b2lkIEhU
TUxUb2tlbml6ZXI6OmVtaXRQYXJzZUVycm9yKCkKK2lubGluZSB2b2lkIEhUTUxUb2tlbml6ZXI6
OmJ1ZmZlclBhcnNlRXJyb3IoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLWlubGlu
ZSB2b2lkIEhUTUxUb2tlbml6ZXI6OmVtaXRDdXJyZW50VG9rZW4oKQoraW5saW5lIHZvaWQgSFRN
TFRva2VuaXplcjo6YnVmZmVyQ3VycmVudFRva2VuKCkKIHsKICAgICBBU1NFUlQobV90b2tlbi0+
dHlwZSgpICE9IEhUTUxUb2tlbjo6VW5pbml0aWFsaXplZCk7CiAgICAgaWYgKG1fdG9rZW4tPnR5
cGUoKSA9PSBIVE1MVG9rZW46OlN0YXJ0VGFnKQogICAgICAgICBtX2FwcHJvcHJpYXRlRW5kVGFn
TmFtZSA9IG1fdG9rZW4tPm5hbWUoKTsKIH0KIAotaW5saW5lIHZvaWQgSFRNTFRva2VuaXplcjo6
ZW1pdEVuZE9mRmlsZSgpCitpbmxpbmUgdm9pZCBIVE1MVG9rZW5pemVyOjpidWZmZXJFbmRPZkZp
bGUoKQogewogICAgIC8vIERpc2NhcmQgYW55IGluLXByb2dyZXNzIHRva2VuIGJlZm9yZSBzZXR0
aW5nIHVwIGFuIEVPRiB0b2tlbi4KICAgICBtX3Rva2VuLT5jbGVhcigpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuaCBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVy
LmgKaW5kZXggZmY4NzI4NDlhOTIxNmYxZTczNzUyYjAzNGQ4YWVhMzA5YTZlZWExYy4uY2FhODRm
Mzc1YmQ5OWUyMjEzODMzY2JjNTlmMzkyODJkYWYwOGM3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0hUTUxUb2tlbml6ZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5oCkBA
IC0xOTIsMTMgKzE5MiwyMiBAQCBwcml2YXRlOgogICAgICAgICBib29sIG1fc2tpcE5leHROZXdM
aW5lOwogICAgIH07CiAKLSAgICBpbmxpbmUgdm9pZCBlbWl0Q2hhcmFjdGVyKFVDaGFyKTsKLSAg
ICBpbmxpbmUgdm9pZCBlbWl0UGFyc2VFcnJvcigpOwotICAgIGlubGluZSB2b2lkIGVtaXRDdXJy
ZW50VG9rZW4oKTsKLSAgICBpbmxpbmUgdm9pZCBlbWl0Q29kZVBvaW50KHVuc2lnbmVkKTsKLSAg
ICBpbmxpbmUgdm9pZCBlbWl0RW5kT2ZGaWxlKCk7Ci0KLSAgICBpbmxpbmUgYm9vbCBwcm9jZXNz
RW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlKTsKKyAgICBpbmxpbmUgdm9pZCBidWZmZXJD
aGFyYWN0ZXIoVUNoYXIpOworICAgIGlubGluZSB2b2lkIGJ1ZmZlclBhcnNlRXJyb3IoKTsKKyAg
ICBpbmxpbmUgdm9pZCBidWZmZXJDdXJyZW50VG9rZW4oKTsKKyAgICBpbmxpbmUgdm9pZCBidWZm
ZXJDb2RlUG9pbnQodW5zaWduZWQpOworICAgIGlubGluZSB2b2lkIGJ1ZmZlckVuZE9mRmlsZSgp
OworCisgICAgaW5saW5lIGJvb2wgZW1pdEFuZFJlc3VtZUluKFNlZ21lbnRlZFN0cmluZyYsIFN0
YXRlKTsKKyAgICBpbmxpbmUgYm9vbCBlbWl0QW5kUmVjb25zdW1lSW4oU2VnbWVudGVkU3RyaW5n
JiwgU3RhdGUpOworICAgIGlubGluZSBib29sIGVtaXRFbmRPZkZpbGUoU2VnbWVudGVkU3RyaW5n
Jik7CisgICAgaW5saW5lIGJvb2wgZmx1c2hFbWl0QW5kUmVzdW1lSW4oU2VnbWVudGVkU3RyaW5n
JiwgU3RhdGUpOworCisgICAgLy8gUmV0dXJuIHdoZXRoZXIgd2UgbmVlZCB0byBlbWl0IGEgY2hh
cmFjdGVyIHRva2VuIGJlZm9yZSBkZWFsaW5nIHdpdGgKKyAgICAvLyB0aGUgYnVmZmVyZWQgZW5k
IHRhZy4KKyAgICBpbmxpbmUgYm9vbCBmbHVzaEJ1ZmZlcmVkRW5kVGFnKFNlZ21lbnRlZFN0cmlu
ZyYpOworCisgICAgaW5saW5lIGJvb2wgcHJvY2Vzc0VudGl0eShTZWdtZW50ZWRTdHJpbmcmKTsK
IAogICAgIGlubGluZSBib29sIHRlbXBvcmFyeUJ1ZmZlcklzKGNvbnN0IFN0cmluZyYpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60103</attachid>
            <date>2010-06-30 02:44:51 -0700</date>
            <delta_ts>2010-06-30 03:27:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-41397-20100630024450.patch</filename>
            <type>text/plain</type>
            <size>56889</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDlkNzYwMTMxNGEwYzM0YTU4ZWQ3N2Q2YzMzN2NjOWY4NGQ2NTczMi4uNzA3YjQxYzRiYzVhYjg2
MjNmMWFjZDY5MTU2YzA2Y2U5OGViNjE3OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wNi0zMCAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
U2VpZGVsLgorCisgICAgICAgIEhUTUxUb2tlbml6ZXIgc2hvdWxkIHVzZSBmZXdlciBtYWNyb3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMzk3CisK
KyAgICAgICAgTWFjcm9zIGFyZSBzYWRuZXNzLiAgSW5saW5lIGZ1bmN0aW9ucyBhcmUgdGhlIG5l
dyBob3RuZXNzLgorCisgICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnByb2Nlc3NFbnRpdHkpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRva2VuaXplcjo6ZW1pdEFuZFJlc3VtZUluKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUb2tlbml6ZXI6OmVtaXRBbmRSZWNvbnN1bWVJbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VG9rZW5pemVyOjplbWl0RW5kT2ZGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6
ZXI6OmZsdXNoQnVmZmVyZWRFbmRUYWcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXpl
cjo6Zmx1c2hFbWl0QW5kUmVzdW1lSW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXpl
cjo6bmV4dFRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OmJ1ZmZlckNo
YXJhY3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpidWZmZXJDb2RlUG9p
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6YnVmZmVyUGFyc2VFcnJvcik6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpidWZmZXJDdXJyZW50VG9rZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6YnVmZmVyRW5kT2ZGaWxlKToKKyAgICAg
ICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuaDoKKwogMjAxMC0wNi0yOSAgRXJpYyBTZWlkZWwgIDxl
cmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1M
VG9rZW5pemVyLmNwcAppbmRleCAwNTQ4ZDFkMjBkMGQ3ZGEzMzliOGUzNTVmZTVlYzJkNDI4MGQ3
NDhkLi42NmVlNTlmNzAxNzRkMjMxZWI5OTY1YTk5NzQzMGUyYTZlYjNlMzY5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxU
b2tlbml6ZXIuY3BwCkBAIC0xMTUsOSArMTE1LDkgQEAgaW5saW5lIGJvb2wgSFRNTFRva2VuaXpl
cjo6cHJvY2Vzc0VudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKICAgICBpZiAobm90RW5v
dWdoQ2hhcmFjdGVycykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghdmFsdWUpCi0g
ICAgICAgIGVtaXRDaGFyYWN0ZXIoJyYnKTsKKyAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCcmJyk7
CiAgICAgZWxzZQotICAgICAgICBlbWl0Q29kZVBvaW50KHZhbHVlKTsKKyAgICAgICAgYnVmZmVy
Q29kZVBvaW50KHZhbHVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTYyLDUzICsxNjIs
NjMgQEAgaW5saW5lIGJvb2wgSFRNTFRva2VuaXplcjo6cHJvY2Vzc0VudGl0eShTZWdtZW50ZWRT
dHJpbmcmIHNvdXJjZSkKICAgICAgICAgZ290byBzdGF0ZU5hbWU7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkK
IAotLy8gV2UgdXNlIHRoaXMgbWFjcm8gd2hlbiB0aGUgSFRNTDUgc3BlYyBzYXlzICJFbWl0IHRo
ZSBjdXJyZW50IDxtdW1ibGU+CisKK2lubGluZSB2b2lkIEhUTUxUb2tlbml6ZXI6OnNhdmVFbmRU
YWdOYW1lSWZOZWVkZWQoKQoreworICAgIEFTU0VSVChtX3Rva2VuLT50eXBlKCkgIT0gSFRNTFRv
a2VuOjpVbmluaXRpYWxpemVkKTsKKyAgICBpZiAobV90b2tlbi0+dHlwZSgpID09IEhUTUxUb2tl
bjo6U3RhcnRUYWcpCisgICAgICAgIG1fYXBwcm9wcmlhdGVFbmRUYWdOYW1lID0gbV90b2tlbi0+
bmFtZSgpOworfQorCisvLyBXZSB1c2UgdGhpcyBmdW5jdGlvbiB3aGVuIHRoZSBIVE1MNSBzcGVj
IHNheXMgIkVtaXQgdGhlIGN1cnJlbnQgPG11bWJsZT4KIC8vIHRva2VuLiBTd2l0Y2ggdG8gdGhl
IDxtdW1ibGU+IHN0YXRlLiIgIFdlIHVzZSB0aGUgd29yZCAicmVzdW1lIiBpbnN0ZWFkIG9mCiAv
LyBzd2l0Y2ggdG8gaW5kaWNhdGUgdGhhdCB0aGlzIG1hY3JvIGFjdHVhbGx5IHJldHVybnMgYW5k
IHRoYXQgd2UnbGwgZW5kIHVwCiAvLyBpbiB0aGUgc3RhdGUgd2hlbiB3ZSAicmVzdW1lIiAoaS5l
LiwgYXJlIGNhbGxlZCBhZ2FpbikuCi0jZGVmaW5lIEVNSVRfQU5EX1JFU1VNRV9JTihzdGF0ZU5h
bWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8geyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgICAgIG1fc3RhdGUgPSBzdGF0ZU5hbWU7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHNvdXJjZS5hZHZhbmNlKG1fbGlu
ZU51bWJlcik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg
IGVtaXRDdXJyZW50VG9rZW4oKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiB0cnVlOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSB3aGlsZSAoZmFsc2UpCiti
b29sIEhUTUxUb2tlbml6ZXI6OmVtaXRBbmRSZXN1bWVJbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJj
ZSwgU3RhdGUgc3RhdGUpCit7CisgICAgbV9zdGF0ZSA9IHN0YXRlOworICAgIHNvdXJjZS5hZHZh
bmNlKG1fbGluZU51bWJlcik7CisgICAgc2F2ZUVuZFRhZ05hbWVJZk5lZWRlZCgpOworICAgIHJl
dHVybiB0cnVlOworfQogCi0vLyBJZGVudGljYWwgdG8gRU1JVF9BTkRfUkVTVU1FX0lOLCBleGNl
cHQgZG9lcyBub3QgYWR2YW5jZS4KLSNkZWZpbmUgRU1JVF9BTkRfUkVDT05TVU1FX0lOKHN0YXRl
TmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgICAgbV9zdGF0ZSA9IHN0YXRlTmFtZTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgZW1pdEN1cnJlbnRUb2tlbigpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg
cmV0dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICB9IHdoaWxlIChmYWxzZSkKKy8vIElkZW50aWNhbCB0byBlbWl0QW5k
UmVzdW1lSW4sIGV4Y2VwdCBkb2VzIG5vdCBhZHZhbmNlLgorYm9vbCBIVE1MVG9rZW5pemVyOjpl
bWl0QW5kUmVjb25zdW1lSW4oU2VnbWVudGVkU3RyaW5nJiwgU3RhdGUgc3RhdGUpCit7CisgICAg
bV9zdGF0ZSA9IHN0YXRlOworICAgIHNhdmVFbmRUYWdOYW1lSWZOZWVkZWQoKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KIAogLy8gVXNlZCB0byBlbWl0IHRoZSBFbmRPZkZpbGUgdG9rZW4uCiAvLyBD
aGVjayBpZiB3ZSBoYXZlIGJ1ZmZlcmVkIGNoYXJhY3RlcnMgdG8gZW1pdCBmaXJzdCBiZWZvcmUg
ZW1pdHRpbmcgdGhlIEVPRi4KLSNkZWZpbmUgRU1JVF9FTkRfT0ZfRklMRSgpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyB7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgaWYgKHNob3VsZEVtaXRCdWZmZXJlZENoYXJhY3RlclRva2VuKHNvdXJjZSkp
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVybiB0cnVlOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgbV9z
dGF0ZSA9IERhdGFTdGF0ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICAgICAgc291cmNlLmFkdmFuY2UobV9saW5lTnVtYmVyKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgZW1pdEVuZE9mRmlsZSgpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAg
ICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICB9IHdoaWxlIChmYWxzZSkKK2Jvb2wgSFRNTFRva2VuaXplcjo6
ZW1pdEVuZE9mRmlsZShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKK3sKKyAgICBpZiAoc2hvdWxk
RW1pdEJ1ZmZlcmVkQ2hhcmFjdGVyVG9rZW4oc291cmNlKSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgbV9zdGF0ZSA9IERhdGFTdGF0ZTsKKyAgICBzb3VyY2UuYWR2YW5jZShtX2xpbmVOdW1i
ZXIpOworICAgIG1fdG9rZW4tPmNsZWFyKCk7CisgICAgbV90b2tlbi0+bWFrZUVuZE9mRmlsZSgp
OworICAgIHJldHVybiB0cnVlOworfQogCi0jZGVmaW5lIF9GTFVTSF9CVUZGRVJFRF9FTkRfVEFH
KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8geyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgIEFTU0VSVChtX3Rva2VuLT50eXBlKCkgPT0gSFRNTFRva2VuOjpD
aGFyYWN0ZXIgfHwgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICBtX3Rva2VuLT50
eXBlKCkgPT0gSFRNTFRva2VuOjpVbmluaXRpYWxpemVkKTsgICAgICAgICAgICAgICBcCi0gICAg
ICAgIHNvdXJjZS5hZHZhbmNlKG1fbGluZU51bWJlcik7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgICAgIGlmIChtX3Rva2VuLT50eXBlKCkgPT0gSFRNTFRva2Vu
OjpDaGFyYWN0ZXIpICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICAgIG1fdG9rZW4tPmJlZ2luRW5kVGFnKG1fYnVmZmVyZWRFbmRUYWdOYW1lKTsgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIG1fYnVmZmVyZWRFbmRUYWdOYW1lLmNsZWFy
KCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSB3aGlsZSAo
ZmFsc2UpCitib29sIEhUTUxUb2tlbml6ZXI6OmZsdXNoQnVmZmVyZWRFbmRUYWcoU2VnbWVudGVk
U3RyaW5nJiBzb3VyY2UpCit7CisgICAgQVNTRVJUKG1fdG9rZW4tPnR5cGUoKSA9PSBIVE1MVG9r
ZW46OkNoYXJhY3RlciB8fCBtX3Rva2VuLT50eXBlKCkgPT0gSFRNTFRva2VuOjpVbmluaXRpYWxp
emVkKTsKKyAgICBzb3VyY2UuYWR2YW5jZShtX2xpbmVOdW1iZXIpOworICAgIGlmIChtX3Rva2Vu
LT50eXBlKCkgPT0gSFRNTFRva2VuOjpDaGFyYWN0ZXIpCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIG1fdG9rZW4tPmJlZ2luRW5kVGFnKG1fYnVmZmVyZWRFbmRUYWdOYW1lKTsKKyAgICBtX2J1
ZmZlcmVkRW5kVGFnTmFtZS5jbGVhcigpOworICAgIHJldHVybiBmYWxzZTsKK30KIAogI2RlZmlu
ZSBGTFVTSF9BTkRfQURWQU5DRV9UTyhzdGF0ZU5hbWUpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBtX3N0YXRlID0gc3Rh
dGVOYW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICAgICBfRkxVU0hfQlVGRkVSRURfRU5EX1RBRygpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoZmx1c2hCdWZmZXJlZEVuZFRhZyhzb3Vy
Y2UpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcmV0
dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogICAgICAgICBpZiAoc291cmNlLmlzRW1wdHkoKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgfHwgIW1faW5wdXRTdHJlYW1Q
cmVwcm9jZXNzb3IucGVlayhzb3VyY2UsIG1fbGluZU51bWJlcikpICAgICAgXAogICAgICAgICAg
ICAgcmV0dXJuIHNob3VsZEVtaXRCdWZmZXJlZENoYXJhY3RlclRva2VuKHNvdXJjZSk7ICAgICAg
ICAgICAgICAgXApAQCAtMjE2LDEyICsyMjYsMTIgQEAgaW5saW5lIGJvb2wgSFRNTFRva2VuaXpl
cjo6cHJvY2Vzc0VudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKICAgICAgICAgZ290byBz
dGF0ZU5hbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAotI2RlZmluZSBGTFVTSF9FTUlUX0FORF9SRVNV
TUVfSU4oc3RhdGVOYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRv
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgICAgICBtX3N0YXRlID0gc3RhdGVOYW1lOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBfRkxVU0hfQlVGRkVS
RURfRU5EX1RBRygpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICAgICByZXR1cm4gdHJ1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIH0gd2hpbGUgKGZhbHNlKQorYm9vbCBIVE1MVG9rZW5p
emVyOjpmbHVzaEVtaXRBbmRSZXN1bWVJbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgU3RhdGUg
c3RhdGUpCit7CisgICAgbV9zdGF0ZSA9IHN0YXRlOworICAgIGZsdXNoQnVmZmVyZWRFbmRUYWco
c291cmNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiB7CkBAIC0y
NzUsOSArMjg1LDkgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3Ry
aW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBBRFZBTkNFX1RPKFRhZ09wZW5TdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgICAgIEVNSVRf
RU5EX09GX0ZJTEUoKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0RW5kT2ZGaWxlKHNvdXJjZSk7
CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcihjYyk7CisgICAgICAg
ICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhEYXRhU3Rh
dGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjk2LDkgKzMwNiw5IEBAIGJvb2wgSFRNTFRva2Vu
aXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2Vu
KQogICAgICAgICBlbHNlIGlmIChjYyA9PSAnPCcpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKFJD
REFUQUxlc3NUaGFuU2lnblN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJl
YW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgICAgIEVNSVRfRU5EX09G
X0ZJTEUoKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0RW5kT2ZGaWxlKHNvdXJjZSk7CiAgICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcihjYyk7CisgICAgICAgICAgICBi
dWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhSQ0RBVEFTdGF0ZSk7
CiAgICAgICAgIH0KICAgICB9CkBAIC0zMTUsOSArMzI1LDkgQEAgYm9vbCBIVE1MVG9rZW5pemVy
OjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgICAgIGlmIChjYyA9PSAnPCcpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKFJBV1RFWFRMZXNz
VGhhblNpZ25TdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJv
Y2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgICAgICBFTUlUX0VORF9PRl9GSUxFKCk7
CisgICAgICAgICAgICByZXR1cm4gZW1pdEVuZE9mRmlsZShzb3VyY2UpOwogICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoY2MpOworICAgICAgICAgICAgYnVmZmVyQ2hh
cmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oUkFXVEVYVFN0YXRlKTsKICAgICAg
ICAgfQogICAgIH0KQEAgLTMyNyw5ICszMzcsOSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRU
b2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAg
aWYgKGNjID09ICc8JykKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YUxlc3NUaGFu
U2lnblN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNz
b3I6OmVuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgICAgIEVNSVRfRU5EX09GX0ZJTEUoKTsKKyAg
ICAgICAgICAgIHJldHVybiBlbWl0RW5kT2ZGaWxlKHNvdXJjZSk7CiAgICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgZW1pdENoYXJhY3RlcihjYyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0
ZXIoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhTY3JpcHREYXRhU3RhdGUpOwogICAgICAg
ICB9CiAgICAgfQpAQCAtMzM3LDkgKzM0Nyw5IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogCiAgICAgQkVH
SU5fU1RBVEUoUExBSU5URVhUU3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09IElucHV0U3RyZWFt
UHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCi0gICAgICAgICAgICBFTUlUX0VORF9PRl9G
SUxFKCk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEVuZE9mRmlsZShzb3VyY2UpOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1ZmZl
ckNoYXJhY3RlcihjYyk7CiAgICAgICAgIEFEVkFOQ0VfVE8oUExBSU5URVhUU3RhdGUpOwogICAg
IH0KICAgICBFTkRfU1RBVEUoKQpAQCAtMzU2LDE0ICszNjYsMTQgQEAgYm9vbCBIVE1MVG9rZW5p
emVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4p
CiAgICAgICAgICAgICBtX3Rva2VuLT5iZWdpblN0YXJ0VGFnKGNjKTsKICAgICAgICAgICAgIEFE
VkFOQ0VfVE8oVGFnTmFtZVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPycpIHsK
LSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7
CiAgICAgICAgICAgICAvLyBUaGUgc3BlYyBjb25zdW1lcyB0aGUgY3VycmVudCBjaGFyYWN0ZXIg
YmVmb3JlIHN3aXRjaGluZwogICAgICAgICAgICAgLy8gdG8gdGhlIGJvZ3VzIGNvbW1lbnQgc3Rh
dGUsIGJ1dCBpdCdzIGVhc2llciB0byBpbXBsZW1lbnQKICAgICAgICAgICAgIC8vIGlmIHdlIHJl
Y29uc3VtZSB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4o
Qm9ndXNDb21tZW50U3RhdGUpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZW1pdFBh
cnNlRXJyb3IoKTsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJzwnKTsKKyAgICAgICAgICAg
IHBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcignPCcpOwogICAgICAg
ICAgICAgUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0zNzcs
MTUgKzM4NywxNSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIG1fdG9rZW4tPmJlZ2lu
RW5kVGFnKGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oVGFnTmFtZVN0YXRlKTsKICAgICAg
ICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7
CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKERhdGFT
dGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6
OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKLSAgICAg
ICAgICAgIGVtaXRDaGFyYWN0ZXIoJzwnKTsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJy8n
KTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3Rl
cignPCcpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCcvJyk7CiAgICAgICAgICAgICBS
RUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVt
aXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBS
RUNPTlNVTUVfSU4oQm9ndXNDb21tZW50U3RhdGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtMzk3
LDEyICs0MDcsMTIgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3Ry
aW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGVsc2UgaWYgKGNjID09ICcv
JykKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oU2VsZkNsb3NpbmdTdGFydFRhZ1N0YXRlKTsKICAg
ICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKQotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1FX0lO
KERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwg
RGF0YVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPj0gJ0EnICYmIGNjIDw9ICdaJykgewog
ICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9OYW1lKHRvTG93ZXJDYXNlKGNjKSk7CiAgICAg
ICAgICAgICBBRFZBTkNFX1RPKFRhZ05hbWVTdGF0ZSk7CiAgICAgICAgIH0gaWYgKGNjID09IElu
cHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVt
aXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBS
RUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1f
dG9rZW4tPmFwcGVuZFRvTmFtZShjYyk7CkBAIC00MTcsNyArNDI3LDcgQEAgYm9vbCBIVE1MVG9r
ZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9r
ZW4pCiAgICAgICAgICAgICBBU1NFUlQobV9idWZmZXJlZEVuZFRhZ05hbWUuaXNFbXB0eSgpKTsK
ICAgICAgICAgICAgIEFEVkFOQ0VfVE8oUkNEQVRBRW5kVGFnT3BlblN0YXRlKTsKICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJzwnKTsKKyAgICAgICAgICAgIGJ1
ZmZlckNoYXJhY3RlcignPCcpOwogICAgICAgICAgICAgUkVDT05TVU1FX0lOKFJDREFUQVN0YXRl
KTsKICAgICAgICAgfQogICAgIH0KQEAgLTQzMyw4ICs0NDMsOCBAQCBib29sIEhUTUxUb2tlbml6
ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikK
ICAgICAgICAgICAgIGFkZFRvUG9zc2libGVFbmRUYWcoY2MpOwogICAgICAgICAgICAgQURWQU5D
RV9UTyhSQ0RBVEFFbmRUYWdOYW1lU3RhdGUpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgZW1pdENoYXJhY3RlcignPCcpOwotICAgICAgICAgICAgZW1pdENoYXJhY3RlcignLycpOwor
ICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCc8Jyk7CisgICAgICAgICAgICBidWZmZXJDaGFy
YWN0ZXIoJy8nKTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9JTihSQ0RBVEFTdGF0ZSk7CiAgICAg
ICAgIH0KICAgICB9CkBAIC00NTgsMTAgKzQ2OCwxMCBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5l
eHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAg
ICAgICAgICAgICAgICAgRkxVU0hfQU5EX0FEVkFOQ0VfVE8oU2VsZkNsb3NpbmdTdGFydFRhZ1N0
YXRlKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKGlzQXBwcm9wcmlhdGVFbmRUYWcoKSkKLSAgICAgICAgICAgICAgICAgICAgRkxVU0hf
RU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmbHVzaEVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKCc8Jyk7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFj
dGVyKCcvJyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJzwnKTsKKyAgICAgICAgICAg
IGJ1ZmZlckNoYXJhY3RlcignLycpOwogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9DaGFy
YWN0ZXIobV90ZW1wb3JhcnlCdWZmZXIpOwogICAgICAgICAgICAgbV9idWZmZXJlZEVuZFRhZ05h
bWUuY2xlYXIoKTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9JTihSQ0RBVEFTdGF0ZSk7CkBAIC00
NzUsNyArNDg1LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3Ry
aW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBBU1NFUlQobV9idWZm
ZXJlZEVuZFRhZ05hbWUuaXNFbXB0eSgpKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oUkFXVEVY
VEVuZFRhZ09wZW5TdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbWl0Q2hh
cmFjdGVyKCc8Jyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJzwnKTsKICAgICAgICAg
ICAgIFJFQ09OU1VNRV9JTihSQVdURVhUU3RhdGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtNDkx
LDggKzUwMSw4IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmlu
ZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgYWRkVG9Qb3NzaWJsZUVu
ZFRhZyhjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFJBV1RFWFRFbmRUYWdOYW1lU3RhdGUp
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcignPCcpOwotICAg
ICAgICAgICAgZW1pdENoYXJhY3RlcignLycpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVy
KCc8Jyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJy8nKTsKICAgICAgICAgICAgIFJF
Q09OU1VNRV9JTihSQVdURVhUU3RhdGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtNTE2LDEwICs1
MjYsMTAgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICAgICAgICAgIEZMVVNIX0FORF9B
RFZBTkNFX1RPKFNlbGZDbG9zaW5nU3RhcnRUYWdTdGF0ZSk7CiAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGNjID09ICc+JykgewogICAgICAgICAgICAgICAgIGlmIChpc0FwcHJvcHJpYXRlRW5kVGFn
KCkpCi0gICAgICAgICAgICAgICAgICAgIEZMVVNIX0VNSVRfQU5EX1JFU1VNRV9JTihEYXRhU3Rh
dGUpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmx1c2hFbWl0QW5kUmVzdW1lSW4oc291
cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZW1pdENoYXJhY3Rl
cignPCcpOwotICAgICAgICAgICAgZW1pdENoYXJhY3RlcignLycpOworICAgICAgICAgICAgYnVm
ZmVyQ2hhcmFjdGVyKCc8Jyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJy8nKTsKICAg
ICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ2hhcmFjdGVyKG1fdGVtcG9yYXJ5QnVmZmVyKTsK
ICAgICAgICAgICAgIG1fYnVmZmVyZWRFbmRUYWdOYW1lLmNsZWFyKCk7CiAgICAgICAgICAgICBS
RUNPTlNVTUVfSU4oUkFXVEVYVFN0YXRlKTsKQEAgLTUzMywxMSArNTQzLDExIEBAIGJvb2wgSFRN
TFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4m
IHRva2VuKQogICAgICAgICAgICAgQVNTRVJUKG1fYnVmZmVyZWRFbmRUYWdOYW1lLmlzRW1wdHko
KSk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFFbmRUYWdPcGVuU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgaWYgKGNjID09ICchJykgewotICAgICAgICAgICAgZW1pdENoYXJhY3Rl
cignPCcpOwotICAgICAgICAgICAgZW1pdENoYXJhY3RlcignIScpOworICAgICAgICAgICAgYnVm
ZmVyQ2hhcmFjdGVyKCc8Jyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJyEnKTsKICAg
ICAgICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YUVzY2FwZVN0YXJ0U3RhdGUpOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcignPCcpOworICAgICAgICAgICAg
YnVmZmVyQ2hhcmFjdGVyKCc8Jyk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oU2NyaXB0RGF0
YVN0YXRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTU1Myw4ICs1NjMsOCBAQCBib29sIEhUTUxU
b2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgICAgIGFkZFRvUG9zc2libGVFbmRUYWcoY2MpOwogICAgICAgICAgICAg
QURWQU5DRV9UTyhTY3JpcHREYXRhRW5kVGFnTmFtZVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJzwnKTsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0
ZXIoJy8nKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcignPCcpOworICAgICAgICAgICAg
YnVmZmVyQ2hhcmFjdGVyKCcvJyk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oU2NyaXB0RGF0
YVN0YXRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTU3OCwxMCArNTg4LDEwIEBAIGJvb2wgSFRN
TFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4m
IHRva2VuKQogICAgICAgICAgICAgICAgICAgICBGTFVTSF9BTkRfQURWQU5DRV9UTyhTZWxmQ2xv
c2luZ1N0YXJ0VGFnU3RhdGUpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsK
ICAgICAgICAgICAgICAgICBpZiAoaXNBcHByb3ByaWF0ZUVuZFRhZygpKQotICAgICAgICAgICAg
ICAgICAgICBGTFVTSF9FTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZsdXNoRW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJzwnKTsKLSAgICAgICAg
ICAgIGVtaXRDaGFyYWN0ZXIoJy8nKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcignPCcp
OworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCcvJyk7CiAgICAgICAgICAgICBtX3Rva2Vu
LT5hcHBlbmRUb0NoYXJhY3RlcihtX3RlbXBvcmFyeUJ1ZmZlcik7CiAgICAgICAgICAgICBtX2J1
ZmZlcmVkRW5kVGFnTmFtZS5jbGVhcigpOwogICAgICAgICAgICAgUkVDT05TVU1FX0lOKFNjcmlw
dERhdGFTdGF0ZSk7CkBAIC01OTEsNyArNjAxLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAKICAgICBC
RUdJTl9TVEFURShTY3JpcHREYXRhRXNjYXBlU3RhcnRTdGF0ZSkgewogICAgICAgICBpZiAoY2Mg
PT0gJy0nKSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1
ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFFc2Nh
cGVTdGFydERhc2hTdGF0ZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgUkVDT05TVU1F
X0lOKFNjcmlwdERhdGFTdGF0ZSk7CkBAIC02MDAsNyArNjEwLDcgQEAgYm9vbCBIVE1MVG9rZW5p
emVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4p
CiAKICAgICBCRUdJTl9TVEFURShTY3JpcHREYXRhRXNjYXBlU3RhcnREYXNoU3RhdGUpIHsKICAg
ICAgICAgaWYgKGNjID09ICctJykgewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcihjYyk7Cisg
ICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhT
Y3JpcHREYXRhRXNjYXBlZERhc2hEYXNoU3RhdGUpOwogICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgIFJFQ09OU1VNRV9JTihTY3JpcHREYXRhU3RhdGUpOwpAQCAtNjA5LDE1ICs2MTksMTUgQEAg
Ym9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhU
TUxUb2tlbiYgdG9rZW4pCiAKICAgICBCRUdJTl9TVEFURShTY3JpcHREYXRhRXNjYXBlZFN0YXRl
KSB7CiAgICAgICAgIGlmIChjYyA9PSAnLScpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIo
Y2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFO
Q0VfVE8oU2NyaXB0RGF0YUVzY2FwZWREYXNoU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNj
ID09ICc8JykKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YUVzY2FwZWRMZXNzVGhh
blNpZ25TdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vz
c29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Cisg
ICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oRGF0YVN0
YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoY2MpOwor
ICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8o
U2NyaXB0RGF0YUVzY2FwZWRTdGF0ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC02MjUsMTUgKzYz
NSwxNSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNv
dXJjZSwgSFRNTFRva2VuJiB0b2tlbikKIAogICAgIEJFR0lOX1NUQVRFKFNjcmlwdERhdGFFc2Nh
cGVkRGFzaFN0YXRlKSB7CiAgICAgICAgIGlmIChjYyA9PSAnLScpIHsKLSAgICAgICAgICAgIGVt
aXRDaGFyYWN0ZXIoY2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAg
ICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YUVzY2FwZWREYXNoRGFzaFN0YXRlKTsKICAgICAg
ICAgfSBlbHNlIGlmIChjYyA9PSAnPCcpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERh
dGFFc2NhcGVkTGVzc1RoYW5TaWduU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSBJbnB1
dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBlbWl0
UGFyc2VFcnJvcigpOworICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgUkVD
T05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbWl0
Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAg
ICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFFc2NhcGVkU3RhdGUpOwogICAgICAgICB9CiAgICAg
fQpAQCAtNjQxLDE4ICs2NTEsMTggQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAKICAgICBCRUdJTl9TVEFU
RShTY3JpcHREYXRhRXNjYXBlZERhc2hEYXNoU3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICct
JykgewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcihjYyk7CisgICAgICAgICAgICBidWZmZXJD
aGFyYWN0ZXIoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhTY3JpcHREYXRhRXNjYXBlZERh
c2hEYXNoU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc8JykKICAgICAgICAgICAg
IEFEVkFOQ0VfVE8oU2NyaXB0RGF0YUVzY2FwZWRMZXNzVGhhblNpZ25TdGF0ZSk7CiAgICAgICAg
IGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcihjYyk7Cisg
ICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhT
Y3JpcHREYXRhU3RhdGUpOwogICAgICAgICB9IGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nl
c3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwor
ICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgUkVDT05TVU1FX0lOKERhdGFT
dGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsK
KyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RP
KFNjcmlwdERhdGFFc2NhcGVkU3RhdGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtNjY0LDE5ICs2
NzQsMTkgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBBU1NFUlQobV9idWZmZXJlZEVu
ZFRhZ05hbWUuaXNFbXB0eSgpKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YUVz
Y2FwZWRFbmRUYWdPcGVuU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID49ICdBJyAmJiBj
YyA8PSAnWicpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJzwnKTsKLSAgICAgICAgICAg
IGVtaXRDaGFyYWN0ZXIoY2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCc8Jyk7Cisg
ICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICAgICAgbV90ZW1wb3JhcnlC
dWZmZXIuY2xlYXIoKTsKICAgICAgICAgICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmFwcGVuZCh0b0xv
d2VyQ2FzZShjYykpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhTY3JpcHREYXRhRG91YmxlRXNj
YXBlU3RhcnRTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPj0gJ2EnICYmIGNjIDw9ICd6
JykgewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcignPCcpOwotICAgICAgICAgICAgZW1pdENo
YXJhY3RlcihjYyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJzwnKTsKKyAgICAgICAg
ICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBtX3RlbXBvcmFyeUJ1ZmZlci5j
bGVhcigpOwogICAgICAgICAgICAgbV90ZW1wb3JhcnlCdWZmZXIuYXBwZW5kKGNjKTsKICAgICAg
ICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0U3RhdGUpOwogICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcignPCcpOworICAgICAgICAg
ICAgYnVmZmVyQ2hhcmFjdGVyKCc8Jyk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oU2NyaXB0
RGF0YUVzY2FwZWRTdGF0ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC02OTIsOCArNzAyLDggQEAg
Ym9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhU
TUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBhZGRUb1Bvc3NpYmxlRW5kVGFnKGNjKTsKICAg
ICAgICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdOYW1lU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcignPCcpOwotICAgICAg
ICAgICAgZW1pdENoYXJhY3RlcignLycpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCc8
Jyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJy8nKTsKICAgICAgICAgICAgIFJFQ09O
U1VNRV9JTihTY3JpcHREYXRhRXNjYXBlZFN0YXRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTcx
NywxMCArNzI3LDEwIEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0
cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgICAgICAgICBGTFVT
SF9BTkRfQURWQU5DRV9UTyhTZWxmQ2xvc2luZ1N0YXJ0VGFnU3RhdGUpOwogICAgICAgICAgICAg
fSBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgICAgICBpZiAoaXNBcHByb3ByaWF0
ZUVuZFRhZygpKQotICAgICAgICAgICAgICAgICAgICBGTFVTSF9FTUlUX0FORF9SRVNVTUVfSU4o
RGF0YVN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZsdXNoRW1pdEFuZFJlc3Vt
ZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVtaXRD
aGFyYWN0ZXIoJzwnKTsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJy8nKTsKKyAgICAgICAg
ICAgIGJ1ZmZlckNoYXJhY3RlcignPCcpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKCcv
Jyk7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NoYXJhY3RlcihtX3RlbXBvcmFyeUJ1
ZmZlcik7CiAgICAgICAgICAgICBtX2J1ZmZlcmVkRW5kVGFnTmFtZS5jbGVhcigpOwogICAgICAg
ICAgICAgUkVDT05TVU1FX0lOKFNjcmlwdERhdGFFc2NhcGVkU3RhdGUpOwpAQCAtNzMwLDE3ICs3
NDAsMTcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAKICAgICBCRUdJTl9TVEFURShTY3JpcHREYXRhRG91
YmxlRXNjYXBlU3RhcnRTdGF0ZSkgewogICAgICAgICBpZiAoY2MgPT0gJ1x4MDknIHx8IGNjID09
ICdceDBBJyB8fCBjYyA9PSAnXHgwQycgfHwgY2MgPT0gJyAnIHx8IGNjID09ICcvJyB8fCBjYyA9
PSAnPicpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoY2MpOworICAgICAgICAgICAgYnVm
ZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIGlmICh0ZW1wb3JhcnlCdWZmZXJJcyhzY3Jp
cHRUYWcubG9jYWxOYW1lKCkpKQogICAgICAgICAgICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0
YURvdWJsZUVzY2FwZWRTdGF0ZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
QURWQU5DRV9UTyhTY3JpcHREYXRhRXNjYXBlZFN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChj
YyA+PSAnQScgJiYgY2MgPD0gJ1onKSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsK
KyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBtX3RlbXBvcmFy
eUJ1ZmZlci5hcHBlbmQodG9Mb3dlckNhc2UoY2MpKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8o
U2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0U3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNj
ID49ICdhJyAmJiBjYyA8PSAneicpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoY2MpOwor
ICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIG1fdGVtcG9yYXJ5
QnVmZmVyLmFwcGVuZChjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERhdGFEb3Vi
bGVFc2NhcGVTdGFydFN0YXRlKTsKICAgICAgICAgfSBlbHNlCkBAIC03NTAsMTYgKzc2MCwxNiBA
QCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwg
SFRNTFRva2VuJiB0b2tlbikKIAogICAgIEJFR0lOX1NUQVRFKFNjcmlwdERhdGFEb3VibGVFc2Nh
cGVkU3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICctJykgewotICAgICAgICAgICAgZW1pdENo
YXJhY3RlcihjYyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICAg
ICAgQURWQU5DRV9UTyhTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2hTdGF0ZSk7CiAgICAgICAg
IH0gZWxzZSBpZiAoY2MgPT0gJzwnKSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsK
KyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RP
KFNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1RoYW5TaWduU3RhdGUpOwogICAgICAgICB9IGVs
c2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsK
LSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7
CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoY2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFj
dGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRT
dGF0ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC03NjcsMTYgKzc3NywxNiBAQCBib29sIEhUTUxU
b2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0
b2tlbikKIAogICAgIEJFR0lOX1NUQVRFKFNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaFN0YXRl
KSB7CiAgICAgICAgIGlmIChjYyA9PSAnLScpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIo
Y2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFO
Q0VfVE8oU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoRGFzaFN0YXRlKTsKICAgICAgICAgfSBl
bHNlIGlmIChjYyA9PSAnPCcpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoY2MpOworICAg
ICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oU2Ny
aXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhhblNpZ25TdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBp
ZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAg
ICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAg
ICAgICAgICAgIFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgZW1pdENoYXJhY3RlcihjYyk7CisgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIo
Y2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhTY3JpcHREYXRhRG91YmxlRXNjYXBlZFN0YXRl
KTsKICAgICAgICAgfQogICAgIH0KQEAgLTc4NCwxOSArNzk0LDE5IEBAIGJvb2wgSFRNTFRva2Vu
aXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2Vu
KQogCiAgICAgQkVHSU5fU1RBVEUoU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoRGFzaFN0YXRl
KSB7CiAgICAgICAgIGlmIChjYyA9PSAnLScpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIo
Y2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFO
Q0VfVE8oU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoRGFzaFN0YXRlKTsKICAgICAgICAgfSBl
bHNlIGlmIChjYyA9PSAnPCcpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoY2MpOworICAg
ICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oU2Ny
aXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhhblNpZ25TdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBp
ZiAoY2MgPT0gJz4nKSB7Ci0gICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAg
ICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNjcmlwdERh
dGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNz
b3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAg
ICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9JTihEYXRhU3Rh
dGUpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcihjYyk7Cisg
ICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhT
Y3JpcHREYXRhRG91YmxlRXNjYXBlZFN0YXRlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTgwNCw3
ICs4MTQsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcm
IHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKIAogICAgIEJFR0lOX1NUQVRFKFNjcmlwdERhdGFE
b3VibGVFc2NhcGVkTGVzc1RoYW5TaWduU3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICcvJykg
ewotICAgICAgICAgICAgZW1pdENoYXJhY3RlcihjYyk7CisgICAgICAgICAgICBidWZmZXJDaGFy
YWN0ZXIoY2MpOwogICAgICAgICAgICAgbV90ZW1wb3JhcnlCdWZmZXIuY2xlYXIoKTsKICAgICAg
ICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YURvdWJsZUVzY2FwZUVuZFN0YXRlKTsKICAgICAg
ICAgfSBlbHNlCkBAIC04MTQsMTcgKzgyNCwxNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRU
b2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKIAogICAgIEJF
R0lOX1NUQVRFKFNjcmlwdERhdGFEb3VibGVFc2NhcGVFbmRTdGF0ZSkgewogICAgICAgICBpZiAo
Y2MgPT0gJ1x4MDknIHx8IGNjID09ICdceDBBJyB8fCBjYyA9PSAnXHgwQycgfHwgY2MgPT0gJyAn
IHx8IGNjID09ICcvJyB8fCBjYyA9PSAnPicpIHsKLSAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIo
Y2MpOworICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIGlmICh0
ZW1wb3JhcnlCdWZmZXJJcyhzY3JpcHRUYWcubG9jYWxOYW1lKCkpKQogICAgICAgICAgICAgICAg
IEFEVkFOQ0VfVE8oU2NyaXB0RGF0YUVzY2FwZWRTdGF0ZSk7CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgQURWQU5DRV9UTyhTY3JpcHREYXRhRG91YmxlRXNjYXBlZFN0YXRlKTsK
ICAgICAgICAgfSBlbHNlIGlmIChjYyA+PSAnQScgJiYgY2MgPD0gJ1onKSB7Ci0gICAgICAgICAg
ICBlbWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAg
ICAgICAgICAgICBtX3RlbXBvcmFyeUJ1ZmZlci5hcHBlbmQodG9Mb3dlckNhc2UoY2MpKTsKICAg
ICAgICAgICAgIEFEVkFOQ0VfVE8oU2NyaXB0RGF0YURvdWJsZUVzY2FwZUVuZFN0YXRlKTsKICAg
ICAgICAgfSBlbHNlIGlmIChjYyA+PSAnYScgJiYgY2MgPD0gJ3onKSB7Ci0gICAgICAgICAgICBl
bWl0Q2hhcmFjdGVyKGNjKTsKKyAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAg
ICAgICAgICBtX3RlbXBvcmFyeUJ1ZmZlci5hcHBlbmQoY2MpOwogICAgICAgICAgICAgQURWQU5D
RV9UTyhTY3JpcHREYXRhRG91YmxlRXNjYXBlRW5kU3RhdGUpOwogICAgICAgICB9IGVsc2UKQEAg
LTgzOCwxNyArODQ4LDE3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRl
ZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChjYyA9
PSAnLycpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKFNlbGZDbG9zaW5nU3RhcnRUYWdTdGF0ZSk7
CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFU1VN
RV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3Vy
Y2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID49ICdBJyAmJiBjYyA8PSAnWicp
IHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFkZE5ld0F0dHJpYnV0ZSgpOwogICAgICAgICAgICAg
bV90b2tlbi0+YXBwZW5kVG9BdHRyaWJ1dGVOYW1lKHRvTG93ZXJDYXNlKGNjKSk7CiAgICAgICAg
ICAgICBBRFZBTkNFX1RPKEF0dHJpYnV0ZU5hbWVTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAo
Y2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAg
ICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAg
ICAgICAgIFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgaWYgKGNjID09ICciJyB8fCBjYyA9PSAnXCcnIHx8IGNjID09ICc8JyB8fCBjYyA9PSAn
PScpCi0gICAgICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgICAgICBw
YXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5hZGROZXdBdHRyaWJ1dGUoKTsKICAg
ICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlTmFtZShjYyk7CiAgICAgICAgICAg
ICBBRFZBTkNFX1RPKEF0dHJpYnV0ZU5hbWVTdGF0ZSk7CkBAIC04NjQsMTYgKzg3NCwxNiBAQCBi
b29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRN
TFRva2VuJiB0b2tlbikKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz0nKQogICAgICAgICAgICAg
QURWQU5DRV9UTyhCZWZvcmVBdHRyaWJ1dGVWYWx1ZVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAo
Y2MgPT0gJz4nKQotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7Cisg
ICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAg
ICAgICAgZWxzZSBpZiAoY2MgPj0gJ0EnICYmIGNjIDw9ICdaJykgewogICAgICAgICAgICAgbV90
b2tlbi0+YXBwZW5kVG9BdHRyaWJ1dGVOYW1lKHRvTG93ZXJDYXNlKGNjKSk7CiAgICAgICAgICAg
ICBBRFZBTkNFX1RPKEF0dHJpYnV0ZU5hbWVTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2Mg
PT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAgICAg
ICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAg
ICAgIFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgaWYgKGNjID09ICciJyB8fCBjYyA9PSAnXCcnIHx8IGNjID09ICc8JyB8fCBjYyA9PSAnPScp
Ci0gICAgICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgICAgICBwYXJz
ZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0F0dHJpYnV0ZU5hbWUoY2Mp
OwogICAgICAgICAgICAgQURWQU5DRV9UTyhBdHRyaWJ1dGVOYW1lU3RhdGUpOwogICAgICAgICB9
CkBAIC04ODgsMTcgKzg5OCwxNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgZWxzZSBpZiAo
Y2MgPT0gJz0nKQogICAgICAgICAgICAgQURWQU5DRV9UTyhCZWZvcmVBdHRyaWJ1dGVWYWx1ZVN0
YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKQotICAgICAgICAgICAgRU1JVF9BTkRf
UkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUlu
KHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPj0gJ0EnICYmIGNjIDw9
ICdaJykgewogICAgICAgICAgICAgbV90b2tlbi0+YWRkTmV3QXR0cmlidXRlKCk7CiAgICAgICAg
ICAgICBtX3Rva2VuLT5hcHBlbmRUb0F0dHJpYnV0ZU5hbWUodG9Mb3dlckNhc2UoY2MpKTsKICAg
ICAgICAgICAgIEFEVkFOQ0VfVE8oQXR0cmlidXRlTmFtZVN0YXRlKTsKICAgICAgICAgfSBlbHNl
IGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0g
ICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgcGFyc2VFcnJvcigpOwog
ICAgICAgICAgICAgUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBpZiAoY2MgPT0gJyInIHx8IGNjID09ICdcJycgfHwgY2MgPT0gJzwnKQotICAg
ICAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICAgICAgcGFyc2VFcnJv
cigpOwogICAgICAgICAgICAgbV90b2tlbi0+YWRkTmV3QXR0cmlidXRlKCk7CiAgICAgICAgICAg
ICBtX3Rva2VuLT5hcHBlbmRUb0F0dHJpYnV0ZU5hbWUoY2MpOwogICAgICAgICAgICAgQURWQU5D
RV9UTyhBdHRyaWJ1dGVOYW1lU3RhdGUpOwpAQCAtOTE2LDE0ICs5MjYsMTQgQEAgYm9vbCBIVE1M
VG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYg
dG9rZW4pCiAgICAgICAgIGVsc2UgaWYgKGNjID09ICdcJycpCiAgICAgICAgICAgICBBRFZBTkNF
X1RPKEF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChj
YyA9PSAnPicpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Ci0gICAgICAgICAgICBF
TUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsK
KyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZp
bGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBw
YXJzZUVycm9yKCk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChjYyA9PSAnPCcgfHwgY2MgPT0gJz0nIHx8IGNj
ID09ICdgJykKLSAgICAgICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAg
ICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRl
VmFsdWUoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhBdHRyaWJ1dGVWYWx1ZVVucXVvdGVk
U3RhdGUpOwogICAgICAgICB9CkBAIC05MzcsNyArOTQ3LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVy
OjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgICAgICAgICBtX2FkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyID0gJyInOwogICAgICAgICAg
ICAgQURWQU5DRV9UTyhDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZVZhbHVlU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZp
bGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBw
YXJzZUVycm9yKCk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlVmFsdWUo
Y2MpOwpAQCAtOTUzLDcgKzk2Myw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNl
Z21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgbV9h
ZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlciA9ICdcJyc7CiAgICAgICAgICAgICBBRFZBTkNFX1RP
KENoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlVmFsdWVTdGF0ZSk7CiAgICAgICAgIH0gZWxz
ZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewot
ICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsK
ICAgICAgICAgICAgIFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShjYyk7CkBAIC05Njks
MTMgKzk3OSwxMyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIG1fYWRkaXRpb25hbEFs
bG93ZWRDaGFyYWN0ZXIgPSAnPic7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKENoYXJhY3RlclJl
ZmVyZW5jZUluQXR0cmlidXRlVmFsdWVTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0g
Jz4nKQotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAg
ICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAg
ZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikg
ewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3Io
KTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgaWYgKGNjID09ICciJyB8fCBjYyA9PSAnXCcnIHx8IGNjID09ICc8JyB8
fCBjYyA9PSAnPScgfHwgY2MgPT0gJ2AnKQotICAgICAgICAgICAgICAgIGVtaXRQYXJzZUVycm9y
KCk7CisgICAgICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+
YXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKEF0dHJp
YnV0ZVZhbHVlVW5xdW90ZWRTdGF0ZSk7CiAgICAgICAgIH0KQEAgLTEwMTYsMTIgKzEwMjYsMTIg
QEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGVsc2UgaWYgKGNjID09ICcvJykKICAgICAgICAg
ICAgIEFEVkFOQ0VfVE8oU2VsZkNsb3NpbmdTdGFydFRhZ1N0YXRlKTsKICAgICAgICAgZWxzZSBp
ZiAoY2MgPT0gJz4nKQotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7
CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsK
ICAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmls
ZU1hcmtlcikgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBh
cnNlRXJyb3IoKTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBh
cnNlRXJyb3IoKTsKICAgICAgICAgICAgIFJFQ09OU1VNRV9JTihCZWZvcmVBdHRyaWJ1dGVOYW1l
U3RhdGUpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTAzMCwxMiArMTA0MCwxMiBAQCBib29sIEhU
TUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2Vu
JiB0b2tlbikKICAgICBCRUdJTl9TVEFURShTZWxmQ2xvc2luZ1N0YXJ0VGFnU3RhdGUpIHsKICAg
ICAgICAgaWYgKGNjID09ICc+JykgewogICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICAgICAgICAgIEVNSVRfQU5EX1JFU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0
dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBp
ZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAg
ICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAg
ICAgICAgICAgIFJFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAg
ICAgICAgICAgIFJFQ09OU1VNRV9JTihCZWZvcmVBdHRyaWJ1dGVOYW1lU3RhdGUpOwogICAgICAg
ICB9CiAgICAgfQpAQCAtMTA0OCw3ICsxMDU4LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAg
IHdoaWxlICghc291cmNlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgY2MgPSBtX2lucHV0U3Ry
ZWFtUHJlcHJvY2Vzc29yLm5leHRJbnB1dENoYXJhY3RlcigpOwogICAgICAgICAgICAgaWYgKGNj
ID09ICc+JykKLSAgICAgICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0YXRlKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRl
KTsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7CiAgICAgICAgICAg
ICBtX2lucHV0U3RyZWFtUHJlcHJvY2Vzc29yLmFkdmFuY2Uoc291cmNlLCBtX2xpbmVOdW1iZXIp
OwogICAgICAgICAgICAgLy8gV2UgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgKHdoaWNoIGluZGlj
YXRlcyB0aGF0IHxzb3VyY2V8IGlzCkBAIC0xMDgzLDcgKzEwOTMsNyBAQCBib29sIEhUTUxUb2tl
bml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tl
bikKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICAgICAgLy8gRklYTUU6IFdlJ3JlIHN0
aWxsIG1pc3NpbmcgdGhlIGJpdHMgYWJvdXQgdGhlIGluc2VydGlvbiBtb2RlIGJlaW5nIGluIGZv
cmVpZ24gY29udGVudDoKICAgICAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dl
Yi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdG9rZW5pemF0aW9uLmh0bWwjbWFya3VwLWRl
Y2xhcmF0aW9uLW9wZW4tc3RhdGUKLSAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAg
cGFyc2VFcnJvcigpOwogICAgICAgICBSRUNPTlNVTUVfSU4oQm9ndXNDb21tZW50U3RhdGUpOwog
ICAgIH0KICAgICBFTkRfU1RBVEUoKQpAQCAtMTA5MiwxMSArMTEwMiwxMSBAQCBib29sIEhUTUxU
b2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgaWYgKGNjID09ICctJykKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQ29t
bWVudFN0YXJ0RGFzaFN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKSB7Ci0gICAg
ICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1FX0lO
KERhdGFTdGF0ZSk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7CisgICAgICAgICAgICByZXR1
cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlm
IChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAg
ICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVDT05TVU1F
X0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7CisgICAgICAgICAgICBy
ZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7CiAgICAgICAg
ICAgICBBRFZBTkNFX1RPKENvbW1lbnRTdGF0ZSk7CkBAIC0xMTA4LDExICsxMTE4LDExIEBAIGJv
b2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1M
VG9rZW4mIHRva2VuKQogICAgICAgICBpZiAoY2MgPT0gJy0nKQogICAgICAgICAgICAgQURWQU5D
RV9UTyhDb21tZW50RW5kU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsKLSAg
ICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVf
SU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHJl
dHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2Ug
aWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAg
ICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRUNPTlNV
TUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAg
IHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7CiAgICAg
ICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwpAQCAtMTEyNSw4ICsxMTM1LDgg
QEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChjYyA9PSAnLScpCiAgICAgICAgICAgICBB
RFZBTkNFX1RPKENvbW1lbnRFbmREYXNoU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSBJ
bnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBl
bWl0UGFyc2VFcnJvcigpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVDT05TVU1FX0lOKERhdGFT
dGF0ZSk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7CisgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudChjYyk7CiAgICAgICAgICAgICBBRFZB
TkNFX1RPKENvbW1lbnRTdGF0ZSk7CkBAIC0xMTM4LDggKzExNDgsOCBAQCBib29sIEhUTUxUb2tl
bml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tl
bikKICAgICAgICAgaWYgKGNjID09ICctJykKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQ29tbWVu
dEVuZFN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNz
b3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKLSAg
ICAgICAgICAgIEVNSVRfQU5EX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAg
cGFyc2VFcnJvcigpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3Vy
Y2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5h
cHBlbmRUb0NvbW1lbnQoJy0nKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVu
dChjYyk7CkBAIC0xMTUwLDI2ICsxMTYwLDI2IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogCiAgICAgQkVH
SU5fU1RBVEUoQ29tbWVudEVuZFN0YXRlKSB7CiAgICAgICAgIGlmIChjYyA9PSAnPicpCi0gICAg
ICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVy
biBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChj
YyA9PSAnXHgwOScgfHwgY2MgPT0gJ1x4MEEnIHx8IGNjID09ICdceDBDJyB8fCBjYyA9PSAnICcp
IHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9y
KCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsKICAgICAgICAg
ICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOwogICAgICAgICAgICAgbV90b2tlbi0+
YXBwZW5kVG9Db21tZW50KGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQ29tbWVudEVuZFNw
YWNlU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICchJykgewotICAgICAgICAgICAg
ZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAg
IEFEVkFOQ0VfVE8oQ29tbWVudEVuZEJhbmdTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2Mg
PT0gJy0nKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgcGFy
c2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7CiAg
ICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoY2MpOwogICAgICAgICAgICAgQURW
QU5DRV9UTyhDb21tZW50RW5kU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0
U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQ
YXJzZUVycm9yKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRl
KTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5k
UmVjb25zdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAg
ICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOwogICAgICAgICAgICAgbV90b2tl
bi0+YXBwZW5kVG9Db21tZW50KCctJyk7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0Nv
bW1lbnQoY2MpOwpAQCAtMTE4NSwxMCArMTE5NSwxMCBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5l
eHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAg
ICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnIScpOwogICAgICAgICAgICAgQURWQU5D
RV9UTyhDb21tZW50RW5kRGFzaFN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicp
Ci0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAg
IHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICBlbHNl
IGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0g
ICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVDT05T
VU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7CisgICAgICAgICAg
ICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ29tbWVudCgnLScpOwogICAg
ICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KCctJyk7CkBAIC0xMjA2LDEwICsxMjE2
LDEwIEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291
cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICctJykKICAg
ICAgICAgICAgIEFEVkFOQ0VfVE8oQ29tbWVudEVuZERhc2hTdGF0ZSk7CiAgICAgICAgIGVsc2Ug
aWYgKGNjID09ICc+JykKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFU1VNRV9JTihEYXRhU3RhdGUp
OworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7
CiAgICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZp
bGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Ci0gICAgICAgICAgICBF
TUlUX0FORF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3Io
KTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBEYXRhU3Rh
dGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21t
ZW50KGNjKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQ29tbWVudFN0YXRlKTsKQEAgLTEyMjEs
MTIgKzEyMzEsMTIgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3Ry
aW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChjYyA9PSAnXHgwOScg
fHwgY2MgPT0gJ1x4MEEnIHx8IGNjID09ICdceDBDJyB8fCBjYyA9PSAnICcpCiAgICAgICAgICAg
ICBBRFZBTkNFX1RPKEJlZm9yZURPQ1RZUEVOYW1lU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChj
YyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAg
ICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAg
ICAgICAgbV90b2tlbi0+YmVnaW5ET0NUWVBFKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRG
b3JjZVF1aXJrcygpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVDT05TVU1FX0lOKERhdGFTdGF0
ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0
YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7Cisg
ICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBSRUNPTlNVTUVfSU4oQmVmb3Jl
RE9DVFlQRU5hbWVTdGF0ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjM5LDE1ICsxMjQ5LDE1
IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNl
LCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5ET0NUWVBFKHRv
TG93ZXJDYXNlKGNjKSk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKERPQ1RZUEVOYW1lU3RhdGUp
OwogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAgICAgICAgZW1pdFBhcnNl
RXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4t
PmJlZ2luRE9DVFlQRSgpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsK
LSAgICAgICAgICAgIEVNSVRfQU5EX1JFU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAg
cmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxz
ZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewot
ICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsK
ICAgICAgICAgICAgIG1fdG9rZW4tPmJlZ2luRE9DVFlQRSgpOwogICAgICAgICAgICAgbV90b2tl
bi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFQ09OU1VNRV9JTihE
YXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2Us
IERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5iZWdp
bkRPQ1RZUEUoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhET0NUWVBFTmFtZVN0YXRlKTsK
QEAgLTEyNTksMTQgKzEyNjksMTQgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChjYyA9
PSAnXHgwOScgfHwgY2MgPT0gJ1x4MEEnIHx8IGNjID09ICdceDBDJyB8fCBjYyA9PSAnICcpCiAg
ICAgICAgICAgICBBRFZBTkNFX1RPKEFmdGVyRE9DVFlQRU5hbWVTdGF0ZSk7CiAgICAgICAgIGVs
c2UgaWYgKGNjID09ICc+JykKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFU1VNRV9JTihEYXRhU3Rh
dGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERhdGFTdGF0
ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID49ICdBJyAmJiBjYyA8PSAnWicpIHsKICAgICAgICAg
ICAgIG1fdG9rZW4tPmFwcGVuZFRvTmFtZSh0b0xvd2VyQ2FzZShjYykpOwogICAgICAgICAgICAg
QURWQU5DRV9UTyhET0NUWVBFTmFtZVN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJ
bnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBl
bWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAg
bV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFQ09OU1VN
RV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihz
b3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX3Rva2Vu
LT5hcHBlbmRUb05hbWUoY2MpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhET0NUWVBFTmFtZVN0
YXRlKTsKQEAgLTEyNzgsMTEgKzEyODgsMTEgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9r
ZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlm
IChjYyA9PSAnXHgwOScgfHwgY2MgPT0gJ1x4MEEnIHx8IGNjID09ICdceDBDJyB8fCBjYyA9PSAn
ICcpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKEFmdGVyRE9DVFlQRU5hbWVTdGF0ZSk7CiAgICAg
ICAgIGlmIChjYyA9PSAnPicpCi0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0
YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3Rh
dGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5k
T2ZGaWxlTWFya2VyKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAg
ICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsK
LSAgICAgICAgICAgIEVNSVRfQU5EX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAg
ICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcHVibGlj
U3RyaW5nLCAoInB1YmxpYyIpKTsKICAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBzeXN0ZW1TdHJpbmcsICgic3lzdGVtIikpOwpAQCAtMTMwMSw3ICsxMzExLDcgQEAgYm9v
bCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxU
b2tlbiYgdG9rZW4pCiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gU2VnbWVu
dGVkU3RyaW5nOjpOb3RFbm91Z2hDaGFyYWN0ZXJzKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gc2hvdWxkRW1pdEJ1ZmZlcmVkQ2hhcmFjdGVyVG9rZW4oc291cmNlKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9y
KCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAg
QURWQU5DRV9UTyhCb2d1c0RPQ1RZUEVTdGF0ZSk7CiAgICAgICAgIH0KQEAgLTEzMTIsMjMgKzEz
MjIsMjMgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChjYyA9PSAnXHgwOScgfHwgY2Mg
PT0gJ1x4MEEnIHx8IGNjID09ICdceDBDJyB8fCBjYyA9PSAnICcpCiAgICAgICAgICAgICBBRFZB
TkNFX1RPKEJlZm9yZURPQ1RZUEVQdWJsaWNJZGVudGlmaWVyU3RhdGUpOwogICAgICAgICBlbHNl
IGlmIChjYyA9PSAnIicpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAg
ICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRQdWJsaWNJZGVudGlm
aWVyVG9FbXB0eVN0cmluZygpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhET0NUWVBFUHVibGlj
SWRlbnRpZmllckRvdWJsZVF1b3RlZFN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAn
XCcnKSB7Ci0gICAgICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgcGFyc2VF
cnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0UHVibGljSWRlbnRpZmllclRvRW1wdHlT
dHJpbmcoKTsKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oRE9DVFlQRVB1YmxpY0lkZW50aWZpZXJT
aW5nbGVRdW90ZWRTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7Ci0gICAg
ICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAg
ICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIEVNSVRfQU5E
X1JFU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJ
bihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJl
YW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAgICAgICAgZW1pdFBhcnNl
RXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4t
PnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRUNPTlNVTUVfSU4oRGF0
YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBE
YXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3Io
KTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZv
cmNlUXVpcmtzKCk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKEJvZ3VzRE9DVFlQRVN0YXRlKTsK
ICAgICAgICAgfQpAQCAtMTM0NSwxNSArMTM1NSwxNSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5l
eHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAg
ICAgICAgIG1fdG9rZW4tPnNldFB1YmxpY0lkZW50aWZpZXJUb0VtcHR5U3RyaW5nKCk7CiAgICAg
ICAgICAgICBBRFZBTkNFX1RPKERPQ1RZUEVQdWJsaWNJZGVudGlmaWVyU2luZ2xlUXVvdGVkU3Rh
dGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAgICAgICAgZW1pdFBh
cnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9r
ZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0
YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRh
U3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29y
OjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAg
ICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJr
cygpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CisgICAg
ICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAg
ICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwog
ICAgICAgICAgICAgQURWQU5DRV9UTyhCb2d1c0RPQ1RZUEVTdGF0ZSk7CiAgICAgICAgIH0KQEAg
LTEzNjQsMTMgKzEzNzQsMTMgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChjYyA9PSAn
IicpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKEFmdGVyRE9DVFlQRVB1YmxpY0lkZW50aWZpZXJT
dGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAgICAgICAgZW1pdFBh
cnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9r
ZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0
YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRh
U3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29y
OjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAg
ICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJr
cygpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CisgICAg
ICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvUHVibGljSWRlbnRp
ZmllcihjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKERPQ1RZUEVQdWJsaWNJZGVudGlmaWVy
RG91YmxlUXVvdGVkU3RhdGUpOwpAQCAtMTM4MiwxMyArMTM5MiwxMyBAQCBib29sIEhUTUxUb2tl
bml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tl
bikKICAgICAgICAgaWYgKGNjID09ICdcJycpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKEFmdGVy
RE9DVFlQRVB1YmxpY0lkZW50aWZpZXJTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+
JykgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJy
b3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAg
ICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0
QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09
IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAg
IGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAg
ICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVDT05T
VU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUlu
KHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fdG9r
ZW4tPmFwcGVuZFRvUHVibGljSWRlbnRpZmllcihjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RP
KERPQ1RZUEVQdWJsaWNJZGVudGlmaWVyU2luZ2xlUXVvdGVkU3RhdGUpOwpAQCAtMTQwMCwyMSAr
MTQxMCwyMSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcm
IHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgaWYgKGNjID09ICdceDA5JyB8fCBj
YyA9PSAnXHgwQScgfHwgY2MgPT0gJ1x4MEMnIHx8IGNjID09ICcgJykKICAgICAgICAgICAgIEFE
VkFOQ0VfVE8oQmV0d2VlbkRPQ1RZUEVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVyc1N0YXRlKTsK
ICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKQotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1F
X0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJj
ZSwgRGF0YVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJyInKSB7Ci0gICAgICAgICAg
ICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAg
ICAgbV90b2tlbi0+c2V0U3lzdGVtSWRlbnRpZmllclRvRW1wdHlTdHJpbmcoKTsKICAgICAgICAg
ICAgIEFEVkFOQ0VfVE8oRE9DVFlQRVN5c3RlbUlkZW50aWZpZXJEb3VibGVRdW90ZWRTdGF0ZSk7
CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJ1wnJykgewotICAgICAgICAgICAgZW1pdFBhcnNl
RXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4t
PnNldFN5c3RlbUlkZW50aWZpZXJUb0VtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICBBRFZBTkNF
X1RPKERPQ1RZUEVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkU3RhdGUpOwogICAgICAgICB9
IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIp
IHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9y
KCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAg
RU1JVF9BTkRfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAg
ICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgQURWQU5D
RV9UTyhCb2d1c0RPQ1RZUEVTdGF0ZSk7CiAgICAgICAgIH0KQEAgLTE0MjUsNyArMTQzNSw3IEBA
IGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBI
VE1MVG9rZW4mIHRva2VuKQogICAgICAgICBpZiAoY2MgPT0gJ1x4MDknIHx8IGNjID09ICdceDBB
JyB8fCBjYyA9PSAnXHgwQycgfHwgY2MgPT0gJyAnKQogICAgICAgICAgICAgQURWQU5DRV9UTyhC
ZXR3ZWVuRE9DVFlQRVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzU3RhdGUpOwogICAgICAgICBl
bHNlIGlmIChjYyA9PSAnPicpCi0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0
YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3Rh
dGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSAnIicpIHsKICAgICAgICAgICAgIG1fdG9rZW4t
PnNldFN5c3RlbUlkZW50aWZpZXJUb0VtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICBBRFZBTkNF
X1RPKERPQ1RZUEVTeXN0ZW1JZGVudGlmaWVyRG91YmxlUXVvdGVkU3RhdGUpOwpAQCAtMTQzMywx
MSArMTQ0MywxMSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIG1fdG9rZW4tPnNldFN5
c3RlbUlkZW50aWZpZXJUb0VtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKERP
Q1RZUEVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkU3RhdGUpOwogICAgICAgICB9IGVsc2Ug
aWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAg
ICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAg
ICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAgRU1JVF9B
TkRfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJl
Y29uc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAg
ICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhC
b2d1c0RPQ1RZUEVTdGF0ZSk7CiAgICAgICAgIH0KQEAgLTE0NDgsMjMgKzE0NTgsMjMgQEAgYm9v
bCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxU
b2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChjYyA9PSAnXHgwOScgfHwgY2MgPT0gJ1x4MEEnIHx8
IGNjID09ICdceDBDJyB8fCBjYyA9PSAnICcpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKEJlZm9y
ZURPQ1RZUEVTeXN0ZW1JZGVudGlmaWVyU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSAn
IicpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRTeXN0ZW1JZGVudGlmaWVyVG9FbXB0eVN0
cmluZygpOwogICAgICAgICAgICAgQURWQU5DRV9UTyhET0NUWVBFU3lzdGVtSWRlbnRpZmllckRv
dWJsZVF1b3RlZFN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnXCcnKSB7Ci0gICAg
ICAgICAgICBlbWl0UGFyc2VFcnJvcigpOworICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAg
ICAgICAgICAgbV90b2tlbi0+c2V0U3lzdGVtSWRlbnRpZmllclRvRW1wdHlTdHJpbmcoKTsKICAg
ICAgICAgICAgIEFEVkFOQ0VfVE8oRE9DVFlQRVN5c3RlbUlkZW50aWZpZXJTaW5nbGVRdW90ZWRT
dGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7Ci0gICAgICAgICAgICBlbWl0
UGFyc2VFcnJvcigpOworICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90
b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKLSAgICAgICAgICAgIEVNSVRfQU5EX1JFU1VNRV9JTihE
YXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIERh
dGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNz
b3I6OmVuZE9mRmlsZU1hcmtlcikgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAg
ICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVp
cmtzKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKKyAg
ICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAg
ICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7
CiAgICAgICAgICAgICBBRFZBTkNFX1RPKEJvZ3VzRE9DVFlQRVN0YXRlKTsKICAgICAgICAgfQpA
QCAtMTQ4MSwxNSArMTQ5MSwxNSBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIG1fdG9r
ZW4tPnNldFN5c3RlbUlkZW50aWZpZXJUb0VtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICBBRFZB
TkNFX1RPKERPQ1RZUEVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkU3RhdGUpOwogICAgICAg
ICB9IGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsK
KyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNl
UXVpcmtzKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0YXRlKTsKKyAg
ICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAg
ICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVN
YXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJz
ZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAg
ICAgICAgRU1JVF9BTkRfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1
cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9y
KCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAg
QURWQU5DRV9UTyhCb2d1c0RPQ1RZUEVTdGF0ZSk7CiAgICAgICAgIH0KQEAgLTE1MDAsMTMgKzE1
MTAsMTMgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGlmIChjYyA9PSAnIicpCiAgICAgICAg
ICAgICBBRFZBTkNFX1RPKEFmdGVyRE9DVFlQRVN5c3RlbUlkZW50aWZpZXJTdGF0ZSk7CiAgICAg
ICAgIGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsK
KyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNl
UXVpcmtzKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9SRVNVTUVfSU4oRGF0YVN0YXRlKTsKKyAg
ICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAg
ICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVN
YXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVycm9yKCk7CisgICAgICAgICAgICBwYXJz
ZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwotICAgICAg
ICAgICAgRU1JVF9BTkRfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1
cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvU3lzdGVtSWRlbnRpZmllcihjYyk7CiAg
ICAgICAgICAgICBBRFZBTkNFX1RPKERPQ1RZUEVTeXN0ZW1JZGVudGlmaWVyRG91YmxlUXVvdGVk
U3RhdGUpOwpAQCAtMTUxOCwxMyArMTUyOCwxMyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRU
b2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAg
aWYgKGNjID09ICdcJycpCiAgICAgICAgICAgICBBRFZBTkNFX1RPKEFmdGVyRE9DVFlQRVN5c3Rl
bUlkZW50aWZpZXJTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc+JykgewotICAgICAg
ICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAg
ICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICBFTUlUX0FORF9S
RVNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4o
c291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFt
UHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKLSAgICAgICAgICAgIGVtaXRQYXJzZUVy
cm9yKCk7CisgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5z
ZXRGb3JjZVF1aXJrcygpOwotICAgICAgICAgICAgRU1JVF9BTkRfUkVDT05TVU1FX0lOKERhdGFT
dGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgRGF0
YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRv
U3lzdGVtSWRlbnRpZmllcihjYyk7CiAgICAgICAgICAgICBBRFZBTkNFX1RPKERPQ1RZUEVTeXN0
ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkU3RhdGUpOwpAQCAtMTUzNiwxMyArMTU0NiwxMyBAQCBi
b29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRN
TFRva2VuJiB0b2tlbikKICAgICAgICAgaWYgKGNjID09ICdceDA5JyB8fCBjYyA9PSAnXHgwQScg
fHwgY2MgPT0gJ1x4MEMnIHx8IGNjID09ICcgJykKICAgICAgICAgICAgIEFEVkFOQ0VfVE8oQWZ0
ZXJET0NUWVBFU3lzdGVtSWRlbnRpZmllclN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0g
Jz4nKQotICAgICAgICAgICAgRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAg
ICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAg
ZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikg
ewotICAgICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3Io
KTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7Ci0gICAgICAgICAgICBF
TUlUX0FORF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0
QW5kUmVjb25zdW1lSW4oc291cmNlLCBEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgZW1pdFBhcnNlRXJyb3IoKTsKKyAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAg
ICAgICAgICAgIEFEVkFOQ0VfVE8oQm9ndXNET0NUWVBFU3RhdGUpOwogICAgICAgICB9CiAgICAg
fQpAQCAtMTU1MCw5ICsxNTYwLDkgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAKICAgICBCRUdJTl9TVEFU
RShCb2d1c0RPQ1RZUEVTdGF0ZSkgewogICAgICAgICBpZiAoY2MgPT0gJz4nKQotICAgICAgICAg
ICAgRU1JVF9BTkRfUkVTVU1FX0lOKERhdGFTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlc3VtZUluKHNvdXJjZSwgRGF0YVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0g
SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikKLSAgICAgICAgICAgIEVN
SVRfQU5EX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRB
bmRSZWNvbnN1bWVJbihzb3VyY2UsIERhdGFTdGF0ZSk7CiAgICAgICAgIEFEVkFOQ0VfVE8oQm9n
dXNET0NUWVBFU3RhdGUpOwogICAgIH0KICAgICBFTkRfU1RBVEUoKQpAQCAtMTU4Niw3ICsxNTk2
LDcgQEAgaW5saW5lIGJvb2wgSFRNTFRva2VuaXplcjo6aXNBcHByb3ByaWF0ZUVuZFRhZygpCiAg
ICAgcmV0dXJuIG1fYnVmZmVyZWRFbmRUYWdOYW1lID09IG1fYXBwcm9wcmlhdGVFbmRUYWdOYW1l
OwogfQogCi1pbmxpbmUgdm9pZCBIVE1MVG9rZW5pemVyOjplbWl0Q2hhcmFjdGVyKFVDaGFyIGNo
YXJhY3RlcikKK2lubGluZSB2b2lkIEhUTUxUb2tlbml6ZXI6OmJ1ZmZlckNoYXJhY3RlcihVQ2hh
ciBjaGFyYWN0ZXIpCiB7CiAgICAgQVNTRVJUKGNoYXJhY3RlciAhPSBJbnB1dFN0cmVhbVByZXBy
b2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKTsKICAgICBpZiAobV90b2tlbi0+dHlwZSgpICE9IEhU
TUxUb2tlbjo6Q2hhcmFjdGVyKSB7CkBAIC0xNTk2LDM1ICsxNjA2LDIxIEBAIGlubGluZSB2b2lk
IEhUTUxUb2tlbml6ZXI6OmVtaXRDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyKQogICAgIG1fdG9r
ZW4tPmFwcGVuZFRvQ2hhcmFjdGVyKGNoYXJhY3Rlcik7CiB9CiAKLWlubGluZSB2b2lkIEhUTUxU
b2tlbml6ZXI6OmVtaXRDb2RlUG9pbnQodW5zaWduZWQgdmFsdWUpCitpbmxpbmUgdm9pZCBIVE1M
VG9rZW5pemVyOjpidWZmZXJDb2RlUG9pbnQodW5zaWduZWQgdmFsdWUpCiB7CiAgICAgaWYgKHZh
bHVlIDwgMHhGRkZGKSB7Ci0gICAgICAgIGVtaXRDaGFyYWN0ZXIodmFsdWUpOworICAgICAgICBi
dWZmZXJDaGFyYWN0ZXIodmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGVtaXRD
aGFyYWN0ZXIoVTE2X0xFQUQodmFsdWUpKTsKLSAgICBlbWl0Q2hhcmFjdGVyKFUxNl9UUkFJTCh2
YWx1ZSkpOworICAgIGJ1ZmZlckNoYXJhY3RlcihVMTZfTEVBRCh2YWx1ZSkpOworICAgIGJ1ZmZl
ckNoYXJhY3RlcihVMTZfVFJBSUwodmFsdWUpKTsKIH0KIAotaW5saW5lIHZvaWQgSFRNTFRva2Vu
aXplcjo6ZW1pdFBhcnNlRXJyb3IoKQoraW5saW5lIHZvaWQgSFRNTFRva2VuaXplcjo6cGFyc2VF
cnJvcigpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotaW5saW5lIHZvaWQgSFRNTFRv
a2VuaXplcjo6ZW1pdEN1cnJlbnRUb2tlbigpCi17Ci0gICAgQVNTRVJUKG1fdG9rZW4tPnR5cGUo
KSAhPSBIVE1MVG9rZW46OlVuaW5pdGlhbGl6ZWQpOwotICAgIGlmIChtX3Rva2VuLT50eXBlKCkg
PT0gSFRNTFRva2VuOjpTdGFydFRhZykKLSAgICAgICAgbV9hcHByb3ByaWF0ZUVuZFRhZ05hbWUg
PSBtX3Rva2VuLT5uYW1lKCk7Ci19Ci0KLWlubGluZSB2b2lkIEhUTUxUb2tlbml6ZXI6OmVtaXRF
bmRPZkZpbGUoKQotewotICAgIC8vIERpc2NhcmQgYW55IGluLXByb2dyZXNzIHRva2VuIGJlZm9y
ZSBzZXR0aW5nIHVwIGFuIEVPRiB0b2tlbi4KLSAgICBtX3Rva2VuLT5jbGVhcigpOwotICAgIG1f
dG9rZW4tPm1ha2VFbmRPZkZpbGUoKTsKLX0KLQogaW5saW5lIGJvb2wgSFRNTFRva2VuaXplcjo6
c2hvdWxkRW1pdEJ1ZmZlcmVkQ2hhcmFjdGVyVG9rZW4oY29uc3QgU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UpCiB7CiAgICAgcmV0dXJuIHNvdXJjZS5pc0Nsb3NlZCgpICYmIG1fdG9rZW4tPnR5cGUo
KSA9PSBIVE1MVG9rZW46OkNoYXJhY3RlcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
VG9rZW5pemVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5oCmluZGV4IGZmODcyODQ5
YTkyMTZmMWU3Mzc1MmIwMzRkOGFlYTMwOWE2ZWVhMWMuLjg0NzlkZmNkNWVlNzhjZGIxZGE0YWE1
ZGYxYmE3NjQ0MTQxNTk1ZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVy
LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuaApAQCAtMTkyLDIwICsxOTIsMjcg
QEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBtX3NraXBOZXh0TmV3TGluZTsKICAgICB9OwogCi0g
ICAgaW5saW5lIHZvaWQgZW1pdENoYXJhY3RlcihVQ2hhcik7Ci0gICAgaW5saW5lIHZvaWQgZW1p
dFBhcnNlRXJyb3IoKTsKLSAgICBpbmxpbmUgdm9pZCBlbWl0Q3VycmVudFRva2VuKCk7Ci0gICAg
aW5saW5lIHZvaWQgZW1pdENvZGVQb2ludCh1bnNpZ25lZCk7Ci0gICAgaW5saW5lIHZvaWQgZW1p
dEVuZE9mRmlsZSgpOworICAgIGlubGluZSBib29sIHByb2Nlc3NFbnRpdHkoU2VnbWVudGVkU3Ry
aW5nJik7CiAKLSAgICBpbmxpbmUgYm9vbCBwcm9jZXNzRW50aXR5KFNlZ21lbnRlZFN0cmluZyYg
c291cmNlKTsKKyAgICBpbmxpbmUgdm9pZCBwYXJzZUVycm9yKCk7CisgICAgaW5saW5lIHZvaWQg
YnVmZmVyQ2hhcmFjdGVyKFVDaGFyKTsKKyAgICBpbmxpbmUgdm9pZCBidWZmZXJDb2RlUG9pbnQo
dW5zaWduZWQpOwogCisgICAgaW5saW5lIGJvb2wgZW1pdEFuZFJlc3VtZUluKFNlZ21lbnRlZFN0
cmluZyYsIFN0YXRlKTsKKyAgICBpbmxpbmUgYm9vbCBlbWl0QW5kUmVjb25zdW1lSW4oU2VnbWVu
dGVkU3RyaW5nJiwgU3RhdGUpOworICAgIGlubGluZSBib29sIGVtaXRFbmRPZkZpbGUoU2VnbWVu
dGVkU3RyaW5nJik7CisgICAgaW5saW5lIGJvb2wgZmx1c2hFbWl0QW5kUmVzdW1lSW4oU2VnbWVu
dGVkU3RyaW5nJiwgU3RhdGUpOworCisgICAgLy8gUmV0dXJuIHdoZXRoZXIgd2UgbmVlZCB0byBl
bWl0IGEgY2hhcmFjdGVyIHRva2VuIGJlZm9yZSBkZWFsaW5nIHdpdGgKKyAgICAvLyB0aGUgYnVm
ZmVyZWQgZW5kIHRhZy4KKyAgICBpbmxpbmUgYm9vbCBmbHVzaEJ1ZmZlcmVkRW5kVGFnKFNlZ21l
bnRlZFN0cmluZyYpOwogICAgIGlubGluZSBib29sIHRlbXBvcmFyeUJ1ZmZlcklzKGNvbnN0IFN0
cmluZyYpOwogCiAgICAgLy8gU29tZXRpbWVzIHdlIHNwZWN1bGF0aXZlbHkgY29uc3VtZSBpbnB1
dCBjaGFyYWN0ZXJzIGFuZCB3ZSBkb24ndAogICAgIC8vIGtub3cgd2hldGhlciB0aGV5IHJlcHJl
c2VudCBlbmQgdGFncyBvciBSQ0RBVEEsIGV0Yy4gIFRoZXNlCiAgICAgLy8gZnVuY3Rpb25zIGhl
bHAgbWFuYWdlIHRoZXNlIHN0YXRlLgogICAgIGlubGluZSB2b2lkIGFkZFRvUG9zc2libGVFbmRU
YWcoVUNoYXIgY2MpOworICAgIGlubGluZSB2b2lkIHNhdmVFbmRUYWdOYW1lSWZOZWVkZWQoKTsK
ICAgICBpbmxpbmUgYm9vbCBpc0FwcHJvcHJpYXRlRW5kVGFnKCk7CiAKICAgICBpbmxpbmUgYm9v
bCBzaG91bGRFbWl0QnVmZmVyZWRDaGFyYWN0ZXJUb2tlbihjb25zdCBTZWdtZW50ZWRTdHJpbmcm
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>