<?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>197581</bug_id>
          
          <creation_ts>2019-05-03 15:12:33 -0700</creation_ts>
          <short_desc>Adopt AVStreamDataParser.audiovisualMIMETypes</short_desc>
          <delta_ts>2019-05-06 15:22:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1533010</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-03 15:12:33 -0700</bug_when>
    <thetext>Adopt AVStreamDataParser.audiovisualMIMETypes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533011</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-03 15:12:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/50458981&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533021</commentid>
    <comment_count>2</comment_count>
      <attachid>369005</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-03 15:31:03 -0700</bug_when>
    <thetext>Created attachment 369005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533045</commentid>
    <comment_count>3</comment_count>
      <attachid>369005</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-05-03 16:11:43 -0700</bug_when>
    <thetext>Comment on attachment 369005
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm:77
&gt; +    // AVStreamDataParser does not have an -isPlayableExtendedMIMEType: method, so just replace the container type
&gt; +    // with a valid one from AVAssetMIMETypeCache and ask that cache if it can decode this type:

You should add a FIXME to remove this once they implement -isPlayableExtendedMIMEType

&gt; Source/WebCore/platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm:81
&gt; +    ContentType originalType { mimeType };

Can&apos;t you just reuse &quot;type&quot; defined above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533425</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-06 10:34:13 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #3)
&gt; Comment on attachment 369005 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=369005&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm:77
&gt; &gt; +    // AVStreamDataParser does not have an -isPlayableExtendedMIMEType: method, so just replace the container type
&gt; &gt; +    // with a valid one from AVAssetMIMETypeCache and ask that cache if it can decode this type:
&gt; 
&gt; You should add a FIXME to remove this once they implement
&gt; -isPlayableExtendedMIMEType

Will do.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm:81
&gt; &gt; +    ContentType originalType { mimeType };
&gt; 
&gt; Can&apos;t you just reuse &quot;type&quot; defined above?

Yep!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533442</commentid>
    <comment_count>5</comment_count>
      <attachid>369142</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-06 11:08:48 -0700</bug_when>
    <thetext>Created attachment 369142
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533483</commentid>
    <comment_count>6</comment_count>
      <attachid>369157</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-06 12:36:24 -0700</bug_when>
    <thetext>Created attachment 369157
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533594</commentid>
    <comment_count>7</comment_count>
      <attachid>369157</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-06 15:22:32 -0700</bug_when>
    <thetext>Comment on attachment 369157
Patch for landing

Clearing flags on attachment: 369157

Committed r244980: &lt;https://trac.webkit.org/changeset/244980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533595</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-06 15:22:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369005</attachid>
            <date>2019-05-03 15:31:03 -0700</date>
            <delta_ts>2019-05-06 11:08:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Adopt-AVStreamDataParser.audiovisualMIMETypes.patch</filename>
            <type>text/plain</type>
            <size>42312</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSA3MTU4NzA4ZjlkNTc1MDVkYjkzMDI1ZjE0ZDUxOTQwODY3YWJkMzExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMyBNYXkgMjAxOSAxNToxNToyMiAtMDcwMApTdWJqZWN0OiBBZG9wdCBBVlN0cmVhbURh
