<?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>123786</bug_id>
          
          <creation_ts>2013-11-04 20:55:12 -0800</creation_ts>
          <short_desc>[WK2] Add a WebKit2 API for Geolocation&apos;s highAccuracy</short_desc>
          <delta_ts>2013-11-05 14:17:30 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hugo.lima</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>946999</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-11-04 20:55:12 -0800</bug_when>
    <thetext>[WK2] Add a WebKit2 API for Geolocation&apos;s highAccuracy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947002</commentid>
    <comment_count>1</comment_count>
      <attachid>215997</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-11-04 21:06:25 -0800</bug_when>
    <thetext>Created attachment 215997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947005</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-11-04 21:08:46 -0800</bug_when>
    <thetext>*** Bug 120136 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947006</commentid>
    <comment_count>3</comment_count>
      <attachid>215997</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-04 21:16:05 -0800</bug_when>
    <thetext>Comment on attachment 215997
Patch

Attachment 215997 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/21008003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947007</commentid>
    <comment_count>4</comment_count>
      <attachid>215998</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-11-04 21:18:14 -0800</bug_when>
    <thetext>Created attachment 215998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947009</commentid>
    <comment_count>5</comment_count>
      <attachid>215998</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-04 21:25:46 -0800</bug_when>
    <thetext>Comment on attachment 215998
Patch

Attachment 215998 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/20978053</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947018</commentid>
    <comment_count>6</comment_count>
      <attachid>216001</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-11-04 21:43:06 -0800</bug_when>
    <thetext>Created attachment 216001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947205</commentid>
    <comment_count>7</comment_count>
      <attachid>216001</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-05 09:04:01 -0800</bug_when>
    <thetext>Comment on attachment 216001
Patch

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

&gt; Source/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp:101
&gt; +        m_provider.setEnableHighAccuracy(this, isHighAccuracyEnabled());
&gt;          m_provider.startUpdating(this);

Too bad we always have to send two messages here. Seems to me that we could have startUpdating take the high accuracy boolean, and/or combine startUpdating and setEnableHighAccuracy into a single message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947303</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-11-05 13:13:46 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 216001 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=216001&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp:101
&gt; &gt; +        m_provider.setEnableHighAccuracy(this, isHighAccuracyEnabled());
&gt; &gt;          m_provider.startUpdating(this);
&gt; 
&gt; Too bad we always have to send two messages here. Seems to me that we could have startUpdating take the high accuracy boolean, and/or combine startUpdating and setEnableHighAccuracy into a single message.

Most system do not handle setEnableHighAccuracy() and the callback function will be null. I could make a new startUpdating but I don&apos;t think it is worth is since the other API is already widely used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947306</commentid>
    <comment_count>9</comment_count>
      <attachid>216001</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-11-05 13:15:07 -0800</bug_when>
    <thetext>Comment on attachment 216001
Patch

Clearing flags on attachment: 216001

Committed r158689: &lt;http://trac.webkit.org/changeset/158689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947307</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-11-05 13:15:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947353</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-11-05 14:17:30 -0800</bug_when>
    <thetext>This patch caused all tests to start crashing:
e.g. 
http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK2%20%28Tests%29/builds/13947
http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r158689%20(13947)/results.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215997</attachid>
            <date>2013-11-04 21:06:25 -0800</date>
            <delta_ts>2013-11-04 21:18:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123786-20131104210624.patch</filename>
            <type>text/plain</type>
            <size>44838</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTI3YTkxNmM0ZjgxM2Fi
