<?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>47300</bug_id>
          
          <creation_ts>2010-10-06 13:53:41 -0700</creation_ts>
          <short_desc>Executing FormatBlock on multiple paragraphs inside pre does not remove the outer pre</short_desc>
          <delta_ts>2010-12-06 16:31:49 -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>HTML Editing</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>leviw</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>290560</commentid>
    <comment_count>0</comment_count>
      <attachid>69986</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-06 13:53:41 -0700</bug_when>
    <thetext>Created attachment 69986
demo

The attached demo causes WebKit TOT to hit the first ASSERT in moveParagraph:
ASSERT(isStartOfParagraph(startOfParagraphToMove));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301414</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-28 16:17:03 -0700</bug_when>
    <thetext>We no longer hit the assert but we don&apos;t remove pre, which seems to be wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317425</commentid>
    <comment_count>2</comment_count>
      <attachid>75640</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-05 17:46:32 -0800</bug_when>
    <thetext>Created attachment 75640
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317687</commentid>
    <comment_count>3</comment_count>
      <attachid>75640</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-12-06 10:07:22 -0800</bug_when>
    <thetext>Comment on attachment 75640
fixes the bug

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

&gt; WebCore/editing/FormatBlockCommand.h:48
&gt; -    void formatRange(const Position&amp;, const Position&amp;, RefPtr&lt;Element&gt;&amp;);
&gt; +    void formatRange(const Position&amp;, const Position&amp;, const Position&amp; endOfSelection, RefPtr&lt;Element&gt;&amp;);

Nit: Should we name the first and second Position params like in ApplyBlockElementCommand.h?

&gt; WebCore/editing/IndentOutdentCommand.h:56
&gt; -    void formatRange(const Position&amp;, const Position&amp;, RefPtr&lt;Element&gt;&amp; blockquoteForNextIndent);
&gt; +    void formatRange(const Position&amp;, const Position&amp;, const Position&amp; endOfSelection, RefPtr&lt;Element&gt;&amp; blockquoteForNextIndent);

Nit: Should we name the first and second Position params like in ApplyBlockElementCommand.h?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317904</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-06 16:16:09 -0800</bug_when>
    <thetext>Thanks for the review.

