<?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>157644</bug_id>
          
          <creation_ts>2016-05-12 15:59:28 -0700</creation_ts>
          <short_desc>AX: Wrong CharacterOffset from an upstream VisiblePosition</short_desc>
          <delta_ts>2016-05-13 11:56:46 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Nan Wang">n_wang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>n_wang</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1192510</commentid>
    <comment_count>0</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-05-12 15:59:28 -0700</bug_when>
    <thetext>When we are getting a text marker at the line wrap and it has an upstream VisiblePosition, we should adjust the CharacterOffset as well.

&lt;rdar://problem/25993225&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192513</commentid>
    <comment_count>1</comment_count>
      <attachid>278776</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-05-12 16:15:39 -0700</bug_when>
    <thetext>Created attachment 278776
Initial patch

Spent quite a long time but was not able to create a layout test.
1. In Mail the end text marker of left line range has upstream affinity but I tried left/right and regular line text marker range call in layout test it gave downstream affinity all the time.
2. Although I had the fix to adjust CharacterOffset to match Range&apos;s end offset, TextIterator will always include an extra space at the line wrap. So there&apos;s no easy way to test this fix in a layout test by using lengthForTextMarkerRange of stringForTextMarkerRange, they all use TextIterator under the hood.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192554</commentid>
    <comment_count>2</comment_count>
      <attachid>278776</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-05-12 17:47:38 -0700</bug_when>
    <thetext>Comment on attachment 278776
Initial patch

When I do a grep for upstream in LayoutTests, I see 

