<?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>160760</bug_id>
          
          <creation_ts>2016-08-10 17:00:50 -0700</creation_ts>
          <short_desc>[WK2] Don&apos;t monitor gamepads at all unless an interested WebPageProxy is in the active window</short_desc>
          <delta_ts>2016-08-24 17:33:14 -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>WebKit2</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>134076</blocked>
    
    <blocked>134675</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1219199</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-08-10 17:00:50 -0700</bug_when>
    <thetext>[WK2] Don&apos;t monitor gamepads at all unless an interested WebPageProxy is in the active window</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219200</commentid>
    <comment_count>1</comment_count>
      <attachid>285786</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-08-10 17:05:09 -0700</bug_when>
    <thetext>Created attachment 285786
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219204</commentid>
    <comment_count>2</comment_count>
      <attachid>285786</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-08-10 17:13:38 -0700</bug_when>
    <thetext>Comment on attachment 285786
Patch v1

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

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1061
&gt; +        UIGamepadProvider::singleton().webPageBecameActive(m_page.get());

Don&apos;t know if this is the best name for this. It&apos;s not about a &quot;web page&quot;.

&gt; Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.cpp:160
&gt; +void UIGamepadProvider::webPageBecameActive(WebPageProxy&amp; page)

Don&apos;t you want windowIsKey &amp;&amp; webViewIsFirstResponder? Or is the first-responderiness covered by m_processPoolsUsingGamepads?

&gt; Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.h:83
&gt; +    WebCore::Timer m_gamepadSyncTimer;
&gt; +    WebCore::Timer m_disableMonitoringTimer;

Isn&apos;t using WebCore::Timer in the UI process a big no-no? (because of coexistence with the Web thread) I think you should be using the runloop timer thingy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219483</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-08-11 17:49:32 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 285786 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=285786&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.cpp:160
&gt; &gt; +void UIGamepadProvider::webPageBecameActive(WebPageProxy&amp; page)
&gt; 
&gt; Don&apos;t you want windowIsKey &amp;&amp; webViewIsFirstResponder? Or is the
&gt; first-responderiness covered by m_processPoolsUsingGamepads?
&gt; 

As we need it both at registration time and &quot;event firing&quot; time, first responderiness is covered by platformWebPageProxyForGamepadInput,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219485</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-08-11 17:49:58 -0700</bug_when>
    <thetext>Fixing the other stuff and building ATM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219493</commentid>
    <comment_count>5</comment_count>
      <attachid>285877</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-08-11 18:01:14 -0700</bug_when>
    <thetext>Created attachment 285877
PFL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219501</commentid>
    <comment_count>6</comment_count>
      <attachid>285877</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-11 18:31:22 -0700</bug_when>
    <thetext>Comment on attachment 285877
PFL

Clearing flags on attachment: 285877

Committed r204401: &lt;http://trac.webkit.org/changeset/204401&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222908</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-08-24 17:33:14 -0700</bug_when>
    <thetext>This works.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285786</attachid>
            <date>2016-08-10 17:05:09 -0700</date>
            <delta_ts>2016-08-10 17:13:38 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11154</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzZTMwODM1Li4wMjNjN2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTYtMDgtMTAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFtXSzJdIERvbid0IG1vbml0b3IgZ2FtZXBhZHMgYXQgYWxsIHVubGVzcyBhbiBpbnRlcmVz