ZjIyOWM0ZDg5NjM1Mjg4MzBjMTJmNGE2ZS4uODQ4OWE5ZWNjMzNiMGQ4ODJhOWQ3YTZiNDA2Zjdk
YTliZWE2YTU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEzLTExLTA0ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBBZGQg
YSBXZWJLaXQyIEFQSSBmb3IgR2VvbG9jYXRpb24ncyBoaWdoQWNjdXJhY3kKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzc4NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyBzdXBwb3J0IGZv
ciBoaWdoQWNjdXJhY3kgR2VvbG9jYXRpb24gd2l0aCBXZWJLaXQyLgorCisgICAgICAgIFRoZSBr
ZXkgaXMgdG8gdHJhY2sgd2hpY2ggcGFnZS9yZXF1ZXN0ZXIgbmVlZCB3aGF0IGtpbmQgb2YgZ2Vv
bG9jYXRpb24KKyAgICAgICAgaW4gb3JkZXIgdG8gY2hhbmdlIGJldHdlZW4gaGlnaCBhbmQgbG93
IGFjY3VyYWN5IGFzIHBhZ2VzIHJ1biBhbmQgZGlzYXBwZWFyLgorCisgICAgICAgIFdlYkdlb2xv
Y2F0aW9uTWFuYWdlciBhbmQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgaGF2ZSB2ZXJ5IHNp
bWlsYXIgcm9sZXMKKyAgICAgICAgYnV0IGZvciBkaWZmZXJlbnQgc291cmNlczoKKyAgICAgICAg
LVdlYkdlb2xvY2F0aW9uTWFuYWdlciB0cmFja3Mgd2hpY2ggbGl2ZSBwYWdlIHJlcXVpcmUgaGln
aCBhY2N1cmFjeSBnZW9sb2NhdGlvbi4KKyAgICAgICAgIFdoZW4gdGhlIHN0YXRlIGNoYW5nZXMs
IGl0IGZvcndhcmQgdGhlIGluZm9ybWF0aW9uIHRvIHRoZSBVSVByb2Nlc3MuCisgICAgICAgIC1X
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSB0cmFja3Mgd2hpY2ggV2ViQ29udGVudCBwcm9jZXNz
ZXMgbmVlZHMgaGlnaCBhY2N1cmFjeS4KKworICAgICAgICAqIFNoYXJlZC9BUElDbGllbnRUcmFp
dHMuY3BwOgorICAgICAgICAqIFNoYXJlZC9BUElDbGllbnRUcmFpdHMuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpyZW1vdmVSZXF1ZXN0ZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmlzVXBkYXRpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6aXNIaWdoQWNjdXJh
Y3lFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblByb3ZpZGVyOjpzZXRFbmFi
bGVIaWdoQWNjdXJhY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3Zp
ZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lz
dGVyV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6dW5y
ZWdpc3RlcldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6
OnNldEVuYWJsZUhpZ2hBY2N1cmFjeUZvclBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR2Vv
bG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdl
b2xvY2F0aW9uTWFuYWdlcjo6aXNVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xv
Y2F0aW9uTWFuYWdlcjo6aXNIaWdoQWNjdXJhY3lFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeSk6CisKIDIw
MTMtMTEtMDQgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dLMl0gVXBkYXRlIFdlYkdlb2xvY2F0aW9uTWFuYWdlciB0byBzdXBwb3J0IG11bHRpcGxl
IFdlYkNvbnRlbnQgcHJvY2Vzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJQ2xpZW50VHJhaXRzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFp
dHMuY3BwCmluZGV4IDk1MmFkMjY5YTMxYTQ2Y2RkM2M2MzQxNWRkNjRmMmY1ZTZhZTNmNTkuLjIx
MDcxY2QwY2ZiMjQ1ZDc0ZDEzNjZiMzMwYjM1ODI1NGFkZGRiMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDMsNCArMTAzLDkgQEAgY29uc3Qgc2l6ZV90
IEFQSUNsaWVudFRyYWl0czxXS0ljb25EYXRhYmFzZUNsaWVudD46OmludGVyZmFjZVNpemVzQnlW
ZXJzaW9uW10gPQogICAgIHNpemVvZihXS0ljb25EYXRhYmFzZUNsaWVudCkKIH07CiAKK2NvbnN0
IHNpemVfdCBBUElDbGllbnRUcmFpdHM8V0tHZW9sb2NhdGlvblByb3ZpZGVyPjo6aW50ZXJmYWNl
U2l6ZXNCeVZlcnNpb25bXSA9IHsKKyAgICBvZmZzZXRvZihXS0dlb2xvY2F0aW9uUHJvdmlkZXIs
IHNldEVuYWJsZUhpZ2hBY2N1cmFjeSksCisgICAgc2l6ZW9mKFdLR2VvbG9jYXRpb25Qcm92aWRl
cikKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNs
aWVudFRyYWl0cy5oCmluZGV4IGRmM2FhYmI5Yzg1ZTE2NzEwY2FkNGRhNjdhNGRmZDQ5MmMxNGM4
OTUuLjk3MTJiYTIwYmUwMDBiNWQxNmEwM2FmOWZiZjgxMTFjMjk3MTJjZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJX
S0J1bmRsZS5oIgogI2luY2x1ZGUgIldLQnVuZGxlUGFnZS5oIgogI2luY2x1ZGUgIldLQ29udGV4
dC5oIgorI2luY2x1ZGUgIldLR2VvbG9jYXRpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV0tJY29u
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJXS1BhZ2UuaCIKIApAQCAtODcsNiArODgsMTAgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLSWNvbkRhdGFiYXNlQ2xpZW50PiB7CiAg
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvblsyXTsKIH07CiAK
K3RlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS0dlb2xvY2F0aW9uUHJvdmlkZXI+
IHsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGludGVyZmFjZVNpemVzQnlWZXJzaW9uWzJdOwor
fTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBBUElDbGllbnRUcmFpdHNf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRp
b25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlv
bk1hbmFnZXIuaAppbmRleCA3ZjljYjY4OTEwOWEzOTc3MGZmMTJhMDUyZWZlMTNhYzYyNzJlM2E0
Li4yYWUxNTkzMWVhZmU4MTMwM2I3NGYwODFjNTk1YmJmODE4YWM2YWRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzUsMTYgKzM1LDIxIEBAIGV4dGVybiAiQyIgewogLy8gUHJvdmlkZXIuCiB0
eXBlZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2sp
KFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdG9wVXBk
YXRpbmdDYWxsYmFjaykoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2Vy
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLR2VvbG9jYXRpb25Q
cm92aWRlclNldEVuYWJsZUhpZ2hBY2N1cmFjeUNhbGxiYWNrKShXS0dlb2xvY2F0aW9uTWFuYWdl
clJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIGJvb2wgZW5hYmxlZCwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiAKIHN0cnVjdCBXS0dlb2xvY2F0aW9uUHJvdmlkZXIgewogICAgIGludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVyc2lvbjsKICAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CiAgICAgV0tHZW9sb2NhdGlvblBy
b3ZpZGVyU3RhcnRVcGRhdGluZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFy
dFVwZGF0aW5nOwogICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlclN0b3BVcGRhdGluZ0NhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcFVwZGF0aW5nOworCisgICAgLy8gVmVyc2lv
biAxLgorICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlclNldEVuYWJsZUhpZ2hBY2N1cmFjeUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlSGlnaEFjY3VyYWN5OworCiB9OwogdHlwZWRl
ZiBzdHJ1Y3QgV0tHZW9sb2NhdGlvblByb3ZpZGVyIFdLR2VvbG9jYXRpb25Qcm92aWRlcjsKIAot
ZW51bSB7IGtXS0dlb2xvY2F0aW9uUHJvdmlkZXJDdXJyZW50VmVyc2lvbiA9IDAgfTsKK2VudW0g
eyBrV0tHZW9sb2NhdGlvblByb3ZpZGVyQ3VycmVudFZlcnNpb24gPSAxIH07CiAKIFdLX0VYUE9S
VCBXS1R5cGVJRCBXS0dlb2xvY2F0aW9uTWFuYWdlckdldFR5cGVJRCgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNw
cAppbmRleCA2NGVkZjhhYzA3Y2NjM2YyYjYyZDA4NDUzMTIyYWYzZDdhNzAzNDk3Li41Y2RhNzFh
Y2IyY2Q5YmEyMWEwMWE2MTdkNjRlM2MwMTkwMmMxM2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAKQEAgLTk0
LDEwICs5NCwxMiBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Ojpwcm92aWRlckRp
ZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZwogCiB2b2lkIFdlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5OjpzdGFydFVwZGF0aW5nKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24pCiB7Ci0gICAgYm9vbCB3YXNVcGRhdGluZyA9ICFtX3VwZGF0ZVJlcXVlc3RlcnMuaXNF
bXB0eSgpOworICAgIGJvb2wgd2FzVXBkYXRpbmcgPSBpc1VwZGF0aW5nKCk7CiAgICAgbV91cGRh
dGVSZXF1ZXN0ZXJzLmFkZChjb25uZWN0aW9uLT5jbGllbnQoKSk7Ci0gICAgaWYgKCF3YXNVcGRh
dGluZykKKyAgICBpZiAoIXdhc1VwZGF0aW5nKSB7CisgICAgICAgIG1fcHJvdmlkZXIuc2V0RW5h
YmxlSGlnaEFjY3VyYWN5KHRoaXMsIGlzSGlnaEFjY3VyYWN5RW5hYmxlZCgpKTsKICAgICAgICAg
bV9wcm92aWRlci5zdGFydFVwZGF0aW5nKHRoaXMpOworICAgIH0KIH0KIAogdm9pZCBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eTo6c3RvcFVwZGF0aW5nKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24pCkBAIC0xMDcsMTAgKzEwOSwzNCBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5OjpzdG9wVXBkYXRpbmcoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIAog
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6cmVtb3ZlUmVxdWVzdGVyKGNvbnN0IENv
cmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudCogY2xpZW50KQogewotICAgIGJvb2wgd2FzVXBkYXRp
bmcgPSAhbV91cGRhdGVSZXF1ZXN0ZXJzLmlzRW1wdHkoKTsKKyAgICBib29sIHdhc1VwZGF0aW5n
ID0gaXNVcGRhdGluZygpOworICAgIEFTU0VSVCh3YXNVcGRhdGluZyk7CisgICAgYm9vbCBoaWdo
QWNjdXJhY3lXYXNFbmFibGVkID0gaXNIaWdoQWNjdXJhY3lFbmFibGVkKCk7CisKKyAgICBtX2hp
Z2hBY2N1cmFjeVJlcXVlc3RlcnMucmVtb3ZlKGNsaWVudCk7CiAgICAgbV91cGRhdGVSZXF1ZXN0
ZXJzLnJlbW92ZShjbGllbnQpOwotICAgIGlmICh3YXNVcGRhdGluZyAmJiBtX3VwZGF0ZVJlcXVl
c3RlcnMuaXNFbXB0eSgpKQorCisgICAgaWYgKHdhc1VwZGF0aW5nICYmICFpc1VwZGF0aW5nKCkp
CiAgICAgICAgIG1fcHJvdmlkZXIuc3RvcFVwZGF0aW5nKHRoaXMpOworICAgIGVsc2UgeworICAg
ICAgICBib29sIGhpZ2hBY2N1cmFjeVNob3VsZEJlRW5hYmxlZCA9IGlzSGlnaEFjY3VyYWN5RW5h
YmxlZCgpOworICAgICAgICBpZiAoaGlnaEFjY3VyYWN5U2hvdWxkQmVFbmFibGVkICE9IGhpZ2hB
Y2N1cmFjeVdhc0VuYWJsZWQpCisgICAgICAgICAgICBtX3Byb3ZpZGVyLnNldEVuYWJsZUhpZ2hB
Y2N1cmFjeSh0aGlzLCBoaWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpOworICAgIH0KK30KKwor
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGJvb2wgZW5hYmxlZCkKK3sKKyAgICBib29s
IGhpZ2hBY2N1cmFjeVdhc0VuYWJsZWQgPSBpc0hpZ2hBY2N1cmFjeUVuYWJsZWQoKTsKKworICAg
IGlmIChlbmFibGVkKQorICAgICAgICBtX2hpZ2hBY2N1cmFjeVJlcXVlc3RlcnMuYWRkKGNvbm5l
Y3Rpb24tPmNsaWVudCgpKTsKKyAgICBlbHNlCisgICAgICAgIG1faGlnaEFjY3VyYWN5UmVxdWVz
dGVycy5yZW1vdmUoY29ubmVjdGlvbi0+Y2xpZW50KCkpOworCisgICAgYm9vbCBoaWdoQWNjdXJh
Y3lTaG91bGRCZUVuYWJsZWQgPSBpc0hpZ2hBY2N1cmFjeUVuYWJsZWQoKTsKKyAgICBpZiAoaXNV
cGRhdGluZygpICYmIGhpZ2hBY2N1cmFjeVdhc0VuYWJsZWQgIT0gaGlnaEFjY3VyYWN5U2hvdWxk
QmVFbmFibGVkKQorICAgICAgICBtX3Byb3ZpZGVyLnNldEVuYWJsZUhpZ2hBY2N1cmFjeSh0aGlz
LCBoaWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmgKaW5kZXggODZlNDliNTQ0NDkyNzVjNjRmNmZkMzI4MTlmODVhMTJlMTM3ZWVm
Ny4uOTA3OWY5OWE4ZjNlNWI0NGM1MGJhYjZhMjQ4YTAwMGJlY2QzMzEyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgK
QEAgLTY1LDExICs2NSwxNiBAQCBwcml2YXRlOgogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKIAorICAgIGJvb2wgaXNV
cGRhdGluZygpIGNvbnN0IHsgcmV0dXJuICFtX3VwZGF0ZVJlcXVlc3RlcnMuaXNFbXB0eSgpOyB9
CisgICAgYm9vbCBpc0hpZ2hBY2N1cmFjeUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiAhbV9oaWdo
QWNjdXJhY3lSZXF1ZXN0ZXJzLmlzRW1wdHkoKTsgfQorCiAgICAgdm9pZCBzdGFydFVwZGF0aW5n
KENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2b2lkIHN0b3BVcGRhdGluZyhDb3JlSVBDOjpD
b25uZWN0aW9uKik7CiAgICAgdm9pZCByZW1vdmVSZXF1ZXN0ZXIoY29uc3QgQ29yZUlQQzo6Q29u
bmVjdGlvbjo6Q2xpZW50Kik7CisgICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIGJvb2wpOwogCiAgICAgSGFzaFNldDxjb25zdCBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQqPiBtX3VwZGF0ZVJlcXVlc3RlcnM7CisgICAgSGFzaFNldDxjb25zdCBD
b3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQqPiBtX2hpZ2hBY2N1cmFjeVJlcXVlc3RlcnM7CiAK
ICAgICBXZWJHZW9sb2NhdGlvblByb3ZpZGVyIG1fcHJvdmlkZXI7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE1NDA2Nzc5ZmNlZmE5ZWMxZTZjNTVmNjljMDY0YjkzYmE0
OGM3MGIuLjllMDhhNmE2ZTU4M2NkMWNiNGJhNjAwNDlkYTY4ZjFjNWUxODk5NjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDQgKzIzLDUgQEAKIG1lc3NhZ2VzIC0+IFdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5IHsKICAgICBTdGFydFVwZGF0aW5nKCkgV2FudHNDb25u
ZWN0aW9uCiAgICAgU3RvcFVwZGF0aW5nKCkgV2FudHNDb25uZWN0aW9uCisgICAgU2V0RW5hYmxl
SGlnaEFjY3VyYWN5KGJvb2wgZW5hYmxlZCkgV2FudHNDb25uZWN0aW9uCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKaW5kZXgg
YzM4MjIzNWM3Y2QzNzlhMDJiMDVhZWVhMzI5ZmRkYTBhYjYzMDg2Ni4uMGI4NjRjY2YzYThiNWQ4
ODZjN2VjYTg0MWRiOTA5N2YwYTBhOGViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDcsNCArNDcsMTIgQEAgdm9pZCBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyOjpzdG9wVXBkYXRpbmcoV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHkqIGdlb2xvY2F0aW8KICAgICBtX2NsaWVudC5zdG9wVXBkYXRpbmcodG9BUEkoZ2VvbG9j
YXRpb25NYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAKK3ZvaWQgV2ViR2VvbG9j
YXRpb25Qcm92aWRlcjo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5KiBnZW9sb2NhdGlvbk1hbmFnZXIsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAoIW1f
Y2xpZW50LnNldEVuYWJsZUhpZ2hBY2N1cmFjeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
bGllbnQuc2V0RW5hYmxlSGlnaEFjY3VyYWN5KHRvQVBJKGdlb2xvY2F0aW9uTWFuYWdlciksIGVu
YWJsZWQsIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5o
CmluZGV4IDE3NzY4NzlkNWNkNjVjZWIwY2ZhYWU0ZGM4YzU5YWU2MzYzYmNkMzguLmYyNTBjODEw
N2I1MDFjYTUxMTA3ZmIyNTJlZTZjNjJjNmExYThmYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNiArMzgsNyBAQCBjbGFz
cyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS0dlb2xvY2F0aW9u
UHJvdmlkZXIsIGtXS0dlb2xvYwogcHVibGljOgogICAgIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eSopOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKFdlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5Kik7CisgICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqLCBib29sKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCmluZGV4IGFhNDJmNWE2ZGRmMDU3Mjhk
YTNhOWQxMDJlZmJlOTRkYjkzNGQ3NmYuLmM4ZjhlMWY4NWE1MGJjMmFiZDdlZGVjMzc0YzljYjg1
OGYyYjMyYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRp
b24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKQEAgLTUxLDI2ICs1MSw0
NCBAQCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OldlYkdlb2xvY2F0aW9uTWFuYWdlcihXZWJQcm9j
ZXNzKiBwcm9jZXNzKQogICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9
CiAKLVdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6fldlYkdlb2xvY2F0aW9uTWFuYWdlcigpCi17Ci19
Ci0KIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSog
cGFnZSkKIHsKLSAgICBib29sIHdhc0VtcHR5ID0gbV9wYWdlU2V0LmlzRW1wdHkoKTsKKyAgICBi
b29sIHdhc1VwZGF0aW5nID0gaXNVcGRhdGluZygpOwogCiAgICAgbV9wYWdlU2V0LmFkZChwYWdl
KTsKLSAgICAKLSAgICBpZiAod2FzRW1wdHkpCisKKyAgICBpZiAoIXdhc1VwZGF0aW5nKQogICAg
ICAgICBtX3Byb2Nlc3MtPnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpTdGFydFVwZGF0aW5nKCksIDApOwogfQogCiB2
b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6dW5yZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFn
ZSkKIHsKKyAgICBib29sIGhpZ2hBY2N1cmFjeVdhc0VuYWJsZWQgPSBpc0hpZ2hBY2N1cmFjeUVu
YWJsZWQoKTsKKwogICAgIG1fcGFnZVNldC5yZW1vdmUocGFnZSk7CisgICAgbV9oaWdoQWNjdXJh
Y3lQYWdlU2V0LnJlbW92ZShwYWdlKTsKIAotICAgIGlmIChtX3BhZ2VTZXQuaXNFbXB0eSgpKQor
ICAgIGlmICghaXNVcGRhdGluZygpKQogICAgICAgICBtX3Byb2Nlc3MtPnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpT
dG9wVXBkYXRpbmcoKSwgMCk7CisgICAgZWxzZSB7CisgICAgICAgIGJvb2wgaGlnaEFjY3VyYWN5
U2hvdWxkQmVFbmFibGVkID0gaXNIaWdoQWNjdXJhY3lFbmFibGVkKCk7CisgICAgICAgIGlmICho
aWdoQWNjdXJhY3lXYXNFbmFibGVkICE9IGhpZ2hBY2N1cmFjeVNob3VsZEJlRW5hYmxlZCkKKyAg
ICAgICAgICAgIG1fcHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlNldEVuYWJsZUhpZ2hBY2N1cmFjeSho
aWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpLCAwKTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpzZXRFbmFibGVIaWdoQWNjdXJhY3lGb3JQYWdlKFdlYlBhZ2UqIHBh
Z2UsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICBib29sIGhpZ2hBY2N1cmFjeVdhc0VuYWJsZWQgPSBp
c0hpZ2hBY2N1cmFjeUVuYWJsZWQoKTsKKworICAgIGlmIChlbmFibGVkKQorICAgICAgICBtX2hp
Z2hBY2N1cmFjeVBhZ2VTZXQuYWRkKHBhZ2UpOworICAgIGVsc2UKKyAgICAgICAgbV9oaWdoQWNj
dXJhY3lQYWdlU2V0LnJlbW92ZShwYWdlKTsKKworICAgIGJvb2wgaGlnaEFjY3VyYWN5U2hvdWxk
QmVFbmFibGVkID0gaXNIaWdoQWNjdXJhY3lFbmFibGVkKCk7CisgICAgaWYgKGhpZ2hBY2N1cmFj
eVdhc0VuYWJsZWQgIT0gaGlnaEFjY3VyYWN5U2hvdWxkQmVFbmFibGVkKQorICAgICAgICBtX3By
b2Nlc3MtPnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5OjpTZXRFbmFibGVIaWdoQWNjdXJhY3koaGlnaEFjY3VyYWN5U2hv
dWxkQmVFbmFibGVkKSwgMCk7CiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRD
aGFuZ2VQb3NpdGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhJiBkYXRhKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24v
V2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKaW5kZXggNGExZDczYWUwZmYwOGViYmQ1YWExYmU2Zjgy
N2NmM2JlMDRiMjUzMi4uZmVmYzA2ZjM1MDgwNGM5NjAyZjQzZjI1ZDhiZDdkYzZjZDMwZTBlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0
aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC00NywxMiArNDcsMTIgQEAgY2xhc3MgV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMg
Q29yZUlQQzo6TWVzc2EKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJHZW9sb2NhdGlvbk1h
bmFnZXIpOwogcHVibGljOgogICAgIGV4cGxpY2l0IFdlYkdlb2xvY2F0aW9uTWFuYWdlcihXZWJQ
cm9jZXNzKik7Ci0gICAgfldlYkdlb2xvY2F0aW9uTWFuYWdlcigpOwogCiAgICAgc3RhdGljIGNv
bnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKICAgICB2b2lkIHJlZ2lzdGVyV2ViUGFnZShX
ZWJQYWdlKik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKik7CisgICAgdm9p
ZCBzZXRFbmFibGVIaWdoQWNjdXJhY3lGb3JQYWdlKFdlYlBhZ2UqLCBib29sKTsKIAogICAgIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKIApAQCAtNjAsMTEg
KzYwLDE1IEBAIHByaXZhdGU6CiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwogCisgICAgYm9vbCBpc1VwZGF0aW5nKCkg
Y29uc3QgeyByZXR1cm4gIW1fcGFnZVNldC5pc0VtcHR5KCk7IH0KKyAgICBib29sIGlzSGlnaEFj
Y3VyYWN5RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2hpZ2hBY2N1cmFjeVBhZ2VTZXQuaXNF
bXB0eSgpOyB9CisKICAgICB2b2lkIGRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IFdlYkdlb2xvY2F0
aW9uUG9zaXRpb246OkRhdGEmKTsKICAgICB2b2lkIGRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9u
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgIFdlYlByb2Nlc3MqIG1fcHJvY2Vz
czsKICAgICBIYXNoU2V0PFdlYlBhZ2UqPiBtX3BhZ2VTZXQ7CisgICAgSGFzaFNldDxXZWJQYWdl
Kj4gbV9oaWdoQWNjdXJhY3lQYWdlU2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdl
b2xvY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCmluZGV4IGY5YTM2ZGRhNmVhZjk2MTk4ODIz
ZjFhYjYxNDkwNGY2MDg0NWZjOTkuLmMyMjExMDM4Mzg0OGMzNmJmNjQxZjY4ZmZhOGQ1ZjdiOWEw
YWNlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OCw4ICs1OCw5IEBA
IHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZygpCiAgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuc3VwcGxlbWVudDxXZWJHZW9sb2NhdGlvbk1hbmFnZXI+KCktPnVucmVnaXN0
ZXJXZWJQYWdlKG1fcGFnZSk7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVu
YWJsZUhpZ2hBY2N1cmFjeShib29sKQordm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6c2V0RW5h
YmxlSGlnaEFjY3VyYWN5KGJvb2wgZW5hYmxlZCkKIHsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5zdXBwbGVtZW50PFdlYkdlb2xvY2F0aW9uTWFuYWdlcj4oKS0+c2V0RW5hYmxlSGlnaEFjY3Vy
YWN5Rm9yUGFnZShtX3BhZ2UsIGVuYWJsZWQpOwogfQogCiBHZW9sb2NhdGlvblBvc2l0aW9uKiBX
ZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYTc3NWE3YmQ2NTIxNWY1OGI0ZmNlMzZm
ODg1ZjAxYjVkMzY3ODI2Li42MDk3NzVlM2E4NjdhNzU3MmQ5ZTY2Nzc0MmM4ODFhMTg1ZTlmMzky
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDIgQEAKKzIwMTMtMTEtMDQgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJr
aXQub3JnPgorCisgICAgICAgIFtXSzJdIEFkZCBhIFdlYktpdDIgQVBJIGZvciBHZW9sb2NhdGlv
bidzIGhpZ2hBY2N1cmFjeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIzNzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGJhc2ljIHRlc3RpbmcgZm9yIHRoZSBHZW9sb2NhdGlvbiBBUEkgKHN0YXJ0
LCBzdG9wIGFuZCBjaGFuZ2UgYWNjdXJhY3kpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9H
TlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtRWZsLmNtYWtl
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0dlb2xvY2F0aW9uLmNwcDogQWRk
ZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6Okdlb2xvY2F0aW9uU3RhdGVUcmFja2VyOjp+R2VvbG9jYXRpb25TdGF0ZVRyYWNr
ZXIpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R2VvbG9jYXRpb25TdGF0ZVRyYWNrZXI6OmV2
ZW50c0NoYW5nZWQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R2VvbG9jYXRpb25TdGF0ZVRy
YWNrZXI6OnN0YXJ0VXBkYXRpbmdDYWxsYmFjayk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpH
ZW9sb2NhdGlvblN0YXRlVHJhY2tlcjo6c3RvcFVwZGF0aW5nQ2FsbGJhY2spOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6R2VvbG9jYXRpb25TdGF0ZVRyYWNrZXI6OnNldEVuYWJsZUhpZ2hBY2N1
cmFjeUNhbGxiYWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRlY2lkZVBvbGljeUZvckdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsQmFjayk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpzZXR1cEdlb2xvY2F0aW9uUHJvdmlkZXIpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
c2V0dXBWaWV3KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Okdlb2xvY2F0aW9uQmFzaWNTdGF0
ZVRyYWNrZXI6Okdlb2xvY2F0aW9uQmFzaWNTdGF0ZVRyYWNrZXIpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6R2VvbG9jYXRpb25CYXNpY1N0YXRlVHJhY2tlcjo6ZXZlbnRzQ2hhbmdlZCk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpHZW9sb2NhdGlvbkJhc2ljV2l0aEhpZ2hBY2N1cmFjeVN0
YXRlVHJhY2tlcjo6R2VvbG9jYXRpb25CYXNpY1dpdGhIaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXIp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R2VvbG9jYXRpb25CYXNpY1dpdGhIaWdoQWNjdXJh
Y3lTdGF0ZVRyYWNrZXI6OmV2ZW50c0NoYW5nZWQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
R2VvbG9jYXRpb25UcmFuc2l0aW9uVG9IaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXI6Okdlb2xvY2F0
aW9uVHJhbnNpdGlvblRvSGlnaEFjY3VyYWN5U3RhdGVUcmFja2VyKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6Okdlb2xvY2F0aW9uVHJhbnNpdGlvblRvSGlnaEFjY3VyYWN5U3RhdGVUcmFja2Vy
OjpldmVudHNDaGFuZ2VkKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Okdlb2xvY2F0aW9uVHJh
bnNpdGlvblRvTG93QWNjdXJhY3lTdGF0ZVRyYWNrZXI6Okdlb2xvY2F0aW9uVHJhbnNpdGlvblRv
TG93QWNjdXJhY3lTdGF0ZVRyYWNrZXIpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R2VvbG9j
YXRpb25UcmFuc2l0aW9uVG9Mb3dBY2N1cmFjeVN0YXRlVHJhY2tlcjo6ZXZlbnRzQ2hhbmdlZCk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbkdldEN1cnJlbnRQb3Np
dGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
Z2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbldhdGNo
UG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL2dlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbDogQWRkZWQu
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHA6
CisgICAgICAgIChXVFI6Okdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrOjpHZW9sb2NhdGlvblByb3Zp
ZGVyTW9jayk6CisKIDIwMTMtMTEtMDQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KIAogICAgICAgICBNb3JlIFdLUmVtb3RlT2JqZWN0UmVnaXN0cnkgd29yawpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvR05VbWFrZWZpbGUuYW0KaW5kZXggZGUyOTFiNzA3ZmRlODZlNmZlZmRiN2NlNTkzNDg4
MjBmZDkwMWVkNC4uMDM0MjhhYTcyMjU5MjE5MTY1MTQwYzRlYTU5OWFlMjJjMjc2MThkOCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtCkBAIC0yNjIsNiArMjYyLDcgQEAgUHJvZ3JhbXNf
VGVzdFdlYktpdEFQSV9UZXN0V2ViS2l0Ml9TT1VSQ0VTID0gXAogCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9Gb3JjZVJlcGFpbnQuY3BwIFwKIAlUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvRnJhbWVNSU1FVHlwZUhUTUwuY3BwIFwKIAlUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvRnJhbWVNSU1FVHlwZVBORy5jcHAgXAorCVRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9HZW9sb2NhdGlvbi5jcHAgXAogCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9HZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFD
YWxsYmFjay5jcHAgXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9IaXRUZXN0
UmVzdWx0Tm9kZUhhbmRsZS5jcHAgXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9JbmplY3RlZEJ1bmRsZUJhc2ljLmNwcCBcCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1BsYXRmb3JtRWZsLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUVmbC5j
bWFrZQppbmRleCAxNDk5ZDQwYzMwODZmOWViNWM0Mjc4ZDc4MzlkYWQ2NGRjODE5YzNlLi43ZmZj
NmNmOTAwNjdmMjExZDAzOWM0ZDhjZGM0MjE0NDk4OWRhM2RhIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
UGxhdGZvcm1FZmwuY21ha2UKQEAgLTcxLDYgKzcxLDcgQEAgc2V0KHRlc3Rfd2Via2l0Ml9hcGlf
QklOQVJJRVMKICAgICBGb3JjZVJlcGFpbnQKICAgICBGcmFtZU1JTUVUeXBlSFRNTAogICAgIEZy
YW1lTUlNRVR5cGVQTkcKKyAgICBHZW9sb2NhdGlvbgogICAgIEdldEluamVjdGVkQnVuZGxlSW5p
dGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrCiAgICAgSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUK
ICAgICBJbmplY3RlZEJ1bmRsZUJhc2ljCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFr
ZQppbmRleCBiM2Q4MWM1NGJiNjIyZjk3NDQ1M2IzMDcwYTBmYmFkODkzYjJhZGMwLi5lM2IzMmY1
Zjg1NzE3YjljYmQ2MTZiNjVmZjI5ODJlOTc4YWFlNDM5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxh
dGZvcm1HVEsuY21ha2UKQEAgLTgxLDYgKzgxLDcgQEAgc2V0KHRlc3Rfd2Via2l0Ml9hcGlfQklO
QVJJRVMKICAgICBGb3JjZVJlcGFpbnQKICAgICBGcmFtZU1JTUVUeXBlSFRNTAogICAgIEZyYW1l
TUlNRVR5cGVQTkcKKyAgICBHZW9sb2NhdGlvbgogICAgIEdldEluamVjdGVkQnVuZGxlSW5pdGlh
bGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrCiAgICAgSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUKICAg
ICBJbmplY3RlZEJ1bmRsZUJhc2ljCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFkYTM2ZGMx
OThkOTc3MWM3NzExYjNkNzM0NzljNmYyZjBmNmFkMjYuLjRjYjMwZjBlNmU4MDI0MjI5ODM4OGU3
NDVlYWU4NDJlOGVmMmI3MGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MSw2ICs0MSwx
MSBAQAogCQkyNkRGNUE2MzE1QTJBMjdFMDAzNjg5QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJj
ZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI2REY1QTYxMTVBMkEyMkIwMDM2ODlDMiAvKiBDYW5jZWxMb2FkRnJv
bVJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgKi87IH07CiAJCTI2RjFCNDQ0MTVDQTQzNEYwMEQx
RTRCRiAvKiBBdG9taWNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjZGMUI0NDIxNUNBNDM0RjAwRDFFNEJGIC8qIEF0b21pY1N0cmluZy5j
cHAgKi87IH07CiAJCTI2RjFCNDQ1MTVDQTQzNEYwMEQxRTRCRiAvKiBTdHJpbmdJbXBsLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjFCNDQzMTVD
QTQzNEYwMEQxRTRCRiAvKiBTdHJpbmdJbXBsLmNwcCAqLzsgfTsKKwkJMjZGNTJFQUIxODI4NzI2
MDAwMjNENDEyIC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjUyRUFBMTgyODcyNjAwMDIzRDQxMiAvKiBHZW9sb2NhdGlv
bi5jcHAgKi87IH07CisJCTI2RjUyRUFEMTgyODgyN0IwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbkdl
dEN1cnJlbnRQb3NpdGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjUyRUFDMTgyODgyMEUwMDIzRDQxMiAvKiBnZW9sb2NhdGlv
bkdldEN1cnJlbnRQb3NpdGlvbi5odG1sICovOyB9OworCQkyNkY1MkVBRjE4Mjg4QzIzMDAyM0Q0
MTIgLyogZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZG
NTJFQUUxODI4OEMwNDAwMjNENDEyIC8qIGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uV2l0
aEhpZ2hBY2N1cmFjeS5odG1sICovOyB9OworCQkyNkY1MkVCMjE4Mjg4RjI0MDAyM0Q0MTIgLyog
Z2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZGNTJFQjAxODI4OEYwRjAwMjNENDEyIC8qIGdl
b2xvY2F0aW9uV2F0Y2hQb3NpdGlvbi5odG1sICovOyB9OworCQkyNkY1MkVCMzE4Mjg4RjI0MDAy
M0Q0MTIgLyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjUy
RUIxMTgyODhGMEYwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb25XaXRoSGlnaEFj
Y3VyYWN5Lmh0bWwgKi87IH07CiAJCTI5MEE5QkI3MTczNURFOEEwMEQ3MUJCQyAvKiBDbG9zZU5l
d1dpbmRvd0luTmF2aWdhdGlvblBvbGljeURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwQTlCQjUxNzM1REU4QTAwRDcxQkJDIC8qIENs
b3NlTmV3V2luZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW0gKi87IH07CiAJCTI5MEE5
QkI5MTczNUY2MzgwMEQ3MUJCQyAvKiBPcGVuTmV3V2luZG93Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwQTlCQjgxNzM1RjQyMzAw
RDcxQkJDIC8qIE9wZW5OZXdXaW5kb3cuaHRtbCAqLzsgfTsKIAkJMjkwRjQyNzUxNzJBMjIxQzAw
OTM5RkYwIC8qIGN1c3RvbS1wcm90b2NvbC1zeW5jLXhoci5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MEY0Mjc0MTcyQTFGREUwMDkz
OUZGMCAvKiBjdXN0b20tcHJvdG9jb2wtc3luYy14aHIuaHRtbCAqLzsgfTsKQEAgLTI5MCw2ICsy
OTUsMTAgQEAKIAkJCQlCQzJEMDA2NDEyQUEwNENFMDBFNzMyQTMgLyogZmlsZS13aXRoLWFuY2hv
ci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM1MTAxQzRGMTc2QjhEOTIwMEVFOUIx
NSAvKiBmaW5kUmFuZ2VzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUEwMkM4NzAx
MjVENENGRDAwRTNGNEJEIC8qIGZpbmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQky
NkY1MkVCMjE4Mjg4RjI0MDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJMjZGNTJFQjMxODI4OEYyNDAwMjNENDEyIC8qIGdl
b2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKKwkJCQkyNkY1MkVBRjE4Mjg4QzIzMDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25HZXRD
dXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CisJCQkJMjZGNTJFQUQxODI4ODI3QjAwMjNENDEyIC8qIGdlb2xvY2F0aW9uR2V0Q3VycmVudFBv
c2l0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOUI0RjhGQTcxNTlENTJERDAw
MkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJOUIyNkZDQ0ExNTlEMTZERTAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5h
bWVkSXRlbS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNFMTRGMUE0MTgxODczQjAw
MDFDMjcwNSAvKiBXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLApAQCAtMzU1LDYgKzM2NCwxMSBAQAogCQkyNkRGNUE2MTE1QTJBMjJC
MDAzNjg5QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkYxQjQ0MjE1Q0E0MzRGMDBE
MUU0QkYgLyogQXRvbWljU3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEF0b21pY1N0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2
RjFCNDQzMTVDQTQzNEYwMEQxRTRCRiAvKiBTdHJpbmdJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ0ltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyNkY1MkVBQTE4Mjg3MjYwMDAyM0Q0MTIgLyogR2VvbG9jYXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VvbG9jYXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNkY1MkVBQzE4Mjg4MjBFMDAyM0Q0MTIgLyogZ2Vv
bG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb24uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9IGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTI2RjUyRUFFMTgyODhDMDQwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbkdldEN1
cnJlbnRQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9IGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1s
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNkY1MkVCMDE4Mjg4RjBGMDAyM0Q0MTIg
LyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb24uaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMjZGNTJFQjExODI4OEYwRjAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3Np
dGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGdl
b2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjkwQTlCQjUxNzM1REU4QTAwRDcxQkJDIC8qIENsb3NlTmV3V2lu
ZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDbG9zZU5ld1dpbmRvd0luTmF2aWdhdGlvblBvbGljeURlbGVnYXRl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTBBOUJCODE3MzVGNDIzMDBENzFC
QkMgLyogT3Blbk5ld1dpbmRvdy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gT3Bl
bk5ld1dpbmRvdy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTBGNDI3NDE3
MkExRkRFMDA5MzlGRjAgLyogY3VzdG9tLXByb3RvY29sLXN5bmMteGhyLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAiY3VzdG9tLXByb3RvY29sLXN5bmMteGhyLmh0bWwiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzUwLDYgKzc2NCw3IEBACiAJCQkJMUFEQkVGQUQx
MzBDNjg5QzAwRDYxRDE5IC8qIEZvcmNlUmVwYWludC5jcHAgKi8sCiAJCQkJQkNCRDM3MEYxMjVB
QTJFQjAwRDJDMjlGIC8qIEZyYW1lTUlNRVR5cGVIVE1MLmNwcCAqLywKIAkJCQlCQ0JEMzc2MDEy
NUFCQ0ZFMDBEMkMyOUYgLyogRnJhbWVNSU1FVHlwZVBORy5jcHAgKi8sCisJCQkJMjZGNTJFQUEx
ODI4NzI2MDAwMjNENDEyIC8qIEdlb2xvY2F0aW9uLmNwcCAqLywKIAkJCQlGNjYwQUEwQzE1QTVG
MDYxMDAzQTEyNDMgLyogR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2Fs
bGJhY2suY3BwICovLAogCQkJCUY2NjBBQTBGMTVBNUY2MjQwMDNBMTI0MyAvKiBHZXRJbmplY3Rl
ZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja19CdW5kbGUuY3BwICovLAogCQkJ
CTRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAg
Ki8sCkBAIC04NjEsNiArODc2LDEwIEBACiAJCQkJQkMyRDAwNEExMkE5RkVCMzAwRTczMkEzIC8q
IGZpbGUtd2l0aC1hbmNob3IuaHRtbCAqLywKIAkJCQkxQTAyQzg0QjEyNUQ0QTVFMDBFM0Y0QkQg
LyogZmluZC5odG1sICovLAogCQkJCUM1MTAxQzRFMTc2QjhCQjkwMEVFOUIxNSAvKiBmaW5kUmFu
Z2VzLmh0bWwgKi8sCisJCQkJMjZGNTJFQUMxODI4ODIwRTAwMjNENDEyIC8qIGdlb2xvY2F0aW9u
R2V0Q3VycmVudFBvc2l0aW9uLmh0bWwgKi8sCisJCQkJMjZGNTJFQUUxODI4OEMwNDAwMjNENDEy
IC8qIGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sICov
LAorCQkJCTI2RjUyRUIwMTgyODhGMEYwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbldhdGNoUG9zaXRp
b24uaHRtbCAqLywKKwkJCQkyNkY1MkVCMTE4Mjg4RjBGMDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25X
YXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sICovLAogCQkJCUJDQkQzNzJFMTI1QUJC
RTYwMEQyQzI5RiAvKiBpY29uLnBuZyAqLywKIAkJCQkzNzhFNjQ3ODE2MzI2RkRGMDBCNkM2NzYg
LyogbGluay13aXRoLXRpdGxlLmh0bWwgKi8sCiAJCQkJOTM2MTAwMjgxNERDOTU3QjAwNjEzNzlE
IC8qIGxvdHMtb2YtaWZyYW1lcy5odG1sICovLApAQCAtMTIwMCw2ICsxMjE5LDcgQEAKIAkJCQlC
QzkwOTc3QTEyNTU3MUFCMDAwODM3NTYgLyogUGFnZUxvYWRCYXNpYy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzJEMDA0OTEyQTlGREZBMDBFNzMyQTMgLyogUGFnZUxvYWREaWRDaGFuZ2VMb2Nh
dGlvbldpdGhpblBhZ2VGb3JGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMxNDA3QzE3
QjQ0MTkwMDBGMDgzQjEgLyogRGlkTm90SGFuZGxlS2V5RG93bi5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyNkY1MkVBQjE4Mjg3MjYwMDAyM0Q0MTIgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTUxQjY1MDkxNkFERjlCMTAwN0FBNUQ5IC8qIFBhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3QTM0RjAxNkFGNjc3MjAwQzI1MDFGIC8qIFBh
Z2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUyRTVDRTQ2MTREMjFFOUQwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZS5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9HZW9sb2Nh
dGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvR2VvbG9jYXRpb24u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQwMjQ2OTFlZGU3YTBjZjA0YWQ3NTFhNzgyN2Q3YmY3M2ExYzJhNmUK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvR2Vv
bG9jYXRpb24uY3BwCkBAIC0wLDAgKzEsMzI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1XZWJWaWV3LmgiCisjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRh
aW5QdHIuaD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworZW51bSBjbGFzcyBHZW9sb2NhdGlvbkV2ZW50IHsK
KyAgICBTdGFydFVwZGF0aW5nLAorICAgIFN0b3BVcGRhdGluZywKKyAgICBFbmFibGVIaWdoQWNj
dXJhY3ksCisgICAgRGlzYWJsZUhpZ2hBY2N1cmFjeQorfTsKKworb3N0cmVhbSYgb3BlcmF0b3I8
PChvc3RyZWFtJiBvdXRwdXRTdHJlYW0sIGNvbnN0IEdlb2xvY2F0aW9uRXZlbnQmIGdlb2xvY2F0
aW9uRXZlbnQpCit7CisgICAgc3dpdGNoIChnZW9sb2NhdGlvbkV2ZW50KSB7CisgICAgY2FzZSBH
ZW9sb2NhdGlvbkV2ZW50OjpTdGFydFVwZGF0aW5nOgorICAgICAgICBvdXRwdXRTdHJlYW0gPDwg
Ikdlb2xvY2F0aW9uRXZlbnQ6OlN0YXJ0VXBkYXRpbmciOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEdlb2xvY2F0aW9uRXZlbnQ6OlN0b3BVcGRhdGluZzoKKyAgICAgICAgb3V0cHV0U3RyZWFt
IDw8ICJHZW9sb2NhdGlvbkV2ZW50OjpTdG9wVXBkYXRpbmciOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEdlb2xvY2F0aW9uRXZlbnQ6OkVuYWJsZUhpZ2hBY2N1cmFjeToKKyAgICAgICAgb3V0
cHV0U3RyZWFtIDw8ICJHZW9sb2NhdGlvbkV2ZW50OjpFbmFibGVIaWdoQWNjdXJhY3kiOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEdlb2xvY2F0aW9uRXZlbnQ6OkRpc2FibGVIaWdoQWNjdXJh
Y3k6CisgICAgICAgIG91dHB1dFN0cmVhbSA8PCAiR2VvbG9jYXRpb25FdmVudDo6RGlzYWJsZUhp
Z2hBY2N1cmFjeSI7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gb3V0cHV0U3Ry
ZWFtOworfQorCitzdHJ1Y3QgR2VvbG9jYXRpb25TdGF0ZVRyYWNrZXIgeworICAgIHZlY3RvcjxH
ZW9sb2NhdGlvbkV2ZW50PiBldmVudHM7CisKKyAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvblN0YXRl
VHJhY2tlcigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBldmVudHNDaGFuZ2VkKCkgeyB9CisKKyAg
ICBzdGF0aWMgdm9pZCBzdGFydFVwZGF0aW5nQ2FsbGJhY2soV0tHZW9sb2NhdGlvbk1hbmFnZXJS
ZWYgbWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKKyAgICB7CisgICAgICAgIEdlb2xv
Y2F0aW9uU3RhdGVUcmFja2VyKiBzdGF0ZVRyYWNrZXIgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlv
blN0YXRlVHJhY2tlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICAgICAg
c3RhdGVUcmFja2VyLT5ldmVudHMucHVzaF9iYWNrKEdlb2xvY2F0aW9uRXZlbnQ6OlN0YXJ0VXBk
YXRpbmcpOworICAgICAgICBzdGF0ZVRyYWNrZXItPmV2ZW50c0NoYW5nZWQoKTsKKworICAgICAg
ICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWY+IHBvc2l0aW9uID0gYWRvcHRX
SyhXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGUoMCwgNTAuNjQ0MzU4LCAzLjM0NTQ1MywgMi41
MykpOworICAgICAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkQ2hhbmdlUG9zaXRp
b24obWFuYWdlciwgcG9zaXRpb24uZ2V0KCkpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHN0
b3BVcGRhdGluZ0NhbGxiYWNrKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQorICAgIHsKKyAgICAgICAgR2VvbG9jYXRpb25TdGF0ZVRyYWNrZXIqIHN0YXRl
VHJhY2tlciA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uU3RhdGVUcmFja2VyKj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgICAgICBzdGF0ZVRyYWNrZXItPmV2ZW50cy5wdXNo
X2JhY2soR2VvbG9jYXRpb25FdmVudDo6U3RvcFVwZGF0aW5nKTsKKyAgICAgICAgc3RhdGVUcmFj
a2VyLT5ldmVudHNDaGFuZ2VkKCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgc2V0RW5hYmxl
SGlnaEFjY3VyYWN5Q2FsbGJhY2soV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYsIGJvb2wgZW5hYmxl
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorICAgIHsKKyAgICAgICAgR2VvbG9jYXRpb25TdGF0
ZVRyYWNrZXIqIHN0YXRlVHJhY2tlciA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uU3RhdGVUcmFj
a2VyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgICAgICBpZiAoZW5hYmxl
KQorICAgICAgICAgICAgc3RhdGVUcmFja2VyLT5ldmVudHMucHVzaF9iYWNrKEdlb2xvY2F0aW9u
RXZlbnQ6OkVuYWJsZUhpZ2hBY2N1cmFjeSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN0
YXRlVHJhY2tlci0+ZXZlbnRzLnB1c2hfYmFjayhHZW9sb2NhdGlvbkV2ZW50OjpEaXNhYmxlSGln
aEFjY3VyYWN5KTsKKyAgICAgICAgc3RhdGVUcmFja2VyLT5ldmVudHNDaGFuZ2VkKCk7CisgICAg
fQorfTsKKwordm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
Q2FsbEJhY2soV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmln
aW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lv
blJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgV0tHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0QWxsb3cocGVybWlzc2lvblJlcXVlc3QpOworfQorCit2b2lkIHNldHVw
R2VvbG9jYXRpb25Qcm92aWRlcihXS0NvbnRleHRSZWYgY29udGV4dCwgdm9pZCAqY2xpZW50SW5m
bykKK3sKKyAgICBXS0dlb2xvY2F0aW9uUHJvdmlkZXIgcHJvdmlkZXJDYWxsYmFjazsKKyAgICBt
ZW1zZXQoJnByb3ZpZGVyQ2FsbGJhY2ssIDAsIHNpemVvZihXS0dlb2xvY2F0aW9uUHJvdmlkZXIp
KTsKKyAgICBwcm92aWRlckNhbGxiYWNrLnZlcnNpb24gPSBrV0tHZW9sb2NhdGlvblByb3ZpZGVy
Q3VycmVudFZlcnNpb247CisgICAgcHJvdmlkZXJDYWxsYmFjay5jbGllbnRJbmZvID0gY2xpZW50
SW5mbzsKKyAgICBwcm92aWRlckNhbGxiYWNrLnN0YXJ0VXBkYXRpbmcgPSBHZW9sb2NhdGlvblN0
YXRlVHJhY2tlcjo6c3RhcnRVcGRhdGluZ0NhbGxiYWNrOworICAgIHByb3ZpZGVyQ2FsbGJhY2su
c3RvcFVwZGF0aW5nID0gR2VvbG9jYXRpb25TdGF0ZVRyYWNrZXI6OnN0b3BVcGRhdGluZ0NhbGxi
YWNrOworICAgIHByb3ZpZGVyQ2FsbGJhY2suc2V0RW5hYmxlSGlnaEFjY3VyYWN5ID0gR2VvbG9j
YXRpb25TdGF0ZVRyYWNrZXI6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeUNhbGxiYWNrOworICAgIFdL
R2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIoV0tDb250ZXh0R2V0R2VvbG9jYXRpb25NYW5h
Z2VyKGNvbnRleHQpLCAmcHJvdmlkZXJDYWxsYmFjayk7Cit9CisKK3ZvaWQgc2V0dXBWaWV3KFBs
YXRmb3JtV2ViVmlldyYgd2ViVmlldykKK3sKKyAgICBXS1BhZ2VVSUNsaWVudCB1aUNsaWVudDsK
KyAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKKyAgICB1aUNsaWVu
dC52ZXJzaW9uID0ga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb247CisgICAgdWlDbGllbnQu
ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCA9IGRlY2lkZVBvbGlj
eUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsQmFjazsKKyAgICBXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudCk7Cit9CisKKyNwcmFnbWEgbWFy
ayAtIEdlb2xvY2F0aW9uQmFzaWMuCitzdHJ1Y3QgR2VvbG9jYXRpb25CYXNpY1N0YXRlVHJhY2tl
ciA6IEdlb2xvY2F0aW9uU3RhdGVUcmFja2VyIHsKKyAgICBib29sIGZpbmlzaGVkOworCisgICAg
R2VvbG9jYXRpb25CYXNpY1N0YXRlVHJhY2tlcigpIDogZmluaXNoZWQoZmFsc2UpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBldmVudHNDaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZXZl
bnRzLnNpemUoKSkgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBFWFBFQ1RfRVEoR2Vv
bG9jYXRpb25FdmVudDo6RGlzYWJsZUhpZ2hBY2N1cmFjeSwgZXZlbnRzWzBdKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBFWFBFQ1RfRVEoR2VvbG9j
YXRpb25FdmVudDo6U3RhcnRVcGRhdGluZywgZXZlbnRzWzFdKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBFWFBFQ1RfRVEoR2VvbG9jYXRpb25FdmVu
dDo6U3RvcFVwZGF0aW5nLCBldmVudHNbMl0pOworICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVl
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBFWFBF
Q1RfVFJVRShmYWxzZSk7CisgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAgICAgIH0K
KyAgICB9Cit9OworCitURVNUKFdlYktpdDIsIEdlb2xvY2F0aW9uQmFzaWMpCit7CisgICAgV0tS
ZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgp
KTsKKworICAgIEdlb2xvY2F0aW9uQmFzaWNTdGF0ZVRyYWNrZXIgc3RhdGVUcmFja2VyOworICAg
IHNldHVwR2VvbG9jYXRpb25Qcm92aWRlcihjb250ZXh0LmdldCgpLCAmc3RhdGVUcmFja2VyKTsK
KworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIHNldHVw
Vmlldyh3ZWJWaWV3KTsKKworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwoQWRvcHRXSywg
VXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9u
IiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgp
KTsKKworICAgIFV0aWw6OnJ1bigmc3RhdGVUcmFja2VyLmZpbmlzaGVkKTsKK30KKworI3ByYWdt
YSBtYXJrIC0gR2VvbG9jYXRpb24gcmVxdWVzdGVkIHdpdGggSGlnaCBBY2N1cmFjeS4KK3N0cnVj
dCBHZW9sb2NhdGlvbkJhc2ljV2l0aEhpZ2hBY2N1cmFjeVN0YXRlVHJhY2tlciA6IEdlb2xvY2F0
aW9uU3RhdGVUcmFja2VyIHsKKyAgICBib29sIGZpbmlzaGVkOworCisgICAgR2VvbG9jYXRpb25C
YXNpY1dpdGhIaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXIoKSA6IGZpbmlzaGVkKGZhbHNlKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZXZlbnRzQ2hhbmdlZCgpCisgICAgeworICAgICAgICBzd2l0Y2gg
KGV2ZW50cy5zaXplKCkpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgRVhQRUNUX0VR
KEdlb2xvY2F0aW9uRXZlbnQ6OkVuYWJsZUhpZ2hBY2N1cmFjeSwgZXZlbnRzWzBdKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBFWFBFQ1RfRVEoR2Vv
bG9jYXRpb25FdmVudDo6U3RhcnRVcGRhdGluZywgZXZlbnRzWzFdKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBFWFBFQ1RfRVEoR2VvbG9jYXRpb25F
dmVudDo6U3RvcFVwZGF0aW5nLCBldmVudHNbMl0pOworICAgICAgICAgICAgZmluaXNoZWQgPSB0
cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBF
WFBFQ1RfVFJVRShmYWxzZSk7CisgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAgICAg
IH0KKyAgICB9Cit9OworCitURVNUKFdlYktpdDIsIEdlb2xvY2F0aW9uQmFzaWNXaXRoSGlnaEFj
Y3VyYWN5KQoreworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdL
LCBXS0NvbnRleHRDcmVhdGUoKSk7CisKKyAgICBHZW9sb2NhdGlvbkJhc2ljV2l0aEhpZ2hBY2N1
cmFjeVN0YXRlVHJhY2tlciBzdGF0ZVRyYWNrZXI7CisgICAgc2V0dXBHZW9sb2NhdGlvblByb3Zp
ZGVyKGNvbnRleHQuZ2V0KCksICZzdGF0ZVRyYWNrZXIpOworCisgICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgc2V0dXBWaWV3KHdlYlZpZXcpOworCisgICAg
V0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybChBZG9wdFdLLCBVdGlsOjpjcmVhdGVVUkxGb3JSZXNv
dXJjZSgiZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5IiwgImh0
bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKKwor
ICAgIFV0aWw6OnJ1bigmc3RhdGVUcmFja2VyLmZpbmlzaGVkKTsKK30KKworI3ByYWdtYSBtYXJr
IC0gR2VvbG9jYXRpb24gc3RhcnQgd2l0aG91dCBIaWdoIEFjY3VyYWN5LCB0aGVuIHJlcXVpcmVz
IEhpZ2ggQWNjdXJhY3kuCitzdHJ1Y3QgR2VvbG9jYXRpb25UcmFuc2l0aW9uVG9IaWdoQWNjdXJh
Y3lTdGF0ZVRyYWNrZXIgOiBHZW9sb2NhdGlvblN0YXRlVHJhY2tlciB7CisgICAgYm9vbCBmaW5p
c2hlZEZpcnN0U3RlcDsKKyAgICBib29sIGZpbmlzaGVkOworCisgICAgR2VvbG9jYXRpb25UcmFu
c2l0aW9uVG9IaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXIoKQorICAgICAgICA6IGZpbmlzaGVkRmly
c3RTdGVwKGZhbHNlKQorICAgICAgICAsIGZpbmlzaGVkKGZhbHNlKQorICAgIHsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgZXZlbnRzQ2hhbmdlZCgpCisgICAgeworICAgICAgICBzd2l0Y2gg
KGV2ZW50cy5zaXplKCkpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgRVhQRUNUX0VR
KEdlb2xvY2F0aW9uRXZlbnQ6OkRpc2FibGVIaWdoQWNjdXJhY3ksIGV2ZW50c1swXSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgRVhQRUNUX0VRKEdl
b2xvY2F0aW9uRXZlbnQ6OlN0YXJ0VXBkYXRpbmcsIGV2ZW50c1sxXSk7CisgICAgICAgICAgICBm
aW5pc2hlZEZpcnN0U3RlcCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAzOgorICAgICAgICAgICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9uRXZlbnQ6OkVuYWJsZUhpZ2hB
Y2N1cmFjeSwgZXZlbnRzWzJdKTsKKyAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgRVhQRUNUX1RSVUUo
ZmFsc2UpOworICAgICAgICAgICAgZmluaXNoZWRGaXJzdFN0ZXAgPSB0cnVlOworICAgICAgICAg
ICAgZmluaXNoZWQgPSB0cnVlOworICAgICAgICB9CisgICAgfQorfTsKKworVEVTVChXZWJLaXQy
LCBHZW9sb2NhdGlvblRyYW5zaXRpb25Ub0hpZ2hBY2N1cmFjeSkKK3sKKyAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQoQWRvcHRXSywgV0tDb250ZXh0Q3JlYXRlKCkpOworCisg
ICAgR2VvbG9jYXRpb25UcmFuc2l0aW9uVG9IaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXIgc3RhdGVU
cmFja2VyOworICAgIHNldHVwR2VvbG9jYXRpb25Qcm92aWRlcihjb250ZXh0LmdldCgpLCAmc3Rh
dGVUcmFja2VyKTsKKworICAgIFBsYXRmb3JtV2ViVmlldyBsb3dBY2N1cmFjeVdlYlZpZXcoY29u
dGV4dC5nZXQoKSk7CisgICAgc2V0dXBWaWV3KGxvd0FjY3VyYWN5V2ViVmlldyk7CisgICAgV0tS
ZXRhaW5QdHI8V0tVUkxSZWY+IGxvd0FjY3VyYWN5VVJMKEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVS
TEZvclJlc291cmNlKCJnZW9sb2NhdGlvbldhdGNoUG9zaXRpb24iLCAiaHRtbCIpKTsKKyAgICBX
S1BhZ2VMb2FkVVJMKGxvd0FjY3VyYWN5V2ViVmlldy5wYWdlKCksIGxvd0FjY3VyYWN5VVJMLmdl
dCgpKTsKKyAgICBVdGlsOjpydW4oJnN0YXRlVHJhY2tlci5maW5pc2hlZEZpcnN0U3RlcCk7CisK
KyAgICBQbGF0Zm9ybVdlYlZpZXcgaGlnaEFjY3VyYWN5V2ViVmlldyhjb250ZXh0LmdldCgpKTsK
KyAgICBzZXR1cFZpZXcoaGlnaEFjY3VyYWN5V2ViVmlldyk7CisgICAgV0tSZXRhaW5QdHI8V0tV
UkxSZWY+IGhpZ2hBY2N1cmFjeVVSTChBZG9wdFdLLCBVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJj
ZSgiZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeSIsICJodG1sIikpOwor
ICAgIFdLUGFnZUxvYWRVUkwoaGlnaEFjY3VyYWN5V2ViVmlldy5wYWdlKCksIGhpZ2hBY2N1cmFj
eVVSTC5nZXQoKSk7CisgICAgVXRpbDo6cnVuKCZzdGF0ZVRyYWNrZXIuZmluaXNoZWQpOworfQor
CisjcHJhZ21hIG1hcmsgLSBHZW9sb2NhdGlvbiBzdGFydCB3aXRoIEhpZ2ggQWNjdXJhY3ksIHRo
ZW4gc2hvdWxkIGZhbGwgYmFjayB0byBsb3cgYWNjdXJhY3kuCitzdHJ1Y3QgR2VvbG9jYXRpb25U
cmFuc2l0aW9uVG9Mb3dBY2N1cmFjeVN0YXRlVHJhY2tlciA6IEdlb2xvY2F0aW9uU3RhdGVUcmFj
a2VyIHsKKyAgICBib29sIGZpbmlzaGVkRmlyc3RTdGVwOworICAgIGJvb2wgZmluaXNoZWQ7CisK
KyAgICBHZW9sb2NhdGlvblRyYW5zaXRpb25Ub0xvd0FjY3VyYWN5U3RhdGVUcmFja2VyKCkKKyAg
ICAgICAgOiBmaW5pc2hlZEZpcnN0U3RlcChmYWxzZSkKKyAgICAgICAgLCBmaW5pc2hlZChmYWxz
ZSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGV2ZW50c0NoYW5nZWQoKQorICAg
IHsKKyAgICAgICAgc3dpdGNoIChldmVudHMuc2l6ZSgpKSB7CisgICAgICAgIGNhc2UgMToKKyAg
ICAgICAgICAgIEVYUEVDVF9FUShHZW9sb2NhdGlvbkV2ZW50OjpFbmFibGVIaWdoQWNjdXJhY3ks
IGV2ZW50c1swXSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9uRXZlbnQ6OlN0YXJ0VXBkYXRpbmcsIGV2ZW50c1sx
XSk7CisgICAgICAgICAgICBmaW5pc2hlZEZpcnN0U3RlcCA9IHRydWU7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9u
RXZlbnQ6OkRpc2FibGVIaWdoQWNjdXJhY3ksIGV2ZW50c1syXSk7CisgICAgICAgICAgICBmaW5p
c2hlZCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgICAgIGZpbmlzaGVkRmlyc3RTdGVw
ID0gdHJ1ZTsKKyAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0K
K307CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwg
V0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQoreworICAgICpzdGF0aWNfY2FzdDxib29sKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpID0gdHJ1ZTsKK30KKworVEVTVChXZWJLaXQyLCBHZW9sb2NhdGlvblRyYW5zaXRpb25U
b0xvd0FjY3VyYWN5KQoreworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChB
ZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7CisKKyAgICBHZW9sb2NhdGlvblRyYW5zaXRpb25U
b0xvd0FjY3VyYWN5U3RhdGVUcmFja2VyIHN0YXRlVHJhY2tlcjsKKyAgICBzZXR1cEdlb2xvY2F0
aW9uUHJvdmlkZXIoY29udGV4dC5nZXQoKSwgJnN0YXRlVHJhY2tlcik7CisKKyAgICBQbGF0Zm9y
bVdlYlZpZXcgaGlnaEFjY3VyYWN5V2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBzZXR1cFZp
ZXcoaGlnaEFjY3VyYWN5V2ViVmlldyk7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGhpZ2hB
Y2N1cmFjeVVSTChBZG9wdFdLLCBVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZ2VvbG9jYXRp
b25XYXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeSIsICJodG1sIikpOworICAgIFdLUGFnZUxv
YWRVUkwoaGlnaEFjY3VyYWN5V2ViVmlldy5wYWdlKCksIGhpZ2hBY2N1cmFjeVVSTC5nZXQoKSk7
CisgICAgVXRpbDo6cnVuKCZzdGF0ZVRyYWNrZXIuZmluaXNoZWRGaXJzdFN0ZXApOworCisgICAg
UGxhdGZvcm1XZWJWaWV3IGxvd0FjY3VyYWN5V2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBz
ZXR1cFZpZXcobG93QWNjdXJhY3lXZWJWaWV3KTsKKworICAgIGJvb2wgZmluaXNoZWRTZWNvbmRT
dGVwID0gZmFsc2U7CisgICAgV0tQYWdlTG9hZGVyQ2xpZW50IGxvYWRlckNsaWVudDsKKyAgICBt
ZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOworICAgIGxvYWRl
ckNsaWVudC5jbGllbnRJbmZvID0gJmZpbmlzaGVkU2Vjb25kU3RlcDsKKyAgICBsb2FkZXJDbGll
bnQuZGlkRmluaXNoTG9hZEZvckZyYW1lID0gZGlkRmluaXNoTG9hZEZvckZyYW1lOworICAgIFdL
UGFnZVNldFBhZ2VMb2FkZXJDbGllbnQobG93QWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgJmxvYWRl
ckNsaWVudCk7CisKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gbG93QWNjdXJhY3lVUkwoQWRv
cHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlv
biIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRVUkwobG93QWNjdXJhY3lXZWJWaWV3LnBhZ2Uo
KSwgbG93QWNjdXJhY3lVUkwuZ2V0KCkpOworICAgIFV0aWw6OnJ1bigmZmluaXNoZWRTZWNvbmRT
dGVwKTsKKworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiByZXNldFVybCA9IGFkb3B0V0soV0tV
UkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFib3V0OmJsYW5rIikpOworICAgIFdLUGFnZUxvYWRV
UkwoaGlnaEFjY3VyYWN5V2ViVmlldy5wYWdlKCksIHJlc2V0VXJsLmdldCgpKTsKKyAgICBVdGls
OjpydW4oJnN0YXRlVHJhY2tlci5maW5pc2hlZCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9n
ZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlvbi5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL2dlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDk5ZjUxNTM2YjhmODY3ZTAxYjAyMzA5Njc2NDdiOGY0MGIyZDRiYgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbkdldEN1
cnJlbnRQb3NpdGlvbi5odG1sCkBAIC0wLDAgKzEsMyBAQAorPHNjcmlwdD4KK25hdmlnYXRvci5n
ZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24oKSB7IH0pOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRp
b25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGln
aEFjY3VyYWN5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjZhMzE0ODU4YWQxYzYwNjllMzk4YjNmYmYwZThh
MDg4M2JjNjhjNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9nZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRt
bApAQCAtMCwwICsxLDMgQEAKKzxzY3JpcHQ+CituYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3Vy
cmVudFBvc2l0aW9uKGZ1bmN0aW9uKCkgeyB9LCBmdW5jdGlvbigpIHt9LCB7IGVuYWJsZUhpZ2hB
Y2N1cmFjeTp0cnVlIH0pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjQ3ODhiNzgwNjhjZmM0OTliNmQ5YjI0N2Q4MjAxMmEzZTRjMGE2OQotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2Nh
dGlvbldhdGNoUG9zaXRpb24uaHRtbApAQCAtMCwwICsxLDMgQEAKKzxzY3JpcHQ+CituYXZpZ2F0
b3IuZ2VvbG9jYXRpb24ud2F0Y2hQb3NpdGlvbihmdW5jdGlvbigpIHsgfSk7Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlv
bldhdGNoUG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFiYTk4ZmNlN2NmNTcyYjEzYmVlMDZjMzZhNjM1YTllZDY1NmVkM2IK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2Vv
bG9jYXRpb25XYXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sCkBAIC0wLDAgKzEsMyBA
QAorPHNjcmlwdD4KK25hdmlnYXRvci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9uKGZ1bmN0aW9u
KCkgeyB9LCBmdW5jdGlvbigpIHt9LCB7IGVuYWJsZUhpZ2hBY2N1cmFjeTp0cnVlIH0pOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJv
dmlkZXJNb2NrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRl
ck1vY2suY3BwCmluZGV4IDcxMTFkNDg3MjExYmM3OGJmYTUxZGNjMTZlZjhjYzY3YzQ3ODViNTgu
LjE2ODY2ZTliZmNhYjViMGU3ODViZWZjZWIzM2NhYWRiOTM0YjA5YzggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MCwxMSAr
NTAsMTIgQEAgR2VvbG9jYXRpb25Qcm92aWRlck1vY2s6Okdlb2xvY2F0aW9uUHJvdmlkZXJNb2Nr
KFdLQ29udGV4dFJlZiBjb250ZXh0KQogewogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyID0gV0tD
b250ZXh0R2V0R2VvbG9jYXRpb25NYW5hZ2VyKGNvbnRleHQpOwogCi0gICAgV0tHZW9sb2NhdGlv
blByb3ZpZGVyIHByb3ZpZGVyQ2FsbGJhY2sgPSB7Ci0gICAgICAgIGtXS0dlb2xvY2F0aW9uUHJv
dmlkZXJDdXJyZW50VmVyc2lvbiwKLSAgICAgICAgdGhpcywKLSAgICAgICAgc3RhcnRVcGRhdGlu
Z0NhbGxiYWNrLAotICAgICAgICBzdG9wVXBkYXRpbmdDYWxsYmFjayB9OworICAgIFdLR2VvbG9j
YXRpb25Qcm92aWRlciBwcm92aWRlckNhbGxiYWNrOworICAgIG1lbXNldCgmcHJvdmlkZXJDYWxs
YmFjaywgMCwgc2l6ZW9mKFdLR2VvbG9jYXRpb25Qcm92aWRlcikpOworICAgIHByb3ZpZGVyQ2Fs
bGJhY2sudmVyc2lvbiA9IDA7CisgICAgcHJvdmlkZXJDYWxsYmFjay5jbGllbnRJbmZvID0gdGhp
czsKKyAgICBwcm92aWRlckNhbGxiYWNrLnN0YXJ0VXBkYXRpbmcgPSBzdGFydFVwZGF0aW5nQ2Fs
bGJhY2s7CisgICAgcHJvdmlkZXJDYWxsYmFjay5zdG9wVXBkYXRpbmcgPSBzdG9wVXBkYXRpbmdD
YWxsYmFjazsKICAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKG1fZ2VvbG9jYXRp
b25NYW5hZ2VyLCAmcHJvdmlkZXJDYWxsYmFjayk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215998</attachid>
            <date>2013-11-04 21:18:14 -0800</date>
            <delta_ts>2013-11-04 21:43:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123786-20131104211814.patch</filename>
            <type>text/plain</type>
            <size>44811</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTI3YTkxNmM0ZjgxM2Fi
