<?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>101917</bug_id>
          
          <creation_ts>2012-11-12 03:16:09 -0800</creation_ts>
          <short_desc>[V8] Replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper()</short_desc>
          <delta_ts>2012-11-14 02:48:15 -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>dglazkov</cc>
    
    <cc>d-r</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>764194</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-12 03:16:09 -0800</bug_when>
    <thetext>setJSWrapperForDOMObject() is always coupled with setDOMWrapper(). We can replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper(). (c.f. CREATE_DOM_WRAPPER() in JSC)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764198</commentid>
    <comment_count>1</comment_count>
      <attachid>173601</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-12 03:18:21 -0800</bug_when>
    <thetext>Created attachment 173601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764270</commentid>
    <comment_count>2</comment_count>
      <attachid>173601</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 04:41:46 -0800</bug_when>
    <thetext>Comment on attachment 173601
Patch

Attachment 173601 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14816126

New failing tests:
fast/dom/undetectable-document-all.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764311</commentid>
    <comment_count>3</comment_count>
      <attachid>173601</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-12 05:39:05 -0800</bug_when>
    <thetext>Comment on attachment 173601
Patch

It looks like that special handling is needed for V8HTMLDocument::wrapInShadowObject().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764498</commentid>
    <comment_count>4</comment_count>
      <attachid>173601</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-12 09:38:12 -0800</bug_when>
    <thetext>Comment on attachment 173601
Patch

I really like the idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766462</commentid>
    <comment_count>5</comment_count>
      <attachid>174081</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-13 22:56:31 -0800</bug_when>
    <thetext>Created attachment 174081
Fixed crashes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766487</commentid>
    <comment_count>6</comment_count>
      <attachid>174081</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 23:22:02 -0800</bug_when>
    <thetext>Comment on attachment 174081
Fixed crashes

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

LGTM, assuming the tests pass.

&gt; Source/WebCore/bindings/v8/custom/V8HTMLDocumentCustom.cpp:78
&gt;      shadow-&gt;SetPrototype(wrapper);

I looked into this shadow object, by the way.  It&apos;s needed to support a corner case in document.all.  If the web site sets document.all to some object, that object is stored in the shadow object so that when the property is deleted, the native document.all can re-appear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766570</commentid>
    <comment_count>7</comment_count>
      <attachid>174081</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 00:49:56 -0800</bug_when>
    <thetext>Comment on attachment 174081
Fixed crashes

Clearing flags on attachment: 174081

Committed r134567: &lt;http://trac.webkit.org/changeset/134567&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766571</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 00:50:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766670</commentid>
    <comment_count>9</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-11-14 02:34:02 -0800</bug_when>
    <thetext>If I am not mistaken, this is causing some bindings test failures:

http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug%20WK2/builds/5866/steps/bindings-generation-tests/logs/stdio

FAIL: (V8) V8TestOverloadedConstructors.cpp
--- WebCore/bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp	2012-11-13 15:11:00.184439424 -0800
+++ /tmp/tmpRWboHe/V8TestOverloadedConstructors.cpp	2012-11-14 02:03:40.638908011 -0800
@@ -54,8 +54,7 @@
     RefPtr&lt;TestOverloadedConstructors&gt; impl = TestOverloadedConstructors::create(arrayBuffer);
     v8::Handle&lt;v8::Object&gt; wrapper = args.Holder();
 
-    V8DOMWrapper::setDOMWrapper(wrapper, &amp;info, impl.get());
-    V8DOMWrapper::setJSWrapperForDOMObject(impl.release(), wrapper, args.GetIsolate());
+    V8DOMWrapper::createDOMWrapper(impl.release(), &amp;info, wrapper, args.GetIsolate());
     return wrapper;
 }
[...]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766671</commentid>
    <comment_count>10</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-14 02:36:09 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; If I am not mistaken, this is causing some bindings test failures:
&gt; 
&gt; http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug%20WK2/builds/5866/steps/bindings-generation-tests/logs/stdio

Sorry, will fix in mins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766677</commentid>
    <comment_count>11</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-14 02:39:30 -0800</bug_when>
    <thetext>Fixed in r134582.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766689</commentid>
    <comment_count>12</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-11-14 02:48:15 -0800</bug_when>
    <thetext>Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173601</attachid>
            <date>2012-11-12 03:18:21 -0800</date>
            <delta_ts>2012-11-13 22:56:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101917-20121112201623.patch</filename>
            <type>text/plain</type>
            <size>20151</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQzZGUyOTViNTE2NjY2
