<?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>40350</bug_id>
          
          <creation_ts>2010-06-08 22:04:41 -0700</creation_ts>
          <short_desc>Attempt to speed up builds by reducing header dependencies</short_desc>
          <delta_ts>2023-06-03 13:45:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>3761</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>ahmad.saleem792</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ggaren</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>kbalazs</cc>
    
    <cc>sam</cc>
    
    <cc>slewis</cc>
    
    <cc>thakis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>235651</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-08 22:04:41 -0700</bug_when>
    <thetext>Attempt to speed up builds by reducing header dependencies</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235655</commentid>
    <comment_count>1</comment_count>
      <attachid>58211</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-08 22:15:17 -0700</bug_when>
    <thetext>Created attachment 58211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235658</commentid>
    <comment_count>2</comment_count>
      <attachid>58211</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-08 22:19:01 -0700</bug_when>
    <thetext>Comment on attachment 58211
Patch

Ok.  Does this actually make the build faster?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235659</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-08 22:22:20 -0700</bug_when>
    <thetext>I believe so.  Difficult to test since full builds take 1hr+ on my laptop atm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235664</commentid>
    <comment_count>4</comment_count>
      <attachid>58213</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-08 22:44:43 -0700</bug_when>
    <thetext>Created attachment 58213
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235665</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-08 23:02:24 -0700</bug_when>
    <thetext>Attachment 58211 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3192058</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235666</commentid>
    <comment_count>6</comment_count>
      <attachid>58213</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-08 23:08:19 -0700</bug_when>
    <thetext>Comment on attachment 58213
Patch for landing

I&apos;m going to need the EWS results.  Marking back to r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235684</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-09 00:18:48 -0700</bug_when>
    <thetext>Attachment 58213 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3226083</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235811</commentid>
    <comment_count>8</comment_count>
      <attachid>58213</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-06-09 09:02:40 -0700</bug_when>
    <thetext>Comment on attachment 58213
Patch for landing

r- due to ews build break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235898</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-09 11:23:27 -0700</bug_when>
    <thetext>Thanks. :)  I&apos;ll figure out what header is depending on PassRefPtr and missing the include and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236068</commentid>
    <comment_count>10</comment_count>
      <attachid>58305</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-09 16:04:52 -0700</bug_when>
    <thetext>Created attachment 58305
Should now compile for Chromium</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236070</commentid>
    <comment_count>11</comment_count>
      <attachid>58305</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-09 16:05:28 -0700</bug_when>
    <thetext>Comment on attachment 58305
Should now compile for Chromium

Waiting for the EWS bots to roll green then this can be r+&apos;d and cq+&apos;d.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236086</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-09 17:05:55 -0700</bug_when>
    <thetext>Attachment 58305 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3239091</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236104</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-06-09 17:43:09 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 58305 [details])
&gt; Waiting for the EWS bots to roll green then this can be r+&apos;d and cq+&apos;d.

How did you test for performance regressions?

I think the &quot;outlined&quot; method changes should be in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236117</commentid>
    <comment_count>14</comment_count>
      <attachid>58305</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-06-09 18:20:05 -0700</bug_when>
    <thetext>Comment on attachment 58305
Should now compile for Chromium

r- due to ews build break.

Plus Dave had a good point about the methods that have been uninlined and possible perf impact -- would be nice to do that in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236559</commentid>
    <comment_count>15</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-06-10 15:15:50 -0700</bug_when>
    <thetext>Personally, what is annoying me about this patch is the comments about includes. Do we really need those? Generally, we have got scarce comments in the code base. I have not seen explanations about why we include something somewhere yet. Actually, I would be very happy to see more comments in webkit to make the code more readable, but I think this kind of comments gives little useful information to the reader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405159</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-17 10:51:16 -0700</bug_when>
    <thetext>This is a long-abandoned patch and ma no longer be useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1959690</commentid>
    <comment_count>17</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2023-06-03 05:50:15 -0700</bug_when>
    <thetext>@Darin - did a lot of similar activities in RenderStyle and now WebPage. So I think it might to be needed anymore.

Can we close this? Unless @Darin, you think we can use this or something similar from it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1959707</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2023-06-03 13:45:50 -0700</bug_when>
    <thetext>It’s too old to be useful, yes. We should do this sort of thing, but this patch isn’t where we will start.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58211</attachid>
            <date>2010-06-08 22:15:17 -0700</date>
            <delta_ts>2010-06-08 22:44:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40350-20100608221516.patch</filename>
            <type>text/plain</type>
            <size>42350</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBlYzA1NWQzMjU0ZjVlY2JkMjkwY2Y2MTRlYTQ2MTgwMjVjZWZmYWI2Li5l
