<?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>154018</bug_id>
          
          <creation_ts>2016-02-08 16:30:15 -0800</creation_ts>
          <short_desc>AX: crash at WebCore::Range::selectNodeContents(WebCore::Node*, int&amp;)</short_desc>
          <delta_ts>2016-02-09 10:28:07 -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>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>ryanhaddad</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1163057</commentid>
    <comment_count>0</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-02-08 16:30:15 -0800</bug_when>
    <thetext>5   com.apple.WebCore             	0x7fff9eb912f4 WebCore::Range::selectNodeContents(WebCore::Node*, int&amp;) + 36 (/BuildRoot/Library/Caches/com.apple.xbs/Sources/WebCore/WebCore-7602.1.17/dom/Node.h:412)
6   com.apple.WebCore             	0x7fff9ecf58eb WebCore::AXObjectCache::rangeForNodeContents(WebCore::Node*) + 75 (/BuildRoot/Library/Caches/com.apple.xbs/Sources/WebCore/WebCore-7602.1.17/accessibility/AXObjectCache.cpp:1531)
7   com.apple.WebCore             	0x7fff9ecf5be8 WebCore::AXObjectCache::rangeForUnorderedCharacterOffsets(WebCore::CharacterOffset const&amp;, WebCore::CharacterOffset const&amp;) + 312 (/BuildRoot/Library/Caches/com.apple.xbs/Sources/WebCore/WebCore-7602.1.17/accessibility/AXObjectCache.cpp:1561)
8   com.apple.WebCore             	0x7fff9fa449b1 -[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:] + 9249 (/BuildRoot/Library/Caches/com.apple.xbs/Sources/WebCore/WebCore-7602.1.17/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:4032)

Seems selectNodeContents is accessing some garbage data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163059</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-02-08 16:32:43 -0800</bug_when>
    <thetext>&lt;rdar://problem/24559206&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163064</commentid>
    <comment_count>2</comment_count>
      <attachid>270894</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-02-08 16:52:43 -0800</bug_when>
    <thetext>Created attachment 270894
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163066</commentid>
    <comment_count>3</comment_count>
      <attachid>270894</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-02-08 16:55:59 -0800</bug_when>
    <thetext>Comment on attachment 270894
patch

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

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1586
&gt; +    if (nodeIsDerefed(characterOffset1.node) || nodeIsDerefed(characterOffset2.node))

can we use our nodeInUse cache to handle this case? seems like we should be doing that when creating the CharacterOffsets too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163086</commentid>
    <comment_count>4</comment_count>
      <attachid>270894</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-02-08 17:37:54 -0800</bug_when>
    <thetext>Comment on attachment 270894
patch

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

&gt;&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1586
&gt;&gt; +    if (nodeIsDerefed(characterOffset1.node) || nodeIsDerefed(characterOffset2.node))
&gt; 
&gt; can we use our nodeInUse cache to handle this case? seems like we should be doing that when creating the CharacterOffsets too

Good point, will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163087</commentid>
    <comment_count>5</comment_count>
      <attachid>270899</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-02-08 17:38:58 -0800</bug_when>
    <thetext>Created attachment 270899
patch

review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163088</commentid>
    <comment_count>6</comment_count>
      <attachid>270899</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-02-08 17:40:50 -0800</bug_when>
    <thetext>Comment on attachment 270899
patch

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

&gt; Source/WebCore/ChangeLog:5
&gt; +        &lt;rdar://problem/24559206&gt;

don&apos;t include rdar numbers (unless there is some new dictate to include them)

&gt; LayoutTests/ChangeLog:5
&gt; +        &lt;rdar://problem/24559206&gt;

don&apos;t include rdar numbers

&gt; LayoutTests/accessibility/text-marker/text-marker-range-stale-node-crash.html:29
&gt; +        textElement.innerHTML=&quot;&quot;;

textElement.innerHTML = &quot;&quot;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163090</commentid>
    <comment_count>7</comment_count>
      <attachid>270901</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-02-08 17:45:53 -0800</bug_when>
    <thetext>Created attachment 270901
patch

Addressed minor issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163093</commentid>
    <comment_count>8</comment_count>
      <attachid>270901</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-02-08 17:49:22 -0800</bug_when>
    <thetext>Comment on attachment 270901
patch

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

&gt; LayoutTests/accessibility/text-marker/text-marker-range-stale-node-crash.html:29
&gt; +        textElement.innerHTML= &quot;&quot;;

still need another space before HTML=</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163097</commentid>
    <comment_count>9</comment_count>
      <attachid>270901</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-08 17:56:25 -0800</bug_when>
    <thetext>Comment on attachment 270901
patch

Rejecting attachment 270901 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 270901, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/802367</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163098</commentid>
    <comment_count>10</comment_count>
      <attachid>270902</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-02-08 17:58:28 -0800</bug_when>
    <thetext>Created attachment 270902
patch

This one should be good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163120</commentid>
    <comment_count>11</comment_count>
      <attachid>270902</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-08 19:04:22 -0800</bug_when>
    <thetext>Comment on attachment 270902
patch

Clearing flags on attachment: 270902

Committed r196287: &lt;http://trac.webkit.org/changeset/196287&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163121</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-08 19:04:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163231</commentid>
    <comment_count>13</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-02-09 10:28:07 -0800</bug_when>
    <thetext>The test added with this change seems to be crashing on ios-simulator:
&lt;https://build.webkit.org/results/Apple%20iOS%209%20Simulator%20Release%20WK2%20(Tests)/r196313%20(2965)/results.html&gt;
&lt;http://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=accessibility%2Ftext-marker%2Ftext-marker-range-stale-node-crash.html&gt;

Filed:
&lt;https://bugs.webkit.org/show_bug.cgi?id=154039&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270894</attachid>
            <date>2016-02-08 16:52:43 -0800</date>
            <delta_ts>2016-02-08 17:31:49 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5584</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NjI3OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2LTAyLTA4ICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IGNyYXNoIGF0IFdlYkNvcmU6OlJh