ZjIyOWM0ZDg5NjM1Mjg4MzBjMTJmNGE2ZS4uODQ4OWE5ZWNjMzNiMGQ4ODJhOWQ3YTZiNDA2Zjdk
YTliZWE2YTU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEzLTExLTA0ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBBZGQg
YSBXZWJLaXQyIEFQSSBmb3IgR2VvbG9jYXRpb24ncyBoaWdoQWNjdXJhY3kKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzc4NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyBzdXBwb3J0IGZv
ciBoaWdoQWNjdXJhY3kgR2VvbG9jYXRpb24gd2l0aCBXZWJLaXQyLgorCisgICAgICAgIFRoZSBr
ZXkgaXMgdG8gdHJhY2sgd2hpY2ggcGFnZS9yZXF1ZXN0ZXIgbmVlZCB3aGF0IGtpbmQgb2YgZ2Vv
bG9jYXRpb24KKyAgICAgICAgaW4gb3JkZXIgdG8gY2hhbmdlIGJldHdlZW4gaGlnaCBhbmQgbG93
IGFjY3VyYWN5IGFzIHBhZ2VzIHJ1biBhbmQgZGlzYXBwZWFyLgorCisgICAgICAgIFdlYkdlb2xv
Y2F0aW9uTWFuYWdlciBhbmQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgaGF2ZSB2ZXJ5IHNp
bWlsYXIgcm9sZXMKKyAgICAgICAgYnV0IGZvciBkaWZmZXJlbnQgc291cmNlczoKKyAgICAgICAg
LVdlYkdlb2xvY2F0aW9uTWFuYWdlciB0cmFja3Mgd2hpY2ggbGl2ZSBwYWdlIHJlcXVpcmUgaGln
aCBhY2N1cmFjeSBnZW9sb2NhdGlvbi4KKyAgICAgICAgIFdoZW4gdGhlIHN0YXRlIGNoYW5nZXMs
IGl0IGZvcndhcmQgdGhlIGluZm9ybWF0aW9uIHRvIHRoZSBVSVByb2Nlc3MuCisgICAgICAgIC1X
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSB0cmFja3Mgd2hpY2ggV2ViQ29udGVudCBwcm9jZXNz
ZXMgbmVlZHMgaGlnaCBhY2N1cmFjeS4KKworICAgICAgICAqIFNoYXJlZC9BUElDbGllbnRUcmFp
dHMuY3BwOgorICAgICAgICAqIFNoYXJlZC9BUElDbGllbnRUcmFpdHMuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpyZW1vdmVSZXF1ZXN0ZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmlzVXBkYXRpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6aXNIaWdoQWNjdXJh
Y3lFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblByb3ZpZGVyOjpzZXRFbmFi
bGVIaWdoQWNjdXJhY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3Zp
ZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lz
dGVyV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6dW5y
ZWdpc3RlcldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6
OnNldEVuYWJsZUhpZ2hBY2N1cmFjeUZvclBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR2Vv
bG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdl
b2xvY2F0aW9uTWFuYWdlcjo6aXNVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xv
Y2F0aW9uTWFuYWdlcjo6aXNIaWdoQWNjdXJhY3lFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeSk6CisKIDIw
MTMtMTEtMDQgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dLMl0gVXBkYXRlIFdlYkdlb2xvY2F0aW9uTWFuYWdlciB0byBzdXBwb3J0IG11bHRpcGxl
IFdlYkNvbnRlbnQgcHJvY2Vzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJQ2xpZW50VHJhaXRzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFp
dHMuY3BwCmluZGV4IDk1MmFkMjY5YTMxYTQ2Y2RkM2M2MzQxNWRkNjRmMmY1ZTZhZTNmNTkuLjIx
MDcxY2QwY2ZiMjQ1ZDc0ZDEzNjZiMzMwYjM1ODI1NGFkZGRiMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDMsNCArMTAzLDkgQEAgY29uc3Qgc2l6ZV90
IEFQSUNsaWVudFRyYWl0czxXS0ljb25EYXRhYmFzZUNsaWVudD46OmludGVyZmFjZVNpemVzQnlW
ZXJzaW9uW10gPQogICAgIHNpemVvZihXS0ljb25EYXRhYmFzZUNsaWVudCkKIH07CiAKK2NvbnN0
IHNpemVfdCBBUElDbGllbnRUcmFpdHM8V0tHZW9sb2NhdGlvblByb3ZpZGVyPjo6aW50ZXJmYWNl
U2l6ZXNCeVZlcnNpb25bXSA9IHsKKyAgICBvZmZzZXRvZihXS0dlb2xvY2F0aW9uUHJvdmlkZXIs
IHNldEVuYWJsZUhpZ2hBY2N1cmFjeSksCisgICAgc2l6ZW9mKFdLR2VvbG9jYXRpb25Qcm92aWRl
cikKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNs
aWVudFRyYWl0cy5oCmluZGV4IGRmM2FhYmI5Yzg1ZTE2NzEwY2FkNGRhNjdhNGRmZDQ5MmMxNGM4
OTUuLjk3MTJiYTIwYmUwMDBiNWQxNmEwM2FmOWZiZjgxMTFjMjk3MTJjZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJX
S0J1bmRsZS5oIgogI2luY2x1ZGUgIldLQnVuZGxlUGFnZS5oIgogI2luY2x1ZGUgIldLQ29udGV4
dC5oIgorI2luY2x1ZGUgIldLR2VvbG9jYXRpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV0tJY29u
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJXS1BhZ2UuaCIKIApAQCAtODcsNiArODgsMTAgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLSWNvbkRhdGFiYXNlQ2xpZW50PiB7CiAg
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvblsyXTsKIH07CiAK
K3RlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS0dlb2xvY2F0aW9uUHJvdmlkZXI+
IHsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGludGVyZmFjZVNpemVzQnlWZXJzaW9uWzJdOwor
fTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBBUElDbGllbnRUcmFpdHNf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRp
b25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlv
bk1hbmFnZXIuaAppbmRleCA3ZjljYjY4OTEwOWEzOTc3MGZmMTJhMDUyZWZlMTNhYzYyNzJlM2E0
Li4yYWUxNTkzMWVhZmU4MTMwM2I3NGYwODFjNTk1YmJmODE4YWM2YWRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzUsMTYgKzM1LDIxIEBAIGV4dGVybiAiQyIgewogLy8gUHJvdmlkZXIuCiB0
eXBlZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2sp
KFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdG9wVXBk
YXRpbmdDYWxsYmFjaykoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2Vy
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLR2VvbG9jYXRpb25Q
cm92aWRlclNldEVuYWJsZUhpZ2hBY2N1cmFjeUNhbGxiYWNrKShXS0dlb2xvY2F0aW9uTWFuYWdl
clJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIGJvb2wgZW5hYmxlZCwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiAKIHN0cnVjdCBXS0dlb2xvY2F0aW9uUHJvdmlkZXIgewogICAgIGludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVyc2lvbjsKICAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CiAgICAgV0tHZW9sb2NhdGlvblBy
b3ZpZGVyU3RhcnRVcGRhdGluZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFy
dFVwZGF0aW5nOwogICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlclN0b3BVcGRhdGluZ0NhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcFVwZGF0aW5nOworCisgICAgLy8gVmVyc2lv
biAxLgorICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlclNldEVuYWJsZUhpZ2hBY2N1cmFjeUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlSGlnaEFjY3VyYWN5OworCiB9OwogdHlwZWRl
ZiBzdHJ1Y3QgV0tHZW9sb2NhdGlvblByb3ZpZGVyIFdLR2VvbG9jYXRpb25Qcm92aWRlcjsKIAot
ZW51bSB7IGtXS0dlb2xvY2F0aW9uUHJvdmlkZXJDdXJyZW50VmVyc2lvbiA9IDAgfTsKK2VudW0g
eyBrV0tHZW9sb2NhdGlvblByb3ZpZGVyQ3VycmVudFZlcnNpb24gPSAxIH07CiAKIFdLX0VYUE9S
VCBXS1R5cGVJRCBXS0dlb2xvY2F0aW9uTWFuYWdlckdldFR5cGVJRCgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNw
cAppbmRleCA2NGVkZjhhYzA3Y2NjM2YyYjYyZDA4NDUzMTIyYWYzZDdhNzAzNDk3Li41Y2RhNzFh
Y2IyY2Q5YmEyMWEwMWE2MTdkNjRlM2MwMTkwMmMxM2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAKQEAgLTk0
LDEwICs5NCwxMiBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Ojpwcm92aWRlckRp
ZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZwogCiB2b2lkIFdlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5OjpzdGFydFVwZGF0aW5nKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24pCiB7Ci0gICAgYm9vbCB3YXNVcGRhdGluZyA9ICFtX3VwZGF0ZVJlcXVlc3RlcnMuaXNF
bXB0eSgpOworICAgIGJvb2wgd2FzVXBkYXRpbmcgPSBpc1VwZGF0aW5nKCk7CiAgICAgbV91cGRh
dGVSZXF1ZXN0ZXJzLmFkZChjb25uZWN0aW9uLT5jbGllbnQoKSk7Ci0gICAgaWYgKCF3YXNVcGRh
dGluZykKKyAgICBpZiAoIXdhc1VwZGF0aW5nKSB7CisgICAgICAgIG1fcHJvdmlkZXIuc2V0RW5h
YmxlSGlnaEFjY3VyYWN5KHRoaXMsIGlzSGlnaEFjY3VyYWN5RW5hYmxlZCgpKTsKICAgICAgICAg
bV9wcm92aWRlci5zdGFydFVwZGF0aW5nKHRoaXMpOworICAgIH0KIH0KIAogdm9pZCBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eTo6c3RvcFVwZGF0aW5nKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24pCkBAIC0xMDcsMTAgKzEwOSwzNCBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5OjpzdG9wVXBkYXRpbmcoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIAog
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6cmVtb3ZlUmVxdWVzdGVyKGNvbnN0IENv
cmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudCogY2xpZW50KQogewotICAgIGJvb2wgd2FzVXBkYXRp
bmcgPSAhbV91cGRhdGVSZXF1ZXN0ZXJzLmlzRW1wdHkoKTsKKyAgICBib29sIHdhc1VwZGF0aW5n
ID0gaXNVcGRhdGluZygpOworICAgIEFTU0VSVCh3YXNVcGRhdGluZyk7CisgICAgYm9vbCBoaWdo
QWNjdXJhY3lXYXNFbmFibGVkID0gaXNIaWdoQWNjdXJhY3lFbmFibGVkKCk7CisKKyAgICBtX2hp
Z2hBY2N1cmFjeVJlcXVlc3RlcnMucmVtb3ZlKGNsaWVudCk7CiAgICAgbV91cGRhdGVSZXF1ZXN0
ZXJzLnJlbW92ZShjbGllbnQpOwotICAgIGlmICh3YXNVcGRhdGluZyAmJiBtX3VwZGF0ZVJlcXVl
c3RlcnMuaXNFbXB0eSgpKQorCisgICAgaWYgKHdhc1VwZGF0aW5nICYmICFpc1VwZGF0aW5nKCkp
CiAgICAgICAgIG1fcHJvdmlkZXIuc3RvcFVwZGF0aW5nKHRoaXMpOworICAgIGVsc2UgeworICAg
ICAgICBib29sIGhpZ2hBY2N1cmFjeVNob3VsZEJlRW5hYmxlZCA9IGlzSGlnaEFjY3VyYWN5RW5h
YmxlZCgpOworICAgICAgICBpZiAoaGlnaEFjY3VyYWN5U2hvdWxkQmVFbmFibGVkICE9IGhpZ2hB
Y2N1cmFjeVdhc0VuYWJsZWQpCisgICAgICAgICAgICBtX3Byb3ZpZGVyLnNldEVuYWJsZUhpZ2hB
Y2N1cmFjeSh0aGlzLCBoaWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpOworICAgIH0KK30KKwor
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGJvb2wgZW5hYmxlZCkKK3sKKyAgICBib29s
IGhpZ2hBY2N1cmFjeVdhc0VuYWJsZWQgPSBpc0hpZ2hBY2N1cmFjeUVuYWJsZWQoKTsKKworICAg
IGlmIChlbmFibGVkKQorICAgICAgICBtX2hpZ2hBY2N1cmFjeVJlcXVlc3RlcnMuYWRkKGNvbm5l
Y3Rpb24tPmNsaWVudCgpKTsKKyAgICBlbHNlCisgICAgICAgIG1faGlnaEFjY3VyYWN5UmVxdWVz
dGVycy5yZW1vdmUoY29ubmVjdGlvbi0+Y2xpZW50KCkpOworCisgICAgYm9vbCBoaWdoQWNjdXJh
Y3lTaG91bGRCZUVuYWJsZWQgPSBpc0hpZ2hBY2N1cmFjeUVuYWJsZWQoKTsKKyAgICBpZiAoaXNV
cGRhdGluZygpICYmIGhpZ2hBY2N1cmFjeVdhc0VuYWJsZWQgIT0gaGlnaEFjY3VyYWN5U2hvdWxk
QmVFbmFibGVkKQorICAgICAgICBtX3Byb3ZpZGVyLnNldEVuYWJsZUhpZ2hBY2N1cmFjeSh0aGlz
LCBoaWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmgKaW5kZXggODZlNDliNTQ0NDkyNzVjNjRmNmZkMzI4MTlmODVhMTJlMTM3ZWVm
Ny4uOTA3OWY5OWE4ZjNlNWI0NGM1MGJhYjZhMjQ4YTAwMGJlY2QzMzEyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgK
QEAgLTY1LDExICs2NSwxNiBAQCBwcml2YXRlOgogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKIAorICAgIGJvb2wgaXNV
cGRhdGluZygpIGNvbnN0IHsgcmV0dXJuICFtX3VwZGF0ZVJlcXVlc3RlcnMuaXNFbXB0eSgpOyB9
CisgICAgYm9vbCBpc0hpZ2hBY2N1cmFjeUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiAhbV9oaWdo
QWNjdXJhY3lSZXF1ZXN0ZXJzLmlzRW1wdHkoKTsgfQorCiAgICAgdm9pZCBzdGFydFVwZGF0aW5n
KENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2b2lkIHN0b3BVcGRhdGluZyhDb3JlSVBDOjpD
b25uZWN0aW9uKik7CiAgICAgdm9pZCByZW1vdmVSZXF1ZXN0ZXIoY29uc3QgQ29yZUlQQzo6Q29u
bmVjdGlvbjo6Q2xpZW50Kik7CisgICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIGJvb2wpOwogCiAgICAgSGFzaFNldDxjb25zdCBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQqPiBtX3VwZGF0ZVJlcXVlc3RlcnM7CisgICAgSGFzaFNldDxjb25zdCBD
b3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQqPiBtX2hpZ2hBY2N1cmFjeVJlcXVlc3RlcnM7CiAK
ICAgICBXZWJHZW9sb2NhdGlvblByb3ZpZGVyIG1fcHJvdmlkZXI7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE1NDA2Nzc5ZmNlZmE5ZWMxZTZjNTVmNjljMDY0YjkzYmE0
OGM3MGIuLjllMDhhNmE2ZTU4M2NkMWNiNGJhNjAwNDlkYTY4ZjFjNWUxODk5NjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDQgKzIzLDUgQEAKIG1lc3NhZ2VzIC0+IFdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5IHsKICAgICBTdGFydFVwZGF0aW5nKCkgV2FudHNDb25u
ZWN0aW9uCiAgICAgU3RvcFVwZGF0aW5nKCkgV2FudHNDb25uZWN0aW9uCisgICAgU2V0RW5hYmxl
SGlnaEFjY3VyYWN5KGJvb2wgZW5hYmxlZCkgV2FudHNDb25uZWN0aW9uCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKaW5kZXgg
YzM4MjIzNWM3Y2QzNzlhMDJiMDVhZWVhMzI5ZmRkYTBhYjYzMDg2Ni4uMGI4NjRjY2YzYThiNWQ4
ODZjN2VjYTg0MWRiOTA5N2YwYTBhOGViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDcsNCArNDcsMTIgQEAgdm9pZCBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyOjpzdG9wVXBkYXRpbmcoV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHkqIGdlb2xvY2F0aW8KICAgICBtX2NsaWVudC5zdG9wVXBkYXRpbmcodG9BUEkoZ2VvbG9j
YXRpb25NYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAKK3ZvaWQgV2ViR2VvbG9j
YXRpb25Qcm92aWRlcjo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5KiBnZW9sb2NhdGlvbk1hbmFnZXIsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAoIW1f
Y2xpZW50LnNldEVuYWJsZUhpZ2hBY2N1cmFjeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
bGllbnQuc2V0RW5hYmxlSGlnaEFjY3VyYWN5KHRvQVBJKGdlb2xvY2F0aW9uTWFuYWdlciksIGVu
YWJsZWQsIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5o
CmluZGV4IDE3NzY4NzlkNWNkNjVjZWIwY2ZhYWU0ZGM4YzU5YWU2MzYzYmNkMzguLmYyNTBjODEw
N2I1MDFjYTUxMTA3ZmIyNTJlZTZjNjJjNmExYThmYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNiArMzgsNyBAQCBjbGFz
cyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS0dlb2xvY2F0aW9u
UHJvdmlkZXIsIGtXS0dlb2xvYwogcHVibGljOgogICAgIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eSopOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKFdlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5Kik7CisgICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqLCBib29sKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCmluZGV4IGFhNDJmNWE2ZGRmMDU3Mjhk
YTNhOWQxMDJlZmJlOTRkYjkzNGQ3NmYuLmM4ZjhlMWY4NWE1MGJjMmFiZDdlZGVjMzc0YzljYjg1
OGYyYjMyYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRp
b24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKQEAgLTUxLDI2ICs1MSw0
NCBAQCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OldlYkdlb2xvY2F0aW9uTWFuYWdlcihXZWJQcm9j
ZXNzKiBwcm9jZXNzKQogICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9
CiAKLVdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6fldlYkdlb2xvY2F0aW9uTWFuYWdlcigpCi17Ci19
Ci0KIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSog
cGFnZSkKIHsKLSAgICBib29sIHdhc0VtcHR5ID0gbV9wYWdlU2V0LmlzRW1wdHkoKTsKKyAgICBi
b29sIHdhc1VwZGF0aW5nID0gaXNVcGRhdGluZygpOwogCiAgICAgbV9wYWdlU2V0LmFkZChwYWdl
KTsKLSAgICAKLSAgICBpZiAod2FzRW1wdHkpCisKKyAgICBpZiAoIXdhc1VwZGF0aW5nKQogICAg
ICAgICBtX3Byb2Nlc3MtPnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpTdGFydFVwZGF0aW5nKCksIDApOwogfQogCiB2
b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6dW5yZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFn
ZSkKIHsKKyAgICBib29sIGhpZ2hBY2N1cmFjeVdhc0VuYWJsZWQgPSBpc0hpZ2hBY2N1cmFjeUVu
YWJsZWQoKTsKKwogICAgIG1fcGFnZVNldC5yZW1vdmUocGFnZSk7CisgICAgbV9oaWdoQWNjdXJh
Y3lQYWdlU2V0LnJlbW92ZShwYWdlKTsKIAotICAgIGlmIChtX3BhZ2VTZXQuaXNFbXB0eSgpKQor
ICAgIGlmICghaXNVcGRhdGluZygpKQogICAgICAgICBtX3Byb2Nlc3MtPnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpT
dG9wVXBkYXRpbmcoKSwgMCk7CisgICAgZWxzZSB7CisgICAgICAgIGJvb2wgaGlnaEFjY3VyYWN5
U2hvdWxkQmVFbmFibGVkID0gaXNIaWdoQWNjdXJhY3lFbmFibGVkKCk7CisgICAgICAgIGlmICho
aWdoQWNjdXJhY3lXYXNFbmFibGVkICE9IGhpZ2hBY2N1cmFjeVNob3VsZEJlRW5hYmxlZCkKKyAg
ICAgICAgICAgIG1fcHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlNldEVuYWJsZUhpZ2hBY2N1cmFjeSho
aWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpLCAwKTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpzZXRFbmFibGVIaWdoQWNjdXJhY3lGb3JQYWdlKFdlYlBhZ2UqIHBh
Z2UsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICBib29sIGhpZ2hBY2N1cmFjeVdhc0VuYWJsZWQgPSBp
c0hpZ2hBY2N1cmFjeUVuYWJsZWQoKTsKKworICAgIGlmIChlbmFibGVkKQorICAgICAgICBtX2hp
Z2hBY2N1cmFjeVBhZ2VTZXQuYWRkKHBhZ2UpOworICAgIGVsc2UKKyAgICAgICAgbV9oaWdoQWNj
dXJhY3lQYWdlU2V0LnJlbW92ZShwYWdlKTsKKworICAgIGJvb2wgaGlnaEFjY3VyYWN5U2hvdWxk
QmVFbmFibGVkID0gaXNIaWdoQWNjdXJhY3lFbmFibGVkKCk7CisgICAgaWYgKGhpZ2hBY2N1cmFj
eVdhc0VuYWJsZWQgIT0gaGlnaEFjY3VyYWN5U2hvdWxkQmVFbmFibGVkKQorICAgICAgICBtX3By
b2Nlc3MtPnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5OjpTZXRFbmFibGVIaWdoQWNjdXJhY3koaGlnaEFjY3VyYWN5U2hv
dWxkQmVFbmFibGVkKSwgMCk7CiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRD
aGFuZ2VQb3NpdGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhJiBkYXRhKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24v
V2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKaW5kZXggNGExZDczYWUwZmYwOGViYmQ1YWExYmU2Zjgy
N2NmM2JlMDRiMjUzMi4uZmVmYzA2ZjM1MDgwNGM5NjAyZjQzZjI1ZDhiZDdkYzZjZDMwZTBlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0
aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC00NywxMiArNDcsMTIgQEAgY2xhc3MgV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMg
Q29yZUlQQzo6TWVzc2EKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJHZW9sb2NhdGlvbk1h
bmFnZXIpOwogcHVibGljOgogICAgIGV4cGxpY2l0IFdlYkdlb2xvY2F0aW9uTWFuYWdlcihXZWJQ
cm9jZXNzKik7Ci0gICAgfldlYkdlb2xvY2F0aW9uTWFuYWdlcigpOwogCiAgICAgc3RhdGljIGNv
bnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKICAgICB2b2lkIHJlZ2lzdGVyV2ViUGFnZShX
ZWJQYWdlKik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKik7CisgICAgdm9p
ZCBzZXRFbmFibGVIaWdoQWNjdXJhY3lGb3JQYWdlKFdlYlBhZ2UqLCBib29sKTsKIAogICAgIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKIApAQCAtNjAsMTEg
KzYwLDE1IEBAIHByaXZhdGU6CiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwogCisgICAgYm9vbCBpc1VwZGF0aW5nKCkg
Y29uc3QgeyByZXR1cm4gIW1fcGFnZVNldC5pc0VtcHR5KCk7IH0KKyAgICBib29sIGlzSGlnaEFj
Y3VyYWN5RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2hpZ2hBY2N1cmFjeVBhZ2VTZXQuaXNF
bXB0eSgpOyB9CisKICAgICB2b2lkIGRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IFdlYkdlb2xvY2F0
aW9uUG9zaXRpb246OkRhdGEmKTsKICAgICB2b2lkIGRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9u
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgIFdlYlByb2Nlc3MqIG1fcHJvY2Vz
czsKICAgICBIYXNoU2V0PFdlYlBhZ2UqPiBtX3BhZ2VTZXQ7CisgICAgSGFzaFNldDxXZWJQYWdl
Kj4gbV9oaWdoQWNjdXJhY3lQYWdlU2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdl
b2xvY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCmluZGV4IGY5YTM2ZGRhNmVhZjk2MTk4ODIz
ZjFhYjYxNDkwNGY2MDg0NWZjOTkuLmMyMjExMDM4Mzg0OGMzNmJmNjQxZjY4ZmZhOGQ1ZjdiOWEw
YWNlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OCw4ICs1OCw5IEBA
IHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZygpCiAgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuc3VwcGxlbWVudDxXZWJHZW9sb2NhdGlvbk1hbmFnZXI+KCktPnVucmVnaXN0
ZXJXZWJQYWdlKG1fcGFnZSk7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVu
YWJsZUhpZ2hBY2N1cmFjeShib29sKQordm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6c2V0RW5h
YmxlSGlnaEFjY3VyYWN5KGJvb2wgZW5hYmxlZCkKIHsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5zdXBwbGVtZW50PFdlYkdlb2xvY2F0aW9uTWFuYWdlcj4oKS0+c2V0RW5hYmxlSGlnaEFjY3Vy
YWN5Rm9yUGFnZShtX3BhZ2UsIGVuYWJsZWQpOwogfQogCiBHZW9sb2NhdGlvblBvc2l0aW9uKiBX
ZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYTc3NWE3YmQ2NTIxNWY1OGI0ZmNlMzZm
ODg1ZjAxYjVkMzY3ODI2Li42MDk3NzVlM2E4NjdhNzU3MmQ5ZTY2Nzc0MmM4ODFhMTg1ZTlmMzky
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDIgQEAKKzIwMTMtMTEtMDQgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJr
aXQub3JnPgorCisgICAgICAgIFtXSzJdIEFkZCBhIFdlYktpdDIgQVBJIGZvciBHZW9sb2NhdGlv
bidzIGhpZ2hBY2N1cmFjeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIzNzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGJhc2ljIHRlc3RpbmcgZm9yIHRoZSBHZW9sb2NhdGlvbiBBUEkgKHN0YXJ0
LCBzdG9wIGFuZCBjaGFuZ2UgYWNjdXJhY3kpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9H
TlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtRWZsLmNtYWtl
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0dlb2xvY2F0aW9uLmNwcDogQWRk
ZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6Okdlb2xvY2F0aW9uU3RhdGVUcmFja2VyOjp+R2VvbG9jYXRpb25TdGF0ZVRyYWNr
ZXIpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R2VvbG9jYXRpb25TdGF0ZVRyYWNrZXI6OmV2
ZW50c0NoYW5nZWQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R2VvbG9jYXRpb25TdGF0ZVRy
YWNrZXI6OnN0YXJ0VXBkYXRpbmdDYWxsYmFjayk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpH
ZW9sb2NhdGlvblN0YXRlVHJhY2tlcjo6c3RvcFVwZGF0aW5nQ2FsbGJhY2spOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6R2VvbG9jYXRpb25TdGF0ZVRyYWNrZXI6OnNldEVuYWJsZUhpZ2hBY2N1
cmFjeUNhbGxiYWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRlY2lkZVBvbGljeUZvckdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsQmFjayk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpzZXR1cEdlb2xvY2F0aW9uUHJvdmlkZXIpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
c2V0dXBWaWV3KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Okdlb2xvY2F0aW9uQmFzaWNTdGF0
ZVRyYWNrZXI6Okdlb2xvY2F0aW9uQmFzaWNTdGF0ZVRyYWNrZXIpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6R2VvbG9jYXRpb25CYXNpY1N0YXRlVHJhY2tlcjo6ZXZlbnRzQ2hhbmdlZCk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpHZW9sb2NhdGlvbkJhc2ljV2l0aEhpZ2hBY2N1cmFjeVN0
YXRlVHJhY2tlcjo6R2VvbG9jYXRpb25CYXNpY1dpdGhIaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXIp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R2VvbG9jYXRpb25CYXNpY1dpdGhIaWdoQWNjdXJh
Y3lTdGF0ZVRyYWNrZXI6OmV2ZW50c0NoYW5nZWQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
R2VvbG9jYXRpb25UcmFuc2l0aW9uVG9IaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXI6Okdlb2xvY2F0
aW9uVHJhbnNpdGlvblRvSGlnaEFjY3VyYWN5U3RhdGVUcmFja2VyKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6Okdlb2xvY2F0aW9uVHJhbnNpdGlvblRvSGlnaEFjY3VyYWN5U3RhdGVUcmFja2Vy
OjpldmVudHNDaGFuZ2VkKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Okdlb2xvY2F0aW9uVHJh
bnNpdGlvblRvTG93QWNjdXJhY3lTdGF0ZVRyYWNrZXI6Okdlb2xvY2F0aW9uVHJhbnNpdGlvblRv
TG93QWNjdXJhY3lTdGF0ZVRyYWNrZXIpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R2VvbG9j
YXRpb25UcmFuc2l0aW9uVG9Mb3dBY2N1cmFjeVN0YXRlVHJhY2tlcjo6ZXZlbnRzQ2hhbmdlZCk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbkdldEN1cnJlbnRQb3Np
dGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
Z2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbldhdGNo
UG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL2dlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbDogQWRkZWQu
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHA6
CisgICAgICAgIChXVFI6Okdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrOjpHZW9sb2NhdGlvblByb3Zp
ZGVyTW9jayk6CisKIDIwMTMtMTEtMDQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KIAogICAgICAgICBNb3JlIFdLUmVtb3RlT2JqZWN0UmVnaXN0cnkgd29yawpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvR05VbWFrZWZpbGUuYW0KaW5kZXggZGUyOTFiNzA3ZmRlODZlNmZlZmRiN2NlNTkzNDg4
MjBmZDkwMWVkNC4uMDM0MjhhYTcyMjU5MjE5MTY1MTQwYzRlYTU5OWFlMjJjMjc2MThkOCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtCkBAIC0yNjIsNiArMjYyLDcgQEAgUHJvZ3JhbXNf
VGVzdFdlYktpdEFQSV9UZXN0V2ViS2l0Ml9TT1VSQ0VTID0gXAogCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9Gb3JjZVJlcGFpbnQuY3BwIFwKIAlUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvRnJhbWVNSU1FVHlwZUhUTUwuY3BwIFwKIAlUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvRnJhbWVNSU1FVHlwZVBORy5jcHAgXAorCVRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9HZW9sb2NhdGlvbi5jcHAgXAogCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9HZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFD
YWxsYmFjay5jcHAgXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9IaXRUZXN0
UmVzdWx0Tm9kZUhhbmRsZS5jcHAgXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9JbmplY3RlZEJ1bmRsZUJhc2ljLmNwcCBcCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1BsYXRmb3JtRWZsLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUVmbC5j
bWFrZQppbmRleCAxNDk5ZDQwYzMwODZmOWViNWM0Mjc4ZDc4MzlkYWQ2NGRjODE5YzNlLi43ZmZj
NmNmOTAwNjdmMjExZDAzOWM0ZDhjZGM0MjE0NDk4OWRhM2RhIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
UGxhdGZvcm1FZmwuY21ha2UKQEAgLTcxLDYgKzcxLDcgQEAgc2V0KHRlc3Rfd2Via2l0Ml9hcGlf
QklOQVJJRVMKICAgICBGb3JjZVJlcGFpbnQKICAgICBGcmFtZU1JTUVUeXBlSFRNTAogICAgIEZy
YW1lTUlNRVR5cGVQTkcKKyAgICBHZW9sb2NhdGlvbgogICAgIEdldEluamVjdGVkQnVuZGxlSW5p
dGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrCiAgICAgSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUK
ICAgICBJbmplY3RlZEJ1bmRsZUJhc2ljCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFr
ZQppbmRleCBiM2Q4MWM1NGJiNjIyZjk3NDQ1M2IzMDcwYTBmYmFkODkzYjJhZGMwLi5lM2IzMmY1
Zjg1NzE3YjljYmQ2MTZiNjVmZjI5ODJlOTc4YWFlNDM5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxh
dGZvcm1HVEsuY21ha2UKQEAgLTgxLDYgKzgxLDcgQEAgc2V0KHRlc3Rfd2Via2l0Ml9hcGlfQklO
QVJJRVMKICAgICBGb3JjZVJlcGFpbnQKICAgICBGcmFtZU1JTUVUeXBlSFRNTAogICAgIEZyYW1l
TUlNRVR5cGVQTkcKKyAgICBHZW9sb2NhdGlvbgogICAgIEdldEluamVjdGVkQnVuZGxlSW5pdGlh
bGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrCiAgICAgSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUKICAg
ICBJbmplY3RlZEJ1bmRsZUJhc2ljCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFkYTM2ZGMx
OThkOTc3MWM3NzExYjNkNzM0NzljNmYyZjBmNmFkMjYuLjRjYjMwZjBlNmU4MDI0MjI5ODM4OGU3
NDVlYWU4NDJlOGVmMmI3MGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MSw2ICs0MSwx
MSBAQAogCQkyNkRGNUE2MzE1QTJBMjdFMDAzNjg5QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJj
ZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI2REY1QTYxMTVBMkEyMkIwMDM2ODlDMiAvKiBDYW5jZWxMb2FkRnJv
bVJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgKi87IH07CiAJCTI2RjFCNDQ0MTVDQTQzNEYwMEQx
RTRCRiAvKiBBdG9taWNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjZGMUI0NDIxNUNBNDM0RjAwRDFFNEJGIC8qIEF0b21pY1N0cmluZy5j
cHAgKi87IH07CiAJCTI2RjFCNDQ1MTVDQTQzNEYwMEQxRTRCRiAvKiBTdHJpbmdJbXBsLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjFCNDQzMTVD
QTQzNEYwMEQxRTRCRiAvKiBTdHJpbmdJbXBsLmNwcCAqLzsgfTsKKwkJMjZGNTJFQUIxODI4NzI2
MDAwMjNENDEyIC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjUyRUFBMTgyODcyNjAwMDIzRDQxMiAvKiBHZW9sb2NhdGlv
bi5jcHAgKi87IH07CisJCTI2RjUyRUFEMTgyODgyN0IwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbkdl
dEN1cnJlbnRQb3NpdGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjUyRUFDMTgyODgyMEUwMDIzRDQxMiAvKiBnZW9sb2NhdGlv
bkdldEN1cnJlbnRQb3NpdGlvbi5odG1sICovOyB9OworCQkyNkY1MkVBRjE4Mjg4QzIzMDAyM0Q0
MTIgLyogZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZG
NTJFQUUxODI4OEMwNDAwMjNENDEyIC8qIGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uV2l0
aEhpZ2hBY2N1cmFjeS5odG1sICovOyB9OworCQkyNkY1MkVCMjE4Mjg4RjI0MDAyM0Q0MTIgLyog
Z2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZGNTJFQjAxODI4OEYwRjAwMjNENDEyIC8qIGdl
b2xvY2F0aW9uV2F0Y2hQb3NpdGlvbi5odG1sICovOyB9OworCQkyNkY1MkVCMzE4Mjg4RjI0MDAy
M0Q0MTIgLyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjUy
RUIxMTgyODhGMEYwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb25XaXRoSGlnaEFj
Y3VyYWN5Lmh0bWwgKi87IH07CiAJCTI5MEE5QkI3MTczNURFOEEwMEQ3MUJCQyAvKiBDbG9zZU5l
d1dpbmRvd0luTmF2aWdhdGlvblBvbGljeURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwQTlCQjUxNzM1REU4QTAwRDcxQkJDIC8qIENs
b3NlTmV3V2luZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW0gKi87IH07CiAJCTI5MEE5
QkI5MTczNUY2MzgwMEQ3MUJCQyAvKiBPcGVuTmV3V2luZG93Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwQTlCQjgxNzM1RjQyMzAw
RDcxQkJDIC8qIE9wZW5OZXdXaW5kb3cuaHRtbCAqLzsgfTsKIAkJMjkwRjQyNzUxNzJBMjIxQzAw
OTM5RkYwIC8qIGN1c3RvbS1wcm90b2NvbC1zeW5jLXhoci5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MEY0Mjc0MTcyQTFGREUwMDkz
OUZGMCAvKiBjdXN0b20tcHJvdG9jb2wtc3luYy14aHIuaHRtbCAqLzsgfTsKQEAgLTI5MCw2ICsy
OTUsMTAgQEAKIAkJCQlCQzJEMDA2NDEyQUEwNENFMDBFNzMyQTMgLyogZmlsZS13aXRoLWFuY2hv
ci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM1MTAxQzRGMTc2QjhEOTIwMEVFOUIx
NSAvKiBmaW5kUmFuZ2VzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUEwMkM4NzAx
MjVENENGRDAwRTNGNEJEIC8qIGZpbmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQky
NkY1MkVCMjE4Mjg4RjI0MDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJMjZGNTJFQjMxODI4OEYyNDAwMjNENDEyIC8qIGdl
b2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKKwkJCQkyNkY1MkVBRjE4Mjg4QzIzMDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25HZXRD
dXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CisJCQkJMjZGNTJFQUQxODI4ODI3QjAwMjNENDEyIC8qIGdlb2xvY2F0aW9uR2V0Q3VycmVudFBv
c2l0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOUI0RjhGQTcxNTlENTJERDAw
MkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJOUIyNkZDQ0ExNTlEMTZERTAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5h
bWVkSXRlbS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNFMTRGMUE0MTgxODczQjAw
MDFDMjcwNSAvKiBXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLApAQCAtMzU1LDYgKzM2NCwxMSBAQAogCQkyNkRGNUE2MTE1QTJBMjJC
MDAzNjg5QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkYxQjQ0MjE1Q0E0MzRGMDBE
MUU0QkYgLyogQXRvbWljU3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEF0b21pY1N0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2
RjFCNDQzMTVDQTQzNEYwMEQxRTRCRiAvKiBTdHJpbmdJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ0ltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyNkY1MkVBQTE4Mjg3MjYwMDAyM0Q0MTIgLyogR2VvbG9jYXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VvbG9jYXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNkY1MkVBQzE4Mjg4MjBFMDAyM0Q0MTIgLyogZ2Vv
bG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb24uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9IGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTI2RjUyRUFFMTgyODhDMDQwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbkdldEN1
cnJlbnRQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9IGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1s
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNkY1MkVCMDE4Mjg4RjBGMDAyM0Q0MTIg
LyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb24uaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMjZGNTJFQjExODI4OEYwRjAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3Np
dGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGdl
b2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjkwQTlCQjUxNzM1REU4QTAwRDcxQkJDIC8qIENsb3NlTmV3V2lu
ZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDbG9zZU5ld1dpbmRvd0luTmF2aWdhdGlvblBvbGljeURlbGVnYXRl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTBBOUJCODE3MzVGNDIzMDBENzFC
QkMgLyogT3Blbk5ld1dpbmRvdy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gT3Bl
bk5ld1dpbmRvdy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTBGNDI3NDE3
MkExRkRFMDA5MzlGRjAgLyogY3VzdG9tLXByb3RvY29sLXN5bmMteGhyLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAiY3VzdG9tLXByb3RvY29sLXN5bmMteGhyLmh0bWwiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzUwLDYgKzc2NCw3IEBACiAJCQkJMUFEQkVGQUQx
MzBDNjg5QzAwRDYxRDE5IC8qIEZvcmNlUmVwYWludC5jcHAgKi8sCiAJCQkJQkNCRDM3MEYxMjVB
QTJFQjAwRDJDMjlGIC8qIEZyYW1lTUlNRVR5cGVIVE1MLmNwcCAqLywKIAkJCQlCQ0JEMzc2MDEy
NUFCQ0ZFMDBEMkMyOUYgLyogRnJhbWVNSU1FVHlwZVBORy5jcHAgKi8sCisJCQkJMjZGNTJFQUEx
ODI4NzI2MDAwMjNENDEyIC8qIEdlb2xvY2F0aW9uLmNwcCAqLywKIAkJCQlGNjYwQUEwQzE1QTVG
MDYxMDAzQTEyNDMgLyogR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2Fs
bGJhY2suY3BwICovLAogCQkJCUY2NjBBQTBGMTVBNUY2MjQwMDNBMTI0MyAvKiBHZXRJbmplY3Rl
ZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja19CdW5kbGUuY3BwICovLAogCQkJ
CTRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAg
Ki8sCkBAIC04NjEsNiArODc2LDEwIEBACiAJCQkJQkMyRDAwNEExMkE5RkVCMzAwRTczMkEzIC8q
IGZpbGUtd2l0aC1hbmNob3IuaHRtbCAqLywKIAkJCQkxQTAyQzg0QjEyNUQ0QTVFMDBFM0Y0QkQg
LyogZmluZC5odG1sICovLAogCQkJCUM1MTAxQzRFMTc2QjhCQjkwMEVFOUIxNSAvKiBmaW5kUmFu
Z2VzLmh0bWwgKi8sCisJCQkJMjZGNTJFQUMxODI4ODIwRTAwMjNENDEyIC8qIGdlb2xvY2F0aW9u
R2V0Q3VycmVudFBvc2l0aW9uLmh0bWwgKi8sCisJCQkJMjZGNTJFQUUxODI4OEMwNDAwMjNENDEy
IC8qIGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sICov
LAorCQkJCTI2RjUyRUIwMTgyODhGMEYwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbldhdGNoUG9zaXRp
b24uaHRtbCAqLywKKwkJCQkyNkY1MkVCMTE4Mjg4RjBGMDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25X
YXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sICovLAogCQkJCUJDQkQzNzJFMTI1QUJC
RTYwMEQyQzI5RiAvKiBpY29uLnBuZyAqLywKIAkJCQkzNzhFNjQ3ODE2MzI2RkRGMDBCNkM2NzYg
LyogbGluay13aXRoLXRpdGxlLmh0bWwgKi8sCiAJCQkJOTM2MTAwMjgxNERDOTU3QjAwNjEzNzlE
IC8qIGxvdHMtb2YtaWZyYW1lcy5odG1sICovLApAQCAtMTIwMCw2ICsxMjE5LDcgQEAKIAkJCQlC
QzkwOTc3QTEyNTU3MUFCMDAwODM3NTYgLyogUGFnZUxvYWRCYXNpYy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzJEMDA0OTEyQTlGREZBMDBFNzMyQTMgLyogUGFnZUxvYWREaWRDaGFuZ2VMb2Nh
dGlvbldpdGhpblBhZ2VGb3JGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMxNDA3QzE3
QjQ0MTkwMDBGMDgzQjEgLyogRGlkTm90SGFuZGxlS2V5RG93bi5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyNkY1MkVBQjE4Mjg3MjYwMDAyM0Q0MTIgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTUxQjY1MDkxNkFERjlCMTAwN0FBNUQ5IC8qIFBhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3QTM0RjAxNkFGNjc3MjAwQzI1MDFGIC8qIFBh
Z2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUyRTVDRTQ2MTREMjFFOUQwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZS5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9HZW9sb2Nh
dGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvR2VvbG9jYXRpb24u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE3ZTUyZDQyZmFmNGFlZTRkYmI2NWQ3NTA0OTU3NWQyMzQ5Mzg5ZDEK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvR2Vv
bG9jYXRpb24uY3BwCkBAIC0wLDAgKzEsMzI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1XZWJWaWV3LmgiCisjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRh
aW5QdHIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKK3VzaW5n
IG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworZW51bSBjbGFz
cyBHZW9sb2NhdGlvbkV2ZW50IHsKKyAgICBTdGFydFVwZGF0aW5nLAorICAgIFN0b3BVcGRhdGlu
ZywKKyAgICBFbmFibGVIaWdoQWNjdXJhY3ksCisgICAgRGlzYWJsZUhpZ2hBY2N1cmFjeQorfTsK
Kworb3N0cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtJiBvdXRwdXRTdHJlYW0sIGNvbnN0IEdlb2xv
Y2F0aW9uRXZlbnQmIGdlb2xvY2F0aW9uRXZlbnQpCit7CisgICAgc3dpdGNoIChnZW9sb2NhdGlv
bkV2ZW50KSB7CisgICAgY2FzZSBHZW9sb2NhdGlvbkV2ZW50OjpTdGFydFVwZGF0aW5nOgorICAg
ICAgICBvdXRwdXRTdHJlYW0gPDwgIkdlb2xvY2F0aW9uRXZlbnQ6OlN0YXJ0VXBkYXRpbmciOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEdlb2xvY2F0aW9uRXZlbnQ6OlN0b3BVcGRhdGluZzoK
KyAgICAgICAgb3V0cHV0U3RyZWFtIDw8ICJHZW9sb2NhdGlvbkV2ZW50OjpTdG9wVXBkYXRpbmci
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdlb2xvY2F0aW9uRXZlbnQ6OkVuYWJsZUhpZ2hB
Y2N1cmFjeToKKyAgICAgICAgb3V0cHV0U3RyZWFtIDw8ICJHZW9sb2NhdGlvbkV2ZW50OjpFbmFi
bGVIaWdoQWNjdXJhY3kiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdlb2xvY2F0aW9uRXZl
bnQ6OkRpc2FibGVIaWdoQWNjdXJhY3k6CisgICAgICAgIG91dHB1dFN0cmVhbSA8PCAiR2VvbG9j
YXRpb25FdmVudDo6RGlzYWJsZUhpZ2hBY2N1cmFjeSI7CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICByZXR1cm4gb3V0cHV0U3RyZWFtOworfQorCitzdHJ1Y3QgR2VvbG9jYXRpb25TdGF0ZVRy
YWNrZXIgeworICAgIHZlY3RvcjxHZW9sb2NhdGlvbkV2ZW50PiBldmVudHM7CisKKyAgICB2aXJ0
dWFsIH5HZW9sb2NhdGlvblN0YXRlVHJhY2tlcigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBldmVu
dHNDaGFuZ2VkKCkgeyB9CisKKyAgICBzdGF0aWMgdm9pZCBzdGFydFVwZGF0aW5nQ2FsbGJhY2so
V0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgbWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
KyAgICB7CisgICAgICAgIEdlb2xvY2F0aW9uU3RhdGVUcmFja2VyKiBzdGF0ZVRyYWNrZXIgPSBz
dGF0aWNfY2FzdDxHZW9sb2NhdGlvblN0YXRlVHJhY2tlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNs
aWVudEluZm8pKTsKKyAgICAgICAgc3RhdGVUcmFja2VyLT5ldmVudHMucHVzaF9iYWNrKEdlb2xv
Y2F0aW9uRXZlbnQ6OlN0YXJ0VXBkYXRpbmcpOworICAgICAgICBzdGF0ZVRyYWNrZXItPmV2ZW50
c0NoYW5nZWQoKTsKKworICAgICAgICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUG9zaXRpb25S
ZWY+IHBvc2l0aW9uID0gYWRvcHRXSyhXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGUoMCwgNTAu
NjQ0MzU4LCAzLjM0NTQ1MywgMi41MykpOworICAgICAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclBy
b3ZpZGVyRGlkQ2hhbmdlUG9zaXRpb24obWFuYWdlciwgcG9zaXRpb24uZ2V0KCkpOworICAgIH0K
KworICAgIHN0YXRpYyB2b2lkIHN0b3BVcGRhdGluZ0NhbGxiYWNrKFdLR2VvbG9jYXRpb25NYW5h
Z2VyUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorICAgIHsKKyAgICAgICAgR2VvbG9jYXRp
b25TdGF0ZVRyYWNrZXIqIHN0YXRlVHJhY2tlciA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uU3Rh
dGVUcmFja2VyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgICAgICBzdGF0
ZVRyYWNrZXItPmV2ZW50cy5wdXNoX2JhY2soR2VvbG9jYXRpb25FdmVudDo6U3RvcFVwZGF0aW5n
KTsKKyAgICAgICAgc3RhdGVUcmFja2VyLT5ldmVudHNDaGFuZ2VkKCk7CisgICAgfQorCisgICAg
c3RhdGljIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5Q2FsbGJhY2soV0tHZW9sb2NhdGlvbk1h
bmFnZXJSZWYsIGJvb2wgZW5hYmxlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorICAgIHsKKyAg
ICAgICAgR2VvbG9jYXRpb25TdGF0ZVRyYWNrZXIqIHN0YXRlVHJhY2tlciA9IHN0YXRpY19jYXN0
PEdlb2xvY2F0aW9uU3RhdGVUcmFja2VyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykp
OworICAgICAgICBpZiAoZW5hYmxlKQorICAgICAgICAgICAgc3RhdGVUcmFja2VyLT5ldmVudHMu
cHVzaF9iYWNrKEdlb2xvY2F0aW9uRXZlbnQ6OkVuYWJsZUhpZ2hBY2N1cmFjeSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHN0YXRlVHJhY2tlci0+ZXZlbnRzLnB1c2hfYmFjayhHZW9sb2Nh
dGlvbkV2ZW50OjpEaXNhYmxlSGlnaEFjY3VyYWN5KTsKKyAgICAgICAgc3RhdGVUcmFja2VyLT5l
dmVudHNDaGFuZ2VkKCk7CisgICAgfQorfTsKKwordm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2soV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7
CisgICAgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocGVybWlzc2lvblJlcXVl
c3QpOworfQorCit2b2lkIHNldHVwR2VvbG9jYXRpb25Qcm92aWRlcihXS0NvbnRleHRSZWYgY29u
dGV4dCwgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBXS0dlb2xvY2F0aW9uUHJvdmlkZXIgcHJv
dmlkZXJDYWxsYmFjazsKKyAgICBtZW1zZXQoJnByb3ZpZGVyQ2FsbGJhY2ssIDAsIHNpemVvZihX
S0dlb2xvY2F0aW9uUHJvdmlkZXIpKTsKKyAgICBwcm92aWRlckNhbGxiYWNrLnZlcnNpb24gPSBr
V0tHZW9sb2NhdGlvblByb3ZpZGVyQ3VycmVudFZlcnNpb247CisgICAgcHJvdmlkZXJDYWxsYmFj
ay5jbGllbnRJbmZvID0gY2xpZW50SW5mbzsKKyAgICBwcm92aWRlckNhbGxiYWNrLnN0YXJ0VXBk
YXRpbmcgPSBHZW9sb2NhdGlvblN0YXRlVHJhY2tlcjo6c3RhcnRVcGRhdGluZ0NhbGxiYWNrOwor
ICAgIHByb3ZpZGVyQ2FsbGJhY2suc3RvcFVwZGF0aW5nID0gR2VvbG9jYXRpb25TdGF0ZVRyYWNr
ZXI6OnN0b3BVcGRhdGluZ0NhbGxiYWNrOworICAgIHByb3ZpZGVyQ2FsbGJhY2suc2V0RW5hYmxl
SGlnaEFjY3VyYWN5ID0gR2VvbG9jYXRpb25TdGF0ZVRyYWNrZXI6OnNldEVuYWJsZUhpZ2hBY2N1
cmFjeUNhbGxiYWNrOworICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIoV0tDb250
ZXh0R2V0R2VvbG9jYXRpb25NYW5hZ2VyKGNvbnRleHQpLCAmcHJvdmlkZXJDYWxsYmFjayk7Cit9
CisKK3ZvaWQgc2V0dXBWaWV3KFBsYXRmb3JtV2ViVmlldyYgd2ViVmlldykKK3sKKyAgICBXS1Bh
Z2VVSUNsaWVudCB1aUNsaWVudDsKKyAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlD
bGllbnQpKTsKKyAgICB1aUNsaWVudC52ZXJzaW9uID0ga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZl
cnNpb247CisgICAgdWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdCA9IGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxs
QmFjazsKKyAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVu
dCk7Cit9CisKKy8vIEdlb2xvY2F0aW9uQmFzaWMuCitzdHJ1Y3QgR2VvbG9jYXRpb25CYXNpY1N0
YXRlVHJhY2tlciA6IEdlb2xvY2F0aW9uU3RhdGVUcmFja2VyIHsKKyAgICBib29sIGZpbmlzaGVk
OworCisgICAgR2VvbG9jYXRpb25CYXNpY1N0YXRlVHJhY2tlcigpIDogZmluaXNoZWQoZmFsc2Up
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBldmVudHNDaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAoZXZlbnRzLnNpemUoKSkgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBFWFBF
Q1RfRVEoR2VvbG9jYXRpb25FdmVudDo6RGlzYWJsZUhpZ2hBY2N1cmFjeSwgZXZlbnRzWzBdKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBFWFBFQ1Rf
RVEoR2VvbG9jYXRpb25FdmVudDo6U3RhcnRVcGRhdGluZywgZXZlbnRzWzFdKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBFWFBFQ1RfRVEoR2VvbG9j
YXRpb25FdmVudDo6U3RvcFVwZGF0aW5nLCBldmVudHNbMl0pOworICAgICAgICAgICAgZmluaXNo
ZWQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CisgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7Cisg
ICAgICAgIH0KKyAgICB9Cit9OworCitURVNUKFdlYktpdDIsIEdlb2xvY2F0aW9uQmFzaWMpCit7
CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFdLQ29udGV4
dENyZWF0ZSgpKTsKKworICAgIEdlb2xvY2F0aW9uQmFzaWNTdGF0ZVRyYWNrZXIgc3RhdGVUcmFj
a2VyOworICAgIHNldHVwR2VvbG9jYXRpb25Qcm92aWRlcihjb250ZXh0LmdldCgpLCAmc3RhdGVU
cmFja2VyKTsKKworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwor
ICAgIHNldHVwVmlldyh3ZWJWaWV3KTsKKworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwo
QWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImdlb2xvY2F0aW9uR2V0Q3VycmVu
dFBvc2l0aW9uIiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwg
dXJsLmdldCgpKTsKKworICAgIFV0aWw6OnJ1bigmc3RhdGVUcmFja2VyLmZpbmlzaGVkKTsKK30K
KworLy8gR2VvbG9jYXRpb24gcmVxdWVzdGVkIHdpdGggSGlnaCBBY2N1cmFjeS4KK3N0cnVjdCBH
ZW9sb2NhdGlvbkJhc2ljV2l0aEhpZ2hBY2N1cmFjeVN0YXRlVHJhY2tlciA6IEdlb2xvY2F0aW9u
U3RhdGVUcmFja2VyIHsKKyAgICBib29sIGZpbmlzaGVkOworCisgICAgR2VvbG9jYXRpb25CYXNp
Y1dpdGhIaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXIoKSA6IGZpbmlzaGVkKGZhbHNlKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZXZlbnRzQ2hhbmdlZCgpCisgICAgeworICAgICAgICBzd2l0Y2ggKGV2
ZW50cy5zaXplKCkpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgRVhQRUNUX0VRKEdl
b2xvY2F0aW9uRXZlbnQ6OkVuYWJsZUhpZ2hBY2N1cmFjeSwgZXZlbnRzWzBdKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBFWFBFQ1RfRVEoR2VvbG9j
YXRpb25FdmVudDo6U3RhcnRVcGRhdGluZywgZXZlbnRzWzFdKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBFWFBFQ1RfRVEoR2VvbG9jYXRpb25FdmVu
dDo6U3RvcFVwZGF0aW5nLCBldmVudHNbMl0pOworICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVl
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBFWFBF
Q1RfVFJVRShmYWxzZSk7CisgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAgICAgIH0K
KyAgICB9Cit9OworCitURVNUKFdlYktpdDIsIEdlb2xvY2F0aW9uQmFzaWNXaXRoSGlnaEFjY3Vy
YWN5KQoreworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBX
S0NvbnRleHRDcmVhdGUoKSk7CisKKyAgICBHZW9sb2NhdGlvbkJhc2ljV2l0aEhpZ2hBY2N1cmFj
eVN0YXRlVHJhY2tlciBzdGF0ZVRyYWNrZXI7CisgICAgc2V0dXBHZW9sb2NhdGlvblByb3ZpZGVy
KGNvbnRleHQuZ2V0KCksICZzdGF0ZVRyYWNrZXIpOworCisgICAgUGxhdGZvcm1XZWJWaWV3IHdl
YlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgc2V0dXBWaWV3KHdlYlZpZXcpOworCisgICAgV0tS
ZXRhaW5QdHI8V0tVUkxSZWY+IHVybChBZG9wdFdLLCBVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJj
ZSgiZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5IiwgImh0bWwi
KSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKKworICAg
IFV0aWw6OnJ1bigmc3RhdGVUcmFja2VyLmZpbmlzaGVkKTsKK30KKworLy8gR2VvbG9jYXRpb24g
c3RhcnQgd2l0aG91dCBIaWdoIEFjY3VyYWN5LCB0aGVuIHJlcXVpcmVzIEhpZ2ggQWNjdXJhY3ku
CitzdHJ1Y3QgR2VvbG9jYXRpb25UcmFuc2l0aW9uVG9IaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXIg
OiBHZW9sb2NhdGlvblN0YXRlVHJhY2tlciB7CisgICAgYm9vbCBmaW5pc2hlZEZpcnN0U3RlcDsK
KyAgICBib29sIGZpbmlzaGVkOworCisgICAgR2VvbG9jYXRpb25UcmFuc2l0aW9uVG9IaWdoQWNj
dXJhY3lTdGF0ZVRyYWNrZXIoKQorICAgICAgICA6IGZpbmlzaGVkRmlyc3RTdGVwKGZhbHNlKQor
ICAgICAgICAsIGZpbmlzaGVkKGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgZXZlbnRzQ2hhbmdlZCgpCisgICAgeworICAgICAgICBzd2l0Y2ggKGV2ZW50cy5zaXplKCkp
IHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9uRXZl
bnQ6OkRpc2FibGVIaWdoQWNjdXJhY3ksIGV2ZW50c1swXSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9uRXZlbnQ6
OlN0YXJ0VXBkYXRpbmcsIGV2ZW50c1sxXSk7CisgICAgICAgICAgICBmaW5pc2hlZEZpcnN0U3Rl
cCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9uRXZlbnQ6OkVuYWJsZUhpZ2hBY2N1cmFjeSwgZXZlbnRz
WzJdKTsKKyAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOworICAgICAg
ICAgICAgZmluaXNoZWRGaXJzdFN0ZXAgPSB0cnVlOworICAgICAgICAgICAgZmluaXNoZWQgPSB0
cnVlOworICAgICAgICB9CisgICAgfQorfTsKKworVEVTVChXZWJLaXQyLCBHZW9sb2NhdGlvblRy
YW5zaXRpb25Ub0hpZ2hBY2N1cmFjeSkKK3sKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+
IGNvbnRleHQoQWRvcHRXSywgV0tDb250ZXh0Q3JlYXRlKCkpOworCisgICAgR2VvbG9jYXRpb25U
cmFuc2l0aW9uVG9IaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXIgc3RhdGVUcmFja2VyOworICAgIHNl
dHVwR2VvbG9jYXRpb25Qcm92aWRlcihjb250ZXh0LmdldCgpLCAmc3RhdGVUcmFja2VyKTsKKwor
ICAgIFBsYXRmb3JtV2ViVmlldyBsb3dBY2N1cmFjeVdlYlZpZXcoY29udGV4dC5nZXQoKSk7Cisg
ICAgc2V0dXBWaWV3KGxvd0FjY3VyYWN5V2ViVmlldyk7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxS
ZWY+IGxvd0FjY3VyYWN5VVJMKEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJn
ZW9sb2NhdGlvbldhdGNoUG9zaXRpb24iLCAiaHRtbCIpKTsKKyAgICBXS1BhZ2VMb2FkVVJMKGxv
d0FjY3VyYWN5V2ViVmlldy5wYWdlKCksIGxvd0FjY3VyYWN5VVJMLmdldCgpKTsKKyAgICBVdGls
OjpydW4oJnN0YXRlVHJhY2tlci5maW5pc2hlZEZpcnN0U3RlcCk7CisKKyAgICBQbGF0Zm9ybVdl
YlZpZXcgaGlnaEFjY3VyYWN5V2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBzZXR1cFZpZXco
aGlnaEFjY3VyYWN5V2ViVmlldyk7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGhpZ2hBY2N1
cmFjeVVSTChBZG9wdFdLLCBVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZ2VvbG9jYXRpb25X
YXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeSIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRV
UkwoaGlnaEFjY3VyYWN5V2ViVmlldy5wYWdlKCksIGhpZ2hBY2N1cmFjeVVSTC5nZXQoKSk7Cisg
ICAgVXRpbDo6cnVuKCZzdGF0ZVRyYWNrZXIuZmluaXNoZWQpOworfQorCisvLyBHZW9sb2NhdGlv
biBzdGFydCB3aXRoIEhpZ2ggQWNjdXJhY3ksIHRoZW4gc2hvdWxkIGZhbGwgYmFjayB0byBsb3cg
YWNjdXJhY3kuCitzdHJ1Y3QgR2VvbG9jYXRpb25UcmFuc2l0aW9uVG9Mb3dBY2N1cmFjeVN0YXRl
VHJhY2tlciA6IEdlb2xvY2F0aW9uU3RhdGVUcmFja2VyIHsKKyAgICBib29sIGZpbmlzaGVkRmly
c3RTdGVwOworICAgIGJvb2wgZmluaXNoZWQ7CisKKyAgICBHZW9sb2NhdGlvblRyYW5zaXRpb25U
b0xvd0FjY3VyYWN5U3RhdGVUcmFja2VyKCkKKyAgICAgICAgOiBmaW5pc2hlZEZpcnN0U3RlcChm
YWxzZSkKKyAgICAgICAgLCBmaW5pc2hlZChmYWxzZSkKKyAgICB7CisgICAgfQorCisgICAgdmly
dHVhbCB2b2lkIGV2ZW50c0NoYW5nZWQoKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChldmVudHMu
c2l6ZSgpKSB7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIEVYUEVDVF9FUShHZW9sb2Nh
dGlvbkV2ZW50OjpFbmFibGVIaWdoQWNjdXJhY3ksIGV2ZW50c1swXSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9u
RXZlbnQ6OlN0YXJ0VXBkYXRpbmcsIGV2ZW50c1sxXSk7CisgICAgICAgICAgICBmaW5pc2hlZEZp
cnN0U3RlcCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAg
ICAgICAgICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9uRXZlbnQ6OkRpc2FibGVIaWdoQWNjdXJhY3ks
IGV2ZW50c1syXSk7CisgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsK
KyAgICAgICAgICAgIGZpbmlzaGVkRmlyc3RTdGVwID0gdHJ1ZTsKKyAgICAgICAgICAgIGZpbmlz
aGVkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KK307CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlz
aExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgICpzdGF0aWNfY2FzdDxi
b29sKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpID0gdHJ1ZTsKK30KKworVEVTVChX
ZWJLaXQyLCBHZW9sb2NhdGlvblRyYW5zaXRpb25Ub0xvd0FjY3VyYWN5KQoreworICAgIFdLUmV0
YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7
CisKKyAgICBHZW9sb2NhdGlvblRyYW5zaXRpb25Ub0xvd0FjY3VyYWN5U3RhdGVUcmFja2VyIHN0
YXRlVHJhY2tlcjsKKyAgICBzZXR1cEdlb2xvY2F0aW9uUHJvdmlkZXIoY29udGV4dC5nZXQoKSwg
JnN0YXRlVHJhY2tlcik7CisKKyAgICBQbGF0Zm9ybVdlYlZpZXcgaGlnaEFjY3VyYWN5V2ViVmll
dyhjb250ZXh0LmdldCgpKTsKKyAgICBzZXR1cFZpZXcoaGlnaEFjY3VyYWN5V2ViVmlldyk7Cisg
ICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGhpZ2hBY2N1cmFjeVVSTChBZG9wdFdLLCBVdGlsOjpj
cmVhdGVVUkxGb3JSZXNvdXJjZSgiZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1
cmFjeSIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRVUkwoaGlnaEFjY3VyYWN5V2ViVmlldy5w
YWdlKCksIGhpZ2hBY2N1cmFjeVVSTC5nZXQoKSk7CisgICAgVXRpbDo6cnVuKCZzdGF0ZVRyYWNr
ZXIuZmluaXNoZWRGaXJzdFN0ZXApOworCisgICAgUGxhdGZvcm1XZWJWaWV3IGxvd0FjY3VyYWN5
V2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBzZXR1cFZpZXcobG93QWNjdXJhY3lXZWJWaWV3
KTsKKworICAgIGJvb2wgZmluaXNoZWRTZWNvbmRTdGVwID0gZmFsc2U7CisgICAgV0tQYWdlTG9h
ZGVyQ2xpZW50IGxvYWRlckNsaWVudDsKKyAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6
ZW9mKGxvYWRlckNsaWVudCkpOworICAgIGxvYWRlckNsaWVudC5jbGllbnRJbmZvID0gJmZpbmlz
aGVkU2Vjb25kU3RlcDsKKyAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lID0g
ZGlkRmluaXNoTG9hZEZvckZyYW1lOworICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQobG93
QWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgJmxvYWRlckNsaWVudCk7CisKKyAgICBXS1JldGFpblB0
cjxXS1VSTFJlZj4gbG93QWNjdXJhY3lVUkwoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVz
b3VyY2UoImdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbiIsICJodG1sIikpOworICAgIFdLUGFnZUxv
YWRVUkwobG93QWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgbG93QWNjdXJhY3lVUkwuZ2V0KCkpOwor
ICAgIFV0aWw6OnJ1bigmZmluaXNoZWRTZWNvbmRTdGVwKTsKKworICAgIFdLUmV0YWluUHRyPFdL
VVJMUmVmPiByZXNldFVybCA9IGFkb3B0V0soV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFi
b3V0OmJsYW5rIikpOworICAgIFdLUGFnZUxvYWRVUkwoaGlnaEFjY3VyYWN5V2ViVmlldy5wYWdl
KCksIHJlc2V0VXJsLmdldCgpKTsKKyAgICBVdGlsOjpydW4oJnN0YXRlVHJhY2tlci5maW5pc2hl
ZCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlv
bi5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dlb2xvY2F0aW9uR2V0
Q3VycmVudFBvc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDk5ZjUxNTM2YjhmODY3ZTAxYjAyMzA5
Njc2NDdiOGY0MGIyZDRiYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlvbi5odG1sCkBAIC0wLDAg
KzEsMyBAQAorPHNjcmlwdD4KK25hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRp
b24oZnVuY3Rpb24oKSB7IH0pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGln
aEFjY3VyYWN5Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9j
YXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjZhMzE0ODU4YWQxYzYwNjllMzk4YjNmYmYwZThhMDg4M2JjNjhjNgotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbkdldEN1cnJl
bnRQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbApAQCAtMCwwICsxLDMgQEAKKzxzY3JpcHQ+
CituYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKCkgeyB9
LCBmdW5jdGlvbigpIHt9LCB7IGVuYWJsZUhpZ2hBY2N1cmFjeTp0cnVlIH0pOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRp
b25XYXRjaFBvc2l0aW9uLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
Z2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ3ODhiNzgwNjhjZmM0
OTliNmQ5YjI0N2Q4MjAxMmEzZTRjMGE2OQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbldhdGNoUG9zaXRpb24uaHRtbApAQCAt
MCwwICsxLDMgQEAKKzxzY3JpcHQ+CituYXZpZ2F0b3IuZ2VvbG9jYXRpb24ud2F0Y2hQb3NpdGlv
bihmdW5jdGlvbigpIHsgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbldhdGNoUG9zaXRpb25XaXRoSGlnaEFjY3Vy
YWN5Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRpb25X
YXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiYTk4ZmNlN2Nm
NTcyYjEzYmVlMDZjMzZhNjM1YTllZDY1NmVkM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uV2l0aEhp
Z2hBY2N1cmFjeS5odG1sCkBAIC0wLDAgKzEsMyBAQAorPHNjcmlwdD4KK25hdmlnYXRvci5nZW9s
b2NhdGlvbi53YXRjaFBvc2l0aW9uKGZ1bmN0aW9uKCkgeyB9LCBmdW5jdGlvbigpIHt9LCB7IGVu
YWJsZUhpZ2hBY2N1cmFjeTp0cnVlIH0pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwCmluZGV4IDcxMTFkNDg3MjEx
YmM3OGJmYTUxZGNjMTZlZjhjYzY3YzQ3ODViNTguLjE2ODY2ZTliZmNhYjViMGU3ODViZWZjZWIz
M2NhYWRiOTM0YjA5YzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9j
YXRpb25Qcm92aWRlck1vY2suY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9j
YXRpb25Qcm92aWRlck1vY2suY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC01MCwxMSArNTAsMTIgQEAgR2VvbG9jYXRpb25Qcm92aWRl
ck1vY2s6Okdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrKFdLQ29udGV4dFJlZiBjb250ZXh0KQogewog
ICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyID0gV0tDb250ZXh0R2V0R2VvbG9jYXRpb25NYW5hZ2Vy
KGNvbnRleHQpOwogCi0gICAgV0tHZW9sb2NhdGlvblByb3ZpZGVyIHByb3ZpZGVyQ2FsbGJhY2sg
PSB7Ci0gICAgICAgIGtXS0dlb2xvY2F0aW9uUHJvdmlkZXJDdXJyZW50VmVyc2lvbiwKLSAgICAg
ICAgdGhpcywKLSAgICAgICAgc3RhcnRVcGRhdGluZ0NhbGxiYWNrLAotICAgICAgICBzdG9wVXBk
YXRpbmdDYWxsYmFjayB9OworICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlciBwcm92aWRlckNhbGxi
YWNrOworICAgIG1lbXNldCgmcHJvdmlkZXJDYWxsYmFjaywgMCwgc2l6ZW9mKFdLR2VvbG9jYXRp
b25Qcm92aWRlcikpOworICAgIHByb3ZpZGVyQ2FsbGJhY2sudmVyc2lvbiA9IDA7CisgICAgcHJv
dmlkZXJDYWxsYmFjay5jbGllbnRJbmZvID0gdGhpczsKKyAgICBwcm92aWRlckNhbGxiYWNrLnN0
YXJ0VXBkYXRpbmcgPSBzdGFydFVwZGF0aW5nQ2FsbGJhY2s7CisgICAgcHJvdmlkZXJDYWxsYmFj
ay5zdG9wVXBkYXRpbmcgPSBzdG9wVXBkYXRpbmdDYWxsYmFjazsKICAgICBXS0dlb2xvY2F0aW9u
TWFuYWdlclNldFByb3ZpZGVyKG1fZ2VvbG9jYXRpb25NYW5hZ2VyLCAmcHJvdmlkZXJDYWxsYmFj
ayk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216001</attachid>
            <date>2013-11-04 21:43:06 -0800</date>
            <delta_ts>2013-11-05 13:15:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123786-20131104214306.patch</filename>
            <type>text/plain</type>
            <size>44994</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTI3YTkxNmM0ZjgxM2Fi