dGFQYXJzZXIuYXVkaW92aXN1YWxNSU1FVHlwZXMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTc1ODEgPHJkYXI6Ly9wcm9ibGVtLzUwNDU4OTgxPgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKCkFkZCBhIG5ldyBzaW5nbGV0b24g
Y2xhc3MsIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUsIGFuZCByZW5hbWUgQVZGb3Vu
ZGF0aW9uTUlNRVR5cGVDYWNoZSB0byB0aGUgbW9yZSBwcmVjaXNlCkFWQXNzZXRNSU1FVHlwZUNh
Y2hlLiAgVXBkYXRlIGFsbCB0aGUgb2xkIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUgd2l0aCB0
aGUgbmV3IG5hbWUuCgoqIFNvdXJjZXNDb2NvYS50eHQ6CiogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLmguCihX
ZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0Q2FjaGVNSU1FVHlwZXNDYWxsYmFjayk6
CiogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2Fj
aGUubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLm1tLgooV2ViQ29yZTo6QVZB
c3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbik6CihXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVD
YWNoZTo6c2V0U3VwcG9ydGVkVHlwZXMpOgooV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6
OnR5cGVzKToKKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRlbnRU
eXBlKToKKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVUeXBlKToKKFdl
YkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjppc0F2YWlsYWJsZSBjb25zdCk6CihXZWJDb3Jl
OjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6bG9hZE1JTUVUeXBlcyk6CiogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oOiBB
ZGRlZC4KKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQ
YXJzZXJNSU1FVHlwZUNhY2hlLm1tOiBBZGRlZC4KKFdlYkNvcmU6OkFWU3RyZWFtRGF0YVBhcnNl
ck1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbik6CihXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJzZXJN
SU1FVHlwZUNhY2hlOjp0eXBlcyk6CihXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlw
ZUNhY2hlOjpzdXBwb3J0c0NvbnRlbnRUeXBlKToKKFdlYkNvcmU6OkFWU3RyZWFtRGF0YVBhcnNl
ck1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGUpOgooV2ViQ29yZTo6QVZTdHJlYW1EYXRhUGFy
c2VyTUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3QpOgooV2ViQ29yZTo6QVZTdHJlYW1E
YXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6bG9hZE1JTUVUeXBlcyk6CiogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbToKKFdlYkNvcmU6Oklt
YWdlRGVjb2RlckFWRk9iakM6OmNyZWF0ZSk6CihXZWJDb3JlOjpJbWFnZURlY29kZXJBVkZPYmpD
OjpzdXBwb3J0c01lZGlhVHlwZSk6CihXZWJDb3JlOjpJbWFnZURlY29kZXJBVkZPYmpDOjpzdXBw
b3J0c0NvbnRlbnRUeXBlKToKKFdlYkNvcmU6OkltYWdlRGVjb2RlckFWRk9iakM6OmNhbkRlY29k
ZVR5cGUpOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CihXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKToKKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN1cHBvcnRlZFR5cGVzKToKKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZSk6CihXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c0tleVN5c3Rl
bSk6CiogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgooV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKToKKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMpOgooV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUpOgoK
U291cmNlL1dlYktpdDoKCiogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CihX
ZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgooV2ViS2l0
OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSk6CihXZWJLaXQ6OldlYlByb2Nlc3M6OnNl
dE1lZGlhTUlNRVR5cGVzKToKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgfCAgNDYgKysrKysrKwogU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dCAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogfCAgMjIgKy0tCiAuLi5NSU1FVHlwZUNhY2hlLmggPT4gQVZBc3NldE1J
TUVUeXBlQ2FjaGUuaH0gfCAgIDggKy0KIC4uLk1FVHlwZUNhY2hlLm1tID0+IEFWQXNzZXRNSU1F
VHlwZUNhY2hlLm1tfSB8ICAyMSArKy0KIC4uLi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVU
eXBlQ2FjaGUuaCAgICB8ICA2MCArKysrKysrKysKIC4uLi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNl
ck1JTUVUeXBlQ2FjaGUubW0gICB8IDEyNyArKysrKysrKysrKysrKysrKysKIC4uLi9hdmZvdW5k
YXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpDLm1tICB8ICAxMCArLQogLi4uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gICAgIHwgIDEyICstCiAuLi4vTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tICAgfCAgMzQgKysrKy0KIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArKwogLi4uL1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tICAgICAgIHwgICA4ICstCiAxMiBmaWxlcyBjaGFu
Z2VkLCAzMTggaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pCiByZW5hbWUgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMve0FWRm91bmRhdGlvbk1J
TUVUeXBlQ2FjaGUuaCA9PiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5ofSAoOTElKQogcmVuYW1lIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL3tBVkZvdW5k
YXRpb25NSU1FVHlwZUNhY2hlLm1tID0+IEFWQXNzZXRNSU1FVHlwZUNhY2hlLm1tfSAoODQlKQog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0KCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE2
YmQ5ODA2OGYuLjcyZTdiYTQ4ZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTkt
MDUtMDMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQg
QVZTdHJlYW1EYXRhUGFyc2VyLmF1ZGlvdmlzdWFsTUlNRVR5cGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc1ODEKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzUwNDU4OTgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIG5ldyBzaW5nbGV0b24gY2xhc3MsIEFWU3RyZWFtRGF0YVBhcnNlck1J
TUVUeXBlQ2FjaGUsIGFuZCByZW5hbWUgQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZSB0byB0aGUg
bW9yZSBwcmVjaXNlCisgICAgICAgIEFWQXNzZXRNSU1FVHlwZUNhY2hlLiAgVXBkYXRlIGFsbCB0
aGUgb2xkIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUgd2l0aCB0aGUgbmV3IG5hbWUuCisKKyAg
ICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZGb3VuZGF0aW9uTUlNRVR5cGVD
YWNoZS5oLgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldENhY2hl
TUlNRVR5cGVzQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZGb3VuZGF0aW9uTUlN
RVR5cGVDYWNoZS5tbS4KKyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpz
aW5nbGV0b24pOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldFN1
cHBvcnRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjp0
eXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c3VwcG9ydHND
b250ZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6Y2Fu
RGVjb2RlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aXNB
dmFpbGFibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6
OmxvYWRNSU1FVHlwZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2Vy
TUlNRVR5cGVDYWNoZS5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBVlN0cmVhbURhdGFQ
YXJzZXJNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViQ29yZTo6QVZTdHJl
YW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6dHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6QVZT
dHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6c3VwcG9ydHNDb250ZW50VHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6
OmlzQXZhaWxhYmxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFWU3RyZWFtRGF0YVBhcnNl
ck1JTUVUeXBlQ2FjaGU6OmxvYWRNSU1FVHlwZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZURlY29kZXJBVkZPYmpDOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VEZWNvZGVyQVZGT2JqQzo6c3VwcG9ydHNNZWRpYVR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VEZWNvZGVyQVZGT2JqQzo6c3VwcG9ydHNDb250ZW50VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZURlY29kZXJBVkZPYmpDOjpjYW5EZWNvZGVUeXBlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBw
b3J0c1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6c3VwcG9ydHNLZXlTeXN0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmdldFN1cHBvcnRlZFR5cGVzKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBl
KToKKwogMjAxOS0wNS0wMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBIaWRlIE1lZGlhQ2FwYWJpbGl0aWVzLmVuY29kaW5nSW5mbygpIHdoZW4gdGhlIHBsYXRm
b3JtIGRvZXMgbm90IHN1cHBvcnQgaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAzZTBl
YzRjMWRjNS4uYzA4MTE5OGExNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjMxLDgg
KzIzMSw5IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24uY3BwIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIEBuby11bmlm
eQogCitwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVD
YWNoZS5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FW
QXNzZXRUcmFja1V0aWxpdGllcy5tbSBAbm8tdW5pZnkKLXBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUubW0gQG5vLXVuaWZ5CitwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlw
ZUNhY2hlLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3Bw
IEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lv
bkFWQ29udGVudEtleVNlc3Npb24ubW0gQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWMxODg4NWU4NTEuLjQ1OTlk
N2ZmMGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMDEsNyArMTAxLDcgQEAKIAkJMDcwRTA5MTkxODc1RUVGQzAwM0ExRDND
IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzBFMDkxODE4NzVFRDkzMDAzQTFEM0MgLyogUGxhdGZvcm1NZWRp
YVNlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwNzBFODFEMTFCRjI3NjU2MDAxRkRBNDggLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcw
RTgxRDAxQkYyNzY1NjAwMUZEQTQ4IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCAq
LzsgfTsKIAkJMDcwRjU0OTgxN0YxMkY2QjAwMTY5RTA0IC8qIE1lZGlhU3RyZWFtQ29uc3RyYWlu
dHNWYWxpZGF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzBGNTQ5NzE3RjEyRjZCMDAxNjlFMDQgLyogTWVkaWFTdHJlYW1Db25zdHJh
aW50c1ZhbGlkYXRpb25DbGllbnQuaCAqLzsgfTsKLQkJMDcxOTQyN0YxRDA4OEYyMTAwMkFBNTFE
IC8qIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0M4QUQxMTFEMDczRDYzMDA4N0M1Q0UgLyogQVZGb3Vu
ZGF0aW9uTUlNRVR5cGVDYWNoZS5tbSAqLzsgfTsKKwkJMDcxOTQyN0YxRDA4OEYyMTAwMkFBNTFE
IC8qIEFWQXNzZXRNSU1FVHlwZUNhY2hlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDdDOEFEMTExRDA3M0Q2MzAwODdDNUNFIC8qIEFWQXNzZXRNSU1F
VHlwZUNhY2hlLm1tICovOyB9OwogCQkwNzFBOUVDMjE2OEZCQzQzMDAyNjI5RjkgLyogVGV4dFRy
YWNrQ3VlR2VuZXJpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzFBOUVDMDE2OEZCNTZDMDAyNjI5RjkgLyogVGV4dFRyYWNrQ3VlR2VuZXJpYy5j
cHAgKi87IH07CiAJCTA3MUE5RUMzMTY4RkJDNTUwMDI2MjlGOSAvKiBUZXh0VHJhY2tDdWVHZW5l
cmljLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzFB
OUVDMTE2OEZCNTZDMDAyNjI5RjkgLyogVGV4dFRyYWNrQ3VlR2VuZXJpYy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3MUU0OTZFMUFENUFBMEQw
MDhBNTBCNCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcxRTQ5NkQxQUQ1QUEwRDAwOEE1MEI0IC8qIE1l
ZGlhUGxheWJhY2tUYXJnZXRNYWMubW0gKi87IH07CkBAIC0yMjcsNyArMjI3LDcgQEAKIAkJMDdF
RTc2RUMxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0VFNzZFQTFCRTk2REIw
MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0VFNzZFRjFCRUE2MTk4MDBGODkxMzMg
LyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3RUU3NkVEMUJFQTYxOTgwMEY4OTEzMyAvKiBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZU1hYy5oICovOyB9OwogCQkwN0YwNEE5NDIwMDZCMUUzMDBBRTJBMEEg
LyogQXBwbGljYXRpb25TdGF0ZUNoYW5nZUxpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0YwNEE5MjIwMDY4NEJDMDBBRTJBMEEgLyogQXBw
bGljYXRpb25TdGF0ZUNoYW5nZUxpc3RlbmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDdGNEU5MzMyMEIzNTg3RjAwMkUzODAzIC8qIEFWRm91
bmRhdGlvbk1JTUVUeXBlQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3QzhBRDEyMUQwNzNENjMwMDg3QzVDRSAvKiBBVkZvdW5kYXRpb25NSU1F
VHlwZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMDdGNEU5MzMyMEIzNTg3RjAwMkUzODAzIC8qIEFWQXNzZXRNSU1FVHlwZUNhY2hlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0M4QUQxMjFE
MDczRDYzMDA4N0M1Q0UgLyogQVZBc3NldE1JTUVUeXBlQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0Y4NzY4NDFBRDU4MEY5MDA5MDU4
NDkgLyogTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Rjg3NjgzMUFENEE5NDUwMDkwNTg0OSAvKiBNZWRp
YVBsYXliYWNrVGFyZ2V0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTA3Rjk0NDE2MTg2NEQwNDYwMDVEMzFDQiAvKiBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQUU4QzA4MTc0NkI5NTcwMDUzMkQ3OCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwN0ZFOTlERDE4ODA3QTdEMDAyNTY2NDggLyogTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdGRTk5REIxODgw
N0E3RDAwMjU2NjQ4IC8qIE1lZGlhRWxlbWVudFNlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzk5Nyw2ICszOTk3LDcgQEAKIAkJQ0Qw
NjNGODIxRTIzRkE4OTAwODEyQkUzIC8qIEluaXREYXRhUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QwNjNGODAxRTIzRkE4OTAwODEy
QkUzIC8qIEluaXREYXRhUmVnaXN0cnkuY3BwICovOyB9OwogCQlDRDA2M0Y4MzFFMjNGQTg5MDA4
MTJCRTMgLyogSW5pdERhdGFSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QwNjNGODExRTIzRkE4OTAwODEyQkUzIC8qIEluaXREYXRhUmVn
aXN0cnkuaCAqLzsgfTsKIAkJQ0QwRUVFMEUxNDc0M0YzOTAwM0VBRkEyIC8qIEF1ZGlvRGVzdGlu
YXRpb25JT1MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0QwRUVFMEIxNDc0M0UzNTAwM0VBRkEyIC8qIEF1ZGlvRGVzdGluYXRpb25JT1MuY3BwICov
OyB9OworCQlDRDExQjNFMTIyN0NFNkYzMDAyM0FGQzcgLyogQVZTdHJlYW1EYXRhUGFyc2VyTUlN
RVR5cGVDYWNoZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMTFCM0UwMjI3Q0FBQTkwMDIzQUZDNyAvKiBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlw
ZUNhY2hlLm1tICovOyB9OwogCQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1
bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRv
dy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
MTdBNDVEMjEzNzQwODEwMDc5RUM3QiAvKiBVbmlmaWVkU291cmNlNjItbW0ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE3QTQ1OTIxMzc0MDE2MDA3
OUVDN0IgLyogVW5pZmllZFNvdXJjZTYyLW1tLm1tICovOyB9OwogCQlDRDE5QTI2ODFBMTNFNzAw
MDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjY3MUExM0U3MDAwMDhENjUwRSAvKiBE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC01NDkzLDggKzU0OTQsOCBAQAogCQkwN0MxQzBFMDFCRkI2MDAx
MDBCRDIyNTYgLyogTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0MxQzBFMTFCRkI2MDAxMDBCRDIyNTYgLyog
TWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0MxQzBFNDFCRkI2MEVEMDBCRDIyNTYgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZVN1cHBvcnRlZENvbnN0cmFpbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkwN0M4QUQxMTFEMDczRDYzMDA4N0M1Q0UgLyogQVZGb3VuZGF0aW9u
TUlNRVR5cGVDYWNoZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTA3QzhBRDEyMUQwNzNENjMwMDg3QzVDRSAvKiBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFWRm91bmRhdGlvbk1JTUVUeXBl
Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdDOEFEMTExRDA3M0Q2MzAw
ODdDNUNFIC8qIEFWQXNzZXRNSU1FVHlwZUNhY2hlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gQVZBc3NldE1JTUVUeXBlQ2FjaGUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTA3QzhBRDEyMUQwNzNENjMwMDg3QzVDRSAvKiBBVkFzc2V0TUlNRVR5
cGVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBVkFzc2V0TUlNRVR5
cGVDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0NFNzdENDE2NzEyQTZB
MDBDNTVBNDcgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RDYwOTI0MjE0QzVCRkIwMEU3Mzk2QyAvKiBXaW5k
b3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwN0Q2MDkyNjIxNEM1QkZDMDBFNzM5NkMgLyogV2luZG93RGlz
cGxheUNhcHR1cmVTb3VyY2VNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEzNDI5LDYgKzEzNDMwLDggQEAKIAkJQ0QwQzhCNTgyMTQxQzhDQTAwNjJGNTlEIC8q
IE1lZGlhQ2FwYWJpbGl0aWVzSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNhcGFiaWxpdGll
c0luZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwRUVFMEExNDc0M0UzNDAw
M0VBRkEyIC8qIEF1ZGlvRGVzdGluYXRpb25JT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXVkaW9EZXN0aW5hdGlvbklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDBFRUUwQjE0NzQzRTM1MDAzRUFGQTIgLyogQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb0Rlc3RpbmF0aW9uSU9T
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxMUIzREYyMjdDQUFBOTAwMjNB
RkM3IC8qIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDExQjNFMDIyN0NBQUE5MDAyM0FGQzcgLyogQVZTdHJlYW1EYXRhUGFyc2VyTUlN
RVR5cGVDYWNoZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWU3RyZWFtRGF0YVBhcnNlck1J
TUVUeXBlQ2FjaGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVBMTRG
MzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1
bGxTY3JlZW5XaW5kb3cubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0QxN0E0NTkyMTM3NDAxNjAwNzlFQzdCIC8qIFVuaWZpZWRTb3VyY2U2Mi1tbS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9ICJVbmlmaWVkU291cmNlNjItbW0u
bW0iOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYkNvcmUvdW5pZmllZC1zb3VyY2VzL1VuaWZp
ZWRTb3VyY2U2Mi1tbS5tbSI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBA
IC0yNTkyMiw4ICsyNTkyNSwxMCBAQAogCQkJCUNENTRBNzYxMTgwRjlGNzAwMEIwNzZDOSAvKiBB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovLAogCQkJCUNERUNBODk5MUVE
RjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCAqLywKIAkJCQlDREVDQTg5
ODFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tICovLAotCQkJCTA3
QzhBRDEyMUQwNzNENjMwMDg3QzVDRSAvKiBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLmggKi8s
Ci0JCQkJMDdDOEFEMTExRDA3M0Q2MzAwODdDNUNFIC8qIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2Fj
aGUubW0gKi8sCisJCQkJMDdDOEFEMTIxRDA3M0Q2MzAwODdDNUNFIC8qIEFWQXNzZXRNSU1FVHlw
ZUNhY2hlLmggKi8sCisJCQkJMDdDOEFEMTExRDA3M0Q2MzAwODdDNUNFIC8qIEFWQXNzZXRNSU1F
VHlwZUNhY2hlLm1tICovLAorCQkJCUNEMTFCM0RGMjI3Q0FBQTkwMDIzQUZDNyAvKiBBVlN0cmVh
bURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLmggKi8sCisJCQkJQ0QxMUIzRTAyMjdDQUFBOTAwMjNB
RkM3IC8qIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0gKi8sCiAJCQkJQ0Q3OEEy
RUUxRjc1NjQ4NjAwREUzNzFCIC8qIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpD
LmggKi8sCiAJCQkJQ0Q3OEEyRUMxRjc1NjQ4NjAwREUzNzFCIC8qIENETUluc3RhbmNlRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDLm1tICovLAogCQkJCUNERTU5NTk0MUJGMTY2RDEwMEExQ0JFOCAv
KiBDRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5oICovLApAQCAtMjgyMzUsNyArMjgyNDAs
NyBAQAogCQkJCUNEQzY3NTI3MUVBRUE5RDQwMDcyN0M4NCAvKiBBVkF1ZGlvU2Vzc2lvbkNhcHR1
cmVEZXZpY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzY3NTIzMUVBRUE5QjcwMDcyN0M4NCAv
KiBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwNzAzNjNFMjE4MUExQ0RDMDBDMDc0QTUgLyogQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMDdGNEU5MzMyMEIzNTg3RjAwMkUzODAzIC8qIEFWRm91bmRhdGlv
bk1JTUVUeXBlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3RjRFOTMzMjBCMzU4N0YwMDJF
MzgwMyAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzMzZG
NjIxN0Y5RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3MDM2M0U2MTgxQTFDREMwMEMwNzRBNSAvKiBBVlZpZGVvQ2FwdHVyZVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjlBRTIxMkQyMUFCOUVFQjAwODY5MjgzIC8qIEFY
SXNvbGF0ZWRUcmVlLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNTc1LDcgKzMyNTgwLDcgQEAKIAkJ
CQlDREVDQTg5QTFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RDNjc1MjIxRUFFQTlCNzAwNzI3Qzg0IC8qIEFWQXVkaW9TZXNz
aW9uQ2FwdHVyZURldmljZU1hbmFnZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzAzNjNFMzE4
MUExQ0RDMDBDMDc0QTUgLyogQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbSBpbiBTb3VyY2VzICov
LAotCQkJCTA3MTk0MjdGMUQwODhGMjEwMDJBQTUxRCAvKiBBVkZvdW5kYXRpb25NSU1FVHlwZUNh
Y2hlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMDcxOTQyN0YxRDA4OEYyMTAwMkFBNTFEIC8qIEFW
QXNzZXRNSU1FVHlwZUNhY2hlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzMzZGNjExN0Y5RjY0
NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0gaW4gU291cmNlcyAqLywK
IAkJCQkwNzAzNjNFNzE4MUExQ0RDMDBDMDc0QTUgLyogQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3QTQ1MDMyRjE4REI3MTcyMDAzNzdCMzQgLyogQnVmZmVyZWRM
aW5lUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzMwMTgsNiArMzMwMjMsNyBAQAogCQkJ
CURFQ0E4MDM5MUY5RkVENkEwMEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMjQ4LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCURFQ0E4MDNBMUY5RkVENkEwMEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMjQ5
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E4MDNCMUY5RkVENkEwMEUzQjY2MSAvKiBVbmlm
aWVkU291cmNlMjUwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEMTFCM0UxMjI3Q0U2RjMwMDIz
QUZDNyAvKiBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJREVDQTgwM0MxRjlGRUQ2QTAwRTNCNjYxIC8qIFVuaWZpZWRTb3VyY2UyNTEuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJREVDQTgwM0QxRjlGRUQ2QTAwRTNCNjYxIC8qIFVuaWZpZWRTb3Vy
Y2UyNTIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJREVDQTgwM0UxRjlGRUQ2QTAwRTNCNjYxIC8q
IFVuaWZpZWRTb3VyY2UyNTMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkZvdW5kYXRpb25N
SU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCnNpbWlsYXJpdHkgaW5kZXggOTElCnJl
bmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0FWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUuaApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUu
aAppbmRleCA1OGY1MmUyYzYwNC4uZDZkOTJhY2IwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWRm91bmRhdGlvbk1JTUVU
eXBlQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCkBAIC0zNSw5ICszNSw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29udGVudFR5cGU7CiAKLWNsYXNzIEFWRm91bmRhdGlv
bk1JTUVUeXBlQ2FjaGUgeworY2xhc3MgQVZBc3NldE1JTUVUeXBlQ2FjaGUgewogcHVibGljOgot
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlJiBzaW5n
bGV0b24oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQVZBc3NldE1JTUVUeXBlQ2FjaGUm
IHNpbmdsZXRvbigpOwogCiAgICAgYm9vbCBzdXBwb3J0c0NvbnRlbnRUeXBlKGNvbnN0IENvbnRl
bnRUeXBlJik7CiAgICAgYm9vbCBjYW5EZWNvZGVUeXBlKGNvbnN0IFN0cmluZyYpOwpAQCAtNTIs
OCArNTIsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTdXBwb3J0ZWRU
eXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogCiBwcml2YXRlOgotICAgIGZyaWVuZCBOZXZl
ckRlc3Ryb3llZDxBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlPjsKLSAgICBBVkZvdW5kYXRpb25N
SU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0OworICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxBVkFz
c2V0TUlNRVR5cGVDYWNoZT47CisgICAgQVZBc3NldE1JTUVUeXBlQ2FjaGUoKSA9IGRlZmF1bHQ7
CiAKICAgICB2b2lkIGxvYWRNSU1FVHlwZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZGb3VuZGF0aW9uTUlNRVR5
cGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tCnNpbWlsYXJpdHkgaW5kZXggODQlCnJlbmFt
ZSBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0FWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUubW0KcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1t
CmluZGV4IDVhN2JmNjkxZGRhLi42NDY4YjZiN2QwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZGb3VuZGF0aW9uTUlNRVR5
cGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQpAQCAtMjQsMTUgKzI0LDE0IEBACiAg
Ki8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJBVkZvdW5kYXRpb25NSU1FVHlwZUNh
Y2hlLmgiCisjaW1wb3J0ICJBVkFzc2V0TUlNRVR5cGVDYWNoZS5oIgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAKICNpbXBvcnQgIkNvbnRlbnRUeXBlLmgiCi0jaW1wb3J0IDx3dGYvSGFzaFNldC5o
PgotCiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgorI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KIAog
I2lmICFQTEFURk9STShJT1NNQUMpCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMX1BSRUZM
SUdIVChBVkZvdW5kYXRpb24pCkBAIC00MCwxMyArMzksMTMgQEAgU09GVF9MSU5LX0ZSQU1FV09S
S19PUFRJT05BTF9QUkVGTElHSFQoQVZGb3VuZGF0aW9uKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLUFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUmIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU6
OnNpbmdsZXRvbigpCitBVkFzc2V0TUlNRVR5cGVDYWNoZSYgQVZBc3NldE1JTUVUeXBlQ2FjaGU6
OnNpbmdsZXRvbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEFWRm91bmRhdGlvbk1J
TUVUeXBlQ2FjaGU+IGNhY2hlOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBVkFzc2V0TUlN
RVR5cGVDYWNoZT4gY2FjaGU7CiAgICAgcmV0dXJuIGNhY2hlLmdldCgpOwogfQogCi12b2lkIEFW
Rm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU6OnNldFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiB0eXBlcykKK3ZvaWQgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldFN1cHBvcnRlZFR5
cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0eXBlcykKIHsKICAgICBpZiAobV9jYWNoZSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNTYsNyArNTUsNyBAQCB2b2lkIEFWRm91bmRhdGlvbk1JTUVUeXBl
Q2FjaGU6OnNldFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0eXBlcykKICAg
ICAgICAgbV9jYWNoZS0+YWRkKHR5cGUpOwogfQogCi1jb25zdCBIYXNoU2V0PFN0cmluZywgQVND
SUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6dHlwZXMo
KQorY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIEFWQXNz
ZXRNSU1FVHlwZUNhY2hlOjp0eXBlcygpCiB7CiAgICAgaWYgKCFtX2NhY2hlKQogICAgICAgICBs
b2FkTUlNRVR5cGVzKCk7CkBAIC02NCw3ICs2Myw3IEBAIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBB
U0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlOjp0eXBl
CiAgICAgcmV0dXJuICptX2NhY2hlOwogfQogCi1ib29sIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2Fj
aGU6OnN1cHBvcnRzQ29udGVudFR5cGUoY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlKQor
Ym9vbCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c3VwcG9ydHNDb250ZW50VHlwZShjb25zdCBDb250
ZW50VHlwZSYgY29udGVudFR5cGUpCiB7CiAgICAgaWYgKGNvbnRlbnRUeXBlLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNzIsNyArNzEsNyBAQCBib29sIEFWRm91bmRhdGlv
bk1JTUVUeXBlQ2FjaGU6OnN1cHBvcnRzQ29udGVudFR5cGUoY29uc3QgQ29udGVudFR5cGUmIGNv
bnRlbnRUeQogICAgIHJldHVybiB0eXBlcygpLmNvbnRhaW5zKGNvbnRlbnRUeXBlLmNvbnRhaW5l
clR5cGUoKSk7CiB9CiAKLWJvb2wgQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2Rl
VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQorYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6
Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewogICAgIGlmIChtaW1lVHlw
ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTg3LDcgKzg2LDcgQEAgYm9v
bCBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVUeXBlKGNvbnN0IFN0cmluZyYg
bWltZVR5cGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEFWRm91bmRhdGlvbk1JTUVU
eXBlQ2FjaGU6OmlzQXZhaWxhYmxlKCkgY29uc3QKK2Jvb2wgQVZBc3NldE1JTUVUeXBlQ2FjaGU6
OmlzQXZhaWxhYmxlKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5E
QVRJT04pCiAjaWYgUExBVEZPUk0oSU9TTUFDKQpAQCAtMTAyLDcgKzEwMSw3IEBAIGJvb2wgQVZG
b3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUoKSBjb25zdAogI2VuZGlmCiB9CiAK
LXZvaWQgQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6bG9hZE1JTUVUeXBlcygpCit2b2lkIEFW
QXNzZXRNSU1FVHlwZUNhY2hlOjpsb2FkTUlNRVR5cGVzKCkKIHsKICAgICBtX2NhY2hlID0gSGFz
aFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4oKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJl
YW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wYWJjYzNkMjFhYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaApAQCAtMCwwICsxLDYw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkKKwor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgQ29udGVudFR5cGU7CisKK2NsYXNzIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUg
eworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBVlN0cmVhbURhdGFQYXJzZXJN
SU1FVHlwZUNhY2hlJiBzaW5nbGV0b24oKTsKKworICAgIGJvb2wgc3VwcG9ydHNDb250ZW50VHlw
ZShjb25zdCBDb250ZW50VHlwZSYpOworICAgIGJvb2wgY2FuRGVjb2RlVHlwZShjb25zdCBTdHJp
bmcmKTsKKworICAgIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhh
c2g+JiB0eXBlcygpOworICAgIGJvb2wgaXNFbXB0eSgpOworICAgIGJvb2wgaXNBdmFpbGFibGUo
KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8QVZTdHJlYW1E
YXRhUGFyc2VyTUlNRVR5cGVDYWNoZT47CisgICAgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVD
YWNoZSgpID0gZGVmYXVsdDsKKworICAgIHZvaWQgbG9hZE1JTUVUeXBlcygpOworCisgICAgT3B0
aW9uYWw8SGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+IG1fY2FjaGU7
Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNo
ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjljM2JkZGVjZjkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRh
UGFyc2VyTUlNRVR5cGVDYWNoZS5tbQpAQCAtMCwwICsxLDEyNyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNo
ZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNpbXBvcnQgIkFWQXNzZXRNSU1FVHlwZUNh
Y2hlLmgiCisjaW1wb3J0ICJDb250ZW50VHlwZS5oIgorI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4K
KyNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CisKKyNpZiAhUExBVEZPUk0oSU9TTUFDKQorU09GVF9M
SU5LX0ZSQU1FV09SS19PUFRJT05BTF9QUkVGTElHSFQoQVZGb3VuZGF0aW9uKQorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZSYg
QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZT4gY2FjaGU7
CisgICAgcmV0dXJuIGNhY2hlLmdldCgpOworfQorCitjb25zdCBIYXNoU2V0PFN0cmluZywgQVND
SUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6
dHlwZXMoKQoreworICAgIGlmICghbV9jYWNoZSkKKyAgICAgICAgbG9hZE1JTUVUeXBlcygpOwor
CisgICAgcmV0dXJuICptX2NhY2hlOworfQorCitib29sIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVU
eXBlQ2FjaGU6OnN1cHBvcnRzQ29udGVudFR5cGUoY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRU
eXBlKQoreworICAgIGlmIChjb250ZW50VHlwZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiB0eXBlcygpLmNvbnRhaW5zKGNvbnRlbnRUeXBlLmNvbnRhaW5l
clR5cGUoKSk7Cit9CisKK2Jvb2wgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6Y2Fu
RGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQoreworICAgIGlmIChtaW1lVHlwZS5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENvbnRlbnRUeXBlIHR5cGUg
eyBtaW1lVHlwZSB9OworCisgICAgaWYgKCFpc0F2YWlsYWJsZSgpIHx8ICF0eXBlcygpLmNvbnRh
aW5zKHR5cGUuY29udGFpbmVyVHlwZSgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQorICAgIC8vIEFWU3RyZWFtRGF0YVBh
cnNlciBkb2VzIG5vdCBoYXZlIGFuIC1pc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTogbWV0aG9k
LCBzbyBqdXN0IHJlcGxhY2UgdGhlIGNvbnRhaW5lciB0eXBlCisgICAgLy8gd2l0aCBhIHZhbGlk
IG9uZSBmcm9tIEFWQXNzZXRNSU1FVHlwZUNhY2hlIGFuZCBhc2sgdGhhdCBjYWNoZSBpZiBpdCBj
YW4gZGVjb2RlIHRoaXMgdHlwZToKKyAgICBhdXRvJiBhc3NldENhY2hlID0gQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OnNpbmdsZXRvbigpOworICAgIGlmICghYXNzZXRDYWNoZS5pc0F2YWlsYWJsZSgp
IHx8IGFzc2V0Q2FjaGUudHlwZXMoKS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBDb250ZW50VHlwZSBvcmlnaW5hbFR5cGUgeyBtaW1lVHlwZSB9OworICAgIFN0cmluZyBy
ZXBsYWNlbWVudFR5cGUgeyBtaW1lVHlwZSB9OworICAgIHJlcGxhY2VtZW50VHlwZS5yZXBsYWNl
KG9yaWdpbmFsVHlwZS5jb250YWluZXJUeXBlKCksICphc3NldENhY2hlLnR5cGVzKCkuYmVnaW4o
KSk7CisgICAgcmV0dXJuIGFzc2V0Q2FjaGUuY2FuRGVjb2RlVHlwZShyZXBsYWNlbWVudFR5cGUp
OworI2VuZGlmCisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQVZTdHJlYW1EYXRhUGFy
c2VyTUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUoKSBjb25zdAoreworI2lmIEVOQUJMRShWSURF
TykgJiYgVVNFKEFWRk9VTkRBVElPTikKKyNpZiBQTEFURk9STShJT1NNQUMpCisgICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIGJlIHVzaW5nIEFWRm91bmRhdGlvbkxpYnJhcnlJc0F2YWlsYWJsZSgp
IGluc3RlYWQsIGJ1dCBkb2luZyBzbyBjYXVzZXMgc29mdC1saW5raW5nCisgICAgLy8gdG8gc3Vi
c2VxdWVudGx5IGZhaWwgb24gY2VydGFpbiBzeW1ib2xzLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzQy
MjI0NzgwPiBmb3IgbW9yZSBkZXRhaWxzLgorICAgIGlmICghUEFMOjpBVkZvdW5kYXRpb25MaWJy
YXJ5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgaWYgKCFBVkZvdW5kYXRp
b25MaWJyYXJ5SXNBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisK
KyAgICByZXR1cm4gW1BBTDo6Z2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKGF1ZGlvdmlzdWFsTUlNRVR5cGVzKV07CisjZWxzZQorICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgorfQorCit2b2lkIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBl
Q2FjaGU6OmxvYWRNSU1FVHlwZXMoKQoreworICAgIG1fY2FjaGUgPSBIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPigpOworCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0Uo
QVZGT1VOREFUSU9OKQorICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBz
dGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW3RoaXNdIHsKKyAgICAgICAgaWYgKCFpc0F2YWlsYWJs
ZSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAoTlNTdHJpbmcqIHR5cGUg
aW4gW1BBTDo6Z2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKSBhdWRpb3Zpc3VhbE1JTUVUeXBl
c10pCisgICAgICAgICAgICBtX2NhY2hlLT5hZGQodHlwZSk7CisgICAgfSk7CisjZW5kaWYKK30K
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZP
YmpDLm1tCmluZGV4IGQzZjU0N2Y5OWM0Li41ZmJmNTA1YWY3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW1hZ2VEZWNvZGVy
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpDLm1tCkBAIC0yOCw3ICsyOCw3IEBACiAKICNp
ZiBIQVZFKEFWQVNTRVRSRUFERVIpCiAKLSNpbXBvcnQgIkFWRm91bmRhdGlvbk1JTUVUeXBlQ2Fj
aGUuaCIKKyNpbXBvcnQgIkFWQXNzZXRNSU1FVHlwZUNhY2hlLmgiCiAjaW1wb3J0ICJBZmZpbmVU
cmFuc2Zvcm0uaCIKICNpbXBvcnQgIkNvbnRlbnRUeXBlLmgiCiAjaW1wb3J0ICJGbG9hdFF1YWQu
aCIKQEAgLTMzNyw3ICszMzcsNyBAQCBJbWFnZURlY29kZXJBVkZPYmpDU2FtcGxlKiB0b1NhbXBs
ZShJdGVyYXRvciBpdGVyKQogUmVmUHRyPEltYWdlRGVjb2RlckFWRk9iakM+IEltYWdlRGVjb2Rl
ckFWRk9iakM6OmNyZWF0ZShTaGFyZWRCdWZmZXImIGRhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIEFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBn
YW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKIHsKICAgICAvLyBBVkZvdW5kYXRpb24gbWF5IG5v
dCBiZSBhdmFpbGFibGUgYXQgcnVudGltZS4KLSAgICBpZiAoIUFWRm91bmRhdGlvbk1JTUVUeXBl
Q2FjaGU6OnNpbmdsZXRvbigpLmlzQXZhaWxhYmxlKCkpCisgICAgaWYgKCFBVkFzc2V0TUlNRVR5
cGVDYWNoZTo6c2luZ2xldG9uKCkuaXNBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBpZiAoIWNhbkxvYWRfVmlkZW9Ub29sYm94X1ZUQ3JlYXRlQ0dJbWFnZUZyb21D
VlBpeGVsQnVmZmVyKCkpCkBAIC0zNjgsMTcgKzM2OCwxNyBAQCBJbWFnZURlY29kZXJBVkZPYmpD
Ojp+SW1hZ2VEZWNvZGVyQVZGT2JqQygpID0gZGVmYXVsdDsKIAogYm9vbCBJbWFnZURlY29kZXJB
VkZPYmpDOjpzdXBwb3J0c01lZGlhVHlwZShNZWRpYVR5cGUgdHlwZSkKIHsKLSAgICByZXR1cm4g
dHlwZSA9PSBNZWRpYVR5cGU6OlZpZGVvICYmIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU6OnNp
bmdsZXRvbigpLmlzQXZhaWxhYmxlKCk7CisgICAgcmV0dXJuIHR5cGUgPT0gTWVkaWFUeXBlOjpW
aWRlbyAmJiBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuaXNBdmFpbGFibGUoKTsK
IH0KIAogYm9vbCBJbWFnZURlY29kZXJBVkZPYmpDOjpzdXBwb3J0c0NvbnRlbnRUeXBlKGNvbnN0
IENvbnRlbnRUeXBlJiB0eXBlKQogewotICAgIHJldHVybiBBVkZvdW5kYXRpb25NSU1FVHlwZUNh
Y2hlOjpzaW5nbGV0b24oKS5zdXBwb3J0c0NvbnRlbnRUeXBlKHR5cGUpOworICAgIHJldHVybiBB
VkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuc3VwcG9ydHNDb250ZW50VHlwZSh0eXBl
KTsKIH0KIAogYm9vbCBJbWFnZURlY29kZXJBVkZPYmpDOjpjYW5EZWNvZGVUeXBlKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUpCiB7Ci0gICAgcmV0dXJuIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU6
OnNpbmdsZXRvbigpLmNhbkRlY29kZVR5cGUobWltZVR5cGUpOworICAgIHJldHVybiBBVkFzc2V0
TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlwZShtaW1lVHlwZSk7CiB9CiAK
IEFWQXNzZXRUcmFjayAqSW1hZ2VEZWNvZGVyQVZGT2JqQzo6Zmlyc3RFbmFibGVkVHJhY2soKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNGU1YjgyMzcyZTkuLmRhMGMyZTg4ZTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTI4LDggKzI4LDggQEAKIAogI2lmIEVOQUJMRShWSURF
TykgJiYgVVNFKEFWRk9VTkRBVElPTikKIAorI2ltcG9ydCAiQVZBc3NldE1JTUVUeXBlQ2FjaGUu
aCIKICNpbXBvcnQgIkFWQXNzZXRUcmFja1V0aWxpdGllcy5oIgotI2ltcG9ydCAiQVZGb3VuZGF0
aW9uTUlNRVR5cGVDYWNoZS5oIgogI2ltcG9ydCAiQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5o
IgogI2ltcG9ydCAiQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCIKICNpbXBvcnQgIkF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQy5oIgpAQCAtMjQwLDcgKzI0MCw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2lu
ZVJlZ2lzdHJhCiAKICAgICByZWdpc3RyYXIoW10oTWVkaWFQbGF5ZXIqIHBsYXllcikgeyByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPihw
bGF5ZXIpOyB9LAogICAgICAgICAgICAgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwg
b3JpZ2luc0luTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGVGb3JP
cmlnaW5zLCBzdXBwb3J0c0tleVN5c3RlbSk7Ci0gICAgQVNTRVJUKEFWRm91bmRhdGlvbk1JTUVU
eXBlQ2FjaGU6OnNpbmdsZXRvbigpLmlzQXZhaWxhYmxlKCkpOworICAgIEFTU0VSVChBVkFzc2V0
TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuaXNBdmFpbGFibGUoKSk7CiB9CiAKIHN0YXRpYyBB
VkFzc2V0Q2FjaGUgKmFzc2V0Q2FjaGVGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKQEAgLTE1
MTEsOCArMTUxMSw4IEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJblJlCiAKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJp
bmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN1cHBvcnRlZFR5cGVzKQogewotICAgIHN1
cHBvcnRlZFR5cGVzID0gQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkudHlw
ZXMoKTsKLX0gCisgICAgc3VwcG9ydGVkVHlwZXMgPSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2lu
Z2xldG9uKCkudHlwZXMoKTsKK30KIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElB
KQogc3RhdGljIGJvb2wga2V5U3lzdGVtSXNTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiBrZXlTeXN0
ZW0pCkBAIC0xNTM4LDcgKzE1MzgsNyBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZShjb25zdAogICAgIGlm
IChpc1Vuc3VwcG9ydGVkTUlNRVR5cGUoY29udGFpbmVyVHlwZSkpCiAgICAgICAgIHJldHVybiBN
ZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBpZiAoIXN0YXRpY01JTUVUeXBlTGlz
dCgpLmNvbnRhaW5zKGNvbnRhaW5lclR5cGUpICYmICFBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hl
OjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKGNvbnRhaW5lclR5cGUpKQorICAgIGlmICghc3Rh
dGljTUlNRVR5cGVMaXN0KCkuY29udGFpbnMoY29udGFpbmVyVHlwZSkgJiYgIUFWQXNzZXRNSU1F
VHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKGNvbnRhaW5lclR5cGUpKQogICAg
ICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwogCiAgICAgLy8gVGhlIHNw
ZWMgc2F5czoKQEAgLTE1NjcsNyArMTU2Nyw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0CiAg
ICAgICAgIGlmICghbWltZVR5cGUuaXNFbXB0eSgpICYmIGlzVW5zdXBwb3J0ZWRNSU1FVHlwZSht
aW1lVHlwZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKCFtaW1l
VHlwZS5pc0VtcHR5KCkgJiYgIXN0YXRpY01JTUVUeXBlTGlzdCgpLmNvbnRhaW5zKG1pbWVUeXBl
KSAmJiAhQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlw
ZShtaW1lVHlwZSkpCisgICAgICAgIGlmICghbWltZVR5cGUuaXNFbXB0eSgpICYmICFzdGF0aWNN
SU1FVHlwZUxpc3QoKS5jb250YWlucyhtaW1lVHlwZSkgJiYgIUFWQXNzZXRNSU1FVHlwZUNhY2hl
OjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKG1pbWVUeXBlKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bQppbmRleCA3ZmIxYTVlYzMwNS4uNjYzODVlY2M0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0KQEAgLTI4LDggKzI4LDkgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVT
RShBVkZPVU5EQVRJT04pCiAKKyNpbXBvcnQgIkFWQXNzZXRNSU1FVHlwZUNhY2hlLmgiCiAjaW1w
b3J0ICJBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCIKLSNpbXBvcnQgIkFWRm91bmRhdGlvbk1JTUVU
eXBlQ2FjaGUuaCIKKyNpbXBvcnQgIkFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaCIK
ICNpbXBvcnQgIkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb24uaCIKICNpbXBvcnQgIkdyYXBoaWNz
Q29udGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC0xNzQsNyArMTc1LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdp
bmUoTWVkaWFFbmdpbmVSZWdpc3QKIAogICAgIHJlZ2lzdHJhcihbXShNZWRpYVBsYXllciogcGxh
eWVyKSB7IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQz4ocGxheWVyKTsgfSwKICAgICAgICAgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBv
cnRzVHlwZSwgMCwgMCwgMCwgMCk7Ci0gICAgQVNTRVJUKEFWRm91bmRhdGlvbk1JTUVUeXBlQ2Fj
aGU6OnNpbmdsZXRvbigpLmlzQXZhaWxhYmxlKCkpOworICAgIEFTU0VSVChBVkFzc2V0TUlNRVR5
cGVDYWNoZTo6c2luZ2xldG9uKCkuaXNBdmFpbGFibGUoKSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppc0F2YWlsYWJsZSgpCkBAIC0xODksNyArMTkw
LDE1IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppc0F2YWls
YWJsZSgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpnZXRT
dXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYg
dHlwZXMpCiB7Ci0gICAgdHlwZXMgPSBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlOjpzaW5nbGV0
b24oKS50eXBlcygpOworICAgIGF1dG8mIHN0cmVhbURhdGFQYXJzZXJDYWNoZSA9IEFWU3RyZWFt
RGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpOworICAgIGlmIChzdHJlYW1EYXRh
UGFyc2VyQ2FjaGUuaXNBdmFpbGFibGUoKSkgeworICAgICAgICB0eXBlcyA9IHN0cmVhbURhdGFQ
YXJzZXJDYWNoZS50eXBlcygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYg
YXNzZXRDYWNoZSA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAo
YXNzZXRDYWNoZS5pc0F2YWlsYWJsZSgpKQorICAgICAgICB0eXBlcyA9IGFzc2V0Q2FjaGUudHlw
ZXMoKTsKIH0KIAogTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQ
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtMjAyLDcgKzIxMSwxNiBAQCBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9y
dHNUeXBlKGNvbgogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwog
I2VuZGlmCiAKLSAgICBpZiAocGFyYW1ldGVycy50eXBlLmlzRW1wdHkoKSB8fCAhQVZGb3VuZGF0
aW9uTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlwZShwYXJhbWV0ZXJzLnR5
cGUuY29udGFpbmVyVHlwZSgpKSkKKyAgICBpZiAocGFyYW1ldGVycy50eXBlLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRlZDsKKworICAgIGlmIChB
VlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5pc0F2YWlsYWJsZSgp
KSB7CisgICAgICAgIGlmICghQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6c2luZ2xl
dG9uKCkuc3VwcG9ydHNDb250ZW50VHlwZShwYXJhbWV0ZXJzLnR5cGUpKQorICAgICAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRlZDsKKyAgICB9IGVsc2UgaWYgKEFWQXNz
ZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5pc0F2YWlsYWJsZSgpKSB7CisgICAgICAgIGlm
ICghQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnN1cHBvcnRzQ29udGVudFR5cGUo
cGFyYW1ldGVycy50eXBlKSkKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RT
dXBwb3J0ZWQ7CisgICAgfSBlbHNlCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RT
dXBwb3J0ZWQ7CiAKICAgICAvLyBUaGUgc3BlYyBzYXlzOgpAQCAtMjExLDE1ICsyMjksMTcgQEAg
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OnN1cHBvcnRzVHlwZShjb24KICAgICBpZiAoY29kZWNzLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyOjpNYXlCZVN1cHBvcnRlZDsKIAotICAgIE5TU3RyaW5nICpv
dXRwdXRDb2RlY3MgPSBjb2RlY3M7CisgICAgU3RyaW5nIG91dHB1dENvZGVjcyA9IGNvZGVjczsK
ICAgICBpZiAoW1BBTDo6Z2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKG91dHB1dE1JTUVDb2RlY1BhcmFtZXRlckZvcklucHV0TUlNRUNvZGVj
UGFyYW1ldGVyOildKQogICAgICAgICBvdXRwdXRDb2RlY3MgPSBbUEFMOjpnZXRBVlN0cmVhbURh
dGFQYXJzZXJDbGFzcygpIG91dHB1dE1JTUVDb2RlY1BhcmFtZXRlckZvcklucHV0TUlNRUNvZGVj
UGFyYW1ldGVyOm91dHB1dENvZGVjc107CiAKICAgICBpZiAoIWNvbnRlbnRUeXBlTWVldHNIYXJk
d2FyZURlY29kZVJlcXVpcmVtZW50cyhwYXJhbWV0ZXJzLnR5cGUsIHBhcmFtZXRlcnMuY29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxh
eWVyOjpJc05vdFN1cHBvcnRlZDsKIAotICAgIE5TU3RyaW5nICp0eXBlU3RyaW5nID0gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQDsgY29kZWNzPVwiJUBcIiIsIChOU1N0cmluZyAqKXBh
cmFtZXRlcnMudHlwZS5jb250YWluZXJUeXBlKCksIChOU1N0cmluZyAqKW91dHB1dENvZGVjc107
Ci0gICAgcmV0dXJuIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFibGVFeHRlbmRl
ZE1JTUVUeXBlOnR5cGVTdHJpbmddID8gTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkIDogTWVkaWFQ
bGF5ZXI6Ok1heUJlU3VwcG9ydGVkOzsKKyAgICBTdHJpbmcgdHlwZSA9IG1ha2VTdHJpbmcocGFy
YW1ldGVycy50eXBlLmNvbnRhaW5lclR5cGUoKSwgIjsgY29kZWNzPVwiIiwgb3V0cHV0Q29kZWNz
LCAiXCIiKTsKKyAgICBpZiAoQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6c2luZ2xl
dG9uKCkuaXNBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuIEFWU3RyZWFtRGF0YVBhcnNlck1J
TUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmNhbkRlY29kZVR5cGUodHlwZSkgPyBNZWRpYVBsYXll
cjo6SXNTdXBwb3J0ZWQgOiBNZWRpYVBsYXllcjo6TWF5QmVTdXBwb3J0ZWQ7CisgICAgcmV0dXJu
IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKHR5cGUpID8g
TWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6Ok1heUJlU3VwcG9ydGVkOwog
fQogCiAjcHJhZ21hIG1hcmsgLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkOTkzNGExMzkxZS4uODYzYTZhZmRjM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDUtMDMgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgQVZTdHJlYW1EYXRhUGFyc2VyLmF1ZGlv
dmlzdWFsTUlNRVR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTc1ODEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwNDU4OTgxPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpwbGF0Zm9ybVRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldE1l
ZGlhTUlNRVR5cGVzKToKKwogMjAxOS0wNS0wMSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5j
b20+CiAKICAgICAgICAgTGluayBQcmV2aWV3cyB0aGF0IHVzZSBXS0ltYWdlUHJldmlld1ZpZXdD
b250cm9sbGVyIGFyZSBub3QgYWx3YXlzIHNjYWxlZCBjb3JyZWN0bHkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDczZGY3NWM4
NmRkLi5mOTFjNTFjMThmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC00OSw3ICs0OSw3IEBACiAjaW1wb3J0ICJXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQ29uZmlnRmls
ZS5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvT3B0aW9ucy5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0FWQXNzZXRN
SU1FVHlwZUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FYT2JqZWN0Q2FjaGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvQ1BVTW9uaXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9EaXNwbGF5UmVmcmVz
aE1vbml0b3JNYW5hZ2VyLmg+CkBAIC0yMDYsNyArMjA2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmEKICAgICBpZiAoIXBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMuaXNFbXB0eSgpKQogICAg
ICAgICBzZXRNZWRpYU1JTUVUeXBlcyhwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzKTsKICAgICBl
bHNlIHsKLSAgICAgICAgQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuc2V0
Q2FjaGVNSU1FVHlwZXNDYWxsYmFjayhbdGhpc10oY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5cGVz
KSB7CisgICAgICAgIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5zZXRDYWNoZU1J
TUVUeXBlc0NhbGxiYWNrKFt0aGlzXShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdHlwZXMpIHsKICAg
ICAgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6Q2FjaGVNZWRpYU1JTUVUeXBlcyh0eXBlcyksIDApOwogICAgICAgICB9KTsK
ICAgICB9CkBAIC00NjksNyArNDY5LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpzdG9wUnVuTG9vcCgp
CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1UZXJtaW5hdGUoKQogewotICAgIEFWRm91bmRh
dGlvbk1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnNldENhY2hlTUlNRVR5cGVzQ2FsbGJhY2so
bnVsbHB0cik7CisgICAgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnNldENhY2hl
TUlNRVR5cGVzQ2FsbGJhY2sobnVsbHB0cik7CiB9CiAKIFJldGFpblB0cjxDRkRhdGFSZWY+IFdl
YlByb2Nlc3M6OnNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhKCkgY29uc3QKQEAgLTc5OSw3ICs3
OTksNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmJhY2tsaWdodExldmVsRGlkQ2hhbmdlKGZsb2F0IGJh
Y2tsaWdodExldmVsKQogCiB2b2lkIFdlYlByb2Nlc3M6OnNldE1lZGlhTUlNRVR5cGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+IHR5cGVzKQogewotICAgIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU6
OnNpbmdsZXRvbigpLnNldFN1cHBvcnRlZFR5cGVzKHR5cGVzKTsKKyAgICBBVkFzc2V0TUlNRVR5
cGVDYWNoZTo6c2luZ2xldG9uKCkuc2V0U3VwcG9ydGVkVHlwZXModHlwZXMpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369142</attachid>
            <date>2019-05-06 11:08:48 -0700</date>
            <delta_ts>2019-05-06 12:36:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-197581-20190506110848.patch</filename>
            <type>text/plain</type>
            <size>48501</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE2YmQ5ODA2OGYxMzg4