(In reply to comment #3)
&gt; (From update of attachment 75640 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=75640&amp;action=review
&gt; 
&gt; &gt; WebCore/editing/FormatBlockCommand.h:48
&gt; &gt; -    void formatRange(const Position&amp;, const Position&amp;, RefPtr&lt;Element&gt;&amp;);
&gt; &gt; +    void formatRange(const Position&amp;, const Position&amp;, const Position&amp; endOfSelection, RefPtr&lt;Element&gt;&amp;);
&gt; 
&gt; Nit: Should we name the first and second Position params like in ApplyBlockElementCommand.h?
&gt; 
&gt; &gt; WebCore/editing/IndentOutdentCommand.h:56
&gt; &gt; -    void formatRange(const Position&amp;, const Position&amp;, RefPtr&lt;Element&gt;&amp; blockquoteForNextIndent);
&gt; &gt; +    void formatRange(const Position&amp;, const Position&amp;, const Position&amp; endOfSelection, RefPtr&lt;Element&gt;&amp; blockquoteForNextIndent);
&gt; 
&gt; Nit: Should we name the first and second Position params like in ApplyBlockElementCommand.h?

Will fix and land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317920</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-06 16:31:49 -0800</bug_when>
    <thetext>Committed r73411: &lt;http://trac.webkit.org/changeset/73411&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>69986</attachid>
            <date>2010-10-06 13:53:41 -0700</date>
            <delta_ts>2010-10-06 13:53:41 -0700</delta_ts>
            <desc>demo</desc>
            <filename>format-pre.html</filename>
            <type>text/html</type>
            <size>396</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8Ym9keT4KPGRpdiBpZD0idGVzdCIgY29udGVudGVkaXRh
YmxlPgo8cHJlPgpoZWxsbwoKd29ybGQKCndlYmtpdAo8L3ByZT4KPC9kaXY+CjxzY3JpcHQ+Cgp2
YXIgdGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CndpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbih0ZXN0KTsKLy9kb2N1bWVudC5leGVjQ29tbWFuZCgn
aW5kZW50JywgZmFsc2UsIG51bGwpOwpkb2N1bWVudC5leGVjQ29tbWFuZCgnZm9ybWF0QmxvY2sn
LCBmYWxzZSwgJ2gzJyk7CmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUodGVzdC5pbm5lckhUTUwpKTsKCjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75640</attachid>
            <date>2010-12-05 17:46:32 -0800</date>
            <delta_ts>2010-12-06 10:07:21 -0800</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-47300-20101205174631.patch</filename>
            <type>text/plain</type>
            <size>18670</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzM0OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTAtMTItMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhl
Y3V0aW5nIEZvcm1hdEJsb2NrIG9uIG11bHRpcGxlIHBhcmFncmFwaHMgaW5zaWRlIHByZSBkb2Vz
IG5vdCByZW1vdmUgdGhlIG91dGVyIHByZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDczMDAKKworICAgICAgICBUaGUgYnVnIHdhcyBjYXVzZWQgYnkg
Rm9ybWF0QmxvY2tDb21tYW5kOjpmb3JtYXRSYW5nZSdzIG5vdCByZW1vdmluZyByZWZOb2RlIHdo
ZW4gdGhlIHJlZk5vZGUKKyAgICAgICAgY29udGFpbnMgbW9yZSB0aGFuIG9uZSBwYXJhZ3JhcGhz
IGV2ZW4gd2hlbiB0aGUgcmVmTm9kZSBpcyBmdWxseSBzZWxlY3RlZC4KKworICAgICAgICBGaXhl
ZCB0aGUgYnVnIGJ5IG1vZGlmeWluZyBGb3JtYXRCbG9ja0NvbW1hbmQ6OmZvcm1hdFJhbmdlIHRv
IGNvcnJlY3RseSByZW1vdmUgdGhlIG5vZGUgaW4KKyAgICAgICAgc3VjaCBhIHNpdHVhdGlvbi4K
KworICAgICAgICBBbHNvIGZpeGVkIGEgYnVnIGluIEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZDo6
Zm9ybWF0U2VsZWN0aW9uIHRoYXQgdGhlIGVuZCBvZiBzZWxlY3Rpb24KKyAgICAgICAgaXMgbm90
IHByb3Blcmx5IHVwZGF0ZWQgd2hlbiB0aGUgZW5kIG9mIHNlbGVjdGlvbiByZXNpZGVzIGluIHRo
ZSBub2RlIHNwbGl0IGJ5CisgICAgICAgIHJhbmdlRm9yUGFyYWdyYXBoU3BsaXR0aW5nVGV4dE5v
ZGVzSWZOZWVkZWQgb3IgZW5kT2ZOZXh0UGFyYWdyYWhTcGxpdHRpbmdUZXh0Tm9kZXNJZk5lZWRl
ZC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL2V4ZWNDb21tYW5kL2Zvcm1hdC1ibG9jay1tdWx0
aXBsZS1wYXJhZ3JhcGhzLWluLXByZS5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5Qmxv
Y2tFbGVtZW50Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseUJsb2NrRWxlbWVu
dENvbW1hbmQ6OmZvcm1hdFNlbGVjdGlvbik6IENhbGxzIGZvcm1hdFJhbmdlIHdpdGggbV9lbmRP
Zkxhc3RQYXJhZ3JhcGguCisgICAgICAgIChXZWJDb3JlOjpBcHBseUJsb2NrRWxlbWVudENvbW1h
bmQ6OnJhbmdlRm9yUGFyYWdyYXBoU3BsaXR0aW5nVGV4dE5vZGVzSWZOZWVkZWQpOiBVcGRhdGVz
CisgICAgICAgIG1fZW5kT2ZMYXN0UGFyYWdyYXBoIHdoZW4gdGhlIHBvc2l0aW9uIHBvaW50cyB0
byB0aGUgbm9kZSBzcGxpdCBieSB0aGlzIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlCbG9ja0VsZW1lbnRDb21tYW5kOjplbmRPZk5leHRQYXJhZ3JhaFNwbGl0dGluZ1RleHROb2Rl
c0lmTmVlZGVkKTogRGl0dG8uCisgICAgICAgICogZWRpdGluZy9BcHBseUJsb2NrRWxlbWVudENv
bW1hbmQuaDogQWRkZWQgbV9lbmRPZkxhc3RQYXJhZ3JhcGggYXMgYSBtZW1iZXIgdmFyaWFibGUu
CisgICAgICAgICogZWRpdGluZy9Gb3JtYXRCbG9ja0NvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9ybWF0QmxvY2tDb21tYW5kOjpmb3JtYXRSYW5nZSk6IFNlZSBhYm92ZS4KKyAgICAg
ICAgKiBlZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5k
ZW50T3V0ZGVudENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5kZW50T3V0ZGVudENv
bW1hbmQ6OmZvcm1hdFJhbmdlKTogSWdub3JlcyB0aGUgZW5kIG9mIHNlbGVjdGlvbi4KKyAgICAg
ICAgKiBlZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmg6CisKIDIwMTAtMTEtMzAgIEx1aXog
QWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1l
bnRDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0Vs
ZW1lbnRDb21tYW5kLmNwcAkocmV2aXNpb24gNzMwNTYpCisrKyBXZWJDb3JlL2VkaXRpbmcvQXBw
bHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDEyICsxMDks
MTIgQEAgdm9pZCBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQ6OmZvcm1hdFNlbAogICAgIFJlZlB0
cjxFbGVtZW50PiBibG9ja3F1b3RlRm9yTmV4dEluZGVudDsKICAgICBWaXNpYmxlUG9zaXRpb24g
ZW5kT2ZDdXJyZW50UGFyYWdyYXBoID0gZW5kT2ZQYXJhZ3JhcGgoc3RhcnRPZlNlbGVjdGlvbik7
CiAgICAgVmlzaWJsZVBvc2l0aW9uIGVuZEFmdGVyU2VsZWN0aW9uID0gZW5kT2ZQYXJhZ3JhcGgo
ZW5kT2ZQYXJhZ3JhcGgoZW5kT2ZTZWxlY3Rpb24pLm5leHQoKSk7Ci0gICAgVmlzaWJsZVBvc2l0
aW9uIGVuZE9mTGFzdFBhcmFncmFwaCA9IGVuZE9mUGFyYWdyYXBoKGVuZE9mU2VsZWN0aW9uKTsK
KyAgICBtX2VuZE9mTGFzdFBhcmFncmFwaCA9IGVuZE9mUGFyYWdyYXBoKGVuZE9mU2VsZWN0aW9u
KS5kZWVwRXF1aXZhbGVudCgpOwogCiAgICAgYm9vbCBhdEVuZCA9IGZhbHNlOwogICAgIFBvc2l0
aW9uIGVuZDsKICAgICB3aGlsZSAoZW5kT2ZDdXJyZW50UGFyYWdyYXBoICE9IGVuZEFmdGVyU2Vs
ZWN0aW9uICYmICFhdEVuZCkgewotICAgICAgICBpZiAoZW5kT2ZDdXJyZW50UGFyYWdyYXBoID09
IGVuZE9mTGFzdFBhcmFncmFwaCkKKyAgICAgICAgaWYgKGVuZE9mQ3VycmVudFBhcmFncmFwaC5k
ZWVwRXF1aXZhbGVudCgpID09IG1fZW5kT2ZMYXN0UGFyYWdyYXBoKQogICAgICAgICAgICAgYXRF
bmQgPSB0cnVlOwogCiAgICAgICAgIHJhbmdlRm9yUGFyYWdyYXBoU3BsaXR0aW5nVGV4dE5vZGVz
SWZOZWVkZWQoZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCBzdGFydCwgZW5kKTsKQEAgLTEyNCw3ICsx
MjQsNyBAQCB2b2lkIEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZDo6Zm9ybWF0U2VsCiAgICAgICAg
IE5vZGUqIGVuY2xvc2luZ0NlbGwgPSBlbmNsb3NpbmdOb2RlT2ZUeXBlKHN0YXJ0LCAmaXNUYWJs
ZUNlbGwpOwogICAgICAgICBWaXNpYmxlUG9zaXRpb24gZW5kT2ZOZXh0UGFyYWdyYXBoID0gZW5k
T2ZOZXh0UGFyYWdyYWhTcGxpdHRpbmdUZXh0Tm9kZXNJZk5lZWRlZChlbmRPZkN1cnJlbnRQYXJh
Z3JhcGgsIHN0YXJ0LCBlbmQpOwogCi0gICAgICAgIGZvcm1hdFJhbmdlKHN0YXJ0LCBlbmQsIGJs
b2NrcXVvdGVGb3JOZXh0SW5kZW50KTsKKyAgICAgICAgZm9ybWF0UmFuZ2Uoc3RhcnQsIGVuZCwg
bV9lbmRPZkxhc3RQYXJhZ3JhcGgsIGJsb2NrcXVvdGVGb3JOZXh0SW5kZW50KTsKIAogICAgICAg
ICAvLyBEb24ndCBwdXQgdGhlIG5leHQgcGFyYWdyYXBoIGluIHRoZSBibG9ja3F1b3RlIHdlIGp1
c3QgY3JlYXRlZCBmb3IgdGhpcyBwYXJhZ3JhcGggdW5sZXNzIAogICAgICAgICAvLyB0aGUgbmV4
dCBwYXJhZ3JhcGggaXMgaW4gdGhlIHNhbWUgY2VsbC4KQEAgLTE4MCw3ICsxODAsMTEgQEAgdm9p
ZCBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQ6OnJhbmdlRm9yUAogICAgIGVuZCA9IGVuZE9mQ3Vy
cmVudFBhcmFncmFwaC5kZWVwRXF1aXZhbGVudCgpOwogCiAgICAgUmVuZGVyU3R5bGUqIHN0YXJ0
U3R5bGUgPSByZW5kZXJTdHlsZU9mRW5jbG9zaW5nVGV4dE5vZGUoc3RhcnQpOworICAgIGJvb2wg
aXNTdGFydEFuZEVuZE9uU2FtZU5vZGUgPSBmYWxzZTsKICAgICBpZiAoc3RhcnRTdHlsZSkgewor
ICAgICAgICBpc1N0YXJ0QW5kRW5kT25TYW1lTm9kZSA9IHJlbmRlclN0eWxlT2ZFbmNsb3NpbmdU
ZXh0Tm9kZShlbmQpICYmIHN0YXJ0Lm5vZGUoKSA9PSBlbmQubm9kZSgpOworICAgICAgICBib29s
IGlzU3RhcnRBbmRFbmRPZkxhc3RQYXJhZ3JhcGhPblNhbWVOb2RlID0gcmVuZGVyU3R5bGVPZkVu
Y2xvc2luZ1RleHROb2RlKG1fZW5kT2ZMYXN0UGFyYWdyYXBoKSAmJiBzdGFydC5ub2RlKCkgPT0g
bV9lbmRPZkxhc3RQYXJhZ3JhcGgubm9kZSgpOworCiAgICAgICAgIC8vIEF2b2lkIG9idGFuaW5p
bmcgdGhlIHN0YXJ0IG9mIG5leHQgcGFyYWdyYXBoIGZvciBzdGFydAogICAgICAgICBpZiAoc3Rh
cnRTdHlsZS0+cHJlc2VydmVOZXdsaW5lKCkgJiYgaXNOZXdMaW5lQXRQb3NpdGlvbihzdGFydCkg
JiYgIWlzTmV3TGluZUF0UG9zaXRpb24oc3RhcnQucHJldmlvdXMoKSkgJiYgc3RhcnQub2Zmc2V0
SW5Db250YWluZXJOb2RlKCkgPiAwKQogICAgICAgICAgICAgc3RhcnQgPSBzdGFydE9mUGFyYWdy
YXBoKGVuZC5wcmV2aW91cygpKS5kZWVwRXF1aXZhbGVudCgpOwpAQCAtMTkwLDI5ICsxOTQsNDQg
QEAgdm9pZCBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQ6OnJhbmdlRm9yUAogICAgICAgICAgICAg
aW50IHN0YXJ0T2Zmc2V0ID0gc3RhcnQub2Zmc2V0SW5Db250YWluZXJOb2RlKCk7CiAgICAgICAg
ICAgICBzcGxpdFRleHROb2RlKHN0YXRpY19jYXN0PFRleHQqPihzdGFydC5ub2RlKCkpLCBzdGFy
dE9mZnNldCk7CiAgICAgICAgICAgICBzdGFydCA9IHBvc2l0aW9uQmVmb3JlTm9kZShzdGFydC5u
b2RlKCkpOwotICAgICAgICAgICAgaWYgKHN0YXJ0Lm5vZGUoKSA9PSBlbmQubm9kZSgpKSB7Cisg
ICAgICAgICAgICBpZiAoaXNTdGFydEFuZEVuZE9uU2FtZU5vZGUpIHsKICAgICAgICAgICAgICAg
ICBBU1NFUlQoZW5kLm9mZnNldEluQ29udGFpbmVyTm9kZSgpID49IHN0YXJ0T2Zmc2V0KTsKICAg
ICAgICAgICAgICAgICBlbmQgPSBQb3NpdGlvbihlbmQubm9kZSgpLCBlbmQub2Zmc2V0SW5Db250
YWluZXJOb2RlKCkgLSBzdGFydE9mZnNldCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFu
Y2hvcik7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNTdGFydEFuZEVuZE9mTGFz
dFBhcmFncmFwaE9uU2FtZU5vZGUpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQobV9lbmRPZkxh
c3RQYXJhZ3JhcGgub2Zmc2V0SW5Db250YWluZXJOb2RlKCkgPj0gc3RhcnRPZmZzZXQpOworICAg
ICAgICAgICAgICAgIG1fZW5kT2ZMYXN0UGFyYWdyYXBoID0gUG9zaXRpb24obV9lbmRPZkxhc3RQ
YXJhZ3JhcGgubm9kZSgpLCBtX2VuZE9mTGFzdFBhcmFncmFwaC5vZmZzZXRJbkNvbnRhaW5lck5v
ZGUoKSAtIHN0YXJ0T2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbjo6UG9zaXRp
b25Jc09mZnNldEluQW5jaG9yKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAog
ICAgIFJlbmRlclN0eWxlKiBlbmRTdHlsZSA9IHJlbmRlclN0eWxlT2ZFbmNsb3NpbmdUZXh0Tm9k
ZShlbmQpOwogICAgIGlmIChlbmRTdHlsZSkgeworICAgICAgICBib29sIGlzRW5kQW5kRW5kT2ZM
YXN0UGFyYWdyYXBoT25TYW1lTm9kZSA9IHJlbmRlclN0eWxlT2ZFbmNsb3NpbmdUZXh0Tm9kZSht
X2VuZE9mTGFzdFBhcmFncmFwaCkgJiYgZW5kLm5vZGUoKSA9PSBtX2VuZE9mTGFzdFBhcmFncmFw
aC5ub2RlKCk7CiAgICAgICAgIC8vIEluY2x1ZGUgXG4gYXQgdGhlIGVuZCBvZiBsaW5lIGlmIHdl
J3JlIGF0IGFuIGVtcHR5IHBhcmFncmFwaAogICAgICAgICBpZiAoZW5kU3R5bGUtPnByZXNlcnZl
TmV3bGluZSgpICYmIHN0YXJ0ID09IGVuZAogICAgICAgICAgICAgJiYgZW5kLm9mZnNldEluQ29u
dGFpbmVyTm9kZSgpIDwgZW5kLmNvbnRhaW5lck5vZGUoKS0+bWF4Q2hhcmFjdGVyT2Zmc2V0KCkp
IHsKICAgICAgICAgICAgIGludCBlbmRPZmZzZXQgPSBlbmQub2Zmc2V0SW5Db250YWluZXJOb2Rl
KCk7CiAgICAgICAgICAgICBpZiAoIWlzTmV3TGluZUF0UG9zaXRpb24oZW5kLnByZXZpb3VzKCkp
ICYmIGlzTmV3TGluZUF0UG9zaXRpb24oZW5kKSkKICAgICAgICAgICAgICAgICBlbmQgPSBQb3Np
dGlvbihlbmQubm9kZSgpLCBlbmRPZmZzZXQgKyAxLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNl
dEluQW5jaG9yKTsKKyAgICAgICAgICAgIGlmIChpc0VuZEFuZEVuZE9mTGFzdFBhcmFncmFwaE9u
U2FtZU5vZGUgJiYgZW5kLm9mZnNldEluQ29udGFpbmVyTm9kZSgpID49IG1fZW5kT2ZMYXN0UGFy
YWdyYXBoLm9mZnNldEluQ29udGFpbmVyTm9kZSgpKQorICAgICAgICAgICAgICAgIG1fZW5kT2ZM
YXN0UGFyYWdyYXBoID0gZW5kOwogICAgICAgICB9CiAKICAgICAgICAgLy8gSWYgZW5kIGlzIGlu
IHRoZSBtaWRkbGUgb2YgYSB0ZXh0IG5vZGUsIHNwbGl0LgogICAgICAgICBpZiAoIWVuZFN0eWxl
LT5jb2xsYXBzZVdoaXRlU3BhY2UoKSAmJiBlbmQub2Zmc2V0SW5Db250YWluZXJOb2RlKCkKICAg
ICAgICAgICAgICYmIGVuZC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSA8IGVuZC5jb250YWluZXJO
b2RlKCktPm1heENoYXJhY3Rlck9mZnNldCgpKSB7CiAgICAgICAgICAgICBzcGxpdFRleHROb2Rl
KHN0YXRpY19jYXN0PFRleHQqPihlbmQubm9kZSgpKSwgZW5kLm9mZnNldEluQ29udGFpbmVyTm9k
ZSgpKTsKLSAgICAgICAgICAgIGlmIChzdGFydC5ub2RlKCkgPT0gZW5kLm5vZGUoKSkKKyAgICAg
ICAgICAgIGlmIChpc1N0YXJ0QW5kRW5kT25TYW1lTm9kZSkKICAgICAgICAgICAgICAgICBzdGFy
dCA9IHBvc2l0aW9uQmVmb3JlTm9kZShlbmQubm9kZSgpLT5wcmV2aW91c1NpYmxpbmcoKSk7Cisg
ICAgICAgICAgICBpZiAoaXNFbmRBbmRFbmRPZkxhc3RQYXJhZ3JhcGhPblNhbWVOb2RlKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKG1fZW5kT2ZMYXN0UGFyYWdyYXBoLm9mZnNldEluQ29udGFpbmVy
Tm9kZSgpID09IGVuZC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSkKKyAgICAgICAgICAgICAgICAg
ICAgbV9lbmRPZkxhc3RQYXJhZ3JhcGggPSBsYXN0UG9zaXRpb25Jbk5vZGUoZW5kLm5vZGUoKS0+
cHJldmlvdXNTaWJsaW5nKCkpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgbV9lbmRPZkxhc3RQYXJhZ3JhcGggPSBQb3NpdGlvbihlbmQubm9kZSgpLCBtX2VuZE9m
TGFzdFBhcmFncmFwaC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSAtIGVuZC5vZmZzZXRJbkNvbnRh
aW5lck5vZGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGVuZCA9IGxhc3RQb3NpdGlvbkluTm9kZShlbmQubm9kZSgpLT5wcmV2
aW91c1NpYmxpbmcoKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNDQsNiArMjYzLDEyIEBAIFZp
c2libGVQb3NpdGlvbiBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQKICAgICAgICAgQVNTRVJUKGVu
ZC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSA8IHBvc2l0aW9uLm9mZnNldEluQ29udGFpbmVyTm9k
ZSgpKTsKICAgICAgICAgZW5kID0gUG9zaXRpb24oY29udGFpbmVyTm9kZS0+cHJldmlvdXNTaWJs
aW5nKCksIGVuZC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSwgUG9zaXRpb246OlBvc2l0aW9uSXNP
ZmZzZXRJbkFuY2hvcik7CiAgICAgfQorICAgIGlmIChtX2VuZE9mTGFzdFBhcmFncmFwaC5hbmNo
b3JUeXBlKCkgPT0gUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciAmJiBjb250YWlu
ZXJOb2RlLmdldCgpID09IG1fZW5kT2ZMYXN0UGFyYWdyYXBoLmNvbnRhaW5lck5vZGUoKSkgewor
ICAgICAgICBpZiAobV9lbmRPZkxhc3RQYXJhZ3JhcGgub2Zmc2V0SW5Db250YWluZXJOb2RlKCkg
PCBwb3NpdGlvbi5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSkKKyAgICAgICAgICAgIG1fZW5kT2ZM
YXN0UGFyYWdyYXBoID0gUG9zaXRpb24oY29udGFpbmVyTm9kZS0+cHJldmlvdXNTaWJsaW5nKCks
IG1fZW5kT2ZMYXN0UGFyYWdyYXBoLm9mZnNldEluQ29udGFpbmVyTm9kZSgpLCBQb3NpdGlvbjo6
UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9l
bmRPZkxhc3RQYXJhZ3JhcGggPSBQb3NpdGlvbihjb250YWluZXJOb2RlLCBtX2VuZE9mTGFzdFBh
cmFncmFwaC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSAtIDEsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpOworICAgIH0KIAogICAgIHJldHVybiBQb3NpdGlvbihjb250YWluZXJO
b2RlLmdldCgpLCBwb3NpdGlvbi5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSAtIDEsIFBvc2l0aW9u
OjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOwogfQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0Fw
cGx5QmxvY2tFbGVtZW50Q29tbWFuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9B
cHBseUJsb2NrRWxlbWVudENvbW1hbmQuaAkocmV2aXNpb24gNzMwNTYpCisrKyBXZWJDb3JlL2Vk
aXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEz
ICs0NiwxNCBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZm9ybWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0
LCBjb25zdCBQb3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZm9ybWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5k
LCBjb25zdCBQb3NpdGlvbiYgZW5kT2ZTZWxlY3Rpb24sIFJlZlB0cjxFbGVtZW50PiYpID0gMDsK
ICAgICB2b2lkIHJhbmdlRm9yUGFyYWdyYXBoU3BsaXR0aW5nVGV4dE5vZGVzSWZOZWVkZWQoY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiwgUG9zaXRpb24mLCBQb3NpdGlvbiYpOwogICAgIFZpc2libGVQ
b3NpdGlvbiBlbmRPZk5leHRQYXJhZ3JhaFNwbGl0dGluZ1RleHROb2Rlc0lmTmVlZGVkKFZpc2li
bGVQb3NpdGlvbiYsIFBvc2l0aW9uJiwgUG9zaXRpb24mKTsKIAogICAgIFF1YWxpZmllZE5hbWUg
bV90YWdOYW1lOwogICAgIEF0b21pY1N0cmluZyBtX2NsYXNzTmFtZTsKICAgICBBdG9taWNTdHJp
bmcgbV9pbmxpbmVTdHlsZTsKKyAgICBQb3NpdGlvbiBtX2VuZE9mTGFzdFBhcmFncmFwaDsKIH07
CiAKIH0KSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9Gb3JtYXRCbG9ja0NvbW1hbmQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9Gb3JtYXRCbG9ja0NvbW1hbmQuY3BwCShyZXZpc2lv
biA3MzA1NikKKysrIFdlYkNvcmUvZWRpdGluZy9Gb3JtYXRCbG9ja0NvbW1hbmQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OCwxNSArNTgsMTcgQEAgdm9pZCBGb3JtYXRCbG9ja0NvbW1hbmQ6OmZv
cm1hdFNlbGVjdGlvbgogICAgIG1fZGlkQXBwbHkgPSB0cnVlOwogfQogCi12b2lkIEZvcm1hdEJs
b2NrQ29tbWFuZDo6Zm9ybWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3Np
dGlvbiYgZW5kLCBSZWZQdHI8RWxlbWVudD4mIGJsb2NrTm9kZSkKK3ZvaWQgRm9ybWF0QmxvY2tD
b21tYW5kOjpmb3JtYXRSYW5nZShjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9u
JiBlbmQsIGNvbnN0IFBvc2l0aW9uJiBlbmRPZlNlbGVjdGlvbiwgUmVmUHRyPEVsZW1lbnQ+JiBi
bG9ja05vZGUpCiB7CiAgICAgTm9kZSogbm9kZVRvU3BsaXRUbyA9IGVuY2xvc2luZ0Jsb2NrVG9T
cGxpdFRyZWVUbyhzdGFydC5ub2RlKCkpOwogICAgIFJlZlB0cjxOb2RlPiBvdXRlckJsb2NrID0g
KHN0YXJ0Lm5vZGUoKSA9PSBub2RlVG9TcGxpdFRvKSA/IHN0YXJ0Lm5vZGUoKSA6IHNwbGl0VHJl
ZVRvTm9kZShzdGFydC5ub2RlKCksIG5vZGVUb1NwbGl0VG8pOwogICAgIFJlZlB0cjxOb2RlPiBu
b2RlQWZ0ZXJJbnNlcnRpb25Qb3NpdGlvbiA9IG91dGVyQmxvY2s7CiAKKyAgICBSZWZQdHI8UmFu
Z2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCgpLCBzdGFydCwgZW5kT2ZTZWxlY3Rp
b24pOwogICAgIEVsZW1lbnQqIHJlZk5vZGUgPSBlbmNsb3NpbmdCbG9ja0Zsb3dFbGVtZW50KGVu
ZCk7CiAgICAgRWxlbWVudCogcm9vdCA9IGVkaXRhYmxlUm9vdEZvclBvc2l0aW9uKHN0YXJ0KTsK
LSAgICBpZiAoaXNFbGVtZW50Rm9yRm9ybWF0QmxvY2socmVmTm9kZS0+dGFnUU5hbWUoKSkgJiYg
c3RhcnQgPT0gc3RhcnRPZkJsb2NrKHN0YXJ0KSAmJiBlbmQgPT0gZW5kT2ZCbG9jayhlbmQpCisg
ICAgaWYgKGlzRWxlbWVudEZvckZvcm1hdEJsb2NrKHJlZk5vZGUtPnRhZ1FOYW1lKCkpICYmIHN0
YXJ0ID09IHN0YXJ0T2ZCbG9jayhzdGFydCkKKyAgICAgICAgJiYgKGVuZCA9PSBlbmRPZkJsb2Nr
KGVuZCkgfHwgaXNOb2RlVmlzaWJseUNvbnRhaW5lZFdpdGhpbihyZWZOb2RlLCByYW5nZS5nZXQo
KSkpCiAgICAgICAgICYmIHJlZk5vZGUgIT0gcm9vdCAmJiAhcm9vdC0+aXNEZXNjZW5kYW50T2Yo
cmVmTm9kZSkpIHsKICAgICAgICAgLy8gQWxyZWFkeSBpbiBhIGJsb2NrIGVsZW1lbnQgdGhhdCBv
bmx5IGNvbnRhaW5zIHRoZSBjdXJyZW50IHBhcmFncmFwaAogICAgICAgICBpZiAocmVmTm9kZS0+
aGFzVGFnTmFtZSh0YWdOYW1lKCkpKQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0Zvcm1hdEJsb2Nr
Q29tbWFuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9Gb3JtYXRCbG9ja0NvbW1h
bmQuaAkocmV2aXNpb24gNzMwNTYpCisrKyBXZWJDb3JlL2VkaXRpbmcvRm9ybWF0QmxvY2tDb21t
YW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKICAgICBGb3Jt
YXRCbG9ja0NvbW1hbmQoRG9jdW1lbnQqLCBjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lKTsK
IAogICAgIHZvaWQgZm9ybWF0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgc3RhcnRP
ZlNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmRPZlNlbGVjdGlvbik7Ci0gICAg
dm9pZCBmb3JtYXRSYW5nZShjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgUmVmUHRy
PEVsZW1lbnQ+Jik7CisgICAgdm9pZCBmb3JtYXRSYW5nZShjb25zdCBQb3NpdGlvbiYsIGNvbnN0
IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mIGVuZE9mU2VsZWN0aW9uLCBSZWZQdHI8RWxlbWVu
dD4mKTsKICAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCB7IHJldHVybiBFZGl0
QWN0aW9uRm9ybWF0QmxvY2s7IH0KIAogICAgIGJvb2wgbV9kaWRBcHBseTsKSW5kZXg6IFdlYkNv
cmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmNwcAkocmV2aXNpb24gNzMwNTYpCisrKyBX
ZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMjIsNyArMjIyLDcgQEAgdm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6Zm9ybWF0U2VsZWN0
aQogICAgICAgICBvdXRkZW50UmVnaW9uKHN0YXJ0T2ZTZWxlY3Rpb24sIGVuZE9mU2VsZWN0aW9u
KTsKIH0KIAotdm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6Zm9ybWF0UmFuZ2UoY29uc3QgUG9z
aXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBSZWZQdHI8RWxlbWVudD4mIGJsb2Nr
cXVvdGVGb3JOZXh0SW5kZW50KQordm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6Zm9ybWF0UmFu
Z2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBjb25zdCBQb3Np
dGlvbiYsIFJlZlB0cjxFbGVtZW50PiYgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpCiB7CiAgICAg
aWYgKHRyeUluZGVudGluZ0FzTGlzdEl0ZW0oc3RhcnQsIGVuZCkpCiAgICAgICAgIGJsb2NrcXVv
dGVGb3JOZXh0SW5kZW50ID0gMDsKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50
Q29tbWFuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29t
bWFuZC5oCShyZXZpc2lvbiA3MzA1NikKKysrIFdlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50
Q29tbWFuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBpbmRlbnRJbnRvQmxvY2txdW90ZShjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9u
JiwgUmVmUHRyPEVsZW1lbnQ+Jik7CiAKICAgICB2b2lkIGZvcm1hdFNlbGVjdGlvbihjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
ZW5kT2ZTZWxlY3Rpb24pOwotICAgIHZvaWQgZm9ybWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mLCBj
b25zdCBQb3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYgYmxvY2txdW90ZUZvck5leHRJbmRlbnQp
OworICAgIHZvaWQgZm9ybWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYs
IGNvbnN0IFBvc2l0aW9uJiBlbmRPZlNlbGVjdGlvbiwgUmVmUHRyPEVsZW1lbnQ+JiBibG9ja3F1
b3RlRm9yTmV4dEluZGVudCk7CiAKICAgICBFSW5kZW50VHlwZSBtX3R5cGVPZkFjdGlvbjsKICAg
ICBpbnQgbV9tYXJnaW5JblBpeGVsczsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDczMzQ4KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAt
MTItMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhlY3V0aW5nIEZvcm1hdEJsb2NrIG9u
IG11bHRpcGxlIHBhcmFncmFwaHMgaW5zaWRlIHByZSBkb2VzIG5vdCByZW1vdmUgdGhlIG91dGVy
IHByZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDcz
MDAKKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8gZW5zdXJlIGV4ZWNDb21tYW5kKCdGb3JtYXRC
bG9jaycpIGNvcnJlY3RseSByZW1vdmVzIHByZSB3aGVuIGZvcm1hdHRpbmcgcGFyYWdyYXBocyB3
aXRoaW4uCisgICAgICAgIEFsc28gcmViYXNlbGluZWQgc2V2ZXJhbCB0ZXN0cyBiZWNhdXNlIFdl
YktpdCBubyBsb25nZXIgZXJyb25lb3VzbHkgZm9ybWF0IHRoZSBwYXJhZ3JhcGhzIGltbWVkaWF0
ZWx5CisgICAgICAgIGFmdGVyIHRoZSBzZWxlY3Rpb24uCisKKyAgICAgICAgKiBlZGl0aW5nL2V4
ZWNDb21tYW5kL2Zvcm1hdC1ibG9jay1tdWx0aXBsZS1wYXJhZ3JhcGhzLWluLXByZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvZm9ybWF0LWJsb2Nr
LW11bHRpcGxlLXBhcmFncmFwaHMtaW4tcHJlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvZXhlY0NvbW1hbmQvZm9ybWF0LWJsb2NrLW11bHRpcGxlLXBhcmFncmFwaHMtZXhwZWN0ZWQu
dHh0OiBObyBsb25nZXIgZXJyb25lb3VzbHkgZm9ybWF0CisgICAgICAgIHRoZSBsYXN0IHBhcmFn
cmFwaCBpbiBhIHByZSBieSBhIGJsb2NrcXVvdGUgd2hlbiBmb3JtYXR0aW5nIGFsbCBidXQgdGhl
IGxhc3QgcGFyYWdyYXBoIGluIHRoZSBwcmUuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFu
ZC9pbmRlbnQtcHJlLWV4cGVjdGVkLnR4dDogTm8gbG9uZ2VyIGVycm9uZW91c2x5IGZvcm1hdCB0
aGUgbGFzdCBwYXJhZ3JhcGggaW4KKyAgICAgICAgdGhlIHByZS1saXN0IGJ5IGEgYmxvY2txdW90
ZS4KKwogMjAxMC0xMi0wNSAgUm9iIEJ1aXMgIDxyd2xidWlzQGdtYWlsLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL2V4ZWNDb21tYW5kL2Zvcm1hdC1ibG9jay1tdWx0aXBsZS1wYXJhZ3JhcGhzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2Zvcm1h
dC1ibG9jay1tdWx0aXBsZS1wYXJhZ3JhcGhzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNzMwNTYp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2Zvcm1hdC1ibG9jay1tdWx0aXBs
ZS1wYXJhZ3JhcGhzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTEgKzU3LDEw
IEBAIEZvcm1hdHRpbmc6CiBieSBwIHlpZWxkczoKIHwgIgogIgotfCA8ZGl2PgotfCAgIDxwPgot
fCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbyIKLXwgICAgIDxicj4KLXwgICAgICJ3b3Js
ZDwjc2VsZWN0aW9uLWZvY3VzPiIKK3wgPHA+Cit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxs
byIKK3wgICA8YnI+Cit8ICAgIndvcmxkPCNzZWxlY3Rpb24tZm9jdXM+IgogfCAiCiAiCiAKQEAg
LTEzMiw4ICsxMzEsOCBAQCBieSBibG9ja3F1b3RlIHlpZWxkczoKIHwgICAgICI8I3NlbGVjdGlv
bi1hbmNob3I+aGVsbG8iCiB8ICAgICA8YnI+CiB8ICAgICAid29ybGQ8I3NlbGVjdGlvbi1mb2N1
cz4iCi18ICAgICA8YnI+Ci18ICAgICAid2Via2l0IgorfCAgICJ3ZWJraXQKKyIKIHwgIgogIgog
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2Zvcm1hdC1ibG9jay1tdWx0
aXBsZS1wYXJhZ3JhcGhzLWluLXByZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9mb3JtYXQtYmxvY2stbXVsdGlwbGUtcGFyYWdyYXBo
cy1pbi1wcmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC9mb3JtYXQtYmxvY2stbXVsdGlwbGUtcGFyYWdyYXBocy1pbi1wcmUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc1IEBACitUaGlzIHRlc3RzIGVuc3Vy
ZXMgZm9ybWF0QmxvY2sgcmVtb3ZlcyBhIHByZSB3aGVuIGZvcm1hdHRpbmcgbXVsdGlwbGUgcGFy
YWdyYXBocyBpbnNpZGUgdGhlIHByZS4KKworRm9ybWF0dGluZyBhbGwgcGFyYWdyYXBocyBieSBo
MyB5aWVsZHM6Cit8ICIKKyIKK3wgPGgzPgorfCAgICJoZWxsbyIKK3wgICA8YnI+Cit8ICAgIgor
IgorfCAgICJ3b3JsZCIKK3wgICA8YnI+Cit8ICAgIgorIgorfCAgICJ3ZWJraXQiCit8ICIKKyIK
KworVW5kbyB5aWVsZHM6Cit8ICIKKyIKK3wgPHByZT4KK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9y
PmhlbGxvCisKK3dvcmxkCisKK3dlYmtpdDwjc2VsZWN0aW9uLWZvY3VzPgorIgorfCAiCisiCisK
K0Zvcm1hdHRpbmcgYWxsIGJ1dCB0aGUgbGFzdCBwYXJhZ3JhcGggYnkgaDMgeWllbGRzOgorfCAi
CisiCit8IDxwcmU+Cit8ICAgPGgzPgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbyIK
K3wgICAgICIKKyIKK3wgICAgICJ3b3JsZCIKK3wgICAgICIKKyIKK3wgICAiPCNzZWxlY3Rpb24t
Zm9jdXM+d2Via2l0CisiCit8ICIKKyIKKworVW5kbyB5aWVsZHM6Cit8ICIKKyIKK3wgPHByZT4K
K3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPmhlbGxvCisKK3dvcmxkCisKKzwjc2VsZWN0aW9uLWZv
Y3VzPndlYmtpdAorIgorfCAiCisiCisKK0Zvcm1hdHRpbmcgYWxsIGJ1dCB0aGUgZmlyc3QgcGFy
YWdyYXBoIGJ5IGgzIHlpZWxkczoKK3wgIgorIgorfCA8cHJlPgorfCAgICJoZWxsbworIgorfCAg
IDxoMz4KK3wgICAgICIKKyIKK3wgICAgICJ3b3JsZCIKK3wgICAgICIKKyIKK3wgICAgICJ3ZWJr
aXQiCit8ICIKKyIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvZm9ybWF0
LWJsb2NrLW11bHRpcGxlLXBhcmFncmFwaHMtaW4tcHJlLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9mb3JtYXQtYmxvY2stbXVsdGlwbGUtcGFyYWdy
YXBocy1pbi1wcmUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvZm9ybWF0LWJsb2NrLW11bHRpcGxlLXBhcmFncmFwaHMtaW4tcHJlLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2Ny
aXB0PgorPGRpdiBpZD0idGVzdCIgY29udGVudGVkaXRhYmxlPgorPHByZT4KK2hlbGxvCisKK3dv
cmxkCisKK3dlYmtpdAorPC9wcmU+Cis8L2Rpdj4KKzxzY3JpcHQ+CisKK01hcmt1cC5kZXNjcmlw
dGlvbignVGhpcyB0ZXN0cyBlbnN1cmVzIGZvcm1hdEJsb2NrIHJlbW92ZXMgYSBwcmUgd2hlbiBm
b3JtYXR0aW5nIG11bHRpcGxlIHBhcmFncmFwaHMgaW5zaWRlIHRoZSBwcmUuJyk7CisKK3ZhciB0
ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKK3ZhciBvcmlnaW5hbCA9IHRl
c3QuaW5uZXJIVE1MOword2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKHRl
c3QpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2Zvcm1hdEJsb2NrJywgZmFsc2UsICdoMycpOwor
TWFya3VwLmR1bXAodGVzdCwgJ0Zvcm1hdHRpbmcgYWxsIHBhcmFncmFwaHMgYnkgaDMgeWllbGRz
Jyk7CisKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCd1bmRvJywgZmFsc2UsIG51bGwpOworTWFya3Vw
LmR1bXAodGVzdCwgJ1VuZG8geWllbGRzJyk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9z
aXRpb24odGVzdCwgMCk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdleHRlbmQnLCAn
Zm9yd2FyZCcsICdsaW5lJyk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdleHRlbmQn
LCAnZm9yd2FyZCcsICdsaW5lJyk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdleHRl
bmQnLCAnZm9yd2FyZCcsICdsaW5lJyk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdl
eHRlbmQnLCAnZm9yd2FyZCcsICdsaW5lJyk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnZm9ybWF0
QmxvY2snLCBmYWxzZSwgJ2gzJyk7CitNYXJrdXAuZHVtcCh0ZXN0LCAnRm9ybWF0dGluZyBhbGwg
YnV0IHRoZSBsYXN0IHBhcmFncmFwaCBieSBoMyB5aWVsZHMnKTsKKworZG9jdW1lbnQuZXhlY0Nv
bW1hbmQoJ3VuZG8nLCBmYWxzZSwgbnVsbCk7CitNYXJrdXAuZHVtcCh0ZXN0LCAnVW5kbyB5aWVs
ZHMnKTsKK3dpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbih0ZXN0LCAwKTsKK3dpbmRv
dy5nZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ21vdmUnLCAnZm9yd2FyZCcsICdsaW5lJyk7Cit3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdleHRlbmQnLCAnZm9yd2FyZCcsICdsaW5lJyk7Cit3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdleHRlbmQnLCAnZm9yd2FyZCcsICdsaW5lJyk7
Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdleHRlbmQnLCAnZm9yd2FyZCcsICdsaW5l
Jyk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdleHRlbmQnLCAnZm9yd2FyZCcsICds
aW5lJyk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnZm9ybWF0QmxvY2snLCBmYWxzZSwgJ2gzJyk7
CitNYXJrdXAuZHVtcCh0ZXN0LCAnRm9ybWF0dGluZyBhbGwgYnV0IHRoZSBmaXJzdCBwYXJhZ3Jh
cGggYnkgaDMgeWllbGRzJyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3MzA1NikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvaW5kZW50LXByZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDgg
KzQ2LDggQEAgZG9lcyBub3QgY3Jhc2guIgogfCAgICAgICAgICAgICAgICJsaXN0IHR3byIKIHwg
ICAgICAgICAgICAgICA8YnI+CiB8ICAgICAgICAgICAgICAgImxpc3QgdGhyZWUiCi18ICAgICAg
ICAgICAgICAgPGJyPgotfCAgICAgICAgICAgICAgICJsaXN0IGZvdXIiCit8ICAgICAgICAgICAg
ICJsaXN0IGZvdXIKKyIKIHwgICAgICAgIgogCiAiCg==
</data>
<flag name="review"
          id="66471"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>