<?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>162516</bug_id>
          
          <creation_ts>2016-09-23 15:19:02 -0700</creation_ts>
          <short_desc>Refactor URLParser</short_desc>
          <delta_ts>2016-09-23 15:34:56 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1233012</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-23 15:19:02 -0700</bug_when>
    <thetext>Refactor URLParser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233013</commentid>
    <comment_count>1</comment_count>
      <attachid>289714</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-23 15:21:34 -0700</bug_when>
    <thetext>Created attachment 289714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233014</commentid>
    <comment_count>2</comment_count>
      <attachid>289714</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-09-23 15:26:14 -0700</bug_when>
    <thetext>Comment on attachment 289714
Patch

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

&gt; Source/WebCore/platform/URLParser.cpp:432
&gt; -    return *iterator == &apos;:&apos; || *iterator == &apos;|&apos;;
&gt; +    if (*iterator == &apos;:&apos;)
&gt; +        return true;
&gt; +    if (*iterator == &apos;|&apos;)
&gt; +        return true;
&gt; +    return false;

Why this change? Was fine the old way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233017</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-23 15:33:19 -0700</bug_when>
    <thetext>That change will be needed soon.  One is a syntax error and one is not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233018</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-23 15:34:56 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/206334</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289714</attachid>
            <date>2016-09-23 15:21:34 -0700</date>
            <delta_ts>2016-09-23 15:26:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162516-20160923151842.patch</filename>
            <type>text/plain</type>
            <size>33134</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjMyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE2LTA5LTIzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVmYWN0b3Ig
VVJMUGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjI1MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUdXJuIG1vcmUgc3RhdGljIGZ1bmN0aW9ucyBpbnRvIG1ldGhvZHMsIHVzZSBhIGhlbHBlciBm
dW5jdGlvbiB0byBhcHBlbmQgY2hhcmFjdGVycyB0byBhIGJ1ZmZlci4KKworICAgICAgICBObyBj
aGFuZ2UgaW4gYmVoYXZpb3IsIGJ1dCBJIGFkZGVkIGEgbmV3IEFQSSB0ZXN0IHRvIGNvdmVyIGFu
IGludGVyZXN0aW5nIAorICAgICAgICBpcHY2IGFkZHJlc3MgcGFyc2luZyBjYXNlIHRoYXQgaGFk
IG5vIGNvdmVyYWdlLgorCisgICAgICAgICogcGxhdGZvcm0vVVJMUGFyc2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvZGVQb2ludEl0ZXJhdG9yOjpjb2RlVW5pdHNTaW5jZSk6CisgICAgICAg
IChXZWJDb3JlOjpVUkxQYXJzZXI6OmlzV2luZG93c0RyaXZlTGV0dGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlVSTFBhcnNlcjo6YXBwZW5kVG9BU0NJSUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpVUkxQYXJzZXI6OmNoZWNrV2luZG93c0RyaXZlTGV0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlVSTFBhcnNlcjo6cGVyY2VudEVuY29kZUJ5dGUpOgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFy
c2VyOjp1dGY4UGVyY2VudEVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6OnV0
ZjhRdWVyeUVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6OmVuY29kZVF1ZXJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OlVSTFBhcnNlcjo6Y29weUFTQ0lJU3RyaW5nVW50aWwpOgor
ICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjpjb3B5VVJMUGFydHNVbnRpbCk6CisgICAgICAg
IChXZWJDb3JlOjpVUkxQYXJzZXI6OlVSTFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpVUkxQ
YXJzZXI6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTFBhcnNlcjo6cGFyc2VBdXRob3Jp
dHkpOgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjpwYXJzZVBvcnQpOgorICAgICAgICAo
V2ViQ29yZTo6VVJMUGFyc2VyOjpwYXJzZUhvc3RBbmRQb3J0KToKKyAgICAgICAgKFdlYkNvcmU6
OnV0ZjhQZXJjZW50RW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnV0ZjhRdWVy
eUVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjplbmNvZGVRdWVyeSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpjb3B5QVNDSUlTdHJpbmdVbnRpbCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vVVJMUGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJz
ZXI6OmFwcGVuZFRvQVNDSUlCdWZmZXIpOgorCiAyMDE2LTA5LTIzICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVmYWN0b3IgVVJMUGFyc2Vy
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5jcHAJKHJldmlzaW9uIDIwNjMy
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTcyLDYgKzcyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fYmVnaW4gPj0g
bV9lbmQ7CiAgICAgfQogICAgIAorICAgIHNpemVfdCBjb2RlVW5pdHNTaW5jZShjb25zdCBDaGFy
YWN0ZXJUeXBlKiByZWZlcmVuY2UpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9iZWdp
biA+PSByZWZlcmVuY2UpOworICAgICAgICByZXR1cm4gbV9iZWdpbiAtIHJlZmVyZW5jZTsKKyAg
ICB9CisgICAgCiBwcml2YXRlOgogICAgIGNvbnN0IENoYXJhY3RlclR5cGUqIG1fYmVnaW4geyBu
dWxscHRyIH07CiAgICAgY29uc3QgQ2hhcmFjdGVyVHlwZSogbV9lbmQgeyBudWxscHRyIH07CkBA
IC00MTksNyArNDI1LDExIEBAIGJvb2wgVVJMUGFyc2VyOjppc1dpbmRvd3NEcml2ZUxldHRlcihD
b2QKICAgICBpbmNyZW1lbnRJdGVyYXRvclNraXBwaW5nVGFiQW5kTmV3TGluZShpdGVyYXRvcik7
CiAgICAgaWYgKGl0ZXJhdG9yLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBy
ZXR1cm4gKml0ZXJhdG9yID09ICc6JyB8fCAqaXRlcmF0b3IgPT0gJ3wnOworICAgIGlmICgqaXRl
cmF0b3IgPT0gJzonKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoKml0ZXJhdG9yID09
ICd8JykKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBpbmxp
bmUgc3RhdGljIGJvb2wgaXNXaW5kb3dzRHJpdmVMZXR0ZXIoY29uc3QgVmVjdG9yPExDaGFyPiYg
YnVmZmVyLCBzaXplX3QgaW5kZXgpCkBAIC00MjksMTYgKzQzOSwyOCBAQCBpbmxpbmUgc3RhdGlj
IGJvb2wgaXNXaW5kb3dzRHJpdmVMZXR0ZXIoCiAgICAgcmV0dXJuIGlzQVNDSUlBbHBoYShidWZm
ZXJbaW5kZXhdKSAmJiAoYnVmZmVyW2luZGV4ICsgMV0gPT0gJzonIHx8IGJ1ZmZlcltpbmRleCAr
IDFdID09ICd8Jyk7CiB9CiAKK3ZvaWQgVVJMUGFyc2VyOjphcHBlbmRUb0FTQ0lJQnVmZmVyKFVD
aGFyMzIgY29kZVBvaW50KQoreworICAgIEFTU0VSVChtX3VuaWNvZGVGcmFnbWVudEJ1ZmZlci5p
c0VtcHR5KCkpOworICAgIEFTU0VSVChpc0FTQ0lJKGNvZGVQb2ludCkpOworICAgIG1fYXNjaWlC
dWZmZXIuYXBwZW5kKGNvZGVQb2ludCk7Cit9CisKK3ZvaWQgVVJMUGFyc2VyOjphcHBlbmRUb0FT
Q0lJQnVmZmVyKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHNpemVfdCBsZW5ndGgpCit7CisgICAg
QVNTRVJUKG1fdW5pY29kZUZyYWdtZW50QnVmZmVyLmlzRW1wdHkoKSk7CisgICAgbV9hc2NpaUJ1
ZmZlci5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4KLXZvaWQgVVJMUGFyc2VyOjpjaGVja1dpbmRvd3NEcml2ZUxldHRlcihD
b2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiYgaXRlcmF0b3IsIFZlY3RvcjxMQ2hhcj4m
IGFzY2lpQnVmZmVyKQordm9pZCBVUkxQYXJzZXI6OmNoZWNrV2luZG93c0RyaXZlTGV0dGVyKENv
ZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+JiBpdGVyYXRvcikKIHsKICAgICBpZiAoaXNX
aW5kb3dzRHJpdmVMZXR0ZXIoaXRlcmF0b3IpKSB7Ci0gICAgICAgIGFzY2lpQnVmZmVyLnJlc2Vy
dmVDYXBhY2l0eShhc2NpaUJ1ZmZlci5zaXplKCkgKyAyKTsKLSAgICAgICAgYXNjaWlCdWZmZXIu
dW5jaGVja2VkQXBwZW5kKCppdGVyYXRvcik7CisgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIo
Kml0ZXJhdG9yKTsKICAgICAgICAgaW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xp
bmUoaXRlcmF0b3IpOwogICAgICAgICBBU1NFUlQoIWl0ZXJhdG9yLmF0RW5kKCkpOwogICAgICAg
ICBBU1NFUlQoKml0ZXJhdG9yID09ICc6JyB8fCAqaXRlcmF0b3IgPT0gJ3wnKTsKLSAgICAgICAg
YXNjaWlCdWZmZXIudW5jaGVja2VkQXBwZW5kKCc6Jyk7CisgICAgICAgIGFwcGVuZFRvQVNDSUlC
dWZmZXIoJzonKTsKICAgICAgICAgaW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xp
bmUoaXRlcmF0b3IpOwogICAgIH0KIH0KQEAgLTQ2NiwyMiArNDg4LDMwIEBAIGlubGluZSBzdGF0
aWMgdm9pZCBwZXJjZW50RW5jb2RlQnl0ZSh1aW4KICAgICBidWZmZXIuYXBwZW5kKGxvd2VyTmli
YmxlVG9BU0NJSUhleERpZ2l0KGJ5dGUpKTsKIH0KIAotY29uc3QgY2hhciogcmVwbGFjZW1lbnRD
aGFyYWN0ZXJVVEY4UGVyY2VudEVuY29kZWQgPSAiJUVGJUJGJUJEIjsKLWNvbnN0IHNpemVfdCBy
ZXBsYWNlbWVudENoYXJhY3RlclVURjhQZXJjZW50RW5jb2RlZExlbmd0aCA9IDk7Cit2b2lkIFVS
TFBhcnNlcjo6cGVyY2VudEVuY29kZUJ5dGUodWludDhfdCBieXRlKQoreworICAgIGFwcGVuZFRv
QVNDSUlCdWZmZXIoJyUnKTsKKyAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKHVwcGVyTmliYmxlVG9B
U0NJSUhleERpZ2l0KGJ5dGUpKTsKKyAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKGxvd2VyTmliYmxl
VG9BU0NJSUhleERpZ2l0KGJ5dGUpKTsKK30KIAotaW5saW5lIHN0YXRpYyB2b2lkIHV0ZjhQZXJj
ZW50RW5jb2RlKFVDaGFyMzIgY29kZVBvaW50LCBWZWN0b3I8TENoYXI+JiBkZXN0aW5hdGlvbiwg
Ym9vbCgqaXNJbkNvZGVTZXQpKFVDaGFyMzIpKQorY29uc3QgY2hhciByZXBsYWNlbWVudENoYXJh
Y3RlclVURjhQZXJjZW50RW5jb2RlZFsxMF0gPSAiJUVGJUJGJUJEIjsKK2NvbnN0IHNpemVfdCBy
ZXBsYWNlbWVudENoYXJhY3RlclVURjhQZXJjZW50RW5jb2RlZExlbmd0aCA9IHNpemVvZihyZXBs
YWNlbWVudENoYXJhY3RlclVURjhQZXJjZW50RW5jb2RlZCkgLSAxOworCit0ZW1wbGF0ZTxib29s
KCppc0luQ29kZVNldCkoVUNoYXIzMik+Cit2b2lkIFVSTFBhcnNlcjo6dXRmOFBlcmNlbnRFbmNv
ZGUoVUNoYXIzMiBjb2RlUG9pbnQpCiB7CiAgICAgaWYgKGlzQVNDSUkoY29kZVBvaW50KSkgewog
ICAgICAgICBpZiAoaXNJbkNvZGVTZXQoY29kZVBvaW50KSkKLSAgICAgICAgICAgIHBlcmNlbnRF
bmNvZGVCeXRlKGNvZGVQb2ludCwgZGVzdGluYXRpb24pOworICAgICAgICAgICAgcGVyY2VudEVu
Y29kZUJ5dGUoY29kZVBvaW50KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZGVzdGluYXRp
b24uYXBwZW5kKGNvZGVQb2ludCk7CisgICAgICAgICAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKGNv
ZGVQb2ludCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RShpc0luQ29kZVNldChjb2RlUG9pbnQpLCAiaXNJbkNvZGVTZXQgc2hvdWxkIGFsd2F5cyByZXR1
cm4gdHJ1ZSBmb3Igbm9uLUFTQ0lJIGNoYXJhY3RlcnMiKTsKICAgICAKICAgICBpZiAoIVVfSVNf
VU5JQ09ERV9DSEFSKGNvZGVQb2ludCkpIHsKLSAgICAgICAgZGVzdGluYXRpb24uYXBwZW5kKHJl
cGxhY2VtZW50Q2hhcmFjdGVyVVRGOFBlcmNlbnRFbmNvZGVkLCByZXBsYWNlbWVudENoYXJhY3Rl
clVURjhQZXJjZW50RW5jb2RlZExlbmd0aCk7CisgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIo
cmVwbGFjZW1lbnRDaGFyYWN0ZXJVVEY4UGVyY2VudEVuY29kZWQsIHJlcGxhY2VtZW50Q2hhcmFj
dGVyVVRGOFBlcmNlbnRFbmNvZGVkTGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICAKQEAgLTQ4OSwyMSArNTE5LDIyIEBAIGlubGluZSBzdGF0aWMgdm9pZCB1dGY4UGVyY2VudEVu
Y29kZShVQ2gKICAgICBpbnQzMl90IG9mZnNldCA9IDA7CiAgICAgVThfQVBQRU5EX1VOU0FGRShi
dWZmZXIsIG9mZnNldCwgY29kZVBvaW50KTsKICAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBv
ZmZzZXQ7ICsraSkKLSAgICAgICAgcGVyY2VudEVuY29kZUJ5dGUoYnVmZmVyW2ldLCBkZXN0aW5h
dGlvbik7CisgICAgICAgIHBlcmNlbnRFbmNvZGVCeXRlKGJ1ZmZlcltpXSk7CiB9CiAKLWlubGlu
ZSBzdGF0aWMgdm9pZCB1dGY4UXVlcnlFbmNvZGUoVUNoYXIzMiBjb2RlUG9pbnQsIFZlY3RvcjxM
Q2hhcj4mIGRlc3RpbmF0aW9uKQorCit2b2lkIFVSTFBhcnNlcjo6dXRmOFF1ZXJ5RW5jb2RlKFVD
aGFyMzIgY29kZVBvaW50KQogewogICAgIGlmIChpc0FTQ0lJKGNvZGVQb2ludCkpIHsKICAgICAg
ICAgaWYgKHNob3VsZFBlcmNlbnRFbmNvZGVRdWVyeUJ5dGUoY29kZVBvaW50KSkKLSAgICAgICAg
ICAgIHBlcmNlbnRFbmNvZGVCeXRlKGNvZGVQb2ludCwgZGVzdGluYXRpb24pOworICAgICAgICAg
ICAgcGVyY2VudEVuY29kZUJ5dGUoY29kZVBvaW50KTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZGVzdGluYXRpb24uYXBwZW5kKGNvZGVQb2ludCk7CisgICAgICAgICAgICBhcHBlbmRUb0FT
Q0lJQnVmZmVyKGNvZGVQb2ludCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAg
aWYgKCFVX0lTX1VOSUNPREVfQ0hBUihjb2RlUG9pbnQpKSB7Ci0gICAgICAgIGRlc3RpbmF0aW9u
LmFwcGVuZChyZXBsYWNlbWVudENoYXJhY3RlclVURjhQZXJjZW50RW5jb2RlZCwgcmVwbGFjZW1l
bnRDaGFyYWN0ZXJVVEY4UGVyY2VudEVuY29kZWRMZW5ndGgpOworICAgICAgICBhcHBlbmRUb0FT
Q0lJQnVmZmVyKHJlcGxhY2VtZW50Q2hhcmFjdGVyVVRGOFBlcmNlbnRFbmNvZGVkLCByZXBsYWNl
bWVudENoYXJhY3RlclVURjhQZXJjZW50RW5jb2RlZExlbmd0aCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTUxMywxMyArNTQ0LDEzIEBAIGlubGluZSBzdGF0aWMgdm9pZCB1dGY4UXVl
cnlFbmNvZGUoVUNoYXIKICAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBvZmZzZXQ7ICsraSkg
ewogICAgICAgICBhdXRvIGJ5dGUgPSBidWZmZXJbaV07CiAgICAgICAgIGlmIChzaG91bGRQZXJj
ZW50RW5jb2RlUXVlcnlCeXRlKGJ5dGUpKQotICAgICAgICAgICAgcGVyY2VudEVuY29kZUJ5dGUo
Ynl0ZSwgZGVzdGluYXRpb24pOworICAgICAgICAgICAgcGVyY2VudEVuY29kZUJ5dGUoYnl0ZSk7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRlc3RpbmF0aW9uLmFwcGVuZChieXRlKTsKKyAg
ICAgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIoYnl0ZSk7CiAgICAgfQogfQogICAgIAotaW5s
aW5lIHN0YXRpYyB2b2lkIGVuY29kZVF1ZXJ5KGNvbnN0IFZlY3RvcjxVQ2hhcj4mIHNvdXJjZSwg
VmVjdG9yPExDaGFyPiYgZGVzdGluYXRpb24sIGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2Rpbmcp
Cit2b2lkIFVSTFBhcnNlcjo6ZW5jb2RlUXVlcnkoY29uc3QgVmVjdG9yPFVDaGFyPiYgc291cmNl
LCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQogewogICAgIC8vIEZJWE1FOiBJdCBpcyB1
bmNsZWFyIGluIHRoZSBzcGVjIHdoYXQgdG8gZG8gd2hlbiBlbmNvZGluZyBmYWlscy4gVGhlIGJl
aGF2aW9yIHNob3VsZCBiZSBzcGVjaWZpZWQgYW5kIHRlc3RlZC4KICAgICBDU3RyaW5nIGVuY29k
ZWQgPSBlbmNvZGluZy5lbmNvZGUoU3RyaW5nVmlldyhzb3VyY2UuZGF0YSgpLCBzb3VyY2Uuc2l6
ZSgpKSwgVVJMRW5jb2RlZEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsKQEAgLTUyOCw5ICs1NTks
OSBAQCBpbmxpbmUgc3RhdGljIHZvaWQgZW5jb2RlUXVlcnkoY29uc3QgVmVjCiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICB1aW50OF90IGJ5dGUgPSBk
YXRhW2ldOwogICAgICAgICBpZiAoc2hvdWxkUGVyY2VudEVuY29kZVF1ZXJ5Qnl0ZShieXRlKSkK
LSAgICAgICAgICAgIHBlcmNlbnRFbmNvZGVCeXRlKGJ5dGUsIGRlc3RpbmF0aW9uKTsKKyAgICAg
ICAgICAgIHBlcmNlbnRFbmNvZGVCeXRlKGJ5dGUpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBkZXN0aW5hdGlvbi5hcHBlbmQoYnl0ZSk7CisgICAgICAgICAgICBhcHBlbmRUb0FTQ0lJQnVm
ZmVyKGJ5dGUpOwogICAgIH0KIH0KIApAQCAtNjg5LDI1ICs3MjAsMjQgQEAgc2l6ZV90IFVSTFBh
cnNlcjo6dXJsTGVuZ3RoVW50aWxQYXJ0KGNvbgogICAgIHJldHVybiAwOwogfQogCi1pbmxpbmUg
c3RhdGljIHZvaWQgY29weUFTQ0lJU3RyaW5nVW50aWwoVmVjdG9yPExDaGFyPiYgZGVzdGluYXRp
b24sIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBzaXplX3QgbGVuZ3RoSWY4Qml0LCBzaXplX3QgbGVu
Z3RoSWYxNkJpdCkKK3ZvaWQgVVJMUGFyc2VyOjpjb3B5QVNDSUlTdHJpbmdVbnRpbChjb25zdCBT
dHJpbmcmIHN0cmluZywgc2l6ZV90IGxlbmd0aElmOEJpdCwgc2l6ZV90IGxlbmd0aElmMTZCaXQp
CiB7CiAgICAgaWYgKHN0cmluZy5pc051bGwoKSkgewogICAgICAgICBBU1NFUlQoIWxlbmd0aElm
OEJpdCk7CiAgICAgICAgIEFTU0VSVCghbGVuZ3RoSWYxNkJpdCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgQVNTRVJUKGRlc3RpbmF0aW9uLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKG1f
YXNjaWlCdWZmZXIuaXNFbXB0eSgpKTsKICAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKSB7CiAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKGxlbmd0aElmOEJpdCA8PSBzdHJpbmcubGVuZ3RoKCkpOwotICAg
ICAgICBkZXN0aW5hdGlvbi5hcHBlbmQoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGxlbmd0aElmOEJp
dCk7CisgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIoc3RyaW5nLmNoYXJhY3RlcnM4KCksIGxl
bmd0aElmOEJpdCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQobGVuZ3Ro
SWYxNkJpdCA8PSBzdHJpbmcubGVuZ3RoKCkpOwotICAgICAgICBkZXN0aW5hdGlvbi5yZXNlcnZl
Q2FwYWNpdHkobGVuZ3RoSWYxNkJpdCk7CiAgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJz
ID0gc3RyaW5nLmNoYXJhY3RlcnMxNigpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGxlbmd0aElmMTZCaXQ7ICsraSkgewogICAgICAgICAgICAgVUNoYXIgYyA9IGNoYXJhY3RlcnNb
aV07CiAgICAgICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0FTQ0lJ
KGMpKTsKLSAgICAgICAgICAgIGRlc3RpbmF0aW9uLnVuY2hlY2tlZEFwcGVuZChjKTsKKyAgICAg
ICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIoYyk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC03
MTcsNyArNzQ3LDcgQEAgdm9pZCBVUkxQYXJzZXI6OmNvcHlVUkxQYXJ0c1VudGlsKGNvbnN0IAog
ICAgIG1fYXNjaWlCdWZmZXIuY2xlYXIoKTsKICAgICBtX3VuaWNvZGVGcmFnbWVudEJ1ZmZlci5j
bGVhcigpOwogICAgIGlmIChwYXJ0ID09IFVSTFBhcnQ6OkZyYWdtZW50RW5kKSB7Ci0gICAgICAg
IGNvcHlBU0NJSVN0cmluZ1VudGlsKG1fYXNjaWlCdWZmZXIsIGJhc2UubV9zdHJpbmcsIHVybExl
bmd0aFVudGlsUGFydChiYXNlLCBVUkxQYXJ0OjpGcmFnbWVudEVuZCksIHVybExlbmd0aFVudGls
UGFydChiYXNlLCBVUkxQYXJ0OjpRdWVyeUVuZCkpOworICAgICAgICBjb3B5QVNDSUlTdHJpbmdV
bnRpbChiYXNlLm1fc3RyaW5nLCB1cmxMZW5ndGhVbnRpbFBhcnQoYmFzZSwgVVJMUGFydDo6RnJh
Z21lbnRFbmQpLCB1cmxMZW5ndGhVbnRpbFBhcnQoYmFzZSwgVVJMUGFydDo6UXVlcnlFbmQpKTsK
ICAgICAgICAgaWYgKCFiYXNlLm1fc3RyaW5nLmlzOEJpdCgpKSB7CiAgICAgICAgICAgICBjb25z
dCBTdHJpbmcmIGZyYWdtZW50ID0gYmFzZS5tX3N0cmluZzsKICAgICAgICAgICAgIGJvb2wgc2Vl
blVuaWNvZGUgPSBmYWxzZTsKQEAgLTczMiw3ICs3NjIsNyBAQCB2b2lkIFVSTFBhcnNlcjo6Y29w
eVVSTFBhcnRzVW50aWwoY29uc3QgCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBz
aXplX3QgbGVuZ3RoID0gdXJsTGVuZ3RoVW50aWxQYXJ0KGJhc2UsIHBhcnQpOwotICAgICAgICBj
b3B5QVNDSUlTdHJpbmdVbnRpbChtX2FzY2lpQnVmZmVyLCBiYXNlLm1fc3RyaW5nLCBsZW5ndGgs
IGxlbmd0aCk7CisgICAgICAgIGNvcHlBU0NJSVN0cmluZ1VudGlsKGJhc2UubV9zdHJpbmcsIGxl
bmd0aCwgbGVuZ3RoKTsKICAgICB9CiAgICAgc3dpdGNoIChwYXJ0KSB7CiAgICAgY2FzZSBVUkxQ
YXJ0OjpGcmFnbWVudEVuZDoKQEAgLTkwNyw2ICs5MzcsNyBAQCBVUkxQYXJzZXI6OlVSTFBhcnNl
cihjb25zdCBTdHJpbmcmIGlucHV0CiB7CiAgICAgaWYgKGlucHV0LmlzTnVsbCgpKQogICAgICAg
ICByZXR1cm47CisKICAgICBpZiAoaW5wdXQuaXM4Qml0KCkpCiAgICAgICAgIHBhcnNlKGlucHV0
LmNoYXJhY3RlcnM4KCksIGlucHV0Lmxlbmd0aCgpLCBiYXNlLCBlbmNvZGluZyk7CiAgICAgZWxz
ZQpAQCAtOTg0LDcgKzEwMTUsNyBAQCB2b2lkIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFj
dGVyVHlwCiAgICAgICAgIGNhc2UgU3RhdGU6OlNjaGVtZToKICAgICAgICAgICAgIExPR19TVEFU
RSgiU2NoZW1lIik7CiAgICAgICAgICAgICBpZiAoaXNWYWxpZFNjaGVtZUNoYXJhY3RlcigqYykp
Ci0gICAgICAgICAgICAgICAgbV9hc2NpaUJ1ZmZlci5hcHBlbmQodG9BU0NJSUxvd2VyKCpjKSk7
CisgICAgICAgICAgICAgICAgYXBwZW5kVG9BU0NJSUJ1ZmZlcih0b0FTQ0lJTG93ZXIoKmMpKTsK
ICAgICAgICAgICAgIGVsc2UgaWYgKCpjID09ICc6JykgewogICAgICAgICAgICAgICAgIG1fdXJs
Lm1fc2NoZW1lRW5kID0gbV9hc2NpaUJ1ZmZlci5zaXplKCk7CiAgICAgICAgICAgICAgICAgU3Ry
aW5nVmlldyB1cmxTY2hlbWUgPSBTdHJpbmdWaWV3KG1fYXNjaWlCdWZmZXIuZGF0YSgpLCBtX3Vy
bC5tX3NjaGVtZUVuZCk7CkBAIC05OTIsMTEgKzEwMjMsMTEgQEAgdm9pZCBVUkxQYXJzZXI6OnBh
cnNlKGNvbnN0IENoYXJhY3RlclR5cAogICAgICAgICAgICAgICAgIGlmICh1cmxTY2hlbWUgPT0g
ImZpbGUiKSB7CiAgICAgICAgICAgICAgICAgICAgIG1fdXJsSXNTcGVjaWFsID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZTo6RmlsZTsKLSAgICAgICAgICAgICAgICAg
ICAgbV9hc2NpaUJ1ZmZlci5hcHBlbmQoJzonKTsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5k
VG9BU0NJSUJ1ZmZlcignOicpOwogICAgICAgICAgICAgICAgICAgICArK2M7CiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBtX2Fz
Y2lpQnVmZmVyLmFwcGVuZCgnOicpOworICAgICAgICAgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZm
ZXIoJzonKTsKICAgICAgICAgICAgICAgICBpZiAoaXNTcGVjaWFsU2NoZW1lKHVybFNjaGVtZSkp
IHsKICAgICAgICAgICAgICAgICAgICAgbV91cmxJc1NwZWNpYWwgPSB0cnVlOwogICAgICAgICAg
ICAgICAgICAgICBpZiAoYmFzZS5wcm90b2NvbElzKG1fYXNjaWlCdWZmZXIuZGF0YSgpLCBtX2Fz
Y2lpQnVmZmVyLnNpemUoKSAtIDEpKQpAQCAtMTAwNyw3ICsxMDM4LDcgQEAgdm9pZCBVUkxQYXJz
ZXI6OnBhcnNlKGNvbnN0IENoYXJhY3RlclR5cAogICAgICAgICAgICAgICAgICAgICBhdXRvIG1h
eWJlU2xhc2ggPSBjOwogICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRJdGVyYXRvclNraXBw
aW5nVGFiQW5kTmV3TGluZShtYXliZVNsYXNoKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFt
YXliZVNsYXNoLmF0RW5kKCkgJiYgKm1heWJlU2xhc2ggPT0gJy8nKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZCgnLycpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYXBwZW5kVG9BU0NJSUJ1ZmZlcignLycpOwogICAgICAgICAgICAgICAgICAgICAgICAg
bV91cmwubV91c2VyU3RhcnQgPSBtX2FzY2lpQnVmZmVyLnNpemUoKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXRlID0gU3RhdGU6OlBhdGhPckF1dGhvcml0eTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGMgPSBtYXliZVNsYXNoOwpAQCAtMTA0Nyw3ICsxMDc4LDcgQEAgdm9pZCBVUkxQ
YXJzZXI6OnBhcnNlKGNvbnN0IENoYXJhY3RlclR5cAogICAgICAgICAgICAgaWYgKGJhc2UubV9j
YW5ub3RCZUFCYXNlVVJMICYmICpjID09ICcjJykgewogICAgICAgICAgICAgICAgIGNvcHlVUkxQ
YXJ0c1VudGlsKGJhc2UsIFVSTFBhcnQ6OlF1ZXJ5RW5kKTsKICAgICAgICAgICAgICAgICBzdGF0
ZSA9IFN0YXRlOjpGcmFnbWVudDsKLSAgICAgICAgICAgICAgICBtX2FzY2lpQnVmZmVyLmFwcGVu
ZCgnIycpOworICAgICAgICAgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIoJyMnKTsKICAgICAg
ICAgICAgICAgICArK2M7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBA
IC0xMDU2LDIwICsxMDg3LDIwIEBAIHZvaWQgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0
ZXJUeXAKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGNvcHlVUkxQYXJ0c1VudGlsKGJhc2UsIFVSTFBhcnQ6OlNjaGVtZUVuZCk7Ci0gICAgICAgICAg
ICBtX2FzY2lpQnVmZmVyLmFwcGVuZCgnOicpOworICAgICAgICAgICAgYXBwZW5kVG9BU0NJSUJ1
ZmZlcignOicpOwogICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZTo6RmlsZTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIFN0YXRlOjpTcGVjaWFsUmVsYXRpdmVPckF1dGhvcml0eToK
ICAgICAgICAgICAgIExPR19TVEFURSgiU3BlY2lhbFJlbGF0aXZlT3JBdXRob3JpdHkiKTsKICAg
ICAgICAgICAgIGlmICgqYyA9PSAnLycpIHsKLSAgICAgICAgICAgICAgICBtX2FzY2lpQnVmZmVy
LmFwcGVuZCgnLycpOworICAgICAgICAgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIoJy8nKTsK
ICAgICAgICAgICAgICAgICBpbmNyZW1lbnRJdGVyYXRvclNraXBwaW5nVGFiQW5kTmV3TGluZShj
KTsKICAgICAgICAgICAgICAgICBpZiAoYy5hdEVuZCgpKSB7CiAgICAgICAgICAgICAgICAgICAg
IGZhaWx1cmUoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICBpZiAoKmMgPT0gJy8nKSB7Ci0gICAgICAgICAgICAgICAgICAg
IG1fYXNjaWlCdWZmZXIuYXBwZW5kKCcvJyk7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZFRv
QVNDSUlCdWZmZXIoJy8nKTsKICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZTo6U3Bl
Y2lhbEF1dGhvcml0eUlnbm9yZVNsYXNoZXM7CiAgICAgICAgICAgICAgICAgICAgICsrYzsKICAg
ICAgICAgICAgICAgICB9IGVsc2UKQEAgLTEwODAsNyArMTExMSw3IEBAIHZvaWQgVVJMUGFyc2Vy
OjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXAKICAgICAgICAgY2FzZSBTdGF0ZTo6UGF0aE9yQXV0
aG9yaXR5OgogICAgICAgICAgICAgTE9HX1NUQVRFKCJQYXRoT3JBdXRob3JpdHkiKTsKICAgICAg
ICAgICAgIGlmICgqYyA9PSAnLycpIHsKLSAgICAgICAgICAgICAgICBtX2FzY2lpQnVmZmVyLmFw
cGVuZCgnLycpOworICAgICAgICAgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIoJy8nKTsKICAg
ICAgICAgICAgICAgICBtX3VybC5tX3VzZXJTdGFydCA9IG1fYXNjaWlCdWZmZXIuc2l6ZSgpOwog
ICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGU6OkF1dGhvcml0eU9ySG9zdDsKICAgICAgICAg
ICAgICAgICArK2M7CkBAIC0xMTA2LDEzICsxMTM3LDEzIEBAIHZvaWQgVVJMUGFyc2VyOjpwYXJz
ZShjb25zdCBDaGFyYWN0ZXJUeXAKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGNhc2UgJz8nOgogICAgICAgICAgICAgICAgIGNvcHlVUkxQYXJ0c1VudGlsKGJhc2UsIFVSTFBh
cnQ6OlBhdGhFbmQpOwotICAgICAgICAgICAgICAgIG1fYXNjaWlCdWZmZXIuYXBwZW5kKCc/Jyk7
CisgICAgICAgICAgICAgICAgYXBwZW5kVG9BU0NJSUJ1ZmZlcignPycpOwogICAgICAgICAgICAg
ICAgIHN0YXRlID0gU3RhdGU6OlF1ZXJ5OwogICAgICAgICAgICAgICAgICsrYzsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgJyMnOgogICAgICAgICAgICAgICAgIGNv
cHlVUkxQYXJ0c1VudGlsKGJhc2UsIFVSTFBhcnQ6OlF1ZXJ5RW5kKTsKLSAgICAgICAgICAgICAg
ICBtX2FzY2lpQnVmZmVyLmFwcGVuZCgnIycpOworICAgICAgICAgICAgICAgIGFwcGVuZFRvQVND
SUlCdWZmZXIoJyMnKTsKICAgICAgICAgICAgICAgICBzdGF0ZSA9IFN0YXRlOjpGcmFnbWVudDsK
ICAgICAgICAgICAgICAgICArK2M7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMTI3LDE4
ICsxMTU4LDE4IEBAIHZvaWQgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXAKICAg
ICAgICAgICAgIGlmICgqYyA9PSAnLycgfHwgKmMgPT0gJ1xcJykgewogICAgICAgICAgICAgICAg
ICsrYzsKICAgICAgICAgICAgICAgICBjb3B5VVJMUGFydHNVbnRpbChiYXNlLCBVUkxQYXJ0OjpT
Y2hlbWVFbmQpOwotICAgICAgICAgICAgICAgIG1fYXNjaWlCdWZmZXIuYXBwZW5kKCI6Ly8iLCAz
KTsKKyAgICAgICAgICAgICAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKCI6Ly8iLCAzKTsKICAgICAg
ICAgICAgICAgICBzdGF0ZSA9IFN0YXRlOjpTcGVjaWFsQXV0aG9yaXR5SWdub3JlU2xhc2hlczsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgY29weVVSTFBhcnRzVW50aWwo
YmFzZSwgVVJMUGFydDo6UG9ydEVuZCk7Ci0gICAgICAgICAgICAgICAgbV9hc2NpaUJ1ZmZlci5h
cHBlbmQoJy8nKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKCcvJyk7CiAg
ICAgICAgICAgICAgICAgbV91cmwubV9wYXRoQWZ0ZXJMYXN0U2xhc2ggPSBiYXNlLm1fcG9ydEVu
ZCArIDE7CiAgICAgICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZTo6UGF0aDsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFN0YXRlOjpTcGVjaWFsQXV0aG9y
aXR5U2xhc2hlczoKICAgICAgICAgICAgIExPR19TVEFURSgiU3BlY2lhbEF1dGhvcml0eVNsYXNo
ZXMiKTsKLSAgICAgICAgICAgIG1fYXNjaWlCdWZmZXIuYXBwZW5kKCIvLyIsIDIpOworICAgICAg
ICAgICAgYXBwZW5kVG9BU0NJSUJ1ZmZlcigiLy8iLCAyKTsKICAgICAgICAgICAgIGlmICgqYyA9
PSAnLycgfHwgKmMgPT0gJ1xcJykgewogICAgICAgICAgICAgICAgIGluY3JlbWVudEl0ZXJhdG9y
U2tpcHBpbmdUYWJBbmROZXdMaW5lKGMpOwogICAgICAgICAgICAgICAgIGlmICghYy5hdEVuZCgp
ICYmICgqYyA9PSAnLycgfHwgKmMgPT0gJ1xcJykpCkBAIC0xMTQ5LDcgKzExODAsNyBAQCB2b2lk
IFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFjdGVyVHlwCiAgICAgICAgIGNhc2UgU3RhdGU6
OlNwZWNpYWxBdXRob3JpdHlJZ25vcmVTbGFzaGVzOgogICAgICAgICAgICAgTE9HX1NUQVRFKCJT
cGVjaWFsQXV0aG9yaXR5SWdub3JlU2xhc2hlcyIpOwogICAgICAgICAgICAgaWYgKCpjID09ICcv
JyB8fCAqYyA9PSAnXFwnKSB7Ci0gICAgICAgICAgICAgICAgbV9hc2NpaUJ1ZmZlci5hcHBlbmQo
Jy8nKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKCcvJyk7CiAgICAgICAg
ICAgICAgICAgKytjOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbV91cmwubV91c2VyU3Rh
cnQgPSBtX2FzY2lpQnVmZmVyLnNpemUoKTsKQEAgLTExODQsNyArMTIxNSw3IEBAIHZvaWQgVVJM
UGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXAKICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBpZiAo
IWlzU2xhc2gpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fYXNjaWlCdWZmZXIuYXBwZW5k
KCcvJyk7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKCcvJyk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBtX3VybC5tX3BhdGhBZnRlckxhc3RTbGFzaCA9IG1f
YXNjaWlCdWZmZXIuc2l6ZSgpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgIHN0YXRlID0gU3RhdGU6OlBhdGg7CkBAIC0xMjE0LDE0ICsxMjQ1LDE0IEBAIHZvaWQg
VVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXAKICAgICAgICAgICAgIHN3aXRjaCAo
KmMpIHsKICAgICAgICAgICAgIGNhc2UgJy8nOgogICAgICAgICAgICAgY2FzZSAnXFwnOgotICAg
ICAgICAgICAgICAgIG1fYXNjaWlCdWZmZXIuYXBwZW5kKCcvJyk7CisgICAgICAgICAgICAgICAg
YXBwZW5kVG9BU0NJSUJ1ZmZlcignLycpOwogICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGU6
OkZpbGVTbGFzaDsKICAgICAgICAgICAgICAgICArK2M7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBjYXNlICc/JzoKICAgICAgICAgICAgICAgICBpZiAoYmFzZS5pc1ZhbGlk
KCkgJiYgYmFzZS5wcm90b2NvbElzKCJmaWxlIikpCiAgICAgICAgICAgICAgICAgICAgIGNvcHlV
UkxQYXJ0c1VudGlsKGJhc2UsIFVSTFBhcnQ6OlBhdGhFbmQpOwotICAgICAgICAgICAgICAgIG1f
YXNjaWlCdWZmZXIuYXBwZW5kKCIvLy8/IiwgNCk7CisgICAgICAgICAgICAgICAgYXBwZW5kVG9B
U0NJSUJ1ZmZlcigiLy8vPyIsIDQpOwogICAgICAgICAgICAgICAgIG1fdXJsLm1fdXNlclN0YXJ0
ID0gbV9hc2NpaUJ1ZmZlci5zaXplKCkgLSAyOwogICAgICAgICAgICAgICAgIG1fdXJsLm1fdXNl
ckVuZCA9IG1fdXJsLm1fdXNlclN0YXJ0OwogICAgICAgICAgICAgICAgIG1fdXJsLm1fcGFzc3dv
cmRFbmQgPSBtX3VybC5tX3VzZXJTdGFydDsKQEAgLTEyMzUsNyArMTI2Niw3IEBAIHZvaWQgVVJM
UGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXAKICAgICAgICAgICAgIGNhc2UgJyMnOgog
ICAgICAgICAgICAgICAgIGlmIChiYXNlLmlzVmFsaWQoKSAmJiBiYXNlLnByb3RvY29sSXMoImZp
bGUiKSkKICAgICAgICAgICAgICAgICAgICAgY29weVVSTFBhcnRzVW50aWwoYmFzZSwgVVJMUGFy
dDo6UXVlcnlFbmQpOwotICAgICAgICAgICAgICAgIG1fYXNjaWlCdWZmZXIuYXBwZW5kKCIvLy8j
IiwgNCk7CisgICAgICAgICAgICAgICAgYXBwZW5kVG9BU0NJSUJ1ZmZlcigiLy8vIyIsIDQpOwog
ICAgICAgICAgICAgICAgIG1fdXJsLm1fdXNlclN0YXJ0ID0gbV9hc2NpaUJ1ZmZlci5zaXplKCkg
LSAyOwogICAgICAgICAgICAgICAgIG1fdXJsLm1fdXNlckVuZCA9IG1fdXJsLm1fdXNlclN0YXJ0
OwogICAgICAgICAgICAgICAgIG1fdXJsLm1fcGFzc3dvcmRFbmQgPSBtX3VybC5tX3VzZXJTdGFy
dDsKQEAgLTEyNTEsMTQgKzEyODIsMTQgQEAgdm9pZCBVUkxQYXJzZXI6OnBhcnNlKGNvbnN0IENo
YXJhY3RlclR5cAogICAgICAgICAgICAgICAgIGlmIChiYXNlLmlzVmFsaWQoKSAmJiBiYXNlLnBy
b3RvY29sSXMoImZpbGUiKSAmJiBzaG91bGRDb3B5RmlsZVVSTChjKSkKICAgICAgICAgICAgICAg
ICAgICAgY29weVVSTFBhcnRzVW50aWwoYmFzZSwgVVJMUGFydDo6UGF0aEFmdGVyTGFzdFNsYXNo
KTsKICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbV9hc2NpaUJ1
ZmZlci5hcHBlbmQoIi8vLyIsIDMpOworICAgICAgICAgICAgICAgICAgICBhcHBlbmRUb0FTQ0lJ
QnVmZmVyKCIvLy8iLCAzKTsKICAgICAgICAgICAgICAgICAgICAgbV91cmwubV91c2VyU3RhcnQg
PSBtX2FzY2lpQnVmZmVyLnNpemUoKSAtIDE7CiAgICAgICAgICAgICAgICAgICAgIG1fdXJsLm1f
dXNlckVuZCA9IG1fdXJsLm1fdXNlclN0YXJ0OwogICAgICAgICAgICAgICAgICAgICBtX3VybC5t
X3Bhc3N3b3JkRW5kID0gbV91cmwubV91c2VyU3RhcnQ7CiAgICAgICAgICAgICAgICAgICAgIG1f
dXJsLm1faG9zdEVuZCA9IG1fdXJsLm1fdXNlclN0YXJ0OwogICAgICAgICAgICAgICAgICAgICBt
X3VybC5tX3BvcnRFbmQgPSBtX3VybC5tX3VzZXJTdGFydDsKICAgICAgICAgICAgICAgICAgICAg
bV91cmwubV9wYXRoQWZ0ZXJMYXN0U2xhc2ggPSBtX3VybC5tX3VzZXJTdGFydCArIDE7Ci0gICAg
ICAgICAgICAgICAgICAgIGNoZWNrV2luZG93c0RyaXZlTGV0dGVyKGMsIG1fYXNjaWlCdWZmZXIp
OworICAgICAgICAgICAgICAgICAgICBjaGVja1dpbmRvd3NEcml2ZUxldHRlcihjKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZTo6UGF0aDsKICAgICAg
ICAgICAgICAgICBicmVhazsKQEAgLTEyNjgsNyArMTI5OSw3IEBAIHZvaWQgVVJMUGFyc2VyOjpw
YXJzZShjb25zdCBDaGFyYWN0ZXJUeXAKICAgICAgICAgICAgIExPR19TVEFURSgiRmlsZVNsYXNo
Iik7CiAgICAgICAgICAgICBpZiAoKmMgPT0gJy8nIHx8ICpjID09ICdcXCcpIHsKICAgICAgICAg
ICAgICAgICArK2M7Ci0gICAgICAgICAgICAgICAgbV9hc2NpaUJ1ZmZlci5hcHBlbmQoJy8nKTsK
KyAgICAgICAgICAgICAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKCcvJyk7CiAgICAgICAgICAgICAg
ICAgbV91cmwubV91c2VyU3RhcnQgPSBtX2FzY2lpQnVmZmVyLnNpemUoKTsKICAgICAgICAgICAg
ICAgICBtX3VybC5tX3VzZXJFbmQgPSBtX3VybC5tX3VzZXJTdGFydDsKICAgICAgICAgICAgICAg
ICBtX3VybC5tX3Bhc3N3b3JkRW5kID0gbV91cmwubV91c2VyU3RhcnQ7CkBAIC0xMjg2LDE5ICsx
MzE3LDE5IEBAIHZvaWQgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXAKICAgICAg
ICAgICAgICAgICAgICAgICAgID8gaXNXaW5kb3dzRHJpdmVMZXR0ZXIoQ29kZVBvaW50SXRlcmF0
b3I8TENoYXI+KGJhc2VQYXRoLmNoYXJhY3RlcnM4KCksIGJhc2VQYXRoLmNoYXJhY3RlcnM4KCkg
KyBiYXNlUGF0aC5sZW5ndGgoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzV2luZG93
c0RyaXZlTGV0dGVyKENvZGVQb2ludEl0ZXJhdG9yPFVDaGFyPihiYXNlUGF0aC5jaGFyYWN0ZXJz
MTYoKSwgYmFzZVBhdGguY2hhcmFjdGVyczE2KCkgKyBiYXNlUGF0aC5sZW5ndGgoKSkpOwogICAg
ICAgICAgICAgICAgICAgICBpZiAod2luZG93c1F1aXJrKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZChiYXNlUGF0aFswXSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZChiYXNlUGF0aFsxXSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKGJhc2VQYXRoWzBdKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIoYmFzZVBhdGhbMV0pOwogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgbV9hc2NpaUJ1ZmZlci5hcHBlbmQoIi8vIiwgMik7CisgICAgICAgICAgICBhcHBlbmRUb0FT
Q0lJQnVmZmVyKCIvLyIsIDIpOwogICAgICAgICAgICAgbV91cmwubV91c2VyU3RhcnQgPSBtX2Fz
Y2lpQnVmZmVyLnNpemUoKSAtIDE7CiAgICAgICAgICAgICBtX3VybC5tX3VzZXJFbmQgPSBtX3Vy
bC5tX3VzZXJTdGFydDsKICAgICAgICAgICAgIG1fdXJsLm1fcGFzc3dvcmRFbmQgPSBtX3VybC5t
X3VzZXJTdGFydDsKICAgICAgICAgICAgIG1fdXJsLm1faG9zdEVuZCA9IG1fdXJsLm1fdXNlclN0
YXJ0OwogICAgICAgICAgICAgbV91cmwubV9wb3J0RW5kID0gbV91cmwubV91c2VyU3RhcnQ7CiAg
ICAgICAgICAgICBtX3VybC5tX3BhdGhBZnRlckxhc3RTbGFzaCA9IG1fdXJsLm1fdXNlclN0YXJ0
ICsgMTsKLSAgICAgICAgICAgIGNoZWNrV2luZG93c0RyaXZlTGV0dGVyKGMsIG1fYXNjaWlCdWZm
ZXIpOworICAgICAgICAgICAgY2hlY2tXaW5kb3dzRHJpdmVMZXR0ZXIoYyk7CiAgICAgICAgICAg
ICBzdGF0ZSA9IFN0YXRlOjpQYXRoOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
U3RhdGU6OkZpbGVIb3N0OgpAQCAtMTMxMSw3ICsxMzQyLDcgQEAgdm9pZCBVUkxQYXJzZXI6OnBh
cnNlKGNvbnN0IENoYXJhY3RlclR5cAogICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHlPckhv
c3RCZWdpbiA9PSBjKSB7CiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChtX2FzY2lpQnVmZmVy
W21fYXNjaWlCdWZmZXIuc2l6ZSgpIC0gMV0gPT0gJy8nKTsKICAgICAgICAgICAgICAgICAgICAg
aWYgKCpjID09ICc/JykgewotICAgICAgICAgICAgICAgICAgICAgICAgbV9hc2NpaUJ1ZmZlci5h
cHBlbmQoIi8/IiwgMik7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUb0FTQ0lJQnVm
ZmVyKCIvPyIsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgbV91cmwubV9wYXRoQWZ0ZXJM
YXN0U2xhc2ggPSBtX2FzY2lpQnVmZmVyLnNpemUoKSAtIDE7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3VybC5tX3BhdGhFbmQgPSBtX3VybC5tX3BhdGhBZnRlckxhc3RTbGFzaDsKICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGU6OlF1ZXJ5OwpAQCAtMTMxOSw3ICsxMzUw
LDcgQEAgdm9pZCBVUkxQYXJzZXI6OnBhcnNlKGNvbnN0IENoYXJhY3RlclR5cAogICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgaWYgKCpjID09ICcjJykgewotICAgICAgICAgICAgICAgICAgICAgICAgbV9hc2Np
aUJ1ZmZlci5hcHBlbmQoIi8jIiwgMik7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRU
b0FTQ0lJQnVmZmVyKCIvIyIsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgbV91cmwubV9w
YXRoQWZ0ZXJMYXN0U2xhc2ggPSBtX2FzY2lpQnVmZmVyLnNpemUoKSAtIDE7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX3VybC5tX3BhdGhFbmQgPSBtX3VybC5tX3BhdGhBZnRlckxhc3RTbGFz
aDsKICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXJsLm1fcXVlcnlFbmQgPSBtX3VybC5tX3Bh
dGhBZnRlckxhc3RTbGFzaDsKQEAgLTEzNTcsNyArMTM4OCw3IEBAIHZvaWQgVVJMUGFyc2VyOjpw
YXJzZShjb25zdCBDaGFyYWN0ZXJUeXAKICAgICAgICAgY2FzZSBTdGF0ZTo6UGF0aDoKICAgICAg
ICAgICAgIExPR19TVEFURSgiUGF0aCIpOwogICAgICAgICAgICAgaWYgKCpjID09ICcvJyB8fCAo
bV91cmxJc1NwZWNpYWwgJiYgKmMgPT0gJ1xcJykpIHsKLSAgICAgICAgICAgICAgICBtX2FzY2lp
QnVmZmVyLmFwcGVuZCgnLycpOworICAgICAgICAgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIo
Jy8nKTsKICAgICAgICAgICAgICAgICBtX3VybC5tX3BhdGhBZnRlckxhc3RTbGFzaCA9IG1fYXNj
aWlCdWZmZXIuc2l6ZSgpOwogICAgICAgICAgICAgICAgICsrYzsKICAgICAgICAgICAgICAgICBi
cmVhazsKQEAgLTEzODUsNyArMTQxNiw3IEBAIHZvaWQgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBD
aGFyYWN0ZXJUeXAKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGlmIChpc1BlcmNlbnRFbmNvZGVkRG90KGMpKSB7Ci0gICAgICAgICAgICAgICAgbV9h
c2NpaUJ1ZmZlci5hcHBlbmQoJy4nKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRUb0FTQ0lJQnVm
ZmVyKCcuJyk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCpjID09ICclJyk7CiAgICAgICAgICAg
ICAgICAgKytjOwogICAgICAgICAgICAgICAgIEFTU0VSVCgqYyA9PSBkb3RBU0NJSUNvZGVbMF0p
OwpAQCAtMTM5NCw3ICsxNDI1LDcgQEAgdm9pZCBVUkxQYXJzZXI6OnBhcnNlKGNvbnN0IENoYXJh
Y3RlclR5cAogICAgICAgICAgICAgICAgICsrYzsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHV0ZjhQZXJjZW50RW5jb2RlKCpjLCBtX2FzY2lpQnVm
ZmVyLCBpc0luRGVmYXVsdEVuY29kZVNldCk7CisgICAgICAgICAgICB1dGY4UGVyY2VudEVuY29k
ZTxpc0luRGVmYXVsdEVuY29kZVNldD4oKmMpOwogICAgICAgICAgICAgKytjOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RhdGU6OkNhbm5vdEJlQUJhc2VVUkxQYXRoOgpAQCAt
MTQwNywxMSArMTQzOCwxMSBAQCB2b2lkIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFjdGVy
VHlwCiAgICAgICAgICAgICAgICAgbV91cmwubV9xdWVyeUVuZCA9IG1fdXJsLm1fcGF0aEVuZDsK
ICAgICAgICAgICAgICAgICBzdGF0ZSA9IFN0YXRlOjpGcmFnbWVudDsKICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoKmMgPT0gJy8nKSB7Ci0gICAgICAgICAgICAgICAgbV9hc2NpaUJ1ZmZlci5hcHBl
bmQoJy8nKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKCcvJyk7CiAgICAg
ICAgICAgICAgICAgbV91cmwubV9wYXRoQWZ0ZXJMYXN0U2xhc2ggPSBtX2FzY2lpQnVmZmVyLnNp
emUoKTsKICAgICAgICAgICAgICAgICArK2M7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHV0ZjhQZXJjZW50RW5jb2RlKCpjLCBtX2FzY2lpQnVmZmVyLCBpc0luU2ltcGxl
RW5jb2RlU2V0KTsKKyAgICAgICAgICAgICAgICB1dGY4UGVyY2VudEVuY29kZTxpc0luU2ltcGxl
RW5jb2RlU2V0PigqYyk7CiAgICAgICAgICAgICAgICAgKytjOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgYnJlYWs7CkBAIC0xNDE5LDEzICsxNDUwLDEzIEBAIHZvaWQgVVJMUGFyc2VyOjpw
YXJzZShjb25zdCBDaGFyYWN0ZXJUeXAKICAgICAgICAgICAgIExPR19TVEFURSgiUXVlcnkiKTsK
ICAgICAgICAgICAgIGlmICgqYyA9PSAnIycpIHsKICAgICAgICAgICAgICAgICBpZiAoIWlzVVRG
OEVuY29kaW5nKQotICAgICAgICAgICAgICAgICAgICBlbmNvZGVRdWVyeShxdWVyeUJ1ZmZlciwg
bV9hc2NpaUJ1ZmZlciwgZW5jb2RpbmcpOworICAgICAgICAgICAgICAgICAgICBlbmNvZGVRdWVy
eShxdWVyeUJ1ZmZlciwgZW5jb2RpbmcpOwogICAgICAgICAgICAgICAgIG1fdXJsLm1fcXVlcnlF
bmQgPSBtX2FzY2lpQnVmZmVyLnNpemUoKTsKICAgICAgICAgICAgICAgICBzdGF0ZSA9IFN0YXRl
OjpGcmFnbWVudDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGlmIChpc1VURjhFbmNvZGluZykKLSAgICAgICAgICAgICAgICB1dGY4UXVlcnlFbmNv
ZGUoKmMsIG1fYXNjaWlCdWZmZXIpOworICAgICAgICAgICAgICAgIHV0ZjhRdWVyeUVuY29kZSgq
Yyk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgYXBwZW5kQ29kZVBvaW50KHF1
ZXJ5QnVmZmVyLCAqYyk7CiAgICAgICAgICAgICArK2M7CkBAIC0xNDMzLDcgKzE0NjQsNyBAQCB2
b2lkIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFjdGVyVHlwCiAgICAgICAgIGNhc2UgU3Rh
dGU6OkZyYWdtZW50OgogICAgICAgICAgICAgTE9HX1NUQVRFKCJGcmFnbWVudCIpOwogICAgICAg
ICAgICAgaWYgKG1fdW5pY29kZUZyYWdtZW50QnVmZmVyLmlzRW1wdHkoKSAmJiBpc0FTQ0lJKCpj
KSkKLSAgICAgICAgICAgICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZCgqYyk7CisgICAgICAgICAg
ICAgICAgYXBwZW5kVG9BU0NJSUJ1ZmZlcigqYyk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgYXBwZW5kQ29kZVBvaW50KG1fdW5pY29kZUZyYWdtZW50QnVmZmVyLCAqYyk7CiAg
ICAgICAgICAgICArK2M7CkBAIC0xNDg0LDcgKzE1MTUsNyBAQCB2b2lkIFVSTFBhcnNlcjo6cGFy
c2UoY29uc3QgQ2hhcmFjdGVyVHlwCiAgICAgY2FzZSBTdGF0ZTo6UmVsYXRpdmVTbGFzaDoKICAg
ICAgICAgTE9HX0ZJTkFMX1NUQVRFKCJSZWxhdGl2ZVNsYXNoIik7CiAgICAgICAgIGNvcHlVUkxQ
YXJ0c1VudGlsKGJhc2UsIFVSTFBhcnQ6OlBvcnRFbmQpOwotICAgICAgICBtX2FzY2lpQnVmZmVy
LmFwcGVuZCgnLycpOworICAgICAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKCcvJyk7CiAgICAgICAg
IG1fdXJsLm1fcGF0aEFmdGVyTGFzdFNsYXNoID0gYmFzZS5tX3BvcnRFbmQgKyAxOwogICAgICAg
ICBtX3VybC5tX3BhdGhFbmQgPSBtX3VybC5tX3BhdGhBZnRlckxhc3RTbGFzaDsKICAgICAgICAg
bV91cmwubV9xdWVyeUVuZCA9IG1fdXJsLm1fcGF0aEFmdGVyTGFzdFNsYXNoOwpAQCAtMTUxOCw3
ICsxNTQ5LDcgQEAgdm9pZCBVUkxQYXJzZXI6OnBhcnNlKGNvbnN0IENoYXJhY3RlclR5cAogICAg
ICAgICAgICAgZmFpbHVyZSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAg
ICAgIG1fYXNjaWlCdWZmZXIuYXBwZW5kKCcvJyk7CisgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZm
ZXIoJy8nKTsKICAgICAgICAgbV91cmwubV9wYXRoRW5kID0gbV91cmwubV9wb3J0RW5kICsgMTsK
ICAgICAgICAgbV91cmwubV9wYXRoQWZ0ZXJMYXN0U2xhc2ggPSBtX3VybC5tX3BhdGhFbmQ7CiAg
ICAgICAgIG1fdXJsLm1fcXVlcnlFbmQgPSBtX3VybC5tX3BhdGhFbmQ7CkBAIC0xNTMwLDcgKzE1
NjEsNyBAQCB2b2lkIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFjdGVyVHlwCiAgICAgICAg
ICAgICBmYWlsdXJlKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAg
bV9hc2NpaUJ1ZmZlci5hcHBlbmQoJy8nKTsKKyAgICAgICAgYXBwZW5kVG9BU0NJSUJ1ZmZlcign
LycpOwogICAgICAgICBtX3VybC5tX3BhdGhFbmQgPSBtX3VybC5tX3BvcnRFbmQgKyAxOwogICAg
ICAgICBtX3VybC5tX3BhdGhBZnRlckxhc3RTbGFzaCA9IG1fdXJsLm1fcGF0aEVuZDsKICAgICAg
ICAgbV91cmwubV9xdWVyeUVuZCA9IG1fdXJsLm1fcGF0aEVuZDsKQEAgLTE1NDAsOSArMTU3MSw5
IEBAIHZvaWQgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXAKICAgICAgICAgTE9H
X0ZJTkFMX1NUQVRFKCJGaWxlIik7CiAgICAgICAgIGlmIChiYXNlLmlzVmFsaWQoKSAmJiBiYXNl
LnByb3RvY29sSXMoImZpbGUiKSkgewogICAgICAgICAgICAgY29weVVSTFBhcnRzVW50aWwoYmFz
ZSwgVVJMUGFydDo6UXVlcnlFbmQpOwotICAgICAgICAgICAgbV9hc2NpaUJ1ZmZlci5hcHBlbmQo
JzonKTsKKyAgICAgICAgICAgIGFwcGVuZFRvQVNDSUlCdWZmZXIoJzonKTsKICAgICAgICAgfQot
ICAgICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZCgiLy8vIiwgMyk7CisgICAgICAgIGFwcGVuZFRv
QVNDSUlCdWZmZXIoIi8vLyIsIDMpOwogICAgICAgICBtX3VybC5tX3VzZXJTdGFydCA9IG1fYXNj
aWlCdWZmZXIuc2l6ZSgpIC0gMTsKICAgICAgICAgbV91cmwubV91c2VyRW5kID0gbV91cmwubV91
c2VyU3RhcnQ7CiAgICAgICAgIG1fdXJsLm1fcGFzc3dvcmRFbmQgPSBtX3VybC5tX3VzZXJTdGFy
dDsKQEAgLTE1NTUsNyArMTU4Niw3IEBAIHZvaWQgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFy
YWN0ZXJUeXAKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTdGF0ZTo6RmlsZVNsYXNoOgogICAg
ICAgICBMT0dfRklOQUxfU1RBVEUoIkZpbGVTbGFzaCIpOwotICAgICAgICBtX2FzY2lpQnVmZmVy
LmFwcGVuZCgiLy8iLCAyKTsKKyAgICAgICAgYXBwZW5kVG9BU0NJSUJ1ZmZlcigiLy8iLCAyKTsK
ICAgICAgICAgbV91cmwubV91c2VyU3RhcnQgPSBtX2FzY2lpQnVmZmVyLnNpemUoKSAtIDE7CiAg
ICAgICAgIG1fdXJsLm1fdXNlckVuZCA9IG1fdXJsLm1fdXNlclN0YXJ0OwogICAgICAgICBtX3Vy
bC5tX3Bhc3N3b3JkRW5kID0gbV91cmwubV91c2VyU3RhcnQ7CkBAIC0xNTY5LDcgKzE2MDAsNyBA
QCB2b2lkIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFjdGVyVHlwCiAgICAgY2FzZSBTdGF0
ZTo6RmlsZUhvc3Q6CiAgICAgICAgIExPR19GSU5BTF9TVEFURSgiRmlsZUhvc3QiKTsKICAgICAg
ICAgaWYgKGF1dGhvcml0eU9ySG9zdEJlZ2luID09IGMpIHsKLSAgICAgICAgICAgIG1fYXNjaWlC
dWZmZXIuYXBwZW5kKCcvJyk7CisgICAgICAgICAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKCcvJyk7
CiAgICAgICAgICAgICBtX3VybC5tX3VzZXJTdGFydCA9IG1fYXNjaWlCdWZmZXIuc2l6ZSgpIC0g
MTsKICAgICAgICAgICAgIG1fdXJsLm1fdXNlckVuZCA9IG1fdXJsLm1fdXNlclN0YXJ0OwogICAg
ICAgICAgICAgbV91cmwubV9wYXNzd29yZEVuZCA9IG1fdXJsLm1fdXNlclN0YXJ0OwpAQCAtMTU5
Miw3ICsxNjIzLDcgQEAgdm9pZCBVUkxQYXJzZXI6OnBhcnNlKGNvbnN0IENoYXJhY3RlclR5cAog
ICAgICAgICAgICAgbV91cmwubV9ob3N0RW5kID0gbV9hc2NpaUJ1ZmZlci5zaXplKCk7CiAgICAg
ICAgICAgICBtX3VybC5tX3BvcnRFbmQgPSBtX3VybC5tX2hvc3RFbmQ7CiAgICAgICAgIH0KLSAg
ICAgICAgbV9hc2NpaUJ1ZmZlci5hcHBlbmQoJy8nKTsKKyAgICAgICAgYXBwZW5kVG9BU0NJSUJ1
ZmZlcignLycpOwogICAgICAgICBtX3VybC5tX3BhdGhBZnRlckxhc3RTbGFzaCA9IG1fdXJsLm1f
aG9zdEVuZCArIDE7CiAgICAgICAgIG1fdXJsLm1fcGF0aEVuZCA9IG1fdXJsLm1fcGF0aEFmdGVy
TGFzdFNsYXNoOwogICAgICAgICBtX3VybC5tX3F1ZXJ5RW5kID0gbV91cmwubV9wYXRoQWZ0ZXJM
YXN0U2xhc2g7CkBAIC0xNjE2LDcgKzE2NDcsNyBAQCB2b2lkIFVSTFBhcnNlcjo6cGFyc2UoY29u
c3QgQ2hhcmFjdGVyVHlwCiAgICAgY2FzZSBTdGF0ZTo6UXVlcnk6CiAgICAgICAgIExPR19GSU5B
TF9TVEFURSgiUXVlcnkiKTsKICAgICAgICAgaWYgKCFpc1VURjhFbmNvZGluZykKLSAgICAgICAg
ICAgIGVuY29kZVF1ZXJ5KHF1ZXJ5QnVmZmVyLCBtX2FzY2lpQnVmZmVyLCBlbmNvZGluZyk7Cisg
ICAgICAgICAgICBlbmNvZGVRdWVyeShxdWVyeUJ1ZmZlciwgZW5jb2RpbmcpOwogICAgICAgICBt
X3VybC5tX3F1ZXJ5RW5kID0gbV9hc2NpaUJ1ZmZlci5zaXplKCk7CiAgICAgICAgIG1fdXJsLm1f
ZnJhZ21lbnRFbmQgPSBtX3VybC5tX3F1ZXJ5RW5kOwogICAgICAgICBicmVhazsKQEAgLTE2NTUs
MjAgKzE2ODYsMjAgQEAgdm9pZCBVUkxQYXJzZXI6OnBhcnNlQXV0aG9yaXR5KENvZGVQb2ludAog
ICAgICAgICAgICAgaWYgKGl0ZXJhdG9yLmF0RW5kKCkpIHsKICAgICAgICAgICAgICAgICBtX3Vy
bC5tX3Bhc3N3b3JkRW5kID0gbV91cmwubV91c2VyRW5kOwogICAgICAgICAgICAgICAgIGlmICht
X3VybC5tX3VzZXJFbmQgPiBtX3VybC5tX3VzZXJTdGFydCkKLSAgICAgICAgICAgICAgICAgICAg
bV9hc2NpaUJ1ZmZlci5hcHBlbmQoJ0AnKTsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG9B
U0NJSUJ1ZmZlcignQCcpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIG1fYXNjaWlCdWZmZXIuYXBwZW5kKCc6Jyk7CisgICAgICAgICAgICBhcHBl
bmRUb0FTQ0lJQnVmZmVyKCc6Jyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAg
ICAgICB1dGY4UGVyY2VudEVuY29kZSgqaXRlcmF0b3IsIG1fYXNjaWlCdWZmZXIsIGlzSW5Vc2Vy
SW5mb0VuY29kZVNldCk7CisgICAgICAgIHV0ZjhQZXJjZW50RW5jb2RlPGlzSW5Vc2VySW5mb0Vu
Y29kZVNldD4oKml0ZXJhdG9yKTsKICAgICB9CiAgICAgZm9yICg7ICFpdGVyYXRvci5hdEVuZCgp
OyArK2l0ZXJhdG9yKQotICAgICAgICB1dGY4UGVyY2VudEVuY29kZSgqaXRlcmF0b3IsIG1fYXNj
aWlCdWZmZXIsIGlzSW5Vc2VySW5mb0VuY29kZVNldCk7CisgICAgICAgIHV0ZjhQZXJjZW50RW5j
b2RlPGlzSW5Vc2VySW5mb0VuY29kZVNldD4oKml0ZXJhdG9yKTsKICAgICBtX3VybC5tX3Bhc3N3
b3JkRW5kID0gbV9hc2NpaUJ1ZmZlci5zaXplKCk7CiAgICAgaWYgKCFtX3VybC5tX3VzZXJFbmQp
CiAgICAgICAgIG1fdXJsLm1fdXNlckVuZCA9IG1fdXJsLm1fcGFzc3dvcmRFbmQ7Ci0gICAgbV9h
c2NpaUJ1ZmZlci5hcHBlbmQoJ0AnKTsKKyAgICBhcHBlbmRUb0FTQ0lJQnVmZmVyKCdAJyk7CiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFVuc2lnbmVkSW50ZWdlclR5cGU+CkBAIC0yMDUwLDcgKzIw
ODEsNyBAQCBib29sIFVSTFBhcnNlcjo6cGFyc2VQb3J0KENvZGVQb2ludEl0ZXJhCiAgICAgICAg
IG1fdXJsLm1fcG9ydEVuZCA9IG1fYXNjaWlCdWZmZXIuc2l6ZSgpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9Ci0gICAgbV9hc2NpaUJ1ZmZlci5hcHBlbmQoJzonKTsKKyAgICBhcHBlbmRU
b0FTQ0lJQnVmZmVyKCc6Jyk7CiAgICAgZm9yICg7ICFpdGVyYXRvci5hdEVuZCgpOyArK2l0ZXJh
dG9yKSB7CiAgICAgICAgIGlmIChpc1RhYk9yTmV3bGluZSgqaXRlcmF0b3IpKQogICAgICAgICAg
ICAgY29udGludWU7CkBAIC0yMTIwLDcgKzIxNTEsNyBAQCBib29sIFVSTFBhcnNlcjo6cGFyc2VI
b3N0QW5kUG9ydChDb2RlUG9pCiAgICAgICAgIH0KICAgICAgICAgZm9yICg7IGhvc3RJdGVyYXRv
ciAhPSBpdGVyYXRvcjsgKytob3N0SXRlcmF0b3IpIHsKICAgICAgICAgICAgIGlmICghaXNUYWJP
ck5ld2xpbmUoKmhvc3RJdGVyYXRvcikpCi0gICAgICAgICAgICAgICAgbV9hc2NpaUJ1ZmZlci5h
cHBlbmQodG9BU0NJSUxvd2VyKCpob3N0SXRlcmF0b3IpKTsKKyAgICAgICAgICAgICAgICBhcHBl
bmRUb0FTQ0lJQnVmZmVyKHRvQVNDSUlMb3dlcigqaG9zdEl0ZXJhdG9yKSk7CiAgICAgICAgIH0K
ICAgICAgICAgbV91cmwubV9ob3N0RW5kID0gbV9hc2NpaUJ1ZmZlci5zaXplKCk7CiAgICAgICAg
IGlmICghaG9zdEl0ZXJhdG9yLmF0RW5kKCkpIHsKQEAgLTIxNjUsNyArMjE5Niw3IEBAIGJvb2wg
VVJMUGFyc2VyOjpwYXJzZUhvc3RBbmRQb3J0KENvZGVQb2kKICAgICAgICAgcmV0dXJuIHBhcnNl
UG9ydChpdGVyYXRvcik7CiAgICAgfQogCi0gICAgbV9hc2NpaUJ1ZmZlci5hcHBlbmQoYXNjaWlE
b21haW5DaGFyYWN0ZXJzLCBhc2NpaURvbWFpblZhbHVlLnNpemUoKSk7CisgICAgYXBwZW5kVG9B
U0NJSUJ1ZmZlcihhc2NpaURvbWFpbkNoYXJhY3RlcnMsIGFzY2lpRG9tYWluVmFsdWUuc2l6ZSgp
KTsKICAgICBtX3VybC5tX2hvc3RFbmQgPSBtX2FzY2lpQnVmZmVyLnNpemUoKTsKICAgICBpZiAo
IWl0ZXJhdG9yLmF0RW5kKCkpIHsKICAgICAgICAgQVNTRVJUKCppdGVyYXRvciA9PSAnOicpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmgJKHJldmlzaW9uIDIwNjMyOSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02
Nyw3ICs2NywxNSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5
cGU+IHZvaWQgc3ludGF4RXJyb3IoY29uc3QgQ29kZVBvaW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlw
ZT4mKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIGlzV2luZG93
c0RyaXZlTGV0dGVyKENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+KTsKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIHNob3VsZENvcHlGaWxlVVJMKENvZGVQ
b2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+KTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFy
YWN0ZXJUeXBlPiB2b2lkIGNoZWNrV2luZG93c0RyaXZlTGV0dGVyKENvZGVQb2ludEl0ZXJhdG9y
PENoYXJhY3RlclR5cGU+JiwgVmVjdG9yPExDaGFyPiYgYXNjaWlCdWZmZXIpOworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHZvaWQgY2hlY2tXaW5kb3dzRHJpdmVMZXR0ZXIo
Q29kZVBvaW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4mKTsKKyAgICB0ZW1wbGF0ZTxib29sKCpp
c0luQ29kZVNldCkoVUNoYXIzMik+IHZvaWQgdXRmOFBlcmNlbnRFbmNvZGUoVUNoYXIzMik7Cisg
ICAgdm9pZCB1dGY4UXVlcnlFbmNvZGUoVUNoYXIzMik7CisgICAgdm9pZCBwZXJjZW50RW5jb2Rl
Qnl0ZSh1aW50OF90KTsKKyAgICB2b2lkIGFwcGVuZFRvQVNDSUlCdWZmZXIoVUNoYXIzMik7Cisg
ICAgdm9pZCBhcHBlbmRUb0FTQ0lJQnVmZmVyKGNvbnN0IGNoYXIqLCBzaXplX3QpOworICAgIHZv
aWQgYXBwZW5kVG9BU0NJSUJ1ZmZlcihjb25zdCBMQ2hhciogY2hhcmFjdGVycywgc2l6ZV90IHNp
emUpIHsgYXBwZW5kVG9BU0NJSUJ1ZmZlcihyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihj
aGFyYWN0ZXJzKSwgc2l6ZSk7IH0KKyAgICB2b2lkIGVuY29kZVF1ZXJ5KGNvbnN0IFZlY3RvcjxV
Q2hhcj4mIHNvdXJjZSwgY29uc3QgVGV4dEVuY29kaW5nJik7CisgICAgdm9pZCBjb3B5QVNDSUlT
dHJpbmdVbnRpbChjb25zdCBTdHJpbmcmLCBzaXplX3QgbGVuZ3RoSWY4Qml0LCBzaXplX3QgbGVu
Z3RoSWYxNkJpdCk7CiAKICAgICBlbnVtIGNsYXNzIFVSTFBhcnQ7CiAgICAgdm9pZCBjb3B5VVJM
UGFydHNVbnRpbChjb25zdCBVUkwmIGJhc2UsIFVSTFBhcnQpOwpJbmRleDogVG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjA2MzMyKQorKysg
VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMDkt
MjMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBSZWZhY3RvciBVUkxQYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MjUxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTFBhcnNlci5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDE2LTA5LTIzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVmYWN0b3Ig
VVJMUGFyc2VyCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFy
c2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
VVJMUGFyc2VyLmNwcAkocmV2aXNpb24gMjA2MzI5KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1VSTFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwOSw2ICs0MDks
OSBAQCBURVNUX0YoVVJMUGFyc2VyVGVzdCwgUGFyc2VyRGlmZmVyZW5jZXMpCiAgICAgY2hlY2tV
UkxEaWZmZXJlbmNlcygiaHR0cDovL1swOjA6ZjowOjA6ZjowOjBdIiwKICAgICAgICAgeyJodHRw
IiwgIiIsICIiLCAiWzo6ZjowOjA6ZjowOjBdIiwgMCwgIi8iLCAiIiwgIiIsICJodHRwOi8vWzo6
ZjowOjA6ZjowOjBdLyJ9LAogICAgICAgICB7Imh0dHAiLCAiIiwgIiIsICJbMDowOmY6MDowOmY6
MDowXSIsIDAsICIvIiwgIiIsICIiLCAiaHR0cDovL1swOjA6ZjowOjA6ZjowOjBdLyJ9KTsKKyAg
ICBjaGVja1VSTERpZmZlcmVuY2VzKCJodHRwOi8vW2E6MDowOjA6YjpjOjpkXSIsCisgICAgICAg
IHsiaHR0cCIsICIiLCAiIiwgIlthOjpiOmM6MDpkXSIsIDAsICIvIiwgIiIsICIiLCAiaHR0cDov
L1thOjpiOmM6MDpkXS8ifSwKKyAgICAgICAgeyJodHRwIiwgIiIsICIiLCAiW2E6MDowOjA6Yjpj
OjpkXSIsIDAsICIvIiwgIiIsICIiLCAiaHR0cDovL1thOjA6MDowOmI6Yzo6ZF0vIn0pOwogICAg
IGNoZWNrVVJMRGlmZmVyZW5jZXMoImh0dHA6Ly9leGFtcGxlLmNvbS9wYXRoMS8uJTJlIiwKICAg
ICAgICAgeyJodHRwIiwgIiIsICIiLCAiZXhhbXBsZS5jb20iLCAwLCAiLyIsICIiLCAiIiwgImh0
dHA6Ly9leGFtcGxlLmNvbS8ifSwKICAgICAgICAgeyJodHRwIiwgIiIsICIiLCAiZXhhbXBsZS5j
b20iLCAwLCAiL3BhdGgxLy4lMmUiLCAiIiwgIiIsICJodHRwOi8vZXhhbXBsZS5jb20vcGF0aDEv
LiUyZSJ9KTsKQEAgLTU4NCw2ICs1ODcsOSBAQCBURVNUX0YoVVJMUGFyc2VyVGVzdCwgUGFyc2Vy
RGlmZmVyZW5jZXMpCiAgICAgY2hlY2tVUkxEaWZmZXJlbmNlcyh3aWRlU3RyaW5nKEwiaHR0cDov
L2hvc3Q/w5/wn5iNI8Of8J+YjSIpLAogICAgICAgICB7Imh0dHAiLCAiIiwgIiIsICJob3N0Iiwg
MCwgIi8iLCAiJUMzJTlGJUYwJTlGJTk4JThEIiwgd2lkZVN0cmluZyhMIsOf8J+YjSIpLCB3aWRl
U3RyaW5nKEwiaHR0cDovL2hvc3QvPyVDMyU5RiVGMCU5RiU5OCU4RCPDn/CfmI0iKX0sCiAgICAg
ICAgIHsiaHR0cCIsICIiLCAiIiwgImhvc3QiLCAwLCAiLyIsICIlQzMlOUYlRjAlOUYlOTglOEQi
LCAiJUMzJTlGJUYwJTlGJTk4JThEIiwgImh0dHA6Ly9ob3N0Lz8lQzMlOUYlRjAlOUYlOTglOEQj
JUMzJTlGJUYwJTlGJTk4JThEIn0pOworICAgIGNoZWNrVVJMRGlmZmVyZW5jZXMod2lkZVN0cmlu
ZyhMImh0dHA6Ly9ob3N0L3BhdGgj8J+SqVx08J+SqSIpLAorICAgICAgICB7Imh0dHAiLCAiIiwg
IiIsICJob3N0IiwgMCwgIi9wYXRoIiwgIiIsIHdpZGVTdHJpbmcoTCLwn5Kp8J+SqSIpLCB3aWRl
U3RyaW5nKEwiaHR0cDovL2hvc3QvcGF0aCPwn5Kp8J+SqSIpfSwKKyAgICAgICAgeyJodHRwIiwg
IiIsICIiLCAiaG9zdCIsIDAsICIvcGF0aCIsICIiLCAiJUYwJTlGJTkyJUE5JUYwJTlGJTkyJUE5
IiwgImh0dHA6Ly9ob3N0L3BhdGgjJUYwJTlGJTkyJUE5JUYwJTlGJTkyJUE5In0pOwogfQogCiBU
RVNUX0YoVVJMUGFyc2VyVGVzdCwgRGVmYXVsdFBvcnQpCkBAIC02NzAsOSArNjc2LDYgQEAgVEVT
VF9GKFVSTFBhcnNlclRlc3QsIERlZmF1bHRQb3J0KQogICAgIGNoZWNrVVJMRGlmZmVyZW5jZXMo
Imh0dHA6Ly9ob3N0L2AiLAogICAgICAgICB7Imh0dHAiLCAiIiwgIiIsICJob3N0IiwgMCwgIi8l
NjAiLCAiIiwgIiIsICJodHRwOi8vaG9zdC8lNjAifSwKICAgICAgICAgeyJodHRwIiwgIiIsICIi
LCAiaG9zdCIsIDAsICIvYCIsICIiLCAiIiwgImh0dHA6Ly9ob3N0L2AifSk7Ci0gICAgY2hlY2tV
UkxEaWZmZXJlbmNlcyh3aWRlU3RyaW5nKEwiaHR0cDovL2hvc3QvcGF0aCPwn5KpXHTwn5KpIiks
Ci0gICAgICAgIHsiaHR0cCIsICIiLCAiIiwgImhvc3QiLCAwLCAiL3BhdGgiLCAiIiwgd2lkZVN0
cmluZyhMIvCfkqnwn5KpIiksIHdpZGVTdHJpbmcoTCJodHRwOi8vaG9zdC9wYXRoI/Cfkqnwn5Kp
Iil9LAotICAgICAgICB7Imh0dHAiLCAiIiwgIiIsICJob3N0IiwgMCwgIi9wYXRoIiwgIiIsICIl
RjAlOUYlOTIlQTklRjAlOUYlOTIlQTkiLCAiaHR0cDovL2hvc3QvcGF0aCMlRjAlOUYlOTIlQTkl
RjAlOUYlOTIlQTkifSk7CiB9CiAgICAgCiBzdGF0aWMgdm9pZCBzaG91bGRGYWlsKGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nKQo=
</data>
<flag name="review"
          id="312917"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>