<?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>108900</bug_id>
          
          <creation_ts>2013-02-04 21:36:54 -0800</creation_ts>
          <short_desc>[V8] Pass an Isolate to V8DOMConfiguration</short_desc>
          <delta_ts>2013-02-04 23:41:36 -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>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>japhet</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>825118</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-04 21:36:54 -0800</bug_when>
    <thetext>[V8] Pass an Isolate to V8DOMConfiguration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825119</commentid>
    <comment_count>1</comment_count>
      <attachid>186541</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-04 21:38:05 -0800</bug_when>
    <thetext>Created attachment 186541
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825181</commentid>
    <comment_count>2</comment_count>
      <attachid>186541</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 23:41:32 -0800</bug_when>
    <thetext>Comment on attachment 186541
Patch

Clearing flags on attachment: 186541

Committed r141862: &lt;http://trac.webkit.org/changeset/141862&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825182</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 23:41:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186541</attachid>
            <date>2013-02-04 21:38:05 -0800</date>
            <delta_ts>2013-02-04 23:41:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108900-20130205143443.patch</filename>
            <type>text/plain</type>
            <size>59191</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2QwMjA4NzgzOTIxMmQ0
Y2MyZTcxNGQ4Nzk1YmMzYTVhY2YyOTFkYy4uZjc0MTIwNmI4YWJiNDg2ODhhY2YzMGQzYzVjZWY4
ZWI1YjQ5MzI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEzLTAyLTA0ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgYW4g
SXNvbGF0ZSB0byBWOERPTUNvbmZpZ3VyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODkwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAg
KEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAg
ICAgICAoR2VuZXJhdGVUb1Y4Q29udmVydGVycyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbmZpZ3Vy
ZVY4RmxvYXQ2NEFycmF5VGVtcGxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VjhGbG9hdDY0QXJy
YXk6OmNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OEZsb2F0NjRBcnJheS5oOgorICAgICAgICAoV2ViQ29yZTo6VjhGbG9hdDY0QXJyYXk6Omluc3Rh
bGxQZXJDb250ZXh0UHJvcGVydGllcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb25maWd1
cmVWOFRlc3RBY3RpdmVET01PYmplY3RUZW1wbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFRl
c3RBY3RpdmVET01PYmplY3Q6OmNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4VGVzdEFjdGl2ZURPTU9iamVjdDo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29uZmlndXJlVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJU
ZW1wbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6Y3Jl
YXRlV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1
c3RvbU5hbWVkR2V0dGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RDdXN0b21OYW1lZEdl
dHRlcjo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb25maWd1cmVWOFRlc3RFdmVudENvbnN0cnVjdG9yVGVtcGxhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6VjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Y3JlYXRlV3JhcHBlcik6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4VGVzdEV2ZW50Q29uc3RydWN0b3I6Omluc3RhbGxQZXJDb250ZXh0
UHJvcGVydGllcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2
ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdEV2ZW50VGFy
Z2V0VGVtcGxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0RXZlbnRUYXJnZXQ6OmNyZWF0
ZVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVu
dFRhcmdldC5oOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0RXZlbnRUYXJnZXQ6Omluc3RhbGxQ
ZXJDb250ZXh0UHJvcGVydGllcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEV4Y2VwdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb25maWd1cmVWOFRlc3RF
eGNlcHRpb25UZW1wbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RFeGNlcHRpb246OmNy
ZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RF
eGNlcHRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEV4Y2VwdGlvbjo6aW5zdGFsbFBl
ckNvbnRleHRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdElu
dGVyZmFjZVRlbXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEludGVyZmFjZTo6Y3Jl
YXRlV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdElu
dGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0SW50ZXJmYWNlOjppbnN0YWxsUGVy
Q29udGV4dFByb3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbmZp
Z3VyZVY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUZW1wbGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpjcmVhdGVXcmFwcGVyKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aW5z
dGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb25m
aWd1cmVWOFRlc3ROYW1lZENvbnN0cnVjdG9yVGVtcGxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
VjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6Y3JlYXRlV3JhcHBlcik6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4VGVzdE5hbWVkQ29uc3RydWN0b3I6Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGll
cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29uZmlndXJlVjhUZXN0Tm9kZVRlbXBsYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlY4VGVzdE5vZGU6OmNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RO
b2RlOjppbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29uZmlndXJl
VjhUZXN0T2JqVGVtcGxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0T2JqOjppbnN0YWxs
UGVyQ29udGV4dFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0T2JqOjpjcmVh
dGVXcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
Lmg6CisgICAgICAgIChWOFRlc3RPYmopOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbmZpZ3VyZVY4VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNUZW1wbGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpWOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpjcmVhdGVXcmFwcGVyKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycy5oOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
czo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZVRlbXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZTo6Y3JlYXRlV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6VjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjppbnN0YWxs
UGVyQ29udGV4dFByb3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NQ29uZmln
dXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTUNvbmZpZ3VyYXRpb246OmJhdGNo
Q29uZmlndXJlQXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpWOERPTUNvbmZpZ3VyYXRp
b246OmJhdGNoQ29uZmlndXJlQ29uc3RhbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NQ29u
ZmlndXJhdGlvbjo6YmF0Y2hDb25maWd1cmVDYWxsYmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6
VjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVUZW1wbGF0ZSk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvVjhET01Db25maWd1cmF0aW9uLmg6CisgICAgICAgIChWOERPTUNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6VjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVBdHRyaWJ1
dGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VjhET01XaW5kb3dTaGVsbDo6aW5zdGFsbERPTVdpbmRvdyk6CisKIDIwMTMt
MDItMDQgIENocmlzIEhvcG1hbiAgPGNqaG9wbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBN
YWtlIG1vdmVDYXJldFRvd2FyZHNXaW5kb3dQb2ludCBub3Qgc25hcCB0byB0aGUgYmVnaW5uaW5n
L2VuZCB3aGVuIG1vdmVkIGFib3ZlL2JlbG93IGVkaXRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IGZkY2YyODNhYzk3
NjhhM2I4YWI3ODdkZjE0MWFhNGVmODdkNWJhNmUuLjEzMmM4YjU2M2M1MzVhYzI3NDMxYmNlNzYx
NWY4ZjNlNTVmZDg0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC00NTgsMTEgKzQ1OCwxMSBAQCBFTkQKIAogICAgIGlm
IChAZW5hYmxlZFBlckNvbnRleHRBdHRyaWJ1dGVzKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsIDw8RU5EKTsKLSAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRp
ZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgJHtuYXRpdmVUeXBlfSopOworICAgIHN0YXRpYyB2
b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCAk
e25hdGl2ZVR5cGV9Kiwgdjg6Oklzb2xhdGUqKTsKIEVORAogICAgIH0gZWxzZSB7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKLSAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVy
Q29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgJHtuYXRpdmVUeXBlfSop
IHsgfQorICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+LCAke25hdGl2ZVR5cGV9Kiwgdjg6Oklzb2xhdGUqKSB7IH0KIEVORAog
ICAgIH0KIApAQCAtMjk0MSw3ICsyOTQxLDcgQEAgRU5ECiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCA8PEVORCk7CiBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdFRlbXBsYXRlPiBD
b25maWd1cmVTaGFkb3dPYmplY3RUZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0VGVt
cGxhdGU+IHRlbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKLSAgICBWOERPTUNvbmZpZ3Vy
YXRpb246OmJhdGNoQ29uZmlndXJlQXR0cmlidXRlcyh0ZW1wbCwgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0VGVtcGxhdGU+KCksIHNoYWRvd0F0dHJzLCBXVEZfQVJSQVlfTEVOR1RIKHNoYWRvd0F0dHJz
KSk7CisgICAgVjhET01Db25maWd1cmF0aW9uOjpiYXRjaENvbmZpZ3VyZUF0dHJpYnV0ZXModGVt
cGwsIHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPigpLCBzaGFkb3dBdHRycywgV1RGX0FS
UkFZX0xFTkdUSChzaGFkb3dBdHRycyksIGlzb2xhdGUpOwogCiAgICAgLy8gSW5zdGFsbCBhIHNl
Y3VyaXR5IGhhbmRsZXIgd2l0aCBWOC4KICAgICB0ZW1wbC0+U2V0QWNjZXNzQ2hlY2tDYWxsYmFj
a3MoVjhET01XaW5kb3c6Om5hbWVkU2VjdXJpdHlDaGVjaywgVjhET01XaW5kb3c6OmluZGV4ZWRT
ZWN1cml0eUNoZWNrLCB2ODo6RXh0ZXJuYWw6Ok5ldygmVjhET01XaW5kb3c6OmluZm8pKTsKQEAg
LTI5NjcsNyArMjk2Nyw3IEBAIEVORAogICAgICAgICBteSAkZW5hYmxlX2Z1bmN0aW9uID0gR2V0
UnVudGltZUVuYWJsZUZ1bmN0aW9uTmFtZSgkaW50ZXJmYWNlKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsIDw8RU5EKTsKICAgICBpZiAoISR7ZW5hYmxlX2Z1bmN0aW9ufSgpKQotICAgICAg
ICBkZWZhdWx0U2lnbmF0dXJlID0gVjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVUZW1wbGF0
ZShkZXNjLCBcIlwiLCAkcGFyZW50Q2xhc3NUZW1wbGF0ZSwgJHt2OEludGVyZmFjZU5hbWV9Ojpp
bnRlcm5hbEZpZWxkQ291bnQsIDAsIDAsIDAsIDApOworICAgICAgICBkZWZhdWx0U2lnbmF0dXJl
ID0gVjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVUZW1wbGF0ZShkZXNjLCBcIlwiLCAkcGFy
ZW50Q2xhc3NUZW1wbGF0ZSwgJHt2OEludGVyZmFjZU5hbWV9OjppbnRlcm5hbEZpZWxkQ291bnQs
IDAsIDAsIDAsIDAsIGlzb2xhdGUpOwogICAgIGVsc2UKIEVORAogICAgIH0KQEAgLTI5ODcsMTQg
KzI5ODcsMTQgQEAgRU5ECiAKICAgICBpZiAoJGhhc19jYWxsYmFja3MpIHsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICAgICAgJHt2OEludGVyZmFjZU5hbWV9Q2FsbGJh
Y2tzLCBXVEZfQVJSQVlfTEVOR1RIKCR7djhJbnRlcmZhY2VOYW1lfUNhbGxiYWNrcykpOworICAg
ICAgICAke3Y4SW50ZXJmYWNlTmFtZX1DYWxsYmFja3MsIFdURl9BUlJBWV9MRU5HVEgoJHt2OElu
dGVyZmFjZU5hbWV9Q2FsbGJhY2tzKSwgaXNvbGF0ZSk7CiBFTkQKICAgICB9IGVsc2UgewogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwotICAgICAgICAwLCAwKTsKKyAgICAgICAg
MCwgMCwgaXNvbGF0ZSk7CiBFTkQKICAgICB9Ci0gICAgCisKICAgICBBZGRUb0ltcGxJbmNsdWRl
cygid3RmL1VudXNlZFBhcmFtLmgiKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwog
ICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0U2lnbmF0dXJlKTsgLy8gSW4gc29tZSBjYXNlcywgaXQg
d2lsbCBub3QgYmUgdXNlZC4KQEAgLTMwMjcsNyArMzAyNyw3IEBAIEVORAogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6
QmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XFxcbiIpOwogICAgICAgICBHZW5lcmF0ZVNpbmds
ZUJhdGNoZWRBdHRyaWJ1dGUoJGludGVyZmFjZU5hbWUsICRydW50aW1lX2F0dHIsICI7IiwgIiAg
ICAiKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICAgICAgVjhET01D
b25maWd1cmF0aW9uOjpjb25maWd1cmVBdHRyaWJ1dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0
YSk7CisgICAgICAgIFY4RE9NQ29uZmlndXJhdGlvbjo6Y29uZmlndXJlQXR0cmlidXRlKGluc3Rh
bmNlLCBwcm90bywgYXR0ckRhdGEsIGlzb2xhdGUpOwogICAgIH0KIEVORAogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIlxuI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAk
Y29uZGl0aW9uYWxTdHJpbmc7CkBAIC0zMDQzLDcgKzMwNDMsNyBAQCBFTkQKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgaWYgKCR7ZW5hYmxlX2Z1bmN0aW9ufSgpKSB7XG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKICAgICAgICAgc3RhdGljIGNvbnN0IFY4
RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZENvbnN0YW50IGNvbnN0RGF0YSA9IHsiJHtuYW1lfSIs
IHN0YXRpY19jYXN0PHNpZ25lZCBpbnQ+KCR7dmFsdWV9KX07Ci0gICAgICAgIFY4RE9NQ29uZmln
dXJhdGlvbjo6YmF0Y2hDb25maWd1cmVDb25zdGFudHMoZGVzYywgcHJvdG8sICZjb25zdERhdGEs
IDEpOworICAgICAgICBWOERPTUNvbmZpZ3VyYXRpb246OmJhdGNoQ29uZmlndXJlQ29uc3RhbnRz
KGRlc2MsIHByb3RvLCAmY29uc3REYXRhLCAxLCBpc29sYXRlKTsKIEVORAogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJc
biNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5n
OwpAQCAtMzA3MCw3ICszMDcwLDcgQEAgRU5ECiAKICAgICBpZiAoJGhhc19jb25zdGFudHMpIHsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICBWOERPTUNvbmZpZ3VyYXRp
b246OmJhdGNoQ29uZmlndXJlQ29uc3RhbnRzKGRlc2MsIHByb3RvLCAke3Y4SW50ZXJmYWNlTmFt
ZX1Db25zdHMsIFdURl9BUlJBWV9MRU5HVEgoJHt2OEludGVyZmFjZU5hbWV9Q29uc3RzKSk7Cisg
ICAgVjhET01Db25maWd1cmF0aW9uOjpiYXRjaENvbmZpZ3VyZUNvbnN0YW50cyhkZXNjLCBwcm90
bywgJHt2OEludGVyZmFjZU5hbWV9Q29uc3RzLCBXVEZfQVJSQVlfTEVOR1RIKCR7djhJbnRlcmZh
Y2VOYW1lfUNvbnN0cyksIGlzb2xhdGUpOwogRU5ECiAgICAgfQogCkBAIC0zMTUyLDcgKzMxNTIs
NyBAQCBFTkQKIAogICAgIGlmIChAZW5hYmxlZFBlckNvbnRleHRBdHRyaWJ1dGVzKSB7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7Ci12b2lkICR7djhJbnRlcmZhY2VOYW1lfTo6
aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaW5zdGFu
Y2UsICR7bmF0aXZlVHlwZX0qIGltcGwpCit2b2lkICR7djhJbnRlcmZhY2VOYW1lfTo6aW5zdGFs
bFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaW5zdGFuY2UsICR7
bmF0aXZlVHlwZX0qIGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgIHY4OjpMb2Nh
bDx2ODo6T2JqZWN0PiBwcm90byA9IHY4OjpMb2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdChpbnN0YW5j
ZS0+R2V0UHJvdG90eXBlKCkpOwogICAgIC8vIFdoZW4gYnVpbGRpbmcgUXRXZWJraXQgd2l0aCBW
OCB0aGlzIHZhcmlhYmxlIGlzIHVudXNlZCB3aGVuIG5vbmUgb2YgdGhlIGZlYXR1cmVzIGFyZSBl
bmFibGVkLgpAQCAtMzE2OCw3ICszMTY4LDcgQEAgRU5ECiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hl
ZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XFxcbiIpOwogICAgICAgICAgICAgR2VuZXJhdGVTaW5nbGVC
YXRjaGVkQXR0cmlidXRlKCRpbnRlcmZhY2VOYW1lLCAkcnVudGltZUF0dHIsICI7IiwgIiAgICAi
KTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7Ci0gICAgICAgIFY4RE9N
Q29uZmlndXJhdGlvbjo6Y29uZmlndXJlQXR0cmlidXRlKGluc3RhbmNlLCBwcm90bywgYXR0ckRh
dGEpOworICAgICAgICBWOERPTUNvbmZpZ3VyYXRpb246OmNvbmZpZ3VyZUF0dHJpYnV0ZShpbnN0
YW5jZSwgcHJvdG8sIGF0dHJEYXRhLCBpc29sYXRlKTsKIEVORAogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgfVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5n
OwpAQCAtMzU1NSw3ICszNTU1LDcgQEAgRU5ECiAgICAgaWYgKFVOTElLRUxZKHdyYXBwZXIuSXNF
bXB0eSgpKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKLSAgICBpbnN0YWxsUGVyQ29udGV4
dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSk7CisgICAgaW5zdGFsbFBlckNvbnRleHRQ
cm9wZXJ0aWVzKHdyYXBwZXIsIGltcGwuZ2V0KCksIGlzb2xhdGUpOwogICAgIHY4OjpQZXJzaXN0
ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OmFzc29jaWF0ZU9i
amVjdFdpdGhXcmFwcGVyKGltcGwsICZpbmZvLCB3cmFwcGVyLCBpc29sYXRlKTsKICAgICBpZiAo
IWhhc0RlcGVuZGVudExpZmV0aW1lKQogICAgICAgICB3cmFwcGVySGFuZGxlLk1hcmtJbmRlcGVu
ZGVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAKaW5kZXggNzlkOTczNDE3Yzg3YzI5NjdhYTEyZTcx
ZWViYTFmNWE0OTFiOWQyYi4uMDJkNDQ4MzAyMjEzMjRhNWVkMjhiZWRiOWViNWMxMWYwZDI4Njhk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
RmxvYXQ2NEFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgc3RhdGljIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOEZsb2F0NjRBcnJheVRl
bXBsYXRlKHY4OjoKICAgICB2ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4gZGVmYXVsdFNpZ25hdHVy
ZTsKICAgICBkZWZhdWx0U2lnbmF0dXJlID0gVjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVU
ZW1wbGF0ZShkZXNjLCAiRmxvYXQ2NEFycmF5IiwgVjhBcnJheUJ1ZmZlclZpZXc6OkdldFRlbXBs
YXRlKGlzb2xhdGUpLCBWOEZsb2F0NjRBcnJheTo6aW50ZXJuYWxGaWVsZENvdW50LAogICAgICAg
ICAwLCAwLAotICAgICAgICBWOEZsb2F0NjRBcnJheUNhbGxiYWNrcywgV1RGX0FSUkFZX0xFTkdU
SChWOEZsb2F0NjRBcnJheUNhbGxiYWNrcykpOworICAgICAgICBWOEZsb2F0NjRBcnJheUNhbGxi
YWNrcywgV1RGX0FSUkFZX0xFTkdUSChWOEZsb2F0NjRBcnJheUNhbGxiYWNrcyksIGlzb2xhdGUp
OwogICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0U2lnbmF0dXJlKTsgLy8gSW4gc29tZSBjYXNlcywg
aXQgd2lsbCBub3QgYmUgdXNlZC4KICAgICBkZXNjLT5TZXRDYWxsSGFuZGxlcihWOEZsb2F0NjRB
cnJheTo6Y29uc3RydWN0b3JDYWxsYmFjayk7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3RUZW1w
bGF0ZT4gaW5zdGFuY2UgPSBkZXNjLT5JbnN0YW5jZVRlbXBsYXRlKCk7CkBAIC0xODUsNyArMTg1
LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOEZsb2F0NjRBcnJheTo6Y3JlYXRlV3JhcHBl
cihQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gaW0KICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5J
c0VtcHR5KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAotICAgIGluc3RhbGxQZXJDb250
ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBpbXBsLmdldCgpKTsKKyAgICBpbnN0YWxsUGVyQ29udGV4
dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSwgaXNvbGF0ZSk7CiAgICAgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6YXNzb2NpYXRl
T2JqZWN0V2l0aFdyYXBwZXIoaW1wbCwgJmluZm8sIHdyYXBwZXIsIGlzb2xhdGUpOwogICAgIGlm
ICghaGFzRGVwZW5kZW50TGlmZXRpbWUpCiAgICAgICAgIHdyYXBwZXJIYW5kbGUuTWFya0luZGVw
ZW5kZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhGbG9hdDY0QXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOEZsb2F0NjRBcnJheS5oCmluZGV4IDBkZDllZmM4YjBiOGRkNjJkNmZhYWYwOTA3
NGEzZjM0NzY0ODg0ZmYuLmZiODgwMWQwZTQ5ZGM0M2FlZTI0OThiYjYxZGEwYWNlZjk4NDBiYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZs
b2F0NjRBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOEZsb2F0NjRBcnJheS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
V3JhcHBlclR5cGVJbmZvIGluZm87CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBj
b25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmKTsKICAgICBzdGF0aWMgY29u
c3QgaW50IGludGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxk
Q291bnQgKyAwOwotICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBGbG9hdDY0QXJyYXkqKSB7IH0KKyAgICBzdGF0aWMgdm9p
ZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgRmxv
YXQ2NEFycmF5Kiwgdjg6Oklzb2xhdGUqKSB7IH0KICAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVy
Q29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PikgeyB9CiBw
cml2YXRlOgogICAgIGZyaWVuZCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoRmxvYXQ2NEFy
cmF5Kiwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRl
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IGYxZWYzYmRmNzFlYWIx
OTRhODQ5MmZmM2I1NDQ1NDE5MGQ2YTY5ZDkuLjZlM2VlNmRlYzI5MThlOTQ3NDVmNmFiNzExMjll
YjFmMGFkNGMxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0xMzgs
NyArMTM4LDcgQEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBD
b25maWd1cmVWOFRlc3RBY3RpdmVET01PYmplY3RUZW1wbGEKICAgICB2ODo6TG9jYWw8djg6OlNp
Z25hdHVyZT4gZGVmYXVsdFNpZ25hdHVyZTsKICAgICBkZWZhdWx0U2lnbmF0dXJlID0gVjhET01D
b25maWd1cmF0aW9uOjpjb25maWd1cmVUZW1wbGF0ZShkZXNjLCAiVGVzdEFjdGl2ZURPTU9iamVj
dCIsIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RBY3RpdmVE
T01PYmplY3Q6OmludGVybmFsRmllbGRDb3VudCwKICAgICAgICAgVjhUZXN0QWN0aXZlRE9NT2Jq
ZWN0QXR0cnMsIFdURl9BUlJBWV9MRU5HVEgoVjhUZXN0QWN0aXZlRE9NT2JqZWN0QXR0cnMpLAot
ICAgICAgICAwLCAwKTsKKyAgICAgICAgMCwgMCwgaXNvbGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFN
KGRlZmF1bHRTaWduYXR1cmUpOyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2Vk
LgogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxhdGU+IGluc3RhbmNlID0gZGVzYy0+SW5z
dGFuY2VUZW1wbGF0ZSgpOwogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxhdGU+IHByb3Rv
ID0gZGVzYy0+UHJvdG90eXBlVGVtcGxhdGUoKTsKQEAgLTIxMiw3ICsyMTIsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6Y3JlYXRlV3JhcHBlcihQYXNz
UmVmUHRyPFRlc3RBY3RpdgogICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAg
ICAgICAgIHJldHVybiB3cmFwcGVyOwogCi0gICAgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVz
KHdyYXBwZXIsIGltcGwuZ2V0KCkpOworICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3
cmFwcGVyLCBpbXBsLmdldCgpLCBpc29sYXRlKTsKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0PiB3cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVyOjphc3NvY2lhdGVPYmplY3RXaXRoV3Jh
cHBlcihpbXBsLCAmaW5mbywgd3JhcHBlciwgaXNvbGF0ZSk7CiAgICAgaWYgKCFoYXNEZXBlbmRl
bnRMaWZldGltZSkKICAgICAgICAgd3JhcHBlckhhbmRsZS5NYXJrSW5kZXBlbmRlbnQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RB
Y3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RBY3RpdmVET01PYmplY3QuaAppbmRleCA3MmVmZTBjZWY3Y2M3MGM2MjFjYjM2YzZk
YjA3OTY4YTAzZDIzOGU5Li5jMDA2ZjJmNjJjZThmYmNlZTJmOWY2OTRmYzA3NWViNzRlMDkxZDA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0QWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5oCkBAIC00Niw3ICs0Niw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdy
YXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwogICAgIHN0YXRpYyBib29sIG5hbWVkU2VjdXJp
dHlDaGVjayh2ODo6TG9jYWw8djg6Ok9iamVjdD4gaG9zdCwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
a2V5LCB2ODo6QWNjZXNzVHlwZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gZGF0YSk7CiAgICAgc3Rh
dGljIGJvb2wgaW5kZXhlZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3Qs
IHVpbnQzMl90IGluZGV4LCB2ODo6QWNjZXNzVHlwZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gZGF0
YSk7Ci0gICAgc3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4sIFRlc3RBY3RpdmVET01PYmplY3QqKSB7IH0KKyAgICBzdGF0aWMgdm9p
ZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgVGVz
dEFjdGl2ZURPTU9iamVjdCosIHY4OjpJc29sYXRlKikgeyB9CiAgICAgc3RhdGljIHZvaWQgaW5z
dGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4p
IHsgfQogcHJpdmF0ZToKICAgICBmcmllbmQgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKFRl
c3RBY3RpdmVET01PYmplY3QqLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4
dCwgdjg6Oklzb2xhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCmlu
ZGV4IDQxNDI4OTgzMGE0ZmYzMGUyYzE1OWJkYzEyYWVmMDFkOTA4MmRiZmMuLmQwOTI3NDBjMGU2
ZWFkYTE3ZjA4NzU4NzEyMDViNDU1OGRiOTExOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5h
bWVkR2V0dGVyLmNwcApAQCAtODQsNyArODQsNyBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6
OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyVGVtcAog
ICAgIHY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBkZWZhdWx0U2lnbmF0dXJlOwogICAgIGRlZmF1
bHRTaWduYXR1cmUgPSBWOERPTUNvbmZpZ3VyYXRpb246OmNvbmZpZ3VyZVRlbXBsYXRlKGRlc2Ms
ICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIiLCB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT4oKSwgVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmludGVybmFsRmllbGRDb3VudCwKICAg
ICAgICAgMCwgMCwKLSAgICAgICAgVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDYWxsYmFja3MsIFdU
Rl9BUlJBWV9MRU5HVEgoVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDYWxsYmFja3MpKTsKKyAgICAg
ICAgVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDYWxsYmFja3MsIFdURl9BUlJBWV9MRU5HVEgoVjhU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDYWxsYmFja3MpLCBpc29sYXRlKTsKICAgICBVTlVTRURfUEFS
QU0oZGVmYXVsdFNpZ25hdHVyZSk7IC8vIEluIHNvbWUgY2FzZXMsIGl0IHdpbGwgbm90IGJlIHVz
ZWQuCiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3RUZW1wbGF0ZT4gaW5zdGFuY2UgPSBkZXNjLT5J
bnN0YW5jZVRlbXBsYXRlKCk7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3RUZW1wbGF0ZT4gcHJv
dG8gPSBkZXNjLT5Qcm90b3R5cGVUZW1wbGF0ZSgpOwpAQCAtMTUwLDcgKzE1MCw3IEBAIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmNyZWF0ZVdyYXBwZXIo
UGFzc1JlZlB0cjxUZXN0Q3VzCiAgICAgaWYgKFVOTElLRUxZKHdyYXBwZXIuSXNFbXB0eSgpKSkK
ICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKLSAgICBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRp
ZXMod3JhcHBlciwgaW1wbC5nZXQoKSk7CisgICAgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVz
KHdyYXBwZXIsIGltcGwuZ2V0KCksIGlzb2xhdGUpOwogICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpP
YmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OmFzc29jaWF0ZU9iamVjdFdpdGhX
cmFwcGVyKGltcGwsICZpbmZvLCB3cmFwcGVyLCBpc29sYXRlKTsKICAgICBpZiAoIWhhc0RlcGVu
ZGVudExpZmV0aW1lKQogICAgICAgICB3cmFwcGVySGFuZGxlLk1hcmtJbmRlcGVuZGVudCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAppbmRleCBmNGI1NDAyMjRmNzJkN2QwMjE1
NDMyYTM0ZDllOTU5YWNkYzBjYWU0Li4zNGI1OGQ4ZGE4NGY2MGU5YzYzMGQxM2VlYWYyMWE5ODA4
YjU2ODliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaApAQCAtNDUsNyArNDUs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogICAgIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4sIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKICAgICBzdGF0aWMgY29uc3QgaW50
IGludGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQg
KyAwOwotICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+LCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKSB7IH0KKyAgICBzdGF0aWMg
dm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0Piwg
VGVzdEN1c3RvbU5hbWVkR2V0dGVyKiwgdjg6Oklzb2xhdGUqKSB7IH0KICAgICBzdGF0aWMgdm9p
ZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PikgeyB9CiBwcml2YXRlOgogICAgIGZyaWVuZCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdy
YXAoVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlv
bkNvbnRleHQsIHY4OjpJc29sYXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggNzAzMWY1YzdlOWJmNWU3MmRiOTdlNDVmM2NlNjUwYWQxODQxMmJiOC4uOWY2YWEz
NDUzYWM2MTI2YjNlM2YyZGVhMmIyZmIxMjFlNzUwZTFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVu
dENvbnN0cnVjdG9yLmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVu
dDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0RXZlbnRDb25zdHJ1Y3RvclRl
bXBsCiAgICAgdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+IGRlZmF1bHRTaWduYXR1cmU7CiAgICAg
ZGVmYXVsdFNpZ25hdHVyZSA9IFY4RE9NQ29uZmlndXJhdGlvbjo6Y29uZmlndXJlVGVtcGxhdGUo
ZGVzYywgIlRlc3RFdmVudENvbnN0cnVjdG9yIiwgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+KCksIFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OmludGVybmFsRmllbGRDb3VudCwK
ICAgICAgICAgVjhUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHJzLCBXVEZfQVJSQVlfTEVOR1RIKFY4
VGVzdEV2ZW50Q29uc3RydWN0b3JBdHRycyksCi0gICAgICAgIDAsIDApOworICAgICAgICAwLCAw
LCBpc29sYXRlKTsKICAgICBVTlVTRURfUEFSQU0oZGVmYXVsdFNpZ25hdHVyZSk7IC8vIEluIHNv
bWUgY2FzZXMsIGl0IHdpbGwgbm90IGJlIHVzZWQuCiAgICAgZGVzYy0+U2V0Q2FsbEhhbmRsZXIo
VjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0b3JDYWxsYmFjayk7CiAgICAgCkBAIC0x
ODIsNyArMTgyLDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RFdmVudENvbnN0cnVj
dG9yOjpjcmVhdGVXcmFwcGVyKFBhc3NSZWZQdHI8VGVzdEV2ZW4KICAgICBpZiAoVU5MSUtFTFko
d3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAotICAgIGluc3Rh
bGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBpbXBsLmdldCgpKTsKKyAgICBpbnN0YWxs
UGVyQ29udGV4dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSwgaXNvbGF0ZSk7CiAgICAg
djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6
YXNzb2NpYXRlT2JqZWN0V2l0aFdyYXBwZXIoaW1wbCwgJmluZm8sIHdyYXBwZXIsIGlzb2xhdGUp
OwogICAgIGlmICghaGFzRGVwZW5kZW50TGlmZXRpbWUpCiAgICAgICAgIHdyYXBwZXJIYW5kbGUu
TWFya0luZGVwZW5kZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuaAppbmRleCAy
ZWZhNmE1OWY2ZTVjMWM5MDNmZmZkNWY2ODgzYTA1OWRhOTA3MWI5Li40YzdhZmEwOWE5NTE3Nzc2
OWYwZDllY2RhM2FkZWI4MmVjMjFmNjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9y
LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8g
aW5mbzsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwogICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxG
aWVsZENvdW50ID0gdjhEZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCArIDA7Ci0gICAg
c3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4sIFRlc3RFdmVudENvbnN0cnVjdG9yKikgeyB9CisgICAgc3RhdGljIHZvaWQgaW5zdGFs
bFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFRlc3RFdmVudENv
bnN0cnVjdG9yKiwgdjg6Oklzb2xhdGUqKSB7IH0KICAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVy
Q29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PikgeyB9CiBw
cml2YXRlOgogICAgIGZyaWVuZCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdEV2ZW50
Q29uc3RydWN0b3IqLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCwgdjg6
Oklzb2xhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IDc2OGIxYTcyODU5NDg2
ZmEwZDE4Y2ZlMTE1MzAyZDBmMTMwN2U3YzguLmI2ZTY3MGY2MTVkNGQ2OWIwZjFlNDlmNTcyZDU1
YjBkMmJmOTYyZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMTM3LDcgKzEzNyw3
IEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJl
VjhUZXN0RXZlbnRUYXJnZXRUZW1wbGF0ZSh2CiAgICAgdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+
IGRlZmF1bHRTaWduYXR1cmU7CiAgICAgZGVmYXVsdFNpZ25hdHVyZSA9IFY4RE9NQ29uZmlndXJh
dGlvbjo6Y29uZmlndXJlVGVtcGxhdGUoZGVzYywgIlRlc3RFdmVudFRhcmdldCIsIHY4OjpQZXJz
aXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RFdmVudFRhcmdldDo6aW50ZXJu
YWxGaWVsZENvdW50LAogICAgICAgICAwLCAwLAotICAgICAgICBWOFRlc3RFdmVudFRhcmdldENh
bGxiYWNrcywgV1RGX0FSUkFZX0xFTkdUSChWOFRlc3RFdmVudFRhcmdldENhbGxiYWNrcykpOwor
ICAgICAgICBWOFRlc3RFdmVudFRhcmdldENhbGxiYWNrcywgV1RGX0FSUkFZX0xFTkdUSChWOFRl
c3RFdmVudFRhcmdldENhbGxiYWNrcyksIGlzb2xhdGUpOwogICAgIFVOVVNFRF9QQVJBTShkZWZh
dWx0U2lnbmF0dXJlKTsgLy8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUgdXNlZC4KICAg
ICB2ODo6TG9jYWw8djg6Ok9iamVjdFRlbXBsYXRlPiBpbnN0YW5jZSA9IGRlc2MtPkluc3RhbmNl
VGVtcGxhdGUoKTsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdFRlbXBsYXRlPiBwcm90byA9IGRl
c2MtPlByb3RvdHlwZVRlbXBsYXRlKCk7CkBAIC0yMTYsNyArMjE2LDcgQEAgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBWOFRlc3RFdmVudFRhcmdldDo6Y3JlYXRlV3JhcHBlcihQYXNzUmVmUHRyPFRl
c3RFdmVudFRhcmcKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAg
ICByZXR1cm4gd3JhcHBlcjsKIAotICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFw
cGVyLCBpbXBsLmdldCgpKTsKKyAgICBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMod3JhcHBl
ciwgaW1wbC5nZXQoKSwgaXNvbGF0ZSk7CiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4g
d3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6YXNzb2NpYXRlT2JqZWN0V2l0aFdyYXBwZXIo
aW1wbCwgJmluZm8sIHdyYXBwZXIsIGlzb2xhdGUpOwogICAgIGlmICghaGFzRGVwZW5kZW50TGlm
ZXRpbWUpCiAgICAgICAgIHdyYXBwZXJIYW5kbGUuTWFya0luZGVwZW5kZW50KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRU
YXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RF
dmVudFRhcmdldC5oCmluZGV4IDRiYzNlZDk5OGI3MTY2MWJmZWE5M2U2YjI4MzBmOWY2OWFhMzAy
MzQuLjA1YWQwMzJmNDIxNTMzZDljZDRmOGNhZGVlMTRiMTVkYWRkZjQ1ZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdl
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RF
dmVudFRhcmdldC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IG5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJik7CiAgICAgc3RhdGljIGNvbnN0IGludCBldmVudExp
c3RlbmVyQ2FjaGVJbmRleCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAw
OwogICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0V3Jh
cHBlckludGVybmFsRmllbGRDb3VudCArIDE7Ci0gICAgc3RhdGljIHZvaWQgaW5zdGFsbFBlckNv
bnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFRlc3RFdmVudFRhcmdldCop
IHsgfQorICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+LCBUZXN0RXZlbnRUYXJnZXQqLCB2ODo6SXNvbGF0ZSopIHsgfQogICAg
IHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+KSB7IH0KIHByaXZhdGU6CiAgICAgZnJpZW5kIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gd3JhcChUZXN0RXZlbnRUYXJnZXQqLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNy
ZWF0aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXgg
ZjE2MGY2YzdkYWZjMGEzODkwOTE2NDY1N2Q2ZjAxZmM3ODc0NTIyOS4uMjZkNjRkN2ZmZjhhNDIz
MTI1YzhiYWMxMzk1ZDljYTc3NTlkZGRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTgw
LDcgKzgwLDcgQEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBD
b25maWd1cmVWOFRlc3RFeGNlcHRpb25UZW1wbGF0ZSh2ODoKICAgICB2ODo6TG9jYWw8djg6OlNp
Z25hdHVyZT4gZGVmYXVsdFNpZ25hdHVyZTsKICAgICBkZWZhdWx0U2lnbmF0dXJlID0gVjhET01D
b25maWd1cmF0aW9uOjpjb25maWd1cmVUZW1wbGF0ZShkZXNjLCAiVGVzdEV4Y2VwdGlvbiIsIHY4
OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RFeGNlcHRpb246Omlu
dGVybmFsRmllbGRDb3VudCwKICAgICAgICAgVjhUZXN0RXhjZXB0aW9uQXR0cnMsIFdURl9BUlJB
WV9MRU5HVEgoVjhUZXN0RXhjZXB0aW9uQXR0cnMpLAotICAgICAgICAwLCAwKTsKKyAgICAgICAg
MCwgMCwgaXNvbGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRTaWduYXR1cmUpOyAvLyBJ
biBzb21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgogICAgIAogCkBAIC0xNDEsNyArMTQx
LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RFeGNlcHRpb246OmNyZWF0ZVdyYXBw
ZXIoUGFzc1JlZlB0cjxUZXN0RXhjZXB0aW9uPgogICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklz
RW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCi0gICAgaW5zdGFsbFBlckNvbnRl
eHRQcm9wZXJ0aWVzKHdyYXBwZXIsIGltcGwuZ2V0KCkpOworICAgIGluc3RhbGxQZXJDb250ZXh0
UHJvcGVydGllcyh3cmFwcGVyLCBpbXBsLmdldCgpLCBpc29sYXRlKTsKICAgICB2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVyOjphc3NvY2lhdGVP
YmplY3RXaXRoV3JhcHBlcihpbXBsLCAmaW5mbywgd3JhcHBlciwgaXNvbGF0ZSk7CiAgICAgaWYg
KCFoYXNEZXBlbmRlbnRMaWZldGltZSkKICAgICAgICAgd3JhcHBlckhhbmRsZS5NYXJrSW5kZXBl
bmRlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RFeGNlcHRpb24uaAppbmRleCA5ZmYyYTQyNmMyZWIyZmMzNjQ4YjVlNDY0
NGIyNGEzNDYzYTUyMzlmLi4zN2ZlMWRiMjYxY2IyOTgwZGNkYTgyNWEyY2FhODRkYTdjN2YzOGUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0RXhjZXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBp
bmZvOwogICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0
V3JhcHBlckludGVybmFsRmllbGRDb3VudCArIDA7Ci0gICAgc3RhdGljIHZvaWQgaW5zdGFsbFBl
ckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFRlc3RFeGNlcHRpb24q
KSB7IH0KKyAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiwgVGVzdEV4Y2VwdGlvbiosIHY4OjpJc29sYXRlKikgeyB9CiAgICAg
c3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzKHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4pIHsgfQogcHJpdmF0ZToKICAgICBmcmllbmQgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiB3cmFwKFRlc3RFeGNlcHRpb24qLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0
aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKaW5kZXggNWJh
MjEzMWFjY2RlYzgxMDdjYzU0ZmQyYWY3MTI3Mjc2Y2NmZDg0Mi4uZjc4MGYxMzc2MDFjNzM0ZGUw
Yjc3YmFhNGRiZjk5ZmY5MDg3MmM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKQEAgLTI4Niw3
ICsyODYsNyBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENv
bmZpZ3VyZVY4VGVzdEludGVyZmFjZVRlbXBsYXRlKHY4OgogICAgIHY4OjpMb2NhbDx2ODo6U2ln
bmF0dXJlPiBkZWZhdWx0U2lnbmF0dXJlOwogICAgIGRlZmF1bHRTaWduYXR1cmUgPSBWOERPTUNv
bmZpZ3VyYXRpb246OmNvbmZpZ3VyZVRlbXBsYXRlKGRlc2MsICJUZXN0SW50ZXJmYWNlIiwgdjg6
OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4VGVzdEludGVyZmFjZTo6aW50
ZXJuYWxGaWVsZENvdW50LAogICAgICAgICBWOFRlc3RJbnRlcmZhY2VBdHRycywgV1RGX0FSUkFZ
X0xFTkdUSChWOFRlc3RJbnRlcmZhY2VBdHRycyksCi0gICAgICAgIFY4VGVzdEludGVyZmFjZUNh
bGxiYWNrcywgV1RGX0FSUkFZX0xFTkdUSChWOFRlc3RJbnRlcmZhY2VDYWxsYmFja3MpKTsKKyAg
ICAgICAgVjhUZXN0SW50ZXJmYWNlQ2FsbGJhY2tzLCBXVEZfQVJSQVlfTEVOR1RIKFY4VGVzdElu
dGVyZmFjZUNhbGxiYWNrcyksIGlzb2xhdGUpOwogICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0U2ln
bmF0dXJlKTsgLy8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUgdXNlZC4KICNpZiBFTkFC
TEUoVEVTVF9JTlRFUkZBQ0UpCiAgICAgZGVzYy0+U2V0Q2FsbEhhbmRsZXIoVjhUZXN0SW50ZXJm
YWNlOjpjb25zdHJ1Y3RvckNhbGxiYWNrKTsKQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgdjg6
OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdEludGVyZmFj
ZVRlbXBsYXRlKHY4OgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKQogICAgIGRlc2MtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woInN1cHBsZW1lbnRhbE1l
dGhvZDQiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0SW50ZXJmYWNlVjhJbnRlcm5h
bDo6c3VwcGxlbWVudGFsTWV0aG9kNENhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCB2ODo6TG9jYWw8
djg6OlNpZ25hdHVyZT4oKSkpOwogI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKQotICAgIFY4RE9NQ29uZmlndXJhdGlvbjo6YmF0Y2hDb25maWd1cmVD
b25zdGFudHMoZGVzYywgcHJvdG8sIFY4VGVzdEludGVyZmFjZUNvbnN0cywgV1RGX0FSUkFZX0xF
TkdUSChWOFRlc3RJbnRlcmZhY2VDb25zdHMpKTsKKyAgICBWOERPTUNvbmZpZ3VyYXRpb246OmJh
dGNoQ29uZmlndXJlQ29uc3RhbnRzKGRlc2MsIHByb3RvLCBWOFRlc3RJbnRlcmZhY2VDb25zdHMs
IFdURl9BUlJBWV9MRU5HVEgoVjhUZXN0SW50ZXJmYWNlQ29uc3RzKSwgaXNvbGF0ZSk7CiAKICAg
ICAvLyBDdXN0b20gdG9TdHJpbmcgdGVtcGxhdGUKICAgICBkZXNjLT5TZXQodjg6OlN0cmluZzo6
TmV3U3ltYm9sKCJ0b1N0cmluZyIpLCBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPnRvU3Ry
aW5nVGVtcGxhdGUoKSk7CkBAIC0zNzEsNyArMzcxLDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBWOFRlc3RJbnRlcmZhY2U6OmNyZWF0ZVdyYXBwZXIoUGFzc1JlZlB0cjxUZXN0SW50ZXJmYWNl
PgogICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3
cmFwcGVyOwogCi0gICAgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHdyYXBwZXIsIGltcGwu
Z2V0KCkpOworICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBpbXBsLmdl
dCgpLCBpc29sYXRlKTsKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFu
ZGxlID0gVjhET01XcmFwcGVyOjphc3NvY2lhdGVPYmplY3RXaXRoV3JhcHBlcihpbXBsLCAmaW5m
bywgd3JhcHBlciwgaXNvbGF0ZSk7CiAgICAgaWYgKCFoYXNEZXBlbmRlbnRMaWZldGltZSkKICAg
ICAgICAgd3JhcHBlckhhbmRsZS5NYXJrSW5kZXBlbmRlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaApp
bmRleCBhMWRhMTI3ODY4MzIxNDY4NTA1NzBlZDRiM2JjZGMzMTVhZjBlODU0Li44NzUyNDIyMTI4
YjAyOThlNjFkOWM0YjNmNmI4NTIyOGI1YjQwMDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oCkBAIC00
OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNv
bnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwogICAgIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gbmFtZWRQcm9wZXJ0eVNldHRlcih2ODo6TG9jYWw8djg6OlN0cmlu
Zz4sIHY4OjpMb2NhbDx2ODo6VmFsdWU+LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJik7CiAgICAg
c3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2OERlZmF1bHRXcmFwcGVySW50
ZXJuYWxGaWVsZENvdW50ICsgMDsKLSAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFBy
b3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgVGVzdEludGVyZmFjZSopIHsgfQorICAg
IHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+LCBUZXN0SW50ZXJmYWNlKiwgdjg6Oklzb2xhdGUqKSB7IH0KICAgICBzdGF0aWMgdm9p
ZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PikgeyB9CiBwcml2YXRlOgogICAgIGZyaWVuZCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdy
YXAoVGVzdEludGVyZmFjZSosIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0
LCB2ODo6SXNvbGF0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwCmluZGV4IDcxNzExNjM0ZTk4NmIxODVhMzViOGFlNmE2ZmZlNGM2NDUxZTNkOWQuLjkw
NWQ0Zjc4MmNjNDYzOWZiZDkyY2Y5OWM5ZGFkMDc4ZDRmMDdiODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgc3RhdGlj
IHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmUKICAgICB2ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4gZGVmYXVsdFNp
Z25hdHVyZTsKICAgICBkZWZhdWx0U2lnbmF0dXJlID0gVjhET01Db25maWd1cmF0aW9uOjpjb25m
aWd1cmVUZW1wbGF0ZShkZXNjLCAiVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiLCB2ODo6UGVy
c2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcjo6aW50ZXJuYWxGaWVsZENvdW50LAogICAgICAgICAwLCAwLAotICAgICAgICBWOFRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ2FsbGJhY2tzLCBXVEZfQVJSQVlfTEVOR1RIKFY4VGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJDYWxsYmFja3MpKTsKKyAgICAgICAgVjhUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lckNhbGxiYWNrcywgV1RGX0FSUkFZX0xFTkdUSChWOFRlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyQ2FsbGJhY2tzKSwgaXNvbGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKGRlZmF1
bHRTaWduYXR1cmUpOyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgogICAg
IHY4OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxhdGU+IGluc3RhbmNlID0gZGVzYy0+SW5zdGFuY2VU
ZW1wbGF0ZSgpOwogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxhdGU+IHByb3RvID0gZGVz
Yy0+UHJvdG90eXBlVGVtcGxhdGUoKTsKQEAgLTE1MCw3ICsxNTAsNyBAQCB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IFY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZVdyYXBwZXIoUGFz
c1JlZlB0cjxUZQogICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAgICAg
IHJldHVybiB3cmFwcGVyOwogCi0gICAgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHdyYXBw
ZXIsIGltcGwuZ2V0KCkpOworICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFwcGVy
LCBpbXBsLmdldCgpLCBpc29sYXRlKTsKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3
cmFwcGVySGFuZGxlID0gVjhET01XcmFwcGVyOjphc3NvY2lhdGVPYmplY3RXaXRoV3JhcHBlcihp
bXBsLCAmaW5mbywgd3JhcHBlciwgaXNvbGF0ZSk7CiAgICAgaWYgKCFoYXNEZXBlbmRlbnRMaWZl
dGltZSkKICAgICAgICAgd3JhcHBlckhhbmRsZS5NYXJrSW5kZXBlbmRlbnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCmluZGV4IDY3YTFiYzM2ODAzM2RkZWQ5
NDBiNTkwNTE0MGY4MDNlYTIzZWFhYTIuLjE3MjI1MWY0ZDQwZTk1NWZlNDA0YzM0MDdjYjdkZjZm
MDQyNDFiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApA
QCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9p
ZCopOwogICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgY29uc3Qg
aW50IGludGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291
bnQgKyAwOwotICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+LCBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciopIHsgfQorICAg
IHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+LCBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciosIHY4OjpJc29sYXRlKikgeyB9CiAg
ICAgc3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4pIHsgfQogcHJpdmF0ZToKICAgICBmcmllbmQgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiB3cmFwKFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiwgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
TmFtZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNmUzZTI1ZmJmMDY1MWJlNWNhMmFlZDg2NzRiMWVj
NDMwMGZmMDc5OC4uMTU1MGMwZDFjOTZmMDhhMTVmZGVhMjE0MTBlNDM4ZTAwZjEzNjJlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5h
bWVkQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHN0
YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0
TmFtZWRDb25zdHJ1Y3RvclRlbXBsCiAgICAgdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+IGRlZmF1
bHRTaWduYXR1cmU7CiAgICAgZGVmYXVsdFNpZ25hdHVyZSA9IFY4RE9NQ29uZmlndXJhdGlvbjo6
Y29uZmlndXJlVGVtcGxhdGUoZGVzYywgIlRlc3ROYW1lZENvbnN0cnVjdG9yIiwgdjg6OlBlcnNp
c3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4VGVzdE5hbWVkQ29uc3RydWN0b3I6Omlu
dGVybmFsRmllbGRDb3VudCwKICAgICAgICAgMCwgMCwKLSAgICAgICAgMCwgMCk7CisgICAgICAg
IDAsIDAsIGlzb2xhdGUpOwogICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0U2lnbmF0dXJlKTsgLy8g
SW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUgdXNlZC4KICAgICAKIApAQCAtMTkxLDcgKzE5
MSw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlV3JhcHBlcihQYXNzUmVmUHRyPFRlc3ROYW1lCiAgICAgaWYgKFVOTElLRUxZKHdyYXBwZXIu
SXNFbXB0eSgpKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKLSAgICBpbnN0YWxsUGVyQ29u
dGV4dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSk7CisgICAgaW5zdGFsbFBlckNvbnRl
eHRQcm9wZXJ0aWVzKHdyYXBwZXIsIGltcGwuZ2V0KCksIGlzb2xhdGUpOwogICAgIHY4OjpQZXJz
aXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERPTVdyYXBwZXI6OmFzc29jaWF0
ZU9iamVjdFdpdGhXcmFwcGVyKGltcGwsICZpbmZvLCB3cmFwcGVyLCBpc29sYXRlKTsKICAgICBp
ZiAoIWhhc0RlcGVuZGVudExpZmV0aW1lKQogICAgICAgICB3cmFwcGVySGFuZGxlLk1hcmtJbmRl
cGVuZGVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmgKaW5kZXggOTI4NGFhOWU3
NDVkNjliM2FiMTUxMTUwMTg4ZjU5N2VjZTU1MTdjNC4uNzk1NDJmY2YwYjRiZjQ4YjNjYzkwZDY0
MGUxNzE2ZGRkYTlmYmE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCkBAIC01
MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiAg
ICAgc3RhdGljIEFjdGl2ZURPTU9iamVjdCogdG9BY3RpdmVET01PYmplY3Qodjg6OkhhbmRsZTx2
ODo6T2JqZWN0Pik7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2
OERlZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ICsgMDsKLSAgICBzdGF0aWMgdm9pZCBp
bnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgVGVzdE5h
bWVkQ29uc3RydWN0b3IqKSB7IH0KKyAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFBy
b3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgVGVzdE5hbWVkQ29uc3RydWN0b3IqLCB2
ODo6SXNvbGF0ZSopIHsgfQogICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90
eXBlUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KSB7IH0KIHByaXZhdGU6CiAgICAg
ZnJpZW5kIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0TmFtZWRDb25zdHJ1Y3Rvcios
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dE5vZGUuY3BwCmluZGV4IDk3MWQzZGViYzFmNjFjMmI0ZWMwNzQ4OTRjMTI4YTc4NTZlNWU1M2Eu
LmMzYWQxMjFlZjE0ZjZjM2FhMjRlZjgyZjAyNjA1MmNlNTQ3NGY1NTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHAK
QEAgLTg2LDcgKzg2LDcgQEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBs
YXRlPiBDb25maWd1cmVWOFRlc3ROb2RlVGVtcGxhdGUodjg6OlBlcnMKICAgICB2ODo6TG9jYWw8
djg6OlNpZ25hdHVyZT4gZGVmYXVsdFNpZ25hdHVyZTsKICAgICBkZWZhdWx0U2lnbmF0dXJlID0g
VjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVUZW1wbGF0ZShkZXNjLCAiVGVzdE5vZGUiLCBW
OE5vZGU6OkdldFRlbXBsYXRlKGlzb2xhdGUpLCBWOFRlc3ROb2RlOjppbnRlcm5hbEZpZWxkQ291
bnQsCiAgICAgICAgIDAsIDAsCi0gICAgICAgIDAsIDApOworICAgICAgICAwLCAwLCBpc29sYXRl
KTsKICAgICBVTlVTRURfUEFSQU0oZGVmYXVsdFNpZ25hdHVyZSk7IC8vIEluIHNvbWUgY2FzZXMs
IGl0IHdpbGwgbm90IGJlIHVzZWQuCiAgICAgZGVzYy0+U2V0Q2FsbEhhbmRsZXIoVjhUZXN0Tm9k
ZTo6Y29uc3RydWN0b3JDYWxsYmFjayk7CiAgICAgCkBAIC0xNTQsNyArMTU0LDcgQEAgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBWOFRlc3ROb2RlOjpjcmVhdGVXcmFwcGVyKFBhc3NSZWZQdHI8VGVz
dE5vZGU+IGltcGwsIHY4OjoKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQog
ICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAotICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGll
cyh3cmFwcGVyLCBpbXBsLmdldCgpKTsKKyAgICBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMo
d3JhcHBlciwgaW1wbC5nZXQoKSwgaXNvbGF0ZSk7CiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6YXNzb2NpYXRlT2JqZWN0V2l0aFdy
YXBwZXIoaW1wbCwgJmluZm8sIHdyYXBwZXIsIGlzb2xhdGUpOwogICAgIGlmICghaGFzRGVwZW5k
ZW50TGlmZXRpbWUpCiAgICAgICAgIHdyYXBwZXJIYW5kbGUuTWFya0luZGVwZW5kZW50KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5v
ZGUuaAppbmRleCAyMDU3M2JlNWJiM2MwMWUxZjE5MTJiOTdiNjcwODQ5YmU2OTNkNTdiLi5kMDMy
MDQ1MTZjMDY5NjhjNjhkMzIzMmE1MmIyYmUyNGY3NTZjNTFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmgKQEAgLTQ2LDcg
KzQ2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBFdmVudFRhcmdldCogdG9FdmVudFRhcmdldCh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+KTsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwogICAgIHN0YXRpYyBj
b25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0V3JhcHBlckludGVybmFsRmll
bGRDb3VudCArIDA7Ci0gICAgc3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVz
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFRlc3ROb2RlKikgeyB9CisgICAgc3RhdGljIHZvaWQg
aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFRlc3RO
b2RlKiwgdjg6Oklzb2xhdGUqKSB7IH0KICAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4
dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PikgeyB9CiBwcml2YXRl
OgogICAgIGZyaWVuZCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdE5vZGUqLCB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHAKaW5kZXggZDI2ZmMzNmYyMjI4ZDhlOTM0NTM1MTUxNDA0Nzg1YTkyZjJhYTU1My4uZTg5YjFh
YzJiNjc5ZjJmMzU5OTIzNmRlY2EzMzhlNGUzMGYyNTMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTIxMDEs
NyArMjEwMSw3IEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4g
Q29uZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUodjg6OlBlcnNpCiAgICAgdjg6OkxvY2FsPHY4OjpT
aWduYXR1cmU+IGRlZmF1bHRTaWduYXR1cmU7CiAgICAgZGVmYXVsdFNpZ25hdHVyZSA9IFY4RE9N
Q29uZmlndXJhdGlvbjo6Y29uZmlndXJlVGVtcGxhdGUoZGVzYywgIlRlc3RPYmplY3QiLCB2ODo6
UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjppbnRlcm5hbEZp
ZWxkQ291bnQsCiAgICAgICAgIFY4VGVzdE9iakF0dHJzLCBXVEZfQVJSQVlfTEVOR1RIKFY4VGVz
dE9iakF0dHJzKSwKLSAgICAgICAgVjhUZXN0T2JqQ2FsbGJhY2tzLCBXVEZfQVJSQVlfTEVOR1RI
KFY4VGVzdE9iakNhbGxiYWNrcykpOworICAgICAgICBWOFRlc3RPYmpDYWxsYmFja3MsIFdURl9B
UlJBWV9MRU5HVEgoVjhUZXN0T2JqQ2FsbGJhY2tzKSwgaXNvbGF0ZSk7CiAgICAgVU5VU0VEX1BB
UkFNKGRlZmF1bHRTaWduYXR1cmUpOyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1
c2VkLgogICAgIGRlc2MtPlNldENhbGxIYW5kbGVyKFY4VGVzdE9iajo6Y29uc3RydWN0b3JDYWxs
YmFjayk7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3RUZW1wbGF0ZT4gaW5zdGFuY2UgPSBkZXNj
LT5JbnN0YW5jZVRlbXBsYXRlKCk7CkBAIC0yMTEzLDEzICsyMTEzLDEzIEBAIHN0YXRpYyB2ODo6
UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0T2JqVGVtcGxh
dGUodjg6OlBlcnNpCiAgICAgICAgIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJh
dGNoZWRBdHRyaWJ1dGUgYXR0ckRhdGEgPVwKICAgICAgICAgLy8gQXR0cmlidXRlICdlbmFibGVk
QXRSdW50aW1lQXR0cjEnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnVjhFbmFibGVkQXRS
dW50aW1lJykKICAgICAgICAgeyJlbmFibGVkQXRSdW50aW1lQXR0cjEiLCBUZXN0T2JqVjhJbnRl
cm5hbDo6ZW5hYmxlZEF0UnVudGltZUF0dHIxQXR0ckdldHRlciwgVGVzdE9ialY4SW50ZXJuYWw6
OmVuYWJsZWRBdFJ1bnRpbWVBdHRyMUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGlj
X2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlBy
b3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99OwotICAgICAg
ICBWOERPTUNvbmZpZ3VyYXRpb246OmNvbmZpZ3VyZUF0dHJpYnV0ZShpbnN0YW5jZSwgcHJvdG8s
IGF0dHJEYXRhKTsKKyAgICAgICAgVjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVBdHRyaWJ1
dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSwgaXNvbGF0ZSk7CiAgICAgfQogICAgIGlmIChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpmZWF0dXJlTmFtZUVuYWJsZWQoKSkgewogICAgICAgICBz
dGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIGF0dHJEYXRh
ID1cCiAgICAgICAgIC8vIEF0dHJpYnV0ZSAnZW5hYmxlZEF0UnVudGltZUF0dHIyJyAoVHlwZTog
J2F0dHJpYnV0ZScgRXh0QXR0cjogJ1Y4RW5hYmxlZEF0UnVudGltZScpCiAgICAgICAgIHsiZW5h
YmxlZEF0UnVudGltZUF0dHIyIiwgVGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVB
dHRyMkF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjplbmFibGVkQXRSdW50aW1lQXR0cjJB
dHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9s
Pih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5v
bmUpLCAwIC8qIG9uIGluc3RhbmNlICovfTsKLSAgICAgICAgVjhET01Db25maWd1cmF0aW9uOjpj
b25maWd1cmVBdHRyaWJ1dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7CisgICAgICAgIFY4
RE9NQ29uZmlndXJhdGlvbjo6Y29uZmlndXJlQXR0cmlidXRlKGluc3RhbmNlLCBwcm90bywgYXR0
ckRhdGEsIGlzb2xhdGUpOwogICAgIH0KIAogICAgIC8vIEN1c3RvbSBTaWduYXR1cmUgJ3ZvaWRN
ZXRob2RXaXRoQXJncycKQEAgLTIyMDMsNyArMjIwMyw3IEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVu
dDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUodjg6OlBl
cnNpCiAgICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gdmFyaWFkaWNOb2RlTWV0
aG9kQXJndlt2YXJpYWRpY05vZGVNZXRob2RBcmdjXSA9IHsgVjhOb2RlOjpHZXRSYXdUZW1wbGF0
ZShpc29sYXRlKSwgVjhOb2RlOjpHZXRSYXdUZW1wbGF0ZShpc29sYXRlKSB9OwogICAgIHY4OjpI
YW5kbGU8djg6OlNpZ25hdHVyZT4gdmFyaWFkaWNOb2RlTWV0aG9kU2lnbmF0dXJlID0gdjg6OlNp
Z25hdHVyZTo6TmV3KGRlc2MsIHZhcmlhZGljTm9kZU1ldGhvZEFyZ2MsIHZhcmlhZGljTm9kZU1l
dGhvZEFyZ3YpOwogICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJ2YXJpYWRp
Y05vZGVNZXRob2QiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqVjhJbnRlcm5h
bDo6dmFyaWFkaWNOb2RlTWV0aG9kQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIHZhcmlhZGljTm9k
ZU1ldGhvZFNpZ25hdHVyZSkpOwotICAgIFY4RE9NQ29uZmlndXJhdGlvbjo6YmF0Y2hDb25maWd1
cmVDb25zdGFudHMoZGVzYywgcHJvdG8sIFY4VGVzdE9iakNvbnN0cywgV1RGX0FSUkFZX0xFTkdU
SChWOFRlc3RPYmpDb25zdHMpKTsKKyAgICBWOERPTUNvbmZpZ3VyYXRpb246OmJhdGNoQ29uZmln
dXJlQ29uc3RhbnRzKGRlc2MsIHByb3RvLCBWOFRlc3RPYmpDb25zdHMsIFdURl9BUlJBWV9MRU5H
VEgoVjhUZXN0T2JqQ29uc3RzKSwgaXNvbGF0ZSk7CiAKICAgICAvLyBDdXN0b20gdG9TdHJpbmcg
dGVtcGxhdGUKICAgICBkZXNjLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJ0b1N0cmluZyIp
LCBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPnRvU3RyaW5nVGVtcGxhdGUoKSk7CkBAIC0y
MjQ4LDcgKzIyNDgsNyBAQCBib29sIFY4VGVzdE9iajo6SGFzSW5zdGFuY2Uodjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHZhbHVlLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKICAgICByZXR1cm4gR2V0UmF3
VGVtcGxhdGUoaXNvbGF0ZSktPkhhc0luc3RhbmNlKHZhbHVlKTsKIH0KIAotdm9pZCBWOFRlc3RP
Ymo6Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGlu
c3RhbmNlLCBUZXN0T2JqKiBpbXBsKQordm9pZCBWOFRlc3RPYmo6Omluc3RhbGxQZXJDb250ZXh0
UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGluc3RhbmNlLCBUZXN0T2JqKiBpbXBs
LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gcHJv
dG8gPSB2ODo6TG9jYWw8djg6Ok9iamVjdD46OkNhc3QoaW5zdGFuY2UtPkdldFByb3RvdHlwZSgp
KTsKICAgICAvLyBXaGVuIGJ1aWxkaW5nIFF0V2Via2l0IHdpdGggVjggdGhpcyB2YXJpYWJsZSBp
cyB1bnVzZWQgd2hlbiBub25lIG9mIHRoZSBmZWF0dXJlcyBhcmUgZW5hYmxlZC4KQEAgLTIyNTcs
MTMgKzIyNTcsMTMgQEAgdm9pZCBWOFRlc3RPYmo6Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGll
cyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGluc3RhbmNlLCBUZXMKICAgICAgICAgc3RhdGljIGNv
bnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XAogICAg
ICAgICAvLyBBdHRyaWJ1dGUgJ2VuYWJsZWRQZXJDb250ZXh0QXR0cjEnIChUeXBlOiAnYXR0cmli
dXRlJyBFeHRBdHRyOiAnVjhFbmFibGVkUGVyQ29udGV4dCcpCiAgICAgICAgIHsiZW5hYmxlZFBl
ckNvbnRleHRBdHRyMSIsIFRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29udGV4dEF0dHIx
QXR0ckdldHRlciwgVGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0QXR0cjFBdHRy
U2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2
ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUp
LCAwIC8qIG9uIGluc3RhbmNlICovfTsKLSAgICAgICAgVjhET01Db25maWd1cmF0aW9uOjpjb25m
aWd1cmVBdHRyaWJ1dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7CisgICAgICAgIFY4RE9N
Q29uZmlndXJhdGlvbjo6Y29uZmlndXJlQXR0cmlidXRlKGluc3RhbmNlLCBwcm90bywgYXR0ckRh
dGEsIGlzb2xhdGUpOwogICAgIH0KICAgICBpZiAoQ29udGV4dEZlYXR1cmVzOjpmZWF0dXJlTmFt
ZUVuYWJsZWQoaW1wbC0+ZG9jdW1lbnQoKSkpIHsKICAgICAgICAgc3RhdGljIGNvbnN0IFY4RE9N
Q29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XAogICAgICAgICAvLyBB
dHRyaWJ1dGUgJ2VuYWJsZWRQZXJDb250ZXh0QXR0cjInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRB
dHRyOiAnVjhFbmFibGVkUGVyQ29udGV4dCcpCiAgICAgICAgIHsiZW5hYmxlZFBlckNvbnRleHRB
dHRyMiIsIFRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29udGV4dEF0dHIyQXR0ckdldHRl
ciwgVGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0QXR0cjJBdHRyU2V0dGVyLCAw
IC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVM
VCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9u
IGluc3RhbmNlICovfTsKLSAgICAgICAgVjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVBdHRy
aWJ1dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7CisgICAgICAgIFY4RE9NQ29uZmlndXJh
dGlvbjo6Y29uZmlndXJlQXR0cmlidXRlKGluc3RhbmNlLCBwcm90bywgYXR0ckRhdGEsIGlzb2xh
dGUpOwogICAgIH0KIH0KIApAQCAtMjI5Niw3ICsyMjk2LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBWOFRlc3RPYmo6OmNyZWF0ZVdyYXBwZXIoUGFzc1JlZlB0cjxUZXN0T2JqPiBpbXBsLCB2
ODo6SGEKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1
cm4gd3JhcHBlcjsKIAotICAgIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBp
bXBsLmdldCgpKTsKKyAgICBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMod3JhcHBlciwgaW1w
bC5nZXQoKSwgaXNvbGF0ZSk7CiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBl
ckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6YXNzb2NpYXRlT2JqZWN0V2l0aFdyYXBwZXIoaW1wbCwg
JmluZm8sIHdyYXBwZXIsIGlzb2xhdGUpOwogICAgIGlmICghaGFzRGVwZW5kZW50TGlmZXRpbWUp
CiAgICAgICAgIHdyYXBwZXJIYW5kbGUuTWFya0luZGVwZW5kZW50KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmgKaW5kZXggMGZl
YjlmMTBiNjU2N2Q4MmQ0MTk5MzQ4NjcyMThjNDA2MzNjYTY0Yi4uMDU3ZDQ5MTkwZTVkMGU5YjUz
N2Q3MWY2MTJhYmE3M2IzYTllZDI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjdXN0b21BdHRyQWNjZXNzb3JHZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsK
ICAgICBzdGF0aWMgdm9pZCBjdXN0b21BdHRyQWNjZXNzb3JTZXR0ZXIodjg6OkxvY2FsPHY4OjpT
dHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZv
Jik7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2OERlZmF1bHRX
cmFwcGVySW50ZXJuYWxGaWVsZENvdW50ICsgMDsKLSAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVy
Q29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgVGVzdE9iaiopOworICAg
IHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+LCBUZXN0T2JqKiwgdjg6Oklzb2xhdGUqKTsKICAgICBzdGF0aWMgdm9pZCBpbnN0YWxs
UGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7CiBw
cml2YXRlOgogICAgIGZyaWVuZCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdE9iaios
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCmluZGV4IDk3NGNj
OTc4MmM2Mzg4YWIxYWIyMDc4NmNjMjhkNGYzNzYzNzVhMjcuLmUyNWYwMGNlZjE0NzVhYWQxZDk3
ZjJiZmJhNTU3OTlmMDA2NjVhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycy5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8
djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cgogICAgIHY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBkZWZhdWx0U2lnbmF0dXJlOwogICAgIGRl
ZmF1bHRTaWduYXR1cmUgPSBWOERPTUNvbmZpZ3VyYXRpb246OmNvbmZpZ3VyZVRlbXBsYXRlKGRl
c2MsICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyIsIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5j
dGlvblRlbXBsYXRlPigpLCBWOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjppbnRlcm5hbEZp
ZWxkQ291bnQsCiAgICAgICAgIDAsIDAsCi0gICAgICAgIDAsIDApOworICAgICAgICAwLCAwLCBp
c29sYXRlKTsKICAgICBVTlVTRURfUEFSQU0oZGVmYXVsdFNpZ25hdHVyZSk7IC8vIEluIHNvbWUg
Y2FzZXMsIGl0IHdpbGwgbm90IGJlIHVzZWQuCiAgICAgZGVzYy0+U2V0Q2FsbEhhbmRsZXIoVjhU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Y29uc3RydWN0b3JDYWxsYmFjayk7CiAgICAgCkBA
IC0yMDUsNyArMjA1LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzOjpjcmVhdGVXcmFwcGVyKFBhc3NSZWZQdHI8VGUKICAgICBpZiAoVU5MSUtF
TFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAotICAgIGlu
c3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBpbXBsLmdldCgpKTsKKyAgICBpbnN0
YWxsUGVyQ29udGV4dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSwgaXNvbGF0ZSk7CiAg
ICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBl
cjo6YXNzb2NpYXRlT2JqZWN0V2l0aFdyYXBwZXIoaW1wbCwgJmluZm8sIHdyYXBwZXIsIGlzb2xh
dGUpOwogICAgIGlmICghaGFzRGVwZW5kZW50TGlmZXRpbWUpCiAgICAgICAgIHdyYXBwZXJIYW5k
bGUuTWFya0luZGVwZW5kZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMuaAppbmRleCAxZDJlMGM1NWE2ZWFjOGU4MTg3ZWJjNjIxZmZhYjkyMDMzYTNlMGQxLi4z
MjUzOTU4OWEyYTlkNGE4NWJlNWM5NzBiMDU5N2JlOTA3YWYyMzdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwogICAg
IHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0V3JhcHBlcklu
dGVybmFsRmllbGRDb3VudCArIDA7Ci0gICAgc3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQ
cm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzKikgeyB9CisgICAgc3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4sIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiwgdjg6Oklz
b2xhdGUqKSB7IH0KICAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVBy
b3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PikgeyB9CiBwcml2YXRlOgogICAgIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0b3IxQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcAppbmRleCAxZGM5NWVhMzg5NGU4NzZlYWNmMDk1OTMyMDJmY2Q3NjU4
MWY4MjIxLi43YzhiN2U1NzQ4NjllMzQzOTU0MGI2ODUyNTdkZGZiODQ1NjgzMzI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNw
cApAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlCiAgICAgdjg6Okxv
Y2FsPHY4OjpTaWduYXR1cmU+IGRlZmF1bHRTaWduYXR1cmU7CiAgICAgZGVmYXVsdFNpZ25hdHVy
ZSA9IFY4RE9NQ29uZmlndXJhdGlvbjo6Y29uZmlndXJlVGVtcGxhdGUoZGVzYywgIlRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiLCB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4oKSwgVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjppbnRlcm5h
bEZpZWxkQ291bnQsCiAgICAgICAgIFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUF0dHJzLCBXVEZfQVJSQVlfTEVOR1RIKFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUF0dHJzKSwKLSAgICAgICAgVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q2FsbGJhY2tzLCBXVEZfQVJSQVlfTEVOR1RIKFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZUNhbGxiYWNrcykpOworICAgICAgICBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDYWxsYmFja3MsIFdURl9BUlJBWV9MRU5HVEgoVjhUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ2FsbGJhY2tzKSwgaXNvbGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKGRl
ZmF1bHRTaWduYXR1cmUpOyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgog
ICAgIGRlc2MtPlNldENhbGxIYW5kbGVyKFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZTo6Y29uc3RydWN0b3JDYWxsYmFjayk7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3RUZW1w
bGF0ZT4gaW5zdGFuY2UgPSBkZXNjLT5JbnN0YW5jZVRlbXBsYXRlKCk7CkBAIC0zMjMsNyArMzIz
LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U6OmNyZWF0ZVdyYXBwZXIoUGFzc1IKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5J
c0VtcHR5KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAotICAgIGluc3RhbGxQZXJDb250
ZXh0UHJvcGVydGllcyh3cmFwcGVyLCBpbXBsLmdldCgpKTsKKyAgICBpbnN0YWxsUGVyQ29udGV4
dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5nZXQoKSwgaXNvbGF0ZSk7CiAgICAgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6YXNzb2NpYXRl
T2JqZWN0V2l0aFdyYXBwZXIoaW1wbCwgJmluZm8sIHdyYXBwZXIsIGlzb2xhdGUpOwogICAgIGlm
ICghaGFzRGVwZW5kZW50TGlmZXRpbWUpCiAgICAgICAgIHdyYXBwZXJIYW5kbGUuTWFya0luZGVw
ZW5kZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlLmgKaW5kZXggYzBjMmMzOWU0N2M0OGE0NjljNzJjMWQwYjJlMDA1YTM4MjIxODQ0
OC4uNzg5OWVkZDEzMTc3ZTVmNjc5ZjhlZmQ2MjU1MDg1YWQwYjhmYjdmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAtNDcs
NyArNDcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogICAg
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJik7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQg
PSB2OERlZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ICsgMDsKLSAgICBzdGF0aWMgdm9p
ZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSopIHsgfQorICAgIHN0YXRpYyB2b2lkIGlu
c3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiwgdjg6Oklzb2xhdGUqKSB7IH0KICAgICBzdGF0
aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2
ODo6T2JqZWN0PikgeyB9CiBwcml2YXRlOgogICAgIGZyaWVuZCB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IHdyYXAoVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSosIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggOGIxMTMz
MWVhMWZiOTAwYTVlNmIzNjI1N2U1YmVhOWZmYTE1NGRmMS4uMGJiYTZmYzk3OWZjYTI5YzZlY2E4
Yjg4NjRhMjQ1ZWFiZGE1NmIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01Db25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOERPTUNvbmZpZ3VyYXRpb24uY3BwCkBAIC0zMyw0NSArMzMsMjkgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi12b2lkIFY4RE9NQ29uZmlndXJhdGlvbjo6YmF0Y2hDb25maWd1cmVBdHRy
aWJ1dGVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiBpbnN0YW5jZSwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6
Ok9iamVjdFRlbXBsYXRlPiBwcm90b3R5cGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCYXRjaGVkQXR0cmlidXRlKiBhdHRyaWJ1dGVz
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZV90IGF0dHJpYnV0ZUNvdW50KQordm9pZCBWOERPTUNvbmZpZ3VyYXRpb246OmJhdGNoQ29uZmln
dXJlQXR0cmlidXRlcyh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gaW5zdGFuY2UsIHY4
OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiBwcm90b3R5cGUsIGNvbnN0IEJhdGNoZWRBdHRy
aWJ1dGUqIGF0dHJpYnV0ZXMsIHNpemVfdCBhdHRyaWJ1dGVDb3VudCwgdjg6Oklzb2xhdGUqIGlz
b2xhdGUpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhdHRyaWJ1dGVDb3VudDsgKytp
KQotICAgICAgICBjb25maWd1cmVBdHRyaWJ1dGUoaW5zdGFuY2UsIHByb3RvdHlwZSwgYXR0cmli
dXRlc1tpXSk7CisgICAgICAgIGNvbmZpZ3VyZUF0dHJpYnV0ZShpbnN0YW5jZSwgcHJvdG90eXBl
LCBhdHRyaWJ1dGVzW2ldLCBpc29sYXRlKTsKIH0KIAotdm9pZCBWOERPTUNvbmZpZ3VyYXRpb246
OmJhdGNoQ29uZmlndXJlQ29uc3RhbnRzKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+
IGZ1bmN0aW9uRGVzY3JpcHRvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gcHJvdG90eXBlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJh
dGNoZWRDb25zdGFudCogY29uc3RhbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBjb25zdGFudENvdW50KQordm9pZCBWOERPTUNvbmZp
Z3VyYXRpb246OmJhdGNoQ29uZmlndXJlQ29uc3RhbnRzKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+IGZ1bmN0aW9uRGVzY3JpcHRvciwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxh
dGU+IHByb3RvdHlwZSwgY29uc3QgQmF0Y2hlZENvbnN0YW50KiBjb25zdGFudHMsIHNpemVfdCBj
b25zdGFudENvdW50LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGNvbnN0YW50Q291bnQ7ICsraSkgewogICAgICAgICBjb25zdCBCYXRjaGVkQ29u
c3RhbnQqIGNvbnN0YW50ID0gJmNvbnN0YW50c1tpXTsKLSAgICAgICAgZnVuY3Rpb25EZXNjcmlw
dG9yLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKGNvbnN0YW50LT5uYW1lKSwgZGVwcmVjYXRl
ZFY4SW50ZWdlcihjb25zdGFudC0+dmFsdWUpLCB2ODo6UmVhZE9ubHkpOwotICAgICAgICBwcm90
b3R5cGUtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woY29uc3RhbnQtPm5hbWUpLCBkZXByZWNh
dGVkVjhJbnRlZ2VyKGNvbnN0YW50LT52YWx1ZSksIHY4OjpSZWFkT25seSk7CisgICAgICAgIGZ1
bmN0aW9uRGVzY3JpcHRvci0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbChjb25zdGFudC0+bmFt
ZSksIHY4SW50ZWdlcihjb25zdGFudC0+dmFsdWUsIGlzb2xhdGUpLCB2ODo6UmVhZE9ubHkpOwor
ICAgICAgICBwcm90b3R5cGUtPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woY29uc3RhbnQtPm5h
bWUpLCB2OEludGVnZXIoY29uc3RhbnQtPnZhbHVlLCBpc29sYXRlKSwgdjg6OlJlYWRPbmx5KTsK
ICAgICB9CiB9CiAKLXZvaWQgVjhET01Db25maWd1cmF0aW9uOjpiYXRjaENvbmZpZ3VyZUNhbGxi
YWNrcyh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gcHJvdG90eXBlLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ODo6SGFuZGxlPHY4OjpT
aWduYXR1cmU+IHNpZ25hdHVyZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdjg6OlByb3BlcnR5QXR0cmlidXRlIGF0dHJpYnV0ZXMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmF0Y2hlZENh
bGxiYWNrKiBjYWxsYmFja3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IGNhbGxiYWNrQ291bnQpCit2b2lkIFY4RE9NQ29uZmlndXJhdGlv
bjo6YmF0Y2hDb25maWd1cmVDYWxsYmFja3Modjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+
IHByb3RvdHlwZSwgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBzaWduYXR1cmUsIHY4OjpQcm9w
ZXJ0eUF0dHJpYnV0ZSBhdHRyaWJ1dGVzLCBjb25zdCBCYXRjaGVkQ2FsbGJhY2sqIGNhbGxiYWNr
cywgc2l6ZV90IGNhbGxiYWNrQ291bnQsIHY4OjpJc29sYXRlKikKIHsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGNhbGxiYWNrQ291bnQ7ICsraSkKICAgICAgICAgcHJvdG90eXBlLT5TZXQo
djg6OlN0cmluZzo6TmV3U3ltYm9sKGNhbGxiYWNrc1tpXS5uYW1lKSwgdjg6OkZ1bmN0aW9uVGVt
cGxhdGU6Ok5ldyhjYWxsYmFja3NbaV0uY2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIHNpZ25hdHVy
ZSksIGF0dHJpYnV0ZXMpOwogfQogCi12ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4gVjhET01Db25m
aWd1cmF0aW9uOjpjb25maWd1cmVUZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4gZnVuY3Rpb25EZXNjcmlwdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogaW50ZXJmYWNl
TmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBwYXJlbnRD
bGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBmaWVsZENvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmF0Y2hlZEF0dHJp
YnV0ZSogYXR0cmlidXRlcywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYXR0cmlidXRlQ291bnQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBCYXRjaGVkQ2FsbGJhY2sqIGNhbGxiYWNrcywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBjYWxsYmFja0Nv
dW50KQordjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+IFY4RE9NQ29uZmlndXJhdGlvbjo6Y29uZmln
dXJlVGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGZ1bmN0aW9u
RGVzY3JpcHRvciwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgdjg6OlBlcnNpc3RlbnQ8djg6
OkZ1bmN0aW9uVGVtcGxhdGU+IHBhcmVudENsYXNzLAorICAgIHNpemVfdCBmaWVsZENvdW50LCBj
b25zdCBCYXRjaGVkQXR0cmlidXRlKiBhdHRyaWJ1dGVzLCBzaXplX3QgYXR0cmlidXRlQ291bnQs
IGNvbnN0IEJhdGNoZWRDYWxsYmFjayogY2FsbGJhY2tzLCBzaXplX3QgY2FsbGJhY2tDb3VudCwg
djg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgZnVuY3Rpb25EZXNjcmlwdG9yLT5TZXRDbGFz
c05hbWUodjg6OlN0cmluZzo6TmV3U3ltYm9sKGludGVyZmFjZU5hbWUpKTsKICAgICB2ODo6TG9j
YWw8djg6Ok9iamVjdFRlbXBsYXRlPiBpbnN0YW5jZSA9IGZ1bmN0aW9uRGVzY3JpcHRvci0+SW5z
dGFuY2VUZW1wbGF0ZSgpOwpAQCAtNzksMTAgKzYzLDEwIEBAIHY4OjpMb2NhbDx2ODo6U2lnbmF0
dXJlPiBWOERPTUNvbmZpZ3VyYXRpb246OmNvbmZpZ3VyZVRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50
PHY4CiAgICAgaWYgKCFwYXJlbnRDbGFzcy5Jc0VtcHR5KCkpCiAgICAgICAgIGZ1bmN0aW9uRGVz
Y3JpcHRvci0+SW5oZXJpdChwYXJlbnRDbGFzcyk7CiAgICAgaWYgKGF0dHJpYnV0ZUNvdW50KQot
ICAgICAgICBiYXRjaENvbmZpZ3VyZUF0dHJpYnV0ZXMoaW5zdGFuY2UsIGZ1bmN0aW9uRGVzY3Jp
cHRvci0+UHJvdG90eXBlVGVtcGxhdGUoKSwgYXR0cmlidXRlcywgYXR0cmlidXRlQ291bnQpOwor
ICAgICAgICBiYXRjaENvbmZpZ3VyZUF0dHJpYnV0ZXMoaW5zdGFuY2UsIGZ1bmN0aW9uRGVzY3Jp
cHRvci0+UHJvdG90eXBlVGVtcGxhdGUoKSwgYXR0cmlidXRlcywgYXR0cmlidXRlQ291bnQsIGlz
b2xhdGUpOwogICAgIHY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBkZWZhdWx0U2lnbmF0dXJlID0g
djg6OlNpZ25hdHVyZTo6TmV3KGZ1bmN0aW9uRGVzY3JpcHRvcik7CiAgICAgaWYgKGNhbGxiYWNr
Q291bnQpCi0gICAgICAgIGJhdGNoQ29uZmlndXJlQ2FsbGJhY2tzKGZ1bmN0aW9uRGVzY3JpcHRv
ci0+UHJvdG90eXBlVGVtcGxhdGUoKSwgZGVmYXVsdFNpZ25hdHVyZSwgc3RhdGljX2Nhc3Q8djg6
OlByb3BlcnR5QXR0cmlidXRlPih2ODo6RG9udERlbGV0ZSksIGNhbGxiYWNrcywgY2FsbGJhY2tD
b3VudCk7CisgICAgICAgIGJhdGNoQ29uZmlndXJlQ2FsbGJhY2tzKGZ1bmN0aW9uRGVzY3JpcHRv
ci0+UHJvdG90eXBlVGVtcGxhdGUoKSwgZGVmYXVsdFNpZ25hdHVyZSwgc3RhdGljX2Nhc3Q8djg6
OlByb3BlcnR5QXR0cmlidXRlPih2ODo6RG9udERlbGV0ZSksIGNhbGxiYWNrcywgY2FsbGJhY2tD
b3VudCwgaXNvbGF0ZSk7CiAgICAgcmV0dXJuIGRlZmF1bHRTaWduYXR1cmU7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NQ29uZmlndXJhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0aW9uLmgKaW5kZXggNTIy
MjQzNmQ3Y2MzM2UyMWNkNjY5MWE0ZmUyYTIzNTg4MDc4OWQ4Ny4uMzE5MTE5Yzk3MzY3MTZmMTMy
OWNhMWZkNmYwZjUwM2ViZTllNTJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01Db25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01Db25maWd1cmF0aW9uLmgKQEAgLTUzLDE1ICs1MywxMCBAQCBwdWJsaWM6CiAgICAg
ICAgIGJvb2wgb25Qcm90b3R5cGU7CiAgICAgfTsKIAotICAgIHN0YXRpYyB2b2lkIGJhdGNoQ29u
ZmlndXJlQXR0cmlidXRlcyh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdFRl
bXBsYXRlPiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
QmF0Y2hlZEF0dHJpYnV0ZSosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBhdHRyaWJ1dGVDb3VudCk7CisgICAgc3RhdGljIHZvaWQgYmF0Y2hDb25maWd1
cmVBdHRyaWJ1dGVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiwgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0VGVtcGxhdGU+LCBjb25zdCBCYXRjaGVkQXR0cmlidXRlKiwgc2l6ZV90IGF0dHJp
YnV0ZUNvdW50LCB2ODo6SXNvbGF0ZSopOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgT2JqZWN0T3JU
ZW1wbGF0ZT4KLSAgICBzdGF0aWMgaW5saW5lIHZvaWQgY29uZmlndXJlQXR0cmlidXRlKHY4OjpI
YW5kbGU8T2JqZWN0T3JUZW1wbGF0ZT4gaW5zdGFuY2UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2ODo6SGFuZGxlPE9iamVjdE9yVGVtcGxhdGU+IHByb3RvdHlw
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJhdGNo
ZWRBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKKyAgICBzdGF0aWMgaW5saW5lIHZvaWQgY29uZmlndXJl
QXR0cmlidXRlKHY4OjpIYW5kbGU8T2JqZWN0T3JUZW1wbGF0ZT4gaW5zdGFuY2UsIHY4OjpIYW5k
bGU8T2JqZWN0T3JUZW1wbGF0ZT4gcHJvdG90eXBlLCBjb25zdCBCYXRjaGVkQXR0cmlidXRlJiBh
dHRyaWJ1dGUsIHY4OjpJc29sYXRlKikKICAgICB7CiAgICAgICAgIChhdHRyaWJ1dGUub25Qcm90
b3R5cGUgPyBwcm90b3R5cGUgOiBpbnN0YW5jZSktPlNldEFjY2Vzc29yKHY4OjpTdHJpbmc6Ok5l
d1N5bWJvbChhdHRyaWJ1dGUubmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZS5nZXR0ZXIsCkBA
IC03OSwxMCArNzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGludCB2YWx1ZTsKICAgICB9OwogCi0g
ICAgc3RhdGljIHZvaWQgYmF0Y2hDb25maWd1cmVDb25zdGFudHModjg6OkhhbmRsZTx2ODo6RnVu
Y3Rpb25UZW1wbGF0ZT4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEJhdGNoZWRDb25zdGFudCosCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGNvbnN0YW50Q291bnQpOworICAgIHN0YXRp
YyB2b2lkIGJhdGNoQ29uZmlndXJlQ29uc3RhbnRzKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVt
cGxhdGU+LCB2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4sIGNvbnN0IEJhdGNoZWRDb25z
dGFudCosIHNpemVfdCBjb25zdGFudENvdW50LCB2ODo6SXNvbGF0ZSopOwogCiAgICAgLy8gQmF0
Y2hlZENhbGxiYWNrIHRyYW5zbGF0ZXMgaW50byBjYWxscyB0byBTZXQoKSBvbiB0aGUgcHJvdG90
eXBlIE9iamVjdFRlbXBsYXRlLgogICAgIHN0cnVjdCBCYXRjaGVkQ2FsbGJhY2sgewpAQCAtOTAs
MjAgKzgyLDkgQEAgcHVibGljOgogICAgICAgICB2ODo6SW52b2NhdGlvbkNhbGxiYWNrIGNhbGxi
YWNrOwogICAgIH07CiAKLSAgICBzdGF0aWMgdm9pZCBiYXRjaENvbmZpZ3VyZUNhbGxiYWNrcyh2
ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4sIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdjg6OlByb3BlcnR5QXR0cmlidXRlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJhdGNoZWRDYWxsYmFjayos
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBjYWxsYmFj
a0NvdW50KTsKKyAgICBzdGF0aWMgdm9pZCBiYXRjaENvbmZpZ3VyZUNhbGxiYWNrcyh2ODo6SGFu
ZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4sIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4sIHY4OjpQ
cm9wZXJ0eUF0dHJpYnV0ZSwgY29uc3QgQmF0Y2hlZENhbGxiYWNrKiwgc2l6ZV90IGNhbGxiYWNr
Q291bnQsIHY4OjpJc29sYXRlKik7CiAKLSAgICBzdGF0aWMgdjg6OkxvY2FsPHY4OjpTaWduYXR1
cmU+IGNvbmZpZ3VyZVRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRl
PiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT4gcGFyZW50Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgZmllbGRDb3VudCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUq
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZV90IGF0dHJpYnV0ZUNvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmF0Y2hlZENhbGxiYWNrKiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBjYWxsYmFj
a0NvdW50KTsKKyAgICBzdGF0aWMgdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+IGNvbmZpZ3VyZVRl
bXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiwgY29uc3QgY2hhciog
aW50ZXJmYWNlTmFtZSwgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IHBhcmVu
dENsYXNzLCBzaXplX3QgZmllbGRDb3VudCwgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSosIHNpemVf
dCBhdHRyaWJ1dGVDb3VudCwgY29uc3QgQmF0Y2hlZENhbGxiYWNrKiwgc2l6ZV90IGNhbGxiYWNr
Q291bnQsIHY4OjpJc29sYXRlKik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCmluZGV4IGE5
MjY1NDY3NDhhYzFlYTk1MmFjOTM4ZDg0NzQ1Yzg3YThjYmViYzAuLmNhNjAwOTk5MzIxZjM4ZDFj
YmY1NjUyNjc1YzBlN2NlOTk5OWNiOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCkBAIC0zMTUsNyArMzE1LDcgQEAgYm9vbCBWOERPTVdp
bmRvd1NoZWxsOjppbnN0YWxsRE9NV2luZG93KCkKICAgICBpZiAod2luZG93V3JhcHBlci5Jc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFY4RE9NV2luZG93OjppbnN0YWxs
UGVyQ29udGV4dFByb3BlcnRpZXMod2luZG93V3JhcHBlciwgd2luZG93KTsKKyAgICBWOERPTVdp
bmRvdzo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHdpbmRvd1dyYXBwZXIsIHdpbmRvdywg
bV9pc29sYXRlKTsKIAogICAgIFY4RE9NV3JhcHBlcjo6c2V0TmF0aXZlSW5mbyh2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+OjpDYXN0KHdpbmRvd1dyYXBwZXItPkdldFByb3RvdHlwZSgpKSwgJlY4RE9N
V2luZG93OjppbmZvLCB3aW5kb3cpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>