<?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>167272</bug_id>
          
          <creation_ts>2017-01-20 17:40:02 -0800</creation_ts>
          <short_desc>Require a button press on a gamepad for them to be exposed to the DOM</short_desc>
          <delta_ts>2017-01-31 21:38:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1268678</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-01-20 17:40:02 -0800</bug_when>
    <thetext>Require a button press on a gamepad for them to be exposed to the DOM

&lt;rdar://problem/28620919&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268679</commentid>
    <comment_count>1</comment_count>
      <attachid>299412</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-01-20 17:42:59 -0800</bug_when>
    <thetext>Created attachment 299412
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268692</commentid>
    <comment_count>2</comment_count>
      <attachid>299412</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-20 18:25:32 -0800</bug_when>
    <thetext>Comment on attachment 299412
Patch

Clearing flags on attachment: 299412

Committed r211007: &lt;http://trac.webkit.org/changeset/211007&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268693</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-20 18:25:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271595</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-01-30 23:26:16 -0800</bug_when>
    <thetext>Hmm, I&apos;m seeing this test as flakey on a lot of EWS bots this past week:
gamepad/gamepad-visibility-1.html

I&apos;m able to reproduce this locally, when I run the test 10 times it typically fails the first time and passes all the rest:

  $ run-webkit-tests --iterations=10 --exit-after-n-failures=1 gamepad/gamepad-visibility-1.html

When it fails I see:

--- /layout-test-results/gamepad/gamepad-visibility-1-expected.txt
+++ /layout-test-results/gamepad/gamepad-visibility-1-actual.txt
@@ -1,2 +1,2 @@
-No connect event seen in 20 run loop spins. Yay.
+Connect event seen! Should NOT have been seen

Before marking the test as flakey is there some debugging we can add to the test that would make it easier to investigate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271598</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-01-30 23:47:32 -0800</bug_when>
    <thetext>From the WebContentProcess side I see the dispatch via:

(lldb) bt
* thread #1, queue = &apos;com.apple.main-thread&apos;, stop reason = step over
    frame #0: WebCore`WebCore::GamepadManager::makeGamepadVisible(this=0x000000011910eb08, platformGamepad=0x00007fcfd0e05910, navigatorSet=0x000000011910eb18, domWindowSet=0x000000011910eb68) at GamepadManager.cpp:159
    frame #1: WebCore`WebCore::GamepadManager::platformGamepadConnected(this=0x000000011910eb08, platformGamepad=0x00007fcfd0e05910) at GamepadManager.cpp:76
    frame #2: WebKit`WebKit::WebGamepadProvider::gamepadConnected(this=0x000000010f64eb10, gamepadData=0x00007fff542baea8) at WebGamepadProvider.cpp:84
    frame #3: WebKit`WebKit::WebProcess::gamepadConnected(this=0x00007fcfd1006400, gamepadData=0x00007fff542baea8) at WebProcess.cpp:1026
    frame #4: WebKit`void IPC::callMemberFunctionImpl&lt;WebKit::WebProcess, void (WebKit::WebProcess::*)(WebKit::GamepadData const&amp;), std::__1::tuple&lt;WebKit::GamepadData&gt;, 0ul&gt;(object=0x00007fcfd1006400, function=40 70 ee 0e 01 00 00 00 00 00 00 00 00 00 00 00, args=0x00007fff542baea8, (null)=std::__1::index_sequence&lt;0UL&gt; @ 0x00007fff542badd0)(WebKit::GamepadData const&amp;), std::__1::tuple&lt;WebKit::GamepadData&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt;) at HandleMessage.h:40

Is there something that should be preventing the platformGamepadConnected here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272046</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-01-31 21:38:54 -0800</bug_when>
    <thetext>Ryan marked this as flakey (see bug 167517).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299412</attachid>
            <date>2017-01-20 17:42:59 -0800</date>
            <delta_ts>2017-01-20 18:25:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167272-20170120174106.patch</filename>
            <type>text/plain</type>
            <size>34048</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwODI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU0NDcwNjE1YzdkMGEy
