<?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>76794</bug_id>
          
          <creation_ts>2012-01-22 00:43:13 -0800</creation_ts>
          <short_desc>REGRESSION(r105581): It broke the build on many platform (Requested by Ossy_weekend on #webkit).</short_desc>
          <delta_ts>2012-01-23 02:01:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>76768</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>540228</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-22 00:43:13 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/105581 broke the build:
It broke the build on many platform (Requested by Ossy_weekend on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540229</commentid>
    <comment_count>1</comment_count>
      <attachid>123471</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-22 00:43:41 -0800</bug_when>
    <thetext>Created attachment 123471
ROLLOUT of r105581

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540230</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-22 00:45:07 -0800</bug_when>
    <thetext>Fix on the way.

The fix is trivial.  You could have landed the fix instead of rolling out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540231</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-01-22 00:51:13 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Fix on the way.
&gt; 
&gt; The fix is trivial.  You could have landed the fix instead of rolling out.

Thanks for the fix. But please don&apos;t expect me to fix your bug on my weekend.
Otherwise you must ensure that your change builds on all platform and not me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540232</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-22 01:03:57 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Fix on the way.
&gt; &gt; 
&gt; &gt; The fix is trivial.  You could have landed the fix instead of rolling out.
&gt; 
&gt; Thanks for the fix. But please don&apos;t expect me to fix your bug on my weekend.
&gt; Otherwise you must ensure that your change builds on all platform and not me.

You&apos;re most welcome.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123471</attachid>
            <date>2012-01-22 00:43:41 -0800</date>
            <delta_ts>2012-01-22 00:44:44 -0800</delta_ts>
            <desc>ROLLOUT of r105581</desc>
            <filename>bug-76794-20120122084450.patch</filename>
            <type>text/plain</type>
            <size>77118</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZmM2NjkxZGMwMDdiYWE5YmUwNDEzOTE1ODQ1YjM3ZjdkNTA4ZTUzLi5kOTk1YWE3ZmQxMDI4MjRi
ZTQ5YTI1OTQ3NmExYWRjNGNmZTMwZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAxMi0wMS0yMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNTU4MS4KKyAg
ICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTA1NTgxCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc5NAorCisgICAgICAgIEl0
IGJyb2tlIHRoZSBidWlsZCBvbiBtYW55IHBsYXRmb3JtIChSZXF1ZXN0ZWQgYnkgT3NzeV93ZWVr
ZW5kCisgICAgICAgIG9uICN3ZWJraXQpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBi
eXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmg6IFJlbW92ZWQuCisgICAgICAgICogYnl0ZWNvZGUvTWV0aG9kQ2FsbExp
bmtTdGF0dXMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJ5dGVjb2RlL01ldGhvZENhbGxMaW5r
U3RhdHVzLmg6IFJlbW92ZWQuCisgICAgICAgICogYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFZhbHVlLmg6CisgICAgICAgICogZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6c3RydWN0
dXJlQ2hhaW5Jc1N0aWxsVmFsaWQpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2Vy
OjpoYW5kbGVDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VC
bG9jayk6CisgICAgICAgICogZGZnL0RGR1N0cnVjdHVyZVNldC5oOiBSZW5hbWVkIGZyb20gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5oLgorICAgICAgICAoSlND
OjpERkc6OlN0cnVjdHVyZVNldDo6U3RydWN0dXJlU2V0KToKKyAgICAgICAgKEpTQzo6REZHOjpT
dHJ1Y3R1cmVTZXQ6OmNsZWFyKToKKyAgICAgICAgKEpTQzo6REZHOjpTdHJ1Y3R1cmVTZXQ6OmFk
ZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3RydWN0dXJlU2V0OjphZGRBbGwpOgorICAgICAgICAo
SlNDOjpERkc6OlN0cnVjdHVyZVNldDo6cmVtb3ZlKToKKyAgICAgICAgKEpTQzo6REZHOjpTdHJ1
Y3R1cmVTZXQ6OmNvbnRhaW5zKToKKyAgICAgICAgKEpTQzo6REZHOjpTdHJ1Y3R1cmVTZXQ6Omlz
U3Vic2V0T2YpOgorICAgICAgICAoSlNDOjpERkc6OlN0cnVjdHVyZVNldDo6aXNTdXBlcnNldE9m
KToKKyAgICAgICAgKEpTQzo6REZHOjpTdHJ1Y3R1cmVTZXQ6OnNpemUpOgorICAgICAgICAoSlND
OjpERkc6OlN0cnVjdHVyZVNldDo6YXQpOgorICAgICAgICAoSlNDOjpERkc6OlN0cnVjdHVyZVNl
dDo6b3BlcmF0b3JbXSk6CisgICAgICAgIChKU0M6OkRGRzo6U3RydWN0dXJlU2V0OjpsYXN0KToK
KyAgICAgICAgKEpTQzo6REZHOjpTdHJ1Y3R1cmVTZXQ6OnByZWRpY3Rpb25Gcm9tU3RydWN0dXJl
cyk6CisgICAgICAgIChKU0M6OkRGRzo6U3RydWN0dXJlU2V0OjpvcGVyYXRvcj09KToKKyAgICAg
ICAgKEpTQzo6REZHOjpTdHJ1Y3R1cmVTZXQ6OmR1bXApOgorCiAyMDEyLTAxLTIwICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIHNob3VsZCBub3QgaGF2ZSBj
b2RlIHRoYXQgZGlyZWN0bHkgZGVjb2RlcyB0aGUgc3RhdGVzIG9mIG9sZCBKSVQgaW5saW5lCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODMxNzk5NzQ3YjliMWE0Y2Q4ZDYy
ZWUzNDM0NjAzYTI2YWI0Njg1Mi4uZGI1NmEzYmUzYTZiNDA1MTA3YzY2NWU1ODliM2ZjZmRlOWQ5
YmMyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzUsMTYgKzM1LDEy
IEBAIFNFVChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgQVBJL09wYXF1ZUpTU3RyaW5nLmNw
cAogCiAgICAgYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAotICAgIGJ5dGVjb2RlL0NhbGxMaW5r
U3RhdHVzLmNwcAogICAgIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHAKICAgICBieXRlY29kZS9ERkdF
eGl0UHJvZmlsZS5jcHAKLSAgICBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAogICAgIGJ5dGVj
b2RlL0p1bXBUYWJsZS5jcHAKICAgICBieXRlY29kZS9NZXRob2RDYWxsTGlua0luZm8uY3BwCi0g
ICAgYnl0ZWNvZGUvTWV0aG9kQ2FsbExpbmtTdGF0dXMuY3BwCiAgICAgYnl0ZWNvZGUvT3Bjb2Rl
LmNwcAogICAgIGJ5dGVjb2RlL1ByZWRpY3RlZFR5cGUuY3BwCi0gICAgYnl0ZWNvZGUvUHV0QnlJ
ZFN0YXR1cy5jcHAKICAgICBieXRlY29kZS9TYW1wbGluZ1Rvb2wuY3BwCiAgICAgYnl0ZWNvZGUv
U3RydWN0dXJlU3R1YkluZm8uY3BwCiAgICAgYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlYmQ1Y2UxMWY4ZmY3
ZWE3NTgxZjJjYzYxZDhkNTgzMjVlZDBiMTgwLi4yN2I4Njg0Nzk4ODZiYjM0OWRhYzAyZTlkZThl
YTdjYmQ4MjlmZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtODMsOCArODMsNiBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ2FsbExpbmtTdGF0dXMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nh
bGxSZXR1cm5PZmZzZXRUb0J5dGVjb2RlT2Zmc2V0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlVHlwZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmNwcCBcCkBAIC05NSw4ICs5Myw2IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXZhbENvZGVDYWNoZS5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhwcmVzc2lvblJhbmdlSW5mby5oIFwKLQlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAgXAotCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9HbG9iYWxSZXNvbHZlSW5mby5oIFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvSGFuZGxlckluZm8uaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0luc3RydWN0aW9uLmggXApAQCAtMTA1LDE1ICsxMDEsMTEgQEAgamF2YXNjcmlwdGNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmVJbmZv
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RDYWxsTGlua0luZm8u
Y3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kQ2FsbExpbmtJbmZv
LmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RDYWxsTGlua1N0YXR1
cy5jcHAgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9NZXRob2RDYWxsTGlua1N0
YXR1cy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmNwcCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUHJlZGljdGVkVHlwZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9QcmVkaWN0ZWRUeXBlLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9QcmVkaWN0aW9uVHJhY2tlci5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9QdXRCeUlkU3RhdHVzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TYW1w
bGluZ1Rvb2wuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU2FtcGxpbmdU
b29sLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5m
by5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ogYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvagppbmRleCBmNGE1Nzg1ZDg5Mzc1M2FiMWMxZDM5YjYxYmIwOTI5NTVjMTBj
ZDRhLi4zODYyMjEyM2Y4NDZlMWFhZDg5NGRmY2ZlODkxNGNkZTJkODVjZjA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagpA
QCAtMTQ1MCwzOCArMTQ1MCw2IEBACiAJCQlOYW1lPSJieXRlY29kZSIKIAkJCT4KIAkJCTxGaWxl
Ci0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxieXRlY29kZVxHZXRCeUlkU3RhdHVzLmgiCi0JCQkJ
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGJ5dGVjb2Rl
XFB1dEJ5SWRTdGF0dXMuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0
aXZlUGF0aD0iLi5cLi5cYnl0ZWNvZGVcQ2FsbExpbmtTdGF0dXMuaCIKLQkJCQk+Ci0JCQk8L0Zp
bGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cYnl0ZWNvZGVcTWV0aG9kQ2Fs
bExpbmtTdGF0dXMuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5cLi5cYnl0ZWNvZGVcR2V0QnlJZFN0YXR1cy5jcHAiCi0JCQkJPgotCQkJPC9GaWxl
PgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGJ5dGVjb2RlXFB1dEJ5SWRTdGF0
dXMuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIu
LlwuLlxieXRlY29kZVxDYWxsTGlua1N0YXR1cy5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGJ5dGVjb2RlXE1ldGhvZENhbGxMaW5rU3Rh
dHVzLmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cLi5cYnl0ZWNvZGVcSGFuZGxlckluZm8uaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUwOGZlZTNiZGJlZTBlYTk1OTcwMGEwZWY5YWY2ZGYz
Zjc5Y2M2MzQuLmE2ZjYyOWE4ZDc3MGEzNzg1ZmY4ZTQ4Y2E0ODJhODVmYWEzODAwMTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NCwxNSArODQsNiBAQAogCQkwRjdCMjk0QjE0
QzNDRDJGMDA3QzNEQjEgLyogREZHQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ4MkUxRjE0MTcyQzJGMDAxNzlDOTQgLyogREZH
Q2FwYWJpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEY3QjI5NEMxNEMzQ0Q0MzAwN0MzREIxIC8qIERGR0J5dGVDb2RlQ2FjaGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUYwOENDMTQ2
QkU2MDIwMDA0NzJBOSAvKiBERkdCeXRlQ29kZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3QjI5NEQxNEMzQ0Q0QzAwN0MzREIxIC8q
IERGR0NvbW1vbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZDMDk3N0UxNDY5RUJDNDAwQ0YyNDQyIC8qIERGR0NvbW1vbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGOTMzMjlEMTRDQTdEQzMwMDg1
RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjkzMzI5MzE0Q0E3REMxMDA4NUYzQzYgLyogQ2FsbExpbmtTdGF0
dXMuY3BwICovOyB9OwotCQkwRjkzMzI5RTE0Q0E3REM1MDA4NUYzQzYgLyogQ2FsbExpbmtTdGF0
dXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTMz
Mjk0MTRDQTdEQzEwMDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGOTMzMjlGMTRDQTdEQ0EwMDg1RjND
NiAvKiBHZXRCeUlkU3RhdHVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOTMzMjk1MTRDQTdEQzEwMDg1RjNDNiAvKiBHZXRCeUlkU3RhdHVzLmNw
cCAqLzsgfTsKLQkJMEY5MzMyQTAxNENBN0RDRDAwODVGM0M2IC8qIEdldEJ5SWRTdGF0dXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTMzMjk2MTRD
QTdEQzEwMDg1RjNDNiAvKiBHZXRCeUlkU3RhdHVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY5MzMyQTExNENBN0REMTAwODVGM0M2IC8qIE1l
dGhvZENhbGxMaW5rU3RhdHVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOTMzMjk3MTRDQTdEQzEwMDg1RjNDNiAvKiBNZXRob2RDYWxsTGlua1N0
YXR1cy5jcHAgKi87IH07Ci0JCTBGOTMzMkEyMTRDQTdERDMwMDg1RjNDNiAvKiBNZXRob2RDYWxs
TGlua1N0YXR1cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY5MzMyOTgxNENBN0RDMTAwODVGM0M2IC8qIE1ldGhvZENhbGxMaW5rU3RhdHVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY5MzMyQTMx
NENBN0RENzAwODVGM0M2IC8qIFB1dEJ5SWRTdGF0dXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5MzMyOTkxNENBN0RDMTAwODVGM0M2IC8qIFB1
dEJ5SWRTdGF0dXMuY3BwICovOyB9OwotCQkwRjkzMzJBNDE0Q0E3REQ5MDA4NUYzQzYgLyogUHV0
QnlJZFN0YXR1cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY5MzMyOUExNENBN0RDMTAwODVGM0M2IC8qIFB1dEJ5SWRTdGF0dXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjkzMzJBNTE0Q0E3RERE
MDA4NUYzQzYgLyogU3RydWN0dXJlU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjkzMzI5QjE0Q0E3REMxMDA4NUYzQzYgLyogU3RydWN0dXJlU2V0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY5
NjNCMjcxM0Y3NTNCQjAwMDJEOUIyIC8qIFJlZEJsYWNrVHJlZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5NjNCMjYxM0Y3NTM5OTAwMDJEOUIyIC8q
IFJlZEJsYWNrVHJlZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGOTYzQjJDMTNGODUzRUMwMDAyRDlCMiAvKiBNZXRhQWxsb2NhdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTYzQjJCMTNG
ODUzQzcwMDAyRDlCMiAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLzsgc2V0dGluZ3MgPSB7Q09NUElM
RVJfRkxBR1MgPSAiLWZuby1zdHJpY3QtYWxpYXNpbmciOyB9OyB9OwogCQkwRjk2M0IyRDEzRjg1
NDAyMDAwMkQ5QjIgLyogTWV0YUFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5NjNCMkExM0Y4NTNCRDAwMDJEOUIyIC8qIE1ldGFBbGxv
Y2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTM0LDYgKzEyNSw3IEBACiAJCTBGRDgyRjRCMTQyODA2QTEwMDE3OUM5NCAvKiBCaXRWZWN0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDgy
RjQ5MTQyODA2OTIwMDE3OUM5NCAvKiBCaXRWZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkUyMjhFRDE0MzZBQjI3MDAxOTZDNDggLyog
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZFMjI4RUIxNDM2QUIyMzAwMTk2QzQ4IC8qIE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkUyMjhFRTE0MzZBQjJDMDAxOTZDNDgg
LyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkUyMjhFQTE0MzZBQjIzMDAxOTZDNDggLyogT3B0aW9ucy5jcHAgKi87IH07CisJCTBG
RkY0QkI0MTQzOTU1RTkwMDY1NUJDMCAvKiBERkdTdHJ1Y3R1cmVTZXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRkY0QkIyMTQzOTU1RTYwMDY1NUJD
MCAvKiBERkdTdHJ1Y3R1cmVTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxNDAwMDY3NzEyQTZGNzgzMDA2NEQxMjMgLyogT1NBbGxvY2F0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MDAwNjc2
MTJBNkY3ODMwMDY0RDEyMyAvKiBPU0FsbG9jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0MDAwNjkzMTJBNkY5RTEwMDY0RDEyMyAvKiBP
U0FsbG9jYXRvclBvc2l4LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0MDAwNjkyMTJBNkY5RTEwMDY0RDEyMyAvKiBPU0FsbG9jYXRvclBvc2l4LmNw
cCAqLzsgfTsKIAkJMTQwNTY2QzQxMDdFQzI1NTAwNURCQzhEIC8qIEpTQVBJVmFsdWVXcmFwcGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDg5
NEQ1MEZBRkJBMkQwMDAwMTg2NSAvKiBKU0FQSVZhbHVlV3JhcHBlci5jcHAgKi87IH07CkBAIC04
NzIsMTUgKzg2NCw2IEBACiAJCTBGNzcwMDhFMTQwMkZERDYwMDc4RUIzOSAvKiBTYW1wbGluZ0Nv
dW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2FtcGxpbmdDb3VudGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNzcwMDkxMTQwMkZGMjgwMDc4RUIz
OSAvKiBTYW1wbGluZ0NvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU2FtcGxpbmdDb3VudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY3QjI5NDgxNEMzQ0QyMzAwN0MzREIxIC8qIERGR0NDYWxsSGVscGVycy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdDQ2FsbEhlbHBlcnMuaDsgcGF0aCA9IGRmZy9ERkdD
Q2FsbEhlbHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5MzMyOTMxNENB
N0RDMTAwODVGM0M2IC8qIENhbGxMaW5rU3RhdHVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENhbGxMaW5rU3RhdHVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMEY5MzMyOTQxNENBN0RDMTAwODVGM0M2IC8qIENhbGxMaW5rU3RhdHVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbGxMaW5rU3RhdHVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOTMzMjk1MTRDQTdEQzEwMDg1RjNDNiAvKiBHZXRCeUlk
U3RhdHVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdldEJ5SWRT
dGF0dXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjkzMzI5NjE0Q0E3REMx
MDA4NUYzQzYgLyogR2V0QnlJZFN0YXR1cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHZXRCeUlkU3RhdHVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOTMz
Mjk3MTRDQTdEQzEwMDg1RjNDNiAvKiBNZXRob2RDYWxsTGlua1N0YXR1cy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZXRob2RDYWxsTGlua1N0YXR1cy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOTMzMjk4MTRDQTdEQzEwMDg1RjNDNiAvKiBN
ZXRob2RDYWxsTGlua1N0YXR1cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZXRob2RDYWxsTGlua1N0YXR1cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjkz
MzI5OTE0Q0E3REMxMDA4NUYzQzYgLyogUHV0QnlJZFN0YXR1cy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQdXRCeUlkU3RhdHVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMEY5MzMyOUExNENBN0RDMTAwODVGM0M2IC8qIFB1dEJ5SWRTdGF0dXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHV0QnlJZFN0YXR1cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjkzMzI5QjE0Q0E3REMxMDA4NUYzQzYgLyogU3Ry
dWN0dXJlU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZVNl
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk2M0IyNjEzRjc1Mzk5MDAwMkQ5
QjIgLyogUmVkQmxhY2tUcmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
ZEJsYWNrVHJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk2M0IyQTEzRjg1
M0JEMDAwMkQ5QjIgLyogTWV0YUFsbG9jYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZXRhQWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
OTYzQjJCMTNGODUzQzcwMDAyRDlCMiAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1ldGFBbGxvY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtOTI0LDYgKzkwNyw3IEBACiAJCTBGRDgyRjQ5MTQyODA2OTIwMDE3
OUM5NCAvKiBCaXRWZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQml0
VmVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRTIyOEVBMTQzNkFCMjMw
MDE5NkM0OCAvKiBPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkUyMjhFQjE0
MzZBQjIzMDAxOTZDNDggLyogT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRkY0QkIyMTQz
OTU1RTYwMDY1NUJDMCAvKiBERkdTdHJ1Y3R1cmVTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gREZHU3RydWN0dXJlU2V0Lmg7IHBhdGggPSBkZmcvREZHU3RydWN0dXJlU2V0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MDAwNjc2MTJBNkY3ODMwMDY0RDEy
MyAvKiBPU0FsbG9jYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPU0Fs
bG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDAwMDY5MjEyQTZGOUUx
MDA2NEQxMjMgLyogT1NBbGxvY2F0b3JQb3NpeC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBPU0FsbG9jYXRvclBvc2l4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMTQwRDE3RDYwRThBRDRBOTAwMENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCYXNlUHJpdmF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjQ1Nyw2ICsyNDQxLDcgQEAKIAkJCQk4NkVDOURDMzEzMjhE
RjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCAqLywKIAkJCQk4Njg4MEYxQjE0MzI4
QkI5MDBCMDhENDIgLyogREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgKi8sCiAJCQkJODY4ODBG
NEMxNDM1M0IyMTAwQjA4RDQyIC8qIERGR1NwZWN1bGF0aXZlSklUNjQuY3BwICovLAorCQkJCTBG
RkY0QkIyMTQzOTU1RTYwMDY1NUJDMCAvKiBERkdTdHJ1Y3R1cmVTZXQuaCAqLywKIAkJCQkwRkMw
OTc5RjE0NkIyOEM3MDBDRjI0NDIgLyogREZHVGh1bmtzLmNwcCAqLywKIAkJCQkwRkMwOTdBMDE0
NkIyOEM3MDBDRjI0NDIgLyogREZHVGh1bmtzLmggKi8sCiAJCQkJMEY2MjAxNzIxNDNGQ0QyRjAw
NjhCNzdDIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oICovLApAQCAtMjUyNSwxNSArMjUxMCw2
IEBACiAJCTk2OUEwNzhGMEVEMUQzQUUwMEYxRjY4MSAvKiBieXRlY29kZSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMEY5MzMyOTMxNENBN0RDMTAwODVG
M0M2IC8qIENhbGxMaW5rU3RhdHVzLmNwcCAqLywKLQkJCQkwRjkzMzI5NDE0Q0E3REMxMDA4NUYz
QzYgLyogQ2FsbExpbmtTdGF0dXMuaCAqLywKLQkJCQkwRjkzMzI5NTE0Q0E3REMxMDA4NUYzQzYg
LyogR2V0QnlJZFN0YXR1cy5jcHAgKi8sCi0JCQkJMEY5MzMyOTYxNENBN0RDMTAwODVGM0M2IC8q
IEdldEJ5SWRTdGF0dXMuaCAqLywKLQkJCQkwRjkzMzI5NzE0Q0E3REMxMDA4NUYzQzYgLyogTWV0
aG9kQ2FsbExpbmtTdGF0dXMuY3BwICovLAotCQkJCTBGOTMzMjk4MTRDQTdEQzEwMDg1RjNDNiAv
KiBNZXRob2RDYWxsTGlua1N0YXR1cy5oICovLAotCQkJCTBGOTMzMjk5MTRDQTdEQzEwMDg1RjND
NiAvKiBQdXRCeUlkU3RhdHVzLmNwcCAqLywKLQkJCQkwRjkzMzI5QTE0Q0E3REMxMDA4NUYzQzYg
LyogUHV0QnlJZFN0YXR1cy5oICovLAotCQkJCTBGOTMzMjlCMTRDQTdEQzEwMDg1RjNDNiAvKiBT
dHJ1Y3R1cmVTZXQuaCAqLywKIAkJCQkwRjBCODNCODE0QkNGOTVCMDA4ODVCNEYgLyogQ2FsbFJl
dHVybk9mZnNldFRvQnl0ZWNvZGVPZmZzZXQuaCAqLywKIAkJCQkwRjBCODNCNjE0QkNGOERGMDA4
ODVCNEYgLyogR2xvYmFsUmVzb2x2ZUluZm8uaCAqLywKIAkJCQkwRjBCODNCMjE0QkNGODVFMDA4
ODVCNEYgLyogTWV0aG9kQ2FsbExpbmtJbmZvLmNwcCAqLywKQEAgLTI3NTIsNiArMjcyOCw3IEBA
CiAJCQkJODZCQjA5QzExMzhFMzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0Y2guaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg2RUNBM0ZBMTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NkVDOUREMzEzMjhERjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRp
dmVKSVQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRkY0QkI0MTQzOTU1RTkwMDY1NUJDMCAvKiBE
RkdTdHJ1Y3R1cmVTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzA5N0EyMTQ2QjI4Q0MwMENG
MjQ0MiAvKiBERkdUaHVua3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjIwMTc0MTQzRkNEMzMw
MDY4Qjc3QyAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MThDM0ZEMEUxNkY1Q0QwMEIzNDQ2MCAvKiBEaXNhbGxvd0NUeXBlLmggaW4gSGVhZGVycyAqLywK
QEAgLTMwOTIsMTEgKzMwNjksNiBAQAogCQkJCTBGN0IyOTREMTRDM0NENEMwMDdDM0RCMSAvKiBE
RkdDb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkxQTM5MDU2MTRDMEY0NzIwMEY2NzkwMSAv
KiBVaW50OENsYW1wZWRBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjY5RTg2QzQxNEM2RTU1
MTAwMkMyQzYyIC8qIE51bWJlck9mQ29yZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOTMzMjlF
MTRDQTdEQzUwMDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY5MzMyQTAxNENBN0RDRDAwODVGM0M2IC8qIEdldEJ5SWRTdGF0dXMuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGOTMzMkEyMTRDQTdERDMwMDg1RjNDNiAvKiBNZXRob2RDYWxsTGlua1N0YXR1cy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5MzMyQTQxNENBN0REOTAwODVGM0M2IC8qIFB1dEJ5SWRT
dGF0dXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOTMzMkE1MTRDQTdEREQwMDg1RjNDNiAvKiBT
dHJ1Y3R1cmVTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMzYzNiwxMCArMzYwOCw2IEBACiAJCQkJ
MEYwQjgzQjAxNEJDRjcxNjAwODg1QjRGIC8qIENhbGxMaW5rSW5mby5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjBCODNCNDE0QkNGODYwMDA4ODVCNEYgLyogTWV0aG9kQ2FsbExpbmtJbmZvLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUY2OUU4NkMzMTRDNkU1NTEwMDJDMkM2MiAvKiBOdW1iZXJP
ZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGOTMzMjlEMTRDQTdEQzMwMDg1RjNDNiAv
KiBDYWxsTGlua1N0YXR1cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjkzMzI5RjE0Q0E3RENB
MDA4NUYzQzYgLyogR2V0QnlJZFN0YXR1cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjkzMzJB
MTE0Q0E3REQxMDA4NUYzQzYgLyogTWV0aG9kQ2FsbExpbmtTdGF0dXMuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEY5MzMyQTMxNENBN0RENzAwODVGM0M2IC8qIFB1dEJ5SWRTdGF0dXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCmluZGV4IDNlZjZhYjlmNzUxZDEx
NWE5N2IxNjA2OWFmOTIwMmEwMjMxZWRkNDMuLjAwMmI0OGQ2NmYyNDE1MTY4MDgxMTdmZDFiMDRh
NDBhYWI4OTJmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9UYXJnZXQucHJpCkBAIC01MCwxNiArNTAsMTIg
QEAgU09VUkNFUyArPSBcCiAgICAgYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcCBcCiAg
ICAgYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyU0g0LmNwcCBcCiAgICAgYnl0ZWNvZGUvQ2FsbExp
bmtJbmZvLmNwcCBcCi0gICAgYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwIFwKICAgICBieXRl
Y29kZS9Db2RlQmxvY2suY3BwIFwKICAgICBieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAgXAot
ICAgIGJ5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwIFwKICAgICBieXRlY29kZS9KdW1wVGFibGUu
Y3BwIFwKICAgICBieXRlY29kZS9NZXRob2RDYWxsTGlua0luZm8uY3BwIFwKLSAgICBieXRlY29k
ZS9NZXRob2RDYWxsTGlua1N0YXR1cy5jcHAgXAogICAgIGJ5dGVjb2RlL09wY29kZS5jcHAgXAog
ICAgIGJ5dGVjb2RlL1ByZWRpY3RlZFR5cGUuY3BwIFwKLSAgICBieXRlY29kZS9QdXRCeUlkU3Rh
dHVzLmNwcCBcCiAgICAgYnl0ZWNvZGUvU2FtcGxpbmdUb29sLmNwcCBcCiAgICAgYnl0ZWNvZGUv
U3RydWN0dXJlU3R1YkluZm8uY3BwIFwKICAgICBieXRlY29kZS9WYWx1ZVByb2ZpbGUuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmVkYzg0NGU4ZWIzMWIxNDdmY2JiMzQ0
MjNiOWRmMWM2OTExODE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDYWxs
TGlua1N0YXR1cy5oIgotCi0jaW5jbHVkZSAiQ29kZUJsb2NrLmgiCi0KLW5hbWVzcGFjZSBKU0Mg
ewotCi1DYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sq
IHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpCi17Ci0jaWYgRU5BQkxFKEpJ
VCkKLSAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXMoCi0gICAgICAgIHByb2ZpbGVkQmxvY2stPmdl
dENhbGxMaW5rSW5mbyhieXRlY29kZUluZGV4KS5sYXN0U2VlbkNhbGxlZS5nZXQoKSwKLSAgICAg
ICAgcHJvZmlsZWRCbG9jay0+Y291bGRUYWtlU2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkpOwotI2Vs
c2UKLSAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXMoMCwgZmFsc2UpOwotI2VuZGlmCi19Ci0KLX0g
Ly8gbmFtZXNwYWNlIEpTQwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ2FsbExpbmtTdGF0dXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
YWxsTGlua1N0YXR1cy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMWM3NDEwMTY3
MzBjNzg3ZWZiMGU4NzE2ZDc2ZTU4ZTNlNzBlNjVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxs
TGlua1N0YXR1cy5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIENhbGxMaW5rU3RhdHVz
X2gKLSNkZWZpbmUgQ2FsbExpbmtTdGF0dXNfaAotCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3Mg
SlNGdW5jdGlvbjsKLWNsYXNzIENvZGVCbG9jazsKLQotY2xhc3MgQ2FsbExpbmtTdGF0dXMgewot
cHVibGljOgotICAgIENhbGxMaW5rU3RhdHVzKCkKLSAgICAgICAgOiBtX2NhbGxUYXJnZXQoMCkK
LSAgICAgICAgLCBtX2NvdWxkVGFrZVNsb3dQYXRoKGZhbHNlKQotICAgIHsKLSAgICB9Ci0gICAg
Ci0gICAgQ2FsbExpbmtTdGF0dXMoSlNGdW5jdGlvbiogY2FsbFRhcmdldCwgYm9vbCBjb3VsZFRh
a2VTbG93UGF0aCkKLSAgICAgICAgOiBtX2NhbGxUYXJnZXQoY2FsbFRhcmdldCkKLSAgICAgICAg
LCBtX2NvdWxkVGFrZVNsb3dQYXRoKGNvdWxkVGFrZVNsb3dQYXRoKQotICAgIHsKLSAgICB9Ci0g
ICAgCi0gICAgc3RhdGljIENhbGxMaW5rU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiwgdW5z
aWduZWQgYnl0ZWNvZGVJbmRleCk7Ci0gICAgCi0gICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0
dXJuICEhbV9jYWxsVGFyZ2V0OyB9Ci0gICAgCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7
IHJldHVybiAhbV9jYWxsVGFyZ2V0OyB9Ci0gICAgCi0gICAgYm9vbCBjb3VsZFRha2VTbG93UGF0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fY291bGRUYWtlU2xvd1BhdGg7IH0KLSAgICAKLSAgICBKU0Z1
bmN0aW9uKiBjYWxsVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9jYWxsVGFyZ2V0OyB9Ci0gICAg
Ci1wcml2YXRlOgotICAgIEpTRnVuY3Rpb24qIG1fY2FsbFRhcmdldDsKLSAgICBib29sIG1fY291
bGRUYWtlU2xvd1BhdGg7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2VuZGlmIC8vIENh
bGxMaW5rU3RhdHVzX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0dldEJ5SWRTdGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dl
dEJ5SWRTdGF0dXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDAxZTgyNWEy
NTE3MmUzMGMzNmJiMDFjMTk2ZWI4ZTViODdiYjc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRC
eUlkU3RhdHVzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgiCi0KLSNpbmNsdWRlICJDb2RlQmxvY2suaCIKLQot
bmFtZXNwYWNlIEpTQyB7Ci0KLUdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
cihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIElkZW50
aWZpZXImIGlkZW50KQotewotI2lmIEVOQUJMRShKSVQpCi0gICAgLy8gRmlyc3QgY2hlY2sgaWYg
aXQgbWFrZXMgZWl0aGVyIGNhbGxzLCBpbiB3aGljaCBjYXNlIHdlIHdhbnQgdG8gYmUgc3VwZXIg
Y2FyZWZ1bCwgb3IKLSAgICAvLyBpZiBpdCdzIG5vdCBzZXQgYXQgYWxsLCBpbiB3aGljaCBjYXNl
IHdlIHB1bnQuCi0gICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gcHJvZmlsZWRCbG9j
ay0+Z2V0U3R1YkluZm8oYnl0ZWNvZGVJbmRleCk7Ci0gICAgaWYgKCFzdHViSW5mby5zZWVuKQot
ICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCBTdHJ1Y3R1cmVTZXQo
KSwgbm90Rm91bmQpOwotICAgIAotICAgIFBvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdCog
bGlzdDsKLSAgICBpbnQgbGlzdFNpemU7Ci0gICAgc3dpdGNoIChzdHViSW5mby5hY2Nlc3NUeXBl
KSB7Ci0gICAgY2FzZSBhY2Nlc3NfZ2V0X2J5X2lkX3NlbGZfbGlzdDoKLSAgICAgICAgbGlzdCA9
IHN0dWJJbmZvLnUuZ2V0QnlJZFNlbGZMaXN0LnN0cnVjdHVyZUxpc3Q7Ci0gICAgICAgIGxpc3RT
aXplID0gc3R1YkluZm8udS5nZXRCeUlkU2VsZkxpc3QubGlzdFNpemU7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgYWNjZXNzX2dldF9ieV9pZF9wcm90b19saXN0OgotICAgICAgICBsaXN0ID0g
c3R1YkluZm8udS5nZXRCeUlkUHJvdG9MaXN0LnN0cnVjdHVyZUxpc3Q7Ci0gICAgICAgIGxpc3RT
aXplID0gc3R1YkluZm8udS5nZXRCeUlkUHJvdG9MaXN0Lmxpc3RTaXplOwotICAgICAgICBicmVh
azsKLSAgICBkZWZhdWx0OgotICAgICAgICBsaXN0ID0gMDsKLSAgICAgICAgbGlzdFNpemUgPSAw
OwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0U2l6
ZTsgKytpKSB7Ci0gICAgICAgIGlmICghbGlzdC0+bGlzdFtpXS5pc0RpcmVjdCkKLSAgICAgICAg
ICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKE1ha2VzQ2FsbHMsIFN0cnVjdHVyZVNldCgpLCBub3RG
b3VuZCk7Ci0gICAgfQotICAgIAotICAgIC8vIE5leHQgY2hlY2sgaWYgaXQgdGFrZXMgc2xvdyBj
YXNlLCBpbiB3aGljaCBjYXNlIHdlIHdhbnQgdG8gYmUga2luZCBvZiBjYXJlZnVsLgotICAgIGlm
IChwcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93Q2FzZShieXRlY29kZUluZGV4KSkKLSAg
ICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgU3RydWN0dXJlU2V0KCks
IG5vdEZvdW5kKTsKLSAgICAKLSAgICAvLyBGaW5hbGx5IGZpZ3VyZSBvdXQgaWYgd2UgY2FuIGRl
cml2ZSBhbiBhY2Nlc3Mgc3RyYXRlZ3kuCi0gICAgR2V0QnlJZFN0YXR1cyByZXN1bHQ7Ci0gICAg
c3dpdGNoIChzdHViSW5mby5hY2Nlc3NUeXBlKSB7Ci0gICAgY2FzZSBhY2Nlc3NfdW5zZXQ6Ci0g
ICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24sIFN0cnVjdHVyZVNldCgp
LCBub3RGb3VuZCk7Ci0gICAgICAgIAotICAgIGNhc2UgYWNjZXNzX2dldF9ieV9pZF9zZWxmOiB7
Ci0gICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gc3R1YkluZm8udS5nZXRCeUlkU2VsZi5i
YXNlT2JqZWN0U3RydWN0dXJlLmdldCgpOwotICAgICAgICByZXN1bHQubV9vZmZzZXQgPSBzdHJ1
Y3R1cmUtPmdldCgqcHJvZmlsZWRCbG9jay0+Z2xvYmFsRGF0YSgpLCBpZGVudCk7Ci0gICAgICAg
IAotICAgICAgICBpZiAocmVzdWx0Lm1fb2Zmc2V0ICE9IG5vdEZvdW5kKQotICAgICAgICAgICAg
cmVzdWx0Lm1fc3RydWN0dXJlU2V0LmFkZChzdHJ1Y3R1cmUpOwotICAgICAgICAKLSAgICAgICAg
aWYgKHJlc3VsdC5tX29mZnNldCAhPSBub3RGb3VuZCkKLSAgICAgICAgICAgIEFTU0VSVChyZXN1
bHQubV9zdHJ1Y3R1cmVTZXQuc2l6ZSgpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgICAg
ICAKLSAgICBjYXNlIGFjY2Vzc19nZXRfYnlfaWRfc2VsZl9saXN0OiB7Ci0gICAgICAgIFBvbHlt
b3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdCogbGlzdCA9IHN0dWJJbmZvLnUuZ2V0QnlJZFByb3Rv
TGlzdC5zdHJ1Y3R1cmVMaXN0OwotICAgICAgICB1bnNpZ25lZCBzaXplID0gc3R1YkluZm8udS5n
ZXRCeUlkUHJvdG9MaXN0Lmxpc3RTaXplOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBBU1NFUlQobGlzdC0+bGlzdFtpXS5pc0RpcmVj
dCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbGlz
dC0+bGlzdFtpXS5iYXNlLmdldCgpOwotICAgICAgICAgICAgaWYgKHJlc3VsdC5tX3N0cnVjdHVy
ZVNldC5jb250YWlucyhzdHJ1Y3R1cmUpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBzaXplX3QgbXlPZmZzZXQgPSBzdHJ1Y3R1cmUtPmdldCgq
cHJvZmlsZWRCbG9jay0+Z2xvYmFsRGF0YSgpLCBpZGVudCk7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIGlmIChteU9mZnNldCA9PSBub3RGb3VuZCkgewotICAgICAgICAgICAgICAgIHJlc3Vs
dC5tX29mZnNldCA9IG5vdEZvdW5kOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghaSkKLSAgICAgICAg
ICAgICAgICByZXN1bHQubV9vZmZzZXQgPSBteU9mZnNldDsKLSAgICAgICAgICAgIGVsc2UgaWYg
KHJlc3VsdC5tX29mZnNldCAhPSBteU9mZnNldCkgewotICAgICAgICAgICAgICAgIHJlc3VsdC5t
X29mZnNldCA9IG5vdEZvdW5kOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIHJlc3VsdC5tX3N0cnVjdHVyZVNl
dC5hZGQoc3RydWN0dXJlKTsKLSAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgaWYgKHJlc3VsdC5tX29mZnNldCAhPSBub3RGb3VuZCkKLSAgICAgICAgICAgIEFTU0VSVChy
ZXN1bHQubV9zdHJ1Y3R1cmVTZXQuc2l6ZSgpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAg
ICAgICAKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlQocmVzdWx0Lm1fb2Zmc2V0ID09IG5v
dEZvdW5kKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIAotICAgIGlmIChyZXN1bHQubV9v
ZmZzZXQgPT0gbm90Rm91bmQpIHsKLSAgICAgICAgcmVzdWx0Lm1fc3RhdGUgPSBUYWtlc1Nsb3dQ
YXRoOwotICAgICAgICByZXN1bHQubV9zdHJ1Y3R1cmVTZXQuY2xlYXIoKTsKLSAgICB9IGVsc2UK
LSAgICAgICAgcmVzdWx0Lm1fc3RhdGUgPSBTaW1wbGVEaXJlY3Q7Ci0gICAgCi0gICAgcmV0dXJu
IHJlc3VsdDsKLSNlbHNlIC8vIEVOQUJMRShKSVQpCi0gICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMo
Tm9JbmZvcm1hdGlvbiwgU3RydWN0dXJlU2V0KCksIG5vdEZvdW5kKTsKLSNlbmRpZiAvLyBFTkFC
TEUoSklUKQotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwZTUwZTc2ZGRjMTVlODUzNmZlNmU5ZTgxOWY5MDY4OTNmOWVmOTkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBH
ZXRCeUlkU3RhdHVzX2gKLSNkZWZpbmUgR2V0QnlJZFN0YXR1c19oCi0KLSNpbmNsdWRlICJTdHJ1
Y3R1cmVTZXQuaCIKLSNpbmNsdWRlIDx3dGYvTm90Rm91bmQuaD4KLQotbmFtZXNwYWNlIEpTQyB7
Ci0KLWNsYXNzIENvZGVCbG9jazsKLWNsYXNzIElkZW50aWZpZXI7Ci0KLWNsYXNzIEdldEJ5SWRT
dGF0dXMgewotcHVibGljOgotICAgIGVudW0gU3RhdGUgewotICAgICAgICBOb0luZm9ybWF0aW9u
LCAgLy8gSXQncyB1bmNhY2hlZCBzbyB3ZSBoYXZlIG5vIGluZm9ybWF0aW9uLgotICAgICAgICBT
aW1wbGVEaXJlY3QsICAgLy8gSXQncyBjYWNoZWQgZm9yIGEgZGlyZWN0IGFjY2VzcyB0byBhIGtu
b3duIG9iamVjdCBwcm9wZXJ0eS4KLSAgICAgICAgVGFrZXNTbG93UGF0aCwgIC8vIEl0J3Mga25v
d24gdG8gb2Z0ZW4gdGFrZSBzbG93IHBhdGguCi0gICAgICAgIE1ha2VzQ2FsbHMgICAgICAvLyBJ
dCdzIGtub3duIHRvIHRha2UgcGF0aHMgdGhhdCBtYWtlIGNhbGxzLgotICAgIH07Ci0KLSAgICBH
ZXRCeUlkU3RhdHVzKCkKLSAgICAgICAgOiBtX3N0YXRlKE5vSW5mb3JtYXRpb24pCi0gICAgICAg
ICwgbV9vZmZzZXQobm90Rm91bmQpCi0gICAgewotICAgIH0KLSAgICAKLSAgICBHZXRCeUlkU3Rh
dHVzKFN0YXRlIHN0YXRlLCBjb25zdCBTdHJ1Y3R1cmVTZXQmIHN0cnVjdHVyZVNldCwgc2l6ZV90
IG9mZnNldCkKLSAgICAgICAgOiBtX3N0YXRlKHN0YXRlKQotICAgICAgICAsIG1fc3RydWN0dXJl
U2V0KHN0cnVjdHVyZVNldCkKLSAgICAgICAgLCBtX29mZnNldChvZmZzZXQpCi0gICAgewotICAg
ICAgICBBU1NFUlQoKHN0YXRlID09IFNpbXBsZURpcmVjdCkgPT0gKG9mZnNldCAhPSBub3RGb3Vu
ZCkpOwotICAgIH0KLSAgICAKLSAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yKENv
ZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIElkZW50aWZpZXImKTsKLSAgICAKLSAg
ICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KLSAgICAKLSAgICBib29s
IGlzU2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBOb0luZm9ybWF0aW9uOyB9Ci0gICAg
Ym9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhaXNTZXQoKTsgfQotICAgIGJvb2wgaXNT
aW1wbGVEaXJlY3QoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlID09IFNpbXBsZURpcmVjdDsgfQot
ICAgIGJvb2wgdGFrZXNTbG93UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgPT0gVGFrZXNT
bG93UGF0aCB8fCBtX3N0YXRlID09IE1ha2VzQ2FsbHM7IH0KLSAgICBib29sIG1ha2VzQ2FsbHMo
KSBjb25zdCB7IHJldHVybiBtX3N0YXRlID09IE1ha2VzQ2FsbHM7IH0KLSAgICAKLSAgICBjb25z
dCBTdHJ1Y3R1cmVTZXQmIHN0cnVjdHVyZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RydWN0dXJl
U2V0OyB9Ci0gICAgc2l6ZV90IG9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0OyB9Ci0g
ICAgCi1wcml2YXRlOgotICAgIFN0YXRlIG1fc3RhdGU7Ci0gICAgU3RydWN0dXJlU2V0IG1fc3Ry
dWN0dXJlU2V0OwotICAgIHNpemVfdCBtX29mZnNldDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpT
QwotCi0jZW5kaWYgLy8gUHJvcGVydHlBY2Nlc3NTdGF0dXNfaAotCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kQ2FsbExpbmtTdGF0dXMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01ldGhvZENhbGxMaW5rU3RhdHVzLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ3MDRlZjY2OWUwYjQ0ODFjMDRhZTQ2MDkzMTI5
MGJlZDQ2Y2VlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTWV0aG9kQ2FsbExpbmtTdGF0dXMuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTWV0
aG9kQ2FsbExpbmtTdGF0dXMuaCIKLQotI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotCi1uYW1lc3Bh
Y2UgSlNDIHsKLQotTWV0aG9kQ2FsbExpbmtTdGF0dXMgTWV0aG9kQ2FsbExpbmtTdGF0dXM6OmNv
bXB1dGVGb3IoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4
KQotewotI2lmIEVOQUJMRShKSVQpCi0gICAgTWV0aG9kQ2FsbExpbmtJbmZvJiBtZXRob2RDYWxs
ID0gcHJvZmlsZWRCbG9jay0+Z2V0TWV0aG9kQ2FsbExpbmtJbmZvKGJ5dGVjb2RlSW5kZXgpOwot
ICAgIAotICAgIGlmICghbWV0aG9kQ2FsbC5zZWVuIHx8ICFtZXRob2RDYWxsLmNhY2hlZFN0cnVj
dHVyZSkKLSAgICAgICAgcmV0dXJuIE1ldGhvZENhbGxMaW5rU3RhdHVzKCk7Ci0gICAgCi0gICAg
aWYgKG1ldGhvZENhbGwuY2FjaGVkUHJvdG90eXBlLmdldCgpID09IHByb2ZpbGVkQmxvY2stPmds
b2JhbE9iamVjdCgpLT5tZXRob2RDYWxsRHVtbXkoKSkgewotICAgICAgICByZXR1cm4gTWV0aG9k
Q2FsbExpbmtTdGF0dXMoCi0gICAgICAgICAgICBtZXRob2RDYWxsLmNhY2hlZFN0cnVjdHVyZS5n
ZXQoKSwKLSAgICAgICAgICAgIDAsCi0gICAgICAgICAgICBtZXRob2RDYWxsLmNhY2hlZEZ1bmN0
aW9uLmdldCgpLAotICAgICAgICAgICAgMCk7Ci0gICAgfQotICAgIAotICAgIHJldHVybiBNZXRo
b2RDYWxsTGlua1N0YXR1cygKLSAgICAgICAgbWV0aG9kQ2FsbC5jYWNoZWRTdHJ1Y3R1cmUuZ2V0
KCksCi0gICAgICAgIG1ldGhvZENhbGwuY2FjaGVkUHJvdG90eXBlU3RydWN0dXJlLmdldCgpLAot
ICAgICAgICBtZXRob2RDYWxsLmNhY2hlZEZ1bmN0aW9uLmdldCgpLAotICAgICAgICBtZXRob2RD
YWxsLmNhY2hlZFByb3RvdHlwZS5nZXQoKSk7Ci0jZWxzZSAvLyBFTkFCTEUoSklUKQotICAgIHJl
dHVybiBNZXRob2RDYWxsTGlua1N0YXR1cygpOwotI2VuZGlmIC8vIEVOQUJMRShKSVQpCi19Ci0K
LX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL01ldGhvZENhbGxMaW5rU3RhdHVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvTWV0aG9kQ2FsbExpbmtTdGF0dXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzNkMTFhMWQ4NDgzOGUxMTYwODE3NzllYTJhN2I3N2Q3MzZmYmRiZi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvTWV0aG9kQ2FsbExpbmtTdGF0dXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lm
bmRlZiBNZXRob2RDYWxsTGlua1N0YXR1c19oCi0jZGVmaW5lIE1ldGhvZENhbGxMaW5rU3RhdHVz
X2gKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIENvZGVCbG9jazsKLWNsYXNzIEpTT2JqZWN0
OwotY2xhc3MgU3RydWN0dXJlOwotCi1jbGFzcyBNZXRob2RDYWxsTGlua1N0YXR1cyB7Ci1wdWJs
aWM6Ci0gICAgTWV0aG9kQ2FsbExpbmtTdGF0dXMoKQotICAgICAgICA6IG1fc3RydWN0dXJlKDAp
Ci0gICAgICAgICwgbV9wcm90b3R5cGVTdHJ1Y3R1cmUoMCkKLSAgICAgICAgLCBtX2Z1bmN0aW9u
KDApCi0gICAgICAgICwgbV9wcm90b3R5cGUoMCkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIE1l
dGhvZENhbGxMaW5rU3RhdHVzKAotICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwKLSAgICAg
ICAgU3RydWN0dXJlKiBwcm90b3R5cGVTdHJ1Y3R1cmUsCi0gICAgICAgIEpTT2JqZWN0KiBmdW5j
dGlvbiwKLSAgICAgICAgSlNPYmplY3QqIHByb3RvdHlwZSkKLSAgICAgICAgOiBtX3N0cnVjdHVy
ZShzdHJ1Y3R1cmUpCi0gICAgICAgICwgbV9wcm90b3R5cGVTdHJ1Y3R1cmUocHJvdG90eXBlU3Ry
dWN0dXJlKQotICAgICAgICAsIG1fZnVuY3Rpb24oZnVuY3Rpb24pCi0gICAgICAgICwgbV9wcm90
b3R5cGUocHJvdG90eXBlKQotICAgIHsKLSAgICAgICAgaWYgKCFtX2Z1bmN0aW9uKSB7Ci0gICAg
ICAgICAgICBBU1NFUlQoIW1fc3RydWN0dXJlKTsKLSAgICAgICAgICAgIEFTU0VSVCghbV9wcm90
b3R5cGVTdHJ1Y3R1cmUpOwotICAgICAgICAgICAgQVNTRVJUKCFtX3Byb3RvdHlwZSk7Ci0gICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgQVNTRVJUKG1fc3RydWN0dXJlKTsKLSAgICAgICAgCi0g
ICAgICAgIEFTU0VSVCghbV9wcm90b3R5cGUgPT0gIW1fcHJvdG90eXBlU3RydWN0dXJlKTsKLSAg
ICB9Ci0gICAgCi0gICAgc3RhdGljIE1ldGhvZENhbGxMaW5rU3RhdHVzIGNvbXB1dGVGb3IoQ29k
ZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7Ci0KLSAgICBib29sIGlzU2V0KCkgY29u
c3QgeyByZXR1cm4gISFtX2Z1bmN0aW9uOyB9Ci0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7
IHJldHVybiAhbV9mdW5jdGlvbjsgfQotICAgIAotICAgIGJvb2wgbmVlZHNQcm90b3R5cGVDaGVj
aygpIGNvbnN0IHsgcmV0dXJuICEhbV9wcm90b3R5cGU7IH0KLSAgICAKLSAgICBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSgpIHsgcmV0dXJuIG1fc3RydWN0dXJlOyB9Ci0gICAgU3RydWN0dXJlKiBwcm90
b3R5cGVTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX3Byb3RvdHlwZVN0cnVjdHVyZTsgfQotICAgIEpT
T2JqZWN0KiBmdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb247IH0KLSAgICBKU09i
amVjdCogcHJvdG90eXBlKCkgY29uc3QgeyByZXR1cm4gbV9wcm90b3R5cGU7IH0KLSAgICAKLXBy
aXZhdGU6Ci0gICAgU3RydWN0dXJlKiBtX3N0cnVjdHVyZTsKLSAgICBTdHJ1Y3R1cmUqIG1fcHJv
dG90eXBlU3RydWN0dXJlOwotICAgIEpTT2JqZWN0KiBtX2Z1bmN0aW9uOwotICAgIEpTT2JqZWN0
KiBtX3Byb3RvdHlwZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gTWV0
aG9kQ2FsbExpbmtTdGF0dXNfaAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvUHV0QnlJZFN0YXR1cy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhMGU1
ZjY4NGY0M2U1YjYyZjYzYzFlNDUzOTNhZTQ5NGY5MjQ5ZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1B1dEJ5SWRTdGF0dXMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiUHV0QnlJZFN0YXR1cy5oIgotCi0jaW5jbHVkZSAiQ29kZUJsb2NrLmgi
Ci0jaW5jbHVkZSAiU3RydWN0dXJlLmgiCi0jaW5jbHVkZSAiU3RydWN0dXJlQ2hhaW4uaCIKLQot
bmFtZXNwYWNlIEpTQyB7Ci0KLVB1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
cihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIElkZW50
aWZpZXImIGlkZW50KQotewotI2lmIEVOQUJMRShKSVQpCi0gICAgaWYgKHByb2ZpbGVkQmxvY2st
Pmxpa2VseVRvVGFrZVNsb3dDYXNlKGJ5dGVjb2RlSW5kZXgpKQotICAgICAgICByZXR1cm4gUHV0
QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCAwLCAwLCAwLCBub3RGb3VuZCk7Ci0gICAgCi0gICAg
U3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gcHJvZmlsZWRCbG9jay0+Z2V0U3R1YkluZm8o
Ynl0ZWNvZGVJbmRleCk7Ci0gICAgaWYgKCFzdHViSW5mby5zZWVuKQotICAgICAgICByZXR1cm4g
UHV0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCAwLCAwLCAwLCBub3RGb3VuZCk7Ci0gICAgCi0g
ICAgc3dpdGNoIChzdHViSW5mby5hY2Nlc3NUeXBlKSB7Ci0gICAgY2FzZSBhY2Nlc3NfdW5zZXQ6
Ci0gICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24sIDAsIDAsIDAsIG5v
dEZvdW5kKTsKLSAgICAgICAgCi0gICAgY2FzZSBhY2Nlc3NfcHV0X2J5X2lkX3JlcGxhY2U6IHsK
LSAgICAgICAgc2l6ZV90IG9mZnNldCA9IHN0dWJJbmZvLnUucHV0QnlJZFJlcGxhY2UuYmFzZU9i
amVjdFN0cnVjdHVyZS0+Z2V0KAotICAgICAgICAgICAgKnByb2ZpbGVkQmxvY2stPmdsb2JhbERh
dGEoKSwgaWRlbnQpOwotICAgICAgICBpZiAob2Zmc2V0ICE9IG5vdEZvdW5kKSB7Ci0gICAgICAg
ICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cygKLSAgICAgICAgICAgICAgICBTaW1wbGVSZXBsYWNl
LAotICAgICAgICAgICAgICAgIHN0dWJJbmZvLnUucHV0QnlJZFJlcGxhY2UuYmFzZU9iamVjdFN0
cnVjdHVyZS5nZXQoKSwKLSAgICAgICAgICAgICAgICAwLCAwLAotICAgICAgICAgICAgICAgIG9m
ZnNldCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoVGFrZXNTbG93
UGF0aCwgMCwgMCwgMCwgbm90Rm91bmQpOwotICAgIH0KLSAgICAgICAgCi0gICAgY2FzZSBhY2Nl
c3NfcHV0X2J5X2lkX3RyYW5zaXRpb25fbm9ybWFsOgotICAgIGNhc2UgYWNjZXNzX3B1dF9ieV9p
ZF90cmFuc2l0aW9uX2RpcmVjdDogewotICAgICAgICBzaXplX3Qgb2Zmc2V0ID0gc3R1YkluZm8u
dS5wdXRCeUlkVHJhbnNpdGlvbi5zdHJ1Y3R1cmUtPmdldCgKLSAgICAgICAgICAgICpwcm9maWxl
ZEJsb2NrLT5nbG9iYWxEYXRhKCksIGlkZW50KTsKLSAgICAgICAgaWYgKG9mZnNldCAhPSBub3RG
b3VuZCkgewotICAgICAgICAgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoCi0gICAgICAgICAgICAg
ICAgU2ltcGxlVHJhbnNpdGlvbiwKLSAgICAgICAgICAgICAgICBzdHViSW5mby51LnB1dEJ5SWRU
cmFuc2l0aW9uLnByZXZpb3VzU3RydWN0dXJlLmdldCgpLAotICAgICAgICAgICAgICAgIHN0dWJJ
bmZvLnUucHV0QnlJZFRyYW5zaXRpb24uc3RydWN0dXJlLmdldCgpLAotICAgICAgICAgICAgICAg
IHN0dWJJbmZvLnUucHV0QnlJZFRyYW5zaXRpb24uY2hhaW4uZ2V0KCksCi0gICAgICAgICAgICAg
ICAgb2Zmc2V0KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtl
c1Nsb3dQYXRoLCAwLCAwLCAwLCBub3RGb3VuZCk7Ci0gICAgfQotICAgICAgICAKLSAgICBkZWZh
dWx0OgotICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCAwLCAwLCAw
LCBub3RGb3VuZCk7Ci0gICAgfQotI2Vsc2UgLy8gRU5BQkxFKEpJVCkKLSAgICByZXR1cm4gUHV0
QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCAwLCAwLCAwLCBub3RGb3VuZCk7Ci0jZW5kaWYgLy8g
RU5BQkxFKEpJVCkKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiMzNmNGQwOWM3NDgxZTIyMTc3OWU1ODk5OWY0ODNkOWI3NDY3NzUxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZu
ZGVmIFB1dEJ5SWRTdGF0dXNfaAotI2RlZmluZSBQdXRCeUlkU3RhdHVzX2gKLQotI2luY2x1ZGUg
PHd0Zi9Ob3RGb3VuZC5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgQ29kZUJsb2NrOwot
Y2xhc3MgSWRlbnRpZmllcjsKLWNsYXNzIFN0cnVjdHVyZTsKLWNsYXNzIFN0cnVjdHVyZUNoYWlu
OwotCi1jbGFzcyBQdXRCeUlkU3RhdHVzIHsKLXB1YmxpYzoKLSAgICBlbnVtIFN0YXRlIHsKLSAg
ICAgICAgLy8gSXQncyB1bmNhY2hlZCBzbyB3ZSBoYXZlIG5vIGluZm9ybWF0aW9uLgotICAgICAg
ICBOb0luZm9ybWF0aW9uLAotICAgICAgICAvLyBJdCdzIGNhY2hlZCBhcyBhIGRpcmVjdCBzdG9y
ZSBpbnRvIGFuIG9iamVjdCBwcm9wZXJ0eSBmb3IgY2FzZXMgd2hlcmUgdGhlIG9iamVjdAotICAg
ICAgICAvLyBhbHJlYWR5IGhhcyB0aGUgcHJvcGVydHkuCi0gICAgICAgIFNpbXBsZVJlcGxhY2Us
Ci0gICAgICAgIC8vIEl0J3MgY2FjaGVkIGFzIGEgdHJhbnNpdGlvbiBmcm9tIG9uZSBzdHJ1Y3R1
cmUgdGhhdCBsYWNrcyB0aGUgcHJvcGVydHkgdG8gb25lIHRoYXQKLSAgICAgICAgLy8gaW5jbHVk
ZXMgdGhlIHByb3BlcnR5LCBhbmQgYSBkaXJlY3Qgc3RvcmUgdG8gdGhpcyBuZXcgcHJvcGVydHku
Ci0gICAgICAgIFNpbXBsZVRyYW5zaXRpb24sCi0gICAgICAgIC8vIEl0J3Mga25vd24gdG8gb2Z0
ZW4gdGFrZSBzbG93IHBhdGguCi0gICAgICAgIFRha2VzU2xvd1BhdGgKLSAgICB9OwotICAgIAot
ICAgIFB1dEJ5SWRTdGF0dXMoKQotICAgICAgICA6IG1fc3RhdGUoTm9JbmZvcm1hdGlvbikKLSAg
ICAgICAgLCBtX29sZFN0cnVjdHVyZSgwKQotICAgICAgICAsIG1fbmV3U3RydWN0dXJlKDApCi0g
ICAgICAgICwgbV9zdHJ1Y3R1cmVDaGFpbigwKQotICAgICAgICAsIG1fb2Zmc2V0KG5vdEZvdW5k
KQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgUHV0QnlJZFN0YXR1cygKLSAgICAgICAgU3RhdGUg
c3RhdGUsCi0gICAgICAgIFN0cnVjdHVyZSogb2xkU3RydWN0dXJlLAotICAgICAgICBTdHJ1Y3R1
cmUqIG5ld1N0cnVjdHVyZSwKLSAgICAgICAgU3RydWN0dXJlQ2hhaW4qIHN0cnVjdHVyZUNoYWlu
LAotICAgICAgICBzaXplX3Qgb2Zmc2V0KQotICAgICAgICA6IG1fc3RhdGUoc3RhdGUpCi0gICAg
ICAgICwgbV9vbGRTdHJ1Y3R1cmUob2xkU3RydWN0dXJlKQotICAgICAgICAsIG1fbmV3U3RydWN0
dXJlKG5ld1N0cnVjdHVyZSkKLSAgICAgICAgLCBtX3N0cnVjdHVyZUNoYWluKHN0cnVjdHVyZUNo
YWluKQotICAgICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCgo
bV9zdGF0ZSA9PSBOb0luZm9ybWF0aW9uIHx8IG1fc3RhdGUgPT0gVGFrZXNTbG93UGF0aCkgPT0g
IW1fb2xkU3RydWN0dXJlKTsKLSAgICAgICAgQVNTRVJUKChtX3N0YXRlICE9IFNpbXBsZVRyYW5z
aXRpb24pID09ICFtX25ld1N0cnVjdHVyZSk7Ci0gICAgICAgIEFTU0VSVCgobV9zdGF0ZSAhPSBT
aW1wbGVUcmFuc2l0aW9uKSA9PSAhbV9zdHJ1Y3R1cmVDaGFpbik7Ci0gICAgICAgIEFTU0VSVCgo
bV9zdGF0ZSA9PSBOb0luZm9ybWF0aW9uIHx8IG1fc3RhdGUgPT0gVGFrZXNTbG93UGF0aCkgPT0g
KG1fb2Zmc2V0ID09IG5vdEZvdW5kKSk7Ci0gICAgfQotICAgIAotICAgIHN0YXRpYyBQdXRCeUlk
U3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgSWRl
bnRpZmllciYpOwotICAgIAotICAgIFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0
ZTsgfQotICAgIAotICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlICE9IE5v
SW5mb3JtYXRpb247IH0KLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGUgPT0gTm9JbmZvcm1hdGlvbjsgfQotICAgIGJvb2wgaXNTaW1wbGVSZXBsYWNlKCkgY29uc3Qg
eyByZXR1cm4gbV9zdGF0ZSA9PSBTaW1wbGVSZXBsYWNlOyB9Ci0gICAgYm9vbCBpc1NpbXBsZVRy
YW5zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3N0YXRlID09IFNpbXBsZVRyYW5zaXRpb247IH0K
LSAgICBib29sIHRha2VzU2xvd1BhdGgoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlID09IFRha2Vz
U2xvd1BhdGg7IH0KLSAgICAKLSAgICBTdHJ1Y3R1cmUqIG9sZFN0cnVjdHVyZSgpIGNvbnN0IHsg
cmV0dXJuIG1fb2xkU3RydWN0dXJlOyB9Ci0gICAgU3RydWN0dXJlKiBuZXdTdHJ1Y3R1cmUoKSBj
b25zdCB7IHJldHVybiBtX25ld1N0cnVjdHVyZTsgfQotICAgIFN0cnVjdHVyZUNoYWluKiBzdHJ1
Y3R1cmVDaGFpbigpIGNvbnN0IHsgcmV0dXJuIG1fc3RydWN0dXJlQ2hhaW47IH0KLSAgICBzaXpl
X3Qgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KLSAgICAKLXByaXZhdGU6Ci0g
ICAgU3RhdGUgbV9zdGF0ZTsKLSAgICBTdHJ1Y3R1cmUqIG1fb2xkU3RydWN0dXJlOwotICAgIFN0
cnVjdHVyZSogbV9uZXdTdHJ1Y3R1cmU7Ci0gICAgU3RydWN0dXJlQ2hhaW4qIG1fc3RydWN0dXJl
Q2hhaW47Ci0gICAgc2l6ZV90IG1fb2Zmc2V0OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0K
LSNlbmRpZiAvLyBQdXRCeUlkU3RhdHVzX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1N0cnVjdHVyZVNldC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDQx
ODNiNDU1NTZmOGQzNGYwZjgxOTg5ZTcyNTMwYjA4ZDRlMzBmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTZXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDE1OCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgU3RydWN0dXJl
U2V0X2gKLSNkZWZpbmUgU3RydWN0dXJlU2V0X2gKLQotI2luY2x1ZGUgIlByZWRpY3RlZFR5cGUu
aCIKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNw
YWNlIEpTQyB7Ci0KLWNsYXNzIFN0cnVjdHVyZTsKLQotbmFtZXNwYWNlIERGRyB7Ci1jbGFzcyBT
dHJ1Y3R1cmVBYnN0cmFjdFZhbHVlOwotfQotCi1jbGFzcyBTdHJ1Y3R1cmVTZXQgewotcHVibGlj
OgotICAgIFN0cnVjdHVyZVNldCgpIHsgfQotICAgIAotICAgIFN0cnVjdHVyZVNldChTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgICAgIG1fc3RydWN0dXJlcy5hcHBlbmQoc3RydWN0
dXJlKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBjbGVhcigpCi0gICAgewotICAgICAgICBtX3N0
cnVjdHVyZXMuY2xlYXIoKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBhZGQoU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCi0gICAgewotICAgICAgICBBU1NFUlQoIWNvbnRhaW5zKHN0cnVjdHVyZSkpOwot
ICAgICAgICBtX3N0cnVjdHVyZXMuYXBwZW5kKHN0cnVjdHVyZSk7Ci0gICAgfQotICAgIAotICAg
IGJvb2wgYWRkQWxsKGNvbnN0IFN0cnVjdHVyZVNldCYgb3RoZXIpCi0gICAgewotICAgICAgICBi
b29sIGNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdGhl
ci5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgaWYgKGNvbnRhaW5zKG90aGVyW2ldKSkKLSAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGFkZChvdGhlcltpXSk7Ci0gICAg
ICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gY2hhbmdl
ZDsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCByZW1vdmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0g
ICAgewotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc3RydWN0dXJlcy5zaXplKCk7
ICsraSkgewotICAgICAgICAgICAgaWYgKG1fc3RydWN0dXJlc1tpXSAhPSBzdHJ1Y3R1cmUpCi0g
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIG1fc3Ry
dWN0dXJlc1tpXSA9IG1fc3RydWN0dXJlcy5sYXN0KCk7Ci0gICAgICAgICAgICBtX3N0cnVjdHVy
ZXMucmVtb3ZlTGFzdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQot
ICAgIAotICAgIGJvb2wgY29udGFpbnMoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpIGNvbnN0Ci0gICAg
ewotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc3RydWN0dXJlcy5zaXplKCk7ICsr
aSkgewotICAgICAgICAgICAgaWYgKG1fc3RydWN0dXJlc1tpXSA9PSBzdHJ1Y3R1cmUpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLSAgICAKLSAgICBib29sIGlzU3Vic2V0T2YoY29uc3QgU3RydWN0dXJlU2V0JiBv
dGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zdHJ1
Y3R1cmVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoIW90aGVyLmNvbnRhaW5zKG1f
c3RydWN0dXJlc1tpXSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICBib29sIGlzU3VwZXJzZXRP
Zihjb25zdCBTdHJ1Y3R1cmVTZXQmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IG90aGVyLmlzU3Vic2V0T2YoKnRoaXMpOwotICAgIH0KLSAgICAKLSAgICBzaXplX3Qgc2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3RydWN0dXJlcy5zaXplKCk7IH0KLSAgICAKLSAgICBTdHJ1Y3R1
cmUqIGF0KHNpemVfdCBpKSBjb25zdCB7IHJldHVybiBtX3N0cnVjdHVyZXMuYXQoaSk7IH0KLSAg
ICAKLSAgICBTdHJ1Y3R1cmUqIG9wZXJhdG9yW10oc2l6ZV90IGkpIGNvbnN0IHsgcmV0dXJuIGF0
KGkpOyB9Ci0gICAgCi0gICAgU3RydWN0dXJlKiBsYXN0KCkgY29uc3QgeyByZXR1cm4gbV9zdHJ1
Y3R1cmVzLmxhc3QoKTsgfQotCi0gICAgUHJlZGljdGVkVHlwZSBwcmVkaWN0aW9uRnJvbVN0cnVj
dHVyZXMoKSBjb25zdAotICAgIHsKLSAgICAgICAgUHJlZGljdGVkVHlwZSByZXN1bHQgPSBQcmVk
aWN0Tm9uZTsKLSAgICAgICAgCi0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zdHJ1
Y3R1cmVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgbWVyZ2VQcmVkaWN0aW9uKHJlc3VsdCwg
cHJlZGljdGlvbkZyb21TdHJ1Y3R1cmUobV9zdHJ1Y3R1cmVzW2ldKSk7Ci0gICAgICAgIAotICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgU3RydWN0dXJlU2V0JiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChtX3N0cnVj
dHVyZXMuc2l6ZSgpICE9IG90aGVyLm1fc3RydWN0dXJlcy5zaXplKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1f
c3RydWN0dXJlcy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgaWYgKCFvdGhlci5jb250YWlu
cyhtX3N0cnVjdHVyZXNbaV0pKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgfQotICAgICAgICAKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAotICAgIHZv
aWQgZHVtcChGSUxFKiBvdXQpCi0gICAgewotICAgICAgICBmcHJpbnRmKG91dCwgIlsiKTsKLSAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3N0cnVjdHVyZXMuc2l6ZSgpOyArK2kpIHsK
LSAgICAgICAgICAgIGlmIChpKQotICAgICAgICAgICAgICAgIGZwcmludGYob3V0LCAiLCAiKTsK
LSAgICAgICAgICAgIGZwcmludGYob3V0LCAiJXAiLCBtX3N0cnVjdHVyZXNbaV0pOwotICAgICAg
ICB9Ci0gICAgICAgIGZwcmludGYob3V0LCAiXSIpOwotICAgIH0KLSAgICAKLXByaXZhdGU6Ci0g
ICAgZnJpZW5kIGNsYXNzIERGRzo6U3RydWN0dXJlQWJzdHJhY3RWYWx1ZTsKLSAgICAKLSAgICBW
ZWN0b3I8U3RydWN0dXJlKiwgMj4gbV9zdHJ1Y3R1cmVzOwotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
SlNDCi0KLSNlbmRpZiAvLyBTdHJ1Y3R1cmVTZXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0VmFsdWUuaAppbmRleCAxNWJjMGQ0OTY5N2NmZGViODM5ZWE0OGY2N2M4
YzRhMzRjOWY2NjY5Li5lZTQzYjZjNGE4YzY2NzQ4MTgxOWY4ZTUyOGFiYmRlYTYzYmQzNGU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuaApAQCAtMzAs
OSArMzAsOSBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKKyNpbmNsdWRlICJERkdTdHJ1Y3R1
cmVTZXQuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIKICNpbmNsdWRlICJQcmVkaWN0ZWRUeXBlLmgi
Ci0jaW5jbHVkZSAiU3RydWN0dXJlU2V0LmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAppbmRleCA1NDUyYjRiYzM5NTg5OGQxNjIzN2E3OTg1OTNhMDcxYjdiZmFlNjNjLi41MWE4
YTBjYTMyYTJiZjFiNjdmZTQyOWZhZmUxYTc4NDYxZGZlNTliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMjgsMTMgKzI4LDkgQEAK
IAogI2lmIEVOQUJMRShERkdfSklUKQogCi0jaW5jbHVkZSAiQ2FsbExpbmtTdGF0dXMuaCIKLSNp
bmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdCeXRlQ29kZUNhY2hlLmgiCiAjaW5j
bHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgiCi0jaW5jbHVkZSAiR2V0QnlJZFN0YXR1cy5oIgotI2lu
Y2x1ZGUgIk1ldGhvZENhbGxMaW5rU3RhdHVzLmgiCi0jaW5jbHVkZSAiUHV0QnlJZFN0YXR1cy5o
IgorI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApAQCAtNzA3LDYgKzcwMywyMiBAQCBwcml2YXRlOgog
ICAgICAgICByZXR1cm4gbm9kZUluZGV4OwogICAgIH0KICAgICAKKyAgICBib29sIHN0cnVjdHVy
ZUNoYWluSXNTdGlsbFZhbGlkKGJvb2wgZGlyZWN0LCBTdHJ1Y3R1cmUqIHByZXZpb3VzU3RydWN0
dXJlLCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4pCisgICAgeworICAgICAgICBpZiAoZGlyZWN0KQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIAorICAgICAgICBpZiAoIXByZXZpb3Vz
U3RydWN0dXJlLT5zdG9yZWRQcm90b3R5cGUoKS5pc051bGwoKSAmJiBwcmV2aW91c1N0cnVjdHVy
ZS0+c3RvcmVkUHJvdG90eXBlKCkuYXNDZWxsKCktPnN0cnVjdHVyZSgpICE9IGNoYWluLT5oZWFk
KCktPmdldCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAg
Zm9yIChXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiogaXQgPSBjaGFpbi0+aGVhZCgpOyAqaXQ7ICsr
aXQpIHsKKyAgICAgICAgICAgIGlmICghKCppdCktPnN0b3JlZFByb3RvdHlwZSgpLmlzTnVsbCgp
ICYmICgqaXQpLT5zdG9yZWRQcm90b3R5cGUoKS5hc0NlbGwoKS0+c3RydWN0dXJlKCkgIT0gaXRb
MV0uZ2V0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCiAgICAgYm9vbCB3aWxsTmVl
ZEZsdXNoKFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbykKICAgICB7CiAgICAgICAgIFBvbHlt
b3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdCogbGlzdDsKQEAgLTczMCwyMiArNzQyLDYgQEAgcHJp
dmF0ZToKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAKLSAgICBib29sIHN0cnVj
dHVyZUNoYWluSXNTdGlsbFZhbGlkKGJvb2wgZGlyZWN0LCBTdHJ1Y3R1cmUqIHByZXZpb3VzU3Ry
dWN0dXJlLCBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4pCi0gICAgewotICAgICAgICBpZiAoZGlyZWN0
KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIAotICAgICAgICBpZiAoIXByZXZp
b3VzU3RydWN0dXJlLT5zdG9yZWRQcm90b3R5cGUoKS5pc051bGwoKSAmJiBwcmV2aW91c1N0cnVj
dHVyZS0+c3RvcmVkUHJvdG90eXBlKCkuYXNDZWxsKCktPnN0cnVjdHVyZSgpICE9IGNoYWluLT5o
ZWFkKCktPmdldCgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKLSAgICAg
ICAgZm9yIChXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiogaXQgPSBjaGFpbi0+aGVhZCgpOyAqaXQ7
ICsraXQpIHsKLSAgICAgICAgICAgIGlmICghKCppdCktPnN0b3JlZFByb3RvdHlwZSgpLmlzTnVs
bCgpICYmICgqaXQpLT5zdG9yZWRQcm90b3R5cGUoKS5hc0NlbGwoKS0+c3RydWN0dXJlKCkgIT0g
aXRbMV0uZ2V0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0g
ICAgICAgIAotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgCiAgICAgdm9pZCBidWls
ZE9wZXJhbmRNYXBzSWZOZWNlc3NhcnkoKTsKICAgICAKICAgICBKU0dsb2JhbERhdGEqIG1fZ2xv
YmFsRGF0YTsKQEAgLTkyMiw3ICs5MTgsNiBAQCBwcml2YXRlOgogICAgIG1fY3VycmVudEluZGV4
ICs9IE9QQ09ERV9MRU5HVEgobmFtZSk7IFwKICAgICByZXR1cm4gc2hvdWxkQ29udGludWVQYXJz
aW5nCiAKLQogdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnRlcnByZXRlciogaW50
ZXJwcmV0ZXIsIEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIE5vZGVUeXBlIG9wLCBD
b2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7CiAgICAgQVNTRVJUKE9QQ09ERV9MRU5HVEgo
b3BfY2FsbCkgPT0gT1BDT0RFX0xFTkdUSChvcF9jb25zdHJ1Y3QpKTsKQEAgLTkzMywxMyArOTI4
LDExIEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNhbGwoSW50ZXJwcmV0ZXIqIGludGVy
cHJldGVyLCBJbnN0cnVjdGlvbiogY3VycmVudEluCiAjaWYgREZHX0VOQUJMRShERUJVR19WRVJC
T1NFKQogICAgIHByaW50ZigiU2xvdyBjYXNlIGNvdW50IGZvciBjYWxsIGF0IEAlenUgYmMjJXU6
ICV1LyV1OyBleGl0IHByb2ZpbGU6ICVkLlxuIiwgbV9ncmFwaC5zaXplKCksIG1fY3VycmVudElu
ZGV4LCBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPnJhcmVDYXNlUHJvZmlsZUZv
ckJ5dGVjb2RlT2Zmc2V0KG1fY3VycmVudEluZGV4KS0+bV9jb3VudGVyLCBtX2lubGluZVN0YWNr
VG9wLT5tX3Byb2ZpbGVkQmxvY2stPmV4ZWN1dGlvbkVudHJ5Q291bnQoKSwgbV9pbmxpbmVTdGFj
a1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGUp
KTsKICNlbmRpZgotICAgIAotICAgIENhbGxMaW5rU3RhdHVzIGNhbGxMaW5rU3RhdHVzID0gQ2Fs
bExpbmtTdGF0dXM6OmNvbXB1dGVGb3IoCi0gICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJv
ZmlsZWRCbG9jaywgbV9jdXJyZW50SW5kZXgpOwotICAgIAorICAgICAgICAgICAgCiAgICAgaWYg
KG1fZ3JhcGguaXNGdW5jdGlvbkNvbnN0YW50KG1fY29kZUJsb2NrLCBjYWxsVGFyZ2V0KSkKICAg
ICAgICAgY2FsbFR5cGUgPSBDb25zdGFudEZ1bmN0aW9uOwotICAgIGVsc2UgaWYgKGNhbGxMaW5r
U3RhdHVzLmlzU2V0KCkgJiYgIWNhbGxMaW5rU3RhdHVzLmNvdWxkVGFrZVNsb3dQYXRoKCkKKyAg
ICBlbHNlIGlmICghIW1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+Z2V0Q2FsbExp
bmtJbmZvKG1fY3VycmVudEluZGV4KS5sYXN0U2VlbkNhbGxlZQorICAgICAgICAgICAgICYmICFt
X2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmNvdWxkVGFrZVNsb3dDYXNlKG1fY3Vy
cmVudEluZGV4KQogICAgICAgICAgICAgICYmICFtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9m
aWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkpCiAgICAgICAgIGNhbGxU
eXBlID0gTGlua2VkRnVuY3Rpb247CiAgICAgZWxzZQpAQCAtOTcwLDcgKzk2Myw3IEBAIHZvaWQg
Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUNhbGwoSW50ZXJwcmV0ZXIqIGludGVycHJldGVyLCBJbnN0
cnVjdGlvbiogY3VycmVudEluCiAgICAgICAgICAgICBjZXJ0YWluQWJvdXRFeHBlY3RlZEZ1bmN0
aW9uID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChjYWxsVHlw
ZSA9PSBMaW5rZWRGdW5jdGlvbik7Ci0gICAgICAgICAgICBleHBlY3RlZEZ1bmN0aW9uID0gY2Fs
bExpbmtTdGF0dXMuY2FsbFRhcmdldCgpOworICAgICAgICAgICAgZXhwZWN0ZWRGdW5jdGlvbiA9
IG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+Z2V0Q2FsbExpbmtJbmZvKG1fY3Vy
cmVudEluZGV4KS5sYXN0U2VlbkNhbGxlZS5nZXQoKTsKICAgICAgICAgICAgIGludHJpbnNpYyA9
IGV4cGVjdGVkRnVuY3Rpb24tPmV4ZWN1dGFibGUoKS0+aW50cmluc2ljRm9yKGtpbmQpOwogICAg
ICAgICAgICAgY2VydGFpbkFib3V0RXhwZWN0ZWRGdW5jdGlvbiA9IGZhbHNlOwogICAgICAgICB9
CkBAIC0xNzMzLDI2ICsxNzI2LDIzIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2so
dW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBDaGVjayBp
ZiB0aGUgbWV0aG9kX2NoZWNrIHdhcyBtb25vbW9ycGhpYy4gSWYgc28sIGVtaXQgYSBDaGVja1hZ
Wk1ldGhvZAogICAgICAgICAgICAgLy8gbm9kZSwgd2hpY2ggaXMgYSBsb3QgbW9yZSBlZmZpY2ll
bnQuCi0gICAgICAgICAgICBHZXRCeUlkU3RhdHVzIGdldEJ5SWRTdGF0dXMgPSBHZXRCeUlkU3Rh
dHVzOjpjb21wdXRlRm9yKAotICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJv
ZmlsZWRCbG9jaywKLSAgICAgICAgICAgICAgICBtX2N1cnJlbnRJbmRleCwKLSAgICAgICAgICAg
ICAgICBtX2NvZGVCbG9jay0+aWRlbnRpZmllcihpZGVudGlmaWVyKSk7Ci0gICAgICAgICAgICBN
ZXRob2RDYWxsTGlua1N0YXR1cyBtZXRob2RDYWxsU3RhdHVzID0gTWV0aG9kQ2FsbExpbmtTdGF0
dXM6OmNvbXB1dGVGb3IoCi0gICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9m
aWxlZEJsb2NrLCBtX2N1cnJlbnRJbmRleCk7CisgICAgICAgICAgICBTdHJ1Y3R1cmVTdHViSW5m
byYgc3R1YkluZm8gPSBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmdldFN0dWJJ
bmZvKG1fY3VycmVudEluZGV4KTsKKyAgICAgICAgICAgIE1ldGhvZENhbGxMaW5rSW5mbyYgbWV0
aG9kQ2FsbCA9IG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+Z2V0TWV0aG9kQ2Fs
bExpbmtJbmZvKG1fY3VycmVudEluZGV4KTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYg
KG1ldGhvZENhbGxTdGF0dXMuaXNTZXQoKQotICAgICAgICAgICAgICAgICYmICFnZXRCeUlkU3Rh
dHVzLmlzU2V0KCkKKyAgICAgICAgICAgIGlmIChtZXRob2RDYWxsLnNlZW4KKyAgICAgICAgICAg
ICAgICAmJiAhIW1ldGhvZENhbGwuY2FjaGVkU3RydWN0dXJlCisgICAgICAgICAgICAgICAgJiYg
IXN0dWJJbmZvLnNlZW4KICAgICAgICAgICAgICAgICAmJiAhbV9pbmxpbmVTdGFja1RvcC0+bV9l
eGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGUpKSB7CiAgICAg
ICAgICAgICAgICAgLy8gSXQncyBtb25vbW9ycGhpYyBhcyBmYXIgYXMgd2UgY2FuIHRlbGwsIHNp
bmNlIHRoZSBtZXRob2RfY2hlY2sgd2FzIGxpbmtlZAogICAgICAgICAgICAgICAgIC8vIGJ1dCB0
aGUgc2xvdyBwYXRoIChpLmUuIHRoZSBub3JtYWwgZ2V0X2J5X2lkKSBuZXZlciBmaXJlZC4KIAot
ICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tTdHJ1Y3R1cmUsIE9wSW5mbyhtX2dyYXBo
LmFkZFN0cnVjdHVyZVNldChtZXRob2RDYWxsU3RhdHVzLnN0cnVjdHVyZSgpKSksIGJhc2UpOwot
ICAgICAgICAgICAgICAgIGlmIChtZXRob2RDYWxsU3RhdHVzLm5lZWRzUHJvdG90eXBlQ2hlY2so
KSkKLSAgICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja1N0cnVjdHVyZSwgT3BJbmZv
KG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KG1ldGhvZENhbGxTdGF0dXMucHJvdG90eXBlU3RydWN0
dXJlKCkpKSwgY2VsbENvbnN0YW50KG1ldGhvZENhbGxTdGF0dXMucHJvdG90eXBlKCkpKTsKKyAg
ICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrU3RydWN0dXJlLCBPcEluZm8obV9ncmFwaC5h
ZGRTdHJ1Y3R1cmVTZXQobWV0aG9kQ2FsbC5jYWNoZWRTdHJ1Y3R1cmUuZ2V0KCkpKSwgYmFzZSk7
CisgICAgICAgICAgICAgICAgaWYgKG1ldGhvZENhbGwuY2FjaGVkUHJvdG90eXBlLmdldCgpICE9
IG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+Z2xvYmFsT2JqZWN0KCktPm1ldGhv
ZENhbGxEdW1teSgpKQorICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrU3RydWN0
dXJlLCBPcEluZm8obV9ncmFwaC5hZGRTdHJ1Y3R1cmVTZXQobWV0aG9kQ2FsbC5jYWNoZWRQcm90
b3R5cGVTdHJ1Y3R1cmUuZ2V0KCkpKSwgY2VsbENvbnN0YW50KG1ldGhvZENhbGwuY2FjaGVkUHJv
dG90eXBlLmdldCgpKSk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgc2V0KGdl
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgY2VsbENvbnN0YW50KG1ldGhvZENhbGxTdGF0dXMu
ZnVuY3Rpb24oKSkpOworICAgICAgICAgICAgICAgIHNldChnZXRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQsIGNlbGxDb25zdGFudChtZXRob2RDYWxsLmNhY2hlZEZ1bmN0aW9uLmdldCgpKSk7CiAg
ICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzZXQoZ2V0SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kLCBhZGRUb0dyYXBoKGdldEJ5SWRTdGF0dXMubWFrZXNDYWxscygpID8gR2V0QnlJ
ZEZsdXNoIDogR2V0QnlJZCwgT3BJbmZvKGlkZW50aWZpZXIpLCBPcEluZm8ocHJlZGljdGlvbiks
IGJhc2UpKTsKKyAgICAgICAgICAgICAgICBzZXQoZ2V0SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
LCBhZGRUb0dyYXBoKHdpbGxOZWVkRmx1c2goc3R1YkluZm8pID8gR2V0QnlJZEZsdXNoIDogR2V0
QnlJZCwgT3BJbmZvKGlkZW50aWZpZXIpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UpKTsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgbV9jdXJyZW50SW5kZXggKz0gT1BDT0RFX0xFTkdUSChv
cF9tZXRob2RfY2hlY2spICsgT1BDT0RFX0xFTkdUSChvcF9nZXRfYnlfaWQpOwogICAgICAgICAg
ICAgY29udGludWU7CkBAIC0xNzgyLDEwOSArMTc3MiwxNzggQEAgYm9vbCBCeXRlQ29kZVBhcnNl
cjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIHVuc2lnbmVkIGlkZW50
aWZpZXJOdW1iZXIgPSBtX2lubGluZVN0YWNrVG9wLT5tX2lkZW50aWZpZXJSZW1hcFtjdXJyZW50
SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kXTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgSWRl
bnRpZmllciBpZGVudGlmaWVyID0gbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoaWRlbnRpZmllck51
bWJlcik7Ci0gICAgICAgICAgICBHZXRCeUlkU3RhdHVzIGdldEJ5SWRTdGF0dXMgPSBHZXRCeUlk
U3RhdHVzOjpjb21wdXRlRm9yKAotICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1f
cHJvZmlsZWRCbG9jaywgbV9jdXJyZW50SW5kZXgsIGlkZW50aWZpZXIpOworICAgICAgICAgICAg
U3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxl
ZEJsb2NrLT5nZXRTdHViSW5mbyhtX2N1cnJlbnRJbmRleCk7CiAgICAgICAgICAgICAKICNpZiBE
RkdfRU5BQkxFKERFQlVHX1ZFUkJPU0UpCiAgICAgICAgICAgICBwcmludGYoIlNsb3cgY2FzZSBj
b3VudCBmb3IgR2V0QnlJZCBAJXp1IGJjIyV1OiAldTsgZXhpdCBwcm9maWxlOiAlZFxuIiwgbV9n
cmFwaC5zaXplKCksIG1fY3VycmVudEluZGV4LCBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVk
QmxvY2stPnJhcmVDYXNlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fY3VycmVudEluZGV4KS0+
bV9jb3VudGVyLCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1f
Y3VycmVudEluZGV4LCBCYWRDYWNoZSkpOwogI2VuZGlmCiAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIGlmIChnZXRCeUlkU3RhdHVzLmlzU2ltcGxlRGlyZWN0KCkKKyAgICAgICAgICAgIHNpemVf
dCBvZmZzZXQgPSBub3RGb3VuZDsKKyAgICAgICAgICAgIFN0cnVjdHVyZVNldCBzdHJ1Y3R1cmVT
ZXQ7CisgICAgICAgICAgICBpZiAoc3R1YkluZm8uc2VlbgorICAgICAgICAgICAgICAgICYmICFt
X2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKG1f
Y3VycmVudEluZGV4KQogICAgICAgICAgICAgICAgICYmICFtX2lubGluZVN0YWNrVG9wLT5tX2V4
aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkpIHsKLSAgICAg
ICAgICAgICAgICBBU1NFUlQoZ2V0QnlJZFN0YXR1cy5zdHJ1Y3R1cmVTZXQoKS5zaXplKCkpOwor
ICAgICAgICAgICAgICAgIHN3aXRjaCAoc3R1YkluZm8uYWNjZXNzVHlwZSkgeworICAgICAgICAg
ICAgICAgIGNhc2UgYWNjZXNzX2dldF9ieV9pZF9zZWxmOiB7CisgICAgICAgICAgICAgICAgICAg
IFN0cnVjdHVyZSogc3RydWN0dXJlID0gc3R1YkluZm8udS5nZXRCeUlkU2VsZi5iYXNlT2JqZWN0
U3RydWN0dXJlLmdldCgpOworICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBzdHJ1Y3R1cmUt
PmdldCgqbV9nbG9iYWxEYXRhLCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgIT0gbm90Rm91bmQpCisgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3R1cmVTZXQuYWRkKHN0cnVjdHVyZSk7CisKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKG9mZnNldCAhPSBub3RGb3VuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIEFT
U0VSVChzdHJ1Y3R1cmVTZXQuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBj
YXNlIGFjY2Vzc19nZXRfYnlfaWRfc2VsZl9saXN0OiB7CisgICAgICAgICAgICAgICAgICAgIFBv
bHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdCogbGlzdCA9IHN0dWJJbmZvLnUuZ2V0QnlJZFBy
b3RvTGlzdC5zdHJ1Y3R1cmVMaXN0OworICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaXpl
ID0gc3R1YkluZm8udS5nZXRCeUlkUHJvdG9MaXN0Lmxpc3RTaXplOworICAgICAgICAgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoIWxpc3QtPmxpc3RbaV0uaXNEaXJlY3QpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvZmZzZXQgPSBub3RGb3VuZDsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBs
aXN0LT5saXN0W2ldLmJhc2UuZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3Ry
dWN0dXJlU2V0LmNvbnRhaW5zKHN0cnVjdHVyZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBteU9mZnNldCA9IHN0cnVjdHVyZS0+Z2V0KCptX2dsb2JhbERhdGEsIGlk
ZW50aWZpZXIpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChteU9mZnNldCA9PSBub3RGb3VuZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9mZnNldCA9IG5vdEZvdW5kOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz
ZXQgPSBteU9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9mZnNldCAh
PSBteU9mZnNldCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IG5vdEZv
dW5kOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAg
IHN0cnVjdHVyZVNldC5hZGQoc3RydWN0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCAhPSBub3RG
b3VuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmVTZXQuc2l6ZSgp
KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
ICAgICBBU1NFUlQob2Zmc2V0ID09IG5vdEZvdW5kKTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IG5vdEZvdW5kKSB7CisgICAgICAgICAg
ICAgICAgQVNTRVJUKHN0cnVjdHVyZVNldC5zaXplKCkpOwogICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIC8vIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBHZXRCeU9mZnNldCBkb2VzIG5v
dCBrbm93IHRvIHRlcm1pbmF0ZSBzcGVjdWxhdGl2ZQogICAgICAgICAgICAgICAgIC8vIGV4ZWN1
dGlvbiBpZiBpdCBkb2Vzbid0IGhhdmUgYSBwcmVkaWN0aW9uLCBzbyB3ZSBkbyBpdCBtYW51YWxs
eS4KICAgICAgICAgICAgICAgICBpZiAocHJlZGljdGlvbiA9PSBQcmVkaWN0Tm9uZSkKICAgICAg
ICAgICAgICAgICAgICAgYWRkVG9HcmFwaChGb3JjZU9TUkV4aXQpOwogICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tTdHJ1Y3R1cmUsIE9wSW5mbyhtX2dy
YXBoLmFkZFN0cnVjdHVyZVNldChnZXRCeUlkU3RhdHVzLnN0cnVjdHVyZVNldCgpKSksIGJhc2Up
OworICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tTdHJ1Y3R1cmUsIE9wSW5mbyhtX2dy
YXBoLmFkZFN0cnVjdHVyZVNldChzdHJ1Y3R1cmVTZXQpKSwgYmFzZSk7CiAgICAgICAgICAgICAg
ICAgc2V0KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIGFkZFRvR3JhcGgoR2V0QnlP
ZmZzZXQsIE9wSW5mbyhtX2dyYXBoLm1fc3RvcmFnZUFjY2Vzc0RhdGEuc2l6ZSgpKSwgT3BJbmZv
KHByZWRpY3Rpb24pLCBhZGRUb0dyYXBoKEdldFByb3BlcnR5U3RvcmFnZSwgYmFzZSkpKTsKICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBTdG9yYWdlQWNjZXNzRGF0YSBzdG9yYWdl
QWNjZXNzRGF0YTsKLSAgICAgICAgICAgICAgICBzdG9yYWdlQWNjZXNzRGF0YS5vZmZzZXQgPSBn
ZXRCeUlkU3RhdHVzLm9mZnNldCgpOworICAgICAgICAgICAgICAgIHN0b3JhZ2VBY2Nlc3NEYXRh
Lm9mZnNldCA9IG9mZnNldDsKICAgICAgICAgICAgICAgICBzdG9yYWdlQWNjZXNzRGF0YS5pZGVu
dGlmaWVyTnVtYmVyID0gaWRlbnRpZmllck51bWJlcjsKICAgICAgICAgICAgICAgICBtX2dyYXBo
Lm1fc3RvcmFnZUFjY2Vzc0RhdGEuYXBwZW5kKHN0b3JhZ2VBY2Nlc3NEYXRhKTsKICAgICAgICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kLCBhZGRUb0dyYXBoKGdldEJ5SWRTdGF0dXMubWFrZXNDYWxscygpID8gR2V0QnlJZEZs
dXNoIDogR2V0QnlJZCwgT3BJbmZvKGlkZW50aWZpZXJOdW1iZXIpLCBPcEluZm8ocHJlZGljdGlv
biksIGJhc2UpKTsKKyAgICAgICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCwgYWRkVG9HcmFwaCh3aWxsTmVlZEZsdXNoKHN0dWJJbmZvKSA/IEdldEJ5SWRGbHVz
aCA6IEdldEJ5SWQsIE9wSW5mbyhpZGVudGlmaWVyTnVtYmVyKSwgT3BJbmZvKHByZWRpY3Rpb24p
LCBiYXNlKSk7CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2dldF9ieV9pZCk7CiAgICAg
ICAgIH0KKwogICAgICAgICBjYXNlIG9wX3B1dF9ieV9pZDogewogICAgICAgICAgICAgTm9kZUlu
ZGV4IHZhbHVlID0gZ2V0KGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpOwogICAgICAg
ICAgICAgTm9kZUluZGV4IGJhc2UgPSBnZXQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZCk7CiAgICAgICAgICAgICB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyID0gbV9pbmxpbmVTdGFj
a1RvcC0+bV9pZGVudGlmaWVyUmVtYXBbY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZF07
CiAgICAgICAgICAgICBib29sIGRpcmVjdCA9IGN1cnJlbnRJbnN0cnVjdGlvbls4XS51Lm9wZXJh
bmQ7CiAKLSAgICAgICAgICAgIFB1dEJ5SWRTdGF0dXMgcHV0QnlJZFN0YXR1cyA9IFB1dEJ5SWRT
dGF0dXM6OmNvbXB1dGVGb3IoCi0gICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9w
cm9maWxlZEJsb2NrLAotICAgICAgICAgICAgICAgIG1fY3VycmVudEluZGV4LAotICAgICAgICAg
ICAgICAgIG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGlkZW50aWZpZXJOdW1iZXIpKTsKLSAgICAg
ICAgICAgIGlmICghcHV0QnlJZFN0YXR1cy5pc1NldCgpKQorICAgICAgICAgICAgU3RydWN0dXJl
U3R1YkluZm8mIHN0dWJJbmZvID0gbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLT5n
ZXRTdHViSW5mbyhtX2N1cnJlbnRJbmRleCk7CisgICAgICAgICAgICBpZiAoIXN0dWJJbmZvLnNl
ZW4pCiAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChGb3JjZU9TUkV4aXQpOwogICAgICAgICAg
ICAgCi0gICAgICAgICAgICBib29sIGhhc0V4aXRTaXRlID0gbV9pbmxpbmVTdGFja1RvcC0+bV9l
eGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGUpOworICAgICAg
ICAgICAgYm9vbCBhbHJlYWR5R2VuZXJhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAKICNpZiBE
RkdfRU5BQkxFKERFQlVHX1ZFUkJPU0UpCiAgICAgICAgICAgICBwcmludGYoIlNsb3cgY2FzZSBj
b3VudCBmb3IgUHV0QnlJZCBAJXp1IGJjIyV1OiAldTsgZXhpdCBwcm9maWxlOiAlZFxuIiwgbV9n
cmFwaC5zaXplKCksIG1fY3VycmVudEluZGV4LCBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVk
QmxvY2stPnJhcmVDYXNlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KG1fY3VycmVudEluZGV4KS0+
bV9jb3VudGVyLCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1f
Y3VycmVudEluZGV4LCBCYWRDYWNoZSkpOwogI2VuZGlmICAgICAgICAgICAgCiAKLSAgICAgICAg
ICAgIGlmICghaGFzRXhpdFNpdGUgJiYgcHV0QnlJZFN0YXR1cy5pc1NpbXBsZVJlcGxhY2UoKSkg
ewotICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tTdHJ1Y3R1cmUsIE9wSW5mbyhtX2dy
YXBoLmFkZFN0cnVjdHVyZVNldChwdXRCeUlkU3RhdHVzLm9sZFN0cnVjdHVyZSgpKSksIGJhc2Up
OwotICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoUHV0QnlPZmZzZXQsIE9wSW5mbyhtX2dyYXBo
Lm1fc3RvcmFnZUFjY2Vzc0RhdGEuc2l6ZSgpKSwgYmFzZSwgYWRkVG9HcmFwaChHZXRQcm9wZXJ0
eVN0b3JhZ2UsIGJhc2UpLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgU3RvcmFnZUFjY2Vzc0RhdGEgc3RvcmFnZUFjY2Vzc0RhdGE7Ci0gICAgICAgICAgICAgICAg
c3RvcmFnZUFjY2Vzc0RhdGEub2Zmc2V0ID0gcHV0QnlJZFN0YXR1cy5vZmZzZXQoKTsKLSAgICAg
ICAgICAgICAgICBzdG9yYWdlQWNjZXNzRGF0YS5pZGVudGlmaWVyTnVtYmVyID0gaWRlbnRpZmll
ck51bWJlcjsKLSAgICAgICAgICAgICAgICBtX2dyYXBoLm1fc3RvcmFnZUFjY2Vzc0RhdGEuYXBw
ZW5kKHN0b3JhZ2VBY2Nlc3NEYXRhKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoIWhhc0V4aXRT
aXRlCi0gICAgICAgICAgICAgICAgICAgICAgICYmIHB1dEJ5SWRTdGF0dXMuaXNTaW1wbGVUcmFu
c2l0aW9uKCkKLSAgICAgICAgICAgICAgICAgICAgICAgJiYgcHV0QnlJZFN0YXR1cy5vbGRTdHJ1
Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSA9PSBwdXRCeUlkU3RhdHVzLm5ld1N0
cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpCi0gICAgICAgICAgICAgICAgICAg
ICAgICYmIHN0cnVjdHVyZUNoYWluSXNTdGlsbFZhbGlkKAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGlyZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0QnlJZFN0YXR1cy5v
bGRTdHJ1Y3R1cmUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dEJ5SWRTdGF0dXMu
c3RydWN0dXJlQ2hhaW4oKSkpIHsKLQotICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tT
dHJ1Y3R1cmUsIE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChwdXRCeUlkU3RhdHVzLm9s
ZFN0cnVjdHVyZSgpKSksIGJhc2UpOwotICAgICAgICAgICAgICAgIGlmICghZGlyZWN0KSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmICghcHV0QnlJZFN0YXR1cy5vbGRTdHJ1Y3R1cmUoKS0+c3Rv
cmVkUHJvdG90eXBlKCkuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBhZGRUb0dy
YXBoKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNrU3RydWN0dXJlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChwdXRC
eUlkU3RhdHVzLm9sZFN0cnVjdHVyZSgpLT5zdG9yZWRQcm90b3R5cGUoKS5hc0NlbGwoKS0+c3Ry
dWN0dXJlKCkpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsQ29uc3RhbnQocHV0
QnlJZFN0YXR1cy5vbGRTdHJ1Y3R1cmUoKS0+c3RvcmVkUHJvdG90eXBlKCkuYXNDZWxsKCkpKTsK
KyAgICAgICAgICAgIGlmIChzdHViSW5mby5zZWVuCisgICAgICAgICAgICAgICAgJiYgIW1faW5s
aW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UobV9jdXJy
ZW50SW5kZXgpCisgICAgICAgICAgICAgICAgJiYgIW1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFBy
b2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlKSkgeworICAgICAgICAg
ICAgICAgIHN3aXRjaCAoc3R1YkluZm8uYWNjZXNzVHlwZSkgeworICAgICAgICAgICAgICAgIGNh
c2UgYWNjZXNzX3B1dF9ieV9pZF9yZXBsYWNlOiB7CisgICAgICAgICAgICAgICAgICAgIFN0cnVj
dHVyZSogc3RydWN0dXJlID0gc3R1YkluZm8udS5wdXRCeUlkUmVwbGFjZS5iYXNlT2JqZWN0U3Ry
dWN0dXJlLmdldCgpOworICAgICAgICAgICAgICAgICAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIg
PSBtX2NvZGVCbG9jay0+aWRlbnRpZmllcihpZGVudGlmaWVyTnVtYmVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2l6ZV90IG9mZnNldCA9IHN0cnVjdHVyZS0+Z2V0KCptX2dsb2JhbERhdGEsIGlk
ZW50aWZpZXIpOwogICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgZm9y
IChXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiogaXQgPSBwdXRCeUlkU3RhdHVzLnN0cnVjdHVyZUNo
YWluKCktPmhlYWQoKTsgKml0OyArK2l0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBKU1Zh
bHVlIHByb3RvdHlwZSA9ICgqaXQpLT5zdG9yZWRQcm90b3R5cGUoKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChwcm90b3R5cGUuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQocHJvdG90eXBl
LmlzQ2VsbCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ2hlY2tTdHJ1Y3R1cmUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgT3BJbmZvKG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KHByb3RvdHlwZS5hc0NlbGwo
KS0+c3RydWN0dXJlKCkpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsQ29uc3Rh
bnQocHJvdG90eXBlLmFzQ2VsbCgpKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChvZmZzZXQg
IT0gbm90Rm91bmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tT
dHJ1Y3R1cmUsIE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChzdHJ1Y3R1cmUpKSwgYmFz
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKFB1dEJ5T2Zmc2V0LCBPcElu
Zm8obV9ncmFwaC5tX3N0b3JhZ2VBY2Nlc3NEYXRhLnNpemUoKSksIGJhc2UsIGFkZFRvR3JhcGgo
R2V0UHJvcGVydHlTdG9yYWdlLCBiYXNlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgICAgICAgICBTdG9yYWdlQWNjZXNzRGF0YSBzdG9yYWdlQWNj
ZXNzRGF0YTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VBY2Nlc3NEYXRhLm9mZnNl
dCA9IG9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VBY2Nlc3NEYXRhLmlk
ZW50aWZpZXJOdW1iZXIgPSBpZGVudGlmaWVyTnVtYmVyOworICAgICAgICAgICAgICAgICAgICAg
ICAgbV9ncmFwaC5tX3N0b3JhZ2VBY2Nlc3NEYXRhLmFwcGVuZChzdG9yYWdlQWNjZXNzRGF0YSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGFscmVh
ZHlHZW5lcmF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBhZGRUb0dy
YXBoKAotICAgICAgICAgICAgICAgICAgICBQdXRTdHJ1Y3R1cmUsCi0gICAgICAgICAgICAgICAg
ICAgIE9wSW5mbygKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGguYWRkU3RydWN0dXJl
VHJhbnNpdGlvbkRhdGEoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RydWN0dXJlVHJh
bnNpdGlvbkRhdGEoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dEJ5SWRTdGF0
dXMub2xkU3RydWN0dXJlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dEJ5
SWRTdGF0dXMubmV3U3RydWN0dXJlKCkpKSksCi0gICAgICAgICAgICAgICAgICAgIGJhc2UpOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoCi0gICAgICAgICAg
ICAgICAgICAgIFB1dEJ5T2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICBPcEluZm8obV9ncmFw
aC5tX3N0b3JhZ2VBY2Nlc3NEYXRhLnNpemUoKSksCi0gICAgICAgICAgICAgICAgICAgIGJhc2Us
Ci0gICAgICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoR2V0UHJvcGVydHlTdG9yYWdlLCBiYXNl
KSwKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIFN0b3JhZ2VBY2Nlc3NEYXRhIHN0b3JhZ2VBY2Nlc3NEYXRhOwotICAgICAgICAg
ICAgICAgIHN0b3JhZ2VBY2Nlc3NEYXRhLm9mZnNldCA9IHB1dEJ5SWRTdGF0dXMub2Zmc2V0KCk7
Ci0gICAgICAgICAgICAgICAgc3RvcmFnZUFjY2Vzc0RhdGEuaWRlbnRpZmllck51bWJlciA9IGlk
ZW50aWZpZXJOdW1iZXI7Ci0gICAgICAgICAgICAgICAgbV9ncmFwaC5tX3N0b3JhZ2VBY2Nlc3NE
YXRhLmFwcGVuZChzdG9yYWdlQWNjZXNzRGF0YSk7Ci0gICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjYXNlIGFjY2Vzc19wdXRfYnlfaWRf
dHJhbnNpdGlvbl9ub3JtYWw6CisgICAgICAgICAgICAgICAgY2FzZSBhY2Nlc3NfcHV0X2J5X2lk
X3RyYW5zaXRpb25fZGlyZWN0OiB7CisgICAgICAgICAgICAgICAgICAgIFN0cnVjdHVyZSogcHJl
dmlvdXNTdHJ1Y3R1cmUgPSBzdHViSW5mby51LnB1dEJ5SWRUcmFuc2l0aW9uLnByZXZpb3VzU3Ry
dWN0dXJlLmdldCgpOworICAgICAgICAgICAgICAgICAgICBTdHJ1Y3R1cmUqIG5ld1N0cnVjdHVy
ZSA9IHN0dWJJbmZvLnUucHV0QnlJZFRyYW5zaXRpb24uc3RydWN0dXJlLmdldCgpOworICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzU3RydWN0dXJl
LT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpICE9IG5ld1N0cnVjdHVyZS0+cHJvcGVydHlTdG9y
YWdlQ2FwYWNpdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgU3RydWN0dXJlQ2hhaW4qIHN0cnVjdHVy
ZUNoYWluID0gc3R1YkluZm8udS5wdXRCeUlkVHJhbnNpdGlvbi5jaGFpbi5nZXQoKTsKKyAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIElkZW50aWZpZXIgaWRlbnRpZmll
ciA9IG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGlkZW50aWZpZXJOdW1iZXIpOworICAgICAgICAg
ICAgICAgICAgICBzaXplX3Qgb2Zmc2V0ID0gbmV3U3RydWN0dXJlLT5nZXQoKm1fZ2xvYmFsRGF0
YSwgaWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICBpZiAob2Zmc2V0ICE9IG5vdEZvdW5kICYmIHN0cnVjdHVyZUNoYWluSXNTdGlsbFZhbGlkKGRp
cmVjdCwgcHJldmlvdXNTdHJ1Y3R1cmUsIHN0cnVjdHVyZUNoYWluKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja1N0cnVjdHVyZSwgT3BJbmZvKG1fZ3JhcGguYWRk
U3RydWN0dXJlU2V0KHByZXZpb3VzU3RydWN0dXJlKSksIGJhc2UpOworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFkaXJlY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
IXByZXZpb3VzU3RydWN0dXJlLT5zdG9yZWRQcm90b3R5cGUoKS5pc051bGwoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja1N0cnVjdHVyZSwgT3BJbmZv
KG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KHByZXZpb3VzU3RydWN0dXJlLT5zdG9yZWRQcm90b3R5
cGUoKS5hc0NlbGwoKS0+c3RydWN0dXJlKCkpKSwgY2VsbENvbnN0YW50KHByZXZpb3VzU3RydWN0
dXJlLT5zdG9yZWRQcm90b3R5cGUoKS5hc0NlbGwoKSkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoV3JpdGVCYXJyaWVyPFN0
cnVjdHVyZT4qIGl0ID0gc3RydWN0dXJlQ2hhaW4tPmhlYWQoKTsgKml0OyArK2l0KSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0gKCppdCktPnN0
b3JlZFByb3RvdHlwZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJv
dG90eXBlLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChwcm90b3R5cGUu
aXNDZWxsKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENo
ZWNrU3RydWN0dXJlLCBPcEluZm8obV9ncmFwaC5hZGRTdHJ1Y3R1cmVTZXQocHJvdG90eXBlLmFz
Q2VsbCgpLT5zdHJ1Y3R1cmUoKSkpLCBjZWxsQ29uc3RhbnQocHJvdG90eXBlLmFzQ2VsbCgpKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChQdXRTdHJ1Y3R1cmUsIE9wSW5m
byhtX2dyYXBoLmFkZFN0cnVjdHVyZVRyYW5zaXRpb25EYXRhKFN0cnVjdHVyZVRyYW5zaXRpb25E
YXRhKHByZXZpb3VzU3RydWN0dXJlLCBuZXdTdHJ1Y3R1cmUpKSksIGJhc2UpOworICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKFB1dEJ5
T2Zmc2V0LCBPcEluZm8obV9ncmFwaC5tX3N0b3JhZ2VBY2Nlc3NEYXRhLnNpemUoKSksIGJhc2Us
IGFkZFRvR3JhcGgoR2V0UHJvcGVydHlTdG9yYWdlLCBiYXNlKSwgdmFsdWUpOworICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBTdG9yYWdlQWNjZXNzRGF0
YSBzdG9yYWdlQWNjZXNzRGF0YTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VBY2Nl
c3NEYXRhLm9mZnNldCA9IG9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VB
Y2Nlc3NEYXRhLmlkZW50aWZpZXJOdW1iZXIgPSBpZGVudGlmaWVyTnVtYmVyOworICAgICAgICAg
ICAgICAgICAgICAgICAgbV9ncmFwaC5tX3N0b3JhZ2VBY2Nlc3NEYXRhLmFwcGVuZChzdG9yYWdl
QWNjZXNzRGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGFscmVhZHlHZW5lcmF0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisg
ICAgICAgICAgICBpZiAoIWFscmVhZHlHZW5lcmF0ZWQpIHsKICAgICAgICAgICAgICAgICBpZiAo
ZGlyZWN0KQogICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKFB1dEJ5SWREaXJlY3QsIE9w
SW5mbyhpZGVudGlmaWVyTnVtYmVyKSwgYmFzZSwgdmFsdWUpOwogICAgICAgICAgICAgICAgIGVs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlU2V0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZVNldC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE4MWMzMjkxMDM1NWEzNGVmNTNkZWYzOWFhNjIxYjQ1ZjdiODQ4ZTkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZVNldC5oCkBAIC0w
LDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgREZHU3RydWN0dXJlU2V0X2gKKyNkZWZpbmUgREZHU3RydWN0dXJlU2V0X2gK
KworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKKyNp
bmNsdWRlICJQcmVkaWN0ZWRUeXBlLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBTdHJ1Y3R1cmU7CisKK25h
bWVzcGFjZSBERkcgeworCitjbGFzcyBTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlOworCitjbGFzcyBT
dHJ1Y3R1cmVTZXQgeworcHVibGljOgorICAgIFN0cnVjdHVyZVNldCgpIHsgfQorICAgIAorICAg
IFN0cnVjdHVyZVNldChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICB7CisgICAgICAgIG1fc3Ry
dWN0dXJlcy5hcHBlbmQoc3RydWN0dXJlKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBjbGVhcigp
CisgICAgeworICAgICAgICBtX3N0cnVjdHVyZXMuY2xlYXIoKTsKKyAgICB9CisgICAgCisgICAg
dm9pZCBhZGQoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgeworICAgICAgICBBU1NFUlQoIWNv
bnRhaW5zKHN0cnVjdHVyZSkpOworICAgICAgICBtX3N0cnVjdHVyZXMuYXBwZW5kKHN0cnVjdHVy
ZSk7CisgICAgfQorICAgIAorICAgIGJvb2wgYWRkQWxsKGNvbnN0IFN0cnVjdHVyZVNldCYgb3Ro
ZXIpCisgICAgeworICAgICAgICBib29sIGNoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBvdGhlci5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKGNv
bnRhaW5zKG90aGVyW2ldKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
IGFkZChvdGhlcltpXSk7CisgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gY2hhbmdlZDsKKyAgICB9CisgICAgCisgICAgdm9pZCByZW1vdmUoU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fc3RydWN0dXJlcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKG1fc3RydWN0dXJl
c1tpXSAhPSBzdHJ1Y3R1cmUpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIG1fc3RydWN0dXJlc1tpXSA9IG1fc3RydWN0dXJlcy5sYXN0KCk7Cisg
ICAgICAgICAgICBtX3N0cnVjdHVyZXMucmVtb3ZlTGFzdCgpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGJvb2wgY29udGFpbnMoU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpIGNvbnN0CisgICAgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1f
c3RydWN0dXJlcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKG1fc3RydWN0dXJlc1tp
XSA9PSBzdHJ1Y3R1cmUpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBib29sIGlzU3Vic2V0T2Yo
Y29uc3QgU3RydWN0dXJlU2V0JiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9zdHJ1Y3R1cmVzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBp
ZiAoIW90aGVyLmNvbnRhaW5zKG1fc3RydWN0dXJlc1tpXSkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAK
KyAgICBib29sIGlzU3VwZXJzZXRPZihjb25zdCBTdHJ1Y3R1cmVTZXQmIG90aGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG90aGVyLmlzU3Vic2V0T2YoKnRoaXMpOworICAgIH0KKyAg
ICAKKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RydWN0dXJlcy5zaXplKCk7
IH0KKyAgICAKKyAgICBTdHJ1Y3R1cmUqIGF0KHNpemVfdCBpKSBjb25zdCB7IHJldHVybiBtX3N0
cnVjdHVyZXMuYXQoaSk7IH0KKyAgICAKKyAgICBTdHJ1Y3R1cmUqIG9wZXJhdG9yW10oc2l6ZV90
IGkpIGNvbnN0IHsgcmV0dXJuIGF0KGkpOyB9CisgICAgCisgICAgU3RydWN0dXJlKiBsYXN0KCkg
Y29uc3QgeyByZXR1cm4gbV9zdHJ1Y3R1cmVzLmxhc3QoKTsgfQorCisgICAgUHJlZGljdGVkVHlw
ZSBwcmVkaWN0aW9uRnJvbVN0cnVjdHVyZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgUHJlZGlj
dGVkVHlwZSByZXN1bHQgPSBQcmVkaWN0Tm9uZTsKKyAgICAgICAgCisgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9zdHJ1Y3R1cmVzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgbWVy
Z2VQcmVkaWN0aW9uKHJlc3VsdCwgcHJlZGljdGlvbkZyb21TdHJ1Y3R1cmUobV9zdHJ1Y3R1cmVz
W2ldKSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAg
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RydWN0dXJlU2V0JiBvdGhlcikgY29uc3QKKyAgICB7
CisgICAgICAgIGlmIChtX3N0cnVjdHVyZXMuc2l6ZSgpICE9IG90aGVyLm1fc3RydWN0dXJlcy5z
aXplKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fc3RydWN0dXJlcy5zaXplKCk7ICsraSkgeworICAgICAgICAg
ICAgaWYgKCFvdGhlci5jb250YWlucyhtX3N0cnVjdHVyZXNbaV0pKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIAorI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIGR1bXAoRklMRSogb3V0KQor
ICAgIHsKKyAgICAgICAgZnByaW50ZihvdXQsICJbIik7CisgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV9zdHJ1Y3R1cmVzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSkK
KyAgICAgICAgICAgICAgICBmcHJpbnRmKG91dCwgIiwgIik7CisgICAgICAgICAgICBmcHJpbnRm
KG91dCwgIiVwIiwgbV9zdHJ1Y3R1cmVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmcHJpbnRm
KG91dCwgIl0iKTsKKyAgICB9CisjZW5kaWYKKyAgICAKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNs
YXNzIFN0cnVjdHVyZUFic3RyYWN0VmFsdWU7CisgICAgCisgICAgVmVjdG9yPFN0cnVjdHVyZSos
IDI+IG1fc3RydWN0dXJlczsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2Vu
ZGlmIC8vIEVOQUJMRShERkdfSklUKQorCisjZW5kaWYgLy8gREZHU3RydWN0dXJlU2V0X2gK
</data>
<flag name="commit-queue"
          id="124542"
          type_id="3"
          status="-"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>