<?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>132136</bug_id>
          
          <creation_ts>2014-04-24 11:24:28 -0700</creation_ts>
          <short_desc>[iOS WebKit2] Should properly handle focus redirect (keyboard state changes when focus changes)</short_desc>
          <delta_ts>2014-04-24 14:45:23 -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>iPhone / iPad</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="Enrica Casucci">enrica</reporter>
          <assigned_to name="Enrica Casucci">enrica</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1003715</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-04-24 11:24:28 -0700</bug_when>
    <thetext>In pages where fields are focused from Javascript we should not display the keyboard, unless the user has already started interacting with the page.

&lt;rdar://problem/16238336&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003721</commentid>
    <comment_count>1</comment_count>
      <attachid>230095</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-04-24 11:32:23 -0700</bug_when>
    <thetext>Created attachment 230095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003736</commentid>
    <comment_count>2</comment_count>
      <attachid>230095</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-24 12:42:30 -0700</bug_when>
    <thetext>Comment on attachment 230095
Patch

To be udpated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003778</commentid>
    <comment_count>3</comment_count>
      <attachid>230106</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-04-24 14:29:40 -0700</bug_when>
    <thetext>Created attachment 230106
Patch2

After discussing the first patch with Ben, I&apos;ve implemented a different solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003779</commentid>
    <comment_count>4</comment_count>
      <attachid>230106</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-24 14:34:08 -0700</bug_when>
    <thetext>Comment on attachment 230106
Patch2

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

&gt; Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:317
&gt; +    RefPtr&lt;Frame&gt; oldFocusedFrame = m_page-&gt;focusController().focusedFrame();
&gt; +    RefPtr&lt;Element&gt; oldFocusedElement = oldFocusedFrame ? oldFocusedFrame-&gt;document()-&gt;focusedElement() : nullptr;
&gt; +    m_userIsInteracting = true;

I believe you will need the same logic in WebPage::dispatchTouchEvent().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003782</commentid>
    <comment_count>5</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-04-24 14:45:23 -0700</bug_when>
    <thetext>Committed revision 167774.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230095</attachid>
            <date>2014-04-24 11:32:23 -0700</date>
            <delta_ts>2014-04-24 12:42:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>handlefocus.txt</filename>
            <type>text/plain</type>
            <size>4726</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Nzc2NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA0LTI0ICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBXZWJLaXQyXSBTaG91
bGQgcHJvcGVybHkgaGFuZGxlIGZvY3VzIHJlZGlyZWN0IChrZXlib2FyZCBzdGF0ZSBjaGFuZ2Vz
IHdoZW4gZm9jdXMgY2hhbmdlcykuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzIxMzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2MjM4MzM2Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvY3VzaW5n
IGEgZmllbGQgZnJvbSBKYXZhU2NyaXB0IHNob3VsZCBub3QgbWFrZSB0aGUga2V5Ym9hcmQgb3Ig
dGhlIHNlbGVjdCBwaWNrZXIKKyAgICAgICAgYXBwZWFyIHVubGVzcyB0aGUgdXNlciBoYXMgYWxy
ZWFkeSBzdGFydGVkIGludGVyYWN0aW5nIHdpdGggb25lIG9mIHRoZSBmaWVsZHMgaW4gdGhlIHBh
Z2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9hdHRlbXB0Q2xpY2tBdExvY2F0aW9uOl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IHVzZVNlbGVjdGlvbkFzc2lzdGFudFdpdGhNb2RlOl0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zdGFydEFzc2lzdGluZ05vZGU6dXNlck9iamVjdDpd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVRhcCk6CisKIDIwMTQtMDQtMjQgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW3drMl0gUHJvdmlkZSBT
UEkgYWxsb3dpbmcgY2xpZW50cyB0byBoYW5kIGV2ZW50cyBkaXJlY3RseSB0byBzd2lwZSBjb2Rl
LCBieXBhc3Npbmcgc2Nyb2xsaW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgJKHJldmlzaW9uIDE2Nzc2
MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsxMTUsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29y
cmVjdGlvbkRhdGEgewogICAgIEJPT0wgX2lzVGFwSGlnaGxpZ2h0SURWYWxpZDsKICAgICBCT09M
IF9zZWxlY3Rpb25OZWVkc1VwZGF0ZTsKICAgICBCT09MIF91c2luZ0dlc3R1cmVGb3JTZWxlY3Rp
b247CisgICAgQk9PTCBfdXNlcklzSW50ZXJhY3Rpbmc7CiB9CiAKIEBlbmQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCShyZXZpc2lvbiAxNjc3NjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNzIwLDYg
KzcyMCw3IEBAIC0gKHZvaWQpX2F0dGVtcHRDbGlja0F0TG9jYXRpb246KENHUG9pbnQKICAgICBp
ZiAoIVtzZWxmIGlzRmlyc3RSZXNwb25kZXJdKQogICAgICAgICBbc2VsZiBiZWNvbWVGaXJzdFJl
c3BvbmRlcl07CiAKKyAgICBfdXNlcklzSW50ZXJhY3RpbmcgPSBZRVM7CiAgICAgX3BhZ2UtPnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpIYW5kbGVUYXAoSW50UG9pbnQobG9jYXRp
b24pKSwgX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIApAQCAtNzI5LDYgKzczMCw3IEBAIC0gKHZvaWQp
dXNlU2VsZWN0aW9uQXNzaXN0YW50V2l0aE1vZGU6KFUKICAgICAgICAgaWYgKF90ZXh0U2VsZWN0
aW9uQXNzaXN0YW50KSB7CiAgICAgICAgICAgICBbX3RleHRTZWxlY3Rpb25Bc3Npc3RhbnQgZGVh
Y3RpdmF0ZVNlbGVjdGlvbl07CiAgICAgICAgICAgICBfdGV4dFNlbGVjdGlvbkFzc2lzdGFudCA9
IG5pbDsKKyAgICAgICAgICAgIF91c2VySXNJbnRlcmFjdGluZyA9IE5POwogICAgICAgICB9CiAg
ICAgICAgIGlmICghX3dlYlNlbGVjdGlvbkFzc2lzdGFudCkKICAgICAgICAgICAgIF93ZWJTZWxl
Y3Rpb25Bc3Npc3RhbnQgPSBhZG9wdE5TKFtbVUlXS1NlbGVjdGlvbkFzc2lzdGFudCBhbGxvY10g
aW5pdFdpdGhWaWV3OnNlbGZdKTsKQEAgLTE5ODEsNiArMTk4Myw5IEBAIC0gKFVJV2ViRm9ybUFj
Y2Vzc29yeSAqKWZvcm1BY2Nlc3NvcnlWaWUKIAogLSAodm9pZClfc3RhcnRBc3Npc3RpbmdOb2Rl
Oihjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdXNlck9iamVjdDoo
TlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKXVzZXJPYmplY3QKIHsKKyAgICBpZiAoIV91c2Vy
SXNJbnRlcmFjdGluZyAmJiAhX3RleHRTZWxlY3Rpb25Bc3Npc3RhbnQpCisgICAgICAgIHJldHVy
bjsKKwogICAgIF9pc0VkaXRhYmxlID0gWUVTOwogICAgIF9hc3Npc3RlZE5vZGVJbmZvcm1hdGlv
biA9IGluZm9ybWF0aW9uOwogICAgIF9pbnB1dFBlcmlwaGVyYWwgPSBuaWw7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CShyZXZpc2lvbiAxNjc3NjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxMiw5ICszMTIsMjIgQEAgdm9p
ZCBXZWJQYWdlOjpoYW5kbGVUYXAoY29uc3QgSW50UG9pbnQmIAogICAgIGlmIChXS09ic2VydmVk
Q29udGVudENoYW5nZSgpICE9IFdLQ29udGVudE5vQ2hhbmdlKQogICAgICAgICByZXR1cm47CiAK
KyAgICBSZWZQdHI8RnJhbWU+IG9sZEZvY3VzZWRGcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuZm9jdXNlZEZyYW1lKCk7CisgICAgUmVmUHRyPEVsZW1lbnQ+IG9sZEZvY3VzZWRFbGVt
ZW50ID0gb2xkRm9jdXNlZEZyYW1lID8gb2xkRm9jdXNlZEZyYW1lLT5kb2N1bWVudCgpLT5mb2N1
c2VkRWxlbWVudCgpIDogbnVsbHB0cjsKKwogICAgIG1fbGFzdEludGVyYWN0aW9uTG9jYXRpb24g
PSByb3VuZGVkQWRqdXN0ZWRQb2ludDsKICAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VQcmVzc0V2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2lu
dCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
UHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDApKTsKICAgICBtYWluZnJh
bWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoUGxhdGZvcm1Nb3VzZUV2
ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRv
biwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIDApKTsKKworICAgIFJlZlB0cjxGcmFtZT4gbmV3Rm9jdXNlZEZyYW1lID0gbV9wYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkRnJhbWUoKTsKKyAgICBSZWZQdHI8RWxlbWVudD4g
bmV3Rm9jdXNlZEVsZW1lbnQgPSBuZXdGb2N1c2VkRnJhbWUgPyBuZXdGb2N1c2VkRnJhbWUtPmRv
Y3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkgOiBudWxscHRyOworCisgICAgLy8gSWYgdGhlIGZv
Y3VzIGhhcyBub3QgY2hhbmdlZCwgd2UgbmVlZCB0byBub3RpZnkgdGhlIGNsaWVudCBhbnl3YXks
IHNpbmNlIGl0IG1pZ2h0IGJlCisgICAgLy8gbmVjZXNzYXJ5IHRvIHN0YXJ0IGFzc2lzdGluZyB0
aGUgbm9kZS4KKyAgICAvLyBJZiB0aGUgbm9kZSBoYXMgYmVlbiBmb2N1c2VkIGJ5IEphdmFTY3Jp
cHQgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLCB0aGUKKyAgICAvLyBrZXlib2FyZCBpcyBub3Qg
b24gc2NyZWVuLgorICAgIGlmIChuZXdGb2N1c2VkRWxlbWVudCAmJiBuZXdGb2N1c2VkRWxlbWVu
dCA9PSBvbGRGb2N1c2VkRWxlbWVudCkKKyAgICAgICAgZWxlbWVudERpZEZvY3VzKG5ld0ZvY3Vz
ZWRFbGVtZW50LmdldCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjp0YXBIaWdobGlnaHRBdFBvc2l0
aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230106</attachid>
            <date>2014-04-24 14:29:40 -0700</date>
            <delta_ts>2014-04-24 14:34:08 -0700</delta_ts>
            <desc>Patch2</desc>
            <filename>handlefocus2.txt</filename>
            <type>text/plain</type>
            <size>13342</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Nzc3MykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA0LTI0ICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBXZWJLaXQyXSBTaG91
bGQgcHJvcGVybHkgaGFuZGxlIGZvY3VzIHJlZGlyZWN0IChrZXlib2FyZCBzdGF0ZSBjaGFuZ2Vz
IHdoZW4gZm9jdXMgY2hhbmdlcykuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzIxMzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2MjM4MzM2Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvY3VzaW5n
IGEgZmllbGQgZnJvbSBKYXZhU2NyaXB0IHNob3VsZCBub3QgbWFrZSB0aGUga2V5Ym9hcmQgb3Ig
dGhlIHNlbGVjdCBwaWNrZXIKKyAgICAgICAgYXBwZWFyIHVubGVzcyB0aGUgdXNlciBoYXMgYWxy
ZWFkeSBzdGFydGVkIGludGVyYWN0aW5nIHdpdGggb25lIG9mIHRoZSBmaWVsZHMgaW4gdGhlIHBh
Z2UuCisgICAgICAgIEFkZGluZyBhIHBhcmFtZXRlciB0byBTdGFydEFzc2lzdGluZ05vZGUgdG8g
aW5kaWNhdGUgd2hldGhlciB0aGUgZm9jdXMgY2hhbmdlIGlzIGEgcmVzdWx0CisgICAgICAgIG9m
IGEgdXNlciBhY3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c3RhcnRBc3Npc3RpbmdOb2RlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9zdGFydEFzc2lzdGluZ05vZGU6dXNlcklzSW50ZXJhY3Rpbmc6
dXNlck9iamVjdDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydEFzc2lzdGluZ05vZGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVRhcCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmVsZW1lbnREaWRGb2N1cyk6CisKIDIwMTQtMDQtMjQgIE15bGVzIEMuIE1heGZpZWxk
ICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBGb250Q2FjaGU6OmZvbnRDYWNoZSgp
IG5ldmVyIHJldHVybnMgbnVsbHB0ciBzbyBpdCBjYW4gYmUgbWFkZSB0byByZXR1cm4gYSByZWZl
cmVuY2UgaW5zdGVhZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCShy
ZXZpc2lvbiAxNjc3NjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNDMsNyArMjQzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBkaWRDb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24m
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGR5bmFtaWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJn
ZXQoZG91YmxlIG5ld1NjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQ
b3NpdGlvbikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25z
dCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5m
b3JtYXRpb24mLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBBUEk6Ok9iamVjdCogdXNlckRhdGEp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcEFzc2lzdGluZ05vZGUoKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNlbGVjdGlvbkRpZENoYW5nZSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaW50
ZXJwcmV0S2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wgaXNDaGFy
RXZlbnQpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJ
KHJldmlzaW9uIDE2Nzc2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTM1Niw3ICsxMzU2LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGR5bmFtaWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXQoZG91YmxlIG5ld1RhcmdldFNj
YWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbik7CiAgICAg
dm9pZCBkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFk
PiYgZ2VvbWV0cmllcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0
UmFkaXVzKTsKIAotICAgIHZvaWQgc3RhcnRBc3Npc3RpbmdOb2RlKGNvbnN0IEFzc2lzdGVkTm9k
ZUluZm9ybWF0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgc3RhcnRBc3Np
c3RpbmdOb2RlKGNvbnN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJiwgYm9vbCB1c2VySXNJbnRl
cmFjdGluZywgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgc3RvcEFzc2lzdGluZ05v
ZGUoKTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDE2Nzc2MikK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTMyMCw3ICszMjAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgIER5bmFtaWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXQoZG91YmxlIG5ld1Rhcmdl
dFNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG5ld1Njcm9sbFBvc2l0aW9uKQogICAgIERpZEdl
dFRhcEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpDb2xv
ciBjb2xvciwgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4gZ2VvbWV0cmllcywgV2ViQ29yZTo6
SW50U2l6ZSB0b3BMZWZ0UmFkaXVzLCBXZWJDb3JlOjpJbnRTaXplIHRvcFJpZ2h0UmFkaXVzLCBX
ZWJDb3JlOjpJbnRTaXplIGJvdHRvbUxlZnRSYWRpdXMsIFdlYkNvcmU6OkludFNpemUgYm90dG9t
UmlnaHRSYWRpdXMpCiAKLSAgICBTdGFydEFzc2lzdGluZ05vZGUoV2ViS2l0OjpBc3Npc3RlZE5v
ZGVJbmZvcm1hdGlvbiBpbmZvcm1hdGlvbiwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKKyAgICBTdGFydEFzc2lzdGluZ05vZGUoV2Vi
S2l0OjpBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiBpbmZvcm1hdGlvbiwgYm9vbCB1c2VySXNJbnRl
cmFjdGluZywgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0
YSkgVmFyaWFkaWMKICAgICBTdG9wQXNzaXN0aW5nTm9kZSgpCiAgICAgTm90aWZ5UmV2ZWFsZWRT
ZWxlY3Rpb24oKQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCShyZXZpc2lvbiAxNjc3NjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw3
ICsxMDksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRMYXllclRyZWUo
Y29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldChkb3VibGUgbmV3U2NhbGUs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgdm9pZCBzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWROb2Rl
SW5mb3JtYXRpb24mLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24m
LCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wQXNzaXN0aW5nTm9kZSgpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBzZWxlY3Rpb25EaWRDaGFuZ2UoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJv
b2wgaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wg
aXNDaGFyRXZlbnQpIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCShyZXZpc2lvbiAxNjc3NjIpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zNzMsNyArMzczLDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZHluYW1pY1ZpZXdw
b3J0VXBkYQogICAgIFttX3dlYlZpZXcgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJn
ZXRUb1NjYWxlOm5ld1NjYWxlIHBvc2l0aW9uOm5ld1Njcm9sbFBvc2l0aW9uXTsKIH0KIAotdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6c3RhcnRBc3Npc3RpbmdOb2RlKGNvbnN0IEFzc2lzdGVkTm9kZUlu
Zm9ybWF0aW9uJiBub2RlSW5mb3JtYXRpb24sIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKK3ZvaWQg
UGFnZUNsaWVudEltcGw6OnN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZv
cm1hdGlvbiYgbm9kZUluZm9ybWF0aW9uLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyghdXNlckRhdGEgfHwgdXNlckRh
dGEtPnR5cGUoKSA9PSBBUEk6Ok9iamVjdDo6VHlwZTo6RGF0YSk7CiAKQEAgLTM4OSw3ICszODks
NyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydEFzc2lzdGluZ05vZGUoCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBbbV9jb250ZW50VmlldyBfc3RhcnRBc3Npc3RpbmdOb2RlOm5vZGVJbmZv
cm1hdGlvbiB1c2VyT2JqZWN0OnVzZXJPYmplY3RdOworICAgIFttX2NvbnRlbnRWaWV3IF9zdGFy
dEFzc2lzdGluZ05vZGU6bm9kZUluZm9ybWF0aW9uIHVzZXJJc0ludGVyYWN0aW5nOnVzZXJJc0lu
dGVyYWN0aW5nIHVzZXJPYmplY3Q6dXNlck9iamVjdF07CiB9CiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OnN0b3BBc3Npc3RpbmdOb2RlKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAkocmV2aXNpb24gMTY3
NzYyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTMzLDcgKzEzMyw3IEBAIHN0cnVjdCBXS0F1dG9D
b3JyZWN0aW9uRGF0YSB7CiAtICh2b2lkKV93ZWJUb3VjaEV2ZW50Oihjb25zdCBXZWJLaXQ6Ok5h
dGl2ZVdlYlRvdWNoRXZlbnQmKXRvdWNoRXZlbnQgcHJldmVudHNOYXRpdmVHZXN0dXJlczooQk9P
TClwcmV2ZW50c0RlZmF1bHQ7CiAtICh2b2lkKV9kaWRHZXRUYXBIaWdobGlnaHRGb3JSZXF1ZXN0
Oih1aW50NjRfdClyZXF1ZXN0SUQgY29sb3I6KGNvbnN0IFdlYkNvcmU6OkNvbG9yJiljb2xvciBx
dWFkczooY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4mKWhpZ2hsaWdodGVkUXVhZHMg
dG9wTGVmdFJhZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpdG9wTGVmdFJhZGl1cyB0b3BS
aWdodFJhZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpdG9wUmlnaHRSYWRpdXMgYm90dG9t
TGVmdFJhZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpYm90dG9tTGVmdFJhZGl1cyBib3R0
b21SaWdodFJhZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpYm90dG9tUmlnaHRSYWRpdXM7
CiAKLS0gKHZvaWQpX3N0YXJ0QXNzaXN0aW5nTm9kZTooY29uc3QgV2ViS2l0OjpBc3Npc3RlZE5v
ZGVJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdXNlck9iamVjdDooTlNPYmplY3QgPE5TU2VjdXJl
Q29kaW5nPiAqKXVzZXJPYmplY3Q7CistICh2b2lkKV9zdGFydEFzc2lzdGluZ05vZGU6KGNvbnN0
IFdlYktpdDo6QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIHVzZXJJc0ludGVy
YWN0aW5nOihCT09MKXVzZXJJc0ludGVyYWN0aW5nIHVzZXJPYmplY3Q6KE5TT2JqZWN0IDxOU1Nl
Y3VyZUNvZGluZz4gKil1c2VyT2JqZWN0OwogLSAodm9pZClfc3RvcEFzc2lzdGluZ05vZGU7CiAt
ICh2b2lkKV9zZWxlY3Rpb25DaGFuZ2VkOwogLSAodm9pZClfdXBkYXRlQ2hhbmdlZFNlbGVjdGlv
bjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCShyZXZpc2lvbiAxNjc3NjIpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29ya2luZyBj
b3B5KQpAQCAtMTk3OSw4ICsxOTc5LDExIEBAIC0gKFVJV2ViRm9ybUFjY2Vzc29yeSAqKWZvcm1B
Y2Nlc3NvcnlWaWUKICAgICByZXR1cm4gX2Zvcm1BY2Nlc3NvcnlWaWV3LmdldCgpOwogfQogCi0t
ICh2b2lkKV9zdGFydEFzc2lzdGluZ05vZGU6KGNvbnN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9u
JilpbmZvcm1hdGlvbiB1c2VyT2JqZWN0OihOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICopdXNl
ck9iamVjdAorLSAodm9pZClfc3RhcnRBc3Npc3RpbmdOb2RlOihjb25zdCBBc3Npc3RlZE5vZGVJ
bmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50
ZXJhY3RpbmcgdXNlck9iamVjdDooTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKXVzZXJPYmpl
Y3QKIHsKKyAgICBpZiAoIXVzZXJJc0ludGVyYWN0aW5nICYmICFfdGV4dFNlbGVjdGlvbkFzc2lz
dGFudCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgX2lzRWRpdGFibGUgPSBZRVM7CiAgICAgX2Fz
c2lzdGVkTm9kZUluZm9ybWF0aW9uID0gaW5mb3JtYXRpb247CiAgICAgX2lucHV0UGVyaXBoZXJh
bCA9IG5pbDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCShyZXZpc2lvbiAxNjc3NjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDg4LDE0ICs0ODgs
MTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEdldFRhcEhpZ2hsaWdodEdlbwogICAgIG1fcGFn
ZUNsaWVudC5kaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHJlcXVlc3RJRCwgY29sb3IsIGhp
Z2hsaWdodGVkUXVhZHMsIHRvcExlZnRSYWRpdXMsIHRvcFJpZ2h0UmFkaXVzLCBib3R0b21MZWZ0
UmFkaXVzLCBib3R0b21SaWdodFJhZGl1cyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzdGFy
dEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mIGluZm9ybWF0aW9u
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0
QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYgaW5mb3JtYXRpb24s
IGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7
CiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBwcm9jZXNzKCkpOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX3BhZ2VDbGllbnQuc3RhcnRBc3Npc3RpbmdOb2RlKGluZm9ybWF0aW9uLCB1c2VyRGF0YS5n
ZXQoKSk7CisgICAgbV9wYWdlQ2xpZW50LnN0YXJ0QXNzaXN0aW5nTm9kZShpbmZvcm1hdGlvbiwg
dXNlcklzSW50ZXJhY3RpbmcsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJv
eHk6OnN0b3BBc3Npc3RpbmdOb2RlKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDE2Nzc2MikKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg2
LDYgKzI4Niw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCAKICAg
ICAsIG1faGFzUmVjZWl2ZWRWaXNpYmxlQ29udGVudFJlY3RzQWZ0ZXJEaWRDb21taXRMb2FkKGZh
bHNlKQogICAgICwgbV9zY2FsZVdhc1NldEJ5VUlQcm9jZXNzKGZhbHNlKQogICAgICwgbV91c2Vy
SGFzQ2hhbmdlZFBhZ2VTY2FsZUZhY3RvcihmYWxzZSkKKyAgICAsIG1fdXNlcklzSW50ZXJhY3Rp
bmcoZmFsc2UpCiAgICAgLCBtX3NjcmVlblNpemUocGFyYW1ldGVycy5zY3JlZW5TaXplKQogICAg
ICwgbV9hdmFpbGFibGVTY3JlZW5TaXplKHBhcmFtZXRlcnMuYXZhaWxhYmxlU2NyZWVuU2l6ZSkK
ICAgICAsIG1faW5EeW5hbWljU2l6ZVVwZGF0ZShmYWxzZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gMTY3NzYyKQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMTE2Miw2ICsxMTYyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzUmVjZWl2ZWRWaXNp
YmxlQ29udGVudFJlY3RzQWZ0ZXJEaWRDb21taXRMb2FkOwogICAgIGJvb2wgbV9zY2FsZVdhc1Nl
dEJ5VUlQcm9jZXNzOwogICAgIGJvb2wgbV91c2VySGFzQ2hhbmdlZFBhZ2VTY2FsZUZhY3RvcjsK
KyAgICBib29sIG1fdXNlcklzSW50ZXJhY3Rpbmc7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1f
c2NyZWVuU2l6ZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9hdmFpbGFibGVTY3JlZW5TaXpl
OwogICAgIFdlYkNvcmU6OkludFNpemUgbV9ibG9ja1NlbGVjdGlvbkRlc2lyZWRTaXplOwpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQkocmV2aXNpb24gMTY3NzYyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMTIsOSArMzEyLDI1
IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlVGFwKGNvbnN0IEludFBvaW50JiAKICAgICBpZiAoV0tP
YnNlcnZlZENvbnRlbnRDaGFuZ2UoKSAhPSBXS0NvbnRlbnROb0NoYW5nZSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgUmVmUHRyPEZyYW1lPiBvbGRGb2N1c2VkRnJhbWUgPSBtX3BhZ2UtPmZvY3Vz
Q29udHJvbGxlcigpLmZvY3VzZWRGcmFtZSgpOworICAgIFJlZlB0cjxFbGVtZW50PiBvbGRGb2N1
c2VkRWxlbWVudCA9IG9sZEZvY3VzZWRGcmFtZSA/IG9sZEZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQo
KS0+Zm9jdXNlZEVsZW1lbnQoKSA6IG51bGxwdHI7CisgICAgbV91c2VySXNJbnRlcmFjdGluZyA9
IHRydWU7CisKICAgICBtX2xhc3RJbnRlcmFjdGlvbkxvY2F0aW9uID0gcm91bmRlZEFkanVzdGVk
UG9pbnQ7CiAgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVu
dChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3Rl
ZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwKSk7CiAgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigp
LmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0
ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwKSk7CisKKyAg
ICBSZWZQdHI8RnJhbWU+IG5ld0ZvY3VzZWRGcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVy
KCkuZm9jdXNlZEZyYW1lKCk7CisgICAgUmVmUHRyPEVsZW1lbnQ+IG5ld0ZvY3VzZWRFbGVtZW50
ID0gbmV3Rm9jdXNlZEZyYW1lID8gbmV3Rm9jdXNlZEZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2Vk
RWxlbWVudCgpIDogbnVsbHB0cjsKKworICAgIC8vIElmIHRoZSBmb2N1cyBoYXMgbm90IGNoYW5n
ZWQsIHdlIG5lZWQgdG8gbm90aWZ5IHRoZSBjbGllbnQgYW55d2F5LCBzaW5jZSBpdCBtaWdodCBi
ZQorICAgIC8vIG5lY2Vzc2FyeSB0byBzdGFydCBhc3Npc3RpbmcgdGhlIG5vZGUuCisgICAgLy8g
SWYgdGhlIG5vZGUgaGFzIGJlZW4gZm9jdXNlZCBieSBKYXZhU2NyaXB0IHdpdGhvdXQgdXNlciBp
bnRlcmFjdGlvbiwgdGhlCisgICAgLy8ga2V5Ym9hcmQgaXMgbm90IG9uIHNjcmVlbi4KKyAgICBp
ZiAobmV3Rm9jdXNlZEVsZW1lbnQgJiYgbmV3Rm9jdXNlZEVsZW1lbnQgPT0gb2xkRm9jdXNlZEVs
ZW1lbnQpCisgICAgICAgIGVsZW1lbnREaWRGb2N1cyhuZXdGb2N1c2VkRWxlbWVudC5nZXQoKSk7
CisKKyAgICBtX3VzZXJJc0ludGVyYWN0aW5nID0gZmFsc2U7CiB9CiAKIHZvaWQgV2ViUGFnZTo6
dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IEZsb2F0UG9p
bnQmIHBvc2l0aW9uKQpAQCAtMTc0Nyw3ICsxNzYzLDcgQEAgdm9pZCBXZWJQYWdlOjplbGVtZW50
RGlkRm9jdXMoV2ViQ29yZTo6TgogICAgICAgICBnZXRBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbihp
bmZvcm1hdGlvbik7CiAgICAgICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7CiAgICAg
ICAgIG1fZm9ybUNsaWVudC0+d2lsbEJlZ2luSW5wdXRTZXNzaW9uKHRoaXMsIHRvRWxlbWVudChu
b2RlKSwgV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKm5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKSks
IHVzZXJEYXRhKTsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdGFydEFz
c2lzdGluZ05vZGUoaW5mb3JtYXRpb24sIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVy
KHVzZXJEYXRhLmdldCgpKSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlN0YXJ0QXNzaXN0aW5nTm9kZShpbmZvcm1hdGlvbiwgbV91c2VySXNJbnRlcmFjdGluZywgSW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CiAgICAgfQog
fQogCg==
</data>
<flag name="review"
          id="254485"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>