NGY1ZmVlNDQ2YTQxZmM1MDNkNjVmMTBmOWVhZmU2ZmJmNzNjMWFjIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMTAtMDYtMDggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF0dGVtcHQg
dG8gc3BlZWQgdXAgYnVpbGRzIGJ5IHJlZHVjaW5nIGhlYWRlciBkZXBlbmRlbmNpZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzUwCisKKyAgICAg
ICAgVGhlcmUgYXJlIDQgdHlwZXMgb2YgY2hhbmdlcyBpbiB0aGlzIHBhdGNoOgorICAgICAgICAt
IFJlbW92aW5nIHVudXNlZCBoZWFkZXJzLgorICAgICAgICAtIE1vdmluZyBmdW5jdGlvbnMgb3V0
IG9mIGhlYWRlcnMgaW50byAuY3BwIGZpbGVzCisgICAgICAgICAgKGluIGNhc2VzIHdoZXJlIHRo
ZXJlIGlzIG5vIHBlcmYtaW1wYWN0IGFuZCBkb2luZworICAgICAgICAgICBzbyBhbGxvd3MgdXMg
dG8gcmVtb3ZlIGEgaGVhZGVyIGluY2x1ZGUpLgorICAgICAgICAtIEFkZGluZyBGSVhNRXMgYWJv
dXQgY29kZSB3aGljaCBzaG91bGQgYmUgc3BsaXQgaW50bworICAgICAgICAgIGl0cyBvd24gaGVh
ZGVyLgorICAgICAgICAtIFJlbW92aW5nIHVuLW5lZWRlZCBhcmd1bWVudCBuYW1lcyB3aGVuIGVu
Y291bnRlcmVkLgorCisgICAgICAgIE5vIHRlc3RzLCBhcyB0aGlzIGRvZXMgbm90IGNoYW5nZSBm
dW5jdGlvbmFsaXR5LgorCisgICAgICAgICogcnVudGltZS9Db2xsZWN0b3IuaDoKKyAgICAgICAg
KiBydW50aW1lL0NvbXBsZXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0lkZW50aWZpZXIuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9K
U051bWJlckNlbGwuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9Qcm9wZXJ0eVNsb3QuaDoKKwogMjAxMC0wNi0wOCAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjYwODMwLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3Iu
aCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9yLmgKaW5kZXggMzRlMjM4Yzg2Mzg1
M2Q2NDhjNTU0ZjgzZjA2ZGI1N2IzMmJjMzc0Ny4uMjRmOGEwM2YzOWIzZGZiYTczYzI3ZjU1ZDYy
ZTBjMjIzMzViMGQxMSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0
b3IuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbGxlY3Rvci5oCkBAIC0yNyw3ICsy
Nyw2IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9u
LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uaAppbmRleCA2M2IzMTVlMThm
NjM5ZGQ4NGY1ZWJjYThhNWRlYTA3N2Y0MzJlMzIwLi4yYWVkMTc4YTA3YTUyZmJlYzY5MTk2NTRi
NDYxZGZiMTkwMWY2MWNiIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBs
ZXRpb24uaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uaApAQCAtMzEs
NiArMzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBTY29wZUNoYWluOwogICAgIGNs
YXNzIFNvdXJjZUNvZGU7CiAKKyAgICAvLyBGSVhNRTogVGhpcyBpcyB1c2VkIGJ5IG90aGVyIGhl
YWRlcnMgYW5kIHNob3VsZCBwcm9iYWJseSBiZSBpbiBpdHMgb3duIGhlYWRlci4KICAgICBlbnVt
IENvbXBsVHlwZSB7IE5vcm1hbCwgQnJlYWssIENvbnRpbnVlLCBSZXR1cm5WYWx1ZSwgVGhyb3cs
IEludGVycnVwdGVkLCBUZXJtaW5hdGVkIH07CiAKICAgICAvKgpkaWZmIC0tZ2l0IGEvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lk
ZW50aWZpZXIuaAppbmRleCAyZGIwNzE2OGVlYmVjNWMxMGE5ODVkZjE4MGY5Yzk3YmVmNzkwMGMz
Li4zNzg5YjdmMzkxNGU4ZGZmNDZhYzIwMjljYjA2OThjMDQyZTU3NWRhIDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0lkZW50aWZpZXIuaApAQCAtMjEsMTMgKzIxLDEyIEBACiAjaWZuZGVmIElkZW50aWZp
ZXJfaAogI2RlZmluZSBJZGVudGlmaWVyX2gKIAotI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgot
I2luY2x1ZGUgIlRocmVhZFNwZWNpZmljLmgiCiAjaW5jbHVkZSAiVVN0cmluZy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIEV4ZWNTdGF0ZTsKKyAgICBjbGFzcyBJZGVudGlmaWVy
VGFibGU7CiAKICAgICBjbGFzcyBJZGVudGlmaWVyIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIFN0
cnVjdHVyZTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAwOWE5
MmExNTQ2ZmQyZTY2ZWYxNTA4NGYyNjc1NzI3M2Q0M2JmNmI3Li41OWEyODA2NDlhNDY4MTEyZTY5
MTM0OTQwMTNhNmE3NmVlYTYyZDljIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oCkBAIC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIEpTR2xvYmFsT2JqZWN0X2gKICNkZWZp
bmUgSlNHbG9iYWxPYmplY3RfaAogCisjaW5jbHVkZSAiQXJnTGlzdC5oIiAvLyBVc2VkIGJ5IGNv
bnN0cnVjdEFycmF5CiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTR2xvYmFsRGF0
YS5oIgogI2luY2x1ZGUgIkpTVmFyaWFibGVPYmplY3QuaCIKZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNOdW1iZXJDZWxsLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TnVtYmVyQ2VsbC5oCmluZGV4IGNkZDJkOGNhNWE0ODZlOTkyZDg4ZDE2ODMyZjA2NTFhYWRmMWE5
M2MuLjMzNjg3YjMzOWNjOTZjY2FmZjc1OTdiZTQ5OWExN2JmYWU1ZDMzM2UgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOdW1iZXJDZWxsLmgKKysrIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU051bWJlckNlbGwuaApAQCAtMjMsMTEgKzIzLDggQEAKICNpZm5kZWYgSlNO
dW1iZXJDZWxsX2gKICNkZWZpbmUgSlNOdW1iZXJDZWxsX2gKIAotI2luY2x1ZGUgIkNhbGxGcmFt
ZS5oIgogI2luY2x1ZGUgIkpTQ2VsbC5oIgogI2luY2x1ZGUgIkpTSW1tZWRpYXRlLmgiCi0jaW5j
bHVkZSAiQ29sbGVjdG9yLmgiCi0jaW5jbHVkZSAiVVN0cmluZy5oIgogI2luY2x1ZGUgPHN0ZGRl
Zi5oPiAvLyBmb3Igc2l6ZV90CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMzksNyArMzYsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBKU1ZhbHVlIGpzTnVtYmVyQ2VsbChFeGVjU3RhdGUqLCBkb3Vi
bGUpOwogCiAgICAgY2xhc3MgSWRlbnRpZmllcjsKLSAgICBjbGFzcyBKU0NlbGw7CiAgICAgY2xh
c3MgSlNPYmplY3Q7CiAgICAgY2xhc3MgSlNTdHJpbmc7CiAgICAgY2xhc3MgUHJvcGVydHlTbG90
OwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IGVkZDM3NmM4NjQwOGJlMDFkMTdkMTlk
MDM3NmEzYTNkODQyMDY4MDYuLjgwNDNjYTY5MDI0ZGQ0NzIzZTc3MWI3NGRhZjRmMjNkMzRiNmMy
NjQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTIzLDIwICsyMywxNiBAQAogI2lm
bmRlZiBKU09iamVjdF9oCiAjZGVmaW5lIEpTT2JqZWN0X2gKIAotI2luY2x1ZGUgIkFyZ0xpc3Qu
aCIKLSNpbmNsdWRlICJDbGFzc0luZm8uaCIKKyNpbmNsdWRlICJDbGFzc0luZm8uaCIgLy8gVXNl
ZCBieSBKU0NlbGw6OmluaGVyaXRzCisjaW5jbHVkZSAiQ29tcGxldGlvbi5oIiAvLyBGb3IgQ29t
cGxUeXBlCiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmllcnMuaCIKLSNpbmNsdWRlICJDb21wbGV0
aW9uLmgiCi0jaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNDZWxsLmgiCi0jaW5j
bHVkZSAiSlNOdW1iZXJDZWxsLmgiCi0jaW5jbHVkZSAiTWFya1N0YWNrLmgiCi0jaW5jbHVkZSAi
UHJvcGVydHlTbG90LmgiCi0jaW5jbHVkZSAiUHV0UHJvcGVydHlTbG90LmgiCi0jaW5jbHVkZSAi
U2NvcGVDaGFpbi5oIgorI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIiAvLyBVc2VkIGJ5IGdldEpT
RnVuY3Rpb24KKyNpbmNsdWRlICJKU1N0cmluZy5oIiAvLyBVc2VkIGJ5IEpTVmFsdWU6OnRvVGhp
c1N0cmluZworI2luY2x1ZGUgIk1hcmtTdGFjay5oIiAvLyBVc2VkIGJ5IEpTT2JqZWN0OjptYXJr
Q2hpbGRyZW5EaXJlY3QKKyNpbmNsdWRlICJQcm9wZXJ0eVNsb3QuaCIgLy8gVXNlZCBieSBKU09i
amVjdDo6aW5saW5lR2V0T3duUHJvcGVydHlTbG90CisjaW5jbHVkZSAiUHV0UHJvcGVydHlTbG90
LmgiIC8vIFVzZWQgYnkgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsCiAjaW5jbHVkZSAiU3Ry
dWN0dXJlLmgiCi0jaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCi0jaW5jbHVkZSAiSlNTdHJpbmcu
aCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAt
NzQsMTMgKzcwLDEzIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBmcmllbmQgY2xhc3MgQmF0
Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXI7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKSVQ7CiAgICAg
ICAgIGZyaWVuZCBjbGFzcyBKU0NlbGw7Ci0gICAgICAgIGZyaWVuZCB2b2lkIHNldFVwU3RhdGlj
RnVuY3Rpb25TbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSwgSlNP
YmplY3QqIHRoaXNPYmosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KTsKKyAgICAgICAgZnJpZW5kIHZvaWQgc2V0VXBTdGF0aWNGdW5jdGlvblNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBIYXNoRW50cnkqIGVudHJ5LCBKU09iamVjdCogdGhpc09i
aiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIAogICAg
IHB1YmxpYzoKICAgICAgICAgZXhwbGljaXQgSlNPYmplY3QoTm9uTnVsbFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPik7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIG1hcmtDaGlsZHJlbihNYXJrU3RhY2sm
KTsKLSAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIG1hcmtDaGlsZHJlbkRpcmVjdChNYXJrU3Rh
Y2smIG1hcmtTdGFjayk7CisgICAgICAgIEFMV0FZU19JTkxJTkUgdm9pZCBtYXJrQ2hpbGRyZW5E
aXJlY3QoTWFya1N0YWNrJik7CiAKICAgICAgICAgLy8gVGhlIGlubGluZSB2aXJ0dWFsIGRlc3Ry
dWN0b3IgY2Fubm90IGJlIHRoZSBmaXJzdCB2aXJ0dWFsIGZ1bmN0aW9uIGRlY2xhcmVkCiAgICAg
ICAgIC8vIGluIHRoZSBjbGFzcyBhcyBpdCByZXN1bHRzIGluIHRoZSB2dGFibGUgYmVpbmcgZ2Vu
ZXJhdGVkIGFzIGEgd2VhayBzeW1ib2wKQEAgLTE3NSwxMSArMTcxLDExIEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBib29sIGhhc0N1c3RvbVByb3BlcnRpZXMoKSB7IHJldHVybiAhbV9zdHJ1
Y3R1cmUtPmlzRW1wdHkoKTsgfQogICAgICAgICBib29sIGhhc0dldHRlclNldHRlclByb3BlcnRp
ZXMoKSB7IHJldHVybiBtX3N0cnVjdHVyZS0+aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcygpOyB9
CiAKLSAgICAgICAgdm9pZCBwdXREaXJlY3QoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyLCBib29sIGNoZWNrUmVhZE9ubHksIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdCk7CisgICAgICAgIHZvaWQgcHV0RGlyZWN0KGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0ciwgYm9vbCBjaGVj
a1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdm9pZCBwdXREaXJlY3QoY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRy
ID0gMCk7CiAKICAgICAgICAgdm9pZCBwdXREaXJlY3RGdW5jdGlvbihjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQ2VsbCogdmFsdWUsIHVuc2lnbmVkIGF0dHIgPSAwKTsKLSAgICAg
ICAgdm9pZCBwdXREaXJlY3RGdW5jdGlvbihjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTQ2VsbCogdmFsdWUsIHVuc2lnbmVkIGF0dHIsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJv
cGVydHlTbG90JiBzbG90KTsKKyAgICAgICAgdm9pZCBwdXREaXJlY3RGdW5jdGlvbihjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQ2VsbCogdmFsdWUsIHVuc2lnbmVkIGF0dHIsIGJv
b2wgY2hlY2tSZWFkT25seSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZvaWQgcHV0RGly
ZWN0RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBJbnRlcm5hbEZ1bmN0aW9uKiBmdW5jdGlvbiwg
dW5zaWduZWQgYXR0ciA9IDApOwogICAgICAgICB2b2lkIHB1dERpcmVjdEZ1bmN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNGdW5jdGlvbiogZnVuY3Rpb24sIHVuc2lnbmVkIGF0dHIgPSAwKTsKIApA
QCAtMjY0LDggKzI2MCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8SlNWYWx1ZSo+KCZwcm9wZXJ0eVN0b3JhZ2UoKVtvZmZzZXRdKTsKICAg
ICAgICAgfQogCi0gICAgICAgIHZvaWQgcHV0RGlyZWN0SW50ZXJuYWwoY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyLCBib29sIGNoZWNr
UmVhZE9ubHksIFB1dFByb3BlcnR5U2xvdCYgc2xvdCwgSlNDZWxsKik7Ci0gICAgICAgIHZvaWQg
cHV0RGlyZWN0SW50ZXJuYWwoSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyLCBib29sIGNoZWNrUmVhZE9ubHks
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCk7CisgICAgICAgIHZvaWQgcHV0RGlyZWN0SW50ZXJuYWwo
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBh
dHRyLCBib29sIGNoZWNrUmVhZE9ubHksIFB1dFByb3BlcnR5U2xvdCYsIEpTQ2VsbCopOworICAg
ICAgICB2b2lkIHB1dERpcmVjdEludGVybmFsKEpTR2xvYmFsRGF0YSYsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0ciwgYm9vbCBjaGVj
a1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdm9pZCBwdXREaXJlY3RJbnRl
cm5hbChKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIHVuc2lnbmVkIGF0dHIgPSAwKTsKIAogICAgICAgICBib29sIGlubGluZUdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eVNsb3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKaW5kZXgg
ZGU5ZGRjOTk4MjJhNjMzZjAyNGU5NjM2MjE4OGQ5ZDVjNGFiNmJjMC4uNjBiNTU4YzBkNmRjYjQ2
Y2VhZGZkYjE3ZjljNThiZTVhMGQ4NzY3YSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm9wZXJ0eVNsb3QuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
U2xvdC5oCkBAIC0yMyw5ICsyMyw4IEBACiAKICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiSlNWYWx1ZS5oIgotI2luY2x1ZGUgIlJlZ2lzdGVyLmgiCisjaW5jbHVkZSAiUmVnaXN0
ZXIuaCIgLy8gVXNlZCBieSBnZXRWYWx1ZQogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0j
aW5jbHVkZSA8d3RmL05vdEZvdW5kLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE1NTBkNDY0YTZi
MDRiNjE0OWZmOTQ5NmJkM2ExYzY1MjBiMmYyYzkuLjg5ZTAxMzA2MDA5NzUxODQ2ZDc2M2ZiMGFh
MzRiNDM3ZDM5NzY0NmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTAtMDYtMDggIEVyaWMgU2VpZGVsICA8
ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEF0dGVtcHQgdG8gc3BlZWQgdXAgYnVpbGRzIGJ5IHJlZHVjaW5nIGhlYWRlciBk
ZXBlbmRlbmNpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMzUwCisKKyAgICAgICAgVGhlcmUgYXJlIDQgdHlwZXMgb2YgY2hhbmdlcyBpbiB0aGlz
IHBhdGNoOgorICAgICAgICAtIFJlbW92aW5nIHVudXNlZCBoZWFkZXJzLgorICAgICAgICAtIE1v
dmluZyBmdW5jdGlvbnMgb3V0IG9mIGhlYWRlcnMgaW50byAuY3BwIGZpbGVzCisgICAgICAgICAg
KGluIGNhc2VzIHdoZXJlIHRoZXJlIGlzIG5vIHBlcmYtaW1wYWN0IGFuZCBkb2luZworICAgICAg
ICAgICBzbyBhbGxvd3MgdXMgdG8gcmVtb3ZlIGEgaGVhZGVyIGluY2x1ZGUpLgorICAgICAgICAt
IEFkZGluZyBGSVhNRXMgYWJvdXQgY29kZSB3aGljaCBzaG91bGQgYmUgc3BsaXQgaW50bworICAg
ICAgICAgIGl0cyBvd24gaGVhZGVyLgorICAgICAgICAtIFJlbW92aW5nIHVuLW5lZWRlZCBhcmd1
bWVudCBuYW1lcyB3aGVuIGVuY291bnRlcmVkLgorCisgICAgICAgIE5vIHRlc3RzLCBhcyB0aGlz
IGRvZXMgbm90IGNoYW5nZSBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlPYmplY3Q6OmJvdW5kaW5nQm94UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0Ojpkb0FYQm91bmRzRm9yUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU9iamVjdDo6Ym91bmRzRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0RPTVdyYXBwZXJXb3JsZC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6ZG9j
dW1lbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRGVidWdXcmFwcGVyU2V0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNIaXN0b3J5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGNz
cy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRp
dmVWYWx1ZS5oOgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmg6CisgICAgICAgICogZG9t
L0VsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRvbS9TdHlsZWRF
bGVtZW50Lmg6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uOjpyb290RWRpdGFibGVFbGVtZW50KToKKyAgICAg
ICAgKiBlZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JDU1NTdG9yZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudExpc3RlbmVySW5mbzo6RXZlbnRMaXN0ZW5lcklu
Zm8pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAq
IGxvYWRlci9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6
Y2FuUmVuZGVyKToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkSW1hZ2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9G
b250RmFsbGJhY2tMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWxsYmFja0xpc3Q6
On5Gb250RmFsbGJhY2tMaXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFs
bGJhY2tMaXN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJj
ZUNvbnRhaW5lci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlk
Q29sb3IuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL0N1cnNvckRhdGEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOgor
ICAgICAgICAqIHN2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmg6CisKIDIwMTAtMDYt
MDggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2MDg1OS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA4ZGVkYzM2ZDJmZTAzOWUwYWFhNGQ1MTk1
MDY4NDk3NTZiZDdkMTNmLi5iMjIyMjhjMDI0ZmU5NDhhOWUwM2Y3NzBjNTE2ODFmNGJkYzU1Njcy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBA
IC0xMzEsNiArMTMxLDEyIEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNBUklBQ29udHJv
bChBY2Nlc3NpYmlsaXR5Um9sZSBhcmlhUm9sZSkKICAgICB8fCBhcmlhUm9sZSA9PSBDb21ib0Jv
eFJvbGUgfHwgYXJpYVJvbGUgPT0gU2xpZGVyUm9sZTsgCiB9CiAKKy8vIE1vdmVkIGZyb20gdGhl
IGhlYWRlciB0byBhdm9pZCBpbmNsdWRpbmcgSW50UmVjdC5oCitJbnRSZWN0IEFjY2Vzc2liaWxp
dHlPYmplY3Q6OmJvdW5kaW5nQm94UmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEludFJlY3Qo
KTsKK30KKwogSW50UG9pbnQgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y2xpY2tQb2ludCgpIGNvbnN0
CiB7CiAgICAgSW50UmVjdCByZWN0ID0gZWxlbWVudFJlY3QoKTsKQEAgLTQxNSw3ICs0MjEsMTMg
QEAgUmVuZGVyTGlzdEl0ZW0qIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlbmRlckxpc3RJdGVtQ29u
dGFpbmVyRm9yTm9kZShOb2RlKiBub2RlKQogICAgIAogICAgIHJldHVybiAwOwogfQotICAgIAor
CisvLyBNb3ZlZCBmcm9tIEFjY2Vzc2liaWxpdHlPYmplY3QuaCB0byBwcmV2ZW50IGluY2x1ZGlu
ZyBJbnRSZWN0LmgKK0ludFJlY3QgQWNjZXNzaWJpbGl0eU9iamVjdDo6ZG9BWEJvdW5kc0ZvclJh
bmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJikgY29uc3QKK3sKKyAgICByZXR1cm4gSW50UmVjdCgp
OworfQorCiAvLyBSZXR1cm5zIHRoZSB0ZXh0IGFzc29jaWF0ZWQgd2l0aCBhIGxpc3QgbWFya2Vy
IGlmIHRoaXMgbm9kZSBpcyBjb250YWluZWQgd2l0aGluIGEgbGlzdCBpdGVtLgogU3RyaW5nIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6Omxpc3RNYXJrZXJUZXh0Rm9yTm9kZUFuZFBvc2l0aW9uKE5vZGUq
IG5vZGUsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgdmlzaWJsZVBvc2l0aW9uU3RhcnQpIGNvbnN0
CiB7CkBAIC00NzYsNiArNDg4LDEyIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJp
bmdGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SCiAgICAgcmV0
dXJuIFN0cmluZzo6YWRvcHQocmVzdWx0VmVjdG9yKTsKIH0KIAorLy8gTW92ZWQgZnJvbSBBY2Nl
c3NpYmlsaXR5T2JqZWN0LmggdG8gcHJldmVudCBpbmNsdWRpbmcgSW50UmVjdC5oCitJbnRSZWN0
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmJvdW5kc0ZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0
IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3QKK3sKKyAgICByZXR1cm4gSW50UmVjdCgpOwor
fQorCiBpbnQgQWNjZXNzaWJpbGl0eU9iamVjdDo6bGVuZ3RoRm9yVmlzaWJsZVBvc2l0aW9uUmFu
Z2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHZpc2libGVQb3NpdGlvblJhbmdlKSBjb25z
dAogewogICAgIC8vIEZJWE1FOiBNdWx0aS1ieXRlIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDhiNDkyM2E3YjQxMzI0YjBjYmE5MDE4
OTVhNGUzM2ZlZjU0MGVmNzQuLmExZTk0MGFkMWE0NjU1MDkwNDU3OTdjZjYyYjA5NDk4MjQ0YmY3
MGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAt
MzAsNyArMzAsNiBAQAogI2lmbmRlZiBBY2Nlc3NpYmlsaXR5T2JqZWN0X2gKICNkZWZpbmUgQWNj
ZXNzaWJpbGl0eU9iamVjdF9oCiAKLSNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUmFu
Z2UuaCIKICNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlU2Vs
ZWN0aW9uLmgiCkBAIC0zOTIsNyArMzkxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBhbmNob3JFbGVtZW50Rm9yTm9kZShOb2RlKik7CiAgICAgdmlydHVhbCBF
bGVtZW50KiBhbmNob3JFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwg
RWxlbWVudCogYWN0aW9uRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFs
IEludFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9Cisg
ICAgdmlydHVhbCBJbnRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwg
SW50UmVjdCBlbGVtZW50UmVjdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFNpemUgc2l6
ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFBvaW50IGNsaWNrUG9pbnQoKSBjb25zdDsK
QEAgLTQ2Niw3ICs0NjUsNyBAQCBwdWJsaWM6CiAgICAgVmlzaWJsZVBvc2l0aW9uUmFuZ2Ugdmlz
aWJsZVBvc2l0aW9uUmFuZ2VGb3JSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYpIGNvbnN0Owog
CiAgICAgU3RyaW5nIHN0cmluZ0ZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQ
b3NpdGlvblJhbmdlJikgY29uc3Q7Ci0gICAgdmlydHVhbCBJbnRSZWN0IGJvdW5kc0ZvclZpc2li
bGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3QgeyByZXR1
cm4gSW50UmVjdCgpOyB9CisgICAgdmlydHVhbCBJbnRSZWN0IGJvdW5kc0ZvclZpc2libGVQb3Np
dGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3Q7CiAgICAgaW50IGxl
bmd0aEZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJikg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2Uo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmKSBjb25zdCB7IH0KIApAQCAtNDk3LDcgKzQ5Niw3
IEBAIHB1YmxpYzoKICAgICBQbGFpblRleHRSYW5nZSBkb0FYU3R5bGVSYW5nZUZvckluZGV4KHVu
c2lnbmVkKSBjb25zdDsKIAogICAgIHZpcnR1YWwgU3RyaW5nIGRvQVhTdHJpbmdGb3JSYW5nZShj
b25zdCBQbGFpblRleHRSYW5nZSYpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9Ci0gICAgdmly
dHVhbCBJbnRSZWN0IGRvQVhCb3VuZHNGb3JSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYpIGNv
bnN0IHsgcmV0dXJuIEludFJlY3QoKTsgfQorICAgIHZpcnR1YWwgSW50UmVjdCBkb0FYQm91bmRz
Rm9yUmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmKSBjb25zdDsKICAgICBTdHJpbmcgbGlzdE1h
cmtlclRleHRGb3JOb2RlQW5kUG9zaXRpb24oTm9kZSosIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
IGNvbnN0OwogCiAgICAgdW5zaWduZWQgZG9BWExpbmVGb3JJbmRleCh1bnNpZ25lZCk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaAppbmRleCA4MzJjNWUwODYzY2IxN2UwYWY2MjEx
M2I0ZTkxYjRiYzA1YWI2ZGE1Li44NzE0MTQwNDM3YzZlMGFjNDE5NjIyNDcxOTEwOTNmYmY0NDE5
YzA1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmgKQEAgLTMyLDYgKzMyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2NyaXB0Q29udHJvbGxlcjsKIGNsYXNzIFN0
cmluZ0ltcGw7CiAKKy8vIEZJWE1FOiBUaGVzZSBhcmUgdXNlZCBieSBvdGhlciBoZWFkZXJzIGFu
ZCBzaG91bGQgYmUgbW92ZWQgdG8gdGhlcmkgb3duIC5oCiB0eXBlZGVmIEpTQzo6V2Vha0dDTWFw
PHZvaWQqLCBET01PYmplY3QqPiBET01PYmplY3RXcmFwcGVyTWFwOwogdHlwZWRlZiBKU0M6Oldl
YWtHQ01hcDxTdHJpbmdJbXBsKiwgSlNDOjpKU1N0cmluZyo+IEpTU3RyaW5nQ2FjaGU7IAogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKaW5kZXggMjdhYzllNDQwNWNkMzQyOWJkZTcy
ZjAzYTRhODIwODAyNTdjODc4Ny4uYmM3MDYyZTE1ZWFkZDdhM2QzZGE1OGYxMGJkZWM5ODM4ODVj
MDgxMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtMTE2LDYgKzExNiwx
MiBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8RE9NV3JhcHBlcldvcmxkKj46Oml0ZXJhdG9yIG1f
ZW5kOwogfTsKIAorLy8gVGhpcyB3YXMgbW92ZWQgZnJvbSBKU0RPTUJpbmRpbmcuaCB0byBhdm9p
ZCBpbmNsdWRpbmcgRG9jdW1lbnQuaAorRG9jdW1lbnQqIERPTUNvbnN0cnVjdG9yV2l0aERvY3Vt
ZW50Ojpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERvY3VtZW50
Kj4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKwogY29uc3QgSlNDOjpIYXNoVGFibGUq
IGdldEhhc2hUYWJsZUZvckdsb2JhbERhdGEoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25z
dCBKU0M6Okhhc2hUYWJsZSogc3RhdGljVGFibGUpCiB7CiAgICAgcmV0dXJuIERPTU9iamVjdEhh
c2hUYWJsZU1hcDo6bWFwRm9yKGdsb2JhbERhdGEpLmdldChzdGF0aWNUYWJsZSk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCAzZjI1MDJkNTZjNTM0NzQ2NGI3YzVlYzY4NjYxNjQ0
MjVmNTFmMzY1Li4zYTJiNTE2ZjhmZGNkMTlkYzI5MjM0ZDA1ZDcwNmQzOWZhOGIwYjA4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTIyLDE1ICsyMiw5IEBACiAjaWZuZGVmIEpT
RE9NQmluZGluZ19oCiAjZGVmaW5lIEpTRE9NQmluZGluZ19oCiAKLSNpbmNsdWRlICJKU0RPTUds
b2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5oIgotI2luY2x1ZGUgIkRPTVdy
YXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIiAvLyBGb3IgSlNTdHJp
bmdDYWNoZQorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiIC8vIFVzZWQgYnkgZ2V0RE9N
UHJvdG90eXBlCiAjaW5jbHVkZSAiSlNTVkdDb250ZXh0Q2FjaGUuaCIKLSNpbmNsdWRlICJEb2N1
bWVudC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxldGlvbi5oPgotI2luY2x1ZGUgPHJ1bnRp
bWUvTG9va3VwLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9XZWFrR0NNYXAuaD4KLSNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNHbG9iYWxE
YXRhOwpAQCAtMTA1LDEwICs5OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyBjYW4g
bmV2ZXIgYmUgdXNlZCBmcm9tIGEgV29ya2VyQ29udGV4dC4KICAgICBjbGFzcyBET01Db25zdHJ1
Y3RvcldpdGhEb2N1bWVudCA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiAgICAgcHVi
bGljOgotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdAotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOwotICAgICAgICB9CisgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0Owog
CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudChOb25O
dWxsUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlYnVn
V3JhcHBlclNldC5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlYnVnV3JhcHBlclNldC5oCmlu
ZGV4IDk0YjZmNzhmY2Y0N2JjMjgxOGQxYTM3ZTYwYjdlZTEwN2UwZjNkMTcuLmM3NTMyZGQxZmI4
YjNhZjU1NzA0YTEwODg2NmNhYjZiMTQxYzk0OTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEZWJ1Z1dyYXBwZXJTZXQuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVi
dWdXcmFwcGVyU2V0LmgKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAorbmFtZXNwYWNlIFdURiB7Cit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBUaHJlYWRTcGVjaWZpYzsKK307CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogLy8gRm9yIGRlYnVnZ2luZywga2VlcCBhIHNldCBvZiB3cmFwcGVycyBjdXJy
ZW50bHkgY2FjaGVkLCBhbmQgY2hlY2sgdGhhdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hpc3RvcnlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlD
dXN0b20uY3BwCmluZGV4IDZhMmY2MTQ0YWJjMTE1NTMwMzhmMGE1MGMyMDQyYzMwNTdlMTE3ZDEu
LjliNTgwNDYzNDg0NjBjYTBkNTNkYmE4NWU5NmI2YjJlNzE4MzAyYjQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkhpc3RvcnkuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rp
b24uaD4KKyNpbmNsdWRlIDxydW50aW1lL0xvb2t1cC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvUHJv
dG90eXBlRnVuY3Rpb24uaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4IDc2MDA1ZmE1YTk1MTRiYThlNTZjZDg1ZTVm
YjUyYmU0NjBjZjMzOTYuLmU5ZTk4ZjkwZGNiMjFiYWYwNzc3MDU4MzdjNTlmMDg5NjUwYjkzZTIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcApAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNGdW5jdGlvbi5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvTG9v
a3VwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Qcm90b3R5cGVGdW5jdGlvbi5oPgogCiB1c2luZyBu
YW1lc3BhY2UgSlNDOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VD
dXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwCmluZGV4
IDZhMTI2Yjc2NmFkODg3OWZjYTVkYWM0ZWFhNjMzMWM5MTU0MGRlZTguLmNhNWUxMjkyZDhhN2Ji
NGRlMjU5NDJlNTFkNzIzYmU0YTUyZTU1OTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNTdG9yYWdlQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFn
ZUN1c3RvbS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiAK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvTG9va3VwLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPgogI2luY2x1ZGUgIlN0b3Jh
Z2UuaCIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5k
ZXggZTUxZGMwZjVlZWQyZTk5ZWUwNjRhYzM3NDhlNGJiMTk1Y2NlOWQ2OS4uZGZiM2Y2OThmOTFh
OWRiNmIzMGU1NTk1ODY0ZGI2Y2Y1MThiMzE4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0xMTkzLDYgKzExOTMsNyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogCiAgICAgJGltcGxJbmNsdWRlc3siPHd0Zi9HZXRQdHIuaD4ifSA9IDE7
CiAgICAgJGltcGxJbmNsdWRlc3siPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4ifSA9IDEg
aWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9
OworICAgICRpbXBsSW5jbHVkZXN7IjxydW50aW1lL0xvb2t1cC5oPiJ9ID0gMTsgIyBOZWVkZWQg
Zm9yIEhhc2hUYWJsZVZhbHVlCiAKICAgICBBZGRJbmNsdWRlc0ZvclR5cGUoJGludGVyZmFjZU5h
bWUpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bi5oIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaAppbmRleCBmNzc1
OWY0NTYyZTA5NWJiMWY0N2E4ZTA3YTk2ZjVhMzFlZWE0ZTQ1Li5kZDVlNmQyZTQ4Mjg2NzlmZWRk
OGM3MmExNTY2ZTkyNmZlOWRmMmQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uLmgKQEAgLTIxLDkgKzIxLDkgQEAKICNpZm5kZWYgQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb25faAogI2RlZmluZSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbl9oCiAKLSNpbmNsdWRl
ICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCi0jaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIK
KyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIiAvLyBGb3IgQ1NTUHJpbWl0aXZlVmFsdWU6
OlVuaXRUeXBlcwogI2luY2x1ZGUgIkNTU1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIktVUkxIYXNoLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5oCmluZGV4IGMyYTRkYzM4OTJlMTJmODUyMWYyM2IzNWNlMTJmNmE2YTJjYjkwODEuLjQ2YmIw
ZWJhMzU0ZjUyOWMzZDZjZmJlYTQ2MTExOGQ2M2RhN2ZiNTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuaApAQCAtNDAsNiArNDAsNyBAQCBzdHJ1Y3QgTGVuZ3RoOwogCiBjbGFzcyBDU1NQcmltaXRp
dmVWYWx1ZSA6IHB1YmxpYyBDU1NWYWx1ZSB7CiBwdWJsaWM6CisgICAgLy8gRklYTUU6IFRoaXMg
aXMgdXNlZCBieSBvdGhlciBoZWFkZXJzIGFuZCBzaG91bGQgcHJvYmFibHkgbW92ZSBpbnRvIGl0
cyBvd24gaGVhZGVyLgogICAgIGVudW0gVW5pdFR5cGVzIHsKICAgICAgICAgQ1NTX1VOS05PV04g
PSAwLAogICAgICAgICBDU1NfTlVNQkVSID0gMSwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuaCBiL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRleCA5Nzg5ZjFm
MjJmZjA1NWIxZmU4ZTU0NzdhY2ZmZmJjN2IwNmQ0ZDcwLi43YmM1NGZmMzZjMjlhNjBlZjA0YTFk
ZWMzYjBiZGEwOGQ0ODhmOTkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmgKKysrIGIvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCkBAIC0yNSwxMCArMjUsOSBAQAog
I2RlZmluZSBDb250YWluZXJOb2RlX2gKIAogI2luY2x1ZGUgIk5vZGUuaCIKLSNpbmNsdWRlICJG
bG9hdFBvaW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKKwogdHlwZWRlZiB2b2lk
ICgqTm9kZUNhbGxiYWNrKShOb2RlKik7CiAKIG5hbWVzcGFjZSBQcml2YXRlIHsgCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXgg
OGRhMjg5MmJiNjVmMTM0N2Y5YmFlNmZiZGIzY2Q3ZDg4MThlMWU1Ny4uYjQzODdlZTM4MmQ5Y2Fk
Yjk4NWQxZGI4NzQ5NTMwZDE3MTQzM2RmOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMjYsOSArMjYsOCBAQAogI2RlZmlu
ZSBFbGVtZW50X2gKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKLSNpbmNsdWRlICJEb2N1
bWVudC5oIgotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0
ZUVudHJ5LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIgLy8gVXNlZCBieSBFbGVtZW50Ojp1cGRh
dGVJZAorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIiAvLyBVc2VkIGJ5IEVsZW1lbnQ6OmlkQXR0cmli
dXRlTmFtZQogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5h
bWUuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20v
Tm9kZS5oIGIvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGZkNWIzN2Y1NmRhMzkxMTU4ZDNkZmIw
OTM3ZmNiODJlMjlmZTk4NWQuLmVjYmM4NDUyMzVkOTgwNzgxNDJkZDE1NzUzMTg2ODViZmNjNGM4
MjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9XZWJDb3JlL2RvbS9Ob2Rl
LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNkZWZpbmUgTm9kZV9oCiAKICNpbmNsdWRlICJFdmVudFRh
cmdldC5oIgotI2luY2x1ZGUgIktVUkxIYXNoLmgiCisjaW5jbHVkZSAiS1VSTEhhc2guaCIgLy8g
VXNlZCBieSBhZGRTdWJyZXNvdXJjZVVSTAogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRz
LmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiVHJlZVNoYXJlZC5o
IgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oIGIvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5oCmluZGV4IDZmYWNjZTdhNjExZDJhYWFkY2VmMmRmYmNhMTExY2UwNTYz
YjIxYjUuLmYxZDgxNTNhMzhmYjM3MGYzMWRkMTg1MzgzMWQ5Mzc2ZjViYzgxY2YgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9TdHlsZWRF
bGVtZW50LmgKQEAgLTI1LDE2ICsyNSwxNSBAQAogI2lmbmRlZiBTdHlsZWRFbGVtZW50X2gKICNk
ZWZpbmUgU3R5bGVkRWxlbWVudF9oCiAKLSNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbi5oIgotI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgogI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZUVudHJ5LmgiCi0jaW5jbHVkZSAiTmFtZWRO
b2RlTWFwLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXR0cmlidXRlOwogY2xh
c3MgQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb247CitjbGFzcyBDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbjsKK2NsYXNzIE5hbWVkTm9kZU1hcDsKIAogY2xhc3MgU3R5bGVkRWxlbWVudCA6
IHB1YmxpYyBFbGVtZW50IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9W
aXNpYmxlUG9zaXRpb24uY3BwIGIvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAK
aW5kZXggMWI0YTUxNDlkZjgzZWZlMzhjNjQ2N2QyNWY4YmQ3ZmMyYWVhNzE0ZS4uZGQ1NjYwZjMz
NjE3OGJjOWI4YWRlOWZmMjJmYTJiYzgxNDgwNWE0MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3Np
dGlvbi5jcHAKQEAgLTU3Myw2ICs1NzMsMTEgQEAgdm9pZCBWaXNpYmxlUG9zaXRpb246OmRlYnVn
UG9zaXRpb24oY29uc3QgY2hhciogbXNnKSBjb25zdAogICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IlBvc2l0aW9uIFslc106ICVzIFslcF0gYXQgJWRcbiIsIG1zZywgbV9kZWVwUG9zaXRpb24ubm9k
ZSgpLT5ub2RlTmFtZSgpLnV0ZjgoKS5kYXRhKCksIG1fZGVlcFBvc2l0aW9uLm5vZGUoKSwgbV9k
ZWVwUG9zaXRpb24uZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSk7CiB9CiAKK0VsZW1lbnQqIFZp
c2libGVQb3NpdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fZGVlcFBvc2l0aW9uLmlzTm90TnVsbCgpID8gbV9kZWVwUG9zaXRpb24ubm9kZSgpLT5yb290
RWRpdGFibGVFbGVtZW50KCkgOiAwOworfQorCiAjaWZuZGVmIE5ERUJVRwogCiB2b2lkIFZpc2li
bGVQb3NpdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5n
dGgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmgg
Yi9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmgKaW5kZXggZmU3OTVhMTIyOTQxYzU1
YjgwMmUyYzdjMmFlNzdmM2UyMDg1Y2FjMy4uYjA4ZTEzNTQwMjcwYjQ5NzA4ZGIzMmQ0ZTRjMmI3
ZDE2Njk0YmFhOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5o
CisrKyBiL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uaApAQCAtMjYsOSArMjYsNyBA
QAogI2lmbmRlZiBWaXNpYmxlUG9zaXRpb25faAogI2RlZmluZSBWaXNpYmxlUG9zaXRpb25faAog
Ci0jaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCi0jaW5jbHVkZSAiVGV4
dERpcmVjdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTgyLDkgKzgwLDkgQEAg
cHVibGljOgogICAgIFVDaGFyMzIgY2hhcmFjdGVyQmVmb3JlKCkgY29uc3QgeyByZXR1cm4gcHJl
dmlvdXMoKS5jaGFyYWN0ZXJBZnRlcigpOyB9CiAgICAgCiAgICAgdm9pZCBkZWJ1Z1Bvc2l0aW9u
KGNvbnN0IGNoYXIqIG1zZyA9ICIiKSBjb25zdDsKLSAgICAKLSAgICBFbGVtZW50KiByb290RWRp
dGFibGVFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kZWVwUG9zaXRpb24uaXNOb3ROdWxsKCkg
PyBtX2RlZXBQb3NpdGlvbi5ub2RlKCktPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSA6IDA7IH0KLSAg
ICAKKworICAgIEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQoKSBjb25zdDsKKwogICAgIHZv
aWQgZ2V0SW5saW5lQm94QW5kT2Zmc2V0KElubGluZUJveComIGlubGluZUJveCwgaW50JiBjYXJl
dE9mZnNldCkgY29uc3QKICAgICB7CiAgICAgICAgIG1fZGVlcFBvc2l0aW9uLmdldElubGluZUJv
eEFuZE9mZnNldChtX2FmZmluaXR5LCBpbmxpbmVCb3gsIGNhcmV0T2Zmc2V0KTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmggYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oCmluZGV4IDRiN2VmNTE1ZmZmNjlhOGVjYWY4ZjAwMzM2
ZDJhZDYxNmU1ZmIwMjEuLjY0ZDhjYzZhMzI1ZWU1MDJiZGQzNzQxMDM1NzVkZGQ2NzRkYjhiNmIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmgKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaApAQCAtNDcsNiArNDcsOCBAQCBj
bGFzcyBDU1NTdHlsZVNoZWV0OwogY2xhc3MgU3RyaW5nOwogY2xhc3MgU3R5bGVCYXNlOwogCisv
LyBGSVhNRTogSWYgdGhlc2UgdHlwZWRlZnMgYXJlIGluZGVuZGVkIHRvIGJlIHNoYXJlZCBiZXR3
ZWVuIGhlYWRlcnMKKy8vIHRoZXkgc2hvdWxkIHByb2JhYmx5IGhhdmUgdGhlaXIgb3duIGhlYWRl
ciB0byBtaW5pbWl6ZSBpbmNsdWRlIGRlcGVuZGVuY2llcy4KIHR5cGVkZWYgc3RkOjpwYWlyPFN0
cmluZywgU3RyaW5nPiBQcm9wZXJ0eVZhbHVlQW5kUHJpb3JpdHk7CiB0eXBlZGVmIHN0ZDo6cGFp
cjx1bnNpZ25lZCwgdW5zaWduZWQ+IFNvdXJjZVJhbmdlOwogdHlwZWRlZiBIYXNoTWFwPFN0cmlu
ZywgUHJvcGVydHlWYWx1ZUFuZFByaW9yaXR5PiBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb247CkBA
IC02Myw3ICs2NSw3IEBAIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8RG9jdW1lbnQ+LCBSZWZQdHI8
Q1NTU3R5bGVTaGVldD4gPiBEb2N1bWVudFRvU3R5bGVTaGVldE1hCiBjbGFzcyBJbnNwZWN0b3JD
U1NTdG9yZSB7CiAKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JDU1NTdG9yZShJbnNwZWN0b3JDb250
cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKTsKKyAgICBJbnNwZWN0b3JDU1NTdG9yZShJbnNw
ZWN0b3JDb250cm9sbGVyKik7CiAgICAgfkluc3BlY3RvckNTU1N0b3JlKCk7CiAgICAgdm9pZCBy
ZXNldCgpOwogICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IGdldFJ1bGVSYW5nZXNGb3JT
dHlsZVNoZWV0KENTU1N0eWxlU2hlZXQqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcAppbmRleCAzMzhkYzMzZWQwMGFkMDIzNWE0NmFjMWUyY2Q1NzYwMGJhYTIxYzBlLi4w
NDUwMjFhODAzOWIzNjU2NDUwYzkyYmY0MGU4MzQwYjNkNTc2ODkwIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC03Miw2ICs3MiwyMCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKKy8vIFRoaXMgbWF5IGVuZCB1cCBpbiBpdHMgb3duIGhlYWRlci4gIEl0IHNo
b3VsZCBub3QgZ28gaW4gSW5zcGVjdG9yRE9NQWdlbnQuaAorc3RydWN0IEV2ZW50TGlzdGVuZXJJ
bmZvIHsKKyAgICBFdmVudExpc3RlbmVySW5mbyhOb2RlKiBub2RlLCBjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgY29uc3QgRXZlbnRMaXN0ZW5lclZlY3RvciYgZXZlbnRMaXN0ZW5lclZl
Y3RvcikKKyAgICAgICAgOiBub2RlKG5vZGUpCisgICAgICAgICwgZXZlbnRUeXBlKGV2ZW50VHlw
ZSkKKyAgICAgICAgLCBldmVudExpc3RlbmVyVmVjdG9yKGV2ZW50TGlzdGVuZXJWZWN0b3IpCisg
ICAgeworICAgIH0KKworICAgIE5vZGUqIG5vZGU7CisgICAgY29uc3QgQXRvbWljU3RyaW5nIGV2
ZW50VHlwZTsKKyAgICBjb25zdCBFdmVudExpc3RlbmVyVmVjdG9yIGV2ZW50TGlzdGVuZXJWZWN0
b3I7Cit9OworCiBJbnNwZWN0b3JET01BZ2VudDo6SW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVjdG9y
Q1NTU3RvcmUqIGNzc1N0b3JlLCBJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiAgICAgOiBF
dmVudExpc3RlbmVyKEluc3BlY3RvckRPTUFnZW50VHlwZSkKICAgICAsIG1fY3NzU3RvcmUoY3Nz
U3RvcmUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5o
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCBmODkyNWI1ZmY2
NTJlNmIwNjc2MzQ0MjAxYzQ0NjI0NDBiN2I4NDBlLi43NzZjNjY2MWI2MmFiM2JmNmNmNTM4MGNm
ZDBjZjU3Mzk1Y2JiMDJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKQEAg
LTMwLDE4ICszMCwxMiBAQAogI2lmbmRlZiBJbnNwZWN0b3JET01BZ2VudF9oCiAjZGVmaW5lIElu
c3BlY3RvckRPTUFnZW50X2gKIAotI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgogI2luY2x1ZGUg
IkV2ZW50TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJFdmVudFRhcmdldC5oIgotI2luY2x1ZGUgIklu
c3BlY3RvckNTU1N0b3JlLmgiCi0jaW5jbHVkZSAiU2NyaXB0QXJyYXkuaCIKLSNpbmNsdWRlICJT
Y3JpcHRPYmplY3QuaCIKLSNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUgIkluc3Bl
Y3RvckNTU1N0b3JlLmgiIC8vIEZvciBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb24KIAogI2luY2x1
ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTQsMjMgKzQ4LDE0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBFbGVtZW50OwogICAgIGNsYXNzIEV2ZW50
OwogICAgIGNsYXNzIERvY3VtZW50OworICAgIGNsYXNzIEluc3BlY3RvckNTU1N0b3JlOwogICAg
IGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwogICAgIGNsYXNzIE5hbWVOb2RlTWFwOwogICAgIGNs
YXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKLQotICAgIHN0cnVjdCBFdmVudExpc3RlbmVySW5m
byB7Ci0gICAgICAgIEV2ZW50TGlzdGVuZXJJbmZvKE5vZGUqIG5vZGUsIGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBjb25zdCBFdmVudExpc3RlbmVyVmVjdG9yJiBldmVudExpc3RlbmVy
VmVjdG9yKQotICAgICAgICAgICAgOiBub2RlKG5vZGUpCi0gICAgICAgICAgICAsIGV2ZW50VHlw
ZShldmVudFR5cGUpCi0gICAgICAgICAgICAsIGV2ZW50TGlzdGVuZXJWZWN0b3IoZXZlbnRMaXN0
ZW5lclZlY3RvcikKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgTm9kZSogbm9kZTsK
LSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nIGV2ZW50VHlwZTsKLSAgICAgICAgY29uc3QgRXZl
bnRMaXN0ZW5lclZlY3RvciBldmVudExpc3RlbmVyVmVjdG9yOwotICAgIH07CisgICAgY2xhc3Mg
UmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXI7CisgICAgY2xhc3MgU2NyaXB0QXJyYXk7CisgICAgY2xh
c3MgU2NyaXB0T2JqZWN0OwogCiAgICAgY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQgOiBwdWJsaWMg
RXZlbnRMaXN0ZW5lciB7CiAgICAgcHVibGljOgpAQCAtMTMxLDggKzExNiw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBDU1NTdHlsZVNoZWV0
KiBnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRpb24qKTsKLSAgICAgICAgdm9p
ZCBzdGFydExpc3RlbmluZyhEb2N1bWVudCogZG9jdW1lbnQpOwotICAgICAgICB2b2lkIHN0b3BM
aXN0ZW5pbmcoRG9jdW1lbnQqIGRvY3VtZW50KTsKKyAgICAgICAgdm9pZCBzdGFydExpc3Rlbmlu
ZyhEb2N1bWVudCopOworICAgICAgICB2b2lkIHN0b3BMaXN0ZW5pbmcoRG9jdW1lbnQqKTsKIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IEV2ZW50KiBldmVudCk7CiAKQEAgLTE0MywxNCArMTI4LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBib29sIHB1c2hEb2N1bWVudFRvRnJvbnRlbmQoKTsKIAotICAgICAgICBT
Y3JpcHRPYmplY3QgYnVpbGRPYmplY3RGb3JBdHRyaWJ1dGVTdHlsZXMoRWxlbWVudCogZWxlbWVu
dCk7CisgICAgICAgIFNjcmlwdE9iamVjdCBidWlsZE9iamVjdEZvckF0dHJpYnV0ZVN0eWxlcyhF
bGVtZW50Kik7CiAgICAgICAgIFNjcmlwdEFycmF5IGJ1aWxkQXJyYXlGb3JDU1NSdWxlcyhEb2N1
bWVudCogb3duZXJEb2N1bWVudCwgQ1NTUnVsZUxpc3QqKTsKICAgICAgICAgU2NyaXB0QXJyYXkg
YnVpbGRBcnJheUZvclBzZXVkb0VsZW1lbnRzKEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgYXV0aG9y
T25seSk7CiAKICAgICAgICAgU2NyaXB0T2JqZWN0IGJ1aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiBu
b2RlLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7Ci0gICAgICAgIFNjcmlwdEFy
cmF5IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhFbGVtZW50KiBlbGVtZW50KTsKLSAg
ICAgICAgU2NyaXB0QXJyYXkgYnVpbGRBcnJheUZvckNvbnRhaW5lckNoaWxkcmVuKE5vZGUqIGNv
bnRhaW5lciwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCogbm9kZXNNYXApOwotICAgICAgICBTY3Jp
cHRPYmplY3QgYnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGNvbnN0IFJlZ2lzdGVyZWRFdmVu
dExpc3RlbmVyJiByZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciwgY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIE5vZGUqIG5vZGUpOworICAgICAgICBTY3JpcHRBcnJheSBidWlsZEFycmF5Rm9y
RWxlbWVudEF0dHJpYnV0ZXMoRWxlbWVudCopOworICAgICAgICBTY3JpcHRBcnJheSBidWlsZEFy
cmF5Rm9yQ29udGFpbmVyQ2hpbGRyZW4oTm9kZSogY29udGFpbmVyLCBpbnQgZGVwdGgsIE5vZGVU
b0lkTWFwKik7CisgICAgICAgIFNjcmlwdE9iamVjdCBidWlsZE9iamVjdEZvckV2ZW50TGlzdGVu
ZXIoY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgTm9kZSopOwogCiAgICAgICAgIC8vIFdlIHJlcHJlc2VudCBlbWJlZGRlZCBkb21z
IGFzIGEgcGFydCBvZiB0aGUgc2FtZSBoaWVyYXJjaHkuIEhlbmNlIHdlIHRyZWF0IGNoaWxkcmVu
IG9mIGZyYW1lIG93bmVycyBkaWZmZXJlbnRseS4KICAgICAgICAgLy8gV2UgYWxzbyBza2lwIHdo
aXRlc3BhY2UgdGV4dCBub2RlcyBjb25kaXRpb25hbGx5LiBGb2xsb3dpbmcgbWV0aG9kcyBlbmNh
cHN1bGF0ZSB0aGVzZSBzcGVjaWZpY3MuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9DYWNo
ZWRJbWFnZS5jcHAgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRJbWFnZS5jcHAKaW5kZXggOWFlOGQy
MDBiOWY1ODlhNTNiODQ0ZWQ5ZjIzM2EwNDc4MDdhZjY0YS4uMWI1NTJmYjg0MzUzOTc3YmM3NDAy
YzM4NWQyYjc0ODQyODUyZjllNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkSW1h
Z2UuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZEltYWdlLmNwcApAQCAtMTM4LDYgKzEz
OCwxMSBAQCBJbWFnZSogQ2FjaGVkSW1hZ2U6OmltYWdlKCkgY29uc3QKICAgICByZXR1cm4gbnVs
bEltYWdlKCk7CiB9CiAKK2Jvb2wgQ2FjaGVkSW1hZ2U6OmNhblJlbmRlcihmbG9hdCBtdWx0aXBs
aWVyKSBjb25zdAoreworICAgIHJldHVybiAhZXJyb3JPY2N1cnJlZCgpICYmICFpbWFnZVNpemUo
bXVsdGlwbGllcikuaXNFbXB0eSgpOworfQorCiB2b2lkIENhY2hlZEltYWdlOjpzZXRJbWFnZUNv
bnRhaW5lclNpemUoY29uc3QgSW50U2l6ZSYgY29udGFpbmVyU2l6ZSkKIHsKICAgICBpZiAobV9p
bWFnZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZEltYWdlLmggYi9XZWJDb3Jl
L2xvYWRlci9DYWNoZWRJbWFnZS5oCmluZGV4IGI0YTAzMmFhNDUwYjM0Yjk3MzgwYzUxYTE4MTVh
M2UxYTgyNzExZDQuLjBkOTNmNzNhMzgyMGRkMDVlZDY5NzNiZDc0NTg0NmMyMzQxMjdhZmEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZEltYWdlLmgKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvQ2FjaGVkSW1hZ2UuaApAQCAtMjUsMTQgKzI1LDE0IEBACiAKICNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZS5oIgogI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlICJJbnRSZWN0
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jTG9hZGVyOwogY2xhc3MgQ2FjaGU7CitjbGFzcyBJ
bnRSZWN0OworY2xhc3MgSW50U2l6ZTsKIAogY2xhc3MgQ2FjaGVkSW1hZ2UgOiBwdWJsaWMgQ2Fj
aGVkUmVzb3VyY2UsIHB1YmxpYyBJbWFnZU9ic2VydmVyIHsKICAgICBmcmllbmQgY2xhc3MgQ2Fj
aGU7CkBAIC00MSwxMiArNDEsMTIgQEAgcHVibGljOgogICAgIENhY2hlZEltYWdlKGNvbnN0IFN0
cmluZyYgdXJsKTsKICAgICBDYWNoZWRJbWFnZShJbWFnZSopOwogICAgIHZpcnR1YWwgfkNhY2hl
ZEltYWdlKCk7Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIGxvYWQoRG9jTG9hZGVyKiBkb2NMb2Fk
ZXIpOworCisgICAgdmlydHVhbCB2b2lkIGxvYWQoRG9jTG9hZGVyKik7CiAKICAgICBJbWFnZSog
aW1hZ2UoKSBjb25zdDsKIAotICAgIGJvb2wgY2FuUmVuZGVyKGZsb2F0IG11bHRpcGxpZXIpIGNv
bnN0IHsgcmV0dXJuICFlcnJvck9jY3VycmVkKCkgJiYgIWltYWdlU2l6ZShtdWx0aXBsaWVyKS5p
c0VtcHR5KCk7IH0KKyAgICBib29sIGNhblJlbmRlcihmbG9hdCBtdWx0aXBsaWVyKSBjb25zdDsK
IAogICAgIC8vIFRoZXNlIGFyZSBvbmx5IHVzZWQgZm9yIFNWR0ltYWdlIHJpZ2h0IG5vdwogICAg
IHZvaWQgc2V0SW1hZ2VDb250YWluZXJTaXplKGNvbnN0IEludFNpemUmKTsKQEAgLTgyLDcgKzgy
LDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZCgpOwogCiAgICAgLy8gSW1hZ2VPYnNlcnZlcgot
ICAgIHZpcnR1YWwgdm9pZCBkZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UqIGltYWdlLCBp
bnQgZGVsdGEpOworICAgIHZpcnR1YWwgdm9pZCBkZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1h
Z2UqLCBpbnQgZGVsdGEpOwogICAgIHZpcnR1YWwgdm9pZCBkaWREcmF3KGNvbnN0IEltYWdlKik7
CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGF1c2VBbmltYXRpb24oY29uc3QgSW1hZ2UqKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4IDc2ODIwMTE3MGRiMWUxNzk0NDk5YjY1
ODFiZjU1YWVhNmNjN2E4ZDAuLjM0OTA4NTljYjVmNDg3NmIwYjFjODM2NThlYmUwZjAzNGI2N2Ni
ZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCisjaW5jbHVkZSAi
Rm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRm9udFRyYW5zY29kZXIuaCIKICNpbmNsdWRlICJJ
bnRQb2ludC5oIgogI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250RmFsbGJhY2tMaXN0LmNwcAppbmRleCA2NDljMTE3YTRjNjRiYWRkNTU5
ZTNkM2UxNzVjY2UyZGIzZWVkNDNiLi5hZWI2MjJiYWVhODhjYmM2MTQ4MjIxMWEyYzIwZjNjZWZl
ZDU2ZDRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFj
a0xpc3QuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlz
dC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkZvbnQuaCIKICNpbmNsdWRlICJG
b250Q2FjaGUuaCIKKyNpbmNsdWRlICJGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJTZWdtZW50
ZWRGb250RGF0YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Niw2ICs0NywxMSBAQCBG
b250RmFsbGJhY2tMaXN0OjpGb250RmFsbGJhY2tMaXN0KCkKIHsKIH0KIAorRm9udEZhbGxiYWNr
TGlzdDo6fkZvbnRGYWxsYmFja0xpc3QoKQoreworICAgIHJlbGVhc2VGb250RGF0YSgpOworfQor
CiB2b2lkIEZvbnRGYWxsYmFja0xpc3Q6OmludmFsaWRhdGUoUGFzc1JlZlB0cjxGb250U2VsZWN0
b3I+IGZvbnRTZWxlY3RvcikKIHsKICAgICByZWxlYXNlRm9udERhdGEoKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFsbGJhY2tMaXN0LmgKaW5kZXggYTEwZjVhZjg5ZTJkYjIx
YzQ0ODMwYmYwZDBhNzY1OGQ4M2ZkZmE3NS4uYTM0NzBkMjc4ZTc4NTU1NTg0MGRmMzQwMGE2YTMy
MmZjYjdkYTRmZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFs
bGJhY2tMaXN0LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFsbGJhY2tM
aXN0LmgKQEAgLTIxLDggKzIxLDcgQEAKICNpZm5kZWYgRm9udEZhbGxiYWNrTGlzdF9oCiAjZGVm
aW5lIEZvbnRGYWxsYmFja0xpc3RfaAogCi0jaW5jbHVkZSAiRm9udFNlbGVjdG9yLmgiCi0jaW5j
bHVkZSAiU2ltcGxlRm9udERhdGEuaCIKKyNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIiAvLyBG
b3IgUGl0Y2gKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC00MSw3ICs0MCw3IEBAIGNsYXNzIEZvbnRGYWxsYmFja0xpc3QgOiBwdWJsaWMgUmVmQ291
bnRlZDxGb250RmFsbGJhY2tMaXN0PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
Rm9udEZhbGxiYWNrTGlzdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEZvbnRGYWxs
YmFja0xpc3QoKSk7IH0KIAotICAgIH5Gb250RmFsbGJhY2tMaXN0KCkgeyByZWxlYXNlRm9udERh
dGEoKTsgfQorICAgIH5Gb250RmFsbGJhY2tMaXN0KCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlKFBh
c3NSZWZQdHI8Rm9udFNlbGVjdG9yPik7CiAgICAgCiAgICAgYm9vbCBpc0ZpeGVkUGl0Y2goY29u
c3QgRm9udCogZikgY29uc3QgeyBpZiAobV9waXRjaCA9PSBVbmtub3duUGl0Y2gpIGRldGVybWlu
ZVBpdGNoKGYpOyByZXR1cm4gbV9waXRjaCA9PSBGaXhlZFBpdGNoOyB9OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1BhdGguaAppbmRleCBiNjk2NzBmNzYzNzU1ZDBmZGI3ODE3MmFmZDM0MjM4ZmY3MzZiNjE3
Li5iZWFlM2IxYzk2YzI3YTExZTVjMzUzMmZiNjYxMzlhMTAyNzUzNTU4IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BhdGguaApAQCAtODAsNiArODAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgU3RyaW5nOwogICAgIGNsYXNzIFN0cm9rZVN0eWxlQXBwbGllcjsKIAorICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIHVzZWQgYnkgb3RoZXIgaGVhZGVycyBhbmQgc2hvdWxkIHByb2JhYmx5IG1v
dmUgdG8gaXRzIG93biAuaAogICAgIGVudW0gV2luZFJ1bGUgewogICAgICAgICBSVUxFX05PTlpF
Uk8gPSAwLAogICAgICAgICBSVUxFX0VWRU5PREQgPSAxCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NpbXBsZUZvbnREYXRhLmgKaW5kZXggYmM4OTdiZTMxZGY4YzRiYTQwZTlhODNmNzc4MjMw
OWJhMzdjNWUzMC4uMzI5YWNiMWEzZjUzZjk0OGM0N2JhMTFlMGFkOWE2Zjg5MGFiNTE3NyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaApAQCAtNjUsNiArNjUs
NyBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3Mg
U1ZHRm9udERhdGE7CiAKKy8vIEZJWE1FOiBUaGlzIGlzIHVzZWQgYnkgb3RoZXIgaGVhZGVycyBh
bmQgc2hvdWxkIHByb2JhYmx5IGhhdmUgaXRzIG93biBoZWFkZXIuCiBlbnVtIFBpdGNoIHsgVW5r
bm93blBpdGNoLCBGaXhlZFBpdGNoLCBWYXJpYWJsZVBpdGNoIH07CiAKIGNsYXNzIFNpbXBsZUZv
bnREYXRhIDogcHVibGljIEZvbnREYXRhIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXgg
ZjJiMzEzOTNhNTM0MjI5OTJlOTc0MWRhOTEzNjFlMjA0MzJmZDk4ZS4uMTQ3ZGUxYmNmZjdmNDk4
NDllMmE0Zjk1YjE5MWQ1ZWU3NGNhZTUxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAg
LTUxMSw2ICs1MTEsOCBAQCBwdWJsaWM6CiAgICAgICogUGFpbnQgdGhlIG9iamVjdCBhbmQgaXRz
IGNoaWxkcmVuLCBjbGlwcGVkIGJ5ICh4fHl8d3xoKS4KICAgICAgKiAodHh8dHkpIGlzIHRoZSBj
YWxjdWxhdGVkIHBvc2l0aW9uIG9mIHRoZSBwYXJlbnQKICAgICAgKi8KKyAgICAvLyBGSVhNRTog
VGhpcyBiZWxvbmdzIGluIGl0cyBvd24gaGVhZGVyIHNvIHRoYXQgb3RoZXIgaGVhZGVycyBjYW4g
aW5jbHVkZQorICAgIC8vIGl0IHdpdGhvdXQgYnJpbmdpbmcgaW4gYWxsIG9mIFJlbmRlck9iamVj
dC5oCiAgICAgc3RydWN0IFBhaW50SW5mbyB7CiAgICAgICAgIFBhaW50SW5mbyhHcmFwaGljc0Nv
bnRleHQqIG5ld0NvbnRleHQsIGNvbnN0IEludFJlY3QmIG5ld1JlY3QsIFBhaW50UGhhc2UgbmV3
UGhhc2UsIGJvb2wgbmV3Rm9yY2VCbGFja1RleHQsCiAgICAgICAgICAgICAgICAgICBSZW5kZXJP
YmplY3QqIG5ld1BhaW50aW5nUm9vdCwgTGlzdEhhc2hTZXQ8UmVuZGVySW5saW5lKj4qIG5ld091
dGxpbmVPYmplY3RzLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVz
b3VyY2VDb250YWluZXIuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlQ29u
dGFpbmVyLmgKaW5kZXggYjYzNTc1ZDA2OTlkNGM1OTQwZWY0MDg1NjlkYmYzYzAxYWI3MDJhMi4u
ZjNlNjlkMTMzNjJlZjg1Nzg2OWRiMTg1ODYzZTc0NTM3NjZjMmQwNyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oCkBAIC0yNCwxMiArMjQsMTQg
QEAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlJlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5o
IgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxl
bWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlclNWR1Jlc291cmNl
Q29udGFpbmVyIDogcHVibGljIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFJlbmRlclNWR1Jlc291cmNlIHsKIHB1Ymxp
YzoKKyAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYWxsIG1vdmUgdG8gYSAuY3BwIGZpbGUgdG8g
YXZvaWQgc28gbWFueSBoZWFkZXIgaW5jbHVkZXMuCiAgICAgUmVuZGVyU1ZHUmVzb3VyY2VDb250
YWluZXIoU1ZHU3R5bGVkRWxlbWVudCogbm9kZSkKICAgICAgICAgOiBSZW5kZXJTVkdIaWRkZW5D
b250YWluZXIobm9kZSkKICAgICAgICAgLCBSZW5kZXJTVkdSZXNvdXJjZSgpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuY3BwIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VTb2xpZENvbG9yLmNwcAppbmRleCA5ZDM0
ZDc5NWE3YjhjMzM2YTQ1MDI5NjUwNDY0MTg3M2M0YjE4ZDIxLi4zYjc1YjZhN2Y3MGNhNGVjNGJj
ODdiNjAyMGYwMmU3ZGQzNDU5YmM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNWR1Jlc291cmNlU29saWRDb2xvci5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuaCIKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3Vw
cG9ydC5oIgogCiAjaWYgUExBVEZPUk0oU0tJQSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVy
aW5nL1NWR1JlbmRlclN1cHBvcnQuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRlclN1cHBv
cnQuaAppbmRleCBlOTYxYzczNjZmMzliMDczZmE0NTg1NzA2NjE1NjM3MTllOTZiM2QzLi4zZDZh
ZmYzODc1ZjU2MThlNWVhMGU3N2I1OGFkNDljYTNkYWNkODgyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3JlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvU1ZH
UmVuZGVyU3VwcG9ydC5oCkBAIC0yNSwxMCArMjUsOSBAQAogI2RlZmluZSBTVkdSZW5kZXJCYXNl
X2gKIAogI2lmIEVOQUJMRShTVkcpCisKICNpbmNsdWRlICJEYXNoQXJyYXkuaCIKLSNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKLSNpbmNsdWRlICJTVkdFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZH
U3R5bGVkRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIiAvLyBGb3IgUmVuZGVy
T2JqZWN0OjpQYWludEluZm8KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5oIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2ZXMuaAppbmRleCA5Y2JkZWFlYzkzODI1OTY5NWIx
ZDNhYmUzNGYyZDc2M2Q0NDBhMDE5Li5mNmM0NDRlYTkzMWU3OTU2NDNiMTc2NjY3ZTJmMWVkY2Fl
MzMxZWQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0
aXZlcy5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmgK
QEAgLTMxLDYgKzMxLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisvLyBGSVhNRTogSWYg
dGhpcyBjb25zdHJ1Y3RvciB3YXMgcHVzaGVkIGludG8gYSAuY3BwIGZpbGUgd2Ugd291bGQgbm90
CisvLyBuZWVkIHRvIGluY2x1ZGUgQXRvbWljU3RyaW5nSW1wbC5oCiBzdHJ1Y3QgQ291bnRlckRp
cmVjdGl2ZXMgewogICAgIENvdW50ZXJEaXJlY3RpdmVzKCkKICAgICAgICAgOiBtX3Jlc2V0KGZh
bHNlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yRGF0YS5oIGIv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yRGF0YS5oCmluZGV4IDIzNDFlNzE5MDFkMGU1
MGFiZjMzNTI5MGUxMDEyOWQ0ZmEwOGMwNzguLjNmMWYxZThjZGQxODMwZDY2OTAyNTgwYzc0NGY4
MGViNTdmMGYxMjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0N1cnNvckRh
dGEuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9DdXJzb3JEYXRhLmgKQEAgLTMzLDYg
KzMzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDdXJzb3JEYXRhIHsKIHB1Ymxp
YzoKKyAgICAvLyBGSVhNRTogSWYgQ3Vyc29yRGF0YSgpIG1vdmVkIHRvIGEgLmNwcCBmaWxlIHdl
IHdvdWxkIG5vdCBuZWVkIHRvCisgICAgLy8gaW5jbHVkZSBDYWNoZWRJbWFnZS5oIGluIHRoaXMg
aGVhZGVyLgogICAgIEN1cnNvckRhdGEoQ2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRQb2lu
dCYgaG90U3BvdCkKICAgICAgICAgOiBtX2ltYWdlKGltYWdlKQogICAgICAgICAsIG1faG90U3Bv
dChob3RTcG90KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMTg5YmVj
ZmRiMDBjZGYwNThjZmY1NzE3MTYyYmY1OTQ3NWM1OWM5Mi4uMGZmZjg0MzFlNDZlZTU1NzBiMDNh
YzA4OGE4MTFmOTY3ZjVmNmNmMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CkBAIC0yNSw3ICsyNSw2IEBACiAjaWZuZGVmIFJlbmRlclN0eWxlX2gKICNkZWZpbmUgUmVuZGVy
U3R5bGVfaAogCi0jaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJB
bmltYXRpb25MaXN0LmgiCiAjaW5jbHVkZSAiQm9yZGVyRGF0YS5oIgogI2luY2x1ZGUgIkJvcmRl
clZhbHVlLmgiCkBAIC0xMDE0LDYgKzEwMTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJhcmVOb25J
bmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX3RyYW5zaXRpb25zLmNsZWFyKCk7CiAgICAgfQogCisg
ICAgLy8gRklYTUU6IERvZXMgdGhpcyByZWFsbHkgbmVlZCB0byBiZSBpbmxpbmUsIGZvcmNpbmcg
dXMgdG8gaW5jbHVkZSBBbmltYXRpb25MaXN0Lmg/CiAgICAgdm9pZCBpbmhlcml0QW5pbWF0aW9u
cyhjb25zdCBBbmltYXRpb25MaXN0KiBwYXJlbnQpIHsgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNj
ZXNzKCktPm1fYW5pbWF0aW9ucy5zZXQocGFyZW50ID8gbmV3IEFuaW1hdGlvbkxpc3QoKnBhcmVu
dCkgOiAwKTsgfQogICAgIHZvaWQgaW5oZXJpdFRyYW5zaXRpb25zKGNvbnN0IEFuaW1hdGlvbkxp
c3QqIHBhcmVudCkgeyByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFuc2l0aW9u
cy5zZXQocGFyZW50ID8gbmV3IEFuaW1hdGlvbkxpc3QoKnBhcmVudCkgOiAwKTsgfQogICAgIHZv
aWQgYWRqdXN0QW5pbWF0aW9ucygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU1ZHUmVuZGVyU3R5bGUuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0
eWxlLmgKaW5kZXggNDg0ODIyODA2YWNhNmZhMWNlMWVkZjViZjQ1NmRiNzc2OTAzZTBlYi4uY2Zk
YmYwNDAzNjgzZmE5ZTBkYzY1MzcyMzU3MmQ1MjFiYzQ5YjdjMSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaAorKysgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiQ1NT
VmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiRGF0YVJlZi5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlw
ZXMuaCIKLSNpbmNsdWRlICJQYXRoLmgiCisjaW5jbHVkZSAiUGF0aC5oIiAvLyBGb3IgV2luZFJ1
bGUKICNpbmNsdWRlICJTVkdQYWludC5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlRGVmcy5o
IgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmggYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmgKaW5kZXggZDZmZTk2ZWE0MTc0MWIyZmE5ZTNmMzYxZTc1NjY4NjhlNDI0NDE5OS4u
Njc5ZWRjZDE5YWM4NjAzOGRhZWIwMjIzZjgwYjM5MjY5MjYzYmYxYyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMjYs
MTIgKzI2LDEwIEBACiAjZGVmaW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGFfaAogCiAjaW5j
bHVkZSAiQ291bnRlckRpcmVjdGl2ZXMuaCIKLSNpbmNsdWRlICJDdXJzb3JEYXRhLmgiCiAjaW5j
bHVkZSAiRGF0YVJlZi5oIgogI2luY2x1ZGUgIkZpbGxMYXllci5oIgogI2luY2x1ZGUgIkxpbmVD
bGFtcFZhbHVlLmgiCiAjaW5jbHVkZSAiTmluZVBpZWNlSW1hZ2UuaCIKLSNpbmNsdWRlICJTdHls
ZVRyYW5zZm9ybURhdGEuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmggYi9XZWJDb3JlL3N2Zy9TVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgKaW5kZXggOTcxYzY1Y2JiNTdiZWUyOTNlMGUzNTQ2
NzdjZDM4NzJlMjA0OWY1Mi4uOThkNDI4NWQ5YTM0YjU2ODVlMTYzNjliMWIyM2RkZWY2M2RlZmI2
MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5o
CisrKyBiL1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaApAQCAtMjIs
MTIgKzIyLDEyIEBACiAjZGVmaW5lIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRfaAogCiAj
aWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHTmFt
ZXMuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5VHJhaXRzLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEF0dHJpYnV0ZTsKKyAgICBjbGFzcyBRdWFsaWZpZWRO
YW1lOwogCiAgICAgLy8gTm90ZXMgb24gYSBTVkcgMS4xIHNwZWMgZGlzY3JlcGFuY3k6CiAgICAg
Ly8gVGhlIFNWRyBET00gZGVmaW5lcyB0aGUgYXR0cmlidXRlIGV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQgYXMgYmVpbmcgb2YgdHlwZSBTVkdBbmltYXRlZEJvb2xlYW4sIHdoZXJlYXMgdGhlIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58213</attachid>
            <date>2010-06-08 22:44:43 -0700</date>
            <delta_ts>2010-06-09 16:04:47 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-40350-20100608224442.patch</filename>
            <type>text/plain</type>
            <size>43001</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBlYzA1NWQzMjU0ZjVlY2JkMjkwY2Y2MTRlYTQ2MTgwMjVjZWZmYWI2Li5h
