<?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>69117</bug_id>
          
          <creation_ts>2011-09-29 18:33:21 -0700</creation_ts>
          <short_desc>[chromium] Add WebKit API for sending input events to the compositor thread</short_desc>
          <delta_ts>2011-09-30 00:04:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>enne</cc>
    
    <cc>fishd</cc>
    
    <cc>nduca</cc>
    
    <cc>piman</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>475796</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-29 18:33:21 -0700</bug_when>
    <thetext>[chromium] Add WebKit API for sending input events to the compositor thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475800</commentid>
    <comment_count>1</comment_count>
      <attachid>109234</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-29 18:41:06 -0700</bug_when>
    <thetext>Created attachment 109234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475803</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-29 18:42:20 -0700</bug_when>
    <thetext>With this patch the unit tests all pass and as many layout tests pass as did before with use_threaded_compositing=1.  The actual browser hookup of the thread isn&apos;t done and will require a chromium change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475804</commentid>
    <comment_count>3</comment_count>
      <attachid>109235</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-29 18:43:27 -0700</bug_when>
    <thetext>Created attachment 109235
with a #define to make a 2-sided patch easier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475805</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 18:43:33 -0700</bug_when>
    <thetext>Attachment 109234 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/chromium/tests/CCThreadTest.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/chromium/src/WebCompositorImpl.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475806</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-29 18:44:48 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Attachment 109234 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
&gt; 
&gt; Source/WebKit/chromium/tests/CCThreadTest.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
&gt; Source/WebKit/chromium/src/WebCompositorImpl.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
&gt; Total errors found: 2 in 16 files
&gt; 

I can&apos;t tell what sort order this script is expected - I ran the lines through sort(1) and they look fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475807</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 18:46:48 -0700</bug_when>
    <thetext>Attachment 109235 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/chromium/tests/CCThreadTest.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/chromium/src/WebCompositorImpl.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475816</commentid>
    <comment_count>7</comment_count>
      <attachid>109238</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-29 19:05:22 -0700</bug_when>
    <thetext>Created attachment 109238
put HAVE_WEBCOMPOSITOR ifdef somewhere useful</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475817</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-29 19:05:36 -0700</bug_when>
    <thetext>Chromium side is here: http://codereview.chromium.org/8081014/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475818</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 19:07:36 -0700</bug_when>
    <thetext>Attachment 109238 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/chromium/tests/CCThreadTest.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/chromium/src/WebCompositorImpl.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475822</commentid>
    <comment_count>10</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-09-29 19:09:28 -0700</bug_when>
    <thetext>I think you can at the very least separate the &quot;offending&quot; includes by an extra newline.   I think the style check only checks sorting for &quot;clusters of includes&quot;, where each cluster is separated by a newline.

but, i could be wrong...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475832</commentid>
    <comment_count>11</comment_count>
      <attachid>109240</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-29 19:25:34 -0700</bug_when>
    <thetext>Created attachment 109240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475833</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 19:27:58 -0700</bug_when>
    <thetext>Attachment 109240 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/chromium/tests/CCThreadTest.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/chromium/src/WebCompositorImpl.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475915</commentid>
    <comment_count>13</comment_count>
      <attachid>109240</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-09-29 22:56:29 -0700</bug_when>
    <thetext>Comment on attachment 109240
Patch

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

&gt; Source/WebKit/chromium/public/WebCompositor.h:53
&gt; +#endif // WebCompositor_h

ditto

&gt; Source/WebKit/chromium/public/WebCompositorClient.h:43
&gt; +#endif // WebCompositorClient_h

style-nit: I mistyped this... the style guide suggests putting a comment on the close
of the namespace, not on the #endif.  i just mixed that up when i was typing this file
earlier.  the other headers in WebKit/chromium/public/ do it that way.

&gt;&gt; Source/WebKit/chromium/tests/CCThreadTest.cpp:32
&gt;&gt; +#include &quot;CCThreadImpl.h&quot;
&gt; 
&gt; Alphabetical sorting problem.  [build/include_order] [4]

Perhaps this is saying that &quot;CC&quot; sorts before &quot;cc&quot;??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475945</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-30 00:04:28 -0700</bug_when>
    <thetext>Committed r96392: &lt;http://trac.webkit.org/changeset/96392&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109234</attachid>
            <date>2011-09-29 18:41:06 -0700</date>
            <delta_ts>2011-09-29 18:43:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69117-20110929184105.patch</filename>
            <type>text/plain</type>
            <size>35510</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYzMzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NzI3MzBjODNmOTk0Mjlk
