<?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>201144</bug_id>
          
          <creation_ts>2019-08-26 12:26:21 -0700</creation_ts>
          <short_desc>Don&apos;t compute upconverted characters twice in buildQuery() in DataDetection.mm</short_desc>
          <delta_ts>2019-08-26 13:26:58 -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>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=152989</see_also>
          <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="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>enrica</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1565045</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-08-26 12:26:21 -0700</bug_when>
    <thetext>Currently upconverted characters (and string length) are computed twice in buildQuery() in DataDetection.mm:

    for (TextIterator iterator(contextRange); !iterator.atEnd(); iterator.advance(), iteratorCount++) {
        size_t currentTextLength = iterator.text().length();
        [...]
        const UniChar* currentCharPtr = iterator.text().upconvertedCharacters();
        [...]
        RetainPtr&lt;CFStringRef&gt; currentText = adoptCF(CFStringCreateWithCharacters(kCFAllocatorDefault, iterator.text().upconvertedCharacters(), iterator.text().length()));
        [...]
    }

&lt;https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/editing/cocoa/DataDetection.mm#L365&gt;

There&apos;s no need to compute these twice, so we can extract the common code.

&lt;rdar://problem/54689399&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565046</commentid>
    <comment_count>1</comment_count>
      <attachid>377260</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-08-26 12:35:22 -0700</bug_when>
    <thetext>Created attachment 377260
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565048</commentid>
    <comment_count>2</comment_count>
      <attachid>377260</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-08-26 12:43:41 -0700</bug_when>
    <thetext>Comment on attachment 377260
Patch v1

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565063</commentid>
    <comment_count>3</comment_count>
      <attachid>377260</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-26 13:26:56 -0700</bug_when>
    <thetext>Comment on attachment 377260
Patch v1

Clearing flags on attachment: 377260

Committed r249115: &lt;https://trac.webkit.org/changeset/249115&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565064</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-26 13:26:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377260</attachid>
            <date>2019-08-26 12:35:22 -0700</date>
            <delta_ts>2019-08-26 13:26:56 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-201144-20190826123522.patch</filename>
            <type>text/plain</type>
            <size>11401</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODZjOTRjYWQ5Y2M5MjI5