NzRhYWUwOTZmM2QyZWU0MDQ3Yjc2NzdiNS4uMDQ0MzZkMjgyYTYzMWQxMTU3YzkwOGJiMmY4NDUz
MTFjNzI5YzdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTA1LTAzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IEFWU3RyZWFtRGF0
YVBhcnNlci5hdWRpb3Zpc3VhbE1JTUVUeXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3NTgxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDQ1
ODk4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRk
IGEgbmV3IHNpbmdsZXRvbiBjbGFzcywgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZSwg
YW5kIHJlbmFtZSBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlIHRvIHRoZSBtb3JlIHByZWNpc2UK
KyAgICAgICAgQVZBc3NldE1JTUVUeXBlQ2FjaGUuICBVcGRhdGUgYWxsIHRoZSBvbGQgQVZGb3Vu
ZGF0aW9uTUlNRVR5cGVDYWNoZSB3aXRoIHRoZSBuZXcgbmFtZS4KKworICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRN
SU1FVHlwZUNhY2hlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLmguCisgICAg
ICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0Q2FjaGVNSU1FVHlwZXNDYWxs
YmFjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZB
c3NldE1JTUVUeXBlQ2FjaGUubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLm1t
LgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0U3VwcG9ydGVkVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnR5cGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRlbnRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjppc0F2YWlsYWJsZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6bG9hZE1JTUVUeXBl
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJl
YW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hl
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBl
Q2FjaGU6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJzZXJN
SU1FVHlwZUNhY2hlOjp0eXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRlbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNo
ZTo6bG9hZE1JTUVUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
RGVjb2RlckFWRk9iakM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJB
VkZPYmpDOjpzdXBwb3J0c01lZGlhVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29k
ZXJBVkZPYmpDOjpzdXBwb3J0c0NvbnRlbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
RGVjb2RlckFWRk9iakM6OmNhbkRlY29kZVR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpyZWdpc3Rlck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN1cHBvcnRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBw
b3J0c0tleVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1l
ZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUpOgorCiAyMDE5LTA1
LTAxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEhpZGUgTWVk
aWFDYXBhYmlsaXRpZXMuZW5jb2RpbmdJbmZvKCkgd2hlbiB0aGUgcGxhdGZvcm0gZG9lcyBub3Qg
c3VwcG9ydCBpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDk5MzRhMTM5MWVkYmU2ZGUyMGYwZjdlM2VkNGRjYzBi
N2FkNzViMS4uOGFmZDA2YTViOWNmOWJjZDgzMmVhYmVjYzZiNDUzZjRhYjMxMTk5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wNS0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KKworICAgICAgICBBZG9wdCBBVlN0cmVhbURhdGFQYXJzZXIuYXVkaW92aXN1YWxN
SU1FVHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NzU4MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTA0NTg5ODE+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9y
bVRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldE1lZGlhTUlNRVR5
cGVzKToKKwogMjAxOS0wNS0wMSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAg
ICAgICAgTGluayBQcmV2aWV3cyB0aGF0IHVzZSBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVy
IGFyZSBub3QgYWx3YXlzIHNjYWxlZCBjb3JyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cmlu
ZGV4IDNlMGVjNGMxZGM1OWQ4ZWVkY2Q0Yzg3YjUxN2JkMWUyNjVmMTk2MjkuLmMwODExOThhMTcy
YWIyMDk0Y2FhNjRjMmQxYTYzYTk0ODczYTg0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApA
QCAtMjMxLDggKzIzMSw5IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIEBuby11bmlmeQogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3Bw
IEBuby11bmlmeQogCitwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0
TUlNRVR5cGVDYWNoZS5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWQXNzZXRUcmFja1V0aWxpdGllcy5tbSBAbm8tdW5pZnkKLXBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUubW0gQG5vLXVu
aWZ5CitwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1tIEBuby11bmlmeQogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuY3BwIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
Q0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24ubW0gQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWMxODg4NWU4
NTE2OGViY2E2YmFlM2RhMzQ3M2M3NDYwZjUyZDVmNC4uNDU5OWQ3ZmYwZTdjMzdhN2I4MWVhOTMw
N2VhNjc4NTE0OTg4MTQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAxLDcgKzEwMSw3IEBACiAJCTA3MEUwOTE5MTg3NUVF
RkMwMDNBMUQzQyAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwRTA5MTgxODc1RUQ5MzAwM0ExRDNDIC8qIFBs
YXRmb3JtTWVkaWFTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMDcwRTgxRDExQkYyNzY1NjAwMUZEQTQ4IC8qIFZpZGVvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3MEU4MUQwMUJGMjc2NTYwMDFGREE0OCAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtLmggKi87IH07CiAJCTA3MEY1NDk4MTdGMTJGNkIwMDE2OUUwNCAvKiBNZWRpYVN0cmVh
bUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwRjU0OTcxN0YxMkY2QjAwMTY5RTA0IC8qIE1lZGlhU3Ry
ZWFtQ29uc3RyYWludHNWYWxpZGF0aW9uQ2xpZW50LmggKi87IH07Ci0JCTA3MTk0MjdGMUQwODhG
MjEwMDJBQTUxRCAvKiBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDOEFEMTExRDA3M0Q2MzAwODdDNUNF
IC8qIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUubW0gKi87IH07CisJCTA3MTk0MjdGMUQwODhG
MjEwMDJBQTUxRCAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QzhBRDExMUQwNzNENjMwMDg3QzVDRSAvKiBB
VkFzc2V0TUlNRVR5cGVDYWNoZS5tbSAqLzsgfTsKIAkJMDcxQTlFQzIxNjhGQkM0MzAwMjYyOUY5
IC8qIFRleHRUcmFja0N1ZUdlbmVyaWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDcxQTlFQzAxNjhGQjU2QzAwMjYyOUY5IC8qIFRleHRUcmFja0N1
ZUdlbmVyaWMuY3BwICovOyB9OwogCQkwNzFBOUVDMzE2OEZCQzU1MDAyNjI5RjkgLyogVGV4dFRy
YWNrQ3VlR2VuZXJpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDcxQTlFQzExNjhGQjU2QzAwMjYyOUY5IC8qIFRleHRUcmFja0N1ZUdlbmVyaWMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzFFNDk2
RTFBRDVBQTBEMDA4QTUwQjQgLyogTWVkaWFQbGF5YmFja1RhcmdldE1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MUU0OTZEMUFENUFBMEQwMDhB
NTBCNCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TWFjLm1tICovOyB9OwpAQCAtMjI3LDcgKzIyNyw3
IEBACiAJCTA3RUU3NkVDMUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdFRTc2
RUExQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDdFRTc2RUYxQkVBNjE5
ODAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0VFNzZFRDFCRUE2MTk4MDBGODkxMzMg
LyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAqLzsgfTsKIAkJMDdGMDRBOTQyMDA2QjFF
MzAwQUUyQTBBIC8qIEFwcGxpY2F0aW9uU3RhdGVDaGFuZ2VMaXN0ZW5lci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdGMDRBOTIyMDA2ODRCQzAwQUUy
QTBBIC8qIEFwcGxpY2F0aW9uU3RhdGVDaGFuZ2VMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTA3RjRFOTMzMjBCMzU4N0YwMDJFMzgw
MyAvKiBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0M4QUQxMjFEMDczRDYzMDA4N0M1Q0UgLyogQVZGb3Vu
ZGF0aW9uTUlNRVR5cGVDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTA3RjRFOTMzMjBCMzU4N0YwMDJFMzgwMyAvKiBBVkFzc2V0TUlNRVR5
cGVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDdDOEFEMTIxRDA3M0Q2MzAwODdDNUNFIC8qIEFWQXNzZXRNSU1FVHlwZUNhY2hlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDdGODc2ODQxQUQ1
ODBGOTAwOTA1ODQ5IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0Y4NzY4MzFBRDRBOTQ1MDA5MDU4
NDkgLyogTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0Y5NDQxNjE4NjREMDQ2MDA1RDMxQ0IgLyog
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREFFOEMwODE3NDZCOTU3MDA1MzJENzggLyogUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMDdGRTk5REQxODgwN0E3RDAwMjU2NjQ4IC8qIE1lZGlhRWxlbWVudFNl
c3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
RkU5OURCMTg4MDdBN0QwMDI1NjY0OCAvKiBNZWRpYUVsZW1lbnRTZXNzaW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM5OTcsNiArMzk5Nyw3
IEBACiAJCUNEMDYzRjgyMUUyM0ZBODkwMDgxMkJFMyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMDYzRjgwMUUy
M0ZBODkwMDgxMkJFMyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmNwcCAqLzsgfTsKIAkJQ0QwNjNGODMx
RTIzRkE4OTAwODEyQkUzIC8qIEluaXREYXRhUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMDYzRjgxMUUyM0ZBODkwMDgxMkJFMyAvKiBJ
bml0RGF0YVJlZ2lzdHJ5LmggKi87IH07CiAJCUNEMEVFRTBFMTQ3NDNGMzkwMDNFQUZBMiAvKiBB
dWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMEVFRTBCMTQ3NDNFMzUwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9u
SU9TLmNwcCAqLzsgfTsKKwkJQ0QxMUIzRTEyMjdDRTZGMzAwMjNBRkM3IC8qIEFWU3RyZWFtRGF0
YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDExQjNFMDIyN0NBQUE5MDAyM0FGQzcgLyogQVZTdHJlYW1EYXRhUGFy
c2VyTUlNRVR5cGVDYWNoZS5tbSAqLzsgfTsKIAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8q
IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxT
Y3JlZW5XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlDRDE3QTQ1RDIxMzc0MDgxMDA3OUVDN0IgLyogVW5pZmllZFNvdXJjZTYyLW1tLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxN0E0NTky
MTM3NDAxNjAwNzlFQzdCIC8qIFVuaWZpZWRTb3VyY2U2Mi1tbS5tbSAqLzsgfTsKIAkJQ0QxOUEy
NjgxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2NzFBMTNFNzAwMDA4
RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTQ5Myw4ICs1NDk0LDggQEAKIAkJMDdDMUMw
RTAxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3Ry
YWludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdDMUMwRTExQkZCNjAwMTAw
QkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdDMUMwRTQxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdDOEFEMTExRDA3M0Q2MzAwODdDNUNFIC8qIEFW
Rm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwN0M4QUQxMjFEMDczRDYzMDA4N0M1Q0UgLyogQVZGb3VuZGF0aW9uTUlN
RVR5cGVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBVkZvdW5kYXRp
b25NSU1FVHlwZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QzhBRDEx
MUQwNzNENjMwMDg3QzVDRSAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0M4QUQxMjFEMDczRDYzMDA4N0M1Q0UgLyogQVZB
c3NldE1JTUVUeXBlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVZB
c3NldE1JTUVUeXBlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdDRTc3
RDQxNjcxMkE2QTAwQzU1QTQ3IC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0Q2MDkyNDIxNEM1QkZCMDBFNzM5
NkMgLyogV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdENjA5MjYyMTRDNUJGQzAwRTczOTZDIC8q
IFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMzQyOSw2ICsxMzQzMCw4IEBACiAJCUNEMEM4QjU4MjE0MUM4Q0Ew
MDYyRjU5RCAvKiBNZWRpYUNhcGFiaWxpdGllc0luZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFD
YXBhYmlsaXRpZXNJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMEVFRTBB
MTQ3NDNFMzQwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9TLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvRGVzdGluYXRpb25JT1MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0QwRUVFMEIxNDc0M0UzNTAwM0VBRkEyIC8qIEF1ZGlvRGVzdGluYXRp
b25JT1MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9EZXN0
aW5hdGlvbklPUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMTFCM0RGMjI3
Q0FBQTkwMDIzQUZDNyAvKiBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxMUIzRTAyMjdDQUFBOTAwMjNBRkM3IC8qIEFWU3RyZWFtRGF0
YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBVlN0cmVhbURh
dGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8q
IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEMTdBNDU5MjEzNzQwMTYwMDc5RUM3QiAvKiBVbmlmaWVkU291cmNlNjIt
bW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSAiVW5pZmllZFNv
dXJjZTYyLW1tLm1tIjsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJDb3JlL3VuaWZpZWQtc291
cmNlcy9VbmlmaWVkU291cmNlNjItbW0ubW0iOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwpAQCAtMjU5MjIsOCArMjU5MjUsMTAgQEAKIAkJCQlDRDU0QTc2MTE4MEY5RjcwMDBC
MDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCAqLywKIAkJCQlD
REVDQTg5OTFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLmggKi8sCiAJ
CQkJQ0RFQ0E4OTgxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbSAq
LywKLQkJCQkwN0M4QUQxMjFEMDczRDYzMDA4N0M1Q0UgLyogQVZGb3VuZGF0aW9uTUlNRVR5cGVD
YWNoZS5oICovLAotCQkJCTA3QzhBRDExMUQwNzNENjMwMDg3QzVDRSAvKiBBVkZvdW5kYXRpb25N
SU1FVHlwZUNhY2hlLm1tICovLAorCQkJCTA3QzhBRDEyMUQwNzNENjMwMDg3QzVDRSAvKiBBVkFz
c2V0TUlNRVR5cGVDYWNoZS5oICovLAorCQkJCTA3QzhBRDExMUQwNzNENjMwMDg3QzVDRSAvKiBB
VkFzc2V0TUlNRVR5cGVDYWNoZS5tbSAqLywKKwkJCQlDRDExQjNERjIyN0NBQUE5MDAyM0FGQzcg
LyogQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oICovLAorCQkJCUNEMTFCM0UwMjI3
Q0FBQTkwMDIzQUZDNyAvKiBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tICovLAog
CQkJCUNENzhBMkVFMUY3NTY0ODYwMERFMzcxQiAvKiBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFt
aW5nQVZGT2JqQy5oICovLAogCQkJCUNENzhBMkVDMUY3NTY0ODYwMERFMzcxQiAvKiBDRE1JbnN0
YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbSAqLywKIAkJCQlDREU1OTU5NDFCRjE2NkQx
MDBBMUNCRTggLyogQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24uaCAqLywKQEAgLTI4MjM1
LDcgKzI4MjQwLDcgQEAKIAkJCQlDREM2NzUyNzFFQUVBOUQ0MDA3MjdDODQgLyogQVZBdWRpb1Nl
c3Npb25DYXB0dXJlRGV2aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2NzUyMzFFQUVBOUI3
MDA3MjdDODQgLyogQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDcwMzYzRTIxODFBMUNEQzAwQzA3NEE1IC8qIEFWQ2FwdHVyZURldmljZU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTA3RjRFOTMzMjBCMzU4N0YwMDJFMzgwMyAvKiBB
VkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwN0Y0RTkzMzIw
QjM1ODdGMDAyRTM4MDMgLyogQVZBc3NldE1JTUVUeXBlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNEMzM2RjYyMTdGOUY2NDcwMERERENEMCAvKiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzAzNjNFNjE4MUExQ0RDMDBDMDc0QTUgLyogQVZWaWRl
b0NhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5QUUyMTJEMjFBQjlFRUIwMDg2
OTI4MyAvKiBBWElzb2xhdGVkVHJlZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjU3NSw3ICszMjU4
MCw3IEBACiAJCQkJQ0RFQ0E4OUExRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxp
dGllcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQzY3NTIyMUVBRUE5QjcwMDcyN0M4NCAvKiBB
VkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MDcwMzYzRTMxODFBMUNEQzAwQzA3NEE1IC8qIEFWQ2FwdHVyZURldmljZU1hbmFnZXIubW0gaW4g
U291cmNlcyAqLywKLQkJCQkwNzE5NDI3RjFEMDg4RjIxMDAyQUE1MUQgLyogQVZGb3VuZGF0aW9u
TUlNRVR5cGVDYWNoZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTA3MTk0MjdGMUQwODhGMjEwMDJB
QTUxRCAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEMzM2
RjYxMTdGOUY2NDcwMERERENEMCAvKiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDcwMzYzRTcxODFBMUNEQzAwQzA3NEE1IC8qIEFWVmlkZW9DYXB0dXJl
U291cmNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E0NTAzMkYxOERCNzE3MjAwMzc3QjM0IC8q
IEJ1ZmZlcmVkTGluZVJlYWRlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMzMDE4LDYgKzMzMDIz
LDcgQEAKIAkJCQlERUNBODAzOTFGOUZFRDZBMDBFM0I2NjEgLyogVW5pZmllZFNvdXJjZTI0OC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlERUNBODAzQTFGOUZFRDZBMDBFM0I2NjEgLyogVW5pZmll
ZFNvdXJjZTI0OS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERUNBODAzQjFGOUZFRDZBMDBFM0I2
NjEgLyogVW5pZmllZFNvdXJjZTI1MC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDExQjNFMTIy
N0NFNkYzMDAyM0FGQzcgLyogQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCURFQ0E4MDNDMUY5RkVENkEwMEUzQjY2MSAvKiBVbmlmaWVkU291cmNl
MjUxLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E4MDNEMUY5RkVENkEwMEUzQjY2MSAvKiBV
bmlmaWVkU291cmNlMjUyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E4MDNFMUY5RkVENkEw
MEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMjUzLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZB
c3NldE1JTUVUeXBlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZkOTJh
Y2IwNWFlZmM0MTdlNWI3ZTY4YTg2MjQyOTg1NzNhZDU5YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRN
SU1FVHlwZUNhY2hlLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
Ni0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0o
Q09DT0EpCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIENvbnRlbnRUeXBlOworCitjbGFzcyBBVkFzc2V0TUlNRVR5cGVDYWNoZSB7
CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEFWQXNzZXRNSU1FVHlwZUNhY2hl
JiBzaW5nbGV0b24oKTsKKworICAgIGJvb2wgc3VwcG9ydHNDb250ZW50VHlwZShjb25zdCBDb250
ZW50VHlwZSYpOworICAgIGJvb2wgY2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmKTsKKworICAg
IGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0eXBlcygp
OworICAgIGJvb2wgaXNFbXB0eSgpOworICAgIGJvb2wgaXNBdmFpbGFibGUoKSBjb25zdDsKKwor
ICAgIHVzaW5nIENhY2hlTUlNRVR5cGVzQ2FsbGJhY2sgPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29u
c3QgVmVjdG9yPFN0cmluZz4mKT47CisgICAgdm9pZCBzZXRDYWNoZU1JTUVUeXBlc0NhbGxiYWNr
KENhY2hlTUlNRVR5cGVzQ2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX2NhY2hlVHlwZUNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayk7IH0KKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U3Vw
cG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKworcHJpdmF0ZToKKyAgICBmcmll
bmQgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+OworICAgIEFWQXNzZXRNSU1F
VHlwZUNhY2hlKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBsb2FkTUlNRVR5cGVzKCk7CisKKyAg
ICBPcHRpb25hbDxIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4gbV9j
YWNoZTsKKyAgICBDYWNoZU1JTUVUeXBlc0NhbGxiYWNrIG1fY2FjaGVUeXBlQ2FsbGJhY2s7Cit9
OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5
cGVDYWNoZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDY4YjZiN2QwYTY1NmM2M2E0ZGM1YzY0ZDNiMGI4MjU4
NjcyYTNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KQEAgLTAsMCArMSwx
MjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkFWQXNzZXRNSU1FVHlwZUNhY2hlLmgiCisK
KyNpZiBQTEFURk9STShDT0NPQSkKKworI2ltcG9ydCAiQ29udGVudFR5cGUuaCIKKyNpbXBvcnQg
PHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLmg+CisjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgorCisjaWYgIVBMQVRGT1JN
KElPU01BQykKK1NPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUxfUFJFRkxJR0hUKEFWRm91bmRh
dGlvbikKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FWQXNzZXRNSU1FVHlwZUNh
Y2hlJiBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+IGNhY2hlOworICAgIHJldHVybiBjYWNo
ZS5nZXQoKTsKK30KKwordm9pZCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0U3VwcG9ydGVkVHlw
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5cGVzKQoreworICAgIGlmIChtX2NhY2hlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2NhY2hlID0gSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaD4oKTsKKyAgICBmb3IgKGF1dG8mIHR5cGUgOiB0eXBlcykKKyAgICAgICAg
bV9jYWNoZS0+YWRkKHR5cGUpOworfQorCitjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiYgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnR5cGVzKCkKK3sKKyAgICBp
ZiAoIW1fY2FjaGUpCisgICAgICAgIGxvYWRNSU1FVHlwZXMoKTsKKworICAgIHJldHVybiAqbV9j
YWNoZTsKK30KKworYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c3VwcG9ydHNDb250ZW50VHlw
ZShjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUpCit7CisgICAgaWYgKGNvbnRlbnRUeXBl
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHR5cGVzKCku
Y29udGFpbnMoY29udGVudFR5cGUuY29udGFpbmVyVHlwZSgpKTsKK30KKworYm9vbCBBVkFzc2V0
TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQorewor
ICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmICghaXNBdmFpbGFibGUoKSB8fCAhdHlwZXMoKS5jb250YWlucyhDb250ZW50VHlwZSB7IG1p
bWVUeXBlIH0uY29udGFpbmVyVHlwZSgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQorICAgIHJldHVybiBbUEFMOjpnZXRB
VlVSTEFzc2V0Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTptaW1lVHlwZV07Cisj
ZW5kaWYKKworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNo
ZTo6aXNBdmFpbGFibGUoKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9V
TkRBVElPTikKKyNpZiBQTEFURk9STShJT1NNQUMpCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IGJlIHVzaW5nIEFWRm91bmRhdGlvbkxpYnJhcnlJc0F2YWlsYWJsZSgpIGluc3RlYWQsIGJ1dCBk
b2luZyBzbyBjYXVzZXMgc29mdC1saW5raW5nCisgICAgLy8gdG8gc3Vic2VxdWVudGx5IGZhaWwg
b24gY2VydGFpbiBzeW1ib2xzLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzQyMjI0NzgwPiBmb3IgbW9y
ZSBkZXRhaWxzLgorICAgIHJldHVybiBQQUw6OkFWRm91bmRhdGlvbkxpYnJhcnkoKTsKKyNlbHNl
CisgICAgcmV0dXJuIEFWRm91bmRhdGlvbkxpYnJhcnlJc0F2YWlsYWJsZSgpOworI2VuZGlmCisj
ZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCit2b2lkIEFWQXNzZXRNSU1FVHlw
ZUNhY2hlOjpsb2FkTUlNRVR5cGVzKCkKK3sKKyAgICBtX2NhY2hlID0gSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4oKTsKKworI2lmIEVOQUJMRShWSURFTykgJiYgVVNF
KEFWRk9VTkRBVElPTikKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAg
c3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFt0aGlzXSB7CisgICAgICAgIGlmICghUEFMOjpBVkZv
dW5kYXRpb25MaWJyYXJ5KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChO
U1N0cmluZyogdHlwZSBpbiBbUEFMOjpnZXRBVlVSTEFzc2V0Q2xhc3MoKSBhdWRpb3Zpc3VhbE1J
TUVUeXBlc10pCisgICAgICAgICAgICBtX2NhY2hlLT5hZGQodHlwZSk7CisKKyAgICAgICAgaWYg
KG1fY2FjaGVUeXBlQ2FsbGJhY2spCisgICAgICAgICAgICBtX2NhY2hlVHlwZUNhbGxiYWNrKGNv
cHlUb1ZlY3RvcigqbV9jYWNoZSkpOworICAgIH0pOworI2VuZGlmCit9CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hl
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4ZjUyZTJjNjA0ZDlhNDc5Y2YwODMx
YjM2ZWNiZDQ3YmExMmRlODguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0KLSNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSGFzaC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENvbnRlbnRUeXBlOwot
Ci1jbGFzcyBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlIHsKLXB1YmxpYzoKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZSYgc2luZ2xldG9uKCk7Ci0K
LSAgICBib29sIHN1cHBvcnRzQ29udGVudFR5cGUoY29uc3QgQ29udGVudFR5cGUmKTsKLSAgICBi
b29sIGNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJik7Ci0KLSAgICBjb25zdCBIYXNoU2V0PFN0
cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMoKTsKLSAgICBib29sIGlzRW1w
dHkoKTsKLSAgICBib29sIGlzQXZhaWxhYmxlKCkgY29uc3Q7Ci0KLSAgICB1c2luZyBDYWNoZU1J
TUVUeXBlc0NhbGxiYWNrID0gc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxTdHJpbmc+
Jik+OwotICAgIHZvaWQgc2V0Q2FjaGVNSU1FVHlwZXNDYWxsYmFjayhDYWNoZU1JTUVUeXBlc0Nh
bGxiYWNrJiYgY2FsbGJhY2spIHsgbV9jYWNoZVR5cGVDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spOyB9Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN1cHBvcnRlZFR5cGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+Jik7Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIE5ldmVyRGVzdHJveWVk
PEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU+OwotICAgIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2Fj
aGUoKSA9IGRlZmF1bHQ7Ci0KLSAgICB2b2lkIGxvYWRNSU1FVHlwZXMoKTsKLQotICAgIE9wdGlv
bmFsPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtX2NhY2hlOwot
ICAgIENhY2hlTUlNRVR5cGVzQ2FsbGJhY2sgbV9jYWNoZVR5cGVDYWxsYmFjazsKLX07Ci0KLX0K
LQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZGb3VuZGF0aW9uTUlN
RVR5cGVDYWNoZS5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE3YmY2OTFkZGE5
NWQ3ZTkxMjQ5MjU0OGRmOTNmNjFiYWU0OTY0My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLm1tCisrKyAvZGV2L251bGwK
QEAgLTEsMTI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkFWRm91bmRhdGlvbk1J
TUVUeXBlQ2FjaGUuaCIKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotCi0jaW1wb3J0ICJDb250ZW50
VHlwZS5oIgotI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KLQotI2ltcG9ydCA8cGFsL2NmL0NvcmVN
ZWRpYVNvZnRMaW5rLmg+Ci0jaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
aD4KLQotI2lmICFQTEFURk9STShJT1NNQUMpCi1TT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFM
X1BSRUZMSUdIVChBVkZvdW5kYXRpb24pCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlJiBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlOjpz
aW5nbGV0b24oKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBVkZvdW5kYXRpb25NSU1F
VHlwZUNhY2hlPiBjYWNoZTsKLSAgICByZXR1cm4gY2FjaGUuZ2V0KCk7Ci19Ci0KLXZvaWQgQVZG
b3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6c2V0U3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHR5cGVzKQotewotICAgIGlmIChtX2NhY2hlKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBtX2NhY2hlID0gSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4oKTsK
LSAgICBmb3IgKGF1dG8mIHR5cGUgOiB0eXBlcykKLSAgICAgICAgbV9jYWNoZS0+YWRkKHR5cGUp
OwotfQotCi1jb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYg
QVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6dHlwZXMoKQotewotICAgIGlmICghbV9jYWNoZSkK
LSAgICAgICAgbG9hZE1JTUVUeXBlcygpOwotCi0gICAgcmV0dXJuICptX2NhY2hlOwotfQotCi1i
b29sIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU6OnN1cHBvcnRzQ29udGVudFR5cGUoY29uc3Qg
Q29udGVudFR5cGUmIGNvbnRlbnRUeXBlKQotewotICAgIGlmIChjb250ZW50VHlwZS5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0eXBlcygpLmNvbnRhaW5z
KGNvbnRlbnRUeXBlLmNvbnRhaW5lclR5cGUoKSk7Ci19Ci0KLWJvb2wgQVZGb3VuZGF0aW9uTUlN
RVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQotewotICAg
IGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlm
ICghaXNBdmFpbGFibGUoKSB8fCAhdHlwZXMoKS5jb250YWlucyhDb250ZW50VHlwZSB7IG1pbWVU
eXBlIH0uY29udGFpbmVyVHlwZSgpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0jaWYgRU5B
QkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotICAgIHJldHVybiBbUEFMOjpnZXRBVlVS
TEFzc2V0Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTptaW1lVHlwZV07Ci0jZW5k
aWYKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBBVkZvdW5kYXRpb25NSU1FVHlwZUNh
Y2hlOjppc0F2YWlsYWJsZSgpIGNvbnN0Ci17Ci0jaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQotI2lmIFBMQVRGT1JNKElPU01BQykKLSAgICAvLyBGSVhNRTogVGhpcyBzaG91
bGQgYmUgdXNpbmcgQVZGb3VuZGF0aW9uTGlicmFyeUlzQXZhaWxhYmxlKCkgaW5zdGVhZCwgYnV0
IGRvaW5nIHNvIGNhdXNlcyBzb2Z0LWxpbmtpbmcKLSAgICAvLyB0byBzdWJzZXF1ZW50bHkgZmFp
bCBvbiBjZXJ0YWluIHN5bWJvbHMuIFNlZSA8cmRhcjovL3Byb2JsZW0vNDIyMjQ3ODA+IGZvciBt
b3JlIGRldGFpbHMuCi0gICAgcmV0dXJuIFBBTDo6QVZGb3VuZGF0aW9uTGlicmFyeSgpOwotI2Vs
c2UKLSAgICByZXR1cm4gQVZGb3VuZGF0aW9uTGlicmFyeUlzQXZhaWxhYmxlKCk7Ci0jZW5kaWYK
LSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KLXZvaWQgQVZGb3VuZGF0aW9u
TUlNRVR5cGVDYWNoZTo6bG9hZE1JTUVUeXBlcygpCi17Ci0gICAgbV9jYWNoZSA9IEhhc2hTZXQ8
U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+KCk7Ci0KLSNpZiBFTkFCTEUoVklERU8p
ICYmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFn
OwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbdGhpc10gewotICAgICAgICBpZiAoIVBB
TDo6QVZGb3VuZGF0aW9uTGlicmFyeSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IGZvciAoTlNTdHJpbmcqIHR5cGUgaW4gW1BBTDo6Z2V0QVZVUkxBc3NldENsYXNzKCkgYXVkaW92
aXN1YWxNSU1FVHlwZXNdKQotICAgICAgICAgICAgbV9jYWNoZS0+YWRkKHR5cGUpOwotCi0gICAg
ICAgIGlmIChtX2NhY2hlVHlwZUNhbGxiYWNrKQotICAgICAgICAgICAgbV9jYWNoZVR5cGVDYWxs
YmFjayhjb3B5VG9WZWN0b3IoKm1fY2FjaGUpKTsKLSAgICB9KTsKLSNlbmRpZgotfQotCi19Ci0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRh
UGFyc2VyTUlNRVR5cGVDYWNoZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhYmNjM2QyMWFjNGVlYzNjY2NiMGYz
NTJlNjRmMzAwODc1NmI4ODYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlw
ZUNhY2hlLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENvbnRlbnRUeXBlOworCitjbGFzcyBBVlN0cmVhbURh
dGFQYXJzZXJNSU1FVHlwZUNhY2hlIHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZSYgc2luZ2xldG9uKCk7CisKKyAgICBi
b29sIHN1cHBvcnRzQ29udGVudFR5cGUoY29uc3QgQ29udGVudFR5cGUmKTsKKyAgICBib29sIGNh
bkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJik7CisKKyAgICBjb25zdCBIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMoKTsKKyAgICBib29sIGlzRW1wdHkoKTsK
KyAgICBib29sIGlzQXZhaWxhYmxlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIE5l
dmVyRGVzdHJveWVkPEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU+OworICAgIEFWU3Ry
ZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIGxvYWRN
SU1FVHlwZXMoKTsKKworICAgIE9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+PiBtX2NhY2hlOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFt
RGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI5MWRlNGQ0ZGMxNzgxMmUwZmYzYWI3YzBkNzg5N2U4NDViYTZkOTMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tCkBAIC0wLDAgKzEs
MTI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBVlN0cmVh
bURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKworI2lt
cG9ydCAiQVZBc3NldE1JTUVUeXBlQ2FjaGUuaCIKKyNpbXBvcnQgIkNvbnRlbnRUeXBlLmgiCisj
aW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKyNpbXBvcnQgPHBhbC9jb2NvYS9B
VkZvdW5kYXRpb25Tb2Z0TGluay5oPgorI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KKworI2lmICFQ
TEFURk9STShJT1NNQUMpCitTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMX1BSRUZMSUdIVChB
VkZvdW5kYXRpb24pCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBVlN0cmVhbURh
dGFQYXJzZXJNSU1FVHlwZUNhY2hlJiBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlOjpz
aW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlPiBjYWNoZTsKKyAgICByZXR1cm4gY2FjaGUuZ2V0KCk7Cit9CisKK2Nv
bnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBBVlN0cmVhbURh
dGFQYXJzZXJNSU1FVHlwZUNhY2hlOjp0eXBlcygpCit7CisgICAgaWYgKCFtX2NhY2hlKQorICAg
ICAgICBsb2FkTUlNRVR5cGVzKCk7CisKKyAgICByZXR1cm4gKm1fY2FjaGU7Cit9CisKK2Jvb2wg
QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6c3VwcG9ydHNDb250ZW50VHlwZShjb25z
dCBDb250ZW50VHlwZSYgY29udGVudFR5cGUpCit7CisgICAgaWYgKGNvbnRlbnRUeXBlLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHR5cGVzKCkuY29udGFp
bnMoY29udGVudFR5cGUuY29udGFpbmVyVHlwZSgpKTsKK30KKworYm9vbCBBVlN0cmVhbURhdGFQ
YXJzZXJNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
Cit7CisgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgQ29udGVudFR5cGUgdHlwZSB7IG1pbWVUeXBlIH07CisKKyAgICBpZiAoIWlzQXZhaWxh
YmxlKCkgfHwgIXR5cGVzKCkuY29udGFpbnModHlwZS5jb250YWluZXJUeXBlKCkpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04p
CisgICAgLy8gRklYTUUocmRhcjovLzUwNTAyNzcxKSBBVlN0cmVhbURhdGFQYXJzZXIgZG9lcyBu
b3QgaGF2ZSBhbiAtaXNQbGF5YWJsZUV4dGVuZGVkTUlNRVR5cGU6IG1ldGhvZCwgc28ganVzdCBy
ZXBsYWNlCisgICAgLy8gdGhlIGNvbnRhaW5lciB0eXBlIHdpdGggYSB2YWxpZCBvbmUgZnJvbSBB
VkFzc2V0TUlNRVR5cGVDYWNoZSBhbmQgYXNrIHRoYXQgY2FjaGUgaWYgaXQgY2FuIGRlY29kZSB0
aGlzIHR5cGU6CisgICAgYXV0byYgYXNzZXRDYWNoZSA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpz
aW5nbGV0b24oKTsKKyAgICBpZiAoIWFzc2V0Q2FjaGUuaXNBdmFpbGFibGUoKSB8fCBhc3NldENh
Y2hlLnR5cGVzKCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgU3RyaW5n
IHJlcGxhY2VtZW50VHlwZSB7IG1pbWVUeXBlIH07CisgICAgcmVwbGFjZW1lbnRUeXBlLnJlcGxh
Y2UodHlwZS5jb250YWluZXJUeXBlKCksICphc3NldENhY2hlLnR5cGVzKCkuYmVnaW4oKSk7Cisg
ICAgcmV0dXJuIGFzc2V0Q2FjaGUuY2FuRGVjb2RlVHlwZShyZXBsYWNlbWVudFR5cGUpOworI2Vu
ZGlmCisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQVZTdHJlYW1EYXRhUGFyc2VyTUlN
RVR5cGVDYWNoZTo6aXNBdmFpbGFibGUoKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEFWRk9VTkRBVElPTikKKyNpZiBQTEFURk9STShJT1NNQUMpCisgICAgLy8gRklYTUU6IFRo
aXMgc2hvdWxkIGJlIHVzaW5nIEFWRm91bmRhdGlvbkxpYnJhcnlJc0F2YWlsYWJsZSgpIGluc3Rl
YWQsIGJ1dCBkb2luZyBzbyBjYXVzZXMgc29mdC1saW5raW5nCisgICAgLy8gdG8gc3Vic2VxdWVu
dGx5IGZhaWwgb24gY2VydGFpbiBzeW1ib2xzLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzQyMjI0Nzgw
PiBmb3IgbW9yZSBkZXRhaWxzLgorICAgIGlmICghUEFMOjpBVkZvdW5kYXRpb25MaWJyYXJ5KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgaWYgKCFBVkZvdW5kYXRpb25MaWJy
YXJ5SXNBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICBy
ZXR1cm4gW1BBTDo6Z2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKGF1ZGlvdmlzdWFsTUlNRVR5cGVzKV07CisjZWxzZQorICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZgorfQorCit2b2lkIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6
OmxvYWRNSU1FVHlwZXMoKQoreworICAgIG1fY2FjaGUgPSBIYXNoU2V0PFN0cmluZywgQVNDSUlD
YXNlSW5zZW5zaXRpdmVIYXNoPigpOworCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VO
REFUSU9OKQorICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNh
bGxfb25jZShvbmNlRmxhZywgW3RoaXNdIHsKKyAgICAgICAgaWYgKCFpc0F2YWlsYWJsZSgpKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAoTlNTdHJpbmcqIHR5cGUgaW4gW1BB
TDo6Z2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKSBhdWRpb3Zpc3VhbE1JTUVUeXBlc10pCisg
ICAgICAgICAgICBtX2NhY2hlLT5hZGQodHlwZSk7CisgICAgfSk7CisjZW5kaWYKK30KKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpDLm1t
CmluZGV4IGQzZjU0N2Y5OWM0NmY1ZGU0NzE2NWUwNWY0NDE0NjJiMzc0ZWFhNDQuLjVmYmY1MDVh
ZjdjZTVhNTI0ZWNjZGY4M2U4YzMzNThiNmFlMmVhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgSEFW
RShBVkFTU0VUUkVBREVSKQogCi0jaW1wb3J0ICJBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLmgi
CisjaW1wb3J0ICJBVkFzc2V0TUlNRVR5cGVDYWNoZS5oIgogI2ltcG9ydCAiQWZmaW5lVHJhbnNm
b3JtLmgiCiAjaW1wb3J0ICJDb250ZW50VHlwZS5oIgogI2ltcG9ydCAiRmxvYXRRdWFkLmgiCkBA
IC0zMzcsNyArMzM3LDcgQEAgSW1hZ2VEZWNvZGVyQVZGT2JqQ1NhbXBsZSogdG9TYW1wbGUoSXRl
cmF0b3IgaXRlcikKIFJlZlB0cjxJbWFnZURlY29kZXJBVkZPYmpDPiBJbWFnZURlY29kZXJBVkZP
YmpDOjpjcmVhdGUoU2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBB
bHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFB
bmRDb2xvclByb2ZpbGVPcHRpb24pCiB7CiAgICAgLy8gQVZGb3VuZGF0aW9uIG1heSBub3QgYmUg
YXZhaWxhYmxlIGF0IHJ1bnRpbWUuCi0gICAgaWYgKCFBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hl
OjpzaW5nbGV0b24oKS5pc0F2YWlsYWJsZSgpKQorICAgIGlmICghQVZBc3NldE1JTUVUeXBlQ2Fj
aGU6OnNpbmdsZXRvbigpLmlzQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgaWYgKCFjYW5Mb2FkX1ZpZGVvVG9vbGJveF9WVENyZWF0ZUNHSW1hZ2VGcm9tQ1ZQaXhl
bEJ1ZmZlcigpKQpAQCAtMzY4LDE3ICszNjgsMTcgQEAgSW1hZ2VEZWNvZGVyQVZGT2JqQzo6fklt
YWdlRGVjb2RlckFWRk9iakMoKSA9IGRlZmF1bHQ7CiAKIGJvb2wgSW1hZ2VEZWNvZGVyQVZGT2Jq
Qzo6c3VwcG9ydHNNZWRpYVR5cGUoTWVkaWFUeXBlIHR5cGUpCiB7Ci0gICAgcmV0dXJuIHR5cGUg
PT0gTWVkaWFUeXBlOjpWaWRlbyAmJiBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlOjpzaW5nbGV0
b24oKS5pc0F2YWlsYWJsZSgpOworICAgIHJldHVybiB0eXBlID09IE1lZGlhVHlwZTo6VmlkZW8g
JiYgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmlzQXZhaWxhYmxlKCk7CiB9CiAK
IGJvb2wgSW1hZ2VEZWNvZGVyQVZGT2JqQzo6c3VwcG9ydHNDb250ZW50VHlwZShjb25zdCBDb250
ZW50VHlwZSYgdHlwZSkKIHsKLSAgICByZXR1cm4gQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6
c2luZ2xldG9uKCkuc3VwcG9ydHNDb250ZW50VHlwZSh0eXBlKTsKKyAgICByZXR1cm4gQVZBc3Nl
dE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnN1cHBvcnRzQ29udGVudFR5cGUodHlwZSk7CiB9
CiAKIGJvb2wgSW1hZ2VEZWNvZGVyQVZGT2JqQzo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKQogewotICAgIHJldHVybiBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlOjpzaW5n
bGV0b24oKS5jYW5EZWNvZGVUeXBlKG1pbWVUeXBlKTsKKyAgICByZXR1cm4gQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OnNpbmdsZXRvbigpLmNhbkRlY29kZVR5cGUobWltZVR5cGUpOwogfQogCiBBVkFz
c2V0VHJhY2sgKkltYWdlRGVjb2RlckFWRk9iakM6OmZpcnN0RW5hYmxlZFRyYWNrKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCmluZGV4IDRlNWI4MjM3MmU5Yjc1OGMyNmQ0YTNlNWQ1ODAxY2ZhN2Ex
ODQwYmMuLmRhMGMyZTg4ZTU1YjZiYWRiZDgxM2ZmZWZmMmM4NzUwNTI1MmNkYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQpAQCAtMjgsOCArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFZJREVPKSAm
JiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW1wb3J0ICJBVkFzc2V0TUlNRVR5cGVDYWNoZS5oIgog
I2ltcG9ydCAiQVZBc3NldFRyYWNrVXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJBVkZvdW5kYXRpb25N
SU1FVHlwZUNhY2hlLmgiCiAjaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgiCiAj
aW1wb3J0ICJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIgogI2ltcG9ydCAiQXVkaW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmgiCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVn
aXN0cmEKIAogICAgIHJlZ2lzdHJhcihbXShNZWRpYVBsYXllciogcGxheWVyKSB7IHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+KHBsYXll
cik7IH0sCiAgICAgICAgICAgICBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCBvcmln
aW5zSW5NZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZUZvck9yaWdp
bnMsIHN1cHBvcnRzS2V5U3lzdGVtKTsKLSAgICBBU1NFUlQoQVZGb3VuZGF0aW9uTUlNRVR5cGVD
YWNoZTo6c2luZ2xldG9uKCkuaXNBdmFpbGFibGUoKSk7CisgICAgQVNTRVJUKEFWQXNzZXRNSU1F
VHlwZUNhY2hlOjpzaW5nbGV0b24oKS5pc0F2YWlsYWJsZSgpKTsKIH0KIAogc3RhdGljIEFWQXNz
ZXRDYWNoZSAqYXNzZXRDYWNoZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQpAQCAtMTUxMSw4
ICsxNTExLDggQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmNyZWF0ZUltYWdlRm9yVGltZUluUmUKIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3VwcG9ydGVkVHlwZXMpCiB7Ci0gICAgc3VwcG9y
dGVkVHlwZXMgPSBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS50eXBlcygp
OwotfSAKKyAgICBzdXBwb3J0ZWRUeXBlcyA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0
b24oKS50eXBlcygpOworfQogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiBz
dGF0aWMgYm9vbCBrZXlTeXN0ZW1Jc1N1cHBvcnRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkK
QEAgLTE1MzgsNyArMTUzOCw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0CiAgICAgaWYgKGlz
VW5zdXBwb3J0ZWRNSU1FVHlwZShjb250YWluZXJUeXBlKSkKICAgICAgICAgcmV0dXJuIE1lZGlh
UGxheWVyOjpJc05vdFN1cHBvcnRlZDsKIAotICAgIGlmICghc3RhdGljTUlNRVR5cGVMaXN0KCku
Y29udGFpbnMoY29udGFpbmVyVHlwZSkgJiYgIUFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU6OnNp
bmdsZXRvbigpLmNhbkRlY29kZVR5cGUoY29udGFpbmVyVHlwZSkpCisgICAgaWYgKCFzdGF0aWNN
SU1FVHlwZUxpc3QoKS5jb250YWlucyhjb250YWluZXJUeXBlKSAmJiAhQVZBc3NldE1JTUVUeXBl
Q2FjaGU6OnNpbmdsZXRvbigpLmNhbkRlY29kZVR5cGUoY29udGFpbmVyVHlwZSkpCiAgICAgICAg
IHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7CiAKICAgICAvLyBUaGUgc3BlYyBz
YXlzOgpAQCAtMTU2Nyw3ICsxNTY3LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3QKICAgICAg
ICAgaWYgKCFtaW1lVHlwZS5pc0VtcHR5KCkgJiYgaXNVbnN1cHBvcnRlZE1JTUVUeXBlKG1pbWVU
eXBlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoIW1pbWVUeXBl
LmlzRW1wdHkoKSAmJiAhc3RhdGljTUlNRVR5cGVMaXN0KCkuY29udGFpbnMobWltZVR5cGUpICYm
ICFBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKG1p
bWVUeXBlKSkKKyAgICAgICAgaWYgKCFtaW1lVHlwZS5pc0VtcHR5KCkgJiYgIXN0YXRpY01JTUVU
eXBlTGlzdCgpLmNvbnRhaW5zKG1pbWVUeXBlKSAmJiAhQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNp
bmdsZXRvbigpLmNhbkRlY29kZVR5cGUobWltZVR5cGUpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmlu
ZGV4IDdmYjFhNWVjMzA1YTg1NGY2NmVlMjA3NTc5ODE0YzY2MThkMWJlYzkuLjY2Mzg1ZWNjNDFj
MDNhYTY3YTQ1YmQ3OGI5OTc0MjEwMmRlOWE3ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0KQEAgLTI4LDggKzI4LDkgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShB
VkZPVU5EQVRJT04pCiAKKyNpbXBvcnQgIkFWQXNzZXRNSU1FVHlwZUNhY2hlLmgiCiAjaW1wb3J0
ICJBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCIKLSNpbXBvcnQgIkFWRm91bmRhdGlvbk1JTUVUeXBl
Q2FjaGUuaCIKKyNpbXBvcnQgIkFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaCIKICNp
bXBvcnQgIkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb24uaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29u
dGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC0xNzQsNyArMTc1LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUo
TWVkaWFFbmdpbmVSZWdpc3QKIAogICAgIHJlZ2lzdHJhcihbXShNZWRpYVBsYXllciogcGxheWVy
KSB7IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQz4ocGxheWVyKTsgfSwKICAgICAgICAgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRz
VHlwZSwgMCwgMCwgMCwgMCk7Ci0gICAgQVNTRVJUKEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU6
OnNpbmdsZXRvbigpLmlzQXZhaWxhYmxlKCkpOworICAgIEFTU0VSVChBVkFzc2V0TUlNRVR5cGVD
YWNoZTo6c2luZ2xldG9uKCkuaXNBdmFpbGFibGUoKSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppc0F2YWlsYWJsZSgpCkBAIC0xODksNyArMTkwLDE1
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppc0F2YWlsYWJs
ZSgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpnZXRTdXBw
b3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlw
ZXMpCiB7Ci0gICAgdHlwZXMgPSBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24o
KS50eXBlcygpOworICAgIGF1dG8mIHN0cmVhbURhdGFQYXJzZXJDYWNoZSA9IEFWU3RyZWFtRGF0
YVBhcnNlck1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpOworICAgIGlmIChzdHJlYW1EYXRhUGFy
c2VyQ2FjaGUuaXNBdmFpbGFibGUoKSkgeworICAgICAgICB0eXBlcyA9IHN0cmVhbURhdGFQYXJz
ZXJDYWNoZS50eXBlcygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYgYXNz
ZXRDYWNoZSA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoYXNz
ZXRDYWNoZS5pc0F2YWlsYWJsZSgpKQorICAgICAgICB0eXBlcyA9IGFzc2V0Q2FjaGUudHlwZXMo
KTsKIH0KIAogTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtMjAyLDcgKzIxMSwxNiBAQCBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNU
eXBlKGNvbgogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwogI2Vu
ZGlmCiAKLSAgICBpZiAocGFyYW1ldGVycy50eXBlLmlzRW1wdHkoKSB8fCAhQVZGb3VuZGF0aW9u
TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlwZShwYXJhbWV0ZXJzLnR5cGUu
Y29udGFpbmVyVHlwZSgpKSkKKyAgICBpZiAocGFyYW1ldGVycy50eXBlLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRlZDsKKworICAgIGlmIChBVlN0
cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5pc0F2YWlsYWJsZSgpKSB7
CisgICAgICAgIGlmICghQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9u
KCkuc3VwcG9ydHNDb250ZW50VHlwZShwYXJhbWV0ZXJzLnR5cGUpKQorICAgICAgICAgICAgcmV0
dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRlZDsKKyAgICB9IGVsc2UgaWYgKEFWQXNzZXRN
SU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5pc0F2YWlsYWJsZSgpKSB7CisgICAgICAgIGlmICgh
QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnN1cHBvcnRzQ29udGVudFR5cGUocGFy
YW1ldGVycy50eXBlKSkKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBw
b3J0ZWQ7CisgICAgfSBlbHNlCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBw
b3J0ZWQ7CiAKICAgICAvLyBUaGUgc3BlYyBzYXlzOgpAQCAtMjExLDE1ICsyMjksMTcgQEAgTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnN1cHBvcnRzVHlwZShjb24KICAgICBpZiAoY29kZWNzLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWVyOjpNYXlCZVN1cHBvcnRlZDsKIAotICAgIE5TU3RyaW5nICpvdXRw
dXRDb2RlY3MgPSBjb2RlY3M7CisgICAgU3RyaW5nIG91dHB1dENvZGVjcyA9IGNvZGVjczsKICAg
ICBpZiAoW1BBTDo6Z2V0QVZTdHJlYW1EYXRhUGFyc2VyQ2xhc3MoKSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKG91dHB1dE1JTUVDb2RlY1BhcmFtZXRlckZvcklucHV0TUlNRUNvZGVjUGFy
YW1ldGVyOildKQogICAgICAgICBvdXRwdXRDb2RlY3MgPSBbUEFMOjpnZXRBVlN0cmVhbURhdGFQ
YXJzZXJDbGFzcygpIG91dHB1dE1JTUVDb2RlY1BhcmFtZXRlckZvcklucHV0TUlNRUNvZGVjUGFy
YW1ldGVyOm91dHB1dENvZGVjc107CiAKICAgICBpZiAoIWNvbnRlbnRUeXBlTWVldHNIYXJkd2Fy
ZURlY29kZVJlcXVpcmVtZW50cyhwYXJhbWV0ZXJzLnR5cGUsIHBhcmFtZXRlcnMuY29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVy
OjpJc05vdFN1cHBvcnRlZDsKIAotICAgIE5TU3RyaW5nICp0eXBlU3RyaW5nID0gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCIlQDsgY29kZWNzPVwiJUBcIiIsIChOU1N0cmluZyAqKXBhcmFt
ZXRlcnMudHlwZS5jb250YWluZXJUeXBlKCksIChOU1N0cmluZyAqKW91dHB1dENvZGVjc107Ci0g
ICAgcmV0dXJuIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFibGVFeHRlbmRlZE1J
TUVUeXBlOnR5cGVTdHJpbmddID8gTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5
ZXI6Ok1heUJlU3VwcG9ydGVkOzsKKyAgICBTdHJpbmcgdHlwZSA9IG1ha2VTdHJpbmcocGFyYW1l
dGVycy50eXBlLmNvbnRhaW5lclR5cGUoKSwgIjsgY29kZWNzPVwiIiwgb3V0cHV0Q29kZWNzLCAi
XCIiKTsKKyAgICBpZiAoQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9u
KCkuaXNBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVU
eXBlQ2FjaGU6OnNpbmdsZXRvbigpLmNhbkRlY29kZVR5cGUodHlwZSkgPyBNZWRpYVBsYXllcjo6
SXNTdXBwb3J0ZWQgOiBNZWRpYVBsYXllcjo6TWF5QmVTdXBwb3J0ZWQ7CisgICAgcmV0dXJuIEFW
QXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKHR5cGUpID8gTWVk
aWFQbGF5ZXI6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6Ok1heUJlU3VwcG9ydGVkOwogfQog
CiAjcHJhZ21hIG1hcmsgLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNzNkZjc1Yzg2ZGRhMTIzN2VhZjViOWNjNGQzMzYzOWRi
YzgzMTE3ZC4uZjkxYzUxYzE4Zjc4Y2UzMDk1MWI0YTM2YWUyYjhlZmUzYTVkYjdmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBA
IC00OSw3ICs0OSw3IEBACiAjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgog
I2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQ29uZmlnRmlsZS5oPgogI2ltcG9ydCA8SmF2YVNjcmlw
dENvcmUvT3B0aW9ucy5oPgotI2ltcG9ydCA8V2ViQ29yZS9BVkZvdW5kYXRpb25NSU1FVHlwZUNh
Y2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0FYT2JqZWN0Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1BVTW9uaXRvci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmg+CkBAIC0y
MDYsNyArMjA2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9j
ZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICAgICBpZiAoIXBhcmFtZXRl
cnMubWVkaWFNSU1FVHlwZXMuaXNFbXB0eSgpKQogICAgICAgICBzZXRNZWRpYU1JTUVUeXBlcyhw
YXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzKTsKICAgICBlbHNlIHsKLSAgICAgICAgQVZGb3VuZGF0
aW9uTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuc2V0Q2FjaGVNSU1FVHlwZXNDYWxsYmFjayhb
dGhpc10oY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5cGVzKSB7CisgICAgICAgIEFWQXNzZXRNSU1F
VHlwZUNhY2hlOjpzaW5nbGV0b24oKS5zZXRDYWNoZU1JTUVUeXBlc0NhbGxiYWNrKFt0aGlzXShj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdHlwZXMpIHsKICAgICAgICAgICAgIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6Q2FjaGVNZWRpYU1J
TUVUeXBlcyh0eXBlcyksIDApOwogICAgICAgICB9KTsKICAgICB9CkBAIC00NjksNyArNDY5LDcg
QEAgdm9pZCBXZWJQcm9jZXNzOjpzdG9wUnVuTG9vcCgpCiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxh
dGZvcm1UZXJtaW5hdGUoKQogewotICAgIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU6OnNpbmds
ZXRvbigpLnNldENhY2hlTUlNRVR5cGVzQ2FsbGJhY2sobnVsbHB0cik7CisgICAgQVZBc3NldE1J
TUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnNldENhY2hlTUlNRVR5cGVzQ2FsbGJhY2sobnVsbHB0
cik7CiB9CiAKIFJldGFpblB0cjxDRkRhdGFSZWY+IFdlYlByb2Nlc3M6OnNvdXJjZUFwcGxpY2F0
aW9uQXVkaXREYXRhKCkgY29uc3QKQEAgLTc5OSw3ICs3OTksNyBAQCB2b2lkIFdlYlByb2Nlc3M6
OmJhY2tsaWdodExldmVsRGlkQ2hhbmdlKGZsb2F0IGJhY2tsaWdodExldmVsKQogCiB2b2lkIFdl
YlByb2Nlc3M6OnNldE1lZGlhTUlNRVR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+IHR5cGVzKQog
ewotICAgIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnNldFN1cHBvcnRl
ZFR5cGVzKHR5cGVzKTsKKyAgICBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuc2V0
U3VwcG9ydGVkVHlwZXModHlwZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369157</attachid>
            <date>2019-05-06 12:36:24 -0700</date>
            <delta_ts>2019-05-06 15:22:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-197581-20190506123623.patch</filename>
            <type>text/plain</type>
            <size>48562</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0OTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVmYTRiYmQ0MmEzOWU4
