<?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>75779</bug_id>
          
          <creation_ts>2012-01-07 09:42:08 -0800</creation_ts>
          <short_desc>[Texmap] Move surface management from TextureMapperNode to TextureMapper</short_desc>
          <delta_ts>2012-01-09 03:54:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          
          <blocked>75778</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kenneth</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>531664</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-07 09:42:08 -0800</bug_when>
    <thetext>By having the surface management in TextureMapper, we&apos;d be able to allocate/free surface from within TextureMapper. This is necessary for filters, where several intermediate surface might be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531699</commentid>
    <comment_count>1</comment_count>
      <attachid>121562</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-07 17:25:27 -0800</bug_when>
    <thetext>Created attachment 121562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531703</commentid>
    <comment_count>2</comment_count>
      <attachid>121562</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-01-07 19:07:01 -0800</bug_when>
    <thetext>Comment on attachment 121562
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/TextureMapper.cpp:45
&gt; +

if i understood correctly, if (!newTexture) will be true just in the first loop iteration, so we could move this if out of for loop.
Doing something like:

RefPtr&lt;BitmapTexture&gt; newTexture = m_texturePool[0];
int index = 0;
for (size_t i = 1 ....)

what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531705</commentid>
    <comment_count>3</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-07 19:30:12 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 121562 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=121562&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/texmap/TextureMapper.cpp:45
&gt; &gt; +
&gt; 
&gt; if i understood correctly, if (!newTexture) will be true just in the first loop iteration, so we could move this if out of for loop.
&gt; Doing something like:
&gt; 
&gt; RefPtr&lt;BitmapTexture&gt; newTexture = m_texturePool[0];
&gt; int index = 0;
&gt; for (size_t i = 1 ....)
&gt; 
&gt; what do you think?