bmdlOjpzZWxlY3ROb2RlQ29udGVudHMoV2ViQ29yZTo6Tm9kZSosIGludCYpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQwMTgKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI0NTU5MjA2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNvbWV0aW1lcyByYW5nZUZvclVub3JkZXJlZENoYXJhY3Rlck9mZnNl
dHMgY2FsbCBpcyBhY2Nlc3NpbmcgZGVyZWZlZCBub2RlIG9iamVjdHMKKyAgICAgICAgYW5kIGxl
YWRpbmcgdG8gYSBjcmFzaC4gRml4ZWQgaXQgYnkgYWRkaW5nIGEgY2hlY2sgZm9yIHRoZSBkZXJl
ZmVkIG5vZGUuCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS90ZXh0LW1hcmtlci90ZXh0
LW1hcmtlci1yYW5nZS1zdGFsZS1ub2RlLWNyYXNoLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1JlcGxhY2VkTm9k
ZU9yQlIpOgorICAgICAgICAoV2ViQ29yZTo6bm9kZUlzRGV0YXRoZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cmFuZ2VGb3JVbm9yZGVyZWRDaGFyYWN0ZXJPZmZzZXRzKToK
KwogMjAxNi0wMi0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGNvcHkoe3g6MX0pIHNob3VsZCBjb3B5ICJ7eDoxfSIsIG5v
dCAiW29iamVjdCBPYmplY3RdIgpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCShyZXZpc2lvbiAxOTYxNzcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTY2
LDExICsxNTY2LDI2IEBAIHN0YXRpYyBib29sIGlzUmVwbGFjZWROb2RlT3JCUihOb2RlKiBub2QK
ICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdDo6cmVwbGFjZWROb2RlTmVlZHNDaGFyYWN0
ZXIobm9kZSkgfHwgbm9kZS0+aGFzVGFnTmFtZShiclRhZyk7CiB9CiAKK3N0YXRpYyBib29sIG5v
ZGVJc0RlcmVmZWQoTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIAorICAgIGlmIChub2RlLT5yZWZDb3VudCgpIDw9IDApCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KKwogUmVmUHRyPFJhbmdlPiBB
WE9iamVjdENhY2hlOjpyYW5nZUZvclVub3JkZXJlZENoYXJhY3Rlck9mZnNldHMoY29uc3QgQ2hh
cmFjdGVyT2Zmc2V0JiBjaGFyYWN0ZXJPZmZzZXQxLCBjb25zdCBDaGFyYWN0ZXJPZmZzZXQmIGNo
YXJhY3Rlck9mZnNldDIpCiB7CiAgICAgaWYgKGNoYXJhY3Rlck9mZnNldDEuaXNOdWxsKCkgfHwg
Y2hhcmFjdGVyT2Zmc2V0Mi5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
CisgICAgLy8gU29tZXRpbWVzIGl0IHdpbGwgbGVhZCB0byBjcmFzaCBpZiB0aGUgbm9kZXMgZnJv
bSB0aGUgQ2hhcmFjdGVyT2Zmc2V0IG9iamVjdHMgaGF2ZSBiZWVuIGRlcmVmZWQuCisgICAgaWYg
KG5vZGVJc0RlcmVmZWQoY2hhcmFjdGVyT2Zmc2V0MS5ub2RlKSB8fCBub2RlSXNEZXJlZmVkKGNo
YXJhY3Rlck9mZnNldDIubm9kZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIAogICAg
IGJvb2wgYWxyZWFkeUluT3JkZXIgPSBjaGFyYWN0ZXJPZmZzZXRzSW5PcmRlcihjaGFyYWN0ZXJP
ZmZzZXQxLCBjaGFyYWN0ZXJPZmZzZXQyKTsKICAgICBDaGFyYWN0ZXJPZmZzZXQgc3RhcnRDaGFy
YWN0ZXJPZmZzZXQgPSBhbHJlYWR5SW5PcmRlciA/IGNoYXJhY3Rlck9mZnNldDEgOiBjaGFyYWN0
ZXJPZmZzZXQyOwogICAgIENoYXJhY3Rlck9mZnNldCBlbmRDaGFyYWN0ZXJPZmZzZXQgPSBhbHJl
YWR5SW5PcmRlciA/IGNoYXJhY3Rlck9mZnNldDIgOiBjaGFyYWN0ZXJPZmZzZXQxOwpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTk2MTc3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDItMDggIE5hbiBXYW5nICA8bl93YW5nQGFwcGxl
LmNvbT4KKworICAgICAgICBBWDogY3Jhc2ggYXQgV2ViQ29yZTo6UmFuZ2U6OnNlbGVjdE5vZGVD
b250ZW50cyhXZWJDb3JlOjpOb2RlKiwgaW50JikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDAxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQ1
NTkyMDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L3RleHQtbWFya2VyL3RleHQtbWFya2VyLXJhbmdlLXN0YWxlLW5vZGUt
Y3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3RleHQt
bWFya2VyL3RleHQtbWFya2VyLXJhbmdlLXN0YWxlLW5vZGUtY3Jhc2guaHRtbDogQWRkZWQuCisK
IDIwMTYtMDItMDUgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDog
V2ViS2l0IGhhbmdpbmcgd2hlbiBWb2ljZU92ZXIgYXR0ZW1wdHMgdG8gZm9jdXMgaW4gb24gcGFn
ZQpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0LW1hcmtlci90ZXh0LW1hcmtl
ci1yYW5nZS1zdGFsZS1ub2RlLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHQtbWFya2VyL3RleHQtbWFya2VyLXJhbmdlLXN0YWxl
LW5vZGUtY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS90ZXh0LW1hcmtlci90ZXh0LW1hcmtlci1yYW5nZS1zdGFsZS1ub2RlLWNyYXNo
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitzb21lQ29udGVu
dAorVGhpcyB0ZXN0cyB0aGF0IHdlIGNyZWF0ZSBhIHRleHQgbWFya2VyIHJhbmdlIGZyb20gYSBz
dGFsZSBub2RlIHdvbid0IGxlYWQgdG8gY3Jhc2guCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHRleHQudGV4dE1hcmtlclJhbmdlTGVuZ3RoKG1hcmtlclJhbmdlKSBpcyA0
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0LW1hcmtlci90ZXh0LW1hcmtlci1yYW5n
ZS1zdGFsZS1ub2RlLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS90ZXh0LW1hcmtlci90ZXh0LW1hcmtlci1yYW5nZS1zdGFsZS1ub2RlLWNyYXNoLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHQtbWFya2Vy
L3RleHQtbWFya2VyLXJhbmdlLXN0YWxlLW5vZGUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxkaXYg
aWQ9InRleHQiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+dGV4dDwvZGl2PgorCis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisg
ICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB3ZSBjcmVhdGUgYSB0ZXh0IG1hcmtlciBy
YW5nZSBmcm9tIGEgc3RhbGUgbm9kZSB3b24ndCBsZWFkIHRvIGNyYXNoLiIpOworCisgICAgaWYg
KHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAKKyAgICAgICAgdmFy
IHRleHQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRl
eHQiKTsKKyAgICAgICAgdmFyIHRleHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRleHQiKTsKKyAgICAgICAgdmFyIG1hcmtlclJhbmdlID0gdGV4dC50ZXh0TWFya2VyUmFuZ2VG
b3JFbGVtZW50KHRleHQpOworICAgICAgICB2YXIgc3RhcnRNYXJrZXIgPSB0ZXh0LnN0YXJ0VGV4
dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZShtYXJrZXJSYW5nZSk7CisgICAgICAgIHZhciBlbmRN
YXJrZXIgPSB0ZXh0LmVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UobWFya2VyUmFuZ2Up
OworICAgICAgICAKKyAgICAgICAgbWFya2VyUmFuZ2UgPSB0ZXh0LnRleHRNYXJrZXJSYW5nZUZv
ck1hcmtlcnMoc3RhcnRNYXJrZXIsIGVuZE1hcmtlcik7CisgICAgICAgIHNob3VsZEJlKCJ0ZXh0
LnRleHRNYXJrZXJSYW5nZUxlbmd0aChtYXJrZXJSYW5nZSkiLCAiNCIpOworICAgICAgICAKKyAg
ICAgICAgLy8gQ2hhbmdlIHRoZSBub2RlIGhpZXJhcmNoeS4KKyAgICAgICAgdGV4dEVsZW1lbnQu
aW5uZXJIVE1MPSIiOworICAgICAgICB2YXIgdGV4dG5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgic29tZUNvbnRlbnQiKTsKKyAgICAgICAgdGV4dEVsZW1lbnQuYXBwZW5kQ2hpbGQodGV4
dG5vZGUpOworICAgICAgICAKKyAgICAgICAgLy8gTWFraW5nIGEgcmFuZ2UgZnJvbSB0aGUgb2xk
IG1hcmtlcnMgd29uJ3QgY3Jhc2guCisgICAgICAgIG1hcmtlclJhbmdlID0gdGV4dC50ZXh0TWFy
a2VyUmFuZ2VGb3JNYXJrZXJzKHN0YXJ0TWFya2VyLCBlbmRNYXJrZXIpOworICAgIH0KKworPC9z
Y3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270899</attachid>
            <date>2016-02-08 17:38:58 -0800</date>
            <delta_ts>2016-02-08 17:58:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>7719</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NjI4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE2LTAyLTA4ICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IGNyYXNoIGF0IFdlYkNvcmU6OlJh