NGI0ZWEwNmFmMjU3NWE0YzhiNDAzYzM0Li4zN2ZiOTA3MDEyNTY1ZjE4MDZjODJhZWNkNTZhMDg5
ZTczZmRhNmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDktMjkgIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCBXZWJLaXQgQVBJIGZvciBzZW5kaW5nIGlucHV0IGV2ZW50cyB0byB0aGUgY29tcG9zaXRvciB0
aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5
MTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29u
dmVydCB0byB1c2luZyBhbiBleHRlcm5hbGx5LXByb3ZpZGVkIHRocmVhZCBpbnN0ZWFkIG9mIG9u
ZSBtYW5hZ2VkIGJ5IENDVGhyZWFkUHJveHkgaW50ZXJuYWxseS4gTW9zdCBjaGFuZ2VzCisgICAg
ICAgIGluIHRoZXNlIGZpbGVzIGFyZSBtZWNoYW5pY2FsbHkgY2hhbmdpbmcgcmVmZXJlbmNlcyBm
cm9tIGNjVGhyZWFkIHRvIHNfY2NUaHJlYWQgdG8gcmVmbGVjdCB0aGUgY2xhc3Mtc3RhdGljCisg
ICAgICAgIG5hdHVyZSBvZiB0aGlzIHBvaW50ZXIsIHRoZSByZXN0IGFyZSByZW1vdmluZyB0aGUg
b2xkIHRocmVhZCBjcmVhdGlvbiBjb2RlcGF0aC4KKworICAgICAgICBUaGVzZSBjaGFuZ2VzIGFy
ZSBjb3ZlcmVkIGJ5IHRoZSBDQyogdW5pdCB0ZXN0cyBhbmQgYnkgdGhlIGdwdSBsYXlvdXQgdGVz
dHMgd2hlbiBydW4gd2l0aCB0aGUKKyAgICAgICAgdXNlX3RocmVhZGVkX2NvbXBvc2l0aW5nPTEg
Z3lwIGRlZmluZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5
OjpzZXRUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6Q0NUaHJlYWRQ
cm94eSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojp+Q0NUaHJlYWRQcm94eSk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojpjb21wb3NpdGVBbmRSZWFkYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpmaW5pc2hBbGxSZW5kZXJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXRBbmRSZWRyYXcpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXcpOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NU
aHJlYWRQcm94eTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpiZWdp
bkZyYW1lQW5kQ29tbWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnNjaGVk
dWxlRHJhd1Rhc2tPbkNDVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisKIDIwMTEtMDktMjkgIElseWEgVGlraG9ub3Zza3kg
IDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFVJIHBlcmZv
cm1hbmNlIHRlc3QgZm9yIG5ldHdvcmsgcGFuZWwgaXMgaW5jb3JyZWN0LiBUaGUgdGltZSBpcyBp
bmNsdWRpbmcgYSB0aW1lb3V0IGJldHdlZW4gc2NoZWR1bGVkIHJlZnJlc2ggYW5kIGFjdHVhbCBy
ZWZyZXNoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNmRkZDliZDYzOTUw
YmM0N2MyNzAyZDQ4MGU1ODVhMDdlMmQyM2Y3Yi4uNTUyZjlhYmU5NmUyMzdmZGI1NGRkYzJkNzky
NTcyMzEwYzc1YmE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC0xNDMs
MTEgKzE0Myw2IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojpjb21taXRDb21wbGV0ZSgpCiAgICAg
bV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT51bnByb3RlY3RBbGxUZXh0dXJlcygpOwogfQogCi1Q
YXNzT3duUHRyPENDVGhyZWFkPiBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZUNvbXBvc2l0b3JUaHJl
YWQoKQotewotICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRlQ29tcG9zaXRvclRocmVhZCgpOwot
fQotCiBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0
ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKQogewogICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRl
TGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAppbmRl
eCA1NGFkNGMwMDIyMjk2ZGY3ZThiMTZlNjcyMDA5MDVhN2I3ZDRlNTIyLi5kMjM2NjY0YjBiMzZk
ZTg0NDI4MTA3MzIzYTI0MGE3MTRkZTI5NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3Qu
aApAQCAtNDEsNyArNDEsNiBAQCBjbGFzcyBHckNvbnRleHQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdEltcGw7Ci1jbGFzcyBDQ1RocmVhZDsKIGNsYXNzIEdy
YXBoaWNzQ29udGV4dDNEOwogY2xhc3MgTGF5ZXJDaHJvbWl1bTsKIGNsYXNzIExheWVyUGFpbnRl
ckNocm9taXVtOwpAQCAtNTEsNyArNTAsNiBAQCBjbGFzcyBUZXh0dXJlTWFuYWdlcjsKIGNsYXNz
IENDTGF5ZXJUcmVlSG9zdENsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFuaW1h
dGVBbmRMYXlvdXQoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNz
T3duUHRyPENDVGhyZWFkPiBjcmVhdGVDb21wb3NpdG9yVGhyZWFkKCkgPSAwOwogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRl
eHQzRCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQo
Ym9vbCBzdWNjZXNzKSA9IDA7CiAjaWYgIVVTRShUSFJFQURFRF9DT01QT1NJVElORykKQEAgLTk5
LDcgKzk3LDYgQEAgcHVibGljOgogICAgIHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJh
bWVCZWdpblRpbWUpOwogICAgIHZvaWQgY29tbWl0Q29tcGxldGUoKTsKICAgICB2b2lkIGNvbW1p
dFRvT25DQ1RocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKik7Ci0gICAgUGFzc093blB0cjxDQ1Ro
cmVhZD4gY3JlYXRlQ29tcG9zaXRvclRocmVhZCgpOwogICAgIFBhc3NSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKTsKICAgICB2aXJ0dWFsIFBh
c3NPd25QdHI8Q0NMYXllclRyZWVIb3N0SW1wbD4gY3JlYXRlTGF5ZXJUcmVlSG9zdEltcGwoKTsK
ICAgICB2b2lkIGRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGU0MDk4MjNiYTc1NGZkZTFkOGI5OTQwZTkwNDJk
NTk0Njk1MDBiMTIuLjBiMzA3MjZlYmMzM2YzZDQ3MDkyNWEwMzRkZTk0YmE5YTIxOGJmNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0zOCw5ICszOCwxNCBAQCB1c2luZyBuYW1l
c3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLW5hbWVzcGFjZSB7Ci1DQ1RocmVh
ZCogY2NUaHJlYWQ7Ci1pbnQgbnVtUHJveGllcyA9IDA7CitDQ1RocmVhZCogQ0NUaHJlYWRQcm94
eTo6c19jY1RocmVhZCA9IDA7CisKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0VGhyZWFkKENDVGhy
ZWFkKiBjY1RocmVhZCkKK3sKKyAgICBzX2NjVGhyZWFkID0gY2NUaHJlYWQ7CisjaWZuZGVmIE5E
RUJVRworICAgIENDUHJveHk6OnNldEltcGxUaHJlYWQoc19jY1RocmVhZC0+dGhyZWFkSUQoKSk7
CisjZW5kaWYKIH0KIAogUGFzc093blB0cjxDQ1Byb3h5PiBDQ1RocmVhZFByb3h5OjpjcmVhdGUo
Q0NMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KQpAQCAtNjAsMTMgKzY1LDYgQEAgQ0NUaHJl
YWRQcm94eTo6Q0NUaHJlYWRQcm94eShDQ0xheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QpCiB7
CiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OkNDVGhyZWFkUHJveHkiLCB0aGlzLCAw
KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG51bVByb3hpZXMrKzsKLSAgICBp
ZiAoIWNjVGhyZWFkKSB7Ci0gICAgICAgIGNjVGhyZWFkID0gbV9sYXllclRyZWVIb3N0LT5jcmVh
dGVDb21wb3NpdG9yVGhyZWFkKCkubGVha1B0cigpOwotI2lmbmRlZiBOREVCVUcKLSAgICAgICAg
Q0NQcm94eTo6c2V0SW1wbFRocmVhZChjY1RocmVhZC0+dGhyZWFkSUQoKSk7Ci0jZW5kaWYKLSAg
ICB9CiB9CiAKIENDVGhyZWFkUHJveHk6On5DQ1RocmVhZFByb3h5KCkKQEAgLTc0LDEyICs3Miw2
IEBAIENDVGhyZWFkUHJveHk6On5DQ1RocmVhZFByb3h5KCkKICAgICBUUkFDRV9FVkVOVCgiQ0NU
aHJlYWRQcm94eTo6fkNDVGhyZWFkUHJveHkiLCB0aGlzLCAwKTsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgIEFTU0VSVCghbV9zdGFydGVkKTsKLQotICAgIG51bVByb3hpZXMtLTsK
LSAgICBpZiAoIW51bVByb3hpZXMpIHsKLSAgICAgICAgZGVsZXRlIGNjVGhyZWFkOwotICAgICAg
ICBjY1RocmVhZCA9IDA7Ci0gICAgfQogfQogCiBib29sIENDVGhyZWFkUHJveHk6OmNvbXBvc2l0
ZUFuZFJlYWRiYWNrKHZvaWQgKnBpeGVscywgY29uc3QgSW50UmVjdCYgcmVjdCkKQEAgLTk3LDcg
Kzg5LDcgQEAgYm9vbCBDQ1RocmVhZFByb3h5Ojpjb21wb3NpdGVBbmRSZWFkYmFjayh2b2lkICpw
aXhlbHMsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIHsKICAgICAgICAgICAgIENDTWFp
blRocmVhZDo6VGFzayogdGFza1B0ciA9IDA7CiAgICAgICAgICAgICBDQ0NvbXBsZXRpb25FdmVu
dCBjb21wbGV0aW9uOwotICAgICAgICAgICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhy
ZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6b2J0YWluQmVnaW5GcmFtZUFuZENvbW1pdFRh
c2tGcm9tQ0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pLCBBbGxv
d0Nyb3NzVGhyZWFkQWNjZXNzKCZ0YXNrUHRyKSkpOworICAgICAgICAgICAgc19jY1RocmVhZC0+
cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpvYnRhaW5C
ZWdpbkZyYW1lQW5kQ29tbWl0VGFza0Zyb21DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2Vz
cygmY29tcGxldGlvbiksIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJnRhc2tQdHIpKSk7CiAgICAg
ICAgICAgICBjb21wbGV0aW9uLndhaXQoKTsKICAgICAgICAgICAgIGJlZ2luRnJhbWVBbmRDb21t
aXRUYXNrID0gYWRvcHRQdHIodGFza1B0cik7CiAgICAgICAgIH0KQEAgLTEwOCw3ICsxMDAsNyBA
QCBib29sIENDVGhyZWFkUHJveHk6OmNvbXBvc2l0ZUFuZFJlYWRiYWNrKHZvaWQgKnBpeGVscywg
Y29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAvLyBEcmF3IHVzaW5nIHRoZSBuZXcgdHJlZSBhbmQg
cmVhZCBiYWNrIHRoZSByZXN1bHRzLgogICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwogICAgIEND
Q29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247Ci0gICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0
ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6ZHJhd0xheWVyc0FuZFJlYWRiYWNr
T25DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcygmY29tcGxldGlvbiksIEFsbG93Q3Jv
c3NUaHJlYWRBY2Nlc3MoJnN1Y2Nlc3MpLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKHBpeGVscyks
IHJlY3QpKTsKKyAgICBzX2NjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhp
cywgJkNDVGhyZWFkUHJveHk6OmRyYXdMYXllcnNBbmRSZWFkYmFja09uQ0NUaHJlYWQsIEFsbG93
Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZz
dWNjZXNzKSwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcyhwaXhlbHMpLCByZWN0KSk7CiAgICAgY29t
cGxldGlvbi53YWl0KCk7CiAgICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CkBAIC0xMzgsNyArMTMwLDcg
QEAgdm9pZCBDQ1RocmVhZFByb3h5OjpmaW5pc2hBbGxSZW5kZXJpbmcoKQogCiAgICAgLy8gTWFr
ZSBzdXJlIGFsbCBHTCBkcmF3aW5nIGlzIGZpbmlzaGVkIG9uIHRoZSBpbXBsIHRocmVhZC4KICAg
ICBDQ0NvbXBsZXRpb25FdmVudCBjb21wbGV0aW9uOwotICAgIGNjVGhyZWFkLT5wb3N0VGFzayhj
cmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmZpbmlzaEFsbFJlbmRlcmlu
Z09uQ0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pKSk7CisgICAg
c19jY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFBy
b3h5OjpmaW5pc2hBbGxSZW5kZXJpbmdPbkNDVGhyZWFkLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNz
KCZjb21wbGV0aW9uKSkpOwogICAgIGNvbXBsZXRpb24ud2FpdCgpOwogfQogCkBAIC0xNTAsNiAr
MTQyLDggQEAgYm9vbCBDQ1RocmVhZFByb3h5Ojppc1N0YXJ0ZWQoKSBjb25zdAogCiBib29sIEND
VGhyZWFkUHJveHk6OmluaXRpYWxpemVMYXllclJlbmRlcmVyKCkKIHsKKyAgICBBU1NFUlQoc19j
Y1RocmVhZCk7CisKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBtX2xh
eWVyVHJlZUhvc3QtPmNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKTsKICAgICBpZiAoIWNv
bnRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2NCw3ICsxNTgsNyBAQCBib29sIEND
VGhyZWFkUHJveHk6OmluaXRpYWxpemVMYXllclJlbmRlcmVyKCkKICAgICBDQ0NvbXBsZXRpb25F
dmVudCBjb21wbGV0aW9uOwogICAgIGJvb2wgaW5pdGlhbGl6ZVN1Y2NlZWRlZCA9IGZhbHNlOwog
ICAgIExheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNjVGhyZWFk
LT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmluaXRp
YWxpemVMYXllclJlbmRlcmVyT25DQ1RocmVhZCwKKyAgICBzX2NjVGhyZWFkLT5wb3N0VGFzayhj
cmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVMYXllclJl
bmRlcmVyT25DQ1RocmVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoY29udGV4dFB0ciksIEFsbG93Q3Jvc3NUaHJlYWRB
Y2Nlc3MoJmNvbXBsZXRpb24pLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZpbml0aWFsaXplU3Vj
Y2VlZGVkKSwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcygmY2FwYWJpbGl0aWVzKSkpOwogICAgIGNv
bXBsZXRpb24ud2FpdCgpOwogCkBAIC0xOTEsNyArMTg1LDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5
OjpzZXROZWVkc0NvbW1pdCgpCiAKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6c2V0
TmVlZHNDb21taXQiLCB0aGlzLCAwKTsKICAgICBtX2NvbW1pdFJlcXVlc3RlZCA9IHRydWU7Ci0g
ICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQ
cm94eTo6dXBkYXRlU2NoZWR1bGVyU3RhdGVPbkNDVGhyZWFkLCBtX2NvbW1pdFJlcXVlc3RlZCwg
dHJ1ZSkpOworICAgIHNfY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlz
LCAmQ0NUaHJlYWRQcm94eTo6dXBkYXRlU2NoZWR1bGVyU3RhdGVPbkNDVGhyZWFkLCBtX2NvbW1p
dFJlcXVlc3RlZCwgdHJ1ZSkpOwogfQogCiB2b2lkIENDVGhyZWFkUHJveHk6OnNldE5lZWRzQ29t
bWl0QW5kUmVkcmF3KCkKQEAgLTIwMiw3ICsxOTYsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnNl
dE5lZWRzQ29tbWl0QW5kUmVkcmF3KCkKICAgICBtX2NvbW1pdFJlcXVlc3RlZCA9IHRydWU7CiAK
ICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXRBbmRSZWRyYXci
LCB0aGlzLCAwKTsKLSAgICBjY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRo
aXMsICZDQ1RocmVhZFByb3h5Ojp1cGRhdGVTY2hlZHVsZXJTdGF0ZU9uQ0NUaHJlYWQsIG1fY29t
bWl0UmVxdWVzdGVkLCB0cnVlKSk7CisgICAgc19jY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NU
aHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5Ojp1cGRhdGVTY2hlZHVsZXJTdGF0ZU9uQ0NU
aHJlYWQsIG1fY29tbWl0UmVxdWVzdGVkLCB0cnVlKSk7CiB9CiAKIHZvaWQgQ0NUaHJlYWRQcm94
eTo6c2V0TmVlZHNSZWRyYXcoKQpAQCAtMjE3LDcgKzIxMSw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94
eTo6c2V0TmVlZHNSZWRyYXcoKQogICAgIC8vIHNldE5lZWRzUmVkcmF3IG1lc3NhZ2VzIGFyZSB1
bmNvbW1vbiAob25seSB0cmlnZ2VyZWQgYnkgV01fUEFJTlQvZXRjKSwKICAgICAvLyBjb21wYXJl
ZCB0byBzZXROZWVkc0NvbW1pdEFuZFJlZHJhdyBtZXNzYWdlcy4KICAgICBUUkFDRV9FVkVOVCgi
Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXciLCB0aGlzLCAwKTsKLSAgICBjY1RocmVhZC0+
cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5Ojp1cGRhdGVT
Y2hlZHVsZXJTdGF0ZU9uQ0NUaHJlYWQsIGZhbHNlLCB0cnVlKSk7CisgICAgc19jY1RocmVhZC0+
cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5Ojp1cGRhdGVT
Y2hlZHVsZXJTdGF0ZU9uQ0NUaHJlYWQsIGZhbHNlLCB0cnVlKSk7CiB9CiAKIHZvaWQgQ0NUaHJl
YWRQcm94eTo6c3RhcnQoKQpAQCAtMjI1LDcgKzIxOSw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6
c3RhcnQoKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgLy8gQ3JlYXRlIExheWVy
VHJlZUhvc3RJbXBsLgogICAgIENDQ29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247Ci0gICAgY2NU
aHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6
aW5pdGlhbGl6ZUltcGxPbkNDVGhyZWFkLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZjb21wbGV0
aW9uKSkpOworICAgIHNfY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlz
LCAmQ0NUaHJlYWRQcm94eTo6aW5pdGlhbGl6ZUltcGxPbkNDVGhyZWFkLCBBbGxvd0Nyb3NzVGhy
ZWFkQWNjZXNzKCZjb21wbGV0aW9uKSkpOwogICAgIGNvbXBsZXRpb24ud2FpdCgpOwogCiAgICAg
bV9zdGFydGVkID0gdHJ1ZTsKQEAgLTIzOSw3ICsyMzMsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6
OnN0b3AoKQogCiAgICAgLy8gU3luY2hyb25vdXNseSBkZWxldGVzIHRoZSBpbXBsLgogICAgIEND
Q29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247Ci0gICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0
ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6bGF5ZXJUcmVlSG9zdENsb3NlZE9u
Q0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pKSk7CisgICAgc19j
Y1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5
OjpsYXllclRyZWVIb3N0Q2xvc2VkT25DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2Vzcygm
Y29tcGxldGlvbikpKTsKICAgICBjb21wbGV0aW9uLndhaXQoKTsKIAogICAgIEFTU0VSVCghbV9s
YXllclRyZWVIb3N0SW1wbCk7IC8vIHZlcmlmeSB0aGF0IHRoZSBpbXBsIGRlbGV0ZWQuCkBAIC0z
MjUsNyArMzE5LDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0KGlu
dCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW0KICAgICAgICAgLy8gQmxvY2tp
bmcgY2FsbCB0byBDQ1RocmVhZFByb3h5Ojpjb21taXRPbkNDVGhyZWFkCiAgICAgICAgIFRSQUNF
X0VWRU5UKCJjb21taXQiLCB0aGlzLCAwKTsKICAgICAgICAgQ0NDb21wbGV0aW9uRXZlbnQgY29t
cGxldGlvbjsKLSAgICAgICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0
aGlzLCAmQ0NUaHJlYWRQcm94eTo6Y29tbWl0T25DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFj
Y2VzcygmY29tcGxldGlvbikpKTsKKyAgICAgICAgc19jY1RocmVhZC0+cG9zdFRhc2soY3JlYXRl
Q0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5Ojpjb21taXRPbkNDVGhyZWFkLCBBbGxv
d0Nyb3NzVGhyZWFkQWNjZXNzKCZjb21wbGV0aW9uKSkpOwogICAgICAgICBjb21wbGV0aW9uLndh
aXQoKTsKICAgICB9CiAKQEAgLTM2Miw3ICszNTYsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnNj
aGVkdWxlRHJhd1Rhc2tPbkNDVGhyZWFkKCkKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94
eTo6c2NoZWR1bGVEcmF3VGFza09uQ0NUaHJlYWQiLCB0aGlzLCAwKTsKICAgICBBU1NFUlQobV9s
YXllclRyZWVIb3N0SW1wbCk7CiAgICAgbV9kcmF3VGFza1Bvc3RlZE9uQ0NUaHJlYWQgPSB0cnVl
OwotICAgIGNjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhy
ZWFkUHJveHk6OmRyYXdMYXllcnNBbmRQcmVzZW50T25DQ1RocmVhZCkpOworICAgIHNfY2NUaHJl
YWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6ZHJh
d0xheWVyc0FuZFByZXNlbnRPbkNDVGhyZWFkKSk7CiB9CiAKIHZvaWQgQ0NUaHJlYWRQcm94eTo6
ZHJhd0xheWVyc0FuZFByZXNlbnRPbkNDVGhyZWFkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApp
bmRleCBkM2I0ODdmZWM0MGQ0MDE1OTA3YTlmODA5NmNkOWRiY2UyZDFiMTkyLi4xMmU2ZGMzYjlj
ZTUzZTYyZjNiNTU3ZjdjMGE0OThhMjlhODI1NGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5o
CkBAIC0zNCw5ICszNCwxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDQ0xheWVy
VHJlZUhvc3Q7CitjbGFzcyBDQ1RocmVhZDsKIAogY2xhc3MgQ0NUaHJlYWRQcm94eSA6IHB1Ymxp
YyBDQ1Byb3h5IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBzZXRUaHJlYWQoQ0NUaHJlYWQq
KTsKKwogICAgIHN0YXRpYyBQYXNzT3duUHRyPENDUHJveHk+IGNyZWF0ZShDQ0xheWVyVHJlZUhv
c3QqKTsKIAogICAgIHZpcnR1YWwgfkNDVGhyZWFkUHJveHkoKTsKQEAgLTg5LDYgKzkyLDggQEAg
cHJpdmF0ZToKICAgICBib29sIG1fYmVnaW5GcmFtZUFuZENvbW1pdFBlbmRpbmdPbkNDVGhyZWFk
OwogICAgIGJvb2wgbV9kcmF3VGFza1Bvc3RlZE9uQ0NUaHJlYWQ7CiAgICAgYm9vbCBtX3JlZHJh
d1JlcXVlc3RlZE9uQ0NUaHJlYWQ7CisKKyAgICBzdGF0aWMgQ0NUaHJlYWQqIHNfY2NUaHJlYWQ7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDQxNmRhM2Y4MjFjODIwMDUz
ZjJkNjQzMmVkMjk1NzQ5OTc2NzFiNmMuLmNmZjJmOTIyOTliMmRlMDczYzFlYjE3ODhjMzQ4M2Jj
ODk2NDVhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIw
MTEtMDktMjkgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbY2hyb21pdW1dIEFkZCBXZWJLaXQgQVBJIGZvciBzZW5kaW5nIGlucHV0IGV2ZW50cyB0byB0
aGUgY29tcG9zaXRvciB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY5MTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkcyBhIG5ldyBXZWJLaXQgaW50ZXJmYWNlIHRvIGFsbG93IHRoZSBlbWJl
ZGRlciB0byBwYXNzIGlucHV0IGV2ZW50cyBkaXJlY3RseSB0byB0aGUgY29tcG9zaXRvciB0aHJl
YWQuCisgICAgICAgIEV4cG9zZXMgdGhlIG5ldyBXZWJDb21wb3NpdG9yIGludGVyZmFjZSBhbmQg
YXNzb2NpYXRlZCBjbGllbnQuIFRoZXNlIGludGVyZmFjZXMgYXJlIHNsaWdodGx5IGRpZmZlcmVu
dCBpbiB0aGF0CisgICAgICAgIHRoZXkgY2FuIG9ubHkgYmUgaW50ZXJhY3RlZCB3aXRoIGZyb20g
dGhlIGNvbXBvc2l0b3IgdGhyZWFkLgorCisgICAgICAgIENoYW5nZXMgdGhlIGluaXRpYWxpemF0
aW9uIHBhdGggZm9yIHRoZSBjb21wb3NpdG9yIHRocmVhZCB0byB1c2luZyBhbiBleHRlcm5hbGx5
IGFsbG9jYXRlZCBhbmQgbWFuYWdlZCB0aHJlYWQKKyAgICAgICAgaW5zdGVhZCBvZiBvbmUgaW50
ZXJuYWwgdG8gV2ViQ29yZSBzbyB0aGF0IHRoZSBlbWJlZGRlciBjYW4gaW50ZXJhY3Qgd2l0aCB0
aGUgdGhyZWFkIG1vcmUgZWFzaWx5LiBUaGlzIGFsc28KKyAgICAgICAgc2ltcGxpZmllcyB0aGUg
c3RhcnR1cCBhbmQgc2h1dGRvd24gcGF0aHMuICBUaGUgY29udHJhY3QgaXMgdGhhdCBXZWJDb21w
b3NpdG9yOjpzZXRUaHJlYWQoKSBtdXN0IGJlIGNhbGxlZAorICAgICAgICBiZWZvcmUgYW55IGNv
bXBvc2l0b3IgY2FuIGJlIGluaXRpYWxpemVkIGFuZCB0aGUgcGFzc2VkLWluIHRocmVhZCBtdXN0
IG91dGxpdmUgYWxsIGNvbXBvc2l0b3IgaW5zdGFuY2VzLgorCisgICAgICAgIEVhY2ggV2ViQ29t
cG9zaXRvciBpbnN0YW5jZSBpcyBhc3NvY2lhdGVkIHdpdGggYSBXZWJXaWRnZXQuICBUaGVyZSBp
c24ndCBhbnkgd2F5IHRvIGdldCBhIFdlYkNvbXBvc2l0b3IgZm9yIGEKKyAgICAgICAgZ2l2ZW4g
V2ViV2lkZ2V0IGluIHRoaXMgcGF0Y2gsIHRoYXQgd2lsbCBiZSBkb25lIGluIGEgZm9sbG93LXVw
LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViQ29tcG9zaXRv
ci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9yOjp+V2ViQ29tcG9zaXRvcik6Cisg
ICAgICAgICogcHVibGljL1dlYkNvbXBvc2l0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29tcG9zaXRvckNsaWVudDo6fldlYkNvbXBvc2l0b3JDbGllbnQpOgorICAgICAgICAqIHNy
Yy9DQ1RocmVhZEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDQ1RocmVhZEltcGw6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OkNDVGhyZWFkSW1wbDo6Q0NUaHJlYWRJbXBsKToKKyAgICAg
ICAgKiBzcmMvQ0NUaHJlYWRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbXBs
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNldFRocmVhZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbXBsOjpXZWJDb21wb3NpdG9ySW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbXBsOjp+V2ViQ29tcG9zaXRvckltcGwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW1wbDo6c2V0Q2xpZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvckltcGw6OmhhbmRsZUlucHV0RXZlbnQpOgorICAgICAg
ICAqIHNyYy9XZWJDb21wb3NpdG9ySW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3Np
dG9ySW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAg
ICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRl
c3QuY3BwOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0OjpDQ0xheWVyVHJlZUhv
c3RUZXN0KToKKyAgICAgICAgKiB0ZXN0cy9DQ1RocmVhZFRlc3QuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpURVNUKToKKwogMjAxMS0wOS0yOSAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogVXNlIExldmVsREIgYWxzbyBmb3IgaW4tbWVtb3J5
IGRhdGFiYXNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDhjNDkxMjk1MjEzY2Zj
ODdjOWRjZTMzZTQ2ZWMwZjg5YzMzNjU5NzguLjY2MzBiMzUxMTdiMGQwMzY2ZDMwZGM5MjBiMmZk
Yzg2ZDAyY2M1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTEyNyw2ICsxMjcs
OCBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tbW9uLmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViQ29tcG9zaXRpb25VbmRlcmxpbmUuaCcsCisgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJDb21wb3NpdG9yQ2xpZW50LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29t
cG9zaXRvci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbnNvbGVNZXNzYWdlLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29udGV4dE1lbnVEYXRhLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViQ29va2llLmgnLApAQCAtNDQ1LDYgKzQ0Nyw4IEBACiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJDYWNoZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
Q29sb3IuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbW1vbi5jcHAnLAorICAgICAg
ICAgICAgICAgICdzcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAn
c3JjL1dlYkNvbXBvc2l0b3JJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ3Jvc3NP
cmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
Q1N0cmluZy5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ3Vyc29ySW5mby5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvci5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM4MDYxOTMyOGYxOWU1MWE2OWQ3ZWNlOTRjMmRjNGNlZGZiMzVkNTIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yLmgKQEAg
LTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29tcG9zaXRvcl9oCisjZGVmaW5lIFdl
YkNvbXBvc2l0b3JfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJDb21wb3NpdG9yQ2xpZW50OworY2xhc3MgV2ViSW5wdXRFdmVudDsK
K2NsYXNzIFdlYlRocmVhZDsKKworLy8gVGhpcyByZXByZXNlbnRzIHRoZSBjb21wb3NpdG9yIGFz
c29jaWF0ZWQgd2l0aCBhIFdlYldpZGdldC4gQWxsIGNhbGxzIHRvIHRoZSBXZWJDb21wb3NpdG9y
IG11c3QKKy8vIGJlIG1hZGUgZnJvbSB0aGUgY29tcG9zaXRvciB0aHJlYWQuCitjbGFzcyBXZWJD
b21wb3NpdG9yIHsKK3B1YmxpYzoKKyAgICAvLyBUaGlzIG11c3QgYmUgY2FsbGVkIG9uY2Ugd2l0
aCBhIG5vbi1udWxsIFdlYlRocmVhZCBiZWZvcmUgYW55IGNvbXBvc2l0b3JzIGF0dGVtcHQgdG8g
aW5pdGlhbGl6ZS4KKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFRocmVhZChXZWJU
aHJlYWQqKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoV2ViQ29tcG9zaXRvckNsaWVu
dCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1
dEV2ZW50JikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+V2ViQ29tcG9zaXRvcigp
IHsgfQorfTsKKworfQorCisjZW5kaWYgLy8gV2ViQ29tcG9zaXRvcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yQ2xpZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGZhODQwNmYwOWE5ZGMxYjZmZmQ1YTA0OGU4ZTgwYmZmZTMzZmRkOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JDbGllbnQu
aApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb21wb3NpdG9yQ2xpZW50X2gK
KyNkZWZpbmUgV2ViQ29tcG9zaXRvckNsaWVudF9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJDb21wb3NpdG9yQ2xpZW50IHsKK3B1YmxpYzoKKyAgICAvLyBDYWxsYmFja3MgaW52
b2tlZCBmcm9tIHRoZSBjb21wb3NpdG9yIHRocmVhZC4KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNo
dXRkb3duKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRIYW5kbGVJbnB1dEV2ZW50KCkgPSAw
OworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+V2ViQ29tcG9zaXRvckNsaWVudCgpIHsgfQor
fTsKKworfQorCisjZW5kaWYgLy8gV2ViQ29tcG9zaXRvckNsaWVudF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ0NUaHJlYWRJbXBsLmNwcAppbmRleCA2MTZiOTUwNDAwYjk1OGIxYWRm
MjVjZTJkZjYzMzQyZTRkNzcwNTljLi5kOThiNTI3NWUzMGRkYTY2NmU5ZWMxMWYxMDQ1OTc0OWU4
OTA3ZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NDVGhyZWFkSW1wbC5jcHAK
QEAgLTc2LDkgKzc2LDkgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8Q0NUaHJlYWQ6OlRhc2s+IG1f
dGFzazsKIH07CiAKLVBhc3NPd25QdHI8Q0NUaHJlYWQ+IENDVGhyZWFkSW1wbDo6Y3JlYXRlKCkK
K1Bhc3NPd25QdHI8Q0NUaHJlYWQ+IENDVGhyZWFkSW1wbDo6Y3JlYXRlKFdlYlRocmVhZCogdGhy
ZWFkKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NUaHJlYWRJbXBsKCkpOworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgQ0NUaHJlYWRJbXBsKHRocmVhZCkpOwogfQogCiBDQ1RocmVhZElt
cGw6On5DQ1RocmVhZEltcGwoKQpAQCAtOTUsOCArOTUsOCBAQCBUaHJlYWRJZGVudGlmaWVyIEND
VGhyZWFkSW1wbDo6dGhyZWFkSUQoKSBjb25zdAogICAgIHJldHVybiBtX3RocmVhZElEOwogfQog
Ci1DQ1RocmVhZEltcGw6OkNDVGhyZWFkSW1wbCgpCi0gICAgOiBtX3RocmVhZChhZG9wdFB0cih3
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFkKCJDQ1RocmVhZCIpKSkKK0NDVGhy
ZWFkSW1wbDo6Q0NUaHJlYWRJbXBsKFdlYlRocmVhZCogdGhyZWFkKQorICAgIDogbV90aHJlYWQo
dGhyZWFkKQogewogICAgIC8vIEdldCB0aGUgdGhyZWFkSWQgZm9yIHRoZSBuZXdseS1jcmVhdGVk
IHRocmVhZCBieSBydW5uaW5nIGEgdGFzawogICAgIC8vIG9uIHRoYXQgdGhyZWFkLCBibG9ja2lu
ZyBvbiB0aGUgcmVzdWx0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q0NUaHJlYWRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwu
aAppbmRleCA5YzkyOWFiMTA5YzUzZTNiMTY3MjMyODE3ZDk5OGE4Y2ZlMGI1MjE1Li5iZTUwZDVi
YWU5YzQ5OWU0MTIxODA1MzZmYWE0M2I0OTRmMmZjOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DQ1RocmVhZEltcGwuaApAQCAtMzcsMTUgKzM3LDE1IEBAIGNsYXNzIFdlYlRocmVh
ZDsKIC8vIEltcGxlbWVudHMgQ0NUaHJlYWQgaW4gdGVybXMgb2YgV2ViVGhyZWFkLgogY2xhc3Mg
Q0NUaHJlYWRJbXBsIDogcHVibGljIFdlYkNvcmU6OkNDVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxXZWJDb3JlOjpDQ1RocmVhZD4gY3JlYXRlKCk7CisgICAgc3RhdGlj
IFBhc3NPd25QdHI8V2ViQ29yZTo6Q0NUaHJlYWQ+IGNyZWF0ZShXZWJUaHJlYWQqKTsKICAgICB2
aXJ0dWFsIH5DQ1RocmVhZEltcGwoKTsKICAgICB2b2lkIHBvc3RUYXNrKFBhc3NPd25QdHI8V2Vi
Q29yZTo6Q0NUaHJlYWQ6OlRhc2s+KTsKICAgICBXVEY6OlRocmVhZElkZW50aWZpZXIgdGhyZWFk
SUQoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBDQ1RocmVhZEltcGwoKTsKKyAgICBleHBsaWNp
dCBDQ1RocmVhZEltcGwoV2ViVGhyZWFkKik7CiAKLSAgICBPd25QdHI8V2ViVGhyZWFkPiBtX3Ro
cmVhZDsKKyAgICBXZWJUaHJlYWQqIG1fdGhyZWFkOwogICAgIFdURjo6VGhyZWFkSWRlbnRpZmll
ciBtX3RocmVhZElEOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViQ29tcG9zaXRvckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Q29tcG9zaXRvckltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjY2U4OWE5NWZhMjIwYTRhZjlkODQ5ZGQ2
MjUzMTVjMzdjYWVjYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbXBsLmgiCisKKyNpbmNs
dWRlICJjYy9DQ1RocmVhZFByb3h5LmgiCisjaW5jbHVkZSAiQ0NUaHJlYWRJbXBsLmgiCisjaW5j
bHVkZSAiV2ViQ29tcG9zaXRvckNsaWVudC5oIgorI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIK
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lk
IFdlYkNvbXBvc2l0b3I6OnNldFRocmVhZChXZWJUaHJlYWQqIGNvbXBvc2l0b3JUaHJlYWQpCit7
CisgICAgQVNTRVJUKGNvbXBvc2l0b3JUaHJlYWQpOworICAgIENDVGhyZWFkUHJveHk6OnNldFRo
cmVhZChDQ1RocmVhZEltcGw6OmNyZWF0ZShjb21wb3NpdG9yVGhyZWFkKS5sZWFrUHRyKCkpOwor
fQorCitXZWJDb21wb3NpdG9ySW1wbDo6V2ViQ29tcG9zaXRvckltcGwoKQorICAgIDogbV9jbGll
bnQoMCkKK3sKK30KKworV2ViQ29tcG9zaXRvckltcGw6On5XZWJDb21wb3NpdG9ySW1wbCgpCit7
Cit9CisKK3ZvaWQgV2ViQ29tcG9zaXRvckltcGw6OnNldENsaWVudChXZWJDb21wb3NpdG9yQ2xp
ZW50KiBjbGllbnQpCit7CisgICAgQVNTRVJUKGNsaWVudCk7CisgICAgbV9jbGllbnQgPSBjbGll
bnQ7Cit9CisKK3ZvaWQgV2ViQ29tcG9zaXRvckltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3Qg
V2ViSW5wdXRFdmVudCYgZXZlbnQpCit7CisgICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyBpbnRl
cmVzdGluZyB3aXRoIHRoZSBldmVudCBoZXJlLgorICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1
dEV2ZW50KCk7Cit9CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViQ29tcG9zaXRvckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNv
bXBvc2l0b3JJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgzYWY2ZjJhYzFlZTliN2EzMDdkZTViNjQyYjA5
MzNmMDNkYzNmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkNvbXBvc2l0b3JJbXBsLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2Vi
Q29tcG9zaXRvckltcGxfaAorI2RlZmluZSBXZWJDb21wb3NpdG9ySW1wbF9oCisKKyNpbmNsdWRl
ICJXZWJDb21wb3NpdG9yLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNv
bXBvc2l0b3JDbGllbnQ7CisKK2NsYXNzIFdlYkNvbXBvc2l0b3JJbXBsIDogcHVibGljIFdlYkNv
bXBvc2l0b3IgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkNvbXBvc2l0b3JJbXBsKTsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxXZWJDb21wb3NpdG9ySW1wbD4gY3JlYXRl
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViQ29tcG9zaXRvckltcGwp
OworICAgIH0KKworICAgIHZpcnR1YWwgfldlYkNvbXBvc2l0b3JJbXBsKCk7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0Q2xpZW50KFdlYkNvbXBvc2l0b3JDbGllbnQqKTsKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7CisKK3ByaXZhdGU6Cisg
ICAgV2ViQ29tcG9zaXRvckltcGwoKTsKKworICAgIFdlYkNvbXBvc2l0b3JDbGllbnQqIG1fY2xp
ZW50OworfTsKKworfQorCisjZW5kaWYgLy8gV2ViQ29tcG9zaXRvckltcGxfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDAxMTI1NmI2MzI2OGZhMzdi
ODI4OTA0YmQzOWZlMTcxNTk2ZTRhMzAuLjI1ZmZmZjU0ZjgzYTE4YThiYjU3NDAxNDdkMjA3MDYx
OGE5NGFlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
QEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJBdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oIgog
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZExpc3RDaHJv
bWl1bS5oIgotI2luY2x1ZGUgIkNDVGhyZWFkSW1wbC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2Vs
ZWN0b3IuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2hyb21l
LmgiCkBAIC0yNjg2LDExICsyNjg1LDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQWN0aXZlKGJvb2wgYWN0aXZlKQogCiAjZW5kaWYKIAotUGFzc093blB0
cjxDQ1RocmVhZD4gV2ViVmlld0ltcGw6OmNyZWF0ZUNvbXBvc2l0b3JUaHJlYWQoKQotewotICAg
IHJldHVybiBDQ1RocmVhZEltcGw6OmNyZWF0ZSgpOwotfQotCiBQYXNzUmVmUHRyPEdyYXBoaWNz
Q29udGV4dDNEPiBXZWJWaWV3SW1wbDo6Y3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpCiB7
CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0ID0gbV90ZW1wb3JhcnlPbnNj
cmVlbkdyYXBoaWNzQ29udGV4dDNELnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5oCmluZGV4IGIzOTU0OWE5YmMwMDZkN2IyYWI4MGYzYzFiYTY3YmY2YWIx
NTU1MzUuLjQ3OWYzMzY0MWQ5YWY0ZGQwZDEwMmNhZThiZThhNDM3MzkzYzQ1MGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMjE5LDcgKzIxOSw2IEBAIHB1
YmxpYzoKIAogICAgIC8vIENDTGF5ZXJUcmVlSG9zdENsaWVudAogICAgIHZpcnR1YWwgdm9pZCBh
bmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSk7Ci0gICAgdmlydHVhbCBQYXNz
T3duUHRyPFdlYkNvcmU6OkNDVGhyZWFkPiBjcmVhdGVDb21wb3NpdG9yVGhyZWFkKCk7CiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXll
clRyZWVIb3N0Q29udGV4dDNEKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY3JlYXRlR3JhcGhp
Y3NDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CiAjaWYgIVVTRShUSFJFQURFRF9DT01QT1NJVElORykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRl
c3QuY3BwCmluZGV4IDY3M2IxZjUzYzc1OTkzMDljYWYxMjYwNjBjMDUxY2MwZGU3YThjZDUuLjk3
YzlkN2Q2NWM2NzliNTAzM2M2MDAxZWZiNTQwMDJjMjgwZGE2ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcApAQCAtMjgs
MTUgKzI4LDE5IEBACiAKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKIAorI2luY2x1
ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaCIKKyNpbmNsdWRlICJjYy9DQ01haW5UaHJlYWRU
YXNrLmgiCisjaW5jbHVkZSAiY2MvQ0NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiQ0NUaHJlYWRJ
bXBsLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiCisjaW5jbHVkZSA8
Z3Rlc3QvZ3Rlc3QuaD4KICNpbmNsdWRlICJMYXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAiTW9j
a1dlYkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hbmFnZXIuaCIKLSNp
bmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgiCi0jaW5jbHVkZSAiY2MvQ0NNYWluVGhy
ZWFkVGFzay5oIgotI2luY2x1ZGUgImNjL0NDVGhyZWFkVGFzay5oIgotI2luY2x1ZGUgPGd0ZXN0
L2d0ZXN0Lmg+CisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvci5oIgorI2luY2x1ZGUgIldlYktpdC5o
IgorI2luY2x1ZGUgIldlYktpdFBsYXRmb3JtU3VwcG9ydC5oIgorI2luY2x1ZGUgIldlYlRocmVh
ZC5oIgogI2luY2x1ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtMTQ3
LDExICsxNTEsNiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgUGFzc093
blB0cjxDQ1RocmVhZD4gY3JlYXRlQ29tcG9zaXRvclRocmVhZCgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gQ0NUaHJlYWRJbXBsOjpjcmVhdGUoKTsKLSAgICB9Ci0KICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKQog
ICAgIHsKICAgICAgICAgT3duUHRyPFdlYkdyYXBoaWNzQ29udGV4dDNEPiBtb2NrID0gQ29tcG9z
aXRvck1vY2tXZWJHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKCk7CkBAIC0yMDgsNiArMjA3LDgg
QEAgcHJvdGVjdGVkOgogICAgICAgICAsIG1fcnVubmluZyhmYWxzZSkKICAgICAgICAgLCBtX3Rp
bWVkT3V0KGZhbHNlKQogICAgIHsKKyAgICAgICAgbV93ZWJUaHJlYWQgPSBhZG9wdFB0cih3ZWJL
aXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFkKCJDQ0xheWVyVHJlZUhvc3RUZXN0Iikp
OworICAgICAgICBXZWJDb21wb3NpdG9yOjpzZXRUaHJlYWQobV93ZWJUaHJlYWQuZ2V0KCkpOwog
I2lmIFVTRShUSFJFQURFRF9DT01QT1NJVElORykKICAgICAgICAgbV9zZXR0aW5ncy5lbmFibGVD
b21wb3NpdG9yVGhyZWFkID0gdHJ1ZTsKICNlbHNlCkBAIC0yODQsNiArMjg1LDggQEAgcHJpdmF0
ZToKICAgICBib29sIG1fZW5kV2hlbkJlZ2luUmV0dXJuczsKICAgICBib29sIG1fcnVubmluZzsK
ICAgICBib29sIG1fdGltZWRPdXQ7CisKKyAgICBPd25QdHI8V2ViVGhyZWFkPiBtX3dlYlRocmVh
ZDsKIH07CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0VGVzdDo6ZG9CZWdpblRlc3QoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RocmVhZFRlc3QuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RocmVhZFRlc3QuY3BwCmluZGV4IGM2OTU2YjA2
ODAzNjYwMzE1YmVmNDY4YTllMTkzZWNlOTk1ZGRjYWIuLmVhNmZiMTdkMWM2ZmVhYzkwNTkyOGI4
YWU4MjZiZmYzNzljNDNiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NUaHJlYWRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
VGhyZWFkVGVzdC5jcHAKQEAgLTI2LDE2ICsyNiwyMCBAQAogCiAjaW5jbHVkZSAiY2MvQ0NUaHJl
YWQuaCIKIAotI2luY2x1ZGUgIkNDVGhyZWFkSW1wbC5oIgogI2luY2x1ZGUgImNjL0NDQ29tcGxl
dGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiY2MvQ0NNYWluVGhyZWFkVGFzay5oIgogI2luY2x1ZGUg
ImNjL0NDVGhyZWFkVGFzay5oIgotI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSAi
Q0NUaHJlYWRJbXBsLmgiCisjaW5jbHVkZSAiV2ViS2l0LmgiCisjaW5jbHVkZSAiV2ViS2l0UGxh
dGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiV2ViVGhyZWFkLmgiCiAKKyNpbmNsdWRlIDxndGVz
dC9ndGVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBuYW1lc3BhY2UgewogCkBAIC01Myw3ICs1Nyw5IEBA
IHB1YmxpYzoKIAogVEVTVChDQ1RocmVhZFRlc3QsIHBpbmdQb25nVXNpbmdDb25kaXRpb24pCiB7
Ci0gICAgT3duUHRyPENDVGhyZWFkPiB0aHJlYWQgPSBXZWJLaXQ6OkNDVGhyZWFkSW1wbDo6Y3Jl
YXRlKCk7CisgICAgT3duUHRyPFdlYlRocmVhZD4gd2ViVGhyZWFkID0gYWRvcHRQdHIod2ViS2l0
UGxhdGZvcm1TdXBwb3J0KCktPmNyZWF0ZVRocmVhZCgidGVzdCIpKTsKKworICAgIE93blB0cjxD
Q1RocmVhZD4gdGhyZWFkID0gV2ViS2l0OjpDQ1RocmVhZEltcGw6OmNyZWF0ZSh3ZWJUaHJlYWQu
Z2V0KCkpOwogICAgIFBpbmdQb25nVXNpbmdDb25kaXRpb24gdGFyZ2V0OwogICAgIENDQ29tcGxl
dGlvbkV2ZW50IGNvbXBsZXRpb247CiAgICAgdGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVh
ZFRhc2soJnRhcmdldCwgJlBpbmdQb25nVXNpbmdDb25kaXRpb246OnBpbmcsCkBAIC04MCw5ICs4
NiwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoaXQ7CiB9OwogCi1URVNUKENDVGhyZWFkVGVzdCwg
RElTQUJMRURfc3RhcnRQb3N0QW5kV2FpdE9uQ29uZGl0aW9uKQorVEVTVChDQ1RocmVhZFRlc3Qs
IHN0YXJ0UG9zdEFuZFdhaXRPbkNvbmRpdGlvbikKIHsKLSAgICBPd25QdHI8Q0NUaHJlYWQ+IHRo
cmVhZCA9IFdlYktpdDo6Q0NUaHJlYWRJbXBsOjpjcmVhdGUoKTsKKyAgICBPd25QdHI8V2ViVGhy
ZWFkPiB3ZWJUaHJlYWQgPSBhZG9wdFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRl
VGhyZWFkKCJ0ZXN0IikpOworCisgICAgT3duUHRyPENDVGhyZWFkPiB0aHJlYWQgPSBXZWJLaXQ6
OkNDVGhyZWFkSW1wbDo6Y3JlYXRlKHdlYlRocmVhZC5nZXQoKSk7CiAKICAgICBQaW5nUG9uZ1Rl
c3RVc2luZ1Rhc2tzIHRhcmdldDsKICAgICB0aHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFk
VGFzaygmdGFyZ2V0LCAmUGluZ1BvbmdUZXN0VXNpbmdUYXNrczo6cGluZykpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY4OTQwMjlmMmQ1ZmMw
Mzk3MGFhMmIwNjM4NzJmOWJmOTkwZDNkYTQuLjQxMjhjNjFiMjBhZDY3M2ZkNmVjMDJiMDc5Mzg2
YWJlNjFjMGE4N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wOS0yOSAgSmFtZXMgUm9iaW5zb24gIDxqYW1l
c3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIFdlYktpdCBBUEkgZm9y
IHNlbmRpbmcgaW5wdXQgZXZlbnRzIHRvIHRoZSBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxMTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIGNy
ZWF0aW5nIGFuZCBzZXR0aW5nIGEgY29tcG9zaXRvciB0aHJlYWQgaW4gRFJULgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2Vi
Vmlld0hvc3Q6OldlYlZpZXdIb3N0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5oOgorCiAyMDExLTA5LTI5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5icmVhayB0aGUgInVwZGF0ZSBleHBlY3RhdGF0aW9ucyIgYnV0
dG9uIGJ5IHVzaW5nIHRoZSBleGlzdGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IGI3NjE3NjIzMDg4ODZjNTQwNDkyZWVhYTljNTVlNDNj
MzJhZjRmYjcuLjFlZjdiYjYzZDExZmY2ODNmMGE4NDkwNzBlNjZkN2FkZWJhYjRkZGIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTM2LDYg
KzM2LDcgQEAKICNpbmNsdWRlICJUZXN0U2hlbGwuaCIKICNpbmNsdWRlICJUZXN0V2ViV29ya2Vy
LmgiCiAjaW5jbHVkZSAiV2ViQ1N0cmluZy5oIgorI2luY2x1ZGUgIldlYkNvbXBvc2l0b3IuaCIK
ICNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51
RGF0YS5oIgogI2luY2x1ZGUgIldlYkRhdGFTb3VyY2UuaCIKQEAgLTQ1LDYgKzQ2LDggQEAKICNp
bmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50TW9jay5o
IgogI2luY2x1ZGUgIldlYkhpc3RvcnlJdGVtLmgiCisjaW5jbHVkZSAiV2ViS2l0LmgiCisjaW5j
bHVkZSAiV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiV2ViTm9kZS5oIgogI2lu
Y2x1ZGUgIldlYlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYlBvcHVwVHlwZS5oIgpAQCAtNTYs
NiArNTksNyBAQAogI2luY2x1ZGUgIldlYlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJX
ZWJUZXh0Q2hlY2tpbmdDb21wbGV0aW9uLmgiCiAjaW5jbHVkZSAiV2ViVGV4dENoZWNraW5nUmVz
dWx0LmgiCisjaW5jbHVkZSAiV2ViVGhyZWFkLmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVxdWVzdC5o
IgogI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgpAQCAt
MTE2Nyw2ICsxMTcxLDEwIEBAIFdlYlZpZXdIb3N0OjpXZWJWaWV3SG9zdChUZXN0U2hlbGwqIHNo
ZWxsKQogICAgICwgbV9sYXN0UmVxdWVzdGVkVGV4dENoZWNraW5nQ29tcGxldGlvbigwKQogewog
ICAgIFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOworCisgICAgbV9jb21wb3NpdG9yVGhyZWFk
ID0gYWRvcHRQdHIoV2ViS2l0Ojp3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFk
KCJDb21wb3NpdG9yIikpOworICAgIFdlYkNvbXBvc2l0b3I6OnNldFRocmVhZChtX2NvbXBvc2l0
b3JUaHJlYWQuZ2V0KCkpOworCiAgICAgcmVzZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKaW5kZXggNmYxZmE4YmYwZjVhY2UxODdkY2VlYzMy
MGIyZWZkYTBjOGFlZGI4Mi4uOWZmMmUyNzNiZmI2MjU4ZGM3NTY3NmRkNTUwYmViOTcxNzg3MGMy
YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC01
OCw2ICs1OCw3IEBAIGNsYXNzIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s7CiBjbGFzcyBXZWJT
cGVlY2hJbnB1dENvbnRyb2xsZXI7CiBjbGFzcyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2Nr
OwogY2xhc3MgV2ViU3BlZWNoSW5wdXRMaXN0ZW5lcjsKK2NsYXNzIFdlYlRocmVhZDsKIGNsYXNz
IFdlYlVSTDsKIHN0cnVjdCBXZWJSZWN0Owogc3RydWN0IFdlYlVSTEVycm9yOwpAQCAtMzQ4LDYg
KzM0OSw4IEBAIHByaXZhdGU6CiAgICAgV2ViS2l0OjpXZWJTdHJpbmcgbV9sYXN0UmVxdWVzdGVk
VGV4dENoZWNrU3RyaW5nOwogICAgIFdlYktpdDo6V2ViVGV4dENoZWNraW5nQ29tcGxldGlvbiog
bV9sYXN0UmVxdWVzdGVkVGV4dENoZWNraW5nQ29tcGxldGlvbjsKIAorICAgIE93blB0cjxXZWJL
aXQ6OldlYlRocmVhZD4gbV9jb21wb3NpdG9yVGhyZWFkOworCiAgICAgVGFza0xpc3QgbV90YXNr
TGlzdDsKICAgICBWZWN0b3I8V2ViS2l0OjpXZWJXaWRnZXQqPiBtX3BvcHVwbWVudXM7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109235</attachid>
            <date>2011-09-29 18:43:27 -0700</date>
            <delta_ts>2011-09-29 19:05:15 -0700</delta_ts>
            <desc>with a #define to make a 2-sided patch easier</desc>
            <filename>bug-69117-20110929184326.patch</filename>
            <type>text/plain</type>
            <size>35540</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYzMzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NzI3MzBjODNmOTk0Mjlk
