<?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>132393</bug_id>
          
          <creation_ts>2014-04-30 11:50:19 -0700</creation_ts>
          <short_desc>Fix PageVisibility on iOS</short_desc>
          <delta_ts>2014-04-30 17:24:31 -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>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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1005454</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-04-30 11:50:19 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005466</commentid>
    <comment_count>1</comment_count>
      <attachid>230508</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-04-30 12:12:42 -0700</bug_when>
    <thetext>Created attachment 230508
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005467</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-30 12:14:10 -0700</bug_when>
    <thetext>Attachment 230508 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/ProcessThrottler.h:48:  The parameter name &quot;throttler&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/ios/ProcessThrottler.h:48:  The parameter name &quot;visibility&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/ios/ProcessThrottler.h:69:  The parameter name &quot;visibility&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/ios/ProcessThrottler.h:99:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 4 in 14 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>1005475</commentid>
    <comment_count>3</comment_count>
      <attachid>230508</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-04-30 12:44:27 -0700</bug_when>
    <thetext>Comment on attachment 230508
Fix

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

r=me

I&apos;d probably out-of-line the ProcessThottler.h stuff since it&apos;s included from everywhere in WK2.

&gt; Source/WebKit2/UIProcess/WebProcessProxy.h:138
&gt; +    ProcessThrottler&amp; throttler() { return *m_throttler.get(); }

You don&apos;t need the .get() here.

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertion.mm:35
&gt; +const BKSProcessAssertionFlags suspenedTabFlags = (BKSProcessAssertionAllowIdleSleep);

Typo, should be suspendedTabFlags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005483</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-04-30 12:53:08 -0700</bug_when>
    <thetext>Transmitting file data ................
Committed revision 168038.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005600</commentid>
    <comment_count>5</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-04-30 17:24:31 -0700</bug_when>
    <thetext>+ r168069</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230508</attachid>
            <date>2014-04-30 12:12:42 -0700</date>
            <delta_ts>2014-04-30 12:44:27 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>132393.1.patch</filename>
            <type>text/plain</type>
            <size>34747</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODAzMikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNCBAQAorMjAxNC0wNC0zMCAgR2F2aW4g