bmdlOjpzZWxlY3ROb2RlQ29udGVudHMoV2ViQ29yZTo6Tm9kZSosIGludCYpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQwMTgKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI0NTU5MjA2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNvbWV0aW1lcyByYW5nZUZvclVub3JkZXJlZENoYXJhY3Rlck9mZnNl
dHMgY2FsbCBpcyBhY2Nlc3NpbmcgZGVyZWZlZCBub2RlIG9iamVjdHMKKyAgICAgICAgYW5kIGxl
YWRpbmcgdG8gYSBjcmFzaC4gRml4ZWQgaXQgYnkgY2hlY2tpbmcgaXNOb2RlSW5Vc2UgYmVmb3Jl
IGNyZWF0aW5nIHRoZSBDaGFyYWN0ZXJPZmZzZXQKKyAgICAgICAgb2JqZWN0LgorCisgICAgICAg
IFRlc3Q6IGFjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4dC1tYXJrZXItcmFuZ2Utc3RhbGUt
bm9kZS1jcmFzaC5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dmlzaWJsZVBvc2l0aW9uRm9y
VGV4dE1hcmtlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y2hhcmFj
dGVyT2Zmc2V0Rm9yVGV4dE1hcmtlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6dHJhdmVyc2VUb09mZnNldEluUmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlciByYW5nZUZvclRleHRNYXJrZXJSYW5nZTpdKToKKyAgICAgICAgKGNoYXJhY3Rl
ck9mZnNldEZvclRleHRNYXJrZXIpOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciBjaGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFya2VyOl0pOgorICAgICAgICAodGV4dE1h
cmtlckZvclZpc2libGVQb3NpdGlvbik6CisKIDIwMTYtMDItMDggIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIENTUCBjb25uZWN0LXNyYyBkaXJlY3RpdmUgc2hv
dWxkIGJsb2NrIHJlZGlyZWN0cwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCShyZXZpc2lvbiAxOTYxNjQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIz
LDYgKzE0MjMsMTcgQEAgVmlzaWJsZVBvc2l0aW9uIEFYT2JqZWN0Q2FjaGU6OnZpc2libGVQbwog
ICAgIHJldHVybiB2aXNpYmxlUG9zOwogfQogCitDaGFyYWN0ZXJPZmZzZXQgQVhPYmplY3RDYWNo
ZTo6Y2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtlckRhdGEoVGV4dE1hcmtlckRhdGEmIHRleHRN
YXJrZXJEYXRhKQoreworICAgIGlmICghaXNOb2RlSW5Vc2UodGV4dE1hcmtlckRhdGEubm9kZSkp
CisgICAgICAgIHJldHVybiBDaGFyYWN0ZXJPZmZzZXQoKTsKKyAgICAKKyAgICBpZiAodGV4dE1h
cmtlckRhdGEuaWdub3JlZCkKKyAgICAgICAgcmV0dXJuIENoYXJhY3Rlck9mZnNldCgpOworICAg
IAorICAgIHJldHVybiBDaGFyYWN0ZXJPZmZzZXQodGV4dE1hcmtlckRhdGEubm9kZSwgdGV4dE1h
cmtlckRhdGEuY2hhcmFjdGVyU3RhcnRJbmRleCwgdGV4dE1hcmtlckRhdGEuY2hhcmFjdGVyT2Zm
c2V0KTsKK30KKwogQ2hhcmFjdGVyT2Zmc2V0IEFYT2JqZWN0Q2FjaGU6OnRyYXZlcnNlVG9PZmZz
ZXRJblJhbmdlKFJlZlB0cjxSYW5nZT5yYW5nZSwgaW50IG9mZnNldCwgYm9vbCB0b05vZGVFbmQs
IGJvb2wgc3RheVdpdGhpblJhbmdlKQogewogICAgIGlmICghcmFuZ2UpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAkocmV2aXNpb24gMTk2MTY0
KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTE4NCw2ICsxODQsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGV4dCBtYXJrZXIg
dXRpbGl0aWVzLgogICAgIHZvaWQgdGV4dE1hcmtlckRhdGFGb3JWaXNpYmxlUG9zaXRpb24oVGV4
dE1hcmtlckRhdGEmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKICAgICBWaXNpYmxlUG9zaXRp
b24gdmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlckRhdGEoVGV4dE1hcmtlckRhdGEmKTsKKyAg
ICBDaGFyYWN0ZXJPZmZzZXQgY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtlckRhdGEoVGV4dE1h
cmtlckRhdGEmKTsKICAgICB2b2lkIHRleHRNYXJrZXJEYXRhRm9yQ2hhcmFjdGVyT2Zmc2V0KFRl
eHRNYXJrZXJEYXRhJiwgTm9kZSYsIGludCwgYm9vbCB0b05vZGVFbmQgPSBmYWxzZSk7CiAgICAg
dm9pZCBzdGFydE9yRW5kVGV4dE1hcmtlckRhdGFGb3JSYW5nZShUZXh0TWFya2VyRGF0YSYsIFJl
ZlB0cjxSYW5nZT4sIGJvb2wpOwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vzc2liaWxp
dHlPYmplY3RGb3JUZXh0TWFya2VyRGF0YShUZXh0TWFya2VyRGF0YSYpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0JKHJldmlzaW9uIDE5NjE2NCkKKysrIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MDAsMTYgKzkwMCwyMSBAQCAtIChSZWZQdHI8
UmFuZ2U+KXJhbmdlRm9yVGV4dE1hcmtlclJhbmdlCiAgICAgcmV0dXJuIGNhY2hlLT5yYW5nZUZv
clVub3JkZXJlZENoYXJhY3Rlck9mZnNldHMoc3RhcnRDaGFyYWN0ZXJPZmZzZXQsIGVuZENoYXJh
Y3Rlck9mZnNldCk7CiB9CiAKLS0gKENoYXJhY3Rlck9mZnNldCljaGFyYWN0ZXJPZmZzZXRGb3JU
ZXh0TWFya2VyOihpZCl0ZXh0TWFya2VyCitzdGF0aWMgQ2hhcmFjdGVyT2Zmc2V0IGNoYXJhY3Rl
ck9mZnNldEZvclRleHRNYXJrZXIoQVhPYmplY3RDYWNoZSogY2FjaGUsIENGVHlwZVJlZiB0ZXh0
TWFya2VyKQogewotICAgIGlmICghdGV4dE1hcmtlciB8fCBpc1RleHRNYXJrZXJJZ25vcmVkKHRl
eHRNYXJrZXIpKQorICAgIGlmICghY2FjaGUgfHwgIXRleHRNYXJrZXIpCiAgICAgICAgIHJldHVy
biBDaGFyYWN0ZXJPZmZzZXQoKTsKICAgICAKICAgICBUZXh0TWFya2VyRGF0YSB0ZXh0TWFya2Vy
RGF0YTsKICAgICBpZiAoIXdrR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyKHRleHRNYXJrZXIsICZ0
ZXh0TWFya2VyRGF0YSwgc2l6ZW9mKHRleHRNYXJrZXJEYXRhKSkpCiAgICAgICAgIHJldHVybiBD
aGFyYWN0ZXJPZmZzZXQoKTsKICAgICAKLSAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KHRleHRN
YXJrZXJEYXRhLm5vZGUsIHRleHRNYXJrZXJEYXRhLmNoYXJhY3RlclN0YXJ0SW5kZXgsIHRleHRN
YXJrZXJEYXRhLmNoYXJhY3Rlck9mZnNldCk7CisgICAgcmV0dXJuIGNhY2hlLT5jaGFyYWN0ZXJP
ZmZzZXRGb3JUZXh0TWFya2VyRGF0YSh0ZXh0TWFya2VyRGF0YSk7Cit9CisKKy0gKENoYXJhY3Rl
ck9mZnNldCljaGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFya2VyOihpZCl0ZXh0TWFya2VyCit7Cisg
ICAgcmV0dXJuIGNoYXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXIobV9vYmplY3QtPmF4T2JqZWN0
Q2FjaGUoKSwgdGV4dE1hcmtlcik7CiB9CiAKIHN0YXRpYyBpZCB0ZXh0TWFya2VyRm9yVmlzaWJs
ZVBvc2l0aW9uKEFYT2JqZWN0Q2FjaGUqIGNhY2hlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHZp
c2libGVQb3MpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTYxNjQpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wMi0wOCAgTmFuIFdh
bmcgIDxuX3dhbmdAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBjcmFzaCBhdCBXZWJDb3JlOjpS
YW5nZTo6c2VsZWN0Tm9kZUNvbnRlbnRzKFdlYkNvcmU6Ok5vZGUqLCBpbnQmKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MDE4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yNDU1OTIwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4dC1tYXJrZXIt
cmFuZ2Utc3RhbGUtbm9kZS1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4dC1tYXJrZXItcmFuZ2Utc3RhbGUtbm9kZS1jcmFz
aC5odG1sOiBBZGRlZC4KKwogMjAxNi0wMi0wNCAgSHVuc2VvcCBKZW9uZyAgPGhzODUuamVvbmdA
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRUZMIGdhcmRlbmluZy4gTWFyayBz
b21lIHZpZGVvIHRlc3RzIHRvIGZhaWx1cmUuCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L3RleHQtbWFya2VyL3RleHQtbWFya2VyLXJhbmdlLXN0YWxlLW5vZGUtY3Jhc2gtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dC1tYXJr
ZXIvdGV4dC1tYXJrZXItcmFuZ2Utc3RhbGUtbm9kZS1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHQtbWFya2VyL3RleHQtbWFy
a2VyLXJhbmdlLXN0YWxlLW5vZGUtY3Jhc2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTEgQEAKK3NvbWVDb250ZW50CitUaGlzIHRlc3RzIHRoYXQgd2UgY3JlYXRlIGEg
dGV4dCBtYXJrZXIgcmFuZ2UgZnJvbSBhIHN0YWxlIG5vZGUgd29uJ3QgbGVhZCB0byBjcmFzaC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGV4dC50ZXh0TWFya2VyUmFu
Z2VMZW5ndGgobWFya2VyUmFuZ2UpIGlzIDQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Rl
eHQtbWFya2VyL3RleHQtbWFya2VyLXJhbmdlLXN0YWxlLW5vZGUtY3Jhc2guaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RleHQtbWFya2VyL3RleHQtbWFya2Vy
LXJhbmdlLXN0YWxlLW5vZGUtY3Jhc2guaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4dC1tYXJrZXItcmFuZ2Utc3RhbGUtbm9kZS1j
cmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiBpZD0idGV4dCIgY29udGVudGVkaXRhYmxlPSJ0cnVl
Ij50ZXh0PC9kaXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0
IHdlIGNyZWF0ZSBhIHRleHQgbWFya2VyIHJhbmdlIGZyb20gYSBzdGFsZSBub2RlIHdvbid0IGxl
YWQgdG8gY3Jhc2guIik7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVy
KSB7CisgICAgICAgIAorICAgICAgICB2YXIgdGV4dCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmFjY2Vzc2libGVFbGVtZW50QnlJZCgidGV4dCIpOworICAgICAgICB2YXIgdGV4dEVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpOworICAgICAgICB2YXIgbWFya2VyUmFu
Z2UgPSB0ZXh0LnRleHRNYXJrZXJSYW5nZUZvckVsZW1lbnQodGV4dCk7CisgICAgICAgIHZhciBz
dGFydE1hcmtlciA9IHRleHQuc3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlKG1hcmtl
clJhbmdlKTsKKyAgICAgICAgdmFyIGVuZE1hcmtlciA9IHRleHQuZW5kVGV4dE1hcmtlckZvclRl
eHRNYXJrZXJSYW5nZShtYXJrZXJSYW5nZSk7CisgICAgICAgIAorICAgICAgICBtYXJrZXJSYW5n
ZSA9IHRleHQudGV4dE1hcmtlclJhbmdlRm9yTWFya2VycyhzdGFydE1hcmtlciwgZW5kTWFya2Vy
KTsKKyAgICAgICAgc2hvdWxkQmUoInRleHQudGV4dE1hcmtlclJhbmdlTGVuZ3RoKG1hcmtlclJh
bmdlKSIsICI0Iik7CisgICAgICAgIAorICAgICAgICAvLyBDaGFuZ2UgdGhlIG5vZGUgaGllcmFy
Y2h5LgorICAgICAgICB0ZXh0RWxlbWVudC5pbm5lckhUTUw9IiI7CisgICAgICAgIHZhciB0ZXh0
bm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJzb21lQ29udGVudCIpOworICAgICAgICB0
ZXh0RWxlbWVudC5hcHBlbmRDaGlsZCh0ZXh0bm9kZSk7CisgICAgICAgIAorICAgICAgICAvLyBN
YWtpbmcgYSByYW5nZSBmcm9tIHRoZSBvbGQgbWFya2VycyB3b24ndCBjcmFzaC4KKyAgICAgICAg
bWFya2VyUmFuZ2UgPSB0ZXh0LnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoc3RhcnRNYXJrZXIs
IGVuZE1hcmtlcik7CisgICAgfQorCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="295743"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270901</attachid>
            <date>2016-02-08 17:45:53 -0800</date>
            <delta_ts>2016-02-08 17:58:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>7650</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NjI4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE2LTAyLTA4ICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IGNyYXNoIGF0IFdlYkNvcmU6OlJh