NjdhYzBjNDAwNWM0MmU2NjNmYjgzOTQ0Zi4uYjRlNWE0OTE3MjRjNWQ2MDNkMmNlY2UyZGRjZDAz
ZDJlYWQ1MTVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTAxLTIwICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXF1aXJlIGEgYnV0dG9u
IHByZXNzIG9uIGEgZ2FtZXBhZCBmb3IgdGhlbSB0byBiZSBleHBvc2VkIHRvIHRoZSBET00uCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODYyMDkxOT4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0OiBnYW1lcGFkL2dhbWVwYWQtdmlzaWJpbGl0eS0xLmh0
bWwKKworICAgICAgICAqIE1vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHYW1lcGFkTWFuYWdlcjo6cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0
eSk6CisgICAgICAgICogTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmg6CisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHYW1lcGFkUHJvdmlkZXI6OmRpc3BhdGNoUGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0
eSk6CisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdhbWVwYWRQcm92aWRlcjo6fkdhbWVwYWRQcm92aWRlcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkUHJvdmlkZXI6OmlzTW9ja0dhbWVwYWRQcm92aWRl
cik6IERlbGV0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQcm92aWRl
ckNsaWVudC5oOgorCisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJv
bGxlckdhbWVwYWQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250
cm9sbGVyR2FtZXBhZC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVDb250cm9sbGVyR2FtZXBh
ZDo6c2V0dXBBc0V4dGVuZGVkR2FtZXBhZCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lQ29udHJv
bGxlckdhbWVwYWQ6OnNldHVwQXNHYW1lcGFkKToKKworICAgICAgICAqIHBsYXRmb3JtL2dhbWVw
YWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6R2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRIYWRJ
bnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlcjo6
aW5wdXROb3RpZmljYXRpb25UaW1lckZpcmVkKToKKworICAgICAgICAqIHBsYXRmb3JtL2dhbWVw
YWQvbWFjL0hJREdhbWVwYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZDo6dmFs
dWVDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkLmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZFByb3ZpZGVyOjp2YWx1ZXNDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRQcm92aWRlcjo6aW5wdXROb3RpZmljYXRpb25U
aW1lckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJv
dmlkZXIuaDoKKworICAgICAgICAqIHRlc3RpbmcvTW9ja0dhbWVwYWRQcm92aWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2NrR2FtZXBhZFByb3ZpZGVyOjpzZXRNb2NrR2FtZXBhZEJ1dHRv
blZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRJ
bnB1dEFjdGl2aXR5KToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tHYW1lcGFkUHJvdmlkZXIuaDoK
KwogMjAxNy0wMS0xNyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgS2lsbCB0aGUgcHJlc2VudGF0aW9uIGF0dHJpYnV0ZSBjYWNoZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBk
ZDAwNDkyZmMwMzVmYTdlM2ZlMWRhYjE2ZDNlMDYzOGRjMzU2OWJiLi44MDFlNDgzZmZlN2ZmZWQ2
NmYxMzlmNGI0OTA0NzJjODg1MDgyM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIw
MTctMDEtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJl
cXVpcmUgYSBidXR0b24gcHJlc3Mgb24gYSBnYW1lcGFkIGZvciB0aGVtIHRvIGJlIGV4cG9zZWQg
dG8gdGhlIERPTS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NjIwOTE5PiBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzI3MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0dhbWVwYWQvVUlH
YW1lcGFkUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVSUdhbWVwYWRQcm92aWRlcjo6
Z2FtZXBhZFN5bmNUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6VUlHYW1lcGFkUHJvdmlk
ZXI6OnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9H
YW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnYW1lcGFkQWN0aXZp
dHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKworICAgICAgICAqIFdl
YlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWRBY3Rpdml0eSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5oOgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnYW1lcGFk
QWN0aXZpdHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTctMDEt
MTcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFuIHVwZGF0
ZSB0byBvbmUgZ2FtZXBhZCdzIHZhbHVlcyBzaG91bGQgb25seSBjaGFuZ2UgdGhhdCBnYW1lcGFk
J3MgbW9kaWZpZWQgdGltZXN0YW1wLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Ft
ZXBhZC9HYW1lcGFkTWFuYWdlci5jcHAKaW5kZXggMWMzNGQzZGQzMGFiZWQ4NzE2NmEyZGYxYzBh
NzViZDllYzkyMWU3MS4uYjJlY2JhMTk2MjFmYzhiMTQxNThjYTI5MzVhMjAyZTA5YzI2NjhiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIu
Y3BwCkBAIC0xMTUsOCArMTE1LDExIEBAIHZvaWQgR2FtZXBhZE1hbmFnZXI6OnBsYXRmb3JtR2Ft
ZXBhZERpc2Nvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmIHBsYXRmb3JtR2FtZXBhCiAgICAgfQog
fQogCi12b2lkIEdhbWVwYWRNYW5hZ2VyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KCkK
K3ZvaWQgR2FtZXBhZE1hbmFnZXI6OnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoYm9vbCBz
aG91bGRNYWtlR2FtZXBhZFZpc2libGUpCiB7CisgICAgaWYgKCFzaG91bGRNYWtlR2FtZXBhZFZp
c2libGUpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChtX2dhbWVwYWRCbGluZE5hdmlnYXRv
cnMuaXNFbXB0eSgpICYmIG1fZ2FtZXBhZEJsaW5kRE9NV2luZG93cy5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFk
L0dhbWVwYWRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBh
ZE1hbmFnZXIuaAppbmRleCA5ZWU3ZDlhN2E4NzZhZjA2NDY5ZmM2OWU1OWU4Y2FiNDdkNmVmMzlm
Li42M2I2NmZhNmRkZTFjNjRkZDZmZGIyYmQ2NDJjOGNjNWMwNDQyMzJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuaApAQCAtNDcsNyArNDcs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZChQbGF0Zm9y
bUdhbWVwYWQmKSBmaW5hbDsKICAgICB2b2lkIHBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZChQ
bGF0Zm9ybUdhbWVwYWQmKSBmaW5hbDsKLSAgICB2b2lkIHBsYXRmb3JtR2FtZXBhZElucHV0QWN0
aXZpdHkoKSBmaW5hbDsKKyAgICB2b2lkIHBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoYm9v
bCBzaG91bGRNYWtlR2FtZXBhZFZpc2libGUpIGZpbmFsOwogCiAgICAgdm9pZCByZWdpc3Rlck5h
dmlnYXRvcihOYXZpZ2F0b3JHYW1lcGFkKik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyTmF2aWdhdG9y
KE5hdmlnYXRvckdhbWVwYWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dh
bWVwYWQvR2FtZXBhZFByb3ZpZGVyLmNwcAppbmRleCA4ODYxYTBlYWY1Y2ZlNzYzNDFiODM2NDVj
ZDRiNGQ2OWM4NDA0YWY0Li43OWM0N2FmNDZmMTNkYzNjYTBhMzg0MTBhNDUxMGFiYWYxYTM5ZDZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQcm92
aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJv
dmlkZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAKICNpbmNs
dWRlICJFbXB0eUdhbWVwYWRQcm92aWRlci5oIgorI2luY2x1ZGUgIkdhbWVwYWRQcm92aWRlckNs
aWVudC5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC00OSw2ICs1MCwxNCBAQCB2b2lkIEdhbWVwYWRQcm92aWRlcjo6c2V0U2hhcmVk
UHJvdmlkZXIoR2FtZXBhZFByb3ZpZGVyJiBuZXdQcm92aWRlcikKICAgICBzaGFyZWRQcm92aWRl
ciA9ICZuZXdQcm92aWRlcjsKIH0KIAordm9pZCBHYW1lcGFkUHJvdmlkZXI6OmRpc3BhdGNoUGxh
dGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSgpCit7CisgICAgZm9yIChhdXRvJiBjbGllbnQgOiBt
X2NsaWVudHMpCisgICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSht
X3Nob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpOworCisgICAgbV9zaG91bGRNYWtlR2FtZXBhZHNW
aXNpYmxlID0gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShHQU1FUEFEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2Ft
ZXBhZC9HYW1lcGFkUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQv
R2FtZXBhZFByb3ZpZGVyLmgKaW5kZXggMDkxNTZhN2FjN2U5ZTY2MTAzNjYzOGU4NDVmMGI3ZTNk
MDc5ZTFjNi4uMWQ1MGYyYzE0ZWJkZWM4YWU2YTc4OWFjYjYyMjRlZmMyOTlkZDI3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQcm92aWRlci5oCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKIAorI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zNCw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdhbWVwYWRQcm92
aWRlckNsaWVudDsKIGNsYXNzIFBsYXRmb3JtR2FtZXBhZDsKIAotY2xhc3MgR2FtZXBhZFByb3Zp
ZGVyIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEdhbWVwYWRQcm92aWRlciB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+R2FtZXBhZFByb3ZpZGVyKCkgeyB9CiAKQEAgLTQ2LDYgKzQ3LDEzIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxQbGF0Zm9ybUdhbWVwYWQqPiYgcGxhdGZv
cm1HYW1lcGFkcygpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb2NrR2FtZXBhZFByb3ZpZGVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorcHJvdGVjdGVkOgorICAgIHZvaWQgZGlzcGF0
Y2hQbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KCk7CisgICAgdm9pZCBzZXRTaG91bGRNYWtl
R2FtZXBhZHNWaXNpYmlsZSgpIHsgbV9zaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlID0gdHJ1ZTsg
fQorICAgIEhhc2hTZXQ8R2FtZXBhZFByb3ZpZGVyQ2xpZW50Kj4gbV9jbGllbnRzOworCitwcml2
YXRlOgorICAgIGJvb2wgbV9zaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlIHsgZmFsc2UgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQcm92aWRlckNsaWVudC5oCmluZGV4IDAxYTJjZWNlYTU1
YmY1N2ZmZDhkZDE5MjI2ZjZmNTg1YTUwYjg3ODcuLjYzZWE0NmNkN2FmNDEwY2FkNjA1MTdhMzBl
M2I2NzExOTVhY2E1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVw
YWQvR2FtZXBhZFByb3ZpZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2FtZXBhZC9HYW1lcGFkUHJvdmlkZXJDbGllbnQuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldEluaXRpYWxDb25uZWN0ZWRHYW1lcGFkcyhjb25zdCBWZWN0
b3I8UGxhdGZvcm1HYW1lcGFkKj4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1HYW1l
cGFkQ29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGxh
dGZvcm1HYW1lcGFkRGlzY29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgcGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgcGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eShib29sIHNob3VsZE1ha2VHYW1lcGFk
VmlzaWJsZSkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVw
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xs
ZXJHYW1lcGFkLmgKaW5kZXggOTk0ZDk3MmVkYjQwMWYyOTA1ZmM1YmU4MTVkYmRjOTZmMDhhOTAz
Ny4uNDYxMWNlMTU4ZDFjNjhmM2IyOTg0YTI1YzNlNDYyNWJhM2FmOGZkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVw
YWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250
cm9sbGVyR2FtZXBhZC5oCkBAIC01OCw2ICs1OCw4IEBAIHByaXZhdGU6CiAKICAgICBSZXRhaW5Q
dHI8R0NHYW1lcGFkPiBtX2dhbWVwYWQ7CiAgICAgUmV0YWluUHRyPEdDRXh0ZW5kZWRHYW1lcGFk
PiBtX2V4dGVuZGVkR2FtZXBhZDsKKworICAgIGJvb2wgbV9oYWRCdXR0b25QcmVzc2VzIHsgZmFs
c2UgfTsKIH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBh
ZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZC5tbQppbmRleCAxZjI1MmY0YmNl
NjJlMGY5ODljN2IwNzUyZDIxMWJhMjM5YjEzMzEzLi4yOTk1MGJhZGJkN2UwNTA4ZjM3YjhiMzU1
N2VmYTBlMGU2ODk2OGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1l
cGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZC5tbQpAQCAtNTksNyAr
NTksOCBAQCB2b2lkIEdhbWVDb250cm9sbGVyR2FtZXBhZDo6c2V0dXBBc0V4dGVuZGVkR2FtZXBh
ZCgpCiAKICAgICBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS52YWx1ZUNoYW5nZWRIYW5kbGVyID0g
XihHQ0V4dGVuZGVkR2FtZXBhZCAqLCBHQ0NvbnRyb2xsZXJFbGVtZW50ICopIHsKICAgICAgICAg
bV9sYXN0VXBkYXRlVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwotICAgICAg
ICBHYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9uKCkuZ2FtZXBhZEhhZElu
cHV0KCp0aGlzKTsKKyAgICAgICAgR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXI6OnNpbmds
ZXRvbigpLmdhbWVwYWRIYWRJbnB1dCgqdGhpcywgbV9oYWRCdXR0b25QcmVzc2VzKTsKKyAgICAg
ICAgbV9oYWRCdXR0b25QcmVzc2VzID0gZmFsc2U7CiAgICAgfTsKIAogICAgIG1fYnV0dG9uVmFs
dWVzLnJlc2l6ZSg4KTsKQEAgLTgwLDI5ICs4MSw0NSBAQCB2b2lkIEdhbWVDb250cm9sbGVyR2Ft
ZXBhZDo6c2V0dXBBc0V4dGVuZGVkR2FtZXBhZCgpCiAgICAgbV9heGlzVmFsdWVzWzRdID0gbV9l
eHRlbmRlZEdhbWVwYWQuZ2V0KCkuZHBhZC54QXhpcy52YWx1ZTsKICAgICBtX2F4aXNWYWx1ZXNb
NV0gPSBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5kcGFkLnlBeGlzLnZhbHVlOwogCi0gICAgbV9l
eHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uQS52YWx1ZUNoYW5nZWRIYW5kbGVyID0gXihHQ0Nv
bnRyb2xsZXJCdXR0b25JbnB1dCAqLCBmbG9hdCB2YWx1ZSwgQk9PTCkgeworICAgIG1fZXh0ZW5k
ZWRHYW1lcGFkLmdldCgpLmJ1dHRvbkEudmFsdWVDaGFuZ2VkSGFuZGxlciA9IF4oR0NDb250cm9s
bGVyQnV0dG9uSW5wdXQgKiwgZmxvYXQgdmFsdWUsIEJPT0wgcHJlc3NlZCkgewogICAgICAgICBt
X2J1dHRvblZhbHVlc1swXSA9IHZhbHVlOworICAgICAgICBpZiAocHJlc3NlZCkKKyAgICAgICAg
ICAgIG1faGFkQnV0dG9uUHJlc3NlcyA9IHRydWU7CiAgICAgfTsKLSAgICBtX2V4dGVuZGVkR2Ft
ZXBhZC5nZXQoKS5idXR0b25CLnZhbHVlQ2hhbmdlZEhhbmRsZXIgPSBeKEdDQ29udHJvbGxlckJ1
dHRvbklucHV0ICosIGZsb2F0IHZhbHVlLCBCT09MKSB7CisgICAgbV9leHRlbmRlZEdhbWVwYWQu
Z2V0KCkuYnV0dG9uQi52YWx1ZUNoYW5nZWRIYW5kbGVyID0gXihHQ0NvbnRyb2xsZXJCdXR0b25J
bnB1dCAqLCBmbG9hdCB2YWx1ZSwgQk9PTCBwcmVzc2VkKSB7CiAgICAgICAgIG1fYnV0dG9uVmFs
dWVzWzFdID0gdmFsdWU7CisgICAgICAgIGlmIChwcmVzc2VkKQorICAgICAgICAgICAgbV9oYWRC
dXR0b25QcmVzc2VzID0gdHJ1ZTsKICAgICB9OwotICAgIG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgp
LmJ1dHRvblgudmFsdWVDaGFuZ2VkSGFuZGxlciA9IF4oR0NDb250cm9sbGVyQnV0dG9uSW5wdXQg
KiwgZmxvYXQgdmFsdWUsIEJPT0wpIHsKKyAgICBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5idXR0
b25YLnZhbHVlQ2hhbmdlZEhhbmRsZXIgPSBeKEdDQ29udHJvbGxlckJ1dHRvbklucHV0ICosIGZs
b2F0IHZhbHVlLCBCT09MIHByZXNzZWQpIHsKICAgICAgICAgbV9idXR0b25WYWx1ZXNbMl0gPSB2
YWx1ZTsKKyAgICAgICAgaWYgKHByZXNzZWQpCisgICAgICAgICAgICBtX2hhZEJ1dHRvblByZXNz
ZXMgPSB0cnVlOwogICAgIH07Ci0gICAgbV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uWS52
YWx1ZUNoYW5nZWRIYW5kbGVyID0gXihHQ0NvbnRyb2xsZXJCdXR0b25JbnB1dCAqLCBmbG9hdCB2
YWx1ZSwgQk9PTCkgeworICAgIG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmJ1dHRvblkudmFsdWVD
aGFuZ2VkSGFuZGxlciA9IF4oR0NDb250cm9sbGVyQnV0dG9uSW5wdXQgKiwgZmxvYXQgdmFsdWUs
IEJPT0wgcHJlc3NlZCkgewogICAgICAgICBtX2J1dHRvblZhbHVlc1szXSA9IHZhbHVlOworICAg
ICAgICBpZiAocHJlc3NlZCkKKyAgICAgICAgICAgIG1faGFkQnV0dG9uUHJlc3NlcyA9IHRydWU7
CiAgICAgfTsKLSAgICBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5sZWZ0U2hvdWxkZXIudmFsdWVD
aGFuZ2VkSGFuZGxlciA9IF4oR0NDb250cm9sbGVyQnV0dG9uSW5wdXQgKiwgZmxvYXQgdmFsdWUs
IEJPT0wpIHsKKyAgICBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5sZWZ0U2hvdWxkZXIudmFsdWVD
aGFuZ2VkSGFuZGxlciA9IF4oR0NDb250cm9sbGVyQnV0dG9uSW5wdXQgKiwgZmxvYXQgdmFsdWUs
IEJPT0wgcHJlc3NlZCkgewogICAgICAgICBtX2J1dHRvblZhbHVlc1s0XSA9IHZhbHVlOworICAg
ICAgICBpZiAocHJlc3NlZCkKKyAgICAgICAgICAgIG1faGFkQnV0dG9uUHJlc3NlcyA9IHRydWU7
CiAgICAgfTsKLSAgICBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5yaWdodFNob3VsZGVyLnZhbHVl
Q2hhbmdlZEhhbmRsZXIgPSBeKEdDQ29udHJvbGxlckJ1dHRvbklucHV0ICosIGZsb2F0IHZhbHVl
LCBCT09MKSB7CisgICAgbV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkucmlnaHRTaG91bGRlci52YWx1
ZUNoYW5nZWRIYW5kbGVyID0gXihHQ0NvbnRyb2xsZXJCdXR0b25JbnB1dCAqLCBmbG9hdCB2YWx1
ZSwgQk9PTCBwcmVzc2VkKSB7CiAgICAgICAgIG1fYnV0dG9uVmFsdWVzWzVdID0gdmFsdWU7Cisg
ICAgICAgIGlmIChwcmVzc2VkKQorICAgICAgICAgICAgbV9oYWRCdXR0b25QcmVzc2VzID0gdHJ1
ZTsKICAgICB9OwotICAgIG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmxlZnRUcmlnZ2VyLnZhbHVl
Q2hhbmdlZEhhbmRsZXIgPSBeKEdDQ29udHJvbGxlckJ1dHRvbklucHV0ICosIGZsb2F0IHZhbHVl
LCBCT09MKSB7CisgICAgbV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkubGVmdFRyaWdnZXIudmFsdWVD
aGFuZ2VkSGFuZGxlciA9IF4oR0NDb250cm9sbGVyQnV0dG9uSW5wdXQgKiwgZmxvYXQgdmFsdWUs
IEJPT0wgcHJlc3NlZCkgewogICAgICAgICBtX2J1dHRvblZhbHVlc1s2XSA9IHZhbHVlOworICAg
ICAgICBpZiAocHJlc3NlZCkKKyAgICAgICAgICAgIG1faGFkQnV0dG9uUHJlc3NlcyA9IHRydWU7
CiAgICAgfTsKLSAgICBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5yaWdodFRyaWdnZXIudmFsdWVD
aGFuZ2VkSGFuZGxlciA9IF4oR0NDb250cm9sbGVyQnV0dG9uSW5wdXQgKiwgZmxvYXQgdmFsdWUs
IEJPT0wpIHsKKyAgICBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5yaWdodFRyaWdnZXIudmFsdWVD
aGFuZ2VkSGFuZGxlciA9IF4oR0NDb250cm9sbGVyQnV0dG9uSW5wdXQgKiwgZmxvYXQgdmFsdWUs
IEJPT0wgcHJlc3NlZCkgewogICAgICAgICBtX2J1dHRvblZhbHVlc1s3XSA9IHZhbHVlOworICAg
ICAgICBpZiAocHJlc3NlZCkKKyAgICAgICAgICAgIG1faGFkQnV0dG9uUHJlc3NlcyA9IHRydWU7
CiAgICAgfTsKIAogICAgIG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmxlZnRUaHVtYnN0aWNrLnhB
eGlzLnZhbHVlQ2hhbmdlZEhhbmRsZXIgPSBeKEdDQ29udHJvbGxlckF4aXNJbnB1dCAqLCBmbG9h
dCB2YWx1ZSkgewpAQCAtMTMzLDcgKzE1MCw4IEBAIHZvaWQgR2FtZUNvbnRyb2xsZXJHYW1lcGFk
OjpzZXR1cEFzR2FtZXBhZCgpCiAKICAgICBtX2dhbWVwYWQuZ2V0KCkudmFsdWVDaGFuZ2VkSGFu
ZGxlciA9IF4oR0NHYW1lcGFkICosIEdDQ29udHJvbGxlckVsZW1lbnQgKikgewogICAgICAgICBt
X2xhc3RVcGRhdGVUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgICAg
IEdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjpzaW5nbGV0b24oKS5nYW1lcGFkSGFkSW5w
dXQoKnRoaXMpOworICAgICAgICBHYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlcjo6c2luZ2xl
dG9uKCkuZ2FtZXBhZEhhZElucHV0KCp0aGlzLCBtX2hhZEJ1dHRvblByZXNzZXMpOworICAgICAg
ICBtX2hhZEJ1dHRvblByZXNzZXMgPSBmYWxzZTsKICAgICB9OwogCiAgICAgbV9idXR0b25WYWx1
ZXMucmVzaXplKDYpOwpAQCAtMTQ4LDIzICsxNjYsMzUgQEAgdm9pZCBHYW1lQ29udHJvbGxlckdh
bWVwYWQ6OnNldHVwQXNHYW1lcGFkKCkKICAgICBtX2F4aXNWYWx1ZXNbMF0gPSBtX2V4dGVuZGVk
R2FtZXBhZC5nZXQoKS5kcGFkLnhBeGlzLnZhbHVlOwogICAgIG1fYXhpc1ZhbHVlc1sxXSA9IG1f
ZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmRwYWQueUF4aXMudmFsdWU7CiAKLSAgICBtX2V4dGVuZGVk
R2FtZXBhZC5nZXQoKS5idXR0b25BLnZhbHVlQ2hhbmdlZEhhbmRsZXIgPSBeKEdDQ29udHJvbGxl
ckJ1dHRvbklucHV0ICosIGZsb2F0IHZhbHVlLCBCT09MKSB7CisgICAgbV9leHRlbmRlZEdhbWVw
YWQuZ2V0KCkuYnV0dG9uQS52YWx1ZUNoYW5nZWRIYW5kbGVyID0gXihHQ0NvbnRyb2xsZXJCdXR0
b25JbnB1dCAqLCBmbG9hdCB2YWx1ZSwgQk9PTCBwcmVzc2VkKSB7CiAgICAgICAgIG1fYnV0dG9u
VmFsdWVzWzBdID0gdmFsdWU7CisgICAgICAgIGlmIChwcmVzc2VkKQorICAgICAgICAgICAgbV9o
YWRCdXR0b25QcmVzc2VzID0gdHJ1ZTsKICAgICB9OwotICAgIG1fZXh0ZW5kZWRHYW1lcGFkLmdl
dCgpLmJ1dHRvbkIudmFsdWVDaGFuZ2VkSGFuZGxlciA9IF4oR0NDb250cm9sbGVyQnV0dG9uSW5w
dXQgKiwgZmxvYXQgdmFsdWUsIEJPT0wpIHsKKyAgICBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5i
dXR0b25CLnZhbHVlQ2hhbmdlZEhhbmRsZXIgPSBeKEdDQ29udHJvbGxlckJ1dHRvbklucHV0ICos
IGZsb2F0IHZhbHVlLCBCT09MIHByZXNzZWQpIHsKICAgICAgICAgbV9idXR0b25WYWx1ZXNbMV0g
PSB2YWx1ZTsKKyAgICAgICAgaWYgKHByZXNzZWQpCisgICAgICAgICAgICBtX2hhZEJ1dHRvblBy
ZXNzZXMgPSB0cnVlOwogICAgIH07Ci0gICAgbV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9u
WC52YWx1ZUNoYW5nZWRIYW5kbGVyID0gXihHQ0NvbnRyb2xsZXJCdXR0b25JbnB1dCAqLCBmbG9h
dCB2YWx1ZSwgQk9PTCkgeworICAgIG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmJ1dHRvblgudmFs
dWVDaGFuZ2VkSGFuZGxlciA9IF4oR0NDb250cm9sbGVyQnV0dG9uSW5wdXQgKiwgZmxvYXQgdmFs
dWUsIEJPT0wgcHJlc3NlZCkgewogICAgICAgICBtX2J1dHRvblZhbHVlc1syXSA9IHZhbHVlOwor
ICAgICAgICBpZiAocHJlc3NlZCkKKyAgICAgICAgICAgIG1faGFkQnV0dG9uUHJlc3NlcyA9IHRy
dWU7CiAgICAgfTsKLSAgICBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5idXR0b25ZLnZhbHVlQ2hh
bmdlZEhhbmRsZXIgPSBeKEdDQ29udHJvbGxlckJ1dHRvbklucHV0ICosIGZsb2F0IHZhbHVlLCBC
T09MKSB7CisgICAgbV9leHRlbmRlZEdhbWVwYWQuZ2V0KCkuYnV0dG9uWS52YWx1ZUNoYW5nZWRI
YW5kbGVyID0gXihHQ0NvbnRyb2xsZXJCdXR0b25JbnB1dCAqLCBmbG9hdCB2YWx1ZSwgQk9PTCBw
cmVzc2VkKSB7CiAgICAgICAgIG1fYnV0dG9uVmFsdWVzWzNdID0gdmFsdWU7CisgICAgICAgIGlm
IChwcmVzc2VkKQorICAgICAgICAgICAgbV9oYWRCdXR0b25QcmVzc2VzID0gdHJ1ZTsKICAgICB9
OwotICAgIG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmxlZnRTaG91bGRlci52YWx1ZUNoYW5nZWRI
YW5kbGVyID0gXihHQ0NvbnRyb2xsZXJCdXR0b25JbnB1dCAqLCBmbG9hdCB2YWx1ZSwgQk9PTCkg
eworICAgIG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLmxlZnRTaG91bGRlci52YWx1ZUNoYW5nZWRI
YW5kbGVyID0gXihHQ0NvbnRyb2xsZXJCdXR0b25JbnB1dCAqLCBmbG9hdCB2YWx1ZSwgQk9PTCBw
cmVzc2VkKSB7CiAgICAgICAgIG1fYnV0dG9uVmFsdWVzWzRdID0gdmFsdWU7CisgICAgICAgIGlm
IChwcmVzc2VkKQorICAgICAgICAgICAgbV9oYWRCdXR0b25QcmVzc2VzID0gdHJ1ZTsKICAgICB9
OwotICAgIG1fZXh0ZW5kZWRHYW1lcGFkLmdldCgpLnJpZ2h0U2hvdWxkZXIudmFsdWVDaGFuZ2Vk
SGFuZGxlciA9IF4oR0NDb250cm9sbGVyQnV0dG9uSW5wdXQgKiwgZmxvYXQgdmFsdWUsIEJPT0wp
IHsKKyAgICBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5yaWdodFNob3VsZGVyLnZhbHVlQ2hhbmdl
ZEhhbmRsZXIgPSBeKEdDQ29udHJvbGxlckJ1dHRvbklucHV0ICosIGZsb2F0IHZhbHVlLCBCT09M
IHByZXNzZWQpIHsKICAgICAgICAgbV9idXR0b25WYWx1ZXNbNV0gPSB2YWx1ZTsKKyAgICAgICAg
aWYgKHByZXNzZWQpCisgICAgICAgICAgICBtX2hhZEJ1dHRvblByZXNzZXMgPSB0cnVlOwogICAg
IH07CiAKICAgICBtX2V4dGVuZGVkR2FtZXBhZC5nZXQoKS5sZWZ0VGh1bWJzdGljay54QXhpcy52
YWx1ZUNoYW5nZWRIYW5kbGVyID0gXihHQ0NvbnRyb2xsZXJBeGlzSW5wdXQgKiwgZmxvYXQgdmFs
dWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvY29jb2Ev
R2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIuaAppbmRleCBhZjAx
YjhkMWY0ZGM3OWM4ZTU3YTIxMGNmMmVmNTM5MDBkNzhhNjQ3Li41MjBkNWMxMzMzMTFlMmFhM2Nh
M2IxMzZiOTIxZTJlOWY5YjFjNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWRQ
cm92aWRlci5oCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRlICJHYW1lcGFkUHJvdmlkZXIu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CkBAIC01NSw3ICs1NCw3IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BNb25pdG9yaW5nSW5wdXQoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN0YXJ0TW9uaXRvcmluZ0lucHV0KCk7CiAKLSAgICB2b2lkIGdhbWVwYWRI
YWRJbnB1dChHYW1lQ29udHJvbGxlckdhbWVwYWQmKTsKKyAgICB2b2lkIGdhbWVwYWRIYWRJbnB1
dChHYW1lQ29udHJvbGxlckdhbWVwYWQmLCBib29sIGhhZEJ1dHRvblByZXNzZXMpOwogCiBwcml2
YXRlOgogICAgIEdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyKCk7CkBAIC03NCw4ICs3Myw2
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG1ha2VJbnZpc2liaWxlR2FtZXBhZHNWaXNpYmxlKCk7
CiAKLSAgICBIYXNoU2V0PEdhbWVwYWRQcm92aWRlckNsaWVudCo+IG1fY2xpZW50czsKLQogICAg
IEhhc2hNYXA8R0NDb250cm9sbGVyICosIHN0ZDo6dW5pcXVlX3B0cjxHYW1lQ29udHJvbGxlckdh
bWVwYWQ+PiBtX2dhbWVwYWRNYXA7CiAgICAgVmVjdG9yPFBsYXRmb3JtR2FtZXBhZCo+IG1fZ2Ft
ZXBhZFZlY3RvcjsKICAgICBIYXNoU2V0PFBsYXRmb3JtR2FtZXBhZCo+IG1faW52aXNpYmxlR2Ft
ZXBhZHM7CkBAIC04NCw2ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0
PiBtX2Rpc2Nvbm5lY3RPYnNlcnZlcjsKIAogICAgIFJ1bkxvb3A6OlRpbWVyPEdhbWVDb250cm9s
bGVyR2FtZXBhZFByb3ZpZGVyPiBtX2lucHV0Tm90aWZpY2F0aW9uVGltZXI7CisgICAgYm9vbCBt
X3Nob3VsZE1ha2VJbnZpc2liaWxlR2FtZXBhZHNWaXNpYmxlIHsgZmFsc2UgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3Zp
ZGVyLm1tCmluZGV4IDZhNTNmMTIyOTIxOWY0OGNlYzk3MjI4NGQyYjU5YzdkOGEyYTlkOTAuLjUx
NWYzZTRlYjFmOTY0NGFkNGQ3YWFkYmFkZTZjNWYxMDkwZjM3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJv
dmlkZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1l
Q29udHJvbGxlckdhbWVwYWRQcm92aWRlci5tbQpAQCAtMTQxLDEwICsxNDEsMTMgQEAgdW5zaWdu
ZWQgR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXI6OmluZGV4Rm9yTmV3bHlDb25uZWN0ZWRE
ZXZpY2UoKQogICAgIHJldHVybiBpbmRleDsKIH0KIAotdm9pZCBHYW1lQ29udHJvbGxlckdhbWVw
YWRQcm92aWRlcjo6Z2FtZXBhZEhhZElucHV0KEdhbWVDb250cm9sbGVyR2FtZXBhZCYpCit2b2lk
IEdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkSGFkSW5wdXQoR2FtZUNvbnRy
b2xsZXJHYW1lcGFkJiwgYm9vbCBoYWRCdXR0b25QcmVzc2VzKQogewogICAgIGlmICghbV9pbnB1
dE5vdGlmaWNhdGlvblRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1faW5wdXROb3RpZmljYXRp
b25UaW1lci5zdGFydE9uZVNob3QoSW5wdXROb3RpZmljYXRpb25EZWxheSk7CisKKyAgICBpZiAo
aGFkQnV0dG9uUHJlc3NlcykKKyAgICAgICAgbV9zaG91bGRNYWtlSW52aXNpYmlsZUdhbWVwYWRz
VmlzaWJsZSA9IHRydWU7CiB9CiAKIHZvaWQgR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXI6
Om1ha2VJbnZpc2liaWxlR2FtZXBhZHNWaXNpYmxlKCkKQEAgLTE1OSwxMCArMTYyLDE0IEBAIHZv
aWQgR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXI6Om1ha2VJbnZpc2liaWxlR2FtZXBhZHNW
aXNpYmxlKCkKIAogdm9pZCBHYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlcjo6aW5wdXROb3Rp
ZmljYXRpb25UaW1lckZpcmVkKCkKIHsKLSAgICBtYWtlSW52aXNpYmlsZUdhbWVwYWRzVmlzaWJs
ZSgpOworICAgIGlmIChtX3Nob3VsZE1ha2VJbnZpc2liaWxlR2FtZXBhZHNWaXNpYmxlKSB7Cisg
ICAgICAgIHNldFNob3VsZE1ha2VHYW1lcGFkc1Zpc2liaWxlKCk7CisgICAgICAgIG1ha2VJbnZp
c2liaWxlR2FtZXBhZHNWaXNpYmxlKCk7CisgICAgfQogCi0gICAgZm9yIChhdXRvJiBjbGllbnQg
OiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0
eSgpOworICAgIG1fc2hvdWxkTWFrZUludmlzaWJpbGVHYW1lcGFkc1Zpc2libGUgPSBmYWxzZTsK
KworICAgIGRpc3BhdGNoUGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSgpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
YW1lcGFkL21hYy9ISURHYW1lcGFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVw
YWQvbWFjL0hJREdhbWVwYWQuY3BwCmluZGV4IGQwYWFlYzI0ZTRhZjM5NzAzODA3ODE3M2Y3NmUy
ZmVhZTI1ZGIxZWYuLjgzN2EzOThkMzI3NDc1NGI1ODhkMzhhMWEyZGUwNmMyMjVmMzU5ZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQu
Y3BwCkBAIC0xNTgsMTQgKzE1OCwxNCBAQCBib29sIEhJREdhbWVwYWQ6Om1heWJlQWRkQXhpcyhJ
T0hJREVsZW1lbnRSZWYgZWxlbWVudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBISURH
YW1lcGFkOjp2YWx1ZUNoYW5nZWQoSU9ISURWYWx1ZVJlZiB2YWx1ZSkKK0hJRElucHV0VHlwZSBI
SURHYW1lcGFkOjp2YWx1ZUNoYW5nZWQoSU9ISURWYWx1ZVJlZiB2YWx1ZSkKIHsKICAgICBJT0hJ
REVsZW1lbnRDb29raWUgY29va2llID0gSU9ISURFbGVtZW50R2V0Q29va2llKElPSElEVmFsdWVH
ZXRFbGVtZW50KHZhbHVlKSk7CiAgICAgSElER2FtZXBhZEVsZW1lbnQqIGVsZW1lbnQgPSBtX2Vs
ZW1lbnRNYXAuZ2V0KGNvb2tpZSk7CiAKICAgICAvLyBUaGlzIG1pZ2h0IGJlIGFuIGVsZW1lbnQg
d2UgZG9uJ3QgY3VycmVudGx5IGhhbmRsZSBhcyBpbnB1dCBzbyB3ZSBjYW4gc2tpcCBpdC4KICAg
ICBpZiAoIWVsZW1lbnQpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIEhJRElucHV0
VHlwZTo6Tm90QUJ1dHRvblByZXNzOwogCiAgICAgZWxlbWVudC0+cmF3VmFsdWUgPSBJT0hJRFZh
bHVlR2V0U2NhbGVkVmFsdWUodmFsdWUsIGtJT0hJRFZhbHVlU2NhbGVUeXBlUGh5c2ljYWwpOwog
CkBAIC0xODMsNiArMTgzLDggQEAgdm9pZCBISURHYW1lcGFkOjp2YWx1ZUNoYW5nZWQoSU9ISURW
YWx1ZVJlZiB2YWx1ZSkKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKICAgICBtX2xh
c3RVcGRhdGVUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisKKyAgICByZXR1
cm4gZWxlbWVudC0+aXNCdXR0b24oKSA/IEhJRElucHV0VHlwZTo6QnV0dG9uUHJlc3MgOiBISURJ
bnB1dFR5cGU6Ok5vdEFCdXR0b25QcmVzczsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBh
ZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZC5oCmlu
ZGV4IDI4NDAyYzVmYTZlYmM3ZTM2NjMxOGJiN2Y4OWMxMzQ3MGNhMjViMGUuLjQzYWU3NDk5ZWJk
ZGU0NDBhZjk5MDRlYWViZTU4NGEwN2RmMmNmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkLmgKQEAgLTkxLDEzICs5MSwxOCBAQCBzdHJ1
Y3QgSElER2FtZXBhZEF4aXMgOiBISURHYW1lcGFkRWxlbWVudCB7CiAgICAgfQogfTsKIAorZW51
bSBjbGFzcyBISURJbnB1dFR5cGUgeworICAgIEJ1dHRvblByZXNzLAorICAgIE5vdEFCdXR0b25Q
cmVzcywKK307CisKIGNsYXNzIEhJREdhbWVwYWQgOiBwdWJsaWMgUGxhdGZvcm1HYW1lcGFkIHsK
IHB1YmxpYzoKICAgICBISURHYW1lcGFkKElPSElERGV2aWNlUmVmLCB1bnNpZ25lZCBpbmRleCk7
CiAKICAgICBJT0hJRERldmljZVJlZiBoaWREZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2hpZERl
dmljZS5nZXQoKTsgfQogCi0gICAgdm9pZCB2YWx1ZUNoYW5nZWQoSU9ISURWYWx1ZVJlZik7Cisg
ICAgSElESW5wdXRUeXBlIHZhbHVlQ2hhbmdlZChJT0hJRFZhbHVlUmVmKTsKIAogICAgIGNvbnN0
IFZlY3Rvcjxkb3VibGU+JiBheGlzVmFsdWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9heGlz
VmFsdWVzOyB9CiAgICAgY29uc3QgVmVjdG9yPGRvdWJsZT4mIGJ1dHRvblZhbHVlcygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fYnV0dG9uVmFsdWVzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcAppbmRl
eCAwZDhhNzlhMDUwZDE4YWE4NzA4OWU5NThlODEyMTRlMWNkZmIxNGViLi5mNjU5NjA1OTlmZTFh
ZGIwY2I4Mzk4MTI0ZjI2YzI1NTYwZjFkZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTIz
Nyw3ICsyMzcsOCBAQCB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6dmFsdWVzQ2hhbmdlZChJT0hJ
RFZhbHVlUmVmIHZhbHVlKQogICAgIGlmICghZ2FtZXBhZCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgZ2FtZXBhZC0+dmFsdWVDaGFuZ2VkKHZhbHVlKTsKKyAgICBpZiAoZ2FtZXBhZC0+dmFsdWVD
aGFuZ2VkKHZhbHVlKSA9PSBISURJbnB1dFR5cGU6OkJ1dHRvblByZXNzKQorICAgICAgICBzZXRT
aG91bGRNYWtlR2FtZXBhZHNWaXNpYmlsZSgpOwogCiAgICAgLy8gVGhpcyBpc0FjdGl2ZSBjaGVj
ayBpcyBuZWNlc3NhcnkgYXMgd2Ugd2FudCB0byBkZWxheSBpbnB1dCBub3RpZmljYXRpb25zIGZy
b20gdGhlIHRpbWUgb2YgdGhlIGZpcnN0IGlucHV0LAogICAgIC8vIGFuZCBub3QgcHVzaCB0aGUg
bm90aWZpY2F0aW9uIG91dCBvbiBldmVyeSBzdWJzZXF1ZW50IGlucHV0LgpAQCAtMjUwLDggKzI1
MSw3IEBAIHZvaWQgSElER2FtZXBhZFByb3ZpZGVyOjppbnB1dE5vdGlmaWNhdGlvblRpbWVyRmly
ZWQoKQogICAgIGlmICghbV9zaG91bGREaXNwYXRjaENhbGxiYWNrcykKICAgICAgICAgcmV0dXJu
OwogCi0gICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+
cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSgpOworICAgIGRpc3BhdGNoUGxhdGZvcm1HYW1l
cGFkSW5wdXRBY3Rpdml0eSgpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8SElER2FtZXBhZD4gSElE
R2FtZXBhZFByb3ZpZGVyOjpyZW1vdmVHYW1lcGFkRm9yRGV2aWNlKElPSElERGV2aWNlUmVmIGRl
dmljZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJ
REdhbWVwYWRQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMv
SElER2FtZXBhZFByb3ZpZGVyLmgKaW5kZXggNTA0Y2I0YzNjZDQ0OWM5NjlkZTI5M2JlNWQwMzFh
MzdkNDYzODM0ZS4uMjc4NTliZTI4MDRjZTMzMTM0MTZjMjY4NGI5ZjAxYjg2NTA4Y2Y4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFBy
b3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2Ft
ZXBhZFByb3ZpZGVyLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlIDxJT0tpdC9oaWQvSU9I
SURNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtNzYsNyArNzUsNiBAQCBw
cml2YXRlOgogCiAgICAgUmV0YWluUHRyPElPSElETWFuYWdlclJlZj4gbV9tYW5hZ2VyOwogCi0g
ICAgSGFzaFNldDxHYW1lcGFkUHJvdmlkZXJDbGllbnQqPiBtX2NsaWVudHM7CiAgICAgYm9vbCBt
X3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzOwogCiAgICAgVGltZXIgbV9jb25uZWN0aW9uRGVsYXlU
aW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0dhbWVwYWRQcm92
aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tHYW1lcGFkUHJvdmlkZXIuY3Bw
CmluZGV4IDEwNzU3ZTJkNDFmOGIyNTVhNTI0Y2Y1ZDlkYTc2YzE0MWRmYmE0MWYuLmVmMjFlNTA5
NmQ0M2U3YTE1MmU2ZWM1OTgxYjRlNzdiNzE5ZDY3MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0dhbWVwYWRQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrR2FtZXBhZFByb3ZpZGVyLmNwcApAQCAtMTMyLDYgKzEzMiw3IEBAIGJvb2wg
TW9ja0dhbWVwYWRQcm92aWRlcjo6c2V0TW9ja0dhbWVwYWRCdXR0b25WYWx1ZSh1bnNpZ25lZCBp
bmRleCwgdW5zaWduZWQgYnV0CiAgICAgfQogCiAgICAgbV9tb2NrR2FtZXBhZFZlY3RvcltpbmRl
eF0tPnNldEJ1dHRvblZhbHVlKGJ1dHRvbkluZGV4LCB2YWx1ZSk7CisgICAgc2V0U2hvdWxkTWFr
ZUdhbWVwYWRzVmlzaWJpbGUoKTsKICAgICBnYW1lcGFkSW5wdXRBY3Rpdml0eSgpOwogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtMTQzLDggKzE0NCw3IEBAIHZvaWQgTW9ja0dhbWVwYWRQcm92aWRl
cjo6Z2FtZXBhZElucHV0QWN0aXZpdHkoKQogCiAgICAgbV9zaG91bGRTY2hlZHVsZUFjdGl2aXR5
Q2FsbGJhY2sgPSBmYWxzZTsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSgpIHsKLSAgICAg
ICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgICAgICBjbGllbnQtPnBs
YXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoKTsKKyAgICAgICAgZGlzcGF0Y2hQbGF0Zm9ybUdh
bWVwYWRJbnB1dEFjdGl2aXR5KCk7CiAKICAgICAgICAgbV9zaG91bGRTY2hlZHVsZUFjdGl2aXR5
Q2FsbGJhY2sgPSB0cnVlOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrR2FtZXBhZFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tH
YW1lcGFkUHJvdmlkZXIuaAppbmRleCBhZjQ0OTI1YjIzYTc3OGNiOWJjNGY2ZDkxYjcxNjhlMTE3
OTc4OTVmLi45ZGQzMWU1ZmI0NzA5ZWY3YThjNGM2NTBkYjE3MjZjMWE4NjcxNmQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tHYW1lcGFkUHJvdmlkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tHYW1lcGFkUHJvdmlkZXIuaApAQCAtMjksNyArMjks
NiBAQAogCiAjaW5jbHVkZSAiR2FtZXBhZFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTW9ja0dhbWVw
YWQuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC02Miw4ICs2MSw2
IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFBsYXRmb3JtR2FtZXBhZCo+IG1fY29ubmVjdGVkR2Ft
ZXBhZFZlY3RvcjsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPE1vY2tHYW1lcGFkPj4gbV9t
b2NrR2FtZXBhZFZlY3RvcjsKIAotICAgIEhhc2hTZXQ8R2FtZXBhZFByb3ZpZGVyQ2xpZW50Kj4g
bV9jbGllbnRzOwotCiAgICAgYm9vbCBtX3Nob3VsZFNjaGVkdWxlQWN0aXZpdHlDYWxsYmFjayB7
IHRydWUgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HYW1l
cGFkL1VJR2FtZXBhZFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HYW1l
cGFkL1VJR2FtZXBhZFByb3ZpZGVyLmNwcAppbmRleCBjM2M1YmE5ZDQ5ZGQ5YThjNjA5YzViOTYz
NDcxZmQ2NzZjZWJjZmJhLi42NTdjNDE2ZjkwNmU1ZDA0MzkwMWZjM2U4MjQ0YjRkODc2MjY4MTBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQ
cm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1l
cGFkUHJvdmlkZXIuY3BwCkBAIC02NSw3ICs2NSw4IEBAIHZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6
OmdhbWVwYWRTeW5jVGltZXJGaXJlZCgpCiAgICAgaWYgKCF3ZWJQYWdlUHJveHkgfHwgIW1fcHJv
Y2Vzc1Bvb2xzVXNpbmdHYW1lcGFkcy5jb250YWlucygmd2ViUGFnZVByb3h5LT5wcm9jZXNzKCku
cHJvY2Vzc1Bvb2woKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYlBhZ2VQcm94eS0+Z2Ft
ZXBhZEFjdGl2aXR5KHNuYXBzaG90R2FtZXBhZHMoKSk7CisgICAgd2ViUGFnZVByb3h5LT5nYW1l
cGFkQWN0aXZpdHkoc25hcHNob3RHYW1lcGFkcygpLCBtX3Nob3VsZE1ha2VHYW1lcGFkc1Zpc2li
bGVPblN5bmMpOworICAgIG1fc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZU9uU3luYyA9IGZhbHNl
OwogfQogCiB2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpzY2hlZHVsZUdhbWVwYWRTdGF0ZVN5bmMo
KQpAQCAtMTI2LDcgKzEyNyw3IEBAIHZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2Ft
ZXBhZERpc2Nvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmIGdhbWVwYWQpCiAgICAgICAgIHBvb2wt
PmdhbWVwYWREaXNjb25uZWN0ZWQoKmRpc2Nvbm5lY3RlZEdhbWVwYWQpOwogfQogCi12b2lkIFVJ
R2FtZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KCkKK3ZvaWQgVUlH
YW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoYm9vbCBzaG91bGRN
YWtlR2FtZXBhZHNWaXNpYmxlKQogewogICAgIGF1dG8gcGxhdGZvcm1HYW1lcGFkcyA9IEdhbWVw
YWRQcm92aWRlcjo6c2luZ2xldG9uKCkucGxhdGZvcm1HYW1lcGFkcygpOwogICAgIEFTU0VSVChw
bGF0Zm9ybUdhbWVwYWRzLnNpemUoKSA9PSBtX2dhbWVwYWRzLnNpemUoKSk7CkBAIC0xNDEsNiAr
MTQyLDkgQEAgdm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rp
dml0eSgpCiAgICAgICAgIG1fZ2FtZXBhZHNbaV0tPnVwZGF0ZUZyb21QbGF0Zm9ybUdhbWVwYWQo
KnBsYXRmb3JtR2FtZXBhZHNbaV0pOwogICAgIH0KIAorICAgIGlmIChzaG91bGRNYWtlR2FtZXBh
ZHNWaXNpYmxlKQorICAgICAgICBtX3Nob3VsZE1ha2VHYW1lcGFkc1Zpc2libGVPblN5bmMgPSB0
cnVlOworCiAgICAgc2NoZWR1bGVHYW1lcGFkU3RhdGVTeW5jKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5oCmluZGV4
IDU0MTQ2MjMyMzkwNDVmMDA2ZWYzYmIxZjNkYWE1YTQwMzQ3YjQ1YjAuLmUwNzZjMmYzM2M4NmM1
ODgxMjE5Yjc2ZjVkOGNmNDUyZTZhMzgwYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuaApAQCAtNzQsNyArNzQsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2V0SW5pdGlhbENvbm5lY3RlZEdhbWVwYWRzKGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpQbGF0Zm9ybUdhbWVwYWQqPiYpIGZpbmFsOwogICAgIHZvaWQgcGxhdGZvcm1H
YW1lcGFkQ29ubmVjdGVkKFdlYkNvcmU6OlBsYXRmb3JtR2FtZXBhZCYpIGZpbmFsOwogICAgIHZv
aWQgcGxhdGZvcm1HYW1lcGFkRGlzY29ubmVjdGVkKFdlYkNvcmU6OlBsYXRmb3JtR2FtZXBhZCYp
IGZpbmFsOwotICAgIHZvaWQgcGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSgpIGZpbmFsOwor
ICAgIHZvaWQgcGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eShib29sIHNob3VsZE1ha2VHYW1l
cGFkc1Zpc2libGUpIGZpbmFsOwogCiAgICAgdm9pZCBzY2hlZHVsZUdhbWVwYWRTdGF0ZVN5bmMo
KTsKICAgICB2b2lkIGdhbWVwYWRTeW5jVGltZXJGaXJlZCgpOwpAQCAtODcsNiArODcsNyBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBtX2lzTW9uaXRvcmluZ0dhbWVwYWRzIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faGFzSW5pdGlhbEdhbWVwYWRzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxk
TWFrZUdhbWVwYWRzVmlzaWJsZU9uU3luYyB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGViOTM5NWNlZjVjMGQ4NDcwYTJm
Y2JhNGFhMjBlZGMwZjQxZWM5MDMuLjZkNmFkYmNlYjYwNDY4Y2M0ZDg2MDQ0Nzk0ZDZlYjg2OTBh
MTVmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01
NTk5LDkgKzU1OTksOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRDbGVhcigpCiAK
ICNpZiBFTkFCTEUoR0FNRVBBRCkKIAotdm9pZCBXZWJQYWdlUHJveHk6OmdhbWVwYWRBY3Rpdml0
eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6Z2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mIGdhbWVwYWRE
YXRhcywgYm9vbCBzaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlKQogewotICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2FtZXBhZEFjdGl2aXR5KGdhbWVwYWREYXRhcyksIG1f
cGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdhbWVwYWRB
Y3Rpdml0eShnYW1lcGFkRGF0YXMsIHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpLCBtX3BhZ2VJ
RCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDc1OGMyMzk1OTg1MDUyNDM5ODZjMDczNzUxNDljM2VlZWIxMzcyODYuLmU1MmY4MDAwNGFi
YjUzOGVlOWJlODg0ZTBkYjdiMWFhMTU5ZDZhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTExNzUsNyArMTE3NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNh
bkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UodWludDY0X3QgbG9hZGVySUQsIHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpOwogCiAjaWYg
RU5BQkxFKEdBTUVQQUQpCi0gICAgdm9pZCBnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdh
bWVwYWREYXRhPiYpOworICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1l
cGFkRGF0YT4mLCBib29sIHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpOwogI2VuZGlmCiAgICAg
ICAgIAogICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBjcmVhdGVXZWFrUHRyKCkgY29uc3QgeyBy
ZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAK
aW5kZXggNjJiYWNlNDRiNjc4NzNkYmU0NmM5MDRlMzE3MzRiOWE5ZGY2NWNkZS4uNzMyNjI4NjRm
NmNjMzE3YzY2NWVhNTBiYzg5ZWE3NzVkODUwMDIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTk1
LDcgKzk1LDcgQEAgdm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVwYWREaXNjb25uZWN0ZWQo
dW5zaWduZWQgaW5kZXgpCiAgICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkRGlzY29ubmVj
dGVkKCpkaXNjb25uZWN0ZWRHYW1lcGFkKTsKIH0KIAotdm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6
OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMp
Cit2b2lkIFdlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxH
YW1lcGFkRGF0YT4mIGdhbWVwYWREYXRhcywgYm9vbCBzaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxl
KQogewogICAgIEFTU0VSVChtX2dhbWVwYWRzLnNpemUoKSA9PSBnYW1lcGFkRGF0YXMuc2l6ZSgp
KTsKIApAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFk
QWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzCiAgICAgfQog
CiAgICAgZm9yIChhdXRvKiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+cGxh
dGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSgpOworICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2Ft
ZXBhZElucHV0QWN0aXZpdHkoc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSk7CiB9CiAKIHZvaWQg
V2ViR2FtZXBhZFByb3ZpZGVyOjpzdGFydE1vbml0b3JpbmdHYW1lcGFkcyhHYW1lcGFkUHJvdmlk
ZXJDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
R2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
R2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuaAppbmRleCA2ZTI1M2MyZWJhZjU5OGNkOTE5OWYz
OTVjZTQyZmM5ZWQ4NWYwMjRhLi5kYzk3NTBhN2MzMzM4NGRkYmM1YmIxMTYxYzdkNDAzOTg1OWVk
NmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2Ft
ZXBhZFByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HYW1lcGFkL1dl
YkdhbWVwYWRQcm92aWRlci5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
Z2FtZXBhZENvbm5lY3RlZChjb25zdCBHYW1lcGFkRGF0YSYpOwogICAgIHZvaWQgZ2FtZXBhZERp
c2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCk7Ci0gICAgdm9pZCBnYW1lcGFkQWN0aXZpdHkoY29u
c3QgVmVjdG9yPEdhbWVwYWREYXRhPiYpOworICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNvbnN0
IFZlY3RvcjxHYW1lcGFkRGF0YT4mLCBib29sIHNob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUpOwog
CiAgICAgdm9pZCBzZXRJbml0aWFsR2FtZXBhZHMoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggNjZmOWJkMDE1Y2VkYTYzNzA3MzNkYzViZTA4Zjc0ZmM5NTE0NmUxZi4uMGMzNjMxOWUxZWZl
YTAxYWEwYjJjOTgxNWUxMjVlNDc5ODdlYmFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTY4Nyw5ICs1Njg3LDkgQEAgdm9pZCBXZWJQ
YWdlOjpzZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKHVpbnQzMl90IGRpcmVjdGlvbikK
IAogI2lmIEVOQUJMRShHQU1FUEFEKQogCi12b2lkIFdlYlBhZ2U6OmdhbWVwYWRBY3Rpdml0eShj
b25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMpCit2b2lkIFdlYlBhZ2U6Omdh
bWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMsIGJv
b2wgc2hvdWxkTWFrZUdhbWVwYWRzVmlzaWJsZSkKIHsKLSAgICBXZWJHYW1lcGFkUHJvdmlkZXI6
OnNpbmdsZXRvbigpLmdhbWVwYWRBY3Rpdml0eShnYW1lcGFkRGF0YXMpOworICAgIFdlYkdhbWVw
YWRQcm92aWRlcjo6c2luZ2xldG9uKCkuZ2FtZXBhZEFjdGl2aXR5KGdhbWVwYWREYXRhcywgc2hv
dWxkTWFrZUdhbWVwYWRzVmlzaWJsZSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggODFjZTc1MWY4ZWJkMWQ4ZTBlMGI3ZGNh
NWZmMDdiYjczZDNkMjE2NS4uN2U5ZDU1YzdlY2UwYTczM2Y4ZjE2MDk0ZGQwOTc5MDM2MzIwZTU4
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05
NjQsNyArOTY0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKLSAg
ICB2b2lkIGdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+Jik7CisgICAg
dm9pZCBnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYsIGJvb2wgc2hv
dWxkTWFrZUdhbWVwYWRzVmlzaWJsZSk7CiAjZW5kaWYKICAgICAKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgppbmRleCA3NTZiNjIyNmM5MjJjMGJiMjA2MTQ1YmIyYjRiZjY0NmU3
NTcyZmU2Li4wZjJkN2JiZjVlZjA2ZGU2MmE3Y2I5MTRmZGRkOTgxMGYzYjhkZTU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgpAQCAtNDU5LDYgKzQ1OSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2
ZXIgewogICAgIFNldFVzZUljb25Mb2FkaW5nQ2xpZW50KGJvb2wgdXNlSWNvbkxvYWRpbmdDbGll
bnQpCiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKLSAgICBHYW1lcGFkQWN0aXZpdHkoVmVjdG9yPFdl
YktpdDo6R2FtZXBhZERhdGE+IGdhbWVwYWREYXRhcykKKyAgICBHYW1lcGFkQWN0aXZpdHkoVmVj
dG9yPFdlYktpdDo6R2FtZXBhZERhdGE+IGdhbWVwYWREYXRhcywgYm9vbCBzaG91bGRNYWtlR2Ft
ZXBhZHNWaXNpYmxlKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGViZDFlOTgxZWJjYjQyMTNiZGI4MzM4
YWQxNzEwMWY0MDg0NDA0Yy4uYWFjYTgzNzk4NThkZTdmYzVhNmZiMTZhODEwMDlmZGJlM2IwYzYx
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTAxLTIwICBCcmFkeSBFaWRzb24gIDxiZWlk
c29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXF1aXJlIGEgYnV0dG9uIHByZXNzIG9uIGEgZ2Ft
ZXBhZCBmb3IgdGhlbSB0byBiZSBleHBvc2VkIHRvIHRoZSBET00uCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yODYyMDkxOT4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjcyNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGdhbWVwYWQvZ2FtZXBhZC12aXNpYmlsaXR5LTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBnYW1lcGFkL2dhbWVwYWQtdmlzaWJpbGl0eS0xLmh0bWw6IEFkZGVkLgorCiAy
MDE3LTAxLTE3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBB
biB1cGRhdGUgdG8gb25lIGdhbWVwYWQncyB2YWx1ZXMgc2hvdWxkIG9ubHkgY2hhbmdlIHRoYXQg
Z2FtZXBhZCdzIG1vZGlmaWVkIHRpbWVzdGFtcC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2dh
bWVwYWQvZ2FtZXBhZC12aXNpYmlsaXR5LTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZ2Ft
ZXBhZC9nYW1lcGFkLXZpc2liaWxpdHktMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ0NTNh
MmNlZDc5MjQ5MmIxOGFhNzllNjAwZmYxMDlhMDYyYmI1NQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2dhbWVwYWQvZ2FtZXBhZC12aXNpYmlsaXR5LTEtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMiBAQAorTm8gY29ubmVjdCBldmVudCBzZWVuIGluIDIwIHJ1biBsb29wIHNwaW5zLiBZ
YXkuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2dhbWVwYWQvZ2FtZXBhZC12aXNpYmlsaXR5
LTEuaHRtbCBiL0xheW91dFRlc3RzL2dhbWVwYWQvZ2FtZXBhZC12aXNpYmlsaXR5LTEuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44ZDU0Mzg5YTVhNGU4Nzk3ZDhjOTcwYWM1MjYyOTU0MzhiNmYxOWYwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZ2FtZXBhZC9nYW1lcGFkLXZpc2liaWxpdHktMS5o
dG1sCkBAIC0wLDAgKzEsNTYgQEAKKzxoZWFkPgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpCit7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisK
K2Z1bmN0aW9uIGZpbmlzaFRlc3QoKQoreworICAgIGlmICh0ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKwordmFyIHRpbWVvdXRDb3VudCA9IDA7CisKK2Z1
bmN0aW9uIHNwaW5BQml0KCkKK3sKKyAgICBpZiAodGltZW91dENvdW50ID09IDIwKSB7CisgICAg
ICAgIGxvZygiTm8gY29ubmVjdCBldmVudCBzZWVuIGluIDIwIHJ1biBsb29wIHNwaW5zLiBZYXku
Iik7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICB9CisKKyAgICArK3RpbWVvdXRDb3VudDsK
KyAgICBzZXRUaW1lb3V0KHNwaW5BQml0LCAwKTsKK30KKworZnVuY3Rpb24gaGFuZGxlR2FtZXBh
ZENvbm5lY3QoKQoreworICAgIGxvZygiQ29ubmVjdCBldmVudCBzZWVuISBTaG91bGQgTk9UIGhh
dmUgYmVlbiBzZWVuIik7CisgICAgZmluaXNoVGVzdCgpOworfQorCitmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgIGFkZEV2ZW50TGlzdGVuZXIoImdhbWVwYWRjb25uZWN0ZWQiLCBoYW5kbGVHYW1l
cGFkQ29ubmVjdCk7CisKKyAgICAvLyBDb25uZWN0aW5nIHRoZSBnYW1lcGFkIGFuZCBjaGFuZ2lu
ZyBheGlzIHZhbHVlcyBzaG91bGQgKm5vdCogbWFrZSBpdCB2aXNpYmxlLgorICAgIC8vIE9ubHkg
YnV0dG9uIHByZXNzZXMgc2hvdWxkIGV4cG9zZSBpdC4KKyAgICB0ZXN0UnVubmVyLnNldE1vY2tH
YW1lcGFkRGV0YWlscygwLCAiVGVzdCBKb3lzdGljayIsIDIsIDIpOworICAgIHRlc3RSdW5uZXIu
Y29ubmVjdE1vY2tHYW1lcGFkKDApOworICAgIHRlc3RSdW5uZXIuc2V0TW9ja0dhbWVwYWRBeGlz
VmFsdWUoMCwgMCwgMC43KTsKKyAgICB0ZXN0UnVubmVyLnNldE1vY2tHYW1lcGFkQXhpc1ZhbHVl
KDAsIDEsIC0xLjApOworCisgICAgc2V0VGltZW91dChzcGluQUJpdCwgMCk7Cit9CisKKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KKzxkaXYgaWQ9ImxvZ2dl
ciI+PC9kaXY+Cis8L2JvZHk+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>