<?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>76241</bug_id>
          
          <creation_ts>2012-01-12 19:44:47 -0800</creation_ts>
          <short_desc>Move ShadowContentElement from dom/ to html/ and make ShadowContentElement subclass of HTMLElement</short_desc>
          <delta_ts>2012-01-18 01:15:48 -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>DOM</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>
          <dependson>76358</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>morrita</cc>
    
    <cc>rakuco</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>535394</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-12 19:44:47 -0800</bug_when>
    <thetext>Moves ShadowContentElement from dom/ to html/
We should take into account to dom shouldn&apos;t depend on html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535402</commentid>
    <comment_count>1</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-12 20:11:22 -0800</bug_when>
    <thetext>Note that ShadowContentElement should become HTMLContentElement,
which should be a subclass of HTMLElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536892</commentid>
    <comment_count>2</comment_count>
      <attachid>122715</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-16 22:21:40 -0800</bug_when>
    <thetext>Created attachment 122715
Build Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536893</commentid>
    <comment_count>3</comment_count>
      <attachid>122715</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-16 22:26:03 -0800</bug_when>
    <thetext>Comment on attachment 122715
Build Test

Attachment 122715 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11267065</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536895</commentid>
    <comment_count>4</comment_count>
      <attachid>122715</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-01-16 22:35:42 -0800</bug_when>
    <thetext>Comment on attachment 122715
Build Test

Attachment 122715 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11111078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536898</commentid>
    <comment_count>5</comment_count>
      <attachid>122716</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-16 22:51:35 -0800</bug_when>
    <thetext>Created attachment 122716
Build Test Again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536900</commentid>
    <comment_count>6</comment_count>
      <attachid>122717</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-16 23:24:32 -0800</bug_when>
    <thetext>Created attachment 122717
Build Test Again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536909</commentid>
    <comment_count>7</comment_count>
      <attachid>122720</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-16 23:50:53 -0800</bug_when>
    <thetext>Created attachment 122720
Build Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536913</commentid>
    <comment_count>8</comment_count>
      <attachid>122720</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2012-01-17 00:04:41 -0800</bug_when>
    <thetext>Comment on attachment 122720
Build Test

Attachment 122720 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11262092</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536927</commentid>
    <comment_count>9</comment_count>
      <attachid>122726</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-17 00:33:26 -0800</bug_when>
    <thetext>Created attachment 122726
Build Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536933</commentid>
    <comment_count>10</comment_count>
      <attachid>122726</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-17 00:42:41 -0800</bug_when>
    <thetext>Comment on attachment 122726
Build Test

Attachment 122726 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11269121</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536934</commentid>
    <comment_count>11</comment_count>
      <attachid>122729</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-17 00:45:12 -0800</bug_when>
    <thetext>Created attachment 122729
Build Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536964</commentid>
    <comment_count>12</comment_count>
      <attachid>122735</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-17 01:37:06 -0800</bug_when>
    <thetext>Created attachment 122735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537158</commentid>
    <comment_count>13</comment_count>
      <attachid>122735</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-01-17 09:29:18 -0800</bug_when>
    <thetext>Comment on attachment 122735
Patch

make sure Safari/Mac builds before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537660</commentid>
    <comment_count>14</comment_count>
      <attachid>122879</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-17 23:38:38 -0800</bug_when>
    <thetext>Created attachment 122879
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537662</commentid>
    <comment_count>15</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-17 23:39:54 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 122735 [details])
&gt; make sure Safari/Mac builds before landing.

Thank you for reviewing. I&apos;ve confirmed it builds on Snow Leopard Mac in my environment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537701</commentid>
    <comment_count>16</comment_count>
      <attachid>122879</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-18 01:15:41 -0800</bug_when>
    <thetext>Comment on attachment 122879
Patch for landing

Clearing flags on attachment: 122879

Committed r105249: &lt;http://trac.webkit.org/changeset/105249&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537702</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-18 01:15:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122715</attachid>
            <date>2012-01-16 22:21:40 -0800</date>
            <delta_ts>2012-01-16 22:51:23 -0800</delta_ts>
            <desc>Build Test</desc>
            <filename>bug-76241-20120117152138.patch</filename>
            <type>text/plain</type>
            <size>86545</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU1MmYzYzQ5YzE1MWI5
M2Q3ODRiNzgwNGVhZTJiMjg5ZDgwZmRiZS4uMTYxNDdiNTc0ZGI4ZTM5ZTEyYzI0YzFjYjQ4MWZi
YjRiZmJjMjA0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEyLTAxLTE2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dD
b250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuZXh0UmVuZGVyZXJPZik6Cisg
ICAgICAgIChXZWJDb3JlOjpwcmV2aW91c1JlbmRlcmVyT2YpOgorICAgICAgICAoV2ViQ29yZTo6
Zmlyc3RSZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RSZW5kZXJlck9mKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIpOgor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OmluY2x1ZGVyKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9v
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbmNsdWRlckZvcik6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbmNsdXNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3Q6OmVuc3VyZUluY2x1c2lvbnMpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290
Lmg6CisgICAgICAgICogaHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0luY2x1c2lvbjo6dW5saW5rKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvbkxpc3Q6OlNoYWRvd0luY2x1c2lvbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uTGlzdDo6flNoYWRvd0luY2x1c2lvbkxpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6ZmluZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJ
bmNsdXNpb25MaXN0OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25M
aXN0OjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9y
OjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudElu
Y2x1c2lvblNlbGVjdG9yOjp+Q29udGVudEluY2x1c2lvblNlbGVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6dW5zZWxlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9yOjpmaW5kRm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6ZGlkU2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6d2lsbFNlbGVjdE92ZXIpOgorICAgICAgICAqIGh0
bWwvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0luY2x1c2lvbjo6aW5jbHVkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9u
Ojpjb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6bmV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb246OnByZXZpb3VzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6U2hhZG93SW5jbHVzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0luY2x1c2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvbkxpc3Q6OmZpcnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbkxp
c3Q6Omxhc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6aXNFbXB0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OmFkZCk6CisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFkb3dJbmNsdXNpb25TZXQ6OmlzRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
SW5jbHVzaW9uU2V0OjpUcmFuc2xhdG9yOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0luY2x1c2lvblNldDo6VHJhbnNsYXRvcjo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uU2V0OjpIYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvblNldDo6SGFzaDo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVz
aW9uU2V0OjpmaW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rv
cjo6aGFzQ2FuZGlkYXRlcyk6CisgICAgICAgICogaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9y
UXVlcnkuY3BwLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRl
bnRTZWxlY3RvclF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5
OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaC4K
KyAgICAgICAgKiBodG1sL0hUTUxDb250ZW50RWxlbWVudC5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnRlbnRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENv
bnRlbnRFbGVtZW50OjpIVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENvbnRlbnRFbGVtZW50Ojp+SFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250
ZW50RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVu
dDo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6c2V0U2Vs
ZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxDb250ZW50RWxlbWVudC5oOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmguCisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmluY2x1c2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnRlbnRFbGVtZW50Ojppc0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ29udGVudEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OnRvSFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzQ29udGVudEVsZW1lbnQ6OkRldGFpbHND
b250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6
OkRldGFpbHNTdW1tYXJ5RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VtbWFyeUNvbnRlbnRFbGVtZW50OjpTdW1tYXJ5
Q29udGVudEVsZW1lbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6Y3JlYXRlQ29udGVudEVsZW1lbnQpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CiAyMDEyLTAxLTE2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTjogcjEwMjU1MyBBdXRvY29ycmVjdGlvbiBidWJibGUgZG9lc24ndCBzaG93
IHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNzQzYjkzYTgxNWE2NWY2NTc3YmFiMjZlZWIzMThkZDMzODE5OWJi
MC4uMDg2MDgzMGNlYjBiMzM4ODk2ODY1ZTA3NmQxNDI1OWViMjk5NmUwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTE2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdv
b2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8g
dG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAy
MDEyLTAxLTE2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwNzAyNzU4PiBSRUdSRVNTSU9OOiBFdmVyeSBTYWZhcmkgUmVhZGVyIFdL
VmlldyBsZWFrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggY2U2N2Y1MWRjNDkw
NjBiOTJjYzQ0NGY3MjY4MTZjYzQzMDE2YTMxZC4uYWNjMmZmNDhlZmY0NDQ0ZWJlYzE1YmVlYTYw
MmE4Mjg0NDc5ODMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNjQzLDEy
ICsxNjQzLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2Vj
dXJpdHlDb250ZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaCBcCi0JU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d0NvbnRlbnRFbGVtZW50LmggXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2Vs
ZWN0b3JRdWVyeS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0
b3JRdWVyeS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3Iu
Y3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAg
XApAQCAtMTk1NCw2ICsxOTQ4LDEwIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9y
SW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggXAorCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlu
cHV0VHlwZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcCBcCkBAIC0xOTk4LDYgKzE5
OTYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaCBcCisJU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ29udGVudEVsZW1lbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDb250ZW50RWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBc
CiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KaW5kZXggM2E1YjI5YmFkMWY0ZWZlYTNiZGI5YTQzMTk2NGQ4MjMxNjgxOWUxZS4u
ZDQ2NjcwZWQyOGMzM2QwYTFhZWYwNWMwZGE5OTc1MDMxODVhOGMxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTYwMyw3ICs2MDMsNiBAQCBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VC
YXNlMjBzZXRTdWdnZXN0ZWRGaWxlbmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTIw
UmVzb3VyY2VSZXNwb25zZUJhc2UyNHNldEV4cGVjdGVkQ29udGVudExlbmd0aEV4CiBfX1pON1dl
YkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNnNldFVSTEVSS05TXzRLVVJMRQogX19aTjdXZWJD
b3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZUMyRXYKLV9fWk43V2ViQ29yZTIwU2hhZG93Q29udGVu
dEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFCiBfX1pON1dlYkNvcmUyMFVzZXJHZXN0dXJl
SW5kaWNhdG9yN3Nfc3RhdGVFCiBfX1pON1dlYkNvcmUyMFVzZXJHZXN0dXJlSW5kaWNhdG9yQzFF
TlNfMjZQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZUUKIF9fWk43V2ViQ29yZTIwVXNlckdlc3R1
cmVJbmRpY2F0b3JEMUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDhhNTIzZmE1N2E0NDcxNDNhNmM5
ZWVhMjUxNTQ4YTI0YWU1MThiMi4uNWZkN2Y3M2UyYjg3ODQxZDE5OWQ3Njk0MmY2MzA0OTY2MGU4
NjM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTA0Niw4ICsxMDQ2LDYgQEAKICAgICAgICAgICAg
ICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0
UnVubmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAotICAgICAgICAgICAg
J2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oJywKLSAgICAgICAgICAgICdkb20vU2hhZG93Q29u
dGVudFNlbGVjdG9yUXVlcnkuaCcsCiAgICAgICAgICAgICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcu
aCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlZEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnZG9t
L1RleHQuaCcsCkBAIC0xMDYwLDYgKzEwNTgsNyBAQAogICAgICAgICBdLAogICAgICAgICAnd2Vi
Y29yZV9odG1sX3ByaXZhdGVoZWFkZXJfZmlsZXMnOiBbCiAgICAgICAgICAgICAnaHRtbC9Db2xs
ZWN0aW9uVHlwZS5oJywKKyAgICAgICAgICAgICdodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmgn
LAogICAgICAgICAgICAgJ2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgnLAogICAgICAgICAg
ICAgJ2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MQ29s
bGVjdGlvbi5oJywKQEAgLTU0NjMsMTIgKzU0NjIsNiBAQAogICAgICAgICAgICAgJ2RvbS9TZWN1
cml0eUNvbnRleHQuaCcsCiAgICAgICAgICAgICAnZG9tL1NlbGVjdG9yUXVlcnkuY3BwJywKICAg
ICAgICAgICAgICdkb20vU2VsZWN0b3JRdWVyeS5oJywKLSAgICAgICAgICAgICdkb20vU2hhZG93
Q29udGVudEVsZW1lbnQuY3BwJywKLSAgICAgICAgICAgICdkb20vU2hhZG93Q29udGVudEVsZW1l
bnQuaCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCcs
Ci0gICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgnLAotICAgICAg
ICAgICAgJ2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAnLAotICAgICAgICAgICAgJ2Rv
bS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oJywKICAgICAgICAgICAgICdkb20vU2hhZG93Um9v
dC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAogICAgICAgICAgICAgJ2Rv
bS9TcGFjZVNwbGl0U3RyaW5nLmNwcCcsCkBAIC01NTQxLDYgKzU1MzQsMTAgQEAKICAgICAgICAg
ICAgICdodG1sL0NsYXNzTGlzdC5oJywKICAgICAgICAgICAgICdodG1sL0NvbG9ySW5wdXRUeXBl
LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9Db2xvcklucHV0VHlwZS5oJywKKyAgICAgICAgICAg
ICdodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9Db250
ZW50U2VsZWN0b3JRdWVyeS5oJywKKyAgICAgICAgICAgICdodG1sL0NvbnRlbnRJbmNsdXNpb25T
ZWxlY3Rvci5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvQ29udGVudEluY2x1c2lvblNlbGVjdG9y
LmgnLAogICAgICAgICAgICAgJ2h0bWwvRE9NRm9ybURhdGEuY3BwJywKICAgICAgICAgICAgICdo
dG1sL0RPTUZvcm1EYXRhLmgnLAogICAgICAgICAgICAgJ2h0bWwvRE9NU2V0dGFibGVUb2tlbkxp
c3QuY3BwJywKQEAgLTU1ODYsNiArNTU4Myw4IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCcs
CiAgICAgICAgICAgICAnaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAnLAorICAgICAgICAgICAgJ2h0
bWwvSFRNTENvbnRlbnRFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MQ29udGVu
dEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRExpc3RFbGVtZW50LmNwcCcsCiAg
ICAgICAgICAgICAnaHRtbC9IVE1MRExpc3RFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwv
SFRNTERhdGFMaXN0RWxlbWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagppbmRleCBlNzdjMWZmMTJiNDQzNGZkYjljOGUzOGY2YjA4MWZmZmE4
ODgyMzFkLi4yYzBlNTUwMzc4MmRkZmU1N2IwZjMyYmI5MTQxNjljYmI5ODA0OWNlIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTA5OTgsMjMw
ICs1MDk5OCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVudC5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
Ci0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
PC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50
RWxlbWVudC5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJ
PFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRv
b2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fp
cm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJS
ZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
Ci0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJ
CS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVudC5oIgotCQkJCT4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2hhZG93Q29udGVudEVs
ZW1lbnQuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0NvbnRl
bnRTZWxlY3RvclF1ZXJ5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAiCi0JCQkJPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFk
b3dJbmNsdXNpb25TZWxlY3Rvci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxkb21cU3BhY2VTcGxpdFN0cmluZy5jcHAiCiAJCQkJPgogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgpAQCAtNTU5NTgsNiArNTU3MzQsMTE4IEBACiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcU2hhZG93Q29udGVudFNl
bGVjdG9yUXVlcnkuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcU2hh
ZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXFNoYWRvd0luY2x1c2lvblNlbGVjdG9y
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0
bWxcY2FudmFzXERhdGFWaWV3LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC01NjkwMiw2ICs1
Njc5MCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxodG1sXEhUTUxDb250ZW50RWxlbWVudC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTENvbnRlbnRFbGVt
ZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGh0bWxcSFRNTERhdGFMaXN0RWxlbWVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggNTViNjA1MjhhYWEyOTNjZDY2
NWM0YzkyMjdiYTg4NDc4ODVmNmEzZS4uZjJjYjQ2N2RjYzEzM2NiYjNkODA0MGZlMTA2YzJiZThk
ZTEyOGI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0xMTIsOSArMTEyLDYg
QEAKICNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwIgogI2luY2x1ZGUgIlNl
Y3VyaXR5Q29udGV4dC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JRdWVyeS5jcHAiCi0jaW5jbHVk
ZSAiU2hhZG93Q29udGVudEVsZW1lbnQuY3BwIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcCIKLSNpbmNsdWRlICJTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5jcHAiCiAjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5jcHAi
CiAjaW5jbHVkZSAiU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGVmODVmN2QyM2Y3ODIzZjljZjFmMTBk
NWM4ODIxYmE4YWE3MWJjMDkuLjIyNmMwZjRiZThlNTU4ZmY5MDBiOTQxZDA4YjIwNWExYzIyY2E5
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAt
MjcsMTMgKzI3LDEzIEBACiAjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2lu
Y2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKKyNpbmNsdWRlICJDb250ZW50SW5jbHVzaW9uU2VsZWN0
b3IuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlLmgi
CiAjaW5jbHVkZSAiUmVuZGVyRmxvd1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlckZ1bGxTY3Jl
ZW4uaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3Lmgi
Ci0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTaGFkb3dJbmNs
dXNpb25TZWxlY3Rvci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKIAogI2lmIEVOQUJMRShT
VkcpCkBAIC0xMTEsNyArMTExLDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTm9kZVJlbmRl
cmluZ0NvbnRleHQ6OnJlbGVhc2VTdHlsZSgpCiAgICAgcmV0dXJuIG1fc3R5bGUucmVsZWFzZSgp
OwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXJPZihTaGFkb3dDb250ZW50
RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGljIFJlbmRlck9iamVjdCogbmV4
dFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCiB7
CiAgICAgU2hhZG93SW5jbHVzaW9uKiBjdXJyZW50SW5jbHVzaW9uID0gcGFyZW50LT5pbmNsdXNp
b25zKCktPmZpbmQoY3VycmVudCk7CiAgICAgaWYgKCFjdXJyZW50SW5jbHVzaW9uKQpAQCAtMTI1
LDcgKzEyNSw3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlck9mKFNoYWRvd0Nv
bnRlbnRFbGVtZW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCiAgICAgcmV0dXJuIDA7CiB9CiAK
LXN0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXJPZihTaGFkb3dDb250ZW50RWxl
bWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGljIFJlbmRlck9iamVjdCogcHJldmlv
dXNSZW5kZXJlck9mKEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQog
ewogICAgIFJlbmRlck9iamVjdCogbGFzdFJlbmRlcmVyID0gMDsKIApAQCAtMTM5LDcgKzEzOSw3
IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXJPZihTaGFkb3dDb250ZW50
RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyCiAgICAgcmV0dXJuIGxhc3RSZW5kZXJlcjsKIH0K
IAotc3RhdGljIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVt
ZW50KiBwYXJlbnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBmaXJzdFJlbmRlcmVyT2YoSFRNTENv
bnRlbnRFbGVtZW50KiBwYXJlbnQpCiB7CiAgICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1
c2lvbiA9IHBhcmVudC0+aW5jbHVzaW9ucygpLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lv
biA9IGluY2x1c2lvbi0+bmV4dCgpKSB7CiAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRl
cmVyID0gaW5jbHVzaW9uLT5jb250ZW50KCktPnJlbmRlcmVyKCkpCkBAIC0xNDksNyArMTQ5LDcg
QEAgc3RhdGljIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVt
ZW50KiBwYXJlbnQpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIGxh
c3RSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQpCitzdGF0aWMgUmVuZGVy
T2JqZWN0KiBsYXN0UmVuZGVyZXJPZihIVE1MQ29udGVudEVsZW1lbnQqIHBhcmVudCkKIHsKICAg
ICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gcGFyZW50LT5pbmNsdXNpb25zKCkt
Pmxhc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNsdXNpb24tPnByZXZpb3VzKCkpIHsK
ICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBpbmNsdXNpb24tPmNvbnRlbnQo
KS0+cmVuZGVyZXIoKSkKQEAgLTE4Nyw3ICsxODcsNyBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5k
ZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIG5v
ZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUtPmlzQ29udGVudEVs
ZW1lbnQoKSkgewotICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogZmlyc3QgPSBmaXJzdFJl
bmRlcmVyT2YodG9TaGFkb3dDb250ZW50RWxlbWVudChub2RlKSkpCisgICAgICAgICAgICBpZiAo
UmVuZGVyT2JqZWN0KiBmaXJzdCA9IGZpcnN0UmVuZGVyZXJPZih0b0hUTUxDb250ZW50RWxlbWVu
dChub2RlKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0OwogICAgICAgICB9CiAgICAg
fQpAQCAtMjIwLDcgKzIyMCw3IEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6
OnByZXZpb3VzUmVuZGVyZXIoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIG5vZGUtPnJlbmRl
cmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUtPmlzQ29udGVudEVsZW1lbnQoKSkg
ewotICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogbGFzdCA9IGxhc3RSZW5kZXJlck9mKHRv
U2hhZG93Q29udGVudEVsZW1lbnQobm9kZSkpKQorICAgICAgICAgICAgaWYgKFJlbmRlck9iamVj
dCogbGFzdCA9IGxhc3RSZW5kZXJlck9mKHRvSFRNTENvbnRlbnRFbGVtZW50KG5vZGUpKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gbGFzdDsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggYjRlODkxMjk3YTYyY2I0N2RiN2M5
NTg0M2EwZWEwN2RjYTRmNmJiMC4uZDMxNDExNzZmMjA1NDM0MjI3MGY2YTRlMTMxY2Y5ZDRiYmVk
ZTk4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTM4
LDcgKzM4LDcgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CiBjbGFzcyBS
ZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJTdHlsZTsKLWNsYXNzIFNoYWRvd0NvbnRlbnRFbGVt
ZW50OworY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OwogY2xhc3MgU2hhZG93Um9vdDsKIAogY2xh
c3MgTm9kZVJlbmRlcmluZ0NvbnRleHQgewpAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAg
UmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlcigpIGNvbnN0OwogICAgIFJlbmRlck9iamVjdCog
bmV4dFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVy
KCkgY29uc3Q7Ci0gICAgU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyKCkgY29uc3Q7Cisg
ICAgSFRNTENvbnRlbnRFbGVtZW50KiBpbmNsdWRlcigpIGNvbnN0OwogCiAgICAgUmVuZGVyU3R5
bGUqIHN0eWxlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPik7CkBAIC04Niw3ICs4Niw3IEBAIHByaXZhdGU6CiAgICAgTm9kZSogbV9ub2RlOwogICAg
IENvbnRhaW5lck5vZGUqIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlOwogICAgIFNo
YWRvd1Jvb3QqIG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdDsKLSAgICBTaGFkb3dDb250ZW50RWxl
bWVudCogbV9pbmNsdWRlcjsKKyAgICBIVE1MQ29udGVudEVsZW1lbnQqIG1faW5jbHVkZXI7CiAg
ICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX3N0eWxlOwogICAgIFJlbmRlckZsb3dUaHJlYWQqIG1f
cGFyZW50Rmxvd1JlbmRlcmVyOwogICAgIEF0b21pY1N0cmluZyBtX2Zsb3dUaHJlYWQ7CkBAIC0x
MDgsNyArMTA4LDcgQEAgaW5saW5lIFJlbmRlclN0eWxlKiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6
c3R5bGUoKSBjb25zdAogICAgIHJldHVybiBtX3N0eWxlLmdldCgpOwogfQogCi1pbmxpbmUgU2hh
ZG93Q29udGVudEVsZW1lbnQqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjppbmNsdWRlcigpIGNvbnN0
CitpbmxpbmUgSFRNTENvbnRlbnRFbGVtZW50KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6aW5jbHVk
ZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX2luY2x1ZGVyOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDYzYmNmMDFlMzBmMDk4YjYxMmVhOTc0NmQyMDMzYmM3NTc1NzllMjQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd0NvbnRlbnRFbGVtZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuaCIKLQot
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKLSNpbmNs
dWRlICJTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIgotI2luY2x1ZGUgIlNoYWRvd0luY2x1
c2lvblNlbGVjdG9yLmgiCi0jaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBIVE1MTmFtZXM6
OnNlbGVjdEF0dHI7Ci0KLVBhc3NSZWZQdHI8U2hhZG93Q29udGVudEVsZW1lbnQ+IFNoYWRvd0Nv
bnRlbnRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQotewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgdGFnTmFtZSwgKG51bGxBdG9tLCAid2Via2l0U2hh
ZG93Q29udGVudCIsIEhUTUxOYW1lczo6ZGl2VGFnLm5hbWVzcGFjZVVSSSgpKSk7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTaGFkb3dDb250ZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OwotfQotCi1TaGFkb3dDb250ZW50RWxlbWVudDo6U2hhZG93Q29udGVudEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogU3R5bGVkRWxl
bWVudChuYW1lLCBkb2N1bWVudCwgQ3JlYXRlSFRNTEVsZW1lbnQpCi0gICAgLCBtX2luY2x1c2lv
bnMoYWRvcHRQdHIobmV3IFNoYWRvd0luY2x1c2lvbkxpc3QoKSkpCi17Ci19Ci0KLVNoYWRvd0Nv
bnRlbnRFbGVtZW50Ojp+U2hhZG93Q29udGVudEVsZW1lbnQoKQotewotfQotCi12b2lkIFNoYWRv
d0NvbnRlbnRFbGVtZW50OjphdHRhY2goKQotewotICAgIEFTU0VSVCghZmlyc3RDaGlsZCgpKTsg
Ly8gQ3VycmVudGx5IGRvZXNuJ3Qgc3VwcG9ydCBhbnkgbGlnaHQgY2hpbGQuCi0gICAgU3R5bGVk
RWxlbWVudDo6YXR0YWNoKCk7Ci0KLSAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93
Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkpIHsKLSAgICAgICAgU2hhZG93SW5jbHVzaW9uU2Vs
ZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+ZW5zdXJlSW5jbHVzaW9ucygpOwotICAgICAgICBzZWxl
Y3Rvci0+dW5zZWxlY3QobV9pbmNsdXNpb25zLmdldCgpKTsKLSAgICAgICAgc2VsZWN0b3ItPnNl
bGVjdCh0aGlzLCBtX2luY2x1c2lvbnMuZ2V0KCkpOwotICAgICAgICBmb3IgKFNoYWRvd0luY2x1
c2lvbiogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1
c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQotICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50
KCktPmRldGFjaCgpOwotICAgICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0g
bV9pbmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+
bmV4dCgpKQotICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50KCktPmF0dGFjaCgpOwotICAg
IH0KLX0KLQotdm9pZCBTaGFkb3dDb250ZW50RWxlbWVudDo6ZGV0YWNoKCkKLXsKLSAgICBpZiAo
U2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkpIHsK
LSAgICAgICAgaWYgKFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmlu
Y2x1c2lvbnMoKSkKLSAgICAgICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdChtX2luY2x1c2lvbnMu
Z2V0KCkpOwotICAgIH0KLQotICAgIEFTU0VSVChtX2luY2x1c2lvbnMtPmlzRW1wdHkoKSk7Ci0g
ICAgU3R5bGVkRWxlbWVudDo6ZGV0YWNoKCk7Ci19Ci0KLWNvbnN0IEF0b21pY1N0cmluZyYgU2hh
ZG93Q29udGVudEVsZW1lbnQ6OnNlbGVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGdldEF0dHJp
YnV0ZShzZWxlY3RBdHRyKTsKLX0KLQotdm9pZCBTaGFkb3dDb250ZW50RWxlbWVudDo6c2V0U2Vs
ZWN0KGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0VmFsdWUpCi17Ci0gICAgc2V0QXR0cmlidXRl
KHNlbGVjdEF0dHIsIHNlbGVjdFZhbHVlKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Q29udGVudEVsZW1lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWNlNDdh
ZGMxMTNmZmEzODNjZDI5OGU4MTRjYTRiN2Q5YjhkY2ZmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVu
dEVsZW1lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNoYWRvd0Nv
bnRlbnRFbGVtZW50X2gKLSNkZWZpbmUgU2hhZG93Q29udGVudEVsZW1lbnRfaAotCi0jaW5jbHVk
ZSAiU3R5bGVkRWxlbWVudC5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnk7Ci1jbGFzcyBT
aGFkb3dJbmNsdXNpb25MaXN0OwotCi0vLyBOT1RFOiBDdXJyZW50IGltcGxlbWVudGF0aW9uIGRv
ZXNuJ3Qgc3VwcG9ydCBkeW5hbWljIGluc2VydGlvbi9kZWxldGlvbiBvZiBTaGFkb3dDb250ZW50
RWxlbWVudC4KLS8vIFlvdSBzaG91bGQgY3JlYXRlIFNoYWRvd0NvbnRlbnRFbGVtZW50IGR1cmlu
ZyB0aGUgaG9zdCBjb25zdHJ1Y3Rpb24uCi1jbGFzcyBTaGFkb3dDb250ZW50RWxlbWVudCA6IHB1
YmxpYyBTdHlsZWRFbGVtZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFk
b3dDb250ZW50RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7Ci0KLSAgICB2aXJ0dWFsIH5TaGFk
b3dDb250ZW50RWxlbWVudCgpOwotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGV0YWNoKCk7Ci0KLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdCgpIGNv
bnN0OwotCi0gICAgLy8gRklYTUU6IEN1cnJlbnRseSB0aGlzIGNvbnN0cnVjdG9yIGFjY2VwdHMg
d2lkZXIgcXVlcnkgdGhhbiBzaGFkb3cgZG9tIHNwZWMuCi0gICAgLy8gRm9yIGV4YW1wbGUsIGEg
c2VsZWN0b3IgcXVlcnkgc2hvdWxkIG5vdCBpbmNsdWRlIGNvbnRleHR1YWwgc2VsZWN0b3JzLgot
ICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDYK
LSAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGRvbid0IHN1cHBvcnQgc2V0dGluZyBzZWxlY3Qg
dmFsdWUgZHluYW1pY2FsbHkuCi0gICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NjI2MQotICAgIHZvaWQgc2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmlu
ZyYpOwotCi0gICAgY29uc3QgU2hhZG93SW5jbHVzaW9uTGlzdCogaW5jbHVzaW9ucygpIGNvbnN0
IHsgcmV0dXJuIG1faW5jbHVzaW9ucy5nZXQoKTsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgU2hhZG93
Q29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Ci0KLXByaXZh
dGU6Ci0gICAgdmlydHVhbCBib29sIGlzQ29udGVudEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRl
cmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0
KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgeyByZXR1cm4gMDsg
fQotCi0gICAgT3duUHRyPFNoYWRvd0luY2x1c2lvbkxpc3Q+IG1faW5jbHVzaW9uczsKLX07Ci0K
LWlubGluZSBTaGFkb3dDb250ZW50RWxlbWVudCogdG9TaGFkb3dDb250ZW50RWxlbWVudChOb2Rl
KiBub2RlKQotewotICAgIEFTU0VSVCghbm9kZSB8fCBub2RlLT5pc0NvbnRlbnRFbGVtZW50KCkp
OwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFkb3dDb250ZW50RWxlbWVudCo+KG5vZGUpOwot
fQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0Nv
bnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50
U2VsZWN0b3JRdWVyeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhMDYxZTc4
NjdiMjViZTVmZWFmMWNiZjRmNzQ0OGQyMzliNzQyY2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRT
ZWxlY3RvclF1ZXJ5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCIKLQot
I2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgotI2lu
Y2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
U2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnk6OlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5KFNo
YWRvd0NvbnRlbnRFbGVtZW50KiBlbGVtZW50KQotICAgIDogbV9jb250ZW50RWxlbWVudChlbGVt
ZW50KQotICAgICwgbV9zZWxlY3RvckNoZWNrZXIoZWxlbWVudC0+ZG9jdW1lbnQoKSwgIWVsZW1l
bnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQotewotICAgIG1fc2VsZWN0b3JDaGVja2Vy
LnNldENvbGxlY3RpbmdSdWxlc09ubHkodHJ1ZSk7Ci0KLSAgICBpZiAoZWxlbWVudC0+c2VsZWN0
KCkuaXNOdWxsKCkgfHwgZWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBDU1NQYXJzZXIgcGFyc2VyKHRydWUpOwotICAgIHBhcnNlci5wYXJzZVNlbGVj
dG9yKGVsZW1lbnQtPnNlbGVjdCgpLCBlbGVtZW50LT5kb2N1bWVudCgpLCBtX3NlbGVjdG9yTGlz
dCk7Ci0KLSAgICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKG1fc2VsZWN0b3JMaXN0KTsKLX0KLQot
Ym9vbCBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hlcyhOb2RlKiBub2RlKSBjb25z
dAotewotICAgIEFTU0VSVChub2RlKTsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIEFTU0VSVChub2RlLT5wYXJlbnROb2RlKCkgPT0gbV9jb250ZW50RWxlbWVu
dC0+c2hhZG93VHJlZVJvb3ROb2RlKCktPnNoYWRvd0hvc3QoKSk7Ci0KLSAgICBpZiAobV9jb250
ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9jb250ZW50RWxlbWVudC0+c2VsZWN0
KCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmICghbm9kZS0+aXNF
bGVtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9zZWxl
Y3RvcnMubWF0Y2hlcyhtX3NlbGVjdG9yQ2hlY2tlciwgdG9FbGVtZW50KG5vZGUpKTsKLX0KLQot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1
ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU2ODczYjM0MzBjM2EyYzI0N2ExODBhZTRk
YTNkYjEwNGYwNzMwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaAorKysg
L2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1
ZXJ5X2gKLSNkZWZpbmUgU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnlfaAotCi0jaW5jbHVkZSAi
Q1NTU2VsZWN0b3JMaXN0LmgiCi0jaW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCi0jaW5jbHVk
ZSAiU2VsZWN0b3JRdWVyeS5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3VtZW50Owot
Y2xhc3MgTm9kZTsKLWNsYXNzIFNoYWRvd0NvbnRlbnRFbGVtZW50OwotCi1jbGFzcyBTaGFkb3dD
b250ZW50U2VsZWN0b3JRdWVyeSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2hhZG93Q29u
dGVudFNlbGVjdG9yUXVlcnkpOwotcHVibGljOgotICAgIGV4cGxpY2l0IFNoYWRvd0NvbnRlbnRT
ZWxlY3RvclF1ZXJ5KFNoYWRvd0NvbnRlbnRFbGVtZW50Kik7Ci0KLSAgICBib29sIG1hdGNoZXMo
Tm9kZSopIGNvbnN0OwotCi1wcml2YXRlOgotICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBtX2Nv
bnRlbnRFbGVtZW50OwotICAgIFNlbGVjdG9yRGF0YUxpc3QgbV9zZWxlY3RvcnM7Ci0gICAgQ1NT
U2VsZWN0b3JMaXN0IG1fc2VsZWN0b3JMaXN0OwotICAgIFNlbGVjdG9yQ2hlY2tlciBtX3NlbGVj
dG9yQ2hlY2tlcjsKLX07Ci0KLX0KLQotCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDU3ZTlkNDJiZTUxYjVlNDUyYzRkNDA1NGUyMGJhNGM3Yjg1NTQ4YTEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE1NSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0g
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNoYWRvd0luY2x1c2lvblNlbGVjdG9y
LmgiCi0KLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5oIgotI2luY2x1ZGUgIlNoYWRv
d0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCi0jaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTaGFkb3dJbmNsdXNpb246OmFwcGVuZChQYXNzUmVm
UHRyPFNoYWRvd0luY2x1c2lvbj4gbmV4dCkKLXsKLSAgICBBU1NFUlQoIW1fbmV4dCk7Ci0gICAg
QVNTRVJUKCFuZXh0LT5wcmV2aW91cygpKTsKLSAgICBtX25leHQgPSBuZXh0OwotICAgIG1fbmV4
dC0+bV9wcmV2aW91cyA9IHRoaXM7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uOjp1bmxpbmso
KQotewotICAgIEFTU0VSVCghbV9wcmV2aW91cyk7IC8vIENhbiBiZSBjYWxsZWQgb25seSBmb3Ig
YSBoZWFkLgotICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGl0ZW0gPSB0aGlzOwotICAgIHdo
aWxlIChpdGVtKSB7Ci0gICAgICAgIEFTU0VSVCghaXRlbS0+cHJldmlvdXMoKSk7Ci0gICAgICAg
IFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG5leHRJdGVtID0gaXRlbS0+bV9uZXh0OwotICAgICAg
ICBpdGVtLT5tX25leHQuY2xlYXIoKTsKLSAgICAgICAgaWYgKG5leHRJdGVtKQotICAgICAgICAg
ICAgbmV4dEl0ZW0tPm1fcHJldmlvdXMuY2xlYXIoKTsKLSAgICAgICAgaXRlbSA9IG5leHRJdGVt
OwotICAgIH0KLX0KLQotU2hhZG93SW5jbHVzaW9uTGlzdDo6U2hhZG93SW5jbHVzaW9uTGlzdCgp
Ci17Ci19Ci0KLVNoYWRvd0luY2x1c2lvbkxpc3Q6On5TaGFkb3dJbmNsdXNpb25MaXN0KCkKLXsK
LSAgICBBU1NFUlQoaXNFbXB0eSgpKTsKLX0KLQotU2hhZG93SW5jbHVzaW9uKiBTaGFkb3dJbmNs
dXNpb25MaXN0OjpmaW5kKE5vZGUqIGNvbnRlbnQpIGNvbnN0Ci17Ci0gICAgZm9yIChTaGFkb3dJ
bmNsdXNpb24qIGl0ZW0gPSBmaXJzdCgpOyBpdGVtOyBpdGVtID0gaXRlbS0+bmV4dCgpKSB7Ci0g
ICAgICAgIGlmIChjb250ZW50ID09IGl0ZW0tPmNvbnRlbnQoKSkKLSAgICAgICAgICAgIHJldHVy
biBpdGVtOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBTaGFkb3dJbmNs
dXNpb25MaXN0OjpjbGVhcigpCi17Ci0gICAgaWYgKGlzRW1wdHkoKSkgewotICAgICAgICBBU1NF
UlQoIW1fbGFzdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX2ZpcnN0LT51bmxp
bmsoKTsKLSAgICBtX2ZpcnN0LmNsZWFyKCk7Ci0gICAgbV9sYXN0LmNsZWFyKCk7Ci19Ci0KLXZv
aWQgU2hhZG93SW5jbHVzaW9uTGlzdDo6YXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9u
PiBjaGlsZCkKLXsKLSAgICBpZiAoaXNFbXB0eSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbV9sYXN0
KTsKLSAgICAgICAgbV9maXJzdCA9IG1fbGFzdCA9IGNoaWxkOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgbV9sYXN0LT5hcHBlbmQoY2hpbGQpOwotICAgIG1fbGFzdCA9IG1fbGFzdC0+
bmV4dCgpOwotfQotCi1TaGFkb3dJbmNsdXNpb25TZWxlY3Rvcjo6U2hhZG93SW5jbHVzaW9uU2Vs
ZWN0b3IoKQotewotfQotCi1TaGFkb3dJbmNsdXNpb25TZWxlY3Rvcjo6flNoYWRvd0luY2x1c2lv
blNlbGVjdG9yKCkKLXsKLSAgICBBU1NFUlQobV9jYW5kaWRhdGVzLmlzRW1wdHkoKSk7Ci19Ci0K
LXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OnNlbGVjdChTaGFkb3dDb250ZW50RWxlbWVu
dCogY29udGVudEVsZW1lbnQsIFNoYWRvd0luY2x1c2lvbkxpc3QqIGluY2x1c2lvbnMpCi17Ci0g
ICAgQVNTRVJUKGluY2x1c2lvbnMtPmlzRW1wdHkoKSk7Ci0KLSAgICBTaGFkb3dDb250ZW50U2Vs
ZWN0b3JRdWVyeSBxdWVyeShjb250ZW50RWxlbWVudCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX2NhbmRpZGF0ZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgTm9kZSogY2hpbGQgPSBt
X2NhbmRpZGF0ZXNbaV0uZ2V0KCk7Ci0gICAgICAgIGlmICghY2hpbGQpCi0gICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgaWYgKCFxdWVyeS5tYXRjaGVzKGNoaWxkKSkKLSAgICAgICAgICAg
IGNvbnRpbnVlOwotCi0gICAgICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGluY2x1c2lvbiA9
IFNoYWRvd0luY2x1c2lvbjo6Y3JlYXRlKGNvbnRlbnRFbGVtZW50LCBjaGlsZCk7Ci0gICAgICAg
IGluY2x1c2lvbnMtPmFwcGVuZChpbmNsdXNpb24pOwotICAgICAgICBtX2luY2x1c2lvblNldC5h
ZGQoaW5jbHVzaW9uLmdldCgpKTsKLSAgICAgICAgbV9jYW5kaWRhdGVzW2ldID0gMDsKLSAgICB9
Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OnVuc2VsZWN0KFNoYWRvd0luY2x1
c2lvbkxpc3QqIGxpc3QpCi17Ci0gICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1c2lvbiA9
IGxpc3QtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0KCkp
Ci0gICAgICAgIG1faW5jbHVzaW9uU2V0LnJlbW92ZShpbmNsdXNpb24pOwotICAgIGxpc3QtPmNs
ZWFyKCk7Ci19Ci0KLVNoYWRvd0luY2x1c2lvbiogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OmZp
bmRGb3IoTm9kZSoga2V5KSBjb25zdAotewotICAgIHJldHVybiBtX2luY2x1c2lvblNldC5maW5k
KGtleSk7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OmRpZFNlbGVjdCgpCi17
Ci0gICAgbV9jYW5kaWRhdGVzLmNsZWFyKCk7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2Vs
ZWN0b3I6OndpbGxTZWxlY3RPdmVyKFNoYWRvd1Jvb3QqIHNjb3BlKQotewotICAgIGlmICghbV9j
YW5kaWRhdGVzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGZvciAoTm9kZSogbm9k
ZSA9IHNjb3BlLT5zaGFkb3dIb3N0KCktPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUt
Pm5leHRTaWJsaW5nKCkpCi0gICAgICAgIG1fY2FuZGlkYXRlcy5hcHBlbmQobm9kZSk7Ci19Ci0K
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rv
ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxYTg3MTc0NDFiMTljMmQ2YWZhMGU4ZjM0MDc1ODQx
MDIxOGI0ZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgKKysrIC9kZXYvbnVs
bApAQCAtMSwxNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0g
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3JfaAotI2Rl
ZmluZSBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvcl9oCi0KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
LSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
RWxlbWVudDsKLWNsYXNzIE5vZGU7Ci1jbGFzcyBTaGFkb3dSb290OwotY2xhc3MgU2hhZG93Q29u
dGVudEVsZW1lbnQ7Ci0KLWNsYXNzIFNoYWRvd0luY2x1c2lvbiA6IHB1YmxpYyBSZWZDb3VudGVk
PFNoYWRvd0luY2x1c2lvbj4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYWRv
d0luY2x1c2lvbj4gY3JlYXRlKFNoYWRvd0NvbnRlbnRFbGVtZW50KiwgTm9kZSopOwotCi0gICAg
U2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9pbmNsdWRl
cjsgfQotICAgIE5vZGUqIGNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnQuZ2V0KCk7
IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIG5leHQoKSBjb25zdCB7IHJldHVybiBtX25leHQuZ2V0
KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIHByZXZpb3VzKCkgY29uc3QgeyByZXR1cm4gbV9w
cmV2aW91cy5nZXQoKTsgfQotCi0gICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTaGFkb3dJbmNs
dXNpb24+KTsKLSAgICB2b2lkIHVubGluaygpOwotCi1wcml2YXRlOgotICAgIFNoYWRvd0luY2x1
c2lvbihTaGFkb3dDb250ZW50RWxlbWVudCosIE5vZGUqKTsKLQotICAgIFNoYWRvd0NvbnRlbnRF
bGVtZW50KiBtX2luY2x1ZGVyOwotICAgIFJlZlB0cjxOb2RlPiBtX2NvbnRlbnQ7Ci0gICAgUmVm
UHRyPFNoYWRvd0luY2x1c2lvbj4gbV9uZXh0OwotICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+
IG1fcHJldmlvdXM7Ci19OwotCi1pbmxpbmUgU2hhZG93SW5jbHVzaW9uOjpTaGFkb3dJbmNsdXNp
b24oU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyLCBOb2RlKiBjb250ZW50KQotICAgIDog
bV9pbmNsdWRlcihpbmNsdWRlciksIG1fY29udGVudChjb250ZW50KQoteyB9Ci0KLWlubGluZSBQ
YXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gU2hhZG93SW5jbHVzaW9uOjpjcmVhdGUoU2hhZG93
Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyLCBOb2RlKiBjb250ZW50KQotewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU2hhZG93SW5jbHVzaW9uKGluY2x1ZGVyLCBjb250ZW50KSk7Ci19Ci0KLWNs
YXNzIFNoYWRvd0luY2x1c2lvbkxpc3QgewotcHVibGljOgotICAgIFNoYWRvd0luY2x1c2lvbkxp
c3QoKTsKLSAgICB+U2hhZG93SW5jbHVzaW9uTGlzdCgpOwotCi0gICAgU2hhZG93SW5jbHVzaW9u
KiBmaXJzdCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3QuZ2V0KCk7IH0KLSAgICBTaGFkb3dJbmNs
dXNpb24qIGxhc3QoKSBjb25zdCB7IHJldHVybiBtX2xhc3QuZ2V0KCk7IH0KLSAgICBTaGFkb3dJ
bmNsdXNpb24qIGZpbmQoTm9kZSopIGNvbnN0OwotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsg
cmV0dXJuICFtX2ZpcnN0OyB9Ci0KLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgdm9pZCBhcHBlbmQo
UGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+KTsKLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8U2hh
ZG93SW5jbHVzaW9uPiBtX2ZpcnN0OwotICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG1fbGFz
dDsKLX07Ci0KLQotY2xhc3MgU2hhZG93SW5jbHVzaW9uU2V0IHsKLXB1YmxpYzoKLSAgICB2b2lk
IGFkZChTaGFkb3dJbmNsdXNpb24qIHZhbHVlKSB7IG1fc2V0LmFkZCh2YWx1ZSk7IH0KLSAgICB2
b2lkIHJlbW92ZShTaGFkb3dJbmNsdXNpb24qIHZhbHVlKSB7IG1fc2V0LnJlbW92ZSh2YWx1ZSk7
IH0KLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3NldC5pc0VtcHR5KCk7IH0K
LSAgICBTaGFkb3dJbmNsdXNpb24qIGZpbmQoTm9kZSoga2V5KSBjb25zdDsKLQotcHJpdmF0ZToK
LSAgICBzdHJ1Y3QgVHJhbnNsYXRvciB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgdW5z
aWduZWQgaGFzaChjb25zdCBOb2RlKiBrZXkpIHsgcmV0dXJuIFB0ckhhc2g8Y29uc3QgTm9kZSo+
OjpoYXNoKGtleSk7IH0KLSAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU2hhZG93SW5j
bHVzaW9uKiBpbmNsdXNpb24sIGNvbnN0IE5vZGUqIGNvbnRlbnQpIHsgcmV0dXJuIGluY2x1c2lv
bi0+Y29udGVudCgpID09IGNvbnRlbnQ7IH0KLSAgICB9OwotCi0gICAgc3RydWN0IEhhc2ggewot
ICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChTaGFkb3dJbmNsdXNpb24qIGtleSkgeyByZXR1
cm4gUHRySGFzaDxjb25zdCBOb2RlKj46Omhhc2goa2V5LT5jb250ZW50KCkpOyB9Ci0gICAgICAg
IHN0YXRpYyBib29sIGVxdWFsKFNoYWRvd0luY2x1c2lvbiogYSwgU2hhZG93SW5jbHVzaW9uKiBi
KSB7IHJldHVybiBhLT5jb250ZW50KCkgPT0gYi0+Y29udGVudCgpOyB9Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7Ci0gICAg
fTsKLQotICAgIHR5cGVkZWYgSGFzaFNldDxTaGFkb3dJbmNsdXNpb24qLCBIYXNoPiBQb2ludGVy
U2V0OwotCi0gICAgUG9pbnRlclNldCBtX3NldDsKLX07Ci0KLWlubGluZSBTaGFkb3dJbmNsdXNp
b24qIFNoYWRvd0luY2x1c2lvblNldDo6ZmluZChOb2RlKiBrZXkpIGNvbnN0Ci17Ci0gICAgUG9p
bnRlclNldDo6aXRlcmF0b3IgZm91bmQgPSBtX3NldC5maW5kPE5vZGUqLCBTaGFkb3dJbmNsdXNp
b25TZXQ6OlRyYW5zbGF0b3I+KGtleSk7Ci0gICAgcmV0dXJuIGZvdW5kICE9IG1fc2V0LmVuZCgp
ID8gKmZvdW5kIDogMDsKLX0KLQotY2xhc3MgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IgewotICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKTsKLXB1YmxpYzoK
LSAgICBTaGFkb3dJbmNsdXNpb25TZWxlY3RvcigpOwotICAgIH5TaGFkb3dJbmNsdXNpb25TZWxl
Y3RvcigpOwotCi0gICAgdm9pZCBzZWxlY3QoU2hhZG93Q29udGVudEVsZW1lbnQqLCBTaGFkb3dJ
bmNsdXNpb25MaXN0Kik7Ci0gICAgdm9pZCB1bnNlbGVjdChTaGFkb3dJbmNsdXNpb25MaXN0Kik7
Ci0gICAgU2hhZG93SW5jbHVzaW9uKiBmaW5kRm9yKE5vZGUqIGtleSkgY29uc3Q7Ci0KLSAgICB2
b2lkIHdpbGxTZWxlY3RPdmVyKFNoYWRvd1Jvb3QqKTsKLSAgICB2b2lkIGRpZFNlbGVjdCgpOwot
ICAgIGJvb2wgaGFzQ2FuZGlkYXRlcygpIGNvbnN0IHsgcmV0dXJuICFtX2NhbmRpZGF0ZXMuaXNF
bXB0eSgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCByZW1vdmVGcm9tU2V0KFNoYWRvd0luY2x1
c2lvbkxpc3QqKTsKLSAgICB2b2lkIGFkZFRvU2V0KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKLQot
ICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiBtX2NhbmRpZGF0ZXM7Ci0gICAgU2hhZG93SW5jbHVz
aW9uU2V0IG1faW5jbHVzaW9uU2V0OwotfTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcAppbmRleCBlMmNlOWIwNDNlOTQ0YjFhYzYyMmI1NWMxMDA5MTFjNGJiODJlMDQ5
Li4yMjlkNTU4MTVhN2ZhZWVlNDc4YWQyOWE3MDhiMjU4OTZiMjRlYTZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuY3BwCkBAIC0yNiwxMiArMjYsMTIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJFbGVtZW50LmgiCiAKKyNpbmNs
dWRlICJDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNp
bmNsdWRlICJOb2RlUmFyZURhdGEuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5o
IgotI2luY2x1ZGUgIlNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiVGV4dC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBTaGFkb3dS
b290OjpyZWNhbGNTaGFkb3dUcmVlU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgIGNsZWFy
Q2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKLVNoYWRvd0NvbnRlbnRFbGVtZW50KiBTaGFk
b3dSb290OjppbmNsdWRlckZvcihOb2RlKiBub2RlKSBjb25zdAorSFRNTENvbnRlbnRFbGVtZW50
KiBTaGFkb3dSb290OjppbmNsdWRlckZvcihOb2RlKiBub2RlKSBjb25zdAogewogICAgIGlmICgh
bV9pbmNsdXNpb25zKQogICAgICAgICByZXR1cm4gMDsKQEAgLTE1NSwxNSArMTU1LDE1IEBAIHZv
aWQgU2hhZG93Um9vdDo6YXR0YWNoKCkKICAgICAgICAgbV9pbmNsdXNpb25zLT5kaWRTZWxlY3Qo
KTsKIH0KIAotU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIFNoYWRvd1Jvb3Q6OmluY2x1c2lvbnMo
KSBjb25zdAorQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBTaGFkb3dSb290OjppbmNsdXNpb25z
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbmNsdXNpb25zLmdldCgpOwogfQogCi1TaGFkb3dJ
bmNsdXNpb25TZWxlY3RvciogU2hhZG93Um9vdDo6ZW5zdXJlSW5jbHVzaW9ucygpCitDb250ZW50
SW5jbHVzaW9uU2VsZWN0b3IqIFNoYWRvd1Jvb3Q6OmVuc3VyZUluY2x1c2lvbnMoKQogewogICAg
IGlmICghbV9pbmNsdXNpb25zKQotICAgICAgICBtX2luY2x1c2lvbnMgPSBhZG9wdFB0cihuZXcg
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IoKSk7CisgICAgICAgIG1faW5jbHVzaW9ucyA9IGFkb3B0
UHRyKG5ldyBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IoKSk7CiAgICAgbV9pbmNsdXNpb25zLT53
aWxsU2VsZWN0T3Zlcih0aGlzKTsKICAgICByZXR1cm4gbV9pbmNsdXNpb25zLmdldCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggMzRkZGYzMzAxMTUyNGRhNzJkYmQ2ZmEyMjRkYjk0
YmY0YWQ5MTJkMy4uYzViYzBkYmNiNWQwY2RiOWE4MzQ1YmQ5YTFmOTIxN2UyMzAyYWMwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC0zMiw4ICszMiw4IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgU2hhZG93Q29udGVudEVsZW1lbnQ7Ci1jbGFz
cyBTaGFkb3dJbmNsdXNpb25TZWxlY3RvcjsKK2NsYXNzIEhUTUxDb250ZW50RWxlbWVudDsKK2Ns
YXNzIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvcjsKIAogY2xhc3MgU2hhZG93Um9vdCA6IHB1Ymxp
YyBUcmVlU2NvcGUgewogcHVibGljOgpAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHJlY2FsY1NoYWRvd1RyZWVTdHlsZShTdHlsZUNoYW5nZSk7CiAKLSAgICBTaGFkb3dDb250
ZW50RWxlbWVudCogaW5jbHVkZXJGb3IoTm9kZSopIGNvbnN0OworICAgIEhUTUxDb250ZW50RWxl
bWVudCogaW5jbHVkZXJGb3IoTm9kZSopIGNvbnN0OwogICAgIHZvaWQgaG9zdENoaWxkcmVuQ2hh
bmdlZCgpOwogICAgIGJvb2wgaXNJbmNsdXNpb25TZWxlY3RvckFjdGl2ZSgpIGNvbnN0OwogCkBA
IC01MCw4ICs1MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JTaGVl
dHMoKSBjb25zdDsKICAgICB2b2lkIHNldEFwcGx5QXV0aG9yU2hlZXRzKGJvb2wpOwogCi0gICAg
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIGluY2x1c2lvbnMoKSBjb25zdDsKLSAgICBTaGFkb3dJ
bmNsdXNpb25TZWxlY3RvciogZW5zdXJlSW5jbHVzaW9ucygpOworICAgIENvbnRlbnRJbmNsdXNp
b25TZWxlY3RvciogaW5jbHVzaW9ucygpIGNvbnN0OworICAgIENvbnRlbnRJbmNsdXNpb25TZWxl
Y3RvciogZW5zdXJlSW5jbHVzaW9ucygpOwogCiBwcml2YXRlOgogICAgIFNoYWRvd1Jvb3QoRG9j
dW1lbnQqKTsKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc0NvbnRlbnRF
bGVtZW50KCkgY29uc3Q7CiAKICAgICBib29sIG1fYXBwbHlBdXRob3JTaGVldHM7Ci0gICAgT3du
UHRyPFNoYWRvd0luY2x1c2lvblNlbGVjdG9yPiBtX2luY2x1c2lvbnM7CisgICAgT3duUHRyPENv
bnRlbnRJbmNsdXNpb25TZWxlY3Rvcj4gbV9pbmNsdXNpb25zOwogfTsKIAogaW5saW5lIFBhc3NS
ZWZQdHI8U2hhZG93Um9vdD4gU2hhZG93Um9vdDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudEluY2x1c2lvblNlbGVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42YjU0MWE1YWU4OTg3NTk4ZWI5YTkxMzI3NGE1YzRjNmFjZjgwZGM0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0
b3IuY3BwCkBAIC0wLDAgKzEsMTU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIgorCisjaW5jbHVkZSAiQ29udGVudFNlbGVjdG9y
UXVlcnkuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTaGFk
b3dSb290LmgiCisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFNoYWRvd0luY2x1c2lv
bjo6YXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBuZXh0KQoreworICAgIEFTU0VS
VCghbV9uZXh0KTsKKyAgICBBU1NFUlQoIW5leHQtPnByZXZpb3VzKCkpOworICAgIG1fbmV4dCA9
IG5leHQ7CisgICAgbV9uZXh0LT5tX3ByZXZpb3VzID0gdGhpczsKK30KKwordm9pZCBTaGFkb3dJ
bmNsdXNpb246OnVubGluaygpCit7CisgICAgQVNTRVJUKCFtX3ByZXZpb3VzKTsgLy8gQ2FuIGJl
IGNhbGxlZCBvbmx5IGZvciBhIGhlYWQuCisgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gaXRl
bSA9IHRoaXM7CisgICAgd2hpbGUgKGl0ZW0pIHsKKyAgICAgICAgQVNTRVJUKCFpdGVtLT5wcmV2
aW91cygpKTsKKyAgICAgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbmV4dEl0ZW0gPSBpdGVt
LT5tX25leHQ7CisgICAgICAgIGl0ZW0tPm1fbmV4dC5jbGVhcigpOworICAgICAgICBpZiAobmV4
dEl0ZW0pCisgICAgICAgICAgICBuZXh0SXRlbS0+bV9wcmV2aW91cy5jbGVhcigpOworICAgICAg
ICBpdGVtID0gbmV4dEl0ZW07CisgICAgfQorfQorCitTaGFkb3dJbmNsdXNpb25MaXN0OjpTaGFk
b3dJbmNsdXNpb25MaXN0KCkKK3sKK30KKworU2hhZG93SW5jbHVzaW9uTGlzdDo6flNoYWRvd0lu
Y2x1c2lvbkxpc3QoKQoreworICAgIEFTU0VSVChpc0VtcHR5KCkpOworfQorCitTaGFkb3dJbmNs
dXNpb24qIFNoYWRvd0luY2x1c2lvbkxpc3Q6OmZpbmQoTm9kZSogY29udGVudCkgY29uc3QKK3sK
KyAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaXRlbSA9IGZpcnN0KCk7IGl0ZW07IGl0ZW0gPSBp
dGVtLT5uZXh0KCkpIHsKKyAgICAgICAgaWYgKGNvbnRlbnQgPT0gaXRlbS0+Y29udGVudCgpKQor
ICAgICAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgfQorICAgIAorICAgIHJldHVybiAwOworfQor
Cit2b2lkIFNoYWRvd0luY2x1c2lvbkxpc3Q6OmNsZWFyKCkKK3sKKyAgICBpZiAoaXNFbXB0eSgp
KSB7CisgICAgICAgIEFTU0VSVCghbV9sYXN0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIG1fZmlyc3QtPnVubGluaygpOworICAgIG1fZmlyc3QuY2xlYXIoKTsKKyAgICBtX2xhc3Qu
Y2xlYXIoKTsKK30KKwordm9pZCBTaGFkb3dJbmNsdXNpb25MaXN0OjphcHBlbmQoUGFzc1JlZlB0
cjxTaGFkb3dJbmNsdXNpb24+IGNoaWxkKQoreworICAgIGlmIChpc0VtcHR5KCkpIHsKKyAgICAg
ICAgQVNTRVJUKCFtX2xhc3QpOworICAgICAgICBtX2ZpcnN0ID0gbV9sYXN0ID0gY2hpbGQ7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2xhc3QtPmFwcGVuZChjaGlsZCk7CisgICAg
bV9sYXN0ID0gbV9sYXN0LT5uZXh0KCk7Cit9CisKK0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6
Q29udGVudEluY2x1c2lvblNlbGVjdG9yKCkKK3sKK30KKworQ29udGVudEluY2x1c2lvblNlbGVj
dG9yOjp+Q29udGVudEluY2x1c2lvblNlbGVjdG9yKCkKK3sKKyAgICBBU1NFUlQobV9jYW5kaWRh
dGVzLmlzRW1wdHkoKSk7Cit9CisKK3ZvaWQgQ29udGVudEluY2x1c2lvblNlbGVjdG9yOjpzZWxl
Y3QoSFRNTENvbnRlbnRFbGVtZW50KiBjb250ZW50RWxlbWVudCwgU2hhZG93SW5jbHVzaW9uTGlz
dCogaW5jbHVzaW9ucykKK3sKKyAgICBBU1NFUlQoaW5jbHVzaW9ucy0+aXNFbXB0eSgpKTsKKwor
ICAgIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHF1ZXJ5KGNvbnRlbnRFbGVtZW50KTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fY2FuZGlkYXRlcy5zaXplKCk7ICsraSkgeworICAgICAgICBO
b2RlKiBjaGlsZCA9IG1fY2FuZGlkYXRlc1tpXS5nZXQoKTsKKyAgICAgICAgaWYgKCFjaGlsZCkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIXF1ZXJ5Lm1hdGNoZXMoY2hpbGQp
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lv
bj4gaW5jbHVzaW9uID0gU2hhZG93SW5jbHVzaW9uOjpjcmVhdGUoY29udGVudEVsZW1lbnQsIGNo
aWxkKTsKKyAgICAgICAgaW5jbHVzaW9ucy0+YXBwZW5kKGluY2x1c2lvbik7CisgICAgICAgIG1f
aW5jbHVzaW9uU2V0LmFkZChpbmNsdXNpb24uZ2V0KCkpOworICAgICAgICBtX2NhbmRpZGF0ZXNb
aV0gPSAwOworICAgIH0KK30KKwordm9pZCBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OnVuc2Vs
ZWN0KFNoYWRvd0luY2x1c2lvbkxpc3QqIGxpc3QpCit7CisgICAgZm9yIChTaGFkb3dJbmNsdXNp
b24qIGluY2x1c2lvbiA9IGxpc3QtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5j
bHVzaW9uLT5uZXh0KCkpCisgICAgICAgIG1faW5jbHVzaW9uU2V0LnJlbW92ZShpbmNsdXNpb24p
OworICAgIGxpc3QtPmNsZWFyKCk7Cit9CisKK1NoYWRvd0luY2x1c2lvbiogQ29udGVudEluY2x1
c2lvblNlbGVjdG9yOjpmaW5kRm9yKE5vZGUqIGtleSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9p
bmNsdXNpb25TZXQuZmluZChrZXkpOworfQorCit2b2lkIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rv
cjo6ZGlkU2VsZWN0KCkKK3sKKyAgICBtX2NhbmRpZGF0ZXMuY2xlYXIoKTsKK30KKwordm9pZCBD
b250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OndpbGxTZWxlY3RPdmVyKFNoYWRvd1Jvb3QqIHNjb3Bl
KQoreworICAgIGlmICghbV9jYW5kaWRhdGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIGZvciAoTm9kZSogbm9kZSA9IHNjb3BlLT5zaGFkb3dIb3N0KCktPmZpcnN0Q2hpbGQoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCisgICAgICAgIG1fY2FuZGlkYXRlcy5h
cHBlbmQobm9kZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29u
dGVudEluY2x1c2lvblNlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRJbmNs
dXNpb25TZWxlY3Rvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmMGIxOTc4ZWJjNzkxYmM0NjNjMjMwNGE5OTdm
NTUxNTQxYjYyNjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRl
bnRJbmNsdXNpb25TZWxlY3Rvci5oCkBAIC0wLDAgKzEsMTUwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb250ZW50SW5j
bHVzaW9uU2VsZWN0b3JfaAorI2RlZmluZSBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3JfaAorCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7
CitjbGFzcyBOb2RlOworY2xhc3MgU2hhZG93Um9vdDsKKworY2xhc3MgU2hhZG93SW5jbHVzaW9u
IDogcHVibGljIFJlZkNvdW50ZWQ8U2hhZG93SW5jbHVzaW9uPiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBjcmVhdGUoSFRNTENvbnRlbnRFbGVtZW50
KiwgTm9kZSopOworCisgICAgSFRNTENvbnRlbnRFbGVtZW50KiBpbmNsdWRlcigpIGNvbnN0IHsg
cmV0dXJuIG1faW5jbHVkZXI7IH0KKyAgICBOb2RlKiBjb250ZW50KCkgY29uc3QgeyByZXR1cm4g
bV9jb250ZW50LmdldCgpOyB9CisgICAgU2hhZG93SW5jbHVzaW9uKiBuZXh0KCkgY29uc3QgeyBy
ZXR1cm4gbV9uZXh0LmdldCgpOyB9CisgICAgU2hhZG93SW5jbHVzaW9uKiBwcmV2aW91cygpIGNv
bnN0IHsgcmV0dXJuIG1fcHJldmlvdXMuZ2V0KCk7IH0KKworICAgIHZvaWQgYXBwZW5kKFBhc3NS
ZWZQdHI8U2hhZG93SW5jbHVzaW9uPik7CisgICAgdm9pZCB1bmxpbmsoKTsKKworcHJpdmF0ZToK
KyAgICBTaGFkb3dJbmNsdXNpb24oSFRNTENvbnRlbnRFbGVtZW50KiwgTm9kZSopOworCisgICAg
SFRNTENvbnRlbnRFbGVtZW50KiBtX2luY2x1ZGVyOworICAgIFJlZlB0cjxOb2RlPiBtX2NvbnRl
bnQ7CisgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbV9uZXh0OworICAgIFJlZlB0cjxTaGFk
b3dJbmNsdXNpb24+IG1fcHJldmlvdXM7Cit9OworCitpbmxpbmUgU2hhZG93SW5jbHVzaW9uOjpT
aGFkb3dJbmNsdXNpb24oSFRNTENvbnRlbnRFbGVtZW50KiBpbmNsdWRlciwgTm9kZSogY29udGVu
dCkKKyAgICA6IG1faW5jbHVkZXIoaW5jbHVkZXIpLCBtX2NvbnRlbnQoY29udGVudCkKK3sgfQor
CitpbmxpbmUgUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IFNoYWRvd0luY2x1c2lvbjo6Y3Jl
YXRlKEhUTUxDb250ZW50RWxlbWVudCogaW5jbHVkZXIsIE5vZGUqIGNvbnRlbnQpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFkb3dJbmNsdXNpb24oaW5jbHVkZXIsIGNvbnRlbnQpKTsK
K30KKworY2xhc3MgU2hhZG93SW5jbHVzaW9uTGlzdCB7CitwdWJsaWM6CisgICAgU2hhZG93SW5j
bHVzaW9uTGlzdCgpOworICAgIH5TaGFkb3dJbmNsdXNpb25MaXN0KCk7CisKKyAgICBTaGFkb3dJ
bmNsdXNpb24qIGZpcnN0KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdC5nZXQoKTsgfQorICAgIFNo
YWRvd0luY2x1c2lvbiogbGFzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdC5nZXQoKTsgfQorICAg
IFNoYWRvd0luY2x1c2lvbiogZmluZChOb2RlKikgY29uc3Q7CisgICAgYm9vbCBpc0VtcHR5KCkg
Y29uc3QgeyByZXR1cm4gIW1fZmlyc3Q7IH0KKworICAgIHZvaWQgY2xlYXIoKTsKKyAgICB2b2lk
IGFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4pOworCitwcml2YXRlOgorICAgIFJl
ZlB0cjxTaGFkb3dJbmNsdXNpb24+IG1fZmlyc3Q7CisgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lv
bj4gbV9sYXN0OworfTsKKworCitjbGFzcyBTaGFkb3dJbmNsdXNpb25TZXQgeworcHVibGljOgor
ICAgIHZvaWQgYWRkKFNoYWRvd0luY2x1c2lvbiogdmFsdWUpIHsgbV9zZXQuYWRkKHZhbHVlKTsg
fQorICAgIHZvaWQgcmVtb3ZlKFNoYWRvd0luY2x1c2lvbiogdmFsdWUpIHsgbV9zZXQucmVtb3Zl
KHZhbHVlKTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2V0LmlzRW1w
dHkoKTsgfQorICAgIFNoYWRvd0luY2x1c2lvbiogZmluZChOb2RlKiBrZXkpIGNvbnN0OworCitw
cml2YXRlOgorICAgIHN0cnVjdCBUcmFuc2xhdG9yIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0
YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IE5vZGUqIGtleSkgeyByZXR1cm4gUHRySGFzaDxjb25z
dCBOb2RlKj46Omhhc2goa2V5KTsgfQorICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBT
aGFkb3dJbmNsdXNpb24qIGluY2x1c2lvbiwgY29uc3QgTm9kZSogY29udGVudCkgeyByZXR1cm4g
aW5jbHVzaW9uLT5jb250ZW50KCkgPT0gY29udGVudDsgfQorICAgIH07CisKKyAgICBzdHJ1Y3Qg
SGFzaCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKFNoYWRvd0luY2x1c2lvbioga2V5
KSB7IHJldHVybiBQdHJIYXNoPGNvbnN0IE5vZGUqPjo6aGFzaChrZXktPmNvbnRlbnQoKSk7IH0K
KyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoU2hhZG93SW5jbHVzaW9uKiBhLCBTaGFkb3dJbmNs
dXNpb24qIGIpIHsgcmV0dXJuIGEtPmNvbnRlbnQoKSA9PSBiLT5jb250ZW50KCk7IH0KKyAgICAg
ICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxz
ZTsKKyAgICB9OworCisgICAgdHlwZWRlZiBIYXNoU2V0PFNoYWRvd0luY2x1c2lvbiosIEhhc2g+
IFBvaW50ZXJTZXQ7CisKKyAgICBQb2ludGVyU2V0IG1fc2V0OworfTsKKworaW5saW5lIFNoYWRv
d0luY2x1c2lvbiogU2hhZG93SW5jbHVzaW9uU2V0OjpmaW5kKE5vZGUqIGtleSkgY29uc3QKK3sK
KyAgICBQb2ludGVyU2V0OjppdGVyYXRvciBmb3VuZCA9IG1fc2V0LmZpbmQ8Tm9kZSosIFNoYWRv
d0luY2x1c2lvblNldDo6VHJhbnNsYXRvcj4oa2V5KTsKKyAgICByZXR1cm4gZm91bmQgIT0gbV9z
ZXQuZW5kKCkgPyAqZm91bmQgOiAwOworfQorCitjbGFzcyBDb250ZW50SW5jbHVzaW9uU2VsZWN0
b3IgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcik7
CitwdWJsaWM6CisgICAgQ29udGVudEluY2x1c2lvblNlbGVjdG9yKCk7CisgICAgfkNvbnRlbnRJ
bmNsdXNpb25TZWxlY3RvcigpOworCisgICAgdm9pZCBzZWxlY3QoSFRNTENvbnRlbnRFbGVtZW50
KiwgU2hhZG93SW5jbHVzaW9uTGlzdCopOworICAgIHZvaWQgdW5zZWxlY3QoU2hhZG93SW5jbHVz
aW9uTGlzdCopOworICAgIFNoYWRvd0luY2x1c2lvbiogZmluZEZvcihOb2RlKiBrZXkpIGNvbnN0
OworCisgICAgdm9pZCB3aWxsU2VsZWN0T3ZlcihTaGFkb3dSb290Kik7CisgICAgdm9pZCBkaWRT
ZWxlY3QoKTsKKyAgICBib29sIGhhc0NhbmRpZGF0ZXMoKSBjb25zdCB7IHJldHVybiAhbV9jYW5k
aWRhdGVzLmlzRW1wdHkoKTsgfQorCitwcml2YXRlOgorICAgIHZvaWQgcmVtb3ZlRnJvbVNldChT
aGFkb3dJbmNsdXNpb25MaXN0Kik7CisgICAgdm9pZCBhZGRUb1NldChTaGFkb3dJbmNsdXNpb25M
aXN0Kik7CisKKyAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbV9jYW5kaWRhdGVzOworICAgIFNo
YWRvd0luY2x1c2lvblNldCBtX2luY2x1c2lvblNldDsKK307CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJi
ZjhlNTE3MTA3ZDk4ZjU1ZmQwM2EyMzkzZTU5MDhiYmE3ZTRmOWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcApAQCAtMCwwICsx
LDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbnRlbnRTZWxlY3RvclF1
ZXJ5LmgiCisKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJDU1NTZWxlY3Rvckxp
c3QuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitDb250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVlcnkoSFRNTENv
bnRlbnRFbGVtZW50KiBlbGVtZW50KQorICAgIDogbV9jb250ZW50RWxlbWVudChlbGVtZW50KQor
ICAgICwgbV9zZWxlY3RvckNoZWNrZXIoZWxlbWVudC0+ZG9jdW1lbnQoKSwgIWVsZW1lbnQtPmRv
Y3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQoreworICAgIG1fc2VsZWN0b3JDaGVja2VyLnNldENv
bGxlY3RpbmdSdWxlc09ubHkodHJ1ZSk7CisKKyAgICBpZiAoZWxlbWVudC0+c2VsZWN0KCkuaXNO
dWxsKCkgfHwgZWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBDU1NQYXJzZXIgcGFyc2VyKHRydWUpOworICAgIHBhcnNlci5wYXJzZVNlbGVjdG9yKGVs
ZW1lbnQtPnNlbGVjdCgpLCBlbGVtZW50LT5kb2N1bWVudCgpLCBtX3NlbGVjdG9yTGlzdCk7CisK
KyAgICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKG1fc2VsZWN0b3JMaXN0KTsKK30KKworYm9vbCBD
b250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hlcyhOb2RlKiBub2RlKSBjb25zdAoreworICAgIEFT
U0VSVChub2RlKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IEFTU0VSVChub2RlLT5wYXJlbnROb2RlKCkgPT0gbV9jb250ZW50RWxlbWVudC0+c2hhZG93VHJl
ZVJvb3ROb2RlKCktPnNoYWRvd0hvc3QoKSk7CisKKyAgICBpZiAobV9jb250ZW50RWxlbWVudC0+
c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9jb250ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbV9zZWxlY3RvcnMubWF0Y2hl
cyhtX3NlbGVjdG9yQ2hlY2tlciwgdG9FbGVtZW50KG5vZGUpKTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkYWZiOTkzYmFj
ZjljNzBkYTM4MGYzMzY3ZWZhNjhkMWI4OTVmMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKQEAgLTAsMCArMSw2NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgQ29udGVudFNlbGVjdG9yUXVlcnlfaAorI2RlZmluZSBDb250ZW50U2VsZWN0b3JRdWVyeV9o
CisKKyNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKKyNpbmNsdWRlICJTZWxlY3RvckNoZWNr
ZXIuaCIKKyNpbmNsdWRlICJTZWxlY3RvclF1ZXJ5LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBOb2RlOworY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OworCitj
bGFzcyBDb250ZW50U2VsZWN0b3JRdWVyeSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29u
dGVudFNlbGVjdG9yUXVlcnkpOworcHVibGljOgorICAgIGV4cGxpY2l0IENvbnRlbnRTZWxlY3Rv
clF1ZXJ5KEhUTUxDb250ZW50RWxlbWVudCopOworCisgICAgYm9vbCBtYXRjaGVzKE5vZGUqKSBj
b25zdDsKKworcHJpdmF0ZToKKyAgICBIVE1MQ29udGVudEVsZW1lbnQqIG1fY29udGVudEVsZW1l
bnQ7CisgICAgU2VsZWN0b3JEYXRhTGlzdCBtX3NlbGVjdG9yczsKKyAgICBDU1NTZWxlY3Rvckxp
c3QgbV9zZWxlY3Rvckxpc3Q7CisgICAgU2VsZWN0b3JDaGVja2VyIG1fc2VsZWN0b3JDaGVja2Vy
OworfTsKKworfQorCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb250ZW50
RWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMxNGZlY2U5YWJjMzkzMmMyZjVjMTUwNmQyZWRhMDE5
OWYyZjk1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbnRl
bnRFbGVtZW50LmNwcApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgorCisjaW5jbHVkZSAiQ29udGVudEluY2x1c2lv
blNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ29udGVudFNlbGVjdG9yUXVlcnkuaCIKKyNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit1c2luZyBIVE1MTmFtZXM6OnNlbGVjdEF0dHI7CisKK1Bhc3NSZWZQdHI8SFRN
TENvbnRlbnRFbGVtZW50PiBIVE1MQ29udGVudEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9j
dW1lbnQpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCB0YWdOYW1l
LCAobnVsbEF0b20sICJ3ZWJraXRTaGFkb3dDb250ZW50IiwgSFRNTE5hbWVzOjpkaXZUYWcubmFt
ZXNwYWNlVVJJKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxDb250ZW50RWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitIVE1MQ29udGVudEVsZW1lbnQ6OkhUTUxDb250
ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
CisgICAgOiBIVE1MRWxlbWVudChuYW1lLCBkb2N1bWVudCkKKyAgICAsIG1faW5jbHVzaW9ucyhh
ZG9wdFB0cihuZXcgU2hhZG93SW5jbHVzaW9uTGlzdCgpKSkKK3sKK30KKworSFRNTENvbnRlbnRF
bGVtZW50Ojp+SFRNTENvbnRlbnRFbGVtZW50KCkKK3sKK30KKwordm9pZCBIVE1MQ29udGVudEVs
ZW1lbnQ6OmF0dGFjaCgpCit7CisgICAgQVNTRVJUKCFmaXJzdENoaWxkKCkpOyAvLyBDdXJyZW50
bHkgZG9lc24ndCBzdXBwb3J0IGFueSBsaWdodCBjaGlsZC4KKyAgICBIVE1MRWxlbWVudDo6YXR0
YWNoKCk7CisKKyAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dU
cmVlUm9vdE5vZGUoKSkpIHsKKyAgICAgICAgQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBzZWxl
Y3RvciA9IHJvb3QtPmVuc3VyZUluY2x1c2lvbnMoKTsKKyAgICAgICAgc2VsZWN0b3ItPnVuc2Vs
ZWN0KG1faW5jbHVzaW9ucy5nZXQoKSk7CisgICAgICAgIHNlbGVjdG9yLT5zZWxlY3QodGhpcywg
bV9pbmNsdXNpb25zLmdldCgpKTsKKyAgICAgICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1
c2lvbiA9IG1faW5jbHVzaW9ucy0+Zmlyc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNs
dXNpb24tPm5leHQoKSkKKyAgICAgICAgICAgIGluY2x1c2lvbi0+Y29udGVudCgpLT5kZXRhY2go
KTsKKyAgICAgICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IG1faW5jbHVzaW9u
cy0+Zmlyc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNsdXNpb24tPm5leHQoKSkKKyAg
ICAgICAgICAgIGluY2x1c2lvbi0+Y29udGVudCgpLT5hdHRhY2goKTsKKyAgICB9Cit9CisKK3Zv
aWQgSFRNTENvbnRlbnRFbGVtZW50OjpkZXRhY2goKQoreworICAgIGlmIChTaGFkb3dSb290KiBy
b290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgpKSkgeworICAgICAgICBpZiAo
Q29udGVudEluY2x1c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmluY2x1c2lvbnMoKSkK
KyAgICAgICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdChtX2luY2x1c2lvbnMuZ2V0KCkpOworICAg
IH0KKworICAgIEFTU0VSVChtX2luY2x1c2lvbnMtPmlzRW1wdHkoKSk7CisgICAgSFRNTEVsZW1l
bnQ6OmRldGFjaCgpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxDb250ZW50RWxlbWVu
dDo6c2VsZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHNlbGVjdEF0dHIp
OworfQorCit2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6c2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0
cmluZyYgc2VsZWN0VmFsdWUpCit7CisgICAgc2V0QXR0cmlidXRlKHNlbGVjdEF0dHIsIHNlbGVj
dFZhbHVlKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29u
dGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbnRlbnRFbGVtZW50LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzM3NzcyYmQ1OGFiZTcyZjM5ZDg2NzRlYWE0OGI1ZmYxMDcwNjhhOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbnRlbnRFbGVtZW50LmgK
QEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgSFRNTENvbnRlbnRFbGVtZW50X2gKKyNkZWZpbmUgSFRN
TENvbnRlbnRFbGVtZW50X2gKKworI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDb250ZW50U2Vs
ZWN0b3JRdWVyeTsKK2NsYXNzIFNoYWRvd0luY2x1c2lvbkxpc3Q7CisKKy8vIE5PVEU6IEN1cnJl
bnQgaW1wbGVtZW50YXRpb24gZG9lc24ndCBzdXBwb3J0IGR5bmFtaWMgaW5zZXJ0aW9uL2RlbGV0
aW9uIG9mIEhUTUxDb250ZW50RWxlbWVudC4KKy8vIFlvdSBzaG91bGQgY3JlYXRlIEhUTUxDb250
ZW50RWxlbWVudCBkdXJpbmcgdGhlIGhvc3QgY29uc3RydWN0aW9uLgorY2xhc3MgSFRNTENvbnRl
bnRFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworCisgICAgdmly
dHVhbCB+SFRNTENvbnRlbnRFbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOwor
ICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgc2Vs
ZWN0KCkgY29uc3Q7CisKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5IHRoaXMgY29uc3RydWN0b3Ig
YWNjZXB0cyB3aWRlciBxdWVyeSB0aGFuIHNoYWRvdyBkb20gc3BlYy4KKyAgICAvLyBGb3IgZXhh
bXBsZSwgYSBzZWxlY3RvciBxdWVyeSBzaG91bGQgbm90IGluY2x1ZGUgY29udGV4dHVhbCBzZWxl
Y3RvcnMuCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NTk0NgorICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgd2UgZG9uJ3Qgc3VwcG9ydCBzZXR0aW5n
IHNlbGVjdCB2YWx1ZSBkeW5hbWljYWxseS4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjYxCisgICAgdm9pZCBzZXRTZWxlY3QoY29uc3QgQXRv
bWljU3RyaW5nJik7CisKKyAgICBjb25zdCBTaGFkb3dJbmNsdXNpb25MaXN0KiBpbmNsdXNpb25z
KCkgY29uc3QgeyByZXR1cm4gbV9pbmNsdXNpb25zLmdldCgpOyB9CisKK3Byb3RlY3RlZDoKKyAg
ICBIVE1MQ29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisK
K3ByaXZhdGU6CisgICAgdmlydHVhbCBib29sIGlzQ29udGVudEVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9k
ZVJlbmRlcmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgUmVuZGVy
T2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgeyByZXR1
cm4gMDsgfQorCisgICAgT3duUHRyPFNoYWRvd0luY2x1c2lvbkxpc3Q+IG1faW5jbHVzaW9uczsK
K307CisKK2lubGluZSBIVE1MQ29udGVudEVsZW1lbnQqIHRvSFRNTENvbnRlbnRFbGVtZW50KE5v
ZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKCFub2RlIHx8IG5vZGUtPmlzQ29udGVudEVsZW1lbnQo
KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxDb250ZW50RWxlbWVudCo+KG5vZGUpOwor
fQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQu
Y3BwCmluZGV4IGFhYTA1ZTE0NTc0ZDQwNzlmY2UwOGUxNTY2Y2UwYmJkZDY0ZjczNjUuLmRkZWM3
Mzg3NjY0ODAwM2UyZjkxYzc3MGQxYTgxNTIwMjMyYjdmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTIzLDEyICsyMywxMiBAQAogCiAjaWYgRU5B
QkxFKERFVEFJTFMpCiAKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MU3VtbWFyeUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUg
IlJlbmRlckRldGFpbHMuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKQEAgLTQyLDEzICs0Miwx
MyBAQCBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdW1tYXJ5UXVlcnlTZWxlY3RvcigpCiAg
ICAgcmV0dXJuIHNlbGVjdG9yOwogfTsKIAotY2xhc3MgRGV0YWlsc0NvbnRlbnRFbGVtZW50IDog
cHVibGljIFNoYWRvd0NvbnRlbnRFbGVtZW50IHsKK2NsYXNzIERldGFpbHNDb250ZW50RWxlbWVu
dCA6IHB1YmxpYyBIVE1MQ29udGVudEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERldGFpbHNDb250ZW50RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAKIHByaXZh
dGU6CiAgICAgRGV0YWlsc0NvbnRlbnRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICAg
ICAgOiBTaGFkb3dDb250ZW50RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCisg
ICAgICAgIDogSFRNTENvbnRlbnRFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkK
ICAgICB7CiAgICAgfQogfTsKQEAgLTU4LDEzICs1OCwxMyBAQCBQYXNzUmVmUHRyPERldGFpbHND
b250ZW50RWxlbWVudD4gRGV0YWlsc0NvbnRlbnRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGV0YWlsc0NvbnRlbnRFbGVtZW50KGRvY3Vt
ZW50KSk7CiB9CiAKLWNsYXNzIERldGFpbHNTdW1tYXJ5RWxlbWVudCA6IHB1YmxpYyBTaGFkb3dD
b250ZW50RWxlbWVudCB7CitjbGFzcyBEZXRhaWxzU3VtbWFyeUVsZW1lbnQgOiBwdWJsaWMgSFRN
TENvbnRlbnRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZXRhaWxz
U3VtbWFyeUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCiBwcml2YXRlOgogICAgIERldGFp
bHNTdW1tYXJ5RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgICAgIDogU2hhZG93Q29u
dGVudEVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQorICAgICAgICA6IEhUTUxD
b250ZW50RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCiAgICAgewogICAgICAg
ICBzZXRTZWxlY3Qoc3VtbWFyeVF1ZXJ5U2VsZWN0b3IoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IGVjZjEwODVjZTMwZmUwZjNiOTNl
MWNkZTI1ZWI1NDRmYTdkYjRmNGIuLjk5MjU2MjdmZTVjZTNhYTRhOTliMjMzMDE1MjgwYzBjNzQz
Njg1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKQEAg
LTI0LDEyICsyNCwxMiBAQAogI2lmIEVOQUJMRShERVRBSUxTKQogCiAjaW5jbHVkZSAiRGV0YWls
c01hcmtlckNvbnRyb2wuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MRGV0YWlsc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNs
dWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiUmVuZGVyU3VtbWFyeS5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50Lmgi
CiAKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAKQEAgLTM3LDEzICszNywxMyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWNsYXNzIFN1bW1h
cnlDb250ZW50RWxlbWVudCA6IHB1YmxpYyBTaGFkb3dDb250ZW50RWxlbWVudCB7CitjbGFzcyBT
dW1tYXJ5Q29udGVudEVsZW1lbnQgOiBwdWJsaWMgSFRNTENvbnRlbnRFbGVtZW50IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdW1tYXJ5Q29udGVudEVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCopOwogCiBwcml2YXRlOgogICAgIFN1bW1hcnlDb250ZW50RWxlbWVudChEb2N1bWVu
dCogZG9jdW1lbnQpCi0gICAgICAgIDogU2hhZG93Q29udGVudEVsZW1lbnQoSFRNTE5hbWVzOjpk
aXZUYWcsIGRvY3VtZW50KQorICAgICAgICA6IEhUTUxDb250ZW50RWxlbWVudChIVE1MTmFtZXM6
OmRpdlRhZywgZG9jdW1lbnQpCiAgICAgewogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggNzgzYzM4MDU2OTNhZWM2M2Q0ZDk4NWJkNzhjMzg0ZmQ0NDg0YzRl
Yy4uMjQ4OTY3YjMzYWY5ZmU5YThlNjJiZjdlZmZjYTMxMTM0YzQ1NmQ5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgor
I2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVt
ZW50LmgiCkBAIC00Niw3ICs0Nyw2IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5j
bHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVk
ZSAiU2hhZG93Q29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5j
bHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC0xMjYs
MTQgKzEyNiwxNCBAQCBib29sIEludGVybmFsczo6aXNQcmVsb2FkZWQoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIHVybCkKICAgICByZXR1cm4gZG9jdW1lbnQtPmNhY2hlZFJlc291
cmNlTG9hZGVyKCktPmlzUHJlbG9hZGVkKHVybCk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4g
SW50ZXJuYWxzOjpjcmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxFbGVtZW50PiBJbnRlcm5hbHM6OmNyZWF0
ZUNvbnRlbnRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgaWYgKCFkb2N1bWVudCkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIFNoYWRvd0NvbnRlbnRFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIHJldHVybiBIVE1MQ29udGVudEVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiB9CiAKIEVsZW1lbnQqIEludGVybmFsczo6Z2V0RWxlbWVudEJ5SWRJ
blNoYWRvd1Jvb3QoTm9kZSogc2hhZG93Um9vdCwgY29uc3QgU3RyaW5nJiBpZCwgRXhjZXB0aW9u
Q29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBlZDQ3MzcwNTViOTkz
ODNkYTliMjgwMjFhZjNmNjk1OWM2MWQzNWY3Li44OTlkN2RiYjE2MWYzMTJmNTY1NGVlMmNkYTc0
YzlkN2Q0MTg5MGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTU3LDcgKzU3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBF
eGNlcHRpb25Db2RlJik7CiAgICAgRWxlbWVudCogaW5jbHVkZXJGb3IoTm9kZSosIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBTdHJpbmcgc2hhZG93UHNldWRvSWQoRWxlbWVudCosIEV4Y2VwdGlvbkNv
ZGUmKTsKLSAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50
KERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3Jl
YXRlQ29udGVudEVsZW1lbnQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgRWxlbWVu
dCogZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoTm9kZSogc2hhZG93Um9vdCwgY29uc3QgU3Ry
aW5nJiBpZCwgRXhjZXB0aW9uQ29kZSYpOwogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGY1NmQxYWY3NGE4ZTM1ZGQ0N2JkNGU2
YzQ5ZjEyNWU3ZWFhYzNhNTUuLjhmMTZiMzJjODU2YWMyZjFmNmY4NTg2Yzk0MWJiNTNkN2I3NjI0
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTM1LDcgKzM1LDcgQEAg
bW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIEVsZW1lbnQgaW5jbHVkZXJGb3IoaW4gTm9kZSBub2Rl
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgcmVtb3ZlU2hhZG93Um9vdChp
biBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgRE9NU3RyaW5n
IHNoYWRvd1BzZXVkb0lkKGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2VzIChET01FeGNlcHRpb24p
OwotICAgICAgICBFbGVtZW50IGNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGluIERvY3VtZW50
IGRvY3VtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgRWxlbWVudCBjcmVhdGVD
b250ZW50RWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAgICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoaW4gTm9kZSBzaGFk
b3dSb290LCBpbiBET01TdHJpbmcgaWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAjaWYgZGVm
aW5lZChFTkFCTEVfSU5QVVRfQ09MT1IpICYmIEVOQUJMRV9JTlBVVF9DT0xPUgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIuZGVmCmluZGV4IDFhYTg0ODE2N2JlZGM4NTY0OGVjNGY0YTdlN2ZiYTFiNDIyODJjZmIu
LjEyZWU0OTU5ZDFmNWU5NTFkODc1YWFmMzlmNzJkMTdiNGZlYmJiNDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi5kZWYKQEAgLTE1MCw3ICsxNTAsNiBAQCBFWFBPUlRTCiAgICAgICAgID9hZGRTbG93Q2Fz
ZUBBdG9taWNTdHJpbmdAV1RGQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEAy
QFBBVlN0cmluZ0ltcGxAMkBAWgogICAgICAgICA/Y2FjaGVET01TdHJ1Y3R1cmVAV2ViQ29yZUBA
WUFQQVZTdHJ1Y3R1cmVASlNDQEBQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVjIzQFBCVUNsYXNz
SW5mb0AzQEBaCiAgICAgICAgID9jcmVhdGVAUmFuZ2VAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQ
dHJAVlJhbmdlQFdlYkNvcmVAQEBXVEZAQFY/JFBhc3NSZWZQdHJAVkRvY3VtZW50QFdlYkNvcmVA
QEA0QFY/JFBhc3NSZWZQdHJAVk5vZGVAV2ViQ29yZUBAQDRASDFIQFoKLSAgICAgICAgP2NyZWF0
ZUBTaGFkb3dDb250ZW50RWxlbWVudEBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWU2hhZG93
Q29udGVudEVsZW1lbnRAV2ViQ29yZUBAQFdURkBAUEFWRG9jdW1lbnRAMkBAWgogICAgICAgICA/
Y3JlYXRlV3JhcHBlckBXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQ
QVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVk5vZGVAMUBAWgogICAgICAgICA/ZW5zdXJlU2hhZG93
Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFBRVBBVlNoYWRvd1Jvb3RAMkBYWgogICAgICAgICA/ZXF1
YWxAV1RGQEBZQV9OUEJWU3RyaW5nSW1wbEAxQFBCRUBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNG
TGl0ZS5kZWYKaW5kZXggNmI2NDQ4ZGIxNjFhZWI2NzE4OTA2ZDYyZjc3MGI5YTdlNGE4ZWMwZC4u
YTk1YjVmZTAzNjZlMWZjNzI0ZTNlODNhMGFiYjI0YTkzMzc5NGFjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMTQzLDcgKzE0Myw2IEBAIEVYUE9SVFMKICAgICAgICAg
P2FkZFNsb3dDYXNlQEF0b21pY1N0cmluZ0BXVEZAQENBP0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJ
bXBsQFdURkBAQDJAUEFWU3RyaW5nSW1wbEAyQEBaCiAgICAgICAgID9jYWNoZURPTVN0cnVjdHVy
ZUBXZWJDb3JlQEBZQVBBVlN0cnVjdHVyZUBKU0NAQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFW
MjNAUEJVQ2xhc3NJbmZvQDNAQFoKICAgICAgICAgP2NyZWF0ZUBSYW5nZUBXZWJDb3JlQEBTQT9B
Vj8kUGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29yZUBAQFdURkBAVj8kUGFzc1JlZlB0ckBWRG9jdW1l
bnRAV2ViQ29yZUBAQDRAVj8kUGFzc1JlZlB0ckBWTm9kZUBXZWJDb3JlQEBANEBIMUhAWgotICAg
ICAgICA/Y3JlYXRlQFNoYWRvd0NvbnRlbnRFbGVtZW50QFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVm
UHRyQFZTaGFkb3dDb250ZW50RWxlbWVudEBXZWJDb3JlQEBAV1RGQEBQQVZEb2N1bWVudEAyQEBa
CiAgICAgICAgID9jcmVhdGVXcmFwcGVyQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4
ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9kZUAxQEBaCiAgICAgICAgID9l
bnN1cmVTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFUEFWU2hhZG93Um9vdEAyQFhaCiAg
ICAgICAgID9lcXVhbEBXVEZAQFlBX05QQlZTdHJpbmdJbXBsQDFAUEJFQFoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyCmluZGV4IDE1YjY5NTdhOWUyNDIzMTkwYmFjMWRkMjFjZmIxNjczZmQ3MzE4ZGEu
LjMzOTNhYWEwNzIyZDkyODQxYThmYjUwY2JiYWY5NzkyODkxMjk1MGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1i
b2xzLmZpbHRlcgpAQCAtNTMsNyArNTMsNiBAQCBfWk43V2ViQ29yZTE3Y2FjaGVET01TdHJ1Y3R1
cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE4zSlNDOVN0cnVjdHVyZUVQS05TMl85QwogX1pO
N1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIzOXNldFJlc291cmNlc0RhdGFTaXplTGltaXRz
RnJvbUludGVybmFsc0VpaTsKIF9aTjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29udGV4dEMxRVBO
U180Tm9kZUU7CiBfWk43V2ViQ29yZTIwTm9kZVJlbmRlcmluZ0NvbnRleHREMUV2OwotX1pON1dl
YkNvcmUyMFNoYWRvd0NvbnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RTsKIF9aTjdX
ZWJDb3JlMjFnZXRDYWNoZWRET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUEtO
M0pTQzlDbGFzc0luZm9FOwogX1pON1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5T
XzdFbGVtZW50RWo7CiBfWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJr
ZXJzRm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0U7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZWMyM2YzODIzNjZjMDA3MWFjYTUxYWNhOWU4MjIyNTI2MGYzYThlMi4uODJmZDE0NTI1YTU5
M2EyNjExODM1M2QyNGU3OTQ1Y2RlYzUyNTg5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEy
LTAxLTE2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAg
TW92ZSBTaGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1lbGVtZW50LWluY2x1ZGVyLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2Nv
bnRlbnQtZWxlbWVudC1yZW5kZXJlcnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cv
Y3JlYXRlLWNvbnRlbnQtZWxlbWVudC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWw6CisKIDIwMTItMDEtMTYgIEZpbGlwIFBpemxvICA8
ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgc2hvdWxkIGJlIGFibGUgdG8gZG8gSlMg
YW5kIGN1c3RvbSBnZXR0ZXIgY2FjaGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbmNsdWRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbmNsdWRlci5odG1sCmluZGV4IGYxOWJkMTc2
ODk5ODgxZTJiZGI5Y2ZkYTE0ZDc4MDAzMzcyNWZmMTMuLmZiNmE1YjEzMWRkYTY2MmVmNTBkMjdj
MjJiNTk3NDM1NThjOGNhNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9jb250ZW50LWVsZW1lbnQtaW5jbHVkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVyLmh0bWwKQEAgLTMzLDcgKzMzLDcgQEAg
c2hvdWxkQmUoImludGVybmFscy5pbmNsdWRlckZvcihjaGlsZE9mRWxlbWVudFdpdGhTaGFkb3cp
IiwgIm51bGwiKTsKIHZhciBlbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKIGNvbnRhaW5lci5hcHBlbmRDaGlsZChlbGVtZW50V2l0aFNoYWRv
d0NvbnRlbnQpOwogdmFyIHNoYWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGlu
dGVybmFscy5lbnN1cmVTaGFkb3dSb290KGVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7Ci12YXIg
c2hhZG93Q29udGVudE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0
ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKK3ZhciBzaGFkb3dDb250ZW50T2ZFbGVt
ZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9j
dW1lbnQpOwogc2hhZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50LmFwcGVuZENoaWxk
KHNoYWRvd0NvbnRlbnRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7CiB2YXIgY2hpbGRPZkVs
ZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
IGVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5hcHBlbmRDaGlsZChjaGlsZE9mRWxlbWVudFdpdGhT
aGFkb3dDb250ZW50KTsKQEAgLTU4LDcgKzU4LDcgQEAgZWxlbWVudFdpdGhTaGFkb3cucmVtb3Zl
Q2hpbGQobW92aW5nQ2hpbGQpOwogdmFyIGFub3RoZXJFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIGNvbnRhaW5lci5hcHBlbmRDaGlsZChh
bm90aGVyRWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKIHZhciBhbm90aGVyU2hhZG93Um9vdE9m
RWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QoYW5v
dGhlckVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7Ci12YXIgYW5vdGhlclNoYWRvd0NvbnRlbnRP
ZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGludGVybmFscy5jcmVhdGVTaGFkb3dDb250ZW50
RWxlbWVudChkb2N1bWVudCk7Cit2YXIgYW5vdGhlclNoYWRvd0NvbnRlbnRPZkVsZW1lbnRXaXRo
U2hhZG93Q29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCk7
CiBhbm90aGVyU2hhZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50LmFwcGVuZENoaWxk
KGFub3RoZXJTaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQpOwogCiBhbm90
aGVyRWxlbWVudFdpdGhTaGFkb3dDb250ZW50LmFwcGVuZENoaWxkKG1vdmluZ0NoaWxkKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVu
ZGVyZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50
LXJlbmRlcmVycy5odG1sCmluZGV4IDkxNTE5YjhiYzllZDk4ZTUzNGJmMzdlMTQ1ZGExMzE1NGI1
YmM4YjguLjk3N2I4OWNjMDE5NGQxZTVkMzIyYjdiYWJjOWYxNTU2NTQ5Mjk4MzAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1y
ZW5kZXJlcnMuaHRtbApAQCAtNjIsNyArNjIsNyBAQCBmdW5jdGlvbiBjcmVhdGVUcmVlRnJvbSho
dG1sKQogICAgIHZhciBjb250ZW50UGxhY2Vob2xkZXIgPSByb290LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJDT05URU5UIilbMF07CiAgICAgaWYgKGNvbnRlbnRQbGFjZWhvbGRlcikgewogICAgICAg
ICB2YXIgY29udGVudFBhcmVudCA9IGNvbnRlbnRQbGFjZWhvbGRlci5wYXJlbnROb2RlOwotICAg
ICAgICBjb250ZW50UGFyZW50LnJlcGxhY2VDaGlsZCh3aW5kb3cuaW50ZXJuYWxzLmNyZWF0ZVNo
YWRvd0NvbnRlbnRFbGVtZW50KGRvY3VtZW50KSwgY29udGVudFBsYWNlaG9sZGVyKTsKKyAgICAg
ICAgY29udGVudFBhcmVudC5yZXBsYWNlQ2hpbGQod2luZG93LmludGVybmFscy5jcmVhdGVDb250
ZW50RWxlbWVudChkb2N1bWVudCksIGNvbnRlbnRQbGFjZWhvbGRlcik7CiAgICAgfTsKIAogICAg
IHJldHVybiByb290OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Ny
ZWF0ZS1jb250ZW50LWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9j
cmVhdGUtY29udGVudC1lbGVtZW50Lmh0bWwKaW5kZXggYmRiNjAwMTZmMGRhMjQwNGY1ZGExYzg3
OGNmMTg5ZDg5MTJiNzhjZC4uODMyMTIzMWJjMzUxOWJjMjRlNThmYWFiMjAzMWIxZmZkNjBhMjMx
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NyZWF0ZS1jb250ZW50
LWVsZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3JlYXRlLWNv
bnRlbnQtZWxlbWVudC5odG1sCkBAIC0yOSw3ICsyOSw3IEBAIGZ1bmN0aW9uIHNldHVwVGFyZ2V0
VHJlZSgpCiAgICAgdmFyIGNoaWxkMCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
ICAgICBjaGlsZDAuaW5uZXJIVE1MID0gIkhlbGxvLCI7CiAgICAgcm9vdC5hcHBlbmRDaGlsZChj
aGlsZDApOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQod2luZG93LmludGVybmFscy5jcmVhdGVTaGFk
b3dDb250ZW50RWxlbWVudChkb2N1bWVudCkpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQod2luZG93
LmludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogICAgIHZhciBjaGls
ZDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgY2hpbGQxLmlubmVySFRN
TCA9ICJXb3JsZC4iOwogICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQxKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNlbGVjdC5odG1s
CmluZGV4IDNkODFkNDU2Y2FlNDU4ZmU1OGQ5ZWI5MjE1MzUwOTljZWMxNDU0YTIuLjJlZmI5MzY1
MmQwNzhjNjdkNThlMzY5MmQwYWZmOGU5ZGEyOWNiYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxlY3QuaHRtbApAQCAtMTUs
NyArMTUsNyBAQCBmdW5jdGlvbiBhcHBlbmRTaGFkb3codGFyZ2V0LCBzZWxlY3QpIHsKICAgICBj
aGlsZDAuaW5uZXJIVE1MID0gIkhlbGxvLCI7CiAgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDAp
OwogCi0gICAgdmFyIGNvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlU2hhZG93Q29udGVudEVsZW1l
bnQoZG9jdW1lbnQpOworICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRF
bGVtZW50KGRvY3VtZW50KTsKICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2Vs
ZWN0KTsKICAgICByb290LmFwcGVuZENoaWxkKGNvbnRlbnQpOwogCmRpZmYgLS1naXQgYS9DaGFu
Z2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNzZjOTU1YmVkYzlkNTNhOTlmZWVjODgyMTZhMmQ1NWUx
Yjk5MjMzOS4uNjhkN2ZjZGM1MjM5YmEzMzBhYTdlNGUzNmYyN2JiNGQ3NjczNWMyNiAxMDA2NDQK
LS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAx
LTE2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92
ZSBTaGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyOgorCiAyMDEyLTAxLTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVcGRhdGUgTkVXUyBhbmQgY29uZmlndXJlLmFj
IGZvciAxLjcuNCByZWxlYXNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122716</attachid>
            <date>2012-01-16 22:51:35 -0800</date>
            <delta_ts>2012-01-16 23:24:22 -0800</delta_ts>
            <desc>Build Test Again</desc>
            <filename>bug-76241-20120117155133.patch</filename>
            <type>text/plain</type>
            <size>107387</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU1MmYzYzQ5YzE1MWI5
M2Q3ODRiNzgwNGVhZTJiMjg5ZDgwZmRiZS4uMTYxNDdiNTc0ZGI4ZTM5ZTEyYzI0YzFjYjQ4MWZi
YjRiZmJjMjA0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEyLTAxLTE2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dD
b250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuZXh0UmVuZGVyZXJPZik6Cisg
ICAgICAgIChXZWJDb3JlOjpwcmV2aW91c1JlbmRlcmVyT2YpOgorICAgICAgICAoV2ViQ29yZTo6
Zmlyc3RSZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RSZW5kZXJlck9mKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIpOgor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OmluY2x1ZGVyKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9v
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbmNsdWRlckZvcik6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbmNsdXNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3Q6OmVuc3VyZUluY2x1c2lvbnMpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290
Lmg6CisgICAgICAgICogaHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0luY2x1c2lvbjo6dW5saW5rKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvbkxpc3Q6OlNoYWRvd0luY2x1c2lvbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uTGlzdDo6flNoYWRvd0luY2x1c2lvbkxpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6ZmluZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJ
bmNsdXNpb25MaXN0OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25M
aXN0OjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9y
OjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudElu
Y2x1c2lvblNlbGVjdG9yOjp+Q29udGVudEluY2x1c2lvblNlbGVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6dW5zZWxlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9yOjpmaW5kRm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6ZGlkU2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6d2lsbFNlbGVjdE92ZXIpOgorICAgICAgICAqIGh0
bWwvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0luY2x1c2lvbjo6aW5jbHVkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9u
Ojpjb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6bmV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb246OnByZXZpb3VzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6U2hhZG93SW5jbHVzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0luY2x1c2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvbkxpc3Q6OmZpcnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbkxp
c3Q6Omxhc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6aXNFbXB0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OmFkZCk6CisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFkb3dJbmNsdXNpb25TZXQ6OmlzRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
SW5jbHVzaW9uU2V0OjpUcmFuc2xhdG9yOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0luY2x1c2lvblNldDo6VHJhbnNsYXRvcjo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uU2V0OjpIYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvblNldDo6SGFzaDo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVz
aW9uU2V0OjpmaW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rv
cjo6aGFzQ2FuZGlkYXRlcyk6CisgICAgICAgICogaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9y
UXVlcnkuY3BwLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRl
bnRTZWxlY3RvclF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5
OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaC4K
KyAgICAgICAgKiBodG1sL0hUTUxDb250ZW50RWxlbWVudC5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnRlbnRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENv
bnRlbnRFbGVtZW50OjpIVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENvbnRlbnRFbGVtZW50Ojp+SFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250
ZW50RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVu
dDo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6c2V0U2Vs
ZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxDb250ZW50RWxlbWVudC5oOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmguCisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmluY2x1c2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnRlbnRFbGVtZW50Ojppc0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ29udGVudEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OnRvSFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzQ29udGVudEVsZW1lbnQ6OkRldGFpbHND
b250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6
OkRldGFpbHNTdW1tYXJ5RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VtbWFyeUNvbnRlbnRFbGVtZW50OjpTdW1tYXJ5
Q29udGVudEVsZW1lbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6Y3JlYXRlQ29udGVudEVsZW1lbnQpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CiAyMDEyLTAxLTE2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTjogcjEwMjU1MyBBdXRvY29ycmVjdGlvbiBidWJibGUgZG9lc24ndCBzaG93
IHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNzQzYjkzYTgxNWE2NWY2NTc3YmFiMjZlZWIzMThkZDMzODE5OWJi
MC4uMDg2MDgzMGNlYjBiMzM4ODk2ODY1ZTA3NmQxNDI1OWViMjk5NmUwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTE2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdv
b2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8g
dG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAy
MDEyLTAxLTE2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwNzAyNzU4PiBSRUdSRVNTSU9OOiBFdmVyeSBTYWZhcmkgUmVhZGVyIFdL
VmlldyBsZWFrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkNjE2NWNmMWMzY2EyNmNjMzFiMTNj
MTM5NDNhODBiYzE5OTk0YzNiLi5iM2JiNGZmMWY3OWE0ZDBmYmI4NGU2YTNjOWUzYjVlMDJjMTJi
NTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTkzLDkgKzU5Myw2IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBkb20vU2NyaXB0UnVubmVyLmNwcAogICAgIGRvbS9TZWN1cml0eUNvbnRl
eHQuY3BwCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwCi0gICAgZG9tL1NoYWRvd0NvbnRlbnRF
bGVtZW50LmNwcAotICAgIGRvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAKLSAgICBk
b20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgZG9tL1NoYWRvd1Jvb3QuY3BwCiAg
ICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCiAgICAgZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlz
dC5jcHAKQEAgLTcwNiw2ICs3MDMsOCBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9D
aGVja2JveElucHV0VHlwZS5jcHAKICAgICBodG1sL0NsYXNzTGlzdC5jcHAKICAgICBodG1sL0Nv
bG9ySW5wdXRUeXBlLmNwcAorICAgIGh0bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCisgICAg
aHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgaHRtbC9ET01Gb3JtRGF0YS5j
cHAKICAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcAogICAgIGh0bWwvRE9NVG9rZW5M
aXN0LmNwcApAQCAtNzI5LDYgKzcyOCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1s
L0hUTUxCdXR0b25FbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCiAg
ICAgaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKKyAgICBodG1sL0hUTUxDb250ZW50RWxlbWVudC5j
cHAKICAgICBodG1sL0hUTUxETGlzdEVsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MRGF0YUxpc3RF
bGVtZW50LmNwcAogICAgIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggY2U2N2Y1MWRjNDkwNjBiOTJjYzQ0NGY3MjY4MTZjYzQzMDE2
YTMxZC4uYWNjMmZmNDhlZmY0NDQ0ZWJlYzE1YmVlYTYwMmE4Mjg0NDc5ODMwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNjQzLDEyICsxNjQzLDYgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Nl
bGVjdG9yUXVlcnkuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50
LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmggXAotCVNv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgXAotCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIFwKLQlTb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXApAQCAtMTk1NCw2ICsxOTQ4LDEwIEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlw
ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0Nv
bnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVu
dEluY2x1c2lvblNlbGVjdG9yLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudFNlbGVj
dG9yUXVlcnkuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lSW5wdXRUeXBlLmNwcCBcCkBAIC0xOTk4LDYgKzE5OTYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENvbGxlY3Rpb24uaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29udGVudEVsZW1l
bnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb250ZW50RWxlbWVudC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGFhNjAyN2ZiYmJjYWMyOWU3
OTNmMjAxZWRjMjQ3OTQwZWY3NjRhZmIuLjJlNjE5Y2Q5ZmUwMzc5ODMxMTNlYzZjYTA3ODE2NThm
NTQwZDc2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTU5LDkgKzU1OSw2IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vU2VjdXJpdHlDb250ZXh0LmNwcCBc
CiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwIFwKLSAgICBkb20vU2hhZG93Q29udGVudEVsZW1l
bnQuY3BwIFwKLSAgICBkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKLSAgICBk
b20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKICAgICBkb20vU2hhZG93Um9vdC5jcHAg
XAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0
LmNwcCBcCkBAIC02OTEsNiArNjg4LDggQEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9DaGVja2Jv
eElucHV0VHlwZS5jcHAgXAogICAgIGh0bWwvQ2xhc3NMaXN0LmNwcCBcCiAgICAgaHRtbC9Db2xv
cklucHV0VHlwZS5jcHAgXAorICAgIGh0bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKKyAg
ICBodG1sL0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgXAogICAgIGh0bWwvRE9NRm9ybURh
dGEuY3BwIFwKICAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCiAgICAgaHRtbC9E
T01Ub2tlbkxpc3QuY3BwIFwKQEAgLTcxNCw2ICs3MTMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBo
dG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAgXAogICAgIGh0bWwvSFRNTENvbGxlY3Rpb24uY3BwIFwKKyAgICBodG1sL0hUTUxDb250ZW50
RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTERMaXN0RWxlbWVudC5jcHAgXAogICAgIGh0bWwv
SFRNTERhdGFMaXN0RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQu
Y3BwIFwKQEAgLTE2NjAsOSArMTY2MCw2IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9TY3JpcHRF
bGVtZW50LmggXAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggXAogICAgIGRvbS9T
ZWxlY3RvclF1ZXJ5LmggXAotICAgIGRvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oIFwKLSAgICBk
b20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCBcCi0gICAgZG9tL1NoYWRvd0luY2x1c2lv
blNlbGVjdG9yLmggXAogICAgIGRvbS9TaGFkb3dSb290LmggXAogICAgIGRvbS9TcGFjZVNwbGl0
U3RyaW5nLmggXAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5oIFwKQEAgLTE3NzIsNiArMTc2OSw4
IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oIFwKICAgICBodG1sL2NhbnZhcy9E
YXRhVmlldy5oIFwKKyAgICBodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggXAorICAgIGh0bWwv
Q29udGVudEluY2x1c2lvblNlbGVjdG9yLmggXAogICAgIGh0bWwvQ2xhc3NMaXN0LmggXAogICAg
IGh0bWwvRE9NRm9ybURhdGEuaCBcCiAgICAgaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oIFwK
QEAgLTE3OTIsNiArMTc5MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvSFRNTEJ1dHRvbkVs
ZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxD
b2xsZWN0aW9uLmggXAorICAgIGh0bWwvSFRNTENvbnRlbnRFbGVtZW50LmggXAogICAgIGh0bWwv
SFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBc
CiAgICAgaHRtbC9IVE1MRGl2RWxlbWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggM2E1
YjI5YmFkMWY0ZWZlYTNiZGI5YTQzMTk2NGQ4MjMxNjgxOWUxZS4uNDJlOGM3NTA1NTk5ZmEzM2Q5
ODdhYjMxMzAwZmRlMGI0ZGMwMWQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTU0Niw2ICs1
NDYsNyBAQCBfX1pON1dlYkNvcmUxN1JlZ3VsYXJFeHByZXNzaW9uQzFFUktOM1dURjZTdHJpbmdF
TlMxXzE5VGV4dENhc2VTZW5zaXRpdml0eUUKIF9fWk43V2ViQ29yZTE3UmVndWxhckV4cHJlc3Np
b25EMUV2CiBfX1pON1dlYkNvcmUxN2NhY2hlRE9NU3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFs
T2JqZWN0RVBOM0pTQzlTdHJ1Y3R1cmVFUEtOUzJfOUNsYXNzSW5mb0UKIF9fWk43V2ViQ29yZTE3
b3BlblRlbXBvcmFyeUZpbGVFUktOM1dURjZTdHJpbmdFUmkKK19fWk43V2ViQ29yZTE4SFRNTENv
bnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlMThQbGF0Zm9y
bVN0cmF0ZWdpZXMyNmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5RXYKIF9fWk43V2ViQ29yZTE4
U2VhcmNoUG9wdXBNZW51TWFjQzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19aTjdXZWJDb3Jl
MThpc1N0YXJ0T2ZQYXJhZ3JhcGhFUktOU18xNVZpc2libGVQb3NpdGlvbkVOU18yN0VkaXRpbmdC
b3VuZGFyeUNyb3NzaW5nUnVsZUUKQEAgLTYwMyw3ICs2MDQsNiBAQCBfX1pON1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMjBzZXRTdWdnZXN0ZWRGaWxlbmFtZUVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyNHNldEV4cGVjdGVkQ29udGVudExl
bmd0aEV4CiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNnNldFVSTEVSS05TXzRL
VVJMRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZUMyRXYKLV9fWk43V2ViQ29y
ZTIwU2hhZG93Q29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFCiBfX1pON1dlYkNv
cmUyMFVzZXJHZXN0dXJlSW5kaWNhdG9yN3Nfc3RhdGVFCiBfX1pON1dlYkNvcmUyMFVzZXJHZXN0
dXJlSW5kaWNhdG9yQzFFTlNfMjZQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZUUKIF9fWk43V2Vi
Q29yZTIwVXNlckdlc3R1cmVJbmRpY2F0b3JEMUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDhhNTIz
ZmE1N2E0NDcxNDNhNmM5ZWVhMjUxNTQ4YTI0YWU1MThiMi4uNWZkN2Y3M2UyYjg3ODQxZDE5OWQ3
Njk0MmY2MzA0OTY2MGU4NjM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTA0Niw4ICsxMDQ2LDYg
QEAKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKICAgICAgICAg
ICAgICdkb20vU2NyaXB0UnVubmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290Lmgn
LAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oJywKLSAgICAgICAgICAg
ICdkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCcsCiAgICAgICAgICAgICAnZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuaCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlZEVsZW1lbnQuaCcsCiAg
ICAgICAgICAgICAnZG9tL1RleHQuaCcsCkBAIC0xMDYwLDYgKzEwNTgsNyBAQAogICAgICAgICBd
LAogICAgICAgICAnd2ViY29yZV9odG1sX3ByaXZhdGVoZWFkZXJfZmlsZXMnOiBbCiAgICAgICAg
ICAgICAnaHRtbC9Db2xsZWN0aW9uVHlwZS5oJywKKyAgICAgICAgICAgICdodG1sL0NvbnRlbnRT
ZWxlY3RvclF1ZXJ5LmgnLAogICAgICAgICAgICAgJ2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50
LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaCcsCiAgICAgICAgICAg
ICAnaHRtbC9IVE1MQ29sbGVjdGlvbi5oJywKQEAgLTU0NjMsMTIgKzU0NjIsNiBAQAogICAgICAg
ICAgICAgJ2RvbS9TZWN1cml0eUNvbnRleHQuaCcsCiAgICAgICAgICAgICAnZG9tL1NlbGVjdG9y
UXVlcnkuY3BwJywKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JRdWVyeS5oJywKLSAgICAgICAg
ICAgICdkb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwJywKLSAgICAgICAgICAgICdkb20vU2hh
ZG93Q29udGVudEVsZW1lbnQuaCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1
ZXJ5LmgnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAnLAot
ICAgICAgICAgICAgJ2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oJywKICAgICAgICAgICAg
ICdkb20vU2hhZG93Um9vdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAog
ICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCcsCkBAIC01NTQxLDYgKzU1MzQs
MTAgQEAKICAgICAgICAgICAgICdodG1sL0NsYXNzTGlzdC5oJywKICAgICAgICAgICAgICdodG1s
L0NvbG9ySW5wdXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9Db2xvcklucHV0VHlwZS5o
JywKKyAgICAgICAgICAgICdodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCcsCisgICAgICAg
ICAgICAnaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5oJywKKyAgICAgICAgICAgICdodG1sL0Nv
bnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvQ29udGVudElu
Y2x1c2lvblNlbGVjdG9yLmgnLAogICAgICAgICAgICAgJ2h0bWwvRE9NRm9ybURhdGEuY3BwJywK
ICAgICAgICAgICAgICdodG1sL0RPTUZvcm1EYXRhLmgnLAogICAgICAgICAgICAgJ2h0bWwvRE9N
U2V0dGFibGVUb2tlbkxpc3QuY3BwJywKQEAgLTU1ODYsNiArNTU4Myw4IEBACiAgICAgICAgICAg
ICAnaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAnLAor
ICAgICAgICAgICAgJ2h0bWwvSFRNTENvbnRlbnRFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAn
aHRtbC9IVE1MQ29udGVudEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRExpc3RF
bGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRExpc3RFbGVtZW50LmgnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlNzdjMWZmMTJiNDQzNGZkYjlj
OGUzOGY2YjA4MWZmZmE4ODgyMzFkLi4yYzBlNTUwMzc4MmRkZmU1N2IwZjMyYmI5MTQxNjljYmI5
ODA0OWNlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtNTA5OTgsMjMwICs1MDk5OCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVudC5jcHAiCi0JCQkJ
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRv
b2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxs
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9u
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxTaGFkb3dDb250ZW50RWxlbWVudC5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
Ci0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJ
CS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0J
CQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+
Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJ
TmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgot
CQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVudC5o
IgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21c
U2hhZG93Q29udGVudEVsZW1lbnQuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCIKLQkJ
CQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rp
b258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5j
cHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
LQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4K
LQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQ
cm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGRvbVxTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIgotCQkJCT4KLQkJCTwvRmlsZT4K
LQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3BhY2VTcGxpdFN0cmluZy5jcHAi
CiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNTU5NTgsNiArNTU3MzQsMTE4IEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxc
U2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXFNoYWRvd0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGh0bWxcU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIgorCQkJCT4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXFNoYWRvd0lu
Y2x1c2lvblNlbGVjdG9yLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGh0bWxcY2FudmFzXERhdGFWaWV3LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+
CkBAIC01NjkwMiw2ICs1Njc5MCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxDb250ZW50RWxlbWVudC5jcHAiCisJCQkJPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxc
SFRNTENvbnRlbnRFbGVtZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTERhdGFMaXN0RWxlbWVudC5jcHAiCiAJCQkJPgogCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY5ZDYxNmFiMTAxMWIzMzZhNDhlZjE4MTMyZGIzNjFm
ZTdlYjY0ZDUuLjNlOGM5NTAwM2Y2ZGY5NmE1OGIyNTFhNGI3NGMxZjZkMzZjY2ExY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE1NjgsOCArMTU2OCwxMiBAQAogCQk1M0M4Mjk4RTEzRDhEOTI3MDBERTJERUIgLyogUmVuZGVy
RmxleGlibGVCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUzQzgyOThDMTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5oICovOyB9
OwogCQk1NTBBMEJDOTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTBBMEJDNzA4NUY2MDM5
MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi87IH07CiAJCTU1MEEwQkNBMDg1RjYwMzkw
MDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFt
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTU3
MERCQTgxMTRCNTgwNDkwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQjdBODE0
QjU2OTZBMDBEQUVGQTAgLyogU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwICovOyB9Owot
CQk1NzBEQkE4MjE0QjU4MDRCMDBEQUVGQTAgLyogU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERCN0E5
MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oICovOyB9Owor
CQk1NzBEQkJGRjE0QzU0Qjc4MDBEQUVGQTAgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERCQkZC
MTRDNTRCNzgwMERBRUZBMCAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovOyB9Owor
CQk1NzBEQkMwMDE0QzU0Qjc4MDBEQUVGQTAgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQkJGQzE0
QzU0Qjc4MDBEQUVGQTAgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggKi87IH07CisJCTU3
MERCQzAxMTRDNTRCNzgwMERBRUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQkJGRDE0QzU0Qjc4
MDBEQUVGQTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwICovOyB9OworCQk1NzBEQkMwMjE0
QzU0Qjc4MDBEQUVGQTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERCQkZFMTRDNTRCNzgwMERBRUZBMCAv
KiBDb250ZW50U2VsZWN0b3JRdWVyeS5oICovOyB9OworCQk1NzBEQkMwNTE0QzU0QjkzMDBEQUVG
QTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERCQzAzMTRDNTRCOTMwMERBRUZBMCAvKiBIVE1MQ29udGVu
dEVsZW1lbnQuY3BwICovOyB9OworCQk1NzBEQkMwNjE0QzU0QjkzMDBEQUVGQTAgLyogSFRNTENv
bnRlbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzBEQkMwNDE0QzU0QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmggKi87
IH07CiAJCTU5MDVBREJGMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5MDVBREJEMTMwMkYz
Q0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCAqLzsgfTsKIAkJNTkwNUFEQzAxMzAyRjND
RTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU5MDVBREJFMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmll
d2VyLmggKi87IH07CiAJCTU5MEUxQjQ5MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmllbnRh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkw
RTFCNDgxMUU0RUY0QjAwNjlGNzg0IC8qIERldmljZU9yaWVudGF0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM1MDQsMTMgKzM1MDgsMTAg
QEAKIAkJQTcxNUU2NTMxMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxNUU2NTEx
MzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oICovOyB9OwogCQlBNzE4
NzYwRTBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBE
cmFnQWN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE3MTg3ODkwMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3ODhGMEIy
RDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLzsgfTsKLQkJQTcxQzMwQjgx
MzgxMjY1RTAwREJDMzUxIC8qIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MUMzMEI2MTM4MTI2NUUwMERC
QzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAgKi87IH07Ci0JCUE3MUMzMEI5MTM4
MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxQzMwQjcxMzgxMjY1RTAwREJDMzUx
IC8qIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmggKi87IH07CiAJCUE3MjNGNzdCMTQ4NENBNEMw
MDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRm
b3JtRXhwb3J0TWFjcm9zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTczRjk1RkUxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZDMTJD
OTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi87IH07CiAJCUE3M0Y5NUZGMTJDOTdC
RkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc0
QkI3NkIxM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0QkI3NkExM0JEQTg2
MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE3NEMyRDNDMTM4MTFFMEQwMEY4MzU3
MiAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc0QzJEM0IxMzgxMUUwRDAwRjgzNTcyIC8qIFNoYWRvd0NvbnRl
bnRFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTc1RTQ5NzYxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RTQ5NzQx
MDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NUU0OTc3MTA3NTJBQ0IwMEM5
Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi87IH07CiAJCUE3NUU4Qjg4MEUxREUyRDYwMDdGMjQ4MSAv
KiBGRUJsZW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3NUU4QjgwMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCAqLzsgfTsKQEAgLTM1
MjEsNyArMzUyMiw2IEBACiAJCUE3NUU4QjhEMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVu
dFRyYW5zZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzVFOEI4NTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oICovOyB9
OwogCQlBNzVFOEI4RTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODYwRTFERTJENjAw
N0YyNDgxIC8qIEZFQ29tcG9zaXRlLmNwcCAqLzsgfTsKIAkJQTc1RThCOEYwRTFERTJENjAwN0Yy
NDgxIC8qIEZFQ29tcG9zaXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzVFOEI4NzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCAqLzsg
fTsKLQkJQTc2NkNGOEMxMzgxMEUwQzAwMTFBMEIzIC8qIFNoYWRvd0NvbnRlbnRFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NjZDRjhC
MTM4MTBFMEMwMDExQTBCMyAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5jcHAgKi87IH07CiAJCUE3
NkU1RjdGMTM1RTBEQ0YwMEE2OTgzNyAvKiBSZW5kZXJlZERvY3VtZW50TWFya2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzZFNUY3RTEzNUUwRENG
MDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oICovOyB9OwogCQlBNzc5NzkxOTBE
NkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTEzMEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURh
dGEuY3BwICovOyB9OwogCQlBNzc5NzkxQTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkxNDBE
NkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmggKi87IH07CkBAIC04MzkxLDggKzgzOTEsMTIg
QEAKIAkJNTNDODI5OEMxM0Q4RDkyNzAwREUyREVCIC8qIFJlbmRlckZsZXhpYmxlQm94LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckZsZXhpYmxlQm94Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBRdWFs
aWZpZWROYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2
IC8qIFF1YWxpZmllZE5hbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUXVhbGlmaWVkTmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJNTcwREI3QTgxNEI1Njk2QTAwREFFRkEw
IC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcwREI3QTkxNEI1Njk2QTAwREFFRkEwIC8qIFNoYWRvd0Nv
bnRlbnRTZWxlY3RvclF1ZXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNo
YWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTU3MERCQkZCMTRDNTRCNzgwMERBRUZBMCAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGVudEluY2x1c2lvblNl
bGVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcwREJCRkMxNEM1NEI3
ODAwREFFRkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTcwREJCRkQxNEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnRl
bnRTZWxlY3RvclF1ZXJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcwREJC
RkUxNEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRTZWxlY3RvclF1ZXJ5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU3MERCQzAzMTRDNTRCOTMwMERBRUZBMCAvKiBIVE1MQ29udGVu
dEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTENv
bnRlbnRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcwREJDMDQx
NEM1NEI5MzAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBIVE1MQ29udGVudEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTkwNUFEQkQxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1MVHJlZVZpZXdlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MDVBREJFMTMwMkYzQ0UwMEYxMTZERiAv
KiBYTUxUcmVlVmlld2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTFRy
ZWVWaWV3ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTkwRTFCNDgxMUU0RUY0
QjAwNjlGNzg0IC8qIERldmljZU9yaWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMDMyMywxMyArMTAzMjcsMTAgQEAKIAkJQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8q
IERyYWdBY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdBY3Rp
b25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3ODhGMEIyRDA0QUMwMEEx
NkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNzFBNzBDOTExQUZCMDIwMDA5ODlENkQgLyogSFRNTE1ldGVyRWxlbWVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1ldGVyRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUE3MUMzMEI2MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNs
dXNpb25TZWxlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
aGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE3MUMzMEI3MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUg
LyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1FeHBvcnRNYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJvdW5kZWRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJvdW5kZWRSZWN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NEJCNzZBMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNlcHRp
b25Db2RlUGxhY2Vob2xkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhj
ZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3
NEMyRDNCMTM4MTFFMEQwMEY4MzU3MiAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dDb250ZW50RWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBNzVFNDk3NDEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzVFNDk3
NTEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU4QjgwMEUxREUyRDYwMDdGMjQ4MSAvKiBG
RUJsZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZFQmxlbmQu
Y3BwOyBwYXRoID0gZmlsdGVycy9GRUJsZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEwMzQwLDcgKzEwMzQxLDYgQEAKIAkJQTc1RThCODUwRTFERTJENjAwN0YyNDgxIC8q
IEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
RkVDb21wb25lbnRUcmFuc2Zlci5oOyBwYXRoID0gZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU4Qjg2MEUxREUyRDYwMDdGMjQ4
MSAvKiBGRUNvbXBvc2l0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBGRUNvbXBvc2l0ZS5jcHA7IHBhdGggPSBmaWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RThCODcwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29t
cG9zaXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZFQ29tcG9zaXRlLmg7
IHBhdGggPSBmaWx0ZXJzL0ZFQ29tcG9zaXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE3NjZDRjhCMTM4MTBFMEMwMDExQTBCMyAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFkb3dDb250ZW50RWxlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NkU1RjdFMTM1RTBEQ0YwMEE2
OTgzNyAvKiBSZW5kZXJlZERvY3VtZW50TWFya2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTc3OTc5MTMwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZURhdGEuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNzc5NzkxNDBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY0ODIsNiArMTY0ODIsMTIgQEAKIAkJOTNFRUMxRUMw
OUMyODc3NzAwQzUxNUQxIC8qIGh0bWwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTU3MERCQzAzMTRDNTRCOTMwMERBRUZBMCAvKiBIVE1MQ29udGVudEVs
ZW1lbnQuY3BwICovLAorCQkJCTU3MERCQzA0MTRDNTRCOTMwMERBRUZBMCAvKiBIVE1MQ29udGVu
dEVsZW1lbnQuaCAqLywKKwkJCQk1NzBEQkJGQjE0QzU0Qjc4MDBEQUVGQTAgLyogQ29udGVudElu
Y2x1c2lvblNlbGVjdG9yLmNwcCAqLywKKwkJCQk1NzBEQkJGQzE0QzU0Qjc4MDBEQUVGQTAgLyog
Q29udGVudEluY2x1c2lvblNlbGVjdG9yLmggKi8sCisJCQkJNTcwREJCRkQxNEM1NEI3ODAwREFF
RkEwIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCAqLywKKwkJCQk1NzBEQkJGRTE0QzU0Qjc4
MDBEQUVGQTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnkuaCAqLywKIAkJCQk0OTQ4NEZBRTEwMkNG
MDFFMDAxODdERDMgLyogY2FudmFzICovLAogCQkJCTk3QzFGNTUxMTIyODU1ODgwMEVERTYxNiAv
KiBwYXJzZXIgKi8sCiAJCQkJNDE1MEY5RUQxMkI2RTA5OTAwMDhDODYwIC8qIHNoYWRvdyAqLywK
QEAgLTIwNTM2LDEyICsyMDU0Miw2IEBACiAJCQkJOTc2RjM2RTkxNDY4NjIyNTAwNUU5M0I0IC8q
IFNlY3VyaXR5Q29udGV4dC5oICovLAogCQkJCUU0NTMyMkE5MTQwQ0UyNjcwMDVBMEY5MiAvKiBT
ZWxlY3RvclF1ZXJ5LmNwcCAqLywKIAkJCQlFNDUzMjJBQTE0MENFMjY3MDA1QTBGOTIgLyogU2Vs
ZWN0b3JRdWVyeS5oICovLAotCQkJCUE3NjZDRjhCMTM4MTBFMEMwMDExQTBCMyAvKiBTaGFkb3dD
b250ZW50RWxlbWVudC5jcHAgKi8sCi0JCQkJQTc0QzJEM0IxMzgxMUUwRDAwRjgzNTcyIC8qIFNo
YWRvd0NvbnRlbnRFbGVtZW50LmggKi8sCi0JCQkJNTcwREI3QTgxNEI1Njk2QTAwREFFRkEwIC8q
IFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCAqLywKLQkJCQk1NzBEQjdBOTE0QjU2OTZB
MDBEQUVGQTAgLyogU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCAqLywKLQkJCQlBNzFDMzBC
NjEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovLAotCQkJ
CUE3MUMzMEI3MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oICov
LAogCQkJCUE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLywKIAkJ
CQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovLAogCQkJCUQwMUEy
N0FCMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmNwcCAqLywKQEAgLTIzMzk1
LDEwICsyMzM5NSw3IEBACiAJCQkJOTNGMTk5NEYwODI0NUU1OTAwMUU5QUJDIC8qIFNldHRpbmdz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTg3NzBFOTEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjNERDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93
Qmx1ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTc0QzJEM0MxMzgxMUUwRDAwRjgzNTcyIC8qIFNo
YWRvd0NvbnRlbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk1NzBEQkE4MjE0QjU4MDRC
MDBEQUVGQTAgLyogU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNUVCOEM0MEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dEYXRhLmggaW4gSGVhZGVycyAq
LywKLQkJCQlBNzFDMzBCOTEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE2RDE2OTY0MTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFk
b3dSb290LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNFODBBMTk4OUNBMDA3RkI4QzUgLyog
U2hhZG93VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzk0MEQwMEE1REYwMDMwMDc0
RCAvKiBTaGFwZUFyYWJpYy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDAxNiw2ICsyNDAxMyw5IEBA
CiAJCQkJNTAzRDBDQUUxNEI1QjBCQTAwRjMyRjU3IC8qIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3Jh
bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTBBQ0UyQ0IxNEI1RDc5MzAwNDQ2NjY2IC8qIEN1c3Rv
bUZpbHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FDRDg4RDQxNEMwOEJENjAw
ODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1
NzBEQkMwMDE0QzU0Qjc4MDBEQUVGQTAgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1NzBEQkMwMjE0QzU0Qjc4MDBEQUVGQTAgLyogQ29udGVudFNlbGVj
dG9yUXVlcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MERCQzA2MTRDNTRCOTMwMERBRUZBMCAv
KiBIVE1MQ29udGVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjY0MzQsMTAgKzI2NDM0
LDcgQEAKIAkJCQkxNEM5QTVFQTBCM0QxMDVGMDA1QTAyMzIgLyogU2V0dGluZ3MuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDk4NzcwRTgxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYWRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjNERDQ0RjEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBNzY2Q0Y4QzEzODEwRTBDMDAxMUEwQjMgLyogU2hhZG93
Q29udGVudEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTcwREJBODExNEI1ODA0OTAw
REFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDNUVCOEMzMEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dEYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUE3MUMzMEI4MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxl
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNkQxNjk2MjEzNDZCNDlCMDAwRUI3NzAgLyog
U2hhZG93Um9vdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGNDBBMTk4OUNBMDA3RkI4
QzUgLyogU2hhZG93VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBRkZDOTMwRDAwQTVE
RjAwMzAwNzREIC8qIFNoYXBlQXJhYmljLmMgaW4gU291cmNlcyAqLywKQEAgLTI2OTMxLDYgKzI2
OTI4LDkgQEAKIAkJCQlBOEY0NTdBMDE0QkMxQTg4MDAwQ0VBNTkgLyogRE9NV2luZG93U1FMRGF0
YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTAzRDBDQUExNEI1QjA4NzAwRjMyRjU3IC8q
IEN1c3RvbUZpbHRlclByb2dyYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FDRDg4RDMxNEMw
OEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTU3MERCQkZGMTRDNTRCNzgwMERBRUZBMCAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTcwREJDMDExNEM1NEI3ODAwREFFRkEwIC8qIENv
bnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3MERCQzA1MTRDNTRC
OTMwMERBRUZBMCAvKiBIVE1MQ29udGVudEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCA1NWI2MDUyOGFhYTI5M2NkNjY1YzRjOTIyN2Jh
ODg0Nzg4NWY2YTNlLi5mMmNiNDY3ZGNjMTMzY2JiM2Q4MDQwZmUxMDZjMmJlOGRlMTI4Yjg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTExMiw5ICsxMTIsNiBAQAogI2luY2x1
ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAiCiAjaW5jbHVkZSAiU2VjdXJpdHlDb250
ZXh0LmNwcCIKICNpbmNsdWRlICJTZWxlY3RvclF1ZXJ5LmNwcCIKLSNpbmNsdWRlICJTaGFkb3dD
b250ZW50RWxlbWVudC5jcHAiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnku
Y3BwIgotI2luY2x1ZGUgIlNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCIKICNpbmNsdWRlICJT
aGFkb3dSb290LmNwcCIKICNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmNwcCIKICNpbmNsdWRl
ICJTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggZWY4NWY3ZDIzZjc4MjNmOWNmMWYxMGQ1Yzg4MjFiYThh
YTcxYmMwOS4uMjI2YzBmNGJlOGU1NThmZjkwMGI5NDFkMDhiMjA1YTFjMjJjYTljYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yNywxMyArMjcs
MTMgQEAKICNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiQ29u
dGFpbmVyTm9kZS5oIgorI2luY2x1ZGUgIkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIgorI2lu
Y2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRl
ICJSZW5kZXJGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVuZGVyRnVsbFNjcmVlbi5oIgogI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKLSNpbmNsdWRl
ICJTaGFkb3dDb250ZW50RWxlbWVudC5oIgotI2luY2x1ZGUgIlNoYWRvd0luY2x1c2lvblNlbGVj
dG9yLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogCiAjaWYgRU5BQkxFKFNWRykKQEAgLTEx
MSw3ICsxMTEsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBOb2RlUmVuZGVyaW5nQ29udGV4
dDo6cmVsZWFzZVN0eWxlKCkKICAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKLXN0
YXRpYyBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBw
YXJlbnQsIE5vZGUqIGN1cnJlbnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXJP
ZihIVE1MQ29udGVudEVsZW1lbnQqIHBhcmVudCwgTm9kZSogY3VycmVudCkKIHsKICAgICBTaGFk
b3dJbmNsdXNpb24qIGN1cnJlbnRJbmNsdXNpb24gPSBwYXJlbnQtPmluY2x1c2lvbnMoKS0+Zmlu
ZChjdXJyZW50KTsKICAgICBpZiAoIWN1cnJlbnRJbmNsdXNpb24pCkBAIC0xMjUsNyArMTI1LDcg
QEAgc3RhdGljIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyT2YoU2hhZG93Q29udGVudEVsZW1l
bnQqIHBhcmVudCwgTm9kZSogY3VycmVudCkKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIFJl
bmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJl
bnQsIE5vZGUqIGN1cnJlbnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVy
T2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCiB7CiAgICAgUmVu
ZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXIgPSAwOwogCkBAIC0xMzksNyArMTM5LDcgQEAgc3RhdGlj
IFJlbmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBw
YXJlbnQsIE5vZGUqIGN1cnIKICAgICByZXR1cm4gbGFzdFJlbmRlcmVyOwogfQogCi1zdGF0aWMg
UmVuZGVyT2JqZWN0KiBmaXJzdFJlbmRlcmVyT2YoU2hhZG93Q29udGVudEVsZW1lbnQqIHBhcmVu
dCkKK3N0YXRpYyBSZW5kZXJPYmplY3QqIGZpcnN0UmVuZGVyZXJPZihIVE1MQ29udGVudEVsZW1l
bnQqIHBhcmVudCkKIHsKICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gcGFy
ZW50LT5pbmNsdXNpb25zKCktPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5jbHVz
aW9uLT5uZXh0KCkpIHsKICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBpbmNs
dXNpb24tPmNvbnRlbnQoKS0+cmVuZGVyZXIoKSkKQEAgLTE0OSw3ICsxNDksNyBAQCBzdGF0aWMg
UmVuZGVyT2JqZWN0KiBmaXJzdFJlbmRlcmVyT2YoU2hhZG93Q29udGVudEVsZW1lbnQqIHBhcmVu
dCkKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIFJlbmRlck9iamVjdCogbGFzdFJlbmRlcmVy
T2YoU2hhZG93Q29udGVudEVsZW1lbnQqIHBhcmVudCkKK3N0YXRpYyBSZW5kZXJPYmplY3QqIGxh
c3RSZW5kZXJlck9mKEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50KQogewogICAgIGZvciAoU2hh
ZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBwYXJlbnQtPmluY2x1c2lvbnMoKS0+bGFzdCgpOyBp
bmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+cHJldmlvdXMoKSkgewogICAgICAgICBp
ZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGluY2x1c2lvbi0+Y29udGVudCgpLT5yZW5kZXJl
cigpKQpAQCAtMTg3LDcgKzE4Nyw3IEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRl
eHQ6Om5leHRSZW5kZXJlcigpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gbm9kZS0+cmVuZGVy
ZXIoKTsKICAgICAgICAgfQogICAgICAgICBpZiAobm9kZS0+aXNDb250ZW50RWxlbWVudCgpKSB7
Ci0gICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBmaXJzdCA9IGZpcnN0UmVuZGVyZXJPZih0
b1NoYWRvd0NvbnRlbnRFbGVtZW50KG5vZGUpKSkKKyAgICAgICAgICAgIGlmIChSZW5kZXJPYmpl
Y3QqIGZpcnN0ID0gZmlyc3RSZW5kZXJlck9mKHRvSFRNTENvbnRlbnRFbGVtZW50KG5vZGUpKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3Q7CiAgICAgICAgIH0KICAgICB9CkBAIC0yMjAs
NyArMjIwLDcgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6cHJldmlvdXNS
ZW5kZXJlcigpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gbm9kZS0+cmVuZGVyZXIoKTsKICAg
ICAgICAgfQogICAgICAgICBpZiAobm9kZS0+aXNDb250ZW50RWxlbWVudCgpKSB7Ci0gICAgICAg
ICAgICBpZiAoUmVuZGVyT2JqZWN0KiBsYXN0ID0gbGFzdFJlbmRlcmVyT2YodG9TaGFkb3dDb250
ZW50RWxlbWVudChub2RlKSkpCisgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBsYXN0ID0g
bGFzdFJlbmRlcmVyT2YodG9IVE1MQ29udGVudEVsZW1lbnQobm9kZSkpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBsYXN0OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuaAppbmRleCBiNGU4OTEyOTdhNjJjYjQ3ZGI3Yzk1ODQzYTBlYTA3
ZGNhNGY2YmIwLi5kMzE0MTE3NmYyMDU0MzQyMjcwZjZhNGUxMzFjZjlkNGJiZWRlOThmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaApAQCAtMzgsNyArMzgsNyBA
QCBjbGFzcyBOb2RlOwogY2xhc3MgUmVuZGVyRmxvd1RocmVhZDsKIGNsYXNzIFJlbmRlck9iamVj
dDsKIGNsYXNzIFJlbmRlclN0eWxlOwotY2xhc3MgU2hhZG93Q29udGVudEVsZW1lbnQ7CitjbGFz
cyBIVE1MQ29udGVudEVsZW1lbnQ7CiBjbGFzcyBTaGFkb3dSb290OwogCiBjbGFzcyBOb2RlUmVu
ZGVyaW5nQ29udGV4dCB7CkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJPYmpl
Y3QqIHBhcmVudFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVy
ZXIoKSBjb25zdDsKICAgICBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXIoKSBjb25zdDsK
LSAgICBTaGFkb3dDb250ZW50RWxlbWVudCogaW5jbHVkZXIoKSBjb25zdDsKKyAgICBIVE1MQ29u
dGVudEVsZW1lbnQqIGluY2x1ZGVyKCkgY29uc3Q7CiAKICAgICBSZW5kZXJTdHlsZSogc3R5bGUo
KSBjb25zdDsKICAgICB2b2lkIHNldFN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKQEAg
LTg2LDcgKzg2LDcgQEAgcHJpdmF0ZToKICAgICBOb2RlKiBtX25vZGU7CiAgICAgQ29udGFpbmVy
Tm9kZSogbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGU7CiAgICAgU2hhZG93Um9vdCog
bV92aXN1YWxQYXJlbnRTaGFkb3dSb290OwotICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBtX2lu
Y2x1ZGVyOworICAgIEhUTUxDb250ZW50RWxlbWVudCogbV9pbmNsdWRlcjsKICAgICBSZWZQdHI8
UmVuZGVyU3R5bGU+IG1fc3R5bGU7CiAgICAgUmVuZGVyRmxvd1RocmVhZCogbV9wYXJlbnRGbG93
UmVuZGVyZXI7CiAgICAgQXRvbWljU3RyaW5nIG1fZmxvd1RocmVhZDsKQEAgLTEwOCw3ICsxMDgs
NyBAQCBpbmxpbmUgUmVuZGVyU3R5bGUqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpzdHlsZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7CiB9CiAKLWlubGluZSBTaGFkb3dDb250ZW50
RWxlbWVudCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6OmluY2x1ZGVyKCkgY29uc3QKK2lubGluZSBI
VE1MQ29udGVudEVsZW1lbnQqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjppbmNsdWRlcigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1faW5jbHVkZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d0NvbnRlbnRFbGVtZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjNiY2Yw
MWUzMGYwOThiNjEyZWE5NzQ2ZDIwMzNiYzc1NzU3OWUyNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVu
dEVsZW1lbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5oIgotCi0jaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgotI2luY2x1ZGUgIlNoYWRv
d0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCi0jaW5jbHVkZSAiU2hhZG93SW5jbHVzaW9uU2VsZWN0
b3IuaCIKLSNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXVzaW5nIEhUTUxOYW1lczo6c2VsZWN0QXR0
cjsKLQotUGFzc1JlZlB0cjxTaGFkb3dDb250ZW50RWxlbWVudD4gU2hhZG93Q29udGVudEVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChRdWFsaWZpZWROYW1lLCB0YWdOYW1lLCAobnVsbEF0b20sICJ3ZWJraXRTaGFkb3dDb250ZW50
IiwgSFRNTE5hbWVzOjpkaXZUYWcubmFtZXNwYWNlVVJJKCkpKTsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNoYWRvd0NvbnRlbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7Ci19Ci0KLVNo
YWRvd0NvbnRlbnRFbGVtZW50OjpTaGFkb3dDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBTdHlsZWRFbGVtZW50KG5hbWUs
IGRvY3VtZW50LCBDcmVhdGVIVE1MRWxlbWVudCkKLSAgICAsIG1faW5jbHVzaW9ucyhhZG9wdFB0
cihuZXcgU2hhZG93SW5jbHVzaW9uTGlzdCgpKSkKLXsKLX0KLQotU2hhZG93Q29udGVudEVsZW1l
bnQ6On5TaGFkb3dDb250ZW50RWxlbWVudCgpCi17Ci19Ci0KLXZvaWQgU2hhZG93Q29udGVudEVs
ZW1lbnQ6OmF0dGFjaCgpCi17Ci0gICAgQVNTRVJUKCFmaXJzdENoaWxkKCkpOyAvLyBDdXJyZW50
bHkgZG9lc24ndCBzdXBwb3J0IGFueSBsaWdodCBjaGlsZC4KLSAgICBTdHlsZWRFbGVtZW50Ojph
dHRhY2goKTsKLQotICAgIGlmIChTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRv
d1RyZWVSb290Tm9kZSgpKSkgewotICAgICAgICBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvciogc2Vs
ZWN0b3IgPSByb290LT5lbnN1cmVJbmNsdXNpb25zKCk7Ci0gICAgICAgIHNlbGVjdG9yLT51bnNl
bGVjdChtX2luY2x1c2lvbnMuZ2V0KCkpOwotICAgICAgICBzZWxlY3Rvci0+c2VsZWN0KHRoaXMs
IG1faW5jbHVzaW9ucy5nZXQoKSk7Ci0gICAgICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNs
dXNpb24gPSBtX2luY2x1c2lvbnMtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5j
bHVzaW9uLT5uZXh0KCkpCi0gICAgICAgICAgICBpbmNsdXNpb24tPmNvbnRlbnQoKS0+ZGV0YWNo
KCk7Ci0gICAgICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBtX2luY2x1c2lv
bnMtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0KCkpCi0g
ICAgICAgICAgICBpbmNsdXNpb24tPmNvbnRlbnQoKS0+YXR0YWNoKCk7Ci0gICAgfQotfQotCi12
b2lkIFNoYWRvd0NvbnRlbnRFbGVtZW50OjpkZXRhY2goKQotewotICAgIGlmIChTaGFkb3dSb290
KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgpKSkgewotICAgICAgICBp
ZiAoU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+aW5jbHVzaW9ucygp
KQotICAgICAgICAgICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1faW5jbHVzaW9ucy5nZXQoKSk7Ci0g
ICAgfQotCi0gICAgQVNTRVJUKG1faW5jbHVzaW9ucy0+aXNFbXB0eSgpKTsKLSAgICBTdHlsZWRF
bGVtZW50OjpkZXRhY2goKTsKLX0KLQotY29uc3QgQXRvbWljU3RyaW5nJiBTaGFkb3dDb250ZW50
RWxlbWVudDo6c2VsZWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHNlbGVj
dEF0dHIpOwotfQotCi12b2lkIFNoYWRvd0NvbnRlbnRFbGVtZW50OjpzZXRTZWxlY3QoY29uc3Qg
QXRvbWljU3RyaW5nJiBzZWxlY3RWYWx1ZSkKLXsKLSAgICBzZXRBdHRyaWJ1dGUoc2VsZWN0QXR0
ciwgc2VsZWN0VmFsdWUpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Q29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50
RWxlbWVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2U0N2FkYzExM2ZmYTM4
M2NkMjk4ZTgxNGNhNGI3ZDliOGRjZmY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5o
CisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU2hhZG93Q29udGVudEVsZW1l
bnRfaAotI2RlZmluZSBTaGFkb3dDb250ZW50RWxlbWVudF9oCi0KLSNpbmNsdWRlICJTdHlsZWRF
bGVtZW50LmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeTsKLWNsYXNzIFNoYWRvd0luY2x1
c2lvbkxpc3Q7Ci0KLS8vIE5PVEU6IEN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9lc24ndCBzdXBw
b3J0IGR5bmFtaWMgaW5zZXJ0aW9uL2RlbGV0aW9uIG9mIFNoYWRvd0NvbnRlbnRFbGVtZW50Lgot
Ly8gWW91IHNob3VsZCBjcmVhdGUgU2hhZG93Q29udGVudEVsZW1lbnQgZHVyaW5nIHRoZSBob3N0
IGNvbnN0cnVjdGlvbi4KLWNsYXNzIFNoYWRvd0NvbnRlbnRFbGVtZW50IDogcHVibGljIFN0eWxl
ZEVsZW1lbnQgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYWRvd0NvbnRlbnRF
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKLQotICAgIHZpcnR1YWwgflNoYWRvd0NvbnRlbnRF
bGVtZW50KCk7Ci0gICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOwotICAgIHZpcnR1YWwgdm9pZCBk
ZXRhY2goKTsKLQotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0KCkgY29uc3Q7Ci0KLSAg
ICAvLyBGSVhNRTogQ3VycmVudGx5IHRoaXMgY29uc3RydWN0b3IgYWNjZXB0cyB3aWRlciBxdWVy
eSB0aGFuIHNoYWRvdyBkb20gc3BlYy4KLSAgICAvLyBGb3IgZXhhbXBsZSwgYSBzZWxlY3RvciBx
dWVyeSBzaG91bGQgbm90IGluY2x1ZGUgY29udGV4dHVhbCBzZWxlY3RvcnMuCi0gICAgLy8gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk0NgotICAgIC8vIEZJ
WE1FOiBDdXJyZW50bHkgd2UgZG9uJ3Qgc3VwcG9ydCBzZXR0aW5nIHNlbGVjdCB2YWx1ZSBkeW5h
bWljYWxseS4KLSAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2MjYxCi0gICAgdm9pZCBzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJik7Ci0KLSAg
ICBjb25zdCBTaGFkb3dJbmNsdXNpb25MaXN0KiBpbmNsdXNpb25zKCkgY29uc3QgeyByZXR1cm4g
bV9pbmNsdXNpb25zLmdldCgpOyB9Ci0KLXByb3RlY3RlZDoKLSAgICBTaGFkb3dDb250ZW50RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLQotcHJpdmF0ZToKLSAgICB2
aXJ0dWFsIGJvb2wgaXNDb250ZW50RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4
dCYpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSB7IHJldHVybiAwOyB9Ci0KLSAgICBP
d25QdHI8U2hhZG93SW5jbHVzaW9uTGlzdD4gbV9pbmNsdXNpb25zOwotfTsKLQotaW5saW5lIFNo
YWRvd0NvbnRlbnRFbGVtZW50KiB0b1NoYWRvd0NvbnRlbnRFbGVtZW50KE5vZGUqIG5vZGUpCi17
Ci0gICAgQVNTRVJUKCFub2RlIHx8IG5vZGUtPmlzQ29udGVudEVsZW1lbnQoKSk7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PFNoYWRvd0NvbnRlbnRFbGVtZW50Kj4obm9kZSk7Ci19Ci0KLX0KLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVj
dG9yUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1
ZXJ5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWEwNjFlNzg2N2IyNWJlNWZl
YWYxY2JmNGY3NDQ4ZDIzOWI3NDJjYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVl
cnkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIgotCi0jaW5jbHVkZSAi
Q1NTUGFyc2VyLmgiCi0jaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCi0jaW5jbHVkZSAiU2hh
ZG93Q29udGVudEVsZW1lbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TaGFkb3dDb250
ZW50U2VsZWN0b3JRdWVyeTo6U2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkoU2hhZG93Q29udGVu
dEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBtX2NvbnRlbnRFbGVtZW50KGVsZW1lbnQpCi0gICAg
LCBtX3NlbGVjdG9yQ2hlY2tlcihlbGVtZW50LT5kb2N1bWVudCgpLCAhZWxlbWVudC0+ZG9jdW1l
bnQoKS0+aW5RdWlya3NNb2RlKCkpCi17Ci0gICAgbV9zZWxlY3RvckNoZWNrZXIuc2V0Q29sbGVj
dGluZ1J1bGVzT25seSh0cnVlKTsKLQotICAgIGlmIChlbGVtZW50LT5zZWxlY3QoKS5pc051bGwo
KSB8fCBlbGVtZW50LT5zZWxlY3QoKS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IENTU1BhcnNlciBwYXJzZXIodHJ1ZSk7Ci0gICAgcGFyc2VyLnBhcnNlU2VsZWN0b3IoZWxlbWVu
dC0+c2VsZWN0KCksIGVsZW1lbnQtPmRvY3VtZW50KCksIG1fc2VsZWN0b3JMaXN0KTsKLQotICAg
IG1fc2VsZWN0b3JzLmluaXRpYWxpemUobV9zZWxlY3Rvckxpc3QpOwotfQotCi1ib29sIFNoYWRv
d0NvbnRlbnRTZWxlY3RvclF1ZXJ5OjptYXRjaGVzKE5vZGUqIG5vZGUpIGNvbnN0Ci17Ci0gICAg
QVNTRVJUKG5vZGUpOwotICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgQVNTRVJUKG5vZGUtPnBhcmVudE5vZGUoKSA9PSBtX2NvbnRlbnRFbGVtZW50LT5zaGFkb3dU
cmVlUm9vdE5vZGUoKS0+c2hhZG93SG9zdCgpKTsKLQotICAgIGlmIChtX2NvbnRlbnRFbGVtZW50
LT5zZWxlY3QoKS5pc051bGwoKSB8fCBtX2NvbnRlbnRFbGVtZW50LT5zZWxlY3QoKS5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2Rl
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX3NlbGVjdG9ycy5tYXRj
aGVzKG1fc2VsZWN0b3JDaGVja2VyLCB0b0VsZW1lbnQobm9kZSkpOwotfQotCi19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkNTY4NzNiMzQzMGMzYTJjMjQ3YTE4MGFlNGRhM2RiMTA0ZjA3
MzBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oCisrKyAvZGV2L251bGwK
QEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnlfaAotI2Rl
ZmluZSBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeV9oCi0KLSNpbmNsdWRlICJDU1NTZWxlY3Rv
ckxpc3QuaCIKLSNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXIuaCIKLSNpbmNsdWRlICJTZWxlY3Rv
clF1ZXJ5LmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBOb2Rl
OwotY2xhc3MgU2hhZG93Q29udGVudEVsZW1lbnQ7Ci0KLWNsYXNzIFNoYWRvd0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTaGFkb3dDb250ZW50U2VsZWN0
b3JRdWVyeSk7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgU2hhZG93Q29udGVudFNlbGVjdG9yUXVl
cnkoU2hhZG93Q29udGVudEVsZW1lbnQqKTsKLQotICAgIGJvb2wgbWF0Y2hlcyhOb2RlKikgY29u
c3Q7Ci0KLXByaXZhdGU6Ci0gICAgU2hhZG93Q29udGVudEVsZW1lbnQqIG1fY29udGVudEVsZW1l
bnQ7Ci0gICAgU2VsZWN0b3JEYXRhTGlzdCBtX3NlbGVjdG9yczsKLSAgICBDU1NTZWxlY3Rvckxp
c3QgbV9zZWxlY3Rvckxpc3Q7Ci0gICAgU2VsZWN0b3JDaGVja2VyIG1fc2VsZWN0b3JDaGVja2Vy
OwotfTsKLQotfQotCi0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0lu
Y2x1c2lvblNlbGVjdG9yLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTdlOWQ0
MmJlNTFiNWU0NTJjNGQ0MDU0ZTIwYmE0YzdiODU1NDhhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3IuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTU1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCIKLQotI2lu
Y2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudFNl
bGVjdG9yUXVlcnkuaCIKLSNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi12b2lkIFNoYWRvd0luY2x1c2lvbjo6YXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93
SW5jbHVzaW9uPiBuZXh0KQotewotICAgIEFTU0VSVCghbV9uZXh0KTsKLSAgICBBU1NFUlQoIW5l
eHQtPnByZXZpb3VzKCkpOwotICAgIG1fbmV4dCA9IG5leHQ7Ci0gICAgbV9uZXh0LT5tX3ByZXZp
b3VzID0gdGhpczsKLX0KLQotdm9pZCBTaGFkb3dJbmNsdXNpb246OnVubGluaygpCi17Ci0gICAg
QVNTRVJUKCFtX3ByZXZpb3VzKTsgLy8gQ2FuIGJlIGNhbGxlZCBvbmx5IGZvciBhIGhlYWQuCi0g
ICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gaXRlbSA9IHRoaXM7Ci0gICAgd2hpbGUgKGl0ZW0p
IHsKLSAgICAgICAgQVNTRVJUKCFpdGVtLT5wcmV2aW91cygpKTsKLSAgICAgICAgUmVmUHRyPFNo
YWRvd0luY2x1c2lvbj4gbmV4dEl0ZW0gPSBpdGVtLT5tX25leHQ7Ci0gICAgICAgIGl0ZW0tPm1f
bmV4dC5jbGVhcigpOwotICAgICAgICBpZiAobmV4dEl0ZW0pCi0gICAgICAgICAgICBuZXh0SXRl
bS0+bV9wcmV2aW91cy5jbGVhcigpOwotICAgICAgICBpdGVtID0gbmV4dEl0ZW07Ci0gICAgfQot
fQotCi1TaGFkb3dJbmNsdXNpb25MaXN0OjpTaGFkb3dJbmNsdXNpb25MaXN0KCkKLXsKLX0KLQot
U2hhZG93SW5jbHVzaW9uTGlzdDo6flNoYWRvd0luY2x1c2lvbkxpc3QoKQotewotICAgIEFTU0VS
VChpc0VtcHR5KCkpOwotfQotCi1TaGFkb3dJbmNsdXNpb24qIFNoYWRvd0luY2x1c2lvbkxpc3Q6
OmZpbmQoTm9kZSogY29udGVudCkgY29uc3QKLXsKLSAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiog
aXRlbSA9IGZpcnN0KCk7IGl0ZW07IGl0ZW0gPSBpdGVtLT5uZXh0KCkpIHsKLSAgICAgICAgaWYg
KGNvbnRlbnQgPT0gaXRlbS0+Y29udGVudCgpKQotICAgICAgICAgICAgcmV0dXJuIGl0ZW07Ci0g
ICAgfQotICAgIAotICAgIHJldHVybiAwOwotfQotCi12b2lkIFNoYWRvd0luY2x1c2lvbkxpc3Q6
OmNsZWFyKCkKLXsKLSAgICBpZiAoaXNFbXB0eSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbV9sYXN0
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fZmlyc3QtPnVubGluaygpOwotICAg
IG1fZmlyc3QuY2xlYXIoKTsKLSAgICBtX2xhc3QuY2xlYXIoKTsKLX0KLQotdm9pZCBTaGFkb3dJ
bmNsdXNpb25MaXN0OjphcHBlbmQoUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGNoaWxkKQot
ewotICAgIGlmIChpc0VtcHR5KCkpIHsKLSAgICAgICAgQVNTRVJUKCFtX2xhc3QpOwotICAgICAg
ICBtX2ZpcnN0ID0gbV9sYXN0ID0gY2hpbGQ7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBtX2xhc3QtPmFwcGVuZChjaGlsZCk7Ci0gICAgbV9sYXN0ID0gbV9sYXN0LT5uZXh0KCk7Ci19
Ci0KLVNoYWRvd0luY2x1c2lvblNlbGVjdG9yOjpTaGFkb3dJbmNsdXNpb25TZWxlY3RvcigpCi17
Ci19Ci0KLVNoYWRvd0luY2x1c2lvblNlbGVjdG9yOjp+U2hhZG93SW5jbHVzaW9uU2VsZWN0b3Io
KQotewotICAgIEFTU0VSVChtX2NhbmRpZGF0ZXMuaXNFbXB0eSgpKTsKLX0KLQotdm9pZCBTaGFk
b3dJbmNsdXNpb25TZWxlY3Rvcjo6c2VsZWN0KFNoYWRvd0NvbnRlbnRFbGVtZW50KiBjb250ZW50
RWxlbWVudCwgU2hhZG93SW5jbHVzaW9uTGlzdCogaW5jbHVzaW9ucykKLXsKLSAgICBBU1NFUlQo
aW5jbHVzaW9ucy0+aXNFbXB0eSgpKTsKLQotICAgIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5
IHF1ZXJ5KGNvbnRlbnRFbGVtZW50KTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY2Fu
ZGlkYXRlcy5zaXplKCk7ICsraSkgewotICAgICAgICBOb2RlKiBjaGlsZCA9IG1fY2FuZGlkYXRl
c1tpXS5nZXQoKTsKLSAgICAgICAgaWYgKCFjaGlsZCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICBpZiAoIXF1ZXJ5Lm1hdGNoZXMoY2hpbGQpKQotICAgICAgICAgICAgY29udGludWU7
Ci0KLSAgICAgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gaW5jbHVzaW9uID0gU2hhZG93SW5j
bHVzaW9uOjpjcmVhdGUoY29udGVudEVsZW1lbnQsIGNoaWxkKTsKLSAgICAgICAgaW5jbHVzaW9u
cy0+YXBwZW5kKGluY2x1c2lvbik7Ci0gICAgICAgIG1faW5jbHVzaW9uU2V0LmFkZChpbmNsdXNp
b24uZ2V0KCkpOwotICAgICAgICBtX2NhbmRpZGF0ZXNbaV0gPSAwOwotICAgIH0KLX0KLQotdm9p
ZCBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvcjo6dW5zZWxlY3QoU2hhZG93SW5jbHVzaW9uTGlzdCog
bGlzdCkKLXsKLSAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbGlzdC0+Zmly
c3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNsdXNpb24tPm5leHQoKSkKLSAgICAgICAg
bV9pbmNsdXNpb25TZXQucmVtb3ZlKGluY2x1c2lvbik7Ci0gICAgbGlzdC0+Y2xlYXIoKTsKLX0K
LQotU2hhZG93SW5jbHVzaW9uKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvcjo6ZmluZEZvcihOb2Rl
KiBrZXkpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faW5jbHVzaW9uU2V0LmZpbmQoa2V5KTsKLX0K
LQotdm9pZCBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvcjo6ZGlkU2VsZWN0KCkKLXsKLSAgICBtX2Nh
bmRpZGF0ZXMuY2xlYXIoKTsKLX0KLQotdm9pZCBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvcjo6d2ls
bFNlbGVjdE92ZXIoU2hhZG93Um9vdCogc2NvcGUpCi17Ci0gICAgaWYgKCFtX2NhbmRpZGF0ZXMu
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgZm9yIChOb2RlKiBub2RlID0gc2NvcGUt
PnNoYWRvd0hvc3QoKS0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxp
bmcoKSkKLSAgICAgICAgbV9jYW5kaWRhdGVzLmFwcGVuZChub2RlKTsKLX0KLQotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDFhODcxNzQ0MWIxOWMyZDZhZmEwZThmMzQwNzU4NDEwMjE4YjRlNS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDE1
MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6
Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvcl9oCi0jZGVmaW5lIFNoYWRv
d0luY2x1c2lvblNlbGVjdG9yX2gKLQotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBFbGVtZW50Owot
Y2xhc3MgTm9kZTsKLWNsYXNzIFNoYWRvd1Jvb3Q7Ci1jbGFzcyBTaGFkb3dDb250ZW50RWxlbWVu
dDsKLQotY2xhc3MgU2hhZG93SW5jbHVzaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhZG93SW5j
bHVzaW9uPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9u
PiBjcmVhdGUoU2hhZG93Q29udGVudEVsZW1lbnQqLCBOb2RlKik7Ci0KLSAgICBTaGFkb3dDb250
ZW50RWxlbWVudCogaW5jbHVkZXIoKSBjb25zdCB7IHJldHVybiBtX2luY2x1ZGVyOyB9Ci0gICAg
Tm9kZSogY29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudC5nZXQoKTsgfQotICAgIFNo
YWRvd0luY2x1c2lvbiogbmV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dC5nZXQoKTsgfQotICAg
IFNoYWRvd0luY2x1c2lvbiogcHJldmlvdXMoKSBjb25zdCB7IHJldHVybiBtX3ByZXZpb3VzLmdl
dCgpOyB9Ci0KLSAgICB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4pOwot
ICAgIHZvaWQgdW5saW5rKCk7Ci0KLXByaXZhdGU6Ci0gICAgU2hhZG93SW5jbHVzaW9uKFNoYWRv
d0NvbnRlbnRFbGVtZW50KiwgTm9kZSopOwotCi0gICAgU2hhZG93Q29udGVudEVsZW1lbnQqIG1f
aW5jbHVkZXI7Ci0gICAgUmVmUHRyPE5vZGU+IG1fY29udGVudDsKLSAgICBSZWZQdHI8U2hhZG93
SW5jbHVzaW9uPiBtX25leHQ7Ci0gICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbV9wcmV2aW91
czsKLX07Ci0KLWlubGluZSBTaGFkb3dJbmNsdXNpb246OlNoYWRvd0luY2x1c2lvbihTaGFkb3dD
b250ZW50RWxlbWVudCogaW5jbHVkZXIsIE5vZGUqIGNvbnRlbnQpCi0gICAgOiBtX2luY2x1ZGVy
KGluY2x1ZGVyKSwgbV9jb250ZW50KGNvbnRlbnQpCi17IH0KLQotaW5saW5lIFBhc3NSZWZQdHI8
U2hhZG93SW5jbHVzaW9uPiBTaGFkb3dJbmNsdXNpb246OmNyZWF0ZShTaGFkb3dDb250ZW50RWxl
bWVudCogaW5jbHVkZXIsIE5vZGUqIGNvbnRlbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTaGFkb3dJbmNsdXNpb24oaW5jbHVkZXIsIGNvbnRlbnQpKTsKLX0KLQotY2xhc3MgU2hhZG93
SW5jbHVzaW9uTGlzdCB7Ci1wdWJsaWM6Ci0gICAgU2hhZG93SW5jbHVzaW9uTGlzdCgpOwotICAg
IH5TaGFkb3dJbmNsdXNpb25MaXN0KCk7Ci0KLSAgICBTaGFkb3dJbmNsdXNpb24qIGZpcnN0KCkg
Y29uc3QgeyByZXR1cm4gbV9maXJzdC5nZXQoKTsgfQotICAgIFNoYWRvd0luY2x1c2lvbiogbGFz
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdC5nZXQoKTsgfQotICAgIFNoYWRvd0luY2x1c2lvbiog
ZmluZChOb2RlKikgY29uc3Q7Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1f
Zmlyc3Q7IH0KLQotICAgIHZvaWQgY2xlYXIoKTsKLSAgICB2b2lkIGFwcGVuZChQYXNzUmVmUHRy
PFNoYWRvd0luY2x1c2lvbj4pOwotCi1wcml2YXRlOgotICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNp
b24+IG1fZmlyc3Q7Ci0gICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbV9sYXN0OwotfTsKLQot
Ci1jbGFzcyBTaGFkb3dJbmNsdXNpb25TZXQgewotcHVibGljOgotICAgIHZvaWQgYWRkKFNoYWRv
d0luY2x1c2lvbiogdmFsdWUpIHsgbV9zZXQuYWRkKHZhbHVlKTsgfQotICAgIHZvaWQgcmVtb3Zl
KFNoYWRvd0luY2x1c2lvbiogdmFsdWUpIHsgbV9zZXQucmVtb3ZlKHZhbHVlKTsgfQotICAgIGJv
b2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2V0LmlzRW1wdHkoKTsgfQotICAgIFNoYWRv
d0luY2x1c2lvbiogZmluZChOb2RlKiBrZXkpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIHN0cnVj
dCBUcmFuc2xhdG9yIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNo
KGNvbnN0IE5vZGUqIGtleSkgeyByZXR1cm4gUHRySGFzaDxjb25zdCBOb2RlKj46Omhhc2goa2V5
KTsgfQotICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBTaGFkb3dJbmNsdXNpb24qIGlu
Y2x1c2lvbiwgY29uc3QgTm9kZSogY29udGVudCkgeyByZXR1cm4gaW5jbHVzaW9uLT5jb250ZW50
KCkgPT0gY29udGVudDsgfQotICAgIH07Ci0KLSAgICBzdHJ1Y3QgSGFzaCB7Ci0gICAgICAgIHN0
YXRpYyB1bnNpZ25lZCBoYXNoKFNoYWRvd0luY2x1c2lvbioga2V5KSB7IHJldHVybiBQdHJIYXNo
PGNvbnN0IE5vZGUqPjo6aGFzaChrZXktPmNvbnRlbnQoKSk7IH0KLSAgICAgICAgc3RhdGljIGJv
b2wgZXF1YWwoU2hhZG93SW5jbHVzaW9uKiBhLCBTaGFkb3dJbmNsdXNpb24qIGIpIHsgcmV0dXJu
IGEtPmNvbnRlbnQoKSA9PSBiLT5jb250ZW50KCk7IH0KLSAgICAgICAgc3RhdGljIGNvbnN0IGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKLSAgICB9OwotCi0gICAg
dHlwZWRlZiBIYXNoU2V0PFNoYWRvd0luY2x1c2lvbiosIEhhc2g+IFBvaW50ZXJTZXQ7Ci0KLSAg
ICBQb2ludGVyU2V0IG1fc2V0OwotfTsKLQotaW5saW5lIFNoYWRvd0luY2x1c2lvbiogU2hhZG93
SW5jbHVzaW9uU2V0OjpmaW5kKE5vZGUqIGtleSkgY29uc3QKLXsKLSAgICBQb2ludGVyU2V0Ojpp
dGVyYXRvciBmb3VuZCA9IG1fc2V0LmZpbmQ8Tm9kZSosIFNoYWRvd0luY2x1c2lvblNldDo6VHJh
bnNsYXRvcj4oa2V5KTsKLSAgICByZXR1cm4gZm91bmQgIT0gbV9zZXQuZW5kKCkgPyAqZm91bmQg
OiAwOwotfQotCi1jbGFzcyBTaGFkb3dJbmNsdXNpb25TZWxlY3RvciB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IpOwotcHVibGljOgotICAgIFNoYWRv
d0luY2x1c2lvblNlbGVjdG9yKCk7Ci0gICAgflNoYWRvd0luY2x1c2lvblNlbGVjdG9yKCk7Ci0K
LSAgICB2b2lkIHNlbGVjdChTaGFkb3dDb250ZW50RWxlbWVudCosIFNoYWRvd0luY2x1c2lvbkxp
c3QqKTsKLSAgICB2b2lkIHVuc2VsZWN0KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKLSAgICBTaGFk
b3dJbmNsdXNpb24qIGZpbmRGb3IoTm9kZSoga2V5KSBjb25zdDsKLQotICAgIHZvaWQgd2lsbFNl
bGVjdE92ZXIoU2hhZG93Um9vdCopOwotICAgIHZvaWQgZGlkU2VsZWN0KCk7Ci0gICAgYm9vbCBo
YXNDYW5kaWRhdGVzKCkgY29uc3QgeyByZXR1cm4gIW1fY2FuZGlkYXRlcy5pc0VtcHR5KCk7IH0K
LQotcHJpdmF0ZToKLSAgICB2b2lkIHJlbW92ZUZyb21TZXQoU2hhZG93SW5jbHVzaW9uTGlzdCop
OwotICAgIHZvaWQgYWRkVG9TZXQoU2hhZG93SW5jbHVzaW9uTGlzdCopOwotCi0gICAgVmVjdG9y
PFJlZlB0cjxOb2RlPiA+IG1fY2FuZGlkYXRlczsKLSAgICBTaGFkb3dJbmNsdXNpb25TZXQgbV9p
bmNsdXNpb25TZXQ7Ci19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3Bw
CmluZGV4IGUyY2U5YjA0M2U5NDRiMWFjNjIyYjU1YzEwMDkxMWM0YmI4MmUwNDkuLjIyOWQ1NTgx
NWE3ZmFlZWU0NzhhZDI5YTcwOGIyNTg5NmIyNGVhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5jcHAKQEAgLTI2LDEyICsyNiwxMiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkNvbnRl
bnRJbmNsdXNpb25TZWxlY3Rvci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIk5v
ZGVSYXJlRGF0YS5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFNoYWRvd1Jvb3Q6OnJlY2Fs
Y1NoYWRvd1RyZWVTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgY2xlYXJDaGlsZE5lZWRz
U3R5bGVSZWNhbGMoKTsKIH0KIAotU2hhZG93Q29udGVudEVsZW1lbnQqIFNoYWRvd1Jvb3Q6Omlu
Y2x1ZGVyRm9yKE5vZGUqIG5vZGUpIGNvbnN0CitIVE1MQ29udGVudEVsZW1lbnQqIFNoYWRvd1Jv
b3Q6OmluY2x1ZGVyRm9yKE5vZGUqIG5vZGUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2luY2x1c2lv
bnMpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMTU1LDE1ICsxNTUsMTUgQEAgdm9pZCBTaGFkb3dS
b290OjphdHRhY2goKQogICAgICAgICBtX2luY2x1c2lvbnMtPmRpZFNlbGVjdCgpOwogfQogCi1T
aGFkb3dJbmNsdXNpb25TZWxlY3RvciogU2hhZG93Um9vdDo6aW5jbHVzaW9ucygpIGNvbnN0CitD
b250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIFNoYWRvd1Jvb3Q6OmluY2x1c2lvbnMoKSBjb25zdAog
ewogICAgIHJldHVybiBtX2luY2x1c2lvbnMuZ2V0KCk7CiB9CiAKLVNoYWRvd0luY2x1c2lvblNl
bGVjdG9yKiBTaGFkb3dSb290OjplbnN1cmVJbmNsdXNpb25zKCkKK0NvbnRlbnRJbmNsdXNpb25T
ZWxlY3RvciogU2hhZG93Um9vdDo6ZW5zdXJlSW5jbHVzaW9ucygpCiB7CiAgICAgaWYgKCFtX2lu
Y2x1c2lvbnMpCi0gICAgICAgIG1faW5jbHVzaW9ucyA9IGFkb3B0UHRyKG5ldyBTaGFkb3dJbmNs
dXNpb25TZWxlY3RvcigpKTsKKyAgICAgICAgbV9pbmNsdXNpb25zID0gYWRvcHRQdHIobmV3IENv
bnRlbnRJbmNsdXNpb25TZWxlY3RvcigpKTsKICAgICBtX2luY2x1c2lvbnMtPndpbGxTZWxlY3RP
dmVyKHRoaXMpOwogICAgIHJldHVybiBtX2luY2x1c2lvbnMuZ2V0KCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuaAppbmRleCAzNGRkZjMzMDExNTI0ZGE3MmRiZDZmYTIyNGRiOTRiZjRhZDkxMmQz
Li5jNWJjMGRiY2I1ZDBjZGI5YTgzNDViZDlhMWY5MjE3ZTIzMDJhYzA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmgKQEAgLTMyLDggKzMyLDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRG9jdW1lbnQ7Ci1jbGFzcyBTaGFkb3dDb250ZW50RWxlbWVudDsKLWNsYXNzIFNoYWRvd0lu
Y2x1c2lvblNlbGVjdG9yOworY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OworY2xhc3MgQ29udGVu
dEluY2x1c2lvblNlbGVjdG9yOwogCiBjbGFzcyBTaGFkb3dSb290IDogcHVibGljIFRyZWVTY29w
ZSB7CiBwdWJsaWM6CkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVjYWxj
U2hhZG93VHJlZVN0eWxlKFN0eWxlQ2hhbmdlKTsKIAotICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50
KiBpbmNsdWRlckZvcihOb2RlKikgY29uc3Q7CisgICAgSFRNTENvbnRlbnRFbGVtZW50KiBpbmNs
dWRlckZvcihOb2RlKikgY29uc3Q7CiAgICAgdm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAg
ICAgYm9vbCBpc0luY2x1c2lvblNlbGVjdG9yQWN0aXZlKCkgY29uc3Q7CiAKQEAgLTUwLDggKzUw
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclNoZWV0cygpIGNvbnN0
OwogICAgIHZvaWQgc2V0QXBwbHlBdXRob3JTaGVldHMoYm9vbCk7CiAKLSAgICBTaGFkb3dJbmNs
dXNpb25TZWxlY3RvciogaW5jbHVzaW9ucygpIGNvbnN0OwotICAgIFNoYWRvd0luY2x1c2lvblNl
bGVjdG9yKiBlbnN1cmVJbmNsdXNpb25zKCk7CisgICAgQ29udGVudEluY2x1c2lvblNlbGVjdG9y
KiBpbmNsdXNpb25zKCkgY29uc3Q7CisgICAgQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBlbnN1
cmVJbmNsdXNpb25zKCk7CiAKIHByaXZhdGU6CiAgICAgU2hhZG93Um9vdChEb2N1bWVudCopOwpA
QCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFzQ29udGVudEVsZW1lbnQoKSBj
b25zdDsKIAogICAgIGJvb2wgbV9hcHBseUF1dGhvclNoZWV0czsKLSAgICBPd25QdHI8U2hhZG93
SW5jbHVzaW9uU2VsZWN0b3I+IG1faW5jbHVzaW9uczsKKyAgICBPd25QdHI8Q29udGVudEluY2x1
c2lvblNlbGVjdG9yPiBtX2luY2x1c2lvbnM7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0cjxTaGFk
b3dSb290PiBTaGFkb3dSb290OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZiNTQxYTVhZTg5ODc1OThlYjlhOTEzMjc0YTVjNGM2YWNmODBkYzQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAKQEAg
LTAsMCArMSwxNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29udGVudElu
Y2x1c2lvblNlbGVjdG9yLmgiCisKKyNpbmNsdWRlICJDb250ZW50U2VsZWN0b3JRdWVyeS5oIgor
I2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
KworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgU2hhZG93SW5jbHVzaW9uOjphcHBlbmQo
UGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG5leHQpCit7CisgICAgQVNTRVJUKCFtX25leHQp
OworICAgIEFTU0VSVCghbmV4dC0+cHJldmlvdXMoKSk7CisgICAgbV9uZXh0ID0gbmV4dDsKKyAg
ICBtX25leHQtPm1fcHJldmlvdXMgPSB0aGlzOworfQorCit2b2lkIFNoYWRvd0luY2x1c2lvbjo6
dW5saW5rKCkKK3sKKyAgICBBU1NFUlQoIW1fcHJldmlvdXMpOyAvLyBDYW4gYmUgY2FsbGVkIG9u
bHkgZm9yIGEgaGVhZC4KKyAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBpdGVtID0gdGhpczsK
KyAgICB3aGlsZSAoaXRlbSkgeworICAgICAgICBBU1NFUlQoIWl0ZW0tPnByZXZpb3VzKCkpOwor
ICAgICAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBuZXh0SXRlbSA9IGl0ZW0tPm1fbmV4dDsK
KyAgICAgICAgaXRlbS0+bV9uZXh0LmNsZWFyKCk7CisgICAgICAgIGlmIChuZXh0SXRlbSkKKyAg
ICAgICAgICAgIG5leHRJdGVtLT5tX3ByZXZpb3VzLmNsZWFyKCk7CisgICAgICAgIGl0ZW0gPSBu
ZXh0SXRlbTsKKyAgICB9Cit9CisKK1NoYWRvd0luY2x1c2lvbkxpc3Q6OlNoYWRvd0luY2x1c2lv
bkxpc3QoKQoreworfQorCitTaGFkb3dJbmNsdXNpb25MaXN0Ojp+U2hhZG93SW5jbHVzaW9uTGlz
dCgpCit7CisgICAgQVNTRVJUKGlzRW1wdHkoKSk7Cit9CisKK1NoYWRvd0luY2x1c2lvbiogU2hh
ZG93SW5jbHVzaW9uTGlzdDo6ZmluZChOb2RlKiBjb250ZW50KSBjb25zdAoreworICAgIGZvciAo
U2hhZG93SW5jbHVzaW9uKiBpdGVtID0gZmlyc3QoKTsgaXRlbTsgaXRlbSA9IGl0ZW0tPm5leHQo
KSkgeworICAgICAgICBpZiAoY29udGVudCA9PSBpdGVtLT5jb250ZW50KCkpCisgICAgICAgICAg
ICByZXR1cm4gaXRlbTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgU2hh
ZG93SW5jbHVzaW9uTGlzdDo6Y2xlYXIoKQoreworICAgIGlmIChpc0VtcHR5KCkpIHsKKyAgICAg
ICAgQVNTRVJUKCFtX2xhc3QpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9maXJz
dC0+dW5saW5rKCk7CisgICAgbV9maXJzdC5jbGVhcigpOworICAgIG1fbGFzdC5jbGVhcigpOwor
fQorCit2b2lkIFNoYWRvd0luY2x1c2lvbkxpc3Q6OmFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0lu
Y2x1c2lvbj4gY2hpbGQpCit7CisgICAgaWYgKGlzRW1wdHkoKSkgeworICAgICAgICBBU1NFUlQo
IW1fbGFzdCk7CisgICAgICAgIG1fZmlyc3QgPSBtX2xhc3QgPSBjaGlsZDsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIG1fbGFzdC0+YXBwZW5kKGNoaWxkKTsKKyAgICBtX2xhc3QgPSBt
X2xhc3QtPm5leHQoKTsKK30KKworQ29udGVudEluY2x1c2lvblNlbGVjdG9yOjpDb250ZW50SW5j
bHVzaW9uU2VsZWN0b3IoKQoreworfQorCitDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6On5Db250
ZW50SW5jbHVzaW9uU2VsZWN0b3IoKQoreworICAgIEFTU0VSVChtX2NhbmRpZGF0ZXMuaXNFbXB0
eSgpKTsKK30KKwordm9pZCBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OnNlbGVjdChIVE1MQ29u
dGVudEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50LCBTaGFkb3dJbmNsdXNpb25MaXN0KiBpbmNsdXNp
b25zKQoreworICAgIEFTU0VSVChpbmNsdXNpb25zLT5pc0VtcHR5KCkpOworCisgICAgQ29udGVu
dFNlbGVjdG9yUXVlcnkgcXVlcnkoY29udGVudEVsZW1lbnQpOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV9jYW5kaWRhdGVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIE5vZGUqIGNoaWxk
ID0gbV9jYW5kaWRhdGVzW2ldLmdldCgpOworICAgICAgICBpZiAoIWNoaWxkKQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIGlmICghcXVlcnkubWF0Y2hlcyhjaGlsZCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBpbmNsdXNp
b24gPSBTaGFkb3dJbmNsdXNpb246OmNyZWF0ZShjb250ZW50RWxlbWVudCwgY2hpbGQpOworICAg
ICAgICBpbmNsdXNpb25zLT5hcHBlbmQoaW5jbHVzaW9uKTsKKyAgICAgICAgbV9pbmNsdXNpb25T
ZXQuYWRkKGluY2x1c2lvbi5nZXQoKSk7CisgICAgICAgIG1fY2FuZGlkYXRlc1tpXSA9IDA7Cisg
ICAgfQorfQorCit2b2lkIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6dW5zZWxlY3QoU2hhZG93
SW5jbHVzaW9uTGlzdCogbGlzdCkKK3sKKyAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVz
aW9uID0gbGlzdC0+Zmlyc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNsdXNpb24tPm5l
eHQoKSkKKyAgICAgICAgbV9pbmNsdXNpb25TZXQucmVtb3ZlKGluY2x1c2lvbik7CisgICAgbGlz
dC0+Y2xlYXIoKTsKK30KKworU2hhZG93SW5jbHVzaW9uKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0
b3I6OmZpbmRGb3IoTm9kZSoga2V5KSBjb25zdAoreworICAgIHJldHVybiBtX2luY2x1c2lvblNl
dC5maW5kKGtleSk7Cit9CisKK3ZvaWQgQ29udGVudEluY2x1c2lvblNlbGVjdG9yOjpkaWRTZWxl
Y3QoKQoreworICAgIG1fY2FuZGlkYXRlcy5jbGVhcigpOworfQorCit2b2lkIENvbnRlbnRJbmNs
dXNpb25TZWxlY3Rvcjo6d2lsbFNlbGVjdE92ZXIoU2hhZG93Um9vdCogc2NvcGUpCit7CisgICAg
aWYgKCFtX2NhbmRpZGF0ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgZm9yIChO
b2RlKiBub2RlID0gc2NvcGUtPnNoYWRvd0hvc3QoKS0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2Rl
ID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgbV9jYW5kaWRhdGVzLmFwcGVuZChub2Rl
KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db250ZW50SW5jbHVz
aW9uU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudEluY2x1c2lvblNlbGVj
dG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGYwYjE5NzhlYmM3OTFiYzQ2M2MyMzA0YTk5N2Y1NTE1NDFiNjI2
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudEluY2x1c2lv
blNlbGVjdG9yLmgKQEAgLTAsMCArMSwxNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRlbnRJbmNsdXNpb25TZWxl
Y3Rvcl9oCisjZGVmaW5lIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcl9oCisKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgRWxlbWVudDsKK2NsYXNzIEhUTUxDb250ZW50RWxlbWVudDsKK2NsYXNzIE5v
ZGU7CitjbGFzcyBTaGFkb3dSb290OworCitjbGFzcyBTaGFkb3dJbmNsdXNpb24gOiBwdWJsaWMg
UmVmQ291bnRlZDxTaGFkb3dJbmNsdXNpb24+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTaGFkb3dJbmNsdXNpb24+IGNyZWF0ZShIVE1MQ29udGVudEVsZW1lbnQqLCBOb2RlKik7
CisKKyAgICBIVE1MQ29udGVudEVsZW1lbnQqIGluY2x1ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9p
bmNsdWRlcjsgfQorICAgIE5vZGUqIGNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnQu
Z2V0KCk7IH0KKyAgICBTaGFkb3dJbmNsdXNpb24qIG5leHQoKSBjb25zdCB7IHJldHVybiBtX25l
eHQuZ2V0KCk7IH0KKyAgICBTaGFkb3dJbmNsdXNpb24qIHByZXZpb3VzKCkgY29uc3QgeyByZXR1
cm4gbV9wcmV2aW91cy5nZXQoKTsgfQorCisgICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTaGFk
b3dJbmNsdXNpb24+KTsKKyAgICB2b2lkIHVubGluaygpOworCitwcml2YXRlOgorICAgIFNoYWRv
d0luY2x1c2lvbihIVE1MQ29udGVudEVsZW1lbnQqLCBOb2RlKik7CisKKyAgICBIVE1MQ29udGVu
dEVsZW1lbnQqIG1faW5jbHVkZXI7CisgICAgUmVmUHRyPE5vZGU+IG1fY29udGVudDsKKyAgICBS
ZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBtX25leHQ7CisgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lv
bj4gbV9wcmV2aW91czsKK307CisKK2lubGluZSBTaGFkb3dJbmNsdXNpb246OlNoYWRvd0luY2x1
c2lvbihIVE1MQ29udGVudEVsZW1lbnQqIGluY2x1ZGVyLCBOb2RlKiBjb250ZW50KQorICAgIDog
bV9pbmNsdWRlcihpbmNsdWRlciksIG1fY29udGVudChjb250ZW50KQoreyB9CisKK2lubGluZSBQ
YXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gU2hhZG93SW5jbHVzaW9uOjpjcmVhdGUoSFRNTENv
bnRlbnRFbGVtZW50KiBpbmNsdWRlciwgTm9kZSogY29udGVudCkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNoYWRvd0luY2x1c2lvbihpbmNsdWRlciwgY29udGVudCkpOworfQorCitjbGFz
cyBTaGFkb3dJbmNsdXNpb25MaXN0IHsKK3B1YmxpYzoKKyAgICBTaGFkb3dJbmNsdXNpb25MaXN0
KCk7CisgICAgflNoYWRvd0luY2x1c2lvbkxpc3QoKTsKKworICAgIFNoYWRvd0luY2x1c2lvbiog
Zmlyc3QoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0LmdldCgpOyB9CisgICAgU2hhZG93SW5jbHVz
aW9uKiBsYXN0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0LmdldCgpOyB9CisgICAgU2hhZG93SW5j
bHVzaW9uKiBmaW5kKE5vZGUqKSBjb25zdDsKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJl
dHVybiAhbV9maXJzdDsgfQorCisgICAgdm9pZCBjbGVhcigpOworICAgIHZvaWQgYXBwZW5kKFBh
c3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPik7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFNoYWRv
d0luY2x1c2lvbj4gbV9maXJzdDsKKyAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBtX2xhc3Q7
Cit9OworCisKK2NsYXNzIFNoYWRvd0luY2x1c2lvblNldCB7CitwdWJsaWM6CisgICAgdm9pZCBh
ZGQoU2hhZG93SW5jbHVzaW9uKiB2YWx1ZSkgeyBtX3NldC5hZGQodmFsdWUpOyB9CisgICAgdm9p
ZCByZW1vdmUoU2hhZG93SW5jbHVzaW9uKiB2YWx1ZSkgeyBtX3NldC5yZW1vdmUodmFsdWUpOyB9
CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9zZXQuaXNFbXB0eSgpOyB9Cisg
ICAgU2hhZG93SW5jbHVzaW9uKiBmaW5kKE5vZGUqIGtleSkgY29uc3Q7CisKK3ByaXZhdGU6Cisg
ICAgc3RydWN0IFRyYW5zbGF0b3IgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIHVuc2ln
bmVkIGhhc2goY29uc3QgTm9kZSoga2V5KSB7IHJldHVybiBQdHJIYXNoPGNvbnN0IE5vZGUqPjo6
aGFzaChrZXkpOyB9CisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFNoYWRvd0luY2x1
c2lvbiogaW5jbHVzaW9uLCBjb25zdCBOb2RlKiBjb250ZW50KSB7IHJldHVybiBpbmNsdXNpb24t
PmNvbnRlbnQoKSA9PSBjb250ZW50OyB9CisgICAgfTsKKworICAgIHN0cnVjdCBIYXNoIHsKKyAg
ICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goU2hhZG93SW5jbHVzaW9uKiBrZXkpIHsgcmV0dXJu
IFB0ckhhc2g8Y29uc3QgTm9kZSo+OjpoYXNoKGtleS0+Y29udGVudCgpKTsgfQorICAgICAgICBz
dGF0aWMgYm9vbCBlcXVhbChTaGFkb3dJbmNsdXNpb24qIGEsIFNoYWRvd0luY2x1c2lvbiogYikg
eyByZXR1cm4gYS0+Y29udGVudCgpID09IGItPmNvbnRlbnQoKTsgfQorICAgICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIH07
CisKKyAgICB0eXBlZGVmIEhhc2hTZXQ8U2hhZG93SW5jbHVzaW9uKiwgSGFzaD4gUG9pbnRlclNl
dDsKKworICAgIFBvaW50ZXJTZXQgbV9zZXQ7Cit9OworCitpbmxpbmUgU2hhZG93SW5jbHVzaW9u
KiBTaGFkb3dJbmNsdXNpb25TZXQ6OmZpbmQoTm9kZSoga2V5KSBjb25zdAoreworICAgIFBvaW50
ZXJTZXQ6Oml0ZXJhdG9yIGZvdW5kID0gbV9zZXQuZmluZDxOb2RlKiwgU2hhZG93SW5jbHVzaW9u
U2V0OjpUcmFuc2xhdG9yPihrZXkpOworICAgIHJldHVybiBmb3VuZCAhPSBtX3NldC5lbmQoKSA/
ICpmb3VuZCA6IDA7Cit9CisKK2NsYXNzIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvciB7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoQ29udGVudEluY2x1c2lvblNlbGVjdG9yKTsKK3B1YmxpYzoK
KyAgICBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IoKTsKKyAgICB+Q29udGVudEluY2x1c2lvblNl
bGVjdG9yKCk7CisKKyAgICB2b2lkIHNlbGVjdChIVE1MQ29udGVudEVsZW1lbnQqLCBTaGFkb3dJ
bmNsdXNpb25MaXN0Kik7CisgICAgdm9pZCB1bnNlbGVjdChTaGFkb3dJbmNsdXNpb25MaXN0Kik7
CisgICAgU2hhZG93SW5jbHVzaW9uKiBmaW5kRm9yKE5vZGUqIGtleSkgY29uc3Q7CisKKyAgICB2
b2lkIHdpbGxTZWxlY3RPdmVyKFNoYWRvd1Jvb3QqKTsKKyAgICB2b2lkIGRpZFNlbGVjdCgpOwor
ICAgIGJvb2wgaGFzQ2FuZGlkYXRlcygpIGNvbnN0IHsgcmV0dXJuICFtX2NhbmRpZGF0ZXMuaXNF
bXB0eSgpOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCByZW1vdmVGcm9tU2V0KFNoYWRvd0luY2x1
c2lvbkxpc3QqKTsKKyAgICB2b2lkIGFkZFRvU2V0KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKKwor
ICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiBtX2NhbmRpZGF0ZXM7CisgICAgU2hhZG93SW5jbHVz
aW9uU2V0IG1faW5jbHVzaW9uU2V0OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJmOGU1MTcxMDdk
OThmNTVmZDAzYTIzOTNlNTkwOGJiYTdlNGY5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29udGVudFNlbGVjdG9yUXVlcnkuaCIKKwor
I2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgorI2lu
Y2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0Nv
bnRlbnRTZWxlY3RvclF1ZXJ5OjpDb250ZW50U2VsZWN0b3JRdWVyeShIVE1MQ29udGVudEVsZW1l
bnQqIGVsZW1lbnQpCisgICAgOiBtX2NvbnRlbnRFbGVtZW50KGVsZW1lbnQpCisgICAgLCBtX3Nl
bGVjdG9yQ2hlY2tlcihlbGVtZW50LT5kb2N1bWVudCgpLCAhZWxlbWVudC0+ZG9jdW1lbnQoKS0+
aW5RdWlya3NNb2RlKCkpCit7CisgICAgbV9zZWxlY3RvckNoZWNrZXIuc2V0Q29sbGVjdGluZ1J1
bGVzT25seSh0cnVlKTsKKworICAgIGlmIChlbGVtZW50LT5zZWxlY3QoKS5pc051bGwoKSB8fCBl
bGVtZW50LT5zZWxlY3QoKS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIENTU1Bh
cnNlciBwYXJzZXIodHJ1ZSk7CisgICAgcGFyc2VyLnBhcnNlU2VsZWN0b3IoZWxlbWVudC0+c2Vs
ZWN0KCksIGVsZW1lbnQtPmRvY3VtZW50KCksIG1fc2VsZWN0b3JMaXN0KTsKKworICAgIG1fc2Vs
ZWN0b3JzLmluaXRpYWxpemUobV9zZWxlY3Rvckxpc3QpOworfQorCitib29sIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5OjptYXRjaGVzKE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgQVNTRVJUKG5vZGUp
OworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUKG5v
ZGUtPnBhcmVudE5vZGUoKSA9PSBtX2NvbnRlbnRFbGVtZW50LT5zaGFkb3dUcmVlUm9vdE5vZGUo
KS0+c2hhZG93SG9zdCgpKTsKKworICAgIGlmIChtX2NvbnRlbnRFbGVtZW50LT5zZWxlY3QoKS5p
c051bGwoKSB8fCBtX2NvbnRlbnRFbGVtZW50LT5zZWxlY3QoKS5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBtX3NlbGVjdG9ycy5tYXRjaGVzKG1fc2VsZWN0
b3JDaGVja2VyLCB0b0VsZW1lbnQobm9kZSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmRhZmI5OTNiYWNmOWM3MGRhMzgw
ZjMzNjdlZmE2OGQxYjg5NWYxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb250ZW50
U2VsZWN0b3JRdWVyeV9oCisjZGVmaW5lIENvbnRlbnRTZWxlY3RvclF1ZXJ5X2gKKworI2luY2x1
ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgorI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlci5oIgorI2lu
Y2x1ZGUgIlNlbGVjdG9yUXVlcnkuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVu
dDsKK2NsYXNzIE5vZGU7CitjbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7CisKK2NsYXNzIENvbnRl
bnRTZWxlY3RvclF1ZXJ5IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb250ZW50U2VsZWN0
b3JRdWVyeSk7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQ29udGVudFNlbGVjdG9yUXVlcnkoSFRN
TENvbnRlbnRFbGVtZW50Kik7CisKKyAgICBib29sIG1hdGNoZXMoTm9kZSopIGNvbnN0OworCitw
cml2YXRlOgorICAgIEhUTUxDb250ZW50RWxlbWVudCogbV9jb250ZW50RWxlbWVudDsKKyAgICBT
ZWxlY3RvckRhdGFMaXN0IG1fc2VsZWN0b3JzOworICAgIENTU1NlbGVjdG9yTGlzdCBtX3NlbGVj
dG9yTGlzdDsKKyAgICBTZWxlY3RvckNoZWNrZXIgbV9zZWxlY3RvckNoZWNrZXI7Cit9OworCit9
CisKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbnRl
bnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbnRlbnRFbGVtZW50LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xYzE0ZmVjZTlhYmMzOTMyYzJmNWMxNTA2ZDJlZGEwMTk5ZjJmOTU1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29udGVudEVsZW1lbnQu
Y3BwCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRN
TENvbnRlbnRFbGVtZW50LmgiCisKKyNpbmNsdWRlICJDb250ZW50SW5jbHVzaW9uU2VsZWN0b3Iu
aCIKKyNpbmNsdWRlICJDb250ZW50U2VsZWN0b3JRdWVyeS5oIgorI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgorI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290Lmgi
CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3VzaW5nIEhUTUxOYW1lczo6c2VsZWN0QXR0cjsKKworUGFzc1JlZlB0cjxIVE1MQ29udGVudEVs
ZW1lbnQ+IEhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHRhZ05hbWUsIChudWxsQXRv
bSwgIndlYmtpdFNoYWRvd0NvbnRlbnQiLCBIVE1MTmFtZXM6OmRpdlRhZy5uYW1lc3BhY2VVUkko
KSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTENvbnRlbnRFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7Cit9CisKK0hUTUxDb250ZW50RWxlbWVudDo6SFRNTENvbnRlbnRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEhU
TUxFbGVtZW50KG5hbWUsIGRvY3VtZW50KQorICAgICwgbV9pbmNsdXNpb25zKGFkb3B0UHRyKG5l
dyBTaGFkb3dJbmNsdXNpb25MaXN0KCkpKQoreworfQorCitIVE1MQ29udGVudEVsZW1lbnQ6On5I
VE1MQ29udGVudEVsZW1lbnQoKQoreworfQorCit2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6YXR0
YWNoKCkKK3sKKyAgICBBU1NFUlQoIWZpcnN0Q2hpbGQoKSk7IC8vIEN1cnJlbnRseSBkb2Vzbid0
IHN1cHBvcnQgYW55IGxpZ2h0IGNoaWxkLgorICAgIEhUTUxFbGVtZW50OjphdHRhY2goKTsKKwor
ICAgIGlmIChTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9k
ZSgpKSkgeworICAgICAgICBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIHNlbGVjdG9yID0gcm9v
dC0+ZW5zdXJlSW5jbHVzaW9ucygpOworICAgICAgICBzZWxlY3Rvci0+dW5zZWxlY3QobV9pbmNs
dXNpb25zLmdldCgpKTsKKyAgICAgICAgc2VsZWN0b3ItPnNlbGVjdCh0aGlzLCBtX2luY2x1c2lv
bnMuZ2V0KCkpOworICAgICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbV9p
bmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4
dCgpKQorICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50KCktPmRldGFjaCgpOworICAgICAg
ICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgp
OyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQorICAgICAgICAgICAg
aW5jbHVzaW9uLT5jb250ZW50KCktPmF0dGFjaCgpOworICAgIH0KK30KKwordm9pZCBIVE1MQ29u
dGVudEVsZW1lbnQ6OmRldGFjaCgpCit7CisgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1No
YWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpKSB7CisgICAgICAgIGlmIChDb250ZW50SW5j
bHVzaW9uU2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+aW5jbHVzaW9ucygpKQorICAgICAgICAg
ICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1faW5jbHVzaW9ucy5nZXQoKSk7CisgICAgfQorCisgICAg
QVNTRVJUKG1faW5jbHVzaW9ucy0+aXNFbXB0eSgpKTsKKyAgICBIVE1MRWxlbWVudDo6ZGV0YWNo
KCk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgSFRNTENvbnRlbnRFbGVtZW50OjpzZWxlY3Qo
KSBjb25zdAoreworICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoc2VsZWN0QXR0cik7Cit9CisKK3Zv
aWQgSFRNTENvbnRlbnRFbGVtZW50OjpzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJiBzZWxl
Y3RWYWx1ZSkKK3sKKyAgICBzZXRBdHRyaWJ1dGUoc2VsZWN0QXR0ciwgc2VsZWN0VmFsdWUpOwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb250ZW50RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29udGVudEVsZW1lbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMzc3NzJiZDU4YWJlNzJmMzlkODY3NGVhYTQ4YjVmZjEwNzA2OGE4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29udGVudEVsZW1lbnQuaApAQCAtMCwwICsx
LDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBIVE1MQ29udGVudEVsZW1lbnRfaAorI2RlZmluZSBIVE1MQ29udGVudEVs
ZW1lbnRfaAorCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENvbnRlbnRTZWxlY3RvclF1ZXJ5
OworY2xhc3MgU2hhZG93SW5jbHVzaW9uTGlzdDsKKworLy8gTk9URTogQ3VycmVudCBpbXBsZW1l
bnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgZHluYW1pYyBpbnNlcnRpb24vZGVsZXRpb24gb2YgSFRN
TENvbnRlbnRFbGVtZW50LgorLy8gWW91IHNob3VsZCBjcmVhdGUgSFRNTENvbnRlbnRFbGVtZW50
IGR1cmluZyB0aGUgaG9zdCBjb25zdHJ1Y3Rpb24uCitjbGFzcyBIVE1MQ29udGVudEVsZW1lbnQg
OiBwdWJsaWMgSFRNTEVsZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhU
TUxDb250ZW50RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIH5IVE1M
Q29udGVudEVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CisgICAgdmlydHVh
bCB2b2lkIGRldGFjaCgpOworCisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3QoKSBjb25z
dDsKKworICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgdGhpcyBjb25zdHJ1Y3RvciBhY2NlcHRzIHdp
ZGVyIHF1ZXJ5IHRoYW4gc2hhZG93IGRvbSBzcGVjLgorICAgIC8vIEZvciBleGFtcGxlLCBhIHNl
bGVjdG9yIHF1ZXJ5IHNob3VsZCBub3QgaW5jbHVkZSBjb250ZXh0dWFsIHNlbGVjdG9ycy4KKyAg
ICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTQ2Cisg
ICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBkb24ndCBzdXBwb3J0IHNldHRpbmcgc2VsZWN0IHZh
bHVlIGR5bmFtaWNhbGx5LgorICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzYyNjEKKyAgICB2b2lkIHNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcm
KTsKKworICAgIGNvbnN0IFNoYWRvd0luY2x1c2lvbkxpc3QqIGluY2x1c2lvbnMoKSBjb25zdCB7
IHJldHVybiBtX2luY2x1c2lvbnMuZ2V0KCk7IH0KKworcHJvdGVjdGVkOgorICAgIEhUTUxDb250
ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKworcHJpdmF0ZToK
KyAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZW50RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5n
Q29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSB7IHJldHVybiAwOyB9CisK
KyAgICBPd25QdHI8U2hhZG93SW5jbHVzaW9uTGlzdD4gbV9pbmNsdXNpb25zOworfTsKKworaW5s
aW5lIEhUTUxDb250ZW50RWxlbWVudCogdG9IVE1MQ29udGVudEVsZW1lbnQoTm9kZSogbm9kZSkK
K3sKKyAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aXNDb250ZW50RWxlbWVudCgpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTENvbnRlbnRFbGVtZW50Kj4obm9kZSk7Cit9CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXgg
YWFhMDVlMTQ1NzRkNDA3OWZjZTA4ZTE1NjZjZTBiYmRkNjRmNzM2NS4uZGRlYzczODc2NjQ4MDAz
ZTJmOTFjNzcwZDFhODE1MjAyMzJiN2Y1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcApAQCAtMjMsMTIgKzIzLDEyIEBACiAKICNpZiBFTkFCTEUoREVUQUlM
UykKIAorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIkhUTUxTdW1tYXJ5RWxlbWVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRGV0
YWlscy5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIApAQCAtNDIsMTMgKzQyLDEzIEBAIHN0YXRp
YyBjb25zdCBBdG9taWNTdHJpbmcmIHN1bW1hcnlRdWVyeVNlbGVjdG9yKCkKICAgICByZXR1cm4g
c2VsZWN0b3I7CiB9OwogCi1jbGFzcyBEZXRhaWxzQ29udGVudEVsZW1lbnQgOiBwdWJsaWMgU2hh
ZG93Q29udGVudEVsZW1lbnQgeworY2xhc3MgRGV0YWlsc0NvbnRlbnRFbGVtZW50IDogcHVibGlj
IEhUTUxDb250ZW50RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGV0
YWlsc0NvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogcHJpdmF0ZToKICAgICBE
ZXRhaWxzQ29udGVudEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQotICAgICAgICA6IFNoYWRv
d0NvbnRlbnRFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKKyAgICAgICAgOiBI
VE1MQ29udGVudEVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQogICAgIHsKICAg
ICB9CiB9OwpAQCAtNTgsMTMgKzU4LDEzIEBAIFBhc3NSZWZQdHI8RGV0YWlsc0NvbnRlbnRFbGVt
ZW50PiBEZXRhaWxzQ29udGVudEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lCiAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBEZXRhaWxzQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpKTsKIH0K
IAotY2xhc3MgRGV0YWlsc1N1bW1hcnlFbGVtZW50IDogcHVibGljIFNoYWRvd0NvbnRlbnRFbGVt
ZW50IHsKK2NsYXNzIERldGFpbHNTdW1tYXJ5RWxlbWVudCA6IHB1YmxpYyBIVE1MQ29udGVudEVs
ZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERldGFpbHNTdW1tYXJ5RWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAKIHByaXZhdGU6CiAgICAgRGV0YWlsc1N1bW1hcnlF
bGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICAgICAgOiBTaGFkb3dDb250ZW50RWxlbWVu
dChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCisgICAgICAgIDogSFRNTENvbnRlbnRFbGVt
ZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKICAgICB7CiAgICAgICAgIHNldFNlbGVj
dChzdW1tYXJ5UXVlcnlTZWxlY3RvcigpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCmluZGV4IGI2MjRlNjI3YmExN2MxOTI3NTU3NzQyNmU0
NmZiM2ZiNjExMzlkY2IuLjI3NGExODZmMTYxODlmYTQxZWVhMDM2NTYxNjM5MmUwMjExMGI5MDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCkBAIC00
MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmNwcCIKICNpbmNsdWRlICJI
VE1MQnV0dG9uRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuY3BwIgor
I2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0
RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTERldGFpbHNFbGVtZW50LmNwcCIKICNpbmNsdWRl
ICJIVE1MRExpc3RFbGVtZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlF
bGVtZW50LmNwcAppbmRleCBlY2YxMDg1Y2UzMGZlMGYzYjkzZTFjZGUyNWViNTQ0ZmE3ZGI0ZjRi
Li45OTI1NjI3ZmU1Y2UzYWE0YTk5YjIzMzAxNTI4MGMwYzc0MzY4NTE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCkBAIC0yNCwxMiArMjQsMTIgQEAKICNp
ZiBFTkFCTEUoREVUQUlMUykKIAogI2luY2x1ZGUgIkRldGFpbHNNYXJrZXJDb250cm9sLmgiCisj
aW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERldGFpbHNFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlclN1bW1hcnku
aCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5oIgogCiAjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgogCkBAIC0zNywxMyArMzcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1jbGFzcyBTdW1tYXJ5Q29udGVudEVsZW1lbnQgOiBw
dWJsaWMgU2hhZG93Q29udGVudEVsZW1lbnQgeworY2xhc3MgU3VtbWFyeUNvbnRlbnRFbGVtZW50
IDogcHVibGljIEhUTUxDb250ZW50RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U3VtbWFyeUNvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogcHJpdmF0
ZToKICAgICBTdW1tYXJ5Q29udGVudEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQotICAgICAg
ICA6IFNoYWRvd0NvbnRlbnRFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKKyAg
ICAgICAgOiBIVE1MQ29udGVudEVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQog
ICAgIHsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDc4
M2MzODA1NjkzYWVjNjNkNGQ5ODViZDc4YzM4NGZkNDQ4NGM0ZWMuLjI0ODk2N2IzM2FmOWZlOWE4
ZTYyYmY3ZWZmY2EzMTEzNGM0NTZkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVu
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgpAQCAtNDYsNyArNDcs
NiBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVBc1Rl
eHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlNwZWxsQ2hlY2tlci5o
IgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtMTI2LDE0ICsxMjYsMTQgQEAgYm9vbCBJ
bnRlcm5hbHM6OmlzUHJlbG9hZGVkKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB1
cmwpCiAgICAgcmV0dXJuIGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5pc1ByZWxv
YWRlZCh1cmwpOwogfQogCi1QYXNzUmVmUHRyPEVsZW1lbnQ+IEludGVybmFsczo6Y3JlYXRlU2hh
ZG93Q29udGVudEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykK
K1Bhc3NSZWZQdHI8RWxlbWVudD4gSW50ZXJuYWxzOjpjcmVhdGVDb250ZW50RWxlbWVudChEb2N1
bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghZG9jdW1lbnQp
IHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KIAotICAgIHJldHVybiBTaGFkb3dDb250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKKyAgICByZXR1cm4gSFRNTENvbnRlbnRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogfQog
CiBFbGVtZW50KiBJbnRlcm5hbHM6OmdldEVsZW1lbnRCeUlkSW5TaGFkb3dSb290KE5vZGUqIHNo
YWRvd1Jvb3QsIGNvbnN0IFN0cmluZyYgaWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggZWQ0NzM3MDU1Yjk5MzgzZGE5YjI4MDIxYWYzZjY5NTlj
NjFkMzVmNy4uODk5ZDdkYmIxNjFmMzEyZjU2NTRlZTJjZGE3NGM5ZDdkNDE4OTBmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbW92ZVNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IEVsZW1lbnQqIGluY2x1ZGVyRm9yKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5n
IHNoYWRvd1BzZXVkb0lkKEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0
cjxFbGVtZW50PiBjcmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChEb2N1bWVudCosIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUNvbnRlbnRFbGVtZW50KERv
Y3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIEVsZW1lbnQqIGdldEVsZW1lbnRCeUlkSW5T
aGFkb3dSb290KE5vZGUqIHNoYWRvd1Jvb3QsIGNvbnN0IFN0cmluZyYgaWQsIEV4Y2VwdGlvbkNv
ZGUmKTsKIAogI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAppbmRleCBmNTZkMWFmNzRhOGUzNWRkNDdiZDRlNmM0OWYxMjVlN2VhYWMzYTU1Li44
ZjE2YjMyYzg1NmFjMmYxZjZmODU4NmM5NDFiYjUzZDdiNzYyNGY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zNSw3ICszNSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAg
ICAgICBFbGVtZW50IGluY2x1ZGVyRm9yKGluIE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRp
b24pOwogICAgICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIERPTVN0cmluZyBzaGFkb3dQc2V1ZG9JZChpbiBF
bGVtZW50IGVsZW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgRWxlbWVudCBj
cmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIEVsZW1lbnQgY3JlYXRlQ29udGVudEVsZW1lbnQoaW4gRG9j
dW1lbnQgZG9jdW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBFbGVtZW50IGdl
dEVsZW1lbnRCeUlkSW5TaGFkb3dSb290KGluIE5vZGUgc2hhZG93Um9vdCwgaW4gRE9NU3RyaW5n
IGlkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogI2lmIGRlZmluZWQoRU5BQkxFX0lOUFVUX0NP
TE9SKSAmJiBFTkFCTEVfSU5QVVRfQ09MT1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCAxYWE4
NDgxNjdiZWRjODU2NDhlYzRmNGE3ZTdmYmExYjQyMjgyY2ZiLi4xMmVlNDk1OWQxZjVlOTUxZDg3
NWFhZjM5ZjcyZDE3YjRmZWJiYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0xNTAsNyAr
MTUwLDYgQEAgRVhQT1JUUwogICAgICAgICA/YWRkU2xvd0Nhc2VAQXRvbWljU3RyaW5nQFdURkBA
Q0E/QVY/JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAMkBQQVZTdHJpbmdJbXBsQDJAQFoK
ICAgICAgICAgP2NhY2hlRE9NU3RydWN0dXJlQFdlYkNvcmVAQFlBUEFWU3RydWN0dXJlQEpTQ0BA
UEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVYyM0BQQlVDbGFzc0luZm9AM0BAWgogICAgICAgICA/
Y3JlYXRlQFJhbmdlQFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBA
V1RGQEBWPyRQYXNzUmVmUHRyQFZEb2N1bWVudEBXZWJDb3JlQEBANEBWPyRQYXNzUmVmUHRyQFZO
b2RlQFdlYkNvcmVAQEA0QEgxSEBaCi0gICAgICAgID9jcmVhdGVAU2hhZG93Q29udGVudEVsZW1l
bnRAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlNoYWRvd0NvbnRlbnRFbGVtZW50QFdlYkNv
cmVAQEBXVEZAQFBBVkRvY3VtZW50QDJAQFoKICAgICAgICAgP2NyZWF0ZVdyYXBwZXJAV2ViQ29y
ZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RA
MUBQQVZOb2RlQDFAQFoKICAgICAgICAgP2Vuc3VyZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3Jl
QEBRQUVQQVZTaGFkb3dSb290QDJAWFoKICAgICAgICAgP2VxdWFsQFdURkBAWUFfTlBCVlN0cmlu
Z0ltcGxAMUBQQkVAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxp
dGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDZiNjQ0
OGRiMTYxYWViNjcxODkwNmQ2MmY3NzBiOWE3ZTRhOGVjMGQuLmE5NWI1ZmUwMzY2ZTFmYzcyNGUz
ZTgzYTBhYmIyNGE5MzM3OTRhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYK
QEAgLTE0Myw3ICsxNDMsNiBAQCBFWFBPUlRTCiAgICAgICAgID9hZGRTbG93Q2FzZUBBdG9taWNT
dHJpbmdAV1RGQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEAyQFBBVlN0cmlu
Z0ltcGxAMkBAWgogICAgICAgICA/Y2FjaGVET01TdHJ1Y3R1cmVAV2ViQ29yZUBAWUFQQVZTdHJ1
Y3R1cmVASlNDQEBQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVjIzQFBCVUNsYXNzSW5mb0AzQEBa
CiAgICAgICAgID9jcmVhdGVAUmFuZ2VAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlJhbmdl
QFdlYkNvcmVAQEBXVEZAQFY/JFBhc3NSZWZQdHJAVkRvY3VtZW50QFdlYkNvcmVAQEA0QFY/JFBh
c3NSZWZQdHJAVk5vZGVAV2ViQ29yZUBAQDRASDFIQFoKLSAgICAgICAgP2NyZWF0ZUBTaGFkb3dD
b250ZW50RWxlbWVudEBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWU2hhZG93Q29udGVudEVs
ZW1lbnRAV2ViQ29yZUBAQFdURkBAUEFWRG9jdW1lbnRAMkBAWgogICAgICAgICA/Y3JlYXRlV3Jh
cHBlckBXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUds
b2JhbE9iamVjdEAxQFBBVk5vZGVAMUBAWgogICAgICAgICA/ZW5zdXJlU2hhZG93Um9vdEBFbGVt
ZW50QFdlYkNvcmVAQFFBRVBBVlNoYWRvd1Jvb3RAMkBYWgogICAgICAgICA/ZXF1YWxAV1RGQEBZ
QV9OUEJWU3RyaW5nSW1wbEAxQFBCRUBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5
bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCAxNWI2
OTU3YTllMjQyMzE5MGJhYzFkZDIxY2ZiMTY3M2ZkNzMxOGRhLi4zMzkzYWFhMDcyMmQ5Mjg0MWE4
ZmI1MGNiYmFmOTc5Mjg5MTI5NTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTUzLDcg
KzUzLDYgQEAgX1pON1dlYkNvcmUxN2NhY2hlRE9NU3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFs
T2JqZWN0RVBOM0pTQzlTdHJ1Y3R1cmVFUEtOUzJfOUMKIF9aTjdXZWJDb3JlMTlJbnNwZWN0b3JD
b250cm9sbGVyMzlzZXRSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21JbnRlcm5hbHNFaWk7CiBf
Wk43V2ViQ29yZTIwTm9kZVJlbmRlcmluZ0NvbnRleHRDMUVQTlNfNE5vZGVFOwogX1pON1dlYkNv
cmUyME5vZGVSZW5kZXJpbmdDb250ZXh0RDFFdjsKLV9aTjdXZWJDb3JlMjBTaGFkb3dDb250ZW50
RWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEU7CiBfWk43V2ViQ29yZTIxZ2V0Q2FjaGVkRE9N
U3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBLTjNKU0M5Q2xhc3NJbmZvRTsKIF9a
TjdXZWJDb3JlMjJleHRlcm5hbFJlcHJlc2VudGF0aW9uRVBOU183RWxlbWVudEVqOwogX1pON1dl
YkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEwbWFya2Vyc0ZvckVQTlNfNE5vZGVFTlNf
MTREb2N1bWVudE1hcmtlcjExTWFya2VyVHlwZXNFOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVjMjNmMzgyMzY2YzAwNzFh
Y2E1MWFjYTllODIyMjUyNjBmM2E4ZTIuLjgyZmQxNDUyNWE1OTNhMjYxMTgzNTNkMjRlNzk0NWNk
ZWM1MjU4OWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMS0xNiAgU2hpbnlhIEthd2Fu
YWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIE1vdmUgU2hhZG93Q29udGVudEVs
ZW1lbnQgZnJvbSBkb20vIHRvIGh0bWwvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03NjI0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbmNsdWRl
ci5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVy
ZXJzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NyZWF0ZS1jb250ZW50LWVsZW1l
bnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNlbGVj
dC5odG1sOgorCiAyMDEyLTAxLTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgREZHIHNob3VsZCBiZSBhYmxlIHRvIGRvIEpTIGFuZCBjdXN0b20gZ2V0dGVyIGNh
Y2hpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVs
ZW1lbnQtaW5jbHVkZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50
LWVsZW1lbnQtaW5jbHVkZXIuaHRtbAppbmRleCBmMTliZDE3Njg5OTg4MWUyYmRiOWNmZGExNGQ3
ODAwMzM3MjVmZjEzLi5mYjZhNWIxMzFkZGE2NjJlZjUwZDI3YzIyYjU5NzQzNTU4YzhjYTc1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWlu
Y2x1ZGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1pbmNsdWRlci5odG1sCkBAIC0zMyw3ICszMyw3IEBAIHNob3VsZEJlKCJpbnRlcm5hbHMu
aW5jbHVkZXJGb3IoY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93KSIsICJudWxsIik7CiB2YXIgZWxl
bWVudFdpdGhTaGFkb3dDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiBj
b250YWluZXIuYXBwZW5kQ2hpbGQoZWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKIHZhciBzaGFk
b3dSb290T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93
Um9vdChlbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQpOwotdmFyIHNoYWRvd0NvbnRlbnRPZkVsZW1l
bnRXaXRoU2hhZG93Q29udGVudCA9IGludGVybmFscy5jcmVhdGVTaGFkb3dDb250ZW50RWxlbWVu
dChkb2N1bWVudCk7Cit2YXIgc2hhZG93Q29udGVudE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50
ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKIHNoYWRvd1Jvb3RP
ZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5hcHBlbmRDaGlsZChzaGFkb3dDb250ZW50T2ZFbGVt
ZW50V2l0aFNoYWRvd0NvbnRlbnQpOwogdmFyIGNoaWxkT2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRl
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiBlbGVtZW50V2l0aFNoYWRvd0Nv
bnRlbnQuYXBwZW5kQ2hpbGQoY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7CkBAIC01
OCw3ICs1OCw3IEBAIGVsZW1lbnRXaXRoU2hhZG93LnJlbW92ZUNoaWxkKG1vdmluZ0NoaWxkKTsK
IHZhciBhbm90aGVyRWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CiBjb250YWluZXIuYXBwZW5kQ2hpbGQoYW5vdGhlckVsZW1lbnRXaXRoU2hh
ZG93Q29udGVudCk7CiB2YXIgYW5vdGhlclNoYWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93Q29u
dGVudCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KGFub3RoZXJFbGVtZW50V2l0aFNoYWRv
d0NvbnRlbnQpOwotdmFyIGFub3RoZXJTaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0Nv
bnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpOwor
dmFyIGFub3RoZXJTaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBpbnRl
cm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpOwogYW5vdGhlclNoYWRvd1Jvb3RP
ZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5hcHBlbmRDaGlsZChhbm90aGVyU2hhZG93Q29udGVu
dE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKIAogYW5vdGhlckVsZW1lbnRXaXRoU2hhZG93
Q29udGVudC5hcHBlbmRDaGlsZChtb3ZpbmdDaGlsZCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXJlbmRlcmVycy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMuaHRtbAppbmRl
eCA5MTUxOWI4YmM5ZWQ5OGU1MzRiZjM3ZTE0NWRhMTMxNTRiNWJjOGI4Li45NzdiODljYzAxOTRk
MWU1ZDMyMmI3YmFiYzlmMTU1NjU0OTI5ODMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXJlbmRlcmVycy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJzLmh0bWwKQEAgLTYy
LDcgKzYyLDcgQEAgZnVuY3Rpb24gY3JlYXRlVHJlZUZyb20oaHRtbCkKICAgICB2YXIgY29udGVu
dFBsYWNlaG9sZGVyID0gcm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiQ09OVEVOVCIpWzBdOwog
ICAgIGlmIChjb250ZW50UGxhY2Vob2xkZXIpIHsKICAgICAgICAgdmFyIGNvbnRlbnRQYXJlbnQg
PSBjb250ZW50UGxhY2Vob2xkZXIucGFyZW50Tm9kZTsKLSAgICAgICAgY29udGVudFBhcmVudC5y
ZXBsYWNlQ2hpbGQod2luZG93LmludGVybmFscy5jcmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChk
b2N1bWVudCksIGNvbnRlbnRQbGFjZWhvbGRlcik7CisgICAgICAgIGNvbnRlbnRQYXJlbnQucmVw
bGFjZUNoaWxkKHdpbmRvdy5pbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQp
LCBjb250ZW50UGxhY2Vob2xkZXIpOwogICAgIH07CiAKICAgICByZXR1cm4gcm9vdDsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcmVhdGUtY29udGVudC1lbGVtZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3JlYXRlLWNvbnRlbnQtZWxlbWVu
dC5odG1sCmluZGV4IGJkYjYwMDE2ZjBkYTI0MDRmNWRhMWM4NzhjZjE4OWQ4OTEyYjc4Y2QuLjgz
MjEyMzFiYzM1MTliYzI0ZTU4ZmFhYjIwMzFiMWZmZDYwYTIzMTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcmVhdGUtY29udGVudC1lbGVtZW50Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NyZWF0ZS1jb250ZW50LWVsZW1lbnQuaHRtbApA
QCAtMjksNyArMjksNyBAQCBmdW5jdGlvbiBzZXR1cFRhcmdldFRyZWUoKQogICAgIHZhciBjaGls
ZDAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgY2hpbGQwLmlubmVySFRN
TCA9ICJIZWxsbywiOwogICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQwKTsKLSAgICByb290LmFw
cGVuZENoaWxkKHdpbmRvdy5pbnRlcm5hbHMuY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoZG9j
dW1lbnQpKTsKKyAgICByb290LmFwcGVuZENoaWxkKHdpbmRvdy5pbnRlcm5hbHMuY3JlYXRlQ29u
dGVudEVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICB2YXIgY2hpbGQxID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic3BhbiIpOwogICAgIGNoaWxkMS5pbm5lckhUTUwgPSAiV29ybGQuIjsKICAgICBy
b290LmFwcGVuZENoaWxkKGNoaWxkMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNlbGVjdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxlY3QuaHRtbAppbmRleCAzZDgxZDQ1NmNhZTQ1
OGZlNThkOWViOTIxNTM1MDk5Y2VjMTQ1NGEyLi4yZWZiOTM2NTJkMDc4YzY3ZDU4ZTM2OTJkMGFm
ZjhlOWRhMjljYmJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWNvbnRlbnRzLXNlbGVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWwKQEAgLTE1LDcgKzE1LDcgQEAgZnVuY3Rpb24g
YXBwZW5kU2hhZG93KHRhcmdldCwgc2VsZWN0KSB7CiAgICAgY2hpbGQwLmlubmVySFRNTCA9ICJI
ZWxsbywiOwogICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQwKTsKIAotICAgIHZhciBjb250ZW50
ID0gaW50ZXJuYWxzLmNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKKyAgICB2
YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCk7CiAg
ICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNlbGVjdCk7CiAgICAgcm9vdC5hcHBl
bmRDaGlsZChjb250ZW50KTsKIApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDc2Yzk1NWJlZGM5ZDUzYTk5ZmVlYzg4MjE2YTJkNTVlMWI5OTIzMzkuLjY4ZDdmY2RjNTIz
OWJhMzMwYWE3ZTRlMzZmMjdiYjRkNzY3MzVjMjYgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysg
Yi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wMS0xNiAgU2hpbnlhIEthd2FuYWth
ICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIE1vdmUgU2hhZG93Q29udGVudEVsZW1l
bnQgZnJvbSBkb20vIHRvIGh0bWwvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NjI0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKwogMjAxMi0w
MS0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gVXBkYXRlIE5FV1MgYW5kIGNvbmZpZ3VyZS5hYyBmb3IgMS43LjQgcmVsZWFzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122717</attachid>
            <date>2012-01-16 23:24:32 -0800</date>
            <delta_ts>2012-01-16 23:50:42 -0800</delta_ts>
            <desc>Build Test Again</desc>
            <filename>bug-76241-20120117162430.patch</filename>
            <type>text/plain</type>
            <size>105306</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU1MmYzYzQ5YzE1MWI5
M2Q3ODRiNzgwNGVhZTJiMjg5ZDgwZmRiZS4uMTYxNDdiNTc0ZGI4ZTM5ZTEyYzI0YzFjYjQ4MWZi
YjRiZmJjMjA0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEyLTAxLTE2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dD
b250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuZXh0UmVuZGVyZXJPZik6Cisg
ICAgICAgIChXZWJDb3JlOjpwcmV2aW91c1JlbmRlcmVyT2YpOgorICAgICAgICAoV2ViQ29yZTo6
Zmlyc3RSZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RSZW5kZXJlck9mKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIpOgor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OmluY2x1ZGVyKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9v
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbmNsdWRlckZvcik6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbmNsdXNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3Q6OmVuc3VyZUluY2x1c2lvbnMpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290
Lmg6CisgICAgICAgICogaHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0luY2x1c2lvbjo6dW5saW5rKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvbkxpc3Q6OlNoYWRvd0luY2x1c2lvbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uTGlzdDo6flNoYWRvd0luY2x1c2lvbkxpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6ZmluZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJ
bmNsdXNpb25MaXN0OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25M
aXN0OjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9y
OjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudElu
Y2x1c2lvblNlbGVjdG9yOjp+Q29udGVudEluY2x1c2lvblNlbGVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6dW5zZWxlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9yOjpmaW5kRm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6ZGlkU2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6d2lsbFNlbGVjdE92ZXIpOgorICAgICAgICAqIGh0
bWwvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0luY2x1c2lvbjo6aW5jbHVkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9u
Ojpjb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6bmV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb246OnByZXZpb3VzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6U2hhZG93SW5jbHVzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0luY2x1c2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvbkxpc3Q6OmZpcnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbkxp
c3Q6Omxhc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6aXNFbXB0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OmFkZCk6CisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFkb3dJbmNsdXNpb25TZXQ6OmlzRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
SW5jbHVzaW9uU2V0OjpUcmFuc2xhdG9yOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0luY2x1c2lvblNldDo6VHJhbnNsYXRvcjo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uU2V0OjpIYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvblNldDo6SGFzaDo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVz
aW9uU2V0OjpmaW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rv
cjo6aGFzQ2FuZGlkYXRlcyk6CisgICAgICAgICogaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9y
UXVlcnkuY3BwLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRl
bnRTZWxlY3RvclF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5
OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaC4K
KyAgICAgICAgKiBodG1sL0hUTUxDb250ZW50RWxlbWVudC5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnRlbnRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENv
bnRlbnRFbGVtZW50OjpIVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENvbnRlbnRFbGVtZW50Ojp+SFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250
ZW50RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVu
dDo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6c2V0U2Vs
ZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxDb250ZW50RWxlbWVudC5oOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmguCisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmluY2x1c2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnRlbnRFbGVtZW50Ojppc0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ29udGVudEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OnRvSFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzQ29udGVudEVsZW1lbnQ6OkRldGFpbHND
b250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6
OkRldGFpbHNTdW1tYXJ5RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VtbWFyeUNvbnRlbnRFbGVtZW50OjpTdW1tYXJ5
Q29udGVudEVsZW1lbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6Y3JlYXRlQ29udGVudEVsZW1lbnQpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CiAyMDEyLTAxLTE2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTjogcjEwMjU1MyBBdXRvY29ycmVjdGlvbiBidWJibGUgZG9lc24ndCBzaG93
IHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNzQzYjkzYTgxNWE2NWY2NTc3YmFiMjZlZWIzMThkZDMzODE5OWJi
MC4uMDg2MDgzMGNlYjBiMzM4ODk2ODY1ZTA3NmQxNDI1OWViMjk5NmUwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTE2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdv
b2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8g
dG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAy
MDEyLTAxLTE2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwNzAyNzU4PiBSRUdSRVNTSU9OOiBFdmVyeSBTYWZhcmkgUmVhZGVyIFdL
VmlldyBsZWFrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkNjE2NWNmMWMzY2EyNmNjMzFiMTNj
MTM5NDNhODBiYzE5OTk0YzNiLi5iM2JiNGZmMWY3OWE0ZDBmYmI4NGU2YTNjOWUzYjVlMDJjMTJi
NTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTkzLDkgKzU5Myw2IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBkb20vU2NyaXB0UnVubmVyLmNwcAogICAgIGRvbS9TZWN1cml0eUNvbnRl
eHQuY3BwCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwCi0gICAgZG9tL1NoYWRvd0NvbnRlbnRF
bGVtZW50LmNwcAotICAgIGRvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAKLSAgICBk
b20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgZG9tL1NoYWRvd1Jvb3QuY3BwCiAg
ICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCiAgICAgZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlz
dC5jcHAKQEAgLTcwNiw2ICs3MDMsOCBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9D
aGVja2JveElucHV0VHlwZS5jcHAKICAgICBodG1sL0NsYXNzTGlzdC5jcHAKICAgICBodG1sL0Nv
bG9ySW5wdXRUeXBlLmNwcAorICAgIGh0bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCisgICAg
aHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgaHRtbC9ET01Gb3JtRGF0YS5j
cHAKICAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcAogICAgIGh0bWwvRE9NVG9rZW5M
aXN0LmNwcApAQCAtNzI5LDYgKzcyOCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1s
L0hUTUxCdXR0b25FbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCiAg
ICAgaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKKyAgICBodG1sL0hUTUxDb250ZW50RWxlbWVudC5j
cHAKICAgICBodG1sL0hUTUxETGlzdEVsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MRGF0YUxpc3RF
bGVtZW50LmNwcAogICAgIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggY2U2N2Y1MWRjNDkwNjBiOTJjYzQ0NGY3MjY4MTZjYzQzMDE2
YTMxZC4uYWNjMmZmNDhlZmY0NDQ0ZWJlYzE1YmVlYTYwMmE4Mjg0NDc5ODMwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNjQzLDEyICsxNjQzLDYgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Nl
bGVjdG9yUXVlcnkuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50
LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmggXAotCVNv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgXAotCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIFwKLQlTb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXApAQCAtMTk1NCw2ICsxOTQ4LDEwIEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlw
ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0Nv
bnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVu
dEluY2x1c2lvblNlbGVjdG9yLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudFNlbGVj
dG9yUXVlcnkuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lSW5wdXRUeXBlLmNwcCBcCkBAIC0xOTk4LDYgKzE5OTYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENvbGxlY3Rpb24uaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29udGVudEVsZW1l
bnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb250ZW50RWxlbWVudC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGFhNjAyN2ZiYmJjYWMyOWU3
OTNmMjAxZWRjMjQ3OTQwZWY3NjRhZmIuLjJlNjE5Y2Q5ZmUwMzc5ODMxMTNlYzZjYTA3ODE2NThm
NTQwZDc2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTU5LDkgKzU1OSw2IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vU2VjdXJpdHlDb250ZXh0LmNwcCBc
CiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwIFwKLSAgICBkb20vU2hhZG93Q29udGVudEVsZW1l
bnQuY3BwIFwKLSAgICBkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKLSAgICBk
b20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKICAgICBkb20vU2hhZG93Um9vdC5jcHAg
XAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0
LmNwcCBcCkBAIC02OTEsNiArNjg4LDggQEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9DaGVja2Jv
eElucHV0VHlwZS5jcHAgXAogICAgIGh0bWwvQ2xhc3NMaXN0LmNwcCBcCiAgICAgaHRtbC9Db2xv
cklucHV0VHlwZS5jcHAgXAorICAgIGh0bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKKyAg
ICBodG1sL0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgXAogICAgIGh0bWwvRE9NRm9ybURh
dGEuY3BwIFwKICAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCiAgICAgaHRtbC9E
T01Ub2tlbkxpc3QuY3BwIFwKQEAgLTcxNCw2ICs3MTMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBo
dG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAgXAogICAgIGh0bWwvSFRNTENvbGxlY3Rpb24uY3BwIFwKKyAgICBodG1sL0hUTUxDb250ZW50
RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTERMaXN0RWxlbWVudC5jcHAgXAogICAgIGh0bWwv
SFRNTERhdGFMaXN0RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQu
Y3BwIFwKQEAgLTE2NjAsOSArMTY2MCw2IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9TY3JpcHRF
bGVtZW50LmggXAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggXAogICAgIGRvbS9T
ZWxlY3RvclF1ZXJ5LmggXAotICAgIGRvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oIFwKLSAgICBk
b20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCBcCi0gICAgZG9tL1NoYWRvd0luY2x1c2lv
blNlbGVjdG9yLmggXAogICAgIGRvbS9TaGFkb3dSb290LmggXAogICAgIGRvbS9TcGFjZVNwbGl0
U3RyaW5nLmggXAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5oIFwKQEAgLTE3NzIsNiArMTc2OSw4
IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oIFwKICAgICBodG1sL2NhbnZhcy9E
YXRhVmlldy5oIFwKKyAgICBodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggXAorICAgIGh0bWwv
Q29udGVudEluY2x1c2lvblNlbGVjdG9yLmggXAogICAgIGh0bWwvQ2xhc3NMaXN0LmggXAogICAg
IGh0bWwvRE9NRm9ybURhdGEuaCBcCiAgICAgaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oIFwK
QEAgLTE3OTIsNiArMTc5MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvSFRNTEJ1dHRvbkVs
ZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxD
b2xsZWN0aW9uLmggXAorICAgIGh0bWwvSFRNTENvbnRlbnRFbGVtZW50LmggXAogICAgIGh0bWwv
SFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBc
CiAgICAgaHRtbC9IVE1MRGl2RWxlbWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggM2E1
YjI5YmFkMWY0ZWZlYTNiZGI5YTQzMTk2NGQ4MjMxNjgxOWUxZS4uNDJlOGM3NTA1NTk5ZmEzM2Q5
ODdhYjMxMzAwZmRlMGI0ZGMwMWQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTU0Niw2ICs1
NDYsNyBAQCBfX1pON1dlYkNvcmUxN1JlZ3VsYXJFeHByZXNzaW9uQzFFUktOM1dURjZTdHJpbmdF
TlMxXzE5VGV4dENhc2VTZW5zaXRpdml0eUUKIF9fWk43V2ViQ29yZTE3UmVndWxhckV4cHJlc3Np
b25EMUV2CiBfX1pON1dlYkNvcmUxN2NhY2hlRE9NU3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFs
T2JqZWN0RVBOM0pTQzlTdHJ1Y3R1cmVFUEtOUzJfOUNsYXNzSW5mb0UKIF9fWk43V2ViQ29yZTE3
b3BlblRlbXBvcmFyeUZpbGVFUktOM1dURjZTdHJpbmdFUmkKK19fWk43V2ViQ29yZTE4SFRNTENv
bnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlMThQbGF0Zm9y
bVN0cmF0ZWdpZXMyNmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5RXYKIF9fWk43V2ViQ29yZTE4
U2VhcmNoUG9wdXBNZW51TWFjQzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19aTjdXZWJDb3Jl
MThpc1N0YXJ0T2ZQYXJhZ3JhcGhFUktOU18xNVZpc2libGVQb3NpdGlvbkVOU18yN0VkaXRpbmdC
b3VuZGFyeUNyb3NzaW5nUnVsZUUKQEAgLTYwMyw3ICs2MDQsNiBAQCBfX1pON1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMjBzZXRTdWdnZXN0ZWRGaWxlbmFtZUVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyNHNldEV4cGVjdGVkQ29udGVudExl
bmd0aEV4CiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNnNldFVSTEVSS05TXzRL
VVJMRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZUMyRXYKLV9fWk43V2ViQ29y
ZTIwU2hhZG93Q29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFCiBfX1pON1dlYkNv
cmUyMFVzZXJHZXN0dXJlSW5kaWNhdG9yN3Nfc3RhdGVFCiBfX1pON1dlYkNvcmUyMFVzZXJHZXN0
dXJlSW5kaWNhdG9yQzFFTlNfMjZQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZUUKIF9fWk43V2Vi
Q29yZTIwVXNlckdlc3R1cmVJbmRpY2F0b3JEMUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDhhNTIz
ZmE1N2E0NDcxNDNhNmM5ZWVhMjUxNTQ4YTI0YWU1MThiMi4uNWZkN2Y3M2UyYjg3ODQxZDE5OWQ3
Njk0MmY2MzA0OTY2MGU4NjM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTA0Niw4ICsxMDQ2LDYg
QEAKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKICAgICAgICAg
ICAgICdkb20vU2NyaXB0UnVubmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290Lmgn
LAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oJywKLSAgICAgICAgICAg
ICdkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCcsCiAgICAgICAgICAgICAnZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuaCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlZEVsZW1lbnQuaCcsCiAg
ICAgICAgICAgICAnZG9tL1RleHQuaCcsCkBAIC0xMDYwLDYgKzEwNTgsNyBAQAogICAgICAgICBd
LAogICAgICAgICAnd2ViY29yZV9odG1sX3ByaXZhdGVoZWFkZXJfZmlsZXMnOiBbCiAgICAgICAg
ICAgICAnaHRtbC9Db2xsZWN0aW9uVHlwZS5oJywKKyAgICAgICAgICAgICdodG1sL0NvbnRlbnRT
ZWxlY3RvclF1ZXJ5LmgnLAogICAgICAgICAgICAgJ2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50
LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaCcsCiAgICAgICAgICAg
ICAnaHRtbC9IVE1MQ29sbGVjdGlvbi5oJywKQEAgLTU0NjMsMTIgKzU0NjIsNiBAQAogICAgICAg
ICAgICAgJ2RvbS9TZWN1cml0eUNvbnRleHQuaCcsCiAgICAgICAgICAgICAnZG9tL1NlbGVjdG9y
UXVlcnkuY3BwJywKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JRdWVyeS5oJywKLSAgICAgICAg
ICAgICdkb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwJywKLSAgICAgICAgICAgICdkb20vU2hh
ZG93Q29udGVudEVsZW1lbnQuaCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1
ZXJ5LmgnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAnLAot
ICAgICAgICAgICAgJ2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oJywKICAgICAgICAgICAg
ICdkb20vU2hhZG93Um9vdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAog
ICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCcsCkBAIC01NTQxLDYgKzU1MzQs
MTAgQEAKICAgICAgICAgICAgICdodG1sL0NsYXNzTGlzdC5oJywKICAgICAgICAgICAgICdodG1s
L0NvbG9ySW5wdXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9Db2xvcklucHV0VHlwZS5o
JywKKyAgICAgICAgICAgICdodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCcsCisgICAgICAg
ICAgICAnaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5oJywKKyAgICAgICAgICAgICdodG1sL0Nv
bnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvQ29udGVudElu
Y2x1c2lvblNlbGVjdG9yLmgnLAogICAgICAgICAgICAgJ2h0bWwvRE9NRm9ybURhdGEuY3BwJywK
ICAgICAgICAgICAgICdodG1sL0RPTUZvcm1EYXRhLmgnLAogICAgICAgICAgICAgJ2h0bWwvRE9N
U2V0dGFibGVUb2tlbkxpc3QuY3BwJywKQEAgLTU1ODYsNiArNTU4Myw4IEBACiAgICAgICAgICAg
ICAnaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAnLAor
ICAgICAgICAgICAgJ2h0bWwvSFRNTENvbnRlbnRFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAn
aHRtbC9IVE1MQ29udGVudEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRExpc3RF
bGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRExpc3RFbGVtZW50LmgnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlNzdjMWZmMTJiNDQzNGZkYjlj
OGUzOGY2YjA4MWZmZmE4ODgyMzFkLi5jNTJhZDg3ZmYyMmE2OGYxNTNhNmUyZjc5MWIyMDVjYzY0
YTVlOGNmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtNTA5OTgsMjMwICs1MDk5OCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVudC5jcHAiCi0JCQkJ
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRv
b2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxs
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9u
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxTaGFkb3dDb250ZW50RWxlbWVudC5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
Ci0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJ
CS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0J
CQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+
Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJ
TmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgot
CQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVudC5o
IgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21c
U2hhZG93Q29udGVudEVsZW1lbnQuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCIKLQkJ
CQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rp
b258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5j
cHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
LQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4K
LQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQ
cm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGRvbVxTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIgotCQkJCT4KLQkJCTwvRmlsZT4K
LQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3BhY2VTcGxpdFN0cmluZy5jcHAi
CiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNTU5NTgsNiArNTU3MzQsMjIgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxD
b250ZW50U2VsZWN0b3JRdWVyeS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQ29udGVudFNlbGVjdG9yUXVlcnkuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxDb250ZW50SW5j
bHVzaW9uU2VsZWN0b3IuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxodG1sXENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXGNhbnZhc1xEYXRh
Vmlldy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtNTY5MDIsNiArNTY2OTQsNjIgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1M
Q29udGVudEVsZW1lbnQuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxDb250ZW50RWxlbWVudC5oIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxEYXRh
TGlzdEVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2OWQ2
MTZhYjEwMTFiMzM2YTQ4ZWYxODEzMmRiMzYxZmU3ZWI2NGQ1Li4zZThjOTUwMDNmNmRmOTZhNThi
MjUxYTRiNzRjMWY2ZDM2Y2NhMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTY4LDggKzE1NjgsMTIgQEAKIAkJNTNDODI5
OEUxM0Q4RDkyNzAwREUyREVCIC8qIFJlbmRlckZsZXhpYmxlQm94LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0M4Mjk4QzEzRDhEOTI3MDBERTJERUIg
LyogUmVuZGVyRmxleGlibGVCb3guaCAqLzsgfTsKIAkJNTUwQTBCQzkwODVGNjAzOTAwNzM1M0Q2
IC8qIFF1YWxpZmllZE5hbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTUwQTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3Bw
ICovOyB9OwogCQk1NTBBMEJDQTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzgwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1NzBEQkE4MTE0QjU4MDQ5MDBEQUVGQTAgLyogU2hh
ZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTcwREI3QTgxNEI1Njk2QTAwREFFRkEwIC8qIFNoYWRvd0NvbnRl
bnRTZWxlY3RvclF1ZXJ5LmNwcCAqLzsgfTsKLQkJNTcwREJBODIxNEI1ODA0QjAwREFFRkEwIC8q
IFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQjdBOTE0QjU2OTZBMDBEQUVGQTAgLyogU2hhZG93Q29u
dGVudFNlbGVjdG9yUXVlcnkuaCAqLzsgfTsKKwkJNTcwREJCRkYxNEM1NEI3ODAwREFFRkEwIC8q
IENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQkJGQjE0QzU0Qjc4MDBEQUVGQTAgLyogQ29udGVudElu
Y2x1c2lvblNlbGVjdG9yLmNwcCAqLzsgfTsKKwkJNTcwREJDMDAxNEM1NEI3ODAwREFFRkEwIC8q
IENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTcwREJCRkMxNEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRJbmNs
dXNpb25TZWxlY3Rvci5oICovOyB9OworCQk1NzBEQkMwMTE0QzU0Qjc4MDBEQUVGQTAgLyogQ29u
dGVudFNlbGVjdG9yUXVlcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTcwREJCRkQxNEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1
ZXJ5LmNwcCAqLzsgfTsKKwkJNTcwREJDMDIxNEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzBEQkJGRTE0QzU0Qjc4MDBEQUVGQTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnkuaCAqLzsg
fTsKKwkJNTcwREJDMDUxNEM1NEI5MzAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQkMwMzE0
QzU0QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmNwcCAqLzsgfTsKKwkJNTcwREJD
MDYxNEM1NEI5MzAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREJDMDQxNEM1NEI5MzAwREFFRkEw
IC8qIEhUTUxDb250ZW50RWxlbWVudC5oICovOyB9OwogCQk1OTA1QURCRjEzMDJGM0NFMDBGMTE2
REYgLyogWE1MVHJlZVZpZXdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1OTA1QURCRDEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5j
cHAgKi87IH07CiAJCTU5MDVBREMwMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTA1QURCRTEz
MDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovOyB9OwogCQk1OTBFMUI0OTExRTRF
RjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZp
Y2VPcmllbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0zNTA0LDEzICszNTA4LDEwIEBACiAJCUE3MTVFNjUzMTM0QkJCRUMwMEQ4RTcx
MyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUxMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1No
YWRvd0VsZW1lbnQuaCAqLzsgfTsKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdB
Y3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFDMDBBMTZF
Q0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xs
ZXJNYWMubW0gKi87IH07Ci0JCUE3MUMzMEI4MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNs
dXNpb25TZWxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzFDMzBCNjEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0
b3IuY3BwICovOyB9OwotCQlBNzFDMzBCOTEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3MUMzMEI3MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5o
ICovOyB9OwogCQlBNzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNy
b3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjNG
NzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3M0Y5NUZFMTJDOTdCRkUw
MDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3Qu
Y3BwICovOyB9OwogCQlBNzNGOTVGRjEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJD
OTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NEJCNzZCMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNl
cHRpb25Db2RlUGxhY2Vob2xkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3NEJCNzZBMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNlcHRpb25Db2RlUGxh
Y2Vob2xkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlBNzRDMkQzQzEzODExRTBEMDBGODM1NzIgLyogU2hhZG93Q29udGVudEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NEMyRDNCMTM4
MTFFMEQwMEY4MzU3MiAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5
NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVk
U2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0
OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICovOyB9Owog
CQlBNzVFOEI4ODBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4MDBFMURFMkQ2MDA3RjI0ODEg
LyogRkVCbGVuZC5jcHAgKi87IH07CkBAIC0zNTIxLDcgKzM1MjIsNiBAQAogCQlBNzVFOEI4RDBF
MURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODUwRTFERTJENjAwN0YyNDgxIC8q
IEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLzsgfTsKIAkJQTc1RThCOEUwRTFERTJENjAwN0YyNDgx
IC8qIEZFQ29tcG9zaXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3NUU4Qjg2MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5jcHAgKi87
IH07CiAJCUE3NUU4QjhGMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODcwRTFERTJENjAw
N0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggKi87IH07Ci0JCUE3NjZDRjhDMTM4MTBFMEMwMDExQTBC
MyAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzY2Q0Y4QjEzODEwRTBDMDAxMUEwQjMgLyogU2hhZG93Q29u
dGVudEVsZW1lbnQuY3BwICovOyB9OwogCQlBNzZFNUY3RjEzNUUwRENGMDBBNjk4MzcgLyogUmVu
ZGVyZWREb2N1bWVudE1hcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRN
YXJrZXIuaCAqLzsgfTsKIAkJQTc3OTc5MTkwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5Nzkx
MzBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCAqLzsgfTsKIAkJQTc3OTc5MUEwRDZC
OUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MTQwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5o
ICovOyB9OwpAQCAtODM5MSw4ICs4MzkxLDEyIEBACiAJCTUzQzgyOThDMTNEOEQ5MjcwMERFMkRF
QiAvKiBSZW5kZXJGbGV4aWJsZUJveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJGbGV4aWJsZUJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTBB
MEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBRdWFsaWZpZWROYW1lLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmllZE5hbWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
Ci0JCTU3MERCN0E4MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVy
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFkb3dDb250ZW50
U2VsZWN0b3JRdWVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MERCN0E5
MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzBEQkJGQjE0QzU0Qjc4MDBEQUVGQTAgLyog
Q29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU3MERCQkZDMTRDNTRCNzgwMERBRUZBMCAvKiBDb250ZW50SW5jbHVzaW9u
U2VsZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEluY2x1
c2lvblNlbGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MERCQkZEMTRD
NTRCNzgwMERBRUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MERCQkZFMTRDNTRCNzgwMERBRUZBMCAvKiBDb250ZW50
U2VsZWN0b3JRdWVyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50
U2VsZWN0b3JRdWVyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzBEQkMwMzE0
QzU0QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxDb250ZW50RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU3MERCQzA0MTRDNTRCOTMwMERBRUZBMCAvKiBIVE1MQ29udGVu
dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTENvbnRlbnRF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MDVBREJEMTMwMkYzQ0Uw
MEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFhNTFRyZWVWaWV3ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxUcmVlVmlld2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmllbnRhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAzMjMsMTMgKzEwMzI3LDEwIEBACiAJ
CUE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnQWN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEcmFnQ29udHJvbGxlck1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxQTcwQzkxMUFGQjAyMDAwOTg5
RDZEIC8qIEhUTUxNZXRlckVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxN
ZXRlckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzFDMzBCNjEz
ODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzFDMzBCNzEzODEyNjVFMDBEQkMzNTEgLyog
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXhwb3J0TWFjcm9zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBS
b3VuZGVkUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSb3Vu
ZGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZEMTJDOTdC
RkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSb3VuZGVkUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzRCQjc2
QTEzQkRBODYzMDBGRjdCRjAgLyogRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzRDMkQzQjEzODExRTBEMDBGODM1NzIgLyogU2hh
ZG93Q29udGVudEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hh
ZG93Q29udGVudEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5
NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzVFOEI4MDBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBGRUJsZW5kLmNwcDsgcGF0aCA9IGZpbHRlcnMvRkVCbGVuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM0MCw3ICsxMDM0MSw2IEBACiAJ
CUE3NUU4Qjg1MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZFQ29tcG9uZW50VHJhbnNmZXIuaDsgcGF0aCA9
IGZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzVFOEI4NjBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRkVDb21wb3NpdGUuY3BwOyBwYXRoID0gZmls
dGVycy9GRUNvbXBvc2l0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU4
Qjg3MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBGRUNvbXBvc2l0ZS5oOyBwYXRoID0gZmlsdGVycy9GRUNvbXBvc2l0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzY2Q0Y4QjEzODEwRTBDMDAxMUEwQjMg
LyogU2hhZG93Q29udGVudEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2hhZG93Q29udGVudEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNzZFNUY3RTEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJlZERvY3VtZW50TWFy
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTEzMEQ2QjlEMEMwMDM4
NTFCOSAvKiBJbWFnZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW1hZ2VEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3OTc5MTQw
RDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbWFnZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NDgy
LDYgKzE2NDgyLDEyIEBACiAJCTkzRUVDMUVDMDlDMjg3NzcwMEM1MTVEMSAvKiBodG1sICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1NzBEQkMwMzE0QzU0
QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmNwcCAqLywKKwkJCQk1NzBEQkMwNDE0
QzU0QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmggKi8sCisJCQkJNTcwREJCRkIx
NEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgKi8sCisJCQkJ
NTcwREJCRkMxNEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oICov
LAorCQkJCTU3MERCQkZEMTRDNTRCNzgwMERBRUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5j
cHAgKi8sCisJCQkJNTcwREJCRkUxNEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1
ZXJ5LmggKi8sCiAJCQkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3REQzIC8qIGNhbnZhcyAqLywKIAkJ
CQk5N0MxRjU1MTEyMjg1NTg4MDBFREU2MTYgLyogcGFyc2VyICovLAogCQkJCTQxNTBGOUVEMTJC
NkUwOTkwMDA4Qzg2MCAvKiBzaGFkb3cgKi8sCkBAIC0yMDUzNiwxMiArMjA1NDIsNiBAQAogCQkJ
CTk3NkYzNkU5MTQ2ODYyMjUwMDVFOTNCNCAvKiBTZWN1cml0eUNvbnRleHQuaCAqLywKIAkJCQlF
NDUzMjJBOTE0MENFMjY3MDA1QTBGOTIgLyogU2VsZWN0b3JRdWVyeS5jcHAgKi8sCiAJCQkJRTQ1
MzIyQUExNDBDRTI2NzAwNUEwRjkyIC8qIFNlbGVjdG9yUXVlcnkuaCAqLywKLQkJCQlBNzY2Q0Y4
QjEzODEwRTBDMDAxMUEwQjMgLyogU2hhZG93Q29udGVudEVsZW1lbnQuY3BwICovLAotCQkJCUE3
NEMyRDNCMTM4MTFFMEQwMEY4MzU3MiAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5oICovLAotCQkJ
CTU3MERCN0E4MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5j
cHAgKi8sCi0JCQkJNTcwREI3QTkxNEI1Njk2QTAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmggKi8sCi0JCQkJQTcxQzMwQjYxMzgxMjY1RTAwREJDMzUxIC8qIFNoYWRvd0lu
Y2x1c2lvblNlbGVjdG9yLmNwcCAqLywKLQkJCQlBNzFDMzBCNzEzODEyNjVFMDBEQkMzNTEgLyog
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCAqLywKIAkJCQlBNkQxNjk2MTEzNDZCNDlCMDAwRUI3
NzAgLyogU2hhZG93Um9vdC5jcHAgKi8sCiAJCQkJQTZEMTY5NjMxMzQ2QjRDMTAwMEVCNzcwIC8q
IFNoYWRvd1Jvb3QuaCAqLywKIAkJCQlEMDFBMjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VT
cGxpdFN0cmluZy5jcHAgKi8sCkBAIC0yMzM5NSwxMCArMjMzOTUsNyBAQAogCQkJCTkzRjE5OTRG
MDgyNDVFNTkwMDFFOUFCQyAvKiBTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk4Nzcw
RTkxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzREQ0
NTAxMkY1RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE3
NEMyRDNDMTM4MTFFMEQwMEY4MzU3MiAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNTcwREJBODIxNEI1ODA0QjAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjhDNDBFODIwMzFCMDBCMjU5NjUg
LyogU2hhZG93RGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTcxQzMwQjkxMzgxMjY1RTAwREJD
MzUxIC8qIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNkQx
Njk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTgwRTZDRTgwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMkFGRkM5NDBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjQwMTYsNiArMjQwMTMsOSBAQAogCQkJCTUwM0QwQ0FFMTRCNUIwQkEwMEYzMkY1
NyAvKiBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTUwQUNF
MkNCMTRCNUQ3OTMwMDQ0NjY2NiAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdBQ0Q4OEQ0MTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJbmRleGVkREJB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcwREJDMDAxNEM1NEI3ODAwREFFRkEwIC8qIENv
bnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcwREJDMDIxNEM1
NEI3ODAwREFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1NzBEQkMwNjE0QzU0QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKQEAgLTI2NDM0LDEwICsyNjQzNCw3IEBACiAJCQkJMTRDOUE1RUEwQjNEMTA1RjAw
NUEwMjMyIC8qIFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5ODc3MEU4MTI0MkM1
MzUwMDIyMjZCQSAvKiBTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzREQ0NEYxMkY1
RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTc2NkNG
OEMxMzgxMEUwQzAwMTFBMEIzIC8qIFNoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTU3MERCQTgxMTRCNTgwNDkwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0
b3JRdWVyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzVFQjhDMzBFODIwMzFCMDBCMjU5NjUg
LyogU2hhZG93RGF0YS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBNzFDMzBCODEzODEyNjVFMDBE
QkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTZEMTY5NjIxMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTgwRTZDRjQwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyQUZGQzkzMEQwMEE1REYwMDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5jIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNjkzMSw2ICsyNjkyOCw5IEBACiAJCQkJQThGNDU3QTAxNEJDMUE4
ODAwMENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUwM0QwQ0FBMTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdBQ0Q4OEQzMTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJbmRl
eGVkREJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzBEQkJGRjE0QzU0Qjc4MDBEQUVG
QTAgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3
MERCQzAxMTRDNTRCNzgwMERBRUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk1NzBEQkMwNTE0QzU0QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXgg
NTViNjA1MjhhYWEyOTNjZDY2NWM0YzkyMjdiYTg4NDc4ODVmNmEzZS4uZjJjYjQ2N2RjYzEzM2Ni
YjNkODA0MGZlMTA2YzJiZThkZTEyOGI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
CkBAIC0xMTIsOSArMTEyLDYgQEAKICNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIu
Y3BwIgogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JR
dWVyeS5jcHAiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuY3BwIgotI2luY2x1ZGUg
IlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCIKLSNpbmNsdWRlICJTaGFkb3dJbmNsdXNp
b25TZWxlY3Rvci5jcHAiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5jcHAiCiAjaW5jbHVkZSAiU3Bh
Y2VTcGxpdFN0cmluZy5jcHAiCiAjaW5jbHVkZSAiU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGVmODVm
N2QyM2Y3ODIzZjljZjFmMTBkNWM4ODIxYmE4YWE3MWJjMDkuLjIyNmMwZjRiZThlNTU4ZmY5MDBi
OTQxZDA4YjIwNWExYzIyY2E5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmNwcApAQCAtMjcsMTMgKzI3LDEzIEBACiAjaW5jbHVkZSAiTm9kZVJlbmRlcmlu
Z0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKKyNpbmNsdWRlICJDb250
ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxvd1RocmVhZC5oIgogI2luY2x1
ZGUgIlJlbmRlckZ1bGxTY3JlZW4uaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuaCIKLSNp
bmNsdWRlICJTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKIAogI2lmIEVOQUJMRShTVkcpCkBAIC0xMTEsNyArMTExLDcgQEAgUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4gTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnJlbGVhc2VTdHlsZSgpCiAgICAgcmV0dXJu
IG1fc3R5bGUucmVsZWFzZSgpOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVy
ZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGlj
IFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQs
IE5vZGUqIGN1cnJlbnQpCiB7CiAgICAgU2hhZG93SW5jbHVzaW9uKiBjdXJyZW50SW5jbHVzaW9u
ID0gcGFyZW50LT5pbmNsdXNpb25zKCktPmZpbmQoY3VycmVudCk7CiAgICAgaWYgKCFjdXJyZW50
SW5jbHVzaW9uKQpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRS
ZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCiAg
ICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXJP
ZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGljIFJl
bmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9mKEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50
LCBOb2RlKiBjdXJyZW50KQogewogICAgIFJlbmRlck9iamVjdCogbGFzdFJlbmRlcmVyID0gMDsK
IApAQCAtMTM5LDcgKzEzOSw3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVy
ZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyCiAgICAgcmV0dXJu
IGxhc3RSZW5kZXJlcjsKIH0KIAotc3RhdGljIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9m
KFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBmaXJz
dFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQpCiB7CiAgICAgZm9yIChTaGFk
b3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IHBhcmVudC0+aW5jbHVzaW9ucygpLT5maXJzdCgpOyBp
bmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKSB7CiAgICAgICAgIGlmIChS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gaW5jbHVzaW9uLT5jb250ZW50KCktPnJlbmRlcmVyKCkp
CkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9m
KFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRp
YyBSZW5kZXJPYmplY3QqIGxhc3RSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJl
bnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXJPZihIVE1MQ29udGVudEVsZW1l
bnQqIHBhcmVudCkKIHsKICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gcGFy
ZW50LT5pbmNsdXNpb25zKCktPmxhc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNsdXNp
b24tPnByZXZpb3VzKCkpIHsKICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBp
bmNsdXNpb24tPmNvbnRlbnQoKS0+cmVuZGVyZXIoKSkKQEAgLTE4Nyw3ICsxODcsNyBAQCBSZW5k
ZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIoKSBjb25zdAogICAg
ICAgICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYg
KG5vZGUtPmlzQ29udGVudEVsZW1lbnQoKSkgewotICAgICAgICAgICAgaWYgKFJlbmRlck9iamVj
dCogZmlyc3QgPSBmaXJzdFJlbmRlcmVyT2YodG9TaGFkb3dDb250ZW50RWxlbWVudChub2RlKSkp
CisgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBmaXJzdCA9IGZpcnN0UmVuZGVyZXJPZih0
b0hUTUxDb250ZW50RWxlbWVudChub2RlKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0
OwogICAgICAgICB9CiAgICAgfQpAQCAtMjIwLDcgKzIyMCw3IEBAIFJlbmRlck9iamVjdCogTm9k
ZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIoKSBjb25zdAogICAgICAgICAgICAg
cmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUtPmlz
Q29udGVudEVsZW1lbnQoKSkgewotICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogbGFzdCA9
IGxhc3RSZW5kZXJlck9mKHRvU2hhZG93Q29udGVudEVsZW1lbnQobm9kZSkpKQorICAgICAgICAg
ICAgaWYgKFJlbmRlck9iamVjdCogbGFzdCA9IGxhc3RSZW5kZXJlck9mKHRvSFRNTENvbnRlbnRF
bGVtZW50KG5vZGUpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gbGFzdDsKICAgICAgICAgfQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggYjRl
ODkxMjk3YTYyY2I0N2RiN2M5NTg0M2EwZWEwN2RjYTRmNmJiMC4uZDMxNDExNzZmMjA1NDM0MjI3
MGY2YTRlMTMxY2Y5ZDRiYmVkZTk4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFJlbmRlckZs
b3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJTdHlsZTsKLWNsYXNz
IFNoYWRvd0NvbnRlbnRFbGVtZW50OworY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OwogY2xhc3Mg
U2hhZG93Um9vdDsKIAogY2xhc3MgTm9kZVJlbmRlcmluZ0NvbnRleHQgewpAQCAtNTIsNyArNTIs
NyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlcigpIGNvbnN0Owog
ICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0
KiBwcmV2aW91c1JlbmRlcmVyKCkgY29uc3Q7Ci0gICAgU2hhZG93Q29udGVudEVsZW1lbnQqIGlu
Y2x1ZGVyKCkgY29uc3Q7CisgICAgSFRNTENvbnRlbnRFbGVtZW50KiBpbmNsdWRlcigpIGNvbnN0
OwogCiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTdHlsZShQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CkBAIC04Niw3ICs4Niw3IEBAIHByaXZhdGU6CiAgICAg
Tm9kZSogbV9ub2RlOwogICAgIENvbnRhaW5lck5vZGUqIG1fcGFyZW50Tm9kZUZvclJlbmRlcmlu
Z0FuZFN0eWxlOwogICAgIFNoYWRvd1Jvb3QqIG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdDsKLSAg
ICBTaGFkb3dDb250ZW50RWxlbWVudCogbV9pbmNsdWRlcjsKKyAgICBIVE1MQ29udGVudEVsZW1l
bnQqIG1faW5jbHVkZXI7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX3N0eWxlOwogICAgIFJl
bmRlckZsb3dUaHJlYWQqIG1fcGFyZW50Rmxvd1JlbmRlcmVyOwogICAgIEF0b21pY1N0cmluZyBt
X2Zsb3dUaHJlYWQ7CkBAIC0xMDgsNyArMTA4LDcgQEAgaW5saW5lIFJlbmRlclN0eWxlKiBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6c3R5bGUoKSBjb25zdAogICAgIHJldHVybiBtX3N0eWxlLmdldCgp
OwogfQogCi1pbmxpbmUgU2hhZG93Q29udGVudEVsZW1lbnQqIE5vZGVSZW5kZXJpbmdDb250ZXh0
OjppbmNsdWRlcigpIGNvbnN0CitpbmxpbmUgSFRNTENvbnRlbnRFbGVtZW50KiBOb2RlUmVuZGVy
aW5nQ29udGV4dDo6aW5jbHVkZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX2luY2x1ZGVyOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzYmNmMDFlMzBmMDk4YjYxMmVhOTc0NmQyMDMzYmM3NTc1
NzllMjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29u
dGVudEVsZW1lbnQuaCIKLQotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIlF1YWxp
ZmllZE5hbWUuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIgotI2lu
Y2x1ZGUgIlNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgiCi0jaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci11c2luZyBIVE1MTmFtZXM6OnNlbGVjdEF0dHI7Ci0KLVBhc3NSZWZQdHI8U2hhZG93Q29udGVu
dEVsZW1lbnQ+IFNoYWRvd0NvbnRlbnRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
KQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgdGFnTmFtZSwgKG51
bGxBdG9tLCAid2Via2l0U2hhZG93Q29udGVudCIsIEhUTUxOYW1lczo6ZGl2VGFnLm5hbWVzcGFj
ZVVSSSgpKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFkb3dDb250ZW50RWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwotfQotCi1TaGFkb3dDb250ZW50RWxlbWVudDo6U2hhZG93Q29u
dGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQotICAgIDogU3R5bGVkRWxlbWVudChuYW1lLCBkb2N1bWVudCwgQ3JlYXRlSFRNTEVsZW1lbnQp
Ci0gICAgLCBtX2luY2x1c2lvbnMoYWRvcHRQdHIobmV3IFNoYWRvd0luY2x1c2lvbkxpc3QoKSkp
Ci17Ci19Ci0KLVNoYWRvd0NvbnRlbnRFbGVtZW50Ojp+U2hhZG93Q29udGVudEVsZW1lbnQoKQot
ewotfQotCi12b2lkIFNoYWRvd0NvbnRlbnRFbGVtZW50OjphdHRhY2goKQotewotICAgIEFTU0VS
VCghZmlyc3RDaGlsZCgpKTsgLy8gQ3VycmVudGx5IGRvZXNuJ3Qgc3VwcG9ydCBhbnkgbGlnaHQg
Y2hpbGQuCi0gICAgU3R5bGVkRWxlbWVudDo6YXR0YWNoKCk7Ci0KLSAgICBpZiAoU2hhZG93Um9v
dCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkpIHsKLSAgICAgICAg
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+ZW5zdXJlSW5jbHVzaW9u
cygpOwotICAgICAgICBzZWxlY3Rvci0+dW5zZWxlY3QobV9pbmNsdXNpb25zLmdldCgpKTsKLSAg
ICAgICAgc2VsZWN0b3ItPnNlbGVjdCh0aGlzLCBtX2luY2x1c2lvbnMuZ2V0KCkpOwotICAgICAg
ICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgp
OyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQotICAgICAgICAgICAg
aW5jbHVzaW9uLT5jb250ZW50KCktPmRldGFjaCgpOwotICAgICAgICBmb3IgKFNoYWRvd0luY2x1
c2lvbiogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1
c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQotICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50
KCktPmF0dGFjaCgpOwotICAgIH0KLX0KLQotdm9pZCBTaGFkb3dDb250ZW50RWxlbWVudDo6ZGV0
YWNoKCkKLXsKLSAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dU
cmVlUm9vdE5vZGUoKSkpIHsKLSAgICAgICAgaWYgKFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBz
ZWxlY3RvciA9IHJvb3QtPmluY2x1c2lvbnMoKSkKLSAgICAgICAgICAgIHNlbGVjdG9yLT51bnNl
bGVjdChtX2luY2x1c2lvbnMuZ2V0KCkpOwotICAgIH0KLQotICAgIEFTU0VSVChtX2luY2x1c2lv
bnMtPmlzRW1wdHkoKSk7Ci0gICAgU3R5bGVkRWxlbWVudDo6ZGV0YWNoKCk7Ci19Ci0KLWNvbnN0
IEF0b21pY1N0cmluZyYgU2hhZG93Q29udGVudEVsZW1lbnQ6OnNlbGVjdCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzZWxlY3RBdHRyKTsKLX0KLQotdm9pZCBTaGFkb3dDb250
ZW50RWxlbWVudDo6c2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0VmFsdWUpCi17
Ci0gICAgc2V0QXR0cmlidXRlKHNlbGVjdEF0dHIsIHNlbGVjdFZhbHVlKTsKLX0KLQotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYWNlNDdhZGMxMTNmZmEzODNjZDI5OGU4MTRjYTRiN2Q5YjhkY2ZmNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFNoYWRvd0NvbnRlbnRFbGVtZW50X2gKLSNkZWZpbmUgU2hhZG93Q29udGVudEVs
ZW1lbnRfaAotCi0jaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU2hhZG93Q29udGVudFNlbGVj
dG9yUXVlcnk7Ci1jbGFzcyBTaGFkb3dJbmNsdXNpb25MaXN0OwotCi0vLyBOT1RFOiBDdXJyZW50
IGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBkeW5hbWljIGluc2VydGlvbi9kZWxldGlv
biBvZiBTaGFkb3dDb250ZW50RWxlbWVudC4KLS8vIFlvdSBzaG91bGQgY3JlYXRlIFNoYWRvd0Nv
bnRlbnRFbGVtZW50IGR1cmluZyB0aGUgaG9zdCBjb25zdHJ1Y3Rpb24uCi1jbGFzcyBTaGFkb3dD
b250ZW50RWxlbWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTaGFkb3dDb250ZW50RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7Ci0K
LSAgICB2aXJ0dWFsIH5TaGFkb3dDb250ZW50RWxlbWVudCgpOwotICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2goKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7Ci0KLSAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHNlbGVjdCgpIGNvbnN0OwotCi0gICAgLy8gRklYTUU6IEN1cnJlbnRseSB0aGlzIGNv
bnN0cnVjdG9yIGFjY2VwdHMgd2lkZXIgcXVlcnkgdGhhbiBzaGFkb3cgZG9tIHNwZWMuCi0gICAg
Ly8gRm9yIGV4YW1wbGUsIGEgc2VsZWN0b3IgcXVlcnkgc2hvdWxkIG5vdCBpbmNsdWRlIGNvbnRl
eHR1YWwgc2VsZWN0b3JzLgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzU5NDYKLSAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGRvbid0IHN1cHBv
cnQgc2V0dGluZyBzZWxlY3QgdmFsdWUgZHluYW1pY2FsbHkuCi0gICAgLy8gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI2MQotICAgIHZvaWQgc2V0U2VsZWN0
KGNvbnN0IEF0b21pY1N0cmluZyYpOwotCi0gICAgY29uc3QgU2hhZG93SW5jbHVzaW9uTGlzdCog
aW5jbHVzaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5jbHVzaW9ucy5nZXQoKTsgfQotCi1wcm90
ZWN0ZWQ6Ci0gICAgU2hhZG93Q29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzQ29udGVudEVsZW1lbnQo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZp
cnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0
eWxlKikgeyByZXR1cm4gMDsgfQotCi0gICAgT3duUHRyPFNoYWRvd0luY2x1c2lvbkxpc3Q+IG1f
aW5jbHVzaW9uczsKLX07Ci0KLWlubGluZSBTaGFkb3dDb250ZW50RWxlbWVudCogdG9TaGFkb3dD
b250ZW50RWxlbWVudChOb2RlKiBub2RlKQotewotICAgIEFTU0VSVCghbm9kZSB8fCBub2RlLT5p
c0NvbnRlbnRFbGVtZW50KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFkb3dDb250ZW50
RWxlbWVudCo+KG5vZGUpOwotfQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDFhMDYxZTc4NjdiMjViZTVmZWFmMWNiZjRmNzQ0OGQyMzliNzQyY2MuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoK
LSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudFNl
bGVjdG9yUXVlcnkuaCIKLQotI2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2luY2x1ZGUgIkNTU1Nl
bGVjdG9yTGlzdC5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnk6OlNoYWRvd0NvbnRl
bnRTZWxlY3RvclF1ZXJ5KFNoYWRvd0NvbnRlbnRFbGVtZW50KiBlbGVtZW50KQotICAgIDogbV9j
b250ZW50RWxlbWVudChlbGVtZW50KQotICAgICwgbV9zZWxlY3RvckNoZWNrZXIoZWxlbWVudC0+
ZG9jdW1lbnQoKSwgIWVsZW1lbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQotewotICAg
IG1fc2VsZWN0b3JDaGVja2VyLnNldENvbGxlY3RpbmdSdWxlc09ubHkodHJ1ZSk7Ci0KLSAgICBp
ZiAoZWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgZWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDU1NQYXJzZXIgcGFyc2VyKHRydWUpOwotICAg
IHBhcnNlci5wYXJzZVNlbGVjdG9yKGVsZW1lbnQtPnNlbGVjdCgpLCBlbGVtZW50LT5kb2N1bWVu
dCgpLCBtX3NlbGVjdG9yTGlzdCk7Ci0KLSAgICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKG1fc2Vs
ZWN0b3JMaXN0KTsKLX0KLQotYm9vbCBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hl
cyhOb2RlKiBub2RlKSBjb25zdAotewotICAgIEFTU0VSVChub2RlKTsKLSAgICBpZiAoIW5vZGUp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEFTU0VSVChub2RlLT5wYXJlbnROb2RlKCkg
PT0gbV9jb250ZW50RWxlbWVudC0+c2hhZG93VHJlZVJvb3ROb2RlKCktPnNoYWRvd0hvc3QoKSk7
Ci0KLSAgICBpZiAobV9jb250ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9jb250
ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQot
ICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICByZXR1cm4gbV9zZWxlY3RvcnMubWF0Y2hlcyhtX3NlbGVjdG9yQ2hlY2tlciwgdG9FbGVt
ZW50KG5vZGUpKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVu
dFNlbGVjdG9yUXVlcnkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU2ODczYjM0
MzBjM2EyYzI0N2ExODBhZTRkYTNkYjEwNGYwNzMwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNl
bGVjdG9yUXVlcnkuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNoYWRv
d0NvbnRlbnRTZWxlY3RvclF1ZXJ5X2gKLSNkZWZpbmUgU2hhZG93Q29udGVudFNlbGVjdG9yUXVl
cnlfaAotCi0jaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCi0jaW5jbHVkZSAiU2VsZWN0b3JD
aGVja2VyLmgiCi0jaW5jbHVkZSAiU2VsZWN0b3JRdWVyeS5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIERvY3VtZW50OwotY2xhc3MgTm9kZTsKLWNsYXNzIFNoYWRvd0NvbnRlbnRFbGVtZW50
OwotCi1jbGFzcyBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeSB7Ci0gICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkpOwotcHVibGljOgotICAgIGV4cGxp
Y2l0IFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5KFNoYWRvd0NvbnRlbnRFbGVtZW50Kik7Ci0K
LSAgICBib29sIG1hdGNoZXMoTm9kZSopIGNvbnN0OwotCi1wcml2YXRlOgotICAgIFNoYWRvd0Nv
bnRlbnRFbGVtZW50KiBtX2NvbnRlbnRFbGVtZW50OwotICAgIFNlbGVjdG9yRGF0YUxpc3QgbV9z
ZWxlY3RvcnM7Ci0gICAgQ1NTU2VsZWN0b3JMaXN0IG1fc2VsZWN0b3JMaXN0OwotICAgIFNlbGVj
dG9yQ2hlY2tlciBtX3NlbGVjdG9yQ2hlY2tlcjsKLX07Ci0KLX0KLQotCi0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3ZTlkNDJiZTUxYjVlNDUyYzRkNDA1NGUyMGJhNGM3Yjg1
NTQ4YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDE1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNoYWRv
d0luY2x1c2lvblNlbGVjdG9yLmgiCi0KLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5o
IgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCi0jaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgotCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTaGFkb3dJbmNsdXNp
b246OmFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbmV4dCkKLXsKLSAgICBBU1NF
UlQoIW1fbmV4dCk7Ci0gICAgQVNTRVJUKCFuZXh0LT5wcmV2aW91cygpKTsKLSAgICBtX25leHQg
PSBuZXh0OwotICAgIG1fbmV4dC0+bV9wcmV2aW91cyA9IHRoaXM7Ci19Ci0KLXZvaWQgU2hhZG93
SW5jbHVzaW9uOjp1bmxpbmsoKQotewotICAgIEFTU0VSVCghbV9wcmV2aW91cyk7IC8vIENhbiBi
ZSBjYWxsZWQgb25seSBmb3IgYSBoZWFkLgotICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGl0
ZW0gPSB0aGlzOwotICAgIHdoaWxlIChpdGVtKSB7Ci0gICAgICAgIEFTU0VSVCghaXRlbS0+cHJl
dmlvdXMoKSk7Ci0gICAgICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG5leHRJdGVtID0gaXRl
bS0+bV9uZXh0OwotICAgICAgICBpdGVtLT5tX25leHQuY2xlYXIoKTsKLSAgICAgICAgaWYgKG5l
eHRJdGVtKQotICAgICAgICAgICAgbmV4dEl0ZW0tPm1fcHJldmlvdXMuY2xlYXIoKTsKLSAgICAg
ICAgaXRlbSA9IG5leHRJdGVtOwotICAgIH0KLX0KLQotU2hhZG93SW5jbHVzaW9uTGlzdDo6U2hh
ZG93SW5jbHVzaW9uTGlzdCgpCi17Ci19Ci0KLVNoYWRvd0luY2x1c2lvbkxpc3Q6On5TaGFkb3dJ
bmNsdXNpb25MaXN0KCkKLXsKLSAgICBBU1NFUlQoaXNFbXB0eSgpKTsKLX0KLQotU2hhZG93SW5j
bHVzaW9uKiBTaGFkb3dJbmNsdXNpb25MaXN0OjpmaW5kKE5vZGUqIGNvbnRlbnQpIGNvbnN0Ci17
Ci0gICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGl0ZW0gPSBmaXJzdCgpOyBpdGVtOyBpdGVtID0g
aXRlbS0+bmV4dCgpKSB7Ci0gICAgICAgIGlmIChjb250ZW50ID09IGl0ZW0tPmNvbnRlbnQoKSkK
LSAgICAgICAgICAgIHJldHVybiBpdGVtOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gMDsKLX0K
LQotdm9pZCBTaGFkb3dJbmNsdXNpb25MaXN0OjpjbGVhcigpCi17Ci0gICAgaWYgKGlzRW1wdHko
KSkgewotICAgICAgICBBU1NFUlQoIW1fbGFzdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBtX2ZpcnN0LT51bmxpbmsoKTsKLSAgICBtX2ZpcnN0LmNsZWFyKCk7Ci0gICAgbV9sYXN0
LmNsZWFyKCk7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uTGlzdDo6YXBwZW5kKFBhc3NSZWZQ
dHI8U2hhZG93SW5jbHVzaW9uPiBjaGlsZCkKLXsKLSAgICBpZiAoaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIEFTU0VSVCghbV9sYXN0KTsKLSAgICAgICAgbV9maXJzdCA9IG1fbGFzdCA9IGNoaWxkOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9sYXN0LT5hcHBlbmQoY2hpbGQpOwotICAg
IG1fbGFzdCA9IG1fbGFzdC0+bmV4dCgpOwotfQotCi1TaGFkb3dJbmNsdXNpb25TZWxlY3Rvcjo6
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IoKQotewotfQotCi1TaGFkb3dJbmNsdXNpb25TZWxlY3Rv
cjo6flNoYWRvd0luY2x1c2lvblNlbGVjdG9yKCkKLXsKLSAgICBBU1NFUlQobV9jYW5kaWRhdGVz
LmlzRW1wdHkoKSk7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OnNlbGVjdChT
aGFkb3dDb250ZW50RWxlbWVudCogY29udGVudEVsZW1lbnQsIFNoYWRvd0luY2x1c2lvbkxpc3Qq
IGluY2x1c2lvbnMpCi17Ci0gICAgQVNTRVJUKGluY2x1c2lvbnMtPmlzRW1wdHkoKSk7Ci0KLSAg
ICBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeSBxdWVyeShjb250ZW50RWxlbWVudCk7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2NhbmRpZGF0ZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAg
ICAgTm9kZSogY2hpbGQgPSBtX2NhbmRpZGF0ZXNbaV0uZ2V0KCk7Ci0gICAgICAgIGlmICghY2hp
bGQpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKCFxdWVyeS5tYXRjaGVzKGNo
aWxkKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIFJlZlB0cjxTaGFkb3dJbmNs
dXNpb24+IGluY2x1c2lvbiA9IFNoYWRvd0luY2x1c2lvbjo6Y3JlYXRlKGNvbnRlbnRFbGVtZW50
LCBjaGlsZCk7Ci0gICAgICAgIGluY2x1c2lvbnMtPmFwcGVuZChpbmNsdXNpb24pOwotICAgICAg
ICBtX2luY2x1c2lvblNldC5hZGQoaW5jbHVzaW9uLmdldCgpKTsKLSAgICAgICAgbV9jYW5kaWRh
dGVzW2ldID0gMDsKLSAgICB9Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OnVu
c2VsZWN0KFNoYWRvd0luY2x1c2lvbkxpc3QqIGxpc3QpCi17Ci0gICAgZm9yIChTaGFkb3dJbmNs
dXNpb24qIGluY2x1c2lvbiA9IGxpc3QtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0g
aW5jbHVzaW9uLT5uZXh0KCkpCi0gICAgICAgIG1faW5jbHVzaW9uU2V0LnJlbW92ZShpbmNsdXNp
b24pOwotICAgIGxpc3QtPmNsZWFyKCk7Ci19Ci0KLVNoYWRvd0luY2x1c2lvbiogU2hhZG93SW5j
bHVzaW9uU2VsZWN0b3I6OmZpbmRGb3IoTm9kZSoga2V5KSBjb25zdAotewotICAgIHJldHVybiBt
X2luY2x1c2lvblNldC5maW5kKGtleSk7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0
b3I6OmRpZFNlbGVjdCgpCi17Ci0gICAgbV9jYW5kaWRhdGVzLmNsZWFyKCk7Ci19Ci0KLXZvaWQg
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OndpbGxTZWxlY3RPdmVyKFNoYWRvd1Jvb3QqIHNjb3Bl
KQotewotICAgIGlmICghbV9jYW5kaWRhdGVzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIGZvciAoTm9kZSogbm9kZSA9IHNjb3BlLT5zaGFkb3dIb3N0KCktPmZpcnN0Q2hpbGQoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIG1fY2FuZGlkYXRlcy5h
cHBlbmQobm9kZSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dJbmNsdXNpb25TZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lv
blNlbGVjdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxYTg3MTc0NDFiMTlj
MmQ2YWZhMGU4ZjM0MDc1ODQxMDIxOGI0ZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVj
dG9yLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0g
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3JfaAotI2RlZmluZSBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvcl9oCi0KLSNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgRWxlbWVudDsKLWNsYXNzIE5vZGU7Ci1jbGFzcyBTaGFkb3dSb290
OwotY2xhc3MgU2hhZG93Q29udGVudEVsZW1lbnQ7Ci0KLWNsYXNzIFNoYWRvd0luY2x1c2lvbiA6
IHB1YmxpYyBSZWZDb3VudGVkPFNoYWRvd0luY2x1c2lvbj4gewotcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gY3JlYXRlKFNoYWRvd0NvbnRlbnRFbGVtZW50
KiwgTm9kZSopOwotCi0gICAgU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9pbmNsdWRlcjsgfQotICAgIE5vZGUqIGNvbnRlbnQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRlbnQuZ2V0KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIG5leHQoKSBjb25zdCB7
IHJldHVybiBtX25leHQuZ2V0KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIHByZXZpb3VzKCkg
Y29uc3QgeyByZXR1cm4gbV9wcmV2aW91cy5nZXQoKTsgfQotCi0gICAgdm9pZCBhcHBlbmQoUGFz
c1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+KTsKLSAgICB2b2lkIHVubGluaygpOwotCi1wcml2YXRl
OgotICAgIFNoYWRvd0luY2x1c2lvbihTaGFkb3dDb250ZW50RWxlbWVudCosIE5vZGUqKTsKLQot
ICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBtX2luY2x1ZGVyOwotICAgIFJlZlB0cjxOb2RlPiBt
X2NvbnRlbnQ7Ci0gICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbV9uZXh0OwotICAgIFJlZlB0
cjxTaGFkb3dJbmNsdXNpb24+IG1fcHJldmlvdXM7Ci19OwotCi1pbmxpbmUgU2hhZG93SW5jbHVz
aW9uOjpTaGFkb3dJbmNsdXNpb24oU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyLCBOb2Rl
KiBjb250ZW50KQotICAgIDogbV9pbmNsdWRlcihpbmNsdWRlciksIG1fY29udGVudChjb250ZW50
KQoteyB9Ci0KLWlubGluZSBQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gU2hhZG93SW5jbHVz
aW9uOjpjcmVhdGUoU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyLCBOb2RlKiBjb250ZW50
KQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93SW5jbHVzaW9uKGluY2x1ZGVyLCBj
b250ZW50KSk7Ci19Ci0KLWNsYXNzIFNoYWRvd0luY2x1c2lvbkxpc3QgewotcHVibGljOgotICAg
IFNoYWRvd0luY2x1c2lvbkxpc3QoKTsKLSAgICB+U2hhZG93SW5jbHVzaW9uTGlzdCgpOwotCi0g
ICAgU2hhZG93SW5jbHVzaW9uKiBmaXJzdCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3QuZ2V0KCk7
IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIGxhc3QoKSBjb25zdCB7IHJldHVybiBtX2xhc3QuZ2V0
KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIGZpbmQoTm9kZSopIGNvbnN0OwotICAgIGJvb2wg
aXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2ZpcnN0OyB9Ci0KLSAgICB2b2lkIGNsZWFyKCk7
Ci0gICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+KTsKLQotcHJpdmF0
ZToKLSAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBtX2ZpcnN0OwotICAgIFJlZlB0cjxTaGFk
b3dJbmNsdXNpb24+IG1fbGFzdDsKLX07Ci0KLQotY2xhc3MgU2hhZG93SW5jbHVzaW9uU2V0IHsK
LXB1YmxpYzoKLSAgICB2b2lkIGFkZChTaGFkb3dJbmNsdXNpb24qIHZhbHVlKSB7IG1fc2V0LmFk
ZCh2YWx1ZSk7IH0KLSAgICB2b2lkIHJlbW92ZShTaGFkb3dJbmNsdXNpb24qIHZhbHVlKSB7IG1f
c2V0LnJlbW92ZSh2YWx1ZSk7IH0KLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBt
X3NldC5pc0VtcHR5KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIGZpbmQoTm9kZSoga2V5KSBj
b25zdDsKLQotcHJpdmF0ZToKLSAgICBzdHJ1Y3QgVHJhbnNsYXRvciB7Ci0gICAgcHVibGljOgot
ICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBOb2RlKiBrZXkpIHsgcmV0dXJuIFB0
ckhhc2g8Y29uc3QgTm9kZSo+OjpoYXNoKGtleSk7IH0KLSAgICAgICAgc3RhdGljIGJvb2wgZXF1
YWwoY29uc3QgU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24sIGNvbnN0IE5vZGUqIGNvbnRlbnQp
IHsgcmV0dXJuIGluY2x1c2lvbi0+Y29udGVudCgpID09IGNvbnRlbnQ7IH0KLSAgICB9OwotCi0g
ICAgc3RydWN0IEhhc2ggewotICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChTaGFkb3dJbmNs
dXNpb24qIGtleSkgeyByZXR1cm4gUHRySGFzaDxjb25zdCBOb2RlKj46Omhhc2goa2V5LT5jb250
ZW50KCkpOyB9Ci0gICAgICAgIHN0YXRpYyBib29sIGVxdWFsKFNoYWRvd0luY2x1c2lvbiogYSwg
U2hhZG93SW5jbHVzaW9uKiBiKSB7IHJldHVybiBhLT5jb250ZW50KCkgPT0gYi0+Y29udGVudCgp
OyB9Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxl
dGVkID0gZmFsc2U7Ci0gICAgfTsKLQotICAgIHR5cGVkZWYgSGFzaFNldDxTaGFkb3dJbmNsdXNp
b24qLCBIYXNoPiBQb2ludGVyU2V0OwotCi0gICAgUG9pbnRlclNldCBtX3NldDsKLX07Ci0KLWlu
bGluZSBTaGFkb3dJbmNsdXNpb24qIFNoYWRvd0luY2x1c2lvblNldDo6ZmluZChOb2RlKiBrZXkp
IGNvbnN0Ci17Ci0gICAgUG9pbnRlclNldDo6aXRlcmF0b3IgZm91bmQgPSBtX3NldC5maW5kPE5v
ZGUqLCBTaGFkb3dJbmNsdXNpb25TZXQ6OlRyYW5zbGF0b3I+KGtleSk7Ci0gICAgcmV0dXJuIGZv
dW5kICE9IG1fc2V0LmVuZCgpID8gKmZvdW5kIDogMDsKLX0KLQotY2xhc3MgU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3IgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNoYWRvd0luY2x1c2lvblNl
bGVjdG9yKTsKLXB1YmxpYzoKLSAgICBTaGFkb3dJbmNsdXNpb25TZWxlY3RvcigpOwotICAgIH5T
aGFkb3dJbmNsdXNpb25TZWxlY3RvcigpOwotCi0gICAgdm9pZCBzZWxlY3QoU2hhZG93Q29udGVu
dEVsZW1lbnQqLCBTaGFkb3dJbmNsdXNpb25MaXN0Kik7Ci0gICAgdm9pZCB1bnNlbGVjdChTaGFk
b3dJbmNsdXNpb25MaXN0Kik7Ci0gICAgU2hhZG93SW5jbHVzaW9uKiBmaW5kRm9yKE5vZGUqIGtl
eSkgY29uc3Q7Ci0KLSAgICB2b2lkIHdpbGxTZWxlY3RPdmVyKFNoYWRvd1Jvb3QqKTsKLSAgICB2
b2lkIGRpZFNlbGVjdCgpOwotICAgIGJvb2wgaGFzQ2FuZGlkYXRlcygpIGNvbnN0IHsgcmV0dXJu
ICFtX2NhbmRpZGF0ZXMuaXNFbXB0eSgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCByZW1vdmVG
cm9tU2V0KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKLSAgICB2b2lkIGFkZFRvU2V0KFNoYWRvd0lu
Y2x1c2lvbkxpc3QqKTsKLQotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiBtX2NhbmRpZGF0ZXM7
Ci0gICAgU2hhZG93SW5jbHVzaW9uU2V0IG1faW5jbHVzaW9uU2V0OwotfTsKLQotfQotCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBlMmNlOWIwNDNlOTQ0YjFhYzYyMmI1
NWMxMDA5MTFjNGJiODJlMDQ5Li4yMjlkNTU4MTVhN2ZhZWVlNDc4YWQyOWE3MDhiMjU4OTZiMjRl
YTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0yNiwxMiArMjYsMTIgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJF
bGVtZW50LmgiCiAKKyNpbmNsdWRlICJDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ29u
dGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKLSNpbmNsdWRlICJTaGFk
b3dDb250ZW50RWxlbWVudC5oIgotI2luY2x1ZGUgIlNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgi
CiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMDEsNyArMTAx
LDcgQEAgdm9pZCBTaGFkb3dSb290OjpyZWNhbGNTaGFkb3dUcmVlU3R5bGUoU3R5bGVDaGFuZ2Ug
Y2hhbmdlKQogICAgIGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKLVNoYWRvd0Nv
bnRlbnRFbGVtZW50KiBTaGFkb3dSb290OjppbmNsdWRlckZvcihOb2RlKiBub2RlKSBjb25zdAor
SFRNTENvbnRlbnRFbGVtZW50KiBTaGFkb3dSb290OjppbmNsdWRlckZvcihOb2RlKiBub2RlKSBj
b25zdAogewogICAgIGlmICghbV9pbmNsdXNpb25zKQogICAgICAgICByZXR1cm4gMDsKQEAgLTE1
NSwxNSArMTU1LDE1IEBAIHZvaWQgU2hhZG93Um9vdDo6YXR0YWNoKCkKICAgICAgICAgbV9pbmNs
dXNpb25zLT5kaWRTZWxlY3QoKTsKIH0KIAotU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIFNoYWRv
d1Jvb3Q6OmluY2x1c2lvbnMoKSBjb25zdAorQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBTaGFk
b3dSb290OjppbmNsdXNpb25zKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbmNsdXNpb25zLmdl
dCgpOwogfQogCi1TaGFkb3dJbmNsdXNpb25TZWxlY3RvciogU2hhZG93Um9vdDo6ZW5zdXJlSW5j
bHVzaW9ucygpCitDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIFNoYWRvd1Jvb3Q6OmVuc3VyZUlu
Y2x1c2lvbnMoKQogewogICAgIGlmICghbV9pbmNsdXNpb25zKQotICAgICAgICBtX2luY2x1c2lv
bnMgPSBhZG9wdFB0cihuZXcgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IoKSk7CisgICAgICAgIG1f
aW5jbHVzaW9ucyA9IGFkb3B0UHRyKG5ldyBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IoKSk7CiAg
ICAgbV9pbmNsdXNpb25zLT53aWxsU2VsZWN0T3Zlcih0aGlzKTsKICAgICByZXR1cm4gbV9pbmNs
dXNpb25zLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggMzRkZGYzMzAxMTUy
NGRhNzJkYmQ2ZmEyMjRkYjk0YmY0YWQ5MTJkMy4uYzViYzBkYmNiNWQwY2RiOWE4MzQ1YmQ5YTFm
OTIxN2UyMzAyYWMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC0zMiw4ICszMiw4IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgU2hhZG93Q29u
dGVudEVsZW1lbnQ7Ci1jbGFzcyBTaGFkb3dJbmNsdXNpb25TZWxlY3RvcjsKK2NsYXNzIEhUTUxD
b250ZW50RWxlbWVudDsKK2NsYXNzIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvcjsKIAogY2xhc3Mg
U2hhZG93Um9vdCA6IHB1YmxpYyBUcmVlU2NvcGUgewogcHVibGljOgpAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHJlY2FsY1NoYWRvd1RyZWVTdHlsZShTdHlsZUNoYW5nZSk7
CiAKLSAgICBTaGFkb3dDb250ZW50RWxlbWVudCogaW5jbHVkZXJGb3IoTm9kZSopIGNvbnN0Owor
ICAgIEhUTUxDb250ZW50RWxlbWVudCogaW5jbHVkZXJGb3IoTm9kZSopIGNvbnN0OwogICAgIHZv
aWQgaG9zdENoaWxkcmVuQ2hhbmdlZCgpOwogICAgIGJvb2wgaXNJbmNsdXNpb25TZWxlY3RvckFj
dGl2ZSgpIGNvbnN0OwogCkBAIC01MCw4ICs1MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgYXBwbHlBdXRob3JTaGVldHMoKSBjb25zdDsKICAgICB2b2lkIHNldEFwcGx5QXV0aG9yU2hl
ZXRzKGJvb2wpOwogCi0gICAgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIGluY2x1c2lvbnMoKSBj
b25zdDsKLSAgICBTaGFkb3dJbmNsdXNpb25TZWxlY3RvciogZW5zdXJlSW5jbHVzaW9ucygpOwor
ICAgIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvciogaW5jbHVzaW9ucygpIGNvbnN0OworICAgIENv
bnRlbnRJbmNsdXNpb25TZWxlY3RvciogZW5zdXJlSW5jbHVzaW9ucygpOwogCiBwcml2YXRlOgog
ICAgIFNoYWRvd1Jvb3QoRG9jdW1lbnQqKTsKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIGhhc0NvbnRlbnRFbGVtZW50KCkgY29uc3Q7CiAKICAgICBib29sIG1fYXBwbHlBdXRo
b3JTaGVldHM7Ci0gICAgT3duUHRyPFNoYWRvd0luY2x1c2lvblNlbGVjdG9yPiBtX2luY2x1c2lv
bnM7CisgICAgT3duUHRyPENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcj4gbV9pbmNsdXNpb25zOwog
fTsKIAogaW5saW5lIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gU2hhZG93Um9vdDo6Y3JlYXRlKERv
Y3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVu
dEluY2x1c2lvblNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudEluY2x1
c2lvblNlbGVjdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjU0MWE1YWU4OTg3NTk4ZWI5YTkxMzI3NGE1
YzRjNmFjZjgwZGM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db250
ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwCkBAIC0wLDAgKzEsMTU1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIgorCisjaW5jbHVk
ZSAiQ29udGVudFNlbGVjdG9yUXVlcnkuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIFNoYWRvd0luY2x1c2lvbjo6YXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBu
ZXh0KQoreworICAgIEFTU0VSVCghbV9uZXh0KTsKKyAgICBBU1NFUlQoIW5leHQtPnByZXZpb3Vz
KCkpOworICAgIG1fbmV4dCA9IG5leHQ7CisgICAgbV9uZXh0LT5tX3ByZXZpb3VzID0gdGhpczsK
K30KKwordm9pZCBTaGFkb3dJbmNsdXNpb246OnVubGluaygpCit7CisgICAgQVNTRVJUKCFtX3By
ZXZpb3VzKTsgLy8gQ2FuIGJlIGNhbGxlZCBvbmx5IGZvciBhIGhlYWQuCisgICAgUmVmUHRyPFNo
YWRvd0luY2x1c2lvbj4gaXRlbSA9IHRoaXM7CisgICAgd2hpbGUgKGl0ZW0pIHsKKyAgICAgICAg
QVNTRVJUKCFpdGVtLT5wcmV2aW91cygpKTsKKyAgICAgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lv
bj4gbmV4dEl0ZW0gPSBpdGVtLT5tX25leHQ7CisgICAgICAgIGl0ZW0tPm1fbmV4dC5jbGVhcigp
OworICAgICAgICBpZiAobmV4dEl0ZW0pCisgICAgICAgICAgICBuZXh0SXRlbS0+bV9wcmV2aW91
cy5jbGVhcigpOworICAgICAgICBpdGVtID0gbmV4dEl0ZW07CisgICAgfQorfQorCitTaGFkb3dJ
bmNsdXNpb25MaXN0OjpTaGFkb3dJbmNsdXNpb25MaXN0KCkKK3sKK30KKworU2hhZG93SW5jbHVz
aW9uTGlzdDo6flNoYWRvd0luY2x1c2lvbkxpc3QoKQoreworICAgIEFTU0VSVChpc0VtcHR5KCkp
OworfQorCitTaGFkb3dJbmNsdXNpb24qIFNoYWRvd0luY2x1c2lvbkxpc3Q6OmZpbmQoTm9kZSog
Y29udGVudCkgY29uc3QKK3sKKyAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaXRlbSA9IGZpcnN0
KCk7IGl0ZW07IGl0ZW0gPSBpdGVtLT5uZXh0KCkpIHsKKyAgICAgICAgaWYgKGNvbnRlbnQgPT0g
aXRlbS0+Y29udGVudCgpKQorICAgICAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgfQorICAgIAor
ICAgIHJldHVybiAwOworfQorCit2b2lkIFNoYWRvd0luY2x1c2lvbkxpc3Q6OmNsZWFyKCkKK3sK
KyAgICBpZiAoaXNFbXB0eSgpKSB7CisgICAgICAgIEFTU0VSVCghbV9sYXN0KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIG1fZmlyc3QtPnVubGluaygpOworICAgIG1fZmlyc3QuY2xl
YXIoKTsKKyAgICBtX2xhc3QuY2xlYXIoKTsKK30KKwordm9pZCBTaGFkb3dJbmNsdXNpb25MaXN0
OjphcHBlbmQoUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGNoaWxkKQoreworICAgIGlmIChp
c0VtcHR5KCkpIHsKKyAgICAgICAgQVNTRVJUKCFtX2xhc3QpOworICAgICAgICBtX2ZpcnN0ID0g
bV9sYXN0ID0gY2hpbGQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2xhc3QtPmFw
cGVuZChjaGlsZCk7CisgICAgbV9sYXN0ID0gbV9sYXN0LT5uZXh0KCk7Cit9CisKK0NvbnRlbnRJ
bmNsdXNpb25TZWxlY3Rvcjo6Q29udGVudEluY2x1c2lvblNlbGVjdG9yKCkKK3sKK30KKworQ29u
dGVudEluY2x1c2lvblNlbGVjdG9yOjp+Q29udGVudEluY2x1c2lvblNlbGVjdG9yKCkKK3sKKyAg
ICBBU1NFUlQobV9jYW5kaWRhdGVzLmlzRW1wdHkoKSk7Cit9CisKK3ZvaWQgQ29udGVudEluY2x1
c2lvblNlbGVjdG9yOjpzZWxlY3QoSFRNTENvbnRlbnRFbGVtZW50KiBjb250ZW50RWxlbWVudCwg
U2hhZG93SW5jbHVzaW9uTGlzdCogaW5jbHVzaW9ucykKK3sKKyAgICBBU1NFUlQoaW5jbHVzaW9u
cy0+aXNFbXB0eSgpKTsKKworICAgIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHF1ZXJ5KGNvbnRlbnRF
bGVtZW50KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY2FuZGlkYXRlcy5zaXplKCk7
ICsraSkgeworICAgICAgICBOb2RlKiBjaGlsZCA9IG1fY2FuZGlkYXRlc1tpXS5nZXQoKTsKKyAg
ICAgICAgaWYgKCFjaGlsZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIXF1
ZXJ5Lm1hdGNoZXMoY2hpbGQpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgUmVm
UHRyPFNoYWRvd0luY2x1c2lvbj4gaW5jbHVzaW9uID0gU2hhZG93SW5jbHVzaW9uOjpjcmVhdGUo
Y29udGVudEVsZW1lbnQsIGNoaWxkKTsKKyAgICAgICAgaW5jbHVzaW9ucy0+YXBwZW5kKGluY2x1
c2lvbik7CisgICAgICAgIG1faW5jbHVzaW9uU2V0LmFkZChpbmNsdXNpb24uZ2V0KCkpOworICAg
ICAgICBtX2NhbmRpZGF0ZXNbaV0gPSAwOworICAgIH0KK30KKwordm9pZCBDb250ZW50SW5jbHVz
aW9uU2VsZWN0b3I6OnVuc2VsZWN0KFNoYWRvd0luY2x1c2lvbkxpc3QqIGxpc3QpCit7CisgICAg
Zm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IGxpc3QtPmZpcnN0KCk7IGluY2x1c2lv
bjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0KCkpCisgICAgICAgIG1faW5jbHVzaW9uU2V0
LnJlbW92ZShpbmNsdXNpb24pOworICAgIGxpc3QtPmNsZWFyKCk7Cit9CisKK1NoYWRvd0luY2x1
c2lvbiogQ29udGVudEluY2x1c2lvblNlbGVjdG9yOjpmaW5kRm9yKE5vZGUqIGtleSkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9pbmNsdXNpb25TZXQuZmluZChrZXkpOworfQorCit2b2lkIENvbnRl
bnRJbmNsdXNpb25TZWxlY3Rvcjo6ZGlkU2VsZWN0KCkKK3sKKyAgICBtX2NhbmRpZGF0ZXMuY2xl
YXIoKTsKK30KKwordm9pZCBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OndpbGxTZWxlY3RPdmVy
KFNoYWRvd1Jvb3QqIHNjb3BlKQoreworICAgIGlmICghbV9jYW5kaWRhdGVzLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIGZvciAoTm9kZSogbm9kZSA9IHNjb3BlLT5zaGFkb3dIb3N0
KCktPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCisgICAg
ICAgIG1fY2FuZGlkYXRlcy5hcHBlbmQobm9kZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmMGIxOTc4ZWJj
NzkxYmM0NjNjMjMwNGE5OTdmNTUxNTQxYjYyNjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oCkBAIC0wLDAgKzEsMTUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3JfaAorI2RlZmluZSBDb250ZW50SW5jbHVz
aW9uU2VsZWN0b3JfaAorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBI
VE1MQ29udGVudEVsZW1lbnQ7CitjbGFzcyBOb2RlOworY2xhc3MgU2hhZG93Um9vdDsKKworY2xh
c3MgU2hhZG93SW5jbHVzaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhZG93SW5jbHVzaW9uPiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBjcmVhdGUo
SFRNTENvbnRlbnRFbGVtZW50KiwgTm9kZSopOworCisgICAgSFRNTENvbnRlbnRFbGVtZW50KiBp
bmNsdWRlcigpIGNvbnN0IHsgcmV0dXJuIG1faW5jbHVkZXI7IH0KKyAgICBOb2RlKiBjb250ZW50
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50LmdldCgpOyB9CisgICAgU2hhZG93SW5jbHVzaW9u
KiBuZXh0KCkgY29uc3QgeyByZXR1cm4gbV9uZXh0LmdldCgpOyB9CisgICAgU2hhZG93SW5jbHVz
aW9uKiBwcmV2aW91cygpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXMuZ2V0KCk7IH0KKworICAg
IHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPik7CisgICAgdm9pZCB1bmxp
bmsoKTsKKworcHJpdmF0ZToKKyAgICBTaGFkb3dJbmNsdXNpb24oSFRNTENvbnRlbnRFbGVtZW50
KiwgTm9kZSopOworCisgICAgSFRNTENvbnRlbnRFbGVtZW50KiBtX2luY2x1ZGVyOworICAgIFJl
ZlB0cjxOb2RlPiBtX2NvbnRlbnQ7CisgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbV9uZXh0
OworICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG1fcHJldmlvdXM7Cit9OworCitpbmxpbmUg
U2hhZG93SW5jbHVzaW9uOjpTaGFkb3dJbmNsdXNpb24oSFRNTENvbnRlbnRFbGVtZW50KiBpbmNs
dWRlciwgTm9kZSogY29udGVudCkKKyAgICA6IG1faW5jbHVkZXIoaW5jbHVkZXIpLCBtX2NvbnRl
bnQoY29udGVudCkKK3sgfQorCitpbmxpbmUgUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IFNo
YWRvd0luY2x1c2lvbjo6Y3JlYXRlKEhUTUxDb250ZW50RWxlbWVudCogaW5jbHVkZXIsIE5vZGUq
IGNvbnRlbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFkb3dJbmNsdXNpb24oaW5j
bHVkZXIsIGNvbnRlbnQpKTsKK30KKworY2xhc3MgU2hhZG93SW5jbHVzaW9uTGlzdCB7CitwdWJs
aWM6CisgICAgU2hhZG93SW5jbHVzaW9uTGlzdCgpOworICAgIH5TaGFkb3dJbmNsdXNpb25MaXN0
KCk7CisKKyAgICBTaGFkb3dJbmNsdXNpb24qIGZpcnN0KCkgY29uc3QgeyByZXR1cm4gbV9maXJz
dC5nZXQoKTsgfQorICAgIFNoYWRvd0luY2x1c2lvbiogbGFzdCgpIGNvbnN0IHsgcmV0dXJuIG1f
bGFzdC5nZXQoKTsgfQorICAgIFNoYWRvd0luY2x1c2lvbiogZmluZChOb2RlKikgY29uc3Q7Cisg
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fZmlyc3Q7IH0KKworICAgIHZvaWQg
Y2xlYXIoKTsKKyAgICB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4pOwor
Citwcml2YXRlOgorICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG1fZmlyc3Q7CisgICAgUmVm
UHRyPFNoYWRvd0luY2x1c2lvbj4gbV9sYXN0OworfTsKKworCitjbGFzcyBTaGFkb3dJbmNsdXNp
b25TZXQgeworcHVibGljOgorICAgIHZvaWQgYWRkKFNoYWRvd0luY2x1c2lvbiogdmFsdWUpIHsg
bV9zZXQuYWRkKHZhbHVlKTsgfQorICAgIHZvaWQgcmVtb3ZlKFNoYWRvd0luY2x1c2lvbiogdmFs
dWUpIHsgbV9zZXQucmVtb3ZlKHZhbHVlKTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2V0LmlzRW1wdHkoKTsgfQorICAgIFNoYWRvd0luY2x1c2lvbiogZmluZChOb2Rl
KiBrZXkpIGNvbnN0OworCitwcml2YXRlOgorICAgIHN0cnVjdCBUcmFuc2xhdG9yIHsKKyAgICBw
dWJsaWM6CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IE5vZGUqIGtleSkgeyBy
ZXR1cm4gUHRySGFzaDxjb25zdCBOb2RlKj46Omhhc2goa2V5KTsgfQorICAgICAgICBzdGF0aWMg
Ym9vbCBlcXVhbChjb25zdCBTaGFkb3dJbmNsdXNpb24qIGluY2x1c2lvbiwgY29uc3QgTm9kZSog
Y29udGVudCkgeyByZXR1cm4gaW5jbHVzaW9uLT5jb250ZW50KCkgPT0gY29udGVudDsgfQorICAg
IH07CisKKyAgICBzdHJ1Y3QgSGFzaCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKFNo
YWRvd0luY2x1c2lvbioga2V5KSB7IHJldHVybiBQdHJIYXNoPGNvbnN0IE5vZGUqPjo6aGFzaChr
ZXktPmNvbnRlbnQoKSk7IH0KKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoU2hhZG93SW5jbHVz
aW9uKiBhLCBTaGFkb3dJbmNsdXNpb24qIGIpIHsgcmV0dXJuIGEtPmNvbnRlbnQoKSA9PSBiLT5j
b250ZW50KCk7IH0KKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICB9OworCisgICAgdHlwZWRlZiBIYXNoU2V0PFNoYWRv
d0luY2x1c2lvbiosIEhhc2g+IFBvaW50ZXJTZXQ7CisKKyAgICBQb2ludGVyU2V0IG1fc2V0Owor
fTsKKworaW5saW5lIFNoYWRvd0luY2x1c2lvbiogU2hhZG93SW5jbHVzaW9uU2V0OjpmaW5kKE5v
ZGUqIGtleSkgY29uc3QKK3sKKyAgICBQb2ludGVyU2V0OjppdGVyYXRvciBmb3VuZCA9IG1fc2V0
LmZpbmQ8Tm9kZSosIFNoYWRvd0luY2x1c2lvblNldDo6VHJhbnNsYXRvcj4oa2V5KTsKKyAgICBy
ZXR1cm4gZm91bmQgIT0gbV9zZXQuZW5kKCkgPyAqZm91bmQgOiAwOworfQorCitjbGFzcyBDb250
ZW50SW5jbHVzaW9uU2VsZWN0b3IgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRlbnRJ
bmNsdXNpb25TZWxlY3Rvcik7CitwdWJsaWM6CisgICAgQ29udGVudEluY2x1c2lvblNlbGVjdG9y
KCk7CisgICAgfkNvbnRlbnRJbmNsdXNpb25TZWxlY3RvcigpOworCisgICAgdm9pZCBzZWxlY3Qo
SFRNTENvbnRlbnRFbGVtZW50KiwgU2hhZG93SW5jbHVzaW9uTGlzdCopOworICAgIHZvaWQgdW5z
ZWxlY3QoU2hhZG93SW5jbHVzaW9uTGlzdCopOworICAgIFNoYWRvd0luY2x1c2lvbiogZmluZEZv
cihOb2RlKiBrZXkpIGNvbnN0OworCisgICAgdm9pZCB3aWxsU2VsZWN0T3ZlcihTaGFkb3dSb290
Kik7CisgICAgdm9pZCBkaWRTZWxlY3QoKTsKKyAgICBib29sIGhhc0NhbmRpZGF0ZXMoKSBjb25z
dCB7IHJldHVybiAhbV9jYW5kaWRhdGVzLmlzRW1wdHkoKTsgfQorCitwcml2YXRlOgorICAgIHZv
aWQgcmVtb3ZlRnJvbVNldChTaGFkb3dJbmNsdXNpb25MaXN0Kik7CisgICAgdm9pZCBhZGRUb1Nl
dChTaGFkb3dJbmNsdXNpb25MaXN0Kik7CisKKyAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbV9j
YW5kaWRhdGVzOworICAgIFNoYWRvd0luY2x1c2lvblNldCBtX2luY2x1c2lvblNldDsKK307CisK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudFNlbGVjdG9yUXVlcnku
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJiZjhlNTE3MTA3ZDk4ZjU1ZmQwM2EyMzkzZTU5MDhiYmE3ZTRmOWEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRTZWxlY3RvclF1
ZXJ5LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkNvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCisKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNs
dWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDb250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNl
bGVjdG9yUXVlcnkoSFRNTENvbnRlbnRFbGVtZW50KiBlbGVtZW50KQorICAgIDogbV9jb250ZW50
RWxlbWVudChlbGVtZW50KQorICAgICwgbV9zZWxlY3RvckNoZWNrZXIoZWxlbWVudC0+ZG9jdW1l
bnQoKSwgIWVsZW1lbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQoreworICAgIG1fc2Vs
ZWN0b3JDaGVja2VyLnNldENvbGxlY3RpbmdSdWxlc09ubHkodHJ1ZSk7CisKKyAgICBpZiAoZWxl
bWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgZWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBDU1NQYXJzZXIgcGFyc2VyKHRydWUpOworICAgIHBhcnNl
ci5wYXJzZVNlbGVjdG9yKGVsZW1lbnQtPnNlbGVjdCgpLCBlbGVtZW50LT5kb2N1bWVudCgpLCBt
X3NlbGVjdG9yTGlzdCk7CisKKyAgICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKG1fc2VsZWN0b3JM
aXN0KTsKK30KKworYm9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hlcyhOb2RlKiBub2Rl
KSBjb25zdAoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIEFTU0VSVChub2RlLT5wYXJlbnROb2RlKCkgPT0gbV9jb250ZW50
RWxlbWVudC0+c2hhZG93VHJlZVJvb3ROb2RlKCktPnNoYWRvd0hvc3QoKSk7CisKKyAgICBpZiAo
bV9jb250ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9jb250ZW50RWxlbWVudC0+
c2VsZWN0KCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghbm9k
ZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
bV9zZWxlY3RvcnMubWF0Y2hlcyhtX3NlbGVjdG9yQ2hlY2tlciwgdG9FbGVtZW50KG5vZGUpKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db250ZW50U2VsZWN0b3JR
dWVyeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJkYWZiOTkzYmFjZjljNzBkYTM4MGYzMzY3ZWZhNjhkMWI4OTVmMTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKQEAg
LTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgQ29udGVudFNlbGVjdG9yUXVlcnlfaAorI2RlZmluZSBDb250
ZW50U2VsZWN0b3JRdWVyeV9oCisKKyNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKKyNpbmNs
dWRlICJTZWxlY3RvckNoZWNrZXIuaCIKKyNpbmNsdWRlICJTZWxlY3RvclF1ZXJ5LmgiCisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBOb2RlOworY2xhc3MgSFRNTENv
bnRlbnRFbGVtZW50OworCitjbGFzcyBDb250ZW50U2VsZWN0b3JRdWVyeSB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQ29udGVudFNlbGVjdG9yUXVlcnkpOworcHVibGljOgorICAgIGV4cGxp
Y2l0IENvbnRlbnRTZWxlY3RvclF1ZXJ5KEhUTUxDb250ZW50RWxlbWVudCopOworCisgICAgYm9v
bCBtYXRjaGVzKE5vZGUqKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBIVE1MQ29udGVudEVsZW1l
bnQqIG1fY29udGVudEVsZW1lbnQ7CisgICAgU2VsZWN0b3JEYXRhTGlzdCBtX3NlbGVjdG9yczsK
KyAgICBDU1NTZWxlY3Rvckxpc3QgbV9zZWxlY3Rvckxpc3Q7CisgICAgU2VsZWN0b3JDaGVja2Vy
IG1fc2VsZWN0b3JDaGVja2VyOworfTsKKworfQorCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDb250ZW50RWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMxNGZlY2U5YWJjMzkz
MmMyZjVjMTUwNmQyZWRhMDE5OWYyZjk1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtMCwwICsxLDk0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgorCisjaW5jbHVk
ZSAiQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ29udGVudFNlbGVjdG9y
UXVlcnkuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1l
LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBIVE1MTmFtZXM6OnNlbGVjdEF0dHI7
CisKK1Bhc3NSZWZQdHI8SFRNTENvbnRlbnRFbGVtZW50PiBIVE1MQ29udGVudEVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChRdWFs
aWZpZWROYW1lLCB0YWdOYW1lLCAobnVsbEF0b20sICJ3ZWJraXRTaGFkb3dDb250ZW50IiwgSFRN
TE5hbWVzOjpkaXZUYWcubmFtZXNwYWNlVVJJKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEhUTUxDb250ZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitIVE1MQ29udGVu
dEVsZW1lbnQ6OkhUTUxDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudChuYW1lLCBkb2N1bWVudCkKKyAg
ICAsIG1faW5jbHVzaW9ucyhhZG9wdFB0cihuZXcgU2hhZG93SW5jbHVzaW9uTGlzdCgpKSkKK3sK
K30KKworSFRNTENvbnRlbnRFbGVtZW50Ojp+SFRNTENvbnRlbnRFbGVtZW50KCkKK3sKK30KKwor
dm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OmF0dGFjaCgpCit7CisgICAgQVNTRVJUKCFmaXJzdENo
aWxkKCkpOyAvLyBDdXJyZW50bHkgZG9lc24ndCBzdXBwb3J0IGFueSBsaWdodCBjaGlsZC4KKyAg
ICBIVE1MRWxlbWVudDo6YXR0YWNoKCk7CisKKyAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRv
U2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkpIHsKKyAgICAgICAgQ29udGVudEluY2x1
c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmVuc3VyZUluY2x1c2lvbnMoKTsKKyAgICAg
ICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1faW5jbHVzaW9ucy5nZXQoKSk7CisgICAgICAgIHNlbGVj
dG9yLT5zZWxlY3QodGhpcywgbV9pbmNsdXNpb25zLmdldCgpKTsKKyAgICAgICAgZm9yIChTaGFk
b3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IG1faW5jbHVzaW9ucy0+Zmlyc3QoKTsgaW5jbHVzaW9u
OyBpbmNsdXNpb24gPSBpbmNsdXNpb24tPm5leHQoKSkKKyAgICAgICAgICAgIGluY2x1c2lvbi0+
Y29udGVudCgpLT5kZXRhY2goKTsKKyAgICAgICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1
c2lvbiA9IG1faW5jbHVzaW9ucy0+Zmlyc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNs
dXNpb24tPm5leHQoKSkKKyAgICAgICAgICAgIGluY2x1c2lvbi0+Y29udGVudCgpLT5hdHRhY2go
KTsKKyAgICB9Cit9CisKK3ZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpkZXRhY2goKQoreworICAg
IGlmIChTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgp
KSkgeworICAgICAgICBpZiAoQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJv
b3QtPmluY2x1c2lvbnMoKSkKKyAgICAgICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdChtX2luY2x1
c2lvbnMuZ2V0KCkpOworICAgIH0KKworICAgIEFTU0VSVChtX2luY2x1c2lvbnMtPmlzRW1wdHko
KSk7CisgICAgSFRNTEVsZW1lbnQ6OmRldGFjaCgpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcm
IEhUTUxDb250ZW50RWxlbWVudDo6c2VsZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0QXR0
cmlidXRlKHNlbGVjdEF0dHIpOworfQorCit2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6c2V0U2Vs
ZWN0KGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0VmFsdWUpCit7CisgICAgc2V0QXR0cmlidXRl
KHNlbGVjdEF0dHIsIHNlbGVjdFZhbHVlKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENvbnRlbnRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM3NzcyYmQ1OGFiZTcyZjM5ZDg2NzRlYWE0
OGI1ZmYxMDcwNjhhOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENvbnRlbnRFbGVtZW50LmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSFRNTENvbnRlbnRFbGVt
ZW50X2gKKyNkZWZpbmUgSFRNTENvbnRlbnRFbGVtZW50X2gKKworI2luY2x1ZGUgIkhUTUxFbGVt
ZW50LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBDb250ZW50U2VsZWN0b3JRdWVyeTsKK2NsYXNzIFNoYWRvd0luY2x1c2lvbkxpc3Q7
CisKKy8vIE5PVEU6IEN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9lc24ndCBzdXBwb3J0IGR5bmFt
aWMgaW5zZXJ0aW9uL2RlbGV0aW9uIG9mIEhUTUxDb250ZW50RWxlbWVudC4KKy8vIFlvdSBzaG91
bGQgY3JlYXRlIEhUTUxDb250ZW50RWxlbWVudCBkdXJpbmcgdGhlIGhvc3QgY29uc3RydWN0aW9u
LgorY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCopOworCisgICAgdmlydHVhbCB+SFRNTENvbnRlbnRFbGVtZW50KCk7CisgICAgdmlydHVh
bCB2b2lkIGF0dGFjaCgpOworICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKKworICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgc2VsZWN0KCkgY29uc3Q7CisKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5
IHRoaXMgY29uc3RydWN0b3IgYWNjZXB0cyB3aWRlciBxdWVyeSB0aGFuIHNoYWRvdyBkb20gc3Bl
Yy4KKyAgICAvLyBGb3IgZXhhbXBsZSwgYSBzZWxlY3RvciBxdWVyeSBzaG91bGQgbm90IGluY2x1
ZGUgY29udGV4dHVhbCBzZWxlY3RvcnMuCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NTk0NgorICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgd2UgZG9u
J3Qgc3VwcG9ydCBzZXR0aW5nIHNlbGVjdCB2YWx1ZSBkeW5hbWljYWxseS4KKyAgICAvLyBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjYxCisgICAgdm9pZCBz
ZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJik7CisKKyAgICBjb25zdCBTaGFkb3dJbmNsdXNp
b25MaXN0KiBpbmNsdXNpb25zKCkgY29uc3QgeyByZXR1cm4gbV9pbmNsdXNpb25zLmdldCgpOyB9
CisKK3Byb3RlY3RlZDoKKyAgICBIVE1MQ29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBib29sIGlzQ29udGVudEVs
ZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJl
bmRlclN0eWxlKikgeyByZXR1cm4gMDsgfQorCisgICAgT3duUHRyPFNoYWRvd0luY2x1c2lvbkxp
c3Q+IG1faW5jbHVzaW9uczsKK307CisKK2lubGluZSBIVE1MQ29udGVudEVsZW1lbnQqIHRvSFRN
TENvbnRlbnRFbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKCFub2RlIHx8IG5vZGUt
PmlzQ29udGVudEVsZW1lbnQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxDb250ZW50
RWxlbWVudCo+KG5vZGUpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4IGFhYTA1ZTE0NTc0ZDQwNzlmY2UwOGUxNTY2Y2Uw
YmJkZDY0ZjczNjUuLmRkZWM3Mzg3NjY0ODAwM2UyZjkxYzc3MGQxYTgxNTIwMjMyYjdmNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTIzLDEyICsy
MywxMiBAQAogCiAjaWYgRU5BQkxFKERFVEFJTFMpCiAKKyNpbmNsdWRlICJIVE1MQ29udGVudEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MU3VtbWFyeUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTW91c2VF
dmVudC5oIgogI2luY2x1ZGUgIlJlbmRlckRldGFpbHMuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250
ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUZXh0Lmgi
CiAKQEAgLTQyLDEzICs0MiwxMyBAQCBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdW1tYXJ5
UXVlcnlTZWxlY3RvcigpCiAgICAgcmV0dXJuIHNlbGVjdG9yOwogfTsKIAotY2xhc3MgRGV0YWls
c0NvbnRlbnRFbGVtZW50IDogcHVibGljIFNoYWRvd0NvbnRlbnRFbGVtZW50IHsKK2NsYXNzIERl
dGFpbHNDb250ZW50RWxlbWVudCA6IHB1YmxpYyBIVE1MQ29udGVudEVsZW1lbnQgewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERldGFpbHNDb250ZW50RWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50Kik7CiAKIHByaXZhdGU6CiAgICAgRGV0YWlsc0NvbnRlbnRFbGVtZW50KERvY3VtZW50
KiBkb2N1bWVudCkKLSAgICAgICAgOiBTaGFkb3dDb250ZW50RWxlbWVudChIVE1MTmFtZXM6OmRp
dlRhZywgZG9jdW1lbnQpCisgICAgICAgIDogSFRNTENvbnRlbnRFbGVtZW50KEhUTUxOYW1lczo6
ZGl2VGFnLCBkb2N1bWVudCkKICAgICB7CiAgICAgfQogfTsKQEAgLTU4LDEzICs1OCwxMyBAQCBQ
YXNzUmVmUHRyPERldGFpbHNDb250ZW50RWxlbWVudD4gRGV0YWlsc0NvbnRlbnRFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGV0YWlsc0Nv
bnRlbnRFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKLWNsYXNzIERldGFpbHNTdW1tYXJ5RWxlbWVu
dCA6IHB1YmxpYyBTaGFkb3dDb250ZW50RWxlbWVudCB7CitjbGFzcyBEZXRhaWxzU3VtbWFyeUVs
ZW1lbnQgOiBwdWJsaWMgSFRNTENvbnRlbnRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCiBw
cml2YXRlOgogICAgIERldGFpbHNTdW1tYXJ5RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCi0g
ICAgICAgIDogU2hhZG93Q29udGVudEVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50
KQorICAgICAgICA6IEhUTUxDb250ZW50RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1l
bnQpCiAgICAgewogICAgICAgICBzZXRTZWxlY3Qoc3VtbWFyeVF1ZXJ5U2VsZWN0b3IoKSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9u
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAppbmRl
eCBiNjI0ZTYyN2JhMTdjMTkyNzU1Nzc0MjZlNDZmYjNmYjYxMTM5ZGNiLi4yNzRhMTg2ZjE2MTg5
ZmE0MWVlYTAzNjU2MTYzOTJlMDIxMTBiOTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50c0FsbEluT25lLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkhUTUxC
b2R5RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIgogI2luY2x1
ZGUgIkhUTUxDYW52YXNFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQu
Y3BwIgogI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxE
ZXRhaWxzRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTERMaXN0RWxlbWVudC5jcHAiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggZWNmMTA4NWNlMzBm
ZTBmM2I5M2UxY2RlMjVlYjU0NGZhN2RiNGY0Yi4uOTkyNTYyN2ZlNWNlM2FhNGE5OWIyMzMwMTUy
ODBjMGM3NDM2ODUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmNwcApAQCAtMjQsMTIgKzI0LDEyIEBACiAjaWYgRU5BQkxFKERFVEFJTFMpCiAKICNpbmNsdWRl
ICJEZXRhaWxzTWFya2VyQ29udHJvbC5oIgorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxEZXRhaWxzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQu
aCIKICNpbmNsdWRlICJSZW5kZXJTdW1tYXJ5LmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVs
ZW1lbnQuaCIKIAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKIApAQCAtMzcsMTMgKzM3LDEzIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotY2xh
c3MgU3VtbWFyeUNvbnRlbnRFbGVtZW50IDogcHVibGljIFNoYWRvd0NvbnRlbnRFbGVtZW50IHsK
K2NsYXNzIFN1bW1hcnlDb250ZW50RWxlbWVudCA6IHB1YmxpYyBIVE1MQ29udGVudEVsZW1lbnQg
ewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN1bW1hcnlDb250ZW50RWxlbWVudD4g
Y3JlYXRlKERvY3VtZW50Kik7CiAKIHByaXZhdGU6CiAgICAgU3VtbWFyeUNvbnRlbnRFbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICAgICAgOiBTaGFkb3dDb250ZW50RWxlbWVudChIVE1M
TmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCisgICAgICAgIDogSFRNTENvbnRlbnRFbGVtZW50KEhU
TUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKICAgICB7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3ODNjMzgwNTY5M2FlYzYzZDRkOTg1YmQ3OGMzODRm
ZDQ0ODRjNGVjLi4yNDg5NjdiMzNhZjlmZTlhOGU2MmJmN2VmZmNhMzExMzRjNDU2ZDljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxUZXh0
QXJlYUVsZW1lbnQuaCIKQEAgLTQ2LDcgKzQ3LDYgQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
LSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKICNpbmNsdWRlICJTcGVsbENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIK
QEAgLTEyNiwxNCArMTI2LDE0IEBAIGJvb2wgSW50ZXJuYWxzOjppc1ByZWxvYWRlZChEb2N1bWVu
dCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdXJsKQogICAgIHJldHVybiBkb2N1bWVudC0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKS0+aXNQcmVsb2FkZWQodXJsKTsKIH0KIAotUGFzc1JlZlB0cjxF
bGVtZW50PiBJbnRlcm5hbHM6OmNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KERvY3VtZW50KiBk
b2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPEVsZW1lbnQ+IEludGVybmFs
czo6Y3JlYXRlQ29udGVudEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBpZiAoIWRvY3VtZW50KSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NF
U1NfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1cm4gU2hhZG93Q29u
dGVudEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgcmV0dXJuIEhUTUxDb250ZW50RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIH0KIAogRWxlbWVudCogSW50ZXJuYWxzOjpnZXRFbGVt
ZW50QnlJZEluU2hhZG93Um9vdChOb2RlKiBzaGFkb3dSb290LCBjb25zdCBTdHJpbmcmIGlkLCBF
eGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGVkNDcz
NzA1NWI5OTM4M2RhOWIyODAyMWFmM2Y2OTU5YzYxZDM1ZjcuLjg5OWQ3ZGJiMTYxZjMxMmY1NjU0
ZWUyY2RhNzRjOWQ3ZDQxODkwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAt
NTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVTaGFkb3dSb290KEVsZW1lbnQq
IGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBFbGVtZW50KiBpbmNsdWRlckZvcihOb2RlKiwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIFN0cmluZyBzaGFkb3dQc2V1ZG9JZChFbGVtZW50KiwgRXhj
ZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlU2hhZG93Q29udGVu
dEVsZW1lbnQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxFbGVt
ZW50PiBjcmVhdGVDb250ZW50RWxlbWVudChEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBFbGVtZW50KiBnZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChOb2RlKiBzaGFkb3dSb290LCBj
b25zdCBTdHJpbmcmIGlkLCBFeGNlcHRpb25Db2RlJik7CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09M
T1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZjU2ZDFhZjc0YThlMzVk
ZDQ3YmQ0ZTZjNDlmMTI1ZTdlYWFjM2E1NS4uOGYxNmIzMmM4NTZhYzJmMWY2Zjg1ODZjOTQxYmI1
M2Q3Yjc2MjRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMzUsNyAr
MzUsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgRWxlbWVudCBpbmNsdWRlckZvcihpbiBO
b2RlIG5vZGUpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCByZW1vdmVTaGFk
b3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBE
T01TdHJpbmcgc2hhZG93UHNldWRvSWQoaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIEVsZW1lbnQgY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoaW4g
RG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBFbGVtZW50
IGNyZWF0ZUNvbnRlbnRFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChpbiBO
b2RlIHNoYWRvd1Jvb3QsIGluIERPTVN0cmluZyBpZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAK
ICNpZiBkZWZpbmVkKEVOQUJMRV9JTlBVVF9DT0xPUikgJiYgRU5BQkxFX0lOUFVUX0NPTE9SCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggMWFhODQ4MTY3YmVkYzg1NjQ4ZWM0ZjRhN2U3ZmJhMWI0
MjI4MmNmYi4uMTJlZTQ5NTlkMWY1ZTk1MWQ4NzVhYWYzOWY3MmQxN2I0ZmViYmI0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyLmRlZgpAQCAtMTUwLDcgKzE1MCw2IEBAIEVYUE9SVFMKICAgICAgICAgP2Fk
ZFNsb3dDYXNlQEF0b21pY1N0cmluZ0BXVEZAQENBP0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBs
QFdURkBAQDJAUEFWU3RyaW5nSW1wbEAyQEBaCiAgICAgICAgID9jYWNoZURPTVN0cnVjdHVyZUBX
ZWJDb3JlQEBZQVBBVlN0cnVjdHVyZUBKU0NAQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWMjNA
UEJVQ2xhc3NJbmZvQDNAQFoKICAgICAgICAgP2NyZWF0ZUBSYW5nZUBXZWJDb3JlQEBTQT9BVj8k
UGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29yZUBAQFdURkBAVj8kUGFzc1JlZlB0ckBWRG9jdW1lbnRA
V2ViQ29yZUBAQDRAVj8kUGFzc1JlZlB0ckBWTm9kZUBXZWJDb3JlQEBANEBIMUhAWgotICAgICAg
ICA/Y3JlYXRlQFNoYWRvd0NvbnRlbnRFbGVtZW50QFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRy
QFZTaGFkb3dDb250ZW50RWxlbWVudEBXZWJDb3JlQEBAV1RGQEBQQVZEb2N1bWVudEAyQEBaCiAg
ICAgICAgID9jcmVhdGVXcmFwcGVyQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNT
dGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9kZUAxQEBaCiAgICAgICAgID9lbnN1
cmVTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFUEFWU2hhZG93Um9vdEAyQFhaCiAgICAg
ICAgID9lcXVhbEBXVEZAQFlBX05QQlZTdHJpbmdJbXBsQDFAUEJFQFoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCA2YjY0NDhkYjE2MWFlYjY3MTg5MDZkNjJmNzcwYjlhN2U0
YThlYzBkLi5hOTViNWZlMDM2NmUxZmM3MjRlM2U4M2EwYWJiMjRhOTMzNzk0YWNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNDMsNyArMTQzLDYgQEAgRVhQT1JUUwog
ICAgICAgICA/YWRkU2xvd0Nhc2VAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NSZWZQdHJA
VlN0cmluZ0ltcGxAV1RGQEBAMkBQQVZTdHJpbmdJbXBsQDJAQFoKICAgICAgICAgP2NhY2hlRE9N
U3RydWN0dXJlQFdlYkNvcmVAQFlBUEFWU3RydWN0dXJlQEpTQ0BAUEFWSlNET01HbG9iYWxPYmpl
Y3RAMUBQQVYyM0BQQlVDbGFzc0luZm9AM0BAWgogICAgICAgICA/Y3JlYXRlQFJhbmdlQFdlYkNv
cmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBWPyRQYXNzUmVmUHRy
QFZEb2N1bWVudEBXZWJDb3JlQEBANEBWPyRQYXNzUmVmUHRyQFZOb2RlQFdlYkNvcmVAQEA0QEgx
SEBaCi0gICAgICAgID9jcmVhdGVAU2hhZG93Q29udGVudEVsZW1lbnRAV2ViQ29yZUBAU0E/QVY/
JFBhc3NSZWZQdHJAVlNoYWRvd0NvbnRlbnRFbGVtZW50QFdlYkNvcmVAQEBXVEZAQFBBVkRvY3Vt
ZW50QDJAQFoKICAgICAgICAgP2NyZWF0ZVdyYXBwZXJAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpT
Q0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZOb2RlQDFAQFoKICAg
ICAgICAgP2Vuc3VyZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQUVQQVZTaGFkb3dSb290
QDJAWFoKICAgICAgICAgP2VxdWFsQFdURkBAWUFfTlBCVlN0cmluZ0ltcGxAMUBQQkVAWgpkaWZm
IC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXIKaW5kZXggMTViNjk1N2E5ZTI0MjMxOTBiYWMxZGQyMWNmYjE2NzNm
ZDczMThkYS4uMzM5M2FhYTA3MjJkOTI4NDFhOGZiNTBjYmJhZjk3OTI4OTEyOTUwYiAxMDA2NDQK
LS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rv
b2xzL3N5bWJvbHMuZmlsdGVyCkBAIC01Myw3ICs1Myw2IEBAIF9aTjdXZWJDb3JlMTdjYWNoZURP
TVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTjNKU0M5U3RydWN0dXJlRVBLTlMy
XzlDCiBfWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjM5c2V0UmVzb3VyY2VzRGF0YVNp
emVMaW1pdHNGcm9tSW50ZXJuYWxzRWlpOwogX1pON1dlYkNvcmUyME5vZGVSZW5kZXJpbmdDb250
ZXh0QzFFUE5TXzROb2RlRTsKIF9aTjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29udGV4dEQxRXY7
Ci1fWk43V2ViQ29yZTIwU2hhZG93Q29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRF
OwogX1pON1dlYkNvcmUyMWdldENhY2hlZERPTVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9i
amVjdEVQS04zSlNDOUNsYXNzSW5mb0U7CiBfWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbkVQTlNfN0VsZW1lbnRFajsKIF9aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIxMG1hcmtlcnNGb3JFUE5TXzROb2RlRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVz
RTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBlYzIzZjM4MjM2NmMwMDcxYWNhNTFhY2E5ZTgyMjI1MjYwZjNhOGUyLi44MmZk
MTQ1MjVhNTkzYTI2MTE4MzUzZDI0ZTc5NDVjZGVjNTI1ODlmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMDEtMTYgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBNb3ZlIFNoYWRvd0NvbnRlbnRFbGVtZW50IGZyb20gZG9tLyB0byBodG1sLworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNDEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3No
YWRvdy9jb250ZW50LWVsZW1lbnQtaW5jbHVkZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9z
aGFkb3cvY29udGVudC1lbGVtZW50LXJlbmRlcmVycy5odG1sOgorICAgICAgICAqIGZhc3QvZG9t
L3NoYWRvdy9jcmVhdGUtY29udGVudC1lbGVtZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxlY3QuaHRtbDoKKwogMjAxMi0wMS0xNiAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBzaG91bGQgYmUgYWJsZSB0
byBkbyBKUyBhbmQgY3VzdG9tIGdldHRlciBjYWNoaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVyLmh0bWwKaW5kZXgg
ZjE5YmQxNzY4OTk4ODFlMmJkYjljZmRhMTRkNzgwMDMzNzI1ZmYxMy4uZmI2YTViMTMxZGRhNjYy
ZWY1MGQyN2MyMmI1OTc0MzU1OGM4Y2E3NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbmNsdWRlci5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW5jbHVkZXIuaHRtbApAQCAtMzMsNyAr
MzMsNyBAQCBzaG91bGRCZSgiaW50ZXJuYWxzLmluY2x1ZGVyRm9yKGNoaWxkT2ZFbGVtZW50V2l0
aFNoYWRvdykiLCAibnVsbCIpOwogdmFyIGVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogY29udGFpbmVyLmFwcGVuZENoaWxkKGVsZW1lbnRX
aXRoU2hhZG93Q29udGVudCk7CiB2YXIgc2hhZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3dDb250
ZW50ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QoZWxlbWVudFdpdGhTaGFkb3dDb250ZW50
KTsKLXZhciBzaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBpbnRlcm5h
bHMuY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpOwordmFyIHNoYWRvd0NvbnRl
bnRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxl
bWVudChkb2N1bWVudCk7CiBzaGFkb3dSb290T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQuYXBw
ZW5kQ2hpbGQoc2hhZG93Q29udGVudE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKIHZhciBj
aGlsZE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c3BhbiIpOwogZWxlbWVudFdpdGhTaGFkb3dDb250ZW50LmFwcGVuZENoaWxkKGNoaWxkT2ZFbGVt
ZW50V2l0aFNoYWRvd0NvbnRlbnQpOwpAQCAtNTgsNyArNTgsNyBAQCBlbGVtZW50V2l0aFNoYWRv
dy5yZW1vdmVDaGlsZChtb3ZpbmdDaGlsZCk7CiB2YXIgYW5vdGhlckVsZW1lbnRXaXRoU2hhZG93
Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogY29udGFpbmVyLmFwcGVu
ZENoaWxkKGFub3RoZXJFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQpOwogdmFyIGFub3RoZXJTaGFk
b3dSb290T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93
Um9vdChhbm90aGVyRWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKLXZhciBhbm90aGVyU2hhZG93
Q29udGVudE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZVNoYWRv
d0NvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKK3ZhciBhbm90aGVyU2hhZG93Q29udGVudE9mRWxl
bWVudFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KGRv
Y3VtZW50KTsKIGFub3RoZXJTaGFkb3dSb290T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQuYXBw
ZW5kQ2hpbGQoYW5vdGhlclNoYWRvd0NvbnRlbnRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7
CiAKIGFub3RoZXJFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQuYXBwZW5kQ2hpbGQobW92aW5nQ2hp
bGQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1yZW5kZXJlcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50
LWVsZW1lbnQtcmVuZGVyZXJzLmh0bWwKaW5kZXggOTE1MTliOGJjOWVkOThlNTM0YmYzN2UxNDVk
YTEzMTU0YjViYzhiOC4uOTc3Yjg5Y2MwMTk0ZDFlNWQzMjJiN2JhYmM5ZjE1NTY1NDkyOTgzMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1y
ZW5kZXJlcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1l
bGVtZW50LXJlbmRlcmVycy5odG1sCkBAIC02Miw3ICs2Miw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVRy
ZWVGcm9tKGh0bWwpCiAgICAgdmFyIGNvbnRlbnRQbGFjZWhvbGRlciA9IHJvb3QuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoIkNPTlRFTlQiKVswXTsKICAgICBpZiAoY29udGVudFBsYWNlaG9sZGVyKSB7
CiAgICAgICAgIHZhciBjb250ZW50UGFyZW50ID0gY29udGVudFBsYWNlaG9sZGVyLnBhcmVudE5v
ZGU7Ci0gICAgICAgIGNvbnRlbnRQYXJlbnQucmVwbGFjZUNoaWxkKHdpbmRvdy5pbnRlcm5hbHMu
Y3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpLCBjb250ZW50UGxhY2Vob2xkZXIp
OworICAgICAgICBjb250ZW50UGFyZW50LnJlcGxhY2VDaGlsZCh3aW5kb3cuaW50ZXJuYWxzLmNy
ZWF0ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KSwgY29udGVudFBsYWNlaG9sZGVyKTsKICAgICB9
OwogCiAgICAgcmV0dXJuIHJvb3Q7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvY3JlYXRlLWNvbnRlbnQtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NyZWF0ZS1jb250ZW50LWVsZW1lbnQuaHRtbAppbmRleCBiZGI2MDAxNmYwZGEyNDA0
ZjVkYTFjODc4Y2YxODlkODkxMmI3OGNkLi44MzIxMjMxYmMzNTE5YmMyNGU1OGZhYWIyMDMxYjFm
ZmQ2MGEyMzE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3JlYXRl
LWNvbnRlbnQtZWxlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9j
cmVhdGUtY29udGVudC1lbGVtZW50Lmh0bWwKQEAgLTI5LDcgKzI5LDcgQEAgZnVuY3Rpb24gc2V0
dXBUYXJnZXRUcmVlKCkKICAgICB2YXIgY2hpbGQwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c3BhbiIpOwogICAgIGNoaWxkMC5pbm5lckhUTUwgPSAiSGVsbG8sIjsKICAgICByb290LmFwcGVu
ZENoaWxkKGNoaWxkMCk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZCh3aW5kb3cuaW50ZXJuYWxzLmNy
ZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGRvY3VtZW50KSk7CisgICAgcm9vdC5hcHBlbmRDaGls
ZCh3aW5kb3cuaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KSk7CiAgICAg
dmFyIGNoaWxkMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICBjaGlsZDEu
aW5uZXJIVE1MID0gIldvcmxkLiI7CiAgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDEpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxl
Y3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2Vs
ZWN0Lmh0bWwKaW5kZXggM2Q4MWQ0NTZjYWU0NThmZTU4ZDllYjkyMTUzNTA5OWNlYzE0NTRhMi4u
MmVmYjkzNjUyZDA3OGM2N2Q1OGUzNjkyZDBhZmY4ZTlkYTI5Y2JiYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxlY3QuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNlbGVjdC5odG1s
CkBAIC0xNSw3ICsxNSw3IEBAIGZ1bmN0aW9uIGFwcGVuZFNoYWRvdyh0YXJnZXQsIHNlbGVjdCkg
ewogICAgIGNoaWxkMC5pbm5lckhUTUwgPSAiSGVsbG8sIjsKICAgICByb290LmFwcGVuZENoaWxk
KGNoaWxkMCk7CiAKLSAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVTaGFkb3dDb250
ZW50RWxlbWVudChkb2N1bWVudCk7CisgICAgdmFyIGNvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRl
Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpOwogICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxl
Y3QnLCBzZWxlY3QpOwogICAgIHJvb3QuYXBwZW5kQ2hpbGQoY29udGVudCk7CiAKZGlmZiAtLWdp
dCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA3NmM5NTViZWRjOWQ1M2E5OWZlZWM4ODIx
NmEyZDU1ZTFiOTkyMzM5Li42OGQ3ZmNkYzUyMzliYTMzMGFhN2U0ZTM2ZjI3YmI0ZDc2NzM1YzI2
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTItMDEtMTYgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBNb3ZlIFNoYWRvd0NvbnRlbnRFbGVtZW50IGZyb20gZG9tLyB0byBodG1sLworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNDEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTItMDEtMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVwZGF0ZSBORVdTIGFuZCBjb25m
aWd1cmUuYWMgZm9yIDEuNy40IHJlbGVhc2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122720</attachid>
            <date>2012-01-16 23:50:53 -0800</date>
            <delta_ts>2012-01-17 00:33:13 -0800</delta_ts>
            <desc>Build Test</desc>
            <filename>bug-76241-20120117165051.patch</filename>
            <type>text/plain</type>
            <size>105688</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU1MmYzYzQ5YzE1MWI5
M2Q3ODRiNzgwNGVhZTJiMjg5ZDgwZmRiZS4uMTYxNDdiNTc0ZGI4ZTM5ZTEyYzI0YzFjYjQ4MWZi
YjRiZmJjMjA0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEyLTAxLTE2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dD
b250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuZXh0UmVuZGVyZXJPZik6Cisg
ICAgICAgIChXZWJDb3JlOjpwcmV2aW91c1JlbmRlcmVyT2YpOgorICAgICAgICAoV2ViQ29yZTo6
Zmlyc3RSZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RSZW5kZXJlck9mKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIpOgor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OmluY2x1ZGVyKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9v
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbmNsdWRlckZvcik6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbmNsdXNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3Q6OmVuc3VyZUluY2x1c2lvbnMpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290
Lmg6CisgICAgICAgICogaHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0luY2x1c2lvbjo6dW5saW5rKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvbkxpc3Q6OlNoYWRvd0luY2x1c2lvbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uTGlzdDo6flNoYWRvd0luY2x1c2lvbkxpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6ZmluZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJ
bmNsdXNpb25MaXN0OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25M
aXN0OjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9y
OjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudElu
Y2x1c2lvblNlbGVjdG9yOjp+Q29udGVudEluY2x1c2lvblNlbGVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6dW5zZWxlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9yOjpmaW5kRm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6ZGlkU2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6d2lsbFNlbGVjdE92ZXIpOgorICAgICAgICAqIGh0
bWwvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0luY2x1c2lvbjo6aW5jbHVkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9u
Ojpjb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6bmV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb246OnByZXZpb3VzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6U2hhZG93SW5jbHVzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0luY2x1c2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvbkxpc3Q6OmZpcnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbkxp
c3Q6Omxhc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6aXNFbXB0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OmFkZCk6CisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFkb3dJbmNsdXNpb25TZXQ6OmlzRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
SW5jbHVzaW9uU2V0OjpUcmFuc2xhdG9yOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0luY2x1c2lvblNldDo6VHJhbnNsYXRvcjo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uU2V0OjpIYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvblNldDo6SGFzaDo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVz
aW9uU2V0OjpmaW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rv
cjo6aGFzQ2FuZGlkYXRlcyk6CisgICAgICAgICogaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9y
UXVlcnkuY3BwLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRl
bnRTZWxlY3RvclF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5
OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaC4K
KyAgICAgICAgKiBodG1sL0hUTUxDb250ZW50RWxlbWVudC5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnRlbnRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENv
bnRlbnRFbGVtZW50OjpIVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENvbnRlbnRFbGVtZW50Ojp+SFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250
ZW50RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVu
dDo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6c2V0U2Vs
ZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxDb250ZW50RWxlbWVudC5oOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmguCisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmluY2x1c2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnRlbnRFbGVtZW50Ojppc0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ29udGVudEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OnRvSFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzQ29udGVudEVsZW1lbnQ6OkRldGFpbHND
b250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6
OkRldGFpbHNTdW1tYXJ5RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VtbWFyeUNvbnRlbnRFbGVtZW50OjpTdW1tYXJ5
Q29udGVudEVsZW1lbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6Y3JlYXRlQ29udGVudEVsZW1lbnQpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CiAyMDEyLTAxLTE2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTjogcjEwMjU1MyBBdXRvY29ycmVjdGlvbiBidWJibGUgZG9lc24ndCBzaG93
IHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNzQzYjkzYTgxNWE2NWY2NTc3YmFiMjZlZWIzMThkZDMzODE5OWJi
MC4uMDg2MDgzMGNlYjBiMzM4ODk2ODY1ZTA3NmQxNDI1OWViMjk5NmUwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTE2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdv
b2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8g
dG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAy
MDEyLTAxLTE2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwNzAyNzU4PiBSRUdSRVNTSU9OOiBFdmVyeSBTYWZhcmkgUmVhZGVyIFdL
VmlldyBsZWFrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkNjE2NWNmMWMzY2EyNmNjMzFiMTNj
MTM5NDNhODBiYzE5OTk0YzNiLi5iM2JiNGZmMWY3OWE0ZDBmYmI4NGU2YTNjOWUzYjVlMDJjMTJi
NTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTkzLDkgKzU5Myw2IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBkb20vU2NyaXB0UnVubmVyLmNwcAogICAgIGRvbS9TZWN1cml0eUNvbnRl
eHQuY3BwCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwCi0gICAgZG9tL1NoYWRvd0NvbnRlbnRF
bGVtZW50LmNwcAotICAgIGRvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAKLSAgICBk
b20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgZG9tL1NoYWRvd1Jvb3QuY3BwCiAg
ICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCiAgICAgZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlz
dC5jcHAKQEAgLTcwNiw2ICs3MDMsOCBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9D
aGVja2JveElucHV0VHlwZS5jcHAKICAgICBodG1sL0NsYXNzTGlzdC5jcHAKICAgICBodG1sL0Nv
bG9ySW5wdXRUeXBlLmNwcAorICAgIGh0bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCisgICAg
aHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgaHRtbC9ET01Gb3JtRGF0YS5j
cHAKICAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcAogICAgIGh0bWwvRE9NVG9rZW5M
aXN0LmNwcApAQCAtNzI5LDYgKzcyOCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1s
L0hUTUxCdXR0b25FbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCiAg
ICAgaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKKyAgICBodG1sL0hUTUxDb250ZW50RWxlbWVudC5j
cHAKICAgICBodG1sL0hUTUxETGlzdEVsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MRGF0YUxpc3RF
bGVtZW50LmNwcAogICAgIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggY2U2N2Y1MWRjNDkwNjBiOTJjYzQ0NGY3MjY4MTZjYzQzMDE2
YTMxZC4uYWNjMmZmNDhlZmY0NDQ0ZWJlYzE1YmVlYTYwMmE4Mjg0NDc5ODMwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNjQzLDEyICsxNjQzLDYgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Nl
bGVjdG9yUXVlcnkuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50
LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmggXAotCVNv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgXAotCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIFwKLQlTb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXApAQCAtMTk1NCw2ICsxOTQ4LDEwIEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlw
ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0Nv
bnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVu
dEluY2x1c2lvblNlbGVjdG9yLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudFNlbGVj
dG9yUXVlcnkuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lSW5wdXRUeXBlLmNwcCBcCkBAIC0xOTk4LDYgKzE5OTYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENvbGxlY3Rpb24uaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29udGVudEVsZW1l
bnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb250ZW50RWxlbWVudC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGFhNjAyN2ZiYmJjYWMyOWU3
OTNmMjAxZWRjMjQ3OTQwZWY3NjRhZmIuLjJlNjE5Y2Q5ZmUwMzc5ODMxMTNlYzZjYTA3ODE2NThm
NTQwZDc2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTU5LDkgKzU1OSw2IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vU2VjdXJpdHlDb250ZXh0LmNwcCBc
CiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwIFwKLSAgICBkb20vU2hhZG93Q29udGVudEVsZW1l
bnQuY3BwIFwKLSAgICBkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKLSAgICBk
b20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKICAgICBkb20vU2hhZG93Um9vdC5jcHAg
XAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0
LmNwcCBcCkBAIC02OTEsNiArNjg4LDggQEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9DaGVja2Jv
eElucHV0VHlwZS5jcHAgXAogICAgIGh0bWwvQ2xhc3NMaXN0LmNwcCBcCiAgICAgaHRtbC9Db2xv
cklucHV0VHlwZS5jcHAgXAorICAgIGh0bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKKyAg
ICBodG1sL0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgXAogICAgIGh0bWwvRE9NRm9ybURh
dGEuY3BwIFwKICAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCiAgICAgaHRtbC9E
T01Ub2tlbkxpc3QuY3BwIFwKQEAgLTcxNCw2ICs3MTMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBo
dG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAgXAogICAgIGh0bWwvSFRNTENvbGxlY3Rpb24uY3BwIFwKKyAgICBodG1sL0hUTUxDb250ZW50
RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTERMaXN0RWxlbWVudC5jcHAgXAogICAgIGh0bWwv
SFRNTERhdGFMaXN0RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQu
Y3BwIFwKQEAgLTE2NjAsOSArMTY2MCw2IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9TY3JpcHRF
bGVtZW50LmggXAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggXAogICAgIGRvbS9T
ZWxlY3RvclF1ZXJ5LmggXAotICAgIGRvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oIFwKLSAgICBk
b20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCBcCi0gICAgZG9tL1NoYWRvd0luY2x1c2lv
blNlbGVjdG9yLmggXAogICAgIGRvbS9TaGFkb3dSb290LmggXAogICAgIGRvbS9TcGFjZVNwbGl0
U3RyaW5nLmggXAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5oIFwKQEAgLTE3NzIsNiArMTc2OSw4
IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oIFwKICAgICBodG1sL2NhbnZhcy9E
YXRhVmlldy5oIFwKKyAgICBodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggXAorICAgIGh0bWwv
Q29udGVudEluY2x1c2lvblNlbGVjdG9yLmggXAogICAgIGh0bWwvQ2xhc3NMaXN0LmggXAogICAg
IGh0bWwvRE9NRm9ybURhdGEuaCBcCiAgICAgaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oIFwK
QEAgLTE3OTIsNiArMTc5MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvSFRNTEJ1dHRvbkVs
ZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxD
b2xsZWN0aW9uLmggXAorICAgIGh0bWwvSFRNTENvbnRlbnRFbGVtZW50LmggXAogICAgIGh0bWwv
SFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBc
CiAgICAgaHRtbC9IVE1MRGl2RWxlbWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggM2E1
YjI5YmFkMWY0ZWZlYTNiZGI5YTQzMTk2NGQ4MjMxNjgxOWUxZS4uNDJlOGM3NTA1NTk5ZmEzM2Q5
ODdhYjMxMzAwZmRlMGI0ZGMwMWQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTU0Niw2ICs1
NDYsNyBAQCBfX1pON1dlYkNvcmUxN1JlZ3VsYXJFeHByZXNzaW9uQzFFUktOM1dURjZTdHJpbmdF
TlMxXzE5VGV4dENhc2VTZW5zaXRpdml0eUUKIF9fWk43V2ViQ29yZTE3UmVndWxhckV4cHJlc3Np
b25EMUV2CiBfX1pON1dlYkNvcmUxN2NhY2hlRE9NU3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFs
T2JqZWN0RVBOM0pTQzlTdHJ1Y3R1cmVFUEtOUzJfOUNsYXNzSW5mb0UKIF9fWk43V2ViQ29yZTE3
b3BlblRlbXBvcmFyeUZpbGVFUktOM1dURjZTdHJpbmdFUmkKK19fWk43V2ViQ29yZTE4SFRNTENv
bnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlMThQbGF0Zm9y
bVN0cmF0ZWdpZXMyNmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5RXYKIF9fWk43V2ViQ29yZTE4
U2VhcmNoUG9wdXBNZW51TWFjQzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19aTjdXZWJDb3Jl
MThpc1N0YXJ0T2ZQYXJhZ3JhcGhFUktOU18xNVZpc2libGVQb3NpdGlvbkVOU18yN0VkaXRpbmdC
b3VuZGFyeUNyb3NzaW5nUnVsZUUKQEAgLTYwMyw3ICs2MDQsNiBAQCBfX1pON1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlMjBzZXRTdWdnZXN0ZWRGaWxlbmFtZUVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyNHNldEV4cGVjdGVkQ29udGVudExl
bmd0aEV4CiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlNnNldFVSTEVSS05TXzRL
VVJMRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZUMyRXYKLV9fWk43V2ViQ29y
ZTIwU2hhZG93Q29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFCiBfX1pON1dlYkNv
cmUyMFVzZXJHZXN0dXJlSW5kaWNhdG9yN3Nfc3RhdGVFCiBfX1pON1dlYkNvcmUyMFVzZXJHZXN0
dXJlSW5kaWNhdG9yQzFFTlNfMjZQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZUUKIF9fWk43V2Vi
Q29yZTIwVXNlckdlc3R1cmVJbmRpY2F0b3JEMUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDhhNTIz
ZmE1N2E0NDcxNDNhNmM5ZWVhMjUxNTQ4YTI0YWU1MThiMi4uNWZkN2Y3M2UyYjg3ODQxZDE5OWQ3
Njk0MmY2MzA0OTY2MGU4NjM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTA0Niw4ICsxMDQ2LDYg
QEAKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKICAgICAgICAg
ICAgICdkb20vU2NyaXB0UnVubmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290Lmgn
LAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oJywKLSAgICAgICAgICAg
ICdkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCcsCiAgICAgICAgICAgICAnZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuaCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlZEVsZW1lbnQuaCcsCiAg
ICAgICAgICAgICAnZG9tL1RleHQuaCcsCkBAIC0xMDYwLDYgKzEwNTgsNyBAQAogICAgICAgICBd
LAogICAgICAgICAnd2ViY29yZV9odG1sX3ByaXZhdGVoZWFkZXJfZmlsZXMnOiBbCiAgICAgICAg
ICAgICAnaHRtbC9Db2xsZWN0aW9uVHlwZS5oJywKKyAgICAgICAgICAgICdodG1sL0NvbnRlbnRT
ZWxlY3RvclF1ZXJ5LmgnLAogICAgICAgICAgICAgJ2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50
LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaCcsCiAgICAgICAgICAg
ICAnaHRtbC9IVE1MQ29sbGVjdGlvbi5oJywKQEAgLTU0NjMsMTIgKzU0NjIsNiBAQAogICAgICAg
ICAgICAgJ2RvbS9TZWN1cml0eUNvbnRleHQuaCcsCiAgICAgICAgICAgICAnZG9tL1NlbGVjdG9y
UXVlcnkuY3BwJywKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JRdWVyeS5oJywKLSAgICAgICAg
ICAgICdkb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwJywKLSAgICAgICAgICAgICdkb20vU2hh
ZG93Q29udGVudEVsZW1lbnQuaCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1
ZXJ5LmgnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAnLAot
ICAgICAgICAgICAgJ2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oJywKICAgICAgICAgICAg
ICdkb20vU2hhZG93Um9vdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAog
ICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCcsCkBAIC01NTQxLDYgKzU1MzQs
MTAgQEAKICAgICAgICAgICAgICdodG1sL0NsYXNzTGlzdC5oJywKICAgICAgICAgICAgICdodG1s
L0NvbG9ySW5wdXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9Db2xvcklucHV0VHlwZS5o
JywKKyAgICAgICAgICAgICdodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCcsCisgICAgICAg
ICAgICAnaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5oJywKKyAgICAgICAgICAgICdodG1sL0Nv
bnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvQ29udGVudElu
Y2x1c2lvblNlbGVjdG9yLmgnLAogICAgICAgICAgICAgJ2h0bWwvRE9NRm9ybURhdGEuY3BwJywK
ICAgICAgICAgICAgICdodG1sL0RPTUZvcm1EYXRhLmgnLAogICAgICAgICAgICAgJ2h0bWwvRE9N
U2V0dGFibGVUb2tlbkxpc3QuY3BwJywKQEAgLTU1ODYsNiArNTU4Myw4IEBACiAgICAgICAgICAg
ICAnaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAnLAor
ICAgICAgICAgICAgJ2h0bWwvSFRNTENvbnRlbnRFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAn
aHRtbC9IVE1MQ29udGVudEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRExpc3RF
bGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRExpc3RFbGVtZW50LmgnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlNzdjMWZmMTJiNDQzNGZkYjlj
OGUzOGY2YjA4MWZmZmE4ODgyMzFkLi5jNTJhZDg3ZmYyMmE2OGYxNTNhNmUyZjc5MWIyMDVjYzY0
YTVlOGNmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtNTA5OTgsMjMwICs1MDk5OCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVudC5jcHAiCi0JCQkJ
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRv
b2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxs
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9u
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxTaGFkb3dDb250ZW50RWxlbWVudC5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
Ci0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJ
CS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0J
CQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+
Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJ
TmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgot
CQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVudC5o
IgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21c
U2hhZG93Q29udGVudEVsZW1lbnQuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCIKLQkJ
CQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rp
b258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5j
cHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
LQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4K
LQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQ
cm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGRvbVxTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIgotCQkJCT4KLQkJCTwvRmlsZT4K
LQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3BhY2VTcGxpdFN0cmluZy5jcHAi
CiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNTU5NTgsNiArNTU3MzQsMjIgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxD
b250ZW50U2VsZWN0b3JRdWVyeS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQ29udGVudFNlbGVjdG9yUXVlcnkuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxDb250ZW50SW5j
bHVzaW9uU2VsZWN0b3IuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxodG1sXENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXGNhbnZhc1xEYXRh
Vmlldy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtNTY5MDIsNiArNTY2OTQsNjIgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1M
Q29udGVudEVsZW1lbnQuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxDb250ZW50RWxlbWVudC5oIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxEYXRh
TGlzdEVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2OWQ2
MTZhYjEwMTFiMzM2YTQ4ZWYxODEzMmRiMzYxZmU3ZWI2NGQ1Li4zZThjOTUwMDNmNmRmOTZhNThi
MjUxYTRiNzRjMWY2ZDM2Y2NhMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTY4LDggKzE1NjgsMTIgQEAKIAkJNTNDODI5
OEUxM0Q4RDkyNzAwREUyREVCIC8qIFJlbmRlckZsZXhpYmxlQm94LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0M4Mjk4QzEzRDhEOTI3MDBERTJERUIg
LyogUmVuZGVyRmxleGlibGVCb3guaCAqLzsgfTsKIAkJNTUwQTBCQzkwODVGNjAzOTAwNzM1M0Q2
IC8qIFF1YWxpZmllZE5hbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTUwQTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3Bw
ICovOyB9OwogCQk1NTBBMEJDQTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzgwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1NzBEQkE4MTE0QjU4MDQ5MDBEQUVGQTAgLyogU2hh
ZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTcwREI3QTgxNEI1Njk2QTAwREFFRkEwIC8qIFNoYWRvd0NvbnRl
bnRTZWxlY3RvclF1ZXJ5LmNwcCAqLzsgfTsKLQkJNTcwREJBODIxNEI1ODA0QjAwREFFRkEwIC8q
IFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQjdBOTE0QjU2OTZBMDBEQUVGQTAgLyogU2hhZG93Q29u
dGVudFNlbGVjdG9yUXVlcnkuaCAqLzsgfTsKKwkJNTcwREJCRkYxNEM1NEI3ODAwREFFRkEwIC8q
IENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQkJGQjE0QzU0Qjc4MDBEQUVGQTAgLyogQ29udGVudElu
Y2x1c2lvblNlbGVjdG9yLmNwcCAqLzsgfTsKKwkJNTcwREJDMDAxNEM1NEI3ODAwREFFRkEwIC8q
IENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTcwREJCRkMxNEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRJbmNs
dXNpb25TZWxlY3Rvci5oICovOyB9OworCQk1NzBEQkMwMTE0QzU0Qjc4MDBEQUVGQTAgLyogQ29u
dGVudFNlbGVjdG9yUXVlcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTcwREJCRkQxNEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1
ZXJ5LmNwcCAqLzsgfTsKKwkJNTcwREJDMDIxNEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzBEQkJGRTE0QzU0Qjc4MDBEQUVGQTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnkuaCAqLzsg
fTsKKwkJNTcwREJDMDUxNEM1NEI5MzAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQkMwMzE0
QzU0QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmNwcCAqLzsgfTsKKwkJNTcwREJD
MDYxNEM1NEI5MzAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREJDMDQxNEM1NEI5MzAwREFFRkEw
IC8qIEhUTUxDb250ZW50RWxlbWVudC5oICovOyB9OwogCQk1OTA1QURCRjEzMDJGM0NFMDBGMTE2
REYgLyogWE1MVHJlZVZpZXdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1OTA1QURCRDEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5j
cHAgKi87IH07CiAJCTU5MDVBREMwMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTA1QURCRTEz
MDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovOyB9OwogCQk1OTBFMUI0OTExRTRF
RjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZp
Y2VPcmllbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0zNTA0LDEzICszNTA4LDEwIEBACiAJCUE3MTVFNjUzMTM0QkJCRUMwMEQ4RTcx
MyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUxMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1No
YWRvd0VsZW1lbnQuaCAqLzsgfTsKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdB
Y3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFDMDBBMTZF
Q0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xs
ZXJNYWMubW0gKi87IH07Ci0JCUE3MUMzMEI4MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNs
dXNpb25TZWxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzFDMzBCNjEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0
b3IuY3BwICovOyB9OwotCQlBNzFDMzBCOTEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3MUMzMEI3MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5o
ICovOyB9OwogCQlBNzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNy
b3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjNG
NzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3M0Y5NUZFMTJDOTdCRkUw
MDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3Qu
Y3BwICovOyB9OwogCQlBNzNGOTVGRjEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJD
OTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NEJCNzZCMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNl
cHRpb25Db2RlUGxhY2Vob2xkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3NEJCNzZBMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNlcHRpb25Db2RlUGxh
Y2Vob2xkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlBNzRDMkQzQzEzODExRTBEMDBGODM1NzIgLyogU2hhZG93Q29udGVudEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NEMyRDNCMTM4
MTFFMEQwMEY4MzU3MiAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5
NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVk
U2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0
OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICovOyB9Owog
CQlBNzVFOEI4ODBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4MDBFMURFMkQ2MDA3RjI0ODEg
LyogRkVCbGVuZC5jcHAgKi87IH07CkBAIC0zNTIxLDcgKzM1MjIsNiBAQAogCQlBNzVFOEI4RDBF
MURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODUwRTFERTJENjAwN0YyNDgxIC8q
IEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLzsgfTsKIAkJQTc1RThCOEUwRTFERTJENjAwN0YyNDgx
IC8qIEZFQ29tcG9zaXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3NUU4Qjg2MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5jcHAgKi87
IH07CiAJCUE3NUU4QjhGMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODcwRTFERTJENjAw
N0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggKi87IH07Ci0JCUE3NjZDRjhDMTM4MTBFMEMwMDExQTBC
MyAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzY2Q0Y4QjEzODEwRTBDMDAxMUEwQjMgLyogU2hhZG93Q29u
dGVudEVsZW1lbnQuY3BwICovOyB9OwogCQlBNzZFNUY3RjEzNUUwRENGMDBBNjk4MzcgLyogUmVu
ZGVyZWREb2N1bWVudE1hcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRN
YXJrZXIuaCAqLzsgfTsKIAkJQTc3OTc5MTkwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5Nzkx
MzBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCAqLzsgfTsKIAkJQTc3OTc5MUEwRDZC
OUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MTQwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5o
ICovOyB9OwpAQCAtODM5MSw4ICs4MzkxLDEyIEBACiAJCTUzQzgyOThDMTNEOEQ5MjcwMERFMkRF
QiAvKiBSZW5kZXJGbGV4aWJsZUJveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJGbGV4aWJsZUJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTBB
MEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBRdWFsaWZpZWROYW1lLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmllZE5hbWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
Ci0JCTU3MERCN0E4MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVy
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFkb3dDb250ZW50
U2VsZWN0b3JRdWVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MERCN0E5
MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzBEQkJGQjE0QzU0Qjc4MDBEQUVGQTAgLyog
Q29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU3MERCQkZDMTRDNTRCNzgwMERBRUZBMCAvKiBDb250ZW50SW5jbHVzaW9u
U2VsZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEluY2x1
c2lvblNlbGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MERCQkZEMTRD
NTRCNzgwMERBRUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MERCQkZFMTRDNTRCNzgwMERBRUZBMCAvKiBDb250ZW50
U2VsZWN0b3JRdWVyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50
U2VsZWN0b3JRdWVyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzBEQkMwMzE0
QzU0QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxDb250ZW50RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU3MERCQzA0MTRDNTRCOTMwMERBRUZBMCAvKiBIVE1MQ29udGVu
dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTENvbnRlbnRF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MDVBREJEMTMwMkYzQ0Uw
MEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFhNTFRyZWVWaWV3ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxUcmVlVmlld2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmllbnRhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAzMjMsMTMgKzEwMzI3LDEwIEBACiAJ
CUE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnQWN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEcmFnQ29udHJvbGxlck1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxQTcwQzkxMUFGQjAyMDAwOTg5
RDZEIC8qIEhUTUxNZXRlckVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxN
ZXRlckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzFDMzBCNjEz
ODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzFDMzBCNzEzODEyNjVFMDBEQkMzNTEgLyog
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXhwb3J0TWFjcm9zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBS
b3VuZGVkUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSb3Vu
ZGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZEMTJDOTdC
RkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSb3VuZGVkUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzRCQjc2
QTEzQkRBODYzMDBGRjdCRjAgLyogRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzRDMkQzQjEzODExRTBEMDBGODM1NzIgLyogU2hh
ZG93Q29udGVudEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hh
ZG93Q29udGVudEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5
NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzVFOEI4MDBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBGRUJsZW5kLmNwcDsgcGF0aCA9IGZpbHRlcnMvRkVCbGVuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM0MCw3ICsxMDM0MSw2IEBACiAJ
CUE3NUU4Qjg1MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZFQ29tcG9uZW50VHJhbnNmZXIuaDsgcGF0aCA9
IGZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzVFOEI4NjBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRkVDb21wb3NpdGUuY3BwOyBwYXRoID0gZmls
dGVycy9GRUNvbXBvc2l0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU4
Qjg3MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBGRUNvbXBvc2l0ZS5oOyBwYXRoID0gZmlsdGVycy9GRUNvbXBvc2l0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzY2Q0Y4QjEzODEwRTBDMDAxMUEwQjMg
LyogU2hhZG93Q29udGVudEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2hhZG93Q29udGVudEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNzZFNUY3RTEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJlZERvY3VtZW50TWFy
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTEzMEQ2QjlEMEMwMDM4
NTFCOSAvKiBJbWFnZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW1hZ2VEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3OTc5MTQw
RDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbWFnZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NDgy
LDYgKzE2NDgyLDEyIEBACiAJCTkzRUVDMUVDMDlDMjg3NzcwMEM1MTVEMSAvKiBodG1sICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1NzBEQkMwMzE0QzU0
QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmNwcCAqLywKKwkJCQk1NzBEQkMwNDE0
QzU0QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmggKi8sCisJCQkJNTcwREJCRkIx
NEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgKi8sCisJCQkJ
NTcwREJCRkMxNEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oICov
LAorCQkJCTU3MERCQkZEMTRDNTRCNzgwMERBRUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5j
cHAgKi8sCisJCQkJNTcwREJCRkUxNEM1NEI3ODAwREFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1
ZXJ5LmggKi8sCiAJCQkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3REQzIC8qIGNhbnZhcyAqLywKIAkJ
CQk5N0MxRjU1MTEyMjg1NTg4MDBFREU2MTYgLyogcGFyc2VyICovLAogCQkJCTQxNTBGOUVEMTJC
NkUwOTkwMDA4Qzg2MCAvKiBzaGFkb3cgKi8sCkBAIC0yMDUzNiwxMiArMjA1NDIsNiBAQAogCQkJ
CTk3NkYzNkU5MTQ2ODYyMjUwMDVFOTNCNCAvKiBTZWN1cml0eUNvbnRleHQuaCAqLywKIAkJCQlF
NDUzMjJBOTE0MENFMjY3MDA1QTBGOTIgLyogU2VsZWN0b3JRdWVyeS5jcHAgKi8sCiAJCQkJRTQ1
MzIyQUExNDBDRTI2NzAwNUEwRjkyIC8qIFNlbGVjdG9yUXVlcnkuaCAqLywKLQkJCQlBNzY2Q0Y4
QjEzODEwRTBDMDAxMUEwQjMgLyogU2hhZG93Q29udGVudEVsZW1lbnQuY3BwICovLAotCQkJCUE3
NEMyRDNCMTM4MTFFMEQwMEY4MzU3MiAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5oICovLAotCQkJ
CTU3MERCN0E4MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5j
cHAgKi8sCi0JCQkJNTcwREI3QTkxNEI1Njk2QTAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmggKi8sCi0JCQkJQTcxQzMwQjYxMzgxMjY1RTAwREJDMzUxIC8qIFNoYWRvd0lu
Y2x1c2lvblNlbGVjdG9yLmNwcCAqLywKLQkJCQlBNzFDMzBCNzEzODEyNjVFMDBEQkMzNTEgLyog
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCAqLywKIAkJCQlBNkQxNjk2MTEzNDZCNDlCMDAwRUI3
NzAgLyogU2hhZG93Um9vdC5jcHAgKi8sCiAJCQkJQTZEMTY5NjMxMzQ2QjRDMTAwMEVCNzcwIC8q
IFNoYWRvd1Jvb3QuaCAqLywKIAkJCQlEMDFBMjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VT
cGxpdFN0cmluZy5jcHAgKi8sCkBAIC0yMzM5NSwxMCArMjMzOTUsNyBAQAogCQkJCTkzRjE5OTRG
MDgyNDVFNTkwMDFFOUFCQyAvKiBTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk4Nzcw
RTkxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzREQ0
NTAxMkY1RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE3
NEMyRDNDMTM4MTFFMEQwMEY4MzU3MiAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNTcwREJBODIxNEI1ODA0QjAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjhDNDBFODIwMzFCMDBCMjU5NjUg
LyogU2hhZG93RGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTcxQzMwQjkxMzgxMjY1RTAwREJD
MzUxIC8qIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNkQx
Njk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTgwRTZDRTgwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMkFGRkM5NDBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjQwMTYsNiArMjQwMTMsOSBAQAogCQkJCTUwM0QwQ0FFMTRCNUIwQkEwMEYzMkY1
NyAvKiBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTUwQUNF
MkNCMTRCNUQ3OTMwMDQ0NjY2NiAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdBQ0Q4OEQ0MTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJbmRleGVkREJB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcwREJDMDAxNEM1NEI3ODAwREFFRkEwIC8qIENv
bnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcwREJDMDIxNEM1
NEI3ODAwREFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1NzBEQkMwNjE0QzU0QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKQEAgLTI2NDM0LDEwICsyNjQzNCw3IEBACiAJCQkJMTRDOUE1RUEwQjNEMTA1RjAw
NUEwMjMyIC8qIFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5ODc3MEU4MTI0MkM1
MzUwMDIyMjZCQSAvKiBTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzREQ0NEYxMkY1
RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTc2NkNG
OEMxMzgxMEUwQzAwMTFBMEIzIC8qIFNoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTU3MERCQTgxMTRCNTgwNDkwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0
b3JRdWVyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzVFQjhDMzBFODIwMzFCMDBCMjU5NjUg
LyogU2hhZG93RGF0YS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBNzFDMzBCODEzODEyNjVFMDBE
QkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTZEMTY5NjIxMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTgwRTZDRjQwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyQUZGQzkzMEQwMEE1REYwMDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5jIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNjkzMSw2ICsyNjkyOCw5IEBACiAJCQkJQThGNDU3QTAxNEJDMUE4
ODAwMENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUwM0QwQ0FBMTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdBQ0Q4OEQzMTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJbmRl
eGVkREJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzBEQkJGRjE0QzU0Qjc4MDBEQUVG
QTAgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3
MERCQzAxMTRDNTRCNzgwMERBRUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk1NzBEQkMwNTE0QzU0QjkzMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXgg
NTViNjA1MjhhYWEyOTNjZDY2NWM0YzkyMjdiYTg4NDc4ODVmNmEzZS4uZjJjYjQ2N2RjYzEzM2Ni
YjNkODA0MGZlMTA2YzJiZThkZTEyOGI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
CkBAIC0xMTIsOSArMTEyLDYgQEAKICNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIu
Y3BwIgogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JR
dWVyeS5jcHAiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuY3BwIgotI2luY2x1ZGUg
IlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCIKLSNpbmNsdWRlICJTaGFkb3dJbmNsdXNp
b25TZWxlY3Rvci5jcHAiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5jcHAiCiAjaW5jbHVkZSAiU3Bh
Y2VTcGxpdFN0cmluZy5jcHAiCiAjaW5jbHVkZSAiU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGVmODVm
N2QyM2Y3ODIzZjljZjFmMTBkNWM4ODIxYmE4YWE3MWJjMDkuLjIyNmMwZjRiZThlNTU4ZmY5MDBi
OTQxZDA4YjIwNWExYzIyY2E5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmNwcApAQCAtMjcsMTMgKzI3LDEzIEBACiAjaW5jbHVkZSAiTm9kZVJlbmRlcmlu
Z0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKKyNpbmNsdWRlICJDb250
ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxvd1RocmVhZC5oIgogI2luY2x1
ZGUgIlJlbmRlckZ1bGxTY3JlZW4uaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuaCIKLSNp
bmNsdWRlICJTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKIAogI2lmIEVOQUJMRShTVkcpCkBAIC0xMTEsNyArMTExLDcgQEAgUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4gTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnJlbGVhc2VTdHlsZSgpCiAgICAgcmV0dXJu
IG1fc3R5bGUucmVsZWFzZSgpOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVy
ZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGlj
IFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQs
IE5vZGUqIGN1cnJlbnQpCiB7CiAgICAgU2hhZG93SW5jbHVzaW9uKiBjdXJyZW50SW5jbHVzaW9u
ID0gcGFyZW50LT5pbmNsdXNpb25zKCktPmZpbmQoY3VycmVudCk7CiAgICAgaWYgKCFjdXJyZW50
SW5jbHVzaW9uKQpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRS
ZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCiAg
ICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXJP
ZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGljIFJl
bmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9mKEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50
LCBOb2RlKiBjdXJyZW50KQogewogICAgIFJlbmRlck9iamVjdCogbGFzdFJlbmRlcmVyID0gMDsK
IApAQCAtMTM5LDcgKzEzOSw3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVy
ZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyCiAgICAgcmV0dXJu
IGxhc3RSZW5kZXJlcjsKIH0KIAotc3RhdGljIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9m
KFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBmaXJz
dFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQpCiB7CiAgICAgZm9yIChTaGFk
b3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IHBhcmVudC0+aW5jbHVzaW9ucygpLT5maXJzdCgpOyBp
bmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKSB7CiAgICAgICAgIGlmIChS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gaW5jbHVzaW9uLT5jb250ZW50KCktPnJlbmRlcmVyKCkp
CkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9m
KFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRp
YyBSZW5kZXJPYmplY3QqIGxhc3RSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJl
bnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXJPZihIVE1MQ29udGVudEVsZW1l
bnQqIHBhcmVudCkKIHsKICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gcGFy
ZW50LT5pbmNsdXNpb25zKCktPmxhc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNsdXNp
b24tPnByZXZpb3VzKCkpIHsKICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBp
bmNsdXNpb24tPmNvbnRlbnQoKS0+cmVuZGVyZXIoKSkKQEAgLTE4Nyw3ICsxODcsNyBAQCBSZW5k
ZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIoKSBjb25zdAogICAg
ICAgICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYg
KG5vZGUtPmlzQ29udGVudEVsZW1lbnQoKSkgewotICAgICAgICAgICAgaWYgKFJlbmRlck9iamVj
dCogZmlyc3QgPSBmaXJzdFJlbmRlcmVyT2YodG9TaGFkb3dDb250ZW50RWxlbWVudChub2RlKSkp
CisgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBmaXJzdCA9IGZpcnN0UmVuZGVyZXJPZih0
b0hUTUxDb250ZW50RWxlbWVudChub2RlKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0
OwogICAgICAgICB9CiAgICAgfQpAQCAtMjIwLDcgKzIyMCw3IEBAIFJlbmRlck9iamVjdCogTm9k
ZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIoKSBjb25zdAogICAgICAgICAgICAg
cmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUtPmlz
Q29udGVudEVsZW1lbnQoKSkgewotICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogbGFzdCA9
IGxhc3RSZW5kZXJlck9mKHRvU2hhZG93Q29udGVudEVsZW1lbnQobm9kZSkpKQorICAgICAgICAg
ICAgaWYgKFJlbmRlck9iamVjdCogbGFzdCA9IGxhc3RSZW5kZXJlck9mKHRvSFRNTENvbnRlbnRF
bGVtZW50KG5vZGUpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gbGFzdDsKICAgICAgICAgfQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggYjRl
ODkxMjk3YTYyY2I0N2RiN2M5NTg0M2EwZWEwN2RjYTRmNmJiMC4uZDMxNDExNzZmMjA1NDM0MjI3
MGY2YTRlMTMxY2Y5ZDRiYmVkZTk4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFJlbmRlckZs
b3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJTdHlsZTsKLWNsYXNz
IFNoYWRvd0NvbnRlbnRFbGVtZW50OworY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OwogY2xhc3Mg
U2hhZG93Um9vdDsKIAogY2xhc3MgTm9kZVJlbmRlcmluZ0NvbnRleHQgewpAQCAtNTIsNyArNTIs
NyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlcigpIGNvbnN0Owog
ICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0
KiBwcmV2aW91c1JlbmRlcmVyKCkgY29uc3Q7Ci0gICAgU2hhZG93Q29udGVudEVsZW1lbnQqIGlu
Y2x1ZGVyKCkgY29uc3Q7CisgICAgSFRNTENvbnRlbnRFbGVtZW50KiBpbmNsdWRlcigpIGNvbnN0
OwogCiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTdHlsZShQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CkBAIC04Niw3ICs4Niw3IEBAIHByaXZhdGU6CiAgICAg
Tm9kZSogbV9ub2RlOwogICAgIENvbnRhaW5lck5vZGUqIG1fcGFyZW50Tm9kZUZvclJlbmRlcmlu
Z0FuZFN0eWxlOwogICAgIFNoYWRvd1Jvb3QqIG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdDsKLSAg
ICBTaGFkb3dDb250ZW50RWxlbWVudCogbV9pbmNsdWRlcjsKKyAgICBIVE1MQ29udGVudEVsZW1l
bnQqIG1faW5jbHVkZXI7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX3N0eWxlOwogICAgIFJl
bmRlckZsb3dUaHJlYWQqIG1fcGFyZW50Rmxvd1JlbmRlcmVyOwogICAgIEF0b21pY1N0cmluZyBt
X2Zsb3dUaHJlYWQ7CkBAIC0xMDgsNyArMTA4LDcgQEAgaW5saW5lIFJlbmRlclN0eWxlKiBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6c3R5bGUoKSBjb25zdAogICAgIHJldHVybiBtX3N0eWxlLmdldCgp
OwogfQogCi1pbmxpbmUgU2hhZG93Q29udGVudEVsZW1lbnQqIE5vZGVSZW5kZXJpbmdDb250ZXh0
OjppbmNsdWRlcigpIGNvbnN0CitpbmxpbmUgSFRNTENvbnRlbnRFbGVtZW50KiBOb2RlUmVuZGVy
aW5nQ29udGV4dDo6aW5jbHVkZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX2luY2x1ZGVyOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzYmNmMDFlMzBmMDk4YjYxMmVhOTc0NmQyMDMzYmM3NTc1
NzllMjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29u
dGVudEVsZW1lbnQuaCIKLQotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIlF1YWxp
ZmllZE5hbWUuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIgotI2lu
Y2x1ZGUgIlNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgiCi0jaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci11c2luZyBIVE1MTmFtZXM6OnNlbGVjdEF0dHI7Ci0KLVBhc3NSZWZQdHI8U2hhZG93Q29udGVu
dEVsZW1lbnQ+IFNoYWRvd0NvbnRlbnRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
KQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgdGFnTmFtZSwgKG51
bGxBdG9tLCAid2Via2l0U2hhZG93Q29udGVudCIsIEhUTUxOYW1lczo6ZGl2VGFnLm5hbWVzcGFj
ZVVSSSgpKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFkb3dDb250ZW50RWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwotfQotCi1TaGFkb3dDb250ZW50RWxlbWVudDo6U2hhZG93Q29u
dGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQotICAgIDogU3R5bGVkRWxlbWVudChuYW1lLCBkb2N1bWVudCwgQ3JlYXRlSFRNTEVsZW1lbnQp
Ci0gICAgLCBtX2luY2x1c2lvbnMoYWRvcHRQdHIobmV3IFNoYWRvd0luY2x1c2lvbkxpc3QoKSkp
Ci17Ci19Ci0KLVNoYWRvd0NvbnRlbnRFbGVtZW50Ojp+U2hhZG93Q29udGVudEVsZW1lbnQoKQot
ewotfQotCi12b2lkIFNoYWRvd0NvbnRlbnRFbGVtZW50OjphdHRhY2goKQotewotICAgIEFTU0VS
VCghZmlyc3RDaGlsZCgpKTsgLy8gQ3VycmVudGx5IGRvZXNuJ3Qgc3VwcG9ydCBhbnkgbGlnaHQg
Y2hpbGQuCi0gICAgU3R5bGVkRWxlbWVudDo6YXR0YWNoKCk7Ci0KLSAgICBpZiAoU2hhZG93Um9v
dCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkpIHsKLSAgICAgICAg
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+ZW5zdXJlSW5jbHVzaW9u
cygpOwotICAgICAgICBzZWxlY3Rvci0+dW5zZWxlY3QobV9pbmNsdXNpb25zLmdldCgpKTsKLSAg
ICAgICAgc2VsZWN0b3ItPnNlbGVjdCh0aGlzLCBtX2luY2x1c2lvbnMuZ2V0KCkpOwotICAgICAg
ICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgp
OyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQotICAgICAgICAgICAg
aW5jbHVzaW9uLT5jb250ZW50KCktPmRldGFjaCgpOwotICAgICAgICBmb3IgKFNoYWRvd0luY2x1
c2lvbiogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1
c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQotICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50
KCktPmF0dGFjaCgpOwotICAgIH0KLX0KLQotdm9pZCBTaGFkb3dDb250ZW50RWxlbWVudDo6ZGV0
YWNoKCkKLXsKLSAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dU
cmVlUm9vdE5vZGUoKSkpIHsKLSAgICAgICAgaWYgKFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBz
ZWxlY3RvciA9IHJvb3QtPmluY2x1c2lvbnMoKSkKLSAgICAgICAgICAgIHNlbGVjdG9yLT51bnNl
bGVjdChtX2luY2x1c2lvbnMuZ2V0KCkpOwotICAgIH0KLQotICAgIEFTU0VSVChtX2luY2x1c2lv
bnMtPmlzRW1wdHkoKSk7Ci0gICAgU3R5bGVkRWxlbWVudDo6ZGV0YWNoKCk7Ci19Ci0KLWNvbnN0
IEF0b21pY1N0cmluZyYgU2hhZG93Q29udGVudEVsZW1lbnQ6OnNlbGVjdCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzZWxlY3RBdHRyKTsKLX0KLQotdm9pZCBTaGFkb3dDb250
ZW50RWxlbWVudDo6c2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0VmFsdWUpCi17
Ci0gICAgc2V0QXR0cmlidXRlKHNlbGVjdEF0dHIsIHNlbGVjdFZhbHVlKTsKLX0KLQotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYWNlNDdhZGMxMTNmZmEzODNjZDI5OGU4MTRjYTRiN2Q5YjhkY2ZmNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFNoYWRvd0NvbnRlbnRFbGVtZW50X2gKLSNkZWZpbmUgU2hhZG93Q29udGVudEVs
ZW1lbnRfaAotCi0jaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU2hhZG93Q29udGVudFNlbGVj
dG9yUXVlcnk7Ci1jbGFzcyBTaGFkb3dJbmNsdXNpb25MaXN0OwotCi0vLyBOT1RFOiBDdXJyZW50
IGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBkeW5hbWljIGluc2VydGlvbi9kZWxldGlv
biBvZiBTaGFkb3dDb250ZW50RWxlbWVudC4KLS8vIFlvdSBzaG91bGQgY3JlYXRlIFNoYWRvd0Nv
bnRlbnRFbGVtZW50IGR1cmluZyB0aGUgaG9zdCBjb25zdHJ1Y3Rpb24uCi1jbGFzcyBTaGFkb3dD
b250ZW50RWxlbWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTaGFkb3dDb250ZW50RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7Ci0K
LSAgICB2aXJ0dWFsIH5TaGFkb3dDb250ZW50RWxlbWVudCgpOwotICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2goKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7Ci0KLSAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHNlbGVjdCgpIGNvbnN0OwotCi0gICAgLy8gRklYTUU6IEN1cnJlbnRseSB0aGlzIGNv
bnN0cnVjdG9yIGFjY2VwdHMgd2lkZXIgcXVlcnkgdGhhbiBzaGFkb3cgZG9tIHNwZWMuCi0gICAg
Ly8gRm9yIGV4YW1wbGUsIGEgc2VsZWN0b3IgcXVlcnkgc2hvdWxkIG5vdCBpbmNsdWRlIGNvbnRl
eHR1YWwgc2VsZWN0b3JzLgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzU5NDYKLSAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGRvbid0IHN1cHBv
cnQgc2V0dGluZyBzZWxlY3QgdmFsdWUgZHluYW1pY2FsbHkuCi0gICAgLy8gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI2MQotICAgIHZvaWQgc2V0U2VsZWN0
KGNvbnN0IEF0b21pY1N0cmluZyYpOwotCi0gICAgY29uc3QgU2hhZG93SW5jbHVzaW9uTGlzdCog
aW5jbHVzaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5jbHVzaW9ucy5nZXQoKTsgfQotCi1wcm90
ZWN0ZWQ6Ci0gICAgU2hhZG93Q29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzQ29udGVudEVsZW1lbnQo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZp
cnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0
eWxlKikgeyByZXR1cm4gMDsgfQotCi0gICAgT3duUHRyPFNoYWRvd0luY2x1c2lvbkxpc3Q+IG1f
aW5jbHVzaW9uczsKLX07Ci0KLWlubGluZSBTaGFkb3dDb250ZW50RWxlbWVudCogdG9TaGFkb3dD
b250ZW50RWxlbWVudChOb2RlKiBub2RlKQotewotICAgIEFTU0VSVCghbm9kZSB8fCBub2RlLT5p
c0NvbnRlbnRFbGVtZW50KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFkb3dDb250ZW50
RWxlbWVudCo+KG5vZGUpOwotfQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDFhMDYxZTc4NjdiMjViZTVmZWFmMWNiZjRmNzQ0OGQyMzliNzQyY2MuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoK
LSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudFNl
bGVjdG9yUXVlcnkuaCIKLQotI2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2luY2x1ZGUgIkNTU1Nl
bGVjdG9yTGlzdC5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnk6OlNoYWRvd0NvbnRl
bnRTZWxlY3RvclF1ZXJ5KFNoYWRvd0NvbnRlbnRFbGVtZW50KiBlbGVtZW50KQotICAgIDogbV9j
b250ZW50RWxlbWVudChlbGVtZW50KQotICAgICwgbV9zZWxlY3RvckNoZWNrZXIoZWxlbWVudC0+
ZG9jdW1lbnQoKSwgIWVsZW1lbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQotewotICAg
IG1fc2VsZWN0b3JDaGVja2VyLnNldENvbGxlY3RpbmdSdWxlc09ubHkodHJ1ZSk7Ci0KLSAgICBp
ZiAoZWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgZWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDU1NQYXJzZXIgcGFyc2VyKHRydWUpOwotICAg
IHBhcnNlci5wYXJzZVNlbGVjdG9yKGVsZW1lbnQtPnNlbGVjdCgpLCBlbGVtZW50LT5kb2N1bWVu
dCgpLCBtX3NlbGVjdG9yTGlzdCk7Ci0KLSAgICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKG1fc2Vs
ZWN0b3JMaXN0KTsKLX0KLQotYm9vbCBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hl
cyhOb2RlKiBub2RlKSBjb25zdAotewotICAgIEFTU0VSVChub2RlKTsKLSAgICBpZiAoIW5vZGUp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEFTU0VSVChub2RlLT5wYXJlbnROb2RlKCkg
PT0gbV9jb250ZW50RWxlbWVudC0+c2hhZG93VHJlZVJvb3ROb2RlKCktPnNoYWRvd0hvc3QoKSk7
Ci0KLSAgICBpZiAobV9jb250ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9jb250
ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQot
ICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICByZXR1cm4gbV9zZWxlY3RvcnMubWF0Y2hlcyhtX3NlbGVjdG9yQ2hlY2tlciwgdG9FbGVt
ZW50KG5vZGUpKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVu
dFNlbGVjdG9yUXVlcnkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU2ODczYjM0
MzBjM2EyYzI0N2ExODBhZTRkYTNkYjEwNGYwNzMwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNl
bGVjdG9yUXVlcnkuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNoYWRv
d0NvbnRlbnRTZWxlY3RvclF1ZXJ5X2gKLSNkZWZpbmUgU2hhZG93Q29udGVudFNlbGVjdG9yUXVl
cnlfaAotCi0jaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCi0jaW5jbHVkZSAiU2VsZWN0b3JD
aGVja2VyLmgiCi0jaW5jbHVkZSAiU2VsZWN0b3JRdWVyeS5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIERvY3VtZW50OwotY2xhc3MgTm9kZTsKLWNsYXNzIFNoYWRvd0NvbnRlbnRFbGVtZW50
OwotCi1jbGFzcyBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeSB7Ci0gICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkpOwotcHVibGljOgotICAgIGV4cGxp
Y2l0IFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5KFNoYWRvd0NvbnRlbnRFbGVtZW50Kik7Ci0K
LSAgICBib29sIG1hdGNoZXMoTm9kZSopIGNvbnN0OwotCi1wcml2YXRlOgotICAgIFNoYWRvd0Nv
bnRlbnRFbGVtZW50KiBtX2NvbnRlbnRFbGVtZW50OwotICAgIFNlbGVjdG9yRGF0YUxpc3QgbV9z
ZWxlY3RvcnM7Ci0gICAgQ1NTU2VsZWN0b3JMaXN0IG1fc2VsZWN0b3JMaXN0OwotICAgIFNlbGVj
dG9yQ2hlY2tlciBtX3NlbGVjdG9yQ2hlY2tlcjsKLX07Ci0KLX0KLQotCi0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3ZTlkNDJiZTUxYjVlNDUyYzRkNDA1NGUyMGJhNGM3Yjg1
NTQ4YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDE1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNoYWRv
d0luY2x1c2lvblNlbGVjdG9yLmgiCi0KLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5o
IgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCi0jaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgotCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTaGFkb3dJbmNsdXNp
b246OmFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbmV4dCkKLXsKLSAgICBBU1NF
UlQoIW1fbmV4dCk7Ci0gICAgQVNTRVJUKCFuZXh0LT5wcmV2aW91cygpKTsKLSAgICBtX25leHQg
PSBuZXh0OwotICAgIG1fbmV4dC0+bV9wcmV2aW91cyA9IHRoaXM7Ci19Ci0KLXZvaWQgU2hhZG93
SW5jbHVzaW9uOjp1bmxpbmsoKQotewotICAgIEFTU0VSVCghbV9wcmV2aW91cyk7IC8vIENhbiBi
ZSBjYWxsZWQgb25seSBmb3IgYSBoZWFkLgotICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGl0
ZW0gPSB0aGlzOwotICAgIHdoaWxlIChpdGVtKSB7Ci0gICAgICAgIEFTU0VSVCghaXRlbS0+cHJl
dmlvdXMoKSk7Ci0gICAgICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG5leHRJdGVtID0gaXRl
bS0+bV9uZXh0OwotICAgICAgICBpdGVtLT5tX25leHQuY2xlYXIoKTsKLSAgICAgICAgaWYgKG5l
eHRJdGVtKQotICAgICAgICAgICAgbmV4dEl0ZW0tPm1fcHJldmlvdXMuY2xlYXIoKTsKLSAgICAg
ICAgaXRlbSA9IG5leHRJdGVtOwotICAgIH0KLX0KLQotU2hhZG93SW5jbHVzaW9uTGlzdDo6U2hh
ZG93SW5jbHVzaW9uTGlzdCgpCi17Ci19Ci0KLVNoYWRvd0luY2x1c2lvbkxpc3Q6On5TaGFkb3dJ
bmNsdXNpb25MaXN0KCkKLXsKLSAgICBBU1NFUlQoaXNFbXB0eSgpKTsKLX0KLQotU2hhZG93SW5j
bHVzaW9uKiBTaGFkb3dJbmNsdXNpb25MaXN0OjpmaW5kKE5vZGUqIGNvbnRlbnQpIGNvbnN0Ci17
Ci0gICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGl0ZW0gPSBmaXJzdCgpOyBpdGVtOyBpdGVtID0g
aXRlbS0+bmV4dCgpKSB7Ci0gICAgICAgIGlmIChjb250ZW50ID09IGl0ZW0tPmNvbnRlbnQoKSkK
LSAgICAgICAgICAgIHJldHVybiBpdGVtOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gMDsKLX0K
LQotdm9pZCBTaGFkb3dJbmNsdXNpb25MaXN0OjpjbGVhcigpCi17Ci0gICAgaWYgKGlzRW1wdHko
KSkgewotICAgICAgICBBU1NFUlQoIW1fbGFzdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBtX2ZpcnN0LT51bmxpbmsoKTsKLSAgICBtX2ZpcnN0LmNsZWFyKCk7Ci0gICAgbV9sYXN0
LmNsZWFyKCk7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uTGlzdDo6YXBwZW5kKFBhc3NSZWZQ
dHI8U2hhZG93SW5jbHVzaW9uPiBjaGlsZCkKLXsKLSAgICBpZiAoaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIEFTU0VSVCghbV9sYXN0KTsKLSAgICAgICAgbV9maXJzdCA9IG1fbGFzdCA9IGNoaWxkOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9sYXN0LT5hcHBlbmQoY2hpbGQpOwotICAg
IG1fbGFzdCA9IG1fbGFzdC0+bmV4dCgpOwotfQotCi1TaGFkb3dJbmNsdXNpb25TZWxlY3Rvcjo6
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IoKQotewotfQotCi1TaGFkb3dJbmNsdXNpb25TZWxlY3Rv
cjo6flNoYWRvd0luY2x1c2lvblNlbGVjdG9yKCkKLXsKLSAgICBBU1NFUlQobV9jYW5kaWRhdGVz
LmlzRW1wdHkoKSk7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OnNlbGVjdChT
aGFkb3dDb250ZW50RWxlbWVudCogY29udGVudEVsZW1lbnQsIFNoYWRvd0luY2x1c2lvbkxpc3Qq
IGluY2x1c2lvbnMpCi17Ci0gICAgQVNTRVJUKGluY2x1c2lvbnMtPmlzRW1wdHkoKSk7Ci0KLSAg
ICBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeSBxdWVyeShjb250ZW50RWxlbWVudCk7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2NhbmRpZGF0ZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAg
ICAgTm9kZSogY2hpbGQgPSBtX2NhbmRpZGF0ZXNbaV0uZ2V0KCk7Ci0gICAgICAgIGlmICghY2hp
bGQpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKCFxdWVyeS5tYXRjaGVzKGNo
aWxkKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIFJlZlB0cjxTaGFkb3dJbmNs
dXNpb24+IGluY2x1c2lvbiA9IFNoYWRvd0luY2x1c2lvbjo6Y3JlYXRlKGNvbnRlbnRFbGVtZW50
LCBjaGlsZCk7Ci0gICAgICAgIGluY2x1c2lvbnMtPmFwcGVuZChpbmNsdXNpb24pOwotICAgICAg
ICBtX2luY2x1c2lvblNldC5hZGQoaW5jbHVzaW9uLmdldCgpKTsKLSAgICAgICAgbV9jYW5kaWRh
dGVzW2ldID0gMDsKLSAgICB9Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OnVu
c2VsZWN0KFNoYWRvd0luY2x1c2lvbkxpc3QqIGxpc3QpCi17Ci0gICAgZm9yIChTaGFkb3dJbmNs
dXNpb24qIGluY2x1c2lvbiA9IGxpc3QtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0g
aW5jbHVzaW9uLT5uZXh0KCkpCi0gICAgICAgIG1faW5jbHVzaW9uU2V0LnJlbW92ZShpbmNsdXNp
b24pOwotICAgIGxpc3QtPmNsZWFyKCk7Ci19Ci0KLVNoYWRvd0luY2x1c2lvbiogU2hhZG93SW5j
bHVzaW9uU2VsZWN0b3I6OmZpbmRGb3IoTm9kZSoga2V5KSBjb25zdAotewotICAgIHJldHVybiBt
X2luY2x1c2lvblNldC5maW5kKGtleSk7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0
b3I6OmRpZFNlbGVjdCgpCi17Ci0gICAgbV9jYW5kaWRhdGVzLmNsZWFyKCk7Ci19Ci0KLXZvaWQg
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OndpbGxTZWxlY3RPdmVyKFNoYWRvd1Jvb3QqIHNjb3Bl
KQotewotICAgIGlmICghbV9jYW5kaWRhdGVzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIGZvciAoTm9kZSogbm9kZSA9IHNjb3BlLT5zaGFkb3dIb3N0KCktPmZpcnN0Q2hpbGQoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIG1fY2FuZGlkYXRlcy5h
cHBlbmQobm9kZSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dJbmNsdXNpb25TZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lv
blNlbGVjdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxYTg3MTc0NDFiMTlj
MmQ2YWZhMGU4ZjM0MDc1ODQxMDIxOGI0ZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVj
dG9yLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0g
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3JfaAotI2RlZmluZSBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvcl9oCi0KLSNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgRWxlbWVudDsKLWNsYXNzIE5vZGU7Ci1jbGFzcyBTaGFkb3dSb290
OwotY2xhc3MgU2hhZG93Q29udGVudEVsZW1lbnQ7Ci0KLWNsYXNzIFNoYWRvd0luY2x1c2lvbiA6
IHB1YmxpYyBSZWZDb3VudGVkPFNoYWRvd0luY2x1c2lvbj4gewotcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gY3JlYXRlKFNoYWRvd0NvbnRlbnRFbGVtZW50
KiwgTm9kZSopOwotCi0gICAgU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9pbmNsdWRlcjsgfQotICAgIE5vZGUqIGNvbnRlbnQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRlbnQuZ2V0KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIG5leHQoKSBjb25zdCB7
IHJldHVybiBtX25leHQuZ2V0KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIHByZXZpb3VzKCkg
Y29uc3QgeyByZXR1cm4gbV9wcmV2aW91cy5nZXQoKTsgfQotCi0gICAgdm9pZCBhcHBlbmQoUGFz
c1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+KTsKLSAgICB2b2lkIHVubGluaygpOwotCi1wcml2YXRl
OgotICAgIFNoYWRvd0luY2x1c2lvbihTaGFkb3dDb250ZW50RWxlbWVudCosIE5vZGUqKTsKLQot
ICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBtX2luY2x1ZGVyOwotICAgIFJlZlB0cjxOb2RlPiBt
X2NvbnRlbnQ7Ci0gICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbV9uZXh0OwotICAgIFJlZlB0
cjxTaGFkb3dJbmNsdXNpb24+IG1fcHJldmlvdXM7Ci19OwotCi1pbmxpbmUgU2hhZG93SW5jbHVz
aW9uOjpTaGFkb3dJbmNsdXNpb24oU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyLCBOb2Rl
KiBjb250ZW50KQotICAgIDogbV9pbmNsdWRlcihpbmNsdWRlciksIG1fY29udGVudChjb250ZW50
KQoteyB9Ci0KLWlubGluZSBQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gU2hhZG93SW5jbHVz
aW9uOjpjcmVhdGUoU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyLCBOb2RlKiBjb250ZW50
KQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93SW5jbHVzaW9uKGluY2x1ZGVyLCBj
b250ZW50KSk7Ci19Ci0KLWNsYXNzIFNoYWRvd0luY2x1c2lvbkxpc3QgewotcHVibGljOgotICAg
IFNoYWRvd0luY2x1c2lvbkxpc3QoKTsKLSAgICB+U2hhZG93SW5jbHVzaW9uTGlzdCgpOwotCi0g
ICAgU2hhZG93SW5jbHVzaW9uKiBmaXJzdCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3QuZ2V0KCk7
IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIGxhc3QoKSBjb25zdCB7IHJldHVybiBtX2xhc3QuZ2V0
KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIGZpbmQoTm9kZSopIGNvbnN0OwotICAgIGJvb2wg
aXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2ZpcnN0OyB9Ci0KLSAgICB2b2lkIGNsZWFyKCk7
Ci0gICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+KTsKLQotcHJpdmF0
ZToKLSAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBtX2ZpcnN0OwotICAgIFJlZlB0cjxTaGFk
b3dJbmNsdXNpb24+IG1fbGFzdDsKLX07Ci0KLQotY2xhc3MgU2hhZG93SW5jbHVzaW9uU2V0IHsK
LXB1YmxpYzoKLSAgICB2b2lkIGFkZChTaGFkb3dJbmNsdXNpb24qIHZhbHVlKSB7IG1fc2V0LmFk
ZCh2YWx1ZSk7IH0KLSAgICB2b2lkIHJlbW92ZShTaGFkb3dJbmNsdXNpb24qIHZhbHVlKSB7IG1f
c2V0LnJlbW92ZSh2YWx1ZSk7IH0KLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBt
X3NldC5pc0VtcHR5KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIGZpbmQoTm9kZSoga2V5KSBj
b25zdDsKLQotcHJpdmF0ZToKLSAgICBzdHJ1Y3QgVHJhbnNsYXRvciB7Ci0gICAgcHVibGljOgot
ICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBOb2RlKiBrZXkpIHsgcmV0dXJuIFB0
ckhhc2g8Y29uc3QgTm9kZSo+OjpoYXNoKGtleSk7IH0KLSAgICAgICAgc3RhdGljIGJvb2wgZXF1
YWwoY29uc3QgU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24sIGNvbnN0IE5vZGUqIGNvbnRlbnQp
IHsgcmV0dXJuIGluY2x1c2lvbi0+Y29udGVudCgpID09IGNvbnRlbnQ7IH0KLSAgICB9OwotCi0g
ICAgc3RydWN0IEhhc2ggewotICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChTaGFkb3dJbmNs
dXNpb24qIGtleSkgeyByZXR1cm4gUHRySGFzaDxjb25zdCBOb2RlKj46Omhhc2goa2V5LT5jb250
ZW50KCkpOyB9Ci0gICAgICAgIHN0YXRpYyBib29sIGVxdWFsKFNoYWRvd0luY2x1c2lvbiogYSwg
U2hhZG93SW5jbHVzaW9uKiBiKSB7IHJldHVybiBhLT5jb250ZW50KCkgPT0gYi0+Y29udGVudCgp
OyB9Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxl
dGVkID0gZmFsc2U7Ci0gICAgfTsKLQotICAgIHR5cGVkZWYgSGFzaFNldDxTaGFkb3dJbmNsdXNp
b24qLCBIYXNoPiBQb2ludGVyU2V0OwotCi0gICAgUG9pbnRlclNldCBtX3NldDsKLX07Ci0KLWlu
bGluZSBTaGFkb3dJbmNsdXNpb24qIFNoYWRvd0luY2x1c2lvblNldDo6ZmluZChOb2RlKiBrZXkp
IGNvbnN0Ci17Ci0gICAgUG9pbnRlclNldDo6aXRlcmF0b3IgZm91bmQgPSBtX3NldC5maW5kPE5v
ZGUqLCBTaGFkb3dJbmNsdXNpb25TZXQ6OlRyYW5zbGF0b3I+KGtleSk7Ci0gICAgcmV0dXJuIGZv
dW5kICE9IG1fc2V0LmVuZCgpID8gKmZvdW5kIDogMDsKLX0KLQotY2xhc3MgU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3IgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNoYWRvd0luY2x1c2lvblNl
bGVjdG9yKTsKLXB1YmxpYzoKLSAgICBTaGFkb3dJbmNsdXNpb25TZWxlY3RvcigpOwotICAgIH5T
aGFkb3dJbmNsdXNpb25TZWxlY3RvcigpOwotCi0gICAgdm9pZCBzZWxlY3QoU2hhZG93Q29udGVu
dEVsZW1lbnQqLCBTaGFkb3dJbmNsdXNpb25MaXN0Kik7Ci0gICAgdm9pZCB1bnNlbGVjdChTaGFk
b3dJbmNsdXNpb25MaXN0Kik7Ci0gICAgU2hhZG93SW5jbHVzaW9uKiBmaW5kRm9yKE5vZGUqIGtl
eSkgY29uc3Q7Ci0KLSAgICB2b2lkIHdpbGxTZWxlY3RPdmVyKFNoYWRvd1Jvb3QqKTsKLSAgICB2
b2lkIGRpZFNlbGVjdCgpOwotICAgIGJvb2wgaGFzQ2FuZGlkYXRlcygpIGNvbnN0IHsgcmV0dXJu
ICFtX2NhbmRpZGF0ZXMuaXNFbXB0eSgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCByZW1vdmVG
cm9tU2V0KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKLSAgICB2b2lkIGFkZFRvU2V0KFNoYWRvd0lu
Y2x1c2lvbkxpc3QqKTsKLQotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiBtX2NhbmRpZGF0ZXM7
Ci0gICAgU2hhZG93SW5jbHVzaW9uU2V0IG1faW5jbHVzaW9uU2V0OwotfTsKLQotfQotCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBlMmNlOWIwNDNlOTQ0YjFhYzYyMmI1
NWMxMDA5MTFjNGJiODJlMDQ5Li4yMjlkNTU4MTVhN2ZhZWVlNDc4YWQyOWE3MDhiMjU4OTZiMjRl
YTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0yNiwxMiArMjYsMTIgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJF
bGVtZW50LmgiCiAKKyNpbmNsdWRlICJDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ29u
dGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKLSNpbmNsdWRlICJTaGFk
b3dDb250ZW50RWxlbWVudC5oIgotI2luY2x1ZGUgIlNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgi
CiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMDEsNyArMTAx
LDcgQEAgdm9pZCBTaGFkb3dSb290OjpyZWNhbGNTaGFkb3dUcmVlU3R5bGUoU3R5bGVDaGFuZ2Ug
Y2hhbmdlKQogICAgIGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKLVNoYWRvd0Nv
bnRlbnRFbGVtZW50KiBTaGFkb3dSb290OjppbmNsdWRlckZvcihOb2RlKiBub2RlKSBjb25zdAor
SFRNTENvbnRlbnRFbGVtZW50KiBTaGFkb3dSb290OjppbmNsdWRlckZvcihOb2RlKiBub2RlKSBj
b25zdAogewogICAgIGlmICghbV9pbmNsdXNpb25zKQogICAgICAgICByZXR1cm4gMDsKQEAgLTE1
NSwxNSArMTU1LDE1IEBAIHZvaWQgU2hhZG93Um9vdDo6YXR0YWNoKCkKICAgICAgICAgbV9pbmNs
dXNpb25zLT5kaWRTZWxlY3QoKTsKIH0KIAotU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIFNoYWRv
d1Jvb3Q6OmluY2x1c2lvbnMoKSBjb25zdAorQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBTaGFk
b3dSb290OjppbmNsdXNpb25zKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbmNsdXNpb25zLmdl
dCgpOwogfQogCi1TaGFkb3dJbmNsdXNpb25TZWxlY3RvciogU2hhZG93Um9vdDo6ZW5zdXJlSW5j
bHVzaW9ucygpCitDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIFNoYWRvd1Jvb3Q6OmVuc3VyZUlu
Y2x1c2lvbnMoKQogewogICAgIGlmICghbV9pbmNsdXNpb25zKQotICAgICAgICBtX2luY2x1c2lv
bnMgPSBhZG9wdFB0cihuZXcgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IoKSk7CisgICAgICAgIG1f
aW5jbHVzaW9ucyA9IGFkb3B0UHRyKG5ldyBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IoKSk7CiAg
ICAgbV9pbmNsdXNpb25zLT53aWxsU2VsZWN0T3Zlcih0aGlzKTsKICAgICByZXR1cm4gbV9pbmNs
dXNpb25zLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggMzRkZGYzMzAxMTUy
NGRhNzJkYmQ2ZmEyMjRkYjk0YmY0YWQ5MTJkMy4uYzViYzBkYmNiNWQwY2RiOWE4MzQ1YmQ5YTFm
OTIxN2UyMzAyYWMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC0zMiw4ICszMiw4IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgU2hhZG93Q29u
dGVudEVsZW1lbnQ7Ci1jbGFzcyBTaGFkb3dJbmNsdXNpb25TZWxlY3RvcjsKK2NsYXNzIEhUTUxD
b250ZW50RWxlbWVudDsKK2NsYXNzIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvcjsKIAogY2xhc3Mg
U2hhZG93Um9vdCA6IHB1YmxpYyBUcmVlU2NvcGUgewogcHVibGljOgpAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHJlY2FsY1NoYWRvd1RyZWVTdHlsZShTdHlsZUNoYW5nZSk7
CiAKLSAgICBTaGFkb3dDb250ZW50RWxlbWVudCogaW5jbHVkZXJGb3IoTm9kZSopIGNvbnN0Owor
ICAgIEhUTUxDb250ZW50RWxlbWVudCogaW5jbHVkZXJGb3IoTm9kZSopIGNvbnN0OwogICAgIHZv
aWQgaG9zdENoaWxkcmVuQ2hhbmdlZCgpOwogICAgIGJvb2wgaXNJbmNsdXNpb25TZWxlY3RvckFj
dGl2ZSgpIGNvbnN0OwogCkBAIC01MCw4ICs1MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgYXBwbHlBdXRob3JTaGVldHMoKSBjb25zdDsKICAgICB2b2lkIHNldEFwcGx5QXV0aG9yU2hl
ZXRzKGJvb2wpOwogCi0gICAgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIGluY2x1c2lvbnMoKSBj
b25zdDsKLSAgICBTaGFkb3dJbmNsdXNpb25TZWxlY3RvciogZW5zdXJlSW5jbHVzaW9ucygpOwor
ICAgIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvciogaW5jbHVzaW9ucygpIGNvbnN0OworICAgIENv
bnRlbnRJbmNsdXNpb25TZWxlY3RvciogZW5zdXJlSW5jbHVzaW9ucygpOwogCiBwcml2YXRlOgog
ICAgIFNoYWRvd1Jvb3QoRG9jdW1lbnQqKTsKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIGhhc0NvbnRlbnRFbGVtZW50KCkgY29uc3Q7CiAKICAgICBib29sIG1fYXBwbHlBdXRo
b3JTaGVldHM7Ci0gICAgT3duUHRyPFNoYWRvd0luY2x1c2lvblNlbGVjdG9yPiBtX2luY2x1c2lv
bnM7CisgICAgT3duUHRyPENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcj4gbV9pbmNsdXNpb25zOwog
fTsKIAogaW5saW5lIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gU2hhZG93Um9vdDo6Y3JlYXRlKERv
Y3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVu
dEluY2x1c2lvblNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudEluY2x1
c2lvblNlbGVjdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjU0MWE1YWU4OTg3NTk4ZWI5YTkxMzI3NGE1
YzRjNmFjZjgwZGM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db250
ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwCkBAIC0wLDAgKzEsMTU1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIgorCisjaW5jbHVk
ZSAiQ29udGVudFNlbGVjdG9yUXVlcnkuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIFNoYWRvd0luY2x1c2lvbjo6YXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBu
ZXh0KQoreworICAgIEFTU0VSVCghbV9uZXh0KTsKKyAgICBBU1NFUlQoIW5leHQtPnByZXZpb3Vz
KCkpOworICAgIG1fbmV4dCA9IG5leHQ7CisgICAgbV9uZXh0LT5tX3ByZXZpb3VzID0gdGhpczsK
K30KKwordm9pZCBTaGFkb3dJbmNsdXNpb246OnVubGluaygpCit7CisgICAgQVNTRVJUKCFtX3By
ZXZpb3VzKTsgLy8gQ2FuIGJlIGNhbGxlZCBvbmx5IGZvciBhIGhlYWQuCisgICAgUmVmUHRyPFNo
YWRvd0luY2x1c2lvbj4gaXRlbSA9IHRoaXM7CisgICAgd2hpbGUgKGl0ZW0pIHsKKyAgICAgICAg
QVNTRVJUKCFpdGVtLT5wcmV2aW91cygpKTsKKyAgICAgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lv
bj4gbmV4dEl0ZW0gPSBpdGVtLT5tX25leHQ7CisgICAgICAgIGl0ZW0tPm1fbmV4dC5jbGVhcigp
OworICAgICAgICBpZiAobmV4dEl0ZW0pCisgICAgICAgICAgICBuZXh0SXRlbS0+bV9wcmV2aW91
cy5jbGVhcigpOworICAgICAgICBpdGVtID0gbmV4dEl0ZW07CisgICAgfQorfQorCitTaGFkb3dJ
bmNsdXNpb25MaXN0OjpTaGFkb3dJbmNsdXNpb25MaXN0KCkKK3sKK30KKworU2hhZG93SW5jbHVz
aW9uTGlzdDo6flNoYWRvd0luY2x1c2lvbkxpc3QoKQoreworICAgIEFTU0VSVChpc0VtcHR5KCkp
OworfQorCitTaGFkb3dJbmNsdXNpb24qIFNoYWRvd0luY2x1c2lvbkxpc3Q6OmZpbmQoTm9kZSog
Y29udGVudCkgY29uc3QKK3sKKyAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaXRlbSA9IGZpcnN0
KCk7IGl0ZW07IGl0ZW0gPSBpdGVtLT5uZXh0KCkpIHsKKyAgICAgICAgaWYgKGNvbnRlbnQgPT0g
aXRlbS0+Y29udGVudCgpKQorICAgICAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgfQorICAgIAor
ICAgIHJldHVybiAwOworfQorCit2b2lkIFNoYWRvd0luY2x1c2lvbkxpc3Q6OmNsZWFyKCkKK3sK
KyAgICBpZiAoaXNFbXB0eSgpKSB7CisgICAgICAgIEFTU0VSVCghbV9sYXN0KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIG1fZmlyc3QtPnVubGluaygpOworICAgIG1fZmlyc3QuY2xl
YXIoKTsKKyAgICBtX2xhc3QuY2xlYXIoKTsKK30KKwordm9pZCBTaGFkb3dJbmNsdXNpb25MaXN0
OjphcHBlbmQoUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGNoaWxkKQoreworICAgIGlmIChp
c0VtcHR5KCkpIHsKKyAgICAgICAgQVNTRVJUKCFtX2xhc3QpOworICAgICAgICBtX2ZpcnN0ID0g
bV9sYXN0ID0gY2hpbGQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2xhc3QtPmFw
cGVuZChjaGlsZCk7CisgICAgbV9sYXN0ID0gbV9sYXN0LT5uZXh0KCk7Cit9CisKK0NvbnRlbnRJ
bmNsdXNpb25TZWxlY3Rvcjo6Q29udGVudEluY2x1c2lvblNlbGVjdG9yKCkKK3sKK30KKworQ29u
dGVudEluY2x1c2lvblNlbGVjdG9yOjp+Q29udGVudEluY2x1c2lvblNlbGVjdG9yKCkKK3sKKyAg
ICBBU1NFUlQobV9jYW5kaWRhdGVzLmlzRW1wdHkoKSk7Cit9CisKK3ZvaWQgQ29udGVudEluY2x1
c2lvblNlbGVjdG9yOjpzZWxlY3QoSFRNTENvbnRlbnRFbGVtZW50KiBjb250ZW50RWxlbWVudCwg
U2hhZG93SW5jbHVzaW9uTGlzdCogaW5jbHVzaW9ucykKK3sKKyAgICBBU1NFUlQoaW5jbHVzaW9u
cy0+aXNFbXB0eSgpKTsKKworICAgIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHF1ZXJ5KGNvbnRlbnRF
bGVtZW50KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY2FuZGlkYXRlcy5zaXplKCk7
ICsraSkgeworICAgICAgICBOb2RlKiBjaGlsZCA9IG1fY2FuZGlkYXRlc1tpXS5nZXQoKTsKKyAg
ICAgICAgaWYgKCFjaGlsZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIXF1
ZXJ5Lm1hdGNoZXMoY2hpbGQpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgUmVm
UHRyPFNoYWRvd0luY2x1c2lvbj4gaW5jbHVzaW9uID0gU2hhZG93SW5jbHVzaW9uOjpjcmVhdGUo
Y29udGVudEVsZW1lbnQsIGNoaWxkKTsKKyAgICAgICAgaW5jbHVzaW9ucy0+YXBwZW5kKGluY2x1
c2lvbik7CisgICAgICAgIG1faW5jbHVzaW9uU2V0LmFkZChpbmNsdXNpb24uZ2V0KCkpOworICAg
ICAgICBtX2NhbmRpZGF0ZXNbaV0gPSAwOworICAgIH0KK30KKwordm9pZCBDb250ZW50SW5jbHVz
aW9uU2VsZWN0b3I6OnVuc2VsZWN0KFNoYWRvd0luY2x1c2lvbkxpc3QqIGxpc3QpCit7CisgICAg
Zm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IGxpc3QtPmZpcnN0KCk7IGluY2x1c2lv
bjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0KCkpCisgICAgICAgIG1faW5jbHVzaW9uU2V0
LnJlbW92ZShpbmNsdXNpb24pOworICAgIGxpc3QtPmNsZWFyKCk7Cit9CisKK1NoYWRvd0luY2x1
c2lvbiogQ29udGVudEluY2x1c2lvblNlbGVjdG9yOjpmaW5kRm9yKE5vZGUqIGtleSkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9pbmNsdXNpb25TZXQuZmluZChrZXkpOworfQorCit2b2lkIENvbnRl
bnRJbmNsdXNpb25TZWxlY3Rvcjo6ZGlkU2VsZWN0KCkKK3sKKyAgICBtX2NhbmRpZGF0ZXMuY2xl
YXIoKTsKK30KKwordm9pZCBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OndpbGxTZWxlY3RPdmVy
KFNoYWRvd1Jvb3QqIHNjb3BlKQoreworICAgIGlmICghbV9jYW5kaWRhdGVzLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIGZvciAoTm9kZSogbm9kZSA9IHNjb3BlLT5zaGFkb3dIb3N0
KCktPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCisgICAg
ICAgIG1fY2FuZGlkYXRlcy5hcHBlbmQobm9kZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmMGIxOTc4ZWJj
NzkxYmM0NjNjMjMwNGE5OTdmNTUxNTQxYjYyNjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oCkBAIC0wLDAgKzEsMTUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3JfaAorI2RlZmluZSBDb250ZW50SW5jbHVz
aW9uU2VsZWN0b3JfaAorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBI
VE1MQ29udGVudEVsZW1lbnQ7CitjbGFzcyBOb2RlOworY2xhc3MgU2hhZG93Um9vdDsKKworY2xh
c3MgU2hhZG93SW5jbHVzaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhZG93SW5jbHVzaW9uPiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBjcmVhdGUo
SFRNTENvbnRlbnRFbGVtZW50KiwgTm9kZSopOworCisgICAgSFRNTENvbnRlbnRFbGVtZW50KiBp
bmNsdWRlcigpIGNvbnN0IHsgcmV0dXJuIG1faW5jbHVkZXI7IH0KKyAgICBOb2RlKiBjb250ZW50
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50LmdldCgpOyB9CisgICAgU2hhZG93SW5jbHVzaW9u
KiBuZXh0KCkgY29uc3QgeyByZXR1cm4gbV9uZXh0LmdldCgpOyB9CisgICAgU2hhZG93SW5jbHVz
aW9uKiBwcmV2aW91cygpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXMuZ2V0KCk7IH0KKworICAg
IHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPik7CisgICAgdm9pZCB1bmxp
bmsoKTsKKworcHJpdmF0ZToKKyAgICBTaGFkb3dJbmNsdXNpb24oSFRNTENvbnRlbnRFbGVtZW50
KiwgTm9kZSopOworCisgICAgSFRNTENvbnRlbnRFbGVtZW50KiBtX2luY2x1ZGVyOworICAgIFJl
ZlB0cjxOb2RlPiBtX2NvbnRlbnQ7CisgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbV9uZXh0
OworICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG1fcHJldmlvdXM7Cit9OworCitpbmxpbmUg
U2hhZG93SW5jbHVzaW9uOjpTaGFkb3dJbmNsdXNpb24oSFRNTENvbnRlbnRFbGVtZW50KiBpbmNs
dWRlciwgTm9kZSogY29udGVudCkKKyAgICA6IG1faW5jbHVkZXIoaW5jbHVkZXIpLCBtX2NvbnRl
bnQoY29udGVudCkKK3sgfQorCitpbmxpbmUgUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IFNo
YWRvd0luY2x1c2lvbjo6Y3JlYXRlKEhUTUxDb250ZW50RWxlbWVudCogaW5jbHVkZXIsIE5vZGUq
IGNvbnRlbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFkb3dJbmNsdXNpb24oaW5j
bHVkZXIsIGNvbnRlbnQpKTsKK30KKworY2xhc3MgU2hhZG93SW5jbHVzaW9uTGlzdCB7CitwdWJs
aWM6CisgICAgU2hhZG93SW5jbHVzaW9uTGlzdCgpOworICAgIH5TaGFkb3dJbmNsdXNpb25MaXN0
KCk7CisKKyAgICBTaGFkb3dJbmNsdXNpb24qIGZpcnN0KCkgY29uc3QgeyByZXR1cm4gbV9maXJz
dC5nZXQoKTsgfQorICAgIFNoYWRvd0luY2x1c2lvbiogbGFzdCgpIGNvbnN0IHsgcmV0dXJuIG1f
bGFzdC5nZXQoKTsgfQorICAgIFNoYWRvd0luY2x1c2lvbiogZmluZChOb2RlKikgY29uc3Q7Cisg
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fZmlyc3Q7IH0KKworICAgIHZvaWQg
Y2xlYXIoKTsKKyAgICB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4pOwor
Citwcml2YXRlOgorICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG1fZmlyc3Q7CisgICAgUmVm
UHRyPFNoYWRvd0luY2x1c2lvbj4gbV9sYXN0OworfTsKKworCitjbGFzcyBTaGFkb3dJbmNsdXNp
b25TZXQgeworcHVibGljOgorICAgIHZvaWQgYWRkKFNoYWRvd0luY2x1c2lvbiogdmFsdWUpIHsg
bV9zZXQuYWRkKHZhbHVlKTsgfQorICAgIHZvaWQgcmVtb3ZlKFNoYWRvd0luY2x1c2lvbiogdmFs
dWUpIHsgbV9zZXQucmVtb3ZlKHZhbHVlKTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2V0LmlzRW1wdHkoKTsgfQorICAgIFNoYWRvd0luY2x1c2lvbiogZmluZChOb2Rl
KiBrZXkpIGNvbnN0OworCitwcml2YXRlOgorICAgIHN0cnVjdCBUcmFuc2xhdG9yIHsKKyAgICBw
dWJsaWM6CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IE5vZGUqIGtleSkgeyBy
ZXR1cm4gUHRySGFzaDxjb25zdCBOb2RlKj46Omhhc2goa2V5KTsgfQorICAgICAgICBzdGF0aWMg
Ym9vbCBlcXVhbChjb25zdCBTaGFkb3dJbmNsdXNpb24qIGluY2x1c2lvbiwgY29uc3QgTm9kZSog
Y29udGVudCkgeyByZXR1cm4gaW5jbHVzaW9uLT5jb250ZW50KCkgPT0gY29udGVudDsgfQorICAg
IH07CisKKyAgICBzdHJ1Y3QgSGFzaCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKFNo
YWRvd0luY2x1c2lvbioga2V5KSB7IHJldHVybiBQdHJIYXNoPGNvbnN0IE5vZGUqPjo6aGFzaChr
ZXktPmNvbnRlbnQoKSk7IH0KKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoU2hhZG93SW5jbHVz
aW9uKiBhLCBTaGFkb3dJbmNsdXNpb24qIGIpIHsgcmV0dXJuIGEtPmNvbnRlbnQoKSA9PSBiLT5j
b250ZW50KCk7IH0KKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICB9OworCisgICAgdHlwZWRlZiBIYXNoU2V0PFNoYWRv
d0luY2x1c2lvbiosIEhhc2g+IFBvaW50ZXJTZXQ7CisKKyAgICBQb2ludGVyU2V0IG1fc2V0Owor
fTsKKworaW5saW5lIFNoYWRvd0luY2x1c2lvbiogU2hhZG93SW5jbHVzaW9uU2V0OjpmaW5kKE5v
ZGUqIGtleSkgY29uc3QKK3sKKyAgICBQb2ludGVyU2V0OjppdGVyYXRvciBmb3VuZCA9IG1fc2V0
LmZpbmQ8Tm9kZSosIFNoYWRvd0luY2x1c2lvblNldDo6VHJhbnNsYXRvcj4oa2V5KTsKKyAgICBy
ZXR1cm4gZm91bmQgIT0gbV9zZXQuZW5kKCkgPyAqZm91bmQgOiAwOworfQorCitjbGFzcyBDb250
ZW50SW5jbHVzaW9uU2VsZWN0b3IgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRlbnRJ
bmNsdXNpb25TZWxlY3Rvcik7CitwdWJsaWM6CisgICAgQ29udGVudEluY2x1c2lvblNlbGVjdG9y
KCk7CisgICAgfkNvbnRlbnRJbmNsdXNpb25TZWxlY3RvcigpOworCisgICAgdm9pZCBzZWxlY3Qo
SFRNTENvbnRlbnRFbGVtZW50KiwgU2hhZG93SW5jbHVzaW9uTGlzdCopOworICAgIHZvaWQgdW5z
ZWxlY3QoU2hhZG93SW5jbHVzaW9uTGlzdCopOworICAgIFNoYWRvd0luY2x1c2lvbiogZmluZEZv
cihOb2RlKiBrZXkpIGNvbnN0OworCisgICAgdm9pZCB3aWxsU2VsZWN0T3ZlcihTaGFkb3dSb290
Kik7CisgICAgdm9pZCBkaWRTZWxlY3QoKTsKKyAgICBib29sIGhhc0NhbmRpZGF0ZXMoKSBjb25z
dCB7IHJldHVybiAhbV9jYW5kaWRhdGVzLmlzRW1wdHkoKTsgfQorCitwcml2YXRlOgorICAgIHZv
aWQgcmVtb3ZlRnJvbVNldChTaGFkb3dJbmNsdXNpb25MaXN0Kik7CisgICAgdm9pZCBhZGRUb1Nl
dChTaGFkb3dJbmNsdXNpb25MaXN0Kik7CisKKyAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbV9j
YW5kaWRhdGVzOworICAgIFNoYWRvd0luY2x1c2lvblNldCBtX2luY2x1c2lvblNldDsKK307CisK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29udGVudFNlbGVjdG9yUXVlcnku
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJiZjhlNTE3MTA3ZDk4ZjU1ZmQwM2EyMzkzZTU5MDhiYmE3ZTRmOWEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRTZWxlY3RvclF1
ZXJ5LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkNvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCisKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNs
dWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDb250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNl
bGVjdG9yUXVlcnkoSFRNTENvbnRlbnRFbGVtZW50KiBlbGVtZW50KQorICAgIDogbV9jb250ZW50
RWxlbWVudChlbGVtZW50KQorICAgICwgbV9zZWxlY3RvckNoZWNrZXIoZWxlbWVudC0+ZG9jdW1l
bnQoKSwgIWVsZW1lbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQoreworICAgIG1fc2Vs
ZWN0b3JDaGVja2VyLnNldENvbGxlY3RpbmdSdWxlc09ubHkodHJ1ZSk7CisKKyAgICBpZiAoZWxl
bWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgZWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBDU1NQYXJzZXIgcGFyc2VyKHRydWUpOworICAgIHBhcnNl
ci5wYXJzZVNlbGVjdG9yKGVsZW1lbnQtPnNlbGVjdCgpLCBlbGVtZW50LT5kb2N1bWVudCgpLCBt
X3NlbGVjdG9yTGlzdCk7CisKKyAgICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKG1fc2VsZWN0b3JM
aXN0KTsKK30KKworYm9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hlcyhOb2RlKiBub2Rl
KSBjb25zdAoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIEFTU0VSVChub2RlLT5wYXJlbnROb2RlKCkgPT0gbV9jb250ZW50
RWxlbWVudC0+c2hhZG93VHJlZVJvb3ROb2RlKCktPnNoYWRvd0hvc3QoKSk7CisKKyAgICBpZiAo
bV9jb250ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9jb250ZW50RWxlbWVudC0+
c2VsZWN0KCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghbm9k
ZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
bV9zZWxlY3RvcnMubWF0Y2hlcyhtX3NlbGVjdG9yQ2hlY2tlciwgdG9FbGVtZW50KG5vZGUpKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db250ZW50U2VsZWN0b3JR
dWVyeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJkYWZiOTkzYmFjZjljNzBkYTM4MGYzMzY3ZWZhNjhkMWI4OTVmMTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKQEAg
LTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgQ29udGVudFNlbGVjdG9yUXVlcnlfaAorI2RlZmluZSBDb250
ZW50U2VsZWN0b3JRdWVyeV9oCisKKyNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKKyNpbmNs
dWRlICJTZWxlY3RvckNoZWNrZXIuaCIKKyNpbmNsdWRlICJTZWxlY3RvclF1ZXJ5LmgiCisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBOb2RlOworY2xhc3MgSFRNTENv
bnRlbnRFbGVtZW50OworCitjbGFzcyBDb250ZW50U2VsZWN0b3JRdWVyeSB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQ29udGVudFNlbGVjdG9yUXVlcnkpOworcHVibGljOgorICAgIGV4cGxp
Y2l0IENvbnRlbnRTZWxlY3RvclF1ZXJ5KEhUTUxDb250ZW50RWxlbWVudCopOworCisgICAgYm9v
bCBtYXRjaGVzKE5vZGUqKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBIVE1MQ29udGVudEVsZW1l
bnQqIG1fY29udGVudEVsZW1lbnQ7CisgICAgU2VsZWN0b3JEYXRhTGlzdCBtX3NlbGVjdG9yczsK
KyAgICBDU1NTZWxlY3Rvckxpc3QgbV9zZWxlY3Rvckxpc3Q7CisgICAgU2VsZWN0b3JDaGVja2Vy
IG1fc2VsZWN0b3JDaGVja2VyOworfTsKKworfQorCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDb250ZW50RWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMxNGZlY2U5YWJjMzkz
MmMyZjVjMTUwNmQyZWRhMDE5OWYyZjk1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtMCwwICsxLDk0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgorCisjaW5jbHVk
ZSAiQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ29udGVudFNlbGVjdG9y
UXVlcnkuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1l
LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBIVE1MTmFtZXM6OnNlbGVjdEF0dHI7
CisKK1Bhc3NSZWZQdHI8SFRNTENvbnRlbnRFbGVtZW50PiBIVE1MQ29udGVudEVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChRdWFs
aWZpZWROYW1lLCB0YWdOYW1lLCAobnVsbEF0b20sICJ3ZWJraXRTaGFkb3dDb250ZW50IiwgSFRN
TE5hbWVzOjpkaXZUYWcubmFtZXNwYWNlVVJJKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEhUTUxDb250ZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitIVE1MQ29udGVu
dEVsZW1lbnQ6OkhUTUxDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudChuYW1lLCBkb2N1bWVudCkKKyAg
ICAsIG1faW5jbHVzaW9ucyhhZG9wdFB0cihuZXcgU2hhZG93SW5jbHVzaW9uTGlzdCgpKSkKK3sK
K30KKworSFRNTENvbnRlbnRFbGVtZW50Ojp+SFRNTENvbnRlbnRFbGVtZW50KCkKK3sKK30KKwor
dm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OmF0dGFjaCgpCit7CisgICAgQVNTRVJUKCFmaXJzdENo
aWxkKCkpOyAvLyBDdXJyZW50bHkgZG9lc24ndCBzdXBwb3J0IGFueSBsaWdodCBjaGlsZC4KKyAg
ICBIVE1MRWxlbWVudDo6YXR0YWNoKCk7CisKKyAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRv
U2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkpIHsKKyAgICAgICAgQ29udGVudEluY2x1
c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmVuc3VyZUluY2x1c2lvbnMoKTsKKyAgICAg
ICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1faW5jbHVzaW9ucy5nZXQoKSk7CisgICAgICAgIHNlbGVj
dG9yLT5zZWxlY3QodGhpcywgbV9pbmNsdXNpb25zLmdldCgpKTsKKyAgICAgICAgZm9yIChTaGFk
b3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IG1faW5jbHVzaW9ucy0+Zmlyc3QoKTsgaW5jbHVzaW9u
OyBpbmNsdXNpb24gPSBpbmNsdXNpb24tPm5leHQoKSkKKyAgICAgICAgICAgIGluY2x1c2lvbi0+
Y29udGVudCgpLT5kZXRhY2goKTsKKyAgICAgICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1
c2lvbiA9IG1faW5jbHVzaW9ucy0+Zmlyc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNs
dXNpb24tPm5leHQoKSkKKyAgICAgICAgICAgIGluY2x1c2lvbi0+Y29udGVudCgpLT5hdHRhY2go
KTsKKyAgICB9Cit9CisKK3ZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpkZXRhY2goKQoreworICAg
IGlmIChTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgp
KSkgeworICAgICAgICBpZiAoQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJv
b3QtPmluY2x1c2lvbnMoKSkKKyAgICAgICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdChtX2luY2x1
c2lvbnMuZ2V0KCkpOworICAgIH0KKworICAgIEFTU0VSVChtX2luY2x1c2lvbnMtPmlzRW1wdHko
KSk7CisgICAgSFRNTEVsZW1lbnQ6OmRldGFjaCgpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcm
IEhUTUxDb250ZW50RWxlbWVudDo6c2VsZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0QXR0
cmlidXRlKHNlbGVjdEF0dHIpOworfQorCit2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6c2V0U2Vs
ZWN0KGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0VmFsdWUpCit7CisgICAgc2V0QXR0cmlidXRl
KHNlbGVjdEF0dHIsIHNlbGVjdFZhbHVlKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENvbnRlbnRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM3NzcyYmQ1OGFiZTcyZjM5ZDg2NzRlYWE0
OGI1ZmYxMDcwNjhhOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENvbnRlbnRFbGVtZW50LmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSFRNTENvbnRlbnRFbGVt
ZW50X2gKKyNkZWZpbmUgSFRNTENvbnRlbnRFbGVtZW50X2gKKworI2luY2x1ZGUgIkhUTUxFbGVt
ZW50LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBDb250ZW50U2VsZWN0b3JRdWVyeTsKK2NsYXNzIFNoYWRvd0luY2x1c2lvbkxpc3Q7
CisKKy8vIE5PVEU6IEN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9lc24ndCBzdXBwb3J0IGR5bmFt
aWMgaW5zZXJ0aW9uL2RlbGV0aW9uIG9mIEhUTUxDb250ZW50RWxlbWVudC4KKy8vIFlvdSBzaG91
bGQgY3JlYXRlIEhUTUxDb250ZW50RWxlbWVudCBkdXJpbmcgdGhlIGhvc3QgY29uc3RydWN0aW9u
LgorY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCopOworCisgICAgdmlydHVhbCB+SFRNTENvbnRlbnRFbGVtZW50KCk7CisgICAgdmlydHVh
bCB2b2lkIGF0dGFjaCgpOworICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKKworICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgc2VsZWN0KCkgY29uc3Q7CisKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5
IHRoaXMgY29uc3RydWN0b3IgYWNjZXB0cyB3aWRlciBxdWVyeSB0aGFuIHNoYWRvdyBkb20gc3Bl
Yy4KKyAgICAvLyBGb3IgZXhhbXBsZSwgYSBzZWxlY3RvciBxdWVyeSBzaG91bGQgbm90IGluY2x1
ZGUgY29udGV4dHVhbCBzZWxlY3RvcnMuCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NTk0NgorICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgd2UgZG9u
J3Qgc3VwcG9ydCBzZXR0aW5nIHNlbGVjdCB2YWx1ZSBkeW5hbWljYWxseS4KKyAgICAvLyBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjYxCisgICAgdm9pZCBz
ZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJik7CisKKyAgICBjb25zdCBTaGFkb3dJbmNsdXNp
b25MaXN0KiBpbmNsdXNpb25zKCkgY29uc3QgeyByZXR1cm4gbV9pbmNsdXNpb25zLmdldCgpOyB9
CisKK3Byb3RlY3RlZDoKKyAgICBIVE1MQ29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBib29sIGlzQ29udGVudEVs
ZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJl
bmRlclN0eWxlKikgeyByZXR1cm4gMDsgfQorCisgICAgT3duUHRyPFNoYWRvd0luY2x1c2lvbkxp
c3Q+IG1faW5jbHVzaW9uczsKK307CisKK2lubGluZSBIVE1MQ29udGVudEVsZW1lbnQqIHRvSFRN
TENvbnRlbnRFbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKCFub2RlIHx8IG5vZGUt
PmlzQ29udGVudEVsZW1lbnQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxDb250ZW50
RWxlbWVudCo+KG5vZGUpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4IGFhYTA1ZTE0NTc0ZDQwNzlmY2UwOGUxNTY2Y2Uw
YmJkZDY0ZjczNjUuLmRkZWM3Mzg3NjY0ODAwM2UyZjkxYzc3MGQxYTgxNTIwMjMyYjdmNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTIzLDEyICsy
MywxMiBAQAogCiAjaWYgRU5BQkxFKERFVEFJTFMpCiAKKyNpbmNsdWRlICJIVE1MQ29udGVudEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MU3VtbWFyeUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTW91c2VF
dmVudC5oIgogI2luY2x1ZGUgIlJlbmRlckRldGFpbHMuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250
ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUZXh0Lmgi
CiAKQEAgLTQyLDEzICs0MiwxMyBAQCBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdW1tYXJ5
UXVlcnlTZWxlY3RvcigpCiAgICAgcmV0dXJuIHNlbGVjdG9yOwogfTsKIAotY2xhc3MgRGV0YWls
c0NvbnRlbnRFbGVtZW50IDogcHVibGljIFNoYWRvd0NvbnRlbnRFbGVtZW50IHsKK2NsYXNzIERl
dGFpbHNDb250ZW50RWxlbWVudCA6IHB1YmxpYyBIVE1MQ29udGVudEVsZW1lbnQgewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERldGFpbHNDb250ZW50RWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50Kik7CiAKIHByaXZhdGU6CiAgICAgRGV0YWlsc0NvbnRlbnRFbGVtZW50KERvY3VtZW50
KiBkb2N1bWVudCkKLSAgICAgICAgOiBTaGFkb3dDb250ZW50RWxlbWVudChIVE1MTmFtZXM6OmRp
dlRhZywgZG9jdW1lbnQpCisgICAgICAgIDogSFRNTENvbnRlbnRFbGVtZW50KEhUTUxOYW1lczo6
ZGl2VGFnLCBkb2N1bWVudCkKICAgICB7CiAgICAgfQogfTsKQEAgLTU4LDEzICs1OCwxMyBAQCBQ
YXNzUmVmUHRyPERldGFpbHNDb250ZW50RWxlbWVudD4gRGV0YWlsc0NvbnRlbnRFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGV0YWlsc0Nv
bnRlbnRFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKLWNsYXNzIERldGFpbHNTdW1tYXJ5RWxlbWVu
dCA6IHB1YmxpYyBTaGFkb3dDb250ZW50RWxlbWVudCB7CitjbGFzcyBEZXRhaWxzU3VtbWFyeUVs
ZW1lbnQgOiBwdWJsaWMgSFRNTENvbnRlbnRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCiBw
cml2YXRlOgogICAgIERldGFpbHNTdW1tYXJ5RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCi0g
ICAgICAgIDogU2hhZG93Q29udGVudEVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50
KQorICAgICAgICA6IEhUTUxDb250ZW50RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1l
bnQpCiAgICAgewogICAgICAgICBzZXRTZWxlY3Qoc3VtbWFyeVF1ZXJ5U2VsZWN0b3IoKSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9u
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAppbmRl
eCBiNjI0ZTYyN2JhMTdjMTkyNzU1Nzc0MjZlNDZmYjNmYjYxMTM5ZGNiLi4yNzRhMTg2ZjE2MTg5
ZmE0MWVlYTAzNjU2MTYzOTJlMDIxMTBiOTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50c0FsbEluT25lLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkhUTUxC
b2R5RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIgogI2luY2x1
ZGUgIkhUTUxDYW52YXNFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQu
Y3BwIgogI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxE
ZXRhaWxzRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTERMaXN0RWxlbWVudC5jcHAiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggZWNmMTA4NWNlMzBm
ZTBmM2I5M2UxY2RlMjVlYjU0NGZhN2RiNGY0Yi4uOTkyNTYyN2ZlNWNlM2FhNGE5OWIyMzMwMTUy
ODBjMGM3NDM2ODUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmNwcApAQCAtMjQsMTIgKzI0LDEyIEBACiAjaWYgRU5BQkxFKERFVEFJTFMpCiAKICNpbmNsdWRl
ICJEZXRhaWxzTWFya2VyQ29udHJvbC5oIgorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxEZXRhaWxzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQu
aCIKICNpbmNsdWRlICJSZW5kZXJTdW1tYXJ5LmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVs
ZW1lbnQuaCIKIAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKIApAQCAtMzcsMTMgKzM3LDEzIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotY2xh
c3MgU3VtbWFyeUNvbnRlbnRFbGVtZW50IDogcHVibGljIFNoYWRvd0NvbnRlbnRFbGVtZW50IHsK
K2NsYXNzIFN1bW1hcnlDb250ZW50RWxlbWVudCA6IHB1YmxpYyBIVE1MQ29udGVudEVsZW1lbnQg
ewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN1bW1hcnlDb250ZW50RWxlbWVudD4g
Y3JlYXRlKERvY3VtZW50Kik7CiAKIHByaXZhdGU6CiAgICAgU3VtbWFyeUNvbnRlbnRFbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICAgICAgOiBTaGFkb3dDb250ZW50RWxlbWVudChIVE1M
TmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCisgICAgICAgIDogSFRNTENvbnRlbnRFbGVtZW50KEhU
TUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKICAgICB7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3ODNjMzgwNTY5M2FlYzYzZDRkOTg1YmQ3OGMzODRm
ZDQ0ODRjNGVjLi4yNDg5NjdiMzNhZjlmZTlhOGU2MmJmN2VmZmNhMzExMzRjNDU2ZDljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxUZXh0
QXJlYUVsZW1lbnQuaCIKQEAgLTQ2LDcgKzQ3LDYgQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
LSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKICNpbmNsdWRlICJTcGVsbENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIK
QEAgLTEyNiwxNCArMTI2LDE0IEBAIGJvb2wgSW50ZXJuYWxzOjppc1ByZWxvYWRlZChEb2N1bWVu
dCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdXJsKQogICAgIHJldHVybiBkb2N1bWVudC0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKS0+aXNQcmVsb2FkZWQodXJsKTsKIH0KIAotUGFzc1JlZlB0cjxF
bGVtZW50PiBJbnRlcm5hbHM6OmNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KERvY3VtZW50KiBk
b2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPEVsZW1lbnQ+IEludGVybmFs
czo6Y3JlYXRlQ29udGVudEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBpZiAoIWRvY3VtZW50KSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NF
U1NfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1cm4gU2hhZG93Q29u
dGVudEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgcmV0dXJuIEhUTUxDb250ZW50RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIH0KIAogRWxlbWVudCogSW50ZXJuYWxzOjpnZXRFbGVt
ZW50QnlJZEluU2hhZG93Um9vdChOb2RlKiBzaGFkb3dSb290LCBjb25zdCBTdHJpbmcmIGlkLCBF
eGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGVkNDcz
NzA1NWI5OTM4M2RhOWIyODAyMWFmM2Y2OTU5YzYxZDM1ZjcuLjg5OWQ3ZGJiMTYxZjMxMmY1NjU0
ZWUyY2RhNzRjOWQ3ZDQxODkwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAt
NTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVTaGFkb3dSb290KEVsZW1lbnQq
IGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBFbGVtZW50KiBpbmNsdWRlckZvcihOb2RlKiwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIFN0cmluZyBzaGFkb3dQc2V1ZG9JZChFbGVtZW50KiwgRXhj
ZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlU2hhZG93Q29udGVu
dEVsZW1lbnQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxFbGVt
ZW50PiBjcmVhdGVDb250ZW50RWxlbWVudChEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBFbGVtZW50KiBnZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChOb2RlKiBzaGFkb3dSb290LCBj
b25zdCBTdHJpbmcmIGlkLCBFeGNlcHRpb25Db2RlJik7CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09M
T1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZjU2ZDFhZjc0YThlMzVk
ZDQ3YmQ0ZTZjNDlmMTI1ZTdlYWFjM2E1NS4uOGYxNmIzMmM4NTZhYzJmMWY2Zjg1ODZjOTQxYmI1
M2Q3Yjc2MjRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMzUsNyAr
MzUsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgRWxlbWVudCBpbmNsdWRlckZvcihpbiBO
b2RlIG5vZGUpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCByZW1vdmVTaGFk
b3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBE
T01TdHJpbmcgc2hhZG93UHNldWRvSWQoaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIEVsZW1lbnQgY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoaW4g
RG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBFbGVtZW50
IGNyZWF0ZUNvbnRlbnRFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChpbiBO
b2RlIHNoYWRvd1Jvb3QsIGluIERPTVN0cmluZyBpZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAK
ICNpZiBkZWZpbmVkKEVOQUJMRV9JTlBVVF9DT0xPUikgJiYgRU5BQkxFX0lOUFVUX0NPTE9SCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggMWFhODQ4MTY3YmVkYzg1NjQ4ZWM0ZjRhN2U3ZmJhMWI0
MjI4MmNmYi4uNWNmYTc0NGQ5NjU0MTdlZDg2OWMxMmU2Y2M2MzFiNTNjZWEyM2E1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyLmRlZgpAQCAtMTQ5LDggKzE0OSw4IEBAIEVYUE9SVFMKICAgICAgICAgP2Fk
ZEBBdG9taWNTdHJpbmdAV1RGQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEAy
QFBCRUBaCiAgICAgICAgID9hZGRTbG93Q2FzZUBBdG9taWNTdHJpbmdAV1RGQEBDQT9BVj8kUGFz
c1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEAyQFBBVlN0cmluZ0ltcGxAMkBAWgogICAgICAgICA/
Y2FjaGVET01TdHJ1Y3R1cmVAV2ViQ29yZUBAWUFQQVZTdHJ1Y3R1cmVASlNDQEBQQVZKU0RPTUds
b2JhbE9iamVjdEAxQFBBVjIzQFBCVUNsYXNzSW5mb0AzQEBaCisgICAgICAgID9jcmVhdGVASFRN
TENvbnRlbnRFbGVtZW50QFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZIVE1MQ29udGVudEVs
ZW1lbnRAV2ViQ29yZUBAQFdURkBAUEFWRG9jdW1lbnRAMkBAWgogICAgICAgICA/Y3JlYXRlQFJh
bmdlQFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBWPyRQ
YXNzUmVmUHRyQFZEb2N1bWVudEBXZWJDb3JlQEBANEBWPyRQYXNzUmVmUHRyQFZOb2RlQFdlYkNv
cmVAQEA0QEgxSEBaCi0gICAgICAgID9jcmVhdGVAU2hhZG93Q29udGVudEVsZW1lbnRAV2ViQ29y
ZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlNoYWRvd0NvbnRlbnRFbGVtZW50QFdlYkNvcmVAQEBXVEZA
QFBBVkRvY3VtZW50QDJAQFoKICAgICAgICAgP2NyZWF0ZVdyYXBwZXJAV2ViQ29yZUBAWUE/QVZK
U1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZOb2Rl
QDFAQFoKICAgICAgICAgP2Vuc3VyZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQUVQQVZT
aGFkb3dSb290QDJAWFoKICAgICAgICAgP2VxdWFsQFdURkBAWUFfTlBCVlN0cmluZ0ltcGxAMUBQ
QkVAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDZiNjQ0OGRiMTYxYWVi
NjcxODkwNmQ2MmY3NzBiOWE3ZTRhOGVjMGQuLjQxNmQ3MzJjNzEwNDI2ZGM3OTY4NDU5MzJkY2Rl
ZWI0OGNkOThmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRl
LmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE0Miw4
ICsxNDIsOCBAQCBFWFBPUlRTCiAgICAgICAgID9hZGRAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/
JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAMkBQQkVAWgogICAgICAgICA/YWRkU2xvd0Nh
c2VAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBA
MkBQQVZTdHJpbmdJbXBsQDJAQFoKICAgICAgICAgP2NhY2hlRE9NU3RydWN0dXJlQFdlYkNvcmVA
QFlBUEFWU3RydWN0dXJlQEpTQ0BAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVYyM0BQQlVDbGFz
c0luZm9AM0BAWgorICAgICAgICA/Y3JlYXRlQEhUTUxDb250ZW50RWxlbWVudEBXZWJDb3JlQEBT
QT9BVj8kUGFzc1JlZlB0ckBWSFRNTENvbnRlbnRFbGVtZW50QFdlYkNvcmVAQEBXVEZAQFBBVkRv
Y3VtZW50QDJAQFoKICAgICAgICAgP2NyZWF0ZUBSYW5nZUBXZWJDb3JlQEBTQT9BVj8kUGFzc1Jl
ZlB0ckBWUmFuZ2VAV2ViQ29yZUBAQFdURkBAVj8kUGFzc1JlZlB0ckBWRG9jdW1lbnRAV2ViQ29y
ZUBAQDRAVj8kUGFzc1JlZlB0ckBWTm9kZUBXZWJDb3JlQEBANEBIMUhAWgotICAgICAgICA/Y3Jl
YXRlQFNoYWRvd0NvbnRlbnRFbGVtZW50QFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZTaGFk
b3dDb250ZW50RWxlbWVudEBXZWJDb3JlQEBAV1RGQEBQQVZEb2N1bWVudEAyQEBaCiAgICAgICAg
ID9jcmVhdGVXcmFwcGVyQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAz
QFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9kZUAxQEBaCiAgICAgICAgID9lbnN1cmVTaGFk
b3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFUEFWU2hhZG93Um9vdEAyQFhaCiAgICAgICAgID9l
cXVhbEBXVEZAQFlBX05QQlZTdHJpbmdJbXBsQDFAUEJFQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
CmluZGV4IDE1YjY5NTdhOWUyNDIzMTkwYmFjMWRkMjFjZmIxNjczZmQ3MzE4ZGEuLjMzOTNhYWEw
NzIyZDkyODQxYThmYjUwY2JiYWY5NzkyODkxMjk1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRv
dG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
cgpAQCAtNTMsNyArNTMsNiBAQCBfWk43V2ViQ29yZTE3Y2FjaGVET01TdHJ1Y3R1cmVFUE5TXzE3
SlNET01HbG9iYWxPYmplY3RFUE4zSlNDOVN0cnVjdHVyZUVQS05TMl85QwogX1pON1dlYkNvcmUx
OUluc3BlY3RvckNvbnRyb2xsZXIzOXNldFJlc291cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVy
bmFsc0VpaTsKIF9aTjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29udGV4dEMxRVBOU180Tm9kZUU7
CiBfWk43V2ViQ29yZTIwTm9kZVJlbmRlcmluZ0NvbnRleHREMUV2OwotX1pON1dlYkNvcmUyMFNo
YWRvd0NvbnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RTsKIF9aTjdXZWJDb3JlMjFn
ZXRDYWNoZWRET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUEtOM0pTQzlDbGFz
c0luZm9FOwogX1pON1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzdFbGVtZW50
RWo7CiBfWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBO
U180Tm9kZUVOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0U7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWMyM2Yz
ODIzNjZjMDA3MWFjYTUxYWNhOWU4MjIyNTI2MGYzYThlMi4uODJmZDE0NTI1YTU5M2EyNjExODM1
M2QyNGU3OTQ1Y2RlYzUyNTg5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAxLTE2ICBT
aGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFk
b3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVt
ZW50LWluY2x1ZGVyLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1yZW5kZXJlcnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY3JlYXRlLWNv
bnRlbnQtZWxlbWVudC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29u
dGVudHMtc2VsZWN0Lmh0bWw6CisKIDIwMTItMDEtMTYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBERkcgc2hvdWxkIGJlIGFibGUgdG8gZG8gSlMgYW5kIGN1c3Rv
bSBnZXR0ZXIgY2FjaGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2NvbnRlbnQtZWxlbWVudC1pbmNsdWRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2NvbnRlbnQtZWxlbWVudC1pbmNsdWRlci5odG1sCmluZGV4IGYxOWJkMTc2ODk5ODgxZTJi
ZGI5Y2ZkYTE0ZDc4MDAzMzcyNWZmMTMuLmZiNmE1YjEzMWRkYTY2MmVmNTBkMjdjMjJiNTk3NDM1
NThjOGNhNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50
LWVsZW1lbnQtaW5jbHVkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y29udGVudC1lbGVtZW50LWluY2x1ZGVyLmh0bWwKQEAgLTMzLDcgKzMzLDcgQEAgc2hvdWxkQmUo
ImludGVybmFscy5pbmNsdWRlckZvcihjaGlsZE9mRWxlbWVudFdpdGhTaGFkb3cpIiwgIm51bGwi
KTsKIHZhciBlbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKIGNvbnRhaW5lci5hcHBlbmRDaGlsZChlbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQp
OwogdmFyIHNoYWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGludGVybmFscy5l
bnN1cmVTaGFkb3dSb290KGVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7Ci12YXIgc2hhZG93Q29u
dGVudE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZVNoYWRvd0Nv
bnRlbnRFbGVtZW50KGRvY3VtZW50KTsKK3ZhciBzaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNo
YWRvd0NvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpOwog
c2hhZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50LmFwcGVuZENoaWxkKHNoYWRvd0Nv
bnRlbnRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7CiB2YXIgY2hpbGRPZkVsZW1lbnRXaXRo
U2hhZG93Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKIGVsZW1lbnRX
aXRoU2hhZG93Q29udGVudC5hcHBlbmRDaGlsZChjaGlsZE9mRWxlbWVudFdpdGhTaGFkb3dDb250
ZW50KTsKQEAgLTU4LDcgKzU4LDcgQEAgZWxlbWVudFdpdGhTaGFkb3cucmVtb3ZlQ2hpbGQobW92
aW5nQ2hpbGQpOwogdmFyIGFub3RoZXJFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIGNvbnRhaW5lci5hcHBlbmRDaGlsZChhbm90aGVyRWxl
bWVudFdpdGhTaGFkb3dDb250ZW50KTsKIHZhciBhbm90aGVyU2hhZG93Um9vdE9mRWxlbWVudFdp
dGhTaGFkb3dDb250ZW50ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QoYW5vdGhlckVsZW1l
bnRXaXRoU2hhZG93Q29udGVudCk7Ci12YXIgYW5vdGhlclNoYWRvd0NvbnRlbnRPZkVsZW1lbnRX
aXRoU2hhZG93Q29udGVudCA9IGludGVybmFscy5jcmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChk
b2N1bWVudCk7Cit2YXIgYW5vdGhlclNoYWRvd0NvbnRlbnRPZkVsZW1lbnRXaXRoU2hhZG93Q29u
dGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCk7CiBhbm90aGVy
U2hhZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50LmFwcGVuZENoaWxkKGFub3RoZXJT
aGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQpOwogCiBhbm90aGVyRWxlbWVu
dFdpdGhTaGFkb3dDb250ZW50LmFwcGVuZENoaWxkKG1vdmluZ0NoaWxkKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXJlbmRlcmVy
cy5odG1sCmluZGV4IDkxNTE5YjhiYzllZDk4ZTUzNGJmMzdlMTQ1ZGExMzE1NGI1YmM4YjguLjk3
N2I4OWNjMDE5NGQxZTVkMzIyYjdiYWJjOWYxNTU2NTQ5Mjk4MzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMu
aHRtbApAQCAtNjIsNyArNjIsNyBAQCBmdW5jdGlvbiBjcmVhdGVUcmVlRnJvbShodG1sKQogICAg
IHZhciBjb250ZW50UGxhY2Vob2xkZXIgPSByb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJDT05U
RU5UIilbMF07CiAgICAgaWYgKGNvbnRlbnRQbGFjZWhvbGRlcikgewogICAgICAgICB2YXIgY29u
dGVudFBhcmVudCA9IGNvbnRlbnRQbGFjZWhvbGRlci5wYXJlbnROb2RlOwotICAgICAgICBjb250
ZW50UGFyZW50LnJlcGxhY2VDaGlsZCh3aW5kb3cuaW50ZXJuYWxzLmNyZWF0ZVNoYWRvd0NvbnRl
bnRFbGVtZW50KGRvY3VtZW50KSwgY29udGVudFBsYWNlaG9sZGVyKTsKKyAgICAgICAgY29udGVu
dFBhcmVudC5yZXBsYWNlQ2hpbGQod2luZG93LmludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVu
dChkb2N1bWVudCksIGNvbnRlbnRQbGFjZWhvbGRlcik7CiAgICAgfTsKIAogICAgIHJldHVybiBy
b290OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NyZWF0ZS1jb250
ZW50LWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcmVhdGUtY29u
dGVudC1lbGVtZW50Lmh0bWwKaW5kZXggYmRiNjAwMTZmMGRhMjQwNGY1ZGExYzg3OGNmMTg5ZDg5
MTJiNzhjZC4uODMyMTIzMWJjMzUxOWJjMjRlNThmYWFiMjAzMWIxZmZkNjBhMjMxNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NyZWF0ZS1jb250ZW50LWVsZW1lbnQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3JlYXRlLWNvbnRlbnQtZWxl
bWVudC5odG1sCkBAIC0yOSw3ICsyOSw3IEBAIGZ1bmN0aW9uIHNldHVwVGFyZ2V0VHJlZSgpCiAg
ICAgdmFyIGNoaWxkMCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICBjaGls
ZDAuaW5uZXJIVE1MID0gIkhlbGxvLCI7CiAgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDApOwot
ICAgIHJvb3QuYXBwZW5kQ2hpbGQod2luZG93LmludGVybmFscy5jcmVhdGVTaGFkb3dDb250ZW50
RWxlbWVudChkb2N1bWVudCkpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQod2luZG93LmludGVybmFs
cy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogICAgIHZhciBjaGlsZDEgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgY2hpbGQxLmlubmVySFRNTCA9ICJXb3Js
ZC4iOwogICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQxKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNlbGVjdC5odG1sCmluZGV4IDNk
ODFkNDU2Y2FlNDU4ZmU1OGQ5ZWI5MjE1MzUwOTljZWMxNDU0YTIuLjJlZmI5MzY1MmQwNzhjNjdk
NThlMzY5MmQwYWZmOGU5ZGEyOWNiYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxlY3QuaHRtbApAQCAtMTUsNyArMTUsNyBA
QCBmdW5jdGlvbiBhcHBlbmRTaGFkb3codGFyZ2V0LCBzZWxlY3QpIHsKICAgICBjaGlsZDAuaW5u
ZXJIVE1MID0gIkhlbGxvLCI7CiAgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDApOwogCi0gICAg
dmFyIGNvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoZG9jdW1l
bnQpOworICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KGRv
Y3VtZW50KTsKICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0KTsKICAg
ICByb290LmFwcGVuZENoaWxkKGNvbnRlbnQpOwogCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9D
aGFuZ2VMb2cKaW5kZXggNzZjOTU1YmVkYzlkNTNhOTlmZWVjODgyMTZhMmQ1NWUxYjk5MjMzOS4u
NjhkN2ZjZGM1MjM5YmEzMzBhYTdlNGUzNmYyN2JiNGQ3NjczNWMyNiAxMDA2NDQKLS0tIGEvQ2hh
bmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAxLTE2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dD
b250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
OgorCiAyMDEyLTAxLTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXSBVcGRhdGUgTkVXUyBhbmQgY29uZmlndXJlLmFjIGZvciAxLjcu
NCByZWxlYXNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122726</attachid>
            <date>2012-01-17 00:33:26 -0800</date>
            <delta_ts>2012-01-17 00:44:57 -0800</delta_ts>
            <desc>Build Test</desc>
            <filename>bug-76241-20120117173324.patch</filename>
            <type>text/plain</type>
            <size>118075</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU1MmYzYzQ5YzE1MWI5
M2Q3ODRiNzgwNGVhZTJiMjg5ZDgwZmRiZS4uMTYxNDdiNTc0ZGI4ZTM5ZTEyYzI0YzFjYjQ4MWZi
YjRiZmJjMjA0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEyLTAxLTE2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dD
b250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuZXh0UmVuZGVyZXJPZik6Cisg
ICAgICAgIChXZWJDb3JlOjpwcmV2aW91c1JlbmRlcmVyT2YpOgorICAgICAgICAoV2ViQ29yZTo6
Zmlyc3RSZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RSZW5kZXJlck9mKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIpOgor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OmluY2x1ZGVyKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9v
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbmNsdWRlckZvcik6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbmNsdXNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3Q6OmVuc3VyZUluY2x1c2lvbnMpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290
Lmg6CisgICAgICAgICogaHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0luY2x1c2lvbjo6dW5saW5rKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvbkxpc3Q6OlNoYWRvd0luY2x1c2lvbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uTGlzdDo6flNoYWRvd0luY2x1c2lvbkxpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6ZmluZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJ
bmNsdXNpb25MaXN0OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25M
aXN0OjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9y
OjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudElu
Y2x1c2lvblNlbGVjdG9yOjp+Q29udGVudEluY2x1c2lvblNlbGVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6dW5zZWxlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9yOjpmaW5kRm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6ZGlkU2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6d2lsbFNlbGVjdE92ZXIpOgorICAgICAgICAqIGh0
bWwvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0luY2x1c2lvbjo6aW5jbHVkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9u
Ojpjb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6bmV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb246OnByZXZpb3VzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6U2hhZG93SW5jbHVzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0luY2x1c2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvbkxpc3Q6OmZpcnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbkxp
c3Q6Omxhc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6aXNFbXB0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OmFkZCk6CisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFkb3dJbmNsdXNpb25TZXQ6OmlzRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
SW5jbHVzaW9uU2V0OjpUcmFuc2xhdG9yOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0luY2x1c2lvblNldDo6VHJhbnNsYXRvcjo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uU2V0OjpIYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvblNldDo6SGFzaDo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVz
aW9uU2V0OjpmaW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rv
cjo6aGFzQ2FuZGlkYXRlcyk6CisgICAgICAgICogaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9y
UXVlcnkuY3BwLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRl
bnRTZWxlY3RvclF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5
OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaC4K
KyAgICAgICAgKiBodG1sL0hUTUxDb250ZW50RWxlbWVudC5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnRlbnRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENv
bnRlbnRFbGVtZW50OjpIVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENvbnRlbnRFbGVtZW50Ojp+SFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250
ZW50RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVu
dDo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6c2V0U2Vs
ZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxDb250ZW50RWxlbWVudC5oOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmguCisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmluY2x1c2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnRlbnRFbGVtZW50Ojppc0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ29udGVudEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OnRvSFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzQ29udGVudEVsZW1lbnQ6OkRldGFpbHND
b250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6
OkRldGFpbHNTdW1tYXJ5RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VtbWFyeUNvbnRlbnRFbGVtZW50OjpTdW1tYXJ5
Q29udGVudEVsZW1lbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6Y3JlYXRlQ29udGVudEVsZW1lbnQpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CiAyMDEyLTAxLTE2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTjogcjEwMjU1MyBBdXRvY29ycmVjdGlvbiBidWJibGUgZG9lc24ndCBzaG93
IHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNzQzYjkzYTgxNWE2NWY2NTc3YmFiMjZlZWIzMThkZDMzODE5OWJi
MC4uMDg2MDgzMGNlYjBiMzM4ODk2ODY1ZTA3NmQxNDI1OWViMjk5NmUwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTE2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdv
b2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8g
dG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAy
MDEyLTAxLTE2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwNzAyNzU4PiBSRUdSRVNTSU9OOiBFdmVyeSBTYWZhcmkgUmVhZGVyIFdL
VmlldyBsZWFrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkNjE2NWNmMWMzY2EyNmNjMzFiMTNj
MTM5NDNhODBiYzE5OTk0YzNiLi5iM2JiNGZmMWY3OWE0ZDBmYmI4NGU2YTNjOWUzYjVlMDJjMTJi
NTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTkzLDkgKzU5Myw2IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBkb20vU2NyaXB0UnVubmVyLmNwcAogICAgIGRvbS9TZWN1cml0eUNvbnRl
eHQuY3BwCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwCi0gICAgZG9tL1NoYWRvd0NvbnRlbnRF
bGVtZW50LmNwcAotICAgIGRvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAKLSAgICBk
b20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgZG9tL1NoYWRvd1Jvb3QuY3BwCiAg
ICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCiAgICAgZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlz
dC5jcHAKQEAgLTcwNiw2ICs3MDMsOCBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9D
aGVja2JveElucHV0VHlwZS5jcHAKICAgICBodG1sL0NsYXNzTGlzdC5jcHAKICAgICBodG1sL0Nv
bG9ySW5wdXRUeXBlLmNwcAorICAgIGh0bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCisgICAg
aHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgaHRtbC9ET01Gb3JtRGF0YS5j
cHAKICAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcAogICAgIGh0bWwvRE9NVG9rZW5M
aXN0LmNwcApAQCAtNzI5LDYgKzcyOCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1s
L0hUTUxCdXR0b25FbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCiAg
ICAgaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKKyAgICBodG1sL0hUTUxDb250ZW50RWxlbWVudC5j
cHAKICAgICBodG1sL0hUTUxETGlzdEVsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MRGF0YUxpc3RF
bGVtZW50LmNwcAogICAgIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggY2U2N2Y1MWRjNDkwNjBiOTJjYzQ0NGY3MjY4MTZjYzQzMDE2
YTMxZC4uNjViZDE3YzA3Yzk0ZmE0YzQ5OTVkOWIyNGExODI1MjFiMjliMjk5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNjQzLDEyICsxNjQzLDYgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Nl
bGVjdG9yUXVlcnkuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50
LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmggXAotCVNv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgXAotCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIFwKLQlTb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXApAQCAtMjIyNyw4ICsyMjIxLDE0IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dFZp
ZXdTb3VyY2VQYXJzZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRv
ci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaCBcCisJU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggXAor
CVNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaCBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbHMuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGFhNjAyN2ZiYmJjYWMyOWU3OTNm
MjAxZWRjMjQ3OTQwZWY3NjRhZmIuLjdlZDg5YTNjNGFjMTU4NTVkMmE2MjgwNjgyMWEwM2UxNzdm
ZjI5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTU5LDkgKzU1OSw2IEBAIFNPVVJDRVMgKz0gXAogICAg
IGRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vU2VjdXJpdHlDb250ZXh0LmNwcCBcCiAg
ICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwIFwKLSAgICBkb20vU2hhZG93Q29udGVudEVsZW1lbnQu
Y3BwIFwKLSAgICBkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKLSAgICBkb20v
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKICAgICBkb20vU2hhZG93Um9vdC5jcHAgXAog
ICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmNw
cCBcCkBAIC04NDEsNyArODM4LDEwIEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvcGFyc2VyL1Rl
eHREb2N1bWVudFBhcnNlci5jcHAgXAogICAgIGh0bWwvcGFyc2VyL1RleHRWaWV3U291cmNlUGFy
c2VyLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgXAorICAgIGh0bWwvc2hh
ZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBcCisgICAgaHRtbC9zaGFkb3cvQ29udGVudElu
Y2x1c2lvblNlbGVjdG9yLmNwcCBcCiAgICAgaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRy
b2wuY3BwIFwKKyAgICBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwIFwKICAgICBo
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcCBcCiAgICAgaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sUm9vdEVsZW1lbnQuY3BwIFwKICAgICBodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQu
Y3BwIFwKQEAgLTE2NjAsOSArMTY2MCw2IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9TY3JpcHRF
bGVtZW50LmggXAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggXAogICAgIGRvbS9T
ZWxlY3RvclF1ZXJ5LmggXAotICAgIGRvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oIFwKLSAgICBk
b20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCBcCi0gICAgZG9tL1NoYWRvd0luY2x1c2lv
blNlbGVjdG9yLmggXAogICAgIGRvbS9TaGFkb3dSb290LmggXAogICAgIGRvbS9TcGFjZVNwbGl0
U3RyaW5nLmggXAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5oIFwKQEAgLTE5MDEsNiArMTg5OCw5
IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oIFwKICAg
ICBodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oIFwKICAgICBodG1sL3BhcnNlci9Y
U1NBdWRpdG9yLmggXAorICAgIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggXAor
ICAgIGh0bWwvc2hhZG93L0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIFwKKyAgICBodG1sL3No
YWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBcCiAgICAgaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
RWxlbWVudHMuaCBcCiAgICAgaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaCBcCiAg
ICAgaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAz
YTViMjliYWQxZjRlZmVhM2JkYjlhNDMxOTY0ZDgyMzE2ODE5ZTFlLi40MmU4Yzc1MDU1OTlmYTMz
ZDk4N2FiMzEzMDBmZGUwYjRkYzAxZDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNTQ2LDYg
KzU0Niw3IEBAIF9fWk43V2ViQ29yZTE3UmVndWxhckV4cHJlc3Npb25DMUVSS04zV1RGNlN0cmlu
Z0VOUzFfMTlUZXh0Q2FzZVNlbnNpdGl2aXR5RQogX19aTjdXZWJDb3JlMTdSZWd1bGFyRXhwcmVz
c2lvbkQxRXYKIF9fWk43V2ViQ29yZTE3Y2FjaGVET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9i
YWxPYmplY3RFUE4zSlNDOVN0cnVjdHVyZUVQS05TMl85Q2xhc3NJbmZvRQogX19aTjdXZWJDb3Jl
MTdvcGVuVGVtcG9yYXJ5RmlsZUVSS04zV1RGNlN0cmluZ0VSaQorX19aTjdXZWJDb3JlMThIVE1M
Q29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFCiBfX1pON1dlYkNvcmUxOFBsYXRm
b3JtU3RyYXRlZ2llczI2Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3lFdgogX19aTjdXZWJDb3Jl
MThTZWFyY2hQb3B1cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dlYkNv
cmUxOGlzU3RhcnRPZlBhcmFncmFwaEVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRU5TXzI3RWRpdGlu
Z0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlRQpAQCAtNjAzLDcgKzYwNCw2IEBAIF9fWk43V2ViQ29yZTIw
UmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dlc3RlZEZpbGVuYW1lRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTI0c2V0RXhwZWN0ZWRDb250ZW50
TGVuZ3RoRXgKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2U2c2V0VVJMRVJLTlNf
NEtVUkxFCiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlQzJFdgotX19aTjdXZWJD
b3JlMjBTaGFkb3dDb250ZW50RWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEUKIF9fWk43V2Vi
Q29yZTIwVXNlckdlc3R1cmVJbmRpY2F0b3I3c19zdGF0ZUUKIF9fWk43V2ViQ29yZTIwVXNlckdl
c3R1cmVJbmRpY2F0b3JDMUVOU18yNlByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlRQogX19aTjdX
ZWJDb3JlMjBVc2VyR2VzdHVyZUluZGljYXRvckQxRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkOGE1
MjNmYTU3YTQ0NzE0M2E2YzllZWEyNTE1NDhhMjRhZTUxOGIyLi43ZDQxMTI3NGZhNGU0ZjZmOGIw
NjY4ZTgwMGVmODRhZDAwMzBlOGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMDQ2LDggKzEwNDYs
NiBAQAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgnLAogICAgICAg
ICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3Qu
aCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmgnLAotICAgICAgICAg
ICAgJ2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oJywKICAgICAgICAgICAgICdkb20v
U3BhY2VTcGxpdFN0cmluZy5oJywKICAgICAgICAgICAgICdkb20vU3R5bGVkRWxlbWVudC5oJywK
ICAgICAgICAgICAgICdkb20vVGV4dC5oJywKQEAgLTEwNjAsNiArMTA1OCw3IEBACiAgICAgICAg
IF0sCiAgICAgICAgICd3ZWJjb3JlX2h0bWxfcHJpdmF0ZWhlYWRlcl9maWxlcyc6IFsKICAgICAg
ICAgICAgICdodG1sL0NvbGxlY3Rpb25UeXBlLmgnLAorICAgICAgICAgICAgJ2h0bWwvQ29udGVu
dFNlbGVjdG9yUXVlcnkuaCcsCiAgICAgICAgICAgICAnaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1l
bnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5oJywKICAgICAgICAg
ICAgICdodG1sL0hUTUxDb2xsZWN0aW9uLmgnLApAQCAtNTQ2MywxMiArNTQ2Miw2IEBACiAgICAg
ICAgICAgICAnZG9tL1NlY3VyaXR5Q29udGV4dC5oJywKICAgICAgICAgICAgICdkb20vU2VsZWN0
b3JRdWVyeS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3RvclF1ZXJ5LmgnLAotICAgICAg
ICAgICAgJ2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAnLAotICAgICAgICAgICAgJ2RvbS9T
aGFkb3dDb250ZW50RWxlbWVudC5oJywKLSAgICAgICAgICAgICdkb20vU2hhZG93Q29udGVudFNl
bGVjdG9yUXVlcnkuY3BwJywKLSAgICAgICAgICAgICdkb20vU2hhZG93Q29udGVudFNlbGVjdG9y
UXVlcnkuaCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCcs
Ci0gICAgICAgICAgICAnZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgnLAogICAgICAgICAg
ICAgJ2RvbS9TaGFkb3dSb290LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcs
CiAgICAgICAgICAgICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwJywKQEAgLTU5MDMsOCArNTg5
NiwxNCBAQAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmgn
LAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwJywKICAgICAgICAgICAg
ICdodG1sL3BhcnNlci9YU1NBdWRpdG9yLmgnLAorICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0Nv
bnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVu
dFNlbGVjdG9yUXVlcnkuaCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVudEluY2x1
c2lvblNlbGVjdG9yLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVudEluY2x1
c2lvblNlbGVjdG9yLmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJD
b250cm9sLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRy
b2wuaCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCcs
CisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmgnLAogICAgICAg
ICAgICAgJ2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwJywKICAgICAgICAgICAgICdodG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xzLmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCmluZGV4IGU3N2MxZmYxMmI0NDM0ZmRiOWM4ZTM4ZjZiMDgxZmZmYTg4ODIz
MWQuLmI3MDQ3M2FmN2U4MDliOTg0ZTg2ZTg4Mzk1OWRjYTU2MjkxYjg5MGYgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01MDk5OCwyMzAgKzUw
OTk4LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXFNoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgot
CQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZp
bGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0Zp
bGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0NvbnRlbnRFbGVt
ZW50LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19D
RkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVh
c2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJ
CQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4K
LQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlO
YW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJ
CQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgot
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5h
bWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJ
CQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgot
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCi0JCQkJPgotCQkJPC9GaWxl
PgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVu
dC5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxk
b21cU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2hhZG93Q29udGVudFNl
bGVjdG9yUXVlcnkuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5cZG9tXFNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCIKLQkJCQk+Ci0JCQkJPEZp
bGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZp
bGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0lu
Y2x1c2lvblNlbGVjdG9yLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxTcGFjZVNwbGl0U3RyaW5nLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVD
b25maWd1cmF0aW9uCkBAIC02MTA5Nyw2ICs2MDg3MywyMiBAQAogCQkJCU5hbWU9InNoYWRvdyIK
IAkJCQk+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHNoYWRvd1xDb250
ZW50U2VsZWN0b3JRdWVyeS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHNoYWRvd1xDb250ZW50U2VsZWN0b3JRdWVyeS5oIgor
CQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxzaGFkb3dcQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcc2hhZG93XENvbnRlbnRJ
bmNsdXNpb25TZWxlY3Rvci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5caHRtbFxzaGFkb3dcRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIgog
CQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtNjExMDUsNiArNjA4OTcsNjIgQEAKIAkJCQkJPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcc2hhZG93XEhU
TUxDb250ZW50RWxlbWVudC5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRv
b2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1
Z19BbGx8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJ
CQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFt
ZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJ
Lz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHNoYWRvd1xIVE1MQ29udGVudEVsZW1lbnQuaCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxc
c2hhZG93XE1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA2OWQ2MTZhYjEwMTFiMzM2YTQ4ZWYxODEzMmRiMzYxZmU3ZWI2NGQ1Li43NzljYjdkNDEyYmU3
MTE3MzBhNzg5NDZmZWRhMGNjNmRjODdhNjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTY4LDggKzE1NjgsMTIgQEAKIAkJ
NTNDODI5OEUxM0Q4RDkyNzAwREUyREVCIC8qIFJlbmRlckZsZXhpYmxlQm94LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0M4Mjk4QzEzRDhEOTI3MDBE
RTJERUIgLyogUmVuZGVyRmxleGlibGVCb3guaCAqLzsgfTsKIAkJNTUwQTBCQzkwODVGNjAzOTAw
NzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5h
bWUuY3BwICovOyB9OwogCQk1NTBBMEJDQTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFt
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBC
QzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1NzBEQkE4MTE0QjU4MDQ5MDBEQUVGQTAg
LyogU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREI3QTgxNEI1Njk2QTAwREFFRkEwIC8qIFNoYWRv
d0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCAqLzsgfTsKLQkJNTcwREJBODIxNEI1ODA0QjAwREFF
RkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQjdBOTE0QjU2OTZBMDBEQUVGQTAgLyogU2hh
ZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCAqLzsgfTsKKwkJNTcwREJENjYxNEM1NjhBMzAwREFF
RkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQkQ2MjE0QzU2OEEzMDBEQUVGQTAgLyogQ29u
dGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCAqLzsgfTsKKwkJNTcwREJENjcxNEM1NjhBMzAwREFF
RkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREJENjMxNEM1NjhBMzAwREFFRkEwIC8qIENvbnRl
bnRJbmNsdXNpb25TZWxlY3Rvci5oICovOyB9OworCQk1NzBEQkQ2ODE0QzU2OEEzMDBEQUVGQTAg
LyogQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTcwREJENjQxNEM1NjhBMzAwREFFRkEwIC8qIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcCAqLzsgfTsKKwkJNTcwREJENjkxNEM1NjhBMzAwREFFRkEwIC8qIENvbnRl
bnRTZWxlY3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzBEQkQ2NTE0QzU2OEEzMDBEQUVGQTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnku
aCAqLzsgfTsKKwkJNTcwREJENkMxNEM1NjhBRDAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBE
QkQ2QTE0QzU2OEFEMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmNwcCAqLzsgfTsKKwkJ
NTcwREJENkQxNEM1NjhBRDAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREJENkIxNEM1NjhBRDAw
REFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5oICovOyB9OwogCQk1OTA1QURCRjEzMDJGM0NF
MDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1OTA1QURCRDEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZp
ZXdlci5jcHAgKi87IH07CiAJCTU5MDVBREMwMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmll
d2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTA1
QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovOyB9OwogCQk1OTBFMUI0
OTExRTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAv
KiBEZXZpY2VPcmllbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0zNTA0LDEzICszNTA4LDEwIEBACiAJCUE3MTVFNjUzMTM0QkJCRUMw
MEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUxMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9n
cmVzc1NoYWRvd0VsZW1lbnQuaCAqLzsgfTsKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8q
IERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFD
MDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0Nv
bnRyb2xsZXJNYWMubW0gKi87IH07Ci0JCUE3MUMzMEI4MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFk
b3dJbmNsdXNpb25TZWxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzFDMzBCNjEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9u
U2VsZWN0b3IuY3BwICovOyB9OwotCQlBNzFDMzBCOTEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93
SW5jbHVzaW9uU2VsZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3MUMzMEI3MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxl
Y3Rvci5oICovOyB9OwogCQlBNzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBv
cnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3M0Y5NUZFMTJD
OTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRl
ZFJlY3QuY3BwICovOyB9OwogCQlBNzNGOTVGRjEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJl
Y3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5
NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NEJCNzZCMTNCREE4NjMwMEZGN0JGMCAv
KiBFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3NEJCNzZBMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNlcHRpb25D
b2RlUGxhY2Vob2xkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQlBNzRDMkQzQzEzODExRTBEMDBGODM1NzIgLyogU2hhZG93Q29udGVudEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NEMy
RDNCMTM4MTFFMEQwMEY4MzU3MiAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NUU0OTc2MTA3NTJBQ0Iw
MEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICov
OyB9OwogCQlBNzVFOEI4ODBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4MDBFMURFMkQ2MDA3
RjI0ODEgLyogRkVCbGVuZC5jcHAgKi87IH07CkBAIC0zNTIxLDcgKzM1MjIsNiBAQAogCQlBNzVF
OEI4RDBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODUwRTFERTJENjAwN0Yy
NDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuaCAqLzsgfTsKIAkJQTc1RThCOEUwRTFERTJENjAw
N0YyNDgxIC8qIEZFQ29tcG9zaXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg2MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5j
cHAgKi87IH07CiAJCUE3NUU4QjhGMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThCODcwRTFE
RTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmggKi87IH07Ci0JCUE3NjZDRjhDMTM4MTBFMEMw
MDExQTBCMyAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzY2Q0Y4QjEzODEwRTBDMDAxMUEwQjMgLyogU2hh
ZG93Q29udGVudEVsZW1lbnQuY3BwICovOyB9OwogCQlBNzZFNUY3RjEzNUUwRENGMDBBNjk4Mzcg
LyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9j
dW1lbnRNYXJrZXIuaCAqLzsgfTsKIAkJQTc3OTc5MTkwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdl
RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
Nzc5NzkxMzBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCAqLzsgfTsKIAkJQTc3OTc5
MUEwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MTQwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdl
RGF0YS5oICovOyB9OwpAQCAtODM5MSw4ICs4MzkxLDEyIEBACiAJCTUzQzgyOThDMTNEOEQ5Mjcw
MERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJGbGV4aWJsZUJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NTBBMEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBRdWFsaWZpZWRO
YW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmll
ZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07Ci0JCTU3MERCN0E4MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0
b3JRdWVyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFkb3dD
b250ZW50U2VsZWN0b3JRdWVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3
MERCN0E5MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVy
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzBEQkQ2MjE0QzU2OEEzMDBEQUVG
QTAgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU3MERCRDYzMTRDNTY4QTMwMERBRUZBMCAvKiBDb250ZW50SW5j
bHVzaW9uU2VsZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVu
dEluY2x1c2lvblNlbGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MERC
RDY0MTRDNTY4QTMwMERBRUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MERCRDY1MTRDNTY4QTMwMERBRUZBMCAvKiBD
b250ZW50U2VsZWN0b3JRdWVyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b250ZW50U2VsZWN0b3JRdWVyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzBE
QkQ2QTE0QzU2OEFEMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxDb250ZW50RWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MERCRDZCMTRDNTY4QUQwMERBRUZBMCAvKiBIVE1M
Q29udGVudEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTENv
bnRlbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MDVBREJEMTMw
MkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFhNTFRyZWVWaWV3ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxUcmVlVmlld2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmll
bnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAzMjMsMTMgKzEwMzI3LDEw
IEBACiAJCUE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnQWN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEcmFnQ29udHJv
bGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxQTcwQzkxMUFGQjAy
MDAwOTg5RDZEIC8qIEhUTUxNZXRlckVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEhUTUxNZXRlckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzFD
MzBCNjEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93SW5jbHVzaW9uU2VsZWN0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzFDMzBCNzEzODEyNjVFMDBEQkMz
NTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXhwb3J0TWFjcm9z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFG
OSAvKiBSb3VuZGVkUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSb3VuZGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZE
MTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSb3VuZGVkUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzRCQjc2QTEzQkRBODYzMDBGRjdCRjAgLyogRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzRDMkQzQjEzODExRTBEMDBGODM1NzIg
LyogU2hhZG93Q29udGVudEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2hhZG93Q29udGVudEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTc1RTQ5NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzVFOEI4MDBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGRUJsZW5kLmNwcDsgcGF0aCA9IGZpbHRlcnMvRkVC
bGVuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM0MCw3ICsxMDM0MSw2
IEBACiAJCUE3NUU4Qjg1MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZFQ29tcG9uZW50VHJhbnNmZXIuaDsg
cGF0aCA9IGZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNzVFOEI4NjBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRkVDb21wb3NpdGUuY3BwOyBwYXRo
ID0gZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3NUU4Qjg3MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBGRUNvbXBvc2l0ZS5oOyBwYXRoID0gZmlsdGVycy9GRUNvbXBv
c2l0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzY2Q0Y4QjEzODEwRTBDMDAx
MUEwQjMgLyogU2hhZG93Q29udGVudEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2hhZG93Q29udGVudEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzZFNUY3RTEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVu
dE1hcmtlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJlZERvY3Vt
ZW50TWFya2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTEzMEQ2QjlE
MEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW1hZ2VEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3
OTc5MTQwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbWFnZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEzNzE1LDkgKzEzNzE1LDYgQEAKIAkJMUFFODJFQzkwQ0FBRTE3NzAwMjIzN0FFIC8qIHN0b3Jh
Z2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUE4RjQ1
NzlEMTRCQzEzRUMwMDBDRUE1OSAvKiBET01XaW5kb3dTUUxEYXRhYmFzZS5jcHAgKi8sCi0JCQkJ
QThGNDU3OUUxNEJDMTNFQzAwMENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFiYXNlLmggKi8sCi0J
CQkJQThGNDU3OUYxNEJDMTNFQzAwMENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFiYXNlLmlkbCAq
LywKIAkJCQlCNUI1REM2NzExOUJCM0Q1MDAyQTg3OTAgLyogQWJzdHJhY3REYXRhYmFzZS5jcHAg
Ki8sCiAJCQkJQjVCNURDNjgxMTlCQjNENTAwMkE4NzkwIC8qIEFic3RyYWN0RGF0YWJhc2UuaCAq
LywKIAkJCQk1MTQxODVFRDBDRDY1RjA0MDA3NjNDOTkgLyogQ2hhbmdlVmVyc2lvbldyYXBwZXIu
Y3BwICovLApAQCAtMTM3NDAsNiArMTM3MzcsOSBAQAogCQkJCTFBRDUxQTEzMENCNTlDRDMwMDk1
M0QxMSAvKiBEYXRhYmFzZVRyYWNrZXIuY3BwICovLAogCQkJCTFBRDUxQTEyMENCNTlDRDMwMDk1
M0QxMSAvKiBEYXRhYmFzZVRyYWNrZXIuaCAqLywKIAkJCQk1MUZBRkUzMzBDRUNCRjJEMDBCQjNG
MjQgLyogRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi8sCisJCQkJQThGNDU3OUQxNEJDMTNFQzAw
MENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFiYXNlLmNwcCAqLywKKwkJCQlBOEY0NTc5RTE0QkMx
M0VDMDAwQ0VBNTkgLyogRE9NV2luZG93U1FMRGF0YWJhc2UuaCAqLywKKwkJCQlBOEY0NTc5RjE0
QkMxM0VDMDAwQ0VBNTkgLyogRE9NV2luZG93U1FMRGF0YWJhc2UuaWRsICovLAogCQkJCUM1ODVB
Njk4MTFENEZCM0QwMDRDM0U0QiAvKiBJREJBbnkuY3BwICovLAogCQkJCUM1ODVBNjk5MTFENEZC
M0QwMDRDM0U0QiAvKiBJREJBbnkuaCAqLywKIAkJCQlDNTg1QTY5QTExRDRGQjNEMDA0QzNFNEIg
LyogSURCQW55LmlkbCAqLywKQEAgLTE0MjIwLDggKzE0MjIwLDE0IEBACiAJCTQxNTBGOUVEMTJC
NkUwOTkwMDA4Qzg2MCAvKiBzaGFkb3cgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTU3MERCRDYyMTRDNTY4QTMwMERBRUZBMCAvKiBDb250ZW50SW5jbHVz
aW9uU2VsZWN0b3IuY3BwICovLAorCQkJCTU3MERCRDYzMTRDNTY4QTMwMERBRUZBMCAvKiBDb250
ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCAqLywKKwkJCQk1NzBEQkQ2NDE0QzU2OEEzMDBEQUVGQTAg
LyogQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwICovLAorCQkJCTU3MERCRDY1MTRDNTY4QTMwMERB
RUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5oICovLAogCQkJCUE3QzlBQkY2MTM1N0EzQkYw
MEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgKi8sCiAJCQkJQTdDOUFCRjcxMzU3
QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggKi8sCisJCQkJNTcwREJENkEx
NEM1NjhBRDAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5jcHAgKi8sCisJCQkJNTcwREJE
NkIxNEM1NjhBRDAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5oICovLAogCQkJCTQxNzI1
M0E4MTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgKi8sCiAJCQkJ
NDE3MjUzQTkxMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmggKi8sCiAJ
CQkJNDE1N0FGN0YxMkYxRkIwNDAwQThDNkY1IC8qIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50LmNw
cCAqLywKQEAgLTE3MDQ2LDEzICsxNzA1MiwxMyBAQAogCQlBNzVFOEI3RjBFMURFMkIwMDA3RjI0
ODEgLyogZmlsdGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJNDlFQ0VCNUMxNDk5NzkwRDAwQ0REM0E0IC8qIGFybSAqLywKKwkJCQk1MEQ0MDVGNzE0
N0QzMUYzMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyTWVzaC5jcHAgKi8sCisJCQkJNTBENDA1Rjgx
NDdEMzFGMzAwRDMwQkI1IC8qIEN1c3RvbUZpbHRlck1lc2guaCAqLywKIAkJCQk1MEFDRTJDQTE0
QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggKi8sCiAJCQkJNTAzRDBD
QTcxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uY3BwICovLAogCQkJCTUw
M0QwQ0E4MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmggKi8sCiAJCQkJ
NTAzRDBDQTkxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCAq
LywKLQkJCQk0OUVDRUI1QzE0OTk3OTBEMDBDREQzQTQgLyogYXJtICovLAotCQkJCTUwRDQwNUY3
MTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmNwcCAqLywKLQkJCQk1MEQ0MDVG
ODE0N0QzMUYzMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyTWVzaC5oICovLAogCQkJCTUwRDQwNjBG
MTQ3RDQ5REUwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJTaGFkZXIuY3BwICovLAogCQkJCTUwRDQw
NjEwMTQ3RDQ5REUwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJTaGFkZXIuaCAqLywKIAkJCQlBMUUx
MTU0MzEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0U291cmNlLmNwcCAqLywKQEAgLTE5
MjM0LDcgKzE5MjQwLDYgQEAKIAkJQkM4QzhGQUEwRERDRDJGMjAwQjU5MkY0IC8qIHN0eWxlICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk1MDNEMENBRDE0
QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggKi8sCiAJCQkJQkM1
RUI1RTAwRTgxQkU4NzAwQjI1OTY1IC8qIEJvcmRlckRhdGEuaCAqLywKIAkJCQlCQzVFQjVEQTBF
ODFCN0VBMDBCMjU5NjUgLyogQm9yZGVyVmFsdWUuaCAqLywKIAkJCQlCQzVFQjVERTBFODFCOUFC
MDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFsdWUuaCAqLywKQEAgLTE5MjY5LDYgKzE5Mjc0
LDcgQEAKIAkJCQlCQ0VGNDQ0QzBFNjc0NjI4MDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5o
ICovLAogCQkJCTUwMzhCRTJEMTQ3MkFEMjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5j
cHAgKi8sCiAJCQkJNTAzOEJFMkUxNDcyQUQyMzAwOTVFMEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVy
LmggKi8sCisJCQkJNTAzRDBDQUQxNEI1QjBCQTAwRjMyRjU3IC8qIFN0eWxlQ3VzdG9tRmlsdGVy
UHJvZ3JhbS5oICovLAogCQkJCUJDNUVCNjdFMEU4MUQ0QTcwMEIyNTk2NSAvKiBTdHlsZURhc2hi
b2FyZFJlZ2lvbi5oICovLAogCQkJCUJDNUVCOEI2MEU4MjAxQkQwMEIyNTk2NSAvKiBTdHlsZURl
cHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwICovLAogCQkJCUJDNUVCOEI3MEU4MjAxQkQwMEIy
NTk2NSAvKiBTdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuaCAqLywKQEAgLTIwNTM2LDEy
ICsyMDU0Miw2IEBACiAJCQkJOTc2RjM2RTkxNDY4NjIyNTAwNUU5M0I0IC8qIFNlY3VyaXR5Q29u
dGV4dC5oICovLAogCQkJCUU0NTMyMkE5MTQwQ0UyNjcwMDVBMEY5MiAvKiBTZWxlY3RvclF1ZXJ5
LmNwcCAqLywKIAkJCQlFNDUzMjJBQTE0MENFMjY3MDA1QTBGOTIgLyogU2VsZWN0b3JRdWVyeS5o
ICovLAotCQkJCUE3NjZDRjhCMTM4MTBFMEMwMDExQTBCMyAvKiBTaGFkb3dDb250ZW50RWxlbWVu
dC5jcHAgKi8sCi0JCQkJQTc0QzJEM0IxMzgxMUUwRDAwRjgzNTcyIC8qIFNoYWRvd0NvbnRlbnRF
bGVtZW50LmggKi8sCi0JCQkJNTcwREI3QTgxNEI1Njk2QTAwREFFRkEwIC8qIFNoYWRvd0NvbnRl
bnRTZWxlY3RvclF1ZXJ5LmNwcCAqLywKLQkJCQk1NzBEQjdBOTE0QjU2OTZBMDBEQUVGQTAgLyog
U2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCAqLywKLQkJCQlBNzFDMzBCNjEzODEyNjVFMDBE
QkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovLAotCQkJCUE3MUMzMEI3MTM4
MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oICovLAogCQkJCUE2RDE2
OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLywKIAkJCQlBNkQxNjk2MzEz
NDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovLAogCQkJCUQwMUEyN0FCMTBDOUJGRDgw
MDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmNwcCAqLywKQEAgLTIxMTI4LDggKzIxMTI4LDEw
IEBACiAJCQkJQTgxODcyMUMwOTc3RDNDMDAwNTgyNkQ5IC8qIENvbnRhaW5lck5vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxQTE0NzA4MTExMDJCMTUwMEVFQzBGMyAvKiBDb250YWluZXJOb2Rl
QWxnb3JpdGhtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI5ODEwRTgyMDcyNTAwQjI1OTY1
IC8qIENvbnRlbnREYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzBEQkQ2NzE0QzU2OEEzMDBE
QUVGQTAgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
OTEwMkZCQzE0MzI3RDNCMDAzQzlEMDQgLyogQ29udGVudFNlYXJjaFV0aWxzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5N0M0NzFEQzEyRjkyNUJEMDA4NjM1NEIgLyogQ29udGVudFNlY3VyaXR5UG9s
aWN5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzBEQkQ2OTE0QzU2OEEzMDBEQUVGQTAgLyogQ29u
dGVudFNlbGVjdG9yUXVlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDAxNUNBMEY0QjVDNzEw
MDRBNjYyRiAvKiBDb250ZW50VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcwRDZFREIxMzg0
NTQ1NTAwNDQxMDNFIC8qIENvbnRlbnRUeXBlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0I2QTBFNjBCMEJDQTVDMDBGNTAyN0EgLyogQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLApA
QCAtMjEyMjQsNiArMjEyMjYsOSBAQAogCQkJCUJDMjI3MkFEMEU4MkU4RjMwMEU3Rjk3NSAvKiBD
dXJzb3JMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2MkNEMzI1QTExNTdFNTdDMDA2M0IwQTcg
LyogQ3VzdG9tRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwRDQwNUZBMTQ3RDMxRjMwMEQz
MEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MEFDRTJDQjE0
QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MDNEMENBQjE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTAzRDBDQUMxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRl
clByb2dyYW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwRDQwNjEyMTQ3RDQ5REUwMEQz
MEJCNSAvKiBDdXN0b21GaWx0ZXJTaGFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0I0MTNF
MEU4NjMzRkQwMDMyQzRGMCAvKiBEYXNoQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2
RDBCMEExOTg5Q0EwMDdGQjhDNSAvKiBEYXNoYm9hcmRSZWdpb24uaCBpbiBIZWFkZXJzICovLApA
QCAtMjEzNTUsNiArMjEzNjAsNyBAQAogCQkJCTg1RTcxMTk3MEFDNUQ1MzUwMDUzMjcwRiAvKiBE
T01ET01JbXBsZW1lbnRhdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjNBODg3
MjE0NTYzMkY5MDAzQUU4RjUgLyogRE9NRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTc2OTQ1NjVCMTIxNERCNjMwMDA3Q0JBRSAvKiBET01ET01Ub2tlbkxpc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCTdBQUJBMjVBMTRCQzYxMzMwMEFBOUExMSAvKiBET01FZGl0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg1QUNBOUMwMEE5QjVGQTUwMDY3MUU5MCAvKiBET01FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTE5ODBBQzVENTM1MDA1MzI3MEYgLyogRE9N
RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDE1RjE2OTBEOUExNjVEMDAz
M0NFOTcgLyogRE9NRWxlbWVudFRpbWVDb250cm9sLmggaW4gSGVhZGVycyAqLywKQEAgLTIxODkx
LDYgKzIxODk3LDggQEAKIAkJCQk4NUM3RjVFNzBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxF
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU5ODlERDEwQUNDOEJCRDAwQTBCQzUxIC8qIERP
TVdoZWVsRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwM0I5OTcwOUVCMTNB
RjAwNzk3QzdGIC8qIERPTVdpbmRvdy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTdEMkFEMDQxNEI4
MjNBNjAwOTNERjMyIC8qIERPTVdpbmRvd1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKKwkJCQlB
OEY0NTdBMTE0QkMxQTk0MDAwQ0VBNTkgLyogRE9NV2luZG93U1FMRGF0YWJhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUYzNUFFNUFDMTQ5MjVGNUIwMDRENTc3NiAvKiBET01XcmFwcGVyVmlzaXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1M0RBMkUxMTQzMTIxRTAwMEQ4MTdFIC8qIERPTVdy
YXBwZXJXb3JsZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUExRDEzODAwQTUzMjU1MjAwNjRCRjVG
IC8qIERPTVhQYXRoLmggaW4gSGVhZGVycyAqLywKQEAgLTIyMDcyLDYgKzIyMDgwLDcgQEAKIAkJ
CQlBODUzMTIzRDExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUJGMDIyRjA5NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3QjA3MEQzMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFj
dGlvblNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTc0QTg2MjMxNEI3QURCQjAwM0ZE
Qzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2
RDM3M0MwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2NTZEMzczRTBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUQwMDBFQkEzMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRl
TWFjaGluZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjE0NSw2ICsyMjE1NCw3IEBACiAJCQkJOTNG
MTk5RTUwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOERGM0ZEMDA5N0ZBMEZDMDA1Mjk4MUIgLyogSFRNTENvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3N0IzODY1MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MQ29uc3RydWN0
aW9uU2l0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcwREJENkQxNEM1NjhBRDAwREFFRkEwIC8q
IEhUTUxDb250ZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFBMzE2NjMxMzRCQ0FF
ODAwN0M5QTRGIC8qIEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1QzA0MURC
MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlEMzU5RDc4QTEyOUNBMjcxMDAwNkU1RDIgLyogSFRNTERldGFpbHNFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTIyMzM2LDYgKzIyMzQ2LDcgQEAKIAkJCQlGMzQ0QzcxNDExMjVCODJD
MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUYzNDRDNzUzMTEyOTREOUQwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTBFNzcwRjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LmggaW4gSGVhZGVycyAqLywKKwkJCQk3QUNEODhENDE0QzA4QkQ2MDA4
NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTIw
RDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdBQTUxREQ2MTQ4NTA2QTkwMEFEMjc1MiAvKiBJbnNwZWN0b3JNZW1v
cnlBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEY2RkRENjUxMzQxREVERDAwMUY4RUUzIC8q
IEluc3BlY3RvclBhZ2VBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzM5NSwxMCArMjM0MDYs
NyBAQAogCQkJCTkzRjE5OTRGMDgyNDVFNTkwMDFFOUFCQyAvKiBTZXR0aW5ncy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDk4NzcwRTkxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYzREQ0NTAxMkY1RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUE3NEMyRDNDMTM4MTFFMEQwMEY4MzU3MiAvKiBTaGFkb3dDb250ZW50
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTcwREJBODIxNEI1ODA0QjAwREFFRkEwIC8q
IFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjhD
NDBFODIwMzFCMDBCMjU5NjUgLyogU2hhZG93RGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTcx
QzMwQjkxMzgxMjY1RTAwREJDMzUxIC8qIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRTgwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkFGRkM5NDBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVB
cmFiaWMuaCBpbiBIZWFkZXJzICovLApAQCAtMjM0OTAsNiArMjM0OTgsNyBAQAogCQkJCUJDNUVC
NjdCMEU4MUQzQkUwMEIyNTk2NSAvKiBTdHlsZUJveERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDRUY0NDREMEU2NzQ2MjgwMDFDMTI4NyAvKiBTdHlsZUNhY2hlZEltYWdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MDM4QkUzMDE0NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTUwM0QwQ0FFMTRCNUIwQkEwMEYzMkY1NyAvKiBTdHlsZUN1
c3RvbUZpbHRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNjdGMEU4MUQ0QTcw
MEIyNTk2NSAvKiBTdHlsZURhc2hib2FyZFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThD
NEE3RkQwOUQ1NjMyNzAwMDNBQzhEIC8qIFN0eWxlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNUVCOEI5MEU4MjAxQkQwMEIyNTk2NSAvKiBTdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJv
eERhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjM3MzQsNiArMjM3NDMsNyBAQAogCQkJCTA4MEU0
OTI2MTI1NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0TGF5b3V0RW5naW5lQmFzZWxpbmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4MEU0OTI4MTI1NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0TGF5b3V0
RW5naW5lU3BhY2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhGMEJGQzYxMjU1QzUzQzAwMDc1
MTg1IC8qIFNWR1RleHRNZXRyaWNzLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MTE3NDQ1OTE0QkMz
NEVDMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMjIyN0FDRTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVGV4dFBhdGhFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMjIyN0FEMTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVGV4dFBvc2l0aW9u
aW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIwMjUxMjU1RTRFNjAwQjlDREQw
IC8qIFNWR1RleHRRdWVyeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDAwNiwxNiArMjQwMTYsNiBA
QAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUu
aCBpbiBIZWFkZXJzICovLAotCQkJCTk3NEE4NjIzMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3RDJBRDA0MTRCODIzQTYw
MDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0FBQkEy
NUExNEJDNjEzMzAwQUE5QTExIC8qIERPTUVkaXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThG
NDU3QTExNEJDMUE5NDAwMENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFiYXNlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk3MTE3NDQ1OTE0QkMzNEVDMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJpY3NCdWls
ZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MDNEMENBQjE0QjVCMDg3MDBGMzJGNTcgLyogQ3Vz
dG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTAzRDBDQUMxNEI1QjA4NzAw
RjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTUwM0QwQ0FFMTRCNUIwQkEwMEYzMkY1NyAvKiBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCBp
biBIZWFkZXJzICovLAotCQkJCTUwQUNFMkNCMTRCNUQ3OTMwMDQ0NjY2NiAvKiBDdXN0b21GaWx0
ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTdBQ0Q4OEQ0MTRDMDhCRDYwMDg0RURE
MiAvKiBJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNDUyNiw4
ICsyNDUyNiwxMCBAQAogCQkJCTQxRjA2MThGMEY1RjA2OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVz
c2FnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODE4NzIxRjA5NzdEM0MwMDA1ODI2RDkgLyog
Q29udGFpbmVyTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzVFQjk4MDBFODIwNzI1MDBC
MjU5NjUgLyogQ29udGVudERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTcwREJENjYxNEM1
NjhBMzAwREFFRkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1OTEwMkZCQjE0MzI3RDNCMDAzQzlEMDQgLyogQ29udGVudFNlYXJjaFV0aWxzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTk3QzQ3MURCMTJGOTI1QkQwMDg2MzU0QiAvKiBDb250ZW50
U2VjdXJpdHlQb2xpY3kuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTcwREJENjgxNEM1NjhBMzAw
REFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQx
RDAxNUNCMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzNzBENkVEQTEzODQ1NDU1MDA0NDEwM0UgLyogQ29udGVudFR5cGVQYXJzZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDY1QUQ0RjYwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI0NjExLDYgKzI0NjEzLDcgQEAKIAkJ
CQk5M0YxOUEyNjA4MjQ1RTU5MDAxRTlBQkMgLyogQ3Vyc29yTWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNjJDRDMyNTkxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUwRDQwNUY5MTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNo
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwM0QwQ0FBMTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0
b21GaWx0ZXJQcm9ncmFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwRDQwNjExMTQ3RDQ5REUw
MEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE5
NjExNkEwQ0FDNTY1NzAwMTBBODBDIC8qIERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxQTQ1QjU3MENBRDdGRDcwMDBEMkJFOSAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0yNDcwMiw2ICsyNDcwNSw3IEBACiAJCQkJODVDQTk3NUQwQTk2MkU1NDAw
NjkwQ0NGIC8qIERPTURvY3VtZW50VHlwZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1MThEQ0VB
MEE5Q0M4MEQwMDkxQjdBNiAvKiBET01ET01JbXBsZW1lbnRhdGlvbi5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTc2OTQ1NjVDMTIxNERCNjMwMDA3Q0JBRSAvKiBET01ET01Ub2tlbkxpc3QubW0gaW4g
U291cmNlcyAqLywKKwkJCQk3QUFCQTI1OTE0QkM2MTMzMDBBQTlBMTEgLyogRE9NRWRpdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg1QUNBOUMxMEE5QjVGQTUwMDY3MUU5MCAvKiBET01FbGVt
ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVDQTk2QjkwQTk2MjFBNjAwNjkwQ0NGIC8qIERP
TUVudGl0eS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1MDg5Q0RFMEE5OEM0MjgwMEEyNzVBQSAv
KiBET01FbnRpdHlSZWZlcmVuY2UubW0gaW4gU291cmNlcyAqLywKQEAgLTI0OTc1LDYgKzI0OTc5
LDggQEAKIAkJCQkzMUMwRkY0RDBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlv
bkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVDN0Y1RTgwQUFGQkFGQjAwNDAxNEREIC8q
IERPTVdoZWVsRXZlbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkxNDAzQjk5ODA5RUIxM0FGMDA3
OTdDN0YgLyogRE9NV2luZG93LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk3RDJBRDAzMTRCODIz
QTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlB
OEY0NTdBMDE0QkMxQTg4MDAwQ0VBNTkgLyogRE9NV2luZG93U1FMRGF0YWJhc2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM1M0RBNDgxMTQzMTM0RDAwMEQ4MTdFIC8qIERPTVdyYXBwZXJXb3Js
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTFEMTM4MTBBNTMyNTUyMDA2NEJGNUYgLyogRE9N
WFBhdGgubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NUU5RTBBMjBBQjNBMEM3MDAwNjlDRDAgLyog
RE9NWFBhdGhFeHByZXNzaW9uLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yNTEyMSw2ICsyNTEyNyw3
IEBACiAJCQkJNDE4ODVCOTQxMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTY1QkYwMjJFMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBN0IwNzBEMjEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rp
b25TY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTc0QTg2MjIxNEI3QURCQjAwM0ZE
Qzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
MzJFMTYwOTBBRjU3ODM0MDAyNUY0MDggLyogRnJhbWVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRDAwMEVCQTIxMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5l
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1QkYwMjQ1MDk3NDgxOTAwMEM0MzE5NiAvKiBGcmFt
ZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjUxNzksNiArMjUxODYsNyBAQAogCQkJCTkzRjE5
QUZEMDgyNDVFNTkwMDFFOUFCQyAvKiBIVE1MQ2FudmFzRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOERGM0ZEMTA5N0ZBMEZDMDA1Mjk4MUIgLyogSFRNTENvbGxlY3Rpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTc3QjM4NjQxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxDb25zdHJ1
Y3Rpb25TaXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3MERCRDZDMTRDNTY4QUQwMERBRUZB
MCAvKiBIVE1MQ29udGVudEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQ0RjUxREYx
MzI3MjU0ODAwMTZGNTQxIC8qIEhUTUxDb252ZXJ0ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlG
NUMwNDFEQTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlEMzU5RDc4OTEyOUNBMjcxMDAwNkU1RDIgLyogSFRNTERldGFpbHNFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjUzNTMsNiArMjUzNjEsNyBAQAogCQkJCTRGNEY1
RkZCMTFDQkQyRTEwMEExODZCRiAvKiBJbnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUg
LyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdBQ0Q4OEQz
MTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyMEQ2MjkyNjEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBQTUxREQ1MTQ4NTA2QTkwMEFEMjc1MiAv
KiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0RjZGREQ2NDEz
NDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjY0MzQsMTAgKzI2NDQzLDcgQEAKIAkJCQkxNEM5QTVFQTBCM0QxMDVGMDA1QTAyMzIgLyog
U2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk4NzcwRTgxMjQyQzUzNTAwMjIyNkJB
IC8qIFNoYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjNERDQ0RjEyRjVFQTFCMDAwRDkx
OTAgLyogU2hhZG93Qmx1ci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBNzY2Q0Y4QzEzODEwRTBD
MDAxMUEwQjMgLyogU2hhZG93Q29udGVudEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
NTcwREJBODExNEI1ODA0OTAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUVCOEMzMEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dE
YXRhLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3MUMzMEI4MTM4MTI2NUUwMERCQzM1MSAvKiBT
aGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNkQxNjk2MjEz
NDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBF
NkNGNDBBMTk4OUNBMDA3RkI4QzUgLyogU2hhZG93VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjJBRkZDOTMwRDAwQTVERjAwMzAwNzREIC8qIFNoYXBlQXJhYmljLmMgaW4gU291cmNlcyAq
LywKQEAgLTI2OTI1LDEyICsyNjkzMSw2IEBACiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5
IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBG
QzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1
MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTc0
QTg2MjIxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk5N0QyQUQwMzE0QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93UHJv
cGVydHkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJN0FBQkEyNTkxNEJDNjEzMzAwQUE5QTExIC8q
IERPTUVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEY0NTdBMDE0QkMxQTg4MDAwQ0VB
NTkgLyogRE9NV2luZG93U1FMRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTAzRDBD
QUExNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJN0FDRDg4RDMxNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXgg
NTViNjA1MjhhYWEyOTNjZDY2NWM0YzkyMjdiYTg4NDc4ODVmNmEzZS4uZjJjYjQ2N2RjYzEzM2Ni
YjNkODA0MGZlMTA2YzJiZThkZTEyOGI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
CkBAIC0xMTIsOSArMTEyLDYgQEAKICNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIu
Y3BwIgogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JR
dWVyeS5jcHAiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuY3BwIgotI2luY2x1ZGUg
IlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCIKLSNpbmNsdWRlICJTaGFkb3dJbmNsdXNp
b25TZWxlY3Rvci5jcHAiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5jcHAiCiAjaW5jbHVkZSAiU3Bh
Y2VTcGxpdFN0cmluZy5jcHAiCiAjaW5jbHVkZSAiU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGVmODVm
N2QyM2Y3ODIzZjljZjFmMTBkNWM4ODIxYmE4YWE3MWJjMDkuLjIyNmMwZjRiZThlNTU4ZmY5MDBi
OTQxZDA4YjIwNWExYzIyY2E5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmNwcApAQCAtMjcsMTMgKzI3LDEzIEBACiAjaW5jbHVkZSAiTm9kZVJlbmRlcmlu
Z0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKKyNpbmNsdWRlICJDb250
ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxvd1RocmVhZC5oIgogI2luY2x1
ZGUgIlJlbmRlckZ1bGxTY3JlZW4uaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuaCIKLSNp
bmNsdWRlICJTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKIAogI2lmIEVOQUJMRShTVkcpCkBAIC0xMTEsNyArMTExLDcgQEAgUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4gTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnJlbGVhc2VTdHlsZSgpCiAgICAgcmV0dXJu
IG1fc3R5bGUucmVsZWFzZSgpOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVy
ZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGlj
IFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQs
IE5vZGUqIGN1cnJlbnQpCiB7CiAgICAgU2hhZG93SW5jbHVzaW9uKiBjdXJyZW50SW5jbHVzaW9u
ID0gcGFyZW50LT5pbmNsdXNpb25zKCktPmZpbmQoY3VycmVudCk7CiAgICAgaWYgKCFjdXJyZW50
SW5jbHVzaW9uKQpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRS
ZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCiAg
ICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXJP
ZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGljIFJl
bmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9mKEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50
LCBOb2RlKiBjdXJyZW50KQogewogICAgIFJlbmRlck9iamVjdCogbGFzdFJlbmRlcmVyID0gMDsK
IApAQCAtMTM5LDcgKzEzOSw3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVy
ZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyCiAgICAgcmV0dXJu
IGxhc3RSZW5kZXJlcjsKIH0KIAotc3RhdGljIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9m
KFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBmaXJz
dFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQpCiB7CiAgICAgZm9yIChTaGFk
b3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IHBhcmVudC0+aW5jbHVzaW9ucygpLT5maXJzdCgpOyBp
bmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKSB7CiAgICAgICAgIGlmIChS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gaW5jbHVzaW9uLT5jb250ZW50KCktPnJlbmRlcmVyKCkp
CkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9m
KFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRp
YyBSZW5kZXJPYmplY3QqIGxhc3RSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJl
bnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXJPZihIVE1MQ29udGVudEVsZW1l
bnQqIHBhcmVudCkKIHsKICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gcGFy
ZW50LT5pbmNsdXNpb25zKCktPmxhc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNsdXNp
b24tPnByZXZpb3VzKCkpIHsKICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBp
bmNsdXNpb24tPmNvbnRlbnQoKS0+cmVuZGVyZXIoKSkKQEAgLTE4Nyw3ICsxODcsNyBAQCBSZW5k
ZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIoKSBjb25zdAogICAg
ICAgICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYg
KG5vZGUtPmlzQ29udGVudEVsZW1lbnQoKSkgewotICAgICAgICAgICAgaWYgKFJlbmRlck9iamVj
dCogZmlyc3QgPSBmaXJzdFJlbmRlcmVyT2YodG9TaGFkb3dDb250ZW50RWxlbWVudChub2RlKSkp
CisgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBmaXJzdCA9IGZpcnN0UmVuZGVyZXJPZih0
b0hUTUxDb250ZW50RWxlbWVudChub2RlKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0
OwogICAgICAgICB9CiAgICAgfQpAQCAtMjIwLDcgKzIyMCw3IEBAIFJlbmRlck9iamVjdCogTm9k
ZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIoKSBjb25zdAogICAgICAgICAgICAg
cmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUtPmlz
Q29udGVudEVsZW1lbnQoKSkgewotICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogbGFzdCA9
IGxhc3RSZW5kZXJlck9mKHRvU2hhZG93Q29udGVudEVsZW1lbnQobm9kZSkpKQorICAgICAgICAg
ICAgaWYgKFJlbmRlck9iamVjdCogbGFzdCA9IGxhc3RSZW5kZXJlck9mKHRvSFRNTENvbnRlbnRF
bGVtZW50KG5vZGUpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gbGFzdDsKICAgICAgICAgfQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggYjRl
ODkxMjk3YTYyY2I0N2RiN2M5NTg0M2EwZWEwN2RjYTRmNmJiMC4uZDMxNDExNzZmMjA1NDM0MjI3
MGY2YTRlMTMxY2Y5ZDRiYmVkZTk4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFJlbmRlckZs
b3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJTdHlsZTsKLWNsYXNz
IFNoYWRvd0NvbnRlbnRFbGVtZW50OworY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OwogY2xhc3Mg
U2hhZG93Um9vdDsKIAogY2xhc3MgTm9kZVJlbmRlcmluZ0NvbnRleHQgewpAQCAtNTIsNyArNTIs
NyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlcigpIGNvbnN0Owog
ICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0
KiBwcmV2aW91c1JlbmRlcmVyKCkgY29uc3Q7Ci0gICAgU2hhZG93Q29udGVudEVsZW1lbnQqIGlu
Y2x1ZGVyKCkgY29uc3Q7CisgICAgSFRNTENvbnRlbnRFbGVtZW50KiBpbmNsdWRlcigpIGNvbnN0
OwogCiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTdHlsZShQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CkBAIC04Niw3ICs4Niw3IEBAIHByaXZhdGU6CiAgICAg
Tm9kZSogbV9ub2RlOwogICAgIENvbnRhaW5lck5vZGUqIG1fcGFyZW50Tm9kZUZvclJlbmRlcmlu
Z0FuZFN0eWxlOwogICAgIFNoYWRvd1Jvb3QqIG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdDsKLSAg
ICBTaGFkb3dDb250ZW50RWxlbWVudCogbV9pbmNsdWRlcjsKKyAgICBIVE1MQ29udGVudEVsZW1l
bnQqIG1faW5jbHVkZXI7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX3N0eWxlOwogICAgIFJl
bmRlckZsb3dUaHJlYWQqIG1fcGFyZW50Rmxvd1JlbmRlcmVyOwogICAgIEF0b21pY1N0cmluZyBt
X2Zsb3dUaHJlYWQ7CkBAIC0xMDgsNyArMTA4LDcgQEAgaW5saW5lIFJlbmRlclN0eWxlKiBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6c3R5bGUoKSBjb25zdAogICAgIHJldHVybiBtX3N0eWxlLmdldCgp
OwogfQogCi1pbmxpbmUgU2hhZG93Q29udGVudEVsZW1lbnQqIE5vZGVSZW5kZXJpbmdDb250ZXh0
OjppbmNsdWRlcigpIGNvbnN0CitpbmxpbmUgSFRNTENvbnRlbnRFbGVtZW50KiBOb2RlUmVuZGVy
aW5nQ29udGV4dDo6aW5jbHVkZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX2luY2x1ZGVyOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzYmNmMDFlMzBmMDk4YjYxMmVhOTc0NmQyMDMzYmM3NTc1
NzllMjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29u
dGVudEVsZW1lbnQuaCIKLQotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIlF1YWxp
ZmllZE5hbWUuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIgotI2lu
Y2x1ZGUgIlNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgiCi0jaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci11c2luZyBIVE1MTmFtZXM6OnNlbGVjdEF0dHI7Ci0KLVBhc3NSZWZQdHI8U2hhZG93Q29udGVu
dEVsZW1lbnQ+IFNoYWRvd0NvbnRlbnRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
KQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgdGFnTmFtZSwgKG51
bGxBdG9tLCAid2Via2l0U2hhZG93Q29udGVudCIsIEhUTUxOYW1lczo6ZGl2VGFnLm5hbWVzcGFj
ZVVSSSgpKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFkb3dDb250ZW50RWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwotfQotCi1TaGFkb3dDb250ZW50RWxlbWVudDo6U2hhZG93Q29u
dGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQotICAgIDogU3R5bGVkRWxlbWVudChuYW1lLCBkb2N1bWVudCwgQ3JlYXRlSFRNTEVsZW1lbnQp
Ci0gICAgLCBtX2luY2x1c2lvbnMoYWRvcHRQdHIobmV3IFNoYWRvd0luY2x1c2lvbkxpc3QoKSkp
Ci17Ci19Ci0KLVNoYWRvd0NvbnRlbnRFbGVtZW50Ojp+U2hhZG93Q29udGVudEVsZW1lbnQoKQot
ewotfQotCi12b2lkIFNoYWRvd0NvbnRlbnRFbGVtZW50OjphdHRhY2goKQotewotICAgIEFTU0VS
VCghZmlyc3RDaGlsZCgpKTsgLy8gQ3VycmVudGx5IGRvZXNuJ3Qgc3VwcG9ydCBhbnkgbGlnaHQg
Y2hpbGQuCi0gICAgU3R5bGVkRWxlbWVudDo6YXR0YWNoKCk7Ci0KLSAgICBpZiAoU2hhZG93Um9v
dCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkpIHsKLSAgICAgICAg
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+ZW5zdXJlSW5jbHVzaW9u
cygpOwotICAgICAgICBzZWxlY3Rvci0+dW5zZWxlY3QobV9pbmNsdXNpb25zLmdldCgpKTsKLSAg
ICAgICAgc2VsZWN0b3ItPnNlbGVjdCh0aGlzLCBtX2luY2x1c2lvbnMuZ2V0KCkpOwotICAgICAg
ICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgp
OyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQotICAgICAgICAgICAg
aW5jbHVzaW9uLT5jb250ZW50KCktPmRldGFjaCgpOwotICAgICAgICBmb3IgKFNoYWRvd0luY2x1
c2lvbiogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1
c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQotICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50
KCktPmF0dGFjaCgpOwotICAgIH0KLX0KLQotdm9pZCBTaGFkb3dDb250ZW50RWxlbWVudDo6ZGV0
YWNoKCkKLXsKLSAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dU
cmVlUm9vdE5vZGUoKSkpIHsKLSAgICAgICAgaWYgKFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBz
ZWxlY3RvciA9IHJvb3QtPmluY2x1c2lvbnMoKSkKLSAgICAgICAgICAgIHNlbGVjdG9yLT51bnNl
bGVjdChtX2luY2x1c2lvbnMuZ2V0KCkpOwotICAgIH0KLQotICAgIEFTU0VSVChtX2luY2x1c2lv
bnMtPmlzRW1wdHkoKSk7Ci0gICAgU3R5bGVkRWxlbWVudDo6ZGV0YWNoKCk7Ci19Ci0KLWNvbnN0
IEF0b21pY1N0cmluZyYgU2hhZG93Q29udGVudEVsZW1lbnQ6OnNlbGVjdCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzZWxlY3RBdHRyKTsKLX0KLQotdm9pZCBTaGFkb3dDb250
ZW50RWxlbWVudDo6c2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0VmFsdWUpCi17
Ci0gICAgc2V0QXR0cmlidXRlKHNlbGVjdEF0dHIsIHNlbGVjdFZhbHVlKTsKLX0KLQotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYWNlNDdhZGMxMTNmZmEzODNjZDI5OGU4MTRjYTRiN2Q5YjhkY2ZmNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFNoYWRvd0NvbnRlbnRFbGVtZW50X2gKLSNkZWZpbmUgU2hhZG93Q29udGVudEVs
ZW1lbnRfaAotCi0jaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU2hhZG93Q29udGVudFNlbGVj
dG9yUXVlcnk7Ci1jbGFzcyBTaGFkb3dJbmNsdXNpb25MaXN0OwotCi0vLyBOT1RFOiBDdXJyZW50
IGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBkeW5hbWljIGluc2VydGlvbi9kZWxldGlv
biBvZiBTaGFkb3dDb250ZW50RWxlbWVudC4KLS8vIFlvdSBzaG91bGQgY3JlYXRlIFNoYWRvd0Nv
bnRlbnRFbGVtZW50IGR1cmluZyB0aGUgaG9zdCBjb25zdHJ1Y3Rpb24uCi1jbGFzcyBTaGFkb3dD
b250ZW50RWxlbWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTaGFkb3dDb250ZW50RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7Ci0K
LSAgICB2aXJ0dWFsIH5TaGFkb3dDb250ZW50RWxlbWVudCgpOwotICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2goKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7Ci0KLSAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHNlbGVjdCgpIGNvbnN0OwotCi0gICAgLy8gRklYTUU6IEN1cnJlbnRseSB0aGlzIGNv
bnN0cnVjdG9yIGFjY2VwdHMgd2lkZXIgcXVlcnkgdGhhbiBzaGFkb3cgZG9tIHNwZWMuCi0gICAg
Ly8gRm9yIGV4YW1wbGUsIGEgc2VsZWN0b3IgcXVlcnkgc2hvdWxkIG5vdCBpbmNsdWRlIGNvbnRl
eHR1YWwgc2VsZWN0b3JzLgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzU5NDYKLSAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGRvbid0IHN1cHBv
cnQgc2V0dGluZyBzZWxlY3QgdmFsdWUgZHluYW1pY2FsbHkuCi0gICAgLy8gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI2MQotICAgIHZvaWQgc2V0U2VsZWN0
KGNvbnN0IEF0b21pY1N0cmluZyYpOwotCi0gICAgY29uc3QgU2hhZG93SW5jbHVzaW9uTGlzdCog
aW5jbHVzaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5jbHVzaW9ucy5nZXQoKTsgfQotCi1wcm90
ZWN0ZWQ6Ci0gICAgU2hhZG93Q29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzQ29udGVudEVsZW1lbnQo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZp
cnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0
eWxlKikgeyByZXR1cm4gMDsgfQotCi0gICAgT3duUHRyPFNoYWRvd0luY2x1c2lvbkxpc3Q+IG1f
aW5jbHVzaW9uczsKLX07Ci0KLWlubGluZSBTaGFkb3dDb250ZW50RWxlbWVudCogdG9TaGFkb3dD
b250ZW50RWxlbWVudChOb2RlKiBub2RlKQotewotICAgIEFTU0VSVCghbm9kZSB8fCBub2RlLT5p
c0NvbnRlbnRFbGVtZW50KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFkb3dDb250ZW50
RWxlbWVudCo+KG5vZGUpOwotfQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDFhMDYxZTc4NjdiMjViZTVmZWFmMWNiZjRmNzQ0OGQyMzliNzQyY2MuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoK
LSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudFNl
bGVjdG9yUXVlcnkuaCIKLQotI2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2luY2x1ZGUgIkNTU1Nl
bGVjdG9yTGlzdC5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnk6OlNoYWRvd0NvbnRl
bnRTZWxlY3RvclF1ZXJ5KFNoYWRvd0NvbnRlbnRFbGVtZW50KiBlbGVtZW50KQotICAgIDogbV9j
b250ZW50RWxlbWVudChlbGVtZW50KQotICAgICwgbV9zZWxlY3RvckNoZWNrZXIoZWxlbWVudC0+
ZG9jdW1lbnQoKSwgIWVsZW1lbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQotewotICAg
IG1fc2VsZWN0b3JDaGVja2VyLnNldENvbGxlY3RpbmdSdWxlc09ubHkodHJ1ZSk7Ci0KLSAgICBp
ZiAoZWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgZWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDU1NQYXJzZXIgcGFyc2VyKHRydWUpOwotICAg
IHBhcnNlci5wYXJzZVNlbGVjdG9yKGVsZW1lbnQtPnNlbGVjdCgpLCBlbGVtZW50LT5kb2N1bWVu
dCgpLCBtX3NlbGVjdG9yTGlzdCk7Ci0KLSAgICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKG1fc2Vs
ZWN0b3JMaXN0KTsKLX0KLQotYm9vbCBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hl
cyhOb2RlKiBub2RlKSBjb25zdAotewotICAgIEFTU0VSVChub2RlKTsKLSAgICBpZiAoIW5vZGUp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEFTU0VSVChub2RlLT5wYXJlbnROb2RlKCkg
PT0gbV9jb250ZW50RWxlbWVudC0+c2hhZG93VHJlZVJvb3ROb2RlKCktPnNoYWRvd0hvc3QoKSk7
Ci0KLSAgICBpZiAobV9jb250ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9jb250
ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQot
ICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICByZXR1cm4gbV9zZWxlY3RvcnMubWF0Y2hlcyhtX3NlbGVjdG9yQ2hlY2tlciwgdG9FbGVt
ZW50KG5vZGUpKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVu
dFNlbGVjdG9yUXVlcnkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU2ODczYjM0
MzBjM2EyYzI0N2ExODBhZTRkYTNkYjEwNGYwNzMwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNl
bGVjdG9yUXVlcnkuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNoYWRv
d0NvbnRlbnRTZWxlY3RvclF1ZXJ5X2gKLSNkZWZpbmUgU2hhZG93Q29udGVudFNlbGVjdG9yUXVl
cnlfaAotCi0jaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCi0jaW5jbHVkZSAiU2VsZWN0b3JD
aGVja2VyLmgiCi0jaW5jbHVkZSAiU2VsZWN0b3JRdWVyeS5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIERvY3VtZW50OwotY2xhc3MgTm9kZTsKLWNsYXNzIFNoYWRvd0NvbnRlbnRFbGVtZW50
OwotCi1jbGFzcyBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeSB7Ci0gICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkpOwotcHVibGljOgotICAgIGV4cGxp
Y2l0IFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5KFNoYWRvd0NvbnRlbnRFbGVtZW50Kik7Ci0K
LSAgICBib29sIG1hdGNoZXMoTm9kZSopIGNvbnN0OwotCi1wcml2YXRlOgotICAgIFNoYWRvd0Nv
bnRlbnRFbGVtZW50KiBtX2NvbnRlbnRFbGVtZW50OwotICAgIFNlbGVjdG9yRGF0YUxpc3QgbV9z
ZWxlY3RvcnM7Ci0gICAgQ1NTU2VsZWN0b3JMaXN0IG1fc2VsZWN0b3JMaXN0OwotICAgIFNlbGVj
dG9yQ2hlY2tlciBtX3NlbGVjdG9yQ2hlY2tlcjsKLX07Ci0KLX0KLQotCi0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3ZTlkNDJiZTUxYjVlNDUyYzRkNDA1NGUyMGJhNGM3Yjg1
NTQ4YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDE1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNoYWRv
d0luY2x1c2lvblNlbGVjdG9yLmgiCi0KLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5o
IgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCi0jaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgotCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTaGFkb3dJbmNsdXNp
b246OmFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbmV4dCkKLXsKLSAgICBBU1NF
UlQoIW1fbmV4dCk7Ci0gICAgQVNTRVJUKCFuZXh0LT5wcmV2aW91cygpKTsKLSAgICBtX25leHQg
PSBuZXh0OwotICAgIG1fbmV4dC0+bV9wcmV2aW91cyA9IHRoaXM7Ci19Ci0KLXZvaWQgU2hhZG93
SW5jbHVzaW9uOjp1bmxpbmsoKQotewotICAgIEFTU0VSVCghbV9wcmV2aW91cyk7IC8vIENhbiBi
ZSBjYWxsZWQgb25seSBmb3IgYSBoZWFkLgotICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGl0
ZW0gPSB0aGlzOwotICAgIHdoaWxlIChpdGVtKSB7Ci0gICAgICAgIEFTU0VSVCghaXRlbS0+cHJl
dmlvdXMoKSk7Ci0gICAgICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG5leHRJdGVtID0gaXRl
bS0+bV9uZXh0OwotICAgICAgICBpdGVtLT5tX25leHQuY2xlYXIoKTsKLSAgICAgICAgaWYgKG5l
eHRJdGVtKQotICAgICAgICAgICAgbmV4dEl0ZW0tPm1fcHJldmlvdXMuY2xlYXIoKTsKLSAgICAg
ICAgaXRlbSA9IG5leHRJdGVtOwotICAgIH0KLX0KLQotU2hhZG93SW5jbHVzaW9uTGlzdDo6U2hh
ZG93SW5jbHVzaW9uTGlzdCgpCi17Ci19Ci0KLVNoYWRvd0luY2x1c2lvbkxpc3Q6On5TaGFkb3dJ
bmNsdXNpb25MaXN0KCkKLXsKLSAgICBBU1NFUlQoaXNFbXB0eSgpKTsKLX0KLQotU2hhZG93SW5j
bHVzaW9uKiBTaGFkb3dJbmNsdXNpb25MaXN0OjpmaW5kKE5vZGUqIGNvbnRlbnQpIGNvbnN0Ci17
Ci0gICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGl0ZW0gPSBmaXJzdCgpOyBpdGVtOyBpdGVtID0g
aXRlbS0+bmV4dCgpKSB7Ci0gICAgICAgIGlmIChjb250ZW50ID09IGl0ZW0tPmNvbnRlbnQoKSkK
LSAgICAgICAgICAgIHJldHVybiBpdGVtOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gMDsKLX0K
LQotdm9pZCBTaGFkb3dJbmNsdXNpb25MaXN0OjpjbGVhcigpCi17Ci0gICAgaWYgKGlzRW1wdHko
KSkgewotICAgICAgICBBU1NFUlQoIW1fbGFzdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBtX2ZpcnN0LT51bmxpbmsoKTsKLSAgICBtX2ZpcnN0LmNsZWFyKCk7Ci0gICAgbV9sYXN0
LmNsZWFyKCk7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uTGlzdDo6YXBwZW5kKFBhc3NSZWZQ
dHI8U2hhZG93SW5jbHVzaW9uPiBjaGlsZCkKLXsKLSAgICBpZiAoaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIEFTU0VSVCghbV9sYXN0KTsKLSAgICAgICAgbV9maXJzdCA9IG1fbGFzdCA9IGNoaWxkOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9sYXN0LT5hcHBlbmQoY2hpbGQpOwotICAg
IG1fbGFzdCA9IG1fbGFzdC0+bmV4dCgpOwotfQotCi1TaGFkb3dJbmNsdXNpb25TZWxlY3Rvcjo6
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IoKQotewotfQotCi1TaGFkb3dJbmNsdXNpb25TZWxlY3Rv
cjo6flNoYWRvd0luY2x1c2lvblNlbGVjdG9yKCkKLXsKLSAgICBBU1NFUlQobV9jYW5kaWRhdGVz
LmlzRW1wdHkoKSk7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OnNlbGVjdChT
aGFkb3dDb250ZW50RWxlbWVudCogY29udGVudEVsZW1lbnQsIFNoYWRvd0luY2x1c2lvbkxpc3Qq
IGluY2x1c2lvbnMpCi17Ci0gICAgQVNTRVJUKGluY2x1c2lvbnMtPmlzRW1wdHkoKSk7Ci0KLSAg
ICBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeSBxdWVyeShjb250ZW50RWxlbWVudCk7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2NhbmRpZGF0ZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAg
ICAgTm9kZSogY2hpbGQgPSBtX2NhbmRpZGF0ZXNbaV0uZ2V0KCk7Ci0gICAgICAgIGlmICghY2hp
bGQpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKCFxdWVyeS5tYXRjaGVzKGNo
aWxkKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIFJlZlB0cjxTaGFkb3dJbmNs
dXNpb24+IGluY2x1c2lvbiA9IFNoYWRvd0luY2x1c2lvbjo6Y3JlYXRlKGNvbnRlbnRFbGVtZW50
LCBjaGlsZCk7Ci0gICAgICAgIGluY2x1c2lvbnMtPmFwcGVuZChpbmNsdXNpb24pOwotICAgICAg
ICBtX2luY2x1c2lvblNldC5hZGQoaW5jbHVzaW9uLmdldCgpKTsKLSAgICAgICAgbV9jYW5kaWRh
dGVzW2ldID0gMDsKLSAgICB9Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OnVu
c2VsZWN0KFNoYWRvd0luY2x1c2lvbkxpc3QqIGxpc3QpCi17Ci0gICAgZm9yIChTaGFkb3dJbmNs
dXNpb24qIGluY2x1c2lvbiA9IGxpc3QtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0g
aW5jbHVzaW9uLT5uZXh0KCkpCi0gICAgICAgIG1faW5jbHVzaW9uU2V0LnJlbW92ZShpbmNsdXNp
b24pOwotICAgIGxpc3QtPmNsZWFyKCk7Ci19Ci0KLVNoYWRvd0luY2x1c2lvbiogU2hhZG93SW5j
bHVzaW9uU2VsZWN0b3I6OmZpbmRGb3IoTm9kZSoga2V5KSBjb25zdAotewotICAgIHJldHVybiBt
X2luY2x1c2lvblNldC5maW5kKGtleSk7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0
b3I6OmRpZFNlbGVjdCgpCi17Ci0gICAgbV9jYW5kaWRhdGVzLmNsZWFyKCk7Ci19Ci0KLXZvaWQg
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OndpbGxTZWxlY3RPdmVyKFNoYWRvd1Jvb3QqIHNjb3Bl
KQotewotICAgIGlmICghbV9jYW5kaWRhdGVzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIGZvciAoTm9kZSogbm9kZSA9IHNjb3BlLT5zaGFkb3dIb3N0KCktPmZpcnN0Q2hpbGQoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIG1fY2FuZGlkYXRlcy5h
cHBlbmQobm9kZSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dJbmNsdXNpb25TZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lv
blNlbGVjdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxYTg3MTc0NDFiMTlj
MmQ2YWZhMGU4ZjM0MDc1ODQxMDIxOGI0ZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVj
dG9yLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0g
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3JfaAotI2RlZmluZSBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvcl9oCi0KLSNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgRWxlbWVudDsKLWNsYXNzIE5vZGU7Ci1jbGFzcyBTaGFkb3dSb290
OwotY2xhc3MgU2hhZG93Q29udGVudEVsZW1lbnQ7Ci0KLWNsYXNzIFNoYWRvd0luY2x1c2lvbiA6
IHB1YmxpYyBSZWZDb3VudGVkPFNoYWRvd0luY2x1c2lvbj4gewotcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gY3JlYXRlKFNoYWRvd0NvbnRlbnRFbGVtZW50
KiwgTm9kZSopOwotCi0gICAgU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9pbmNsdWRlcjsgfQotICAgIE5vZGUqIGNvbnRlbnQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRlbnQuZ2V0KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIG5leHQoKSBjb25zdCB7
IHJldHVybiBtX25leHQuZ2V0KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIHByZXZpb3VzKCkg
Y29uc3QgeyByZXR1cm4gbV9wcmV2aW91cy5nZXQoKTsgfQotCi0gICAgdm9pZCBhcHBlbmQoUGFz
c1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+KTsKLSAgICB2b2lkIHVubGluaygpOwotCi1wcml2YXRl
OgotICAgIFNoYWRvd0luY2x1c2lvbihTaGFkb3dDb250ZW50RWxlbWVudCosIE5vZGUqKTsKLQot
ICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBtX2luY2x1ZGVyOwotICAgIFJlZlB0cjxOb2RlPiBt
X2NvbnRlbnQ7Ci0gICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbV9uZXh0OwotICAgIFJlZlB0
cjxTaGFkb3dJbmNsdXNpb24+IG1fcHJldmlvdXM7Ci19OwotCi1pbmxpbmUgU2hhZG93SW5jbHVz
aW9uOjpTaGFkb3dJbmNsdXNpb24oU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyLCBOb2Rl
KiBjb250ZW50KQotICAgIDogbV9pbmNsdWRlcihpbmNsdWRlciksIG1fY29udGVudChjb250ZW50
KQoteyB9Ci0KLWlubGluZSBQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gU2hhZG93SW5jbHVz
aW9uOjpjcmVhdGUoU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyLCBOb2RlKiBjb250ZW50
KQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93SW5jbHVzaW9uKGluY2x1ZGVyLCBj
b250ZW50KSk7Ci19Ci0KLWNsYXNzIFNoYWRvd0luY2x1c2lvbkxpc3QgewotcHVibGljOgotICAg
IFNoYWRvd0luY2x1c2lvbkxpc3QoKTsKLSAgICB+U2hhZG93SW5jbHVzaW9uTGlzdCgpOwotCi0g
ICAgU2hhZG93SW5jbHVzaW9uKiBmaXJzdCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3QuZ2V0KCk7
IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIGxhc3QoKSBjb25zdCB7IHJldHVybiBtX2xhc3QuZ2V0
KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIGZpbmQoTm9kZSopIGNvbnN0OwotICAgIGJvb2wg
aXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2ZpcnN0OyB9Ci0KLSAgICB2b2lkIGNsZWFyKCk7
Ci0gICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+KTsKLQotcHJpdmF0
ZToKLSAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBtX2ZpcnN0OwotICAgIFJlZlB0cjxTaGFk
b3dJbmNsdXNpb24+IG1fbGFzdDsKLX07Ci0KLQotY2xhc3MgU2hhZG93SW5jbHVzaW9uU2V0IHsK
LXB1YmxpYzoKLSAgICB2b2lkIGFkZChTaGFkb3dJbmNsdXNpb24qIHZhbHVlKSB7IG1fc2V0LmFk
ZCh2YWx1ZSk7IH0KLSAgICB2b2lkIHJlbW92ZShTaGFkb3dJbmNsdXNpb24qIHZhbHVlKSB7IG1f
c2V0LnJlbW92ZSh2YWx1ZSk7IH0KLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBt
X3NldC5pc0VtcHR5KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIGZpbmQoTm9kZSoga2V5KSBj
b25zdDsKLQotcHJpdmF0ZToKLSAgICBzdHJ1Y3QgVHJhbnNsYXRvciB7Ci0gICAgcHVibGljOgot
ICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBOb2RlKiBrZXkpIHsgcmV0dXJuIFB0
ckhhc2g8Y29uc3QgTm9kZSo+OjpoYXNoKGtleSk7IH0KLSAgICAgICAgc3RhdGljIGJvb2wgZXF1
YWwoY29uc3QgU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24sIGNvbnN0IE5vZGUqIGNvbnRlbnQp
IHsgcmV0dXJuIGluY2x1c2lvbi0+Y29udGVudCgpID09IGNvbnRlbnQ7IH0KLSAgICB9OwotCi0g
ICAgc3RydWN0IEhhc2ggewotICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChTaGFkb3dJbmNs
dXNpb24qIGtleSkgeyByZXR1cm4gUHRySGFzaDxjb25zdCBOb2RlKj46Omhhc2goa2V5LT5jb250
ZW50KCkpOyB9Ci0gICAgICAgIHN0YXRpYyBib29sIGVxdWFsKFNoYWRvd0luY2x1c2lvbiogYSwg
U2hhZG93SW5jbHVzaW9uKiBiKSB7IHJldHVybiBhLT5jb250ZW50KCkgPT0gYi0+Y29udGVudCgp
OyB9Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxl
dGVkID0gZmFsc2U7Ci0gICAgfTsKLQotICAgIHR5cGVkZWYgSGFzaFNldDxTaGFkb3dJbmNsdXNp
b24qLCBIYXNoPiBQb2ludGVyU2V0OwotCi0gICAgUG9pbnRlclNldCBtX3NldDsKLX07Ci0KLWlu
bGluZSBTaGFkb3dJbmNsdXNpb24qIFNoYWRvd0luY2x1c2lvblNldDo6ZmluZChOb2RlKiBrZXkp
IGNvbnN0Ci17Ci0gICAgUG9pbnRlclNldDo6aXRlcmF0b3IgZm91bmQgPSBtX3NldC5maW5kPE5v
ZGUqLCBTaGFkb3dJbmNsdXNpb25TZXQ6OlRyYW5zbGF0b3I+KGtleSk7Ci0gICAgcmV0dXJuIGZv
dW5kICE9IG1fc2V0LmVuZCgpID8gKmZvdW5kIDogMDsKLX0KLQotY2xhc3MgU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3IgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNoYWRvd0luY2x1c2lvblNl
bGVjdG9yKTsKLXB1YmxpYzoKLSAgICBTaGFkb3dJbmNsdXNpb25TZWxlY3RvcigpOwotICAgIH5T
aGFkb3dJbmNsdXNpb25TZWxlY3RvcigpOwotCi0gICAgdm9pZCBzZWxlY3QoU2hhZG93Q29udGVu
dEVsZW1lbnQqLCBTaGFkb3dJbmNsdXNpb25MaXN0Kik7Ci0gICAgdm9pZCB1bnNlbGVjdChTaGFk
b3dJbmNsdXNpb25MaXN0Kik7Ci0gICAgU2hhZG93SW5jbHVzaW9uKiBmaW5kRm9yKE5vZGUqIGtl
eSkgY29uc3Q7Ci0KLSAgICB2b2lkIHdpbGxTZWxlY3RPdmVyKFNoYWRvd1Jvb3QqKTsKLSAgICB2
b2lkIGRpZFNlbGVjdCgpOwotICAgIGJvb2wgaGFzQ2FuZGlkYXRlcygpIGNvbnN0IHsgcmV0dXJu
ICFtX2NhbmRpZGF0ZXMuaXNFbXB0eSgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCByZW1vdmVG
cm9tU2V0KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKLSAgICB2b2lkIGFkZFRvU2V0KFNoYWRvd0lu
Y2x1c2lvbkxpc3QqKTsKLQotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiBtX2NhbmRpZGF0ZXM7
Ci0gICAgU2hhZG93SW5jbHVzaW9uU2V0IG1faW5jbHVzaW9uU2V0OwotfTsKLQotfQotCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBlMmNlOWIwNDNlOTQ0YjFhYzYyMmI1
NWMxMDA5MTFjNGJiODJlMDQ5Li4yMjlkNTU4MTVhN2ZhZWVlNDc4YWQyOWE3MDhiMjU4OTZiMjRl
YTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0yNiwxMiArMjYsMTIgQEAKIAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJF
bGVtZW50LmgiCiAKKyNpbmNsdWRlICJDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ29u
dGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKLSNpbmNsdWRlICJTaGFk
b3dDb250ZW50RWxlbWVudC5oIgotI2luY2x1ZGUgIlNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgi
CiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMDEsNyArMTAx
LDcgQEAgdm9pZCBTaGFkb3dSb290OjpyZWNhbGNTaGFkb3dUcmVlU3R5bGUoU3R5bGVDaGFuZ2Ug
Y2hhbmdlKQogICAgIGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKLVNoYWRvd0Nv
bnRlbnRFbGVtZW50KiBTaGFkb3dSb290OjppbmNsdWRlckZvcihOb2RlKiBub2RlKSBjb25zdAor
SFRNTENvbnRlbnRFbGVtZW50KiBTaGFkb3dSb290OjppbmNsdWRlckZvcihOb2RlKiBub2RlKSBj
b25zdAogewogICAgIGlmICghbV9pbmNsdXNpb25zKQogICAgICAgICByZXR1cm4gMDsKQEAgLTE1
NSwxNSArMTU1LDE1IEBAIHZvaWQgU2hhZG93Um9vdDo6YXR0YWNoKCkKICAgICAgICAgbV9pbmNs
dXNpb25zLT5kaWRTZWxlY3QoKTsKIH0KIAotU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIFNoYWRv
d1Jvb3Q6OmluY2x1c2lvbnMoKSBjb25zdAorQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBTaGFk
b3dSb290OjppbmNsdXNpb25zKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbmNsdXNpb25zLmdl
dCgpOwogfQogCi1TaGFkb3dJbmNsdXNpb25TZWxlY3RvciogU2hhZG93Um9vdDo6ZW5zdXJlSW5j
bHVzaW9ucygpCitDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIFNoYWRvd1Jvb3Q6OmVuc3VyZUlu
Y2x1c2lvbnMoKQogewogICAgIGlmICghbV9pbmNsdXNpb25zKQotICAgICAgICBtX2luY2x1c2lv
bnMgPSBhZG9wdFB0cihuZXcgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IoKSk7CisgICAgICAgIG1f
aW5jbHVzaW9ucyA9IGFkb3B0UHRyKG5ldyBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IoKSk7CiAg
ICAgbV9pbmNsdXNpb25zLT53aWxsU2VsZWN0T3Zlcih0aGlzKTsKICAgICByZXR1cm4gbV9pbmNs
dXNpb25zLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggMzRkZGYzMzAxMTUy
NGRhNzJkYmQ2ZmEyMjRkYjk0YmY0YWQ5MTJkMy4uYzViYzBkYmNiNWQwY2RiOWE4MzQ1YmQ5YTFm
OTIxN2UyMzAyYWMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC0zMiw4ICszMiw4IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgU2hhZG93Q29u
dGVudEVsZW1lbnQ7Ci1jbGFzcyBTaGFkb3dJbmNsdXNpb25TZWxlY3RvcjsKK2NsYXNzIEhUTUxD
b250ZW50RWxlbWVudDsKK2NsYXNzIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvcjsKIAogY2xhc3Mg
U2hhZG93Um9vdCA6IHB1YmxpYyBUcmVlU2NvcGUgewogcHVibGljOgpAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHJlY2FsY1NoYWRvd1RyZWVTdHlsZShTdHlsZUNoYW5nZSk7
CiAKLSAgICBTaGFkb3dDb250ZW50RWxlbWVudCogaW5jbHVkZXJGb3IoTm9kZSopIGNvbnN0Owor
ICAgIEhUTUxDb250ZW50RWxlbWVudCogaW5jbHVkZXJGb3IoTm9kZSopIGNvbnN0OwogICAgIHZv
aWQgaG9zdENoaWxkcmVuQ2hhbmdlZCgpOwogICAgIGJvb2wgaXNJbmNsdXNpb25TZWxlY3RvckFj
dGl2ZSgpIGNvbnN0OwogCkBAIC01MCw4ICs1MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgYXBwbHlBdXRob3JTaGVldHMoKSBjb25zdDsKICAgICB2b2lkIHNldEFwcGx5QXV0aG9yU2hl
ZXRzKGJvb2wpOwogCi0gICAgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIGluY2x1c2lvbnMoKSBj
b25zdDsKLSAgICBTaGFkb3dJbmNsdXNpb25TZWxlY3RvciogZW5zdXJlSW5jbHVzaW9ucygpOwor
ICAgIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvciogaW5jbHVzaW9ucygpIGNvbnN0OworICAgIENv
bnRlbnRJbmNsdXNpb25TZWxlY3RvciogZW5zdXJlSW5jbHVzaW9ucygpOwogCiBwcml2YXRlOgog
ICAgIFNoYWRvd1Jvb3QoRG9jdW1lbnQqKTsKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIGhhc0NvbnRlbnRFbGVtZW50KCkgY29uc3Q7CiAKICAgICBib29sIG1fYXBwbHlBdXRo
b3JTaGVldHM7Ci0gICAgT3duUHRyPFNoYWRvd0luY2x1c2lvblNlbGVjdG9yPiBtX2luY2x1c2lv
bnM7CisgICAgT3duUHRyPENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcj4gbV9pbmNsdXNpb25zOwog
fTsKIAogaW5saW5lIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gU2hhZG93Um9vdDo6Y3JlYXRlKERv
Y3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50
LmNwcAppbmRleCBhYWEwNWUxNDU3NGQ0MDc5ZmNlMDhlMTU2NmNlMGJiZGQ2NGY3MzY1Li5kZGVj
NzM4NzY2NDgwMDNlMmY5MWM3NzBkMWE4MTUyMDIzMmI3ZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0yMywxMiArMjMsMTIgQEAKIAogI2lmIEVO
QUJMRShERVRBSUxTKQogCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFN1bW1hcnlFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRl
ICJSZW5kZXJEZXRhaWxzLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuaCIKICNp
bmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCkBAIC00MiwxMyArNDIs
MTMgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VtbWFyeVF1ZXJ5U2VsZWN0b3IoKQog
ICAgIHJldHVybiBzZWxlY3RvcjsKIH07CiAKLWNsYXNzIERldGFpbHNDb250ZW50RWxlbWVudCA6
IHB1YmxpYyBTaGFkb3dDb250ZW50RWxlbWVudCB7CitjbGFzcyBEZXRhaWxzQ29udGVudEVsZW1l
bnQgOiBwdWJsaWMgSFRNTENvbnRlbnRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxEZXRhaWxzQ29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCiBwcml2
YXRlOgogICAgIERldGFpbHNDb250ZW50RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCi0gICAg
ICAgIDogU2hhZG93Q29udGVudEVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQor
ICAgICAgICA6IEhUTUxDb250ZW50RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQp
CiAgICAgewogICAgIH0KIH07CkBAIC01OCwxMyArNTgsMTMgQEAgUGFzc1JlZlB0cjxEZXRhaWxz
Q29udGVudEVsZW1lbnQ+IERldGFpbHNDb250ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBk
b2N1bWUKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERldGFpbHNDb250ZW50RWxlbWVudChkb2N1
bWVudCkpOwogfQogCi1jbGFzcyBEZXRhaWxzU3VtbWFyeUVsZW1lbnQgOiBwdWJsaWMgU2hhZG93
Q29udGVudEVsZW1lbnQgeworY2xhc3MgRGV0YWlsc1N1bW1hcnlFbGVtZW50IDogcHVibGljIEhU
TUxDb250ZW50RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGV0YWls
c1N1bW1hcnlFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogcHJpdmF0ZToKICAgICBEZXRh
aWxzU3VtbWFyeUVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQotICAgICAgICA6IFNoYWRvd0Nv
bnRlbnRFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKKyAgICAgICAgOiBIVE1M
Q29udGVudEVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQogICAgIHsKICAgICAg
ICAgc2V0U2VsZWN0KHN1bW1hcnlRdWVyeVNlbGVjdG9yKCkpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKaW5kZXggYjYyNGU2MjdiYTE3YzE5
Mjc1NTc3NDI2ZTQ2ZmIzZmI2MTEzOWRjYi4uMjc0YTE4NmYxNjE4OWZhNDFlZWEwMzY1NjE2Mzky
ZTAyMTEwYjkwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNB
bGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9u
ZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuY3BwIgog
I2luY2x1ZGUgIkhUTUxCdXR0b25FbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxl
bWVudC5jcHAiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJI
VE1MRGF0YUxpc3RFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MRGV0YWlsc0VsZW1lbnQuY3Bw
IgogI2luY2x1ZGUgIkhUTUxETGlzdEVsZW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IGVjZjEwODVjZTMwZmUwZjNiOTNlMWNkZTI1ZWI1
NDRmYTdkYjRmNGIuLjk5MjU2MjdmZTVjZTNhYTRhOTliMjMzMDE1MjgwYzBjNzQzNjg1MTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKQEAgLTI0LDEyICsy
NCwxMiBAQAogI2lmIEVOQUJMRShERVRBSUxTKQogCiAjaW5jbHVkZSAiRGV0YWlsc01hcmtlckNv
bnRyb2wuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
RGV0YWlsc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJNb3Vz
ZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU3VtbWFyeS5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCiAKICNpbmNs
dWRlICJTaGFkb3dSb290LmgiCiAKQEAgLTM3LDEzICszNywxMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWNsYXNzIFN1bW1hcnlDb250ZW50
RWxlbWVudCA6IHB1YmxpYyBTaGFkb3dDb250ZW50RWxlbWVudCB7CitjbGFzcyBTdW1tYXJ5Q29u
dGVudEVsZW1lbnQgOiBwdWJsaWMgSFRNTENvbnRlbnRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdW1tYXJ5Q29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCop
OwogCiBwcml2YXRlOgogICAgIFN1bW1hcnlDb250ZW50RWxlbWVudChEb2N1bWVudCogZG9jdW1l
bnQpCi0gICAgICAgIDogU2hhZG93Q29udGVudEVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRv
Y3VtZW50KQorICAgICAgICA6IEhUTUxDb250ZW50RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywg
ZG9jdW1lbnQpCiAgICAgewogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjU0
MWE1YWU4OTg3NTk4ZWI5YTkxMzI3NGE1YzRjNmFjZjgwZGM0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcApA
QCAtMCwwICsxLDE1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb250ZW50
SW5jbHVzaW9uU2VsZWN0b3IuaCIKKworI2luY2x1ZGUgIkNvbnRlbnRTZWxlY3RvclF1ZXJ5Lmgi
CisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBTaGFkb3dJbmNsdXNpb246OmFwcGVu
ZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbmV4dCkKK3sKKyAgICBBU1NFUlQoIW1fbmV4
dCk7CisgICAgQVNTRVJUKCFuZXh0LT5wcmV2aW91cygpKTsKKyAgICBtX25leHQgPSBuZXh0Owor
ICAgIG1fbmV4dC0+bV9wcmV2aW91cyA9IHRoaXM7Cit9CisKK3ZvaWQgU2hhZG93SW5jbHVzaW9u
Ojp1bmxpbmsoKQoreworICAgIEFTU0VSVCghbV9wcmV2aW91cyk7IC8vIENhbiBiZSBjYWxsZWQg
b25seSBmb3IgYSBoZWFkLgorICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGl0ZW0gPSB0aGlz
OworICAgIHdoaWxlIChpdGVtKSB7CisgICAgICAgIEFTU0VSVCghaXRlbS0+cHJldmlvdXMoKSk7
CisgICAgICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG5leHRJdGVtID0gaXRlbS0+bV9uZXh0
OworICAgICAgICBpdGVtLT5tX25leHQuY2xlYXIoKTsKKyAgICAgICAgaWYgKG5leHRJdGVtKQor
ICAgICAgICAgICAgbmV4dEl0ZW0tPm1fcHJldmlvdXMuY2xlYXIoKTsKKyAgICAgICAgaXRlbSA9
IG5leHRJdGVtOworICAgIH0KK30KKworU2hhZG93SW5jbHVzaW9uTGlzdDo6U2hhZG93SW5jbHVz
aW9uTGlzdCgpCit7Cit9CisKK1NoYWRvd0luY2x1c2lvbkxpc3Q6On5TaGFkb3dJbmNsdXNpb25M
aXN0KCkKK3sKKyAgICBBU1NFUlQoaXNFbXB0eSgpKTsKK30KKworU2hhZG93SW5jbHVzaW9uKiBT
aGFkb3dJbmNsdXNpb25MaXN0OjpmaW5kKE5vZGUqIGNvbnRlbnQpIGNvbnN0Cit7CisgICAgZm9y
IChTaGFkb3dJbmNsdXNpb24qIGl0ZW0gPSBmaXJzdCgpOyBpdGVtOyBpdGVtID0gaXRlbS0+bmV4
dCgpKSB7CisgICAgICAgIGlmIChjb250ZW50ID09IGl0ZW0tPmNvbnRlbnQoKSkKKyAgICAgICAg
ICAgIHJldHVybiBpdGVtOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBT
aGFkb3dJbmNsdXNpb25MaXN0OjpjbGVhcigpCit7CisgICAgaWYgKGlzRW1wdHkoKSkgeworICAg
ICAgICBBU1NFUlQoIW1fbGFzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2Zp
cnN0LT51bmxpbmsoKTsKKyAgICBtX2ZpcnN0LmNsZWFyKCk7CisgICAgbV9sYXN0LmNsZWFyKCk7
Cit9CisKK3ZvaWQgU2hhZG93SW5jbHVzaW9uTGlzdDo6YXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93
SW5jbHVzaW9uPiBjaGlsZCkKK3sKKyAgICBpZiAoaXNFbXB0eSgpKSB7CisgICAgICAgIEFTU0VS
VCghbV9sYXN0KTsKKyAgICAgICAgbV9maXJzdCA9IG1fbGFzdCA9IGNoaWxkOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgbV9sYXN0LT5hcHBlbmQoY2hpbGQpOworICAgIG1fbGFzdCA9
IG1fbGFzdC0+bmV4dCgpOworfQorCitDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OkNvbnRlbnRJ
bmNsdXNpb25TZWxlY3RvcigpCit7Cit9CisKK0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6fkNv
bnRlbnRJbmNsdXNpb25TZWxlY3RvcigpCit7CisgICAgQVNTRVJUKG1fY2FuZGlkYXRlcy5pc0Vt
cHR5KCkpOworfQorCit2b2lkIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6c2VsZWN0KEhUTUxD
b250ZW50RWxlbWVudCogY29udGVudEVsZW1lbnQsIFNoYWRvd0luY2x1c2lvbkxpc3QqIGluY2x1
c2lvbnMpCit7CisgICAgQVNTRVJUKGluY2x1c2lvbnMtPmlzRW1wdHkoKSk7CisKKyAgICBDb250
ZW50U2VsZWN0b3JRdWVyeSBxdWVyeShjb250ZW50RWxlbWVudCk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX2NhbmRpZGF0ZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgTm9kZSogY2hp
bGQgPSBtX2NhbmRpZGF0ZXNbaV0uZ2V0KCk7CisgICAgICAgIGlmICghY2hpbGQpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKCFxdWVyeS5tYXRjaGVzKGNoaWxkKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGluY2x1
c2lvbiA9IFNoYWRvd0luY2x1c2lvbjo6Y3JlYXRlKGNvbnRlbnRFbGVtZW50LCBjaGlsZCk7Cisg
ICAgICAgIGluY2x1c2lvbnMtPmFwcGVuZChpbmNsdXNpb24pOworICAgICAgICBtX2luY2x1c2lv
blNldC5hZGQoaW5jbHVzaW9uLmdldCgpKTsKKyAgICAgICAgbV9jYW5kaWRhdGVzW2ldID0gMDsK
KyAgICB9Cit9CisKK3ZvaWQgQ29udGVudEluY2x1c2lvblNlbGVjdG9yOjp1bnNlbGVjdChTaGFk
b3dJbmNsdXNpb25MaXN0KiBsaXN0KQoreworICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNs
dXNpb24gPSBsaXN0LT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+
bmV4dCgpKQorICAgICAgICBtX2luY2x1c2lvblNldC5yZW1vdmUoaW5jbHVzaW9uKTsKKyAgICBs
aXN0LT5jbGVhcigpOworfQorCitTaGFkb3dJbmNsdXNpb24qIENvbnRlbnRJbmNsdXNpb25TZWxl
Y3Rvcjo6ZmluZEZvcihOb2RlKiBrZXkpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5jbHVzaW9u
U2V0LmZpbmQoa2V5KTsKK30KKwordm9pZCBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OmRpZFNl
bGVjdCgpCit7CisgICAgbV9jYW5kaWRhdGVzLmNsZWFyKCk7Cit9CisKK3ZvaWQgQ29udGVudElu
Y2x1c2lvblNlbGVjdG9yOjp3aWxsU2VsZWN0T3ZlcihTaGFkb3dSb290KiBzY29wZSkKK3sKKyAg
ICBpZiAoIW1fY2FuZGlkYXRlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICBmb3Ig
KE5vZGUqIG5vZGUgPSBzY29wZS0+c2hhZG93SG9zdCgpLT5maXJzdENoaWxkKCk7IG5vZGU7IG5v
ZGUgPSBub2RlLT5uZXh0U2libGluZygpKQorICAgICAgICBtX2NhbmRpZGF0ZXMuYXBwZW5kKG5v
ZGUpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250
ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRl
bnRJbmNsdXNpb25TZWxlY3Rvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmMGIxOTc4ZWJjNzkxYmM0NjNjMjMw
NGE5OTdmNTUxNTQxYjYyNjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaApAQCAtMCwwICsxLDE1MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgQ29udGVudEluY2x1c2lvblNlbGVjdG9yX2gKKyNkZWZpbmUgQ29udGVudEluY2x1c2lvblNl
bGVjdG9yX2gKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFbGVtZW50OworY2xhc3MgSFRNTENv
bnRlbnRFbGVtZW50OworY2xhc3MgTm9kZTsKK2NsYXNzIFNoYWRvd1Jvb3Q7CisKK2NsYXNzIFNo
YWRvd0luY2x1c2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNoYWRvd0luY2x1c2lvbj4geworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gY3JlYXRlKEhUTUxD
b250ZW50RWxlbWVudCosIE5vZGUqKTsKKworICAgIEhUTUxDb250ZW50RWxlbWVudCogaW5jbHVk
ZXIoKSBjb25zdCB7IHJldHVybiBtX2luY2x1ZGVyOyB9CisgICAgTm9kZSogY29udGVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fY29udGVudC5nZXQoKTsgfQorICAgIFNoYWRvd0luY2x1c2lvbiogbmV4
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dC5nZXQoKTsgfQorICAgIFNoYWRvd0luY2x1c2lvbiog
cHJldmlvdXMoKSBjb25zdCB7IHJldHVybiBtX3ByZXZpb3VzLmdldCgpOyB9CisKKyAgICB2b2lk
IGFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4pOworICAgIHZvaWQgdW5saW5rKCk7
CisKK3ByaXZhdGU6CisgICAgU2hhZG93SW5jbHVzaW9uKEhUTUxDb250ZW50RWxlbWVudCosIE5v
ZGUqKTsKKworICAgIEhUTUxDb250ZW50RWxlbWVudCogbV9pbmNsdWRlcjsKKyAgICBSZWZQdHI8
Tm9kZT4gbV9jb250ZW50OworICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG1fbmV4dDsKKyAg
ICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBtX3ByZXZpb3VzOworfTsKKworaW5saW5lIFNoYWRv
d0luY2x1c2lvbjo6U2hhZG93SW5jbHVzaW9uKEhUTUxDb250ZW50RWxlbWVudCogaW5jbHVkZXIs
IE5vZGUqIGNvbnRlbnQpCisgICAgOiBtX2luY2x1ZGVyKGluY2x1ZGVyKSwgbV9jb250ZW50KGNv
bnRlbnQpCit7IH0KKworaW5saW5lIFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBTaGFkb3dJ
bmNsdXNpb246OmNyZWF0ZShIVE1MQ29udGVudEVsZW1lbnQqIGluY2x1ZGVyLCBOb2RlKiBjb250
ZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93SW5jbHVzaW9uKGluY2x1ZGVy
LCBjb250ZW50KSk7Cit9CisKK2NsYXNzIFNoYWRvd0luY2x1c2lvbkxpc3QgeworcHVibGljOgor
ICAgIFNoYWRvd0luY2x1c2lvbkxpc3QoKTsKKyAgICB+U2hhZG93SW5jbHVzaW9uTGlzdCgpOwor
CisgICAgU2hhZG93SW5jbHVzaW9uKiBmaXJzdCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3QuZ2V0
KCk7IH0KKyAgICBTaGFkb3dJbmNsdXNpb24qIGxhc3QoKSBjb25zdCB7IHJldHVybiBtX2xhc3Qu
Z2V0KCk7IH0KKyAgICBTaGFkb3dJbmNsdXNpb24qIGZpbmQoTm9kZSopIGNvbnN0OworICAgIGJv
b2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2ZpcnN0OyB9CisKKyAgICB2b2lkIGNsZWFy
KCk7CisgICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+KTsKKworcHJp
dmF0ZToKKyAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBtX2ZpcnN0OworICAgIFJlZlB0cjxT
aGFkb3dJbmNsdXNpb24+IG1fbGFzdDsKK307CisKKworY2xhc3MgU2hhZG93SW5jbHVzaW9uU2V0
IHsKK3B1YmxpYzoKKyAgICB2b2lkIGFkZChTaGFkb3dJbmNsdXNpb24qIHZhbHVlKSB7IG1fc2V0
LmFkZCh2YWx1ZSk7IH0KKyAgICB2b2lkIHJlbW92ZShTaGFkb3dJbmNsdXNpb24qIHZhbHVlKSB7
IG1fc2V0LnJlbW92ZSh2YWx1ZSk7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVy
biBtX3NldC5pc0VtcHR5KCk7IH0KKyAgICBTaGFkb3dJbmNsdXNpb24qIGZpbmQoTm9kZSoga2V5
KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgVHJhbnNsYXRvciB7CisgICAgcHVibGlj
OgorICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBOb2RlKiBrZXkpIHsgcmV0dXJu
IFB0ckhhc2g8Y29uc3QgTm9kZSo+OjpoYXNoKGtleSk7IH0KKyAgICAgICAgc3RhdGljIGJvb2wg
ZXF1YWwoY29uc3QgU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24sIGNvbnN0IE5vZGUqIGNvbnRl
bnQpIHsgcmV0dXJuIGluY2x1c2lvbi0+Y29udGVudCgpID09IGNvbnRlbnQ7IH0KKyAgICB9Owor
CisgICAgc3RydWN0IEhhc2ggeworICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChTaGFkb3dJ
bmNsdXNpb24qIGtleSkgeyByZXR1cm4gUHRySGFzaDxjb25zdCBOb2RlKj46Omhhc2goa2V5LT5j
b250ZW50KCkpOyB9CisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKFNoYWRvd0luY2x1c2lvbiog
YSwgU2hhZG93SW5jbHVzaW9uKiBiKSB7IHJldHVybiBhLT5jb250ZW50KCkgPT0gYi0+Y29udGVu
dCgpOyB9CisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JE
ZWxldGVkID0gZmFsc2U7CisgICAgfTsKKworICAgIHR5cGVkZWYgSGFzaFNldDxTaGFkb3dJbmNs
dXNpb24qLCBIYXNoPiBQb2ludGVyU2V0OworCisgICAgUG9pbnRlclNldCBtX3NldDsKK307CisK
K2lubGluZSBTaGFkb3dJbmNsdXNpb24qIFNoYWRvd0luY2x1c2lvblNldDo6ZmluZChOb2RlKiBr
ZXkpIGNvbnN0Cit7CisgICAgUG9pbnRlclNldDo6aXRlcmF0b3IgZm91bmQgPSBtX3NldC5maW5k
PE5vZGUqLCBTaGFkb3dJbmNsdXNpb25TZXQ6OlRyYW5zbGF0b3I+KGtleSk7CisgICAgcmV0dXJu
IGZvdW5kICE9IG1fc2V0LmVuZCgpID8gKmZvdW5kIDogMDsKK30KKworY2xhc3MgQ29udGVudElu
Y2x1c2lvblNlbGVjdG9yIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb250ZW50SW5jbHVz
aW9uU2VsZWN0b3IpOworcHVibGljOgorICAgIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvcigpOwor
ICAgIH5Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IoKTsKKworICAgIHZvaWQgc2VsZWN0KEhUTUxD
b250ZW50RWxlbWVudCosIFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKKyAgICB2b2lkIHVuc2VsZWN0
KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKKyAgICBTaGFkb3dJbmNsdXNpb24qIGZpbmRGb3IoTm9k
ZSoga2V5KSBjb25zdDsKKworICAgIHZvaWQgd2lsbFNlbGVjdE92ZXIoU2hhZG93Um9vdCopOwor
ICAgIHZvaWQgZGlkU2VsZWN0KCk7CisgICAgYm9vbCBoYXNDYW5kaWRhdGVzKCkgY29uc3QgeyBy
ZXR1cm4gIW1fY2FuZGlkYXRlcy5pc0VtcHR5KCk7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHJl
bW92ZUZyb21TZXQoU2hhZG93SW5jbHVzaW9uTGlzdCopOworICAgIHZvaWQgYWRkVG9TZXQoU2hh
ZG93SW5jbHVzaW9uTGlzdCopOworCisgICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IG1fY2FuZGlk
YXRlczsKKyAgICBTaGFkb3dJbmNsdXNpb25TZXQgbV9pbmNsdXNpb25TZXQ7Cit9OworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNl
bGVjdG9yUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVj
dG9yUXVlcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiZjhlNTE3MTA3ZDk4ZjU1ZmQwM2EyMzkzZTU5MDhi
YmE3ZTRmOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9D
b250ZW50U2VsZWN0b3JRdWVyeS5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJDb250ZW50U2VsZWN0b3JRdWVyeS5oIgorCisjaW5jbHVkZSAiQ1NT
UGFyc2VyLmgiCisjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCisjaW5jbHVkZSAiSFRNTENv
bnRlbnRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29udGVudFNlbGVjdG9y
UXVlcnk6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5KEhUTUxDb250ZW50RWxlbWVudCogZWxlbWVudCkK
KyAgICA6IG1fY29udGVudEVsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fc2VsZWN0b3JDaGVja2Vy
KGVsZW1lbnQtPmRvY3VtZW50KCksICFlbGVtZW50LT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUo
KSkKK3sKKyAgICBtX3NlbGVjdG9yQ2hlY2tlci5zZXRDb2xsZWN0aW5nUnVsZXNPbmx5KHRydWUp
OworCisgICAgaWYgKGVsZW1lbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IGVsZW1lbnQtPnNlbGVj
dCgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ1NTUGFyc2VyIHBhcnNlcih0
cnVlKTsKKyAgICBwYXJzZXIucGFyc2VTZWxlY3RvcihlbGVtZW50LT5zZWxlY3QoKSwgZWxlbWVu
dC0+ZG9jdW1lbnQoKSwgbV9zZWxlY3Rvckxpc3QpOworCisgICAgbV9zZWxlY3RvcnMuaW5pdGlh
bGl6ZShtX3NlbGVjdG9yTGlzdCk7Cit9CisKK2Jvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6Om1h
dGNoZXMoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgaWYgKCFu
b2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBBU1NFUlQobm9kZS0+cGFyZW50Tm9k
ZSgpID09IG1fY29udGVudEVsZW1lbnQtPnNoYWRvd1RyZWVSb290Tm9kZSgpLT5zaGFkb3dIb3N0
KCkpOworCisgICAgaWYgKG1fY29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IG1f
Y29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIG1fc2VsZWN0b3JzLm1hdGNoZXMobV9zZWxlY3RvckNoZWNrZXIsIHRv
RWxlbWVudChub2RlKSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkYWZiOTkzYmFjZjljNzBkYTM4
MGYzMzY3ZWZhNjhkMWI4OTVmMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IENvbnRlbnRTZWxlY3RvclF1ZXJ5X2gKKyNkZWZpbmUgQ29udGVudFNlbGVjdG9yUXVlcnlfaAor
CisjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCisjaW5jbHVkZSAiU2VsZWN0b3JDaGVja2Vy
LmgiCisjaW5jbHVkZSAiU2VsZWN0b3JRdWVyeS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERvY3VtZW50OworY2xhc3MgTm9kZTsKK2NsYXNzIEhUTUxDb250ZW50RWxlbWVudDsKKworY2xh
c3MgQ29udGVudFNlbGVjdG9yUXVlcnkgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRl
bnRTZWxlY3RvclF1ZXJ5KTsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBDb250ZW50U2VsZWN0b3JR
dWVyeShIVE1MQ29udGVudEVsZW1lbnQqKTsKKworICAgIGJvb2wgbWF0Y2hlcyhOb2RlKikgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgSFRNTENvbnRlbnRFbGVtZW50KiBtX2NvbnRlbnRFbGVtZW50
OworICAgIFNlbGVjdG9yRGF0YUxpc3QgbV9zZWxlY3RvcnM7CisgICAgQ1NTU2VsZWN0b3JMaXN0
IG1fc2VsZWN0b3JMaXN0OworICAgIFNlbGVjdG9yQ2hlY2tlciBtX3NlbGVjdG9yQ2hlY2tlcjsK
K307CisKK30KKworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0hUTUxDb250ZW50RWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMxNGZlY2U5YWJjMzkzMmMyZjVj
MTUwNmQyZWRhMDE5OWYyZjk1NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKKworI2luY2x1
ZGUgIkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIgorI2luY2x1ZGUgIkNvbnRlbnRTZWxlY3Rv
clF1ZXJ5LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiUXVhbGlmaWVkTmFt
ZS5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgSFRNTE5hbWVzOjpzZWxlY3RBdHRy
OworCitQYXNzUmVmUHRyPEhUTUxDb250ZW50RWxlbWVudD4gSFRNTENvbnRlbnRFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoUXVh
bGlmaWVkTmFtZSwgdGFnTmFtZSwgKG51bGxBdG9tLCAid2Via2l0U2hhZG93Q29udGVudCIsIEhU
TUxOYW1lczo6ZGl2VGFnLm5hbWVzcGFjZVVSSSgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBIVE1MQ29udGVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKK30KKworSFRNTENvbnRl
bnRFbGVtZW50OjpIVE1MQ29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
RG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQobmFtZSwgZG9jdW1lbnQpCisg
ICAgLCBtX2luY2x1c2lvbnMoYWRvcHRQdHIobmV3IFNoYWRvd0luY2x1c2lvbkxpc3QoKSkpCit7
Cit9CisKK0hUTUxDb250ZW50RWxlbWVudDo6fkhUTUxDb250ZW50RWxlbWVudCgpCit7Cit9CisK
K3ZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjphdHRhY2goKQoreworICAgIEFTU0VSVCghZmlyc3RD
aGlsZCgpKTsgLy8gQ3VycmVudGx5IGRvZXNuJ3Qgc3VwcG9ydCBhbnkgbGlnaHQgY2hpbGQuCisg
ICAgSFRNTEVsZW1lbnQ6OmF0dGFjaCgpOworCisgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0
b1NoYWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpKSB7CisgICAgICAgIENvbnRlbnRJbmNs
dXNpb25TZWxlY3Rvciogc2VsZWN0b3IgPSByb290LT5lbnN1cmVJbmNsdXNpb25zKCk7CisgICAg
ICAgIHNlbGVjdG9yLT51bnNlbGVjdChtX2luY2x1c2lvbnMuZ2V0KCkpOworICAgICAgICBzZWxl
Y3Rvci0+c2VsZWN0KHRoaXMsIG1faW5jbHVzaW9ucy5nZXQoKSk7CisgICAgICAgIGZvciAoU2hh
ZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBtX2luY2x1c2lvbnMtPmZpcnN0KCk7IGluY2x1c2lv
bjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0KCkpCisgICAgICAgICAgICBpbmNsdXNpb24t
PmNvbnRlbnQoKS0+ZGV0YWNoKCk7CisgICAgICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNs
dXNpb24gPSBtX2luY2x1c2lvbnMtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5j
bHVzaW9uLT5uZXh0KCkpCisgICAgICAgICAgICBpbmNsdXNpb24tPmNvbnRlbnQoKS0+YXR0YWNo
KCk7CisgICAgfQorfQorCit2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6ZGV0YWNoKCkKK3sKKyAg
ICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUo
KSkpIHsKKyAgICAgICAgaWYgKENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvciogc2VsZWN0b3IgPSBy
b290LT5pbmNsdXNpb25zKCkpCisgICAgICAgICAgICBzZWxlY3Rvci0+dW5zZWxlY3QobV9pbmNs
dXNpb25zLmdldCgpKTsKKyAgICB9CisKKyAgICBBU1NFUlQobV9pbmNsdXNpb25zLT5pc0VtcHR5
KCkpOworICAgIEhUTUxFbGVtZW50OjpkZXRhY2goKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5n
JiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldEF0
dHJpYnV0ZShzZWxlY3RBdHRyKTsKK30KKwordm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OnNldFNl
bGVjdChjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdFZhbHVlKQoreworICAgIHNldEF0dHJpYnV0
ZShzZWxlY3RBdHRyLCBzZWxlY3RWYWx1ZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM3NzcyYmQ1OGFi
ZTcyZjM5ZDg2NzRlYWE0OGI1ZmYxMDcwNjhhOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCkBAIC0wLDAgKzEsODIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEhUTUxDb250ZW50RWxlbWVudF9oCisjZGVmaW5lIEhUTUxDb250ZW50RWxlbWVudF9o
CisKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ29udGVudFNlbGVjdG9yUXVlcnk7CitjbGFz
cyBTaGFkb3dJbmNsdXNpb25MaXN0OworCisvLyBOT1RFOiBDdXJyZW50IGltcGxlbWVudGF0aW9u
IGRvZXNuJ3Qgc3VwcG9ydCBkeW5hbWljIGluc2VydGlvbi9kZWxldGlvbiBvZiBIVE1MQ29udGVu
dEVsZW1lbnQuCisvLyBZb3Ugc2hvdWxkIGNyZWF0ZSBIVE1MQ29udGVudEVsZW1lbnQgZHVyaW5n
IHRoZSBob3N0IGNvbnN0cnVjdGlvbi4KK2NsYXNzIEhUTUxDb250ZW50RWxlbWVudCA6IHB1Ymxp
YyBIVE1MRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTENvbnRl
bnRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgfkhUTUxDb250ZW50
RWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGV0YWNoKCk7CisKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdCgpIGNvbnN0OworCisg
ICAgLy8gRklYTUU6IEN1cnJlbnRseSB0aGlzIGNvbnN0cnVjdG9yIGFjY2VwdHMgd2lkZXIgcXVl
cnkgdGhhbiBzaGFkb3cgZG9tIHNwZWMuCisgICAgLy8gRm9yIGV4YW1wbGUsIGEgc2VsZWN0b3Ig
cXVlcnkgc2hvdWxkIG5vdCBpbmNsdWRlIGNvbnRleHR1YWwgc2VsZWN0b3JzLgorICAgIC8vIFNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDYKKyAgICAvLyBG
SVhNRTogQ3VycmVudGx5IHdlIGRvbid0IHN1cHBvcnQgc2V0dGluZyBzZWxlY3QgdmFsdWUgZHlu
YW1pY2FsbHkuCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NjI2MQorICAgIHZvaWQgc2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYpOworCisg
ICAgY29uc3QgU2hhZG93SW5jbHVzaW9uTGlzdCogaW5jbHVzaW9ucygpIGNvbnN0IHsgcmV0dXJu
IG1faW5jbHVzaW9ucy5nZXQoKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgSFRNTENvbnRlbnRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCitwcml2YXRlOgorICAgIHZp
cnR1YWwgYm9vbCBpc0NvbnRlbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0
JikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIHsgcmV0dXJuIDA7IH0KKworICAgIE93
blB0cjxTaGFkb3dJbmNsdXNpb25MaXN0PiBtX2luY2x1c2lvbnM7Cit9OworCitpbmxpbmUgSFRN
TENvbnRlbnRFbGVtZW50KiB0b0hUTUxDb250ZW50RWxlbWVudChOb2RlKiBub2RlKQoreworICAg
IEFTU0VSVCghbm9kZSB8fCBub2RlLT5pc0NvbnRlbnRFbGVtZW50KCkpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxIVE1MQ29udGVudEVsZW1lbnQqPihub2RlKTsKK30KKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3ODNjMzgwNTY5M2FlYzYzZDRk
OTg1YmQ3OGMzODRmZDQ0ODRjNGVjLi4yNDg5NjdiMzNhZjlmZTlhOGU2MmJmN2VmZmNhMzExMzRj
NDU2ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1
ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKQEAgLTQ2LDcgKzQ3LDYgQEAKICNpbmNsdWRlICJS
ZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTcGVsbENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0
SXRlcmF0b3IuaCIKQEAgLTEyNiwxNCArMTI2LDE0IEBAIGJvb2wgSW50ZXJuYWxzOjppc1ByZWxv
YWRlZChEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdXJsKQogICAgIHJldHVybiBk
b2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+aXNQcmVsb2FkZWQodXJsKTsKIH0KIAot
UGFzc1JlZlB0cjxFbGVtZW50PiBJbnRlcm5hbHM6OmNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPEVsZW1l
bnQ+IEludGVybmFsczo6Y3JlYXRlQ29udGVudEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWRvY3VtZW50KSB7CiAgICAgICAgIGVjID0g
SU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1
cm4gU2hhZG93Q29udGVudEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgcmV0dXJuIEhU
TUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIH0KIAogRWxlbWVudCogSW50ZXJu
YWxzOjpnZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChOb2RlKiBzaGFkb3dSb290LCBjb25zdCBT
dHJpbmcmIGlkLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IGVkNDczNzA1NWI5OTM4M2RhOWIyODAyMWFmM2Y2OTU5YzYxZDM1ZjcuLjg5OWQ3ZGJi
MTYxZjMxMmY1NjU0ZWUyY2RhNzRjOWQ3ZDQxODkwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVTaGFkb3dS
b290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBFbGVtZW50KiBpbmNsdWRl
ckZvcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFN0cmluZyBzaGFkb3dQc2V1ZG9JZChF
bGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRl
U2hhZG93Q29udGVudEVsZW1lbnQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFz
c1JlZlB0cjxFbGVtZW50PiBjcmVhdGVDb250ZW50RWxlbWVudChEb2N1bWVudCosIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBFbGVtZW50KiBnZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChOb2RlKiBz
aGFkb3dSb290LCBjb25zdCBTdHJpbmcmIGlkLCBFeGNlcHRpb25Db2RlJik7CiAKICNpZiBFTkFC
TEUoSU5QVVRfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZjU2
ZDFhZjc0YThlMzVkZDQ3YmQ0ZTZjNDlmMTI1ZTdlYWFjM2E1NS4uOGYxNmIzMmM4NTZhYzJmMWY2
Zjg1ODZjOTQxYmI1M2Q3Yjc2MjRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bApAQCAtMzUsNyArMzUsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgRWxlbWVudCBpbmNs
dWRlckZvcihpbiBOb2RlIG5vZGUpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9p
ZCByZW1vdmVTaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24p
OwogICAgICAgICBET01TdHJpbmcgc2hhZG93UHNldWRvSWQoaW4gRWxlbWVudCBlbGVtZW50KSBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIEVsZW1lbnQgY3JlYXRlU2hhZG93Q29udGVu
dEVsZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAg
ICAgICBFbGVtZW50IGNyZWF0ZUNvbnRlbnRFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50KSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZEluU2hh
ZG93Um9vdChpbiBOb2RlIHNoYWRvd1Jvb3QsIGluIERPTVN0cmluZyBpZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9JTlBVVF9DT0xPUikgJiYgRU5BQkxFX0lO
UFVUX0NPTE9SCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggMWFhODQ4MTY3YmVkYzg1NjQ4ZWM0
ZjRhN2U3ZmJhMWI0MjI4MmNmYi4uNWNmYTc0NGQ5NjU0MTdlZDg2OWMxMmU2Y2M2MzFiNTNjZWEy
M2E1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTQ5LDggKzE0OSw4IEBAIEVYUE9SVFMK
ICAgICAgICAgP2FkZEBBdG9taWNTdHJpbmdAV1RGQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5n
SW1wbEBXVEZAQEAyQFBCRUBaCiAgICAgICAgID9hZGRTbG93Q2FzZUBBdG9taWNTdHJpbmdAV1RG
QEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEAyQFBBVlN0cmluZ0ltcGxAMkBA
WgogICAgICAgICA/Y2FjaGVET01TdHJ1Y3R1cmVAV2ViQ29yZUBAWUFQQVZTdHJ1Y3R1cmVASlND
QEBQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVjIzQFBCVUNsYXNzSW5mb0AzQEBaCisgICAgICAg
ID9jcmVhdGVASFRNTENvbnRlbnRFbGVtZW50QFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZI
VE1MQ29udGVudEVsZW1lbnRAV2ViQ29yZUBAQFdURkBAUEFWRG9jdW1lbnRAMkBAWgogICAgICAg
ICA/Y3JlYXRlQFJhbmdlQFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3Jl
QEBAV1RGQEBWPyRQYXNzUmVmUHRyQFZEb2N1bWVudEBXZWJDb3JlQEBANEBWPyRQYXNzUmVmUHRy
QFZOb2RlQFdlYkNvcmVAQEA0QEgxSEBaCi0gICAgICAgID9jcmVhdGVAU2hhZG93Q29udGVudEVs
ZW1lbnRAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlNoYWRvd0NvbnRlbnRFbGVtZW50QFdl
YkNvcmVAQEBXVEZAQFBBVkRvY3VtZW50QDJAQFoKICAgICAgICAgP2NyZWF0ZVdyYXBwZXJAV2Vi
Q29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmpl
Y3RAMUBQQVZOb2RlQDFAQFoKICAgICAgICAgP2Vuc3VyZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJD
b3JlQEBRQUVQQVZTaGFkb3dSb290QDJAWFoKICAgICAgICAgP2VxdWFsQFdURkBAWUFfTlBCVlN0
cmluZ0ltcGxAMUBQQkVAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJD
RkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDZi
NjQ0OGRiMTYxYWViNjcxODkwNmQ2MmY3NzBiOWE3ZTRhOGVjMGQuLjQxNmQ3MzJjNzEwNDI2ZGM3
OTY4NDU5MzJkY2RlZWI0OGNkOThmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5k
ZWYKQEAgLTE0Miw4ICsxNDIsOCBAQCBFWFBPUlRTCiAgICAgICAgID9hZGRAQXRvbWljU3RyaW5n
QFdURkBAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAMkBQQkVAWgogICAgICAg
ICA/YWRkU2xvd0Nhc2VAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmlu
Z0ltcGxAV1RGQEBAMkBQQVZTdHJpbmdJbXBsQDJAQFoKICAgICAgICAgP2NhY2hlRE9NU3RydWN0
dXJlQFdlYkNvcmVAQFlBUEFWU3RydWN0dXJlQEpTQ0BAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQ
QVYyM0BQQlVDbGFzc0luZm9AM0BAWgorICAgICAgICA/Y3JlYXRlQEhUTUxDb250ZW50RWxlbWVu
dEBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWSFRNTENvbnRlbnRFbGVtZW50QFdlYkNvcmVA
QEBXVEZAQFBBVkRvY3VtZW50QDJAQFoKICAgICAgICAgP2NyZWF0ZUBSYW5nZUBXZWJDb3JlQEBT
QT9BVj8kUGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29yZUBAQFdURkBAVj8kUGFzc1JlZlB0ckBWRG9j
dW1lbnRAV2ViQ29yZUBAQDRAVj8kUGFzc1JlZlB0ckBWTm9kZUBXZWJDb3JlQEBANEBIMUhAWgot
ICAgICAgICA/Y3JlYXRlQFNoYWRvd0NvbnRlbnRFbGVtZW50QFdlYkNvcmVAQFNBP0FWPyRQYXNz
UmVmUHRyQFZTaGFkb3dDb250ZW50RWxlbWVudEBXZWJDb3JlQEBAV1RGQEBQQVZEb2N1bWVudEAy
QEBaCiAgICAgICAgID9jcmVhdGVXcmFwcGVyQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBB
VkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9kZUAxQEBaCiAgICAgICAg
ID9lbnN1cmVTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFUEFWU2hhZG93Um9vdEAyQFha
CiAgICAgICAgID9lcXVhbEBXVEZAQFlBX05QQlZTdHJpbmdJbXBsQDFAUEJFQFoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5
bWJvbHMuZmlsdGVyCmluZGV4IDE1YjY5NTdhOWUyNDIzMTkwYmFjMWRkMjFjZmIxNjczZmQ3MzE4
ZGEuLmUyMTMxMGRlZTY4ZjNjZTk1MzI0MmYyZDRhODM0YzcyODM0N2E4MDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9z
eW1ib2xzLmZpbHRlcgpAQCAtNTAsMTAgKzUwLDEwIEBAIF9aTjdXZWJDb3JlMTVzZXRET01FeGNl
cHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVpOwogX1pON1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQx
N3NldFN1Z2dlc3RlZFZhbHVlRVJLTjNXVEY2U3RyaW5nRTsKIF9aTjdXZWJDb3JlMTZqc1N0cmlu
Z1Nsb3dDYXNlRVBOM0pTQzlFeGVjU3RhdGVFUk4zV1RGN0hhc2hNYXBJUE5TM18xMFN0cmluZ0lt
cGxFTlMwXzRXZWFrSU5TMF84SlNTdHJpbmdFRUVOUzNfMTBTdHJpbmdIYXNoRU5TM18xMEhhc2hU
cmFpdHNJUzZfRUVOU0JfSVM5X0VFRUVTNl87CiBfWk43V2ViQ29yZTE3Y2FjaGVET01TdHJ1Y3R1
cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE4zSlNDOVN0cnVjdHVyZUVQS05TMl85Q2xhc3NJ
bmZvRTsKK19aTjdXZWJDb3JlMThIVE1MQ29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1l
bnRFOwogX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIzOXNldFJlc291cmNlc0RhdGFT
aXplTGltaXRzRnJvbUludGVybmFsc0VpaTsKIF9aTjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29u
dGV4dEMxRVBOU180Tm9kZUU7CiBfWk43V2ViQ29yZTIwTm9kZVJlbmRlcmluZ0NvbnRleHREMUV2
OwotX1pON1dlYkNvcmUyMFNoYWRvd0NvbnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50
RTsKIF9aTjdXZWJDb3JlMjFnZXRDYWNoZWRET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxP
YmplY3RFUEtOM0pTQzlDbGFzc0luZm9FOwogX1pON1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50
YXRpb25FUE5TXzdFbGVtZW50RWo7CiBfWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBl
c0U7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZWMyM2YzODIzNjZjMDA3MWFjYTUxYWNhOWU4MjIyNTI2MGYzYThlMi4uODJm
ZDE0NTI1YTU5M2EyNjExODM1M2QyNGU3OTQ1Y2RlYzUyNTg5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDEyLTAxLTE2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisK
KyAgICAgICAgTW92ZSBTaGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9z
aGFkb3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVyLmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
c2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Rv
bS9zaGFkb3cvY3JlYXRlLWNvbnRlbnQtZWxlbWVudC5odG1sOgorICAgICAgICAqIGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWw6CisKIDIwMTItMDEtMTYgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgc2hvdWxkIGJlIGFibGUg
dG8gZG8gSlMgYW5kIGN1c3RvbSBnZXR0ZXIgY2FjaGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbmNsdWRlci5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbmNsdWRlci5odG1sCmluZGV4
IGYxOWJkMTc2ODk5ODgxZTJiZGI5Y2ZkYTE0ZDc4MDAzMzcyNWZmMTMuLmZiNmE1YjEzMWRkYTY2
MmVmNTBkMjdjMjJiNTk3NDM1NThjOGNhNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW5jbHVkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVyLmh0bWwKQEAgLTMzLDcg
KzMzLDcgQEAgc2hvdWxkQmUoImludGVybmFscy5pbmNsdWRlckZvcihjaGlsZE9mRWxlbWVudFdp
dGhTaGFkb3cpIiwgIm51bGwiKTsKIHZhciBlbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIGNvbnRhaW5lci5hcHBlbmRDaGlsZChlbGVtZW50
V2l0aFNoYWRvd0NvbnRlbnQpOwogdmFyIHNoYWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93Q29u
dGVudCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KGVsZW1lbnRXaXRoU2hhZG93Q29udGVu
dCk7Ci12YXIgc2hhZG93Q29udGVudE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJu
YWxzLmNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKK3ZhciBzaGFkb3dDb250
ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVs
ZW1lbnQoZG9jdW1lbnQpOwogc2hhZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50LmFw
cGVuZENoaWxkKHNoYWRvd0NvbnRlbnRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7CiB2YXIg
Y2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNwYW4iKTsKIGVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5hcHBlbmRDaGlsZChjaGlsZE9mRWxl
bWVudFdpdGhTaGFkb3dDb250ZW50KTsKQEAgLTU4LDcgKzU4LDcgQEAgZWxlbWVudFdpdGhTaGFk
b3cucmVtb3ZlQ2hpbGQobW92aW5nQ2hpbGQpOwogdmFyIGFub3RoZXJFbGVtZW50V2l0aFNoYWRv
d0NvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIGNvbnRhaW5lci5hcHBl
bmRDaGlsZChhbm90aGVyRWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKIHZhciBhbm90aGVyU2hh
ZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRv
d1Jvb3QoYW5vdGhlckVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7Ci12YXIgYW5vdGhlclNoYWRv
d0NvbnRlbnRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGludGVybmFscy5jcmVhdGVTaGFk
b3dDb250ZW50RWxlbWVudChkb2N1bWVudCk7Cit2YXIgYW5vdGhlclNoYWRvd0NvbnRlbnRPZkVs
ZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChk
b2N1bWVudCk7CiBhbm90aGVyU2hhZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50LmFw
cGVuZENoaWxkKGFub3RoZXJTaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQp
OwogCiBhbm90aGVyRWxlbWVudFdpdGhTaGFkb3dDb250ZW50LmFwcGVuZENoaWxkKG1vdmluZ0No
aWxkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVs
ZW1lbnQtcmVuZGVyZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVu
dC1lbGVtZW50LXJlbmRlcmVycy5odG1sCmluZGV4IDkxNTE5YjhiYzllZDk4ZTUzNGJmMzdlMTQ1
ZGExMzE1NGI1YmM4YjguLjk3N2I4OWNjMDE5NGQxZTVkMzIyYjdiYWJjOWYxNTU2NTQ5Mjk4MzAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQt
cmVuZGVyZXJzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQt
ZWxlbWVudC1yZW5kZXJlcnMuaHRtbApAQCAtNjIsNyArNjIsNyBAQCBmdW5jdGlvbiBjcmVhdGVU
cmVlRnJvbShodG1sKQogICAgIHZhciBjb250ZW50UGxhY2Vob2xkZXIgPSByb290LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJDT05URU5UIilbMF07CiAgICAgaWYgKGNvbnRlbnRQbGFjZWhvbGRlcikg
ewogICAgICAgICB2YXIgY29udGVudFBhcmVudCA9IGNvbnRlbnRQbGFjZWhvbGRlci5wYXJlbnRO
b2RlOwotICAgICAgICBjb250ZW50UGFyZW50LnJlcGxhY2VDaGlsZCh3aW5kb3cuaW50ZXJuYWxz
LmNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGRvY3VtZW50KSwgY29udGVudFBsYWNlaG9sZGVy
KTsKKyAgICAgICAgY29udGVudFBhcmVudC5yZXBsYWNlQ2hpbGQod2luZG93LmludGVybmFscy5j
cmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCksIGNvbnRlbnRQbGFjZWhvbGRlcik7CiAgICAg
fTsKIAogICAgIHJldHVybiByb290OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NyZWF0ZS1jb250ZW50LWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jcmVhdGUtY29udGVudC1lbGVtZW50Lmh0bWwKaW5kZXggYmRiNjAwMTZmMGRhMjQw
NGY1ZGExYzg3OGNmMTg5ZDg5MTJiNzhjZC4uODMyMTIzMWJjMzUxOWJjMjRlNThmYWFiMjAzMWIx
ZmZkNjBhMjMxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NyZWF0
ZS1jb250ZW50LWVsZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y3JlYXRlLWNvbnRlbnQtZWxlbWVudC5odG1sCkBAIC0yOSw3ICsyOSw3IEBAIGZ1bmN0aW9uIHNl
dHVwVGFyZ2V0VHJlZSgpCiAgICAgdmFyIGNoaWxkMCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNwYW4iKTsKICAgICBjaGlsZDAuaW5uZXJIVE1MID0gIkhlbGxvLCI7CiAgICAgcm9vdC5hcHBl
bmRDaGlsZChjaGlsZDApOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQod2luZG93LmludGVybmFscy5j
cmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChkb2N1bWVudCkpOworICAgIHJvb3QuYXBwZW5kQ2hp
bGQod2luZG93LmludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogICAg
IHZhciBjaGlsZDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgY2hpbGQx
LmlubmVySFRNTCA9ICJXb3JsZC4iOwogICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQxKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2Vs
ZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNl
bGVjdC5odG1sCmluZGV4IDNkODFkNDU2Y2FlNDU4ZmU1OGQ5ZWI5MjE1MzUwOTljZWMxNDU0YTIu
LjJlZmI5MzY1MmQwNzhjNjdkNThlMzY5MmQwYWZmOGU5ZGEyOWNiYmIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxlY3QuaHRt
bApAQCAtMTUsNyArMTUsNyBAQCBmdW5jdGlvbiBhcHBlbmRTaGFkb3codGFyZ2V0LCBzZWxlY3Qp
IHsKICAgICBjaGlsZDAuaW5uZXJIVE1MID0gIkhlbGxvLCI7CiAgICAgcm9vdC5hcHBlbmRDaGls
ZChjaGlsZDApOwogCi0gICAgdmFyIGNvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlU2hhZG93Q29u
dGVudEVsZW1lbnQoZG9jdW1lbnQpOworICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0
ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2Vs
ZWN0Jywgc2VsZWN0KTsKICAgICByb290LmFwcGVuZENoaWxkKGNvbnRlbnQpOwogCmRpZmYgLS1n
aXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNzZjOTU1YmVkYzlkNTNhOTlmZWVjODgy
MTZhMmQ1NWUxYjk5MjMzOS4uNjhkN2ZjZGM1MjM5YmEzMzBhYTdlNGUzNmYyN2JiNGQ3NjczNWMy
NiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDEyLTAxLTE2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgTW92ZSBTaGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rv
b2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEyLTAxLTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVcGRhdGUgTkVXUyBhbmQgY29u
ZmlndXJlLmFjIGZvciAxLjcuNCByZWxlYXNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122729</attachid>
            <date>2012-01-17 00:45:12 -0800</date>
            <delta_ts>2012-01-17 01:36:54 -0800</delta_ts>
            <desc>Build Test</desc>
            <filename>bug-76241-20120117174510.patch</filename>
            <type>text/plain</type>
            <size>117931</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU1MmYzYzQ5YzE1MWI5
M2Q3ODRiNzgwNGVhZTJiMjg5ZDgwZmRiZS4uMTYxNDdiNTc0ZGI4ZTM5ZTEyYzI0YzFjYjQ4MWZi
YjRiZmJjMjA0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEyLTAxLTE2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dD
b250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuZXh0UmVuZGVyZXJPZik6Cisg
ICAgICAgIChXZWJDb3JlOjpwcmV2aW91c1JlbmRlcmVyT2YpOgorICAgICAgICAoV2ViQ29yZTo6
Zmlyc3RSZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RSZW5kZXJlck9mKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIpOgor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OmluY2x1ZGVyKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9v
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbmNsdWRlckZvcik6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbmNsdXNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3Q6OmVuc3VyZUluY2x1c2lvbnMpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290
Lmg6CisgICAgICAgICogaHRtbC9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0luY2x1c2lvbjo6dW5saW5rKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvbkxpc3Q6OlNoYWRvd0luY2x1c2lvbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uTGlzdDo6flNoYWRvd0luY2x1c2lvbkxpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6ZmluZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJ
bmNsdXNpb25MaXN0OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25M
aXN0OjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9y
OjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudElu
Y2x1c2lvblNlbGVjdG9yOjp+Q29udGVudEluY2x1c2lvblNlbGVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6dW5zZWxlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9yOjpmaW5kRm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6ZGlkU2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6d2lsbFNlbGVjdE92ZXIpOgorICAgICAgICAqIGh0
bWwvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0luY2x1c2lvbjo6aW5jbHVkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9u
Ojpjb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6bmV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb246OnByZXZpb3VzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6U2hhZG93SW5jbHVzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0luY2x1c2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvbkxpc3Q6OmZpcnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbkxp
c3Q6Omxhc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6aXNFbXB0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OmFkZCk6CisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFkb3dJbmNsdXNpb25TZXQ6OmlzRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
SW5jbHVzaW9uU2V0OjpUcmFuc2xhdG9yOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d0luY2x1c2lvblNldDo6VHJhbnNsYXRvcjo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uU2V0OjpIYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0lu
Y2x1c2lvblNldDo6SGFzaDo6ZXF1YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVz
aW9uU2V0OjpmaW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rv
cjo6aGFzQ2FuZGlkYXRlcyk6CisgICAgICAgICogaHRtbC9Db250ZW50U2VsZWN0b3JRdWVyeS5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9y
UXVlcnkuY3BwLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRl
bnRTZWxlY3RvclF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5
OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1sL0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaC4K
KyAgICAgICAgKiBodG1sL0hUTUxDb250ZW50RWxlbWVudC5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnRlbnRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENv
bnRlbnRFbGVtZW50OjpIVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENvbnRlbnRFbGVtZW50Ojp+SFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250
ZW50RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVu
dDo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6c2V0U2Vs
ZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxDb250ZW50RWxlbWVudC5oOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmguCisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmluY2x1c2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnRlbnRFbGVtZW50Ojppc0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ29udGVudEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OnRvSFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzQ29udGVudEVsZW1lbnQ6OkRldGFpbHND
b250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6
OkRldGFpbHNTdW1tYXJ5RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VtbWFyeUNvbnRlbnRFbGVtZW50OjpTdW1tYXJ5
Q29udGVudEVsZW1lbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6Y3JlYXRlQ29udGVudEVsZW1lbnQpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CiAyMDEyLTAxLTE2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTjogcjEwMjU1MyBBdXRvY29ycmVjdGlvbiBidWJibGUgZG9lc24ndCBzaG93
IHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNzQzYjkzYTgxNWE2NWY2NTc3YmFiMjZlZWIzMThkZDMzODE5OWJi
MC4uMDg2MDgzMGNlYjBiMzM4ODk2ODY1ZTA3NmQxNDI1OWViMjk5NmUwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTE2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdv
b2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8g
dG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAy
MDEyLTAxLTE2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEwNzAyNzU4PiBSRUdSRVNTSU9OOiBFdmVyeSBTYWZhcmkgUmVhZGVyIFdL
VmlldyBsZWFrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkNjE2NWNmMWMzY2EyNmNjMzFiMTNj
MTM5NDNhODBiYzE5OTk0YzNiLi45YjFiMjFjMjE3NGM0ZGI0NGViYWVhMDBmOWE1YWVkYjBmMDBh
OThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTkzLDkgKzU5Myw2IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBkb20vU2NyaXB0UnVubmVyLmNwcAogICAgIGRvbS9TZWN1cml0eUNvbnRl
eHQuY3BwCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwCi0gICAgZG9tL1NoYWRvd0NvbnRlbnRF
bGVtZW50LmNwcAotICAgIGRvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAKLSAgICBk
b20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgZG9tL1NoYWRvd1Jvb3QuY3BwCiAg
ICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCiAgICAgZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlz
dC5jcHAKQEAgLTg2MSw3ICs4NTgsMTAgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwv
cGFyc2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmNwcAogICAgIGh0bWwvcGFyc2VyL1hTU0F1ZGl0
b3IuY3BwCiAKKyAgICBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAKKyAgICBo
dG1sL3NoYWRvdy9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgaHRtbC9zaGFkb3cv
RGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCisgICAgaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVt
ZW50LmNwcAogICAgIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCiAgICAgaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwCiAgICAgaHRtbC9zaGFkb3cvTWV0ZXJTaGFk
b3dFbGVtZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggY2U2N2Y1MWRj
NDkwNjBiOTJjYzQ0NGY3MjY4MTZjYzQzMDE2YTMxZC4uNjViZDE3YzA3Yzk0ZmE0YzQ5OTVkOWIy
NGExODI1MjFiMjliMjk5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNjQz
LDEyICsxNjQzLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
U2VjdXJpdHlDb250ZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaCBcCi0JU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd0NvbnRlbnRFbGVtZW50LmggXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50
U2VsZWN0b3JRdWVyeS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2Vs
ZWN0b3JRdWVyeS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0
b3IuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5j
cHAgXApAQCAtMjIyNyw4ICsyMjIxLDE0IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dFZpZXdTb3VyY2VQYXJzZXIuaCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL1hTU0F1ZGl0b3IuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVu
dEluY2x1c2lvblNlbGVjdG9yLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29u
dGVudEluY2x1c2lvblNlbGVjdG9yLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Nv
bnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29u
dGVudFNlbGVjdG9yUXVlcnkuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWls
c01hcmtlckNvbnRyb2wuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxz
TWFya2VyQ29udHJvbC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVs
ZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CmluZGV4IGFhNjAyN2ZiYmJjYWMyOWU3OTNmMjAxZWRjMjQ3OTQwZWY3NjRhZmIuLjdlZDg5YTNj
NGFjMTU4NTVkMmE2MjgwNjgyMWEwM2UxNzdmZjI5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTU5LDkg
KzU1OSw2IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKICAgICBk
b20vU2VjdXJpdHlDb250ZXh0LmNwcCBcCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwIFwKLSAg
ICBkb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwIFwKLSAgICBkb20vU2hhZG93Q29udGVudFNl
bGVjdG9yUXVlcnkuY3BwIFwKLSAgICBkb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwK
ICAgICBkb20vU2hhZG93Um9vdC5jcHAgXAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBc
CiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmNwcCBcCkBAIC04NDEsNyArODM4LDEwIEBAIFNPVVJD
RVMgKz0gXAogICAgIGh0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAgXAogICAgIGh0
bWwvcGFyc2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIvWFNT
QXVkaXRvci5jcHAgXAorICAgIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBc
CisgICAgaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCBcCiAgICAgaHRt
bC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIFwKKyAgICBodG1sL3NoYWRvdy9IVE1M
Q29udGVudEVsZW1lbnQuY3BwIFwKICAgICBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcCBc
CiAgICAgaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwIFwKICAgICBodG1s
L3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwIFwKQEAgLTE2NjAsOSArMTY2MCw2IEBAIEhF
QURFUlMgKz0gXAogICAgIGRvbS9TY3JpcHRFbGVtZW50LmggXAogICAgIGRvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmggXAogICAgIGRvbS9TZWxlY3RvclF1ZXJ5LmggXAotICAgIGRvbS9TaGFk
b3dDb250ZW50RWxlbWVudC5oIFwKLSAgICBkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnku
aCBcCi0gICAgZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmggXAogICAgIGRvbS9TaGFkb3dS
b290LmggXAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmggXAogICAgIGRvbS9TdGF0aWNOb2Rl
TGlzdC5oIFwKQEAgLTE5MDEsNiArMTg5OCw5IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5oIFwKICAgICBodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBh
cnNlci5oIFwKICAgICBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmggXAorICAgIGh0bWwvc2hhZG93
L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggXAorICAgIGh0bWwvc2hhZG93L0NvbnRlbnRJbmNsdXNp
b25TZWxlY3Rvci5oIFwKKyAgICBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBcCiAg
ICAgaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaCBcCiAgICAgaHRtbC9zaGFkb3cv
RGV0YWlsc01hcmtlckNvbnRyb2wuaCBcCiAgICAgaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0Lmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAzYTViMjliYWQxZjRlZmVhM2JkYjlhNDMxOTY0ZDgy
MzE2ODE5ZTFlLi40MmU4Yzc1MDU1OTlmYTMzZDk4N2FiMzEzMDBmZGUwYjRkYzAxZDczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtNTQ2LDYgKzU0Niw3IEBAIF9fWk43V2ViQ29yZTE3UmVndWxh
ckV4cHJlc3Npb25DMUVSS04zV1RGNlN0cmluZ0VOUzFfMTlUZXh0Q2FzZVNlbnNpdGl2aXR5RQog
X19aTjdXZWJDb3JlMTdSZWd1bGFyRXhwcmVzc2lvbkQxRXYKIF9fWk43V2ViQ29yZTE3Y2FjaGVE
T01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE4zSlNDOVN0cnVjdHVyZUVQS05T
Ml85Q2xhc3NJbmZvRQogX19aTjdXZWJDb3JlMTdvcGVuVGVtcG9yYXJ5RmlsZUVSS04zV1RGNlN0
cmluZ0VSaQorX19aTjdXZWJDb3JlMThIVE1MQ29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9j
dW1lbnRFCiBfX1pON1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llczI2Y3JlYXRlTG9jYWxpemF0
aW9uU3RyYXRlZ3lFdgogX19aTjdXZWJDb3JlMThTZWFyY2hQb3B1cE1lbnVNYWNDMUVQTlNfMTVQ
b3B1cE1lbnVDbGllbnRFCiBfX1pON1dlYkNvcmUxOGlzU3RhcnRPZlBhcmFncmFwaEVSS05TXzE1
VmlzaWJsZVBvc2l0aW9uRU5TXzI3RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlRQpAQCAtNjAz
LDcgKzYwNCw2IEBAIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dl
c3RlZEZpbGVuYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTI0c2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoRXgKIF9fWk43V2ViQ29yZTIwUmVzb3Vy
Y2VSZXNwb25zZUJhc2U2c2V0VVJMRVJLTlNfNEtVUkxFCiBfX1pON1dlYkNvcmUyMFJlc291cmNl
UmVzcG9uc2VCYXNlQzJFdgotX19aTjdXZWJDb3JlMjBTaGFkb3dDb250ZW50RWxlbWVudDZjcmVh
dGVFUE5TXzhEb2N1bWVudEUKIF9fWk43V2ViQ29yZTIwVXNlckdlc3R1cmVJbmRpY2F0b3I3c19z
dGF0ZUUKIF9fWk43V2ViQ29yZTIwVXNlckdlc3R1cmVJbmRpY2F0b3JDMUVOU18yNlByb2Nlc3Np
bmdVc2VyR2VzdHVyZVN0YXRlRQogX19aTjdXZWJDb3JlMjBVc2VyR2VzdHVyZUluZGljYXRvckQx
RXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkOGE1MjNmYTU3YTQ0NzE0M2E2YzllZWEyNTE1NDhhMjRh
ZTUxOGIyLi43ZDQxMTI3NGZhNGU0ZjZmOGIwNjY4ZTgwMGVmODRhZDAwMzBlOGIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC0xMDQ2LDggKzEwNDYsNiBAQAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIuaCcsCiAg
ICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0Nv
bnRlbnRFbGVtZW50LmgnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JR
dWVyeS5oJywKICAgICAgICAgICAgICdkb20vU3BhY2VTcGxpdFN0cmluZy5oJywKICAgICAgICAg
ICAgICdkb20vU3R5bGVkRWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20vVGV4dC5oJywKQEAg
LTEwNjAsNiArMTA1OCw3IEBACiAgICAgICAgIF0sCiAgICAgICAgICd3ZWJjb3JlX2h0bWxfcHJp
dmF0ZWhlYWRlcl9maWxlcyc6IFsKICAgICAgICAgICAgICdodG1sL0NvbGxlY3Rpb25UeXBlLmgn
LAorICAgICAgICAgICAgJ2h0bWwvQ29udGVudFNlbGVjdG9yUXVlcnkuaCcsCiAgICAgICAgICAg
ICAnaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1M
QXBwbGV0RWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxDb2xsZWN0aW9uLmgnLApA
QCAtNTQ2MywxMiArNTQ2Miw2IEBACiAgICAgICAgICAgICAnZG9tL1NlY3VyaXR5Q29udGV4dC5o
JywKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JRdWVyeS5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9TZWxlY3RvclF1ZXJ5LmgnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dDb250ZW50RWxlbWVu
dC5jcHAnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oJywKLSAgICAg
ICAgICAgICdkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwJywKLSAgICAgICAgICAg
ICdkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCcsCi0gICAgICAgICAgICAnZG9tL1No
YWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0luY2x1
c2lvblNlbGVjdG9yLmgnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmNwcCcsCiAgICAg
ICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcsCiAgICAgICAgICAgICAnZG9tL1NwYWNlU3BsaXRT
dHJpbmcuY3BwJywKQEAgLTU5MDMsOCArNTg5NiwxNCBAQAogICAgICAgICAgICAgJ2h0bWwvcGFy
c2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmgnLAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1hT
U0F1ZGl0b3IuY3BwJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9YU1NBdWRpdG9yLmgnLAor
ICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCcsCisgICAg
ICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaCcsCisgICAgICAgICAg
ICAnaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCcsCisgICAgICAgICAg
ICAnaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmgnLAogICAgICAgICAgICAg
J2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcCcsCiAgICAgICAgICAgICAnaHRt
bC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaCcsCisgICAgICAgICAgICAnaHRtbC9zaGFk
b3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bHMuY3BwJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmgnLAogICAg
ICAgICAgICAgJ2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGU3N2MxZmYxMmI0
NDM0ZmRiOWM4ZTM4ZjZiMDgxZmZmYTg4ODIzMWQuLmI3MDQ3M2FmN2U4MDliOTg0ZTg2ZTg4Mzk1
OWRjYTU2MjkxYjg5MGYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC01MDk5OCwyMzAgKzUwOTk4LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJ
CQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0NvbnRlbnRFbGVtZW50LmNw
cCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8
V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29s
Ci0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fp
cm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJE
ZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0J
CQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlBy
b2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0J
CQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXFNoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25m
aWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25m
aWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8
L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0NvbnRlbnRF
bGVtZW50LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVudC5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxG
aWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnku
Y3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0J
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRv
b2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9D
YWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9
IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4K
LQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0i
UHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4K
LQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQ
YXRoPSIuLlxkb21cU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCIKLQkJCQk+Ci0JCQk8L0Zp
bGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0luY2x1c2lvblNl
bGVjdG9yLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNl
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0J
CQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJl
bGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgot
CQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkv
PgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJ
CU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgot
CQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkv
PgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgiCi0JCQkJPgotCQkJ
PC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTcGFjZVNwbGl0U3Ry
aW5nLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC02MTA5Nyw2ICs2MDg3
MywyMiBAQAogCQkJCU5hbWU9InNoYWRvdyIKIAkJCQk+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxodG1sXHNoYWRvd1xDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAiCisJCQkJCT4K
KwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHNoYWRv
d1xDb250ZW50U2VsZWN0b3JRdWVyeS5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxzaGFkb3dcQ29udGVudEluY2x1c2lvblNlbGVj
dG9yLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGh0bWxcc2hhZG93XENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxzaGFkb3dc
RGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtNjExMDUs
NiArNjA4OTcsNjIgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGh0bWxcc2hhZG93XEhUTUxDb250ZW50RWxlbWVudC5jcHAiCisJCQkJCT4K
KwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgor
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJv
X0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgor
CQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHNoYWRv
d1xIVE1MQ29udGVudEVsZW1lbnQuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcc2hhZG93XE1lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2OWQ2MTZhYjEwMTFiMzM2YTQ4ZWYxODEzMmRi
MzYxZmU3ZWI2NGQ1Li43NzljYjdkNDEyYmU3MTE3MzBhNzg5NDZmZWRhMGNjNmRjODdhNjQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNTY4LDggKzE1NjgsMTIgQEAKIAkJNTNDODI5OEUxM0Q4RDkyNzAwREUyREVCIC8qIFJl
bmRlckZsZXhpYmxlQm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1M0M4Mjk4QzEzRDhEOTI3MDBERTJERUIgLyogUmVuZGVyRmxleGlibGVCb3guaCAq
LzsgfTsKIAkJNTUwQTBCQzkwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzcwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovOyB9OwogCQk1NTBBMEJDQTA4NUY2
MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmll
ZE5hbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk1NzBEQkE4MTE0QjU4MDQ5MDBEQUVGQTAgLyogU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREI3
QTgxNEI1Njk2QTAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCAqLzsg
fTsKLQkJNTcwREJBODIxNEI1ODA0QjAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1
ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBE
QjdBOTE0QjU2OTZBMDBEQUVGQTAgLyogU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCAqLzsg
fTsKKwkJNTcwREJENjYxNEM1NjhBMzAwREFFRkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBE
QkQ2MjE0QzU2OEEzMDBEQUVGQTAgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCAqLzsg
fTsKKwkJNTcwREJENjcxNEM1NjhBMzAwREFFRkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREJE
NjMxNEM1NjhBMzAwREFFRkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oICovOyB9Owor
CQk1NzBEQkQ2ODE0QzU2OEEzMDBEQUVGQTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREJENjQxNEM1
NjhBMzAwREFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCAqLzsgfTsKKwkJNTcwREJE
NjkxNEM1NjhBMzAwREFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQkQ2NTE0QzU2OEEzMDBEQUVG
QTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnkuaCAqLzsgfTsKKwkJNTcwREJENkMxNEM1NjhBRDAw
REFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQkQ2QTE0QzU2OEFEMDBEQUVGQTAgLyogSFRNTENv
bnRlbnRFbGVtZW50LmNwcCAqLzsgfTsKKwkJNTcwREJENkQxNEM1NjhBRDAwREFFRkEwIC8qIEhU
TUxDb250ZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTcwREJENkIxNEM1NjhBRDAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5o
ICovOyB9OwogCQk1OTA1QURCRjEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTA1QURCRDEz
MDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5jcHAgKi87IH07CiAJCTU5MDVBREMwMTMw
MkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJl
ZVZpZXdlci5oICovOyB9OwogCQk1OTBFMUI0OTExRTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3Jp
ZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmllbnRhdGlvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNTA0LDEzICszNTA4
LDEwIEBACiAJCUE3MTVFNjUzMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVF
NjUxMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCAqLzsgfTsKIAkJ
QTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0Ug
LyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4
RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07Ci0JCUE3MUMz
MEI4MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzFDMzBCNjEzODEyNjVF
MDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovOyB9OwotCQlBNzFDMzBC
OTEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MUMzMEI3MTM4MTI2NUUwMERC
QzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oICovOyB9OwogCQlBNzIzRjc3QjE0ODRD
QTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQ
bGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUE3M0Y5NUZFMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVG
QzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovOyB9OwogCQlBNzNGOTVGRjEy
Qzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVk
UmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3NEJCNzZCMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NEJCNzZBMTNC
REE4NjMwMEZGN0JGMCAvKiBFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBNzRDMkQzQzEzODExRTBEMDBG
ODM1NzIgLyogU2hhZG93Q29udGVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NEMyRDNCMTM4MTFFMEQwMEY4MzU3MiAvKiBTaGFkb3dD
b250ZW50RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0
OTc0MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNC
MDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICovOyB9OwogCQlBNzVFOEI4ODBFMURFMkQ2MDA3RjI0
ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzVFOEI4MDBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgKi87IH07CkBA
IC0zNTIxLDcgKzM1MjIsNiBAQAogCQlBNzVFOEI4RDBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21w
b25lbnRUcmFuc2Zlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc1RThCODUwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuaCAq
LzsgfTsKIAkJQTc1RThCOEUwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg2MEUxREUy
RDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5jcHAgKi87IH07CiAJCUE3NUU4QjhGMEUxREUyRDYw
MDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc1RThCODcwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9zaXRlLmgg
Ki87IH07Ci0JCUE3NjZDRjhDMTM4MTBFMEMwMDExQTBCMyAvKiBTaGFkb3dDb250ZW50RWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzY2
Q0Y4QjEzODEwRTBDMDAxMUEwQjMgLyogU2hhZG93Q29udGVudEVsZW1lbnQuY3BwICovOyB9Owog
CQlBNzZFNUY3RjEzNUUwRENGMDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2RTVGN0UxMzVF
MERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCAqLzsgfTsKIAkJQTc3OTc5
MTkwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkxMzBENkI5RDBDMDAzODUxQjkgLyogSW1h
Z2VEYXRhLmNwcCAqLzsgfTsKIAkJQTc3OTc5MUEwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5
MTQwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5oICovOyB9OwpAQCAtODM5MSw4ICs4Mzkx
LDEyIEBACiAJCTUzQzgyOThDMTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJGbGV4aWJsZUJveC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTBBMEJDNzA4NUY2MDM5MDA3MzUzRDYgLyog
UXVhbGlmaWVkTmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBRdWFsaWZpZWROYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTU1MEEwQkM4MDg1RjYwMzkwMDcz
NTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCTU3MERCN0E4MTRCNTY5NkEwMERB
RUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MERCN0E5MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFk
b3dDb250ZW50U2VsZWN0b3JRdWVyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1NzBEQkQ2MjE0QzU2OEEzMDBEQUVGQTAgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnRlbnRJbmNsdXNp
b25TZWxlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MERCRDYzMTRD
NTY4QTMwMERBRUZBMCAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MERCRDY0MTRDNTY4QTMwMERBRUZBMCAvKiBDb250ZW50
U2VsZWN0b3JRdWVyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
b250ZW50U2VsZWN0b3JRdWVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3
MERCRDY1MTRDNTY4QTMwMERBRUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50U2VsZWN0b3JRdWVyeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NzBEQkQ2QTE0QzU2OEFEMDBEQUVGQTAgLyogSFRNTENv
bnRlbnRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhU
TUxDb250ZW50RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MERC
RDZCMTRDNTY4QUQwMERBRUZBMCAvKiBIVE1MQ29udGVudEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTENvbnRlbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU5MDVBREJEMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRyZWVWaWV3ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTA1QURCRTEzMDJGM0NFMDBGMTE2
REYgLyogWE1MVHJlZVZpZXdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBY
TUxUcmVlVmlld2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MEUxQjQ4MTFF
NEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmllbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTAzMjMsMTMgKzEwMzI3LDEwIEBACiAJCUE3MTg3NjBEMEIyQTEyMDEwMEExNkVD
RSAvKiBEcmFnQWN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmFn
QWN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4Nzg4RjBCMkQwNEFD
MDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBEcmFnQ29udHJvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTcxQTcwQzkxMUFGQjAyMDAwOTg5RDZEIC8qIEhUTUxNZXRlckVsZW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxNZXRlckVsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBNzFDMzBCNjEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93
SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBNzFDMzBCNzEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhZG93SW5jbHVzaW9uU2VsZWN0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2
REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsYXRmb3JtRXhwb3J0TWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSb3VuZGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVj
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSb3VuZGVkUmVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzRCQjc2QTEzQkRBODYzMDBGRjdCRjAgLyogRXhj
ZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBNzRDMkQzQjEzODExRTBEMDBGODM1NzIgLyogU2hhZG93Q29udGVudEVsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhZG93Q29udGVudEVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1
RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzVFOEI4MDBFMURFMkQ2MDA3RjI0ODEg
LyogRkVCbGVuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGRUJs
ZW5kLmNwcDsgcGF0aCA9IGZpbHRlcnMvRkVCbGVuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMDM0MCw3ICsxMDM0MSw2IEBACiAJCUE3NUU4Qjg1MEUxREUyRDYwMDdGMjQ4
MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEZFQ29tcG9uZW50VHJhbnNmZXIuaDsgcGF0aCA9IGZpbHRlcnMvRkVDb21wb25lbnRUcmFu
c2Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzVFOEI4NjBFMURFMkQ2MDA3
RjI0ODEgLyogRkVDb21wb3NpdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gRkVDb21wb3NpdGUuY3BwOyBwYXRoID0gZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU4Qjg3MEUxREUyRDYwMDdGMjQ4MSAvKiBG
RUNvbXBvc2l0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGRUNvbXBvc2l0
ZS5oOyBwYXRoID0gZmlsdGVycy9GRUNvbXBvc2l0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBNzY2Q0Y4QjEzODEwRTBDMDAxMUEwQjMgLyogU2hhZG93Q29udGVudEVsZW1lbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93Q29udGVudEVs
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzZFNUY3RTEzNUUwRENG
MDBBNjk4MzcgLyogUmVuZGVyZWREb2N1bWVudE1hcmtlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW5kZXJlZERvY3VtZW50TWFya2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3Nzk3OTEzMEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VEYXRhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3OTc5MTQwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdl
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZURhdGEuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNzE1LDkgKzEzNzE1LDYgQEAKIAkJMUFFODJF
QzkwQ0FBRTE3NzAwMjIzN0FFIC8qIHN0b3JhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAotCQkJCUE4RjQ1NzlEMTRCQzEzRUMwMDBDRUE1OSAvKiBET01XaW5k
b3dTUUxEYXRhYmFzZS5jcHAgKi8sCi0JCQkJQThGNDU3OUUxNEJDMTNFQzAwMENFQTU5IC8qIERP
TVdpbmRvd1NRTERhdGFiYXNlLmggKi8sCi0JCQkJQThGNDU3OUYxNEJDMTNFQzAwMENFQTU5IC8q
IERPTVdpbmRvd1NRTERhdGFiYXNlLmlkbCAqLywKIAkJCQlCNUI1REM2NzExOUJCM0Q1MDAyQTg3
OTAgLyogQWJzdHJhY3REYXRhYmFzZS5jcHAgKi8sCiAJCQkJQjVCNURDNjgxMTlCQjNENTAwMkE4
NzkwIC8qIEFic3RyYWN0RGF0YWJhc2UuaCAqLywKIAkJCQk1MTQxODVFRDBDRDY1RjA0MDA3NjND
OTkgLyogQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwICovLApAQCAtMTM3NDAsNiArMTM3MzcsOSBA
QAogCQkJCTFBRDUxQTEzMENCNTlDRDMwMDk1M0QxMSAvKiBEYXRhYmFzZVRyYWNrZXIuY3BwICov
LAogCQkJCTFBRDUxQTEyMENCNTlDRDMwMDk1M0QxMSAvKiBEYXRhYmFzZVRyYWNrZXIuaCAqLywK
IAkJCQk1MUZBRkUzMzBDRUNCRjJEMDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmgg
Ki8sCisJCQkJQThGNDU3OUQxNEJDMTNFQzAwMENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFiYXNl
LmNwcCAqLywKKwkJCQlBOEY0NTc5RTE0QkMxM0VDMDAwQ0VBNTkgLyogRE9NV2luZG93U1FMRGF0
YWJhc2UuaCAqLywKKwkJCQlBOEY0NTc5RjE0QkMxM0VDMDAwQ0VBNTkgLyogRE9NV2luZG93U1FM
RGF0YWJhc2UuaWRsICovLAogCQkJCUM1ODVBNjk4MTFENEZCM0QwMDRDM0U0QiAvKiBJREJBbnku
Y3BwICovLAogCQkJCUM1ODVBNjk5MTFENEZCM0QwMDRDM0U0QiAvKiBJREJBbnkuaCAqLywKIAkJ
CQlDNTg1QTY5QTExRDRGQjNEMDA0QzNFNEIgLyogSURCQW55LmlkbCAqLywKQEAgLTE0MjIwLDgg
KzE0MjIwLDE0IEBACiAJCTQxNTBGOUVEMTJCNkUwOTkwMDA4Qzg2MCAvKiBzaGFkb3cgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU3MERCRDYyMTRDNTY4
QTMwMERBRUZBMCAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovLAorCQkJCTU3MERC
RDYzMTRDNTY4QTMwMERBRUZBMCAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCAqLywKKwkJ
CQk1NzBEQkQ2NDE0QzU2OEEzMDBEQUVGQTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwICov
LAorCQkJCTU3MERCRDY1MTRDNTY4QTMwMERBRUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5o
ICovLAogCQkJCUE3QzlBQkY2MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJv
bC5jcHAgKi8sCiAJCQkJQTdDOUFCRjcxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJD
b250cm9sLmggKi8sCisJCQkJNTcwREJENkExNEM1NjhBRDAwREFFRkEwIC8qIEhUTUxDb250ZW50
RWxlbWVudC5jcHAgKi8sCisJCQkJNTcwREJENkIxNEM1NjhBRDAwREFFRkEwIC8qIEhUTUxDb250
ZW50RWxlbWVudC5oICovLAogCQkJCTQxNzI1M0E4MTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAgKi8sCiAJCQkJNDE3MjUzQTkxMzU0QkJCQzAwMzYwRjJBIC8qIE1l
ZGlhQ29udHJvbEVsZW1lbnRzLmggKi8sCiAJCQkJNDE1N0FGN0YxMkYxRkIwNDAwQThDNkY1IC8q
IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50LmNwcCAqLywKQEAgLTE3MDQ2LDEzICsxNzA1MiwxMyBA
QAogCQlBNzVFOEI3RjBFMURFMkIwMDA3RjI0ODEgLyogZmlsdGVycyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNDlFQ0VCNUMxNDk5NzkwRDAwQ0REM0E0
IC8qIGFybSAqLywKKwkJCQk1MEQ0MDVGNzE0N0QzMUYzMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVy
TWVzaC5jcHAgKi8sCisJCQkJNTBENDA1RjgxNDdEMzFGMzAwRDMwQkI1IC8qIEN1c3RvbUZpbHRl
ck1lc2guaCAqLywKIAkJCQk1MEFDRTJDQTE0QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmlsdGVy
T3BlcmF0aW9uLmggKi8sCiAJCQkJNTAzRDBDQTcxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZp
bHRlclByb2dyYW0uY3BwICovLAogCQkJCTUwM0QwQ0E4MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0
b21GaWx0ZXJQcm9ncmFtLmggKi8sCiAJCQkJNTAzRDBDQTkxNEI1QjA4NzAwRjMyRjU3IC8qIEN1
c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCAqLywKLQkJCQk0OUVDRUI1QzE0OTk3OTBEMDBDREQz
QTQgLyogYXJtICovLAotCQkJCTUwRDQwNUY3MTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0
ZXJNZXNoLmNwcCAqLywKLQkJCQk1MEQ0MDVGODE0N0QzMUYzMDBEMzBCQjUgLyogQ3VzdG9tRmls
dGVyTWVzaC5oICovLAogCQkJCTUwRDQwNjBGMTQ3RDQ5REUwMEQzMEJCNSAvKiBDdXN0b21GaWx0
ZXJTaGFkZXIuY3BwICovLAogCQkJCTUwRDQwNjEwMTQ3RDQ5REUwMEQzMEJCNSAvKiBDdXN0b21G
aWx0ZXJTaGFkZXIuaCAqLywKIAkJCQlBMUUxMTU0MzEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFu
dExpZ2h0U291cmNlLmNwcCAqLywKQEAgLTE5MjM0LDcgKzE5MjQwLDYgQEAKIAkJQkM4QzhGQUEw
RERDRDJGMjAwQjU5MkY0IC8qIHN0eWxlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKLQkJCQk1MDNEMENBRDE0QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21G
aWx0ZXJQcm9ncmFtLmggKi8sCiAJCQkJQkM1RUI1RTAwRTgxQkU4NzAwQjI1OTY1IC8qIEJvcmRl
ckRhdGEuaCAqLywKIAkJCQlCQzVFQjVEQTBFODFCN0VBMDBCMjU5NjUgLyogQm9yZGVyVmFsdWUu
aCAqLywKIAkJCQlCQzVFQjVERTBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFs
dWUuaCAqLywKQEAgLTE5MjY5LDYgKzE5Mjc0LDcgQEAKIAkJCQlCQ0VGNDQ0QzBFNjc0NjI4MDAx
QzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5oICovLAogCQkJCTUwMzhCRTJEMTQ3MkFEMjMwMDk1
RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5jcHAgKi8sCiAJCQkJNTAzOEJFMkUxNDcyQUQyMzAw
OTVFMEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVyLmggKi8sCisJCQkJNTAzRDBDQUQxNEI1QjBCQTAw
RjMyRjU3IC8qIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oICovLAogCQkJCUJDNUVCNjdFMEU4
MUQ0QTcwMEIyNTk2NSAvKiBTdHlsZURhc2hib2FyZFJlZ2lvbi5oICovLAogCQkJCUJDNUVCOEI2
MEU4MjAxQkQwMEIyNTk2NSAvKiBTdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwICov
LAogCQkJCUJDNUVCOEI3MEU4MjAxQkQwMEIyNTk2NSAvKiBTdHlsZURlcHJlY2F0ZWRGbGV4aWJs
ZUJveERhdGEuaCAqLywKQEAgLTIwNTM2LDEyICsyMDU0Miw2IEBACiAJCQkJOTc2RjM2RTkxNDY4
NjIyNTAwNUU5M0I0IC8qIFNlY3VyaXR5Q29udGV4dC5oICovLAogCQkJCUU0NTMyMkE5MTQwQ0Uy
NjcwMDVBMEY5MiAvKiBTZWxlY3RvclF1ZXJ5LmNwcCAqLywKIAkJCQlFNDUzMjJBQTE0MENFMjY3
MDA1QTBGOTIgLyogU2VsZWN0b3JRdWVyeS5oICovLAotCQkJCUE3NjZDRjhCMTM4MTBFMEMwMDEx
QTBCMyAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5jcHAgKi8sCi0JCQkJQTc0QzJEM0IxMzgxMUUw
RDAwRjgzNTcyIC8qIFNoYWRvd0NvbnRlbnRFbGVtZW50LmggKi8sCi0JCQkJNTcwREI3QTgxNEI1
Njk2QTAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCAqLywKLQkJCQk1
NzBEQjdBOTE0QjU2OTZBMDBEQUVGQTAgLyogU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCAq
LywKLQkJCQlBNzFDMzBCNjEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0
b3IuY3BwICovLAotCQkJCUE3MUMzMEI3MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNp
b25TZWxlY3Rvci5oICovLAogCQkJCUE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dS
b290LmNwcCAqLywKIAkJCQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5o
ICovLAogCQkJCUQwMUEyN0FCMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmNw
cCAqLywKQEAgLTIxMTI4LDggKzIxMTI4LDEwIEBACiAJCQkJQTgxODcyMUMwOTc3RDNDMDAwNTgy
NkQ5IC8qIENvbnRhaW5lck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQTE0NzA4MTExMDJC
MTUwMEVFQzBGMyAvKiBDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM1RUI5ODEwRTgyMDcyNTAwQjI1OTY1IC8qIENvbnRlbnREYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk1NzBEQkQ2NzE0QzU2OEEzMDBEQUVGQTAgLyogQ29udGVudEluY2x1c2lvblNlbGVj
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OTEwMkZCQzE0MzI3RDNCMDAzQzlEMDQgLyogQ29u
dGVudFNlYXJjaFV0aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0M0NzFEQzEyRjkyNUJEMDA4
NjM1NEIgLyogQ29udGVudFNlY3VyaXR5UG9saWN5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzBE
QkQ2OTE0QzU2OEEzMDBEQUVGQTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxRDAxNUNBMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzcwRDZFREIxMzg0NTQ1NTAwNDQxMDNFIC8qIENvbnRlbnRUeXBlUGFy
c2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0I2QTBFNjBCMEJDQTVDMDBGNTAyN0EgLyogQ29u
dGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLApAQCAtMjEyMjQsNiArMjEyMjYsOSBAQAogCQkJCUJD
MjI3MkFEMEU4MkU4RjMwMEU3Rjk3NSAvKiBDdXJzb3JMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2MkNEMzI1QTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUwRDQwNUZBMTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1MEFDRTJDQjE0QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmlsdGVy
T3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDNEMENBQjE0QjVCMDg3MDBGMzJGNTcg
LyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTAzRDBDQUMxNEI1
QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUwRDQwNjEyMTQ3RDQ5REUwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJTaGFkZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4Q0I0MTNFMEU4NjMzRkQwMDMyQzRGMCAvKiBEYXNoQXJyYXku
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2RDBCMEExOTg5Q0EwMDdGQjhDNSAvKiBEYXNoYm9h
cmRSZWdpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjEzNTUsNiArMjEzNjAsNyBAQAogCQkJCTg1
RTcxMTk3MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01ET01JbXBsZW1lbnRhdGlvbkludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5QjNBODg3MjE0NTYzMkY5MDAzQUU4RjUgLyogRE9NRE9NU2V0
dGFibGVUb2tlbkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2OTQ1NjVCMTIxNERCNjMwMDA3
Q0JBRSAvKiBET01ET01Ub2tlbkxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTdBQUJBMjVBMTRC
QzYxMzMwMEFBOUExMSAvKiBET01FZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1QUNBOUMw
MEE5QjVGQTUwMDY3MUU5MCAvKiBET01FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3
MTE5ODBBQzVENTM1MDA1MzI3MEYgLyogRE9NRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNDE1RjE2OTBEOUExNjVEMDAzM0NFOTcgLyogRE9NRWxlbWVudFRpbWVDb250cm9s
LmggaW4gSGVhZGVycyAqLywKQEAgLTIxODkxLDYgKzIxODk3LDggQEAKIAkJCQk4NUM3RjVFNzBB
QUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU5
ODlERDEwQUNDOEJCRDAwQTBCQzUxIC8qIERPTVdoZWVsRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTQwM0I5OTcwOUVCMTNBRjAwNzk3QzdGIC8qIERPTVdpbmRvdy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTdEMkFEMDQxNEI4MjNBNjAwOTNERjMyIC8qIERPTVdpbmRvd1Byb3Bl
cnR5LmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEY0NTdBMTE0QkMxQTk0MDAwQ0VBNTkgLyogRE9N
V2luZG93U1FMRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNUFFNUFDMTQ5MjVGNUIw
MDRENTc3NiAvKiBET01XcmFwcGVyVmlzaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1M0RB
MkUxMTQzMTIxRTAwMEQ4MTdFIC8qIERPTVdyYXBwZXJXb3JsZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUExRDEzODAwQTUzMjU1MjAwNjRCRjVGIC8qIERPTVhQYXRoLmggaW4gSGVhZGVycyAqLywK
QEAgLTIyMDcyLDYgKzIyMDgwLDcgQEAKIAkJCQlBODUzMTIzRDExRDA0NzFCMDBENEQwNzcgLyog
RnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUJGMDIy
RjA5NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QjA3MEQz
MTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTc0QTg2MjMxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0MwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1l
TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczRTBBREJBNURFMDBBNDU1NEQgLyog
RnJhbWVMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwMDBFQkEzMTFCREFGRDQw
MEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MjE0NSw2ICsyMjE1NCw3IEBACiAJCQkJOTNGMTk5RTUwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxD
YW52YXNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOERGM0ZEMDA5N0ZBMEZDMDA1Mjk4
MUIgLyogSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODY1MTIyODgz
RTkwMEI4MUZGOCAvKiBIVE1MQ29uc3RydWN0aW9uU2l0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NTcwREJENkQxNEM1NjhBRDAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTFBMzE2NjMxMzRCQ0FFODAwN0M5QTRGIC8qIEhUTUxDb252ZXJ0ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxp
c3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMzU5RDc4QTEyOUNBMjcxMDAwNkU1RDIg
LyogSFRNTERldGFpbHNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIyMzM2LDYgKzIyMzQ2
LDcgQEAKIAkJCQlGMzQ0QzcxNDExMjVCODJDMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDRDNzUzMTEyOTREOUQwMEYyNkVFRSAvKiBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTBFNzcw
RjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggaW4gSGVhZGVycyAq
LywKKwkJCQk3QUNEODhENDE0QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTUxREQ2MTQ4NTA2
QTkwMEFEMjc1MiAvKiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NEY2RkRENjUxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yMzM5NSwxMCArMjM0MDYsNyBAQAogCQkJCTkzRjE5OTRGMDgyNDVFNTkwMDFF
OUFCQyAvKiBTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk4NzcwRTkxMjQyQzUzNTAw
MjIyNkJBIC8qIFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzREQ0NTAxMkY1RUExQjAw
MEQ5MTkwIC8qIFNoYWRvd0JsdXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE3NEMyRDNDMTM4MTFF
MEQwMEY4MzU3MiAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NTcwREJBODIxNEI1ODA0QjAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjhDNDBFODIwMzFCMDBCMjU5NjUgLyogU2hhZG93RGF0
YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTcxQzMwQjkxMzgxMjY1RTAwREJDMzUxIC8qIFNoYWRv
d0luY2x1c2lvblNlbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNkQxNjk2NDEzNDZCNEMx
MDAwRUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRTgwQTE5
ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkFGRkM5
NDBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuaCBpbiBIZWFkZXJzICovLApAQCAtMjM0
OTAsNiArMjM0OTgsNyBAQAogCQkJCUJDNUVCNjdCMEU4MUQzQkUwMEIyNTk2NSAvKiBTdHlsZUJv
eERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUY0NDREMEU2NzQ2MjgwMDFDMTI4NyAvKiBT
dHlsZUNhY2hlZEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MDM4QkUzMDE0NzJBRDIzMDA5
NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUwM0QwQ0FF
MTRCNUIwQkEwMEYzMkY1NyAvKiBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNUVCNjdGMEU4MUQ0QTcwMEIyNTk2NSAvKiBTdHlsZURhc2hib2FyZFJlZ2lv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNEE3RkQwOUQ1NjMyNzAwMDNBQzhEIC8qIFN0eWxl
ZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCOEI5MEU4MjAxQkQwMEIyNTk2NSAv
KiBTdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjM3
MzQsNiArMjM3NDMsNyBAQAogCQkJCTA4MEU0OTI2MTI1NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0
TGF5b3V0RW5naW5lQmFzZWxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MEU0OTI4MTI1NUYz
QkQwMEVGQ0EyNyAvKiBTVkdUZXh0TGF5b3V0RW5naW5lU3BhY2luZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDhGMEJGQzYxMjU1QzUzQzAwMDc1MTg1IC8qIFNWR1RleHRNZXRyaWNzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk3MTE3NDQ1OTE0QkMzNEVDMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJpY3NC
dWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FDRTBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHVGV4dFBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FEMTBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDg1NEIwMjUxMjU1RTRFNjAwQjlDREQwIC8qIFNWR1RleHRRdWVyeS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNDAwNiwxNiArMjQwMTYsNiBAQAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1
OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZD
OUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEz
N0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3NEE4NjIz
MTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTk3RDJBRDA0MTRCODIzQTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJN0FBQkEyNUExNEJDNjEzMzAwQUE5QTExIC8qIERPTUVkaXRv
ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThGNDU3QTExNEJDMUE5NDAwMENFQTU5IC8qIERPTVdp
bmRvd1NRTERhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQk3MTE3NDQ1OTE0QkMzNEVDMDBF
RTVGQzggLyogU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MDNE
MENBQjE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNTAzRDBDQUMxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1D
bGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTUwM0QwQ0FFMTRCNUIwQkEwMEYzMkY1NyAvKiBT
dHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTUwQUNFMkNCMTRC
NUQ3OTMwMDQ0NjY2NiAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAot
CQkJCTdBQ0Q4OEQ0MTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0yNDUyNiw4ICsyNDUyNiwxMCBAQAogCQkJCTQxRjA2MThGMEY1
RjA2OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
ODE4NzIxRjA5NzdEM0MwMDA1ODI2RDkgLyogQ29udGFpbmVyTm9kZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzVFQjk4MDBFODIwNzI1MDBCMjU5NjUgLyogQ29udGVudERhdGEuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNTcwREJENjYxNEM1NjhBMzAwREFFRkEwIC8qIENvbnRlbnRJbmNsdXNp
b25TZWxlY3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OTEwMkZCQjE0MzI3RDNCMDAzQzlE
MDQgLyogQ29udGVudFNlYXJjaFV0aWxzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3QzQ3MURC
MTJGOTI1QkQwMDg2MzU0QiAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTcwREJENjgxNEM1NjhBMzAwREFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxRDAxNUNCMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250
ZW50VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzBENkVEQTEzODQ1NDU1MDA0NDEwM0Ug
LyogQ29udGVudFR5cGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDY1QUQ0RjYwQjBD
MkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI0NjExLDYgKzI0NjEzLDcgQEAKIAkJCQk5M0YxOUEyNjA4MjQ1RTU5MDAxRTlBQkMgLyog
Q3Vyc29yTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjJDRDMyNTkxMTU3RTU3QzAwNjNCMEE3
IC8qIEN1c3RvbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwRDQwNUY5MTQ3RDMxRjMw
MEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwM0Qw
Q0FBMTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUwRDQwNjExMTQ3RDQ5REUwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJTaGFkZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE5NjExNkEwQ0FDNTY1NzAwMTBBODBDIC8qIERhdGFi
YXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTQ1QjU3MENBRDdGRDcwMDBEMkJFOSAvKiBE
YXRhYmFzZUF1dGhvcml6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNDcwMiw2ICsyNDcwNSw3
IEBACiAJCQkJODVDQTk3NUQwQTk2MkU1NDAwNjkwQ0NGIC8qIERPTURvY3VtZW50VHlwZS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTg1MThEQ0VBMEE5Q0M4MEQwMDkxQjdBNiAvKiBET01ET01JbXBs
ZW1lbnRhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTc2OTQ1NjVDMTIxNERCNjMwMDA3Q0JB
RSAvKiBET01ET01Ub2tlbkxpc3QubW0gaW4gU291cmNlcyAqLywKKwkJCQk3QUFCQTI1OTE0QkM2
MTMzMDBBQTlBMTEgLyogRE9NRWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1QUNBOUMx
MEE5QjVGQTUwMDY3MUU5MCAvKiBET01FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVD
QTk2QjkwQTk2MjFBNjAwNjkwQ0NGIC8qIERPTUVudGl0eS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTg1MDg5Q0RFMEE5OEM0MjgwMEEyNzVBQSAvKiBET01FbnRpdHlSZWZlcmVuY2UubW0gaW4gU291
cmNlcyAqLywKQEAgLTI0OTc1LDYgKzI0OTc5LDggQEAKIAkJCQkzMUMwRkY0RDBFNENFRkREMDA3
RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODVDN0Y1RTgwQUFGQkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQubW0gaW4gU291cmNlcyAq
LywKIAkJCQkxNDAzQjk5ODA5RUIxM0FGMDA3OTdDN0YgLyogRE9NV2luZG93LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTk3RDJBRDAzMTRCODIzQTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0
eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBOEY0NTdBMDE0QkMxQTg4MDAwQ0VBNTkgLyogRE9N
V2luZG93U1FMRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1M0RBNDgxMTQzMTM0
RDAwMEQ4MTdFIC8qIERPTVdyYXBwZXJXb3JsZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTFE
MTM4MTBBNTMyNTUyMDA2NEJGNUYgLyogRE9NWFBhdGgubW0gaW4gU291cmNlcyAqLywKIAkJCQk4
NUU5RTBBMjBBQjNBMEM3MDAwNjlDRDAgLyogRE9NWFBhdGhFeHByZXNzaW9uLm1tIGluIFNvdXJj
ZXMgKi8sCkBAIC0yNTEyMSw2ICsyNTEyNyw3IEBACiAJCQkJNDE4ODVCOTQxMUI2RkRBNjAwMzM4
M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1QkYwMjJFMDk3
NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0IwNzBEMjEz
MEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJOTc0QTg2MjIxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzJFMTYwOTBBRjU3ODM0MDAyNUY0MDggLyogRnJh
bWVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDAwMEVCQTIxMUJEQUZENDAwQzQ3NzI2
IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1QkYw
MjQ1MDk3NDgxOTAwMEM0MzE5NiAvKiBGcmFtZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjUx
NzksNiArMjUxODYsNyBAQAogCQkJCTkzRjE5QUZEMDgyNDVFNTkwMDFFOUFCQyAvKiBIVE1MQ2Fu
dmFzRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOERGM0ZEMTA5N0ZBMEZDMDA1Mjk4
MUIgLyogSFRNTENvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3QjM4NjQxMjI4
ODNFOTAwQjgxRkY4IC8qIEhUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTU3MERCRDZDMTRDNTY4QUQwMERBRUZBMCAvKiBIVE1MQ29udGVudEVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUQ0RjUxREYxMzI3MjU0ODAwMTZGNTQxIC8qIEhUTUxDb252ZXJ0
ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNUMwNDFEQTBGRkNBN0NFMDA4MzlENEEgLyogSFRN
TERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEMzU5RDc4OTEyOUNBMjcx
MDAwNkU1RDIgLyogSFRNTERldGFpbHNFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjUz
NTMsNiArMjUzNjEsNyBAQAogCQkJCTRGNEY1RkZCMTFDQkQyRTEwMEExODZCRiAvKiBJbnNwZWN0
b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZF
RUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTdBQ0Q4OEQzMTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJ
bmRleGVkREJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyMEQ2MjkyNjEyNTM2OTBCMDAw
ODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdBQTUxREQ1MTQ4NTA2QTkwMEFEMjc1MiAvKiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0RjZGREQ2NDEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFn
ZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY0MzQsMTAgKzI2NDQzLDcgQEAKIAkJCQkx
NEM5QTVFQTBCM0QxMDVGMDA1QTAyMzIgLyogU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDk4NzcwRTgxMjQyQzUzNTAwMjIyNkJBIC8qIFNoYWRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjNERDQ0RjEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlBNzY2Q0Y4QzEzODEwRTBDMDAxMUEwQjMgLyogU2hhZG93Q29udGVudEVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTcwREJBODExNEI1ODA0OTAwREFFRkEwIC8qIFNo
YWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUVCOEMz
MEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dEYXRhLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3
MUMzMEI4MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBNkQxNjk2MjEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGNDBBMTk4OUNBMDA3RkI4QzUgLyogU2hhZG93
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBRkZDOTMwRDAwQTVERjAwMzAwNzREIC8q
IFNoYXBlQXJhYmljLmMgaW4gU291cmNlcyAqLywKQEAgLTI2OTI1LDEyICsyNjkzMSw2IEBACiAJ
CQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTc0QTg2MjIxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5N0QyQUQwMzE0Qjgy
M0E2MDA5M0RGMzIgLyogRE9NV2luZG93UHJvcGVydHkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
N0FBQkEyNTkxNEJDNjEzMzAwQUE5QTExIC8qIERPTUVkaXRvci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlBOEY0NTdBMDE0QkMxQTg4MDAwQ0VBNTkgLyogRE9NV2luZG93U1FMRGF0YWJhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJNTAzRDBDQUExNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZp
bHRlclByb2dyYW0uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJN0FDRDg4RDMxNEMwOEJENjAwODRF
REQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggNTViNjA1MjhhYWEyOTNjZDY2NWM0YzkyMjdiYTg4
NDc4ODVmNmEzZS4uZjJjYjQ2N2RjYzEzM2NiYjNkODA0MGZlMTA2YzJiZThkZTEyOGI4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0xMTIsOSArMTEyLDYgQEAKICNpbmNsdWRl
ICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwIgogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4
dC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JRdWVyeS5jcHAiCi0jaW5jbHVkZSAiU2hhZG93Q29u
dGVudEVsZW1lbnQuY3BwIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNw
cCIKLSNpbmNsdWRlICJTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5jcHAiCiAjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5jcHAiCiAjaW5jbHVkZSAi
U3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuY3BwCmluZGV4IGVmODVmN2QyM2Y3ODIzZjljZjFmMTBkNWM4ODIxYmE4YWE3
MWJjMDkuLjIyNmMwZjRiZThlNTU4ZmY5MDBiOTQxZDA4YjIwNWExYzIyY2E5Y2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjcsMTMgKzI3LDEz
IEBACiAjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkNvbnRh
aW5lck5vZGUuaCIKKyNpbmNsdWRlICJDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCIKKyNpbmNs
dWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAi
UmVuZGVyRmxvd1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlckZ1bGxTY3JlZW4uaCIKICNpbmNs
dWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAi
U2hhZG93Q29udGVudEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTaGFkb3dJbmNsdXNpb25TZWxlY3Rv
ci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKIAogI2lmIEVOQUJMRShTVkcpCkBAIC0xMTEs
NyArMTExLDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTm9kZVJlbmRlcmluZ0NvbnRleHQ6
OnJlbGVhc2VTdHlsZSgpCiAgICAgcmV0dXJuIG1fc3R5bGUucmVsZWFzZSgpOwogfQogCi1zdGF0
aWMgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFy
ZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGljIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyT2Yo
SFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCiB7CiAgICAgU2hhZG93
SW5jbHVzaW9uKiBjdXJyZW50SW5jbHVzaW9uID0gcGFyZW50LT5pbmNsdXNpb25zKCktPmZpbmQo
Y3VycmVudCk7CiAgICAgaWYgKCFjdXJyZW50SW5jbHVzaW9uKQpAQCAtMTI1LDcgKzEyNSw3IEBA
IHN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50
KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBSZW5k
ZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50
LCBOb2RlKiBjdXJyZW50KQorc3RhdGljIFJlbmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9m
KEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQogewogICAgIFJlbmRl
ck9iamVjdCogbGFzdFJlbmRlcmVyID0gMDsKIApAQCAtMTM5LDcgKzEzOSw3IEBAIHN0YXRpYyBS
ZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFy
ZW50LCBOb2RlKiBjdXJyCiAgICAgcmV0dXJuIGxhc3RSZW5kZXJlcjsKIH0KIAotc3RhdGljIFJl
bmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQp
CitzdGF0aWMgUmVuZGVyT2JqZWN0KiBmaXJzdFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50
KiBwYXJlbnQpCiB7CiAgICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IHBhcmVu
dC0+aW5jbHVzaW9ucygpLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lv
bi0+bmV4dCgpKSB7CiAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gaW5jbHVz
aW9uLT5jb250ZW50KCktPnJlbmRlcmVyKCkpCkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIFJl
bmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9mKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQp
CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIGxhc3RSZW5kZXJlck9m
KFNoYWRvd0NvbnRlbnRFbGVtZW50KiBwYXJlbnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBsYXN0
UmVuZGVyZXJPZihIVE1MQ29udGVudEVsZW1lbnQqIHBhcmVudCkKIHsKICAgICBmb3IgKFNoYWRv
d0luY2x1c2lvbiogaW5jbHVzaW9uID0gcGFyZW50LT5pbmNsdXNpb25zKCktPmxhc3QoKTsgaW5j
bHVzaW9uOyBpbmNsdXNpb24gPSBpbmNsdXNpb24tPnByZXZpb3VzKCkpIHsKICAgICAgICAgaWYg
KFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBpbmNsdXNpb24tPmNvbnRlbnQoKS0+cmVuZGVyZXIo
KSkKQEAgLTE4Nyw3ICsxODcsNyBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0
OjpuZXh0UmVuZGVyZXIoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVy
KCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUtPmlzQ29udGVudEVsZW1lbnQoKSkgewot
ICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogZmlyc3QgPSBmaXJzdFJlbmRlcmVyT2YodG9T
aGFkb3dDb250ZW50RWxlbWVudChub2RlKSkpCisgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0
KiBmaXJzdCA9IGZpcnN0UmVuZGVyZXJPZih0b0hUTUxDb250ZW50RWxlbWVudChub2RlKSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0OwogICAgICAgICB9CiAgICAgfQpAQCAtMjIwLDcg
KzIyMCw3IEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVu
ZGVyZXIoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKG5vZGUtPmlzQ29udGVudEVsZW1lbnQoKSkgewotICAgICAgICAg
ICAgaWYgKFJlbmRlck9iamVjdCogbGFzdCA9IGxhc3RSZW5kZXJlck9mKHRvU2hhZG93Q29udGVu
dEVsZW1lbnQobm9kZSkpKQorICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogbGFzdCA9IGxh
c3RSZW5kZXJlck9mKHRvSFRNTENvbnRlbnRFbGVtZW50KG5vZGUpKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gbGFzdDsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
ZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggYjRlODkxMjk3YTYyY2I0N2RiN2M5NTg0M2EwZWEwN2Rj
YTRmNmJiMC4uZDMxNDExNzZmMjA1NDM0MjI3MGY2YTRlMTMxY2Y5ZDRiYmVkZTk4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTM4LDcgKzM4LDcgQEAg
Y2xhc3MgTm9kZTsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJPYmplY3Q7
CiBjbGFzcyBSZW5kZXJTdHlsZTsKLWNsYXNzIFNoYWRvd0NvbnRlbnRFbGVtZW50OworY2xhc3Mg
SFRNTENvbnRlbnRFbGVtZW50OwogY2xhc3MgU2hhZG93Um9vdDsKIAogY2xhc3MgTm9kZVJlbmRl
cmluZ0NvbnRleHQgewpAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyT2JqZWN0
KiBwYXJlbnRSZW5kZXJlcigpIGNvbnN0OwogICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVy
KCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVyKCkgY29uc3Q7Ci0g
ICAgU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyKCkgY29uc3Q7CisgICAgSFRNTENvbnRl
bnRFbGVtZW50KiBpbmNsdWRlcigpIGNvbnN0OwogCiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CkBAIC04
Niw3ICs4Niw3IEBAIHByaXZhdGU6CiAgICAgTm9kZSogbV9ub2RlOwogICAgIENvbnRhaW5lck5v
ZGUqIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlOwogICAgIFNoYWRvd1Jvb3QqIG1f
dmlzdWFsUGFyZW50U2hhZG93Um9vdDsKLSAgICBTaGFkb3dDb250ZW50RWxlbWVudCogbV9pbmNs
dWRlcjsKKyAgICBIVE1MQ29udGVudEVsZW1lbnQqIG1faW5jbHVkZXI7CiAgICAgUmVmUHRyPFJl
bmRlclN0eWxlPiBtX3N0eWxlOwogICAgIFJlbmRlckZsb3dUaHJlYWQqIG1fcGFyZW50Rmxvd1Jl
bmRlcmVyOwogICAgIEF0b21pY1N0cmluZyBtX2Zsb3dUaHJlYWQ7CkBAIC0xMDgsNyArMTA4LDcg
QEAgaW5saW5lIFJlbmRlclN0eWxlKiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6c3R5bGUoKSBjb25z
dAogICAgIHJldHVybiBtX3N0eWxlLmdldCgpOwogfQogCi1pbmxpbmUgU2hhZG93Q29udGVudEVs
ZW1lbnQqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjppbmNsdWRlcigpIGNvbnN0CitpbmxpbmUgSFRN
TENvbnRlbnRFbGVtZW50KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6aW5jbHVkZXIoKSBjb25zdAog
ewogICAgIHJldHVybiBtX2luY2x1ZGVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dD
b250ZW50RWxlbWVudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzYmNmMDFl
MzBmMDk4YjYxMmVhOTc0NmQyMDMzYmM3NTc1NzllMjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRF
bGVtZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuaCIKLQotI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgotI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKLSNpbmNsdWRlICJTaGFkb3dD
b250ZW50U2VsZWN0b3JRdWVyeS5oIgotI2luY2x1ZGUgIlNoYWRvd0luY2x1c2lvblNlbGVjdG9y
LmgiCi0jaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBIVE1MTmFtZXM6OnNlbGVjdEF0dHI7
Ci0KLVBhc3NSZWZQdHI8U2hhZG93Q29udGVudEVsZW1lbnQ+IFNoYWRvd0NvbnRlbnRFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
UXVhbGlmaWVkTmFtZSwgdGFnTmFtZSwgKG51bGxBdG9tLCAid2Via2l0U2hhZG93Q29udGVudCIs
IEhUTUxOYW1lczo6ZGl2VGFnLm5hbWVzcGFjZVVSSSgpKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTaGFkb3dDb250ZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwotfQotCi1TaGFk
b3dDb250ZW50RWxlbWVudDo6U2hhZG93Q29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogU3R5bGVkRWxlbWVudChuYW1lLCBk
b2N1bWVudCwgQ3JlYXRlSFRNTEVsZW1lbnQpCi0gICAgLCBtX2luY2x1c2lvbnMoYWRvcHRQdHIo
bmV3IFNoYWRvd0luY2x1c2lvbkxpc3QoKSkpCi17Ci19Ci0KLVNoYWRvd0NvbnRlbnRFbGVtZW50
Ojp+U2hhZG93Q29udGVudEVsZW1lbnQoKQotewotfQotCi12b2lkIFNoYWRvd0NvbnRlbnRFbGVt
ZW50OjphdHRhY2goKQotewotICAgIEFTU0VSVCghZmlyc3RDaGlsZCgpKTsgLy8gQ3VycmVudGx5
IGRvZXNuJ3Qgc3VwcG9ydCBhbnkgbGlnaHQgY2hpbGQuCi0gICAgU3R5bGVkRWxlbWVudDo6YXR0
YWNoKCk7Ci0KLSAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dU
cmVlUm9vdE5vZGUoKSkpIHsKLSAgICAgICAgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIHNlbGVj
dG9yID0gcm9vdC0+ZW5zdXJlSW5jbHVzaW9ucygpOwotICAgICAgICBzZWxlY3Rvci0+dW5zZWxl
Y3QobV9pbmNsdXNpb25zLmdldCgpKTsKLSAgICAgICAgc2VsZWN0b3ItPnNlbGVjdCh0aGlzLCBt
X2luY2x1c2lvbnMuZ2V0KCkpOwotICAgICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVz
aW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1
c2lvbi0+bmV4dCgpKQotICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50KCktPmRldGFjaCgp
OwotICAgICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25z
LT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQotICAg
ICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50KCktPmF0dGFjaCgpOwotICAgIH0KLX0KLQotdm9p
ZCBTaGFkb3dDb250ZW50RWxlbWVudDo6ZGV0YWNoKCkKLXsKLSAgICBpZiAoU2hhZG93Um9vdCog
cm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkpIHsKLSAgICAgICAgaWYg
KFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmluY2x1c2lvbnMoKSkK
LSAgICAgICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdChtX2luY2x1c2lvbnMuZ2V0KCkpOwotICAg
IH0KLQotICAgIEFTU0VSVChtX2luY2x1c2lvbnMtPmlzRW1wdHkoKSk7Ci0gICAgU3R5bGVkRWxl
bWVudDo6ZGV0YWNoKCk7Ci19Ci0KLWNvbnN0IEF0b21pY1N0cmluZyYgU2hhZG93Q29udGVudEVs
ZW1lbnQ6OnNlbGVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzZWxlY3RB
dHRyKTsKLX0KLQotdm9pZCBTaGFkb3dDb250ZW50RWxlbWVudDo6c2V0U2VsZWN0KGNvbnN0IEF0
b21pY1N0cmluZyYgc2VsZWN0VmFsdWUpCi17Ci0gICAgc2V0QXR0cmlidXRlKHNlbGVjdEF0dHIs
IHNlbGVjdFZhbHVlKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd0NvbnRlbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVs
ZW1lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWNlNDdhZGMxMTNmZmEzODNj
ZDI5OGU4MTRjYTRiN2Q5YjhkY2ZmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuaAor
KysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNoYWRvd0NvbnRlbnRFbGVtZW50
X2gKLSNkZWZpbmUgU2hhZG93Q29udGVudEVsZW1lbnRfaAotCi0jaW5jbHVkZSAiU3R5bGVkRWxl
bWVudC5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnk7Ci1jbGFzcyBTaGFkb3dJbmNsdXNp
b25MaXN0OwotCi0vLyBOT1RFOiBDdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9y
dCBkeW5hbWljIGluc2VydGlvbi9kZWxldGlvbiBvZiBTaGFkb3dDb250ZW50RWxlbWVudC4KLS8v
IFlvdSBzaG91bGQgY3JlYXRlIFNoYWRvd0NvbnRlbnRFbGVtZW50IGR1cmluZyB0aGUgaG9zdCBj
b25zdHJ1Y3Rpb24uCi1jbGFzcyBTaGFkb3dDb250ZW50RWxlbWVudCA6IHB1YmxpYyBTdHlsZWRF
bGVtZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFkb3dDb250ZW50RWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Kik7Ci0KLSAgICB2aXJ0dWFsIH5TaGFkb3dDb250ZW50RWxl
bWVudCgpOwotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGV0
YWNoKCk7Ci0KLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdCgpIGNvbnN0OwotCi0gICAg
Ly8gRklYTUU6IEN1cnJlbnRseSB0aGlzIGNvbnN0cnVjdG9yIGFjY2VwdHMgd2lkZXIgcXVlcnkg
dGhhbiBzaGFkb3cgZG9tIHNwZWMuCi0gICAgLy8gRm9yIGV4YW1wbGUsIGEgc2VsZWN0b3IgcXVl
cnkgc2hvdWxkIG5vdCBpbmNsdWRlIGNvbnRleHR1YWwgc2VsZWN0b3JzLgotICAgIC8vIFNlZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDYKLSAgICAvLyBGSVhN
RTogQ3VycmVudGx5IHdlIGRvbid0IHN1cHBvcnQgc2V0dGluZyBzZWxlY3QgdmFsdWUgZHluYW1p
Y2FsbHkuCi0gICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NjI2MQotICAgIHZvaWQgc2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYpOwotCi0gICAg
Y29uc3QgU2hhZG93SW5jbHVzaW9uTGlzdCogaW5jbHVzaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1f
aW5jbHVzaW9ucy5nZXQoKTsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgU2hhZG93Q29udGVudEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Ci0KLXByaXZhdGU6Ci0gICAgdmly
dHVhbCBib29sIGlzQ29udGVudEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQm
KSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgeyByZXR1cm4gMDsgfQotCi0gICAgT3du
UHRyPFNoYWRvd0luY2x1c2lvbkxpc3Q+IG1faW5jbHVzaW9uczsKLX07Ci0KLWlubGluZSBTaGFk
b3dDb250ZW50RWxlbWVudCogdG9TaGFkb3dDb250ZW50RWxlbWVudChOb2RlKiBub2RlKQotewot
ICAgIEFTU0VSVCghbm9kZSB8fCBub2RlLT5pc0NvbnRlbnRFbGVtZW50KCkpOwotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxTaGFkb3dDb250ZW50RWxlbWVudCo+KG5vZGUpOwotfQotCi19Ci0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3Rv
clF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVy
eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhMDYxZTc4NjdiMjViZTVmZWFm
MWNiZjRmNzQ0OGQyMzliNzQyY2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCIKLQotI2luY2x1ZGUgIkNT
U1BhcnNlci5oIgotI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgotI2luY2x1ZGUgIlNoYWRv
d0NvbnRlbnRFbGVtZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU2hhZG93Q29udGVu
dFNlbGVjdG9yUXVlcnk6OlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5KFNoYWRvd0NvbnRlbnRF
bGVtZW50KiBlbGVtZW50KQotICAgIDogbV9jb250ZW50RWxlbWVudChlbGVtZW50KQotICAgICwg
bV9zZWxlY3RvckNoZWNrZXIoZWxlbWVudC0+ZG9jdW1lbnQoKSwgIWVsZW1lbnQtPmRvY3VtZW50
KCktPmluUXVpcmtzTW9kZSgpKQotewotICAgIG1fc2VsZWN0b3JDaGVja2VyLnNldENvbGxlY3Rp
bmdSdWxlc09ubHkodHJ1ZSk7Ci0KLSAgICBpZiAoZWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkg
fHwgZWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBD
U1NQYXJzZXIgcGFyc2VyKHRydWUpOwotICAgIHBhcnNlci5wYXJzZVNlbGVjdG9yKGVsZW1lbnQt
PnNlbGVjdCgpLCBlbGVtZW50LT5kb2N1bWVudCgpLCBtX3NlbGVjdG9yTGlzdCk7Ci0KLSAgICBt
X3NlbGVjdG9ycy5pbml0aWFsaXplKG1fc2VsZWN0b3JMaXN0KTsKLX0KLQotYm9vbCBTaGFkb3dD
b250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hlcyhOb2RlKiBub2RlKSBjb25zdAotewotICAgIEFT
U0VSVChub2RlKTsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IEFTU0VSVChub2RlLT5wYXJlbnROb2RlKCkgPT0gbV9jb250ZW50RWxlbWVudC0+c2hhZG93VHJl
ZVJvb3ROb2RlKCktPnNoYWRvd0hvc3QoKSk7Ci0KLSAgICBpZiAobV9jb250ZW50RWxlbWVudC0+
c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9jb250ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9zZWxlY3RvcnMubWF0Y2hl
cyhtX3NlbGVjdG9yQ2hlY2tlciwgdG9FbGVtZW50KG5vZGUpKTsKLX0KLQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDU2ODczYjM0MzBjM2EyYzI0N2ExODBhZTRkYTNkYjEwNGYwNzMw
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaAorKysgL2Rldi9udWxsCkBA
IC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0g
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5X2gKLSNkZWZp
bmUgU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnlfaAotCi0jaW5jbHVkZSAiQ1NTU2VsZWN0b3JM
aXN0LmgiCi0jaW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCi0jaW5jbHVkZSAiU2VsZWN0b3JR
dWVyeS5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3VtZW50OwotY2xhc3MgTm9kZTsK
LWNsYXNzIFNoYWRvd0NvbnRlbnRFbGVtZW50OwotCi1jbGFzcyBTaGFkb3dDb250ZW50U2VsZWN0
b3JRdWVyeSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2hhZG93Q29udGVudFNlbGVjdG9y
UXVlcnkpOwotcHVibGljOgotICAgIGV4cGxpY2l0IFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5
KFNoYWRvd0NvbnRlbnRFbGVtZW50Kik7Ci0KLSAgICBib29sIG1hdGNoZXMoTm9kZSopIGNvbnN0
OwotCi1wcml2YXRlOgotICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBtX2NvbnRlbnRFbGVtZW50
OwotICAgIFNlbGVjdG9yRGF0YUxpc3QgbV9zZWxlY3RvcnM7Ci0gICAgQ1NTU2VsZWN0b3JMaXN0
IG1fc2VsZWN0b3JMaXN0OwotICAgIFNlbGVjdG9yQ2hlY2tlciBtX3NlbGVjdG9yQ2hlY2tlcjsK
LX07Ci0KLX0KLQotCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNs
dXNpb25TZWxlY3Rvci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3ZTlkNDJi
ZTUxYjVlNDUyYzRkNDA1NGUyMGJhNGM3Yjg1NTQ4YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lv
blNlbGVjdG9yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE1NSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgiCi0KLSNpbmNs
dWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmgiCi0jaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotdm9pZCBTaGFkb3dJbmNsdXNpb246OmFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0lu
Y2x1c2lvbj4gbmV4dCkKLXsKLSAgICBBU1NFUlQoIW1fbmV4dCk7Ci0gICAgQVNTRVJUKCFuZXh0
LT5wcmV2aW91cygpKTsKLSAgICBtX25leHQgPSBuZXh0OwotICAgIG1fbmV4dC0+bV9wcmV2aW91
cyA9IHRoaXM7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uOjp1bmxpbmsoKQotewotICAgIEFT
U0VSVCghbV9wcmV2aW91cyk7IC8vIENhbiBiZSBjYWxsZWQgb25seSBmb3IgYSBoZWFkLgotICAg
IFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGl0ZW0gPSB0aGlzOwotICAgIHdoaWxlIChpdGVtKSB7
Ci0gICAgICAgIEFTU0VSVCghaXRlbS0+cHJldmlvdXMoKSk7Ci0gICAgICAgIFJlZlB0cjxTaGFk
b3dJbmNsdXNpb24+IG5leHRJdGVtID0gaXRlbS0+bV9uZXh0OwotICAgICAgICBpdGVtLT5tX25l
eHQuY2xlYXIoKTsKLSAgICAgICAgaWYgKG5leHRJdGVtKQotICAgICAgICAgICAgbmV4dEl0ZW0t
Pm1fcHJldmlvdXMuY2xlYXIoKTsKLSAgICAgICAgaXRlbSA9IG5leHRJdGVtOwotICAgIH0KLX0K
LQotU2hhZG93SW5jbHVzaW9uTGlzdDo6U2hhZG93SW5jbHVzaW9uTGlzdCgpCi17Ci19Ci0KLVNo
YWRvd0luY2x1c2lvbkxpc3Q6On5TaGFkb3dJbmNsdXNpb25MaXN0KCkKLXsKLSAgICBBU1NFUlQo
aXNFbXB0eSgpKTsKLX0KLQotU2hhZG93SW5jbHVzaW9uKiBTaGFkb3dJbmNsdXNpb25MaXN0Ojpm
aW5kKE5vZGUqIGNvbnRlbnQpIGNvbnN0Ci17Ci0gICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGl0
ZW0gPSBmaXJzdCgpOyBpdGVtOyBpdGVtID0gaXRlbS0+bmV4dCgpKSB7Ci0gICAgICAgIGlmIChj
b250ZW50ID09IGl0ZW0tPmNvbnRlbnQoKSkKLSAgICAgICAgICAgIHJldHVybiBpdGVtOwotICAg
IH0KLSAgICAKLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBTaGFkb3dJbmNsdXNpb25MaXN0Ojpj
bGVhcigpCi17Ci0gICAgaWYgKGlzRW1wdHkoKSkgewotICAgICAgICBBU1NFUlQoIW1fbGFzdCk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX2ZpcnN0LT51bmxpbmsoKTsKLSAgICBt
X2ZpcnN0LmNsZWFyKCk7Ci0gICAgbV9sYXN0LmNsZWFyKCk7Ci19Ci0KLXZvaWQgU2hhZG93SW5j
bHVzaW9uTGlzdDo6YXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBjaGlsZCkKLXsK
LSAgICBpZiAoaXNFbXB0eSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbV9sYXN0KTsKLSAgICAgICAg
bV9maXJzdCA9IG1fbGFzdCA9IGNoaWxkOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
bV9sYXN0LT5hcHBlbmQoY2hpbGQpOwotICAgIG1fbGFzdCA9IG1fbGFzdC0+bmV4dCgpOwotfQot
Ci1TaGFkb3dJbmNsdXNpb25TZWxlY3Rvcjo6U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IoKQotewot
fQotCi1TaGFkb3dJbmNsdXNpb25TZWxlY3Rvcjo6flNoYWRvd0luY2x1c2lvblNlbGVjdG9yKCkK
LXsKLSAgICBBU1NFUlQobV9jYW5kaWRhdGVzLmlzRW1wdHkoKSk7Ci19Ci0KLXZvaWQgU2hhZG93
SW5jbHVzaW9uU2VsZWN0b3I6OnNlbGVjdChTaGFkb3dDb250ZW50RWxlbWVudCogY29udGVudEVs
ZW1lbnQsIFNoYWRvd0luY2x1c2lvbkxpc3QqIGluY2x1c2lvbnMpCi17Ci0gICAgQVNTRVJUKGlu
Y2x1c2lvbnMtPmlzRW1wdHkoKSk7Ci0KLSAgICBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeSBx
dWVyeShjb250ZW50RWxlbWVudCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2NhbmRp
ZGF0ZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgTm9kZSogY2hpbGQgPSBtX2NhbmRpZGF0ZXNb
aV0uZ2V0KCk7Ci0gICAgICAgIGlmICghY2hpbGQpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgaWYgKCFxdWVyeS5tYXRjaGVzKGNoaWxkKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
Ci0gICAgICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGluY2x1c2lvbiA9IFNoYWRvd0luY2x1
c2lvbjo6Y3JlYXRlKGNvbnRlbnRFbGVtZW50LCBjaGlsZCk7Ci0gICAgICAgIGluY2x1c2lvbnMt
PmFwcGVuZChpbmNsdXNpb24pOwotICAgICAgICBtX2luY2x1c2lvblNldC5hZGQoaW5jbHVzaW9u
LmdldCgpKTsKLSAgICAgICAgbV9jYW5kaWRhdGVzW2ldID0gMDsKLSAgICB9Ci19Ci0KLXZvaWQg
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OnVuc2VsZWN0KFNoYWRvd0luY2x1c2lvbkxpc3QqIGxp
c3QpCi17Ci0gICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IGxpc3QtPmZpcnN0
KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0KCkpCi0gICAgICAgIG1f
aW5jbHVzaW9uU2V0LnJlbW92ZShpbmNsdXNpb24pOwotICAgIGxpc3QtPmNsZWFyKCk7Ci19Ci0K
LVNoYWRvd0luY2x1c2lvbiogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OmZpbmRGb3IoTm9kZSog
a2V5KSBjb25zdAotewotICAgIHJldHVybiBtX2luY2x1c2lvblNldC5maW5kKGtleSk7Ci19Ci0K
LXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OmRpZFNlbGVjdCgpCi17Ci0gICAgbV9jYW5k
aWRhdGVzLmNsZWFyKCk7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OndpbGxT
ZWxlY3RPdmVyKFNoYWRvd1Jvb3QqIHNjb3BlKQotewotICAgIGlmICghbV9jYW5kaWRhdGVzLmlz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGZvciAoTm9kZSogbm9kZSA9IHNjb3BlLT5z
aGFkb3dIb3N0KCktPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5n
KCkpCi0gICAgICAgIG1fY2FuZGlkYXRlcy5hcHBlbmQobm9kZSk7Ci19Ci0KLX0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQxYTg3MTc0NDFiMTljMmQ2YWZhMGU4ZjM0MDc1ODQxMDIxOGI0ZTUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3JfaAotI2RlZmluZSBTaGFkb3dJ
bmNsdXNpb25TZWxlY3Rvcl9oCi0KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRWxlbWVudDsKLWNs
YXNzIE5vZGU7Ci1jbGFzcyBTaGFkb3dSb290OwotY2xhc3MgU2hhZG93Q29udGVudEVsZW1lbnQ7
Ci0KLWNsYXNzIFNoYWRvd0luY2x1c2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNoYWRvd0luY2x1
c2lvbj4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4g
Y3JlYXRlKFNoYWRvd0NvbnRlbnRFbGVtZW50KiwgTm9kZSopOwotCi0gICAgU2hhZG93Q29udGVu
dEVsZW1lbnQqIGluY2x1ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9pbmNsdWRlcjsgfQotICAgIE5v
ZGUqIGNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnQuZ2V0KCk7IH0KLSAgICBTaGFk
b3dJbmNsdXNpb24qIG5leHQoKSBjb25zdCB7IHJldHVybiBtX25leHQuZ2V0KCk7IH0KLSAgICBT
aGFkb3dJbmNsdXNpb24qIHByZXZpb3VzKCkgY29uc3QgeyByZXR1cm4gbV9wcmV2aW91cy5nZXQo
KTsgfQotCi0gICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+KTsKLSAg
ICB2b2lkIHVubGluaygpOwotCi1wcml2YXRlOgotICAgIFNoYWRvd0luY2x1c2lvbihTaGFkb3dD
b250ZW50RWxlbWVudCosIE5vZGUqKTsKLQotICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBtX2lu
Y2x1ZGVyOwotICAgIFJlZlB0cjxOb2RlPiBtX2NvbnRlbnQ7Ci0gICAgUmVmUHRyPFNoYWRvd0lu
Y2x1c2lvbj4gbV9uZXh0OwotICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG1fcHJldmlvdXM7
Ci19OwotCi1pbmxpbmUgU2hhZG93SW5jbHVzaW9uOjpTaGFkb3dJbmNsdXNpb24oU2hhZG93Q29u
dGVudEVsZW1lbnQqIGluY2x1ZGVyLCBOb2RlKiBjb250ZW50KQotICAgIDogbV9pbmNsdWRlcihp
bmNsdWRlciksIG1fY29udGVudChjb250ZW50KQoteyB9Ci0KLWlubGluZSBQYXNzUmVmUHRyPFNo
YWRvd0luY2x1c2lvbj4gU2hhZG93SW5jbHVzaW9uOjpjcmVhdGUoU2hhZG93Q29udGVudEVsZW1l
bnQqIGluY2x1ZGVyLCBOb2RlKiBjb250ZW50KQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U2hhZG93SW5jbHVzaW9uKGluY2x1ZGVyLCBjb250ZW50KSk7Ci19Ci0KLWNsYXNzIFNoYWRvd0lu
Y2x1c2lvbkxpc3QgewotcHVibGljOgotICAgIFNoYWRvd0luY2x1c2lvbkxpc3QoKTsKLSAgICB+
U2hhZG93SW5jbHVzaW9uTGlzdCgpOwotCi0gICAgU2hhZG93SW5jbHVzaW9uKiBmaXJzdCgpIGNv
bnN0IHsgcmV0dXJuIG1fZmlyc3QuZ2V0KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIGxhc3Qo
KSBjb25zdCB7IHJldHVybiBtX2xhc3QuZ2V0KCk7IH0KLSAgICBTaGFkb3dJbmNsdXNpb24qIGZp
bmQoTm9kZSopIGNvbnN0OwotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2Zp
cnN0OyB9Ci0KLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxT
aGFkb3dJbmNsdXNpb24+KTsKLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9u
PiBtX2ZpcnN0OwotICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG1fbGFzdDsKLX07Ci0KLQot
Y2xhc3MgU2hhZG93SW5jbHVzaW9uU2V0IHsKLXB1YmxpYzoKLSAgICB2b2lkIGFkZChTaGFkb3dJ
bmNsdXNpb24qIHZhbHVlKSB7IG1fc2V0LmFkZCh2YWx1ZSk7IH0KLSAgICB2b2lkIHJlbW92ZShT
aGFkb3dJbmNsdXNpb24qIHZhbHVlKSB7IG1fc2V0LnJlbW92ZSh2YWx1ZSk7IH0KLSAgICBib29s
IGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3NldC5pc0VtcHR5KCk7IH0KLSAgICBTaGFkb3dJ
bmNsdXNpb24qIGZpbmQoTm9kZSoga2V5KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBzdHJ1Y3Qg
VHJhbnNsYXRvciB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChj
b25zdCBOb2RlKiBrZXkpIHsgcmV0dXJuIFB0ckhhc2g8Y29uc3QgTm9kZSo+OjpoYXNoKGtleSk7
IH0KLSAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU2hhZG93SW5jbHVzaW9uKiBpbmNs
dXNpb24sIGNvbnN0IE5vZGUqIGNvbnRlbnQpIHsgcmV0dXJuIGluY2x1c2lvbi0+Y29udGVudCgp
ID09IGNvbnRlbnQ7IH0KLSAgICB9OwotCi0gICAgc3RydWN0IEhhc2ggewotICAgICAgICBzdGF0
aWMgdW5zaWduZWQgaGFzaChTaGFkb3dJbmNsdXNpb24qIGtleSkgeyByZXR1cm4gUHRySGFzaDxj
b25zdCBOb2RlKj46Omhhc2goa2V5LT5jb250ZW50KCkpOyB9Ci0gICAgICAgIHN0YXRpYyBib29s
IGVxdWFsKFNoYWRvd0luY2x1c2lvbiogYSwgU2hhZG93SW5jbHVzaW9uKiBiKSB7IHJldHVybiBh
LT5jb250ZW50KCkgPT0gYi0+Y29udGVudCgpOyB9Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29s
IHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7Ci0gICAgfTsKLQotICAgIHR5
cGVkZWYgSGFzaFNldDxTaGFkb3dJbmNsdXNpb24qLCBIYXNoPiBQb2ludGVyU2V0OwotCi0gICAg
UG9pbnRlclNldCBtX3NldDsKLX07Ci0KLWlubGluZSBTaGFkb3dJbmNsdXNpb24qIFNoYWRvd0lu
Y2x1c2lvblNldDo6ZmluZChOb2RlKiBrZXkpIGNvbnN0Ci17Ci0gICAgUG9pbnRlclNldDo6aXRl
cmF0b3IgZm91bmQgPSBtX3NldC5maW5kPE5vZGUqLCBTaGFkb3dJbmNsdXNpb25TZXQ6OlRyYW5z
bGF0b3I+KGtleSk7Ci0gICAgcmV0dXJuIGZvdW5kICE9IG1fc2V0LmVuZCgpID8gKmZvdW5kIDog
MDsKLX0KLQotY2xhc3MgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IgewotICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKTsKLXB1YmxpYzoKLSAgICBTaGFkb3dJ
bmNsdXNpb25TZWxlY3RvcigpOwotICAgIH5TaGFkb3dJbmNsdXNpb25TZWxlY3RvcigpOwotCi0g
ICAgdm9pZCBzZWxlY3QoU2hhZG93Q29udGVudEVsZW1lbnQqLCBTaGFkb3dJbmNsdXNpb25MaXN0
Kik7Ci0gICAgdm9pZCB1bnNlbGVjdChTaGFkb3dJbmNsdXNpb25MaXN0Kik7Ci0gICAgU2hhZG93
SW5jbHVzaW9uKiBmaW5kRm9yKE5vZGUqIGtleSkgY29uc3Q7Ci0KLSAgICB2b2lkIHdpbGxTZWxl
Y3RPdmVyKFNoYWRvd1Jvb3QqKTsKLSAgICB2b2lkIGRpZFNlbGVjdCgpOwotICAgIGJvb2wgaGFz
Q2FuZGlkYXRlcygpIGNvbnN0IHsgcmV0dXJuICFtX2NhbmRpZGF0ZXMuaXNFbXB0eSgpOyB9Ci0K
LXByaXZhdGU6Ci0gICAgdm9pZCByZW1vdmVGcm9tU2V0KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsK
LSAgICB2b2lkIGFkZFRvU2V0KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKLQotICAgIFZlY3RvcjxS
ZWZQdHI8Tm9kZT4gPiBtX2NhbmRpZGF0ZXM7Ci0gICAgU2hhZG93SW5jbHVzaW9uU2V0IG1faW5j
bHVzaW9uU2V0OwotfTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApp
bmRleCBlMmNlOWIwNDNlOTQ0YjFhYzYyMmI1NWMxMDA5MTFjNGJiODJlMDQ5Li4yMjlkNTU4MTVh
N2ZhZWVlNDc4YWQyOWE3MDhiMjU4OTZiMjRlYTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwCkBAIC0yNiwxMiArMjYsMTIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJDb250ZW50
SW5jbHVzaW9uU2VsZWN0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2Rl
UmFyZURhdGEuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5oIgotI2luY2x1ZGUg
IlNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBTaGFkb3dSb290OjpyZWNhbGNT
aGFkb3dUcmVlU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgIGNsZWFyQ2hpbGROZWVkc1N0
eWxlUmVjYWxjKCk7CiB9CiAKLVNoYWRvd0NvbnRlbnRFbGVtZW50KiBTaGFkb3dSb290OjppbmNs
dWRlckZvcihOb2RlKiBub2RlKSBjb25zdAorSFRNTENvbnRlbnRFbGVtZW50KiBTaGFkb3dSb290
OjppbmNsdWRlckZvcihOb2RlKiBub2RlKSBjb25zdAogewogICAgIGlmICghbV9pbmNsdXNpb25z
KQogICAgICAgICByZXR1cm4gMDsKQEAgLTE1NSwxNSArMTU1LDE1IEBAIHZvaWQgU2hhZG93Um9v
dDo6YXR0YWNoKCkKICAgICAgICAgbV9pbmNsdXNpb25zLT5kaWRTZWxlY3QoKTsKIH0KIAotU2hh
ZG93SW5jbHVzaW9uU2VsZWN0b3IqIFNoYWRvd1Jvb3Q6OmluY2x1c2lvbnMoKSBjb25zdAorQ29u
dGVudEluY2x1c2lvblNlbGVjdG9yKiBTaGFkb3dSb290OjppbmNsdXNpb25zKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9pbmNsdXNpb25zLmdldCgpOwogfQogCi1TaGFkb3dJbmNsdXNpb25TZWxl
Y3RvciogU2hhZG93Um9vdDo6ZW5zdXJlSW5jbHVzaW9ucygpCitDb250ZW50SW5jbHVzaW9uU2Vs
ZWN0b3IqIFNoYWRvd1Jvb3Q6OmVuc3VyZUluY2x1c2lvbnMoKQogewogICAgIGlmICghbV9pbmNs
dXNpb25zKQotICAgICAgICBtX2luY2x1c2lvbnMgPSBhZG9wdFB0cihuZXcgU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3IoKSk7CisgICAgICAgIG1faW5jbHVzaW9ucyA9IGFkb3B0UHRyKG5ldyBDb250
ZW50SW5jbHVzaW9uU2VsZWN0b3IoKSk7CiAgICAgbV9pbmNsdXNpb25zLT53aWxsU2VsZWN0T3Zl
cih0aGlzKTsKICAgICByZXR1cm4gbV9pbmNsdXNpb25zLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmgKaW5kZXggMzRkZGYzMzAxMTUyNGRhNzJkYmQ2ZmEyMjRkYjk0YmY0YWQ5MTJkMy4u
YzViYzBkYmNiNWQwY2RiOWE4MzQ1YmQ5YTFmOTIxN2UyMzAyYWMwOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5oCkBAIC0zMiw4ICszMiw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IERvY3VtZW50OwotY2xhc3MgU2hhZG93Q29udGVudEVsZW1lbnQ7Ci1jbGFzcyBTaGFkb3dJbmNs
dXNpb25TZWxlY3RvcjsKK2NsYXNzIEhUTUxDb250ZW50RWxlbWVudDsKK2NsYXNzIENvbnRlbnRJ
bmNsdXNpb25TZWxlY3RvcjsKIAogY2xhc3MgU2hhZG93Um9vdCA6IHB1YmxpYyBUcmVlU2NvcGUg
ewogcHVibGljOgpAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlY2FsY1No
YWRvd1RyZWVTdHlsZShTdHlsZUNoYW5nZSk7CiAKLSAgICBTaGFkb3dDb250ZW50RWxlbWVudCog
aW5jbHVkZXJGb3IoTm9kZSopIGNvbnN0OworICAgIEhUTUxDb250ZW50RWxlbWVudCogaW5jbHVk
ZXJGb3IoTm9kZSopIGNvbnN0OwogICAgIHZvaWQgaG9zdENoaWxkcmVuQ2hhbmdlZCgpOwogICAg
IGJvb2wgaXNJbmNsdXNpb25TZWxlY3RvckFjdGl2ZSgpIGNvbnN0OwogCkBAIC01MCw4ICs1MCw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JTaGVldHMoKSBjb25zdDsK
ICAgICB2b2lkIHNldEFwcGx5QXV0aG9yU2hlZXRzKGJvb2wpOwogCi0gICAgU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3IqIGluY2x1c2lvbnMoKSBjb25zdDsKLSAgICBTaGFkb3dJbmNsdXNpb25TZWxl
Y3RvciogZW5zdXJlSW5jbHVzaW9ucygpOworICAgIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvciog
aW5jbHVzaW9ucygpIGNvbnN0OworICAgIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvciogZW5zdXJl
SW5jbHVzaW9ucygpOwogCiBwcml2YXRlOgogICAgIFNoYWRvd1Jvb3QoRG9jdW1lbnQqKTsKQEAg
LTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc0NvbnRlbnRFbGVtZW50KCkgY29u
c3Q7CiAKICAgICBib29sIG1fYXBwbHlBdXRob3JTaGVldHM7Ci0gICAgT3duUHRyPFNoYWRvd0lu
Y2x1c2lvblNlbGVjdG9yPiBtX2luY2x1c2lvbnM7CisgICAgT3duUHRyPENvbnRlbnRJbmNsdXNp
b25TZWxlY3Rvcj4gbV9pbmNsdXNpb25zOwogfTsKIAogaW5saW5lIFBhc3NSZWZQdHI8U2hhZG93
Um9vdD4gU2hhZG93Um9vdDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCBhYWEwNWUxNDU3NGQ0MDc5ZmNl
MDhlMTU2NmNlMGJiZGQ2NGY3MzY1Li5kZGVjNzM4NzY2NDgwMDNlMmY5MWM3NzBkMWE4MTUyMDIz
MmI3ZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBA
IC0yMywxMiArMjMsMTIgQEAKIAogI2lmIEVOQUJMRShERVRBSUxTKQogCisjaW5jbHVkZSAiSFRN
TENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRN
TFN1bW1hcnlFbGVtZW50LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1
ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJEZXRhaWxzLmgiCi0jaW5jbHVkZSAi
U2hhZG93Q29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVk
ZSAiVGV4dC5oIgogCkBAIC00MiwxMyArNDIsMTMgQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYgc3VtbWFyeVF1ZXJ5U2VsZWN0b3IoKQogICAgIHJldHVybiBzZWxlY3RvcjsKIH07CiAKLWNs
YXNzIERldGFpbHNDb250ZW50RWxlbWVudCA6IHB1YmxpYyBTaGFkb3dDb250ZW50RWxlbWVudCB7
CitjbGFzcyBEZXRhaWxzQ29udGVudEVsZW1lbnQgOiBwdWJsaWMgSFRNTENvbnRlbnRFbGVtZW50
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZXRhaWxzQ29udGVudEVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCopOwogCiBwcml2YXRlOgogICAgIERldGFpbHNDb250ZW50RWxlbWVu
dChEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgICAgIDogU2hhZG93Q29udGVudEVsZW1lbnQoSFRN
TE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQorICAgICAgICA6IEhUTUxDb250ZW50RWxlbWVudChI
VE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCiAgICAgewogICAgIH0KIH07CkBAIC01OCwxMyAr
NTgsMTMgQEAgUGFzc1JlZlB0cjxEZXRhaWxzQ29udGVudEVsZW1lbnQ+IERldGFpbHNDb250ZW50
RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWUKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IERldGFpbHNDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogfQogCi1jbGFzcyBEZXRhaWxzU3Vt
bWFyeUVsZW1lbnQgOiBwdWJsaWMgU2hhZG93Q29udGVudEVsZW1lbnQgeworY2xhc3MgRGV0YWls
c1N1bW1hcnlFbGVtZW50IDogcHVibGljIEhUTUxDb250ZW50RWxlbWVudCB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RGV0YWlsc1N1bW1hcnlFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQqKTsKIAogcHJpdmF0ZToKICAgICBEZXRhaWxzU3VtbWFyeUVsZW1lbnQoRG9jdW1lbnQqIGRv
Y3VtZW50KQotICAgICAgICA6IFNoYWRvd0NvbnRlbnRFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFn
LCBkb2N1bWVudCkKKyAgICAgICAgOiBIVE1MQ29udGVudEVsZW1lbnQoSFRNTE5hbWVzOjpkaXZU
YWcsIGRvY3VtZW50KQogICAgIHsKICAgICAgICAgc2V0U2VsZWN0KHN1bW1hcnlRdWVyeVNlbGVj
dG9yKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnRzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9u
ZS5jcHAKaW5kZXggYjYyNGU2MjdiYTE3YzE5Mjc1NTc3NDI2ZTQ2ZmIzZmI2MTEzOWRjYi4uMjc0
YTE4NmYxNjE4OWZhNDFlZWEwMzY1NjE2MzkyZTAyMTEwYjkwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudHNBbGxJbk9uZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJIVE1MQm9keUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxCdXR0b25FbGVtZW50LmNw
cCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5jcHAiCisjaW5jbHVkZSAiSFRNTENvbnRl
bnRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCIKICNpbmNs
dWRlICJIVE1MRGV0YWlsc0VsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkhUTUxETGlzdEVsZW1lbnQu
Y3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IGVj
ZjEwODVjZTMwZmUwZjNiOTNlMWNkZTI1ZWI1NDRmYTdkYjRmNGIuLjk5MjU2MjdmZTVjZTNhYTRh
OTliMjMzMDE1MjgwYzBjNzQzNjg1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFN1bW1hcnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1t
YXJ5RWxlbWVudC5jcHAKQEAgLTI0LDEyICsyNCwxMiBAQAogI2lmIEVOQUJMRShERVRBSUxTKQog
CiAjaW5jbHVkZSAiRGV0YWlsc01hcmtlckNvbnRyb2wuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVu
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRGV0YWlsc0VsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1N
b3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3VtbWFyeS5oIgotI2luY2x1ZGUgIlNoYWRv
d0NvbnRlbnRFbGVtZW50LmgiCiAKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAKQEAgLTM3LDEz
ICszNywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLWNsYXNzIFN1bW1hcnlDb250ZW50RWxlbWVudCA6IHB1YmxpYyBTaGFkb3dDb250ZW50
RWxlbWVudCB7CitjbGFzcyBTdW1tYXJ5Q29udGVudEVsZW1lbnQgOiBwdWJsaWMgSFRNTENvbnRl
bnRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdW1tYXJ5Q29udGVu
dEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCiBwcml2YXRlOgogICAgIFN1bW1hcnlDb250
ZW50RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgICAgIDogU2hhZG93Q29udGVudEVs
ZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQorICAgICAgICA6IEhUTUxDb250ZW50
RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCiAgICAgewogICAgIH0KIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50SW5jbHVzaW9uU2Vs
ZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNl
bGVjdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjU0MWE1YWU4OTg3NTk4ZWI5YTkxMzI3NGE1YzRjNmFj
ZjgwZGM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29u
dGVudEluY2x1c2lvblNlbGVjdG9yLmNwcApAQCAtMCwwICsxLDE1NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCIKKworI2luY2x1
ZGUgIkNvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50
LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dm9pZCBTaGFkb3dJbmNsdXNpb246OmFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4g
bmV4dCkKK3sKKyAgICBBU1NFUlQoIW1fbmV4dCk7CisgICAgQVNTRVJUKCFuZXh0LT5wcmV2aW91
cygpKTsKKyAgICBtX25leHQgPSBuZXh0OworICAgIG1fbmV4dC0+bV9wcmV2aW91cyA9IHRoaXM7
Cit9CisKK3ZvaWQgU2hhZG93SW5jbHVzaW9uOjp1bmxpbmsoKQoreworICAgIEFTU0VSVCghbV9w
cmV2aW91cyk7IC8vIENhbiBiZSBjYWxsZWQgb25seSBmb3IgYSBoZWFkLgorICAgIFJlZlB0cjxT
aGFkb3dJbmNsdXNpb24+IGl0ZW0gPSB0aGlzOworICAgIHdoaWxlIChpdGVtKSB7CisgICAgICAg
IEFTU0VSVCghaXRlbS0+cHJldmlvdXMoKSk7CisgICAgICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNp
b24+IG5leHRJdGVtID0gaXRlbS0+bV9uZXh0OworICAgICAgICBpdGVtLT5tX25leHQuY2xlYXIo
KTsKKyAgICAgICAgaWYgKG5leHRJdGVtKQorICAgICAgICAgICAgbmV4dEl0ZW0tPm1fcHJldmlv
dXMuY2xlYXIoKTsKKyAgICAgICAgaXRlbSA9IG5leHRJdGVtOworICAgIH0KK30KKworU2hhZG93
SW5jbHVzaW9uTGlzdDo6U2hhZG93SW5jbHVzaW9uTGlzdCgpCit7Cit9CisKK1NoYWRvd0luY2x1
c2lvbkxpc3Q6On5TaGFkb3dJbmNsdXNpb25MaXN0KCkKK3sKKyAgICBBU1NFUlQoaXNFbXB0eSgp
KTsKK30KKworU2hhZG93SW5jbHVzaW9uKiBTaGFkb3dJbmNsdXNpb25MaXN0OjpmaW5kKE5vZGUq
IGNvbnRlbnQpIGNvbnN0Cit7CisgICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGl0ZW0gPSBmaXJz
dCgpOyBpdGVtOyBpdGVtID0gaXRlbS0+bmV4dCgpKSB7CisgICAgICAgIGlmIChjb250ZW50ID09
IGl0ZW0tPmNvbnRlbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBpdGVtOworICAgIH0KKyAgICAK
KyAgICByZXR1cm4gMDsKK30KKwordm9pZCBTaGFkb3dJbmNsdXNpb25MaXN0OjpjbGVhcigpCit7
CisgICAgaWYgKGlzRW1wdHkoKSkgeworICAgICAgICBBU1NFUlQoIW1fbGFzdCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX2ZpcnN0LT51bmxpbmsoKTsKKyAgICBtX2ZpcnN0LmNs
ZWFyKCk7CisgICAgbV9sYXN0LmNsZWFyKCk7Cit9CisKK3ZvaWQgU2hhZG93SW5jbHVzaW9uTGlz
dDo6YXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBjaGlsZCkKK3sKKyAgICBpZiAo
aXNFbXB0eSgpKSB7CisgICAgICAgIEFTU0VSVCghbV9sYXN0KTsKKyAgICAgICAgbV9maXJzdCA9
IG1fbGFzdCA9IGNoaWxkOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9sYXN0LT5h
cHBlbmQoY2hpbGQpOworICAgIG1fbGFzdCA9IG1fbGFzdC0+bmV4dCgpOworfQorCitDb250ZW50
SW5jbHVzaW9uU2VsZWN0b3I6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3RvcigpCit7Cit9CisKK0Nv
bnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6fkNvbnRlbnRJbmNsdXNpb25TZWxlY3RvcigpCit7Cisg
ICAgQVNTRVJUKG1fY2FuZGlkYXRlcy5pc0VtcHR5KCkpOworfQorCit2b2lkIENvbnRlbnRJbmNs
dXNpb25TZWxlY3Rvcjo6c2VsZWN0KEhUTUxDb250ZW50RWxlbWVudCogY29udGVudEVsZW1lbnQs
IFNoYWRvd0luY2x1c2lvbkxpc3QqIGluY2x1c2lvbnMpCit7CisgICAgQVNTRVJUKGluY2x1c2lv
bnMtPmlzRW1wdHkoKSk7CisKKyAgICBDb250ZW50U2VsZWN0b3JRdWVyeSBxdWVyeShjb250ZW50
RWxlbWVudCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2NhbmRpZGF0ZXMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgTm9kZSogY2hpbGQgPSBtX2NhbmRpZGF0ZXNbaV0uZ2V0KCk7Cisg
ICAgICAgIGlmICghY2hpbGQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKCFx
dWVyeS5tYXRjaGVzKGNoaWxkKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIFJl
ZlB0cjxTaGFkb3dJbmNsdXNpb24+IGluY2x1c2lvbiA9IFNoYWRvd0luY2x1c2lvbjo6Y3JlYXRl
KGNvbnRlbnRFbGVtZW50LCBjaGlsZCk7CisgICAgICAgIGluY2x1c2lvbnMtPmFwcGVuZChpbmNs
dXNpb24pOworICAgICAgICBtX2luY2x1c2lvblNldC5hZGQoaW5jbHVzaW9uLmdldCgpKTsKKyAg
ICAgICAgbV9jYW5kaWRhdGVzW2ldID0gMDsKKyAgICB9Cit9CisKK3ZvaWQgQ29udGVudEluY2x1
c2lvblNlbGVjdG9yOjp1bnNlbGVjdChTaGFkb3dJbmNsdXNpb25MaXN0KiBsaXN0KQoreworICAg
IGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBsaXN0LT5maXJzdCgpOyBpbmNsdXNp
b247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQorICAgICAgICBtX2luY2x1c2lvblNl
dC5yZW1vdmUoaW5jbHVzaW9uKTsKKyAgICBsaXN0LT5jbGVhcigpOworfQorCitTaGFkb3dJbmNs
dXNpb24qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6ZmluZEZvcihOb2RlKiBrZXkpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1faW5jbHVzaW9uU2V0LmZpbmQoa2V5KTsKK30KKwordm9pZCBDb250
ZW50SW5jbHVzaW9uU2VsZWN0b3I6OmRpZFNlbGVjdCgpCit7CisgICAgbV9jYW5kaWRhdGVzLmNs
ZWFyKCk7Cit9CisKK3ZvaWQgQ29udGVudEluY2x1c2lvblNlbGVjdG9yOjp3aWxsU2VsZWN0T3Zl
cihTaGFkb3dSb290KiBzY29wZSkKK3sKKyAgICBpZiAoIW1fY2FuZGlkYXRlcy5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybjsKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSBzY29wZS0+c2hhZG93SG9z
dCgpLT5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKQorICAg
ICAgICBtX2NhbmRpZGF0ZXMuYXBwZW5kKG5vZGUpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBmMGIxOTc4ZWJjNzkxYmM0NjNjMjMwNGE5OTdmNTUxNTQxYjYyNjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50SW5jbHVzaW9uU2VsZWN0
b3IuaApAQCAtMCwwICsxLDE1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGVudEluY2x1c2lvblNlbGVjdG9yX2gK
KyNkZWZpbmUgQ29udGVudEluY2x1c2lvblNlbGVjdG9yX2gKKworI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBFbGVtZW50OworY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OworY2xhc3MgTm9kZTsKK2Ns
YXNzIFNoYWRvd1Jvb3Q7CisKK2NsYXNzIFNoYWRvd0luY2x1c2lvbiA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFNoYWRvd0luY2x1c2lvbj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNo
YWRvd0luY2x1c2lvbj4gY3JlYXRlKEhUTUxDb250ZW50RWxlbWVudCosIE5vZGUqKTsKKworICAg
IEhUTUxDb250ZW50RWxlbWVudCogaW5jbHVkZXIoKSBjb25zdCB7IHJldHVybiBtX2luY2x1ZGVy
OyB9CisgICAgTm9kZSogY29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudC5nZXQoKTsg
fQorICAgIFNoYWRvd0luY2x1c2lvbiogbmV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dC5nZXQo
KTsgfQorICAgIFNoYWRvd0luY2x1c2lvbiogcHJldmlvdXMoKSBjb25zdCB7IHJldHVybiBtX3By
ZXZpb3VzLmdldCgpOyB9CisKKyAgICB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1
c2lvbj4pOworICAgIHZvaWQgdW5saW5rKCk7CisKK3ByaXZhdGU6CisgICAgU2hhZG93SW5jbHVz
aW9uKEhUTUxDb250ZW50RWxlbWVudCosIE5vZGUqKTsKKworICAgIEhUTUxDb250ZW50RWxlbWVu
dCogbV9pbmNsdWRlcjsKKyAgICBSZWZQdHI8Tm9kZT4gbV9jb250ZW50OworICAgIFJlZlB0cjxT
aGFkb3dJbmNsdXNpb24+IG1fbmV4dDsKKyAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBtX3By
ZXZpb3VzOworfTsKKworaW5saW5lIFNoYWRvd0luY2x1c2lvbjo6U2hhZG93SW5jbHVzaW9uKEhU
TUxDb250ZW50RWxlbWVudCogaW5jbHVkZXIsIE5vZGUqIGNvbnRlbnQpCisgICAgOiBtX2luY2x1
ZGVyKGluY2x1ZGVyKSwgbV9jb250ZW50KGNvbnRlbnQpCit7IH0KKworaW5saW5lIFBhc3NSZWZQ
dHI8U2hhZG93SW5jbHVzaW9uPiBTaGFkb3dJbmNsdXNpb246OmNyZWF0ZShIVE1MQ29udGVudEVs
ZW1lbnQqIGluY2x1ZGVyLCBOb2RlKiBjb250ZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU2hhZG93SW5jbHVzaW9uKGluY2x1ZGVyLCBjb250ZW50KSk7Cit9CisKK2NsYXNzIFNoYWRv
d0luY2x1c2lvbkxpc3QgeworcHVibGljOgorICAgIFNoYWRvd0luY2x1c2lvbkxpc3QoKTsKKyAg
ICB+U2hhZG93SW5jbHVzaW9uTGlzdCgpOworCisgICAgU2hhZG93SW5jbHVzaW9uKiBmaXJzdCgp
IGNvbnN0IHsgcmV0dXJuIG1fZmlyc3QuZ2V0KCk7IH0KKyAgICBTaGFkb3dJbmNsdXNpb24qIGxh
c3QoKSBjb25zdCB7IHJldHVybiBtX2xhc3QuZ2V0KCk7IH0KKyAgICBTaGFkb3dJbmNsdXNpb24q
IGZpbmQoTm9kZSopIGNvbnN0OworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFt
X2ZpcnN0OyB9CisKKyAgICB2b2lkIGNsZWFyKCk7CisgICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0
cjxTaGFkb3dJbmNsdXNpb24+KTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8U2hhZG93SW5jbHVz
aW9uPiBtX2ZpcnN0OworICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG1fbGFzdDsKK307CisK
KworY2xhc3MgU2hhZG93SW5jbHVzaW9uU2V0IHsKK3B1YmxpYzoKKyAgICB2b2lkIGFkZChTaGFk
b3dJbmNsdXNpb24qIHZhbHVlKSB7IG1fc2V0LmFkZCh2YWx1ZSk7IH0KKyAgICB2b2lkIHJlbW92
ZShTaGFkb3dJbmNsdXNpb24qIHZhbHVlKSB7IG1fc2V0LnJlbW92ZSh2YWx1ZSk7IH0KKyAgICBi
b29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3NldC5pc0VtcHR5KCk7IH0KKyAgICBTaGFk
b3dJbmNsdXNpb24qIGZpbmQoTm9kZSoga2V5KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBzdHJ1
Y3QgVHJhbnNsYXRvciB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aChjb25zdCBOb2RlKiBrZXkpIHsgcmV0dXJuIFB0ckhhc2g8Y29uc3QgTm9kZSo+OjpoYXNoKGtl
eSk7IH0KKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU2hhZG93SW5jbHVzaW9uKiBp
bmNsdXNpb24sIGNvbnN0IE5vZGUqIGNvbnRlbnQpIHsgcmV0dXJuIGluY2x1c2lvbi0+Y29udGVu
dCgpID09IGNvbnRlbnQ7IH0KKyAgICB9OworCisgICAgc3RydWN0IEhhc2ggeworICAgICAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChTaGFkb3dJbmNsdXNpb24qIGtleSkgeyByZXR1cm4gUHRySGFz
aDxjb25zdCBOb2RlKj46Omhhc2goa2V5LT5jb250ZW50KCkpOyB9CisgICAgICAgIHN0YXRpYyBi
b29sIGVxdWFsKFNoYWRvd0luY2x1c2lvbiogYSwgU2hhZG93SW5jbHVzaW9uKiBiKSB7IHJldHVy
biBhLT5jb250ZW50KCkgPT0gYi0+Y29udGVudCgpOyB9CisgICAgICAgIHN0YXRpYyBjb25zdCBi
b29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgfTsKKworICAg
IHR5cGVkZWYgSGFzaFNldDxTaGFkb3dJbmNsdXNpb24qLCBIYXNoPiBQb2ludGVyU2V0OworCisg
ICAgUG9pbnRlclNldCBtX3NldDsKK307CisKK2lubGluZSBTaGFkb3dJbmNsdXNpb24qIFNoYWRv
d0luY2x1c2lvblNldDo6ZmluZChOb2RlKiBrZXkpIGNvbnN0Cit7CisgICAgUG9pbnRlclNldDo6
aXRlcmF0b3IgZm91bmQgPSBtX3NldC5maW5kPE5vZGUqLCBTaGFkb3dJbmNsdXNpb25TZXQ6OlRy
YW5zbGF0b3I+KGtleSk7CisgICAgcmV0dXJuIGZvdW5kICE9IG1fc2V0LmVuZCgpID8gKmZvdW5k
IDogMDsKK30KKworY2xhc3MgQ29udGVudEluY2x1c2lvblNlbGVjdG9yIHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IpOworcHVibGljOgorICAgIENv
bnRlbnRJbmNsdXNpb25TZWxlY3RvcigpOworICAgIH5Db250ZW50SW5jbHVzaW9uU2VsZWN0b3Io
KTsKKworICAgIHZvaWQgc2VsZWN0KEhUTUxDb250ZW50RWxlbWVudCosIFNoYWRvd0luY2x1c2lv
bkxpc3QqKTsKKyAgICB2b2lkIHVuc2VsZWN0KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKKyAgICBT
aGFkb3dJbmNsdXNpb24qIGZpbmRGb3IoTm9kZSoga2V5KSBjb25zdDsKKworICAgIHZvaWQgd2ls
bFNlbGVjdE92ZXIoU2hhZG93Um9vdCopOworICAgIHZvaWQgZGlkU2VsZWN0KCk7CisgICAgYm9v
bCBoYXNDYW5kaWRhdGVzKCkgY29uc3QgeyByZXR1cm4gIW1fY2FuZGlkYXRlcy5pc0VtcHR5KCk7
IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHJlbW92ZUZyb21TZXQoU2hhZG93SW5jbHVzaW9uTGlz
dCopOworICAgIHZvaWQgYWRkVG9TZXQoU2hhZG93SW5jbHVzaW9uTGlzdCopOworCisgICAgVmVj
dG9yPFJlZlB0cjxOb2RlPiA+IG1fY2FuZGlkYXRlczsKKyAgICBTaGFkb3dJbmNsdXNpb25TZXQg
bV9pbmNsdXNpb25TZXQ7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiZjhl
NTE3MTA3ZDk4ZjU1ZmQwM2EyMzkzZTU5MDhiYmE3ZTRmOWEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAKQEAgLTAs
MCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb250ZW50U2VsZWN0
b3JRdWVyeS5oIgorCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ1NTU2VsZWN0
b3JMaXN0LmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworQ29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5KEhU
TUxDb250ZW50RWxlbWVudCogZWxlbWVudCkKKyAgICA6IG1fY29udGVudEVsZW1lbnQoZWxlbWVu
dCkKKyAgICAsIG1fc2VsZWN0b3JDaGVja2VyKGVsZW1lbnQtPmRvY3VtZW50KCksICFlbGVtZW50
LT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKK3sKKyAgICBtX3NlbGVjdG9yQ2hlY2tlci5z
ZXRDb2xsZWN0aW5nUnVsZXNPbmx5KHRydWUpOworCisgICAgaWYgKGVsZW1lbnQtPnNlbGVjdCgp
LmlzTnVsbCgpIHx8IGVsZW1lbnQtPnNlbGVjdCgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgQ1NTUGFyc2VyIHBhcnNlcih0cnVlKTsKKyAgICBwYXJzZXIucGFyc2VTZWxlY3Rv
cihlbGVtZW50LT5zZWxlY3QoKSwgZWxlbWVudC0+ZG9jdW1lbnQoKSwgbV9zZWxlY3Rvckxpc3Qp
OworCisgICAgbV9zZWxlY3RvcnMuaW5pdGlhbGl6ZShtX3NlbGVjdG9yTGlzdCk7Cit9CisKK2Jv
b2wgQ29udGVudFNlbGVjdG9yUXVlcnk6Om1hdGNoZXMoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAg
ICBBU1NFUlQobm9kZSk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBBU1NFUlQobm9kZS0+cGFyZW50Tm9kZSgpID09IG1fY29udGVudEVsZW1lbnQtPnNoYWRv
d1RyZWVSb290Tm9kZSgpLT5zaGFkb3dIb3N0KCkpOworCisgICAgaWYgKG1fY29udGVudEVsZW1l
bnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IG1fY29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5v
ZGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1fc2VsZWN0b3JzLm1h
dGNoZXMobV9zZWxlY3RvckNoZWNrZXIsIHRvRWxlbWVudChub2RlKSk7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJkYWZiOTkzYmFjZjljNzBkYTM4MGYzMzY3ZWZhNjhkMWI4OTVmMTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVy
eS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRlbnRTZWxlY3RvclF1ZXJ5X2gKKyNkZWZp
bmUgQ29udGVudFNlbGVjdG9yUXVlcnlfaAorCisjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0Lmgi
CisjaW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCisjaW5jbHVkZSAiU2VsZWN0b3JRdWVyeS5o
IgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgTm9kZTsKK2NsYXNz
IEhUTUxDb250ZW50RWxlbWVudDsKKworY2xhc3MgQ29udGVudFNlbGVjdG9yUXVlcnkgeworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRlbnRTZWxlY3RvclF1ZXJ5KTsKK3B1YmxpYzoKKyAg
ICBleHBsaWNpdCBDb250ZW50U2VsZWN0b3JRdWVyeShIVE1MQ29udGVudEVsZW1lbnQqKTsKKwor
ICAgIGJvb2wgbWF0Y2hlcyhOb2RlKikgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgSFRNTENvbnRl
bnRFbGVtZW50KiBtX2NvbnRlbnRFbGVtZW50OworICAgIFNlbGVjdG9yRGF0YUxpc3QgbV9zZWxl
Y3RvcnM7CisgICAgQ1NTU2VsZWN0b3JMaXN0IG1fc2VsZWN0b3JMaXN0OworICAgIFNlbGVjdG9y
Q2hlY2tlciBtX3NlbGVjdG9yQ2hlY2tlcjsKK307CisKK30KKworCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWMxNGZlY2U5YWJjMzkzMmMyZjVjMTUwNmQyZWRhMDE5OWYyZjk1NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5j
cHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1M
Q29udGVudEVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5o
IgorI2luY2x1ZGUgIkNvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCisjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
KyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dXNpbmcgSFRNTE5hbWVzOjpzZWxlY3RBdHRyOworCitQYXNzUmVmUHRyPEhUTUxDb250ZW50RWxl
bWVudD4gSFRNTENvbnRlbnRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorewor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgdGFnTmFtZSwgKG51bGxBdG9t
LCAid2Via2l0U2hhZG93Q29udGVudCIsIEhUTUxOYW1lczo6ZGl2VGFnLm5hbWVzcGFjZVVSSSgp
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQ29udGVudEVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKK30KKworSFRNTENvbnRlbnRFbGVtZW50OjpIVE1MQ29udGVudEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogSFRN
TEVsZW1lbnQobmFtZSwgZG9jdW1lbnQpCisgICAgLCBtX2luY2x1c2lvbnMoYWRvcHRQdHIobmV3
IFNoYWRvd0luY2x1c2lvbkxpc3QoKSkpCit7Cit9CisKK0hUTUxDb250ZW50RWxlbWVudDo6fkhU
TUxDb250ZW50RWxlbWVudCgpCit7Cit9CisKK3ZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjphdHRh
Y2goKQoreworICAgIEFTU0VSVCghZmlyc3RDaGlsZCgpKTsgLy8gQ3VycmVudGx5IGRvZXNuJ3Qg
c3VwcG9ydCBhbnkgbGlnaHQgY2hpbGQuCisgICAgSFRNTEVsZW1lbnQ6OmF0dGFjaCgpOworCisg
ICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1NoYWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2Rl
KCkpKSB7CisgICAgICAgIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvciogc2VsZWN0b3IgPSByb290
LT5lbnN1cmVJbmNsdXNpb25zKCk7CisgICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdChtX2luY2x1
c2lvbnMuZ2V0KCkpOworICAgICAgICBzZWxlY3Rvci0+c2VsZWN0KHRoaXMsIG1faW5jbHVzaW9u
cy5nZXQoKSk7CisgICAgICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBtX2lu
Y2x1c2lvbnMtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0
KCkpCisgICAgICAgICAgICBpbmNsdXNpb24tPmNvbnRlbnQoKS0+ZGV0YWNoKCk7CisgICAgICAg
IGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBtX2luY2x1c2lvbnMtPmZpcnN0KCk7
IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0KCkpCisgICAgICAgICAgICBp
bmNsdXNpb24tPmNvbnRlbnQoKS0+YXR0YWNoKCk7CisgICAgfQorfQorCit2b2lkIEhUTUxDb250
ZW50RWxlbWVudDo6ZGV0YWNoKCkKK3sKKyAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRvU2hh
ZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkpIHsKKyAgICAgICAgaWYgKENvbnRlbnRJbmNs
dXNpb25TZWxlY3Rvciogc2VsZWN0b3IgPSByb290LT5pbmNsdXNpb25zKCkpCisgICAgICAgICAg
ICBzZWxlY3Rvci0+dW5zZWxlY3QobV9pbmNsdXNpb25zLmdldCgpKTsKKyAgICB9CisKKyAgICBB
U1NFUlQobV9pbmNsdXNpb25zLT5pc0VtcHR5KCkpOworICAgIEhUTUxFbGVtZW50OjpkZXRhY2go
KTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVjdCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzZWxlY3RBdHRyKTsKK30KKwordm9p
ZCBIVE1MQ29udGVudEVsZW1lbnQ6OnNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVj
dFZhbHVlKQoreworICAgIHNldEF0dHJpYnV0ZShzZWxlY3RBdHRyLCBzZWxlY3RWYWx1ZSk7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzM3NzcyYmQ1OGFiZTcyZjM5ZDg2NzRlYWE0OGI1ZmYxMDcwNjhhOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50
RWxlbWVudC5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEhUTUxDb250ZW50RWxlbWVudF9oCisj
ZGVmaW5lIEhUTUxDb250ZW50RWxlbWVudF9oCisKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
Q29udGVudFNlbGVjdG9yUXVlcnk7CitjbGFzcyBTaGFkb3dJbmNsdXNpb25MaXN0OworCisvLyBO
T1RFOiBDdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBkeW5hbWljIGluc2Vy
dGlvbi9kZWxldGlvbiBvZiBIVE1MQ29udGVudEVsZW1lbnQuCisvLyBZb3Ugc2hvdWxkIGNyZWF0
ZSBIVE1MQ29udGVudEVsZW1lbnQgZHVyaW5nIHRoZSBob3N0IGNvbnN0cnVjdGlvbi4KK2NsYXNz
IEhUTUxDb250ZW50RWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CitwdWJsaWM6CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8SFRNTENvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsK
KworICAgIHZpcnR1YWwgfkhUTUxDb250ZW50RWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2goKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CisKKyAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHNlbGVjdCgpIGNvbnN0OworCisgICAgLy8gRklYTUU6IEN1cnJlbnRseSB0aGlzIGNv
bnN0cnVjdG9yIGFjY2VwdHMgd2lkZXIgcXVlcnkgdGhhbiBzaGFkb3cgZG9tIHNwZWMuCisgICAg
Ly8gRm9yIGV4YW1wbGUsIGEgc2VsZWN0b3IgcXVlcnkgc2hvdWxkIG5vdCBpbmNsdWRlIGNvbnRl
eHR1YWwgc2VsZWN0b3JzLgorICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzU5NDYKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGRvbid0IHN1cHBv
cnQgc2V0dGluZyBzZWxlY3QgdmFsdWUgZHluYW1pY2FsbHkuCisgICAgLy8gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI2MQorICAgIHZvaWQgc2V0U2VsZWN0
KGNvbnN0IEF0b21pY1N0cmluZyYpOworCisgICAgY29uc3QgU2hhZG93SW5jbHVzaW9uTGlzdCog
aW5jbHVzaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5jbHVzaW9ucy5nZXQoKTsgfQorCitwcm90
ZWN0ZWQ6CisgICAgSFRNTENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRlbnRFbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHls
ZSopIHsgcmV0dXJuIDA7IH0KKworICAgIE93blB0cjxTaGFkb3dJbmNsdXNpb25MaXN0PiBtX2lu
Y2x1c2lvbnM7Cit9OworCitpbmxpbmUgSFRNTENvbnRlbnRFbGVtZW50KiB0b0hUTUxDb250ZW50
RWxlbWVudChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVCghbm9kZSB8fCBub2RlLT5pc0NvbnRl
bnRFbGVtZW50KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MQ29udGVudEVsZW1lbnQq
Pihub2RlKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCA3ODNjMzgwNTY5M2FlYzYzZDRkOTg1YmQ3OGMzODRmZDQ0ODRjNGVjLi4yNDg5Njdi
MzNhZjlmZTlhOGU2MmJmN2VmZmNhMzExMzRjNDU2ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAi
SFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKQEAg
LTQ2LDcgKzQ3LDYgQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5k
ZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJTaGFkb3dD
b250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTcGVs
bENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKQEAgLTEyNiwxNCArMTI2LDE0
IEBAIGJvb2wgSW50ZXJuYWxzOjppc1ByZWxvYWRlZChEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgdXJsKQogICAgIHJldHVybiBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+aXNQcmVsb2FkZWQodXJsKTsKIH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBJbnRlcm5hbHM6
OmNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9u
Q29kZSYgZWMpCitQYXNzUmVmUHRyPEVsZW1lbnQ+IEludGVybmFsczo6Y3JlYXRlQ29udGVudEVs
ZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAo
IWRvY3VtZW50KSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1cm4gU2hhZG93Q29udGVudEVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CisgICAgcmV0dXJuIEhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKIH0KIAogRWxlbWVudCogSW50ZXJuYWxzOjpnZXRFbGVtZW50QnlJZEluU2hhZG93Um9v
dChOb2RlKiBzaGFkb3dSb290LCBjb25zdCBTdHJpbmcmIGlkLCBFeGNlcHRpb25Db2RlJiBlYykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGVkNDczNzA1NWI5OTM4M2RhOWIyODAy
MWFmM2Y2OTU5YzYxZDM1ZjcuLjg5OWQ3ZGJiMTYxZjMxMmY1NjU0ZWUyY2RhNzRjOWQ3ZDQxODkw
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZW1vdmVTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICBFbGVtZW50KiBpbmNsdWRlckZvcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIFN0cmluZyBzaGFkb3dQc2V1ZG9JZChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwotICAg
IFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoRG9jdW1lbnQq
LCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVDb250ZW50
RWxlbWVudChEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBFbGVtZW50KiBnZXRFbGVt
ZW50QnlJZEluU2hhZG93Um9vdChOb2RlKiBzaGFkb3dSb290LCBjb25zdCBTdHJpbmcmIGlkLCBF
eGNlcHRpb25Db2RlJik7CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggZjU2ZDFhZjc0YThlMzVkZDQ3YmQ0ZTZjNDlmMTI1ZTdl
YWFjM2E1NS4uOGYxNmIzMmM4NTZhYzJmMWY2Zjg1ODZjOTQxYmI1M2Q3Yjc2MjRmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMzUsNyArMzUsNyBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgRWxlbWVudCBpbmNsdWRlckZvcihpbiBOb2RlIG5vZGUpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCByZW1vdmVTaGFkb3dSb290KGluIEVsZW1lbnQg
aG9zdCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBET01TdHJpbmcgc2hhZG93UHNl
dWRvSWQoaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAg
IEVsZW1lbnQgY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQp
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBFbGVtZW50IGNyZWF0ZUNvbnRlbnRFbGVt
ZW50KGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
RWxlbWVudCBnZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChpbiBOb2RlIHNoYWRvd1Jvb3QsIGlu
IERPTVN0cmluZyBpZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICNpZiBkZWZpbmVkKEVOQUJM
RV9JTlBVVF9DT0xPUikgJiYgRU5BQkxFX0lOUFVUX0NPTE9SCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYK
aW5kZXggMWFhODQ4MTY3YmVkYzg1NjQ4ZWM0ZjRhN2U3ZmJhMWI0MjI4MmNmYi4uNWNmYTc0NGQ5
NjU0MTdlZDg2OWMxMmU2Y2M2MzFiNTNjZWEyM2E1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpA
QCAtMTQ5LDggKzE0OSw4IEBAIEVYUE9SVFMKICAgICAgICAgP2FkZEBBdG9taWNTdHJpbmdAV1RG
QEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEAyQFBCRUBaCiAgICAgICAgID9h
ZGRTbG93Q2FzZUBBdG9taWNTdHJpbmdAV1RGQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1w
bEBXVEZAQEAyQFBBVlN0cmluZ0ltcGxAMkBAWgogICAgICAgICA/Y2FjaGVET01TdHJ1Y3R1cmVA
V2ViQ29yZUBAWUFQQVZTdHJ1Y3R1cmVASlNDQEBQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVjIz
QFBCVUNsYXNzSW5mb0AzQEBaCisgICAgICAgID9jcmVhdGVASFRNTENvbnRlbnRFbGVtZW50QFdl
YkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZIVE1MQ29udGVudEVsZW1lbnRAV2ViQ29yZUBAQFdU
RkBAUEFWRG9jdW1lbnRAMkBAWgogICAgICAgICA/Y3JlYXRlQFJhbmdlQFdlYkNvcmVAQFNBP0FW
PyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBWPyRQYXNzUmVmUHRyQFZEb2N1bWVu
dEBXZWJDb3JlQEBANEBWPyRQYXNzUmVmUHRyQFZOb2RlQFdlYkNvcmVAQEA0QEgxSEBaCi0gICAg
ICAgID9jcmVhdGVAU2hhZG93Q29udGVudEVsZW1lbnRAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQ
dHJAVlNoYWRvd0NvbnRlbnRFbGVtZW50QFdlYkNvcmVAQEBXVEZAQFBBVkRvY3VtZW50QDJAQFoK
ICAgICAgICAgP2NyZWF0ZVdyYXBwZXJAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhl
Y1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZOb2RlQDFAQFoKICAgICAgICAgP2Vu
c3VyZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQUVQQVZTaGFkb3dSb290QDJAWFoKICAg
ICAgICAgP2VxdWFsQFdURkBAWUFfTlBCVlN0cmluZ0ltcGxAMUBQQkVAWgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDZiNjQ0OGRiMTYxYWViNjcxODkwNmQ2MmY3NzBiOWE3
ZTRhOGVjMGQuLjQxNmQ3MzJjNzEwNDI2ZGM3OTY4NDU5MzJkY2RlZWI0OGNkOThmODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE0Miw4ICsxNDIsOCBAQCBFWFBPUlRT
CiAgICAgICAgID9hZGRAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmlu
Z0ltcGxAV1RGQEBAMkBQQkVAWgogICAgICAgICA/YWRkU2xvd0Nhc2VAQXRvbWljU3RyaW5nQFdU
RkBAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAMkBQQVZTdHJpbmdJbXBsQDJA
QFoKICAgICAgICAgP2NhY2hlRE9NU3RydWN0dXJlQFdlYkNvcmVAQFlBUEFWU3RydWN0dXJlQEpT
Q0BAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVYyM0BQQlVDbGFzc0luZm9AM0BAWgorICAgICAg
ICA/Y3JlYXRlQEhUTUxDb250ZW50RWxlbWVudEBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBW
SFRNTENvbnRlbnRFbGVtZW50QFdlYkNvcmVAQEBXVEZAQFBBVkRvY3VtZW50QDJAQFoKICAgICAg
ICAgP2NyZWF0ZUBSYW5nZUBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29y
ZUBAQFdURkBAVj8kUGFzc1JlZlB0ckBWRG9jdW1lbnRAV2ViQ29yZUBAQDRAVj8kUGFzc1JlZlB0
ckBWTm9kZUBXZWJDb3JlQEBANEBIMUhAWgotICAgICAgICA/Y3JlYXRlQFNoYWRvd0NvbnRlbnRF
bGVtZW50QFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZTaGFkb3dDb250ZW50RWxlbWVudEBX
ZWJDb3JlQEBAV1RGQEBQQVZEb2N1bWVudEAyQEBaCiAgICAgICAgID9jcmVhdGVXcmFwcGVyQFdl
YkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2Jq
ZWN0QDFAUEFWTm9kZUAxQEBaCiAgICAgICAgID9lbnN1cmVTaGFkb3dSb290QEVsZW1lbnRAV2Vi
Q29yZUBAUUFFUEFWU2hhZG93Um9vdEAyQFhaCiAgICAgICAgID9lcXVhbEBXVEZAQFlBX05QQlZT
dHJpbmdJbXBsQDFAUEJFQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5m
aWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDE1YjY5NTdhOWUy
NDIzMTkwYmFjMWRkMjFjZmIxNjczZmQ3MzE4ZGEuLmUyMTMxMGRlZTY4ZjNjZTk1MzI0MmYyZDRh
ODM0YzcyODM0N2E4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNTAsMTAgKzUwLDEw
IEBAIF9aTjdXZWJDb3JlMTVzZXRET01FeGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVpOwogX1pO
N1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQxN3NldFN1Z2dlc3RlZFZhbHVlRVJLTjNXVEY2U3Ry
aW5nRTsKIF9aTjdXZWJDb3JlMTZqc1N0cmluZ1Nsb3dDYXNlRVBOM0pTQzlFeGVjU3RhdGVFUk4z
V1RGN0hhc2hNYXBJUE5TM18xMFN0cmluZ0ltcGxFTlMwXzRXZWFrSU5TMF84SlNTdHJpbmdFRUVO
UzNfMTBTdHJpbmdIYXNoRU5TM18xMEhhc2hUcmFpdHNJUzZfRUVOU0JfSVM5X0VFRUVTNl87CiBf
Wk43V2ViQ29yZTE3Y2FjaGVET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE4z
SlNDOVN0cnVjdHVyZUVQS05TMl85Q2xhc3NJbmZvRTsKK19aTjdXZWJDb3JlMThIVE1MQ29udGVu
dEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFOwogX1pON1dlYkNvcmUxOUluc3BlY3RvckNv
bnRyb2xsZXIzOXNldFJlc291cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVybmFsc0VpaTsKIF9a
TjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29udGV4dEMxRVBOU180Tm9kZUU7CiBfWk43V2ViQ29y
ZTIwTm9kZVJlbmRlcmluZ0NvbnRleHREMUV2OwotX1pON1dlYkNvcmUyMFNoYWRvd0NvbnRlbnRF
bGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RTsKIF9aTjdXZWJDb3JlMjFnZXRDYWNoZWRET01T
dHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUEtOM0pTQzlDbGFzc0luZm9FOwogX1pO
N1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzdFbGVtZW50RWo7CiBfWk43V2Vi
Q29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUVOU18x
NERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0U7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWMyM2YzODIzNjZjMDA3MWFj
YTUxYWNhOWU4MjIyNTI2MGYzYThlMi4uODJmZDE0NTI1YTU5M2EyNjExODM1M2QyNGU3OTQ1Y2Rl
YzUyNTg5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAxLTE2ICBTaGlueWEgS2F3YW5h
a2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dDb250ZW50RWxl
bWVudCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVy
Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJl
cnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY3JlYXRlLWNvbnRlbnQtZWxlbWVu
dC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0
Lmh0bWw6CisKIDIwMTItMDEtMTYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBERkcgc2hvdWxkIGJlIGFibGUgdG8gZG8gSlMgYW5kIGN1c3RvbSBnZXR0ZXIgY2Fj
aGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1pbmNsdWRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQt
ZWxlbWVudC1pbmNsdWRlci5odG1sCmluZGV4IGYxOWJkMTc2ODk5ODgxZTJiZGI5Y2ZkYTE0ZDc4
MDAzMzcyNWZmMTMuLmZiNmE1YjEzMWRkYTY2MmVmNTBkMjdjMjJiNTk3NDM1NThjOGNhNzUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW5j
bHVkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVt
ZW50LWluY2x1ZGVyLmh0bWwKQEAgLTMzLDcgKzMzLDcgQEAgc2hvdWxkQmUoImludGVybmFscy5p
bmNsdWRlckZvcihjaGlsZE9mRWxlbWVudFdpdGhTaGFkb3cpIiwgIm51bGwiKTsKIHZhciBlbGVt
ZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIGNv
bnRhaW5lci5hcHBlbmRDaGlsZChlbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQpOwogdmFyIHNoYWRv
d1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dS
b290KGVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7Ci12YXIgc2hhZG93Q29udGVudE9mRWxlbWVu
dFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50
KGRvY3VtZW50KTsKK3ZhciBzaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQg
PSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpOwogc2hhZG93Um9vdE9m
RWxlbWVudFdpdGhTaGFkb3dDb250ZW50LmFwcGVuZENoaWxkKHNoYWRvd0NvbnRlbnRPZkVsZW1l
bnRXaXRoU2hhZG93Q29udGVudCk7CiB2YXIgY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKIGVsZW1lbnRXaXRoU2hhZG93Q29u
dGVudC5hcHBlbmRDaGlsZChjaGlsZE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKQEAgLTU4
LDcgKzU4LDcgQEAgZWxlbWVudFdpdGhTaGFkb3cucmVtb3ZlQ2hpbGQobW92aW5nQ2hpbGQpOwog
dmFyIGFub3RoZXJFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKIGNvbnRhaW5lci5hcHBlbmRDaGlsZChhbm90aGVyRWxlbWVudFdpdGhTaGFk
b3dDb250ZW50KTsKIHZhciBhbm90aGVyU2hhZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3dDb250
ZW50ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QoYW5vdGhlckVsZW1lbnRXaXRoU2hhZG93
Q29udGVudCk7Ci12YXIgYW5vdGhlclNoYWRvd0NvbnRlbnRPZkVsZW1lbnRXaXRoU2hhZG93Q29u
dGVudCA9IGludGVybmFscy5jcmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChkb2N1bWVudCk7Cit2
YXIgYW5vdGhlclNoYWRvd0NvbnRlbnRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGludGVy
bmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCk7CiBhbm90aGVyU2hhZG93Um9vdE9m
RWxlbWVudFdpdGhTaGFkb3dDb250ZW50LmFwcGVuZENoaWxkKGFub3RoZXJTaGFkb3dDb250ZW50
T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQpOwogCiBhbm90aGVyRWxlbWVudFdpdGhTaGFkb3dD
b250ZW50LmFwcGVuZENoaWxkKG1vdmluZ0NoaWxkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXJlbmRlcmVycy5odG1sCmluZGV4
IDkxNTE5YjhiYzllZDk4ZTUzNGJmMzdlMTQ1ZGExMzE1NGI1YmM4YjguLjk3N2I4OWNjMDE5NGQx
ZTVkMzIyYjdiYWJjOWYxNTU2NTQ5Mjk4MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMuaHRtbApAQCAtNjIs
NyArNjIsNyBAQCBmdW5jdGlvbiBjcmVhdGVUcmVlRnJvbShodG1sKQogICAgIHZhciBjb250ZW50
UGxhY2Vob2xkZXIgPSByb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJDT05URU5UIilbMF07CiAg
ICAgaWYgKGNvbnRlbnRQbGFjZWhvbGRlcikgewogICAgICAgICB2YXIgY29udGVudFBhcmVudCA9
IGNvbnRlbnRQbGFjZWhvbGRlci5wYXJlbnROb2RlOwotICAgICAgICBjb250ZW50UGFyZW50LnJl
cGxhY2VDaGlsZCh3aW5kb3cuaW50ZXJuYWxzLmNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGRv
Y3VtZW50KSwgY29udGVudFBsYWNlaG9sZGVyKTsKKyAgICAgICAgY29udGVudFBhcmVudC5yZXBs
YWNlQ2hpbGQod2luZG93LmludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCks
IGNvbnRlbnRQbGFjZWhvbGRlcik7CiAgICAgfTsKIAogICAgIHJldHVybiByb290OwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NyZWF0ZS1jb250ZW50LWVsZW1lbnQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcmVhdGUtY29udGVudC1lbGVtZW50
Lmh0bWwKaW5kZXggYmRiNjAwMTZmMGRhMjQwNGY1ZGExYzg3OGNmMTg5ZDg5MTJiNzhjZC4uODMy
MTIzMWJjMzUxOWJjMjRlNThmYWFiMjAzMWIxZmZkNjBhMjMxNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2NyZWF0ZS1jb250ZW50LWVsZW1lbnQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3JlYXRlLWNvbnRlbnQtZWxlbWVudC5odG1sCkBA
IC0yOSw3ICsyOSw3IEBAIGZ1bmN0aW9uIHNldHVwVGFyZ2V0VHJlZSgpCiAgICAgdmFyIGNoaWxk
MCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICBjaGlsZDAuaW5uZXJIVE1M
ID0gIkhlbGxvLCI7CiAgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDApOwotICAgIHJvb3QuYXBw
ZW5kQ2hpbGQod2luZG93LmludGVybmFscy5jcmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChkb2N1
bWVudCkpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQod2luZG93LmludGVybmFscy5jcmVhdGVDb250
ZW50RWxlbWVudChkb2N1bWVudCkpOwogICAgIHZhciBjaGlsZDEgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIik7CiAgICAgY2hpbGQxLmlubmVySFRNTCA9ICJXb3JsZC4iOwogICAgIHJv
b3QuYXBwZW5kQ2hpbGQoY2hpbGQxKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNlbGVjdC5odG1sCmluZGV4IDNkODFkNDU2Y2FlNDU4
ZmU1OGQ5ZWI5MjE1MzUwOTljZWMxNDU0YTIuLjJlZmI5MzY1MmQwNzhjNjdkNThlMzY5MmQwYWZm
OGU5ZGEyOWNiYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudHMtc2VsZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1jb250ZW50cy1zZWxlY3QuaHRtbApAQCAtMTUsNyArMTUsNyBAQCBmdW5jdGlvbiBh
cHBlbmRTaGFkb3codGFyZ2V0LCBzZWxlY3QpIHsKICAgICBjaGlsZDAuaW5uZXJIVE1MID0gIkhl
bGxvLCI7CiAgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDApOwogCi0gICAgdmFyIGNvbnRlbnQg
PSBpbnRlcm5hbHMuY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpOworICAgIHZh
ciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKICAg
ICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0KTsKICAgICByb290LmFwcGVu
ZENoaWxkKGNvbnRlbnQpOwogCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5k
ZXggNzZjOTU1YmVkYzlkNTNhOTlmZWVjODgyMTZhMmQ1NWUxYjk5MjMzOS4uNjhkN2ZjZGM1MjM5
YmEzMzBhYTdlNGUzNmYyN2JiNGQ3NjczNWMyNiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAxLTE2ICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBTaGFkb3dDb250ZW50RWxlbWVu
dCBmcm9tIGRvbS8gdG8gaHRtbC8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEyLTAx
LTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBVcGRhdGUgTkVXUyBhbmQgY29uZmlndXJlLmFjIGZvciAxLjcuNCByZWxlYXNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122735</attachid>
            <date>2012-01-17 01:37:06 -0800</date>
            <delta_ts>2012-01-17 23:38:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76241-20120117183705.patch</filename>
            <type>text/plain</type>
            <size>118501</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU1MmYzYzQ5YzE1MWI5
M2Q3ODRiNzgwNGVhZTJiMjg5ZDgwZmRiZS4uNzg2YjM1Y2Y0NzhiNzgxOTc5YjcyYzExYjhjZTAz
M2JkMzcwNWMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxMi0wMS0xNyAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIFc3NjI0MSBNb3Zl
IFNoYWRvd0NvbnRlbnRFbGVtZW50IGZyb20gZG9tLyB0byBodG1sLyBhbmQgbWFrZSBTaGFkb3dD
b250ZW50RWxlbWVudCBzdWJjbGFzcyBvZiBIVE1MRWxlbWVudC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCBTaGFkb3dDb250ZW50RWxlbWVu
dCB0byBIVE1MQ29udGVudEVsZW1lbnQsIGFuZCBtb3ZlIGl0IGZyb20gZG9tLyB0byBodG1sLy4K
KyAgICAgICAgQWxzbywgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IgYW5kIFNoYWRvd0NvbnRlbnRT
ZWxlY3RvclF1ZXJ5IGFyZSByZW5hbWVkIHRvCisgICAgICAgIENvbnRlbnRJbmNsdXNpb25TZWxl
Y3RvciBhbmQgQ29udGVudFNlbGVjdG9yUXVlcnkgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgYmVjYXVzZSBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAq
IFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9N
QWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpuZXh0UmVuZGVyZXJPZik6CisgICAgICAgIChXZWJDb3JlOjpwcmV2
aW91c1JlbmRlcmVyT2YpOgorICAgICAgICAoV2ViQ29yZTo6Zmlyc3RSZW5kZXJlck9mKToKKyAg
ICAgICAgKFdlYkNvcmU6Omxhc3RSZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJl
bmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIpOgorICAgICAgICAqIGRvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6
OmluY2x1ZGVyKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290OjppbmNsdWRlckZvcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dS
b290OjppbmNsdXNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmVuc3VyZUlu
Y2x1c2lvbnMpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgICogaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV0YWlsc0NvbnRlbnRF
bGVtZW50OjpEZXRhaWxzQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV0YWls
c1N1bW1hcnlFbGVtZW50OjpEZXRhaWxzU3VtbWFyeUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwv
SFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1bW1hcnlDb250ZW50RWxlbWVudDo6U3VtbWFy
eUNvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50SW5jbHVzaW9u
U2VsZWN0b3IuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1
c2lvblNlbGVjdG9yLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6YXBw
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6dW5saW5rKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbkxpc3Q6OlNoYWRvd0luY2x1c2lvbkxpc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6flNoYWRvd0luY2x1c2lvbkxp
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6ZmluZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25MaXN0OjpjbGVhcik6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dJbmNsdXNpb25MaXN0OjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudEluY2x1c2lvblNlbGVjdG9yOjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9yOjp+Q29udGVudEluY2x1c2lvblNl
bGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6c2Vs
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6dW5zZWxl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEluY2x1c2lvblNlbGVjdG9yOjpmaW5kRm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6ZGlkU2VsZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6d2lsbFNlbGVj
dE92ZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5o
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9y
LmguCisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb246OmluY2x1ZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6Y29udGVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFkb3dJbmNsdXNpb246Om5leHQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVz
aW9uOjpwcmV2aW91cyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb246OlNoYWRv
d0luY2x1c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25MaXN0OjpmaXJzdCk6CisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25MaXN0OjpsYXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd0luY2x1c2lvbkxpc3Q6OmlzRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
SW5jbHVzaW9uU2V0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uU2V0
OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uU2V0Ojppc0VtcHR5
KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvblNldDo6VHJhbnNsYXRvcjo6aGFz
aCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OlRyYW5zbGF0b3I6OmVx
dWFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvblNldDo6SGFzaDo6aGFzaCk6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6Okhhc2g6OmVxdWFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvblNldDo6ZmluZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6Omhhc0NhbmRpZGF0ZXMpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAuCisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVlcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudFNlbGVjdG9yUXVlcnk6Om1hdGNoZXMpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaC4KKyAgICAgICAgKiBodG1s
L3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
b250ZW50RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxl
bWVudDo6SFRNTENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50
RWxlbWVudDo6fkhUTUxDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29u
dGVudEVsZW1lbnQ6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1l
bnQ6OmRldGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OnNldFNlbGVjdCk6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50Lmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDb250ZW50RWxlbWVudDo6aW5jbHVzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ29udGVudEVsZW1lbnQ6OmlzQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnRlbnRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6
dG9IVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6Y3JlYXRlQ29udGVudEVsZW1lbnQpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aWRsOgorCiAyMDEyLTAxLTE2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTjogcjEwMjU1MyBBdXRvY29ycmVjdGlvbiBidWJibGUgZG9lc24n
dCBzaG93IHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzQzYjkzYTgxNWE2NWY2NTc3YmFiMjZlZWIzMThkZDMz
ODE5OWJiMC4uNzliOTZlMjU0YzFhNmJjOGQ0M2ZmOTFkNjAwNDE4OTkyMGFlOGFiNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTE3ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlu
eWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVzc2MjQxIE1vdmUgU2hhZG93Q29udGVudEVsZW1l
bnQgZnJvbSBkb20vIHRvIGh0bWwvIGFuZCBtYWtlIFNoYWRvd0NvbnRlbnRFbGVtZW50IHN1YmNs
YXNzIG9mIEhUTUxFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzYyNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjogRXhwb3NlZCBuZWNlc3Nhcnkgc3ltYm9scy4K
KyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6IGRpdHRvLgorCiAyMDEyLTAxLTE2ICBE
YW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzEwNzAyNzU4PiBSRUdSRVNTSU9OOiBFdmVyeSBTYWZhcmkgUmVhZGVyIFdLVmlldyBsZWFrcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkNjE2NWNmMWMzY2EyNmNjMzFiMTNjMTM5NDNhODBiYzE5
OTk0YzNiLi45YjFiMjFjMjE3NGM0ZGI0NGViYWVhMDBmOWE1YWVkYjBmMDBhOThhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNTkzLDkgKzU5Myw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAg
ICBkb20vU2NyaXB0UnVubmVyLmNwcAogICAgIGRvbS9TZWN1cml0eUNvbnRleHQuY3BwCiAgICAg
ZG9tL1NlbGVjdG9yUXVlcnkuY3BwCi0gICAgZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcAot
ICAgIGRvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAKLSAgICBkb20vU2hhZG93SW5j
bHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgZG9tL1NoYWRvd1Jvb3QuY3BwCiAgICAgZG9tL1NwYWNl
U3BsaXRTdHJpbmcuY3BwCiAgICAgZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAKQEAgLTg2
MSw3ICs4NTgsMTAgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvcGFyc2VyL1RleHRW
aWV3U291cmNlUGFyc2VyLmNwcAogICAgIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCiAKKyAg
ICBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAKKyAgICBodG1sL3NoYWRvdy9D
b250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtl
ckNvbnRyb2wuY3BwCisgICAgaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAogICAg
IGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCiAgICAgaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sUm9vdEVsZW1lbnQuY3BwCiAgICAgaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggY2U2N2Y1MWRjNDkwNjBiOTJjYzQ0
NGY3MjY4MTZjYzQzMDE2YTMxZC4uNjViZDE3YzA3Yzk0ZmE0YzQ5OTVkOWIyNGExODI1MjFiMjli
Mjk5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNjQzLDEyICsxNjQzLDYg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250
ZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d0NvbnRlbnRFbGVtZW50LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRF
bGVtZW50LmggXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVy
eS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5o
IFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKLQlT
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXApAQCAtMjIy
Nyw4ICsyMjIxLDE0IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvVGV4dFZpZXdTb3VyY2VQYXJzZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvWFNTQXVkaXRvci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1
ZGl0b3IuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNl
bGVjdG9yLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lv
blNlbGVjdG9yLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3Rv
clF1ZXJ5LmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9y
UXVlcnkuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRy
b2wuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJv
bC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGFhNjAy
N2ZiYmJjYWMyOWU3OTNmMjAxZWRjMjQ3OTQwZWY3NjRhZmIuLjdlZDg5YTNjNGFjMTU4NTVkMmE2
MjgwNjgyMWEwM2UxNzdmZjI5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTU5LDkgKzU1OSw2IEBAIFNP
VVJDRVMgKz0gXAogICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vU2VjdXJpdHlD
b250ZXh0LmNwcCBcCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwIFwKLSAgICBkb20vU2hhZG93
Q29udGVudEVsZW1lbnQuY3BwIFwKLSAgICBkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnku
Y3BwIFwKLSAgICBkb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKICAgICBkb20vU2hh
ZG93Um9vdC5jcHAgXAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCiAgICAgZG9tL1N0
YXRpY05vZGVMaXN0LmNwcCBcCkBAIC04NDEsNyArODM4LDEwIEBAIFNPVVJDRVMgKz0gXAogICAg
IGh0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAgXAogICAgIGh0bWwvcGFyc2VyL1Rl
eHRWaWV3U291cmNlUGFyc2VyLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAg
XAorICAgIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBcCisgICAgaHRtbC9z
aGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCBcCiAgICAgaHRtbC9zaGFkb3cvRGV0
YWlsc01hcmtlckNvbnRyb2wuY3BwIFwKKyAgICBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1l
bnQuY3BwIFwKICAgICBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcCBcCiAgICAgaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwIFwKICAgICBodG1sL3NoYWRvdy9NZXRl
clNoYWRvd0VsZW1lbnQuY3BwIFwKQEAgLTE2NjAsOSArMTY2MCw2IEBAIEhFQURFUlMgKz0gXAog
ICAgIGRvbS9TY3JpcHRFbGVtZW50LmggXAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmggXAogICAgIGRvbS9TZWxlY3RvclF1ZXJ5LmggXAotICAgIGRvbS9TaGFkb3dDb250ZW50RWxl
bWVudC5oIFwKLSAgICBkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCBcCi0gICAgZG9t
L1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmggXAogICAgIGRvbS9TaGFkb3dSb290LmggXAogICAg
IGRvbS9TcGFjZVNwbGl0U3RyaW5nLmggXAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5oIFwKQEAg
LTE5MDEsNiArMTg5OCw5IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlci5oIFwKICAgICBodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oIFwKICAg
ICBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmggXAorICAgIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmggXAorICAgIGh0bWwvc2hhZG93L0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5o
IFwKKyAgICBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBcCiAgICAgaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuaCBcCiAgICAgaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtl
ckNvbnRyb2wuaCBcCiAgICAgaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgppbmRleCAzYTViMjliYWQxZjRlZmVhM2JkYjlhNDMxOTY0ZDgyMzE2ODE5ZTFlLi40
MmU4Yzc1MDU1OTlmYTMzZDk4N2FiMzEzMDBmZGUwYjRkYzAxZDczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgpAQCAtNTQ2LDYgKzU0Niw3IEBAIF9fWk43V2ViQ29yZTE3UmVndWxhckV4cHJlc3Npb25D
MUVSS04zV1RGNlN0cmluZ0VOUzFfMTlUZXh0Q2FzZVNlbnNpdGl2aXR5RQogX19aTjdXZWJDb3Jl
MTdSZWd1bGFyRXhwcmVzc2lvbkQxRXYKIF9fWk43V2ViQ29yZTE3Y2FjaGVET01TdHJ1Y3R1cmVF
UE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE4zSlNDOVN0cnVjdHVyZUVQS05TMl85Q2xhc3NJbmZv
RQogX19aTjdXZWJDb3JlMTdvcGVuVGVtcG9yYXJ5RmlsZUVSS04zV1RGNlN0cmluZ0VSaQorX19a
TjdXZWJDb3JlMThIVE1MQ29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFCiBfX1pO
N1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llczI2Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3lF
dgogX19aTjdXZWJDb3JlMThTZWFyY2hQb3B1cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGll
bnRFCiBfX1pON1dlYkNvcmUxOGlzU3RhcnRPZlBhcmFncmFwaEVSS05TXzE1VmlzaWJsZVBvc2l0
aW9uRU5TXzI3RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlRQpAQCAtNjAzLDcgKzYwNCw2IEBA
IF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UyMHNldFN1Z2dlc3RlZEZpbGVuYW1l
RVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTI0c2V0
RXhwZWN0ZWRDb250ZW50TGVuZ3RoRXgKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJh
c2U2c2V0VVJMRVJLTlNfNEtVUkxFCiBfX1pON1dlYkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNl
QzJFdgotX19aTjdXZWJDb3JlMjBTaGFkb3dDb250ZW50RWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1
bWVudEUKIF9fWk43V2ViQ29yZTIwVXNlckdlc3R1cmVJbmRpY2F0b3I3c19zdGF0ZUUKIF9fWk43
V2ViQ29yZTIwVXNlckdlc3R1cmVJbmRpY2F0b3JDMUVOU18yNlByb2Nlc3NpbmdVc2VyR2VzdHVy
ZVN0YXRlRQogX19aTjdXZWJDb3JlMjBVc2VyR2VzdHVyZUluZGljYXRvckQxRXYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCBkOGE1MjNmYTU3YTQ0NzE0M2E2YzllZWEyNTE1NDhhMjRhZTUxOGIyLi5kNGNl
YjgxZjcyYmU3YzRiNDVkOTI1NGQ2YjRiNmRhODE2OWVmMDczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC0xMDQ2LDggKzEwNDYsNiBAQAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIuaCcsCiAgICAgICAgICAgICAn
ZG9tL1NoYWRvd1Jvb3QuaCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50
LmgnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oJywKICAg
ICAgICAgICAgICdkb20vU3BhY2VTcGxpdFN0cmluZy5oJywKICAgICAgICAgICAgICdkb20vU3R5
bGVkRWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20vVGV4dC5oJywKQEAgLTU0NjMsMTIgKzU0
NjEsNiBAQAogICAgICAgICAgICAgJ2RvbS9TZWN1cml0eUNvbnRleHQuaCcsCiAgICAgICAgICAg
ICAnZG9tL1NlbGVjdG9yUXVlcnkuY3BwJywKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JRdWVy
eS5oJywKLSAgICAgICAgICAgICdkb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwJywKLSAgICAg
ICAgICAgICdkb20vU2hhZG93Q29udGVudEVsZW1lbnQuaCcsCi0gICAgICAgICAgICAnZG9tL1No
YWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd0Nv
bnRlbnRTZWxlY3RvclF1ZXJ5LmgnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dJbmNsdXNpb25T
ZWxlY3Rvci5jcHAnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5o
JywKICAgICAgICAgICAgICdkb20vU2hhZG93Um9vdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9T
aGFkb3dSb290LmgnLAogICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCcsCkBA
IC01OTAzLDggKzU4OTUsMTQgQEAKICAgICAgICAgICAgICdodG1sL3BhcnNlci9UZXh0Vmlld1Nv
dXJjZVBhcnNlci5oJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5oJywKKyAgICAgICAgICAgICdo
dG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAnLAorICAgICAgICAgICAgJ2h0bWwv
c2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgnLAorICAgICAgICAgICAgJ2h0bWwvc2hhZG93
L0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvc2hhZG93
L0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9E
ZXRhaWxzTWFya2VyQ29udHJvbC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0RldGFp
bHNNYXJrZXJDb250cm9sLmgnLAorICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0hUTUxDb250ZW50
RWxlbWVudC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVu
dC5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcCcsCiAgICAg
ICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oJywKICAgICAgICAgICAgICdodG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlNzdjMWZmMTJiNDQzNGZkYjljOGUzOGY2
YjA4MWZmZmE4ODgyMzFkLi5iNzA0NzNhZjdlODA5Yjk4NGU4NmU4ODM5NTlkY2E1NjI5MWI4OTBm
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NTA5OTgsMjMwICs1MDk5OCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVudC5jcHAiCi0JCQkJPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFk
b3dDb250ZW50RWxlbWVudC5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJ
CT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0J
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4K
LQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0i
RGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVudC5oIgotCQkJ
CT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2hhZG93
Q29udGVudEVsZW1lbnQuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCIKLQkJCQk+Ci0J
CQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdp
bjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2lu
MzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0J
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2lu
MzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0J
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNo
YWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAiCi0J
CQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
LQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NG
TGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJ
PFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdf
QWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0
aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxG
aWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3BhY2VTcGxpdFN0cmluZy5jcHAiCiAJCQkJ
PgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNjEwOTcsNiArNjA4NzMsMjIgQEAKIAkJCQlO
YW1lPSJzaGFkb3ciCiAJCQkJPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxzaGFkb3dcQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgor
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxzaGFkb3dcQ29udGVudFNlbGVj
dG9yUXVlcnkuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGh0bWxcc2hhZG93XENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHNo
YWRvd1xDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcc2hhZG93XERldGFpbHNNYXJrZXJD
b250cm9sLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAgLTYxMTA1LDYgKzYwODk3LDYyIEBA
CiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxo
dG1sXHNoYWRvd1xIVE1MQ29udGVudEVsZW1lbnQuY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIi
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9D
YWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
CT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+
CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgor
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxzaGFkb3dcSFRNTENvbnRlbnRF
bGVtZW50LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxodG1sXHNoYWRvd1xNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAiCiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNjlkNjE2YWIxMDExYjMzNmE0OGVmMTgxMzJkYjM2MWZlN2ViNjRkNS4u
Nzc5Y2I3ZDQxMmJlNzExNzMwYTc4OTQ2ZmVkYTBjYzZkYzg3YTY0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU2OCw4ICsx
NTY4LDEyIEBACiAJCTUzQzgyOThFMTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJv
eC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNDODI5
OEMxM0Q4RDkyNzAwREUyREVCIC8qIFJlbmRlckZsZXhpYmxlQm94LmggKi87IH07CiAJCTU1MEEw
QkM5MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM3MDg1RjYwMzkwMDczNTNENiAv
KiBRdWFsaWZpZWROYW1lLmNwcCAqLzsgfTsKIAkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8q
IFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTcwREJBODExNEI1
ODA0OTAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERCN0E4MTRCNTY5NkEwMERB
RUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi87IH07Ci0JCTU3MERCQTgy
MTRCNTgwNEIwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREI3QTkxNEI1Njk2QTAw
REFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggKi87IH07CisJCTU3MERCRDY2
MTRDNTY4QTMwMERBRUZBMCAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREJENjIxNEM1NjhBMzAw
REFFRkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgKi87IH07CisJCTU3MERCRDY3
MTRDNTY4QTMwMERBRUZBMCAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERCRDYzMTRDNTY4QTMwMERB
RUZBMCAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCAqLzsgfTsKKwkJNTcwREJENjgxNEM1
NjhBMzAwREFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERCRDY0MTRDNTY4QTMwMERBRUZBMCAv
KiBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi87IH07CisJCTU3MERCRDY5MTRDNTY4QTMwMERB
RUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREJENjUxNEM1NjhBMzAwREFFRkEwIC8qIENvbnRlbnRT
ZWxlY3RvclF1ZXJ5LmggKi87IH07CisJCTU3MERCRDZDMTRDNTY4QUQwMERBRUZBMCAvKiBIVE1M
Q29udGVudEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTcwREJENkExNEM1NjhBRDAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5j
cHAgKi87IH07CisJCTU3MERCRDZEMTRDNTY4QUQwMERBRUZBMCAvKiBIVE1MQ29udGVudEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERC
RDZCMTRDNTY4QUQwMERBRUZBMCAvKiBIVE1MQ29udGVudEVsZW1lbnQuaCAqLzsgfTsKIAkJNTkw
NUFEQkYxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkwNUFEQkQxMzAyRjNDRTAwRjExNkRG
IC8qIFhNTFRyZWVWaWV3ZXIuY3BwICovOyB9OwogCQk1OTA1QURDMDEzMDJGM0NFMDBGMTE2REYg
LyogWE1MVHJlZVZpZXdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTkwNUFEQkUxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuaCAqLzsg
fTsKIAkJNTkwRTFCNDkxMUU0RUY0QjAwNjlGNzg0IC8qIERldmljZU9yaWVudGF0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTBFMUI0ODExRTRF
RjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzUwNCwxMyArMzUwOCwxMCBAQAogCQlBNzE1
RTY1MzEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1RTY1MTEzNEJCQkVDMDBE
OEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggKi87IH07CiAJCUE3MTg3NjBFMEIyQTEy
MDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25z
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcx
ODc4OTAwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYwQjJEMDRBQzAwQTE2
RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovOyB9OwotCQlBNzFDMzBCODEzODEyNjVFMDBE
QkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxQzMwQjYxMzgxMjY1RTAwREJDMzUxIC8qIFNo
YWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCAqLzsgfTsKLQkJQTcxQzMwQjkxMzgxMjY1RTAwREJD
MzUxIC8qIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzFDMzBCNzEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93
SW5jbHVzaW9uU2VsZWN0b3IuaCAqLzsgfTsKIAkJQTcyM0Y3N0IxNDg0Q0E0QzAwOEM2REJFIC8q
IFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRN
YWNyb3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNzNGOTVGRTEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkMxMkM5N0JGRTAwMzFB
QUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLzsgfTsKIAkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5
IC8qIFJvdW5kZWRSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzRCQjc2QjEzQkRB
ODYzMDBGRjdCRjAgLyogRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzRCQjc2QTEzQkRBODYzMDBGRjdCRjAg
LyogRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTc0QzJEM0MxMzgxMUUwRDAwRjgzNTcyIC8qIFNoYWRv
d0NvbnRlbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzRDMkQzQjEzODExRTBEMDBGODM1NzIgLyogU2hhZG93Q29udGVudEVsZW1lbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzVF
NDk3NjEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFNDk3NDEwNzUyQUNCMDBD
OUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc1RTQ5NzcxMDc1MkFDQjAwQzlCODk2IC8qIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzVFNDk3NTEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcCAqLzsgfTsKIAkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RThC
ODAwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3BwICovOyB9OwpAQCAtMzUyMSw3ICszNTIy
LDYgQEAKIAkJQTc1RThCOEQwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU4Qjg1
MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmggKi87IH07CiAJCUE3NUU4
QjhFMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFOEI4NjBFMURFMkQ2MDA3RjI0ODEgLyog
RkVDb21wb3NpdGUuY3BwICovOyB9OwogCQlBNzVFOEI4RjBFMURFMkQ2MDA3RjI0ODEgLyogRkVD
b21wb3NpdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3NUU4Qjg3MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvc2l0ZS5oICovOyB9OwotCQlBNzY2
Q0Y4QzEzODEwRTBDMDAxMUEwQjMgLyogU2hhZG93Q29udGVudEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2NkNGOEIxMzgxMEUwQzAw
MTFBMEIzIC8qIFNoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCAqLzsgfTsKIAkJQTc2RTVGN0YxMzVF
MERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NkU1RjdFMTM1RTBEQ0YwMEE2OTgzNyAv
KiBSZW5kZXJlZERvY3VtZW50TWFya2VyLmggKi87IH07CiAJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4
NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc3OTc5MTMwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgKi87
IH07CiAJCUE3Nzk3OTFBMEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTE0MEQ2QjlEMEMwMDM4
NTFCOSAvKiBJbWFnZURhdGEuaCAqLzsgfTsKQEAgLTgzOTEsOCArODM5MSwxMiBAQAogCQk1M0M4
Mjk4QzEzRDhEOTI3MDBERTJERUIgLyogUmVuZGVyRmxleGlibGVCb3guaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRmxleGlibGVCb3guaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTUwQTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUXVhbGlmaWVkTmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlm
aWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwotCQk1NzBEQjdBODE0QjU2OTZBMDBEQUVGQTAgLyogU2hhZG93
Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk1NzBEQjdBOTE0QjU2OTZBMDBEQUVGQTAgLyogU2hhZG93Q29udGVudFNlbGVj
dG9yUXVlcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhZG93Q29udGVu
dFNlbGVjdG9yUXVlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcwREJENjIx
NEM1NjhBMzAwREFFRkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzBEQkQ2MzE0QzU2OEEzMDBEQUVGQTAg
LyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1NzBEQkQ2NDE0QzU2OEEzMDBEQUVGQTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGVudFNlbGVjdG9y
UXVlcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzBEQkQ2NTE0QzU2OEEz
MDBEQUVGQTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ29udGVudFNlbGVjdG9yUXVlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTcwREJENkExNEM1NjhBRDAwREFFRkEwIC8qIEhUTUxDb250ZW50RWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MQ29udGVudEVsZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzBEQkQ2QjE0QzU2OEFEMDBE
QUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEhUTUxDb250ZW50RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1OTA1QURCRDEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxUcmVlVmlld2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTkwNUFEQkUxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVW
aWV3ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MVHJlZVZpZXdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTBFMUI0ODExRTRFRjRCMDA2OUY3ODQg
LyogRGV2aWNlT3JpZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGV2aWNlT3JpZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMzIz
LDEzICsxMDMyNywxMCBAQAogCQlBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlv
bnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERy
YWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
MUE3MEM5MTFBRkIwMjAwMDk4OUQ2RCAvKiBIVE1MTWV0ZXJFbGVtZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBIVE1MTWV0ZXJFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQTcxQzMwQjYxMzgxMjY1RTAwREJDMzUxIC8qIFNoYWRvd0luY2x1c2lvblNlbGVj
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYWRvd0luY2x1
c2lvblNlbGVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTcxQzMwQjcx
MzgxMjY1RTAwREJDMzUxIC8qIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9y
bUV4cG9ydE1hY3Jvcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9y
bUV4cG9ydE1hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGQzEy
Qzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUm91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFj
ZWhvbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25Db2Rl
UGxhY2Vob2xkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTc0QzJEM0IxMzgx
MUUwRDAwRjgzNTcyIC8qIFNoYWRvd0NvbnRlbnRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNoYWRvd0NvbnRlbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3NUU0OTc0MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU0OTc1MTA3NTJBQ0Iw
MEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RThCODAwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRkVCbGVuZC5jcHA7IHBhdGgg
PSBmaWx0ZXJzL0ZFQmxlbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAz
NDAsNyArMTAzNDEsNiBAQAogCQlBNzVFOEI4NTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25l
bnRUcmFuc2Zlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGRUNvbXBvbmVu
dFRyYW5zZmVyLmg7IHBhdGggPSBmaWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RThCODYwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29t
cG9zaXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZFQ29tcG9z
aXRlLmNwcDsgcGF0aCA9IGZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzVFOEI4NzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRkVDb21wb3NpdGUuaDsgcGF0aCA9IGZp
bHRlcnMvRkVDb21wb3NpdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTc2NkNG
OEIxMzgxMEUwQzAwMTFBMEIzIC8qIFNoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYWRvd0NvbnRlbnRFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJl
bmRlcmVkRG9jdW1lbnRNYXJrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyZWREb2N1bWVudE1hcmtlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
Nzc5NzkxMzBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3Nzk3OTE0MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzcxNSw5ICsxMzcxNSw2IEBACiAJCTFBRTgyRUM5MENBQUUxNzcwMDIy
MzdBRSAvKiBzdG9yYWdlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKLQkJCQlBOEY0NTc5RDE0QkMxM0VDMDAwQ0VBNTkgLyogRE9NV2luZG93U1FMRGF0YWJhc2Uu
Y3BwICovLAotCQkJCUE4RjQ1NzlFMTRCQzEzRUMwMDBDRUE1OSAvKiBET01XaW5kb3dTUUxEYXRh
YmFzZS5oICovLAotCQkJCUE4RjQ1NzlGMTRCQzEzRUMwMDBDRUE1OSAvKiBET01XaW5kb3dTUUxE
YXRhYmFzZS5pZGwgKi8sCiAJCQkJQjVCNURDNjcxMTlCQjNENTAwMkE4NzkwIC8qIEFic3RyYWN0
RGF0YWJhc2UuY3BwICovLAogCQkJCUI1QjVEQzY4MTE5QkIzRDUwMDJBODc5MCAvKiBBYnN0cmFj
dERhdGFiYXNlLmggKi8sCiAJCQkJNTE0MTg1RUQwQ0Q2NUYwNDAwNzYzQzk5IC8qIENoYW5nZVZl
cnNpb25XcmFwcGVyLmNwcCAqLywKQEAgLTEzNzQwLDYgKzEzNzM3LDkgQEAKIAkJCQkxQUQ1MUEx
MzBDQjU5Q0QzMDA5NTNEMTEgLyogRGF0YWJhc2VUcmFja2VyLmNwcCAqLywKIAkJCQkxQUQ1MUEx
MjBDQjU5Q0QzMDA5NTNEMTEgLyogRGF0YWJhc2VUcmFja2VyLmggKi8sCiAJCQkJNTFGQUZFMzMw
Q0VDQkYyRDAwQkIzRjI0IC8qIERhdGFiYXNlVHJhY2tlckNsaWVudC5oICovLAorCQkJCUE4RjQ1
NzlEMTRCQzEzRUMwMDBDRUE1OSAvKiBET01XaW5kb3dTUUxEYXRhYmFzZS5jcHAgKi8sCisJCQkJ
QThGNDU3OUUxNEJDMTNFQzAwMENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFiYXNlLmggKi8sCisJ
CQkJQThGNDU3OUYxNEJDMTNFQzAwMENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFiYXNlLmlkbCAq
LywKIAkJCQlDNTg1QTY5ODExRDRGQjNEMDA0QzNFNEIgLyogSURCQW55LmNwcCAqLywKIAkJCQlD
NTg1QTY5OTExRDRGQjNEMDA0QzNFNEIgLyogSURCQW55LmggKi8sCiAJCQkJQzU4NUE2OUExMUQ0
RkIzRDAwNEMzRTRCIC8qIElEQkFueS5pZGwgKi8sCkBAIC0xNDIyMCw4ICsxNDIyMCwxNCBAQAog
CQk0MTUwRjlFRDEyQjZFMDk5MDAwOEM4NjAgLyogc2hhZG93ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1NzBEQkQ2MjE0QzU2OEEzMDBEQUVGQTAgLyog
Q29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCAqLywKKwkJCQk1NzBEQkQ2MzE0QzU2OEEzMDBE
QUVGQTAgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggKi8sCisJCQkJNTcwREJENjQxNEM1
NjhBMzAwREFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCAqLywKKwkJCQk1NzBEQkQ2
NTE0QzU2OEEzMDBEQUVGQTAgLyogQ29udGVudFNlbGVjdG9yUXVlcnkuaCAqLywKIAkJCQlBN0M5
QUJGNjEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwICovLAogCQkJ
CUE3QzlBQkY3MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5oICovLAor
CQkJCTU3MERCRDZBMTRDNTY4QUQwMERBRUZBMCAvKiBIVE1MQ29udGVudEVsZW1lbnQuY3BwICov
LAorCQkJCTU3MERCRDZCMTRDNTY4QUQwMERBRUZBMCAvKiBIVE1MQ29udGVudEVsZW1lbnQuaCAq
LywKIAkJCQk0MTcyNTNBODEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sRWxlbWVudHMu
Y3BwICovLAogCQkJCTQxNzI1M0E5MTM1NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xFbGVt
ZW50cy5oICovLAogCQkJCTQxNTdBRjdGMTJGMUZCMDQwMEE4QzZGNSAvKiBNZWRpYUNvbnRyb2xS
b290RWxlbWVudC5jcHAgKi8sCkBAIC0xNzA0NiwxMyArMTcwNTIsMTMgQEAKIAkJQTc1RThCN0Yw
RTFERTJCMDAwN0YyNDgxIC8qIGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTQ5RUNFQjVDMTQ5OTc5MEQwMENERDNBNCAvKiBhcm0gKi8sCisJ
CQkJNTBENDA1RjcxNDdEMzFGMzAwRDMwQkI1IC8qIEN1c3RvbUZpbHRlck1lc2guY3BwICovLAor
CQkJCTUwRDQwNUY4MTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmggKi8sCiAJ
CQkJNTBBQ0UyQ0ExNEI1RDc5MzAwNDQ2NjY2IC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oICov
LAogCQkJCTUwM0QwQ0E3MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmNw
cCAqLywKIAkJCQk1MDNEMENBODE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3Jh
bS5oICovLAogCQkJCTUwM0QwQ0E5MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9n
cmFtQ2xpZW50LmggKi8sCi0JCQkJNDlFQ0VCNUMxNDk5NzkwRDAwQ0REM0E0IC8qIGFybSAqLywK
LQkJCQk1MEQ0MDVGNzE0N0QzMUYzMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyTWVzaC5jcHAgKi8s
Ci0JCQkJNTBENDA1RjgxNDdEMzFGMzAwRDMwQkI1IC8qIEN1c3RvbUZpbHRlck1lc2guaCAqLywK
IAkJCQk1MEQ0MDYwRjE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyU2hhZGVyLmNwcCAq
LywKIAkJCQk1MEQ0MDYxMDE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyU2hhZGVyLmgg
Ki8sCiAJCQkJQTFFMTE1NDMxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJjZS5j
cHAgKi8sCkBAIC0xOTIzNCw3ICsxOTI0MCw2IEBACiAJCUJDOEM4RkFBMEREQ0QyRjIwMEI1OTJG
NCAvKiBzdHlsZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0J
CQkJNTAzRDBDQUQxNEI1QjBCQTAwRjMyRjU3IC8qIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5o
ICovLAogCQkJCUJDNUVCNUUwMEU4MUJFODcwMEIyNTk2NSAvKiBCb3JkZXJEYXRhLmggKi8sCiAJ
CQkJQkM1RUI1REEwRTgxQjdFQTAwQjI1OTY1IC8qIEJvcmRlclZhbHVlLmggKi8sCiAJCQkJQkM1
RUI1REUwRTgxQjlBQjAwQjI1OTY1IC8qIENvbGxhcHNlZEJvcmRlclZhbHVlLmggKi8sCkBAIC0x
OTI2OSw2ICsxOTI3NCw3IEBACiAJCQkJQkNFRjQ0NEMwRTY3NDYyODAwMUMxMjg3IC8qIFN0eWxl
Q2FjaGVkSW1hZ2UuaCAqLywKIAkJCQk1MDM4QkUyRDE0NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVD
YWNoZWRTaGFkZXIuY3BwICovLAogCQkJCTUwMzhCRTJFMTQ3MkFEMjMwMDk1RTBEMSAvKiBTdHls
ZUNhY2hlZFNoYWRlci5oICovLAorCQkJCTUwM0QwQ0FEMTRCNUIwQkEwMEYzMkY1NyAvKiBTdHls
ZUN1c3RvbUZpbHRlclByb2dyYW0uaCAqLywKIAkJCQlCQzVFQjY3RTBFODFENEE3MDBCMjU5NjUg
LyogU3R5bGVEYXNoYm9hcmRSZWdpb24uaCAqLywKIAkJCQlCQzVFQjhCNjBFODIwMUJEMDBCMjU5
NjUgLyogU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNwcCAqLywKIAkJCQlCQzVFQjhC
NzBFODIwMUJEMDBCMjU5NjUgLyogU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggKi8s
CkBAIC0yMDUzNiwxMiArMjA1NDIsNiBAQAogCQkJCTk3NkYzNkU5MTQ2ODYyMjUwMDVFOTNCNCAv
KiBTZWN1cml0eUNvbnRleHQuaCAqLywKIAkJCQlFNDUzMjJBOTE0MENFMjY3MDA1QTBGOTIgLyog
U2VsZWN0b3JRdWVyeS5jcHAgKi8sCiAJCQkJRTQ1MzIyQUExNDBDRTI2NzAwNUEwRjkyIC8qIFNl
bGVjdG9yUXVlcnkuaCAqLywKLQkJCQlBNzY2Q0Y4QjEzODEwRTBDMDAxMUEwQjMgLyogU2hhZG93
Q29udGVudEVsZW1lbnQuY3BwICovLAotCQkJCUE3NEMyRDNCMTM4MTFFMEQwMEY4MzU3MiAvKiBT
aGFkb3dDb250ZW50RWxlbWVudC5oICovLAotCQkJCTU3MERCN0E4MTRCNTY5NkEwMERBRUZBMCAv
KiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi8sCi0JCQkJNTcwREI3QTkxNEI1Njk2
QTAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggKi8sCi0JCQkJQTcxQzMw
QjYxMzgxMjY1RTAwREJDMzUxIC8qIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCAqLywKLQkJ
CQlBNzFDMzBCNzEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCAq
LywKIAkJCQlBNkQxNjk2MTEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAgKi8sCiAJ
CQkJQTZEMTY5NjMxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCAqLywKIAkJCQlEMDFB
MjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5jcHAgKi8sCkBAIC0yMTEy
OCw4ICsyMTEyOCwxMCBAQAogCQkJCUE4MTg3MjFDMDk3N0QzQzAwMDU4MjZEOSAvKiBDb250YWlu
ZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUExNDcwODExMTAyQjE1MDBFRUMwRjMgLyog
Q29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCOTgxMEU4
MjA3MjUwMEIyNTk2NSAvKiBDb250ZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcwREJE
NjcxNEM1NjhBMzAwREFFRkEwIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTkxMDJGQkMxNDMyN0QzQjAwM0M5RDA0IC8qIENvbnRlbnRTZWFyY2hVdGls
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDNDcxREMxMkY5MjVCRDAwODYzNTRCIC8qIENvbnRl
bnRTZWN1cml0eVBvbGljeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcwREJENjkxNEM1NjhBMzAw
REFFRkEwIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQw
MTVDQTBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTM3MEQ2RURCMTM4NDU0NTUwMDQ0MTAzRSAvKiBDb250ZW50VHlwZVBhcnNlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTNCNkEwRTYwQjBCQ0E1QzAwRjUwMjdBIC8qIENvbnRleHRNZW51LmggaW4g
SGVhZGVycyAqLywKQEAgLTIxMjI0LDYgKzIxMjI2LDkgQEAKIAkJCQlCQzIyNzJBRDBFODJFOEYz
MDBFN0Y5NzUgLyogQ3Vyc29yTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjJDRDMyNUExMTU3
RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MEQ0MDVG
QTE0N0QzMUYzMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyTWVzaC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTBBQ0UyQ0IxNEI1RDc5MzAwNDQ2NjY2IC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTAzRDBDQUIxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRl
clByb2dyYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTUwM0QwQ0FDMTRCNUIwODcwMEYzMkY1NyAv
KiBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MEQ0MDYx
MjE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyU2hhZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOENCNDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODBFNkQwQjBBMTk4OUNBMDA3RkI4QzUgLyogRGFzaGJvYXJkUmVnaW9uLmggaW4g
SGVhZGVycyAqLywKQEAgLTIxMzU1LDYgKzIxMzYwLDcgQEAKIAkJCQk4NUU3MTE5NzBBQzVENTM1
MDA1MzI3MEYgLyogRE9NRE9NSW1wbGVtZW50YXRpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOUIzQTg4NzIxNDU2MzJGOTAwM0FFOEY1IC8qIERPTURPTVNldHRhYmxlVG9rZW5MaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Njk0NTY1QjEyMTREQjYzMDAwN0NCQUUgLyogRE9NRE9N
VG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk3QUFCQTI1QTE0QkM2MTMzMDBBQTlBMTEg
LyogRE9NRWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUFDQTlDMDBBOUI1RkE1MDA2NzFF
OTAgLyogRE9NRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExOTgwQUM1RDUzNTAw
NTMyNzBGIC8qIERPTUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQxNUYx
NjkwRDlBMTY1RDAwMzNDRTk3IC8qIERPTUVsZW1lbnRUaW1lQ29udHJvbC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yMTg5MSw2ICsyMTg5Nyw4IEBACiAJCQkJODVDN0Y1RTcwQUFGQkFGQjAwNDAxNERE
IC8qIERPTVdoZWVsRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1OTg5REQxMEFDQzhCQkQw
MEEwQkM1MSAvKiBET01XaGVlbEV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
MDNCOTk3MDlFQjEzQUYwMDc5N0M3RiAvKiBET01XaW5kb3cuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTk3RDJBRDA0MTRCODIzQTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQThGNDU3QTExNEJDMUE5NDAwMENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFi
YXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGMzVBRTVBQzE0OTI1RjVCMDA0RDU3NzYgLyogRE9N
V3JhcHBlclZpc2l0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTNEQTJFMTE0MzEyMUUwMDBE
ODE3RSAvKiBET01XcmFwcGVyV29ybGQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMUQxMzgwMEE1
MzI1NTIwMDY0QkY1RiAvKiBET01YUGF0aC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjA3Miw2ICsy
MjA4MCw3IEBACiAJCQkJQTg1MzEyM0QxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0
aW5nUGVybWlzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVCRjAyMkYwOTc0ODE2MzAwQzQz
MTk2IC8qIEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0IwNzBEMzEzMEE0MDlDMDBBMzc2
M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3NEE4NjIz
MTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTY1NkQzNzNDMEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2RDM3M0UwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDAwRUJBMzExQkRBRkQ0MDBDNDc3MjYgLyogRnJh
bWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBpbiBIZWFkZXJzICovLApAQCAtMjIxNDUsNiArMjIxNTQs
NyBAQAogCQkJCTkzRjE5OUU1MDgyNDVFNTkwMDFFOUFCQyAvKiBIVE1MQ2FudmFzRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThERjNGRDAwOTdGQTBGQzAwNTI5ODFCIC8qIEhUTUxDb2xs
ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdCMzg2NTEyMjg4M0U5MDBCODFGRjggLyog
SFRNTENvbnN0cnVjdGlvblNpdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MERCRDZEMTRDNTY4
QUQwMERBRUZBMCAvKiBIVE1MQ29udGVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
QTMxNjYzMTM0QkNBRTgwMDdDOUE0RiAvKiBIVE1MQ29udmVydGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRDM1OUQ3OEExMjlDQTI3MTAwMDZFNUQyIC8qIEhUTUxEZXRhaWxz
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjMzNiw2ICsyMjM0Niw3IEBACiAJCQkJRjM0
NEM3MTQxMTI1QjgyQzAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGMzQ0Qzc1MzExMjk0RDlEMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0EwRTc3MEYxMEMwMEE4ODAwQTAy
NzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0FDRDg4
RDQxNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUE1MURENjE0ODUwNkE5MDBBRDI3NTIgLyog
SW5zcGVjdG9yTWVtb3J5QWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNkZERDY1MTM0MURF
REQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjMz
OTUsMTAgKzIzNDA2LDcgQEAKIAkJCQk5M0YxOTk0RjA4MjQ1RTU5MDAxRTlBQkMgLyogU2V0dGlu
Z3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5ODc3MEU5MTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGM0RENDUwMTJGNUVBMUIwMDBEOTE5MCAvKiBTaGFk
b3dCbHVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBNzRDMkQzQzEzODExRTBEMDBGODM1NzIgLyog
U2hhZG93Q29udGVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTU3MERCQTgyMTRCNTgw
NEIwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM1RUI4QzQwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUE3MUMzMEI5MTM4MTI2NUUwMERCQzM1MSAvKiBTaGFkb3dJbmNsdXNpb25TZWxl
Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTZEMTY5NjQxMzQ2QjRDMTAwMEVCNzcwIC8qIFNo
YWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0U4MEExOTg5Q0EwMDdGQjhDNSAv
KiBTaGFkb3dWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBRkZDOTQwRDAwQTVERjAwMzAw
NzREIC8qIFNoYXBlQXJhYmljLmggaW4gSGVhZGVycyAqLywKQEAgLTIzNDkwLDYgKzIzNDk4LDcg
QEAKIAkJCQlCQzVFQjY3QjBFODFEM0JFMDBCMjU5NjUgLyogU3R5bGVCb3hEYXRhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0VGNDQ0RDBFNjc0NjI4MDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFn
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTAzOEJFMzAxNDcyQUQyMzAwOTVFMEQxIC8qIFN0eWxl
Q2FjaGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDNEMENBRTE0QjVCMEJBMDBGMzJG
NTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVF
QjY3RjBFODFENEE3MDBCMjU5NjUgLyogU3R5bGVEYXNoYm9hcmRSZWdpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4QzRBN0ZEMDlENTYzMjcwMDAzQUM4RCAvKiBTdHlsZWRFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzVFQjhCOTBFODIwMUJEMDBCMjU5NjUgLyogU3R5bGVEZXByZWNh
dGVkRmxleGlibGVCb3hEYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTIzNzM0LDYgKzIzNzQzLDcg
QEAKIAkJCQkwODBFNDkyNjEyNTVGM0JEMDBFRkNBMjcgLyogU1ZHVGV4dExheW91dEVuZ2luZUJh
c2VsaW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODBFNDkyODEyNTVGM0JEMDBFRkNBMjcgLyog
U1ZHVGV4dExheW91dEVuZ2luZVNwYWNpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RjBCRkM2
MTI1NUM1M0MwMDA3NTE4NSAvKiBTVkdUZXh0TWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NzExNzQ0NTkxNEJDMzRFQzAwRUU1RkM4IC8qIFNWR1RleHRNZXRyaWNzQnVpbGRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjIyMjdBQ0UwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RleHRQYXRoRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRDEwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NTRCMDI1MTI1
NUU0RTYwMEI5Q0REMCAvKiBTVkdUZXh0UXVlcnkuaCBpbiBIZWFkZXJzICovLApAQCAtMjQwMDYs
MTYgKzI0MDE2LDYgQEAKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNv
ZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyog
WFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENF
IC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5NzRBODYyMzE0QjdBREJCMDAzRkRD
NzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5N0Qy
QUQwNDE0QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93UHJvcGVydHkuaCBpbiBIZWFkZXJzICov
LAotCQkJCTdBQUJBMjVBMTRCQzYxMzMwMEFBOUExMSAvKiBET01FZGl0b3IuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUE4RjQ1N0ExMTRCQzFBOTQwMDBDRUE1OSAvKiBET01XaW5kb3dTUUxEYXRhYmFz
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzExNzQ0NTkxNEJDMzRFQzAwRUU1RkM4IC8qIFNWR1Rl
eHRNZXRyaWNzQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTAzRDBDQUIxNEI1QjA4NzAw
RjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTUwM0Qw
Q0FDMTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKLQkJCQk1MDNEMENBRTE0QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21GaWx0
ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MEFDRTJDQjE0QjVENzkzMDA0NDY2NjYg
LyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk3QUNEODhENDE0
QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjQ1MjYsOCArMjQ1MjYsMTAgQEAKIAkJCQk0MUYwNjE4RjBGNUYwNjk4MDBBMDdFQUMg
LyogQ29uc29sZU1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgxODcyMUYwOTc3RDND
MDAwNTgyNkQ5IC8qIENvbnRhaW5lck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI5
ODAwRTgyMDcyNTAwQjI1OTY1IC8qIENvbnRlbnREYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTU3MERCRDY2MTRDNTY4QTMwMERBRUZBMCAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTkxMDJGQkIxNDMyN0QzQjAwM0M5RDA0IC8qIENvbnRlbnRT
ZWFyY2hVdGlscy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0M0NzFEQjEyRjkyNUJEMDA4NjM1
NEIgLyogQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3MERC
RDY4MTRDNTY4QTMwMERBRUZBMCAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0MUQwMTVDQjBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzcwRDZFREExMzg0NTQ1NTAwNDQxMDNFIC8qIENvbnRlbnRUeXBl
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA2NUFENEY2MEIwQzJFREEwMDVBMkIxRCAv
KiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNDYxMSw2ICsy
NDYxMyw3IEBACiAJCQkJOTNGMTlBMjYwODI0NUU1OTAwMUU5QUJDIC8qIEN1cnNvck1hYy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTYyQ0QzMjU5MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MEQ0MDVGOTE0N0QzMUYzMDBEMzBCQjUgLyogQ3Vz
dG9tRmlsdGVyTWVzaC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MDNEMENBQTE0QjVCMDg3MDBG
MzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MEQ0
MDYxMTE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyU2hhZGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxOTYxMTZBMENBQzU2NTcwMDEwQTgwQyAvKiBEYXRhYmFzZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MUE0NUI1NzBDQUQ3RkQ3MDAwRDJCRTkgLyogRGF0YWJhc2VBdXRob3Jp
emVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQ3MDIsNiArMjQ3MDUsNyBAQAogCQkJCTg1Q0E5
NzVEMEE5NjJFNTQwMDY5MENDRiAvKiBET01Eb2N1bWVudFR5cGUubW0gaW4gU291cmNlcyAqLywK
IAkJCQk4NTE4RENFQTBBOUNDODBEMDA5MUI3QTYgLyogRE9NRE9NSW1wbGVtZW50YXRpb24ubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3Njk0NTY1QzEyMTREQjYzMDAwN0NCQUUgLyogRE9NRE9NVG9r
ZW5MaXN0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJN0FBQkEyNTkxNEJDNjEzMzAwQUE5QTExIC8q
IERPTUVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUFDQTlDMTBBOUI1RkE1MDA2NzFF
OTAgLyogRE9NRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1Q0E5NkI5MEE5NjIxQTYw
MDY5MENDRiAvKiBET01FbnRpdHkubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTA4OUNERTBBOThD
NDI4MDBBMjc1QUEgLyogRE9NRW50aXR5UmVmZXJlbmNlLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0y
NDk3NSw2ICsyNDk3OSw4IEBACiAJCQkJMzFDMEZGNEQwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdl
YktpdFRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1QzdGNUU4MEFBRkJB
RkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQwM0I5
OTgwOUVCMTNBRjAwNzk3QzdGIC8qIERPTVdpbmRvdy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5
N0QyQUQwMzE0QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93UHJvcGVydHkuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQThGNDU3QTAxNEJDMUE4ODAwMENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFi
YXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNTNEQTQ4MTE0MzEzNEQwMDBEODE3RSAvKiBE
T01XcmFwcGVyV29ybGQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUExRDEzODEwQTUzMjU1MjAw
NjRCRjVGIC8qIERPTVhQYXRoLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVFOUUwQTIwQUIzQTBD
NzAwMDY5Q0QwIC8qIERPTVhQYXRoRXhwcmVzc2lvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMjUx
MjEsNiArMjUxMjcsNyBAQAogCQkJCTQxODg1Qjk0MTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3Vi
bWlzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NUJGMDIyRTA5NzQ4MTYzMDBDNDMxOTYg
LyogRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdCMDcwRDIxMzBBNDA5QzAwQTM3NjND
IC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk3NEE4NjIy
MTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTMyRTE2MDkwQUY1NzgzNDAwMjVGNDA4IC8qIEZyYW1lTG9hZGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUQwMDBFQkEyMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRl
clN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NUJGMDI0NTA5NzQ4MTkwMDBD
NDMxOTYgLyogRnJhbWVNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTI1MTc5LDYgKzI1MTg2LDcg
QEAKIAkJCQk5M0YxOUFGRDA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTENhbnZhc0VsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThERjNGRDEwOTdGQTBGQzAwNTI5ODFCIC8qIEhUTUxDb2xs
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0IzODY0MTIyODgzRTkwMEI4MUZGOCAv
KiBIVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzBEQkQ2QzE0
QzU2OEFEMDBEQUVGQTAgLyogSFRNTENvbnRlbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTVENEY1MURGMTMyNzI1NDgwMDE2RjU0MSAvKiBIVE1MQ29udmVydGVyLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDM1OUQ3ODkxMjlDQTI3MTAwMDZFNUQyIC8qIEhU
TUxEZXRhaWxzRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI1MzUzLDYgKzI1MzYxLDcg
QEAKIAkJCQk0RjRGNUZGQjExQ0JEMkUxMDBBMTg2QkYgLyogSW5zcGVjdG9yRnJvbnRlbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjM0NEM3NTgxMTI5NEZGNjAwRjI2RUVFIC8qIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0EwRTc3MEUxMEMw
MEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk3QUNEODhEMzE0QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUE1MURENTE0ODUw
NkE5MDBBRDI3NTIgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNEY2RkRENjQxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI2NDM0LDEwICsyNjQ0Myw3IEBACiAJCQkJMTRDOUE1RUEwQjNEMTA1
RjAwNUEwMjMyIC8qIFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5ODc3MEU4MTI0
MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzREQ0NEYx
MkY1RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTc2
NkNGOEMxMzgxMEUwQzAwMTFBMEIzIC8qIFNoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTU3MERCQTgxMTRCNTgwNDkwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2Vs
ZWN0b3JRdWVyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzVFQjhDMzBFODIwMzFCMDBCMjU5
NjUgLyogU2hhZG93RGF0YS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBNzFDMzBCODEzODEyNjVF
MDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTZEMTY5NjIxMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTgwRTZDRjQwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyQUZGQzkzMEQwMEE1REYwMDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5j
IGluIFNvdXJjZXMgKi8sCkBAIC0yNjkyNSwxMiArMjY5MzEsNiBAQAogCQkJCUUxQkU1MTJEMENG
NkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTk3NEE4NjIyMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2Jz
ZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTdEMkFEMDMxNEI4MjNBNjAwOTNERjMyIC8q
IERPTVdpbmRvd1Byb3BlcnR5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTdBQUJBMjU5MTRCQzYx
MzMwMEFBOUExMSAvKiBET01FZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThGNDU3QTAx
NEJDMUE4ODAwMENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTUwM0QwQ0FBMTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTdBQ0Q4OEQzMTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0
b3JJbmRleGVkREJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5P
bmUuY3BwCmluZGV4IDU1YjYwNTI4YWFhMjkzY2Q2NjVjNGM5MjI3YmE4ODQ3ODg1ZjZhM2UuLmYy
Y2I0NjdkY2MxMzNjYmIzZDgwNDBmZTEwNmMyYmU4ZGUxMjhiODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcApAQCAtMTEyLDkgKzExMiw2IEBACiAjaW5jbHVkZSAiU2NyaXB0YWJsZURv
Y3VtZW50UGFyc2VyLmNwcCIKICNpbmNsdWRlICJTZWN1cml0eUNvbnRleHQuY3BwIgogI2luY2x1
ZGUgIlNlbGVjdG9yUXVlcnkuY3BwIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmNw
cCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAiCi0jaW5jbHVkZSAi
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuY3BwIgog
I2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuY3BwIgogI2luY2x1ZGUgIlN0YXRpY0hhc2hTZXRO
b2RlTGlzdC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmlu
Z0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNw
cAppbmRleCBlZjg1ZjdkMjNmNzgyM2Y5Y2YxZjEwZDVjODgyMWJhOGFhNzFiYzA5Li4yMjZjMGY0
YmU4ZTU1OGZmOTAwYjk0MWQwOGIyMDVhMWMyMmNhOWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI3LDEzICsyNywxMyBAQAogI2luY2x1ZGUg
Ik5vZGVSZW5kZXJpbmdDb250ZXh0LmgiCiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisj
aW5jbHVkZSAiQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmgiCisjaW5jbHVkZSAiSFRNTENvbnRl
bnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJl
YWQuaCIKICNpbmNsdWRlICJSZW5kZXJGdWxsU2NyZWVuLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRF
bGVtZW50LmgiCi0jaW5jbHVkZSAiU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCIKICNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCiAKICNpZiBFTkFCTEUoU1ZHKQpAQCAtMTExLDcgKzExMSw3IEBAIFBh
c3NSZWZQdHI8UmVuZGVyU3R5bGU+IE5vZGVSZW5kZXJpbmdDb250ZXh0OjpyZWxlYXNlU3R5bGUo
KQogICAgIHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKIH0KIAotc3RhdGljIFJlbmRlck9iamVj
dCogbmV4dFJlbmRlcmVyT2YoU2hhZG93Q29udGVudEVsZW1lbnQqIHBhcmVudCwgTm9kZSogY3Vy
cmVudCkKK3N0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlck9mKEhUTUxDb250ZW50RWxl
bWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQogewogICAgIFNoYWRvd0luY2x1c2lvbiogY3Vy
cmVudEluY2x1c2lvbiA9IHBhcmVudC0+aW5jbHVzaW9ucygpLT5maW5kKGN1cnJlbnQpOwogICAg
IGlmICghY3VycmVudEluY2x1c2lvbikKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0aWMgUmVuZGVy
T2JqZWN0KiBuZXh0UmVuZGVyZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2Rl
KiBjdXJyZW50KQogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2
aW91c1JlbmRlcmVyT2YoU2hhZG93Q29udGVudEVsZW1lbnQqIHBhcmVudCwgTm9kZSogY3VycmVu
dCkKK3N0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXJPZihIVE1MQ29udGVudEVs
ZW1lbnQqIHBhcmVudCwgTm9kZSogY3VycmVudCkKIHsKICAgICBSZW5kZXJPYmplY3QqIGxhc3RS
ZW5kZXJlciA9IDA7CiAKQEAgLTEzOSw3ICsxMzksNyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBw
cmV2aW91c1JlbmRlcmVyT2YoU2hhZG93Q29udGVudEVsZW1lbnQqIHBhcmVudCwgTm9kZSogY3Vy
cgogICAgIHJldHVybiBsYXN0UmVuZGVyZXI7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIGZp
cnN0UmVuZGVyZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50KQorc3RhdGljIFJlbmRl
ck9iamVjdCogZmlyc3RSZW5kZXJlck9mKEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50KQogewog
ICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBwYXJlbnQtPmluY2x1c2lvbnMo
KS0+Zmlyc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNsdXNpb24tPm5leHQoKSkgewog
ICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGluY2x1c2lvbi0+Y29udGVudCgp
LT5yZW5kZXJlcigpKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIGZp
cnN0UmVuZGVyZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50KQogICAgIHJldHVybiAw
OwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXJPZihTaGFkb3dDb250ZW50
RWxlbWVudCogcGFyZW50KQorc3RhdGljIFJlbmRlck9iamVjdCogbGFzdFJlbmRlcmVyT2YoSFRN
TENvbnRlbnRFbGVtZW50KiBwYXJlbnQpCiB7CiAgICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGlu
Y2x1c2lvbiA9IHBhcmVudC0+aW5jbHVzaW9ucygpLT5sYXN0KCk7IGluY2x1c2lvbjsgaW5jbHVz
aW9uID0gaW5jbHVzaW9uLT5wcmV2aW91cygpKSB7CiAgICAgICAgIGlmIChSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyID0gaW5jbHVzaW9uLT5jb250ZW50KCktPnJlbmRlcmVyKCkpCkBAIC0xODcsNyAr
MTg3LDcgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6bmV4dFJlbmRlcmVy
KCkgY29uc3QKICAgICAgICAgICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigpOwogICAgICAgICB9
CiAgICAgICAgIGlmIChub2RlLT5pc0NvbnRlbnRFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIGlm
IChSZW5kZXJPYmplY3QqIGZpcnN0ID0gZmlyc3RSZW5kZXJlck9mKHRvU2hhZG93Q29udGVudEVs
ZW1lbnQobm9kZSkpKQorICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogZmlyc3QgPSBmaXJz
dFJlbmRlcmVyT2YodG9IVE1MQ29udGVudEVsZW1lbnQobm9kZSkpKQogICAgICAgICAgICAgICAg
IHJldHVybiBmaXJzdDsKICAgICAgICAgfQogICAgIH0KQEAgLTIyMCw3ICsyMjAsNyBAQCBSZW5k
ZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpwcmV2aW91c1JlbmRlcmVyKCkgY29uc3QK
ICAgICAgICAgICAgIHJldHVybiBub2RlLT5yZW5kZXJlcigpOwogICAgICAgICB9CiAgICAgICAg
IGlmIChub2RlLT5pc0NvbnRlbnRFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIGlmIChSZW5kZXJP
YmplY3QqIGxhc3QgPSBsYXN0UmVuZGVyZXJPZih0b1NoYWRvd0NvbnRlbnRFbGVtZW50KG5vZGUp
KSkKKyAgICAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGxhc3QgPSBsYXN0UmVuZGVyZXJPZih0
b0hUTUxDb250ZW50RWxlbWVudChub2RlKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3Q7
CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4
dC5oCmluZGV4IGI0ZTg5MTI5N2E2MmNiNDdkYjdjOTU4NDNhMGVhMDdkY2E0ZjZiYjAuLmQzMTQx
MTc2ZjIwNTQzNDIyNzBmNmE0ZTEzMWNmOWQ0YmJlZGU5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIE5vZGU7CiBj
bGFzcyBSZW5kZXJGbG93VGhyZWFkOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVy
U3R5bGU7Ci1jbGFzcyBTaGFkb3dDb250ZW50RWxlbWVudDsKK2NsYXNzIEhUTUxDb250ZW50RWxl
bWVudDsKIGNsYXNzIFNoYWRvd1Jvb3Q7CiAKIGNsYXNzIE5vZGVSZW5kZXJpbmdDb250ZXh0IHsK
QEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVy
ZXIoKSBjb25zdDsKICAgICBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlcigpIGNvbnN0OwogICAg
IFJlbmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlcigpIGNvbnN0OwotICAgIFNoYWRvd0NvbnRl
bnRFbGVtZW50KiBpbmNsdWRlcigpIGNvbnN0OworICAgIEhUTUxDb250ZW50RWxlbWVudCogaW5j
bHVkZXIoKSBjb25zdDsKIAogICAgIFJlbmRlclN0eWxlKiBzdHlsZSgpIGNvbnN0OwogICAgIHZv
aWQgc2V0U3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4pOwpAQCAtODYsNyArODYsNyBAQCBw
cml2YXRlOgogICAgIE5vZGUqIG1fbm9kZTsKICAgICBDb250YWluZXJOb2RlKiBtX3BhcmVudE5v
ZGVGb3JSZW5kZXJpbmdBbmRTdHlsZTsKICAgICBTaGFkb3dSb290KiBtX3Zpc3VhbFBhcmVudFNo
YWRvd1Jvb3Q7Ci0gICAgU2hhZG93Q29udGVudEVsZW1lbnQqIG1faW5jbHVkZXI7CisgICAgSFRN
TENvbnRlbnRFbGVtZW50KiBtX2luY2x1ZGVyOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9z
dHlsZTsKICAgICBSZW5kZXJGbG93VGhyZWFkKiBtX3BhcmVudEZsb3dSZW5kZXJlcjsKICAgICBB
dG9taWNTdHJpbmcgbV9mbG93VGhyZWFkOwpAQCAtMTA4LDcgKzEwOCw3IEBAIGlubGluZSBSZW5k
ZXJTdHlsZSogTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnN0eWxlKCkgY29uc3QKICAgICByZXR1cm4g
bV9zdHlsZS5nZXQoKTsKIH0KIAotaW5saW5lIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6aW5jbHVkZXIoKSBjb25zdAoraW5saW5lIEhUTUxDb250ZW50RWxlbWVu
dCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6OmluY2x1ZGVyKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9pbmNsdWRlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250
ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2M2JjZjAxZTMwZjA5OGI2MTJlYTk3
NDZkMjAzM2JjNzU3NTc5ZTI0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCi0KLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNp
bmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudFNlbGVjdG9y
UXVlcnkuaCIKLSNpbmNsdWRlICJTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIgotI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotdXNpbmcgSFRNTE5hbWVzOjpzZWxlY3RBdHRyOwotCi1QYXNzUmVmUHRy
PFNoYWRvd0NvbnRlbnRFbGVtZW50PiBTaGFkb3dDb250ZW50RWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50KiBkb2N1bWVudCkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUs
IHRhZ05hbWUsIChudWxsQXRvbSwgIndlYmtpdFNoYWRvd0NvbnRlbnQiLCBIVE1MTmFtZXM6OmRp
dlRhZy5uYW1lc3BhY2VVUkkoKSkpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93Q29u
dGVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKLX0KLQotU2hhZG93Q29udGVudEVsZW1l
bnQ6OlNoYWRvd0NvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIERvY3Vt
ZW50KiBkb2N1bWVudCkKLSAgICA6IFN0eWxlZEVsZW1lbnQobmFtZSwgZG9jdW1lbnQsIENyZWF0
ZUhUTUxFbGVtZW50KQotICAgICwgbV9pbmNsdXNpb25zKGFkb3B0UHRyKG5ldyBTaGFkb3dJbmNs
dXNpb25MaXN0KCkpKQotewotfQotCi1TaGFkb3dDb250ZW50RWxlbWVudDo6flNoYWRvd0NvbnRl
bnRFbGVtZW50KCkKLXsKLX0KLQotdm9pZCBTaGFkb3dDb250ZW50RWxlbWVudDo6YXR0YWNoKCkK
LXsKLSAgICBBU1NFUlQoIWZpcnN0Q2hpbGQoKSk7IC8vIEN1cnJlbnRseSBkb2Vzbid0IHN1cHBv
cnQgYW55IGxpZ2h0IGNoaWxkLgotICAgIFN0eWxlZEVsZW1lbnQ6OmF0dGFjaCgpOwotCi0gICAg
aWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1NoYWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkp
KSB7Ci0gICAgICAgIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmVu
c3VyZUluY2x1c2lvbnMoKTsKLSAgICAgICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1faW5jbHVzaW9u
cy5nZXQoKSk7Ci0gICAgICAgIHNlbGVjdG9yLT5zZWxlY3QodGhpcywgbV9pbmNsdXNpb25zLmdl
dCgpKTsKLSAgICAgICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IG1faW5jbHVz
aW9ucy0+Zmlyc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNsdXNpb24tPm5leHQoKSkK
LSAgICAgICAgICAgIGluY2x1c2lvbi0+Y29udGVudCgpLT5kZXRhY2goKTsKLSAgICAgICAgZm9y
IChTaGFkb3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IG1faW5jbHVzaW9ucy0+Zmlyc3QoKTsgaW5j
bHVzaW9uOyBpbmNsdXNpb24gPSBpbmNsdXNpb24tPm5leHQoKSkKLSAgICAgICAgICAgIGluY2x1
c2lvbi0+Y29udGVudCgpLT5hdHRhY2goKTsKLSAgICB9Ci19Ci0KLXZvaWQgU2hhZG93Q29udGVu
dEVsZW1lbnQ6OmRldGFjaCgpCi17Ci0gICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1NoYWRv
d1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpKSB7Ci0gICAgICAgIGlmIChTaGFkb3dJbmNsdXNp
b25TZWxlY3Rvciogc2VsZWN0b3IgPSByb290LT5pbmNsdXNpb25zKCkpCi0gICAgICAgICAgICBz
ZWxlY3Rvci0+dW5zZWxlY3QobV9pbmNsdXNpb25zLmdldCgpKTsKLSAgICB9Ci0KLSAgICBBU1NF
UlQobV9pbmNsdXNpb25zLT5pc0VtcHR5KCkpOwotICAgIFN0eWxlZEVsZW1lbnQ6OmRldGFjaCgp
OwotfQotCi1jb25zdCBBdG9taWNTdHJpbmcmIFNoYWRvd0NvbnRlbnRFbGVtZW50OjpzZWxlY3Qo
KSBjb25zdAotewotICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoc2VsZWN0QXR0cik7Ci19Ci0KLXZv
aWQgU2hhZG93Q29udGVudEVsZW1lbnQ6OnNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmIHNl
bGVjdFZhbHVlKQotewotICAgIHNldEF0dHJpYnV0ZShzZWxlY3RBdHRyLCBzZWxlY3RWYWx1ZSk7
Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjZTQ3YWRjMTEzZmZhMzgzY2QyOThlODE0Y2E0Yjdk
OWI4ZGNmZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw4MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0g
KiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0g
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTaGFkb3dDb250ZW50RWxlbWVudF9oCi0jZGVmaW5lIFNo
YWRvd0NvbnRlbnRFbGVtZW50X2gKLQotI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKLSNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNoYWRv
d0NvbnRlbnRTZWxlY3RvclF1ZXJ5OwotY2xhc3MgU2hhZG93SW5jbHVzaW9uTGlzdDsKLQotLy8g
Tk9URTogQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgZHluYW1pYyBpbnNl
cnRpb24vZGVsZXRpb24gb2YgU2hhZG93Q29udGVudEVsZW1lbnQuCi0vLyBZb3Ugc2hvdWxkIGNy
ZWF0ZSBTaGFkb3dDb250ZW50RWxlbWVudCBkdXJpbmcgdGhlIGhvc3QgY29uc3RydWN0aW9uLgot
Y2xhc3MgU2hhZG93Q29udGVudEVsZW1lbnQgOiBwdWJsaWMgU3R5bGVkRWxlbWVudCB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhZG93Q29udGVudEVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCopOwotCi0gICAgdmlydHVhbCB+U2hhZG93Q29udGVudEVsZW1lbnQoKTsKLSAgICB2
aXJ0dWFsIHZvaWQgYXR0YWNoKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwotCi0gICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3QoKSBjb25zdDsKLQotICAgIC8vIEZJWE1FOiBDdXJy
ZW50bHkgdGhpcyBjb25zdHJ1Y3RvciBhY2NlcHRzIHdpZGVyIHF1ZXJ5IHRoYW4gc2hhZG93IGRv
bSBzcGVjLgotICAgIC8vIEZvciBleGFtcGxlLCBhIHNlbGVjdG9yIHF1ZXJ5IHNob3VsZCBub3Qg
aW5jbHVkZSBjb250ZXh0dWFsIHNlbGVjdG9ycy4KLSAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTQ2Ci0gICAgLy8gRklYTUU6IEN1cnJlbnRseSB3
ZSBkb24ndCBzdXBwb3J0IHNldHRpbmcgc2VsZWN0IHZhbHVlIGR5bmFtaWNhbGx5LgotICAgIC8v
IFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNjEKLSAgICB2
b2lkIHNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmKTsKLQotICAgIGNvbnN0IFNoYWRvd0lu
Y2x1c2lvbkxpc3QqIGluY2x1c2lvbnMoKSBjb25zdCB7IHJldHVybiBtX2luY2x1c2lvbnMuZ2V0
KCk7IH0KLQotcHJvdGVjdGVkOgotICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc0Nv
bnRlbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEqLCBSZW5kZXJTdHlsZSopIHsgcmV0dXJuIDA7IH0KLQotICAgIE93blB0cjxTaGFkb3dJbmNs
dXNpb25MaXN0PiBtX2luY2x1c2lvbnM7Ci19OwotCi1pbmxpbmUgU2hhZG93Q29udGVudEVsZW1l
bnQqIHRvU2hhZG93Q29udGVudEVsZW1lbnQoTm9kZSogbm9kZSkKLXsKLSAgICBBU1NFUlQoIW5v
ZGUgfHwgbm9kZS0+aXNDb250ZW50RWxlbWVudCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
U2hhZG93Q29udGVudEVsZW1lbnQqPihub2RlKTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTA2MWU3ODY3YjI1YmU1ZmVhZjFjYmY0Zjc0NDhkMjM5
Yjc0MmNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNo
YWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCi0KLSNpbmNsdWRlICJDU1NQYXJzZXIuaCIKLSNp
bmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVu
dC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5
OjpTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeShTaGFkb3dDb250ZW50RWxlbWVudCogZWxlbWVu
dCkKLSAgICA6IG1fY29udGVudEVsZW1lbnQoZWxlbWVudCkKLSAgICAsIG1fc2VsZWN0b3JDaGVj
a2VyKGVsZW1lbnQtPmRvY3VtZW50KCksICFlbGVtZW50LT5kb2N1bWVudCgpLT5pblF1aXJrc01v
ZGUoKSkKLXsKLSAgICBtX3NlbGVjdG9yQ2hlY2tlci5zZXRDb2xsZWN0aW5nUnVsZXNPbmx5KHRy
dWUpOwotCi0gICAgaWYgKGVsZW1lbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IGVsZW1lbnQtPnNl
bGVjdCgpLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ1NTUGFyc2VyIHBhcnNl
cih0cnVlKTsKLSAgICBwYXJzZXIucGFyc2VTZWxlY3RvcihlbGVtZW50LT5zZWxlY3QoKSwgZWxl
bWVudC0+ZG9jdW1lbnQoKSwgbV9zZWxlY3Rvckxpc3QpOwotCi0gICAgbV9zZWxlY3RvcnMuaW5p
dGlhbGl6ZShtX3NlbGVjdG9yTGlzdCk7Ci19Ci0KLWJvb2wgU2hhZG93Q29udGVudFNlbGVjdG9y
UXVlcnk6Om1hdGNoZXMoTm9kZSogbm9kZSkgY29uc3QKLXsKLSAgICBBU1NFUlQobm9kZSk7Ci0g
ICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBBU1NFUlQobm9kZS0+
cGFyZW50Tm9kZSgpID09IG1fY29udGVudEVsZW1lbnQtPnNoYWRvd1RyZWVSb290Tm9kZSgpLT5z
aGFkb3dIb3N0KCkpOwotCi0gICAgaWYgKG1fY29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlzTnVs
bCgpIHx8IG1fY29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0KLSAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1fc2VsZWN0b3JzLm1hdGNoZXMobV9zZWxlY3RvckNo
ZWNrZXIsIHRvRWxlbWVudChub2RlKSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQ1Njg3M2IzNDMwYzNhMmMyNDdhMTgwYWU0ZGEzZGIxMDRmMDczMGEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeV9oCi0jZGVmaW5lIFNoYWRvd0NvbnRl
bnRTZWxlY3RvclF1ZXJ5X2gKLQotI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgotI2luY2x1
ZGUgIlNlbGVjdG9yQ2hlY2tlci5oIgotI2luY2x1ZGUgIlNlbGVjdG9yUXVlcnkuaCIKLSNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIE5vZGU7Ci1jbGFzcyBTaGFkb3dD
b250ZW50RWxlbWVudDsKLQotY2xhc3MgU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkgewotICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5KTsKLXB1Ymxp
YzoKLSAgICBleHBsaWNpdCBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeShTaGFkb3dDb250ZW50
RWxlbWVudCopOwotCi0gICAgYm9vbCBtYXRjaGVzKE5vZGUqKSBjb25zdDsKLQotcHJpdmF0ZToK
LSAgICBTaGFkb3dDb250ZW50RWxlbWVudCogbV9jb250ZW50RWxlbWVudDsKLSAgICBTZWxlY3Rv
ckRhdGFMaXN0IG1fc2VsZWN0b3JzOwotICAgIENTU1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9yTGlz
dDsKLSAgICBTZWxlY3RvckNoZWNrZXIgbV9zZWxlY3RvckNoZWNrZXI7Ci19OwotCi19Ci0KLQot
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25T
ZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3Iu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1N2U5ZDQyYmU1MWI1ZTQ1MmM0ZDQw
NTRlMjBiYTRjN2I4NTU0OGExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIgotCi0jaW5jbHVkZSAiU2hhZG93Q29u
dGVudEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIgot
I2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQg
U2hhZG93SW5jbHVzaW9uOjphcHBlbmQoUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG5leHQp
Ci17Ci0gICAgQVNTRVJUKCFtX25leHQpOwotICAgIEFTU0VSVCghbmV4dC0+cHJldmlvdXMoKSk7
Ci0gICAgbV9uZXh0ID0gbmV4dDsKLSAgICBtX25leHQtPm1fcHJldmlvdXMgPSB0aGlzOwotfQot
Ci12b2lkIFNoYWRvd0luY2x1c2lvbjo6dW5saW5rKCkKLXsKLSAgICBBU1NFUlQoIW1fcHJldmlv
dXMpOyAvLyBDYW4gYmUgY2FsbGVkIG9ubHkgZm9yIGEgaGVhZC4KLSAgICBSZWZQdHI8U2hhZG93
SW5jbHVzaW9uPiBpdGVtID0gdGhpczsKLSAgICB3aGlsZSAoaXRlbSkgewotICAgICAgICBBU1NF
UlQoIWl0ZW0tPnByZXZpb3VzKCkpOwotICAgICAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBu
ZXh0SXRlbSA9IGl0ZW0tPm1fbmV4dDsKLSAgICAgICAgaXRlbS0+bV9uZXh0LmNsZWFyKCk7Ci0g
ICAgICAgIGlmIChuZXh0SXRlbSkKLSAgICAgICAgICAgIG5leHRJdGVtLT5tX3ByZXZpb3VzLmNs
ZWFyKCk7Ci0gICAgICAgIGl0ZW0gPSBuZXh0SXRlbTsKLSAgICB9Ci19Ci0KLVNoYWRvd0luY2x1
c2lvbkxpc3Q6OlNoYWRvd0luY2x1c2lvbkxpc3QoKQotewotfQotCi1TaGFkb3dJbmNsdXNpb25M
aXN0Ojp+U2hhZG93SW5jbHVzaW9uTGlzdCgpCi17Ci0gICAgQVNTRVJUKGlzRW1wdHkoKSk7Ci19
Ci0KLVNoYWRvd0luY2x1c2lvbiogU2hhZG93SW5jbHVzaW9uTGlzdDo6ZmluZChOb2RlKiBjb250
ZW50KSBjb25zdAotewotICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpdGVtID0gZmlyc3QoKTsg
aXRlbTsgaXRlbSA9IGl0ZW0tPm5leHQoKSkgewotICAgICAgICBpZiAoY29udGVudCA9PSBpdGVt
LT5jb250ZW50KCkpCi0gICAgICAgICAgICByZXR1cm4gaXRlbTsKLSAgICB9Ci0gICAgCi0gICAg
cmV0dXJuIDA7Ci19Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uTGlzdDo6Y2xlYXIoKQotewotICAg
IGlmIChpc0VtcHR5KCkpIHsKLSAgICAgICAgQVNTRVJUKCFtX2xhc3QpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgbV9maXJzdC0+dW5saW5rKCk7Ci0gICAgbV9maXJzdC5jbGVhcigp
OwotICAgIG1fbGFzdC5jbGVhcigpOwotfQotCi12b2lkIFNoYWRvd0luY2x1c2lvbkxpc3Q6OmFw
cGVuZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gY2hpbGQpCi17Ci0gICAgaWYgKGlzRW1w
dHkoKSkgewotICAgICAgICBBU1NFUlQoIW1fbGFzdCk7Ci0gICAgICAgIG1fZmlyc3QgPSBtX2xh
c3QgPSBjaGlsZDsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fbGFzdC0+YXBwZW5k
KGNoaWxkKTsKLSAgICBtX2xhc3QgPSBtX2xhc3QtPm5leHQoKTsKLX0KLQotU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3I6OlNoYWRvd0luY2x1c2lvblNlbGVjdG9yKCkKLXsKLX0KLQotU2hhZG93SW5j
bHVzaW9uU2VsZWN0b3I6On5TaGFkb3dJbmNsdXNpb25TZWxlY3RvcigpCi17Ci0gICAgQVNTRVJU
KG1fY2FuZGlkYXRlcy5pc0VtcHR5KCkpOwotfQotCi12b2lkIFNoYWRvd0luY2x1c2lvblNlbGVj
dG9yOjpzZWxlY3QoU2hhZG93Q29udGVudEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50LCBTaGFkb3dJ
bmNsdXNpb25MaXN0KiBpbmNsdXNpb25zKQotewotICAgIEFTU0VSVChpbmNsdXNpb25zLT5pc0Vt
cHR5KCkpOwotCi0gICAgU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkgcXVlcnkoY29udGVudEVs
ZW1lbnQpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jYW5kaWRhdGVzLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIE5vZGUqIGNoaWxkID0gbV9jYW5kaWRhdGVzW2ldLmdldCgpOwotICAg
ICAgICBpZiAoIWNoaWxkKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmICghcXVl
cnkubWF0Y2hlcyhjaGlsZCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBSZWZQ
dHI8U2hhZG93SW5jbHVzaW9uPiBpbmNsdXNpb24gPSBTaGFkb3dJbmNsdXNpb246OmNyZWF0ZShj
b250ZW50RWxlbWVudCwgY2hpbGQpOwotICAgICAgICBpbmNsdXNpb25zLT5hcHBlbmQoaW5jbHVz
aW9uKTsKLSAgICAgICAgbV9pbmNsdXNpb25TZXQuYWRkKGluY2x1c2lvbi5nZXQoKSk7Ci0gICAg
ICAgIG1fY2FuZGlkYXRlc1tpXSA9IDA7Ci0gICAgfQotfQotCi12b2lkIFNoYWRvd0luY2x1c2lv
blNlbGVjdG9yOjp1bnNlbGVjdChTaGFkb3dJbmNsdXNpb25MaXN0KiBsaXN0KQotewotICAgIGZv
ciAoU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBsaXN0LT5maXJzdCgpOyBpbmNsdXNpb247
IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQotICAgICAgICBtX2luY2x1c2lvblNldC5y
ZW1vdmUoaW5jbHVzaW9uKTsKLSAgICBsaXN0LT5jbGVhcigpOwotfQotCi1TaGFkb3dJbmNsdXNp
b24qIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yOjpmaW5kRm9yKE5vZGUqIGtleSkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9pbmNsdXNpb25TZXQuZmluZChrZXkpOwotfQotCi12b2lkIFNoYWRvd0lu
Y2x1c2lvblNlbGVjdG9yOjpkaWRTZWxlY3QoKQotewotICAgIG1fY2FuZGlkYXRlcy5jbGVhcigp
OwotfQotCi12b2lkIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yOjp3aWxsU2VsZWN0T3ZlcihTaGFk
b3dSb290KiBzY29wZSkKLXsKLSAgICBpZiAoIW1fY2FuZGlkYXRlcy5pc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybjsKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBzY29wZS0+c2hhZG93SG9zdCgpLT5m
aXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKQotICAgICAgICBt
X2NhbmRpZGF0ZXMuYXBwZW5kKG5vZGUpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
MWE4NzE3NDQxYjE5YzJkNmFmYTBlOGYzNDA3NTg0MTAyMThiNGU1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJ
bmNsdXNpb25TZWxlY3Rvci5oCisrKyAvZGV2L251bGwKQEAgLTEsMTUwICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFNoYWRvd0luY2x1c2lvblNlbGVjdG9yX2gKLSNkZWZpbmUgU2hhZG93SW5jbHVzaW9uU2VsZWN0
b3JfaAotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEVsZW1lbnQ7Ci1jbGFzcyBOb2RlOwotY2xh
c3MgU2hhZG93Um9vdDsKLWNsYXNzIFNoYWRvd0NvbnRlbnRFbGVtZW50OwotCi1jbGFzcyBTaGFk
b3dJbmNsdXNpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFkb3dJbmNsdXNpb24+IHsKLXB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGNyZWF0ZShTaGFkb3dD
b250ZW50RWxlbWVudCosIE5vZGUqKTsKLQotICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBpbmNs
dWRlcigpIGNvbnN0IHsgcmV0dXJuIG1faW5jbHVkZXI7IH0KLSAgICBOb2RlKiBjb250ZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9jb250ZW50LmdldCgpOyB9Ci0gICAgU2hhZG93SW5jbHVzaW9uKiBu
ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9uZXh0LmdldCgpOyB9Ci0gICAgU2hhZG93SW5jbHVzaW9u
KiBwcmV2aW91cygpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXMuZ2V0KCk7IH0KLQotICAgIHZv
aWQgYXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPik7Ci0gICAgdm9pZCB1bmxpbmso
KTsKLQotcHJpdmF0ZToKLSAgICBTaGFkb3dJbmNsdXNpb24oU2hhZG93Q29udGVudEVsZW1lbnQq
LCBOb2RlKik7Ci0KLSAgICBTaGFkb3dDb250ZW50RWxlbWVudCogbV9pbmNsdWRlcjsKLSAgICBS
ZWZQdHI8Tm9kZT4gbV9jb250ZW50OwotICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG1fbmV4
dDsKLSAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBtX3ByZXZpb3VzOwotfTsKLQotaW5saW5l
IFNoYWRvd0luY2x1c2lvbjo6U2hhZG93SW5jbHVzaW9uKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBp
bmNsdWRlciwgTm9kZSogY29udGVudCkKLSAgICA6IG1faW5jbHVkZXIoaW5jbHVkZXIpLCBtX2Nv
bnRlbnQoY29udGVudCkKLXsgfQotCi1pbmxpbmUgUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+
IFNoYWRvd0luY2x1c2lvbjo6Y3JlYXRlKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBpbmNsdWRlciwg
Tm9kZSogY29udGVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYWRvd0luY2x1c2lv
bihpbmNsdWRlciwgY29udGVudCkpOwotfQotCi1jbGFzcyBTaGFkb3dJbmNsdXNpb25MaXN0IHsK
LXB1YmxpYzoKLSAgICBTaGFkb3dJbmNsdXNpb25MaXN0KCk7Ci0gICAgflNoYWRvd0luY2x1c2lv
bkxpc3QoKTsKLQotICAgIFNoYWRvd0luY2x1c2lvbiogZmlyc3QoKSBjb25zdCB7IHJldHVybiBt
X2ZpcnN0LmdldCgpOyB9Ci0gICAgU2hhZG93SW5jbHVzaW9uKiBsYXN0KCkgY29uc3QgeyByZXR1
cm4gbV9sYXN0LmdldCgpOyB9Ci0gICAgU2hhZG93SW5jbHVzaW9uKiBmaW5kKE5vZGUqKSBjb25z
dDsKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9maXJzdDsgfQotCi0gICAg
dm9pZCBjbGVhcigpOwotICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9u
Pik7Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbV9maXJzdDsKLSAg
ICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBtX2xhc3Q7Ci19OwotCi0KLWNsYXNzIFNoYWRvd0lu
Y2x1c2lvblNldCB7Ci1wdWJsaWM6Ci0gICAgdm9pZCBhZGQoU2hhZG93SW5jbHVzaW9uKiB2YWx1
ZSkgeyBtX3NldC5hZGQodmFsdWUpOyB9Ci0gICAgdm9pZCByZW1vdmUoU2hhZG93SW5jbHVzaW9u
KiB2YWx1ZSkgeyBtX3NldC5yZW1vdmUodmFsdWUpOyB9Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29u
c3QgeyByZXR1cm4gbV9zZXQuaXNFbXB0eSgpOyB9Ci0gICAgU2hhZG93SW5jbHVzaW9uKiBmaW5k
KE5vZGUqIGtleSkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgc3RydWN0IFRyYW5zbGF0b3Igewot
ICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgTm9kZSoga2V5
KSB7IHJldHVybiBQdHJIYXNoPGNvbnN0IE5vZGUqPjo6aGFzaChrZXkpOyB9Ci0gICAgICAgIHN0
YXRpYyBib29sIGVxdWFsKGNvbnN0IFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uLCBjb25zdCBO
b2RlKiBjb250ZW50KSB7IHJldHVybiBpbmNsdXNpb24tPmNvbnRlbnQoKSA9PSBjb250ZW50OyB9
Ci0gICAgfTsKLQotICAgIHN0cnVjdCBIYXNoIHsKLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goU2hhZG93SW5jbHVzaW9uKiBrZXkpIHsgcmV0dXJuIFB0ckhhc2g8Y29uc3QgTm9kZSo+Ojpo
YXNoKGtleS0+Y29udGVudCgpKTsgfQotICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChTaGFkb3dJ
bmNsdXNpb24qIGEsIFNoYWRvd0luY2x1c2lvbiogYikgeyByZXR1cm4gYS0+Y29udGVudCgpID09
IGItPmNvbnRlbnQoKTsgfQotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJl
VG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwotICAgIH07Ci0KLSAgICB0eXBlZGVmIEhhc2hTZXQ8
U2hhZG93SW5jbHVzaW9uKiwgSGFzaD4gUG9pbnRlclNldDsKLQotICAgIFBvaW50ZXJTZXQgbV9z
ZXQ7Ci19OwotCi1pbmxpbmUgU2hhZG93SW5jbHVzaW9uKiBTaGFkb3dJbmNsdXNpb25TZXQ6OmZp
bmQoTm9kZSoga2V5KSBjb25zdAotewotICAgIFBvaW50ZXJTZXQ6Oml0ZXJhdG9yIGZvdW5kID0g
bV9zZXQuZmluZDxOb2RlKiwgU2hhZG93SW5jbHVzaW9uU2V0OjpUcmFuc2xhdG9yPihrZXkpOwot
ICAgIHJldHVybiBmb3VuZCAhPSBtX3NldC5lbmQoKSA/ICpmb3VuZCA6IDA7Ci19Ci0KLWNsYXNz
IFNoYWRvd0luY2x1c2lvblNlbGVjdG9yIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTaGFk
b3dJbmNsdXNpb25TZWxlY3Rvcik7Ci1wdWJsaWM6Ci0gICAgU2hhZG93SW5jbHVzaW9uU2VsZWN0
b3IoKTsKLSAgICB+U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IoKTsKLQotICAgIHZvaWQgc2VsZWN0
KFNoYWRvd0NvbnRlbnRFbGVtZW50KiwgU2hhZG93SW5jbHVzaW9uTGlzdCopOwotICAgIHZvaWQg
dW5zZWxlY3QoU2hhZG93SW5jbHVzaW9uTGlzdCopOwotICAgIFNoYWRvd0luY2x1c2lvbiogZmlu
ZEZvcihOb2RlKiBrZXkpIGNvbnN0OwotCi0gICAgdm9pZCB3aWxsU2VsZWN0T3ZlcihTaGFkb3dS
b290Kik7Ci0gICAgdm9pZCBkaWRTZWxlY3QoKTsKLSAgICBib29sIGhhc0NhbmRpZGF0ZXMoKSBj
b25zdCB7IHJldHVybiAhbV9jYW5kaWRhdGVzLmlzRW1wdHkoKTsgfQotCi1wcml2YXRlOgotICAg
IHZvaWQgcmVtb3ZlRnJvbVNldChTaGFkb3dJbmNsdXNpb25MaXN0Kik7Ci0gICAgdm9pZCBhZGRU
b1NldChTaGFkb3dJbmNsdXNpb25MaXN0Kik7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4g
bV9jYW5kaWRhdGVzOwotICAgIFNoYWRvd0luY2x1c2lvblNldCBtX2luY2x1c2lvblNldDsKLX07
Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggZTJjZTliMDQz
ZTk0NGIxYWM2MjJiNTVjMTAwOTExYzRiYjgyZTA0OS4uMjI5ZDU1ODE1YTdmYWVlZTQ3OGFkMjlh
NzA4YjI1ODk2YjI0ZWE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMjYsMTIg
KzI2LDEyIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTaGFkb3dSb290Lmgi
Ci0jaW5jbHVkZSAiRWxlbWVudC5oIgogCisjaW5jbHVkZSAiQ29udGVudEluY2x1c2lvblNlbGVj
dG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCi0j
aW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTaGFkb3dJbmNsdXNp
b25TZWxlY3Rvci5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgU2hhZG93Um9vdDo6cmVjYWxjU2hhZG93VHJlZVN0eWxl
KFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICBjbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwog
fQogCi1TaGFkb3dDb250ZW50RWxlbWVudCogU2hhZG93Um9vdDo6aW5jbHVkZXJGb3IoTm9kZSog
bm9kZSkgY29uc3QKK0hUTUxDb250ZW50RWxlbWVudCogU2hhZG93Um9vdDo6aW5jbHVkZXJGb3Io
Tm9kZSogbm9kZSkgY29uc3QKIHsKICAgICBpZiAoIW1faW5jbHVzaW9ucykKICAgICAgICAgcmV0
dXJuIDA7CkBAIC0xNTUsMTUgKzE1NSwxNSBAQCB2b2lkIFNoYWRvd1Jvb3Q6OmF0dGFjaCgpCiAg
ICAgICAgIG1faW5jbHVzaW9ucy0+ZGlkU2VsZWN0KCk7CiB9CiAKLVNoYWRvd0luY2x1c2lvblNl
bGVjdG9yKiBTaGFkb3dSb290OjppbmNsdXNpb25zKCkgY29uc3QKK0NvbnRlbnRJbmNsdXNpb25T
ZWxlY3RvciogU2hhZG93Um9vdDo6aW5jbHVzaW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
aW5jbHVzaW9ucy5nZXQoKTsKIH0KIAotU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIFNoYWRvd1Jv
b3Q6OmVuc3VyZUluY2x1c2lvbnMoKQorQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBTaGFkb3dS
b290OjplbnN1cmVJbmNsdXNpb25zKCkKIHsKICAgICBpZiAoIW1faW5jbHVzaW9ucykKLSAgICAg
ICAgbV9pbmNsdXNpb25zID0gYWRvcHRQdHIobmV3IFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKCkp
OworICAgICAgICBtX2luY2x1c2lvbnMgPSBhZG9wdFB0cihuZXcgQ29udGVudEluY2x1c2lvblNl
bGVjdG9yKCkpOwogICAgIG1faW5jbHVzaW9ucy0+d2lsbFNlbGVjdE92ZXIodGhpcyk7CiAgICAg
cmV0dXJuIG1faW5jbHVzaW9ucy5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4
IDM0ZGRmMzMwMTE1MjRkYTcyZGJkNmZhMjI0ZGI5NGJmNGFkOTEyZDMuLmM1YmMwZGJjYjVkMGNk
YjlhODM0NWJkOWExZjkyMTdlMjMwMmFjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAt
MzIsOCArMzIsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKLWNs
YXNzIFNoYWRvd0NvbnRlbnRFbGVtZW50OwotY2xhc3MgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I7
CitjbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7CitjbGFzcyBDb250ZW50SW5jbHVzaW9uU2VsZWN0
b3I7CiAKIGNsYXNzIFNoYWRvd1Jvb3QgOiBwdWJsaWMgVHJlZVNjb3BlIHsKIHB1YmxpYzoKQEAg
LTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWNhbGNTaGFkb3dUcmVlU3R5bGUo
U3R5bGVDaGFuZ2UpOwogCi0gICAgU2hhZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyRm9yKE5v
ZGUqKSBjb25zdDsKKyAgICBIVE1MQ29udGVudEVsZW1lbnQqIGluY2x1ZGVyRm9yKE5vZGUqKSBj
b25zdDsKICAgICB2b2lkIGhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKICAgICBib29sIGlzSW5jbHVz
aW9uU2VsZWN0b3JBY3RpdmUoKSBjb25zdDsKIApAQCAtNTAsOCArNTAsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRB
cHBseUF1dGhvclNoZWV0cyhib29sKTsKIAotICAgIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBp
bmNsdXNpb25zKCkgY29uc3Q7Ci0gICAgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIGVuc3VyZUlu
Y2x1c2lvbnMoKTsKKyAgICBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIGluY2x1c2lvbnMoKSBj
b25zdDsKKyAgICBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIGVuc3VyZUluY2x1c2lvbnMoKTsK
IAogcHJpdmF0ZToKICAgICBTaGFkb3dSb290KERvY3VtZW50Kik7CkBAIC02NSw3ICs2NSw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBoYXNDb250ZW50RWxlbWVudCgpIGNvbnN0OwogCiAgICAgYm9v
bCBtX2FwcGx5QXV0aG9yU2hlZXRzOwotICAgIE93blB0cjxTaGFkb3dJbmNsdXNpb25TZWxlY3Rv
cj4gbV9pbmNsdXNpb25zOworICAgIE93blB0cjxDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I+IG1f
aW5jbHVzaW9uczsKIH07CiAKIGlubGluZSBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IFNoYWRvd1Jv
b3Q6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
ZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggYWFhMDVlMTQ1NzRkNDA3OWZjZTA4ZTE1NjZjZTBiYmRk
NjRmNzM2NS4uZGRlYzczODc2NjQ4MDAzZTJmOTFjNzcwZDFhODE1MjAyMzJiN2Y1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMjMsMTIgKzIzLDEy
IEBACiAKICNpZiBFTkFCTEUoREVUQUlMUykKIAorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxTdW1tYXJ5RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRGV0YWlscy5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRF
bGVtZW50LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIApA
QCAtNDIsMTMgKzQyLDEzIEBAIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1bW1hcnlRdWVy
eVNlbGVjdG9yKCkKICAgICByZXR1cm4gc2VsZWN0b3I7CiB9OwogCi1jbGFzcyBEZXRhaWxzQ29u
dGVudEVsZW1lbnQgOiBwdWJsaWMgU2hhZG93Q29udGVudEVsZW1lbnQgeworY2xhc3MgRGV0YWls
c0NvbnRlbnRFbGVtZW50IDogcHVibGljIEhUTUxDb250ZW50RWxlbWVudCB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RGV0YWlsc0NvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQqKTsKIAogcHJpdmF0ZToKICAgICBEZXRhaWxzQ29udGVudEVsZW1lbnQoRG9jdW1lbnQqIGRv
Y3VtZW50KQotICAgICAgICA6IFNoYWRvd0NvbnRlbnRFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFn
LCBkb2N1bWVudCkKKyAgICAgICAgOiBIVE1MQ29udGVudEVsZW1lbnQoSFRNTE5hbWVzOjpkaXZU
YWcsIGRvY3VtZW50KQogICAgIHsKICAgICB9CiB9OwpAQCAtNTgsMTMgKzU4LDEzIEBAIFBhc3NS
ZWZQdHI8RGV0YWlsc0NvbnRlbnRFbGVtZW50PiBEZXRhaWxzQ29udGVudEVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZXRhaWxzQ29udGVu
dEVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAotY2xhc3MgRGV0YWlsc1N1bW1hcnlFbGVtZW50IDog
cHVibGljIFNoYWRvd0NvbnRlbnRFbGVtZW50IHsKK2NsYXNzIERldGFpbHNTdW1tYXJ5RWxlbWVu
dCA6IHB1YmxpYyBIVE1MQ29udGVudEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERldGFpbHNTdW1tYXJ5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAKIHByaXZh
dGU6CiAgICAgRGV0YWlsc1N1bW1hcnlFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICAg
ICAgOiBTaGFkb3dDb250ZW50RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCisg
ICAgICAgIDogSFRNTENvbnRlbnRFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkK
ICAgICB7CiAgICAgICAgIHNldFNlbGVjdChzdW1tYXJ5UXVlcnlTZWxlY3RvcigpKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCmluZGV4IGI2
MjRlNjI3YmExN2MxOTI3NTU3NzQyNmU0NmZiM2ZiNjExMzlkY2IuLjI3NGExODZmMTYxODlmYTQx
ZWVhMDM2NTYxNjM5MmUwMjExMGI5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnRzQWxsSW5PbmUuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSFRNTEJvZHlF
bGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MQnV0dG9uRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
SFRNTENhbnZhc0VsZW1lbnQuY3BwIgorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5jcHAi
CiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTERldGFp
bHNFbGVtZW50LmNwcCIKICNpbmNsdWRlICJIVE1MRExpc3RFbGVtZW50LmNwcCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCBlY2YxMDg1Y2UzMGZlMGYz
YjkzZTFjZGUyNWViNTQ0ZmE3ZGI0ZjRiLi45OTI1NjI3ZmU1Y2UzYWE0YTk5YjIzMzAxNTI4MGMw
Yzc0MzY4NTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3Bw
CkBAIC0yNCwxMiArMjQsMTIgQEAKICNpZiBFTkFCTEUoREVUQUlMUykKIAogI2luY2x1ZGUgIkRl
dGFpbHNNYXJrZXJDb250cm9sLmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTERldGFpbHNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAj
aW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIlJlbmRlclN1bW1hcnkuaCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVu
dC5oIgogCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogCkBAIC0zNywxMyArMzcsMTMgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1jbGFzcyBT
dW1tYXJ5Q29udGVudEVsZW1lbnQgOiBwdWJsaWMgU2hhZG93Q29udGVudEVsZW1lbnQgeworY2xh
c3MgU3VtbWFyeUNvbnRlbnRFbGVtZW50IDogcHVibGljIEhUTUxDb250ZW50RWxlbWVudCB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3VtbWFyeUNvbnRlbnRFbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQqKTsKIAogcHJpdmF0ZToKICAgICBTdW1tYXJ5Q29udGVudEVsZW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50KQotICAgICAgICA6IFNoYWRvd0NvbnRlbnRFbGVtZW50KEhUTUxOYW1l
czo6ZGl2VGFnLCBkb2N1bWVudCkKKyAgICAgICAgOiBIVE1MQ29udGVudEVsZW1lbnQoSFRNTE5h
bWVzOjpkaXZUYWcsIGRvY3VtZW50KQogICAgIHsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmI1NDFhNWFlODk4NzU5OGViOWE5MTMyNzRhNWM0YzZhY2Y4MGRjNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRJbmNsdXNpb25T
ZWxlY3Rvci5jcHAKQEAgLTAsMCArMSwxNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmgiCisKKyNpbmNsdWRlICJDb250ZW50U2Vs
ZWN0b3JRdWVyeS5oIgorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgorI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgU2hhZG93SW5j
bHVzaW9uOjphcHBlbmQoUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG5leHQpCit7CisgICAg
QVNTRVJUKCFtX25leHQpOworICAgIEFTU0VSVCghbmV4dC0+cHJldmlvdXMoKSk7CisgICAgbV9u
ZXh0ID0gbmV4dDsKKyAgICBtX25leHQtPm1fcHJldmlvdXMgPSB0aGlzOworfQorCit2b2lkIFNo
YWRvd0luY2x1c2lvbjo6dW5saW5rKCkKK3sKKyAgICBBU1NFUlQoIW1fcHJldmlvdXMpOyAvLyBD
YW4gYmUgY2FsbGVkIG9ubHkgZm9yIGEgaGVhZC4KKyAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9u
PiBpdGVtID0gdGhpczsKKyAgICB3aGlsZSAoaXRlbSkgeworICAgICAgICBBU1NFUlQoIWl0ZW0t
PnByZXZpb3VzKCkpOworICAgICAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBuZXh0SXRlbSA9
IGl0ZW0tPm1fbmV4dDsKKyAgICAgICAgaXRlbS0+bV9uZXh0LmNsZWFyKCk7CisgICAgICAgIGlm
IChuZXh0SXRlbSkKKyAgICAgICAgICAgIG5leHRJdGVtLT5tX3ByZXZpb3VzLmNsZWFyKCk7Cisg
ICAgICAgIGl0ZW0gPSBuZXh0SXRlbTsKKyAgICB9Cit9CisKK1NoYWRvd0luY2x1c2lvbkxpc3Q6
OlNoYWRvd0luY2x1c2lvbkxpc3QoKQoreworfQorCitTaGFkb3dJbmNsdXNpb25MaXN0Ojp+U2hh
ZG93SW5jbHVzaW9uTGlzdCgpCit7CisgICAgQVNTRVJUKGlzRW1wdHkoKSk7Cit9CisKK1NoYWRv
d0luY2x1c2lvbiogU2hhZG93SW5jbHVzaW9uTGlzdDo6ZmluZChOb2RlKiBjb250ZW50KSBjb25z
dAoreworICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpdGVtID0gZmlyc3QoKTsgaXRlbTsgaXRl
bSA9IGl0ZW0tPm5leHQoKSkgeworICAgICAgICBpZiAoY29udGVudCA9PSBpdGVtLT5jb250ZW50
KCkpCisgICAgICAgICAgICByZXR1cm4gaXRlbTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIDA7
Cit9CisKK3ZvaWQgU2hhZG93SW5jbHVzaW9uTGlzdDo6Y2xlYXIoKQoreworICAgIGlmIChpc0Vt
cHR5KCkpIHsKKyAgICAgICAgQVNTRVJUKCFtX2xhc3QpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9maXJzdC0+dW5saW5rKCk7CisgICAgbV9maXJzdC5jbGVhcigpOworICAgIG1f
bGFzdC5jbGVhcigpOworfQorCit2b2lkIFNoYWRvd0luY2x1c2lvbkxpc3Q6OmFwcGVuZChQYXNz
UmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gY2hpbGQpCit7CisgICAgaWYgKGlzRW1wdHkoKSkgewor
ICAgICAgICBBU1NFUlQoIW1fbGFzdCk7CisgICAgICAgIG1fZmlyc3QgPSBtX2xhc3QgPSBjaGls
ZDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fbGFzdC0+YXBwZW5kKGNoaWxkKTsK
KyAgICBtX2xhc3QgPSBtX2xhc3QtPm5leHQoKTsKK30KKworQ29udGVudEluY2x1c2lvblNlbGVj
dG9yOjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IoKQoreworfQorCitDb250ZW50SW5jbHVzaW9u
U2VsZWN0b3I6On5Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IoKQoreworICAgIEFTU0VSVChtX2Nh
bmRpZGF0ZXMuaXNFbXB0eSgpKTsKK30KKwordm9pZCBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6
OnNlbGVjdChIVE1MQ29udGVudEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50LCBTaGFkb3dJbmNsdXNp
b25MaXN0KiBpbmNsdXNpb25zKQoreworICAgIEFTU0VSVChpbmNsdXNpb25zLT5pc0VtcHR5KCkp
OworCisgICAgQ29udGVudFNlbGVjdG9yUXVlcnkgcXVlcnkoY29udGVudEVsZW1lbnQpOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jYW5kaWRhdGVzLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIE5vZGUqIGNoaWxkID0gbV9jYW5kaWRhdGVzW2ldLmdldCgpOworICAgICAgICBpZiAoIWNo
aWxkKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghcXVlcnkubWF0Y2hlcyhj
aGlsZCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBSZWZQdHI8U2hhZG93SW5j
bHVzaW9uPiBpbmNsdXNpb24gPSBTaGFkb3dJbmNsdXNpb246OmNyZWF0ZShjb250ZW50RWxlbWVu
dCwgY2hpbGQpOworICAgICAgICBpbmNsdXNpb25zLT5hcHBlbmQoaW5jbHVzaW9uKTsKKyAgICAg
ICAgbV9pbmNsdXNpb25TZXQuYWRkKGluY2x1c2lvbi5nZXQoKSk7CisgICAgICAgIG1fY2FuZGlk
YXRlc1tpXSA9IDA7CisgICAgfQorfQorCit2b2lkIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6
dW5zZWxlY3QoU2hhZG93SW5jbHVzaW9uTGlzdCogbGlzdCkKK3sKKyAgICBmb3IgKFNoYWRvd0lu
Y2x1c2lvbiogaW5jbHVzaW9uID0gbGlzdC0+Zmlyc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24g
PSBpbmNsdXNpb24tPm5leHQoKSkKKyAgICAgICAgbV9pbmNsdXNpb25TZXQucmVtb3ZlKGluY2x1
c2lvbik7CisgICAgbGlzdC0+Y2xlYXIoKTsKK30KKworU2hhZG93SW5jbHVzaW9uKiBDb250ZW50
SW5jbHVzaW9uU2VsZWN0b3I6OmZpbmRGb3IoTm9kZSoga2V5KSBjb25zdAoreworICAgIHJldHVy
biBtX2luY2x1c2lvblNldC5maW5kKGtleSk7Cit9CisKK3ZvaWQgQ29udGVudEluY2x1c2lvblNl
bGVjdG9yOjpkaWRTZWxlY3QoKQoreworICAgIG1fY2FuZGlkYXRlcy5jbGVhcigpOworfQorCit2
b2lkIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6d2lsbFNlbGVjdE92ZXIoU2hhZG93Um9vdCog
c2NvcGUpCit7CisgICAgaWYgKCFtX2NhbmRpZGF0ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm47CisgICAgZm9yIChOb2RlKiBub2RlID0gc2NvcGUtPnNoYWRvd0hvc3QoKS0+Zmlyc3RDaGls
ZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgbV9jYW5kaWRh
dGVzLmFwcGVuZChub2RlKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjBiMTk3OGVi
Yzc5MWJjNDYzYzIzMDRhOTk3ZjU1MTU0MWI2MjY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmgKQEAgLTAsMCAr
MSwxNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcl9oCisjZGVmaW5lIENvbnRl
bnRJbmNsdXNpb25TZWxlY3Rvcl9oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxlbWVudDsK
K2NsYXNzIEhUTUxDb250ZW50RWxlbWVudDsKK2NsYXNzIE5vZGU7CitjbGFzcyBTaGFkb3dSb290
OworCitjbGFzcyBTaGFkb3dJbmNsdXNpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFkb3dJbmNs
dXNpb24+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+
IGNyZWF0ZShIVE1MQ29udGVudEVsZW1lbnQqLCBOb2RlKik7CisKKyAgICBIVE1MQ29udGVudEVs
ZW1lbnQqIGluY2x1ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9pbmNsdWRlcjsgfQorICAgIE5vZGUq
IGNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnQuZ2V0KCk7IH0KKyAgICBTaGFkb3dJ
bmNsdXNpb24qIG5leHQoKSBjb25zdCB7IHJldHVybiBtX25leHQuZ2V0KCk7IH0KKyAgICBTaGFk
b3dJbmNsdXNpb24qIHByZXZpb3VzKCkgY29uc3QgeyByZXR1cm4gbV9wcmV2aW91cy5nZXQoKTsg
fQorCisgICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+KTsKKyAgICB2
b2lkIHVubGluaygpOworCitwcml2YXRlOgorICAgIFNoYWRvd0luY2x1c2lvbihIVE1MQ29udGVu
dEVsZW1lbnQqLCBOb2RlKik7CisKKyAgICBIVE1MQ29udGVudEVsZW1lbnQqIG1faW5jbHVkZXI7
CisgICAgUmVmUHRyPE5vZGU+IG1fY29udGVudDsKKyAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9u
PiBtX25leHQ7CisgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbV9wcmV2aW91czsKK307CisK
K2lubGluZSBTaGFkb3dJbmNsdXNpb246OlNoYWRvd0luY2x1c2lvbihIVE1MQ29udGVudEVsZW1l
bnQqIGluY2x1ZGVyLCBOb2RlKiBjb250ZW50KQorICAgIDogbV9pbmNsdWRlcihpbmNsdWRlciks
IG1fY29udGVudChjb250ZW50KQoreyB9CisKK2lubGluZSBQYXNzUmVmUHRyPFNoYWRvd0luY2x1
c2lvbj4gU2hhZG93SW5jbHVzaW9uOjpjcmVhdGUoSFRNTENvbnRlbnRFbGVtZW50KiBpbmNsdWRl
ciwgTm9kZSogY29udGVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYWRvd0luY2x1
c2lvbihpbmNsdWRlciwgY29udGVudCkpOworfQorCitjbGFzcyBTaGFkb3dJbmNsdXNpb25MaXN0
IHsKK3B1YmxpYzoKKyAgICBTaGFkb3dJbmNsdXNpb25MaXN0KCk7CisgICAgflNoYWRvd0luY2x1
c2lvbkxpc3QoKTsKKworICAgIFNoYWRvd0luY2x1c2lvbiogZmlyc3QoKSBjb25zdCB7IHJldHVy
biBtX2ZpcnN0LmdldCgpOyB9CisgICAgU2hhZG93SW5jbHVzaW9uKiBsYXN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXN0LmdldCgpOyB9CisgICAgU2hhZG93SW5jbHVzaW9uKiBmaW5kKE5vZGUqKSBj
b25zdDsKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9maXJzdDsgfQorCisg
ICAgdm9pZCBjbGVhcigpOworICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVz
aW9uPik7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbV9maXJzdDsK
KyAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBtX2xhc3Q7Cit9OworCisKK2NsYXNzIFNoYWRv
d0luY2x1c2lvblNldCB7CitwdWJsaWM6CisgICAgdm9pZCBhZGQoU2hhZG93SW5jbHVzaW9uKiB2
YWx1ZSkgeyBtX3NldC5hZGQodmFsdWUpOyB9CisgICAgdm9pZCByZW1vdmUoU2hhZG93SW5jbHVz
aW9uKiB2YWx1ZSkgeyBtX3NldC5yZW1vdmUodmFsdWUpOyB9CisgICAgYm9vbCBpc0VtcHR5KCkg
Y29uc3QgeyByZXR1cm4gbV9zZXQuaXNFbXB0eSgpOyB9CisgICAgU2hhZG93SW5jbHVzaW9uKiBm
aW5kKE5vZGUqIGtleSkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgc3RydWN0IFRyYW5zbGF0b3Ig
eworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgTm9kZSog
a2V5KSB7IHJldHVybiBQdHJIYXNoPGNvbnN0IE5vZGUqPjo6aGFzaChrZXkpOyB9CisgICAgICAg
IHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uLCBjb25z
dCBOb2RlKiBjb250ZW50KSB7IHJldHVybiBpbmNsdXNpb24tPmNvbnRlbnQoKSA9PSBjb250ZW50
OyB9CisgICAgfTsKKworICAgIHN0cnVjdCBIYXNoIHsKKyAgICAgICAgc3RhdGljIHVuc2lnbmVk
IGhhc2goU2hhZG93SW5jbHVzaW9uKiBrZXkpIHsgcmV0dXJuIFB0ckhhc2g8Y29uc3QgTm9kZSo+
OjpoYXNoKGtleS0+Y29udGVudCgpKTsgfQorICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChTaGFk
b3dJbmNsdXNpb24qIGEsIFNoYWRvd0luY2x1c2lvbiogYikgeyByZXR1cm4gYS0+Y29udGVudCgp
ID09IGItPmNvbnRlbnQoKTsgfQorICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIH07CisKKyAgICB0eXBlZGVmIEhhc2hT
ZXQ8U2hhZG93SW5jbHVzaW9uKiwgSGFzaD4gUG9pbnRlclNldDsKKworICAgIFBvaW50ZXJTZXQg
bV9zZXQ7Cit9OworCitpbmxpbmUgU2hhZG93SW5jbHVzaW9uKiBTaGFkb3dJbmNsdXNpb25TZXQ6
OmZpbmQoTm9kZSoga2V5KSBjb25zdAoreworICAgIFBvaW50ZXJTZXQ6Oml0ZXJhdG9yIGZvdW5k
ID0gbV9zZXQuZmluZDxOb2RlKiwgU2hhZG93SW5jbHVzaW9uU2V0OjpUcmFuc2xhdG9yPihrZXkp
OworICAgIHJldHVybiBmb3VuZCAhPSBtX3NldC5lbmQoKSA/ICpmb3VuZCA6IDA7Cit9CisKK2Ns
YXNzIENvbnRlbnRJbmNsdXNpb25TZWxlY3RvciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
Q29udGVudEluY2x1c2lvblNlbGVjdG9yKTsKK3B1YmxpYzoKKyAgICBDb250ZW50SW5jbHVzaW9u
U2VsZWN0b3IoKTsKKyAgICB+Q29udGVudEluY2x1c2lvblNlbGVjdG9yKCk7CisKKyAgICB2b2lk
IHNlbGVjdChIVE1MQ29udGVudEVsZW1lbnQqLCBTaGFkb3dJbmNsdXNpb25MaXN0Kik7CisgICAg
dm9pZCB1bnNlbGVjdChTaGFkb3dJbmNsdXNpb25MaXN0Kik7CisgICAgU2hhZG93SW5jbHVzaW9u
KiBmaW5kRm9yKE5vZGUqIGtleSkgY29uc3Q7CisKKyAgICB2b2lkIHdpbGxTZWxlY3RPdmVyKFNo
YWRvd1Jvb3QqKTsKKyAgICB2b2lkIGRpZFNlbGVjdCgpOworICAgIGJvb2wgaGFzQ2FuZGlkYXRl
cygpIGNvbnN0IHsgcmV0dXJuICFtX2NhbmRpZGF0ZXMuaXNFbXB0eSgpOyB9CisKK3ByaXZhdGU6
CisgICAgdm9pZCByZW1vdmVGcm9tU2V0KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKKyAgICB2b2lk
IGFkZFRvU2V0KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKKworICAgIFZlY3RvcjxSZWZQdHI8Tm9k
ZT4gPiBtX2NhbmRpZGF0ZXM7CisgICAgU2hhZG93SW5jbHVzaW9uU2V0IG1faW5jbHVzaW9uU2V0
OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmY4ZTUxNzEwN2Q5OGY1NWZk
MDNhMjM5M2U1OTA4YmJhN2U0ZjlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29udGVudFNlbGVjdG9yUXVlcnkuaCIKKwor
I2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgorI2lu
Y2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0Nv
bnRlbnRTZWxlY3RvclF1ZXJ5OjpDb250ZW50U2VsZWN0b3JRdWVyeShIVE1MQ29udGVudEVsZW1l
bnQqIGVsZW1lbnQpCisgICAgOiBtX2NvbnRlbnRFbGVtZW50KGVsZW1lbnQpCisgICAgLCBtX3Nl
bGVjdG9yQ2hlY2tlcihlbGVtZW50LT5kb2N1bWVudCgpLCAhZWxlbWVudC0+ZG9jdW1lbnQoKS0+
aW5RdWlya3NNb2RlKCkpCit7CisgICAgbV9zZWxlY3RvckNoZWNrZXIuc2V0Q29sbGVjdGluZ1J1
bGVzT25seSh0cnVlKTsKKworICAgIGlmIChlbGVtZW50LT5zZWxlY3QoKS5pc051bGwoKSB8fCBl
bGVtZW50LT5zZWxlY3QoKS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIENTU1Bh
cnNlciBwYXJzZXIodHJ1ZSk7CisgICAgcGFyc2VyLnBhcnNlU2VsZWN0b3IoZWxlbWVudC0+c2Vs
ZWN0KCksIGVsZW1lbnQtPmRvY3VtZW50KCksIG1fc2VsZWN0b3JMaXN0KTsKKworICAgIG1fc2Vs
ZWN0b3JzLmluaXRpYWxpemUobV9zZWxlY3Rvckxpc3QpOworfQorCitib29sIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5OjptYXRjaGVzKE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgQVNTRVJUKG5vZGUp
OworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUKG5v
ZGUtPnBhcmVudE5vZGUoKSA9PSBtX2NvbnRlbnRFbGVtZW50LT5zaGFkb3dUcmVlUm9vdE5vZGUo
KS0+c2hhZG93SG9zdCgpKTsKKworICAgIGlmIChtX2NvbnRlbnRFbGVtZW50LT5zZWxlY3QoKS5p
c051bGwoKSB8fCBtX2NvbnRlbnRFbGVtZW50LT5zZWxlY3QoKS5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBtX3NlbGVjdG9ycy5tYXRjaGVzKG1fc2VsZWN0
b3JDaGVja2VyLCB0b0VsZW1lbnQobm9kZSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGFmYjk5
M2JhY2Y5YzcwZGEzODBmMzM2N2VmYTY4ZDFiODk1ZjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaApAQCAtMCwwICsx
LDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBDb250ZW50U2VsZWN0b3JRdWVyeV9oCisjZGVmaW5lIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5X2gKKworI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgorI2luY2x1ZGUgIlNl
bGVjdG9yQ2hlY2tlci5oIgorI2luY2x1ZGUgIlNlbGVjdG9yUXVlcnkuaCIKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIE5vZGU7CitjbGFzcyBIVE1MQ29udGVudEVs
ZW1lbnQ7CisKK2NsYXNzIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShDb250ZW50U2VsZWN0b3JRdWVyeSk7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQ29u
dGVudFNlbGVjdG9yUXVlcnkoSFRNTENvbnRlbnRFbGVtZW50Kik7CisKKyAgICBib29sIG1hdGNo
ZXMoTm9kZSopIGNvbnN0OworCitwcml2YXRlOgorICAgIEhUTUxDb250ZW50RWxlbWVudCogbV9j
b250ZW50RWxlbWVudDsKKyAgICBTZWxlY3RvckRhdGFMaXN0IG1fc2VsZWN0b3JzOworICAgIENT
U1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9yTGlzdDsKKyAgICBTZWxlY3RvckNoZWNrZXIgbV9zZWxl
Y3RvckNoZWNrZXI7Cit9OworCit9CisKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjMTRmZWNl
OWFiYzM5MzJjMmY1YzE1MDZkMmVkYTAxOTlmMmY5NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCkBAIC0wLDAgKzEs
OTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50
LmgiCisKKyNpbmNsdWRlICJDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCIKKyNpbmNsdWRlICJD
b250ZW50U2VsZWN0b3JRdWVyeS5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUg
IlF1YWxpZmllZE5hbWUuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIEhUTUxOYW1l
czo6c2VsZWN0QXR0cjsKKworUGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250
ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHRhZ05hbWUsIChudWxsQXRvbSwgIndlYmtpdFNoYWRv
d0NvbnRlbnQiLCBIVE1MTmFtZXM6OmRpdlRhZy5uYW1lc3BhY2VVUkkoKSkpOworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSFRNTENvbnRlbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7Cit9
CisKK0hUTUxDb250ZW50RWxlbWVudDo6SFRNTENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KG5hbWUs
IGRvY3VtZW50KQorICAgICwgbV9pbmNsdXNpb25zKGFkb3B0UHRyKG5ldyBTaGFkb3dJbmNsdXNp
b25MaXN0KCkpKQoreworfQorCitIVE1MQ29udGVudEVsZW1lbnQ6On5IVE1MQ29udGVudEVsZW1l
bnQoKQoreworfQorCit2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6YXR0YWNoKCkKK3sKKyAgICBB
U1NFUlQoIWZpcnN0Q2hpbGQoKSk7IC8vIEN1cnJlbnRseSBkb2Vzbid0IHN1cHBvcnQgYW55IGxp
Z2h0IGNoaWxkLgorICAgIEhUTUxFbGVtZW50OjphdHRhY2goKTsKKworICAgIGlmIChTaGFkb3dS
b290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgpKSkgeworICAgICAg
ICBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+ZW5zdXJlSW5jbHVz
aW9ucygpOworICAgICAgICBzZWxlY3Rvci0+dW5zZWxlY3QobV9pbmNsdXNpb25zLmdldCgpKTsK
KyAgICAgICAgc2VsZWN0b3ItPnNlbGVjdCh0aGlzLCBtX2luY2x1c2lvbnMuZ2V0KCkpOworICAg
ICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJz
dCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQorICAgICAgICAg
ICAgaW5jbHVzaW9uLT5jb250ZW50KCktPmRldGFjaCgpOworICAgICAgICBmb3IgKFNoYWRvd0lu
Y2x1c2lvbiogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGlu
Y2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQorICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250
ZW50KCktPmF0dGFjaCgpOworICAgIH0KK30KKwordm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OmRl
dGFjaCgpCit7CisgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1NoYWRvd1Jvb3Qoc2hhZG93
VHJlZVJvb3ROb2RlKCkpKSB7CisgICAgICAgIGlmIChDb250ZW50SW5jbHVzaW9uU2VsZWN0b3Iq
IHNlbGVjdG9yID0gcm9vdC0+aW5jbHVzaW9ucygpKQorICAgICAgICAgICAgc2VsZWN0b3ItPnVu
c2VsZWN0KG1faW5jbHVzaW9ucy5nZXQoKSk7CisgICAgfQorCisgICAgQVNTRVJUKG1faW5jbHVz
aW9ucy0+aXNFbXB0eSgpKTsKKyAgICBIVE1MRWxlbWVudDo6ZGV0YWNoKCk7Cit9CisKK2NvbnN0
IEF0b21pY1N0cmluZyYgSFRNTENvbnRlbnRFbGVtZW50OjpzZWxlY3QoKSBjb25zdAoreworICAg
IHJldHVybiBnZXRBdHRyaWJ1dGUoc2VsZWN0QXR0cik7Cit9CisKK3ZvaWQgSFRNTENvbnRlbnRF
bGVtZW50OjpzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3RWYWx1ZSkKK3sKKyAg
ICBzZXRBdHRyaWJ1dGUoc2VsZWN0QXR0ciwgc2VsZWN0VmFsdWUpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMzNzc3MmJkNThhYmU3MmYzOWQ4Njc0ZWFhNDhiNWZmMTA3MDY4YTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaApAQCAt
MCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBIVE1MQ29udGVudEVsZW1lbnRfaAorI2RlZmluZSBIVE1MQ29u
dGVudEVsZW1lbnRfaAorCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENvbnRlbnRTZWxlY3Rv
clF1ZXJ5OworY2xhc3MgU2hhZG93SW5jbHVzaW9uTGlzdDsKKworLy8gTk9URTogQ3VycmVudCBp
bXBsZW1lbnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgZHluYW1pYyBpbnNlcnRpb24vZGVsZXRpb24g
b2YgSFRNTENvbnRlbnRFbGVtZW50LgorLy8gWW91IHNob3VsZCBjcmVhdGUgSFRNTENvbnRlbnRF
bGVtZW50IGR1cmluZyB0aGUgaG9zdCBjb25zdHJ1Y3Rpb24uCitjbGFzcyBIVE1MQ29udGVudEVs
ZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEhUTUxDb250ZW50RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFs
IH5IVE1MQ29udGVudEVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CisgICAg
dmlydHVhbCB2b2lkIGRldGFjaCgpOworCisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3Qo
KSBjb25zdDsKKworICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgdGhpcyBjb25zdHJ1Y3RvciBhY2Nl
cHRzIHdpZGVyIHF1ZXJ5IHRoYW4gc2hhZG93IGRvbSBzcGVjLgorICAgIC8vIEZvciBleGFtcGxl
LCBhIHNlbGVjdG9yIHF1ZXJ5IHNob3VsZCBub3QgaW5jbHVkZSBjb250ZXh0dWFsIHNlbGVjdG9y
cy4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1
OTQ2CisgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBkb24ndCBzdXBwb3J0IHNldHRpbmcgc2Vs
ZWN0IHZhbHVlIGR5bmFtaWNhbGx5LgorICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNjEKKyAgICB2b2lkIHNldFNlbGVjdChjb25zdCBBdG9taWNT
dHJpbmcmKTsKKworICAgIGNvbnN0IFNoYWRvd0luY2x1c2lvbkxpc3QqIGluY2x1c2lvbnMoKSBj
b25zdCB7IHJldHVybiBtX2luY2x1c2lvbnMuZ2V0KCk7IH0KKworcHJvdGVjdGVkOgorICAgIEhU
TUxDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKworcHJp
dmF0ZToKKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZW50RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVu
ZGVyaW5nQ29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSB7IHJldHVybiAw
OyB9CisKKyAgICBPd25QdHI8U2hhZG93SW5jbHVzaW9uTGlzdD4gbV9pbmNsdXNpb25zOworfTsK
KworaW5saW5lIEhUTUxDb250ZW50RWxlbWVudCogdG9IVE1MQ29udGVudEVsZW1lbnQoTm9kZSog
bm9kZSkKK3sKKyAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aXNDb250ZW50RWxlbWVudCgpKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTENvbnRlbnRFbGVtZW50Kj4obm9kZSk7Cit9CisK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNzgzYzM4
MDU2OTNhZWM2M2Q0ZDk4NWJkNzhjMzg0ZmQ0NDg0YzRlYy4uMjQ4OTY3YjMzYWY5ZmU5YThlNjJi
ZjdlZmZjYTMxMTM0YzQ1NmQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCkBAIC00Niw3ICs0Nyw2IEBA
CiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQu
aCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAj
aW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC0xMjYsMTQgKzEyNiwxNCBAQCBib29sIEludGVy
bmFsczo6aXNQcmVsb2FkZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHVybCkK
ICAgICByZXR1cm4gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmlzUHJlbG9hZGVk
KHVybCk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gSW50ZXJuYWxzOjpjcmVhdGVTaGFkb3dD
b250ZW50RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFz
c1JlZlB0cjxFbGVtZW50PiBJbnRlcm5hbHM6OmNyZWF0ZUNvbnRlbnRFbGVtZW50KERvY3VtZW50
KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFkb2N1bWVudCkgewog
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogCi0gICAgcmV0dXJuIFNoYWRvd0NvbnRlbnRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwor
ICAgIHJldHVybiBIVE1MQ29udGVudEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiB9CiAKIEVs
ZW1lbnQqIEludGVybmFsczo6Z2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoTm9kZSogc2hhZG93
Um9vdCwgY29uc3QgU3RyaW5nJiBpZCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAppbmRleCBlZDQ3MzcwNTViOTkzODNkYTliMjgwMjFhZjNmNjk1OWM2MWQz
NWY3Li44OTlkN2RiYjE2MWYzMTJmNTY1NGVlMmNkYTc0YzlkN2Q0MTg5MGZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQg
cmVtb3ZlU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgRWxl
bWVudCogaW5jbHVkZXJGb3IoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTdHJpbmcgc2hh
ZG93UHNldWRvSWQoRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPEVs
ZW1lbnQ+IGNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KERvY3VtZW50KiwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQ29udGVudEVsZW1lbnQoRG9jdW1l
bnQqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgRWxlbWVudCogZ2V0RWxlbWVudEJ5SWRJblNoYWRv
d1Jvb3QoTm9kZSogc2hhZG93Um9vdCwgY29uc3QgU3RyaW5nJiBpZCwgRXhjZXB0aW9uQ29kZSYp
OwogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCmluZGV4IGY1NmQxYWY3NGE4ZTM1ZGQ0N2JkNGU2YzQ5ZjEyNWU3ZWFhYzNhNTUuLjhmMTZi
MzJjODU2YWMyZjFmNmY4NTg2Yzk0MWJiNTNkN2I3NjI0ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKQEAgLTM1LDcgKzM1LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAg
IEVsZW1lbnQgaW5jbHVkZXJGb3IoaW4gTm9kZSBub2RlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CiAgICAgICAgIHZvaWQgcmVtb3ZlU2hhZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgRE9NU3RyaW5nIHNoYWRvd1BzZXVkb0lkKGluIEVsZW1l
bnQgZWxlbWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICBFbGVtZW50IGNyZWF0
ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgRWxlbWVudCBjcmVhdGVDb250ZW50RWxlbWVudChpbiBEb2N1bWVu
dCBkb2N1bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIEVsZW1lbnQgZ2V0RWxl
bWVudEJ5SWRJblNoYWRvd1Jvb3QoaW4gTm9kZSBzaGFkb3dSb290LCBpbiBET01TdHJpbmcgaWQp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAjaWYgZGVmaW5lZChFTkFCTEVfSU5QVVRfQ09MT1Ip
ICYmIEVOQUJMRV9JTlBVVF9DT0xPUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDFhYTg0ODE2
N2JlZGM4NTY0OGVjNGY0YTdlN2ZiYTFiNDIyODJjZmIuLjVjZmE3NDRkOTY1NDE3ZWQ4NjljMTJl
NmNjNjMxYjUzY2VhMjNhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE0OSw4ICsxNDks
OCBAQCBFWFBPUlRTCiAgICAgICAgID9hZGRAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NS
ZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAMkBQQkVAWgogICAgICAgICA/YWRkU2xvd0Nhc2VAQXRv
bWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAMkBQQVZT
dHJpbmdJbXBsQDJAQFoKICAgICAgICAgP2NhY2hlRE9NU3RydWN0dXJlQFdlYkNvcmVAQFlBUEFW
U3RydWN0dXJlQEpTQ0BAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVYyM0BQQlVDbGFzc0luZm9A
M0BAWgorICAgICAgICA/Y3JlYXRlQEhUTUxDb250ZW50RWxlbWVudEBXZWJDb3JlQEBTQT9BVj8k
UGFzc1JlZlB0ckBWSFRNTENvbnRlbnRFbGVtZW50QFdlYkNvcmVAQEBXVEZAQFBBVkRvY3VtZW50
QDJAQFoKICAgICAgICAgP2NyZWF0ZUBSYW5nZUBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBW
UmFuZ2VAV2ViQ29yZUBAQFdURkBAVj8kUGFzc1JlZlB0ckBWRG9jdW1lbnRAV2ViQ29yZUBAQDRA
Vj8kUGFzc1JlZlB0ckBWTm9kZUBXZWJDb3JlQEBANEBIMUhAWgotICAgICAgICA/Y3JlYXRlQFNo
YWRvd0NvbnRlbnRFbGVtZW50QFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZTaGFkb3dDb250
ZW50RWxlbWVudEBXZWJDb3JlQEBAV1RGQEBQQVZEb2N1bWVudEAyQEBaCiAgICAgICAgID9jcmVh
dGVXcmFwcGVyQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpT
RE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9kZUAxQEBaCiAgICAgICAgID9lbnN1cmVTaGFkb3dSb290
QEVsZW1lbnRAV2ViQ29yZUBAUUFFUEFWU2hhZG93Um9vdEAyQFhaCiAgICAgICAgID9lcXVhbEBX
VEZAQFlBX05QQlZTdHJpbmdJbXBsQDFAUEJFQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRl
LmRlZgppbmRleCA2YjY0NDhkYjE2MWFlYjY3MTg5MDZkNjJmNzcwYjlhN2U0YThlYzBkLi40MTZk
NzMyYzcxMDQyNmRjNzk2ODQ1OTMyZGNkZWViNDhjZDk4Zjg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDJDRkxpdGUuZGVmCkBAIC0xNDIsOCArMTQyLDggQEAgRVhQT1JUUwogICAgICAgICA/YWRk
QEF0b21pY1N0cmluZ0BXVEZAQENBP0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQDJA
UEJFQFoKICAgICAgICAgP2FkZFNsb3dDYXNlQEF0b21pY1N0cmluZ0BXVEZAQENBP0FWPyRQYXNz
UmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQDJAUEFWU3RyaW5nSW1wbEAyQEBaCiAgICAgICAgID9j
YWNoZURPTVN0cnVjdHVyZUBXZWJDb3JlQEBZQVBBVlN0cnVjdHVyZUBKU0NAQFBBVkpTRE9NR2xv
YmFsT2JqZWN0QDFAUEFWMjNAUEJVQ2xhc3NJbmZvQDNAQFoKKyAgICAgICAgP2NyZWF0ZUBIVE1M
Q29udGVudEVsZW1lbnRAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVkhUTUxDb250ZW50RWxl
bWVudEBXZWJDb3JlQEBAV1RGQEBQQVZEb2N1bWVudEAyQEBaCiAgICAgICAgID9jcmVhdGVAUmFu
Z2VAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlJhbmdlQFdlYkNvcmVAQEBXVEZAQFY/JFBh
c3NSZWZQdHJAVkRvY3VtZW50QFdlYkNvcmVAQEA0QFY/JFBhc3NSZWZQdHJAVk5vZGVAV2ViQ29y
ZUBAQDRASDFIQFoKLSAgICAgICAgP2NyZWF0ZUBTaGFkb3dDb250ZW50RWxlbWVudEBXZWJDb3Jl
QEBTQT9BVj8kUGFzc1JlZlB0ckBWU2hhZG93Q29udGVudEVsZW1lbnRAV2ViQ29yZUBAQFdURkBA
UEFWRG9jdW1lbnRAMkBAWgogICAgICAgICA/Y3JlYXRlV3JhcHBlckBXZWJDb3JlQEBZQT9BVkpT
VmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVk5vZGVA
MUBAWgogICAgICAgICA/ZW5zdXJlU2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFBRVBBVlNo
YWRvd1Jvb3RAMkBYWgogICAgICAgICA/ZXF1YWxAV1RGQEBZQV9OUEJWU3RyaW5nSW1wbEAxQFBC
RUBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNl
L2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCAxNWI2OTU3YTllMjQyMzE5MGJhYzFkZDIx
Y2ZiMTY3M2ZkNzMxOGRhLi5lMjEzMTBkZWU2OGYzY2U5NTMyNDJmMmQ0YTgzNGM3MjgzNDdhODA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJj
ZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTUwLDEwICs1MCwxMCBAQCBfWk43V2ViQ29y
ZTE1c2V0RE9NRXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFaTsKIF9aTjdXZWJDb3JlMTZIVE1M
SW5wdXRFbGVtZW50MTdzZXRTdWdnZXN0ZWRWYWx1ZUVSS04zV1RGNlN0cmluZ0U7CiBfWk43V2Vi
Q29yZTE2anNTdHJpbmdTbG93Q2FzZUVQTjNKU0M5RXhlY1N0YXRlRVJOM1dURjdIYXNoTWFwSVBO
UzNfMTBTdHJpbmdJbXBsRU5TMF80V2Vha0lOUzBfOEpTU3RyaW5nRUVFTlMzXzEwU3RyaW5nSGFz
aEVOUzNfMTBIYXNoVHJhaXRzSVM2X0VFTlNCX0lTOV9FRUVFUzZfOwogX1pON1dlYkNvcmUxN2Nh
Y2hlRE9NU3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBOM0pTQzlTdHJ1Y3R1cmVF
UEtOUzJfOUNsYXNzSW5mb0U7CitfWk43V2ViQ29yZTE4SFRNTENvbnRlbnRFbGVtZW50NmNyZWF0
ZUVQTlNfOERvY3VtZW50RTsKIF9aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMzlzZXRS
ZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21JbnRlcm5hbHNFaWk7CiBfWk43V2ViQ29yZTIwTm9k
ZVJlbmRlcmluZ0NvbnRleHRDMUVQTlNfNE5vZGVFOwogX1pON1dlYkNvcmUyME5vZGVSZW5kZXJp
bmdDb250ZXh0RDFFdjsKLV9aTjdXZWJDb3JlMjBTaGFkb3dDb250ZW50RWxlbWVudDZjcmVhdGVF
UE5TXzhEb2N1bWVudEU7CiBfWk43V2ViQ29yZTIxZ2V0Q2FjaGVkRE9NU3RydWN0dXJlRVBOU18x
N0pTRE9NR2xvYmFsT2JqZWN0RVBLTjNKU0M5Q2xhc3NJbmZvRTsKIF9aTjdXZWJDb3JlMjJleHRl
cm5hbFJlcHJlc2VudGF0aW9uRVBOU183RWxlbWVudEVqOwogX1pON1dlYkNvcmUyNERvY3VtZW50
TWFya2VyQ29udHJvbGxlcjEwbWFya2Vyc0ZvckVQTlNfNE5vZGVFTlNfMTREb2N1bWVudE1hcmtl
cjExTWFya2VyVHlwZXNFOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVjMjNmMzgyMzY2YzAwNzFhY2E1MWFjYTllODIyMjUy
NjBmM2E4ZTIuLmJlZTg2MTBiOWIwMDY5ZDcwZGNlODJjZWJjMTg0MWNhNDJmNjg3ZDQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMS0xNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bn
b29nbGUuY29tPgorCisgICAgICAgIFc3NjI0MSBNb3ZlIFNoYWRvd0NvbnRlbnRFbGVtZW50IGZy
b20gZG9tLyB0byBodG1sLyBhbmQgbWFrZSBTaGFkb3dDb250ZW50RWxlbWVudCBzdWJjbGFzcyBv
ZiBIVE1MRWxlbWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc2MjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVuYW1lZCBpbnRlcm5hbHMuY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQgdG8gaW50
ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50LgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93
L2NvbnRlbnQtZWxlbWVudC1pbmNsdWRlci5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2hh
ZG93L2NyZWF0ZS1jb250ZW50LWVsZW1lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFk
b3cvc2hhZG93LWNvbnRlbnRzLXNlbGVjdC5odG1sOgorCiAyMDEyLTAxLTE2ICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIHNob3VsZCBiZSBhYmxlIHRvIGRv
IEpTIGFuZCBjdXN0b20gZ2V0dGVyIGNhY2hpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW5jbHVkZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW5jbHVkZXIuaHRtbAppbmRleCBmMTli
ZDE3Njg5OTg4MWUyYmRiOWNmZGExNGQ3ODAwMzM3MjVmZjEzLi5mYjZhNWIxMzFkZGE2NjJlZjUw
ZDI3YzIyYjU5NzQzNTU4YzhjYTc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbmNsdWRlci5odG1sCkBAIC0zMyw3ICszMyw3
IEBAIHNob3VsZEJlKCJpbnRlcm5hbHMuaW5jbHVkZXJGb3IoY2hpbGRPZkVsZW1lbnRXaXRoU2hh
ZG93KSIsICJudWxsIik7CiB2YXIgZWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CiBjb250YWluZXIuYXBwZW5kQ2hpbGQoZWxlbWVudFdpdGhT
aGFkb3dDb250ZW50KTsKIHZhciBzaGFkb3dSb290T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQg
PSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChlbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQpOwot
dmFyIHNoYWRvd0NvbnRlbnRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGludGVybmFscy5j
cmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChkb2N1bWVudCk7Cit2YXIgc2hhZG93Q29udGVudE9m
RWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50
KGRvY3VtZW50KTsKIHNoYWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5hcHBlbmRD
aGlsZChzaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQpOwogdmFyIGNoaWxk
T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7CiBlbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQuYXBwZW5kQ2hpbGQoY2hpbGRPZkVsZW1lbnRX
aXRoU2hhZG93Q29udGVudCk7CkBAIC01OCw3ICs1OCw3IEBAIGVsZW1lbnRXaXRoU2hhZG93LnJl
bW92ZUNoaWxkKG1vdmluZ0NoaWxkKTsKIHZhciBhbm90aGVyRWxlbWVudFdpdGhTaGFkb3dDb250
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiBjb250YWluZXIuYXBwZW5kQ2hp
bGQoYW5vdGhlckVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7CiB2YXIgYW5vdGhlclNoYWRvd1Jv
b3RPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290
KGFub3RoZXJFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQpOwotdmFyIGFub3RoZXJTaGFkb3dDb250
ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlU2hhZG93Q29u
dGVudEVsZW1lbnQoZG9jdW1lbnQpOwordmFyIGFub3RoZXJTaGFkb3dDb250ZW50T2ZFbGVtZW50
V2l0aFNoYWRvd0NvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1l
bnQpOwogYW5vdGhlclNoYWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5hcHBlbmRD
aGlsZChhbm90aGVyU2hhZG93Q29udGVudE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKIAog
YW5vdGhlckVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5hcHBlbmRDaGlsZChtb3ZpbmdDaGlsZCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50
LXJlbmRlcmVycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1yZW5kZXJlcnMuaHRtbAppbmRleCA5MTUxOWI4YmM5ZWQ5OGU1MzRiZjM3ZTE0NWRhMTMx
NTRiNWJjOGI4Li45NzdiODljYzAxOTRkMWU1ZDMyMmI3YmFiYzlmMTU1NjU0OTI5ODMwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXJlbmRl
cmVycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1l
bnQtcmVuZGVyZXJzLmh0bWwKQEAgLTYyLDcgKzYyLDcgQEAgZnVuY3Rpb24gY3JlYXRlVHJlZUZy
b20oaHRtbCkKICAgICB2YXIgY29udGVudFBsYWNlaG9sZGVyID0gcm9vdC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiQ09OVEVOVCIpWzBdOwogICAgIGlmIChjb250ZW50UGxhY2Vob2xkZXIpIHsKICAg
ICAgICAgdmFyIGNvbnRlbnRQYXJlbnQgPSBjb250ZW50UGxhY2Vob2xkZXIucGFyZW50Tm9kZTsK
LSAgICAgICAgY29udGVudFBhcmVudC5yZXBsYWNlQ2hpbGQod2luZG93LmludGVybmFscy5jcmVh
dGVTaGFkb3dDb250ZW50RWxlbWVudChkb2N1bWVudCksIGNvbnRlbnRQbGFjZWhvbGRlcik7Cisg
ICAgICAgIGNvbnRlbnRQYXJlbnQucmVwbGFjZUNoaWxkKHdpbmRvdy5pbnRlcm5hbHMuY3JlYXRl
Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpLCBjb250ZW50UGxhY2Vob2xkZXIpOwogICAgIH07CiAK
ICAgICByZXR1cm4gcm9vdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9jcmVhdGUtY29udGVudC1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY3JlYXRlLWNvbnRlbnQtZWxlbWVudC5odG1sCmluZGV4IGJkYjYwMDE2ZjBkYTI0MDRmNWRh
MWM4NzhjZjE4OWQ4OTEyYjc4Y2QuLjgzMjEyMzFiYzM1MTliYzI0ZTU4ZmFhYjIwMzFiMWZmZDYw
YTIzMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcmVhdGUtY29u
dGVudC1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NyZWF0
ZS1jb250ZW50LWVsZW1lbnQuaHRtbApAQCAtMjksNyArMjksNyBAQCBmdW5jdGlvbiBzZXR1cFRh
cmdldFRyZWUoKQogICAgIHZhciBjaGlsZDAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7CiAgICAgY2hpbGQwLmlubmVySFRNTCA9ICJIZWxsbywiOwogICAgIHJvb3QuYXBwZW5kQ2hp
bGQoY2hpbGQwKTsKLSAgICByb290LmFwcGVuZENoaWxkKHdpbmRvdy5pbnRlcm5hbHMuY3JlYXRl
U2hhZG93Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByb290LmFwcGVuZENoaWxkKHdp
bmRvdy5pbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICB2YXIg
Y2hpbGQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgIGNoaWxkMS5pbm5l
ckhUTUwgPSAiV29ybGQuIjsKICAgICByb290LmFwcGVuZENoaWxkKGNoaWxkMSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNlbGVjdC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxlY3Qu
aHRtbAppbmRleCAzZDgxZDQ1NmNhZTQ1OGZlNThkOWViOTIxNTM1MDk5Y2VjMTQ1NGEyLi4yZWZi
OTM2NTJkMDc4YzY3ZDU4ZTM2OTJkMGFmZjhlOWRhMjljYmJiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNlbGVjdC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWwKQEAg
LTE1LDcgKzE1LDcgQEAgZnVuY3Rpb24gYXBwZW5kU2hhZG93KHRhcmdldCwgc2VsZWN0KSB7CiAg
ICAgY2hpbGQwLmlubmVySFRNTCA9ICJIZWxsbywiOwogICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hp
bGQwKTsKIAotICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZVNoYWRvd0NvbnRlbnRF
bGVtZW50KGRvY3VtZW50KTsKKyAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250
ZW50RWxlbWVudChkb2N1bWVudCk7CiAgICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcs
IHNlbGVjdCk7CiAgICAgcm9vdC5hcHBlbmRDaGlsZChjb250ZW50KTsKIApkaWZmIC0tZ2l0IGEv
Q2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDc2Yzk1NWJlZGM5ZDUzYTk5ZmVlYzg4MjE2YTJk
NTVlMWI5OTIzMzkuLmRlYTk0ODQ0M2E2MGMxYWRmYjNjN2M0ZDgwODYyNDYwYzk5YjFkN2YgMTAw
NjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAx
Mi0wMS0xNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAg
IFc3NjI0MSBNb3ZlIFNoYWRvd0NvbnRlbnRFbGVtZW50IGZyb20gZG9tLyB0byBodG1sLyBhbmQg
bWFrZSBTaGFkb3dDb250ZW50RWxlbWVudCBzdWJjbGFzcyBvZiBIVE1MRWxlbWVudC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rv
b2xzL3N5bWJvbHMuZmlsdGVyOiBFeHBvc2VkIG5lY2Vzc2FyeSBzeW1ib2xzLgorCiAyMDEyLTAx
LTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBVcGRhdGUgTkVXUyBhbmQgY29uZmlndXJlLmFjIGZvciAxLjcuNCByZWxlYXNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122879</attachid>
            <date>2012-01-17 23:38:38 -0800</date>
            <delta_ts>2012-01-18 01:15:41 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-76241-20120118163836.patch</filename>
            <type>text/plain</type>
            <size>109686</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRmMTk3MDdhZmJkOGNl
MGU3YjY0NzE4ZGYwNjRiZjc2NGMzODY0Ny4uZDJmMzE3ZWEwZTJmMTczNjY4ZWIzMWQwOGNhYjVh
MTY3MTA0OTNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxMi0wMS0xNyAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIE1vdmUgU2hhZG93
Q29udGVudEVsZW1lbnQgZnJvbSBkb20vIHRvIGh0bWwvIGFuZCBtYWtlIFNoYWRvd0NvbnRlbnRF
bGVtZW50IHN1YmNsYXNzIG9mIEhUTUxFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNDEKKworICAgICAgICBSZXZpZXdlZCBieSBEaW1p
dHJpIEdsYXprb3YuCisKKyAgICAgICAgUmVuYW1lZCBTaGFkb3dDb250ZW50RWxlbWVudCB0byBI
VE1MQ29udGVudEVsZW1lbnQsIGFuZCBtb3ZlIGl0IGZyb20gZG9tLyB0byBodG1sLy4KKyAgICAg
ICAgQWxzbywgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IgYW5kIFNoYWRvd0NvbnRlbnRTZWxlY3Rv
clF1ZXJ5IGFyZSByZW5hbWVkIHRvCisgICAgICAgIENvbnRlbnQgSW5jbHVzaW9uU2VsZWN0b3Ig
YW5kIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHJlc3BlY3RpdmVseS4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIGJlY2F1c2Ugbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJn
ZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RPTUFsbElu
T25lLmNwcDoKKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6bmV4dFJlbmRlcmVyT2YpOgorICAgICAgICAoV2ViQ29yZTo6cHJldmlvdXNS
ZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6OmZpcnN0UmVuZGVyZXJPZik6CisgICAgICAg
IChXZWJDb3JlOjpsYXN0UmVuZGVyZXJPZik6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVy
aW5nQ29udGV4dDo6bmV4dFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJp
bmdDb250ZXh0OjpwcmV2aW91c1JlbmRlcmVyKToKKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmlu
Z0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjppbmNs
dWRlcik6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2hhZG93Um9vdDo6aW5jbHVkZXJGb3IpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6
aW5jbHVzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjplbnN1cmVJbmNsdXNp
b25zKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAqIGh0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldGFpbHNDb250ZW50RWxlbWVu
dDo6RGV0YWlsc0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldGFpbHNTdW1t
YXJ5RWxlbWVudDo6RGV0YWlsc1N1bW1hcnlFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxF
bGVtZW50c0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdW1tYXJ5Q29udGVudEVsZW1lbnQ6OlN1bW1hcnlDb250
ZW50RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVj
dG9yLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25T
ZWxlY3Rvci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb246OmFwcGVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb246OnVubGluayk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25MaXN0OjpTaGFkb3dJbmNsdXNpb25MaXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbkxpc3Q6On5TaGFkb3dJbmNsdXNpb25MaXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbkxpc3Q6OmZpbmQpOgorICAgICAgICAo
V2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2hhZG93SW5jbHVzaW9uTGlzdDo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRJ
bmNsdXNpb25TZWxlY3Rvcjo6Q29udGVudEluY2x1c2lvblNlbGVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6fkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OnNlbGVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OnVuc2VsZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6ZmluZEZvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OmRpZFNlbGVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OndpbGxTZWxlY3RPdmVy
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oLgor
ICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uOjppbmNsdWRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dJbmNsdXNpb246OmNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93SW5jbHVzaW9uOjpuZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvbjo6
cHJldmlvdXMpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uOjpTaGFkb3dJbmNs
dXNpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6Zmlyc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhZG93SW5jbHVzaW9uTGlzdDo6bGFzdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dJbmNsdXNpb25MaXN0Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1
c2lvblNldDo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvblNldDo6cmVt
b3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0luY2x1c2lvblNldDo6aXNFbXB0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OlRyYW5zbGF0b3I6Omhhc2gpOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uU2V0OjpUcmFuc2xhdG9yOjplcXVhbCk6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6Okhhc2g6Omhhc2gpOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhZG93SW5jbHVzaW9uU2V0OjpIYXNoOjplcXVhbCk6CisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dJbmNsdXNpb25TZXQ6OmZpbmQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEluY2x1c2lvblNlbGVjdG9yOjpoYXNDYW5kaWRhdGVzKToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwLgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmguCisgICAgICAgICogaHRtbC9zaGFk
b3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVu
dEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6
OkhUTUxDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1l
bnQ6On5IVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRF
bGVtZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50Ojpk
ZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpzZWxlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpzZXRTZWxlY3QpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmguCisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ29udGVudEVsZW1lbnQ6OmluY2x1c2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENv
bnRlbnRFbGVtZW50Ojppc0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
b250ZW50RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Q29udGVudEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRN
TENvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNyZWF0ZUNvbnRlbnRFbGVtZW50KToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoK
KwogMjAxMi0wMS0xNyAgSm9lIFRob21hcyAgPGpvZXRob21hc0Btb3Rvcm9sYS5jb20+CiAKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDg5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggNzgwMGRkYjllZThmOTM1NWExMGZmNTY2ODcxMzQ5Y2I0YjI5NmY2OS4uMDEwYzQw
Yjc3NDNhYWE3ZTk4ZTRkOTk2Y2Y1N2RkZjcyNWI4YmQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTAxLTE3ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+
CisKKyAgICAgICAgTW92ZSBTaGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8g
YW5kIG1ha2UgU2hhZG93Q29udGVudEVsZW1lbnQgc3ViY2xhc3Mgb2YgSFRNTEVsZW1lbnQuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAgICAgICAqIHdpbi9XZWJL
aXQyLmRlZjogRXhwb3NlZCBuZWNlc3Nhcnkgc3ltYm9scy4KKyAgICAgICAgKiB3aW4vV2ViS2l0
MkNGTGl0ZS5kZWY6IGRpdHRvLgorCiAyMDEyLTAxLTE3ICBNYXR0aGV3IERlbGFuZXkgIDxtZGVs
YW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgT24gcG9zdC1MaW9uIHJlbGVhc2VzLCBwcmVzZXJ2
ZSB0aGUgTGlvbiBiZWhhdmlvciB3aGVyZSBXZWJLaXQgZXhwbGljaXRseSBjYWxscyAtc2V0R2Vv
bWV0cnlGbGlwcGVkIG9uIHRoZSBob3N0aW5nIGxheWVyIGZvciBhcHBsaWNhdGlvbnMgdGhhdCB3
ZXJlIGxpbmtlZCBvbiBMaW9uIG9yIGVhcmxpZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDlm
ZWNlYzljNWFiYzcxZmMyMjY0Zjg2ZGJkNmE5MjQ2NzkwNjQ1NGYuLmFkMWJiYmEzNWY3OGVkYzQ2
MjRjYWNmNDkwNmQ4MjcwYzFmZTU4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01OTQsOSAr
NTk0LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwCiAg
ICAgZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKICAgICBkb20vU2VsZWN0b3JRdWVyeS5jcHAKLSAg
ICBkb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwCi0gICAgZG9tL1NoYWRvd0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcAotICAgIGRvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAKICAgICBk
b20vU2hhZG93Um9vdC5jcHAKICAgICBkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAKICAgICBkb20v
U3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcApAQCAtODYyLDcgKzg1OSwxMCBAQCBTRVQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgaHRtbC9wYXJzZXIvVGV4dFZpZXdTb3VyY2VQYXJzZXIuY3BwCiAgICAg
aHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKIAorICAgIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcAorICAgIGh0bWwvc2hhZG93L0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5j
cHAKICAgICBodG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKKyAgICBodG1sL3No
YWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCiAgICAgaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
cy5jcHAKICAgICBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHAKICAgICBo
dG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQppbmRleCA4NDFlZjcxOWQxNTk0MTk2MzcxN2Q1ZGZhZTRlYzgyZTZiODY5NjZkLi44ZWFl
YTg3NTQ3NjFmMWY4NDUyMzI0ODJiYjJmMjIxZjlmNDE5NDgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KQEAgLTE2NDcsMTIgKzE2NDcsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuaCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL1NlbGVjdG9yUXVlcnkuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVy
eS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwIFwKLQlT
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuaCBcCi0JU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBcCi0JU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJ
bmNsdXNpb25TZWxlY3Rvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCkBAIC0yMjMxLDggKzIyMjUsMTQgQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0Vmlld1NvdXJjZVBh
cnNlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Db250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCBcCisJU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9scy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNTc4NWUwMTA0NjdlMDc3OWU5NmE4N2I2ZmExMjIw
NjdjZjExMmFhYi4uNGFlNzNjZWM4YzI3NzM1ODVmMDUzYzgzYjIzYThjN2Q5NGJkMGM2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCkBAIC01NjAsOSArNTYwLDYgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1Njcmlw
dFJ1bm5lci5jcHAgXAogICAgIGRvbS9TZWN1cml0eUNvbnRleHQuY3BwIFwKICAgICBkb20vU2Vs
ZWN0b3JRdWVyeS5jcHAgXAotICAgIGRvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAgXAotICAg
IGRvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgXAotICAgIGRvbS9TaGFkb3dJbmNs
dXNpb25TZWxlY3Rvci5jcHAgXAogICAgIGRvbS9TaGFkb3dSb290LmNwcCBcCiAgICAgZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuY3BwIFwKICAgICBkb20vU3RhdGljTm9kZUxpc3QuY3BwIFwKQEAgLTg0
Miw3ICs4MzksMTAgQEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50
UGFyc2VyLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIvVGV4dFZpZXdTb3VyY2VQYXJzZXIuY3BwIFwK
ICAgICBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcCBcCisgICAgaHRtbC9zaGFkb3cvQ29udGVu
dFNlbGVjdG9yUXVlcnkuY3BwIFwKKyAgICBodG1sL3NoYWRvdy9Db250ZW50SW5jbHVzaW9uU2Vs
ZWN0b3IuY3BwIFwKICAgICBodG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgXAor
ICAgIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgXAogICAgIGh0bWwvc2hhZG93
L01lZGlhQ29udHJvbHMuY3BwIFwKICAgICBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxl
bWVudC5jcHAgXAogICAgIGh0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAgXApAQCAt
MTY2MSw5ICsxNjYxLDYgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL1NjcmlwdEVsZW1lbnQuaCBc
CiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBcCiAgICAgZG9tL1NlbGVjdG9yUXVl
cnkuaCBcCi0gICAgZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmggXAotICAgIGRvbS9TaGFkb3dD
b250ZW50U2VsZWN0b3JRdWVyeS5oIFwKLSAgICBkb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3Iu
aCBcCiAgICAgZG9tL1NoYWRvd1Jvb3QuaCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBc
CiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmggXApAQCAtMTkwMiw2ICsxODk5LDkgQEAgSEVBREVS
UyArPSBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmggXAogICAgIGh0bWwvcGFy
c2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmggXAogICAgIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3Iu
aCBcCisgICAgaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaCBcCisgICAgaHRtbC9z
aGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmggXAorICAgIGh0bWwvc2hhZG93L0hUTUxD
b250ZW50RWxlbWVudC5oIFwKICAgICBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5o
IFwKICAgICBodG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oIFwKICAgICBodG1sL3Ry
YWNrL1RleHRUcmFja0xpc3QuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDNhNWIyOWJhZDFm
NGVmZWEzYmRiOWE0MzE5NjRkODIzMTY4MTllMWUuLjQyZThjNzUwNTU5OWZhMzNkOTg3YWIzMTMw
MGZkZTBiNGRjMDFkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC01NDYsNiArNTQ2LDcgQEAg
X19aTjdXZWJDb3JlMTdSZWd1bGFyRXhwcmVzc2lvbkMxRVJLTjNXVEY2U3RyaW5nRU5TMV8xOVRl
eHRDYXNlU2Vuc2l0aXZpdHlFCiBfX1pON1dlYkNvcmUxN1JlZ3VsYXJFeHByZXNzaW9uRDFFdgog
X19aTjdXZWJDb3JlMTdjYWNoZURPTVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQ
TjNKU0M5U3RydWN0dXJlRVBLTlMyXzlDbGFzc0luZm9FCiBfX1pON1dlYkNvcmUxN29wZW5UZW1w
b3JhcnlGaWxlRVJLTjNXVEY2U3RyaW5nRVJpCitfX1pON1dlYkNvcmUxOEhUTUxDb250ZW50RWxl
bWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEUKIF9fWk43V2ViQ29yZTE4UGxhdGZvcm1TdHJhdGVn
aWVzMjZjcmVhdGVMb2NhbGl6YXRpb25TdHJhdGVneUV2CiBfX1pON1dlYkNvcmUxOFNlYXJjaFBv
cHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9fWk43V2ViQ29yZTE4aXNTdGFy
dE9mUGFyYWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FTlNfMjdFZGl0aW5nQm91bmRhcnlD
cm9zc2luZ1J1bGVFCkBAIC02MDMsNyArNjA0LDYgQEAgX19aTjdXZWJDb3JlMjBSZXNvdXJjZVJl
c3BvbnNlQmFzZTIwc2V0U3VnZ2VzdGVkRmlsZW5hbWVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dl
YkNvcmUyMFJlc291cmNlUmVzcG9uc2VCYXNlMjRzZXRFeHBlY3RlZENvbnRlbnRMZW5ndGhFeAog
X19aTjdXZWJDb3JlMjBSZXNvdXJjZVJlc3BvbnNlQmFzZTZzZXRVUkxFUktOU180S1VSTEUKIF9f
Wk43V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2VDMkV2Ci1fX1pON1dlYkNvcmUyMFNoYWRv
d0NvbnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3JlMjBVc2Vy
R2VzdHVyZUluZGljYXRvcjdzX3N0YXRlRQogX19aTjdXZWJDb3JlMjBVc2VyR2VzdHVyZUluZGlj
YXRvckMxRU5TXzI2UHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGVFCiBfX1pON1dlYkNvcmUyMFVz
ZXJHZXN0dXJlSW5kaWNhdG9yRDFFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDZhZjNkYTExNGVjMmU5
YjVmNGMzN2E5ZDgzNTMyMWQwN2ZlMGM4OWQuLmVmODMzYmVkNDc1YjMyYjY2NGVhYTUwOTVhNzQ5
ZWEzMzYwYTkyOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwNDYsOCArMTA0Niw2IEBACiAgICAg
ICAgICAgICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCcsCiAgICAgICAgICAgICAnZG9t
L1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAgICAgICdkb20vU2hhZG93Um9vdC5oJywKLSAgICAg
ICAgICAgICdkb20vU2hhZG93Q29udGVudEVsZW1lbnQuaCcsCi0gICAgICAgICAgICAnZG9tL1No
YWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgnLAogICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0
U3RyaW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZWRFbGVtZW50LmgnLAogICAgICAgICAg
ICAgJ2RvbS9UZXh0LmgnLApAQCAtNTQ2MywxMiArNTQ2MSw2IEBACiAgICAgICAgICAgICAnZG9t
L1NlY3VyaXR5Q29udGV4dC5oJywKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JRdWVyeS5jcHAn
LAogICAgICAgICAgICAgJ2RvbS9TZWxlY3RvclF1ZXJ5LmgnLAotICAgICAgICAgICAgJ2RvbS9T
aGFkb3dDb250ZW50RWxlbWVudC5jcHAnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dDb250ZW50
RWxlbWVudC5oJywKLSAgICAgICAgICAgICdkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnku
Y3BwJywKLSAgICAgICAgICAgICdkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCcsCi0g
ICAgICAgICAgICAnZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCcsCi0gICAgICAgICAg
ICAnZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgnLAogICAgICAgICAgICAgJ2RvbS9TaGFk
b3dSb290LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcsCiAgICAgICAgICAg
ICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwJywKQEAgLTU5MDMsOCArNTg5NSwxNCBAQAogICAg
ICAgICAgICAgJ2h0bWwvcGFyc2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmgnLAogICAgICAgICAg
ICAgJ2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwJywKICAgICAgICAgICAgICdodG1sL3BhcnNl
ci9YU1NBdWRpdG9yLmgnLAorICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3Rv
clF1ZXJ5LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVl
cnkuaCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9y
LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lvblNlbGVjdG9y
LmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaCcsCisgICAg
ICAgICAgICAnaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCcsCisgICAgICAgICAg
ICAnaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbHMuY3BwJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzLmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGRhMjhkMjMzZGVkZDk4ODVkZmY2NjRlM2JhOWUxOWZiZWYzYjVmODIuLjhmMjIzYTNi
OWQzYjdjMTk1ZjA5Y2EyOTlmOWFmNmRiNjNjYTYyMDkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01MDk5OCwyMzAgKzUwOTk4LDYgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRv
d0NvbnRlbnRFbGVtZW50LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgot
CQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkv
PgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCIKLQkJ
CQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rp
b258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxU
b29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXFNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dDb250ZW50RWxlbWVudC5oIgotCQkJCT4K
LQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2hhZG93Q29u
dGVudFNlbGVjdG9yUXVlcnkuY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJ
CQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgot
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5h
bWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9
IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
Ci0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJ
CS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KLQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxG
aWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnku
aCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9t
XFNoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgot
CQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+
Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0luY2x1c2lvblNlbGVj
dG9yLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxTcGFjZVNwbGl0U3RyaW5nLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9u
CkBAIC02MTA5Nyw2ICs2MDg3MywyMiBAQAogCQkJCU5hbWU9InNoYWRvdyIKIAkJCQk+CiAJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHNoYWRvd1xDb250ZW50U2VsZWN0b3JR
dWVyeS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxodG1sXHNoYWRvd1xDb250ZW50U2VsZWN0b3JRdWVyeS5oIgorCQkJCQk+CisJCQkJ
PC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxzaGFkb3dcQ29u
dGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcc2hhZG93XENvbnRlbnRJbmNsdXNpb25TZWxl
Y3Rvci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0
aD0iLi5caHRtbFxzaGFkb3dcRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIgogCQkJCQk+CiAJCQkJ
PC9GaWxlPgpAQCAtNjExMDUsNiArNjA4OTcsNjIgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJ
CQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcc2hhZG93XEhUTUxDb250ZW50RWxl
bWVudC5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJ
CQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+
CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
CU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUHJvZHVjdGlv
bnxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxodG1sXHNoYWRvd1xIVE1MQ29udGVudEVsZW1lbnQuaCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcc2hhZG93XE1lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3MmMzYjUzNjg3
NzFiZmFhMGY0YjA1MzBlMDg4MmUzMmE3MTVkZTUyLi44Y2M3YmM1MmJjNGUzNzRiNzYzYzQwMDc3
N2IyM2E5Njk0YjYzMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTcwLDYgKzE1NzAsMTIgQEAKIAkJNTUwQTBCQ0EwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZp
ZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTcwREJBODExNEI1ODA0OTAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERC
N0E4MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi87
IH07CiAJCTU3MERCQTgyMTRCNTgwNEIwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JR
dWVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcw
REI3QTkxNEI1Njk2QTAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggKi87
IH07CisJCTU3Qjc5MUEzMTRDNkE2MjkwMEYyMDJEMSAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0
b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdC
NzkxOUYxNEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgKi87
IH07CisJCTU3Qjc5MUE0MTRDNkE2MjkwMEYyMDJEMSAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3Qjc5
MUEwMTRDNkE2MjkwMEYyMDJEMSAvKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCAqLzsgfTsK
KwkJNTdCNzkxQTUxNEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3Qjc5MUExMTRD
NkE2MjkwMEYyMDJEMSAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi87IH07CisJCTU3Qjc5
MUE2MTRDNkE2MjkwMEYyMDJEMSAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdCNzkxQTIxNEM2QTYyOTAwRjIw
MkQxIC8qIENvbnRlbnRTZWxlY3RvclF1ZXJ5LmggKi87IH07CisJCTU3Qjc5MUE5MTRDNkE2MzMw
MEYyMDJEMSAvKiBIVE1MQ29udGVudEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdCNzkxQTcxNEM2QTYzMzAwRjIwMkQxIC8qIEhUTUxD
b250ZW50RWxlbWVudC5jcHAgKi87IH07CisJCTU3Qjc5MUFBMTRDNkE2MzMwMEYyMDJEMSAvKiBI
VE1MQ29udGVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3Qjc5MUE4MTRDNkE2MzMwMEYyMDJEMSAvKiBIVE1MQ29udGVudEVsZW1lbnQu
aCAqLzsgfTsKIAkJNTkwNUFEQkYxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkwNUFEQkQx
MzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuY3BwICovOyB9OwogCQk1OTA1QURDMDEz
MDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkwNUFEQkUxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRy
ZWVWaWV3ZXIuaCAqLzsgfTsKIAkJNTkwRTFCNDkxMUU0RUY0QjAwNjlGNzg0IC8qIERldmljZU9y
aWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1OTBFMUI0ODExRTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODM5Niw2ICs4NDAy
LDEyIEBACiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmll
ZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CiAJCTU3MERCN0E4MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0
b3JRdWVyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFkb3dD
b250ZW50U2VsZWN0b3JRdWVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
MERCN0E5MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVy
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0I3OTE5RjE0QzZBNjI5MDBGMjAy
RDEgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU3Qjc5MUEwMTRDNkE2MjkwMEYyMDJEMSAvKiBDb250ZW50SW5j
bHVzaW9uU2VsZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVu
dEluY2x1c2lvblNlbGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3Qjc5
MUExMTRDNkE2MjkwMEYyMDJEMSAvKiBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZW50U2VsZWN0b3JRdWVyeS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3Qjc5MUEyMTRDNkE2MjkwMEYyMDJEMSAvKiBD
b250ZW50U2VsZWN0b3JRdWVyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b250ZW50U2VsZWN0b3JRdWVyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0I3
OTFBNzE0QzZBNjMzMDBGMjAyRDEgLyogSFRNTENvbnRlbnRFbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxDb250ZW50RWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3Qjc5MUE4MTRDNkE2MzMwMEYyMDJEMSAvKiBIVE1M
Q29udGVudEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTENv
bnRlbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MDVBREJEMTMw
MkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFhNTFRyZWVWaWV3ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxUcmVlVmlld2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmll
bnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM3MjIsOSArMTM3MzQsNiBA
QAogCQkxQUU4MkVDOTBDQUFFMTc3MDAyMjM3QUUgLyogc3RvcmFnZSAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQThGNDU3OUQxNEJDMTNFQzAwMENFQTU5
IC8qIERPTVdpbmRvd1NRTERhdGFiYXNlLmNwcCAqLywKLQkJCQlBOEY0NTc5RTE0QkMxM0VDMDAw
Q0VBNTkgLyogRE9NV2luZG93U1FMRGF0YWJhc2UuaCAqLywKLQkJCQlBOEY0NTc5RjE0QkMxM0VD
MDAwQ0VBNTkgLyogRE9NV2luZG93U1FMRGF0YWJhc2UuaWRsICovLAogCQkJCUI1QjVEQzY3MTE5
QkIzRDUwMDJBODc5MCAvKiBBYnN0cmFjdERhdGFiYXNlLmNwcCAqLywKIAkJCQlCNUI1REM2ODEx
OUJCM0Q1MDAyQTg3OTAgLyogQWJzdHJhY3REYXRhYmFzZS5oICovLAogCQkJCTUxNDE4NUVEMENE
NjVGMDQwMDc2M0M5OSAvKiBDaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAgKi8sCkBAIC0xMzc0Nyw2
ICsxMzc1Niw5IEBACiAJCQkJMUFENTFBMTMwQ0I1OUNEMzAwOTUzRDExIC8qIERhdGFiYXNlVHJh
Y2tlci5jcHAgKi8sCiAJCQkJMUFENTFBMTIwQ0I1OUNEMzAwOTUzRDExIC8qIERhdGFiYXNlVHJh
Y2tlci5oICovLAogCQkJCTUxRkFGRTMzMENFQ0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNr
ZXJDbGllbnQuaCAqLywKKwkJCQlBOEY0NTc5RDE0QkMxM0VDMDAwQ0VBNTkgLyogRE9NV2luZG93
U1FMRGF0YWJhc2UuY3BwICovLAorCQkJCUE4RjQ1NzlFMTRCQzEzRUMwMDBDRUE1OSAvKiBET01X
aW5kb3dTUUxEYXRhYmFzZS5oICovLAorCQkJCUE4RjQ1NzlGMTRCQzEzRUMwMDBDRUE1OSAvKiBE
T01XaW5kb3dTUUxEYXRhYmFzZS5pZGwgKi8sCiAJCQkJQzU4NUE2OTgxMUQ0RkIzRDAwNEMzRTRC
IC8qIElEQkFueS5jcHAgKi8sCiAJCQkJQzU4NUE2OTkxMUQ0RkIzRDAwNEMzRTRCIC8qIElEQkFu
eS5oICovLAogCQkJCUM1ODVBNjlBMTFENEZCM0QwMDRDM0U0QiAvKiBJREJBbnkuaWRsICovLApA
QCAtMTQyMjcsOCArMTQyMzksMTQgQEAKIAkJNDE1MEY5RUQxMkI2RTA5OTAwMDhDODYwIC8qIHNo
YWRvdyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTdC
NzkxOUYxNEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAgKi8s
CisJCQkJNTdCNzkxQTAxNEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rv
ci5oICovLAorCQkJCTU3Qjc5MUExMTRDNkE2MjkwMEYyMDJEMSAvKiBDb250ZW50U2VsZWN0b3JR
dWVyeS5jcHAgKi8sCisJCQkJNTdCNzkxQTIxNEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmggKi8sCiAJCQkJQTdDOUFCRjYxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNN
YXJrZXJDb250cm9sLmNwcCAqLywKIAkJCQlBN0M5QUJGNzEzNTdBM0JGMDBGNTUwM0YgLyogRGV0
YWlsc01hcmtlckNvbnRyb2wuaCAqLywKKwkJCQk1N0I3OTFBNzE0QzZBNjMzMDBGMjAyRDEgLyog
SFRNTENvbnRlbnRFbGVtZW50LmNwcCAqLywKKwkJCQk1N0I3OTFBODE0QzZBNjMzMDBGMjAyRDEg
LyogSFRNTENvbnRlbnRFbGVtZW50LmggKi8sCiAJCQkJNDE3MjUzQTgxMzU0QkJCQzAwMzYwRjJB
IC8qIE1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCAqLywKIAkJCQk0MTcyNTNBOTEzNTRCQkJDMDAz
NjBGMkEgLyogTWVkaWFDb250cm9sRWxlbWVudHMuaCAqLywKIAkJCQk0MTU3QUY3RjEyRjFGQjA0
MDBBOEM2RjUgLyogTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwICovLApAQCAtMTcwNTQsMTMg
KzE3MDcyLDEzIEBACiAJCUE3NUU4QjdGMEUxREUyQjAwMDdGMjQ4MSAvKiBmaWx0ZXJzICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0OUVDRUI1QzE0OTk3
OTBEMDBDREQzQTQgLyogYXJtICovLAorCQkJCTUwRDQwNUY3MTQ3RDMxRjMwMEQzMEJCNSAvKiBD
dXN0b21GaWx0ZXJNZXNoLmNwcCAqLywKKwkJCQk1MEQ0MDVGODE0N0QzMUYzMDBEMzBCQjUgLyog
Q3VzdG9tRmlsdGVyTWVzaC5oICovLAogCQkJCTUwQUNFMkNBMTRCNUQ3OTMwMDQ0NjY2NiAvKiBD
dXN0b21GaWx0ZXJPcGVyYXRpb24uaCAqLywKIAkJCQk1MDNEMENBNzE0QjVCMDg3MDBGMzJGNTcg
LyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAgKi8sCiAJCQkJNTAzRDBDQTgxNEI1QjA4NzAwRjMy
RjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uaCAqLywKIAkJCQk1MDNEMENBOTE0QjVCMDg3MDBG
MzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oICovLAotCQkJCTQ5RUNFQjVDMTQ5
OTc5MEQwMENERDNBNCAvKiBhcm0gKi8sCi0JCQkJNTBENDA1RjcxNDdEMzFGMzAwRDMwQkI1IC8q
IEN1c3RvbUZpbHRlck1lc2guY3BwICovLAotCQkJCTUwRDQwNUY4MTQ3RDMxRjMwMEQzMEJCNSAv
KiBDdXN0b21GaWx0ZXJNZXNoLmggKi8sCiAJCQkJNTBENDA2MEYxNDdENDlERTAwRDMwQkI1IC8q
IEN1c3RvbUZpbHRlclNoYWRlci5jcHAgKi8sCiAJCQkJNTBENDA2MTAxNDdENDlERTAwRDMwQkI1
IC8qIEN1c3RvbUZpbHRlclNoYWRlci5oICovLAogCQkJCUExRTExNTQzMTMwMTVDM0QwMDU0QUM4
QyAvKiBEaXN0YW50TGlnaHRTb3VyY2UuY3BwICovLApAQCAtMTkyNDUsNyArMTkyNjMsNiBAQAog
CQlCQzhDOEZBQTBERENEMkYyMDBCNTkyRjQgLyogc3R5bGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTUwM0QwQ0FEMTRCNUIwQkEwMEYzMkY1NyAvKiBT
dHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCAqLywKIAkJCQlCQzVFQjVFMDBFODFCRTg3MDBCMjU5
NjUgLyogQm9yZGVyRGF0YS5oICovLAogCQkJCUJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBC
b3JkZXJWYWx1ZS5oICovLAogCQkJCUJDNUVCNURFMEU4MUI5QUIwMEIyNTk2NSAvKiBDb2xsYXBz
ZWRCb3JkZXJWYWx1ZS5oICovLApAQCAtMTkyODAsNiArMTkyOTcsNyBAQAogCQkJCUJDRUY0NDRD
MEU2NzQ2MjgwMDFDMTI4NyAvKiBTdHlsZUNhY2hlZEltYWdlLmggKi8sCiAJCQkJNTAzOEJFMkQx
NDcyQUQyMzAwOTVFMEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVyLmNwcCAqLywKIAkJCQk1MDM4QkUy
RTE0NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuaCAqLywKKwkJCQk1MDNEMENB
RDE0QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggKi8sCiAJCQkJ
QkM1RUI2N0UwRTgxRDRBNzAwQjI1OTY1IC8qIFN0eWxlRGFzaGJvYXJkUmVnaW9uLmggKi8sCiAJ
CQkJQkM1RUI4QjYwRTgyMDFCRDAwQjI1OTY1IC8qIFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94
RGF0YS5jcHAgKi8sCiAJCQkJQkM1RUI4QjcwRTgyMDFCRDAwQjI1OTY1IC8qIFN0eWxlRGVwcmVj
YXRlZEZsZXhpYmxlQm94RGF0YS5oICovLApAQCAtMjExMzksOCArMjExNTcsMTAgQEAKIAkJCQlB
ODE4NzIxQzA5NzdEM0MwMDA1ODI2RDkgLyogQ29udGFpbmVyTm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTFBMTQ3MDgxMTEwMkIxNTAwRUVDMEYzIC8qIENvbnRhaW5lck5vZGVBbGdvcml0aG1z
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjk4MTBFODIwNzI1MDBCMjU5NjUgLyogQ29udGVu
dERhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3Qjc5MUE0MTRDNkE2MjkwMEYyMDJEMSAvKiBD
b250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5MTAyRkJDMTQz
MjdEM0IwMDNDOUQwNCAvKiBDb250ZW50U2VhcmNoVXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3QzQ3MURDMTJGOTI1QkQwMDg2MzU0QiAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3kuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTU3Qjc5MUE2MTRDNkE2MjkwMEYyMDJEMSAvKiBDb250ZW50U2VsZWN0
b3JRdWVyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMDE1Q0EwRjRCNUM3MTAwNEE2NjJGIC8q
IENvbnRlbnRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzBENkVEQjEzODQ1NDU1MDA0NDEw
M0UgLyogQ29udGVudFR5cGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQjZBMEU2MEIw
QkNBNUMwMEY1MDI3QSAvKiBDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTIzNSw2
ICsyMTI1NSw5IEBACiAJCQkJQkMyMjcyQUQwRTgyRThGMzAwRTdGOTc1IC8qIEN1cnNvckxpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTYyQ0QzMjVBMTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21F
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTBENDA1RkExNDdEMzFGMzAwRDMwQkI1IC8qIEN1
c3RvbUZpbHRlck1lc2guaCBpbiBIZWFkZXJzICovLAorCQkJCTUwQUNFMkNCMTRCNUQ3OTMwMDQ0
NjY2NiAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTUwM0Qw
Q0FCMTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAq
LywKKwkJCQk1MDNEMENBQzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTBENDA2MTIxNDdENDlERTAwRDMwQkI1IC8qIEN1
c3RvbUZpbHRlclNoYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDQjQxM0UwRTg2MzNGRDAw
MzJDNEYwIC8qIERhc2hBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZEMEIwQTE5ODlD
QTAwN0ZCOEM1IC8qIERhc2hib2FyZFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTM2Niw2
ICsyMTM4OSw3IEBACiAJCQkJODVFNzExOTcwQUM1RDUzNTAwNTMyNzBGIC8qIERPTURPTUltcGxl
bWVudGF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCM0E4ODcyMTQ1NjMyRjkw
MDNBRThGNSAvKiBET01ET01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzY5NDU2NUIxMjE0REI2MzAwMDdDQkFFIC8qIERPTURPTVRva2VuTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJN0FBQkEyNUExNEJDNjEzMzAwQUE5QTExIC8qIERPTUVkaXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODVBQ0E5QzAwQTlCNUZBNTAwNjcxRTkwIC8qIERPTUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1RTcxMTk4MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01FbGVtZW50SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0MTVGMTY5MEQ5QTE2NUQwMDMzQ0U5NyAvKiBE
T01FbGVtZW50VGltZUNvbnRyb2wuaCBpbiBIZWFkZXJzICovLApAQCAtMjE5MDIsNiArMjE5MjYs
OCBAQAogCQkJCTg1QzdGNUU3MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NTk4OUREMTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NV2hlZWxFdmVu
dEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDAzQjk5NzA5RUIxM0FGMDA3OTdDN0Yg
LyogRE9NV2luZG93LmggaW4gSGVhZGVycyAqLywKKwkJCQk5N0QyQUQwNDE0QjgyM0E2MDA5M0RG
MzIgLyogRE9NV2luZG93UHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4RjQ1N0ExMTRC
QzFBOTQwMDBDRUE1OSAvKiBET01XaW5kb3dTUUxEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjM1QUU1QUMxNDkyNUY1QjAwNEQ1Nzc2IC8qIERPTVdyYXBwZXJWaXNpdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzUzREEyRTExNDMxMjFFMDAwRDgxN0UgLyogRE9NV3JhcHBlcldvcmxk
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTFEMTM4MDBBNTMyNTUyMDA2NEJGNUYgLyogRE9NWFBh
dGguaCBpbiBIZWFkZXJzICovLApAQCAtMjIwODMsNiArMjIxMDksNyBAQAogCQkJCUE4NTMxMjNE
MTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTY1QkYwMjJGMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTdCMDcwRDMxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1
bGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NzRBODYyMzE0QjdBREJCMDAzRkRDNzYgLyogRnJh
bWVEZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczQzBBREJB
NURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNF
MEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRDAwMEVCQTMxMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmgg
aW4gSGVhZGVycyAqLywKQEAgLTIyMTU2LDYgKzIyMTgzLDcgQEAKIAkJCQk5M0YxOTlFNTA4MjQ1
RTU5MDAxRTlBQkMgLyogSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
REYzRkQwMDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTc3QjM4NjUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxDb25zdHJ1Y3Rpb25TaXRlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1N0I3OTFBQTE0QzZBNjMzMDBGMjAyRDEgLyogSFRNTENvbnRl
bnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUEzMTY2MzEzNEJDQUU4MDA3QzlBNEYg
LyogSFRNTENvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjVDMDQxREIwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzNTlE
NzhBMTI5Q0EyNzEwMDA2RTVEMiAvKiBIVE1MRGV0YWlsc0VsZW1lbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjIzNDcsNiArMjIzNzUsNyBAQAogCQkJCUYzNDRDNzE0MTEyNUI4MkMwMEYyNkVFRSAv
KiBJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3NTMx
MTI5NEQ5RDAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdBMEU3NzBGMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVu
ZEhvc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTdBQ0Q4OEQ0MTRDMDhCRDYwMDg0RUREMiAvKiBJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjBENjI5MjcxMjUz
NjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0FBNTFERDYxNDg1MDZBOTAwQUQyNzUyIC8qIEluc3BlY3Rvck1lbW9yeUFnZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0RjZGREQ2NTEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9y
UGFnZUFnZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIyODU0LDYgKzIyODgzLDcgQEAKIAkJCQk0
OUVFQ0YwRDEwNTA3MEM0MDAwOTlGQUIgLyogSlNVaW50MTZBcnJheS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDlFRUNGMEIxMDUwNzBDNDAwMDk5RkFCIC8qIEpTVWludDMyQXJyYXkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQ5RUVDRjA5MTA1MDcwQzQwMDA5OUZBQiAvKiBKU1VpbnQ4QXJyYXkuaCBp
biBIZWFkZXJzICovLAorCQkJCTkxMDg5RDMyMTRDMzM2MDAwMDVBRkM0OSAvKiBKU1VpbnQ4Q2xh
bXBlZEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNUM3NzA5MzEwMEQzQ0E4MDA1QkEyNjcg
LyogSlNWYWxpZGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDgyRDdGODEzRDRDOEJE
MDA0RTQzNzIgLyogSlNXYXZlU2hhcGVyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEMjBG
NjMxMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmggaW4gSGVhZGVycyAqLywK
QEAgLTIzNTAxLDYgKzIzNTMxLDcgQEAKIAkJCQlCQzVFQjY3QjBFODFEM0JFMDBCMjU5NjUgLyog
U3R5bGVCb3hEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VGNDQ0RDBFNjc0NjI4MDAxQzEy
ODcgLyogU3R5bGVDYWNoZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTAzOEJFMzAxNDcy
QUQyMzAwOTVFMEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1
MDNEMENBRTE0QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzVFQjY3RjBFODFENEE3MDBCMjU5NjUgLyogU3R5bGVEYXNoYm9h
cmRSZWdpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzRBN0ZEMDlENTYzMjcwMDAzQUM4RCAv
KiBTdHlsZWRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjhCOTBFODIwMUJEMDBC
MjU5NjUgLyogU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggaW4gSGVhZGVycyAqLywK
QEAgLTIzNzQ1LDYgKzIzNzc2LDcgQEAKIAkJCQkwODBFNDkyNjEyNTVGM0JEMDBFRkNBMjcgLyog
U1ZHVGV4dExheW91dEVuZ2luZUJhc2VsaW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODBFNDky
ODEyNTVGM0JEMDBFRkNBMjcgLyogU1ZHVGV4dExheW91dEVuZ2luZVNwYWNpbmcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4RjBCRkM2MTI1NUM1M0MwMDA3NTE4NSAvKiBTVkdUZXh0TWV0cmljcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNzExNzQ0NTkxNEJDMzRFQzAwRUU1RkM4IC8qIFNWR1RleHRN
ZXRyaWNzQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBQ0UwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1RleHRQYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRDEw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4NTRCMDI1MTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdUZXh0UXVlcnkuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjQwMTcsMTcgKzI0MDQ5LDYgQEAKIAkJCQlFMUJFNTEyRTBDRjZDNTEy
MDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUw
RjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1
MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5
NzRBODYyMzE0QjdBREJCMDAzRkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmggaW4g
SGVhZGVycyAqLywKLQkJCQk5N0QyQUQwNDE0QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93UHJv
cGVydHkuaCBpbiBIZWFkZXJzICovLAotCQkJCTdBQUJBMjVBMTRCQzYxMzMwMEFBOUExMSAvKiBE
T01FZGl0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4RjQ1N0ExMTRCQzFBOTQwMDBDRUE1OSAv
KiBET01XaW5kb3dTUUxEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzExNzQ0NTkxNEJD
MzRFQzAwRUU1RkM4IC8qIFNWR1RleHRNZXRyaWNzQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNTAzRDBDQUIxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uaCBpbiBI
ZWFkZXJzICovLAotCQkJCTUwM0QwQ0FDMTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQ
cm9ncmFtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MDNEMENBRTE0QjVCMEJBMDBGMzJG
NTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MEFD
RTJDQjE0QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk3QUNEODhENDE0QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERC
QWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTkxMDg5RDMyMTRDMzM2MDAwMDVBRkM0OSAvKiBK
U1VpbnQ4Q2xhbXBlZEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI0NTM4LDggKzI0NTU5LDEw
IEBACiAJCQkJNDFGMDYxOEYwRjVGMDY5ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNzYWdlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4MTg3MjFGMDk3N0QzQzAwMDU4MjZEOSAvKiBDb250YWluZXJO
b2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUVCOTgwMEU4MjA3MjUwMEIyNTk2NSAvKiBD
b250ZW50RGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1N0I3OTFBMzE0QzZBNjI5MDBGMjAy
RDEgLyogQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU5
MTAyRkJCMTQzMjdEM0IwMDNDOUQwNCAvKiBDb250ZW50U2VhcmNoVXRpbHMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTdDNDcxREIxMkY5MjVCRDAwODYzNTRCIC8qIENvbnRlbnRTZWN1cml0eVBv
bGljeS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1N0I3OTFBNTE0QzZBNjI5MDBGMjAyRDEgLyog
Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFEMDE1Q0IwRjRC
NUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3MEQ2
RURBMTM4NDU0NTUwMDQ0MTAzRSAvKiBDb250ZW50VHlwZVBhcnNlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNjVBRDRGNjBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQ2MjMsNiArMjQ2NDYsNyBAQAogCQkJCTkzRjE5QTI2
MDgyNDVFNTkwMDFFOUFCQyAvKiBDdXJzb3JNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk2MkNE
MzI1OTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTBENDA1RjkxNDdEMzFGMzAwRDMwQkI1IC8qIEN1c3RvbUZpbHRlck1lc2guY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNTAzRDBDQUExNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclBy
b2dyYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTBENDA2MTExNDdENDlERTAwRDMwQkI1IC8q
IEN1c3RvbUZpbHRlclNoYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTk2MTE2QTBDQUM1
NjU3MDAxMEE4MEMgLyogRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBNDVCNTcw
Q0FEN0ZENzAwMEQyQkU5IC8qIERhdGFiYXNlQXV0aG9yaXplci5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI0NzE0LDYgKzI0NzM4LDcgQEAKIAkJCQk4NUNBOTc1RDBBOTYyRTU0MDA2OTBDQ0YgLyog
RE9NRG9jdW1lbnRUeXBlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODUxOERDRUEwQTlDQzgwRDAw
OTFCN0E2IC8qIERPTURPTUltcGxlbWVudGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNzY5
NDU2NUMxMjE0REI2MzAwMDdDQkFFIC8qIERPTURPTVRva2VuTGlzdC5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTdBQUJBMjU5MTRCQzYxMzMwMEFBOUExMSAvKiBET01FZGl0b3IuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODVBQ0E5QzEwQTlCNUZBNTAwNjcxRTkwIC8qIERPTUVsZW1lbnQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk4NUNBOTZCOTBBOTYyMUE2MDA2OTBDQ0YgLyogRE9NRW50aXR5Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJODUwODlDREUwQTk4QzQyODAwQTI3NUFBIC8qIERPTUVudGl0
eVJlZmVyZW5jZS5tbSBpbiBTb3VyY2VzICovLApAQCAtMjQ5ODcsNiArMjUwMTIsOCBAQAogCQkJ
CTMxQzBGRjREMEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxF
dmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE0MDNCOTk4MDlFQjEzQUYwMDc5N0M3RiAvKiBE
T01XaW5kb3cuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTdEMkFEMDMxNEI4MjNBNjAwOTNERjMy
IC8qIERPTVdpbmRvd1Byb3BlcnR5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4RjQ1N0EwMTRC
QzFBODgwMDBDRUE1OSAvKiBET01XaW5kb3dTUUxEYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzUzREE0ODExNDMxMzREMDAwRDgxN0UgLyogRE9NV3JhcHBlcldvcmxkLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBMUQxMzgxMEE1MzI1NTIwMDY0QkY1RiAvKiBET01YUGF0aC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTg1RTlFMEEyMEFCM0EwQzcwMDA2OUNEMCAvKiBET01YUGF0aEV4
cHJlc3Npb24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI1MTMzLDYgKzI1MTYwLDcgQEAKIAkJCQk0
MTg4NUI5NDExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNjVCRjAyMkUwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3QjA3MEQyMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NzRBODYyMjE0QjdBREJCMDAzRkRDNzYgLyogRnJh
bWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMkUxNjA5MEFG
NTc4MzQwMDI1RjQwOCAvKiBGcmFtZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEMDAw
RUJBMjExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNjVCRjAyNDUwOTc0ODE5MDAwQzQzMTk2IC8qIEZyYW1lTWFjLm1tIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNTE5MSw2ICsyNTIxOSw3IEBACiAJCQkJOTNGMTlBRkQwODI0NUU1
OTAwMUU5QUJDIC8qIEhUTUxDYW52YXNFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
REYzRkQxMDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5NzdCMzg2NDEyMjg4M0U5MDBCODFGRjggLyogSFRNTENvbnN0cnVjdGlvblNpdGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTdCNzkxQTkxNEM2QTYzMzAwRjIwMkQxIC8qIEhUTUxD
b250ZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1RDRGNTFERjEzMjcyNTQ4MDAx
NkY1NDEgLyogSFRNTENvbnZlcnRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY1QzA0MURBMEZG
Q0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUQzNTlENzg5MTI5Q0EyNzEwMDA2RTVEMiAvKiBIVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNTM2NSw2ICsyNTM5NCw3IEBACiAJCQkJNEY0RjVGRkIxMUNCRDJF
MTAwQTE4NkJGIC8qIEluc3BlY3RvckZyb250ZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYz
NDRDNzU4MTEyOTRGRjYwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdBMEU3NzBFMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0
b3JGcm9udGVuZEhvc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0FDRDg4RDMxNEMwOEJENjAw
ODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTIwRDYyOTI2MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0FBNTFERDUxNDg1MDZBOTAwQUQyNzUyIC8qIEluc3BlY3Rv
ck1lbW9yeUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRGNkZERDY0MTM0MURFREQwMDFG
OEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTk3OCw2
ICsyNjAwOCw4IEBACiAJCQkJNDlFRUNGN0QxMDUwOEQ5QzAwMDk5RkFCIC8qIEpTVWludDMyQXJy
YXlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlFRUNGMDgxMDUwNzBDNDAwMDk5RkFC
IC8qIEpTVWludDhBcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVFQ0Y3QzEwNTA4RDlD
MDAwOTlGQUIgLyogSlNVaW50OEFycmF5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkx
MDg5RDMzMTRDMzM2MDUwMDVBRkM0OSAvKiBKU1VpbnQ4Q2xhbXBlZEFycmF5LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTkxQTM5MDVCMTRDMEY2MTEwMEY2NzkwMSAvKiBKU1VpbnQ4Q2xhbXBlZEFy
cmF5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE1Qzc3MDk0MTAwRDNDQTgwMDVCQTI2
NyAvKiBKU1ZhbGlkaXR5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ4MkQ3RjcxM0Q0
QzhCRDAwNEU0MzcyIC8qIEpTV2F2ZVNoYXBlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkQ4RTlCREYxM0Q0Q0QyQjAwNTBEQzcyIC8qIEpTV2F2ZVNoYXBlck5vZGVDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNjkzNywxNCArMjY5NjksNiBAQAogCQkJCUUxQkU1MTJEMENGNkM1
MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3
RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTk3NEE4NjIyMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTdEMkFEMDMxNEI4MjNBNjAwOTNERjMyIC8qIERP
TVdpbmRvd1Byb3BlcnR5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTdBQUJBMjU5MTRCQzYxMzMw
MEFBOUExMSAvKiBET01FZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQThGNDU3QTAxNEJD
MUE4ODAwMENFQTU5IC8qIERPTVdpbmRvd1NRTERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTUwM0QwQ0FBMTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTdBQ0Q4OEQzMTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJ
bmRleGVkREJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5MUEzOTA1QjE0QzBGNjExMDBG
Njc5MDEgLyogSlNVaW50OENsYW1wZWRBcnJheUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk5MTA4OUQzMzE0QzMzNjA1MDA1QUZDNDkgLyogSlNVaW50OENsYW1wZWRBcnJheS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IDU1YjYwNTI4YWFh
MjkzY2Q2NjVjNGM5MjI3YmE4ODQ3ODg1ZjZhM2UuLmYyY2I0NjdkY2MxMzNjYmIzZDgwNDBmZTEw
NmMyYmU4ZGUxMjhiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtMTEyLDkg
KzExMiw2IEBACiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCIKICNpbmNs
dWRlICJTZWN1cml0eUNvbnRleHQuY3BwIgogI2luY2x1ZGUgIlNlbGVjdG9yUXVlcnkuY3BwIgot
I2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCIKLSNpbmNsdWRlICJTaGFkb3dDb250
ZW50U2VsZWN0b3JRdWVyeS5jcHAiCi0jaW5jbHVkZSAiU2hhZG93SW5jbHVzaW9uU2VsZWN0b3Iu
Y3BwIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuY3BwIgogI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJp
bmcuY3BwIgogI2luY2x1ZGUgIlN0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBlZjg1ZjdkMjNmNzgyM2Y5
Y2YxZjEwZDVjODgyMWJhOGFhNzFiYzA5Li4yMjZjMGY0YmU4ZTU1OGZmOTAwYjk0MWQwOGIyMDVh
MWMyMmNhOWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5j
cHAKQEAgLTI3LDEzICsyNywxMyBAQAogI2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdDb250ZXh0Lmgi
CiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiQ29udGVudEluY2x1c2lv
blNlbGVjdG9yLmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAi
Tm9kZS5oIgogI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJG
dWxsU2NyZWVuLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVy
Vmlldy5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU2hh
ZG93SW5jbHVzaW9uU2VsZWN0b3IuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAKICNpZiBF
TkFCTEUoU1ZHKQpAQCAtMTExLDcgKzExMSw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IE5v
ZGVSZW5kZXJpbmdDb250ZXh0OjpyZWxlYXNlU3R5bGUoKQogICAgIHJldHVybiBtX3N0eWxlLnJl
bGVhc2UoKTsKIH0KIAotc3RhdGljIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyT2YoU2hhZG93
Q29udGVudEVsZW1lbnQqIHBhcmVudCwgTm9kZSogY3VycmVudCkKK3N0YXRpYyBSZW5kZXJPYmpl
Y3QqIG5leHRSZW5kZXJlck9mKEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJy
ZW50KQogewogICAgIFNoYWRvd0luY2x1c2lvbiogY3VycmVudEluY2x1c2lvbiA9IHBhcmVudC0+
aW5jbHVzaW9ucygpLT5maW5kKGN1cnJlbnQpOwogICAgIGlmICghY3VycmVudEluY2x1c2lvbikK
QEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXJPZihT
aGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQogICAgIHJldHVybiAw
OwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVyT2YoU2hhZG93Q29u
dGVudEVsZW1lbnQqIHBhcmVudCwgTm9kZSogY3VycmVudCkKK3N0YXRpYyBSZW5kZXJPYmplY3Qq
IHByZXZpb3VzUmVuZGVyZXJPZihIVE1MQ29udGVudEVsZW1lbnQqIHBhcmVudCwgTm9kZSogY3Vy
cmVudCkKIHsKICAgICBSZW5kZXJPYmplY3QqIGxhc3RSZW5kZXJlciA9IDA7CiAKQEAgLTEzOSw3
ICsxMzksNyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVyT2YoU2hhZG93
Q29udGVudEVsZW1lbnQqIHBhcmVudCwgTm9kZSogY3VycgogICAgIHJldHVybiBsYXN0UmVuZGVy
ZXI7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIGZpcnN0UmVuZGVyZXJPZihTaGFkb3dDb250
ZW50RWxlbWVudCogcGFyZW50KQorc3RhdGljIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9m
KEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50KQogewogICAgIGZvciAoU2hhZG93SW5jbHVzaW9u
KiBpbmNsdXNpb24gPSBwYXJlbnQtPmluY2x1c2lvbnMoKS0+Zmlyc3QoKTsgaW5jbHVzaW9uOyBp
bmNsdXNpb24gPSBpbmNsdXNpb24tPm5leHQoKSkgewogICAgICAgICBpZiAoUmVuZGVyT2JqZWN0
KiByZW5kZXJlciA9IGluY2x1c2lvbi0+Y29udGVudCgpLT5yZW5kZXJlcigpKQpAQCAtMTQ5LDcg
KzE0OSw3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIGZpcnN0UmVuZGVyZXJPZihTaGFkb3dDb250
ZW50RWxlbWVudCogcGFyZW50KQogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgUmVuZGVyT2Jq
ZWN0KiBsYXN0UmVuZGVyZXJPZihTaGFkb3dDb250ZW50RWxlbWVudCogcGFyZW50KQorc3RhdGlj
IFJlbmRlck9iamVjdCogbGFzdFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQp
CiB7CiAgICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IHBhcmVudC0+aW5jbHVz
aW9ucygpLT5sYXN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5wcmV2aW91
cygpKSB7CiAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gaW5jbHVzaW9uLT5j
b250ZW50KCktPnJlbmRlcmVyKCkpCkBAIC0xODcsNyArMTg3LDcgQEAgUmVuZGVyT2JqZWN0KiBO
b2RlUmVuZGVyaW5nQ29udGV4dDo6bmV4dFJlbmRlcmVyKCkgY29uc3QKICAgICAgICAgICAgIHJl
dHVybiBub2RlLT5yZW5kZXJlcigpOwogICAgICAgICB9CiAgICAgICAgIGlmIChub2RlLT5pc0Nv
bnRlbnRFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGZpcnN0ID0g
Zmlyc3RSZW5kZXJlck9mKHRvU2hhZG93Q29udGVudEVsZW1lbnQobm9kZSkpKQorICAgICAgICAg
ICAgaWYgKFJlbmRlck9iamVjdCogZmlyc3QgPSBmaXJzdFJlbmRlcmVyT2YodG9IVE1MQ29udGVu
dEVsZW1lbnQobm9kZSkpKQogICAgICAgICAgICAgICAgIHJldHVybiBmaXJzdDsKICAgICAgICAg
fQogICAgIH0KQEAgLTIyMCw3ICsyMjAsNyBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdD
b250ZXh0OjpwcmV2aW91c1JlbmRlcmVyKCkgY29uc3QKICAgICAgICAgICAgIHJldHVybiBub2Rl
LT5yZW5kZXJlcigpOwogICAgICAgICB9CiAgICAgICAgIGlmIChub2RlLT5pc0NvbnRlbnRFbGVt
ZW50KCkpIHsKLSAgICAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGxhc3QgPSBsYXN0UmVuZGVy
ZXJPZih0b1NoYWRvd0NvbnRlbnRFbGVtZW50KG5vZGUpKSkKKyAgICAgICAgICAgIGlmIChSZW5k
ZXJPYmplY3QqIGxhc3QgPSBsYXN0UmVuZGVyZXJPZih0b0hUTUxDb250ZW50RWxlbWVudChub2Rl
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3Q7CiAgICAgICAgIH0KICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGI0ZTg5MTI5N2E2MmNi
NDdkYjdjOTU4NDNhMGVhMDdkY2E0ZjZiYjAuLmQzMTQxMTc2ZjIwNTQzNDIyNzBmNmE0ZTEzMWNm
OWQ0YmJlZGU5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5n
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5o
CkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJGbG93VGhyZWFkOwog
Y2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyU3R5bGU7Ci1jbGFzcyBTaGFkb3dDb250
ZW50RWxlbWVudDsKK2NsYXNzIEhUTUxDb250ZW50RWxlbWVudDsKIGNsYXNzIFNoYWRvd1Jvb3Q7
CiAKIGNsYXNzIE5vZGVSZW5kZXJpbmdDb250ZXh0IHsKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGlj
OgogICAgIFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIoKSBjb25zdDsKICAgICBSZW5kZXJP
YmplY3QqIG5leHRSZW5kZXJlcigpIGNvbnN0OwogICAgIFJlbmRlck9iamVjdCogcHJldmlvdXNS
ZW5kZXJlcigpIGNvbnN0OwotICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBpbmNsdWRlcigpIGNv
bnN0OworICAgIEhUTUxDb250ZW50RWxlbWVudCogaW5jbHVkZXIoKSBjb25zdDsKIAogICAgIFJl
bmRlclN0eWxlKiBzdHlsZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0U3R5bGUoUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4pOwpAQCAtODYsNyArODYsNyBAQCBwcml2YXRlOgogICAgIE5vZGUqIG1fbm9k
ZTsKICAgICBDb250YWluZXJOb2RlKiBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZTsK
ICAgICBTaGFkb3dSb290KiBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3Q7Ci0gICAgU2hhZG93Q29u
dGVudEVsZW1lbnQqIG1faW5jbHVkZXI7CisgICAgSFRNTENvbnRlbnRFbGVtZW50KiBtX2luY2x1
ZGVyOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsKICAgICBSZW5kZXJGbG93VGhy
ZWFkKiBtX3BhcmVudEZsb3dSZW5kZXJlcjsKICAgICBBdG9taWNTdHJpbmcgbV9mbG93VGhyZWFk
OwpAQCAtMTA4LDcgKzEwOCw3IEBAIGlubGluZSBSZW5kZXJTdHlsZSogTm9kZVJlbmRlcmluZ0Nv
bnRleHQ6OnN0eWxlKCkgY29uc3QKICAgICByZXR1cm4gbV9zdHlsZS5nZXQoKTsKIH0KIAotaW5s
aW5lIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6aW5jbHVkZXIo
KSBjb25zdAoraW5saW5lIEhUTUxDb250ZW50RWxlbWVudCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6
OmluY2x1ZGVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbmNsdWRlcjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2M2JjZjAxZTMwZjA5OGI2MTJlYTk3NDZkMjAzM2JjNzU3NTc5ZTI0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgot
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50
LmgiCi0KLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgi
Ci0jaW5jbHVkZSAiU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCIKLSNpbmNsdWRlICJTaGFk
b3dJbmNsdXNpb25TZWxlY3Rvci5oIgotI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgSFRN
TE5hbWVzOjpzZWxlY3RBdHRyOwotCi1QYXNzUmVmUHRyPFNoYWRvd0NvbnRlbnRFbGVtZW50PiBT
aGFkb3dDb250ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHRhZ05hbWUsIChudWxsQXRvbSwgIndl
YmtpdFNoYWRvd0NvbnRlbnQiLCBIVE1MTmFtZXM6OmRpdlRhZy5uYW1lc3BhY2VVUkkoKSkpOwot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93Q29udGVudEVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKLX0KLQotU2hhZG93Q29udGVudEVsZW1lbnQ6OlNoYWRvd0NvbnRlbnRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IFN0
eWxlZEVsZW1lbnQobmFtZSwgZG9jdW1lbnQsIENyZWF0ZUhUTUxFbGVtZW50KQotICAgICwgbV9p
bmNsdXNpb25zKGFkb3B0UHRyKG5ldyBTaGFkb3dJbmNsdXNpb25MaXN0KCkpKQotewotfQotCi1T
aGFkb3dDb250ZW50RWxlbWVudDo6flNoYWRvd0NvbnRlbnRFbGVtZW50KCkKLXsKLX0KLQotdm9p
ZCBTaGFkb3dDb250ZW50RWxlbWVudDo6YXR0YWNoKCkKLXsKLSAgICBBU1NFUlQoIWZpcnN0Q2hp
bGQoKSk7IC8vIEN1cnJlbnRseSBkb2Vzbid0IHN1cHBvcnQgYW55IGxpZ2h0IGNoaWxkLgotICAg
IFN0eWxlZEVsZW1lbnQ6OmF0dGFjaCgpOwotCi0gICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0
b1NoYWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpKSB7Ci0gICAgICAgIFNoYWRvd0luY2x1
c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmVuc3VyZUluY2x1c2lvbnMoKTsKLSAgICAg
ICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1faW5jbHVzaW9ucy5nZXQoKSk7Ci0gICAgICAgIHNlbGVj
dG9yLT5zZWxlY3QodGhpcywgbV9pbmNsdXNpb25zLmdldCgpKTsKLSAgICAgICAgZm9yIChTaGFk
b3dJbmNsdXNpb24qIGluY2x1c2lvbiA9IG1faW5jbHVzaW9ucy0+Zmlyc3QoKTsgaW5jbHVzaW9u
OyBpbmNsdXNpb24gPSBpbmNsdXNpb24tPm5leHQoKSkKLSAgICAgICAgICAgIGluY2x1c2lvbi0+
Y29udGVudCgpLT5kZXRhY2goKTsKLSAgICAgICAgZm9yIChTaGFkb3dJbmNsdXNpb24qIGluY2x1
c2lvbiA9IG1faW5jbHVzaW9ucy0+Zmlyc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNs
dXNpb24tPm5leHQoKSkKLSAgICAgICAgICAgIGluY2x1c2lvbi0+Y29udGVudCgpLT5hdHRhY2go
KTsKLSAgICB9Ci19Ci0KLXZvaWQgU2hhZG93Q29udGVudEVsZW1lbnQ6OmRldGFjaCgpCi17Ci0g
ICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1NoYWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2Rl
KCkpKSB7Ci0gICAgICAgIGlmIChTaGFkb3dJbmNsdXNpb25TZWxlY3Rvciogc2VsZWN0b3IgPSBy
b290LT5pbmNsdXNpb25zKCkpCi0gICAgICAgICAgICBzZWxlY3Rvci0+dW5zZWxlY3QobV9pbmNs
dXNpb25zLmdldCgpKTsKLSAgICB9Ci0KLSAgICBBU1NFUlQobV9pbmNsdXNpb25zLT5pc0VtcHR5
KCkpOwotICAgIFN0eWxlZEVsZW1lbnQ6OmRldGFjaCgpOwotfQotCi1jb25zdCBBdG9taWNTdHJp
bmcmIFNoYWRvd0NvbnRlbnRFbGVtZW50OjpzZWxlY3QoKSBjb25zdAotewotICAgIHJldHVybiBn
ZXRBdHRyaWJ1dGUoc2VsZWN0QXR0cik7Ci19Ci0KLXZvaWQgU2hhZG93Q29udGVudEVsZW1lbnQ6
OnNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdFZhbHVlKQotewotICAgIHNldEF0
dHJpYnV0ZShzZWxlY3RBdHRyLCBzZWxlY3RWYWx1ZSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGFjZTQ3YWRjMTEzZmZhMzgzY2QyOThlODE0Y2E0YjdkOWI4ZGNmZjcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d0NvbnRlbnRFbGVtZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3Ry
aWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBT
aGFkb3dDb250ZW50RWxlbWVudF9oCi0jZGVmaW5lIFNoYWRvd0NvbnRlbnRFbGVtZW50X2gKLQot
I2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5Owot
Y2xhc3MgU2hhZG93SW5jbHVzaW9uTGlzdDsKLQotLy8gTk9URTogQ3VycmVudCBpbXBsZW1lbnRh
dGlvbiBkb2Vzbid0IHN1cHBvcnQgZHluYW1pYyBpbnNlcnRpb24vZGVsZXRpb24gb2YgU2hhZG93
Q29udGVudEVsZW1lbnQuCi0vLyBZb3Ugc2hvdWxkIGNyZWF0ZSBTaGFkb3dDb250ZW50RWxlbWVu
dCBkdXJpbmcgdGhlIGhvc3QgY29uc3RydWN0aW9uLgotY2xhc3MgU2hhZG93Q29udGVudEVsZW1l
bnQgOiBwdWJsaWMgU3R5bGVkRWxlbWVudCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8U2hhZG93Q29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwotCi0gICAgdmlydHVh
bCB+U2hhZG93Q29udGVudEVsZW1lbnQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwotCi0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxl
Y3QoKSBjb25zdDsKLQotICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgdGhpcyBjb25zdHJ1Y3RvciBh
Y2NlcHRzIHdpZGVyIHF1ZXJ5IHRoYW4gc2hhZG93IGRvbSBzcGVjLgotICAgIC8vIEZvciBleGFt
cGxlLCBhIHNlbGVjdG9yIHF1ZXJ5IHNob3VsZCBub3QgaW5jbHVkZSBjb250ZXh0dWFsIHNlbGVj
dG9ycy4KLSAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc1OTQ2Ci0gICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBkb24ndCBzdXBwb3J0IHNldHRpbmcg
c2VsZWN0IHZhbHVlIGR5bmFtaWNhbGx5LgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNjEKLSAgICB2b2lkIHNldFNlbGVjdChjb25zdCBBdG9t
aWNTdHJpbmcmKTsKLQotICAgIGNvbnN0IFNoYWRvd0luY2x1c2lvbkxpc3QqIGluY2x1c2lvbnMo
KSBjb25zdCB7IHJldHVybiBtX2luY2x1c2lvbnMuZ2V0KCk7IH0KLQotcHJvdGVjdGVkOgotICAg
IFNoYWRvd0NvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwot
Ci1wcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRlbnRFbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5v
ZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIFJlbmRl
ck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIHsgcmV0
dXJuIDA7IH0KLQotICAgIE93blB0cjxTaGFkb3dJbmNsdXNpb25MaXN0PiBtX2luY2x1c2lvbnM7
Ci19OwotCi1pbmxpbmUgU2hhZG93Q29udGVudEVsZW1lbnQqIHRvU2hhZG93Q29udGVudEVsZW1l
bnQoTm9kZSogbm9kZSkKLXsKLSAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aXNDb250ZW50RWxl
bWVudCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhZG93Q29udGVudEVsZW1lbnQqPihu
b2RlKTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
YTA2MWU3ODY3YjI1YmU1ZmVhZjFjYmY0Zjc0NDhkMjM5Yjc0MmNjLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dD
b250ZW50U2VsZWN0b3JRdWVyeS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmgiCi0KLSNpbmNsdWRlICJDU1NQYXJzZXIuaCIKLSNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3Qu
aCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLVNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5OjpTaGFkb3dDb250ZW50U2VsZWN0b3JR
dWVyeShTaGFkb3dDb250ZW50RWxlbWVudCogZWxlbWVudCkKLSAgICA6IG1fY29udGVudEVsZW1l
bnQoZWxlbWVudCkKLSAgICAsIG1fc2VsZWN0b3JDaGVja2VyKGVsZW1lbnQtPmRvY3VtZW50KCks
ICFlbGVtZW50LT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKLXsKLSAgICBtX3NlbGVjdG9y
Q2hlY2tlci5zZXRDb2xsZWN0aW5nUnVsZXNPbmx5KHRydWUpOwotCi0gICAgaWYgKGVsZW1lbnQt
PnNlbGVjdCgpLmlzTnVsbCgpIHx8IGVsZW1lbnQtPnNlbGVjdCgpLmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgQ1NTUGFyc2VyIHBhcnNlcih0cnVlKTsKLSAgICBwYXJzZXIucGFy
c2VTZWxlY3RvcihlbGVtZW50LT5zZWxlY3QoKSwgZWxlbWVudC0+ZG9jdW1lbnQoKSwgbV9zZWxl
Y3Rvckxpc3QpOwotCi0gICAgbV9zZWxlY3RvcnMuaW5pdGlhbGl6ZShtX3NlbGVjdG9yTGlzdCk7
Ci19Ci0KLWJvb2wgU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnk6Om1hdGNoZXMoTm9kZSogbm9k
ZSkgY29uc3QKLXsKLSAgICBBU1NFUlQobm9kZSk7Ci0gICAgaWYgKCFub2RlKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICBBU1NFUlQobm9kZS0+cGFyZW50Tm9kZSgpID09IG1fY29udGVu
dEVsZW1lbnQtPnNoYWRvd1RyZWVSb290Tm9kZSgpLT5zaGFkb3dIb3N0KCkpOwotCi0gICAgaWYg
KG1fY29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IG1fY29udGVudEVsZW1lbnQt
PnNlbGVjdCgpLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIW5v
ZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJu
IG1fc2VsZWN0b3JzLm1hdGNoZXMobV9zZWxlY3RvckNoZWNrZXIsIHRvRWxlbWVudChub2RlKSk7
Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2Vs
ZWN0b3JRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1
ZXJ5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1Njg3M2IzNDMwYzNhMmMyNDdh
MTgwYWU0ZGEzZGIxMDRmMDczMGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTaGFkb3dDb250ZW50U2Vs
ZWN0b3JRdWVyeV9oCi0jZGVmaW5lIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5X2gKLQotI2lu
Y2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgotI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlci5oIgot
I2luY2x1ZGUgIlNlbGVjdG9yUXVlcnkuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEb2N1
bWVudDsKLWNsYXNzIE5vZGU7Ci1jbGFzcyBTaGFkb3dDb250ZW50RWxlbWVudDsKLQotY2xhc3Mg
U2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNo
YWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5KTsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBTaGFkb3dD
b250ZW50U2VsZWN0b3JRdWVyeShTaGFkb3dDb250ZW50RWxlbWVudCopOwotCi0gICAgYm9vbCBt
YXRjaGVzKE5vZGUqKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBTaGFkb3dDb250ZW50RWxlbWVu
dCogbV9jb250ZW50RWxlbWVudDsKLSAgICBTZWxlY3RvckRhdGFMaXN0IG1fc2VsZWN0b3JzOwot
ICAgIENTU1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9yTGlzdDsKLSAgICBTZWxlY3RvckNoZWNrZXIg
bV9zZWxlY3RvckNoZWNrZXI7Ci19OwotCi19Ci0KLQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1N2U5ZDQyYmU1MWI1ZTQ1MmM0ZDQwNTRlMjBiYTRjN2I4NTU0OGExLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNTUg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTaGFkb3dJbmNsdXNpb25T
ZWxlY3Rvci5oIgotCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuaCIKLSNpbmNsdWRl
ICJTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIgotI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
LQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgU2hhZG93SW5jbHVzaW9uOjphcHBlbmQo
UGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG5leHQpCi17Ci0gICAgQVNTRVJUKCFtX25leHQp
OwotICAgIEFTU0VSVCghbmV4dC0+cHJldmlvdXMoKSk7Ci0gICAgbV9uZXh0ID0gbmV4dDsKLSAg
ICBtX25leHQtPm1fcHJldmlvdXMgPSB0aGlzOwotfQotCi12b2lkIFNoYWRvd0luY2x1c2lvbjo6
dW5saW5rKCkKLXsKLSAgICBBU1NFUlQoIW1fcHJldmlvdXMpOyAvLyBDYW4gYmUgY2FsbGVkIG9u
bHkgZm9yIGEgaGVhZC4KLSAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBpdGVtID0gdGhpczsK
LSAgICB3aGlsZSAoaXRlbSkgewotICAgICAgICBBU1NFUlQoIWl0ZW0tPnByZXZpb3VzKCkpOwot
ICAgICAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBuZXh0SXRlbSA9IGl0ZW0tPm1fbmV4dDsK
LSAgICAgICAgaXRlbS0+bV9uZXh0LmNsZWFyKCk7Ci0gICAgICAgIGlmIChuZXh0SXRlbSkKLSAg
ICAgICAgICAgIG5leHRJdGVtLT5tX3ByZXZpb3VzLmNsZWFyKCk7Ci0gICAgICAgIGl0ZW0gPSBu
ZXh0SXRlbTsKLSAgICB9Ci19Ci0KLVNoYWRvd0luY2x1c2lvbkxpc3Q6OlNoYWRvd0luY2x1c2lv
bkxpc3QoKQotewotfQotCi1TaGFkb3dJbmNsdXNpb25MaXN0Ojp+U2hhZG93SW5jbHVzaW9uTGlz
dCgpCi17Ci0gICAgQVNTRVJUKGlzRW1wdHkoKSk7Ci19Ci0KLVNoYWRvd0luY2x1c2lvbiogU2hh
ZG93SW5jbHVzaW9uTGlzdDo6ZmluZChOb2RlKiBjb250ZW50KSBjb25zdAotewotICAgIGZvciAo
U2hhZG93SW5jbHVzaW9uKiBpdGVtID0gZmlyc3QoKTsgaXRlbTsgaXRlbSA9IGl0ZW0tPm5leHQo
KSkgewotICAgICAgICBpZiAoY29udGVudCA9PSBpdGVtLT5jb250ZW50KCkpCi0gICAgICAgICAg
ICByZXR1cm4gaXRlbTsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgU2hh
ZG93SW5jbHVzaW9uTGlzdDo6Y2xlYXIoKQotewotICAgIGlmIChpc0VtcHR5KCkpIHsKLSAgICAg
ICAgQVNTRVJUKCFtX2xhc3QpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9maXJz
dC0+dW5saW5rKCk7Ci0gICAgbV9maXJzdC5jbGVhcigpOwotICAgIG1fbGFzdC5jbGVhcigpOwot
fQotCi12b2lkIFNoYWRvd0luY2x1c2lvbkxpc3Q6OmFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0lu
Y2x1c2lvbj4gY2hpbGQpCi17Ci0gICAgaWYgKGlzRW1wdHkoKSkgewotICAgICAgICBBU1NFUlQo
IW1fbGFzdCk7Ci0gICAgICAgIG1fZmlyc3QgPSBtX2xhc3QgPSBjaGlsZDsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIG1fbGFzdC0+YXBwZW5kKGNoaWxkKTsKLSAgICBtX2xhc3QgPSBt
X2xhc3QtPm5leHQoKTsKLX0KLQotU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6OlNoYWRvd0luY2x1
c2lvblNlbGVjdG9yKCkKLXsKLX0KLQotU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I6On5TaGFkb3dJ
bmNsdXNpb25TZWxlY3RvcigpCi17Ci0gICAgQVNTRVJUKG1fY2FuZGlkYXRlcy5pc0VtcHR5KCkp
OwotfQotCi12b2lkIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yOjpzZWxlY3QoU2hhZG93Q29udGVu
dEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50LCBTaGFkb3dJbmNsdXNpb25MaXN0KiBpbmNsdXNpb25z
KQotewotICAgIEFTU0VSVChpbmNsdXNpb25zLT5pc0VtcHR5KCkpOwotCi0gICAgU2hhZG93Q29u
dGVudFNlbGVjdG9yUXVlcnkgcXVlcnkoY29udGVudEVsZW1lbnQpOwotICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV9jYW5kaWRhdGVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIE5vZGUqIGNo
aWxkID0gbV9jYW5kaWRhdGVzW2ldLmdldCgpOwotICAgICAgICBpZiAoIWNoaWxkKQotICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIGlmICghcXVlcnkubWF0Y2hlcyhjaGlsZCkpCi0gICAg
ICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBpbmNs
dXNpb24gPSBTaGFkb3dJbmNsdXNpb246OmNyZWF0ZShjb250ZW50RWxlbWVudCwgY2hpbGQpOwot
ICAgICAgICBpbmNsdXNpb25zLT5hcHBlbmQoaW5jbHVzaW9uKTsKLSAgICAgICAgbV9pbmNsdXNp
b25TZXQuYWRkKGluY2x1c2lvbi5nZXQoKSk7Ci0gICAgICAgIG1fY2FuZGlkYXRlc1tpXSA9IDA7
Ci0gICAgfQotfQotCi12b2lkIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yOjp1bnNlbGVjdChTaGFk
b3dJbmNsdXNpb25MaXN0KiBsaXN0KQotewotICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNs
dXNpb24gPSBsaXN0LT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+
bmV4dCgpKQotICAgICAgICBtX2luY2x1c2lvblNldC5yZW1vdmUoaW5jbHVzaW9uKTsKLSAgICBs
aXN0LT5jbGVhcigpOwotfQotCi1TaGFkb3dJbmNsdXNpb24qIFNoYWRvd0luY2x1c2lvblNlbGVj
dG9yOjpmaW5kRm9yKE5vZGUqIGtleSkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pbmNsdXNpb25T
ZXQuZmluZChrZXkpOwotfQotCi12b2lkIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yOjpkaWRTZWxl
Y3QoKQotewotICAgIG1fY2FuZGlkYXRlcy5jbGVhcigpOwotfQotCi12b2lkIFNoYWRvd0luY2x1
c2lvblNlbGVjdG9yOjp3aWxsU2VsZWN0T3ZlcihTaGFkb3dSb290KiBzY29wZSkKLXsKLSAgICBp
ZiAoIW1fY2FuZGlkYXRlcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBmb3IgKE5v
ZGUqIG5vZGUgPSBzY29wZS0+c2hhZG93SG9zdCgpLT5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUg
PSBub2RlLT5uZXh0U2libGluZygpKQotICAgICAgICBtX2NhbmRpZGF0ZXMuYXBwZW5kKG5vZGUp
OwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9u
U2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMWE4NzE3NDQxYjE5YzJkNmFmYTBlOGYz
NDA3NTg0MTAyMThiNGU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oCisrKyAv
ZGV2L251bGwKQEAgLTEsMTUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNoYWRvd0luY2x1c2lvblNlbGVjdG9y
X2gKLSNkZWZpbmUgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3JfaAotCi0jaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIEVsZW1lbnQ7Ci1jbGFzcyBOb2RlOwotY2xhc3MgU2hhZG93Um9vdDsKLWNsYXNzIFNo
YWRvd0NvbnRlbnRFbGVtZW50OwotCi1jbGFzcyBTaGFkb3dJbmNsdXNpb24gOiBwdWJsaWMgUmVm
Q291bnRlZDxTaGFkb3dJbmNsdXNpb24+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFkb3dJbmNsdXNpb24+IGNyZWF0ZShTaGFkb3dDb250ZW50RWxlbWVudCosIE5vZGUqKTsK
LQotICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBpbmNsdWRlcigpIGNvbnN0IHsgcmV0dXJuIG1f
aW5jbHVkZXI7IH0KLSAgICBOb2RlKiBjb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50
LmdldCgpOyB9Ci0gICAgU2hhZG93SW5jbHVzaW9uKiBuZXh0KCkgY29uc3QgeyByZXR1cm4gbV9u
ZXh0LmdldCgpOyB9Ci0gICAgU2hhZG93SW5jbHVzaW9uKiBwcmV2aW91cygpIGNvbnN0IHsgcmV0
dXJuIG1fcHJldmlvdXMuZ2V0KCk7IH0KLQotICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8U2hh
ZG93SW5jbHVzaW9uPik7Ci0gICAgdm9pZCB1bmxpbmsoKTsKLQotcHJpdmF0ZToKLSAgICBTaGFk
b3dJbmNsdXNpb24oU2hhZG93Q29udGVudEVsZW1lbnQqLCBOb2RlKik7Ci0KLSAgICBTaGFkb3dD
b250ZW50RWxlbWVudCogbV9pbmNsdWRlcjsKLSAgICBSZWZQdHI8Tm9kZT4gbV9jb250ZW50Owot
ICAgIFJlZlB0cjxTaGFkb3dJbmNsdXNpb24+IG1fbmV4dDsKLSAgICBSZWZQdHI8U2hhZG93SW5j
bHVzaW9uPiBtX3ByZXZpb3VzOwotfTsKLQotaW5saW5lIFNoYWRvd0luY2x1c2lvbjo6U2hhZG93
SW5jbHVzaW9uKFNoYWRvd0NvbnRlbnRFbGVtZW50KiBpbmNsdWRlciwgTm9kZSogY29udGVudCkK
LSAgICA6IG1faW5jbHVkZXIoaW5jbHVkZXIpLCBtX2NvbnRlbnQoY29udGVudCkKLXsgfQotCi1p
bmxpbmUgUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IFNoYWRvd0luY2x1c2lvbjo6Y3JlYXRl
KFNoYWRvd0NvbnRlbnRFbGVtZW50KiBpbmNsdWRlciwgTm9kZSogY29udGVudCkKLXsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNoYWRvd0luY2x1c2lvbihpbmNsdWRlciwgY29udGVudCkpOwot
fQotCi1jbGFzcyBTaGFkb3dJbmNsdXNpb25MaXN0IHsKLXB1YmxpYzoKLSAgICBTaGFkb3dJbmNs
dXNpb25MaXN0KCk7Ci0gICAgflNoYWRvd0luY2x1c2lvbkxpc3QoKTsKLQotICAgIFNoYWRvd0lu
Y2x1c2lvbiogZmlyc3QoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0LmdldCgpOyB9Ci0gICAgU2hh
ZG93SW5jbHVzaW9uKiBsYXN0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0LmdldCgpOyB9Ci0gICAg
U2hhZG93SW5jbHVzaW9uKiBmaW5kKE5vZGUqKSBjb25zdDsKLSAgICBib29sIGlzRW1wdHkoKSBj
b25zdCB7IHJldHVybiAhbV9maXJzdDsgfQotCi0gICAgdm9pZCBjbGVhcigpOwotICAgIHZvaWQg
YXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPik7Ci0KLXByaXZhdGU6Ci0gICAgUmVm
UHRyPFNoYWRvd0luY2x1c2lvbj4gbV9maXJzdDsKLSAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9u
PiBtX2xhc3Q7Ci19OwotCi0KLWNsYXNzIFNoYWRvd0luY2x1c2lvblNldCB7Ci1wdWJsaWM6Ci0g
ICAgdm9pZCBhZGQoU2hhZG93SW5jbHVzaW9uKiB2YWx1ZSkgeyBtX3NldC5hZGQodmFsdWUpOyB9
Ci0gICAgdm9pZCByZW1vdmUoU2hhZG93SW5jbHVzaW9uKiB2YWx1ZSkgeyBtX3NldC5yZW1vdmUo
dmFsdWUpOyB9Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9zZXQuaXNFbXB0
eSgpOyB9Ci0gICAgU2hhZG93SW5jbHVzaW9uKiBmaW5kKE5vZGUqIGtleSkgY29uc3Q7Ci0KLXBy
aXZhdGU6Ci0gICAgc3RydWN0IFRyYW5zbGF0b3IgewotICAgIHB1YmxpYzoKLSAgICAgICAgc3Rh
dGljIHVuc2lnbmVkIGhhc2goY29uc3QgTm9kZSoga2V5KSB7IHJldHVybiBQdHJIYXNoPGNvbnN0
IE5vZGUqPjo6aGFzaChrZXkpOyB9Ci0gICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFNo
YWRvd0luY2x1c2lvbiogaW5jbHVzaW9uLCBjb25zdCBOb2RlKiBjb250ZW50KSB7IHJldHVybiBp
bmNsdXNpb24tPmNvbnRlbnQoKSA9PSBjb250ZW50OyB9Ci0gICAgfTsKLQotICAgIHN0cnVjdCBI
YXNoIHsKLSAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goU2hhZG93SW5jbHVzaW9uKiBrZXkp
IHsgcmV0dXJuIFB0ckhhc2g8Y29uc3QgTm9kZSo+OjpoYXNoKGtleS0+Y29udGVudCgpKTsgfQot
ICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChTaGFkb3dJbmNsdXNpb24qIGEsIFNoYWRvd0luY2x1
c2lvbiogYikgeyByZXR1cm4gYS0+Y29udGVudCgpID09IGItPmNvbnRlbnQoKTsgfQotICAgICAg
ICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNl
OwotICAgIH07Ci0KLSAgICB0eXBlZGVmIEhhc2hTZXQ8U2hhZG93SW5jbHVzaW9uKiwgSGFzaD4g
UG9pbnRlclNldDsKLQotICAgIFBvaW50ZXJTZXQgbV9zZXQ7Ci19OwotCi1pbmxpbmUgU2hhZG93
SW5jbHVzaW9uKiBTaGFkb3dJbmNsdXNpb25TZXQ6OmZpbmQoTm9kZSoga2V5KSBjb25zdAotewot
ICAgIFBvaW50ZXJTZXQ6Oml0ZXJhdG9yIGZvdW5kID0gbV9zZXQuZmluZDxOb2RlKiwgU2hhZG93
SW5jbHVzaW9uU2V0OjpUcmFuc2xhdG9yPihrZXkpOwotICAgIHJldHVybiBmb3VuZCAhPSBtX3Nl
dC5lbmQoKSA/ICpmb3VuZCA6IDA7Ci19Ci0KLWNsYXNzIFNoYWRvd0luY2x1c2lvblNlbGVjdG9y
IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTaGFkb3dJbmNsdXNpb25TZWxlY3Rvcik7Ci1w
dWJsaWM6Ci0gICAgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IoKTsKLSAgICB+U2hhZG93SW5jbHVz
aW9uU2VsZWN0b3IoKTsKLQotICAgIHZvaWQgc2VsZWN0KFNoYWRvd0NvbnRlbnRFbGVtZW50Kiwg
U2hhZG93SW5jbHVzaW9uTGlzdCopOwotICAgIHZvaWQgdW5zZWxlY3QoU2hhZG93SW5jbHVzaW9u
TGlzdCopOwotICAgIFNoYWRvd0luY2x1c2lvbiogZmluZEZvcihOb2RlKiBrZXkpIGNvbnN0Owot
Ci0gICAgdm9pZCB3aWxsU2VsZWN0T3ZlcihTaGFkb3dSb290Kik7Ci0gICAgdm9pZCBkaWRTZWxl
Y3QoKTsKLSAgICBib29sIGhhc0NhbmRpZGF0ZXMoKSBjb25zdCB7IHJldHVybiAhbV9jYW5kaWRh
dGVzLmlzRW1wdHkoKTsgfQotCi1wcml2YXRlOgotICAgIHZvaWQgcmVtb3ZlRnJvbVNldChTaGFk
b3dJbmNsdXNpb25MaXN0Kik7Ci0gICAgdm9pZCBhZGRUb1NldChTaGFkb3dJbmNsdXNpb25MaXN0
Kik7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbV9jYW5kaWRhdGVzOwotICAgIFNoYWRv
d0luY2x1c2lvblNldCBtX2luY2x1c2lvblNldDsKLX07Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAKaW5kZXggZTJjZTliMDQzZTk0NGIxYWM2MjJiNTVjMTAwOTExYzRi
YjgyZTA0OS4uMjI5ZDU1ODE1YTdmYWVlZTQ3OGFkMjlhNzA4YjI1ODk2YjI0ZWE2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMjYsMTIgKzI2LDEyIEBACiAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiRWxlbWVudC5oIgog
CisjaW5jbHVkZSAiQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCi0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIgogI2luY2x1ZGUg
IlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQg
U2hhZG93Um9vdDo6cmVjYWxjU2hhZG93VHJlZVN0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAg
ICBjbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogfQogCi1TaGFkb3dDb250ZW50RWxlbWVu
dCogU2hhZG93Um9vdDo6aW5jbHVkZXJGb3IoTm9kZSogbm9kZSkgY29uc3QKK0hUTUxDb250ZW50
RWxlbWVudCogU2hhZG93Um9vdDo6aW5jbHVkZXJGb3IoTm9kZSogbm9kZSkgY29uc3QKIHsKICAg
ICBpZiAoIW1faW5jbHVzaW9ucykKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNTUsMTUgKzE1NSwx
NSBAQCB2b2lkIFNoYWRvd1Jvb3Q6OmF0dGFjaCgpCiAgICAgICAgIG1faW5jbHVzaW9ucy0+ZGlk
U2VsZWN0KCk7CiB9CiAKLVNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBTaGFkb3dSb290OjppbmNs
dXNpb25zKCkgY29uc3QKK0NvbnRlbnRJbmNsdXNpb25TZWxlY3RvciogU2hhZG93Um9vdDo6aW5j
bHVzaW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5jbHVzaW9ucy5nZXQoKTsKIH0KIAot
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIFNoYWRvd1Jvb3Q6OmVuc3VyZUluY2x1c2lvbnMoKQor
Q29udGVudEluY2x1c2lvblNlbGVjdG9yKiBTaGFkb3dSb290OjplbnN1cmVJbmNsdXNpb25zKCkK
IHsKICAgICBpZiAoIW1faW5jbHVzaW9ucykKLSAgICAgICAgbV9pbmNsdXNpb25zID0gYWRvcHRQ
dHIobmV3IFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKCkpOworICAgICAgICBtX2luY2x1c2lvbnMg
PSBhZG9wdFB0cihuZXcgQ29udGVudEluY2x1c2lvblNlbGVjdG9yKCkpOwogICAgIG1faW5jbHVz
aW9ucy0+d2lsbFNlbGVjdE92ZXIodGhpcyk7CiAgICAgcmV0dXJuIG1faW5jbHVzaW9ucy5nZXQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IDM0ZGRmMzMwMTE1MjRkYTcyZGJkNmZh
MjI0ZGI5NGJmNGFkOTEyZDMuLmM1YmMwZGJjYjVkMGNkYjlhODM0NWJkOWExZjkyMTdlMjMwMmFj
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtMzIsOCArMzIsOCBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIFNoYWRvd0NvbnRlbnRFbGVtZW50
OwotY2xhc3MgU2hhZG93SW5jbHVzaW9uU2VsZWN0b3I7CitjbGFzcyBIVE1MQ29udGVudEVsZW1l
bnQ7CitjbGFzcyBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I7CiAKIGNsYXNzIFNoYWRvd1Jvb3Qg
OiBwdWJsaWMgVHJlZVNjb3BlIHsKIHB1YmxpYzoKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCByZWNhbGNTaGFkb3dUcmVlU3R5bGUoU3R5bGVDaGFuZ2UpOwogCi0gICAgU2hh
ZG93Q29udGVudEVsZW1lbnQqIGluY2x1ZGVyRm9yKE5vZGUqKSBjb25zdDsKKyAgICBIVE1MQ29u
dGVudEVsZW1lbnQqIGluY2x1ZGVyRm9yKE5vZGUqKSBjb25zdDsKICAgICB2b2lkIGhvc3RDaGls
ZHJlbkNoYW5nZWQoKTsKICAgICBib29sIGlzSW5jbHVzaW9uU2VsZWN0b3JBY3RpdmUoKSBjb25z
dDsKIApAQCAtNTAsOCArNTAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0
aG9yU2hlZXRzKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBcHBseUF1dGhvclNoZWV0cyhib29sKTsK
IAotICAgIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBpbmNsdXNpb25zKCkgY29uc3Q7Ci0gICAg
U2hhZG93SW5jbHVzaW9uU2VsZWN0b3IqIGVuc3VyZUluY2x1c2lvbnMoKTsKKyAgICBDb250ZW50
SW5jbHVzaW9uU2VsZWN0b3IqIGluY2x1c2lvbnMoKSBjb25zdDsKKyAgICBDb250ZW50SW5jbHVz
aW9uU2VsZWN0b3IqIGVuc3VyZUluY2x1c2lvbnMoKTsKIAogcHJpdmF0ZToKICAgICBTaGFkb3dS
b290KERvY3VtZW50Kik7CkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXND
b250ZW50RWxlbWVudCgpIGNvbnN0OwogCiAgICAgYm9vbCBtX2FwcGx5QXV0aG9yU2hlZXRzOwot
ICAgIE93blB0cjxTaGFkb3dJbmNsdXNpb25TZWxlY3Rvcj4gbV9pbmNsdXNpb25zOworICAgIE93
blB0cjxDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I+IG1faW5jbHVzaW9uczsKIH07CiAKIGlubGlu
ZSBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IFNoYWRvd1Jvb3Q6OmNyZWF0ZShEb2N1bWVudCogZG9j
dW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXgg
YWFhMDVlMTQ1NzRkNDA3OWZjZTA4ZTE1NjZjZTBiYmRkNjRmNzM2NS4uZGRlYzczODc2NjQ4MDAz
ZTJmOTFjNzcwZDFhODE1MjAyMzJiN2Y1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcApAQCAtMjMsMTIgKzIzLDEyIEBACiAKICNpZiBFTkFCTEUoREVUQUlM
UykKIAorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIkhUTUxTdW1tYXJ5RWxlbWVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRGV0
YWlscy5oIgotI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIApAQCAtNDIsMTMgKzQyLDEzIEBAIHN0YXRp
YyBjb25zdCBBdG9taWNTdHJpbmcmIHN1bW1hcnlRdWVyeVNlbGVjdG9yKCkKICAgICByZXR1cm4g
c2VsZWN0b3I7CiB9OwogCi1jbGFzcyBEZXRhaWxzQ29udGVudEVsZW1lbnQgOiBwdWJsaWMgU2hh
ZG93Q29udGVudEVsZW1lbnQgeworY2xhc3MgRGV0YWlsc0NvbnRlbnRFbGVtZW50IDogcHVibGlj
IEhUTUxDb250ZW50RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGV0
YWlsc0NvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogcHJpdmF0ZToKICAgICBE
ZXRhaWxzQ29udGVudEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQotICAgICAgICA6IFNoYWRv
d0NvbnRlbnRFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKKyAgICAgICAgOiBI
VE1MQ29udGVudEVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQogICAgIHsKICAg
ICB9CiB9OwpAQCAtNTgsMTMgKzU4LDEzIEBAIFBhc3NSZWZQdHI8RGV0YWlsc0NvbnRlbnRFbGVt
ZW50PiBEZXRhaWxzQ29udGVudEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lCiAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBEZXRhaWxzQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpKTsKIH0K
IAotY2xhc3MgRGV0YWlsc1N1bW1hcnlFbGVtZW50IDogcHVibGljIFNoYWRvd0NvbnRlbnRFbGVt
ZW50IHsKK2NsYXNzIERldGFpbHNTdW1tYXJ5RWxlbWVudCA6IHB1YmxpYyBIVE1MQ29udGVudEVs
ZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERldGFpbHNTdW1tYXJ5RWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAKIHByaXZhdGU6CiAgICAgRGV0YWlsc1N1bW1hcnlF
bGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICAgICAgOiBTaGFkb3dDb250ZW50RWxlbWVu
dChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCisgICAgICAgIDogSFRNTENvbnRlbnRFbGVt
ZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKICAgICB7CiAgICAgICAgIHNldFNlbGVj
dChzdW1tYXJ5UXVlcnlTZWxlY3RvcigpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50c0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCmluZGV4IGI2MjRlNjI3YmExN2MxOTI3NTU3NzQyNmU0
NmZiM2ZiNjExMzlkY2IuLjI3NGExODZmMTYxODlmYTQxZWVhMDM2NTYxNjM5MmUwMjExMGI5MDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRzQWxsSW5PbmUuY3BwCkBAIC00
MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmNwcCIKICNpbmNsdWRlICJI
VE1MQnV0dG9uRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuY3BwIgor
I2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0
RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSFRNTERldGFpbHNFbGVtZW50LmNwcCIKICNpbmNsdWRl
ICJIVE1MRExpc3RFbGVtZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlF
bGVtZW50LmNwcAppbmRleCBlY2YxMDg1Y2UzMGZlMGYzYjkzZTFjZGUyNWViNTQ0ZmE3ZGI0ZjRi
Li45OTI1NjI3ZmU1Y2UzYWE0YTk5YjIzMzAxNTI4MGMwYzc0MzY4NTE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCkBAIC0yNCwxMiArMjQsMTIgQEAKICNp
ZiBFTkFCTEUoREVUQUlMUykKIAogI2luY2x1ZGUgIkRldGFpbHNNYXJrZXJDb250cm9sLmgiCisj
aW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERldGFpbHNFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlclN1bW1hcnku
aCIKLSNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVudC5oIgogCiAjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgogCkBAIC0zNywxMyArMzcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1jbGFzcyBTdW1tYXJ5Q29udGVudEVsZW1lbnQgOiBw
dWJsaWMgU2hhZG93Q29udGVudEVsZW1lbnQgeworY2xhc3MgU3VtbWFyeUNvbnRlbnRFbGVtZW50
IDogcHVibGljIEhUTUxDb250ZW50RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U3VtbWFyeUNvbnRlbnRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogcHJpdmF0
ZToKICAgICBTdW1tYXJ5Q29udGVudEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQotICAgICAg
ICA6IFNoYWRvd0NvbnRlbnRFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKKyAg
ICAgICAgOiBIVE1MQ29udGVudEVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQog
ICAgIHsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
Q29udGVudEluY2x1c2lvblNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI1NDFhNWFlODk4NzU5
OGViOWE5MTMyNzRhNWM0YzZhY2Y4MGRjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0NvbnRlbnRJbmNsdXNpb25TZWxlY3Rvci5jcHAKQEAgLTAsMCArMSwx
NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29udGVudEluY2x1c2lvblNl
bGVjdG9yLmgiCisKKyNpbmNsdWRlICJDb250ZW50U2VsZWN0b3JRdWVyeS5oIgorI2luY2x1ZGUg
IkhUTUxDb250ZW50RWxlbWVudC5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgU2hhZG93SW5jbHVzaW9uOjphcHBlbmQoUGFzc1JlZlB0
cjxTaGFkb3dJbmNsdXNpb24+IG5leHQpCit7CisgICAgQVNTRVJUKCFtX25leHQpOworICAgIEFT
U0VSVCghbmV4dC0+cHJldmlvdXMoKSk7CisgICAgbV9uZXh0ID0gbmV4dDsKKyAgICBtX25leHQt
Pm1fcHJldmlvdXMgPSB0aGlzOworfQorCit2b2lkIFNoYWRvd0luY2x1c2lvbjo6dW5saW5rKCkK
K3sKKyAgICBBU1NFUlQoIW1fcHJldmlvdXMpOyAvLyBDYW4gYmUgY2FsbGVkIG9ubHkgZm9yIGEg
aGVhZC4KKyAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBpdGVtID0gdGhpczsKKyAgICB3aGls
ZSAoaXRlbSkgeworICAgICAgICBBU1NFUlQoIWl0ZW0tPnByZXZpb3VzKCkpOworICAgICAgICBS
ZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBuZXh0SXRlbSA9IGl0ZW0tPm1fbmV4dDsKKyAgICAgICAg
aXRlbS0+bV9uZXh0LmNsZWFyKCk7CisgICAgICAgIGlmIChuZXh0SXRlbSkKKyAgICAgICAgICAg
IG5leHRJdGVtLT5tX3ByZXZpb3VzLmNsZWFyKCk7CisgICAgICAgIGl0ZW0gPSBuZXh0SXRlbTsK
KyAgICB9Cit9CisKK1NoYWRvd0luY2x1c2lvbkxpc3Q6OlNoYWRvd0luY2x1c2lvbkxpc3QoKQor
eworfQorCitTaGFkb3dJbmNsdXNpb25MaXN0Ojp+U2hhZG93SW5jbHVzaW9uTGlzdCgpCit7Cisg
ICAgQVNTRVJUKGlzRW1wdHkoKSk7Cit9CisKK1NoYWRvd0luY2x1c2lvbiogU2hhZG93SW5jbHVz
aW9uTGlzdDo6ZmluZChOb2RlKiBjb250ZW50KSBjb25zdAoreworICAgIGZvciAoU2hhZG93SW5j
bHVzaW9uKiBpdGVtID0gZmlyc3QoKTsgaXRlbTsgaXRlbSA9IGl0ZW0tPm5leHQoKSkgeworICAg
ICAgICBpZiAoY29udGVudCA9PSBpdGVtLT5jb250ZW50KCkpCisgICAgICAgICAgICByZXR1cm4g
aXRlbTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgU2hhZG93SW5jbHVz
aW9uTGlzdDo6Y2xlYXIoKQoreworICAgIGlmIChpc0VtcHR5KCkpIHsKKyAgICAgICAgQVNTRVJU
KCFtX2xhc3QpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9maXJzdC0+dW5saW5r
KCk7CisgICAgbV9maXJzdC5jbGVhcigpOworICAgIG1fbGFzdC5jbGVhcigpOworfQorCit2b2lk
IFNoYWRvd0luY2x1c2lvbkxpc3Q6OmFwcGVuZChQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4g
Y2hpbGQpCit7CisgICAgaWYgKGlzRW1wdHkoKSkgeworICAgICAgICBBU1NFUlQoIW1fbGFzdCk7
CisgICAgICAgIG1fZmlyc3QgPSBtX2xhc3QgPSBjaGlsZDsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIG1fbGFzdC0+YXBwZW5kKGNoaWxkKTsKKyAgICBtX2xhc3QgPSBtX2xhc3QtPm5l
eHQoKTsKK30KKworQ29udGVudEluY2x1c2lvblNlbGVjdG9yOjpDb250ZW50SW5jbHVzaW9uU2Vs
ZWN0b3IoKQoreworfQorCitDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6On5Db250ZW50SW5jbHVz
aW9uU2VsZWN0b3IoKQoreworICAgIEFTU0VSVChtX2NhbmRpZGF0ZXMuaXNFbXB0eSgpKTsKK30K
Kwordm9pZCBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OnNlbGVjdChIVE1MQ29udGVudEVsZW1l
bnQqIGNvbnRlbnRFbGVtZW50LCBTaGFkb3dJbmNsdXNpb25MaXN0KiBpbmNsdXNpb25zKQorewor
ICAgIEFTU0VSVChpbmNsdXNpb25zLT5pc0VtcHR5KCkpOworCisgICAgQ29udGVudFNlbGVjdG9y
UXVlcnkgcXVlcnkoY29udGVudEVsZW1lbnQpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bV9jYW5kaWRhdGVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIE5vZGUqIGNoaWxkID0gbV9jYW5k
aWRhdGVzW2ldLmdldCgpOworICAgICAgICBpZiAoIWNoaWxkKQorICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIGlmICghcXVlcnkubWF0Y2hlcyhjaGlsZCkpCisgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBpbmNsdXNpb24gPSBTaGFk
b3dJbmNsdXNpb246OmNyZWF0ZShjb250ZW50RWxlbWVudCwgY2hpbGQpOworICAgICAgICBpbmNs
dXNpb25zLT5hcHBlbmQoaW5jbHVzaW9uKTsKKyAgICAgICAgbV9pbmNsdXNpb25TZXQuYWRkKGlu
Y2x1c2lvbi5nZXQoKSk7CisgICAgICAgIG1fY2FuZGlkYXRlc1tpXSA9IDA7CisgICAgfQorfQor
Cit2b2lkIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcjo6dW5zZWxlY3QoU2hhZG93SW5jbHVzaW9u
TGlzdCogbGlzdCkKK3sKKyAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbGlz
dC0+Zmlyc3QoKTsgaW5jbHVzaW9uOyBpbmNsdXNpb24gPSBpbmNsdXNpb24tPm5leHQoKSkKKyAg
ICAgICAgbV9pbmNsdXNpb25TZXQucmVtb3ZlKGluY2x1c2lvbik7CisgICAgbGlzdC0+Y2xlYXIo
KTsKK30KKworU2hhZG93SW5jbHVzaW9uKiBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I6OmZpbmRG
b3IoTm9kZSoga2V5KSBjb25zdAoreworICAgIHJldHVybiBtX2luY2x1c2lvblNldC5maW5kKGtl
eSk7Cit9CisKK3ZvaWQgQ29udGVudEluY2x1c2lvblNlbGVjdG9yOjpkaWRTZWxlY3QoKQorewor
ICAgIG1fY2FuZGlkYXRlcy5jbGVhcigpOworfQorCit2b2lkIENvbnRlbnRJbmNsdXNpb25TZWxl
Y3Rvcjo6d2lsbFNlbGVjdE92ZXIoU2hhZG93Um9vdCogc2NvcGUpCit7CisgICAgaWYgKCFtX2Nh
bmRpZGF0ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgZm9yIChOb2RlKiBub2Rl
ID0gc2NvcGUtPnNoYWRvd0hvc3QoKS0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+
bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgbV9jYW5kaWRhdGVzLmFwcGVuZChub2RlKTsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudEluY2x1c2lv
blNlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50SW5jbHVzaW9u
U2VsZWN0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjBiMTk3OGViYzc5MWJjNDYzYzIzMDRhOTk3ZjU1MTU0
MWI2MjY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29u
dGVudEluY2x1c2lvblNlbGVjdG9yLmgKQEAgLTAsMCArMSwxNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRlbnRJ
bmNsdXNpb25TZWxlY3Rvcl9oCisjZGVmaW5lIENvbnRlbnRJbmNsdXNpb25TZWxlY3Rvcl9oCisK
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxlbWVudDsKK2NsYXNzIEhUTUxDb250ZW50RWxlbWVu
dDsKK2NsYXNzIE5vZGU7CitjbGFzcyBTaGFkb3dSb290OworCitjbGFzcyBTaGFkb3dJbmNsdXNp
b24gOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFkb3dJbmNsdXNpb24+IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+IGNyZWF0ZShIVE1MQ29udGVudEVsZW1l
bnQqLCBOb2RlKik7CisKKyAgICBIVE1MQ29udGVudEVsZW1lbnQqIGluY2x1ZGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9pbmNsdWRlcjsgfQorICAgIE5vZGUqIGNvbnRlbnQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRlbnQuZ2V0KCk7IH0KKyAgICBTaGFkb3dJbmNsdXNpb24qIG5leHQoKSBjb25zdCB7
IHJldHVybiBtX25leHQuZ2V0KCk7IH0KKyAgICBTaGFkb3dJbmNsdXNpb24qIHByZXZpb3VzKCkg
Y29uc3QgeyByZXR1cm4gbV9wcmV2aW91cy5nZXQoKTsgfQorCisgICAgdm9pZCBhcHBlbmQoUGFz
c1JlZlB0cjxTaGFkb3dJbmNsdXNpb24+KTsKKyAgICB2b2lkIHVubGluaygpOworCitwcml2YXRl
OgorICAgIFNoYWRvd0luY2x1c2lvbihIVE1MQ29udGVudEVsZW1lbnQqLCBOb2RlKik7CisKKyAg
ICBIVE1MQ29udGVudEVsZW1lbnQqIG1faW5jbHVkZXI7CisgICAgUmVmUHRyPE5vZGU+IG1fY29u
dGVudDsKKyAgICBSZWZQdHI8U2hhZG93SW5jbHVzaW9uPiBtX25leHQ7CisgICAgUmVmUHRyPFNo
YWRvd0luY2x1c2lvbj4gbV9wcmV2aW91czsKK307CisKK2lubGluZSBTaGFkb3dJbmNsdXNpb246
OlNoYWRvd0luY2x1c2lvbihIVE1MQ29udGVudEVsZW1lbnQqIGluY2x1ZGVyLCBOb2RlKiBjb250
ZW50KQorICAgIDogbV9pbmNsdWRlcihpbmNsdWRlciksIG1fY29udGVudChjb250ZW50KQoreyB9
CisKK2lubGluZSBQYXNzUmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gU2hhZG93SW5jbHVzaW9uOjpj
cmVhdGUoSFRNTENvbnRlbnRFbGVtZW50KiBpbmNsdWRlciwgTm9kZSogY29udGVudCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYWRvd0luY2x1c2lvbihpbmNsdWRlciwgY29udGVudCkp
OworfQorCitjbGFzcyBTaGFkb3dJbmNsdXNpb25MaXN0IHsKK3B1YmxpYzoKKyAgICBTaGFkb3dJ
bmNsdXNpb25MaXN0KCk7CisgICAgflNoYWRvd0luY2x1c2lvbkxpc3QoKTsKKworICAgIFNoYWRv
d0luY2x1c2lvbiogZmlyc3QoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0LmdldCgpOyB9CisgICAg
U2hhZG93SW5jbHVzaW9uKiBsYXN0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0LmdldCgpOyB9Cisg
ICAgU2hhZG93SW5jbHVzaW9uKiBmaW5kKE5vZGUqKSBjb25zdDsKKyAgICBib29sIGlzRW1wdHko
KSBjb25zdCB7IHJldHVybiAhbV9maXJzdDsgfQorCisgICAgdm9pZCBjbGVhcigpOworICAgIHZv
aWQgYXBwZW5kKFBhc3NSZWZQdHI8U2hhZG93SW5jbHVzaW9uPik7CisKK3ByaXZhdGU6CisgICAg
UmVmUHRyPFNoYWRvd0luY2x1c2lvbj4gbV9maXJzdDsKKyAgICBSZWZQdHI8U2hhZG93SW5jbHVz
aW9uPiBtX2xhc3Q7Cit9OworCisKK2NsYXNzIFNoYWRvd0luY2x1c2lvblNldCB7CitwdWJsaWM6
CisgICAgdm9pZCBhZGQoU2hhZG93SW5jbHVzaW9uKiB2YWx1ZSkgeyBtX3NldC5hZGQodmFsdWUp
OyB9CisgICAgdm9pZCByZW1vdmUoU2hhZG93SW5jbHVzaW9uKiB2YWx1ZSkgeyBtX3NldC5yZW1v
dmUodmFsdWUpOyB9CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9zZXQuaXNF
bXB0eSgpOyB9CisgICAgU2hhZG93SW5jbHVzaW9uKiBmaW5kKE5vZGUqIGtleSkgY29uc3Q7CisK
K3ByaXZhdGU6CisgICAgc3RydWN0IFRyYW5zbGF0b3IgeworICAgIHB1YmxpYzoKKyAgICAgICAg
c3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgTm9kZSoga2V5KSB7IHJldHVybiBQdHJIYXNoPGNv
bnN0IE5vZGUqPjo6aGFzaChrZXkpOyB9CisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0
IFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uLCBjb25zdCBOb2RlKiBjb250ZW50KSB7IHJldHVy
biBpbmNsdXNpb24tPmNvbnRlbnQoKSA9PSBjb250ZW50OyB9CisgICAgfTsKKworICAgIHN0cnVj
dCBIYXNoIHsKKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goU2hhZG93SW5jbHVzaW9uKiBr
ZXkpIHsgcmV0dXJuIFB0ckhhc2g8Y29uc3QgTm9kZSo+OjpoYXNoKGtleS0+Y29udGVudCgpKTsg
fQorICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChTaGFkb3dJbmNsdXNpb24qIGEsIFNoYWRvd0lu
Y2x1c2lvbiogYikgeyByZXR1cm4gYS0+Y29udGVudCgpID09IGItPmNvbnRlbnQoKTsgfQorICAg
ICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZh
bHNlOworICAgIH07CisKKyAgICB0eXBlZGVmIEhhc2hTZXQ8U2hhZG93SW5jbHVzaW9uKiwgSGFz
aD4gUG9pbnRlclNldDsKKworICAgIFBvaW50ZXJTZXQgbV9zZXQ7Cit9OworCitpbmxpbmUgU2hh
ZG93SW5jbHVzaW9uKiBTaGFkb3dJbmNsdXNpb25TZXQ6OmZpbmQoTm9kZSoga2V5KSBjb25zdAor
eworICAgIFBvaW50ZXJTZXQ6Oml0ZXJhdG9yIGZvdW5kID0gbV9zZXQuZmluZDxOb2RlKiwgU2hh
ZG93SW5jbHVzaW9uU2V0OjpUcmFuc2xhdG9yPihrZXkpOworICAgIHJldHVybiBmb3VuZCAhPSBt
X3NldC5lbmQoKSA/ICpmb3VuZCA6IDA7Cit9CisKK2NsYXNzIENvbnRlbnRJbmNsdXNpb25TZWxl
Y3RvciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29udGVudEluY2x1c2lvblNlbGVjdG9y
KTsKK3B1YmxpYzoKKyAgICBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IoKTsKKyAgICB+Q29udGVu
dEluY2x1c2lvblNlbGVjdG9yKCk7CisKKyAgICB2b2lkIHNlbGVjdChIVE1MQ29udGVudEVsZW1l
bnQqLCBTaGFkb3dJbmNsdXNpb25MaXN0Kik7CisgICAgdm9pZCB1bnNlbGVjdChTaGFkb3dJbmNs
dXNpb25MaXN0Kik7CisgICAgU2hhZG93SW5jbHVzaW9uKiBmaW5kRm9yKE5vZGUqIGtleSkgY29u
c3Q7CisKKyAgICB2b2lkIHdpbGxTZWxlY3RPdmVyKFNoYWRvd1Jvb3QqKTsKKyAgICB2b2lkIGRp
ZFNlbGVjdCgpOworICAgIGJvb2wgaGFzQ2FuZGlkYXRlcygpIGNvbnN0IHsgcmV0dXJuICFtX2Nh
bmRpZGF0ZXMuaXNFbXB0eSgpOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCByZW1vdmVGcm9tU2V0
KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKKyAgICB2b2lkIGFkZFRvU2V0KFNoYWRvd0luY2x1c2lv
bkxpc3QqKTsKKworICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiBtX2NhbmRpZGF0ZXM7CisgICAg
U2hhZG93SW5jbHVzaW9uU2V0IG1faW5jbHVzaW9uU2V0OworfTsKKworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYmY4ZTUxNzEwN2Q5OGY1NWZkMDNhMjM5M2U1OTA4YmJhN2U0ZjlhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVj
dG9yUXVlcnkuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQ29udGVudFNlbGVjdG9yUXVlcnkuaCIKKworI2luY2x1ZGUgIkNTU1BhcnNlci5oIgor
I2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVu
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NvbnRlbnRTZWxlY3RvclF1ZXJ5OjpDb250
ZW50U2VsZWN0b3JRdWVyeShIVE1MQ29udGVudEVsZW1lbnQqIGVsZW1lbnQpCisgICAgOiBtX2Nv
bnRlbnRFbGVtZW50KGVsZW1lbnQpCisgICAgLCBtX3NlbGVjdG9yQ2hlY2tlcihlbGVtZW50LT5k
b2N1bWVudCgpLCAhZWxlbWVudC0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCit7CisgICAg
bV9zZWxlY3RvckNoZWNrZXIuc2V0Q29sbGVjdGluZ1J1bGVzT25seSh0cnVlKTsKKworICAgIGlm
IChlbGVtZW50LT5zZWxlY3QoKS5pc051bGwoKSB8fCBlbGVtZW50LT5zZWxlY3QoKS5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIENTU1BhcnNlciBwYXJzZXIodHJ1ZSk7CisgICAg
cGFyc2VyLnBhcnNlU2VsZWN0b3IoZWxlbWVudC0+c2VsZWN0KCksIGVsZW1lbnQtPmRvY3VtZW50
KCksIG1fc2VsZWN0b3JMaXN0KTsKKworICAgIG1fc2VsZWN0b3JzLmluaXRpYWxpemUobV9zZWxl
Y3Rvckxpc3QpOworfQorCitib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5OjptYXRjaGVzKE5vZGUq
IG5vZGUpIGNvbnN0Cit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlmICghbm9kZSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUKG5vZGUtPnBhcmVudE5vZGUoKSA9PSBtX2Nv
bnRlbnRFbGVtZW50LT5zaGFkb3dUcmVlUm9vdE5vZGUoKS0+c2hhZG93SG9zdCgpKTsKKworICAg
IGlmIChtX2NvbnRlbnRFbGVtZW50LT5zZWxlY3QoKS5pc051bGwoKSB8fCBtX2NvbnRlbnRFbGVt
ZW50LT5zZWxlY3QoKS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYg
KCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
dHVybiBtX3NlbGVjdG9ycy5tYXRjaGVzKG1fc2VsZWN0b3JDaGVja2VyLCB0b0VsZW1lbnQobm9k
ZSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250
ZW50U2VsZWN0b3JRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNl
bGVjdG9yUXVlcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGFmYjk5M2JhY2Y5YzcwZGEzODBmMzM2N2VmYTY4
ZDFiODk1ZjEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
Q29udGVudFNlbGVjdG9yUXVlcnkuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb250ZW50U2Vs
ZWN0b3JRdWVyeV9oCisjZGVmaW5lIENvbnRlbnRTZWxlY3RvclF1ZXJ5X2gKKworI2luY2x1ZGUg
IkNTU1NlbGVjdG9yTGlzdC5oIgorI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlci5oIgorI2luY2x1
ZGUgIlNlbGVjdG9yUXVlcnkuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsK
K2NsYXNzIE5vZGU7CitjbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7CisKK2NsYXNzIENvbnRlbnRT
ZWxlY3RvclF1ZXJ5IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb250ZW50U2VsZWN0b3JR
dWVyeSk7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQ29udGVudFNlbGVjdG9yUXVlcnkoSFRNTENv
bnRlbnRFbGVtZW50Kik7CisKKyAgICBib29sIG1hdGNoZXMoTm9kZSopIGNvbnN0OworCitwcml2
YXRlOgorICAgIEhUTUxDb250ZW50RWxlbWVudCogbV9jb250ZW50RWxlbWVudDsKKyAgICBTZWxl
Y3RvckRhdGFMaXN0IG1fc2VsZWN0b3JzOworICAgIENTU1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9y
TGlzdDsKKyAgICBTZWxlY3RvckNoZWNrZXIgbV9zZWxlY3RvckNoZWNrZXI7Cit9OworCit9CisK
KworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxD
b250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjMTRmZWNlOWFiYzM5MzJjMmY1YzE1MDZkMmVkYTAx
OTlmMmY5NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9I
VE1MQ29udGVudEVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCisKKyNpbmNsdWRlICJDb250ZW50
SW5jbHVzaW9uU2VsZWN0b3IuaCIKKyNpbmNsdWRlICJDb250ZW50U2VsZWN0b3JRdWVyeS5oIgor
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKKyNpbmNs
dWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIEhUTUxOYW1lczo6c2VsZWN0QXR0cjsKKworUGFzc1Jl
ZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50KiBkb2N1bWVudCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUs
IHRhZ05hbWUsIChudWxsQXRvbSwgIndlYmtpdFNoYWRvd0NvbnRlbnQiLCBIVE1MTmFtZXM6OmRp
dlRhZy5uYW1lc3BhY2VVUkkoKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTENvbnRl
bnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7Cit9CisKK0hUTUxDb250ZW50RWxlbWVudDo6
SFRNTENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KG5hbWUsIGRvY3VtZW50KQorICAgICwgbV9pbmNs
dXNpb25zKGFkb3B0UHRyKG5ldyBTaGFkb3dJbmNsdXNpb25MaXN0KCkpKQoreworfQorCitIVE1M
Q29udGVudEVsZW1lbnQ6On5IVE1MQ29udGVudEVsZW1lbnQoKQoreworfQorCit2b2lkIEhUTUxD
b250ZW50RWxlbWVudDo6YXR0YWNoKCkKK3sKKyAgICBBU1NFUlQoIWZpcnN0Q2hpbGQoKSk7IC8v
IEN1cnJlbnRseSBkb2Vzbid0IHN1cHBvcnQgYW55IGxpZ2h0IGNoaWxkLgorICAgIEhUTUxFbGVt
ZW50OjphdHRhY2goKTsKKworICAgIGlmIChTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290
KHNoYWRvd1RyZWVSb290Tm9kZSgpKSkgeworICAgICAgICBDb250ZW50SW5jbHVzaW9uU2VsZWN0
b3IqIHNlbGVjdG9yID0gcm9vdC0+ZW5zdXJlSW5jbHVzaW9ucygpOworICAgICAgICBzZWxlY3Rv
ci0+dW5zZWxlY3QobV9pbmNsdXNpb25zLmdldCgpKTsKKyAgICAgICAgc2VsZWN0b3ItPnNlbGVj
dCh0aGlzLCBtX2luY2x1c2lvbnMuZ2V0KCkpOworICAgICAgICBmb3IgKFNoYWRvd0luY2x1c2lv
biogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lv
biA9IGluY2x1c2lvbi0+bmV4dCgpKQorICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50KCkt
PmRldGFjaCgpOworICAgICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbV9p
bmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4
dCgpKQorICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50KCktPmF0dGFjaCgpOworICAgIH0K
K30KKwordm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OmRldGFjaCgpCit7CisgICAgaWYgKFNoYWRv
d1Jvb3QqIHJvb3QgPSB0b1NoYWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpKSB7CisgICAg
ICAgIGlmIChDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+aW5jbHVz
aW9ucygpKQorICAgICAgICAgICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1faW5jbHVzaW9ucy5nZXQo
KSk7CisgICAgfQorCisgICAgQVNTRVJUKG1faW5jbHVzaW9ucy0+aXNFbXB0eSgpKTsKKyAgICBI
VE1MRWxlbWVudDo6ZGV0YWNoKCk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgSFRNTENvbnRl
bnRFbGVtZW50OjpzZWxlY3QoKSBjb25zdAoreworICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoc2Vs
ZWN0QXR0cik7Cit9CisKK3ZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpzZXRTZWxlY3QoY29uc3Qg
QXRvbWljU3RyaW5nJiBzZWxlY3RWYWx1ZSkKK3sKKyAgICBzZXRBdHRyaWJ1dGUoc2VsZWN0QXR0
ciwgc2VsZWN0VmFsdWUpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0hUTUxDb250ZW50RWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzNzc3MmJkNThhYmU3MmYzOWQ4Njc0
ZWFhNDhiNWZmMTA3MDY4YTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1M
Q29udGVudEVsZW1lbnRfaAorI2RlZmluZSBIVE1MQ29udGVudEVsZW1lbnRfaAorCisjaW5jbHVk
ZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIENvbnRlbnRTZWxlY3RvclF1ZXJ5OworY2xhc3MgU2hhZG93SW5j
bHVzaW9uTGlzdDsKKworLy8gTk9URTogQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHN1
cHBvcnQgZHluYW1pYyBpbnNlcnRpb24vZGVsZXRpb24gb2YgSFRNTENvbnRlbnRFbGVtZW50Lgor
Ly8gWW91IHNob3VsZCBjcmVhdGUgSFRNTENvbnRlbnRFbGVtZW50IGR1cmluZyB0aGUgaG9zdCBj
b25zdHJ1Y3Rpb24uCitjbGFzcyBIVE1MQ29udGVudEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1l
bnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxDb250ZW50RWxlbWVudD4g
Y3JlYXRlKERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIH5IVE1MQ29udGVudEVsZW1lbnQoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CisgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwor
CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3QoKSBjb25zdDsKKworICAgIC8vIEZJWE1F
OiBDdXJyZW50bHkgdGhpcyBjb25zdHJ1Y3RvciBhY2NlcHRzIHdpZGVyIHF1ZXJ5IHRoYW4gc2hh
ZG93IGRvbSBzcGVjLgorICAgIC8vIEZvciBleGFtcGxlLCBhIHNlbGVjdG9yIHF1ZXJ5IHNob3Vs
ZCBub3QgaW5jbHVkZSBjb250ZXh0dWFsIHNlbGVjdG9ycy4KKyAgICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTQ2CisgICAgLy8gRklYTUU6IEN1cnJl
bnRseSB3ZSBkb24ndCBzdXBwb3J0IHNldHRpbmcgc2VsZWN0IHZhbHVlIGR5bmFtaWNhbGx5Lgor
ICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNjEK
KyAgICB2b2lkIHNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmKTsKKworICAgIGNvbnN0IFNo
YWRvd0luY2x1c2lvbkxpc3QqIGluY2x1c2lvbnMoKSBjb25zdCB7IHJldHVybiBtX2luY2x1c2lv
bnMuZ2V0KCk7IH0KKworcHJvdGVjdGVkOgorICAgIEhUTUxDb250ZW50RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGJvb2wg
aXNDb250ZW50RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hKiwgUmVuZGVyU3R5bGUqKSB7IHJldHVybiAwOyB9CisKKyAgICBPd25QdHI8U2hhZG93
SW5jbHVzaW9uTGlzdD4gbV9pbmNsdXNpb25zOworfTsKKworaW5saW5lIEhUTUxDb250ZW50RWxl
bWVudCogdG9IVE1MQ29udGVudEVsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoIW5v
ZGUgfHwgbm9kZS0+aXNDb250ZW50RWxlbWVudCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
SFRNTENvbnRlbnRFbGVtZW50Kj4obm9kZSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMGM1YWQ0MTUyNjM5ZTgzZDBiY2E2ZjVlMjVmOTk2
NDg1MTA4MzRkMi4uZWI3NzcyODM5N2E2Zjc0Mjc2NGEwZGNhNGY0NWVhMTMxN2Q0ODFkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgorI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJ
bnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MVGV4
dEFyZWFFbGVtZW50LmgiCkBAIC00Niw3ICs0Nyw2IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
Ci0jaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJTaGFkb3dSb290
LmgiCiAjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgi
CkBAIC0xMjcsMTQgKzEyNywxNCBAQCBib29sIEludGVybmFsczo6aXNQcmVsb2FkZWQoRG9jdW1l
bnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHVybCkKICAgICByZXR1cm4gZG9jdW1lbnQtPmNh
Y2hlZFJlc291cmNlTG9hZGVyKCktPmlzUHJlbG9hZGVkKHVybCk7CiB9CiAKLVBhc3NSZWZQdHI8
RWxlbWVudD4gSW50ZXJuYWxzOjpjcmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChEb2N1bWVudCog
ZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxFbGVtZW50PiBJbnRlcm5h
bHM6OmNyZWF0ZUNvbnRlbnRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgaWYgKCFkb2N1bWVudCkgewogICAgICAgICBlYyA9IElOVkFMSURfQUND
RVNTX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIFNoYWRvd0Nv
bnRlbnRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIHJldHVybiBIVE1MQ29udGVudEVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiB9CiAKIEVsZW1lbnQqIEludGVybmFsczo6Z2V0RWxl
bWVudEJ5SWRJblNoYWRvd1Jvb3QoTm9kZSogc2hhZG93Um9vdCwgY29uc3QgU3RyaW5nJiBpZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBjZjk3
YTE0MGI0OTYwOWMwNDE1NmRkOGU4YmExYzAyM2FkZGJkYTMyLi41Yjc0Y2U2OTU0NTc4NTk3ZWQ4
MTBlZmQxNGRhM2Y2NzRkODFmNjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU2hhZG93Um9vdChFbGVtZW50
KiBob3N0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgRWxlbWVudCogaW5jbHVkZXJGb3IoTm9kZSos
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTdHJpbmcgc2hhZG93UHNldWRvSWQoRWxlbWVudCosIEV4
Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVNoYWRvd0NvbnRl
bnRFbGVtZW50KERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8RWxl
bWVudD4gY3JlYXRlQ29udGVudEVsZW1lbnQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgRWxlbWVudCogZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoTm9kZSogc2hhZG93Um9vdCwg
Y29uc3QgU3RyaW5nJiBpZCwgRXhjZXB0aW9uQ29kZSYpOwogCiAjaWYgRU5BQkxFKElOUFVUX0NP
TE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGY1NmQxYWY3NGE4ZTM1
ZGQ0N2JkNGU2YzQ5ZjEyNWU3ZWFhYzNhNTUuLjhmMTZiMzJjODU2YWMyZjFmNmY4NTg2Yzk0MWJi
NTNkN2I3NjI0ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTM1LDcg
KzM1LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIEVsZW1lbnQgaW5jbHVkZXJGb3IoaW4g
Tm9kZSBub2RlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgcmVtb3ZlU2hh
ZG93Um9vdChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
RE9NU3RyaW5nIHNoYWRvd1BzZXVkb0lkKGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2VzIChET01F
eGNlcHRpb24pOwotICAgICAgICBFbGVtZW50IGNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGlu
IERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgRWxlbWVu
dCBjcmVhdGVDb250ZW50RWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoaW4g
Tm9kZSBzaGFkb3dSb290LCBpbiBET01TdHJpbmcgaWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
CiAjaWYgZGVmaW5lZChFTkFCTEVfSU5QVVRfQ09MT1IpICYmIEVOQUJMRV9JTlBVVF9DT0xPUgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDFhYTg0ODE2N2JlZGM4NTY0OGVjNGY0YTdlN2ZiYTFi
NDIyODJjZmIuLjVjZmE3NDRkOTY1NDE3ZWQ4NjljMTJlNmNjNjMxYjUzY2VhMjNhNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE0OSw4ICsxNDksOCBAQCBFWFBPUlRTCiAgICAgICAgID9h
ZGRAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBA
MkBQQkVAWgogICAgICAgICA/YWRkU2xvd0Nhc2VAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBh
c3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAMkBQQVZTdHJpbmdJbXBsQDJAQFoKICAgICAgICAg
P2NhY2hlRE9NU3RydWN0dXJlQFdlYkNvcmVAQFlBUEFWU3RydWN0dXJlQEpTQ0BAUEFWSlNET01H
bG9iYWxPYmplY3RAMUBQQVYyM0BQQlVDbGFzc0luZm9AM0BAWgorICAgICAgICA/Y3JlYXRlQEhU
TUxDb250ZW50RWxlbWVudEBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWSFRNTENvbnRlbnRF
bGVtZW50QFdlYkNvcmVAQEBXVEZAQFBBVkRvY3VtZW50QDJAQFoKICAgICAgICAgP2NyZWF0ZUBS
YW5nZUBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29yZUBAQFdURkBAVj8k
UGFzc1JlZlB0ckBWRG9jdW1lbnRAV2ViQ29yZUBAQDRAVj8kUGFzc1JlZlB0ckBWTm9kZUBXZWJD
b3JlQEBANEBIMUhAWgotICAgICAgICA/Y3JlYXRlQFNoYWRvd0NvbnRlbnRFbGVtZW50QFdlYkNv
cmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZTaGFkb3dDb250ZW50RWxlbWVudEBXZWJDb3JlQEBAV1RG
QEBQQVZEb2N1bWVudEAyQEBaCiAgICAgICAgID9jcmVhdGVXcmFwcGVyQFdlYkNvcmVAQFlBP0FW
SlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9k
ZUAxQEBaCiAgICAgICAgID9lbnN1cmVTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFUEFW
U2hhZG93Um9vdEAyQFhaCiAgICAgICAgID9lcXVhbEBXVEZAQFlBX05QQlZTdHJpbmdJbXBsQDFA
UEJFQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBi
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCA2YjY0NDhkYjE2MWFl
YjY3MTg5MDZkNjJmNzcwYjlhN2U0YThlYzBkLi40MTZkNzMyYzcxMDQyNmRjNzk2ODQ1OTMyZGNk
ZWViNDhjZDk4Zjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0
ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNDIs
OCArMTQyLDggQEAgRVhQT1JUUwogICAgICAgICA/YWRkQEF0b21pY1N0cmluZ0BXVEZAQENBP0FW
PyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQDJAUEJFQFoKICAgICAgICAgP2FkZFNsb3dD
YXNlQEF0b21pY1N0cmluZ0BXVEZAQENBP0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBA
QDJAUEFWU3RyaW5nSW1wbEAyQEBaCiAgICAgICAgID9jYWNoZURPTVN0cnVjdHVyZUBXZWJDb3Jl
QEBZQVBBVlN0cnVjdHVyZUBKU0NAQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWMjNAUEJVQ2xh
c3NJbmZvQDNAQFoKKyAgICAgICAgP2NyZWF0ZUBIVE1MQ29udGVudEVsZW1lbnRAV2ViQ29yZUBA
U0E/QVY/JFBhc3NSZWZQdHJAVkhUTUxDb250ZW50RWxlbWVudEBXZWJDb3JlQEBAV1RGQEBQQVZE
b2N1bWVudEAyQEBaCiAgICAgICAgID9jcmVhdGVAUmFuZ2VAV2ViQ29yZUBAU0E/QVY/JFBhc3NS
ZWZQdHJAVlJhbmdlQFdlYkNvcmVAQEBXVEZAQFY/JFBhc3NSZWZQdHJAVkRvY3VtZW50QFdlYkNv
cmVAQEA0QFY/JFBhc3NSZWZQdHJAVk5vZGVAV2ViQ29yZUBAQDRASDFIQFoKLSAgICAgICAgP2Ny
ZWF0ZUBTaGFkb3dDb250ZW50RWxlbWVudEBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWU2hh
ZG93Q29udGVudEVsZW1lbnRAV2ViQ29yZUBAQFdURkBAUEFWRG9jdW1lbnRAMkBAWgogICAgICAg
ICA/Y3JlYXRlV3JhcHBlckBXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVA
M0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVk5vZGVAMUBAWgogICAgICAgICA/ZW5zdXJlU2hh
ZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFBRVBBVlNoYWRvd1Jvb3RAMkBYWgogICAgICAgICA/
ZXF1YWxAV1RGQEBZQV9OUEJWU3RyaW5nSW1wbEAxQFBCRUBaCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
cgppbmRleCAxNWI2OTU3YTllMjQyMzE5MGJhYzFkZDIxY2ZiMTY3M2ZkNzMxOGRhLi5lMjEzMTBk
ZWU2OGYzY2U5NTMyNDJmMmQ0YTgzNGM3MjgzNDdhODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0
b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIKQEAgLTUwLDEwICs1MCwxMCBAQCBfWk43V2ViQ29yZTE1c2V0RE9NRXhjZXB0aW9uRVBOM0pT
QzlFeGVjU3RhdGVFaTsKIF9aTjdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTdzZXRTdWdnZXN0
ZWRWYWx1ZUVSS04zV1RGNlN0cmluZ0U7CiBfWk43V2ViQ29yZTE2anNTdHJpbmdTbG93Q2FzZUVQ
TjNKU0M5RXhlY1N0YXRlRVJOM1dURjdIYXNoTWFwSVBOUzNfMTBTdHJpbmdJbXBsRU5TMF80V2Vh
a0lOUzBfOEpTU3RyaW5nRUVFTlMzXzEwU3RyaW5nSGFzaEVOUzNfMTBIYXNoVHJhaXRzSVM2X0VF
TlNCX0lTOV9FRUVFUzZfOwogX1pON1dlYkNvcmUxN2NhY2hlRE9NU3RydWN0dXJlRVBOU18xN0pT
RE9NR2xvYmFsT2JqZWN0RVBOM0pTQzlTdHJ1Y3R1cmVFUEtOUzJfOUNsYXNzSW5mb0U7CitfWk43
V2ViQ29yZTE4SFRNTENvbnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RTsKIF9aTjdX
ZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMzlzZXRSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zy
b21JbnRlcm5hbHNFaWk7CiBfWk43V2ViQ29yZTIwTm9kZVJlbmRlcmluZ0NvbnRleHRDMUVQTlNf
NE5vZGVFOwogX1pON1dlYkNvcmUyME5vZGVSZW5kZXJpbmdDb250ZXh0RDFFdjsKLV9aTjdXZWJD
b3JlMjBTaGFkb3dDb250ZW50RWxlbWVudDZjcmVhdGVFUE5TXzhEb2N1bWVudEU7CiBfWk43V2Vi
Q29yZTIxZ2V0Q2FjaGVkRE9NU3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBLTjNK
U0M5Q2xhc3NJbmZvRTsKIF9aTjdXZWJDb3JlMjJleHRlcm5hbFJlcHJlc2VudGF0aW9uRVBOU183
RWxlbWVudEVqOwogX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEwbWFya2Vy
c0ZvckVQTlNfNE5vZGVFTlNfMTREb2N1bWVudE1hcmtlcjExTWFya2VyVHlwZXNFOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGRhMGM4NTg1ZWE4ODg5NzAzYThhMzdhMTQ1NmYxMzVlMTU3NGE3ZmUuLmEwMzM2MzBiOTU0YzAz
Y2RkNjAyYWQ1Njk5NjM2MDg3Yzc2NmZlZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0w
MS0xNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIE1v
dmUgU2hhZG93Q29udGVudEVsZW1lbnQgZnJvbSBkb20vIHRvIGh0bWwvIGFuZCBtYWtlIFNoYWRv
d0NvbnRlbnRFbGVtZW50IHN1YmNsYXNzIG9mIEhUTUxFbGVtZW50LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgUmVuYW1lZCBpbnRlcm5hbHMuY3JlYXRl
U2hhZG93Q29udGVudEVsZW1lbnQgdG8gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50Lgor
CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbmNsdWRlci5odG1s
OgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJzLmh0
bWw6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NyZWF0ZS1jb250ZW50LWVsZW1lbnQuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNlbGVjdC5odG1s
OgorCiAyMDEyLTAxLTE3ICBKb2UgVGhvbWFzICA8am9ldGhvbWFzQG1vdG9yb2xhLmNvbT4KIAog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwODkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW5j
bHVkZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQt
aW5jbHVkZXIuaHRtbAppbmRleCBmMTliZDE3Njg5OTg4MWUyYmRiOWNmZGExNGQ3ODAwMzM3MjVm
ZjEzLi5mYjZhNWIxMzFkZGE2NjJlZjUwZDI3YzIyYjU5NzQzNTU4YzhjYTc1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbmNs
dWRlci5odG1sCkBAIC0zMyw3ICszMyw3IEBAIHNob3VsZEJlKCJpbnRlcm5hbHMuaW5jbHVkZXJG
b3IoY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93KSIsICJudWxsIik7CiB2YXIgZWxlbWVudFdpdGhT
aGFkb3dDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiBjb250YWluZXIu
YXBwZW5kQ2hpbGQoZWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKIHZhciBzaGFkb3dSb290T2ZF
bGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChlbGVt
ZW50V2l0aFNoYWRvd0NvbnRlbnQpOwotdmFyIHNoYWRvd0NvbnRlbnRPZkVsZW1lbnRXaXRoU2hh
ZG93Q29udGVudCA9IGludGVybmFscy5jcmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChkb2N1bWVu
dCk7Cit2YXIgc2hhZG93Q29udGVudE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJu
YWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKIHNoYWRvd1Jvb3RPZkVsZW1lbnRX
aXRoU2hhZG93Q29udGVudC5hcHBlbmRDaGlsZChzaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNo
YWRvd0NvbnRlbnQpOwogdmFyIGNoaWxkT2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiBlbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQuYXBw
ZW5kQ2hpbGQoY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7CkBAIC01OCw3ICs1OCw3
IEBAIGVsZW1lbnRXaXRoU2hhZG93LnJlbW92ZUNoaWxkKG1vdmluZ0NoaWxkKTsKIHZhciBhbm90
aGVyRWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CiBjb250YWluZXIuYXBwZW5kQ2hpbGQoYW5vdGhlckVsZW1lbnRXaXRoU2hhZG93Q29udGVu
dCk7CiB2YXIgYW5vdGhlclNoYWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGlu
dGVybmFscy5lbnN1cmVTaGFkb3dSb290KGFub3RoZXJFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQp
OwotdmFyIGFub3RoZXJTaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBp
bnRlcm5hbHMuY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpOwordmFyIGFub3Ro
ZXJTaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBpbnRlcm5hbHMuY3Jl
YXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpOwogYW5vdGhlclNoYWRvd1Jvb3RPZkVsZW1lbnRX
aXRoU2hhZG93Q29udGVudC5hcHBlbmRDaGlsZChhbm90aGVyU2hhZG93Q29udGVudE9mRWxlbWVu
dFdpdGhTaGFkb3dDb250ZW50KTsKIAogYW5vdGhlckVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5h
cHBlbmRDaGlsZChtb3ZpbmdDaGlsZCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvY29udGVudC1lbGVtZW50LXJlbmRlcmVycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMuaHRtbAppbmRleCA5MTUxOWI4
YmM5ZWQ5OGU1MzRiZjM3ZTE0NWRhMTMxNTRiNWJjOGI4Li45NzdiODljYzAxOTRkMWU1ZDMyMmI3
YmFiYzlmMTU1NjU0OTI5ODMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY29udGVudC1lbGVtZW50LXJlbmRlcmVycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJzLmh0bWwKQEAgLTYyLDcgKzYyLDcg
QEAgZnVuY3Rpb24gY3JlYXRlVHJlZUZyb20oaHRtbCkKICAgICB2YXIgY29udGVudFBsYWNlaG9s
ZGVyID0gcm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiQ09OVEVOVCIpWzBdOwogICAgIGlmIChj
b250ZW50UGxhY2Vob2xkZXIpIHsKICAgICAgICAgdmFyIGNvbnRlbnRQYXJlbnQgPSBjb250ZW50
UGxhY2Vob2xkZXIucGFyZW50Tm9kZTsKLSAgICAgICAgY29udGVudFBhcmVudC5yZXBsYWNlQ2hp
bGQod2luZG93LmludGVybmFscy5jcmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChkb2N1bWVudCks
IGNvbnRlbnRQbGFjZWhvbGRlcik7CisgICAgICAgIGNvbnRlbnRQYXJlbnQucmVwbGFjZUNoaWxk
KHdpbmRvdy5pbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpLCBjb250ZW50
UGxhY2Vob2xkZXIpOwogICAgIH07CiAKICAgICByZXR1cm4gcm9vdDsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcmVhdGUtY29udGVudC1lbGVtZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3JlYXRlLWNvbnRlbnQtZWxlbWVudC5odG1sCmlu
ZGV4IGJkYjYwMDE2ZjBkYTI0MDRmNWRhMWM4NzhjZjE4OWQ4OTEyYjc4Y2QuLjgzMjEyMzFiYzM1
MTliYzI0ZTU4ZmFhYjIwMzFiMWZmZDYwYTIzMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9jcmVhdGUtY29udGVudC1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NyZWF0ZS1jb250ZW50LWVsZW1lbnQuaHRtbApAQCAtMjksNyAr
MjksNyBAQCBmdW5jdGlvbiBzZXR1cFRhcmdldFRyZWUoKQogICAgIHZhciBjaGlsZDAgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgY2hpbGQwLmlubmVySFRNTCA9ICJIZWxs
bywiOwogICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQwKTsKLSAgICByb290LmFwcGVuZENoaWxk
KHdpbmRvdy5pbnRlcm5hbHMuY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpKTsK
KyAgICByb290LmFwcGVuZENoaWxkKHdpbmRvdy5pbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1l
bnQoZG9jdW1lbnQpKTsKICAgICB2YXIgY2hpbGQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c3BhbiIpOwogICAgIGNoaWxkMS5pbm5lckhUTUwgPSAiV29ybGQuIjsKICAgICByb290LmFwcGVu
ZENoaWxkKGNoaWxkMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LWNvbnRlbnRzLXNlbGVjdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1jb250ZW50cy1zZWxlY3QuaHRtbAppbmRleCAzZDgxZDQ1NmNhZTQ1OGZlNThkOWVi
OTIxNTM1MDk5Y2VjMTQ1NGEyLi4yZWZiOTM2NTJkMDc4YzY3ZDU4ZTM2OTJkMGFmZjhlOWRhMjlj
YmJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRl
bnRzLXNlbGVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
Y29udGVudHMtc2VsZWN0Lmh0bWwKQEAgLTE1LDcgKzE1LDcgQEAgZnVuY3Rpb24gYXBwZW5kU2hh
ZG93KHRhcmdldCwgc2VsZWN0KSB7CiAgICAgY2hpbGQwLmlubmVySFRNTCA9ICJIZWxsbywiOwog
ICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQwKTsKIAotICAgIHZhciBjb250ZW50ID0gaW50ZXJu
YWxzLmNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKKyAgICB2YXIgY29udGVu
dCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCk7CiAgICAgY29udGVu
dC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNlbGVjdCk7CiAgICAgcm9vdC5hcHBlbmRDaGlsZChj
b250ZW50KTsKIApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDRhZDIy
ZGVlNmM2YTVlNTcxYjBkMmRlYzAzZTRmODdmYzI4ZDIyNGQuLmJjODJlMGMwZGU5M2I5YTE5MjQz
YjNjYTMxZDRkY2M4ZmFkNTExOTQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wMS0xNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlh
a0Bnb29nbGUuY29tPgorCisgICAgICAgIE1vdmUgU2hhZG93Q29udGVudEVsZW1lbnQgZnJvbSBk
b20vIHRvIGh0bWwvIGFuZCBtYWtlIFNoYWRvd0NvbnRlbnRFbGVtZW50IHN1YmNsYXNzIG9mIEhU
TUxFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzYyNDEKKworICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAg
ICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOiBFeHBvc2VkIG5lY2Vzc2FyeSBz
eW1ib2xzLgorCiAyMDEyLTAxLTE3ICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgTlVMTCBwdHIgaW4gV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5lVGV4
dDo6bG9jYWxDYXJldFJlY3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>