Yes, sounds less yucky. Will revise :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531707</commentid>
    <comment_count>4</comment_count>
      <attachid>121564</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-07 20:10:15 -0800</bug_when>
    <thetext>Created attachment 121564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531708</commentid>
    <comment_count>5</comment_count>
      <attachid>121565</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-07 20:11:49 -0800</bug_when>
    <thetext>Created attachment 121565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531816</commentid>
    <comment_count>6</comment_count>
      <attachid>121565</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-08 14:38:44 -0800</bug_when>
    <thetext>Comment on attachment 121565
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:461
&gt;  bool TextureMapperNode::paintReflection(const TextureMapperPaintOptions&amp; options
&gt;  
&gt;      // The mask has to be adjusted to target coordinates.
&gt;      if (maskTexture) {
&gt; -        maskSurface = options.surfaceManager-&gt;getIntermediateSurface();
&gt; +        maskSurface = options.textureMapper-&gt;acquireTextureFromPool(options.textureMapper-&gt;viewportSize());

btw, why doesn&apos;t the textureMapperNode have a ref to the textureMapper? instead of passing it thru the options?

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:28
&gt; +
&gt; +PassRefPtr&lt;BitmapTexture&gt; TextureMapper::acquireTextureFromPool(const IntSize&amp; size)
&gt; +{

Why make this part of the TextureMapper? And not a singleton TexturePool? Is it not singleton in nature?

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:51
&gt; +        // We choose the smallest texture that is equal or larger than the required size.
&gt; +        if ((textureSize.width() &lt; size.width() || textureSize.height() &lt; size.height())
&gt; +            || (newTextureSize.width() &gt;= size.width()
&gt; +                &amp;&amp; newTextureSize.height() &gt;= size.height()
&gt; +                &amp;&amp; newTextureSize.width() * newTextureSize.height() &lt;= textureSize.width() * textureSize.height())) {
&gt; +            continue;
&gt; +        }

Couldnt this be styled a bit nicer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531818</commentid>
    <comment_count>7</comment_count>
      <attachid>121565</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-01-08 14:42:11 -0800</bug_when>
    <thetext>Comment on attachment 121565
Patch

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

Okay! Please fix the style nit before landing.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.h:136
&gt; +        : m_parent(0), m_effectTarget(0), m_opacity(1.0), m_textureMapper(0) { }

This should probably be:
TextureMapperNode()
    : m_parent(0)
    , m_effectTarget(0)
    , m_opacity(1),
    , m_textureMapper(0)
{
}

Note the style guide suggests remove the .0 from floats when it isn&apos;t important for arithmetic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531819</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-01-08 14:44:29 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 121565 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=121565&amp;action=review

Whoops, sorry Noam. Kenneth left these comments while I was doing my review. I&apos;m also interested in the answers to his questions, so maybe you might wait untli a nod from him to land this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531845</commentid>
    <comment_count>9</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-08 15:32:53 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; btw, why doesn&apos;t the textureMapperNode have a ref to the textureMapper? instead of passing it thru the options?
Because TextureMappers might be changed... they&apos;re tied to the painting context. You shouldn&apos;t really use TexftureMapper, except for during paint.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:28
&gt; &gt; +
&gt; &gt; +PassRefPtr&lt;BitmapTexture&gt; TextureMapper::acquireTextureFromPool(const IntSize&amp; size)
&gt; &gt; +{
&gt; 
&gt; Why make this part of the TextureMapper? And not a singleton TexturePool? Is it not singleton in nature?
No, it has to be cleaned up together with other TextureMapper-bound resources.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp:51
&gt; &gt; +        // We choose the smallest texture that is equal or larger than the required size.
&gt; &gt; +        if ((textureSize.width() &lt; size.width() || textureSize.height() &lt; size.height())
&gt; &gt; +            || (newTextureSize.width() &gt;= size.width()
&gt; &gt; +                &amp;&amp; newTextureSize.height() &gt;= size.height()
&gt; &gt; +                &amp;&amp; newTextureSize.width() * newTextureSize.height() &lt;= textureSize.width() * textureSize.height())) {
&gt; &gt; +            continue;
&gt; &gt; +        }
&gt; 
&gt; Couldnt this be styled a bit nicer?
Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531859</commentid>
    <comment_count>10</comment_count>
      <attachid>121599</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-08 16:05:34 -0800</bug_when>
    <thetext>Created attachment 121599
Patch

Addressed some of the comments with the patch; Other comments I addressed in previous reply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532041</commentid>
    <comment_count>11</comment_count>
      <attachid>121599</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-09 01:30:04 -0800</bug_when>
    <thetext>Comment on attachment 121599
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/TextureMapper.cpp:53
&gt; +        bool selectedTextureContainsSize =

FitsSize?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532060</commentid>
    <comment_count>12</comment_count>
      <attachid>121636</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-09 02:42:18 -0800</bug_when>
    <thetext>Created attachment 121636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532062</commentid>
    <comment_count>13</comment_count>
      <attachid>121636</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-09 02:44:14 -0800</bug_when>
    <thetext>Comment on attachment 121636
Patch

Rejecting attachment 121636 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
apply&apos;, u&apos;--force&apos;]&quot; exit_code: 9

Error: the Git diff contains a binary file without the binary data in line: &quot;Binary files /dev/null and b/LayoutTests/platform/qt/css3/filters/add-filter-rendering-expected.png differ&quot;.  Be sure to use the --binary flag when invoking &quot;git diff&quot; with diffs containing binary files. at /mnt/git/webkit-commit-queue/Tools/Scripts/VCSUtils.pm line 676, &lt;ARGV&gt; line 58.

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 9

Full output: http://queues.webkit.org/results/11183429</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532064</commentid>
    <comment_count>14</comment_count>
      <attachid>121637</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-01-09 02:49:13 -0800</bug_when>
    <thetext>Created attachment 121637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532077</commentid>
    <comment_count>15</comment_count>
      <attachid>121637</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-09 03:54:21 -0800</bug_when>
    <thetext>Comment on attachment 121637
Patch

Clearing flags on attachment: 121637

Committed r104447: &lt;http://trac.webkit.org/changeset/104447&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532078</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-09 03:54:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121562</attachid>
            <date>2012-01-07 17:25:27 -0800</date>
            <delta_ts>2012-01-07 20:10:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>15822</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzZTE3YWZiLi43NTc5MWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzUg
QEAKKyAyMDEyLTAxLTA3ICBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5j
b20+CisgCisgICAgICAgIFtUZXhtYXBdIE1vdmUgc3VyZmFjZSBtYW5hZ2VtZW50IGZyb20gVGV4
dHVyZU1hcHBlck5vZGUgdG8gVGV4dHVyZU1hcHBlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NzkKKworICAgICAgICBJbnN0ZWFkIG9mIGEgVGV4
dHVyZU1hcHBlclN1cmZhY2VNYW5hZ2VyIGNsYXNzIGluc2lkZSBvZiBUZXh0dXJlTWFwcGVyTm9k
ZS5jcHAsIHdlIG5vdworICAgICAgICBtYWludGFpbiB0aGF0IHN1cmZhY2UgcG9vbCBpbnNpZGUg
b2YgdGhlIFRleHR1cmVNYXBwZXIgY2xhc3MuIFRoaXMgd2lsbCBsYXRlciBhbGxvdyB1cyB0bwor
ICAgICAgICBhbGxvY2F0ZSBpbnRlcm1lZGlhdGUgc3VyZmFjZSBmcm9tIHdpdGhpbiBUZXh0dXJl
TWFwcGVyR0wsIGEgZnVuY3Rpb25hbGl0eSB3ZSBuZWVkIGZvcgorICAgICAgICBmaWx0ZXJzLgor
CisgICAgICAgIEFsc28sIHN1cmZhY2VzIGFyZSBub3QgYXV0b21hdGljYWxseSBjcmVhdGVkIHdp
dGggdGhlIHZpZXdwb3J0IHNpemUsIGJ1dCByYXRoZXIgd2l0aCB0aGUKKyAgICAgICAgc2l6ZSBw
YXNzZWQgYXMgYSBwYXJhbWV0ZXIuIFRoZSBzdXJmYWNlIGZyb20gdGhlIHBvb2wgaXMgdGhlIHNt
YWxsZXN0IHRleHR1cmUgdGhhdCBpcworICAgICAgICBsYXJnZXIgdGhhbiB0aGUgcmVxdWlyZWQg
c2l6ZSwgb3IgYW55IHRleHR1cmUgaWYgc3VjaCB0ZXh0dXJlIGlzIG5vdCB5ZXQgYWxsb2NhdGVk
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Rz
IGluIExheW91dFRlc3RzL2NvbXBvc2l0aW5nIGFscmVhZHkgY292ZXIgdGhpcy4KKworICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIFRleHR1cmVNYXBwZXIuY3BwIHRvIHRoZSBi
dWlsZC4KKyAgICAgICAgKiBUYXJnZXQucHJpOiBBZGRlZCBUZXh0dXJlTWFwcGVyLmNwcCB0byB0
aGUgYnVpbGQuCisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGRlZCBUZXh0dXJlTWFwcGVyLmNw
cCB0byB0aGUgYnVpbGQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6
cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnRSZWN1cnNp
dmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OlRleHR1cmVNYXBwZXJO
b2RlKToKKwoyMDEyLTAxLTA3ICBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tp
YS5jb20+CgogICAgICAgICBbUXRdIEVuYWJsZSBDU1NfRklMVEVSUyBpbiBRdCBidWlsZAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NzcKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNWMwNTM5Ni4uMWYyNjk1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01NjU1LDYgKzU2NTUsNyBAQCBpZiBVU0VfVEVYVFVS
RV9NQVBQRVJfQ0FJUk8KIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmggXApAQCAtNTY3MCw2ICs1NjcxLDcg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTm9kZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGIxMDg5NDUuLjky
YTQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMzkxMyw2ICszOTEzLDcgQEAgY29udGFpbnMoQ09ORklH
LCB0ZXhtYXApIHsKIAogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwIFwKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXIuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDE0
ZGFkMDMuLjZjMDBmNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTM5MzEsNiArMzkzMSw3IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9UcmFuc2Zvcm1hdGlvbk1hdHJpeFNr
aWEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCcsCisgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXIuaAppbmRleCAyNzA1OGFhLi5kODEzMzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTEyNiw2ICsx
MjYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luUGFpbnRpbmcoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZW5kUGFpbnRpbmcoKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCByZWxl
YXNlVGV4dHVyZVRvUG9vbChCaXRtYXBUZXh0dXJlKiBzdXJmYWNlKTsKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gYWNxdWlyZVRleHR1cmVGcm9tUG9vbChjb25zdCBJbnRT
aXplJik7CisKIAogcHJvdGVjdGVkOgogICAgIFRleHR1cmVNYXBwZXIoKQpAQCAtMTM4LDYgKzE0
MSw3IEBAIHByaXZhdGU6CiAgICAgVGV4dERyYXdpbmdNb2RlRmxhZ3MgbV90ZXh0RHJhd2luZ01v
ZGU7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV90cmFuc2Zvcm07CiAgICAgSW50U2l6ZSBt
X3ZpZXdwb3J0U2l6ZTsKKyAgICBWZWN0b3I8UmVmUHRyPEJpdG1hcFRleHR1cmU+ID4gbV90ZXh0
dXJlUG9vbDsKIH07CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcAppbmRleCA5MTU3ZTIz
Li4xNWRmZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKQEAgLTMxLDQwICszMSw2IEBA
IG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVGV4dHVyZU1hcHBl
clN1cmZhY2VNYW5hZ2VyIHsKLXB1YmxpYzoKLSAgICBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFw
cGVyOwotICAgIFZlY3RvcjxSZWZQdHI8Qml0bWFwVGV4dHVyZT4gPiBzdXJmYWNlczsKLSAgICBJ
bnRTaXplIHZpZXdwb3J0U2l6ZTsKLQotICAgIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gZ2V0
SW50ZXJtZWRpYXRlU3VyZmFjZSgpCi0gICAgewotICAgICAgICBJbnRTaXplIG5ld1ZpZXdwb3J0
U2l6ZSA9IHRleHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgpOwotICAgICAgICBpZiAobmV3Vmll
d3BvcnRTaXplICE9IHZpZXdwb3J0U2l6ZSkgewotICAgICAgICAgICAgdmlld3BvcnRTaXplID0g
bmV3Vmlld3BvcnRTaXplOwotICAgICAgICAgICAgc3VyZmFjZXMuY2xlYXIoKTsKLSAgICAgICAg
fQotICAgICAgICBpZiAoc3VyZmFjZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8
Qml0bWFwVGV4dHVyZT4gbmV3U3VyZmFjZSA9IHRleHR1cmVNYXBwZXItPmNyZWF0ZVRleHR1cmUo
KTsKLSAgICAgICAgICAgIG5ld1N1cmZhY2UtPnJlc2V0KHZpZXdwb3J0U2l6ZSwgZmFsc2UpOwot
ICAgICAgICAgICAgcmV0dXJuIG5ld1N1cmZhY2UuZ2V0KCk7Ci0gICAgICAgIH0KLSAgICAgICAg
UmVmUHRyPEJpdG1hcFRleHR1cmU+IHN1cmZhY2UgPSBzdXJmYWNlcy5sYXN0KCk7Ci0gICAgICAg
IHN1cmZhY2UtPnJlc2V0KHZpZXdwb3J0U2l6ZSwgZmFsc2UpOwotICAgICAgICBzdXJmYWNlcy5y
ZW1vdmVMYXN0KCk7Ci0gICAgICAgIHN1cmZhY2UtPmxvY2soKTsKLSAgICAgICAgcmV0dXJuIHN1
cmZhY2UuZ2V0KCk7Ci0gICAgfQotCi0gICAgdm9pZCByZWxlYXNlSW50ZXJtZWRpYXRlU3VyZmFj
ZShCaXRtYXBUZXh0dXJlKiBzdXJmYWNlKQotICAgIHsKLSAgICAgICAgaWYgKCFzdXJmYWNlKQot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBzdXJmYWNlcy5hcHBlbmQoc3VyZmFjZSk7Ci0g
ICAgICAgIHN1cmZhY2UtPnVubG9jaygpOwotICAgIH0KLX07Ci0KIFRleHR1cmVNYXBwZXJOb2Rl
KiB0b1RleHR1cmVNYXBwZXJOb2RlKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogewogICAgIHJldHVy
biBsYXllciA/IHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIobGF5ZXIpLT5ub2RlKCkgOiAw
OwpAQCAtMzQ2LDExICszMTIsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludCgpCiAg
ICAgaWYgKG1fc2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9z
dXJmYWNlTWFuYWdlcikKLSAgICAgICAgbV9zdXJmYWNlTWFuYWdlciA9IG5ldyBUZXh0dXJlTWFw
cGVyU3VyZmFjZU1hbmFnZXI7Ci0gICAgbV9zdXJmYWNlTWFuYWdlci0+dGV4dHVyZU1hcHBlciA9
IG1fdGV4dHVyZU1hcHBlcjsKICAgICBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zIG9wdDsKLSAg
ICBvcHQuc3VyZmFjZU1hbmFnZXIgPSBtX3N1cmZhY2VNYW5hZ2VyOwogICAgIG9wdC50ZXh0dXJl
TWFwcGVyID0gbV90ZXh0dXJlTWFwcGVyOwogICAgIG9wdC50ZXh0dXJlTWFwcGVyLT5iaW5kU3Vy
ZmFjZSgwKTsKICAgICBwYWludFJlY3Vyc2l2ZShvcHQpOwpAQCAtNDk2LDcgKzQ1OCw3IEBAIGJv
b2wgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVjdGlvbihjb25zdCBUZXh0dXJlTWFwcGVy
UGFpbnRPcHRpb25zJiBvcHRpb25zCiAKICAgICAvLyBUaGUgbWFzayBoYXMgdG8gYmUgYWRqdXN0
ZWQgdG8gdGFyZ2V0IGNvb3JkaW5hdGVzLgogICAgIGlmIChtYXNrVGV4dHVyZSkgewotICAgICAg
ICBtYXNrU3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPmdldEludGVybWVkaWF0ZVN1
cmZhY2UoKTsKKyAgICAgICAgbWFza1N1cmZhY2UgPSBvcHRpb25zLnRleHR1cmVNYXBwZXItPmFj
cXVpcmVUZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFwcGVyLT52aWV3cG9ydFNpemUo
KSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmluZFN1cmZhY2UobWFza1N1cmZh
Y2UuZ2V0KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpt
YXNrVGV4dHVyZS5nZXQoKSwgZW50aXJlUmVjdCgpLCBtX3RyYW5zZm9ybXMudGFyZ2V0LCAxLCAw
KTsKICAgICAgICAgbWFza1RleHR1cmUgPSBtYXNrU3VyZmFjZTsKQEAgLTUwNCw3ICs0NjYsNyBA
QCBib29sIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlZmxlY3Rpb24oY29uc3QgVGV4dHVyZU1h
cHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucwogCiAgICAgLy8gVGhlIHJlcGxpY2EncyBtYXNrIGhh
cyB0byBiZSBhZGp1c3RlZCB0byB0YXJnZXQgY29vcmRpbmF0ZXMuCiAgICAgaWYgKHJlcGxpY2FN
YXNrVGV4dHVyZSkgewotICAgICAgICByZXBsaWNhTWFza1N1cmZhY2UgPSBvcHRpb25zLnN1cmZh
Y2VNYW5hZ2VyLT5nZXRJbnRlcm1lZGlhdGVTdXJmYWNlKCk7CisgICAgICAgIHJlcGxpY2FNYXNr
U3VyZmFjZSA9IG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChv
cHRpb25zLnRleHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgpKTsKICAgICAgICAgb3B0aW9ucy50
ZXh0dXJlTWFwcGVyLT5iaW5kU3VyZmFjZShyZXBsaWNhTWFza1N1cmZhY2UuZ2V0KCkpOwogICAg
ICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpyZXBsaWNhTWFza1RleHR1
cmUuZ2V0KCksIGVudGlyZVJlY3QoKSwgbV90cmFuc2Zvcm1zLnRhcmdldCwgMSwgMCk7CiAgICAg
ICAgIHJlcGxpY2FNYXNrVGV4dHVyZSA9IHJlcGxpY2FNYXNrU3VyZmFjZTsKQEAgLTUxMiwyMSAr
NDc0LDIxIEBAIGJvb2wgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVjdGlvbihjb25zdCBU
ZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zCiAKICAgICAvLyBXZSBtaWdodCBuZWVk
IHRvIGFwcGx5IHRoZSBtYXNrIG9mIHRoZSBjb250ZW50IGxheWVyIGJlZm9yZSB3ZSBkcmF3IHRo
ZSByZWZsZWN0aW9uLCBhcyB0aGVyZSBtaWdodCBiZSB5ZXQgYW5vdGhlciBtYXNrIGZvciB0aGUg
cmVmbGVjdGlvbiBpdHNlbGYuCiAgICAgaWYgKHVzZUludGVybWVkaWF0ZUJ1ZmZlckZvck1hc2sp
IHsKLSAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IG1hc2tTdXJmYWNlID0gb3B0aW9ucy5z
dXJmYWNlTWFuYWdlci0+Z2V0SW50ZXJtZWRpYXRlU3VyZmFjZSgpOworICAgICAgICBSZWZQdHI8
Qml0bWFwVGV4dHVyZT4gbWFza1N1cmZhY2UgPSBvcHRpb25zLnRleHR1cmVNYXBwZXItPmFjcXVp
cmVUZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFwcGVyLT52aWV3cG9ydFNpemUoKSk7
CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmluZFN1cmZhY2UobWFza1N1cmZhY2Uu
Z2V0KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpzdXJm
YWNlLmdldCgpLCB2aWV3cG9ydFJlY3QsIFRyYW5zZm9ybWF0aW9uTWF0cml4KCksIDEsIG1hc2tU
ZXh0dXJlLmdldCgpKTsKLSAgICAgICAgb3B0aW9ucy5zdXJmYWNlTWFuYWdlci0+cmVsZWFzZUlu
dGVybWVkaWF0ZVN1cmZhY2Uoc3VyZmFjZS5nZXQoKSk7CisgICAgICAgIG9wdGlvbnMudGV4dHVy
ZU1hcHBlci0+cmVsZWFzZVRleHR1cmVUb1Bvb2woc3VyZmFjZS5nZXQoKSk7CiAgICAgICAgIHN1
cmZhY2UgPSBtYXNrU3VyZmFjZTsKICAgICAgICAgbWFza1RleHR1cmUuY2xlYXIoKTsKICAgICB9
CiAKICAgICAvLyBXZSBibGVuZCB0aGUgbGF5ZXIgYW5kIGl0cyByZXBsaWNhIGluIGFuIGludGVy
bWVkaWF0ZSBidWZmZXIgYmVmb3JlIGJsZW5kaW5nIGludG8gdGhlIHRhcmdldCBzdXJmYWNlLgog
ICAgIGlmICh1c2VJbnRlcm1lZGlhdGVCdWZmZXJGb3JSZXBsaWNhKSB7Ci0gICAgICAgIFJlZlB0
cjxCaXRtYXBUZXh0dXJlPiByZXBsaWNhU3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXIt
PmdldEludGVybWVkaWF0ZVN1cmZhY2UoKTsKKyAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+
IHJlcGxpY2FTdXJmYWNlID0gb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZy
b21Qb29sKG9wdGlvbnMudGV4dHVyZU1hcHBlci0+dmlld3BvcnRTaXplKCkpOwogICAgICAgICBv
cHRpb25zLnRleHR1cmVNYXBwZXItPmJpbmRTdXJmYWNlKHJlcGxpY2FTdXJmYWNlLmdldCgpKTsK
ICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQo
KSwgdmlld3BvcnRSZWN0LCBtX3RyYW5zZm9ybXMucmVwbGljYSwgbV9zdGF0ZS5yZXBsaWNhTGF5
ZXItPm1fb3BhY2l0eSwgcmVwbGljYU1hc2tUZXh0dXJlLmdldCgpKTsKICAgICAgICAgb3B0aW9u
cy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQoKSwgdmlld3BvcnRSZWN0
LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAxLCBtYXNrVGV4dHVyZS5nZXQoKSk7Ci0gICAgICAg
IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJmYWNlKHN1cmZh
Y2UuZ2V0KCkpOworICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPnJlbGVhc2VUZXh0dXJl
VG9Qb29sKHN1cmZhY2UuZ2V0KCkpOwogICAgICAgICBzdXJmYWNlID0gcmVwbGljYVN1cmZhY2U7
CiAgICAgfQogCkBAIC01MzksOCArNTAxLDggQEAgYm9vbCBUZXh0dXJlTWFwcGVyTm9kZTo6cGFp
bnRSZWZsZWN0aW9uKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMKICAg
ICAvLyBEcmF3IHRoZSBvcmlnaW5hbC4KICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdU
ZXh0dXJlKCpzdXJmYWNlLmdldCgpLCB2aWV3cG9ydFJlY3QsIFRyYW5zZm9ybWF0aW9uTWF0cml4
KCksIG9wdGlvbnMub3BhY2l0eSwgbWFza1RleHR1cmUuZ2V0KCkpOwogCi0gICAgb3B0aW9ucy5z
dXJmYWNlTWFuYWdlci0+cmVsZWFzZUludGVybWVkaWF0ZVN1cmZhY2UobWFza1N1cmZhY2UuZ2V0
KCkpOwotICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJm
YWNlKHJlcGxpY2FNYXNrU3VyZmFjZS5nZXQoKSk7CisgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVy
LT5yZWxlYXNlVGV4dHVyZVRvUG9vbChtYXNrU3VyZmFjZS5nZXQoKSk7CisgICAgb3B0aW9ucy50
ZXh0dXJlTWFwcGVyLT5yZWxlYXNlVGV4dHVyZVRvUG9vbChyZXBsaWNhTWFza1N1cmZhY2UuZ2V0
KCkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC01NzAsMTIgKzUzMiwxMiBAQCB2b2lkIFRl
eHR1cmVNYXBwZXJOb2RlOjpwYWludFJlY3Vyc2l2ZShUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25z
IG9wdGlvbnMpCiAKICAgICAvLyBUaGUgbWFzayBoYXMgdG8gYmUgYWRqdXN0ZWQgdG8gdGFyZ2V0
IGNvb3JkaW5hdGVzLgogICAgIGlmIChtX3N0YXRlLm1hc2tMYXllcikgewotICAgICAgICBtYXNr
U3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPmdldEludGVybWVkaWF0ZVN1cmZhY2Uo
KTsKKyAgICAgICAgbWFza1N1cmZhY2UgPSBvcHRpb25zLnRleHR1cmVNYXBwZXItPmFjcXVpcmVU
ZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFwcGVyLT52aWV3cG9ydFNpemUoKSk7CiAg
ICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmluZFN1cmZhY2UobWFza1N1cmZhY2UuZ2V0
KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCptX3N0YXRl
Lm1hc2tMYXllci0+dGV4dHVyZSgpLCBlbnRpcmVSZWN0KCksIG1fdHJhbnNmb3Jtcy50YXJnZXQs
IDEuMCwgMCk7CiAgICAgfQogCi0gICAgc3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXIt
PmdldEludGVybWVkaWF0ZVN1cmZhY2UoKTsKKyAgICBzdXJmYWNlID0gb3B0aW9ucy50ZXh0dXJl
TWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKG9wdGlvbnMudGV4dHVyZU1hcHBlci0+dmll
d3BvcnRTaXplKCkpOwogICAgIG9wdGlvbnNGb3JEZXNjZW5kYW50cy5zdXJmYWNlID0gc3VyZmFj
ZS5nZXQoKTsKICAgICBvcHRpb25zLmlzU3VyZmFjZSA9IHRydWU7CiAgICAgb3B0aW9uc0ZvckRl
c2NlbmRhbnRzLm9wYWNpdHkgPSAxOwpAQCAtNTg4LDggKzU1MCw4IEBAIHZvaWQgVGV4dHVyZU1h
cHBlck5vZGU6OnBhaW50UmVjdXJzaXZlKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMgb3B0aW9u
cykKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5n
ZXQoKSwgdmlld3BvcnRSZWN0LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBvcHRpb25zLm9wYWNp
dHksIDApOwogICAgIH0KIAotICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRl
cm1lZGlhdGVTdXJmYWNlKHN1cmZhY2UuZ2V0KCkpOwotICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFn
ZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJmYWNlKG1hc2tTdXJmYWNlLmdldCgpKTsKKyAgICBv
cHRpb25zLnRleHR1cmVNYXBwZXItPnJlbGVhc2VUZXh0dXJlVG9Qb29sKHN1cmZhY2UuZ2V0KCkp
OworICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+cmVsZWFzZVRleHR1cmVUb1Bvb2wobWFza1N1
cmZhY2UuZ2V0KCkpOwogfQogCiBUZXh0dXJlTWFwcGVyTm9kZTo6flRleHR1cmVNYXBwZXJOb2Rl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m
NDg4YmZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorCisgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
CisgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVGV4dHVyZU1hcHBlci5oIgorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiBVU0UoVEVYVFVSRV9NQVBQRVIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0
cjxCaXRtYXBUZXh0dXJlPiBUZXh0dXJlTWFwcGVyOjphY3F1aXJlVGV4dHVyZUZyb21Qb29sKGNv
bnN0IEludFNpemUmIHNpemUpCit7CisgICAgaWYgKG1fdGV4dHVyZVBvb2wuaXNFbXB0eSgpKSB7
CisgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBuZXdUZXh0dXJlID0gY3JlYXRlVGV4dHVy
ZSgpOworICAgICAgICBuZXdUZXh0dXJlLT5yZXNldChzaXplLCBmYWxzZSk7CisgICAgICAgIG5l
d1RleHR1cmUtPmxvY2soKTsKKyAgICAgICAgcmV0dXJuIG5ld1RleHR1cmU7CisgICAgfQorCisg
ICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IG5ld1RleHR1cmU7CisgICAgaW50IGluZGV4ID0gLTE7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3RleHR1cmVQb29sLnNpemUoKTsgKytpKSB7
CisgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlID0gbV90ZXh0dXJlUG9vbFtp
XTsKKyAgICAgICAgaWYgKCFuZXdUZXh0dXJlKSB7CisgICAgICAgICAgICBuZXdUZXh0dXJlID0g
dGV4dHVyZTsKKyAgICAgICAgICAgIGluZGV4ID0gaTsKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB9CisKKyAgICAgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZSA9IHRleHR1cmUtPnNpemUo
KTsKKyAgICAgICAgSW50U2l6ZSBuZXdUZXh0dXJlU2l6ZSA9IG5ld1RleHR1cmUtPnNpemUoKTsK
KworICAgICAgICAvLyBXZSBjaG9vc2UgdGhlIHNtYWxsZXN0IHRleHR1cmUgdGhhdCBpcyBlcXVh
bCBvciBsYXJnZXIgdGhhbiB0aGUgcmVxdWlyZWQgc2l6ZS4KKyAgICAgICAgaWYgKCh0ZXh0dXJl
U2l6ZS53aWR0aCgpID49IHNpemUud2lkdGgoKSAmJiB0ZXh0dXJlU2l6ZS5oZWlnaHQoKSA+PSBz
aXplLmhlaWdodCgpKQorICAgICAgICAgICAgJiYgKG5ld1RleHR1cmVTaXplLndpZHRoKCkgPCBz
aXplLndpZHRoKCkKKyAgICAgICAgICAgICAgICB8fCBuZXdUZXh0dXJlU2l6ZS5oZWlnaHQoKSA8
IHNpemUuaGVpZ2h0KCkKKyAgICAgICAgICAgICAgICB8fCBuZXdUZXh0dXJlU2l6ZS53aWR0aCgp
ICogbmV3VGV4dHVyZVNpemUuaGVpZ2h0KCkgPiB0ZXh0dXJlU2l6ZS53aWR0aCgpICogdGV4dHVy
ZVNpemUuaGVpZ2h0KCkpKSB7CisgICAgICAgICAgICBuZXdUZXh0dXJlID0gdGV4dHVyZTsKKyAg
ICAgICAgICAgIGluZGV4ID0gaTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1fdGV4dHVyZVBv
b2wucmVtb3ZlKGluZGV4KTsKKyAgICBuZXdUZXh0dXJlLT5yZXNldChzaXplLCBmYWxzZSk7Cisg
ICAgbmV3VGV4dHVyZS0+bG9jaygpOworICAgIHJldHVybiBuZXdUZXh0dXJlOworfQorCit2b2lk
IFRleHR1cmVNYXBwZXI6OnJlbGVhc2VUZXh0dXJlVG9Qb29sKEJpdG1hcFRleHR1cmUqIHRleHR1
cmUpCit7CisgICAgaWYgKCF0ZXh0dXJlKQorICAgICAgICByZXR1cm47CisgICAgbV90ZXh0dXJl
UG9vbC5hcHBlbmQodGV4dHVyZSk7CisgICAgdGV4dHVyZS0+dW5sb2NrKCk7Cit9CisKK30KKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaAppbmRleCBmYzQ3OWJhLi5lZGEwYTZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlck5vZGUuaApAQCAtMzksMTMgKzM5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyOwogY2xhc3MgVGV4dHVyZU1hcHBlck5v
ZGU7CiBjbGFzcyBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjsKLWNsYXNzIFRleHR1cmVNYXBw
ZXJTdXJmYWNlTWFuYWdlcjsKIAogY2xhc3MgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyB7CiBw
dWJsaWM6CiAgICAgQml0bWFwVGV4dHVyZSogc3VyZmFjZTsKICAgICBUZXh0dXJlTWFwcGVyKiB0
ZXh0dXJlTWFwcGVyOwotICAgIFRleHR1cmVNYXBwZXJTdXJmYWNlTWFuYWdlciogc3VyZmFjZU1h
bmFnZXI7CiAKICAgICBmbG9hdCBvcGFjaXR5OwogICAgIGJvb2wgaXNTdXJmYWNlOwpAQCAtMTM1
LDcgKzEzMyw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgVGV4dHVyZU1hcHBlck5vZGUoKQot
ICAgICAgICA6IG1fcGFyZW50KDApLCBtX2VmZmVjdFRhcmdldCgwKSwgbV9vcGFjaXR5KDEuMCks
IG1fc3VyZmFjZU1hbmFnZXIoMCksIG1fdGV4dHVyZU1hcHBlcigwKSB7IH0KKyAgICAgICAgOiBt
X3BhcmVudCgwKSwgbV9lZmZlY3RUYXJnZXQoMCksIG1fb3BhY2l0eSgxLjApLCBtX3RleHR1cmVN
YXBwZXIoMCkgeyB9CiAKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyTm9kZSgpOwogCkBAIC0z
MTcsNyArMzE1LDYgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgU3RhdGUgbV9zdGF0ZTsKLSAg
ICBUZXh0dXJlTWFwcGVyU3VyZmFjZU1hbmFnZXIqIG1fc3VyZmFjZU1hbmFnZXI7CiAgICAgVGV4
dHVyZU1hcHBlciogbV90ZXh0dXJlTWFwcGVyOwogCiAgICAgVmVjdG9yPFJlZlB0cjxUZXh0dXJl
TWFwcGVyQW5pbWF0aW9uPiA+IG1fYW5pbWF0aW9uczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121564</attachid>
            <date>2012-01-07 20:10:15 -0800</date>
            <delta_ts>2012-01-07 20:11:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>15822</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzZTE3YWZiLi43NTc5MWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzUg
QEAKKyAyMDEyLTAxLTA3ICBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5j
b20+CisgCisgICAgICAgIFtUZXhtYXBdIE1vdmUgc3VyZmFjZSBtYW5hZ2VtZW50IGZyb20gVGV4
dHVyZU1hcHBlck5vZGUgdG8gVGV4dHVyZU1hcHBlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NzkKKworICAgICAgICBJbnN0ZWFkIG9mIGEgVGV4
dHVyZU1hcHBlclN1cmZhY2VNYW5hZ2VyIGNsYXNzIGluc2lkZSBvZiBUZXh0dXJlTWFwcGVyTm9k
ZS5jcHAsIHdlIG5vdworICAgICAgICBtYWludGFpbiB0aGF0IHN1cmZhY2UgcG9vbCBpbnNpZGUg
b2YgdGhlIFRleHR1cmVNYXBwZXIgY2xhc3MuIFRoaXMgd2lsbCBsYXRlciBhbGxvdyB1cyB0bwor
ICAgICAgICBhbGxvY2F0ZSBpbnRlcm1lZGlhdGUgc3VyZmFjZSBmcm9tIHdpdGhpbiBUZXh0dXJl
TWFwcGVyR0wsIGEgZnVuY3Rpb25hbGl0eSB3ZSBuZWVkIGZvcgorICAgICAgICBmaWx0ZXJzLgor
CisgICAgICAgIEFsc28sIHN1cmZhY2VzIGFyZSBub3QgYXV0b21hdGljYWxseSBjcmVhdGVkIHdp
dGggdGhlIHZpZXdwb3J0IHNpemUsIGJ1dCByYXRoZXIgd2l0aCB0aGUKKyAgICAgICAgc2l6ZSBw
YXNzZWQgYXMgYSBwYXJhbWV0ZXIuIFRoZSBzdXJmYWNlIGZyb20gdGhlIHBvb2wgaXMgdGhlIHNt
YWxsZXN0IHRleHR1cmUgdGhhdCBpcworICAgICAgICBsYXJnZXIgdGhhbiB0aGUgcmVxdWlyZWQg
c2l6ZSwgb3IgYW55IHRleHR1cmUgaWYgc3VjaCB0ZXh0dXJlIGlzIG5vdCB5ZXQgYWxsb2NhdGVk
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Rz
IGluIExheW91dFRlc3RzL2NvbXBvc2l0aW5nIGFscmVhZHkgY292ZXIgdGhpcy4KKworICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIFRleHR1cmVNYXBwZXIuY3BwIHRvIHRoZSBi
dWlsZC4KKyAgICAgICAgKiBUYXJnZXQucHJpOiBBZGRlZCBUZXh0dXJlTWFwcGVyLmNwcCB0byB0
aGUgYnVpbGQuCisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGRlZCBUZXh0dXJlTWFwcGVyLmNw
cCB0byB0aGUgYnVpbGQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6
cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnRSZWN1cnNp
dmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OlRleHR1cmVNYXBwZXJO
b2RlKToKKwoyMDEyLTAxLTA3ICBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tp
YS5jb20+CgogICAgICAgICBbUXRdIEVuYWJsZSBDU1NfRklMVEVSUyBpbiBRdCBidWlsZAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NzcKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNWMwNTM5Ni4uMWYyNjk1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01NjU1LDYgKzU2NTUsNyBAQCBpZiBVU0VfVEVYVFVS
RV9NQVBQRVJfQ0FJUk8KIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmggXApAQCAtNTY3MCw2ICs1NjcxLDcg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTm9kZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGIxMDg5NDUuLjky
YTQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMzkxMyw2ICszOTEzLDcgQEAgY29udGFpbnMoQ09ORklH
LCB0ZXhtYXApIHsKIAogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwIFwKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXIuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDE0
ZGFkMDMuLjZjMDBmNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTM5MzEsNiArMzkzMSw3IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9UcmFuc2Zvcm1hdGlvbk1hdHJpeFNr
aWEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCcsCisgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXIuaAppbmRleCAyNzA1OGFhLi5kODEzMzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTEyNiw2ICsx
MjYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luUGFpbnRpbmcoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZW5kUGFpbnRpbmcoKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCByZWxl
YXNlVGV4dHVyZVRvUG9vbChCaXRtYXBUZXh0dXJlKiBzdXJmYWNlKTsKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gYWNxdWlyZVRleHR1cmVGcm9tUG9vbChjb25zdCBJbnRT
aXplJik7CisKIAogcHJvdGVjdGVkOgogICAgIFRleHR1cmVNYXBwZXIoKQpAQCAtMTM4LDYgKzE0
MSw3IEBAIHByaXZhdGU6CiAgICAgVGV4dERyYXdpbmdNb2RlRmxhZ3MgbV90ZXh0RHJhd2luZ01v
ZGU7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV90cmFuc2Zvcm07CiAgICAgSW50U2l6ZSBt
X3ZpZXdwb3J0U2l6ZTsKKyAgICBWZWN0b3I8UmVmUHRyPEJpdG1hcFRleHR1cmU+ID4gbV90ZXh0
dXJlUG9vbDsKIH07CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcAppbmRleCA5MTU3ZTIz
Li4xNWRmZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKQEAgLTMxLDQwICszMSw2IEBA
IG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVGV4dHVyZU1hcHBl
clN1cmZhY2VNYW5hZ2VyIHsKLXB1YmxpYzoKLSAgICBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFw
cGVyOwotICAgIFZlY3RvcjxSZWZQdHI8Qml0bWFwVGV4dHVyZT4gPiBzdXJmYWNlczsKLSAgICBJ
bnRTaXplIHZpZXdwb3J0U2l6ZTsKLQotICAgIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gZ2V0
SW50ZXJtZWRpYXRlU3VyZmFjZSgpCi0gICAgewotICAgICAgICBJbnRTaXplIG5ld1ZpZXdwb3J0
U2l6ZSA9IHRleHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgpOwotICAgICAgICBpZiAobmV3Vmll
d3BvcnRTaXplICE9IHZpZXdwb3J0U2l6ZSkgewotICAgICAgICAgICAgdmlld3BvcnRTaXplID0g
bmV3Vmlld3BvcnRTaXplOwotICAgICAgICAgICAgc3VyZmFjZXMuY2xlYXIoKTsKLSAgICAgICAg
fQotICAgICAgICBpZiAoc3VyZmFjZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8
Qml0bWFwVGV4dHVyZT4gbmV3U3VyZmFjZSA9IHRleHR1cmVNYXBwZXItPmNyZWF0ZVRleHR1cmUo
KTsKLSAgICAgICAgICAgIG5ld1N1cmZhY2UtPnJlc2V0KHZpZXdwb3J0U2l6ZSwgZmFsc2UpOwot
ICAgICAgICAgICAgcmV0dXJuIG5ld1N1cmZhY2UuZ2V0KCk7Ci0gICAgICAgIH0KLSAgICAgICAg
UmVmUHRyPEJpdG1hcFRleHR1cmU+IHN1cmZhY2UgPSBzdXJmYWNlcy5sYXN0KCk7Ci0gICAgICAg
IHN1cmZhY2UtPnJlc2V0KHZpZXdwb3J0U2l6ZSwgZmFsc2UpOwotICAgICAgICBzdXJmYWNlcy5y
ZW1vdmVMYXN0KCk7Ci0gICAgICAgIHN1cmZhY2UtPmxvY2soKTsKLSAgICAgICAgcmV0dXJuIHN1
cmZhY2UuZ2V0KCk7Ci0gICAgfQotCi0gICAgdm9pZCByZWxlYXNlSW50ZXJtZWRpYXRlU3VyZmFj
ZShCaXRtYXBUZXh0dXJlKiBzdXJmYWNlKQotICAgIHsKLSAgICAgICAgaWYgKCFzdXJmYWNlKQot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBzdXJmYWNlcy5hcHBlbmQoc3VyZmFjZSk7Ci0g
ICAgICAgIHN1cmZhY2UtPnVubG9jaygpOwotICAgIH0KLX07Ci0KIFRleHR1cmVNYXBwZXJOb2Rl
KiB0b1RleHR1cmVNYXBwZXJOb2RlKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogewogICAgIHJldHVy
biBsYXllciA/IHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIobGF5ZXIpLT5ub2RlKCkgOiAw
OwpAQCAtMzQ2LDExICszMTIsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludCgpCiAg
ICAgaWYgKG1fc2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9z
dXJmYWNlTWFuYWdlcikKLSAgICAgICAgbV9zdXJmYWNlTWFuYWdlciA9IG5ldyBUZXh0dXJlTWFw
cGVyU3VyZmFjZU1hbmFnZXI7Ci0gICAgbV9zdXJmYWNlTWFuYWdlci0+dGV4dHVyZU1hcHBlciA9
IG1fdGV4dHVyZU1hcHBlcjsKICAgICBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zIG9wdDsKLSAg
ICBvcHQuc3VyZmFjZU1hbmFnZXIgPSBtX3N1cmZhY2VNYW5hZ2VyOwogICAgIG9wdC50ZXh0dXJl
TWFwcGVyID0gbV90ZXh0dXJlTWFwcGVyOwogICAgIG9wdC50ZXh0dXJlTWFwcGVyLT5iaW5kU3Vy
ZmFjZSgwKTsKICAgICBwYWludFJlY3Vyc2l2ZShvcHQpOwpAQCAtNDk2LDcgKzQ1OCw3IEBAIGJv
b2wgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVjdGlvbihjb25zdCBUZXh0dXJlTWFwcGVy
UGFpbnRPcHRpb25zJiBvcHRpb25zCiAKICAgICAvLyBUaGUgbWFzayBoYXMgdG8gYmUgYWRqdXN0
ZWQgdG8gdGFyZ2V0IGNvb3JkaW5hdGVzLgogICAgIGlmIChtYXNrVGV4dHVyZSkgewotICAgICAg
ICBtYXNrU3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPmdldEludGVybWVkaWF0ZVN1
cmZhY2UoKTsKKyAgICAgICAgbWFza1N1cmZhY2UgPSBvcHRpb25zLnRleHR1cmVNYXBwZXItPmFj
cXVpcmVUZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFwcGVyLT52aWV3cG9ydFNpemUo
KSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmluZFN1cmZhY2UobWFza1N1cmZh
Y2UuZ2V0KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpt
YXNrVGV4dHVyZS5nZXQoKSwgZW50aXJlUmVjdCgpLCBtX3RyYW5zZm9ybXMudGFyZ2V0LCAxLCAw
KTsKICAgICAgICAgbWFza1RleHR1cmUgPSBtYXNrU3VyZmFjZTsKQEAgLTUwNCw3ICs0NjYsNyBA
QCBib29sIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlZmxlY3Rpb24oY29uc3QgVGV4dHVyZU1h
cHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucwogCiAgICAgLy8gVGhlIHJlcGxpY2EncyBtYXNrIGhh
cyB0byBiZSBhZGp1c3RlZCB0byB0YXJnZXQgY29vcmRpbmF0ZXMuCiAgICAgaWYgKHJlcGxpY2FN
YXNrVGV4dHVyZSkgewotICAgICAgICByZXBsaWNhTWFza1N1cmZhY2UgPSBvcHRpb25zLnN1cmZh
Y2VNYW5hZ2VyLT5nZXRJbnRlcm1lZGlhdGVTdXJmYWNlKCk7CisgICAgICAgIHJlcGxpY2FNYXNr
U3VyZmFjZSA9IG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChv
cHRpb25zLnRleHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgpKTsKICAgICAgICAgb3B0aW9ucy50
ZXh0dXJlTWFwcGVyLT5iaW5kU3VyZmFjZShyZXBsaWNhTWFza1N1cmZhY2UuZ2V0KCkpOwogICAg
ICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpyZXBsaWNhTWFza1RleHR1
cmUuZ2V0KCksIGVudGlyZVJlY3QoKSwgbV90cmFuc2Zvcm1zLnRhcmdldCwgMSwgMCk7CiAgICAg
ICAgIHJlcGxpY2FNYXNrVGV4dHVyZSA9IHJlcGxpY2FNYXNrU3VyZmFjZTsKQEAgLTUxMiwyMSAr
NDc0LDIxIEBAIGJvb2wgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVjdGlvbihjb25zdCBU
ZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zCiAKICAgICAvLyBXZSBtaWdodCBuZWVk
IHRvIGFwcGx5IHRoZSBtYXNrIG9mIHRoZSBjb250ZW50IGxheWVyIGJlZm9yZSB3ZSBkcmF3IHRo
ZSByZWZsZWN0aW9uLCBhcyB0aGVyZSBtaWdodCBiZSB5ZXQgYW5vdGhlciBtYXNrIGZvciB0aGUg
cmVmbGVjdGlvbiBpdHNlbGYuCiAgICAgaWYgKHVzZUludGVybWVkaWF0ZUJ1ZmZlckZvck1hc2sp
IHsKLSAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IG1hc2tTdXJmYWNlID0gb3B0aW9ucy5z
dXJmYWNlTWFuYWdlci0+Z2V0SW50ZXJtZWRpYXRlU3VyZmFjZSgpOworICAgICAgICBSZWZQdHI8
Qml0bWFwVGV4dHVyZT4gbWFza1N1cmZhY2UgPSBvcHRpb25zLnRleHR1cmVNYXBwZXItPmFjcXVp
cmVUZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFwcGVyLT52aWV3cG9ydFNpemUoKSk7
CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmluZFN1cmZhY2UobWFza1N1cmZhY2Uu
Z2V0KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpzdXJm
YWNlLmdldCgpLCB2aWV3cG9ydFJlY3QsIFRyYW5zZm9ybWF0aW9uTWF0cml4KCksIDEsIG1hc2tU
ZXh0dXJlLmdldCgpKTsKLSAgICAgICAgb3B0aW9ucy5zdXJmYWNlTWFuYWdlci0+cmVsZWFzZUlu
dGVybWVkaWF0ZVN1cmZhY2Uoc3VyZmFjZS5nZXQoKSk7CisgICAgICAgIG9wdGlvbnMudGV4dHVy
ZU1hcHBlci0+cmVsZWFzZVRleHR1cmVUb1Bvb2woc3VyZmFjZS5nZXQoKSk7CiAgICAgICAgIHN1
cmZhY2UgPSBtYXNrU3VyZmFjZTsKICAgICAgICAgbWFza1RleHR1cmUuY2xlYXIoKTsKICAgICB9
CiAKICAgICAvLyBXZSBibGVuZCB0aGUgbGF5ZXIgYW5kIGl0cyByZXBsaWNhIGluIGFuIGludGVy
bWVkaWF0ZSBidWZmZXIgYmVmb3JlIGJsZW5kaW5nIGludG8gdGhlIHRhcmdldCBzdXJmYWNlLgog
ICAgIGlmICh1c2VJbnRlcm1lZGlhdGVCdWZmZXJGb3JSZXBsaWNhKSB7Ci0gICAgICAgIFJlZlB0
cjxCaXRtYXBUZXh0dXJlPiByZXBsaWNhU3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXIt
PmdldEludGVybWVkaWF0ZVN1cmZhY2UoKTsKKyAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+
IHJlcGxpY2FTdXJmYWNlID0gb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZy
b21Qb29sKG9wdGlvbnMudGV4dHVyZU1hcHBlci0+dmlld3BvcnRTaXplKCkpOwogICAgICAgICBv
cHRpb25zLnRleHR1cmVNYXBwZXItPmJpbmRTdXJmYWNlKHJlcGxpY2FTdXJmYWNlLmdldCgpKTsK
ICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQo
KSwgdmlld3BvcnRSZWN0LCBtX3RyYW5zZm9ybXMucmVwbGljYSwgbV9zdGF0ZS5yZXBsaWNhTGF5
ZXItPm1fb3BhY2l0eSwgcmVwbGljYU1hc2tUZXh0dXJlLmdldCgpKTsKICAgICAgICAgb3B0aW9u
cy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQoKSwgdmlld3BvcnRSZWN0
LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAxLCBtYXNrVGV4dHVyZS5nZXQoKSk7Ci0gICAgICAg
IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJmYWNlKHN1cmZh
Y2UuZ2V0KCkpOworICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPnJlbGVhc2VUZXh0dXJl
VG9Qb29sKHN1cmZhY2UuZ2V0KCkpOwogICAgICAgICBzdXJmYWNlID0gcmVwbGljYVN1cmZhY2U7
CiAgICAgfQogCkBAIC01MzksOCArNTAxLDggQEAgYm9vbCBUZXh0dXJlTWFwcGVyTm9kZTo6cGFp
bnRSZWZsZWN0aW9uKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMKICAg
ICAvLyBEcmF3IHRoZSBvcmlnaW5hbC4KICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdU
ZXh0dXJlKCpzdXJmYWNlLmdldCgpLCB2aWV3cG9ydFJlY3QsIFRyYW5zZm9ybWF0aW9uTWF0cml4
KCksIG9wdGlvbnMub3BhY2l0eSwgbWFza1RleHR1cmUuZ2V0KCkpOwogCi0gICAgb3B0aW9ucy5z
dXJmYWNlTWFuYWdlci0+cmVsZWFzZUludGVybWVkaWF0ZVN1cmZhY2UobWFza1N1cmZhY2UuZ2V0
KCkpOwotICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJm
YWNlKHJlcGxpY2FNYXNrU3VyZmFjZS5nZXQoKSk7CisgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVy
LT5yZWxlYXNlVGV4dHVyZVRvUG9vbChtYXNrU3VyZmFjZS5nZXQoKSk7CisgICAgb3B0aW9ucy50
ZXh0dXJlTWFwcGVyLT5yZWxlYXNlVGV4dHVyZVRvUG9vbChyZXBsaWNhTWFza1N1cmZhY2UuZ2V0
KCkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC01NzAsMTIgKzUzMiwxMiBAQCB2b2lkIFRl
eHR1cmVNYXBwZXJOb2RlOjpwYWludFJlY3Vyc2l2ZShUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25z
IG9wdGlvbnMpCiAKICAgICAvLyBUaGUgbWFzayBoYXMgdG8gYmUgYWRqdXN0ZWQgdG8gdGFyZ2V0
IGNvb3JkaW5hdGVzLgogICAgIGlmIChtX3N0YXRlLm1hc2tMYXllcikgewotICAgICAgICBtYXNr
U3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPmdldEludGVybWVkaWF0ZVN1cmZhY2Uo
KTsKKyAgICAgICAgbWFza1N1cmZhY2UgPSBvcHRpb25zLnRleHR1cmVNYXBwZXItPmFjcXVpcmVU
ZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFwcGVyLT52aWV3cG9ydFNpemUoKSk7CiAg
ICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmluZFN1cmZhY2UobWFza1N1cmZhY2UuZ2V0
KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCptX3N0YXRl
Lm1hc2tMYXllci0+dGV4dHVyZSgpLCBlbnRpcmVSZWN0KCksIG1fdHJhbnNmb3Jtcy50YXJnZXQs
IDEuMCwgMCk7CiAgICAgfQogCi0gICAgc3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXIt
PmdldEludGVybWVkaWF0ZVN1cmZhY2UoKTsKKyAgICBzdXJmYWNlID0gb3B0aW9ucy50ZXh0dXJl
TWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKG9wdGlvbnMudGV4dHVyZU1hcHBlci0+dmll
d3BvcnRTaXplKCkpOwogICAgIG9wdGlvbnNGb3JEZXNjZW5kYW50cy5zdXJmYWNlID0gc3VyZmFj
ZS5nZXQoKTsKICAgICBvcHRpb25zLmlzU3VyZmFjZSA9IHRydWU7CiAgICAgb3B0aW9uc0ZvckRl
c2NlbmRhbnRzLm9wYWNpdHkgPSAxOwpAQCAtNTg4LDggKzU1MCw4IEBAIHZvaWQgVGV4dHVyZU1h
cHBlck5vZGU6OnBhaW50UmVjdXJzaXZlKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMgb3B0aW9u
cykKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5n
ZXQoKSwgdmlld3BvcnRSZWN0LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBvcHRpb25zLm9wYWNp
dHksIDApOwogICAgIH0KIAotICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRl
cm1lZGlhdGVTdXJmYWNlKHN1cmZhY2UuZ2V0KCkpOwotICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFn
ZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJmYWNlKG1hc2tTdXJmYWNlLmdldCgpKTsKKyAgICBv
cHRpb25zLnRleHR1cmVNYXBwZXItPnJlbGVhc2VUZXh0dXJlVG9Qb29sKHN1cmZhY2UuZ2V0KCkp
OworICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+cmVsZWFzZVRleHR1cmVUb1Bvb2wobWFza1N1
cmZhY2UuZ2V0KCkpOwogfQogCiBUZXh0dXJlTWFwcGVyTm9kZTo6flRleHR1cmVNYXBwZXJOb2Rl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m
NDg4YmZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorCisgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
CisgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVGV4dHVyZU1hcHBlci5oIgorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiBVU0UoVEVYVFVSRV9NQVBQRVIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0
cjxCaXRtYXBUZXh0dXJlPiBUZXh0dXJlTWFwcGVyOjphY3F1aXJlVGV4dHVyZUZyb21Qb29sKGNv
bnN0IEludFNpemUmIHNpemUpCit7CisgICAgaWYgKG1fdGV4dHVyZVBvb2wuaXNFbXB0eSgpKSB7
CisgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBuZXdUZXh0dXJlID0gY3JlYXRlVGV4dHVy
ZSgpOworICAgICAgICBuZXdUZXh0dXJlLT5yZXNldChzaXplLCBmYWxzZSk7CisgICAgICAgIG5l
d1RleHR1cmUtPmxvY2soKTsKKyAgICAgICAgcmV0dXJuIG5ld1RleHR1cmU7CisgICAgfQorCisg
ICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IG5ld1RleHR1cmU7CisgICAgaW50IGluZGV4ID0gLTE7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3RleHR1cmVQb29sLnNpemUoKTsgKytpKSB7
CisgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlID0gbV90ZXh0dXJlUG9vbFtp
XTsKKyAgICAgICAgaWYgKCFuZXdUZXh0dXJlKSB7CisgICAgICAgICAgICBuZXdUZXh0dXJlID0g
dGV4dHVyZTsKKyAgICAgICAgICAgIGluZGV4ID0gaTsKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB9CisKKyAgICAgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZSA9IHRleHR1cmUtPnNpemUo
KTsKKyAgICAgICAgSW50U2l6ZSBuZXdUZXh0dXJlU2l6ZSA9IG5ld1RleHR1cmUtPnNpemUoKTsK
KworICAgICAgICAvLyBXZSBjaG9vc2UgdGhlIHNtYWxsZXN0IHRleHR1cmUgdGhhdCBpcyBlcXVh
bCBvciBsYXJnZXIgdGhhbiB0aGUgcmVxdWlyZWQgc2l6ZS4KKyAgICAgICAgaWYgKCh0ZXh0dXJl
U2l6ZS53aWR0aCgpID49IHNpemUud2lkdGgoKSAmJiB0ZXh0dXJlU2l6ZS5oZWlnaHQoKSA+PSBz
aXplLmhlaWdodCgpKQorICAgICAgICAgICAgJiYgKG5ld1RleHR1cmVTaXplLndpZHRoKCkgPCBz
aXplLndpZHRoKCkKKyAgICAgICAgICAgICAgICB8fCBuZXdUZXh0dXJlU2l6ZS5oZWlnaHQoKSA8
IHNpemUuaGVpZ2h0KCkKKyAgICAgICAgICAgICAgICB8fCBuZXdUZXh0dXJlU2l6ZS53aWR0aCgp
ICogbmV3VGV4dHVyZVNpemUuaGVpZ2h0KCkgPiB0ZXh0dXJlU2l6ZS53aWR0aCgpICogdGV4dHVy
ZVNpemUuaGVpZ2h0KCkpKSB7CisgICAgICAgICAgICBuZXdUZXh0dXJlID0gdGV4dHVyZTsKKyAg
ICAgICAgICAgIGluZGV4ID0gaTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1fdGV4dHVyZVBv
b2wucmVtb3ZlKGluZGV4KTsKKyAgICBuZXdUZXh0dXJlLT5yZXNldChzaXplLCBmYWxzZSk7Cisg
ICAgbmV3VGV4dHVyZS0+bG9jaygpOworICAgIHJldHVybiBuZXdUZXh0dXJlOworfQorCit2b2lk
IFRleHR1cmVNYXBwZXI6OnJlbGVhc2VUZXh0dXJlVG9Qb29sKEJpdG1hcFRleHR1cmUqIHRleHR1
cmUpCit7CisgICAgaWYgKCF0ZXh0dXJlKQorICAgICAgICByZXR1cm47CisgICAgbV90ZXh0dXJl
UG9vbC5hcHBlbmQodGV4dHVyZSk7CisgICAgdGV4dHVyZS0+dW5sb2NrKCk7Cit9CisKK30KKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaAppbmRleCBmYzQ3OWJhLi5lZGEwYTZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlck5vZGUuaApAQCAtMzksMTMgKzM5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyOwogY2xhc3MgVGV4dHVyZU1hcHBlck5v
ZGU7CiBjbGFzcyBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjsKLWNsYXNzIFRleHR1cmVNYXBw
ZXJTdXJmYWNlTWFuYWdlcjsKIAogY2xhc3MgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyB7CiBw
dWJsaWM6CiAgICAgQml0bWFwVGV4dHVyZSogc3VyZmFjZTsKICAgICBUZXh0dXJlTWFwcGVyKiB0
ZXh0dXJlTWFwcGVyOwotICAgIFRleHR1cmVNYXBwZXJTdXJmYWNlTWFuYWdlciogc3VyZmFjZU1h
bmFnZXI7CiAKICAgICBmbG9hdCBvcGFjaXR5OwogICAgIGJvb2wgaXNTdXJmYWNlOwpAQCAtMTM1
LDcgKzEzMyw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgVGV4dHVyZU1hcHBlck5vZGUoKQot
ICAgICAgICA6IG1fcGFyZW50KDApLCBtX2VmZmVjdFRhcmdldCgwKSwgbV9vcGFjaXR5KDEuMCks
IG1fc3VyZmFjZU1hbmFnZXIoMCksIG1fdGV4dHVyZU1hcHBlcigwKSB7IH0KKyAgICAgICAgOiBt
X3BhcmVudCgwKSwgbV9lZmZlY3RUYXJnZXQoMCksIG1fb3BhY2l0eSgxLjApLCBtX3RleHR1cmVN
YXBwZXIoMCkgeyB9CiAKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyTm9kZSgpOwogCkBAIC0z
MTcsNyArMzE1LDYgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgU3RhdGUgbV9zdGF0ZTsKLSAg
ICBUZXh0dXJlTWFwcGVyU3VyZmFjZU1hbmFnZXIqIG1fc3VyZmFjZU1hbmFnZXI7CiAgICAgVGV4
dHVyZU1hcHBlciogbV90ZXh0dXJlTWFwcGVyOwogCiAgICAgVmVjdG9yPFJlZlB0cjxUZXh0dXJl
TWFwcGVyQW5pbWF0aW9uPiA+IG1fYW5pbWF0aW9uczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121565</attachid>
            <date>2012-01-07 20:11:49 -0800</date>
            <delta_ts>2012-01-08 16:05:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>15731</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzZTE3YWZiLi43NTc5MWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzUg
QEAKKyAyMDEyLTAxLTA3ICBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5j
b20+CisgCisgICAgICAgIFtUZXhtYXBdIE1vdmUgc3VyZmFjZSBtYW5hZ2VtZW50IGZyb20gVGV4
dHVyZU1hcHBlck5vZGUgdG8gVGV4dHVyZU1hcHBlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NzkKKworICAgICAgICBJbnN0ZWFkIG9mIGEgVGV4
dHVyZU1hcHBlclN1cmZhY2VNYW5hZ2VyIGNsYXNzIGluc2lkZSBvZiBUZXh0dXJlTWFwcGVyTm9k
ZS5jcHAsIHdlIG5vdworICAgICAgICBtYWludGFpbiB0aGF0IHN1cmZhY2UgcG9vbCBpbnNpZGUg
b2YgdGhlIFRleHR1cmVNYXBwZXIgY2xhc3MuIFRoaXMgd2lsbCBsYXRlciBhbGxvdyB1cyB0bwor
ICAgICAgICBhbGxvY2F0ZSBpbnRlcm1lZGlhdGUgc3VyZmFjZSBmcm9tIHdpdGhpbiBUZXh0dXJl
TWFwcGVyR0wsIGEgZnVuY3Rpb25hbGl0eSB3ZSBuZWVkIGZvcgorICAgICAgICBmaWx0ZXJzLgor
CisgICAgICAgIEFsc28sIHN1cmZhY2VzIGFyZSBub3QgYXV0b21hdGljYWxseSBjcmVhdGVkIHdp
dGggdGhlIHZpZXdwb3J0IHNpemUsIGJ1dCByYXRoZXIgd2l0aCB0aGUKKyAgICAgICAgc2l6ZSBw
YXNzZWQgYXMgYSBwYXJhbWV0ZXIuIFRoZSBzdXJmYWNlIGZyb20gdGhlIHBvb2wgaXMgdGhlIHNt
YWxsZXN0IHRleHR1cmUgdGhhdCBpcworICAgICAgICBsYXJnZXIgdGhhbiB0aGUgcmVxdWlyZWQg
c2l6ZSwgb3IgYW55IHRleHR1cmUgaWYgc3VjaCB0ZXh0dXJlIGlzIG5vdCB5ZXQgYWxsb2NhdGVk
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Rz
IGluIExheW91dFRlc3RzL2NvbXBvc2l0aW5nIGFscmVhZHkgY292ZXIgdGhpcy4KKworICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIFRleHR1cmVNYXBwZXIuY3BwIHRvIHRoZSBi
dWlsZC4KKyAgICAgICAgKiBUYXJnZXQucHJpOiBBZGRlZCBUZXh0dXJlTWFwcGVyLmNwcCB0byB0
aGUgYnVpbGQuCisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGRlZCBUZXh0dXJlTWFwcGVyLmNw
cCB0byB0aGUgYnVpbGQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6
cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnRSZWN1cnNp
dmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9k
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OlRleHR1cmVNYXBwZXJO
b2RlKToKKwoyMDEyLTAxLTA3ICBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tp
YS5jb20+CgogICAgICAgICBbUXRdIEVuYWJsZSBDU1NfRklMVEVSUyBpbiBRdCBidWlsZAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NzcKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNWMwNTM5Ni4uMWYyNjk1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01NjU1LDYgKzU2NTUsNyBAQCBpZiBVU0VfVEVYVFVS
RV9NQVBQRVJfQ0FJUk8KIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmggXApAQCAtNTY3MCw2ICs1NjcxLDcg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvVGV4dHVyZU1hcHBlckdMLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTm9kZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGIxMDg5NDUuLjky
YTQ5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMzkxMyw2ICszOTEzLDcgQEAgY29udGFpbnMoQ09ORklH
LCB0ZXhtYXApIHsKIAogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9UZXh0dXJlTWFwcGVyUXQuY3BwIFwKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXIuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDE0
ZGFkMDMuLjZjMDBmNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTM5MzEsNiArMzkzMSw3IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9UcmFuc2Zvcm1hdGlvbk1hdHJpeFNr
aWEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCcsCisgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXIuaAppbmRleCAyNzA1OGFhLi5kODEzMzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTEyNiw2ICsx
MjYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luUGFpbnRpbmcoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZW5kUGFpbnRpbmcoKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCByZWxl
YXNlVGV4dHVyZVRvUG9vbChCaXRtYXBUZXh0dXJlKiBzdXJmYWNlKTsKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gYWNxdWlyZVRleHR1cmVGcm9tUG9vbChjb25zdCBJbnRT
aXplJik7CisKIAogcHJvdGVjdGVkOgogICAgIFRleHR1cmVNYXBwZXIoKQpAQCAtMTM4LDYgKzE0
MSw3IEBAIHByaXZhdGU6CiAgICAgVGV4dERyYXdpbmdNb2RlRmxhZ3MgbV90ZXh0RHJhd2luZ01v
ZGU7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV90cmFuc2Zvcm07CiAgICAgSW50U2l6ZSBt
X3ZpZXdwb3J0U2l6ZTsKKyAgICBWZWN0b3I8UmVmUHRyPEJpdG1hcFRleHR1cmU+ID4gbV90ZXh0
dXJlUG9vbDsKIH07CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcAppbmRleCA5MTU3ZTIz
Li4xNWRmZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKQEAgLTMxLDQwICszMSw2IEBA
IG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVGV4dHVyZU1hcHBl
clN1cmZhY2VNYW5hZ2VyIHsKLXB1YmxpYzoKLSAgICBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFw
cGVyOwotICAgIFZlY3RvcjxSZWZQdHI8Qml0bWFwVGV4dHVyZT4gPiBzdXJmYWNlczsKLSAgICBJ
bnRTaXplIHZpZXdwb3J0U2l6ZTsKLQotICAgIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gZ2V0
SW50ZXJtZWRpYXRlU3VyZmFjZSgpCi0gICAgewotICAgICAgICBJbnRTaXplIG5ld1ZpZXdwb3J0
U2l6ZSA9IHRleHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgpOwotICAgICAgICBpZiAobmV3Vmll
d3BvcnRTaXplICE9IHZpZXdwb3J0U2l6ZSkgewotICAgICAgICAgICAgdmlld3BvcnRTaXplID0g
bmV3Vmlld3BvcnRTaXplOwotICAgICAgICAgICAgc3VyZmFjZXMuY2xlYXIoKTsKLSAgICAgICAg
fQotICAgICAgICBpZiAoc3VyZmFjZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8
Qml0bWFwVGV4dHVyZT4gbmV3U3VyZmFjZSA9IHRleHR1cmVNYXBwZXItPmNyZWF0ZVRleHR1cmUo
KTsKLSAgICAgICAgICAgIG5ld1N1cmZhY2UtPnJlc2V0KHZpZXdwb3J0U2l6ZSwgZmFsc2UpOwot
ICAgICAgICAgICAgcmV0dXJuIG5ld1N1cmZhY2UuZ2V0KCk7Ci0gICAgICAgIH0KLSAgICAgICAg
UmVmUHRyPEJpdG1hcFRleHR1cmU+IHN1cmZhY2UgPSBzdXJmYWNlcy5sYXN0KCk7Ci0gICAgICAg
IHN1cmZhY2UtPnJlc2V0KHZpZXdwb3J0U2l6ZSwgZmFsc2UpOwotICAgICAgICBzdXJmYWNlcy5y
ZW1vdmVMYXN0KCk7Ci0gICAgICAgIHN1cmZhY2UtPmxvY2soKTsKLSAgICAgICAgcmV0dXJuIHN1
cmZhY2UuZ2V0KCk7Ci0gICAgfQotCi0gICAgdm9pZCByZWxlYXNlSW50ZXJtZWRpYXRlU3VyZmFj
ZShCaXRtYXBUZXh0dXJlKiBzdXJmYWNlKQotICAgIHsKLSAgICAgICAgaWYgKCFzdXJmYWNlKQot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBzdXJmYWNlcy5hcHBlbmQoc3VyZmFjZSk7Ci0g
ICAgICAgIHN1cmZhY2UtPnVubG9jaygpOwotICAgIH0KLX07Ci0KIFRleHR1cmVNYXBwZXJOb2Rl
KiB0b1RleHR1cmVNYXBwZXJOb2RlKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogewogICAgIHJldHVy
biBsYXllciA/IHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIobGF5ZXIpLT5ub2RlKCkgOiAw
OwpAQCAtMzQ2LDExICszMTIsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludCgpCiAg
ICAgaWYgKG1fc2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9z
dXJmYWNlTWFuYWdlcikKLSAgICAgICAgbV9zdXJmYWNlTWFuYWdlciA9IG5ldyBUZXh0dXJlTWFw
cGVyU3VyZmFjZU1hbmFnZXI7Ci0gICAgbV9zdXJmYWNlTWFuYWdlci0+dGV4dHVyZU1hcHBlciA9
IG1fdGV4dHVyZU1hcHBlcjsKICAgICBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zIG9wdDsKLSAg
ICBvcHQuc3VyZmFjZU1hbmFnZXIgPSBtX3N1cmZhY2VNYW5hZ2VyOwogICAgIG9wdC50ZXh0dXJl
TWFwcGVyID0gbV90ZXh0dXJlTWFwcGVyOwogICAgIG9wdC50ZXh0dXJlTWFwcGVyLT5iaW5kU3Vy
ZmFjZSgwKTsKICAgICBwYWludFJlY3Vyc2l2ZShvcHQpOwpAQCAtNDk2LDcgKzQ1OCw3IEBAIGJv
b2wgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVjdGlvbihjb25zdCBUZXh0dXJlTWFwcGVy
UGFpbnRPcHRpb25zJiBvcHRpb25zCiAKICAgICAvLyBUaGUgbWFzayBoYXMgdG8gYmUgYWRqdXN0
ZWQgdG8gdGFyZ2V0IGNvb3JkaW5hdGVzLgogICAgIGlmIChtYXNrVGV4dHVyZSkgewotICAgICAg
ICBtYXNrU3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPmdldEludGVybWVkaWF0ZVN1
cmZhY2UoKTsKKyAgICAgICAgbWFza1N1cmZhY2UgPSBvcHRpb25zLnRleHR1cmVNYXBwZXItPmFj
cXVpcmVUZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFwcGVyLT52aWV3cG9ydFNpemUo
KSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmluZFN1cmZhY2UobWFza1N1cmZh
Y2UuZ2V0KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpt
YXNrVGV4dHVyZS5nZXQoKSwgZW50aXJlUmVjdCgpLCBtX3RyYW5zZm9ybXMudGFyZ2V0LCAxLCAw
KTsKICAgICAgICAgbWFza1RleHR1cmUgPSBtYXNrU3VyZmFjZTsKQEAgLTUwNCw3ICs0NjYsNyBA
QCBib29sIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlZmxlY3Rpb24oY29uc3QgVGV4dHVyZU1h
cHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucwogCiAgICAgLy8gVGhlIHJlcGxpY2EncyBtYXNrIGhh
cyB0byBiZSBhZGp1c3RlZCB0byB0YXJnZXQgY29vcmRpbmF0ZXMuCiAgICAgaWYgKHJlcGxpY2FN
YXNrVGV4dHVyZSkgewotICAgICAgICByZXBsaWNhTWFza1N1cmZhY2UgPSBvcHRpb25zLnN1cmZh
Y2VNYW5hZ2VyLT5nZXRJbnRlcm1lZGlhdGVTdXJmYWNlKCk7CisgICAgICAgIHJlcGxpY2FNYXNr
U3VyZmFjZSA9IG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChv
cHRpb25zLnRleHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgpKTsKICAgICAgICAgb3B0aW9ucy50
ZXh0dXJlTWFwcGVyLT5iaW5kU3VyZmFjZShyZXBsaWNhTWFza1N1cmZhY2UuZ2V0KCkpOwogICAg
ICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpyZXBsaWNhTWFza1RleHR1
cmUuZ2V0KCksIGVudGlyZVJlY3QoKSwgbV90cmFuc2Zvcm1zLnRhcmdldCwgMSwgMCk7CiAgICAg
ICAgIHJlcGxpY2FNYXNrVGV4dHVyZSA9IHJlcGxpY2FNYXNrU3VyZmFjZTsKQEAgLTUxMiwyMSAr
NDc0LDIxIEBAIGJvb2wgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVjdGlvbihjb25zdCBU
ZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zCiAKICAgICAvLyBXZSBtaWdodCBuZWVk
IHRvIGFwcGx5IHRoZSBtYXNrIG9mIHRoZSBjb250ZW50IGxheWVyIGJlZm9yZSB3ZSBkcmF3IHRo
ZSByZWZsZWN0aW9uLCBhcyB0aGVyZSBtaWdodCBiZSB5ZXQgYW5vdGhlciBtYXNrIGZvciB0aGUg
cmVmbGVjdGlvbiBpdHNlbGYuCiAgICAgaWYgKHVzZUludGVybWVkaWF0ZUJ1ZmZlckZvck1hc2sp
IHsKLSAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IG1hc2tTdXJmYWNlID0gb3B0aW9ucy5z
dXJmYWNlTWFuYWdlci0+Z2V0SW50ZXJtZWRpYXRlU3VyZmFjZSgpOworICAgICAgICBSZWZQdHI8
Qml0bWFwVGV4dHVyZT4gbWFza1N1cmZhY2UgPSBvcHRpb25zLnRleHR1cmVNYXBwZXItPmFjcXVp
cmVUZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFwcGVyLT52aWV3cG9ydFNpemUoKSk7
CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmluZFN1cmZhY2UobWFza1N1cmZhY2Uu
Z2V0KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpzdXJm
YWNlLmdldCgpLCB2aWV3cG9ydFJlY3QsIFRyYW5zZm9ybWF0aW9uTWF0cml4KCksIDEsIG1hc2tU
ZXh0dXJlLmdldCgpKTsKLSAgICAgICAgb3B0aW9ucy5zdXJmYWNlTWFuYWdlci0+cmVsZWFzZUlu
dGVybWVkaWF0ZVN1cmZhY2Uoc3VyZmFjZS5nZXQoKSk7CisgICAgICAgIG9wdGlvbnMudGV4dHVy
ZU1hcHBlci0+cmVsZWFzZVRleHR1cmVUb1Bvb2woc3VyZmFjZS5nZXQoKSk7CiAgICAgICAgIHN1
cmZhY2UgPSBtYXNrU3VyZmFjZTsKICAgICAgICAgbWFza1RleHR1cmUuY2xlYXIoKTsKICAgICB9
CiAKICAgICAvLyBXZSBibGVuZCB0aGUgbGF5ZXIgYW5kIGl0cyByZXBsaWNhIGluIGFuIGludGVy
bWVkaWF0ZSBidWZmZXIgYmVmb3JlIGJsZW5kaW5nIGludG8gdGhlIHRhcmdldCBzdXJmYWNlLgog
ICAgIGlmICh1c2VJbnRlcm1lZGlhdGVCdWZmZXJGb3JSZXBsaWNhKSB7Ci0gICAgICAgIFJlZlB0
cjxCaXRtYXBUZXh0dXJlPiByZXBsaWNhU3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXIt
PmdldEludGVybWVkaWF0ZVN1cmZhY2UoKTsKKyAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+
IHJlcGxpY2FTdXJmYWNlID0gb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZy
b21Qb29sKG9wdGlvbnMudGV4dHVyZU1hcHBlci0+dmlld3BvcnRTaXplKCkpOwogICAgICAgICBv
cHRpb25zLnRleHR1cmVNYXBwZXItPmJpbmRTdXJmYWNlKHJlcGxpY2FTdXJmYWNlLmdldCgpKTsK
ICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQo
KSwgdmlld3BvcnRSZWN0LCBtX3RyYW5zZm9ybXMucmVwbGljYSwgbV9zdGF0ZS5yZXBsaWNhTGF5
ZXItPm1fb3BhY2l0eSwgcmVwbGljYU1hc2tUZXh0dXJlLmdldCgpKTsKICAgICAgICAgb3B0aW9u
cy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQoKSwgdmlld3BvcnRSZWN0
LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAxLCBtYXNrVGV4dHVyZS5nZXQoKSk7Ci0gICAgICAg
IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJmYWNlKHN1cmZh
Y2UuZ2V0KCkpOworICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPnJlbGVhc2VUZXh0dXJl
VG9Qb29sKHN1cmZhY2UuZ2V0KCkpOwogICAgICAgICBzdXJmYWNlID0gcmVwbGljYVN1cmZhY2U7
CiAgICAgfQogCkBAIC01MzksOCArNTAxLDggQEAgYm9vbCBUZXh0dXJlTWFwcGVyTm9kZTo6cGFp
bnRSZWZsZWN0aW9uKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMKICAg
ICAvLyBEcmF3IHRoZSBvcmlnaW5hbC4KICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdU
ZXh0dXJlKCpzdXJmYWNlLmdldCgpLCB2aWV3cG9ydFJlY3QsIFRyYW5zZm9ybWF0aW9uTWF0cml4
KCksIG9wdGlvbnMub3BhY2l0eSwgbWFza1RleHR1cmUuZ2V0KCkpOwogCi0gICAgb3B0aW9ucy5z
dXJmYWNlTWFuYWdlci0+cmVsZWFzZUludGVybWVkaWF0ZVN1cmZhY2UobWFza1N1cmZhY2UuZ2V0
KCkpOwotICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJm
YWNlKHJlcGxpY2FNYXNrU3VyZmFjZS5nZXQoKSk7CisgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVy
LT5yZWxlYXNlVGV4dHVyZVRvUG9vbChtYXNrU3VyZmFjZS5nZXQoKSk7CisgICAgb3B0aW9ucy50
ZXh0dXJlTWFwcGVyLT5yZWxlYXNlVGV4dHVyZVRvUG9vbChyZXBsaWNhTWFza1N1cmZhY2UuZ2V0
KCkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC01NzAsMTIgKzUzMiwxMiBAQCB2b2lkIFRl
eHR1cmVNYXBwZXJOb2RlOjpwYWludFJlY3Vyc2l2ZShUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25z
IG9wdGlvbnMpCiAKICAgICAvLyBUaGUgbWFzayBoYXMgdG8gYmUgYWRqdXN0ZWQgdG8gdGFyZ2V0
IGNvb3JkaW5hdGVzLgogICAgIGlmIChtX3N0YXRlLm1hc2tMYXllcikgewotICAgICAgICBtYXNr
U3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPmdldEludGVybWVkaWF0ZVN1cmZhY2Uo
KTsKKyAgICAgICAgbWFza1N1cmZhY2UgPSBvcHRpb25zLnRleHR1cmVNYXBwZXItPmFjcXVpcmVU
ZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFwcGVyLT52aWV3cG9ydFNpemUoKSk7CiAg
ICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmluZFN1cmZhY2UobWFza1N1cmZhY2UuZ2V0
KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCptX3N0YXRl
Lm1hc2tMYXllci0+dGV4dHVyZSgpLCBlbnRpcmVSZWN0KCksIG1fdHJhbnNmb3Jtcy50YXJnZXQs
IDEuMCwgMCk7CiAgICAgfQogCi0gICAgc3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXIt
PmdldEludGVybWVkaWF0ZVN1cmZhY2UoKTsKKyAgICBzdXJmYWNlID0gb3B0aW9ucy50ZXh0dXJl
TWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKG9wdGlvbnMudGV4dHVyZU1hcHBlci0+dmll
d3BvcnRTaXplKCkpOwogICAgIG9wdGlvbnNGb3JEZXNjZW5kYW50cy5zdXJmYWNlID0gc3VyZmFj
ZS5nZXQoKTsKICAgICBvcHRpb25zLmlzU3VyZmFjZSA9IHRydWU7CiAgICAgb3B0aW9uc0ZvckRl
c2NlbmRhbnRzLm9wYWNpdHkgPSAxOwpAQCAtNTg4LDggKzU1MCw4IEBAIHZvaWQgVGV4dHVyZU1h
cHBlck5vZGU6OnBhaW50UmVjdXJzaXZlKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMgb3B0aW9u
cykKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5n
ZXQoKSwgdmlld3BvcnRSZWN0LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBvcHRpb25zLm9wYWNp
dHksIDApOwogICAgIH0KIAotICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRl
cm1lZGlhdGVTdXJmYWNlKHN1cmZhY2UuZ2V0KCkpOwotICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFn
ZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJmYWNlKG1hc2tTdXJmYWNlLmdldCgpKTsKKyAgICBv
cHRpb25zLnRleHR1cmVNYXBwZXItPnJlbGVhc2VUZXh0dXJlVG9Qb29sKHN1cmZhY2UuZ2V0KCkp
OworICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+cmVsZWFzZVRleHR1cmVUb1Bvb2wobWFza1N1
cmZhY2UuZ2V0KCkpOwogfQogCiBUZXh0dXJlTWFwcGVyTm9kZTo6flRleHR1cmVNYXBwZXJOb2Rl
KCkKYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjcwZGZmOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHR1cmVN
YXBwZXIuaCIKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRV
UkVfTUFQUEVSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8Qml0bWFwVGV4
dHVyZT4gVGV4dHVyZU1hcHBlcjo6YWNxdWlyZVRleHR1cmVGcm9tUG9vbChjb25zdCBJbnRTaXpl
JiBzaXplKQoreworICAgIGlmIChtX3RleHR1cmVQb29sLmlzRW1wdHkoKSkgeworICAgICAgICBS
ZWZQdHI8Qml0bWFwVGV4dHVyZT4gbmV3VGV4dHVyZSA9IGNyZWF0ZVRleHR1cmUoKTsKKyAgICAg
ICAgbmV3VGV4dHVyZS0+cmVzZXQoc2l6ZSwgZmFsc2UpOworICAgICAgICBuZXdUZXh0dXJlLT5s
b2NrKCk7CisgICAgICAgIHJldHVybiBuZXdUZXh0dXJlOworICAgIH0KKworICAgIHNpemVfdCBp
bmRleCA9IDA7CisgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IG5ld1RleHR1cmUgPSBtX3RleHR1
cmVQb29sWzBdOworCisgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBtX3RleHR1cmVQb29sLnNp
emUoKTsgKytpKSB7CisgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlID0gbV90
ZXh0dXJlUG9vbFtpXTsKKworICAgICAgICBJbnRTaXplIHRleHR1cmVTaXplID0gdGV4dHVyZS0+
c2l6ZSgpOworICAgICAgICBJbnRTaXplIG5ld1RleHR1cmVTaXplID0gbmV3VGV4dHVyZS0+c2l6
ZSgpOworCisgICAgICAgIC8vIFdlIGNob29zZSB0aGUgc21hbGxlc3QgdGV4dHVyZSB0aGF0IGlz
IGVxdWFsIG9yIGxhcmdlciB0aGFuIHRoZSByZXF1aXJlZCBzaXplLgorICAgICAgICBpZiAoKHRl
eHR1cmVTaXplLndpZHRoKCkgPCBzaXplLndpZHRoKCkgfHwgdGV4dHVyZVNpemUuaGVpZ2h0KCkg
PCBzaXplLmhlaWdodCgpKQorICAgICAgICAgICAgfHwgKG5ld1RleHR1cmVTaXplLndpZHRoKCkg
Pj0gc2l6ZS53aWR0aCgpCisgICAgICAgICAgICAgICAgJiYgbmV3VGV4dHVyZVNpemUuaGVpZ2h0
KCkgPj0gc2l6ZS5oZWlnaHQoKQorICAgICAgICAgICAgICAgICYmIG5ld1RleHR1cmVTaXplLndp
ZHRoKCkgKiBuZXdUZXh0dXJlU2l6ZS5oZWlnaHQoKSA8PSB0ZXh0dXJlU2l6ZS53aWR0aCgpICog
dGV4dHVyZVNpemUuaGVpZ2h0KCkpKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
fQorCisgICAgICAgIG5ld1RleHR1cmUgPSB0ZXh0dXJlOworICAgICAgICBpbmRleCA9IGk7Cisg
ICAgfQorCisgICAgbV90ZXh0dXJlUG9vbC5yZW1vdmUoaW5kZXgpOworICAgIG5ld1RleHR1cmUt
PnJlc2V0KHNpemUsIGZhbHNlKTsKKyAgICBuZXdUZXh0dXJlLT5sb2NrKCk7CisgICAgcmV0dXJu
IG5ld1RleHR1cmU7Cit9CisKK3ZvaWQgVGV4dHVyZU1hcHBlcjo6cmVsZWFzZVRleHR1cmVUb1Bv
b2woQml0bWFwVGV4dHVyZSogdGV4dHVyZSkKK3sKKyAgICBpZiAoIXRleHR1cmUpCisgICAgICAg
IHJldHVybjsKKyAgICBtX3RleHR1cmVQb29sLmFwcGVuZCh0ZXh0dXJlKTsKKyAgICB0ZXh0dXJl
LT51bmxvY2soKTsKK30KKworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCmluZGV4IGZj
NDc5YmEuLmVkYTBhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCkBAIC0zOSwxMyArMzksMTEg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI7
CiBjbGFzcyBUZXh0dXJlTWFwcGVyTm9kZTsKIGNsYXNzIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyOwotY2xhc3MgVGV4dHVyZU1hcHBlclN1cmZhY2VNYW5hZ2VyOwogCiBjbGFzcyBUZXh0dXJl
TWFwcGVyUGFpbnRPcHRpb25zIHsKIHB1YmxpYzoKICAgICBCaXRtYXBUZXh0dXJlKiBzdXJmYWNl
OwogICAgIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXI7Ci0gICAgVGV4dHVyZU1hcHBlclN1
cmZhY2VNYW5hZ2VyKiBzdXJmYWNlTWFuYWdlcjsKIAogICAgIGZsb2F0IG9wYWNpdHk7CiAgICAg
Ym9vbCBpc1N1cmZhY2U7CkBAIC0xMzUsNyArMTMzLDcgQEAgcHVibGljOgogICAgIH07CiAKICAg
ICBUZXh0dXJlTWFwcGVyTm9kZSgpCi0gICAgICAgIDogbV9wYXJlbnQoMCksIG1fZWZmZWN0VGFy
Z2V0KDApLCBtX29wYWNpdHkoMS4wKSwgbV9zdXJmYWNlTWFuYWdlcigwKSwgbV90ZXh0dXJlTWFw
cGVyKDApIHsgfQorICAgICAgICA6IG1fcGFyZW50KDApLCBtX2VmZmVjdFRhcmdldCgwKSwgbV9v
cGFjaXR5KDEuMCksIG1fdGV4dHVyZU1hcHBlcigwKSB7IH0KIAogICAgIHZpcnR1YWwgflRleHR1
cmVNYXBwZXJOb2RlKCk7CiAKQEAgLTMxNyw3ICszMTUsNiBAQCBwcml2YXRlOgogICAgIH07CiAK
ICAgICBTdGF0ZSBtX3N0YXRlOwotICAgIFRleHR1cmVNYXBwZXJTdXJmYWNlTWFuYWdlciogbV9z
dXJmYWNlTWFuYWdlcjsKICAgICBUZXh0dXJlTWFwcGVyKiBtX3RleHR1cmVNYXBwZXI7CiAKICAg
ICBWZWN0b3I8UmVmUHRyPFRleHR1cmVNYXBwZXJBbmltYXRpb24+ID4gbV9hbmltYXRpb25zOwo=
</data>
<flag name="review"
          id="122093"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
    <flag name="commit-queue"
          id="122123"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121599</attachid>
            <date>2012-01-08 16:05:34 -0800</date>
            <delta_ts>2012-01-09 02:42:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch2.diff</filename>
            <type>text/plain</type>
            <size>17061</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3ZjZlZGM5Li44MjM2Njk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTItMDEtMDcgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KKworICAgICAgICBbVGV4bWFwXSBNb3ZlIHN1cmZhY2UgbWFuYWdlbWVudCBmcm9tIFRleHR1
cmVNYXBwZXJOb2RlIHRvIFRleHR1cmVNYXBwZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc1Nzc5CisKKyAgICAgICAgSW5zdGVhZCBvZiBhIFRleHR1
cmVNYXBwZXJTdXJmYWNlTWFuYWdlciBjbGFzcyBpbnNpZGUgb2YgVGV4dHVyZU1hcHBlck5vZGUu
Y3BwLCB3ZSBub3cKKyAgICAgICAgbWFpbnRhaW4gdGhhdCBzdXJmYWNlIHBvb2wgaW5zaWRlIG9m
IHRoZSBUZXh0dXJlTWFwcGVyIGNsYXNzLiBUaGlzIHdpbGwgbGF0ZXIgYWxsb3cgdXMgdG8KKyAg
ICAgICAgYWxsb2NhdGUgaW50ZXJtZWRpYXRlIHN1cmZhY2UgZnJvbSB3aXRoaW4gVGV4dHVyZU1h
cHBlckdMLCBhIGZ1bmN0aW9uYWxpdHkgd2UgbmVlZCBmb3IKKyAgICAgICAgZmlsdGVycy4KKwor
ICAgICAgICBBbHNvLCBzdXJmYWNlcyBhcmUgbm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB3aXRo
IHRoZSB2aWV3cG9ydCBzaXplLCBidXQgcmF0aGVyIHdpdGggdGhlCisgICAgICAgIHNpemUgcGFz
c2VkIGFzIGEgcGFyYW1ldGVyLiBUaGUgc3VyZmFjZSBmcm9tIHRoZSBwb29sIGlzIHRoZSBzbWFs
bGVzdCB0ZXh0dXJlIHRoYXQgaXMKKyAgICAgICAgbGFyZ2VyIHRoYW4gdGhlIHJlcXVpcmVkIHNp
emUsIG9yIGFueSB0ZXh0dXJlIGlmIHN1Y2ggdGV4dHVyZSBpcyBub3QgeWV0IGFsbG9jYXRlZC4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBp
biBMYXlvdXRUZXN0cy9jb21wb3NpdGluZyBhbHJlYWR5IGNvdmVyIHRoaXMuCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOiBBZGRlZCBUZXh0dXJlTWFwcGVyLmNwcCB0byB0aGUgYnVp
bGQuCisgICAgICAgICogVGFyZ2V0LnByaTogQWRkZWQgVGV4dHVyZU1hcHBlci5jcHAgdG8gdGhl
IGJ1aWxkLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgVGV4dHVyZU1hcHBlci5jcHAg
dG8gdGhlIGJ1aWxkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OnBh
aW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlZmxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVjdXJzaXZl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpUZXh0dXJlTWFwcGVyTm9k
ZSk6CisKIDIwMTItMDEtMDcgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEZpeGVkIEFOR0xFIGJ1aWxkIGZvciBHTlUgYW5kIFFUIGJyb2tlbiBpbiBodHRwczov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTA0MzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQppbmRleCA1YzA1Mzk2Li4xZjI2OTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTU2NTUsNiArNTY1NSw3IEBAIGlmIFVTRV9URVhUVVJFX01BUFBFUl9DQUlSTwogd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBcCisJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ck5vZGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlck5vZGUuaCBcCkBAIC01NjcwLDYgKzU2NzEsNyBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFw
cGVyR0wuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJOb2RlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggZjgyZTA1NS4uNGQxNjlkMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CkBAIC0xMTcwLDYgKzExNzAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvQmlkaVJ1
bi5jcHAgXAogICAgIHJlbmRlcmluZy9Db3VudGVyTm9kZS5jcHAgXAogICAgIHJlbmRlcmluZy9F
bGxpcHNpc0JveC5jcHAgXAorICAgIHJlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAg
XAogICAgIHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcCBcCiAgICAgcmVuZGVyaW5nL0hp
dFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAgXAogICAgIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0
LmNwcCBcCkBAIC0yMjg0LDYgKzIyODUsNyBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcv
YnJlYWtfbGluZXMuaCBcCiAgICAgcmVuZGVyaW5nL0NvdW50ZXJOb2RlLmggXAogICAgIHJlbmRl
cmluZy9FbGxpcHNpc0JveC5oIFwKKyAgICByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIu
aCBcCiAgICAgcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuaCBcCiAgICAgcmVuZGVyaW5nL0hp
dFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5oIFwKICAgICByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5o
IFwKQEAgLTM5MDUsNiArMzkwNyw3IEBAIGNvbnRhaW5zKENPTkZJRywgdGV4bWFwKSB7CiAKICAg
ICBTT1VSQ0VTICs9IFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGV4dHVyZU1hcHBl
clF0LmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9k
ZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAxNGRhZDAzLi42YzAwZjZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0zOTMxLDYgKzM5MzEsNyBAQAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvVHJhbnNmb3JtYXRpb25NYXRyaXhTa2lhLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjODg1MjYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHAK
QEAgLTAsMCArMSw3OSBAQAorLyoKKyBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVyLmgiCisKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IFRleHR1cmVNYXBw
ZXI6OmFjcXVpcmVUZXh0dXJlRnJvbVBvb2woY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBp
ZiAobV90ZXh0dXJlUG9vbC5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1
cmU+IHNlbGVjdGVkVGV4dHVyZSA9IGNyZWF0ZVRleHR1cmUoKTsKKyAgICAgICAgc2VsZWN0ZWRU
ZXh0dXJlLT5yZXNldChzaXplLCBmYWxzZSk7CisgICAgICAgIHNlbGVjdGVkVGV4dHVyZS0+bG9j
aygpOworICAgICAgICByZXR1cm4gc2VsZWN0ZWRUZXh0dXJlOworICAgIH0KKworICAgIHNpemVf
dCBpbmRleCA9IDA7CisgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHNlbGVjdGVkVGV4dHVyZSA9
IG1fdGV4dHVyZVBvb2xbMF07CisKKyAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IG1fdGV4dHVy
ZVBvb2wuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1
cmUgPSBtX3RleHR1cmVQb29sW2ldOworCisgICAgICAgIEludFNpemUgdGV4dHVyZVNpemUgPSB0
ZXh0dXJlLT5zaXplKCk7CisgICAgICAgIEludFNpemUgc2VsZWN0ZWRUZXh0dXJlU2l6ZSA9IHNl
bGVjdGVkVGV4dHVyZS0+c2l6ZSgpOworCisgICAgICAgIC8vIFdlIHByZWZlciB0byBwaWNrIGEg
dGV4dHVyZSB0aGF0J3MgZXF1YWwgb3IgbGFyZ2VyIHRoYW4gdGhlIHJlcXVlc3RlZCBzaXplLgor
ICAgICAgICBpZiAodGV4dHVyZVNpemUud2lkdGgoKSA8IHNpemUud2lkdGgoKSB8fCB0ZXh0dXJl
U2l6ZS5oZWlnaHQoKSA8IHNpemUuaGVpZ2h0KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICAvLyBXZSBzZWxlY3QgdGhlIG5ldyB0ZXh0dXJlIGlmIHRoZSBjdXJyZW50bHkgc2Vs
ZWN0ZWQgdGV4dHVyZSBpcyBzbWFsbGVyIHRoYW4gdGhlCisgICAgICAgIC8vIHJlcXVpcmVkIHNp
emUsIGFuZCB0aGUgbmV3IHRleHR1cmUgaGFzIGEgc21hbGxlciBhcmVhLgorICAgICAgICBpbnQg
dGV4dHVyZUFyZWEgPSB0ZXh0dXJlU2l6ZS53aWR0aCgpICogdGV4dHVyZVNpemUuaGVpZ2h0KCk7
CisgICAgICAgIGludCBzZWxlY3RlZFRleHR1cmVBcmVhID0gc2VsZWN0ZWRUZXh0dXJlU2l6ZS53
aWR0aCgpICogc2VsZWN0ZWRUZXh0dXJlU2l6ZS5oZWlnaHQoKTsKKyAgICAgICAgYm9vbCBzZWxl
Y3RlZFRleHR1cmVDb250YWluc1NpemUgPQorICAgICAgICAgICAgICAgIHNlbGVjdGVkVGV4dHVy
ZVNpemUud2lkdGgoKSA+PSBzaXplLndpZHRoKCkKKyAgICAgICAgICAgICAgICAmJiBzZWxlY3Rl
ZFRleHR1cmVTaXplLmhlaWdodCgpID49IHNpemUuaGVpZ2h0KCk7CisKKyAgICAgICAgaWYgKHNl
bGVjdGVkVGV4dHVyZUNvbnRhaW5zU2l6ZSAmJiBzZWxlY3RlZFRleHR1cmVBcmVhIDw9IHRleHR1
cmVBcmVhKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgc2VsZWN0ZWRUZXh0dXJl
ID0gdGV4dHVyZTsKKyAgICAgICAgaW5kZXggPSBpOworICAgIH0KKworICAgIG1fdGV4dHVyZVBv
b2wucmVtb3ZlKGluZGV4KTsKKyAgICBzZWxlY3RlZFRleHR1cmUtPnJlc2V0KHNpemUsIGZhbHNl
KTsKKyAgICBzZWxlY3RlZFRleHR1cmUtPmxvY2soKTsKKyAgICByZXR1cm4gc2VsZWN0ZWRUZXh0
dXJlOworfQorCit2b2lkIFRleHR1cmVNYXBwZXI6OnJlbGVhc2VUZXh0dXJlVG9Qb29sKEJpdG1h
cFRleHR1cmUqIHRleHR1cmUpCit7CisgICAgaWYgKCF0ZXh0dXJlKQorICAgICAgICByZXR1cm47
CisgICAgbV90ZXh0dXJlUG9vbC5hcHBlbmQodGV4dHVyZSk7CisgICAgdGV4dHVyZS0+dW5sb2Nr
KCk7Cit9CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKaW5kZXggMjcwNThhYS4uZDgxMzMzZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlci5oCkBAIC0xMjYsNiArMTI2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBiZWdpblBhaW50aW5nKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGVuZFBhaW50aW5nKCkg
eyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZVRleHR1cmVUb1Bvb2woQml0bWFwVGV4dHVy
ZSogc3VyZmFjZSk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IGFjcXVp
cmVUZXh0dXJlRnJvbVBvb2woY29uc3QgSW50U2l6ZSYpOworCiAKIHByb3RlY3RlZDoKICAgICBU
ZXh0dXJlTWFwcGVyKCkKQEAgLTEzOCw2ICsxNDEsNyBAQCBwcml2YXRlOgogICAgIFRleHREcmF3
aW5nTW9kZUZsYWdzIG1fdGV4dERyYXdpbmdNb2RlOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IG1fdHJhbnNmb3JtOwogICAgIEludFNpemUgbV92aWV3cG9ydFNpemU7CisgICAgVmVjdG9yPFJl
ZlB0cjxCaXRtYXBUZXh0dXJlPiA+IG1fdGV4dHVyZVBvb2w7CiB9OwogCiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJO
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTm9kZS5jcHAKaW5kZXggOTE1N2UyMy4uMTVkZmY1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ck5vZGUuY3BwCkBAIC0zMSw0MCArMzEsNiBAQCBuYW1lc3BhY2UgewogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIFRleHR1cmVNYXBwZXJTdXJmYWNlTWFuYWdlciB7Ci1wdWJsaWM6Ci0g
ICAgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcjsKLSAgICBWZWN0b3I8UmVmUHRyPEJpdG1h
cFRleHR1cmU+ID4gc3VyZmFjZXM7Ci0gICAgSW50U2l6ZSB2aWV3cG9ydFNpemU7Ci0KLSAgICBQ
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IGdldEludGVybWVkaWF0ZVN1cmZhY2UoKQotICAgIHsK
LSAgICAgICAgSW50U2l6ZSBuZXdWaWV3cG9ydFNpemUgPSB0ZXh0dXJlTWFwcGVyLT52aWV3cG9y
dFNpemUoKTsKLSAgICAgICAgaWYgKG5ld1ZpZXdwb3J0U2l6ZSAhPSB2aWV3cG9ydFNpemUpIHsK
LSAgICAgICAgICAgIHZpZXdwb3J0U2l6ZSA9IG5ld1ZpZXdwb3J0U2l6ZTsKLSAgICAgICAgICAg
IHN1cmZhY2VzLmNsZWFyKCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN1cmZhY2VzLmlzRW1w
dHkoKSkgewotICAgICAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IG5ld1N1cmZhY2UgPSB0
ZXh0dXJlTWFwcGVyLT5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgICAgICAgICBuZXdTdXJmYWNlLT5y
ZXNldCh2aWV3cG9ydFNpemUsIGZhbHNlKTsKLSAgICAgICAgICAgIHJldHVybiBuZXdTdXJmYWNl
LmdldCgpOwotICAgICAgICB9Ci0gICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBzdXJmYWNl
ID0gc3VyZmFjZXMubGFzdCgpOwotICAgICAgICBzdXJmYWNlLT5yZXNldCh2aWV3cG9ydFNpemUs
IGZhbHNlKTsKLSAgICAgICAgc3VyZmFjZXMucmVtb3ZlTGFzdCgpOwotICAgICAgICBzdXJmYWNl
LT5sb2NrKCk7Ci0gICAgICAgIHJldHVybiBzdXJmYWNlLmdldCgpOwotICAgIH0KLQotICAgIHZv
aWQgcmVsZWFzZUludGVybWVkaWF0ZVN1cmZhY2UoQml0bWFwVGV4dHVyZSogc3VyZmFjZSkKLSAg
ICB7Ci0gICAgICAgIGlmICghc3VyZmFjZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
c3VyZmFjZXMuYXBwZW5kKHN1cmZhY2UpOwotICAgICAgICBzdXJmYWNlLT51bmxvY2soKTsKLSAg
ICB9Ci19OwotCiBUZXh0dXJlTWFwcGVyTm9kZSogdG9UZXh0dXJlTWFwcGVyTm9kZShHcmFwaGlj
c0xheWVyKiBsYXllcikKIHsKICAgICByZXR1cm4gbGF5ZXIgPyB0b0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyKGxheWVyKS0+bm9kZSgpIDogMDsKQEAgLTM0NiwxMSArMzEyLDcgQEAgdm9pZCBU
ZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnQoKQogICAgIGlmIChtX3NpemUuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1fc3VyZmFjZU1hbmFnZXIpCi0gICAgICAgIG1fc3Vy
ZmFjZU1hbmFnZXIgPSBuZXcgVGV4dHVyZU1hcHBlclN1cmZhY2VNYW5hZ2VyOwotICAgIG1fc3Vy
ZmFjZU1hbmFnZXItPnRleHR1cmVNYXBwZXIgPSBtX3RleHR1cmVNYXBwZXI7CiAgICAgVGV4dHVy
ZU1hcHBlclBhaW50T3B0aW9ucyBvcHQ7Ci0gICAgb3B0LnN1cmZhY2VNYW5hZ2VyID0gbV9zdXJm
YWNlTWFuYWdlcjsKICAgICBvcHQudGV4dHVyZU1hcHBlciA9IG1fdGV4dHVyZU1hcHBlcjsKICAg
ICBvcHQudGV4dHVyZU1hcHBlci0+YmluZFN1cmZhY2UoMCk7CiAgICAgcGFpbnRSZWN1cnNpdmUo
b3B0KTsKQEAgLTQ5Niw3ICs0NTgsNyBAQCBib29sIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJl
ZmxlY3Rpb24oY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucwogCiAgICAg
Ly8gVGhlIG1hc2sgaGFzIHRvIGJlIGFkanVzdGVkIHRvIHRhcmdldCBjb29yZGluYXRlcy4KICAg
ICBpZiAobWFza1RleHR1cmUpIHsKLSAgICAgICAgbWFza1N1cmZhY2UgPSBvcHRpb25zLnN1cmZh
Y2VNYW5hZ2VyLT5nZXRJbnRlcm1lZGlhdGVTdXJmYWNlKCk7CisgICAgICAgIG1hc2tTdXJmYWNl
ID0gb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKG9wdGlvbnMu
dGV4dHVyZU1hcHBlci0+dmlld3BvcnRTaXplKCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVN
YXBwZXItPmJpbmRTdXJmYWNlKG1hc2tTdXJmYWNlLmdldCgpKTsKICAgICAgICAgb3B0aW9ucy50
ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqbWFza1RleHR1cmUuZ2V0KCksIGVudGlyZVJlY3Qo
KSwgbV90cmFuc2Zvcm1zLnRhcmdldCwgMSwgMCk7CiAgICAgICAgIG1hc2tUZXh0dXJlID0gbWFz
a1N1cmZhY2U7CkBAIC01MDQsNyArNDY2LDcgQEAgYm9vbCBUZXh0dXJlTWFwcGVyTm9kZTo6cGFp
bnRSZWZsZWN0aW9uKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMKIAog
ICAgIC8vIFRoZSByZXBsaWNhJ3MgbWFzayBoYXMgdG8gYmUgYWRqdXN0ZWQgdG8gdGFyZ2V0IGNv
b3JkaW5hdGVzLgogICAgIGlmIChyZXBsaWNhTWFza1RleHR1cmUpIHsKLSAgICAgICAgcmVwbGlj
YU1hc2tTdXJmYWNlID0gb3B0aW9ucy5zdXJmYWNlTWFuYWdlci0+Z2V0SW50ZXJtZWRpYXRlU3Vy
ZmFjZSgpOworICAgICAgICByZXBsaWNhTWFza1N1cmZhY2UgPSBvcHRpb25zLnRleHR1cmVNYXBw
ZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFwcGVyLT52aWV3cG9y
dFNpemUoKSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmluZFN1cmZhY2UocmVw
bGljYU1hc2tTdXJmYWNlLmdldCgpKTsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5k
cmF3VGV4dHVyZSgqcmVwbGljYU1hc2tUZXh0dXJlLmdldCgpLCBlbnRpcmVSZWN0KCksIG1fdHJh
bnNmb3Jtcy50YXJnZXQsIDEsIDApOwogICAgICAgICByZXBsaWNhTWFza1RleHR1cmUgPSByZXBs
aWNhTWFza1N1cmZhY2U7CkBAIC01MTIsMjEgKzQ3NCwyMSBAQCBib29sIFRleHR1cmVNYXBwZXJO
b2RlOjpwYWludFJlZmxlY3Rpb24oY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0
aW9ucwogCiAgICAgLy8gV2UgbWlnaHQgbmVlZCB0byBhcHBseSB0aGUgbWFzayBvZiB0aGUgY29u
dGVudCBsYXllciBiZWZvcmUgd2UgZHJhdyB0aGUgcmVmbGVjdGlvbiwgYXMgdGhlcmUgbWlnaHQg
YmUgeWV0IGFub3RoZXIgbWFzayBmb3IgdGhlIHJlZmxlY3Rpb24gaXRzZWxmLgogICAgIGlmICh1
c2VJbnRlcm1lZGlhdGVCdWZmZXJGb3JNYXNrKSB7Ci0gICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0
dXJlPiBtYXNrU3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPmdldEludGVybWVkaWF0
ZVN1cmZhY2UoKTsKKyAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IG1hc2tTdXJmYWNlID0g
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKG9wdGlvbnMudGV4
dHVyZU1hcHBlci0+dmlld3BvcnRTaXplKCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBw
ZXItPmJpbmRTdXJmYWNlKG1hc2tTdXJmYWNlLmdldCgpKTsKICAgICAgICAgb3B0aW9ucy50ZXh0
dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQoKSwgdmlld3BvcnRSZWN0LCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCgpLCAxLCBtYXNrVGV4dHVyZS5nZXQoKSk7Ci0gICAgICAgIG9wdGlv
bnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJmYWNlKHN1cmZhY2UuZ2V0
KCkpOworICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPnJlbGVhc2VUZXh0dXJlVG9Qb29s
KHN1cmZhY2UuZ2V0KCkpOwogICAgICAgICBzdXJmYWNlID0gbWFza1N1cmZhY2U7CiAgICAgICAg
IG1hc2tUZXh0dXJlLmNsZWFyKCk7CiAgICAgfQogCiAgICAgLy8gV2UgYmxlbmQgdGhlIGxheWVy
IGFuZCBpdHMgcmVwbGljYSBpbiBhbiBpbnRlcm1lZGlhdGUgYnVmZmVyIGJlZm9yZSBibGVuZGlu
ZyBpbnRvIHRoZSB0YXJnZXQgc3VyZmFjZS4KICAgICBpZiAodXNlSW50ZXJtZWRpYXRlQnVmZmVy
Rm9yUmVwbGljYSkgewotICAgICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gcmVwbGljYVN1cmZh
Y2UgPSBvcHRpb25zLnN1cmZhY2VNYW5hZ2VyLT5nZXRJbnRlcm1lZGlhdGVTdXJmYWNlKCk7Cisg
ICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiByZXBsaWNhU3VyZmFjZSA9IG9wdGlvbnMudGV4
dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChvcHRpb25zLnRleHR1cmVNYXBwZXIt
PnZpZXdwb3J0U2l6ZSgpKTsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5iaW5kU3Vy
ZmFjZShyZXBsaWNhU3VyZmFjZS5nZXQoKSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBl
ci0+ZHJhd1RleHR1cmUoKnN1cmZhY2UuZ2V0KCksIHZpZXdwb3J0UmVjdCwgbV90cmFuc2Zvcm1z
LnJlcGxpY2EsIG1fc3RhdGUucmVwbGljYUxheWVyLT5tX29wYWNpdHksIHJlcGxpY2FNYXNrVGV4
dHVyZS5nZXQoKSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUo
KnN1cmZhY2UuZ2V0KCksIHZpZXdwb3J0UmVjdCwgVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgMSwg
bWFza1RleHR1cmUuZ2V0KCkpOwotICAgICAgICBvcHRpb25zLnN1cmZhY2VNYW5hZ2VyLT5yZWxl
YXNlSW50ZXJtZWRpYXRlU3VyZmFjZShzdXJmYWNlLmdldCgpKTsKKyAgICAgICAgb3B0aW9ucy50
ZXh0dXJlTWFwcGVyLT5yZWxlYXNlVGV4dHVyZVRvUG9vbChzdXJmYWNlLmdldCgpKTsKICAgICAg
ICAgc3VyZmFjZSA9IHJlcGxpY2FTdXJmYWNlOwogICAgIH0KIApAQCAtNTM5LDggKzUwMSw4IEBA
IGJvb2wgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVjdGlvbihjb25zdCBUZXh0dXJlTWFw
cGVyUGFpbnRPcHRpb25zJiBvcHRpb25zCiAgICAgLy8gRHJhdyB0aGUgb3JpZ2luYWwuCiAgICAg
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQoKSwgdmlld3Bv
cnRSZWN0LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBvcHRpb25zLm9wYWNpdHksIG1hc2tUZXh0
dXJlLmdldCgpKTsKIAotICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRlcm1l
ZGlhdGVTdXJmYWNlKG1hc2tTdXJmYWNlLmdldCgpKTsKLSAgICBvcHRpb25zLnN1cmZhY2VNYW5h
Z2VyLT5yZWxlYXNlSW50ZXJtZWRpYXRlU3VyZmFjZShyZXBsaWNhTWFza1N1cmZhY2UuZ2V0KCkp
OworICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+cmVsZWFzZVRleHR1cmVUb1Bvb2wobWFza1N1
cmZhY2UuZ2V0KCkpOworICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+cmVsZWFzZVRleHR1cmVU
b1Bvb2wocmVwbGljYU1hc2tTdXJmYWNlLmdldCgpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpA
QCAtNTcwLDEyICs1MzIsMTIgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnRSZWN1cnNp
dmUoVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyBvcHRpb25zKQogCiAgICAgLy8gVGhlIG1hc2sg
aGFzIHRvIGJlIGFkanVzdGVkIHRvIHRhcmdldCBjb29yZGluYXRlcy4KICAgICBpZiAobV9zdGF0
ZS5tYXNrTGF5ZXIpIHsKLSAgICAgICAgbWFza1N1cmZhY2UgPSBvcHRpb25zLnN1cmZhY2VNYW5h
Z2VyLT5nZXRJbnRlcm1lZGlhdGVTdXJmYWNlKCk7CisgICAgICAgIG1hc2tTdXJmYWNlID0gb3B0
aW9ucy50ZXh0dXJlTWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKG9wdGlvbnMudGV4dHVy
ZU1hcHBlci0+dmlld3BvcnRTaXplKCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIt
PmJpbmRTdXJmYWNlKG1hc2tTdXJmYWNlLmdldCgpKTsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJl
TWFwcGVyLT5kcmF3VGV4dHVyZSgqbV9zdGF0ZS5tYXNrTGF5ZXItPnRleHR1cmUoKSwgZW50aXJl
UmVjdCgpLCBtX3RyYW5zZm9ybXMudGFyZ2V0LCAxLjAsIDApOwogICAgIH0KIAotICAgIHN1cmZh
Y2UgPSBvcHRpb25zLnN1cmZhY2VNYW5hZ2VyLT5nZXRJbnRlcm1lZGlhdGVTdXJmYWNlKCk7Cisg
ICAgc3VyZmFjZSA9IG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9v
bChvcHRpb25zLnRleHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgpKTsKICAgICBvcHRpb25zRm9y
RGVzY2VuZGFudHMuc3VyZmFjZSA9IHN1cmZhY2UuZ2V0KCk7CiAgICAgb3B0aW9ucy5pc1N1cmZh
Y2UgPSB0cnVlOwogICAgIG9wdGlvbnNGb3JEZXNjZW5kYW50cy5vcGFjaXR5ID0gMTsKQEAgLTU4
OCw4ICs1NTAsOCBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlY3Vyc2l2ZShUZXh0
dXJlTWFwcGVyUGFpbnRPcHRpb25zIG9wdGlvbnMpCiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1h
cHBlci0+ZHJhd1RleHR1cmUoKnN1cmZhY2UuZ2V0KCksIHZpZXdwb3J0UmVjdCwgVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKSwgb3B0aW9ucy5vcGFjaXR5LCAwKTsKICAgICB9CiAKLSAgICBvcHRpb25z
LnN1cmZhY2VNYW5hZ2VyLT5yZWxlYXNlSW50ZXJtZWRpYXRlU3VyZmFjZShzdXJmYWNlLmdldCgp
KTsKLSAgICBvcHRpb25zLnN1cmZhY2VNYW5hZ2VyLT5yZWxlYXNlSW50ZXJtZWRpYXRlU3VyZmFj
ZShtYXNrU3VyZmFjZS5nZXQoKSk7CisgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5yZWxlYXNl
VGV4dHVyZVRvUG9vbChzdXJmYWNlLmdldCgpKTsKKyAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIt
PnJlbGVhc2VUZXh0dXJlVG9Qb29sKG1hc2tTdXJmYWNlLmdldCgpKTsKIH0KIAogVGV4dHVyZU1h
cHBlck5vZGU6On5UZXh0dXJlTWFwcGVyTm9kZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCmluZGV4
IGZjNDc5YmEuLmI0MGNkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCkBAIC0zOSwxNyArMzks
MjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXI7CiBjbGFzcyBUZXh0dXJlTWFwcGVyTm9kZTsKIGNsYXNzIEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyOwotY2xhc3MgVGV4dHVyZU1hcHBlclN1cmZhY2VNYW5hZ2VyOwogCiBjbGFzcyBUZXh0
dXJlTWFwcGVyUGFpbnRPcHRpb25zIHsKIHB1YmxpYzoKICAgICBCaXRtYXBUZXh0dXJlKiBzdXJm
YWNlOwogICAgIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXI7Ci0gICAgVGV4dHVyZU1hcHBl
clN1cmZhY2VNYW5hZ2VyKiBzdXJmYWNlTWFuYWdlcjsKIAogICAgIGZsb2F0IG9wYWNpdHk7CiAg
ICAgYm9vbCBpc1N1cmZhY2U7Ci0gICAgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucygpIDogc3Vy
ZmFjZSgwKSwgdGV4dHVyZU1hcHBlcigwKSwgb3BhY2l0eSgxLjApLCBpc1N1cmZhY2UoZmFsc2Up
IHsgfQorICAgIFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMoKQorICAgICAgICA6IHN1cmZhY2Uo
MCkKKyAgICAgICAgLCB0ZXh0dXJlTWFwcGVyKDApCisgICAgICAgICwgb3BhY2l0eSgxKQorICAg
ICAgICAsIGlzU3VyZmFjZShmYWxzZSkKKyAgICB7IH0KIH07CiAKIGNsYXNzIFRleHR1cmVNYXBw
ZXJBbmltYXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxUZXh0dXJlTWFwcGVyQW5pbWF0aW9uPiB7
CkBAIC0xMzUsNyArMTM4LDExIEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgVGV4dHVyZU1hcHBl
ck5vZGUoKQotICAgICAgICA6IG1fcGFyZW50KDApLCBtX2VmZmVjdFRhcmdldCgwKSwgbV9vcGFj
aXR5KDEuMCksIG1fc3VyZmFjZU1hbmFnZXIoMCksIG1fdGV4dHVyZU1hcHBlcigwKSB7IH0KKyAg
ICAgICAgOiBtX3BhcmVudCgwKQorICAgICAgICAsIG1fZWZmZWN0VGFyZ2V0KDApCisgICAgICAg
ICwgbV9vcGFjaXR5KDEpCisgICAgICAgICwgbV90ZXh0dXJlTWFwcGVyKDApCisgICAgeyB9CiAK
ICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyTm9kZSgpOwogCkBAIC0zMTcsNyArMzI0LDYgQEAg
cHJpdmF0ZToKICAgICB9OwogCiAgICAgU3RhdGUgbV9zdGF0ZTsKLSAgICBUZXh0dXJlTWFwcGVy
U3VyZmFjZU1hbmFnZXIqIG1fc3VyZmFjZU1hbmFnZXI7CiAgICAgVGV4dHVyZU1hcHBlciogbV90
ZXh0dXJlTWFwcGVyOwogCiAgICAgVmVjdG9yPFJlZlB0cjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9u
PiA+IG1fYW5pbWF0aW9uczsK
</data>
<flag name="review"
          id="122134"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121636</attachid>
            <date>2012-01-09 02:42:18 -0800</date>
            <delta_ts>2012-01-09 02:49:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>60681</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZGQ0NzI1Li4xMzBjMDkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDEt
MDcgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAg
ICBbUXRdIEVuYWJsZSBDU1NfRklMVEVSUyBpbiBRdCBidWlsZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KKworICAgICAgICAqIHBsYXRmb3JtL3F0L1Nr
aXBwZWQ6IFVuc2tpcCBmaWx0ZXIgdGVzdHMgdGhhdCB3b3JrLgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L2NzczMvZmlsdGVycy8qOiBBZGRlZCBRdCBzcGVjaWZpYyByZXN1bHRzLgorCiAyMDEyLTAx
LTA3ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0dU
S10gRW5hYmxlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBpbiBidWlsZC13ZWJraXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCmluZGV4IDY3NjExNmUuLjllM2Q4MzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZApAQCAtMjM3LDggKzIzNywyOSBAQCBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS8K
ICMgRm9udCBmZWF0dXJlIHNldHRpbmdzIGlzIG5vdCBpbXBsZW1lbnRlZC4KIGNzczMvZm9udC1m
ZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy5odG1sCiAKLSMgQ1NTIEZpbHRlcnMgaXMgZGlzYWJs
ZWQKLWNzczMvZmlsdGVycworIyBDU1MgRmlsdGVycyAtIHNvbWUgdGVzdHMgZG9uJ3Qgd29yayB5
ZXQuCitjc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5o
dG1sCitjc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1wYXJzaW5nLWludmFsaWQu
aHRtbAorY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktcGFyc2luZy5odG1sCitj
c3MzL2ZpbHRlcnMvZmlsdGVyLWFuaW1hdGlvbi1mcm9tLW5vbmUuaHRtbAorY3NzMy9maWx0ZXJz
L2ZpbHRlci1hbmltYXRpb24uaHRtbAorY3NzMy9maWx0ZXJzL2ZpbHRlci1wcm9wZXJ0eS1jb21w
dXRlZC1zdHlsZS5odG1sCitjc3MzL2ZpbHRlcnMvZmlsdGVyLXByb3BlcnR5LXBhcnNpbmctaW52
YWxpZC5odG1sCitjc3MzL2ZpbHRlcnMvZmlsdGVyLXByb3BlcnR5LXBhcnNpbmcuaHRtbAorY3Nz
My9maWx0ZXJzL2ZpbHRlci1wcm9wZXJ0eS5odG1sCitjc3MzL2ZpbHRlcnMvZmlsdGVyLXJlcGFp
bnQuaHRtbAorY3NzMy9maWx0ZXJzL2NyYXNoLWh3LXN3LXN3aXRjaC5odG1sCitjc3MzL2ZpbHRl
cnMvZWZmZWN0LWJsdXItaHcuaHRtbAorY3NzMy9maWx0ZXJzL2VmZmVjdC1jb21iaW5lZC5odG1s
Citjc3MzL2ZpbHRlcnMvZWZmZWN0LWNvbWJpbmVkLWh3Lmh0bWwKK2NzczMvZmlsdGVycy9lZmZl
Y3QtY3VzdG9tLmh0bWwKK2NzczMvZmlsdGVycy9lZmZlY3QtZHJvcC1zaGFkb3ctaHcuaHRtbAor
Y3NzMy9maWx0ZXJzL2VmZmVjdC1ncmF5c2NhbGUtaHcuaHRtbAorY3NzMy9maWx0ZXJzL2VmZmVj
dC1odWUtcm90YXRlLWh3Lmh0bWwKK2NzczMvZmlsdGVycy9lZmZlY3QtaW52ZXJ0LWh3Lmh0bWwK
K2NzczMvZmlsdGVycy9lZmZlY3Qtb3BhY2l0eS1ody5odG1sCitjc3MzL2ZpbHRlcnMvZWZmZWN0
LXNhdHVyYXRlLWh3Lmh0bWwKK2NzczMvZmlsdGVycy9lZmZlY3Qtc2VwaWEtaHcuaHRtbAogCiAj
IFN1cHBvcnQgbXVsdGlwYXJ0IHJlc3BvbnNlcyBpcyBub3QgaW1wbGVtZW50ZWQuCiAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzA2MApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9hZGQtZmls
dGVyLXJlbmRlcmluZy1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMzc2NzRjOApCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L2NzczMvZmlsdGVycy9hZGQtZmlsdGVyLXJlbmRlcmluZy1leHBlY3RlZC5wbmcg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMv
YWRkLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDA1ZDNhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2FkZC1maWx0ZXItcmVuZGVyaW5n
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKK2xheWVyIGF0ICg4LDgp
IHNpemUgMjAweDIwMAorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIwMHgyMDAg
W2JnY29sb3I9I0E2NzJBM10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Nz
czMvZmlsdGVycy9jcmFzaC1maWx0ZXItY2hhbmdlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9jcmFzaC1maWx0ZXItY2hhbmdlLWV4cGVjdGVkLnBu
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODVlMzIyCkJpbmFyeSBmaWxl
cyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2Ny
YXNoLWZpbHRlci1jaGFuZ2UtZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2NyYXNoLWZpbHRlci1jaGFuZ2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2NyYXNoLWZpbHRl
ci1jaGFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjhiMTM3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3Mz
L2ZpbHRlcnMvY3Jhc2gtZmlsdGVyLWNoYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvY3Jhc2gt
aHctc3ctc3dpdGNoLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMv
ZmlsdGVycy9jcmFzaC1ody1zdy1zd2l0Y2gtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmQxNzU5YTAKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvY3Jhc2gtaHctc3ctc3dpdGNoLWV4
cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Nz
czMvZmlsdGVycy9jcmFzaC1ody1zdy1zd2l0Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2NyYXNoLWh3LXN3LXN3aXRjaC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY3NDA4OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9jcmFzaC1ody1zdy1z
d2l0Y2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKKyBQQVNTIGlmIHRlc3QgZG9lcyBub3Qg
Y3Jhc2ggb3IgY2F1c2UgYW4gQVNTRVJUIGZhaWx1cmUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRl
ZC1zdHlsZS1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRl
cnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC5wbmcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWJhODRmYQpCaW5hcnkgZmlsZXMgL2Rl
di9udWxsIGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9jdXN0b20t
ZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVy
LXByb3BlcnR5LXBhcnNpbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
Y3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktcGFyc2luZy1leHBlY3RlZC5wbmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWJhODRmYQpCaW5hcnkgZmlsZXMg
L2Rldi9udWxsIGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9jdXN0
b20tZmlsdGVyLXByb3BlcnR5LXBhcnNpbmctZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJv
cGVydHktcGFyc2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3Mz
L2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1wYXJzaW5nLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzYwZWJmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJv
cGVydHktcGFyc2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Cisg
ICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MAorICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktcGFyc2luZy1pbnZh
bGlkLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9j
dXN0b20tZmlsdGVyLXByb3BlcnR5LXBhcnNpbmctaW52YWxpZC1leHBlY3RlZC5wbmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWJhODRmYQpCaW5hcnkgZmlsZXMgL2Rldi9u
dWxsIGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9jdXN0b20tZmls
dGVyLXByb3BlcnR5LXBhcnNpbmctaW52YWxpZC1leHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1w
cm9wZXJ0eS1wYXJzaW5nLWludmFsaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktcGFyc2luZy1pbnZhbGlk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzYwZWJm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJz
L2N1c3RvbS1maWx0ZXItcHJvcGVydHktcGFyc2luZy1pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBz
aXplIDc4NHgwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgwCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LWJs
dXItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2Vm
ZmVjdC1ibHVyLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kODMyMWYzCkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvY3NzMy9maWx0ZXJzL2VmZmVjdC1ibHVyLWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9lZmZlY3QtYmx1ci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0
LWJsdXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4
ODMwODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2Zp
bHRlcnMvZWZmZWN0LWJsdXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1
ODQKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTgwLDk2KSBzaXplIDR4MTcKKyAgICAg
ICAgdGV4dCBydW4gYXQgKDE4MCw5Nikgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDM2NCw5Nikgc2l6ZSA0eDE3CisgICAgICAgIHRleHQgcnVuIGF0ICgzNjQsOTYp
IHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1NDgsOTYpIHNpemUg
NHgxNworICAgICAgICB0ZXh0IHJ1biBhdCAoNTQ4LDk2KSB3aWR0aCA0OiAiICIKKyAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDE4LDE4KSBzaXpl
IDE2MHg5MAorICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAoMTAsMTApIHNpemUgMTYweDkwCitsYXll
ciBhdCAoMjAyLDE4KSBzaXplIDE2MHg5MAorICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAoMTk0LDEw
KSBzaXplIDE2MHg5MAorbGF5ZXIgYXQgKDM4NiwxOCkgc2l6ZSAxNjB4OTAKKyAgUmVuZGVySW1h
Z2Uge0lNR30gYXQgKDM3OCwxMCkgc2l6ZSAxNjB4OTAKK2xheWVyIGF0ICg1NzAsMTgpIHNpemUg
MTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICg1NjIsMTApIHNpemUgMTYweDkwCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LWJyaWdo
dG5lc3MtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJz
L2VmZmVjdC1icmlnaHRuZXNzLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lMDFlMDIzCkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2VmZmVjdC1icmlnaHRuZXNzLWV4cGVjdGVkLnBu
ZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVy
cy9lZmZlY3QtYnJpZ2h0bmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9jc3MzL2ZpbHRlcnMvZWZmZWN0LWJyaWdodG5lc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlYTlhYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LWJyaWdodG5lc3MtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMTYwLDc2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDE2MCw3Nikg
d2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMyNCw3Nikgc2l6ZSA0
eDE3CisgICAgICAgIHRleHQgcnVuIGF0ICgzMjQsNzYpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICg0ODgsNzYpIHNpemUgNHgxNworICAgICAgICB0ZXh0IHJ1biBh
dCAoNDg4LDc2KSB3aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjUy
LDc2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDY1Miw3Nikgd2lkdGggNDogIiAi
CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE2MCwxNzApIHNpemUgNHgxNworICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTYwLDE3MCkgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDMyNCwxNzApIHNpemUgNHgxNworICAgICAgICB0ZXh0IHJ1biBhdCAoMzI0LDE3
MCkgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAw
eDAKK2xheWVyIGF0ICg4LDgpIHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgw
LDApIHNpemUgMTYweDkwCitsYXllciBhdCAoMTcyLDgpIHNpemUgMTYweDkwCisgIFJlbmRlcklt
YWdlIHtJTUd9IGF0ICgxNjQsMCkgc2l6ZSAxNjB4OTAKK2xheWVyIGF0ICgzMzYsOCkgc2l6ZSAx
NjB4OTAKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDMyOCwwKSBzaXplIDE2MHg5MAorbGF5ZXIg
YXQgKDUwMCw4KSBzaXplIDE2MHg5MAorICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAoNDkyLDApIHNp
emUgMTYweDkwCitsYXllciBhdCAoOCwxMDIpIHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJ
TUd9IGF0ICgwLDk0KSBzaXplIDE2MHg5MAorbGF5ZXIgYXQgKDE3MiwxMDIpIHNpemUgMTYweDkw
CisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNjQsOTQpIHNpemUgMTYweDkwCitsYXllciBhdCAo
MzM2LDEwMikgc2l6ZSAxNjB4OTAKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDMyOCw5NCkgc2l6
ZSAxNjB4OTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVy
cy9lZmZlY3QtY29udHJhc3QtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
Y3NzMy9maWx0ZXJzL2VmZmVjdC1jb250cmFzdC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZGRiNjE5MQpCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9lZmZlY3QtY29udHJhc3QtZXhw
ZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3Nz
My9maWx0ZXJzL2VmZmVjdC1jb250cmFzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LWNvbnRyYXN0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzQzYzQyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2VmZmVjdC1jb250cmFzdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgxNjAsNzYpIHNpemUgNHgxNworICAgICAgICB0ZXh0IHJ1biBhdCAoMTYwLDc2
KSB3aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzI0LDc2KSBzaXpl
IDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDMyNCw3Nikgd2lkdGggNDogIiAiCisgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ4OCw3Nikgc2l6ZSA0eDE3CisgICAgICAgIHRleHQgcnVu
IGF0ICg0ODgsNzYpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2
NTIsNzYpIHNpemUgNHgxNworICAgICAgICB0ZXh0IHJ1biBhdCAoNjUyLDc2KSB3aWR0aCA0OiAi
ICIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTYwLDE3MCkgc2l6ZSA0eDE3CisgICAg
ICAgIHRleHQgcnVuIGF0ICgxNjAsMTcwKSB3aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDgsOCkgc2l6ZSAxNjB4OTAKKyAg
UmVuZGVySW1hZ2Uge0lNR30gYXQgKDAsMCkgc2l6ZSAxNjB4OTAKK2xheWVyIGF0ICgxNzIsOCkg
c2l6ZSAxNjB4OTAKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDE2NCwwKSBzaXplIDE2MHg5MAor
bGF5ZXIgYXQgKDMzNiw4KSBzaXplIDE2MHg5MAorICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAoMzI4
LDApIHNpemUgMTYweDkwCitsYXllciBhdCAoNTAwLDgpIHNpemUgMTYweDkwCisgIFJlbmRlcklt
YWdlIHtJTUd9IGF0ICg0OTIsMCkgc2l6ZSAxNjB4OTAKK2xheWVyIGF0ICg4LDEwMikgc2l6ZSAx
NjB4OTAKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDAsOTQpIHNpemUgMTYweDkwCitsYXllciBh
dCAoMTcyLDEwMikgc2l6ZSAxNjB4OTAKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDE2NCw5NCkg
c2l6ZSAxNjB4OTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmls
dGVycy9lZmZlY3QtZHJvcC1zaGFkb3ctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvY3NzMy9maWx0ZXJzL2VmZmVjdC1kcm9wLXNoYWRvdy1leHBlY3RlZC5wbmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYyZWUyMgpCaW5hcnkgZmlsZXMgL2Rldi9u
dWxsIGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9lZmZlY3QtZHJv
cC1zaGFkb3ctZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvY3NzMy9maWx0ZXJzL2VmZmVjdC1kcm9wLXNoYWRvdy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LWRyb3Atc2hhZG93LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDU0ZGYxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2Vm
ZmVjdC1kcm9wLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCits
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4
NAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxOTAsMTA2KSBzaXplIDR4MTcKKyAgICAg
ICAgdGV4dCBydW4gYXQgKDE5MCwxMDYpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgzODQsMTA2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDM4NCwx
MDYpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1NzgsMTA2KSBz
aXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDU3OCwxMDYpIHdpZHRoIDQ6ICIgIgorICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg3NzIsMTA2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4
dCBydW4gYXQgKDc3MiwxMDYpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoMjMsMjMpIHNpemUgMTYweDkwCisgIFJlbmRl
ckltYWdlIHtJTUd9IGF0ICgxNSwxNSkgc2l6ZSAxNjB4OTAKK2xheWVyIGF0ICgyMTcsMjMpIHNp
emUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgyMDksMTUpIHNpemUgMTYweDkwCits
YXllciBhdCAoNDExLDIzKSBzaXplIDE2MHg5MAorICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAoNDAz
LDE1KSBzaXplIDE2MHg5MAorbGF5ZXIgYXQgKDYwNSwyMykgc2l6ZSAxNjB4OTAKKyAgUmVuZGVy
SW1hZ2Uge0lNR30gYXQgKDU5NywxNSkgc2l6ZSAxNjB4OTAKK2xheWVyIGF0ICgyMywxNDcpIHNp
emUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNSwxMzkpIHNpemUgMTYweDkwCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LWdy
YXlzY2FsZS1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRl
cnMvZWZmZWN0LWdyYXlzY2FsZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZWUwMmMzYgpCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9lZmZlY3QtZ3JheXNjYWxlLWV4cGVjdGVkLnBu
ZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVy
cy9lZmZlY3QtZ3JheXNjYWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L2NzczMvZmlsdGVycy9lZmZlY3QtZ3JheXNjYWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzQzYzQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2VmZmVjdC1ncmF5c2NhbGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMTYwLDc2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDE2MCw3Nikgd2lk
dGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMyNCw3Nikgc2l6ZSA0eDE3
CisgICAgICAgIHRleHQgcnVuIGF0ICgzMjQsNzYpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICg0ODgsNzYpIHNpemUgNHgxNworICAgICAgICB0ZXh0IHJ1biBhdCAo
NDg4LDc2KSB3aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjUyLDc2
KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDY1Miw3Nikgd2lkdGggNDogIiAiCisg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE2MCwxNzApIHNpemUgNHgxNworICAgICAgICB0
ZXh0IHJ1biBhdCAoMTYwLDE3MCkgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDgpIHNpemUgMTYweDkwCisgIFJlbmRl
ckltYWdlIHtJTUd9IGF0ICgwLDApIHNpemUgMTYweDkwCitsYXllciBhdCAoMTcyLDgpIHNpemUg
MTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNjQsMCkgc2l6ZSAxNjB4OTAKK2xheWVy
IGF0ICgzMzYsOCkgc2l6ZSAxNjB4OTAKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDMyOCwwKSBz
aXplIDE2MHg5MAorbGF5ZXIgYXQgKDUwMCw4KSBzaXplIDE2MHg5MAorICBSZW5kZXJJbWFnZSB7
SU1HfSBhdCAoNDkyLDApIHNpemUgMTYweDkwCitsYXllciBhdCAoOCwxMDIpIHNpemUgMTYweDkw
CisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDk0KSBzaXplIDE2MHg5MAorbGF5ZXIgYXQgKDE3
MiwxMDIpIHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNjQsOTQpIHNpemUg
MTYweDkwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMv
ZWZmZWN0LWh1ZS1yb3RhdGUtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
Y3NzMy9maWx0ZXJzL2VmZmVjdC1odWUtcm90YXRlLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmY4M2YzCkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5k
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2VmZmVjdC1odWUtcm90YXRl
LWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L2NzczMvZmlsdGVycy9lZmZlY3QtaHVlLXJvdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LWh1ZS1yb3RhdGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNDNjNDIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LWh1ZS1y
b3RhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMTYwLDc2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4g
YXQgKDE2MCw3Nikgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMy
NCw3Nikgc2l6ZSA0eDE3CisgICAgICAgIHRleHQgcnVuIGF0ICgzMjQsNzYpIHdpZHRoIDQ6ICIg
IgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0ODgsNzYpIHNpemUgNHgxNworICAgICAg
ICB0ZXh0IHJ1biBhdCAoNDg4LDc2KSB3aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoNjUyLDc2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDY1Miw3Nikg
d2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE2MCwxNzApIHNpemUg
NHgxNworICAgICAgICB0ZXh0IHJ1biBhdCAoMTYwLDE3MCkgd2lkdGggNDogIiAiCisgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDgpIHNpemUg
MTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDApIHNpemUgMTYweDkwCitsYXllciBh
dCAoMTcyLDgpIHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNjQsMCkgc2l6
ZSAxNjB4OTAKK2xheWVyIGF0ICgzMzYsOCkgc2l6ZSAxNjB4OTAKKyAgUmVuZGVySW1hZ2Uge0lN
R30gYXQgKDMyOCwwKSBzaXplIDE2MHg5MAorbGF5ZXIgYXQgKDUwMCw4KSBzaXplIDE2MHg5MAor
ICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAoNDkyLDApIHNpemUgMTYweDkwCitsYXllciBhdCAoOCwx
MDIpIHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDk0KSBzaXplIDE2MHg5
MAorbGF5ZXIgYXQgKDE3MiwxMDIpIHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0
ICgxNjQsOTQpIHNpemUgMTYweDkwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9jc3MzL2ZpbHRlcnMvZWZmZWN0LWludmVydC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LWludmVydC1leHBlY3RlZC5wbmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMyMGJiOApCaW5hcnkgZmlsZXMgL2Rldi9u
dWxsIGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9lZmZlY3QtaW52
ZXJ0LWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L2NzczMvZmlsdGVycy9lZmZlY3QtaW52ZXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9lZmZlY3QtaW52ZXJ0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzQzYzQyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2VmZmVjdC1pbnZlcnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAor
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMTYwLDc2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDE2MCw3
Nikgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMyNCw3Nikgc2l6
ZSA0eDE3CisgICAgICAgIHRleHQgcnVuIGF0ICgzMjQsNzYpIHdpZHRoIDQ6ICIgIgorICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0ODgsNzYpIHNpemUgNHgxNworICAgICAgICB0ZXh0IHJ1
biBhdCAoNDg4LDc2KSB3aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
NjUyLDc2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDY1Miw3Nikgd2lkdGggNDog
IiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE2MCwxNzApIHNpemUgNHgxNworICAg
ICAgICB0ZXh0IHJ1biBhdCAoMTYwLDE3MCkgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDgpIHNpemUgMTYweDkwCisg
IFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDApIHNpemUgMTYweDkwCitsYXllciBhdCAoMTcyLDgp
IHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNjQsMCkgc2l6ZSAxNjB4OTAK
K2xheWVyIGF0ICgzMzYsOCkgc2l6ZSAxNjB4OTAKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDMy
OCwwKSBzaXplIDE2MHg5MAorbGF5ZXIgYXQgKDUwMCw4KSBzaXplIDE2MHg5MAorICBSZW5kZXJJ
bWFnZSB7SU1HfSBhdCAoNDkyLDApIHNpemUgMTYweDkwCitsYXllciBhdCAoOCwxMDIpIHNpemUg
MTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDk0KSBzaXplIDE2MHg5MAorbGF5ZXIg
YXQgKDE3MiwxMDIpIHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNjQsOTQp
IHNpemUgMTYweDkwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2Zp
bHRlcnMvZWZmZWN0LW9wYWNpdHktZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvY3NzMy9maWx0ZXJzL2VmZmVjdC1vcGFjaXR5LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDg3MTg1CkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5k
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2VmZmVjdC1vcGFjaXR5LWV4
cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Nz
czMvZmlsdGVycy9lZmZlY3Qtb3BhY2l0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LW9wYWNpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNDNjNDIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LW9wYWNpdHktZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMTYwLDc2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDE2MCw3Nikg
d2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMyNCw3Nikgc2l6ZSA0
eDE3CisgICAgICAgIHRleHQgcnVuIGF0ICgzMjQsNzYpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICg0ODgsNzYpIHNpemUgNHgxNworICAgICAgICB0ZXh0IHJ1biBh
dCAoNDg4LDc2KSB3aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjUy
LDc2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDY1Miw3Nikgd2lkdGggNDogIiAi
CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE2MCwxNzApIHNpemUgNHgxNworICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTYwLDE3MCkgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDgpIHNpemUgMTYweDkwCisgIFJl
bmRlckltYWdlIHtJTUd9IGF0ICgwLDApIHNpemUgMTYweDkwCitsYXllciBhdCAoMTcyLDgpIHNp
emUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNjQsMCkgc2l6ZSAxNjB4OTAKK2xh
eWVyIGF0ICgzMzYsOCkgc2l6ZSAxNjB4OTAKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDMyOCww
KSBzaXplIDE2MHg5MAorbGF5ZXIgYXQgKDUwMCw4KSBzaXplIDE2MHg5MAorICBSZW5kZXJJbWFn
ZSB7SU1HfSBhdCAoNDkyLDApIHNpemUgMTYweDkwCitsYXllciBhdCAoOCwxMDIpIHNpemUgMTYw
eDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDk0KSBzaXplIDE2MHg5MAorbGF5ZXIgYXQg
KDE3MiwxMDIpIHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNjQsOTQpIHNp
emUgMTYweDkwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRl
cnMvZWZmZWN0LXNhdHVyYXRlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L2NzczMvZmlsdGVycy9lZmZlY3Qtc2F0dXJhdGUtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxZjY3MmIKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LXNhdHVyYXRlLWV4
cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Nz
czMvZmlsdGVycy9lZmZlY3Qtc2F0dXJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvY3NzMy9maWx0ZXJzL2VmZmVjdC1zYXR1cmF0ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM0M2M0MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9lZmZlY3Qtc2F0dXJhdGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAor
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMTYwLDc2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDE2MCw3
Nikgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMyNCw3Nikgc2l6
ZSA0eDE3CisgICAgICAgIHRleHQgcnVuIGF0ICgzMjQsNzYpIHdpZHRoIDQ6ICIgIgorICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0ODgsNzYpIHNpemUgNHgxNworICAgICAgICB0ZXh0IHJ1
biBhdCAoNDg4LDc2KSB3aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
NjUyLDc2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDY1Miw3Nikgd2lkdGggNDog
IiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE2MCwxNzApIHNpemUgNHgxNworICAg
ICAgICB0ZXh0IHJ1biBhdCAoMTYwLDE3MCkgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDgpIHNpemUgMTYweDkwCisg
IFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDApIHNpemUgMTYweDkwCitsYXllciBhdCAoMTcyLDgp
IHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNjQsMCkgc2l6ZSAxNjB4OTAK
K2xheWVyIGF0ICgzMzYsOCkgc2l6ZSAxNjB4OTAKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDMy
OCwwKSBzaXplIDE2MHg5MAorbGF5ZXIgYXQgKDUwMCw4KSBzaXplIDE2MHg5MAorICBSZW5kZXJJ
bWFnZSB7SU1HfSBhdCAoNDkyLDApIHNpemUgMTYweDkwCitsYXllciBhdCAoOCwxMDIpIHNpemUg
MTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgwLDk0KSBzaXplIDE2MHg5MAorbGF5ZXIg
YXQgKDE3MiwxMDIpIHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNjQsOTQp
IHNpemUgMTYweDkwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2Zp
bHRlcnMvZWZmZWN0LXNlcGlhLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L2NzczMvZmlsdGVycy9lZmZlY3Qtc2VwaWEtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmJhZGM2ZTMKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZWZmZWN0LXNlcGlhLWV4cGVjdGVk
LnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmls
dGVycy9lZmZlY3Qtc2VwaWEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
Y3NzMy9maWx0ZXJzL2VmZmVjdC1zZXBpYS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZGM0M2M0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9lZmZlY3Qtc2VwaWEtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTYw
LDc2KSBzaXplIDR4MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDE2MCw3Nikgd2lkdGggNDogIiAi
CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMyNCw3Nikgc2l6ZSA0eDE3CisgICAgICAg
IHRleHQgcnVuIGF0ICgzMjQsNzYpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICg0ODgsNzYpIHNpemUgNHgxNworICAgICAgICB0ZXh0IHJ1biBhdCAoNDg4LDc2KSB3
aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjUyLDc2KSBzaXplIDR4
MTcKKyAgICAgICAgdGV4dCBydW4gYXQgKDY1Miw3Nikgd2lkdGggNDogIiAiCisgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDE2MCwxNzApIHNpemUgNHgxNworICAgICAgICB0ZXh0IHJ1biBh
dCAoMTYwLDE3MCkgd2lkdGggNDogIiAiCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDgpIHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJ
TUd9IGF0ICgwLDApIHNpemUgMTYweDkwCitsYXllciBhdCAoMTcyLDgpIHNpemUgMTYweDkwCisg
IFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNjQsMCkgc2l6ZSAxNjB4OTAKK2xheWVyIGF0ICgzMzYs
OCkgc2l6ZSAxNjB4OTAKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDMyOCwwKSBzaXplIDE2MHg5
MAorbGF5ZXIgYXQgKDUwMCw4KSBzaXplIDE2MHg5MAorICBSZW5kZXJJbWFnZSB7SU1HfSBhdCAo
NDkyLDApIHNpemUgMTYweDkwCitsYXllciBhdCAoOCwxMDIpIHNpemUgMTYweDkwCisgIFJlbmRl
ckltYWdlIHtJTUd9IGF0ICgwLDk0KSBzaXplIDE2MHg5MAorbGF5ZXIgYXQgKDE3MiwxMDIpIHNp
emUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9IGF0ICgxNjQsOTQpIHNpemUgMTYweDkwCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVyLWFu
aW1hdGlvbi1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRl
cnMvZmlsdGVyLWFuaW1hdGlvbi1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZTZiZGQ3MwpCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItYW5pbWF0aW9uLWV4cGVjdGVkLnBu
ZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVy
cy9maWx0ZXItYW5pbWF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L2NzczMvZmlsdGVycy9maWx0ZXItYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWE2NzVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2ZpbHRlci1hbmltYXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNDQgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMjM6IFJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBydW5BbmltYXRpb25UZXN0CitsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDI2NAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSA4MDB4MjY0CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MjQ4
CisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDc4NHgyNDgKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMjAsMTA2KSBzaXplIDR4MTcKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTIwLDEwNikgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMjQ0LDEwNikgc2l6ZSA0eDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDI0
NCwxMDYpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDM2OCwx
MDYpIHNpemUgNHgxNworICAgICAgICAgIHRleHQgcnVuIGF0ICgzNjgsMTA2KSB3aWR0aCA0OiAi
ICIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0OTIsMTA2KSBzaXplIDR4MTcKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNDkyLDEwNikgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoNjE2LDEwNikgc2l6ZSA0eDE3CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDYxNiwxMDYpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDc0MCwxMDYpIHNpemUgNHgxNworICAgICAgICAgIHRleHQgcnVuIGF0ICg3NDAsMTA2KSB3aWR0
aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMjAsMjMwKSBzaXplIDR4
MTcKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTIwLDIzMCkgd2lkdGggNDogIiAiCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjQ0LDIzMCkgc2l6ZSA0eDE3CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDI0NCwyMzApIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMHgwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwyNDgpIHNpemUgNzg0eDAK
K2xheWVyIGF0ICgxOCwxOCkgc2l6ZSAxMDB4MTAwCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgx
MCwxMCkgc2l6ZSAxMDB4MTAwIFtiZ2NvbG9yPSMwMDAwRkZdCitsYXllciBhdCAoMTQyLDE4KSBz
aXplIDEwMHgxMDAKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDEzNCwxMCkgc2l6ZSAxMDB4MTAw
IFtiZ2NvbG9yPSMwMDAwRkZdCitsYXllciBhdCAoMjY2LDE4KSBzaXplIDEwMHgxMDAKKyAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDI1OCwxMCkgc2l6ZSAxMDB4MTAwIFtiZ2NvbG9yPSMwMDAwRkZd
CitsYXllciBhdCAoMzkwLDE4KSBzaXplIDEwMHgxMDAKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDM4MiwxMCkgc2l6ZSAxMDB4MTAwIFtiZ2NvbG9yPSMwMDAwRkZdCitsYXllciBhdCAoNTE0LDE4
KSBzaXplIDEwMHgxMDAKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDUwNiwxMCkgc2l6ZSAxMDB4
MTAwIFtiZ2NvbG9yPSMwMDAwRkZdCitsYXllciBhdCAoNjM4LDE4KSBzaXplIDEwMHgxMDAKKyAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDYzMCwxMCkgc2l6ZSAxMDB4MTAwIFtiZ2NvbG9yPSMwMDAw
RkZdCitsYXllciBhdCAoMTgsMTQyKSBzaXplIDEwMHgxMDAKKyAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDEwLDEzNCkgc2l6ZSAxMDB4MTAwIFtiZ2NvbG9yPSMwMDAwRkZdCitsYXllciBhdCAoMTQy
LDE0Mikgc2l6ZSAxMDB4MTAwCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMzQsMTM0KSBzaXpl
IDEwMHgxMDAgW2JnY29sb3I9IzAwMDBGRl0KK2xheWVyIGF0ICgyNjYsMTQyKSBzaXplIDEwMHgx
MDAKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDI1OCwxMzQpIHNpemUgMTAweDEwMCBbYmdjb2xv
cj0jMDAwMEZGXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0
ZXJzL2ZpbHRlci1hbmltYXRpb24tZnJvbS1ub25lLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItYW5pbWF0aW9uLWZyb20tbm9uZS1leHBl
Y3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjYyMDM2MgpCaW5h
cnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmls
dGVycy9maWx0ZXItYW5pbWF0aW9uLWZyb20tbm9uZS1leHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVyLWFuaW1h
dGlvbi1mcm9tLW5vbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3Nz
My9maWx0ZXJzL2ZpbHRlci1hbmltYXRpb24tZnJvbS1ub25lLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWE2NzVlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2ZpbHRlci1hbmltYXRpb24tZnJv
bS1ub25lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ0IEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTIzOiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogcnVuQW5pbWF0aW9u
VGVzdAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgyNjQKKyAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDI2NAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgNzg0eDI0OAorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkg
c2l6ZSA3ODR4MjQ4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTIwLDEwNikgc2l6
ZSA0eDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDEyMCwxMDYpIHdpZHRoIDQ6ICIgIgorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI0NCwxMDYpIHNpemUgNHgxNworICAgICAgICAg
IHRleHQgcnVuIGF0ICgyNDQsMTA2KSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgzNjgsMTA2KSBzaXplIDR4MTcKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzY4
LDEwNikgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNDkyLDEw
Nikgc2l6ZSA0eDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDQ5MiwxMDYpIHdpZHRoIDQ6ICIg
IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYxNiwxMDYpIHNpemUgNHgxNworICAg
ICAgICAgIHRleHQgcnVuIGF0ICg2MTYsMTA2KSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICg3NDAsMTA2KSBzaXplIDR4MTcKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNzQwLDEwNikgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MTIwLDIzMCkgc2l6ZSA0eDE3CisgICAgICAgICAgdGV4dCBydW4gYXQgKDEyMCwyMzApIHdpZHRo
IDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI0NCwyMzApIHNpemUgNHgx
NworICAgICAgICAgIHRleHQgcnVuIGF0ICgyNDQsMjMwKSB3aWR0aCA0OiAiICIKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MjQ4KSBzaXplIDc4NHgwCitsYXllciBhdCAoMTgsMTgpIHNpemUgMTAweDEwMAorICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMTAsMTApIHNpemUgMTAweDEwMCBbYmdjb2xvcj0jMDAwMEZGXQorbGF5
ZXIgYXQgKDE0MiwxOCkgc2l6ZSAxMDB4MTAwCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMzQs
MTApIHNpemUgMTAweDEwMCBbYmdjb2xvcj0jMDAwMEZGXQorbGF5ZXIgYXQgKDI2NiwxOCkgc2l6
ZSAxMDB4MTAwCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyNTgsMTApIHNpemUgMTAweDEwMCBb
Ymdjb2xvcj0jMDAwMEZGXQorbGF5ZXIgYXQgKDM5MCwxOCkgc2l6ZSAxMDB4MTAwCisgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgzODIsMTApIHNpemUgMTAweDEwMCBbYmdjb2xvcj0jMDAwMEZGXQor
bGF5ZXIgYXQgKDUxNCwxOCkgc2l6ZSAxMDB4MTAwCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1
MDYsMTApIHNpemUgMTAweDEwMCBbYmdjb2xvcj0jMDAwMEZGXQorbGF5ZXIgYXQgKDYzOCwxOCkg
c2l6ZSAxMDB4MTAwCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg2MzAsMTApIHNpemUgMTAweDEw
MCBbYmdjb2xvcj0jMDAwMEZGXQorbGF5ZXIgYXQgKDE4LDE0Mikgc2l6ZSAxMDB4MTAwCisgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgxMCwxMzQpIHNpemUgMTAweDEwMCBbYmdjb2xvcj0jMDAwMEZG
XQorbGF5ZXIgYXQgKDE0MiwxNDIpIHNpemUgMTAweDEwMAorICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMTM0LDEzNCkgc2l6ZSAxMDB4MTAwIFtiZ2NvbG9yPSMwMDAwRkZdCitsYXllciBhdCAoMjY2
LDE0Mikgc2l6ZSAxMDB4MTAwCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyNTgsMTM0KSBzaXpl
IDEwMHgxMDAgW2JnY29sb3I9IzAwMDBGRl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItZW1wdHktZWxlbWVudC1jcmFzaC1leHBlY3RlZC5w
bmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVyLWVtcHR5LWVs
ZW1lbnQtY3Jhc2gtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjA2OWU1ZWIKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVyLWVtcHR5LWVsZW1lbnQtY3Jhc2gtZXhwZWN0ZWQu
cG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0
ZXJzL2ZpbHRlci1lbXB0eS1lbGVtZW50LWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItZW1wdHktZWxlbWVudC1jcmFzaC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZmNTdiOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0
ZXItZW1wdHktZWxlbWVudC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorSWYgeW91
IGNhbiByZWFkIHRoaXMsIHRoZSB0ZXN0IHBhc3NlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUt
ZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2ZpbHRl
ci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMWJhODRmYQpCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItcHJvcGVydHktY29tcHV0
ZWQtc3R5bGUtZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvY3NzMy9maWx0ZXJzL2ZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVyLXBy
b3BlcnR5LWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45NzYwZWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvY3NzMy9maWx0ZXJzL2ZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkg
c2l6ZSA3ODR4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0
ZXJzL2ZpbHRlci1wcm9wZXJ0eS1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9jc3MzL2ZpbHRlcnMvZmlsdGVyLXByb3BlcnR5LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYmE4NGZhCkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5k
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2ZpbHRlci1wcm9wZXJ0eS1l
eHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9j
c3MzL2ZpbHRlcnMvZmlsdGVyLXByb3BlcnR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItcHJvcGVydHktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3NjBlYmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVyLXByb3BlcnR5LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAor
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2Nr
IHtQfSBhdCAoMCwwKSBzaXplIDc4NHgwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCww
KSBzaXplIDc4NHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2Zp
bHRlcnMvZmlsdGVyLXByb3BlcnR5LXBhcnNpbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2ZpbHRlci1wcm9wZXJ0eS1wYXJzaW5nLWV4cGVjdGVk
LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYmE4NGZhCkJpbmFyeSBm
aWxlcyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJz
L2ZpbHRlci1wcm9wZXJ0eS1wYXJzaW5nLWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItcHJvcGVydHktcGFy
c2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMv
ZmlsdGVyLXByb3BlcnR5LXBhcnNpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjk3NjBlYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVyLXByb3BlcnR5LXBhcnNpbmctZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0
ICgwLDApIHNpemUgNzg0eDAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUg
Nzg0eDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9m
aWx0ZXItcHJvcGVydHktcGFyc2luZy1pbnZhbGlkLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItcHJvcGVydHktcGFyc2luZy1pbnZhbGlk
LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYmE4NGZh
CkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3Nz
My9maWx0ZXJzL2ZpbHRlci1wcm9wZXJ0eS1wYXJzaW5nLWludmFsaWQtZXhwZWN0ZWQucG5nIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2Zp
bHRlci1wcm9wZXJ0eS1wYXJzaW5nLWludmFsaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2ZpbHRlci1wcm9wZXJ0eS1wYXJzaW5nLWludmFsaWQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3NjBlYmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMv
ZmlsdGVyLXByb3BlcnR5LXBhcnNpbmctaW52YWxpZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4
MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2ZpbHRlci1yZWdpb24tZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2ZpbHRlci1y
ZWdpb24tZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhl
ZmY3OTkKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9jc3MzL2ZpbHRlcnMvZmlsdGVyLXJlZ2lvbi1leHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVyLXJlZ2lvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVy
LXJlZ2lvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OGIxMzc4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMv
ZmlsdGVycy9maWx0ZXItcmVnaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItcmVwYWlu
dC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmls
dGVyLXJlcGFpbnQtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjYwNzY3ZTEKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVyLXJlcGFpbnQtZXhwZWN0ZWQucG5nIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2ZpbHRlci1y
ZXBhaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVy
cy9maWx0ZXItcmVwYWludC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZmYyOTFiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L2NzczMvZmlsdGVycy9maWx0ZXItcmVwYWludC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzc6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBydW5SZXBhaW50VGVzdAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVyLXdpdGgtdHJhbnNmb3JtLWV4cGVjdGVkLnBuZyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItd2l0aC10cmFuc2Zv
cm0tZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwNzI2
NGMKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9j
c3MzL2ZpbHRlcnMvZmlsdGVyLXdpdGgtdHJhbnNmb3JtLWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItd2l0
aC10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9m
aWx0ZXJzL2ZpbHRlci13aXRoLXRyYW5zZm9ybS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOGIxMzc4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXItd2l0aC10cmFuc2Zvcm0tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvY3NzMy9maWx0ZXJzL2ZpbHRlcmVkLWlubGluZS1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVyZWQtaW5saW5lLWV4cGVjdGVkLnBuZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGUzYTM5CkJpbmFyeSBmaWxlcyAv
ZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL2ZpbHRl
cmVkLWlubGluZS1leHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVyZWQtaW5saW5lLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9maWx0ZXJlZC1pbmxpbmUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTM3ODkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvZmlsdGVy
ZWQtaW5saW5lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9uZXN0ZWQtZmlsdGVyLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9uZXN0ZWQtZmlsdGVyLWV4
cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWRiNjA5CkJp
bmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9m
aWx0ZXJzL25lc3RlZC1maWx0ZXItZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL25lc3RlZC1maWx0ZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL25lc3RlZC1maWx0ZXIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMTM3ODkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMv
bmVzdGVkLWZpbHRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvbmVzdGVkLWZpbHRlcnMtZXhwZWN0
ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL25lc3RlZC1maWx0
ZXJzLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjIx
OGRlCkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
Y3NzMy9maWx0ZXJzL25lc3RlZC1maWx0ZXJzLWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9uZXN0ZWQtZmlsdGVycy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvbmVzdGVk
LWZpbHRlcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjhiMTM3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3Mz
L2ZpbHRlcnMvbmVzdGVkLWZpbHRlcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL3JlZ2lvbnMtZXhw
YW5kaW5nLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVy
cy9yZWdpb25zLWV4cGFuZGluZy1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZjU1Y2FmOQpCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9yZWdpb25zLWV4cGFuZGluZy1leHBlY3RlZC5w
bmcgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRl
cnMvcmVnaW9ucy1leHBhbmRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvY3NzMy9maWx0ZXJzL3JlZ2lvbnMtZXhwYW5kaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWZlMzJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL3JlZ2lvbnMtZXhwYW5kaW5nLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDE2MCw3Nikgc2l6ZSA0eDE3CisgICAgICAgIHRleHQgcnVuIGF0ICgxNjAsNzYp
IHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgw
CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMyNCw3Nikgc2l6ZSA0eDE3CisgICAgICAg
IHRleHQgcnVuIGF0ICgzMjQsNzYpIHdpZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKK2xheWVyIGF0ICg4LDgpIHNpemUgMTYweDkwCisgIFJlbmRlckltYWdlIHtJTUd9
IGF0ICgwLDApIHNpemUgMTYweDkwCitsYXllciBhdCAoMTcyLDgpIHNpemUgMTYweDkwCisgIFJl
bmRlckltYWdlIHtJTUd9IGF0ICgxNjQsMCkgc2l6ZSAxNjB4OTAKK2xheWVyIGF0ICgzMzYsOCkg
c2l6ZSAxNjB4OTAKKyAgUmVuZGVySW1hZ2Uge0lNR30gYXQgKDMyOCwwKSBzaXplIDE2MHg5MApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL3JlbW92ZS1m
aWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Nz
czMvZmlsdGVycy9yZW1vdmUtZmlsdGVyLXJlbmRlcmluZy1leHBlY3RlZC5wbmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRmNDhkMwpCaW5hcnkgZmlsZXMgL2Rldi9udWxs
IGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9yZW1vdmUtZmlsdGVy
LXJlbmRlcmluZy1leHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvcmVtb3ZlLWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL3JlbW92ZS1maWx0ZXIt
cmVuZGVyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li44ODg5YmE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3Nz
My9maWx0ZXJzL3JlbW92ZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDYgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUg
MjAweDIwMCBbYmdjb2xvcj0jMDA4MDAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvY3NzMy9maWx0ZXJzL3NpbXBsZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnBuZyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2NzczMvZmlsdGVycy9zaW1wbGUtZmlsdGVyLXJlbmRl
cmluZy1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc2
NzRjOApCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L2NzczMvZmlsdGVycy9zaW1wbGUtZmlsdGVyLXJlbmRlcmluZy1leHBlY3RlZC5wbmcgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9jc3MzL2ZpbHRlcnMvc2ltcGxl
LWZpbHRlci1yZW5kZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
Y3NzMy9maWx0ZXJzL3NpbXBsZS1maWx0ZXItcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDA1ZDNhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvY3NzMy9maWx0ZXJzL3NpbXBsZS1maWx0ZXItcmVuZGVy
aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKK2xheWVyIGF0ICg4
LDgpIHNpemUgMjAweDIwMAorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIwMHgy
MDAgW2JnY29sb3I9I0E2NzJBM10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ZjZlZGM5Li43NTc5MWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTItMDEtMDcgIE5vJ2FtIFJvc2VudGhhbCAgPG5v
YW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbVGV4bWFwXSBNb3ZlIHN1cmZhY2Ug
bWFuYWdlbWVudCBmcm9tIFRleHR1cmVNYXBwZXJOb2RlIHRvIFRleHR1cmVNYXBwZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1Nzc5CisKKyAgICAg
ICAgSW5zdGVhZCBvZiBhIFRleHR1cmVNYXBwZXJTdXJmYWNlTWFuYWdlciBjbGFzcyBpbnNpZGUg
b2YgVGV4dHVyZU1hcHBlck5vZGUuY3BwLCB3ZSBub3cKKyAgICAgICAgbWFpbnRhaW4gdGhhdCBz
dXJmYWNlIHBvb2wgaW5zaWRlIG9mIHRoZSBUZXh0dXJlTWFwcGVyIGNsYXNzLiBUaGlzIHdpbGwg
bGF0ZXIgYWxsb3cgdXMgdG8KKyAgICAgICAgYWxsb2NhdGUgaW50ZXJtZWRpYXRlIHN1cmZhY2Ug
ZnJvbSB3aXRoaW4gVGV4dHVyZU1hcHBlckdMLCBhIGZ1bmN0aW9uYWxpdHkgd2UgbmVlZCBmb3IK
KyAgICAgICAgZmlsdGVycy4KKworICAgICAgICBBbHNvLCBzdXJmYWNlcyBhcmUgbm90IGF1dG9t
YXRpY2FsbHkgY3JlYXRlZCB3aXRoIHRoZSB2aWV3cG9ydCBzaXplLCBidXQgcmF0aGVyIHdpdGgg
dGhlCisgICAgICAgIHNpemUgcGFzc2VkIGFzIGEgcGFyYW1ldGVyLiBUaGUgc3VyZmFjZSBmcm9t
IHRoZSBwb29sIGlzIHRoZSBzbWFsbGVzdCB0ZXh0dXJlIHRoYXQgaXMKKyAgICAgICAgbGFyZ2Vy
IHRoYW4gdGhlIHJlcXVpcmVkIHNpemUsIG9yIGFueSB0ZXh0dXJlIGlmIHN1Y2ggdGV4dHVyZSBp
cyBub3QgeWV0IGFsbG9jYXRlZC4KKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRl
IENocmlzdGlhbnNlbi4KKworICAgICAgICBUZXN0cyBpbiBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
ZyBhbHJlYWR5IGNvdmVyIHRoaXMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBB
ZGRlZCBUZXh0dXJlTWFwcGVyLmNwcCB0byB0aGUgYnVpbGQuCisgICAgICAgICogVGFyZ2V0LnBy
aTogQWRkZWQgVGV4dHVyZU1hcHBlci5jcHAgdG8gdGhlIGJ1aWxkLgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaTogQWRkZWQgVGV4dHVyZU1hcHBlci5jcHAgdG8gdGhlIGJ1aWxkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlZmxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVjdXJzaXZlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJOb2RlOjpUZXh0dXJlTWFwcGVyTm9kZSk6CisKKzIwMTItMDEtMDcgIE5vJ2Ft
IFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIEVu
YWJsZSBDU1NfRklMVEVSUyBpbiBRdCBidWlsZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NzcKKworICAgICAgICBFbmFibHMgQ1NTX0ZJTFRFUlMg
YW5kIHVuc2tpcCB0aGUgdGVzdHMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hk
ZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgRmlsdGVyIHRlc3RzIGFyZSBub3cgdW5za2lwcGVk
IGZvciBRdC4KKworICAgICAgICAqIFRhcmdldC5wcmk6IGFkZCBtaXNzaW5nIGZpbGVzIHRvIGJ1
aWxkLgorCiAyMDEyLTAxLTA3ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXhlZCBBTkdMRSBidWlsZCBmb3IgR05VIGFuZCBRVCBicm9rZW4gaW4gaHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEwNDM2MwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggNWMwNTM5Ni4uMWYyNjk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCkBAIC01NjU1LDYgKzU2NTUsNyBAQCBpZiBVU0VfVEVYVFVSRV9NQVBQRVJfQ0FJUk8KIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJOb2RlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJOb2RlLmggXApAQCAtNTY3MCw2ICs1NjcxLDcgQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGV4dHVyZU1h
cHBlckdMLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTm9kZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGY4MmUwNTUuLjRkMTY5ZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQpAQCAtMTE3MCw2ICsxMTcwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcmVuZGVyaW5nL0JpZGlS
dW4uY3BwIFwKICAgICByZW5kZXJpbmcvQ291bnRlck5vZGUuY3BwIFwKICAgICByZW5kZXJpbmcv
RWxsaXBzaXNCb3guY3BwIFwKKyAgICByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3Bw
IFwKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAgXAogICAgIHJlbmRlcmluZy9I
aXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3BwIFwKICAgICByZW5kZXJpbmcvSGl0VGVzdFJlc3Vs
dC5jcHAgXApAQCAtMjI4NCw2ICsyMjg1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5n
L2JyZWFrX2xpbmVzLmggXAogICAgIHJlbmRlcmluZy9Db3VudGVyTm9kZS5oIFwKICAgICByZW5k
ZXJpbmcvRWxsaXBzaXNCb3guaCBcCisgICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVy
LmggXAogICAgIHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmggXAogICAgIHJlbmRlcmluZy9I
aXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCBcCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQu
aCBcCkBAIC0zOTA1LDYgKzM5MDcsNyBAQCBjb250YWlucyhDT05GSUcsIHRleG1hcCkgewogCiAg
ICAgU09VUkNFUyArPSBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1RleHR1cmVNYXBw
ZXJRdC5jcHAgXAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ci5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5v
ZGUuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMTRkYWQwMy4uNmMwMGY2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzkzMSw2ICszOTMxLDcgQEAKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9za2lhL1RyYW5zZm9ybWF0aW9uTWF0cml4U2tpYS5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlci5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzg4NTI2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3Bw
CkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorCisgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlci5oIgorCisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBUZXh0dXJlTWFw
cGVyOjphY3F1aXJlVGV4dHVyZUZyb21Qb29sKGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAg
aWYgKG1fdGV4dHVyZVBvb2wuaXNFbXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0
dXJlPiBzZWxlY3RlZFRleHR1cmUgPSBjcmVhdGVUZXh0dXJlKCk7CisgICAgICAgIHNlbGVjdGVk
VGV4dHVyZS0+cmVzZXQoc2l6ZSwgZmFsc2UpOworICAgICAgICBzZWxlY3RlZFRleHR1cmUtPmxv
Y2soKTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGVkVGV4dHVyZTsKKyAgICB9CisKKyAgICBzaXpl
X3QgaW5kZXggPSAwOworICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBzZWxlY3RlZFRleHR1cmUg
PSBtX3RleHR1cmVQb29sWzBdOworCisgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBtX3RleHR1
cmVQb29sLnNpemUoKTsgKytpKSB7CisgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0
dXJlID0gbV90ZXh0dXJlUG9vbFtpXTsKKworICAgICAgICBJbnRTaXplIHRleHR1cmVTaXplID0g
dGV4dHVyZS0+c2l6ZSgpOworICAgICAgICBJbnRTaXplIHNlbGVjdGVkVGV4dHVyZVNpemUgPSBz
ZWxlY3RlZFRleHR1cmUtPnNpemUoKTsKKworICAgICAgICAvLyBXZSBwcmVmZXIgdG8gcGljayBh
IHRleHR1cmUgdGhhdCdzIGVxdWFsIG9yIGxhcmdlciB0aGFuIHRoZSByZXF1ZXN0ZWQgc2l6ZS4K
KyAgICAgICAgaWYgKHRleHR1cmVTaXplLndpZHRoKCkgPCBzaXplLndpZHRoKCkgfHwgdGV4dHVy
ZVNpemUuaGVpZ2h0KCkgPCBzaXplLmhlaWdodCgpKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgLy8gV2Ugc2VsZWN0IHRoZSBuZXcgdGV4dHVyZSBpZiB0aGUgY3VycmVudGx5IHNl
bGVjdGVkIHRleHR1cmUgaXMgc21hbGxlciB0aGFuIHRoZQorICAgICAgICAvLyByZXF1aXJlZCBz
aXplLCBhbmQgdGhlIG5ldyB0ZXh0dXJlIGhhcyBhIHNtYWxsZXIgYXJlYS4KKyAgICAgICAgaW50
IHRleHR1cmVBcmVhID0gdGV4dHVyZVNpemUud2lkdGgoKSAqIHRleHR1cmVTaXplLmhlaWdodCgp
OworICAgICAgICBpbnQgc2VsZWN0ZWRUZXh0dXJlQXJlYSA9IHNlbGVjdGVkVGV4dHVyZVNpemUu
d2lkdGgoKSAqIHNlbGVjdGVkVGV4dHVyZVNpemUuaGVpZ2h0KCk7CisgICAgICAgIGJvb2wgc2Vs
ZWN0ZWRUZXh0dXJlRml0c1NpemUgPQorICAgICAgICAgICAgICAgIHNlbGVjdGVkVGV4dHVyZVNp
emUud2lkdGgoKSA+PSBzaXplLndpZHRoKCkKKyAgICAgICAgICAgICAgICAmJiBzZWxlY3RlZFRl
eHR1cmVTaXplLmhlaWdodCgpID49IHNpemUuaGVpZ2h0KCk7CisKKyAgICAgICAgaWYgKHNlbGVj
dGVkVGV4dHVyZUZpdHNTaXplICYmIHNlbGVjdGVkVGV4dHVyZUFyZWEgPD0gdGV4dHVyZUFyZWEp
CisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBzZWxlY3RlZFRleHR1cmUgPSB0ZXh0
dXJlOworICAgICAgICBpbmRleCA9IGk7CisgICAgfQorCisgICAgbV90ZXh0dXJlUG9vbC5yZW1v
dmUoaW5kZXgpOworICAgIHNlbGVjdGVkVGV4dHVyZS0+cmVzZXQoc2l6ZSwgZmFsc2UpOworICAg
IHNlbGVjdGVkVGV4dHVyZS0+bG9jaygpOworICAgIHJldHVybiBzZWxlY3RlZFRleHR1cmU7Cit9
CisKK3ZvaWQgVGV4dHVyZU1hcHBlcjo6cmVsZWFzZVRleHR1cmVUb1Bvb2woQml0bWFwVGV4dHVy
ZSogdGV4dHVyZSkKK3sKKyAgICBpZiAoIXRleHR1cmUpCisgICAgICAgIHJldHVybjsKKyAgICBt
X3RleHR1cmVQb29sLmFwcGVuZCh0ZXh0dXJlKTsKKyAgICB0ZXh0dXJlLT51bmxvY2soKTsKK30K
KworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAppbmRleCAyNzA1OGFhLi5kODEzMzNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyLmgKQEAgLTEyNiw2ICsxMjYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJl
Z2luUGFpbnRpbmcoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZW5kUGFpbnRpbmcoKSB7IH0KIAor
ICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlVGV4dHVyZVRvUG9vbChCaXRtYXBUZXh0dXJlKiBzdXJm
YWNlKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gYWNxdWlyZVRleHR1
cmVGcm9tUG9vbChjb25zdCBJbnRTaXplJik7CisKIAogcHJvdGVjdGVkOgogICAgIFRleHR1cmVN
YXBwZXIoKQpAQCAtMTM4LDYgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgVGV4dERyYXdpbmdNb2Rl
RmxhZ3MgbV90ZXh0RHJhd2luZ01vZGU7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV90cmFu
c2Zvcm07CiAgICAgSW50U2l6ZSBtX3ZpZXdwb3J0U2l6ZTsKKyAgICBWZWN0b3I8UmVmUHRyPEJp
dG1hcFRleHR1cmU+ID4gbV90ZXh0dXJlUG9vbDsKIH07CiAKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJO
b2RlLmNwcAppbmRleCA5MTU3ZTIzLi4xNWRmZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5j
cHAKQEAgLTMxLDQwICszMSw2IEBAIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgVGV4dHVyZU1hcHBlclN1cmZhY2VNYW5hZ2VyIHsKLXB1YmxpYzoKLSAgICBUZXh0
dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyOwotICAgIFZlY3RvcjxSZWZQdHI8Qml0bWFwVGV4dHVy
ZT4gPiBzdXJmYWNlczsKLSAgICBJbnRTaXplIHZpZXdwb3J0U2l6ZTsKLQotICAgIFBhc3NSZWZQ
dHI8Qml0bWFwVGV4dHVyZT4gZ2V0SW50ZXJtZWRpYXRlU3VyZmFjZSgpCi0gICAgewotICAgICAg
ICBJbnRTaXplIG5ld1ZpZXdwb3J0U2l6ZSA9IHRleHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgp
OwotICAgICAgICBpZiAobmV3Vmlld3BvcnRTaXplICE9IHZpZXdwb3J0U2l6ZSkgewotICAgICAg
ICAgICAgdmlld3BvcnRTaXplID0gbmV3Vmlld3BvcnRTaXplOwotICAgICAgICAgICAgc3VyZmFj
ZXMuY2xlYXIoKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoc3VyZmFjZXMuaXNFbXB0eSgpKSB7
Ci0gICAgICAgICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gbmV3U3VyZmFjZSA9IHRleHR1cmVN
YXBwZXItPmNyZWF0ZVRleHR1cmUoKTsKLSAgICAgICAgICAgIG5ld1N1cmZhY2UtPnJlc2V0KHZp
ZXdwb3J0U2l6ZSwgZmFsc2UpOwotICAgICAgICAgICAgcmV0dXJuIG5ld1N1cmZhY2UuZ2V0KCk7
Ci0gICAgICAgIH0KLSAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHN1cmZhY2UgPSBzdXJm
YWNlcy5sYXN0KCk7Ci0gICAgICAgIHN1cmZhY2UtPnJlc2V0KHZpZXdwb3J0U2l6ZSwgZmFsc2Up
OwotICAgICAgICBzdXJmYWNlcy5yZW1vdmVMYXN0KCk7Ci0gICAgICAgIHN1cmZhY2UtPmxvY2so
KTsKLSAgICAgICAgcmV0dXJuIHN1cmZhY2UuZ2V0KCk7Ci0gICAgfQotCi0gICAgdm9pZCByZWxl
YXNlSW50ZXJtZWRpYXRlU3VyZmFjZShCaXRtYXBUZXh0dXJlKiBzdXJmYWNlKQotICAgIHsKLSAg
ICAgICAgaWYgKCFzdXJmYWNlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBzdXJmYWNl
cy5hcHBlbmQoc3VyZmFjZSk7Ci0gICAgICAgIHN1cmZhY2UtPnVubG9jaygpOwotICAgIH0KLX07
Ci0KIFRleHR1cmVNYXBwZXJOb2RlKiB0b1RleHR1cmVNYXBwZXJOb2RlKEdyYXBoaWNzTGF5ZXIq
IGxheWVyKQogewogICAgIHJldHVybiBsYXllciA/IHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIobGF5ZXIpLT5ub2RlKCkgOiAwOwpAQCAtMzQ2LDExICszMTIsNyBAQCB2b2lkIFRleHR1cmVN
YXBwZXJOb2RlOjpwYWludCgpCiAgICAgaWYgKG1fc2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmICghbV9zdXJmYWNlTWFuYWdlcikKLSAgICAgICAgbV9zdXJmYWNlTWFu
YWdlciA9IG5ldyBUZXh0dXJlTWFwcGVyU3VyZmFjZU1hbmFnZXI7Ci0gICAgbV9zdXJmYWNlTWFu
YWdlci0+dGV4dHVyZU1hcHBlciA9IG1fdGV4dHVyZU1hcHBlcjsKICAgICBUZXh0dXJlTWFwcGVy
UGFpbnRPcHRpb25zIG9wdDsKLSAgICBvcHQuc3VyZmFjZU1hbmFnZXIgPSBtX3N1cmZhY2VNYW5h
Z2VyOwogICAgIG9wdC50ZXh0dXJlTWFwcGVyID0gbV90ZXh0dXJlTWFwcGVyOwogICAgIG9wdC50
ZXh0dXJlTWFwcGVyLT5iaW5kU3VyZmFjZSgwKTsKICAgICBwYWludFJlY3Vyc2l2ZShvcHQpOwpA
QCAtNDk2LDcgKzQ1OCw3IEBAIGJvb2wgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVmbGVjdGlv
bihjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zCiAKICAgICAvLyBUaGUg
bWFzayBoYXMgdG8gYmUgYWRqdXN0ZWQgdG8gdGFyZ2V0IGNvb3JkaW5hdGVzLgogICAgIGlmICht
YXNrVGV4dHVyZSkgewotICAgICAgICBtYXNrU3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFn
ZXItPmdldEludGVybWVkaWF0ZVN1cmZhY2UoKTsKKyAgICAgICAgbWFza1N1cmZhY2UgPSBvcHRp
b25zLnRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJl
TWFwcGVyLT52aWV3cG9ydFNpemUoKSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+
YmluZFN1cmZhY2UobWFza1N1cmZhY2UuZ2V0KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVN
YXBwZXItPmRyYXdUZXh0dXJlKCptYXNrVGV4dHVyZS5nZXQoKSwgZW50aXJlUmVjdCgpLCBtX3Ry
YW5zZm9ybXMudGFyZ2V0LCAxLCAwKTsKICAgICAgICAgbWFza1RleHR1cmUgPSBtYXNrU3VyZmFj
ZTsKQEAgLTUwNCw3ICs0NjYsNyBAQCBib29sIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlZmxl
Y3Rpb24oY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucwogCiAgICAgLy8g
VGhlIHJlcGxpY2EncyBtYXNrIGhhcyB0byBiZSBhZGp1c3RlZCB0byB0YXJnZXQgY29vcmRpbmF0
ZXMuCiAgICAgaWYgKHJlcGxpY2FNYXNrVGV4dHVyZSkgewotICAgICAgICByZXBsaWNhTWFza1N1
cmZhY2UgPSBvcHRpb25zLnN1cmZhY2VNYW5hZ2VyLT5nZXRJbnRlcm1lZGlhdGVTdXJmYWNlKCk7
CisgICAgICAgIHJlcGxpY2FNYXNrU3VyZmFjZSA9IG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YWNx
dWlyZVRleHR1cmVGcm9tUG9vbChvcHRpb25zLnRleHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgp
KTsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5iaW5kU3VyZmFjZShyZXBsaWNhTWFz
a1N1cmZhY2UuZ2V0KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0
dXJlKCpyZXBsaWNhTWFza1RleHR1cmUuZ2V0KCksIGVudGlyZVJlY3QoKSwgbV90cmFuc2Zvcm1z
LnRhcmdldCwgMSwgMCk7CiAgICAgICAgIHJlcGxpY2FNYXNrVGV4dHVyZSA9IHJlcGxpY2FNYXNr
U3VyZmFjZTsKQEAgLTUxMiwyMSArNDc0LDIxIEBAIGJvb2wgVGV4dHVyZU1hcHBlck5vZGU6OnBh
aW50UmVmbGVjdGlvbihjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zCiAK
ICAgICAvLyBXZSBtaWdodCBuZWVkIHRvIGFwcGx5IHRoZSBtYXNrIG9mIHRoZSBjb250ZW50IGxh
eWVyIGJlZm9yZSB3ZSBkcmF3IHRoZSByZWZsZWN0aW9uLCBhcyB0aGVyZSBtaWdodCBiZSB5ZXQg
YW5vdGhlciBtYXNrIGZvciB0aGUgcmVmbGVjdGlvbiBpdHNlbGYuCiAgICAgaWYgKHVzZUludGVy
bWVkaWF0ZUJ1ZmZlckZvck1hc2spIHsKLSAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IG1h
c2tTdXJmYWNlID0gb3B0aW9ucy5zdXJmYWNlTWFuYWdlci0+Z2V0SW50ZXJtZWRpYXRlU3VyZmFj
ZSgpOworICAgICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gbWFza1N1cmZhY2UgPSBvcHRpb25z
LnRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFw
cGVyLT52aWV3cG9ydFNpemUoKSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+Ymlu
ZFN1cmZhY2UobWFza1N1cmZhY2UuZ2V0KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBw
ZXItPmRyYXdUZXh0dXJlKCpzdXJmYWNlLmdldCgpLCB2aWV3cG9ydFJlY3QsIFRyYW5zZm9ybWF0
aW9uTWF0cml4KCksIDEsIG1hc2tUZXh0dXJlLmdldCgpKTsKLSAgICAgICAgb3B0aW9ucy5zdXJm
YWNlTWFuYWdlci0+cmVsZWFzZUludGVybWVkaWF0ZVN1cmZhY2Uoc3VyZmFjZS5nZXQoKSk7Cisg
ICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+cmVsZWFzZVRleHR1cmVUb1Bvb2woc3VyZmFj
ZS5nZXQoKSk7CiAgICAgICAgIHN1cmZhY2UgPSBtYXNrU3VyZmFjZTsKICAgICAgICAgbWFza1Rl
eHR1cmUuY2xlYXIoKTsKICAgICB9CiAKICAgICAvLyBXZSBibGVuZCB0aGUgbGF5ZXIgYW5kIGl0
cyByZXBsaWNhIGluIGFuIGludGVybWVkaWF0ZSBidWZmZXIgYmVmb3JlIGJsZW5kaW5nIGludG8g
dGhlIHRhcmdldCBzdXJmYWNlLgogICAgIGlmICh1c2VJbnRlcm1lZGlhdGVCdWZmZXJGb3JSZXBs
aWNhKSB7Ci0gICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiByZXBsaWNhU3VyZmFjZSA9IG9w
dGlvbnMuc3VyZmFjZU1hbmFnZXItPmdldEludGVybWVkaWF0ZVN1cmZhY2UoKTsKKyAgICAgICAg
UmVmUHRyPEJpdG1hcFRleHR1cmU+IHJlcGxpY2FTdXJmYWNlID0gb3B0aW9ucy50ZXh0dXJlTWFw
cGVyLT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKG9wdGlvbnMudGV4dHVyZU1hcHBlci0+dmlld3Bv
cnRTaXplKCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmJpbmRTdXJmYWNlKHJl
cGxpY2FTdXJmYWNlLmdldCgpKTsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3
VGV4dHVyZSgqc3VyZmFjZS5nZXQoKSwgdmlld3BvcnRSZWN0LCBtX3RyYW5zZm9ybXMucmVwbGlj
YSwgbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPm1fb3BhY2l0eSwgcmVwbGljYU1hc2tUZXh0dXJlLmdl
dCgpKTsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3VGV4dHVyZSgqc3VyZmFj
ZS5nZXQoKSwgdmlld3BvcnRSZWN0LCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAxLCBtYXNrVGV4
dHVyZS5nZXQoKSk7Ci0gICAgICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRl
cm1lZGlhdGVTdXJmYWNlKHN1cmZhY2UuZ2V0KCkpOworICAgICAgICBvcHRpb25zLnRleHR1cmVN
YXBwZXItPnJlbGVhc2VUZXh0dXJlVG9Qb29sKHN1cmZhY2UuZ2V0KCkpOwogICAgICAgICBzdXJm
YWNlID0gcmVwbGljYVN1cmZhY2U7CiAgICAgfQogCkBAIC01MzksOCArNTAxLDggQEAgYm9vbCBU
ZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnRSZWZsZWN0aW9uKGNvbnN0IFRleHR1cmVNYXBwZXJQYWlu
dE9wdGlvbnMmIG9wdGlvbnMKICAgICAvLyBEcmF3IHRoZSBvcmlnaW5hbC4KICAgICBvcHRpb25z
LnRleHR1cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpzdXJmYWNlLmdldCgpLCB2aWV3cG9ydFJlY3Qs
IFRyYW5zZm9ybWF0aW9uTWF0cml4KCksIG9wdGlvbnMub3BhY2l0eSwgbWFza1RleHR1cmUuZ2V0
KCkpOwogCi0gICAgb3B0aW9ucy5zdXJmYWNlTWFuYWdlci0+cmVsZWFzZUludGVybWVkaWF0ZVN1
cmZhY2UobWFza1N1cmZhY2UuZ2V0KCkpOwotICAgIG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJl
bGVhc2VJbnRlcm1lZGlhdGVTdXJmYWNlKHJlcGxpY2FNYXNrU3VyZmFjZS5nZXQoKSk7CisgICAg
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5yZWxlYXNlVGV4dHVyZVRvUG9vbChtYXNrU3VyZmFjZS5n
ZXQoKSk7CisgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5yZWxlYXNlVGV4dHVyZVRvUG9vbChy
ZXBsaWNhTWFza1N1cmZhY2UuZ2V0KCkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC01NzAs
MTIgKzUzMiwxMiBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlY3Vyc2l2ZShUZXh0
dXJlTWFwcGVyUGFpbnRPcHRpb25zIG9wdGlvbnMpCiAKICAgICAvLyBUaGUgbWFzayBoYXMgdG8g
YmUgYWRqdXN0ZWQgdG8gdGFyZ2V0IGNvb3JkaW5hdGVzLgogICAgIGlmIChtX3N0YXRlLm1hc2tM
YXllcikgewotICAgICAgICBtYXNrU3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPmdl
dEludGVybWVkaWF0ZVN1cmZhY2UoKTsKKyAgICAgICAgbWFza1N1cmZhY2UgPSBvcHRpb25zLnRl
eHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFwcGVy
LT52aWV3cG9ydFNpemUoKSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmluZFN1
cmZhY2UobWFza1N1cmZhY2UuZ2V0KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIt
PmRyYXdUZXh0dXJlKCptX3N0YXRlLm1hc2tMYXllci0+dGV4dHVyZSgpLCBlbnRpcmVSZWN0KCks
IG1fdHJhbnNmb3Jtcy50YXJnZXQsIDEuMCwgMCk7CiAgICAgfQogCi0gICAgc3VyZmFjZSA9IG9w
dGlvbnMuc3VyZmFjZU1hbmFnZXItPmdldEludGVybWVkaWF0ZVN1cmZhY2UoKTsKKyAgICBzdXJm
YWNlID0gb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKG9wdGlv
bnMudGV4dHVyZU1hcHBlci0+dmlld3BvcnRTaXplKCkpOwogICAgIG9wdGlvbnNGb3JEZXNjZW5k
YW50cy5zdXJmYWNlID0gc3VyZmFjZS5nZXQoKTsKICAgICBvcHRpb25zLmlzU3VyZmFjZSA9IHRy
dWU7CiAgICAgb3B0aW9uc0ZvckRlc2NlbmRhbnRzLm9wYWNpdHkgPSAxOwpAQCAtNTg4LDggKzU1
MCw4IEBAIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVjdXJzaXZlKFRleHR1cmVNYXBw
ZXJQYWludE9wdGlvbnMgb3B0aW9ucykKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5k
cmF3VGV4dHVyZSgqc3VyZmFjZS5nZXQoKSwgdmlld3BvcnRSZWN0LCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCgpLCBvcHRpb25zLm9wYWNpdHksIDApOwogICAgIH0KIAotICAgIG9wdGlvbnMuc3VyZmFj
ZU1hbmFnZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJmYWNlKHN1cmZhY2UuZ2V0KCkpOwotICAg
IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPnJlbGVhc2VJbnRlcm1lZGlhdGVTdXJmYWNlKG1hc2tT
dXJmYWNlLmdldCgpKTsKKyAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPnJlbGVhc2VUZXh0dXJl
VG9Qb29sKHN1cmZhY2UuZ2V0KCkpOworICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+cmVsZWFz
ZVRleHR1cmVUb1Bvb2wobWFza1N1cmZhY2UuZ2V0KCkpOwogfQogCiBUZXh0dXJlTWFwcGVyTm9k
ZTo6flRleHR1cmVNYXBwZXJOb2RlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgKaW5kZXggZmM0Nzli
YS4uMmU5YzJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgKQEAgLTM5LDE3ICszOSwyMCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcjsKIGNs
YXNzIFRleHR1cmVNYXBwZXJOb2RlOwogY2xhc3MgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI7
Ci1jbGFzcyBUZXh0dXJlTWFwcGVyU3VyZmFjZU1hbmFnZXI7CiAKIGNsYXNzIFRleHR1cmVNYXBw
ZXJQYWludE9wdGlvbnMgewogcHVibGljOgogICAgIEJpdG1hcFRleHR1cmUqIHN1cmZhY2U7CiAg
ICAgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcjsKLSAgICBUZXh0dXJlTWFwcGVyU3VyZmFj
ZU1hbmFnZXIqIHN1cmZhY2VNYW5hZ2VyOwogCiAgICAgZmxvYXQgb3BhY2l0eTsKICAgICBib29s
IGlzU3VyZmFjZTsKLSAgICBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zKCkgOiBzdXJmYWNlKDAp
LCB0ZXh0dXJlTWFwcGVyKDApLCBvcGFjaXR5KDEuMCksIGlzU3VyZmFjZShmYWxzZSkgeyB9Cisg
ICAgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucygpCisgICAgICAgIDogc3VyZmFjZSgwKQorICAg
ICAgICAsIHRleHR1cmVNYXBwZXIoMCkKKyAgICAgICAgLCBvcGFjaXR5KDEpCisgICAgICAgICwg
aXNTdXJmYWNlKGZhbHNlKQorICAgIHsgfQogfTsKIAogY2xhc3MgVGV4dHVyZU1hcHBlckFuaW1h
dGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFRleHR1cmVNYXBwZXJBbmltYXRpb24+IHsKQEAgLTEz
NSw3ICsxMzgsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIFRleHR1cmVNYXBwZXJOb2RlKCkK
LSAgICAgICAgOiBtX3BhcmVudCgwKSwgbV9lZmZlY3RUYXJnZXQoMCksIG1fb3BhY2l0eSgxLjAp
LCBtX3N1cmZhY2VNYW5hZ2VyKDApLCBtX3RleHR1cmVNYXBwZXIoMCkgeyB9CisgICAgICAgIDog
bV9wYXJlbnQoMCksIG1fZWZmZWN0VGFyZ2V0KDApLCBtX29wYWNpdHkoMS4wKSwgbV90ZXh0dXJl
TWFwcGVyKDApIHsgfQogCiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlck5vZGUoKTsKIApAQCAt
MzE3LDcgKzMyMCw2IEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIFN0YXRlIG1fc3RhdGU7Ci0g
ICAgVGV4dHVyZU1hcHBlclN1cmZhY2VNYW5hZ2VyKiBtX3N1cmZhY2VNYW5hZ2VyOwogICAgIFRl
eHR1cmVNYXBwZXIqIG1fdGV4dHVyZU1hcHBlcjsKIAogICAgIFZlY3RvcjxSZWZQdHI8VGV4dHVy
ZU1hcHBlckFuaW1hdGlvbj4gPiBtX2FuaW1hdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDA5ZGE4
YWIuLjNmMTc0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDEtMDcg
IE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBb
UXRdIEVuYWJsZSBDU1NfRklMVEVSUyBpbiBRdCBidWlsZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NzcKKworICAgICAgICBGb3Igbm93LCBkaXNh
bGxvdyBjb21wb3NpdGluZyBmb3IgZmlsdGVycy4gV2Ugd2lsbCBjaGFuZ2UgdGhhdCB0cmlnZ2Vy
IHdoZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1
Nzc4IGlzIGltcGxlbWVudGVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUg
Q2hyaXN0aWFuc2VuLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmFsbG93ZWRDb21wb3NpdGlu
Z1RyaWdnZXJzKToKKwogMjAxMi0wMS0wNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNDIzMS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5j
cHAKaW5kZXggZWVkODlkYy4uZjEyOWI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTYzMCw3ICs2MzAsNyBAQCB2b2lk
IENocm9tZUNsaWVudFF0OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKCkKIENocm9tZUNs
aWVudDo6Q29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgQ2hyb21lQ2xpZW50UXQ6OmFsbG93ZWRDb21w
b3NpdGluZ1RyaWdnZXJzKCkgY29uc3QKIHsKICAgICBpZiAocGxhdGZvcm1QYWdlQ2xpZW50KCkg
JiYgcGxhdGZvcm1QYWdlQ2xpZW50KCktPmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkK
LSAgICAgICAgcmV0dXJuIEFsbFRyaWdnZXJzOworICAgICAgICByZXR1cm4gVGhyZWVEVHJhbnNm
b3JtVHJpZ2dlciB8IFZpZGVvVHJpZ2dlciB8IENhbnZhc1RyaWdnZXIgfCBBbmltYXRpb25Ucmln
Z2VyOwogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMjM2NjAyYi4uYjYzNWQ0NiAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAx
LTA3ICBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAg
ICAgW1F0XSBFbmFibGUgQ1NTX0ZJTFRFUlMgaW4gUXQgYnVpbGQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1Nzc3CisKKyAgICAgICAgQWRkIHRoZSBD
U1NfRklMVEVSUyBmZWF0dXJlIGZsYWcgdG8gUXQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2Vu
bmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgKiBxbWFrZS9ta3NwZWNzL2ZlYXR1
cmVzL2ZlYXR1cmVzLnByZjoKKwogMjAxMi0wMS0wNyAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJz
ZWtAZ21haWwuY29tPgogCiAgICAgICAgIFtHVEtdIEVuYWJsZSByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUgaW4gYnVpbGQtd2Via2l0CmRpZmYgLS1naXQgYS9Ub29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1
cmVzL2ZlYXR1cmVzLnByZiBiL1Rvb2xzL3FtYWtlL21rc3BlY3MvZmVhdHVyZXMvZmVhdHVyZXMu
cHJmCmluZGV4IDQzOGVjOTEuLjc5YzkwNGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL3FtYWtlL21rc3Bl
Y3MvZmVhdHVyZXMvZmVhdHVyZXMucHJmCisrKyBiL1Rvb2xzL3FtYWtlL21rc3BlY3MvZmVhdHVy
ZXMvZmVhdHVyZXMucHJmCkBAIC02NCw2ICs2NCw3IEBAIGhhdmVRdCg0KTp1bml4OiFtYWM6IWVt
YmVkZGVkIHsKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfUVVPVEE9Lik6IERFRklORVMgKz0g
RU5BQkxFX1FVT1RBPTAKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREFTSEJPQVJEX1NVUFBP
UlQ9Lik6IERFRklORVMgKz0gRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUPTAKICFjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfRklMVEVSUz0uKTogREVGSU5FUyArPSBFTkFCTEVfRklMVEVSUz0xCish
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX0NTU19GSUxURVJTPS4pOiBERUZJTkVTICs9IEVOQUJM
RV9DU1NfRklMVEVSUz0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NIQVJFRF9XT1JLRVJT
PS4pOiBERUZJTkVTICs9IEVOQUJMRV9TSEFSRURfV09SS0VSUz0xCiAhY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX1dPUktFUlM9Lik6IERFRklORVMgKz0gRU5BQkxFX1dPUktFUlM9MQogIWNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9ERVRBSUxTPS4pOiBERUZJTkVTICs9IEVOQUJMRV9ERVRBSUxT
PTEKQEAgLTIxNCw2ICsyMTUsNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU0hBUkVEX1dP
UktFUlM9MSk6IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRQogY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1ZJREVPPTEpOiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBF
TkFCTEVfVklERU89MQogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1hTTFQ9MSk6IEZFQVRVUkVf
REVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9YU0xUPTEKIGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9GSUxURVJTPTEpOiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfRklM
VEVSUz0xCitjb250YWlucyhERUZJTkVTLCBFTkFCTEVfQ1NTX0ZJTFRFUlM9MSk6IEZFQVRVUkVf
REVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9DU1NfRklMVEVSUz0xCiBjb250YWlucyhERUZJ
TkVTLCBFTkFCTEVfU1ZHPTEpOiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVf
U1ZHPTEKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkdfRk9OVFM9MSk6IEZFQVRVUkVfREVG
SU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRk9OVFM9MQogY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVI9MSk6IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBU
ICs9IEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSPTEK
</data>
<flag name="commit-queue"
          id="122184"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121637</attachid>
            <date>2012-01-09 02:49:13 -0800</date>
            <delta_ts>2012-01-09 03:54:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch2.diff</filename>
            <type>text/plain</type>
            <size>17065</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3ZjZlZGM5Li44MjM2Njk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTItMDEtMDcgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KKworICAgICAgICBbVGV4bWFwXSBNb3ZlIHN1cmZhY2UgbWFuYWdlbWVudCBmcm9tIFRleHR1
cmVNYXBwZXJOb2RlIHRvIFRleHR1cmVNYXBwZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc1Nzc5CisKKyAgICAgICAgSW5zdGVhZCBvZiBhIFRleHR1
cmVNYXBwZXJTdXJmYWNlTWFuYWdlciBjbGFzcyBpbnNpZGUgb2YgVGV4dHVyZU1hcHBlck5vZGUu
Y3BwLCB3ZSBub3cKKyAgICAgICAgbWFpbnRhaW4gdGhhdCBzdXJmYWNlIHBvb2wgaW5zaWRlIG9m
IHRoZSBUZXh0dXJlTWFwcGVyIGNsYXNzLiBUaGlzIHdpbGwgbGF0ZXIgYWxsb3cgdXMgdG8KKyAg
ICAgICAgYWxsb2NhdGUgaW50ZXJtZWRpYXRlIHN1cmZhY2UgZnJvbSB3aXRoaW4gVGV4dHVyZU1h
cHBlckdMLCBhIGZ1bmN0aW9uYWxpdHkgd2UgbmVlZCBmb3IKKyAgICAgICAgZmlsdGVycy4KKwor
ICAgICAgICBBbHNvLCBzdXJmYWNlcyBhcmUgbm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB3aXRo
IHRoZSB2aWV3cG9ydCBzaXplLCBidXQgcmF0aGVyIHdpdGggdGhlCisgICAgICAgIHNpemUgcGFz
c2VkIGFzIGEgcGFyYW1ldGVyLiBUaGUgc3VyZmFjZSBmcm9tIHRoZSBwb29sIGlzIHRoZSBzbWFs
bGVzdCB0ZXh0dXJlIHRoYXQgaXMKKyAgICAgICAgbGFyZ2VyIHRoYW4gdGhlIHJlcXVpcmVkIHNp
emUsIG9yIGFueSB0ZXh0dXJlIGlmIHN1Y2ggdGV4dHVyZSBpcyBub3QgeWV0IGFsbG9jYXRlZC4K
KworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KKworICAg
ICAgICBUZXN0cyBpbiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZyBhbHJlYWR5IGNvdmVyIHRoaXMu
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBBZGRlZCBUZXh0dXJlTWFwcGVyLmNw
cCB0byB0aGUgYnVpbGQuCisgICAgICAgICogVGFyZ2V0LnByaTogQWRkZWQgVGV4dHVyZU1hcHBl
ci5jcHAgdG8gdGhlIGJ1aWxkLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgVGV4dHVy
ZU1hcHBlci5jcHAgdG8gdGhlIGJ1aWxkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1h
cHBlck5vZGU6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpw
YWludFJlZmxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OnBh
aW50UmVjdXJzaXZlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlck5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpUZXh0
dXJlTWFwcGVyTm9kZSk6CisKIDIwMTItMDEtMDcgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeGVkIEFOR0xFIGJ1aWxkIGZvciBHTlUgYW5kIFFUIGJyb2tl
biBpbiBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTA0MzYzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCA1YzA1Mzk2Li4xZjI2OTVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTU2NTUsNiArNTY1NSw3IEBAIGlmIFVTRV9URVhUVVJFX01BUFBF
Ul9DQUlSTwogd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlck5vZGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaCBcCkBAIC01NjcwLDYgKzU2NzEsNyBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9UZXh0dXJlTWFwcGVyR0wuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJOb2RlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJOb2RlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggZjgyZTA1NS4uNGQxNjlkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCkBAIC0xMTcwLDYgKzExNzAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICByZW5k
ZXJpbmcvQmlkaVJ1bi5jcHAgXAogICAgIHJlbmRlcmluZy9Db3VudGVyTm9kZS5jcHAgXAogICAg
IHJlbmRlcmluZy9FbGxpcHNpc0JveC5jcHAgXAorICAgIHJlbmRlcmluZy9GaWx0ZXJFZmZlY3RS
ZW5kZXJlci5jcHAgXAogICAgIHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcCBcCiAgICAg
cmVuZGVyaW5nL0hpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAgXAogICAgIHJlbmRlcmluZy9I
aXRUZXN0UmVzdWx0LmNwcCBcCkBAIC0yMjg0LDYgKzIyODUsNyBAQCBIRUFERVJTICs9IFwKICAg
ICByZW5kZXJpbmcvYnJlYWtfbGluZXMuaCBcCiAgICAgcmVuZGVyaW5nL0NvdW50ZXJOb2RlLmgg
XAogICAgIHJlbmRlcmluZy9FbGxpcHNpc0JveC5oIFwKKyAgICByZW5kZXJpbmcvRmlsdGVyRWZm
ZWN0UmVuZGVyZXIuaCBcCiAgICAgcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuaCBcCiAgICAg
cmVuZGVyaW5nL0hpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5oIFwKICAgICByZW5kZXJpbmcvSGl0
VGVzdFJlc3VsdC5oIFwKQEAgLTM5MDUsNiArMzkwNyw3IEBAIGNvbnRhaW5zKENPTkZJRywgdGV4
bWFwKSB7CiAKICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
VGV4dHVyZU1hcHBlclF0LmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyTm9kZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAxNGRhZDAz
Li42YzAwZjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zOTMxLDYgKzM5MzEsNyBAQAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvVHJhbnNmb3JtYXRpb25NYXRyaXhTa2lhLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjODg1MjYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlci5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoKKyBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisKKyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVy
LmgiCisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01B
UFBFUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+
IFRleHR1cmVNYXBwZXI6OmFjcXVpcmVUZXh0dXJlRnJvbVBvb2woY29uc3QgSW50U2l6ZSYgc2l6
ZSkKK3sKKyAgICBpZiAobV90ZXh0dXJlUG9vbC5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmVmUHRy
PEJpdG1hcFRleHR1cmU+IHNlbGVjdGVkVGV4dHVyZSA9IGNyZWF0ZVRleHR1cmUoKTsKKyAgICAg
ICAgc2VsZWN0ZWRUZXh0dXJlLT5yZXNldChzaXplLCBmYWxzZSk7CisgICAgICAgIHNlbGVjdGVk
VGV4dHVyZS0+bG9jaygpOworICAgICAgICByZXR1cm4gc2VsZWN0ZWRUZXh0dXJlOworICAgIH0K
KworICAgIHNpemVfdCBpbmRleCA9IDA7CisgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHNlbGVj
dGVkVGV4dHVyZSA9IG1fdGV4dHVyZVBvb2xbMF07CisKKyAgICBmb3IgKHNpemVfdCBpID0gMTsg
aSA8IG1fdGV4dHVyZVBvb2wuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgUmVmUHRyPEJpdG1hcFRl
eHR1cmU+IHRleHR1cmUgPSBtX3RleHR1cmVQb29sW2ldOworCisgICAgICAgIEludFNpemUgdGV4
dHVyZVNpemUgPSB0ZXh0dXJlLT5zaXplKCk7CisgICAgICAgIEludFNpemUgc2VsZWN0ZWRUZXh0
dXJlU2l6ZSA9IHNlbGVjdGVkVGV4dHVyZS0+c2l6ZSgpOworCisgICAgICAgIC8vIFdlIHByZWZl
ciB0byBwaWNrIGEgdGV4dHVyZSB0aGF0J3MgZXF1YWwgb3IgbGFyZ2VyIHRoYW4gdGhlIHJlcXVl
c3RlZCBzaXplLgorICAgICAgICBpZiAodGV4dHVyZVNpemUud2lkdGgoKSA8IHNpemUud2lkdGgo
KSB8fCB0ZXh0dXJlU2l6ZS5oZWlnaHQoKSA8IHNpemUuaGVpZ2h0KCkpCisgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICAvLyBXZSBzZWxlY3QgdGhlIG5ldyB0ZXh0dXJlIGlmIHRoZSBj
dXJyZW50bHkgc2VsZWN0ZWQgdGV4dHVyZSBpcyBzbWFsbGVyIHRoYW4gdGhlCisgICAgICAgIC8v
IHJlcXVpcmVkIHNpemUsIGFuZCB0aGUgbmV3IHRleHR1cmUgaGFzIGEgc21hbGxlciBhcmVhLgor
ICAgICAgICBpbnQgdGV4dHVyZUFyZWEgPSB0ZXh0dXJlU2l6ZS53aWR0aCgpICogdGV4dHVyZVNp
emUuaGVpZ2h0KCk7CisgICAgICAgIGludCBzZWxlY3RlZFRleHR1cmVBcmVhID0gc2VsZWN0ZWRU
ZXh0dXJlU2l6ZS53aWR0aCgpICogc2VsZWN0ZWRUZXh0dXJlU2l6ZS5oZWlnaHQoKTsKKyAgICAg
ICAgYm9vbCBzZWxlY3RlZFRleHR1cmVGaXRzU2l6ZSA9CisgICAgICAgICAgICAgICAgc2VsZWN0
ZWRUZXh0dXJlU2l6ZS53aWR0aCgpID49IHNpemUud2lkdGgoKQorICAgICAgICAgICAgICAgICYm
IHNlbGVjdGVkVGV4dHVyZVNpemUuaGVpZ2h0KCkgPj0gc2l6ZS5oZWlnaHQoKTsKKworICAgICAg
ICBpZiAoc2VsZWN0ZWRUZXh0dXJlRml0c1NpemUgJiYgc2VsZWN0ZWRUZXh0dXJlQXJlYSA8PSB0
ZXh0dXJlQXJlYSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHNlbGVjdGVkVGV4
dHVyZSA9IHRleHR1cmU7CisgICAgICAgIGluZGV4ID0gaTsKKyAgICB9CisKKyAgICBtX3RleHR1
cmVQb29sLnJlbW92ZShpbmRleCk7CisgICAgc2VsZWN0ZWRUZXh0dXJlLT5yZXNldChzaXplLCBm
YWxzZSk7CisgICAgc2VsZWN0ZWRUZXh0dXJlLT5sb2NrKCk7CisgICAgcmV0dXJuIHNlbGVjdGVk
VGV4dHVyZTsKK30KKwordm9pZCBUZXh0dXJlTWFwcGVyOjpyZWxlYXNlVGV4dHVyZVRvUG9vbChC
aXRtYXBUZXh0dXJlKiB0ZXh0dXJlKQoreworICAgIGlmICghdGV4dHVyZSkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fdGV4dHVyZVBvb2wuYXBwZW5kKHRleHR1cmUpOworICAgIHRleHR1cmUtPnVu
bG9jaygpOworfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCmluZGV4IDI3MDU4YWEuLmQ4MTMz
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXIuaApAQCAtMTI2LDYgKzEyNiw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgYmVnaW5QYWludGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBlbmRQYWludGlu
ZygpIHsgfQogCisgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VUZXh0dXJlVG9Qb29sKEJpdG1hcFRl
eHR1cmUqIHN1cmZhY2UpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBh
Y3F1aXJlVGV4dHVyZUZyb21Qb29sKGNvbnN0IEludFNpemUmKTsKKwogCiBwcm90ZWN0ZWQ6CiAg
ICAgVGV4dHVyZU1hcHBlcigpCkBAIC0xMzgsNiArMTQxLDcgQEAgcHJpdmF0ZToKICAgICBUZXh0
RHJhd2luZ01vZGVGbGFncyBtX3RleHREcmF3aW5nTW9kZTsKICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBtX3RyYW5zZm9ybTsKICAgICBJbnRTaXplIG1fdmlld3BvcnRTaXplOworICAgIFZlY3Rv
cjxSZWZQdHI8Qml0bWFwVGV4dHVyZT4gPiBtX3RleHR1cmVQb29sOwogfTsKIAogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlck5vZGUuY3BwCmluZGV4IDkxNTdlMjMuLjE1ZGZmNWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJOb2RlLmNwcApAQCAtMzEsNDAgKzMxLDYgQEAgbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBUZXh0dXJlTWFwcGVyU3VyZmFjZU1hbmFnZXIgewotcHVibGlj
OgotICAgIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXI7Ci0gICAgVmVjdG9yPFJlZlB0cjxC
aXRtYXBUZXh0dXJlPiA+IHN1cmZhY2VzOwotICAgIEludFNpemUgdmlld3BvcnRTaXplOwotCi0g
ICAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBnZXRJbnRlcm1lZGlhdGVTdXJmYWNlKCkKLSAg
ICB7Ci0gICAgICAgIEludFNpemUgbmV3Vmlld3BvcnRTaXplID0gdGV4dHVyZU1hcHBlci0+dmll
d3BvcnRTaXplKCk7Ci0gICAgICAgIGlmIChuZXdWaWV3cG9ydFNpemUgIT0gdmlld3BvcnRTaXpl
KSB7Ci0gICAgICAgICAgICB2aWV3cG9ydFNpemUgPSBuZXdWaWV3cG9ydFNpemU7Ci0gICAgICAg
ICAgICBzdXJmYWNlcy5jbGVhcigpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChzdXJmYWNlcy5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBuZXdTdXJmYWNl
ID0gdGV4dHVyZU1hcHBlci0+Y3JlYXRlVGV4dHVyZSgpOwotICAgICAgICAgICAgbmV3U3VyZmFj
ZS0+cmVzZXQodmlld3BvcnRTaXplLCBmYWxzZSk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3U3Vy
ZmFjZS5nZXQoKTsKLSAgICAgICAgfQotICAgICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gc3Vy
ZmFjZSA9IHN1cmZhY2VzLmxhc3QoKTsKLSAgICAgICAgc3VyZmFjZS0+cmVzZXQodmlld3BvcnRT
aXplLCBmYWxzZSk7Ci0gICAgICAgIHN1cmZhY2VzLnJlbW92ZUxhc3QoKTsKLSAgICAgICAgc3Vy
ZmFjZS0+bG9jaygpOwotICAgICAgICByZXR1cm4gc3VyZmFjZS5nZXQoKTsKLSAgICB9Ci0KLSAg
ICB2b2lkIHJlbGVhc2VJbnRlcm1lZGlhdGVTdXJmYWNlKEJpdG1hcFRleHR1cmUqIHN1cmZhY2Up
Ci0gICAgewotICAgICAgICBpZiAoIXN1cmZhY2UpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIHN1cmZhY2VzLmFwcGVuZChzdXJmYWNlKTsKLSAgICAgICAgc3VyZmFjZS0+dW5sb2NrKCk7
Ci0gICAgfQotfTsKLQogVGV4dHVyZU1hcHBlck5vZGUqIHRvVGV4dHVyZU1hcHBlck5vZGUoR3Jh
cGhpY3NMYXllciogbGF5ZXIpCiB7CiAgICAgcmV0dXJuIGxheWVyID8gdG9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcihsYXllciktPm5vZGUoKSA6IDA7CkBAIC0zNDYsMTEgKzMxMiw3IEBAIHZv
aWQgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50KCkKICAgICBpZiAobV9zaXplLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFtX3N1cmZhY2VNYW5hZ2VyKQotICAgICAgICBt
X3N1cmZhY2VNYW5hZ2VyID0gbmV3IFRleHR1cmVNYXBwZXJTdXJmYWNlTWFuYWdlcjsKLSAgICBt
X3N1cmZhY2VNYW5hZ2VyLT50ZXh0dXJlTWFwcGVyID0gbV90ZXh0dXJlTWFwcGVyOwogICAgIFRl
eHR1cmVNYXBwZXJQYWludE9wdGlvbnMgb3B0OwotICAgIG9wdC5zdXJmYWNlTWFuYWdlciA9IG1f
c3VyZmFjZU1hbmFnZXI7CiAgICAgb3B0LnRleHR1cmVNYXBwZXIgPSBtX3RleHR1cmVNYXBwZXI7
CiAgICAgb3B0LnRleHR1cmVNYXBwZXItPmJpbmRTdXJmYWNlKDApOwogICAgIHBhaW50UmVjdXJz
aXZlKG9wdCk7CkBAIC00OTYsNyArNDU4LDcgQEAgYm9vbCBUZXh0dXJlTWFwcGVyTm9kZTo6cGFp
bnRSZWZsZWN0aW9uKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMKIAog
ICAgIC8vIFRoZSBtYXNrIGhhcyB0byBiZSBhZGp1c3RlZCB0byB0YXJnZXQgY29vcmRpbmF0ZXMu
CiAgICAgaWYgKG1hc2tUZXh0dXJlKSB7Ci0gICAgICAgIG1hc2tTdXJmYWNlID0gb3B0aW9ucy5z
dXJmYWNlTWFuYWdlci0+Z2V0SW50ZXJtZWRpYXRlU3VyZmFjZSgpOworICAgICAgICBtYXNrU3Vy
ZmFjZSA9IG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChvcHRp
b25zLnRleHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgpKTsKICAgICAgICAgb3B0aW9ucy50ZXh0
dXJlTWFwcGVyLT5iaW5kU3VyZmFjZShtYXNrU3VyZmFjZS5nZXQoKSk7CiAgICAgICAgIG9wdGlv
bnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKm1hc2tUZXh0dXJlLmdldCgpLCBlbnRpcmVS
ZWN0KCksIG1fdHJhbnNmb3Jtcy50YXJnZXQsIDEsIDApOwogICAgICAgICBtYXNrVGV4dHVyZSA9
IG1hc2tTdXJmYWNlOwpAQCAtNTA0LDcgKzQ2Niw3IEBAIGJvb2wgVGV4dHVyZU1hcHBlck5vZGU6
OnBhaW50UmVmbGVjdGlvbihjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25z
CiAKICAgICAvLyBUaGUgcmVwbGljYSdzIG1hc2sgaGFzIHRvIGJlIGFkanVzdGVkIHRvIHRhcmdl
dCBjb29yZGluYXRlcy4KICAgICBpZiAocmVwbGljYU1hc2tUZXh0dXJlKSB7Ci0gICAgICAgIHJl
cGxpY2FNYXNrU3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZU1hbmFnZXItPmdldEludGVybWVkaWF0
ZVN1cmZhY2UoKTsKKyAgICAgICAgcmVwbGljYU1hc2tTdXJmYWNlID0gb3B0aW9ucy50ZXh0dXJl
TWFwcGVyLT5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKG9wdGlvbnMudGV4dHVyZU1hcHBlci0+dmll
d3BvcnRTaXplKCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmJpbmRTdXJmYWNl
KHJlcGxpY2FNYXNrU3VyZmFjZS5nZXQoKSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBl
ci0+ZHJhd1RleHR1cmUoKnJlcGxpY2FNYXNrVGV4dHVyZS5nZXQoKSwgZW50aXJlUmVjdCgpLCBt
X3RyYW5zZm9ybXMudGFyZ2V0LCAxLCAwKTsKICAgICAgICAgcmVwbGljYU1hc2tUZXh0dXJlID0g
cmVwbGljYU1hc2tTdXJmYWNlOwpAQCAtNTEyLDIxICs0NzQsMjEgQEAgYm9vbCBUZXh0dXJlTWFw
cGVyTm9kZTo6cGFpbnRSZWZsZWN0aW9uKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMm
IG9wdGlvbnMKIAogICAgIC8vIFdlIG1pZ2h0IG5lZWQgdG8gYXBwbHkgdGhlIG1hc2sgb2YgdGhl
IGNvbnRlbnQgbGF5ZXIgYmVmb3JlIHdlIGRyYXcgdGhlIHJlZmxlY3Rpb24sIGFzIHRoZXJlIG1p
Z2h0IGJlIHlldCBhbm90aGVyIG1hc2sgZm9yIHRoZSByZWZsZWN0aW9uIGl0c2VsZi4KICAgICBp
ZiAodXNlSW50ZXJtZWRpYXRlQnVmZmVyRm9yTWFzaykgewotICAgICAgICBSZWZQdHI8Qml0bWFw
VGV4dHVyZT4gbWFza1N1cmZhY2UgPSBvcHRpb25zLnN1cmZhY2VNYW5hZ2VyLT5nZXRJbnRlcm1l
ZGlhdGVTdXJmYWNlKCk7CisgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBtYXNrU3VyZmFj
ZSA9IG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChvcHRpb25z
LnRleHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgpKTsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJl
TWFwcGVyLT5iaW5kU3VyZmFjZShtYXNrU3VyZmFjZS5nZXQoKSk7CiAgICAgICAgIG9wdGlvbnMu
dGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKnN1cmZhY2UuZ2V0KCksIHZpZXdwb3J0UmVjdCwg
VHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgMSwgbWFza1RleHR1cmUuZ2V0KCkpOwotICAgICAgICBv
cHRpb25zLnN1cmZhY2VNYW5hZ2VyLT5yZWxlYXNlSW50ZXJtZWRpYXRlU3VyZmFjZShzdXJmYWNl
LmdldCgpKTsKKyAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5yZWxlYXNlVGV4dHVyZVRv
UG9vbChzdXJmYWNlLmdldCgpKTsKICAgICAgICAgc3VyZmFjZSA9IG1hc2tTdXJmYWNlOwogICAg
ICAgICBtYXNrVGV4dHVyZS5jbGVhcigpOwogICAgIH0KIAogICAgIC8vIFdlIGJsZW5kIHRoZSBs
YXllciBhbmQgaXRzIHJlcGxpY2EgaW4gYW4gaW50ZXJtZWRpYXRlIGJ1ZmZlciBiZWZvcmUgYmxl
bmRpbmcgaW50byB0aGUgdGFyZ2V0IHN1cmZhY2UuCiAgICAgaWYgKHVzZUludGVybWVkaWF0ZUJ1
ZmZlckZvclJlcGxpY2EpIHsKLSAgICAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHJlcGxpY2FT
dXJmYWNlID0gb3B0aW9ucy5zdXJmYWNlTWFuYWdlci0+Z2V0SW50ZXJtZWRpYXRlU3VyZmFjZSgp
OworICAgICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gcmVwbGljYVN1cmZhY2UgPSBvcHRpb25z
LnRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJvbVBvb2wob3B0aW9ucy50ZXh0dXJlTWFw
cGVyLT52aWV3cG9ydFNpemUoKSk7CiAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+Ymlu
ZFN1cmZhY2UocmVwbGljYVN1cmZhY2UuZ2V0KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVN
YXBwZXItPmRyYXdUZXh0dXJlKCpzdXJmYWNlLmdldCgpLCB2aWV3cG9ydFJlY3QsIG1fdHJhbnNm
b3Jtcy5yZXBsaWNhLCBtX3N0YXRlLnJlcGxpY2FMYXllci0+bV9vcGFjaXR5LCByZXBsaWNhTWFz
a1RleHR1cmUuZ2V0KCkpOwogICAgICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPmRyYXdUZXh0
dXJlKCpzdXJmYWNlLmdldCgpLCB2aWV3cG9ydFJlY3QsIFRyYW5zZm9ybWF0aW9uTWF0cml4KCks
IDEsIG1hc2tUZXh0dXJlLmdldCgpKTsKLSAgICAgICAgb3B0aW9ucy5zdXJmYWNlTWFuYWdlci0+
cmVsZWFzZUludGVybWVkaWF0ZVN1cmZhY2Uoc3VyZmFjZS5nZXQoKSk7CisgICAgICAgIG9wdGlv
bnMudGV4dHVyZU1hcHBlci0+cmVsZWFzZVRleHR1cmVUb1Bvb2woc3VyZmFjZS5nZXQoKSk7CiAg
ICAgICAgIHN1cmZhY2UgPSByZXBsaWNhU3VyZmFjZTsKICAgICB9CiAKQEAgLTUzOSw4ICs1MDEs
OCBAQCBib29sIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFJlZmxlY3Rpb24oY29uc3QgVGV4dHVy
ZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucwogICAgIC8vIERyYXcgdGhlIG9yaWdpbmFsLgog
ICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKnN1cmZhY2UuZ2V0KCksIHZp
ZXdwb3J0UmVjdCwgVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgb3B0aW9ucy5vcGFjaXR5LCBtYXNr
VGV4dHVyZS5nZXQoKSk7CiAKLSAgICBvcHRpb25zLnN1cmZhY2VNYW5hZ2VyLT5yZWxlYXNlSW50
ZXJtZWRpYXRlU3VyZmFjZShtYXNrU3VyZmFjZS5nZXQoKSk7Ci0gICAgb3B0aW9ucy5zdXJmYWNl
TWFuYWdlci0+cmVsZWFzZUludGVybWVkaWF0ZVN1cmZhY2UocmVwbGljYU1hc2tTdXJmYWNlLmdl
dCgpKTsKKyAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPnJlbGVhc2VUZXh0dXJlVG9Qb29sKG1h
c2tTdXJmYWNlLmdldCgpKTsKKyAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPnJlbGVhc2VUZXh0
dXJlVG9Qb29sKHJlcGxpY2FNYXNrU3VyZmFjZS5nZXQoKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTU3MCwxMiArNTMyLDEyIEBAIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50UmVj
dXJzaXZlKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMgb3B0aW9ucykKIAogICAgIC8vIFRoZSBt
YXNrIGhhcyB0byBiZSBhZGp1c3RlZCB0byB0YXJnZXQgY29vcmRpbmF0ZXMuCiAgICAgaWYgKG1f
c3RhdGUubWFza0xheWVyKSB7Ci0gICAgICAgIG1hc2tTdXJmYWNlID0gb3B0aW9ucy5zdXJmYWNl
TWFuYWdlci0+Z2V0SW50ZXJtZWRpYXRlU3VyZmFjZSgpOworICAgICAgICBtYXNrU3VyZmFjZSA9
IG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YWNxdWlyZVRleHR1cmVGcm9tUG9vbChvcHRpb25zLnRl
eHR1cmVNYXBwZXItPnZpZXdwb3J0U2l6ZSgpKTsKICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFw
cGVyLT5iaW5kU3VyZmFjZShtYXNrU3VyZmFjZS5nZXQoKSk7CiAgICAgICAgIG9wdGlvbnMudGV4
dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKm1fc3RhdGUubWFza0xheWVyLT50ZXh0dXJlKCksIGVu
dGlyZVJlY3QoKSwgbV90cmFuc2Zvcm1zLnRhcmdldCwgMS4wLCAwKTsKICAgICB9CiAKLSAgICBz
dXJmYWNlID0gb3B0aW9ucy5zdXJmYWNlTWFuYWdlci0+Z2V0SW50ZXJtZWRpYXRlU3VyZmFjZSgp
OworICAgIHN1cmZhY2UgPSBvcHRpb25zLnRleHR1cmVNYXBwZXItPmFjcXVpcmVUZXh0dXJlRnJv
bVBvb2wob3B0aW9ucy50ZXh0dXJlTWFwcGVyLT52aWV3cG9ydFNpemUoKSk7CiAgICAgb3B0aW9u
c0ZvckRlc2NlbmRhbnRzLnN1cmZhY2UgPSBzdXJmYWNlLmdldCgpOwogICAgIG9wdGlvbnMuaXNT
dXJmYWNlID0gdHJ1ZTsKICAgICBvcHRpb25zRm9yRGVzY2VuZGFudHMub3BhY2l0eSA9IDE7CkBA
IC01ODgsOCArNTUwLDggQEAgdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6cGFpbnRSZWN1cnNpdmUo
VGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyBvcHRpb25zKQogICAgICAgICBvcHRpb25zLnRleHR1
cmVNYXBwZXItPmRyYXdUZXh0dXJlKCpzdXJmYWNlLmdldCgpLCB2aWV3cG9ydFJlY3QsIFRyYW5z
Zm9ybWF0aW9uTWF0cml4KCksIG9wdGlvbnMub3BhY2l0eSwgMCk7CiAgICAgfQogCi0gICAgb3B0
aW9ucy5zdXJmYWNlTWFuYWdlci0+cmVsZWFzZUludGVybWVkaWF0ZVN1cmZhY2Uoc3VyZmFjZS5n
ZXQoKSk7Ci0gICAgb3B0aW9ucy5zdXJmYWNlTWFuYWdlci0+cmVsZWFzZUludGVybWVkaWF0ZVN1
cmZhY2UobWFza1N1cmZhY2UuZ2V0KCkpOworICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+cmVs
ZWFzZVRleHR1cmVUb1Bvb2woc3VyZmFjZS5nZXQoKSk7CisgICAgb3B0aW9ucy50ZXh0dXJlTWFw
cGVyLT5yZWxlYXNlVGV4dHVyZVRvUG9vbChtYXNrU3VyZmFjZS5nZXQoKSk7CiB9CiAKIFRleHR1
cmVNYXBwZXJOb2RlOjp+VGV4dHVyZU1hcHBlck5vZGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaApp
bmRleCBmYzQ3OWJhLi5iNDBjZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaApAQCAtMzksMTcg
KzM5LDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFRleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyOwogY2xhc3MgVGV4dHVyZU1hcHBlck5vZGU7CiBjbGFzcyBHcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlcjsKLWNsYXNzIFRleHR1cmVNYXBwZXJTdXJmYWNlTWFuYWdlcjsKIAogY2xhc3Mg
VGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyB7CiBwdWJsaWM6CiAgICAgQml0bWFwVGV4dHVyZSog
c3VyZmFjZTsKICAgICBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyOwotICAgIFRleHR1cmVN
YXBwZXJTdXJmYWNlTWFuYWdlciogc3VyZmFjZU1hbmFnZXI7CiAKICAgICBmbG9hdCBvcGFjaXR5
OwogICAgIGJvb2wgaXNTdXJmYWNlOwotICAgIFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMoKSA6
IHN1cmZhY2UoMCksIHRleHR1cmVNYXBwZXIoMCksIG9wYWNpdHkoMS4wKSwgaXNTdXJmYWNlKGZh
bHNlKSB7IH0KKyAgICBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zKCkKKyAgICAgICAgOiBzdXJm
YWNlKDApCisgICAgICAgICwgdGV4dHVyZU1hcHBlcigwKQorICAgICAgICAsIG9wYWNpdHkoMSkK
KyAgICAgICAgLCBpc1N1cmZhY2UoZmFsc2UpCisgICAgeyB9CiB9OwogCiBjbGFzcyBUZXh0dXJl
TWFwcGVyQW5pbWF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dHVyZU1hcHBlckFuaW1hdGlv
bj4gewpAQCAtMTM1LDcgKzEzOCwxMSBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIFRleHR1cmVN
YXBwZXJOb2RlKCkKLSAgICAgICAgOiBtX3BhcmVudCgwKSwgbV9lZmZlY3RUYXJnZXQoMCksIG1f
b3BhY2l0eSgxLjApLCBtX3N1cmZhY2VNYW5hZ2VyKDApLCBtX3RleHR1cmVNYXBwZXIoMCkgeyB9
CisgICAgICAgIDogbV9wYXJlbnQoMCkKKyAgICAgICAgLCBtX2VmZmVjdFRhcmdldCgwKQorICAg
ICAgICAsIG1fb3BhY2l0eSgxKQorICAgICAgICAsIG1fdGV4dHVyZU1hcHBlcigwKQorICAgIHsg
fQogCiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlck5vZGUoKTsKIApAQCAtMzE3LDcgKzMyNCw2
IEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIFN0YXRlIG1fc3RhdGU7Ci0gICAgVGV4dHVyZU1h
cHBlclN1cmZhY2VNYW5hZ2VyKiBtX3N1cmZhY2VNYW5hZ2VyOwogICAgIFRleHR1cmVNYXBwZXIq
IG1fdGV4dHVyZU1hcHBlcjsKIAogICAgIFZlY3RvcjxSZWZQdHI8VGV4dHVyZU1hcHBlckFuaW1h
dGlvbj4gPiBtX2FuaW1hdGlvbnM7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>