<?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>65833</bug_id>
          
          <creation_ts>2011-08-07 15:54:45 -0700</creation_ts>
          <short_desc>Remove redundant inline styles from the pasted contents more aggressively</short_desc>
          <delta_ts>2011-08-08 12:15:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>65836</dependson>
    
    <dependson>65837</dependson>
          <blocked>34564</blocked>
          <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>sullivan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>447776</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-07 15:54:45 -0700</bug_when>
    <thetext>This is the first half of my patch for the bug 34564.  This patch will improve the code in ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline to more aggressively remove redundant style spans and reduce their attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447778</commentid>
    <comment_count>1</comment_count>
      <attachid>103188</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-07 16:09:55 -0700</bug_when>
    <thetext>Created attachment 103188
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447780</commentid>
    <comment_count>2</comment_count>
      <attachid>103188</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-07 17:20:35 -0700</bug_when>
    <thetext>Comment on attachment 103188
fixes the bug

Oops, it appears that I&apos;ve messed up a boolean expression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447807</commentid>
    <comment_count>3</comment_count>
      <attachid>103197</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-07 19:17:15 -0700</bug_when>
    <thetext>Created attachment 103197
Rebaselined 2 more tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447811</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-07 19:21:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=103197) [details]
&gt; Rebaselined 2 more tests

Unfortunately, we have to rebaseline 4 more tests after bugs 65836 and 65837 are fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447831</commentid>
    <comment_count>5</comment_count>
      <attachid>103198</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-07 21:34:48 -0700</bug_when>
    <thetext>Created attachment 103198
rebaselined 4 more tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448119</commentid>
    <comment_count>6</comment_count>
      <attachid>103198</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-08 11:09:43 -0700</bug_when>
    <thetext>Comment on attachment 103198
rebaselined 4 more tests

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

Looks fine, just had some questions and style nits.

&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:78
&gt; +    NamedNodeMap* map = element-&gt;attributes(true); // true for read-only

Nit: I have a slight preference for |bool readOnly = true;| and passing that in as a param, but the comment is fine too.

&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:88
&gt; +    return matchedAttributes &gt;= map-&gt;length();

Would == be sufficient?

&gt; Source/WebCore/editing/EditingStyle.cpp:894
&gt; +    if (!m_mutableStyle || !m_mutableStyle-&gt;length())

Nit: The !m_mutableStyle check seems to duplicated with the calling code.  Maybe just move the length() check to the caller and remove the checks in removePropertiesInElementDefaultStyle()?

&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:-482
&gt; -        // FIXME: &lt;rdar://problem/5371536&gt; Style rules that match pasted content can change it&apos;s appearance

Is this no longer true?

