<?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>102917</bug_id>
          
          <creation_ts>2012-11-21 03:06:07 -0800</creation_ts>
          <short_desc>[V8] Remove STRING_TO_V8PARAMETER_EXCEPTION_BLOCK()</short_desc>
          <delta_ts>2012-11-21 03:43:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>772728</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-21 03:06:07 -0800</bug_when>
    <thetext>Now EXCEPTION_BLOCK() and STRING_TO_V8PARAMETER_EXCEPTION_BLOCK() are equivalent. We can remove STRING_TO_V8PARAMETER_EXCEPTION_BLOCK().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772734</commentid>
    <comment_count>1</comment_count>
      <attachid>175400</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-21 03:13:02 -0800</bug_when>
    <thetext>Created attachment 175400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772744</commentid>
    <comment_count>2</comment_count>
      <attachid>175400</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-21 03:19:53 -0800</bug_when>
    <thetext>Comment on attachment 175400
Patch

Can we also rename V8Parameter to something sensible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772746</commentid>
    <comment_count>3</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-21 03:21:22 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 175400 [details])
&gt; Can we also rename V8Parameter to something sensible?

Yes, do you have any suggestion? StringOrAtomicString? WebCoreString?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772747</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-21 03:21:57 -0800</bug_when>
    <thetext>V8StringConverter ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772748</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-21 03:22:33 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; V8StringConverter ?

Sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772752</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-21 03:24:43 -0800</bug_when>
    <thetext>Perhaps V8StringResource since that&apos;s the header it is in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772761</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-21 03:33:15 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Perhaps V8StringResource since that&apos;s the header it is in?

Sounds better:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772769</commentid>
    <comment_count>8</comment_count>
      <attachid>175400</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-21 03:43:54 -0800</bug_when>
    <thetext>Comment on attachment 175400
Patch

Clearing flags on attachment: 175400

Committed r135378: &lt;http://trac.webkit.org/changeset/135378&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772770</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-21 03:43:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175400</attachid>
            <date>2012-11-21 03:13:02 -0800</date>
            <delta_ts>2012-11-21 03:43:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102917-20121121201049.patch</filename>
            <type>text/plain</type>
            <size>40636</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWFkZGFhYzk5OTkwMjU2
