<?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>139617</bug_id>
          
          <creation_ts>2014-12-13 00:16:00 -0800</creation_ts>
          <short_desc>Implement Data Detectors immediate actions for WebKit2</short_desc>
          <delta_ts>2014-12-15 12:27:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>conrad_shultz</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1055403</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-13 00:16:00 -0800</bug_when>
    <thetext>Implement Data Detectors immediate actions for WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055404</commentid>
    <comment_count>1</comment_count>
      <attachid>243251</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-13 00:16:56 -0800</bug_when>
    <thetext>Created attachment 243251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055405</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-13 00:18:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/19198539&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055406</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-13 00:19:13 -0800</bug_when>
    <thetext>Attachment 243251 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:464:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:466:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:470:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 6 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>1055416</commentid>
    <comment_count>4</comment_count>
      <attachid>243251</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-12-13 02:01:58 -0800</bug_when>
    <thetext>Comment on attachment 243251
Patch

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

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:3615
&gt; +    // FIXME: Temporarily disable action menu installation.

This is pretty shameful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055425</commentid>
    <comment_count>5</comment_count>
      <attachid>243251</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-12-13 07:52:16 -0800</bug_when>
    <thetext>Comment on attachment 243251
Patch

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

&gt; Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:93
&gt; +    _immediateActionRecognizer.enabled = NO;
&gt; +    _immediateActionRecognizer.enabled = YES;

See my comment in the WK1 version of this patch.

&gt; Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:462
&gt; +    // Ref our WebPageProxy for use in the blocks below.
&gt; +    RefPtr&lt;WebPageProxy&gt; page = _page;

Nit: this seems fairly self evident, is the comment necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055691</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-15 11:46:17 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/177298
http://trac.webkit.org/changeset/177299</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055704</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-15 12:27:37 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/177303</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243251</attachid>
            <date>2014-12-13 00:16:56 -0800</date>
            <delta_ts>2014-12-13 02:01:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139617-20141213001740.patch</filename>
            <type>text/plain</type>
            <size>16034</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjE5NTExODRkN2U5NDlh