NjU2NGY2YzkyYjNlNTY4MGFkZmUwY2E4Ny4uZjExZDNlYjk0OTk2M2JmMDJlNjkzOTA4YWE4OWE5
YjA5MWNiZTc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTExLTEyICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFJlcGxhY2Ug
c2V0RE9NV3JhcHBlcigpICsgc2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KCkgd2l0aCBjcmVhdGVE
T01XcmFwcGVyKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMTkxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIHNldEpTV3JhcHBlckZvckRPTU9iamVjdCgpIGlzIGFsd2F5cyBjb3VwbGVkIHdpdGggc2V0
RE9NV3JhcHBlcigpLgorICAgICAgICBXZSBjYW4gcmVwbGFjZSBzZXRET01XcmFwcGVyKCkgKyBz
ZXRKU1dyYXBwZXJGb3JET01PYmplY3QoKSB3aXRoCisgICAgICAgIGNyZWF0ZURPTVdyYXBwZXIo
KS4gKGMuZi4gQ1JFQVRFX0RPTV9XUkFQUEVSKCkgaW4gSlNDKQorCisgICAgICAgIE5vIHRlc3Rz
LiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JDYWxsYmFjayk6
CisgICAgICAgIChHZW5lcmF0ZUV2ZW50Q29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgIChH
ZW5lcmF0ZU5hbWVkQ29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZVRvVjhD
b252ZXJ0ZXJzKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93U2hlbGw6Omluc3RhbGxET01XaW5kb3cpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAgICAoVjhET01XcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcik6CisgICAgICAgICogYmluZGlu
Z3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6aW5pdGlhbGl6ZUlmTmVlZGVkKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlckN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWOEFycmF5QnVmZmVyOjpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaDoKKyAgICAgICAg
KFdlYkNvcmU6OndyYXBBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3Ry
dWN0V2ViR0xBcnJheSk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NRm9ybURh
dGFDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01Gb3JtRGF0YTo6Y29uc3RydWN0
b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhEYXRhVmlldzo6Y29uc3RydWN0b3JDYWxsYmFj
ayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnY4SFRNTEltYWdlRWxlbWVudENvbnN0cnVj
dG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudENvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW50ZW50Ojpjb25zdHJ1Y3RvckNhbGxi
YWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZUNoYW5uZWw6OmNvbnN0cnVj
dG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2Jz
ZXJ2ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbk9ic2VydmVyOjpj
b25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJL
aXRQb2ludENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViS2l0UG9pbnQ6
OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YlNvY2tldEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYlNvY2tldDo6Y29uc3Ry
dWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJl
cXVlc3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFhNTEh0dHBSZXF1ZXN0
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKwogMjAxMi0xMS0xMSAgS2VudGFybyBIYXJhICA8aGFy
YWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBBZGQgQVNTRVJUKCkgdG8gZ3VhcmFu
dGVlIHRoYXQgd2UgZG9uJ3Qgc3RvcmUgTlVMTCBwb2ludGVycyB0byBWOCBpbnRlcm5hbCBmaWVs
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0KaW5kZXggMTRmNDRiNzdkOWU1NGY5ZTI4NDNmZTc0N2NlODE3YjdjMDAxMjNjMC4uNTI5
YWE4YmU5MTJhMTA3MzY5NjUzOGUxYzIzZDU4OGI5NDUwMzNmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTE5MzUsOCAr
MTkzNSw3IEBAIEVORAogCiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIAotICAgIFY4
RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCAmaW5mbywgaW1wbC5nZXQoKSk7Ci0g
ICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1wbC5yZWxlYXNlKCks
IHdyYXBwZXIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBWOERPTVdyYXBwZXI6OmNyZWF0ZURP
TVdyYXBwZXIoaW1wbC5yZWxlYXNlKCksICZpbmZvLCB3cmFwcGVyLCBhcmdzLkdldElzb2xhdGUo
KSk7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiBFTkQKIApAQCAtMTk4MCw4ICsxOTc5LDcgQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4JHtpbXBsQ2xhc3NOYW1lfTo6Y29uc3RydWN0b3JDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBSZWZQdHI8JHtpbXBsQ2xhc3NOYW1lfT4gZXZlbnQg
PSAke2ltcGxDbGFzc05hbWV9OjpjcmVhdGUodHlwZSwgZXZlbnRJbml0KTsKIAogICAgIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7Ci0gICAgVjhET01XcmFw
cGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsICZpbmZvLCBldmVudC5nZXQoKSk7Ci0gICAgVjhE
T01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoZXZlbnQucmVsZWFzZSgpLCB3cmFw
cGVyLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgVjhET01XcmFwcGVyOjpjcmVhdGVET01XcmFw
cGVyKGV2ZW50LnJlbGVhc2UoKSwgJmluZm8sIHdyYXBwZXIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
ICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApAQCAtMjEyMSw4ICsyMTE5LDcgQEAgRU5ECiAKICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwogCi0gICAgVjhET01XcmFwcGVyOjpzZXRET01X
cmFwcGVyKHdyYXBwZXIsICZWOCR7aW1wbENsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6aW5mbywgaW1w
bC5nZXQoKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1w
bC5yZWxlYXNlKCksIHdyYXBwZXIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBWOERPTVdyYXBw
ZXI6OmNyZWF0ZURPTVdyYXBwZXIoaW1wbC5yZWxlYXNlKCksICZWOCR7aW1wbENsYXNzTmFtZX1D
b25zdHJ1Y3Rvcjo6aW5mbywgd3JhcHBlciwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIHJldHVy
biB3cmFwcGVyOwogRU5ECiAKQEAgLTM0NDYsNyArMzQ0Myw3IEBAIEVORAogICAgICAgICByZXR1
cm4gd3JhcHBlcjsKIAogICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBp
bXBsLmdldCgpKTsKLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxl
ID0gVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1wbCwgd3JhcHBlciwg
aXNvbGF0ZSk7CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9
IFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihpbXBsLCAmaW5mbywgd3JhcHBlciwgaXNv
bGF0ZSk7CiAgICAgaWYgKCFoYXNEZXBlbmRlbnRMaWZldGltZSkKICAgICAgICAgd3JhcHBlckhh
bmRsZS5NYXJrSW5kZXBlbmRlbnQoKTsKICAgICByZXR1cm4gd3JhcHBlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggMWY3OGJkNmI1
ZWJmY2Y4YTNkNTY5MzMxMDdhMmZlMTE5Y2Q0MzU5Mi4uZjQ5M2ZkZGMzN2JlMjY5NDI1N2U2OGIy
YmQxMmFkZmFiY2FkNzY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhE
T01XaW5kb3dTaGVsbC5jcHAKQEAgLTQzNCw5ICs0MzQsOCBAQCBib29sIFY4RE9NV2luZG93U2hl
bGw6Omluc3RhbGxET01XaW5kb3coKQogCiAgICAgVjhET01XaW5kb3c6Omluc3RhbGxQZXJDb250
ZXh0UHJvcGVydGllcyh3aW5kb3dXcmFwcGVyLCB3aW5kb3cpOwogCi0gICAgVjhET01XcmFwcGVy
OjpzZXRET01XcmFwcGVyKHdpbmRvd1dyYXBwZXIsICZWOERPTVdpbmRvdzo6aW5mbywgd2luZG93
KTsKICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIodjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pjo6Q2FzdCh3aW5kb3dXcmFwcGVyLT5HZXRQcm90b3R5cGUoKSksICZWOERPTVdpbmRvdzo6aW5m
bywgd2luZG93KTsKLSAgICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChQ
YXNzUmVmUHRyPERPTVdpbmRvdz4od2luZG93KSwgd2luZG93V3JhcHBlcik7CisgICAgVjhET01X
cmFwcGVyOjpjcmVhdGVET01XcmFwcGVyKFBhc3NSZWZQdHI8RE9NV2luZG93Pih3aW5kb3cpLCAm
VjhET01XaW5kb3c6OmluZm8sIHdpbmRvd1dyYXBwZXIpOwogCiAgICAgLy8gSW5zdGFsbCB0aGUg
d2luZG93V3JhcHBlciBhcyB0aGUgcHJvdG90eXBlIG9mIHRoZSBpbm5lckdsb2JhbE9iamVjdC4K
ICAgICAvLyBUaGUgZnVsbCBzdHJ1Y3R1cmUgb2YgdGhlIGdsb2JhbCBvYmplY3QgaXMgYXMgZm9s
bG93czoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCmluZGV4
IGFhYzk1ZGJlZTJhM2MyMDViZTFjMDMxNTI0MDkyZDljMWYzNWJiNDYuLjNkM2RlZWUzYzkyYmVh
M2YxNzg5ZGQ2YTk2ZGE4N2U3OTYzMjRkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01XcmFwcGVyLmNwcApAQCAtMTEyLDcgKzExMiw2IEBAIHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0PiBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoRG9jdW1lbnQqIGRlcHJlY2F0
ZWREb2N1CiAgICAgaWYgKGluc3RhbmNlLklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGluc3Rh
bmNlOwogCi0gICAgc2V0RE9NV3JhcHBlcihpbnN0YW5jZSwgdHlwZSwgaW1wbCk7CiAgICAgaWYg
KHR5cGUgPT0gJlY4SFRNTERvY3VtZW50OjppbmZvKQogICAgICAgICBpbnN0YW5jZSA9IFY4SFRN
TERvY3VtZW50Ojp3cmFwSW5TaGFkb3dPYmplY3QoaW5zdGFuY2UsIHN0YXRpY19jYXN0PE5vZGUq
PihpbXBsKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9N
V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKaW5k
ZXggNThiNzRhYzgzNDY5ZDFlYTJkZGY1NmZhZTA3NzQ3YzM0NzNjYzFjZS4uMjA1NWM3OTJiOTBj
YmJkNTRkNDAzN2NkNWRjMmU4ZWY0NGNhM2FlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01XcmFwcGVyLmgKQEAgLTEwMyw3ICsxMDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHdyYXBOYXRpdmVOb2RlRmls
dGVyKHY4OjpIYW5kbGU8djg6OlZhbHVlPik7CiAKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4KLSAgICAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHNldEpTV3JhcHBl
ckZvckRPTU9iamVjdChQYXNzUmVmUHRyPFQ+LCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCB2ODo6
SXNvbGF0ZSogPSAwKTsKKyAgICAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+
IGNyZWF0ZURPTVdyYXBwZXIoUGFzc1JlZlB0cjxUPiwgV3JhcHBlclR5cGVJbmZvKiwgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0Piwgdjg6Oklzb2xhdGUqID0gMCk7CiAKICAgICAgICAgc3RhdGljIGJv
b2wgaXNWYWxpZERPTU9iamVjdCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwogCkBAIC0xNDAsOCAr
MTQwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IFY4RE9NV3JhcHBlcjo6c2V0
SlNXcmFwcGVyRm9yRE9NT2JqZWN0KFBhc3NSZWZQdHI8VD4gb2JqZWN0LCB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHdyYXBwZXIsIHY4OjpJc29sYXRlKiBpc29sYXRlKQorICAgIHY4OjpQZXJzaXN0
ZW50PHY4OjpPYmplY3Q+IFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihQYXNzUmVmUHRy
PFQ+IG9iamVjdCwgV3JhcHBlclR5cGVJbmZvKiB0eXBlLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IHdyYXBwZXIsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogICAgIHsKKyAgICAgICAgc2V0RE9NV3Jh
cHBlcih3cmFwcGVyLCB0eXBlLCBvYmplY3QuZ2V0KCkpOwogICAgICAgICB2ODo6UGVyc2lzdGVu
dDx2ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46
Ok5ldyh3cmFwcGVyKTsKICAgICAgICAgQVNTRVJUKG1heWJlRE9NV3JhcHBlcih3cmFwcGVySGFu
ZGxlKSk7CiAgICAgICAgIHNldFdyYXBwZXJDbGFzcyhvYmplY3QuZ2V0KCksIHdyYXBwZXJIYW5k
bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4
dEV4ZWN1dGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNv
bnRleHRFeGVjdXRpb25Qcm94eS5jcHAKaW5kZXggMTVjNWU5MDBiZjVlNGY2YTc5OWM5MmZiYzI4
ODVhMjE2MTNhY2VmMC4uNjRhOTczNWY1OWI2N2NlM2EwNjhjMGIwZGFjMDQ0ZDVmMTRjMTBmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1
dGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250
ZXh0RXhlY3V0aW9uUHJveHkuY3BwCkBAIC0xNzAsOSArMTcwLDcgQEAgYm9vbCBXb3JrZXJDb250
ZXh0RXhlY3V0aW9uUHJveHk6OmluaXRpYWxpemVJZk5lZWRlZCgpCiAgICAgfQogCiAgICAgLy8g
V3JhcCB0aGUgb2JqZWN0LgotICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihqc1dvcmtl
ckNvbnRleHQsIGNvbnRleHRUeXBlLCBtX3dvcmtlckNvbnRleHQpOwotCi0gICAgVjhET01XcmFw
cGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoUGFzc1JlZlB0cjxXb3JrZXJDb250ZXh0Piht
X3dvcmtlckNvbnRleHQpLCBqc1dvcmtlckNvbnRleHQpOworICAgIFY4RE9NV3JhcHBlcjo6Y3Jl
YXRlRE9NV3JhcHBlcihQYXNzUmVmUHRyPFdvcmtlckNvbnRleHQ+KG1fd29ya2VyQ29udGV4dCks
IGNvbnRleHRUeXBlLCBqc1dvcmtlckNvbnRleHQpOwogCiAgICAgLy8gSW5zZXJ0IHRoZSBvYmpl
Y3QgaW5zdGFuY2UgYXMgdGhlIHByb3RvdHlwZSBvZiB0aGUgc2hhZG93IG9iamVjdC4KICAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGdsb2JhbE9iamVjdCA9IHY4OjpIYW5kbGU8djg6Ok9iamVj
dD46OkNhc3QobV9jb250ZXh0LT5HbG9iYWwoKS0+R2V0UHJvdG90eXBlKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJDdXN0
b20uY3BwCmluZGV4IGZiMDBhMWFkNzllNDZmMDczMmI4MWZjOTkxYjAyNzUxZGJiYzQ1Y2IuLjU4
ZTFkZGNlMTA1YWU3Y2QzNDYxMTMzZDQyYmRkOTZkM2RjMjk2YTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlckN1c3RvbS5j
cHAKQEAgLTg0LDggKzg0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4QXJyYXlCdWZmZXI6
OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKICAgICB2ODo6Vjg6
OkFkanVzdEFtb3VudE9mRXh0ZXJuYWxBbGxvY2F0ZWRNZW1vcnkoYnVmZmVyLT5ieXRlTGVuZ3Ro
KCkpOwogICAgIC8vIFRyYW5zZm9ybSB0aGUgaG9sZGVyIGludG8gYSB3cmFwcGVyIG9iamVjdCBm
b3IgdGhlIGFycmF5LgogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3Mu
SG9sZGVyKCk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsICZpbmZv
LCBidWZmZXIuZ2V0KCkpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2Jq
ZWN0KGJ1ZmZlci5yZWxlYXNlKCksIHdyYXBwZXIpOworICAgIFY4RE9NV3JhcHBlcjo6Y3JlYXRl
RE9NV3JhcHBlcihidWZmZXIucmVsZWFzZSgpLCAmaW5mbywgd3JhcHBlcik7CiAgICAgcmV0dXJu
IHdyYXBwZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKaW5kZXggNGE3MWRmZmQ0NjI1ZjA1
Njg3ZWM3OGQwMDkyNjBiM2U4MGRkNjRlOC4uOTBmMDk4Yjc3NGQ5NTlkNTUwZjUwZDU4MDM0YTgx
NDAzOGEwNWU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKQEAgLTUxLDEyICs1MSwxMSBAQCB0
ZW1wbGF0ZTxjbGFzcyBBcnJheUNsYXNzPgogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBBcnJh
eUJ1ZmZlclZpZXcoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGVJbmZvKiB0
eXBlLCBBcnJheUNsYXNzIGFycmF5LCB2ODo6RXh0ZXJuYWxBcnJheVR5cGUgYXJyYXlUeXBlLCBi
b29sIGhhc0luZGV4ZXIpCiB7CiAgICAgLy8gVHJhbnNmb3JtIHRoZSBob2xkZXIgaW50byBhIHdy
YXBwZXIgb2JqZWN0IGZvciB0aGUgYXJyYXkuCi0gICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFw
cGVyKGFyZ3MuSG9sZGVyKCksIHR5cGUsIGFycmF5LmdldCgpKTsKICAgICBBU1NFUlQoIWhhc0lu
ZGV4ZXIgfHwgc3RhdGljX2Nhc3Q8aW50MzJfdD4oYXJyYXkuZ2V0KCktPmxlbmd0aCgpKSA+PSAw
KTsKICAgICBpZiAoaGFzSW5kZXhlcikKICAgICAgICAgYXJncy5Ib2xkZXIoKS0+U2V0SW5kZXhl
ZFByb3BlcnRpZXNUb0V4dGVybmFsQXJyYXlEYXRhKGFycmF5LmdldCgpLT5iYXNlQWRkcmVzcygp
LCBhcnJheVR5cGUsIGFycmF5LmdldCgpLT5sZW5ndGgoKSk7CiAgICAgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIoKTsKLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01P
YmplY3QoYXJyYXkucmVsZWFzZSgpLCB3cmFwcGVyKTsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVyOjpjcmVhdGVET01XcmFwcGVyKGFy
cmF5LnJlbGVhc2UoKSwgdHlwZSwgd3JhcHBlcik7CiAgICAgd3JhcHBlckhhbmRsZS5NYXJrSW5k
ZXBlbmRlbnQoKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KQEAgLTIwNCw3ICsyMDMsNiBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0V2ViR0xBcnJheShjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzLCBXcmFwcGVyVHlwZQogCiAKICAgICAvLyBUcmFuc2Zvcm0gdGhlIGhvbGRlciBp
bnRvIGEgd3JhcHBlciBvYmplY3QgZm9yIHRoZSBhcnJheS4KLSAgICBWOERPTVdyYXBwZXI6OnNl
dERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgdHlwZSwgYXJyYXkuZ2V0KCkpOwogICAgIGFyZ3Mu
SG9sZGVyKCktPlNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRlcm5hbEFycmF5RGF0YShhcnJheS5n
ZXQoKS0+YmFzZUFkZHJlc3MoKSwgYXJyYXlUeXBlLCBhcnJheS5nZXQoKS0+bGVuZ3RoKCkpOwog
CiAgICAgaWYgKCFzcmNBcnJheS5Jc0VtcHR5KCkpIHsKQEAgLTIxNiw3ICsyMTQsNyBAQCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0V2ViR0xBcnJheShjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzLCBXcmFwcGVyVHlwZQogICAgIH0KIAogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
d3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7Ci0gICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4g
d3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KGFy
cmF5LnJlbGVhc2UoKSwgd3JhcHBlcik7CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4g
d3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihhcnJheS5yZWxl
YXNlKCksIHR5cGUsIHdyYXBwZXIpOwogICAgIHdyYXBwZXJIYW5kbGUuTWFya0luZGVwZW5kZW50
KCk7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1c3RvbS5jcHAKaW5kZXggMzNiZTdl
OTlkNTM5ZjFmNmVjOGMyM2MzYjhlMDExN2MzMWE0ODE5ZC4uM2U4MDhjMDM3YjgwMTYzZDlmZDYz
MTIzYzhlOGU0M2RmZjgzMGIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RE9NRm9ybURhdGFDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTUZvcm1EYXRhQ3VzdG9tLmNwcApAQCAtNTUsOCArNTUsNyBA
QCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01Gb3JtRGF0YTo6Y29uc3RydWN0b3JDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcgogICAgIFJlZlB0cjxET01Gb3JtRGF0YT4gZG9tRm9y
bURhdGEgPSBET01Gb3JtRGF0YTo6Y3JlYXRlKGZvcm0pOwogCiAgICAgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIoKTsKLSAgICBWOERPTVdyYXBwZXI6OnNldERP
TVdyYXBwZXIod3JhcHBlciwgJmluZm8sIGRvbUZvcm1EYXRhLmdldCgpKTsKLSAgICBWOERPTVdy
YXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChkb21Gb3JtRGF0YS5yZWxlYXNlKCksIHdy
YXBwZXIpOworICAgIFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihkb21Gb3JtRGF0YS5y
ZWxlYXNlKCksICZpbmZvLCB3cmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0
b20uY3BwCmluZGV4IDZkZTljZThlMmRjMzVjNTE2OWEzZGVjYjhmY2VjMTY4NDcyNzk1NzkuLjY3
ZWZmY2UzNzVkODIyZjYxZmU4ZWZhNjUzOWZhMGJhNTBiMGFlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAKQEAg
LTQ3LDggKzQ3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OmNvbnN0cnVj
dG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICAgICAgLy8gJ25ldyBE
YXRhVmlldygpJyBhbmQgdGhlIGNhbGwgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIGNhY2hlZCBEYXRh
VmlldyBvYmplY3QuCiAgICAgICAgIFJlZlB0cjxEYXRhVmlldz4gZGF0YVZpZXcgPSBEYXRhVmll
dzo6Y3JlYXRlKDApOwogICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBh
cmdzLkhvbGRlcigpOwotICAgICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIod3JhcHBl
ciwgJmluZm8sIGRhdGFWaWV3LmdldCgpKTsKLSAgICAgICAgVjhET01XcmFwcGVyOjpzZXRKU1dy
YXBwZXJGb3JET01PYmplY3QoZGF0YVZpZXcucmVsZWFzZSgpLCB3cmFwcGVyKTsKKyAgICAgICAg
VjhET01XcmFwcGVyOjpjcmVhdGVET01XcmFwcGVyKGRhdGFWaWV3LnJlbGVhc2UoKSwgJmluZm8s
IHdyYXBwZXIpOwogICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICB9CiAgICAgaWYgKGFyZ3Nb
MF0tPklzTnVsbCgpIHx8ICFWOEFycmF5QnVmZmVyOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVs
ZW1lbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IGVkZGQxZGU5OTgwOGE0NmRj
YTBhNTZkNDVhMTNjYzExYTE3MzFhZGYuLmNmYjk3NmZkNzc2ODNjYWU5ZmQwMTBjYjUzM2E5OTEy
YzhjYzQwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yLmNwcApAQCAtNzks
OCArNzksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4SFRNTEltYWdlRWxlbWVu
dENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZwogCiAgICAgUmVmUHRyPEhUTUxJbWFn
ZUVsZW1lbnQ+IGltYWdlID0gSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3Rv
cihkb2N1bWVudCwgb3B0aW9uYWxXaWR0aCwgb3B0aW9uYWxIZWlnaHQpOwogICAgIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7Ci0gICAgVjhET01XcmFwcGVy
OjpzZXRET01XcmFwcGVyKHdyYXBwZXIsICZWOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvcjo6
aW5mbywgaW1hZ2UuZ2V0KCkpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9N
T2JqZWN0KGltYWdlLnJlbGVhc2UoKSwgd3JhcHBlcik7CisgICAgVjhET01XcmFwcGVyOjpjcmVh
dGVET01XcmFwcGVyKGltYWdlLnJlbGVhc2UoKSwgJlY4SFRNTEltYWdlRWxlbWVudENvbnN0cnVj
dG9yOjppbmZvLCB3cmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50Q29uc3RydWN0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50Q29uc3RydWN0
b3IuY3BwCmluZGV4IGJkMDAyZjdjNTEzOGQwMjE5ODUxMTljMmViYThmY2NjYTUyMjExZTkuLjNh
NDNkN2ZhYjBhZjBlOTcxNzE5YjM1ODlhYjdiOGQ4ZjQwOTJkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnRlbnRDb25zdHJ1Y3Rvci5j
cHAKQEAgLTYyLDggKzYyLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW50ZW50Ojpjb25z
dHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgICAgICAgICBy
ZXR1cm4gc2V0RE9NRXhjZXB0aW9uKGVjLCBhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICAgICAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIoKTsKLSAgICAgICAg
VjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsICZpbmZvLCBpbXBsLmdldCgpKTsK
LSAgICAgICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1wbC5yZWxl
YXNlKCksIHdyYXBwZXIpOworICAgICAgICBWOERPTVdyYXBwZXI6OmNyZWF0ZURPTVdyYXBwZXIo
aW1wbC5yZWxlYXNlKCksICZpbmZvLCB3cmFwcGVyKTsKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7
CiAgICAgfQogCkBAIC04Niw4ICs4NSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEludGVu
dDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgICAg
ICByZXR1cm4gc2V0RE9NRXhjZXB0aW9uKGVjLCBhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBhcmdzLkhvbGRlcigpOwotICAgIFY4RE9N
V3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCAmaW5mbywgaW1wbC5nZXQoKSk7Ci0gICAg
VjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1wbC5yZWxlYXNlKCksIHdy
YXBwZXIpOworICAgIFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihpbXBsLnJlbGVhc2Uo
KSwgJmluZm8sIHdyYXBwZXIpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VD
aGFubmVsQ29uc3RydWN0b3IuY3BwCmluZGV4IGM5ZTZjMTA5Y2UzMmIxY2E4OWM0YTkyZjkyMTIw
YWUzMDRmOWVhOTIuLjc2YmU4OWEzZTAxMDczNTU5YzdlOTAwNWE0Y2VkODJhNTRjNmU1NDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VDaGFu
bmVsQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCkBAIC02Niw4ICs2Niw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOE1lc3NhZ2VDaGFubmVsOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmCiAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVy
ZW5jZSh3cmFwcGVyLCAicG9ydDEiLCB0b1Y4KG9iai0+cG9ydDEoKSwgYXJncy5Ib2xkZXIoKSwg
YXJncy5HZXRJc29sYXRlKCkpKTsKICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVm
ZXJlbmNlKHdyYXBwZXIsICJwb3J0MiIsIHRvVjgob2JqLT5wb3J0MigpLCBhcmdzLkhvbGRlcigp
LCBhcmdzLkdldElzb2xhdGUoKSkpOwogCi0gICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVy
KHdyYXBwZXIsICZpbmZvLCBvYmouZ2V0KCkpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFw
cGVyRm9yRE9NT2JqZWN0KG9iai5yZWxlYXNlKCksIHdyYXBwZXIpOworICAgIFY4RE9NV3JhcHBl
cjo6Y3JlYXRlRE9NV3JhcHBlcihvYmoucmVsZWFzZSgpLCAmaW5mbywgd3JhcHBlcik7CiAgICAg
cmV0dXJuIHdyYXBwZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKaW5kZXggNjhm
NGM3YWE1YzI5YTM0Zjg2OGZkMzlkNTcwMmFiZTBkZDg0YjVjMS4uZjgwY2U1OThhOTcyYWNiN2Q1
ZmMyZjM0OTk2OGY0YjllYThmMmJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKQEAg
LTY2LDggKzY2LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TXV0YXRpb25PYnNlcnZlcjo6
Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBSZWZQdHI8TXV0YXRp
b25PYnNlcnZlcj4gb2JzZXJ2ZXIgPSBNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoY2FsbGJhY2su
cmVsZWFzZSgpKTsKIAogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3Mu
SG9sZGVyKCk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsICZpbmZv
LCBvYnNlcnZlci5nZXQoKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01P
YmplY3Qob2JzZXJ2ZXIucmVsZWFzZSgpLCB3cmFwcGVyKTsKKyAgICBWOERPTVdyYXBwZXI6OmNy
ZWF0ZURPTVdyYXBwZXIob2JzZXJ2ZXIucmVsZWFzZSgpLCAmaW5mbywgd3JhcHBlcik7CiAgICAg
cmV0dXJuIHdyYXBwZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNTJi
MDRhNzczYzc4MTdiNDRhM2YzOTEwZWUwNmE0ZGZhMWEzYjRhYS4uMTY2OTRlOTI3MjBiMDQzODE0
NDc5MGE5NjY3MmM4YTljMTAzODcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKQEAg
LTY1LDggKzY1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViS2l0UG9pbnQ6OmNvbnN0
cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKICAgICB9CiAgICAgUmVmUHRy
PFdlYktpdFBvaW50PiBwb2ludCA9IFdlYktpdFBvaW50OjpjcmVhdGUoeCwgeSk7CiAgICAgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIoKTsKLSAgICBWOERPTVdy
YXBwZXI6OnNldERPTVdyYXBwZXIod3JhcHBlciwgJmluZm8sIHBvaW50LmdldCgpKTsKLSAgICBW
OERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChwb2ludC5yZWxlYXNlKCksIHdy
YXBwZXIpOworICAgIFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihwb2ludC5yZWxlYXNl
KCksICZpbmZvLCB3cmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tldEN1c3RvbS5j
cHAKaW5kZXggYTVkZTlhNDIzYWViNTFkNmE0YWE5NDIwNDI4NzFmYjVlOGYyNzkyNi4uNzg3ODJj
MzE2NzU3Zjg2NjJiOGYzYmUwYzk1NWJmNGZiMjA0NmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwCkBAIC0x
MDQsOCArMTA0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViU29ja2V0Ojpjb25zdHJ1
Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKICAgICAgICAgcmV0dXJuIHNl
dERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIoKTsKLSAgICBWOERPTVdyYXBwZXI6OnNl
dERPTVdyYXBwZXIod3JhcHBlciwgJmluZm8sIHdlYlNvY2tldC5nZXQoKSk7Ci0gICAgVjhET01X
cmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3Qod2ViU29ja2V0LnJlbGVhc2UoKSwgd3Jh
cHBlcik7CisgICAgVjhET01XcmFwcGVyOjpjcmVhdGVET01XcmFwcGVyKHdlYlNvY2tldC5yZWxl
YXNlKCksICZpbmZvLCB3cmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxI
dHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAppbmRleCAwNzg2YTE4ZDY4MGYyOTJjNWNmZTA3Njgx
MjU4N2FmMWNkYjY3MDY3Li45ZjE2ODAwMDc5ZDVkOGIwYmQyYmQ3YzcxNWIzODEyZGM3N2MxMGM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRw
UmVxdWVzdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcApAQCAtNjEsOCArNjEsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVzdDo6Y29uc3RydWN0b3JDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJgogICAgIFJlZlB0cjxYTUxIdHRwUmVxdWVzdD4geG1sSHR0
cFJlcXVlc3QgPSBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIHNlY3VyaXR5T3JpZ2lu
KTsKIAogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7
Ci0gICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsICZpbmZvLCB4bWxIdHRw
UmVxdWVzdC5nZXQoKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmpl
Y3QoeG1sSHR0cFJlcXVlc3QucmVsZWFzZSgpLCB3cmFwcGVyKTsKKyAgICBWOERPTVdyYXBwZXI6
OmNyZWF0ZURPTVdyYXBwZXIoeG1sSHR0cFJlcXVlc3QucmVsZWFzZSgpLCAmaW5mbywgd3JhcHBl
cik7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174081</attachid>
            <date>2012-11-13 22:56:31 -0800</date>
            <delta_ts>2012-11-14 00:49:56 -0800</delta_ts>
            <desc>Fixed crashes</desc>
            <filename>bug-101917-20121114155430.patch</filename>
            <type>text/plain</type>
            <size>33783</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDA4OGEwMzdkZjhjMjRk