NGI0ZWEwNmFmMjU3NWE0YzhiNDAzYzM0Li4zN2ZiOTA3MDEyNTY1ZjE4MDZjODJhZWNkNTZhMDg5
ZTczZmRhNmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDktMjkgIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCBXZWJLaXQgQVBJIGZvciBzZW5kaW5nIGlucHV0IGV2ZW50cyB0byB0aGUgY29tcG9zaXRvciB0
aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5
MTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29u
dmVydCB0byB1c2luZyBhbiBleHRlcm5hbGx5LXByb3ZpZGVkIHRocmVhZCBpbnN0ZWFkIG9mIG9u
ZSBtYW5hZ2VkIGJ5IENDVGhyZWFkUHJveHkgaW50ZXJuYWxseS4gTW9zdCBjaGFuZ2VzCisgICAg
ICAgIGluIHRoZXNlIGZpbGVzIGFyZSBtZWNoYW5pY2FsbHkgY2hhbmdpbmcgcmVmZXJlbmNlcyBm
cm9tIGNjVGhyZWFkIHRvIHNfY2NUaHJlYWQgdG8gcmVmbGVjdCB0aGUgY2xhc3Mtc3RhdGljCisg
ICAgICAgIG5hdHVyZSBvZiB0aGlzIHBvaW50ZXIsIHRoZSByZXN0IGFyZSByZW1vdmluZyB0aGUg
b2xkIHRocmVhZCBjcmVhdGlvbiBjb2RlcGF0aC4KKworICAgICAgICBUaGVzZSBjaGFuZ2VzIGFy
ZSBjb3ZlcmVkIGJ5IHRoZSBDQyogdW5pdCB0ZXN0cyBhbmQgYnkgdGhlIGdwdSBsYXlvdXQgdGVz
dHMgd2hlbiBydW4gd2l0aCB0aGUKKyAgICAgICAgdXNlX3RocmVhZGVkX2NvbXBvc2l0aW5nPTEg
Z3lwIGRlZmluZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5
OjpzZXRUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6Q0NUaHJlYWRQ
cm94eSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojp+Q0NUaHJlYWRQcm94eSk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojpjb21wb3NpdGVBbmRSZWFkYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpmaW5pc2hBbGxSZW5kZXJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXRBbmRSZWRyYXcpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXcpOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NU
aHJlYWRQcm94eTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpiZWdp
bkZyYW1lQW5kQ29tbWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnNjaGVk
dWxlRHJhd1Rhc2tPbkNDVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisKIDIwMTEtMDktMjkgIElseWEgVGlraG9ub3Zza3kg
IDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFVJIHBlcmZv
cm1hbmNlIHRlc3QgZm9yIG5ldHdvcmsgcGFuZWwgaXMgaW5jb3JyZWN0LiBUaGUgdGltZSBpcyBp
bmNsdWRpbmcgYSB0aW1lb3V0IGJldHdlZW4gc2NoZWR1bGVkIHJlZnJlc2ggYW5kIGFjdHVhbCBy
ZWZyZXNoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNmRkZDliZDYzOTUw
YmM0N2MyNzAyZDQ4MGU1ODVhMDdlMmQyM2Y3Yi4uNTUyZjlhYmU5NmUyMzdmZGI1NGRkYzJkNzky
NTcyMzEwYzc1YmE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC0xNDMs
MTEgKzE0Myw2IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojpjb21taXRDb21wbGV0ZSgpCiAgICAg
bV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT51bnByb3RlY3RBbGxUZXh0dXJlcygpOwogfQogCi1Q
YXNzT3duUHRyPENDVGhyZWFkPiBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZUNvbXBvc2l0b3JUaHJl
YWQoKQotewotICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRlQ29tcG9zaXRvclRocmVhZCgpOwot
fQotCiBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0
ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKQogewogICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRl
TGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAppbmRl
eCA1NGFkNGMwMDIyMjk2ZGY3ZThiMTZlNjcyMDA5MDVhN2I3ZDRlNTIyLi5kMjM2NjY0YjBiMzZk
ZTg0NDI4MTA3MzIzYTI0MGE3MTRkZTI5NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3Qu
aApAQCAtNDEsNyArNDEsNiBAQCBjbGFzcyBHckNvbnRleHQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdEltcGw7Ci1jbGFzcyBDQ1RocmVhZDsKIGNsYXNzIEdy
YXBoaWNzQ29udGV4dDNEOwogY2xhc3MgTGF5ZXJDaHJvbWl1bTsKIGNsYXNzIExheWVyUGFpbnRl
ckNocm9taXVtOwpAQCAtNTEsNyArNTAsNiBAQCBjbGFzcyBUZXh0dXJlTWFuYWdlcjsKIGNsYXNz
IENDTGF5ZXJUcmVlSG9zdENsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFuaW1h
dGVBbmRMYXlvdXQoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNz
T3duUHRyPENDVGhyZWFkPiBjcmVhdGVDb21wb3NpdG9yVGhyZWFkKCkgPSAwOwogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRl
eHQzRCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQo
Ym9vbCBzdWNjZXNzKSA9IDA7CiAjaWYgIVVTRShUSFJFQURFRF9DT01QT1NJVElORykKQEAgLTk5
LDcgKzk3LDYgQEAgcHVibGljOgogICAgIHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJh
bWVCZWdpblRpbWUpOwogICAgIHZvaWQgY29tbWl0Q29tcGxldGUoKTsKICAgICB2b2lkIGNvbW1p
dFRvT25DQ1RocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKik7Ci0gICAgUGFzc093blB0cjxDQ1Ro
cmVhZD4gY3JlYXRlQ29tcG9zaXRvclRocmVhZCgpOwogICAgIFBhc3NSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKTsKICAgICB2aXJ0dWFsIFBh
c3NPd25QdHI8Q0NMYXllclRyZWVIb3N0SW1wbD4gY3JlYXRlTGF5ZXJUcmVlSG9zdEltcGwoKTsK
ICAgICB2b2lkIGRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGU0MDk4MjNiYTc1NGZkZTFkOGI5OTQwZTkwNDJk
NTk0Njk1MDBiMTIuLjBiMzA3MjZlYmMzM2YzZDQ3MDkyNWEwMzRkZTk0YmE5YTIxOGJmNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0zOCw5ICszOCwxNCBAQCB1c2luZyBuYW1l
c3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLW5hbWVzcGFjZSB7Ci1DQ1RocmVh
ZCogY2NUaHJlYWQ7Ci1pbnQgbnVtUHJveGllcyA9IDA7CitDQ1RocmVhZCogQ0NUaHJlYWRQcm94
eTo6c19jY1RocmVhZCA9IDA7CisKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0VGhyZWFkKENDVGhy
ZWFkKiBjY1RocmVhZCkKK3sKKyAgICBzX2NjVGhyZWFkID0gY2NUaHJlYWQ7CisjaWZuZGVmIE5E
RUJVRworICAgIENDUHJveHk6OnNldEltcGxUaHJlYWQoc19jY1RocmVhZC0+dGhyZWFkSUQoKSk7
CisjZW5kaWYKIH0KIAogUGFzc093blB0cjxDQ1Byb3h5PiBDQ1RocmVhZFByb3h5OjpjcmVhdGUo
Q0NMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KQpAQCAtNjAsMTMgKzY1LDYgQEAgQ0NUaHJl
YWRQcm94eTo6Q0NUaHJlYWRQcm94eShDQ0xheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QpCiB7
CiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OkNDVGhyZWFkUHJveHkiLCB0aGlzLCAw
KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG51bVByb3hpZXMrKzsKLSAgICBp
ZiAoIWNjVGhyZWFkKSB7Ci0gICAgICAgIGNjVGhyZWFkID0gbV9sYXllclRyZWVIb3N0LT5jcmVh
dGVDb21wb3NpdG9yVGhyZWFkKCkubGVha1B0cigpOwotI2lmbmRlZiBOREVCVUcKLSAgICAgICAg
Q0NQcm94eTo6c2V0SW1wbFRocmVhZChjY1RocmVhZC0+dGhyZWFkSUQoKSk7Ci0jZW5kaWYKLSAg
ICB9CiB9CiAKIENDVGhyZWFkUHJveHk6On5DQ1RocmVhZFByb3h5KCkKQEAgLTc0LDEyICs3Miw2
IEBAIENDVGhyZWFkUHJveHk6On5DQ1RocmVhZFByb3h5KCkKICAgICBUUkFDRV9FVkVOVCgiQ0NU
aHJlYWRQcm94eTo6fkNDVGhyZWFkUHJveHkiLCB0aGlzLCAwKTsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgIEFTU0VSVCghbV9zdGFydGVkKTsKLQotICAgIG51bVByb3hpZXMtLTsK
LSAgICBpZiAoIW51bVByb3hpZXMpIHsKLSAgICAgICAgZGVsZXRlIGNjVGhyZWFkOwotICAgICAg
ICBjY1RocmVhZCA9IDA7Ci0gICAgfQogfQogCiBib29sIENDVGhyZWFkUHJveHk6OmNvbXBvc2l0
ZUFuZFJlYWRiYWNrKHZvaWQgKnBpeGVscywgY29uc3QgSW50UmVjdCYgcmVjdCkKQEAgLTk3LDcg
Kzg5LDcgQEAgYm9vbCBDQ1RocmVhZFByb3h5Ojpjb21wb3NpdGVBbmRSZWFkYmFjayh2b2lkICpw
aXhlbHMsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIHsKICAgICAgICAgICAgIENDTWFp
blRocmVhZDo6VGFzayogdGFza1B0ciA9IDA7CiAgICAgICAgICAgICBDQ0NvbXBsZXRpb25FdmVu
dCBjb21wbGV0aW9uOwotICAgICAgICAgICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhy
ZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6b2J0YWluQmVnaW5GcmFtZUFuZENvbW1pdFRh
c2tGcm9tQ0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pLCBBbGxv
d0Nyb3NzVGhyZWFkQWNjZXNzKCZ0YXNrUHRyKSkpOworICAgICAgICAgICAgc19jY1RocmVhZC0+
cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpvYnRhaW5C
ZWdpbkZyYW1lQW5kQ29tbWl0VGFza0Zyb21DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2Vz
cygmY29tcGxldGlvbiksIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJnRhc2tQdHIpKSk7CiAgICAg
ICAgICAgICBjb21wbGV0aW9uLndhaXQoKTsKICAgICAgICAgICAgIGJlZ2luRnJhbWVBbmRDb21t
aXRUYXNrID0gYWRvcHRQdHIodGFza1B0cik7CiAgICAgICAgIH0KQEAgLTEwOCw3ICsxMDAsNyBA
QCBib29sIENDVGhyZWFkUHJveHk6OmNvbXBvc2l0ZUFuZFJlYWRiYWNrKHZvaWQgKnBpeGVscywg
Y29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAvLyBEcmF3IHVzaW5nIHRoZSBuZXcgdHJlZSBhbmQg
cmVhZCBiYWNrIHRoZSByZXN1bHRzLgogICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwogICAgIEND
Q29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247Ci0gICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0
ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6ZHJhd0xheWVyc0FuZFJlYWRiYWNr
T25DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcygmY29tcGxldGlvbiksIEFsbG93Q3Jv
c3NUaHJlYWRBY2Nlc3MoJnN1Y2Nlc3MpLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKHBpeGVscyks
IHJlY3QpKTsKKyAgICBzX2NjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhp
cywgJkNDVGhyZWFkUHJveHk6OmRyYXdMYXllcnNBbmRSZWFkYmFja09uQ0NUaHJlYWQsIEFsbG93
Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZz
dWNjZXNzKSwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcyhwaXhlbHMpLCByZWN0KSk7CiAgICAgY29t
cGxldGlvbi53YWl0KCk7CiAgICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CkBAIC0xMzgsNyArMTMwLDcg
QEAgdm9pZCBDQ1RocmVhZFByb3h5OjpmaW5pc2hBbGxSZW5kZXJpbmcoKQogCiAgICAgLy8gTWFr
ZSBzdXJlIGFsbCBHTCBkcmF3aW5nIGlzIGZpbmlzaGVkIG9uIHRoZSBpbXBsIHRocmVhZC4KICAg
ICBDQ0NvbXBsZXRpb25FdmVudCBjb21wbGV0aW9uOwotICAgIGNjVGhyZWFkLT5wb3N0VGFzayhj
cmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmZpbmlzaEFsbFJlbmRlcmlu
Z09uQ0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pKSk7CisgICAg
c19jY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFBy
b3h5OjpmaW5pc2hBbGxSZW5kZXJpbmdPbkNDVGhyZWFkLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNz
KCZjb21wbGV0aW9uKSkpOwogICAgIGNvbXBsZXRpb24ud2FpdCgpOwogfQogCkBAIC0xNTAsNiAr
MTQyLDggQEAgYm9vbCBDQ1RocmVhZFByb3h5Ojppc1N0YXJ0ZWQoKSBjb25zdAogCiBib29sIEND
VGhyZWFkUHJveHk6OmluaXRpYWxpemVMYXllclJlbmRlcmVyKCkKIHsKKyAgICBBU1NFUlQoc19j
Y1RocmVhZCk7CisKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBtX2xh
eWVyVHJlZUhvc3QtPmNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKTsKICAgICBpZiAoIWNv
bnRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2NCw3ICsxNTgsNyBAQCBib29sIEND
VGhyZWFkUHJveHk6OmluaXRpYWxpemVMYXllclJlbmRlcmVyKCkKICAgICBDQ0NvbXBsZXRpb25F
dmVudCBjb21wbGV0aW9uOwogICAgIGJvb2wgaW5pdGlhbGl6ZVN1Y2NlZWRlZCA9IGZhbHNlOwog
ICAgIExheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOwotICAgIGNjVGhyZWFk
LT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmluaXRp
YWxpemVMYXllclJlbmRlcmVyT25DQ1RocmVhZCwKKyAgICBzX2NjVGhyZWFkLT5wb3N0VGFzayhj
cmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVMYXllclJl
bmRlcmVyT25DQ1RocmVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoY29udGV4dFB0ciksIEFsbG93Q3Jvc3NUaHJlYWRB
Y2Nlc3MoJmNvbXBsZXRpb24pLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZpbml0aWFsaXplU3Vj
Y2VlZGVkKSwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcygmY2FwYWJpbGl0aWVzKSkpOwogICAgIGNv
bXBsZXRpb24ud2FpdCgpOwogCkBAIC0xOTEsNyArMTg1LDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5
OjpzZXROZWVkc0NvbW1pdCgpCiAKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6c2V0
TmVlZHNDb21taXQiLCB0aGlzLCAwKTsKICAgICBtX2NvbW1pdFJlcXVlc3RlZCA9IHRydWU7Ci0g
ICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQ
cm94eTo6dXBkYXRlU2NoZWR1bGVyU3RhdGVPbkNDVGhyZWFkLCBtX2NvbW1pdFJlcXVlc3RlZCwg
dHJ1ZSkpOworICAgIHNfY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlz
LCAmQ0NUaHJlYWRQcm94eTo6dXBkYXRlU2NoZWR1bGVyU3RhdGVPbkNDVGhyZWFkLCBtX2NvbW1p
dFJlcXVlc3RlZCwgdHJ1ZSkpOwogfQogCiB2b2lkIENDVGhyZWFkUHJveHk6OnNldE5lZWRzQ29t
bWl0QW5kUmVkcmF3KCkKQEAgLTIwMiw3ICsxOTYsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnNl
dE5lZWRzQ29tbWl0QW5kUmVkcmF3KCkKICAgICBtX2NvbW1pdFJlcXVlc3RlZCA9IHRydWU7CiAK
ICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXRBbmRSZWRyYXci
LCB0aGlzLCAwKTsKLSAgICBjY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRo
aXMsICZDQ1RocmVhZFByb3h5Ojp1cGRhdGVTY2hlZHVsZXJTdGF0ZU9uQ0NUaHJlYWQsIG1fY29t
bWl0UmVxdWVzdGVkLCB0cnVlKSk7CisgICAgc19jY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NU
aHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5Ojp1cGRhdGVTY2hlZHVsZXJTdGF0ZU9uQ0NU
aHJlYWQsIG1fY29tbWl0UmVxdWVzdGVkLCB0cnVlKSk7CiB9CiAKIHZvaWQgQ0NUaHJlYWRQcm94
eTo6c2V0TmVlZHNSZWRyYXcoKQpAQCAtMjE3LDcgKzIxMSw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94
eTo6c2V0TmVlZHNSZWRyYXcoKQogICAgIC8vIHNldE5lZWRzUmVkcmF3IG1lc3NhZ2VzIGFyZSB1
bmNvbW1vbiAob25seSB0cmlnZ2VyZWQgYnkgV01fUEFJTlQvZXRjKSwKICAgICAvLyBjb21wYXJl
ZCB0byBzZXROZWVkc0NvbW1pdEFuZFJlZHJhdyBtZXNzYWdlcy4KICAgICBUUkFDRV9FVkVOVCgi
Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXciLCB0aGlzLCAwKTsKLSAgICBjY1RocmVhZC0+
cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5Ojp1cGRhdGVT
Y2hlZHVsZXJTdGF0ZU9uQ0NUaHJlYWQsIGZhbHNlLCB0cnVlKSk7CisgICAgc19jY1RocmVhZC0+
cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5Ojp1cGRhdGVT
Y2hlZHVsZXJTdGF0ZU9uQ0NUaHJlYWQsIGZhbHNlLCB0cnVlKSk7CiB9CiAKIHZvaWQgQ0NUaHJl
YWRQcm94eTo6c3RhcnQoKQpAQCAtMjI1LDcgKzIxOSw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6
c3RhcnQoKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgLy8gQ3JlYXRlIExheWVy
VHJlZUhvc3RJbXBsLgogICAgIENDQ29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247Ci0gICAgY2NU
aHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6
aW5pdGlhbGl6ZUltcGxPbkNDVGhyZWFkLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZjb21wbGV0
aW9uKSkpOworICAgIHNfY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlz
LCAmQ0NUaHJlYWRQcm94eTo6aW5pdGlhbGl6ZUltcGxPbkNDVGhyZWFkLCBBbGxvd0Nyb3NzVGhy
ZWFkQWNjZXNzKCZjb21wbGV0aW9uKSkpOwogICAgIGNvbXBsZXRpb24ud2FpdCgpOwogCiAgICAg
bV9zdGFydGVkID0gdHJ1ZTsKQEAgLTIzOSw3ICsyMzMsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6
OnN0b3AoKQogCiAgICAgLy8gU3luY2hyb25vdXNseSBkZWxldGVzIHRoZSBpbXBsLgogICAgIEND
Q29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247Ci0gICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0
ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6bGF5ZXJUcmVlSG9zdENsb3NlZE9u
Q0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pKSk7CisgICAgc19j
Y1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5
OjpsYXllclRyZWVIb3N0Q2xvc2VkT25DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2Vzcygm
Y29tcGxldGlvbikpKTsKICAgICBjb21wbGV0aW9uLndhaXQoKTsKIAogICAgIEFTU0VSVCghbV9s
YXllclRyZWVIb3N0SW1wbCk7IC8vIHZlcmlmeSB0aGF0IHRoZSBpbXBsIGRlbGV0ZWQuCkBAIC0z
MjUsNyArMzE5LDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0KGlu
dCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW0KICAgICAgICAgLy8gQmxvY2tp
bmcgY2FsbCB0byBDQ1RocmVhZFByb3h5Ojpjb21taXRPbkNDVGhyZWFkCiAgICAgICAgIFRSQUNF
X0VWRU5UKCJjb21taXQiLCB0aGlzLCAwKTsKICAgICAgICAgQ0NDb21wbGV0aW9uRXZlbnQgY29t
cGxldGlvbjsKLSAgICAgICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0
aGlzLCAmQ0NUaHJlYWRQcm94eTo6Y29tbWl0T25DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFj
Y2VzcygmY29tcGxldGlvbikpKTsKKyAgICAgICAgc19jY1RocmVhZC0+cG9zdFRhc2soY3JlYXRl
Q0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5Ojpjb21taXRPbkNDVGhyZWFkLCBBbGxv
d0Nyb3NzVGhyZWFkQWNjZXNzKCZjb21wbGV0aW9uKSkpOwogICAgICAgICBjb21wbGV0aW9uLndh
aXQoKTsKICAgICB9CiAKQEAgLTM2Miw3ICszNTYsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnNj
aGVkdWxlRHJhd1Rhc2tPbkNDVGhyZWFkKCkKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94
eTo6c2NoZWR1bGVEcmF3VGFza09uQ0NUaHJlYWQiLCB0aGlzLCAwKTsKICAgICBBU1NFUlQobV9s
YXllclRyZWVIb3N0SW1wbCk7CiAgICAgbV9kcmF3VGFza1Bvc3RlZE9uQ0NUaHJlYWQgPSB0cnVl
OwotICAgIGNjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhy
ZWFkUHJveHk6OmRyYXdMYXllcnNBbmRQcmVzZW50T25DQ1RocmVhZCkpOworICAgIHNfY2NUaHJl
YWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6ZHJh
d0xheWVyc0FuZFByZXNlbnRPbkNDVGhyZWFkKSk7CiB9CiAKIHZvaWQgQ0NUaHJlYWRQcm94eTo6
ZHJhd0xheWVyc0FuZFByZXNlbnRPbkNDVGhyZWFkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApp
bmRleCBkM2I0ODdmZWM0MGQ0MDE1OTA3YTlmODA5NmNkOWRiY2UyZDFiMTkyLi4xMmU2ZGMzYjlj
ZTUzZTYyZjNiNTU3ZjdjMGE0OThhMjlhODI1NGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5o
CkBAIC0zNCw5ICszNCwxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDQ0xheWVy
VHJlZUhvc3Q7CitjbGFzcyBDQ1RocmVhZDsKIAogY2xhc3MgQ0NUaHJlYWRQcm94eSA6IHB1Ymxp
YyBDQ1Byb3h5IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBzZXRUaHJlYWQoQ0NUaHJlYWQq
KTsKKwogICAgIHN0YXRpYyBQYXNzT3duUHRyPENDUHJveHk+IGNyZWF0ZShDQ0xheWVyVHJlZUhv
c3QqKTsKIAogICAgIHZpcnR1YWwgfkNDVGhyZWFkUHJveHkoKTsKQEAgLTg5LDYgKzkyLDggQEAg
cHJpdmF0ZToKICAgICBib29sIG1fYmVnaW5GcmFtZUFuZENvbW1pdFBlbmRpbmdPbkNDVGhyZWFk
OwogICAgIGJvb2wgbV9kcmF3VGFza1Bvc3RlZE9uQ0NUaHJlYWQ7CiAgICAgYm9vbCBtX3JlZHJh
d1JlcXVlc3RlZE9uQ0NUaHJlYWQ7CisKKyAgICBzdGF0aWMgQ0NUaHJlYWQqIHNfY2NUaHJlYWQ7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDQxNmRhM2Y4MjFjODIwMDUz
ZjJkNjQzMmVkMjk1NzQ5OTc2NzFiNmMuLmNmZjJmOTIyOTliMmRlMDczYzFlYjE3ODhjMzQ4M2Jj
ODk2NDVhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIw
MTEtMDktMjkgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbY2hyb21pdW1dIEFkZCBXZWJLaXQgQVBJIGZvciBzZW5kaW5nIGlucHV0IGV2ZW50cyB0byB0
aGUgY29tcG9zaXRvciB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY5MTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkcyBhIG5ldyBXZWJLaXQgaW50ZXJmYWNlIHRvIGFsbG93IHRoZSBlbWJl
ZGRlciB0byBwYXNzIGlucHV0IGV2ZW50cyBkaXJlY3RseSB0byB0aGUgY29tcG9zaXRvciB0aHJl
YWQuCisgICAgICAgIEV4cG9zZXMgdGhlIG5ldyBXZWJDb21wb3NpdG9yIGludGVyZmFjZSBhbmQg
YXNzb2NpYXRlZCBjbGllbnQuIFRoZXNlIGludGVyZmFjZXMgYXJlIHNsaWdodGx5IGRpZmZlcmVu
dCBpbiB0aGF0CisgICAgICAgIHRoZXkgY2FuIG9ubHkgYmUgaW50ZXJhY3RlZCB3aXRoIGZyb20g
dGhlIGNvbXBvc2l0b3IgdGhyZWFkLgorCisgICAgICAgIENoYW5nZXMgdGhlIGluaXRpYWxpemF0
aW9uIHBhdGggZm9yIHRoZSBjb21wb3NpdG9yIHRocmVhZCB0byB1c2luZyBhbiBleHRlcm5hbGx5
IGFsbG9jYXRlZCBhbmQgbWFuYWdlZCB0aHJlYWQKKyAgICAgICAgaW5zdGVhZCBvZiBvbmUgaW50
ZXJuYWwgdG8gV2ViQ29yZSBzbyB0aGF0IHRoZSBlbWJlZGRlciBjYW4gaW50ZXJhY3Qgd2l0aCB0
aGUgdGhyZWFkIG1vcmUgZWFzaWx5LiBUaGlzIGFsc28KKyAgICAgICAgc2ltcGxpZmllcyB0aGUg
c3RhcnR1cCBhbmQgc2h1dGRvd24gcGF0aHMuICBUaGUgY29udHJhY3QgaXMgdGhhdCBXZWJDb21w
b3NpdG9yOjpzZXRUaHJlYWQoKSBtdXN0IGJlIGNhbGxlZAorICAgICAgICBiZWZvcmUgYW55IGNv
bXBvc2l0b3IgY2FuIGJlIGluaXRpYWxpemVkIGFuZCB0aGUgcGFzc2VkLWluIHRocmVhZCBtdXN0
IG91dGxpdmUgYWxsIGNvbXBvc2l0b3IgaW5zdGFuY2VzLgorCisgICAgICAgIEVhY2ggV2ViQ29t
cG9zaXRvciBpbnN0YW5jZSBpcyBhc3NvY2lhdGVkIHdpdGggYSBXZWJXaWRnZXQuICBUaGVyZSBp
c24ndCBhbnkgd2F5IHRvIGdldCBhIFdlYkNvbXBvc2l0b3IgZm9yIGEKKyAgICAgICAgZ2l2ZW4g
V2ViV2lkZ2V0IGluIHRoaXMgcGF0Y2gsIHRoYXQgd2lsbCBiZSBkb25lIGluIGEgZm9sbG93LXVw
LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViQ29tcG9zaXRv
ci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9yOjp+V2ViQ29tcG9zaXRvcik6Cisg
ICAgICAgICogcHVibGljL1dlYkNvbXBvc2l0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29tcG9zaXRvckNsaWVudDo6fldlYkNvbXBvc2l0b3JDbGllbnQpOgorICAgICAgICAqIHNy
Yy9DQ1RocmVhZEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDQ1RocmVhZEltcGw6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OkNDVGhyZWFkSW1wbDo6Q0NUaHJlYWRJbXBsKToKKyAgICAg
ICAgKiBzcmMvQ0NUaHJlYWRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbXBs
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNldFRocmVhZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbXBsOjpXZWJDb21wb3NpdG9ySW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbXBsOjp+V2ViQ29tcG9zaXRvckltcGwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW1wbDo6c2V0Q2xpZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvckltcGw6OmhhbmRsZUlucHV0RXZlbnQpOgorICAgICAg
ICAqIHNyYy9XZWJDb21wb3NpdG9ySW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3Np
dG9ySW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAg
ICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRl
c3QuY3BwOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0OjpDQ0xheWVyVHJlZUhv
c3RUZXN0KToKKyAgICAgICAgKiB0ZXN0cy9DQ1RocmVhZFRlc3QuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpURVNUKToKKwogMjAxMS0wOS0yOSAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogVXNlIExldmVsREIgYWxzbyBmb3IgaW4tbWVtb3J5
IGRhdGFiYXNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDhjNDkxMjk1MjEzY2Zj
ODdjOWRjZTMzZTQ2ZWMwZjg5YzMzNjU5NzguLjY2MzBiMzUxMTdiMGQwMzY2ZDMwZGM5MjBiMmZk
Yzg2ZDAyY2M1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTEyNyw2ICsxMjcs
OCBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tbW9uLmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViQ29tcG9zaXRpb25VbmRlcmxpbmUuaCcsCisgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJDb21wb3NpdG9yQ2xpZW50LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29t
cG9zaXRvci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbnNvbGVNZXNzYWdlLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29udGV4dE1lbnVEYXRhLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViQ29va2llLmgnLApAQCAtNDQ1LDYgKzQ0Nyw4IEBACiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJDYWNoZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
Q29sb3IuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbW1vbi5jcHAnLAorICAgICAg
ICAgICAgICAgICdzcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAn
c3JjL1dlYkNvbXBvc2l0b3JJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ3Jvc3NP
cmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
Q1N0cmluZy5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ3Vyc29ySW5mby5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvci5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA4YjMyYTE5NmY2MjUxOWY1NTVmZTAzZmY2NzNhYTU0MmMwNWRiYWUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yLmgKQEAg
LTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29tcG9zaXRvcl9oCisjZGVmaW5lIFdl
YkNvbXBvc2l0b3JfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisKKyNkZWZpbmUgSEFWRV9X
RUJDT01QT1NJVE9SCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb21wb3NpdG9y
Q2xpZW50OworY2xhc3MgV2ViSW5wdXRFdmVudDsKK2NsYXNzIFdlYlRocmVhZDsKKworLy8gVGhp
cyByZXByZXNlbnRzIHRoZSBjb21wb3NpdG9yIGFzc29jaWF0ZWQgd2l0aCBhIFdlYldpZGdldC4g
QWxsIGNhbGxzIHRvIHRoZSBXZWJDb21wb3NpdG9yIG11c3QKKy8vIGJlIG1hZGUgZnJvbSB0aGUg
Y29tcG9zaXRvciB0aHJlYWQuCitjbGFzcyBXZWJDb21wb3NpdG9yIHsKK3B1YmxpYzoKKyAgICAv
LyBUaGlzIG11c3QgYmUgY2FsbGVkIG9uY2Ugd2l0aCBhIG5vbi1udWxsIFdlYlRocmVhZCBiZWZv
cmUgYW55IGNvbXBvc2l0b3JzIGF0dGVtcHQgdG8gaW5pdGlhbGl6ZS4KKyAgICBXRUJLSVRfRVhQ
T1JUIHN0YXRpYyB2b2lkIHNldFRocmVhZChXZWJUaHJlYWQqKTsKKworICAgIHZpcnR1YWwgdm9p
ZCBzZXRDbGllbnQoV2ViQ29tcG9zaXRvckNsaWVudCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50JikgPSAwOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCB+V2ViQ29tcG9zaXRvcigpIHsgfQorfTsKKworfQorCisjZW5kaWYgLy8g
V2ViQ29tcG9zaXRvcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJDb21wb3NpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJDb21wb3NpdG9yQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZhODQwNmYwOWE5ZGMxYjZmZmQ1YTA0
OGU4ZTgwYmZmZTMzZmRkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkNvbXBvc2l0b3JDbGllbnQuaApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBXZWJDb21wb3NpdG9yQ2xpZW50X2gKKyNkZWZpbmUgV2ViQ29tcG9zaXRvckNsaWVu
dF9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb21wb3NpdG9yQ2xpZW50IHsK
K3B1YmxpYzoKKyAgICAvLyBDYWxsYmFja3MgaW52b2tlZCBmcm9tIHRoZSBjb21wb3NpdG9yIHRo
cmVhZC4KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNodXRkb3duKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRIYW5kbGVJbnB1dEV2ZW50KCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVh
bCB+V2ViQ29tcG9zaXRvckNsaWVudCgpIHsgfQorfTsKKworfQorCisjZW5kaWYgLy8gV2ViQ29t
cG9zaXRvckNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
Q1RocmVhZEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ0NUaHJlYWRJbXBs
LmNwcAppbmRleCA2MTZiOTUwNDAwYjk1OGIxYWRmMjVjZTJkZjYzMzQyZTRkNzcwNTljLi5kOThi
NTI3NWUzMGRkYTY2NmU5ZWMxMWYxMDQ1OTc0OWU4OTA3ZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0NDVGhyZWFkSW1wbC5jcHAKQEAgLTc2LDkgKzc2LDkgQEAgcHJpdmF0ZToK
ICAgICBPd25QdHI8Q0NUaHJlYWQ6OlRhc2s+IG1fdGFzazsKIH07CiAKLVBhc3NPd25QdHI8Q0NU
aHJlYWQ+IENDVGhyZWFkSW1wbDo6Y3JlYXRlKCkKK1Bhc3NPd25QdHI8Q0NUaHJlYWQ+IENDVGhy
ZWFkSW1wbDo6Y3JlYXRlKFdlYlRocmVhZCogdGhyZWFkKQogewotICAgIHJldHVybiBhZG9wdFB0
cihuZXcgQ0NUaHJlYWRJbXBsKCkpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NUaHJlYWRJ
bXBsKHRocmVhZCkpOwogfQogCiBDQ1RocmVhZEltcGw6On5DQ1RocmVhZEltcGwoKQpAQCAtOTUs
OCArOTUsOCBAQCBUaHJlYWRJZGVudGlmaWVyIENDVGhyZWFkSW1wbDo6dGhyZWFkSUQoKSBjb25z
dAogICAgIHJldHVybiBtX3RocmVhZElEOwogfQogCi1DQ1RocmVhZEltcGw6OkNDVGhyZWFkSW1w
bCgpCi0gICAgOiBtX3RocmVhZChhZG9wdFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3Jl
YXRlVGhyZWFkKCJDQ1RocmVhZCIpKSkKK0NDVGhyZWFkSW1wbDo6Q0NUaHJlYWRJbXBsKFdlYlRo
cmVhZCogdGhyZWFkKQorICAgIDogbV90aHJlYWQodGhyZWFkKQogewogICAgIC8vIEdldCB0aGUg
dGhyZWFkSWQgZm9yIHRoZSBuZXdseS1jcmVhdGVkIHRocmVhZCBieSBydW5uaW5nIGEgdGFzawog
ICAgIC8vIG9uIHRoYXQgdGhyZWFkLCBibG9ja2luZyBvbiB0aGUgcmVzdWx0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ0NUaHJlYWRJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuaAppbmRleCA5YzkyOWFiMTA5YzUzZTNiMTY3
MjMyODE3ZDk5OGE4Y2ZlMGI1MjE1Li5iZTUwZDViYWU5YzQ5OWU0MTIxODA1MzZmYWE0M2I0OTRm
MmZjOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZElt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuaApAQCAt
MzcsMTUgKzM3LDE1IEBAIGNsYXNzIFdlYlRocmVhZDsKIC8vIEltcGxlbWVudHMgQ0NUaHJlYWQg
aW4gdGVybXMgb2YgV2ViVGhyZWFkLgogY2xhc3MgQ0NUaHJlYWRJbXBsIDogcHVibGljIFdlYkNv
cmU6OkNDVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJDb3JlOjpD
Q1RocmVhZD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8V2ViQ29yZTo6Q0NUaHJl
YWQ+IGNyZWF0ZShXZWJUaHJlYWQqKTsKICAgICB2aXJ0dWFsIH5DQ1RocmVhZEltcGwoKTsKICAg
ICB2b2lkIHBvc3RUYXNrKFBhc3NPd25QdHI8V2ViQ29yZTo6Q0NUaHJlYWQ6OlRhc2s+KTsKICAg
ICBXVEY6OlRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAg
ICBDQ1RocmVhZEltcGwoKTsKKyAgICBleHBsaWNpdCBDQ1RocmVhZEltcGwoV2ViVGhyZWFkKik7
CiAKLSAgICBPd25QdHI8V2ViVGhyZWFkPiBtX3RocmVhZDsKKyAgICBXZWJUaHJlYWQqIG1fdGhy
ZWFkOwogICAgIFdURjo6VGhyZWFkSWRlbnRpZmllciBtX3RocmVhZElEOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjY2U4OWE5NWZhMjIwYTRhZjlkODQ5ZGQ2MjUzMTVjMzdjYWVjYzEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAK
QEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
IldlYkNvbXBvc2l0b3JJbXBsLmgiCisKKyNpbmNsdWRlICJjYy9DQ1RocmVhZFByb3h5LmgiCisj
aW5jbHVkZSAiQ0NUaHJlYWRJbXBsLmgiCisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvckNsaWVudC5o
IgorI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYkNvbXBvc2l0b3I6OnNldFRocmVhZChX
ZWJUaHJlYWQqIGNvbXBvc2l0b3JUaHJlYWQpCit7CisgICAgQVNTRVJUKGNvbXBvc2l0b3JUaHJl
YWQpOworICAgIENDVGhyZWFkUHJveHk6OnNldFRocmVhZChDQ1RocmVhZEltcGw6OmNyZWF0ZShj
b21wb3NpdG9yVGhyZWFkKS5sZWFrUHRyKCkpOworfQorCitXZWJDb21wb3NpdG9ySW1wbDo6V2Vi
Q29tcG9zaXRvckltcGwoKQorICAgIDogbV9jbGllbnQoMCkKK3sKK30KKworV2ViQ29tcG9zaXRv
ckltcGw6On5XZWJDb21wb3NpdG9ySW1wbCgpCit7Cit9CisKK3ZvaWQgV2ViQ29tcG9zaXRvcklt
cGw6OnNldENsaWVudChXZWJDb21wb3NpdG9yQ2xpZW50KiBjbGllbnQpCit7CisgICAgQVNTRVJU
KGNsaWVudCk7CisgICAgbV9jbGllbnQgPSBjbGllbnQ7Cit9CisKK3ZvaWQgV2ViQ29tcG9zaXRv
ckltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgZXZlbnQpCit7Cisg
ICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyBpbnRlcmVzdGluZyB3aXRoIHRoZSBldmVudCBoZXJl
LgorICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7Cit9CisKK30KKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjgzYWY2ZjJhYzFlZTliN2EzMDdkZTViNjQyYjA5MzNmMDNkYzNmNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmgKQEAgLTAs
MCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29tcG9zaXRvckltcGxfaAorI2RlZmluZSBX
ZWJDb21wb3NpdG9ySW1wbF9oCisKKyNpbmNsdWRlICJXZWJDb21wb3NpdG9yLmgiCisjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbXBvc2l0b3JDbGllbnQ7CisKK2NsYXNzIFdl
YkNvbXBvc2l0b3JJbXBsIDogcHVibGljIFdlYkNvbXBvc2l0b3IgeworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFdlYkNvbXBvc2l0b3JJbXBsKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093
blB0cjxXZWJDb21wb3NpdG9ySW1wbD4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgV2ViQ29tcG9zaXRvckltcGwpOworICAgIH0KKworICAgIHZpcnR1YWwgfldl
YkNvbXBvc2l0b3JJbXBsKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYkNvbXBv
c2l0b3JDbGllbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW5wdXRFdmVudChjb25zdCBX
ZWJJbnB1dEV2ZW50Jik7CisKK3ByaXZhdGU6CisgICAgV2ViQ29tcG9zaXRvckltcGwoKTsKKwor
ICAgIFdlYkNvbXBvc2l0b3JDbGllbnQqIG1fY2xpZW50OworfTsKKworfQorCisjZW5kaWYgLy8g
V2ViQ29tcG9zaXRvckltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCmluZGV4IDAxMTI1NmI2MzI2OGZhMzdiODI4OTA0YmQzOWZlMTcxNTk2ZTRhMzAuLjI1
ZmZmZjU0ZjgzYTE4YThiYjU3NDAxNDdkMjA3MDYxOGE5NGFlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRl
ICJBdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oIgogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
ICNpbmNsdWRlICJCYWNrRm9yd2FyZExpc3RDaHJvbWl1bS5oIgotI2luY2x1ZGUgIkNDVGhyZWFk
SW1wbC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NWYWx1
ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCkBAIC0yNjg2LDExICsyNjg1LDYgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGJvb2wg
YWN0aXZlKQogCiAjZW5kaWYKIAotUGFzc093blB0cjxDQ1RocmVhZD4gV2ViVmlld0ltcGw6OmNy
ZWF0ZUNvbXBvc2l0b3JUaHJlYWQoKQotewotICAgIHJldHVybiBDQ1RocmVhZEltcGw6OmNyZWF0
ZSgpOwotfQotCiBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBXZWJWaWV3SW1wbDo6Y3Jl
YXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4
dDNEPiBjb250ZXh0ID0gbV90ZW1wb3JhcnlPbnNjcmVlbkdyYXBoaWNzQ29udGV4dDNELnJlbGVh
c2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGIzOTU0
OWE5YmMwMDZkN2IyYWI4MGYzYzFiYTY3YmY2YWIxNTU1MzUuLjQ3OWYzMzY0MWQ5YWY0ZGQwZDEw
MmNhZThiZThhNDM3MzkzYzQ1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaApAQCAtMjE5LDcgKzIxOSw2IEBAIHB1YmxpYzoKIAogICAgIC8vIENDTGF5ZXJUcmVl
SG9zdENsaWVudAogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFt
ZUJlZ2luVGltZSk7Ci0gICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkNDVGhyZWFkPiBj
cmVhdGVDb21wb3NpdG9yVGhyZWFkKCk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXllclRyZWVIb3N0Q29udGV4dDNEKCk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CiAj
aWYgIVVTRShUSFJFQURFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCmluZGV4IDY3M2IxZjUzYzc1OTkz
MDljYWYxMjYwNjBjMDUxY2MwZGU3YThjZDUuLjk3YzlkN2Q2NWM2NzliNTAzM2M2MDAxZWZiNTQw
MDJjMjgwZGE2ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NM
YXllclRyZWVIb3N0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RUZXN0LmNwcApAQCAtMjgsMTUgKzI4LDE5IEBACiAKICNpbmNsdWRlICJj
Yy9DQ0xheWVyVHJlZUhvc3QuaCIKIAorI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdEltcGwu
aCIKKyNpbmNsdWRlICJjYy9DQ01haW5UaHJlYWRUYXNrLmgiCisjaW5jbHVkZSAiY2MvQ0NUaHJl
YWRUYXNrLmgiCiAjaW5jbHVkZSAiQ0NUaHJlYWRJbXBsLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlLmgiCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KICNpbmNsdWRlICJM
YXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAiTW9ja1dlYkdyYXBoaWNzQ29udGV4dDNELmgiCiAj
aW5jbHVkZSAiVGV4dHVyZU1hbmFnZXIuaCIKLSNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3RJ
bXBsLmgiCi0jaW5jbHVkZSAiY2MvQ0NNYWluVGhyZWFkVGFzay5oIgotI2luY2x1ZGUgImNjL0ND
VGhyZWFkVGFzay5oIgotI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSAiV2ViQ29t
cG9zaXRvci5oIgorI2luY2x1ZGUgIldlYktpdC5oIgorI2luY2x1ZGUgIldlYktpdFBsYXRmb3Jt
U3VwcG9ydC5oIgorI2luY2x1ZGUgIldlYlRocmVhZC5oIgogI2luY2x1ZGUgPHdlYmtpdC9zdXBw
b3J0L3dlYmtpdF9zdXBwb3J0Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtMTQ3LDExICsxNTEsNiBAQCBwdWJsaWM6CiAgICAg
ewogICAgIH0KIAotICAgIHZpcnR1YWwgUGFzc093blB0cjxDQ1RocmVhZD4gY3JlYXRlQ29tcG9z
aXRvclRocmVhZCgpCi0gICAgewotICAgICAgICByZXR1cm4gQ0NUaHJlYWRJbXBsOjpjcmVhdGUo
KTsKLSAgICB9Ci0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNy
ZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKQogICAgIHsKICAgICAgICAgT3duUHRyPFdlYkdy
YXBoaWNzQ29udGV4dDNEPiBtb2NrID0gQ29tcG9zaXRvck1vY2tXZWJHcmFwaGljc0NvbnRleHQz
RDo6Y3JlYXRlKCk7CkBAIC0yMDgsNiArMjA3LDggQEAgcHJvdGVjdGVkOgogICAgICAgICAsIG1f
cnVubmluZyhmYWxzZSkKICAgICAgICAgLCBtX3RpbWVkT3V0KGZhbHNlKQogICAgIHsKKyAgICAg
ICAgbV93ZWJUaHJlYWQgPSBhZG9wdFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRl
VGhyZWFkKCJDQ0xheWVyVHJlZUhvc3RUZXN0IikpOworICAgICAgICBXZWJDb21wb3NpdG9yOjpz
ZXRUaHJlYWQobV93ZWJUaHJlYWQuZ2V0KCkpOwogI2lmIFVTRShUSFJFQURFRF9DT01QT1NJVElO
RykKICAgICAgICAgbV9zZXR0aW5ncy5lbmFibGVDb21wb3NpdG9yVGhyZWFkID0gdHJ1ZTsKICNl
bHNlCkBAIC0yODQsNiArMjg1LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fZW5kV2hlbkJlZ2lu
UmV0dXJuczsKICAgICBib29sIG1fcnVubmluZzsKICAgICBib29sIG1fdGltZWRPdXQ7CisKKyAg
ICBPd25QdHI8V2ViVGhyZWFkPiBtX3dlYlRocmVhZDsKIH07CiAKIHZvaWQgQ0NMYXllclRyZWVI
b3N0VGVzdDo6ZG9CZWdpblRlc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ1RocmVhZFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q1RocmVhZFRlc3QuY3BwCmluZGV4IGM2OTU2YjA2ODAzNjYwMzE1YmVmNDY4YTllMTkzZWNlOTk1
ZGRjYWIuLmVhNmZiMTdkMWM2ZmVhYzkwNTkyOGI4YWU4MjZiZmYzNzljNDNiODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaHJlYWRUZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGhyZWFkVGVzdC5jcHAKQEAgLTI2LDE2ICsy
NiwyMCBAQAogCiAjaW5jbHVkZSAiY2MvQ0NUaHJlYWQuaCIKIAotI2luY2x1ZGUgIkNDVGhyZWFk
SW1wbC5oIgogI2luY2x1ZGUgImNjL0NDQ29tcGxldGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiY2Mv
Q0NNYWluVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgImNjL0NDVGhyZWFkVGFzay5oIgotI2luY2x1
ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSAiQ0NUaHJlYWRJbXBsLmgiCisjaW5jbHVkZSAi
V2ViS2l0LmgiCisjaW5jbHVkZSAiV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAi
V2ViVGhyZWFkLmgiCiAKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogI2luY2x1ZGUgPHdlYmtp
dC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBu
YW1lc3BhY2UgewogCkBAIC01Myw3ICs1Nyw5IEBAIHB1YmxpYzoKIAogVEVTVChDQ1RocmVhZFRl
c3QsIHBpbmdQb25nVXNpbmdDb25kaXRpb24pCiB7Ci0gICAgT3duUHRyPENDVGhyZWFkPiB0aHJl
YWQgPSBXZWJLaXQ6OkNDVGhyZWFkSW1wbDo6Y3JlYXRlKCk7CisgICAgT3duUHRyPFdlYlRocmVh
ZD4gd2ViVGhyZWFkID0gYWRvcHRQdHIod2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNyZWF0ZVRo
cmVhZCgidGVzdCIpKTsKKworICAgIE93blB0cjxDQ1RocmVhZD4gdGhyZWFkID0gV2ViS2l0OjpD
Q1RocmVhZEltcGw6OmNyZWF0ZSh3ZWJUaHJlYWQuZ2V0KCkpOwogICAgIFBpbmdQb25nVXNpbmdD
b25kaXRpb24gdGFyZ2V0OwogICAgIENDQ29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247CiAgICAg
dGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2soJnRhcmdldCwgJlBpbmdQb25nVXNp
bmdDb25kaXRpb246OnBpbmcsCkBAIC04MCw5ICs4NiwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBo
aXQ7CiB9OwogCi1URVNUKENDVGhyZWFkVGVzdCwgRElTQUJMRURfc3RhcnRQb3N0QW5kV2FpdE9u
Q29uZGl0aW9uKQorVEVTVChDQ1RocmVhZFRlc3QsIHN0YXJ0UG9zdEFuZFdhaXRPbkNvbmRpdGlv
bikKIHsKLSAgICBPd25QdHI8Q0NUaHJlYWQ+IHRocmVhZCA9IFdlYktpdDo6Q0NUaHJlYWRJbXBs
OjpjcmVhdGUoKTsKKyAgICBPd25QdHI8V2ViVGhyZWFkPiB3ZWJUaHJlYWQgPSBhZG9wdFB0cih3
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFkKCJ0ZXN0IikpOworCisgICAgT3du
UHRyPENDVGhyZWFkPiB0aHJlYWQgPSBXZWJLaXQ6OkNDVGhyZWFkSW1wbDo6Y3JlYXRlKHdlYlRo
cmVhZC5nZXQoKSk7CiAKICAgICBQaW5nUG9uZ1Rlc3RVc2luZ1Rhc2tzIHRhcmdldDsKICAgICB0
aHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzaygmdGFyZ2V0LCAmUGluZ1BvbmdUZXN0
VXNpbmdUYXNrczo6cGluZykpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGY4OTQwMjlmMmQ1ZmMwMzk3MGFhMmIwNjM4NzJmOWJmOTkwZDNkYTQu
LjQxMjhjNjFiMjBhZDY3M2ZkNmVjMDJiMDc5Mzg2YWJlNjFjMGE4N2UgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
MS0wOS0yOSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFtjaHJvbWl1bV0gQWRkIFdlYktpdCBBUEkgZm9yIHNlbmRpbmcgaW5wdXQgZXZlbnRzIHRvIHRo
ZSBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjkxMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGFuZCBzZXR0aW5nIGEgY29tcG9z
aXRvciB0aHJlYWQgaW4gRFJULgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OldlYlZpZXdIb3N0KToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oOgorCiAyMDExLTA5
LTI5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5icmVhayB0
aGUgInVwZGF0ZSBleHBlY3RhdGF0aW9ucyIgYnV0dG9uIGJ5IHVzaW5nIHRoZSBleGlzdGluZwpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IGI3
NjE3NjIzMDg4ODZjNTQwNDkyZWVhYTljNTVlNDNjMzJhZjRmYjcuLjFlZjdiYjYzZDExZmY2ODNm
MGE4NDkwNzBlNjZkN2FkZWJhYjRkZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJUZXN0U2hl
bGwuaCIKICNpbmNsdWRlICJUZXN0V2ViV29ya2VyLmgiCiAjaW5jbHVkZSAiV2ViQ1N0cmluZy5o
IgorI2luY2x1ZGUgIldlYkNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2Fn
ZS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51RGF0YS5oIgogI2luY2x1ZGUgIldlYkRhdGFT
b3VyY2UuaCIKQEAgLTQ1LDYgKzQ2LDggQEAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1
ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgogI2luY2x1ZGUgIldlYkhpc3RvcnlJdGVt
LmgiCisjaW5jbHVkZSAiV2ViS2l0LmgiCisjaW5jbHVkZSAiV2ViS2l0UGxhdGZvcm1TdXBwb3J0
LmgiCiAjaW5jbHVkZSAiV2ViTm9kZS5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgogI2lu
Y2x1ZGUgIldlYlBvcHVwVHlwZS5oIgpAQCAtNTYsNiArNTksNyBAQAogI2luY2x1ZGUgIldlYlN0
b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJXZWJUZXh0Q2hlY2tpbmdDb21wbGV0aW9uLmgi
CiAjaW5jbHVkZSAiV2ViVGV4dENoZWNraW5nUmVzdWx0LmgiCisjaW5jbHVkZSAiV2ViVGhyZWFk
LmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVxdWVzdC5oIgogI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNl
LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgpAQCAtMTE2Nyw2ICsxMTcxLDEwIEBAIFdlYlZpZXdI
b3N0OjpXZWJWaWV3SG9zdChUZXN0U2hlbGwqIHNoZWxsKQogICAgICwgbV9sYXN0UmVxdWVzdGVk
VGV4dENoZWNraW5nQ29tcGxldGlvbigwKQogewogICAgIFdURjo6aW5pdGlhbGl6ZVRocmVhZGlu
ZygpOworCisgICAgbV9jb21wb3NpdG9yVGhyZWFkID0gYWRvcHRQdHIoV2ViS2l0Ojp3ZWJLaXRQ
bGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFkKCJDb21wb3NpdG9yIikpOworICAgIFdlYkNv
bXBvc2l0b3I6OnNldFRocmVhZChtX2NvbXBvc2l0b3JUaHJlYWQuZ2V0KCkpOworCiAgICAgcmVz
ZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgK
aW5kZXggNmYxZmE4YmYwZjVhY2UxODdkY2VlYzMyMGIyZWZkYTBjOGFlZGI4Mi4uOWZmMmUyNzNi
ZmI2MjU4ZGM3NTY3NmRkNTUwYmViOTcxNzg3MGMyYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFdlYkdlb2xv
Y2F0aW9uU2VydmljZU1vY2s7CiBjbGFzcyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI7CiBjbGFz
cyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrOwogY2xhc3MgV2ViU3BlZWNoSW5wdXRMaXN0
ZW5lcjsKK2NsYXNzIFdlYlRocmVhZDsKIGNsYXNzIFdlYlVSTDsKIHN0cnVjdCBXZWJSZWN0Owog
c3RydWN0IFdlYlVSTEVycm9yOwpAQCAtMzQ4LDYgKzM0OSw4IEBAIHByaXZhdGU6CiAgICAgV2Vi
S2l0OjpXZWJTdHJpbmcgbV9sYXN0UmVxdWVzdGVkVGV4dENoZWNrU3RyaW5nOwogICAgIFdlYktp
dDo6V2ViVGV4dENoZWNraW5nQ29tcGxldGlvbiogbV9sYXN0UmVxdWVzdGVkVGV4dENoZWNraW5n
Q29tcGxldGlvbjsKIAorICAgIE93blB0cjxXZWJLaXQ6OldlYlRocmVhZD4gbV9jb21wb3NpdG9y
VGhyZWFkOworCiAgICAgVGFza0xpc3QgbV90YXNrTGlzdDsKICAgICBWZWN0b3I8V2ViS2l0OjpX
ZWJXaWRnZXQqPiBtX3BvcHVwbWVudXM7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109238</attachid>
            <date>2011-09-29 19:05:22 -0700</date>
            <delta_ts>2011-09-29 19:25:31 -0700</delta_ts>
            <desc>put HAVE_WEBCOMPOSITOR ifdef somewhere useful</desc>
            <filename>bug-69117-20110929190517.patch</filename>
            <type>text/plain</type>
            <size>35630</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYzMzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NzI3MzBjODNmOTk0Mjlk