ZTE2ZWZjYjQwZTVhMGY4NTI0YzUwMGM4MTQ5NzNjNjYxNjc4YjY5IDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMTAtMDYtMDggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgQXR0ZW1wdCB0byBz
cGVlZCB1cCBidWlsZHMgYnkgcmVkdWNpbmcgaGVhZGVyIGRlcGVuZGVuY2llcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNTAKKworICAgICAgICBU
aGVyZSBhcmUgNCB0eXBlcyBvZiBjaGFuZ2VzIGluIHRoaXMgcGF0Y2g6CisgICAgICAgIC0gUmVt
b3ZpbmcgdW51c2VkIGhlYWRlcnMuCisgICAgICAgIC0gTW92aW5nIGZ1bmN0aW9ucyBvdXQgb2Yg
aGVhZGVycyBpbnRvIC5jcHAgZmlsZXMKKyAgICAgICAgICAoaW4gY2FzZXMgd2hlcmUgdGhlcmUg
aXMgbm8gcGVyZi1pbXBhY3QgYW5kIGRvaW5nCisgICAgICAgICAgIHNvIGFsbG93cyB1cyB0byBy
ZW1vdmUgYSBoZWFkZXIgaW5jbHVkZSkuCisgICAgICAgIC0gQWRkaW5nIEZJWE1FcyBhYm91dCBj
b2RlIHdoaWNoIHNob3VsZCBiZSBzcGxpdCBpbnRvCisgICAgICAgICAgaXRzIG93biBoZWFkZXIu
CisgICAgICAgIC0gUmVtb3ZpbmcgdW4tbmVlZGVkIGFyZ3VtZW50IG5hbWVzIHdoZW4gZW5jb3Vu
dGVyZWQuCisKKyAgICAgICAgTm8gdGVzdHMsIGFzIHRoaXMgZG9lcyBub3QgY2hhbmdlIGZ1bmN0
aW9uYWxpdHkuCisKKyAgICAgICAgKiBydW50aW1lL0NvbGxlY3Rvci5oOgorICAgICAgICAqIHJ1
bnRpbWUvQ29tcGxldGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSWRlbnRpZmllci5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTTnVt
YmVyQ2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50
aW1lL1Byb3BlcnR5U2xvdC5oOgorCiAyMDEwLTA2LTA4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
NjA4MzAuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbGxlY3Rvci5oIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3IuaAppbmRleCAzNGUyMzhjODYzODUzZDY0
OGM1NTRmODNmMDZkYjU3YjMyYmMzNzQ3Li4yNGY4YTAzZjM5YjNkZmJhNzNjMjdmNTVkNjJlMGMy
MjMzNWIwZDExIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbGxlY3Rvci5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9yLmgKQEAgLTI3LDcgKzI3LDYg
QEAKICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uaCBi
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCmluZGV4IDYzYjMxNWUxOGY2Mzlk
ZDg0ZjVlYmNhOGE1ZGVhMDc3ZjQzMmUzMjAuLjJhZWQxNzhhMDdhNTJmYmVjNjkxOTY1NGI0NjFk
ZmIxOTAxZjYxY2IgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlv
bi5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oCkBAIC0zMSw2ICsz
MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIFNjb3BlQ2hhaW47CiAgICAgY2xhc3Mg
U291cmNlQ29kZTsKIAorICAgIC8vIEZJWE1FOiBUaGlzIGlzIHVzZWQgYnkgb3RoZXIgaGVhZGVy
cyBhbmQgc2hvdWxkIHByb2JhYmx5IGJlIGluIGl0cyBvd24gaGVhZGVyLgogICAgIGVudW0gQ29t
cGxUeXBlIHsgTm9ybWFsLCBCcmVhaywgQ29udGludWUsIFJldHVyblZhbHVlLCBUaHJvdywgSW50
ZXJydXB0ZWQsIFRlcm1pbmF0ZWQgfTsKIAogICAgIC8qCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRp
Zmllci5oCmluZGV4IDJkYjA3MTY4ZWViZWM1YzEwYTk4NWRmMTgwZjljOTdiZWY3OTAwYzMuLjM3
ODliN2YzOTE0ZThkZmY0NmFjMjAyOWNiMDY5OGMwNDJlNTc1ZGEgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSWRlbnRpZmllci5oCkBAIC0yMSwxMyArMjEsMTIgQEAKICNpZm5kZWYgSWRlbnRpZmllcl9o
CiAjZGVmaW5lIElkZW50aWZpZXJfaAogCi0jaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCi0jaW5j
bHVkZSAiVGhyZWFkU3BlY2lmaWMuaCIKICNpbmNsdWRlICJVU3RyaW5nLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgY2xhc3MgRXhlY1N0YXRlOworICAgIGNsYXNzIElkZW50aWZpZXJUYWJs
ZTsKIAogICAgIGNsYXNzIElkZW50aWZpZXIgewogICAgICAgICBmcmllbmQgY2xhc3MgU3RydWN0
dXJlOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
IGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDA5YTkyYTE1
NDZmZDJlNjZlZjE1MDg0ZjI2NzU3MjczZDQzYmY2YjcuLjU5YTI4MDY0OWE0NjgxMTJlNjkxMzQ5
NDAxM2E2YTc2ZWVhNjJkOWMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmgKQEAgLTIyLDYgKzIyLDcgQEAKICNpZm5kZWYgSlNHbG9iYWxPYmplY3RfaAogI2RlZmluZSBK
U0dsb2JhbE9iamVjdF9oCiAKKyNpbmNsdWRlICJBcmdMaXN0LmgiIC8vIFVzZWQgYnkgY29uc3Ry
dWN0QXJyYXkKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgi
CiAjaW5jbHVkZSAiSlNWYXJpYWJsZU9iamVjdC5oIgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU051bWJlckNlbGwuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOdW1i
ZXJDZWxsLmgKaW5kZXggY2RkMmQ4Y2E1YTQ4NmU5OTJkODhkMTY4MzJmMDY1MWFhZGYxYTkzYy4u
MzM2ODdiMzM5Y2M5NmNjYWZmNzU5N2JlNDk5YTE3YmZhZTVkMzMzZSAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU051bWJlckNlbGwuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTnVtYmVyQ2VsbC5oCkBAIC0yMywxMSArMjMsOCBAQAogI2lmbmRlZiBKU051bWJl
ckNlbGxfaAogI2RlZmluZSBKU051bWJlckNlbGxfaAogCi0jaW5jbHVkZSAiQ2FsbEZyYW1lLmgi
CiAjaW5jbHVkZSAiSlNDZWxsLmgiCiAjaW5jbHVkZSAiSlNJbW1lZGlhdGUuaCIKLSNpbmNsdWRl
ICJDb2xsZWN0b3IuaCIKLSNpbmNsdWRlICJVU3RyaW5nLmgiCiAjaW5jbHVkZSA8c3RkZGVmLmg+
IC8vIGZvciBzaXplX3QKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zOSw3ICszNiw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIEpTVmFsdWUganNOdW1iZXJDZWxsKEV4ZWNTdGF0ZSosIGRvdWJsZSk7
CiAKICAgICBjbGFzcyBJZGVudGlmaWVyOwotICAgIGNsYXNzIEpTQ2VsbDsKICAgICBjbGFzcyBK
U09iamVjdDsKICAgICBjbGFzcyBKU1N0cmluZzsKICAgICBjbGFzcyBQcm9wZXJ0eVNsb3Q7CmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggZWRkMzc2Yzg2NDA4YmUwMWQxN2QxOWQwMzc2
YTNhM2Q4NDIwNjgwNi4uODA0M2NhNjkwMjRkZDQ3MjNlNzcxYjc0ZGFmNGYyM2QzNGI2YzI2NCAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMjMsMjAgKzIzLDE2IEBACiAjaWZuZGVm
IEpTT2JqZWN0X2gKICNkZWZpbmUgSlNPYmplY3RfaAogCi0jaW5jbHVkZSAiQXJnTGlzdC5oIgot
I2luY2x1ZGUgIkNsYXNzSW5mby5oIgorI2luY2x1ZGUgIkNsYXNzSW5mby5oIiAvLyBVc2VkIGJ5
IEpTQ2VsbDo6aW5oZXJpdHMKKyNpbmNsdWRlICJDb21wbGV0aW9uLmgiIC8vIEZvciBDb21wbFR5
cGUKICNpbmNsdWRlICJDb21tb25JZGVudGlmaWVycy5oIgotI2luY2x1ZGUgIkNvbXBsZXRpb24u
aCIKLSNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIKLSNpbmNsdWRl
ICJKU051bWJlckNlbGwuaCIKLSNpbmNsdWRlICJNYXJrU3RhY2suaCIKLSNpbmNsdWRlICJQcm9w
ZXJ0eVNsb3QuaCIKLSNpbmNsdWRlICJQdXRQcm9wZXJ0eVNsb3QuaCIKLSNpbmNsdWRlICJTY29w
ZUNoYWluLmgiCisjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiIC8vIFVzZWQgYnkgZ2V0SlNGdW5j
dGlvbgorI2luY2x1ZGUgIkpTU3RyaW5nLmgiIC8vIFVzZWQgYnkgSlNWYWx1ZTo6dG9UaGlzU3Ry
aW5nCisjaW5jbHVkZSAiTWFya1N0YWNrLmgiIC8vIFVzZWQgYnkgSlNPYmplY3Q6Om1hcmtDaGls
ZHJlbkRpcmVjdAorI2luY2x1ZGUgIlByb3BlcnR5U2xvdC5oIiAvLyBVc2VkIGJ5IEpTT2JqZWN0
OjppbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QKKyNpbmNsdWRlICJQdXRQcm9wZXJ0eVNsb3QuaCIg
Ly8gVXNlZCBieSBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwKICNpbmNsdWRlICJTdHJ1Y3R1
cmUuaCIKLSNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKLSNpbmNsdWRlICJKU1N0cmluZy5oIgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC03NCwx
MyArNzAsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBCYXRjaGVk
VHJhbnNpdGlvbk9wdGltaXplcjsKICAgICAgICAgZnJpZW5kIGNsYXNzIEpJVDsKICAgICAgICAg
ZnJpZW5kIGNsYXNzIEpTQ2VsbDsKLSAgICAgICAgZnJpZW5kIHZvaWQgc2V0VXBTdGF0aWNGdW5j
dGlvblNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBIYXNoRW50cnkqIGVudHJ5LCBKU09iamVj
dCogdGhpc09iaiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpOworICAgICAgICBmcmllbmQgdm9pZCBzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEhhc2hFbnRyeSogZW50cnksIEpTT2JqZWN0KiB0aGlzT2JqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogCiAgICAgcHVi
bGljOgogICAgICAgICBleHBsaWNpdCBKU09iamVjdChOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+KTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgbWFya0NoaWxkcmVuKE1hcmtTdGFjayYpOwot
ICAgICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgbWFya0NoaWxkcmVuRGlyZWN0KE1hcmtTdGFjayYg
bWFya1N0YWNrKTsKKyAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIG1hcmtDaGlsZHJlbkRpcmVj
dChNYXJrU3RhY2smKTsKIAogICAgICAgICAvLyBUaGUgaW5saW5lIHZpcnR1YWwgZGVzdHJ1Y3Rv
ciBjYW5ub3QgYmUgdGhlIGZpcnN0IHZpcnR1YWwgZnVuY3Rpb24gZGVjbGFyZWQKICAgICAgICAg
Ly8gaW4gdGhlIGNsYXNzIGFzIGl0IHJlc3VsdHMgaW4gdGhlIHZ0YWJsZSBiZWluZyBnZW5lcmF0
ZWQgYXMgYSB3ZWFrIHN5bWJvbApAQCAtMTc1LDExICsxNzEsMTEgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIGJvb2wgaGFzQ3VzdG9tUHJvcGVydGllcygpIHsgcmV0dXJuICFtX3N0cnVjdHVy
ZS0+aXNFbXB0eSgpOyB9CiAgICAgICAgIGJvb2wgaGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcygp
IHsgcmV0dXJuIG1fc3RydWN0dXJlLT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCk7IH0KIAot
ICAgICAgICB2b2lkIHB1dERpcmVjdChjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHIsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJvcGVy
dHlTbG90JiBzbG90KTsKKyAgICAgICAgdm9pZCBwdXREaXJlY3QoY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyLCBib29sIGNoZWNrUmVh
ZE9ubHksIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2b2lkIHB1dERpcmVjdChjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHIgPSAw
KTsKIAogICAgICAgICB2b2lkIHB1dERpcmVjdEZ1bmN0aW9uKGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDZWxsKiB2YWx1ZSwgdW5zaWduZWQgYXR0ciA9IDApOwotICAgICAgICB2
b2lkIHB1dERpcmVjdEZ1bmN0aW9uKGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlND
ZWxsKiB2YWx1ZSwgdW5zaWduZWQgYXR0ciwgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9wZXJ0
eVNsb3QmIHNsb3QpOworICAgICAgICB2b2lkIHB1dERpcmVjdEZ1bmN0aW9uKGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDZWxsKiB2YWx1ZSwgdW5zaWduZWQgYXR0ciwgYm9vbCBj
aGVja1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdm9pZCBwdXREaXJlY3RG
dW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEludGVybmFsRnVuY3Rpb24qIGZ1bmN0aW9uLCB1bnNp
Z25lZCBhdHRyID0gMCk7CiAgICAgICAgIHZvaWQgcHV0RGlyZWN0RnVuY3Rpb24oRXhlY1N0YXRl
KiBleGVjLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbiwgdW5zaWduZWQgYXR0ciA9IDApOwogCkBAIC0y
NjQsOCArMjYwLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxKU1ZhbHVlKj4oJnByb3BlcnR5U3RvcmFnZSgpW29mZnNldF0pOwogICAgICAg
ICB9CiAKLSAgICAgICAgdm9pZCBwdXREaXJlY3RJbnRlcm5hbChjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHIsIGJvb2wgY2hlY2tSZWFk
T25seSwgUHV0UHJvcGVydHlTbG90JiBzbG90LCBKU0NlbGwqKTsKLSAgICAgICAgdm9pZCBwdXRE
aXJlY3RJbnRlcm5hbChKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHIsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KTsKKyAgICAgICAgdm9pZCBwdXREaXJlY3RJbnRlcm5hbChjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHIs
IGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJvcGVydHlTbG90JiwgSlNDZWxsKik7CisgICAgICAg
IHZvaWQgcHV0RGlyZWN0SW50ZXJuYWwoSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyLCBib29sIGNoZWNrUmVh
ZE9ubHksIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2b2lkIHB1dERpcmVjdEludGVybmFs
KEpTR2xvYmFsRGF0YSYsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgdW5zaWduZWQgYXR0ciA9IDApOwogCiAgICAgICAgIGJvb2wgaW5saW5lR2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
U2xvdC5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAppbmRleCBkZTlk
ZGM5OTgyMmE2MzNmMDI0ZTk2MzYyMTg4ZDlkNWM0YWI2YmMwLi42MGI1NThjMGQ2ZGNiNDZjZWFk
ZmRiMTdmOWM1OGJlNWEwZDg3NjdhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3BlcnR5U2xvdC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90
LmgKQEAgLTIzLDkgKzIzLDggQEAKIAogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJKU1ZhbHVlLmgiCi0jaW5jbHVkZSAiUmVnaXN0ZXIuaCIKKyNpbmNsdWRlICJSZWdpc3Rlci5o
IiAvLyBVc2VkIGJ5IGdldFZhbHVlCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNs
dWRlIDx3dGYvTm90Rm91bmQuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU1MGQ0NjRhNmIwNGI2
MTQ5ZmY5NDk2YmQzYTFjNjUyMGIyZjJjOS4uODg5NzIxMTM0ZDRhNDRiMGMwMGUxZDAyZDg5MTI1
MTg4ODI3MzRkZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBAQAorMjAxMC0wNi0wOCAgRXJpYyBTZWlkZWwgIDxlcmlj
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAg
ICBBdHRlbXB0IHRvIHNwZWVkIHVwIGJ1aWxkcyBieSByZWR1Y2luZyBoZWFkZXIgZGVwZW5kZW5j
aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM1
MAorCisgICAgICAgIFRoZXJlIGFyZSA0IHR5cGVzIG9mIGNoYW5nZXMgaW4gdGhpcyBwYXRjaDoK
KyAgICAgICAgLSBSZW1vdmluZyB1bnVzZWQgaGVhZGVycy4KKyAgICAgICAgLSBNb3ZpbmcgZnVu
Y3Rpb25zIG91dCBvZiBoZWFkZXJzIGludG8gLmNwcCBmaWxlcworICAgICAgICAgIChpbiBjYXNl
cyB3aGVyZSB0aGVyZSBpcyBubyBwZXJmLWltcGFjdCBhbmQgZG9pbmcKKyAgICAgICAgICAgc28g
YWxsb3dzIHVzIHRvIHJlbW92ZSBhIGhlYWRlciBpbmNsdWRlKS4KKyAgICAgICAgLSBBZGRpbmcg
RklYTUVzIGFib3V0IGNvZGUgd2hpY2ggc2hvdWxkIGJlIHNwbGl0IGludG8KKyAgICAgICAgICBp
dHMgb3duIGhlYWRlci4KKyAgICAgICAgLSBSZW1vdmluZyB1bi1uZWVkZWQgYXJndW1lbnQgbmFt
ZXMgd2hlbiBlbmNvdW50ZXJlZC4KKworICAgICAgICBObyB0ZXN0cywgYXMgdGhpcyBkb2VzIG5v
dCBjaGFuZ2UgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojpib3VuZGluZ0JveFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVj
dDo6ZG9BWEJvdW5kc0ZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmJvdW5kc0ZvclZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ET01X
cmFwcGVyV29ybGQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQ6OmRvY3VtZW50KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RlYnVnV3JhcHBlclNldC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSGlzdG9y
eUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHA6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBjc3MvQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
aDoKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5oOgorICAgICAgICAqIGRvbS9FbGVtZW50
Lmg6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5o
OgorICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpc2libGVQb3NpdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudCk6CisgICAgICAgICogZWRp
dGluZy9WaXNpYmxlUG9zaXRpb24uaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NT
U3RvcmUuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRMaXN0ZW5lckluZm86OkV2ZW50TGlzdGVuZXJJbmZvKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKiBsb2FkZXIv
Q2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OmNhblJlbmRl
cik6CisgICAgICAgICogbG9hZGVyL0NhY2hlZEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxi
YWNrTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RmFsbGJhY2tMaXN0Ojp+Rm9udEZh
bGxiYWNrTGlzdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlz
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGguaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWlu
ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VTb2xpZENvbG9yLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9DdXJzb3JEYXRhLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oOgorCiAyMDEwLTA2LTA4ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByNjA4NTkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuYmFz
ZS5leHAgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKaW5kZXggMjk3MDRmYjQ1NDk4MzYwNWYy
NzNjYzFhNmQ1NzUzOTU1MDRhNTYxZi4uNzk0NTE5NDNmMGI4YzBkNTc0NDlhMzE4MmU3Y2RjNjdl
NzFhZDk0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS5iYXNlLmV4cApAQCAtMzc0LDYgKzM3NCw3IEBAIF9fWk43V2ViQ29yZTE1Vmlz
aWJsZVBvc2l0aW9uQzFFUE5TXzROb2RlRWlOU185RUFmZmluaXR5RQogX19aTjdXZWJDb3JlMTVW
aXNpYmxlUG9zaXRpb25DMUVSS05TXzhQb3NpdGlvbkVOU185RUFmZmluaXR5RQogX19aTjdXZWJD
b3JlMTVyZXBvcnRFeGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFCiBfX1pO
N1dlYkNvcmUxNkZvbnRGYWxsYmFja0xpc3QxNXJlbGVhc2VGb250RGF0YUV2CitfX1pON1dlYkNv
cmUxNkZvbnRGYWxsYmFja0xpc3REMUV2CiBfX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFD
MUVQNk5TRm9udGJiCiBfX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFEMUV2CiBfX1pON1dl
YkNvcmUxNkxlZ2FjeVdlYkFyY2hpdmUxOWNyZWF0ZUZyb21TZWxlY3Rpb25FUE5TXzVGcmFtZUUK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA4
ZGVkYzM2ZDJmZTAzOWUwYWFhNGQ1MTk1MDY4NDk3NTZiZDdkMTNmLi5iMjIyMjhjMDI0ZmU5NDhh
OWUwM2Y3NzBjNTE2ODFmNGJkYzU1NjcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0xMzEsNiArMTMxLDEyIEBAIGJvb2wgQWNjZXNzaWJp
bGl0eU9iamVjdDo6aXNBUklBQ29udHJvbChBY2Nlc3NpYmlsaXR5Um9sZSBhcmlhUm9sZSkKICAg
ICB8fCBhcmlhUm9sZSA9PSBDb21ib0JveFJvbGUgfHwgYXJpYVJvbGUgPT0gU2xpZGVyUm9sZTsg
CiB9CiAKKy8vIE1vdmVkIGZyb20gdGhlIGhlYWRlciB0byBhdm9pZCBpbmNsdWRpbmcgSW50UmVj
dC5oCitJbnRSZWN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmJvdW5kaW5nQm94UmVjdCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIEludFJlY3QoKTsKK30KKwogSW50UG9pbnQgQWNjZXNzaWJpbGl0eU9i
amVjdDo6Y2xpY2tQb2ludCgpIGNvbnN0CiB7CiAgICAgSW50UmVjdCByZWN0ID0gZWxlbWVudFJl
Y3QoKTsKQEAgLTQxNSw3ICs0MjEsMTMgQEAgUmVuZGVyTGlzdEl0ZW0qIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OnJlbmRlckxpc3RJdGVtQ29udGFpbmVyRm9yTm9kZShOb2RlKiBub2RlKQogICAgIAog
ICAgIHJldHVybiAwOwogfQotICAgIAorCisvLyBNb3ZlZCBmcm9tIEFjY2Vzc2liaWxpdHlPYmpl
Y3QuaCB0byBwcmV2ZW50IGluY2x1ZGluZyBJbnRSZWN0LmgKK0ludFJlY3QgQWNjZXNzaWJpbGl0
eU9iamVjdDo6ZG9BWEJvdW5kc0ZvclJhbmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJikgY29uc3QK
K3sKKyAgICByZXR1cm4gSW50UmVjdCgpOworfQorCiAvLyBSZXR1cm5zIHRoZSB0ZXh0IGFzc29j
aWF0ZWQgd2l0aCBhIGxpc3QgbWFya2VyIGlmIHRoaXMgbm9kZSBpcyBjb250YWluZWQgd2l0aGlu
IGEgbGlzdCBpdGVtLgogU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omxpc3RNYXJrZXJUZXh0
Rm9yTm9kZUFuZFBvc2l0aW9uKE5vZGUqIG5vZGUsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgdmlz
aWJsZVBvc2l0aW9uU3RhcnQpIGNvbnN0CiB7CkBAIC00NzYsNiArNDg4LDEyIEBAIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBW
aXNpYmxlUG9zaXRpb25SCiAgICAgcmV0dXJuIFN0cmluZzo6YWRvcHQocmVzdWx0VmVjdG9yKTsK
IH0KIAorLy8gTW92ZWQgZnJvbSBBY2Nlc3NpYmlsaXR5T2JqZWN0LmggdG8gcHJldmVudCBpbmNs
dWRpbmcgSW50UmVjdC5oCitJbnRSZWN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmJvdW5kc0ZvclZp
c2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3QKK3sK
KyAgICByZXR1cm4gSW50UmVjdCgpOworfQorCiBpbnQgQWNjZXNzaWJpbGl0eU9iamVjdDo6bGVu
Z3RoRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHZp
c2libGVQb3NpdGlvblJhbmdlKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBNdWx0aS1ieXRlIHN1
cHBvcnQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmggYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4
IDhiNDkyM2E3YjQxMzI0YjBjYmE5MDE4OTVhNGUzM2ZlZjU0MGVmNzQuLmExZTk0MGFkMWE0NjU1
MDkwNDU3OTdjZjYyYjA5NDk4MjQ0YmY3MGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMzAsNyArMzAsNiBAQAogI2lmbmRlZiBBY2Nlc3NpYmls
aXR5T2JqZWN0X2gKICNkZWZpbmUgQWNjZXNzaWJpbGl0eU9iamVjdF9oCiAKLSNpbmNsdWRlICJJ
bnRSZWN0LmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24u
aCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCkBAIC0zOTIsNyArMzkxLDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhbmNob3JFbGVtZW50Rm9yTm9k
ZShOb2RlKik7CiAgICAgdmlydHVhbCBFbGVtZW50KiBhbmNob3JFbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgRWxlbWVudCogYWN0aW9uRWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIEludFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Qg
eyByZXR1cm4gSW50UmVjdCgpOyB9CisgICAgdmlydHVhbCBJbnRSZWN0IGJvdW5kaW5nQm94UmVj
dCgpIGNvbnN0OwogICAgIHZpcnR1YWwgSW50UmVjdCBlbGVtZW50UmVjdCgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIEludFNpemUgc2l6ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFBv
aW50IGNsaWNrUG9pbnQoKSBjb25zdDsKQEAgLTQ2Niw3ICs0NjUsNyBAQCBwdWJsaWM6CiAgICAg
VmlzaWJsZVBvc2l0aW9uUmFuZ2UgdmlzaWJsZVBvc2l0aW9uUmFuZ2VGb3JSYW5nZShjb25zdCBQ
bGFpblRleHRSYW5nZSYpIGNvbnN0OwogCiAgICAgU3RyaW5nIHN0cmluZ0ZvclZpc2libGVQb3Np
dGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3Q7Ci0gICAgdmlydHVh
bCBJbnRSZWN0IGJvdW5kc0ZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3Np
dGlvblJhbmdlJikgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9CisgICAgdmlydHVhbCBJbnRS
ZWN0IGJvdW5kc0ZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJh
bmdlJikgY29uc3Q7CiAgICAgaW50IGxlbmd0aEZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0
IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVj
dGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmKSBjb25z
dCB7IH0KIApAQCAtNDk3LDcgKzQ5Niw3IEBAIHB1YmxpYzoKICAgICBQbGFpblRleHRSYW5nZSBk
b0FYU3R5bGVSYW5nZUZvckluZGV4KHVuc2lnbmVkKSBjb25zdDsKIAogICAgIHZpcnR1YWwgU3Ry
aW5nIGRvQVhTdHJpbmdGb3JSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYpIGNvbnN0IHsgcmV0
dXJuIFN0cmluZygpOyB9Ci0gICAgdmlydHVhbCBJbnRSZWN0IGRvQVhCb3VuZHNGb3JSYW5nZShj
b25zdCBQbGFpblRleHRSYW5nZSYpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoKTsgfQorICAgIHZp
cnR1YWwgSW50UmVjdCBkb0FYQm91bmRzRm9yUmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmKSBj
b25zdDsKICAgICBTdHJpbmcgbGlzdE1hcmtlclRleHRGb3JOb2RlQW5kUG9zaXRpb24oTm9kZSos
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0OwogCiAgICAgdW5zaWduZWQgZG9BWExpbmVG
b3JJbmRleCh1bnNpZ25lZCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdy
YXBwZXJXb3JsZC5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaAppbmRl
eCA4MzJjNWUwODYzY2IxN2UwYWY2MjExM2I0ZTkxYjRiYzA1YWI2ZGE1Li44NzE0MTQwNDM3YzZl
MGFjNDE5NjIyNDcxOTEwOTNmYmY0NDE5YzA1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0RPTVdyYXBwZXJXb3JsZC5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NV3JhcHBl
cldvcmxkLmgKQEAgLTMyLDYgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2Ny
aXB0Q29udHJvbGxlcjsKIGNsYXNzIFN0cmluZ0ltcGw7CiAKKy8vIEZJWE1FOiBUaGVzZSBhcmUg
dXNlZCBieSBvdGhlciBoZWFkZXJzIGFuZCBzaG91bGQgYmUgbW92ZWQgdG8gdGhlcmkgb3duIC5o
CiB0eXBlZGVmIEpTQzo6V2Vha0dDTWFwPHZvaWQqLCBET01PYmplY3QqPiBET01PYmplY3RXcmFw
cGVyTWFwOwogdHlwZWRlZiBKU0M6OldlYWtHQ01hcDxTdHJpbmdJbXBsKiwgSlNDOjpKU1N0cmlu
Zyo+IEpTU3RyaW5nQ2FjaGU7IAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKaW5k
ZXggMjdhYzllNDQwNWNkMzQyOWJkZTcyZjAzYTRhODIwODAyNTdjODc4Ny4uYmM3MDYyZTE1ZWFk
ZDdhM2QzZGE1OGYxMGJkZWM5ODM4ODVjMDgxMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmNwcApAQCAtMTE2LDYgKzExNiwxMiBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8RE9NV3Jh
cHBlcldvcmxkKj46Oml0ZXJhdG9yIG1fZW5kOwogfTsKIAorLy8gVGhpcyB3YXMgbW92ZWQgZnJv
bSBKU0RPTUJpbmRpbmcuaCB0byBhdm9pZCBpbmNsdWRpbmcgRG9jdW1lbnQuaAorRG9jdW1lbnQq
IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50Ojpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PERvY3VtZW50Kj4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30K
KwogY29uc3QgSlNDOjpIYXNoVGFibGUqIGdldEhhc2hUYWJsZUZvckdsb2JhbERhdGEoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBKU0M6Okhhc2hUYWJsZSogc3RhdGljVGFibGUpCiB7
CiAgICAgcmV0dXJuIERPTU9iamVjdEhhc2hUYWJsZU1hcDo6bWFwRm9yKGdsb2JhbERhdGEpLmdl
dChzdGF0aWNUYWJsZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCAzZjI1MDJk
NTZjNTM0NzQ2NGI3YzVlYzY4NjYxNjQ0MjVmNTFmMzY1Li4zYTJiNTE2ZjhmZGNkMTlkYzI5MjM0
ZDA1ZDcwNmQzOWZhOGIwYjA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTIy
LDE1ICsyMiw5IEBACiAjaWZuZGVmIEpTRE9NQmluZGluZ19oCiAjZGVmaW5lIEpTRE9NQmluZGlu
Z19oCiAKLSNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIkpTRE9NV3Jh
cHBlci5oIgotI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkRPTVdyYXBw
ZXJXb3JsZC5oIiAvLyBGb3IgSlNTdHJpbmdDYWNoZQorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2Jq
ZWN0LmgiIC8vIFVzZWQgYnkgZ2V0RE9NUHJvdG90eXBlCiAjaW5jbHVkZSAiSlNTVkdDb250ZXh0
Q2FjaGUuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxl
dGlvbi5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvTG9va3VwLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9X
ZWFrR0NNYXAuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNwYWNlIEpT
QyB7CiAgICAgY2xhc3MgSlNHbG9iYWxEYXRhOwpAQCAtMTA1LDEwICs5OSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAvLyBjYW4gbmV2ZXIgYmUgdXNlZCBmcm9tIGEgV29ya2VyQ29udGV4
dC4KICAgICBjbGFzcyBET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudCA6IHB1YmxpYyBET01Db25z
dHJ1Y3Rvck9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQo
KSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RG9jdW1l
bnQqPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgICAgICB9CisgICAgICAgIERvY3Vt
ZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBET01Db25z
dHJ1Y3RvcldpdGhEb2N1bWVudChOb25OdWxsUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gc3Ry
dWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RlYnVnV3JhcHBlclNldC5oIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RlYnVnV3JhcHBlclNldC5oCmluZGV4IDk0YjZmNzhmY2Y0N2JjMjgxOGQxYTM3ZTYwYjdl
ZTEwN2UwZjNkMTcuLmM3NTMyZGQxZmI4YjNhZjU1NzA0YTEwODg2NmNhYjZiMTQxYzk0OTMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZWJ1Z1dyYXBwZXJTZXQuaAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVidWdXcmFwcGVyU2V0LmgKQEAgLTMwLDYgKzMwLDEwIEBA
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
IAorbmFtZXNwYWNlIFdURiB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBUaHJlYWRTcGVj
aWZpYzsKK307CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRm9yIGRlYnVnZ2luZywga2Vl
cCBhIHNldCBvZiB3cmFwcGVycyBjdXJyZW50bHkgY2FjaGVkLCBhbmQgY2hlY2sgdGhhdApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20uY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20uY3BwCmluZGV4IDZhMmY2MTQ0YWJjMTE1NTMw
MzhmMGE1MGMyMDQyYzMwNTdlMTE3ZDEuLjliNTgwNDYzNDg0NjBjYTBkNTNkYmE4NWU5NmI2YjJl
NzE4MzAyYjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9t
LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhpc3RvcnkuaCIKICNp
bmNsdWRlIDxydW50aW1lL0pTRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDxydW50aW1lL0xvb2t1cC5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvUHJvdG90eXBlRnVuY3Rpb24uaD4KIAogdXNpbmcgbmFtZXNw
YWNlIEpTQzsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3Rv
bS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4IDc2
MDA1ZmE1YTk1MTRiYThlNTZjZDg1ZTVmYjUyYmU0NjBjZjMzOTYuLmU5ZTk4ZjkwZGNiMjFiYWYw
Nzc3MDU4MzdjNTlmMDg5NjUwYjkzZTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9u
Q3VzdG9tLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5j
bHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNGdW5jdGlvbi5o
PgorI2luY2x1ZGUgPHJ1bnRpbWUvTG9va3VwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Qcm90b3R5
cGVGdW5jdGlvbi5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1N0b3JhZ2VDdXN0b20uY3BwCmluZGV4IDZhMTI2Yjc2NmFkODg3OWZjYTVkYWM0ZWFhNjMzMWM5
MTU0MGRlZTguLmNhNWUxMjkyZDhhN2JiNGRlMjU5NDJlNTFkNzIzYmU0YTUyZTU1OTMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNp
ZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvTG9va3VwLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Qcm9wZXJ0eU5hbWVB
cnJheS5oPgogI2luY2x1ZGUgIlN0b3JhZ2UuaCIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZTUxZGMwZjVlZWQyZTk5ZWUwNjRhYzM3NDhlNGJi
MTk1Y2NlOWQ2OS4uZGZiM2Y2OThmOTFhOWRiNmIzMGU1NTk1ODY0ZGI2Y2Y1MThiMzE4OSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0xMTkzLDYg
KzExOTMsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgJGltcGxJbmNsdWRl
c3siPHd0Zi9HZXRQdHIuaD4ifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3siPHJ1bnRpbWUvUHJv
cGVydHlOYW1lQXJyYXkuaD4ifSA9IDEgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJI
YXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ikhhc051bWVyaWNJbmRleEdldHRlciJ9OworICAgICRpbXBsSW5jbHVkZXN7IjxydW50aW1lL0xv
b2t1cC5oPiJ9ID0gMTsgIyBOZWVkZWQgZm9yIEhhc2hUYWJsZVZhbHVlCiAKICAgICBBZGRJbmNs
dWRlc0ZvclR5cGUoJGludGVyZmFjZU5hbWUpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9D
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24uaAppbmRleCBmNzc1OWY0NTYyZTA5NWJiMWY0N2E4ZTA3YTk2ZjVhMzFlZWE0
ZTQ1Li5kZDVlNmQyZTQ4Mjg2NzlmZWRkOGM3MmExNTY2ZTkyNmZlOWRmMmQ2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1dlYkNvcmUv
Y3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgKQEAgLTIxLDkgKzIxLDkgQEAKICNpZm5k
ZWYgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25faAogI2RlZmluZSBDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbl9oCiAKLSNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCi0jaW5jbHVk
ZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIiAv
LyBGb3IgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcwogI2luY2x1ZGUgIkNTU1Byb3BlcnR5
LmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIktVUkxIYXNo
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hT
ZXQuaD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4IGMyYTRkYzM4OTJlMTJmODUyMWYyM2Iz
NWNlMTJmNmE2YTJjYjkwODEuLjQ2YmIwZWJhMzU0ZjUyOWMzZDZjZmJlYTQ2MTExOGQ2M2RhN2Zi
NTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtNDAsNiArNDAsNyBAQCBzdHJ1Y3QgTGVu
Z3RoOwogCiBjbGFzcyBDU1NQcmltaXRpdmVWYWx1ZSA6IHB1YmxpYyBDU1NWYWx1ZSB7CiBwdWJs
aWM6CisgICAgLy8gRklYTUU6IFRoaXMgaXMgdXNlZCBieSBvdGhlciBoZWFkZXJzIGFuZCBzaG91
bGQgcHJvYmFibHkgbW92ZSBpbnRvIGl0cyBvd24gaGVhZGVyLgogICAgIGVudW0gVW5pdFR5cGVz
IHsKICAgICAgICAgQ1NTX1VOS05PV04gPSAwLAogICAgICAgICBDU1NfTlVNQkVSID0gMSwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaCBiL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGUuaAppbmRleCA5Nzg5ZjFmMjJmZjA1NWIxZmU4ZTU0NzdhY2ZmZmJjN2IwNmQ0ZDcw
Li43YmM1NGZmMzZjMjlhNjBlZjA0YTFkZWMzYjBiZGEwOGQ0ODhmOTkxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKKysrIGIvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5oCkBAIC0yNSwxMCArMjUsOSBAQAogI2RlZmluZSBDb250YWluZXJOb2RlX2gKIAogI2luY2x1
ZGUgIk5vZGUuaCIKLSNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKLSAgICAKKwogdHlwZWRlZiB2b2lkICgqTm9kZUNhbGxiYWNrKShOb2RlKik7CiAKIG5hbWVz
cGFjZSBQcml2YXRlIHsgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKaW5kZXggOGRhMjg5MmJiNjVmMTM0N2Y5YmFlNmZiZGIzY2Q3ZDg4
MThlMWU1Ny4uYjQzODdlZTM4MmQ5Y2FkYjk4NWQxZGI4NzQ5NTMwZDE3MTQzM2RmOCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApA
QCAtMjYsOSArMjYsOCBAQAogI2RlZmluZSBFbGVtZW50X2gKIAogI2luY2x1ZGUgIkNvbnRhaW5l
ck5vZGUuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgot
I2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZUVudHJ5LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIg
Ly8gVXNlZCBieSBFbGVtZW50Ojp1cGRhdGVJZAorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIiAvLyBV
c2VkIGJ5IEVsZW1lbnQ6OmlkQXR0cmlidXRlTmFtZQogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5o
IgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vTm9kZS5oIGIvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4
IGZkNWIzN2Y1NmRhMzkxMTU4ZDNkZmIwOTM3ZmNiODJlMjlmZTk4NWQuLmVjYmM4NDUyMzVkOTgw
NzgxNDJkZDE1NzUzMTg2ODViZmNjNGM4MjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL05vZGUu
aAorKysgYi9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNkZWZpbmUgTm9k
ZV9oCiAKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgotI2luY2x1ZGUgIktVUkxIYXNoLmgiCisj
aW5jbHVkZSAiS1VSTEhhc2guaCIgLy8gVXNlZCBieSBhZGRTdWJyZXNvdXJjZVVSTAogI2luY2x1
ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgi
CiAjaW5jbHVkZSAiVHJlZVNoYXJlZC5oIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU3R5bGVk
RWxlbWVudC5oIGIvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCmluZGV4IDZmYWNjZTdhNjEx
ZDJhYWFkY2VmMmRmYmNhMTExY2UwNTYzYjIxYjUuLmYxZDgxNTNhMzhmYjM3MGYzMWRkMTg1Mzgz
MWQ5Mzc2ZjViYzgxY2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAor
KysgYi9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKQEAgLTI1LDE2ICsyNSwxNSBAQAogI2lm
bmRlZiBTdHlsZWRFbGVtZW50X2gKICNkZWZpbmUgU3R5bGVkRWxlbWVudF9oCiAKLSNpbmNsdWRl
ICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZh
bHVlLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZUVu
dHJ5LmgiCi0jaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQXR0cmlidXRlOwogY2xhc3MgQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb247
CitjbGFzcyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjsKK2NsYXNzIE5hbWVkTm9kZU1hcDsK
IAogY2xhc3MgU3R5bGVkRWxlbWVudCA6IHB1YmxpYyBFbGVtZW50IHsKIHB1YmxpYzoKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwIGIvV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKaW5kZXggMWI0YTUxNDlkZjgzZWZlMzhjNjQ2N2QyNWY4
YmQ3ZmMyYWVhNzE0ZS4uZGQ1NjYwZjMzNjE3OGJjOWI4YWRlOWZmMjJmYTJiYzgxNDgwNWE0MyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKKysrIGIvV2Vi
Q29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKQEAgLTU3Myw2ICs1NzMsMTEgQEAgdm9p
ZCBWaXNpYmxlUG9zaXRpb246OmRlYnVnUG9zaXRpb24oY29uc3QgY2hhciogbXNnKSBjb25zdAog
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlBvc2l0aW9uIFslc106ICVzIFslcF0gYXQgJWRcbiIs
IG1zZywgbV9kZWVwUG9zaXRpb24ubm9kZSgpLT5ub2RlTmFtZSgpLnV0ZjgoKS5kYXRhKCksIG1f
ZGVlcFBvc2l0aW9uLm5vZGUoKSwgbV9kZWVwUG9zaXRpb24uZGVwcmVjYXRlZEVkaXRpbmdPZmZz
ZXQoKSk7CiB9CiAKK0VsZW1lbnQqIFZpc2libGVQb3NpdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVu
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGVlcFBvc2l0aW9uLmlzTm90TnVsbCgpID8gbV9k
ZWVwUG9zaXRpb24ubm9kZSgpLT5yb290RWRpdGFibGVFbGVtZW50KCkgOiAwOworfQorCiAjaWZu
ZGVmIE5ERUJVRwogCiB2b2lkIFZpc2libGVQb3NpdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Vk
aXRpbmcvVmlzaWJsZVBvc2l0aW9uLmggYi9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9u
LmgKaW5kZXggZmU3OTVhMTIyOTQxYzU1YjgwMmUyYzdjMmFlNzdmM2UyMDg1Y2FjMy4uYjA4ZTEz
NTQwMjcwYjQ5NzA4ZGIzMmQ0ZTRjMmI3ZDE2Njk0YmFhOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9l
ZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5oCisrKyBiL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9z
aXRpb24uaApAQCAtMjYsOSArMjYsNyBAQAogI2lmbmRlZiBWaXNpYmxlUG9zaXRpb25faAogI2Rl
ZmluZSBWaXNpYmxlUG9zaXRpb25faAogCi0jaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBv
c2l0aW9uLmgiCi0jaW5jbHVkZSAiVGV4dERpcmVjdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTgyLDkgKzgwLDkgQEAgcHVibGljOgogICAgIFVDaGFyMzIgY2hhcmFjdGVyQmVm
b3JlKCkgY29uc3QgeyByZXR1cm4gcHJldmlvdXMoKS5jaGFyYWN0ZXJBZnRlcigpOyB9CiAgICAg
CiAgICAgdm9pZCBkZWJ1Z1Bvc2l0aW9uKGNvbnN0IGNoYXIqIG1zZyA9ICIiKSBjb25zdDsKLSAg
ICAKLSAgICBFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9k
ZWVwUG9zaXRpb24uaXNOb3ROdWxsKCkgPyBtX2RlZXBQb3NpdGlvbi5ub2RlKCktPnJvb3RFZGl0
YWJsZUVsZW1lbnQoKSA6IDA7IH0KLSAgICAKKworICAgIEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVs
ZW1lbnQoKSBjb25zdDsKKwogICAgIHZvaWQgZ2V0SW5saW5lQm94QW5kT2Zmc2V0KElubGluZUJv
eComIGlubGluZUJveCwgaW50JiBjYXJldE9mZnNldCkgY29uc3QKICAgICB7CiAgICAgICAgIG1f
ZGVlcFBvc2l0aW9uLmdldElubGluZUJveEFuZE9mZnNldChtX2FmZmluaXR5LCBpbmxpbmVCb3gs
IGNhcmV0T2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U1N0b3JlLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oCmluZGV4IDRi
N2VmNTE1ZmZmNjlhOGVjYWY4ZjAwMzM2ZDJhZDYxNmU1ZmIwMjEuLjY0ZDhjYzZhMzI1ZWU1MDJi
ZGQzNzQxMDM1NzVkZGQ2NzRkYjhiNmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU1N0b3JlLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3Rv
cmUuaApAQCAtNDcsNiArNDcsOCBAQCBjbGFzcyBDU1NTdHlsZVNoZWV0OwogY2xhc3MgU3RyaW5n
OwogY2xhc3MgU3R5bGVCYXNlOwogCisvLyBGSVhNRTogSWYgdGhlc2UgdHlwZWRlZnMgYXJlIGlu
ZGVuZGVkIHRvIGJlIHNoYXJlZCBiZXR3ZWVuIGhlYWRlcnMKKy8vIHRoZXkgc2hvdWxkIHByb2Jh
Ymx5IGhhdmUgdGhlaXIgb3duIGhlYWRlciB0byBtaW5pbWl6ZSBpbmNsdWRlIGRlcGVuZGVuY2ll
cy4KIHR5cGVkZWYgc3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiBQcm9wZXJ0eVZhbHVlQW5kUHJp
b3JpdHk7CiB0eXBlZGVmIHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+IFNvdXJjZVJhbmdl
OwogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUHJvcGVydHlWYWx1ZUFuZFByaW9yaXR5PiBEaXNh
YmxlZFN0eWxlRGVjbGFyYXRpb247CkBAIC02Myw3ICs2NSw3IEBAIHR5cGVkZWYgSGFzaE1hcDxS
ZWZQdHI8RG9jdW1lbnQ+LCBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiBEb2N1bWVudFRvU3R5bGVT
aGVldE1hCiBjbGFzcyBJbnNwZWN0b3JDU1NTdG9yZSB7CiAKIHB1YmxpYzoKLSAgICBJbnNwZWN0
b3JDU1NTdG9yZShJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKTsKKyAg
ICBJbnNwZWN0b3JDU1NTdG9yZShJbnNwZWN0b3JDb250cm9sbGVyKik7CiAgICAgfkluc3BlY3Rv
ckNTU1N0b3JlKCk7CiAgICAgdm9pZCByZXNldCgpOwogICAgIEhhc2hNYXA8bG9uZywgU291cmNl
UmFuZ2U+IGdldFJ1bGVSYW5nZXNGb3JTdHlsZVNoZWV0KENTU1N0eWxlU2hlZXQqKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCAzMzhkYzMzZWQwMGFkMDIzNWE0
NmFjMWUyY2Q1NzYwMGJhYTIxYzBlLi4wNDUwMjFhODAzOWIzNjU2NDUwYzkyYmY0MGU4MzQwYjNk
NTc2ODkwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC03Miw2
ICs3MiwyMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIFRoaXMgbWF5IGVuZCB1cCBp
biBpdHMgb3duIGhlYWRlci4gIEl0IHNob3VsZCBub3QgZ28gaW4gSW5zcGVjdG9yRE9NQWdlbnQu
aAorc3RydWN0IEV2ZW50TGlzdGVuZXJJbmZvIHsKKyAgICBFdmVudExpc3RlbmVySW5mbyhOb2Rl
KiBub2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgRXZlbnRMaXN0ZW5l
clZlY3RvciYgZXZlbnRMaXN0ZW5lclZlY3RvcikKKyAgICAgICAgOiBub2RlKG5vZGUpCisgICAg
ICAgICwgZXZlbnRUeXBlKGV2ZW50VHlwZSkKKyAgICAgICAgLCBldmVudExpc3RlbmVyVmVjdG9y
KGV2ZW50TGlzdGVuZXJWZWN0b3IpCisgICAgeworICAgIH0KKworICAgIE5vZGUqIG5vZGU7Cisg
ICAgY29uc3QgQXRvbWljU3RyaW5nIGV2ZW50VHlwZTsKKyAgICBjb25zdCBFdmVudExpc3RlbmVy
VmVjdG9yIGV2ZW50TGlzdGVuZXJWZWN0b3I7Cit9OworCiBJbnNwZWN0b3JET01BZ2VudDo6SW5z
cGVjdG9yRE9NQWdlbnQoSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3JlLCBJbnNwZWN0b3JGcm9u
dGVuZCogZnJvbnRlbmQpCiAgICAgOiBFdmVudExpc3RlbmVyKEluc3BlY3RvckRPTUFnZW50VHlw
ZSkKICAgICAsIG1fY3NzU3RvcmUoY3NzU3RvcmUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaAppbmRleCBmODkyNWI1ZmY2NTJlNmIwNjc2MzQ0MjAxYzQ0NjI0NDBiN2I4NDBlLi43
NzZjNjY2MWI2MmFiM2JmNmNmNTM4MGNmZDBjZjU3Mzk1Y2JiMDJlIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTMwLDE4ICszMCwxMiBAQAogI2lmbmRlZiBJbnNwZWN0
b3JET01BZ2VudF9oCiAjZGVmaW5lIEluc3BlY3RvckRPTUFnZW50X2gKIAotI2luY2x1ZGUgIkF0
b21pY1N0cmluZy5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgotI2luY2x1ZGUgIkluc3BlY3RvckNTU1N0b3JlLmgiCi0jaW5jbHVkZSAiU2Ny
aXB0QXJyYXkuaCIKLSNpbmNsdWRlICJTY3JpcHRPYmplY3QuaCIKLSNpbmNsdWRlICJTY3JpcHRT
dGF0ZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNTU1N0b3JlLmgiIC8vIEZvciBEaXNhYmxlZFN0
eWxlRGVjbGFyYXRpb24KIAogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNTQsMjMgKzQ4LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBF
bGVtZW50OwogICAgIGNsYXNzIEV2ZW50OwogICAgIGNsYXNzIERvY3VtZW50OworICAgIGNsYXNz
IEluc3BlY3RvckNTU1N0b3JlOwogICAgIGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwogICAgIGNs
YXNzIE5hbWVOb2RlTWFwOwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKLQotICAg
IHN0cnVjdCBFdmVudExpc3RlbmVySW5mbyB7Ci0gICAgICAgIEV2ZW50TGlzdGVuZXJJbmZvKE5v
ZGUqIG5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBFdmVudExpc3Rl
bmVyVmVjdG9yJiBldmVudExpc3RlbmVyVmVjdG9yKQotICAgICAgICAgICAgOiBub2RlKG5vZGUp
Ci0gICAgICAgICAgICAsIGV2ZW50VHlwZShldmVudFR5cGUpCi0gICAgICAgICAgICAsIGV2ZW50
TGlzdGVuZXJWZWN0b3IoZXZlbnRMaXN0ZW5lclZlY3RvcikKLSAgICAgICAgewotICAgICAgICB9
Ci0KLSAgICAgICAgTm9kZSogbm9kZTsKLSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nIGV2ZW50
VHlwZTsKLSAgICAgICAgY29uc3QgRXZlbnRMaXN0ZW5lclZlY3RvciBldmVudExpc3RlbmVyVmVj
dG9yOwotICAgIH07CisgICAgY2xhc3MgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXI7CisgICAgY2xh
c3MgU2NyaXB0QXJyYXk7CisgICAgY2xhc3MgU2NyaXB0T2JqZWN0OwogCiAgICAgY2xhc3MgSW5z
cGVjdG9yRE9NQWdlbnQgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CiAgICAgcHVibGljOgpAQCAt
MTMxLDggKzExNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIHN0YXRpYyBDU1NTdHlsZVNoZWV0KiBnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVj
bGFyYXRpb24qKTsKLSAgICAgICAgdm9pZCBzdGFydExpc3RlbmluZyhEb2N1bWVudCogZG9jdW1l
bnQpOwotICAgICAgICB2b2lkIHN0b3BMaXN0ZW5pbmcoRG9jdW1lbnQqIGRvY3VtZW50KTsKKyAg
ICAgICAgdm9pZCBzdGFydExpc3RlbmluZyhEb2N1bWVudCopOworICAgICAgICB2b2lkIHN0b3BM
aXN0ZW5pbmcoRG9jdW1lbnQqKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50KiBldmVudCk7CiAKQEAgLTE0MywxNCArMTI4
LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIHB1c2hEb2N1bWVudFRv
RnJvbnRlbmQoKTsKIAotICAgICAgICBTY3JpcHRPYmplY3QgYnVpbGRPYmplY3RGb3JBdHRyaWJ1
dGVTdHlsZXMoRWxlbWVudCogZWxlbWVudCk7CisgICAgICAgIFNjcmlwdE9iamVjdCBidWlsZE9i
amVjdEZvckF0dHJpYnV0ZVN0eWxlcyhFbGVtZW50Kik7CiAgICAgICAgIFNjcmlwdEFycmF5IGJ1
aWxkQXJyYXlGb3JDU1NSdWxlcyhEb2N1bWVudCogb3duZXJEb2N1bWVudCwgQ1NTUnVsZUxpc3Qq
KTsKICAgICAgICAgU2NyaXB0QXJyYXkgYnVpbGRBcnJheUZvclBzZXVkb0VsZW1lbnRzKEVsZW1l
bnQqIGVsZW1lbnQsIGJvb2wgYXV0aG9yT25seSk7CiAKICAgICAgICAgU2NyaXB0T2JqZWN0IGJ1
aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiBub2RlLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBub2Rl
c01hcCk7Ci0gICAgICAgIFNjcmlwdEFycmF5IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRl
cyhFbGVtZW50KiBlbGVtZW50KTsKLSAgICAgICAgU2NyaXB0QXJyYXkgYnVpbGRBcnJheUZvckNv
bnRhaW5lckNoaWxkcmVuKE5vZGUqIGNvbnRhaW5lciwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCog
bm9kZXNNYXApOwotICAgICAgICBTY3JpcHRPYmplY3QgYnVpbGRPYmplY3RGb3JFdmVudExpc3Rl
bmVyKGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJiByZWdpc3RlcmVkRXZlbnRMaXN0ZW5l
ciwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIG5vZGUpOworICAgICAgICBT
Y3JpcHRBcnJheSBidWlsZEFycmF5Rm9yRWxlbWVudEF0dHJpYnV0ZXMoRWxlbWVudCopOworICAg
ICAgICBTY3JpcHRBcnJheSBidWlsZEFycmF5Rm9yQ29udGFpbmVyQ2hpbGRyZW4oTm9kZSogY29u
dGFpbmVyLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKik7CisgICAgICAgIFNjcmlwdE9iamVjdCBi
dWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIoY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIm
LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSopOwogCiAgICAgICAgIC8vIFdl
IHJlcHJlc2VudCBlbWJlZGRlZCBkb21zIGFzIGEgcGFydCBvZiB0aGUgc2FtZSBoaWVyYXJjaHku
IEhlbmNlIHdlIHRyZWF0IGNoaWxkcmVuIG9mIGZyYW1lIG93bmVycyBkaWZmZXJlbnRseS4KICAg
ICAgICAgLy8gV2UgYWxzbyBza2lwIHdoaXRlc3BhY2UgdGV4dCBub2RlcyBjb25kaXRpb25hbGx5
LiBGb2xsb3dpbmcgbWV0aG9kcyBlbmNhcHN1bGF0ZSB0aGVzZSBzcGVjaWZpY3MuCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRJbWFnZS5jcHAgYi9XZWJDb3JlL2xvYWRlci9DYWNo
ZWRJbWFnZS5jcHAKaW5kZXggOWFlOGQyMDBiOWY1ODlhNTNiODQ0ZWQ5ZjIzM2EwNDc4MDdhZjY0
YS4uMWI1NTJmYjg0MzUzOTc3YmM3NDAyYzM4NWQyYjc0ODQyODUyZjllNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9sb2FkZXIvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0NhY2hl
ZEltYWdlLmNwcApAQCAtMTM4LDYgKzEzOCwxMSBAQCBJbWFnZSogQ2FjaGVkSW1hZ2U6OmltYWdl
KCkgY29uc3QKICAgICByZXR1cm4gbnVsbEltYWdlKCk7CiB9CiAKK2Jvb2wgQ2FjaGVkSW1hZ2U6
OmNhblJlbmRlcihmbG9hdCBtdWx0aXBsaWVyKSBjb25zdAoreworICAgIHJldHVybiAhZXJyb3JP
Y2N1cnJlZCgpICYmICFpbWFnZVNpemUobXVsdGlwbGllcikuaXNFbXB0eSgpOworfQorCiB2b2lk
IENhY2hlZEltYWdlOjpzZXRJbWFnZUNvbnRhaW5lclNpemUoY29uc3QgSW50U2l6ZSYgY29udGFp
bmVyU2l6ZSkKIHsKICAgICBpZiAobV9pbWFnZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVy
L0NhY2hlZEltYWdlLmggYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRJbWFnZS5oCmluZGV4IGI0YTAz
MmFhNDUwYjM0Yjk3MzgwYzUxYTE4MTVhM2UxYTgyNzExZDQuLjBkOTNmNzNhMzgyMGRkMDVlZDY5
NzNiZDc0NTg0NmMyMzQxMjdhZmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZElt
YWdlLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkSW1hZ2UuaApAQCAtMjUsMTQgKzI1LDE0
IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkltYWdlT2JzZXJ2
ZXIuaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jTG9hZGVy
OwogY2xhc3MgQ2FjaGU7CitjbGFzcyBJbnRSZWN0OworY2xhc3MgSW50U2l6ZTsKIAogY2xhc3Mg
Q2FjaGVkSW1hZ2UgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UsIHB1YmxpYyBJbWFnZU9ic2VydmVy
IHsKICAgICBmcmllbmQgY2xhc3MgQ2FjaGU7CkBAIC00MSwxMiArNDEsMTIgQEAgcHVibGljOgog
ICAgIENhY2hlZEltYWdlKGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICBDYWNoZWRJbWFnZShJbWFn
ZSopOwogICAgIHZpcnR1YWwgfkNhY2hlZEltYWdlKCk7Ci0gICAgCi0gICAgdmlydHVhbCB2b2lk
IGxvYWQoRG9jTG9hZGVyKiBkb2NMb2FkZXIpOworCisgICAgdmlydHVhbCB2b2lkIGxvYWQoRG9j
TG9hZGVyKik7CiAKICAgICBJbWFnZSogaW1hZ2UoKSBjb25zdDsKIAotICAgIGJvb2wgY2FuUmVu
ZGVyKGZsb2F0IG11bHRpcGxpZXIpIGNvbnN0IHsgcmV0dXJuICFlcnJvck9jY3VycmVkKCkgJiYg
IWltYWdlU2l6ZShtdWx0aXBsaWVyKS5pc0VtcHR5KCk7IH0KKyAgICBib29sIGNhblJlbmRlcihm
bG9hdCBtdWx0aXBsaWVyKSBjb25zdDsKIAogICAgIC8vIFRoZXNlIGFyZSBvbmx5IHVzZWQgZm9y
IFNWR0ltYWdlIHJpZ2h0IG5vdwogICAgIHZvaWQgc2V0SW1hZ2VDb250YWluZXJTaXplKGNvbnN0
IEludFNpemUmKTsKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZCgpOwog
CiAgICAgLy8gSW1hZ2VPYnNlcnZlcgotICAgIHZpcnR1YWwgdm9pZCBkZWNvZGVkU2l6ZUNoYW5n
ZWQoY29uc3QgSW1hZ2UqIGltYWdlLCBpbnQgZGVsdGEpOworICAgIHZpcnR1YWwgdm9pZCBkZWNv
ZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1hZ2UqLCBpbnQgZGVsdGEpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWREcmF3KGNvbnN0IEltYWdlKik7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGF1c2VB
bmltYXRpb24oY29uc3QgSW1hZ2UqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4
IDc2ODIwMTE3MGRiMWUxNzk0NDk5YjY1ODFiZjU1YWVhNmNjN2E4ZDAuLjM0OTA4NTljYjVmNDg3
NmIwYjFjODM2NThlYmUwZjAzNGI2N2NiZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNw
cApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAi
Rm9udENhY2hlLmgiCisjaW5jbHVkZSAiRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRm9udFRy
YW5zY29kZXIuaCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1ZGUgIkdseXBoQnVmZmVy
LmgiCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xp
c3QuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFsbGJhY2tMaXN0LmNwcApp
bmRleCA2NDljMTE3YTRjNjRiYWRkNTU5ZTNkM2UxNzVjY2UyZGIzZWVkNDNiLi5hZWI2MjJiYWVh
ODhjYmM2MTQ4MjIxMWEyYzIwZjNjZWZlZDU2ZDRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1
ZGUgIkZvbnQuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKKyNpbmNsdWRlICJGb250U2VsZWN0
b3IuaCIKICNpbmNsdWRlICJTZWdtZW50ZWRGb250RGF0YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00Niw2ICs0NywxMSBAQCBGb250RmFsbGJhY2tMaXN0OjpGb250RmFsbGJhY2tMaXN0
KCkKIHsKIH0KIAorRm9udEZhbGxiYWNrTGlzdDo6fkZvbnRGYWxsYmFja0xpc3QoKQoreworICAg
IHJlbGVhc2VGb250RGF0YSgpOworfQorCiB2b2lkIEZvbnRGYWxsYmFja0xpc3Q6OmludmFsaWRh
dGUoUGFzc1JlZlB0cjxGb250U2VsZWN0b3I+IGZvbnRTZWxlY3RvcikKIHsKICAgICByZWxlYXNl
Rm9udERhdGEoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZh
bGxiYWNrTGlzdC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFsbGJhY2tMaXN0
LmgKaW5kZXggYTEwZjVhZjg5ZTJkYjIxYzQ0ODMwYmYwZDBhNzY1OGQ4M2ZkZmE3NS4uYTM0NzBk
Mjc4ZTc4NTU1NTg0MGRmMzQwMGE2YTMyMmZjYjdkYTRmZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RmFsbGJhY2tMaXN0LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250RmFsbGJhY2tMaXN0LmgKQEAgLTIxLDggKzIxLDcgQEAKICNpZm5kZWYg
Rm9udEZhbGxiYWNrTGlzdF9oCiAjZGVmaW5lIEZvbnRGYWxsYmFja0xpc3RfaAogCi0jaW5jbHVk
ZSAiRm9udFNlbGVjdG9yLmgiCi0jaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKKyNpbmNsdWRl
ICJTaW1wbGVGb250RGF0YS5oIiAvLyBGb3IgUGl0Y2gKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MSw3ICs0MCw3IEBAIGNsYXNzIEZvbnRGYWxs
YmFja0xpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxGb250RmFsbGJhY2tMaXN0PiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9udEZhbGxiYWNrTGlzdD4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IEZvbnRGYWxsYmFja0xpc3QoKSk7IH0KIAotICAgIH5Gb250RmFsbGJh
Y2tMaXN0KCkgeyByZWxlYXNlRm9udERhdGEoKTsgfQorICAgIH5Gb250RmFsbGJhY2tMaXN0KCk7
CiAgICAgdm9pZCBpbnZhbGlkYXRlKFBhc3NSZWZQdHI8Rm9udFNlbGVjdG9yPik7CiAgICAgCiAg
ICAgYm9vbCBpc0ZpeGVkUGl0Y2goY29uc3QgRm9udCogZikgY29uc3QgeyBpZiAobV9waXRjaCA9
PSBVbmtub3duUGl0Y2gpIGRldGVybWluZVBpdGNoKGYpOyByZXR1cm4gbV9waXRjaCA9PSBGaXhl
ZFBpdGNoOyB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAppbmRleCBiNjk2NzBmNzYzNzU1ZDBm
ZGI3ODE3MmFmZDM0MjM4ZmY3MzZiNjE3Li5iZWFlM2IxYzk2YzI3YTExZTVjMzUzMmZiNjYxMzlh
MTAyNzUzNTU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaApAQCAtODAsNiArODAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU3RyaW5nOwogICAgIGNsYXNzIFN0cm9rZVN0
eWxlQXBwbGllcjsKIAorICAgIC8vIEZJWE1FOiBUaGlzIGlzIHVzZWQgYnkgb3RoZXIgaGVhZGVy
cyBhbmQgc2hvdWxkIHByb2JhYmx5IG1vdmUgdG8gaXRzIG93biAuaAogICAgIGVudW0gV2luZFJ1
bGUgewogICAgICAgICBSVUxFX05PTlpFUk8gPSAwLAogICAgICAgICBSVUxFX0VWRU5PREQgPSAx
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmgKaW5kZXggYmM4OTdi
ZTMxZGY4YzRiYTQwZTlhODNmNzc4MjMwOWJhMzdjNWUzMC4uMzI5YWNiMWEzZjUzZjk0OGM0N2Jh
MTFlMGFkOWE2Zjg5MGFiNTE3NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9TaW1wbGVGb250RGF0YS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxl
Rm9udERhdGEuaApAQCAtNjUsNiArNjUsNyBAQCBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogY2xh
c3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgU1ZHRm9udERhdGE7CiAKKy8vIEZJWE1FOiBUaGlzIGlz
IHVzZWQgYnkgb3RoZXIgaGVhZGVycyBhbmQgc2hvdWxkIHByb2JhYmx5IGhhdmUgaXRzIG93biBo
ZWFkZXIuCiBlbnVtIFBpdGNoIHsgVW5rbm93blBpdGNoLCBGaXhlZFBpdGNoLCBWYXJpYWJsZVBp
dGNoIH07CiAKIGNsYXNzIFNpbXBsZUZvbnREYXRhIDogcHVibGljIEZvbnREYXRhIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggZjJiMzEzOTNhNTM0MjI5OTJlOTc0MWRhOTEzNjFlMjA0
MzJmZDk4ZS4uMTQ3ZGUxYmNmZjdmNDk4NDllMmE0Zjk1YjE5MWQ1ZWU3NGNhZTUxYiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTUxMSw2ICs1MTEsOCBAQCBwdWJsaWM6CiAgICAgICog
UGFpbnQgdGhlIG9iamVjdCBhbmQgaXRzIGNoaWxkcmVuLCBjbGlwcGVkIGJ5ICh4fHl8d3xoKS4K
ICAgICAgKiAodHh8dHkpIGlzIHRoZSBjYWxjdWxhdGVkIHBvc2l0aW9uIG9mIHRoZSBwYXJlbnQK
ICAgICAgKi8KKyAgICAvLyBGSVhNRTogVGhpcyBiZWxvbmdzIGluIGl0cyBvd24gaGVhZGVyIHNv
IHRoYXQgb3RoZXIgaGVhZGVycyBjYW4gaW5jbHVkZQorICAgIC8vIGl0IHdpdGhvdXQgYnJpbmdp
bmcgaW4gYWxsIG9mIFJlbmRlck9iamVjdC5oCiAgICAgc3RydWN0IFBhaW50SW5mbyB7CiAgICAg
ICAgIFBhaW50SW5mbyhHcmFwaGljc0NvbnRleHQqIG5ld0NvbnRleHQsIGNvbnN0IEludFJlY3Qm
IG5ld1JlY3QsIFBhaW50UGhhc2UgbmV3UGhhc2UsIGJvb2wgbmV3Rm9yY2VCbGFja1RleHQsCiAg
ICAgICAgICAgICAgICAgICBSZW5kZXJPYmplY3QqIG5ld1BhaW50aW5nUm9vdCwgTGlzdEhhc2hT
ZXQ8UmVuZGVySW5saW5lKj4qIG5ld091dGxpbmVPYmplY3RzLApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaCBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmgKaW5kZXggYjYzNTc1ZDA2OTlkNGM1OTQw
ZWY0MDg1NjlkYmYzYzAxYWI3MDJhMi4uZjNlNjlkMTMzNjJlZjg1Nzg2OWRiMTg1ODYzZTc0NTM3
NjZjMmQwNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VD
b250YWluZXIuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRh
aW5lci5oCkBAIC0yNCwxMiArMjQsMTQgQEAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlJl
bmRlclNWR0hpZGRlbkNvbnRhaW5lci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgi
CisjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyIDogcHVibGljIFJlbmRlclNWR0hpZGRl
bkNvbnRhaW5lciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFJl
bmRlclNWR1Jlc291cmNlIHsKIHB1YmxpYzoKKyAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYWxs
IG1vdmUgdG8gYSAuY3BwIGZpbGUgdG8gYXZvaWQgc28gbWFueSBoZWFkZXIgaW5jbHVkZXMuCiAg
ICAgUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoU1ZHU3R5bGVkRWxlbWVudCogbm9kZSkKICAg
ICAgICAgOiBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIobm9kZSkKICAgICAgICAgLCBSZW5kZXJT
VkdSZXNvdXJjZSgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSZXNv
dXJjZVNvbGlkQ29sb3IuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VT
b2xpZENvbG9yLmNwcAppbmRleCA5ZDM0ZDc5NWE3YjhjMzM2YTQ1MDI5NjUwNDY0MTg3M2M0YjE4
ZDIxLi4zYjc1YjZhN2Y3MGNhNGVjNGJjODdiNjAyMGYwMmU3ZGQzNDU5YmM0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuY3BwCisrKyBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5jcHAKQEAgLTI0
LDYgKzI0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuaCIKIAog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgi
CiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgogCiAjaWYgUExBVEZPUk0oU0tJQSkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRlclN1cHBvcnQuaCBiL1dlYkNvcmUv
cmVuZGVyaW5nL1NWR1JlbmRlclN1cHBvcnQuaAppbmRleCBlOTYxYzczNjZmMzliMDczZmE0NTg1
NzA2NjE1NjM3MTllOTZiM2QzLi4zZDZhZmYzODc1ZjU2MThlNWVhMGU3N2I1OGFkNDljYTNkYWNk
ODgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0LmgKKysr
IGIvV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5oCkBAIC0yNSwxMCArMjUsOSBA
QAogI2RlZmluZSBTVkdSZW5kZXJCYXNlX2gKIAogI2lmIEVOQUJMRShTVkcpCisKICNpbmNsdWRl
ICJEYXNoQXJyYXkuaCIKLSNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKLSNpbmNsdWRlICJTVkdF
bGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRl
ck9iamVjdC5oIiAvLyBGb3IgUmVuZGVyT2JqZWN0OjpQYWludEluZm8KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db3VudGVyRGly
ZWN0aXZlcy5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2ZXMuaApp
bmRleCA5Y2JkZWFlYzkzODI1OTY5NWIxZDNhYmUzNGYyZDc2M2Q0NDBhMDE5Li5mNmM0NDRlYTkz
MWU3OTU2NDNiMTc2NjY3ZTJmMWVkY2FlMzMxZWQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmgKQEAgLTMxLDYgKzMxLDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCisvLyBGSVhNRTogSWYgdGhpcyBjb25zdHJ1Y3RvciB3YXMgcHVzaGVkIGludG8g
YSAuY3BwIGZpbGUgd2Ugd291bGQgbm90CisvLyBuZWVkIHRvIGluY2x1ZGUgQXRvbWljU3RyaW5n
SW1wbC5oCiBzdHJ1Y3QgQ291bnRlckRpcmVjdGl2ZXMgewogICAgIENvdW50ZXJEaXJlY3RpdmVz
KCkKICAgICAgICAgOiBtX3Jlc2V0KGZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvQ3Vyc29yRGF0YS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yRGF0
YS5oCmluZGV4IDIzNDFlNzE5MDFkMGU1MGFiZjMzNTI5MGUxMDEyOWQ0ZmEwOGMwNzguLjNmMWYx
ZThjZGQxODMwZDY2OTAyNTgwYzc0NGY4MGViNTdmMGYxMjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0N1cnNvckRhdGEuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9DdXJzb3JEYXRhLmgKQEAgLTMzLDYgKzMzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBDdXJzb3JEYXRhIHsKIHB1YmxpYzoKKyAgICAvLyBGSVhNRTogSWYgQ3Vyc29yRGF0YSgp
IG1vdmVkIHRvIGEgLmNwcCBmaWxlIHdlIHdvdWxkIG5vdCBuZWVkIHRvCisgICAgLy8gaW5jbHVk
ZSBDYWNoZWRJbWFnZS5oIGluIHRoaXMgaGVhZGVyLgogICAgIEN1cnNvckRhdGEoQ2FjaGVkSW1h
Z2UqIGltYWdlLCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCkKICAgICAgICAgOiBtX2ltYWdlKGlt
YWdlKQogICAgICAgICAsIG1faG90U3BvdChob3RTcG90KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKaW5kZXggMTg5YmVjZmRiMDBjZGYwNThjZmY1NzE3MTYyYmY1OTQ3NWM1OWM5
Mi4uMGZmZjg0MzFlNDZlZTU1NzBiMDNhYzA4OGE4MTFmOTY3ZjVmNmNmMCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0yNSw3ICsyNSw2IEBACiAjaWZuZGVmIFJlbmRl
clN0eWxlX2gKICNkZWZpbmUgUmVuZGVyU3R5bGVfaAogCi0jaW5jbHVkZSAiVHJhbnNmb3JtYXRp
b25NYXRyaXguaCIKICNpbmNsdWRlICJBbmltYXRpb25MaXN0LmgiCiAjaW5jbHVkZSAiQm9yZGVy
RGF0YS5oIgogI2luY2x1ZGUgIkJvcmRlclZhbHVlLmgiCkBAIC0xMDE0LDYgKzEwMTMsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX3RyYW5zaXRp
b25zLmNsZWFyKCk7CiAgICAgfQogCisgICAgLy8gRklYTUU6IERvZXMgdGhpcyByZWFsbHkgbmVl
ZCB0byBiZSBpbmxpbmUsIGZvcmNpbmcgdXMgdG8gaW5jbHVkZSBBbmltYXRpb25MaXN0Lmg/CiAg
ICAgdm9pZCBpbmhlcml0QW5pbWF0aW9ucyhjb25zdCBBbmltYXRpb25MaXN0KiBwYXJlbnQpIHsg
cmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fYW5pbWF0aW9ucy5zZXQocGFyZW50ID8g
bmV3IEFuaW1hdGlvbkxpc3QoKnBhcmVudCkgOiAwKTsgfQogICAgIHZvaWQgaW5oZXJpdFRyYW5z
aXRpb25zKGNvbnN0IEFuaW1hdGlvbkxpc3QqIHBhcmVudCkgeyByYXJlTm9uSW5oZXJpdGVkRGF0
YS5hY2Nlc3MoKS0+bV90cmFuc2l0aW9ucy5zZXQocGFyZW50ID8gbmV3IEFuaW1hdGlvbkxpc3Qo
KnBhcmVudCkgOiAwKTsgfQogICAgIHZvaWQgYWRqdXN0QW5pbWF0aW9ucygpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaCBiL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKaW5kZXggNDg0ODIyODA2YWNhNmZhMWNlMWVk
ZjViZjQ1NmRiNzc2OTAzZTBlYi4uY2ZkYmYwNDAzNjgzZmE5ZTBkYzY1MzcyMzU3MmQ1MjFiYzQ5
YjdjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUu
aAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5oCkBAIC0yNyw3
ICsyNyw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiRGF0YVJlZi5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKLSNpbmNsdWRlICJQYXRoLmgiCisjaW5jbHVk
ZSAiUGF0aC5oIiAvLyBGb3IgV2luZFJ1bGUKICNpbmNsdWRlICJTVkdQYWludC5oIgogI2luY2x1
ZGUgIlNWR1JlbmRlclN0eWxlRGVmcy5oIgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggZDZmZTk2ZWE0MTc0MWIyZmE5
ZTNmMzYxZTc1NjY4NjhlNDI0NDE5OS4uNjc5ZWRjZDE5YWM4NjAzOGRhZWIwMjIzZjgwYjM5MjY5
MjYzYmYxYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaApAQCAtMjYsMTIgKzI2LDEwIEBACiAjZGVmaW5lIFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGFfaAogCiAjaW5jbHVkZSAiQ291bnRlckRpcmVjdGl2ZXMuaCIKLSNpbmNs
dWRlICJDdXJzb3JEYXRhLmgiCiAjaW5jbHVkZSAiRGF0YVJlZi5oIgogI2luY2x1ZGUgIkZpbGxM
YXllci5oIgogI2luY2x1ZGUgIkxpbmVDbGFtcFZhbHVlLmgiCiAjaW5jbHVkZSAiTmluZVBpZWNl
SW1hZ2UuaCIKLSNpbmNsdWRlICJTdHlsZVRyYW5zZm9ybURhdGEuaCIKICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkLmggYi9XZWJDb3JlL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgKaW5kZXgg
OTcxYzY1Y2JiNTdiZWUyOTNlMGUzNTQ2NzdjZDM4NzJlMjA0OWY1Mi4uOThkNDI4NWQ5YTM0YjU2
ODVlMTYzNjliMWIyM2RkZWY2M2RlZmI2MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oCisrKyBiL1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQuaApAQCAtMjIsMTIgKzIyLDEyIEBACiAjZGVmaW5lIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWRfaAogCiAjaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdFbGVt
ZW50LmgiCi0jaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlZFByb3Bl
cnR5VHJhaXRzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEF0dHJpYnV0
ZTsKKyAgICBjbGFzcyBRdWFsaWZpZWROYW1lOwogCiAgICAgLy8gTm90ZXMgb24gYSBTVkcgMS4x
IHNwZWMgZGlzY3JlcGFuY3k6CiAgICAgLy8gVGhlIFNWRyBET00gZGVmaW5lcyB0aGUgYXR0cmli
dXRlIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgYXMgYmVpbmcgb2YgdHlwZSBTVkdBbmltYXRl
ZEJvb2xlYW4sIHdoZXJlYXMgdGhlIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58305</attachid>
            <date>2010-06-09 16:04:52 -0700</date>
            <delta_ts>2010-06-09 18:20:04 -0700</delta_ts>
            <desc>Should now compile for Chromium</desc>
            <filename>bug-40350-20100609160451.patch</filename>
            <type>text/plain</type>
            <size>45216</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA4Njk1MTBiYmYxMmE1ZDRmNmFiMDdjZmU5ODA0MzViOTY3NjFjMWJkLi5h