bmdlOjpzZWxlY3ROb2RlQ29udGVudHMoV2ViQ29yZTo6Tm9kZSosIGludCYpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQwMTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21ldGltZXMgcmFuZ2VGb3JV
bm9yZGVyZWRDaGFyYWN0ZXJPZmZzZXRzIGNhbGwgaXMgYWNjZXNzaW5nIGRlcmVmZWQgbm9kZSBv
YmplY3RzCisgICAgICAgIGFuZCBsZWFkaW5nIHRvIGEgY3Jhc2guIEZpeGVkIGl0IGJ5IGNoZWNr
aW5nIGlzTm9kZUluVXNlIGJlZm9yZSBjcmVhdGluZyB0aGUgQ2hhcmFjdGVyT2Zmc2V0CisgICAg
ICAgIG9iamVjdC4KKworICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L3RleHQtbWFya2VyL3Rl
eHQtbWFya2VyLXJhbmdlLXN0YWxlLW5vZGUtY3Jhc2guaHRtbAorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OmNoYXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXJEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRyYXZlcnNlVG9PZmZzZXRJblJhbmdlKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgcmFuZ2VGb3JUZXh0TWFya2VyUmFuZ2U6
XSk6CisgICAgICAgIChjaGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFya2VyKToKKyAgICAgICAgKC1b
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtl
cjpdKToKKyAgICAgICAgKHRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb24pOgorCiAyMDE2LTAy
LTA4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBDU1AgY29u
bmVjdC1zcmMgZGlyZWN0aXZlIHNob3VsZCBibG9jayByZWRpcmVjdHMKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAkocmV2aXNpb24gMTk2
MTY0KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQyMyw2ICsxNDIzLDE3IEBAIFZpc2libGVQb3NpdGlvbiBBWE9i
amVjdENhY2hlOjp2aXNpYmxlUG8KICAgICByZXR1cm4gdmlzaWJsZVBvczsKIH0KIAorQ2hhcmFj
dGVyT2Zmc2V0IEFYT2JqZWN0Q2FjaGU6OmNoYXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXJEYXRh
KFRleHRNYXJrZXJEYXRhJiB0ZXh0TWFya2VyRGF0YSkKK3sKKyAgICBpZiAoIWlzTm9kZUluVXNl
KHRleHRNYXJrZXJEYXRhLm5vZGUpKQorICAgICAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KCk7
CisgICAgCisgICAgaWYgKHRleHRNYXJrZXJEYXRhLmlnbm9yZWQpCisgICAgICAgIHJldHVybiBD
aGFyYWN0ZXJPZmZzZXQoKTsKKyAgICAKKyAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KHRleHRN
YXJrZXJEYXRhLm5vZGUsIHRleHRNYXJrZXJEYXRhLmNoYXJhY3RlclN0YXJ0SW5kZXgsIHRleHRN
YXJrZXJEYXRhLmNoYXJhY3Rlck9mZnNldCk7Cit9CisKIENoYXJhY3Rlck9mZnNldCBBWE9iamVj
dENhY2hlOjp0cmF2ZXJzZVRvT2Zmc2V0SW5SYW5nZShSZWZQdHI8UmFuZ2U+cmFuZ2UsIGludCBv
ZmZzZXQsIGJvb2wgdG9Ob2RlRW5kLCBib29sIHN0YXlXaXRoaW5SYW5nZSkKIHsKICAgICBpZiAo
IXJhbmdlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgJKHJldmlzaW9uIDE5NjE2NCkKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsNiArMTg0LDcgQEAgcHVibGlj
OgogICAgIC8vIFRleHQgbWFya2VyIHV0aWxpdGllcy4KICAgICB2b2lkIHRleHRNYXJrZXJEYXRh
Rm9yVmlzaWJsZVBvc2l0aW9uKFRleHRNYXJrZXJEYXRhJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jik7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXJEYXRh
KFRleHRNYXJrZXJEYXRhJik7CisgICAgQ2hhcmFjdGVyT2Zmc2V0IGNoYXJhY3Rlck9mZnNldEZv
clRleHRNYXJrZXJEYXRhKFRleHRNYXJrZXJEYXRhJik7CiAgICAgdm9pZCB0ZXh0TWFya2VyRGF0
YUZvckNoYXJhY3Rlck9mZnNldChUZXh0TWFya2VyRGF0YSYsIE5vZGUmLCBpbnQsIGJvb2wgdG9O
b2RlRW5kID0gZmFsc2UpOwogICAgIHZvaWQgc3RhcnRPckVuZFRleHRNYXJrZXJEYXRhRm9yUmFu
Z2UoVGV4dE1hcmtlckRhdGEmLCBSZWZQdHI8UmFuZ2U+LCBib29sKTsKICAgICBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBhY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yVGV4dE1hcmtlckRhdGEoVGV4dE1hcmtl
ckRhdGEmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCShy
ZXZpc2lvbiAxOTYxNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTAwLDE2
ICs5MDAsMjEgQEAgLSAoUmVmUHRyPFJhbmdlPilyYW5nZUZvclRleHRNYXJrZXJSYW5nZQogICAg
IHJldHVybiBjYWNoZS0+cmFuZ2VGb3JVbm9yZGVyZWRDaGFyYWN0ZXJPZmZzZXRzKHN0YXJ0Q2hh
cmFjdGVyT2Zmc2V0LCBlbmRDaGFyYWN0ZXJPZmZzZXQpOwogfQogCi0tIChDaGFyYWN0ZXJPZmZz
ZXQpY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtlcjooaWQpdGV4dE1hcmtlcgorc3RhdGljIENo
YXJhY3Rlck9mZnNldCBjaGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFya2VyKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlLCBDRlR5cGVSZWYgdGV4dE1hcmtlcikKIHsKLSAgICBpZiAoIXRleHRNYXJrZXIgfHwg
aXNUZXh0TWFya2VySWdub3JlZCh0ZXh0TWFya2VyKSkKKyAgICBpZiAoIWNhY2hlIHx8ICF0ZXh0
TWFya2VyKQogICAgICAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KCk7CiAgICAgCiAgICAgVGV4
dE1hcmtlckRhdGEgdGV4dE1hcmtlckRhdGE7CiAgICAgaWYgKCF3a0dldEJ5dGVzRnJvbUFYVGV4
dE1hcmtlcih0ZXh0TWFya2VyLCAmdGV4dE1hcmtlckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0
YSkpKQogICAgICAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KCk7CiAgICAgCi0gICAgcmV0dXJu
IENoYXJhY3Rlck9mZnNldCh0ZXh0TWFya2VyRGF0YS5ub2RlLCB0ZXh0TWFya2VyRGF0YS5jaGFy
YWN0ZXJTdGFydEluZGV4LCB0ZXh0TWFya2VyRGF0YS5jaGFyYWN0ZXJPZmZzZXQpOworICAgIHJl
dHVybiBjYWNoZS0+Y2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtlckRhdGEodGV4dE1hcmtlckRh
dGEpOworfQorCistIChDaGFyYWN0ZXJPZmZzZXQpY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtl
cjooaWQpdGV4dE1hcmtlcgoreworICAgIHJldHVybiBjaGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFy
a2VyKG1fb2JqZWN0LT5heE9iamVjdENhY2hlKCksIHRleHRNYXJrZXIpOwogfQogCiBzdGF0aWMg
aWQgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbihBWE9iamVjdENhY2hlKiBjYWNoZSwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiB2aXNpYmxlUG9zKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2MTY0
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTYtMDItMDggIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBB
WDogY3Jhc2ggYXQgV2ViQ29yZTo6UmFuZ2U6OnNlbGVjdE5vZGVDb250ZW50cyhXZWJDb3JlOjpO
b2RlKiwgaW50JikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NDAxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS90ZXh0LW1hcmtlci90ZXh0LW1hcmtlci1yYW5nZS1zdGFsZS1u
b2RlLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS90
ZXh0LW1hcmtlci90ZXh0LW1hcmtlci1yYW5nZS1zdGFsZS1ub2RlLWNyYXNoLmh0bWw6IEFkZGVk
LgorCiAyMDE2LTAyLTA0ICBIdW5zZW9wIEplb25nICA8aHM4NS5qZW9uZ0BzYW1zdW5nLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiBFRkwgZ2FyZGVuaW5nLiBNYXJrIHNvbWUgdmlkZW8gdGVz
dHMgdG8gZmFpbHVyZS4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dC1tYXJr
ZXIvdGV4dC1tYXJrZXItcmFuZ2Utc3RhbGUtbm9kZS1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0LW1hcmtlci90ZXh0LW1hcmtl
ci1yYW5nZS1zdGFsZS1ub2RlLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4dC1tYXJrZXItcmFuZ2Utc3Rh
bGUtbm9kZS1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBA
QAorc29tZUNvbnRlbnQKK1RoaXMgdGVzdHMgdGhhdCB3ZSBjcmVhdGUgYSB0ZXh0IG1hcmtlciBy
YW5nZSBmcm9tIGEgc3RhbGUgbm9kZSB3b24ndCBsZWFkIHRvIGNyYXNoLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXh0LnRleHRNYXJrZXJSYW5nZUxlbmd0aChtYXJr
ZXJSYW5nZSkgaXMgNAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4
dC1tYXJrZXItcmFuZ2Utc3RhbGUtbm9kZS1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4dC1tYXJrZXItcmFuZ2Utc3RhbGUt
bm9kZS1jcmFzaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS90ZXh0LW1hcmtlci90ZXh0LW1hcmtlci1yYW5nZS1zdGFsZS1ub2RlLWNyYXNoLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJv
ZHkiPgorCis8ZGl2IGlkPSJ0ZXh0IiBjb250ZW50ZWRpdGFibGU9InRydWUiPnRleHQ8L2Rpdj4K
KworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKwor
PHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgd2UgY3JlYXRlIGEg
dGV4dCBtYXJrZXIgcmFuZ2UgZnJvbSBhIHN0YWxlIG5vZGUgd29uJ3QgbGVhZCB0byBjcmFzaC4i
KTsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAg
CisgICAgICAgIHZhciB0ZXh0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCJ0ZXh0Iik7CisgICAgICAgIHZhciB0ZXh0RWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0ZXh0Iik7CisgICAgICAgIHZhciBtYXJrZXJSYW5nZSA9IHRleHQudGV4
dE1hcmtlclJhbmdlRm9yRWxlbWVudCh0ZXh0KTsKKyAgICAgICAgdmFyIHN0YXJ0TWFya2VyID0g
dGV4dC5zdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UobWFya2VyUmFuZ2UpOworICAg
ICAgICB2YXIgZW5kTWFya2VyID0gdGV4dC5lbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdl
KG1hcmtlclJhbmdlKTsKKyAgICAgICAgCisgICAgICAgIG1hcmtlclJhbmdlID0gdGV4dC50ZXh0
TWFya2VyUmFuZ2VGb3JNYXJrZXJzKHN0YXJ0TWFya2VyLCBlbmRNYXJrZXIpOworICAgICAgICBz
aG91bGRCZSgidGV4dC50ZXh0TWFya2VyUmFuZ2VMZW5ndGgobWFya2VyUmFuZ2UpIiwgIjQiKTsK
KyAgICAgICAgCisgICAgICAgIC8vIENoYW5nZSB0aGUgbm9kZSBoaWVyYXJjaHkuCisgICAgICAg
IHRleHRFbGVtZW50LmlubmVySFRNTD0gIiI7CisgICAgICAgIHZhciB0ZXh0bm9kZSA9IGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJzb21lQ29udGVudCIpOworICAgICAgICB0ZXh0RWxlbWVudC5h
cHBlbmRDaGlsZCh0ZXh0bm9kZSk7CisgICAgICAgIAorICAgICAgICAvLyBNYWtpbmcgYSByYW5n
ZSBmcm9tIHRoZSBvbGQgbWFya2VycyB3b24ndCBjcmFzaC4KKyAgICAgICAgbWFya2VyUmFuZ2Ug
PSB0ZXh0LnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoc3RhcnRNYXJrZXIsIGVuZE1hcmtlcik7
CisgICAgfQorCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUK
</data>
<flag name="commit-queue"
          id="295745"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270902</attachid>
            <date>2016-02-08 17:58:28 -0800</date>
            <delta_ts>2016-02-08 19:04:22 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>7651</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NjI4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE2LTAyLTA4ICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IGNyYXNoIGF0IFdlYkNvcmU6OlJh
