<?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>50716</bug_id>
          
          <creation_ts>2010-12-08 14:05:56 -0800</creation_ts>
          <short_desc>Update validation of stencil mask and ref values</short_desc>
          <delta_ts>2011-01-04 12:44:19 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>319019</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-08 14:05:56 -0800</bug_when>
    <thetext>Based on feedback from Daniel Koch from TransGaming, the section in the WebGL spec on restrictions on the stencil mask and ref values has been changed to do the validation at draw time rather than when stencilMaskSeparate and stencilFuncSeparate are called, since generating an INVALID_OPERATION error from those entry points may make it hard for applications to transition between states. The WebKit implementation needs to be updated to do the validation then as well. Ideally stencilMaskSeparate and stencilFuncSeparate would set a boolean flag which can be easily checked in drawArrays and drawElements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327626</commentid>
    <comment_count>1</comment_count>
      <attachid>77631</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-29 10:59:33 -0800</bug_when>
    <thetext>Created attachment 77631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327790</commentid>
    <comment_count>2</comment_count>
      <attachid>77631</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-12-29 18:34:20 -0800</bug_when>
    <thetext>Comment on attachment 77631
Patch

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

Looks good; one cleanup upon landing please.

&gt; WebCore/html/canvas/WebGLRenderingContext.cpp:1119
&gt; +    if (m_stencilMask != m_stencilMaskBack || m_stencilFuncRef != m_stencilFuncRefBack || m_stencilFuncMask != m_stencilFuncMaskBack) {
&gt; +        m_context-&gt;synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
&gt; +        return;
&gt; +    }
&gt; +

Could you please refactor these tests into a helper function similar to validateDrawMode?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327967</commentid>
    <comment_count>3</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-30 11:11:43 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 77631 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=77631&amp;action=review
&gt; 
&gt; Looks good; one cleanup upon landing please.
&gt; 
&gt; &gt; WebCore/html/canvas/WebGLRenderingContext.cpp:1119
&gt; &gt; +    if (m_stencilMask != m_stencilMaskBack || m_stencilFuncRef != m_stencilFuncRefBack || m_stencilFuncMask != m_stencilFuncMaskBack) {
&gt; &gt; +        m_context-&gt;synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
&gt; &gt; +        return;
&gt; &gt; +    }
&gt; &gt; +
&gt; 
&gt; Could you please refactor these tests into a helper function similar to validateDrawMode?

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328079</commentid>
    <comment_count>4</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-30 17:34:15 -0800</bug_when>
    <thetext>Committed r74818: &lt;http://trac.webkit.org/changeset/74818&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328080</commentid>
    <comment_count>5</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-30 17:36:00 -0800</bug_when>
    <thetext>Again, webkit-patch land does not close the bug automatically and I had to manually add the committed message and close the bug.

This is the second time this happened.  Both time I called webkit-patch land remotely through PUTTY.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328084</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-30 18:18:19 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/74818 might have broken SnowLeopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328086</commentid>
    <comment_count>7</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-30 18:48:39 -0800</bug_when>
    <thetext>Committed r74820: &lt;http://trac.webkit.org/changeset/74820&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328087</commentid>
    <comment_count>8</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-12-30 18:51:11 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Committed r74820: &lt;http://trac.webkit.org/changeset/74820&gt;

I had to commit test changes a second time.  I really don&apos;t understand what&apos;s happening here.  Seems like r74818 only picked up changes under WebCore but not under LayoutTests; however, it picked up both change logs.  Really strange.

Again, I did the two commits through PUTTY.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329140</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-04 12:44:19 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Committed r74820: &lt;http://trac.webkit.org/changeset/74820&gt;
&gt; 
&gt; I had to commit test changes a second time.  I really don&apos;t understand what&apos;s happening here.  Seems like r74818 only picked up changes under WebCore but not under LayoutTests; however, it picked up both change logs.  Really strange.
&gt; 
&gt; Again, I did the two commits through PUTTY.

I&apos;m not sure this could be the issue, but I always run webkit-patch land while cd&apos;d into the top-level WebKit directory, just like svn-create-patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77631</attachid>
            <date>2010-12-29 10:59:33 -0800</date>
            <delta_ts>2010-12-29 18:34:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50716-20101229105932.patch</filename>
            <type>text/plain</type>
            <size>26693</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDc0OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMTItMjkgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUg
dmFsaWRhdGlvbiBvZiBzdGVuY2lsIG1hc2sgYW5kIHJlZiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNzE2CisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4dCk6IEluaXRpYWxpemUgY2Fj
aGVkIHN0ZW5jaWwgc2V0dGluZ3MuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmRyYXdBcnJheXMpOiBWYWxpZGF0ZSBzdGVuY2lsIHNldHRpbmdzLgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpkcmF3RWxlbWVudHMpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6c3RlbmNpbEZ1bmMpOiBDYWNo
ZSBzdGVuY2lsIHNldHRpbmdzLCBidXQgZ2VuZXJhdGUgbm8gZXJyb3IuCisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnN0ZW5jaWxGdW5jU2VwYXJhdGUpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6c3RlbmNpbE1hc2spOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6c3RlbmNpbE1h
c2tTZXBhcmF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5oOiBEZWNsYXJlIHN0ZW5jaWwgc2V0dGluZyBtZW1iZXJzLgorCiAyMDEwLTEyLTI5
ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJldmlzaW9uIDc0NzQ0KQorKysgV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzMsOCArMTczLDExIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmUK
ICAgICBtX2ZyYW1lYnVmZmVyQmluZGluZyA9IDA7CiAgICAgbV9yZW5kZXJidWZmZXJCaW5kaW5n
ID0gMDsKICAgICBtX3N0ZW5jaWxNYXNrID0gMHhGRkZGRkZGRjsKKyAgICBtX3N0ZW5jaWxNYXNr
QmFjayA9IDB4RkZGRkZGRkY7CiAgICAgbV9zdGVuY2lsRnVuY1JlZiA9IDA7CisgICAgbV9zdGVu
Y2lsRnVuY1JlZkJhY2sgPSAwOwogICAgIG1fc3RlbmNpbEZ1bmNNYXNrID0gMHhGRkZGRkZGRjsK
KyAgICBtX3N0ZW5jaWxGdW5jTWFza0JhY2sgPSAweEZGRkZGRkZGOwogICAgIG1fdmVydGV4QXR0
cmliU3RhdGUuY2xlYXIoKTsKIAogICAgIGludCBudW1Db21iaW5lZFRleHR1cmVJbWFnZVVuaXRz
ID0gMDsKQEAgLTExMDksNiArMTExMiwxMSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
ZHJhd0FycmF5cyh1CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSB8fCAhdmFsaWRhdGVEcmF3TW9k
ZShtb2RlKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1fc3RlbmNpbE1hc2sgIT0gbV9z
dGVuY2lsTWFza0JhY2sgfHwgbV9zdGVuY2lsRnVuY1JlZiAhPSBtX3N0ZW5jaWxGdW5jUmVmQmFj
ayB8fCBtX3N0ZW5jaWxGdW5jTWFzayAhPSBtX3N0ZW5jaWxGdW5jTWFza0JhY2spIHsKKyAgICAg
ICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJ
RF9PUEVSQVRJT04pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKGZpcnN0IDwg
MCB8fCBjb3VudCA8IDApIHsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CiAgICAgICAgIHJldHVybjsKQEAgLTEx
NTgsNiArMTE2NiwxMSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZHJhd0VsZW1lbnRz
CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSB8fCAhdmFsaWRhdGVEcmF3TW9kZShtb2RlKSkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1fc3RlbmNpbE1hc2sgIT0gbV9zdGVuY2lsTWFza0Jh
Y2sgfHwgbV9zdGVuY2lsRnVuY1JlZiAhPSBtX3N0ZW5jaWxGdW5jUmVmQmFjayB8fCBtX3N0ZW5j
aWxGdW5jTWFzayAhPSBtX3N0ZW5jaWxGdW5jTWFza0JhY2spIHsKKyAgICAgICAgbV9jb250ZXh0
LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04p
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURToKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlNJR05FRF9TSE9SVDoKQEAgLTI0NzEsNyArMjQ4NCw5IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpzdGVuY2lsRnVuYygKICAgICBpZiAoIXZhbGlkYXRlU3RlbmNpbEZ1
bmMoZnVuYykpCiAgICAgICAgIHJldHVybjsKICAgICBtX3N0ZW5jaWxGdW5jUmVmID0gcmVmOwor
ICAgIG1fc3RlbmNpbEZ1bmNSZWZCYWNrID0gcmVmOwogICAgIG1fc3RlbmNpbEZ1bmNNYXNrID0g
bWFzazsKKyAgICBtX3N0ZW5jaWxGdW5jTWFza0JhY2sgPSBtYXNrOwogICAgIG1fY29udGV4dC0+
c3RlbmNpbEZ1bmMoZnVuYywgcmVmLCBtYXNrKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0Nh
bGwoZmFsc2UpOwogfQpAQCAtMjQ4MCwxNSArMjQ5NSwyNSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6c3RlbmNpbEZ1bmNTCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGlmICghdmFsaWRhdGVGYWNlKGZhY2UpIHx8ICF2YWxpZGF0ZVN0ZW5j
aWxGdW5jKGZ1bmMpKQorICAgIGlmICghdmFsaWRhdGVTdGVuY2lsRnVuYyhmdW5jKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGlmIChmYWNlID09IEdyYXBoaWNzQ29udGV4dDNEOjpGUk9OVF9BTkRf
QkFDSykgeworICAgIHN3aXRjaCAoZmFjZSkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkZST05UX0FORF9CQUNLOgogICAgICAgICBtX3N0ZW5jaWxGdW5jUmVmID0gcmVmOworICAgICAg
ICBtX3N0ZW5jaWxGdW5jUmVmQmFjayA9IHJlZjsKICAgICAgICAgbV9zdGVuY2lsRnVuY01hc2sg
PSBtYXNrOwotICAgIH0gZWxzZSBpZiAobV9zdGVuY2lsRnVuY1JlZiAhPSByZWYgfHwgbV9zdGVu
Y2lsRnVuY01hc2sgIT0gbWFzaykgewotICAgICAgICAvLyBmb3IgcmVmIHZhbHVlLCB3ZSBnZW5l
cmF0ZSBhbiBlcnJvciBpZiB1c2VyIHNwZWNpZnkgYSBkaWZmZXJlbnQgdmFsdWUKLSAgICAgICAg
Ly8gZm9yIGZyb250L2JhY2sgZmFjZXMgZXZlbiBpZiB0aGV5IGNsYW1wIHRvIHRoZSBzYW1lIHZh
bHVlIGludGVybmFsbHkuCi0gICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKKyAgICAgICAgbV9zdGVuY2lsRnVu
Y01hc2tCYWNrID0gbWFzazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6RlJPTlQ6CisgICAgICAgIG1fc3RlbmNpbEZ1bmNSZWYgPSByZWY7CisgICAgICAgIG1f
c3RlbmNpbEZ1bmNNYXNrID0gbWFzazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6QkFDSzoKKyAgICAgICAgbV9zdGVuY2lsRnVuY1JlZkJhY2sgPSByZWY7Cisg
ICAgICAgIG1fc3RlbmNpbEZ1bmNNYXNrQmFjayA9IG1hc2s7CisgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfRU5VTSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9j
b250ZXh0LT5zdGVuY2lsRnVuY1NlcGFyYXRlKGZhY2UsIGZ1bmMsIHJlZiwgbWFzayk7CkBAIC0y
NTAwLDYgKzI1MjUsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6c3RlbmNpbE1hc2so
CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fc3RlbmNp
bE1hc2sgPSBtYXNrOworICAgIG1fc3RlbmNpbE1hc2tCYWNrID0gbWFzazsKICAgICBtX2NvbnRl
eHQtPnN0ZW5jaWxNYXNrKG1hc2spOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxz
ZSk7CiB9CkBAIC0yNTA4LDEyICsyNTM0LDE5IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpzdGVuY2lsTWFza1MKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1
cm47Ci0gICAgaWYgKCF2YWxpZGF0ZUZhY2UoZmFjZSkpCi0gICAgICAgIHJldHVybjsKLSAgICBp
ZiAoZmFjZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6RlJPTlRfQU5EX0JBQ0spCisgICAgc3dpdGNo
IChmYWNlKSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJPTlRfQU5EX0JBQ0s6CiAg
ICAgICAgIG1fc3RlbmNpbE1hc2sgPSBtYXNrOwotICAgIGVsc2UgaWYgKG1fc3RlbmNpbE1hc2sg
IT0gbWFzaykgewotICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7CisgICAgICAgIG1fc3RlbmNpbE1hc2tCYWNr
ID0gbWFzazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJP
TlQ6CisgICAgICAgIG1fc3RlbmNpbE1hc2sgPSBtYXNrOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCQUNLOgorICAgICAgICBtX3N0ZW5jaWxNYXNrQmFjayA9
IG1hc2s7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIG1fY29udGV4dC0+
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgbV9jb250ZXh0LT5zdGVuY2lsTWFza1NlcGFyYXRlKGZh
Y2UsIG1hc2spOwpAQCAtMzg2NSwxOSArMzg5OCw2IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojp2YWxpZGF0ZURyYXcKICAgICB9CiB9CiAKLWJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp2YWxpZGF0ZUZhY2UodW5zaWduZWQgbG9uZyBmYWNlKQotewotICAgIHN3aXRjaCAoZmFjZSkg
ewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZST05UOgotICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkJBQ0s6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJPTlRfQU5EX0JB
Q0s6Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG1fY29udGV4
dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSk7Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci19Ci0KIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojp2YWxpZGF0ZVN0ZW5jaWxGdW5jKHVuc2lnbmVkIGxvbmcgZnVuYykKIHsKICAgICBzd2l0
Y2ggKGZ1bmMpIHsKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaAkocmV2aXNpb24gNzQ3NDQpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NTYsOSArNDU2LDkgQEAgcHVibGlj
OgogICAgIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIG1fYXR0cmlidXRlczsKIAogICAg
IGxvbmcgbV9zdGVuY2lsQml0czsKLSAgICB1bnNpZ25lZCBsb25nIG1fc3RlbmNpbE1hc2s7Ci0g
ICAgbG9uZyBtX3N0ZW5jaWxGdW5jUmVmOyAvLyBOb3RlIHRoYXQgdGhpcyBpcyB0aGUgdXNlciBz
cGVjaWZpZWQgdmFsdWUsIG5vdCB0aGUgaW50ZXJuYWwgY2xhbXBlZCB2YWx1ZS4KLSAgICB1bnNp
Z25lZCBsb25nIG1fc3RlbmNpbEZ1bmNNYXNrOworICAgIHVuc2lnbmVkIGxvbmcgbV9zdGVuY2ls
TWFzaywgbV9zdGVuY2lsTWFza0JhY2s7CisgICAgbG9uZyBtX3N0ZW5jaWxGdW5jUmVmLCBtX3N0
ZW5jaWxGdW5jUmVmQmFjazsgLy8gTm90ZSB0aGF0IHRoZXNlIGFyZSB0aGUgdXNlciBzcGVjaWZp
ZWQgdmFsdWVzLCBub3QgdGhlIGludGVybmFsIGNsYW1wZWQgdmFsdWUuCisgICAgdW5zaWduZWQg
bG9uZyBtX3N0ZW5jaWxGdW5jTWFzaywgbV9zdGVuY2lsRnVuY01hc2tCYWNrOwogCiAgICAgYm9v
bCBtX2lzR0xFUzJDb21wbGlhbnQ7CiAgICAgYm9vbCBtX2lzR0xFUzJOUE9UU3RyaWN0OwpAQCAt
NTQxLDkgKzU0MSw2IEBAIHB1YmxpYzoKICAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gdmFsaWRh
dGUgbW9kZSBmb3IgZHJhd3tBcnJheXMvRWxlbWVudHN9LgogICAgIGJvb2wgdmFsaWRhdGVEcmF3
TW9kZSh1bnNpZ25lZCBsb25nKTsKIAotICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byB2YWxpZGF0
ZSBmYWNlLgotICAgIGJvb2wgdmFsaWRhdGVGYWNlKHVuc2lnbmVkIGxvbmcpOwotCiAgICAgLy8g
SGVscGVyIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIHN0ZW5jaWwgZnVuYy4KICAgICBib29sIHZhbGlk
YXRlU3RlbmNpbEZ1bmModW5zaWduZWQgbG9uZyk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDc0NzQ4
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTAtMTItMjkgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdmFsaWRhdGlvbiBv
ZiBzdGVuY2lsIG1hc2sgYW5kIHJlZiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNzE2CisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJn
bC93ZWJnbC1zcGVjaWZpYy1leHBlY3RlZC50eHQ6IFN5bmMgd2l0aCBraHJvbm9zOiByZWZhY3Rv
ciB0aGUgdGVzdCwgYWxzbyB1cGRhdGUgdGhlIHN0ZW5jaWwgc2V0dGluZyB0ZXN0IGR1ZSB0byBz
cGVjIGNoYW5nZS4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1zcGVjaWZpYy5o
dG1sOiBEaXR0by4KKwogMjAxMC0xMi0yOSAgTWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIENocm9taXVtIGJhc2VsaW5lcy4gVXBkYXRl
IENocm9taXVtIGJhc2VsaW5lcyBmb3IKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL3dlYmdsLXNwZWNpZmljLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1zcGVjaWZpYy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDc0NzQ0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDMzICsyLDUyIEBAIFRlc3RzIHRoZSBh
IGZldyBkaWZmZXJlbmNlcyBiZXR3ZWVuIFdlYkcKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04g
OiBjb25zdGFudCBjb2xvciBhbmQgY29uc3RhbnQgYWxwaGEgY2Fubm90IGJlIHVzZWQgdG9nZXRo
ZXIgYXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBmYWN0b3JzIGluIHRoZSBibGVuZCBmdW5jdGlv
bgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDog
Y29uc3RhbnQgY29sb3IgYW5kIGNvbnN0YW50IGFscGhhIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVy
IGFzIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gZmFjdG9ycyBpbiB0aGUgYmxlbmQgZnVuY3Rpb24K
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGNv
bnN0YW50IGNvbG9yIGFuZCBjb25zdGFudCBhbHBoYSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciBh
cyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGZhY3RvcnMgaW4gdGhlIGJsZW5kIGZ1bmN0aW9uCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBjb25z
dGFudCBjb2xvciBhbmQgY29uc3RhbnQgYWxwaGEgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgYXMg
c291cmNlIGFuZCBkZXN0aW5hdGlvbiBmYWN0b3JzIGluIHRoZSBibGVuZCBmdW5jdGlvbgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogY29uc3Rh
bnQgY29sb3IgYW5kIGNvbnN0YW50IGFscGhhIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIGFzIHNv
dXJjZSBhbmQgZGVzdGluYXRpb24gZmFjdG9ycyBpbiB0aGUgYmxlbmQgZnVuY3Rpb24KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGNvbnN0YW50
IGNvbG9yIGFuZCBjb25zdGFudCBhbHBoYSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciBhcyBzb3Vy
Y2UgYW5kIGRlc3RpbmF0aW9uIGZhY3RvcnMgaW4gdGhlIGJsZW5kIGZ1bmN0aW9uCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBjb25zdGFudCBj
b2xvciBhbmQgY29uc3RhbnQgYWxwaGEgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgYXMgc291cmNl
IGFuZCBkZXN0aW5hdGlvbiBmYWN0b3JzIGluIHRoZSBibGVuZCBmdW5jdGlvbgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogY29uc3RhbnQgY29s
b3IgYW5kIGNvbnN0YW50IGFscGhhIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIGFzIHNvdXJjZSBh
bmQgZGVzdGluYXRpb24gZmFjdG9ycyBpbiB0aGUgYmxlbmQgZnVuY3Rpb24KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGNvbnN0YW50IGNvbG9y
IGFuZCBjb25zdGFudCBhbHBoYSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciBhcyBzb3VyY2UgYW5k
IGRlc3RpbmF0aW9uIGZhY3RvcnMgaW4gdGhlIGJsZW5kIGZ1bmN0aW9uCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBjb25zdGFudCBjb2xvciBh
bmQgY29uc3RhbnQgYWxwaGEgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgYXMgc291cmNlIGFuZCBk
ZXN0aW5hdGlvbiBmYWN0b3JzIGluIHRoZSBibGVuZCBmdW5jdGlvbgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogY29uc3RhbnQgY29sb3IgYW5k
IGNvbnN0YW50IGFscGhhIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIGFzIHNvdXJjZSBhbmQgZGVz
dGluYXRpb24gZmFjdG9ycyBpbiB0aGUgYmxlbmQgZnVuY3Rpb24KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGNvbnN0YW50IGNvbG9yIGFuZCBj
b25zdGFudCBhbHBoYSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciBhcyBzb3VyY2UgYW5kIGRlc3Rp
bmF0aW9uIGZhY3RvcnMgaW4gdGhlIGJsZW5kIGZ1bmN0aW9uCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBjb25zdGFudCBjb2xvciBhbmQgY29u
c3RhbnQgYWxwaGEgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgYXMgc291cmNlIGFuZCBkZXN0aW5h
dGlvbiBmYWN0b3JzIGluIHRoZSBibGVuZCBmdW5jdGlvbgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogY29uc3RhbnQgY29sb3IgYW5kIGNvbnN0
YW50IGFscGhhIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIGFzIHNvdXJjZSBhbmQgZGVzdGluYXRp
b24gZmFjdG9ycyBpbiB0aGUgYmxlbmQgZnVuY3Rpb24KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGNvbnN0YW50IGNvbG9yIGFuZCBjb25zdGFu
dCBhbHBoYSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciBhcyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9u
IGZhY3RvcnMgaW4gdGhlIGJsZW5kIGZ1bmN0aW9uCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBjb25zdGFudCBjb2xvciBhbmQgY29uc3RhbnQg
YWxwaGEgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgYXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBm
YWN0b3JzIGluIHRoZSBibGVuZCBmdW5jdGlvbgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogZGVwdGhSYW5nZSBzaG91bGQgZ2VuZXJhdGUgSU5W
QUxJRF9PUEVSQVRJT04gaWYgek5lYXIgaXMgZ3JlYXRlciB0aGFuIHpGYXIKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHN0ZW5jaWxNYXNrIHNob3VsZCBnZW5l
cmF0ZSBubyBlcnJvcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURf
T1BFUkFUSU9OIDogYSBkaWZmZXJlbnQgbWFzayB2YWx1ZSBmb3IgZnJvbnQgYW5kIGJhY2sgZmFj
aW5nIGlzIGlsbGVnYWwKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X09QRVJBVElPTiA6IGEgZGlmZmVyZW50IG1hc2sgdmFsdWUgZm9yIGZyb250IGFuZCBiYWNrIGZh
Y2luZyBpcyBpbGxlZ2FsCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiBzdGVuY2lsRnVuYyBzaG91bGQgZ2VuZXJhdGUgbm8gZXJyb3IKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGEgZGlmZmVyZW50IHJlZmVy
ZW5jZSB2YWx1ZSBmb3IgZnJvbnQgYW5kIGJhY2sgZmFjaW5nIGlzIGlsbGVnYWwKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGEgZGlmZmVyZW50
IHJlZmVyZW5jZSB2YWx1ZSBmb3IgZnJvbnQgYW5kIGJhY2sgZmFjaW5nIGlzIGlsbGVnYWwKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGEgZGlm
ZmVyZW50IG1hc2sgdmFsdWUgZm9yIGZyb250IGFuZCBiYWNrIGZhY2luZyBpcyBpbGxlZ2FsCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBhIGRp
ZmZlcmVudCBtYXNrIHZhbHVlIGZvciBmcm9udCBhbmQgYmFjayBmYWNpbmcgaXMgaWxsZWdhbAor
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogU2V0dXAgc2hvdWxk
IHN1Y2NlZWQKKworVmVyaWZ5IHRoYXQgY29uc3RhbnQgY29sb3IgYW5kIGNvbnN0YW50IGFscGhh
IGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIGFzIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gZmFjdG9y
cyBpbiB0aGUgYmxlbmQgZnVuY3Rpb24KK1BBU1MgZ2wuYmxlbmRGdW5jKGdsLkNPTlNUQU5UX0NP
TE9SLCBnbC5DT05TVEFOVF9BTFBIQSkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBJTlZB
TElEX09QRVJBVElPTi4KK1BBU1MgZ2wuYmxlbmRGdW5jKGdsLk9ORV9NSU5VU19DT05TVEFOVF9D
T0xPUiwgZ2wuQ09OU1RBTlRfQUxQSEEpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5W
QUxJRF9PUEVSQVRJT04uCitQQVNTIGdsLmJsZW5kRnVuYyhnbC5DT05TVEFOVF9DT0xPUiwgZ2wu
T05FX01JTlVTX0NPTlNUQU5UX0FMUEhBKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElO
VkFMSURfT1BFUkFUSU9OLgorUEFTUyBnbC5ibGVuZEZ1bmMoZ2wuT05FX01JTlVTX0NPTlNUQU5U
X0NPTE9SLCBnbC5PTkVfTUlOVVNfQ09OU1RBTlRfQUxQSEEpIGdlbmVyYXRlZCBleHBlY3RlZCBH
TCBlcnJvcjogSU5WQUxJRF9PUEVSQVRJT04uCitQQVNTIGdsLmJsZW5kRnVuYyhnbC5DT05TVEFO
VF9BTFBIQSwgZ2wuQ09OU1RBTlRfQ09MT1IpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjog
SU5WQUxJRF9PUEVSQVRJT04uCitQQVNTIGdsLmJsZW5kRnVuYyhnbC5DT05TVEFOVF9BTFBIQSwg
Z2wuT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6
IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBnbC5ibGVuZEZ1bmMoZ2wuT05FX01JTlVTX0NPTlNU
QU5UX0FMUEhBLCBnbC5DT05TVEFOVF9DT0xPUikgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9y
OiBJTlZBTElEX09QRVJBVElPTi4KK1BBU1MgZ2wuYmxlbmRGdW5jKGdsLk9ORV9NSU5VU19DT05T
VEFOVF9BTFBIQSwgZ2wuT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SKSBnZW5lcmF0ZWQgZXhwZWN0
ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBnbC5ibGVuZEZ1bmNTZXBhcmF0
ZShnbC5DT05TVEFOVF9DT0xPUiwgZ2wuQ09OU1RBTlRfQUxQSEEsIGdsLk9ORSwgZ2wuWkVSTykg
Z2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElEX09QRVJBVElPTi4KK1BBU1MgZ2wu
YmxlbmRGdW5jU2VwYXJhdGUoZ2wuT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SLCBnbC5DT05TVEFO
VF9BTFBIQSwgZ2wuT05FLCBnbC5aRVJPKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElO
VkFMSURfT1BFUkFUSU9OLgorUEFTUyBnbC5ibGVuZEZ1bmNTZXBhcmF0ZShnbC5DT05TVEFOVF9D
T0xPUiwgZ2wuT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBLCBnbC5PTkUsIGdsLlpFUk8pIGdlbmVy
YXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5WQUxJRF9PUEVSQVRJT04uCitQQVNTIGdsLmJsZW5k
RnVuY1NlcGFyYXRlKGdsLk9ORV9NSU5VU19DT05TVEFOVF9DT0xPUiwgZ2wuT05FX01JTlVTX0NP
TlNUQU5UX0FMUEhBLCBnbC5PTkUsIGdsLlpFUk8pIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJv
cjogSU5WQUxJRF9PUEVSQVRJT04uCitQQVNTIGdsLmJsZW5kRnVuY1NlcGFyYXRlKGdsLkNPTlNU
QU5UX0FMUEhBLCBnbC5DT05TVEFOVF9DT0xPUiwgZ2wuT05FLCBnbC5aRVJPKSBnZW5lcmF0ZWQg
ZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBnbC5ibGVuZEZ1bmNT
ZXBhcmF0ZShnbC5DT05TVEFOVF9BTFBIQSwgZ2wuT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SLCBn
bC5PTkUsIGdsLlpFUk8pIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5WQUxJRF9PUEVS
QVRJT04uCitQQVNTIGdsLmJsZW5kRnVuY1NlcGFyYXRlKGdsLk9ORV9NSU5VU19DT05TVEFOVF9B
TFBIQSwgZ2wuQ09OU1RBTlRfQ09MT1IsIGdsLk9ORSwgZ2wuWkVSTykgZ2VuZXJhdGVkIGV4cGVj
dGVkIEdMIGVycm9yOiBJTlZBTElEX09QRVJBVElPTi4KK1BBU1MgZ2wuYmxlbmRGdW5jU2VwYXJh
dGUoZ2wuT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBLCBnbC5PTkVfTUlOVVNfQ09OU1RBTlRfQ09M
T1IsIGdsLk9ORSwgZ2wuWkVSTykgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElE
X09QRVJBVElPTi4KKworVmVyaWZ5IHRoYXQgaW4gZGVwdGhSYW5nZSB6TmVhciA8PSB6RmFyCitQ
QVNTIGdsLmRlcHRoUmFuZ2UoMjAsIDEwKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElO
VkFMSURfT1BFUkFUSU9OLgorCitWZXJpZnkgdGhhdCBmcm9udC9iYWNrIHNldHRpbmdzIHNob3Vs
ZCBiZSB0aGUgc2FtZSBmb3Igc3RlbmNsTWFzayBhbmQgc3RlbmNpbEZ1bmMKK1BBU1MgZ2wuc3Rl
bmNpbE1hc2soMjU1KSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IE5PX0VSUk9SLgorUEFT
UyBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgMCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdM
IGVycm9yOiBOT19FUlJPUi4KK1BBU1MgZ2wuc3RlbmNpbE1hc2tTZXBhcmF0ZShnbC5GUk9OVCwg
MSkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBOT19FUlJPUi4KK1BBU1MgZ2wuZHJhd0Fy
cmF5cyhnbC5UUklBTkdMRVMsIDAsIDApIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5W
QUxJRF9PUEVSQVRJT04uCitQQVNTIGdsLnN0ZW5jaWxNYXNrU2VwYXJhdGUoZ2wuQkFDSywgMSkg
Z2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBOT19FUlJPUi4KK1BBU1MgZ2wuZHJhd0FycmF5
cyhnbC5UUklBTkdMRVMsIDAsIDApIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogTk9fRVJS
T1IuCitQQVNTIGdsLnN0ZW5jaWxGdW5jKGdsLkFMV0FZUywgMCwgMjU1KSBnZW5lcmF0ZWQgZXhw
ZWN0ZWQgR0wgZXJyb3I6IE5PX0VSUk9SLgorUEFTUyBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xF
UywgMCwgMCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBOT19FUlJPUi4KK1BBU1MgZ2wu
c3RlbmNpbEZ1bmNTZXBhcmF0ZShnbC5CQUNLLCBnbC5BTFdBWVMsIDEsIDI1NSkgZ2VuZXJhdGVk
IGV4cGVjdGVkIEdMIGVycm9yOiBOT19FUlJPUi4KK1BBU1MgZ2wuZHJhd0FycmF5cyhnbC5UUklB
TkdMRVMsIDAsIDApIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5WQUxJRF9PUEVSQVRJ
T04uCitQQVNTIGdsLnN0ZW5jaWxGdW5jU2VwYXJhdGUoZ2wuRlJPTlQsIGdsLkFMV0FZUywgMSwg
MjU1KSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IE5PX0VSUk9SLgorUEFTUyBnbC5kcmF3
QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgMCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBO
T19FUlJPUi4KK1BBU1MgZ2wuc3RlbmNpbEZ1bmNTZXBhcmF0ZShnbC5CQUNLLCBnbC5BTFdBWVMs
IDEsIDEpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1IuCitQQVNTIGdsLmRy
YXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAwKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6
IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBnbC5zdGVuY2lsRnVuY1NlcGFyYXRlKGdsLkZST05U
LCBnbC5BTFdBWVMsIDEsIDEpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1Iu
CitQQVNTIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAwKSBnZW5lcmF0ZWQgZXhwZWN0
ZWQgR0wgZXJyb3I6IE5PX0VSUk9SLgorCitWZXJpZnkgdGhhdCBJTVBMRU1FTlRBVElPTl9DT0xP
Ul9SRUFEX0ZPUk1BVCBhbmQgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9UWVBFIGFyZSB1bmRl
ZmluZWQKIFBBU1MgdW5kZWZpbmVkIGlzIHVuZGVmaW5lZC4KIFBBU1MgdW5kZWZpbmVkIGlzIHVu
ZGVmaW5lZC4KKworVmVyaWZ5IHRoYXQgVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJH
TCBpcyBzdXBwb3J0ZWQKIFBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlVOUEFDS19DT0xPUlNQQUNF
X0NPTlZFUlNJT05fV0VCR0wpIGlzIGdsLkJST1dTRVJfREVGQVVMVF9XRUJHTAogUEFTUyBnbC5n
ZXRQYXJhbWV0ZXIoZ2wuVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCkgaXMgZ2wu
Tk9ORQogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogc2V0L2dl
dCBVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMIHNob3VsZCBnZW5lcmF0ZSBubyBl
cnJvcgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1z
cGVjaWZpYy5odG1sCShyZXZpc2lvbiA3NDc0NCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL3dlYmdsLXNwZWNpZmljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDk1ICsxNyw2
OCBAQCB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGEg
ZmV3IGRpZmZlcmVuY2VzIGJldHdlZW4gV2ViR0wgYW5kIEdMRVMyIik7CiAKIHZhciBnbCA9IHd0
dS5jcmVhdGUzRENvbnRleHQoKTsKK3ZhciBwcm9ncmFtID0gd3R1LmxvYWRTdGFuZGFyZFByb2dy
YW0oZ2wpOworZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKK3ZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5j
cmVhdGVCdWZmZXIoKTsKK2dsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0ZXhPYmpl
Y3QpOworZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7CitnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAiU2V0dXAgc2hvdWxkIHN1Y2NlZWQiKTsKKworZGVidWcoIiIpOworZGVi
dWcoIlZlcmlmeSB0aGF0IGNvbnN0YW50IGNvbG9yIGFuZCBjb25zdGFudCBhbHBoYSBjYW5ub3Qg
YmUgdXNlZCB0b2dldGhlciBhcyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGZhY3RvcnMgaW4gdGhl
IGJsZW5kIGZ1bmN0aW9uIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURf
T1BFUkFUSU9OLCAiZ2wuYmxlbmRGdW5jKGdsLkNPTlNUQU5UX0NPTE9SLCBnbC5DT05TVEFOVF9B
TFBIQSkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
ICJnbC5ibGVuZEZ1bmMoZ2wuT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SLCBnbC5DT05TVEFOVF9B
TFBIQSkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
ICJnbC5ibGVuZEZ1bmMoZ2wuQ09OU1RBTlRfQ09MT1IsIGdsLk9ORV9NSU5VU19DT05TVEFOVF9B
TFBIQSkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
ICJnbC5ibGVuZEZ1bmMoZ2wuT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SLCBnbC5PTkVfTUlOVVNf
Q09OU1RBTlRfQUxQSEEpIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURf
T1BFUkFUSU9OLCAiZ2wuYmxlbmRGdW5jKGdsLkNPTlNUQU5UX0FMUEhBLCBnbC5DT05TVEFOVF9D
T0xPUikiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
ICJnbC5ibGVuZEZ1bmMoZ2wuQ09OU1RBTlRfQUxQSEEsIGdsLk9ORV9NSU5VU19DT05TVEFOVF9D
T0xPUikiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
ICJnbC5ibGVuZEZ1bmMoZ2wuT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBLCBnbC5DT05TVEFOVF9D
T0xPUikiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
ICJnbC5ibGVuZEZ1bmMoZ2wuT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBLCBnbC5PTkVfTUlOVVNf
Q09OU1RBTlRfQ09MT1IpIik7CisKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJ
RF9PUEVSQVRJT04sICJnbC5ibGVuZEZ1bmNTZXBhcmF0ZShnbC5DT05TVEFOVF9DT0xPUiwgZ2wu
Q09OU1RBTlRfQUxQSEEsIGdsLk9ORSwgZ2wuWkVSTykiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJv
cihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJnbC5ibGVuZEZ1bmNTZXBhcmF0ZShnbC5PTkVf
TUlOVVNfQ09OU1RBTlRfQ09MT1IsIGdsLkNPTlNUQU5UX0FMUEhBLCBnbC5PTkUsIGdsLlpFUk8p
Iik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiZ2wu
YmxlbmRGdW5jU2VwYXJhdGUoZ2wuQ09OU1RBTlRfQ09MT1IsIGdsLk9ORV9NSU5VU19DT05TVEFO
VF9BTFBIQSwgZ2wuT05FLCBnbC5aRVJPKSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBn
bC5JTlZBTElEX09QRVJBVElPTiwgImdsLmJsZW5kRnVuY1NlcGFyYXRlKGdsLk9ORV9NSU5VU19D
T05TVEFOVF9DT0xPUiwgZ2wuT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBLCBnbC5PTkUsIGdsLlpF
Uk8pIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAi
Z2wuYmxlbmRGdW5jU2VwYXJhdGUoZ2wuQ09OU1RBTlRfQUxQSEEsIGdsLkNPTlNUQU5UX0NPTE9S
LCBnbC5PTkUsIGdsLlpFUk8pIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFM
SURfT1BFUkFUSU9OLCAiZ2wuYmxlbmRGdW5jU2VwYXJhdGUoZ2wuQ09OU1RBTlRfQUxQSEEsIGds
Lk9ORV9NSU5VU19DT05TVEFOVF9DT0xPUiwgZ2wuT05FLCBnbC5aRVJPKSIpOworc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImdsLmJsZW5kRnVuY1NlcGFy
YXRlKGdsLk9ORV9NSU5VU19DT05TVEFOVF9BTFBIQSwgZ2wuQ09OU1RBTlRfQ09MT1IsIGdsLk9O
RSwgZ2wuWkVSTykiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVS
QVRJT04sICJnbC5ibGVuZEZ1bmNTZXBhcmF0ZShnbC5PTkVfTUlOVVNfQ09OU1RBTlRfQUxQSEEs
IGdsLk9ORV9NSU5VU19DT05TVEFOVF9DT0xPUiwgZ2wuT05FLCBnbC5aRVJPKSIpOworCitkZWJ1
ZygiIik7CitkZWJ1ZygiVmVyaWZ5IHRoYXQgaW4gZGVwdGhSYW5nZSB6TmVhciA8PSB6RmFyIik7
CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiZ2wuZGVw
dGhSYW5nZSgyMCwgMTApIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJWZXJpZnkgdGhhdCBmcm9u
dC9iYWNrIHNldHRpbmdzIHNob3VsZCBiZSB0aGUgc2FtZSBmb3Igc3RlbmNsTWFzayBhbmQgc3Rl
bmNpbEZ1bmMiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5z
dGVuY2lsTWFzaygyNTUpIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9S
LCAiZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDApIik7CitzaG91bGRHZW5lcmF0ZUdM
RXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuc3RlbmNpbE1hc2tTZXBhcmF0ZShnbC5GUk9OVCwg
MSkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJn
bC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgMCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJv
cihnbCwgZ2wuTk9fRVJST1IsICJnbC5zdGVuY2lsTWFza1NlcGFyYXRlKGdsLkJBQ0ssIDEpIik7
CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZHJhd0FycmF5cyhn
bC5UUklBTkdMRVMsIDAsIDApIik7CisKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9f
RVJST1IsICJnbC5zdGVuY2lsRnVuYyhnbC5BTFdBWVMsIDAsIDI1NSkiKTsKK3Nob3VsZEdlbmVy
YXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywg
MCwgMCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5zdGVu
Y2lsRnVuY1NlcGFyYXRlKGdsLkJBQ0ssIGdsLkFMV0FZUywgMSwgMjU1KSIpOworc2hvdWxkR2Vu
ZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImdsLmRyYXdBcnJheXMoZ2wu
VFJJQU5HTEVTLCAwLCAwKSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJP
UiwgImdsLnN0ZW5jaWxGdW5jU2VwYXJhdGUoZ2wuRlJPTlQsIGdsLkFMV0FZUywgMSwgMjU1KSIp
Oworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmRyYXdBcnJheXMo
Z2wuVFJJQU5HTEVTLCAwLCAwKSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19F
UlJPUiwgImdsLnN0ZW5jaWxGdW5jU2VwYXJhdGUoZ2wuQkFDSywgZ2wuQUxXQVlTLCAxLCAxKSIp
Oworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImdsLmRy
YXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAwKSIpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGds
LCBnbC5OT19FUlJPUiwgImdsLnN0ZW5jaWxGdW5jU2VwYXJhdGUoZ2wuRlJPTlQsIGdsLkFMV0FZ
UywgMSwgMSkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5k
cmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgMCkiKTsKIAotZ2wuYmxlbmRGdW5jKGdsLkNPTlNU
QU5UX0NPTE9SLCBnbC5DT05TVEFOVF9BTFBIQSk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklO
VkFMSURfT1BFUkFUSU9OLAotICAgICJjb25zdGFudCBjb2xvciBhbmQgY29uc3RhbnQgYWxwaGEg
Y2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgYXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBmYWN0b3Jz
IGluIHRoZSBibGVuZCBmdW5jdGlvbiIpOwotZ2wuYmxlbmRGdW5jKGdsLk9ORV9NSU5VU19DT05T
VEFOVF9DT0xPUiwgZ2wuQ09OU1RBTlRfQUxQSEEpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5J
TlZBTElEX09QRVJBVElPTiwKLSAgICAiY29uc3RhbnQgY29sb3IgYW5kIGNvbnN0YW50IGFscGhh
IGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIGFzIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gZmFjdG9y
cyBpbiB0aGUgYmxlbmQgZnVuY3Rpb24iKTsKLWdsLmJsZW5kRnVuYyhnbC5DT05TVEFOVF9DT0xP
UiwgZ2wuT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
SU5WQUxJRF9PUEVSQVRJT04sCi0gICAgImNvbnN0YW50IGNvbG9yIGFuZCBjb25zdGFudCBhbHBo
YSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciBhcyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGZhY3Rv
cnMgaW4gdGhlIGJsZW5kIGZ1bmN0aW9uIik7Ci1nbC5ibGVuZEZ1bmMoZ2wuT05FX01JTlVTX0NP
TlNUQU5UX0NPTE9SLCBnbC5PTkVfTUlOVVNfQ09OU1RBTlRfQUxQSEEpOwotZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwKLSAgICAiY29uc3RhbnQgY29sb3IgYW5kIGNv
bnN0YW50IGFscGhhIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIGFzIHNvdXJjZSBhbmQgZGVzdGlu
YXRpb24gZmFjdG9ycyBpbiB0aGUgYmxlbmQgZnVuY3Rpb24iKTsKLWdsLmJsZW5kRnVuYyhnbC5D
T05TVEFOVF9BTFBIQSwgZ2wuQ09OU1RBTlRfQ09MT1IpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5JTlZBTElEX09QRVJBVElPTiwKLSAgICAiY29uc3RhbnQgY29sb3IgYW5kIGNvbnN0YW50IGFs
cGhhIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIGFzIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gZmFj
dG9ycyBpbiB0aGUgYmxlbmQgZnVuY3Rpb24iKTsKLWdsLmJsZW5kRnVuYyhnbC5DT05TVEFOVF9B
TFBIQSwgZ2wuT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SKTsKLWdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuSU5WQUxJRF9PUEVSQVRJT04sCi0gICAgImNvbnN0YW50IGNvbG9yIGFuZCBjb25zdGFudCBh
bHBoYSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciBhcyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGZh
Y3RvcnMgaW4gdGhlIGJsZW5kIGZ1bmN0aW9uIik7Ci1nbC5ibGVuZEZ1bmMoZ2wuT05FX01JTlVT
X0NPTlNUQU5UX0FMUEhBLCBnbC5DT05TVEFOVF9DT0xPUik7Ci1nbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLklOVkFMSURfT1BFUkFUSU9OLAotICAgICJjb25zdGFudCBjb2xvciBhbmQgY29uc3RhbnQg
YWxwaGEgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgYXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBm
YWN0b3JzIGluIHRoZSBibGVuZCBmdW5jdGlvbiIpOwotZ2wuYmxlbmRGdW5jKGdsLk9ORV9NSU5V
U19DT05TVEFOVF9BTFBIQSwgZ2wuT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SKTsKLWdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sCi0gICAgImNvbnN0YW50IGNvbG9yIGFu
ZCBjb25zdGFudCBhbHBoYSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciBhcyBzb3VyY2UgYW5kIGRl
c3RpbmF0aW9uIGZhY3RvcnMgaW4gdGhlIGJsZW5kIGZ1bmN0aW9uIik7Ci0KLWdsLmJsZW5kRnVu
Y1NlcGFyYXRlKGdsLkNPTlNUQU5UX0NPTE9SLCBnbC5DT05TVEFOVF9BTFBIQSwgZ2wuT05FLCBn
bC5aRVJPKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sCi0gICAg
ImNvbnN0YW50IGNvbG9yIGFuZCBjb25zdGFudCBhbHBoYSBjYW5ub3QgYmUgdXNlZCB0b2dldGhl
ciBhcyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGZhY3RvcnMgaW4gdGhlIGJsZW5kIGZ1bmN0aW9u
Iik7Ci1nbC5ibGVuZEZ1bmNTZXBhcmF0ZShnbC5PTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1IsIGds
LkNPTlNUQU5UX0FMUEhBLCBnbC5PTkUsIGdsLlpFUk8pOwotZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5JTlZBTElEX09QRVJBVElPTiwKLSAgICAiY29uc3RhbnQgY29sb3IgYW5kIGNvbnN0YW50IGFs
cGhhIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIGFzIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gZmFj
dG9ycyBpbiB0aGUgYmxlbmQgZnVuY3Rpb24iKTsKLWdsLmJsZW5kRnVuY1NlcGFyYXRlKGdsLkNP
TlNUQU5UX0NPTE9SLCBnbC5PTkVfTUlOVVNfQ09OU1RBTlRfQUxQSEEsIGdsLk9ORSwgZ2wuWkVS
Tyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLAotICAgICJjb25z
dGFudCBjb2xvciBhbmQgY29uc3RhbnQgYWxwaGEgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgYXMg
c291cmNlIGFuZCBkZXN0aW5hdGlvbiBmYWN0b3JzIGluIHRoZSBibGVuZCBmdW5jdGlvbiIpOwot
Z2wuYmxlbmRGdW5jU2VwYXJhdGUoZ2wuT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SLCBnbC5PTkVf
TUlOVVNfQ09OU1RBTlRfQUxQSEEsIGdsLk9ORSwgZ2wuWkVSTyk7Ci1nbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLAotICAgICJjb25zdGFudCBjb2xvciBhbmQgY29uc3Rh
bnQgYWxwaGEgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgYXMgc291cmNlIGFuZCBkZXN0aW5hdGlv
biBmYWN0b3JzIGluIHRoZSBibGVuZCBmdW5jdGlvbiIpOwotZ2wuYmxlbmRGdW5jU2VwYXJhdGUo
Z2wuQ09OU1RBTlRfQUxQSEEsIGdsLkNPTlNUQU5UX0NPTE9SLCBnbC5PTkUsIGdsLlpFUk8pOwot
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwKLSAgICAiY29uc3RhbnQg
Y29sb3IgYW5kIGNvbnN0YW50IGFscGhhIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIGFzIHNvdXJj
ZSBhbmQgZGVzdGluYXRpb24gZmFjdG9ycyBpbiB0aGUgYmxlbmQgZnVuY3Rpb24iKTsKLWdsLmJs
ZW5kRnVuY1NlcGFyYXRlKGdsLkNPTlNUQU5UX0FMUEhBLCBnbC5PTkVfTUlOVVNfQ09OU1RBTlRf
Q09MT1IsIGdsLk9ORSwgZ2wuWkVSTyk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURf
T1BFUkFUSU9OLAotICAgICJjb25zdGFudCBjb2xvciBhbmQgY29uc3RhbnQgYWxwaGEgY2Fubm90
IGJlIHVzZWQgdG9nZXRoZXIgYXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBmYWN0b3JzIGluIHRo
ZSBibGVuZCBmdW5jdGlvbiIpOwotZ2wuYmxlbmRGdW5jU2VwYXJhdGUoZ2wuT05FX01JTlVTX0NP
TlNUQU5UX0FMUEhBLCBnbC5DT05TVEFOVF9DT0xPUiwgZ2wuT05FLCBnbC5aRVJPKTsKLWdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sCi0gICAgImNvbnN0YW50IGNvbG9y
IGFuZCBjb25zdGFudCBhbHBoYSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciBhcyBzb3VyY2UgYW5k
IGRlc3RpbmF0aW9uIGZhY3RvcnMgaW4gdGhlIGJsZW5kIGZ1bmN0aW9uIik7Ci1nbC5ibGVuZEZ1
bmNTZXBhcmF0ZShnbC5PTkVfTUlOVVNfQ09OU1RBTlRfQUxQSEEsIGdsLk9ORV9NSU5VU19DT05T
VEFOVF9DT0xPUiwgZ2wuT05FLCBnbC5aRVJPKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5W
QUxJRF9PUEVSQVRJT04sCi0gICAgImNvbnN0YW50IGNvbG9yIGFuZCBjb25zdGFudCBhbHBoYSBj
YW5ub3QgYmUgdXNlZCB0b2dldGhlciBhcyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGZhY3RvcnMg
aW4gdGhlIGJsZW5kIGZ1bmN0aW9uIik7Ci0KLWdsLmRlcHRoUmFuZ2UoMjAsIDEwKTsKLWdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sCi0gICAgImRlcHRoUmFuZ2Ugc2hv
dWxkIGdlbmVyYXRlIElOVkFMSURfT1BFUkFUSU9OIGlmIHpOZWFyIGlzIGdyZWF0ZXIgdGhhbiB6
RmFyIik7Ci0KLWdsLnN0ZW5jaWxNYXNrKDI1NSk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SLAotICAgICJzdGVuY2lsTWFzayBzaG91bGQgZ2VuZXJhdGUgbm8gZXJyb3IiKTsKLWds
LnN0ZW5jaWxNYXNrU2VwYXJhdGUoZ2wuRlJPTlQsIDEpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5JTlZBTElEX09QRVJBVElPTiwKLSAgICAiYSBkaWZmZXJlbnQgbWFzayB2YWx1ZSBmb3IgZnJv
bnQgYW5kIGJhY2sgZmFjaW5nIGlzIGlsbGVnYWwiKTsKLWdsLnN0ZW5jaWxNYXNrU2VwYXJhdGUo
Z2wuQkFDSywgMSk7Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLAot
ICAgICJhIGRpZmZlcmVudCBtYXNrIHZhbHVlIGZvciBmcm9udCBhbmQgYmFjayBmYWNpbmcgaXMg
aWxsZWdhbCIpOwotCi1nbC5zdGVuY2lsRnVuYyhnbC5BTFdBWVMsIDAsIDI1NSk7Ci1nbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLAotICAgICJzdGVuY2lsRnVuYyBzaG91bGQgZ2VuZXJh
dGUgbm8gZXJyb3IiKTsKLWdsLnN0ZW5jaWxGdW5jU2VwYXJhdGUoZ2wuRlJPTlQsIGdsLkFMV0FZ
UywgMSwgMjU1KTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sCi0g
ICAgImEgZGlmZmVyZW50IHJlZmVyZW5jZSB2YWx1ZSBmb3IgZnJvbnQgYW5kIGJhY2sgZmFjaW5n
IGlzIGlsbGVnYWwiKTsKLWdsLnN0ZW5jaWxGdW5jU2VwYXJhdGUoZ2wuQkFDSywgZ2wuQUxXQVlT
LCAxLCAyNTUpOwotZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwKLSAg
ICAiYSBkaWZmZXJlbnQgcmVmZXJlbmNlIHZhbHVlIGZvciBmcm9udCBhbmQgYmFjayBmYWNpbmcg
aXMgaWxsZWdhbCIpOwotZ2wuc3RlbmNpbEZ1bmNTZXBhcmF0ZShnbC5GUk9OVCwgZ2wuQUxXQVlT
LCAwLCAxKTsKLWdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sCi0gICAg
ImEgZGlmZmVyZW50IG1hc2sgdmFsdWUgZm9yIGZyb250IGFuZCBiYWNrIGZhY2luZyBpcyBpbGxl
Z2FsIik7Ci1nbC5zdGVuY2lsRnVuY1NlcGFyYXRlKGdsLkJBQ0ssIGdsLkFMV0FZUywgMCwgMSk7
Ci1nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLAotICAgICJhIGRpZmZl
cmVudCBtYXNrIHZhbHVlIGZvciBmcm9udCBhbmQgYmFjayBmYWNpbmcgaXMgaWxsZWdhbCIpOwot
CitkZWJ1ZygiIik7CitkZWJ1ZygiVmVyaWZ5IHRoYXQgSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVB
RF9GT1JNQVQgYW5kIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfVFlQRSBhcmUgdW5kZWZpbmVk
Iik7CiBzaG91bGRCZVVuZGVmaW5lZChnbC5JTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1B
VCk7CiBzaG91bGRCZVVuZGVmaW5lZChnbC5JTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX1RZUEUp
OwogCitkZWJ1ZygiIik7CitkZWJ1ZygiVmVyaWZ5IHRoYXQgVU5QQUNLX0NPTE9SU1BBQ0VfQ09O
VkVSU0lPTl9XRUJHTCBpcyBzdXBwb3J0ZWQiKTsKIHNob3VsZEJlKCJnbC5nZXRQYXJhbWV0ZXIo
Z2wuVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCkiLCAiZ2wuQlJPV1NFUl9ERUZB
VUxUX1dFQkdMIik7CiBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJT
SU9OX1dFQkdMLCBnbC5OT05FKTsKIHNob3VsZEJlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuVU5QQUNL
X0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCkiLCAiZ2wuTk9ORSIpOwotZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUiwKLSAgICAic2V0L2dldCBVTlBBQ0tfQ09MT1JTUEFDRV9DT05W
RVJTSU9OX1dFQkdMIHNob3VsZCBnZW5lcmF0ZSBubyBlcnJvciIpOworZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgInNldC9nZXQgVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9X
RUJHTCBzaG91bGQgZ2VuZXJhdGUgbm8gZXJyb3IiKTsKIAogc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKIDwvc2NyaXB0Pgo=
</data>
<flag name="review"
          id="68789"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>