MmJmMTgxMGVhZjllNWUyNzU1NWFkNGJkOC4uZjY5YWVlYmYwOTljZWMxNjhhYTJjYzc4OWQxNWU2
YTM5YjM5Zjg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA4LTI2ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgRG9uJ3QgY29tcHV0ZSB1
cGNvbnZlcnRlZCBjaGFyYWN0ZXJzIHR3aWNlIGluIGJ1aWxkUXVlcnkoKSBpbiBEYXRhRGV0ZWN0
aW9uLm1tCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8yMDExNDQ+CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81NDY4OTM5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmJ1aWxkUXVlcnkpOiBFeHRyYWN0IGNvbW1vbiB2YXJpYWJsZXMgdG8gcHJl
dmVudCBkb3VibGUKKyAgICAgICAgY29udmVyc2lvbiBmb3IgOC1iaXQgc3RyaW5ncy4KKwogMjAx
OS0wOC0yNiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKDE4RTE0MCk6IOKAnHJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1l4oCd
IHN1Z2dlc3Rpbmcg4oCccmVzdW1lIHJlYWwgdGltZSBzdHJlYW1pbmfigJ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQppbmRleCA2ODFmNWY1NjUzYWYy
MWIyNmRjZjk1OGRmMzE5OWVkODEwZWUwYWRhLi4zNmZjNDNhMTFiMzU4NTY0NmQzNmU0NjdhYmNi
NmE4MmRlMmI0ZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0Rh
dGFEZXRlY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0
ZWN0aW9uLm1tCkBAIC0zNjMsNyArMzYzLDggQEAgc3RhdGljIHZvaWQgYnVpbGRRdWVyeShERFNj
YW5RdWVyeVJlZiBzY2FuUXVlcnksIFJhbmdlKiBjb250ZXh0UmFuZ2UpCiAgICAgLy8gQnVpbGQg
dGhlIHNjYW4gcXVlcnkgYWRkaW5nIHNlcGFyYXRvcnMuCiAgICAgLy8gRm9yIGVhY2ggZnJhZ21l
bnQgdGhlIGl0ZXJhdG9yIGluY3JlbWVudCBpcyBzdG9yZWQgYXMgbWV0YWRhdGEuCiAgICAgZm9y
IChUZXh0SXRlcmF0b3IgaXRlcmF0b3IoY29udGV4dFJhbmdlKTsgIWl0ZXJhdG9yLmF0RW5kKCk7
IGl0ZXJhdG9yLmFkdmFuY2UoKSwgaXRlcmF0b3JDb3VudCsrKSB7Ci0gICAgICAgIHNpemVfdCBj
dXJyZW50VGV4dExlbmd0aCA9IGl0ZXJhdG9yLnRleHQoKS5sZW5ndGgoKTsKKyAgICAgICAgU3Ry
aW5nVmlldyBjdXJyZW50VGV4dCA9IGl0ZXJhdG9yLnRleHQoKTsKKyAgICAgICAgc2l6ZV90IGN1
cnJlbnRUZXh0TGVuZ3RoID0gY3VycmVudFRleHQubGVuZ3RoKCk7CiAgICAgICAgIGlmICghY3Vy
cmVudFRleHRMZW5ndGgpIHsKICAgICAgICAgICAgIHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3Jl
X0REU2NhblF1ZXJ5QWRkU2VwYXJhdG9yKHNjYW5RdWVyeSwgRERUZXh0Q29hbGVzY2luZ1R5cGVI
YXJkQnJlYWspOwogICAgICAgICAgICAgaWYgKGl0ZXJhdG9yQ291bnQgPiBtYXhGcmFnbWVudFdp
dGhIYXJkQnJlYWspCkBAIC0zNzEsNyArMzcyLDggQEAgc3RhdGljIHZvaWQgYnVpbGRRdWVyeShE
RFNjYW5RdWVyeVJlZiBzY2FuUXVlcnksIFJhbmdlKiBjb250ZXh0UmFuZ2UpCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICAvLyBUZXN0IGZvciB3aGl0ZSBzcGFjZSBu
b2Rlcywgd2UncmUgY29hbGVzY2luZyB0aGVtLgotICAgICAgICBjb25zdCBVbmlDaGFyKiBjdXJy
ZW50Q2hhclB0ciA9IGl0ZXJhdG9yLnRleHQoKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKTsKKyAg
ICAgICAgYXV0byBjdXJyZW50VGV4dFVwY29udmVydGVkQ2hhcmFjdGVycyA9IGN1cnJlbnRUZXh0
LnVwY29udmVydGVkQ2hhcmFjdGVycygpOworICAgICAgICBjb25zdCBVbmlDaGFyKiBjdXJyZW50
Q2hhclB0ciA9IGN1cnJlbnRUZXh0VXBjb252ZXJ0ZWRDaGFyYWN0ZXJzLmdldCgpOwogICAgICAg
ICAKICAgICAgICAgYm9vbCBjb250YWluc09ubHlXaGl0ZVNwYWNlID0gdHJ1ZTsKICAgICAgICAg
Ym9vbCBoYXNUYWIgPSBmYWxzZTsKQEAgLTQxMCw4ICs0MTIsOCBAQCBzdGF0aWMgdm9pZCBidWls
ZFF1ZXJ5KEREU2NhblF1ZXJ5UmVmIHNjYW5RdWVyeSwgUmFuZ2UqIGNvbnRleHRSYW5nZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBSZXRhaW5Q
dHI8Q0ZTdHJpbmdSZWY+IGN1cnJlbnRUZXh0ID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZVdpdGhD
aGFyYWN0ZXJzKGtDRkFsbG9jYXRvckRlZmF1bHQsIGl0ZXJhdG9yLnRleHQoKS51cGNvbnZlcnRl
ZENoYXJhY3RlcnMoKSwgaXRlcmF0b3IudGV4dCgpLmxlbmd0aCgpKSk7Ci0gICAgICAgIHNvZnRM
aW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REU2NhblF1ZXJ5QWRkVGV4dEZyYWdtZW50KHNjYW5RdWVy
eSwgY3VycmVudFRleHQuZ2V0KCksIENGUmFuZ2VNYWtlKDAsIGN1cnJlbnRUZXh0TGVuZ3RoKSwg
KHZvaWQgKilpdGVyYXRvckNvdW50LCAoRERUZXh0RnJhZ21lbnRNb2RlKTAsIEREVGV4dENvYWxl
c2NpbmdUeXBlTm9uZSk7CisgICAgICAgIGF1dG8gY3VycmVudFRleHRDRlN0cmluZyA9IGFkb3B0
Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjdXJy
ZW50VGV4dFVwY29udmVydGVkQ2hhcmFjdGVycy5nZXQoKSwgY3VycmVudFRleHRMZW5ndGgpKTsK
KyAgICAgICAgc29mdExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERTY2FuUXVlcnlBZGRUZXh0RnJh
Z21lbnQoc2NhblF1ZXJ5LCBjdXJyZW50VGV4dENGU3RyaW5nLmdldCgpLCBDRlJhbmdlTWFrZSgw
LCBjdXJyZW50VGV4dExlbmd0aCksICh2b2lkICopaXRlcmF0b3JDb3VudCwgKEREVGV4dEZyYWdt
ZW50TW9kZSkwLCBERFRleHRDb2FsZXNjaW5nVHlwZU5vbmUpOwogICAgICAgICBmcmFnbWVudENv
dW50Kys7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGZhYTA4NWIzN2YwY2RiOGQ3NWQwZjFjYTU3ZDBmMjEyNDhmMDMwZGUuLjEx
Yzc5NzBiOTg3MzVhN2M1MzUxNjg4ZTQ0ODYxMjc3ZmQ3NTRlYjkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0w
OC0yNiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0
IGNvbXB1dGUgdXBjb252ZXJ0ZWQgY2hhcmFjdGVycyB0d2ljZSBpbiBidWlsZFF1ZXJ5KCkgaW4g
RGF0YURldGVjdGlvbi5tbQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjAxMTQ0Pgor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQ2ODkzOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkCisgICAgICAgIERhdGFEZXRlY3RvcnNUZXN0
SU9TLm1tIHRvIHRoZSBwcm9qZWN0LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9z
L0RhdGFEZXRlY3RvcnNUZXN0SU9TLm1tOiBBZGQgYSBuZXcKKyAgICAgICAgdGVzdCBmb3IgRGF0
YSBEZXRlY3RvcnMgZm9yIHBob25lIG51bWJlcnMuCisKIDIwMTktMDgtMjYgIEFha2FzaCBKYWlu
ICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtFV1NdIERvIG5vdCBhcHBlbmQg
YWRkaXRpb25hbCAnKGZhaWx1cmUpJyBzdHJpbmcgYXQgdGhlIGVuZCBvZiBjdXN0b20gZmFpbHVy
ZSBtZXNzYWdlIGluIEVXUyBCdWlsZGJvdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNzMx
ODRlMzMzYTc3ODUwZTQ2OWVmNGZlMjMxMDBhNzQ5MTQ5ODcxLi5iNGRkNTQ3Y2U3NGJlODkzYmQ3
Mjc0YzRhMzAzYjhmZDQzOGNhM2M4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjExLDYg
KzIxMSw3IEBACiAJCTQxMzVGQjg1MjAxMUZBQkYwMDMzMjEzOSAvKiBsaWJXZWJDb3JlVGVzdFN1
cHBvcnQuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTM1RkI4NjIwMTFGQUJGMDAzMzIxMzkgLyogbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5
bGliICovOyB9OwogCQk0MTRBRDY4NjIyODVEMUMwMDA3NzdGMkQgLyogU3RvcmFnZVF1b3RhLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0QUQ2ODUy
Mjg1RDFCMDAwNzc3RjJEIC8qIFN0b3JhZ2VRdW90YS5tbSAqLzsgfTsKIAkJNDE4ODJGMDMyMTAx
MEMwRDAwMkZGMjg4IC8qIFByb2Nlc3NQcmVXYXJtaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4ODJGMDIyMTAxMEE3MDAwMkZGMjg4IC8qIFBy
b2Nlc3NQcmVXYXJtaW5nLm1tICovOyB9OworCQk0NDA3N0JCMTIzMTQ0QjUwMDAxNzlFMkQgLyog
RGF0YURldGVjdG9yc1Rlc3RJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NDA3N0JCMDIzMTQ0OUQyMDAxNzlFMkQgLyogRGF0YURldGVjdG9yc1Rl
c3RJT1MubW0gKi87IH07CiAJCTQ0MzNBMzk2MjA4MDQ0MTQwMDkxRUQ1NyAvKiBTeW5jaHJvbm91
c1RpbWVvdXRUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ0MzNBMzk1MjA4MDQ0MTMwMDkxRUQ1NyAvKiBTeW5jaHJvbm91c1RpbWVvdXRUZXN0
cy5tbSAqLzsgfTsKIAkJNDQ4MTdBMkYxRjA0ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2
YXRlZEVsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDQ4MTdBMkUxRjA0ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2YXRlZEVs
ZW1lbnRJbmZvLm1tICovOyB9OwogCQk0NDhEN0U0NzFFQTZDNTU1MDBFQ0M3NTYgLyogRW52aXJv
bm1lbnRVdGlsaXRpZXNUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ0OEQ3RTQ1MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxp
dGllc1Rlc3QuY3BwICovOyB9OwpAQCAtMTY4NCw2ICsxNjg1LDcgQEAKIAkJNDE0QUQ2ODUyMjg1
RDFCMDAwNzc3RjJEIC8qIFN0b3JhZ2VRdW90YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0
b3JhZ2VRdW90YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODJGMDIyMTAx
MEE3MDAwMkZGMjg4IC8qIFByb2Nlc3NQcmVXYXJtaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gUHJvY2Vzc1ByZVdhcm1pbmcubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxOTczQjVDMUFGMjI4NzUwMDZDN0IzNiAvKiBTaGFyZWRCdWZmZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQwNzdCQjAyMzE0NDlEMjAwMTc5RTJE
IC8qIERhdGFEZXRlY3RvcnNUZXN0SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRGF0YURldGVjdG9yc1Rlc3RJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ0MkJCRjY4MUM5MUNBRDkwMDE3MDg3RiAvKiBSZWZMb2dnZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVmTG9nZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQzM0EzOTUyMDgwNDQxMzAwOTFFRDU3IC8qIFN5bmNocm9u
b3VzVGltZW91dFRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gU3luY2hyb25vdXNUaW1lb3V0VGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0ODE3QTJFMUYwNDg2QkYwMDAwMzgxMCAvKiBXS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50
SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLUmVxdWVz
dEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzA0Nyw2ICszMDQ5LDcgQEAKIAkJCQkyRTIwNUJBMzFGNTI3NzQ2MDA1OTUyREQgLyogQWNjZXNz
aWJpbGl0eVRlc3RzSU9TLm1tICovLAogCQkJCUY0NUI2M0ZDMUYxOUQ0MTAwMDlEMzhCOSAvKiBB
Y3Rpb25TaGVldFRlc3RzLm1tICovLAogCQkJCUY0MkQ2MzQzMjJBMTcyOUYwMEQyRkIzQSAvKiBB
dXRvY29ycmVjdGlvblRlc3RzSU9TLm1tICovLAorCQkJCTQ0MDc3QkIwMjMxNDQ5RDIwMDE3OUUy
RCAvKiBEYXRhRGV0ZWN0b3JzVGVzdElPUy5tbSAqLywKIAkJCQlGNEQ0RjNCNzFFNEUzNkU0MDBC
QjI3NjcgLyogRHJhZ0FuZERyb3BUZXN0c0lPUy5tbSAqLywKIAkJCQlGNEJDMEIxMzIxNDZDODQ5
MDAyQTA0NzggLyogRm9jdXNQcmVzZXJ2YXRpb25UZXN0cy5tbSAqLywKIAkJCQlDREE5M0RBQzIy
RjRFQzIyMDA0OTBBNjkgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljVGVzdHMuY3BwICov
LApAQCAtNDQyMiw2ICs0NDI1LDcgQEAKIAkJCQk0NkE5MTE1OTIxMDhFNjc4MDA3OEQ0MEQgLyog
Q3VzdG9tVXNlckFnZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNzUxQjA1RDYxRjhFQUM0MTAw
MjhBMDlFIC8qIERhdGFiYXNlVHJhY2tlclRlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREM0
Q0Y3NzFEMkQ5REQ4MDBFQ0NDOTQgLyogRGF0YURldGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTQ0MDc3QkIxMjMxNDRCNTAwMDE3OUUyRCAvKiBEYXRhRGV0ZWN0b3JzVGVzdElPUy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTlCQUQ3RjNFMjI2OTBGMjAwMEY4REE2NiAvKiBEZWFsbG9jV2Vi
Vmlld0luRXZlbnRMaXN0ZW5lci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxOEVFNTFEMjBBNzhE
MzYwMEUwMjRGMyAvKiBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkQxNjQ2RTIxRDE4NjJDRDAwMDE1QTFBIC8qIERlZmVycmVkVmlld0luV2lu
ZG93U3RhdGVDaGFuZ2UubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFEZXRlY3RvcnNUZXN0SU9TLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9pb3MvRGF0YURldGVjdG9yc1Rlc3RJT1MubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Zm
ZDc5MWNiNjUyMThmZmNlZWVhMWQ5YjhmOGU2MTM5ZDcwZDllMAotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFEZXRlY3RvcnNUZXN0SU9TLm1tCkBA
IC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoREFUQV9ERVRFQ1RJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQg
IlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChEYXRhRGV0ZWN0
b3JUZXN0cywgTG9hZFdLV2ViVmlld1dpdGhEYXRhRGV0ZWN0b3JUeXBlUGhvbmVOdW1iZXIpCit7
CisgICAgTlNTdHJpbmcgKmNvbnN0IHBob25lTnVtYmVyID0gQCIoNTU1KSA4NjctNTMwOSI7CisK
KyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuZGF0YURldGVjdG9yVHlw
ZXMgPSBXS0RhdGFEZXRlY3RvclR5cGVQaG9uZU51bWJlcjsKKworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2Uo
MCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAIjwhRE9DVFlQRT48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PHA+Q2FsbCBKZW5u
eSBhdCAlQDwvcD48L2JvZHk+PC9odG1sPiIsIHBob25lTnVtYmVyXV07CisKKyAgICAvLyBFbnN1
cmUgdGhhdCB0aGUgcGhvbmUgbnVtYmVyIGlzIGxpbmtlZCBieSBEYXRhIERldGVjdG9ycy4KKyAg
ICBOU1N0cmluZyAqbGlua0NvdW50ID0gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKS5sZW5ndGgiXTsKKyAgICBFWFBF
Q1RfRVEoMSwgbGlua0NvdW50LmludFZhbHVlKTsKKyAgICBOU1N0cmluZyAqbGlua1RleHQgPSBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgnYScpWzBdLmlubmVyVGV4dCJdOworICAgIEVYUEVDVF9XS19TVFJFUShwaG9uZU51
bWJlciwgbGlua1RleHQpOworICAgIE5TU3RyaW5nICpsaW5rVVJMID0gW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKVsw
XS5ocmVmIl07CisgICAgTlNTdHJpbmcgKmV4cGVjdGVkTGlua1VSTCA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAidGVsOiVAIiwgW3Bob25lTnVtYmVyIHN0cmluZ0J5QWRkaW5nUGVyY2Vu
dEVuY29kaW5nV2l0aEFsbG93ZWRDaGFyYWN0ZXJzOltOU0NoYXJhY3RlclNldCB3aGl0ZXNwYWNl
Q2hhcmFjdGVyU2V0XS5pbnZlcnRlZFNldF1dOworICAgIEVYUEVDVF9XS19TVFJFUShleHBlY3Rl
ZExpbmtVUkwsIGxpbmtVUkwpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisK
KyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkp
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>