MGQyNWFiNWM1OThkYjViZDMyMjY2ODcyYS4uMjI5OTcxMDU5YmQ1YTk1YThlYWUwNmFhZjE4MGFm
NDlmNGIxZDE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTExLTEyICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFJlcGxhY2Ug
c2V0RE9NV3JhcHBlcigpICsgc2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KCkgd2l0aCBjcmVhdGVE
T01XcmFwcGVyKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMTkxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIHNldEpTV3JhcHBlckZvckRPTU9iamVjdCgpIGlzIGFsd2F5cyBjb3VwbGVkIHdpdGggc2V0
RE9NV3JhcHBlcigpLgorICAgICAgICBXZSBjYW4gcmVwbGFjZSBzZXRET01XcmFwcGVyKCkgKyBz
ZXRKU1dyYXBwZXJGb3JET01PYmplY3QoKSB3aXRoCisgICAgICAgIGNyZWF0ZURPTVdyYXBwZXIo
KS4gKGMuZi4gQ1JFQVRFX0RPTV9XUkFQUEVSKCkgaW4gSlNDKQorCisgICAgICAgIE5vIHRlc3Rz
LiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JDYWxsYmFjayk6
CisgICAgICAgIChHZW5lcmF0ZUV2ZW50Q29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgIChH
ZW5lcmF0ZU5hbWVkQ29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZVRvVjhD
b252ZXJ0ZXJzKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93U2hlbGw6Omluc3RhbGxET01XaW5kb3cpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAgICAoVjhET01XcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcik6CisgICAgICAgICogYmluZGlu
Z3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6aW5pdGlhbGl6ZUlmTmVlZGVkKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlckN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWOEFycmF5QnVmZmVyOjpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaDoKKyAgICAgICAg
KFdlYkNvcmU6OndyYXBBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3Ry
dWN0V2ViR0xBcnJheSk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NRm9ybURh
dGFDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01Gb3JtRGF0YTo6Y29uc3RydWN0
b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhEYXRhVmlldzo6Y29uc3RydWN0b3JDYWxsYmFj
ayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnY4SFRNTEltYWdlRWxlbWVudENvbnN0cnVj
dG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudENvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW50ZW50Ojpjb25zdHJ1Y3RvckNhbGxi
YWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZUNoYW5uZWw6OmNvbnN0cnVj
dG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2Jz
ZXJ2ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhNdXRhdGlvbk9ic2VydmVyOjpj
b25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJL
aXRQb2ludENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViS2l0UG9pbnQ6
OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YlNvY2tldEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYlNvY2tldDo6Y29uc3Ry
dWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJl
cXVlc3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFhNTEh0dHBSZXF1ZXN0
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKwogMjAxMi0xMS0xMSAgS2VudGFybyBIYXJhICA8aGFy
YWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBBZGQgQVNTRVJUKCkgdG8gZ3VhcmFu
dGVlIHRoYXQgd2UgZG9uJ3Qgc3RvcmUgTlVMTCBwb2ludGVycyB0byBWOCBpbnRlcm5hbCBmaWVs
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0KaW5kZXggNzdjZGYxNGMxZDQ2Njk0M2IzYzA5MjVlMTVlYTkyNDA2Y2RjYWZlYy4uNjEy
NTI3MzI4MWEwMjhlMWZkMzg0ODI3NTM1YTI0NjdhNmY4M2I4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTIwMTksOCAr
MjAxOSw3IEBAIEVORAogCiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIAotICAgIFY4
RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCAmaW5mbywgaW1wbC5nZXQoKSk7Ci0g
ICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1wbC5yZWxlYXNlKCks
IHdyYXBwZXIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBWOERPTVdyYXBwZXI6OmNyZWF0ZURP
TVdyYXBwZXIoaW1wbC5yZWxlYXNlKCksICZpbmZvLCB3cmFwcGVyLCBhcmdzLkdldElzb2xhdGUo
KSk7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiBFTkQKIApAQCAtMjA3OSw4ICsyMDc4LDcgQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4JHtpbXBsQ2xhc3NOYW1lfTo6Y29uc3RydWN0b3JDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBSZWZQdHI8JHtpbXBsQ2xhc3NOYW1lfT4gZXZlbnQg
PSAke2ltcGxDbGFzc05hbWV9OjpjcmVhdGUodHlwZSwgZXZlbnRJbml0KTsKIAogICAgIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7Ci0gICAgVjhET01XcmFw
cGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsICZpbmZvLCBldmVudC5nZXQoKSk7Ci0gICAgVjhE
T01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoZXZlbnQucmVsZWFzZSgpLCB3cmFw
cGVyLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgVjhET01XcmFwcGVyOjpjcmVhdGVET01XcmFw
cGVyKGV2ZW50LnJlbGVhc2UoKSwgJmluZm8sIHdyYXBwZXIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
ICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApAQCAtMjIyMCw4ICsyMjE4LDcgQEAgRU5ECiAKICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwogCi0gICAgVjhET01XcmFwcGVyOjpzZXRET01X
cmFwcGVyKHdyYXBwZXIsICZWOCR7aW1wbENsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6aW5mbywgaW1w
bC5nZXQoKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1w
bC5yZWxlYXNlKCksIHdyYXBwZXIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBWOERPTVdyYXBw
ZXI6OmNyZWF0ZURPTVdyYXBwZXIoaW1wbC5yZWxlYXNlKCksICZWOCR7aW1wbENsYXNzTmFtZX1D
b25zdHJ1Y3Rvcjo6aW5mbywgd3JhcHBlciwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIHJldHVy
biB3cmFwcGVyOwogRU5ECiAKQEAgLTM1MjcsNyArMzUyNCw3IEBAIEVORAogICAgICAgICByZXR1
cm4gd3JhcHBlcjsKIAogICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBp
bXBsLmdldCgpKTsKLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxl
ID0gVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1wbCwgd3JhcHBlciwg
aXNvbGF0ZSk7CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9
IFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihpbXBsLCAmaW5mbywgd3JhcHBlciwgaXNv
bGF0ZSk7CiAgICAgaWYgKCFoYXNEZXBlbmRlbnRMaWZldGltZSkKICAgICAgICAgd3JhcHBlckhh
bmRsZS5NYXJrSW5kZXBlbmRlbnQoKTsKICAgICByZXR1cm4gd3JhcHBlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJy
YXkuY3BwCmluZGV4IGUxNDI1MjU2ODkxNWIwMDUzODhmNWI5MTAxNDZiNWM0ZDlkZjFjYmIuLjkw
YjBmNTk3ZDNmNmJlNTVhNzExNTU1YWY5NzJiNDI0NDlkN2FlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5
LmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhGbG9hdDY0
QXJyYXk6OndyYXBTbG93KFBhc3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBpbXBsLCB2CiAgICAgICAg
IHJldHVybiB3cmFwcGVyOwogCiAgICAgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHdyYXBw
ZXIsIGltcGwuZ2V0KCkpOwotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJI
YW5kbGUgPSBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChpbXBsLCB3cmFw
cGVyLCBpc29sYXRlKTsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFu
ZGxlID0gVjhET01XcmFwcGVyOjpjcmVhdGVET01XcmFwcGVyKGltcGwsICZpbmZvLCB3cmFwcGVy
LCBpc29sYXRlKTsKICAgICBpZiAoIWhhc0RlcGVuZGVudExpZmV0aW1lKQogICAgICAgICB3cmFw
cGVySGFuZGxlLk1hcmtJbmRlcGVuZGVudCgpOwogICAgIHJldHVybiB3cmFwcGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2
ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCA4ZDBjZjViOTJiMmZkZDBkNDljNGViOWNj
MjQyMDhiNTYxMTU1ZGM2Li5jYzVhM2FiNzBjZjcyMzk5MWY2M2IzMWIzMDUyZWUxZTA2MjYwMzcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMTg1LDcgKzE4NSw3IEBA
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0QWN0aXZlRE9NT2JqZWN0Ojp3cmFwU2xvdyhQ
YXNzUmVmUHRyPFRlc3RBY3RpdmVET01PCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAg
aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHdyYXBwZXIsIGltcGwuZ2V0KCkpOwotICAgIHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OnNl
dEpTV3JhcHBlckZvckRPTU9iamVjdChpbXBsLCB3cmFwcGVyLCBpc29sYXRlKTsKKyAgICB2ODo6
UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVyOjpjcmVh
dGVET01XcmFwcGVyKGltcGwsICZpbmZvLCB3cmFwcGVyLCBpc29sYXRlKTsKICAgICBpZiAoIWhh
c0RlcGVuZGVudExpZmV0aW1lKQogICAgICAgICB3cmFwcGVySGFuZGxlLk1hcmtJbmRlcGVuZGVu
dCgpOwogICAgIHJldHVybiB3cmFwcGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHAKaW5kZXggZjU2YjJhNjA4YjdlNWIwYTE5Y2Y2NWIwOWFkYmRjM2UxMWUzNjMzMi4uODFl
Mjk0Y2ZiMzQwYTcwMmE4YjYwZjkwY2Q2NTdlZDFlNzQ4OGZlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0
Q3VzdG9tTmEKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpbnN0YWxsUGVyQ29udGV4
dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSk7Ci0gICAgdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9N
T2JqZWN0KGltcGwsIHdyYXBwZXIsIGlzb2xhdGUpOworICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpP
YmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OmNyZWF0ZURPTVdyYXBwZXIoaW1w
bCwgJmluZm8sIHdyYXBwZXIsIGlzb2xhdGUpOwogICAgIGlmICghaGFzRGVwZW5kZW50TGlmZXRp
bWUpCiAgICAgICAgIHdyYXBwZXJIYW5kbGUuTWFya0luZGVwZW5kZW50KCk7CiAgICAgcmV0dXJu
IHdyYXBwZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYmNmMWJk
ZjgwYzk4NzU0MGFmMjY1YTY1MGQwN2RjMTk4ZGUzOTU4ZC4uODMxNGNlMjIwN2JlNDFkMTBhYWU5
MmU3ZGZjOGE5MzI2ZDIzODAwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNw
cApAQCAtODUsOCArODUsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhUZXN0RXZlbnRDb25z
dHJ1Y3Rvcjo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndQogICAgIFJlZlB0cjxU
ZXN0RXZlbnRDb25zdHJ1Y3Rvcj4gZXZlbnQgPSBUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Y3JlYXRl
KHR5cGUsIGV2ZW50SW5pdCk7CiAKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIg
PSBhcmdzLkhvbGRlcigpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVy
LCAmaW5mbywgZXZlbnQuZ2V0KCkpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9y
RE9NT2JqZWN0KGV2ZW50LnJlbGVhc2UoKSwgd3JhcHBlciwgYXJncy5HZXRJc29sYXRlKCkpOwor
ICAgIFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihldmVudC5yZWxlYXNlKCksICZpbmZv
LCB3cmFwcGVyLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAK
QEAgLTE1Niw3ICsxNTUsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEV2ZW50Q29u
c3RydWN0b3I6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdEV2ZW50Q29ucwogICAgICAgICByZXR1
cm4gd3JhcHBlcjsKIAogICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBp
bXBsLmdldCgpKTsKLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxl
ID0gVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1wbCwgd3JhcHBlciwg
aXNvbGF0ZSk7CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9
IFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihpbXBsLCAmaW5mbywgd3JhcHBlciwgaXNv
bGF0ZSk7CiAgICAgaWYgKCFoYXNEZXBlbmRlbnRMaWZldGltZSkKICAgICAgICAgd3JhcHBlckhh
bmRsZS5NYXJrSW5kZXBlbmRlbnQoKTsKICAgICByZXR1cm4gd3JhcHBlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZl
bnRUYXJnZXQuY3BwCmluZGV4IDJiNDQ3NzZhNmUyMTJlNTU4YjRjNTFiNmMxZmVlNjZhMDk5NWY1
YjUuLjA5YzA4ZGRlYmEwMDM3YTNmODlkZTZjOTkyMzZmMTMxNDQxOGE4MDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdl
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEV2ZW50VGFyZ2V0LmNwcApAQCAtMTgwLDcgKzE4MCw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gVjhUZXN0RXZlbnRUYXJnZXQ6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdEV2ZW50VGFyZ2V0
PiBpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAgaW5zdGFsbFBlckNvbnRleHRQcm9w
ZXJ0aWVzKHdyYXBwZXIsIGltcGwuZ2V0KCkpOwotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVj
dChpbXBsLCB3cmFwcGVyLCBpc29sYXRlKTsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0
PiB3cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVyOjpjcmVhdGVET01XcmFwcGVyKGltcGwsICZp
bmZvLCB3cmFwcGVyLCBpc29sYXRlKTsKICAgICBpZiAoIWhhc0RlcGVuZGVudExpZmV0aW1lKQog
ICAgICAgICB3cmFwcGVySGFuZGxlLk1hcmtJbmRlcGVuZGVudCgpOwogICAgIHJldHVybiB3cmFw
cGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNwcAppbmRleCAyNzNkZjY4NmQ0M2ZhMDZlYWM0OTUyODhl
ZmVlNmQ2ODc3ZDgyN2E5Li5iMTE1MWVhMDc4MDk1ZDg5N2U3NDE1NDkxMzFlMzg4MWEyMTBjYTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gVjhUZXN0RXhjZXB0aW9uOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RFeGNl
cHRpb24+IGltcGwsCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAgaW5zdGFsbFBlckNv
bnRleHRQcm9wZXJ0aWVzKHdyYXBwZXIsIGltcGwuZ2V0KCkpOwotICAgIHY4OjpQZXJzaXN0ZW50
PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZv
ckRPTU9iamVjdChpbXBsLCB3cmFwcGVyLCBpc29sYXRlKTsKKyAgICB2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVyOjpjcmVhdGVET01XcmFwcGVy
KGltcGwsICZpbmZvLCB3cmFwcGVyLCBpc29sYXRlKTsKICAgICBpZiAoIWhhc0RlcGVuZGVudExp
ZmV0aW1lKQogICAgICAgICB3cmFwcGVySGFuZGxlLk1hcmtJbmRlcGVuZGVudCgpOwogICAgIHJl
dHVybiB3cmFwcGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAppbmRleCA3MWU3M2I3YzQ0NzdhYTRl
Y2U2OTM0YzI0ZTMxNWNhZWMxYWI0NzMxLi45ZmNkNDkzZWY0MjJiZmE3NjBlN2U3YjZjMmMwODMx
NWMwMzM3YTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcApAQCAtMjYyLDggKzI2Miw3IEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRlc3RJbnRlcmZhY2U6OmNvbnN0cnVjdG9yQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYKICAgICBpZiAoZWMpCiAgICAgICAgIGdvdG8gZmFpbDsKIAot
ICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCAmaW5mbywgaW1wbC5nZXQo
KSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1wbC5yZWxl
YXNlKCksIHdyYXBwZXIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBWOERPTVdyYXBwZXI6OmNy
ZWF0ZURPTVdyYXBwZXIoaW1wbC5yZWxlYXNlKCksICZpbmZvLCB3cmFwcGVyLCBhcmdzLkdldElz
b2xhdGUoKSk7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiAgIGZhaWw6CiAgICAgcmV0dXJuIHNldERP
TUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29sYXRlKCkpOwpAQCAtMzQ5LDcgKzM0OCw3IEBAIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0SW50ZXJmYWNlOjp3cmFwU2xvdyhQYXNzUmVmUHRy
PFRlc3RJbnRlcmZhY2U+IGltcGwsCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAgaW5z
dGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHdyYXBwZXIsIGltcGwuZ2V0KCkpOwotICAgIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OnNldEpT
V3JhcHBlckZvckRPTU9iamVjdChpbXBsLCB3cmFwcGVyLCBpc29sYXRlKTsKKyAgICB2ODo6UGVy
c2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVyOjpjcmVhdGVE
T01XcmFwcGVyKGltcGwsICZpbmZvLCB3cmFwcGVyLCBpc29sYXRlKTsKICAgICBpZiAoIWhhc0Rl
cGVuZGVudExpZmV0aW1lKQogICAgICAgICB3cmFwcGVySGFuZGxlLk1hcmtJbmRlcGVuZGVudCgp
OwogICAgIHJldHVybiB3cmFwcGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuY3BwCmluZGV4IDU4Mjg3Yjc3YTcxYjI3NjRhOTE5ZTY4MzZmOThjYTRkNmIzYzA0
ZTkuLmYyNDY1Y2VkNDBlY2FmMTQxZWIxYjlhZjE0N2Y2ZTM4MDkyY2NhZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTExOSw3ICsxMTksNyBA
QCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6Ondy
YXBTbG93KFBhc3NSZWZQdHI8VGVzdE1lZAogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAogICAg
IGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBpbXBsLmdldCgpKTsKLSAgICB2
ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVyOjpz
ZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1wbCwgd3JhcHBlciwgaXNvbGF0ZSk7CisgICAgdjg6
OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6Y3Jl
YXRlRE9NV3JhcHBlcihpbXBsLCAmaW5mbywgd3JhcHBlciwgaXNvbGF0ZSk7CiAgICAgaWYgKCFo
YXNEZXBlbmRlbnRMaWZldGltZSkKICAgICAgICAgd3JhcHBlckhhbmRsZS5NYXJrSW5kZXBlbmRl
bnQoKTsKICAgICByZXR1cm4gd3JhcHBlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9y
LmNwcAppbmRleCBhMGQ3NTRlOGY1ODExNTBjMTViNzNhOTg2YTg1NTQ3OWE2ZjczNmUxLi5jODM3
NzE4MWE4ODkzOGY3ODk3MTRkODZkZWVlMDlhODBiNmFmNjI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5h
bWVkQ29uc3RydWN0b3IuY3BwCkBAIC03MSw4ICs3MSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6CiAgICAgaWYgKGVjKQogICAgICAgICBnb3RvIGZhaWw7CiAKLSAgICBWOERPTVdyYXBwZXI6
OnNldERPTVdyYXBwZXIod3JhcHBlciwgJlY4VGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rv
cjo6aW5mbywgaW1wbC5nZXQoKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JE
T01PYmplY3QoaW1wbC5yZWxlYXNlKCksIHdyYXBwZXIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAg
ICBWOERPTVdyYXBwZXI6OmNyZWF0ZURPTVdyYXBwZXIoaW1wbC5yZWxlYXNlKCksICZWOFRlc3RO
YW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmluZm8sIHdyYXBwZXIsIGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKICAgICByZXR1cm4gd3JhcHBlcjsKICAgZmFpbDoKICAgICByZXR1cm4gc2V0RE9NRXhj
ZXB0aW9uKGVjLCBhcmdzLkdldElzb2xhdGUoKSk7CkBAIC0xNTksNyArMTU4LDcgQEAgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBWOFRlc3ROYW1lZENvbnN0cnVjdG9yOjp3cmFwU2xvdyhQYXNzUmVm
UHRyPFRlc3ROYW1lZENvbnMKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpbnN0YWxs
UGVyQ29udGV4dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSk7Ci0gICAgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFw
cGVyRm9yRE9NT2JqZWN0KGltcGwsIHdyYXBwZXIsIGlzb2xhdGUpOworICAgIHY4OjpQZXJzaXN0
ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OmNyZWF0ZURPTVdy
YXBwZXIoaW1wbCwgJmluZm8sIHdyYXBwZXIsIGlzb2xhdGUpOwogICAgIGlmICghaGFzRGVwZW5k
ZW50TGlmZXRpbWUpCiAgICAgICAgIHdyYXBwZXJIYW5kbGUuTWFya0luZGVwZW5kZW50KCk7CiAg
ICAgcmV0dXJuIHdyYXBwZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHAKaW5kZXggYmIzOTBkZmE5NWEwMzVhM2ZhNWJj
MjI4ZTJkMGM5ZWRlMDUzNzBhMy4uYjA1NTI4ZTAxZTJkYmVhOThhODU1Y2YyYzJjZGE0YTc2ODdm
NTdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3ROb2RlLmNwcApAQCAtNTMsOCArNTMsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhUZXN0Tm9kZTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogICAgIFJlZlB0cjxUZXN0Tm9kZT4gaW1wbCA9IFRlc3ROb2RlOjpjcmVhdGUoKTsKICAg
ICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBhcmdzLkhvbGRlcigpOwogCi0gICAg
VjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsICZpbmZvLCBpbXBsLmdldCgpKTsK
LSAgICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChpbXBsLnJlbGVhc2Uo
KSwgd3JhcHBlciwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIFY4RE9NV3JhcHBlcjo6Y3JlYXRl
RE9NV3JhcHBlcihpbXBsLnJlbGVhc2UoKSwgJmluZm8sIHdyYXBwZXIsIGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApAQCAtMTE5LDcgKzExOCw3IEBAIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0Tm9kZTo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0Tm9k
ZT4gaW1wbCwgdjg6OkhhbmRsCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAgaW5zdGFs
bFBlckNvbnRleHRQcm9wZXJ0aWVzKHdyYXBwZXIsIGltcGwuZ2V0KCkpOwotICAgIHY4OjpQZXJz
aXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OnNldEpTV3Jh
cHBlckZvckRPTU9iamVjdChpbXBsLCB3cmFwcGVyLCBpc29sYXRlKTsKKyAgICB2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVyOjpjcmVhdGVET01X
cmFwcGVyKGltcGwsICZpbmZvLCB3cmFwcGVyLCBpc29sYXRlKTsKICAgICBpZiAoIWhhc0RlcGVu
ZGVudExpZmV0aW1lKQogICAgICAgICB3cmFwcGVySGFuZGxlLk1hcmtJbmRlcGVuZGVudCgpOwog
ICAgIHJldHVybiB3cmFwcGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCA0OWRhMDM3MWE5Mzc2YWFlZDY4NGVh
YTUzOGQzODI4ODI4YTI1ZWZiLi4wOWFjZDZlNDdhMWFjMzk3ZmI2YWNjNTBmOTMwYzJjZTA0NDI5
NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmNwcApAQCAtMjE3OCw4ICsyMTc4LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4VGVzdE9iajo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogICAgIFJlZlB0cjxUZXN0T2JqPiBpbXBsID0gVGVzdE9iajo6Y3JlYXRlKHRlc3RDYWxs
YmFjayk7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIo
KTsKIAotICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCAmaW5mbywgaW1w
bC5nZXQoKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1w
bC5yZWxlYXNlKCksIHdyYXBwZXIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBWOERPTVdyYXBw
ZXI6OmNyZWF0ZURPTVdyYXBwZXIoaW1wbC5yZWxlYXNlKCksICZpbmZvLCB3cmFwcGVyLCBhcmdz
LkdldElzb2xhdGUoKSk7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKQEAgLTIzNjIsNyArMjM2
MSw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0T2JqOjp3cmFwU2xvdyhQYXNzUmVm
UHRyPFRlc3RPYmo+IGltcGwsIHY4OjpIYW5kbGU8CiAgICAgICAgIHJldHVybiB3cmFwcGVyOwog
CiAgICAgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHdyYXBwZXIsIGltcGwuZ2V0KCkpOwot
ICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBw
ZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChpbXBsLCB3cmFwcGVyLCBpc29sYXRlKTsKKyAg
ICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVy
OjpjcmVhdGVET01XcmFwcGVyKGltcGwsICZpbmZvLCB3cmFwcGVyLCBpc29sYXRlKTsKICAgICBp
ZiAoIWhhc0RlcGVuZGVudExpZmV0aW1lKQogICAgICAgICB3cmFwcGVySGFuZGxlLk1hcmtJbmRl
cGVuZGVudCgpOwogICAgIHJldHVybiB3cmFwcGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAppbmRleCA2OWMxNzQ1MjIwNDE5
MTVlYjkzYWJmZjVkZDczOGFjNGVmMThlMDQ3Li44MGU2M2VjNzY4MDc2YjgwOGM4MWRlOTkxNWM3
NGY1YmIwNzE0ZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtMjMzLDggKzIzMyw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmNvbnN0cnVjdG9y
Q2FsbGJhY2soCiAgICAgUmVmUHRyPFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+
IGltcGwgPSBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpjcmVhdGUoaGVsbG8s
IGRhdGEsIG1lc3NhZ2VQb3J0QXJyYXlUcmFuc2Zlckxpc3QpOwogICAgIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7CiAKLSAgICBWOERPTVdyYXBwZXI6OnNl
dERPTVdyYXBwZXIod3JhcHBlciwgJmluZm8sIGltcGwuZ2V0KCkpOwotICAgIFY4RE9NV3JhcHBl
cjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KGltcGwucmVsZWFzZSgpLCB3cmFwcGVyLCBhcmdz
LkdldElzb2xhdGUoKSk7CisgICAgVjhET01XcmFwcGVyOjpjcmVhdGVET01XcmFwcGVyKGltcGwu
cmVsZWFzZSgpLCAmaW5mbywgd3JhcHBlciwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIHJldHVy
biB3cmFwcGVyOwogfQogCkBAIC0zMDIsNyArMzAxLDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OndyYXBTbG93KFBhc3NSZWZQ
dHIKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpbnN0YWxsUGVyQ29udGV4dFByb3Bl
cnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSk7Ci0gICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0
KGltcGwsIHdyYXBwZXIsIGlzb2xhdGUpOworICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+
IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OmNyZWF0ZURPTVdyYXBwZXIoaW1wbCwgJmlu
Zm8sIHdyYXBwZXIsIGlzb2xhdGUpOwogICAgIGlmICghaGFzRGVwZW5kZW50TGlmZXRpbWUpCiAg
ICAgICAgIHdyYXBwZXJIYW5kbGUuTWFya0luZGVwZW5kZW50KCk7CiAgICAgcmV0dXJuIHdyYXBw
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1No
ZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3Bw
CmluZGV4IDM5MDBkODkzNzc4NzdmZDRiNDM0ZjZlZDNiODhhZjQxYmEwODgzZTUuLjUwNmU3OGZl
OThmNmEzNzVkYzRmNTVlMzFjNWU4MTNmYWZkODk4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCkBAIC00MjUsOSArNDI1LDggQEAgYm9v
bCBWOERPTVdpbmRvd1NoZWxsOjppbnN0YWxsRE9NV2luZG93KCkKIAogICAgIFY4RE9NV2luZG93
OjppbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMod2luZG93V3JhcHBlciwgd2luZG93KTsKIAot
ICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3aW5kb3dXcmFwcGVyLCAmVjhET01XaW5k
b3c6OmluZm8sIHdpbmRvdyk7CiAgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3Qod2luZG93V3JhcHBlci0+R2V0UHJvdG90eXBlKCkpLCAm
VjhET01XaW5kb3c6OmluZm8sIHdpbmRvdyk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBw
ZXJGb3JET01PYmplY3QoUGFzc1JlZlB0cjxET01XaW5kb3c+KHdpbmRvdyksIHdpbmRvd1dyYXBw
ZXIpOworICAgIFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihQYXNzUmVmUHRyPERPTVdp
bmRvdz4od2luZG93KSwgJlY4RE9NV2luZG93OjppbmZvLCB3aW5kb3dXcmFwcGVyKTsKIAogICAg
IC8vIEluc3RhbGwgdGhlIHdpbmRvd1dyYXBwZXIgYXMgdGhlIHByb3RvdHlwZSBvZiB0aGUgaW5u
ZXJHbG9iYWxPYmplY3QuCiAgICAgLy8gVGhlIGZ1bGwgc3RydWN0dXJlIG9mIHRoZSBnbG9iYWwg
b2JqZWN0IGlzIGFzIGZvbGxvd3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmNwcAppbmRleCA1OGQ1YzUxZDllZjQzNmNmNWY0MmRhYjM4ZWE0ZmVmMTEwY2Q0OWEx
Li45MmJmODRmY2QwNGE4NGRlYWQxYWZjNTc3NjIyMjJjNDVhOTVlYzMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKQEAgLTEzNiwxMCArMTM2LDggQEAg
djg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdCh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGMKICAgICBpZiAoaW5zdGFuY2UuSXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm4gaW5zdGFuY2U7CiAKLSAgICBzZXRET01XcmFwcGVyKGluc3RhbmNlLCB0eXBl
LCBpbXBsKTsKICAgICBpZiAodHlwZSA9PSAmVjhIVE1MRG9jdW1lbnQ6OmluZm8pCiAgICAgICAg
IGluc3RhbmNlID0gVjhIVE1MRG9jdW1lbnQ6OndyYXBJblNoYWRvd09iamVjdChpbnN0YW5jZSwg
c3RhdGljX2Nhc3Q8Tm9kZSo+KGltcGwpKTsKLQogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAppbmRleCA0OWRhMGRhYmJk
ZDM5YmZhOTcwYmM4ODgzNzI1MzY1MzIwYzk4YWE4Li5iZTg4NDE4ZmIyYmM4YWRiZTM5ZGExMDM0
MjI0YjhlZjNlYzU2MDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OERPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBw
ZXIuaApAQCAtMTAzLDcgKzEwMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gd3JhcE5hdGl2ZU5vZGVGaWx0ZXIodjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KTsKIAogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgICAgICBz
dGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gc2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0
KFBhc3NSZWZQdHI8VD4sIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIHY4OjpJc29sYXRlKiA9IDAp
OworICAgICAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gY3JlYXRlRE9NV3Jh
cHBlcihQYXNzUmVmUHRyPFQ+LCBXcmFwcGVyVHlwZUluZm8qLCB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+LCB2ODo6SXNvbGF0ZSogPSAwKTsKIAogICAgICAgICAvLyBDaGVjayB3aGV0aGVyIGEgVjgg
dmFsdWUgaXMgYSB3cmFwcGVyIG9mIHR5cGUgfGNsYXNzVHlwZXwuCiAgICAgICAgIHN0YXRpYyBi
b29sIGlzV3JhcHBlck9mVHlwZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4sIFdyYXBwZXJUeXBlSW5m
byopOwpAQCAtMTM4LDggKzEzOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB9OwogCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBW
OERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChQYXNzUmVmUHRyPFQ+IG9iamVj
dCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkK
KyAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBWOERPTVdyYXBwZXI6OmNyZWF0ZURPTVdy
YXBwZXIoUGFzc1JlZlB0cjxUPiBvYmplY3QsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKICAgICB7Cisg
ICAgICAgIHNldERPTVdyYXBwZXIod3JhcHBlciwgdHlwZSwgb2JqZWN0LmdldCgpKTsKICAgICAg
ICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IHY4OjpQZXJzaXN0
ZW50PHY4OjpPYmplY3Q+OjpOZXcod3JhcHBlcik7CiAgICAgICAgIEFTU0VSVChtYXliZURPTVdy
YXBwZXIod3JhcHBlckhhbmRsZSkpOwogICAgICAgICBzZXRXcmFwcGVyQ2xhc3Mob2JqZWN0Lmdl
dCgpLCB3cmFwcGVySGFuZGxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCmluZGV4IDE1YzVlOTAwYmY1
ZTRmNmE3OTljOTJmYmMyODg1YTIxNjEzYWNlZjAuLjY0YTk3MzVmNTliNjdjZTNhMDY4YzBiMGRh
YzA0NGQ1ZjE0YzEwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dv
cmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcApAQCAtMTcwLDkgKzE3MCw3IEBA
IGJvb2wgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5Ojppbml0aWFsaXplSWZOZWVkZWQoKQog
ICAgIH0KIAogICAgIC8vIFdyYXAgdGhlIG9iamVjdC4KLSAgICBWOERPTVdyYXBwZXI6OnNldERP
TVdyYXBwZXIoanNXb3JrZXJDb250ZXh0LCBjb250ZXh0VHlwZSwgbV93b3JrZXJDb250ZXh0KTsK
LQotICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KFBhc3NSZWZQdHI8
V29ya2VyQ29udGV4dD4obV93b3JrZXJDb250ZXh0KSwganNXb3JrZXJDb250ZXh0KTsKKyAgICBW
OERPTVdyYXBwZXI6OmNyZWF0ZURPTVdyYXBwZXIoUGFzc1JlZlB0cjxXb3JrZXJDb250ZXh0Piht
X3dvcmtlckNvbnRleHQpLCBjb250ZXh0VHlwZSwganNXb3JrZXJDb250ZXh0KTsKIAogICAgIC8v
IEluc2VydCB0aGUgb2JqZWN0IGluc3RhbmNlIGFzIHRoZSBwcm90b3R5cGUgb2YgdGhlIHNoYWRv
dyBvYmplY3QuCiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBnbG9iYWxPYmplY3QgPSB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KG1fY29udGV4dC0+R2xvYmFsKCktPkdldFByb3RvdHlw
ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFy
cmF5QnVmZmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEFycmF5QnVmZmVyQ3VzdG9tLmNwcAppbmRleCBmYjAwYTFhZDc5ZTQ2ZjA3MzJiODFmYzk5MWIw
Mjc1MWRiYmM0NWNiLi41OGUxZGRjZTEwNWFlN2NkMzQ2MTEzM2Q0MmJkZDk2ZDNkYzI5NmE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZl
ckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJy
YXlCdWZmZXJDdXN0b20uY3BwCkBAIC04NCw4ICs4NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEFycmF5QnVmZmVyOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyCiAgICAgdjg6OlY4OjpBZGp1c3RBbW91bnRPZkV4dGVybmFsQWxsb2NhdGVkTWVtb3J5KGJ1
ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKICAgICAvLyBUcmFuc2Zvcm0gdGhlIGhvbGRlciBpbnRvIGEg
d3JhcHBlciBvYmplY3QgZm9yIHRoZSBhcnJheS4KICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IHdyYXBwZXIgPSBhcmdzLkhvbGRlcigpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBl
cih3cmFwcGVyLCAmaW5mbywgYnVmZmVyLmdldCgpKTsKLSAgICBWOERPTVdyYXBwZXI6OnNldEpT
V3JhcHBlckZvckRPTU9iamVjdChidWZmZXIucmVsZWFzZSgpLCB3cmFwcGVyKTsKKyAgICBWOERP
TVdyYXBwZXI6OmNyZWF0ZURPTVdyYXBwZXIoYnVmZmVyLnJlbGVhc2UoKSwgJmluZm8sIHdyYXBw
ZXIpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCmluZGV4
IDRhNzFkZmZkNDYyNWYwNTY4N2VjNzhkMDA5MjYwYjNlODBkZDY0ZTguLjkwZjA5OGI3NzRkOTU5
ZDU1MGY1MGQ1ODAzNGE4MTQwMzhhMDVlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCkBAIC01
MSwxMiArNTEsMTEgQEAgdGVtcGxhdGU8Y2xhc3MgQXJyYXlDbGFzcz4KIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB3cmFwQXJyYXlCdWZmZXJWaWV3KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdy
YXBwZXJUeXBlSW5mbyogdHlwZSwgQXJyYXlDbGFzcyBhcnJheSwgdjg6OkV4dGVybmFsQXJyYXlU
eXBlIGFycmF5VHlwZSwgYm9vbCBoYXNJbmRleGVyKQogewogICAgIC8vIFRyYW5zZm9ybSB0aGUg
aG9sZGVyIGludG8gYSB3cmFwcGVyIG9iamVjdCBmb3IgdGhlIGFycmF5LgotICAgIFY4RE9NV3Jh
cHBlcjo6c2V0RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCB0eXBlLCBhcnJheS5nZXQoKSk7CiAg
ICAgQVNTRVJUKCFoYXNJbmRleGVyIHx8IHN0YXRpY19jYXN0PGludDMyX3Q+KGFycmF5LmdldCgp
LT5sZW5ndGgoKSkgPj0gMCk7CiAgICAgaWYgKGhhc0luZGV4ZXIpCiAgICAgICAgIGFyZ3MuSG9s
ZGVyKCktPlNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRlcm5hbEFycmF5RGF0YShhcnJheS5nZXQo
KS0+YmFzZUFkZHJlc3MoKSwgYXJyYXlUeXBlLCBhcnJheS5nZXQoKS0+bGVuZ3RoKCkpOwogICAg
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7Ci0gICAgdjg6
OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6c2V0
SlNXcmFwcGVyRm9yRE9NT2JqZWN0KGFycmF5LnJlbGVhc2UoKSwgd3JhcHBlcik7CisgICAgdjg6
OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6Y3Jl
YXRlRE9NV3JhcHBlcihhcnJheS5yZWxlYXNlKCksIHR5cGUsIHdyYXBwZXIpOwogICAgIHdyYXBw
ZXJIYW5kbGUuTWFya0luZGVwZW5kZW50KCk7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CkBAIC0y
MDQsNyArMjAzLDYgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXko
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGUKIAogCiAgICAgLy8gVHJhbnNm
b3JtIHRoZSBob2xkZXIgaW50byBhIHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXJyYXkuCi0gICAg
VjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksIHR5cGUsIGFycmF5Lmdl
dCgpKTsKICAgICBhcmdzLkhvbGRlcigpLT5TZXRJbmRleGVkUHJvcGVydGllc1RvRXh0ZXJuYWxB
cnJheURhdGEoYXJyYXkuZ2V0KCktPmJhc2VBZGRyZXNzKCksIGFycmF5VHlwZSwgYXJyYXkuZ2V0
KCktPmxlbmd0aCgpKTsKIAogICAgIGlmICghc3JjQXJyYXkuSXNFbXB0eSgpKSB7CkBAIC0yMTYs
NyArMjE0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXkoY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGUKICAgICB9CiAKICAgICB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBhcmdzLkhvbGRlcigpOwotICAgIHY4OjpQZXJzaXN0
ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBl
ckZvckRPTU9iamVjdChhcnJheS5yZWxlYXNlKCksIHdyYXBwZXIpOworICAgIHY4OjpQZXJzaXN0
ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OmNyZWF0ZURPTVdy
YXBwZXIoYXJyYXkucmVsZWFzZSgpLCB0eXBlLCB3cmFwcGVyKTsKICAgICB3cmFwcGVySGFuZGxl
Lk1hcmtJbmRlcGVuZGVudCgpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NRm9ybURhdGFDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NRm9ybURhdGFDdXN0b20u
Y3BwCmluZGV4IDMzYmU3ZTk5ZDUzOWYxZjZlYzhjMjNjM2I4ZTAxMTdjMzFhNDgxOWQuLjNlODA4
YzAzN2I4MDE2M2Q5ZmQ2MzEyM2M4ZThlNDNkZmY4MzBiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTUZvcm1EYXRhQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1c3RvbS5jcHAK
QEAgLTU1LDggKzU1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RE9NRm9ybURhdGE6OmNv
bnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKICAgICBSZWZQdHI8RE9N
Rm9ybURhdGE+IGRvbUZvcm1EYXRhID0gRE9NRm9ybURhdGE6OmNyZWF0ZShmb3JtKTsKIAogICAg
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7Ci0gICAgVjhE
T01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsICZpbmZvLCBkb21Gb3JtRGF0YS5nZXQo
KSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoZG9tRm9ybURh
dGEucmVsZWFzZSgpLCB3cmFwcGVyKTsKKyAgICBWOERPTVdyYXBwZXI6OmNyZWF0ZURPTVdyYXBw
ZXIoZG9tRm9ybURhdGEucmVsZWFzZSgpLCAmaW5mbywgd3JhcHBlcik7CiAgICAgcmV0dXJuIHdy
YXBwZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERhdGFWaWV3Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERhdGFWaWV3Q3VzdG9tLmNwcAppbmRleCBjNzAyMTE5MTE1MzBlOGJhYTBmYWQzZTY2MGZh
ODc1N2ZjMTljYjc5Li5jN2NjN2M4N2Y3ODljOGU5NWFiMGNhZWZiYjA4ZWVhOGE3MDAzYjkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZp
ZXdDdXN0b20uY3BwCkBAIC00Nyw4ICs0Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERh
dGFWaWV3Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAg
ICAgICAgIC8vICduZXcgRGF0YVZpZXcoKScgYW5kIHRoZSBjYWxsIHVzZWQgdG8gY29uc3RydWN0
IHRoZSBjYWNoZWQgRGF0YVZpZXcgb2JqZWN0LgogICAgICAgICBSZWZQdHI8RGF0YVZpZXc+IGRh
dGFWaWV3ID0gRGF0YVZpZXc6OmNyZWF0ZSgwKTsKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIoKTsKLSAgICAgICAgVjhET01XcmFwcGVyOjpzZXRE
T01XcmFwcGVyKHdyYXBwZXIsICZpbmZvLCBkYXRhVmlldy5nZXQoKSk7Ci0gICAgICAgIFY4RE9N
V3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KGRhdGFWaWV3LnJlbGVhc2UoKSwgd3Jh
cHBlcik7CisgICAgICAgIFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihkYXRhVmlldy5y
ZWxlYXNlKCksICZpbmZvLCB3cmFwcGVyKTsKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAg
fQogICAgIGlmIChhcmdzWzBdLT5Jc051bGwoKSB8fCAhVjhBcnJheUJ1ZmZlcjo6SGFzSW5zdGFu
Y2UoYXJnc1swXSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcAppbmRleCAyMDNhYmI1MmM1YWY0MDQ1NTBm
ZThhOGZmMzE2YmVlODYxY2ZjMzI0Li5kMmVkMmEwZmUyZDc0YjI0YzI1MTNkZTI0MGY3NjZiMDg0
ZmIxZmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhI
VE1MRG9jdW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTc1LDggKzc1LDggQEAgdjg6OkxvY2Fs
PHY4OjpPYmplY3Q+IFY4SFRNTERvY3VtZW50Ojp3cmFwSW5TaGFkb3dPYmplY3Qodjg6OkxvY2Fs
PHY4OjpPYmplY3Q+IHcKICAgICB9CiAgICAgaWYgKHNoYWRvdy5Jc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsKLSAgICBWOERPTVdyYXBwZXI6OnNldERP
TVdyYXBwZXIoc2hhZG93LCAmVjhIVE1MRG9jdW1lbnQ6OmluZm8sIGltcGwpOwogICAgIHNoYWRv
dy0+U2V0UHJvdG90eXBlKHdyYXBwZXIpOworICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBl
cih3cmFwcGVyLCAmVjhIVE1MRG9jdW1lbnQ6OmluZm8sIGltcGwpOwogICAgIHJldHVybiBzaGFk
b3c7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IGVkZGQx
ZGU5OTgwOGE0NmRjYTBhNTZkNDVhMTNjYzExYTE3MzFhZGYuLmNmYjk3NmZkNzc2ODNjYWU5ZmQw
MTBjYjUzM2E5OTEyYzhjYzQwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9y
LmNwcApAQCAtNzksOCArNzksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4SFRN
TEltYWdlRWxlbWVudENvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZwogCiAgICAgUmVm
UHRyPEhUTUxJbWFnZUVsZW1lbnQ+IGltYWdlID0gSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlRm9y
SlNDb25zdHJ1Y3Rvcihkb2N1bWVudCwgb3B0aW9uYWxXaWR0aCwgb3B0aW9uYWxIZWlnaHQpOwog
ICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7Ci0gICAg
VjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsICZWOEhUTUxJbWFnZUVsZW1lbnRD
b25zdHJ1Y3Rvcjo6aW5mbywgaW1hZ2UuZ2V0KCkpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNX
cmFwcGVyRm9yRE9NT2JqZWN0KGltYWdlLnJlbGVhc2UoKSwgd3JhcHBlcik7CisgICAgVjhET01X
cmFwcGVyOjpjcmVhdGVET01XcmFwcGVyKGltYWdlLnJlbGVhc2UoKSwgJlY4SFRNTEltYWdlRWxl
bWVudENvbnN0cnVjdG9yOjppbmZvLCB3cmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50
ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IGJkMDAyZjdjNTEzOGQwMjE5ODUxMTljMmViYThmY2Nj
YTUyMjExZTkuLjNhNDNkN2ZhYjBhZjBlOTcxNzE5YjM1ODlhYjdiOGQ4ZjQwOTJkMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudENvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnRlbnRD
b25zdHJ1Y3Rvci5jcHAKQEAgLTYyLDggKzYyLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
SW50ZW50Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAg
ICAgICAgICAgICByZXR1cm4gc2V0RE9NRXhjZXB0aW9uKGVjLCBhcmdzLkdldElzb2xhdGUoKSk7
CiAKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIo
KTsKLSAgICAgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsICZpbmZvLCBp
bXBsLmdldCgpKTsKLSAgICAgICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmpl
Y3QoaW1wbC5yZWxlYXNlKCksIHdyYXBwZXIpOworICAgICAgICBWOERPTVdyYXBwZXI6OmNyZWF0
ZURPTVdyYXBwZXIoaW1wbC5yZWxlYXNlKCksICZpbmZvLCB3cmFwcGVyKTsKICAgICAgICAgcmV0
dXJuIHdyYXBwZXI7CiAgICAgfQogCkBAIC04Niw4ICs4NSw3IEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOEludGVudDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogICAgICAgICByZXR1cm4gc2V0RE9NRXhjZXB0aW9uKGVjLCBhcmdzLkdldElzb2xhdGUo
KSk7CiAKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBhcmdzLkhvbGRlcigp
OwotICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCAmaW5mbywgaW1wbC5n
ZXQoKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoaW1wbC5y
ZWxlYXNlKCksIHdyYXBwZXIpOworICAgIFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihp
bXBsLnJlbGVhc2UoKSwgJmluZm8sIHdyYXBwZXIpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdl
Q2hhbm5lbENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCmluZGV4IGM5ZTZjMTA5Y2UzMmIxY2E4
OWM0YTkyZjkyMTIwYWUzMDRmOWVhOTIuLjc2YmU4OWEzZTAxMDczNTU5YzdlOTAwNWE0Y2VkODJh
NTRjNmU1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCkBAIC02Niw4ICs2
Niw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE1lc3NhZ2VDaGFubmVsOjpjb25zdHJ1Y3Rv
ckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmCiAgICAgVjhET01XcmFwcGVyOjpzZXROYW1l
ZEhpZGRlblJlZmVyZW5jZSh3cmFwcGVyLCAicG9ydDEiLCB0b1Y4KG9iai0+cG9ydDEoKSwgYXJn
cy5Ib2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkpKTsKICAgICBWOERPTVdyYXBwZXI6OnNldE5h
bWVkSGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIsICJwb3J0MiIsIHRvVjgob2JqLT5wb3J0MigpLCBh
cmdzLkhvbGRlcigpLCBhcmdzLkdldElzb2xhdGUoKSkpOwogCi0gICAgVjhET01XcmFwcGVyOjpz
ZXRET01XcmFwcGVyKHdyYXBwZXIsICZpbmZvLCBvYmouZ2V0KCkpOwotICAgIFY4RE9NV3JhcHBl
cjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KG9iai5yZWxlYXNlKCksIHdyYXBwZXIpOworICAg
IFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihvYmoucmVsZWFzZSgpLCAmaW5mbywgd3Jh
cHBlcik7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5j
cHAKaW5kZXggNjhmNGM3YWE1YzI5YTM0Zjg2OGZkMzlkNTcwMmFiZTBkZDg0YjVjMS4uZjgwY2U1
OThhOTcyYWNiN2Q1ZmMyZjM0OTk2OGY0YjllYThmMmJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1
c3RvbS5jcHAKQEAgLTY2LDggKzY2LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TXV0YXRp
b25PYnNlcnZlcjo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBS
ZWZQdHI8TXV0YXRpb25PYnNlcnZlcj4gb2JzZXJ2ZXIgPSBNdXRhdGlvbk9ic2VydmVyOjpjcmVh
dGUoY2FsbGJhY2sucmVsZWFzZSgpKTsKIAogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3Jh
cHBlciA9IGFyZ3MuSG9sZGVyKCk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdy
YXBwZXIsICZpbmZvLCBvYnNlcnZlci5nZXQoKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dy
YXBwZXJGb3JET01PYmplY3Qob2JzZXJ2ZXIucmVsZWFzZSgpLCB3cmFwcGVyKTsKKyAgICBWOERP
TVdyYXBwZXI6OmNyZWF0ZURPTVdyYXBwZXIob2JzZXJ2ZXIucmVsZWFzZSgpLCAmaW5mbywgd3Jh
cHBlcik7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggNTJiMDRhNzczYzc4MTdiNDRhM2YzOTEwZWUwNmE0ZGZhMWEzYjRhYS4uMTY2OTRl
OTI3MjBiMDQzODE0NDc5MGE5NjY3MmM4YTljMTAzODcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1
Y3Rvci5jcHAKQEAgLTY1LDggKzY1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViS2l0
UG9pbnQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKICAgICB9
CiAgICAgUmVmUHRyPFdlYktpdFBvaW50PiBwb2ludCA9IFdlYktpdFBvaW50OjpjcmVhdGUoeCwg
eSk7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIoKTsK
LSAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIod3JhcHBlciwgJmluZm8sIHBvaW50Lmdl
dCgpKTsKLSAgICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChwb2ludC5y
ZWxlYXNlKCksIHdyYXBwZXIpOworICAgIFY4RE9NV3JhcHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihw
b2ludC5yZWxlYXNlKCksICZpbmZvLCB3cmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0
cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAppbmRleCAwNzg2YTE4ZDY4MGYyOTJj
NWNmZTA3NjgxMjU4N2FmMWNkYjY3MDY3Li45ZjE2ODAwMDc5ZDVkOGIwYmQyYmQ3YzcxNWIzODEy
ZGM3N2MxMGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcApAQCAtNjEsOCAr
NjEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVzdDo6Y29uc3RydWN0
b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJgogICAgIFJlZlB0cjxYTUxIdHRwUmVxdWVz
dD4geG1sSHR0cFJlcXVlc3QgPSBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIHNlY3Vy
aXR5T3JpZ2luKTsKIAogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3Mu
SG9sZGVyKCk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsICZpbmZv
LCB4bWxIdHRwUmVxdWVzdC5nZXQoKSk7Ci0gICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJG
b3JET01PYmplY3QoeG1sSHR0cFJlcXVlc3QucmVsZWFzZSgpLCB3cmFwcGVyKTsKKyAgICBWOERP
TVdyYXBwZXI6OmNyZWF0ZURPTVdyYXBwZXIoeG1sSHR0cFJlcXVlc3QucmVsZWFzZSgpLCAmaW5m
bywgd3JhcHBlcik7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>