<?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>62922</bug_id>
          
          <creation_ts>2011-06-17 18:35:01 -0700</creation_ts>
          <short_desc>indexForVisiblePosition(const VisiblePosition&amp; visiblePosition) does not consider shadow content</short_desc>
          <delta_ts>2011-06-29 17:11:45 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Garcia">justin.garcia</reporter>
          <assigned_to name="Justin Garcia">justin.garcia</assigned_to>
          <cc>aestes</cc>
    
    <cc>enrica</cc>
    
    <cc>leviw</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>423005</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2011-06-17 18:35:01 -0700</bug_when>
    <thetext>indexForVisiblePosition(const VisiblePosition&amp; visiblePosition) does not visiblePositions in shadow content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429224</commentid>
    <comment_count>1</comment_count>
      <attachid>98991</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2011-06-28 16:11:14 -0700</bug_when>
    <thetext>Created attachment 98991
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429229</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-28 16:14:45 -0700</bug_when>
    <thetext>Attachment 98991 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/edit...&quot; exit_code: 1

Source/WebCore/editing/InsertListCommand.cpp:155:  Declaration has space between type name and * in Element *scope  [whitespace/declaration] [3]
Source/WebCore/editing/InsertListCommand.cpp:155:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebCore/editing/htmlediting.cpp:1027:  Declaration has space between type name and * in Document *document  [whitespace/declaration] [3]
Source/WebCore/editing/htmlediting.cpp:1029:  Declaration has space between type name and * in Element *root  [whitespace/declaration] [3]
Source/WebCore/editing/htmlediting.cpp:1030:  Declaration has space between type name and * in Node *shadowRoot  [whitespace/declaration] [3]
Source/WebCore/editing/ApplyBlockElementCommand.cpp:84:  Declaration has space between type name and * in Element *startScope  [whitespace/declaration] [3]
Source/WebCore/editing/ApplyBlockElementCommand.cpp:84:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebCore/editing/ApplyBlockElementCommand.cpp:86:  Declaration has space between type name and * in Element *endScope  [whitespace/declaration] [3]
Source/WebCore/editing/ApplyBlockElementCommand.cpp:86:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 9 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429232</commentid>
    <comment_count>3</comment_count>
      <attachid>98991</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2011-06-28 16:16:08 -0700</bug_when>
    <thetext>Comment on attachment 98991
patch

Clearing review flag to fix style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429347</commentid>
    <comment_count>4</comment_count>
      <attachid>99018</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2011-06-28 18:21:21 -0700</bug_when>
    <thetext>Created attachment 99018
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429432</commentid>
    <comment_count>5</comment_count>
      <attachid>99018</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-06-28 22:35:25 -0700</bug_when>
    <thetext>Comment on attachment 99018
updated patch

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

I have a few style comments.

&gt; WebCore/editing/htmlediting.cpp:1035
&gt; +        root = static_cast&lt;Element *&gt;(shadowRoot);

This should be static_cast&lt;Element*&gt;() per the style guide.

&gt; WebCore/editing/htmlediting.cpp:1047
&gt; +    RefPtr&lt;Range&gt; range = Range::create(document, 
&gt; +                                        firstPositionInNode(root),
&gt;                                          p.parentAnchoredEquivalent());
&gt; +    

