<?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>34459</bug_id>
          
          <creation_ts>2010-02-01 17:52:25 -0800</creation_ts>
          <short_desc>texImage2D and texSubImage2D taking ImageData ignore flipY and premultiplyAlpha</short_desc>
          <delta_ts>2010-02-26 07:49:09 -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>cmarrin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kbr</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>186736</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-02-01 17:52:25 -0800</bug_when>
    <thetext>The texImage2D and texSubImage2D variants taking ImageData currently ignore the flipY and premultiplyAlpha flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193216</commentid>
    <comment_count>1</comment_count>
      <attachid>49351</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-02-23 19:08:15 -0800</bug_when>
    <thetext>Created attachment 49351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193217</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-02-23 19:25:47 -0800</bug_when>
    <thetext>FWIW, I reviewed this patch with Mo and it looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193631</commentid>
    <comment_count>3</comment_count>
      <attachid>49351</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-24 21:58:20 -0800</bug_when>
    <thetext>Comment on attachment 49351
Patch

Rejecting patch 49351 from commit-queue.

Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;]&quot; exit_code: 1
Last 500 characters of output:
LRenderingContext.cpp
	M	WebCore/platform/graphics/GraphicsContext3D.cpp
	M	WebCore/platform/graphics/GraphicsContext3D.h
A repository hook failed: MERGE request failed on &apos;/repository/webkit/trunk&apos;: Commit blocked by pre-commit hook (exit code 1) with output:
svnlook: Can&apos;t write to stream: Broken pipe

    The following ChangeLog files contain OOPS:

        trunk/LayoutTests/ChangeLog

    Please don&apos;t ever say &quot;OOPS&quot; in a ChangeLog file.
 at /usr/local/git/libexec/git-core/git-svn line 558


Full output: http://webkit-commit-queue.appspot.com/results/309342</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193779</commentid>
    <comment_count>4</comment_count>
      <attachid>49501</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-02-25 09:55:51 -0800</bug_when>
    <thetext>Created attachment 49501
revised patch : add description replacing the OOPS in change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193802</commentid>
    <comment_count>5</comment_count>
      <attachid>49509</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-02-25 10:26:25 -0800</bug_when>
    <thetext>Created attachment 49509
revised patch : add detailed description in change logs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193890</commentid>
    <comment_count>6</comment_count>
      <attachid>49534</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-02-25 15:03:33 -0800</bug_when>
    <thetext>Created attachment 49534
revised patch: remove svn:executable property from html file and remove param name imageData from declaration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193922</commentid>
    <comment_count>7</comment_count>
      <attachid>49534</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-02-25 16:20:06 -0800</bug_when>
    <thetext>Comment on attachment 49534
revised patch: remove svn:executable property from html file and remove param name imageData from declaration

r+ based on Oliver&apos;s past review and the incremental diff to the current state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194094</commentid>
    <comment_count>8</comment_count>
      <attachid>49534</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-26 07:49:05 -0800</bug_when>
    <thetext>Comment on attachment 49534
revised patch: remove svn:executable property from html file and remove param name imageData from declaration

Clearing flags on attachment: 49534

Committed r55283: &lt;http://trac.webkit.org/changeset/55283&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194095</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-26 07:49:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49351</attachid>
            <date>2010-02-23 19:08:15 -0800</date>
            <delta_ts>2010-02-25 09:55:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>texImage2D.patch</filename>
            <type>text/plain</type>
            <size>15529</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTE4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDItMjMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0ZXhJbWFn
ZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRha2luZyBJbWFnZURhdGEgaWdub3JlIGZsaXBZIGFuZCBw
cmVtdWx0aXBseUFscGhhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNDQ1OQorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5odG1sCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OmV4dHJhY3RJbWFnZURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmg6CisKIDIwMTAtMDItMjMgIERtaXRyeSBUaXRvdiAgPGRpbWlj
aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4
OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZp
c2lvbiA1NTE4MCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYzNCwxMiArMTYzNCwxMCBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIC8vIEZJWE1FOiBGb3Igbm93IHdlIGlnbm9yZSBhbnkgZXJyb3JzIHJl
dHVybmVkCi0gICAgLy8gRklYTUU6IE5lZWQgYSBmb3JtIG9mIHRoaXMgY2FsbCB0aGF0IGNhbiB0
YWtlIGJvdGggYSBwaXhlbCBidWZmZXIgYW5kIGZsaXBZIGFuZCBwcmVtdWx0aXBseUFscGhhIGZs
YWdzCi0gICAgVU5VU0VEX1BBUkFNKGZsaXBZKTsKLSAgICBVTlVTRURfUEFSQU0ocHJlbXVsdGlw
bHlBbHBoYSk7CiAgICAgZWMgPSAwOwotICAgIG1fY29udGV4dC0+dGV4SW1hZ2UyRCh0YXJnZXQs
IGxldmVsLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgcGl4ZWxzLT53aWR0aCgpLCBwaXhlbHMt
PmhlaWdodCgpLCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6
OlVOU0lHTkVEX0JZVEUsIHBpeGVscy0+ZGF0YSgpLT5kYXRhKCktPmRhdGEoKSk7Ci0gICAgLy9S
TFA6IG1fY29udGV4dC0+dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBwaXhlbHMsIGZsaXBZLCBw
cmVtdWx0aXBseUFscGhhKTsKKyAgICBWZWN0b3I8dWludDhfdD4gZGF0YTsKKyAgICBtX2NvbnRl
eHQtPmV4dHJhY3RJbWFnZURhdGEocGl4ZWxzLCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgZGF0
YSk7CisgICAgbV9jb250ZXh0LT50ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIEdyYXBoaWNzQ29u
dGV4dDNEOjpSR0JBLCBwaXhlbHMtPndpZHRoKCksIHBpeGVscy0+aGVpZ2h0KCksIDAsIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSwgZGF0
YS5kYXRhKCkpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKQEAg
LTE3MjQsMTEgKzE3MjIsMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1Yklt
YWdlMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW1hZ2VEYXRh
KiBwaXhlbHMsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgLy8gRklYTUU6IEZvciBub3cgd2UgaWdub3JlIGFueSBlcnJvcnMgcmV0
dXJuZWQKLSAgICBVTlVTRURfUEFSQU0oZmxpcFkpOwotICAgIFVOVVNFRF9QQVJBTShwcmVtdWx0
aXBseUFscGhhKTsKICAgICBlYyA9IDA7Ci0gICAgbV9jb250ZXh0LT50ZXhTdWJJbWFnZTJEKHRh
cmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5o
ZWlnaHQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJ
R05FRF9CWVRFLCBwaXhlbHMtPmRhdGEoKS0+ZGF0YSgpLT5kYXRhKCkpOwotICAgIC8vUkxQOiBt
X2NvbnRleHQtPnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwg
cGl4ZWxzLCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGRh
dGE7CisgICAgbV9jb250ZXh0LT5leHRyYWN0SW1hZ2VEYXRhKHBpeGVscywgZmxpcFksIHByZW11
bHRpcGx5QWxwaGEsIGRhdGEpOworICAgIG1fY29udGV4dC0+dGV4U3ViSW1hZ2UyRCh0YXJnZXQs
IGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBwaXhlbHMtPndpZHRoKCksIHBpeGVscy0+aGVpZ2h0
KCksIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
QllURSwgZGF0YS5kYXRhKCkpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7
CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0QuY3BwCShyZXZpc2lvbiA1NTE4MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKIAogI2luY2x1ZGUgIkltYWdlLmgiCisjaW5j
bHVkZSAiSW1hZ2VEYXRhLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTcsNiArNTgs
MjggQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YQogICAgIHJldHVy
biB0cnVlOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0SW1hZ2VEYXRhKElt
YWdlRGF0YSogaW1hZ2VEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sIGZsaXBZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sIHByZW11bHRpcGx5QWxwaGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiYgZGF0YSkKK3sKKyAgICBpZiAoIWltYWdlRGF0YSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGludCB3aWR0aCA9IGltYWdlRGF0YS0+d2lkdGgo
KTsKKyAgICBpbnQgaGVpZ2h0ID0gaW1hZ2VEYXRhLT5oZWlnaHQoKTsKKyAgICBpbnQgZGF0YUJ5
dGVzID0gd2lkdGggKiBoZWlnaHQgKiA0OworICAgIGRhdGEucmVzaXplKGRhdGFCeXRlcyk7Cisg
ICAgdWludDhfdCogZHN0ID0gZGF0YS5kYXRhKCk7CisgICAgdWludDhfdCogc3JjID0gaW1hZ2VE
YXRhLT5kYXRhKCktPmRhdGEoKS0+ZGF0YSgpOworICAgIG1lbWNweShkc3QsIHNyYywgZGF0YUJ5
dGVzKTsKKyAgICBwcm9jZXNzSW1hZ2VEYXRhKGRzdCwKKyAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLAorICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAg
ZmxpcFksCisgICAgICAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhID8ga0FscGhhRG9Q
cmVtdWx0aXBseSA6IGtBbHBoYURvTm90aGluZyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OnByb2Nlc3NJbWFnZURhdGEodWludDhfdCogaW1hZ2VEYXRh
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB3aWR0
aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaGVp
Z2h0LApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaAkocmV2aXNpb24gNTUxODApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIFdlYkdMU2hhZGVyOwogICAgIGNsYXNzIFdlYkdMVGV4dHVy
ZTsKICAgICBjbGFzcyBJbWFnZTsKKyAgICBjbGFzcyBJbWFnZURhdGE7CiAKICAgICBzdHJ1Y3Qg
QWN0aXZlSW5mbyB7CiAgICAgICAgIFN0cmluZyBuYW1lOwpAQCAtNDM1LDYgKzQzNiwxNCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQqIGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCogaW50ZXJuYWxGb3JtYXQpOwogCisgICAgICAgIC8vIEV4dHJhY3RzIHRoZSBjb250ZW50cyBv
ZiB0aGUgZ2l2ZW4gSW1hZ2VEYXRhIGludG8gdGhlIHBhc3NlZAorICAgICAgICAvLyBWZWN0b3Is
IG9iZXlpbmcgdGhlIGZsaXBZIGFuZCBwcmVtdWx0aXBseUFscGhhIGZsYWdzLgorICAgICAgICAv
LyBSZXR1cm5zIHRydWUgdXBvbiBzdWNjZXNzLgorICAgICAgICBib29sIGV4dHJhY3RJbWFnZURh
dGEoSW1hZ2VEYXRhKiBpbWFnZURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGZsaXBZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBwcmVtdWx0aXBs
eUFscGhhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+JiBk
YXRhKTsKKwogICAgICAgICAvLyBQcm9jZXNzZXMgdGhlIGdpdmVuIGltYWdlIGRhdGEgaW4gcHJl
cGFyYXRpb24gZm9yIHVwbG9hZGluZwogICAgICAgICAvLyB2aWEgdGV4SW1hZ2UyRCBvciB0ZXhT
dWJJbWFnZTJELiBUaGUgaW5wdXQgZGF0YSBtdXN0IGJlIGluCiAgICAgICAgIC8vIDQtY29tcG9u
ZW50IGZvcm1hdCB3aXRoIHRoZSBhbHBoYSBjaGFubmVsIGxhc3QgKGkuZS4sIFJHQkEKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDU1MTgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDItMjMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
ZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgICog
ZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1k
YXRhLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvdGV4
LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWw6IEFkZGVkLgorCiAy
MDEwLTAyLTIzICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw1MCBAQAorIAorVmVyaWZ5IHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBw
YXRocyB0YWtpbmcgSW1hZ2VEYXRhLCBpbiBwYXJ0aWN1bGFyIGZsaXBZIGFuZCBwcmVtdWx0aXBs
eUFscGhhIGFyZ3VtZW50CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUmVncmVzc2lv
biB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NTkg
OiBSZWZhY3RvciB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRha2luZyBJbWFnZURhdGEg
dG8gdXNlIGNvbW1vbiBjb2RlCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlwWT10cnVlIGFu
ZCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlwWT1mYWxzZSBhbmQgcHJlbXVs
dGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNv
cnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xv
cgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggZmxpcFk9dHJ1ZSBhbmQgcHJlbXVsdGlwbHlBbHBo
YT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5n
IHRleEltYWdlMkQgd2l0aCBmbGlwWT1mYWxzZSBhbmQgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitD
aGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2lu
ZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1Yklt
YWdlMkQgd2l0aCBmbGlwWT10cnVlIGFuZCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQg
d2l0aCBmbGlwWT1mYWxzZSBhbmQgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90
dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVs
CitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGgg
ZmxpcFk9dHJ1ZSBhbmQgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4
ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1Mg
cGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT1m
YWxzZSBhbmQgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0
aC1pbWFnZS1kYXRhLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMDEgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIv
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsczNkLmpzIj4gPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2
c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjMyBnX1Bvc2l0
aW9uOworYXR0cmlidXRlIHZlYzIgZ19UZXhDb29yZDA7CisKK3ZhcnlpbmcgdmVjMiB0ZXhDb29y
ZDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoZ19Qb3NpdGlvbi54
LCBnX1Bvc2l0aW9uLnksIGdfUG9zaXRpb24ueiwgMS4wKTsKKyAgICB0ZXhDb29yZCA9IGdfVGV4
Q29vcmQwOworfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hh
ZGVyL3gtZnJhZ21lbnQiPgordW5pZm9ybSBzYW1wbGVyMkQgdGV4OwordmFyeWluZyB2ZWMyIHRl
eENvb3JkOworCit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRCh0
ZXgsIHRleENvb3JkKTsKK30KKzwvc2NyaXB0PgorCis8c2NyaXB0PgordmFyIGdsID0gbnVsbDsK
K3ZhciB0ZXh0dXJlTG9jID0gbnVsbDsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsK
K3ZhciBpbWFnZURhdGEgPSBudWxsOworCitmdW5jdGlvbiBpbml0KCkKK3sKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZGVzY3JpcHRpb24oJ1Zlcmlm
eSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIEltYWdlRGF0
YSwgaW4gcGFydGljdWxhciBmbGlwWSBhbmQgcHJlbXVsdGlwbHlBbHBoYSBhcmd1bWVudCcpOwor
CisgICAgZGVidWcoJ1JlZ3Jlc3Npb24gdGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDU5Ij5odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzQ0NTk8L2E+IDogPGNvZGU+UmVmYWN0b3IgdGV4SW1hZ2UyRCBhbmQg
dGV4U3ViSW1hZ2UyRCB0YWtpbmcgSW1hZ2VEYXRhIHRvIHVzZSBjb21tb24gY29kZTwvY29kZT4n
KTsKKworICAgIHZhciBjYW52YXMyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXhjYW52
YXMiKTsKKyAgICB2YXIgY29udGV4dDJkID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsKKyAg
ICBpbWFnZURhdGEgPSBjb250ZXh0MmQuY3JlYXRlSW1hZ2VEYXRhKDEsIDIpOworICAgIHZhciBk
YXRhID0gaW1hZ2VEYXRhLmRhdGE7CisgICAgZGF0YVswXSA9IDI1NTsKKyAgICBkYXRhWzFdID0g
MDsKKyAgICBkYXRhWzJdID0gMDsKKyAgICBkYXRhWzNdID0gMjU1OworICAgIGRhdGFbNF0gPSAw
OworICAgIGRhdGFbNV0gPSAyNTU7CisgICAgZGF0YVs2XSA9IDA7CisgICAgZGF0YVs3XSA9IDA7
CisKKyAgICBnbCA9IGluaXRXZWJHTCgiZXhhbXBsZSIsICJ2c2hhZGVyIiwgImZzaGFkZXIiLCBb
ICJnX1Bvc2l0aW9uIiwgImdfVGV4Q29vcmQwIiBdLCBbIDAsIDAsIDAsIDEgXSwgMSk7CisgICAg
Z2wudmlld3BvcnQoMCwgMCwgMSwgMik7CisgICAgZ2wuZGlzYWJsZShnbC5CTEVORCk7CisKKyAg
ICB0ZXh0dXJlTG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGdsLnByb2dyYW0sICJ0ZXgiKTsK
KworICAgIHZhciB2ZXJ0aWNlcyA9IG5ldyBXZWJHTEZsb2F0QXJyYXkoWworICAgICAgICAgMS4w
LCAgMS4wLCAwLjAsCisgICAgICAgIC0xLjAsICAxLjAsIDAuMCwKKyAgICAgICAgLTEuMCwgLTEu
MCwgMC4wLAorICAgICAgICAgMS4wLCAgMS4wLCAwLjAsCisgICAgICAgIC0xLjAsIC0xLjAsIDAu
MCwKKyAgICAgICAgIDEuMCwgLTEuMCwgMC4wXSk7CisgICAgdmFyIHRleENvb3JkcyA9IG5ldyBX
ZWJHTEZsb2F0QXJyYXkoWworICAgICAgICAxLjAsIDEuMCwKKyAgICAgICAgMC4wLCAxLjAsCisg
ICAgICAgIDAuMCwgMC4wLAorICAgICAgICAxLjAsIDEuMCwKKyAgICAgICAgMC4wLCAwLjAsCisg
ICAgICAgIDEuMCwgMC4wXSk7CisgICAgdmFyIHRleENvb3JkT2Zmc2V0ID0gdmVydGljZXMuYnl0
ZUxlbmd0aDsKKworICAgIHZhciB2Ym8gPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5k
QnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmJvKTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZ
X0JVRkZFUiwKKyAgICAgICAgICAgICAgICAgIHRleENvb3JkT2Zmc2V0ICsgdGV4Q29vcmRzLmJ5
dGVMZW5ndGgsCisgICAgICAgICAgICAgICAgICBnbC5TVEFUSUNfRFJBVyk7CisgICAgZ2wuYnVm
ZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIDAsIHZlcnRpY2VzKTsKKyAgICBnbC5idWZmZXJT
dWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgdGV4Q29vcmRPZmZzZXQsIHRleENvb3Jkcyk7CisKKyAg
ICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2lu
dGVyKDAsIDMsIGdsLkZMT0FULCBnbC5GQUxTRSwgMCwgMCk7CisgICAgZ2wuZW5hYmxlVmVydGV4
QXR0cmliQXJyYXkoMSk7CisgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigxLCAyLCBnbC5GTE9B
VCwgZ2wuRkFMU0UsIDAsIHRleENvb3JkT2Zmc2V0KTsKKworICAgIHJ1blRlc3QoKTsKK30KKwor
Ly8gVGhlc2UgdHdvIGRlY2xhcmF0aW9ucyBuZWVkIHRvIGJlIGdsb2JhbCBmb3IgInNob3VsZEJl
IiB0byBzZWUgdGhlbQordmFyIGJ1ZiA9IG51bGw7Cit2YXIgaWR4ID0gMDsKK3ZhciBwaXhlbCA9
IFswLCAwLCAwLCAxXTsKK3ZhciBjb3JyZWN0Q29sb3IgPSBudWxsOworCitmdW5jdGlvbiBydW5P
bmVJdGVyYXRpb24odXNlVGV4U3ViSW1hZ2UyRCwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIHRv
cENvbG9yLCBib3R0b21Db2xvcikKK3sKKyAgICBkZWJ1ZygnVGVzdGluZyAnICsgKHVzZVRleFN1
YkltYWdlMkQgPyAndGV4U3ViSW1hZ2UyRCcgOiAndGV4SW1hZ2UyRCcpICsKKyAgICAgICAgICAn
IHdpdGggZmxpcFk9JyArIGZsaXBZICsgJyBhbmQgcHJlbXVsdGlwbHlBbHBoYT0nICsgcHJlbXVs
dGlwbHlBbHBoYSk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRI
X0JVRkZFUl9CSVQpOworICAgIC8vIEVuYWJsZSB3cml0ZXMgdG8gdGhlIFJHQkEgY2hhbm5lbHMK
KyAgICBnbC5jb2xvck1hc2soMSwgMSwgMSwgMCk7CisgICAgdmFyIHRleHR1cmUgPSBnbC5jcmVh
dGVUZXh0dXJlKCk7CisgICAgLy8gQmluZCB0aGUgdGV4dHVyZSB0byB0ZXh0dXJlIHVuaXQgMAor
ICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworICAgIC8vIFNldCB1
cCB0ZXh0dXJlIHBhcmFtZXRlcnMKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOworICAg
IC8vIFVwbG9hZCB0aGUgaW1hZ2UgaW50byB0aGUgdGV4dHVyZQorICAgIGlmICh1c2VUZXhTdWJJ
bWFnZTJEKSB7CisgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUgdG8gYmxhY2sgZmly
c3QKKyAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAxLCAy
LCAwLAorICAgICAgICAgICAgICAgICAgICAgIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51
bGwpOworICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGlt
YWdlRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmbGlwWSwgcHJlbXVsdGlwbHlBbHBo
YSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBpbWFnZURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgZmxpcFksIHByZW11bHRpcGx5QWxw
aGEpOworICAgIH0KKworICAgIC8vIFBvaW50IHRoZSB1bmlmb3JtIHNhbXBsZXIgdG8gdGV4dHVy
ZSB1bml0IDAKKyAgICBnbC51bmlmb3JtMWkodGV4dHVyZUxvYywgMCk7CisgICAgLy8gRHJhdyB0
aGUgdHJpYW5nbGVzCisgICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOworCisg
ICAgLy8gUmVhZCBiYWNrIHRoZSByZW5kZXJpbmcgcmVzdWx0cworICAgIGJ1ZiA9IGdsLnJlYWRQ
aXhlbHMoMCwgMCwgMSwgMiwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSk7CisgICAgLy8gQ2hl
Y2sgdGhlIHRvcCBwaXhlbCBhbmQgYm90dG9tIHBpeGVsIGFuZCBtYWtlIHN1cmUgdGhleSBoYXZl
CisgICAgLy8gdGhlIHJpZ2h0IGNvbG9yLgorICAgIGRlYnVnKCJDaGVja2luZyBib3R0b20gcGl4
ZWwiKTsKKyAgICBjb3JyZWN0Q29sb3IgPSBib3R0b21Db2xvcjsKKyAgICBpZHggPSAwOworICAg
IHBpeGVsWzBdID0gYnVmW2lkeF07CisgICAgcGl4ZWxbMV0gPSBidWZbaWR4ICsgMV07CisgICAg
cGl4ZWxbMl0gPSBidWZbaWR4ICsgMl07CisgICAgcGl4ZWxbM10gPSBidWZbaWR4ICsgM107Cisg
ICAgc2hvdWxkQmUoInBpeGVsIiwgImNvcnJlY3RDb2xvciIpOworICAgIGRlYnVnKCJDaGVja2lu
ZyB0b3AgcGl4ZWwiKTsKKyAgICBjb3JyZWN0Q29sb3IgPSB0b3BDb2xvcjsKKyAgICBpZHggPSA0
OworICAgIHBpeGVsWzBdID0gYnVmW2lkeF07CisgICAgcGl4ZWxbMV0gPSBidWZbaWR4ICsgMV07
CisgICAgcGl4ZWxbMl0gPSBidWZbaWR4ICsgMl07CisgICAgcGl4ZWxbM10gPSBidWZbaWR4ICsg
M107CisgICAgc2hvdWxkQmUoInBpeGVsIiwgImNvcnJlY3RDb2xvciIpOworfQorCitmdW5jdGlv
biBydW5UZXN0KCkKK3sKKyAgICB2YXIgcmVkID0gWzI1NSwgMCwgMCwgMjU1XTsKKyAgICB2YXIg
Z3JlZW4gPSBbMCwgMjU1LCAwLCAyNTVdOworICAgIHZhciByZWRQcmVtdWx0aXBseUFscGhhID0g
WzI1NSwgMCwgMCwgMjU1XTsKKyAgICB2YXIgZ3JlZW5QcmVtdWx0aXBseUFscGhhID0gWzAsIDAs
IDAsIDI1NV07CisKKyAgICBydW5PbmVJdGVyYXRpb24oZmFsc2UsIHRydWUsIGZhbHNlLAorICAg
ICAgICAgICAgICAgICAgICByZWQsIGdyZWVuKTsKKyAgICBydW5PbmVJdGVyYXRpb24oZmFsc2Us
IGZhbHNlLCBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgZ3JlZW4sIHJlZCk7CisgICAgcnVu
T25lSXRlcmF0aW9uKGZhbHNlLCB0cnVlLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICByZWRQ
cmVtdWx0aXBseUFscGhhLCBncmVlblByZW11bHRpcGx5QWxwaGEpOworICAgIHJ1bk9uZUl0ZXJh
dGlvbihmYWxzZSwgZmFsc2UsIHRydWUsCisgICAgICAgICAgICAgICAgICAgIGdyZWVuUHJlbXVs
dGlwbHlBbHBoYSwgcmVkUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgcnVuT25lSXRlcmF0aW9uKHRy
dWUsIHRydWUsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICByZWQsIGdyZWVuKTsKKyAgICBy
dW5PbmVJdGVyYXRpb24odHJ1ZSwgZmFsc2UsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICBn
cmVlbiwgcmVkKTsKKyAgICBydW5PbmVJdGVyYXRpb24odHJ1ZSwgdHJ1ZSwgdHJ1ZSwKKyAgICAg
ICAgICAgICAgICAgICAgcmVkUHJlbXVsdGlwbHlBbHBoYSwgZ3JlZW5QcmVtdWx0aXBseUFscGhh
KTsKKyAgICBydW5PbmVJdGVyYXRpb24odHJ1ZSwgZmFsc2UsIHRydWUsCisgICAgICAgICAgICAg
ICAgICAgIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSwgcmVkUHJlbXVsdGlwbHlBbHBoYSk7CisKKyAg
ICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIHZhciBlcGlsb2d1ZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworICAgIGVwaWxvZ3VlLm9ubG9hZCA9IGZpbmlzaDsK
KyAgICBlcGlsb2d1ZS5zcmMgPSAiLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI7
CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlcGlsb2d1ZSk7Cit9CisKK2Z1bmN0aW9u
IGZpbmlzaCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKzxjYW52YXMgaWQ9InRleGNhbnZh
cyIgd2lkdGg9IjFweCIgaGVpZ2h0PSIycHgiPjwvY2FudmFzPgorPGNhbnZhcyBpZD0iZXhhbXBs
ZSIgd2lkdGg9IjFweCIgaGVpZ2h0PSIycHgiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuaHRtbApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVk
OiBzdm46ZXhlY3V0YWJsZQogICArICoKCg==
</data>
<flag name="review"
          id="32200"
          type_id="1"
          status="+"
          setter="oliver"
    />
    <flag name="commit-queue"
          id="32202"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49501</attachid>
            <date>2010-02-25 09:55:51 -0800</date>
            <delta_ts>2010-02-25 10:26:25 -0800</delta_ts>
            <desc>revised patch : add description replacing the OOPS in change log</desc>
            <filename>texImage2D.patch</filename>
            <type>text/plain</type>
            <size>15619</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTE4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDItMjMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0ZXhJbWFn
ZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRha2luZyBJbWFnZURhdGEgaWdub3JlIGZsaXBZIGFuZCBw
cmVtdWx0aXBseUFscGhhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNDQ1OQorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5odG1sCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OmV4dHJhY3RJbWFnZURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmg6CisKIDIwMTAtMDItMjMgIERtaXRyeSBUaXRvdiAgPGRpbWlj
aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4
OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZp
c2lvbiA1NTE4MCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYzNCwxMiArMTYzNCwxMCBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRCh1CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIC8vIEZJWE1FOiBGb3Igbm93IHdlIGlnbm9yZSBhbnkgZXJyb3JzIHJl
dHVybmVkCi0gICAgLy8gRklYTUU6IE5lZWQgYSBmb3JtIG9mIHRoaXMgY2FsbCB0aGF0IGNhbiB0
YWtlIGJvdGggYSBwaXhlbCBidWZmZXIgYW5kIGZsaXBZIGFuZCBwcmVtdWx0aXBseUFscGhhIGZs
YWdzCi0gICAgVU5VU0VEX1BBUkFNKGZsaXBZKTsKLSAgICBVTlVTRURfUEFSQU0ocHJlbXVsdGlw
bHlBbHBoYSk7CiAgICAgZWMgPSAwOwotICAgIG1fY29udGV4dC0+dGV4SW1hZ2UyRCh0YXJnZXQs
IGxldmVsLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgcGl4ZWxzLT53aWR0aCgpLCBwaXhlbHMt
PmhlaWdodCgpLCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6
OlVOU0lHTkVEX0JZVEUsIHBpeGVscy0+ZGF0YSgpLT5kYXRhKCktPmRhdGEoKSk7Ci0gICAgLy9S
TFA6IG1fY29udGV4dC0+dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBwaXhlbHMsIGZsaXBZLCBw
cmVtdWx0aXBseUFscGhhKTsKKyAgICBWZWN0b3I8dWludDhfdD4gZGF0YTsKKyAgICBtX2NvbnRl
eHQtPmV4dHJhY3RJbWFnZURhdGEocGl4ZWxzLCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgZGF0
YSk7CisgICAgbV9jb250ZXh0LT50ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIEdyYXBoaWNzQ29u
dGV4dDNEOjpSR0JBLCBwaXhlbHMtPndpZHRoKCksIHBpeGVscy0+aGVpZ2h0KCksIDAsIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSwgZGF0
YS5kYXRhKCkpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKQEAg
LTE3MjQsMTEgKzE3MjIsMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1Yklt
YWdlMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW1hZ2VEYXRh
KiBwaXhlbHMsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgLy8gRklYTUU6IEZvciBub3cgd2UgaWdub3JlIGFueSBlcnJvcnMgcmV0
dXJuZWQKLSAgICBVTlVTRURfUEFSQU0oZmxpcFkpOwotICAgIFVOVVNFRF9QQVJBTShwcmVtdWx0
aXBseUFscGhhKTsKICAgICBlYyA9IDA7Ci0gICAgbV9jb250ZXh0LT50ZXhTdWJJbWFnZTJEKHRh
cmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5o
ZWlnaHQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJ
R05FRF9CWVRFLCBwaXhlbHMtPmRhdGEoKS0+ZGF0YSgpLT5kYXRhKCkpOwotICAgIC8vUkxQOiBt
X2NvbnRleHQtPnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwg
cGl4ZWxzLCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGRh
dGE7CisgICAgbV9jb250ZXh0LT5leHRyYWN0SW1hZ2VEYXRhKHBpeGVscywgZmxpcFksIHByZW11
bHRpcGx5QWxwaGEsIGRhdGEpOworICAgIG1fY29udGV4dC0+dGV4U3ViSW1hZ2UyRCh0YXJnZXQs
IGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBwaXhlbHMtPndpZHRoKCksIHBpeGVscy0+aGVpZ2h0
KCksIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
QllURSwgZGF0YS5kYXRhKCkpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7
CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0QuY3BwCShyZXZpc2lvbiA1NTE4MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKIAogI2luY2x1ZGUgIkltYWdlLmgiCisjaW5j
bHVkZSAiSW1hZ2VEYXRhLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTcsNiArNTgs
MjggQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YQogICAgIHJldHVy
biB0cnVlOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0SW1hZ2VEYXRhKElt
YWdlRGF0YSogaW1hZ2VEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sIGZsaXBZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sIHByZW11bHRpcGx5QWxwaGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiYgZGF0YSkKK3sKKyAgICBpZiAoIWltYWdlRGF0YSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGludCB3aWR0aCA9IGltYWdlRGF0YS0+d2lkdGgo
KTsKKyAgICBpbnQgaGVpZ2h0ID0gaW1hZ2VEYXRhLT5oZWlnaHQoKTsKKyAgICBpbnQgZGF0YUJ5
dGVzID0gd2lkdGggKiBoZWlnaHQgKiA0OworICAgIGRhdGEucmVzaXplKGRhdGFCeXRlcyk7Cisg
ICAgdWludDhfdCogZHN0ID0gZGF0YS5kYXRhKCk7CisgICAgdWludDhfdCogc3JjID0gaW1hZ2VE
YXRhLT5kYXRhKCktPmRhdGEoKS0+ZGF0YSgpOworICAgIG1lbWNweShkc3QsIHNyYywgZGF0YUJ5
dGVzKTsKKyAgICBwcm9jZXNzSW1hZ2VEYXRhKGRzdCwKKyAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoLAorICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAg
ZmxpcFksCisgICAgICAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhID8ga0FscGhhRG9Q
cmVtdWx0aXBseSA6IGtBbHBoYURvTm90aGluZyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OnByb2Nlc3NJbWFnZURhdGEodWludDhfdCogaW1hZ2VEYXRh
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB3aWR0
aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaGVp
Z2h0LApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaAkocmV2aXNpb24gNTUxODApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIFdlYkdMU2hhZGVyOwogICAgIGNsYXNzIFdlYkdMVGV4dHVy
ZTsKICAgICBjbGFzcyBJbWFnZTsKKyAgICBjbGFzcyBJbWFnZURhdGE7CiAKICAgICBzdHJ1Y3Qg
QWN0aXZlSW5mbyB7CiAgICAgICAgIFN0cmluZyBuYW1lOwpAQCAtNDM1LDYgKzQzNiwxNCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQqIGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCogaW50ZXJuYWxGb3JtYXQpOwogCisgICAgICAgIC8vIEV4dHJhY3RzIHRoZSBjb250ZW50cyBv
ZiB0aGUgZ2l2ZW4gSW1hZ2VEYXRhIGludG8gdGhlIHBhc3NlZAorICAgICAgICAvLyBWZWN0b3Is
IG9iZXlpbmcgdGhlIGZsaXBZIGFuZCBwcmVtdWx0aXBseUFscGhhIGZsYWdzLgorICAgICAgICAv
LyBSZXR1cm5zIHRydWUgdXBvbiBzdWNjZXNzLgorICAgICAgICBib29sIGV4dHJhY3RJbWFnZURh
dGEoSW1hZ2VEYXRhKiBpbWFnZURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGZsaXBZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBwcmVtdWx0aXBs
eUFscGhhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+JiBk
YXRhKTsKKwogICAgICAgICAvLyBQcm9jZXNzZXMgdGhlIGdpdmVuIGltYWdlIGRhdGEgaW4gcHJl
cGFyYXRpb24gZm9yIHVwbG9hZGluZwogICAgICAgICAvLyB2aWEgdGV4SW1hZ2UyRCBvciB0ZXhT
dWJJbWFnZTJELiBUaGUgaW5wdXQgZGF0YSBtdXN0IGJlIGluCiAgICAgICAgIC8vIDQtY29tcG9u
ZW50IGZvcm1hdCB3aXRoIHRoZSBhbHBoYSBjaGFubmVsIGxhc3QgKGkuZS4sIFJHQkEKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDU1MTgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDItMjMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0
ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRha2luZyBJbWFnZURhdGEgaWdub3JlIGZsaXBZ
IGFuZCBwcmVtdWx0aXBseUFscGhhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNDQ1OQorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWlt
YWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQt
d2l0aC1pbWFnZS1kYXRhLmh0bWw6IEFkZGVkLgorCiAyMDEwLTAyLTIzICBFbnJpY2EgQ2FzdWNj
aSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2Vy
LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRo
LWltYWdlLWRhdGEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRh
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorIAorVmVyaWZ5IHRl
eEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgSW1hZ2VEYXRhLCBp
biBwYXJ0aWN1bGFyIGZsaXBZIGFuZCBwcmVtdWx0aXBseUFscGhhIGFyZ3VtZW50CisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NTkgOiBSZWZhY3RvciB0ZXhJbWFnZTJEIGFu
ZCB0ZXhTdWJJbWFnZTJEIHRha2luZyBJbWFnZURhdGEgdG8gdXNlIGNvbW1vbiBjb2RlCitUZXN0
aW5nIHRleEltYWdlMkQgd2l0aCBmbGlwWT10cnVlIGFuZCBwcmVtdWx0aXBseUFscGhhPWZhbHNl
CitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVj
a2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleElt
YWdlMkQgd2l0aCBmbGlwWT1mYWxzZSBhbmQgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tp
bmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9w
IHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdp
dGggZmxpcFk9dHJ1ZSBhbmQgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20g
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0aCBmbGlwWT1m
YWxzZSBhbmQgcHJlbXVsdGlwbHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BB
U1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwg
aXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT10cnVlIGFu
ZCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29y
cmVjdENvbG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT1mYWxzZSBhbmQgcHJl
bXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9dHJ1ZSBhbmQgcHJlbXVsdGlw
bHlBbHBoYT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVj
dENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitU
ZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT1mYWxzZSBhbmQgcHJlbXVsdGlwbHlBbHBo
YT10cnVlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9y
CitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1p
bWFnZS1kYXRhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRhLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1
Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
MDEgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGls
czNkLmpzIj4gPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94
LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjMyBnX1Bvc2l0aW9uOworYXR0cmlidXRlIHZlYzIgZ19U
ZXhDb29yZDA7CisKK3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKKwordm9pZCBtYWluKCkKK3sKKyAg
ICBnbF9Qb3NpdGlvbiA9IHZlYzQoZ19Qb3NpdGlvbi54LCBnX1Bvc2l0aW9uLnksIGdfUG9zaXRp
b24ueiwgMS4wKTsKKyAgICB0ZXhDb29yZCA9IGdfVGV4Q29vcmQwOworfQorPC9zY3JpcHQ+CisK
KzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgordW5pZm9y
bSBzYW1wbGVyMkQgdGV4OwordmFyeWluZyB2ZWMyIHRleENvb3JkOworCit2b2lkIG1haW4oKQor
eworICAgIGdsX0ZyYWdDb2xvciA9IHRleHR1cmUyRCh0ZXgsIHRleENvb3JkKTsKK30KKzwvc2Ny
aXB0PgorCis8c2NyaXB0PgordmFyIGdsID0gbnVsbDsKK3ZhciB0ZXh0dXJlTG9jID0gbnVsbDsK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKK3ZhciBpbWFnZURhdGEgPSBudWxsOwor
CitmdW5jdGlvbiBpbml0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2Vi
S2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgfQorCisgICAgZGVzY3JpcHRpb24oJ1ZlcmlmeSB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJ
bWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIEltYWdlRGF0YSwgaW4gcGFydGljdWxhciBmbGlwWSBh
bmQgcHJlbXVsdGlwbHlBbHBoYSBhcmd1bWVudCcpOworCisgICAgZGVidWcoJ1JlZ3Jlc3Npb24g
dGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM0NDU5Ij5odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NTk8L2E+
IDogPGNvZGU+UmVmYWN0b3IgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCB0YWtpbmcgSW1h
Z2VEYXRhIHRvIHVzZSBjb21tb24gY29kZTwvY29kZT4nKTsKKworICAgIHZhciBjYW52YXMyZCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXhjYW52YXMiKTsKKyAgICB2YXIgY29udGV4dDJk
ID0gY2FudmFzMmQuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBpbWFnZURhdGEgPSBjb250ZXh0MmQu
Y3JlYXRlSW1hZ2VEYXRhKDEsIDIpOworICAgIHZhciBkYXRhID0gaW1hZ2VEYXRhLmRhdGE7Cisg
ICAgZGF0YVswXSA9IDI1NTsKKyAgICBkYXRhWzFdID0gMDsKKyAgICBkYXRhWzJdID0gMDsKKyAg
ICBkYXRhWzNdID0gMjU1OworICAgIGRhdGFbNF0gPSAwOworICAgIGRhdGFbNV0gPSAyNTU7Cisg
ICAgZGF0YVs2XSA9IDA7CisgICAgZGF0YVs3XSA9IDA7CisKKyAgICBnbCA9IGluaXRXZWJHTCgi
ZXhhbXBsZSIsICJ2c2hhZGVyIiwgImZzaGFkZXIiLCBbICJnX1Bvc2l0aW9uIiwgImdfVGV4Q29v
cmQwIiBdLCBbIDAsIDAsIDAsIDEgXSwgMSk7CisgICAgZ2wudmlld3BvcnQoMCwgMCwgMSwgMik7
CisgICAgZ2wuZGlzYWJsZShnbC5CTEVORCk7CisKKyAgICB0ZXh0dXJlTG9jID0gZ2wuZ2V0VW5p
Zm9ybUxvY2F0aW9uKGdsLnByb2dyYW0sICJ0ZXgiKTsKKworICAgIHZhciB2ZXJ0aWNlcyA9IG5l
dyBXZWJHTEZsb2F0QXJyYXkoWworICAgICAgICAgMS4wLCAgMS4wLCAwLjAsCisgICAgICAgIC0x
LjAsICAxLjAsIDAuMCwKKyAgICAgICAgLTEuMCwgLTEuMCwgMC4wLAorICAgICAgICAgMS4wLCAg
MS4wLCAwLjAsCisgICAgICAgIC0xLjAsIC0xLjAsIDAuMCwKKyAgICAgICAgIDEuMCwgLTEuMCwg
MC4wXSk7CisgICAgdmFyIHRleENvb3JkcyA9IG5ldyBXZWJHTEZsb2F0QXJyYXkoWworICAgICAg
ICAxLjAsIDEuMCwKKyAgICAgICAgMC4wLCAxLjAsCisgICAgICAgIDAuMCwgMC4wLAorICAgICAg
ICAxLjAsIDEuMCwKKyAgICAgICAgMC4wLCAwLjAsCisgICAgICAgIDEuMCwgMC4wXSk7CisgICAg
dmFyIHRleENvb3JkT2Zmc2V0ID0gdmVydGljZXMuYnl0ZUxlbmd0aDsKKworICAgIHZhciB2Ym8g
PSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwg
dmJvKTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwKKyAgICAgICAgICAgICAg
ICAgIHRleENvb3JkT2Zmc2V0ICsgdGV4Q29vcmRzLmJ5dGVMZW5ndGgsCisgICAgICAgICAgICAg
ICAgICBnbC5TVEFUSUNfRFJBVyk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZG
RVIsIDAsIHZlcnRpY2VzKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwg
dGV4Q29vcmRPZmZzZXQsIHRleENvb3Jkcyk7CisKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJB
cnJheSgwKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FULCBnbC5G
QUxTRSwgMCwgMCk7CisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7CisgICAgZ2wu
dmVydGV4QXR0cmliUG9pbnRlcigxLCAyLCBnbC5GTE9BVCwgZ2wuRkFMU0UsIDAsIHRleENvb3Jk
T2Zmc2V0KTsKKworICAgIHJ1blRlc3QoKTsKK30KKworLy8gVGhlc2UgdHdvIGRlY2xhcmF0aW9u
cyBuZWVkIHRvIGJlIGdsb2JhbCBmb3IgInNob3VsZEJlIiB0byBzZWUgdGhlbQordmFyIGJ1ZiA9
IG51bGw7Cit2YXIgaWR4ID0gMDsKK3ZhciBwaXhlbCA9IFswLCAwLCAwLCAxXTsKK3ZhciBjb3Jy
ZWN0Q29sb3IgPSBudWxsOworCitmdW5jdGlvbiBydW5PbmVJdGVyYXRpb24odXNlVGV4U3ViSW1h
Z2UyRCwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIHRvcENvbG9yLCBib3R0b21Db2xvcikKK3sK
KyAgICBkZWJ1ZygnVGVzdGluZyAnICsgKHVzZVRleFN1YkltYWdlMkQgPyAndGV4U3ViSW1hZ2Uy
RCcgOiAndGV4SW1hZ2UyRCcpICsKKyAgICAgICAgICAnIHdpdGggZmxpcFk9JyArIGZsaXBZICsg
JyBhbmQgcHJlbXVsdGlwbHlBbHBoYT0nICsgcHJlbXVsdGlwbHlBbHBoYSk7CisgICAgZ2wuY2xl
YXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICAgIC8vIEVu
YWJsZSB3cml0ZXMgdG8gdGhlIFJHQkEgY2hhbm5lbHMKKyAgICBnbC5jb2xvck1hc2soMSwgMSwg
MSwgMCk7CisgICAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgLy8gQmlu
ZCB0aGUgdGV4dHVyZSB0byB0ZXh0dXJlIHVuaXQgMAorICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRF
WFRVUkVfMkQsIHRleHR1cmUpOworICAgIC8vIFNldCB1cCB0ZXh0dXJlIHBhcmFtZXRlcnMKKyAg
ICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwg
Z2wuTkVBUkVTVCk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOworICAgIC8vIFVwbG9hZCB0aGUgaW1hZ2UgaW50
byB0aGUgdGV4dHVyZQorICAgIGlmICh1c2VUZXhTdWJJbWFnZTJEKSB7CisgICAgICAgIC8vIElu
aXRpYWxpemUgdGhlIHRleHR1cmUgdG8gYmxhY2sgZmlyc3QKKyAgICAgICAgZ2wudGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAxLCAyLCAwLAorICAgICAgICAgICAgICAgICAg
ICAgIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOworICAgICAgICBnbC50ZXhTdWJJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGltYWdlRGF0YSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBpbWFnZURhdGEsCisgICAgICAgICAg
ICAgICAgICAgICAgZmxpcFksIHByZW11bHRpcGx5QWxwaGEpOworICAgIH0KKworICAgIC8vIFBv
aW50IHRoZSB1bmlmb3JtIHNhbXBsZXIgdG8gdGV4dHVyZSB1bml0IDAKKyAgICBnbC51bmlmb3Jt
MWkodGV4dHVyZUxvYywgMCk7CisgICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVzCisgICAgZ2wuZHJh
d0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOworCisgICAgLy8gUmVhZCBiYWNrIHRoZSByZW5k
ZXJpbmcgcmVzdWx0cworICAgIGJ1ZiA9IGdsLnJlYWRQaXhlbHMoMCwgMCwgMSwgMiwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSk7CisgICAgLy8gQ2hlY2sgdGhlIHRvcCBwaXhlbCBhbmQgYm90
dG9tIHBpeGVsIGFuZCBtYWtlIHN1cmUgdGhleSBoYXZlCisgICAgLy8gdGhlIHJpZ2h0IGNvbG9y
LgorICAgIGRlYnVnKCJDaGVja2luZyBib3R0b20gcGl4ZWwiKTsKKyAgICBjb3JyZWN0Q29sb3Ig
PSBib3R0b21Db2xvcjsKKyAgICBpZHggPSAwOworICAgIHBpeGVsWzBdID0gYnVmW2lkeF07Cisg
ICAgcGl4ZWxbMV0gPSBidWZbaWR4ICsgMV07CisgICAgcGl4ZWxbMl0gPSBidWZbaWR4ICsgMl07
CisgICAgcGl4ZWxbM10gPSBidWZbaWR4ICsgM107CisgICAgc2hvdWxkQmUoInBpeGVsIiwgImNv
cnJlY3RDb2xvciIpOworICAgIGRlYnVnKCJDaGVja2luZyB0b3AgcGl4ZWwiKTsKKyAgICBjb3Jy
ZWN0Q29sb3IgPSB0b3BDb2xvcjsKKyAgICBpZHggPSA0OworICAgIHBpeGVsWzBdID0gYnVmW2lk
eF07CisgICAgcGl4ZWxbMV0gPSBidWZbaWR4ICsgMV07CisgICAgcGl4ZWxbMl0gPSBidWZbaWR4
ICsgMl07CisgICAgcGl4ZWxbM10gPSBidWZbaWR4ICsgM107CisgICAgc2hvdWxkQmUoInBpeGVs
IiwgImNvcnJlY3RDb2xvciIpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIg
cmVkID0gWzI1NSwgMCwgMCwgMjU1XTsKKyAgICB2YXIgZ3JlZW4gPSBbMCwgMjU1LCAwLCAyNTVd
OworICAgIHZhciByZWRQcmVtdWx0aXBseUFscGhhID0gWzI1NSwgMCwgMCwgMjU1XTsKKyAgICB2
YXIgZ3JlZW5QcmVtdWx0aXBseUFscGhhID0gWzAsIDAsIDAsIDI1NV07CisKKyAgICBydW5PbmVJ
dGVyYXRpb24oZmFsc2UsIHRydWUsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICByZWQsIGdy
ZWVuKTsKKyAgICBydW5PbmVJdGVyYXRpb24oZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICAgICAg
ICAgICAgICAgICAgZ3JlZW4sIHJlZCk7CisgICAgcnVuT25lSXRlcmF0aW9uKGZhbHNlLCB0cnVl
LCB0cnVlLAorICAgICAgICAgICAgICAgICAgICByZWRQcmVtdWx0aXBseUFscGhhLCBncmVlblBy
ZW11bHRpcGx5QWxwaGEpOworICAgIHJ1bk9uZUl0ZXJhdGlvbihmYWxzZSwgZmFsc2UsIHRydWUs
CisgICAgICAgICAgICAgICAgICAgIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSwgcmVkUHJlbXVsdGlw
bHlBbHBoYSk7CisgICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIHRydWUsIGZhbHNlLAorICAgICAg
ICAgICAgICAgICAgICByZWQsIGdyZWVuKTsKKyAgICBydW5PbmVJdGVyYXRpb24odHJ1ZSwgZmFs
c2UsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICBncmVlbiwgcmVkKTsKKyAgICBydW5PbmVJ
dGVyYXRpb24odHJ1ZSwgdHJ1ZSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgcmVkUHJlbXVs
dGlwbHlBbHBoYSwgZ3JlZW5QcmVtdWx0aXBseUFscGhhKTsKKyAgICBydW5PbmVJdGVyYXRpb24o
dHJ1ZSwgZmFsc2UsIHRydWUsCisgICAgICAgICAgICAgICAgICAgIGdyZWVuUHJlbXVsdGlwbHlB
bHBoYSwgcmVkUHJlbXVsdGlwbHlBbHBoYSk7CisKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworICAgIHZhciBlcGlsb2d1ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIp
OworICAgIGVwaWxvZ3VlLm9ubG9hZCA9IGZpbmlzaDsKKyAgICBlcGlsb2d1ZS5zcmMgPSAiLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChlcGlsb2d1ZSk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaCgpIHsKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0iaW5pdCgpIj4KKzxjYW52YXMgaWQ9InRleGNhbnZhcyIgd2lkdGg9IjFweCIgaGVpZ2h0PSIy
cHgiPjwvY2FudmFzPgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjFweCIgaGVpZ2h0PSIy
cHgiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRo
LWltYWdlLWRhdGEuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZXhlY3V0YWJsZQogICArICoK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49509</attachid>
            <date>2010-02-25 10:26:25 -0800</date>
            <delta_ts>2010-02-25 15:03:33 -0800</delta_ts>
            <desc>revised patch : add detailed description in change logs.</desc>
            <filename>texImage2D.patch</filename>
            <type>text/plain</type>
            <size>15789</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTE4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDItMjMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0ZXhJbWFn
ZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRha2luZyBJbWFnZURhdGEgaWdub3JlIGZsaXBZIGFuZCBw
cmVtdWx0aXBseUFscGhhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNDQ1OQorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5odG1sCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKTogQXBwbHkgZmxpcFkgYW5kIHByZW11bHRp
cGx5QWxwaGEgdG8gdGhlIHRleHR1cmUgZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpleHRyYWN0SW1hZ2VEYXRhKTogRXh0cmFjdCBkYXRhIGZyb20gSW1hZ2VE
YXRhLCBhcHBseWluZyBmbGlwWSBhbmQgcHJlbXVsdGlwbHlBbHBoYS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oOiBBZGQgZnVuY3Rpb24gZXh0cmFjdElt
YWdlRGF0YSBkZWNsYXJhdGlvbi4KKwogMjAxMC0wMi0yMyAgRG1pdHJ5IFRpdG92ICA8ZGltaWNo
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KSW5kZXg6
IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJldmlz
aW9uIDU1MTgwKQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjM0LDEyICsxNjM0LDEwIEBAIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKHUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgLy8gRklYTUU6IEZvciBub3cgd2UgaWdub3JlIGFueSBlcnJvcnMgcmV0
dXJuZWQKLSAgICAvLyBGSVhNRTogTmVlZCBhIGZvcm0gb2YgdGhpcyBjYWxsIHRoYXQgY2FuIHRh
a2UgYm90aCBhIHBpeGVsIGJ1ZmZlciBhbmQgZmxpcFkgYW5kIHByZW11bHRpcGx5QWxwaGEgZmxh
Z3MKLSAgICBVTlVTRURfUEFSQU0oZmxpcFkpOwotICAgIFVOVVNFRF9QQVJBTShwcmVtdWx0aXBs
eUFscGhhKTsKICAgICBlYyA9IDA7Ci0gICAgbV9jb250ZXh0LT50ZXhJbWFnZTJEKHRhcmdldCwg
bGV2ZWwsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBwaXhlbHMtPndpZHRoKCksIHBpeGVscy0+
aGVpZ2h0KCksIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQzRDo6
VU5TSUdORURfQllURSwgcGl4ZWxzLT5kYXRhKCktPmRhdGEoKS0+ZGF0YSgpKTsKLSAgICAvL1JM
UDogbV9jb250ZXh0LT50ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHBpeGVscywgZmxpcFksIHBy
ZW11bHRpcGx5QWxwaGEpOworICAgIFZlY3Rvcjx1aW50OF90PiBkYXRhOworICAgIG1fY29udGV4
dC0+ZXh0cmFjdEltYWdlRGF0YShwaXhlbHMsIGZsaXBZLCBwcmVtdWx0aXBseUFscGhhLCBkYXRh
KTsKKyAgICBtX2NvbnRleHQtPnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkEsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5oZWlnaHQoKSwgMCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFLCBkYXRh
LmRhdGEoKSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIApAQCAt
MTcyNCwxMSArMTcyMiwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1h
Z2UyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZURhdGEq
IHBpeGVscywgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICAvLyBGSVhNRTogRm9yIG5vdyB3ZSBpZ25vcmUgYW55IGVycm9ycyByZXR1
cm5lZAotICAgIFVOVVNFRF9QQVJBTShmbGlwWSk7Ci0gICAgVU5VU0VEX1BBUkFNKHByZW11bHRp
cGx5QWxwaGEpOwogICAgIGVjID0gMDsKLSAgICBtX2NvbnRleHQtPnRleFN1YkltYWdlMkQodGFy
Z2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgcGl4ZWxzLT53aWR0aCgpLCBwaXhlbHMtPmhl
aWdodCgpLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lH
TkVEX0JZVEUsIHBpeGVscy0+ZGF0YSgpLT5kYXRhKCktPmRhdGEoKSk7Ci0gICAgLy9STFA6IG1f
Y29udGV4dC0+dGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBw
aXhlbHMsIGZsaXBZLCBwcmVtdWx0aXBseUFscGhhKTsKKyAgICBWZWN0b3I8dWludDhfdD4gZGF0
YTsKKyAgICBtX2NvbnRleHQtPmV4dHJhY3RJbWFnZURhdGEocGl4ZWxzLCBmbGlwWSwgcHJlbXVs
dGlwbHlBbHBoYSwgZGF0YSk7CisgICAgbV9jb250ZXh0LT50ZXhTdWJJbWFnZTJEKHRhcmdldCwg
bGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5oZWlnaHQo
KSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9C
WVRFLCBkYXRhLmRhdGEoKSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsK
IH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5jcHAJKHJldmlzaW9uIDU1MTgwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogCiAjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNs
dWRlICJJbWFnZURhdGEuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Nyw2ICs1OCwy
OCBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0SW1hZ2VEYXRhCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK2Jvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmV4dHJhY3RJbWFnZURhdGEoSW1h
Z2VEYXRhKiBpbWFnZURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgZmxpcFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKQoreworICAgIGlmICghaW1hZ2VEYXRhKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaW50IHdpZHRoID0gaW1hZ2VEYXRhLT53aWR0aCgp
OworICAgIGludCBoZWlnaHQgPSBpbWFnZURhdGEtPmhlaWdodCgpOworICAgIGludCBkYXRhQnl0
ZXMgPSB3aWR0aCAqIGhlaWdodCAqIDQ7CisgICAgZGF0YS5yZXNpemUoZGF0YUJ5dGVzKTsKKyAg
ICB1aW50OF90KiBkc3QgPSBkYXRhLmRhdGEoKTsKKyAgICB1aW50OF90KiBzcmMgPSBpbWFnZURh
dGEtPmRhdGEoKS0+ZGF0YSgpLT5kYXRhKCk7CisgICAgbWVtY3B5KGRzdCwgc3JjLCBkYXRhQnl0
ZXMpOworICAgIHByb2Nlc3NJbWFnZURhdGEoZHN0LAorICAgICAgICAgICAgICAgICAgICAgd2lk
dGgsCisgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICBm
bGlwWSwKKyAgICAgICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGEgPyBrQWxwaGFEb1By
ZW11bHRpcGx5IDoga0FscGhhRG9Ob3RoaW5nKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6cHJvY2Vzc0ltYWdlRGF0YSh1aW50OF90KiBpbWFnZURhdGEs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHdpZHRo
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBoZWln
aHQsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5oCShyZXZpc2lvbiA1NTE4MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgY2xhc3MgV2ViR0xTaGFkZXI7CiAgICAgY2xhc3MgV2ViR0xUZXh0dXJl
OwogICAgIGNsYXNzIEltYWdlOworICAgIGNsYXNzIEltYWdlRGF0YTsKIAogICAgIHN0cnVjdCBB
Y3RpdmVJbmZvIHsKICAgICAgICAgU3RyaW5nIG5hbWU7CkBAIC00MzUsNiArNDM2LDE0IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCogZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50
KiBpbnRlcm5hbEZvcm1hdCk7CiAKKyAgICAgICAgLy8gRXh0cmFjdHMgdGhlIGNvbnRlbnRzIG9m
IHRoZSBnaXZlbiBJbWFnZURhdGEgaW50byB0aGUgcGFzc2VkCisgICAgICAgIC8vIFZlY3Rvciwg
b2JleWluZyB0aGUgZmxpcFkgYW5kIHByZW11bHRpcGx5QWxwaGEgZmxhZ3MuCisgICAgICAgIC8v
IFJldHVybnMgdHJ1ZSB1cG9uIHN1Y2Nlc3MuCisgICAgICAgIGJvb2wgZXh0cmFjdEltYWdlRGF0
YShJbWFnZURhdGEqIGltYWdlRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wgZmxpcFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHByZW11bHRpcGx5
QWxwaGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4mIGRh
dGEpOworCiAgICAgICAgIC8vIFByb2Nlc3NlcyB0aGUgZ2l2ZW4gaW1hZ2UgZGF0YSBpbiBwcmVw
YXJhdGlvbiBmb3IgdXBsb2FkaW5nCiAgICAgICAgIC8vIHZpYSB0ZXhJbWFnZTJEIG9yIHRleFN1
YkltYWdlMkQuIFRoZSBpbnB1dCBkYXRhIG11c3QgYmUgaW4KICAgICAgICAgLy8gNC1jb21wb25l
bnQgZm9ybWF0IHdpdGggdGhlIGFscGhhIGNoYW5uZWwgbGFzdCAoaS5lLiwgUkdCQQpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gNTUxODApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wMi0yMyAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRl
eEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgdGFraW5nIEltYWdlRGF0YSBpZ25vcmUgZmxpcFkg
YW5kIHByZW11bHRpcGx5QWxwaGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM0NDU5CisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1h
Z2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13
aXRoLWltYWdlLWRhdGEuaHRtbDogQWRkZWQuCisKIDIwMTAtMDItMjMgIEVucmljYSBDYXN1Y2Np
ICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIu
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC13aXRoLWltYWdlLWRhdGEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgt
aW1hZ2UtZGF0YS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUwIEBACisgCitWZXJpZnkgdGV4
SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2RlIHBhdGhzIHRha2luZyBJbWFnZURhdGEsIGlu
IHBhcnRpY3VsYXIgZmxpcFkgYW5kIHByZW11bHRpcGx5QWxwaGEgYXJndW1lbnQKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCitSZWdyZXNzaW9uIHRlc3QgZm9yIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ1OSA6IFJlZmFjdG9yIHRleEltYWdlMkQgYW5k
IHRleFN1YkltYWdlMkQgdGFraW5nIEltYWdlRGF0YSB0byB1c2UgY29tbW9uIGNvZGUKK1Rlc3Rp
bmcgdGV4SW1hZ2UyRCB3aXRoIGZsaXBZPXRydWUgYW5kIHByZW11bHRpcGx5QWxwaGE9ZmFsc2UK
K0NoZWNraW5nIGJvdHRvbSBwaXhlbAorUEFTUyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IKK0NoZWNr
aW5nIHRvcCBwaXhlbAorUEFTUyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IKK1Rlc3RpbmcgdGV4SW1h
Z2UyRCB3aXRoIGZsaXBZPWZhbHNlIGFuZCBwcmVtdWx0aXBseUFscGhhPWZhbHNlCitDaGVja2lu
ZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitDaGVja2luZyB0b3Ag
cGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCitUZXN0aW5nIHRleEltYWdlMkQgd2l0
aCBmbGlwWT10cnVlIGFuZCBwcmVtdWx0aXBseUFscGhhPXRydWUKK0NoZWNraW5nIGJvdHRvbSBw
aXhlbAorUEFTUyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IKK0NoZWNraW5nIHRvcCBwaXhlbAorUEFT
UyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IKK1Rlc3RpbmcgdGV4SW1hZ2UyRCB3aXRoIGZsaXBZPWZh
bHNlIGFuZCBwcmVtdWx0aXBseUFscGhhPXRydWUKK0NoZWNraW5nIGJvdHRvbSBwaXhlbAorUEFT
UyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IKK0NoZWNraW5nIHRvcCBwaXhlbAorUEFTUyBwaXhlbCBp
cyBjb3JyZWN0Q29sb3IKK1Rlc3RpbmcgdGV4U3ViSW1hZ2UyRCB3aXRoIGZsaXBZPXRydWUgYW5k
IHByZW11bHRpcGx5QWxwaGE9ZmFsc2UKK0NoZWNraW5nIGJvdHRvbSBwaXhlbAorUEFTUyBwaXhl
bCBpcyBjb3JyZWN0Q29sb3IKK0NoZWNraW5nIHRvcCBwaXhlbAorUEFTUyBwaXhlbCBpcyBjb3Jy
ZWN0Q29sb3IKK1Rlc3RpbmcgdGV4U3ViSW1hZ2UyRCB3aXRoIGZsaXBZPWZhbHNlIGFuZCBwcmVt
dWx0aXBseUFscGhhPWZhbHNlCitDaGVja2luZyBib3R0b20gcGl4ZWwKK1BBU1MgcGl4ZWwgaXMg
Y29ycmVjdENvbG9yCitDaGVja2luZyB0b3AgcGl4ZWwKK1BBU1MgcGl4ZWwgaXMgY29ycmVjdENv
bG9yCitUZXN0aW5nIHRleFN1YkltYWdlMkQgd2l0aCBmbGlwWT10cnVlIGFuZCBwcmVtdWx0aXBs
eUFscGhhPXRydWUKK0NoZWNraW5nIGJvdHRvbSBwaXhlbAorUEFTUyBwaXhlbCBpcyBjb3JyZWN0
Q29sb3IKK0NoZWNraW5nIHRvcCBwaXhlbAorUEFTUyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IKK1Rl
c3RpbmcgdGV4U3ViSW1hZ2UyRCB3aXRoIGZsaXBZPWZhbHNlIGFuZCBwcmVtdWx0aXBseUFscGhh
PXRydWUKK0NoZWNraW5nIGJvdHRvbSBwaXhlbAorUEFTUyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IK
K0NoZWNraW5nIHRvcCBwaXhlbAorUEFTUyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWlt
YWdlLWRhdGEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIw
MSBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWxz
M2QuanMiPiA8L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gt
dmVydGV4Ij4KK2F0dHJpYnV0ZSB2ZWMzIGdfUG9zaXRpb247CithdHRyaWJ1dGUgdmVjMiBnX1Rl
eENvb3JkMDsKKwordmFyeWluZyB2ZWMyIHRleENvb3JkOworCit2b2lkIG1haW4oKQoreworICAg
IGdsX1Bvc2l0aW9uID0gdmVjNChnX1Bvc2l0aW9uLngsIGdfUG9zaXRpb24ueSwgZ19Qb3NpdGlv
bi56LCAxLjApOworICAgIHRleENvb3JkID0gZ19UZXhDb29yZDA7Cit9Cis8L3NjcmlwdD4KKwor
PHNjcmlwdCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Cit1bmlmb3Jt
IHNhbXBsZXIyRCB0ZXg7Cit2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7CisKK3ZvaWQgbWFpbigpCit7
CisgICAgZ2xfRnJhZ0NvbG9yID0gdGV4dHVyZTJEKHRleCwgdGV4Q29vcmQpOworfQorPC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+Cit2YXIgZ2wgPSBudWxsOwordmFyIHRleHR1cmVMb2MgPSBudWxsOwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwordmFyIGltYWdlRGF0YSA9IG51bGw7CisK
K2Z1bmN0aW9uIGluaXQoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJL
aXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICB9CisKKyAgICBkZXNjcmlwdGlvbignVmVyaWZ5IHRleEltYWdlMkQgYW5kIHRleFN1Yklt
YWdlMkQgY29kZSBwYXRocyB0YWtpbmcgSW1hZ2VEYXRhLCBpbiBwYXJ0aWN1bGFyIGZsaXBZIGFu
ZCBwcmVtdWx0aXBseUFscGhhIGFyZ3VtZW50Jyk7CisKKyAgICBkZWJ1ZygnUmVncmVzc2lvbiB0
ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzQ0NTkiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ1OTwvYT4g
OiA8Y29kZT5SZWZhY3RvciB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRha2luZyBJbWFn
ZURhdGEgdG8gdXNlIGNvbW1vbiBjb2RlPC9jb2RlPicpOworCisgICAgdmFyIGNhbnZhczJkID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleGNhbnZhcyIpOworICAgIHZhciBjb250ZXh0MmQg
PSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOworICAgIGltYWdlRGF0YSA9IGNvbnRleHQyZC5j
cmVhdGVJbWFnZURhdGEoMSwgMik7CisgICAgdmFyIGRhdGEgPSBpbWFnZURhdGEuZGF0YTsKKyAg
ICBkYXRhWzBdID0gMjU1OworICAgIGRhdGFbMV0gPSAwOworICAgIGRhdGFbMl0gPSAwOworICAg
IGRhdGFbM10gPSAyNTU7CisgICAgZGF0YVs0XSA9IDA7CisgICAgZGF0YVs1XSA9IDI1NTsKKyAg
ICBkYXRhWzZdID0gMDsKKyAgICBkYXRhWzddID0gMDsKKworICAgIGdsID0gaW5pdFdlYkdMKCJl
eGFtcGxlIiwgInZzaGFkZXIiLCAiZnNoYWRlciIsIFsgImdfUG9zaXRpb24iLCAiZ19UZXhDb29y
ZDAiIF0sIFsgMCwgMCwgMCwgMSBdLCAxKTsKKyAgICBnbC52aWV3cG9ydCgwLCAwLCAxLCAyKTsK
KyAgICBnbC5kaXNhYmxlKGdsLkJMRU5EKTsKKworICAgIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlm
b3JtTG9jYXRpb24oZ2wucHJvZ3JhbSwgInRleCIpOworCisgICAgdmFyIHZlcnRpY2VzID0gbmV3
IFdlYkdMRmxvYXRBcnJheShbCisgICAgICAgICAxLjAsICAxLjAsIDAuMCwKKyAgICAgICAgLTEu
MCwgIDEuMCwgMC4wLAorICAgICAgICAtMS4wLCAtMS4wLCAwLjAsCisgICAgICAgICAxLjAsICAx
LjAsIDAuMCwKKyAgICAgICAgLTEuMCwgLTEuMCwgMC4wLAorICAgICAgICAgMS4wLCAtMS4wLCAw
LjBdKTsKKyAgICB2YXIgdGV4Q29vcmRzID0gbmV3IFdlYkdMRmxvYXRBcnJheShbCisgICAgICAg
IDEuMCwgMS4wLAorICAgICAgICAwLjAsIDEuMCwKKyAgICAgICAgMC4wLCAwLjAsCisgICAgICAg
IDEuMCwgMS4wLAorICAgICAgICAwLjAsIDAuMCwKKyAgICAgICAgMS4wLCAwLjBdKTsKKyAgICB2
YXIgdGV4Q29vcmRPZmZzZXQgPSB2ZXJ0aWNlcy5ieXRlTGVuZ3RoOworCisgICAgdmFyIHZibyA9
IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2
Ym8pOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLAorICAgICAgICAgICAgICAg
ICAgdGV4Q29vcmRPZmZzZXQgKyB0ZXhDb29yZHMuYnl0ZUxlbmd0aCwKKyAgICAgICAgICAgICAg
ICAgIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZF
UiwgMCwgdmVydGljZXMpOworICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCB0
ZXhDb29yZE9mZnNldCwgdGV4Q29vcmRzKTsKKworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFy
cmF5KDApOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMywgZ2wuRkxPQVQsIGdsLkZB
TFNFLCAwLCAwKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgxKTsKKyAgICBnbC52
ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDIsIGdsLkZMT0FULCBnbC5GQUxTRSwgMCwgdGV4Q29vcmRP
ZmZzZXQpOworCisgICAgcnVuVGVzdCgpOworfQorCisvLyBUaGVzZSB0d28gZGVjbGFyYXRpb25z
IG5lZWQgdG8gYmUgZ2xvYmFsIGZvciAic2hvdWxkQmUiIHRvIHNlZSB0aGVtCit2YXIgYnVmID0g
bnVsbDsKK3ZhciBpZHggPSAwOwordmFyIHBpeGVsID0gWzAsIDAsIDAsIDFdOwordmFyIGNvcnJl
Y3RDb2xvciA9IG51bGw7CisKK2Z1bmN0aW9uIHJ1bk9uZUl0ZXJhdGlvbih1c2VUZXhTdWJJbWFn
ZTJELCBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yKQorewor
ICAgIGRlYnVnKCdUZXN0aW5nICcgKyAodXNlVGV4U3ViSW1hZ2UyRCA/ICd0ZXhTdWJJbWFnZTJE
JyA6ICd0ZXhJbWFnZTJEJykgKworICAgICAgICAgICcgd2l0aCBmbGlwWT0nICsgZmxpcFkgKyAn
IGFuZCBwcmVtdWx0aXBseUFscGhhPScgKyBwcmVtdWx0aXBseUFscGhhKTsKKyAgICBnbC5jbGVh
cihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7CisgICAgLy8gRW5h
YmxlIHdyaXRlcyB0byB0aGUgUkdCQSBjaGFubmVscworICAgIGdsLmNvbG9yTWFzaygxLCAxLCAx
LCAwKTsKKyAgICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICAvLyBCaW5k
IHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4dHVyZSk7CisgICAgLy8gU2V0IHVwIHRleHR1cmUgcGFyYW1ldGVycworICAg
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBn
bC5ORUFSRVNUKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgLy8gVXBsb2FkIHRoZSBpbWFnZSBpbnRv
IHRoZSB0ZXh0dXJlCisgICAgaWYgKHVzZVRleFN1YkltYWdlMkQpIHsKKyAgICAgICAgLy8gSW5p
dGlhbGl6ZSB0aGUgdGV4dHVyZSB0byBibGFjayBmaXJzdAorICAgICAgICBnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDEsIDIsIDAsCisgICAgICAgICAgICAgICAgICAg
ICAgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7CisgICAgICAgIGdsLnRleFN1Yklt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgaW1hZ2VEYXRhLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIGZsaXBZLCBwcmVtdWx0aXBseUFscGhhKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGltYWdlRGF0YSwKKyAgICAgICAgICAg
ICAgICAgICAgICBmbGlwWSwgcHJlbXVsdGlwbHlBbHBoYSk7CisgICAgfQorCisgICAgLy8gUG9p
bnQgdGhlIHVuaWZvcm0gc2FtcGxlciB0byB0ZXh0dXJlIHVuaXQgMAorICAgIGdsLnVuaWZvcm0x
aSh0ZXh0dXJlTG9jLCAwKTsKKyAgICAvLyBEcmF3IHRoZSB0cmlhbmdsZXMKKyAgICBnbC5kcmF3
QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgNik7CisKKyAgICAvLyBSZWFkIGJhY2sgdGhlIHJlbmRl
cmluZyByZXN1bHRzCisgICAgYnVmID0gZ2wucmVhZFBpeGVscygwLCAwLCAxLCAyLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFKTsKKyAgICAvLyBDaGVjayB0aGUgdG9wIHBpeGVsIGFuZCBib3R0
b20gcGl4ZWwgYW5kIG1ha2Ugc3VyZSB0aGV5IGhhdmUKKyAgICAvLyB0aGUgcmlnaHQgY29sb3Iu
CisgICAgZGVidWcoIkNoZWNraW5nIGJvdHRvbSBwaXhlbCIpOworICAgIGNvcnJlY3RDb2xvciA9
IGJvdHRvbUNvbG9yOworICAgIGlkeCA9IDA7CisgICAgcGl4ZWxbMF0gPSBidWZbaWR4XTsKKyAg
ICBwaXhlbFsxXSA9IGJ1ZltpZHggKyAxXTsKKyAgICBwaXhlbFsyXSA9IGJ1ZltpZHggKyAyXTsK
KyAgICBwaXhlbFszXSA9IGJ1ZltpZHggKyAzXTsKKyAgICBzaG91bGRCZSgicGl4ZWwiLCAiY29y
cmVjdENvbG9yIik7CisgICAgZGVidWcoIkNoZWNraW5nIHRvcCBwaXhlbCIpOworICAgIGNvcnJl
Y3RDb2xvciA9IHRvcENvbG9yOworICAgIGlkeCA9IDQ7CisgICAgcGl4ZWxbMF0gPSBidWZbaWR4
XTsKKyAgICBwaXhlbFsxXSA9IGJ1ZltpZHggKyAxXTsKKyAgICBwaXhlbFsyXSA9IGJ1ZltpZHgg
KyAyXTsKKyAgICBwaXhlbFszXSA9IGJ1ZltpZHggKyAzXTsKKyAgICBzaG91bGRCZSgicGl4ZWwi
LCAiY29ycmVjdENvbG9yIik7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHZhciBy
ZWQgPSBbMjU1LCAwLCAwLCAyNTVdOworICAgIHZhciBncmVlbiA9IFswLCAyNTUsIDAsIDI1NV07
CisgICAgdmFyIHJlZFByZW11bHRpcGx5QWxwaGEgPSBbMjU1LCAwLCAwLCAyNTVdOworICAgIHZh
ciBncmVlblByZW11bHRpcGx5QWxwaGEgPSBbMCwgMCwgMCwgMjU1XTsKKworICAgIHJ1bk9uZUl0
ZXJhdGlvbihmYWxzZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgIHJlZCwgZ3Jl
ZW4pOworICAgIHJ1bk9uZUl0ZXJhdGlvbihmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgICAgICAg
ICAgICAgICAgICBncmVlbiwgcmVkKTsKKyAgICBydW5PbmVJdGVyYXRpb24oZmFsc2UsIHRydWUs
IHRydWUsCisgICAgICAgICAgICAgICAgICAgIHJlZFByZW11bHRpcGx5QWxwaGEsIGdyZWVuUHJl
bXVsdGlwbHlBbHBoYSk7CisgICAgcnVuT25lSXRlcmF0aW9uKGZhbHNlLCBmYWxzZSwgdHJ1ZSwK
KyAgICAgICAgICAgICAgICAgICAgZ3JlZW5QcmVtdWx0aXBseUFscGhhLCByZWRQcmVtdWx0aXBs
eUFscGhhKTsKKyAgICBydW5PbmVJdGVyYXRpb24odHJ1ZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAg
ICAgICAgICAgICAgIHJlZCwgZ3JlZW4pOworICAgIHJ1bk9uZUl0ZXJhdGlvbih0cnVlLCBmYWxz
ZSwgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgIGdyZWVuLCByZWQpOworICAgIHJ1bk9uZUl0
ZXJhdGlvbih0cnVlLCB0cnVlLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICByZWRQcmVtdWx0
aXBseUFscGhhLCBncmVlblByZW11bHRpcGx5QWxwaGEpOworICAgIHJ1bk9uZUl0ZXJhdGlvbih0
cnVlLCBmYWxzZSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgZ3JlZW5QcmVtdWx0aXBseUFs
cGhhLCByZWRQcmVtdWx0aXBseUFscGhhKTsKKworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CisgICAgdmFyIGVwaWxvZ3VlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7
CisgICAgZXBpbG9ndWUub25sb2FkID0gZmluaXNoOworICAgIGVwaWxvZ3VlLnNyYyA9ICIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGVwaWxvZ3VlKTsKK30KKworZnVuY3Rpb24gZmluaXNoKCkgeworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJpbml0KCkiPgorPGNhbnZhcyBpZD0idGV4Y2FudmFzIiB3aWR0aD0iMXB4IiBoZWlnaHQ9IjJw
eCI+PC9jYW52YXM+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iMXB4IiBoZWlnaHQ9IjJw
eCI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgt
aW1hZ2UtZGF0YS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49534</attachid>
            <date>2010-02-25 15:03:33 -0800</date>
            <delta_ts>2010-02-26 07:49:05 -0800</delta_ts>
            <desc>revised patch: remove svn:executable property from html file and remove param name imageData from declaration</desc>
            <filename>texImage2D.patch</filename>
            <type>text/plain</type>
            <size>15581</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTE4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDItMjMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0ZXhJbWFn
ZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRha2luZyBJbWFnZURhdGEgaWdub3JlIGZsaXBZIGFuZCBw
cmVtdWx0aXBseUFscGhhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNDQ1OQorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5odG1sCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKTogQXBwbHkgZmxpcFkgYW5kIHByZW11bHRp
cGx5QWxwaGEgdG8gdGhlIHRleHR1cmUgZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpleHRyYWN0SW1hZ2VEYXRhKTogRXh0cmFjdCBkYXRhIGZyb20gSW1hZ2VE
YXRhLCBhcHBseWluZyBmbGlwWSBhbmQgcHJlbXVsdGlwbHlBbHBoYS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oOiBBZGQgZnVuY3Rpb24gZXh0cmFjdElt
YWdlRGF0YSBkZWNsYXJhdGlvbi4KKwogMjAxMC0wMi0yMyAgRG1pdHJ5IFRpdG92ICA8ZGltaWNo
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KSW5kZXg6
IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJldmlz
aW9uIDU1MTgwKQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjM0LDEyICsxNjM0LDEwIEBAIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKHUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgLy8gRklYTUU6IEZvciBub3cgd2UgaWdub3JlIGFueSBlcnJvcnMgcmV0
dXJuZWQKLSAgICAvLyBGSVhNRTogTmVlZCBhIGZvcm0gb2YgdGhpcyBjYWxsIHRoYXQgY2FuIHRh
a2UgYm90aCBhIHBpeGVsIGJ1ZmZlciBhbmQgZmxpcFkgYW5kIHByZW11bHRpcGx5QWxwaGEgZmxh
Z3MKLSAgICBVTlVTRURfUEFSQU0oZmxpcFkpOwotICAgIFVOVVNFRF9QQVJBTShwcmVtdWx0aXBs
eUFscGhhKTsKICAgICBlYyA9IDA7Ci0gICAgbV9jb250ZXh0LT50ZXhJbWFnZTJEKHRhcmdldCwg
bGV2ZWwsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBwaXhlbHMtPndpZHRoKCksIHBpeGVscy0+
aGVpZ2h0KCksIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQzRDo6
VU5TSUdORURfQllURSwgcGl4ZWxzLT5kYXRhKCktPmRhdGEoKS0+ZGF0YSgpKTsKLSAgICAvL1JM
UDogbV9jb250ZXh0LT50ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHBpeGVscywgZmxpcFksIHBy
ZW11bHRpcGx5QWxwaGEpOworICAgIFZlY3Rvcjx1aW50OF90PiBkYXRhOworICAgIG1fY29udGV4
dC0+ZXh0cmFjdEltYWdlRGF0YShwaXhlbHMsIGZsaXBZLCBwcmVtdWx0aXBseUFscGhhLCBkYXRh
KTsKKyAgICBtX2NvbnRleHQtPnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkEsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5oZWlnaHQoKSwgMCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFLCBkYXRh
LmRhdGEoKSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIApAQCAt
MTcyNCwxMSArMTcyMiwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1h
Z2UyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZURhdGEq
IHBpeGVscywgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICAvLyBGSVhNRTogRm9yIG5vdyB3ZSBpZ25vcmUgYW55IGVycm9ycyByZXR1
cm5lZAotICAgIFVOVVNFRF9QQVJBTShmbGlwWSk7Ci0gICAgVU5VU0VEX1BBUkFNKHByZW11bHRp
cGx5QWxwaGEpOwogICAgIGVjID0gMDsKLSAgICBtX2NvbnRleHQtPnRleFN1YkltYWdlMkQodGFy
Z2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgcGl4ZWxzLT53aWR0aCgpLCBwaXhlbHMtPmhl
aWdodCgpLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lH
TkVEX0JZVEUsIHBpeGVscy0+ZGF0YSgpLT5kYXRhKCktPmRhdGEoKSk7Ci0gICAgLy9STFA6IG1f
Y29udGV4dC0+dGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBw
aXhlbHMsIGZsaXBZLCBwcmVtdWx0aXBseUFscGhhKTsKKyAgICBWZWN0b3I8dWludDhfdD4gZGF0
YTsKKyAgICBtX2NvbnRleHQtPmV4dHJhY3RJbWFnZURhdGEocGl4ZWxzLCBmbGlwWSwgcHJlbXVs
dGlwbHlBbHBoYSwgZGF0YSk7CisgICAgbV9jb250ZXh0LT50ZXhTdWJJbWFnZTJEKHRhcmdldCwg
bGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5oZWlnaHQo
KSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9C
WVRFLCBkYXRhLmRhdGEoKSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsK
IH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5jcHAJKHJldmlzaW9uIDU1MTgwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogCiAjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNs
dWRlICJJbWFnZURhdGEuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Nyw2ICs1OCwy
OCBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0SW1hZ2VEYXRhCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK2Jvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmV4dHJhY3RJbWFnZURhdGEoSW1h
Z2VEYXRhKiBpbWFnZURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgZmxpcFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKQoreworICAgIGlmICghaW1hZ2VEYXRhKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaW50IHdpZHRoID0gaW1hZ2VEYXRhLT53aWR0aCgp
OworICAgIGludCBoZWlnaHQgPSBpbWFnZURhdGEtPmhlaWdodCgpOworICAgIGludCBkYXRhQnl0
ZXMgPSB3aWR0aCAqIGhlaWdodCAqIDQ7CisgICAgZGF0YS5yZXNpemUoZGF0YUJ5dGVzKTsKKyAg
ICB1aW50OF90KiBkc3QgPSBkYXRhLmRhdGEoKTsKKyAgICB1aW50OF90KiBzcmMgPSBpbWFnZURh
dGEtPmRhdGEoKS0+ZGF0YSgpLT5kYXRhKCk7CisgICAgbWVtY3B5KGRzdCwgc3JjLCBkYXRhQnl0
ZXMpOworICAgIHByb2Nlc3NJbWFnZURhdGEoZHN0LAorICAgICAgICAgICAgICAgICAgICAgd2lk
dGgsCisgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICBm
bGlwWSwKKyAgICAgICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGEgPyBrQWxwaGFEb1By
ZW11bHRpcGx5IDoga0FscGhhRG9Ob3RoaW5nKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6cHJvY2Vzc0ltYWdlRGF0YSh1aW50OF90KiBpbWFnZURhdGEs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHdpZHRo
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBoZWln
aHQsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5oCShyZXZpc2lvbiA1NTE4MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgY2xhc3MgV2ViR0xTaGFkZXI7CiAgICAgY2xhc3MgV2ViR0xUZXh0dXJl
OwogICAgIGNsYXNzIEltYWdlOworICAgIGNsYXNzIEltYWdlRGF0YTsKIAogICAgIHN0cnVjdCBB
Y3RpdmVJbmZvIHsKICAgICAgICAgU3RyaW5nIG5hbWU7CkBAIC00MzUsNiArNDM2LDE0IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCogZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50
KiBpbnRlcm5hbEZvcm1hdCk7CiAKKyAgICAgICAgLy8gRXh0cmFjdHMgdGhlIGNvbnRlbnRzIG9m
IHRoZSBnaXZlbiBJbWFnZURhdGEgaW50byB0aGUgcGFzc2VkCisgICAgICAgIC8vIFZlY3Rvciwg
b2JleWluZyB0aGUgZmxpcFkgYW5kIHByZW11bHRpcGx5QWxwaGEgZmxhZ3MuCisgICAgICAgIC8v
IFJldHVybnMgdHJ1ZSB1cG9uIHN1Y2Nlc3MuCisgICAgICAgIGJvb2wgZXh0cmFjdEltYWdlRGF0
YShJbWFnZURhdGEqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmbGlwWSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiYgZGF0YSk7CisKICAg
ICAgICAgLy8gUHJvY2Vzc2VzIHRoZSBnaXZlbiBpbWFnZSBkYXRhIGluIHByZXBhcmF0aW9uIGZv
ciB1cGxvYWRpbmcKICAgICAgICAgLy8gdmlhIHRleEltYWdlMkQgb3IgdGV4U3ViSW1hZ2UyRC4g
VGhlIGlucHV0IGRhdGEgbXVzdCBiZSBpbgogICAgICAgICAvLyA0LWNvbXBvbmVudCBmb3JtYXQg
d2l0aCB0aGUgYWxwaGEgY2hhbm5lbCBsYXN0IChpLmUuLCBSR0JBCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biA1NTE4MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDEwLTAyLTIzICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdGV4SW1hZ2UyRCBh
bmQgdGV4U3ViSW1hZ2UyRCB0YWtpbmcgSW1hZ2VEYXRhIGlnbm9yZSBmbGlwWSBhbmQgcHJlbXVs
dGlwbHlBbHBoYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzQ0NTkKKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Ut
ZGF0YS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMi0yMyAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdp
dGgtaW1hZ2UtZGF0YS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS1kYXRh
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTAgQEAKKyAKK1ZlcmlmeSB0ZXhJbWFnZTJEIGFu
ZCB0ZXhTdWJJbWFnZTJEIGNvZGUgcGF0aHMgdGFraW5nIEltYWdlRGF0YSwgaW4gcGFydGljdWxh
ciBmbGlwWSBhbmQgcHJlbXVsdGlwbHlBbHBoYSBhcmd1bWVudAorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKK1JlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM0NDU5IDogUmVmYWN0b3IgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1h
Z2UyRCB0YWtpbmcgSW1hZ2VEYXRhIHRvIHVzZSBjb21tb24gY29kZQorVGVzdGluZyB0ZXhJbWFn
ZTJEIHdpdGggZmxpcFk9dHJ1ZSBhbmQgcHJlbXVsdGlwbHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcg
Ym90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBp
eGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGgg
ZmxpcFk9ZmFsc2UgYW5kIHByZW11bHRpcGx5QWxwaGE9ZmFsc2UKK0NoZWNraW5nIGJvdHRvbSBw
aXhlbAorUEFTUyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IKK0NoZWNraW5nIHRvcCBwaXhlbAorUEFT
UyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IKK1Rlc3RpbmcgdGV4SW1hZ2UyRCB3aXRoIGZsaXBZPXRy
dWUgYW5kIHByZW11bHRpcGx5QWxwaGE9dHJ1ZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNT
IHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhJbWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UgYW5kIHBy
ZW11bHRpcGx5QWxwaGE9dHJ1ZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlz
IGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RD
b2xvcgorVGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9dHJ1ZSBhbmQgcHJlbXVsdGlw
bHlBbHBoYT1mYWxzZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJl
Y3RDb2xvcgorQ2hlY2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgor
VGVzdGluZyB0ZXhTdWJJbWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UgYW5kIHByZW11bHRpcGx5QWxw
aGE9ZmFsc2UKK0NoZWNraW5nIGJvdHRvbSBwaXhlbAorUEFTUyBwaXhlbCBpcyBjb3JyZWN0Q29s
b3IKK0NoZWNraW5nIHRvcCBwaXhlbAorUEFTUyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IKK1Rlc3Rp
bmcgdGV4U3ViSW1hZ2UyRCB3aXRoIGZsaXBZPXRydWUgYW5kIHByZW11bHRpcGx5QWxwaGE9dHJ1
ZQorQ2hlY2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hl
Y2tpbmcgdG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorVGVzdGluZyB0ZXhT
dWJJbWFnZTJEIHdpdGggZmxpcFk9ZmFsc2UgYW5kIHByZW11bHRpcGx5QWxwaGE9dHJ1ZQorQ2hl
Y2tpbmcgYm90dG9tIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorQ2hlY2tpbmcg
dG9wIHBpeGVsCitQQVNTIHBpeGVsIGlzIGNvcnJlY3RDb2xvcgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQt
d2l0aC1pbWFnZS1kYXRhLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAxIEBACis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbHMzZC5qcyI+IDwv
c2NyaXB0PgorPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgor
YXR0cmlidXRlIHZlYzMgZ19Qb3NpdGlvbjsKK2F0dHJpYnV0ZSB2ZWMyIGdfVGV4Q29vcmQwOwor
Cit2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7CisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfUG9zaXRp
b24gPSB2ZWM0KGdfUG9zaXRpb24ueCwgZ19Qb3NpdGlvbi55LCBnX1Bvc2l0aW9uLnosIDEuMCk7
CisgICAgdGV4Q29vcmQgPSBnX1RleENvb3JkMDsKK30KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlk
PSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KK3VuaWZvcm0gc2FtcGxlcjJE
IHRleDsKK3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9G
cmFnQ29sb3IgPSB0ZXh0dXJlMkQodGV4LCB0ZXhDb29yZCk7Cit9Cis8L3NjcmlwdD4KKworPHNj
cmlwdD4KK3ZhciBnbCA9IG51bGw7Cit2YXIgdGV4dHVyZUxvYyA9IG51bGw7Cit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gZmFsc2U7Cit2YXIgaW1hZ2VEYXRhID0gbnVsbDsKKworZnVuY3Rpb24g
aW5pdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5h
YmxlZCIsICIxIik7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKwor
ICAgIGRlc2NyaXB0aW9uKCdWZXJpZnkgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2UyRCBjb2Rl
IHBhdGhzIHRha2luZyBJbWFnZURhdGEsIGluIHBhcnRpY3VsYXIgZmxpcFkgYW5kIHByZW11bHRp
cGx5QWxwaGEgYXJndW1lbnQnKTsKKworICAgIGRlYnVnKCdSZWdyZXNzaW9uIHRlc3QgZm9yIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ1OSI+aHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDU5PC9hPiA6IDxjb2RlPlJl
ZmFjdG9yIHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgdGFraW5nIEltYWdlRGF0YSB0byB1
c2UgY29tbW9uIGNvZGU8L2NvZGU+Jyk7CisKKyAgICB2YXIgY2FudmFzMmQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGV4Y2FudmFzIik7CisgICAgdmFyIGNvbnRleHQyZCA9IGNhbnZhczJk
LmdldENvbnRleHQoIjJkIik7CisgICAgaW1hZ2VEYXRhID0gY29udGV4dDJkLmNyZWF0ZUltYWdl
RGF0YSgxLCAyKTsKKyAgICB2YXIgZGF0YSA9IGltYWdlRGF0YS5kYXRhOworICAgIGRhdGFbMF0g
PSAyNTU7CisgICAgZGF0YVsxXSA9IDA7CisgICAgZGF0YVsyXSA9IDA7CisgICAgZGF0YVszXSA9
IDI1NTsKKyAgICBkYXRhWzRdID0gMDsKKyAgICBkYXRhWzVdID0gMjU1OworICAgIGRhdGFbNl0g
PSAwOworICAgIGRhdGFbN10gPSAwOworCisgICAgZ2wgPSBpbml0V2ViR0woImV4YW1wbGUiLCAi
dnNoYWRlciIsICJmc2hhZGVyIiwgWyAiZ19Qb3NpdGlvbiIsICJnX1RleENvb3JkMCIgXSwgWyAw
LCAwLCAwLCAxIF0sIDEpOworICAgIGdsLnZpZXdwb3J0KDAsIDAsIDEsIDIpOworICAgIGdsLmRp
c2FibGUoZ2wuQkxFTkQpOworCisgICAgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihnbC5wcm9ncmFtLCAidGV4Iik7CisKKyAgICB2YXIgdmVydGljZXMgPSBuZXcgV2ViR0xGbG9h
dEFycmF5KFsKKyAgICAgICAgIDEuMCwgIDEuMCwgMC4wLAorICAgICAgICAtMS4wLCAgMS4wLCAw
LjAsCisgICAgICAgIC0xLjAsIC0xLjAsIDAuMCwKKyAgICAgICAgIDEuMCwgIDEuMCwgMC4wLAor
ICAgICAgICAtMS4wLCAtMS4wLCAwLjAsCisgICAgICAgICAxLjAsIC0xLjAsIDAuMF0pOworICAg
IHZhciB0ZXhDb29yZHMgPSBuZXcgV2ViR0xGbG9hdEFycmF5KFsKKyAgICAgICAgMS4wLCAxLjAs
CisgICAgICAgIDAuMCwgMS4wLAorICAgICAgICAwLjAsIDAuMCwKKyAgICAgICAgMS4wLCAxLjAs
CisgICAgICAgIDAuMCwgMC4wLAorICAgICAgICAxLjAsIDAuMF0pOworICAgIHZhciB0ZXhDb29y
ZE9mZnNldCA9IHZlcnRpY2VzLmJ5dGVMZW5ndGg7CisKKyAgICB2YXIgdmJvID0gZ2wuY3JlYXRl
QnVmZmVyKCk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZibyk7CisgICAg
Z2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsCisgICAgICAgICAgICAgICAgICB0ZXhDb29y
ZE9mZnNldCArIHRleENvb3Jkcy5ieXRlTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgZ2wuU1RB
VElDX0RSQVcpOworICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAwLCB2ZXJ0
aWNlcyk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIHRleENvb3JkT2Zm
c2V0LCB0ZXhDb29yZHMpOworCisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7Cisg
ICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBnbC5GTE9BVCwgZ2wuRkFMU0UsIDAsIDAp
OworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOworICAgIGdsLnZlcnRleEF0dHJp
YlBvaW50ZXIoMSwgMiwgZ2wuRkxPQVQsIGdsLkZBTFNFLCAwLCB0ZXhDb29yZE9mZnNldCk7CisK
KyAgICBydW5UZXN0KCk7Cit9CisKKy8vIFRoZXNlIHR3byBkZWNsYXJhdGlvbnMgbmVlZCB0byBi
ZSBnbG9iYWwgZm9yICJzaG91bGRCZSIgdG8gc2VlIHRoZW0KK3ZhciBidWYgPSBudWxsOwordmFy
IGlkeCA9IDA7Cit2YXIgcGl4ZWwgPSBbMCwgMCwgMCwgMV07Cit2YXIgY29ycmVjdENvbG9yID0g
bnVsbDsKKworZnVuY3Rpb24gcnVuT25lSXRlcmF0aW9uKHVzZVRleFN1YkltYWdlMkQsIGZsaXBZ
LCBwcmVtdWx0aXBseUFscGhhLCB0b3BDb2xvciwgYm90dG9tQ29sb3IpCit7CisgICAgZGVidWco
J1Rlc3RpbmcgJyArICh1c2VUZXhTdWJJbWFnZTJEID8gJ3RleFN1YkltYWdlMkQnIDogJ3RleElt
YWdlMkQnKSArCisgICAgICAgICAgJyB3aXRoIGZsaXBZPScgKyBmbGlwWSArICcgYW5kIHByZW11
bHRpcGx5QWxwaGE9JyArIHByZW11bHRpcGx5QWxwaGEpOworICAgIGdsLmNsZWFyKGdsLkNPTE9S
X0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKKyAgICAvLyBFbmFibGUgd3JpdGVz
IHRvIHRoZSBSR0JBIGNoYW5uZWxzCisgICAgZ2wuY29sb3JNYXNrKDEsIDEsIDEsIDApOworICAg
IHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIC8vIEJpbmQgdGhlIHRleHR1
cmUgdG8gdGV4dHVyZSB1bml0IDAKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0
ZXh0dXJlKTsKKyAgICAvLyBTZXQgdXAgdGV4dHVyZSBwYXJhbWV0ZXJzCisgICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1Qp
OworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklM
VEVSLCBnbC5ORUFSRVNUKTsKKyAgICAvLyBVcGxvYWQgdGhlIGltYWdlIGludG8gdGhlIHRleHR1
cmUKKyAgICBpZiAodXNlVGV4U3ViSW1hZ2UyRCkgeworICAgICAgICAvLyBJbml0aWFsaXplIHRo
ZSB0ZXh0dXJlIHRvIGJsYWNrIGZpcnN0CisgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVS
RV8yRCwgMCwgZ2wuUkdCQSwgMSwgMiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKKyAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCAwLCAwLCBpbWFnZURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxpcFksIHByZW11bHRpcGx5QWxwaGEpOworICAgIH0gZWxzZSB7CisgICAgICAgIGdsLnRleElt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgaW1hZ2VEYXRhLAorICAgICAgICAgICAgICAgICAgICAg
IGZsaXBZLCBwcmVtdWx0aXBseUFscGhhKTsKKyAgICB9CisKKyAgICAvLyBQb2ludCB0aGUgdW5p
Zm9ybSBzYW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwCisgICAgZ2wudW5pZm9ybTFpKHRleHR1cmVM
b2MsIDApOworICAgIC8vIERyYXcgdGhlIHRyaWFuZ2xlcworICAgIGdsLmRyYXdBcnJheXMoZ2wu
VFJJQU5HTEVTLCAwLCA2KTsKKworICAgIC8vIFJlYWQgYmFjayB0aGUgcmVuZGVyaW5nIHJlc3Vs
dHMKKyAgICBidWYgPSBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDIsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUpOworICAgIC8vIENoZWNrIHRoZSB0b3AgcGl4ZWwgYW5kIGJvdHRvbSBwaXhlbCBh
bmQgbWFrZSBzdXJlIHRoZXkgaGF2ZQorICAgIC8vIHRoZSByaWdodCBjb2xvci4KKyAgICBkZWJ1
ZygiQ2hlY2tpbmcgYm90dG9tIHBpeGVsIik7CisgICAgY29ycmVjdENvbG9yID0gYm90dG9tQ29s
b3I7CisgICAgaWR4ID0gMDsKKyAgICBwaXhlbFswXSA9IGJ1ZltpZHhdOworICAgIHBpeGVsWzFd
ID0gYnVmW2lkeCArIDFdOworICAgIHBpeGVsWzJdID0gYnVmW2lkeCArIDJdOworICAgIHBpeGVs
WzNdID0gYnVmW2lkeCArIDNdOworICAgIHNob3VsZEJlKCJwaXhlbCIsICJjb3JyZWN0Q29sb3Ii
KTsKKyAgICBkZWJ1ZygiQ2hlY2tpbmcgdG9wIHBpeGVsIik7CisgICAgY29ycmVjdENvbG9yID0g
dG9wQ29sb3I7CisgICAgaWR4ID0gNDsKKyAgICBwaXhlbFswXSA9IGJ1ZltpZHhdOworICAgIHBp
eGVsWzFdID0gYnVmW2lkeCArIDFdOworICAgIHBpeGVsWzJdID0gYnVmW2lkeCArIDJdOworICAg
IHBpeGVsWzNdID0gYnVmW2lkeCArIDNdOworICAgIHNob3VsZEJlKCJwaXhlbCIsICJjb3JyZWN0
Q29sb3IiKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdmFyIHJlZCA9IFsyNTUs
IDAsIDAsIDI1NV07CisgICAgdmFyIGdyZWVuID0gWzAsIDI1NSwgMCwgMjU1XTsKKyAgICB2YXIg
cmVkUHJlbXVsdGlwbHlBbHBoYSA9IFsyNTUsIDAsIDAsIDI1NV07CisgICAgdmFyIGdyZWVuUHJl
bXVsdGlwbHlBbHBoYSA9IFswLCAwLCAwLCAyNTVdOworCisgICAgcnVuT25lSXRlcmF0aW9uKGZh
bHNlLCB0cnVlLCBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgcmVkLCBncmVlbik7CisgICAg
cnVuT25lSXRlcmF0aW9uKGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgICAgICAgICAgICAgICAg
IGdyZWVuLCByZWQpOworICAgIHJ1bk9uZUl0ZXJhdGlvbihmYWxzZSwgdHJ1ZSwgdHJ1ZSwKKyAg
ICAgICAgICAgICAgICAgICAgcmVkUHJlbXVsdGlwbHlBbHBoYSwgZ3JlZW5QcmVtdWx0aXBseUFs
cGhhKTsKKyAgICBydW5PbmVJdGVyYXRpb24oZmFsc2UsIGZhbHNlLCB0cnVlLAorICAgICAgICAg
ICAgICAgICAgICBncmVlblByZW11bHRpcGx5QWxwaGEsIHJlZFByZW11bHRpcGx5QWxwaGEpOwor
ICAgIHJ1bk9uZUl0ZXJhdGlvbih0cnVlLCB0cnVlLCBmYWxzZSwKKyAgICAgICAgICAgICAgICAg
ICAgcmVkLCBncmVlbik7CisgICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIGZhbHNlLCBmYWxzZSwK
KyAgICAgICAgICAgICAgICAgICAgZ3JlZW4sIHJlZCk7CisgICAgcnVuT25lSXRlcmF0aW9uKHRy
dWUsIHRydWUsIHRydWUsCisgICAgICAgICAgICAgICAgICAgIHJlZFByZW11bHRpcGx5QWxwaGEs
IGdyZWVuUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIGZhbHNl
LCB0cnVlLAorICAgICAgICAgICAgICAgICAgICBncmVlblByZW11bHRpcGx5QWxwaGEsIHJlZFBy
ZW11bHRpcGx5QWxwaGEpOworCisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICB2
YXIgZXBpbG9ndWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKyAgICBlcGls
b2d1ZS5vbmxvYWQgPSBmaW5pc2g7CisgICAgZXBpbG9ndWUuc3JjID0gIi4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZXBp
bG9ndWUpOworfQorCitmdW5jdGlvbiBmaW5pc2goKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImluaXQoKSI+
Cis8Y2FudmFzIGlkPSJ0ZXhjYW52YXMiIHdpZHRoPSIxcHgiIGhlaWdodD0iMnB4Ij48L2NhbnZh
cz4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIxcHgiIGhlaWdodD0iMnB4Ij48L2NhbnZh
cz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>