ZDI2YzdkYjM1MzQ3NzEwNWE1Njc2ZjNlNC4uOWJjOTUzMjkwNzUzNzU4NzQxMTdkNmFmMDIxN2Iy
MjRkNjg5NWVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDg1IEBACiAyMDEyLTExLTIxICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdIFJlbW92ZSBT
VFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjkxNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyBFWENFUFRJT05fQkxPQ0soKSBhbmQg
U1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSygpCisgICAgICAgIGFyZSBlcXVp
dmFsZW50LiBXZSBjYW4gcmVtb3ZlIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxP
Q0soKS4KKyAgICAgICAgVG8gbWFrZSBhIGNvZGUgZ2VuZXJhdGUgY2hhbmdlIHNtYWxsZXIsIHRo
aXMgcGF0Y2ggYWxzbyByZW5hbWVzCisgICAgICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENF
UFRJT05fQkxPQ0tfVk9JRCgpIHRvIEVYQ0VQVElPTl9CTE9DS19WT0lEKCkuCisgICAgICAgIEkg
d2lsbCByZW5hbWUgdGhlc2UgbWFjcm9zIGluIGEgZm9sbG93LXVwIHBhdGNoLgorCisgICAgICAg
IE5vIHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlRXZlbnRDb25zdHJ1
Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKENvbnZlcnRUb1Y4UGFyYW1ldGVyKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RBY3RpdmVET01PYmplY3RWOEludGVybmFsOjpwb3N0TWVzc2Fn
ZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdEN1c3RvbU5hbWVkR2V0
dGVyVjhJbnRlcm5hbDo6YW5vdGhlckZ1bmN0aW9uQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdEludGVyZmFjZVY4SW50ZXJuYWw6OnN1cHBsZW1lbnRhbFN0
YXRpY0F0dHJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RJbnRlcmZhY2VWOElu
dGVybmFsOjpzdXBwbGVtZW50YWxTdHIyQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpU
ZXN0SW50ZXJmYWNlVjhJbnRlcm5hbDo6c3VwcGxlbWVudGFsTWV0aG9kMkNhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4VGVzdEludGVyZmFjZTo6Y29uc3RydWN0b3JDYWxsYmFjayk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9y
Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0YXRpY1N0cmluZ0F0
dHJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpzdHJp
bmdBdHRyQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6
cmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OnJlZmxlY3RlZFVSTEF0dHJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlRlc3RPYmpWOEludGVybmFsOjpyZWZsZWN0ZWRDdXN0b21VUkxBdHRyQXR0clNldHRlcik6
CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6c3RyaW5nQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb25BdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVy
bmFsOjpzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnZvaWRNZXRob2RXaXRoQXJnc0NhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpsb25nTWV0aG9kV2l0aEFyZ3ND
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6b2JqTWV0aG9k
V2l0aEFyZ3NDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6
bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0NhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE9wdGlv
bmFsU3RyaW5nSXNVbmRlZmluZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2Jq
VjhJbnRlcm5hbDo6bWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxsU3RyaW5nQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2Qx
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2Fk
ZWRNZXRob2QzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
Om92ZXJsb2FkZWRNZXRob2QxMUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpW
OEludGVybmFsOjpvdmVybG9hZGVkTWV0aG9kMTJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0T2JqVjhJbnRlcm5hbDo6c3RyaWN0RnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dmFyaWFkaWNTdHJpbmdNZXRob2RDYWxsYmFjayk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yczo6Y29uc3RydWN0b3I0Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpjb25zdHJ1
Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmdNYWNyb3MuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFN0cmluZ1Jlc291cmNlLmg6CisgICAgICAgIChWOFBh
cmFtZXRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q29uc29sZUN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWOENvbnNvbGU6OnByb2ZpbGVDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpWOENvbnNvbGU6OnByb2ZpbGVFbmRDYWxsYmFjayk6CisgICAgICAgICog
YmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOERldmljZU1vdGlvbkV2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4
RGV2aWNlTW90aW9uRXZlbnQ6OmluaXREZXZpY2VNb3Rpb25FdmVudENhbGxiYWNrKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RGV2aWNlT3JpZW50YXRpb25FdmVudDo6aW5pdERldmlj
ZU9yaWVudGF0aW9uRXZlbnRDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SGlzdG9yeUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEhpc3Rvcnk6OnB1c2hT
dGF0ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4SGlzdG9yeTo6cmVwbGFjZVN0YXRl
Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWOEludGVudDo6Y29uc3RydWN0b3JDYWxsYmFja0N1c3Rv
bSk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMVHJhbnNhY3Rpb25DdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhTUUxUcmFuc2FjdGlvbjo6ZXhlY3V0ZVNxbENhbGxi
YWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhTUUxUcmFuc2FjdGlvblN5bmND
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhTUUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1
dGVTcWxDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRFeHRlbnNpb25DYWxsYmFjayk6CisKKzIwMTItMTEtMjEgIEtlbnRhcm8g
SGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFVucmV2aWV3ZWQuIEJ1aWxk
IGZpeC4KIAogICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEJsb2JDdXN0b20uY3BwOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQppbmRleCAxOWM5MGJlMDU3NjM2MTIyNmEwNzMyNzQ4NDY4YTdkZTFmYjZjYWNkLi4zZjgxMzc5
MDNhNzgxNzZhZDUxM2E5OTg1YzNhMmRjODFkZTQyZDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjAyOSw3ICsyMDI5
LDcgQEAgRU5ECiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhy
b3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAKLSAgICBTVFJJ
TkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHR5cGUsIGFy
Z3NbMF0pOworICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCB0eXBlLCBhcmdzWzBd
KTsKICAgICAke2ludGVyZmFjZU5hbWV9SW5pdCBldmVudEluaXQ7CiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPj0gMikgewogICAgICAgICBFWENFUFRJT05fQkxPQ0soRGljdGlvbmFyeSwgb3B0aW9u
cywgRGljdGlvbmFyeShhcmdzWzFdLCBhcmdzLkdldElzb2xhdGUoKSkpOwpAQCAtNDIwNSw3ICs0
MjA1LDcgQEAgc3ViIENvbnZlcnRUb1Y4UGFyYW1ldGVyCiAKICAgICBkaWUgIldyb25nIG5hdGl2
ZSB0eXBlIHBhc3NlZDogJG5hdGl2ZVR5cGUiIHVubGVzcyAkbmF0aXZlVHlwZSA9fiAvXlY4UGFy
YW1ldGVyLzsKICAgICBpZiAoJHNpZ25hdHVyZS0+dHlwZSBlcSAiRE9NU3RyaW5nIikgewotICAg
ICAgICBteSAkbWFjcm8gPSAiU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyI7
CisgICAgICAgIG15ICRtYWNybyA9ICJFWENFUFRJT05fQkxPQ0siOwogICAgICAgICAkbWFjcm8g
Lj0gIl8kc3VmZml4IiBpZiAkc3VmZml4OwogICAgICAgICByZXR1cm4gIiRtYWNybygkbmF0aXZl
VHlwZSwgJHZhcmlhYmxlTmFtZSwgJHZhbHVlKTsiCiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01P
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggNDFiNTc2ZGU5NGU1YTA2NWZiNmI5YzliMDY0YmEy
ZmNiMWZkODUzOC4uZWIxYzA1NWJjMTE4MDY4ZTM3MTk2YmVjM2FkYmIzYWEyZjBiNTc4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFj
dGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwb3N0TWVzc2FnZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4g
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVz
dEFjdGl2ZURPTU9iamVjdCogaW1wID0gVjhUZXN0QWN0aXZlRE9NT2JqZWN0Ojp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NL
KFY4UGFyYW1ldGVyPD4sIG1lc3NhZ2UsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+
LCBtZXNzYWdlLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKTsKICAgICBpbXAtPnBvc3RNZXNzYWdlKG1lc3NhZ2UpOwogICAgIHJldHVybiB2OFVu
ZGVmaW5lZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKaW5kZXgg
ZmUyOTJlMmViOGQ4MGRlMmUwZTIwOTU3MmUzODY2NTc1OGJkMTVmOC4uYmZjOTM4OTA5YWM1Y2I3
YTY1ODY1ZDI0ZmYzZDA4NDM1NjU0YjVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
YW5vdGhlckZ1bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBp
ZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIq
IGltcCA9IFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
LSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4s
IHN0ciwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVk
KSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ciwgTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgaW1wLT5hbm90
aGVyRnVuY3Rpb24oc3RyKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCAyNmE3ZmM3NTM0YWIyYWUxMmFkZTJiZGU5
ZWMyNjdkZDAzNmViMGU5Li40ZWVhNzEyMDc5MThjM2Q1NjQ4OGMyODg1ZTZhNmM5Yjg1NGY0Yzc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3Rv
ckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAg
ICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUo
KSk7CiAKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1l
dGVyPD4sIHR5cGUsIGFyZ3NbMF0pOworICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+
LCB0eXBlLCBhcmdzWzBdKTsKICAgICBUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQgZXZlbnRJbml0
OwogICAgIGlmIChhcmdzLkxlbmd0aCgpID49IDIpIHsKICAgICAgICAgRVhDRVBUSU9OX0JMT0NL
KERpY3Rpb25hcnksIG9wdGlvbnMsIERpY3Rpb25hcnkoYXJnc1sxXSwgYXJncy5HZXRJc29sYXRl
KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKaW5kZXggNWI2YjdjMDQ3OWJiYTJlMGYxMTUwNWY0
OWQ0ZjE4YWQ2YzQ5MmNlMi4uYTM4OWU2M2E4NmM2ZjBmZDE1MzU1ZTUxYzZiMmZmOTNkZDAzN2U4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBzdXBwbGVtZW50YWxTdGF0aWNBdHRyQXR0ckdldHRlcih2ODo6TG9j
YWw8djg6OlN0cmkKIHN0YXRpYyB2b2lkIHN1cHBsZW1lbnRhbFN0YXRpY0F0dHJBdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
SW50ZXJmYWNlLnN1cHBsZW1lbnRhbFN0YXRpY0F0dHIuX3NldCIpOwotICAgIFNUUklOR19UT19W
OFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2YWx1ZSk7
CisgICAgRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8PiwgdiwgdmFsdWUpOwogICAg
IFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbFN0YXRpY0F0dHIodik7CiAgICAgcmV0
dXJuOwogfQpAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyB2b2lkIHN1cHBsZW1lbnRhbFN0cjJB
dHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6CiB7CiAg
ICAgSU5DX1NUQVRTKCJET00uVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWxTdHIyLl9zZXQiKTsK
ICAgICBUZXN0SW50ZXJmYWNlKiBpbXAgPSBWOFRlc3RJbnRlcmZhY2U6OnRvTmF0aXZlKGluZm8u
SG9sZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9J
RChWOFBhcmFtZXRlcjw+LCB2LCB2YWx1ZSk7CisgICAgRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQ
YXJhbWV0ZXI8PiwgdiwgdmFsdWUpOwogICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1l
bnRhbFN0cjIoaW1wLCB2KTsKICAgICByZXR1cm47CiB9CkBAIC0xNTksNyArMTU5LDcgQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdXBwbGVtZW50YWxNZXRob2QyQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXIKICAgICBUZXN0SW50ZXJmYWNlKiBpbXAgPSBWOFRlc3RJbnRl
cmZhY2U6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIHsKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFy
YW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVs
dElzVW5kZWZpbmVkKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ckFy
ZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7
CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpBcmcsIFY4VGVzdE9iajo6SGFzSW5z
dGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVk
KSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7
CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGdldFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKICAgICBSZWZQdHI8VGVzdE9iaj4gcmVzdWx0ID0gVGVzdFN1cHBs
ZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kMihzY3JpcHRDb250ZXh0LCBpbXAsIHN0ckFyZywg
b2JqQXJnLCBlYyk7CkBAIC0yNTIsOCArMjUyLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
VGVzdEludGVyZmFjZTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJgog
ICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xh
dGUoKSk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBTVFJJTkdfVE9fVjhQQVJB
TUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0cjEsIE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwotICAgIFNUUklOR19UT19W
OFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyMiwgTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CisgICAgRVhDRVBU
SU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0cjEsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFt
ZXRlcjw+LCBzdHIyLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNV
bmRlZmluZWQpKTsKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBnZXRT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9y
LmNwcAppbmRleCBhYjBiYjZiNjIyMTgxYTk2M2ZhNGQ3MTQ4MTRmODIzNjAyZjIwMzgxLi43Zjhl
N2QxZWZiZmUzMWI5MzAwYjg4YTgwZDVlZDhlMzQyNDc0ODExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5h
bWVkQ29uc3RydWN0b3IuY3BwCkBAIC02MSw5ICs2MSw5IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6CiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0
SXNvbGF0ZSgpKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFNUUklOR19UT19W
OFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyMSwgTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7Ci0gICAgU1RSSU5H
X1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHIyLCBNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKLSAgICBT
VFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0cjMs
IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc051bGxTdHJpbmcpKTsK
KyAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyMSwgTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CisgICAgRVhDRVBUSU9OX0JM
T0NLKFY4UGFyYW1ldGVyPD4sIHN0cjIsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEs
IERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+
LCBzdHIzLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNOdWxsU3Ry
aW5nKSk7CiAKICAgICBSZWZQdHI8VGVzdE5hbWVkQ29uc3RydWN0b3I+IGltcGwgPSBUZXN0TmFt
ZWRDb25zdHJ1Y3Rvcjo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3Rvcihkb2N1bWVudCwgc3RyMSwgc3Ry
Miwgc3RyMywgZWMpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3Mu
SG9sZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDRjMGNkM2EwZGYwYzA1NWI5ZDhkMDQ3YzJmYjMyNjUz
Mzc4NTQ4MDUuLjVkYTEzMDgzNzEyOTAwYjgwNDI0OWQ3OTJhYjkwZGIwZjUxYmYyYmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RP
YmouY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBz
dGF0aWNTdHJpbmdBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmEKIHN0YXRp
YyB2b2lkIHN0YXRpY1N0cmluZ0F0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBu
YW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYg
aW5mbykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnN0YXRpY1N0cmluZ0F0dHIuX3Nl
dCIpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBh
cmFtZXRlcjw+LCB2LCB2YWx1ZSk7CisgICAgRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0
ZXI8PiwgdiwgdmFsdWUpOwogICAgIFRlc3RPYmo6OnNldFN0YXRpY1N0cmluZ0F0dHIodik7CiAg
ICAgcmV0dXJuOwogfQpAQCAtMjIwLDcgKzIyMCw3IEBAIHN0YXRpYyB2b2lkIHN0cmluZ0F0dHJB
dHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVl
CiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5zdHJpbmdBdHRyLl9zZXQiKTsKICAgICBU
ZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFNU
UklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2
LCB2YWx1ZSk7CisgICAgRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8PiwgdiwgdmFs
dWUpOwogICAgIGltcC0+c2V0U3RyaW5nQXR0cih2KTsKICAgICByZXR1cm47CiB9CkBAIC0yODYs
NyArMjg2LDcgQEAgc3RhdGljIHZvaWQgcmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDwKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLnJlZmxlY3RlZFN0cmluZ0F0dHIuX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFS
QU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4UGFyYW1ldGVyPFdpdGhOdWxsQ2hlY2s+LCB2
LCB2YWx1ZSk7CisgICAgRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8V2l0aE51bGxD
aGVjaz4sIHYsIHZhbHVlKTsKICAgICBpbXAtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OnJlZmxlY3RlZHN0cmluZ2F0dHJBdHRyLCB2KTsKICAgICByZXR1cm47CiB9CkBAIC0zNTAs
NyArMzUwLDcgQEAgc3RhdGljIHZvaWQgcmVmbGVjdGVkVVJMQXR0ckF0dHJTZXR0ZXIodjg6Okxv
Y2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODoKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLnJlZmxlY3RlZFVSTEF0dHIuX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4
VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1F
VEVSX0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4UGFyYW1ldGVyPFdpdGhOdWxsQ2hlY2s+LCB2LCB2
YWx1ZSk7CisgICAgRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8V2l0aE51bGxDaGVj
az4sIHYsIHZhbHVlKTsKICAgICBpbXAtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OnJlZmxlY3RlZHVybGF0dHJBdHRyLCB2KTsKICAgICByZXR1cm47CiB9CkBAIC0zNjYsNyArMzY2
LDcgQEAgc3RhdGljIHZvaWQgcmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDwKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
T2JqLnJlZmxlY3RlZFN0cmluZ0F0dHIuX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVz
dE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVS
X0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4UGFyYW1ldGVyPFdpdGhOdWxsQ2hlY2s+LCB2LCB2YWx1
ZSk7CisgICAgRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8V2l0aE51bGxDaGVjaz4s
IHYsIHZhbHVlKTsKICAgICBpbXAtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1
c3RvbUNvbnRlbnRTdHJpbmdBdHRyQXR0ciwgdik7CiAgICAgcmV0dXJuOwogfQpAQCAtNDE0LDcg
KzQxNCw3IEBAIHN0YXRpYyB2b2lkIHJlZmxlY3RlZEN1c3RvbVVSTEF0dHJBdHRyU2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jCiB7CiAgICAgSU5DX1NUQVRTKCJET00u
VGVzdE9iai5yZWZsZWN0ZWRDdXN0b21VUkxBdHRyLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAg
PSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBB
UkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjxXaXRoTnVsbENoZWNrPiwg
diwgdmFsdWUpOworICAgIEVYQ0VQVElPTl9CTE9DS19WT0lEKFY4UGFyYW1ldGVyPFdpdGhOdWxs
Q2hlY2s+LCB2LCB2YWx1ZSk7CiAgICAgaW1wLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIsIHYpOwogICAgIHJldHVybjsKIH0KQEAgLTQ4
OSw3ICs0ODksNyBAQCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0
dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uVGVzdE9iai5zdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbi5fc2V0Iik7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBTVFJJ
TkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8Piwgdiwg
dmFsdWUpOworICAgIEVYQ0VQVElPTl9CTE9DS19WT0lEKFY4UGFyYW1ldGVyPD4sIHYsIHZhbHVl
KTsKICAgICBpbXAtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYpOwogICAgIHJl
dHVybjsKIH0KQEAgLTUwNSw3ICs1MDUsNyBAQCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyV2l0aFNl
dHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiB7CiAg
ICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5zdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbi5f
c2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRl
cigpKTsKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQ
YXJhbWV0ZXI8PiwgdiwgdmFsdWUpOworICAgIEVYQ0VQVElPTl9CTE9DS19WT0lEKFY4UGFyYW1l
dGVyPD4sIHYsIHZhbHVlKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpbXAtPnNl
dFN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKHYsIGVjKTsKICAgICBpZiAoVU5MSUtFTFko
ZWMpKQpAQCAtMTA1Nyw3ICsxMDU3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2
b2lkTWV0aG9kV2l0aEFyZ3NDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmcKICAgICAg
ICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkp
OwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAgU1RSSU5HX1RP
X1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIEVY
Q0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhU
ZXN0T2JqKiwgb2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwogICAgIGltcC0+dm9pZE1ldGhvZFdp
dGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQo
KTsKQEAgLTEwNzcsNyArMTA3Nyw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9u
Z01ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAgICAg
IHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwog
ICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAgIFNUUklOR19UT19W
OFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKKyAgICBFWENF
UFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBFWENFUFRJT05fQkxPQ0soVGVz
dE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUo
djg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKICAgICByZXR1cm4gdjhJbnRlZ2VyKGlt
cC0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKSwgYXJncy5HZXRJ
c29sYXRlKCkpOwogfQpAQCAtMTA5Nyw3ICsxMDk3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBvYmpNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJ
c29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5I
b2xkZXIoKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAg
U1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJB
cmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkp
OworICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElP
Tl9CTE9DSyhUZXN0T2JqKiwgb2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2Jq
Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwogICAgIHJldHVybiB0
b1Y4KGltcC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBhcmdz
LkhvbGRlcigpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CkBAIC0xMTMxLDcgKzExMzEsNyBAQCBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRU
aHJvd3NDYWxsYmFjayhjb25zdCB2OAogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9O
YXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgewot
ICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwg
c3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBFWENF
UFRJT05fQkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZShNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4VGVz
dE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKICAgICBSZWZQ
dHI8VGVzdE9iaj4gcmVzdWx0ID0gaW1wLT5tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhy
b3dzKHN0ckFyZywgb2JqQXJnLCBlYyk7CiAgICAgaWYgKFVOTElLRUxZKGVjKSkKQEAgLTE0Mzks
NyArMTQzOSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kV2l0aE9wdGlv
bmFsU3RyaW5nQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgICAgIGltcC0+bWV0aG9k
V2l0aE9wdGlvbmFsU3RyaW5nKCk7CiAgICAgICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogICAg
IH0KLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVy
PD4sIHN0ciwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ciwgTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgaW1wLT5t
ZXRob2RXaXRoT3B0aW9uYWxTdHJpbmcoc3RyKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsK
IH0KQEAgLTE0NDgsNyArMTQ0OCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWRDYWxsYmFjayhjb25zdCB2CiB7CiAgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5l
ZCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIo
KSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRl
cjw+LCBzdHIsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVm
aW5lZCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHIsIE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIGltcC0+
bWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWQoc3RyKTsKICAgICByZXR1cm4gdjhV
bmRlZmluZWQoKTsKIH0KQEAgLTE0NTcsNyArMTQ1Nyw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gbWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxsU3RyaW5nQ2FsbGJhY2soY29u
c3QKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
Z0lzTnVsbFN0cmluZyIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUo
YXJncy5Ib2xkZXIoKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9D
SyhWOFBhcmFtZXRlcjw+LCBzdHIsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc051bGxTdHJpbmcpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwg
c3RyLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNOdWxsU3RyaW5n
KSk7CiAgICAgaW1wLT5tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGxTdHJpbmcoc3RyKTsK
ICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KQEAgLTE1NDUsNyArMTU0NSw3IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDFDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0T2JqKiwg
b2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENF
UFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soVjhQ
YXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZh
dWx0SXNVbmRlZmluZWQpKTsKICAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnLCBzdHJB
cmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQpAQCAtMTU3Miw3ICsxNTcyLDcgQEAg
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kM0NhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAg
ICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
OwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8
Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBp
bXAtPm92ZXJsb2FkZWRNZXRob2Qoc3RyQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsK
IH0KQEAgLTE2NjIsNyArMTY2Miw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3Zl
cmxvYWRlZE1ldGhvZDExQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2Jq
Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhD
RVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKFY4
UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSk7CiAgICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKHN0ckFyZyk7CiAg
ICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CkBAIC0xNzM1LDcgKzE3MzUsNyBAQCBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2QxMkNhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZwogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoub3ZlcmxvYWRlZE1l
dGhvZDEyIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhy
b3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7Ci0gICAgU1RSSU5H
X1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCB0eXBlLCBNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKKyAgICBF
WENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgdHlwZSwgTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgVGVzdE9iajo6b3ZlcmxvYWRl
ZE1ldGhvZDEodHlwZSk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CkBAIC0xOTI5LDcg
KzE5MjksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN0cmljdEZ1bmN0aW9uQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRl
c3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIHsKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFy
YW1ldGVyPD4sIHN0ciwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ciwgTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAg
RVhDRVBUSU9OX0JMT0NLKGZsb2F0LCBhLCBzdGF0aWNfY2FzdDxmbG9hdD4oTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS0+TnVtYmVyVmFsdWUoKSkp
OwogICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGIsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFJlZlB0cjxib29sPiBy
ZXN1bHQgPSBpbXAtPnN0cmljdEZ1bmN0aW9uKHN0ciwgYSwgYiwgZWMpOwpAQCAtMTk0Nyw3ICsx
OTQ3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YXJpYWRpY1N0cmluZ01ldGhv
ZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGEKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8
IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0
SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQ
YXJhbWV0ZXI8PiwgaGVhZCwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVs
dElzVW5kZWZpbmVkKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIGhlYWQs
IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwog
ICAgIEVYQ0VQVElPTl9CTE9DSyhWZWN0b3I8U3RyaW5nPiwgdGFpbCwgdG9OYXRpdmVBcmd1bWVu
dHM8U3RyaW5nPihhcmdzLCAxKSk7CiAgICAgaW1wLT52YXJpYWRpY1N0cmluZ01ldGhvZChoZWFk
LCB0YWlsKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCBiMGZlZDljZDdlNzA0OWQ2OTBlYzA4NzBl
MDI4YTM1ZjhjMDBhNGVmLi44YTU1ZGRiNDAyZDQ4MzViY2Q4NWNkZjRkNDE4OGZiNjljNDJmODU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC04
OCw3ICs4OCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzOjpjb25zdHJ1Y3RvcjRDYWxsYmFjayhjb25zdCB2CiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuQ29uc3RydWN0b3I0Iik7CiAgICAgCi0gICAg
U1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJp
bmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkp
OworICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJpbmcsIE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogCiAgICAgUmVmUHRy
PFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzPiBpbXBsID0gVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnM6OmNyZWF0ZShzdHJpbmcpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBl
ciA9IGFyZ3MuSG9sZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDI1MzJmMWU2ODE0OTY4ZWUzNmExNzliOWIw
N2E1MDRhNGY1ZGUxM2EuLmRlNjUyNDkzOGZjODc4OTEzZGE2NmU2MmE4ZGEzYTlmM2M1YzA1NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuY3BwCkBAIC0yMTgsNyArMjE4LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Y29uc3RydWN0b3JDYWxsYmFjaygKICAg
ICAgICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQog
ICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xh
dGUoKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFt
ZXRlcjw+LCBoZWxsbywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIGhlbGxvLCBN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAg
ICBNZXNzYWdlUG9ydEFycmF5IG1lc3NhZ2VQb3J0QXJyYXlUcmFuc2Zlckxpc3Q7CiAgICAgQXJy
YXlCdWZmZXJBcnJheSBhcnJheUJ1ZmZlckFycmF5VHJhbnNmZXJMaXN0OwogICAgIGlmIChhcmdz
Lkxlbmd0aCgpID4gMikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhCaW5kaW5nTWFjcm9zLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmdN
YWNyb3MuaAppbmRleCBmMzgwOGNhNWY2NzgzYTA5NDI2ZjI1MjEwNjMyZjliNDE3Y2QzYmIxLi41
Mzg0NWUyZDZlY2E3YjAwZTE5ODBiZWQ3MjlhNTM3NjZmYjYxYTM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmdNYWNyb3MuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmdNYWNyb3MuaApAQCAtNTMsMjYgKzUzLDE1IEBAIGVu
dW0gUGFyYW1ldGVyRGVmYXVsdFBvbGljeSB7CiAgICAgICAgICAgICByZXR1cm4gYmxvY2suUmVU
aHJvdygpOyAgICAgICBcCiAgICAgfQogCi0jZGVmaW5lIFNUUklOR19UT19WOFBBUkFNRVRFUl9F
WENFUFRJT05fQkxPQ0sodHlwZSwgdmFyLCB2YWx1ZSkgXAotICAgIHR5cGUgdmFyOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgIHY4OjpUcnlDYXRjaCBibG9jazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgICAgICB2YXIgPSAodmFsdWUpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgaWYgKGJsb2NrLkhhc0NhdWdodCgpKSB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBibG9jay5SZVRocm93KCk7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgcmV0dXJu
IHY4OjpVbmRlZmluZWQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg
fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgfQotCi0jZGVmaW5lIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tf
Vk9JRCh0eXBlLCB2YXIsIHZhbHVlKSBcCi0gICAgdHlwZSB2YXI7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgIHY4OjpUcnlDYXRjaCBibG9jazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgIHZhciA9ICh2YWx1ZSk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGlmIChibG9jay5IYXNDYXVnaHQo
KSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBi
bG9jay5SZVRocm93KCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICAgICAgICByZXR1cm47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIEVYQ0VQVElPTl9CTE9DS19W
T0lEKHR5cGUsIHZhciwgdmFsdWUpIFwKKyAgICB0eXBlIHZhcjsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICAgIHY4OjpUcnlDYXRjaCBibG9jazsgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgdmFyID0gKHZhbHVlKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICBpZiAoYmxvY2suSGFzQ2F1Z2h0KCkpIHsgICAgICAgICAgICAgICBcCisgICAgICAgICAg
ICBibG9jay5SZVRocm93KCk7ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJldHVy
bjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfQogCiAjZGVmaW5lIE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIGluZGV4LCBwb2xpY3kpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4U3RyaW5nUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4U3RyaW5nUmVzb3VyY2UuaAppbmRleCBkMTc5OTViYzZmNTIxODBkZmMzNTYyODEy
ODQ4YzhiZDI1ODE5MTRiLi5mODY0Y2E5OGM2MjJkMGE5ZTQ5YWZmN2E4NjFmOTI5NWNhZDdlNmI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFN0cmluZ1Jlc291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhTdHJpbmdSZXNvdXJjZS5oCkBA
IC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBUaGlzIGNhbiB0aHJvdy4g
WW91IG11c3QgdXNlIHRoaXMgdGhyb3VnaCB0aGUKLSAgICAvLyBTVFJJTkdfVE9fVjhQQVJBTUVU
RVJfRVhDRVBUSU9OX0JMT0NLKCkgbWFjcm8uCisgICAgLy8gRVhDRVBUSU9OX0JMT0NLKCkgbWFj
cm8uCiAgICAgVjhQYXJhbWV0ZXImIG9wZXJhdG9yPSh2ODo6TG9jYWw8djg6OlZhbHVlPik7CiAg
ICAgb3BlcmF0b3IgU3RyaW5nKCkgeyByZXR1cm4gdG9TdHJpbmc8U3RyaW5nPigpOyB9CiAgICAg
b3BlcmF0b3IgQXRvbWljU3RyaW5nKCkgeyByZXR1cm4gdG9TdHJpbmc8QXRvbWljU3RyaW5nPigp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDb25z
b2xlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENvbnNv
bGVDdXN0b20uY3BwCmluZGV4IDE5ZTZlNzg1YWFjZWVlMWE2YzAxOTk5YWFmYjUyZTc2YTE5NzRi
ZGUuLjE5ZWZlNzljMjczNGNkNzVkYWQ0M2QwOGE1NjU0OGQyOTJmZmM3MzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENvbnNvbGVDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENvbnNvbGVDdXN0b20uY3Bw
CkBAIC02NCw3ICs2NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOENvbnNvbGU6OnByb2Zp
bGVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygi
RE9NLkNvbnNvbGUucHJvZmlsZSIpOwogICAgIENvbnNvbGUqIGltcCA9IFY4Q29uc29sZTo6dG9O
YXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElP
Tl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2s+LCB0aXRsZSwgYXJn
c1swXSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPFdpdGhVbmRlZmluZWRPck51
bGxDaGVjaz4sIHRpdGxlLCBhcmdzWzBdKTsKICAgICBpbXAtPnByb2ZpbGUodGl0bGUsIFNjcmlw
dFN0YXRlOjpjdXJyZW50KCkpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQpAQCAtNzMs
NyArNzMsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDb25zb2xlOjpwcm9maWxlRW5kQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5D
b25zb2xlLnByb2ZpbGVFbmQiKTsKICAgICBDb25zb2xlKiBpbXAgPSBWOENvbnNvbGU6OnRvTmF0
aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05f
QkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwgdGl0bGUsIGFyZ3Nb
MF0pOworICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRoVW5kZWZpbmVkT3JOdWxs
Q2hlY2s+LCB0aXRsZSwgYXJnc1swXSk7CiAgICAgaW1wLT5wcm9maWxlRW5kKHRpdGxlLCBTY3Jp
cHRTdGF0ZTo6Y3VycmVudCgpKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0
b20uY3BwCmluZGV4IGRlMjVhNjQwYzY5N2FjNDUxMzVlZThiMWYwMzA1ODQwYWVjNWRkM2UuLjVl
NDU1NjQwM2ZhM2M5ZDY0ZGNjZWE1ODRhZDIxNzBmMmY4MDNmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcApA
QCAtMzI0LDcgKzMyNCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaGFuZGxlUG9z
dE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiAgICAgICAgIGlmICgh
ZXh0cmFjdFRyYW5zZmVyYWJsZXMoYXJnc1t0cmFuc2ZlcmFibGVzQXJnSW5kZXhdLCBwb3J0QXJy
YXksIGFycmF5QnVmZmVyQXJyYXksIGFyZ3MuR2V0SXNvbGF0ZSgpKSkKICAgICAgICAgICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9F
WENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwgdGFy
Z2V0T3JpZ2luLCBhcmdzW3RhcmdldE9yaWdpbkFyZ0luZGV4XSk7CisgICAgRVhDRVBUSU9OX0JM
T0NLKFY4UGFyYW1ldGVyPFdpdGhVbmRlZmluZWRPck51bGxDaGVjaz4sIHRhcmdldE9yaWdpbiwg
YXJnc1t0YXJnZXRPcmlnaW5BcmdJbmRleF0pOwogCiAgICAgYm9vbCBkaWRUaHJvdyA9IGZhbHNl
OwogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UgPQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGV2aWNlTW90aW9uRXZlbnRD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGV2aWNlTW90
aW9uRXZlbnRDdXN0b20uY3BwCmluZGV4IDgzZmY3NzNiNzEwM2M0ZTE2NTU1M2Q1NTQyYzFiMzkx
ZDk2ZTYyZjAuLmQ5MzZkYmVlMDg3ZTk1YzIwZjliMzlmNWIwMDNkMjQ1MDRiY2IyYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERldmljZU1vdGlvbkV2
ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhE
ZXZpY2VNb3Rpb25FdmVudEN1c3RvbS5jcHAKQEAgLTE2NCw3ICsxNjQsNyBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhEZXZpY2VNb3Rpb25FdmVudDo6aW50ZXJ2YWxBY2Nlc3NvckdldHRlcih2
ODo6TG9jYWw8djg6Ogogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGV2aWNlTW90aW9uRXZlbnQ6
OmluaXREZXZpY2VNb3Rpb25FdmVudENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CiB7CiAgICAgRGV2aWNlTW90aW9uRXZlbnQqIGltcCA9IFY4RGV2aWNlTW90aW9uRXZlbnQ6OnRv
TmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJ
T05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgdHlwZSwgYXJnc1swXSk7CisgICAgRVhDRVBUSU9OX0JM
T0NLKFY4UGFyYW1ldGVyPD4sIHR5cGUsIGFyZ3NbMF0pOwogICAgIGJvb2wgYnViYmxlcyA9IGFy
Z3NbMV0tPkJvb2xlYW5WYWx1ZSgpOwogICAgIGJvb2wgY2FuY2VsYWJsZSA9IGFyZ3NbMl0tPkJv
b2xlYW5WYWx1ZSgpOwogICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25EYXRhOjpBY2NlbGVyYXRpb24+
IGFjY2VsZXJhdGlvbiA9IHJlYWRBY2NlbGVyYXRpb25Bcmd1bWVudChhcmdzWzNdKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERldmljZU9yaWVudGF0
aW9uRXZlbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAKaW5kZXggYzY4NjFiYWU5N2FmYWE5ZmI2
MjRlNTg2YmExYTVlY2I5Mjg4OGUwNC4uMzkxNDYxNjEzNGJlNzk0NzczZjE4NzJiYTI3YmRjMWY5
ZjMwODE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAKQEAgLTc4
LDcgKzc4LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGV2aWNlT3JpZW50YXRpb25FdmVu
dDo6YWJzb2x1dGVBY2Nlc3NvckdldHRlcih2ODo6TG9jYWwKIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmluaXREZXZpY2VPcmllbnRhdGlvbkV2ZW50Q2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50KiBpbXAgPSBWOERldmljZU9yaWVudGF0aW9uRXZlbnQ6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJh
bWV0ZXI8PiwgdHlwZSwgYXJnc1swXSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVy
PD4sIHR5cGUsIGFyZ3NbMF0pOwogICAgIGJvb2wgYnViYmxlcyA9IGFyZ3NbMV0tPkJvb2xlYW5W
YWx1ZSgpOwogICAgIGJvb2wgY2FuY2VsYWJsZSA9IGFyZ3NbMl0tPkJvb2xlYW5WYWx1ZSgpOwog
ICAgIC8vIElmIGFscGhhLCBiZXRhLCBnYW1tYSBvciBhYnNvbHV0ZSBhcmUgbnVsbCBvciB1bmRl
ZmluZWQsIG1hcmsgdGhlbSBhcyBub3QgcHJvdmlkZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIaXN0b3J5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwCmluZGV4IDNjZDY2NmRl
MzE2ODZkZmRiYmU2YzAwMGM5MTlhZGMwN2JhMjVmMjEuLjM3OTk3ZjFlNmVkNzZlMDk5NDNhNGZh
NTRjZDExMDAxN2UxZDVmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwCkBAIC02NSw4ICs2NSw4IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOEhpc3Rvcnk6OnB1c2hTdGF0ZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiAgICAgaWYgKGRpZFRocm93KQogICAgICAgICByZXR1cm4gdjg6OlVuZGVm
aW5lZCgpOwogCi0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBh
cmFtZXRlcjxXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2s+LCB0aXRsZSwgYXJnc1sxXSk7Ci0gICAg
U1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRoVW5k
ZWZpbmVkT3JOdWxsQ2hlY2s+LCB1cmwsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIs
IERlZmF1bHRJc051bGxTdHJpbmcpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8
V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwgdGl0bGUsIGFyZ3NbMV0pOworICAgIEVYQ0VQVElP
Tl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2s+LCB1cmwsIE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc051bGxTdHJpbmcpKTsKIAogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIEhpc3RvcnkqIGhpc3RvcnkgPSBWOEhpc3Rvcnk6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwpAQCAtODIsOCArODIsOCBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhIaXN0b3J5OjpyZXBsYWNlU3RhdGVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogICAgIGlmIChkaWRUaHJvdykKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmlu
ZWQoKTsKIAotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJh
bWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwgdGl0bGUsIGFyZ3NbMV0pOwotICAgIFNU
UklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVm
aW5lZE9yTnVsbENoZWNrPiwgdXJsLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBE
ZWZhdWx0SXNOdWxsU3RyaW5nKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPFdp
dGhVbmRlZmluZWRPck51bGxDaGVjaz4sIHRpdGxlLCBhcmdzWzFdKTsKKyAgICBFWENFUFRJT05f
QkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwgdXJsLCBNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNOdWxsU3RyaW5nKSk7CiAKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBIaXN0b3J5KiBoaXN0b3J5ID0gVjhIaXN0b3J5Ojp0
b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEludGVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhJbnRlbnRDdXN0b20uY3BwCmluZGV4IDEwZGE3OGQ4MjRkYTM0OTljMjA2
MzhhNTg0MWU0YTdhNDcyODcwMWEuLmUyNWQxMTdhOWFiMDVjYWQ5ZDVlYmFhNzA3N2Y5M2MzN2U0
OTkwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElu
dGVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SW50ZW50Q3VzdG9tLmNwcApAQCAtNjAsOCArNjAsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhJbnRlbnQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2tDdXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YQogICAgIH0KIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFNUUklOR19UT19WOFBB
UkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgYWN0aW9uLCBNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKLSAgICBTVFJJTkdf
VE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHR5cGUsIE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIEVY
Q0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBhY3Rpb24sIE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhW
OFBhcmFtZXRlcjw+LCB0eXBlLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZh
dWx0SXNVbmRlZmluZWQpKTsKICAgICBNZXNzYWdlUG9ydEFycmF5IG1lc3NhZ2VQb3J0QXJyYXlU
cmFuc2Zlckxpc3Q7CiAgICAgQXJyYXlCdWZmZXJBcnJheSBhcnJheUJ1ZmZlckFycmF5VHJhbnNm
ZXJMaXN0OwogICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMykgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMVHJhbnNhY3Rpb25DdXN0b20u
Y3BwCmluZGV4IDU5M2FjYmI5NGYzYjA2YjNlNjQzZGNkOTE1M2ExYTRiOTU4YTgwYWIuLjYwZmJl
MzZlYjhjYTBkOThiYTliZmY4MDEyYmI4NjQ2ODA2YTVkNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTUUxUcmFuc2FjdGlvbkN1c3Rv
bS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4U1FMVHJhbnNh
Y3Rpb246OmV4ZWN1dGVTcWxDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJgogICAgIGlmIChh
cmdzLkxlbmd0aCgpID09IDApCiAgICAgICAgIHJldHVybiBzZXRET01FeGNlcHRpb24oU1lOVEFY
X0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwogCi0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VY
Q0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdGF0ZW1lbnQsIGFyZ3NbMF0pOworICAgIEVY
Q0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdGF0ZW1lbnQsIGFyZ3NbMF0pOwogCiAgICAg
VmVjdG9yPFNRTFZhbHVlPiBzcWxWYWx1ZXM7CiAKQEAgLTgwLDcgKzgwLDcgQEAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4U1FMVHJhbnNhY3Rpb246OmV4ZWN1dGVTcWxDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJgogICAgICAgICAgICAgICAgIEVYQ0VQVElPTl9CTE9DSyhkb3VibGUsIHNx
bFZhbHVlLCB2YWx1ZS0+TnVtYmVyVmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgc3FsVmFsdWVz
LmFwcGVuZChTUUxWYWx1ZShzcWxWYWx1ZSkpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1l
dGVyPD4sIHNxbFZhbHVlLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgRVhDRVBUSU9OX0JMT0NL
KFY4UGFyYW1ldGVyPD4sIHNxbFZhbHVlLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgc3FsVmFs
dWVzLmFwcGVuZChTUUxWYWx1ZShzcWxWYWx1ZSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTUUxUcmFu
c2FjdGlvblN5bmNDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4U1FMVHJhbnNhY3Rpb25TeW5jQ3VzdG9tLmNwcAppbmRleCAxYWI2NjI2NzhmZWNiNDVkM2I5
YjYxMjE0ZDU4NGE5YjA3NGNhZjNiLi4yYzkyYmUzM2Q2MmFiYWQyMmYwZDBlZDI0YjIwNzBlMmVl
MzYzOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhT
UUxUcmFuc2FjdGlvblN5bmNDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFNRTFRyYW5zYWN0aW9uU3luY0N1c3RvbS5jcHAKQEAgLTUzLDcgKzUzLDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4U1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXRlU3Fs
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW4KICAgICBpZiAoIWFyZ3MuTGVuZ3RoKCkpCiAgICAg
ICAgIHJldHVybiBzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkp
OwogCi0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRl
cjw+LCBzdGF0ZW1lbnQsIGFyZ3NbMF0pOworICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRl
cjw+LCBzdGF0ZW1lbnQsIGFyZ3NbMF0pOwogCiAgICAgVmVjdG9yPFNRTFZhbHVlPiBzcWxWYWx1
ZXM7CiAKQEAgLTgwLDcgKzgwLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4U1FMVHJhbnNh
Y3Rpb25TeW5jOjpleGVjdXRlU3FsQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW4KICAgICAgICAg
ICAgICAgICBFWENFUFRJT05fQkxPQ0soZG91YmxlLCBzcWxWYWx1ZSwgdmFsdWUtPk51bWJlclZh
bHVlKCkpOwogICAgICAgICAgICAgICAgIHNxbFZhbHVlcy5hcHBlbmQoU1FMVmFsdWUoc3FsVmFs
dWUpKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgU1RSSU5HX1RPX1Y4
UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzcWxWYWx1ZSwgdmFsdWUp
OworICAgICAgICAgICAgICAgIEVYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzcWxWYWx1
ZSwgdmFsdWUpOwogICAgICAgICAgICAgICAgIHNxbFZhbHVlcy5hcHBlbmQoU1FMVmFsdWUoc3Fs
VmFsdWUpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEN1c3RvbS5jcHAKaW5kZXggNDE1NjgzMmQyZGM4NGE3MjQ2YmU2ZDI3NTY1NTU1ZTIwZDRl
ZmRhZS4uMTE1NzAxMmUyZDBiZWRkYTU3NTI2ZDk1MjI1NDY3M2ZiYTI1OTUyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0zMDgsNyArMzA4LDcgQEAgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb25DYWxs
YmFjayhjb25zdCB2ODo6QXIKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGltcCA9IFY4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBpZiAoYXJn
cy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBU
SU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIG5hbWUsIGFyZ3NbMF0pOworICAgIEVYQ0VQVElPTl9C
TE9DSyhWOFBhcmFtZXRlcjw+LCBuYW1lLCBhcmdzWzBdKTsKICAgICBXZWJHTEV4dGVuc2lvbiog
ZXh0ZW5zaW9uID0gaW1wLT5nZXRFeHRlbnNpb24obmFtZSk7CiAgICAgcmV0dXJuIHRvVjhPYmpl
Y3QoZXh0ZW5zaW9uLCBhcmdzLkhvbGRlcigpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>