<?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>160952</bug_id>
          
          <creation_ts>2016-08-17 18:30:29 -0700</creation_ts>
          <short_desc>Wrapper for an adopted node can be created in inconsistent global objects</short_desc>
          <delta_ts>2016-08-22 14:56:28 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221026</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-17 18:30:29 -0700</bug_when>
    <thetext>When a node is adopted into another document without first having a JS wrapper,
its wrapper could be created in either the original document&apos;s or new document&apos;s global object
depending on how those nodes are accessed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221027</commentid>
    <comment_count>1</comment_count>
      <attachid>286353</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-17 18:30:52 -0700</bug_when>
    <thetext>Created attachment 286353
Demo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221028</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-17 18:36:05 -0700</bug_when>
    <thetext>In this demo, a div element is created in document A, and span and b elements are created as descendants of the div via div.innerHTML. The div is then adopted into another document B.

When accessing the span and the b elements in document B, the manner of accessing those nodes determine the global object in which the wrappers are created.  If we&apos;re creating via .firstChild or any other property or any method of the div, then we&apos;d create a wrapper using document A&apos;s global object.  If it&apos;s done via properties or methods on any other object whose global object is that of document B, then we&apos;d create a wrapper using the global object of document B.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221238</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-08-18 16:18:31 -0700</bug_when>
    <thetext>I think the best way to fix this is probably to eagerly reify all wrappers when adopting a node between documents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221984</commentid>
    <comment_count>4</comment_count>
      <attachid>286622</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-22 14:56:03 -0700</bug_when>
    <thetext>Created attachment 286622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221986</commentid>
    <comment_count>5</comment_count>
      <attachid>286622</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-22 14:56:28 -0700</bug_when>
    <thetext>Comment on attachment 286622
Patch

Oops, wrong bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>286353</attachid>
            <date>2016-08-17 18:30:52 -0700</date>
            <delta_ts>2016-08-17 18:30:52 -0700</delta_ts>
            <desc>Demo</desc>
            <filename>proto.html</filename>
            <type>text/html</type>
            <size>1273</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8Ym9keT4KPHNjcmlwdD4KCnZhciBpZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKaWZyYW1lLnN0eWxlLndpZHRoID0gJzYwMHB4
JzsKaWZyYW1lLnN0eWxlLmhlaWdodCA9ICc0MDBweCc7CnZhciBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKZGl2LmlubmVySFRNTCA9ICI8c3Bhbj48Yj48L2I+PC9zcGFuPiI7
CgppZnJhbWUub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgaWZyYW1lLmNvbnRlbnREb2N1bWVu
dC5vcGVuKCk7CiAgICBpZnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKGAKICAgICAgICA8IURP
Q1RZUEUgaHRtbD4KICAgICAgICA8Ym9keT4KICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9z
dm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdC90cnVuay9MYXlvdXRUZXN0cy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NgICsgYHJpcHQ+CiAgICAgICAgPHNjcmlwdD4KICAgICAg
ICBldmFsQW5kTG9nKCdkaXYgPSBwYXJlbnQuZGl2OyBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGRpdik7Jyk7CiAgICAgICAgc2hvdWxkTm90QmUoJ0hUTUxEaXZFbGVtZW50LnByb3RvdHlwZScs
ICdwYXJlbnQuSFRNTERpdkVsZW1lbnQucHJvdG90eXBlJyk7CiAgICAgICAgc2hvdWxkQmUoJ2Rp
di5vd25lckRvY3VtZW50JywgJ2RvY3VtZW50Jyk7CiAgICAgICAgc2hvdWxkQmUoJ2Rpdi5fX3By
b3RvX18nLCAncGFyZW50LkhUTUxEaXZFbGVtZW50LnByb3RvdHlwZScpOwogICAgICAgIHNob3Vs
ZEJlKCdzcGFuID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic3BhbiIpOyBzcGFuLm93bmVyRG9j
dW1lbnQnLCAnZG9jdW1lbnQnKTsKICAgICAgICBzaG91bGRCZSgnc3Bhbi5fX3Byb3RvX18nLCAn
cGFyZW50LkhUTUxTcGFuRWxlbWVudC5wcm90b3R5cGUnKTsKICAgICAgICBzaG91bGROb3RCZSgn
c3Bhbi5fX3Byb3RvX18nLCAnSFRNTFNwYW5FbGVtZW50LnByb3RvdHlwZScpOwogICAgICAgIHNo
b3VsZEJlKCdkaXYuZmlyc3RDaGlsZC5maXJzdENoaWxkLm93bmVyRG9jdW1lbnQnLCAnZG9jdW1l
bnQnKTsKICAgICAgICBzaG91bGRCZSgnZGl2LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5fX3Byb3Rv
X18nLCAncGFyZW50LkhUTUxFbGVtZW50LnByb3RvdHlwZScpOwogICAgICAgIDwvc2NgICsgYHJp
cHQ+CiAgICBgKTsKfQpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Cgo8L3Njcmlw
dD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286622</attachid>
            <date>2016-08-22 14:56:03 -0700</date>
            <delta_ts>2016-08-22 14:56:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160952-20160822145406.patch</filename>
            <type>text/plain</type>
            <size>47988</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDczMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA4LTIwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFdyYXBwZXIgZm9yIGFuIGFkb3B0