QmFycmFjbG91Z2ggIDxiYXJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggUGFnZVZp
c2liaWxpdHkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzIzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDdXJyZW50bHkgcGFnZSB2aXNpYmlsaXR5IEFQSSBkb2Vzbid0IHdvcmsgY29ycmVj
dGx5IG9uIFdLMiBpT1MgZm9yIGEgZmV3IHJlYXNvbnMsCisgICAgICAgIHRoZSBtb3N0IHNpZ25p
ZmljYW50IG9mIHdoaWNoIGJlaW5nIHRoYXQgdGhlIG1vbWVudCBhIFdLV2ViVmlldyBsZWF2ZXMg
dGhlIHdpbmRvdworICAgICAgICB3ZSdsbCBzdXNwZW5kIHRoZSBjb250ZW50IHByb2Nlc3MsIHdo
aWNoIHJlbW92ZXMgdGhlIHBvc3NpYmlsaXR5IGZvciBhbnkgbm90aWZpY2F0aW9uCisgICAgICAg
IHRvIGJlIGRlbGl2ZXJlZC4gVGhpcyBwYXRjaCBhZGRyZXNzZXMgdGhpcyBpc3N1ZSwgYnkgYWxs
b3dpbmcgdGhlIHByb2Nlc3MgdG8gcnVuIGZvcgorICAgICAgICBsb25nIGVub3VnaCBmb3IgdGhl
IG5vdGlmaWNhdGlvbiB0byBiZSBkZWxpdmVyZWQuCisKKyAgICAgICAgMSkgSW50cm9kdWNlIGEg
bmV3IGNsYXNzLCBQcm9jZXNzVGhyb3R0bGVyLCB0byBlbmNhcHN1bGF0ZSB0aGUgcHJvY2VzcyBz
dXNwZW5zaW9uIGxvZ2ljLgorICAgICAgICAyKSBXZWJQYWdlUHJveHkgdXNlcyBQcm9jZXNzVGhy
b3R0bGVyOjpWaXNpYmlsaXR5VG9rZW4gdG8gY29tbXVuaWNhdGUgdmlzaWJpbGl0eSB0byB0aGUg
dGhyb3R0bGVyLgorICAgICAgICAzKSBXZWJQYWdlUHJveHkgdHJhY2tzIHBlbmRpbmcgZGlkVXBk
YXRlVmlld1N0YXRlIG1lc3NhZ2VzIHRvIGRldGVjdCB3aGVuIHRoZSB2aWV3IHN0YXRlIHVwZGF0
ZSBpbgorICAgICAgICAgICB0aGUgd2ViIGNvbnRlbnQgcHJvY2VzcyBoYXMgY29tcGxldGVkLgor
ICAgICAgICA0KSBEaXN0aWd1aXNoIGJldHdlZW4gJ0JhY2tncm91bmQnIGFuZCAnU3VzcGVuZGVk
JyBzdGF0ZXMgaW4gdGhlIFByb2Nlc3NBc3NlcnRpb24uCisKKyAgICAgICAgKiBTaGFyZWQvQ2hp
bGRQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgICAgIC0gbW92ZWQgbV9hc3NlcnRpb24gdG8gTmV0
d29ya1Byb2Nlc3NQcm94eSAvIFdlYlByb2Nlc3NQcm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICAgICAtIGFkZGVkIG1fYXNz
ZXJ0aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgICAgICAtIGluaXRp
YWxpemUgVmlzaWJpbGl0eVRva2VuIHN0YXRlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNzKToKKyAgICAgICAgICAgIC0gcmVpbml0aWFsaXplIFZp
c2liaWxpdHlUb2tlbiBzdGF0ZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp2aWV3
U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAgICAgLSB1cGRhdGUgVmlzaWJpbGl0eVRva2VuLCBp
bmNyZW1lbnQgbV9wZW5kaW5nVmlld1N0YXRlVXBkYXRlcyBhcyBuZWNlc3NhcnkuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRlVmlzaWJpbGl0eVRva2VuKToKKyAgICAgICAg
ICAgIC0gdXBkYXRlIHRoZSBWaXNpYmlsaXlUb2tlbiBiYXNlZCBvbiBwYWdlIHZpc2liaWxpdHks
IGFuZCB3aGV0aGVyIGFuIHVwZGF0ZSBpcyBzdGlsbCBwZW5kaW5nLgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZVZpZXdTdGF0ZSk6CisgICAgICAgICAgICAtIGRldGVj
dCB3aGVuIGEgdmlldyBzdGF0ZSBjaGFuZ2UgaGFzIGNvbXBsZXRlZCBpbiB0aGUgd2ViIHByb2Nl
c3MsIGFuZCB1cGRhdGUgdGhyb3R0bGUgc3RhdGUgYXMgbmVjZXNzYXJ5LgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aWRVcGRhdGVWaWV3U3RhdGUpOiBEZWxldGVkLgorICAgICAgICAgICAgLSBtb3ZlZCB0byAuY3Bw
LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eSk6CisgICAgICAgICAgICAtIGlu
aXRpYWxpemUgbV90aHJvdHRsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
ZGlkRmluaXNoTGF1bmNoaW5nKToKKyAgICAgICAgICAgIC0gbm90aWZ5IHRoZSBQYWdlVGhyb3R0
bGVyIG9mIHRoZSBuZXcgY29ubmVjdGlvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6dGhyb3R0bGVyKToK
KyAgICAgICAgICAgIC0gYWRkZWQgYWNjZXNzb3IuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6dXBkYXRlUHJvY2Vzc1N0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgICAgIC0gbW92
ZWQgdHJvdHRsaW5nIGxvZ2luIHRvIFByb2Nlc3NUaHJvdHRsZXIuCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjppc1Zp
ZXdXaW5kb3dBY3RpdmUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aXNWaWV3
Rm9jdXNlZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjppc1ZpZXdWaXNpYmxl
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmlzVmlld1Zpc2libGVPck9jY2x1
ZGVkKToKKyAgICAgICAgICAgIC0gdGhlc2Ugc2hvdWxkIG9ubHkgYmUgdHJ1ZSB3aGVuIHRoZSB2
aWV3IGlzIGluIGEgd2luZG93LgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aXNW
aXN1YWxseUlkbGUpOgorICAgICAgICAgICAgLSB0aGlzIHNob3VsZCBvbmx5IGJlIHRydWUgd2hl
biB0aGUgdmlldyBpcyBub3QgaW4gYSB3aW5kb3cuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0
aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpmbGFnc0ZvclN0YXRlKToKKyAgICAgICAgICAgIC0g
bWFwIGZyb20gZW51bSAtPiBCS1NBc3NlcnRpb24gZmxhZ3MgdmFsdWVzLgorICAgICAgICAoV2Vi
S2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKToKKyAgICAgICAgICAgIC0g
dXNlIGZsYWdzRm9yU3RhdGUgKGFkZCBzdXBwb3J0IGZvciBTdXNwZW5kZWQgc3RhdGUpLgorICAg
ICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpzZXRTdGF0ZSk6CisgICAgICAgICAgICAt
IHVzZSBmbGFnc0ZvclN0YXRlIChhZGQgc3VwcG9ydCBmb3IgU3VzcGVuZGVkIHN0YXRlKS4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NUaHJvdHRsZXIuaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OlZpc2liaWxpdHlUb2tlbjo6dmlzaWJpbGl0eSk6
CisgICAgICAgICAgICAtIGFjY2Vzc29yLgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0
bGVyOjpWaXNpYmlsaXR5VG9rZW46OnNldFZpc2liaWxpdHkpOgorICAgICAgICAgICAgLSB1cGRh
dGUgVmlzaWJpbGl0eSB2YWx1ZTsgdXBkYXRlIHRoZSB0b2tlbiBhcyBuZWNlc3NhcnkuCisgICAg
ICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OlByb2Nlc3NUaHJvdHRsZXIpOgorICAgICAg
ICAgICAgLSBjb25zdHJ1Y3RvcjsgZG9lcyBub3QgdGFrZSBhbiBhc3NlbnRpb24gdW50aWwgZGlk
Q29ubm5lY3RUb1Byb2Nlc3MgaXMgY2FsbGVkLgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhy
b3R0bGVyOjp2aXNpYmlsaXR5VG9rZW4pOgorICAgICAgICAgICAgLSBjcmVhdGUgYSBWaXNpYmls
aXR5VG9rZW4uCisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OmRpZENvbm5uZWN0
VG9Qcm9jZXNzKToKKyAgICAgICAgICAgIC0gdGFrZSBhbiBhc3NlcnRpb24uCisgICAgICAgIChX
ZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OndlYWtQdHIpOgorICAgICAgICAgICAgLSBjcmVhdGUg
YSB3ZWFrIHBvaW50ZXIsIHVzZWQgZm9yIHJlZmVyZW5jZXMgZnJvbSBWaXNpYmlsaXR5VG9rZW4g
dG8gdGhlIHRocm90dGxlci4KKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6YXNz
ZXJ0aW9uU3RhdGUpOgorICAgICAgICAgICAgLSBkZXRlcm1pbmUgdGhlIGNvcnJlY3QgQXNzZXJ0
aW9uU3RhdGUgZm9yIHRoZSBwcm9jZXNzLCBiYXNlZCBvbiBjdXJyZW50IHZpc2liaWxpdHkuCisg
ICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbik6CisgICAg
ICAgICAgICAtIHVwZGF0ZSBhc3NlcnRpb24sIGNhbGxlZCBpbiByZXNwb25zZSB0byB2aXNpYmls
aXR5IGNoYW5nZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NUaHJvdHRsZXIubW06
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpWaXNpYmlsaXR5VG9r
ZW46OlZpc2liaWxpdHlUb2tlbik6CisgICAgICAgICAgICAtIGNvbnN0cnVjdG9yLgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpWaXNpYmlsaXR5VG9rZW46On5WaXNpYmlsaXR5
VG9rZW4pOgorICAgICAgICAgICAgLSBzZXQgdmlzaWJpbGl0eSB0byBoaWRkZW4gdG8gcmVzZXQu
CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OlZpc2liaWxpdHlUb2tlbjo6aGlk
ZVRpbWVyRmlyZWQpOgorICAgICAgICAgICAgLSBhdXRvbWF0aWNhbGx5IGRlY2F5IGZyb20gSGlk
aW5nIC0+IEhpZGRlbiBvbiBhIHRpbWVvdXQuCisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJv
dHRsZXI6OlZpc2liaWxpdHlUb2tlbjo6c2V0VmlzaWJpbGl0eUludGVybmFsKToKKyAgICAgICAg
ICAgIC0gdXBkYXRlIGNvdW50ZXJzIHRyYWNraW5nIHZpc2liaWxpdHkgaW4gUHJvY2Vzc1Rocm90
dGxlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgZGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICAgICAtIFRoaXMg
YWZmZWN0cyBhbGwgdmlldyBzdGF0ZSBmbGFncywgbm90IGp1c3QgdGhlICdJbldpbmRvdycgc3Rh
dGUuCisgICAgICAgICAgICAgIElmIHRoZSB2aWV3IG1vdmVzIG91dCBvZiBhIHdpbmRvdyByZXF1
ZXN0IGEgcmVwbHkgZnJvbSB0aGUgV2ViQ29udGVudCAtIHdlIHVzZSB0aGlzCisgICAgICAgICAg
ICAgIHRvIGRldGVjdCB3aGVuIHRoZSBwYWdlIHZpc2liaWxpdHkgZXZlbnQgaGFzIGNvbXBsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcm9jZXNzU3RhdGUpOiBEZWxldGVk
LgorICAgICAgICAgICAgLSByZW1vdmVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgICAgIC0gYWRkZWQgbmV3IGZpbGVzLgorCiAyMDE0LTA0
LTMwICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzIzNjMKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5oCShyZXZpc2lvbiAxNjc0MTApCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuaAkod29ya2luZyBjb3B5KQpA
QCAtMzIsMTAgKzMyLDYgQEAKIAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogCi0jaWYgUExBVEZPUk0oSU9TKSAmJiBVU0UoWFBDX1NFUlZJQ0VTKQotI2luY2x1ZGUgIlBy
b2Nlc3NBc3NlcnRpb24uaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
Q2hpbGRQcm9jZXNzUHJveHkgOiBQcm9jZXNzTGF1bmNoZXI6OkNsaWVudCwgcHVibGljIElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50LCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q2hpbGRQcm9j
ZXNzUHJveHk+IHsKQEAgLTg2LDEwICs4Miw2IEBAIHByb3RlY3RlZDoKICAgICBib29sIGRpc3Bh
dGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAg
Ym9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKICAgICAKLSNp
ZiBQTEFURk9STShJT1MpICYmIFVTRShYUENfU0VSVklDRVMpCi0gICAgc3RkOjp1bmlxdWVfcHRy
PFByb2Nlc3NBc3NlcnRpb24+IG1fYXNzZXJ0aW9uOwotI2VuZGlmCi0gICAgCiBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNo
T3B0aW9ucyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbldpbGxPcGVuKElQQzo6
Q29ubmVjdGlvbiopOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAJKHJldmlzaW9uIDE2NzQwNykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjksNiArMjY5LDkgQEAgV2ViUGFnZVBy
b3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcAogICAgICwgbV9nZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKICAgICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyKCp0aGlzKQogICAgICwgbV92aWV3U3RhdGUoVmlld1N0YXRlOjpOb0Zs
YWdzKQorI2lmIFBMQVRGT1JNKElPUykKKyAgICAsIG1fdmlzaWJpbGl0eVRva2VuKHByb2Nlc3Mu
dGhyb3R0bGVyKCkudmlzaWJpbGl0eVRva2VuKFByb2Nlc3NUaHJvdHRsZXI6OlZpc2liaWxpdHk6
OkhpZGRlbikpCisjZW5kaWYKICAgICAsIG1fYmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJk
TGlzdDo6Y3JlYXRlKCp0aGlzKSkKICAgICAsIG1fbG9hZFN0YXRlQXRQcm9jZXNzRXhpdChGcmFt
ZUxvYWRTdGF0ZTo6U3RhdGU6OkZpbmlzaGVkKQogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVVTRShB
U1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKQEAgLTM1MSw2ICszNTQsNyBAQCBXZWJQYWdlUHJveHk6
OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwCiAgICAgLCBtX21lZGlhVm9sdW1lKDEpCiAgICAg
LCBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3codHJ1ZSkKICAgICAsIG1fd2FpdGluZ0ZvckRp
ZFVwZGF0ZVZpZXdTdGF0ZShmYWxzZSkKKyAgICAsIG1fcGVuZGluZ1ZpZXdTdGF0ZVVwZGF0ZXMo
MCkKICAgICAsIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yKERvTm90UGluKQogICAgICwgbV9uYXZp
Z2F0aW9uSUQoMCkKIHsKQEAgLTM1OCw3ICszNjIsOCBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQ
cm94eShQYWdlQ2xpZW50JiBwCiAgICAgICAgIG1fdmlzaXRlZExpbmtQcm92aWRlci0+YWRkUHJv
Y2VzcyhtX3Byb2Nlc3MuZ2V0KCkpOwogCiAgICAgdXBkYXRlVmlld1N0YXRlKCk7Ci0KKyAgICB1
cGRhdGVWaXNpYmlsaXR5VG9rZW4oKTsKKyAgICAKICNpZiBIQVZFKE9VVF9PRl9QUk9DRVNTX0xB
WUVSX0hPU1RJTkcpCiAgICAgbV9sYXllckhvc3RpbmdNb2RlID0gbV92aWV3U3RhdGUgJiBWaWV3
U3RhdGU6OklzSW5XaW5kb3cgPyBtX3BhZ2VDbGllbnQudmlld0xheWVySG9zdGluZ01vZGUoKSA6
IExheWVySG9zdGluZ01vZGU6Ok91dE9mUHJvY2VzczsKICNlbmRpZgpAQCAtNTE2LDcgKzUyMSw4
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2VzcygKICAgICBBU1NFUlQo
bV9wcm9jZXNzLT5zdGF0ZSgpID09IFdlYlByb2Nlc3NQcm94eTo6U3RhdGU6OlRlcm1pbmF0ZWQp
OwogCiAgICAgdXBkYXRlVmlld1N0YXRlKCk7Ci0KKyAgICB1cGRhdGVWaXNpYmlsaXR5VG9rZW4o
KTsKKyAgICAKICAgICBtX2lzVmFsaWQgPSB0cnVlOwogCiAgICAgaWYgKG1fcHJvY2Vzcy0+Y29u
dGV4dCgpLnByb2Nlc3NNb2RlbCgpID09IFByb2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFyeVByb2Nl
c3MpCkBAIC0xMDUyLDggKzEwNTgsMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdTdGF0ZURp
ZENoYW5nZShWaQogICAgIHVwZGF0ZVZpZXdTdGF0ZShtYXlIYXZlQ2hhbmdlZCk7CiAgICAgVmll
d1N0YXRlOjpGbGFncyBjaGFuZ2VkID0gbV92aWV3U3RhdGUgXiBwcmV2aW91c1ZpZXdTdGF0ZTsK
IAotICAgIGlmIChjaGFuZ2VkKQotICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlNldFZpZXdTdGF0ZShtX3ZpZXdTdGF0ZSwgd2FudHNSZXBseSA9PSBXYW50c1JlcGx5
T3JOb3Q6OkRvZXNXYW50UmVwbHkpLCBtX3BhZ2VJRCk7CisgICAgaWYgKGNoYW5nZWQpIHsKKyAg
ICAgICAgYm9vbCByZXF1ZXN0UmVwbHkgPSB3YW50c1JlcGx5ID09IFdhbnRzUmVwbHlPck5vdDo6
RG9lc1dhbnRSZXBseTsKKyAgICAgICAgaWYgKHJlcXVlc3RSZXBseSkKKyAgICAgICAgICAgICsr
bV9wZW5kaW5nVmlld1N0YXRlVXBkYXRlczsKKyAgICAKKyAgICAgICAgdXBkYXRlVmlzaWJpbGl0
eVRva2VuKCk7CisgICAgICAgIAorICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlNldFZpZXdTdGF0ZShtX3ZpZXdTdGF0ZSwgcmVxdWVzdFJlcGx5KSwgbV9wYWdlSUQp
OworICAgIH0KIAogICAgIGlmIChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc1Zpc3VhbGx5SWRsZSkK
ICAgICAgICAgbV9wcm9jZXNzLT5wYWdlU3VwcHJlc3NpYmlsaXR5Q2hhbmdlZCh0aGlzKTsKQEAg
LTEwODAsMTIgKzEwOTMsMjggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdTdGF0ZURpZENoYW5n
ZShWaQogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKGNoYW5nZWQgJiBWaWV3U3RhdGU6OklzSW5X
aW5kb3cpCi0gICAgICAgIHByb2Nlc3MoKS51cGRhdGVQcm9jZXNzU3RhdGUoKTsKLQogICAgIHVw
ZGF0ZUJhY2tpbmdTdG9yZURpc2NhcmRhYmxlU3RhdGUoKTsKIH0KKyAgICAKK3ZvaWQgV2ViUGFn
ZVByb3h5Ojp1cGRhdGVWaXNpYmlsaXR5VG9rZW4oKQoreworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICBpZiAoaXNWaWV3VmlzaWJsZSgpKQorICAgICAgICBtX3Zpc2liaWxpdHlUb2tlbi0+c2V0Vmlz
aWJpbGl0eShQcm9jZXNzVGhyb3R0bGVyOjpWaXNpYmlsaXR5OjpWaXNpYmxlKTsKKyAgICBlbHNl
IGlmIChtX3Zpc2liaWxpdHlUb2tlbi0+dmlzaWJpbGl0eSgpICE9IFByb2Nlc3NUaHJvdHRsZXI6
OlZpc2liaWxpdHk6OkhpZGRlbiAmJiBtX3BlbmRpbmdWaWV3U3RhdGVVcGRhdGVzKQorICAgICAg
ICBtX3Zpc2liaWxpdHlUb2tlbi0+c2V0VmlzaWJpbGl0eShQcm9jZXNzVGhyb3R0bGVyOjpWaXNp
YmlsaXR5OjpIaWRpbmcpOworICAgIGVsc2UKKyAgICAgICAgbV92aXNpYmlsaXR5VG9rZW4tPnNl
dFZpc2liaWxpdHkoUHJvY2Vzc1Rocm90dGxlcjo6VmlzaWJpbGl0eTo6SGlkZGVuKTsKKyNlbmRp
ZgorfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkVXBkYXRlVmlld1N0YXRlKCkKK3sKKyAgICBt
X3dhaXRpbmdGb3JEaWRVcGRhdGVWaWV3U3RhdGUgPSBmYWxzZTsKKyAgICAtLW1fcGVuZGluZ1Zp
ZXdTdGF0ZVVwZGF0ZXM7CisgICAgdXBkYXRlVmlzaWJpbGl0eVRva2VuKCk7Cit9CisgICAgCiB2
b2lkIFdlYlBhZ2VQcm94eTo6bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpCiB7CiAgICAgaWYg
KCFpc1ZhbGlkKCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CShyZXZpc2lvbiAxNjc0MDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw2ICsxMDAsMTAgQEAKICNpbmNsdWRlICJBdHRy
aWJ1dGVkU3RyaW5nLmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPUykKKyNpbmNsdWRlICJQ
cm9jZXNzVGhyb3R0bGVyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBGaW5k
Q2xpZW50OwogY2xhc3MgRm9ybUNsaWVudDsKQEAgLTc0Nyw3ICs3NTEsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGxpc3RlbkZvckxheW91dE1pbGVzdG9uZXMoV2ViQ29yZTo6TGF5b3V0TWlsZXN0
b25lcyk7CiAKLSAgICB2b2lkIGRpZFVwZGF0ZVZpZXdTdGF0ZSgpIHsgbV93YWl0aW5nRm9yRGlk
VXBkYXRlVmlld1N0YXRlID0gZmFsc2U7IH0KKyAgICB2b2lkIGRpZFVwZGF0ZVZpZXdTdGF0ZSgp
OwogCiAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gbV9t
YWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyOyB9CiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNj
cm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXI7
IH0KQEAgLTk5NCw3ICs5OTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShm
bG9hdCk7CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wpOwogICAg
IGJvb2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1fbWF5U3Rh
cnRNZWRpYVdoZW5JbldpbmRvdzsgfQotCisgICAgICAgIAogICAgIC8vIFdlYlBvcHVwTWVudVBy
b3h5OjpDbGllbnQKICAgICB2aXJ0dWFsIE5hdGl2ZVdlYk1vdXNlRXZlbnQqIGN1cnJlbnRseVBy
b2Nlc3NlZE1vdXNlRG93bkV2ZW50KCk7CiAKQEAgLTEwNjYsNyArMTA3MCw4IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIAogICAgIHZvaWQgdXBkYXRlVmlld1N0
YXRlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3MgZmxhZ3NUb1VwZGF0ZSA9IFdlYkNvcmU6OlZp
ZXdTdGF0ZTo6QWxsRmxhZ3MpOwotCisgICAgdm9pZCB1cGRhdGVWaXNpYmlsaXR5VG9rZW4oKTsK
KyAgICAgICAgCiAgICAgdm9pZCByZXNldFN0YXRlKCk7CiAgICAgdm9pZCByZXNldFN0YXRlQWZ0
ZXJQcm9jZXNzRXhpdGVkKCk7CiAKQEAgLTE0ODMsMTAgKzE0ODgsMTQgQEAgcHJpdmF0ZToKIAog
ICAgIFdlYkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3MgbV92aWV3U3RhdGU7CiAKKyNpZiBQTEFURk9S
TShJT1MpCisgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NUaHJvdHRsZXI6OlZpc2liaWxpdHlU
b2tlbj4gbV92aXNpYmlsaXR5VG9rZW47CisjZW5kaWYKKyAgICAgICAgCiAgICAgYm9vbCBtX2Nh
bkdvQmFjazsKICAgICBib29sIG1fY2FuR29Gb3J3YXJkOwogICAgIFJlZjxXZWJCYWNrRm9yd2Fy
ZExpc3Q+IG1fYmFja0ZvcndhcmRMaXN0OwotICAgIAorICAgICAgICAKICAgICBib29sIG1fbWFp
bnRhaW5zSW5hY3RpdmVTZWxlY3Rpb247CiAKICAgICBTdHJpbmcgbV90b29sVGlwOwpAQCAtMTY0
MCw3ICsxNjQ5LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWF5U3RhcnRNZWRpYVdoZW5Jbldp
bmRvdzsKIAogICAgIGJvb2wgbV93YWl0aW5nRm9yRGlkVXBkYXRlVmlld1N0YXRlOwotCisgICAg
dW5zaWduZWQgbV9wZW5kaW5nVmlld1N0YXRlVXBkYXRlczsKKyAgICAgICAgCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV90ZW1wb3JhcnlQREZGaWxl
czsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAJKHJldmlzaW9uIDE2NzQwNykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Nyw2ICs5Nyw5IEBAIFdlYlBy
b2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYkNvbnQKICAgICAsIG1fcHJvY2Vzc1N1cHBy
ZXNzaW9uRW5hYmxlZChmYWxzZSkKICNlbmRpZgogICAgICwgbV9udW1iZXJPZlRpbWVzU3VkZGVu
VGVybWluYXRpb25XYXNEaXNhYmxlZCgwKQorI2lmIFBMQVRGT1JNKElPUykKKyAgICAsIG1fdGhy
b3R0bGVyKHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1Rocm90dGxlcj4oKSkKKyNlbmRpZgogewog
ICAgIGNvbm5lY3QoKTsKIH0KQEAgLTQ1OCw3ICs0NjEsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmRpZEZpbmlzaExhdW5jaGluZwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHVwZGF0ZVBy
b2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7CiAjZW5kaWYKLSAgICB1cGRhdGVQcm9jZXNzU3RhdGUo
KTsKKyAgICAKKyNpZiBQTEFURk9STShJT1MpICYmIFVTRShYUENfU0VSVklDRVMpCisgICAgeHBj
X2Nvbm5lY3Rpb25fdCB4cGNDb25uZWN0aW9uID0gY29ubmVjdGlvbigpLT54cGNDb25uZWN0aW9u
KCk7CisgICAgQVNTRVJUKHhwY0Nvbm5lY3Rpb24pOworICAgIG1fdGhyb3R0bGVyLT5kaWRDb25u
bmVjdFRvUHJvY2Vzcyh4cGNfY29ubmVjdGlvbl9nZXRfcGlkKHhwY0Nvbm5lY3Rpb24pKTsKKyNl
bmRpZgogfQogCiBXZWJGcmFtZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYkZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCShyZXZpc2lvbiAxNjc0MTApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDEwIEBACiAj
aW5jbHVkZSAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaCIKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oSU9TKQorI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBVUkw7CiBzdHJ1Y3QgUGx1Z2luSW5mbzsKQEAgLTEzMCw4
ICsxMzQsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCB3aW5kb3dTZXJ2ZXJDb25uZWN0aW9uU3Rh
dGVDaGFuZ2VkKCk7CiAKLSAgICB2b2lkIHVwZGF0ZVByb2Nlc3NTdGF0ZSgpOwotCisjaWYgUExB
VEZPUk0oSU9TKQorICAgIFByb2Nlc3NUaHJvdHRsZXImIHRocm90dGxlcigpIHsgcmV0dXJuICpt
X3Rocm90dGxlci5nZXQoKTsgfQorI2VuZGlmCisgICAgCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IFdlYlByb2Nlc3NQcm94eShXZWJDb250ZXh0Jik7CiAKQEAgLTIxNiwxMSArMjIyLDExIEBAIHBy
aXZhdGU6CiAjZW5kaWYKIAogICAgIGludCBtX251bWJlck9mVGltZXNTdWRkZW5UZXJtaW5hdGlv
bldhc0Rpc2FibGVkOwotfTsKLQotI2lmICFQTEFURk9STShJT1MpCi1pbmxpbmUgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OnVwZGF0ZVByb2Nlc3NTdGF0ZSgpIHsgfQorICAgIAorI2lmIFBMQVRGT1JN
KElPUykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcj4gbV90aHJvdHRsZXI7
CiAjZW5kaWYKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CShyZXZpc2lvbiAxNjc0MDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDEwIEBACiAj
aW5jbHVkZSAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaCIKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oSU9TKQorI2luY2x1ZGUgIlByb2Nlc3NBc3NlcnRpb24uaCIKKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKIH0KQEAgLTk2
LDYgKzEwMCwxMCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQogICAg
IEN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5IG1fY3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk7
CiAjZW5kaWYKKyAgICAKKyNpZiBQTEFURk9STShJT1MpCisgICAgc3RkOjp1bmlxdWVfcHRyPFBy
b2Nlc3NBc3NlcnRpb24+IG1fYXNzZXJ0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgJKHJldmlzaW9uIDE2NzQwNykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTks
OCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdGb2N1c2VkKCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGlzVmlld1Zpc2libGUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNWaWV3SW5XaW5kb3coKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3
VmlzaWJsZU9yT2NjbHVkZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWaXN1YWxs
eUlkbGUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEV4aXQoKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNzKCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIHBhZ2VDbG9zZWQoKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQkocmV2aXNpb24g
MTY3NDA3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA5LDIwICsxMDksMTcgQEAgSW50U2l6ZSBQYWdlQ2xp
ZW50SW1wbDo6dmlld1NpemUoKQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdXaW5kb3dB
Y3RpdmUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAg
cmV0dXJuIFttX2NvbnRlbnRWaWV3IHdpbmRvd107CiB9CiAKIGJvb2wgUGFnZUNsaWVudEltcGw6
OmlzVmlld0ZvY3VzZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuIFttX2NvbnRlbnRWaWV3IHdpbmRvd107CiB9CiAKIGJvb2wgUGFnZUNs
aWVudEltcGw6OmlzVmlld1Zpc2libGUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIFttX2NvbnRlbnRWaWV3IHdpbmRvd107CiB9CiAKIGJv
b2wgUGFnZUNsaWVudEltcGw6OmlzVmlld0luV2luZG93KCkKQEAgLTEzMCw2ICsxMjcsMTYgQEAg
Ym9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3SW5XaW5kb3coKQogICAgIHJldHVybiBbbV9jb250
ZW50VmlldyB3aW5kb3ddOwogfQogCitib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdWaXNpYmxl
T3JPY2NsdWRlZCgpCit7CisgICAgcmV0dXJuIFttX2NvbnRlbnRWaWV3IHdpbmRvd107Cit9CisK
K2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlzdWFsbHlJZGxlKCkKK3sKKyAgICByZXR1cm4gIVtt
X2NvbnRlbnRWaWV3IHdpbmRvd107Cit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6OnByb2Nlc3NE
aWRFeGl0KCkKIHsKICAgICBbbV9jb250ZW50VmlldyBfcHJvY2Vzc0RpZEV4aXRdOwpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uLmgJKHJl
dmlzaW9uIDE2NzYyNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fz
c2VydGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMyArMjgsMTQgQEAKIAogI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKElPUykgJiYgVVNFKFhQQ19TRVJWSUNF
UykKKyNpZiBQTEFURk9STShJT1MpCiAKIE9CSkNfQ0xBU1MgQktTUHJvY2Vzc0Fzc2VydGlvbjsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiBlbnVtIGNsYXNzIEFzc2VydGlvblN0YXRlIHsK
KyAgICBTdXNwZW5kZWQsCiAgICAgQmFja2dyb3VuZCwKICAgICBGb3JlZ3JvdW5kCiB9OwpAQCAt
NDUsMTEgKzQ2LDExIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHNldFN0YXRlKEFzc2VydGlv
blN0YXRlKTsKICAgICAKLSNpZiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKIHByaXZhdGU6Cisj
aWYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCiAgICAgUmV0YWluUHRyPEJLU1Byb2Nlc3NBc3Nl
cnRpb24+IG1fYXNzZXJ0aW9uOwotICAgIEFzc2VydGlvblN0YXRlIG1fYXNzZXJ0aW9uU3RhdGU7
CiAjZW5kaWYKKyAgICBBc3NlcnRpb25TdGF0ZSBtX2Fzc2VydGlvblN0YXRlOwogfTsKICAgICAK
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbi5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3Nl
cnRpb24ubW0JKHJldmlzaW9uIDE2NzYyMikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvUHJvY2Vzc0Fzc2VydGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsMzkgKzI2LDQzIEBA
CiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlByb2Nlc3NBc3NlcnRpb24uaCIKIAotI2lm
IFBMQVRGT1JNKElPUykgJiYgVVNFKFhQQ19TRVJWSUNFUykKKyNpZiBQTEFURk9STShJT1MpCiAK
ICNpbXBvcnQgPEFzc2VydGlvblNlcnZpY2VzL0JLU1Byb2Nlc3NBc3NlcnRpb24uaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLSNpZiBQTEFURk9STShJT1NfU0lNVUxBVE9SKQotCi1Qcm9jZXNz
QXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90LCBBc3NlcnRpb25TdGF0ZSkKLXsKLX0K
LQotdm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjpzZXRTdGF0ZShBc3NlcnRpb25TdGF0ZSkKK2NvbnN0
IEJLU1Byb2Nlc3NBc3NlcnRpb25GbGFncyBzdXNwZW5lZFRhYkZsYWdzID0gKEJLU1Byb2Nlc3NB
c3NlcnRpb25BbGxvd0lkbGVTbGVlcCk7Citjb25zdCBCS1NQcm9jZXNzQXNzZXJ0aW9uRmxhZ3Mg
YmFja2dyb3VuZFRhYkZsYWdzID0gKEJLU1Byb2Nlc3NBc3NlcnRpb25BbGxvd0lkbGVTbGVlcCB8
IEJLU1Byb2Nlc3NBc3NlcnRpb25QcmV2ZW50VGFza1N1c3BlbmQgfCBCS1NQcm9jZXNzQXNzZXJ0
aW9uQWxsb3dTdXNwZW5kT25TbGVlcCk7Citjb25zdCBCS1NQcm9jZXNzQXNzZXJ0aW9uRmxhZ3Mg
Zm9yZWdyb3VuZFRhYkZsYWdzID0gKEJLU1Byb2Nlc3NBc3NlcnRpb25BbGxvd0lkbGVTbGVlcCB8
IEJLU1Byb2Nlc3NBc3NlcnRpb25QcmV2ZW50VGFza1N1c3BlbmQgfCBCS1NQcm9jZXNzQXNzZXJ0
aW9uQWxsb3dTdXNwZW5kT25TbGVlcCB8IEJLU1Byb2Nlc3NBc3NlcnRpb25XYW50c0ZvcmVncm91
bmRSZXNvdXJjZVByaW9yaXR5IHwgQktTUHJvY2Vzc0Fzc2VydGlvblByZXZlbnRUYXNrVGhyb3R0
bGVEb3duKTsKKyAgICAKK3N0YXRpYyBCS1NQcm9jZXNzQXNzZXJ0aW9uRmxhZ3MgZmxhZ3NGb3JT
dGF0ZShBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSkKIHsKKyAgICBzd2l0Y2ggKGFzc2Vy
dGlvblN0YXRlKSB7CisgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkOgorICAgICAg
ICByZXR1cm4gc3VzcGVuZWRUYWJGbGFnczsKKyAgICBjYXNlIEFzc2VydGlvblN0YXRlOjpCYWNr
Z3JvdW5kOgorICAgICAgICByZXR1cm4gYmFja2dyb3VuZFRhYkZsYWdzOworICAgIGNhc2UgQXNz
ZXJ0aW9uU3RhdGU6OkZvcmVncm91bmQ6CisgICAgICAgIHJldHVybiBmb3JlZ3JvdW5kVGFiRmxh
Z3M7CisgICAgfQogfQotCi0jZWxzZQotCi1jb25zdCBCS1NQcm9jZXNzQXNzZXJ0aW9uRmxhZ3Mg
YmFja2dyb3VuZFRhYkZsYWdzID0gKEJLU1Byb2Nlc3NBc3NlcnRpb25BbGxvd0lkbGVTbGVlcCk7
Ci1jb25zdCBCS1NQcm9jZXNzQXNzZXJ0aW9uRmxhZ3MgZm9yZWdyb3VuZFRhYkZsYWdzID0gKEJL
U1Byb2Nlc3NBc3NlcnRpb25BbGxvd0lkbGVTbGVlcCB8IEJLU1Byb2Nlc3NBc3NlcnRpb25QcmV2
ZW50VGFza1N1c3BlbmQgfCBCS1NQcm9jZXNzQXNzZXJ0aW9uQWxsb3dTdXNwZW5kT25TbGVlcCB8
IEJLU1Byb2Nlc3NBc3NlcnRpb25XYW50c0ZvcmVncm91bmRSZXNvdXJjZVByaW9yaXR5IHwgQktT
UHJvY2Vzc0Fzc2VydGlvblByZXZlbnRUYXNrVGhyb3R0bGVEb3duKTsKLQorICAgIAogUHJvY2Vz
c0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihwaWRfdCBwaWQsIEFzc2VydGlvblN0YXRlIGFz
c2VydGlvblN0YXRlKQogeworICAgIG1fYXNzZXJ0aW9uU3RhdGUgPSBhc3NlcnRpb25TdGF0ZTsK
KyAgICAKKyNpZiBQTEFURk9STShJT1NfU0lNVUxBVE9SKQorICAgIFVOVVNFRF9QQVJBTShwaWQp
OworI2Vsc2UKICAgICBCS1NQcm9jZXNzQXNzZXJ0aW9uQWNxdWlzaXRpb25IYW5kbGVyIGhhbmRs
ZXIgPSBeKEJPT0wgYWNxdWlyZWQpIHsKICAgICAgICAgaWYgKCFhY3F1aXJlZCkgewogICAgICAg
ICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gYWNxdWlyZSBhc3NlcnRpb24gZm9yIHByb2Nlc3Mg
JWQiLCBwaWQpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0K
ICAgICB9OwotCi0gICAgQktTUHJvY2Vzc0Fzc2VydGlvbkZsYWdzIGZsYWdzID0gKGFzc2VydGlv
blN0YXRlID09IEFzc2VydGlvblN0YXRlOjpGb3JlZ3JvdW5kKSA/IGZvcmVncm91bmRUYWJGbGFn
cyA6IGJhY2tncm91bmRUYWJGbGFnczsKLSAgICBtX2Fzc2VydGlvblN0YXRlID0gYXNzZXJ0aW9u
U3RhdGU7Ci0gICAgbV9hc3NlcnRpb24gPSBhZG9wdE5TKFtbQktTUHJvY2Vzc0Fzc2VydGlvbiBh
bGxvY10gaW5pdFdpdGhQSUQ6cGlkIGZsYWdzOmZsYWdzIHJlYXNvbjpCS1NQcm9jZXNzQXNzZXJ0
aW9uUmVhc29uRXh0ZW5zaW9uIG5hbWU6QCJXZWIgY29udGVudCB2aXNpYmxlIiB3aXRoSGFuZGxl
cjpoYW5kbGVyXSk7CisgICAgbV9hc3NlcnRpb24gPSBhZG9wdE5TKFtbQktTUHJvY2Vzc0Fzc2Vy
dGlvbiBhbGxvY10gaW5pdFdpdGhQSUQ6cGlkIGZsYWdzOmZsYWdzRm9yU3RhdGUoYXNzZXJ0aW9u
U3RhdGUpIHJlYXNvbjpCS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uRXh0ZW5zaW9uIG5hbWU6QCJX
ZWIgY29udGVudCB2aXNpYmxlIiB3aXRoSGFuZGxlcjpoYW5kbGVyXSk7CisjZW5kaWYKIH0KIAog
dm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjpzZXRTdGF0ZShBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25T
dGF0ZSkKQEAgLTY2LDEzICs3MCwxMiBAQCB2b2lkIFByb2Nlc3NBc3NlcnRpb246OnNldFN0YXRl
KEFzc2VydGlvCiAgICAgaWYgKG1fYXNzZXJ0aW9uU3RhdGUgPT0gYXNzZXJ0aW9uU3RhdGUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIEJLU1Byb2Nlc3NBc3NlcnRpb25GbGFncyBmbGFncyA9IChh
c3NlcnRpb25TdGF0ZSA9PSBBc3NlcnRpb25TdGF0ZTo6Rm9yZWdyb3VuZCkgPyBmb3JlZ3JvdW5k
VGFiRmxhZ3MgOiBiYWNrZ3JvdW5kVGFiRmxhZ3M7CiAgICAgbV9hc3NlcnRpb25TdGF0ZSA9IGFz
c2VydGlvblN0YXRlOwotICAgIFttX2Fzc2VydGlvbiBzZXRGbGFnczpmbGFnc107Ci19Ci0KKyNp
ZiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKKyAgICBbbV9hc3NlcnRpb24gc2V0RmxhZ3M6Zmxh
Z3NGb3JTdGF0ZShhc3NlcnRpb25TdGF0ZSldOwogI2VuZGlmCi0KK30KKyAgICAKIH0KIAogI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykgJiYgVVNFKFhQQ19TRVJWSUNFUykKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1Rocm90dGxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1Rocm90dGxlci5oCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzVGhyb3R0bGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFByb2Nl
c3NUaHJvdHRsZXJfaAorI2RlZmluZSBQcm9jZXNzVGhyb3R0bGVyX2gKKworI2luY2x1ZGUgIlBy
b2Nlc3NBc3NlcnRpb24uaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCisjaWYgUExBVEZPUk0oSU9TKQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKyAgICAKK2NsYXNzIFByb2Nlc3NUaHJvdHRsZXIgeworcHVibGljOgorICAgIGVudW0gY2xh
c3MgVmlzaWJpbGl0eSB7CisgICAgICAgIFZpc2libGUsCisgICAgICAgIEhpZGluZywKKyAgICAg
ICAgSGlkZGVuCisgICAgfTsKKyAgICAKKyAgICBjbGFzcyBWaXNpYmlsaXR5VG9rZW4geworICAg
IHB1YmxpYzoKKyAgICAgICAgVmlzaWJpbGl0eVRva2VuKFByb2Nlc3NUaHJvdHRsZXImIHRocm90
dGxlciwgVmlzaWJpbGl0eSB2aXNpYmlsaXR5KTsKKyAgICAgICAgflZpc2liaWxpdHlUb2tlbigp
OworICAgICAgICAKKyAgICAgICAgVmlzaWJpbGl0eSB2aXNpYmlsaXR5KCkgY29uc3QKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIG1fdmlzaWJpbGl0eTsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgdm9pZCBzZXRWaXNpYmlsaXR5KFZpc2liaWxpdHkgdmlzaWJpbGl0eSkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKG1fdmlzaWJpbGl0eSAhPSB2aXNpYmlsaXR5KQorICAg
ICAgICAgICAgICAgIHNldFZpc2liaWxpdHlJbnRlcm5hbCh2aXNpYmlsaXR5KTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgaWYgKHZpc2liaWxpdHkgPT0gVmlzaWJpbGl0eTo6SGlkaW5nKQor
ICAgICAgICAgICAgICAgIG1faGlkZVRpbWVyLnN0YXJ0T25lU2hvdCgzMCk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgbV9oaWRlVGltZXIuc3RvcCgpOworICAgICAgICB9Cisg
ICAgICAgIAorICAgIHByaXZhdGU6CisgICAgICAgIHZvaWQgaGlkZVRpbWVyRmlyZWQoV2ViQ29y
ZTo6VGltZXI8VmlzaWJpbGl0eVRva2VuPiopOworICAgICAgICB2b2lkIHNldFZpc2liaWxpdHlJ
bnRlcm5hbChWaXNpYmlsaXR5IHZpc2liaWxpdHkpOworICAgICAgICAKKyAgICAgICAgV2Vha1B0
cjxQcm9jZXNzVGhyb3R0bGVyPiBtX3Rocm90dGxlcjsKKyAgICAgICAgVmlzaWJpbGl0eSBtX3Zp
c2liaWxpdHk7CisgICAgICAgIFdlYkNvcmU6OlRpbWVyPFZpc2liaWxpdHlUb2tlbj4gbV9oaWRl
VGltZXI7CisgICAgfTsKKyAgICAKKyAgICBQcm9jZXNzVGhyb3R0bGVyKCkKKyAgICAgICAgOiBt
X3dlYWtQdHJGYWN0b3J5KHRoaXMpCisgICAgICAgICwgbV92aXNpYmxlQ291bnQoMCkKKyAgICAg
ICAgLCBtX2hpZGluZ0NvdW50KDApCisgICAgeworICAgIH0KKyAgICAKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8VmlzaWJpbGl0eVRva2VuPiB2aXNpYmlsaXR5VG9rZW4oVmlzaWJpbGl0eSB2aXNpYmls
aXR5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VmlzaWJpbGl0eVRv
a2VuPigqdGhpcywgdmlzaWJpbGl0eSk7CisgICAgfQorICAgIAorICAgIHZvaWQgZGlkQ29ubm5l
Y3RUb1Byb2Nlc3MocGlkX3QgcGlkKQorICAgIHsKKyAgICAgICAgbV9hc3NlcnRpb24gPSBzdGQ6
Om1ha2VfdW5pcXVlPFByb2Nlc3NBc3NlcnRpb24+KHBpZCwgYXNzZXJ0aW9uU3RhdGUoKSk7Cisg
ICAgfQorICAgIAorcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgVmlzaWJpbGl0eVRva2VuOwor
ICAgIFdlYWtQdHI8UHJvY2Vzc1Rocm90dGxlcj4gd2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0
ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgCisgICAgQXNzZXJ0aW9uU3RhdGUgYXNz
ZXJ0aW9uU3RhdGUoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdmlzaWJsZUNvdW50KQorICAgICAg
ICAgICAgcmV0dXJuIEFzc2VydGlvblN0YXRlOjpGb3JlZ3JvdW5kOworICAgICAgICBlbHNlIGlm
IChtX2hpZGluZ0NvdW50KQorICAgICAgICAgICAgcmV0dXJuIEFzc2VydGlvblN0YXRlOjpCYWNr
Z3JvdW5kOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gQXNzZXJ0aW9uU3RhdGU6
OlN1c3BlbmRlZDsKKyAgICB9CisgICAgCisgICAgdm9pZCB1cGRhdGVBc3NlcnRpb24oKQorICAg
IHsKKyAgICAgICAgaWYgKG1fYXNzZXJ0aW9uKQorICAgICAgICAgICAgbV9hc3NlcnRpb24tPnNl
dFN0YXRlKGFzc2VydGlvblN0YXRlKCkpOworICAgIH0KKyAgICAKKyAgICBXZWFrUHRyRmFjdG9y
eTxQcm9jZXNzVGhyb3R0bGVyPiBtX3dlYWtQdHJGYWN0b3J5OworICAgIHN0ZDo6dW5pcXVlX3B0
cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKKyAgICB1bnNpZ25lZCBtX3Zpc2libGVD
b3VudDsKKyAgICB1bnNpZ25lZCBtX2hpZGluZ0NvdW50OworfTsKKyAgICAKK30KKworI2VuZGlm
IC8vIFBMQVRGT1JNKElPUykKKworI2VuZGlmIC8vIFByb2Nlc3NUaHJvdHRsZXJfaApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzVGhyb3R0bGVyLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1Rocm90dGxlci5tbQko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1Rocm90
dGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTyAsIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUHJvY2Vzc1Rocm90dGxlci5oIgorCisjaWYgUExB
VEZPUk0oSU9TKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUHJvY2Vzc1Rocm90dGxlcjo6Vmlz
aWJpbGl0eVRva2VuOjpWaXNpYmlsaXR5VG9rZW4oUHJvY2Vzc1Rocm90dGxlciYgdGhyb3R0bGVy
LCBWaXNpYmlsaXR5IHZpc2liaWxpdHkpCisgICAgOiBtX3Rocm90dGxlcih0aHJvdHRsZXIud2Vh
a1B0cigpKQorICAgICwgbV92aXNpYmlsaXR5KFZpc2liaWxpdHk6OkhpZGRlbikKKyAgICAsIG1f
aGlkZVRpbWVyKHRoaXMsICZWaXNpYmlsaXR5VG9rZW46OmhpZGVUaW1lckZpcmVkKQoreworICAg
IHNldFZpc2liaWxpdHkodmlzaWJpbGl0eSk7Cit9CisKK1Byb2Nlc3NUaHJvdHRsZXI6OlZpc2li
aWxpdHlUb2tlbjo6flZpc2liaWxpdHlUb2tlbigpCit7CisgICAgc2V0VmlzaWJpbGl0eShWaXNp
YmlsaXR5OjpIaWRkZW4pOworfQorCit2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OlZpc2liaWxpdHlU
b2tlbjo6aGlkZVRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8VmlzaWJpbGl0eVRva2VuPiopCit7
CisgICAgQVNTRVJUKG1fdmlzaWJpbGl0eSA9PSBWaXNpYmlsaXR5OjpIaWRpbmcpOworICAgIG1f
dmlzaWJpbGl0eSA9IFZpc2liaWxpdHk6OkhpZGRlbjsKK30KKwordm9pZCBQcm9jZXNzVGhyb3R0
bGVyOjpWaXNpYmlsaXR5VG9rZW46OnNldFZpc2liaWxpdHlJbnRlcm5hbChWaXNpYmlsaXR5IHZp
c2liaWxpdHkpCit7CisgICAgUHJvY2Vzc1Rocm90dGxlciogdGhyb3R0bGVyID0gbV90aHJvdHRs
ZXIuZ2V0KCk7CisgICAgaWYgKCF0aHJvdHRsZXIpIHsKKyAgICAgICAgbV92aXNpYmlsaXR5ID0g
dmlzaWJpbGl0eTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBpZiAobV92aXNp
YmlsaXR5ID09IFZpc2liaWxpdHk6OlZpc2libGUpCisgICAgICAgIHRocm90dGxlci0+bV92aXNp
YmxlQ291bnQtLTsKKyAgICBlbHNlIGlmIChtX3Zpc2liaWxpdHkgPT0gVmlzaWJpbGl0eTo6SGlk
aW5nKQorICAgICAgICB0aHJvdHRsZXItPm1faGlkaW5nQ291bnQtLTsKKyAgICAKKyAgICBtX3Zp
c2liaWxpdHkgPSB2aXNpYmlsaXR5OworICAgIAorICAgIGlmIChtX3Zpc2liaWxpdHkgPT0gVmlz
aWJpbGl0eTo6VmlzaWJsZSkKKyAgICAgICAgdGhyb3R0bGVyLT5tX3Zpc2libGVDb3VudCsrOwor
ICAgIGVsc2UgaWYgKG1fdmlzaWJpbGl0eSA9PSBWaXNpYmlsaXR5OjpIaWRpbmcpCisgICAgICAg
IHRocm90dGxlci0+bV9oaWRpbmdDb3VudCsrOworICAgIAorICAgIHRocm90dGxlci0+dXBkYXRl
QXNzZXJ0aW9uKCk7Cit9CisgICAgCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCShyZXZp
c2lvbiAxNjc0MDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1MSw3ICsyNTEsNyBAQCAtICh2b2lkKWRpZE1vdmVU
b1dpbmRvdwogewogICAgIGlmIChzZWxmLndpbmRvdykKICAgICAgICAgW3NlbGYgX3VwZGF0ZUZv
clNjcmVlbjpzZWxmLndpbmRvdy5zY3JlZW5dOwotICAgIF9wYWdlLT52aWV3U3RhdGVEaWRDaGFu
Z2UoVmlld1N0YXRlOjpJc0luV2luZG93KTsKKyAgICBfcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdl
KFZpZXdTdGF0ZTo6QWxsRmxhZ3MsIHNlbGYud2luZG93ID8gV2ViUGFnZVByb3h5OjpXYW50c1Jl
cGx5T3JOb3Q6OkRvZXNOb3RXYW50UmVwbHkgOiBXZWJQYWdlUHJveHk6OldhbnRzUmVwbHlPck5v
dDo6RG9lc1dhbnRSZXBseSk7CiB9CiAKIC0gKFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAq
KWJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCShyZXZpc2lvbiAxNjc0MTApCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNzAsMzEgKzcwLDYgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnVwZGF0
ZVByb2Nlc3NTdXBwcgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAgICAgCi12b2lkIFdlYlBy
b2Nlc3NQcm94eTo6dXBkYXRlUHJvY2Vzc1N0YXRlKCkKLXsKLSNpZiBVU0UoWFBDX1NFUlZJQ0VT
KQotICAgIGlmIChzdGF0ZSgpICE9IFN0YXRlOjpSdW5uaW5nKQotICAgICAgICByZXR1cm47Ci0K
LSAgICB4cGNfY29ubmVjdGlvbl90IHhwY0Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uKCktPnhwY0Nv
bm5lY3Rpb24oKTsKLSAgICBpZiAoIXhwY0Nvbm5lY3Rpb24pCi0gICAgICAgIHJldHVybjsKLQot
ICAgIEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlID0gQXNzZXJ0aW9uU3RhdGU6OkJhY2tn
cm91bmQ7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKSB7
Ci0gICAgICAgIGlmIChwYWdlLT5pc0luV2luZG93KCkpIHsKLSAgICAgICAgICAgIGFzc2VydGlv
blN0YXRlID0gQXNzZXJ0aW9uU3RhdGU6OkZvcmVncm91bmQ7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICBpZiAoIW1fYXNzZXJ0aW9uKQotICAgICAgICBt
X2Fzc2VydGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4oeHBjX2Nvbm5l
Y3Rpb25fZ2V0X3BpZCh4cGNDb25uZWN0aW9uKSwgYXNzZXJ0aW9uU3RhdGUpOwotICAgIGVsc2UK
LSAgICAgICAgbV9hc3NlcnRpb24tPnNldFN0YXRlKGFzc2VydGlvblN0YXRlKTsKLSNlbmRpZgot
fQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDE2NzQxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTk4LDYgKzk5OCw4IEBACiAJCTdF
QzRGMEZCMThFNEFDQkIwMDgwNTZBRiAvKiBOZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VDNEYwRjkxOEU0QTk0NTAw
ODA1NkFGIC8qIE5ldHdvcmtQcm9jZXNzQ29jb2EubW0gKi87IH07CiAJCTg0NDc3ODUzMTc2RkND
MDgwMENEQzdCQiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NDc3ODUxMTc2RkNB
QzEwMENEQzdCQiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCAqLzsg
fTsKIAkJODY4MTYwRDAxODc2NDU1NzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjgxNjBD
RjE4NzY0NTM3MDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29ubmVjdGlvbi5tbSAqLzsgfTsKKwkJ
ODZFNjdBMjUxOTEwQjlEMTAwMDA0QUI3IC8qIFByb2Nlc3NUaHJvdHRsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RTY3QTIxMTkwRjQxMTgwMDAw
NEFCNyAvKiBQcm9jZXNzVGhyb3R0bGVyLmggKi87IH07CisJCTg2RTY3QTI2MTkxMEI5RDkwMDAw
NEFCNyAvKiBQcm9jZXNzVGhyb3R0bGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODZFNjdBMjIxOTBGNDExODAwMDA0QUI3IC8qIFByb2Nlc3NUaHJv
dHRsZXIubW0gKi87IH07CiAJCTg2Rjk1MzY0MThGRjU4M0MwMDFEQjJFRiAvKiBQcm9jZXNzQXNz
ZXJ0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODZGOTUzNjIxOEZGNTUwQjAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb24ubW0gKi87IH07CiAJ
CTg2Rjk1MzY1MThGRjU4RjUwMDFEQjJFRiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkY5NTM2MDE4RkY0RkQ0MDAx
REIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5oICovOyB9OwogCQk4Q0ZFQ0U5NDE0OTBGMTQwMDAy
QUFBMzIgLyogRWRpdG9yU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOENGRUNFOTMxNDkwRjE0MDAwMkFBQTMyIC8qIEVkaXRvclN0YXRlLmNw
cCAqLzsgfTsKQEAgLTI4NjUsNiArMjg2Nyw4IEBACiAJCTg0NDc3ODUxMTc2RkNBQzEwMENEQzdC
QiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2ODE2MENEMTg3NjNENEIwMDIxRTc5
RCAvKiBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd1NlcnZl
ckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODY4MTYwQ0YxODc2
NDUzNzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4NkU2N0EyMTE5MEY0MTE4MDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9jZXNzVGhyb3R0bGVyLmg7IHBhdGgg
PSBpb3MvUHJvY2Vzc1Rocm90dGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
NkU2N0EyMjE5MEY0MTE4MDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFByb2Nlc3NUaHJvdHRsZXIubW07IHBhdGgg
PSBpb3MvUHJvY2Vzc1Rocm90dGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODZGOTUzNjAxOEZGNEZENDAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvY2Vzc0Fzc2VydGlvbi5oOyBwYXRoID0gaW9zL1By
b2Nlc3NBc3NlcnRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZGOTUzNjIx
OEZGNTUwQjAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQcm9jZXNzQXNzZXJ0aW9uLm1tOyBwYXRoID0gaW9zL1By
b2Nlc3NBc3NlcnRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThDRkVDRTkz
MTQ5MEYxNDAwMDJBQUEzMiAvKiBFZGl0b3JTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBFZGl0b3JTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC00NTA3LDYgKzQ1MTEsOCBAQAogCQkJCTBGQ0I0RTM3MThCQkUwNDQwMDBGQ0ZDOSAv
KiBQYWdlQ2xpZW50SW1wbElPUy5tbSAqLywKIAkJCQk4NkY5NTM2MDE4RkY0RkQ0MDAxREIyRUYg
LyogUHJvY2Vzc0Fzc2VydGlvbi5oICovLAogCQkJCTg2Rjk1MzYyMThGRjU1MEIwMDFEQjJFRiAv
KiBQcm9jZXNzQXNzZXJ0aW9uLm1tICovLAorCQkJCTg2RTY3QTIxMTkwRjQxMTgwMDAwNEFCNyAv
KiBQcm9jZXNzVGhyb3R0bGVyLmggKi8sCisJCQkJODZFNjdBMjIxOTBGNDExODAwMDA0QUI3IC8q
IFByb2Nlc3NUaHJvdHRsZXIubW0gKi8sCiAJCQkJMEYwQzM2NTcxOEMwNTFCQTAwRjYwN0Q3IC8q
IFJlbW90ZUxheWVyVHJlZUhvc3RJT1MubW0gKi8sCiAJCQkJMEYwQzM2NUIxOEMwNUNBMTAwRjYw
N0Q3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0gKi8sCiAJCQkJMkRB
MUU0RkMxOEMwMkI2QTAwREJDOTI5IC8qIFdLUERGVmlldy5oICovLApAQCAtNzM4MSw2ICs3Mzg3
LDcgQEAKIAkJCQk3NTU0MjJDQzE4MDc3M0NFMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1RTFBRkU5MTZCMjBCNzUwMDZDQzFGMiAvKiBXS1dl
YkFyY2hpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1RTFBRkVCMTZCMjBCN0UwMDZDQzFGMiAv
KiBXS1dlYkFyY2hpdmVSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODZFNjdBMjUxOTEw
QjlEMTAwMDA0QUI3IC8qIFByb2Nlc3NUaHJvdHRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
OTg5RDgyMTYxQTdFNUQwMDBENDZEMyAvKiBXS1dlYlByb2Nlc3NQbHVnSW4uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQ0I0RTY4MThCQkUzRDkwMDBGQ0ZDOSAvKiBXS1RleHRJbnB1dFdpbmRvd0Nv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2Rjk1MzY1MThGRjU4RjUwMDFEQjJFRiAv
KiBQcm9jZXNzQXNzZXJ0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTg0ODUsNiArODQ5Miw3IEBA
CiAJCQkJRjZBMjVGREMxMkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGNjJBNzZCNjEyQjFCMjVGMDAwNUYxQjYgLyogV2ViRGF0YWJh
c2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRTM1MjA5
MTgwRjVENkIwMEU1M0JFOSAvKiBEYXRhYmFzZVNlcnZpY2VFbnRyeVBvaW50Lm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJODZFNjdBMjYxOTEwQjlEOTAwMDA0QUI3IC8qIFByb2Nlc3NUaHJvdHRsZXIu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4NkY5NTM2NDE4RkY1ODNDMDAxREIyRUYgLyogUHJvY2Vz
c0Fzc2VydGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI5MjMyREY4MThCMkE5QUUwMEQwNTk2
RiAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>
<flag name="review"
          id="254886"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>