The last two lines should be regularly indented, not lined up with the &apos;(&apos;.

&gt; WebCore/editing/htmlediting.cpp:1054
&gt; +    // indexForVisiblePosition can create a

Can create a what?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429444</commentid>
    <comment_count>6</comment_count>
      <attachid>99043</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2011-06-28 23:27:49 -0700</bug_when>
    <thetext>Created attachment 99043
patch

Updated the patch to address the problems Andy pointed out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429695</commentid>
    <comment_count>7</comment_count>
      <attachid>99043</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-06-29 10:06:17 -0700</bug_when>
    <thetext>Comment on attachment 99043
patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430009</commentid>
    <comment_count>8</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2011-06-29 17:11:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/90072</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98991</attachid>
            <date>2011-06-28 16:11:14 -0700</date>
            <delta_ts>2011-06-28 18:21:21 -0700</delta_ts>
            <desc>patch</desc>
            <filename>62922.txt</filename>
            <type>text/plain</type>
            <size>13401</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5OTQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDYtMjggIEp1c3RpbiBH
YXJjaWEgIDxqdXN0aW4uZ2FyY2lhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjI5MjIKKyAgICAgICAgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiB2aXNpYmxlUG9zaXRpb24pIGRvZXMgbm90IGNvbnNpZGVyIHNoYWRvdyBj
b250ZW50CisgICAgICAgIAorICAgICAgICBWaXNpYmxlUG9zaXRpb25zIGNhbiBiZSBpbnNpZGUg
d2ViIGZvcm0gdGV4dCByZWdpb25zLCB3aGljaCB1c2Ugc2hhZG93IHRyZWVzLiBNYWRlIGluZGV4
Rm9yVmlzaWJsZVBvc2l0aW9uCisgICAgICAgIGF3YXJlIG9mIHRoaXMsIGFuZCBhZGRlZCBhIG5l
dyBwYXJhbWV0ZXIgdG8gb2J0YWluIHRoZSBzY29wZSBmb3IgYSBWaXNpYmxlUG9zaXRpb24sIGlu
IGFkZGl0aW9uIHRvIGl0cyBpbmRleC4KKyAgICAgICAgCisgICAgICAgIEFkZGVkIHZpc2libGVQ
b3NpdGlvbkZvckluZGV4IHRvIGdvIGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24sIHRha2luZyBp
bnRvIGFjY291bnQgdGhlIHNjb3BlCisgICAgICAgIHVzZWQgdG8gY29tcHV0ZSB0aGUgaW5kZXgu
CisgICAgICAgIAorICAgICAgICBUaGVzZSB0d28gZnVuY3Rpb25zIHVzZSBUZXh0SXRlcmF0b3Jz
IHRvIGNvbnZlcnQgYmV0d2VlbiBWaXNpYmxlUG9zaXRpb25zIGFuZCBpbmRpY2VzLiBCdXQgCisg
ICAgICAgIFRleHRJdGVyYXRvciBpdGVyYXRpb24gdXNpbmcgVGV4dEl0ZXJhdG9yRW1pdHNDaGFy
YWN0ZXJzQmV0d2VlbkFsbFZpc2libGVQb3NpdGlvbnMgZG9lcyBub3QgCisgICAgICAgIGV4YWN0
bHkgbWF0Y2ggVmlzaWJsZVBvc2l0aW9uIGl0ZXJhdGlvbiwgc28gdXNpbmcgdGhlbSB0byBwcmVz
ZXJ2ZSBhIHNlbGVjdGlvbiBkdXJpbmcgYW4gCisgICAgICAgIGVkaXRpbmcgb3BlcmF0aW9uIGlz
IHVucmVsaWFibGUuIFRoaXMgcHJvYmxlbSBiZWNvbWVzIHdvcnNlIHRoZSB3aWRlciB0aGUgc2Nv
cGUgdGhhdCAKKyAgICAgICAgVGV4dEl0ZXJhdG9yIGNvbnNpZGVycy4gVG8gbWl0aWdhdGUgdGhp
cywgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24gdXNlcyB0aGUgbmFycm93ZXN0IHNjb3BlIAorICAg
ICAgICBwb3NzaWJsZS4gTG9uZy10ZXJtLCBUZXh0SXRlcmF0b3IncyBUZXh0SXRlcmF0b3JFbWl0
c0NoYXJhY3RlcnNCZXR3ZWVuQWxsVmlzaWJsZVBvc2l0aW9ucyAKKyAgICAgICAgbW9kZSBuZWVk
cyB0byBiZSBmaXhlZCwgb3IgdGhlc2UgZnVuY3Rpb25zIG5lZWQgdG8gYmUgY2hhbmdlZCB0byBp
dGVyYXRlIHVzaW5nIGFjdHVhbCAKKyAgICAgICAgVmlzaWJsZVBvc2l0aW9ucy4KKyAgICAgICAg
CisgICAgICAgIEkgd2lsbCBmaWxlIGEgZm9sbG93LXVwIGJ1ZyB0byBkZXBsb3kgdGhlc2UgdHdv
IGZ1bmN0aW9ucyBldmVyeXdoZXJlIHRoYXQgVGV4dEl0ZXJhdG9ycyBhcmUgCisgICAgICAgIHVz
ZWQgdG8gY29udmVydCBiZXR3ZWVuIFZpc2libGVQb3NpdGlvbnMgYW5kIGluZGljZXMuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseUJsb2NrRWxlbWVudENvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAqIGVk
aXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0TGlz
dENvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgpOgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVk
aXRpbmcuaDoKKwogMjAxMS0wNi0yOCAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5j
by51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAkocmV2aXNpb24gODk5
MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTUyLDE2ICsxNTIsMTYgQEAKICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogVGhpcyBpcyBhbiBpbmVmZmljaWVudCB3YXkgdG8ga2VlcCBzZWxlY3Rpb24gYWxpdmUgYmVj
YXVzZSBpbmRleEZvclZpc2libGVQb3NpdGlvbiB3YWxrcyBmcm9tCiAgICAgICAgICAgICAgICAg
Ly8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQgdG8gdGhlIGVuZE9mU2VsZWN0aW9uIGV2
ZXJ5dGltZSB0aGlzIGNvZGUgaXMgZXhlY3V0ZWQuCiAgICAgICAgICAgICAgICAgLy8gQnV0IG5v
dCB1c2luZyBpbmRleCBpcyBoYXJkIGJlY2F1c2UgdGhlcmUgYXJlIHNvIG1hbnkgd2F5cyB3ZSBj
YW4gbG9zZSBzZWxlY3Rpb24gaW5zaWRlIGRvQXBwbHlGb3JTaW5nbGVQYXJhZ3JhcGguCi0gICAg
ICAgICAgICAgICAgaW50IGluZGV4Rm9yRW5kT2ZTZWxlY3Rpb24gPSBpbmRleEZvclZpc2libGVQ
b3NpdGlvbihlbmRPZlNlbGVjdGlvbik7CisgICAgICAgICAgICAgICAgRWxlbWVudCAqc2NvcGUg
PSBOVUxMOworICAgICAgICAgICAgICAgIGludCBpbmRleEZvckVuZE9mU2VsZWN0aW9uID0gaW5k
ZXhGb3JWaXNpYmxlUG9zaXRpb24oZW5kT2ZTZWxlY3Rpb24sICZzY29wZSk7CiAgICAgICAgICAg
ICAgICAgZG9BcHBseUZvclNpbmdsZVBhcmFncmFwaChmb3JjZUNyZWF0ZUxpc3QsIGxpc3RUYWcs
IGN1cnJlbnRTZWxlY3Rpb24uZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlmIChlbmRPZlNlbGVj
dGlvbi5pc051bGwoKSB8fCBlbmRPZlNlbGVjdGlvbi5pc09ycGhhbigpIHx8IHN0YXJ0T2ZMYXN0
UGFyYWdyYXBoLmlzTnVsbCgpIHx8IHN0YXJ0T2ZMYXN0UGFyYWdyYXBoLmlzT3JwaGFuKCkpIHsK
LSAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFJhbmdlPiBsYXN0U2VsZWN0aW9uUmFuZ2UgPSBU
ZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKGRvY3VtZW50KCktPmRvY3Vt
ZW50RWxlbWVudCgpLCBpbmRleEZvckVuZE9mU2VsZWN0aW9uLCAwLCB0cnVlKTsKLSAgICAgICAg
ICAgICAgICAgICAgLy8gSWYgbGFzdFNlbGVjdGlvblJhbmdlIGlzIG51bGwsIHRoZW4gc29tZSBj
b250ZW50cyBoYXZlIGJlZW4gZGVsZXRlZCBmcm9tIHRoZSBkb2N1bWVudC4KKyAgICAgICAgICAg
ICAgICAgICAgZW5kT2ZTZWxlY3Rpb24gPSB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbmRleEZv
ckVuZE9mU2VsZWN0aW9uLCBzY29wZSk7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIGVuZE9m
U2VsZWN0aW9uIGlzIG51bGwsIHRoZW4gc29tZSBjb250ZW50cyBoYXZlIGJlZW4gZGVsZXRlZCBm
cm9tIHRoZSBkb2N1bWVudC4KICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBzaG91bGQgbmV2
ZXIgaGFwcGVuIGFuZCBpZiBpdCBkaWQsIGV4aXQgZWFybHkgaW1tZWRpYXRlbHkgYmVjYXVzZSB3
ZSd2ZSBsb3N0IHRoZSBsb29wIGludmFyaWFudC4KLSAgICAgICAgICAgICAgICAgICAgQVNTRVJU
KGxhc3RTZWxlY3Rpb25SYW5nZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghbGFzdFNlbGVj
dGlvblJhbmdlKQorICAgICAgICAgICAgICAgICAgICBBU1NFUlQoZW5kT2ZTZWxlY3Rpb24uaXNO
b3ROdWxsKCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoZW5kT2ZTZWxlY3Rpb24uaXNOdWxs
KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAg
IGVuZE9mU2VsZWN0aW9uID0gbGFzdFNlbGVjdGlvblJhbmdlLT5zdGFydFBvc2l0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgICAgIHN0YXJ0T2ZMYXN0UGFyYWdyYXBoID0gc3RhcnRPZlBhcmFncmFw
aChlbmRPZlNlbGVjdGlvbiwgQ2FuU2tpcE92ZXJFZGl0aW5nQm91bmRhcnkpOwogICAgICAgICAg
ICAgICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHJl
dmlzaW9uIDg5OTM5KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwMTIsMTcgKzEwMTIsNTYgQEAKICAgICByZXR1cm4gbmV3U2Vs
ZWN0aW9uOwogfQogCi0KLWludCBpbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHZpc2libGVQb3NpdGlvbikKKy8vIEZJWE1FOiBpbmRleEZvclZpc2libGVQb3Np
dGlvbiBhbmQgdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXggdXNlIFRleHRJdGVyYXRvcnMgdG8gY29u
dmVydCBiZXR3ZWVuIAorLy8gVmlzaWJsZVBvc2l0aW9ucyBhbmQgaW5kaWNlcy4gQnV0IFRleHRJ
dGVyYXRvciBpdGVyYXRpb24gdXNpbmcgVGV4dEl0ZXJhdG9yRW1pdHNDaGFyYWN0ZXJzQmV0d2Vl
bkFsbFZpc2libGVQb3NpdGlvbnMgCisvLyBkb2VzIG5vdCBleGFjdGx5IG1hdGNoIFZpc2libGVQ
b3NpdGlvbiBpdGVyYXRpb24sIHNvIHVzaW5nIHRoZW0gdG8gcHJlc2VydmUgYSBzZWxlY3Rpb24g
ZHVyaW5nIGFuIGVkaXRpbmcgCisvLyBvcGVydGlvbiBpcyB1bnJlbGlhYmxlLiBUaGlzIHByb2Js
ZW0gYmVjb21lcyB3b3JzZSB0aGUgbW9yZSBvZiB0aGUgZG9jdW1lbnQgdGhhdCBUZXh0SXRlcmF0
b3IgaGFzIHRvIGl0ZXJhdGUgCisvLyBvdmVyLiBUbyBtaXRpZ2F0ZSB0aGlzLCBpbmRleEZvclZp
c2libGVQb3NpdGlvbiB1c2VzIHRoZSBuYXJyb3dlc3Qgc2NvcGUgcG9zc2libGUuIExvbmctdGVy
bSwgVGV4dEl0ZXJhdG9yJ3MKKy8vIFRleHRJdGVyYXRvckVtaXRzQ2hhcmFjdGVyc0JldHdlZW5B
bGxWaXNpYmxlUG9zaXRpb25zIG1vZGUgbmVlZHMgdG8gYmUgZml4ZWQsIG9yIHRoZXNlIGZ1bmN0
aW9ucyBuZWVkIHRvIAorLy8gYmUgY2hhbmdlZCB0byBpdGVyYXRlIHVzaW5nIGFjdHVhbCBWaXNp
YmxlUG9zaXRpb25zLgorLy8gRklYTUU6IERlcGxveSB0aGVzZSBmdW5jdGlvbnMgZXZlcnl3aGVy
ZSB0aGF0IFRleHRJdGVyYXRvcnMgYXJlIHVzZWQgdG8gY29udmVydCBiZXR3ZWVuIFZpc2libGVQ
b3NpdGlvbnMgYW5kIGluZGljZXMuCitpbnQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiB2aXNpYmxlUG9zaXRpb24sIEVsZW1lbnQgKipzY29wZSkKIHsKICAg
ICBpZiAodmlzaWJsZVBvc2l0aW9uLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgCiAgICAgUG9zaXRpb24gcCh2aXNpYmxlUG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKSk7Ci0g
ICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUocC5hbmNob3JOb2RlKCktPmRv
Y3VtZW50KCksIGZpcnN0UG9zaXRpb25Jbk5vZGUocC5hbmNob3JOb2RlKCktPmRvY3VtZW50KCkt
PmRvY3VtZW50RWxlbWVudCgpKSwKKyAgICBEb2N1bWVudCAqZG9jdW1lbnQgPSBwLmFuY2hvck5v
ZGUoKS0+ZG9jdW1lbnQoKTsKKyAgICAKKyAgICBFbGVtZW50ICpyb290OworICAgIE5vZGUgKnNo
YWRvd1Jvb3QgPSBwLmFuY2hvck5vZGUoKS0+c2hhZG93VHJlZVJvb3ROb2RlKCk7CisgICAgCisg
ICAgaWYgKHNoYWRvd1Jvb3QpIHsKKyAgICAgICAgLy8gVXNlIHRoZSBzaGFkb3cgcm9vdCBmb3Ig
Zm9ybSBlbGVtZW50cywgc2luY2UgVGV4dEl0ZXJhdG9ycyB3aWxsIG5vdCBlbnRlciBzaGFkb3cg
Y29udGVudC4KKyAgICAgICAgQVNTRVJUKHNoYWRvd1Jvb3QtPmlzRWxlbWVudE5vZGUoKSk7Cisg
ICAgICAgIHJvb3QgPSBzdGF0aWNfY2FzdDxFbGVtZW50ICo+KHNoYWRvd1Jvb3QpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHJvb3QgPSB2aXNpYmxlUG9zaXRpb24ucm9vdEVkaXRhYmxlRWxlbWVu
dCgpOworICAgICAgICBpZiAoIXJvb3QpCisgICAgICAgICAgICByb290ID0gZG9jdW1lbnQtPmJv
ZHkoKTsKKyAgICB9CisgICAgCisgICAgaWYgKHNjb3BlKSB7CisgICAgICAgIEFTU0VSVCghKnNj
b3BlKTsKKyAgICAgICAgKnNjb3BlID0gcm9vdDsKKyAgICB9CisgICAgCisgICAgUmVmUHRyPFJh
bmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUoZG9jdW1lbnQsIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpcnN0UG9zaXRpb25Jbk5vZGUocm9vdCksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5wYXJlbnRBbmNob3JlZEVxdWl2YWxl
bnQoKSk7CisgICAgCiAgICAgcmV0dXJuIFRleHRJdGVyYXRvcjo6cmFuZ2VMZW5ndGgocmFuZ2Uu
Z2V0KCksIHRydWUpOwogfQogCitWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5k
ZXgoaW50IGluZGV4LCBFbGVtZW50ICpzY29wZSkKK3sKKyAgICBSZWZQdHI8UmFuZ2U+IHJhbmdl
ID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aChzY29wZSwgaW5kZXgs
IDAsIHRydWUpOworICAgIC8vIGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uIGNhbiBjcmVhdGUgYQor
ICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKKyAgICBy
ZXR1cm4gVmlzaWJsZVBvc2l0aW9uKHJhbmdlLT5zdGFydFBvc2l0aW9uKCkpOworfQorCiAvLyBE
ZXRlcm1pbmVzIHdoZXRoZXIgdHdvIHBvc2l0aW9ucyBhcmUgdmlzaWJseSBuZXh0IHRvIGVhY2gg
b3RoZXIgKGZpcnN0IHRoZW4gc2Vjb25kKQogLy8gd2hpbGUgaWdub3Jpbmcgd2hpdGVzcGFjZXMg
YW5kIHVucmVuZGVyZWQgbm9kZXMKIGJvb2wgaXNWaXNpYmx5QWRqYWNlbnQoY29uc3QgUG9zaXRp
b24mIGZpcnN0LCBjb25zdCBQb3NpdGlvbiYgc2Vjb25kKQpJbmRleDogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcAkocmV2aXNpb24g
ODk5MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFu
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDE3ICs4MSwyNCBAQAogICAgIFZpc2libGVQb3Np
dGlvbiBlbmRPZlNlbGVjdGlvbiA9IHNlbGVjdGlvbi52aXNpYmxlRW5kKCk7CiAgICAgQVNTRVJU
KCFzdGFydE9mU2VsZWN0aW9uLmlzTnVsbCgpKTsKICAgICBBU1NFUlQoIWVuZE9mU2VsZWN0aW9u
LmlzTnVsbCgpKTsKLSAgICBpbnQgc3RhcnRJbmRleCA9IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9u
KHN0YXJ0T2ZTZWxlY3Rpb24pOwotICAgIGludCBlbmRJbmRleCA9IGluZGV4Rm9yVmlzaWJsZVBv
c2l0aW9uKGVuZE9mU2VsZWN0aW9uKTsKKyAgICBFbGVtZW50ICpzdGFydFNjb3BlID0gTlVMTDsK
KyAgICBpbnQgc3RhcnRJbmRleCA9IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHN0YXJ0T2ZTZWxl
Y3Rpb24sICZzdGFydFNjb3BlKTsKKyAgICBFbGVtZW50ICplbmRTY29wZSA9IE5VTEw7CisgICAg
aW50IGVuZEluZGV4ID0gaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oZW5kT2ZTZWxlY3Rpb24sICZl
bmRTY29wZSk7CiAKICAgICBmb3JtYXRTZWxlY3Rpb24oc3RhcnRPZlNlbGVjdGlvbiwgZW5kT2ZT
ZWxlY3Rpb24pOwogCiAgICAgdXBkYXRlTGF5b3V0KCk7Ci0KLSAgICBSZWZQdHI8UmFuZ2U+IHN0
YXJ0UmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKGRvY3Vt
ZW50KCktPmRvY3VtZW50RWxlbWVudCgpLCBzdGFydEluZGV4LCAwLCB0cnVlKTsKLSAgICBSZWZQ
dHI8UmFuZ2U+IGVuZFJhbmdlID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExl
bmd0aChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSwgZW5kSW5kZXgsIDAsIHRydWUpOwot
ICAgIGlmIChzdGFydFJhbmdlICYmIGVuZFJhbmdlKQotICAgICAgICBzZXRFbmRpbmdTZWxlY3Rp
b24oVmlzaWJsZVNlbGVjdGlvbihzdGFydFJhbmdlLT5zdGFydFBvc2l0aW9uKCksIGVuZFJhbmdl
LT5zdGFydFBvc2l0aW9uKCksIERPV05TVFJFQU0pKTsKKyAgICAKKyAgICBBU1NFUlQoc3RhcnRT
Y29wZSA9PSBlbmRTY29wZSk7CisgICAgQVNTRVJUKHN0YXJ0SW5kZXggPj0gMCk7CisgICAgQVNT
RVJUKHN0YXJ0SW5kZXggPD0gZW5kSW5kZXgpOworICAgIGlmIChzdGFydFNjb3BlID09IGVuZFNj
b3BlICYmIHN0YXJ0SW5kZXggPj0gMCAmJiBzdGFydEluZGV4IDw9IGVuZEluZGV4KSB7CisgICAg
ICAgIFZpc2libGVQb3NpdGlvbiBzdGFydCh2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydElu
ZGV4LCBzdGFydFNjb3BlKSk7CisgICAgICAgIFZpc2libGVQb3NpdGlvbiBlbmQodmlzaWJsZVBv
c2l0aW9uRm9ySW5kZXgoZW5kSW5kZXgsIGVuZFNjb3BlKSk7CisgICAgICAgIGlmIChzdGFydC5p
c05vdE51bGwoKSAmJiBlbmQuaXNOb3ROdWxsKCkpCisgICAgICAgICAgICBzZXRFbmRpbmdTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbihzdGFydCwgZW5kKSk7CisgICAgfQogfQogCiB2b2lkIEFw
cGx5QmxvY2tFbGVtZW50Q29tbWFuZDo6Zm9ybWF0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgc3RhcnRPZlNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmRPZlNlbGVj
dGlvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHJldmlzaW9uIDg5
OTM5KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xNzMsOCArMTczLDEwIEBACiBib29sIGxpbmVCcmVha0V4aXN0c0F0VmlzaWJsZVBv
c2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogICAgIAogaW50IGNvbXBhcmVQb3NpdGlv
bnMoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7Ci1pbnQg
aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiAKK2ludCBp
bmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBFbGVtZW50ICoq
c2NvcGUpOworVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvckluZGV4KGludCBpbmRl
eCwgRWxlbWVudCAqc2NvcGUpOworCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBSYW5nZQogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9z
aXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3Np
dGlvbi5oCShyZXZpc2lvbiA4OTkzOSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJs
ZVBvc2l0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDcgQEAKICAgICBVQ2hhcjMy
IGNoYXJhY3RlckFmdGVyKCkgY29uc3Q7CiAgICAgVUNoYXIzMiBjaGFyYWN0ZXJCZWZvcmUoKSBj
b25zdCB7IHJldHVybiBwcmV2aW91cygpLmNoYXJhY3RlckFmdGVyKCk7IH0KIAorICAgIC8vIEZJ
WE1FOiBUaGlzIGRvZXMgbm90IGhhbmRsZSBbdGFibGUsIDBdIGNvcnJlY3RseS4KICAgICBFbGVt
ZW50KiByb290RWRpdGFibGVFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kZWVwUG9zaXRpb24u
aXNOb3ROdWxsKCkgPyBtX2RlZXBQb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5yb290RWRpdGFi
bGVFbGVtZW50KCkgOiAwOyB9CiAgICAgCiAgICAgdm9pZCBnZXRJbmxpbmVCb3hBbmRPZmZzZXQo
SW5saW5lQm94KiYgaW5saW5lQm94LCBpbnQmIGNhcmV0T2Zmc2V0KSBjb25zdApJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gODk5NjkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMSBAQAorMjAxMS0wNi0yOCAgSnVzdGluIEdhcmNpYSAgPGp1c3Rpbi5nYXJj
aWFAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkyMgorICAg
ICAgICBpbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHZpc2li
bGVQb3NpdGlvbikgZG9lcyBub3QgY29uc2lkZXIgc2hhZG93IGNvbnRlbnQKKyAgICAgICAgCisg
ICAgICAgIE5vIHRlc3RzIGFkZGVkIGZvciBzaGFkb3cgY29udGVudCBiZWNhdXNlIHRoZSBlZGl0
aW5nIG9wZXJhdGlvbnMgdGhhdCBjdXJyZW50bHkgdXNlIGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9u
CisgICAgICAgIGNhbm5vdCBiZSBwZXJmb3JtZWQgaW4gd2ViIGZvcm0gZmllbGRzLgorCisgICAg
ICAgIFNlbGVjdGlvbnMgYXJlIHByZXNlcnZlZCBiZWNhdXNlIG9mIHRpZ2h0ZXIgc2NvcGluZyB3
aGVuIGNvbnZlcnRpbmcgYmV0d2VlbiBWaXNpYmxlUG9zaXRpb25zIGFuZCBpbmRpY2VzOgorICAg
ICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvY3Jhc2gtaW5kZW50aW5nLWxpc3QtaXRlbS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLWxpc3Qt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAKKyAgICAgICAgU2VsZWN0aW9uIGlzIGxvc3QgYmVjYXVz
ZSBUZXh0SXRlcmF0b3IgaXRlcmF0aW9uIGRvZXNuJ3QgZXhhY3RseSBmb2xsb3cgVmlzaWJsZVBv
c2l0aW9ucy4gQnV0IHRoZQorICAgICAgICBzZWxlY3Rpb24gd2FzIHdyb25nIGJlZm9yZSAoYmVj
YXVzZSBvZiB0aGUgc2FtZSBwcm9ibGVtKToKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5k
L2Zvcm1hdC1ibG9jay1tdWx0aXBsZS1wYXJhZ3JhcGhzLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0w
Ni0yOCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIGNocm9taXVtIHRlc3QgdXBkYXRlIGZvciByODk5NTEuCkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2Zvcm1hdC1ibG9jay1tdWx0aXBsZS1wYXJhZ3JhcGhzLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L2Zvcm1hdC1ibG9jay1tdWx0aXBsZS1wYXJhZ3JhcGhzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
ODk5MzkpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2Zvcm1hdC1ibG9jay1t
dWx0aXBsZS1wYXJhZ3JhcGhzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODEsMTEg
KzgxLDExIEBACiB8ICIKICIKIHwgPHByZT4KLXwgICAiPCNzZWxlY3Rpb24tYW5jaG9yPmhlbGxv
IgorfCAgICJoZWxsbyIKIHwgICA8YnI+CiB8ICAgIndvcmxkIgogfCAgIDxicj4KLXwgICAiV2Vi
S2l0PCNzZWxlY3Rpb24tZm9jdXM+IgorfCAgICJXZWJLaXQiCiB8ICIKICIKIApJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLWxpc3QtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXBy
ZS1saXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gODk5MzkpCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUtbGlzdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTcwLDExICs3MCwxMSBAQAogfCAgICAgICA8YmxvY2txdW90ZT4KIHwgICAgICAgICBj
bGFzcz0id2Via2l0LWluZGVudC1ibG9ja3F1b3RlIgogfCAgICAgICAgIHN0eWxlPSJtYXJnaW46
IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9uZTsgcGFkZGluZzogMHB4OyIKLXwgICAgICAgICAiaGVs
bG8iCit8ICAgICAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj5oZWxsbyIKIHwgICAgICAgICA8YnI+
CiB8ICAgICAgICAgIndvcmxkIgogfCAgICAgICAgIDxicj4KLXwgICAgICAgICAid2Via2l0Igor
fCAgICAgICAgICJ3ZWJraXQ8I3NlbGVjdGlvbi1mb2N1cz4iCiB8ICIKICIKIApJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9jcmFzaC1pbmRlbnRpbmctbGlzdC1pdGVtLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L2NyYXNoLWluZGVudGluZy1saXN0LWl0ZW0tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4OTkzOSkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvY3Jhc2gtaW5kZW50aW5nLWxpc3Qt
aXRlbS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNiArNyw3IEBACiB8ICAgICAg
ICAgPHVsPgogfCAgICAgICAgICAgPGxpPgogfCAgICAgICAgICAgICBpZD0iZm9vIgorfCAgICAg
ICAgICAgICA8I3NlbGVjdGlvbi1jYXJldD4KIHwgICAgICAgICAgICAgIlBBU1NFRCIKIHwgICAg
ICIKICIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99018</attachid>
            <date>2011-06-28 18:21:21 -0700</date>
            <delta_ts>2011-06-28 23:27:49 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>62922.txt</filename>
            <type>text/plain</type>
            <size>10555</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA4OTk0MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMTEtMDYtMjggIEp1c3RpbiBHYXJjaWEgIDxqdXN0aW4uZ2FyY2lh
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MjIKKyAgICAg
ICAgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2aXNpYmxl
UG9zaXRpb24pIGRvZXMgbm90IGNvbnNpZGVyIHNoYWRvdyBjb250ZW50CisgICAgICAgIAorICAg
ICAgICBWaXNpYmxlUG9zaXRpb25zIGNhbiBiZSBpbnNpZGUgd2ViIGZvcm0gdGV4dCByZWdpb25z
LCB3aGljaCB1c2Ugc2hhZG93IHRyZWVzLiBNYWRlIGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uCisg
ICAgICAgIGF3YXJlIG9mIHRoaXMsIGFuZCBhZGRlZCBhIG5ldyBwYXJhbWV0ZXIgdG8gb2J0YWlu
IHRoZSBzY29wZSBmb3IgYSBWaXNpYmxlUG9zaXRpb24sIGluIGFkZGl0aW9uIHRvIGl0cyBpbmRl
eC4KKyAgICAgICAgCisgICAgICAgIEFkZGVkIHZpc2libGVQb3NpdGlvbkZvckluZGV4IHRvIGdv
IGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24sIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHNjb3Bl
CisgICAgICAgIHVzZWQgdG8gY29tcHV0ZSB0aGUgaW5kZXguCisgICAgICAgIAorICAgICAgICBU
aGVzZSB0d28gZnVuY3Rpb25zIHVzZSBUZXh0SXRlcmF0b3JzIHRvIGNvbnZlcnQgYmV0d2VlbiBW
aXNpYmxlUG9zaXRpb25zIGFuZCBpbmRpY2VzLiBCdXQgCisgICAgICAgIFRleHRJdGVyYXRvciBp
dGVyYXRpb24gdXNpbmcgVGV4dEl0ZXJhdG9yRW1pdHNDaGFyYWN0ZXJzQmV0d2VlbkFsbFZpc2li
bGVQb3NpdGlvbnMgZG9lcyBub3QgCisgICAgICAgIGV4YWN0bHkgbWF0Y2ggVmlzaWJsZVBvc2l0
aW9uIGl0ZXJhdGlvbiwgc28gdXNpbmcgdGhlbSB0byBwcmVzZXJ2ZSBhIHNlbGVjdGlvbiBkdXJp
bmcgYW4gCisgICAgICAgIGVkaXRpbmcgb3BlcmF0aW9uIGlzIHVucmVsaWFibGUuIFRoaXMgY2Fu
IGJlIHNlZW4gaW4gdGhlIGV4cGVjdGVkIHJlc3VsdHMgZm9yOgorICAgICAgICAKKyAgICAgICAg
ZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLWxpc3QuaHRtbAorICAgICAgICBlZGl0aW5n
L2V4ZWNDb21tYW5kL2NyYXNoLWluZGVudGluZy1saXN0LWl0ZW0uaHRtbAorICAgICAgICAKKyAg
ICAgICAgVGV4dEl0ZXJhdG9yJ3MgVGV4dEl0ZXJhdG9yRW1pdHNDaGFyYWN0ZXJzQmV0d2VlbkFs
bFZpc2libGVQb3NpdGlvbnMgbW9kZSBuZWVkcyB0byBiZSBmaXhlZCwgb3IgCisgICAgICAgIHRo
ZXNlIGZ1bmN0aW9ucyBuZWVkIHRvIGJlIGNoYW5nZWQgdG8gaXRlcmF0ZSB1c2luZyBhY3R1YWwg
VmlzaWJsZVBvc2l0aW9ucy4gU2VlOgorICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTkwCisgICAgICAgIFRleHRJdGVyYXRvcnMgaW4g
VGV4dEl0ZXJhdG9yRW1pdHNDaGFyYWN0ZXJzQmV0d2VlbkFsbFZpc2libGVQb3NpdGlvbnMgZG8g
bm90IGV4YWN0bHkgbWF0Y2ggVmlzaWJsZVBvc2l0aW9ucworICAgICAgICAKKyAgICAgICAgQWxz
bzoKKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MzU5MgorICAgICAgICBVc2UgdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXggYW5kIGluZGV4
Rm9yVmlzaWJsZVBvc2l0aW9uIGV2ZXJ5d2hlcmUgdGhhdCBUZXh0SXRlcmF0b3JzIGFyZSB1c2Vk
IHRvIGNvbnZlcnQgYmV0d2VlbiBWaXNpYmxlUG9zaXRpb25zIGFuZCBpbmRpY2VzCisgICAgICAg
IAorICAgICAgICBObyBuZXcgdGVzdHMgYWRkZWQgYmVjYXVzZSBpbmRleEZvclZpc2libGVQb3Np
dGlvbiBpcyBjdXJyZW50bHkgb25seSB1c2VkIGZvciBlZGl0aW5nIG9wZXJhdGlvbnMKKyAgICAg
ICAgdGhhdCBjYW5ub3QgYmUgcGVyZm9ybWVkIGluc2lkZSB3ZWIgZm9ybSBmaWVsZHMuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseUJsb2NrRWxlbWVudENvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAqIGVk
aXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0TGlz
dENvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgpOgorICAgICAgICAqIGVkaXRpbmcvaHRtbGVk
aXRpbmcuaDoKKwogMjAxMS0wNi0yOCAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5j
by51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCkluZGV4OiBXZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAJKHJldmlzaW9uIDg5OTM5KQorKysgV2ViQ29y
ZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUyLDE2
ICsxNTIsMTYgQEAKICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbiBpbmVmZmlj
aWVudCB3YXkgdG8ga2VlcCBzZWxlY3Rpb24gYWxpdmUgYmVjYXVzZSBpbmRleEZvclZpc2libGVQ
b3NpdGlvbiB3YWxrcyBmcm9tCiAgICAgICAgICAgICAgICAgLy8gdGhlIGJlZ2lubmluZyBvZiB0
aGUgZG9jdW1lbnQgdG8gdGhlIGVuZE9mU2VsZWN0aW9uIGV2ZXJ5dGltZSB0aGlzIGNvZGUgaXMg
ZXhlY3V0ZWQuCiAgICAgICAgICAgICAgICAgLy8gQnV0IG5vdCB1c2luZyBpbmRleCBpcyBoYXJk
IGJlY2F1c2UgdGhlcmUgYXJlIHNvIG1hbnkgd2F5cyB3ZSBjYW4gbG9zZSBzZWxlY3Rpb24gaW5z
aWRlIGRvQXBwbHlGb3JTaW5nbGVQYXJhZ3JhcGguCi0gICAgICAgICAgICAgICAgaW50IGluZGV4
Rm9yRW5kT2ZTZWxlY3Rpb24gPSBpbmRleEZvclZpc2libGVQb3NpdGlvbihlbmRPZlNlbGVjdGlv
bik7CisgICAgICAgICAgICAgICAgRWxlbWVudCogc2NvcGUgPSAwOworICAgICAgICAgICAgICAg
IGludCBpbmRleEZvckVuZE9mU2VsZWN0aW9uID0gaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oZW5k
T2ZTZWxlY3Rpb24sICZzY29wZSk7CiAgICAgICAgICAgICAgICAgZG9BcHBseUZvclNpbmdsZVBh
cmFncmFwaChmb3JjZUNyZWF0ZUxpc3QsIGxpc3RUYWcsIGN1cnJlbnRTZWxlY3Rpb24uZ2V0KCkp
OwogICAgICAgICAgICAgICAgIGlmIChlbmRPZlNlbGVjdGlvbi5pc051bGwoKSB8fCBlbmRPZlNl
bGVjdGlvbi5pc09ycGhhbigpIHx8IHN0YXJ0T2ZMYXN0UGFyYWdyYXBoLmlzTnVsbCgpIHx8IHN0
YXJ0T2ZMYXN0UGFyYWdyYXBoLmlzT3JwaGFuKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgUmVm
UHRyPFJhbmdlPiBsYXN0U2VsZWN0aW9uUmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxv
Y2F0aW9uQW5kTGVuZ3RoKGRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpLCBpbmRleEZvckVu
ZE9mU2VsZWN0aW9uLCAwLCB0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgLy8gSWYgbGFzdFNl
bGVjdGlvblJhbmdlIGlzIG51bGwsIHRoZW4gc29tZSBjb250ZW50cyBoYXZlIGJlZW4gZGVsZXRl
ZCBmcm9tIHRoZSBkb2N1bWVudC4KKyAgICAgICAgICAgICAgICAgICAgZW5kT2ZTZWxlY3Rpb24g
PSB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbmRleEZvckVuZE9mU2VsZWN0aW9uLCBzY29wZSk7
CisgICAgICAgICAgICAgICAgICAgIC8vIElmIGVuZE9mU2VsZWN0aW9uIGlzIG51bGwsIHRoZW4g
c29tZSBjb250ZW50cyBoYXZlIGJlZW4gZGVsZXRlZCBmcm9tIHRoZSBkb2N1bWVudC4KICAgICAg
ICAgICAgICAgICAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIGFuZCBpZiBpdCBkaWQs
IGV4aXQgZWFybHkgaW1tZWRpYXRlbHkgYmVjYXVzZSB3ZSd2ZSBsb3N0IHRoZSBsb29wIGludmFy
aWFudC4KLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGxhc3RTZWxlY3Rpb25SYW5nZSk7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmICghbGFzdFNlbGVjdGlvblJhbmdlKQorICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQoZW5kT2ZTZWxlY3Rpb24uaXNOb3ROdWxsKCkpOworICAgICAgICAgICAg
ICAgICAgICBpZiAoZW5kT2ZTZWxlY3Rpb24uaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgIGVuZE9mU2VsZWN0aW9uID0gbGFzdFNl
bGVjdGlvblJhbmdlLT5zdGFydFBvc2l0aW9uKCk7CiAgICAgICAgICAgICAgICAgICAgIHN0YXJ0
T2ZMYXN0UGFyYWdyYXBoID0gc3RhcnRPZlBhcmFncmFwaChlbmRPZlNlbGVjdGlvbiwgQ2FuU2tp
cE92ZXJFZGl0aW5nQm91bmRhcnkpOwogICAgICAgICAgICAgICAgIH0KIApJbmRleDogV2ViQ29y
ZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcv
aHRtbGVkaXRpbmcuY3BwCShyZXZpc2lvbiA4OTkzOSkKKysrIFdlYkNvcmUvZWRpdGluZy9odG1s
ZWRpdGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMTIsMTcgKzEwMTIsNTEgQEAKICAgICBy
ZXR1cm4gbmV3U2VsZWN0aW9uOwogfQogCi0KLWludCBpbmRleEZvclZpc2libGVQb3NpdGlvbihj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHZpc2libGVQb3NpdGlvbikKKy8vIEZJWE1FOiBpbmRleEZv
clZpc2libGVQb3NpdGlvbiBhbmQgdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXggdXNlIFRleHRJdGVy
YXRvcnMgdG8gY29udmVydCBiZXR3ZWVuIAorLy8gVmlzaWJsZVBvc2l0aW9ucyBhbmQgaW5kaWNl
cy4gQnV0IFRleHRJdGVyYXRvciBpdGVyYXRpb24gdXNpbmcgVGV4dEl0ZXJhdG9yRW1pdHNDaGFy
YWN0ZXJzQmV0d2VlbkFsbFZpc2libGVQb3NpdGlvbnMgCisvLyBkb2VzIG5vdCBleGFjdGx5IG1h
dGNoIFZpc2libGVQb3NpdGlvbiBpdGVyYXRpb24sIHNvIHVzaW5nIHRoZW0gdG8gcHJlc2VydmUg
YSBzZWxlY3Rpb24gZHVyaW5nIGFuIGVkaXRpbmcgCisvLyBvcGVydGlvbiBpcyB1bnJlbGlhYmxl
LiBUZXh0SXRlcmF0b3IncyBUZXh0SXRlcmF0b3JFbWl0c0NoYXJhY3RlcnNCZXR3ZWVuQWxsVmlz
aWJsZVBvc2l0aW9ucyBtb2RlIG5lZWRzIHRvIGJlIGZpeGVkLCAKKy8vIG9yIHRoZXNlIGZ1bmN0
aW9ucyBuZWVkIHRvIGJlIGNoYW5nZWQgdG8gaXRlcmF0ZSB1c2luZyBhY3R1YWwgVmlzaWJsZVBv
c2l0aW9ucy4KKy8vIEZJWE1FOiBEZXBsb3kgdGhlc2UgZnVuY3Rpb25zIGV2ZXJ5d2hlcmUgdGhh
dCBUZXh0SXRlcmF0b3JzIGFyZSB1c2VkIHRvIGNvbnZlcnQgYmV0d2VlbiBWaXNpYmxlUG9zaXRp
b25zIGFuZCBpbmRpY2VzLgoraW50IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgdmlzaWJsZVBvc2l0aW9uLCBFbGVtZW50ICoqc2NvcGUpCiB7CiAgICAgaWYg
KHZpc2libGVQb3NpdGlvbi5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIAog
ICAgIFBvc2l0aW9uIHAodmlzaWJsZVBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkpOwotICAgIFJl
ZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKHAuYW5jaG9yTm9kZSgpLT5kb2N1bWVu
dCgpLCBmaXJzdFBvc2l0aW9uSW5Ob2RlKHAuYW5jaG9yTm9kZSgpLT5kb2N1bWVudCgpLT5kb2N1
bWVudEVsZW1lbnQoKSksCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gcC5hbmNob3JOb2RlKCkt
PmRvY3VtZW50KCk7CisgICAgCisgICAgRWxlbWVudCogcm9vdDsKKyAgICBOb2RlKiBzaGFkb3dS
b290ID0gcC5hbmNob3JOb2RlKCktPnNoYWRvd1RyZWVSb290Tm9kZSgpOworICAgIAorICAgIGlm
IChzaGFkb3dSb290KSB7CisgICAgICAgIC8vIFVzZSB0aGUgc2hhZG93IHJvb3QgZm9yIGZvcm0g
ZWxlbWVudHMsIHNpbmNlIFRleHRJdGVyYXRvcnMgd2lsbCBub3QgZW50ZXIgc2hhZG93IGNvbnRl
bnQuCisgICAgICAgIEFTU0VSVChzaGFkb3dSb290LT5pc0VsZW1lbnROb2RlKCkpOworICAgICAg
ICByb290ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCAqPihzaGFkb3dSb290KTsKKyAgICB9IGVsc2UK
KyAgICAgICAgcm9vdCA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsKKyAgICAKKyAgICBp
ZiAoc2NvcGUpIHsKKyAgICAgICAgQVNTRVJUKCEqc2NvcGUpOworICAgICAgICAqc2NvcGUgPSBy
b290OworICAgIH0KKyAgICAKKyAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0
ZShkb2N1bWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmly
c3RQb3NpdGlvbkluTm9kZShyb290KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwLnBhcmVudEFuY2hvcmVkRXF1aXZhbGVudCgpKTsKKyAgICAKICAgICByZXR1cm4g
VGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChyYW5nZS5nZXQoKSwgdHJ1ZSk7CiB9CiAKK1Zpc2li
bGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbnQgaW5kZXgsIEVsZW1lbnQgKnNj
b3BlKQoreworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJv
bUxvY2F0aW9uQW5kTGVuZ3RoKHNjb3BlLCBpbmRleCwgMCwgdHJ1ZSk7CisgICAgLy8gaW5kZXhG
b3JWaXNpYmxlUG9zaXRpb24gY2FuIGNyZWF0ZSBhCisgICAgaWYgKCFyYW5nZSkKKyAgICAgICAg
cmV0dXJuIFZpc2libGVQb3NpdGlvbigpOworICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24ocmFu
Z2UtPnN0YXJ0UG9zaXRpb24oKSk7Cit9CisKIC8vIERldGVybWluZXMgd2hldGhlciB0d28gcG9z
aXRpb25zIGFyZSB2aXNpYmx5IG5leHQgdG8gZWFjaCBvdGhlciAoZmlyc3QgdGhlbiBzZWNvbmQp
CiAvLyB3aGlsZSBpZ25vcmluZyB3aGl0ZXNwYWNlcyBhbmQgdW5yZW5kZXJlZCBub2RlcwogYm9v
bCBpc1Zpc2libHlBZGphY2VudChjb25zdCBQb3NpdGlvbiYgZmlyc3QsIGNvbnN0IFBvc2l0aW9u
JiBzZWNvbmQpCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5k
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21t
YW5kLmNwcAkocmV2aXNpb24gODk5MzkpCisrKyBXZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0Vs
ZW1lbnRDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEsMTcgKzgxLDI0IEBACiAgICAg
VmlzaWJsZVBvc2l0aW9uIGVuZE9mU2VsZWN0aW9uID0gc2VsZWN0aW9uLnZpc2libGVFbmQoKTsK
ICAgICBBU1NFUlQoIXN0YXJ0T2ZTZWxlY3Rpb24uaXNOdWxsKCkpOwogICAgIEFTU0VSVCghZW5k
T2ZTZWxlY3Rpb24uaXNOdWxsKCkpOwotICAgIGludCBzdGFydEluZGV4ID0gaW5kZXhGb3JWaXNp
YmxlUG9zaXRpb24oc3RhcnRPZlNlbGVjdGlvbik7Ci0gICAgaW50IGVuZEluZGV4ID0gaW5kZXhG
b3JWaXNpYmxlUG9zaXRpb24oZW5kT2ZTZWxlY3Rpb24pOworICAgIEVsZW1lbnQqIHN0YXJ0U2Nv
cGUgPSAwOworICAgIGludCBzdGFydEluZGV4ID0gaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oc3Rh
cnRPZlNlbGVjdGlvbiwgJnN0YXJ0U2NvcGUpOworICAgIEVsZW1lbnQqIGVuZFNjb3BlID0gMDsK
KyAgICBpbnQgZW5kSW5kZXggPSBpbmRleEZvclZpc2libGVQb3NpdGlvbihlbmRPZlNlbGVjdGlv
biwgJmVuZFNjb3BlKTsKIAogICAgIGZvcm1hdFNlbGVjdGlvbihzdGFydE9mU2VsZWN0aW9uLCBl
bmRPZlNlbGVjdGlvbik7CiAKICAgICB1cGRhdGVMYXlvdXQoKTsKLQotICAgIFJlZlB0cjxSYW5n
ZT4gc3RhcnRSYW5nZSA9IFRleHRJdGVyYXRvcjo6cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGgo
ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCksIHN0YXJ0SW5kZXgsIDAsIHRydWUpOwotICAg
IFJlZlB0cjxSYW5nZT4gZW5kUmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9u
QW5kTGVuZ3RoKGRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpLCBlbmRJbmRleCwgMCwgdHJ1
ZSk7Ci0gICAgaWYgKHN0YXJ0UmFuZ2UgJiYgZW5kUmFuZ2UpCi0gICAgICAgIHNldEVuZGluZ1Nl
bGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0UmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgZW5k
UmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgRE9XTlNUUkVBTSkpOworICAgIAorICAgIEFTU0VSVChz
dGFydFNjb3BlID09IGVuZFNjb3BlKTsKKyAgICBBU1NFUlQoc3RhcnRJbmRleCA+PSAwKTsKKyAg
ICBBU1NFUlQoc3RhcnRJbmRleCA8PSBlbmRJbmRleCk7CisgICAgaWYgKHN0YXJ0U2NvcGUgPT0g
ZW5kU2NvcGUgJiYgc3RhcnRJbmRleCA+PSAwICYmIHN0YXJ0SW5kZXggPD0gZW5kSW5kZXgpIHsK
KyAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0KHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0
YXJ0SW5kZXgsIHN0YXJ0U2NvcGUpKTsKKyAgICAgICAgVmlzaWJsZVBvc2l0aW9uIGVuZCh2aXNp
YmxlUG9zaXRpb25Gb3JJbmRleChlbmRJbmRleCwgZW5kU2NvcGUpKTsKKyAgICAgICAgaWYgKHN0
YXJ0LmlzTm90TnVsbCgpICYmIGVuZC5pc05vdE51bGwoKSkKKyAgICAgICAgICAgIHNldEVuZGlu
Z1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0LCBlbmQpKTsKKyAgICB9CiB9CiAKIHZv
aWQgQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIGVuZE9m
U2VsZWN0aW9uKQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHJldmlzaW9uIDg5OTM5KQorKysg
V2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw4ICsx
NzMsMTAgQEAKIGJvb2wgbGluZUJyZWFrRXhpc3RzQXRWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlz
aWJsZVBvc2l0aW9uJik7CiAgICAgCiBpbnQgY29tcGFyZVBvc2l0aW9ucyhjb25zdCBWaXNpYmxl
UG9zaXRpb24mLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKLWludCBpbmRleEZvclZpc2libGVQ
b3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKIAoraW50IGluZGV4Rm9yVmlzaWJsZVBv
c2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIEVsZW1lbnQgKipzY29wZSk7CitWaXNpYmxl
UG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50IGluZGV4LCBFbGVtZW50ICpzY29w
ZSk7CisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIFJhbmdlCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5oCShyZXZpc2lvbiA4OTkzOSkKKysrIFdl
YkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNzksNiAr
NzksNyBAQAogICAgIFVDaGFyMzIgY2hhcmFjdGVyQWZ0ZXIoKSBjb25zdDsKICAgICBVQ2hhcjMy
IGNoYXJhY3RlckJlZm9yZSgpIGNvbnN0IHsgcmV0dXJuIHByZXZpb3VzKCkuY2hhcmFjdGVyQWZ0
ZXIoKTsgfQogCisgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgaGFuZGxlIFt0YWJsZSwgMF0g
Y29ycmVjdGx5LgogICAgIEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBtX2RlZXBQb3NpdGlvbi5pc05vdE51bGwoKSA/IG1fZGVlcFBvc2l0aW9uLmRlcHJlY2F0
ZWROb2RlKCktPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSA6IDA7IH0KICAgICAKICAgICB2b2lkIGdl
dElubGluZUJveEFuZE9mZnNldChJbmxpbmVCb3gqJiBpbmxpbmVCb3gsIGludCYgY2FyZXRPZmZz
ZXQpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99043</attachid>
            <date>2011-06-28 23:27:49 -0700</date>
            <delta_ts>2011-06-29 10:06:17 -0700</delta_ts>
            <desc>patch</desc>
            <filename>62922.txt</filename>
            <type>text/plain</type>
            <size>10718</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA4OTk4NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMTEtMDYtMjggIEp1c3RpbiBHYXJjaWEgIDxqdXN0aW4uZ2FyY2lh
QGFwcGxlLmNvbT4KKworICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgCisg
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5MjIKKyAg
ICAgICAgIGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgdmlz
aWJsZVBvc2l0aW9uKSBkb2VzIG5vdCBjb25zaWRlciBzaGFkb3cgY29udGVudAorICAgICAgICAg
CisgICAgICAgICBWaXNpYmxlUG9zaXRpb25zIGNhbiBiZSBpbnNpZGUgd2ViIGZvcm0gdGV4dCBy
ZWdpb25zLCB3aGljaCB1c2Ugc2hhZG93IHRyZWVzLiBNYWRlIGluZGV4Rm9yVmlzaWJsZVBvc2l0
aW9uCisgICAgICAgICBhd2FyZSBvZiB0aGlzLCBhbmQgYWRkZWQgYSBuZXcgcGFyYW1ldGVyIHRv
IG9idGFpbiB0aGUgc2NvcGUgZm9yIGEgVmlzaWJsZVBvc2l0aW9uLCBpbiBhZGRpdGlvbiB0byBp
dHMgaW5kZXguCisgICAgICAKKyAgICAgICAgIEFkZGVkIHZpc2libGVQb3NpdGlvbkZvckluZGV4
IHRvIGdvIGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24sIHRha2luZyBpbnRvIGFjY291bnQgdGhl
IHNjb3BlCisgICAgICAgICB1c2VkIHRvIGNvbXB1dGUgdGhlIGluZGV4LgorICAgICAgICAgCisg
ICAgICAgICBUaGVzZSB0d28gZnVuY3Rpb25zIHVzZSBUZXh0SXRlcmF0b3JzIHRvIGNvbnZlcnQg
YmV0d2VlbiBWaXNpYmxlUG9zaXRpb25zIGFuZCBpbmRpY2VzLiBCdXQgCisgICAgICAgICBUZXh0
SXRlcmF0b3IgaXRlcmF0aW9uIHVzaW5nIFRleHRJdGVyYXRvckVtaXRzQ2hhcmFjdGVyc0JldHdl
ZW5BbGxWaXNpYmxlUG9zaXRpb25zIGRvZXMgbm90IAorICAgICAgICAgZXhhY3RseSBtYXRjaCBW
aXNpYmxlUG9zaXRpb24gaXRlcmF0aW9uLCBzbyB1c2luZyB0aGVtIHRvIHByZXNlcnZlIGEgc2Vs
ZWN0aW9uIGR1cmluZyBhbiAKKyAgICAgICAgIGVkaXRpbmcgb3BlcmF0aW9uIGlzIHVucmVsaWFi
bGUuIFRoaXMgY2FuIGJlIHNlZW4gaW4gdGhlIGV4cGVjdGVkIHJlc3VsdHMgZm9yOgorICAgICAg
ICAgCisgICAgICAgICBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUtbGlzdC5odG1sCisg
ICAgICAgICBlZGl0aW5nL2V4ZWNDb21tYW5kL2NyYXNoLWluZGVudGluZy1saXN0LWl0ZW0uaHRt
bAorICAgICAgICAgCisgICAgICAgICBUZXh0SXRlcmF0b3IncyBUZXh0SXRlcmF0b3JFbWl0c0No
YXJhY3RlcnNCZXR3ZWVuQWxsVmlzaWJsZVBvc2l0aW9ucyBtb2RlIG5lZWRzIHRvIGJlIGZpeGVk
LCBvciAKKyAgICAgICAgIHRoZXNlIGZ1bmN0aW9ucyBuZWVkIHRvIGJlIGNoYW5nZWQgdG8gaXRl
cmF0ZSB1c2luZyBhY3R1YWwgVmlzaWJsZVBvc2l0aW9ucy4gU2VlOgorICAgICAgICAgCisgICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1OTAKKyAgICAg
ICAgIFRleHRJdGVyYXRvcnMgaW4gVGV4dEl0ZXJhdG9yRW1pdHNDaGFyYWN0ZXJzQmV0d2VlbkFs
bFZpc2libGVQb3NpdGlvbnMgZG8gbm90IGV4YWN0bHkgbWF0Y2ggVmlzaWJsZVBvc2l0aW9ucwor
ICAgICAgICAgCisgICAgICAgICBBbHNvOgorICAgICAgICAgCisgICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1OTIKKyAgICAgICAgIFVzZSB2aXNpYmxl
UG9zaXRpb25Gb3JJbmRleCBhbmQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24gZXZlcnl3aGVyZSB0
aGF0IFRleHRJdGVyYXRvcnMgYXJlIHVzZWQgdG8gY29udmVydCBiZXR3ZWVuIFZpc2libGVQb3Np
dGlvbnMgYW5kIGluZGljZXMKKyAgICAgICAgIAorICAgICAgICAgTm8gbmV3IHRlc3RzIGFkZGVk
IGJlY2F1c2UgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24gaXMgY3VycmVudGx5IG9ubHkgdXNlZCBm
b3IgZWRpdGluZyBvcGVyYXRpb25zCisgICAgICAgICB0aGF0IGNhbm5vdCBiZSBwZXJmb3JtZWQg
aW5zaWRlIHdlYiBmb3JtIGZpZWxkcy4KKyAKKyAgICAgICAgICogZWRpdGluZy9BcHBseUJsb2Nr
RWxlbWVudENvbW1hbmQuY3BwOgorICAgICAgICAgKFdlYkNvcmU6OkFwcGx5QmxvY2tFbGVtZW50
Q29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQu
Y3BwOgorICAgICAgICAgKFdlYkNvcmU6Okluc2VydExpc3RDb21tYW5kOjpkb0FwcGx5KToKKyAg
ICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5jcHA6CisgICAgICAgICAoV2ViQ29yZTo6aW5k
ZXhGb3JWaXNpYmxlUG9zaXRpb24pOgorICAgICAgICAgKFdlYkNvcmU6OnZpc2libGVQb3NpdGlv
bkZvckluZGV4KToKKyAgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5oOgorICAgICAgICAg
CiAyMDExLTA2LTI4ICBSb2xhbmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViQ29yZS9lZGl0
aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0TGlzdENvbW1hbmQuY3BwCShyZXZpc2lvbiA4OTk4NykKKysrIFdlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MiwxNiArMTUyLDE2
IEBACiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5lZmZpY2llbnQgd2F5
IHRvIGtlZXAgc2VsZWN0aW9uIGFsaXZlIGJlY2F1c2UgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24g
d2Fsa3MgZnJvbQogICAgICAgICAgICAgICAgIC8vIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3Vt
ZW50IHRvIHRoZSBlbmRPZlNlbGVjdGlvbiBldmVyeXRpbWUgdGhpcyBjb2RlIGlzIGV4ZWN1dGVk
LgogICAgICAgICAgICAgICAgIC8vIEJ1dCBub3QgdXNpbmcgaW5kZXggaXMgaGFyZCBiZWNhdXNl
IHRoZXJlIGFyZSBzbyBtYW55IHdheXMgd2UgY2FuIGxvc2Ugc2VsZWN0aW9uIGluc2lkZSBkb0Fw
cGx5Rm9yU2luZ2xlUGFyYWdyYXBoLgotICAgICAgICAgICAgICAgIGludCBpbmRleEZvckVuZE9m
U2VsZWN0aW9uID0gaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oZW5kT2ZTZWxlY3Rpb24pOworICAg
ICAgICAgICAgICAgIEVsZW1lbnQqIHNjb3BlID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgaW5k
ZXhGb3JFbmRPZlNlbGVjdGlvbiA9IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGVuZE9mU2VsZWN0
aW9uLCAmc2NvcGUpOwogICAgICAgICAgICAgICAgIGRvQXBwbHlGb3JTaW5nbGVQYXJhZ3JhcGgo
Zm9yY2VDcmVhdGVMaXN0LCBsaXN0VGFnLCBjdXJyZW50U2VsZWN0aW9uLmdldCgpKTsKICAgICAg
ICAgICAgICAgICBpZiAoZW5kT2ZTZWxlY3Rpb24uaXNOdWxsKCkgfHwgZW5kT2ZTZWxlY3Rpb24u
aXNPcnBoYW4oKSB8fCBzdGFydE9mTGFzdFBhcmFncmFwaC5pc051bGwoKSB8fCBzdGFydE9mTGFz
dFBhcmFncmFwaC5pc09ycGhhbigpKSB7Ci0gICAgICAgICAgICAgICAgICAgIFJlZlB0cjxSYW5n
ZT4gbGFzdFNlbGVjdGlvblJhbmdlID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFu
ZExlbmd0aChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSwgaW5kZXhGb3JFbmRPZlNlbGVj
dGlvbiwgMCwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIC8vIElmIGxhc3RTZWxlY3Rpb25S
YW5nZSBpcyBudWxsLCB0aGVuIHNvbWUgY29udGVudHMgaGF2ZSBiZWVuIGRlbGV0ZWQgZnJvbSB0
aGUgZG9jdW1lbnQuCisgICAgICAgICAgICAgICAgICAgIGVuZE9mU2VsZWN0aW9uID0gdmlzaWJs
ZVBvc2l0aW9uRm9ySW5kZXgoaW5kZXhGb3JFbmRPZlNlbGVjdGlvbiwgc2NvcGUpOworICAgICAg
ICAgICAgICAgICAgICAvLyBJZiBlbmRPZlNlbGVjdGlvbiBpcyBudWxsLCB0aGVuIHNvbWUgY29u
dGVudHMgaGF2ZSBiZWVuIGRlbGV0ZWQgZnJvbSB0aGUgZG9jdW1lbnQuCiAgICAgICAgICAgICAg
ICAgICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiBhbmQgaWYgaXQgZGlkLCBleGl0IGVh
cmx5IGltbWVkaWF0ZWx5IGJlY2F1c2Ugd2UndmUgbG9zdCB0aGUgbG9vcCBpbnZhcmlhbnQuCi0g
ICAgICAgICAgICAgICAgICAgIEFTU0VSVChsYXN0U2VsZWN0aW9uUmFuZ2UpOwotICAgICAgICAg
ICAgICAgICAgICBpZiAoIWxhc3RTZWxlY3Rpb25SYW5nZSkKKyAgICAgICAgICAgICAgICAgICAg
QVNTRVJUKGVuZE9mU2VsZWN0aW9uLmlzTm90TnVsbCgpKTsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGVuZE9mU2VsZWN0aW9uLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgICAgICAgICBlbmRPZlNlbGVjdGlvbiA9IGxhc3RTZWxlY3Rpb25S
YW5nZS0+c3RhcnRQb3NpdGlvbigpOwogICAgICAgICAgICAgICAgICAgICBzdGFydE9mTGFzdFBh
cmFncmFwaCA9IHN0YXJ0T2ZQYXJhZ3JhcGgoZW5kT2ZTZWxlY3Rpb24sIENhblNraXBPdmVyRWRp
dGluZ0JvdW5kYXJ5KTsKICAgICAgICAgICAgICAgICB9CiAKSW5kZXg6IFdlYkNvcmUvZWRpdGlu
Zy9odG1sZWRpdGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmNwcAkocmV2aXNpb24gODk5ODcpCisrKyBXZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEwLDE3ICsxMDEwLDUwIEBACiAgICAgcmV0dXJuIG5l
d1NlbGVjdGlvbjsKIH0KIAotCi1pbnQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiB2aXNpYmxlUG9zaXRpb24pCisvLyBGSVhNRTogaW5kZXhGb3JWaXNpYmxl
UG9zaXRpb24gYW5kIHZpc2libGVQb3NpdGlvbkZvckluZGV4IHVzZSBUZXh0SXRlcmF0b3JzIHRv
IGNvbnZlcnQgYmV0d2VlbiAKKy8vIFZpc2libGVQb3NpdGlvbnMgYW5kIGluZGljZXMuIEJ1dCBU
ZXh0SXRlcmF0b3IgaXRlcmF0aW9uIHVzaW5nIFRleHRJdGVyYXRvckVtaXRzQ2hhcmFjdGVyc0Jl
dHdlZW5BbGxWaXNpYmxlUG9zaXRpb25zIAorLy8gZG9lcyBub3QgZXhhY3RseSBtYXRjaCBWaXNp
YmxlUG9zaXRpb24gaXRlcmF0aW9uLCBzbyB1c2luZyB0aGVtIHRvIHByZXNlcnZlIGEgc2VsZWN0
aW9uIGR1cmluZyBhbiBlZGl0aW5nIAorLy8gb3BlcnRpb24gaXMgdW5yZWxpYWJsZS4gVGV4dEl0
ZXJhdG9yJ3MgVGV4dEl0ZXJhdG9yRW1pdHNDaGFyYWN0ZXJzQmV0d2VlbkFsbFZpc2libGVQb3Np
dGlvbnMgbW9kZSBuZWVkcyB0byBiZSBmaXhlZCwgCisvLyBvciB0aGVzZSBmdW5jdGlvbnMgbmVl
ZCB0byBiZSBjaGFuZ2VkIHRvIGl0ZXJhdGUgdXNpbmcgYWN0dWFsIFZpc2libGVQb3NpdGlvbnMu
CisvLyBGSVhNRTogRGVwbG95IHRoZXNlIGZ1bmN0aW9ucyBldmVyeXdoZXJlIHRoYXQgVGV4dEl0
ZXJhdG9ycyBhcmUgdXNlZCB0byBjb252ZXJ0IGJldHdlZW4gVmlzaWJsZVBvc2l0aW9ucyBhbmQg
aW5kaWNlcy4KK2ludCBpbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRp
b24mIHZpc2libGVQb3NpdGlvbiwgRWxlbWVudCAqKnNjb3BlKQogewogICAgIGlmICh2aXNpYmxl
UG9zaXRpb24uaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiAwOworICAgICAgICAKICAgICBQb3Np
dGlvbiBwKHZpc2libGVQb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpKTsKLSAgICBSZWZQdHI8UmFu
Z2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShwLmFuY2hvck5vZGUoKS0+ZG9jdW1lbnQoKSwgZmly
c3RQb3NpdGlvbkluTm9kZShwLmFuY2hvck5vZGUoKS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVt
ZW50KCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAucGFyZW50
QW5jaG9yZWRFcXVpdmFsZW50KCkpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHAuYW5jaG9y
Tm9kZSgpLT5kb2N1bWVudCgpOworICAgIAorICAgIEVsZW1lbnQqIHJvb3Q7CisgICAgTm9kZSog
c2hhZG93Um9vdCA9IHAuYW5jaG9yTm9kZSgpLT5zaGFkb3dUcmVlUm9vdE5vZGUoKTsKKyAgICAK
KyAgICBpZiAoc2hhZG93Um9vdCkgeworICAgICAgICAvLyBVc2UgdGhlIHNoYWRvdyByb290IGZv
ciBmb3JtIGVsZW1lbnRzLCBzaW5jZSBUZXh0SXRlcmF0b3JzIHdpbGwgbm90IGVudGVyIHNoYWRv
dyBjb250ZW50LgorICAgICAgICBBU1NFUlQoc2hhZG93Um9vdC0+aXNFbGVtZW50Tm9kZSgpKTsK
KyAgICAgICAgcm9vdCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihzaGFkb3dSb290KTsKKyAgICB9
IGVsc2UKKyAgICAgICAgcm9vdCA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsKKyAgICAK
KyAgICBpZiAoc2NvcGUpIHsKKyAgICAgICAgQVNTRVJUKCEqc2NvcGUpOworICAgICAgICAqc2Nv
cGUgPSByb290OworICAgIH0KKyAgICAKKyAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6
OmNyZWF0ZShkb2N1bWVudCwgZmlyc3RQb3NpdGlvbkluTm9kZShyb290KSwgcC5wYXJlbnRBbmNo
b3JlZEVxdWl2YWxlbnQoKSk7CisgICAgCiAgICAgcmV0dXJuIFRleHRJdGVyYXRvcjo6cmFuZ2VM
ZW5ndGgocmFuZ2UuZ2V0KCksIHRydWUpOwogfQogCitWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBv
c2l0aW9uRm9ySW5kZXgoaW50IGluZGV4LCBFbGVtZW50ICpzY29wZSkKK3sKKyAgICBSZWZQdHI8
UmFuZ2U+IHJhbmdlID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aChz
Y29wZSwgaW5kZXgsIDAsIHRydWUpOworICAgIC8vIENoZWNrIGZvciBhbiBpbnZhbGlkIGluZGV4
LiBDZXJ0YWluIGVkaXRpbmcgb3BlcmF0aW9ucyBpbnZhbGlkYXRlIGluZGljZXMgYmVjYXVzZSAK
KyAgICAvLyBvZiBwcm9ibGVtcyB3aXRoIFRleHRJdGVyYXRvckVtaXRzQ2hhcmFjdGVyc0JldHdl
ZW5BbGxWaXNpYmxlUG9zaXRpb25zLgorICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJldHVybiBW
aXNpYmxlUG9zaXRpb24oKTsKKyAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKHJhbmdlLT5zdGFy
dFBvc2l0aW9uKCkpOworfQorCiAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgdHdvIHBvc2l0aW9ucyBh
cmUgdmlzaWJseSBuZXh0IHRvIGVhY2ggb3RoZXIgKGZpcnN0IHRoZW4gc2Vjb25kKQogLy8gd2hp
bGUgaWdub3Jpbmcgd2hpdGVzcGFjZXMgYW5kIHVucmVuZGVyZWQgbm9kZXMKIGJvb2wgaXNWaXNp
Ymx5QWRqYWNlbnQoY29uc3QgUG9zaXRpb24mIGZpcnN0LCBjb25zdCBQb3NpdGlvbiYgc2Vjb25k
KQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAJ
KHJldmlzaW9uIDg5OTg3KQorKysgV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29t
bWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDE3ICs4MSwyNCBAQAogICAgIFZpc2libGVQ
b3NpdGlvbiBlbmRPZlNlbGVjdGlvbiA9IHNlbGVjdGlvbi52aXNpYmxlRW5kKCk7CiAgICAgQVNT
RVJUKCFzdGFydE9mU2VsZWN0aW9uLmlzTnVsbCgpKTsKICAgICBBU1NFUlQoIWVuZE9mU2VsZWN0
aW9uLmlzTnVsbCgpKTsKLSAgICBpbnQgc3RhcnRJbmRleCA9IGluZGV4Rm9yVmlzaWJsZVBvc2l0
aW9uKHN0YXJ0T2ZTZWxlY3Rpb24pOwotICAgIGludCBlbmRJbmRleCA9IGluZGV4Rm9yVmlzaWJs
ZVBvc2l0aW9uKGVuZE9mU2VsZWN0aW9uKTsKKyAgICBFbGVtZW50KiBzdGFydFNjb3BlID0gMDsK
KyAgICBpbnQgc3RhcnRJbmRleCA9IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHN0YXJ0T2ZTZWxl
Y3Rpb24sICZzdGFydFNjb3BlKTsKKyAgICBFbGVtZW50KiBlbmRTY29wZSA9IDA7CisgICAgaW50
IGVuZEluZGV4ID0gaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oZW5kT2ZTZWxlY3Rpb24sICZlbmRT
Y29wZSk7CiAKICAgICBmb3JtYXRTZWxlY3Rpb24oc3RhcnRPZlNlbGVjdGlvbiwgZW5kT2ZTZWxl
Y3Rpb24pOwogCiAgICAgdXBkYXRlTGF5b3V0KCk7Ci0KLSAgICBSZWZQdHI8UmFuZ2U+IHN0YXJ0
UmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKGRvY3VtZW50
KCktPmRvY3VtZW50RWxlbWVudCgpLCBzdGFydEluZGV4LCAwLCB0cnVlKTsKLSAgICBSZWZQdHI8
UmFuZ2U+IGVuZFJhbmdlID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0
aChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSwgZW5kSW5kZXgsIDAsIHRydWUpOwotICAg
IGlmIChzdGFydFJhbmdlICYmIGVuZFJhbmdlKQotICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24o
VmlzaWJsZVNlbGVjdGlvbihzdGFydFJhbmdlLT5zdGFydFBvc2l0aW9uKCksIGVuZFJhbmdlLT5z
dGFydFBvc2l0aW9uKCksIERPV05TVFJFQU0pKTsKKyAgICAKKyAgICBBU1NFUlQoc3RhcnRTY29w
ZSA9PSBlbmRTY29wZSk7CisgICAgQVNTRVJUKHN0YXJ0SW5kZXggPj0gMCk7CisgICAgQVNTRVJU
KHN0YXJ0SW5kZXggPD0gZW5kSW5kZXgpOworICAgIGlmIChzdGFydFNjb3BlID09IGVuZFNjb3Bl
ICYmIHN0YXJ0SW5kZXggPj0gMCAmJiBzdGFydEluZGV4IDw9IGVuZEluZGV4KSB7CisgICAgICAg
IFZpc2libGVQb3NpdGlvbiBzdGFydCh2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4
LCBzdGFydFNjb3BlKSk7CisgICAgICAgIFZpc2libGVQb3NpdGlvbiBlbmQodmlzaWJsZVBvc2l0
aW9uRm9ySW5kZXgoZW5kSW5kZXgsIGVuZFNjb3BlKSk7CisgICAgICAgIGlmIChzdGFydC5pc05v
dE51bGwoKSAmJiBlbmQuaXNOb3ROdWxsKCkpCisgICAgICAgICAgICBzZXRFbmRpbmdTZWxlY3Rp
b24oVmlzaWJsZVNlbGVjdGlvbihzdGFydCwgZW5kKSk7CisgICAgfQogfQogCiB2b2lkIEFwcGx5
QmxvY2tFbGVtZW50Q29tbWFuZDo6Zm9ybWF0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlv
biYgc3RhcnRPZlNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmRPZlNlbGVjdGlv
bikKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCShyZXZpc2lvbiA4OTk4NykKKysrIFdlYkNvcmUv
ZWRpdGluZy9odG1sZWRpdGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsOCArMTczLDEwIEBA
CiBib29sIGxpbmVCcmVha0V4aXN0c0F0VmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpOwogICAgIAogaW50IGNvbXBhcmVQb3NpdGlvbnMoY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7Ci1pbnQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24o
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiAKK2ludCBpbmRleEZvclZpc2libGVQb3NpdGlvbihj
b25zdCBWaXNpYmxlUG9zaXRpb24mLCBFbGVtZW50ICoqc2NvcGUpOworVmlzaWJsZVBvc2l0aW9u
IHZpc2libGVQb3NpdGlvbkZvckluZGV4KGludCBpbmRleCwgRWxlbWVudCAqc2NvcGUpOworCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBSYW5nZQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbmRleDog
V2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uaAkocmV2aXNpb24gODk5ODcpCisrKyBXZWJDb3JlL2Vk
aXRpbmcvVmlzaWJsZVBvc2l0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDcgQEAK
ICAgICBVQ2hhcjMyIGNoYXJhY3RlckFmdGVyKCkgY29uc3Q7CiAgICAgVUNoYXIzMiBjaGFyYWN0
ZXJCZWZvcmUoKSBjb25zdCB7IHJldHVybiBwcmV2aW91cygpLmNoYXJhY3RlckFmdGVyKCk7IH0K
IAorICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGhhbmRsZSBbdGFibGUsIDBdIGNvcnJlY3Rs
eS4KICAgICBFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9k
ZWVwUG9zaXRpb24uaXNOb3ROdWxsKCkgPyBtX2RlZXBQb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgp
LT5yb290RWRpdGFibGVFbGVtZW50KCkgOiAwOyB9CiAgICAgCiAgICAgdm9pZCBnZXRJbmxpbmVC
b3hBbmRPZmZzZXQoSW5saW5lQm94KiYgaW5saW5lQm94LCBpbnQmIGNhcmV0T2Zmc2V0KSBjb25z
dAo=
</data>
<flag name="review"
          id="93438"
          type_id="1"
          status="+"
          setter="enrica"
    />
          </attachment>
      

    </bug>

</bugzilla>