ZWQgbm9kZSBjYW4gYmUgY3JlYXRlZCBpbiBpbmNvbnNpc3RlbnQgZ2xvYmFsIG9iamVjdHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDk1MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEN1c3Rv
bVhQYXRoTlNSZXNvbHZlci5pZGwgdG8gZ2VuZXJhdGUgdGhlIG11Y2ggb2YgdGhlIGJpbmRpbmcg
Y29kZSByYXRoZXIgdGhhbiBlbnRpcmVseSByZWx5aW5nIG9uIGN1c3RvbSBjb2RlLgorICAgICAg
ICBXZSBjYW4gcmVtb3ZlIHRoZSByZW1haW5pbmcgY3VzdG9tIGNvZGUgb25jZSB0aGUgY29kZSBn
ZW5lcmF0b3IgZnVsbHkgc3VwcG9ydHMgbm9uLUZ1bmN0aW9uT25seSBjYWxsYmFjayBpbnRlcmZh
Y2VzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg6IFJlbW92
ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20u
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRo
TlNSZXNvbHZlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
cjo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6fkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29r
dXBOYW1lc3BhY2VVUkkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVy
Q3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uT3JDb25zdHJ1
Y3Rvcik6IENhbGxiYWNrIGludGVyZmFjZXMgZG9uJ3QgaGF2ZSBjbGFzcyBpbmZvLiBPbWl0IHRo
YXQgY2hlY2suCisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyKTogR2V0TmF0aXZlVHlw
ZUZvckNhbGxiYWNrcyBpcyBub3cgc3BsaXQgaW50byBHZXROYXRpdmVBcmd1bWVudFR5cGVGb3JD
YWxsYmFja3MgYW5kCisgICAgICAgIEdldE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MuIENh
bGwgdGhlIGFwcHJvcHJpYXRlIHZlcnNpb24uCisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSW1w
bGVtZW50YXRpb24pOiBEaXR0by4KKyAgICAgICAgKEdldE5hdGl2ZUFyZ3VtZW50VHlwZUZvckNh
bGxiYWNrcyk6IFNwbGl0IGZyb20gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcy4gQWx3YXlzIHVz
ZSBjb25zdCBTdHJpbmcmLgorICAgICAgICAoR2V0TmF0aXZlUmV0dXJuVHlwZUZvckNhbGxiYWNr
cyk6IFJlbmFtZWQgZnJvbSBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzLiBBdm9pZCBjb25zdCBT
dHJpbmcmIGZvciBhIGNhbGxiYWNrJ3MgcmV0dXJuIHZhbHVlLgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5pZGw6IEFkZGVkIG92ZXJsb2FkaW5nIGRlZmluaXRpb24gb2YgY3JlYXRlRXhwcmVzc2lv
biBhbmQgZXZhbHVhdGUgdGhhdCB0YWtlIEpTWFBhdGhDdXN0b21OU1Jlc29sdmVyLgorICAgICAg
ICAqIHhtbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaDogQWRkZWQuCisgICAgICAgICogeG1sL0N1
c3RvbVhQYXRoTlNSZXNvbHZlci5pZGw6IEFkZGVkLgorICAgICAgICAqIHhtbC9YUGF0aEV2YWx1
YXRvci5pZGw6IEFkZGVkIG92ZXJsb2FkaW5nIGRlZmluaXRpb24gb2YgY3JlYXRlRXhwcmVzc2lv
biBhbmQgZXZhbHVhdGUgdGhhdCB0YWtlIEpTWFBhdGhDdXN0b21OU1Jlc29sdmVyLgorICAgICAg
ICAqIHhtbC9YUGF0aE5TUmVzb2x2ZXIuaWRsOiBSZW1vdmVkIEpTQ3VzdG9tVG9OYXRpdmVPYmpl
Y3Qgc2luY2UgaXQgbm8gbG9uZ2VyIHVzZXMgYSBjdXN0b20gdG9XcmFwcGVkIGZ1bmN0aW9uLgor
CiAyMDE2LTA4LTIyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJlbmFtZSBDdXN0b21FbGVtZW50c1JlZ2lzdHJ5IHRvIEN1c3RvbUVsZW1lbnRSZWdpc3RyeQpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwNDczMikKKysrIFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02NTAsNiArNjUwLDcgQEAgc2V0
KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmlkbAogICAgIHdvcmtlcnMvV29ya2VyTG9jYXRpb24uaWRsCiAKKyAgICB4bWwvQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmlkbAogICAgIHhtbC9ET01QYXJzZXIuaWRsCiAgICAgeG1sL1hNTEh0dHBS
ZXF1ZXN0LmlkbAogICAgIHhtbC9YTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmlkbApAQCAtMTEz
OSw3ICsxMTQwLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRXZl
bnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNh
bGxiYWNrLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAor
ICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRh
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAtMTI1
Myw3ICsxMjU0LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV29y
a2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYTUxEb2N1bWVudEN1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAotICAg
IGJpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29y
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xs
ZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIwNDcz
MikKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkK
QEAgLTcwNCw2ICs3MDQsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS93
b3JrZXJzL1dvcmtlci5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9Xb3JrZXJMb2NhdGlvbi5pZGwgXAor
ICAgICQoV2ViQ29yZSkveG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwgXAogICAgICQoV2Vi
Q29yZSkveG1sL0RPTVBhcnNlci5pZGwgXAogICAgICQoV2ViQ29yZSkveG1sL1hNTEh0dHBSZXF1
ZXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS94bWwvWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5p
ZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMjA0NzMyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yODU3LDcgKzI4NTcs
NiBAQAogCQk4MzVEMzYzNzE5RkY2MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9tLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzVEMzYzNjE5
RkY2MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9tLmggKi87IH07CiAJCTgzNjc1ODdF
MUM1NkU5OUIwMDhBMTA4NyAvKiBKU0hUTUxEYXRhRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRCODZBOTFDNTZFOTNFMDBGM0YwRTMg
LyogSlNIVE1MRGF0YUVsZW1lbnQuY3BwICovOyB9OwogCQk4MzY3NTg3RjFDNTZFOTlCMDA4QTEw
ODcgLyogSlNIVE1MRGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzNEI4NkE4MUM1NkU5M0UwMEYzRjBFMyAvKiBKU0hUTUxEYXRhRWxl
bWVudC5oICovOyB9OwotCQk4MzZDMTQ0MzFDREVBRkQ4MDA3MzQ5M0YgLyogSlNYUGF0aE5TUmVz
b2x2ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM2QzE0NDIxQ0RFQUZDQTAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9t
LmNwcCAqLzsgfTsKIAkJODM2REFBMDYxQ0VBQjgwRDAwQTJCNzA3IC8qIFJlbmRlckRlc2NlbmRh
bnRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM2REFBMDUxQ0VBQjdDRDAwQTJCNzA3IC8qIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5o
ICovOyB9OwogCQk4MzZGQkNFQTE3OEMxMTMyMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM2RkJDRTkxNzhDMTEzMjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcCAq
LzsgfTsKIAkJODM2RkJDRUMxNzhDMTE3RjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkUHJvcGVydHku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2RkJD
RUIxNzhDMTE3RjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkUHJvcGVydHkuY3BwICovOyB9OwpAQCAt
MzU3OSw2ICszNTc4LDggQEAKIAkJOUI2OUQzQjUxQjk4RkZFOTAwRTM1MTJCIC8qIEhUTUxTbG90
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUI2OUQzQjMxQjk4RkZFOTAwRTM1MTJCIC8qIEhUTUxTbG90RWxlbWVudC5oICovOyB9OwogCQk5
QjY5RDNCODFCOTkxMDA3MDBFMzUxMkIgLyogSlNIVE1MU2xvdEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI2OUQzQjYxQjk5MTAwNzAw
RTM1MTJCIC8qIEpTSFRNTFNsb3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJOUI2OUQzQjkxQjk5MTAw
NzAwRTM1MTJCIC8qIEpTSFRNTFNsb3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjY5RDNCNzFCOTkxMDA3MDBFMzUxMkIgLyogSlNIVE1M
U2xvdEVsZW1lbnQuaCAqLzsgfTsKKwkJOUI2QkE5QUExRDZCOUNBMzAwODM2NjM1IC8qIEpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCMTEzQUU1MUQ2QjlBQTYwMDg2NEExRSAvKiBKU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5jcHAgKi87IH07CisJCTlCNkJBOUFCMUQ2QjlDQTcwMDgzNjYzNSAvKiBKU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUIxMTNBRTYxRDZCOUFBNjAwODY0QTFFIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmggKi87IH07CiAJCTlCNkM0MTUzMTM0NDk0OTAwMDA4NUI2MiAvKiBTdHJpbmdXaXRoRGly
ZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QjZDNDE1MjEzNDQ5NDkwMDAwODVCNjIgLyogU3RyaW5nV2l0aERpcmVjdGlvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCNzE0RTIwMUM5MTE2
NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUI3MTRFMUUxQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5j
cHAgKi87IH07CiAJCTlCNzE0RTIxMUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNzE0RTFGMUM5MTE2
NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguaCAqLzsgfTsKQEAgLTU4NDUsOCArNTg0Niw3IEBACiAJ
CUUwRkVGMzcyQjQ3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUwRkVGMzcxQjQ3QzUzRUFDMUMx
RkJFRSAvKiBKU0V2ZW50U291cmNlLmNwcCAqLzsgfTsKIAkJRTEwNzQwMEQwRTc3QkRDMDAwMzNB
RjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTEwNzQwMEIwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNo
YW5uZWwuY3BwICovOyB9OwogCQlFMTA3NDAwRTBFNzdCREMwMDAzM0FGMjQgLyogSlNNZXNzYWdl
Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTEwNzQwMEMwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuaCAqLzsgfTsKLQkJ
RTEwQjkzN0MwQjczQzAwQTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTBCOTM3QjBCNzND
MDBBMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLzsgfTsKLQkJRTEwQjkz
QzMwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMEI5M0MyMEI3M0MyOTEw
MDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgKi87IH07CisJCUUxMEI5M0Mz
MEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTBCOTNDMjBCNzND
MjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovOyB9Owog
CQlFMTBCOUI2QzBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTBCOUI2QTBCNzQ3
NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmggKi87IH07CiAJCUUxMEI5QjZE
MEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwQjlCNkIwQjc0NzU5OTAwM0VE
ODkwIC8qIE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5jcHAgKi87IH07CiAJCUUxMTAwMzMwMUM5QUMz
REUwMDQxMkREMCAvKiBDU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMTAwMzJFMUM5QUMzREUwMDQxMkREMCAv
KiBDU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcCAqLzsgfTsKQEAgLTk5MDUsNyArOTkwNSw2IEBA
CiAJCTgzNUQzNjM2MTlGRjYxOTMwMDRDOTNBQiAvKiBTdHlsZUJ1aWxkZXJDdXN0b20uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVCdWlsZGVyQ3VzdG9tLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNUY4QjI2MUQyRDkwQkEwMEU0MDhFQyAvKiBTbG90
YWJsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2xvdGFibGUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MzY5RTU4RjFBRkREMDMwMDA4N0RGNjggLyogTm9uRG9jdW1l
bnRUeXBlQ2hpbGROb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4MzZDMTQ0MjFDREVBRkNBMDA3MzQ5M0YgLyog
SlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4MzZEQUEwNTFDRUFCN0NEMDBBMkI3MDcgLyogUmVuZGVyRGVzY2VuZGFudEl0
ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckRlc2NlbmRh
bnRJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzZGQkNFOTE3OEMx
MTMyMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzZGQkNFQjE3OEMxMTdGMDBCMjFBMTUgLyogU1ZH
QW5pbWF0ZWRQcm9wZXJ0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdBbmltYXRlZFByb3BlcnR5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEwNzMxLDYgKzEwNzMwLDggQEAKIAkJOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEQ5IC8qIFJlYWRh
YmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTggLyogV3JpdGFibGVTdHJlYW1C
dWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0YWJsZVN0cmVh
bUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzEx
MEQwMEI3NjRFOSAvKiBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMTNBRTUxRDZCOUFBNjAwODY0QTFF
IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOUIxMTNBRTYxRDZCOUFBNjAwODY0QTFFIC8qIEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMTlCNjdFMUI5
NjRFNTIwMDM0ODc0NSAvKiBTaGFkb3dSb290LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
aGFkb3dSb290LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxQUIwNzkxNjQ4
QzY5RDAwNTFGM0YyIC8qIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1M
Rm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCMUFCMDdCMTY0OEM3QzQwMDUxRjNGMiAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9u
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTEZv
cm1Db250cm9sc0NvbGxlY3Rpb25DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA3NzIsNiArMTA3NzMsOCBAQAogCQk5QkQ0RTkxNTFDNDYyODcyMDA1MDY1QkMgLyog
SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5QkQ0RTkxODFDNDYyQ0ZDMDA1MDY1QkMgLyogQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1c3RvbUVsZW1lbnRSZWdp
c3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRDRFOTE5MUM0NjJDRkMw
MDUwNjVCQyAvKiBDdXN0b21FbGVtZW50UmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTlCRDc1OTlGMUQ2QjkwMjMwMENBODI0NiAvKiBDdXN0b21YUGF0aE5TUmVzb2x2
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCRDc1OUEwMUQ2QjkwMjMwMENB
ODI0NiAvKiBDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEN1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCRDhBOTU5MThCRUZDNzYwMDk4N0U5QSAvKiBDb2xsZWN0aW9uSW5kZXhDYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xsZWN0aW9uSW5kZXhDYWNoZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRTY3MTA5MUQ1QUVCMDQwMDM0NTUx
NCAvKiBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlCRTY3MTBBMUQ1QUVCMDQwMDM0NTUxNCAvKiBKU0N1c3RvbUVsZW1l
bnRSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0N1c3RvbUVs
ZW1lbnRSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMzNjMsOCAr
MTMzNjYsNyBAQAogCQlFMEZFRjM3MUI0N0M1M0VBQzFDMUZCRUUgLyogSlNFdmVudFNvdXJjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0V2ZW50U291cmNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNzQwMEIwRTc3QkRDMDAwMzNBRjI0
IC8qIEpTTWVzc2FnZUNoYW5uZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNNZXNzYWdlQ2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxMDc0MDBDMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVzc2FnZUNoYW5uZWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRTEwQjkzN0IwQjczQzAwQTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxMEI5M0My
MEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAv
KiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMEI5QjZBMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRp
dmVYUGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0
aXZlWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMEI5
QjZCMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTExMDAzMkUxQzlBQzNERTAwNDEyREQwIC8q
IENTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xOTI3NSw2ICsxOTI3Nyw4IEBACiAJCUE4M0I3OTBDMENDQUZGODMwMDBCMDgy
NSAvKiBYUGF0aCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJOUIxMTNBRTUxRDZCOUFBNjAwODY0QTFFIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNw
cCAqLywKKwkJCQk5QjExM0FFNjFENkI5QUE2MDA4NjRBMUUgLyogSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaCAqLywKIAkJCQkxQTc2MkM2QjBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1
YXRvci5jcHAgKi8sCiAJCQkJMUE3NjJDNkMwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFs
dWF0b3IuaCAqLywKIAkJCQlCQzYwREI0NzBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2Vw
dGlvbi5jcHAgKi8sCkBAIC0yMTAzMSw3ICsyMTAzNSw2IEBACiAJCQkJRTE4MjU4QUIwRUYzQ0Q3
MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICovLAogCQkJCTgzQTRB
OUY4MUNFN0ZEN0UwMDcwOUIwMCAvKiBKU1hNTERvY3VtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlC
QzM0OEJCRDBEQjdGNTMxMDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgKi8s
Ci0JCQkJODM2QzE0NDIxQ0RFQUZDQTAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9t
LmNwcCAqLywKIAkJCQlBMUM3RkFBMTEzM0E1RDM1MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1
c3RvbS5jcHAgKi8sCiAJCQkJQkNFRkUxRTQwRENBNUYzMzAwNzM5MjE5IC8qIEpTWFNMVFByb2Nl
c3NvckN1c3RvbS5jcHAgKi8sCiAJCQkpOwpAQCAtMjEzMTksOCArMjEzMjIsNyBAQAogCQkJCTE0
NDlFMjg2MTA3RDREQjQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5jcHAgKi8sCiAJCQkJMTQ0
OUUyNEExMDdENEE4NDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmggKi8sCiAJCQkJNTFFQzky
NUQwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5j
cHAgKi8sCi0JCQkJRTEwQjkzQzIwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmNwcCAqLywKLQkJCQlFMTBCOTM3QjBCNzNDMDBBMDAzRUQ4OTAgLyogSlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXIuaCAqLywKKwkJCQlFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4OTAgLyogSlND
dXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovLAogCQkJCTkzQjcwRDREMDlFQjBDN0Mw
MDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuY3BwICovLAogCQkJCTkzQjcwRDRFMDlFQjBDN0Mw
MDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuaCAqLywKIAkJCQk5MzVGNDU0MDBGN0MzQjVGMDBE
N0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAgKi8sCkBAIC0yMTkxNSw2ICsyMTkxNyw4
IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTAwQjkzMTgwMTNC
QTg2N0YwMDM1QTk0OCAvKiBwYXJzZXIgKi8sCisJCQkJOUJENzU5OUYxRDZCOTAyMzAwQ0E4MjQ2
IC8qIEN1c3RvbVhQYXRoTlNSZXNvbHZlci5oICovLAorCQkJCTlCRDc1OUEwMUQ2QjkwMjMwMENB
ODI0NiAvKiBDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsICovLAogCQkJCTFBQ0U1M0UxMEE4RDE4
RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuY3BwICovLAogCQkJCTFBQ0U1M0UyMEE4RDE4RTcwMDIy
OTQ3RCAvKiBET01QYXJzZXIuaCAqLywKIAkJCQkxQUNFNTNFMzBBOEQxOEU3MDAyMjk0N0QgLyog
RE9NUGFyc2VyLmlkbCAqLywKQEAgLTI0NzU4LDcgKzI0NzYyLDYgQEAKIAkJCQk5QkQ0RTkxNzFD
NDYyODcyMDA1MDY1QkMgLyogSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5QkU2NzEwQzFENUFFQjI1MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50UmVnaXN0
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0Nzc4QjgwMTE1QTU4MUEwMEI1RDM3MiAvKiBKU0N1
c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTBCOTM3QzBCNzNDMDBBMDAzRUQ4OTAg
LyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTgyRjkw
MENBQUZBOUQwMDIyMzdBRSAvKiBKU0RhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTlE
RDY5OTExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCRTYxMDM5RTE4QTlENjVBMDBERDUwRDcgLyogSlNEYXRhQ3VlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI1NTczLDYgKzI1NTc2LDcgQEAKIAkJCQkyRDc3QUMyOTFCRjJCOTg2MDA3MjQ3
MEEgLyogTlNBY2Nlc3NpYmlsaXR5U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDc3QUMyQTFC
RjJCOTg3MDA3MjQ3MEEgLyogTlNBcHBsaWNhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OUJCNzM3NjUxQjQxQzAzNTAwQUUxM0VCIC8qIE5TQXR0cmlidXRlZFN0cmluZ1NQSS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOUI2QkE5QUIxRDZCOUNBNzAwODM2NjM1IC8qIEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUIzMTNERjFCNjk4OEM1MDBGMkFBQkMg
LyogTlNCdXR0b25DZWxsU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTEyNTI1MTFBMUJFQkQ4
MDA4NjQ0ODAgLyogTlNDYWxlbmRhckRhdGVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxREY2
MzU3MUFGMTg3REQwMDc4RkQ5MSAvKiBOU0NvbG9yU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTI4
MzQ3LDcgKzI4MzUxLDcgQEAKIAkJCQlFNDc3OEI3RjExNUE1ODFBMDBCNUQzNzIgLyogSlNDdXN0
b21FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERUMyOTc2MTFCNEYyRjhEMDA1RjU5NDUg
LyogSlNDdXN0b21FdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUVDOTI2NTBD
RTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUUxMEI5M0MzMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTBCOTNDMzBCNzNDMjkxMDAz
RUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFFODJGOEYwQ0FBRkE5RDAwMjIzN0FFIC8qIEpTRGF0YWJhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjU5REQ2OUExMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFj
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCRTYxMDM5RDE4QTlENjUyMDBERDUwRDcgLyogSlNE
YXRhQ3VlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg5NzQsNyArMjg5NzgsNiBAQAogCQkJCUJD
NjBEQjQ5MEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBNzYyQzc1MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXhwcmVzc2lvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc2MkM3NzBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0
aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODM2QzE0NDMxQ0RFQUZEODAwNzM0
OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
NzYyQzc5MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoUmVzdWx0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUExQzdGQUEyMTMzQTVEMzUwMEQ2NzMyRCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUZFMUVBMERDQTVGNjQwMDczOTIxOSAvKiBKU1hTTFRQ
cm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTMzNCw2ICsyOTMzNyw3IEBACiAJCQkJ
OTNGMTlBRjgwODI0NUU1OTAwMUU5QUJDIC8qIFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTM3OTE5QzIzMEI3RDE4ODYwMEE1Njk5OCAvKiBQb3NpdGlvbkl0ZXJhdG9yLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQ2MzQ1OTJDMUFDMjI3MTAwMEVDQjcxQyAvKiBQb3dlck9ic2VydmVy
TWFjLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlCNkJBOUFBMUQ2QjlDQTMwMDgzNjYzNSAvKiBK
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNzc2RDQzRDEx
MDQ1Mjc1MDBCRUIwRUMgLyogUHJpbnRDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
RUE3RUJEMEExOTQ1RDAwMEE4RUY1RiAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTQ0NjEzRUIwQ0Q2ODFCNDAwRkFEQTc1IC8qIFByb2dyZXNzRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCShyZXZpc2lvbiAyMDQ3MzIpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAJ
KG5vbmV4aXN0ZW50KQpAQCAtMSwxMDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NywgMjAxMyBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50Lmgi
Ci0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVk
ZSAiSlNET01XaW5kb3dDdXN0b20uaCIKLSNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUu
aCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKLSNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXVzaW5nIG5hbWVz
cGFjZSBKU0M7Ci0KLVJlZlB0cjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXI6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCi17Ci0g
ICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotCi0gICAgSlNPYmplY3QqIHJlc29sdmVyT2JqZWN0ID0gdmFsdWUuZ2V0T2JqZWN0KCk7Ci0g
ICAgaWYgKCFyZXNvbHZlck9iamVjdCkgewotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywg
VFlQRV9NSVNNQVRDSF9FUlIpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihleGVjLCByZXNv
bHZlck9iamVjdCwgYXNKU0RPTVdpbmRvdyhleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCkpKSk7
Ci19Ci0KLUpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBjdXN0b21SZXNvbHZlciwgSlNET01XaW5kb3cqIGds
b2JhbE9iamVjdCkKLSAgICA6IG1fY3VzdG9tUmVzb2x2ZXIoZXhlYy0+dm0oKSwgY3VzdG9tUmVz
b2x2ZXIpCi0gICAgLCBtX2dsb2JhbE9iamVjdChleGVjLT52bSgpLCBnbG9iYWxPYmplY3QpCi17
Ci19Ci0KLUpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjp+SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIo
KQotewotfQotCi1TdHJpbmcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFj
ZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKLXsKLSAgICBBU1NFUlQobV9jdXN0b21SZXNvbHZl
cik7Ci0KLSAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkp
OwotCi0gICAgRXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsK
LSAgICAgICAgCi0gICAgSlNWYWx1ZSBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXItPmdldChl
eGVjLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJsb29rdXBOYW1lc3BhY2VVUkkiKSk7
Ci0gICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxs
RGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOwotICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZTo6
Tm9uZSkgewotICAgICAgICBjYWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPm1ldGhvZFRhYmxl
KCktPmdldENhbGxEYXRhKG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGNhbGxEYXRhKTsKLSAgICAg
ICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlOjpOb25lKSB7Ci0gICAgICAgICAgICBpZiAoUGFn
ZUNvbnNvbGVDbGllbnQqIGNvbnNvbGUgPSBtX2dsb2JhbE9iamVjdC0+d3JhcHBlZCgpLmNvbnNv
bGUoKSkKLSAgICAgICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIlhQYXRoTlNSZXNvbHZlciBk
b2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iKSk7Ci0gICAgICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgICAgIH0KLSAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3Rv
bVJlc29sdmVyLmdldCgpOwotICAgIH0KLQotICAgIFJlZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
cj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7Ci0KLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdz
OwotICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIHByZWZpeCkpOwotCi0g
ICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBleGNlcHRpb247Ci0gICAgSlNWYWx1ZSByZXR2YWwgPSBK
U01haW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxs
RGF0YSwgbV9jdXN0b21SZXNvbHZlci5nZXQoKSwgYXJncywgZXhjZXB0aW9uKTsKLQotICAgIFN0
cmluZyByZXN1bHQ7Ci0gICAgaWYgKGV4Y2VwdGlvbikKLSAgICAgICAgcmVwb3J0RXhjZXB0aW9u
KGV4ZWMsIGV4Y2VwdGlvbik7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmICghcmV0dmFsLmlzVW5k
ZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgICAgICByZXN1bHQgPSByZXR2YWwudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpOwotICAgIH0KLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6
IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAkocmV2aXNpb24gMjA0NzMyKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAkobm9uZXhpc3RlbnQp
CkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxleGV5IFByb3Nr
dXJ5YWtvdiAoYXBAbnlwb3AuY29tKQotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2lmbmRlZiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcl9oCi0jZGVmaW5lIEpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyX2gKLQotI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgot
I2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+Ci0jaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+
Ci0jaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0NK
U1ZhbHVlLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotICAgIGNsYXNzIEV4ZWNTdGF0ZTsKLSAgICBjbGFzcyBK
U09iamVjdDsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgRnJhbWU7Ci0g
ICAgY2xhc3MgSlNET01XaW5kb3c7Ci0KLSAgICBjbGFzcyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
ciA6IHB1YmxpYyBYUGF0aE5TUmVzb2x2ZXIgewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGlj
IFJlZlB0cjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gY3JlYXRlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlKTsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgfkpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyKCk7Ci0KLSAgICAgICAgdmlydHVhbCBTdHJpbmcgbG9va3VwTmFtZXNwYWNlVVJJ
KGNvbnN0IFN0cmluZyYgcHJlZml4KTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIEpTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTRE9NV2lu
ZG93Kik7Ci0KLSAgICAgICAgLy8gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJzIGFyZSBhbHdheXMg
dGVtcG9yYXJ5IHNvIHVzaW5nIGEgU3Ryb25nIHJlZmVyZW5jZSBpcyBzYWZlIGhlcmUuCi0gICAg
ICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+IG1fY3VzdG9tUmVzb2x2ZXI7Ci0gICAgICAg
IEpTQzo6U3Ryb25nPEpTRE9NV2luZG93PiBtX2dsb2JhbE9iamVjdDsKLSAgICB9OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcl9o
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlci5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAt
MSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAkocmV2aXNpb24gMjA0NzMyKQkoZnJvbSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6MjA0NzMyKQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA3LCAyMDEzIEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgorCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgorI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNT
dGF0ZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5o
IgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0xvY2su
aD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcg
bmFtZXNwYWNlIEpTQzsKKworUmVmUHRyPEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBKU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkK
K3sKKyAgICBpZiAodmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBKU09iamVjdCogcmVzb2x2ZXJPYmplY3QgPSB2YWx1ZS5nZXRPYmplY3Qo
KTsKKyAgICBpZiAoIXJlc29sdmVyT2JqZWN0KSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihl
eGVjLCBUWVBFX01JU01BVENIX0VSUik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKGV4ZWMs
IHJlc29sdmVyT2JqZWN0LCBhc0pTRE9NV2luZG93KGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3Qo
KSkpKTsKK30KKworSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OkpTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGN1c3RvbVJlc29sdmVyLCBKU0RPTVdpbmRv
dyogZ2xvYmFsT2JqZWN0KQorICAgIDogbV9jdXN0b21SZXNvbHZlcihleGVjLT52bSgpLCBjdXN0
b21SZXNvbHZlcikKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGV4ZWMtPnZtKCksIGdsb2JhbE9iamVj
dCkKK3sKK30KKworSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6On5KU0N1c3RvbVhQYXRoTlNSZXNv
bHZlcigpCit7Cit9CisKK1N0cmluZyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFt
ZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQoreworICAgIEFTU0VSVChtX2N1c3RvbVJl
c29sdmVyKTsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93QmFzZTo6Y29tbW9u
Vk0oKSk7CisKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhl
YygpOworICAgICAgICAKKyAgICBKU1ZhbHVlIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci0+
Z2V0KGV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgImxvb2t1cE5hbWVzcGFjZVVS
SSIpKTsKKyAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdl
dENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7CisgICAgaWYgKGNhbGxUeXBlID09IENhbGxU
eXBlOjpOb25lKSB7CisgICAgICAgIGNhbGxUeXBlID0gbV9jdXN0b21SZXNvbHZlci0+bWV0aG9k
VGFibGUoKS0+Z2V0Q2FsbERhdGEobV9jdXN0b21SZXNvbHZlci5nZXQoKSwgY2FsbERhdGEpOwor
ICAgICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUpIHsKKyAgICAgICAgICAgIGlm
IChQYWdlQ29uc29sZUNsaWVudCogY29uc29sZSA9IG1fZ2xvYmFsT2JqZWN0LT53cmFwcGVkKCku
Y29uc29sZSgpKQorICAgICAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiWFBhdGhOU1Jlc29s
dmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpKTsKKyAgICAg
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBmdW5jdGlvbiA9IG1f
Y3VzdG9tUmVzb2x2ZXIuZ2V0KCk7CisgICAgfQorCisgICAgUmVmPEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKKworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVy
IGFyZ3M7CisgICAgYXJncy5hcHBlbmQoanNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgcHJlZml4KSk7
CisKKyAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsKKyAgICBKU1ZhbHVlIHJldHZh
bCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUs
IGNhbGxEYXRhLCBtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBhcmdzLCBleGNlcHRpb24pOworCisg
ICAgU3RyaW5nIHJlc3VsdDsKKyAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICByZXBvcnRFeGNl
cHRpb24oZXhlYywgZXhjZXB0aW9uKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKCFyZXR2YWwu
aXNVbmRlZmluZWRPck51bGwoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IHJldHZhbC50b1N0cmlu
ZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAkocmV2
aXNpb24gMjA0NzMyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXJDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNCArMjYsMTAgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5o
IgogCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0j
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0RP
TVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgotI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgotI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRl
IDx3dGYvUmVmLmg+CiAKQEAgLTQxLDU4ICszNywzNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLVJlZlB0cjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4g
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
dmFsdWUpCi17Ci0gICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotCi0gICAgSlNPYmplY3QqIHJlc29sdmVyT2JqZWN0ID0gdmFsdWUuZ2V0
T2JqZWN0KCk7Ci0gICAgaWYgKCFyZXNvbHZlck9iamVjdCkgewotICAgICAgICBzZXRET01FeGNl
cHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICB9Ci0KLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
cihleGVjLCByZXNvbHZlck9iamVjdCwgYXNKU0RPTVdpbmRvdyhleGVjLT52bUVudHJ5R2xvYmFs
T2JqZWN0KCkpKSk7Ci19Ci0KLUpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpKU0N1c3RvbVhQYXRo
TlNSZXNvbHZlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBjdXN0b21SZXNvbHZlciwgSlNE
T01XaW5kb3cqIGdsb2JhbE9iamVjdCkKLSAgICA6IG1fY3VzdG9tUmVzb2x2ZXIoZXhlYy0+dm0o
KSwgY3VzdG9tUmVzb2x2ZXIpCi0gICAgLCBtX2dsb2JhbE9iamVjdChleGVjLT52bSgpLCBnbG9i
YWxPYmplY3QpCi17Ci19Ci0KLUpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjp+SlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXIoKQotewotfQotCiBTdHJpbmcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxv
b2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKIHsKLSAgICBBU1NFUlQobV9j
dXN0b21SZXNvbHZlcik7CisgICAgUmVmPEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBwcm90ZWN0
ZWRUaGlzKCp0aGlzKTsKKworICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IG1fZGF0YS0+Z2xvYmFs
T2JqZWN0KCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVj
KCk7CiAKLSAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkp
OworICAgIEpTTG9ja0hvbGRlciBsb2NrKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAKLSAgICBFeGVj
U3RhdGUqIGV4ZWMgPSBtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwotICAgICAgICAKLSAg
ICBKU1ZhbHVlIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci0+Z2V0KGV4ZWMsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoZXhlYywgImxvb2t1cE5hbWVzcGFjZVVSSSIpKTsKKyAgICBKU09iamVj
dCogY3VzdG9tUmVzb2x2ZXIgPSBtX2RhdGEtPmNhbGxiYWNrKCk7CisgICAgSlNWYWx1ZSBmdW5j
dGlvbiA9IGN1c3RvbVJlc29sdmVyLT5nZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhl
eGVjLCAibG9va3VwTmFtZXNwYWNlVVJJIikpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAg
IENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoZnVuY3Rpb24sIGNhbGxEYXRhKTsKICAg
ICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUpIHsKLSAgICAgICAgY2FsbFR5cGUgPSBt
X2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1c3RvbVJlc29s
dmVyLmdldCgpLCBjYWxsRGF0YSk7CisgICAgICAgIGNhbGxUeXBlID0gY3VzdG9tUmVzb2x2ZXIt
Pm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKGN1c3RvbVJlc29sdmVyLCBjYWxsRGF0YSk7CiAg
ICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZTo6Tm9uZSkgewotICAgICAgICAgICAgaWYg
KFBhZ2VDb25zb2xlQ2xpZW50KiBjb25zb2xlID0gbV9nbG9iYWxPYmplY3QtPndyYXBwZWQoKS5j
b25zb2xlKCkpCisgICAgICAgICAgICBpZiAoUGFnZUNvbnNvbGVDbGllbnQqIGNvbnNvbGUgPSBh
c0pTRE9NV2luZG93KGdsb2JhbE9iamVjdCktPndyYXBwZWQoKS5jb25zb2xlKCkpCiAgICAgICAg
ICAgICAgICAgY29uc29sZS0+YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxl
dmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBh
IGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIikpOwogICAgICAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwogICAgICAgICB9Ci0gICAgICAgIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci5nZXQo
KTsKKyAgICAgICAgZnVuY3Rpb24gPSBjdXN0b21SZXNvbHZlcjsKICAgICB9CiAKLSAgICBSZWY8
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwotCiAgICAgTWFy
a2VkQXJndW1lbnRCdWZmZXIgYXJnczsKICAgICBhcmdzLmFwcGVuZChqc1N0cmluZ1dpdGhDYWNo
ZShleGVjLCBwcmVmaXgpKTsKIAogICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXhjZXB0aW9uOwot
ICAgIEpTVmFsdWUgcmV0dmFsID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjYWxsKGV4ZWMsIGZ1
bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGFyZ3Ms
IGV4Y2VwdGlvbik7CisgICAgSlNWYWx1ZSByZXR2YWwgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6
OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgY3VzdG9tUmVzb2x2ZXIs
IGFyZ3MsIGV4Y2VwdGlvbik7CiAKICAgICBTdHJpbmcgcmVzdWx0OwogICAgIGlmIChleGNlcHRp
b24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1
c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0
aE5TUmVzb2x2ZXJDdXN0b20uY3BwCShyZXZpc2lvbiAyMDQ3MzIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAJKG5vbmV4aXN0ZW50KQpA
QCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkpTWFBhdGhOU1Jlc29sdmVyLmgiCi0KLSNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LVJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IEpTWFBhdGhOU1Jlc29sdmVyOjp0b1dyYXBwZWQoRXhl
Y1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHMo
SlNYUGF0aE5TUmVzb2x2ZXI6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiAmanNDYXN0PEpTWFBh
dGhOU1Jlc29sdmVyKj4oYXNPYmplY3QodmFsdWUpKS0+d3JhcHBlZCgpOwotCi0gICAgcmV0dXJu
IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUoJnN0YXRlLCB2YWx1ZSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyMDQ3MzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBj
b3B5KQpAQCAtMTkxMSw3ICsxOTExLDkgQEAgRU5ECiAgICAgICAgICAgICBmb3IgbXkgJHR1cGxl
IChAeyRTfSkgewogICAgICAgICAgICAgICAgIG15ICRvdmVybG9hZCA9IEB7JHR1cGxlfVswXTsK
ICAgICAgICAgICAgICAgICBteSAkdHlwZSA9IFN0cmlwTnVsbGFibGUoQHtAeyR0dXBsZX1bMV19
WyRkXSk7Ci0gICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBl
KCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSkpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzQ2FsbGJhY2tJbnRlcmZhY2UoJHR5
cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vz
c2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpIik7CisgICAgICAg
ICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJHR5cGUpIHx8
ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCR0eXBlKSkgewogICAgICAgICAgICAg
ICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlz
dGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZykt
PmluaGVyaXRzKEpTJHt0eXBlfTo6aW5mbygpKSIpOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KQEAgLTQwOTUsOSArNDA5Nyw5IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVy
CiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30p
IHsKICAgICAgICAgICAgIG15IEBhcmd1bWVudHMgPSAoKTsKICAgICAgICAgICAgIGZvcmVhY2gg
bXkgJHBhcmFtZXRlciAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Ci0gICAgICAgICAgICAg
ICAgcHVzaChAYXJndW1lbnRzLCBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2Us
ICRwYXJhbWV0ZXItPnR5cGUpIC4gIiAiIC4gJHBhcmFtZXRlci0+bmFtZSk7CisgICAgICAgICAg
ICAgICAgcHVzaChAYXJndW1lbnRzLCBHZXROYXRpdmVBcmd1bWVudFR5cGVGb3JDYWxsYmFja3Mo
JGludGVyZmFjZSwgJHBhcmFtZXRlci0+dHlwZSkgLiAiICIgLiAkcGFyYW1ldGVyLT5uYW1lKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmly
dHVhbCAiIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+dHlwZSkgLiAiICIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIo
IiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKTtcbiIpOworICAgICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsICIgLiBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2Fs
bGJhY2tzKCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIgIiAuICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiIC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAu
ICIpO1xuIik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTQyMzUsMTQgKzQyMzcsMTQgQEAgc3Vi
IEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICBBZGRJbmNsdWRl
c0ZvclR5cGVJbkltcGwoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwogICAgICAgICAgICAg
bXkgJGZ1bmN0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwotICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRp
bnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIgJHtjbGFzc05hbWV9Ojok
e2Z1bmN0aW9uTmFtZX0oIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIiAu
IEdldE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPnR5cGUpIC4gIiAke2NsYXNzTmFtZX06OiR7ZnVuY3Rpb25OYW1lfSgiKTsKIAog
ICAgICAgICAgICAgbXkgQGFyZ3MgPSAoKTsKICAgICAgICAgICAgIG15IEBhcmdzQ2hlY2sgPSAo
KTsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAcGFyYW1zKSB7CiAgICAgICAgICAg
ICAgICAgbXkgJHBhcmFtTmFtZSA9ICRwYXJhbS0+bmFtZTsKICAgICAgICAgICAgICAgICBBZGRJ
bmNsdWRlc0ZvclR5cGVJbkltcGwoJHBhcmFtLT50eXBlLCAxKTsKLSAgICAgICAgICAgICAgICBw
dXNoKEBhcmdzLCBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRwYXJhbS0+
dHlwZSkgLiAiICIgLiAkcGFyYW1OYW1lKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBhcmdzLCBH
ZXROYXRpdmVBcmd1bWVudFR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJHBhcmFtLT50eXBl
LCAwKSAuICIgIiAuICRwYXJhbU5hbWUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsIGpvaW4oIiwgIiwgQGFyZ3MpKTsKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiKVxuIik7CkBAIC00NTAxLDcgKzQ1MDMsNiBAQCBteSAlbmF0aXZlVHlwZSA9
ICgKICAgICAiRGljdGlvbmFyeSIgPT4gIkRpY3Rpb25hcnkiLAogICAgICJFdmVudExpc3RlbmVy
IiA9PiAiUmVmUHRyPEV2ZW50TGlzdGVuZXI+IiwKICAgICAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
IiA9PiAiUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4iLAotICAgICJYUGF0aE5TUmVzb2x2
ZXIiID0+ICJSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiIsCiAgICAgImFueSIgPT4gIkpTQzo6SlNW
YWx1ZSIsCiAgICAgImJvb2xlYW4iID0+ICJib29sIiwKICAgICAiYnl0ZSIgPT4gImludDhfdCIs
CkBAIC00NTU0LDEyICs0NTU1LDIwIEBAIHN1YiBHZXROYXRpdmVWZWN0b3JJbm5lclR5cGUKICAg
ICByZXR1cm4gIlJlZlB0cjwkaW5uZXJUeXBlPiI7CiB9CiAKLXN1YiBHZXROYXRpdmVUeXBlRm9y
Q2FsbGJhY2tzCitzdWIgR2V0TmF0aXZlQXJndW1lbnRUeXBlRm9yQ2FsbGJhY2tzCiB7CiAgICAg
bXkgKCRpbnRlcmZhY2UsICR0eXBlKSA9IEBfOwogCi0gICAgcmV0dXJuICJSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiYmIiBpZiAkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIjsK
ICAgICByZXR1cm4gImNvbnN0IFN0cmluZyYiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5
cGUoJHR5cGUpOworCXJldHVybiBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzKCRpbnRl
cmZhY2UsICR0eXBlKTsKK30KKworc3ViIEdldE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MK
K3sKKyAgICBteSAoJGludGVyZmFjZSwgJHR5cGUpID0gQF87CisKKyAgICByZXR1cm4gIlJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYiIGlmICR0eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0
VmFsdWUiOworICAgIHJldHVybiAiY29uc3QgU3RyaW5nJiIgaWYgISRpbnRlcmZhY2UtPmlzQ2Fs
bGJhY2sgJiYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7CiAgICAgcmV0dXJu
IEdldE5hdGl2ZVR5cGUoJGludGVyZmFjZSwgJHR5cGUpOwogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwJKHJldmlzaW9uIDIwNDczMikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEwMCwxMSArMTAwLDE0IEBACiAKICAgICAvLyBG
SVhNRTogVXNpbmcgInVuZGVmaW5lZCIgYXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3Jv
bmcuCiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhFeHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Np
b24ob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwgb3B0aW9uYWwg
WFBhdGhOU1Jlc29sdmVyPyByZXNvbHZlcik7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhF
eHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Npb24oRE9NU3RyaW5nIGV4cHJlc3Npb24sIEN1c3RvbVhQ
YXRoTlNSZXNvbHZlciByZXNvbHZlcik7CiAgICAgWFBhdGhOU1Jlc29sdmVyIGNyZWF0ZU5TUmVz
b2x2ZXIoTm9kZT8gbm9kZVJlc29sdmVyKTsKIAogICAgIC8vIEZJWE1FOiBVc2luZyAidW5kZWZp
bmVkIiBhcyBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZSBpcyB3cm9uZy4KICAgICBbUmFpc2VzRXhj
ZXB0aW9uXSBYUGF0aFJlc3VsdCBldmFsdWF0ZShvcHRpb25hbCBET01TdHJpbmcgZXhwcmVzc2lv
biA9ICJ1bmRlZmluZWQiLCBvcHRpb25hbCBOb2RlPyBjb250ZXh0Tm9kZSwgb3B0aW9uYWwgWFBh
dGhOU1Jlc29sdmVyPyByZXNvbHZlciwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgc2hvcnQg
dHlwZSA9IDAsIG9wdGlvbmFsIFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7CisgICAgW1JhaXNlc0V4
Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZhbHVhdGUoRE9NU3RyaW5nIGV4cHJlc3Npb24sIE5vZGU/
IGNvbnRleHROb2RlLCBDdXN0b21YUGF0aE5TUmVzb2x2ZXIgcmVzb2x2ZXIsCisgICAgICAgIG9w
dGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLCBvcHRpb25hbCBYUGF0aFJlc3VsdD8gaW5S
ZXN1bHQpOwogCiAgICAgLy8gRklYTUU6IFRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgbGFzdCBw
YXJhbWV0ZXIgc2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcuCiAgICAgYm9vbGVhbiBleGVjQ29t
bWFuZChET01TdHJpbmcgY29tbWFuZCwgb3B0aW9uYWwgYm9vbGVhbiB1c2VySW50ZXJmYWNlID0g
ZmFsc2UsIG9wdGlvbmFsIERPTVN0cmluZz8gdmFsdWUgPSBudWxsKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgJKG5vbmV4aXN0ZW50KQorKysgU291
cmNlL1dlYkNvcmUveG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiWFBhdGhOU1Jlc29sdmVyLmgi
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBDdXN0b21YUGF0aE5TUmVzb2x2ZXIgOiBwdWJsaWMgWFBhdGhOU1Jlc29sdmVyIHsKK307
CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIu
aWRsCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisqIG1ldDoKKyoKKyogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorKiBkaXN0cmlidXRpb24uCisqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorKi8KKworY2FsbGJhY2sgaW50ZXJmYWNlIEN1c3RvbVhQYXRoTlNSZXNvbHZlciB7CisK
KyAgICBbQ3VzdG9tXSBET01TdHJpbmc/IGxvb2t1cE5hbWVzcGFjZVVSSShET01TdHJpbmcgcHJl
Zml4KTsKKworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbAkocmV2
aXNpb24gMjA0NzMyKQorKysgU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMjMsMTMgKzIzLDEzIEBACiBdIGludGVyZmFjZSBYUGF0aEV2YWx1
YXRvciB7CiAgICAgLy8gRklYTUU6IFVzaW5nICJ1bmRlZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1l
dGVyIHZhbHVlIGlzIHdyb25nLgogICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoRXhwcmVzc2lv
biBjcmVhdGVFeHByZXNzaW9uKG9wdGlvbmFsIERPTVN0cmluZyBleHByZXNzaW9uID0gInVuZGVm
aW5lZCIsIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIpOworICAgIFtSYWlzZXNF
eGNlcHRpb25dIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZyBleHBy
ZXNzaW9uLCBDdXN0b21YUGF0aE5TUmVzb2x2ZXIgcmVzb2x2ZXIpOwogCiAgICAgWFBhdGhOU1Jl
c29sdmVyIGNyZWF0ZU5TUmVzb2x2ZXIob3B0aW9uYWwgTm9kZT8gbm9kZVJlc29sdmVyKTsKIAog
ICAgIC8vIEZJWE1FOiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0IHBhcmFtZXRlciB2YWx1
ZSBpcyB3cm9uZy4KLSAgICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0aFJlc3VsdCBldmFsdWF0ZShv
cHRpb25hbCBET01TdHJpbmcgZXhwcmVzc2lvbiA9ICJ1bmRlZmluZWQiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbmFsIE5vZGU/IGNvbnRleHROb2RlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdHlwZSA9IDAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgWFBhdGhSZXN1bHQ/IGluUmVzdWx0KTsKKyAgICBb
UmFpc2VzRXhjZXB0aW9uXSBYUGF0aFJlc3VsdCBldmFsdWF0ZShvcHRpb25hbCBET01TdHJpbmcg
ZXhwcmVzc2lvbiA9ICJ1bmRlZmluZWQiLCBvcHRpb25hbCBOb2RlPyBjb250ZXh0Tm9kZSwgb3B0
aW9uYWwgWFBhdGhOU1Jlc29sdmVyPyByZXNvbHZlciwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWdu
ZWQgc2hvcnQgdHlwZSA9IDAsIG9wdGlvbmFsIFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7CisgICAg
W1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZhbHVhdGUoRE9NU3RyaW5nIGV4cHJlc3Np
b24sIE5vZGU/IGNvbnRleHROb2RlLCBDdXN0b21YUGF0aE5TUmVzb2x2ZXIgcmVzb2x2ZXIsCisg
ICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLCBvcHRpb25hbCBYUGF0aFJl
c3VsdD8gaW5SZXN1bHQpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5TUmVz
b2x2ZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5TUmVzb2x2
ZXIuaWRsCShyZXZpc2lvbiAyMDQ3MzIpCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOU1Jl
c29sdmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNiBAQAogICovCiAKIFsKLSAg
ICBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0LAogICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIFNr
aXBWVGFibGVWYWxpZGF0aW9uLAogXSBpbnRlcmZhY2UgWFBhdGhOU1Jlc29sdmVyIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>