NGI0ZWEwNmFmMjU3NWE0YzhiNDAzYzM0Li4zN2ZiOTA3MDEyNTY1ZjE4MDZjODJhZWNkNTZhMDg5
ZTczZmRhNmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDktMjkgIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCBXZWJLaXQgQVBJIGZvciBzZW5kaW5nIGlucHV0IGV2ZW50cyB0byB0aGUgY29tcG9zaXRvciB0
aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5
MTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29u
dmVydCB0byB1c2luZyBhbiBleHRlcm5hbGx5LXByb3ZpZGVkIHRocmVhZCBpbnN0ZWFkIG9mIG9u
ZSBtYW5hZ2VkIGJ5IENDVGhyZWFkUHJveHkgaW50ZXJuYWxseS4gTW9zdCBjaGFuZ2VzCisgICAg
ICAgIGluIHRoZXNlIGZpbGVzIGFyZSBtZWNoYW5pY2FsbHkgY2hhbmdpbmcgcmVmZXJlbmNlcyBm
cm9tIGNjVGhyZWFkIHRvIHNfY2NUaHJlYWQgdG8gcmVmbGVjdCB0aGUgY2xhc3Mtc3RhdGljCisg
ICAgICAgIG5hdHVyZSBvZiB0aGlzIHBvaW50ZXIsIHRoZSByZXN0IGFyZSByZW1vdmluZyB0aGUg
b2xkIHRocmVhZCBjcmVhdGlvbiBjb2RlcGF0aC4KKworICAgICAgICBUaGVzZSBjaGFuZ2VzIGFy
ZSBjb3ZlcmVkIGJ5IHRoZSBDQyogdW5pdCB0ZXN0cyBhbmQgYnkgdGhlIGdwdSBsYXlvdXQgdGVz
dHMgd2hlbiBydW4gd2l0aCB0aGUKKyAgICAgICAgdXNlX3RocmVhZGVkX2NvbXBvc2l0aW5nPTEg
Z3lwIGRlZmluZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5
OjpzZXRUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6Q0NUaHJlYWRQ
cm94eSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojp+Q0NUaHJlYWRQcm94eSk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojpjb21wb3NpdGVBbmRSZWFkYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpmaW5pc2hBbGxSZW5kZXJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXRBbmRSZWRyYXcpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXcpOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NU
aHJlYWRQcm94eTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpiZWdp
bkZyYW1lQW5kQ29tbWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnNjaGVk
dWxlRHJhd1Rhc2tPbkNDVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisKIDIwMTEtMDktMjkgIElseWEgVGlraG9ub3Zza3kg
IDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFVJIHBlcmZv
cm1hbmNlIHRlc3QgZm9yIG5ldHdvcmsgcGFuZWwgaXMgaW5jb3JyZWN0LiBUaGUgdGltZSBpcyBp
bmNsdWRpbmcgYSB0aW1lb3V0IGJldHdlZW4gc2NoZWR1bGVkIHJlZnJlc2ggYW5kIGFjdHVhbCBy
ZWZyZXNoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNmRkZDliZDYzOTUw
YmM0N2MyNzAyZDQ4MGU1ODVhMDdlMmQyM2Y3Yi4uNTUyZjlhYmU5NmUyMzdmZGI1NGRkYzJkNzky
NTcyMzEwYzc1YmE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC0xNDMs
MTEgKzE0Myw2IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojpjb21taXRDb21wbGV0ZSgpCiAgICAg
bV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT51bnByb3RlY3RBbGxUZXh0dXJlcygpOwogfQogCi1Q
YXNzT3duUHRyPENDVGhyZWFkPiBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZUNvbXBvc2l0b3JUaHJl
YWQoKQotewotICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRlQ29tcG9zaXRvclRocmVhZCgpOwot
fQotCiBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0
ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKQogewogICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRl
TGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAppbmRl
eCA1NGFkNGMwMDIyMjk2ZGY3ZThiMTZlNjcyMDA5MDVhN2I3ZDRlNTIyLi5kMjM2NjY0YjBiMzZk
ZTg0NDI4MTA3MzIzYTI0MGE3MTRkZTI5NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3Qu
aApAQCAtNDEsNyArNDEsNiBAQCBjbGFzcyBHckNvbnRleHQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdEltcGw7Ci1jbGFzcyBDQ1RocmVhZDsKIGNsYXNzIEdy
YXBoaWNzQ29udGV4dDNEOwogY2xhc3MgTGF5ZXJDaHJvbWl1bTsKIGNsYXNzIExheWVyUGFpbnRl
ckNocm9taXVtOwpAQCAtNTEsNyArNTAsNiBAQCBjbGFzcyBUZXh0dXJlTWFuYWdlcjsKIGNsYXNz
IENDTGF5ZXJUcmVlSG9zdENsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFuaW1h
dGVBbmRMYXlvdXQoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNz
T3duUHRyPENDVGhyZWFkPiBjcmVhdGVDb21wb3NpdG9yVGhyZWFkKCkgPSAwOwogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRl
eHQzRCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQo
Ym9vbCBzdWNjZXNzKSA9IDA7CiAjaWYgIVVTRShUSFJFQURFRF9DT01QT1NJVElORykKQEAgLTk5
LDcgKzk3LDYgQEAgcHVibGljOgogICAgIHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJh
bWVCZWdpblRpbWUpOwogICAgIHZvaWQgY29tbWl0Q29tcGxldGUoKTsKICAgICB2b2lkIGNvbW1p
dFRvT25DQ1RocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKik7Ci0gICAgUGFzc093blB0cjxDQ1Ro
cmVhZD4gY3JlYXRlQ29tcG9zaXRvclRocmVhZCgpOwogICAgIFBhc3NSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKTsKICAgICB2aXJ0dWFsIFBh
c3NPd25QdHI8Q0NMYXllclRyZWVIb3N0SW1wbD4gY3JlYXRlTGF5ZXJUcmVlSG9zdEltcGwoKTsK
ICAgICB2b2lkIGRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGU0MDk4MjNiYTc1NGZkZTFkOGI5OTQwZTkwNDJk
NTk0Njk1MDBiMTIuLmFlM2Y0NzRiMTU1MDlkNzBlZDgxNTI5YmRhY2Q2NTdiOTcwYmE3ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0zOCw5ICszOCwxNCBAQCB1c2luZyBuYW1l
c3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLW5hbWVzcGFjZSB7Ci1DQ1RocmVh
ZCogY2NUaHJlYWQ7Ci1pbnQgbnVtUHJveGllcyA9IDA7CitDQ1RocmVhZCogQ0NUaHJlYWRQcm94
eTo6c19jY1RocmVhZCA9IDA7CisKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0VGhyZWFkKENDVGhy
ZWFkKiBjY1RocmVhZCkKK3sKKyAgICBzX2NjVGhyZWFkID0gY2NUaHJlYWQ7CisjaWZuZGVmIE5E
RUJVRworICAgIENDUHJveHk6OnNldEltcGxUaHJlYWQoc19jY1RocmVhZC0+dGhyZWFkSUQoKSk7
CisjZW5kaWYKIH0KIAogUGFzc093blB0cjxDQ1Byb3h5PiBDQ1RocmVhZFByb3h5OjpjcmVhdGUo
Q0NMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KQpAQCAtNjAsMTMgKzY1LDYgQEAgQ0NUaHJl
YWRQcm94eTo6Q0NUaHJlYWRQcm94eShDQ0xheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QpCiB7
CiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OkNDVGhyZWFkUHJveHkiLCB0aGlzLCAw
KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG51bVByb3hpZXMrKzsKLSAgICBp
ZiAoIWNjVGhyZWFkKSB7Ci0gICAgICAgIGNjVGhyZWFkID0gbV9sYXllclRyZWVIb3N0LT5jcmVh
dGVDb21wb3NpdG9yVGhyZWFkKCkubGVha1B0cigpOwotI2lmbmRlZiBOREVCVUcKLSAgICAgICAg
Q0NQcm94eTo6c2V0SW1wbFRocmVhZChjY1RocmVhZC0+dGhyZWFkSUQoKSk7Ci0jZW5kaWYKLSAg
ICB9CiB9CiAKIENDVGhyZWFkUHJveHk6On5DQ1RocmVhZFByb3h5KCkKQEAgLTc0LDEyICs3Miw2
IEBAIENDVGhyZWFkUHJveHk6On5DQ1RocmVhZFByb3h5KCkKICAgICBUUkFDRV9FVkVOVCgiQ0NU
aHJlYWRQcm94eTo6fkNDVGhyZWFkUHJveHkiLCB0aGlzLCAwKTsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgIEFTU0VSVCghbV9zdGFydGVkKTsKLQotICAgIG51bVByb3hpZXMtLTsK
LSAgICBpZiAoIW51bVByb3hpZXMpIHsKLSAgICAgICAgZGVsZXRlIGNjVGhyZWFkOwotICAgICAg
ICBjY1RocmVhZCA9IDA7Ci0gICAgfQogfQogCiBib29sIENDVGhyZWFkUHJveHk6OmNvbXBvc2l0
ZUFuZFJlYWRiYWNrKHZvaWQgKnBpeGVscywgY29uc3QgSW50UmVjdCYgcmVjdCkKQEAgLTk3LDcg
Kzg5LDcgQEAgYm9vbCBDQ1RocmVhZFByb3h5Ojpjb21wb3NpdGVBbmRSZWFkYmFjayh2b2lkICpw
aXhlbHMsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIHsKICAgICAgICAgICAgIENDTWFp
blRocmVhZDo6VGFzayogdGFza1B0ciA9IDA7CiAgICAgICAgICAgICBDQ0NvbXBsZXRpb25FdmVu
dCBjb21wbGV0aW9uOwotICAgICAgICAgICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhy
ZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6b2J0YWluQmVnaW5GcmFtZUFuZENvbW1pdFRh
c2tGcm9tQ0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pLCBBbGxv
d0Nyb3NzVGhyZWFkQWNjZXNzKCZ0YXNrUHRyKSkpOworICAgICAgICAgICAgc19jY1RocmVhZC0+
cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpvYnRhaW5C
ZWdpbkZyYW1lQW5kQ29tbWl0VGFza0Zyb21DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2Vz
cygmY29tcGxldGlvbiksIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJnRhc2tQdHIpKSk7CiAgICAg
ICAgICAgICBjb21wbGV0aW9uLndhaXQoKTsKICAgICAgICAgICAgIGJlZ2luRnJhbWVBbmRDb21t
aXRUYXNrID0gYWRvcHRQdHIodGFza1B0cik7CiAgICAgICAgIH0KQEAgLTEwOCw3ICsxMDAsNyBA
QCBib29sIENDVGhyZWFkUHJveHk6OmNvbXBvc2l0ZUFuZFJlYWRiYWNrKHZvaWQgKnBpeGVscywg
Y29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAvLyBEcmF3IHVzaW5nIHRoZSBuZXcgdHJlZSBhbmQg
cmVhZCBiYWNrIHRoZSByZXN1bHRzLgogICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwogICAgIEND
Q29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247Ci0gICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0
ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6ZHJhd0xheWVyc0FuZFJlYWRiYWNr
T25DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcygmY29tcGxldGlvbiksIEFsbG93Q3Jv
c3NUaHJlYWRBY2Nlc3MoJnN1Y2Nlc3MpLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKHBpeGVscyks
IHJlY3QpKTsKKyAgICBzX2NjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhp
cywgJkNDVGhyZWFkUHJveHk6OmRyYXdMYXllcnNBbmRSZWFkYmFja09uQ0NUaHJlYWQsIEFsbG93
Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZz
dWNjZXNzKSwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcyhwaXhlbHMpLCByZWN0KSk7CiAgICAgY29t
cGxldGlvbi53YWl0KCk7CiAgICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CkBAIC0xMzgsNyArMTMwLDcg
QEAgdm9pZCBDQ1RocmVhZFByb3h5OjpmaW5pc2hBbGxSZW5kZXJpbmcoKQogCiAgICAgLy8gTWFr
ZSBzdXJlIGFsbCBHTCBkcmF3aW5nIGlzIGZpbmlzaGVkIG9uIHRoZSBpbXBsIHRocmVhZC4KICAg
ICBDQ0NvbXBsZXRpb25FdmVudCBjb21wbGV0aW9uOwotICAgIGNjVGhyZWFkLT5wb3N0VGFzayhj
cmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmZpbmlzaEFsbFJlbmRlcmlu
Z09uQ0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pKSk7CisgICAg
c19jY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFBy
b3h5OjpmaW5pc2hBbGxSZW5kZXJpbmdPbkNDVGhyZWFkLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNz
KCZjb21wbGV0aW9uKSkpOwogICAgIGNvbXBsZXRpb24ud2FpdCgpOwogfQogCkBAIC0xNjQsNyAr
MTU2LDcgQEAgYm9vbCBDQ1RocmVhZFByb3h5Ojppbml0aWFsaXplTGF5ZXJSZW5kZXJlcigpCiAg
ICAgQ0NDb21wbGV0aW9uRXZlbnQgY29tcGxldGlvbjsKICAgICBib29sIGluaXRpYWxpemVTdWNj
ZWVkZWQgPSBmYWxzZTsKICAgICBMYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGll
czsKLSAgICBjY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1Ro
cmVhZFByb3h5Ojppbml0aWFsaXplTGF5ZXJSZW5kZXJlck9uQ0NUaHJlYWQsCisgICAgc19jY1Ro
cmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5Ojpp
bml0aWFsaXplTGF5ZXJSZW5kZXJlck9uQ0NUaHJlYWQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKGNvbnRleHRQdHIpLCBB
bGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZjb21wbGV0aW9uKSwgQWxsb3dDcm9zc1RocmVhZEFjY2Vz
cygmaW5pdGlhbGl6ZVN1Y2NlZWRlZCksIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNhcGFiaWxp
dGllcykpKTsKICAgICBjb21wbGV0aW9uLndhaXQoKTsKIApAQCAtMTkxLDcgKzE4Myw3IEBAIHZv
aWQgQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXQoKQogCiAgICAgVFJBQ0VfRVZFTlQoIkND
VGhyZWFkUHJveHk6OnNldE5lZWRzQ29tbWl0IiwgdGhpcywgMCk7CiAgICAgbV9jb21taXRSZXF1
ZXN0ZWQgPSB0cnVlOwotICAgIGNjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2so
dGhpcywgJkNDVGhyZWFkUHJveHk6OnVwZGF0ZVNjaGVkdWxlclN0YXRlT25DQ1RocmVhZCwgbV9j
b21taXRSZXF1ZXN0ZWQsIHRydWUpKTsKKyAgICBzX2NjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVD
Q1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OnVwZGF0ZVNjaGVkdWxlclN0YXRlT25D
Q1RocmVhZCwgbV9jb21taXRSZXF1ZXN0ZWQsIHRydWUpKTsKIH0KIAogdm9pZCBDQ1RocmVhZFBy
b3h5OjpzZXROZWVkc0NvbW1pdEFuZFJlZHJhdygpCkBAIC0yMDIsNyArMTk0LDcgQEAgdm9pZCBD
Q1RocmVhZFByb3h5OjpzZXROZWVkc0NvbW1pdEFuZFJlZHJhdygpCiAgICAgbV9jb21taXRSZXF1
ZXN0ZWQgPSB0cnVlOwogCiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OnNldE5lZWRz
Q29tbWl0QW5kUmVkcmF3IiwgdGhpcywgMCk7Ci0gICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0
ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6dXBkYXRlU2NoZWR1bGVyU3RhdGVP
bkNDVGhyZWFkLCBtX2NvbW1pdFJlcXVlc3RlZCwgdHJ1ZSkpOworICAgIHNfY2NUaHJlYWQtPnBv
c3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6dXBkYXRlU2No
ZWR1bGVyU3RhdGVPbkNDVGhyZWFkLCBtX2NvbW1pdFJlcXVlc3RlZCwgdHJ1ZSkpOwogfQogCiB2
b2lkIENDVGhyZWFkUHJveHk6OnNldE5lZWRzUmVkcmF3KCkKQEAgLTIxNywxNSArMjA5LDE2IEBA
IHZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXcoKQogICAgIC8vIHNldE5lZWRzUmVk
cmF3IG1lc3NhZ2VzIGFyZSB1bmNvbW1vbiAob25seSB0cmlnZ2VyZWQgYnkgV01fUEFJTlQvZXRj
KSwKICAgICAvLyBjb21wYXJlZCB0byBzZXROZWVkc0NvbW1pdEFuZFJlZHJhdyBtZXNzYWdlcy4K
ICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXciLCB0aGlzLCAw
KTsKLSAgICBjY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1Ro
cmVhZFByb3h5Ojp1cGRhdGVTY2hlZHVsZXJTdGF0ZU9uQ0NUaHJlYWQsIGZhbHNlLCB0cnVlKSk7
CisgICAgc19jY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1Ro
cmVhZFByb3h5Ojp1cGRhdGVTY2hlZHVsZXJTdGF0ZU9uQ0NUaHJlYWQsIGZhbHNlLCB0cnVlKSk7
CiB9CiAKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c3RhcnQoKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgQVNTRVJUKHNfY2NUaHJlYWQpOwogICAgIC8vIENyZWF0ZSBMYXllclRy
ZWVIb3N0SW1wbC4KICAgICBDQ0NvbXBsZXRpb25FdmVudCBjb21wbGV0aW9uOwotICAgIGNjVGhy
ZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6Omlu
aXRpYWxpemVJbXBsT25DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcygmY29tcGxldGlv
bikpKTsKKyAgICBzX2NjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywg
JkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJbXBsT25DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVh
ZEFjY2VzcygmY29tcGxldGlvbikpKTsKICAgICBjb21wbGV0aW9uLndhaXQoKTsKIAogICAgIG1f
c3RhcnRlZCA9IHRydWU7CkBAIC0yMzksNyArMjMyLDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5Ojpz
dG9wKCkKIAogICAgIC8vIFN5bmNocm9ub3VzbHkgZGVsZXRlcyB0aGUgaW1wbC4KICAgICBDQ0Nv
bXBsZXRpb25FdmVudCBjb21wbGV0aW9uOwotICAgIGNjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVD
Q1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmxheWVyVHJlZUhvc3RDbG9zZWRPbkND
VGhyZWFkLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZjb21wbGV0aW9uKSkpOworICAgIHNfY2NU
aHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6
bGF5ZXJUcmVlSG9zdENsb3NlZE9uQ0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNv
bXBsZXRpb24pKSk7CiAgICAgY29tcGxldGlvbi53YWl0KCk7CiAKICAgICBBU1NFUlQoIW1fbGF5
ZXJUcmVlSG9zdEltcGwpOyAvLyB2ZXJpZnkgdGhhdCB0aGUgaW1wbCBkZWxldGVkLgpAQCAtMzI1
LDcgKzMxOCw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdChpbnQg
c2VxdWVuY2VOdW1iZXIsIGRvdWJsZSBmcmFtZUJlZ2luVGltCiAgICAgICAgIC8vIEJsb2NraW5n
IGNhbGwgdG8gQ0NUaHJlYWRQcm94eTo6Y29tbWl0T25DQ1RocmVhZAogICAgICAgICBUUkFDRV9F
VkVOVCgiY29tbWl0IiwgdGhpcywgMCk7CiAgICAgICAgIENDQ29tcGxldGlvbkV2ZW50IGNvbXBs
ZXRpb247Ci0gICAgICAgIGNjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhp
cywgJkNDVGhyZWFkUHJveHk6OmNvbW1pdE9uQ0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nl
c3MoJmNvbXBsZXRpb24pKSk7CisgICAgICAgIHNfY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUND
VGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6Y29tbWl0T25DQ1RocmVhZCwgQWxsb3dD
cm9zc1RocmVhZEFjY2VzcygmY29tcGxldGlvbikpKTsKICAgICAgICAgY29tcGxldGlvbi53YWl0
KCk7CiAgICAgfQogCkBAIC0zNjIsNyArMzU1LDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpzY2hl
ZHVsZURyYXdUYXNrT25DQ1RocmVhZCgpCiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6
OnNjaGVkdWxlRHJhd1Rhc2tPbkNDVGhyZWFkIiwgdGhpcywgMCk7CiAgICAgQVNTRVJUKG1fbGF5
ZXJUcmVlSG9zdEltcGwpOwogICAgIG1fZHJhd1Rhc2tQb3N0ZWRPbkNDVGhyZWFkID0gdHJ1ZTsK
LSAgICBjY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVh
ZFByb3h5OjpkcmF3TGF5ZXJzQW5kUHJlc2VudE9uQ0NUaHJlYWQpKTsKKyAgICBzX2NjVGhyZWFk
LT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmRyYXdM
YXllcnNBbmRQcmVzZW50T25DQ1RocmVhZCkpOwogfQogCiB2b2lkIENDVGhyZWFkUHJveHk6OmRy
YXdMYXllcnNBbmRQcmVzZW50T25DQ1RocmVhZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5k
ZXggZDNiNDg3ZmVjNDBkNDAxNTkwN2E5ZjgwOTZjZDlkYmNlMmQxYjE5Mi4uMTJlNmRjM2I5Y2U1
M2U2MmYzYjU1N2Y3YzBhNDk4YTI5YTgyNTRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApA
QCAtMzQsOSArMzQsMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ0NMYXllclRy
ZWVIb3N0OworY2xhc3MgQ0NUaHJlYWQ7CiAKIGNsYXNzIENDVGhyZWFkUHJveHkgOiBwdWJsaWMg
Q0NQcm94eSB7CiBwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgc2V0VGhyZWFkKENDVGhyZWFkKik7
CisKICAgICBzdGF0aWMgUGFzc093blB0cjxDQ1Byb3h5PiBjcmVhdGUoQ0NMYXllclRyZWVIb3N0
Kik7CiAKICAgICB2aXJ0dWFsIH5DQ1RocmVhZFByb3h5KCk7CkBAIC04OSw2ICs5Miw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2JlZ2luRnJhbWVBbmRDb21taXRQZW5kaW5nT25DQ1RocmVhZDsK
ICAgICBib29sIG1fZHJhd1Rhc2tQb3N0ZWRPbkNDVGhyZWFkOwogICAgIGJvb2wgbV9yZWRyYXdS
ZXF1ZXN0ZWRPbkNDVGhyZWFkOworCisgICAgc3RhdGljIENDVGhyZWFkKiBzX2NjVGhyZWFkOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0MTZkYTNmODIxYzgyMDA1M2Yy
ZDY0MzJlZDI5NTc0OTk3NjcxYjZjLi5jZmYyZjkyMjk5YjJkZTA3M2MxZWIxNzg4YzM0ODNiYzg5
NjQ1YTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEx
LTA5LTI5ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
W2Nocm9taXVtXSBBZGQgV2ViS2l0IEFQSSBmb3Igc2VuZGluZyBpbnB1dCBldmVudHMgdG8gdGhl
IGNvbXBvc2l0b3IgdGhyZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02OTExNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZHMgYSBuZXcgV2ViS2l0IGludGVyZmFjZSB0byBhbGxvdyB0aGUgZW1iZWRk
ZXIgdG8gcGFzcyBpbnB1dCBldmVudHMgZGlyZWN0bHkgdG8gdGhlIGNvbXBvc2l0b3IgdGhyZWFk
LgorICAgICAgICBFeHBvc2VzIHRoZSBuZXcgV2ViQ29tcG9zaXRvciBpbnRlcmZhY2UgYW5kIGFz
c29jaWF0ZWQgY2xpZW50LiBUaGVzZSBpbnRlcmZhY2VzIGFyZSBzbGlnaHRseSBkaWZmZXJlbnQg
aW4gdGhhdAorICAgICAgICB0aGV5IGNhbiBvbmx5IGJlIGludGVyYWN0ZWQgd2l0aCBmcm9tIHRo
ZSBjb21wb3NpdG9yIHRocmVhZC4KKworICAgICAgICBDaGFuZ2VzIHRoZSBpbml0aWFsaXphdGlv
biBwYXRoIGZvciB0aGUgY29tcG9zaXRvciB0aHJlYWQgdG8gdXNpbmcgYW4gZXh0ZXJuYWxseSBh
bGxvY2F0ZWQgYW5kIG1hbmFnZWQgdGhyZWFkCisgICAgICAgIGluc3RlYWQgb2Ygb25lIGludGVy
bmFsIHRvIFdlYkNvcmUgc28gdGhhdCB0aGUgZW1iZWRkZXIgY2FuIGludGVyYWN0IHdpdGggdGhl
IHRocmVhZCBtb3JlIGVhc2lseS4gVGhpcyBhbHNvCisgICAgICAgIHNpbXBsaWZpZXMgdGhlIHN0
YXJ0dXAgYW5kIHNodXRkb3duIHBhdGhzLiAgVGhlIGNvbnRyYWN0IGlzIHRoYXQgV2ViQ29tcG9z
aXRvcjo6c2V0VGhyZWFkKCkgbXVzdCBiZSBjYWxsZWQKKyAgICAgICAgYmVmb3JlIGFueSBjb21w
b3NpdG9yIGNhbiBiZSBpbml0aWFsaXplZCBhbmQgdGhlIHBhc3NlZC1pbiB0aHJlYWQgbXVzdCBv
dXRsaXZlIGFsbCBjb21wb3NpdG9yIGluc3RhbmNlcy4KKworICAgICAgICBFYWNoIFdlYkNvbXBv
c2l0b3IgaW5zdGFuY2UgaXMgYXNzb2NpYXRlZCB3aXRoIGEgV2ViV2lkZ2V0LiAgVGhlcmUgaXNu
J3QgYW55IHdheSB0byBnZXQgYSBXZWJDb21wb3NpdG9yIGZvciBhCisgICAgICAgIGdpdmVuIFdl
YldpZGdldCBpbiB0aGlzIHBhdGNoLCB0aGF0IHdpbGwgYmUgZG9uZSBpbiBhIGZvbGxvdy11cC4K
KworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYkNvbXBvc2l0b3Iu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6fldlYkNvbXBvc2l0b3IpOgorICAg
ICAgICAqIHB1YmxpYy9XZWJDb21wb3NpdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbXBvc2l0b3JDbGllbnQ6On5XZWJDb21wb3NpdG9yQ2xpZW50KToKKyAgICAgICAgKiBzcmMv
Q0NUaHJlYWRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q0NUaHJlYWRJbXBsOjpjcmVhdGUp
OgorICAgICAgICAoV2ViS2l0OjpDQ1RocmVhZEltcGw6OkNDVGhyZWFkSW1wbCk6CisgICAgICAg
ICogc3JjL0NDVGhyZWFkSW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJDb21wb3NpdG9ySW1wbC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9yOjpzZXRUaHJlYWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW1wbDo6V2ViQ29tcG9zaXRvckltcGwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW1wbDo6fldlYkNvbXBvc2l0b3JJbXBsKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvckltcGw6OnNldENsaWVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAg
KiBzcmMvV2ViQ29tcG9zaXRvckltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRv
ckltcGw6OmNyZWF0ZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAg
KiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0
LmNwcDoKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdDo6Q0NMYXllclRyZWVIb3N0
VGVzdCk6CisgICAgICAgICogdGVzdHMvQ0NUaHJlYWRUZXN0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VEVTVCk6CisKIDIwMTEtMDktMjkgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBJbmRleGVkREI6IFVzZSBMZXZlbERCIGFsc28gZm9yIGluLW1lbW9yeSBk
YXRhYmFzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA4YzQ5MTI5NTIxM2NmYzg3
YzlkY2UzM2U0NmVjMGY4OWMzMzY1OTc4Li42NjMwYjM1MTE3YjBkMDM2NmQzMGRjOTIwYjJmZGM4
NmQwMmNjNTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMjcsNiArMTI3LDgg
QEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbW1vbi5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYkNvbW1vbldvcmtlckNsaWVudC5oJywKICAgICAgICAgICAgICAgICAncHVi
bGljL1dlYkNvbXBvc2l0aW9uVW5kZXJsaW5lLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViQ29tcG9zaXRvckNsaWVudC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbXBv
c2l0b3IuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb25zb2xlTWVzc2FnZS5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbnRleHRNZW51RGF0YS5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkNvb2tpZS5oJywKQEAgLTQ0NSw2ICs0NDcsOCBAQAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViQ2FjaGUuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNv
bG9yLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb21tb24uY3BwJywKKyAgICAgICAg
ICAgICAgICAnc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJDb21wb3NpdG9ySW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNyb3NzT3Jp
Z2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNT
dHJpbmcuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkN1cnNvckluZm8uY3BwJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3IuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zODA2MTkzMjhmMTllNTFhNjlkN2VjZTk0YzJkYzRjZWRmYjM1ZDUyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvci5oCkBAIC0w
LDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbXBvc2l0b3JfaAorI2RlZmluZSBXZWJD
b21wb3NpdG9yX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViQ29tcG9zaXRvckNsaWVudDsKK2NsYXNzIFdlYklucHV0RXZlbnQ7Citj
bGFzcyBXZWJUaHJlYWQ7CisKKy8vIFRoaXMgcmVwcmVzZW50cyB0aGUgY29tcG9zaXRvciBhc3Nv
Y2lhdGVkIHdpdGggYSBXZWJXaWRnZXQuIEFsbCBjYWxscyB0byB0aGUgV2ViQ29tcG9zaXRvciBt
dXN0CisvLyBiZSBtYWRlIGZyb20gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLgorY2xhc3MgV2ViQ29t
cG9zaXRvciB7CitwdWJsaWM6CisgICAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCBvbmNlIHdpdGgg
YSBub24tbnVsbCBXZWJUaHJlYWQgYmVmb3JlIGFueSBjb21wb3NpdG9ycyBhdHRlbXB0IHRvIGlu
aXRpYWxpemUuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRUaHJlYWQoV2ViVGhy
ZWFkKik7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYkNvbXBvc2l0b3JDbGllbnQq
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRF
dmVudCYpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfldlYkNvbXBvc2l0b3IoKSB7
IH0KK307CisKK30KKworI2VuZGlmIC8vIFdlYkNvbXBvc2l0b3JfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvckNsaWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRmYTg0MDZmMDlhOWRjMWI2ZmZkNWEwNDhlOGU4MGJmZmUzM2ZkZDkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yQ2xpZW50LmgK
QEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29tcG9zaXRvckNsaWVudF9oCisj
ZGVmaW5lIFdlYkNvbXBvc2l0b3JDbGllbnRfaAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViQ29tcG9zaXRvckNsaWVudCB7CitwdWJsaWM6CisgICAgLy8gQ2FsbGJhY2tzIGludm9r
ZWQgZnJvbSB0aGUgY29tcG9zaXRvciB0aHJlYWQuCisgICAgdmlydHVhbCB2b2lkIHdpbGxTaHV0
ZG93bigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlSW5wdXRFdmVudCgpID0gMDsK
KworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfldlYkNvbXBvc2l0b3JDbGllbnQoKSB7IH0KK307
CisKK30KKworI2VuZGlmIC8vIFdlYkNvbXBvc2l0b3JDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJLaXQuaAppbmRleCA5OTFkNTQzMjc0MGM4NTQwNzgxZjU0ZWM0ODI2OTEy
NGMxZTE5ZjkxLi4zMTg2YzAzMWRmM2IwNTk0YWE1Y2JkOTNlOWIxOTI3MGEzM2MzMjUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXQuaApAQCAtMzMsNiArMzMsOCBAQAogCiAj
aW5jbHVkZSAiV2ViQ29tbW9uLmgiCiAKKyNkZWZpbmUgSEFWRV9XRUJDT01QT1NJVE9SCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ0NUaHJlYWRJbXBsLmNwcAppbmRleCA2MTZiOTUwNDAwYjk1
OGIxYWRmMjVjZTJkZjYzMzQyZTRkNzcwNTljLi5kOThiNTI3NWUzMGRkYTY2NmU5ZWMxMWYxMDQ1
OTc0OWU4OTA3ZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1Ro
cmVhZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NDVGhyZWFkSW1w
bC5jcHAKQEAgLTc2LDkgKzc2LDkgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8Q0NUaHJlYWQ6OlRh
c2s+IG1fdGFzazsKIH07CiAKLVBhc3NPd25QdHI8Q0NUaHJlYWQ+IENDVGhyZWFkSW1wbDo6Y3Jl
YXRlKCkKK1Bhc3NPd25QdHI8Q0NUaHJlYWQ+IENDVGhyZWFkSW1wbDo6Y3JlYXRlKFdlYlRocmVh
ZCogdGhyZWFkKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NUaHJlYWRJbXBsKCkpOwor
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NUaHJlYWRJbXBsKHRocmVhZCkpOwogfQogCiBDQ1Ro
cmVhZEltcGw6On5DQ1RocmVhZEltcGwoKQpAQCAtOTUsOCArOTUsOCBAQCBUaHJlYWRJZGVudGlm
aWVyIENDVGhyZWFkSW1wbDo6dGhyZWFkSUQoKSBjb25zdAogICAgIHJldHVybiBtX3RocmVhZElE
OwogfQogCi1DQ1RocmVhZEltcGw6OkNDVGhyZWFkSW1wbCgpCi0gICAgOiBtX3RocmVhZChhZG9w
dFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFkKCJDQ1RocmVhZCIpKSkK
K0NDVGhyZWFkSW1wbDo6Q0NUaHJlYWRJbXBsKFdlYlRocmVhZCogdGhyZWFkKQorICAgIDogbV90
aHJlYWQodGhyZWFkKQogewogICAgIC8vIEdldCB0aGUgdGhyZWFkSWQgZm9yIHRoZSBuZXdseS1j
cmVhdGVkIHRocmVhZCBieSBydW5uaW5nIGEgdGFzawogICAgIC8vIG9uIHRoYXQgdGhyZWFkLCBi
bG9ja2luZyBvbiB0aGUgcmVzdWx0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ0NUaHJlYWRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVh
ZEltcGwuaAppbmRleCA5YzkyOWFiMTA5YzUzZTNiMTY3MjMyODE3ZDk5OGE4Y2ZlMGI1MjE1Li5i
ZTUwZDViYWU5YzQ5OWU0MTIxODA1MzZmYWE0M2I0OTRmMmZjOTQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuaApAQCAtMzcsMTUgKzM3LDE1IEBAIGNsYXNzIFdl
YlRocmVhZDsKIC8vIEltcGxlbWVudHMgQ0NUaHJlYWQgaW4gdGVybXMgb2YgV2ViVGhyZWFkLgog
Y2xhc3MgQ0NUaHJlYWRJbXBsIDogcHVibGljIFdlYkNvcmU6OkNDVGhyZWFkIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJDb3JlOjpDQ1RocmVhZD4gY3JlYXRlKCk7CisgICAg
c3RhdGljIFBhc3NPd25QdHI8V2ViQ29yZTo6Q0NUaHJlYWQ+IGNyZWF0ZShXZWJUaHJlYWQqKTsK
ICAgICB2aXJ0dWFsIH5DQ1RocmVhZEltcGwoKTsKICAgICB2b2lkIHBvc3RUYXNrKFBhc3NPd25Q
dHI8V2ViQ29yZTo6Q0NUaHJlYWQ6OlRhc2s+KTsKICAgICBXVEY6OlRocmVhZElkZW50aWZpZXIg
dGhyZWFkSUQoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBDQ1RocmVhZEltcGwoKTsKKyAgICBl
eHBsaWNpdCBDQ1RocmVhZEltcGwoV2ViVGhyZWFkKik7CiAKLSAgICBPd25QdHI8V2ViVGhyZWFk
PiBtX3RocmVhZDsKKyAgICBXZWJUaHJlYWQqIG1fdGhyZWFkOwogICAgIFdURjo6VGhyZWFkSWRl
bnRpZmllciBtX3RocmVhZElEOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViQ29tcG9zaXRvckltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjY2U4OWE5NWZhMjIwYTRhZjlk
ODQ5ZGQ2MjUzMTVjMzdjYWVjYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbXBsLmgiCisK
KyNpbmNsdWRlICJjYy9DQ1RocmVhZFByb3h5LmgiCisjaW5jbHVkZSAiQ0NUaHJlYWRJbXBsLmgi
CisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvckNsaWVudC5oIgorI2luY2x1ZGUgIldlYklucHV0RXZl
bnQuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit2b2lkIFdlYkNvbXBvc2l0b3I6OnNldFRocmVhZChXZWJUaHJlYWQqIGNvbXBvc2l0b3JUaHJl
YWQpCit7CisgICAgQVNTRVJUKGNvbXBvc2l0b3JUaHJlYWQpOworICAgIENDVGhyZWFkUHJveHk6
OnNldFRocmVhZChDQ1RocmVhZEltcGw6OmNyZWF0ZShjb21wb3NpdG9yVGhyZWFkKS5sZWFrUHRy
KCkpOworfQorCitXZWJDb21wb3NpdG9ySW1wbDo6V2ViQ29tcG9zaXRvckltcGwoKQorICAgIDog
bV9jbGllbnQoMCkKK3sKK30KKworV2ViQ29tcG9zaXRvckltcGw6On5XZWJDb21wb3NpdG9ySW1w
bCgpCit7Cit9CisKK3ZvaWQgV2ViQ29tcG9zaXRvckltcGw6OnNldENsaWVudChXZWJDb21wb3Np
dG9yQ2xpZW50KiBjbGllbnQpCit7CisgICAgQVNTRVJUKGNsaWVudCk7CisgICAgbV9jbGllbnQg
PSBjbGllbnQ7Cit9CisKK3ZvaWQgV2ViQ29tcG9zaXRvckltcGw6OmhhbmRsZUlucHV0RXZlbnQo
Y29uc3QgV2ViSW5wdXRFdmVudCYgZXZlbnQpCit7CisgICAgLy8gRklYTUU6IERvIHNvbWV0aGlu
ZyBpbnRlcmVzdGluZyB3aXRoIHRoZSBldmVudCBoZXJlLgorICAgIG1fY2xpZW50LT5kaWRIYW5k
bGVJbnB1dEV2ZW50KCk7Cit9CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkNvbXBvc2l0b3JJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgzYWY2ZjJhYzFlZTliN2EzMDdkZTVi
NjQyYjA5MzNmMDNkYzNmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV2ViQ29tcG9zaXRvckltcGxfaAorI2RlZmluZSBXZWJDb21wb3NpdG9ySW1wbF9oCisKKyNp
bmNsdWRlICJXZWJDb21wb3NpdG9yLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYkNvbXBvc2l0b3JDbGllbnQ7CisKK2NsYXNzIFdlYkNvbXBvc2l0b3JJbXBsIDogcHVibGlj
IFdlYkNvbXBvc2l0b3IgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkNvbXBvc2l0b3JJ
bXBsKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxXZWJDb21wb3NpdG9ySW1wbD4g
Y3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViQ29tcG9zaXRv
ckltcGwpOworICAgIH0KKworICAgIHZpcnR1YWwgfldlYkNvbXBvc2l0b3JJbXBsKCk7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYkNvbXBvc2l0b3JDbGllbnQqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7CisKK3ByaXZh
dGU6CisgICAgV2ViQ29tcG9zaXRvckltcGwoKTsKKworICAgIFdlYkNvbXBvc2l0b3JDbGllbnQq
IG1fY2xpZW50OworfTsKKworfQorCisjZW5kaWYgLy8gV2ViQ29tcG9zaXRvckltcGxfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDAxMTI1NmI2MzI2
OGZhMzdiODI4OTA0YmQzOWZlMTcxNTk2ZTRhMzAuLjI1ZmZmZjU0ZjgzYTE4YThiYjU3NDAxNDdk
MjA3MDYxOGE5NGFlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJBdXRvZmlsbFBvcHVwTWVudUNsaWVu
dC5oIgogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZExp
c3RDaHJvbWl1bS5oIgotI2luY2x1ZGUgIkNDVGhyZWFkSW1wbC5oIgogI2luY2x1ZGUgIkNTU1N0
eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAi
Q2hyb21lLmgiCkBAIC0yNjg2LDExICsyNjg1LDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGJvb2wgYWN0aXZlKQogCiAjZW5kaWYKIAotUGFz
c093blB0cjxDQ1RocmVhZD4gV2ViVmlld0ltcGw6OmNyZWF0ZUNvbXBvc2l0b3JUaHJlYWQoKQot
ewotICAgIHJldHVybiBDQ1RocmVhZEltcGw6OmNyZWF0ZSgpOwotfQotCiBQYXNzUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBXZWJWaWV3SW1wbDo6Y3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQz
RCgpCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0ID0gbV90ZW1wb3Jh
cnlPbnNjcmVlbkdyYXBoaWNzQ29udGV4dDNELnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGIzOTU0OWE5YmMwMDZkN2IyYWI4MGYzYzFiYTY3
YmY2YWIxNTU1MzUuLjQ3OWYzMzY0MWQ5YWY0ZGQwZDEwMmNhZThiZThhNDM3MzkzYzQ1MGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMjE5LDcgKzIxOSw2
IEBAIHB1YmxpYzoKIAogICAgIC8vIENDTGF5ZXJUcmVlSG9zdENsaWVudAogICAgIHZpcnR1YWwg
dm9pZCBhbmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSk7Ci0gICAgdmlydHVh
bCBQYXNzT3duUHRyPFdlYkNvcmU6OkNDVGhyZWFkPiBjcmVhdGVDb21wb3NpdG9yVGhyZWFkKCk7
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEPiBjcmVh
dGVMYXllclRyZWVIb3N0Q29udGV4dDNEKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY3JlYXRl
R3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CiAjaWYgIVVTRShUSFJFQURFRF9DT01QT1NJ
VElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRy
ZWVIb3N0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVl
SG9zdFRlc3QuY3BwCmluZGV4IDY3M2IxZjUzYzc1OTkzMDljYWYxMjYwNjBjMDUxY2MwZGU3YThj
ZDUuLjk3YzlkN2Q2NWM2NzliNTAzM2M2MDAxZWZiNTQwMDJjMjgwZGE2ZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcApA
QCAtMjgsMTUgKzI4LDE5IEBACiAKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKIAor
I2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaCIKKyNpbmNsdWRlICJjYy9DQ01haW5U
aHJlYWRUYXNrLmgiCisjaW5jbHVkZSAiY2MvQ0NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiQ0NU
aHJlYWRJbXBsLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiCisjaW5j
bHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KICNpbmNsdWRlICJMYXllckNocm9taXVtLmgiCiAjaW5jbHVk
ZSAiTW9ja1dlYkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hbmFnZXIu
aCIKLSNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgiCi0jaW5jbHVkZSAiY2MvQ0NN
YWluVGhyZWFkVGFzay5oIgotI2luY2x1ZGUgImNjL0NDVGhyZWFkVGFzay5oIgotI2luY2x1ZGUg
PGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvci5oIgorI2luY2x1ZGUgIldl
YktpdC5oIgorI2luY2x1ZGUgIldlYktpdFBsYXRmb3JtU3VwcG9ydC5oIgorI2luY2x1ZGUgIldl
YlRocmVhZC5oIgogI2luY2x1ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpA
QCAtMTQ3LDExICsxNTEsNiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwg
UGFzc093blB0cjxDQ1RocmVhZD4gY3JlYXRlQ29tcG9zaXRvclRocmVhZCgpCi0gICAgewotICAg
ICAgICByZXR1cm4gQ0NUaHJlYWRJbXBsOjpjcmVhdGUoKTsKLSAgICB9Ci0KICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0
M0QoKQogICAgIHsKICAgICAgICAgT3duUHRyPFdlYkdyYXBoaWNzQ29udGV4dDNEPiBtb2NrID0g
Q29tcG9zaXRvck1vY2tXZWJHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKCk7CkBAIC0yMDgsNiAr
MjA3LDggQEAgcHJvdGVjdGVkOgogICAgICAgICAsIG1fcnVubmluZyhmYWxzZSkKICAgICAgICAg
LCBtX3RpbWVkT3V0KGZhbHNlKQogICAgIHsKKyAgICAgICAgbV93ZWJUaHJlYWQgPSBhZG9wdFB0
cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFkKCJDQ0xheWVyVHJlZUhvc3RU
ZXN0IikpOworICAgICAgICBXZWJDb21wb3NpdG9yOjpzZXRUaHJlYWQobV93ZWJUaHJlYWQuZ2V0
KCkpOwogI2lmIFVTRShUSFJFQURFRF9DT01QT1NJVElORykKICAgICAgICAgbV9zZXR0aW5ncy5l
bmFibGVDb21wb3NpdG9yVGhyZWFkID0gdHJ1ZTsKICNlbHNlCkBAIC0yODQsNiArMjg1LDggQEAg
cHJpdmF0ZToKICAgICBib29sIG1fZW5kV2hlbkJlZ2luUmV0dXJuczsKICAgICBib29sIG1fcnVu
bmluZzsKICAgICBib29sIG1fdGltZWRPdXQ7CisKKyAgICBPd25QdHI8V2ViVGhyZWFkPiBtX3dl
YlRocmVhZDsKIH07CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0VGVzdDo6ZG9CZWdpblRlc3QoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RocmVhZFRlc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RocmVhZFRlc3QuY3BwCmluZGV4IGM2
OTU2YjA2ODAzNjYwMzE1YmVmNDY4YTllMTkzZWNlOTk1ZGRjYWIuLmVhNmZiMTdkMWM2ZmVhYzkw
NTkyOGI4YWU4MjZiZmYzNzljNDNiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NUaHJlYWRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDVGhyZWFkVGVzdC5jcHAKQEAgLTI2LDE2ICsyNiwyMCBAQAogCiAjaW5jbHVkZSAiY2Mv
Q0NUaHJlYWQuaCIKIAotI2luY2x1ZGUgIkNDVGhyZWFkSW1wbC5oIgogI2luY2x1ZGUgImNjL0ND
Q29tcGxldGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiY2MvQ0NNYWluVGhyZWFkVGFzay5oIgogI2lu
Y2x1ZGUgImNjL0NDVGhyZWFkVGFzay5oIgotI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5j
bHVkZSAiQ0NUaHJlYWRJbXBsLmgiCisjaW5jbHVkZSAiV2ViS2l0LmgiCisjaW5jbHVkZSAiV2Vi
S2l0UGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiV2ViVGhyZWFkLmgiCiAKKyNpbmNsdWRl
IDxndGVzdC9ndGVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBuYW1lc3BhY2UgewogCkBAIC01Myw3ICs1
Nyw5IEBAIHB1YmxpYzoKIAogVEVTVChDQ1RocmVhZFRlc3QsIHBpbmdQb25nVXNpbmdDb25kaXRp
b24pCiB7Ci0gICAgT3duUHRyPENDVGhyZWFkPiB0aHJlYWQgPSBXZWJLaXQ6OkNDVGhyZWFkSW1w
bDo6Y3JlYXRlKCk7CisgICAgT3duUHRyPFdlYlRocmVhZD4gd2ViVGhyZWFkID0gYWRvcHRQdHIo
d2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNyZWF0ZVRocmVhZCgidGVzdCIpKTsKKworICAgIE93
blB0cjxDQ1RocmVhZD4gdGhyZWFkID0gV2ViS2l0OjpDQ1RocmVhZEltcGw6OmNyZWF0ZSh3ZWJU
aHJlYWQuZ2V0KCkpOwogICAgIFBpbmdQb25nVXNpbmdDb25kaXRpb24gdGFyZ2V0OwogICAgIEND
Q29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247CiAgICAgdGhyZWFkLT5wb3N0VGFzayhjcmVhdGVD
Q1RocmVhZFRhc2soJnRhcmdldCwgJlBpbmdQb25nVXNpbmdDb25kaXRpb246OnBpbmcsCkBAIC04
MCw5ICs4NiwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoaXQ7CiB9OwogCi1URVNUKENDVGhyZWFk
VGVzdCwgRElTQUJMRURfc3RhcnRQb3N0QW5kV2FpdE9uQ29uZGl0aW9uKQorVEVTVChDQ1RocmVh
ZFRlc3QsIHN0YXJ0UG9zdEFuZFdhaXRPbkNvbmRpdGlvbikKIHsKLSAgICBPd25QdHI8Q0NUaHJl
YWQ+IHRocmVhZCA9IFdlYktpdDo6Q0NUaHJlYWRJbXBsOjpjcmVhdGUoKTsKKyAgICBPd25QdHI8
V2ViVGhyZWFkPiB3ZWJUaHJlYWQgPSBhZG9wdFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+
Y3JlYXRlVGhyZWFkKCJ0ZXN0IikpOworCisgICAgT3duUHRyPENDVGhyZWFkPiB0aHJlYWQgPSBX
ZWJLaXQ6OkNDVGhyZWFkSW1wbDo6Y3JlYXRlKHdlYlRocmVhZC5nZXQoKSk7CiAKICAgICBQaW5n
UG9uZ1Rlc3RVc2luZ1Rhc2tzIHRhcmdldDsKICAgICB0aHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUND
VGhyZWFkVGFzaygmdGFyZ2V0LCAmUGluZ1BvbmdUZXN0VXNpbmdUYXNrczo6cGluZykpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY4OTQwMjlm
MmQ1ZmMwMzk3MGFhMmIwNjM4NzJmOWJmOTkwZDNkYTQuLjQxMjhjNjFiMjBhZDY3M2ZkNmVjMDJi
MDc5Mzg2YWJlNjFjMGE4N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wOS0yOSAgSmFtZXMgUm9iaW5zb24g
IDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIFdlYktpdCBB
UEkgZm9yIHNlbmRpbmcgaW5wdXQgZXZlbnRzIHRvIHRoZSBjb21wb3NpdG9yIHRocmVhZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxMTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHN1cHBvcnQg
Zm9yIGNyZWF0aW5nIGFuZCBzZXR0aW5nIGEgY29tcG9zaXRvciB0aHJlYWQgaW4gRFJULgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAg
ICAoV2ViVmlld0hvc3Q6OldlYlZpZXdIb3N0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5oOgorCiAyMDExLTA5LTI5ICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5icmVhayB0aGUgInVwZGF0ZSBleHBlY3RhdGF0aW9u
cyIgYnV0dG9uIGJ5IHVzaW5nIHRoZSBleGlzdGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IGI3NjE3NjIzMDg4ODZjNTQwNDkyZWVhYTlj
NTVlNDNjMzJhZjRmYjcuLjFlZjdiYjYzZDExZmY2ODNmMGE4NDkwNzBlNjZkN2FkZWJhYjRkZGIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJUZXN0U2hlbGwuaCIKICNpbmNsdWRlICJUZXN0V2Vi
V29ya2VyLmgiCiAjaW5jbHVkZSAiV2ViQ1N0cmluZy5oIgorI2luY2x1ZGUgIldlYkNvbXBvc2l0
b3IuaCIKICNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIldlYkNvbnRl
eHRNZW51RGF0YS5oIgogI2luY2x1ZGUgIldlYkRhdGFTb3VyY2UuaCIKQEAgLTQ1LDYgKzQ2LDgg
QEAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50
TW9jay5oIgogI2luY2x1ZGUgIldlYkhpc3RvcnlJdGVtLmgiCisjaW5jbHVkZSAiV2ViS2l0Lmgi
CisjaW5jbHVkZSAiV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiV2ViTm9kZS5o
IgogI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYlBvcHVwVHlwZS5oIgpA
QCAtNTYsNiArNTksNyBAQAogI2luY2x1ZGUgIldlYlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNs
dWRlICJXZWJUZXh0Q2hlY2tpbmdDb21wbGV0aW9uLmgiCiAjaW5jbHVkZSAiV2ViVGV4dENoZWNr
aW5nUmVzdWx0LmgiCisjaW5jbHVkZSAiV2ViVGhyZWFkLmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVx
dWVzdC5oIgogI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5o
IgpAQCAtMTE2Nyw2ICsxMTcxLDEwIEBAIFdlYlZpZXdIb3N0OjpXZWJWaWV3SG9zdChUZXN0U2hl
bGwqIHNoZWxsKQogICAgICwgbV9sYXN0UmVxdWVzdGVkVGV4dENoZWNraW5nQ29tcGxldGlvbigw
KQogewogICAgIFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOworCisgICAgbV9jb21wb3NpdG9y
VGhyZWFkID0gYWRvcHRQdHIoV2ViS2l0Ojp3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRl
VGhyZWFkKCJDb21wb3NpdG9yIikpOworICAgIFdlYkNvbXBvc2l0b3I6OnNldFRocmVhZChtX2Nv
bXBvc2l0b3JUaHJlYWQuZ2V0KCkpOworCiAgICAgcmVzZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKaW5kZXggNmYxZmE4YmYwZjVhY2UxODdk
Y2VlYzMyMGIyZWZkYTBjOGFlZGI4Mi4uOWZmMmUyNzNiZmI2MjU4ZGM3NTY3NmRkNTUwYmViOTcx
Nzg3MGMyYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5o
CkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s7CiBjbGFz
cyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI7CiBjbGFzcyBXZWJTcGVlY2hJbnB1dENvbnRyb2xs
ZXJNb2NrOwogY2xhc3MgV2ViU3BlZWNoSW5wdXRMaXN0ZW5lcjsKK2NsYXNzIFdlYlRocmVhZDsK
IGNsYXNzIFdlYlVSTDsKIHN0cnVjdCBXZWJSZWN0Owogc3RydWN0IFdlYlVSTEVycm9yOwpAQCAt
MzQ4LDYgKzM0OSw4IEBAIHByaXZhdGU6CiAgICAgV2ViS2l0OjpXZWJTdHJpbmcgbV9sYXN0UmVx
dWVzdGVkVGV4dENoZWNrU3RyaW5nOwogICAgIFdlYktpdDo6V2ViVGV4dENoZWNraW5nQ29tcGxl
dGlvbiogbV9sYXN0UmVxdWVzdGVkVGV4dENoZWNraW5nQ29tcGxldGlvbjsKIAorICAgIE93blB0
cjxXZWJLaXQ6OldlYlRocmVhZD4gbV9jb21wb3NpdG9yVGhyZWFkOworCiAgICAgVGFza0xpc3Qg
bV90YXNrTGlzdDsKICAgICBWZWN0b3I8V2ViS2l0OjpXZWJXaWRnZXQqPiBtX3BvcHVwbWVudXM7
CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109240</attachid>
            <date>2011-09-29 19:25:34 -0700</date>
            <delta_ts>2011-09-29 22:56:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69117-20110929192533.patch</filename>
            <type>text/plain</type>
            <size>35630</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYzMzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NzI3MzBjODNmOTk0Mjlk