dGVkIFdlYlBhZ2VQcm94eSBpcyBpbiB0aGUgYWN0aXZlIHdpbmRvdy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDc2MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtl
cyBpdCBzdWNoIHRoYXQgdGhlIFVJUHJvY2VzcyB3aWxsIG9ubHkgbGlzdGVuIHRvIHRoZSBwbGF0
Zm9ybSBnYW1lcGFkIG1lY2hhbmlzbQorICAgICAgICBpZiBhIFdlYlBhZ2VQcm94eSB0aGF0IGlz
IGludGVyZXN0ZWQgaW4gZ2FtZXBhZHMgaXMgaW4gdGhlIGFjdGl2ZSB3aW5kb3cuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjp3aW5kb3dEaWRCZWNvbWVLZXkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6d2luZG93RGlkUmVzaWduS2V5KToKKworICAgICAgICAqIFVJUHJvY2Vzcy9HYW1lcGFk
L1VJR2FtZXBhZFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VUlHYW1lcGFkUHJvdmlk
ZXI6OlVJR2FtZXBhZFByb3ZpZGVyKToKKyAgICAgICAgKFdlYktpdDo6VUlHYW1lcGFkUHJvdmlk
ZXI6OmdhbWVwYWRTeW5jVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OlVJR2FtZXBhZFBy
b3ZpZGVyOjpzY2hlZHVsZUdhbWVwYWRTdGF0ZVN5bmMpOgorICAgICAgICAoV2ViS2l0OjpVSUdh
bWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKToKKyAgICAgICAgKFdlYktp
dDo6VUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlVJR2FtZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2
aXR5KToKKyAgICAgICAgKFdlYktpdDo6VUlHYW1lcGFkUHJvdmlkZXI6OnByb2Nlc3NQb29sU3Rh
cnRlZFVzaW5nR2FtZXBhZHMpOgorICAgICAgICAoV2ViS2l0OjpVSUdhbWVwYWRQcm92aWRlcjo6
cHJvY2Vzc1Bvb2xTdG9wcGVkVXNpbmdHYW1lcGFkcyk6CisgICAgICAgIChXZWJLaXQ6OlVJR2Ft
ZXBhZFByb3ZpZGVyOjp3ZWJQYWdlQmVjYW1lQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6VUlH
YW1lcGFkUHJvdmlkZXI6OndlYlBhZ2VCZWNhbWVJbmFjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6
OlVJR2FtZXBhZFByb3ZpZGVyOjpzY2hlZHVsZURpc2FibGVHYW1lcGFkTW9uaXRvcmluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVJR2FtZXBhZFByb3ZpZGVyOjpkaXNhYmxlTW9uaXRvcmluZ1RpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpVSUdhbWVwYWRQcm92aWRlcjo6c3RhcnRNb25pdG9y
aW5nR2FtZXBhZHMpOgorICAgICAgICAoV2ViS2l0OjpVSUdhbWVwYWRQcm92aWRlcjo6c3RvcE1v
bml0b3JpbmdHYW1lcGFkcyk6CisgICAgICAgIChXZWJLaXQ6OlVJR2FtZXBhZFByb3ZpZGVyOjp1
cGRhdGVUaW1lckZpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VUlHYW1lcGFkUHJv
dmlkZXI6OnN0YXJ0T3JTdG9wU3luY2hpbmdHYW1lcGFkU3RhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmg6CisKIDIwMTYtMDgtMDkg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBN
b3ZlIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBtYW5hZ2VtZW50IHRvIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA0MDkzMzkwLi43
M2UwYjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCkBAIC00Niw2ICs0Niw3IEBACiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAi
VGV4dENoZWNrZXJTdGF0ZS5oIgogI2ltcG9ydCAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eS5oIgorI2ltcG9ydCAiVUlHYW1lcGFkUHJvdmlkZXIuaCIKICNpbXBvcnQgIlZpZXdH
ZXN0dXJlQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKQEAg
LTEwNTYsNiArMTA1Nyw5IEBAIHZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZE9yZGVyT25TY3Jl
ZW4oKQogdm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkQmVjb21lS2V5KE5TV2luZG93ICprZXlX
aW5kb3cpCiB7CiAgICAgaWYgKGtleVdpbmRvdyA9PSBtX3ZpZXcud2luZG93IHx8IGtleVdpbmRv
dyA9PSBtX3ZpZXcud2luZG93LmF0dGFjaGVkU2hlZXQpIHsKKyNpZiBFTkFCTEUoR0FNRVBBRCkK
KyAgICAgICAgVUlHYW1lcGFkUHJvdmlkZXI6OnNpbmdsZXRvbigpLndlYlBhZ2VCZWNhbWVBY3Rp
dmUobV9wYWdlLmdldCgpKTsKKyNlbmRpZgogICAgICAgICB1cGRhdGVTZWN1cmVJbnB1dFN0YXRl
KCk7CiAgICAgICAgIG1fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0
ZTo6V2luZG93SXNBY3RpdmUpOwogICAgIH0KQEAgLTEwNjQsNiArMTA2OCw5IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OndpbmRvd0RpZEJlY29tZUtleShOU1dpbmRvdyAqa2V5V2luZG93KQogdm9pZCBX
ZWJWaWV3SW1wbDo6d2luZG93RGlkUmVzaWduS2V5KE5TV2luZG93ICpmb3JtZXJLZXlXaW5kb3cp
CiB7CiAgICAgaWYgKGZvcm1lcktleVdpbmRvdyA9PSBtX3ZpZXcud2luZG93IHx8IGZvcm1lcktl
eVdpbmRvdyA9PSBtX3ZpZXcud2luZG93LmF0dGFjaGVkU2hlZXQpIHsKKyNpZiBFTkFCTEUoR0FN
RVBBRCkKKyAgICAgICAgVUlHYW1lcGFkUHJvdmlkZXI6OnNpbmdsZXRvbigpLndlYlBhZ2VCZWNh
bWVJbmFjdGl2ZShtX3BhZ2UuZ2V0KCkpOworI2VuZGlmCiAgICAgICAgIHVwZGF0ZVNlY3VyZUlu
cHV0U3RhdGUoKTsKICAgICAgICAgbV9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6
Vmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuY3BwCmluZGV4IDY0NWQz
NTAuLjk3NzNkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HYW1lcGFk
L1VJR2FtZXBhZFByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2Ft
ZXBhZC9VSUdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgY29uc3QgZG91Ymxl
IGdhbWVwYWRVcGRhdGVJbnRlcnZhbCA9IDEgLyA2MC4wOworc3RhdGljIGNvbnN0IGRvdWJsZSBt
YXhpbXVtR2FtZXBhZFVwZGF0ZUludGVydmFsID0gMSAvIDEyMC4wOwogCiBVSUdhbWVwYWRQcm92
aWRlciYgVUlHYW1lcGFkUHJvdmlkZXI6OnNpbmdsZXRvbigpCiB7CkBAIC00Nyw3ICs0Nyw4IEBA
IFVJR2FtZXBhZFByb3ZpZGVyJiBVSUdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9uKCkKIH0KIAog
VUlHYW1lcGFkUHJvdmlkZXI6OlVJR2FtZXBhZFByb3ZpZGVyKCkKLSAgICA6IG1fdGltZXIoKnRo
aXMsICZVSUdhbWVwYWRQcm92aWRlcjo6dXBkYXRlVGltZXJGaXJlZCkKKyAgICA6IG1fZ2FtZXBh
ZFN5bmNUaW1lcigqdGhpcywgJlVJR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkU3luY1RpbWVyRmly
ZWQpCisgICAgLCBtX2Rpc2FibGVNb25pdG9yaW5nVGltZXIoKnRoaXMsICZVSUdhbWVwYWRQcm92
aWRlcjo6ZGlzYWJsZU1vbml0b3JpbmdUaW1lckZpcmVkKQogewogfQogCkBAIC01Nyw5ICs1OCwx
MCBAQCBVSUdhbWVwYWRQcm92aWRlcjo6flVJR2FtZXBhZFByb3ZpZGVyKCkKICAgICAgICAgcGxh
dGZvcm1TdG9wTW9uaXRvcmluZ0dhbWVwYWRzKCk7CiB9CiAKLXZvaWQgVUlHYW1lcGFkUHJvdmlk
ZXI6OnVwZGF0ZVRpbWVyRmlyZWQoKQordm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZFN5
bmNUaW1lckZpcmVkKCkKIHsKLSAgICBpZiAoIW1faGFkQWN0aXZpdHlTaW5jZUxhc3RTeW5jaCkK
KyAgICBhdXRvIHdlYlBhZ2VQcm94eSA9IHBsYXRmb3JtV2ViUGFnZVByb3h5Rm9yR2FtZXBhZElu
cHV0KCk7CisgICAgaWYgKCF3ZWJQYWdlUHJveHkgfHwgIW1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1l
cGFkcy5jb250YWlucygmd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKSkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFZlY3RvcjxHYW1lcGFkRGF0YT4gZ2FtZXBhZERhdGFzOwpA
QCAtNzIsMjQgKzc0LDIwIEBAIHZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnVwZGF0ZVRpbWVyRmly
ZWQoKQogICAgICAgICAgICAgZ2FtZXBhZERhdGFzLnVuY2hlY2tlZEFwcGVuZCh7IH0pOwogICAg
IH0KIAotICAgIGF1dG8gd2ViUGFnZVByb3h5ID0gcGxhdGZvcm1XZWJQYWdlUHJveHlGb3JHYW1l
cGFkSW5wdXQoKTsKLSAgICBpZiAod2ViUGFnZVByb3h5ICYmIG1fcHJvY2Vzc1Bvb2xzVXNpbmdH
YW1lcGFkcy5jb250YWlucygmd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKSkp
Ci0gICAgICAgIHdlYlBhZ2VQcm94eS0+Z2FtZXBhZEFjdGl2aXR5KGdhbWVwYWREYXRhcyk7Ci0K
LSAgICBtX2hhZEFjdGl2aXR5U2luY2VMYXN0U3luY2ggPSBmYWxzZTsKKyAgICB3ZWJQYWdlUHJv
eHktPmdhbWVwYWRBY3Rpdml0eShnYW1lcGFkRGF0YXMpOwogfQogCi12b2lkIFVJR2FtZXBhZFBy
b3ZpZGVyOjpzdGFydE9yU3RvcFN5bmNoaW5nR2FtZXBhZFN0YXRlKCkKK3ZvaWQgVUlHYW1lcGFk
UHJvdmlkZXI6OnNjaGVkdWxlR2FtZXBhZFN0YXRlU3luYygpCiB7Ci0gICAgLy8gRklYTUUgKGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2OTkpCi0gICAgLy8gT25s
eSBzdGFydCBzeW5jaGluZyB1cGRhdGVzIGlmIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBXS1dlYlZp
ZXcgaXMgYWxzbyBsaXN0ZW5pbmcgZm9yIGdhbWVwYWRzLgorICAgIGlmICghbV9pc01vbml0b3Jp
bmdHYW1lcGFkcyB8fCBtX2dhbWVwYWRTeW5jVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0
dXJuOwogCi0gICAgLy8gRklYTUUgKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjA2NzMpCi0gICAgLy8gSW5zdGVhZCBvZiByZWZyZXNoaW5nIGdhbWVwYWQgZGF0YSBv
biBhIDYwaHogdGltZXIsIGFjdHVhbGx5IHN5bmMgd2l0aCB0aGUgZGlzcGxheS4KLSAgICBpZiAo
bV9nYW1lcGFkcy5pc0VtcHR5KCkgfHwgbV9wcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRzLmlzRW1w
dHkoKSkKLSAgICAgICAgbV90aW1lci5zdG9wKCk7Ci0gICAgZWxzZQotICAgICAgICBtX3RpbWVy
LnN0YXJ0UmVwZWF0aW5nKGdhbWVwYWRVcGRhdGVJbnRlcnZhbCk7CisgICAgaWYgKG1fZ2FtZXBh
ZHMuaXNFbXB0eSgpIHx8IG1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFkcy5pc0VtcHR5KCkpIHsK
KyAgICAgICAgbV9nYW1lcGFkU3luY1RpbWVyLnN0b3AoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIG1fZ2FtZXBhZFN5bmNUaW1lci5zdGFydE9uZVNob3QobWF4aW11bUdhbWVwYWRV
cGRhdGVJbnRlcnZhbCk7CiB9CiAKIHZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2Ft
ZXBhZENvbm5lY3RlZChQbGF0Zm9ybUdhbWVwYWQmIGdhbWVwYWQpCkBAIC0xMDAsOCArOTgsNyBA
QCB2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoUGxhdGZv
cm1HYW1lcGFkJiBnYW1lcGFkKQogICAgIEFTU0VSVCghbV9nYW1lcGFkc1tnYW1lcGFkLmluZGV4
KCldKTsKICAgICBtX2dhbWVwYWRzW2dhbWVwYWQuaW5kZXgoKV0gPSBzdGQ6Om1ha2VfdW5pcXVl
PFVJR2FtZXBhZD4oZ2FtZXBhZCk7CiAKLSAgICBtX2hhZEFjdGl2aXR5U2luY2VMYXN0U3luY2gg
PSB0cnVlOwotICAgIHN0YXJ0T3JTdG9wU3luY2hpbmdHYW1lcGFkU3RhdGUoKTsKKyAgICBzY2hl
ZHVsZUdhbWVwYWRTdGF0ZVN5bmMoKTsKIAogICAgIGZvciAoYXV0byYgcG9vbCA6IG1fcHJvY2Vz
c1Bvb2xzVXNpbmdHYW1lcGFkcykKICAgICAgICAgcG9vbC0+Z2FtZXBhZENvbm5lY3RlZCgqbV9n
YW1lcGFkc1tnYW1lcGFkLmluZGV4KCldKTsKQEAgLTExNCw3ICsxMTEsNyBAQCB2b2lkIFVJR2Ft
ZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQoUGxhdGZvcm1HYW1lcGFk
JiBnYW1lcGFkKQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVJR2FtZXBhZD4gZGlzY29ubmVjdGVk
R2FtZXBhZCA9IFdURk1vdmUobV9nYW1lcGFkc1tnYW1lcGFkLmluZGV4KCldKTsKIAotICAgIHN0
YXJ0T3JTdG9wU3luY2hpbmdHYW1lcGFkU3RhdGUoKTsKKyAgICBzY2hlZHVsZUdhbWVwYWRTdGF0
ZVN5bmMoKTsKIAogICAgIGZvciAoYXV0byYgcG9vbCA6IG1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1l
cGFkcykKICAgICAgICAgcG9vbC0+Z2FtZXBhZERpc2Nvbm5lY3RlZCgqZGlzY29ubmVjdGVkR2Ft
ZXBhZCk7CkBAIC0xMzUsMzMgKzEzMiw3NCBAQCB2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpwbGF0
Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KCkKICAgICAgICAgbV9nYW1lcGFkc1tpXS0+dXBkYXRl
RnJvbVBsYXRmb3JtR2FtZXBhZCgqcGxhdGZvcm1HYW1lcGFkc1tpXSk7CiAgICAgfQogCi0gICAg
bV9oYWRBY3Rpdml0eVNpbmNlTGFzdFN5bmNoID0gdHJ1ZTsKKyAgICBzY2hlZHVsZUdhbWVwYWRT
dGF0ZVN5bmMoKTsKIH0KIAogdm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6cHJvY2Vzc1Bvb2xTdGFy
dGVkVXNpbmdHYW1lcGFkcyhXZWJQcm9jZXNzUG9vbCYgcG9vbCkKIHsKLSAgICBib29sIHdlcmVB
bnlQcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRzID0gIW1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFk
cy5pc0VtcHR5KCk7Ci0KICAgICBBU1NFUlQoIW1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFkcy5j
b250YWlucygmcG9vbCkpOwogICAgIG1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFkcy5hZGQoJnBv
b2wpOwogCi0gICAgaWYgKCF3ZXJlQW55UHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFkcykKLSAgICAg
ICAgcGxhdGZvcm1TdGFydE1vbml0b3JpbmdHYW1lcGFkcygpOworICAgIGlmICghbV9pc01vbml0
b3JpbmdHYW1lcGFkcyAmJiBwbGF0Zm9ybVdlYlBhZ2VQcm94eUZvckdhbWVwYWRJbnB1dCgpKQor
ICAgICAgICBzdGFydE1vbml0b3JpbmdHYW1lcGFkcygpOwogCi0gICAgc3RhcnRPclN0b3BTeW5j
aGluZ0dhbWVwYWRTdGF0ZSgpOworICAgIHNjaGVkdWxlR2FtZXBhZFN0YXRlU3luYygpOwogfQog
CiB2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpwcm9jZXNzUG9vbFN0b3BwZWRVc2luZ0dhbWVwYWRz
KFdlYlByb2Nlc3NQb29sJiBwb29sKQogewotICAgIGJvb2wgd2VyZUFueVByb2Nlc3NQb29sc1Vz
aW5nR2FtZXBhZHMgPSAhbV9wcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRzLmlzRW1wdHkoKTsKLQog
ICAgIEFTU0VSVChtX3Byb2Nlc3NQb29sc1VzaW5nR2FtZXBhZHMuY29udGFpbnMoJnBvb2wpKTsK
ICAgICBtX3Byb2Nlc3NQb29sc1VzaW5nR2FtZXBhZHMucmVtb3ZlKCZwb29sKTsKIAotICAgIGlm
ICh3ZXJlQW55UHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFkcyAmJiBtX3Byb2Nlc3NQb29sc1VzaW5n
R2FtZXBhZHMuaXNFbXB0eSgpKQotICAgICAgICBwbGF0Zm9ybVN0b3BNb25pdG9yaW5nR2FtZXBh
ZHMoKTsKKyAgICBpZiAobV9pc01vbml0b3JpbmdHYW1lcGFkcyAmJiAhcGxhdGZvcm1XZWJQYWdl
UHJveHlGb3JHYW1lcGFkSW5wdXQoKSkKKyAgICAgICAgc2NoZWR1bGVEaXNhYmxlR2FtZXBhZE1v
bml0b3JpbmcoKTsKKworICAgIHNjaGVkdWxlR2FtZXBhZFN0YXRlU3luYygpOworfQorCit2b2lk
IFVJR2FtZXBhZFByb3ZpZGVyOjp3ZWJQYWdlQmVjYW1lQWN0aXZlKFdlYlBhZ2VQcm94eSYgcGFn
ZSkKK3sKKyAgICBpZiAoIW1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFkcy5jb250YWlucygmcGFn
ZS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKSkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGlz
YWJsZU1vbml0b3JpbmdUaW1lci5zdG9wKCk7CisgICAgc3RhcnRNb25pdG9yaW5nR2FtZXBhZHMo
KTsKK30KKwordm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6d2ViUGFnZUJlY2FtZUluYWN0aXZlKFdl
YlBhZ2VQcm94eSYgcGFnZSkKK3sKKyAgICBhdXRvIHBhZ2VGb3JHYW1lcGFkSW5wdXQgPSBwbGF0
Zm9ybVdlYlBhZ2VQcm94eUZvckdhbWVwYWRJbnB1dCgpOworICAgIGlmIChwYWdlRm9yR2FtZXBh
ZElucHV0ID09ICZwYWdlKQorICAgICAgICBzY2hlZHVsZURpc2FibGVHYW1lcGFkTW9uaXRvcmlu
ZygpOworfQorCit2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpzY2hlZHVsZURpc2FibGVHYW1lcGFk
TW9uaXRvcmluZygpCit7CisgICAgaWYgKCFtX2Rpc2FibGVNb25pdG9yaW5nVGltZXIuaXNBY3Rp
dmUoKSkKKyAgICAgICAgbV9kaXNhYmxlTW9uaXRvcmluZ1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsK
K30KKwordm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6ZGlzYWJsZU1vbml0b3JpbmdUaW1lckZpcmVk
KCkKK3sKKyAgICBzdG9wTW9uaXRvcmluZ0dhbWVwYWRzKCk7Cit9CisKK3ZvaWQgVUlHYW1lcGFk
UHJvdmlkZXI6OnN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKCkKK3sKKyAgICBpZiAobV9pc01vbml0
b3JpbmdHYW1lcGFkcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pc01vbml0b3JpbmdHYW1l
cGFkcyA9IHRydWU7CisgICAgcGxhdGZvcm1TdGFydE1vbml0b3JpbmdHYW1lcGFkcygpOworfQor
Cit2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpzdG9wTW9uaXRvcmluZ0dhbWVwYWRzKCkKK3sKKyAg
ICBpZiAoIW1faXNNb25pdG9yaW5nR2FtZXBhZHMpCisgICAgICAgIHJldHVybjsKIAotICAgIHN0
YXJ0T3JTdG9wU3luY2hpbmdHYW1lcGFkU3RhdGUoKTsKKyAgICBtX2lzTW9uaXRvcmluZ0dhbWVw
YWRzID0gZmFsc2U7CisgICAgcGxhdGZvcm1TdG9wTW9uaXRvcmluZ0dhbWVwYWRzKCk7CiB9CiAK
ICNpZiAhUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9H
YW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmgKaW5kZXggNWIwNDA2OC4uM2JkYjQ1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRl
ci5oCkBAIC00Nyw2ICs0Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHByb2Nlc3NQb29sU3RhcnRl
ZFVzaW5nR2FtZXBhZHMoV2ViUHJvY2Vzc1Bvb2wmKTsKICAgICB2b2lkIHByb2Nlc3NQb29sU3Rv
cHBlZFVzaW5nR2FtZXBhZHMoV2ViUHJvY2Vzc1Bvb2wmKTsKIAorICAgIHZvaWQgd2ViUGFnZUJl
Y2FtZUFjdGl2ZShXZWJQYWdlUHJveHkmKTsKKyAgICB2b2lkIHdlYlBhZ2VCZWNhbWVJbmFjdGl2
ZShXZWJQYWdlUHJveHkmKTsKKwogICAgIFZlY3RvcjxHYW1lcGFkRGF0YT4gZ2FtZXBhZFN0YXRl
cygpIGNvbnN0OwogCiBwcml2YXRlOgpAQCAtNTQsNiArNTcsOSBAQCBwcml2YXRlOgogICAgIFVJ
R2FtZXBhZFByb3ZpZGVyKCk7CiAgICAgflVJR2FtZXBhZFByb3ZpZGVyKCkgZmluYWw7CiAKKyAg
ICB2b2lkIHN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKCk7CisgICAgdm9pZCBzdG9wTW9uaXRvcmlu
Z0dhbWVwYWRzKCk7CisKICAgICB2b2lkIHBsYXRmb3JtU3RhcnRNb25pdG9yaW5nR2FtZXBhZHMo
KTsKICAgICB2b2lkIHBsYXRmb3JtU3RvcE1vbml0b3JpbmdHYW1lcGFkcygpOwogICAgIGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpQbGF0Zm9ybUdhbWVwYWQqPiYgcGxhdGZvcm1HYW1lcGFkcygpOwpA
QCAtNjMsMTUgKzY5LDIwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUdhbWVwYWREaXNj
b25uZWN0ZWQoV2ViQ29yZTo6UGxhdGZvcm1HYW1lcGFkJikgZmluYWw7CiAgICAgdm9pZCBwbGF0
Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KCkgZmluYWw7CiAKLSAgICB2b2lkIHN0YXJ0T3JTdG9w
U3luY2hpbmdHYW1lcGFkU3RhdGUoKTsKLSAgICB2b2lkIHVwZGF0ZVRpbWVyRmlyZWQoKTsKKyAg
ICB2b2lkIHNjaGVkdWxlR2FtZXBhZFN0YXRlU3luYygpOworICAgIHZvaWQgZ2FtZXBhZFN5bmNU
aW1lckZpcmVkKCk7CisKKyAgICB2b2lkIHNjaGVkdWxlRGlzYWJsZUdhbWVwYWRNb25pdG9yaW5n
KCk7CisgICAgdm9pZCBkaXNhYmxlTW9uaXRvcmluZ1RpbWVyRmlyZWQoKTsKIAogICAgIEhhc2hT
ZXQ8V2ViUHJvY2Vzc1Bvb2wqPiBtX3Byb2Nlc3NQb29sc1VzaW5nR2FtZXBhZHM7CiAKICAgICBW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFVJR2FtZXBhZD4+IG1fZ2FtZXBhZHM7CiAKLSAgICBXZWJD
b3JlOjpUaW1lciBtX3RpbWVyOwotICAgIGJvb2wgbV9oYWRBY3Rpdml0eVNpbmNlTGFzdFN5bmNo
IHsgZmFsc2UgfTsKKyAgICBXZWJDb3JlOjpUaW1lciBtX2dhbWVwYWRTeW5jVGltZXI7CisgICAg
V2ViQ29yZTo6VGltZXIgbV9kaXNhYmxlTW9uaXRvcmluZ1RpbWVyOworCisgICAgYm9vbCBtX2lz
TW9uaXRvcmluZ0dhbWVwYWRzIHsgZmFsc2UgfTsKIH07CiAKIH0K
</data>
<flag name="review"
          id="309387"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="309388"
          type_id="3"
          status="-"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285877</attachid>
            <date>2016-08-11 18:01:14 -0700</date>
            <delta_ts>2016-08-11 18:31:22 -0700</delta_ts>
            <desc>PFL</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11484</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhMmQ1NWE5Li4zOTRjYmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzgg
QEAKIDIwMTYtMDgtMTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIFtXSzJdIERvbid0IG1vbml0b3IgZ2FtZXBhZHMgYXQgYWxsIHVubGVzcyBhbiBpbnRlcmVz
dGVkIFdlYlBhZ2VQcm94eSBpcyBpbiB0aGUgYWN0aXZlIHdpbmRvdy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDc2MAorCisgICAgICAgIFJldmll
d2VkIGJ5IFRpbSBIb3J0b24uCisgICAgICAgIAorICAgICAgICBUaGlzIHBhdGNoIG1ha2VzIGl0
IHN1Y2ggdGhhdCB0aGUgVUlQcm9jZXNzIHdpbGwgb25seSBsaXN0ZW4gdG8gdGhlIHBsYXRmb3Jt
IGdhbWVwYWQgbWVjaGFuaXNtCisgICAgICAgIGlmIGEgV2ViUGFnZVByb3h5IHRoYXQgaXMgaW50
ZXJlc3RlZCBpbiBnYW1lcGFkcyBpcyBpbiB0aGUgYWN0aXZlIHdpbmRvdy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OndpbmRvd0RpZEJlY29tZUtleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp3aW5kb3dEaWRSZXNpZ25LZXkpOgorCisgICAgICAgICogVUlQcm9jZXNzL0dhbWVwYWQvVUlH
YW1lcGFkUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVSUdhbWVwYWRQcm92aWRlcjo6
VUlHYW1lcGFkUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpVSUdhbWVwYWRQcm92aWRlcjo6
Z2FtZXBhZFN5bmNUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6VUlHYW1lcGFkUHJvdmlk
ZXI6OnNjaGVkdWxlR2FtZXBhZFN0YXRlU3luYyk6CisgICAgICAgIChXZWJLaXQ6OlVJR2FtZXBh
ZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQpOgorICAgICAgICAoV2ViS2l0OjpV
SUdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1lcGFkRGlzY29ubmVjdGVkKToKKyAgICAgICAg
KFdlYktpdDo6VUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkp
OgorICAgICAgICAoV2ViS2l0OjpVSUdhbWVwYWRQcm92aWRlcjo6cHJvY2Vzc1Bvb2xTdGFydGVk
VXNpbmdHYW1lcGFkcyk6CisgICAgICAgIChXZWJLaXQ6OlVJR2FtZXBhZFByb3ZpZGVyOjpwcm9j
ZXNzUG9vbFN0b3BwZWRVc2luZ0dhbWVwYWRzKToKKyAgICAgICAgKFdlYktpdDo6VUlHYW1lcGFk
UHJvdmlkZXI6OnZpZXdCZWNhbWVBY3RpdmUpOgorICAgICAgICAoV2ViS2l0OjpVSUdhbWVwYWRQ
cm92aWRlcjo6dmlld0JlY2FtZUluYWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6VUlHYW1lcGFk
UHJvdmlkZXI6OnNjaGVkdWxlRGlzYWJsZUdhbWVwYWRNb25pdG9yaW5nKToKKyAgICAgICAgKFdl
YktpdDo6VUlHYW1lcGFkUHJvdmlkZXI6OmRpc2FibGVNb25pdG9yaW5nVGltZXJGaXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlVJR2FtZXBhZFByb3ZpZGVyOjpzdGFydE1vbml0b3JpbmdHYW1lcGFk
cyk6CisgICAgICAgIChXZWJLaXQ6OlVJR2FtZXBhZFByb3ZpZGVyOjpzdG9wTW9uaXRvcmluZ0dh
bWVwYWRzKToKKyAgICAgICAgKFdlYktpdDo6VUlHYW1lcGFkUHJvdmlkZXI6OnVwZGF0ZVRpbWVy
RmlyZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpVSUdhbWVwYWRQcm92aWRlcjo6c3Rh
cnRPclN0b3BTeW5jaGluZ0dhbWVwYWRTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0dhbWVwYWQvVUlHYW1lcGFkUHJvdmlkZXIuaDoKKworMjAxNi0wOC0xMSAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAgICAgICAgTWFrZSBHYW1lcGFkcyBiZSBhIFdL
MiBFeHBlcmltZW50YWxGZWF0dXJlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYwNzg4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQppbmRleCA0MDkzMzkwLi42NTE2OWVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC00Niw2ICs0Niw3IEBACiAj
aW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2lt
cG9ydCAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oIgorI2ltcG9ydCAiVUlH
YW1lcGFkUHJvdmlkZXIuaCIKICNpbXBvcnQgIlZpZXdHZXN0dXJlQ29udHJvbGxlci5oIgogI2lt
cG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKQEAgLTEwNTYsNiArMTA1Nyw5IEBAIHZvaWQg
V2ViVmlld0ltcGw6OndpbmRvd0RpZE9yZGVyT25TY3JlZW4oKQogdm9pZCBXZWJWaWV3SW1wbDo6
d2luZG93RGlkQmVjb21lS2V5KE5TV2luZG93ICprZXlXaW5kb3cpCiB7CiAgICAgaWYgKGtleVdp
bmRvdyA9PSBtX3ZpZXcud2luZG93IHx8IGtleVdpbmRvdyA9PSBtX3ZpZXcud2luZG93LmF0dGFj
aGVkU2hlZXQpIHsKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKyAgICAgICAgVUlHYW1lcGFkUHJvdmlk
ZXI6OnNpbmdsZXRvbigpLnZpZXdCZWNhbWVBY3RpdmUobV9wYWdlLmdldCgpKTsKKyNlbmRpZgog
ICAgICAgICB1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7CiAgICAgICAgIG1fcGFnZS0+dmlld1N0
YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwogICAgIH0K
QEAgLTEwNjQsNiArMTA2OCw5IEBAIHZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZEJlY29tZUtl
eShOU1dpbmRvdyAqa2V5V2luZG93KQogdm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkUmVzaWdu
S2V5KE5TV2luZG93ICpmb3JtZXJLZXlXaW5kb3cpCiB7CiAgICAgaWYgKGZvcm1lcktleVdpbmRv
dyA9PSBtX3ZpZXcud2luZG93IHx8IGZvcm1lcktleVdpbmRvdyA9PSBtX3ZpZXcud2luZG93LmF0
dGFjaGVkU2hlZXQpIHsKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKyAgICAgICAgVUlHYW1lcGFkUHJv
dmlkZXI6OnNpbmdsZXRvbigpLnZpZXdCZWNhbWVJbmFjdGl2ZShtX3BhZ2UuZ2V0KCkpOworI2Vu
ZGlmCiAgICAgICAgIHVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsKICAgICAgICAgbV9wYWdlLT52
aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1l
cGFkUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dhbWVwYWQvVUlHYW1l
cGFkUHJvdmlkZXIuY3BwCmluZGV4IDY0NWQzNTAuLjc1MGVhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5jcHAKQEAg
LTM4LDcgKzM4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1zdGF0aWMgY29uc3QgZG91YmxlIGdhbWVwYWRVcGRhdGVJbnRlcnZhbCA9IDEgLyA2
MC4wOworc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhpbXVtR2FtZXBhZFVwZGF0ZUludGVydmFsID0g
MSAvIDEyMC4wOwogCiBVSUdhbWVwYWRQcm92aWRlciYgVUlHYW1lcGFkUHJvdmlkZXI6OnNpbmds
ZXRvbigpCiB7CkBAIC00Nyw3ICs0Nyw4IEBAIFVJR2FtZXBhZFByb3ZpZGVyJiBVSUdhbWVwYWRQ
cm92aWRlcjo6c2luZ2xldG9uKCkKIH0KIAogVUlHYW1lcGFkUHJvdmlkZXI6OlVJR2FtZXBhZFBy
b3ZpZGVyKCkKLSAgICA6IG1fdGltZXIoKnRoaXMsICZVSUdhbWVwYWRQcm92aWRlcjo6dXBkYXRl
VGltZXJGaXJlZCkKKyAgICA6IG1fZ2FtZXBhZFN5bmNUaW1lcihSdW5Mb29wOjptYWluKCksIHRo
aXMsICZVSUdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZFN5bmNUaW1lckZpcmVkKQorICAgICwgbV9k
aXNhYmxlTW9uaXRvcmluZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlVJR2FtZXBhZFBy
b3ZpZGVyOjpkaXNhYmxlTW9uaXRvcmluZ1RpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTU3LDkgKzU4
LDEwIEBAIFVJR2FtZXBhZFByb3ZpZGVyOjp+VUlHYW1lcGFkUHJvdmlkZXIoKQogICAgICAgICBw
bGF0Zm9ybVN0b3BNb25pdG9yaW5nR2FtZXBhZHMoKTsKIH0KIAotdm9pZCBVSUdhbWVwYWRQcm92
aWRlcjo6dXBkYXRlVGltZXJGaXJlZCgpCit2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFk
U3luY1RpbWVyRmlyZWQoKQogewotICAgIGlmICghbV9oYWRBY3Rpdml0eVNpbmNlTGFzdFN5bmNo
KQorICAgIGF1dG8gd2ViUGFnZVByb3h5ID0gcGxhdGZvcm1XZWJQYWdlUHJveHlGb3JHYW1lcGFk
SW5wdXQoKTsKKyAgICBpZiAoIXdlYlBhZ2VQcm94eSB8fCAhbV9wcm9jZXNzUG9vbHNVc2luZ0dh
bWVwYWRzLmNvbnRhaW5zKCZ3ZWJQYWdlUHJveHktPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgVmVjdG9yPEdhbWVwYWREYXRhPiBnYW1lcGFkRGF0YXM7
CkBAIC03MiwyNCArNzQsMjAgQEAgdm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6dXBkYXRlVGltZXJG
aXJlZCgpCiAgICAgICAgICAgICBnYW1lcGFkRGF0YXMudW5jaGVja2VkQXBwZW5kKHsgfSk7CiAg
ICAgfQogCi0gICAgYXV0byB3ZWJQYWdlUHJveHkgPSBwbGF0Zm9ybVdlYlBhZ2VQcm94eUZvckdh
bWVwYWRJbnB1dCgpOwotICAgIGlmICh3ZWJQYWdlUHJveHkgJiYgbV9wcm9jZXNzUG9vbHNVc2lu
Z0dhbWVwYWRzLmNvbnRhaW5zKCZ3ZWJQYWdlUHJveHktPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgp
KSkKLSAgICAgICAgd2ViUGFnZVByb3h5LT5nYW1lcGFkQWN0aXZpdHkoZ2FtZXBhZERhdGFzKTsK
LQotICAgIG1faGFkQWN0aXZpdHlTaW5jZUxhc3RTeW5jaCA9IGZhbHNlOworICAgIHdlYlBhZ2VQ
cm94eS0+Z2FtZXBhZEFjdGl2aXR5KGdhbWVwYWREYXRhcyk7CiB9CiAKLXZvaWQgVUlHYW1lcGFk
UHJvdmlkZXI6OnN0YXJ0T3JTdG9wU3luY2hpbmdHYW1lcGFkU3RhdGUoKQordm9pZCBVSUdhbWVw
YWRQcm92aWRlcjo6c2NoZWR1bGVHYW1lcGFkU3RhdGVTeW5jKCkKIHsKLSAgICAvLyBGSVhNRSAo
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDY5OSkKLSAgICAvLyBP
bmx5IHN0YXJ0IHN5bmNoaW5nIHVwZGF0ZXMgaWYgdGhlIGN1cnJlbnRseSBmb2N1c2VkIFdLV2Vi
VmlldyBpcyBhbHNvIGxpc3RlbmluZyBmb3IgZ2FtZXBhZHMuCisgICAgaWYgKCFtX2lzTW9uaXRv
cmluZ0dhbWVwYWRzIHx8IG1fZ2FtZXBhZFN5bmNUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBy
ZXR1cm47CiAKLSAgICAvLyBGSVhNRSAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MDY3MykKLSAgICAvLyBJbnN0ZWFkIG9mIHJlZnJlc2hpbmcgZ2FtZXBhZCBkYXRh
IG9uIGEgNjBoeiB0aW1lciwgYWN0dWFsbHkgc3luYyB3aXRoIHRoZSBkaXNwbGF5LgotICAgIGlm
IChtX2dhbWVwYWRzLmlzRW1wdHkoKSB8fCBtX3Byb2Nlc3NQb29sc1VzaW5nR2FtZXBhZHMuaXNF
bXB0eSgpKQotICAgICAgICBtX3RpbWVyLnN0b3AoKTsKLSAgICBlbHNlCi0gICAgICAgIG1fdGlt
ZXIuc3RhcnRSZXBlYXRpbmcoZ2FtZXBhZFVwZGF0ZUludGVydmFsKTsKKyAgICBpZiAobV9nYW1l
cGFkcy5pc0VtcHR5KCkgfHwgbV9wcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRzLmlzRW1wdHkoKSkg
eworICAgICAgICBtX2dhbWVwYWRTeW5jVGltZXIuc3RvcCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbV9nYW1lcGFkU3luY1RpbWVyLnN0YXJ0T25lU2hvdChtYXhpbXVtR2FtZXBh
ZFVwZGF0ZUludGVydmFsKTsKIH0KIAogdm9pZCBVSUdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1H
YW1lcGFkQ29ubmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYgZ2FtZXBhZCkKQEAgLTEwMCw4ICs5OCw3
IEBAIHZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZENvbm5lY3RlZChQbGF0
Zm9ybUdhbWVwYWQmIGdhbWVwYWQpCiAgICAgQVNTRVJUKCFtX2dhbWVwYWRzW2dhbWVwYWQuaW5k
ZXgoKV0pOwogICAgIG1fZ2FtZXBhZHNbZ2FtZXBhZC5pbmRleCgpXSA9IHN0ZDo6bWFrZV91bmlx
dWU8VUlHYW1lcGFkPihnYW1lcGFkKTsKIAotICAgIG1faGFkQWN0aXZpdHlTaW5jZUxhc3RTeW5j
aCA9IHRydWU7Ci0gICAgc3RhcnRPclN0b3BTeW5jaGluZ0dhbWVwYWRTdGF0ZSgpOworICAgIHNj
aGVkdWxlR2FtZXBhZFN0YXRlU3luYygpOwogCiAgICAgZm9yIChhdXRvJiBwb29sIDogbV9wcm9j
ZXNzUG9vbHNVc2luZ0dhbWVwYWRzKQogICAgICAgICBwb29sLT5nYW1lcGFkQ29ubmVjdGVkKCpt
X2dhbWVwYWRzW2dhbWVwYWQuaW5kZXgoKV0pOwpAQCAtMTE0LDcgKzExMSw3IEBAIHZvaWQgVUlH
YW1lcGFkUHJvdmlkZXI6OnBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZChQbGF0Zm9ybUdhbWVw
YWQmIGdhbWVwYWQpCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VUlHYW1lcGFkPiBkaXNjb25uZWN0
ZWRHYW1lcGFkID0gV1RGTW92ZShtX2dhbWVwYWRzW2dhbWVwYWQuaW5kZXgoKV0pOwogCi0gICAg
c3RhcnRPclN0b3BTeW5jaGluZ0dhbWVwYWRTdGF0ZSgpOworICAgIHNjaGVkdWxlR2FtZXBhZFN0
YXRlU3luYygpOwogCiAgICAgZm9yIChhdXRvJiBwb29sIDogbV9wcm9jZXNzUG9vbHNVc2luZ0dh
bWVwYWRzKQogICAgICAgICBwb29sLT5nYW1lcGFkRGlzY29ubmVjdGVkKCpkaXNjb25uZWN0ZWRH
YW1lcGFkKTsKQEAgLTEzNSwzMyArMTMyLDc0IEBAIHZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnBs
YXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoKQogICAgICAgICBtX2dhbWVwYWRzW2ldLT51cGRh
dGVGcm9tUGxhdGZvcm1HYW1lcGFkKCpwbGF0Zm9ybUdhbWVwYWRzW2ldKTsKICAgICB9CiAKLSAg
ICBtX2hhZEFjdGl2aXR5U2luY2VMYXN0U3luY2ggPSB0cnVlOworICAgIHNjaGVkdWxlR2FtZXBh
ZFN0YXRlU3luYygpOwogfQogCiB2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpwcm9jZXNzUG9vbFN0
YXJ0ZWRVc2luZ0dhbWVwYWRzKFdlYlByb2Nlc3NQb29sJiBwb29sKQogewotICAgIGJvb2wgd2Vy
ZUFueVByb2Nlc3NQb29sc1VzaW5nR2FtZXBhZHMgPSAhbV9wcm9jZXNzUG9vbHNVc2luZ0dhbWVw
YWRzLmlzRW1wdHkoKTsKLQogICAgIEFTU0VSVCghbV9wcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRz
LmNvbnRhaW5zKCZwb29sKSk7CiAgICAgbV9wcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRzLmFkZCgm
cG9vbCk7CiAKLSAgICBpZiAoIXdlcmVBbnlQcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRzKQotICAg
ICAgICBwbGF0Zm9ybVN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKCk7CisgICAgaWYgKCFtX2lzTW9u
aXRvcmluZ0dhbWVwYWRzICYmIHBsYXRmb3JtV2ViUGFnZVByb3h5Rm9yR2FtZXBhZElucHV0KCkp
CisgICAgICAgIHN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKCk7CiAKLSAgICBzdGFydE9yU3RvcFN5
bmNoaW5nR2FtZXBhZFN0YXRlKCk7CisgICAgc2NoZWR1bGVHYW1lcGFkU3RhdGVTeW5jKCk7CiB9
CiAKIHZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnByb2Nlc3NQb29sU3RvcHBlZFVzaW5nR2FtZXBh
ZHMoV2ViUHJvY2Vzc1Bvb2wmIHBvb2wpCiB7Ci0gICAgYm9vbCB3ZXJlQW55UHJvY2Vzc1Bvb2xz
VXNpbmdHYW1lcGFkcyA9ICFtX3Byb2Nlc3NQb29sc1VzaW5nR2FtZXBhZHMuaXNFbXB0eSgpOwot
CiAgICAgQVNTRVJUKG1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFkcy5jb250YWlucygmcG9vbCkp
OwogICAgIG1fcHJvY2Vzc1Bvb2xzVXNpbmdHYW1lcGFkcy5yZW1vdmUoJnBvb2wpOwogCi0gICAg
aWYgKHdlcmVBbnlQcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRzICYmIG1fcHJvY2Vzc1Bvb2xzVXNp
bmdHYW1lcGFkcy5pc0VtcHR5KCkpCi0gICAgICAgIHBsYXRmb3JtU3RvcE1vbml0b3JpbmdHYW1l
cGFkcygpOworICAgIGlmIChtX2lzTW9uaXRvcmluZ0dhbWVwYWRzICYmICFwbGF0Zm9ybVdlYlBh
Z2VQcm94eUZvckdhbWVwYWRJbnB1dCgpKQorICAgICAgICBzY2hlZHVsZURpc2FibGVHYW1lcGFk
TW9uaXRvcmluZygpOworCisgICAgc2NoZWR1bGVHYW1lcGFkU3RhdGVTeW5jKCk7Cit9CisKK3Zv
aWQgVUlHYW1lcGFkUHJvdmlkZXI6OnZpZXdCZWNhbWVBY3RpdmUoV2ViUGFnZVByb3h5JiBwYWdl
KQoreworICAgIGlmICghbV9wcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRzLmNvbnRhaW5zKCZwYWdl
LnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kaXNh
YmxlTW9uaXRvcmluZ1RpbWVyLnN0b3AoKTsKKyAgICBzdGFydE1vbml0b3JpbmdHYW1lcGFkcygp
OworfQorCit2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjp2aWV3QmVjYW1lSW5hY3RpdmUoV2ViUGFn
ZVByb3h5JiBwYWdlKQoreworICAgIGF1dG8gcGFnZUZvckdhbWVwYWRJbnB1dCA9IHBsYXRmb3Jt
V2ViUGFnZVByb3h5Rm9yR2FtZXBhZElucHV0KCk7CisgICAgaWYgKHBhZ2VGb3JHYW1lcGFkSW5w
dXQgPT0gJnBhZ2UpCisgICAgICAgIHNjaGVkdWxlRGlzYWJsZUdhbWVwYWRNb25pdG9yaW5nKCk7
Cit9CisKK3ZvaWQgVUlHYW1lcGFkUHJvdmlkZXI6OnNjaGVkdWxlRGlzYWJsZUdhbWVwYWRNb25p
dG9yaW5nKCkKK3sKKyAgICBpZiAoIW1fZGlzYWJsZU1vbml0b3JpbmdUaW1lci5pc0FjdGl2ZSgp
KQorICAgICAgICBtX2Rpc2FibGVNb25pdG9yaW5nVGltZXIuc3RhcnRPbmVTaG90KDApOworfQor
Cit2b2lkIFVJR2FtZXBhZFByb3ZpZGVyOjpkaXNhYmxlTW9uaXRvcmluZ1RpbWVyRmlyZWQoKQor
eworICAgIHN0b3BNb25pdG9yaW5nR2FtZXBhZHMoKTsKK30KKwordm9pZCBVSUdhbWVwYWRQcm92
aWRlcjo6c3RhcnRNb25pdG9yaW5nR2FtZXBhZHMoKQoreworICAgIGlmIChtX2lzTW9uaXRvcmlu
Z0dhbWVwYWRzKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2lzTW9uaXRvcmluZ0dhbWVwYWRz
ID0gdHJ1ZTsKKyAgICBwbGF0Zm9ybVN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKCk7Cit9CisKK3Zv
aWQgVUlHYW1lcGFkUHJvdmlkZXI6OnN0b3BNb25pdG9yaW5nR2FtZXBhZHMoKQoreworICAgIGlm
ICghbV9pc01vbml0b3JpbmdHYW1lcGFkcykKKyAgICAgICAgcmV0dXJuOwogCi0gICAgc3RhcnRP
clN0b3BTeW5jaGluZ0dhbWVwYWRTdGF0ZSgpOworICAgIG1faXNNb25pdG9yaW5nR2FtZXBhZHMg
PSBmYWxzZTsKKyAgICBwbGF0Zm9ybVN0b3BNb25pdG9yaW5nR2FtZXBhZHMoKTsKIH0KIAogI2lm
ICFQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2Ft
ZXBhZC9VSUdhbWVwYWRQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dhbWVw
YWQvVUlHYW1lcGFkUHJvdmlkZXIuaAppbmRleCA1YjA0MDY4Li43MGRjODQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2FtZXBhZC9VSUdhbWVwYWRQcm92aWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HYW1lcGFkL1VJR2FtZXBhZFByb3ZpZGVyLmgK
QEAgLTI4LDkgKzI4LDkgQEAKICNpZiBFTkFCTEUoR0FNRVBBRCkKIAogI2luY2x1ZGUgPFdlYkNv
cmUvR2FtZXBhZFByb3ZpZGVyQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpAQCAtNDcsNiArNDcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcm9j
ZXNzUG9vbFN0YXJ0ZWRVc2luZ0dhbWVwYWRzKFdlYlByb2Nlc3NQb29sJik7CiAgICAgdm9pZCBw
cm9jZXNzUG9vbFN0b3BwZWRVc2luZ0dhbWVwYWRzKFdlYlByb2Nlc3NQb29sJik7CiAKKyAgICB2
b2lkIHZpZXdCZWNhbWVBY3RpdmUoV2ViUGFnZVByb3h5Jik7CisgICAgdm9pZCB2aWV3QmVjYW1l
SW5hY3RpdmUoV2ViUGFnZVByb3h5Jik7CisKICAgICBWZWN0b3I8R2FtZXBhZERhdGE+IGdhbWVw
YWRTdGF0ZXMoKSBjb25zdDsKIAogcHJpdmF0ZToKQEAgLTU0LDYgKzU3LDkgQEAgcHJpdmF0ZToK
ICAgICBVSUdhbWVwYWRQcm92aWRlcigpOwogICAgIH5VSUdhbWVwYWRQcm92aWRlcigpIGZpbmFs
OwogCisgICAgdm9pZCBzdGFydE1vbml0b3JpbmdHYW1lcGFkcygpOworICAgIHZvaWQgc3RvcE1v
bml0b3JpbmdHYW1lcGFkcygpOworCiAgICAgdm9pZCBwbGF0Zm9ybVN0YXJ0TW9uaXRvcmluZ0dh
bWVwYWRzKCk7CiAgICAgdm9pZCBwbGF0Zm9ybVN0b3BNb25pdG9yaW5nR2FtZXBhZHMoKTsKICAg
ICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6UGxhdGZvcm1HYW1lcGFkKj4mIHBsYXRmb3JtR2FtZXBh
ZHMoKTsKQEAgLTYzLDE1ICs2OSwyMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1HYW1l
cGFkRGlzY29ubmVjdGVkKFdlYkNvcmU6OlBsYXRmb3JtR2FtZXBhZCYpIGZpbmFsOwogICAgIHZv
aWQgcGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSgpIGZpbmFsOwogCi0gICAgdm9pZCBzdGFy
dE9yU3RvcFN5bmNoaW5nR2FtZXBhZFN0YXRlKCk7Ci0gICAgdm9pZCB1cGRhdGVUaW1lckZpcmVk
KCk7CisgICAgdm9pZCBzY2hlZHVsZUdhbWVwYWRTdGF0ZVN5bmMoKTsKKyAgICB2b2lkIGdhbWVw
YWRTeW5jVGltZXJGaXJlZCgpOworCisgICAgdm9pZCBzY2hlZHVsZURpc2FibGVHYW1lcGFkTW9u
aXRvcmluZygpOworICAgIHZvaWQgZGlzYWJsZU1vbml0b3JpbmdUaW1lckZpcmVkKCk7CiAKICAg
ICBIYXNoU2V0PFdlYlByb2Nlc3NQb29sKj4gbV9wcm9jZXNzUG9vbHNVc2luZ0dhbWVwYWRzOwog
CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxVSUdhbWVwYWQ+PiBtX2dhbWVwYWRzOwogCi0g
ICAgV2ViQ29yZTo6VGltZXIgbV90aW1lcjsKLSAgICBib29sIG1faGFkQWN0aXZpdHlTaW5jZUxh
c3RTeW5jaCB7IGZhbHNlIH07CisgICAgUnVuTG9vcDo6VGltZXI8VUlHYW1lcGFkUHJvdmlkZXI+
IG1fZ2FtZXBhZFN5bmNUaW1lcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxVSUdhbWVwYWRQcm92aWRl
cj4gbV9kaXNhYmxlTW9uaXRvcmluZ1RpbWVyOworCisgICAgYm9vbCBtX2lzTW9uaXRvcmluZ0dh
bWVwYWRzIHsgZmFsc2UgfTsKIH07CiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>