NGQxZDY2ODk1ZmFhYjQ5MmU1NTBjOTdiYjJlZmVmNDlmMjVhMWI4IDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMTAtMDYtMDkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgQXR0ZW1wdCB0byBz
cGVlZCB1cCBidWlsZHMgYnkgcmVkdWNpbmcgaGVhZGVyIGRlcGVuZGVuY2llcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNTAKKworICAgICAgICBU
aGVyZSBhcmUgNCB0eXBlcyBvZiBjaGFuZ2VzIGluIHRoaXMgcGF0Y2g6CisgICAgICAgIC0gUmVt
b3ZpbmcgdW51c2VkIGhlYWRlcnMuCisgICAgICAgIC0gTW92aW5nIGZ1bmN0aW9ucyBvdXQgb2Yg
aGVhZGVycyBpbnRvIC5jcHAgZmlsZXMKKyAgICAgICAgICAoaW4gY2FzZXMgd2hlcmUgdGhlcmUg
aXMgbm8gcGVyZi1pbXBhY3QgYW5kIGRvaW5nCisgICAgICAgICAgIHNvIGFsbG93cyB1cyB0byBy
ZW1vdmUgYSBoZWFkZXIgaW5jbHVkZSkuCisgICAgICAgIC0gQWRkaW5nIEZJWE1FcyBhYm91dCBj
b2RlIHdoaWNoIHNob3VsZCBiZSBzcGxpdCBpbnRvCisgICAgICAgICAgaXRzIG93biBoZWFkZXIu
CisgICAgICAgIC0gUmVtb3ZpbmcgdW4tbmVlZGVkIGFyZ3VtZW50IG5hbWVzIHdoZW4gZW5jb3Vu
dGVyZWQuCisKKyAgICAgICAgTm8gdGVzdHMsIGFzIHRoaXMgZG9lcyBub3QgY2hhbmdlIGZ1bmN0
aW9uYWxpdHkuCisKKyAgICAgICAgKiBydW50aW1lL0NvbGxlY3Rvci5oOgorICAgICAgICAqIHJ1
bnRpbWUvQ29tcGxldGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSWRlbnRpZmllci5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTTnVt
YmVyQ2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50
aW1lL1Byb3BlcnR5U2xvdC5oOgorCiAyMDEwLTA2LTA5ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8
YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KZGlmZiAt
LWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9yLmggYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbGxlY3Rvci5oCmluZGV4IDM0ZTIzOGM4NjM4NTNkNjQ4YzU1NGY4M2YwNmRi
NTdiMzJiYzM3NDcuLjI0ZjhhMDNmMzliM2RmYmE3M2MyN2Y1NWQ2MmUwYzIyMzM1YjBkMTEgMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9yLmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3IuaApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUg
PHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKZGlmZiAt
LWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5oIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21wbGV0aW9uLmgKaW5kZXggNjNiMzE1ZTE4ZjYzOWRkODRmNWViY2E4YTVk
ZWEwNzdmNDMyZTMyMC4uMmFlZDE3OGEwN2E1MmZiZWM2OTE5NjU0YjQ2MWRmYjE5MDFmNjFjYiAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmgKKysrIGIvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21wbGV0aW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgY2xhc3MgU2NvcGVDaGFpbjsKICAgICBjbGFzcyBTb3VyY2VDb2RlOwog
CisgICAgLy8gRklYTUU6IFRoaXMgaXMgdXNlZCBieSBvdGhlciBoZWFkZXJzIGFuZCBzaG91bGQg
cHJvYmFibHkgYmUgaW4gaXRzIG93biBoZWFkZXIuCiAgICAgZW51bSBDb21wbFR5cGUgeyBOb3Jt
YWwsIEJyZWFrLCBDb250aW51ZSwgUmV0dXJuVmFsdWUsIFRocm93LCBJbnRlcnJ1cHRlZCwgVGVy
bWluYXRlZCB9OwogCiAgICAgLyoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SWRlbnRpZmllci5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmgKaW5kZXgg
MmRiMDcxNjhlZWJlYzVjMTBhOTg1ZGYxODBmOWM5N2JlZjc5MDBjMy4uMzc4OWI3ZjM5MTRlOGRm
ZjQ2YWMyMDI5Y2IwNjk4YzA0MmU1NzVkYSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JZGVudGlmaWVyLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVy
LmgKQEAgLTIxLDEzICsyMSwxMiBAQAogI2lmbmRlZiBJZGVudGlmaWVyX2gKICNkZWZpbmUgSWRl
bnRpZmllcl9oCiAKLSNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKLSNpbmNsdWRlICJUaHJlYWRT
cGVjaWZpYy5oIgogI2luY2x1ZGUgIlVTdHJpbmcuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICBjbGFzcyBFeGVjU3RhdGU7CisgICAgY2xhc3MgSWRlbnRpZmllclRhYmxlOwogCiAgICAgY2xh
c3MgSWRlbnRpZmllciB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1cmU7CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggMDlhOTJhMTU0NmZkMmU2NmVmMTUw
ODRmMjY3NTcyNzNkNDNiZjZiNy4uNTlhMjgwNjQ5YTQ2ODExMmU2OTEzNDk0MDEzYTZhNzZlZWE2
MmQ5YyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMjIsNiAr
MjIsNyBAQAogI2lmbmRlZiBKU0dsb2JhbE9iamVjdF9oCiAjZGVmaW5lIEpTR2xvYmFsT2JqZWN0
X2gKIAorI2luY2x1ZGUgIkFyZ0xpc3QuaCIgLy8gVXNlZCBieSBjb25zdHJ1Y3RBcnJheQogI2lu
Y2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNsdWRlICJK
U1ZhcmlhYmxlT2JqZWN0LmgiCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TnVtYmVyQ2VsbC5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU051bWJlckNlbGwuaAppbmRl
eCBjZGQyZDhjYTVhNDg2ZTk5MmQ4OGQxNjgzMmYwNjUxYWFkZjFhOTNjLi4zMzY4N2IzMzljYzk2
Y2NhZmY3NTk3YmU0OTlhMTdiZmFlNWQzMzNlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTnVtYmVyQ2VsbC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOdW1i
ZXJDZWxsLmgKQEAgLTIzLDExICsyMyw4IEBACiAjaWZuZGVmIEpTTnVtYmVyQ2VsbF9oCiAjZGVm
aW5lIEpTTnVtYmVyQ2VsbF9oCiAKLSNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJK
U0NlbGwuaCIKICNpbmNsdWRlICJKU0ltbWVkaWF0ZS5oIgotI2luY2x1ZGUgIkNvbGxlY3Rvci5o
IgotI2luY2x1ZGUgIlVTdHJpbmcuaCIKICNpbmNsdWRlIDxzdGRkZWYuaD4gLy8gZm9yIHNpemVf
dAogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM5LDcgKzM2LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgSlNWYWx1ZSBqc051bWJlckNlbGwoRXhlY1N0YXRlKiwgZG91YmxlKTsKIAogICAgIGNsYXNz
IElkZW50aWZpZXI7Ci0gICAgY2xhc3MgSlNDZWxsOwogICAgIGNsYXNzIEpTT2JqZWN0OwogICAg
IGNsYXNzIEpTU3RyaW5nOwogICAgIGNsYXNzIFByb3BlcnR5U2xvdDsKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaAppbmRleCBlZGQzNzZjODY0MDhiZTAxZDE3ZDE5ZDAzNzZhM2EzZDg0MjA2ODA2
Li44MDQzY2E2OTAyNGRkNDcyM2U3NzFiNzRkYWY0ZjIzZDM0YjZjMjY0IDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCkBAIC0yMywyMCArMjMsMTYgQEAKICNpZm5kZWYgSlNPYmplY3RfaAog
I2RlZmluZSBKU09iamVjdF9oCiAKLSNpbmNsdWRlICJBcmdMaXN0LmgiCi0jaW5jbHVkZSAiQ2xh
c3NJbmZvLmgiCisjaW5jbHVkZSAiQ2xhc3NJbmZvLmgiIC8vIFVzZWQgYnkgSlNDZWxsOjppbmhl
cml0cworI2luY2x1ZGUgIkNvbXBsZXRpb24uaCIgLy8gRm9yIENvbXBsVHlwZQogI2luY2x1ZGUg
IkNvbW1vbklkZW50aWZpZXJzLmgiCi0jaW5jbHVkZSAiQ29tcGxldGlvbi5oIgotI2luY2x1ZGUg
IkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkpTQ2VsbC5oIgotI2luY2x1ZGUgIkpTTnVtYmVyQ2Vs
bC5oIgotI2luY2x1ZGUgIk1hcmtTdGFjay5oIgotI2luY2x1ZGUgIlByb3BlcnR5U2xvdC5oIgot
I2luY2x1ZGUgIlB1dFByb3BlcnR5U2xvdC5oIgotI2luY2x1ZGUgIlNjb3BlQ2hhaW4uaCIKKyNp
bmNsdWRlICJKU0dsb2JhbERhdGEuaCIgLy8gVXNlZCBieSBnZXRKU0Z1bmN0aW9uCisjaW5jbHVk
ZSAiSlNTdHJpbmcuaCIgLy8gVXNlZCBieSBKU1ZhbHVlOjp0b1RoaXNTdHJpbmcKKyNpbmNsdWRl
ICJNYXJrU3RhY2suaCIgLy8gVXNlZCBieSBKU09iamVjdDo6bWFya0NoaWxkcmVuRGlyZWN0Cisj
aW5jbHVkZSAiUHJvcGVydHlTbG90LmgiIC8vIFVzZWQgYnkgSlNPYmplY3Q6OmlubGluZUdldE93
blByb3BlcnR5U2xvdAorI2luY2x1ZGUgIlB1dFByb3BlcnR5U2xvdC5oIiAvLyBVc2VkIGJ5IEpT
T2JqZWN0OjpwdXREaXJlY3RJbnRlcm5hbAogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgotI2luY2x1
ZGUgIkpTR2xvYmFsRGF0YS5oIgotI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTc0LDEzICs3MCwxMyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIEJhdGNoZWRUcmFuc2l0aW9uT3B0
aW1pemVyOwogICAgICAgICBmcmllbmQgY2xhc3MgSklUOwogICAgICAgICBmcmllbmQgY2xhc3Mg
SlNDZWxsOwotICAgICAgICBmcmllbmQgdm9pZCBzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEhhc2hFbnRyeSogZW50cnksIEpTT2JqZWN0KiB0aGlzT2JqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCk7CisgICAg
ICAgIGZyaWVuZCB2b2lkIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSGFzaEVudHJ5KiBlbnRyeSwgSlNPYmplY3QqIHRoaXNPYmosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAKICAgICBwdWJsaWM6CiAgICAgICAg
IGV4cGxpY2l0IEpTT2JqZWN0KE5vbk51bGxQYXNzUmVmUHRyPFN0cnVjdHVyZT4pOwogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBtYXJrQ2hpbGRyZW4oTWFya1N0YWNrJik7Ci0gICAgICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBtYXJrQ2hpbGRyZW5EaXJlY3QoTWFya1N0YWNrJiBtYXJrU3RhY2spOwor
ICAgICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgbWFya0NoaWxkcmVuRGlyZWN0KE1hcmtTdGFjayYp
OwogCiAgICAgICAgIC8vIFRoZSBpbmxpbmUgdmlydHVhbCBkZXN0cnVjdG9yIGNhbm5vdCBiZSB0
aGUgZmlyc3QgdmlydHVhbCBmdW5jdGlvbiBkZWNsYXJlZAogICAgICAgICAvLyBpbiB0aGUgY2xh
c3MgYXMgaXQgcmVzdWx0cyBpbiB0aGUgdnRhYmxlIGJlaW5nIGdlbmVyYXRlZCBhcyBhIHdlYWsg
c3ltYm9sCkBAIC0xNzUsMTEgKzE3MSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9v
bCBoYXNDdXN0b21Qcm9wZXJ0aWVzKCkgeyByZXR1cm4gIW1fc3RydWN0dXJlLT5pc0VtcHR5KCk7
IH0KICAgICAgICAgYm9vbCBoYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkgeyByZXR1cm4gbV9z
dHJ1Y3R1cmUtPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKTsgfQogCi0gICAgICAgIHZvaWQg
cHV0RGlyZWN0KGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
dW5zaWduZWQgYXR0ciwgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
OworICAgICAgICB2b2lkIHB1dERpcmVjdChjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHIsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHZvaWQgcHV0RGlyZWN0KGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0ciA9IDApOwogCiAgICAgICAg
IHZvaWQgcHV0RGlyZWN0RnVuY3Rpb24oY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U0NlbGwqIHZhbHVlLCB1bnNpZ25lZCBhdHRyID0gMCk7Ci0gICAgICAgIHZvaWQgcHV0RGlyZWN0
RnVuY3Rpb24oY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0NlbGwqIHZhbHVlLCB1
bnNpZ25lZCBhdHRyLCBib29sIGNoZWNrUmVhZE9ubHksIFB1dFByb3BlcnR5U2xvdCYgc2xvdCk7
CisgICAgICAgIHZvaWQgcHV0RGlyZWN0RnVuY3Rpb24oY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU0NlbGwqIHZhbHVlLCB1bnNpZ25lZCBhdHRyLCBib29sIGNoZWNrUmVhZE9ubHks
IFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2b2lkIHB1dERpcmVjdEZ1bmN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb24sIHVuc2lnbmVkIGF0dHIgPSAw
KTsKICAgICAgICAgdm9pZCBwdXREaXJlY3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTRnVu
Y3Rpb24qIGZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyID0gMCk7CiAKQEAgLTI2NCw4ICsyNjAsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEpT
VmFsdWUqPigmcHJvcGVydHlTdG9yYWdlKClbb2Zmc2V0XSk7CiAgICAgICAgIH0KIAotICAgICAg
ICB2b2lkIHB1dERpcmVjdEludGVybmFsKGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0ciwgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QsIEpTQ2VsbCopOwotICAgICAgICB2b2lkIHB1dERpcmVjdEludGVybmFs
KEpTR2xvYmFsRGF0YSYsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgdW5zaWduZWQgYXR0ciwgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpOworICAgICAgICB2b2lkIHB1dERpcmVjdEludGVybmFsKGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0ciwgYm9vbCBjaGVja1Jl
YWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmLCBKU0NlbGwqKTsKKyAgICAgICAgdm9pZCBwdXREaXJl
Y3RJbnRlcm5hbChKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHIsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHZvaWQgcHV0RGlyZWN0SW50ZXJuYWwoSlNHbG9iYWxEYXRh
JiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25l
ZCBhdHRyID0gMCk7CiAKICAgICAgICAgYm9vbCBpbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmggYi9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCmluZGV4IGRlOWRkYzk5ODIyYTYzM2Yw
MjRlOTYzNjIxODhkOWQ1YzRhYjZiYzAuLjYwYjU1OGMwZDZkY2I0NmNlYWRmZGIxN2Y5YzU4YmU1
YTBkODc2N2EgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90
LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaApAQCAtMjMsOSAr
MjMsOCBAQAogCiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIK
LSNpbmNsdWRlICJSZWdpc3Rlci5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyLmgiIC8vIFVzZWQgYnkg
Z2V0VmFsdWUKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9Ob3RG
b3VuZC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYWZjMTkxN2VmMmEyYzM2YzcxMTNiYjkzNjk0
MzJhM2MzNjk0OGMwLi4xZTIxNzljYWMzOWJlNjIwN2I1YzQ1NjgzZGQ3Y2I0ZjJkYzY2NDZmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDY4IEBACisyMDEwLTA2LTA5ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIEF0dGVtcHQgdG8g
c3BlZWQgdXAgYnVpbGRzIGJ5IHJlZHVjaW5nIGhlYWRlciBkZXBlbmRlbmNpZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzUwCisKKyAgICAgICAg
VGhlcmUgYXJlIDQgdHlwZXMgb2YgY2hhbmdlcyBpbiB0aGlzIHBhdGNoOgorICAgICAgICAtIFJl
bW92aW5nIHVudXNlZCBoZWFkZXJzLgorICAgICAgICAtIE1vdmluZyBmdW5jdGlvbnMgb3V0IG9m
IGhlYWRlcnMgaW50byAuY3BwIGZpbGVzCisgICAgICAgICAgKGluIGNhc2VzIHdoZXJlIHRoZXJl
IGlzIG5vIHBlcmYtaW1wYWN0IGFuZCBkb2luZworICAgICAgICAgICBzbyBhbGxvd3MgdXMgdG8g
cmVtb3ZlIGEgaGVhZGVyIGluY2x1ZGUpLgorICAgICAgICAtIEFkZGluZyBGSVhNRXMgYWJvdXQg
Y29kZSB3aGljaCBzaG91bGQgYmUgc3BsaXQgaW50bworICAgICAgICAgIGl0cyBvd24gaGVhZGVy
LgorICAgICAgICAtIFJlbW92aW5nIHVuLW5lZWRlZCBhcmd1bWVudCBuYW1lcyB3aGVuIGVuY291
bnRlcmVkLgorCisgICAgICAgIE5vIHRlc3RzLCBhcyB0aGlzIGRvZXMgbm90IGNoYW5nZSBmdW5j
dGlvbmFsaXR5LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmJvdW5kaW5nQm94
UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpkb0FYQm91bmRz
Rm9yUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Ym91bmRz
Rm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5o
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6ZG9jdW1lbnQpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGVidWdX
cmFwcGVyU2V0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGNzcy9DU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAq
IGRvbS9Db250YWluZXJOb2RlLmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAg
KiBkb20vTm9kZS5oOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50Lmg6CisgICAgICAgICog
ZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVBv
c2l0aW9uOjpyb290RWRpdGFibGVFbGVtZW50KToKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVQ
b3NpdGlvbi5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudExpc3RlbmVySW5mbzo6RXZlbnRMaXN0ZW5lckluZm8pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAqIGxvYWRlci9DYWNoZWRJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Y2FuUmVuZGVyKToKKyAgICAgICAg
KiBsb2FkZXIvQ2FjaGVkSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFsbGJhY2tMaXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnRGYWxsYmFja0xpc3Q6On5Gb250RmFsbGJhY2tMaXN0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFsbGJhY2tMaXN0Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuY3BwOgorICAgICAgICAq
IHJlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L0NvdW50ZXJEaXJlY3RpdmVzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0N1cnNvckRh
dGEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAqIHN2Zy9TVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLmg6CisKIDIwMTAtMDYtMDkgIFRvbnkgR2VudGlsY29yZSAg
PHRvbnlnQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2ViQ29yZS9XZWJDb3JlLmJh
c2UuZXhwCmluZGV4IDI5NzA0ZmI0NTQ5ODM2MDVmMjczY2MxYTZkNTc1Mzk1NTA0YTU2MWYuLjc5
NDUxOTQzZjBiOGMwZDU3NDQ5YTMxODJlN2NkYzY3ZTcxYWQ5NGUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5iYXNlLmV4cAorKysgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKQEAgLTM3
NCw2ICszNzQsNyBAQCBfX1pON1dlYkNvcmUxNVZpc2libGVQb3NpdGlvbkMxRVBOU180Tm9kZUVp
TlNfOUVBZmZpbml0eUUKIF9fWk43V2ViQ29yZTE1VmlzaWJsZVBvc2l0aW9uQzFFUktOU184UG9z
aXRpb25FTlNfOUVBZmZpbml0eUUKIF9fWk43V2ViQ29yZTE1cmVwb3J0RXhjZXB0aW9uRVBOM0pT
QzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTZGb250RmFsbGJhY2tMaXN0
MTVyZWxlYXNlRm9udERhdGFFdgorX19aTjdXZWJDb3JlMTZGb250RmFsbGJhY2tMaXN0RDFFdgog
X19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0ZvbnRiYgogX19aTjdXZWJDb3Jl
MTZGb250UGxhdGZvcm1EYXRhRDFFdgogX19aTjdXZWJDb3JlMTZMZWdhY3lXZWJBcmNoaXZlMTlj
cmVhdGVGcm9tU2VsZWN0aW9uRVBOU181RnJhbWVFCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggOGRlZGMzNmQyZmUwMzllMGFhYTRkNTE5NTA2
ODQ5NzU2YmQ3ZDEzZi4uYjIyMjI4YzAyNGZlOTQ4YTllMDNmNzcwYzUxNjgxZjRiZGM1NTY3MiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAt
MTMxLDYgKzEzMSwxMiBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVJJQUNvbnRyb2wo
QWNjZXNzaWJpbGl0eVJvbGUgYXJpYVJvbGUpCiAgICAgfHwgYXJpYVJvbGUgPT0gQ29tYm9Cb3hS
b2xlIHx8IGFyaWFSb2xlID09IFNsaWRlclJvbGU7IAogfQogCisvLyBNb3ZlZCBmcm9tIHRoZSBo
ZWFkZXIgdG8gYXZvaWQgaW5jbHVkaW5nIEludFJlY3QuaAorSW50UmVjdCBBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojpib3VuZGluZ0JveFJlY3QoKSBjb25zdAoreworICAgIHJldHVybiBJbnRSZWN0KCk7
Cit9CisKIEludFBvaW50IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNsaWNrUG9pbnQoKSBjb25zdAog
ewogICAgIEludFJlY3QgcmVjdCA9IGVsZW1lbnRSZWN0KCk7CkBAIC00MTUsNyArNDIxLDEzIEBA
IFJlbmRlckxpc3RJdGVtKiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZW5kZXJMaXN0SXRlbUNvbnRh
aW5lckZvck5vZGUoTm9kZSogbm9kZSkKICAgICAKICAgICByZXR1cm4gMDsKIH0KLSAgICAKKwor
Ly8gTW92ZWQgZnJvbSBBY2Nlc3NpYmlsaXR5T2JqZWN0LmggdG8gcHJldmVudCBpbmNsdWRpbmcg
SW50UmVjdC5oCitJbnRSZWN0IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmRvQVhCb3VuZHNGb3JSYW5n
ZShjb25zdCBQbGFpblRleHRSYW5nZSYpIGNvbnN0Cit7CisgICAgcmV0dXJuIEludFJlY3QoKTsK
K30KKwogLy8gUmV0dXJucyB0aGUgdGV4dCBhc3NvY2lhdGVkIHdpdGggYSBsaXN0IG1hcmtlciBp
ZiB0aGlzIG5vZGUgaXMgY29udGFpbmVkIHdpdGhpbiBhIGxpc3QgaXRlbS4KIFN0cmluZyBBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpsaXN0TWFya2VyVGV4dEZvck5vZGVBbmRQb3NpdGlvbihOb2RlKiBu
b2RlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHZpc2libGVQb3NpdGlvblN0YXJ0KSBjb25zdAog
ewpAQCAtNDc2LDYgKzQ4OCwxMiBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5n
Rm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUgogICAgIHJldHVy
biBTdHJpbmc6OmFkb3B0KHJlc3VsdFZlY3Rvcik7CiB9CiAKKy8vIE1vdmVkIGZyb20gQWNjZXNz
aWJpbGl0eU9iamVjdC5oIHRvIHByZXZlbnQgaW5jbHVkaW5nIEludFJlY3QuaAorSW50UmVjdCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojpib3VuZHNGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBW
aXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0Cit7CisgICAgcmV0dXJuIEludFJlY3QoKTsKK30K
KwogaW50IEFjY2Vzc2liaWxpdHlPYmplY3Q6Omxlbmd0aEZvclZpc2libGVQb3NpdGlvblJhbmdl
KGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJiB2aXNpYmxlUG9zaXRpb25SYW5nZSkgY29uc3QK
IHsKICAgICAvLyBGSVhNRTogTXVsdGktYnl0ZSBzdXBwb3J0CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCA4YjQ5MjNhN2I0MTMyNGIwY2JhOTAxODk1
YTRlMzNmZWY1NDBlZjc0Li5hMWU5NDBhZDFhNDY1NTA5MDQ1Nzk3Y2Y2MmIwOTQ5ODI0NGJmNzBj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
CisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTMw
LDcgKzMwLDYgQEAKICNpZm5kZWYgQWNjZXNzaWJpbGl0eU9iamVjdF9oCiAjZGVmaW5lIEFjY2Vz
c2liaWxpdHlPYmplY3RfaAogCi0jaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlJhbmdl
LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVj
dGlvbi5oIgpAQCAtMzkyLDcgKzM5MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQWNjZXNzaWJp
bGl0eU9iamVjdCogYW5jaG9yRWxlbWVudEZvck5vZGUoTm9kZSopOwogICAgIHZpcnR1YWwgRWxl
bWVudCogYW5jaG9yRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIEVs
ZW1lbnQqIGFjdGlvbkVsZW1lbnQoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBJ
bnRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoKTsgfQorICAg
IHZpcnR1YWwgSW50UmVjdCBib3VuZGluZ0JveFJlY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIElu
dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRTaXplIHNpemUo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRQb2ludCBjbGlja1BvaW50KCkgY29uc3Q7CkBA
IC00NjYsNyArNDY1LDcgQEAgcHVibGljOgogICAgIFZpc2libGVQb3NpdGlvblJhbmdlIHZpc2li
bGVQb3NpdGlvblJhbmdlRm9yUmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmKSBjb25zdDsKIAog
ICAgIFN0cmluZyBzdHJpbmdGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9z
aXRpb25SYW5nZSYpIGNvbnN0OwotICAgIHZpcnR1YWwgSW50UmVjdCBib3VuZHNGb3JWaXNpYmxl
UG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0IHsgcmV0dXJu
IEludFJlY3QoKTsgfQorICAgIHZpcnR1YWwgSW50UmVjdCBib3VuZHNGb3JWaXNpYmxlUG9zaXRp
b25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0OwogICAgIGludCBsZW5n
dGhGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNv
bnN0IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3QgeyB9CiAKQEAgLTQ5Nyw3ICs0OTYsNyBA
QCBwdWJsaWM6CiAgICAgUGxhaW5UZXh0UmFuZ2UgZG9BWFN0eWxlUmFuZ2VGb3JJbmRleCh1bnNp
Z25lZCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBkb0FYU3RyaW5nRm9yUmFuZ2UoY29u
c3QgUGxhaW5UZXh0UmFuZ2UmKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQotICAgIHZpcnR1
YWwgSW50UmVjdCBkb0FYQm91bmRzRm9yUmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmKSBjb25z
dCB7IHJldHVybiBJbnRSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIEludFJlY3QgZG9BWEJvdW5kc0Zv
clJhbmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJikgY29uc3Q7CiAgICAgU3RyaW5nIGxpc3RNYXJr
ZXJUZXh0Rm9yTm9kZUFuZFBvc2l0aW9uKE5vZGUqLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBj
b25zdDsKIAogICAgIHVuc2lnbmVkIGRvQVhMaW5lRm9ySW5kZXgodW5zaWduZWQpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmgKaW5kZXggODMyYzVlMDg2M2NiMTdlMGFmNjIxMTNi
NGU5MWI0YmMwNWFiNmRhNS4uODcxNDE0MDQzN2M2ZTBhYzQxOTYyMjQ3MTkxMDkzZmJmNDQxOWMw
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oCkBAIC0zMiw2ICszMiw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNjcmlwdENvbnRyb2xsZXI7CiBjbGFzcyBTdHJp
bmdJbXBsOwogCisvLyBGSVhNRTogVGhlc2UgYXJlIHVzZWQgYnkgb3RoZXIgaGVhZGVycyBhbmQg
c2hvdWxkIGJlIG1vdmVkIHRvIHRoZXJpIG93biAuaAogdHlwZWRlZiBKU0M6OldlYWtHQ01hcDx2
b2lkKiwgRE9NT2JqZWN0Kj4gRE9NT2JqZWN0V3JhcHBlck1hcDsKIHR5cGVkZWYgSlNDOjpXZWFr
R0NNYXA8U3RyaW5nSW1wbCosIEpTQzo6SlNTdHJpbmcqPiBKU1N0cmluZ0NhY2hlOyAKIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IDI3YWM5ZTQ0MDVjZDM0MjliZGU3MmYw
M2E0YTgyMDgwMjU3Yzg3ODcuLmJjNzA2MmUxNWVhZGQ3YTNkM2RhNThmMTBiZGVjOTgzODg1YzA4
MTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTExNiw2ICsxMTYsMTIg
QEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PERPTVdyYXBwZXJXb3JsZCo+OjppdGVyYXRvciBtX2Vu
ZDsKIH07CiAKKy8vIFRoaXMgd2FzIG1vdmVkIGZyb20gSlNET01CaW5kaW5nLmggdG8gYXZvaWQg
aW5jbHVkaW5nIERvY3VtZW50LmgKK0RvY3VtZW50KiBET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVu
dDo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEb2N1bWVudCo+
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cit9CisKIGNvbnN0IEpTQzo6SGFzaFRhYmxlKiBn
ZXRIYXNoVGFibGVGb3JHbG9iYWxEYXRhKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3Qg
SlNDOjpIYXNoVGFibGUqIHN0YXRpY1RhYmxlKQogewogICAgIHJldHVybiBET01PYmplY3RIYXNo
VGFibGVNYXA6Om1hcEZvcihnbG9iYWxEYXRhKS5nZXQoc3RhdGljVGFibGUpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKaW5kZXggM2YyNTAyZDU2YzUzNDc0NjRiN2M1ZWM2ODY2MTY0NDI1
ZjUxZjM2NS4uM2EyYjUxNmY4ZmRjZDE5ZGMyOTIzNGQwNWQ3MDZkMzlmYThiMGIwOCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC0yMiwxNSArMjIsOSBAQAogI2lmbmRlZiBKU0RP
TUJpbmRpbmdfaAogI2RlZmluZSBKU0RPTUJpbmRpbmdfaAogCi0jaW5jbHVkZSAiSlNET01HbG9i
YWxPYmplY3QuaCIKLSNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKLSNpbmNsdWRlICJET01XcmFw
cGVyV29ybGQuaCIKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIgLy8gRm9yIEpTU3RyaW5n
Q2FjaGUKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIiAvLyBVc2VkIGJ5IGdldERPTVBy
b3RvdHlwZQogI2luY2x1ZGUgIkpTU1ZHQ29udGV4dENhY2hlLmgiCi0jaW5jbHVkZSAiRG9jdW1l
bnQuaCIKLSNpbmNsdWRlIDxydW50aW1lL0NvbXBsZXRpb24uaD4KLSNpbmNsdWRlIDxydW50aW1l
L0xvb2t1cC5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvV2Vha0dDTWFwLmg+Ci0jaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpTR2xvYmFsRGF0
YTsKQEAgLTEwNSwxMCArOTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgLy8gY2FuIG5l
dmVyIGJlIHVzZWQgZnJvbSBhIFdvcmtlckNvbnRleHQuCiAgICAgY2xhc3MgRE9NQ29uc3RydWN0
b3JXaXRoRG9jdW1lbnQgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogICAgIHB1Ymxp
YzoKLSAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PERvY3VtZW50Kj4oc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICAgICAgfQorICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKIAog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQoTm9uTnVs
bFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZWJ1Z1dy
YXBwZXJTZXQuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZWJ1Z1dyYXBwZXJTZXQuaAppbmRl
eCA5NGI2Zjc4ZmNmNDdiYzI4MThkMWEzN2U2MGI3ZWUxMDdlMGYzZDE3Li5jNzUzMmRkMWZiOGIz
YWY1NTcwNGExMDg4NjZjYWI2YjE0MWM5NDkzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRGVidWdXcmFwcGVyU2V0LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlYnVn
V3JhcHBlclNldC5oCkBAIC0zMCw2ICszMCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKK25hbWVzcGFjZSBXVEYgewordGVtcGxh
dGU8dHlwZW5hbWUgVD4gY2xhc3MgVGhyZWFkU3BlY2lmaWM7Cit9OworCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIC8vIEZvciBkZWJ1Z2dpbmcsIGtlZXAgYSBzZXQgb2Ygd3JhcHBlcnMgY3VycmVu
dGx5IGNhY2hlZCwgYW5kIGNoZWNrIHRoYXQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIaXN0b3J5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5Q3Vz
dG9tLmNwcAppbmRleCA2YTJmNjE0NGFiYzExNTUzMDM4ZjBhNTBjMjA0MmMzMDU3ZTExN2QxLi45
YjU4MDQ2MzQ4NDYwY2EwZDUzZGJhODVlOTZiNmIyZTcxODMwMmI0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hpc3RvcnlDdXN0b20uY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJIaXN0b3J5LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9u
Lmg+CisjaW5jbHVkZSA8cnVudGltZS9Mb29rdXAuaD4KICNpbmNsdWRlIDxydW50aW1lL1Byb3Rv
dHlwZUZ1bmN0aW9uLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0xvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCA3NjAwNWZhNWE5NTE0YmE4ZTU2Y2Q4NWU1ZmI1
MmJlNDYwY2YzMzk2Li5lOWU5OGY5MGRjYjIxYmFmMDc3NzA1ODM3YzU5ZjA4OTY1MGI5M2UyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJMb2NhdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDxydW50aW1lL0xvb2t1
cC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvUHJvdG90eXBlRnVuY3Rpb24uaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdG9yYWdlQ3Vz
dG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmNwcAppbmRleCA2
YTEyNmI3NjZhZDg4NzlmY2E1ZGFjNGVhYTYzMzFjOTE1NDBkZWU4Li5jYTVlMTI5MmQ4YTdiYjRk
ZTI1OTQyZTUxZDcyM2JlNGE1MmU1NTkzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU3RvcmFnZUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VD
dXN0b20uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQogCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDxydW50aW1lL0xvb2t1cC5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlICJTdG9yYWdl
LmgiCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4
IGU1MWRjMGY1ZWVkMmU5OWVlMDY0YWMzNzQ4ZTRiYjE5NWNjZTlkNjkuLmRmYjNmNjk4ZjkxYTlk
YjZiMzBlNTU5NTg2NGRiNmNmNTE4YjMxODkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTE5Myw2ICsxMTkzLDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KIAogICAgICRpbXBsSW5jbHVkZXN7Ijx3dGYvR2V0UHRyLmg+In0gPSAxOwog
ICAgICRpbXBsSW5jbHVkZXN7IjxydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5Lmg+In0gPSAxIGlm
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifTsK
KyAgICAkaW1wbEluY2x1ZGVzeyI8cnVudGltZS9Mb29rdXAuaD4ifSA9IDE7ICMgTmVlZGVkIGZv
ciBIYXNoVGFibGVWYWx1ZQogCiAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCRpbnRlcmZhY2VOYW1l
KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24u
aCBiL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggZjc3NTlm
NDU2MmUwOTViYjFmNDdhOGUwN2E5NmY1YTMxZWVhNGU0NS4uZGQ1ZTZkMmU0ODI4Njc5ZmVkZDhj
NzJhMTU2NmU5MjZmZTlkZjJkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24uaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbi5oCkBAIC0yMSw5ICsyMSw5IEBACiAjaWZuZGVmIENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uX2gKICNkZWZpbmUgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25faAogCi0jaW5jbHVkZSAi
Q1NTU3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCisj
aW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIgLy8gRm9yIENTU1ByaW1pdGl2ZVZhbHVlOjpV
bml0VHlwZXMKICNpbmNsdWRlICJDU1NQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIkNTU1N0eWxlRGVj
bGFyYXRpb24uaCIKICNpbmNsdWRlICJLVVJMSGFzaC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
aAppbmRleCBjMmE0ZGMzODkyZTEyZjg1MjFmMjNiMzVjZTEyZjZhNmEyY2I5MDgxLi40NmJiMGVi
YTM1NGY1MjljM2Q2Y2ZiZWE0NjExMThkNjNkYTdmYjU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
LmgKQEAgLTQwLDYgKzQwLDcgQEAgc3RydWN0IExlbmd0aDsKIAogY2xhc3MgQ1NTUHJpbWl0aXZl
VmFsdWUgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgorICAgIC8vIEZJWE1FOiBUaGlzIGlz
IHVzZWQgYnkgb3RoZXIgaGVhZGVycyBhbmQgc2hvdWxkIHByb2JhYmx5IG1vdmUgaW50byBpdHMg
b3duIGhlYWRlci4KICAgICBlbnVtIFVuaXRUeXBlcyB7CiAgICAgICAgIENTU19VTktOT1dOID0g
MCwKICAgICAgICAgQ1NTX05VTUJFUiA9IDEsCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmggYi9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKaW5kZXggOTc4OWYxZjIy
ZmYwNTViMWZlOGU1NDc3YWNmZmZiYzdiMDZkNGQ3MC4uN2JjNTRmZjM2YzI5YTYwZWYwNGExZGVj
M2IwYmRhMDhkNDg4Zjk5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5o
CisrKyBiL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaApAQCAtMjUsMTAgKzI1LDkgQEAKICNk
ZWZpbmUgQ29udGFpbmVyTm9kZV9oCiAKICNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSAiRmxv
YXRQb2ludC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCisKIHR5cGVkZWYgdm9pZCAo
Kk5vZGVDYWxsYmFjaykoTm9kZSopOwogCiBuYW1lc3BhY2UgUHJpdmF0ZSB7IApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDhk
YTI4OTJiYjY1ZjEzNDdmOWJhZTZmYmRiM2NkN2Q4ODE4ZTFlNTcuLmI0Mzg3ZWUzODJkOWNhZGI5
ODVkMWRiODc0OTUzMGQxNzE0MzNkZjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAorKysgYi9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTI2LDkgKzI2LDggQEAKICNkZWZpbmUg
RWxlbWVudF9oCiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCi0jaW5jbHVkZSAiRG9jdW1l
bnQuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGVF
bnRyeS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiIC8vIFVzZWQgYnkgRWxlbWVudDo6dXBkYXRl
SWQKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIgLy8gVXNlZCBieSBFbGVtZW50OjppZEF0dHJpYnV0
ZU5hbWUKICNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1l
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL05v
ZGUuaCBiL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBmZDViMzdmNTZkYTM5MTE1OGQzZGZiMDkz
N2ZjYjgyZTI5ZmU5ODVkLi5lY2JjODQ1MjM1ZDk4MDc4MTQyZGQxNTc1MzE4Njg1YmZjYzRjODIw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvV2ViQ29yZS9kb20vTm9kZS5o
CkBAIC0yNiw3ICsyNiw3IEBACiAjZGVmaW5lIE5vZGVfaAogCiAjaW5jbHVkZSAiRXZlbnRUYXJn
ZXQuaCIKLSNpbmNsdWRlICJLVVJMSGFzaC5oIgorI2luY2x1ZGUgIktVUkxIYXNoLmgiIC8vIFVz
ZWQgYnkgYWRkU3VicmVzb3VyY2VVUkwKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5o
IgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgogI2luY2x1ZGUgIlRyZWVTaGFyZWQuaCIK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaCBiL1dlYkNvcmUvZG9tL1N0
eWxlZEVsZW1lbnQuaAppbmRleCA2ZmFjY2U3YTYxMWQyYWFhZGNlZjJkZmJjYTExMWNlMDU2M2Iy
MWI1Li5mMWQ4MTUzYTM4ZmIzNzBmMzFkZDE4NTM4MzFkOTM3NmY1YmM4MWNmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vU3R5bGVkRWxl
bWVudC5oCkBAIC0yNSwxNiArMjUsMTUgQEAKICNpZm5kZWYgU3R5bGVkRWxlbWVudF9oCiAjZGVm
aW5lIFN0eWxlZEVsZW1lbnRfaAogCi0jaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uaCIKLSNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKICNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGVFbnRyeS5oIgotI2luY2x1ZGUgIk5hbWVkTm9k
ZU1hcC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF0dHJpYnV0ZTsKIGNsYXNz
IENTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uOworY2xhc3MgQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb247CitjbGFzcyBOYW1lZE5vZGVNYXA7CiAKIGNsYXNzIFN0eWxlZEVsZW1lbnQgOiBw
dWJsaWMgRWxlbWVudCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvVmlz
aWJsZVBvc2l0aW9uLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwCmlu
ZGV4IDFiNGE1MTQ5ZGY4M2VmZTM4YzY0NjdkMjVmOGJkN2ZjMmFlYTcxNGUuLmRkNTY2MGYzMzYx
NzhiYzliOGFkZTlmZjIyZmEyYmM4MTQ4MDVhNDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGlu
Zy9WaXNpYmxlUG9zaXRpb24uY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRp
b24uY3BwCkBAIC01NzMsNiArNTczLDExIEBAIHZvaWQgVmlzaWJsZVBvc2l0aW9uOjpkZWJ1Z1Bv
c2l0aW9uKGNvbnN0IGNoYXIqIG1zZykgY29uc3QKICAgICAgICAgZnByaW50ZihzdGRlcnIsICJQ
b3NpdGlvbiBbJXNdOiAlcyBbJXBdIGF0ICVkXG4iLCBtc2csIG1fZGVlcFBvc2l0aW9uLm5vZGUo
KS0+bm9kZU5hbWUoKS51dGY4KCkuZGF0YSgpLCBtX2RlZXBQb3NpdGlvbi5ub2RlKCksIG1fZGVl
cFBvc2l0aW9uLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkpOwogfQogCitFbGVtZW50KiBWaXNp
YmxlUG9zaXRpb246OnJvb3RFZGl0YWJsZUVsZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBt
X2RlZXBQb3NpdGlvbi5pc05vdE51bGwoKSA/IG1fZGVlcFBvc2l0aW9uLm5vZGUoKS0+cm9vdEVk
aXRhYmxlRWxlbWVudCgpIDogMDsKK30KKwogI2lmbmRlZiBOREVCVUcKIAogdm9pZCBWaXNpYmxl
UG9zaXRpb246OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3Ro
KSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5oIGIv
V2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5oCmluZGV4IGZlNzk1YTEyMjk0MWM1NWI4
MDJlMmM3YzJhZTc3ZjNlMjA4NWNhYzMuLmIwOGUxMzU0MDI3MGI0OTcwOGRiMzJkNGU0YzJiN2Qx
NjY5NGJhYTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uaAor
KysgYi9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmgKQEAgLTI2LDkgKzI2LDcgQEAK
ICNpZm5kZWYgVmlzaWJsZVBvc2l0aW9uX2gKICNkZWZpbmUgVmlzaWJsZVBvc2l0aW9uX2gKIAot
I2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQb3NpdGlvbi5oIgotI2luY2x1ZGUgIlRleHRE
aXJlY3Rpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04Miw5ICs4MCw5IEBAIHB1
YmxpYzoKICAgICBVQ2hhcjMyIGNoYXJhY3RlckJlZm9yZSgpIGNvbnN0IHsgcmV0dXJuIHByZXZp
b3VzKCkuY2hhcmFjdGVyQWZ0ZXIoKTsgfQogICAgIAogICAgIHZvaWQgZGVidWdQb3NpdGlvbihj
b25zdCBjaGFyKiBtc2cgPSAiIikgY29uc3Q7Ci0gICAgCi0gICAgRWxlbWVudCogcm9vdEVkaXRh
YmxlRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVlcFBvc2l0aW9uLmlzTm90TnVsbCgpID8g
bV9kZWVwUG9zaXRpb24ubm9kZSgpLT5yb290RWRpdGFibGVFbGVtZW50KCkgOiAwOyB9Ci0gICAg
CisKKyAgICBFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50KCkgY29uc3Q7CisKICAgICB2b2lk
IGdldElubGluZUJveEFuZE9mZnNldChJbmxpbmVCb3gqJiBpbmxpbmVCb3gsIGludCYgY2FyZXRP
ZmZzZXQpIGNvbnN0CiAgICAgewogICAgICAgICBtX2RlZXBQb3NpdGlvbi5nZXRJbmxpbmVCb3hB
bmRPZmZzZXQobV9hZmZpbml0eSwgaW5saW5lQm94LCBjYXJldE9mZnNldCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaCBiL1dlYkNvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0SG9zdC5oCmluZGV4IGJlZmZjOWQ5OGZmMTNhNzQ2YzZhMGE0OWVi
MTU3NzFlNjZlNmI2ZmUuLmE5MTEyODZlYWI2ODY0NWMyNjEyMzliY2E1ZjIwOWI2MzA5OWUzNGUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oCkBAIC0zMCwyMiArMzAsMjMg
QEAKICNpZm5kZWYgSW5qZWN0ZWRTY3JpcHRIb3N0X2gKICNkZWZpbmUgSW5qZWN0ZWRTY3JpcHRI
b3N0X2gKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0
ZS5oIgogCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgRGF0YWJhc2U7CiBjbGFzcyBJbmplY3RlZFNjcmlwdDsKK2NsYXNzIEluc3BlY3Rv
ckNvbnRyb2xsZXI7CiBjbGFzcyBJbnNwZWN0b3JET01BZ2VudDsKIGNsYXNzIEluc3BlY3RvckZy
b250ZW5kOwogY2xhc3MgTm9kZTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKK2NsYXNz
IFNjcmlwdE9iamVjdDsKIGNsYXNzIFN0b3JhZ2U7CiAKIGNsYXNzIEluamVjdGVkU2NyaXB0SG9z
dCA6IHB1YmxpYyBSZWZDb3VudGVkPEluamVjdGVkU2NyaXB0SG9zdD4KQEAgLTk1LDEwICs5Niwx
MCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgY2FuQWNjZXNzSW5zcGVjdGVkV2luZG93KFNj
cmlwdFN0YXRlKik7CiAKIHByaXZhdGU6Ci0gICAgSW5qZWN0ZWRTY3JpcHRIb3N0KEluc3BlY3Rv
ckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIpOworICAgIEluamVjdGVkU2NyaXB0SG9z
dChJbnNwZWN0b3JDb250cm9sbGVyKik7CiAgICAgSW5zcGVjdG9yRE9NQWdlbnQqIGluc3BlY3Rv
ckRPTUFnZW50KCk7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIGluc3BlY3RvckZyb250ZW5kKCk7
Ci0gICAgU2NyaXB0T2JqZWN0IGNyZWF0ZUluamVjdGVkU2NyaXB0KGNvbnN0IFN0cmluZyYgc291
cmNlLCBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUsIGxvbmcgaWQpOworICAgIFNjcmlwdE9iamVj
dCBjcmVhdGVJbmplY3RlZFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZSwgU2NyaXB0U3RhdGUq
LCBsb25nIGlkKTsKIAogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIG1faW5zcGVjdG9yQ29udHJv
bGxlcjsKICAgICBTdHJpbmcgbV9pbmplY3RlZFNjcmlwdFNvdXJjZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmggYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NTdG9yZS5oCmluZGV4IDRiN2VmNTE1ZmZmNjlhOGVjYWY4ZjAwMzM2ZDJhZDYx
NmU1ZmIwMjEuLjY0ZDhjYzZhMzI1ZWU1MDJiZGQzNzQxMDM1NzVkZGQ2NzRkYjhiNmIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmgKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaApAQCAtNDcsNiArNDcsOCBAQCBjbGFzcyBD
U1NTdHlsZVNoZWV0OwogY2xhc3MgU3RyaW5nOwogY2xhc3MgU3R5bGVCYXNlOwogCisvLyBGSVhN
RTogSWYgdGhlc2UgdHlwZWRlZnMgYXJlIGluZGVuZGVkIHRvIGJlIHNoYXJlZCBiZXR3ZWVuIGhl
YWRlcnMKKy8vIHRoZXkgc2hvdWxkIHByb2JhYmx5IGhhdmUgdGhlaXIgb3duIGhlYWRlciB0byBt
aW5pbWl6ZSBpbmNsdWRlIGRlcGVuZGVuY2llcy4KIHR5cGVkZWYgc3RkOjpwYWlyPFN0cmluZywg
U3RyaW5nPiBQcm9wZXJ0eVZhbHVlQW5kUHJpb3JpdHk7CiB0eXBlZGVmIHN0ZDo6cGFpcjx1bnNp
Z25lZCwgdW5zaWduZWQ+IFNvdXJjZVJhbmdlOwogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUHJv
cGVydHlWYWx1ZUFuZFByaW9yaXR5PiBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb247CkBAIC02Myw3
ICs2NSw3IEBAIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8RG9jdW1lbnQ+LCBSZWZQdHI8Q1NTU3R5
bGVTaGVldD4gPiBEb2N1bWVudFRvU3R5bGVTaGVldE1hCiBjbGFzcyBJbnNwZWN0b3JDU1NTdG9y
ZSB7CiAKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JDU1NTdG9yZShJbnNwZWN0b3JDb250cm9sbGVy
KiBpbnNwZWN0b3JDb250cm9sbGVyKTsKKyAgICBJbnNwZWN0b3JDU1NTdG9yZShJbnNwZWN0b3JD
b250cm9sbGVyKik7CiAgICAgfkluc3BlY3RvckNTU1N0b3JlKCk7CiAgICAgdm9pZCByZXNldCgp
OwogICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IGdldFJ1bGVSYW5nZXNGb3JTdHlsZVNo
ZWV0KENTU1N0eWxlU2hlZXQqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNw
cAppbmRleCAzMzhkYzMzZWQwMGFkMDIzNWE0NmFjMWUyY2Q1NzYwMGJhYTIxYzBlLi4wNDUwMjFh
ODAzOWIzNjU2NDUwYzkyYmY0MGU4MzQwYjNkNTc2ODkwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCkBAIC03Miw2ICs3MiwyMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKy8vIFRoaXMgbWF5IGVuZCB1cCBpbiBpdHMgb3duIGhlYWRlci4gIEl0IHNob3VsZCBu
b3QgZ28gaW4gSW5zcGVjdG9yRE9NQWdlbnQuaAorc3RydWN0IEV2ZW50TGlzdGVuZXJJbmZvIHsK
KyAgICBFdmVudExpc3RlbmVySW5mbyhOb2RlKiBub2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgY29uc3QgRXZlbnRMaXN0ZW5lclZlY3RvciYgZXZlbnRMaXN0ZW5lclZlY3RvcikK
KyAgICAgICAgOiBub2RlKG5vZGUpCisgICAgICAgICwgZXZlbnRUeXBlKGV2ZW50VHlwZSkKKyAg
ICAgICAgLCBldmVudExpc3RlbmVyVmVjdG9yKGV2ZW50TGlzdGVuZXJWZWN0b3IpCisgICAgewor
ICAgIH0KKworICAgIE5vZGUqIG5vZGU7CisgICAgY29uc3QgQXRvbWljU3RyaW5nIGV2ZW50VHlw
ZTsKKyAgICBjb25zdCBFdmVudExpc3RlbmVyVmVjdG9yIGV2ZW50TGlzdGVuZXJWZWN0b3I7Cit9
OworCiBJbnNwZWN0b3JET01BZ2VudDo6SW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVjdG9yQ1NTU3Rv
cmUqIGNzc1N0b3JlLCBJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiAgICAgOiBFdmVudExp
c3RlbmVyKEluc3BlY3RvckRPTUFnZW50VHlwZSkKICAgICAsIG1fY3NzU3RvcmUoY3NzU3RvcmUp
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCBmODkyNWI1ZmY2NTJlNmIw
Njc2MzQ0MjAxYzQ0NjI0NDBiN2I4NDBlLi43NzZjNjY2MWI2MmFiM2JmNmNmNTM4MGNmZDBjZjU3
Mzk1Y2JiMDJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTMwLDE4
ICszMCwxMiBAQAogI2lmbmRlZiBJbnNwZWN0b3JET01BZ2VudF9oCiAjZGVmaW5lIEluc3BlY3Rv
ckRPTUFnZW50X2gKIAotI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgogI2luY2x1ZGUgIkV2ZW50
TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJFdmVudFRhcmdldC5oIgotI2luY2x1ZGUgIkluc3BlY3Rv
ckNTU1N0b3JlLmgiCi0jaW5jbHVkZSAiU2NyaXB0QXJyYXkuaCIKLSNpbmNsdWRlICJTY3JpcHRP
YmplY3QuaCIKLSNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNT
U1N0b3JlLmgiIC8vIEZvciBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb24KIAogI2luY2x1ZGUgPHd0
Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTQsMjMgKzQ4LDE0IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBFbGVtZW50OwogICAgIGNsYXNzIEV2ZW50OwogICAg
IGNsYXNzIERvY3VtZW50OworICAgIGNsYXNzIEluc3BlY3RvckNTU1N0b3JlOwogICAgIGNsYXNz
IEluc3BlY3RvckZyb250ZW5kOwogICAgIGNsYXNzIE5hbWVOb2RlTWFwOwogICAgIGNsYXNzIE5v
ZGU7CiAgICAgY2xhc3MgUGFnZTsKLQotICAgIHN0cnVjdCBFdmVudExpc3RlbmVySW5mbyB7Ci0g
ICAgICAgIEV2ZW50TGlzdGVuZXJJbmZvKE5vZGUqIG5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBjb25zdCBFdmVudExpc3RlbmVyVmVjdG9yJiBldmVudExpc3RlbmVyVmVjdG9y
KQotICAgICAgICAgICAgOiBub2RlKG5vZGUpCi0gICAgICAgICAgICAsIGV2ZW50VHlwZShldmVu
dFR5cGUpCi0gICAgICAgICAgICAsIGV2ZW50TGlzdGVuZXJWZWN0b3IoZXZlbnRMaXN0ZW5lclZl
Y3RvcikKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgTm9kZSogbm9kZTsKLSAgICAg
ICAgY29uc3QgQXRvbWljU3RyaW5nIGV2ZW50VHlwZTsKLSAgICAgICAgY29uc3QgRXZlbnRMaXN0
ZW5lclZlY3RvciBldmVudExpc3RlbmVyVmVjdG9yOwotICAgIH07CisgICAgY2xhc3MgUmVnaXN0
ZXJlZEV2ZW50TGlzdGVuZXI7CisgICAgY2xhc3MgU2NyaXB0QXJyYXk7CisgICAgY2xhc3MgU2Ny
aXB0T2JqZWN0OwogCiAgICAgY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQgOiBwdWJsaWMgRXZlbnRM
aXN0ZW5lciB7CiAgICAgcHVibGljOgpAQCAtMTMxLDggKzExNiw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBDU1NTdHlsZVNoZWV0KiBnZXRQ
YXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRpb24qKTsKLSAgICAgICAgdm9pZCBzdGFy
dExpc3RlbmluZyhEb2N1bWVudCogZG9jdW1lbnQpOwotICAgICAgICB2b2lkIHN0b3BMaXN0ZW5p
bmcoRG9jdW1lbnQqIGRvY3VtZW50KTsKKyAgICAgICAgdm9pZCBzdGFydExpc3RlbmluZyhEb2N1
bWVudCopOworICAgICAgICB2b2lkIHN0b3BMaXN0ZW5pbmcoRG9jdW1lbnQqKTsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50
KiBldmVudCk7CiAKQEAgLTE0MywxNCArMTI4LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICBib29sIHB1c2hEb2N1bWVudFRvRnJvbnRlbmQoKTsKIAotICAgICAgICBTY3JpcHRP
YmplY3QgYnVpbGRPYmplY3RGb3JBdHRyaWJ1dGVTdHlsZXMoRWxlbWVudCogZWxlbWVudCk7Cisg
ICAgICAgIFNjcmlwdE9iamVjdCBidWlsZE9iamVjdEZvckF0dHJpYnV0ZVN0eWxlcyhFbGVtZW50
Kik7CiAgICAgICAgIFNjcmlwdEFycmF5IGJ1aWxkQXJyYXlGb3JDU1NSdWxlcyhEb2N1bWVudCog
b3duZXJEb2N1bWVudCwgQ1NTUnVsZUxpc3QqKTsKICAgICAgICAgU2NyaXB0QXJyYXkgYnVpbGRB
cnJheUZvclBzZXVkb0VsZW1lbnRzKEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgYXV0aG9yT25seSk7
CiAKICAgICAgICAgU2NyaXB0T2JqZWN0IGJ1aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiBub2RlLCBp
bnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7Ci0gICAgICAgIFNjcmlwdEFycmF5IGJ1
aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhFbGVtZW50KiBlbGVtZW50KTsKLSAgICAgICAg
U2NyaXB0QXJyYXkgYnVpbGRBcnJheUZvckNvbnRhaW5lckNoaWxkcmVuKE5vZGUqIGNvbnRhaW5l
ciwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCogbm9kZXNNYXApOwotICAgICAgICBTY3JpcHRPYmpl
Y3QgYnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3Rl
bmVyJiByZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIE5vZGUqIG5vZGUpOworICAgICAgICBTY3JpcHRBcnJheSBidWlsZEFycmF5Rm9yRWxlbWVu
dEF0dHJpYnV0ZXMoRWxlbWVudCopOworICAgICAgICBTY3JpcHRBcnJheSBidWlsZEFycmF5Rm9y
Q29udGFpbmVyQ2hpbGRyZW4oTm9kZSogY29udGFpbmVyLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFw
Kik7CisgICAgICAgIFNjcmlwdE9iamVjdCBidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIoY29u
c3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgTm9kZSopOwogCiAgICAgICAgIC8vIFdlIHJlcHJlc2VudCBlbWJlZGRlZCBkb21zIGFzIGEg
cGFydCBvZiB0aGUgc2FtZSBoaWVyYXJjaHkuIEhlbmNlIHdlIHRyZWF0IGNoaWxkcmVuIG9mIGZy
YW1lIG93bmVycyBkaWZmZXJlbnRseS4KICAgICAgICAgLy8gV2UgYWxzbyBza2lwIHdoaXRlc3Bh
Y2UgdGV4dCBub2RlcyBjb25kaXRpb25hbGx5LiBGb2xsb3dpbmcgbWV0aG9kcyBlbmNhcHN1bGF0
ZSB0aGVzZSBzcGVjaWZpY3MuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9z
dC5oCmluZGV4IDRkM2UwZDE0YmU4Y2VhNzJhN2UyM2I3OGFkYWFmMmQwY2NmZmE0NjIuLmRhODYx
NmJhMTQzODdhNTU4ODQ4ZjdkN2JkZDFlMTcxNTJiZjI4NmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kSG9zdC5oCkBAIC0yOSwxMiArMjksNyBAQAogI2lmbmRlZiBJbnNw
ZWN0b3JGcm9udGVuZEhvc3RfaAogI2RlZmluZSBJbnNwZWN0b3JGcm9udGVuZEhvc3RfaAogCi0j
aW5jbHVkZSAiQ29uc29sZS5oIgotI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCi0jaW5jbHVkZSAi
Q29udGV4dE1lbnVQcm92aWRlci5oIgotI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIK
LSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IApAQCAtNDYsNiArNDEsOCBAQCBjbGFzcyBGcm9udGVuZE1lbnVQcm92aWRlcjsKIGNsYXNzIElu
c3BlY3RvckNsaWVudDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50OwogY2xhc3MgTm9k
ZTsKK2NsYXNzIFBhZ2U7CitjbGFzcyBTdHJpbmc7CiAKIGNsYXNzIEluc3BlY3RvckZyb250ZW5k
SG9zdCA6IHB1YmxpYyBSZWZDb3VudGVkPEluc3BlY3RvckZyb250ZW5kSG9zdD4KIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZEltYWdlLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0Nh
Y2hlZEltYWdlLmNwcAppbmRleCA5YWU4ZDIwMGI5ZjU4OWE1M2I4NDRlZDlmMjMzYTA0NzgwN2Fm
NjRhLi4xYjU1MmZiODQzNTM5NzdiYzc0MDJjMzg1ZDJiNzQ4NDI4NTJmOWU0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2xvYWRlci9DYWNoZWRJbWFnZS5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ2Fj
aGVkSW1hZ2UuY3BwCkBAIC0xMzgsNiArMTM4LDExIEBAIEltYWdlKiBDYWNoZWRJbWFnZTo6aW1h
Z2UoKSBjb25zdAogICAgIHJldHVybiBudWxsSW1hZ2UoKTsKIH0KIAorYm9vbCBDYWNoZWRJbWFn
ZTo6Y2FuUmVuZGVyKGZsb2F0IG11bHRpcGxpZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuICFlcnJv
ck9jY3VycmVkKCkgJiYgIWltYWdlU2l6ZShtdWx0aXBsaWVyKS5pc0VtcHR5KCk7Cit9CisKIHZv
aWQgQ2FjaGVkSW1hZ2U6OnNldEltYWdlQ29udGFpbmVyU2l6ZShjb25zdCBJbnRTaXplJiBjb250
YWluZXJTaXplKQogewogICAgIGlmIChtX2ltYWdlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvQ2FjaGVkSW1hZ2UuaCBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZEltYWdlLmgKaW5kZXggYjRh
MDMyYWE0NTBiMzRiOTczODBjNTFhMTgxNWEzZTFhODI3MTFkNC4uMGQ5M2Y3M2EzODIwZGQwNWVk
Njk3M2JkNzQ1ODQ2YzIzNDEyN2FmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVk
SW1hZ2UuaAorKysgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRJbWFnZS5oCkBAIC0yNSwxNCArMjUs
MTQgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiSW1hZ2VPYnNl
cnZlci5oIgotI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2NMb2Fk
ZXI7CiBjbGFzcyBDYWNoZTsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBJbnRTaXplOwogCiBjbGFz
cyBDYWNoZWRJbWFnZSA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSwgcHVibGljIEltYWdlT2JzZXJ2
ZXIgewogICAgIGZyaWVuZCBjbGFzcyBDYWNoZTsKQEAgLTQxLDEyICs0MSwxMiBAQCBwdWJsaWM6
CiAgICAgQ2FjaGVkSW1hZ2UoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIENhY2hlZEltYWdlKElt
YWdlKik7CiAgICAgdmlydHVhbCB+Q2FjaGVkSW1hZ2UoKTsKLSAgICAKLSAgICB2aXJ0dWFsIHZv
aWQgbG9hZChEb2NMb2FkZXIqIGRvY0xvYWRlcik7CisKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChE
b2NMb2FkZXIqKTsKIAogICAgIEltYWdlKiBpbWFnZSgpIGNvbnN0OwogCi0gICAgYm9vbCBjYW5S
ZW5kZXIoZmxvYXQgbXVsdGlwbGllcikgY29uc3QgeyByZXR1cm4gIWVycm9yT2NjdXJyZWQoKSAm
JiAhaW1hZ2VTaXplKG11bHRpcGxpZXIpLmlzRW1wdHkoKTsgfQorICAgIGJvb2wgY2FuUmVuZGVy
KGZsb2F0IG11bHRpcGxpZXIpIGNvbnN0OwogCiAgICAgLy8gVGhlc2UgYXJlIG9ubHkgdXNlZCBm
b3IgU1ZHSW1hZ2UgcmlnaHQgbm93CiAgICAgdm9pZCBzZXRJbWFnZUNvbnRhaW5lclNpemUoY29u
c3QgSW50U2l6ZSYpOwpAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkKCk7
CiAKICAgICAvLyBJbWFnZU9ic2VydmVyCi0gICAgdmlydHVhbCB2b2lkIGRlY29kZWRTaXplQ2hh
bmdlZChjb25zdCBJbWFnZSogaW1hZ2UsIGludCBkZWx0YSk7CisgICAgdmlydHVhbCB2b2lkIGRl
Y29kZWRTaXplQ2hhbmdlZChjb25zdCBJbWFnZSosIGludCBkZWx0YSk7CiAgICAgdmlydHVhbCB2
b2lkIGRpZERyYXcoY29uc3QgSW1hZ2UqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQYXVz
ZUFuaW1hdGlvbihjb25zdCBJbWFnZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5k
ZXggNzY4MjAxMTcwZGIxZTE3OTQ0OTliNjU4MWJmNTVhZWE2Y2M3YThkMC4uMzQ5MDg1OWNiNWY0
ODc2YjBiMWM4MzY1OGViZTBmMDM0YjY3Y2JmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQu
Y3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRl
ICJGb250Q2FjaGUuaCIKKyNpbmNsdWRlICJGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJGb250
VHJhbnNjb2Rlci5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiR2x5cGhCdWZm
ZXIuaCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNr
TGlzdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuY3Bw
CmluZGV4IDY0OWMxMTdhNGM2NGJhZGQ1NTllM2QzZTE3NWNjZTJkYjNlZWQ0M2IuLmFlYjYyMmJh
ZWE4OGNiYzYxNDgyMjExYTJjMjBmM2NlZmVkNTZkNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udEZhbGxiYWNrTGlzdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250RmFsbGJhY2tMaXN0LmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5j
bHVkZSAiRm9udC5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgorI2luY2x1ZGUgIkZvbnRTZWxl
Y3Rvci5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZEZvbnREYXRhLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTQ2LDYgKzQ3LDExIEBAIEZvbnRGYWxsYmFja0xpc3Q6OkZvbnRGYWxsYmFja0xp
c3QoKQogewogfQogCitGb250RmFsbGJhY2tMaXN0Ojp+Rm9udEZhbGxiYWNrTGlzdCgpCit7Cisg
ICAgcmVsZWFzZUZvbnREYXRhKCk7Cit9CisKIHZvaWQgRm9udEZhbGxiYWNrTGlzdDo6aW52YWxp
ZGF0ZShQYXNzUmVmUHRyPEZvbnRTZWxlY3Rvcj4gZm9udFNlbGVjdG9yKQogewogICAgIHJlbGVh
c2VGb250RGF0YSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
RmFsbGJhY2tMaXN0LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xp
c3QuaAppbmRleCBhMTBmNWFmODllMmRiMjFjNDQ4MzBiZjBkMGE3NjU4ZDgzZmRmYTc1Li5hMzQ3
MGQyNzhlNzg1NTU1ODQwZGYzNDAwYTZhMzIyZmNiN2RhNGZlIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRGYWxsYmFja0xpc3QuaApAQCAtMjEsOCArMjEsNyBAQAogI2lmbmRl
ZiBGb250RmFsbGJhY2tMaXN0X2gKICNkZWZpbmUgRm9udEZhbGxiYWNrTGlzdF9oCiAKLSNpbmNs
dWRlICJGb250U2VsZWN0b3IuaCIKLSNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgorI2luY2x1
ZGUgIlNpbXBsZUZvbnREYXRhLmgiIC8vIEZvciBQaXRjaAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQxLDcgKzQwLDcgQEAgY2xhc3MgRm9udEZh
bGxiYWNrTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPEZvbnRGYWxsYmFja0xpc3Q+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGb250RmFsbGJhY2tMaXN0PiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgRm9udEZhbGxiYWNrTGlzdCgpKTsgfQogCi0gICAgfkZvbnRGYWxs
YmFja0xpc3QoKSB7IHJlbGVhc2VGb250RGF0YSgpOyB9CisgICAgfkZvbnRGYWxsYmFja0xpc3Qo
KTsKICAgICB2b2lkIGludmFsaWRhdGUoUGFzc1JlZlB0cjxGb250U2VsZWN0b3I+KTsKICAgICAK
ICAgICBib29sIGlzRml4ZWRQaXRjaChjb25zdCBGb250KiBmKSBjb25zdCB7IGlmIChtX3BpdGNo
ID09IFVua25vd25QaXRjaCkgZGV0ZXJtaW5lUGl0Y2goZik7IHJldHVybiBtX3BpdGNoID09IEZp
eGVkUGl0Y2g7IH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGgu
aCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCmluZGV4IGI2OTY3MGY3NjM3NTVk
MGZkYjc4MTcyYWZkMzQyMzhmZjczNmI2MTcuLmJlYWUzYjFjOTZjMjdhMTFlNWMzNTMyZmI2NjEz
OWExMDI3NTM1NTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCkBAIC04MCw2ICs4MCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTdHJpbmc7CiAgICAgY2xhc3MgU3Ryb2tl
U3R5bGVBcHBsaWVyOwogCisgICAgLy8gRklYTUU6IFRoaXMgaXMgdXNlZCBieSBvdGhlciBoZWFk
ZXJzIGFuZCBzaG91bGQgcHJvYmFibHkgbW92ZSB0byBpdHMgb3duIC5oCiAgICAgZW51bSBXaW5k
UnVsZSB7CiAgICAgICAgIFJVTEVfTk9OWkVSTyA9IDAsCiAgICAgICAgIFJVTEVfRVZFTk9ERCA9
IDEKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEu
aCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAppbmRleCBiYzg5
N2JlMzFkZjhjNGJhNDBlOWE4M2Y3NzgyMzA5YmEzN2M1ZTMwLi4zMjlhY2IxYTNmNTNmOTQ4YzQ3
YmExMWUwYWQ5YTZmODkwYWI1MTc3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NpbXBsZUZvbnREYXRhLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1w
bGVGb250RGF0YS5oCkBAIC02NSw2ICs2NSw3IEBAIGNsYXNzIEZvbnRQbGF0Zm9ybURhdGE7CiBj
bGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBTVkdGb250RGF0YTsKIAorLy8gRklYTUU6IFRoaXMg
aXMgdXNlZCBieSBvdGhlciBoZWFkZXJzIGFuZCBzaG91bGQgcHJvYmFibHkgaGF2ZSBpdHMgb3du
IGhlYWRlci4KIGVudW0gUGl0Y2ggeyBVbmtub3duUGl0Y2gsIEZpeGVkUGl0Y2gsIFZhcmlhYmxl
UGl0Y2ggfTsKIAogY2xhc3MgU2ltcGxlRm9udERhdGEgOiBwdWJsaWMgRm9udERhdGEgewpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAppbmRleCBmMmIzMTM5M2E1MzQyMjk5MmU5NzQxZGE5MTM2MWUy
MDQzMmZkOThlLi4xNDdkZTFiY2ZmN2Y0OTg0OWUyYTRmOTViMTkxZDVlZTc0Y2FlNTFiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNTExLDYgKzUxMSw4IEBAIHB1YmxpYzoKICAgICAg
KiBQYWludCB0aGUgb2JqZWN0IGFuZCBpdHMgY2hpbGRyZW4sIGNsaXBwZWQgYnkgKHh8eXx3fGgp
LgogICAgICAqICh0eHx0eSkgaXMgdGhlIGNhbGN1bGF0ZWQgcG9zaXRpb24gb2YgdGhlIHBhcmVu
dAogICAgICAqLworICAgIC8vIEZJWE1FOiBUaGlzIGJlbG9uZ3MgaW4gaXRzIG93biBoZWFkZXIg
c28gdGhhdCBvdGhlciBoZWFkZXJzIGNhbiBpbmNsdWRlCisgICAgLy8gaXQgd2l0aG91dCBicmlu
Z2luZyBpbiBhbGwgb2YgUmVuZGVyT2JqZWN0LmgKICAgICBzdHJ1Y3QgUGFpbnRJbmZvIHsKICAg
ICAgICAgUGFpbnRJbmZvKEdyYXBoaWNzQ29udGV4dCogbmV3Q29udGV4dCwgY29uc3QgSW50UmVj
dCYgbmV3UmVjdCwgUGFpbnRQaGFzZSBuZXdQaGFzZSwgYm9vbCBuZXdGb3JjZUJsYWNrVGV4dCwK
ICAgICAgICAgICAgICAgICAgIFJlbmRlck9iamVjdCogbmV3UGFpbnRpbmdSb290LCBMaXN0SGFz
aFNldDxSZW5kZXJJbmxpbmUqPiogbmV3T3V0bGluZU9iamVjdHMsCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaAppbmRleCAzNzQ0Mzg5NTc3ZGRlZGEy
MjU0ZjFhMDc4ZTg2NzlkNTNmZjZiMjVlLi5hZWUzMzUxN2IyNDdjMmI3NjA1ODdjMmQxOGMzODRm
NzBkNjRmZjkwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJj
ZUNvbnRhaW5lci5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlQ29u
dGFpbmVyLmgKQEAgLTI2LDEyICsyNiwxNCBAQAogCiAjaW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNm
b3JtYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgorI2luY2x1
ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBS
ZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciA6IHB1YmxpYyBSZW5kZXJTVkdIaWRkZW5Db250YWlu
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBSZW5kZXJTVkdS
ZXNvdXJjZSB7CiBwdWJsaWM6CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGFsbCBtb3ZlIHRv
IGEgLmNwcCBmaWxlIHRvIGF2b2lkIHNvIG1hbnkgaGVhZGVyIGluY2x1ZGVzLgogICAgIFJlbmRl
clNWR1Jlc291cmNlQ29udGFpbmVyKFNWR1N0eWxlZEVsZW1lbnQqIG5vZGUpCiAgICAgICAgIDog
UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyKG5vZGUpCiAgICAgICAgICwgUmVuZGVyU1ZHUmVzb3Vy
Y2UoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VTb2xp
ZENvbG9yLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jlc291cmNlU29saWRDb2xv
ci5jcHAKaW5kZXggOWQzNGQ3OTVhN2I4YzMzNmE0NTAyOTY1MDQ2NDE4NzNjNGIxOGQyMS4uM2I3
NWI2YTdmNzBjYTRlYzRiYzg3YjYwMjBmMDJlN2RkMzQ1OWJjNCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VTb2xpZENvbG9yLmNwcAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuY3BwCkBAIC0yNCw2ICsyNCw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VTb2xpZENvbG9yLmgiCiAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2luY2x1
ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKIAogI2lmIFBMQVRGT1JNKFNLSUEpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0LmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9TVkdSZW5kZXJTdXBwb3J0LmgKaW5kZXggZTk2MWM3MzY2ZjM5YjA3M2ZhNDU4NTcwNjYxNTYz
NzE5ZTk2YjNkMy4uM2Q2YWZmMzg3NWY1NjE4ZTVlYTBlNzdiNThhZDQ5Y2EzZGFjZDg4MiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5oCisrKyBiL1dlYkNv
cmUvcmVuZGVyaW5nL1NWR1JlbmRlclN1cHBvcnQuaApAQCAtMjUsMTAgKzI1LDkgQEAKICNkZWZp
bmUgU1ZHUmVuZGVyQmFzZV9oCiAKICNpZiBFTkFCTEUoU1ZHKQorCiAjaW5jbHVkZSAiRGFzaEFy
cmF5LmgiCi0jaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCi0jaW5jbHVkZSAiU1ZHRWxlbWVudC5o
IgotI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIgLy8gRm9yIFJlbmRlck9iamVjdDo6UGFpbnRJbmZvCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2ZXMu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmgKaW5kZXggOWNi
ZGVhZWM5MzgyNTk2OTViMWQzYWJlMzRmMmQ3NjNkNDQwYTAxOS4uZjZjNDQ0ZWE5MzFlNzk1NjQz
YjE3NjY2N2UyZjFlZGNhZTMzMWVkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvQ291bnRlckRpcmVjdGl2ZXMuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db3Vu
dGVyRGlyZWN0aXZlcy5oCkBAIC0zMSw2ICszMSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorLy8gRklYTUU6IElmIHRoaXMgY29uc3RydWN0b3Igd2FzIHB1c2hlZCBpbnRvIGEgLmNwcCBm
aWxlIHdlIHdvdWxkIG5vdAorLy8gbmVlZCB0byBpbmNsdWRlIEF0b21pY1N0cmluZ0ltcGwuaAog
c3RydWN0IENvdW50ZXJEaXJlY3RpdmVzIHsKICAgICBDb3VudGVyRGlyZWN0aXZlcygpCiAgICAg
ICAgIDogbV9yZXNldChmYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0N1cnNvckRhdGEuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0N1cnNvckRhdGEuaAppbmRl
eCAyMzQxZTcxOTAxZDBlNTBhYmYzMzUyOTBlMTAxMjlkNGZhMDhjMDc4Li4zZjFmMWU4Y2RkMTgz
MGQ2NjkwMjU4MGM3NDRmODBlYjU3ZjBmMTI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9DdXJzb3JEYXRhLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29y
RGF0YS5oCkBAIC0zMyw2ICszMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3Vy
c29yRGF0YSB7CiBwdWJsaWM6CisgICAgLy8gRklYTUU6IElmIEN1cnNvckRhdGEoKSBtb3ZlZCB0
byBhIC5jcHAgZmlsZSB3ZSB3b3VsZCBub3QgbmVlZCB0bworICAgIC8vIGluY2x1ZGUgQ2FjaGVk
SW1hZ2UuaCBpbiB0aGlzIGhlYWRlci4KICAgICBDdXJzb3JEYXRhKENhY2hlZEltYWdlKiBpbWFn
ZSwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpCiAgICAgICAgIDogbV9pbWFnZShpbWFnZSkKICAg
ICAgICAgLCBtX2hvdFNwb3QoaG90U3BvdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmggYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCmluZGV4IDE4OWJlY2ZkYjAwY2RmMDU4Y2ZmNTcxNzE2MmJmNTk0NzVjNTljOTIuLjBmZmY4
NDMxZTQ2ZWU1NTcwYjAzYWMwODhhODExZjk2N2Y1ZjZjZjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaApAQCAtMjUsNyArMjUsNiBAQAogI2lmbmRlZiBSZW5kZXJTdHlsZV9o
CiAjZGVmaW5lIFJlbmRlclN0eWxlX2gKIAotI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4
LmgiCiAjaW5jbHVkZSAiQW5pbWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgIkJvcmRlckRhdGEuaCIK
ICNpbmNsdWRlICJCb3JkZXJWYWx1ZS5oIgpAQCAtMTAxNCw2ICsxMDEzLDcgQEAgcHVibGljOgog
ICAgICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFuc2l0aW9ucy5jbGVh
cigpOwogICAgIH0KIAorICAgIC8vIEZJWE1FOiBEb2VzIHRoaXMgcmVhbGx5IG5lZWQgdG8gYmUg
aW5saW5lLCBmb3JjaW5nIHVzIHRvIGluY2x1ZGUgQW5pbWF0aW9uTGlzdC5oPwogICAgIHZvaWQg
aW5oZXJpdEFuaW1hdGlvbnMoY29uc3QgQW5pbWF0aW9uTGlzdCogcGFyZW50KSB7IHJhcmVOb25J
bmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2FuaW1hdGlvbnMuc2V0KHBhcmVudCA/IG5ldyBBbmlt
YXRpb25MaXN0KCpwYXJlbnQpIDogMCk7IH0KICAgICB2b2lkIGluaGVyaXRUcmFuc2l0aW9ucyhj
b25zdCBBbmltYXRpb25MaXN0KiBwYXJlbnQpIHsgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNz
KCktPm1fdHJhbnNpdGlvbnMuc2V0KHBhcmVudCA/IG5ldyBBbmltYXRpb25MaXN0KCpwYXJlbnQp
IDogMCk7IH0KICAgICB2b2lkIGFkanVzdEFuaW1hdGlvbnMoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmggYi9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TVkdSZW5kZXJTdHlsZS5oCmluZGV4IGIwYmVmNjE5MDJlNzBkY2YwNGY1NzQyMDgzZTNm
ZGMyZDI2MWQ4NDYuLjc4ODQyN2Y1YTljYWIwNTFkM2U0MTk2N2U4ZDFlZWVhNTUyMzQ3NDAgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmgKKysrIGIv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGUuaApAQCAtMjcsNyArMjcsNyBA
QAogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgogI2luY2x1ZGUgIkRhdGFSZWYuaCIKICNpbmNs
dWRlICJHcmFwaGljc1R5cGVzLmgiCi0jaW5jbHVkZSAiUGF0aC5oIgorI2luY2x1ZGUgIlBhdGgu
aCIgLy8gRm9yIFdpbmRSdWxlCiAjaW5jbHVkZSAiU1ZHUGFpbnQuaCIKICNpbmNsdWRlICJTVkdS
ZW5kZXJTdHlsZURlZnMuaCIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IGQ2ZmU5NmVhNDE3NDFiMmZhOWUzZjM2MWU3
NTY2ODY4ZTQyNDQxOTkuLjY3OWVkY2QxOWFjODYwMzhkYWViMDIyM2Y4MGIzOTI2OTI2M2JmMWMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmgKQEAgLTI2LDEyICsyNiwxMCBAQAogI2RlZmluZSBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhX2gKIAogI2luY2x1ZGUgIkNvdW50ZXJEaXJlY3RpdmVzLmgiCi0jaW5jbHVkZSAiQ3Vy
c29yRGF0YS5oIgogI2luY2x1ZGUgIkRhdGFSZWYuaCIKICNpbmNsdWRlICJGaWxsTGF5ZXIuaCIK
ICNpbmNsdWRlICJMaW5lQ2xhbXBWYWx1ZS5oIgogI2luY2x1ZGUgIk5pbmVQaWVjZUltYWdlLmgi
Ci0jaW5jbHVkZSAiU3R5bGVUcmFuc2Zvcm1EYXRhLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIGIv
V2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oCmluZGV4IDk3MWM2NWNi
YjU3YmVlMjkzZTBlMzU0Njc3Y2QzODcyZTIwNDlmNTIuLjk4ZDQyODVkOWEzNGI1Njg1ZTE2MzY5
YjFiMjNkZGVmNjNkZWZiNjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQuaAorKysgYi9XZWJDb3JlL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLmgKQEAgLTIyLDEyICsyMiwxMiBAQAogI2RlZmluZSBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkX2gKIAogI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgot
I2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRyYWl0
cy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBBdHRyaWJ1dGU7CisgICAg
Y2xhc3MgUXVhbGlmaWVkTmFtZTsKIAogICAgIC8vIE5vdGVzIG9uIGEgU1ZHIDEuMSBzcGVjIGRp
c2NyZXBhbmN5OgogICAgIC8vIFRoZSBTVkcgRE9NIGRlZmluZXMgdGhlIGF0dHJpYnV0ZSBleHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkIGFzIGJlaW5nIG9mIHR5cGUgU1ZHQW5pbWF0ZWRCb29sZWFu
LCB3aGVyZWFzIHRoZSAK
</data>
<flag name="review"
          id="43292"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>