NGI0ZWEwNmFmMjU3NWE0YzhiNDAzYzM0Li4zN2ZiOTA3MDEyNTY1ZjE4MDZjODJhZWNkNTZhMDg5
ZTczZmRhNmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDktMjkgIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCBXZWJLaXQgQVBJIGZvciBzZW5kaW5nIGlucHV0IGV2ZW50cyB0byB0aGUgY29tcG9zaXRvciB0
aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5
MTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29u
dmVydCB0byB1c2luZyBhbiBleHRlcm5hbGx5LXByb3ZpZGVkIHRocmVhZCBpbnN0ZWFkIG9mIG9u
ZSBtYW5hZ2VkIGJ5IENDVGhyZWFkUHJveHkgaW50ZXJuYWxseS4gTW9zdCBjaGFuZ2VzCisgICAg
ICAgIGluIHRoZXNlIGZpbGVzIGFyZSBtZWNoYW5pY2FsbHkgY2hhbmdpbmcgcmVmZXJlbmNlcyBm
cm9tIGNjVGhyZWFkIHRvIHNfY2NUaHJlYWQgdG8gcmVmbGVjdCB0aGUgY2xhc3Mtc3RhdGljCisg
ICAgICAgIG5hdHVyZSBvZiB0aGlzIHBvaW50ZXIsIHRoZSByZXN0IGFyZSByZW1vdmluZyB0aGUg
b2xkIHRocmVhZCBjcmVhdGlvbiBjb2RlcGF0aC4KKworICAgICAgICBUaGVzZSBjaGFuZ2VzIGFy
ZSBjb3ZlcmVkIGJ5IHRoZSBDQyogdW5pdCB0ZXN0cyBhbmQgYnkgdGhlIGdwdSBsYXlvdXQgdGVz
dHMgd2hlbiBydW4gd2l0aCB0aGUKKyAgICAgICAgdXNlX3RocmVhZGVkX2NvbXBvc2l0aW5nPTEg
Z3lwIGRlZmluZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5
OjpzZXRUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6Q0NUaHJlYWRQ
cm94eSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojp+Q0NUaHJlYWRQcm94eSk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojpjb21wb3NpdGVBbmRSZWFkYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpmaW5pc2hBbGxSZW5kZXJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXRBbmRSZWRyYXcpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXcpOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NU
aHJlYWRQcm94eTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpiZWdp
bkZyYW1lQW5kQ29tbWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnNjaGVk
dWxlRHJhd1Rhc2tPbkNDVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisKIDIwMTEtMDktMjkgIElseWEgVGlraG9ub3Zza3kg
IDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFVJIHBlcmZv
cm1hbmNlIHRlc3QgZm9yIG5ldHdvcmsgcGFuZWwgaXMgaW5jb3JyZWN0LiBUaGUgdGltZSBpcyBp
bmNsdWRpbmcgYSB0aW1lb3V0IGJldHdlZW4gc2NoZWR1bGVkIHJlZnJlc2ggYW5kIGFjdHVhbCBy
ZWZyZXNoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNmRkZDliZDYzOTUw
YmM0N2MyNzAyZDQ4MGU1ODVhMDdlMmQyM2Y3Yi4uNTUyZjlhYmU5NmUyMzdmZGI1NGRkYzJkNzky
NTcyMzEwYzc1YmE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC0xNDMs
MTEgKzE0Myw2IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojpjb21taXRDb21wbGV0ZSgpCiAgICAg
bV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT51bnByb3RlY3RBbGxUZXh0dXJlcygpOwogfQogCi1Q
YXNzT3duUHRyPENDVGhyZWFkPiBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZUNvbXBvc2l0b3JUaHJl
YWQoKQotewotICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRlQ29tcG9zaXRvclRocmVhZCgpOwot
fQotCiBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0
ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKQogewogICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRl
TGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAppbmRl
eCA1NGFkNGMwMDIyMjk2ZGY3ZThiMTZlNjcyMDA5MDVhN2I3ZDRlNTIyLi5kMjM2NjY0YjBiMzZk
ZTg0NDI4MTA3MzIzYTI0MGE3MTRkZTI5NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3Qu
aApAQCAtNDEsNyArNDEsNiBAQCBjbGFzcyBHckNvbnRleHQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdEltcGw7Ci1jbGFzcyBDQ1RocmVhZDsKIGNsYXNzIEdy
YXBoaWNzQ29udGV4dDNEOwogY2xhc3MgTGF5ZXJDaHJvbWl1bTsKIGNsYXNzIExheWVyUGFpbnRl
ckNocm9taXVtOwpAQCAtNTEsNyArNTAsNiBAQCBjbGFzcyBUZXh0dXJlTWFuYWdlcjsKIGNsYXNz
IENDTGF5ZXJUcmVlSG9zdENsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFuaW1h
dGVBbmRMYXlvdXQoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNz
T3duUHRyPENDVGhyZWFkPiBjcmVhdGVDb21wb3NpdG9yVGhyZWFkKCkgPSAwOwogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRl
eHQzRCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQo
Ym9vbCBzdWNjZXNzKSA9IDA7CiAjaWYgIVVTRShUSFJFQURFRF9DT01QT1NJVElORykKQEAgLTk5
LDcgKzk3LDYgQEAgcHVibGljOgogICAgIHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJh
bWVCZWdpblRpbWUpOwogICAgIHZvaWQgY29tbWl0Q29tcGxldGUoKTsKICAgICB2b2lkIGNvbW1p
dFRvT25DQ1RocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKik7Ci0gICAgUGFzc093blB0cjxDQ1Ro
cmVhZD4gY3JlYXRlQ29tcG9zaXRvclRocmVhZCgpOwogICAgIFBhc3NSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKTsKICAgICB2aXJ0dWFsIFBh
c3NPd25QdHI8Q0NMYXllclRyZWVIb3N0SW1wbD4gY3JlYXRlTGF5ZXJUcmVlSG9zdEltcGwoKTsK
ICAgICB2b2lkIGRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGU0MDk4MjNiYTc1NGZkZTFkOGI5OTQwZTkwNDJk
NTk0Njk1MDBiMTIuLmFlM2Y0NzRiMTU1MDlkNzBlZDgxNTI5YmRhY2Q2NTdiOTcwYmE3ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0zOCw5ICszOCwxNCBAQCB1c2luZyBuYW1l
c3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLW5hbWVzcGFjZSB7Ci1DQ1RocmVh
ZCogY2NUaHJlYWQ7Ci1pbnQgbnVtUHJveGllcyA9IDA7CitDQ1RocmVhZCogQ0NUaHJlYWRQcm94
eTo6c19jY1RocmVhZCA9IDA7CisKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0VGhyZWFkKENDVGhy
ZWFkKiBjY1RocmVhZCkKK3sKKyAgICBzX2NjVGhyZWFkID0gY2NUaHJlYWQ7CisjaWZuZGVmIE5E
RUJVRworICAgIENDUHJveHk6OnNldEltcGxUaHJlYWQoc19jY1RocmVhZC0+dGhyZWFkSUQoKSk7
CisjZW5kaWYKIH0KIAogUGFzc093blB0cjxDQ1Byb3h5PiBDQ1RocmVhZFByb3h5OjpjcmVhdGUo
Q0NMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KQpAQCAtNjAsMTMgKzY1LDYgQEAgQ0NUaHJl
YWRQcm94eTo6Q0NUaHJlYWRQcm94eShDQ0xheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QpCiB7
CiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OkNDVGhyZWFkUHJveHkiLCB0aGlzLCAw
KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG51bVByb3hpZXMrKzsKLSAgICBp
ZiAoIWNjVGhyZWFkKSB7Ci0gICAgICAgIGNjVGhyZWFkID0gbV9sYXllclRyZWVIb3N0LT5jcmVh
dGVDb21wb3NpdG9yVGhyZWFkKCkubGVha1B0cigpOwotI2lmbmRlZiBOREVCVUcKLSAgICAgICAg
Q0NQcm94eTo6c2V0SW1wbFRocmVhZChjY1RocmVhZC0+dGhyZWFkSUQoKSk7Ci0jZW5kaWYKLSAg
ICB9CiB9CiAKIENDVGhyZWFkUHJveHk6On5DQ1RocmVhZFByb3h5KCkKQEAgLTc0LDEyICs3Miw2
IEBAIENDVGhyZWFkUHJveHk6On5DQ1RocmVhZFByb3h5KCkKICAgICBUUkFDRV9FVkVOVCgiQ0NU
aHJlYWRQcm94eTo6fkNDVGhyZWFkUHJveHkiLCB0aGlzLCAwKTsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgIEFTU0VSVCghbV9zdGFydGVkKTsKLQotICAgIG51bVByb3hpZXMtLTsK
LSAgICBpZiAoIW51bVByb3hpZXMpIHsKLSAgICAgICAgZGVsZXRlIGNjVGhyZWFkOwotICAgICAg
ICBjY1RocmVhZCA9IDA7Ci0gICAgfQogfQogCiBib29sIENDVGhyZWFkUHJveHk6OmNvbXBvc2l0
ZUFuZFJlYWRiYWNrKHZvaWQgKnBpeGVscywgY29uc3QgSW50UmVjdCYgcmVjdCkKQEAgLTk3LDcg
Kzg5LDcgQEAgYm9vbCBDQ1RocmVhZFByb3h5Ojpjb21wb3NpdGVBbmRSZWFkYmFjayh2b2lkICpw
aXhlbHMsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIHsKICAgICAgICAgICAgIENDTWFp
blRocmVhZDo6VGFzayogdGFza1B0ciA9IDA7CiAgICAgICAgICAgICBDQ0NvbXBsZXRpb25FdmVu
dCBjb21wbGV0aW9uOwotICAgICAgICAgICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhy
ZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6b2J0YWluQmVnaW5GcmFtZUFuZENvbW1pdFRh
c2tGcm9tQ0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pLCBBbGxv
d0Nyb3NzVGhyZWFkQWNjZXNzKCZ0YXNrUHRyKSkpOworICAgICAgICAgICAgc19jY1RocmVhZC0+
cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpvYnRhaW5C
ZWdpbkZyYW1lQW5kQ29tbWl0VGFza0Zyb21DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2Vz
cygmY29tcGxldGlvbiksIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJnRhc2tQdHIpKSk7CiAgICAg
ICAgICAgICBjb21wbGV0aW9uLndhaXQoKTsKICAgICAgICAgICAgIGJlZ2luRnJhbWVBbmRDb21t
aXRUYXNrID0gYWRvcHRQdHIodGFza1B0cik7CiAgICAgICAgIH0KQEAgLTEwOCw3ICsxMDAsNyBA
QCBib29sIENDVGhyZWFkUHJveHk6OmNvbXBvc2l0ZUFuZFJlYWRiYWNrKHZvaWQgKnBpeGVscywg
Y29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAvLyBEcmF3IHVzaW5nIHRoZSBuZXcgdHJlZSBhbmQg
cmVhZCBiYWNrIHRoZSByZXN1bHRzLgogICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwogICAgIEND
Q29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247Ci0gICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0
ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6ZHJhd0xheWVyc0FuZFJlYWRiYWNr
T25DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcygmY29tcGxldGlvbiksIEFsbG93Q3Jv
c3NUaHJlYWRBY2Nlc3MoJnN1Y2Nlc3MpLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKHBpeGVscyks
IHJlY3QpKTsKKyAgICBzX2NjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhp
cywgJkNDVGhyZWFkUHJveHk6OmRyYXdMYXllcnNBbmRSZWFkYmFja09uQ0NUaHJlYWQsIEFsbG93
Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZz
dWNjZXNzKSwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcyhwaXhlbHMpLCByZWN0KSk7CiAgICAgY29t
cGxldGlvbi53YWl0KCk7CiAgICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CkBAIC0xMzgsNyArMTMwLDcg
QEAgdm9pZCBDQ1RocmVhZFByb3h5OjpmaW5pc2hBbGxSZW5kZXJpbmcoKQogCiAgICAgLy8gTWFr
ZSBzdXJlIGFsbCBHTCBkcmF3aW5nIGlzIGZpbmlzaGVkIG9uIHRoZSBpbXBsIHRocmVhZC4KICAg
ICBDQ0NvbXBsZXRpb25FdmVudCBjb21wbGV0aW9uOwotICAgIGNjVGhyZWFkLT5wb3N0VGFzayhj
cmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmZpbmlzaEFsbFJlbmRlcmlu
Z09uQ0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pKSk7CisgICAg
c19jY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFBy
b3h5OjpmaW5pc2hBbGxSZW5kZXJpbmdPbkNDVGhyZWFkLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNz
KCZjb21wbGV0aW9uKSkpOwogICAgIGNvbXBsZXRpb24ud2FpdCgpOwogfQogCkBAIC0xNjQsNyAr
MTU2LDcgQEAgYm9vbCBDQ1RocmVhZFByb3h5Ojppbml0aWFsaXplTGF5ZXJSZW5kZXJlcigpCiAg
ICAgQ0NDb21wbGV0aW9uRXZlbnQgY29tcGxldGlvbjsKICAgICBib29sIGluaXRpYWxpemVTdWNj
ZWVkZWQgPSBmYWxzZTsKICAgICBMYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGll
czsKLSAgICBjY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1Ro
cmVhZFByb3h5Ojppbml0aWFsaXplTGF5ZXJSZW5kZXJlck9uQ0NUaHJlYWQsCisgICAgc19jY1Ro
cmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5Ojpp
bml0aWFsaXplTGF5ZXJSZW5kZXJlck9uQ0NUaHJlYWQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKGNvbnRleHRQdHIpLCBB
bGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZjb21wbGV0aW9uKSwgQWxsb3dDcm9zc1RocmVhZEFjY2Vz
cygmaW5pdGlhbGl6ZVN1Y2NlZWRlZCksIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNhcGFiaWxp
dGllcykpKTsKICAgICBjb21wbGV0aW9uLndhaXQoKTsKIApAQCAtMTkxLDcgKzE4Myw3IEBAIHZv
aWQgQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXQoKQogCiAgICAgVFJBQ0VfRVZFTlQoIkND
VGhyZWFkUHJveHk6OnNldE5lZWRzQ29tbWl0IiwgdGhpcywgMCk7CiAgICAgbV9jb21taXRSZXF1
ZXN0ZWQgPSB0cnVlOwotICAgIGNjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2so
dGhpcywgJkNDVGhyZWFkUHJveHk6OnVwZGF0ZVNjaGVkdWxlclN0YXRlT25DQ1RocmVhZCwgbV9j
b21taXRSZXF1ZXN0ZWQsIHRydWUpKTsKKyAgICBzX2NjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVD
Q1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OnVwZGF0ZVNjaGVkdWxlclN0YXRlT25D
Q1RocmVhZCwgbV9jb21taXRSZXF1ZXN0ZWQsIHRydWUpKTsKIH0KIAogdm9pZCBDQ1RocmVhZFBy
b3h5OjpzZXROZWVkc0NvbW1pdEFuZFJlZHJhdygpCkBAIC0yMDIsNyArMTk0LDcgQEAgdm9pZCBD
Q1RocmVhZFByb3h5OjpzZXROZWVkc0NvbW1pdEFuZFJlZHJhdygpCiAgICAgbV9jb21taXRSZXF1
ZXN0ZWQgPSB0cnVlOwogCiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OnNldE5lZWRz
Q29tbWl0QW5kUmVkcmF3IiwgdGhpcywgMCk7Ci0gICAgY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0
ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6dXBkYXRlU2NoZWR1bGVyU3RhdGVP
bkNDVGhyZWFkLCBtX2NvbW1pdFJlcXVlc3RlZCwgdHJ1ZSkpOworICAgIHNfY2NUaHJlYWQtPnBv
c3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6dXBkYXRlU2No
ZWR1bGVyU3RhdGVPbkNDVGhyZWFkLCBtX2NvbW1pdFJlcXVlc3RlZCwgdHJ1ZSkpOwogfQogCiB2
b2lkIENDVGhyZWFkUHJveHk6OnNldE5lZWRzUmVkcmF3KCkKQEAgLTIxNywxNSArMjA5LDE2IEBA
IHZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXcoKQogICAgIC8vIHNldE5lZWRzUmVk
cmF3IG1lc3NhZ2VzIGFyZSB1bmNvbW1vbiAob25seSB0cmlnZ2VyZWQgYnkgV01fUEFJTlQvZXRj
KSwKICAgICAvLyBjb21wYXJlZCB0byBzZXROZWVkc0NvbW1pdEFuZFJlZHJhdyBtZXNzYWdlcy4K
ICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXciLCB0aGlzLCAw
KTsKLSAgICBjY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1Ro
cmVhZFByb3h5Ojp1cGRhdGVTY2hlZHVsZXJTdGF0ZU9uQ0NUaHJlYWQsIGZhbHNlLCB0cnVlKSk7
CisgICAgc19jY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1Ro
cmVhZFByb3h5Ojp1cGRhdGVTY2hlZHVsZXJTdGF0ZU9uQ0NUaHJlYWQsIGZhbHNlLCB0cnVlKSk7
CiB9CiAKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c3RhcnQoKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgQVNTRVJUKHNfY2NUaHJlYWQpOwogICAgIC8vIENyZWF0ZSBMYXllclRy
ZWVIb3N0SW1wbC4KICAgICBDQ0NvbXBsZXRpb25FdmVudCBjb21wbGV0aW9uOwotICAgIGNjVGhy
ZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6Omlu
aXRpYWxpemVJbXBsT25DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcygmY29tcGxldGlv
bikpKTsKKyAgICBzX2NjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywg
JkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJbXBsT25DQ1RocmVhZCwgQWxsb3dDcm9zc1RocmVh
ZEFjY2VzcygmY29tcGxldGlvbikpKTsKICAgICBjb21wbGV0aW9uLndhaXQoKTsKIAogICAgIG1f
c3RhcnRlZCA9IHRydWU7CkBAIC0yMzksNyArMjMyLDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5Ojpz
dG9wKCkKIAogICAgIC8vIFN5bmNocm9ub3VzbHkgZGVsZXRlcyB0aGUgaW1wbC4KICAgICBDQ0Nv
bXBsZXRpb25FdmVudCBjb21wbGV0aW9uOwotICAgIGNjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVD
Q1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmxheWVyVHJlZUhvc3RDbG9zZWRPbkND
VGhyZWFkLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZjb21wbGV0aW9uKSkpOworICAgIHNfY2NU
aHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6
bGF5ZXJUcmVlSG9zdENsb3NlZE9uQ0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNv
bXBsZXRpb24pKSk7CiAgICAgY29tcGxldGlvbi53YWl0KCk7CiAKICAgICBBU1NFUlQoIW1fbGF5
ZXJUcmVlSG9zdEltcGwpOyAvLyB2ZXJpZnkgdGhhdCB0aGUgaW1wbCBkZWxldGVkLgpAQCAtMzI1
LDcgKzMxOCw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdChpbnQg
c2VxdWVuY2VOdW1iZXIsIGRvdWJsZSBmcmFtZUJlZ2luVGltCiAgICAgICAgIC8vIEJsb2NraW5n
IGNhbGwgdG8gQ0NUaHJlYWRQcm94eTo6Y29tbWl0T25DQ1RocmVhZAogICAgICAgICBUUkFDRV9F
VkVOVCgiY29tbWl0IiwgdGhpcywgMCk7CiAgICAgICAgIENDQ29tcGxldGlvbkV2ZW50IGNvbXBs
ZXRpb247Ci0gICAgICAgIGNjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhp
cywgJkNDVGhyZWFkUHJveHk6OmNvbW1pdE9uQ0NUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nl
c3MoJmNvbXBsZXRpb24pKSk7CisgICAgICAgIHNfY2NUaHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUND
VGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6Y29tbWl0T25DQ1RocmVhZCwgQWxsb3dD
cm9zc1RocmVhZEFjY2VzcygmY29tcGxldGlvbikpKTsKICAgICAgICAgY29tcGxldGlvbi53YWl0
KCk7CiAgICAgfQogCkBAIC0zNjIsNyArMzU1LDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpzY2hl
ZHVsZURyYXdUYXNrT25DQ1RocmVhZCgpCiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6
OnNjaGVkdWxlRHJhd1Rhc2tPbkNDVGhyZWFkIiwgdGhpcywgMCk7CiAgICAgQVNTRVJUKG1fbGF5
ZXJUcmVlSG9zdEltcGwpOwogICAgIG1fZHJhd1Rhc2tQb3N0ZWRPbkNDVGhyZWFkID0gdHJ1ZTsK
LSAgICBjY1RocmVhZC0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVh
ZFByb3h5OjpkcmF3TGF5ZXJzQW5kUHJlc2VudE9uQ0NUaHJlYWQpKTsKKyAgICBzX2NjVGhyZWFk
LT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmRyYXdM
YXllcnNBbmRQcmVzZW50T25DQ1RocmVhZCkpOwogfQogCiB2b2lkIENDVGhyZWFkUHJveHk6OmRy
YXdMYXllcnNBbmRQcmVzZW50T25DQ1RocmVhZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5k
ZXggZDNiNDg3ZmVjNDBkNDAxNTkwN2E5ZjgwOTZjZDlkYmNlMmQxYjE5Mi4uMTJlNmRjM2I5Y2U1
M2U2MmYzYjU1N2Y3YzBhNDk4YTI5YTgyNTRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApA
QCAtMzQsOSArMzQsMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ0NMYXllclRy
ZWVIb3N0OworY2xhc3MgQ0NUaHJlYWQ7CiAKIGNsYXNzIENDVGhyZWFkUHJveHkgOiBwdWJsaWMg
Q0NQcm94eSB7CiBwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgc2V0VGhyZWFkKENDVGhyZWFkKik7
CisKICAgICBzdGF0aWMgUGFzc093blB0cjxDQ1Byb3h5PiBjcmVhdGUoQ0NMYXllclRyZWVIb3N0
Kik7CiAKICAgICB2aXJ0dWFsIH5DQ1RocmVhZFByb3h5KCk7CkBAIC04OSw2ICs5Miw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2JlZ2luRnJhbWVBbmRDb21taXRQZW5kaW5nT25DQ1RocmVhZDsK
ICAgICBib29sIG1fZHJhd1Rhc2tQb3N0ZWRPbkNDVGhyZWFkOwogICAgIGJvb2wgbV9yZWRyYXdS
ZXF1ZXN0ZWRPbkNDVGhyZWFkOworCisgICAgc3RhdGljIENDVGhyZWFkKiBzX2NjVGhyZWFkOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0MTZkYTNmODIxYzgyMDA1M2Yy
ZDY0MzJlZDI5NTc0OTk3NjcxYjZjLi5jZmYyZjkyMjk5YjJkZTA3M2MxZWIxNzg4YzM0ODNiYzg5
NjQ1YTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEx
LTA5LTI5ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
W2Nocm9taXVtXSBBZGQgV2ViS2l0IEFQSSBmb3Igc2VuZGluZyBpbnB1dCBldmVudHMgdG8gdGhl
IGNvbXBvc2l0b3IgdGhyZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02OTExNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZHMgYSBuZXcgV2ViS2l0IGludGVyZmFjZSB0byBhbGxvdyB0aGUgZW1iZWRk
ZXIgdG8gcGFzcyBpbnB1dCBldmVudHMgZGlyZWN0bHkgdG8gdGhlIGNvbXBvc2l0b3IgdGhyZWFk
LgorICAgICAgICBFeHBvc2VzIHRoZSBuZXcgV2ViQ29tcG9zaXRvciBpbnRlcmZhY2UgYW5kIGFz
c29jaWF0ZWQgY2xpZW50LiBUaGVzZSBpbnRlcmZhY2VzIGFyZSBzbGlnaHRseSBkaWZmZXJlbnQg
aW4gdGhhdAorICAgICAgICB0aGV5IGNhbiBvbmx5IGJlIGludGVyYWN0ZWQgd2l0aCBmcm9tIHRo
ZSBjb21wb3NpdG9yIHRocmVhZC4KKworICAgICAgICBDaGFuZ2VzIHRoZSBpbml0aWFsaXphdGlv
biBwYXRoIGZvciB0aGUgY29tcG9zaXRvciB0aHJlYWQgdG8gdXNpbmcgYW4gZXh0ZXJuYWxseSBh
bGxvY2F0ZWQgYW5kIG1hbmFnZWQgdGhyZWFkCisgICAgICAgIGluc3RlYWQgb2Ygb25lIGludGVy
bmFsIHRvIFdlYkNvcmUgc28gdGhhdCB0aGUgZW1iZWRkZXIgY2FuIGludGVyYWN0IHdpdGggdGhl
IHRocmVhZCBtb3JlIGVhc2lseS4gVGhpcyBhbHNvCisgICAgICAgIHNpbXBsaWZpZXMgdGhlIHN0
YXJ0dXAgYW5kIHNodXRkb3duIHBhdGhzLiAgVGhlIGNvbnRyYWN0IGlzIHRoYXQgV2ViQ29tcG9z
aXRvcjo6c2V0VGhyZWFkKCkgbXVzdCBiZSBjYWxsZWQKKyAgICAgICAgYmVmb3JlIGFueSBjb21w
b3NpdG9yIGNhbiBiZSBpbml0aWFsaXplZCBhbmQgdGhlIHBhc3NlZC1pbiB0aHJlYWQgbXVzdCBv
dXRsaXZlIGFsbCBjb21wb3NpdG9yIGluc3RhbmNlcy4KKworICAgICAgICBFYWNoIFdlYkNvbXBv
c2l0b3IgaW5zdGFuY2UgaXMgYXNzb2NpYXRlZCB3aXRoIGEgV2ViV2lkZ2V0LiAgVGhlcmUgaXNu
J3QgYW55IHdheSB0byBnZXQgYSBXZWJDb21wb3NpdG9yIGZvciBhCisgICAgICAgIGdpdmVuIFdl
YldpZGdldCBpbiB0aGlzIHBhdGNoLCB0aGF0IHdpbGwgYmUgZG9uZSBpbiBhIGZvbGxvdy11cC4K
KworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYkNvbXBvc2l0b3Iu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6fldlYkNvbXBvc2l0b3IpOgorICAg
ICAgICAqIHB1YmxpYy9XZWJDb21wb3NpdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbXBvc2l0b3JDbGllbnQ6On5XZWJDb21wb3NpdG9yQ2xpZW50KToKKyAgICAgICAgKiBzcmMv
Q0NUaHJlYWRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q0NUaHJlYWRJbXBsOjpjcmVhdGUp
OgorICAgICAgICAoV2ViS2l0OjpDQ1RocmVhZEltcGw6OkNDVGhyZWFkSW1wbCk6CisgICAgICAg
ICogc3JjL0NDVGhyZWFkSW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJDb21wb3NpdG9ySW1wbC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9yOjpzZXRUaHJlYWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW1wbDo6V2ViQ29tcG9zaXRvckltcGwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW1wbDo6fldlYkNvbXBvc2l0b3JJbXBsKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvckltcGw6OnNldENsaWVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAg
KiBzcmMvV2ViQ29tcG9zaXRvckltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRv
ckltcGw6OmNyZWF0ZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAg
KiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0
LmNwcDoKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdDo6Q0NMYXllclRyZWVIb3N0
VGVzdCk6CisgICAgICAgICogdGVzdHMvQ0NUaHJlYWRUZXN0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VEVTVCk6CisKIDIwMTEtMDktMjkgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBJbmRleGVkREI6IFVzZSBMZXZlbERCIGFsc28gZm9yIGluLW1lbW9yeSBk
YXRhYmFzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA4YzQ5MTI5NTIxM2NmYzg3
YzlkY2UzM2U0NmVjMGY4OWMzMzY1OTc4Li42NjMwYjM1MTE3YjBkMDM2NmQzMGRjOTIwYjJmZGM4
NmQwMmNjNTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMjcsNiArMTI3LDgg
QEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbW1vbi5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYkNvbW1vbldvcmtlckNsaWVudC5oJywKICAgICAgICAgICAgICAgICAncHVi
bGljL1dlYkNvbXBvc2l0aW9uVW5kZXJsaW5lLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViQ29tcG9zaXRvckNsaWVudC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbXBv
c2l0b3IuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb25zb2xlTWVzc2FnZS5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbnRleHRNZW51RGF0YS5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkNvb2tpZS5oJywKQEAgLTQ0NSw2ICs0NDcsOCBAQAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViQ2FjaGUuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNv
bG9yLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb21tb24uY3BwJywKKyAgICAgICAg
ICAgICAgICAnc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJDb21wb3NpdG9ySW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNyb3NzT3Jp
Z2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNT
dHJpbmcuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkN1cnNvckluZm8uY3BwJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3IuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zODA2MTkzMjhmMTllNTFhNjlkN2VjZTk0YzJkYzRjZWRmYjM1ZDUyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvci5oCkBAIC0w
LDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbXBvc2l0b3JfaAorI2RlZmluZSBXZWJD
b21wb3NpdG9yX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViQ29tcG9zaXRvckNsaWVudDsKK2NsYXNzIFdlYklucHV0RXZlbnQ7Citj
bGFzcyBXZWJUaHJlYWQ7CisKKy8vIFRoaXMgcmVwcmVzZW50cyB0aGUgY29tcG9zaXRvciBhc3Nv
Y2lhdGVkIHdpdGggYSBXZWJXaWRnZXQuIEFsbCBjYWxscyB0byB0aGUgV2ViQ29tcG9zaXRvciBt
dXN0CisvLyBiZSBtYWRlIGZyb20gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLgorY2xhc3MgV2ViQ29t
cG9zaXRvciB7CitwdWJsaWM6CisgICAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCBvbmNlIHdpdGgg
YSBub24tbnVsbCBXZWJUaHJlYWQgYmVmb3JlIGFueSBjb21wb3NpdG9ycyBhdHRlbXB0IHRvIGlu
aXRpYWxpemUuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRUaHJlYWQoV2ViVGhy
ZWFkKik7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYkNvbXBvc2l0b3JDbGllbnQq
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRF
dmVudCYpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfldlYkNvbXBvc2l0b3IoKSB7
IH0KK307CisKK30KKworI2VuZGlmIC8vIFdlYkNvbXBvc2l0b3JfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvckNsaWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRmYTg0MDZmMDlhOWRjMWI2ZmZkNWEwNDhlOGU4MGJmZmUzM2ZkZDkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yQ2xpZW50LmgK
QEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29tcG9zaXRvckNsaWVudF9oCisj
ZGVmaW5lIFdlYkNvbXBvc2l0b3JDbGllbnRfaAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViQ29tcG9zaXRvckNsaWVudCB7CitwdWJsaWM6CisgICAgLy8gQ2FsbGJhY2tzIGludm9r
ZWQgZnJvbSB0aGUgY29tcG9zaXRvciB0aHJlYWQuCisgICAgdmlydHVhbCB2b2lkIHdpbGxTaHV0
ZG93bigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlSW5wdXRFdmVudCgpID0gMDsK
KworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfldlYkNvbXBvc2l0b3JDbGllbnQoKSB7IH0KK307
CisKK30KKworI2VuZGlmIC8vIFdlYkNvbXBvc2l0b3JDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJLaXQuaAppbmRleCA5OTFkNTQzMjc0MGM4NTQwNzgxZjU0ZWM0ODI2OTEy
NGMxZTE5ZjkxLi4zMTg2YzAzMWRmM2IwNTk0YWE1Y2JkOTNlOWIxOTI3MGEzM2MzMjUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXQuaApAQCAtMzMsNiArMzMsOCBAQAogCiAj
aW5jbHVkZSAiV2ViQ29tbW9uLmgiCiAKKyNkZWZpbmUgSEFWRV9XRUJDT01QT1NJVE9SCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ0NUaHJlYWRJbXBsLmNwcAppbmRleCA2MTZiOTUwNDAwYjk1
OGIxYWRmMjVjZTJkZjYzMzQyZTRkNzcwNTljLi5kOThiNTI3NWUzMGRkYTY2NmU5ZWMxMWYxMDQ1
OTc0OWU4OTA3ZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1Ro
cmVhZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NDVGhyZWFkSW1w
bC5jcHAKQEAgLTc2LDkgKzc2LDkgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8Q0NUaHJlYWQ6OlRh
c2s+IG1fdGFzazsKIH07CiAKLVBhc3NPd25QdHI8Q0NUaHJlYWQ+IENDVGhyZWFkSW1wbDo6Y3Jl
YXRlKCkKK1Bhc3NPd25QdHI8Q0NUaHJlYWQ+IENDVGhyZWFkSW1wbDo6Y3JlYXRlKFdlYlRocmVh
ZCogdGhyZWFkKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NUaHJlYWRJbXBsKCkpOwor
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NUaHJlYWRJbXBsKHRocmVhZCkpOwogfQogCiBDQ1Ro
cmVhZEltcGw6On5DQ1RocmVhZEltcGwoKQpAQCAtOTUsOCArOTUsOCBAQCBUaHJlYWRJZGVudGlm
aWVyIENDVGhyZWFkSW1wbDo6dGhyZWFkSUQoKSBjb25zdAogICAgIHJldHVybiBtX3RocmVhZElE
OwogfQogCi1DQ1RocmVhZEltcGw6OkNDVGhyZWFkSW1wbCgpCi0gICAgOiBtX3RocmVhZChhZG9w
dFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFkKCJDQ1RocmVhZCIpKSkK
K0NDVGhyZWFkSW1wbDo6Q0NUaHJlYWRJbXBsKFdlYlRocmVhZCogdGhyZWFkKQorICAgIDogbV90
aHJlYWQodGhyZWFkKQogewogICAgIC8vIEdldCB0aGUgdGhyZWFkSWQgZm9yIHRoZSBuZXdseS1j
cmVhdGVkIHRocmVhZCBieSBydW5uaW5nIGEgdGFzawogICAgIC8vIG9uIHRoYXQgdGhyZWFkLCBi
bG9ja2luZyBvbiB0aGUgcmVzdWx0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ0NUaHJlYWRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVh
ZEltcGwuaAppbmRleCA5YzkyOWFiMTA5YzUzZTNiMTY3MjMyODE3ZDk5OGE4Y2ZlMGI1MjE1Li5i
ZTUwZDViYWU5YzQ5OWU0MTIxODA1MzZmYWE0M2I0OTRmMmZjOTQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuaApAQCAtMzcsMTUgKzM3LDE1IEBAIGNsYXNzIFdl
YlRocmVhZDsKIC8vIEltcGxlbWVudHMgQ0NUaHJlYWQgaW4gdGVybXMgb2YgV2ViVGhyZWFkLgog
Y2xhc3MgQ0NUaHJlYWRJbXBsIDogcHVibGljIFdlYkNvcmU6OkNDVGhyZWFkIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJDb3JlOjpDQ1RocmVhZD4gY3JlYXRlKCk7CisgICAg
c3RhdGljIFBhc3NPd25QdHI8V2ViQ29yZTo6Q0NUaHJlYWQ+IGNyZWF0ZShXZWJUaHJlYWQqKTsK
ICAgICB2aXJ0dWFsIH5DQ1RocmVhZEltcGwoKTsKICAgICB2b2lkIHBvc3RUYXNrKFBhc3NPd25Q
dHI8V2ViQ29yZTo6Q0NUaHJlYWQ6OlRhc2s+KTsKICAgICBXVEY6OlRocmVhZElkZW50aWZpZXIg
dGhyZWFkSUQoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBDQ1RocmVhZEltcGwoKTsKKyAgICBl
eHBsaWNpdCBDQ1RocmVhZEltcGwoV2ViVGhyZWFkKik7CiAKLSAgICBPd25QdHI8V2ViVGhyZWFk
PiBtX3RocmVhZDsKKyAgICBXZWJUaHJlYWQqIG1fdGhyZWFkOwogICAgIFdURjo6VGhyZWFkSWRl
bnRpZmllciBtX3RocmVhZElEOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViQ29tcG9zaXRvckltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjY2U4OWE5NWZhMjIwYTRhZjlk
ODQ5ZGQ2MjUzMTVjMzdjYWVjYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbXBsLmgiCisK
KyNpbmNsdWRlICJjYy9DQ1RocmVhZFByb3h5LmgiCisjaW5jbHVkZSAiQ0NUaHJlYWRJbXBsLmgi
CisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvckNsaWVudC5oIgorI2luY2x1ZGUgIldlYklucHV0RXZl
bnQuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit2b2lkIFdlYkNvbXBvc2l0b3I6OnNldFRocmVhZChXZWJUaHJlYWQqIGNvbXBvc2l0b3JUaHJl
YWQpCit7CisgICAgQVNTRVJUKGNvbXBvc2l0b3JUaHJlYWQpOworICAgIENDVGhyZWFkUHJveHk6
OnNldFRocmVhZChDQ1RocmVhZEltcGw6OmNyZWF0ZShjb21wb3NpdG9yVGhyZWFkKS5sZWFrUHRy
KCkpOworfQorCitXZWJDb21wb3NpdG9ySW1wbDo6V2ViQ29tcG9zaXRvckltcGwoKQorICAgIDog
bV9jbGllbnQoMCkKK3sKK30KKworV2ViQ29tcG9zaXRvckltcGw6On5XZWJDb21wb3NpdG9ySW1w
bCgpCit7Cit9CisKK3ZvaWQgV2ViQ29tcG9zaXRvckltcGw6OnNldENsaWVudChXZWJDb21wb3Np
dG9yQ2xpZW50KiBjbGllbnQpCit7CisgICAgQVNTRVJUKGNsaWVudCk7CisgICAgbV9jbGllbnQg
PSBjbGllbnQ7Cit9CisKK3ZvaWQgV2ViQ29tcG9zaXRvckltcGw6OmhhbmRsZUlucHV0RXZlbnQo
Y29uc3QgV2ViSW5wdXRFdmVudCYgZXZlbnQpCit7CisgICAgLy8gRklYTUU6IERvIHNvbWV0aGlu
ZyBpbnRlcmVzdGluZyB3aXRoIHRoZSBldmVudCBoZXJlLgorICAgIG1fY2xpZW50LT5kaWRIYW5k
bGVJbnB1dEV2ZW50KCk7Cit9CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkNvbXBvc2l0b3JJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgzYWY2ZjJhYzFlZTliN2EzMDdkZTVi
NjQyYjA5MzNmMDNkYzNmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV2ViQ29tcG9zaXRvckltcGxfaAorI2RlZmluZSBXZWJDb21wb3NpdG9ySW1wbF9oCisKKyNp
bmNsdWRlICJXZWJDb21wb3NpdG9yLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYkNvbXBvc2l0b3JDbGllbnQ7CisKK2NsYXNzIFdlYkNvbXBvc2l0b3JJbXBsIDogcHVibGlj
IFdlYkNvbXBvc2l0b3IgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkNvbXBvc2l0b3JJ
bXBsKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxXZWJDb21wb3NpdG9ySW1wbD4g
Y3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViQ29tcG9zaXRv
ckltcGwpOworICAgIH0KKworICAgIHZpcnR1YWwgfldlYkNvbXBvc2l0b3JJbXBsKCk7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYkNvbXBvc2l0b3JDbGllbnQqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7CisKK3ByaXZh
dGU6CisgICAgV2ViQ29tcG9zaXRvckltcGwoKTsKKworICAgIFdlYkNvbXBvc2l0b3JDbGllbnQq
IG1fY2xpZW50OworfTsKKworfQorCisjZW5kaWYgLy8gV2ViQ29tcG9zaXRvckltcGxfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDAxMTI1NmI2MzI2
OGZhMzdiODI4OTA0YmQzOWZlMTcxNTk2ZTRhMzAuLjI1ZmZmZjU0ZjgzYTE4YThiYjU3NDAxNDdk
MjA3MDYxOGE5NGFlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJBdXRvZmlsbFBvcHVwTWVudUNsaWVu
dC5oIgogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZExp
c3RDaHJvbWl1bS5oIgotI2luY2x1ZGUgIkNDVGhyZWFkSW1wbC5oIgogI2luY2x1ZGUgIkNTU1N0
eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAi
Q2hyb21lLmgiCkBAIC0yNjg2LDExICsyNjg1LDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGJvb2wgYWN0aXZlKQogCiAjZW5kaWYKIAotUGFz
c093blB0cjxDQ1RocmVhZD4gV2ViVmlld0ltcGw6OmNyZWF0ZUNvbXBvc2l0b3JUaHJlYWQoKQot
ewotICAgIHJldHVybiBDQ1RocmVhZEltcGw6OmNyZWF0ZSgpOwotfQotCiBQYXNzUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBXZWJWaWV3SW1wbDo6Y3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQz
RCgpCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0ID0gbV90ZW1wb3Jh
cnlPbnNjcmVlbkdyYXBoaWNzQ29udGV4dDNELnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGIzOTU0OWE5YmMwMDZkN2IyYWI4MGYzYzFiYTY3
YmY2YWIxNTU1MzUuLjQ3OWYzMzY0MWQ5YWY0ZGQwZDEwMmNhZThiZThhNDM3MzkzYzQ1MGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMjE5LDcgKzIxOSw2
IEBAIHB1YmxpYzoKIAogICAgIC8vIENDTGF5ZXJUcmVlSG9zdENsaWVudAogICAgIHZpcnR1YWwg
dm9pZCBhbmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSk7Ci0gICAgdmlydHVh
bCBQYXNzT3duUHRyPFdlYkNvcmU6OkNDVGhyZWFkPiBjcmVhdGVDb21wb3NpdG9yVGhyZWFkKCk7
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEPiBjcmVh
dGVMYXllclRyZWVIb3N0Q29udGV4dDNEKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY3JlYXRl
R3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CiAjaWYgIVVTRShUSFJFQURFRF9DT01QT1NJ
VElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRy
ZWVIb3N0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVl
SG9zdFRlc3QuY3BwCmluZGV4IDY3M2IxZjUzYzc1OTkzMDljYWYxMjYwNjBjMDUxY2MwZGU3YThj
ZDUuLjk3YzlkN2Q2NWM2NzliNTAzM2M2MDAxZWZiNTQwMDJjMjgwZGE2ZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcApA
QCAtMjgsMTUgKzI4LDE5IEBACiAKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKIAor
I2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaCIKKyNpbmNsdWRlICJjYy9DQ01haW5U
aHJlYWRUYXNrLmgiCisjaW5jbHVkZSAiY2MvQ0NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiQ0NU
aHJlYWRJbXBsLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiCisjaW5j
bHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KICNpbmNsdWRlICJMYXllckNocm9taXVtLmgiCiAjaW5jbHVk
ZSAiTW9ja1dlYkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hbmFnZXIu
aCIKLSNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgiCi0jaW5jbHVkZSAiY2MvQ0NN
YWluVGhyZWFkVGFzay5oIgotI2luY2x1ZGUgImNjL0NDVGhyZWFkVGFzay5oIgotI2luY2x1ZGUg
PGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvci5oIgorI2luY2x1ZGUgIldl
YktpdC5oIgorI2luY2x1ZGUgIldlYktpdFBsYXRmb3JtU3VwcG9ydC5oIgorI2luY2x1ZGUgIldl
YlRocmVhZC5oIgogI2luY2x1ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpA
QCAtMTQ3LDExICsxNTEsNiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwg
UGFzc093blB0cjxDQ1RocmVhZD4gY3JlYXRlQ29tcG9zaXRvclRocmVhZCgpCi0gICAgewotICAg
ICAgICByZXR1cm4gQ0NUaHJlYWRJbXBsOjpjcmVhdGUoKTsKLSAgICB9Ci0KICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0
M0QoKQogICAgIHsKICAgICAgICAgT3duUHRyPFdlYkdyYXBoaWNzQ29udGV4dDNEPiBtb2NrID0g
Q29tcG9zaXRvck1vY2tXZWJHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKCk7CkBAIC0yMDgsNiAr
MjA3LDggQEAgcHJvdGVjdGVkOgogICAgICAgICAsIG1fcnVubmluZyhmYWxzZSkKICAgICAgICAg
LCBtX3RpbWVkT3V0KGZhbHNlKQogICAgIHsKKyAgICAgICAgbV93ZWJUaHJlYWQgPSBhZG9wdFB0
cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFkKCJDQ0xheWVyVHJlZUhvc3RU
ZXN0IikpOworICAgICAgICBXZWJDb21wb3NpdG9yOjpzZXRUaHJlYWQobV93ZWJUaHJlYWQuZ2V0
KCkpOwogI2lmIFVTRShUSFJFQURFRF9DT01QT1NJVElORykKICAgICAgICAgbV9zZXR0aW5ncy5l
bmFibGVDb21wb3NpdG9yVGhyZWFkID0gdHJ1ZTsKICNlbHNlCkBAIC0yODQsNiArMjg1LDggQEAg
cHJpdmF0ZToKICAgICBib29sIG1fZW5kV2hlbkJlZ2luUmV0dXJuczsKICAgICBib29sIG1fcnVu
bmluZzsKICAgICBib29sIG1fdGltZWRPdXQ7CisKKyAgICBPd25QdHI8V2ViVGhyZWFkPiBtX3dl
YlRocmVhZDsKIH07CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0VGVzdDo6ZG9CZWdpblRlc3QoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RocmVhZFRlc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RocmVhZFRlc3QuY3BwCmluZGV4IGM2
OTU2YjA2ODAzNjYwMzE1YmVmNDY4YTllMTkzZWNlOTk1ZGRjYWIuLmVhNmZiMTdkMWM2ZmVhYzkw
NTkyOGI4YWU4MjZiZmYzNzljNDNiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NUaHJlYWRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDVGhyZWFkVGVzdC5jcHAKQEAgLTI2LDE2ICsyNiwyMCBAQAogCiAjaW5jbHVkZSAiY2Mv
Q0NUaHJlYWQuaCIKIAotI2luY2x1ZGUgIkNDVGhyZWFkSW1wbC5oIgogI2luY2x1ZGUgImNjL0ND
Q29tcGxldGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiY2MvQ0NNYWluVGhyZWFkVGFzay5oIgogI2lu
Y2x1ZGUgImNjL0NDVGhyZWFkVGFzay5oIgotI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5j
bHVkZSAiQ0NUaHJlYWRJbXBsLmgiCisjaW5jbHVkZSAiV2ViS2l0LmgiCisjaW5jbHVkZSAiV2Vi
S2l0UGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiV2ViVGhyZWFkLmgiCiAKKyNpbmNsdWRl
IDxndGVzdC9ndGVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBuYW1lc3BhY2UgewogCkBAIC01Myw3ICs1
Nyw5IEBAIHB1YmxpYzoKIAogVEVTVChDQ1RocmVhZFRlc3QsIHBpbmdQb25nVXNpbmdDb25kaXRp
b24pCiB7Ci0gICAgT3duUHRyPENDVGhyZWFkPiB0aHJlYWQgPSBXZWJLaXQ6OkNDVGhyZWFkSW1w
bDo6Y3JlYXRlKCk7CisgICAgT3duUHRyPFdlYlRocmVhZD4gd2ViVGhyZWFkID0gYWRvcHRQdHIo
d2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNyZWF0ZVRocmVhZCgidGVzdCIpKTsKKworICAgIE93
blB0cjxDQ1RocmVhZD4gdGhyZWFkID0gV2ViS2l0OjpDQ1RocmVhZEltcGw6OmNyZWF0ZSh3ZWJU
aHJlYWQuZ2V0KCkpOwogICAgIFBpbmdQb25nVXNpbmdDb25kaXRpb24gdGFyZ2V0OwogICAgIEND
Q29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247CiAgICAgdGhyZWFkLT5wb3N0VGFzayhjcmVhdGVD
Q1RocmVhZFRhc2soJnRhcmdldCwgJlBpbmdQb25nVXNpbmdDb25kaXRpb246OnBpbmcsCkBAIC04
MCw5ICs4NiwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoaXQ7CiB9OwogCi1URVNUKENDVGhyZWFk
VGVzdCwgRElTQUJMRURfc3RhcnRQb3N0QW5kV2FpdE9uQ29uZGl0aW9uKQorVEVTVChDQ1RocmVh
ZFRlc3QsIHN0YXJ0UG9zdEFuZFdhaXRPbkNvbmRpdGlvbikKIHsKLSAgICBPd25QdHI8Q0NUaHJl
YWQ+IHRocmVhZCA9IFdlYktpdDo6Q0NUaHJlYWRJbXBsOjpjcmVhdGUoKTsKKyAgICBPd25QdHI8
V2ViVGhyZWFkPiB3ZWJUaHJlYWQgPSBhZG9wdFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+
Y3JlYXRlVGhyZWFkKCJ0ZXN0IikpOworCisgICAgT3duUHRyPENDVGhyZWFkPiB0aHJlYWQgPSBX
ZWJLaXQ6OkNDVGhyZWFkSW1wbDo6Y3JlYXRlKHdlYlRocmVhZC5nZXQoKSk7CiAKICAgICBQaW5n
UG9uZ1Rlc3RVc2luZ1Rhc2tzIHRhcmdldDsKICAgICB0aHJlYWQtPnBvc3RUYXNrKGNyZWF0ZUND
VGhyZWFkVGFzaygmdGFyZ2V0LCAmUGluZ1BvbmdUZXN0VXNpbmdUYXNrczo6cGluZykpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY4OTQwMjlm
MmQ1ZmMwMzk3MGFhMmIwNjM4NzJmOWJmOTkwZDNkYTQuLjQxMjhjNjFiMjBhZDY3M2ZkNmVjMDJi
MDc5Mzg2YWJlNjFjMGE4N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wOS0yOSAgSmFtZXMgUm9iaW5zb24g
IDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIFdlYktpdCBB
UEkgZm9yIHNlbmRpbmcgaW5wdXQgZXZlbnRzIHRvIHRoZSBjb21wb3NpdG9yIHRocmVhZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxMTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHN1cHBvcnQg
Zm9yIGNyZWF0aW5nIGFuZCBzZXR0aW5nIGEgY29tcG9zaXRvciB0aHJlYWQgaW4gRFJULgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAg
ICAoV2ViVmlld0hvc3Q6OldlYlZpZXdIb3N0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5oOgorCiAyMDExLTA5LTI5ICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5icmVhayB0aGUgInVwZGF0ZSBleHBlY3RhdGF0aW9u
cyIgYnV0dG9uIGJ5IHVzaW5nIHRoZSBleGlzdGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IGI3NjE3NjIzMDg4ODZjNTQwNDkyZWVhYTlj
NTVlNDNjMzJhZjRmYjcuLjFlZjdiYjYzZDExZmY2ODNmMGE4NDkwNzBlNjZkN2FkZWJhYjRkZGIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJUZXN0U2hlbGwuaCIKICNpbmNsdWRlICJUZXN0V2Vi
V29ya2VyLmgiCiAjaW5jbHVkZSAiV2ViQ1N0cmluZy5oIgorI2luY2x1ZGUgIldlYkNvbXBvc2l0
b3IuaCIKICNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIldlYkNvbnRl
eHRNZW51RGF0YS5oIgogI2luY2x1ZGUgIldlYkRhdGFTb3VyY2UuaCIKQEAgLTQ1LDYgKzQ2LDgg
QEAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50
TW9jay5oIgogI2luY2x1ZGUgIldlYkhpc3RvcnlJdGVtLmgiCisjaW5jbHVkZSAiV2ViS2l0Lmgi
CisjaW5jbHVkZSAiV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiV2ViTm9kZS5o
IgogI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYlBvcHVwVHlwZS5oIgpA
QCAtNTYsNiArNTksNyBAQAogI2luY2x1ZGUgIldlYlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNs
dWRlICJXZWJUZXh0Q2hlY2tpbmdDb21wbGV0aW9uLmgiCiAjaW5jbHVkZSAiV2ViVGV4dENoZWNr
aW5nUmVzdWx0LmgiCisjaW5jbHVkZSAiV2ViVGhyZWFkLmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVx
dWVzdC5oIgogI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5o
IgpAQCAtMTE2Nyw2ICsxMTcxLDEwIEBAIFdlYlZpZXdIb3N0OjpXZWJWaWV3SG9zdChUZXN0U2hl
bGwqIHNoZWxsKQogICAgICwgbV9sYXN0UmVxdWVzdGVkVGV4dENoZWNraW5nQ29tcGxldGlvbigw
KQogewogICAgIFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOworCisgICAgbV9jb21wb3NpdG9y
VGhyZWFkID0gYWRvcHRQdHIoV2ViS2l0Ojp3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRl
VGhyZWFkKCJDb21wb3NpdG9yIikpOworICAgIFdlYkNvbXBvc2l0b3I6OnNldFRocmVhZChtX2Nv
bXBvc2l0b3JUaHJlYWQuZ2V0KCkpOworCiAgICAgcmVzZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKaW5kZXggNmYxZmE4YmYwZjVhY2UxODdk
Y2VlYzMyMGIyZWZkYTBjOGFlZGI4Mi4uOWZmMmUyNzNiZmI2MjU4ZGM3NTY3NmRkNTUwYmViOTcx
Nzg3MGMyYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5o
CkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s7CiBjbGFz
cyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI7CiBjbGFzcyBXZWJTcGVlY2hJbnB1dENvbnRyb2xs
ZXJNb2NrOwogY2xhc3MgV2ViU3BlZWNoSW5wdXRMaXN0ZW5lcjsKK2NsYXNzIFdlYlRocmVhZDsK
IGNsYXNzIFdlYlVSTDsKIHN0cnVjdCBXZWJSZWN0Owogc3RydWN0IFdlYlVSTEVycm9yOwpAQCAt
MzQ4LDYgKzM0OSw4IEBAIHByaXZhdGU6CiAgICAgV2ViS2l0OjpXZWJTdHJpbmcgbV9sYXN0UmVx
dWVzdGVkVGV4dENoZWNrU3RyaW5nOwogICAgIFdlYktpdDo6V2ViVGV4dENoZWNraW5nQ29tcGxl
dGlvbiogbV9sYXN0UmVxdWVzdGVkVGV4dENoZWNraW5nQ29tcGxldGlvbjsKIAorICAgIE93blB0
cjxXZWJLaXQ6OldlYlRocmVhZD4gbV9jb21wb3NpdG9yVGhyZWFkOworCiAgICAgVGFza0xpc3Qg
bV90YXNrTGlzdDsKICAgICBWZWN0b3I8V2ViS2l0OjpXZWJXaWRnZXQqPiBtX3BvcHVwbWVudXM7
CiB9Owo=
</data>
<flag name="review"
          id="106436"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="106460"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>