bmdlOjpzZWxlY3ROb2RlQ29udGVudHMoV2ViQ29yZTo6Tm9kZSosIGludCYpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQwMTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21ldGltZXMgcmFuZ2VGb3JV
bm9yZGVyZWRDaGFyYWN0ZXJPZmZzZXRzIGNhbGwgaXMgYWNjZXNzaW5nIGRlcmVmZWQgbm9kZSBv
YmplY3RzCisgICAgICAgIGFuZCBsZWFkaW5nIHRvIGEgY3Jhc2guIEZpeGVkIGl0IGJ5IGNoZWNr
aW5nIGlzTm9kZUluVXNlIGJlZm9yZSBjcmVhdGluZyB0aGUgQ2hhcmFjdGVyT2Zmc2V0CisgICAg
ICAgIG9iamVjdC4KKworICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L3RleHQtbWFya2VyL3Rl
eHQtbWFya2VyLXJhbmdlLXN0YWxlLW5vZGUtY3Jhc2guaHRtbAorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OmNoYXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXJEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRyYXZlcnNlVG9PZmZzZXRJblJhbmdlKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgcmFuZ2VGb3JUZXh0TWFya2VyUmFuZ2U6
XSk6CisgICAgICAgIChjaGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFya2VyKToKKyAgICAgICAgKC1b
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtl
cjpdKToKKyAgICAgICAgKHRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb24pOgorCiAyMDE2LTAy
LTA4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBDU1AgY29u
bmVjdC1zcmMgZGlyZWN0aXZlIHNob3VsZCBibG9jayByZWRpcmVjdHMKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAkocmV2aXNpb24gMTk2
MTY0KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQyMyw2ICsxNDIzLDE3IEBAIFZpc2libGVQb3NpdGlvbiBBWE9i
amVjdENhY2hlOjp2aXNpYmxlUG8KICAgICByZXR1cm4gdmlzaWJsZVBvczsKIH0KIAorQ2hhcmFj
dGVyT2Zmc2V0IEFYT2JqZWN0Q2FjaGU6OmNoYXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXJEYXRh
KFRleHRNYXJrZXJEYXRhJiB0ZXh0TWFya2VyRGF0YSkKK3sKKyAgICBpZiAoIWlzTm9kZUluVXNl
KHRleHRNYXJrZXJEYXRhLm5vZGUpKQorICAgICAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KCk7
CisgICAgCisgICAgaWYgKHRleHRNYXJrZXJEYXRhLmlnbm9yZWQpCisgICAgICAgIHJldHVybiBD
aGFyYWN0ZXJPZmZzZXQoKTsKKyAgICAKKyAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KHRleHRN
YXJrZXJEYXRhLm5vZGUsIHRleHRNYXJrZXJEYXRhLmNoYXJhY3RlclN0YXJ0SW5kZXgsIHRleHRN
YXJrZXJEYXRhLmNoYXJhY3Rlck9mZnNldCk7Cit9CisKIENoYXJhY3Rlck9mZnNldCBBWE9iamVj
dENhY2hlOjp0cmF2ZXJzZVRvT2Zmc2V0SW5SYW5nZShSZWZQdHI8UmFuZ2U+cmFuZ2UsIGludCBv
ZmZzZXQsIGJvb2wgdG9Ob2RlRW5kLCBib29sIHN0YXlXaXRoaW5SYW5nZSkKIHsKICAgICBpZiAo
IXJhbmdlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgJKHJldmlzaW9uIDE5NjE2NCkKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsNiArMTg0LDcgQEAgcHVibGlj
OgogICAgIC8vIFRleHQgbWFya2VyIHV0aWxpdGllcy4KICAgICB2b2lkIHRleHRNYXJrZXJEYXRh
Rm9yVmlzaWJsZVBvc2l0aW9uKFRleHRNYXJrZXJEYXRhJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jik7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXJEYXRh
KFRleHRNYXJrZXJEYXRhJik7CisgICAgQ2hhcmFjdGVyT2Zmc2V0IGNoYXJhY3Rlck9mZnNldEZv
clRleHRNYXJrZXJEYXRhKFRleHRNYXJrZXJEYXRhJik7CiAgICAgdm9pZCB0ZXh0TWFya2VyRGF0
YUZvckNoYXJhY3Rlck9mZnNldChUZXh0TWFya2VyRGF0YSYsIE5vZGUmLCBpbnQsIGJvb2wgdG9O
b2RlRW5kID0gZmFsc2UpOwogICAgIHZvaWQgc3RhcnRPckVuZFRleHRNYXJrZXJEYXRhRm9yUmFu
Z2UoVGV4dE1hcmtlckRhdGEmLCBSZWZQdHI8UmFuZ2U+LCBib29sKTsKICAgICBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBhY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yVGV4dE1hcmtlckRhdGEoVGV4dE1hcmtl
ckRhdGEmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCShy
ZXZpc2lvbiAxOTYxNjQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTAwLDE2
ICs5MDAsMjEgQEAgLSAoUmVmUHRyPFJhbmdlPilyYW5nZUZvclRleHRNYXJrZXJSYW5nZQogICAg
IHJldHVybiBjYWNoZS0+cmFuZ2VGb3JVbm9yZGVyZWRDaGFyYWN0ZXJPZmZzZXRzKHN0YXJ0Q2hh
cmFjdGVyT2Zmc2V0LCBlbmRDaGFyYWN0ZXJPZmZzZXQpOwogfQogCi0tIChDaGFyYWN0ZXJPZmZz
ZXQpY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtlcjooaWQpdGV4dE1hcmtlcgorc3RhdGljIENo
YXJhY3Rlck9mZnNldCBjaGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFya2VyKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlLCBDRlR5cGVSZWYgdGV4dE1hcmtlcikKIHsKLSAgICBpZiAoIXRleHRNYXJrZXIgfHwg
aXNUZXh0TWFya2VySWdub3JlZCh0ZXh0TWFya2VyKSkKKyAgICBpZiAoIWNhY2hlIHx8ICF0ZXh0
TWFya2VyKQogICAgICAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KCk7CiAgICAgCiAgICAgVGV4
dE1hcmtlckRhdGEgdGV4dE1hcmtlckRhdGE7CiAgICAgaWYgKCF3a0dldEJ5dGVzRnJvbUFYVGV4
dE1hcmtlcih0ZXh0TWFya2VyLCAmdGV4dE1hcmtlckRhdGEsIHNpemVvZih0ZXh0TWFya2VyRGF0
YSkpKQogICAgICAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KCk7CiAgICAgCi0gICAgcmV0dXJu
IENoYXJhY3Rlck9mZnNldCh0ZXh0TWFya2VyRGF0YS5ub2RlLCB0ZXh0TWFya2VyRGF0YS5jaGFy
YWN0ZXJTdGFydEluZGV4LCB0ZXh0TWFya2VyRGF0YS5jaGFyYWN0ZXJPZmZzZXQpOworICAgIHJl
dHVybiBjYWNoZS0+Y2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtlckRhdGEodGV4dE1hcmtlckRh
dGEpOworfQorCistIChDaGFyYWN0ZXJPZmZzZXQpY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtl
cjooaWQpdGV4dE1hcmtlcgoreworICAgIHJldHVybiBjaGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFy
a2VyKG1fb2JqZWN0LT5heE9iamVjdENhY2hlKCksIHRleHRNYXJrZXIpOwogfQogCiBzdGF0aWMg
aWQgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbihBWE9iamVjdENhY2hlKiBjYWNoZSwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiB2aXNpYmxlUG9zKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2MTY0
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTYtMDItMDggIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBB
WDogY3Jhc2ggYXQgV2ViQ29yZTo6UmFuZ2U6OnNlbGVjdE5vZGVDb250ZW50cyhXZWJDb3JlOjpO
b2RlKiwgaW50JikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NDAxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS90ZXh0LW1hcmtlci90ZXh0LW1hcmtlci1yYW5nZS1zdGFsZS1u
b2RlLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS90
ZXh0LW1hcmtlci90ZXh0LW1hcmtlci1yYW5nZS1zdGFsZS1ub2RlLWNyYXNoLmh0bWw6IEFkZGVk
LgorCiAyMDE2LTAyLTA0ICBIdW5zZW9wIEplb25nICA8aHM4NS5qZW9uZ0BzYW1zdW5nLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiBFRkwgZ2FyZGVuaW5nLiBNYXJrIHNvbWUgdmlkZW8gdGVz
dHMgdG8gZmFpbHVyZS4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dC1tYXJr
ZXIvdGV4dC1tYXJrZXItcmFuZ2Utc3RhbGUtbm9kZS1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0LW1hcmtlci90ZXh0LW1hcmtl
ci1yYW5nZS1zdGFsZS1ub2RlLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4dC1tYXJrZXItcmFuZ2Utc3Rh
bGUtbm9kZS1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBA
QAorc29tZUNvbnRlbnQKK1RoaXMgdGVzdHMgdGhhdCB3ZSBjcmVhdGUgYSB0ZXh0IG1hcmtlciBy
YW5nZSBmcm9tIGEgc3RhbGUgbm9kZSB3b24ndCBsZWFkIHRvIGNyYXNoLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXh0LnRleHRNYXJrZXJSYW5nZUxlbmd0aChtYXJr
ZXJSYW5nZSkgaXMgNAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4
dC1tYXJrZXItcmFuZ2Utc3RhbGUtbm9kZS1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4dC1tYXJrZXItcmFuZ2Utc3RhbGUt
bm9kZS1jcmFzaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS90ZXh0LW1hcmtlci90ZXh0LW1hcmtlci1yYW5nZS1zdGFsZS1ub2RlLWNyYXNoLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJv
ZHkiPgorCis8ZGl2IGlkPSJ0ZXh0IiBjb250ZW50ZWRpdGFibGU9InRydWUiPnRleHQ8L2Rpdj4K
KworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKwor
PHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgd2UgY3JlYXRlIGEg
dGV4dCBtYXJrZXIgcmFuZ2UgZnJvbSBhIHN0YWxlIG5vZGUgd29uJ3QgbGVhZCB0byBjcmFzaC4i
KTsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAg
CisgICAgICAgIHZhciB0ZXh0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCJ0ZXh0Iik7CisgICAgICAgIHZhciB0ZXh0RWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0ZXh0Iik7CisgICAgICAgIHZhciBtYXJrZXJSYW5nZSA9IHRleHQudGV4
dE1hcmtlclJhbmdlRm9yRWxlbWVudCh0ZXh0KTsKKyAgICAgICAgdmFyIHN0YXJ0TWFya2VyID0g
dGV4dC5zdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UobWFya2VyUmFuZ2UpOworICAg
ICAgICB2YXIgZW5kTWFya2VyID0gdGV4dC5lbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdl
KG1hcmtlclJhbmdlKTsKKyAgICAgICAgCisgICAgICAgIG1hcmtlclJhbmdlID0gdGV4dC50ZXh0
TWFya2VyUmFuZ2VGb3JNYXJrZXJzKHN0YXJ0TWFya2VyLCBlbmRNYXJrZXIpOworICAgICAgICBz
aG91bGRCZSgidGV4dC50ZXh0TWFya2VyUmFuZ2VMZW5ndGgobWFya2VyUmFuZ2UpIiwgIjQiKTsK
KyAgICAgICAgCisgICAgICAgIC8vIENoYW5nZSB0aGUgbm9kZSBoaWVyYXJjaHkuCisgICAgICAg
IHRleHRFbGVtZW50LmlubmVySFRNTCA9ICIiOworICAgICAgICB2YXIgdGV4dG5vZGUgPSBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgic29tZUNvbnRlbnQiKTsKKyAgICAgICAgdGV4dEVsZW1lbnQu
YXBwZW5kQ2hpbGQodGV4dG5vZGUpOworICAgICAgICAKKyAgICAgICAgLy8gTWFraW5nIGEgcmFu
Z2UgZnJvbSB0aGUgb2xkIG1hcmtlcnMgd29uJ3QgY3Jhc2guCisgICAgICAgIG1hcmtlclJhbmdl
ID0gdGV4dC50ZXh0TWFya2VyUmFuZ2VGb3JNYXJrZXJzKHN0YXJ0TWFya2VyLCBlbmRNYXJrZXIp
OworICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>