&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:483
&gt; +    for (RefPtr&lt;Node&gt; node = m_firstNodeInserted.get(); node &amp;&amp; node != pastEndNode; node = next) {

We now stop on pastEndNode.  Why didn&apos;t we do that before?  This seems more correct; does the new test test this change?

&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:512
&gt; +        if (node &amp;&amp; isStyleSpan(element)) {

It looks like node is always non-NULL here.  If so, it seems like you can get rid of |next| and put in as the third clause of the for loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448128</commentid>
    <comment_count>7</comment_count>
      <attachid>103198</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-08 11:23:29 -0700</bug_when>
    <thetext>Comment on attachment 103198
rebaselined 4 more tests

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

Thanks for the review.

&gt;&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:78
&gt;&gt; +    NamedNodeMap* map = element-&gt;attributes(true); // true for read-only
&gt; 
&gt; Nit: I have a slight preference for |bool readOnly = true;| and passing that in as a param, but the comment is fine too.

Okay, will do that.

&gt;&gt; Source/WebCore/editing/ApplyStyleCommand.cpp:88
&gt;&gt; +    return matchedAttributes &gt;= map-&gt;length();
&gt; 
&gt; Would == be sufficient?

I&apos;ll assert that matchedAttributes &lt;= map-&gt;length() so that I can use equality here.

&gt;&gt; Source/WebCore/editing/EditingStyle.cpp:894
&gt;&gt; +    if (!m_mutableStyle || !m_mutableStyle-&gt;length())
&gt; 
&gt; Nit: The !m_mutableStyle check seems to duplicated with the calling code.  Maybe just move the length() check to the caller and remove the checks in removePropertiesInElementDefaultStyle()?

This function is to become public and used in markup.cpp so I&apos;d like to keep these checks or at least !m_mutableStyle-&gt;length()

&gt;&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:-482
&gt;&gt; -        // FIXME: &lt;rdar://problem/5371536&gt; Style rules that match pasted content can change it&apos;s appearance
&gt; 
&gt; Is this no longer true?

Huh, I guess I should keep that comment.

&gt;&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:483
&gt;&gt; +    for (RefPtr&lt;Node&gt; node = m_firstNodeInserted.get(); node &amp;&amp; node != pastEndNode; node = next) {
&gt; 
&gt; We now stop on pastEndNode.  Why didn&apos;t we do that before?  This seems more correct; does the new test test this change?

We always did.  See lines 506-507 below that have been removed.  I&apos;m simply moving the ending condition here.

&gt;&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:512

&gt; 
&gt; It looks like node is always non-NULL here.  If so, it seems like you can get rid of |next| and put in as the third clause of the for loop.

No, node can be detached from the document (see removeNodePreservingChildren on line 506) in which case node-&gt; traverseNextNode() will be 0.  The only reason I check node is to make sure we don&apos;t dereference stale element pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448134</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-08 11:28:19 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 103198 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=103198&amp;action=review
&gt; &gt;&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:512
&gt; 
&gt; &gt; 
&gt; &gt; It looks like node is always non-NULL here.  If so, it seems like you can get rid of |next| and put in as the third clause of the for loop.
&gt; 
&gt; No, node can be detached from the document (see removeNodePreservingChildren on line 506) in which case node-&gt; traverseNextNode() will be 0.  The only reason I check node is to make sure we don&apos;t dereference stale element pointer.

I see.  That explains why we have |next|, but shouldn&apos;t the node always be non-NULL even when detached?  It&apos;s a refptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448135</commentid>
    <comment_count>9</comment_count>
      <attachid>103198</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-08 11:33:49 -0700</bug_when>
    <thetext>Comment on attachment 103198
rebaselined 4 more tests

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

&gt;&gt;&gt;&gt; Source/WebCore/editing/ReplaceSelectionCommand.cpp:512
&gt;&gt;&gt;&gt; +        if (node &amp;&amp; isStyleSpan(element)) {
&gt;&gt;&gt; 
&gt;&gt;&gt; It looks like node is always non-NULL here.  If so, it seems like you can get rid of |next| and put in as the third clause of the for loop.
&gt;&gt; 
&gt;&gt; 
&gt; 
&gt; I see.  That explains why we have |next|, but shouldn&apos;t the node always be non-NULL even when detached?  It&apos;s a refptr.

That&apos;s a good point actually.  Will remove the check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448151</commentid>
    <comment_count>10</comment_count>
      <attachid>103272</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-08 12:02:54 -0700</bug_when>
    <thetext>Created attachment 103272
Updated per review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448161</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-08 12:15:24 -0700</bug_when>
    <thetext>Committed r92620: &lt;http://trac.webkit.org/changeset/92620&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103188</attachid>
            <date>2011-08-07 16:09:55 -0700</date>
            <delta_ts>2011-08-07 17:20:35 -0700</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-65833-20110807160954.patch</filename>
            <type>text/plain</type>
            <size>17627</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNTc1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDgtMDcgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHJlZHVuZGFudCBpbmxp
bmUgc3R5bGVzIGZyb20gdGhlIHBhc3RlZCBjb250ZW50cyBtb3JlIGFnZ3Jlc3NpdmVseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4MzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHJlbW92ZVJl
ZHVuZGFudFN0eWxlc0FuZEtlZXBTdHlsZVNwYW5JbmxpbmUgbW9yZSBhZ2dyZXNzaXZlbHkgcmVt
b3ZlIHJlZHVuZGFudCBzdHlsZXMgYnkgcmVhbGl6aW5nIHRoYXQKKyAgICAgICAgd2hlbiBhbiBl
ZGl0aW5nIGluaGVyaXRhYmxlIHByb3BlcnR5IGluIGFuIGlubGluZSBzdHlsZSBkZWNsYXJhdGlv
biBvZiBhbiBlbGVtZW50IGNhbiBiZSBzYWZlbHkgcmVtb3ZlZAorICAgICAgICBpZiBpdCBpcyBw
cmVzZW50IGVpdGhlciBpbiBzdHlsZSBydWxlcyBvciBpbiBpdHMgYW5jZXN0b3IgYW5kIG5vdCBv
dmVycmlkZGVuIGJ5IHN0eWxlIHJ1bGVzIG9yIGRlZmF1bHQgc3R5bGUKKyAgICAgICAgb2YgdGhl
IGVsZW1lbnQuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgt
cmVkdW5kYW50LXN0eWxlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnBzZXVkb1N0eWxlUnVsZXNG
b3JFbGVtZW50KTogRG8gbm90IG1hdGNoIGF1dGhvciBzdHlsZSBzaGVldHMgaWYgQXV0aG9yQ1NT
UnVsZXMKKyAgICAgICAgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBydWxlcyB0byBpbmNsdWRlLiBU
aGlzIGlzIHVzZWQgaW4gRWRpdGluZ1N0eWxlOjpyZW1vdmVQcm9wZXJ0aWVzSW5FbGVtZW50RGVm
YXVsdFN0eWxlLgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNTdHlsZVNwYW5PclNwYW5XaXRoT25seVN0eWxlQXR0cmlidXRlKTog
QWRkZWQ7IHJldHVybnMgdHJ1ZSBpZiB0aGUgZWxlbWVudCBpcyBhIHN0eWxlIHNwYW4gb3IKKyAg
ICAgICAgc3BhbiBwb3NzaWJseSB3aXRoIGEgc3R5bGUgYXR0cmlidXRlLgorICAgICAgICAqIGVk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVtZW50
KTogVGFrZXMgcnVsZXNUb0luY2x1ZGUuCisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6
Om1lcmdlU3R5bGVGcm9tUnVsZXMpOiBDYWxscyBzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVt
ZW50IHdpdGggQXV0aG9yQ1NTUnVsZXMKKyAgICAgICAgfCBDcm9zc09yaWdpbkNTU1J1bGVzIHRv
IGtlZXAgdGhlIG9yaWdpbmFsIGJlaGF2aW9yLgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0
eWxlOjpyZW1vdmVTdHlsZUZyb21SdWxlc0FuZENvbnRleHQpOiBSZW5hbWVkIGZyb20gcmVtb3Zl
U3R5bGVGcm9tUnVsZXM7IHJlbW92ZXMgc3R5bGVzIHRoYXQKKyAgICAgICAgYXJlIHByZXNlbnQg
aW4gY29udGV4dCBhbmQgbm90IG92ZXJyaWRkZW4gYnkgbWF0Y2hlZCBydWxlcy4KKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6cmVtb3ZlUHJvcGVydGllc0luRWxlbWVudERlZmF1bHRT
dHlsZSk6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmg6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5kYW50U3R5bGVzQW5kS2VlcFN0
eWxlU3BhbklubGluZSk6IFNlZSB0aGUgZGVzY3JpcHRpb24gYWJvdmUuCisKIDIwMTEtMDgtMDcg
IE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIERpc3Ry
aWJ1dGlvbiBmaXggZm9yIEdUSysuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCShyZXZpc2lvbiA5MjU1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgUGFzc1Jl
ZlB0cjxDU1NSdWxlTGlzdD4gQ1NTU3R5bGVTZWxlY3RvcgogICAgICAgICB9CiAgICAgfQogCi0g
ICAgaWYgKG1fbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzKSB7CisgICAgaWYgKG1fbWF0Y2hBdXRo
b3JBbmRVc2VyU3R5bGVzICYmIChydWxlc1RvSW5jbHVkZSAmIEF1dGhvckNTU1J1bGVzKSkgewog
ICAgICAgICBtX2NoZWNrZXIubV9zYW1lT3JpZ2luT25seSA9ICEocnVsZXNUb0luY2x1ZGUgJiBD
cm9zc09yaWdpbkNTU1J1bGVzKTsKIAogICAgICAgICAvLyBDaGVjayB0aGUgcnVsZXMgaW4gYXV0
aG9yIHNoZWV0cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwCShyZXZpc2lvbiA5MjU1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCwyNCBAQCBib29s
IGlzU3R5bGVTcGFuKGNvbnN0IE5vZGUgKm5vZGUpCiAgICAgcmV0dXJuIGVsZW0tPmhhc0xvY2Fs
TmFtZShzcGFuQXR0cikgJiYgZWxlbS0+Z2V0QXR0cmlidXRlKGNsYXNzQXR0cikgPT0gc3R5bGVT
cGFuQ2xhc3NTdHJpbmcoKTsKIH0KIAorYm9vbCBpc1N0eWxlU3Bhbk9yU3BhbldpdGhPbmx5U3R5
bGVBdHRyaWJ1dGUoY29uc3QgRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWVsZW1lbnQg
fHwgIWVsZW1lbnQtPmhhc1RhZ05hbWUoc3BhblRhZykpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIE5hbWVkTm9kZU1hcCogbWFwID0gZWxlbWVudC0+YXR0cmlidXRlcyh0cnVlKTsgLy8g
dHJ1ZSBmb3IgcmVhZC1vbmx5CisgICAgaWYgKCFtYXAgfHwgIW1hcC0+aXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHVuc2lnbmVkIG1hdGNoZWRBdHRyaWJ1dGVzID0gMDsK
KyAgICBpZiAoZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0dHIpID09IHN0eWxlU3Bh
bkNsYXNzU3RyaW5nKCkpCisgICAgICAgIG1hdGNoZWRBdHRyaWJ1dGVzKys7CisgICAgaWYgKGVs
ZW1lbnQtPmhhc0F0dHJpYnV0ZShzdHlsZUF0dHIpKQorICAgICAgICBtYXRjaGVkQXR0cmlidXRl
cysrOworCisgICAgcmV0dXJuIG1hdGNoZWRBdHRyaWJ1dGVzID49IG1hcC0+bGVuZ3RoKCk7Cit9
CisKIHN0YXRpYyBib29sIGlzVW5zdHlsZWRTdHlsZVNwYW4oY29uc3QgTm9kZSogbm9kZSkKIHsK
ICAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzSFRNTEVsZW1lbnQoKSB8fCAhbm9kZS0+aGFzVGFn
TmFtZShzcGFuVGFnKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmgJKHJldmlzaW9uIDkyNTU0KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsNiArMTMwLDcgQEAgcHJpdmF0
ZToKIH07CiAKIGJvb2wgaXNTdHlsZVNwYW4oY29uc3QgTm9kZSopOworYm9vbCBpc1N0eWxlU3Bh
bk9yU3BhbldpdGhPbmx5U3R5bGVBdHRyaWJ1dGUoY29uc3QgRWxlbWVudCopOwogUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gY3JlYXRlU3R5bGVTcGFuRWxlbWVudChEb2N1bWVudCopOwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwCShyZXZpc2lvbiA5MjU1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Z1N0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODE4LDExICs4MTgsMTAgQEAgdm9pZCBFZGl0
aW5nU3R5bGU6Om1lcmdlU3R5bGUoQ1NTTXV0YWJsZQogICAgIH0KIH0KIAotc3RhdGljIFBhc3NS
ZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0Zv
ckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3N0YXRpYyBQYXNzUmVmUHRyPENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uPiBzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQq
IGVsZW1lbnQsIHVuc2lnbmVkIHJ1bGVzVG9JbmNsdWRlKQogewogICAgIFJlZlB0cjxDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGUgPSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6
Y3JlYXRlKCk7Ci0gICAgUmVmUHRyPENTU1J1bGVMaXN0PiBtYXRjaGVkUnVsZXMgPSBlbGVtZW50
LT5kb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCktPnN0eWxlUnVsZXNGb3JFbGVtZW50KGVsZW1l
bnQsCi0gICAgICAgIENTU1N0eWxlU2VsZWN0b3I6OkF1dGhvckNTU1J1bGVzIHwgQ1NTU3R5bGVT
ZWxlY3Rvcjo6Q3Jvc3NPcmlnaW5DU1NSdWxlcyk7CisgICAgUmVmUHRyPENTU1J1bGVMaXN0PiBt
YXRjaGVkUnVsZXMgPSBlbGVtZW50LT5kb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCktPnN0eWxl
UnVsZXNGb3JFbGVtZW50KGVsZW1lbnQsIHJ1bGVzVG9JbmNsdWRlKTsKICAgICBpZiAobWF0Y2hl
ZFJ1bGVzKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtYXRjaGVkUnVsZXMt
Pmxlbmd0aCgpOyBpKyspIHsKICAgICAgICAgICAgIGlmIChtYXRjaGVkUnVsZXMtPml0ZW0oaSkt
PnR5cGUoKSA9PSBDU1NSdWxlOjpTVFlMRV9SVUxFKSB7CkBAIC04MzcsNyArODM2LDggQEAgc3Rh
dGljIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYQogCiB2b2lkIEVkaXRpbmdTdHls
ZTo6bWVyZ2VTdHlsZUZyb21SdWxlcyhTdHlsZWRFbGVtZW50KiBlbGVtZW50KQogewotICAgIFJl
ZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzID0g
c3R5bGVGcm9tTWF0Y2hlZFJ1bGVzRm9yRWxlbWVudChlbGVtZW50KTsKKyAgICBSZWZQdHI8Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlRnJvbU1hdGNoZWRSdWxlcyA9IHN0eWxlRnJv
bU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwKKyAgICAgICAgQ1NTU3R5bGVTZWxlY3Rv
cjo6QXV0aG9yQ1NTUnVsZXMgfCBDU1NTdHlsZVNlbGVjdG9yOjpDcm9zc09yaWdpbkNTU1J1bGVz
KTsKICAgICAvLyBTdHlsZXMgZnJvbSB0aGUgaW5saW5lIHN0eWxlIGRlY2xhcmF0aW9uLCBoZWxk
IGluIHRoZSB2YXJpYWJsZSAic3R5bGUiLCB0YWtlIHByZWNlZGVuY2UgCiAgICAgLy8gb3ZlciB0
aG9zZSBmcm9tIG1hdGNoZWQgcnVsZXMuCiAgICAgaWYgKG1fbXV0YWJsZVN0eWxlKQpAQCAtODcw
LDE3ICs4NzAsNDEgQEAgdm9pZCBFZGl0aW5nU3R5bGU6Om1lcmdlU3R5bGVGcm9tUnVsZXNGbwog
ICAgIG1fbXV0YWJsZVN0eWxlLT5tZXJnZShmcm9tQ29tcHV0ZWRTdHlsZS5nZXQoKSk7CiB9CiAK
LXZvaWQgRWRpdGluZ1N0eWxlOjpyZW1vdmVTdHlsZUZyb21SdWxlcyhTdHlsZWRFbGVtZW50KiBl
bGVtZW50KQordm9pZCBFZGl0aW5nU3R5bGU6OnJlbW92ZVN0eWxlRnJvbVJ1bGVzQW5kQ29udGV4
dChTdHlsZWRFbGVtZW50KiBlbGVtZW50LCBOb2RlKiBjb250ZXh0KQogeworICAgIEFTU0VSVChl
bGVtZW50KTsKICAgICBpZiAoIW1fbXV0YWJsZVN0eWxlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlRnJvbU1hdGNoZWRSdWxl
cyA9IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCk7Ci0gICAgaWYgKCFz
dHlsZUZyb21NYXRjaGVkUnVsZXMpCisgICAgLy8gMS4gUmVtb3ZlIHN0eWxlIGZyb20gbWF0Y2hl
ZCBydWxlcyBiZWNhdXNlIHN0eWxlIHJlbWFpbiB3aXRob3V0IHJlcGVhdGluZyBpdCBpbiBpbmxp
bmUgc3R5bGUgZGVjbGFyYXRpb24KKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24+IHN0eWxlRnJvbU1hdGNoZWRSdWxlcyA9IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1l
bnQoZWxlbWVudCwgQ1NTU3R5bGVTZWxlY3Rvcjo6QWxsQnV0RW1wdHlDU1NSdWxlcyk7CisgICAg
aWYgKHN0eWxlRnJvbU1hdGNoZWRSdWxlcyAmJiBzdHlsZUZyb21NYXRjaGVkUnVsZXMtPmxlbmd0
aCgpKQorICAgICAgICBtX211dGFibGVTdHlsZSA9IGdldFByb3BlcnRpZXNOb3RJbihtX211dGFi
bGVTdHlsZS5nZXQoKSwgc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzLmdldCgpKTsKKworICAgIC8vIDIu
IFJlbW92ZSBzdHlsZSBwcmVzZW50IGluIGNvbnRleHQgYW5kIG5vdCBvdmVycmlkZW4gYnkgbWF0
Y2hlZCBydWxlcy4KKyAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBjb21wdXRlZFN0eWxlID0gRWRp
dGluZ1N0eWxlOjpjcmVhdGUoY29udGV4dCwgRWRpdGluZ0luaGVyaXRhYmxlUHJvcGVydGllc0Fu
ZEJhY2tncm91bmRDb2xvckluRWZmZWN0KTsKKyAgICBpZiAoY29tcHV0ZWRTdHlsZS0+bV9tdXRh
YmxlU3R5bGUpIHsKKyAgICAgICAgY29tcHV0ZWRTdHlsZS0+cmVtb3ZlUHJvcGVydGllc0luRWxl
bWVudERlZmF1bHRTdHlsZShlbGVtZW50KTsKKyAgICAgICAgbV9tdXRhYmxlU3R5bGUgPSBnZXRQ
cm9wZXJ0aWVzTm90SW4obV9tdXRhYmxlU3R5bGUuZ2V0KCksIGNvbXB1dGVkU3R5bGUtPm1fbXV0
YWJsZVN0eWxlLmdldCgpKTsKKyAgICB9Cit9CisKK3ZvaWQgRWRpdGluZ1N0eWxlOjpyZW1vdmVQ
cm9wZXJ0aWVzSW5FbGVtZW50RGVmYXVsdFN0eWxlKFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQpCit7
CisgICAgaWYgKCFtX211dGFibGVTdHlsZSB8fCAhbV9tdXRhYmxlU3R5bGUtPmxlbmd0aCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX211dGFibGVTdHlsZSA9IGdldFByb3BlcnRpZXNOb3RJ
bihtX211dGFibGVTdHlsZS5nZXQoKSwgc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzLmdldCgpKTsKKyAg
ICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IGRlZmF1bHRTdHlsZSA9IHN0eWxl
RnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgQ1NTU3R5bGVTZWxlY3Rvcjo6VUFB
bmRVc2VyQ1NTUnVsZXMpOworCisgICAgVmVjdG9yPGludD4gcHJvcGVydGllc1RvUmVtb3ZlKGRl
ZmF1bHRTdHlsZS0+bGVuZ3RoKCkpOworICAgIHNpemVfdCBpID0gMDsKKyAgICBDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gZGVmYXVsdFN0eWxlLT5lbmQo
KTsKKyAgICBmb3IgKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjb25zdF9pdGVyYXRvciBp
dCA9IGRlZmF1bHRTdHlsZS0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0LCArK2kpCisgICAgICAg
IHByb3BlcnRpZXNUb1JlbW92ZVtpXSA9IGl0LT5pZCgpOworCisgICAgbV9tdXRhYmxlU3R5bGUt
PnJlbW92ZVByb3BlcnRpZXNJblNldChwcm9wZXJ0aWVzVG9SZW1vdmUuZGF0YSgpLCBwcm9wZXJ0
aWVzVG9SZW1vdmUuc2l6ZSgpKTsKIH0KKyAgICAKIAogc3RhdGljIHZvaWQgcmVjb25jaWxlVGV4
dERlY29yYXRpb25Qcm9wZXJ0aWVzKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkK
IHsgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgJKHJldmlzaW9u
IDkyNTU0KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1lcmdlSW5saW5l
U3R5bGVPZkVsZW1lbnQoU3R5bGVkRWxlbWVudCopOwogICAgIHZvaWQgbWVyZ2VTdHlsZUZyb21S
dWxlcyhTdHlsZWRFbGVtZW50Kik7CiAgICAgdm9pZCBtZXJnZVN0eWxlRnJvbVJ1bGVzRm9yU2Vy
aWFsaXphdGlvbihTdHlsZWRFbGVtZW50Kik7Ci0gICAgdm9pZCByZW1vdmVTdHlsZUZyb21SdWxl
cyhTdHlsZWRFbGVtZW50Kik7CisgICAgdm9pZCByZW1vdmVTdHlsZUZyb21SdWxlc0FuZENvbnRl
eHQoU3R5bGVkRWxlbWVudCosIE5vZGUqIGNvbnRleHQpOwogCiAgICAgZmxvYXQgZm9udFNpemVE
ZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udFNpemVEZWx0YTsgfQogICAgIGJvb2wgaGFzRm9u
dFNpemVEZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udFNpemVEZWx0YSAhPSBOb0ZvbnREZWx0
YTsgfQpAQCAtMTQxLDYgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBleHRyYWN0Rm9udFNp
emVEZWx0YSgpOwogICAgIGJvb2wgY29uZmxpY3RzV2l0aElubGluZVN0eWxlT2ZFbGVtZW50KFN0
eWxlZEVsZW1lbnQqLCBFZGl0aW5nU3R5bGUqIGV4dHJhY3RlZFN0eWxlLCBWZWN0b3I8Q1NTUHJv
cGVydHlJRD4qIGNvbmZsaWN0aW5nUHJvcGVydGllcykgY29uc3Q7CiAgICAgdm9pZCBtZXJnZVN0
eWxlKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKik7CisgICAgdm9pZCByZW1vdmVQcm9wZXJ0
aWVzSW5FbGVtZW50RGVmYXVsdFN0eWxlKFN0eWxlZEVsZW1lbnQqKTsKIAogICAgIFJlZlB0cjxD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gbV9tdXRhYmxlU3R5bGU7CiAgICAgYm9vbCBtX3No
b3VsZFVzZUZpeGVkRGVmYXVsdEZvbnRTaXplOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAJKHJldmlzaW9uIDkyNTU0KQor
KysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ3OCwzNCArNDc4LDUzIEBAIGJvb2wgUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6OnNob3VsZE1lcmcKIC8vIGEgZGl2IGluc2VydGVkIGludG8gYSBkb2N1bWVudCB3aXRo
IGRpdiB7IGRpc3BsYXk6aW5saW5lOyB9Lgogdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6
cmVtb3ZlUmVkdW5kYW50U3R5bGVzQW5kS2VlcFN0eWxlU3BhbklubGluZSgpCiB7Ci0gICAgZm9y
IChSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fZmlyc3ROb2RlSW5zZXJ0ZWQuZ2V0KCk7IG5vZGU7IG5v
ZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKCkpIHsKLSAgICAgICAgLy8gRklYTUU6IDxyZGFy
Oi8vcHJvYmxlbS81MzcxNTM2PiBTdHlsZSBydWxlcyB0aGF0IG1hdGNoIHBhc3RlZCBjb250ZW50
IGNhbiBjaGFuZ2UgaXQncyBhcHBlYXJhbmNlCi0gICAgICAgIGlmIChpc1N0eWxlU3Bhbihub2Rl
LmdldCgpKSkgewotICAgICAgICAgICAgSFRNTEVsZW1lbnQqIGUgPSB0b0hUTUxFbGVtZW50KG5v
ZGUuZ2V0KCkpOworICAgIFJlZlB0cjxOb2RlPiBwYXN0RW5kTm9kZSA9IG1fbGFzdExlYWZJbnNl
cnRlZCA/IG1fbGFzdExlYWZJbnNlcnRlZC0+dHJhdmVyc2VOZXh0Tm9kZSgpIDogMDsKKyAgICBS
ZWZQdHI8Tm9kZT4gbmV4dDsKKyAgICBmb3IgKFJlZlB0cjxOb2RlPiBub2RlID0gbV9maXJzdE5v
ZGVJbnNlcnRlZC5nZXQoKTsgbm9kZSAmJiBub2RlICE9IHBhc3RFbmROb2RlOyBub2RlID0gbmV4
dCkgeworICAgICAgICBuZXh0ID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSgpOworICAgICAgICBp
ZiAoIW5vZGUtPmlzU3R5bGVkRWxlbWVudCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgU3R5bGVkRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQq
Pihub2RlLmdldCgpKTsKKworICAgICAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogaW5s
aW5lU3R5bGUgPSBlbGVtZW50LT5pbmxpbmVTdHlsZURlY2woKTsKKyAgICAgICAgUmVmUHRyPEVk
aXRpbmdTdHlsZT4gbmV3SW5saW5lU3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShpbmxpbmVT
dHlsZSk7CisgICAgICAgIGlmIChpbmxpbmVTdHlsZSkgeworICAgICAgICAgICAgQ29udGFpbmVy
Tm9kZSogY29udGV4dCA9IGVsZW1lbnQtPnBhcmVudE5vZGUoKTsKKworICAgICAgICAgICAgLy8g
SWYgTWFpbCB3cmFwcyB0aGUgZnJhZ21lbnQgd2l0aCBhIFBhc3RlIGFzIFF1b3RhdGlvbiBibG9j
a3F1b3RlLCBvciBpZiB5b3UncmUgcGFzdGluZyBpbnRvIGEgcXVvdGVkIHJlZ2lvbiwKKyAgICAg
ICAgICAgIC8vIHN0eWxlcyBmcm9tIGJsb2NrcXVvdGVOb2RlIGFyZSBhbGxvd2VkIHRvIG92ZXJy
aWRlIHRob3NlIGZyb20gdGhlIHNvdXJjZSBkb2N1bWVudCwgc2VlIDxyZGFyOi8vcHJvYmxlbS80
OTMwOTg2PiBhbmQgPHJkYXI6Ly9wcm9ibGVtLzUwODkzMjc+LgorICAgICAgICAgICAgTm9kZSog
YmxvY2txdW90ZU5vZGUgPSBpc01haWxQYXN0ZUFzUXVvdGF0aW9uTm9kZShjb250ZXh0KSA/IGNv
bnRleHQgOiBlbmNsb3NpbmdOb2RlT2ZUeXBlKGZpcnN0UG9zaXRpb25Jbk5vZGUoY29udGV4dCks
IGlzTWFpbEJsb2NrcXVvdGUsIENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKKyAgICAgICAgICAg
IGlmIChibG9ja3F1b3RlTm9kZSkKKyAgICAgICAgICAgICAgICBuZXdJbmxpbmVTdHlsZS0+cmVt
b3ZlU3R5bGVGcm9tUnVsZXNBbmRDb250ZXh0KGVsZW1lbnQsIGRvY3VtZW50KCktPmRvY3VtZW50
RWxlbWVudCgpKTsKKworICAgICAgICAgICAgbmV3SW5saW5lU3R5bGUtPnJlbW92ZVN0eWxlRnJv
bVJ1bGVzQW5kQ29udGV4dChlbGVtZW50LCBjb250ZXh0KTsKKyAgICAgICAgfQorCisgICAgICAg
IGlmICghaW5saW5lU3R5bGUgfHwgbmV3SW5saW5lU3R5bGUtPmlzRW1wdHkoKSkgeworICAgICAg
ICAgICAgaWYgKGlzU3R5bGVTcGFuT3JTcGFuV2l0aE9ubHlTdHlsZUF0dHJpYnV0ZShlbGVtZW50
KSkKKyAgICAgICAgICAgICAgICByZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKGVsZW1lbnQp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlbW92ZU5vZGVBdHRyaWJ1dGUo
ZWxlbWVudCwgc3R5bGVBdHRyKTsKKyAgICAgICAgfSBlbHNlIGlmIChuZXdJbmxpbmVTdHlsZS0+
c3R5bGUoKS0+bGVuZ3RoKCkgIT0gaW5saW5lU3R5bGUtPmxlbmd0aCgpKQorICAgICAgICAgICAg
c2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZUF0dHIsIG5ld0lubGluZVN0eWxlLT5zdHls
ZSgpLT5jc3NUZXh0KCkpOworCisgICAgICAgIGlmIChub2RlICYmIGlzU3R5bGVTcGFuKGVsZW1l
bnQpKSB7CisgICAgICAgICAgICBpZiAoIWVsZW1lbnQtPmZpcnN0Q2hpbGQoKSkgeworICAgICAg
ICAgICAgICAgIHJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oZWxlbWVudCk7CisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBUaGVyZSBh
cmUgb3RoZXIgc3R5bGVzIHRoYXQgc3R5bGUgcnVsZXMgY2FuIGdpdmUgdG8gc3R5bGUgc3BhbnMs
CiAgICAgICAgICAgICAvLyBidXQgdGhlc2UgYXJlIHRoZSB0d28gaW1wb3J0YW50IG9uZXMgYmVj
YXVzZSB0aGV5J2xsIHByZXZlbnQKICAgICAgICAgICAgIC8vIGluc2VydGVkIGNvbnRlbnQgZnJv
bSBhcHBlYXJpbmcgaW4gdGhlIHJpZ2h0IHBhcmFncmFwaC4KICAgICAgICAgICAgIC8vIEZJWE1F
OiBIeWF0dCBpcyBjb25jZXJuZWQgdGhhdCBzZWxlY3RpdmVseSB1c2luZyBkaXNwbGF5OmlubGlu
ZSB3aWxsIGdpdmUgaW5jb25zaXN0ZW50CiAgICAgICAgICAgICAvLyByZXN1bHRzLiBXZSBhbHJl
YWR5IGtub3cgb25lIGlzc3VlIGJlY2F1c2UgdGQgZWxlbWVudHMgaWdub3JlIHRoZWlyIGRpc3Bs
YXkgcHJvcGVydHkKICAgICAgICAgICAgIC8vIGluIHF1aXJrcyBtb2RlICh3aGljaCBNYWlsLmFw
cCBpcyBhbHdheXMgaW4pLiBXZSBzaG91bGQgbG9vayBmb3IgYW4gYWx0ZXJuYXRpdmUuCi0gICAg
ICAgICAgICBpZiAoaXNCbG9jayhlKSkKLSAgICAgICAgICAgICAgICBlLT5nZXRJbmxpbmVTdHls
ZURlY2woKS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBDU1NWYWx1ZUlubGluZSk7
Ci0gICAgICAgICAgICBpZiAoZS0+cmVuZGVyZXIoKSAmJiBlLT5yZW5kZXJlcigpLT5zdHlsZSgp
LT5pc0Zsb2F0aW5nKCkpCi0gICAgICAgICAgICAgICAgZS0+Z2V0SW5saW5lU3R5bGVEZWNsKCkt
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5RmxvYXQsIENTU1ZhbHVlTm9uZSk7Ci0gICAgICAgIH0g
ZWxzZSBpZiAobm9kZS0+aXNTdHlsZWRFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIFN0eWxlZEVs
ZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4obm9kZS5nZXQoKSk7
Ci0gICAgICAgICAgICBpZiAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIGlubGluZVN0eWxl
ID0gZWxlbWVudC0+aW5saW5lU3R5bGVEZWNsKCkpIHsKLSAgICAgICAgICAgICAgICBSZWZQdHI8
RWRpdGluZ1N0eWxlPiBuZXdJbmxpbmVTdHlsZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKGlubGlu
ZVN0eWxlKTsKLSAgICAgICAgICAgICAgICBuZXdJbmxpbmVTdHlsZS0+cmVtb3ZlU3R5bGVGcm9t
UnVsZXMoZWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFuZXdJbmxpbmVTdHlsZS0+c3R5
bGUoKSB8fCAhbmV3SW5saW5lU3R5bGUtPnN0eWxlKCktPmxlbmd0aCgpKQotICAgICAgICAgICAg
ICAgICAgICByZW1vdmVOb2RlQXR0cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0cik7Ci0gICAgICAg
ICAgICAgICAgZWxzZSBpZiAobmV3SW5saW5lU3R5bGUtPnN0eWxlKCktPmxlbmd0aCgpIDwgaW5s
aW5lU3R5bGUtPmxlbmd0aCgpKQotICAgICAgICAgICAgICAgICAgICBzZXROb2RlQXR0cmlidXRl
KGVsZW1lbnQsIHN0eWxlQXR0ciwgbmV3SW5saW5lU3R5bGUtPnN0eWxlKCktPmNzc1RleHQoKSk7
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc0Js
b2NrKGVsZW1lbnQpKQorICAgICAgICAgICAgICAgIGVsZW1lbnQtPmdldElubGluZVN0eWxlRGVj
bCgpLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIENTU1ZhbHVlSW5saW5lKTsKKyAg
ICAgICAgICAgIGlmIChlbGVtZW50LT5yZW5kZXJlcigpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCkt
PnN0eWxlKCktPmlzRmxvYXRpbmcoKSkKKyAgICAgICAgICAgICAgICBlbGVtZW50LT5nZXRJbmxp
bmVTdHlsZURlY2woKS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGbG9hdCwgQ1NTVmFsdWVOb25l
KTsKICAgICAgICAgfQotCi0gICAgICAgIGlmIChub2RlID09IG1fbGFzdExlYWZJbnNlcnRlZCkK
LSAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTI1NzUp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBA
QAorMjAxMS0wOC0wNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZW1vdmUgcmVkdW5kYW50IGlubGluZSBzdHlsZXMgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRz
IG1vcmUgYWdncmVzc2l2ZWx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NTgzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGVkIGEgdGVzdCB0byBwYXN0ZSBjb250ZW50cyB3aXRoIG1hbnkgcmVkdW5k
YW50IHN0eWxlcy4gV2ViS2l0IHNob3VsZCByZW1vdmUgYXMgbXVjaCBzdHlsZSBzcGFucyBhcyBw
b3NzaWJsZQorICAgICAgICAoYWxsIG9mIHRoaXMgaW4gdGhpcyBjYXNlKS4KKworICAgICAgICAq
IGVkaXRpbmcvcGFzdGVib2FyZC80OTMwOTg2LTItZXhwZWN0ZWQudHh0OiBzdHlsZSBhdHRyaWJ1
dGUgbm93IGhhcyBhIHRyYWlsaW5nIHNwYWNlLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2Fy
ZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS5odG1sOiBB
ZGRlZC4KKwogMjAxMS0wOC0wNyAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW1F0XSBzdmcvem9vbS9wYWdlL3pvb20tc3ZnLXRocm91Z2gtKiByZXN1bHRz
IGRpdmVyZ2luZyBiZXR3ZWVuIGJvdHMKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC80OTMwOTg2LTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC80OTMwOTg2LTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5MjU1NCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC80OTMwOTg2LTItZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEsMiBAQAogVGhpcyB0ZXN0cyB0byBtYWtlIHN1cmUg
dGhhdCBjb250ZW50IHRoYXQgaXMgY29sb3JlZCBieSB0aGUgdXNlciBpcyBwYXN0ZWQgd2l0aCB0
aGF0IGNvbG9yIGR1cmluZyBhIFBhc3RlIGFzIFF1b3RhdGlvbi4KLTxibG9ja3F1b3RlPjxzcGFu
IGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBzdHlsZT0iY29sb3I6IHJlZDsiPlRoaXMgdGV4dCBz
aG91bGQgYmUgcmVkIChpdCBzaG91bGQgYmUgd3JhcHBlZCBpbiBhIHN0eWxlIHNwYW4pLjwvc3Bh
bj48L2Jsb2NrcXVvdGU+Cis8YmxvY2txdW90ZT48c3BhbiBjbGFzcz0iQXBwbGUtc3R5bGUtc3Bh
biIgc3R5bGU9ImNvbG9yOiByZWQ7ICI+VGhpcyB0ZXh0IHNob3VsZCBiZSByZWQgKGl0IHNob3Vs
ZCBiZSB3cmFwcGVkIGluIGEgc3R5bGUgc3BhbikuPC9zcGFuPjwvYmxvY2txdW90ZT4KSW5kZXg6
IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHls
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL3Bhc3RlLXdpdGgtcmVkdW5kYW50LXN0eWxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1z
dHlsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVz
dHMgcGFzdGluZyBjb250ZW50IHdpdGggcmVkdW5kYW50IGlubGluZSBzdHlsZS4KK1lvdSBzaG91
bGQgbm90IHNlZSBhbnkgc3R5bGUgYXR0cmlidXRlcyBleGNlcHQgb25lIG9uIHRoZSBiIGVsZW1l
bnQgYW5kIHRoZXJlIHNob3VsZCBiZSBubyBzcGFucy4KK3wgPGI+Cit8ICAgc3R5bGU9ImZvbnQt
c3R5bGU6IGl0YWxpYzsiCit8ICAgPGVtPgorfCAgICAgImhlbGxvIHdvcmxkIgorfCAgIDxicj4K
K3wgICAiV2ViS2l0IgorfCAgIDxicj4KK3wgICA8ZW0+Cit8ICAgICAicm9ja3M8I3NlbGVjdGlv
bi1jYXJldD4iCit8ICAgPGJyPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L3Bhc3RlLXdpdGgtcmVkdW5kYW50LXN0eWxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgtcmVkdW5kYW50LXN0eWxlLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1y
ZWR1bmRhbnQtc3R5bGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorZW0geyB0ZXh0LWRlY29yYXRpb246
IHVuZGVybGluZTsgZm9udC1zdHlsZTogbm9uZTsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0idGVzdCIgY29udGVudGVkaXRhYmxlPjxiIHN0eWxlPSJmb250LXN0eWxlOiBp
dGFsaWM7Ij48YnI+PC9iPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1w
LWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdCcpLmZvY3VzKCk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0SFRNTCcs
IGZhbHNlLAorICAgICc8ZW0gc3R5bGU9ImZvbnQtc3R5bGU6IG5vbmU7IHRleHQtZGVjb3JhdGlv
bjogdW5kZXJsaW5lOyBmb250LXdlaWdodDogYm9sZDsiPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxh
Y2s7Ij5oZWxsbyB3b3JsZDwvc3Bhbj48L2VtPjxicj4nCisgICAgKyAnPHNwYW4gc3R5bGU9ImZv
bnQtd2VpZ2h0OiBib2xkOyI+PHNwYW4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJm
b250LXdlaWdodDogYm9sZDsiPldlYktpdDwvc3Bhbj48L3NwYW4+PGJyPicKKyAgICArICc8ZW0+
PHNwYW4gc3R5bGU9ImZvbnQtc3R5bGU6IGl0YWxpYzsiPnJvY2tzPC9zcGFuPjwvZW0+Jyk7CisK
K01hcmt1cC5kZXNjcmlwdGlvbignVGhpcyB0ZXN0cyBwYXN0aW5nIGNvbnRlbnQgd2l0aCByZWR1
bmRhbnQgaW5saW5lIHN0eWxlLlxuJworICAgICsgJ1lvdSBzaG91bGQgbm90IHNlZSBhbnkgc3R5
bGUgYXR0cmlidXRlcyBleGNlcHQgb25lIG9uIHRoZSBiIGVsZW1lbnQgYW5kIHRoZXJlIHNob3Vs
ZCBiZSBubyBzcGFucy4nKTsKK01hcmt1cC5kdW1wKCd0ZXN0Jyk7CisKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103197</attachid>
            <date>2011-08-07 19:17:15 -0700</date>
            <delta_ts>2011-08-07 21:34:43 -0700</delta_ts>
            <desc>Rebaselined 2 more tests</desc>
            <filename>bug-65833-20110807191714.patch</filename>
            <type>text/plain</type>
            <size>19236</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNTc1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDgtMDcgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHJlZHVuZGFudCBpbmxp
bmUgc3R5bGVzIGZyb20gdGhlIHBhc3RlZCBjb250ZW50cyBtb3JlIGFnZ3Jlc3NpdmVseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4MzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHJlbW92ZVJl
ZHVuZGFudFN0eWxlc0FuZEtlZXBTdHlsZVNwYW5JbmxpbmUgbW9yZSBhZ2dyZXNzaXZlbHkgcmVt
b3ZlIHJlZHVuZGFudCBzdHlsZXMgYnkgcmVhbGl6aW5nIHRoYXQKKyAgICAgICAgd2hlbiBhbiBl
ZGl0aW5nIGluaGVyaXRhYmxlIHByb3BlcnR5IGluIGFuIGlubGluZSBzdHlsZSBkZWNsYXJhdGlv
biBvZiBhbiBlbGVtZW50IGNhbiBiZSBzYWZlbHkgcmVtb3ZlZAorICAgICAgICBpZiBpdCBpcyBw
cmVzZW50IGVpdGhlciBpbiBzdHlsZSBydWxlcyBvciBpbiBpdHMgYW5jZXN0b3IgYW5kIG5vdCBv
dmVycmlkZGVuIGJ5IHN0eWxlIHJ1bGVzIG9yIGRlZmF1bHQgc3R5bGUKKyAgICAgICAgb2YgdGhl
IGVsZW1lbnQuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgt
cmVkdW5kYW50LXN0eWxlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnBzZXVkb1N0eWxlUnVsZXNG
b3JFbGVtZW50KTogRG8gbm90IG1hdGNoIGF1dGhvciBzdHlsZSBzaGVldHMgaWYgQXV0aG9yQ1NT
UnVsZXMKKyAgICAgICAgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBydWxlcyB0byBpbmNsdWRlLiBU
aGlzIGlzIHVzZWQgaW4gRWRpdGluZ1N0eWxlOjpyZW1vdmVQcm9wZXJ0aWVzSW5FbGVtZW50RGVm
YXVsdFN0eWxlLgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNTdHlsZVNwYW5PclNwYW5XaXRoT25seVN0eWxlQXR0cmlidXRlKTog
QWRkZWQ7IHJldHVybnMgdHJ1ZSBpZiB0aGUgZWxlbWVudCBpcyBhIHN0eWxlIHNwYW4gb3IKKyAg
ICAgICAgc3BhbiBwb3NzaWJseSB3aXRoIGEgc3R5bGUgYXR0cmlidXRlLgorICAgICAgICAqIGVk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVtZW50
KTogVGFrZXMgcnVsZXNUb0luY2x1ZGUuCisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6
Om1lcmdlU3R5bGVGcm9tUnVsZXMpOiBDYWxscyBzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVt
ZW50IHdpdGggQXV0aG9yQ1NTUnVsZXMKKyAgICAgICAgfCBDcm9zc09yaWdpbkNTU1J1bGVzIHRv
IGtlZXAgdGhlIG9yaWdpbmFsIGJlaGF2aW9yLgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0
eWxlOjpyZW1vdmVTdHlsZUZyb21SdWxlc0FuZENvbnRleHQpOiBSZW5hbWVkIGZyb20gcmVtb3Zl
U3R5bGVGcm9tUnVsZXM7IHJlbW92ZXMgc3R5bGVzIHRoYXQKKyAgICAgICAgYXJlIHByZXNlbnQg
aW4gY29udGV4dCBhbmQgbm90IG92ZXJyaWRkZW4gYnkgbWF0Y2hlZCBydWxlcy4KKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6cmVtb3ZlUHJvcGVydGllc0luRWxlbWVudERlZmF1bHRT
dHlsZSk6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmg6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5kYW50U3R5bGVzQW5kS2VlcFN0
eWxlU3BhbklubGluZSk6IFNlZSB0aGUgZGVzY3JpcHRpb24gYWJvdmUuCisKIDIwMTEtMDgtMDcg
IE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIERpc3Ry
aWJ1dGlvbiBmaXggZm9yIEdUSysuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCShyZXZpc2lvbiA5MjU1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgUGFzc1Jl
ZlB0cjxDU1NSdWxlTGlzdD4gQ1NTU3R5bGVTZWxlY3RvcgogICAgICAgICB9CiAgICAgfQogCi0g
ICAgaWYgKG1fbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzKSB7CisgICAgaWYgKG1fbWF0Y2hBdXRo
b3JBbmRVc2VyU3R5bGVzICYmIChydWxlc1RvSW5jbHVkZSAmIEF1dGhvckNTU1J1bGVzKSkgewog
ICAgICAgICBtX2NoZWNrZXIubV9zYW1lT3JpZ2luT25seSA9ICEocnVsZXNUb0luY2x1ZGUgJiBD
cm9zc09yaWdpbkNTU1J1bGVzKTsKIAogICAgICAgICAvLyBDaGVjayB0aGUgcnVsZXMgaW4gYXV0
aG9yIHNoZWV0cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwCShyZXZpc2lvbiA5MjU1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCwyNCBAQCBib29s
IGlzU3R5bGVTcGFuKGNvbnN0IE5vZGUgKm5vZGUpCiAgICAgcmV0dXJuIGVsZW0tPmhhc0xvY2Fs
TmFtZShzcGFuQXR0cikgJiYgZWxlbS0+Z2V0QXR0cmlidXRlKGNsYXNzQXR0cikgPT0gc3R5bGVT
cGFuQ2xhc3NTdHJpbmcoKTsKIH0KIAorYm9vbCBpc1N0eWxlU3Bhbk9yU3BhbldpdGhPbmx5U3R5
bGVBdHRyaWJ1dGUoY29uc3QgRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWVsZW1lbnQg
fHwgIWVsZW1lbnQtPmhhc1RhZ05hbWUoc3BhblRhZykpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIE5hbWVkTm9kZU1hcCogbWFwID0gZWxlbWVudC0+YXR0cmlidXRlcyh0cnVlKTsgLy8g
dHJ1ZSBmb3IgcmVhZC1vbmx5CisgICAgaWYgKCFtYXAgfHwgbWFwLT5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgdW5zaWduZWQgbWF0Y2hlZEF0dHJpYnV0ZXMgPSAwOwor
ICAgIGlmIChlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNzQXR0cikgPT0gc3R5bGVTcGFu
Q2xhc3NTdHJpbmcoKSkKKyAgICAgICAgbWF0Y2hlZEF0dHJpYnV0ZXMrKzsKKyAgICBpZiAoZWxl
bWVudC0+aGFzQXR0cmlidXRlKHN0eWxlQXR0cikpCisgICAgICAgIG1hdGNoZWRBdHRyaWJ1dGVz
Kys7CisKKyAgICByZXR1cm4gbWF0Y2hlZEF0dHJpYnV0ZXMgPj0gbWFwLT5sZW5ndGgoKTsKK30K
Kwogc3RhdGljIGJvb2wgaXNVbnN0eWxlZFN0eWxlU3Bhbihjb25zdCBOb2RlKiBub2RlKQogewog
ICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNIVE1MRWxlbWVudCgpIHx8ICFub2RlLT5oYXNUYWdO
YW1lKHNwYW5UYWcpKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29t
bWFuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuaAkocmV2aXNpb24gOTI1NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMCw2ICsxMzAsNyBAQCBwcml2YXRl
OgogfTsKIAogYm9vbCBpc1N0eWxlU3Bhbihjb25zdCBOb2RlKik7Citib29sIGlzU3R5bGVTcGFu
T3JTcGFuV2l0aE9ubHlTdHlsZUF0dHJpYnV0ZShjb25zdCBFbGVtZW50Kik7CiBQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBjcmVhdGVTdHlsZVNwYW5FbGVtZW50KERvY3VtZW50Kik7CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0
eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAJKHJldmlzaW9uIDkyNTU0KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5n
U3R5bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MTgsMTEgKzgxOCwxMCBAQCB2b2lkIEVkaXRp
bmdTdHlsZTo6bWVyZ2VTdHlsZShDU1NNdXRhYmxlCiAgICAgfQogfQogCi1zdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzRm9y
RWxlbWVudChFbGVtZW50KiBlbGVtZW50KQorc3RhdGljIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24+IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoRWxlbWVudCog
ZWxlbWVudCwgdW5zaWduZWQgcnVsZXNUb0luY2x1ZGUpCiB7CiAgICAgUmVmUHRyPENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uPiBzdHlsZSA9IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpj
cmVhdGUoKTsKLSAgICBSZWZQdHI8Q1NTUnVsZUxpc3Q+IG1hdGNoZWRSdWxlcyA9IGVsZW1lbnQt
PmRvY3VtZW50KCktPnN0eWxlU2VsZWN0b3IoKS0+c3R5bGVSdWxlc0ZvckVsZW1lbnQoZWxlbWVu
dCwKLSAgICAgICAgQ1NTU3R5bGVTZWxlY3Rvcjo6QXV0aG9yQ1NTUnVsZXMgfCBDU1NTdHlsZVNl
bGVjdG9yOjpDcm9zc09yaWdpbkNTU1J1bGVzKTsKKyAgICBSZWZQdHI8Q1NTUnVsZUxpc3Q+IG1h
dGNoZWRSdWxlcyA9IGVsZW1lbnQtPmRvY3VtZW50KCktPnN0eWxlU2VsZWN0b3IoKS0+c3R5bGVS
dWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgcnVsZXNUb0luY2x1ZGUpOwogICAgIGlmIChtYXRjaGVk
UnVsZXMpIHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1hdGNoZWRSdWxlcy0+
bGVuZ3RoKCk7IGkrKykgewogICAgICAgICAgICAgaWYgKG1hdGNoZWRSdWxlcy0+aXRlbShpKS0+
dHlwZSgpID09IENTU1J1bGU6OlNUWUxFX1JVTEUpIHsKQEAgLTgzNyw3ICs4MzYsOCBAQCBzdGF0
aWMgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhCiAKIHZvaWQgRWRpdGluZ1N0eWxl
OjptZXJnZVN0eWxlRnJvbVJ1bGVzKFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgUmVm
UHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBzdHlsZUZyb21NYXRjaGVkUnVsZXMgPSBz
dHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVtZW50KGVsZW1lbnQpOworICAgIFJlZlB0cjxDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzID0gc3R5bGVGcm9t
TWF0Y2hlZFJ1bGVzRm9yRWxlbWVudChlbGVtZW50LAorICAgICAgICBDU1NTdHlsZVNlbGVjdG9y
OjpBdXRob3JDU1NSdWxlcyB8IENTU1N0eWxlU2VsZWN0b3I6OkNyb3NzT3JpZ2luQ1NTUnVsZXMp
OwogICAgIC8vIFN0eWxlcyBmcm9tIHRoZSBpbmxpbmUgc3R5bGUgZGVjbGFyYXRpb24sIGhlbGQg
aW4gdGhlIHZhcmlhYmxlICJzdHlsZSIsIHRha2UgcHJlY2VkZW5jZSAKICAgICAvLyBvdmVyIHRo
b3NlIGZyb20gbWF0Y2hlZCBydWxlcy4KICAgICBpZiAobV9tdXRhYmxlU3R5bGUpCkBAIC04NzAs
MTcgKzg3MCw0MSBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6bWVyZ2VTdHlsZUZyb21SdWxlc0ZvCiAg
ICAgbV9tdXRhYmxlU3R5bGUtPm1lcmdlKGZyb21Db21wdXRlZFN0eWxlLmdldCgpKTsKIH0KIAot
dm9pZCBFZGl0aW5nU3R5bGU6OnJlbW92ZVN0eWxlRnJvbVJ1bGVzKFN0eWxlZEVsZW1lbnQqIGVs
ZW1lbnQpCit2b2lkIEVkaXRpbmdTdHlsZTo6cmVtb3ZlU3R5bGVGcm9tUnVsZXNBbmRDb250ZXh0
KFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQsIE5vZGUqIGNvbnRleHQpCiB7CisgICAgQVNTRVJUKGVs
ZW1lbnQpOwogICAgIGlmICghbV9tdXRhYmxlU3R5bGUpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVz
ID0gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzRm9yRWxlbWVudChlbGVtZW50KTsKLSAgICBpZiAoIXN0
eWxlRnJvbU1hdGNoZWRSdWxlcykKKyAgICAvLyAxLiBSZW1vdmUgc3R5bGUgZnJvbSBtYXRjaGVk
IHJ1bGVzIGJlY2F1c2Ugc3R5bGUgcmVtYWluIHdpdGhvdXQgcmVwZWF0aW5nIGl0IGluIGlubGlu
ZSBzdHlsZSBkZWNsYXJhdGlvbgorICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bj4gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzID0gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzRm9yRWxlbWVu
dChlbGVtZW50LCBDU1NTdHlsZVNlbGVjdG9yOjpBbGxCdXRFbXB0eUNTU1J1bGVzKTsKKyAgICBp
ZiAoc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzICYmIHN0eWxlRnJvbU1hdGNoZWRSdWxlcy0+bGVuZ3Ro
KCkpCisgICAgICAgIG1fbXV0YWJsZVN0eWxlID0gZ2V0UHJvcGVydGllc05vdEluKG1fbXV0YWJs
ZVN0eWxlLmdldCgpLCBzdHlsZUZyb21NYXRjaGVkUnVsZXMuZ2V0KCkpOworCisgICAgLy8gMi4g
UmVtb3ZlIHN0eWxlIHByZXNlbnQgaW4gY29udGV4dCBhbmQgbm90IG92ZXJyaWRlbiBieSBtYXRj
aGVkIHJ1bGVzLgorICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IGNvbXB1dGVkU3R5bGUgPSBFZGl0
aW5nU3R5bGU6OmNyZWF0ZShjb250ZXh0LCBFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzQW5k
QmFja2dyb3VuZENvbG9ySW5FZmZlY3QpOworICAgIGlmIChjb21wdXRlZFN0eWxlLT5tX211dGFi
bGVTdHlsZSkgeworICAgICAgICBjb21wdXRlZFN0eWxlLT5yZW1vdmVQcm9wZXJ0aWVzSW5FbGVt
ZW50RGVmYXVsdFN0eWxlKGVsZW1lbnQpOworICAgICAgICBtX211dGFibGVTdHlsZSA9IGdldFBy
b3BlcnRpZXNOb3RJbihtX211dGFibGVTdHlsZS5nZXQoKSwgY29tcHV0ZWRTdHlsZS0+bV9tdXRh
YmxlU3R5bGUuZ2V0KCkpOworICAgIH0KK30KKwordm9pZCBFZGl0aW5nU3R5bGU6OnJlbW92ZVBy
b3BlcnRpZXNJbkVsZW1lbnREZWZhdWx0U3R5bGUoU3R5bGVkRWxlbWVudCogZWxlbWVudCkKK3sK
KyAgICBpZiAoIW1fbXV0YWJsZVN0eWxlIHx8ICFtX211dGFibGVTdHlsZS0+bGVuZ3RoKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fbXV0YWJsZVN0eWxlID0gZ2V0UHJvcGVydGllc05vdElu
KG1fbXV0YWJsZVN0eWxlLmdldCgpLCBzdHlsZUZyb21NYXRjaGVkUnVsZXMuZ2V0KCkpOworICAg
IFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gZGVmYXVsdFN0eWxlID0gc3R5bGVG
cm9tTWF0Y2hlZFJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBDU1NTdHlsZVNlbGVjdG9yOjpVQUFu
ZFVzZXJDU1NSdWxlcyk7CisKKyAgICBWZWN0b3I8aW50PiBwcm9wZXJ0aWVzVG9SZW1vdmUoZGVm
YXVsdFN0eWxlLT5sZW5ndGgoKSk7CisgICAgc2l6ZV90IGkgPSAwOworICAgIENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uOjpjb25zdF9pdGVyYXRvciBlbmQgPSBkZWZhdWx0U3R5bGUtPmVuZCgp
OworICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gZGVmYXVsdFN0eWxlLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQsICsraSkKKyAgICAgICAg
cHJvcGVydGllc1RvUmVtb3ZlW2ldID0gaXQtPmlkKCk7CisKKyAgICBtX211dGFibGVTdHlsZS0+
cmVtb3ZlUHJvcGVydGllc0luU2V0KHByb3BlcnRpZXNUb1JlbW92ZS5kYXRhKCksIHByb3BlcnRp
ZXNUb1JlbW92ZS5zaXplKCkpOwogfQorICAgIAogCiBzdGF0aWMgdm9pZCByZWNvbmNpbGVUZXh0
RGVjb3JhdGlvblByb3BlcnRpZXMoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlKQog
eyAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaAkocmV2aXNpb24g
OTI1NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjIsNyArMTIyLDcgQEAgcHVibGljOgogICAgIHZvaWQgbWVyZ2VJbmxpbmVT
dHlsZU9mRWxlbWVudChTdHlsZWRFbGVtZW50Kik7CiAgICAgdm9pZCBtZXJnZVN0eWxlRnJvbVJ1
bGVzKFN0eWxlZEVsZW1lbnQqKTsKICAgICB2b2lkIG1lcmdlU3R5bGVGcm9tUnVsZXNGb3JTZXJp
YWxpemF0aW9uKFN0eWxlZEVsZW1lbnQqKTsKLSAgICB2b2lkIHJlbW92ZVN0eWxlRnJvbVJ1bGVz
KFN0eWxlZEVsZW1lbnQqKTsKKyAgICB2b2lkIHJlbW92ZVN0eWxlRnJvbVJ1bGVzQW5kQ29udGV4
dChTdHlsZWRFbGVtZW50KiwgTm9kZSogY29udGV4dCk7CiAKICAgICBmbG9hdCBmb250U2l6ZURl
bHRhKCkgY29uc3QgeyByZXR1cm4gbV9mb250U2l6ZURlbHRhOyB9CiAgICAgYm9vbCBoYXNGb250
U2l6ZURlbHRhKCkgY29uc3QgeyByZXR1cm4gbV9mb250U2l6ZURlbHRhICE9IE5vRm9udERlbHRh
OyB9CkBAIC0xNDEsNiArMTQxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGV4dHJhY3RGb250U2l6
ZURlbHRhKCk7CiAgICAgYm9vbCBjb25mbGljdHNXaXRoSW5saW5lU3R5bGVPZkVsZW1lbnQoU3R5
bGVkRWxlbWVudCosIEVkaXRpbmdTdHlsZSogZXh0cmFjdGVkU3R5bGUsIFZlY3RvcjxDU1NQcm9w
ZXJ0eUlEPiogY29uZmxpY3RpbmdQcm9wZXJ0aWVzKSBjb25zdDsKICAgICB2b2lkIG1lcmdlU3R5
bGUoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qKTsKKyAgICB2b2lkIHJlbW92ZVByb3BlcnRp
ZXNJbkVsZW1lbnREZWZhdWx0U3R5bGUoU3R5bGVkRWxlbWVudCopOwogCiAgICAgUmVmUHRyPENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBtX211dGFibGVTdHlsZTsKICAgICBib29sIG1fc2hv
dWxkVXNlRml4ZWREZWZhdWx0Rm9udFNpemU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAkocmV2aXNpb24gOTI1NTQpCisr
KyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDc4LDM0ICs0NzgsNTMgQEAgYm9vbCBSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZDo6c2hvdWxkTWVyZwogLy8gYSBkaXYgaW5zZXJ0ZWQgaW50byBhIGRvY3VtZW50IHdpdGgg
ZGl2IHsgZGlzcGxheTppbmxpbmU7IH0uCiB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpy
ZW1vdmVSZWR1bmRhbnRTdHlsZXNBbmRLZWVwU3R5bGVTcGFuSW5saW5lKCkKIHsKLSAgICBmb3Ig
KFJlZlB0cjxOb2RlPiBub2RlID0gbV9maXJzdE5vZGVJbnNlcnRlZC5nZXQoKTsgbm9kZTsgbm9k
ZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgewotICAgICAgICAvLyBGSVhNRTogPHJkYXI6
Ly9wcm9ibGVtLzUzNzE1MzY+IFN0eWxlIHJ1bGVzIHRoYXQgbWF0Y2ggcGFzdGVkIGNvbnRlbnQg
Y2FuIGNoYW5nZSBpdCdzIGFwcGVhcmFuY2UKLSAgICAgICAgaWYgKGlzU3R5bGVTcGFuKG5vZGUu
Z2V0KCkpKSB7Ci0gICAgICAgICAgICBIVE1MRWxlbWVudCogZSA9IHRvSFRNTEVsZW1lbnQobm9k
ZS5nZXQoKSk7CisgICAgUmVmUHRyPE5vZGU+IHBhc3RFbmROb2RlID0gbV9sYXN0TGVhZkluc2Vy
dGVkID8gbV9sYXN0TGVhZkluc2VydGVkLT50cmF2ZXJzZU5leHROb2RlKCkgOiAwOworICAgIFJl
ZlB0cjxOb2RlPiBuZXh0OworICAgIGZvciAoUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2ZpcnN0Tm9k
ZUluc2VydGVkLmdldCgpOyBub2RlICYmIG5vZGUgIT0gcGFzdEVuZE5vZGU7IG5vZGUgPSBuZXh0
KSB7CisgICAgICAgIG5leHQgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKCk7CisgICAgICAgIGlm
ICghbm9kZS0+aXNTdHlsZWRFbGVtZW50KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICBTdHlsZWRFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+
KG5vZGUuZ2V0KCkpOworCisgICAgICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBpbmxp
bmVTdHlsZSA9IGVsZW1lbnQtPmlubGluZVN0eWxlRGVjbCgpOworICAgICAgICBSZWZQdHI8RWRp
dGluZ1N0eWxlPiBuZXdJbmxpbmVTdHlsZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKGlubGluZVN0
eWxlKTsKKyAgICAgICAgaWYgKGlubGluZVN0eWxlKSB7CisgICAgICAgICAgICBDb250YWluZXJO
b2RlKiBjb250ZXh0ID0gZWxlbWVudC0+cGFyZW50Tm9kZSgpOworCisgICAgICAgICAgICAvLyBJ
ZiBNYWlsIHdyYXBzIHRoZSBmcmFnbWVudCB3aXRoIGEgUGFzdGUgYXMgUXVvdGF0aW9uIGJsb2Nr
cXVvdGUsIG9yIGlmIHlvdSdyZSBwYXN0aW5nIGludG8gYSBxdW90ZWQgcmVnaW9uLAorICAgICAg
ICAgICAgLy8gc3R5bGVzIGZyb20gYmxvY2txdW90ZU5vZGUgYXJlIGFsbG93ZWQgdG8gb3ZlcnJp
ZGUgdGhvc2UgZnJvbSB0aGUgc291cmNlIGRvY3VtZW50LCBzZWUgPHJkYXI6Ly9wcm9ibGVtLzQ5
MzA5ODY+IGFuZCA8cmRhcjovL3Byb2JsZW0vNTA4OTMyNz4uCisgICAgICAgICAgICBOb2RlKiBi
bG9ja3F1b3RlTm9kZSA9IGlzTWFpbFBhc3RlQXNRdW90YXRpb25Ob2RlKGNvbnRleHQpID8gY29u
dGV4dCA6IGVuY2xvc2luZ05vZGVPZlR5cGUoZmlyc3RQb3NpdGlvbkluTm9kZShjb250ZXh0KSwg
aXNNYWlsQmxvY2txdW90ZSwgQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpOworICAgICAgICAgICAg
aWYgKGJsb2NrcXVvdGVOb2RlKQorICAgICAgICAgICAgICAgIG5ld0lubGluZVN0eWxlLT5yZW1v
dmVTdHlsZUZyb21SdWxlc0FuZENvbnRleHQoZWxlbWVudCwgZG9jdW1lbnQoKS0+ZG9jdW1lbnRF
bGVtZW50KCkpOworCisgICAgICAgICAgICBuZXdJbmxpbmVTdHlsZS0+cmVtb3ZlU3R5bGVGcm9t
UnVsZXNBbmRDb250ZXh0KGVsZW1lbnQsIGNvbnRleHQpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKCFpbmxpbmVTdHlsZSB8fCBuZXdJbmxpbmVTdHlsZS0+aXNFbXB0eSgpKSB7CisgICAgICAg
ICAgICBpZiAoaXNTdHlsZVNwYW5PclNwYW5XaXRoT25seVN0eWxlQXR0cmlidXRlKGVsZW1lbnQp
KQorICAgICAgICAgICAgICAgIHJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oZWxlbWVudCk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVtb3ZlTm9kZUF0dHJpYnV0ZShl
bGVtZW50LCBzdHlsZUF0dHIpOworICAgICAgICB9IGVsc2UgaWYgKG5ld0lubGluZVN0eWxlLT5z
dHlsZSgpLT5sZW5ndGgoKSAhPSBpbmxpbmVTdHlsZS0+bGVuZ3RoKCkpCisgICAgICAgICAgICBz
ZXROb2RlQXR0cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0ciwgbmV3SW5saW5lU3R5bGUtPnN0eWxl
KCktPmNzc1RleHQoKSk7CisKKyAgICAgICAgaWYgKG5vZGUgJiYgaXNTdHlsZVNwYW4oZWxlbWVu
dCkpIHsKKyAgICAgICAgICAgIGlmICghZWxlbWVudC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAg
ICAgICAgICAgcmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbihlbGVtZW50KTsKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIC8vIFRoZXJlIGFy
ZSBvdGhlciBzdHlsZXMgdGhhdCBzdHlsZSBydWxlcyBjYW4gZ2l2ZSB0byBzdHlsZSBzcGFucywK
ICAgICAgICAgICAgIC8vIGJ1dCB0aGVzZSBhcmUgdGhlIHR3byBpbXBvcnRhbnQgb25lcyBiZWNh
dXNlIHRoZXknbGwgcHJldmVudAogICAgICAgICAgICAgLy8gaW5zZXJ0ZWQgY29udGVudCBmcm9t
IGFwcGVhcmluZyBpbiB0aGUgcmlnaHQgcGFyYWdyYXBoLgogICAgICAgICAgICAgLy8gRklYTUU6
IEh5YXR0IGlzIGNvbmNlcm5lZCB0aGF0IHNlbGVjdGl2ZWx5IHVzaW5nIGRpc3BsYXk6aW5saW5l
IHdpbGwgZ2l2ZSBpbmNvbnNpc3RlbnQKICAgICAgICAgICAgIC8vIHJlc3VsdHMuIFdlIGFscmVh
ZHkga25vdyBvbmUgaXNzdWUgYmVjYXVzZSB0ZCBlbGVtZW50cyBpZ25vcmUgdGhlaXIgZGlzcGxh
eSBwcm9wZXJ0eQogICAgICAgICAgICAgLy8gaW4gcXVpcmtzIG1vZGUgKHdoaWNoIE1haWwuYXBw
IGlzIGFsd2F5cyBpbikuIFdlIHNob3VsZCBsb29rIGZvciBhbiBhbHRlcm5hdGl2ZS4KLSAgICAg
ICAgICAgIGlmIChpc0Jsb2NrKGUpKQotICAgICAgICAgICAgICAgIGUtPmdldElubGluZVN0eWxl
RGVjbCgpLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIENTU1ZhbHVlSW5saW5lKTsK
LSAgICAgICAgICAgIGlmIChlLT5yZW5kZXJlcigpICYmIGUtPnJlbmRlcmVyKCktPnN0eWxlKCkt
PmlzRmxvYXRpbmcoKSkKLSAgICAgICAgICAgICAgICBlLT5nZXRJbmxpbmVTdHlsZURlY2woKS0+
c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGbG9hdCwgQ1NTVmFsdWVOb25lKTsKLSAgICAgICAgfSBl
bHNlIGlmIChub2RlLT5pc1N0eWxlZEVsZW1lbnQoKSkgewotICAgICAgICAgICAgU3R5bGVkRWxl
bWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihub2RlLmdldCgpKTsK
LSAgICAgICAgICAgIGlmIChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogaW5saW5lU3R5bGUg
PSBlbGVtZW50LT5pbmxpbmVTdHlsZURlY2woKSkgewotICAgICAgICAgICAgICAgIFJlZlB0cjxF
ZGl0aW5nU3R5bGU+IG5ld0lubGluZVN0eWxlID0gRWRpdGluZ1N0eWxlOjpjcmVhdGUoaW5saW5l
U3R5bGUpOwotICAgICAgICAgICAgICAgIG5ld0lubGluZVN0eWxlLT5yZW1vdmVTdHlsZUZyb21S
dWxlcyhlbGVtZW50KTsKLSAgICAgICAgICAgICAgICBpZiAoIW5ld0lubGluZVN0eWxlLT5zdHls
ZSgpIHx8ICFuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+bGVuZ3RoKCkpCi0gICAgICAgICAgICAg
ICAgICAgIHJlbW92ZU5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVBdHRyKTsKLSAgICAgICAg
ICAgICAgICBlbHNlIGlmIChuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+bGVuZ3RoKCkgPCBpbmxp
bmVTdHlsZS0+bGVuZ3RoKCkpCi0gICAgICAgICAgICAgICAgICAgIHNldE5vZGVBdHRyaWJ1dGUo
ZWxlbWVudCwgc3R5bGVBdHRyLCBuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+Y3NzVGV4dCgpKTsg
ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzQmxv
Y2soZWxlbWVudCkpCisgICAgICAgICAgICAgICAgZWxlbWVudC0+Z2V0SW5saW5lU3R5bGVEZWNs
KCktPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgQ1NTVmFsdWVJbmxpbmUpOworICAg
ICAgICAgICAgaWYgKGVsZW1lbnQtPnJlbmRlcmVyKCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKS0+
c3R5bGUoKS0+aXNGbG9hdGluZygpKQorICAgICAgICAgICAgICAgIGVsZW1lbnQtPmdldElubGlu
ZVN0eWxlRGVjbCgpLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZsb2F0LCBDU1NWYWx1ZU5vbmUp
OwogICAgICAgICB9Ci0KLSAgICAgICAgaWYgKG5vZGUgPT0gbV9sYXN0TGVhZkluc2VydGVkKQot
ICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MjU3NikK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDExLTA4LTA3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IFJlbW92ZSByZWR1bmRhbnQgaW5saW5lIHN0eWxlcyBmcm9tIHRoZSBwYXN0ZWQgY29udGVudHMg
bW9yZSBhZ2dyZXNzaXZlbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY1ODMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgYSB0ZXN0IHRvIHBhc3RlIGNvbnRlbnRzIHdpdGggbWFueSByZWR1bmRh
bnQgc3R5bGVzLiBXZWJLaXQgc2hvdWxkIHJlbW92ZSBhcyBtdWNoIHN0eWxlIHNwYW5zIGFzIHBv
c3NpYmxlCisgICAgICAgIChhbGwgb2YgdGhpcyBpbiB0aGlzIGNhc2UpLgorCisgICAgICAgICog
ZWRpdGluZy9wYXN0ZWJvYXJkLzQ5MzA5ODYtMi1leHBlY3RlZC50eHQ6IHN0eWxlIGF0dHJpYnV0
ZSBub3cgaGFzIGEgdHJhaWxpbmcgc3BhY2UuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJk
L2ludGVyY2hhbmdlLW5ld2xpbmUtMS1leHBlY3RlZC50eHQ6IE5vIGxvbmdlciBoYXMgYSB3cmFw
cGluZyBzcGFuIHdpdGhvdXQgYW55IGF0dHJpYnV0ZXMuCisgICAgICAgICogZWRpdGluZy9wYXN0
ZWJvYXJkL3Bhc3RlLWJsb2NrcXVvdGUtaW50by1ibG9ja3F1b3RlLTItZXhwZWN0ZWQudHh0OiBE
aXR0by4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQt
c3R5bGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQv
cGFzdGUtd2l0aC1yZWR1bmRhbnQtc3R5bGUuaHRtbDogQWRkZWQuCisKIDIwMTEtMDgtMDcgIEJh
bGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gc3ZnL3pv
b20vcGFnZS96b29tLXN2Zy10aHJvdWdoLSogcmVzdWx0cyBkaXZlcmdpbmcgYmV0d2VlbiBib3Rz
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDkzMDk4Ni0yLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDkzMDk4
Ni0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTI1NTQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvNDkzMDk4Ni0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwy
ICsxLDIgQEAKIFRoaXMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgY29udGVudCB0aGF0IGlzIGNv
bG9yZWQgYnkgdGhlIHVzZXIgaXMgcGFzdGVkIHdpdGggdGhhdCBjb2xvciBkdXJpbmcgYSBQYXN0
ZSBhcyBRdW90YXRpb24uCi08YmxvY2txdW90ZT48c3BhbiBjbGFzcz0iQXBwbGUtc3R5bGUtc3Bh
biIgc3R5bGU9ImNvbG9yOiByZWQ7Ij5UaGlzIHRleHQgc2hvdWxkIGJlIHJlZCAoaXQgc2hvdWxk
IGJlIHdyYXBwZWQgaW4gYSBzdHlsZSBzcGFuKS48L3NwYW4+PC9ibG9ja3F1b3RlPgorPGJsb2Nr
cXVvdGU+PHNwYW4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJjb2xvcjogcmVkOyAi
PlRoaXMgdGV4dCBzaG91bGQgYmUgcmVkIChpdCBzaG91bGQgYmUgd3JhcHBlZCBpbiBhIHN0eWxl
IHNwYW4pLjwvc3Bhbj48L2Jsb2NrcXVvdGU+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvaW50ZXJjaGFuZ2UtbmV3bGluZS0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW50ZXJjaGFuZ2UtbmV3bGluZS0xLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gOTI1NTQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvaW50ZXJjaGFuZ2UtbmV3bGluZS0xLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMTAsOCArMTAsNyBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkRW5kRWRpdGluZzpX
CiBUaGVyZSBpcyBhbiBpbnRlcmNoYW5nZSBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgdGhlIGluY29t
aW5nIGZyYWdtZW50LiAiYmFyIiBhbmQgIngiIHNob3VsZCBiZSBpbiBzZXBhcmF0ZSBwYXJhZ3Jh
cGhzCiBUaGUgcGFyYWdyYXBoICJiYXIiIGlzIGluc2lkZSBhIGRpdiB3cmFwcGVkIGluIGEgc3Bh
biwgYW5kIHRoZSBvbGQgcGFzdGUgY29kZSB0aGF0IGhhbmRsZWQgaW50ZXJjaGFuZ2UgbmV3bGlu
ZXMgZGlkIG5vdCBoYW5kbGUgdGhpcyBjYXNlLgogfCAieCIKLXwgPHNwYW4+Ci18ICAgImZvbyIK
LXwgICA8ZGl2PgotfCAgICAgImJhciIKK3wgImZvbyIKK3wgPGRpdj4KK3wgICAiYmFyIgogfCAi
PCNzZWxlY3Rpb24tY2FyZXQ+eCIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9wYXN0ZS1ibG9ja3F1b3RlLWludG8tYmxvY2txdW90ZS0yLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYmxvY2txdW90ZS1p
bnRvLWJsb2NrcXVvdGUtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDkyNTU0KQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWJsb2NrcXVvdGUtaW50by1ibG9ja3F1b3Rl
LTItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDEwICs0LDkgQEAgVGhpcyB0ZXN0
cyBwYXN0aW5nIGEgbmVzdGVkIGJsb2NrcXVvdGUgaQogfCAgIHR5cGU9ImNpdGUiCiB8ICAgIk9u
ZSIKIHwgICAiVHdvIgotfCA8c3Bhbj4KK3wgPGJsb2NrcXVvdGU+Cit8ICAgdHlwZT0iY2l0ZSIK
IHwgICA8YmxvY2txdW90ZT4KIHwgICAgIHR5cGU9ImNpdGUiCi18ICAgICA8YmxvY2txdW90ZT4K
LXwgICAgICAgdHlwZT0iY2l0ZSIKLXwgICAgICAgPGRpdj4KLXwgICAgICAgICAiVGhyZWU8I3Nl
bGVjdGlvbi1jYXJldD4iCit8ICAgICA8ZGl2PgorfCAgICAgICAiVGhyZWU8I3NlbGVjdGlvbi1j
YXJldD4iCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1y
ZWR1bmRhbnQtc3R5bGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0
aC1yZWR1bmRhbnQtc3R5bGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEy
IEBACitUaGlzIHRlc3RzIHBhc3RpbmcgY29udGVudCB3aXRoIHJlZHVuZGFudCBpbmxpbmUgc3R5
bGUuCitZb3Ugc2hvdWxkIG5vdCBzZWUgYW55IHN0eWxlIGF0dHJpYnV0ZXMgZXhjZXB0IG9uZSBv
biB0aGUgYiBlbGVtZW50IGFuZCB0aGVyZSBzaG91bGQgYmUgbm8gc3BhbnMuCit8IDxiPgorfCAg
IHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWM7IgorfCAgIDxlbT4KK3wgICAgICJoZWxsbyB3b3Js
ZCIKK3wgICA8YnI+Cit8ICAgIldlYktpdCIKK3wgICA8YnI+Cit8ICAgPGVtPgorfCAgICAgInJv
Y2tzPCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAgIDxicj4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1z
dHlsZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L3Bhc3RlLXdpdGgtcmVkdW5kYW50LXN0eWxlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2VtIHsgdGV4
dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IGZvbnQtc3R5bGU6IG5vbmU7IH0KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRlc3QiIGNvbnRlbnRlZGl0YWJsZT48YiBzdHlsZT0i
Zm9udC1zdHlsZTogaXRhbGljOyI+PGJyPjwvYj48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5mb2N1cygpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J2luc2VydEhUTUwnLCBmYWxzZSwKKyAgICAnPGVtIHN0eWxlPSJmb250LXN0eWxlOiBub25lOyB0
ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij48c3BhbiBzdHls
ZT0iY29sb3I6IGJsYWNrOyI+aGVsbG8gd29ybGQ8L3NwYW4+PC9lbT48YnI+JworICAgICsgJzxz
cGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPjxzcGFuIGNsYXNzPSJBcHBsZS1zdHlsZS1z
cGFuIiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij5XZWJLaXQ8L3NwYW4+PC9zcGFuPjxicj4n
CisgICAgKyAnPGVtPjxzcGFuIHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWM7Ij5yb2Nrczwvc3Bh
bj48L2VtPicpOworCitNYXJrdXAuZGVzY3JpcHRpb24oJ1RoaXMgdGVzdHMgcGFzdGluZyBjb250
ZW50IHdpdGggcmVkdW5kYW50IGlubGluZSBzdHlsZS5cbicKKyAgICArICdZb3Ugc2hvdWxkIG5v
dCBzZWUgYW55IHN0eWxlIGF0dHJpYnV0ZXMgZXhjZXB0IG9uZSBvbiB0aGUgYiBlbGVtZW50IGFu
ZCB0aGVyZSBzaG91bGQgYmUgbm8gc3BhbnMuJyk7CitNYXJrdXAuZHVtcCgndGVzdCcpOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103198</attachid>
            <date>2011-08-07 21:34:48 -0700</date>
            <delta_ts>2011-08-08 12:02:50 -0700</delta_ts>
            <desc>rebaselined 4 more tests</desc>
            <filename>bug-65833-20110807213446.patch</filename>
            <type>text/plain</type>
            <size>24086</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNTgxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDgtMDcgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHJlZHVuZGFudCBpbmxp
bmUgc3R5bGVzIGZyb20gdGhlIHBhc3RlZCBjb250ZW50cyBtb3JlIGFnZ3Jlc3NpdmVseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4MzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHJlbW92ZVJl
ZHVuZGFudFN0eWxlc0FuZEtlZXBTdHlsZVNwYW5JbmxpbmUgbW9yZSBhZ2dyZXNzaXZlbHkgcmVt
b3ZlIHJlZHVuZGFudCBzdHlsZXMgYnkgcmVhbGl6aW5nIHRoYXQKKyAgICAgICAgd2hlbiBhbiBl
ZGl0aW5nIGluaGVyaXRhYmxlIHByb3BlcnR5IGluIGFuIGlubGluZSBzdHlsZSBkZWNsYXJhdGlv
biBvZiBhbiBlbGVtZW50IGNhbiBiZSBzYWZlbHkgcmVtb3ZlZAorICAgICAgICBpZiBpdCBpcyBw
cmVzZW50IGVpdGhlciBpbiBzdHlsZSBydWxlcyBvciBpbiBpdHMgYW5jZXN0b3IgYW5kIG5vdCBv
dmVycmlkZGVuIGJ5IHN0eWxlIHJ1bGVzIG9yIGRlZmF1bHQgc3R5bGUKKyAgICAgICAgb2YgdGhl
IGVsZW1lbnQuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgt
cmVkdW5kYW50LXN0eWxlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnBzZXVkb1N0eWxlUnVsZXNG
b3JFbGVtZW50KTogRG8gbm90IG1hdGNoIGF1dGhvciBzdHlsZSBzaGVldHMgaWYgQXV0aG9yQ1NT
UnVsZXMKKyAgICAgICAgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBydWxlcyB0byBpbmNsdWRlLiBU
aGlzIGlzIHVzZWQgaW4gRWRpdGluZ1N0eWxlOjpyZW1vdmVQcm9wZXJ0aWVzSW5FbGVtZW50RGVm
YXVsdFN0eWxlLgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNTdHlsZVNwYW5PclNwYW5XaXRoT25seVN0eWxlQXR0cmlidXRlKTog
QWRkZWQ7IHJldHVybnMgdHJ1ZSBpZiB0aGUgZWxlbWVudCBpcyBhIHN0eWxlIHNwYW4gb3IKKyAg
ICAgICAgc3BhbiBwb3NzaWJseSB3aXRoIGEgc3R5bGUgYXR0cmlidXRlLgorICAgICAgICAqIGVk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVtZW50
KTogVGFrZXMgcnVsZXNUb0luY2x1ZGUuCisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6
Om1lcmdlU3R5bGVGcm9tUnVsZXMpOiBDYWxscyBzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVt
ZW50IHdpdGggQXV0aG9yQ1NTUnVsZXMKKyAgICAgICAgfCBDcm9zc09yaWdpbkNTU1J1bGVzIHRv
IGtlZXAgdGhlIG9yaWdpbmFsIGJlaGF2aW9yLgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0
eWxlOjpyZW1vdmVTdHlsZUZyb21SdWxlc0FuZENvbnRleHQpOiBSZW5hbWVkIGZyb20gcmVtb3Zl
U3R5bGVGcm9tUnVsZXM7IHJlbW92ZXMgc3R5bGVzIHRoYXQKKyAgICAgICAgYXJlIHByZXNlbnQg
aW4gY29udGV4dCBhbmQgbm90IG92ZXJyaWRkZW4gYnkgbWF0Y2hlZCBydWxlcy4KKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6cmVtb3ZlUHJvcGVydGllc0luRWxlbWVudERlZmF1bHRT
dHlsZSk6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmg6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5kYW50U3R5bGVzQW5kS2VlcFN0
eWxlU3BhbklubGluZSk6IFNlZSB0aGUgZGVzY3JpcHRpb24gYWJvdmUuCisKIDIwMTEtMDgtMDcg
IEphbWVzIEtvemlhbnNraSAgPGtvekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTWFrZSB0aGUg
ZnVsbHNjcmVlbiBKUyBBUEkgZW5hYmxlZCBhdCBydW50aW1lLgpJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gOTI1ODEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNTgsNyAr
MjA1OCw3IEBAIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IENTU1N0eWxlU2VsZWN0b3IKICAgICAg
ICAgfQogICAgIH0KIAotICAgIGlmIChtX21hdGNoQXV0aG9yQW5kVXNlclN0eWxlcykgeworICAg
IGlmIChtX21hdGNoQXV0aG9yQW5kVXNlclN0eWxlcyAmJiAocnVsZXNUb0luY2x1ZGUgJiBBdXRo
b3JDU1NSdWxlcykpIHsKICAgICAgICAgbV9jaGVja2VyLm1fc2FtZU9yaWdpbk9ubHkgPSAhKHJ1
bGVzVG9JbmNsdWRlICYgQ3Jvc3NPcmlnaW5DU1NSdWxlcyk7CiAKICAgICAgICAgLy8gQ2hlY2sg
dGhlIHJ1bGVzIGluIGF1dGhvciBzaGVldHMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGx5U3R5bGVDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAkocmV2aXNpb24gOTI1ODEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAs
NiArNzAsMjQgQEAgYm9vbCBpc1N0eWxlU3Bhbihjb25zdCBOb2RlICpub2RlKQogICAgIHJldHVy
biBlbGVtLT5oYXNMb2NhbE5hbWUoc3BhbkF0dHIpICYmIGVsZW0tPmdldEF0dHJpYnV0ZShjbGFz
c0F0dHIpID09IHN0eWxlU3BhbkNsYXNzU3RyaW5nKCk7CiB9CiAKK2Jvb2wgaXNTdHlsZVNwYW5P
clNwYW5XaXRoT25seVN0eWxlQXR0cmlidXRlKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCit7Cisg
ICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LT5oYXNUYWdOYW1lKHNwYW5UYWcpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBOYW1lZE5vZGVNYXAqIG1hcCA9IGVsZW1lbnQtPmF0dHJp
YnV0ZXModHJ1ZSk7IC8vIHRydWUgZm9yIHJlYWQtb25seQorICAgIGlmICghbWFwIHx8IG1hcC0+
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHVuc2lnbmVkIG1hdGNoZWRB
dHRyaWJ1dGVzID0gMDsKKyAgICBpZiAoZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0
dHIpID09IHN0eWxlU3BhbkNsYXNzU3RyaW5nKCkpCisgICAgICAgIG1hdGNoZWRBdHRyaWJ1dGVz
Kys7CisgICAgaWYgKGVsZW1lbnQtPmhhc0F0dHJpYnV0ZShzdHlsZUF0dHIpKQorICAgICAgICBt
YXRjaGVkQXR0cmlidXRlcysrOworCisgICAgcmV0dXJuIG1hdGNoZWRBdHRyaWJ1dGVzID49IG1h
cC0+bGVuZ3RoKCk7Cit9CisKIHN0YXRpYyBib29sIGlzVW5zdHlsZWRTdHlsZVNwYW4oY29uc3Qg
Tm9kZSogbm9kZSkKIHsKICAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzSFRNTEVsZW1lbnQoKSB8
fCAhbm9kZS0+aGFzVGFnTmFtZShzcGFuVGFnKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwbHlTdHlsZUNvbW1hbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgJKHJldmlzaW9uIDkyNTgxKQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsNiAr
MTMwLDcgQEAgcHJpdmF0ZToKIH07CiAKIGJvb2wgaXNTdHlsZVNwYW4oY29uc3QgTm9kZSopOwor
Ym9vbCBpc1N0eWxlU3Bhbk9yU3BhbldpdGhPbmx5U3R5bGVBdHRyaWJ1dGUoY29uc3QgRWxlbWVu
dCopOwogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlU3R5bGVTcGFuRWxlbWVudChEb2N1
bWVudCopOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nU3R5bGUuY3BwCShyZXZpc2lvbiA5MjU4MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODE4LDExICs4MTgs
MTAgQEAgdm9pZCBFZGl0aW5nU3R5bGU6Om1lcmdlU3R5bGUoQ1NTTXV0YWJsZQogICAgIH0KIH0K
IAotc3RhdGljIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlRnJv
bU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3N0YXRpYyBQYXNzUmVm
UHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIHJ1bGVzVG9JbmNsdWRlKQogewogICAg
IFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGUgPSBDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCk7Ci0gICAgUmVmUHRyPENTU1J1bGVMaXN0PiBtYXRjaGVk
UnVsZXMgPSBlbGVtZW50LT5kb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCktPnN0eWxlUnVsZXNG
b3JFbGVtZW50KGVsZW1lbnQsCi0gICAgICAgIENTU1N0eWxlU2VsZWN0b3I6OkF1dGhvckNTU1J1
bGVzIHwgQ1NTU3R5bGVTZWxlY3Rvcjo6Q3Jvc3NPcmlnaW5DU1NSdWxlcyk7CisgICAgUmVmUHRy
PENTU1J1bGVMaXN0PiBtYXRjaGVkUnVsZXMgPSBlbGVtZW50LT5kb2N1bWVudCgpLT5zdHlsZVNl
bGVjdG9yKCktPnN0eWxlUnVsZXNGb3JFbGVtZW50KGVsZW1lbnQsIHJ1bGVzVG9JbmNsdWRlKTsK
ICAgICBpZiAobWF0Y2hlZFJ1bGVzKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtYXRjaGVkUnVsZXMtPmxlbmd0aCgpOyBpKyspIHsKICAgICAgICAgICAgIGlmIChtYXRjaGVk
UnVsZXMtPml0ZW0oaSktPnR5cGUoKSA9PSBDU1NSdWxlOjpTVFlMRV9SVUxFKSB7CkBAIC04Mzcs
NyArODM2LDggQEAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYQogCiB2
b2lkIEVkaXRpbmdTdHlsZTo6bWVyZ2VTdHlsZUZyb21SdWxlcyhTdHlsZWRFbGVtZW50KiBlbGVt
ZW50KQogewotICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGVGcm9t
TWF0Y2hlZFJ1bGVzID0gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzRm9yRWxlbWVudChlbGVtZW50KTsK
KyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlRnJvbU1hdGNoZWRS
dWxlcyA9IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwKKyAgICAgICAg
Q1NTU3R5bGVTZWxlY3Rvcjo6QXV0aG9yQ1NTUnVsZXMgfCBDU1NTdHlsZVNlbGVjdG9yOjpDcm9z
c09yaWdpbkNTU1J1bGVzKTsKICAgICAvLyBTdHlsZXMgZnJvbSB0aGUgaW5saW5lIHN0eWxlIGRl
Y2xhcmF0aW9uLCBoZWxkIGluIHRoZSB2YXJpYWJsZSAic3R5bGUiLCB0YWtlIHByZWNlZGVuY2Ug
CiAgICAgLy8gb3ZlciB0aG9zZSBmcm9tIG1hdGNoZWQgcnVsZXMuCiAgICAgaWYgKG1fbXV0YWJs
ZVN0eWxlKQpAQCAtODcwLDE3ICs4NzAsNDEgQEAgdm9pZCBFZGl0aW5nU3R5bGU6Om1lcmdlU3R5
bGVGcm9tUnVsZXNGbwogICAgIG1fbXV0YWJsZVN0eWxlLT5tZXJnZShmcm9tQ29tcHV0ZWRTdHls
ZS5nZXQoKSk7CiB9CiAKLXZvaWQgRWRpdGluZ1N0eWxlOjpyZW1vdmVTdHlsZUZyb21SdWxlcyhT
dHlsZWRFbGVtZW50KiBlbGVtZW50KQordm9pZCBFZGl0aW5nU3R5bGU6OnJlbW92ZVN0eWxlRnJv
bVJ1bGVzQW5kQ29udGV4dChTdHlsZWRFbGVtZW50KiBlbGVtZW50LCBOb2RlKiBjb250ZXh0KQog
eworICAgIEFTU0VSVChlbGVtZW50KTsKICAgICBpZiAoIW1fbXV0YWJsZVN0eWxlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxl
RnJvbU1hdGNoZWRSdWxlcyA9IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVu
dCk7Ci0gICAgaWYgKCFzdHlsZUZyb21NYXRjaGVkUnVsZXMpCisgICAgLy8gMS4gUmVtb3ZlIHN0
eWxlIGZyb20gbWF0Y2hlZCBydWxlcyBiZWNhdXNlIHN0eWxlIHJlbWFpbiB3aXRob3V0IHJlcGVh
dGluZyBpdCBpbiBpbmxpbmUgc3R5bGUgZGVjbGFyYXRpb24KKyAgICBSZWZQdHI8Q1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlRnJvbU1hdGNoZWRSdWxlcyA9IHN0eWxlRnJvbU1hdGNo
ZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgQ1NTU3R5bGVTZWxlY3Rvcjo6QWxsQnV0RW1wdHlD
U1NSdWxlcyk7CisgICAgaWYgKHN0eWxlRnJvbU1hdGNoZWRSdWxlcyAmJiBzdHlsZUZyb21NYXRj
aGVkUnVsZXMtPmxlbmd0aCgpKQorICAgICAgICBtX211dGFibGVTdHlsZSA9IGdldFByb3BlcnRp
ZXNOb3RJbihtX211dGFibGVTdHlsZS5nZXQoKSwgc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzLmdldCgp
KTsKKworICAgIC8vIDIuIFJlbW92ZSBzdHlsZSBwcmVzZW50IGluIGNvbnRleHQgYW5kIG5vdCBv
dmVycmlkZW4gYnkgbWF0Y2hlZCBydWxlcy4KKyAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBjb21w
dXRlZFN0eWxlID0gRWRpdGluZ1N0eWxlOjpjcmVhdGUoY29udGV4dCwgRWRpdGluZ0luaGVyaXRh
YmxlUHJvcGVydGllc0FuZEJhY2tncm91bmRDb2xvckluRWZmZWN0KTsKKyAgICBpZiAoY29tcHV0
ZWRTdHlsZS0+bV9tdXRhYmxlU3R5bGUpIHsKKyAgICAgICAgY29tcHV0ZWRTdHlsZS0+cmVtb3Zl
UHJvcGVydGllc0luRWxlbWVudERlZmF1bHRTdHlsZShlbGVtZW50KTsKKyAgICAgICAgbV9tdXRh
YmxlU3R5bGUgPSBnZXRQcm9wZXJ0aWVzTm90SW4obV9tdXRhYmxlU3R5bGUuZ2V0KCksIGNvbXB1
dGVkU3R5bGUtPm1fbXV0YWJsZVN0eWxlLmdldCgpKTsKKyAgICB9Cit9CisKK3ZvaWQgRWRpdGlu
Z1N0eWxlOjpyZW1vdmVQcm9wZXJ0aWVzSW5FbGVtZW50RGVmYXVsdFN0eWxlKFN0eWxlZEVsZW1l
bnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFtX211dGFibGVTdHlsZSB8fCAhbV9tdXRhYmxlU3R5
bGUtPmxlbmd0aCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX211dGFibGVTdHlsZSA9IGdl
dFByb3BlcnRpZXNOb3RJbihtX211dGFibGVTdHlsZS5nZXQoKSwgc3R5bGVGcm9tTWF0Y2hlZFJ1
bGVzLmdldCgpKTsKKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IGRlZmF1
bHRTdHlsZSA9IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgQ1NTU3R5
bGVTZWxlY3Rvcjo6VUFBbmRVc2VyQ1NTUnVsZXMpOworCisgICAgVmVjdG9yPGludD4gcHJvcGVy
dGllc1RvUmVtb3ZlKGRlZmF1bHRTdHlsZS0+bGVuZ3RoKCkpOworICAgIHNpemVfdCBpID0gMDsK
KyAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gZGVm
YXVsdFN0eWxlLT5lbmQoKTsKKyAgICBmb3IgKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpj
b25zdF9pdGVyYXRvciBpdCA9IGRlZmF1bHRTdHlsZS0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
LCArK2kpCisgICAgICAgIHByb3BlcnRpZXNUb1JlbW92ZVtpXSA9IGl0LT5pZCgpOworCisgICAg
bV9tdXRhYmxlU3R5bGUtPnJlbW92ZVByb3BlcnRpZXNJblNldChwcm9wZXJ0aWVzVG9SZW1vdmUu
ZGF0YSgpLCBwcm9wZXJ0aWVzVG9SZW1vdmUuc2l6ZSgpKTsKIH0KKyAgICAKIAogc3RhdGljIHZv
aWQgcmVjb25jaWxlVGV4dERlY29yYXRpb25Qcm9wZXJ0aWVzKENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uKiBzdHlsZSkKIHsgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0
eWxlLmgJKHJldmlzaW9uIDkyNTgxKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5n
U3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIG1lcmdlSW5saW5lU3R5bGVPZkVsZW1lbnQoU3R5bGVkRWxlbWVudCopOwogICAgIHZvaWQg
bWVyZ2VTdHlsZUZyb21SdWxlcyhTdHlsZWRFbGVtZW50Kik7CiAgICAgdm9pZCBtZXJnZVN0eWxl
RnJvbVJ1bGVzRm9yU2VyaWFsaXphdGlvbihTdHlsZWRFbGVtZW50Kik7Ci0gICAgdm9pZCByZW1v
dmVTdHlsZUZyb21SdWxlcyhTdHlsZWRFbGVtZW50Kik7CisgICAgdm9pZCByZW1vdmVTdHlsZUZy
b21SdWxlc0FuZENvbnRleHQoU3R5bGVkRWxlbWVudCosIE5vZGUqIGNvbnRleHQpOwogCiAgICAg
ZmxvYXQgZm9udFNpemVEZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udFNpemVEZWx0YTsgfQog
ICAgIGJvb2wgaGFzRm9udFNpemVEZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udFNpemVEZWx0
YSAhPSBOb0ZvbnREZWx0YTsgfQpAQCAtMTQxLDYgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBleHRyYWN0Rm9udFNpemVEZWx0YSgpOwogICAgIGJvb2wgY29uZmxpY3RzV2l0aElubGluZVN0
eWxlT2ZFbGVtZW50KFN0eWxlZEVsZW1lbnQqLCBFZGl0aW5nU3R5bGUqIGV4dHJhY3RlZFN0eWxl
LCBWZWN0b3I8Q1NTUHJvcGVydHlJRD4qIGNvbmZsaWN0aW5nUHJvcGVydGllcykgY29uc3Q7CiAg
ICAgdm9pZCBtZXJnZVN0eWxlKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKik7CisgICAgdm9p
ZCByZW1vdmVQcm9wZXJ0aWVzSW5FbGVtZW50RGVmYXVsdFN0eWxlKFN0eWxlZEVsZW1lbnQqKTsK
IAogICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gbV9tdXRhYmxlU3R5bGU7
CiAgICAgYm9vbCBtX3Nob3VsZFVzZUZpeGVkRGVmYXVsdEZvbnRTaXplOwpJbmRleDogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAJKHJl
dmlzaW9uIDkyNTgxKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3OCwzNCArNDc4LDUzIEBAIGJvb2wgUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnNob3VsZE1lcmcKIC8vIGEgZGl2IGluc2VydGVkIGludG8g
YSBkb2N1bWVudCB3aXRoIGRpdiB7IGRpc3BsYXk6aW5saW5lOyB9Lgogdm9pZCBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5kYW50U3R5bGVzQW5kS2VlcFN0eWxlU3BhbklubGlu
ZSgpCiB7Ci0gICAgZm9yIChSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fZmlyc3ROb2RlSW5zZXJ0ZWQu
Z2V0KCk7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKCkpIHsKLSAgICAgICAg
Ly8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS81MzcxNTM2PiBTdHlsZSBydWxlcyB0aGF0IG1hdGNo
IHBhc3RlZCBjb250ZW50IGNhbiBjaGFuZ2UgaXQncyBhcHBlYXJhbmNlCi0gICAgICAgIGlmIChp
c1N0eWxlU3Bhbihub2RlLmdldCgpKSkgewotICAgICAgICAgICAgSFRNTEVsZW1lbnQqIGUgPSB0
b0hUTUxFbGVtZW50KG5vZGUuZ2V0KCkpOworICAgIFJlZlB0cjxOb2RlPiBwYXN0RW5kTm9kZSA9
IG1fbGFzdExlYWZJbnNlcnRlZCA/IG1fbGFzdExlYWZJbnNlcnRlZC0+dHJhdmVyc2VOZXh0Tm9k
ZSgpIDogMDsKKyAgICBSZWZQdHI8Tm9kZT4gbmV4dDsKKyAgICBmb3IgKFJlZlB0cjxOb2RlPiBu
b2RlID0gbV9maXJzdE5vZGVJbnNlcnRlZC5nZXQoKTsgbm9kZSAmJiBub2RlICE9IHBhc3RFbmRO
b2RlOyBub2RlID0gbmV4dCkgeworICAgICAgICBuZXh0ID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9k
ZSgpOworICAgICAgICBpZiAoIW5vZGUtPmlzU3R5bGVkRWxlbWVudCgpKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgU3R5bGVkRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0
PFN0eWxlZEVsZW1lbnQqPihub2RlLmdldCgpKTsKKworICAgICAgICBDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbiogaW5saW5lU3R5bGUgPSBlbGVtZW50LT5pbmxpbmVTdHlsZURlY2woKTsKKyAg
ICAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbmV3SW5saW5lU3R5bGUgPSBFZGl0aW5nU3R5bGU6
OmNyZWF0ZShpbmxpbmVTdHlsZSk7CisgICAgICAgIGlmIChpbmxpbmVTdHlsZSkgeworICAgICAg
ICAgICAgQ29udGFpbmVyTm9kZSogY29udGV4dCA9IGVsZW1lbnQtPnBhcmVudE5vZGUoKTsKKwor
ICAgICAgICAgICAgLy8gSWYgTWFpbCB3cmFwcyB0aGUgZnJhZ21lbnQgd2l0aCBhIFBhc3RlIGFz
IFF1b3RhdGlvbiBibG9ja3F1b3RlLCBvciBpZiB5b3UncmUgcGFzdGluZyBpbnRvIGEgcXVvdGVk
IHJlZ2lvbiwKKyAgICAgICAgICAgIC8vIHN0eWxlcyBmcm9tIGJsb2NrcXVvdGVOb2RlIGFyZSBh
bGxvd2VkIHRvIG92ZXJyaWRlIHRob3NlIGZyb20gdGhlIHNvdXJjZSBkb2N1bWVudCwgc2VlIDxy
ZGFyOi8vcHJvYmxlbS80OTMwOTg2PiBhbmQgPHJkYXI6Ly9wcm9ibGVtLzUwODkzMjc+LgorICAg
ICAgICAgICAgTm9kZSogYmxvY2txdW90ZU5vZGUgPSBpc01haWxQYXN0ZUFzUXVvdGF0aW9uTm9k
ZShjb250ZXh0KSA/IGNvbnRleHQgOiBlbmNsb3NpbmdOb2RlT2ZUeXBlKGZpcnN0UG9zaXRpb25J
bk5vZGUoY29udGV4dCksIGlzTWFpbEJsb2NrcXVvdGUsIENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5
KTsKKyAgICAgICAgICAgIGlmIChibG9ja3F1b3RlTm9kZSkKKyAgICAgICAgICAgICAgICBuZXdJ
bmxpbmVTdHlsZS0+cmVtb3ZlU3R5bGVGcm9tUnVsZXNBbmRDb250ZXh0KGVsZW1lbnQsIGRvY3Vt
ZW50KCktPmRvY3VtZW50RWxlbWVudCgpKTsKKworICAgICAgICAgICAgbmV3SW5saW5lU3R5bGUt
PnJlbW92ZVN0eWxlRnJvbVJ1bGVzQW5kQ29udGV4dChlbGVtZW50LCBjb250ZXh0KTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICghaW5saW5lU3R5bGUgfHwgbmV3SW5saW5lU3R5bGUtPmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgaWYgKGlzU3R5bGVTcGFuT3JTcGFuV2l0aE9ubHlTdHlsZUF0
dHJpYnV0ZShlbGVtZW50KSkKKyAgICAgICAgICAgICAgICByZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuKGVsZW1lbnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlbW92
ZU5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVBdHRyKTsKKyAgICAgICAgfSBlbHNlIGlmIChu
ZXdJbmxpbmVTdHlsZS0+c3R5bGUoKS0+bGVuZ3RoKCkgIT0gaW5saW5lU3R5bGUtPmxlbmd0aCgp
KQorICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZUF0dHIsIG5ld0lu
bGluZVN0eWxlLT5zdHlsZSgpLT5jc3NUZXh0KCkpOworCisgICAgICAgIGlmIChub2RlICYmIGlz
U3R5bGVTcGFuKGVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoIWVsZW1lbnQtPmZpcnN0Q2hp
bGQoKSkgeworICAgICAgICAgICAgICAgIHJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oZWxl
bWVudCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAvLyBUaGVyZSBhcmUgb3RoZXIgc3R5bGVzIHRoYXQgc3R5bGUgcnVsZXMgY2FuIGdpdmUg
dG8gc3R5bGUgc3BhbnMsCiAgICAgICAgICAgICAvLyBidXQgdGhlc2UgYXJlIHRoZSB0d28gaW1w
b3J0YW50IG9uZXMgYmVjYXVzZSB0aGV5J2xsIHByZXZlbnQKICAgICAgICAgICAgIC8vIGluc2Vy
dGVkIGNvbnRlbnQgZnJvbSBhcHBlYXJpbmcgaW4gdGhlIHJpZ2h0IHBhcmFncmFwaC4KICAgICAg
ICAgICAgIC8vIEZJWE1FOiBIeWF0dCBpcyBjb25jZXJuZWQgdGhhdCBzZWxlY3RpdmVseSB1c2lu
ZyBkaXNwbGF5OmlubGluZSB3aWxsIGdpdmUgaW5jb25zaXN0ZW50CiAgICAgICAgICAgICAvLyBy
ZXN1bHRzLiBXZSBhbHJlYWR5IGtub3cgb25lIGlzc3VlIGJlY2F1c2UgdGQgZWxlbWVudHMgaWdu
b3JlIHRoZWlyIGRpc3BsYXkgcHJvcGVydHkKICAgICAgICAgICAgIC8vIGluIHF1aXJrcyBtb2Rl
ICh3aGljaCBNYWlsLmFwcCBpcyBhbHdheXMgaW4pLiBXZSBzaG91bGQgbG9vayBmb3IgYW4gYWx0
ZXJuYXRpdmUuCi0gICAgICAgICAgICBpZiAoaXNCbG9jayhlKSkKLSAgICAgICAgICAgICAgICBl
LT5nZXRJbmxpbmVTdHlsZURlY2woKS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBD
U1NWYWx1ZUlubGluZSk7Ci0gICAgICAgICAgICBpZiAoZS0+cmVuZGVyZXIoKSAmJiBlLT5yZW5k
ZXJlcigpLT5zdHlsZSgpLT5pc0Zsb2F0aW5nKCkpCi0gICAgICAgICAgICAgICAgZS0+Z2V0SW5s
aW5lU3R5bGVEZWNsKCktPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RmxvYXQsIENTU1ZhbHVlTm9u
ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNTdHlsZWRFbGVtZW50KCkpIHsKLSAgICAg
ICAgICAgIFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50
Kj4obm9kZS5nZXQoKSk7Ci0gICAgICAgICAgICBpZiAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24qIGlubGluZVN0eWxlID0gZWxlbWVudC0+aW5saW5lU3R5bGVEZWNsKCkpIHsKLSAgICAgICAg
ICAgICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBuZXdJbmxpbmVTdHlsZSA9IEVkaXRpbmdTdHls
ZTo6Y3JlYXRlKGlubGluZVN0eWxlKTsKLSAgICAgICAgICAgICAgICBuZXdJbmxpbmVTdHlsZS0+
cmVtb3ZlU3R5bGVGcm9tUnVsZXMoZWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFuZXdJ
bmxpbmVTdHlsZS0+c3R5bGUoKSB8fCAhbmV3SW5saW5lU3R5bGUtPnN0eWxlKCktPmxlbmd0aCgp
KQotICAgICAgICAgICAgICAgICAgICByZW1vdmVOb2RlQXR0cmlidXRlKGVsZW1lbnQsIHN0eWxl
QXR0cik7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAobmV3SW5saW5lU3R5bGUtPnN0eWxlKCkt
Pmxlbmd0aCgpIDwgaW5saW5lU3R5bGUtPmxlbmd0aCgpKQotICAgICAgICAgICAgICAgICAgICBz
ZXROb2RlQXR0cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0ciwgbmV3SW5saW5lU3R5bGUtPnN0eWxl
KCktPmNzc1RleHQoKSk7ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmIChpc0Jsb2NrKGVsZW1lbnQpKQorICAgICAgICAgICAgICAgIGVsZW1lbnQtPmdl
dElubGluZVN0eWxlRGVjbCgpLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIENTU1Zh
bHVlSW5saW5lKTsKKyAgICAgICAgICAgIGlmIChlbGVtZW50LT5yZW5kZXJlcigpICYmIGVsZW1l
bnQtPnJlbmRlcmVyKCktPnN0eWxlKCktPmlzRmxvYXRpbmcoKSkKKyAgICAgICAgICAgICAgICBl
bGVtZW50LT5nZXRJbmxpbmVTdHlsZURlY2woKS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGbG9h
dCwgQ1NTVmFsdWVOb25lKTsKICAgICAgICAgfQotCi0gICAgICAgIGlmIChub2RlID09IG1fbGFz
dExlYWZJbnNlcnRlZCkKLSAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gOTI1ODEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMyBAQAorMjAxMS0wOC0wNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KKworICAgICAgICBSZW1vdmUgcmVkdW5kYW50IGlubGluZSBzdHlsZXMgZnJvbSB0aGUg
cGFzdGVkIGNvbnRlbnRzIG1vcmUgYWdncmVzc2l2ZWx5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTgzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgdGVzdCB0byBwYXN0ZSBjb250ZW50cyB3
aXRoIG1hbnkgcmVkdW5kYW50IHN0eWxlcy4gV2ViS2l0IHNob3VsZCByZW1vdmUgYXMgbXVjaCBz
dHlsZSBzcGFucyBhcyBwb3NzaWJsZQorICAgICAgICAoYWxsIG9mIHRoaXMgaW4gdGhpcyBjYXNl
KS4KKworICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC80OTMwOTg2LTItZXhwZWN0ZWQudHh0
OiBzdHlsZSBhdHRyaWJ1dGUgbm93IGhhcyBhIHRyYWlsaW5nIHNwYWNlLgorICAgICAgICAqIGVk
aXRpbmcvcGFzdGVib2FyZC9pbnRlcmNoYW5nZS1uZXdsaW5lLTEtZXhwZWN0ZWQudHh0OiBObyBs
b25nZXIgaGFzIGEgd3JhcHBpbmcgc3BhbiB3aXRob3V0IGFueSBhdHRyaWJ1dGVzLgorICAgICAg
ICAqIGVkaXRpbmcvcGFzdGVib2FyZC9uZXN0ZWQtYmxvY2tzLXdpdGgtdGV4dC1hcmVhLWV4cGVj
dGVkLnR4dDogRGl0dG8uCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL25lc3RlZC1ibG9j
a3Mtd2l0aC10ZXh0LWZpZWxkLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogZWRpdGlu
Zy9wYXN0ZWJvYXJkL3Bhc3RlLWJsb2NrcXVvdGUtaW50by1ibG9ja3F1b3RlLTItZXhwZWN0ZWQu
dHh0OiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYmxvY2txdW90
ZS1pbnRvLWJsb2NrcXVvdGUtZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5n
L3Bhc3RlYm9hcmQvcHJldmVudC1ibG9jay1uZXN0aW5nLTAxLWV4cGVjdGVkLnR4dDogRGl0dG8u
CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgtcmVkdW5kYW50LXN0eWxl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3Rl
LXdpdGgtcmVkdW5kYW50LXN0eWxlLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTA3ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBmaXgg
YWZ0ZXIgcjkyNTc4LiBJIGFjY2lkZW50YWxseSBhZGRlZCB0aGUgY2FsbCB0byBkdW1wQXNUZXh0
KHRydWUpLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzQ5MzA5ODYtMi1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
LzQ5MzA5ODYtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDkyNTgxKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkLzQ5MzA5ODYtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsMiArMSwyIEBACiBUaGlzIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IGNvbnRlbnQgdGhh
dCBpcyBjb2xvcmVkIGJ5IHRoZSB1c2VyIGlzIHBhc3RlZCB3aXRoIHRoYXQgY29sb3IgZHVyaW5n
IGEgUGFzdGUgYXMgUXVvdGF0aW9uLgotPGJsb2NrcXVvdGU+PHNwYW4gY2xhc3M9IkFwcGxlLXN0
eWxlLXNwYW4iIHN0eWxlPSJjb2xvcjogcmVkOyI+VGhpcyB0ZXh0IHNob3VsZCBiZSByZWQgKGl0
IHNob3VsZCBiZSB3cmFwcGVkIGluIGEgc3R5bGUgc3BhbikuPC9zcGFuPjwvYmxvY2txdW90ZT4K
KzxibG9ja3F1b3RlPjxzcGFuIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBzdHlsZT0iY29sb3I6
IHJlZDsgIj5UaGlzIHRleHQgc2hvdWxkIGJlIHJlZCAoaXQgc2hvdWxkIGJlIHdyYXBwZWQgaW4g
YSBzdHlsZSBzcGFuKS48L3NwYW4+PC9ibG9ja3F1b3RlPgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL2ludGVyY2hhbmdlLW5ld2xpbmUtMS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ludGVyY2hhbmdlLW5ld2xp
bmUtMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDkyNTgxKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL2ludGVyY2hhbmdlLW5ld2xpbmUtMS1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEwLDggKzEwLDcgQEAgRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEVuZEVk
aXRpbmc6VwogVGhlcmUgaXMgYW4gaW50ZXJjaGFuZ2UgbmV3bGluZSBhdCB0aGUgZW5kIG9mIHRo
ZSBpbmNvbWluZyBmcmFnbWVudC4gImJhciIgYW5kICJ4IiBzaG91bGQgYmUgaW4gc2VwYXJhdGUg
cGFyYWdyYXBocwogVGhlIHBhcmFncmFwaCAiYmFyIiBpcyBpbnNpZGUgYSBkaXYgd3JhcHBlZCBp
biBhIHNwYW4sIGFuZCB0aGUgb2xkIHBhc3RlIGNvZGUgdGhhdCBoYW5kbGVkIGludGVyY2hhbmdl
IG5ld2xpbmVzIGRpZCBub3QgaGFuZGxlIHRoaXMgY2FzZS4KIHwgIngiCi18IDxzcGFuPgotfCAg
ICJmb28iCi18ICAgPGRpdj4KLXwgICAgICJiYXIiCit8ICJmb28iCit8IDxkaXY+Cit8ICAgImJh
ciIKIHwgIjwjc2VsZWN0aW9uLWNhcmV0PngiCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvbmVzdGVkLWJsb2Nrcy13aXRoLXRleHQtYXJlYS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL25lc3RlZC1ibG9ja3Mtd2l0
aC10ZXh0LWFyZWEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5MjU4MSkKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9uZXN0ZWQtYmxvY2tzLXdpdGgtdGV4dC1hcmVhLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAgRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRETwogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FU
RTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBm
cm9tIDEgb2YgI3RleHQgPiBTUEFOID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gMSBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGlu
ZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToo
bnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mICN0ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3Rp
bGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb25Ob3RpZmljYXRpb24KQEAgLTMwLDggKzMwLDcgQEAgVGhlc2UgZGVtb25zdHJhdGUg
MTE0NzU6IHRoZSAnXG4ncyBhdCB0aAogfCAgICAgICAgICAgIiAiCiB8ICAgICAiIAogIgotfCAg
ICAgPHNwYW4+Ci18ICAgICAgICJ4PCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAgICAgIng8I3NlbGVj
dGlvbi1jYXJldD4iCiB8ICAgICAiCiAiCiB8ICIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9uZXN0ZWQtYmxvY2tzLXdpdGgtdGV4dC1maWVsZC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL25lc3RlZC1ibG9ja3Mt
d2l0aC10ZXh0LWZpZWxkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTI1ODEpCisrKyBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvbmVzdGVkLWJsb2Nrcy13aXRoLXRleHQtZmllbGQtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01LDcgKzUsNyBAQCBFRElUSU5HIERFTEVHQVRF
OiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERF
TEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJh
bmdlIGZyb20gMSBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCB0byAxIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2Vs
ZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJh
bmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEgb2YgI3RleHQgPiBESVYgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVh
bSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24K
IEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgpAQCAtMjksOCArMjksNyBAQCBUaGVzZSBkZW1vbnN0
cmF0ZSAxMTQ3NTogdGhlICdcbidzIGF0IHRoCiB8ICAgICAgICAgPGRpdj4KIHwgICAgICIgCiAi
Ci18ICAgICA8c3Bhbj4KLXwgICAgICAgIng8I3NlbGVjdGlvbi1jYXJldD4iCit8ICAgICAieDwj
c2VsZWN0aW9uLWNhcmV0PiIKIHwgICAgICIKICIKIHwgIgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWJsb2NrcXVvdGUtaW50by1ibG9ja3F1b3RlLTItZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0
ZS1ibG9ja3F1b3RlLWludG8tYmxvY2txdW90ZS0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTI1
ODEpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYmxvY2txdW90ZS1p
bnRvLWJsb2NrcXVvdGUtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsMTAgKzQs
OSBAQCBUaGlzIHRlc3RzIHBhc3RpbmcgYSBuZXN0ZWQgYmxvY2txdW90ZSBpCiB8ICAgdHlwZT0i
Y2l0ZSIKIHwgICAiT25lIgogfCAgICJUd28iCi18IDxzcGFuPgorfCA8YmxvY2txdW90ZT4KK3wg
ICB0eXBlPSJjaXRlIgogfCAgIDxibG9ja3F1b3RlPgogfCAgICAgdHlwZT0iY2l0ZSIKLXwgICAg
IDxibG9ja3F1b3RlPgotfCAgICAgICB0eXBlPSJjaXRlIgotfCAgICAgICA8ZGl2PgotfCAgICAg
ICAgICJUaHJlZTwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgICAgIDxkaXY+Cit8ICAgICAgICJUaHJl
ZTwjc2VsZWN0aW9uLWNhcmV0PiIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9wYXN0ZS1ibG9ja3F1b3RlLWludG8tYmxvY2txdW90ZS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWJsb2NrcXVvdGUtaW50
by1ibG9ja3F1b3RlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTI1ODEpCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYmxvY2txdW90ZS1pbnRvLWJsb2NrcXVvdGUtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDggKzQsNyBAQCBUaGlzIHRlc3RzIHBhc3Rp
bmcgYSBibG9ja3F1b3RlIGludG8gYSBiCiB8ICAgdHlwZT0iY2l0ZSIKIHwgICAiT25lIgogfCAg
ICJUd28iCi18IDxzcGFuPgotfCAgIDxibG9ja3F1b3RlPgotfCAgICAgdHlwZT0iY2l0ZSIKLXwg
ICAgIDxkaXY+Ci18ICAgICAgICJUaHJlZTwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgPGJsb2NrcXVv
dGU+Cit8ICAgdHlwZT0iY2l0ZSIKK3wgICA8ZGl2PgorfCAgICAgIlRocmVlPCNzZWxlY3Rpb24t
Y2FyZXQ+IgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgt
cmVkdW5kYW50LXN0eWxlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQtc3R5bGUtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdp
dGgtcmVkdW5kYW50LXN0eWxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
MiBAQAorVGhpcyB0ZXN0cyBwYXN0aW5nIGNvbnRlbnQgd2l0aCByZWR1bmRhbnQgaW5saW5lIHN0
eWxlLgorWW91IHNob3VsZCBub3Qgc2VlIGFueSBzdHlsZSBhdHRyaWJ1dGVzIGV4Y2VwdCBvbmUg
b24gdGhlIGIgZWxlbWVudCBhbmQgdGhlcmUgc2hvdWxkIGJlIG5vIHNwYW5zLgorfCA8Yj4KK3wg
ICBzdHlsZT0iZm9udC1zdHlsZTogaXRhbGljOyIKK3wgICA8ZW0+Cit8ICAgICAiaGVsbG8gd29y
bGQiCit8ICAgPGJyPgorfCAgICJXZWJLaXQiCit8ICAgPGJyPgorfCAgIDxlbT4KK3wgICAgICJy
b2Nrczwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgICA8YnI+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQtc3R5bGUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQt
c3R5bGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitlbSB7IHRl
eHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBmb250LXN0eWxlOiBub25lOyB9Cis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJ0ZXN0IiBjb250ZW50ZWRpdGFibGU+PGIgc3R5bGU9
ImZvbnQtc3R5bGU6IGl0YWxpYzsiPjxicj48L2I+PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0JykuZm9jdXMoKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5k
KCdpbnNlcnRIVE1MJywgZmFsc2UsCisgICAgJzxlbSBzdHlsZT0iZm9udC1zdHlsZTogbm9uZTsg
dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IGZvbnQtd2VpZ2h0OiBib2xkOyI+PHNwYW4gc3R5
bGU9ImNvbG9yOiBibGFjazsiPmhlbGxvIHdvcmxkPC9zcGFuPjwvZW0+PGJyPicKKyAgICArICc8
c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij48c3BhbiBjbGFzcz0iQXBwbGUtc3R5bGUt
c3BhbiIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+V2ViS2l0PC9zcGFuPjwvc3Bhbj48YnI+
JworICAgICsgJzxlbT48c3BhbiBzdHlsZT0iZm9udC1zdHlsZTogaXRhbGljOyI+cm9ja3M8L3Nw
YW4+PC9lbT4nKTsKKworTWFya3VwLmRlc2NyaXB0aW9uKCdUaGlzIHRlc3RzIHBhc3RpbmcgY29u
dGVudCB3aXRoIHJlZHVuZGFudCBpbmxpbmUgc3R5bGUuXG4nCisgICAgKyAnWW91IHNob3VsZCBu
b3Qgc2VlIGFueSBzdHlsZSBhdHRyaWJ1dGVzIGV4Y2VwdCBvbmUgb24gdGhlIGIgZWxlbWVudCBh
bmQgdGhlcmUgc2hvdWxkIGJlIG5vIHNwYW5zLicpOworTWFya3VwLmR1bXAoJ3Rlc3QnKTsKKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvcHJldmVudC1ibG9jay1uZXN0aW5nLTAxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcHJldmVudC1ibG9jay1uZXN0aW5n
LTAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTI1ODEpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvcHJldmVudC1ibG9jay1uZXN0aW5nLTAxLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtOSw4ICs5LDcgQEAgRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdAogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEVuZEVkaXRpbmc6V2ViVmlld0Rp
ZEVuZEVkaXRpbmdOb3RpZmljYXRpb24KIFRoZSBjb2RlIGluIHBhc3RlIHRoYXQgcHJldmVudHMg
YmxvY2sgbmVzdGluZyBoYWQgYSBidWcgd2hlcmUgdGhlIG9yZGVyIG9mIHBhc3RlZCBwYXJhZ3Jh
cGhzIGNvdWxkIGJlIHJldmVyc2VkLgogfCAiVGhlcmUgc2hvdWxkIGJlIGFuIGVtcHR5IGxpbmUg
YmV0d2VlbiB0aGVzZSB0d28gcGFyYWdyYXBocy4iCi18IDxzcGFuPgotfCAgIDxkaXY+Ci18ICAg
ICA8YnI+Cit8IDxkaXY+Cit8ICAgPGJyPgogfCA8ZGl2PgogfCAgICJUaGlzIHBhcmFncmFwaCBh
bmQgdGhlIGVtcHR5IGxpbmUgc2hvdWxkIGhhdmUgYmUgaW4gdGhlaXIgb3duIGRpdnMgd2l0aCBh
IHJlZCBib3JkZXIuPCNzZWxlY3Rpb24tY2FyZXQ+Igo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103272</attachid>
            <date>2011-08-08 12:02:54 -0700</date>
            <delta_ts>2011-08-08 12:04:44 -0700</delta_ts>
            <desc>Updated per review</desc>
            <filename>bug-65833-20110808120253.patch</filename>
            <type>text/plain</type>
            <size>24073</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNjExKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDgtMDggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHJlZHVuZGFudCBpbmxp
bmUgc3R5bGVzIGZyb20gdGhlIHBhc3RlZCBjb250ZW50cyBtb3JlIGFnZ3Jlc3NpdmVseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4MzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHJlbW92ZVJl
ZHVuZGFudFN0eWxlc0FuZEtlZXBTdHlsZVNwYW5JbmxpbmUgbW9yZSBhZ2dyZXNzaXZlbHkgcmVt
b3ZlIHJlZHVuZGFudCBzdHlsZXMgYnkgcmVhbGl6aW5nIHRoYXQKKyAgICAgICAgd2hlbiBhbiBl
ZGl0aW5nIGluaGVyaXRhYmxlIHByb3BlcnR5IGluIGFuIGlubGluZSBzdHlsZSBkZWNsYXJhdGlv
biBvZiBhbiBlbGVtZW50IGNhbiBiZSBzYWZlbHkgcmVtb3ZlZAorICAgICAgICBpZiBpdCBpcyBw
cmVzZW50IGVpdGhlciBpbiBzdHlsZSBydWxlcyBvciBpbiBpdHMgYW5jZXN0b3IgYW5kIG5vdCBv
dmVycmlkZGVuIGJ5IHN0eWxlIHJ1bGVzIG9yIGRlZmF1bHQgc3R5bGUKKyAgICAgICAgb2YgdGhl
IGVsZW1lbnQuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgt
cmVkdW5kYW50LXN0eWxlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnBzZXVkb1N0eWxlUnVsZXNG
b3JFbGVtZW50KTogRG8gbm90IG1hdGNoIGF1dGhvciBzdHlsZSBzaGVldHMgaWYgQXV0aG9yQ1NT
UnVsZXMKKyAgICAgICAgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBydWxlcyB0byBpbmNsdWRlLiBU
aGlzIGlzIHVzZWQgaW4gRWRpdGluZ1N0eWxlOjpyZW1vdmVQcm9wZXJ0aWVzSW5FbGVtZW50RGVm
YXVsdFN0eWxlLgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNTdHlsZVNwYW5PclNwYW5XaXRoT25seVN0eWxlQXR0cmlidXRlKTog
QWRkZWQ7IHJldHVybnMgdHJ1ZSBpZiB0aGUgZWxlbWVudCBpcyBhIHN0eWxlIHNwYW4gb3IKKyAg
ICAgICAgc3BhbiBwb3NzaWJseSB3aXRoIGEgc3R5bGUgYXR0cmlidXRlLgorICAgICAgICAqIGVk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVtZW50
KTogVGFrZXMgcnVsZXNUb0luY2x1ZGUuCisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6
Om1lcmdlU3R5bGVGcm9tUnVsZXMpOiBDYWxscyBzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVt
ZW50IHdpdGggQXV0aG9yQ1NTUnVsZXMKKyAgICAgICAgfCBDcm9zc09yaWdpbkNTU1J1bGVzIHRv
IGtlZXAgdGhlIG9yaWdpbmFsIGJlaGF2aW9yLgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0
eWxlOjpyZW1vdmVTdHlsZUZyb21SdWxlc0FuZENvbnRleHQpOiBSZW5hbWVkIGZyb20gcmVtb3Zl
U3R5bGVGcm9tUnVsZXM7IHJlbW92ZXMgc3R5bGVzIHRoYXQKKyAgICAgICAgYXJlIHByZXNlbnQg
aW4gY29udGV4dCBhbmQgbm90IG92ZXJyaWRkZW4gYnkgbWF0Y2hlZCBydWxlcy4KKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6cmVtb3ZlUHJvcGVydGllc0luRWxlbWVudERlZmF1bHRT
dHlsZSk6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmg6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5kYW50U3R5bGVzQW5kS2VlcFN0
eWxlU3BhbklubGluZSk6IFNlZSB0aGUgZGVzY3JpcHRpb24gYWJvdmUuCisKIDIwMTEtMDgtMDgg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYnVp
bGQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lv
biA5MjYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgUGFzc1JlZlB0cjxDU1NSdWxlTGlzdD4g
Q1NTU3R5bGVTZWxlY3RvcgogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKG1fbWF0Y2hBdXRo
b3JBbmRVc2VyU3R5bGVzKSB7CisgICAgaWYgKG1fbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzICYm
IChydWxlc1RvSW5jbHVkZSAmIEF1dGhvckNTU1J1bGVzKSkgewogICAgICAgICBtX2NoZWNrZXIu
bV9zYW1lT3JpZ2luT25seSA9ICEocnVsZXNUb0luY2x1ZGUgJiBDcm9zc09yaWdpbkNTU1J1bGVz
KTsKIAogICAgICAgICAvLyBDaGVjayB0aGUgcnVsZXMgaW4gYXV0aG9yIHNoZWV0cy4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCShyZXZpc2lv
biA5MjYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCwyNiBAQCBib29sIGlzU3R5bGVTcGFuKGNvbnN0
IE5vZGUgKm5vZGUpCiAgICAgcmV0dXJuIGVsZW0tPmhhc0xvY2FsTmFtZShzcGFuQXR0cikgJiYg
ZWxlbS0+Z2V0QXR0cmlidXRlKGNsYXNzQXR0cikgPT0gc3R5bGVTcGFuQ2xhc3NTdHJpbmcoKTsK
IH0KIAorYm9vbCBpc1N0eWxlU3Bhbk9yU3BhbldpdGhPbmx5U3R5bGVBdHRyaWJ1dGUoY29uc3Qg
RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPmhhc1Rh
Z05hbWUoc3BhblRhZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGNvbnN0IGJvb2wg
cmVhZG9ubHkgPSB0cnVlOworICAgIE5hbWVkTm9kZU1hcCogbWFwID0gZWxlbWVudC0+YXR0cmli
dXRlcyhyZWFkb25seSk7CisgICAgaWYgKCFtYXAgfHwgbWFwLT5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgdW5zaWduZWQgbWF0Y2hlZEF0dHJpYnV0ZXMgPSAwOworICAg
IGlmIChlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNzQXR0cikgPT0gc3R5bGVTcGFuQ2xh
c3NTdHJpbmcoKSkKKyAgICAgICAgbWF0Y2hlZEF0dHJpYnV0ZXMrKzsKKyAgICBpZiAoZWxlbWVu
dC0+aGFzQXR0cmlidXRlKHN0eWxlQXR0cikpCisgICAgICAgIG1hdGNoZWRBdHRyaWJ1dGVzKys7
CisKKyAgICBBU1NFUlQobWF0Y2hlZEF0dHJpYnV0ZXMgPD0gbWFwLT5sZW5ndGgoKSk7CisgICAg
cmV0dXJuIG1hdGNoZWRBdHRyaWJ1dGVzID09IG1hcC0+bGVuZ3RoKCk7Cit9CisKIHN0YXRpYyBi
b29sIGlzVW5zdHlsZWRTdHlsZVNwYW4oY29uc3QgTm9kZSogbm9kZSkKIHsKICAgICBpZiAoIW5v
ZGUgfHwgIW5vZGUtPmlzSFRNTEVsZW1lbnQoKSB8fCAhbm9kZS0+aGFzVGFnTmFtZShzcGFuVGFn
KSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgJKHJl
dmlzaW9uIDkyNjExKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsNiArMTMwLDcgQEAgcHJpdmF0ZToKIH07CiAKIGJv
b2wgaXNTdHlsZVNwYW4oY29uc3QgTm9kZSopOworYm9vbCBpc1N0eWxlU3Bhbk9yU3BhbldpdGhP
bmx5U3R5bGVBdHRyaWJ1dGUoY29uc3QgRWxlbWVudCopOwogUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gY3JlYXRlU3R5bGVTcGFuRWxlbWVudChEb2N1bWVudCopOwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCShyZXZp
c2lvbiA5MjYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODE4LDExICs4MTgsMTAgQEAgdm9pZCBFZGl0aW5nU3R5bGU6Om1l
cmdlU3R5bGUoQ1NTTXV0YWJsZQogICAgIH0KIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8Q1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoRWxl
bWVudCogZWxlbWVudCkKK3N0YXRpYyBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uPiBzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIHVu
c2lnbmVkIHJ1bGVzVG9JbmNsdWRlKQogewogICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbj4gc3R5bGUgPSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCk7Ci0g
ICAgUmVmUHRyPENTU1J1bGVMaXN0PiBtYXRjaGVkUnVsZXMgPSBlbGVtZW50LT5kb2N1bWVudCgp
LT5zdHlsZVNlbGVjdG9yKCktPnN0eWxlUnVsZXNGb3JFbGVtZW50KGVsZW1lbnQsCi0gICAgICAg
IENTU1N0eWxlU2VsZWN0b3I6OkF1dGhvckNTU1J1bGVzIHwgQ1NTU3R5bGVTZWxlY3Rvcjo6Q3Jv
c3NPcmlnaW5DU1NSdWxlcyk7CisgICAgUmVmUHRyPENTU1J1bGVMaXN0PiBtYXRjaGVkUnVsZXMg
PSBlbGVtZW50LT5kb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCktPnN0eWxlUnVsZXNGb3JFbGVt
ZW50KGVsZW1lbnQsIHJ1bGVzVG9JbmNsdWRlKTsKICAgICBpZiAobWF0Y2hlZFJ1bGVzKSB7CiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtYXRjaGVkUnVsZXMtPmxlbmd0aCgpOyBp
KyspIHsKICAgICAgICAgICAgIGlmIChtYXRjaGVkUnVsZXMtPml0ZW0oaSktPnR5cGUoKSA9PSBD
U1NSdWxlOjpTVFlMRV9SVUxFKSB7CkBAIC04MzcsNyArODM2LDggQEAgc3RhdGljIFBhc3NSZWZQ
dHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYQogCiB2b2lkIEVkaXRpbmdTdHlsZTo6bWVyZ2VTdHls
ZUZyb21SdWxlcyhTdHlsZWRFbGVtZW50KiBlbGVtZW50KQogewotICAgIFJlZlB0cjxDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzID0gc3R5bGVGcm9tTWF0
Y2hlZFJ1bGVzRm9yRWxlbWVudChlbGVtZW50KTsKKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24+IHN0eWxlRnJvbU1hdGNoZWRSdWxlcyA9IHN0eWxlRnJvbU1hdGNoZWRSdWxl
c0ZvckVsZW1lbnQoZWxlbWVudCwKKyAgICAgICAgQ1NTU3R5bGVTZWxlY3Rvcjo6QXV0aG9yQ1NT
UnVsZXMgfCBDU1NTdHlsZVNlbGVjdG9yOjpDcm9zc09yaWdpbkNTU1J1bGVzKTsKICAgICAvLyBT
dHlsZXMgZnJvbSB0aGUgaW5saW5lIHN0eWxlIGRlY2xhcmF0aW9uLCBoZWxkIGluIHRoZSB2YXJp
YWJsZSAic3R5bGUiLCB0YWtlIHByZWNlZGVuY2UgCiAgICAgLy8gb3ZlciB0aG9zZSBmcm9tIG1h
dGNoZWQgcnVsZXMuCiAgICAgaWYgKG1fbXV0YWJsZVN0eWxlKQpAQCAtODcwLDE3ICs4NzAsNDEg
QEAgdm9pZCBFZGl0aW5nU3R5bGU6Om1lcmdlU3R5bGVGcm9tUnVsZXNGbwogICAgIG1fbXV0YWJs
ZVN0eWxlLT5tZXJnZShmcm9tQ29tcHV0ZWRTdHlsZS5nZXQoKSk7CiB9CiAKLXZvaWQgRWRpdGlu
Z1N0eWxlOjpyZW1vdmVTdHlsZUZyb21SdWxlcyhTdHlsZWRFbGVtZW50KiBlbGVtZW50KQordm9p
ZCBFZGl0aW5nU3R5bGU6OnJlbW92ZVN0eWxlRnJvbVJ1bGVzQW5kQ29udGV4dChTdHlsZWRFbGVt
ZW50KiBlbGVtZW50LCBOb2RlKiBjb250ZXh0KQogeworICAgIEFTU0VSVChlbGVtZW50KTsKICAg
ICBpZiAoIW1fbXV0YWJsZVN0eWxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlRnJvbU1hdGNoZWRSdWxlcyA9IHN0eWxlRnJv
bU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCk7Ci0gICAgaWYgKCFzdHlsZUZyb21NYXRj
aGVkUnVsZXMpCisgICAgLy8gMS4gUmVtb3ZlIHN0eWxlIGZyb20gbWF0Y2hlZCBydWxlcyBiZWNh
dXNlIHN0eWxlIHJlbWFpbiB3aXRob3V0IHJlcGVhdGluZyBpdCBpbiBpbmxpbmUgc3R5bGUgZGVj
bGFyYXRpb24KKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlRnJv
bU1hdGNoZWRSdWxlcyA9IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwg
Q1NTU3R5bGVTZWxlY3Rvcjo6QWxsQnV0RW1wdHlDU1NSdWxlcyk7CisgICAgaWYgKHN0eWxlRnJv
bU1hdGNoZWRSdWxlcyAmJiBzdHlsZUZyb21NYXRjaGVkUnVsZXMtPmxlbmd0aCgpKQorICAgICAg
ICBtX211dGFibGVTdHlsZSA9IGdldFByb3BlcnRpZXNOb3RJbihtX211dGFibGVTdHlsZS5nZXQo
KSwgc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzLmdldCgpKTsKKworICAgIC8vIDIuIFJlbW92ZSBzdHls
ZSBwcmVzZW50IGluIGNvbnRleHQgYW5kIG5vdCBvdmVycmlkZW4gYnkgbWF0Y2hlZCBydWxlcy4K
KyAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBjb21wdXRlZFN0eWxlID0gRWRpdGluZ1N0eWxlOjpj
cmVhdGUoY29udGV4dCwgRWRpdGluZ0luaGVyaXRhYmxlUHJvcGVydGllc0FuZEJhY2tncm91bmRD
b2xvckluRWZmZWN0KTsKKyAgICBpZiAoY29tcHV0ZWRTdHlsZS0+bV9tdXRhYmxlU3R5bGUpIHsK
KyAgICAgICAgY29tcHV0ZWRTdHlsZS0+cmVtb3ZlUHJvcGVydGllc0luRWxlbWVudERlZmF1bHRT
dHlsZShlbGVtZW50KTsKKyAgICAgICAgbV9tdXRhYmxlU3R5bGUgPSBnZXRQcm9wZXJ0aWVzTm90
SW4obV9tdXRhYmxlU3R5bGUuZ2V0KCksIGNvbXB1dGVkU3R5bGUtPm1fbXV0YWJsZVN0eWxlLmdl
dCgpKTsKKyAgICB9Cit9CisKK3ZvaWQgRWRpdGluZ1N0eWxlOjpyZW1vdmVQcm9wZXJ0aWVzSW5F
bGVtZW50RGVmYXVsdFN0eWxlKFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFt
X211dGFibGVTdHlsZSB8fCAhbV9tdXRhYmxlU3R5bGUtPmxlbmd0aCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX211dGFibGVTdHlsZSA9IGdldFByb3BlcnRpZXNOb3RJbihtX211dGFibGVT
dHlsZS5nZXQoKSwgc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzLmdldCgpKTsKKyAgICBSZWZQdHI8Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IGRlZmF1bHRTdHlsZSA9IHN0eWxlRnJvbU1hdGNoZWRS
dWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgQ1NTU3R5bGVTZWxlY3Rvcjo6VUFBbmRVc2VyQ1NTUnVs
ZXMpOworCisgICAgVmVjdG9yPGludD4gcHJvcGVydGllc1RvUmVtb3ZlKGRlZmF1bHRTdHlsZS0+
bGVuZ3RoKCkpOworICAgIHNpemVfdCBpID0gMDsKKyAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gZGVmYXVsdFN0eWxlLT5lbmQoKTsKKyAgICBmb3Ig
KENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjb25zdF9pdGVyYXRvciBpdCA9IGRlZmF1bHRT
dHlsZS0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0LCArK2kpCisgICAgICAgIHByb3BlcnRpZXNU
b1JlbW92ZVtpXSA9IGl0LT5pZCgpOworCisgICAgbV9tdXRhYmxlU3R5bGUtPnJlbW92ZVByb3Bl
cnRpZXNJblNldChwcm9wZXJ0aWVzVG9SZW1vdmUuZGF0YSgpLCBwcm9wZXJ0aWVzVG9SZW1vdmUu
c2l6ZSgpKTsKIH0KKyAgICAKIAogc3RhdGljIHZvaWQgcmVjb25jaWxlVGV4dERlY29yYXRpb25Q
cm9wZXJ0aWVzKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkKIHsgICAgCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgJKHJldmlzaW9uIDkyNjExKQorKysg
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1lcmdlSW5saW5lU3R5bGVPZkVsZW1l
bnQoU3R5bGVkRWxlbWVudCopOwogICAgIHZvaWQgbWVyZ2VTdHlsZUZyb21SdWxlcyhTdHlsZWRF
bGVtZW50Kik7CiAgICAgdm9pZCBtZXJnZVN0eWxlRnJvbVJ1bGVzRm9yU2VyaWFsaXphdGlvbihT
dHlsZWRFbGVtZW50Kik7Ci0gICAgdm9pZCByZW1vdmVTdHlsZUZyb21SdWxlcyhTdHlsZWRFbGVt
ZW50Kik7CisgICAgdm9pZCByZW1vdmVTdHlsZUZyb21SdWxlc0FuZENvbnRleHQoU3R5bGVkRWxl
bWVudCosIE5vZGUqIGNvbnRleHQpOwogCiAgICAgZmxvYXQgZm9udFNpemVEZWx0YSgpIGNvbnN0
IHsgcmV0dXJuIG1fZm9udFNpemVEZWx0YTsgfQogICAgIGJvb2wgaGFzRm9udFNpemVEZWx0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fZm9udFNpemVEZWx0YSAhPSBOb0ZvbnREZWx0YTsgfQpAQCAtMTQx
LDYgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBleHRyYWN0Rm9udFNpemVEZWx0YSgpOwog
ICAgIGJvb2wgY29uZmxpY3RzV2l0aElubGluZVN0eWxlT2ZFbGVtZW50KFN0eWxlZEVsZW1lbnQq
LCBFZGl0aW5nU3R5bGUqIGV4dHJhY3RlZFN0eWxlLCBWZWN0b3I8Q1NTUHJvcGVydHlJRD4qIGNv
bmZsaWN0aW5nUHJvcGVydGllcykgY29uc3Q7CiAgICAgdm9pZCBtZXJnZVN0eWxlKENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uKik7CisgICAgdm9pZCByZW1vdmVQcm9wZXJ0aWVzSW5FbGVtZW50
RGVmYXVsdFN0eWxlKFN0eWxlZEVsZW1lbnQqKTsKIAogICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbj4gbV9tdXRhYmxlU3R5bGU7CiAgICAgYm9vbCBtX3Nob3VsZFVzZUZpeGVk
RGVmYXVsdEZvbnRTaXplOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAJKHJldmlzaW9uIDkyNjExKQorKysgU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ3OCwzNCArNDc4LDU1IEBAIGJvb2wgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnNob3Vs
ZE1lcmcKIC8vIGEgZGl2IGluc2VydGVkIGludG8gYSBkb2N1bWVudCB3aXRoIGRpdiB7IGRpc3Bs
YXk6aW5saW5lOyB9Lgogdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5k
YW50U3R5bGVzQW5kS2VlcFN0eWxlU3BhbklubGluZSgpCiB7Ci0gICAgZm9yIChSZWZQdHI8Tm9k
ZT4gbm9kZSA9IG1fZmlyc3ROb2RlSW5zZXJ0ZWQuZ2V0KCk7IG5vZGU7IG5vZGUgPSBub2RlLT50
cmF2ZXJzZU5leHROb2RlKCkpIHsKKyAgICBSZWZQdHI8Tm9kZT4gcGFzdEVuZE5vZGUgPSBtX2xh
c3RMZWFmSW5zZXJ0ZWQgPyBtX2xhc3RMZWFmSW5zZXJ0ZWQtPnRyYXZlcnNlTmV4dE5vZGUoKSA6
IDA7CisgICAgUmVmUHRyPE5vZGU+IG5leHQ7CisgICAgZm9yIChSZWZQdHI8Tm9kZT4gbm9kZSA9
IG1fZmlyc3ROb2RlSW5zZXJ0ZWQuZ2V0KCk7IG5vZGUgJiYgbm9kZSAhPSBwYXN0RW5kTm9kZTsg
bm9kZSA9IG5leHQpIHsKICAgICAgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS81MzcxNTM2
PiBTdHlsZSBydWxlcyB0aGF0IG1hdGNoIHBhc3RlZCBjb250ZW50IGNhbiBjaGFuZ2UgaXQncyBh
cHBlYXJhbmNlCi0gICAgICAgIGlmIChpc1N0eWxlU3Bhbihub2RlLmdldCgpKSkgewotICAgICAg
ICAgICAgSFRNTEVsZW1lbnQqIGUgPSB0b0hUTUxFbGVtZW50KG5vZGUuZ2V0KCkpOworCisgICAg
ICAgIG5leHQgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKCk7CisgICAgICAgIGlmICghbm9kZS0+
aXNTdHlsZWRFbGVtZW50KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBTdHls
ZWRFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KG5vZGUuZ2V0
KCkpOworCisgICAgICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBpbmxpbmVTdHlsZSA9
IGVsZW1lbnQtPmlubGluZVN0eWxlRGVjbCgpOworICAgICAgICBSZWZQdHI8RWRpdGluZ1N0eWxl
PiBuZXdJbmxpbmVTdHlsZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKGlubGluZVN0eWxlKTsKKyAg
ICAgICAgaWYgKGlubGluZVN0eWxlKSB7CisgICAgICAgICAgICBDb250YWluZXJOb2RlKiBjb250
ZXh0ID0gZWxlbWVudC0+cGFyZW50Tm9kZSgpOworCisgICAgICAgICAgICAvLyBJZiBNYWlsIHdy
YXBzIHRoZSBmcmFnbWVudCB3aXRoIGEgUGFzdGUgYXMgUXVvdGF0aW9uIGJsb2NrcXVvdGUsIG9y
IGlmIHlvdSdyZSBwYXN0aW5nIGludG8gYSBxdW90ZWQgcmVnaW9uLAorICAgICAgICAgICAgLy8g
c3R5bGVzIGZyb20gYmxvY2txdW90ZU5vZGUgYXJlIGFsbG93ZWQgdG8gb3ZlcnJpZGUgdGhvc2Ug
ZnJvbSB0aGUgc291cmNlIGRvY3VtZW50LCBzZWUgPHJkYXI6Ly9wcm9ibGVtLzQ5MzA5ODY+IGFu
ZCA8cmRhcjovL3Byb2JsZW0vNTA4OTMyNz4uCisgICAgICAgICAgICBOb2RlKiBibG9ja3F1b3Rl
Tm9kZSA9IGlzTWFpbFBhc3RlQXNRdW90YXRpb25Ob2RlKGNvbnRleHQpID8gY29udGV4dCA6IGVu
Y2xvc2luZ05vZGVPZlR5cGUoZmlyc3RQb3NpdGlvbkluTm9kZShjb250ZXh0KSwgaXNNYWlsQmxv
Y2txdW90ZSwgQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpOworICAgICAgICAgICAgaWYgKGJsb2Nr
cXVvdGVOb2RlKQorICAgICAgICAgICAgICAgIG5ld0lubGluZVN0eWxlLT5yZW1vdmVTdHlsZUZy
b21SdWxlc0FuZENvbnRleHQoZWxlbWVudCwgZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkp
OworCisgICAgICAgICAgICBuZXdJbmxpbmVTdHlsZS0+cmVtb3ZlU3R5bGVGcm9tUnVsZXNBbmRD
b250ZXh0KGVsZW1lbnQsIGNvbnRleHQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFpbmxp
bmVTdHlsZSB8fCBuZXdJbmxpbmVTdHlsZS0+aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAo
aXNTdHlsZVNwYW5PclNwYW5XaXRoT25seVN0eWxlQXR0cmlidXRlKGVsZW1lbnQpKQorICAgICAg
ICAgICAgICAgIHJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oZWxlbWVudCk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVtb3ZlTm9kZUF0dHJpYnV0ZShlbGVtZW50LCBz
dHlsZUF0dHIpOworICAgICAgICB9IGVsc2UgaWYgKG5ld0lubGluZVN0eWxlLT5zdHlsZSgpLT5s
ZW5ndGgoKSAhPSBpbmxpbmVTdHlsZS0+bGVuZ3RoKCkpCisgICAgICAgICAgICBzZXROb2RlQXR0
cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0ciwgbmV3SW5saW5lU3R5bGUtPnN0eWxlKCktPmNzc1Rl
eHQoKSk7CisKKyAgICAgICAgaWYgKGlzU3R5bGVTcGFuKGVsZW1lbnQpKSB7CisgICAgICAgICAg
ICBpZiAoIWVsZW1lbnQtPmZpcnN0Q2hpbGQoKSkgeworICAgICAgICAgICAgICAgIHJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oZWxlbWVudCk7CisgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBUaGVyZSBhcmUgb3RoZXIgc3R5bGVzIHRo
YXQgc3R5bGUgcnVsZXMgY2FuIGdpdmUgdG8gc3R5bGUgc3BhbnMsCiAgICAgICAgICAgICAvLyBi
dXQgdGhlc2UgYXJlIHRoZSB0d28gaW1wb3J0YW50IG9uZXMgYmVjYXVzZSB0aGV5J2xsIHByZXZl
bnQKICAgICAgICAgICAgIC8vIGluc2VydGVkIGNvbnRlbnQgZnJvbSBhcHBlYXJpbmcgaW4gdGhl
IHJpZ2h0IHBhcmFncmFwaC4KICAgICAgICAgICAgIC8vIEZJWE1FOiBIeWF0dCBpcyBjb25jZXJu
ZWQgdGhhdCBzZWxlY3RpdmVseSB1c2luZyBkaXNwbGF5OmlubGluZSB3aWxsIGdpdmUgaW5jb25z
aXN0ZW50CiAgICAgICAgICAgICAvLyByZXN1bHRzLiBXZSBhbHJlYWR5IGtub3cgb25lIGlzc3Vl
IGJlY2F1c2UgdGQgZWxlbWVudHMgaWdub3JlIHRoZWlyIGRpc3BsYXkgcHJvcGVydHkKICAgICAg
ICAgICAgIC8vIGluIHF1aXJrcyBtb2RlICh3aGljaCBNYWlsLmFwcCBpcyBhbHdheXMgaW4pLiBX
ZSBzaG91bGQgbG9vayBmb3IgYW4gYWx0ZXJuYXRpdmUuCi0gICAgICAgICAgICBpZiAoaXNCbG9j
ayhlKSkKLSAgICAgICAgICAgICAgICBlLT5nZXRJbmxpbmVTdHlsZURlY2woKS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBDU1NWYWx1ZUlubGluZSk7Ci0gICAgICAgICAgICBpZiAo
ZS0+cmVuZGVyZXIoKSAmJiBlLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5pc0Zsb2F0aW5nKCkpCi0g
ICAgICAgICAgICAgICAgZS0+Z2V0SW5saW5lU3R5bGVEZWNsKCktPnNldFByb3BlcnR5KENTU1By
b3BlcnR5RmxvYXQsIENTU1ZhbHVlTm9uZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZS0+aXNT
dHlsZWRFbGVtZW50KCkpIHsKLSAgICAgICAgICAgIFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQgPSBz
dGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4obm9kZS5nZXQoKSk7Ci0gICAgICAgICAgICBpZiAo
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIGlubGluZVN0eWxlID0gZWxlbWVudC0+aW5saW5l
U3R5bGVEZWNsKCkpIHsKLSAgICAgICAgICAgICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBuZXdJ
bmxpbmVTdHlsZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKGlubGluZVN0eWxlKTsKLSAgICAgICAg
ICAgICAgICBuZXdJbmxpbmVTdHlsZS0+cmVtb3ZlU3R5bGVGcm9tUnVsZXMoZWxlbWVudCk7Ci0g
ICAgICAgICAgICAgICAgaWYgKCFuZXdJbmxpbmVTdHlsZS0+c3R5bGUoKSB8fCAhbmV3SW5saW5l
U3R5bGUtPnN0eWxlKCktPmxlbmd0aCgpKQotICAgICAgICAgICAgICAgICAgICByZW1vdmVOb2Rl
QXR0cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0cik7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAo
bmV3SW5saW5lU3R5bGUtPnN0eWxlKCktPmxlbmd0aCgpIDwgaW5saW5lU3R5bGUtPmxlbmd0aCgp
KQotICAgICAgICAgICAgICAgICAgICBzZXROb2RlQXR0cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0
ciwgbmV3SW5saW5lU3R5bGUtPnN0eWxlKCktPmNzc1RleHQoKSk7ICAgICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc0Jsb2NrKGVsZW1lbnQpKQorICAg
ICAgICAgICAgICAgIGVsZW1lbnQtPmdldElubGluZVN0eWxlRGVjbCgpLT5zZXRQcm9wZXJ0eShD
U1NQcm9wZXJ0eURpc3BsYXksIENTU1ZhbHVlSW5saW5lKTsKKyAgICAgICAgICAgIGlmIChlbGVt
ZW50LT5yZW5kZXJlcigpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCktPmlzRmxvYXRp
bmcoKSkKKyAgICAgICAgICAgICAgICBlbGVtZW50LT5nZXRJbmxpbmVTdHlsZURlY2woKS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlGbG9hdCwgQ1NTVmFsdWVOb25lKTsKICAgICAgICAgfQotCi0g
ICAgICAgIGlmIChub2RlID09IG1fbGFzdExlYWZJbnNlcnRlZCkKLSAgICAgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTI2MTEpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxMS0wOC0wOCAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgcmVkdW5kYW50
IGlubGluZSBzdHlsZXMgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRzIG1vcmUgYWdncmVzc2l2ZWx5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTgzMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEg
dGVzdCB0byBwYXN0ZSBjb250ZW50cyB3aXRoIG1hbnkgcmVkdW5kYW50IHN0eWxlcy4gV2ViS2l0
IHNob3VsZCByZW1vdmUgYXMgbXVjaCBzdHlsZSBzcGFucyBhcyBwb3NzaWJsZQorICAgICAgICAo
YWxsIG9mIHRoaXMgaW4gdGhpcyBjYXNlKS4KKworICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2Fy
ZC80OTMwOTg2LTItZXhwZWN0ZWQudHh0OiBzdHlsZSBhdHRyaWJ1dGUgbm93IGhhcyBhIHRyYWls
aW5nIHNwYWNlLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9pbnRlcmNoYW5nZS1uZXds
aW5lLTEtZXhwZWN0ZWQudHh0OiBObyBsb25nZXIgaGFzIGEgd3JhcHBpbmcgc3BhbiB3aXRob3V0
IGFueSBhdHRyaWJ1dGVzLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9uZXN0ZWQtYmxv
Y2tzLXdpdGgtdGV4dC1hcmVhLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogZWRpdGlu
Zy9wYXN0ZWJvYXJkL25lc3RlZC1ibG9ja3Mtd2l0aC10ZXh0LWZpZWxkLWV4cGVjdGVkLnR4dDog
RGl0dG8uCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWJsb2NrcXVvdGUtaW50
by1ibG9ja3F1b3RlLTItZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL3Bh
c3RlYm9hcmQvcGFzdGUtYmxvY2txdW90ZS1pbnRvLWJsb2NrcXVvdGUtZXhwZWN0ZWQudHh0OiBE
aXR0by4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcHJldmVudC1ibG9jay1uZXN0aW5n
LTAxLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bh
c3RlLXdpdGgtcmVkdW5kYW50LXN0eWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgtcmVkdW5kYW50LXN0eWxlLmh0bWw6IEFkZGVk
LgorCiAyMDExLTA4LTA4ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCBtYXJrIHNvbWUgdGVzdHMgYXMgZmxha3kgb24gY2hyb21pdW0uCkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDkzMDk4Ni0yLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDkzMDk4Ni0yLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gOTI2MTEpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvNDkzMDk4Ni0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyICsxLDIg
QEAKIFRoaXMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgY29udGVudCB0aGF0IGlzIGNvbG9yZWQg
YnkgdGhlIHVzZXIgaXMgcGFzdGVkIHdpdGggdGhhdCBjb2xvciBkdXJpbmcgYSBQYXN0ZSBhcyBR
dW90YXRpb24uCi08YmxvY2txdW90ZT48c3BhbiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgc3R5
bGU9ImNvbG9yOiByZWQ7Ij5UaGlzIHRleHQgc2hvdWxkIGJlIHJlZCAoaXQgc2hvdWxkIGJlIHdy
YXBwZWQgaW4gYSBzdHlsZSBzcGFuKS48L3NwYW4+PC9ibG9ja3F1b3RlPgorPGJsb2NrcXVvdGU+
PHNwYW4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJjb2xvcjogcmVkOyAiPlRoaXMg
dGV4dCBzaG91bGQgYmUgcmVkIChpdCBzaG91bGQgYmUgd3JhcHBlZCBpbiBhIHN0eWxlIHNwYW4p
Ljwvc3Bhbj48L2Jsb2NrcXVvdGU+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvaW50ZXJjaGFuZ2UtbmV3bGluZS0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW50ZXJjaGFuZ2UtbmV3bGluZS0xLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gOTI2MTEpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
aW50ZXJjaGFuZ2UtbmV3bGluZS0xLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTAs
OCArMTAsNyBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkRW5kRWRpdGluZzpXCiBUaGVy
ZSBpcyBhbiBpbnRlcmNoYW5nZSBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgdGhlIGluY29taW5nIGZy
YWdtZW50LiAiYmFyIiBhbmQgIngiIHNob3VsZCBiZSBpbiBzZXBhcmF0ZSBwYXJhZ3JhcGhzCiBU
aGUgcGFyYWdyYXBoICJiYXIiIGlzIGluc2lkZSBhIGRpdiB3cmFwcGVkIGluIGEgc3BhbiwgYW5k
IHRoZSBvbGQgcGFzdGUgY29kZSB0aGF0IGhhbmRsZWQgaW50ZXJjaGFuZ2UgbmV3bGluZXMgZGlk
IG5vdCBoYW5kbGUgdGhpcyBjYXNlLgogfCAieCIKLXwgPHNwYW4+Ci18ICAgImZvbyIKLXwgICA8
ZGl2PgotfCAgICAgImJhciIKK3wgImZvbyIKK3wgPGRpdj4KK3wgICAiYmFyIgogfCAiPCNzZWxl
Y3Rpb24tY2FyZXQ+eCIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9uZXN0
ZWQtYmxvY2tzLXdpdGgtdGV4dC1hcmVhLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvbmVzdGVkLWJsb2Nrcy13aXRoLXRleHQtYXJlYS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDkyNjExKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL25lc3RlZC1ibG9ja3Mtd2l0aC10ZXh0LWFyZWEtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC01LDcgKzUsNyBAQCBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxl
Y3RlZERPCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlv
bgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFu
Z2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4
dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mICN0
ZXh0ID4gU1BBTiA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5
Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJh
bmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvIDEgb2YgI3RleHQgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpG
QUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlm
aWNhdGlvbgpAQCAtMzAsOCArMzAsNyBAQCBUaGVzZSBkZW1vbnN0cmF0ZSAxMTQ3NTogdGhlICdc
bidzIGF0IHRoCiB8ICAgICAgICAgICAiICIKIHwgICAgICIgCiAiCi18ICAgICA8c3Bhbj4KLXwg
ICAgICAgIng8I3NlbGVjdGlvbi1jYXJldD4iCit8ICAgICAieDwjc2VsZWN0aW9uLWNhcmV0PiIK
IHwgICAgICIKICIKIHwgIgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL25l
c3RlZC1ibG9ja3Mtd2l0aC10ZXh0LWZpZWxkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvbmVzdGVkLWJsb2Nrcy13aXRoLXRleHQtZmll
bGQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5MjYxMSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9uZXN0ZWQtYmxvY2tzLXdpdGgtdGV4dC1maWVsZC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBAIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5n
ZVNlbGVjdGVkRE8KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246
V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3Vs
ZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9m
ICN0ZXh0ID4gU1BBTiA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEg
b2YgI3RleHQgPiBTUEFOID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZm
aW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UK
K0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRv
RE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gMSBvZiAjdGV4dCA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0
aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
Tm90aWZpY2F0aW9uCkBAIC0yOSw4ICsyOSw3IEBAIFRoZXNlIGRlbW9uc3RyYXRlIDExNDc1OiB0
aGUgJ1xuJ3MgYXQgdGgKIHwgICAgICAgICA8ZGl2PgogfCAgICAgIiAKICIKLXwgICAgIDxzcGFu
PgotfCAgICAgICAieDwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgICAgICJ4PCNzZWxlY3Rpb24tY2Fy
ZXQ+IgogfCAgICAgIgogIgogfCAiCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvcGFzdGUtYmxvY2txdW90ZS1pbnRvLWJsb2NrcXVvdGUtMi1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWJsb2NrcXVvdGUt
aW50by1ibG9ja3F1b3RlLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5MjYxMSkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ibG9ja3F1b3RlLWludG8tYmxvY2txdW90
ZS0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCwxMCArNCw5IEBAIFRoaXMgdGVz
dHMgcGFzdGluZyBhIG5lc3RlZCBibG9ja3F1b3RlIGkKIHwgICB0eXBlPSJjaXRlIgogfCAgICJP
bmUiCiB8ICAgIlR3byIKLXwgPHNwYW4+Cit8IDxibG9ja3F1b3RlPgorfCAgIHR5cGU9ImNpdGUi
CiB8ICAgPGJsb2NrcXVvdGU+CiB8ICAgICB0eXBlPSJjaXRlIgotfCAgICAgPGJsb2NrcXVvdGU+
Ci18ICAgICAgIHR5cGU9ImNpdGUiCi18ICAgICAgIDxkaXY+Ci18ICAgICAgICAgIlRocmVlPCNz
ZWxlY3Rpb24tY2FyZXQ+IgorfCAgICAgPGRpdj4KK3wgICAgICAgIlRocmVlPCNzZWxlY3Rpb24t
Y2FyZXQ+IgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWJsb2Nr
cXVvdGUtaW50by1ibG9ja3F1b3RlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYmxvY2txdW90ZS1pbnRvLWJsb2NrcXVvdGUt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5MjYxMSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC9wYXN0ZS1ibG9ja3F1b3RlLWludG8tYmxvY2txdW90ZS1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTQsOCArNCw3IEBAIFRoaXMgdGVzdHMgcGFzdGluZyBhIGJsb2NrcXVv
dGUgaW50byBhIGIKIHwgICB0eXBlPSJjaXRlIgogfCAgICJPbmUiCiB8ICAgIlR3byIKLXwgPHNw
YW4+Ci18ICAgPGJsb2NrcXVvdGU+Ci18ICAgICB0eXBlPSJjaXRlIgotfCAgICAgPGRpdj4KLXwg
ICAgICAgIlRocmVlPCNzZWxlY3Rpb24tY2FyZXQ+IgorfCA8YmxvY2txdW90ZT4KK3wgICB0eXBl
PSJjaXRlIgorfCAgIDxkaXY+Cit8ICAgICAiVGhyZWU8I3NlbGVjdGlvbi1jYXJldD4iCkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQtc3R5
bGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtd2l0aC1yZWR1bmRhbnQt
c3R5bGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitUaGlzIHRl
c3RzIHBhc3RpbmcgY29udGVudCB3aXRoIHJlZHVuZGFudCBpbmxpbmUgc3R5bGUuCitZb3Ugc2hv
dWxkIG5vdCBzZWUgYW55IHN0eWxlIGF0dHJpYnV0ZXMgZXhjZXB0IG9uZSBvbiB0aGUgYiBlbGVt
ZW50IGFuZCB0aGVyZSBzaG91bGQgYmUgbm8gc3BhbnMuCit8IDxiPgorfCAgIHN0eWxlPSJmb250
LXN0eWxlOiBpdGFsaWM7IgorfCAgIDxlbT4KK3wgICAgICJoZWxsbyB3b3JsZCIKK3wgICA8YnI+
Cit8ICAgIldlYktpdCIKK3wgICA8YnI+Cit8ICAgPGVtPgorfCAgICAgInJvY2tzPCNzZWxlY3Rp
b24tY2FyZXQ+IgorfCAgIDxicj4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS13aXRoLXJlZHVuZGFudC1zdHlsZS5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXdpdGgt
cmVkdW5kYW50LXN0eWxlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2VtIHsgdGV4dC1kZWNvcmF0aW9u
OiB1bmRlcmxpbmU7IGZvbnQtc3R5bGU6IG5vbmU7IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9InRlc3QiIGNvbnRlbnRlZGl0YWJsZT48YiBzdHlsZT0iZm9udC1zdHlsZTog
aXRhbGljOyI+PGJyPjwvYj48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVt
cC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QnKS5mb2N1cygpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydEhUTUwn
LCBmYWxzZSwKKyAgICAnPGVtIHN0eWxlPSJmb250LXN0eWxlOiBub25lOyB0ZXh0LWRlY29yYXRp
b246IHVuZGVybGluZTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij48c3BhbiBzdHlsZT0iY29sb3I6IGJs
YWNrOyI+aGVsbG8gd29ybGQ8L3NwYW4+PC9lbT48YnI+JworICAgICsgJzxzcGFuIHN0eWxlPSJm
b250LXdlaWdodDogYm9sZDsiPjxzcGFuIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBzdHlsZT0i
Zm9udC13ZWlnaHQ6IGJvbGQ7Ij5XZWJLaXQ8L3NwYW4+PC9zcGFuPjxicj4nCisgICAgKyAnPGVt
PjxzcGFuIHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWM7Ij5yb2Nrczwvc3Bhbj48L2VtPicpOwor
CitNYXJrdXAuZGVzY3JpcHRpb24oJ1RoaXMgdGVzdHMgcGFzdGluZyBjb250ZW50IHdpdGggcmVk
dW5kYW50IGlubGluZSBzdHlsZS5cbicKKyAgICArICdZb3Ugc2hvdWxkIG5vdCBzZWUgYW55IHN0
eWxlIGF0dHJpYnV0ZXMgZXhjZXB0IG9uZSBvbiB0aGUgYiBlbGVtZW50IGFuZCB0aGVyZSBzaG91
bGQgYmUgbm8gc3BhbnMuJyk7CitNYXJrdXAuZHVtcCgndGVzdCcpOworCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wcmV2
ZW50LWJsb2NrLW5lc3RpbmctMDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wcmV2ZW50LWJsb2NrLW5lc3RpbmctMDEtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA5MjYxMSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9w
cmV2ZW50LWJsb2NrLW5lc3RpbmctMDEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05
LDggKzksNyBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0CiBFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkRW5kRWRpdGluZzpXZWJWaWV3RGlkRW5kRWRpdGluZ05v
dGlmaWNhdGlvbgogVGhlIGNvZGUgaW4gcGFzdGUgdGhhdCBwcmV2ZW50cyBibG9jayBuZXN0aW5n
IGhhZCBhIGJ1ZyB3aGVyZSB0aGUgb3JkZXIgb2YgcGFzdGVkIHBhcmFncmFwaHMgY291bGQgYmUg
cmV2ZXJzZWQuCiB8ICJUaGVyZSBzaG91bGQgYmUgYW4gZW1wdHkgbGluZSBiZXR3ZWVuIHRoZXNl
IHR3byBwYXJhZ3JhcGhzLiIKLXwgPHNwYW4+Ci18ICAgPGRpdj4KLXwgICAgIDxicj4KK3wgPGRp
dj4KK3wgICA8YnI+CiB8IDxkaXY+CiB8ICAgIlRoaXMgcGFyYWdyYXBoIGFuZCB0aGUgZW1wdHkg
bGluZSBzaG91bGQgaGF2ZSBiZSBpbiB0aGVpciBvd24gZGl2cyB3aXRoIGEgcmVkIGJvcmRlci48
I3NlbGVjdGlvbi1jYXJldD4iCg==
</data>
<flag name="review"
          id="98810"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>