ZjIyOWM0ZDg5NjM1Mjg4MzBjMTJmNGE2ZS4uODQ4OWE5ZWNjMzNiMGQ4ODJhOWQ3YTZiNDA2Zjdk
YTliZWE2YTU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEzLTExLTA0ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBBZGQg
YSBXZWJLaXQyIEFQSSBmb3IgR2VvbG9jYXRpb24ncyBoaWdoQWNjdXJhY3kKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzc4NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyBzdXBwb3J0IGZv
ciBoaWdoQWNjdXJhY3kgR2VvbG9jYXRpb24gd2l0aCBXZWJLaXQyLgorCisgICAgICAgIFRoZSBr
ZXkgaXMgdG8gdHJhY2sgd2hpY2ggcGFnZS9yZXF1ZXN0ZXIgbmVlZCB3aGF0IGtpbmQgb2YgZ2Vv
bG9jYXRpb24KKyAgICAgICAgaW4gb3JkZXIgdG8gY2hhbmdlIGJldHdlZW4gaGlnaCBhbmQgbG93
IGFjY3VyYWN5IGFzIHBhZ2VzIHJ1biBhbmQgZGlzYXBwZWFyLgorCisgICAgICAgIFdlYkdlb2xv
Y2F0aW9uTWFuYWdlciBhbmQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgaGF2ZSB2ZXJ5IHNp
bWlsYXIgcm9sZXMKKyAgICAgICAgYnV0IGZvciBkaWZmZXJlbnQgc291cmNlczoKKyAgICAgICAg
LVdlYkdlb2xvY2F0aW9uTWFuYWdlciB0cmFja3Mgd2hpY2ggbGl2ZSBwYWdlIHJlcXVpcmUgaGln
aCBhY2N1cmFjeSBnZW9sb2NhdGlvbi4KKyAgICAgICAgIFdoZW4gdGhlIHN0YXRlIGNoYW5nZXMs
IGl0IGZvcndhcmQgdGhlIGluZm9ybWF0aW9uIHRvIHRoZSBVSVByb2Nlc3MuCisgICAgICAgIC1X
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSB0cmFja3Mgd2hpY2ggV2ViQ29udGVudCBwcm9jZXNz
ZXMgbmVlZHMgaGlnaCBhY2N1cmFjeS4KKworICAgICAgICAqIFNoYXJlZC9BUElDbGllbnRUcmFp
dHMuY3BwOgorICAgICAgICAqIFNoYXJlZC9BUElDbGllbnRUcmFpdHMuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpyZW1vdmVSZXF1ZXN0ZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmlzVXBkYXRpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6aXNIaWdoQWNjdXJh
Y3lFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblByb3ZpZGVyOjpzZXRFbmFi
bGVIaWdoQWNjdXJhY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3Zp
ZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lz
dGVyV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6dW5y
ZWdpc3RlcldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6
OnNldEVuYWJsZUhpZ2hBY2N1cmFjeUZvclBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR2Vv
bG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdl
b2xvY2F0aW9uTWFuYWdlcjo6aXNVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xv
Y2F0aW9uTWFuYWdlcjo6aXNIaWdoQWNjdXJhY3lFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeSk6CisKIDIw
MTMtMTEtMDQgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dLMl0gVXBkYXRlIFdlYkdlb2xvY2F0aW9uTWFuYWdlciB0byBzdXBwb3J0IG11bHRpcGxl
IFdlYkNvbnRlbnQgcHJvY2Vzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJQ2xpZW50VHJhaXRzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFp
dHMuY3BwCmluZGV4IDk1MmFkMjY5YTMxYTQ2Y2RkM2M2MzQxNWRkNjRmMmY1ZTZhZTNmNTkuLjIx
MDcxY2QwY2ZiMjQ1ZDc0ZDEzNjZiMzMwYjM1ODI1NGFkZGRiMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDMsNCArMTAzLDkgQEAgY29uc3Qgc2l6ZV90
IEFQSUNsaWVudFRyYWl0czxXS0ljb25EYXRhYmFzZUNsaWVudD46OmludGVyZmFjZVNpemVzQnlW
ZXJzaW9uW10gPQogICAgIHNpemVvZihXS0ljb25EYXRhYmFzZUNsaWVudCkKIH07CiAKK2NvbnN0
IHNpemVfdCBBUElDbGllbnRUcmFpdHM8V0tHZW9sb2NhdGlvblByb3ZpZGVyPjo6aW50ZXJmYWNl
U2l6ZXNCeVZlcnNpb25bXSA9IHsKKyAgICBvZmZzZXRvZihXS0dlb2xvY2F0aW9uUHJvdmlkZXIs
IHNldEVuYWJsZUhpZ2hBY2N1cmFjeSksCisgICAgc2l6ZW9mKFdLR2VvbG9jYXRpb25Qcm92aWRl
cikKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNs
aWVudFRyYWl0cy5oCmluZGV4IGRmM2FhYmI5Yzg1ZTE2NzEwY2FkNGRhNjdhNGRmZDQ5MmMxNGM4
OTUuLjk3MTJiYTIwYmUwMDBiNWQxNmEwM2FmOWZiZjgxMTFjMjk3MTJjZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJX
S0J1bmRsZS5oIgogI2luY2x1ZGUgIldLQnVuZGxlUGFnZS5oIgogI2luY2x1ZGUgIldLQ29udGV4
dC5oIgorI2luY2x1ZGUgIldLR2VvbG9jYXRpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV0tJY29u
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJXS1BhZ2UuaCIKIApAQCAtODcsNiArODgsMTAgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLSWNvbkRhdGFiYXNlQ2xpZW50PiB7CiAg
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvblsyXTsKIH07CiAK
K3RlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS0dlb2xvY2F0aW9uUHJvdmlkZXI+
IHsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGludGVyZmFjZVNpemVzQnlWZXJzaW9uWzJdOwor
fTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBBUElDbGllbnRUcmFpdHNf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRp
b25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlv
bk1hbmFnZXIuaAppbmRleCA3ZjljYjY4OTEwOWEzOTc3MGZmMTJhMDUyZWZlMTNhYzYyNzJlM2E0
Li4yYWUxNTkzMWVhZmU4MTMwM2I3NGYwODFjNTk1YmJmODE4YWM2YWRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzUsMTYgKzM1LDIxIEBAIGV4dGVybiAiQyIgewogLy8gUHJvdmlkZXIuCiB0
eXBlZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2sp
KFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdG9wVXBk
YXRpbmdDYWxsYmFjaykoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2Vy
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLR2VvbG9jYXRpb25Q
cm92aWRlclNldEVuYWJsZUhpZ2hBY2N1cmFjeUNhbGxiYWNrKShXS0dlb2xvY2F0aW9uTWFuYWdl
clJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIGJvb2wgZW5hYmxlZCwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiAKIHN0cnVjdCBXS0dlb2xvY2F0aW9uUHJvdmlkZXIgewogICAgIGludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVyc2lvbjsKICAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CiAgICAgV0tHZW9sb2NhdGlvblBy
b3ZpZGVyU3RhcnRVcGRhdGluZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFy
dFVwZGF0aW5nOwogICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlclN0b3BVcGRhdGluZ0NhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcFVwZGF0aW5nOworCisgICAgLy8gVmVyc2lv
biAxLgorICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlclNldEVuYWJsZUhpZ2hBY2N1cmFjeUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlSGlnaEFjY3VyYWN5OworCiB9OwogdHlwZWRl
ZiBzdHJ1Y3QgV0tHZW9sb2NhdGlvblByb3ZpZGVyIFdLR2VvbG9jYXRpb25Qcm92aWRlcjsKIAot
ZW51bSB7IGtXS0dlb2xvY2F0aW9uUHJvdmlkZXJDdXJyZW50VmVyc2lvbiA9IDAgfTsKK2VudW0g
eyBrV0tHZW9sb2NhdGlvblByb3ZpZGVyQ3VycmVudFZlcnNpb24gPSAxIH07CiAKIFdLX0VYUE9S
VCBXS1R5cGVJRCBXS0dlb2xvY2F0aW9uTWFuYWdlckdldFR5cGVJRCgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNw
cAppbmRleCA2NGVkZjhhYzA3Y2NjM2YyYjYyZDA4NDUzMTIyYWYzZDdhNzAzNDk3Li41Y2RhNzFh
Y2IyY2Q5YmEyMWEwMWE2MTdkNjRlM2MwMTkwMmMxM2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAKQEAgLTk0
LDEwICs5NCwxMiBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Ojpwcm92aWRlckRp
ZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZwogCiB2b2lkIFdlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5OjpzdGFydFVwZGF0aW5nKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24pCiB7Ci0gICAgYm9vbCB3YXNVcGRhdGluZyA9ICFtX3VwZGF0ZVJlcXVlc3RlcnMuaXNF
bXB0eSgpOworICAgIGJvb2wgd2FzVXBkYXRpbmcgPSBpc1VwZGF0aW5nKCk7CiAgICAgbV91cGRh
dGVSZXF1ZXN0ZXJzLmFkZChjb25uZWN0aW9uLT5jbGllbnQoKSk7Ci0gICAgaWYgKCF3YXNVcGRh
dGluZykKKyAgICBpZiAoIXdhc1VwZGF0aW5nKSB7CisgICAgICAgIG1fcHJvdmlkZXIuc2V0RW5h
YmxlSGlnaEFjY3VyYWN5KHRoaXMsIGlzSGlnaEFjY3VyYWN5RW5hYmxlZCgpKTsKICAgICAgICAg
bV9wcm92aWRlci5zdGFydFVwZGF0aW5nKHRoaXMpOworICAgIH0KIH0KIAogdm9pZCBXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eTo6c3RvcFVwZGF0aW5nKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24pCkBAIC0xMDcsMTAgKzEwOSwzNCBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5OjpzdG9wVXBkYXRpbmcoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIAog
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6cmVtb3ZlUmVxdWVzdGVyKGNvbnN0IENv
cmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudCogY2xpZW50KQogewotICAgIGJvb2wgd2FzVXBkYXRp
bmcgPSAhbV91cGRhdGVSZXF1ZXN0ZXJzLmlzRW1wdHkoKTsKKyAgICBib29sIHdhc1VwZGF0aW5n
ID0gaXNVcGRhdGluZygpOworICAgIEFTU0VSVCh3YXNVcGRhdGluZyk7CisgICAgYm9vbCBoaWdo
QWNjdXJhY3lXYXNFbmFibGVkID0gaXNIaWdoQWNjdXJhY3lFbmFibGVkKCk7CisKKyAgICBtX2hp
Z2hBY2N1cmFjeVJlcXVlc3RlcnMucmVtb3ZlKGNsaWVudCk7CiAgICAgbV91cGRhdGVSZXF1ZXN0
ZXJzLnJlbW92ZShjbGllbnQpOwotICAgIGlmICh3YXNVcGRhdGluZyAmJiBtX3VwZGF0ZVJlcXVl
c3RlcnMuaXNFbXB0eSgpKQorCisgICAgaWYgKHdhc1VwZGF0aW5nICYmICFpc1VwZGF0aW5nKCkp
CiAgICAgICAgIG1fcHJvdmlkZXIuc3RvcFVwZGF0aW5nKHRoaXMpOworICAgIGVsc2UgeworICAg
ICAgICBib29sIGhpZ2hBY2N1cmFjeVNob3VsZEJlRW5hYmxlZCA9IGlzSGlnaEFjY3VyYWN5RW5h
YmxlZCgpOworICAgICAgICBpZiAoaGlnaEFjY3VyYWN5U2hvdWxkQmVFbmFibGVkICE9IGhpZ2hB
Y2N1cmFjeVdhc0VuYWJsZWQpCisgICAgICAgICAgICBtX3Byb3ZpZGVyLnNldEVuYWJsZUhpZ2hB
Y2N1cmFjeSh0aGlzLCBoaWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpOworICAgIH0KK30KKwor
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGJvb2wgZW5hYmxlZCkKK3sKKyAgICBib29s
IGhpZ2hBY2N1cmFjeVdhc0VuYWJsZWQgPSBpc0hpZ2hBY2N1cmFjeUVuYWJsZWQoKTsKKworICAg
IGlmIChlbmFibGVkKQorICAgICAgICBtX2hpZ2hBY2N1cmFjeVJlcXVlc3RlcnMuYWRkKGNvbm5l
Y3Rpb24tPmNsaWVudCgpKTsKKyAgICBlbHNlCisgICAgICAgIG1faGlnaEFjY3VyYWN5UmVxdWVz
dGVycy5yZW1vdmUoY29ubmVjdGlvbi0+Y2xpZW50KCkpOworCisgICAgYm9vbCBoaWdoQWNjdXJh
Y3lTaG91bGRCZUVuYWJsZWQgPSBpc0hpZ2hBY2N1cmFjeUVuYWJsZWQoKTsKKyAgICBpZiAoaXNV
cGRhdGluZygpICYmIGhpZ2hBY2N1cmFjeVdhc0VuYWJsZWQgIT0gaGlnaEFjY3VyYWN5U2hvdWxk
QmVFbmFibGVkKQorICAgICAgICBtX3Byb3ZpZGVyLnNldEVuYWJsZUhpZ2hBY2N1cmFjeSh0aGlz
LCBoaWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5LmgKaW5kZXggODZlNDliNTQ0NDkyNzVjNjRmNmZkMzI4MTlmODVhMTJlMTM3ZWVm
Ny4uOTA3OWY5OWE4ZjNlNWI0NGM1MGJhYjZhMjQ4YTAwMGJlY2QzMzEyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgK
QEAgLTY1LDExICs2NSwxNiBAQCBwcml2YXRlOgogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKIAorICAgIGJvb2wgaXNV
cGRhdGluZygpIGNvbnN0IHsgcmV0dXJuICFtX3VwZGF0ZVJlcXVlc3RlcnMuaXNFbXB0eSgpOyB9
CisgICAgYm9vbCBpc0hpZ2hBY2N1cmFjeUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiAhbV9oaWdo
QWNjdXJhY3lSZXF1ZXN0ZXJzLmlzRW1wdHkoKTsgfQorCiAgICAgdm9pZCBzdGFydFVwZGF0aW5n
KENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2b2lkIHN0b3BVcGRhdGluZyhDb3JlSVBDOjpD
b25uZWN0aW9uKik7CiAgICAgdm9pZCByZW1vdmVSZXF1ZXN0ZXIoY29uc3QgQ29yZUlQQzo6Q29u
bmVjdGlvbjo6Q2xpZW50Kik7CisgICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIGJvb2wpOwogCiAgICAgSGFzaFNldDxjb25zdCBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQqPiBtX3VwZGF0ZVJlcXVlc3RlcnM7CisgICAgSGFzaFNldDxjb25zdCBD
b3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQqPiBtX2hpZ2hBY2N1cmFjeVJlcXVlc3RlcnM7CiAK
ICAgICBXZWJHZW9sb2NhdGlvblByb3ZpZGVyIG1fcHJvdmlkZXI7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE1NDA2Nzc5ZmNlZmE5ZWMxZTZjNTVmNjljMDY0YjkzYmE0
OGM3MGIuLjllMDhhNmE2ZTU4M2NkMWNiNGJhNjAwNDlkYTY4ZjFjNWUxODk5NjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDQgKzIzLDUgQEAKIG1lc3NhZ2VzIC0+IFdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5IHsKICAgICBTdGFydFVwZGF0aW5nKCkgV2FudHNDb25u
ZWN0aW9uCiAgICAgU3RvcFVwZGF0aW5nKCkgV2FudHNDb25uZWN0aW9uCisgICAgU2V0RW5hYmxl
SGlnaEFjY3VyYWN5KGJvb2wgZW5hYmxlZCkgV2FudHNDb25uZWN0aW9uCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKaW5kZXgg
YzM4MjIzNWM3Y2QzNzlhMDJiMDVhZWVhMzI5ZmRkYTBhYjYzMDg2Ni4uMGI4NjRjY2YzYThiNWQ4
ODZjN2VjYTg0MWRiOTA5N2YwYTBhOGViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDcsNCArNDcsMTIgQEAgdm9pZCBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyOjpzdG9wVXBkYXRpbmcoV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHkqIGdlb2xvY2F0aW8KICAgICBtX2NsaWVudC5zdG9wVXBkYXRpbmcodG9BUEkoZ2VvbG9j
YXRpb25NYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAKK3ZvaWQgV2ViR2VvbG9j
YXRpb25Qcm92aWRlcjo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5KiBnZW9sb2NhdGlvbk1hbmFnZXIsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICBpZiAoIW1f
Y2xpZW50LnNldEVuYWJsZUhpZ2hBY2N1cmFjeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
bGllbnQuc2V0RW5hYmxlSGlnaEFjY3VyYWN5KHRvQVBJKGdlb2xvY2F0aW9uTWFuYWdlciksIGVu
YWJsZWQsIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5o
CmluZGV4IDE3NzY4NzlkNWNkNjVjZWIwY2ZhYWU0ZGM4YzU5YWU2MzYzYmNkMzguLmYyNTBjODEw
N2I1MDFjYTUxMTA3ZmIyNTJlZTZjNjJjNmExYThmYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNiArMzgsNyBAQCBjbGFz
cyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS0dlb2xvY2F0aW9u
UHJvdmlkZXIsIGtXS0dlb2xvYwogcHVibGljOgogICAgIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eSopOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKFdlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5Kik7CisgICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqLCBib29sKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCmluZGV4IGFhNDJmNWE2ZGRmMDU3Mjhk
YTNhOWQxMDJlZmJlOTRkYjkzNGQ3NmYuLmM4ZjhlMWY4NWE1MGJjMmFiZDdlZGVjMzc0YzljYjg1
OGYyYjMyYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRp
b24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKQEAgLTUxLDI2ICs1MSw0
NCBAQCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OldlYkdlb2xvY2F0aW9uTWFuYWdlcihXZWJQcm9j
ZXNzKiBwcm9jZXNzKQogICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9
CiAKLVdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6fldlYkdlb2xvY2F0aW9uTWFuYWdlcigpCi17Ci19
Ci0KIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSog
cGFnZSkKIHsKLSAgICBib29sIHdhc0VtcHR5ID0gbV9wYWdlU2V0LmlzRW1wdHkoKTsKKyAgICBi
b29sIHdhc1VwZGF0aW5nID0gaXNVcGRhdGluZygpOwogCiAgICAgbV9wYWdlU2V0LmFkZChwYWdl
KTsKLSAgICAKLSAgICBpZiAod2FzRW1wdHkpCisKKyAgICBpZiAoIXdhc1VwZGF0aW5nKQogICAg
ICAgICBtX3Byb2Nlc3MtPnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpTdGFydFVwZGF0aW5nKCksIDApOwogfQogCiB2
b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6dW5yZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFn
ZSkKIHsKKyAgICBib29sIGhpZ2hBY2N1cmFjeVdhc0VuYWJsZWQgPSBpc0hpZ2hBY2N1cmFjeUVu
YWJsZWQoKTsKKwogICAgIG1fcGFnZVNldC5yZW1vdmUocGFnZSk7CisgICAgbV9oaWdoQWNjdXJh
Y3lQYWdlU2V0LnJlbW92ZShwYWdlKTsKIAotICAgIGlmIChtX3BhZ2VTZXQuaXNFbXB0eSgpKQor
ICAgIGlmICghaXNVcGRhdGluZygpKQogICAgICAgICBtX3Byb2Nlc3MtPnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpT
dG9wVXBkYXRpbmcoKSwgMCk7CisgICAgZWxzZSB7CisgICAgICAgIGJvb2wgaGlnaEFjY3VyYWN5
U2hvdWxkQmVFbmFibGVkID0gaXNIaWdoQWNjdXJhY3lFbmFibGVkKCk7CisgICAgICAgIGlmICho
aWdoQWNjdXJhY3lXYXNFbmFibGVkICE9IGhpZ2hBY2N1cmFjeVNob3VsZEJlRW5hYmxlZCkKKyAg
ICAgICAgICAgIG1fcHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlNldEVuYWJsZUhpZ2hBY2N1cmFjeSho
aWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpLCAwKTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpzZXRFbmFibGVIaWdoQWNjdXJhY3lGb3JQYWdlKFdlYlBhZ2UqIHBh
Z2UsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICBib29sIGhpZ2hBY2N1cmFjeVdhc0VuYWJsZWQgPSBp
c0hpZ2hBY2N1cmFjeUVuYWJsZWQoKTsKKworICAgIGlmIChlbmFibGVkKQorICAgICAgICBtX2hp
Z2hBY2N1cmFjeVBhZ2VTZXQuYWRkKHBhZ2UpOworICAgIGVsc2UKKyAgICAgICAgbV9oaWdoQWNj
dXJhY3lQYWdlU2V0LnJlbW92ZShwYWdlKTsKKworICAgIGJvb2wgaGlnaEFjY3VyYWN5U2hvdWxk
QmVFbmFibGVkID0gaXNIaWdoQWNjdXJhY3lFbmFibGVkKCk7CisgICAgaWYgKGhpZ2hBY2N1cmFj
eVdhc0VuYWJsZWQgIT0gaGlnaEFjY3VyYWN5U2hvdWxkQmVFbmFibGVkKQorICAgICAgICBtX3By
b2Nlc3MtPnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5OjpTZXRFbmFibGVIaWdoQWNjdXJhY3koaGlnaEFjY3VyYWN5U2hv
dWxkQmVFbmFibGVkKSwgMCk7CiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRD
aGFuZ2VQb3NpdGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhJiBkYXRhKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24v
V2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKaW5kZXggNGExZDczYWUwZmYwOGViYmQ1YWExYmU2Zjgy
N2NmM2JlMDRiMjUzMi4uZmVmYzA2ZjM1MDgwNGM5NjAyZjQzZjI1ZDhiZDdkYzZjZDMwZTBlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0
aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC00NywxMiArNDcsMTIgQEAgY2xhc3MgV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMg
Q29yZUlQQzo6TWVzc2EKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJHZW9sb2NhdGlvbk1h
bmFnZXIpOwogcHVibGljOgogICAgIGV4cGxpY2l0IFdlYkdlb2xvY2F0aW9uTWFuYWdlcihXZWJQ
cm9jZXNzKik7Ci0gICAgfldlYkdlb2xvY2F0aW9uTWFuYWdlcigpOwogCiAgICAgc3RhdGljIGNv
bnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKICAgICB2b2lkIHJlZ2lzdGVyV2ViUGFnZShX
ZWJQYWdlKik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKik7CisgICAgdm9p
ZCBzZXRFbmFibGVIaWdoQWNjdXJhY3lGb3JQYWdlKFdlYlBhZ2UqLCBib29sKTsKIAogICAgIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKIApAQCAtNjAsMTEg
KzYwLDE1IEBAIHByaXZhdGU6CiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwogCisgICAgYm9vbCBpc1VwZGF0aW5nKCkg
Y29uc3QgeyByZXR1cm4gIW1fcGFnZVNldC5pc0VtcHR5KCk7IH0KKyAgICBib29sIGlzSGlnaEFj
Y3VyYWN5RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2hpZ2hBY2N1cmFjeVBhZ2VTZXQuaXNF
bXB0eSgpOyB9CisKICAgICB2b2lkIGRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IFdlYkdlb2xvY2F0
aW9uUG9zaXRpb246OkRhdGEmKTsKICAgICB2b2lkIGRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9u
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgIFdlYlByb2Nlc3MqIG1fcHJvY2Vz
czsKICAgICBIYXNoU2V0PFdlYlBhZ2UqPiBtX3BhZ2VTZXQ7CisgICAgSGFzaFNldDxXZWJQYWdl
Kj4gbV9oaWdoQWNjdXJhY3lQYWdlU2V0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdl
b2xvY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCmluZGV4IGY5YTM2ZGRhNmVhZjk2MTk4ODIz
ZjFhYjYxNDkwNGY2MDg0NWZjOTkuLmMyMjExMDM4Mzg0OGMzNmJmNjQxZjY4ZmZhOGQ1ZjdiOWEw
YWNlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OCw4ICs1OCw5IEBA
IHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZygpCiAgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuc3VwcGxlbWVudDxXZWJHZW9sb2NhdGlvbk1hbmFnZXI+KCktPnVucmVnaXN0
ZXJXZWJQYWdlKG1fcGFnZSk7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVu
YWJsZUhpZ2hBY2N1cmFjeShib29sKQordm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6c2V0RW5h
YmxlSGlnaEFjY3VyYWN5KGJvb2wgZW5hYmxlZCkKIHsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5zdXBwbGVtZW50PFdlYkdlb2xvY2F0aW9uTWFuYWdlcj4oKS0+c2V0RW5hYmxlSGlnaEFjY3Vy
YWN5Rm9yUGFnZShtX3BhZ2UsIGVuYWJsZWQpOwogfQogCiBHZW9sb2NhdGlvblBvc2l0aW9uKiBX
ZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYTc3NWE3YmQ2NTIxNWY1OGI0ZmNlMzZm
ODg1ZjAxYjVkMzY3ODI2Li42MDk3NzVlM2E4NjdhNzU3MmQ5ZTY2Nzc0MmM4ODFhMTg1ZTlmMzky
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDIgQEAKKzIwMTMtMTEtMDQgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJr
aXQub3JnPgorCisgICAgICAgIFtXSzJdIEFkZCBhIFdlYktpdDIgQVBJIGZvciBHZW9sb2NhdGlv
bidzIGhpZ2hBY2N1cmFjeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIzNzg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGJhc2ljIHRlc3RpbmcgZm9yIHRoZSBHZW9sb2NhdGlvbiBBUEkgKHN0YXJ0
LCBzdG9wIGFuZCBjaGFuZ2UgYWNjdXJhY3kpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9H
TlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtRWZsLmNtYWtl
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0dlb2xvY2F0aW9uLmNwcDogQWRk
ZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6Okdlb2xvY2F0aW9uU3RhdGVUcmFja2VyOjp+R2VvbG9jYXRpb25TdGF0ZVRyYWNr
ZXIpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R2VvbG9jYXRpb25TdGF0ZVRyYWNrZXI6OmV2
ZW50c0NoYW5nZWQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R2VvbG9jYXRpb25TdGF0ZVRy
YWNrZXI6OnN0YXJ0VXBkYXRpbmdDYWxsYmFjayk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpH
ZW9sb2NhdGlvblN0YXRlVHJhY2tlcjo6c3RvcFVwZGF0aW5nQ2FsbGJhY2spOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6R2VvbG9jYXRpb25TdGF0ZVRyYWNrZXI6OnNldEVuYWJsZUhpZ2hBY2N1
cmFjeUNhbGxiYWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRlY2lkZVBvbGljeUZvckdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsQmFjayk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpzZXR1cEdlb2xvY2F0aW9uUHJvdmlkZXIpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
c2V0dXBWaWV3KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Okdlb2xvY2F0aW9uQmFzaWNTdGF0
ZVRyYWNrZXI6Okdlb2xvY2F0aW9uQmFzaWNTdGF0ZVRyYWNrZXIpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6R2VvbG9jYXRpb25CYXNpY1N0YXRlVHJhY2tlcjo6ZXZlbnRzQ2hhbmdlZCk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpHZW9sb2NhdGlvbkJhc2ljV2l0aEhpZ2hBY2N1cmFjeVN0
YXRlVHJhY2tlcjo6R2VvbG9jYXRpb25CYXNpY1dpdGhIaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXIp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R2VvbG9jYXRpb25CYXNpY1dpdGhIaWdoQWNjdXJh
Y3lTdGF0ZVRyYWNrZXI6OmV2ZW50c0NoYW5nZWQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
R2VvbG9jYXRpb25UcmFuc2l0aW9uVG9IaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXI6Okdlb2xvY2F0
aW9uVHJhbnNpdGlvblRvSGlnaEFjY3VyYWN5U3RhdGVUcmFja2VyKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6Okdlb2xvY2F0aW9uVHJhbnNpdGlvblRvSGlnaEFjY3VyYWN5U3RhdGVUcmFja2Vy
OjpldmVudHNDaGFuZ2VkKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Okdlb2xvY2F0aW9uVHJh
bnNpdGlvblRvTG93QWNjdXJhY3lTdGF0ZVRyYWNrZXI6Okdlb2xvY2F0aW9uVHJhbnNpdGlvblRv
TG93QWNjdXJhY3lTdGF0ZVRyYWNrZXIpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6R2VvbG9j
YXRpb25UcmFuc2l0aW9uVG9Mb3dBY2N1cmFjeVN0YXRlVHJhY2tlcjo6ZXZlbnRzQ2hhbmdlZCk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbkdldEN1cnJlbnRQb3Np
dGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
Z2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbldhdGNo
UG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL2dlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbDogQWRkZWQu
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHA6
CisgICAgICAgIChXVFI6Okdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrOjpHZW9sb2NhdGlvblByb3Zp
ZGVyTW9jayk6CisKIDIwMTMtMTEtMDQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KIAogICAgICAgICBNb3JlIFdLUmVtb3RlT2JqZWN0UmVnaXN0cnkgd29yawpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvR05VbWFrZWZpbGUuYW0KaW5kZXggZGUyOTFiNzA3ZmRlODZlNmZlZmRiN2NlNTkzNDg4
MjBmZDkwMWVkNC4uMDM0MjhhYTcyMjU5MjE5MTY1MTQwYzRlYTU5OWFlMjJjMjc2MThkOCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtCkBAIC0yNjIsNiArMjYyLDcgQEAgUHJvZ3JhbXNf
VGVzdFdlYktpdEFQSV9UZXN0V2ViS2l0Ml9TT1VSQ0VTID0gXAogCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9Gb3JjZVJlcGFpbnQuY3BwIFwKIAlUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvRnJhbWVNSU1FVHlwZUhUTUwuY3BwIFwKIAlUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvRnJhbWVNSU1FVHlwZVBORy5jcHAgXAorCVRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9HZW9sb2NhdGlvbi5jcHAgXAogCVRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9HZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFD
YWxsYmFjay5jcHAgXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9IaXRUZXN0
UmVzdWx0Tm9kZUhhbmRsZS5jcHAgXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9JbmplY3RlZEJ1bmRsZUJhc2ljLmNwcCBcCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1BsYXRmb3JtRWZsLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUVmbC5j
bWFrZQppbmRleCAxNDk5ZDQwYzMwODZmOWViNWM0Mjc4ZDc4MzlkYWQ2NGRjODE5YzNlLi43ZmZj
NmNmOTAwNjdmMjExZDAzOWM0ZDhjZGM0MjE0NDk4OWRhM2RhIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
UGxhdGZvcm1FZmwuY21ha2UKQEAgLTcxLDYgKzcxLDcgQEAgc2V0KHRlc3Rfd2Via2l0Ml9hcGlf
QklOQVJJRVMKICAgICBGb3JjZVJlcGFpbnQKICAgICBGcmFtZU1JTUVUeXBlSFRNTAogICAgIEZy
YW1lTUlNRVR5cGVQTkcKKyAgICBHZW9sb2NhdGlvbgogICAgIEdldEluamVjdGVkQnVuZGxlSW5p
dGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrCiAgICAgSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUK
ICAgICBJbmplY3RlZEJ1bmRsZUJhc2ljCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFr
ZQppbmRleCBiM2Q4MWM1NGJiNjIyZjk3NDQ1M2IzMDcwYTBmYmFkODkzYjJhZGMwLi5lM2IzMmY1
Zjg1NzE3YjljYmQ2MTZiNjVmZjI5ODJlOTc4YWFlNDM5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxh
dGZvcm1HVEsuY21ha2UKQEAgLTgxLDYgKzgxLDcgQEAgc2V0KHRlc3Rfd2Via2l0Ml9hcGlfQklO
QVJJRVMKICAgICBGb3JjZVJlcGFpbnQKICAgICBGcmFtZU1JTUVUeXBlSFRNTAogICAgIEZyYW1l
TUlNRVR5cGVQTkcKKyAgICBHZW9sb2NhdGlvbgogICAgIEdldEluamVjdGVkQnVuZGxlSW5pdGlh
bGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrCiAgICAgSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUKICAg
ICBJbmplY3RlZEJ1bmRsZUJhc2ljCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFkYTM2ZGMx
OThkOTc3MWM3NzExYjNkNzM0NzljNmYyZjBmNmFkMjYuLjRjYjMwZjBlNmU4MDI0MjI5ODM4OGU3
NDVlYWU4NDJlOGVmMmI3MGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MSw2ICs0MSwx
MSBAQAogCQkyNkRGNUE2MzE1QTJBMjdFMDAzNjg5QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJj
ZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI2REY1QTYxMTVBMkEyMkIwMDM2ODlDMiAvKiBDYW5jZWxMb2FkRnJv
bVJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgKi87IH07CiAJCTI2RjFCNDQ0MTVDQTQzNEYwMEQx
RTRCRiAvKiBBdG9taWNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjZGMUI0NDIxNUNBNDM0RjAwRDFFNEJGIC8qIEF0b21pY1N0cmluZy5j
cHAgKi87IH07CiAJCTI2RjFCNDQ1MTVDQTQzNEYwMEQxRTRCRiAvKiBTdHJpbmdJbXBsLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjFCNDQzMTVD
QTQzNEYwMEQxRTRCRiAvKiBTdHJpbmdJbXBsLmNwcCAqLzsgfTsKKwkJMjZGNTJFQUIxODI4NzI2
MDAwMjNENDEyIC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjUyRUFBMTgyODcyNjAwMDIzRDQxMiAvKiBHZW9sb2NhdGlv
bi5jcHAgKi87IH07CisJCTI2RjUyRUFEMTgyODgyN0IwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbkdl
dEN1cnJlbnRQb3NpdGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjUyRUFDMTgyODgyMEUwMDIzRDQxMiAvKiBnZW9sb2NhdGlv
bkdldEN1cnJlbnRQb3NpdGlvbi5odG1sICovOyB9OworCQkyNkY1MkVBRjE4Mjg4QzIzMDAyM0Q0
MTIgLyogZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZG
NTJFQUUxODI4OEMwNDAwMjNENDEyIC8qIGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uV2l0
aEhpZ2hBY2N1cmFjeS5odG1sICovOyB9OworCQkyNkY1MkVCMjE4Mjg4RjI0MDAyM0Q0MTIgLyog
Z2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZGNTJFQjAxODI4OEYwRjAwMjNENDEyIC8qIGdl
b2xvY2F0aW9uV2F0Y2hQb3NpdGlvbi5odG1sICovOyB9OworCQkyNkY1MkVCMzE4Mjg4RjI0MDAy
M0Q0MTIgLyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjUy
RUIxMTgyODhGMEYwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb25XaXRoSGlnaEFj
Y3VyYWN5Lmh0bWwgKi87IH07CiAJCTI5MEE5QkI3MTczNURFOEEwMEQ3MUJCQyAvKiBDbG9zZU5l
d1dpbmRvd0luTmF2aWdhdGlvblBvbGljeURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwQTlCQjUxNzM1REU4QTAwRDcxQkJDIC8qIENs
b3NlTmV3V2luZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW0gKi87IH07CiAJCTI5MEE5
QkI5MTczNUY2MzgwMEQ3MUJCQyAvKiBPcGVuTmV3V2luZG93Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwQTlCQjgxNzM1RjQyMzAw
RDcxQkJDIC8qIE9wZW5OZXdXaW5kb3cuaHRtbCAqLzsgfTsKIAkJMjkwRjQyNzUxNzJBMjIxQzAw
OTM5RkYwIC8qIGN1c3RvbS1wcm90b2NvbC1zeW5jLXhoci5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MEY0Mjc0MTcyQTFGREUwMDkz
OUZGMCAvKiBjdXN0b20tcHJvdG9jb2wtc3luYy14aHIuaHRtbCAqLzsgfTsKQEAgLTI5MCw2ICsy
OTUsMTAgQEAKIAkJCQlCQzJEMDA2NDEyQUEwNENFMDBFNzMyQTMgLyogZmlsZS13aXRoLWFuY2hv
ci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUM1MTAxQzRGMTc2QjhEOTIwMEVFOUIx
NSAvKiBmaW5kUmFuZ2VzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUEwMkM4NzAx
MjVENENGRDAwRTNGNEJEIC8qIGZpbmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQky
NkY1MkVCMjE4Mjg4RjI0MDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJMjZGNTJFQjMxODI4OEYyNDAwMjNENDEyIC8qIGdl
b2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKKwkJCQkyNkY1MkVBRjE4Mjg4QzIzMDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25HZXRD
dXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CisJCQkJMjZGNTJFQUQxODI4ODI3QjAwMjNENDEyIC8qIGdlb2xvY2F0aW9uR2V0Q3VycmVudFBv
c2l0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOUI0RjhGQTcxNTlENTJERDAw
MkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJOUIyNkZDQ0ExNTlEMTZERTAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5h
bWVkSXRlbS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNFMTRGMUE0MTgxODczQjAw
MDFDMjcwNSAvKiBXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxDcmFzaC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLApAQCAtMzU1LDYgKzM2NCwxMSBAQAogCQkyNkRGNUE2MTE1QTJBMjJC
MDAzNjg5QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkYxQjQ0MjE1Q0E0MzRGMDBE
MUU0QkYgLyogQXRvbWljU3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEF0b21pY1N0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2
RjFCNDQzMTVDQTQzNEYwMEQxRTRCRiAvKiBTdHJpbmdJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ0ltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyNkY1MkVBQTE4Mjg3MjYwMDAyM0Q0MTIgLyogR2VvbG9jYXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VvbG9jYXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNkY1MkVBQzE4Mjg4MjBFMDAyM0Q0MTIgLyogZ2Vv
bG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb24uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9IGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTI2RjUyRUFFMTgyODhDMDQwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbkdldEN1
cnJlbnRQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9IGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1s
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNkY1MkVCMDE4Mjg4RjBGMDAyM0Q0MTIg
LyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb24uaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMjZGNTJFQjExODI4OEYwRjAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3Np
dGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGdl
b2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjkwQTlCQjUxNzM1REU4QTAwRDcxQkJDIC8qIENsb3NlTmV3V2lu
ZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDbG9zZU5ld1dpbmRvd0luTmF2aWdhdGlvblBvbGljeURlbGVnYXRl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTBBOUJCODE3MzVGNDIzMDBENzFC
QkMgLyogT3Blbk5ld1dpbmRvdy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gT3Bl
bk5ld1dpbmRvdy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTBGNDI3NDE3
MkExRkRFMDA5MzlGRjAgLyogY3VzdG9tLXByb3RvY29sLXN5bmMteGhyLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAiY3VzdG9tLXByb3RvY29sLXN5bmMteGhyLmh0bWwiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzUwLDYgKzc2NCw3IEBACiAJCQkJMUFEQkVGQUQx
MzBDNjg5QzAwRDYxRDE5IC8qIEZvcmNlUmVwYWludC5jcHAgKi8sCiAJCQkJQkNCRDM3MEYxMjVB
QTJFQjAwRDJDMjlGIC8qIEZyYW1lTUlNRVR5cGVIVE1MLmNwcCAqLywKIAkJCQlCQ0JEMzc2MDEy
NUFCQ0ZFMDBEMkMyOUYgLyogRnJhbWVNSU1FVHlwZVBORy5jcHAgKi8sCisJCQkJMjZGNTJFQUEx
ODI4NzI2MDAwMjNENDEyIC8qIEdlb2xvY2F0aW9uLmNwcCAqLywKIAkJCQlGNjYwQUEwQzE1QTVG
MDYxMDAzQTEyNDMgLyogR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2Fs
bGJhY2suY3BwICovLAogCQkJCUY2NjBBQTBGMTVBNUY2MjQwMDNBMTI0MyAvKiBHZXRJbmplY3Rl
ZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja19CdW5kbGUuY3BwICovLAogCQkJ
CTRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAg
Ki8sCkBAIC04NjEsNiArODc2LDEwIEBACiAJCQkJQkMyRDAwNEExMkE5RkVCMzAwRTczMkEzIC8q
IGZpbGUtd2l0aC1hbmNob3IuaHRtbCAqLywKIAkJCQkxQTAyQzg0QjEyNUQ0QTVFMDBFM0Y0QkQg
LyogZmluZC5odG1sICovLAogCQkJCUM1MTAxQzRFMTc2QjhCQjkwMEVFOUIxNSAvKiBmaW5kUmFu
Z2VzLmh0bWwgKi8sCisJCQkJMjZGNTJFQUMxODI4ODIwRTAwMjNENDEyIC8qIGdlb2xvY2F0aW9u
R2V0Q3VycmVudFBvc2l0aW9uLmh0bWwgKi8sCisJCQkJMjZGNTJFQUUxODI4OEMwNDAwMjNENDEy
IC8qIGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sICov
LAorCQkJCTI2RjUyRUIwMTgyODhGMEYwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbldhdGNoUG9zaXRp
b24uaHRtbCAqLywKKwkJCQkyNkY1MkVCMTE4Mjg4RjBGMDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25X
YXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sICovLAogCQkJCUJDQkQzNzJFMTI1QUJC
RTYwMEQyQzI5RiAvKiBpY29uLnBuZyAqLywKIAkJCQkzNzhFNjQ3ODE2MzI2RkRGMDBCNkM2NzYg
LyogbGluay13aXRoLXRpdGxlLmh0bWwgKi8sCiAJCQkJOTM2MTAwMjgxNERDOTU3QjAwNjEzNzlE
IC8qIGxvdHMtb2YtaWZyYW1lcy5odG1sICovLApAQCAtMTIwMCw2ICsxMjE5LDcgQEAKIAkJCQlC
QzkwOTc3QTEyNTU3MUFCMDAwODM3NTYgLyogUGFnZUxvYWRCYXNpYy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzJEMDA0OTEyQTlGREZBMDBFNzMyQTMgLyogUGFnZUxvYWREaWRDaGFuZ2VMb2Nh
dGlvbldpdGhpblBhZ2VGb3JGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMxNDA3QzE3
QjQ0MTkwMDBGMDgzQjEgLyogRGlkTm90SGFuZGxlS2V5RG93bi5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyNkY1MkVBQjE4Mjg3MjYwMDAyM0Q0MTIgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTUxQjY1MDkxNkFERjlCMTAwN0FBNUQ5IC8qIFBhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3QTM0RjAxNkFGNjc3MjAwQzI1MDFGIC8qIFBh
Z2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUyRTVDRTQ2MTREMjFFOUQwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZS5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9HZW9sb2Nh
dGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvR2VvbG9jYXRpb24u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE3ZTUyZDQyZmFmNGFlZTRkYmI2NWQ3NTA0OTU3NWQyMzQ5Mzg5ZDEK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvR2Vv
bG9jYXRpb24uY3BwCkBAIC0wLDAgKzEsMzI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1XZWJWaWV3LmgiCisjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRh
aW5QdHIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKK3VzaW5n
IG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworZW51bSBjbGFz
cyBHZW9sb2NhdGlvbkV2ZW50IHsKKyAgICBTdGFydFVwZGF0aW5nLAorICAgIFN0b3BVcGRhdGlu
ZywKKyAgICBFbmFibGVIaWdoQWNjdXJhY3ksCisgICAgRGlzYWJsZUhpZ2hBY2N1cmFjeQorfTsK
Kworb3N0cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtJiBvdXRwdXRTdHJlYW0sIGNvbnN0IEdlb2xv
Y2F0aW9uRXZlbnQmIGdlb2xvY2F0aW9uRXZlbnQpCit7CisgICAgc3dpdGNoIChnZW9sb2NhdGlv
bkV2ZW50KSB7CisgICAgY2FzZSBHZW9sb2NhdGlvbkV2ZW50OjpTdGFydFVwZGF0aW5nOgorICAg
ICAgICBvdXRwdXRTdHJlYW0gPDwgIkdlb2xvY2F0aW9uRXZlbnQ6OlN0YXJ0VXBkYXRpbmciOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEdlb2xvY2F0aW9uRXZlbnQ6OlN0b3BVcGRhdGluZzoK
KyAgICAgICAgb3V0cHV0U3RyZWFtIDw8ICJHZW9sb2NhdGlvbkV2ZW50OjpTdG9wVXBkYXRpbmci
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdlb2xvY2F0aW9uRXZlbnQ6OkVuYWJsZUhpZ2hB
Y2N1cmFjeToKKyAgICAgICAgb3V0cHV0U3RyZWFtIDw8ICJHZW9sb2NhdGlvbkV2ZW50OjpFbmFi
bGVIaWdoQWNjdXJhY3kiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdlb2xvY2F0aW9uRXZl
bnQ6OkRpc2FibGVIaWdoQWNjdXJhY3k6CisgICAgICAgIG91dHB1dFN0cmVhbSA8PCAiR2VvbG9j
YXRpb25FdmVudDo6RGlzYWJsZUhpZ2hBY2N1cmFjeSI7CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICByZXR1cm4gb3V0cHV0U3RyZWFtOworfQorCitzdHJ1Y3QgR2VvbG9jYXRpb25TdGF0ZVRy
YWNrZXIgeworICAgIHZlY3RvcjxHZW9sb2NhdGlvbkV2ZW50PiBldmVudHM7CisKKyAgICB2aXJ0
dWFsIH5HZW9sb2NhdGlvblN0YXRlVHJhY2tlcigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBldmVu
dHNDaGFuZ2VkKCkgeyB9CisKKyAgICBzdGF0aWMgdm9pZCBzdGFydFVwZGF0aW5nQ2FsbGJhY2so
V0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgbWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
KyAgICB7CisgICAgICAgIEdlb2xvY2F0aW9uU3RhdGVUcmFja2VyKiBzdGF0ZVRyYWNrZXIgPSBz
dGF0aWNfY2FzdDxHZW9sb2NhdGlvblN0YXRlVHJhY2tlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNs
aWVudEluZm8pKTsKKyAgICAgICAgc3RhdGVUcmFja2VyLT5ldmVudHMucHVzaF9iYWNrKEdlb2xv
Y2F0aW9uRXZlbnQ6OlN0YXJ0VXBkYXRpbmcpOworICAgICAgICBzdGF0ZVRyYWNrZXItPmV2ZW50
c0NoYW5nZWQoKTsKKworICAgICAgICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUG9zaXRpb25S
ZWY+IHBvc2l0aW9uID0gYWRvcHRXSyhXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGUoMCwgNTAu
NjQ0MzU4LCAzLjM0NTQ1MywgMi41MykpOworICAgICAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclBy
b3ZpZGVyRGlkQ2hhbmdlUG9zaXRpb24obWFuYWdlciwgcG9zaXRpb24uZ2V0KCkpOworICAgIH0K
KworICAgIHN0YXRpYyB2b2lkIHN0b3BVcGRhdGluZ0NhbGxiYWNrKFdLR2VvbG9jYXRpb25NYW5h
Z2VyUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorICAgIHsKKyAgICAgICAgR2VvbG9jYXRp
b25TdGF0ZVRyYWNrZXIqIHN0YXRlVHJhY2tlciA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uU3Rh
dGVUcmFja2VyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgICAgICBzdGF0
ZVRyYWNrZXItPmV2ZW50cy5wdXNoX2JhY2soR2VvbG9jYXRpb25FdmVudDo6U3RvcFVwZGF0aW5n
KTsKKyAgICAgICAgc3RhdGVUcmFja2VyLT5ldmVudHNDaGFuZ2VkKCk7CisgICAgfQorCisgICAg
c3RhdGljIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5Q2FsbGJhY2soV0tHZW9sb2NhdGlvbk1h
bmFnZXJSZWYsIGJvb2wgZW5hYmxlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorICAgIHsKKyAg
ICAgICAgR2VvbG9jYXRpb25TdGF0ZVRyYWNrZXIqIHN0YXRlVHJhY2tlciA9IHN0YXRpY19jYXN0
PEdlb2xvY2F0aW9uU3RhdGVUcmFja2VyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykp
OworICAgICAgICBpZiAoZW5hYmxlKQorICAgICAgICAgICAgc3RhdGVUcmFja2VyLT5ldmVudHMu
cHVzaF9iYWNrKEdlb2xvY2F0aW9uRXZlbnQ6OkVuYWJsZUhpZ2hBY2N1cmFjeSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHN0YXRlVHJhY2tlci0+ZXZlbnRzLnB1c2hfYmFjayhHZW9sb2Nh
dGlvbkV2ZW50OjpEaXNhYmxlSGlnaEFjY3VyYWN5KTsKKyAgICAgICAgc3RhdGVUcmFja2VyLT5l
dmVudHNDaGFuZ2VkKCk7CisgICAgfQorfTsKKwordm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2soV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7
CisgICAgV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocGVybWlzc2lvblJlcXVl
c3QpOworfQorCit2b2lkIHNldHVwR2VvbG9jYXRpb25Qcm92aWRlcihXS0NvbnRleHRSZWYgY29u
dGV4dCwgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBXS0dlb2xvY2F0aW9uUHJvdmlkZXIgcHJv
dmlkZXJDYWxsYmFjazsKKyAgICBtZW1zZXQoJnByb3ZpZGVyQ2FsbGJhY2ssIDAsIHNpemVvZihX
S0dlb2xvY2F0aW9uUHJvdmlkZXIpKTsKKyAgICBwcm92aWRlckNhbGxiYWNrLnZlcnNpb24gPSBr
V0tHZW9sb2NhdGlvblByb3ZpZGVyQ3VycmVudFZlcnNpb247CisgICAgcHJvdmlkZXJDYWxsYmFj
ay5jbGllbnRJbmZvID0gY2xpZW50SW5mbzsKKyAgICBwcm92aWRlckNhbGxiYWNrLnN0YXJ0VXBk
YXRpbmcgPSBHZW9sb2NhdGlvblN0YXRlVHJhY2tlcjo6c3RhcnRVcGRhdGluZ0NhbGxiYWNrOwor
ICAgIHByb3ZpZGVyQ2FsbGJhY2suc3RvcFVwZGF0aW5nID0gR2VvbG9jYXRpb25TdGF0ZVRyYWNr
ZXI6OnN0b3BVcGRhdGluZ0NhbGxiYWNrOworICAgIHByb3ZpZGVyQ2FsbGJhY2suc2V0RW5hYmxl
SGlnaEFjY3VyYWN5ID0gR2VvbG9jYXRpb25TdGF0ZVRyYWNrZXI6OnNldEVuYWJsZUhpZ2hBY2N1
cmFjeUNhbGxiYWNrOworICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIoV0tDb250
ZXh0R2V0R2VvbG9jYXRpb25NYW5hZ2VyKGNvbnRleHQpLCAmcHJvdmlkZXJDYWxsYmFjayk7Cit9
CisKK3ZvaWQgc2V0dXBWaWV3KFBsYXRmb3JtV2ViVmlldyYgd2ViVmlldykKK3sKKyAgICBXS1Bh
Z2VVSUNsaWVudCB1aUNsaWVudDsKKyAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlD
bGllbnQpKTsKKyAgICB1aUNsaWVudC52ZXJzaW9uID0ga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZl
cnNpb247CisgICAgdWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdCA9IGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxs
QmFjazsKKyAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVu
dCk7Cit9CisKKy8vIEdlb2xvY2F0aW9uQmFzaWMuCitzdHJ1Y3QgR2VvbG9jYXRpb25CYXNpY1N0
YXRlVHJhY2tlciA6IEdlb2xvY2F0aW9uU3RhdGVUcmFja2VyIHsKKyAgICBib29sIGZpbmlzaGVk
OworCisgICAgR2VvbG9jYXRpb25CYXNpY1N0YXRlVHJhY2tlcigpIDogZmluaXNoZWQoZmFsc2Up
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBldmVudHNDaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAoZXZlbnRzLnNpemUoKSkgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBFWFBF
Q1RfRVEoR2VvbG9jYXRpb25FdmVudDo6RGlzYWJsZUhpZ2hBY2N1cmFjeSwgZXZlbnRzWzBdKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBFWFBFQ1Rf
RVEoR2VvbG9jYXRpb25FdmVudDo6U3RhcnRVcGRhdGluZywgZXZlbnRzWzFdKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBFWFBFQ1RfRVEoR2VvbG9j
YXRpb25FdmVudDo6U3RvcFVwZGF0aW5nLCBldmVudHNbMl0pOworICAgICAgICAgICAgZmluaXNo
ZWQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CisgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7Cisg
ICAgICAgIH0KKyAgICB9Cit9OworCitURVNUKFdlYktpdDIsIEdlb2xvY2F0aW9uQmFzaWMpCit7
CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFdLQ29udGV4
dENyZWF0ZSgpKTsKKworICAgIEdlb2xvY2F0aW9uQmFzaWNTdGF0ZVRyYWNrZXIgc3RhdGVUcmFj
a2VyOworICAgIHNldHVwR2VvbG9jYXRpb25Qcm92aWRlcihjb250ZXh0LmdldCgpLCAmc3RhdGVU
cmFja2VyKTsKKworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwor
ICAgIHNldHVwVmlldyh3ZWJWaWV3KTsKKworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwo
QWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImdlb2xvY2F0aW9uR2V0Q3VycmVu
dFBvc2l0aW9uIiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwg
dXJsLmdldCgpKTsKKworICAgIFV0aWw6OnJ1bigmc3RhdGVUcmFja2VyLmZpbmlzaGVkKTsKK30K
KworLy8gR2VvbG9jYXRpb24gcmVxdWVzdGVkIHdpdGggSGlnaCBBY2N1cmFjeS4KK3N0cnVjdCBH
ZW9sb2NhdGlvbkJhc2ljV2l0aEhpZ2hBY2N1cmFjeVN0YXRlVHJhY2tlciA6IEdlb2xvY2F0aW9u
U3RhdGVUcmFja2VyIHsKKyAgICBib29sIGZpbmlzaGVkOworCisgICAgR2VvbG9jYXRpb25CYXNp
Y1dpdGhIaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXIoKSA6IGZpbmlzaGVkKGZhbHNlKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZXZlbnRzQ2hhbmdlZCgpCisgICAgeworICAgICAgICBzd2l0Y2ggKGV2
ZW50cy5zaXplKCkpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgRVhQRUNUX0VRKEdl
b2xvY2F0aW9uRXZlbnQ6OkVuYWJsZUhpZ2hBY2N1cmFjeSwgZXZlbnRzWzBdKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBFWFBFQ1RfRVEoR2VvbG9j
YXRpb25FdmVudDo6U3RhcnRVcGRhdGluZywgZXZlbnRzWzFdKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBFWFBFQ1RfRVEoR2VvbG9jYXRpb25FdmVu
dDo6U3RvcFVwZGF0aW5nLCBldmVudHNbMl0pOworICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVl
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBFWFBF
Q1RfVFJVRShmYWxzZSk7CisgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAgICAgIH0K
KyAgICB9Cit9OworCitURVNUKFdlYktpdDIsIEdlb2xvY2F0aW9uQmFzaWNXaXRoSGlnaEFjY3Vy
YWN5KQoreworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBX
S0NvbnRleHRDcmVhdGUoKSk7CisKKyAgICBHZW9sb2NhdGlvbkJhc2ljV2l0aEhpZ2hBY2N1cmFj
eVN0YXRlVHJhY2tlciBzdGF0ZVRyYWNrZXI7CisgICAgc2V0dXBHZW9sb2NhdGlvblByb3ZpZGVy
KGNvbnRleHQuZ2V0KCksICZzdGF0ZVRyYWNrZXIpOworCisgICAgUGxhdGZvcm1XZWJWaWV3IHdl
YlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgc2V0dXBWaWV3KHdlYlZpZXcpOworCisgICAgV0tS
ZXRhaW5QdHI8V0tVUkxSZWY+IHVybChBZG9wdFdLLCBVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJj
ZSgiZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5IiwgImh0bWwi
KSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKKworICAg
IFV0aWw6OnJ1bigmc3RhdGVUcmFja2VyLmZpbmlzaGVkKTsKK30KKworLy8gR2VvbG9jYXRpb24g
c3RhcnQgd2l0aG91dCBIaWdoIEFjY3VyYWN5LCB0aGVuIHJlcXVpcmVzIEhpZ2ggQWNjdXJhY3ku
CitzdHJ1Y3QgR2VvbG9jYXRpb25UcmFuc2l0aW9uVG9IaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXIg
OiBHZW9sb2NhdGlvblN0YXRlVHJhY2tlciB7CisgICAgYm9vbCBmaW5pc2hlZEZpcnN0U3RlcDsK
KyAgICBib29sIGZpbmlzaGVkOworCisgICAgR2VvbG9jYXRpb25UcmFuc2l0aW9uVG9IaWdoQWNj
dXJhY3lTdGF0ZVRyYWNrZXIoKQorICAgICAgICA6IGZpbmlzaGVkRmlyc3RTdGVwKGZhbHNlKQor
ICAgICAgICAsIGZpbmlzaGVkKGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgZXZlbnRzQ2hhbmdlZCgpCisgICAgeworICAgICAgICBzd2l0Y2ggKGV2ZW50cy5zaXplKCkp
IHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9uRXZl
bnQ6OkRpc2FibGVIaWdoQWNjdXJhY3ksIGV2ZW50c1swXSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9uRXZlbnQ6
OlN0YXJ0VXBkYXRpbmcsIGV2ZW50c1sxXSk7CisgICAgICAgICAgICBmaW5pc2hlZEZpcnN0U3Rl
cCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9uRXZlbnQ6OkVuYWJsZUhpZ2hBY2N1cmFjeSwgZXZlbnRz
WzJdKTsKKyAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOworICAgICAg
ICAgICAgZmluaXNoZWRGaXJzdFN0ZXAgPSB0cnVlOworICAgICAgICAgICAgZmluaXNoZWQgPSB0
cnVlOworICAgICAgICB9CisgICAgfQorfTsKKworVEVTVChXZWJLaXQyLCBHZW9sb2NhdGlvblRy
YW5zaXRpb25Ub0hpZ2hBY2N1cmFjeSkKK3sKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+
IGNvbnRleHQoQWRvcHRXSywgV0tDb250ZXh0Q3JlYXRlKCkpOworCisgICAgR2VvbG9jYXRpb25U
cmFuc2l0aW9uVG9IaWdoQWNjdXJhY3lTdGF0ZVRyYWNrZXIgc3RhdGVUcmFja2VyOworICAgIHNl
dHVwR2VvbG9jYXRpb25Qcm92aWRlcihjb250ZXh0LmdldCgpLCAmc3RhdGVUcmFja2VyKTsKKwor
ICAgIFBsYXRmb3JtV2ViVmlldyBsb3dBY2N1cmFjeVdlYlZpZXcoY29udGV4dC5nZXQoKSk7Cisg
ICAgc2V0dXBWaWV3KGxvd0FjY3VyYWN5V2ViVmlldyk7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxS
ZWY+IGxvd0FjY3VyYWN5VVJMKEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJn
ZW9sb2NhdGlvbldhdGNoUG9zaXRpb24iLCAiaHRtbCIpKTsKKyAgICBXS1BhZ2VMb2FkVVJMKGxv
d0FjY3VyYWN5V2ViVmlldy5wYWdlKCksIGxvd0FjY3VyYWN5VVJMLmdldCgpKTsKKyAgICBVdGls
OjpydW4oJnN0YXRlVHJhY2tlci5maW5pc2hlZEZpcnN0U3RlcCk7CisKKyAgICBQbGF0Zm9ybVdl
YlZpZXcgaGlnaEFjY3VyYWN5V2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBzZXR1cFZpZXco
aGlnaEFjY3VyYWN5V2ViVmlldyk7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGhpZ2hBY2N1
cmFjeVVSTChBZG9wdFdLLCBVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZ2VvbG9jYXRpb25X
YXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeSIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRV
UkwoaGlnaEFjY3VyYWN5V2ViVmlldy5wYWdlKCksIGhpZ2hBY2N1cmFjeVVSTC5nZXQoKSk7Cisg
ICAgVXRpbDo6cnVuKCZzdGF0ZVRyYWNrZXIuZmluaXNoZWQpOworfQorCisvLyBHZW9sb2NhdGlv
biBzdGFydCB3aXRoIEhpZ2ggQWNjdXJhY3ksIHRoZW4gc2hvdWxkIGZhbGwgYmFjayB0byBsb3cg
YWNjdXJhY3kuCitzdHJ1Y3QgR2VvbG9jYXRpb25UcmFuc2l0aW9uVG9Mb3dBY2N1cmFjeVN0YXRl
VHJhY2tlciA6IEdlb2xvY2F0aW9uU3RhdGVUcmFja2VyIHsKKyAgICBib29sIGZpbmlzaGVkRmly
c3RTdGVwOworICAgIGJvb2wgZmluaXNoZWQ7CisKKyAgICBHZW9sb2NhdGlvblRyYW5zaXRpb25U
b0xvd0FjY3VyYWN5U3RhdGVUcmFja2VyKCkKKyAgICAgICAgOiBmaW5pc2hlZEZpcnN0U3RlcChm
YWxzZSkKKyAgICAgICAgLCBmaW5pc2hlZChmYWxzZSkKKyAgICB7CisgICAgfQorCisgICAgdmly
dHVhbCB2b2lkIGV2ZW50c0NoYW5nZWQoKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChldmVudHMu
c2l6ZSgpKSB7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIEVYUEVDVF9FUShHZW9sb2Nh
dGlvbkV2ZW50OjpFbmFibGVIaWdoQWNjdXJhY3ksIGV2ZW50c1swXSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9u
RXZlbnQ6OlN0YXJ0VXBkYXRpbmcsIGV2ZW50c1sxXSk7CisgICAgICAgICAgICBmaW5pc2hlZEZp
cnN0U3RlcCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAg
ICAgICAgICAgRVhQRUNUX0VRKEdlb2xvY2F0aW9uRXZlbnQ6OkRpc2FibGVIaWdoQWNjdXJhY3ks
IGV2ZW50c1syXSk7CisgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsK
KyAgICAgICAgICAgIGZpbmlzaGVkRmlyc3RTdGVwID0gdHJ1ZTsKKyAgICAgICAgICAgIGZpbmlz
aGVkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KK307CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlz
aExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgICpzdGF0aWNfY2FzdDxi
b29sKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpID0gdHJ1ZTsKK30KKworVEVTVChX
ZWJLaXQyLCBHZW9sb2NhdGlvblRyYW5zaXRpb25Ub0xvd0FjY3VyYWN5KQoreworICAgIFdLUmV0
YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7
CisKKyAgICBHZW9sb2NhdGlvblRyYW5zaXRpb25Ub0xvd0FjY3VyYWN5U3RhdGVUcmFja2VyIHN0
YXRlVHJhY2tlcjsKKyAgICBzZXR1cEdlb2xvY2F0aW9uUHJvdmlkZXIoY29udGV4dC5nZXQoKSwg
JnN0YXRlVHJhY2tlcik7CisKKyAgICBQbGF0Zm9ybVdlYlZpZXcgaGlnaEFjY3VyYWN5V2ViVmll
dyhjb250ZXh0LmdldCgpKTsKKyAgICBzZXR1cFZpZXcoaGlnaEFjY3VyYWN5V2ViVmlldyk7Cisg
ICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGhpZ2hBY2N1cmFjeVVSTChBZG9wdFdLLCBVdGlsOjpj
cmVhdGVVUkxGb3JSZXNvdXJjZSgiZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1
cmFjeSIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRVUkwoaGlnaEFjY3VyYWN5V2ViVmlldy5w
YWdlKCksIGhpZ2hBY2N1cmFjeVVSTC5nZXQoKSk7CisgICAgVXRpbDo6cnVuKCZzdGF0ZVRyYWNr
ZXIuZmluaXNoZWRGaXJzdFN0ZXApOworCisgICAgUGxhdGZvcm1XZWJWaWV3IGxvd0FjY3VyYWN5
V2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBzZXR1cFZpZXcobG93QWNjdXJhY3lXZWJWaWV3
KTsKKworICAgIGJvb2wgZmluaXNoZWRTZWNvbmRTdGVwID0gZmFsc2U7CisgICAgV0tQYWdlTG9h
ZGVyQ2xpZW50IGxvYWRlckNsaWVudDsKKyAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6
ZW9mKGxvYWRlckNsaWVudCkpOworICAgIGxvYWRlckNsaWVudC5jbGllbnRJbmZvID0gJmZpbmlz
aGVkU2Vjb25kU3RlcDsKKyAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lID0g
ZGlkRmluaXNoTG9hZEZvckZyYW1lOworICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQobG93
QWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgJmxvYWRlckNsaWVudCk7CisKKyAgICBXS1JldGFpblB0
cjxXS1VSTFJlZj4gbG93QWNjdXJhY3lVUkwoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVz
b3VyY2UoImdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbiIsICJodG1sIikpOworICAgIFdLUGFnZUxv
YWRVUkwobG93QWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgbG93QWNjdXJhY3lVUkwuZ2V0KCkpOwor
ICAgIFV0aWw6OnJ1bigmZmluaXNoZWRTZWNvbmRTdGVwKTsKKworICAgIFdLUmV0YWluUHRyPFdL
VVJMUmVmPiByZXNldFVybCA9IGFkb3B0V0soV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFi
b3V0OmJsYW5rIikpOworICAgIFdLUGFnZUxvYWRVUkwoaGlnaEFjY3VyYWN5V2ViVmlldy5wYWdl
KCksIHJlc2V0VXJsLmdldCgpKTsKKyAgICBVdGlsOjpydW4oJnN0YXRlVHJhY2tlci5maW5pc2hl
ZCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlv
bi5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2dlb2xvY2F0aW9uR2V0
Q3VycmVudFBvc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDk5ZjUxNTM2YjhmODY3ZTAxYjAyMzA5
Njc2NDdiOGY0MGIyZDRiYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlvbi5odG1sCkBAIC0wLDAg
KzEsMyBAQAorPHNjcmlwdD4KK25hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRp
b24oZnVuY3Rpb24oKSB7IH0pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGln
aEFjY3VyYWN5Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9j
YXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjZhMzE0ODU4YWQxYzYwNjllMzk4YjNmYmYwZThhMDg4M2JjNjhjNgotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbkdldEN1cnJl
bnRQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbApAQCAtMCwwICsxLDMgQEAKKzxzY3JpcHQ+
CituYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKCkgeyB9
LCBmdW5jdGlvbigpIHt9LCB7IGVuYWJsZUhpZ2hBY2N1cmFjeTp0cnVlIH0pOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRp
b25XYXRjaFBvc2l0aW9uLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
Z2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ3ODhiNzgwNjhjZmM0
OTliNmQ5YjI0N2Q4MjAxMmEzZTRjMGE2OQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbldhdGNoUG9zaXRpb24uaHRtbApAQCAt
MCwwICsxLDMgQEAKKzxzY3JpcHQ+CituYXZpZ2F0b3IuZ2VvbG9jYXRpb24ud2F0Y2hQb3NpdGlv
bihmdW5jdGlvbigpIHsgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9sb2NhdGlvbldhdGNoUG9zaXRpb25XaXRoSGlnaEFjY3Vy
YWN5Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRpb25X
YXRjaFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiYTk4ZmNlN2Nm
NTcyYjEzYmVlMDZjMzZhNjM1YTllZDY1NmVkM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uV2l0aEhp
Z2hBY2N1cmFjeS5odG1sCkBAIC0wLDAgKzEsMyBAQAorPHNjcmlwdD4KK25hdmlnYXRvci5nZW9s
b2NhdGlvbi53YXRjaFBvc2l0aW9uKGZ1bmN0aW9uKCkgeyB9LCBmdW5jdGlvbigpIHt9LCB7IGVu
YWJsZUhpZ2hBY2N1cmFjeTp0cnVlIH0pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwCmluZGV4IDcxMTFkNDg3MjEx
YmM3OGJmYTUxZGNjMTZlZjhjYzY3YzQ3ODViNTguLmY3MzBhODI0YTlmMTU0OGIwMTZhOTQ2MmZk
ZjNiODgwOWQ4OWU0MWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9j
YXRpb25Qcm92aWRlck1vY2suY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9j
YXRpb25Qcm92aWRlck1vY2suY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiR2VvbG9jYXRp
b25Qcm92aWRlck1vY2suaCIKIAogI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvbk1hbmFn
ZXIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgog
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCkBAIC01MCwxMSArNTEsMTIgQEAgR2VvbG9j
YXRpb25Qcm92aWRlck1vY2s6Okdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrKFdLQ29udGV4dFJlZiBj
b250ZXh0KQogewogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyID0gV0tDb250ZXh0R2V0R2VvbG9j
YXRpb25NYW5hZ2VyKGNvbnRleHQpOwogCi0gICAgV0tHZW9sb2NhdGlvblByb3ZpZGVyIHByb3Zp
ZGVyQ2FsbGJhY2sgPSB7Ci0gICAgICAgIGtXS0dlb2xvY2F0aW9uUHJvdmlkZXJDdXJyZW50VmVy
c2lvbiwKLSAgICAgICAgdGhpcywKLSAgICAgICAgc3RhcnRVcGRhdGluZ0NhbGxiYWNrLAotICAg
ICAgICBzdG9wVXBkYXRpbmdDYWxsYmFjayB9OworICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlciBw
cm92aWRlckNhbGxiYWNrOworICAgIG1lbXNldCgmcHJvdmlkZXJDYWxsYmFjaywgMCwgc2l6ZW9m
KFdLR2VvbG9jYXRpb25Qcm92aWRlcikpOworICAgIHByb3ZpZGVyQ2FsbGJhY2sudmVyc2lvbiA9
IDA7CisgICAgcHJvdmlkZXJDYWxsYmFjay5jbGllbnRJbmZvID0gdGhpczsKKyAgICBwcm92aWRl
ckNhbGxiYWNrLnN0YXJ0VXBkYXRpbmcgPSBzdGFydFVwZGF0aW5nQ2FsbGJhY2s7CisgICAgcHJv
dmlkZXJDYWxsYmFjay5zdG9wVXBkYXRpbmcgPSBzdG9wVXBkYXRpbmdDYWxsYmFjazsKICAgICBX
S0dlb2xvY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKG1fZ2VvbG9jYXRpb25NYW5hZ2VyLCAmcHJv
dmlkZXJDYWxsYmFjayk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>