MGMxNDVmMDQ4YzQ3NWVhYjgyMmZjYmE3Mi4uZWY4N2UwZGM3MDk3MjI3ODI2YjlhNzhlNzI0NjA0
ZDBkNmU2NWE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTEyLTEzICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgRGF0YSBEZXRlY3RvcnMgaW1tZWRpYXRlIGFjdGlvbnMgZm9yIFdlYktpdDIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTYxNworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTkxOTg1Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5o
OgorICAgICAgICBBZGQgYSBuZXcgdHlwZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IG1vdXNlRG93bjpdKToKKyAgICAgICAgU2Vu
ZCBtb3VzZURvd24gYWxvbmcgdG8gdGhlIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciB0b28u
CisKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29udGV4dDpjb25maWd1cmF0aW9u
OndlYlZpZXc6XSk6CisgICAgICAgIFRlbXBvcmFyaWx5IGRpc2FibGUgYWN0aW9uIG1lbnVzLgor
CisgICAgICAgICgtW1dLVmlldyBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c10p
OgorICAgICAgICBIaWRlIHRoZSBpbW1lZGlhdGUgYWN0aW9uIHByZXZpZXcgd2hlbiBkZXRhY2hp
bmcgY2hpbGQgd2luZG93cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ciB3aWxsRGVzdHJveVZpZXc6XSk6CisgICAgICAgIENsZWFyIHRoZSBEREFjdGlvbkNvbnRleHQg
d2hlbiB0ZWFyaW5nIGRvd24gdGhlIHZpZXcuCisKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyIHdrVmlldzp3aWxsSGFuZGxlTW91c2VEb3duOl0pOgorICAgICAgICAoLVtX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2NhbmNlbEltbWVkaWF0ZUFjdGlvbl0pOgorICAg
ICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2NsZWFySW1tZWRpYXRlQWN0aW9u
U3RhdGVdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGltbWVkaWF0
ZUFjdGlvblJlY29nbml6ZXJXaWxsUHJlcGFyZTpdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyIGltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJXaWxsQmVnaW5BbmltYXRp
b246XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBfZGVmYXVsdEFu
aW1hdGlvbkNvbnRyb2xsZXJdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyIF91cGRhdGVJbW1lZGlhdGVBY3Rpb25JdGVtXSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlciBoaWRlUHJldmlld10pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIgcG9wb3ZlcldpbGxDbG9zZTpdKToKKyAgICAgICAgKC1bV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyIF9tZW51SXRlbUZvckRhdGFEZXRlY3RlZFRleHRdKToKKyAgICAg
ICAgQ29weSBtb3N0IG9mIHRoZSBEYXRhRGV0ZWN0b3JzIGltcGxlbWVudGF0aW9uIGludG8gV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLgorCiAyMDE0LTEyLTEyICBUaW1vdGh5IEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBUZXh0SW5kaWNhdG9yIChhbmQg
b3RoZXIgdmlldy1yZWxhdGl2ZSBzdWJ3aW5kb3dzKSBpcyBub3QgZGlzbWlzc2VkIG9uIHpvb20g
Z2VzdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLSW1tZWRp
YXRlQWN0aW9uVHlwZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0ltbWVkaWF0
ZUFjdGlvblR5cGVzLmgKaW5kZXggMTdlNWE5MjExZGZkNmFiMzcwZmNkN2Y3ZmQxNTUzN2U4NDQ2
YTJiMy4uOGMyZGI0ZGYyNWQ0YTI5MDQ0NGMzZmJiZWQ4YjFiNGU1NGMwYjU1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLSW1tZWRpYXRlQWN0aW9uVHlwZXMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5o
CkBAIC0zNSw2ICszNSw3IEBAIGV4dGVybiAiQyIgewogZW51bSB7CiAgICAga1dLSW1tZWRpYXRl
QWN0aW9uTm9uZSA9IDAsCiAgICAga1dLSW1tZWRpYXRlQWN0aW9uTGlua1ByZXZpZXcsCisgICAg
a1dLSW1tZWRpYXRlQWN0aW9uRGF0YURldGVjdGVkSXRlbSwKIH07CiB0eXBlZGVmIHVpbnQzMl90
IF9XS0ltbWVkaWF0ZUFjdGlvblR5cGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQppbmRleCA2MDMwYTlkMWRmYjM4ZTMxMjRkMDg2OGZkOGE0M2JkN2UyYTZj
NjFkLi41OTY4MDk5N2MwNmFkOWNkODgyOGM0N2VhN2Q3YjA2OTM2N2YwMzk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xMjQ0LDYgKzEyNDQsNyBA
QCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUihyaWdodE1vdXNlVXApCiAgICAgW3NlbGYgX2Rp
c21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwogI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCiAgICAgW19kYXRhLT5fYWN0aW9uTWVudUNvbnRyb2xs
ZXIgd2tWaWV3OnNlbGYgd2lsbEhhbmRsZU1vdXNlRG93bjpldmVudF07CisgICAgW19kYXRhLT5f
aW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciB3a1ZpZXc6c2VsZiB3aWxsSGFuZGxlTW91c2VEb3du
OmV2ZW50XTsKICNlbmRpZgogICAgIFtzZWxmIG1vdXNlRG93bkludGVybmFsOmV2ZW50XTsKIH0K
QEAgLTM2MTEsMTMgKzM2MTIsMTQgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZp
bGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihf
ZGljdGlvbmFyeUxvb2t1cFBvcG92ZXJXaWxsQ2xvc2U6KSBuYW1lOmdldExVTm90aWZpY2F0aW9u
UG9wb3ZlcldpbGxDbG9zZSgpIG9iamVjdDpuaWxdOwogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBpZiAoW3NlbGYgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihzZXRBY3Rpb25NZW51OildKSB7CisgICAgLy8gRklYTUU6IFRlbXBvcmFyaWx5
IGRpc2FibGUgYWN0aW9uIG1lbnUgaW5zdGFsbGF0aW9uLgorICAgIC8qaWYgKFtzZWxmIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0QWN0aW9uTWVudTopXSkgewogICAgICAgICBSZXRh
aW5QdHI8TlNNZW51PiBtZW51ID0gYWRvcHROUyhbW05TTWVudSBhbGxvY10gaW5pdF0pOwogICAg
ICAgICBzZWxmLmFjdGlvbk1lbnUgPSBtZW51LmdldCgpOwogICAgICAgICBfZGF0YS0+X2FjdGlv
bk1lbnVDb250cm9sbGVyID0gYWRvcHROUyhbW1dLQWN0aW9uTWVudUNvbnRyb2xsZXIgYWxsb2Nd
IGluaXRXaXRoUGFnZToqX2RhdGEtPl9wYWdlIHZpZXc6c2VsZl0pOwogICAgICAgICBzZWxmLmFj
dGlvbk1lbnUuZGVsZWdhdGUgPSBfZGF0YS0+X2FjdGlvbk1lbnVDb250cm9sbGVyLmdldCgpOwog
ICAgICAgICBzZWxmLmFjdGlvbk1lbnUuYXV0b2VuYWJsZXNJdGVtcyA9IE5POwotICAgIH0KKyAg
ICB9Ki8KIAogICAgIGlmIChDbGFzcyBnZXN0dXJlQ2xhc3MgPSBOU0NsYXNzRnJvbVN0cmluZyhA
Ik5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIiKSkgewogICAgICAgICBSZXRhaW5Q
dHI8TlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplcj4gcmVjb2duaXplciA9IGFkb3B0
TlMoWyhOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopW2dlc3R1cmVDbGFzcyBh
bGxvY10gaW5pdFdpdGhUYXJnZXQ6bmlsIGFjdGlvbjpOVUxMXSk7CkBAIC00MzI4LDYgKzQzMzAs
MTAgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0
cmluZyAqcGF0aCkKICAgICBpZiAoW2FjdGlvbnNNYW5hZ2VyIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IocmVxdWVzdEJ1YmJsZUNsb3N1cmVVbmFuY2hvck9uRmFpbHVyZTopXSkKICAgICAg
ICAgW2FjdGlvbnNNYW5hZ2VyIHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNob3JPbkZhaWx1cmU6
WUVTXTsKIAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwICYm
IFdLX0FQSV9FTkFCTEVECisgICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBo
aWRlUHJldmlld107CisjZW5kaWYKKwogICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOm51bGxw
dHIgZmFkZU91dDpOT107CiAKICAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50Jj4oKl9kYXRhLT5f
cGFnZUNsaWVudCkuZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChSZWFzb25Gb3JEaXNtaXNzaW5nQWx0
ZXJuYXRpdmVUZXh0SWdub3JlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dLQWN0aW9uTWVudUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dLQWN0aW9uTWVudUNvbnRyb2xsZXIubW0KaW5kZXggNDNkNGRlZjVhM2MxNmEzODEw
YmQ5MDY5NzZlZmQ0NjI1MmIzZjA5YS4uNGMxMGYyMzAyNzk2NjNmZDM2OWE4YmUyMDY1NWU0ZTVk
ZjNmYWE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0FjdGlv
bk1lbnVDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tB
Y3Rpb25NZW51Q29udHJvbGxlci5tbQpAQCAtMzkwLDcgKzM5MCw3IEBAIHN0YXRpYyBOU1N0cmlu
ZyAqcGF0aFRvUGhvdG9PbkRpc2soTlNTdHJpbmcgKnN1Z2dlc3RlZEZpbGVuYW1lKQogICAgICAg
ICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEYXRhRGV0ZWN0b3JzRGlkUHJlc2VudFVJ
KG92ZXJsYXlJRCkpOwogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkgewogICAg
ICAgICBpZiAoX2hpdFRlc3RSZXN1bHQuZGV0ZWN0ZWREYXRhVGV4dEluZGljYXRvcikKLSAgICAg
ICAgICAgIF9wYWdlLT5zZXRUZXh0SW5kaWNhdG9yKF9oaXRUZXN0UmVzdWx0LmRldGVjdGVkRGF0
YVRleHRJbmRpY2F0b3ItPmRhdGEoKSwgZmFsc2UpOworICAgICAgICAgICAgcGFnZS0+c2V0VGV4
dEluZGljYXRvcihfaGl0VGVzdFJlc3VsdC5kZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yLT5kYXRh
KCksIGZhbHNlKTsKICAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGF0YURl
dGVjdG9yc0RpZENoYW5nZVVJKG92ZXJsYXlJRCkpOwogICAgIH0gaW50ZXJhY3Rpb25TdG9wcGVk
SGFuZGxlcjpeKCkgewogICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEYXRh
RGV0ZWN0b3JzRGlkSGlkZVVJKG92ZXJsYXlJRCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgKaW5kZXgg
Mjc5MzZjZTczYWYwOWM0OTYxMjA5YjVhMWUxMmQ0ZjYwYzkzYzU0NC4uYjA2ZmE5MzU3NDc0MDli
YTEwMDhiYzMyMjZmYzM1ZmUwZjkwZDcxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oCkBAIC00NCw2
ICs0NCw3IEBAIGVudW0gY2xhc3MgSW1tZWRpYXRlQWN0aW9uU3RhdGUgewogfTsKIH0KIAorQGNs
YXNzIEREQWN0aW9uQ29udGV4dDsKIEBjbGFzcyBXS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXI7
CiBAY2xhc3MgV0tWaWV3OwogCkBAIC02MCw2ICs2MSw5IEBAIGVudW0gY2xhc3MgSW1tZWRpYXRl
QWN0aW9uU3RhdGUgewogCiAgICAgTlNQb2ludCBfZXZlbnRMb2NhdGlvbkluVmlldzsKIAorICAg
IEJPT0wgX2hhc0FjdGl2YXRlZEFjdGlvbkNvbnRleHQ7CisgICAgUmV0YWluUHRyPEREQWN0aW9u
Q29udGV4dD4gX2N1cnJlbnRBY3Rpb25Db250ZXh0OworCiAjaWYgV0tfQVBJX0VOQUJMRUQKICAg
ICBSZXRhaW5QdHI8TlNQb3BvdmVyPiBfcHJldmlld1BvcG92ZXI7CiAgICAgU3RyaW5nIF9wcmV2
aWV3UG9wb3Zlck9yaWdpbmFsVVJMOwpAQCAtNzEsOSArNzUsMTEgQEAgZW51bSBjbGFzcyBJbW1l
ZGlhdGVBY3Rpb25TdGF0ZSB7CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6
OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihXS1ZpZXcgKil3a1ZpZXcgcmVjb2duaXplcjooTlNJ
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6
ZXI7CiAtICh2b2lkKXdpbGxEZXN0cm95VmlldzooV0tWaWV3ICopdmlldzsKIC0gKHZvaWQpZGlk
UGVyZm9ybUFjdGlvbk1lbnVIaXRUZXN0Oihjb25zdCBXZWJLaXQ6OkFjdGlvbk1lbnVIaXRUZXN0
UmVzdWx0JiloaXRUZXN0UmVzdWx0IHVzZXJEYXRhOihBUEk6Ok9iamVjdCopdXNlckRhdGE7Cist
ICh2b2lkKXdrVmlldzooV0tWaWV3ICopd2tWaWV3IHdpbGxIYW5kbGVNb3VzZURvd246KE5TRXZl
bnQgKilldmVudDsKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAtICh2b2lkKXNldFByZXZpZXdUaXRs
ZTooTlNTdHJpbmcgKilwcmV2aWV3VGl0bGU7CistICh2b2lkKWhpZGVQcmV2aWV3OwogI2VuZGlm
IC8vIFdLX0FQSV9FTkFCTEVECiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggYWE4
NWNiN2I1MWI5ZDk3NTNjNDg4MDZiMDIxYTk2NzAwN2NiY2VmYy4uOTAyN2U4NDBiYzc4NDU2ZWUx
NDBkYjM3MGYzY2FiMThjZTdiNWRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTM1LDYg
KzM1LDcgQEAKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5
TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29y
ZS9EYXRhRGV0ZWN0b3JzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dlb21ldHJ5VXRpbGl0aWVz
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05TTWVudVNQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9RdWlj
a0xvb2tNYWNTUEkuaD4KQEAgLTc4LDE0ICs3OSwzNSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogICAgIF93a1ZpZXcgPSBuaWw7CiAgICAgX2hpdFRlc3RSZXN1bHQgPSBBY3Rpb25NZW51SGl0
VGVzdFJlc3VsdCgpOwogICAgIF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyID0gbmlsOworICAg
IF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IG5pbDsKK30KKworLSAodm9pZCl3a1ZpZXc6KFdLVmll
dyAqKXdrVmlldyB3aWxsSGFuZGxlTW91c2VEb3duOihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBb
c2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Cit9CisKKy0gKHZvaWQpX2NhbmNlbElt
bWVkaWF0ZUFjdGlvbgoreworICAgIF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyLmVuYWJsZWQg
PSBOTzsKKyAgICBfaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplci5lbmFibGVkID0gWUVTOworCisg
ICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwogfQogCiAtICh2b2lkKV9jbGVh
ckltbWVkaWF0ZUFjdGlvblN0YXRlCiB7CisgICAgaWYgKF9jdXJyZW50QWN0aW9uQ29udGV4dCAm
JiBfaGFzQWN0aXZhdGVkQWN0aW9uQ29udGV4dCkgeworICAgICAgICBbZ2V0RERBY3Rpb25zTWFu
YWdlckNsYXNzKCkgZGlkVXNlQWN0aW9uc107CisgICAgICAgIF9oYXNBY3RpdmF0ZWRBY3Rpb25D
b250ZXh0ID0gTk87CisgICAgfQorCiAgICAgX3N0YXRlID0gSW1tZWRpYXRlQWN0aW9uU3RhdGU6
Ok5vbmU7CiAgICAgX2hpdFRlc3RSZXN1bHQgPSBBY3Rpb25NZW51SGl0VGVzdFJlc3VsdCgpOwog
ICAgIF90eXBlID0ga1dLSW1tZWRpYXRlQWN0aW9uTm9uZTsKKyAgICBfY3VycmVudEFjdGlvbkNv
bnRleHQgPSBuaWw7CiAgICAgX3VzZXJEYXRhID0gbmlsOworICAgIF9pbW1lZGlhdGVBY3Rpb25S
ZWNvZ25pemVyLmFuaW1hdGlvbkNvbnRyb2xsZXIgPSBuaWw7CiB9CiAKIC0gKHZvaWQpZGlkUGVy
Zm9ybUFjdGlvbk1lbnVIaXRUZXN0Oihjb25zdCBBY3Rpb25NZW51SGl0VGVzdFJlc3VsdCYpaGl0
VGVzdFJlc3VsdCB1c2VyRGF0YTooQVBJOjpPYmplY3QqKXVzZXJEYXRhCkBAIC0xMDUsNiArMTI3
LDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBpZiAoaW1tZWRpYXRlQWN0aW9uUmVj
b2duaXplciAhPSBfaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcikKICAgICAgICAgcmV0dXJuOwog
CisgICAgW193a1ZpZXcgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOworCiAg
ICAgX2V2ZW50TG9jYXRpb25JblZpZXcgPSBbaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplciBsb2Nh
dGlvbkluVmlldzppbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyLnZpZXddOwogICAgIF9wYWdlLT5w
ZXJmb3JtQWN0aW9uTWVudUhpdFRlc3RBdExvY2F0aW9uKF9ldmVudExvY2F0aW9uSW5WaWV3KTsK
IApAQCAtMTE3LDkgKzE0MSwxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIGlmIChp
bW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyICE9IF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoX3N0YXRlICE9IEltbWVkaWF0ZUFjdGlvblN0
YXRlOjpOb25lKTsKKyAgICBpZiAoX3N0YXRlID09IEltbWVkaWF0ZUFjdGlvblN0YXRlOjpOb25l
KQorICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBiZSBhYmxlIHRv
IGNhbmNlbCB0aGlzIGlmIHRoZSBnZXN0dXJlIHJlY29nbml6ZXIgZ29lcyBhd2F5LgorICAgIC8v
IEZJWE1FOiBXZSBuZWVkIHRvIGJlIGFibGUgdG8gY2FuY2VsIHRoaXMgaWYgdGhlIGdlc3R1cmUg
cmVjb2duaXplciBpcyBjYW5jZWxsZWQuCiAgICAgLy8gRklYTUU6IENvbm5lY3Rpb24gY2FuIGJl
IG51bGwgaWYgdGhlIHByb2Nlc3MgaXMgY2xvc2VkOyB3ZSBzaG91bGQgY2xlYW4gdXAgYmV0dGVy
IGluIHRoYXQgY2FzZS4KICAgICBpZiAoX3N0YXRlID09IEltbWVkaWF0ZUFjdGlvblN0YXRlOjpQ
ZW5kaW5nKSB7CiAgICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gX3BhZ2UtPnByb2Nlc3Mo
KS5jb25uZWN0aW9uKCkpIHsKQEAgLTEzMSw2ICsxNTYsMTcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIAogICAgIGlmIChfc3RhdGUgIT0gSW1tZWRpYXRlQWN0aW9uU3RhdGU6OlJlYWR5KQog
ICAgICAgICBbc2VsZiBfdXBkYXRlSW1tZWRpYXRlQWN0aW9uSXRlbV07CisKKyAgICBpZiAoIV9p
bW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyLmFuaW1hdGlvbkNvbnRyb2xsZXIpIHsKKyAgICAgICAg
W3NlbGYgX2NhbmNlbEltbWVkaWF0ZUFjdGlvbl07CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAoX2N1cnJlbnRBY3Rpb25Db250ZXh0KSB7CisgICAgICAgIF9oYXNBY3RpdmF0ZWRB
Y3Rpb25Db250ZXh0ID0gWUVTOworICAgICAgICBpZiAoIVtnZXREREFjdGlvbnNNYW5hZ2VyQ2xh
c3MoKSBzaG91bGRVc2VBY3Rpb25zV2l0aENvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0Lmdl
dCgpXSkKKyAgICAgICAgICAgIFtzZWxmIF9jYW5jZWxJbW1lZGlhdGVBY3Rpb25dOworICAgIH0K
IH0KIAogLSAodm9pZClpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyRGlkQ2FuY2VsQW5pbWF0aW9u
OihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopaW1tZWRpYXRlQWN0aW9uUmVj
b2duaXplcgpAQCAtMTYyLDE2ICsxOTgsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAog
I3ByYWdtYSBtYXJrIEltbWVkaWF0ZSBhY3Rpb25zCiAKLS0gKHZvaWQpX3VwZGF0ZUltbWVkaWF0
ZUFjdGlvbkl0ZW0KKy0gKGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+
KV9kZWZhdWx0QW5pbWF0aW9uQ29udHJvbGxlcgogewogICAgIFJlZlB0cjxXZWJIaXRUZXN0UmVz
dWx0PiBoaXRUZXN0UmVzdWx0ID0gW3NlbGYgX3dlYkhpdFRlc3RSZXN1bHRdOwogCi0gICAgX3R5
cGUgPSBrV0tJbW1lZGlhdGVBY3Rpb25Ob25lOwotICAgIF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25p
emVyLmFuaW1hdGlvbkNvbnRyb2xsZXIgPSBuaWw7Ci0gICAgaWQgPE5TSW1tZWRpYXRlQWN0aW9u
QW5pbWF0aW9uQ29udHJvbGxlcj4gZGVmYXVsdEFuaW1hdGlvbkNvbnRyb2xsZXIgPSBuaWw7Ci0K
ICAgICBpZiAoIWhpdFRlc3RSZXN1bHQpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJu
IG5pbDsKIAogICAgIFN0cmluZyBhYnNvbHV0ZUxpbmtVUkwgPSBoaXRUZXN0UmVzdWx0LT5hYnNv
bHV0ZUxpbmtVUkwoKTsKICAgICBpZiAoIWFic29sdXRlTGlua1VSTC5pc0VtcHR5KCkgJiYgV2Vi
Q29yZTo6cHJvdG9jb2xJc0luSFRUUEZhbWlseShhYnNvbHV0ZUxpbmtVUkwpKSB7CkBAIC0xODYs
MTggKzIxOCwzOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgICAgICAgICAgICAgIFtx
bFByZXZpZXdMaW5rSXRlbSBzZXRQcmV2aWV3U3R5bGU6UUxQcmV2aWV3U3R5bGVQb3BvdmVyXTsK
ICAgICAgICAgICAgICAgICBbcWxQcmV2aWV3TGlua0l0ZW0gc2V0RGVsZWdhdGU6c2VsZl07CiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBkZWZhdWx0QW5pbWF0aW9uQ29udHJvbGxlciA9IChp
ZDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KXFsUHJldmlld0xpbmtJdGVt
LmdldCgpOwotICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIChpZDxOU0ltbWVk
aWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KXFsUHJldmlld0xpbmtJdGVtLmdldCgpOwor
ICAgICAgICB9CisKICNpZiBXS19BUElfRU5BQkxFRAotICAgICAgICAgICAgW3NlbGYgX2NyZWF0
ZVByZXZpZXdQb3BvdmVySWZOZWVkZWRGb3JVUkw6YWJzb2x1dGVMaW5rVVJMXTsKLSAgICAgICAg
ICAgIGRlZmF1bHRBbmltYXRpb25Db250cm9sbGVyID0gKGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uQ29udHJvbGxlcj4pX3ByZXZpZXdQb3BvdmVyLmdldCgpOworICAgICAgICBbc2VsZiBf
Y3JlYXRlUHJldmlld1BvcG92ZXJJZk5lZWRlZEZvclVSTDphYnNvbHV0ZUxpbmtVUkxdOworICAg
ICAgICByZXR1cm4gKGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX3By
ZXZpZXdQb3BvdmVyLmdldCgpOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIG5pbDsKICNlbmRpZiAv
LyBXS19BUElfRU5BQkxFRAorICAgIH0KKworICAgIGlmIChoaXRUZXN0UmVzdWx0LT5pc1RleHRO
b2RlKCkgfHwgaGl0VGVzdFJlc3VsdC0+aXNPdmVyVGV4dEluc2lkZUZvcm1Db250cm9sRWxlbWVu
dCgpKSB7CisgICAgICAgIGlmIChOU01lbnVJdGVtICppbW1lZGlhdGVBY3Rpb25JdGVtID0gW3Nl
bGYgX21lbnVJdGVtRm9yRGF0YURldGVjdGVkVGV4dF0pIHsKKyAgICAgICAgICAgIF90eXBlID0g
a1dLSW1tZWRpYXRlQWN0aW9uRGF0YURldGVjdGVkSXRlbTsKKyAgICAgICAgICAgIHJldHVybiAo
aWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilpbW1lZGlhdGVBY3Rpb25J
dGVtOwogICAgICAgICB9CiAgICAgfQogCisgICAgcmV0dXJuIG5pbDsKK30KKworLSAodm9pZClf
dXBkYXRlSW1tZWRpYXRlQWN0aW9uSXRlbQoreworICAgIF90eXBlID0ga1dLSW1tZWRpYXRlQWN0
aW9uTm9uZTsKKworICAgIGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+
IGRlZmF1bHRBbmltYXRpb25Db250cm9sbGVyID0gW3NlbGYgX2RlZmF1bHRBbmltYXRpb25Db250
cm9sbGVyXTsKKworICAgIFJlZlB0cjxXZWJIaXRUZXN0UmVzdWx0PiBoaXRUZXN0UmVzdWx0ID0g
W3NlbGYgX3dlYkhpdFRlc3RSZXN1bHRdOwogICAgIGlkIGN1c3RvbUNsaWVudEFuaW1hdGlvbkNv
bnRyb2xsZXIgPSBbX3drVmlldyBfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZv
ckhpdFRlc3RSZXN1bHQ6dG9BUEkoaGl0VGVzdFJlc3VsdC5nZXQoKSkgd2l0aFR5cGU6X3R5cGUg
dXNlckRhdGE6dG9BUEkoX3VzZXJEYXRhLmdldCgpKV07Ci0gICAgaWYgKGN1c3RvbUNsaWVudEFu
aW1hdGlvbkNvbnRyb2xsZXIgPT0gW05TTnVsbCBudWxsXSkKKyAgICBpZiAoY3VzdG9tQ2xpZW50
QW5pbWF0aW9uQ29udHJvbGxlciA9PSBbTlNOdWxsIG51bGxdKSB7CisgICAgICAgIFtzZWxmIF9j
YW5jZWxJbW1lZGlhdGVBY3Rpb25dOwogICAgICAgICByZXR1cm47CisgICAgfQogICAgIGlmIChj
dXN0b21DbGllbnRBbmltYXRpb25Db250cm9sbGVyICYmIFtjdXN0b21DbGllbnRBbmltYXRpb25D
b250cm9sbGVyIGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2woTlNJbW1lZGlhdGVBY3Rpb25B
bmltYXRpb25Db250cm9sbGVyKV0pCiAgICAgICAgIF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVy
LmFuaW1hdGlvbkNvbnRyb2xsZXIgPSAoaWQgPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29u
dHJvbGxlcj4pY3VzdG9tQ2xpZW50QW5pbWF0aW9uQ29udHJvbGxlcjsKICAgICBlbHNlCkBAIC0y
MzYsNyArMjg5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBbX3ByZXZpZXdQb3Bv
dmVyIHNldERlbGVnYXRlOnNlbGZdOwogfQogCi0tICh2b2lkKV9jbGVhclByZXZpZXdQb3BvdmVy
CistICh2b2lkKWhpZGVQcmV2aWV3CiB7CiAgICAgaWYgKF9wcmV2aWV3Vmlld0NvbnRyb2xsZXIp
IHsKICAgICAgICAgX3ByZXZpZXdWaWV3Q29udHJvbGxlci0+X2RlbGVnYXRlID0gbmlsOwpAQCAt
MjU3LDcgKzMxMCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIC0gKHZvaWQpcG9wb3Zl
cldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBbc2VsZiBf
Y2xlYXJQcmV2aWV3UG9wb3Zlcl07CisgICAgW3NlbGYgaGlkZVByZXZpZXddOwogfQogCiBzdGF0
aWMgYm9vbCB0YXJnZXRTaXplRml0c0luQXZhaWxhYmxlU3BhY2UoTlNTaXplIHRhcmdldFNpemUs
IE5TU2l6ZSBhdmFpbGFibGVTcGFjZSkKQEAgLTM5MSw2ICs0NDQsNDYgQEAgc3RhdGljIGJvb2wg
dGFyZ2V0U2l6ZUZpdHNJbkF2YWlsYWJsZVNwYWNlKE5TU2l6ZSB0YXJnZXRTaXplLCBOU1NpemUg
YXZhaWxhYmxlU3AKICAgICByZXR1cm4gTlNNYXhZRWRnZTsKIH0KIAorI3ByYWdtYSBtYXJrIERh
dGEgRGV0ZWN0b3JzIGFjdGlvbnMKKworLSAoTlNNZW51SXRlbSAqKV9tZW51SXRlbUZvckRhdGFE
ZXRlY3RlZFRleHQKK3sKKyAgICBEREFjdGlvbkNvbnRleHQgKmFjdGlvbkNvbnRleHQgPSBfaGl0
VGVzdFJlc3VsdC5hY3Rpb25Db250ZXh0LmdldCgpOworICAgIGlmICghYWN0aW9uQ29udGV4dCkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGFjdGlvbkNvbnRleHQuYWx0TW9kZSA9IFlFUzsK
KyAgICBpZiAoW1tnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGhhc0FjdGlvbnNGb3JSZXN1bHQ6YWN0aW9uQ29udGV4
dDopXSkgeworICAgICAgICBpZiAoIVtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVk
TWFuYWdlcl0gaGFzQWN0aW9uc0ZvclJlc3VsdDphY3Rpb25Db250ZXh0Lm1haW5SZXN1bHQgYWN0
aW9uQ29udGV4dDphY3Rpb25Db250ZXh0XSkKKyAgICAgICAgICAgIHJldHVybiBuaWw7CisgICAg
fQorCisgICAgLy8gUmVmIG91ciBXZWJQYWdlUHJveHkgZm9yIHVzZSBpbiB0aGUgYmxvY2tzIGJl
bG93LgorICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZTsKKyAgICBQYWdlT3Zl
cmxheTo6UGFnZU92ZXJsYXlJRCBvdmVybGF5SUQgPSBfaGl0VGVzdFJlc3VsdC5kZXRlY3RlZERh
dGFPcmlnaW5hdGluZ1BhZ2VPdmVybGF5OworICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFth
Y3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol93a1ZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rp
b25TdGFydGVkSGFuZGxlcjpeKCkgeworICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpEYXRhRGV0ZWN0b3JzRGlkUHJlc2VudFVJKG92ZXJsYXlJRCkpOworICAgIH0gaW50ZXJh
Y3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkgeworICAgICAgICBpZiAoX2hpdFRlc3RSZXN1bHQuZGV0
ZWN0ZWREYXRhVGV4dEluZGljYXRvcikKKyAgICAgICAgICAgIHBhZ2UtPnNldFRleHRJbmRpY2F0
b3IoX2hpdFRlc3RSZXN1bHQuZGV0ZWN0ZWREYXRhVGV4dEluZGljYXRvci0+ZGF0YSgpLCBmYWxz
ZSk7CisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRhdGFEZXRlY3RvcnNE
aWRDaGFuZ2VVSShvdmVybGF5SUQpKTsKKyAgICB9IGludGVyYWN0aW9uU3RvcHBlZEhhbmRsZXI6
XigpIHsKKyAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGF0YURldGVjdG9y
c0RpZEhpZGVVSShvdmVybGF5SUQpKTsKKyAgICAgICAgcGFnZS0+Y2xlYXJUZXh0SW5kaWNhdG9y
KCk7CisgICAgfV07CisKKyAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZy
YW1lOltfd2tWaWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOltfd2tWaWV3IGNvbnZlcnRS
ZWN0Ol9oaXRUZXN0UmVzdWx0LmRldGVjdGVkRGF0YUJvdW5kaW5nQm94IHRvVmlldzpuaWxdXV07
CisKKyAgICBOU0FycmF5ICptZW51SXRlbXMgPSBbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygp
IHNoYXJlZE1hbmFnZXJdIG1lbnVJdGVtc0ZvclJlc3VsdDpbX2N1cnJlbnRBY3Rpb25Db250ZXh0
IG1haW5SZXN1bHRdIGFjdGlvbkNvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXTsK
KworICAgIGlmIChtZW51SXRlbXMuY291bnQgIT0gMSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIGlmIChfaGl0VGVzdFJlc3VsdC5kZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yKQorICAgICAg
ICBfaGl0VGVzdFJlc3VsdC5kZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yLT5zZXRQcmVzZW50YXRp
b25UcmFuc2l0aW9uKFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2Up
OworICAgIHJldHVybiBtZW51SXRlbXMubGFzdE9iamVjdDsKK30KKwogQGVuZAogCiAjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQo=
</data>
<flag name="review"
          id="268108"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>