platform/ios-simulator-wk1/editing/pasteboard/4242293-expected.txt:caret: position 3 of child 0 {#text} of child 1 {SPAN} of child 6 {DIV} of body (upstream affinity)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192756</commentid>
    <comment_count>3</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-05-13 08:49:23 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 278776 [details]
&gt; Initial patch
&gt; 
&gt; When I do a grep for upstream in LayoutTests, I see 
&gt; 
&gt; platform/ios-simulator-wk1/editing/pasteboard/4242293-expected.txt:caret:
&gt; position 3 of child 0 {#text} of child 1 {SPAN} of child 6 {DIV} of body
&gt; (upstream affinity)

Do you think that test might help you figure out how to create an upstream position?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192758</commentid>
    <comment_count>4</comment_count>
      <attachid>278776</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-05-13 08:53:10 -0700</bug_when>
    <thetext>Comment on attachment 278776
Initial patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Not able to create an upstream VisiblePosition in a layout test.

Why is that? Can we please add something to internals so we can test this? This super-subtle behavior seems critical to test; people will break it without realizing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192783</commentid>
    <comment_count>5</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-05-13 10:12:24 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Comment on attachment 278776 [details]
&gt; &gt; Initial patch
&gt; &gt; 
&gt; &gt; When I do a grep for upstream in LayoutTests, I see 
&gt; &gt; 
&gt; &gt; platform/ios-simulator-wk1/editing/pasteboard/4242293-expected.txt:caret:
&gt; &gt; position 3 of child 0 {#text} of child 1 {SPAN} of child 6 {DIV} of body
&gt; &gt; (upstream affinity)
&gt; 
&gt; Do you think that test might help you figure out how to create an upstream
&gt; position?

Yes I can create an upstream position by adding contenteditable=&quot;true&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192807</commentid>
    <comment_count>6</comment_count>
      <attachid>278851</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-05-13 11:02:49 -0700</bug_when>
    <thetext>Created attachment 278851
patch

Added layout test. Thanks to Chris!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192825</commentid>
    <comment_count>7</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-05-13 11:56:46 -0700</bug_when>
    <thetext>Committed r200872: &lt;http://trac.webkit.org/changeset/200872&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278776</attachid>
            <date>2016-05-12 16:15:39 -0700</date>
            <delta_ts>2016-05-13 11:02:49 -0700</delta_ts>
            <desc>Initial patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>3425</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDc5NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA1LTEyICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFdyb25nIENoYXJhY3Rlck9mZnNl
dCBmcm9tIGFuIHVwc3RyZWFtIFZpc2libGVQb3NpdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3NjQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugc2hvdWxkIGFkanVzdCB0aGUgdGV4dCBtYXJr
ZXIncyBDaGFyYWN0ZXJPZmZzZXQgaWYgaXRzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgVmlzaWJs
ZVBvc2l0aW9uIGhhcyB1cHN0cmVhbSBhZmZpbml0eS4KKworICAgICAgICBOb3QgYWJsZSB0byBj
cmVhdGUgYW4gdXBzdHJlYW0gVmlzaWJsZVBvc2l0aW9uIGluIGEgbGF5b3V0IHRlc3QuCisKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6Y2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtlckRhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dHJhdmVyc2VUb09mZnNldEluUmFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bG9jYWxDYXJldFJlY3RGb3JDaGFyYWN0
ZXJPZmZzZXQpOgorCiAyMDE2LTA1LTEyICBBZGEgQ2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFByZXZlbnQgY2xpY2tzIGluIHRoZSBwbGFjZWhvbGRlciBmcm9tIHBsYXlpbmcg
b3IgcGF1c2luZyB0aGUgdmlkZW8gaW4gYSBNZWRpYURvY3VtZW50LgpJbmRleDogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCShyZXZpc2lvbiAyMDA1
MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03MSw4ICs3MSwxMCBAQAogI2luY2x1ZGUgIkhUTUxMYWJlbEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTWV0ZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCisjaW5jbHVkZSAiSW5saW5lRWxlbWVudEJveC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJSZW5kZXJBdHRhY2htZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyTGluZUJyZWFrLmgi
CiAjaW5jbHVkZSAiUmVuZGVyTGlzdEJveC5oIgogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyTWV0ZXIuaCIKQEAgLTE0NjgsNyArMTQ3MCwxMiBAQCBDaGFyYWN0
ZXJPZmZzZXQgQVhPYmplY3RDYWNoZTo6Y2hhcmFjdGVyCiAgICAgaWYgKHRleHRNYXJrZXJEYXRh
Lmlnbm9yZWQpCiAgICAgICAgIHJldHVybiBDaGFyYWN0ZXJPZmZzZXQoKTsKICAgICAKLSAgICBy
ZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KHRleHRNYXJrZXJEYXRhLm5vZGUsIHRleHRNYXJrZXJEYXRh
LmNoYXJhY3RlclN0YXJ0SW5kZXgsIHRleHRNYXJrZXJEYXRhLmNoYXJhY3Rlck9mZnNldCk7Cisg
ICAgQ2hhcmFjdGVyT2Zmc2V0IHJlc3VsdCA9IENoYXJhY3Rlck9mZnNldCh0ZXh0TWFya2VyRGF0
YS5ub2RlLCB0ZXh0TWFya2VyRGF0YS5jaGFyYWN0ZXJTdGFydEluZGV4LCB0ZXh0TWFya2VyRGF0
YS5jaGFyYWN0ZXJPZmZzZXQpOworICAgIC8vIFdoZW4gd2UgYXJlIGF0IGEgbGluZSB3cmFwIGFu
ZCB0aGUgVmlzaWJsZVBvc2l0aW9uIGlzIHVwc3RyZWFtLCBpdCBtZWFucyB0aGUgdGV4dCBtYXJr
ZXIgaXMgYXQgdGhlIGVuZCBvZiB0aGUgcHJldmlvdXMgbGluZS4KKyAgICAvLyBXZSB1c2UgdGhl
IHByZXZpb3VzIENoYXJhY3Rlck9mZnNldCBzbyB0aGF0IGl0IHdpbGwgbWF0Y2ggdGhlIFJhbmdl
LgorICAgIGlmICh0ZXh0TWFya2VyRGF0YS5hZmZpbml0eSA9PSBVUFNUUkVBTSkKKyAgICAgICAg
cmV0dXJuIHByZXZpb3VzQ2hhcmFjdGVyT2Zmc2V0KHJlc3VsdCwgZmFsc2UpOworICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKIENoYXJhY3Rlck9mZnNldCBBWE9iamVjdENhY2hlOjp0cmF2ZXJzZVRv
T2Zmc2V0SW5SYW5nZShSZWZQdHI8UmFuZ2U+cmFuZ2UsIGludCBvZmZzZXQsIFRyYXZlcnNlT3B0
aW9uIG9wdGlvbiwgYm9vbCBzdGF5V2l0aGluUmFuZ2UpCkBAIC0xNjAxLDYgKzE2MDgsMTEgQEAg
Q2hhcmFjdGVyT2Zmc2V0IEFYT2JqZWN0Q2FjaGU6OnRyYXZlcnNlVAogICAgICAgICAgICAgcmVt
YWluaW5nID0gb2Zmc2V0IC0gY3VtdWxhdGl2ZU9mZnNldDsKICAgICB9CiAgICAgCisgICAgLy8g
U29tZXRpbWVzIHdoZW4gd2UgYXJlIGdldHRpbmcgdGhlIGVuZCBDaGFyYWN0ZXJPZmZzZXQgb2Yg
YSBsaW5lIHJhbmdlLCB0aGUgVGV4dEl0ZXJhdG9yIHdpbGwgZW1pdCBhbiBleHRyYSBzcGFjZSBh
dCB0aGUgZW5kCisgICAgLy8gYW5kIG1ha2UgdGhlIGNoYXJhY3RlciBjb3VudCBncmVhdGVyIHRo
YW4gdGhlIFJhbmdlJ3MgZW5kIG9mZnNldC4KKyAgICBpZiAodG9Ob2RlRW5kICYmIGN1cnJlbnRO
b2RlLT5pc1RleHROb2RlKCkgJiYgY3VycmVudE5vZGUgPT0gJnJhbmdlLT5lbmRDb250YWluZXIo
KSAmJiByYW5nZS0+ZW5kT2Zmc2V0KCkgPCBsYXN0U3RhcnRPZmZzZXQgKyBvZmZzZXRJbkNoYXJh
Y3RlcikKKyAgICAgICAgb2Zmc2V0SW5DaGFyYWN0ZXIgPSByYW5nZS0+ZW5kT2Zmc2V0KCkgLSBs
YXN0U3RhcnRPZmZzZXQ7CisgICAgCiAgICAgcmV0dXJuIENoYXJhY3Rlck9mZnNldChjdXJyZW50
Tm9kZSwgbGFzdFN0YXJ0T2Zmc2V0LCBvZmZzZXRJbkNoYXJhY3RlciwgcmVtYWluaW5nKTsKIH0K
IApAQCAtMjQ1MSw2ICsyNDYzLDkgQEAgTGF5b3V0UmVjdCBBWE9iamVjdENhY2hlOjpsb2NhbENh
cmV0UmVjdAogICAgIGlmIChpbmxpbmVCb3gpCiAgICAgICAgIHJlbmRlcmVyID0gJmlubGluZUJv
eC0+cmVuZGVyZXIoKTsKICAgICAKKyAgICBpZiAoaXM8UmVuZGVyTGluZUJyZWFrPihyZW5kZXJl
cikgJiYgZG93bmNhc3Q8UmVuZGVyTGluZUJyZWFrPihyZW5kZXJlciktPmlubGluZUJveFdyYXBw
ZXIoKSAhPSBpbmxpbmVCb3gpCisgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CisgICAgCiAgICAg
cmV0dXJuIHJlbmRlcmVyLT5sb2NhbENhcmV0UmVjdChpbmxpbmVCb3gsIGNhcmV0T2Zmc2V0KTsK
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278851</attachid>
            <date>2016-05-13 11:02:49 -0700</date>
            <delta_ts>2016-05-13 11:26:51 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>7117</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDg2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA1LTEzICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFdyb25nIENoYXJhY3Rlck9mZnNl
dCBmcm9tIGFuIHVwc3RyZWFtIFZpc2libGVQb3NpdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3NjQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugc2hvdWxkIGFkanVzdCB0aGUgdGV4dCBtYXJr
ZXIncyBDaGFyYWN0ZXJPZmZzZXQgaWYgaXRzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgVmlzaWJs
ZVBvc2l0aW9uIGhhcyB1cHN0cmVhbSBhZmZpbml0eS4KKworICAgICAgICBUZXN0OiBhY2Nlc3Np
YmlsaXR5L21hYy9jaGFyYWN0ZXItb2Zmc2V0LWZyb20tdXBzdHJlYW0tcG9zaXRpb24uaHRtbAor
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmNoYXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXJEYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRyYXZlcnNlVG9PZmZzZXRJblJhbmdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmxvY2FsQ2FyZXRSZWN0Rm9yQ2hh
cmFjdGVyT2Zmc2V0KToKKwogMjAxNi0wNS0xMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgR2l2ZSBDcm9zc1RocmVhZENvcGllciBhIGRlZmF1bHQgc3BlY2lh
bGl6YXRpb24gZm9yIFZlY3RvcnMgb2Ygb2JqZWN0cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAkocmV2aXNpb24gMjAwNTEzKQorKysg
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzEsOCArNzEsMTAgQEAKICNpbmNsdWRlICJIVE1MTGFiZWxFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTE1ldGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2lu
Y2x1ZGUgIklubGluZUVsZW1lbnRCb3guaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
UmVuZGVyQXR0YWNobWVudC5oIgorI2luY2x1ZGUgIlJlbmRlckxpbmVCcmVhay5oIgogI2luY2x1
ZGUgIlJlbmRlckxpc3RCb3guaCIKICNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgogI2luY2x1
ZGUgIlJlbmRlck1ldGVyLmgiCkBAIC0xNDY4LDcgKzE0NzAsMTIgQEAgQ2hhcmFjdGVyT2Zmc2V0
IEFYT2JqZWN0Q2FjaGU6OmNoYXJhY3RlcgogICAgIGlmICh0ZXh0TWFya2VyRGF0YS5pZ25vcmVk
KQogICAgICAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KCk7CiAgICAgCi0gICAgcmV0dXJuIENo
YXJhY3Rlck9mZnNldCh0ZXh0TWFya2VyRGF0YS5ub2RlLCB0ZXh0TWFya2VyRGF0YS5jaGFyYWN0
ZXJTdGFydEluZGV4LCB0ZXh0TWFya2VyRGF0YS5jaGFyYWN0ZXJPZmZzZXQpOworICAgIENoYXJh
Y3Rlck9mZnNldCByZXN1bHQgPSBDaGFyYWN0ZXJPZmZzZXQodGV4dE1hcmtlckRhdGEubm9kZSwg
dGV4dE1hcmtlckRhdGEuY2hhcmFjdGVyU3RhcnRJbmRleCwgdGV4dE1hcmtlckRhdGEuY2hhcmFj
dGVyT2Zmc2V0KTsKKyAgICAvLyBXaGVuIHdlIGFyZSBhdCBhIGxpbmUgd3JhcCBhbmQgdGhlIFZp
c2libGVQb3NpdGlvbiBpcyB1cHN0cmVhbSwgaXQgbWVhbnMgdGhlIHRleHQgbWFya2VyIGlzIGF0
IHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIGxpbmUuCisgICAgLy8gV2UgdXNlIHRoZSBwcmV2aW91
cyBDaGFyYWN0ZXJPZmZzZXQgc28gdGhhdCBpdCB3aWxsIG1hdGNoIHRoZSBSYW5nZS4KKyAgICBp
ZiAodGV4dE1hcmtlckRhdGEuYWZmaW5pdHkgPT0gVVBTVFJFQU0pCisgICAgICAgIHJldHVybiBw
cmV2aW91c0NoYXJhY3Rlck9mZnNldChyZXN1bHQsIGZhbHNlKTsKKyAgICByZXR1cm4gcmVzdWx0
OwogfQogCiBDaGFyYWN0ZXJPZmZzZXQgQVhPYmplY3RDYWNoZTo6dHJhdmVyc2VUb09mZnNldElu
UmFuZ2UoUmVmUHRyPFJhbmdlPnJhbmdlLCBpbnQgb2Zmc2V0LCBUcmF2ZXJzZU9wdGlvbiBvcHRp
b24sIGJvb2wgc3RheVdpdGhpblJhbmdlKQpAQCAtMTYwMSw2ICsxNjA4LDExIEBAIENoYXJhY3Rl
ck9mZnNldCBBWE9iamVjdENhY2hlOjp0cmF2ZXJzZVQKICAgICAgICAgICAgIHJlbWFpbmluZyA9
IG9mZnNldCAtIGN1bXVsYXRpdmVPZmZzZXQ7CiAgICAgfQogICAgIAorICAgIC8vIFNvbWV0aW1l
cyB3aGVuIHdlIGFyZSBnZXR0aW5nIHRoZSBlbmQgQ2hhcmFjdGVyT2Zmc2V0IG9mIGEgbGluZSBy
YW5nZSwgdGhlIFRleHRJdGVyYXRvciB3aWxsIGVtaXQgYW4gZXh0cmEgc3BhY2UgYXQgdGhlIGVu
ZAorICAgIC8vIGFuZCBtYWtlIHRoZSBjaGFyYWN0ZXIgY291bnQgZ3JlYXRlciB0aGFuIHRoZSBS
YW5nZSdzIGVuZCBvZmZzZXQuCisgICAgaWYgKHRvTm9kZUVuZCAmJiBjdXJyZW50Tm9kZS0+aXNU
ZXh0Tm9kZSgpICYmIGN1cnJlbnROb2RlID09ICZyYW5nZS0+ZW5kQ29udGFpbmVyKCkgJiYgcmFu
Z2UtPmVuZE9mZnNldCgpIDwgbGFzdFN0YXJ0T2Zmc2V0ICsgb2Zmc2V0SW5DaGFyYWN0ZXIpCisg
ICAgICAgIG9mZnNldEluQ2hhcmFjdGVyID0gcmFuZ2UtPmVuZE9mZnNldCgpIC0gbGFzdFN0YXJ0
T2Zmc2V0OworICAgIAogICAgIHJldHVybiBDaGFyYWN0ZXJPZmZzZXQoY3VycmVudE5vZGUsIGxh
c3RTdGFydE9mZnNldCwgb2Zmc2V0SW5DaGFyYWN0ZXIsIHJlbWFpbmluZyk7CiB9CiAKQEAgLTI0
NTEsNiArMjQ2Myw5IEBAIExheW91dFJlY3QgQVhPYmplY3RDYWNoZTo6bG9jYWxDYXJldFJlY3QK
ICAgICBpZiAoaW5saW5lQm94KQogICAgICAgICByZW5kZXJlciA9ICZpbmxpbmVCb3gtPnJlbmRl
cmVyKCk7CiAgICAgCisgICAgaWYgKGlzPFJlbmRlckxpbmVCcmVhaz4ocmVuZGVyZXIpICYmIGRv
d25jYXN0PFJlbmRlckxpbmVCcmVhaz4ocmVuZGVyZXIpLT5pbmxpbmVCb3hXcmFwcGVyKCkgIT0g
aW5saW5lQm94KQorICAgICAgICByZXR1cm4gSW50UmVjdCgpOworICAgIAogICAgIHJldHVybiBy
ZW5kZXJlci0+bG9jYWxDYXJldFJlY3QoaW5saW5lQm94LCBjYXJldE9mZnNldCk7CiB9CiAKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDIwMDUxMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE2LTA1LTEzICBOYW4gV2FuZyAgPG5fd2FuZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgQVg6IFdyb25nIENoYXJhY3Rlck9mZnNldCBmcm9tIGFuIHVw
c3RyZWFtIFZpc2libGVQb3NpdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU3NjQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9jaGFyYWN0ZXItb2Zmc2V0LWZyb20t
dXBzdHJlYW0tcG9zaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L21hYy9jaGFyYWN0ZXItb2Zmc2V0LWZyb20tdXBzdHJlYW0tcG9zaXRpb24uaHRtbDog
QWRkZWQuCisKIDIwMTYtMDUtMDYgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW2Nzcy1ncmlkXSBVbnByZWZpeCBDU1MgR3JpZCBMYXlvdXQgcHJv
cGVydGllcwpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvY2hhcmFjdGVyLW9m
ZnNldC1mcm9tLXVwc3RyZWFtLXBvc2l0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9jaGFyYWN0ZXItb2Zmc2V0LWZyb20tdXBzdHJl
YW0tcG9zaXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvY2hhcmFjdGVyLW9mZnNldC1mcm9tLXVwc3RyZWFtLXBvc2l0aW9uLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitMb3JlbSBpcHN1bSB2
aXZhbXVzIG5pYmggdXJuYSBtb2xsaXMgYXQgYWxpcXVhbSB0YWNpdGksIGV0aWFtIGFyY3UgbWkg
c2VtcGVyIG5vc3RyYSB0YWNpdGkgbnVsbGEgZG9sb3IKK1RoaXMgdGVzdHMgdGhhdCBDaGFyYWN0
ZXJPZmZzZXQgdGhhdCBjb21lcyBmcm9tIGFuIHVwc3RyZWFtIFZpc2libGVQb3NpdGlvbiBpcyBj
b3JyZWN0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmlyc3QgTGluZTogTG9y
ZW0gaXBzdW0gdml2YW11cyBuaWJoCitTZWNvbmQgTGluZTogdXJuYSBtb2xsaXMgYXQgYWxpcXVh
bSB0YWNpdGksCitbZmlyc3RFbmQsIHNlY29uZFN0YXJ0XTogJ3NwYWNlJworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbWFjL2NoYXJhY3Rlci1vZmZzZXQtZnJvbS11cHN0cmVhbS1wb3NpdGlv
bi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2NoYXJh
Y3Rlci1vZmZzZXQtZnJvbS11cHN0cmVhbS1wb3NpdGlvbi5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvY2hhcmFjdGVyLW9mZnNldC1mcm9tLXVwc3Ry
ZWFtLXBvc2l0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBpZD0iY29u
dGFpbmVyIj4KKworPGRpdiBpZD0idGV4dCIgIHN0eWxlPSJ3aWR0aDoyMDBweDsiIGNvbnRlbnRl
ZGl0YWJsZT0idHJ1ZSI+TG9yZW0gaXBzdW0gdml2YW11cyBuaWJoIHVybmEgbW9sbGlzIGF0IGFs
aXF1YW0gdGFjaXRpLCBldGlhbSBhcmN1IG1pIHNlbXBlciBub3N0cmEgdGFjaXRpIG51bGxhIGRv
bG9yPC9kaXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBDaGFy
YWN0ZXJPZmZzZXQgdGhhdCBjb21lcyBmcm9tIGFuIHVwc3RyZWFtIFZpc2libGVQb3NpdGlvbiBp
cyBjb3JyZWN0LiIpOworICAgIAorICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIpIHsKKyAgICAgICAgCisgICAgICAgIHZhciBkaXYgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRleHQiKTsKKyAgICAgICAgdmFyIHRleHQgPSBkaXYu
Y2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgdGV4dFJhbmdlID0gdGV4dC50ZXh0TWFya2Vy
UmFuZ2VGb3JFbGVtZW50KHRleHQpOworICAgICAgICAKKyAgICAgICAgdmFyIHN0YXJ0ID0gdGV4
dC5zdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UodGV4dFJhbmdlKTsKKyAgICAgICAg
dmFyIGZpcnN0TGluZSA9IHRleHQubGluZVRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIoc3Rh
cnQpOworICAgICAgICB2YXIgZmlyc3RFbmQgPSB0ZXh0LmVuZFRleHRNYXJrZXJGb3JUZXh0TWFy
a2VyUmFuZ2UoZmlyc3RMaW5lKTsKKyAgICAgICAgZGVidWcoIkZpcnN0IExpbmU6ICIgKyB0ZXh0
LnN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZShmaXJzdExpbmUpKTsKKyAgICAgICAgCisgICAgICAg
IHZhciBuZXh0ID0gdGV4dC5uZXh0VGV4dE1hcmtlcihmaXJzdEVuZCk7CisgICAgICAgIHZhciBz
ZWNvbmRMaW5lID0gdGV4dC5saW5lVGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtlcihuZXh0KTsK
KyAgICAgICAgdmFyIHNlY29uZFN0YXJ0ID0gdGV4dC5zdGFydFRleHRNYXJrZXJGb3JUZXh0TWFy
a2VyUmFuZ2Uoc2Vjb25kTGluZSk7CisgICAgICAgIGRlYnVnKCJTZWNvbmQgTGluZTogIiArIHRl
eHQuc3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKHNlY29uZExpbmUpKTsKKyAgICAgICAgCisgICAg
ICAgIC8vIEhlcmUgZmlyc3RFbmQgc2hvdWxkIGNvbnRhaW4gYSB1cHN0cmVhbSBwb3NpdGlvbi4K
KyAgICAgICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgZmlyc3RFbmQgZG9lcyBub3QgZXF1YWwg
dG8gc2Vjb25kU3RhcnQgYWZ0ZXIKKyAgICAgICAgLy8gY29udmVydGluZyB0byBDaGFyYWN0ZXJP
ZmZzZXQuCisgICAgICAgIHZhciBtYXJrZXJSYW5nZSA9IHRleHQudGV4dE1hcmtlclJhbmdlRm9y
TWFya2VycyhzZWNvbmRTdGFydCwgZmlyc3RFbmQpOworICAgICAgICB2YXIgc3BhY2UgPSAnICc7
CisgICAgICAgIGRlYnVnKCJbZmlyc3RFbmQsIHNlY29uZFN0YXJ0XTogIiArIHRleHQuc3RyaW5n
Rm9yVGV4dE1hcmtlclJhbmdlKG1hcmtlclJhbmdlKS5yZXBsYWNlKHNwYWNlLCAiJ3NwYWNlJyIp
KTsgICAgICAgIAorICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="302923"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>