NzNiMzQ5MTI5YzdiZGEyZTI4NWFiNGIzOC4uMTZlNjc3MDkzZmZmYzk0ODVhOTI0MzNiYWRmMzQ0
ZTAyOTZkOTUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTA1LTAzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IEFWU3RyZWFtRGF0
YVBhcnNlci5hdWRpb3Zpc3VhbE1JTUVUeXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3NTgxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDQ1
ODk4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRk
IGEgbmV3IHNpbmdsZXRvbiBjbGFzcywgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZSwg
YW5kIHJlbmFtZSBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlIHRvIHRoZSBtb3JlIHByZWNpc2UK
KyAgICAgICAgQVZBc3NldE1JTUVUeXBlQ2FjaGUuICBVcGRhdGUgYWxsIHRoZSBvbGQgQVZGb3Vu
ZGF0aW9uTUlNRVR5cGVDYWNoZSB3aXRoIHRoZSBuZXcgbmFtZS4KKworICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRN
SU1FVHlwZUNhY2hlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLmguCisgICAg
ICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0Q2FjaGVNSU1FVHlwZXNDYWxs
YmFjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZB
c3NldE1JTUVUeXBlQ2FjaGUubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLm1t
LgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0U3VwcG9ydGVkVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnR5cGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRlbnRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjppc0F2YWlsYWJsZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6bG9hZE1JTUVUeXBl
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJl
YW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hl
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBl
Q2FjaGU6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJzZXJN
SU1FVHlwZUNhY2hlOjp0eXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRlbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNo
ZTo6bG9hZE1JTUVUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
RGVjb2RlckFWRk9iakM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJB
VkZPYmpDOjpzdXBwb3J0c01lZGlhVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29k
ZXJBVkZPYmpDOjpzdXBwb3J0c0NvbnRlbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
RGVjb2RlckFWRk9iakM6OmNhbkRlY29kZVR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpyZWdpc3Rlck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN1cHBvcnRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBw
b3J0c0tleVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1l
ZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUpOgorCiAyMDE5LTA1
LTAxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEhpZGUgTWVk
aWFDYXBhYmlsaXRpZXMuZW5jb2RpbmdJbmZvKCkgd2hlbiB0aGUgcGxhdGZvcm0gZG9lcyBub3Qg
c3VwcG9ydCBpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzdmZTcwYjNmYmViMzFjNDM1ZTFkYjUzOTk5ZGRlNTcz
ZGRmZGFiOC4uYmFlNzAzYzcyYzNiMmVkZDg2OGM5ZWY3MjEwNzQ4MzliMjQ1ZDZjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wNS0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KKworICAgICAgICBBZG9wdCBBVlN0cmVhbURhdGFQYXJzZXIuYXVkaW92aXN1YWxN
SU1FVHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NzU4MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTA0NTg5ODE+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9y
bVRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldE1lZGlhTUlNRVR5
cGVzKToKKwogMjAxOS0wNS0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBJbnRyb2R1Y2UgU1BJIHRvIHJlcXVlc3QgbW9kZXJuIGNvbXBhdGliaWxp
dHkgbW9kZSBidXQgZGVmZXIgdG8gc2l0ZS1zcGVjaWZpYyBxdWlya3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IDNlMGVjNGMxZGM1OWQ4ZWVkY2Q0Yzg3YjUxN2JkMWUyNjVmMTk2MjkuLmMw
ODExOThhMTcyYWIyMDk0Y2FhNjRjMmQxYTYzYTk0ODczYTg0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dApAQCAtMjMxLDggKzIzMSw5IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIEBuby11bmlmeQogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIEBuby11
bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXJNYWMuY3BwIEBuby11bmlmeQogCitwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRUcmFja1V0aWxpdGllcy5tbSBAbm8tdW5pZnkKLXBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUu
bW0gQG5vLXVuaWZ5CitwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVh
bURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1tIEBuby11bmlmeQog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMuY3BwIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24ubW0gQG5vLXVuaWZ5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NDgxZjhkZmM0MDMxYTUwYjVjZjhlNDRlMjVlNDRkZGRiMDU3MGEzNy4uZDNhZjM2MDgxNzFjY2Y5
M2M2OWNiOGQwMmY3Mjc4NWIxZTllZDJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAxLDcgKzEwMSw3IEBACiAJCTA3MEUw
OTE5MTg3NUVFRkMwMDNBMUQzQyAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwRTA5MTgxODc1RUQ5MzAwM0Ex
RDNDIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcwRTgxRDExQkYyNzY1NjAwMUZEQTQ4IC8qIFZpZGVv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3MEU4MUQwMUJGMjc2NTYwMDFGREE0OCAvKiBWaWRlb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmggKi87IH07CiAJCTA3MEY1NDk4MTdGMTJGNkIwMDE2OUUwNCAvKiBN
ZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwRjU0OTcxN0YxMkY2QjAwMTY5RTA0IC8q
IE1lZGlhU3RyZWFtQ29uc3RyYWludHNWYWxpZGF0aW9uQ2xpZW50LmggKi87IH07Ci0JCTA3MTk0
MjdGMUQwODhGMjEwMDJBQTUxRCAvKiBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDOEFEMTExRDA3M0Q2
MzAwODdDNUNFIC8qIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUubW0gKi87IH07CisJCTA3MTk0
MjdGMUQwODhGMjEwMDJBQTUxRCAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QzhBRDExMUQwNzNENjMwMDg3
QzVDRSAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSAqLzsgfTsKIAkJMDcxQTlFQzIxNjhGQkM0
MzAwMjYyOUY5IC8qIFRleHRUcmFja0N1ZUdlbmVyaWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcxQTlFQzAxNjhGQjU2QzAwMjYyOUY5IC8qIFRl
eHRUcmFja0N1ZUdlbmVyaWMuY3BwICovOyB9OwogCQkwNzFBOUVDMzE2OEZCQzU1MDAyNjI5Rjkg
LyogVGV4dFRyYWNrQ3VlR2VuZXJpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcxQTlFQzExNjhGQjU2QzAwMjYyOUY5IC8qIFRleHRUcmFja0N1ZUdl
bmVyaWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwNzFFNDk2RTFBRDVBQTBEMDA4QTUwQjQgLyogTWVkaWFQbGF5YmFja1RhcmdldE1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MUU0OTZEMUFE
NUFBMEQwMDhBNTBCNCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TWFjLm1tICovOyB9OwpAQCAtMjI3
LDcgKzIyNyw3IEBACiAJCTA3RUU3NkVDMUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDdFRTc2RUExQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDdFRTc2
RUYxQkVBNjE5ODAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0VFNzZFRDFCRUE2MTk4
MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAqLzsgfTsKIAkJMDdGMDRB
OTQyMDA2QjFFMzAwQUUyQTBBIC8qIEFwcGxpY2F0aW9uU3RhdGVDaGFuZ2VMaXN0ZW5lci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdGMDRBOTIyMDA2
ODRCQzAwQUUyQTBBIC8qIEFwcGxpY2F0aW9uU3RhdGVDaGFuZ2VMaXN0ZW5lci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTA3RjRFOTMzMjBCMzU4
N0YwMDJFMzgwMyAvKiBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0M4QUQxMjFEMDczRDYzMDA4N0M1Q0Ug
LyogQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3RjRFOTMzMjBCMzU4N0YwMDJFMzgwMyAvKiBBVkFz
c2V0TUlNRVR5cGVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDdDOEFEMTIxRDA3M0Q2MzAwODdDNUNFIC8qIEFWQXNzZXRNSU1FVHlwZUNhY2hl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDdG
ODc2ODQxQUQ1ODBGOTAwOTA1ODQ5IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0Y4NzY4MzFBRDRB
OTQ1MDA5MDU4NDkgLyogTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0Y5NDQxNjE4NjREMDQ2MDA1
RDMxQ0IgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREFFOEMwODE3NDZCOTU3MDA1MzJENzggLyog
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDdGRTk5REQxODgwN0E3RDAwMjU2NjQ4IC8qIE1lZGlh
RWxlbWVudFNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3RkU5OURCMTg4MDdBN0QwMDI1NjY0OCAvKiBNZWRpYUVsZW1lbnRTZXNzaW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM5OTcs
NiArMzk5Nyw3IEBACiAJCUNEMDYzRjgyMUUyM0ZBODkwMDgxMkJFMyAvKiBJbml0RGF0YVJlZ2lz
dHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MDYzRjgwMUUyM0ZBODkwMDgxMkJFMyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmNwcCAqLzsgfTsKIAkJ
Q0QwNjNGODMxRTIzRkE4OTAwODEyQkUzIC8qIEluaXREYXRhUmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMDYzRjgxMUUyM0ZBODkwMDgx
MkJFMyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmggKi87IH07CiAJCUNEMEVFRTBFMTQ3NDNGMzkwMDNF
QUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMEVFRTBCMTQ3NDNFMzUwMDNFQUZBMiAvKiBBdWRpb0Rl
c3RpbmF0aW9uSU9TLmNwcCAqLzsgfTsKKwkJQ0QxMUIzRTEyMjdDRTZGMzAwMjNBRkM3IC8qIEFW
U3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDExQjNFMDIyN0NBQUE5MDAyM0FGQzcgLyogQVZTdHJl
YW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5tbSAqLzsgfTsKIAkJQ0QxMjdERUUxNEYzMDk4NDAw
RTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2Vi
Q29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDRDE3QTQ1RDIxMzc0MDgxMDA3OUVDN0IgLyogVW5pZmllZFNvdXJj
ZTYyLW1tLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0QxN0E0NTkyMTM3NDAxNjAwNzlFQzdCIC8qIFVuaWZpZWRTb3VyY2U2Mi1tbS5tbSAqLzsgfTsK
IAkJQ0QxOUEyNjgxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2NzFB
MTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTQ5Myw4ICs1NDk0LDggQEAK
IAkJMDdDMUMwRTAxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJh
aW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRyYWNrU3VwcG9y
dGVkQ29uc3RyYWludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdDMUMwRTEx
QkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdDMUMwRTQxQkZCNjBFRDAwQkQyMjU2IC8q
IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWlu
dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdDOEFEMTExRDA3M0Q2MzAwODdD
NUNFIC8qIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwN0M4QUQxMjFEMDczRDYzMDA4N0M1Q0UgLyogQVZGb3Vu
ZGF0aW9uTUlNRVR5cGVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
VkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3QzhBRDExMUQwNzNENjMwMDg3QzVDRSAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWQXNzZXRNSU1FVHlwZUNhY2hl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0M4QUQxMjFEMDczRDYzMDA4N0M1
Q0UgLyogQVZBc3NldE1JTUVUeXBlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQVZBc3NldE1JTUVUeXBlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDdDRTc3RDQxNjcxMkE2QTAwQzU1QTQ3IC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0Q2MDkyNDIxNEM1
QkZCMDBFNzM5NkMgLyogV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJj
ZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdENjA5MjYyMTRDNUJGQzAw
RTczOTZDIC8qIFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzQyOSw2ICsxMzQzMCw4IEBACiAJCUNEMEM4QjU4
MjE0MUM4Q0EwMDYyRjU5RCAvKiBNZWRpYUNhcGFiaWxpdGllc0luZm8uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFDYXBhYmlsaXRpZXNJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEMEVFRTBBMTQ3NDNFMzQwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9TLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvRGVzdGluYXRpb25JT1MuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwRUVFMEIxNDc0M0UzNTAwM0VBRkEyIC8qIEF1ZGlv
RGVzdGluYXRpb25JT1MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QXVkaW9EZXN0aW5hdGlvbklPUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
MTFCM0RGMjI3Q0FBQTkwMDIzQUZDNyAvKiBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxMUIzRTAyMjdDQUFBOTAwMjNBRkM3IC8qIEFW
U3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBB
VlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5k
b3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5X
aW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxMjdERUIxNEYzMDk3OTAw
RTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTdBNDU5MjEzNzQwMTYwMDc5RUM3QiAvKiBVbmlmaWVk
U291cmNlNjItbW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSAi
VW5pZmllZFNvdXJjZTYyLW1tLm1tIjsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJDb3JlL3Vu
aWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlNjItbW0ubW0iOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwpAQCAtMjU5MjAsOCArMjU5MjMsMTAgQEAKIAkJCQlDRDU0QTc2MTE4
MEY5RjcwMDBCMDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCAq
LywKIAkJCQlDREVDQTg5OTFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVz
LmggKi8sCiAJCQkJQ0RFQ0E4OTgxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxp
dGllcy5tbSAqLywKLQkJCQkwN0M4QUQxMjFEMDczRDYzMDA4N0M1Q0UgLyogQVZGb3VuZGF0aW9u
TUlNRVR5cGVDYWNoZS5oICovLAotCQkJCTA3QzhBRDExMUQwNzNENjMwMDg3QzVDRSAvKiBBVkZv
dW5kYXRpb25NSU1FVHlwZUNhY2hlLm1tICovLAorCQkJCTA3QzhBRDEyMUQwNzNENjMwMDg3QzVD
RSAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5oICovLAorCQkJCTA3QzhBRDExMUQwNzNENjMwMDg3
QzVDRSAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSAqLywKKwkJCQlDRDExQjNERjIyN0NBQUE5
MDAyM0FGQzcgLyogQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oICovLAorCQkJCUNE
MTFCM0UwMjI3Q0FBQTkwMDIzQUZDNyAvKiBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hl
Lm1tICovLAogCQkJCUNENzhBMkVFMUY3NTY0ODYwMERFMzcxQiAvKiBDRE1JbnN0YW5jZUZhaXJQ
bGF5U3RyZWFtaW5nQVZGT2JqQy5oICovLAogCQkJCUNENzhBMkVDMUY3NTY0ODYwMERFMzcxQiAv
KiBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbSAqLywKIAkJCQlDREU1OTU5
NDFCRjE2NkQxMDBBMUNCRTggLyogQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24uaCAqLywK
QEAgLTI4MjMzLDcgKzI4MjM4LDcgQEAKIAkJCQlDREM2NzUyNzFFQUVBOUQ0MDA3MjdDODQgLyog
QVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2NzUy
MzFFQUVBOUI3MDA3MjdDODQgLyogQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwMzYzRTIxODFBMUNEQzAwQzA3NEE1IC8qIEFWQ2FwdHVy
ZURldmljZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTA3RjRFOTMzMjBCMzU4N0YwMDJF
MzgwMyAvKiBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
N0Y0RTkzMzIwQjM1ODdGMDAyRTM4MDMgLyogQVZBc3NldE1JTUVUeXBlQ2FjaGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNEMzM2RjYyMTdGOUY2NDcwMERERENEMCAvKiBBVlRyYWNrUHJpdmF0ZUFW
Rk9iakNJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzAzNjNFNjE4MUExQ0RDMDBDMDc0QTUg
LyogQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5QUUyMTJEMjFB
QjlFRUIwMDg2OTI4MyAvKiBBWElzb2xhdGVkVHJlZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjU3
Myw3ICszMjU3OCw3IEBACiAJCQkJQ0RFQ0E4OUExRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRU
cmFja1V0aWxpdGllcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQzY3NTIyMUVBRUE5QjcwMDcy
N0M4NCAvKiBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDcwMzYzRTMxODFBMUNEQzAwQzA3NEE1IC8qIEFWQ2FwdHVyZURldmljZU1hbmFn
ZXIubW0gaW4gU291cmNlcyAqLywKLQkJCQkwNzE5NDI3RjFEMDg4RjIxMDAyQUE1MUQgLyogQVZG
b3VuZGF0aW9uTUlNRVR5cGVDYWNoZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTA3MTk0MjdGMUQw
ODhGMjEwMDJBQTUxRCAvKiBBVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUNEMzM2RjYxMTdGOUY2NDcwMERERENEMCAvKiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcwMzYzRTcxODFBMUNEQzAwQzA3NEE1IC8qIEFWVmlk
ZW9DYXB0dXJlU291cmNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E0NTAzMkYxOERCNzE3MjAw
Mzc3QjM0IC8qIEJ1ZmZlcmVkTGluZVJlYWRlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMzMDE2
LDYgKzMzMDIxLDcgQEAKIAkJCQlERUNBODAzOTFGOUZFRDZBMDBFM0I2NjEgLyogVW5pZmllZFNv
dXJjZTI0OC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERUNBODAzQTFGOUZFRDZBMDBFM0I2NjEg
LyogVW5pZmllZFNvdXJjZTI0OS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERUNBODAzQjFGOUZF
RDZBMDBFM0I2NjEgLyogVW5pZmllZFNvdXJjZTI1MC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlD
RDExQjNFMTIyN0NFNkYzMDAyM0FGQzcgLyogQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNo
ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E4MDNDMUY5RkVENkEwMEUzQjY2MSAvKiBVbmlm
aWVkU291cmNlMjUxLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E4MDNEMUY5RkVENkEwMEUz
QjY2MSAvKiBVbmlmaWVkU291cmNlMjUyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E4MDNF
MUY5RkVENkEwMEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMjUzLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDZkOTJhY2IwNWFlZmM0MTdlNWI3ZTY4YTg2MjQyOTg1NzNhZDU5YQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0FWQXNzZXRNSU1FVHlwZUNhY2hlLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIENvbnRlbnRUeXBlOworCitjbGFzcyBBVkFzc2V0TUlNRVR5
cGVDYWNoZSB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEFWQXNzZXRNSU1F
VHlwZUNhY2hlJiBzaW5nbGV0b24oKTsKKworICAgIGJvb2wgc3VwcG9ydHNDb250ZW50VHlwZShj
b25zdCBDb250ZW50VHlwZSYpOworICAgIGJvb2wgY2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcm
KTsKKworICAgIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+
JiB0eXBlcygpOworICAgIGJvb2wgaXNFbXB0eSgpOworICAgIGJvb2wgaXNBdmFpbGFibGUoKSBj
b25zdDsKKworICAgIHVzaW5nIENhY2hlTUlNRVR5cGVzQ2FsbGJhY2sgPSBzdGQ6OmZ1bmN0aW9u
PHZvaWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKT47CisgICAgdm9pZCBzZXRDYWNoZU1JTUVUeXBl
c0NhbGxiYWNrKENhY2hlTUlNRVR5cGVzQ2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX2NhY2hlVHlw
ZUNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7IH0KKworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0U3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKworcHJpdmF0ZToK
KyAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+OworICAgIEFW
QXNzZXRNSU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBsb2FkTUlNRVR5cGVz
KCk7CisKKyAgICBPcHRpb25hbDxIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPj4gbV9jYWNoZTsKKyAgICBDYWNoZU1JTUVUeXBlc0NhbGxiYWNrIG1fY2FjaGVUeXBlQ2Fs
bGJhY2s7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFz
c2V0TUlNRVR5cGVDYWNoZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDAzMTM4NzRmYTg4NmU2ZWJjZjM0ZDYx
ODA1MDg0MzZmZjI1MjFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KQEAg
LTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkFWQXNzZXRNSU1FVHlwZUNh
Y2hlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKworI2ltcG9ydCAiQ29udGVudFR5cGUuaCIK
KyNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorI2ltcG9ydCA8cGFsL2NvY29h
L0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CisjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgorCisjaWYg
IVBMQVRGT1JNKElPU01BQykKK1NPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUxfUFJFRkxJR0hU
KEFWRm91bmRhdGlvbikKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FWQXNzZXRN
SU1FVHlwZUNhY2hlJiBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+IGNhY2hlOworICAgIHJl
dHVybiBjYWNoZS5nZXQoKTsKK30KKwordm9pZCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0U3Vw
cG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5cGVzKQoreworICAgIGlmIChtX2Nh
Y2hlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NhY2hlID0gSGFzaFNldDxTdHJpbmcsIEFT
Q0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4oKTsKKyAgICBmb3IgKGF1dG8mIHR5cGUgOiB0eXBlcykK
KyAgICAgICAgbV9jYWNoZS0+YWRkKHR5cGUpOworfQorCitjb25zdCBIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnR5cGVzKCkK
K3sKKyAgICBpZiAoIW1fY2FjaGUpCisgICAgICAgIGxvYWRNSU1FVHlwZXMoKTsKKworICAgIHJl
dHVybiAqbV9jYWNoZTsKK30KKworYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c3VwcG9ydHND
b250ZW50VHlwZShjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUpCit7CisgICAgaWYgKGNv
bnRlbnRUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJu
IHR5cGVzKCkuY29udGFpbnMoY29udGVudFR5cGUuY29udGFpbmVyVHlwZSgpKTsKK30KKworYm9v
bCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKQoreworICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmICghaXNBdmFpbGFibGUoKSB8fCAhdHlwZXMoKS5jb250YWlucyhDb250ZW50
VHlwZSB7IG1pbWVUeXBlIH0uY29udGFpbmVyVHlwZSgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQorICAgIHJldHVybiBb
UEFMOjpnZXRBVlVSTEFzc2V0Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTptaW1l
VHlwZV07CisjZW5kaWYKKworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6aXNBdmFpbGFibGUoKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEFWRk9VTkRBVElPTikKKyNpZiBQTEFURk9STShJT1NNQUMpCisgICAgLy8gRklYTUU6IFRo
aXMgc2hvdWxkIGJlIHVzaW5nIEFWRm91bmRhdGlvbkxpYnJhcnlJc0F2YWlsYWJsZSgpIGluc3Rl
YWQsIGJ1dCBkb2luZyBzbyBjYXVzZXMgc29mdC1saW5raW5nCisgICAgLy8gdG8gc3Vic2VxdWVu
dGx5IGZhaWwgb24gY2VydGFpbiBzeW1ib2xzLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzQyMjI0Nzgw
PiBmb3IgbW9yZSBkZXRhaWxzLgorICAgIHJldHVybiBQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3
b3JrQXZhaWxhYmxlKCk7CisjZWxzZQorICAgIHJldHVybiBBVkZvdW5kYXRpb25MaWJyYXJ5SXNB
dmFpbGFibGUoKTsKKyNlbmRpZgorI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30K
Kwordm9pZCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6bG9hZE1JTUVUeXBlcygpCit7CisgICAgbV9j
YWNoZSA9IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+KCk7CisKKyNp
ZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbdGhpc10gewor
ICAgICAgICBpZiAoIVBBTDo6aXNBVkZvdW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKE5TU3RyaW5nKiB0eXBlIGluIFtQQUw6
OmdldEFWVVJMQXNzZXRDbGFzcygpIGF1ZGlvdmlzdWFsTUlNRVR5cGVzXSkKKyAgICAgICAgICAg
IG1fY2FjaGUtPmFkZCh0eXBlKTsKKworICAgICAgICBpZiAobV9jYWNoZVR5cGVDYWxsYmFjaykK
KyAgICAgICAgICAgIG1fY2FjaGVUeXBlQ2FsbGJhY2soY29weVRvVmVjdG9yKCptX2NhY2hlKSk7
CisgICAgfSk7CisjZW5kaWYKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWRm91bmRhdGlvbk1J
TUVUeXBlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0FWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNThmNTJlMmM2MDRkOWE0NzljZjA4MzFiMzZlY2JkNDdiYTEyZGU4OC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkZvdW5kYXRpb25NSU1FVHlw
ZUNhY2hlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE2LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBQ
TEFURk9STShDT0NPQSkKLQotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgQ29udGVudFR5cGU7Ci0KLWNsYXNzIEFWRm91bmRhdGlvbk1J
TUVUeXBlQ2FjaGUgewotcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBVkZvdW5k
YXRpb25NSU1FVHlwZUNhY2hlJiBzaW5nbGV0b24oKTsKLQotICAgIGJvb2wgc3VwcG9ydHNDb250
ZW50VHlwZShjb25zdCBDb250ZW50VHlwZSYpOwotICAgIGJvb2wgY2FuRGVjb2RlVHlwZShjb25z
dCBTdHJpbmcmKTsKLQotICAgIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+JiB0eXBlcygpOwotICAgIGJvb2wgaXNFbXB0eSgpOwotICAgIGJvb2wgaXNBdmFp
bGFibGUoKSBjb25zdDsKLQotICAgIHVzaW5nIENhY2hlTUlNRVR5cGVzQ2FsbGJhY2sgPSBzdGQ6
OmZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKT47Ci0gICAgdm9pZCBzZXRDYWNo
ZU1JTUVUeXBlc0NhbGxiYWNrKENhY2hlTUlNRVR5cGVzQ2FsbGJhY2smJiBjYWxsYmFjaykgeyBt
X2NhY2hlVHlwZUNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7IH0KLQotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0U3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKLQot
cHJpdmF0ZToKLSAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8QVZGb3VuZGF0aW9uTUlNRVR5cGVD
YWNoZT47Ci0gICAgQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZSgpID0gZGVmYXVsdDsKLQotICAg
IHZvaWQgbG9hZE1JTUVUeXBlcygpOwotCi0gICAgT3B0aW9uYWw8SGFzaFNldDxTdHJpbmcsIEFT
Q0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+IG1fY2FjaGU7Ci0gICAgQ2FjaGVNSU1FVHlwZXNDYWxs
YmFjayBtX2NhY2hlVHlwZUNhbGxiYWNrOwotfTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWRm91
bmRhdGlvbk1JTUVUeXBlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9BVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlLm1tCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTJmMDc3N2IzYjI5YzI0M2FjNjI5NTg2M2I4YmFlZDRk
NWY2NDQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWRm91bmRh
dGlvbk1JTUVUeXBlQ2FjaGUubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbXBvcnQg
ImNvbmZpZy5oIgotI2ltcG9ydCAiQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZS5oIgotCi0jaWYg
UExBVEZPUk0oQ09DT0EpCi0KLSNpbXBvcnQgIkNvbnRlbnRUeXBlLmgiCi0jaW1wb3J0IDx3dGYv
SGFzaFNldC5oPgotCi0jaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KLSNpbXBv
cnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgotCi0jaWYgIVBMQVRGT1JNKElP
U01BQykKLVNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUxfUFJFRkxJR0hUKEFWRm91bmRhdGlv
bikKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUFWRm91bmRhdGlvbk1JTUVUeXBl
Q2FjaGUmIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpCi17Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU+IGNhY2hlOwotICAg
IHJldHVybiBjYWNoZS5nZXQoKTsKLX0KLQotdm9pZCBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hl
OjpzZXRTdXBwb3J0ZWRUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdHlwZXMpCi17Ci0gICAg
aWYgKG1fY2FjaGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY2FjaGUgPSBIYXNoU2V0PFN0
cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPigpOwotICAgIGZvciAoYXV0byYgdHlwZSA6
IHR5cGVzKQotICAgICAgICBtX2NhY2hlLT5hZGQodHlwZSk7Ci19Ci0KLWNvbnN0IEhhc2hTZXQ8
U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBBVkZvdW5kYXRpb25NSU1FVHlwZUNh
Y2hlOjp0eXBlcygpCi17Ci0gICAgaWYgKCFtX2NhY2hlKQotICAgICAgICBsb2FkTUlNRVR5cGVz
KCk7Ci0KLSAgICByZXR1cm4gKm1fY2FjaGU7Ci19Ci0KLWJvb2wgQVZGb3VuZGF0aW9uTUlNRVR5
cGVDYWNoZTo6c3VwcG9ydHNDb250ZW50VHlwZShjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5
cGUpCi17Ci0gICAgaWYgKGNvbnRlbnRUeXBlLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgcmV0dXJuIHR5cGVzKCkuY29udGFpbnMoY29udGVudFR5cGUuY29udGFpbmVy
VHlwZSgpKTsKLX0KLQotYm9vbCBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVU
eXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCi17Ci0gICAgaWYgKG1pbWVUeXBlLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFpc0F2YWlsYWJsZSgpIHx8ICF0
eXBlcygpLmNvbnRhaW5zKENvbnRlbnRUeXBlIHsgbWltZVR5cGUgfS5jb250YWluZXJUeXBlKCkp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZP
VU5EQVRJT04pCi0gICAgcmV0dXJuIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFi
bGVFeHRlbmRlZE1JTUVUeXBlOm1pbWVUeXBlXTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIGZhbHNl
OwotfQotCi1ib29sIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGU6OmlzQXZhaWxhYmxlKCkgY29u
c3QKLXsKLSNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCi0jaWYgUExBVEZP
Uk0oSU9TTUFDKQotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB1c2luZyBBVkZvdW5kYXRp
b25MaWJyYXJ5SXNBdmFpbGFibGUoKSBpbnN0ZWFkLCBidXQgZG9pbmcgc28gY2F1c2VzIHNvZnQt
bGlua2luZwotICAgIC8vIHRvIHN1YnNlcXVlbnRseSBmYWlsIG9uIGNlcnRhaW4gc3ltYm9scy4g
U2VlIDxyZGFyOi8vcHJvYmxlbS80MjIyNDc4MD4gZm9yIG1vcmUgZGV0YWlscy4KLSAgICByZXR1
cm4gUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpOwotI2Vsc2UKLSAgICBy
ZXR1cm4gQVZGb3VuZGF0aW9uTGlicmFyeUlzQXZhaWxhYmxlKCk7Ci0jZW5kaWYKLSNlbHNlCi0g
ICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KLXZvaWQgQVZGb3VuZGF0aW9uTUlNRVR5cGVD
YWNoZTo6bG9hZE1JTUVUeXBlcygpCi17Ci0gICAgbV9jYWNoZSA9IEhhc2hTZXQ8U3RyaW5nLCBB
U0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+KCk7Ci0KLSNpZiBFTkFCTEUoVklERU8pICYmIFVTRShB
VkZPVU5EQVRJT04pCi0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0
ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbdGhpc10gewotICAgICAgICBpZiAoIVBBTDo6aXNBVkZv
dW5kYXRpb25GcmFtZXdvcmtBdmFpbGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBmb3IgKE5TU3RyaW5nKiB0eXBlIGluIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGF1
ZGlvdmlzdWFsTUlNRVR5cGVzXSkKLSAgICAgICAgICAgIG1fY2FjaGUtPmFkZCh0eXBlKTsKLQot
ICAgICAgICBpZiAobV9jYWNoZVR5cGVDYWxsYmFjaykKLSAgICAgICAgICAgIG1fY2FjaGVUeXBl
Q2FsbGJhY2soY29weVRvVmVjdG9yKCptX2NhY2hlKSk7Ci0gICAgfSk7Ci0jZW5kaWYKLX0KLQot
fQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFt
RGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYWJjYzNkMjFhYzRlZWMzY2Nj
YjBmMzUyZTY0ZjMwMDg3NTZiODg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlN
RVR5cGVDYWNoZS5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIFBMQVRGT1JNKENPQ09BKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDb250ZW50VHlwZTsKKworY2xhc3MgQVZTdHJl
YW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZSB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUmIHNpbmdsZXRvbigpOworCisg
ICAgYm9vbCBzdXBwb3J0c0NvbnRlbnRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJik7CisgICAgYm9v
bCBjYW5EZWNvZGVUeXBlKGNvbnN0IFN0cmluZyYpOworCisgICAgY29uc3QgSGFzaFNldDxTdHJp
bmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHR5cGVzKCk7CisgICAgYm9vbCBpc0VtcHR5
KCk7CisgICAgYm9vbCBpc0F2YWlsYWJsZSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIGZyaWVu
ZCBOZXZlckRlc3Ryb3llZDxBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlPjsKKyAgICBB
VlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBs
b2FkTUlNRVR5cGVzKCk7CisKKyAgICBPcHRpb25hbDxIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPj4gbV9jYWNoZTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0
cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNo
ZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iOTFkZTRkNGRjMTc4MTJlMGZmM2FiN2MwZDc4OTdlODQ1YmE2ZDkz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5tbQpAQCAtMCww
ICsxLDEyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQVZT
dHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisK
KyNpbXBvcnQgIkFWQXNzZXRNSU1FVHlwZUNhY2hlLmgiCisjaW1wb3J0ICJDb250ZW50VHlwZS5o
IgorI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KKyNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CisKKyNp
ZiAhUExBVEZPUk0oSU9TTUFDKQorU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTF9QUkVGTElH
SFQoQVZGb3VuZGF0aW9uKQorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQVZTdHJl
YW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZSYgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNo
ZTo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QVZTdHJlYW1EYXRh
UGFyc2VyTUlNRVR5cGVDYWNoZT4gY2FjaGU7CisgICAgcmV0dXJuIGNhY2hlLmdldCgpOworfQor
Citjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgQVZTdHJl
YW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6dHlwZXMoKQoreworICAgIGlmICghbV9jYWNoZSkK
KyAgICAgICAgbG9hZE1JTUVUeXBlcygpOworCisgICAgcmV0dXJuICptX2NhY2hlOworfQorCiti
b29sIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OnN1cHBvcnRzQ29udGVudFR5cGUo
Y29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlKQoreworICAgIGlmIChjb250ZW50VHlwZS5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0eXBlcygpLmNv
bnRhaW5zKGNvbnRlbnRUeXBlLmNvbnRhaW5lclR5cGUoKSk7Cit9CisKK2Jvb2wgQVZTdHJlYW1E
YXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKQoreworICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIENvbnRlbnRUeXBlIHR5cGUgeyBtaW1lVHlwZSB9OworCisgICAgaWYgKCFpc0F2
YWlsYWJsZSgpIHx8ICF0eXBlcygpLmNvbnRhaW5zKHR5cGUuY29udGFpbmVyVHlwZSgpKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFU
SU9OKQorICAgIC8vIEZJWE1FKHJkYXI6Ly81MDUwMjc3MSkgQVZTdHJlYW1EYXRhUGFyc2VyIGRv
ZXMgbm90IGhhdmUgYW4gLWlzUGxheWFibGVFeHRlbmRlZE1JTUVUeXBlOiBtZXRob2QsIHNvIGp1
c3QgcmVwbGFjZQorICAgIC8vIHRoZSBjb250YWluZXIgdHlwZSB3aXRoIGEgdmFsaWQgb25lIGZy
b20gQVZBc3NldE1JTUVUeXBlQ2FjaGUgYW5kIGFzayB0aGF0IGNhY2hlIGlmIGl0IGNhbiBkZWNv
ZGUgdGhpcyB0eXBlOgorICAgIGF1dG8mIGFzc2V0Q2FjaGUgPSBBVkFzc2V0TUlNRVR5cGVDYWNo
ZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKCFhc3NldENhY2hlLmlzQXZhaWxhYmxlKCkgfHwgYXNz
ZXRDYWNoZS50eXBlcygpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFN0
cmluZyByZXBsYWNlbWVudFR5cGUgeyBtaW1lVHlwZSB9OworICAgIHJlcGxhY2VtZW50VHlwZS5y
ZXBsYWNlKHR5cGUuY29udGFpbmVyVHlwZSgpLCAqYXNzZXRDYWNoZS50eXBlcygpLmJlZ2luKCkp
OworICAgIHJldHVybiBhc3NldENhY2hlLmNhbkRlY29kZVR5cGUocmVwbGFjZW1lbnRUeXBlKTsK
KyNlbmRpZgorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFWU3RyZWFtRGF0YVBhcnNl
ck1JTUVUeXBlQ2FjaGU6OmlzQXZhaWxhYmxlKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8p
ICYmIFVTRShBVkZPVU5EQVRJT04pCisjaWYgUExBVEZPUk0oSU9TTUFDKQorICAgIC8vIEZJWE1F
OiBUaGlzIHNob3VsZCBiZSB1c2luZyBBVkZvdW5kYXRpb25MaWJyYXJ5SXNBdmFpbGFibGUoKSBp
bnN0ZWFkLCBidXQgZG9pbmcgc28gY2F1c2VzIHNvZnQtbGlua2luZworICAgIC8vIHRvIHN1YnNl
cXVlbnRseSBmYWlsIG9uIGNlcnRhaW4gc3ltYm9scy4gU2VlIDxyZGFyOi8vcHJvYmxlbS80MjIy
NDc4MD4gZm9yIG1vcmUgZGV0YWlscy4KKyAgICBpZiAoIVBBTDo6QVZGb3VuZGF0aW9uTGlicmFy
eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgIGlmICghQVZGb3VuZGF0aW9u
TGlicmFyeUlzQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorCisg
ICAgcmV0dXJuIFtQQUw6OmdldEFWU3RyZWFtRGF0YVBhcnNlckNsYXNzKCkgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3RvcihhdWRpb3Zpc3VhbE1JTUVUeXBlcyldOworI2Vsc2UKKyAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKK30KKwordm9pZCBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNh
Y2hlOjpsb2FkTUlNRVR5cGVzKCkKK3sKKyAgICBtX2NhY2hlID0gSGFzaFNldDxTdHJpbmcsIEFT
Q0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4oKTsKKworI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFW
Rk9VTkRBVElPTikKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3Rk
OjpjYWxsX29uY2Uob25jZUZsYWcsIFt0aGlzXSB7CisgICAgICAgIGlmICghaXNBdmFpbGFibGUo
KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKE5TU3RyaW5nKiB0eXBlIGlu
IFtQQUw6OmdldEFWU3RyZWFtRGF0YVBhcnNlckNsYXNzKCkgYXVkaW92aXN1YWxNSU1FVHlwZXNd
KQorICAgICAgICAgICAgbV9jYWNoZS0+YWRkKHR5cGUpOworICAgIH0pOworI2VuZGlmCit9CisK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW1hZ2VEZWNvZGVyQVZGT2Jq
Qy5tbQppbmRleCBkM2Y1NDdmOTljNDZmNWRlNDcxNjVlMDVmNDQxNDYyYjM3NGVhYTQ0Li41ZmJm
NTA1YWY3Y2U1YTUyNGVjY2RmODNlOGMzMzU4YjZhZTJlYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJB
VkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMubW0KQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lm
IEhBVkUoQVZBU1NFVFJFQURFUikKIAotI2ltcG9ydCAiQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNo
ZS5oIgorI2ltcG9ydCAiQVZBc3NldE1JTUVUeXBlQ2FjaGUuaCIKICNpbXBvcnQgIkFmZmluZVRy
YW5zZm9ybS5oIgogI2ltcG9ydCAiQ29udGVudFR5cGUuaCIKICNpbXBvcnQgIkZsb2F0UXVhZC5o
IgpAQCAtMzM3LDcgKzMzNyw3IEBAIEltYWdlRGVjb2RlckFWRk9iakNTYW1wbGUqIHRvU2FtcGxl
KEl0ZXJhdG9yIGl0ZXIpCiBSZWZQdHI8SW1hZ2VEZWNvZGVyQVZGT2JqQz4gSW1hZ2VEZWNvZGVy
QVZGT2JqQzo6Y3JlYXRlKFNoYXJlZEJ1ZmZlciYgZGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgQWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdh
bW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQogewogICAgIC8vIEFWRm91bmRhdGlvbiBtYXkgbm90
IGJlIGF2YWlsYWJsZSBhdCBydW50aW1lLgotICAgIGlmICghQVZGb3VuZGF0aW9uTUlNRVR5cGVD
YWNoZTo6c2luZ2xldG9uKCkuaXNBdmFpbGFibGUoKSkKKyAgICBpZiAoIUFWQXNzZXRNSU1FVHlw
ZUNhY2hlOjpzaW5nbGV0b24oKS5pc0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIGlmICghY2FuTG9hZF9WaWRlb1Rvb2xib3hfVlRDcmVhdGVDR0ltYWdlRnJvbUNW
UGl4ZWxCdWZmZXIoKSkKQEAgLTM2OCwxNyArMzY4LDE3IEBAIEltYWdlRGVjb2RlckFWRk9iakM6
On5JbWFnZURlY29kZXJBVkZPYmpDKCkgPSBkZWZhdWx0OwogCiBib29sIEltYWdlRGVjb2RlckFW
Rk9iakM6OnN1cHBvcnRzTWVkaWFUeXBlKE1lZGlhVHlwZSB0eXBlKQogewotICAgIHJldHVybiB0
eXBlID09IE1lZGlhVHlwZTo6VmlkZW8gJiYgQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6c2lu
Z2xldG9uKCkuaXNBdmFpbGFibGUoKTsKKyAgICByZXR1cm4gdHlwZSA9PSBNZWRpYVR5cGU6OlZp
ZGVvICYmIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5pc0F2YWlsYWJsZSgpOwog
fQogCiBib29sIEltYWdlRGVjb2RlckFWRk9iakM6OnN1cHBvcnRzQ29udGVudFR5cGUoY29uc3Qg
Q29udGVudFR5cGUmIHR5cGUpCiB7Ci0gICAgcmV0dXJuIEFWRm91bmRhdGlvbk1JTUVUeXBlQ2Fj
aGU6OnNpbmdsZXRvbigpLnN1cHBvcnRzQ29udGVudFR5cGUodHlwZSk7CisgICAgcmV0dXJuIEFW
QXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5zdXBwb3J0c0NvbnRlbnRUeXBlKHR5cGUp
OwogfQogCiBib29sIEltYWdlRGVjb2RlckFWRk9iakM6OmNhbkRlY29kZVR5cGUoY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSkKIHsKLSAgICByZXR1cm4gQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6
c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlwZShtaW1lVHlwZSk7CisgICAgcmV0dXJuIEFWQXNzZXRN
SU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKG1pbWVUeXBlKTsKIH0KIAog
QVZBc3NldFRyYWNrICpJbWFnZURlY29kZXJBVkZPYmpDOjpmaXJzdEVuYWJsZWRUcmFjaygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBhOWQ3ZWJlN2EwYzU1YmM4ZmQzMTUyN2RiMWY4NjM4
OWViYzU4NjU0Li5lN2ViY2M0NmQ3MmE2OTJkMTBjOGNiY2M1YzVkNjMzZjUzNzdlNDI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTI4LDggKzI4LDggQEAKIAogI2lmIEVOQUJMRShWSURF
TykgJiYgVVNFKEFWRk9VTkRBVElPTikKIAorI2ltcG9ydCAiQVZBc3NldE1JTUVUeXBlQ2FjaGUu
aCIKICNpbXBvcnQgIkFWQXNzZXRUcmFja1V0aWxpdGllcy5oIgotI2ltcG9ydCAiQVZGb3VuZGF0
aW9uTUlNRVR5cGVDYWNoZS5oIgogI2ltcG9ydCAiQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5o
IgogI2ltcG9ydCAiQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCIKICNpbXBvcnQgIkF1ZGlv
VHJhY2tQcml2YXRlQVZGT2JqQy5oIgpAQCAtMjQwLDcgKzI0MCw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2lu
ZVJlZ2lzdHJhCiAKICAgICByZWdpc3RyYXIoW10oTWVkaWFQbGF5ZXIqIHBsYXllcikgeyByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPihw
bGF5ZXIpOyB9LAogICAgICAgICAgICAgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwg
b3JpZ2luc0luTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGVGb3JP
cmlnaW5zLCBzdXBwb3J0c0tleVN5c3RlbSk7Ci0gICAgQVNTRVJUKEFWRm91bmRhdGlvbk1JTUVU
eXBlQ2FjaGU6OnNpbmdsZXRvbigpLmlzQXZhaWxhYmxlKCkpOworICAgIEFTU0VSVChBVkFzc2V0
TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuaXNBdmFpbGFibGUoKSk7CiB9CiAKIHN0YXRpYyBB
VkFzc2V0Q2FjaGUgKmFzc2V0Q2FjaGVGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKQEAgLTE1
MTEsOCArMTUxMSw4IEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGVJbWFnZUZvclRpbWVJblJlCiAKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJp
bmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN1cHBvcnRlZFR5cGVzKQogewotICAgIHN1
cHBvcnRlZFR5cGVzID0gQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkudHlw
ZXMoKTsKLX0gCisgICAgc3VwcG9ydGVkVHlwZXMgPSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2lu
Z2xldG9uKCkudHlwZXMoKTsKK30KIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElB
KQogc3RhdGljIGJvb2wga2V5U3lzdGVtSXNTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiBrZXlTeXN0
ZW0pCkBAIC0xNTM4LDcgKzE1MzgsNyBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZShjb25zdAogICAgIGlm
IChpc1Vuc3VwcG9ydGVkTUlNRVR5cGUoY29udGFpbmVyVHlwZSkpCiAgICAgICAgIHJldHVybiBN
ZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBpZiAoIXN0YXRpY01JTUVUeXBlTGlz
dCgpLmNvbnRhaW5zKGNvbnRhaW5lclR5cGUpICYmICFBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hl
OjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKGNvbnRhaW5lclR5cGUpKQorICAgIGlmICghc3Rh
dGljTUlNRVR5cGVMaXN0KCkuY29udGFpbnMoY29udGFpbmVyVHlwZSkgJiYgIUFWQXNzZXRNSU1F
VHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKGNvbnRhaW5lclR5cGUpKQogICAg
ICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwogCiAgICAgLy8gVGhlIHNw
ZWMgc2F5czoKQEAgLTE1NjcsNyArMTU2Nyw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0CiAg
ICAgICAgIGlmICghbWltZVR5cGUuaXNFbXB0eSgpICYmIGlzVW5zdXBwb3J0ZWRNSU1FVHlwZSht
aW1lVHlwZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKCFtaW1l
VHlwZS5pc0VtcHR5KCkgJiYgIXN0YXRpY01JTUVUeXBlTGlzdCgpLmNvbnRhaW5zKG1pbWVUeXBl
KSAmJiAhQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlw
ZShtaW1lVHlwZSkpCisgICAgICAgIGlmICghbWltZVR5cGUuaXNFbXB0eSgpICYmICFzdGF0aWNN
SU1FVHlwZUxpc3QoKS5jb250YWlucyhtaW1lVHlwZSkgJiYgIUFWQXNzZXRNSU1FVHlwZUNhY2hl
OjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKG1pbWVUeXBlKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bQppbmRleCAzMzE2NTlkM2M0YWMwODMzNzVhYzg4MTY4ODA5MzMyMDg1OGNlZDQ1Li4yNTEzYjRi
YWI3ZTUyNTRjNDM5YzhhZDMzZmY5NjVkOWQ4YWNjMTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCkBAIC0yOCw4ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBV
U0UoQVZGT1VOREFUSU9OKQogCisjaW1wb3J0ICJBVkFzc2V0TUlNRVR5cGVDYWNoZS5oIgogI2lt
cG9ydCAiQVZBc3NldFRyYWNrVXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJBVkZvdW5kYXRpb25NSU1F
VHlwZUNhY2hlLmgiCisjaW1wb3J0ICJBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLmgi
CiAjaW1wb3J0ICJDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLmgiCiAjaW1wb3J0ICJHcmFwaGlj
c0NvbnRleHRDRy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgpAQCAtMTc0LDcgKzE3NSw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5n
aW5lKE1lZGlhRW5naW5lUmVnaXN0CiAKICAgICByZWdpc3RyYXIoW10oTWVkaWFQbGF5ZXIqIHBs
YXllcikgeyByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM+KHBsYXllcik7IH0sCiAgICAgICAgIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBw
b3J0c1R5cGUsIDAsIDAsIDAsIDApOwotICAgIEFTU0VSVChBVkZvdW5kYXRpb25NSU1FVHlwZUNh
Y2hlOjpzaW5nbGV0b24oKS5pc0F2YWlsYWJsZSgpKTsKKyAgICBBU1NFUlQoQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OnNpbmdsZXRvbigpLmlzQXZhaWxhYmxlKCkpOwogfQogCiBib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFpbGFibGUoKQpAQCAtMTg5LDcgKzE5
MCwxNSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFp
bGFibGUoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Z2V0
U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4m
IHR5cGVzKQogewotICAgIHR5cGVzID0gQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZTo6c2luZ2xl
dG9uKCkudHlwZXMoKTsKKyAgICBhdXRvJiBzdHJlYW1EYXRhUGFyc2VyQ2FjaGUgPSBBVlN0cmVh
bURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoc3RyZWFtRGF0
YVBhcnNlckNhY2hlLmlzQXZhaWxhYmxlKCkpIHsKKyAgICAgICAgdHlwZXMgPSBzdHJlYW1EYXRh
UGFyc2VyQ2FjaGUudHlwZXMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8m
IGFzc2V0Q2FjaGUgPSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCk7CisgICAgaWYg
KGFzc2V0Q2FjaGUuaXNBdmFpbGFibGUoKSkKKyAgICAgICAgdHlwZXMgPSBhc3NldENhY2hlLnR5
cGVzKCk7CiB9CiAKIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKQEAgLTIwMiw3ICsyMTEsMTYgQEAgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBv
cnRzVHlwZShjb24KICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRlZDsK
ICNlbmRpZgogCi0gICAgaWYgKHBhcmFtZXRlcnMudHlwZS5pc0VtcHR5KCkgfHwgIUFWRm91bmRh
dGlvbk1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmNhbkRlY29kZVR5cGUocGFyYW1ldGVycy50
eXBlLmNvbnRhaW5lclR5cGUoKSkpCisgICAgaWYgKHBhcmFtZXRlcnMudHlwZS5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7CisKKyAgICBpZiAo
QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuaXNBdmFpbGFibGUo
KSkgeworICAgICAgICBpZiAoIUFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OnNpbmds
ZXRvbigpLnN1cHBvcnRzQ29udGVudFR5cGUocGFyYW1ldGVycy50eXBlKSkKKyAgICAgICAgICAg
IHJldHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7CisgICAgfSBlbHNlIGlmIChBVkFz
c2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuaXNBdmFpbGFibGUoKSkgeworICAgICAgICBp
ZiAoIUFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5zdXBwb3J0c0NvbnRlbnRUeXBl
KHBhcmFtZXRlcnMudHlwZSkpCisgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90
U3VwcG9ydGVkOworICAgIH0gZWxzZQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90
U3VwcG9ydGVkOwogCiAgICAgLy8gVGhlIHNwZWMgc2F5czoKQEAgLTIxMSwxNSArMjI5LDE3IEBA
IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uCiAgICAgaWYgKGNvZGVjcy5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBNZWRpYVBsYXllcjo6TWF5QmVTdXBwb3J0ZWQ7CiAKLSAgICBOU1N0cmluZyAq
b3V0cHV0Q29kZWNzID0gY29kZWNzOworICAgIFN0cmluZyBvdXRwdXRDb2RlY3MgPSBjb2RlY3M7
CiAgICAgaWYgKFtQQUw6OmdldEFWU3RyZWFtRGF0YVBhcnNlckNsYXNzKCkgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3RvcihvdXRwdXRNSU1FQ29kZWNQYXJhbWV0ZXJGb3JJbnB1dE1JTUVDb2Rl
Y1BhcmFtZXRlcjopXSkKICAgICAgICAgb3V0cHV0Q29kZWNzID0gW1BBTDo6Z2V0QVZTdHJlYW1E
YXRhUGFyc2VyQ2xhc3MoKSBvdXRwdXRNSU1FQ29kZWNQYXJhbWV0ZXJGb3JJbnB1dE1JTUVDb2Rl
Y1BhcmFtZXRlcjpvdXRwdXRDb2RlY3NdOwogCiAgICAgaWYgKCFjb250ZW50VHlwZU1lZXRzSGFy
ZHdhcmVEZWNvZGVSZXF1aXJlbWVudHMocGFyYW1ldGVycy50eXBlLCBwYXJhbWV0ZXJzLmNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBs
YXllcjo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBOU1N0cmluZyAqdHlwZVN0cmluZyA9IFtOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUA7IGNvZGVjcz1cIiVAXCIiLCAoTlNTdHJpbmcgKilw
YXJhbWV0ZXJzLnR5cGUuY29udGFpbmVyVHlwZSgpLCAoTlNTdHJpbmcgKilvdXRwdXRDb2RlY3Nd
OwotICAgIHJldHVybiBbUEFMOjpnZXRBVlVSTEFzc2V0Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5k
ZWRNSU1FVHlwZTp0eXBlU3RyaW5nXSA/IE1lZGlhUGxheWVyOjpJc1N1cHBvcnRlZCA6IE1lZGlh
UGxheWVyOjpNYXlCZVN1cHBvcnRlZDs7CisgICAgU3RyaW5nIHR5cGUgPSBtYWtlU3RyaW5nKHBh
cmFtZXRlcnMudHlwZS5jb250YWluZXJUeXBlKCksICI7IGNvZGVjcz1cIiIsIG91dHB1dENvZGVj
cywgIlwiIik7CisgICAgaWYgKEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OnNpbmds
ZXRvbigpLmlzQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiBBVlN0cmVhbURhdGFQYXJzZXJN
SU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKHR5cGUpID8gTWVkaWFQbGF5
ZXI6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6Ok1heUJlU3VwcG9ydGVkOworICAgIHJldHVy
biBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlwZSh0eXBlKSA/
IE1lZGlhUGxheWVyOjpJc1N1cHBvcnRlZCA6IE1lZGlhUGxheWVyOjpNYXlCZVN1cHBvcnRlZDsK
IH0KIAogI3ByYWdtYSBtYXJrIC0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDczZGY3NWM4NmRkYTEyMzdlYWY1YjljYzRkMzM2
MzlkYmM4MzExN2QuLmY5MWM1MWMxOGY3OGNlMzA5NTFiNGEzNmFlMmI4ZWZlM2E1ZGI3ZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQpAQCAtNDksNyArNDksNyBAQAogI2ltcG9ydCAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMu
aCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0NvbmZpZ0ZpbGUuaD4KICNpbXBvcnQgPEphdmFT
Y3JpcHRDb3JlL09wdGlvbnMuaD4KLSNpbXBvcnQgPFdlYkNvcmUvQVZGb3VuZGF0aW9uTUlNRVR5
cGVDYWNoZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NQVU1vbml0
b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oPgpA
QCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAgICAgaWYgKCFwYXJh
bWV0ZXJzLm1lZGlhTUlNRVR5cGVzLmlzRW1wdHkoKSkKICAgICAgICAgc2V0TWVkaWFNSU1FVHlw
ZXMocGFyYW1ldGVycy5tZWRpYU1JTUVUeXBlcyk7CiAgICAgZWxzZSB7Ci0gICAgICAgIEFWRm91
bmRhdGlvbk1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnNldENhY2hlTUlNRVR5cGVzQ2FsbGJh
Y2soW3RoaXNdKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0eXBlcykgeworICAgICAgICBBVkFzc2V0
TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuc2V0Q2FjaGVNSU1FVHlwZXNDYWxsYmFjayhbdGhp
c10oY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5cGVzKSB7CiAgICAgICAgICAgICBwYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNhY2hlTWVk
aWFNSU1FVHlwZXModHlwZXMpLCAwKTsKICAgICAgICAgfSk7CiAgICAgfQpAQCAtNDY5LDcgKzQ2
OSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6c3RvcFJ1bkxvb3AoKQogCiB2b2lkIFdlYlByb2Nlc3M6
OnBsYXRmb3JtVGVybWluYXRlKCkKIHsKLSAgICBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlOjpz
aW5nbGV0b24oKS5zZXRDYWNoZU1JTUVUeXBlc0NhbGxiYWNrKG51bGxwdHIpOworICAgIEFWQXNz
ZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5zZXRDYWNoZU1JTUVUeXBlc0NhbGxiYWNrKG51
bGxwdHIpOwogfQogCiBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBXZWJQcm9jZXNzOjpzb3VyY2VBcHBs
aWNhdGlvbkF1ZGl0RGF0YSgpIGNvbnN0CkBAIC03OTksNyArNzk5LDcgQEAgdm9pZCBXZWJQcm9j
ZXNzOjpiYWNrbGlnaHRMZXZlbERpZENoYW5nZShmbG9hdCBiYWNrbGlnaHRMZXZlbCkKIAogdm9p
ZCBXZWJQcm9jZXNzOjpzZXRNZWRpYU1JTUVUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiB0eXBl
cykKIHsKLSAgICBBVkZvdW5kYXRpb25NSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5zZXRTdXBw
b3J0ZWRUeXBlcyh0eXBlcyk7CisgICAgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigp
LnNldFN1cHBvcnRlZFR5cGVzKHR5cGVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>