<?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>40434</bug_id>
          
          <creation_ts>2010-06-10 11:43:34 -0700</creation_ts>
          <short_desc>Failing LayoutTests/canvas/philip/tests/2d.shadow.enable.x.html</short_desc>
          <delta_ts>2010-06-14 10:29:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Chang Shu">cshu</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>236469</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-06-10 11:43:34 -0700</bug_when>
    <thetext>LayoutTests/canvas/philip/tests/2d.shadow.enable.x.html and
LayoutTests/canvas/philip/tests/2d.shadow.enable.y.html fail on all platforms but work on Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236826</commentid>
    <comment_count>1</comment_count>
      <attachid>58473</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-06-11 08:00:04 -0700</bug_when>
    <thetext>Created attachment 58473
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236838</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-11 08:19:04 -0700</bug_when>
    <thetext>Attachment 58473 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3258148</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236860</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-11 09:12:11 -0700</bug_when>
    <thetext>Attachment 58473 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3220215</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236905</commentid>
    <comment_count>4</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-06-11 10:53:56 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Attachment 58473 [details] did not build on win:
&gt; Build output: http://webkit-commit-queue.appspot.com/results/3220215

Is there anyway I can find the real output of the build?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236962</commentid>
    <comment_count>5</comment_count>
      <attachid>58494</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-06-11 12:13:47 -0700</bug_when>
    <thetext>Created attachment 58494
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237227</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-11 20:04:21 -0700</bug_when>
    <thetext>Attachment 58494 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3193312</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237816</commentid>
    <comment_count>7</comment_count>
      <attachid>58646</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-06-14 07:55:13 -0700</bug_when>
    <thetext>Created attachment 58646
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237893</commentid>
    <comment_count>8</comment_count>
      <attachid>58646</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-14 10:29:29 -0700</bug_when>
    <thetext>Comment on attachment 58646
fix patch

Clearing flags on attachment: 58646

Committed r61129: &lt;http://trac.webkit.org/changeset/61129&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237894</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-14 10:29:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58473</attachid>
            <date>2010-06-11 08:00:04 -0700</date>
            <delta_ts>2010-06-11 12:14:32 -0700</delta_ts>
            <desc>fix patch</desc>
            <filename>bug40434_1.patch</filename>
            <type>text/plain</type>
            <size>24276</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDYxMDE1KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDY5IEBADQorMjAxMC0wNi0xMSAgQ2hhbmcgU2h1ICA8Y2hhbmcuc2h1QG5v
a2lhLmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAg
ICAgICAgQ2hhbmdlIHRoZSB0eXBlIG9mIFNoYWRvd1NpemUgZnJvbSBJbnRTaXplIHRvIEZsb2F0
U2l6ZSBpbiBHcmFwaGljc0NvbnRleHQuDQorICAgICAgICBVc2luZyBJbnRTaXplIGxvc2VzIHBy
ZWNpc2lvbiBhbmQgZmFpbHMgdGhlIHRlc3QuDQorICAgICAgICBOb3RlOiBUaGlzIGNvZGUgY2hh
bmdlIGZpeGVzIFF0IHBvcnQgYnV0IE1hYyBpcyBzdGlsbCBmYWlsaW5nIGR1ZSB0bw0KKyAgICAg
ICAgcGxhdGZvcm0gaXNzdWUuDQorDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDA0MzQNCisNCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmFwcGx5U2hhZG93KToNCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNl
dFNoYWRvdyk6DQorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpnZXRTaGFkb3cp
Og0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoNCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0UHJpdmF0ZS5oOg0KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwOg0KKyAgICAgICAgKFdl
YkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6ZHJhd1Bh
dGhTaGFkb3cpOg0KKyAgICAgICAgKFdlYkNvcmU6OmRyYXdCb3JkZXJsZXNzUmVjdFNoYWRvdyk6
DQorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyk6
DQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwOg0KKyAg
ICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3KToNCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3cpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6
OlRyYW5zcGFyZW5jeUF3YXJlRm9udFBhaW50ZXI6OlRyYW5zcGFyZW5jeUF3YXJlR2x5cGhQYWlu
dGVyOjpkcmF3R2x5cGhzKToNCisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRl
eHQpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEd0ay5jcHA6DQorICAg
ICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0NvbXBsZXhUZXh0KToNCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvaGFpa3UvR3JhcGhpY3NDb250ZXh0SGFpa3UuY3BwOg0KKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3cpOg0KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbToNCisgICAgICAgIChXZWJDb3JlOjpGb250
OjpkcmF3R2x5cGhzKToNCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0dyYXBo
aWNzQ29udGV4dE9wZW5WRy5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
OjpzZXRQbGF0Zm9ybVNoYWRvdyk6DQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0Zv
bnRRdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0NvbXBsZXhUZXh0KToNCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwOg0KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QpOg0KKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUpOg0KKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6c3Ryb2tlQXJjKToNCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKToNCisgICAgICAgIChXZWJDb3JlOjpkcmF3RmlsbGVk
U2hhZG93UGF0aCk6DQorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdHJva2VQ
YXRoKToNCisgICAgICAgIChXZWJDb3JlOjpkcmF3Qm9yZGVybGVzc1JlY3RTaGFkb3cpOg0KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3cpOg0KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcDoNCisgICAgICAgIChXZWJD
b3JlOjpCaXRtYXBJbWFnZTo6ZHJhdyk6DQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyk6DQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3NraWEvU2tpYUZvbnRXaW4uY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NDYW5IYW5k
bGVEcmF3VGV4dFNoYWRvdyk6DQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
Q0dXaW4uY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OmRyYXdHRElHbHlwaHMpOg0KKyAgICAgICAg
KFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5jZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJlY3QpOg0KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3cpOg0KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6ZHJhd1RleHQpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9H
cmFwaGljc0NvbnRleHRXeC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
OjpzZXRQbGF0Zm9ybVNoYWRvdyk6DQorDQogMjAxMC0wNi0xMCAgSmVyZW15IE9ybG93ICA8am9y
bG93QGNocm9taXVtLm9yZz4NCiANCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLg0K
SW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcA0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcAkocmV2aXNpb24gNjA5NjgpDQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtOTI5LDcgKzkyOSw3IEBA
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjphcHBseVNoYWQNCiANCiAgICAgZmxvYXQg
d2lkdGggPSBzdGF0ZSgpLm1fc2hhZG93T2Zmc2V0LndpZHRoKCk7DQogICAgIGZsb2F0IGhlaWdo
dCA9IHN0YXRlKCkubV9zaGFkb3dPZmZzZXQuaGVpZ2h0KCk7DQotICAgIGMtPnNldFNoYWRvdyhJ
bnRTaXplKHdpZHRoLCAtaGVpZ2h0KSwgc3RhdGUoKS5tX3NoYWRvd0JsdXIsIHN0YXRlKCkubV9z
aGFkb3dDb2xvciwgRGV2aWNlQ29sb3JTcGFjZSk7DQorICAgIGMtPnNldFNoYWRvdyhGbG9hdFNp
emUod2lkdGgsIC1oZWlnaHQpLCBzdGF0ZSgpLm1fc2hhZG93Qmx1ciwgc3RhdGUoKS5tX3NoYWRv
d0NvbG9yLCBEZXZpY2VDb2xvclNwYWNlKTsNCiB9DQogDQogc3RhdGljIEludFNpemUgc2l6ZShI
VE1MSW1hZ2VFbGVtZW50KiBpbWFnZSkNCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJKHJldmlzaW9uIDYwOTY4KQ0KKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQ0KQEAg
LTEyOSw3ICsxMjksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlQ29sb3IoY29u
DQogICAgIHNldFBsYXRmb3JtU3Ryb2tlQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOw0KIH0NCiAN
Ci12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0U2hhZG93KGNvbnN0IEludFNpemUmIHNpemUsIGZs
b2F0IGJsdXIsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQ0KK3Zv
aWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9h
dCBibHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkNCiB7DQog
ICAgIG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dTaXplID0gc2l6ZTsNCiAgICAgbV9jb21tb24tPnN0
YXRlLnNoYWRvd0JsdXIgPSBibHVyOw0KQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6Y2xlYXJTaGFkb3coKQ0KICAgICBjbGVhclBsYXRmb3JtU2hhZG93KCk7DQogfQ0K
IA0KLWJvb2wgR3JhcGhpY3NDb250ZXh0OjpnZXRTaGFkb3coSW50U2l6ZSYgc2l6ZSwgZmxvYXQm
IGJsdXIsIENvbG9yJiBjb2xvcikgY29uc3QNCitib29sIEdyYXBoaWNzQ29udGV4dDo6Z2V0U2hh
ZG93KEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQmIGJsdXIsIENvbG9yJiBjb2xvcikgY29uc3QNCiB7
DQogICAgIHNpemUgPSBtX2NvbW1vbi0+c3RhdGUuc2hhZG93U2l6ZTsNCiAgICAgYmx1ciA9IG1f
Y29tbW9uLT5zdGF0ZS5zaGFkb3dCbHVyOw0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCShyZXZpc2lvbiA2MDk2OCkNCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMjYz
LDggKzI2Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsNCiAgICAgICAgIHZvaWQgYmVnaW5UcmFu
c3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KTsNCiAgICAgICAgIHZvaWQgZW5kVHJhbnNwYXJl
bmN5TGF5ZXIoKTsNCiANCi0gICAgICAgIHZvaWQgc2V0U2hhZG93KGNvbnN0IEludFNpemUmLCBm
bG9hdCBibHVyLCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpOw0KLSAgICAgICAgYm9vbCBnZXRT
aGFkb3coSW50U2l6ZSYsIGZsb2F0JiwgQ29sb3ImKSBjb25zdDsNCisgICAgICAgIHZvaWQgc2V0
U2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IGJsdXIsIGNvbnN0IENvbG9yJiwgQ29sb3JT
cGFjZSk7DQorICAgICAgICBib29sIGdldFNoYWRvdyhGbG9hdFNpemUmLCBmbG9hdCYsIENvbG9y
JikgY29uc3Q7DQogICAgICAgICB2b2lkIGNsZWFyU2hhZG93KCk7DQogDQogICAgICAgICB2b2lk
IGRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJlY3Q+JiwgaW50IHdpZHRoLCBpbnQgb2Zm
c2V0LCBjb25zdCBDb2xvciYpOw0KQEAgLTQwOSw3ICs0MDksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7DQogDQogICAgICAgICB2b2lkIHNldFBsYXRmb3JtU2hvdWxkQW50aWFsaWFzKGJvb2wgYik7
DQogDQotICAgICAgICB2b2lkIHNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmLCBmbG9h
dCBibHVyLCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpOw0KKyAgICAgICAgdm9pZCBzZXRQbGF0
Zm9ybVNoYWRvdyhjb25zdCBGbG9hdFNpemUmLCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYsIENv
bG9yU3BhY2UpOw0KICAgICAgICAgdm9pZCBjbGVhclBsYXRmb3JtU2hhZG93KCk7DQogDQogICAg
ICAgICBzdGF0aWMgdm9pZCBhZGp1c3RMaW5lVG9QaXhlbEJvdW5kYXJpZXMoRmxvYXRQb2ludCYg
cDEsIEZsb2F0UG9pbnQmIHAyLCBmbG9hdCBzdHJva2VXaWR0aCwgY29uc3QgU3Ryb2tlU3R5bGUm
KTsNCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dFByaXZh
dGUuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0UHJpdmF0ZS5oCShyZXZpc2lvbiA2MDk2OCkNCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dFByaXZhdGUuaAkod29ya2luZyBjb3B5KQ0KQEAgLTcyLDcg
KzcyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgew0KIA0KICAgICAgICAgYm9vbCBwYWludGluZ0Rp
c2FibGVkOw0KICAgICAgICAgDQotICAgICAgICBJbnRTaXplIHNoYWRvd1NpemU7DQorICAgICAg
ICBGbG9hdFNpemUgc2hhZG93U2l6ZTsNCiAgICAgICAgIGZsb2F0IHNoYWRvd0JsdXI7DQogICAg
ICAgICBDb2xvciBzaGFkb3dDb2xvcjsNCiANCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ZvbnRDYWlyby5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAJKHJldmlzaW9uIDYwOTY4KQ0KKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcAkod29ya2luZyBjb3B5KQ0K
QEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCog
Yw0KICAgICB9DQogDQogICAgIC8vIFRleHQgc2hhZG93LCBpbnNwaXJlZCBieSBGb250TWFjDQot
ICAgIEludFNpemUgc2hhZG93U2l6ZTsNCisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7DQogICAg
IGZsb2F0IHNoYWRvd0JsdXIgPSAwOw0KICAgICBDb2xvciBzaGFkb3dDb2xvcjsNCiAgICAgYm9v
bCBoYXNTaGFkb3cgPSBjb250ZXh0LT50ZXh0RHJhd2luZ01vZGUoKSA9PSBjVGV4dEZpbGwgJiYN
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENh
aXJvLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCShyZXZpc2lvbiA2MDk2OCkNCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAkod29ya2luZyBj
b3B5KQ0KQEAgLTE2MSw3ICsxNjEsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2FsY3VsYXRl
U2hhZG93QnVmDQogc3RhdGljIGlubGluZSB2b2lkIGRyYXdQYXRoU2hhZG93KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgR3JhcGhpY3NDb250ZXh0UHJpdmF0ZSogZ2NwLCBib29sIGZpbGxTaGFk
b3csIGJvb2wgc3Ryb2tlU2hhZG93KQ0KIHsNCiAjaWYgRU5BQkxFKEZJTFRFUlMpDQotICAgIElu
dFNpemUgc2hhZG93U2l6ZTsNCisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7DQogICAgIGZsb2F0
IHNoYWRvd0JsdXI7DQogICAgIENvbG9yIHNoYWRvd0NvbG9yOw0KICAgICBpZiAoIWNvbnRleHQt
PmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpDQpAQCAtNTU5
LDcgKzU1OSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG8NCiBz
dGF0aWMgdm9pZCBkcmF3Qm9yZGVybGVzc1JlY3RTaGFkb3coR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiByZWN0Q29sb3IpDQogew0K
ICNpZiBFTkFCTEUoRklMVEVSUykNCi0gICAgSW50U2l6ZSBzaGFkb3dTaXplOw0KKyAgICBGbG9h
dFNpemUgc2hhZG93U2l6ZTsNCiAgICAgZmxvYXQgc2hhZG93Qmx1cjsNCiAgICAgQ29sb3Igc2hh
ZG93Q29sb3I7DQogDQpAQCAtODQxLDcgKzg0MSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpj
bGlwVG9JbWFnZUJ1ZmZlcigNCiAgICAgbm90SW1wbGVtZW50ZWQoKTsNCiB9DQogDQotdm9pZCBH
cmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KEludFNpemUgY29uc3QmIHNpemUsIGZs
b2F0LCBDb2xvciBjb25zdCYsIENvbG9yU3BhY2UpDQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNl
dFBsYXRmb3JtU2hhZG93KEZsb2F0U2l6ZSBjb25zdCYgc2l6ZSwgZmxvYXQsIENvbG9yIGNvbnN0
JiwgQ29sb3JTcGFjZSkNCiB7DQogICAgIC8vIENhaXJvIGRvZXNuJ3Qgc3VwcG9ydCBzaGFkb3dz
IG5hdGl2ZWx5LCB0aGV5IGFyZSBkcmF3biBtYW51YWxseSBpbiB0aGUgZHJhdyoNCiAgICAgLy8g
ZnVuY3Rpb25zDQpAQCAtODQ5LDcgKzg0OSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVNoYWRvdygNCiAgICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dzSWdub3JlVHJh
bnNmb3Jtcykgew0KICAgICAgICAgLy8gTWVhbmluZyB0aGF0IHRoaXMgZ3JhcGhpY3MgY29udGV4
dCBpcyBhc3NvY2lhdGVkIHdpdGggYSBDYW52YXNSZW5kZXJpbmdDb250ZXh0DQogICAgICAgICAv
LyBXZSBmbGlwIHRoZSBoZWlnaHQgc2luY2UgQ0cgYW5kIEhUTUw1IENhbnZhcyBoYXZlIG9wcG9z
aXRlIFkgYXhpcw0KLSAgICAgICAgbV9jb21tb24tPnN0YXRlLnNoYWRvd1NpemUgPSBJbnRTaXpl
KHNpemUud2lkdGgoKSwgLXNpemUuaGVpZ2h0KCkpOw0KKyAgICAgICAgbV9jb21tb24tPnN0YXRl
LnNoYWRvd1NpemUgPSBGbG9hdFNpemUoc2l6ZS53aWR0aCgpLCAtc2l6ZS5oZWlnaHQoKSk7DQog
ICAgIH0NCiB9DQogDQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFn
ZUNhaXJvLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vSW1hZ2VDYWlyby5jcHAJKHJldmlzaW9uIDYwOTY4KQ0KKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xMzQsNyAr
MTM0LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIA0KIA0KICAg
ICAvLyBEcmF3IHRoZSBzaGFkb3cNCiAjaWYgRU5BQkxFKEZJTFRFUlMpDQotICAgIEludFNpemUg
c2hhZG93U2l6ZTsNCisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7DQogICAgIGZsb2F0IHNoYWRv
d0JsdXI7DQogICAgIENvbG9yIHNoYWRvd0NvbG9yOw0KICAgICBpZiAoY29udGV4dC0+Z2V0U2hh
ZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgew0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAJ
KHJldmlzaW9uIDYwOTY4KQ0KKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0Q0cuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNzY0LDcgKzc2NCw3IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXkNCiAgICAgbV9kYXRhLT5tX3VzZXJU
b0RldmljZVRyYW5zZm9ybUtub3duVG9CZUlkZW50aXR5ID0gZmFsc2U7DQogfQ0KIA0KLXZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBJbnRTaXplJiBvZmZzZXQs
IGZsb2F0IGJsdXIsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQ0K
K3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBGbG9hdFNpemUm
IG9mZnNldCwgZmxvYXQgYmx1ciwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UpDQogew0KICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQ0KICAgICAgICAgcmV0dXJu
Ow0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVt
V2luLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udENocm9taXVtV2luLmNwcAkocmV2aXNpb24gNjA5NjgpDQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwCSh3b3JraW5nIGNvcHkp
DQpAQCAtMjczLDcgKzI3Myw3IEBAIGJvb2wgVHJhbnNwYXJlbmN5QXdhcmVHbHlwaFBhaW50ZXI6
OmRyYXcNCiANCiAgICAgLy8gSWYgdGhlcmUgaXMgYSBub24tYmx1ciBzaGFkb3cgYW5kIGJvdGgg
dGhlIGZpbGwgY29sb3IgYW5kIHNoYWRvdyBjb2xvciANCiAgICAgLy8gYXJlIG9wYXF1ZSwgaGFu
ZGxlIHdpdGhvdXQgc2tpYS4gDQotICAgIEludFNpemUgc2hhZG93U2l6ZTsNCisgICAgRmxvYXRT
aXplIHNoYWRvd1NpemU7DQogICAgIGZsb2F0IHNoYWRvd0JsdXI7DQogICAgIENvbG9yIHNoYWRv
d0NvbG9yOw0KICAgICBpZiAobV9ncmFwaGljc0NvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXpl
LCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsNCkBAIC00ODMsNyArNDgzLDcgQEAgdm9pZCBG
b250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQ0KIA0KICAgICAvLyBJZiB0aGVyZSBp
cyBhIG5vbi1ibHVyIHNoYWRvdyBhbmQgYm90aCB0aGUgZmlsbCBjb2xvciBhbmQgc2hhZG93IGNv
bG9yIA0KICAgICAvLyBhcmUgb3BhcXVlLCBoYW5kbGUgd2l0aG91dCBza2lhLiANCi0gICAgSW50
U2l6ZSBzaGFkb3dTaXplOw0KKyAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsNCiAgICAgZmxvYXQg
c2hhZG93Qmx1cjsNCiAgICAgQ29sb3Igc2hhZG93Q29sb3I7DQogICAgIGlmIChncmFwaGljc0Nv
bnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikgJiYg
d2luZG93c0NhbkhhbmRsZURyYXdUZXh0U2hhZG93KGdyYXBoaWNzQ29udGV4dCkpIHsNCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3BwCShyZXZpc2lvbiA2
MDk2OCkNCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcAkod29y
a2luZyBjb3B5KQ0KQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4
dChHcmFwaGljc0NvbnRlDQogICAgIGZsb2F0IHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhOw0KIA0K
ICAgICAvLyBUZXh0IHNoYWRvdywgaW5zcGlyZWQgYnkgRm9udE1hYw0KLSAgICBJbnRTaXplIHNo
YWRvd1NpemU7DQorICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOw0KICAgICBmbG9hdCBzaGFkb3dC
bHVyID0gMDsNCiAgICAgQ29sb3Igc2hhZG93Q29sb3I7DQogICAgIGJvb2wgaGFzU2hhZG93ID0g
Y29udGV4dC0+dGV4dERyYXdpbmdNb2RlKCkgPT0gY1RleHRGaWxsICYmDQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHANCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0dyYXBoaWNzQ29udGV4
dEhhaWt1LmNwcAkocmV2aXNpb24gNjA5NjgpDQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9oYWlrdS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC01MzYs
NyArNTM2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsZWFyUGxhdGZvcm1TaGFkbw0KICAg
ICBub3RJbXBsZW1lbnRlZCgpOw0KIH0NCiANCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxh
dGZvcm1TaGFkb3coSW50U2l6ZSBjb25zdCYsIGZsb2F0LCBDb2xvciBjb25zdCYsIENvbG9yU3Bh
Y2UpDQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KEZsb2F0U2l6ZSBj
b25zdCYsIGZsb2F0LCBDb2xvciBjb25zdCYsIENvbG9yU3BhY2UpDQogew0KICAgICBub3RJbXBs
ZW1lbnRlZCgpOw0KIH0NCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
TWFjLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dE1hYy5tbQkocmV2aXNpb24gNjA5NjgpDQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udE1hYy5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIEZv
bnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBjDQogICAgICAgICBDR0NvbnRleHRTZXRG
b250U2l6ZShjZ0NvbnRleHQsIHBsYXRmb3JtRGF0YS5tX3NpemUpOw0KIA0KIA0KLSAgICBJbnRT
aXplIHNoYWRvd1NpemU7DQorICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOw0KICAgICBmbG9hdCBz
aGFkb3dCbHVyOw0KICAgICBDb2xvciBzaGFkb3dDb2xvcjsNCiAgICAgQ29sb3JTcGFjZSBmaWxs
Q29sb3JTcGFjZSA9IGNvbnRleHQtPmZpbGxDb2xvclNwYWNlKCk7DQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvR3JhcGhpY3NDb250ZXh0T3BlblZHLmNwcA0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0dyYXBoaWNzQ29udGV4
dE9wZW5WRy5jcHAJKHJldmlzaW9uIDYwOTY4KQ0KKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbnZnL0dyYXBoaWNzQ29udGV4dE9wZW5WRy5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0y
OTIsNyArMjkyLDcgQEAgRmxvYXRSZWN0IEdyYXBoaWNzQ29udGV4dDo6cm91bmRUb0RldmljZQ0K
ICAgICByZXR1cm4gRmxvYXRSZWN0KGVuY2xvc2luZ0ludFJlY3QobV9kYXRhLT50cmFuc2Zvcm1h
dGlvbigpLm1hcFJlY3QocmVjdCkpKTsNCiB9DQogDQotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNl
dFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IGJsdXIsIGNvbnN0IENv
bG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQ0KK3ZvaWQgR3JhcGhpY3NDb250ZXh0
OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IGJsdXIsIGNv
bnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQ0KIHsNCiAgICAgaWYgKHBh
aW50aW5nRGlzYWJsZWQoKSkNCiAgICAgICAgIHJldHVybjsNCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAJKHJldmlzaW9uIDYwOTY4KQ0KKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTEwNCw3
ICsxMDQsNyBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRlDQogICAg
IFFTdHJpbmcgc3RyaW5nID0gZnJvbVJhd0RhdGFXaXRob3V0UmVmKHNhbml0aXplZCk7DQogDQog
ICAgIC8vIHRleHQgc2hhZG93DQotICAgIEludFNpemUgc2hhZG93U2l6ZTsNCisgICAgRmxvYXRT
aXplIHNoYWRvd1NpemU7DQogICAgIGZsb2F0IHNoYWRvd0JsdXI7DQogICAgIENvbG9yIHNoYWRv
d0NvbG9yOw0KICAgICBib29sIGhhc1NoYWRvdyA9IGN0eC0+dGV4dERyYXdpbmdNb2RlKCkgPT0g
Y1RleHRGaWxsICYmIGN0eC0+Z2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRv
d0NvbG9yKTsNCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29u
dGV4dFF0LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
R3JhcGhpY3NDb250ZXh0UXQuY3BwCShyZXZpc2lvbiA2MDk2OCkNCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAkod29ya2luZyBjb3B5KQ0KQEAg
LTMzMyw3ICszMzMsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QoY29uc3QgSW50
DQogICAgIHAtPnNldFJlbmRlckhpbnQoUVBhaW50ZXI6OkFudGlhbGlhc2luZywgbV9kYXRhLT5h
bnRpQWxpYXNpbmdGb3JSZWN0c0FuZExpbmVzKTsNCiANCiAgICAgaWYgKG1fY29tbW9uLT5zdGF0
ZS5zaGFkb3dDb2xvci5pc1ZhbGlkKCkpIHsNCi0gICAgICAgIEludFNpemUgc2hhZG93U2l6ZTsN
CisgICAgICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOw0KICAgICAgICAgZmxvYXQgc2hhZG93Qmx1
cjsNCiAgICAgICAgIENvbG9yIHNoYWRvd0NvbG9yOw0KICAgICAgICAgaWYgKGdldFNoYWRvdyhz
aGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsNCkBAIC0zNzEsNyArMzcxLDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKGNvbnN0IEludA0KICAgICBwLT5zZXRS
ZW5kZXJIaW50KFFQYWludGVyOjpBbnRpYWxpYXNpbmcsIG1fZGF0YS0+YW50aUFsaWFzaW5nRm9y
UmVjdHNBbmRMaW5lcyk7DQogICAgIGFkanVzdExpbmVUb1BpeGVsQm91bmRhcmllcyhwMSwgcDIs
IHdpZHRoLCBzdHlsZSk7DQogDQotICAgIEludFNpemUgc2hhZG93U2l6ZTsNCisgICAgRmxvYXRT
aXplIHNoYWRvd1NpemU7DQogICAgIGZsb2F0IHNoYWRvd0JsdXI7DQogICAgIENvbG9yIHNoYWRv
d0NvbG9yOw0KICAgICBpZiAodGV4dERyYXdpbmdNb2RlKCkgPT0gY1RleHRGaWxsICYmIGdldFNo
YWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsNCkBAIC00NzMsNyAr
NDczLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZUFyYyhjb25zdCBJbg0KICAgICBj
b25zdCBib29sIGFudGlBbGlhcyA9IHAtPnRlc3RSZW5kZXJIaW50KFFQYWludGVyOjpBbnRpYWxp
YXNpbmcpOw0KICAgICBwLT5zZXRSZW5kZXJIaW50KFFQYWludGVyOjpBbnRpYWxpYXNpbmcsIHRy
dWUpOw0KIA0KLSAgICBJbnRTaXplIHNoYWRvd1NpemU7DQorICAgIEZsb2F0U2l6ZSBzaGFkb3dT
aXplOw0KICAgICBmbG9hdCBzaGFkb3dCbHVyOw0KICAgICBDb2xvciBzaGFkb3dDb2xvcjsNCiAg
ICAgc3RhcnRBbmdsZSAqPSAxNjsNCkBAIC01MDgsNyArNTA4LDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKA0KICAgICBRUGFpbnRlciogcCA9IG1fZGF0YS0+cCgp
Ow0KICAgICBwLT5zYXZlKCk7DQogICAgIHAtPnNldFJlbmRlckhpbnQoUVBhaW50ZXI6OkFudGlh
bGlhc2luZywgc2hvdWxkQW50aWFsaWFzKTsNCi0gICAgSW50U2l6ZSBzaGFkb3dTaXplOw0KKyAg
ICBGbG9hdFNpemUgc2hhZG93U2l6ZTsNCiAgICAgZmxvYXQgc2hhZG93Qmx1cjsNCiAgICAgQ29s
b3Igc2hhZG93Q29sb3I7DQogICAgIGlmIChnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1
ciwgc2hhZG93Q29sb3IpKSB7DQpAQCAtNTM5LDcgKzUzOSw3IEBAIFFQZW4gR3JhcGhpY3NDb250
ZXh0OjpwZW4oKQ0KIA0KIHN0YXRpYyB2b2lkIGlubGluZSBkcmF3RmlsbGVkU2hhZG93UGF0aChH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFFQYWludGVyKiBwLCBjb25zdCBRUGFpbnRlclBhdGgm
IHBhdGgpDQogew0KLSAgICBJbnRTaXplIHNoYWRvd1NpemU7DQorICAgIEZsb2F0U2l6ZSBzaGFk
b3dTaXplOw0KICAgICBmbG9hdCBzaGFkb3dCbHVyOw0KICAgICBDb2xvciBzaGFkb3dDb2xvcjsN
CiAgICAgaWYgKGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFk
b3dDb2xvcikpIHsNCkBAIC01ODYsNyArNTg2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0
cm9rZVBhdGgoKQ0KICAgICBwYXRoLnNldEZpbGxSdWxlKHRvUXRGaWxsUnVsZShmaWxsUnVsZSgp
KSk7DQogDQogICAgIGlmIChtX2NvbW1vbi0+c3RhdGUuc3Ryb2tlUGF0dGVybiB8fCBtX2NvbW1v
bi0+c3RhdGUuc3Ryb2tlR3JhZGllbnQgfHwgc3Ryb2tlQ29sb3IoKS5hbHBoYSgpKSB7DQotICAg
ICAgICBJbnRTaXplIHNoYWRvd1NpemU7DQorICAgICAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsN
CiAgICAgICAgIGZsb2F0IHNoYWRvd0JsdXI7DQogICAgICAgICBDb2xvciBzaGFkb3dDb2xvcjsN
CiAgICAgICAgIGlmIChnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29s
b3IpKSB7DQpAQCAtNjE4LDcgKzYxOCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQ
YXRoKCkNCiANCiBzdGF0aWMgaW5saW5lIHZvaWQgZHJhd0JvcmRlcmxlc3NSZWN0U2hhZG93KEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgUVBhaW50ZXIqIHAsIGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkNCiB7DQotICAgIEludFNpemUgc2hhZG93U2l6ZTsNCisgICAgRmxvYXRTaXplIHNoYWRvd1Np
emU7DQogICAgIGZsb2F0IHNoYWRvd0JsdXI7DQogICAgIENvbG9yIHNoYWRvd0NvbG9yOw0KICAg
ICBpZiAoY29udGV4dC0+Z2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0Nv
bG9yKSkgew0KQEAgLTgyMCw3ICs4MjAsNyBAQCBGbG9hdFJlY3QgR3JhcGhpY3NDb250ZXh0Ojpy
b3VuZFRvRGV2aWNlDQogICAgIHJldHVybiBGbG9hdFJlY3Qocm91bmRlZE9yaWdpbiwgcm91bmRl
ZExvd2VyUmlnaHQgLSByb3VuZGVkT3JpZ2luKTsNCiB9DQogDQotdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0LCBjb25zdCBD
b2xvciYsIENvbG9yU3BhY2UpDQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hh
ZG93KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQsIGNvbnN0IENvbG9yJiwgQ29sb3JTcGFj
ZSkNCiB7DQogICAgIC8vIFF0IGRvZXNuJ3Qgc3VwcG9ydCBzaGFkb3dzIG5hdGl2ZWx5LCB0aGV5
IGFyZSBkcmF3biBtYW51YWxseSBpbiB0aGUgZHJhdyoNCiAgICAgLy8gZnVuY3Rpb25zDQpAQCAt
ODI4LDcgKzgyOCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdygN
CiAgICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dzSWdub3JlVHJhbnNmb3Jtcykgew0KICAg
ICAgICAgLy8gTWVhbmluZyB0aGF0IHRoaXMgZ3JhcGhpY3MgY29udGV4dCBpcyBhc3NvY2lhdGVk
IHdpdGggYSBDYW52YXNSZW5kZXJpbmdDb250ZXh0DQogICAgICAgICAvLyBXZSBmbGlwIHRoZSBo
ZWlnaHQgc2luY2UgQ0cgYW5kIEhUTUw1IENhbnZhcyBoYXZlIG9wcG9zaXRlIFkgYXhpcw0KLSAg
ICAgICAgbV9jb21tb24tPnN0YXRlLnNoYWRvd1NpemUgPSBJbnRTaXplKHNpemUud2lkdGgoKSwg
LXNpemUuaGVpZ2h0KCkpOw0KKyAgICAgICAgbV9jb21tb24tPnN0YXRlLnNoYWRvd1NpemUgPSBG
bG9hdFNpemUoc2l6ZS53aWR0aCgpLCAtc2l6ZS5oZWlnaHQoKSk7DQogICAgIH0NCiB9DQogDQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAJKHJldmlzaW9u
IDYwOTY4KQ0KKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAJKHdv
cmtpbmcgY29weSkNCkBAIC0xODcsNyArMTg3LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhH
cmFwaGljc0NvbnRleHQqIA0KICAgICBpZiAoIWltYWdlLT5oYXNBbHBoYSgpICYmIHBhaW50ZXIt
PmNvbXBvc2l0aW9uTW9kZSgpID09IFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlT3Zl
cikNCiAgICAgICAgIHBhaW50ZXItPnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9z
aXRpb25Nb2RlX1NvdXJjZSk7DQogDQotICAgIEludFNpemUgc2hhZG93U2l6ZTsNCisgICAgRmxv
YXRTaXplIHNoYWRvd1NpemU7DQogICAgIGZsb2F0IHNoYWRvd0JsdXI7DQogICAgIENvbG9yIHNo
YWRvd0NvbG9yOw0KICAgICBpZiAoY3R4dC0+Z2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0Js
dXIsIHNoYWRvd0NvbG9yKSkgew0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcAkocmV2aXNpb24gNjA5Njgp
DQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEu
Y3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtOTc3LDcgKzk3Nyw3IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpzZXRQbGF0Zm9ybUZpbGxQYXQNCiAgICAgcGxhdGZvcm1Db250ZXh0KCktPnNldEZpbGxT
aGFkZXIocGF0dGVybi0+cGxhdGZvcm1QYXR0ZXJuKGdldENUTSgpKSk7DQogfQ0KIA0KLXZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBJbnRTaXplJiBzaXplLA0K
K3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBGbG9hdFNpemUm
IHNpemUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGJs
dXJGbG9hdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Q29sb3ImIGNvbG9yLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
b2xvclNwYWNlIGNvbG9yU3BhY2UpDQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL1NraWFGb250V2luLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9Ta2lhRm9udFdpbi5jcHAJKHJldmlzaW9uIDYwOTY4KQ0KKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Ta2lhRm9udFdpbi5jcHAJKHdvcmtpbmcgY29weSkNCkBA
IC0yMjIsNyArMjIyLDcgQEAgdm9pZCBTa2lhV2luT3V0bGluZUNhY2hlOjpyZW1vdmVQYXRoc0Zv
cg0KIA0KIGJvb2wgd2luZG93c0NhbkhhbmRsZURyYXdUZXh0U2hhZG93KFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCAqY29udGV4dCkNCiB7DQotICAgIEludFNpemUgc2hhZG93U2l6ZTsNCisgICAg
RmxvYXRTaXplIHNoYWRvd1NpemU7DQogICAgIGZsb2F0IHNoYWRvd0JsdXI7DQogICAgIENvbG9y
IHNoYWRvd0NvbG9yOw0KIA0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRDR1dpbi5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9Gb250Q0dXaW4uY3BwCShyZXZpc2lvbiA2MDk2OCkNCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9Gb250Q0dXaW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMTQwLDcgKzE0MCw3
IEBAIHN0YXRpYyB2b2lkIGRyYXdHRElHbHlwaHMoR3JhcGhpY3NDb250ZXgNCiANCiAgICAgICAg
IGRyYXdJbnRvQml0bWFwID0gZmlsbENvbG9yLmFscGhhKCkgIT0gMjU1IHx8IGdyYXBoaWNzQ29u
dGV4dC0+aW5UcmFuc3BhcmVuY3lMYXllcigpOw0KICAgICAgICAgaWYgKCFkcmF3SW50b0JpdG1h
cCkgew0KLSAgICAgICAgICAgIEludFNpemUgc2l6ZTsNCisgICAgICAgICAgICBGbG9hdFNpemUg
c2l6ZTsNCiAgICAgICAgICAgICBmbG9hdCBibHVyOw0KICAgICAgICAgICAgIENvbG9yIGNvbG9y
Ow0KICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+Z2V0U2hhZG93KHNpemUsIGJsdXIsIGNv
bG9yKTsNCkBAIC0zNDksNyArMzQ5LDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNz
Q29udGV4dCogZw0KICAgICBDR0NvbnRleHRTZXRGb250U2l6ZShjZ0NvbnRleHQsIHBsYXRmb3Jt
RGF0YS5zaXplKCkpOw0KICAgICB3a1NldENHQ29udGV4dEZvbnRSZW5kZXJpbmdTdHlsZShjZ0Nv
bnRleHQsIGZvbnQtPmlzU3lzdGVtRm9udCgpLCBmYWxzZSwgZm9udC0+cGxhdGZvcm1EYXRhKCku
dXNlR0RJKCkpOw0KIA0KLSAgICBJbnRTaXplIHNoYWRvd1NpemU7DQorICAgIEZsb2F0U2l6ZSBz
aGFkb3dTaXplOw0KICAgICBmbG9hdCBzaGFkb3dCbHVyOw0KICAgICBDb2xvciBzaGFkb3dDb2xv
cjsNCiAgICAgZ3JhcGhpY3NDb250ZXh0LT5nZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1
ciwgc2hhZG93Q29sb3IpOw0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
R3JhcGhpY3NDb250ZXh0V2luY2UuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5jZS5jcHAJKHJldmlzaW9uIDYwOTY4
KQ0KKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2lu
Y2UuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMTI0OSw3ICsxMjQ5LDcgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdChjbw0KICAgICBpZiAoIW1fZGF0YS0+bV9kYykNCiAg
ICAgICAgIHJldHVybjsNCiANCi0gICAgSW50U2l6ZSBzaGFkb3dTaXplOw0KKyAgICBGbG9hdFNp
emUgc2hhZG93U2l6ZTsNCiAgICAgZmxvYXQgc2hhZG93Qmx1ciA9IDA7DQogICAgIENvbG9yIHNo
YWRvd0NvbG9yOw0KICAgICAgICAgDQpAQCAtMTU1MCw3ICsxNTUwLDcgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsbw0KICAgICAgICAgZmlsbFJlY3QocmVjdCwgZmls
bENvbG9yKCksIERldmljZUNvbG9yU3BhY2UpOw0KIH0NCiANCi12b2lkIEdyYXBoaWNzQ29udGV4
dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYsIGZsb2F0LCBjb25zdCBDb2xvciYs
IENvbG9yU3BhY2UpDQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNv
bnN0IEZsb2F0U2l6ZSYsIGZsb2F0LCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpDQogew0KICAg
ICBub3RJbXBsZW1lbnRlZCgpOw0KIH0NCkBAIC0xNjcyLDcgKzE2NzIsNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd1RleHQoY29uc3QgU2ltDQogICAgICAgICByZXR1cm47DQogICAgIH0N
CiANCi0gICAgSW50U2l6ZSBzaGFkb3dTaXplOw0KKyAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsN
CiAgICAgZmxvYXQgc2hhZG93Qmx1ciA9IDA7DQogICAgIENvbG9yIHNoYWRvd0NvbG9yOw0KICAg
ICBib29sIGhhc1NoYWRvdyA9IHRleHREcmF3aW5nTW9kZSgpID09IGNUZXh0RmlsbA0KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3guY3BwDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9HcmFwaGljc0NvbnRleHRX
eC5jcHAJKHJldmlzaW9uIDYwOTY4KQ0KKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gv
R3JhcGhpY3NDb250ZXh0V3guY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNTU0LDcgKzU1NCw3IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG8NCiAgICAgICAgIHJldHVy
bjsNCiB9DQogDQotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KEludFNp
emUgY29uc3QmLCBmbG9hdCwgQ29sb3IgY29uc3QmLCBDb2xvclNwYWNlKSANCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coRmxvYXRTaXplIGNvbnN0JiwgZmxvYXQsIENv
bG9yIGNvbnN0JiwgQ29sb3JTcGFjZSkNCiB7IA0KICAgICBub3RJbXBsZW1lbnRlZCgpOyANCiB9
DQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MTAxNSkNCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkNCkBAIC0xLDMgKzEsMTQgQEANCisyMDEwLTA2LTExICBDaGFuZyBTaHUg
IDxjaGFuZy5zaHVAbm9raWEuY29tPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuDQorDQorICAgICAgICBbUXRdIFVuc2tpcCBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNo
YWRvdy5lbmFibGUueC5odG1sDQorICAgICAgICBhbmQgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5z
aGFkb3cuZW5hYmxlLnkuaHRtbC4NCisNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MDQzNA0KKw0KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVk
Og0KKw0KIDIwMTAtMDYtMTAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+
DQogDQogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5Lg0KSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCShyZXZpc2lvbiA2MDk2OCkNCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpDQpAQCAtNTM0Myw4ICs1MzQzLDYgQEAgY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuYWxwaGEuNS5odA0KIGNhbnZhcy9waGlsaXAvdGVz
dHMvMmQuc2hhZG93LmNhbnZhcy5hbHBoYS5odG1sDQogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5z
aGFkb3cuY2FudmFzLmJhc2ljLmh0bWwNCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5j
YW52YXMudHJhbnNwYXJlbnQuMi5odG1sDQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cu
ZW5hYmxlLnguaHRtbA0KLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmVuYWJsZS55Lmh0
bWwNCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5ncmFkaWVudC5hbHBoYS5odG1sDQog
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuZ3JhZGllbnQudHJhbnNwYXJlbnQuMS5odG1s
DQogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuaW1hZ2UuYWxwaGEuaHRtbA0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58494</attachid>
            <date>2010-06-11 12:13:47 -0700</date>
            <delta_ts>2010-06-14 07:55:13 -0700</delta_ts>
            <desc>fix patch</desc>
            <filename>bug40434_2.patch</filename>
            <type>text/plain</type>
            <size>25102</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTAyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNzAgQEAKKzIwMTAtMDYtMTEgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hh
bmdlIHRoZSB0eXBlIG9mIFNoYWRvd1NpemUgZnJvbSBJbnRTaXplIHRvIEZsb2F0U2l6ZSBpbiBH
cmFwaGljc0NvbnRleHQuCisgICAgICAgIFVzaW5nIEludFNpemUgbG9zZXMgcHJlY2lzaW9uIGFu
ZCBmYWlscyB0aGUgdGVzdC4KKyAgICAgICAgTm90ZTogVGhpcyBjb2RlIGNoYW5nZSBmaXhlcyBR
dCBwb3J0IGJ1dCBNYWMgaXMgc3RpbGwgZmFpbGluZyBkdWUgdG8KKyAgICAgICAgcGxhdGZvcm0g
aXNzdWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwNDM0CisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjphcHBseVNo
YWRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0U2hhZG93KToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Z2V0U2hhZG93KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vRm9udENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Y2FsY3VsYXRlU2hhZG93
QnVmZmVyRGltZW5zaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpkcmF3UGF0aFNoYWRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpkcmF3Qm9yZGVybGVzc1JlY3RTaGFkb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
aXRtYXBJbWFnZTo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVNoYWRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9u
dENocm9taXVtV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zcGFyZW5jeUF3YXJlRm9u
dFBhaW50ZXI6OlRyYW5zcGFyZW5jeUF3YXJlR2x5cGhQYWludGVyOjpkcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdDb21wbGV4VGV4dCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJh
d0NvbXBsZXhUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGlj
c0NvbnRleHRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNl
dFBsYXRmb3JtU2hhZG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRy
YXdUZXh0Q29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0Nv
bnRleHRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdHJva2VBcmMpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Q29udmV4UG9seWdvbik6CisgICAgICAgIChXZWJDb3Jl
OjpkcmF3RmlsbGVkU2hhZG93UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnN0cm9rZVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0JvcmRlcmxlc3NSZWN0U2hh
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFk
b3cpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9za2lhL1NraWFGb250V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NDYW5I
YW5kbGVEcmF3VGV4dFNoYWRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3R0RJR2x5cGhzKToKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpkcmF3VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhp
Y3NDb250ZXh0V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVNoYWRvdyk6CisKIDIwMTAtMDYtMTEgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCkluZGV4OiBXZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCShyZXZp
c2lvbiA2MTAxNikKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTI5LDcgKzkyOSw3IEBAIHZvaWQgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjphcHBseVNoYWQKIAogICAgIGZsb2F0IHdpZHRoID0gc3RhdGUoKS5t
X3NoYWRvd09mZnNldC53aWR0aCgpOwogICAgIGZsb2F0IGhlaWdodCA9IHN0YXRlKCkubV9zaGFk
b3dPZmZzZXQuaGVpZ2h0KCk7Ci0gICAgYy0+c2V0U2hhZG93KEludFNpemUod2lkdGgsIC1oZWln
aHQpLCBzdGF0ZSgpLm1fc2hhZG93Qmx1ciwgc3RhdGUoKS5tX3NoYWRvd0NvbG9yLCBEZXZpY2VD
b2xvclNwYWNlKTsKKyAgICBjLT5zZXRTaGFkb3coRmxvYXRTaXplKHdpZHRoLCAtaGVpZ2h0KSwg
c3RhdGUoKS5tX3NoYWRvd0JsdXIsIHN0YXRlKCkubV9zaGFkb3dDb2xvciwgRGV2aWNlQ29sb3JT
cGFjZSk7CiB9CiAKIHN0YXRpYyBJbnRTaXplIHNpemUoSFRNTEltYWdlRWxlbWVudCogaW1hZ2Up
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
CShyZXZpc2lvbiA2MTAxNikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcihjb24KICAgICBzZXRQbGF0Zm9ybVN0cm9rZUNvbG9y
KGNvbG9yLCBjb2xvclNwYWNlKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFNoYWRv
dyhjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTaGFkb3coY29u
c3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9y
U3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX2NvbW1vbi0+c3RhdGUuc2hhZG93U2l6ZSA9IHNp
emU7CiAgICAgbV9jb21tb24tPnN0YXRlLnNoYWRvd0JsdXIgPSBibHVyOwpAQCAtMTQ1LDcgKzE0
NSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclNoYWRvdygpCiAgICAgY2xlYXJQbGF0
Zm9ybVNoYWRvdygpOwogfQogCi1ib29sIEdyYXBoaWNzQ29udGV4dDo6Z2V0U2hhZG93KEludFNp
emUmIHNpemUsIGZsb2F0JiBibHVyLCBDb2xvciYgY29sb3IpIGNvbnN0Citib29sIEdyYXBoaWNz
Q29udGV4dDo6Z2V0U2hhZG93KEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQmIGJsdXIsIENvbG9yJiBj
b2xvcikgY29uc3QKIHsKICAgICBzaXplID0gbV9jb21tb24tPnN0YXRlLnNoYWRvd1NpemU7CiAg
ICAgYmx1ciA9IG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dCbHVyOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCShyZXZpc2lvbiA2MTAxNikKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI2Myw4ICsyNjMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgYmVn
aW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KTsKICAgICAgICAgdm9pZCBlbmRUcmFu
c3BhcmVuY3lMYXllcigpOwogCi0gICAgICAgIHZvaWQgc2V0U2hhZG93KGNvbnN0IEludFNpemUm
LCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpOwotICAgICAgICBib29sIGdl
dFNoYWRvdyhJbnRTaXplJiwgZmxvYXQmLCBDb2xvciYpIGNvbnN0OworICAgICAgICB2b2lkIHNl
dFNoYWRvdyhjb25zdCBGbG9hdFNpemUmLCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYsIENvbG9y
U3BhY2UpOworICAgICAgICBib29sIGdldFNoYWRvdyhGbG9hdFNpemUmLCBmbG9hdCYsIENvbG9y
JikgY29uc3Q7CiAgICAgICAgIHZvaWQgY2xlYXJTaGFkb3coKTsKIAogICAgICAgICB2b2lkIGRy
YXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJlY3Q+JiwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0
LCBjb25zdCBDb2xvciYpOwpAQCAtMjc5LDcgKzI3OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICNpZiBQTEFURk9STShDQUlSTykKICAgICAgICAgZmxvYXQgZ2V0QWxwaGEoKTsKICAgICAgICAg
dm9pZCBjcmVhdGVQbGF0Zm9ybVNoYWRvdyhQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBidWZmZXIs
IGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciwgY29uc3QgRmxvYXRSZWN0JiBzaGFkb3dSZWN0LCBm
bG9hdCBrZXJuZWxTaXplKTsKLSAgICAgICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlU2hhZG93QnVm
ZmVyRGltZW5zaW9ucyhJbnRTaXplJiBzaGFkb3dCdWZmZXJTaXplLCBGbG9hdFJlY3QmIHNoYWRv
d1JlY3QsIGZsb2F0JiBrZXJuZWxTaXplLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZVJlY3QsIGNv
bnN0IEludFNpemUmIHNoYWRvd1NpemUsIGZsb2F0IHNoYWRvd0JsdXIpOworICAgICAgICBzdGF0
aWMgdm9pZCBjYWxjdWxhdGVTaGFkb3dCdWZmZXJEaW1lbnNpb25zKEludFNpemUmIHNoYWRvd0J1
ZmZlclNpemUsIEZsb2F0UmVjdCYgc2hhZG93UmVjdCwgZmxvYXQmIGtlcm5lbFNpemUsIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlUmVjdCwgY29uc3QgRmxvYXRTaXplJiBzaGFkb3dTaXplLCBmbG9h
dCBzaGFkb3dCbHVyKTsKICNlbmRpZgogCiAgICAgICAgIHZvaWQgc2V0Q29tcG9zaXRlT3BlcmF0
aW9uKENvbXBvc2l0ZU9wZXJhdG9yKTsKQEAgLTQwOSw3ICs0MDksNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICAgICAgdm9pZCBzZXRQbGF0Zm9ybVNob3VsZEFudGlhbGlhcyhib29sIGIp
OwogCi0gICAgICAgIHZvaWQgc2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYsIGZsb2F0
IGJsdXIsIGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSk7CisgICAgICAgIHZvaWQgc2V0UGxhdGZv
cm1TaGFkb3coY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgYmx1ciwgY29uc3QgQ29sb3ImLCBDb2xv
clNwYWNlKTsKICAgICAgICAgdm9pZCBjbGVhclBsYXRmb3JtU2hhZG93KCk7CiAKICAgICAgICAg
c3RhdGljIHZvaWQgYWRqdXN0TGluZVRvUGl4ZWxCb3VuZGFyaWVzKEZsb2F0UG9pbnQmIHAxLCBG
bG9hdFBvaW50JiBwMiwgZmxvYXQgc3Ryb2tlV2lkdGgsIGNvbnN0IFN0cm9rZVN0eWxlJik7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dFByaXZhdGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dFBy
aXZhdGUuaAkocmV2aXNpb24gNjEwMTYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNyArNzIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBwYWludGluZ0Rpc2FibGVkOwogICAg
ICAgICAKLSAgICAgICAgSW50U2l6ZSBzaGFkb3dTaXplOworICAgICAgICBGbG9hdFNpemUgc2hh
ZG93U2l6ZTsKICAgICAgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICAgICAgQ29sb3Igc2hhZG93
Q29sb3I7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJv
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRD
YWlyby5jcHAJKHJldmlzaW9uIDYxMDE2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9Gb250Q2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQg
Rm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGMKICAgICB9CiAKICAgICAvLyBUZXh0
IHNoYWRvdywgaW5zcGlyZWQgYnkgRm9udE1hYwotICAgIEludFNpemUgc2hhZG93U2l6ZTsKKyAg
ICBGbG9hdFNpemUgc2hhZG93U2l6ZTsKICAgICBmbG9hdCBzaGFkb3dCbHVyID0gMDsKICAgICBD
b2xvciBzaGFkb3dDb2xvcjsKICAgICBib29sIGhhc1NoYWRvdyA9IGNvbnRleHQtPnRleHREcmF3
aW5nTW9kZSgpID09IGNUZXh0RmlsbCAmJgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAJKHJldmlzaW9u
IDYxMDE2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHRDYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgY29weUNvbnRleHRQcm9wZXJ0aWVzCiAgICAgY2Fpcm9fc2V0X2ZpbGxfcnVsZShk
c3RDciwgY2Fpcm9fZ2V0X2ZpbGxfcnVsZShzcmNDcikpOwogfQogCi12b2lkIEdyYXBoaWNzQ29u
dGV4dDo6Y2FsY3VsYXRlU2hhZG93QnVmZmVyRGltZW5zaW9ucyhJbnRTaXplJiBzaGFkb3dCdWZm
ZXJTaXplLCBGbG9hdFJlY3QmIHNoYWRvd1JlY3QsIGZsb2F0JiBrZXJuZWxTaXplLCBjb25zdCBG
bG9hdFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFNpemUmIHNoYWRvd1NpemUsIGZsb2F0IHNo
YWRvd0JsdXIpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2FsY3VsYXRlU2hhZG93QnVmZmVyRGlt
ZW5zaW9ucyhJbnRTaXplJiBzaGFkb3dCdWZmZXJTaXplLCBGbG9hdFJlY3QmIHNoYWRvd1JlY3Qs
IGZsb2F0JiBrZXJuZWxTaXplLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEZs
b2F0U2l6ZSYgc2hhZG93U2l6ZSwgZmxvYXQgc2hhZG93Qmx1cikKIHsKICNpZiBFTkFCTEUoRklM
VEVSUykKICAgICAvLyBjYWxjdWxhdGUgdGhlIGtlcm5lbCBzaXplIGFjY29yZGluZyB0byB0aGUg
SFRNTDUgY2FudmFzIHNoYWRvdyBzcGVjaWZpY2F0aW9uCkBAIC0xNjEsNyArMTYxLDcgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmNhbGN1bGF0ZVNoYWRvd0J1Zgogc3RhdGljIGlubGluZSB2b2lk
IGRyYXdQYXRoU2hhZG93KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgR3JhcGhpY3NDb250ZXh0
UHJpdmF0ZSogZ2NwLCBib29sIGZpbGxTaGFkb3csIGJvb2wgc3Ryb2tlU2hhZG93KQogewogI2lm
IEVOQUJMRShGSUxURVJTKQotICAgIEludFNpemUgc2hhZG93U2l6ZTsKKyAgICBGbG9hdFNpemUg
c2hhZG93U2l6ZTsKICAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9y
OwogICAgIGlmICghY29udGV4dC0+Z2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNo
YWRvd0NvbG9yKSkKQEAgLTU1OSw3ICs1NTksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Zmls
bFJlY3QoY29uc3QgRmxvCiBzdGF0aWMgdm9pZCBkcmF3Qm9yZGVybGVzc1JlY3RTaGFkb3coR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9y
JiByZWN0Q29sb3IpCiB7CiAjaWYgRU5BQkxFKEZJTFRFUlMpCi0gICAgSW50U2l6ZSBzaGFkb3dT
aXplOworICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwogICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAg
ICAgQ29sb3Igc2hhZG93Q29sb3I7CiAKQEAgLTg0MSw3ICs4NDEsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6Y2xpcFRvSW1hZ2VCdWZmZXIoCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KEludFNpemUgY29uc3QmIHNp
emUsIGZsb2F0LCBDb2xvciBjb25zdCYsIENvbG9yU3BhY2UpCit2b2lkIEdyYXBoaWNzQ29udGV4
dDo6c2V0UGxhdGZvcm1TaGFkb3coRmxvYXRTaXplIGNvbnN0JiBzaXplLCBmbG9hdCwgQ29sb3Ig
Y29uc3QmLCBDb2xvclNwYWNlKQogewogICAgIC8vIENhaXJvIGRvZXNuJ3Qgc3VwcG9ydCBzaGFk
b3dzIG5hdGl2ZWx5LCB0aGV5IGFyZSBkcmF3biBtYW51YWxseSBpbiB0aGUgZHJhdyoKICAgICAv
LyBmdW5jdGlvbnMKQEAgLTg0OSw3ICs4NDksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0
UGxhdGZvcm1TaGFkb3coCiAgICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dzSWdub3JlVHJh
bnNmb3JtcykgewogICAgICAgICAvLyBNZWFuaW5nIHRoYXQgdGhpcyBncmFwaGljcyBjb250ZXh0
IGlzIGFzc29jaWF0ZWQgd2l0aCBhIENhbnZhc1JlbmRlcmluZ0NvbnRleHQKICAgICAgICAgLy8g
V2UgZmxpcCB0aGUgaGVpZ2h0IHNpbmNlIENHIGFuZCBIVE1MNSBDYW52YXMgaGF2ZSBvcHBvc2l0
ZSBZIGF4aXMKLSAgICAgICAgbV9jb21tb24tPnN0YXRlLnNoYWRvd1NpemUgPSBJbnRTaXplKHNp
emUud2lkdGgoKSwgLXNpemUuaGVpZ2h0KCkpOworICAgICAgICBtX2NvbW1vbi0+c3RhdGUuc2hh
ZG93U2l6ZSA9IEZsb2F0U2l6ZShzaXplLndpZHRoKCksIC1zaXplLmhlaWdodCgpKTsKICAgICB9
CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNh
aXJvLmNwcAkocmV2aXNpb24gNjEwMTYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQ2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9p
ZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIAogCiAgICAgLy8gRHJhdyB0aGUg
c2hhZG93CiAjaWYgRU5BQkxFKEZJTFRFUlMpCi0gICAgSW50U2l6ZSBzaGFkb3dTaXplOworICAg
IEZsb2F0U2l6ZSBzaGFkb3dTaXplOwogICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Ig
c2hhZG93Q29sb3I7CiAgICAgaWYgKGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFk
b3dCbHVyLCBzaGFkb3dDb2xvcikpIHsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCShyZXZpc2lvbiA2MTAxNikKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03NjQsNyArNzY0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5z
cGFyZW5jeUxheQogICAgIG1fZGF0YS0+bV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJ
ZGVudGl0eSA9IGZhbHNlOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1T
aGFkb3coY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYgY29s
b3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0
Zm9ybVNoYWRvdyhjb25zdCBGbG9hdFNpemUmIG9mZnNldCwgZmxvYXQgYmx1ciwgY29uc3QgQ29s
b3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlz
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2luLmNwcAkocmV2aXNpb24gNjEw
MTYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1bVdp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3Myw3ICsyNzMsNyBAQCBib29sIFRyYW5zcGFyZW5j
eUF3YXJlR2x5cGhQYWludGVyOjpkcmF3CiAKICAgICAvLyBJZiB0aGVyZSBpcyBhIG5vbi1ibHVy
IHNoYWRvdyBhbmQgYm90aCB0aGUgZmlsbCBjb2xvciBhbmQgc2hhZG93IGNvbG9yIAogICAgIC8v
IGFyZSBvcGFxdWUsIGhhbmRsZSB3aXRob3V0IHNraWEuIAotICAgIEludFNpemUgc2hhZG93U2l6
ZTsKKyAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsKICAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAg
IENvbG9yIHNoYWRvd0NvbG9yOwogICAgIGlmIChtX2dyYXBoaWNzQ29udGV4dC0+Z2V0U2hhZG93
KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewpAQCAtNDgzLDcgKzQ4Myw3
IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKIAogICAgIC8vIElm
IHRoZXJlIGlzIGEgbm9uLWJsdXIgc2hhZG93IGFuZCBib3RoIHRoZSBmaWxsIGNvbG9yIGFuZCBz
aGFkb3cgY29sb3IgCiAgICAgLy8gYXJlIG9wYXF1ZSwgaGFuZGxlIHdpdGhvdXQgc2tpYS4gCi0g
ICAgSW50U2l6ZSBzaGFkb3dTaXplOworICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwogICAgIGZs
b2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgaWYgKGdyYXBoaWNz
Q29udGV4dC0+Z2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSAm
JiB3aW5kb3dzQ2FuSGFuZGxlRHJhd1RleHRTaGFkb3coZ3JhcGhpY3NDb250ZXh0KSkgewpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEd0ay5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEd0ay5jcHAJKHJldmlzaW9uIDYx
MDE2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEd0ay5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChH
cmFwaGljc0NvbnRlCiAgICAgZmxvYXQgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE7CiAKICAgICAv
LyBUZXh0IHNoYWRvdywgaW5zcGlyZWQgYnkgRm9udE1hYwotICAgIEludFNpemUgc2hhZG93U2l6
ZTsKKyAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsKICAgICBmbG9hdCBzaGFkb3dCbHVyID0gMDsK
ICAgICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBib29sIGhhc1NoYWRvdyA9IGNvbnRleHQtPnRl
eHREcmF3aW5nTW9kZSgpID09IGNUZXh0RmlsbCAmJgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAJKHJl
dmlzaW9uIDYxMDE2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGlj
c0NvbnRleHRIYWlrdS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzNiw3ICs1MzYsNyBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJQbGF0Zm9ybVNoYWRvCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KEludFNpemUg
Y29uc3QmLCBmbG9hdCwgQ29sb3IgY29uc3QmLCBDb2xvclNwYWNlKQordm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KEZsb2F0U2l6ZSBjb25zdCYsIGZsb2F0LCBDb2xvciBj
b25zdCYsIENvbG9yU3BhY2UpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbQkocmV2aXNpb24gNjEwMTYpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4
dCogYwogICAgICAgICBDR0NvbnRleHRTZXRGb250U2l6ZShjZ0NvbnRleHQsIHBsYXRmb3JtRGF0
YS5tX3NpemUpOwogCiAKLSAgICBJbnRTaXplIHNoYWRvd1NpemU7CisgICAgRmxvYXRTaXplIHNo
YWRvd1NpemU7CiAgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICBDb2xvciBzaGFkb3dDb2xvcjsK
ICAgICBDb2xvclNwYWNlIGZpbGxDb2xvclNwYWNlID0gY29udGV4dC0+ZmlsbENvbG9yU3BhY2Uo
KTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0dyYXBoaWNzQ29udGV4
dE9wZW5WRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
dmcvR3JhcGhpY3NDb250ZXh0T3BlblZHLmNwcAkocmV2aXNpb24gNjEwMTYpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOTIsNyArMjkyLDcgQEAgRmxvYXRSZWN0IEdyYXBoaWNzQ29udGV4dDo6
cm91bmRUb0RldmljZQogICAgIHJldHVybiBGbG9hdFJlY3QoZW5jbG9zaW5nSW50UmVjdChtX2Rh
dGEtPnRyYW5zZm9ybWF0aW9uKCkubWFwUmVjdChyZWN0KSkpOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgYmx1
ciwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9h
dCBibHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAg
ICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCShyZXZpc2lvbiA2MTAxNikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5
LDcgKzEwOSw3IEBAIHN0YXRpYyB2b2lkIGRyYXdUZXh0Q29tbW9uKEdyYXBoaWNzQ29udGUKICAg
ICBRUG9pbnRGIHB0KHBvaW50LngoKSwgcG9pbnQueSgpKTsKIAogICAgIC8vIHRleHQgc2hhZG93
Ci0gICAgSW50U2l6ZSBzaGFkb3dTaXplOworICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwogICAg
IGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgYm9vbCBoYXNT
aGFkb3cgPSBjdHgtPnRleHREcmF3aW5nTW9kZSgpID09IGNUZXh0RmlsbCAmJiBjdHgtPmdldFNo
YWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcik7CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAkocmV2
aXNpb24gNjEwMTYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29u
dGV4dFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMzLDcgKzMzMyw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBJbnQKICAgICBwLT5zZXRSZW5kZXJIaW50KFFQYWlu
dGVyOjpBbnRpYWxpYXNpbmcsIG1fZGF0YS0+YW50aUFsaWFzaW5nRm9yUmVjdHNBbmRMaW5lcyk7
CiAKICAgICBpZiAobV9jb21tb24tPnN0YXRlLnNoYWRvd0NvbG9yLmlzVmFsaWQoKSkgewotICAg
ICAgICBJbnRTaXplIHNoYWRvd1NpemU7CisgICAgICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwog
ICAgICAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgICAgICBDb2xvciBzaGFkb3dDb2xvcjsKICAg
ICAgICAgaWYgKGdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikp
IHsKQEAgLTM3MSw3ICszNzEsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUoY29u
c3QgSW50CiAgICAgcC0+c2V0UmVuZGVySGludChRUGFpbnRlcjo6QW50aWFsaWFzaW5nLCBtX2Rh
dGEtPmFudGlBbGlhc2luZ0ZvclJlY3RzQW5kTGluZXMpOwogICAgIGFkanVzdExpbmVUb1BpeGVs
Qm91bmRhcmllcyhwMSwgcDIsIHdpZHRoLCBzdHlsZSk7CiAKLSAgICBJbnRTaXplIHNoYWRvd1Np
emU7CisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7CiAgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAg
ICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBpZiAodGV4dERyYXdpbmdNb2RlKCkgPT0gY1RleHRG
aWxsICYmIGdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsK
QEAgLTQ3Myw3ICs0NzMsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlQXJjKGNvbnN0
IEluCiAgICAgY29uc3QgYm9vbCBhbnRpQWxpYXMgPSBwLT50ZXN0UmVuZGVySGludChRUGFpbnRl
cjo6QW50aWFsaWFzaW5nKTsKICAgICBwLT5zZXRSZW5kZXJIaW50KFFQYWludGVyOjpBbnRpYWxp
YXNpbmcsIHRydWUpOwogCi0gICAgSW50U2l6ZSBzaGFkb3dTaXplOworICAgIEZsb2F0U2l6ZSBz
aGFkb3dTaXplOwogICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7
CiAgICAgc3RhcnRBbmdsZSAqPSAxNjsKQEAgLTUwOCw3ICs1MDgsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0NvbnZleFBvbHlnb24oCiAgICAgUVBhaW50ZXIqIHAgPSBtX2RhdGEtPnAo
KTsKICAgICBwLT5zYXZlKCk7CiAgICAgcC0+c2V0UmVuZGVySGludChRUGFpbnRlcjo6QW50aWFs
aWFzaW5nLCBzaG91bGRBbnRpYWxpYXMpOwotICAgIEludFNpemUgc2hhZG93U2l6ZTsKKyAgICBG
bG9hdFNpemUgc2hhZG93U2l6ZTsKICAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNo
YWRvd0NvbG9yOwogICAgIGlmIChnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hh
ZG93Q29sb3IpKSB7CkBAIC01MzksNyArNTM5LDcgQEAgUVBlbiBHcmFwaGljc0NvbnRleHQ6OnBl
bigpCiAKIHN0YXRpYyB2b2lkIGlubGluZSBkcmF3RmlsbGVkU2hhZG93UGF0aChHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIFFQYWludGVyKiBwLCBjb25zdCBRUGFpbnRlclBhdGgmIHBhdGgpCiB7
Ci0gICAgSW50U2l6ZSBzaGFkb3dTaXplOworICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwogICAg
IGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgaWYgKGNvbnRl
eHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsKQEAg
LTU4Niw3ICs1ODYsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCgpCiAgICAg
cGF0aC5zZXRGaWxsUnVsZSh0b1F0RmlsbFJ1bGUoZmlsbFJ1bGUoKSkpOwogCiAgICAgaWYgKG1f
Y29tbW9uLT5zdGF0ZS5zdHJva2VQYXR0ZXJuIHx8IG1fY29tbW9uLT5zdGF0ZS5zdHJva2VHcmFk
aWVudCB8fCBzdHJva2VDb2xvcigpLmFscGhhKCkpIHsKLSAgICAgICAgSW50U2l6ZSBzaGFkb3dT
aXplOworICAgICAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsKICAgICAgICAgZmxvYXQgc2hhZG93
Qmx1cjsKICAgICAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgICAgIGlmIChnZXRTaGFkb3co
c2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7CkBAIC02MTgsNyArNjE4LDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoKQogCiBzdGF0aWMgaW5saW5lIHZv
aWQgZHJhd0JvcmRlcmxlc3NSZWN0U2hhZG93KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUVBh
aW50ZXIqIHAsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBJbnRTaXplIHNoYWRvd1Np
emU7CisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7CiAgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAg
ICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBpZiAoY29udGV4dC0+Z2V0U2hhZG93KHNoYWRvd1Np
emUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewpAQCAtODIwLDcgKzgyMCw3IEBAIEZsb2F0
UmVjdCBHcmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2UKICAgICByZXR1cm4gRmxvYXRSZWN0
KHJvdW5kZWRPcmlnaW4sIHJvdW5kZWRMb3dlclJpZ2h0IC0gcm91bmRlZE9yaWdpbik7CiB9CiAK
LXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBJbnRTaXplJiBz
aXplLCBmbG9hdCwgY29uc3QgQ29sb3ImLCBDb2xvclNwYWNlKQordm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQsIGNvbnN0
IENvbG9yJiwgQ29sb3JTcGFjZSkKIHsKICAgICAvLyBRdCBkb2Vzbid0IHN1cHBvcnQgc2hhZG93
cyBuYXRpdmVseSwgdGhleSBhcmUgZHJhd24gbWFudWFsbHkgaW4gdGhlIGRyYXcqCiAgICAgLy8g
ZnVuY3Rpb25zCkBAIC04MjgsNyArODI4LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBs
YXRmb3JtU2hhZG93KAogICAgIGlmIChtX2NvbW1vbi0+c3RhdGUuc2hhZG93c0lnbm9yZVRyYW5z
Zm9ybXMpIHsKICAgICAgICAgLy8gTWVhbmluZyB0aGF0IHRoaXMgZ3JhcGhpY3MgY29udGV4dCBp
cyBhc3NvY2lhdGVkIHdpdGggYSBDYW52YXNSZW5kZXJpbmdDb250ZXh0CiAgICAgICAgIC8vIFdl
IGZsaXAgdGhlIGhlaWdodCBzaW5jZSBDRyBhbmQgSFRNTDUgQ2FudmFzIGhhdmUgb3Bwb3NpdGUg
WSBheGlzCi0gICAgICAgIG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dTaXplID0gSW50U2l6ZShzaXpl
LndpZHRoKCksIC1zaXplLmhlaWdodCgpKTsKKyAgICAgICAgbV9jb21tb24tPnN0YXRlLnNoYWRv
d1NpemUgPSBGbG9hdFNpemUoc2l6ZS53aWR0aCgpLCAtc2l6ZS5oZWlnaHQoKSk7CiAgICAgfQog
fQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAJKHJldmlz
aW9uIDYxMDE2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXco
R3JhcGhpY3NDb250ZXh0KiAKICAgICBpZiAoIWltYWdlLT5oYXNBbHBoYSgpICYmIHBhaW50ZXIt
PmNvbXBvc2l0aW9uTW9kZSgpID09IFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlT3Zl
cikKICAgICAgICAgcGFpbnRlci0+c2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3Np
dGlvbk1vZGVfU291cmNlKTsKIAotICAgIEludFNpemUgc2hhZG93U2l6ZTsKKyAgICBGbG9hdFNp
emUgc2hhZG93U2l6ZTsKICAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0Nv
bG9yOwogICAgIGlmIChjdHh0LT5nZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hh
ZG93Q29sb3IpKSB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhp
Y3NDb250ZXh0U2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCShyZXZpc2lvbiA2MTAxNikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTc3LDcgKzk3Nyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0
Zm9ybUZpbGxQYXQKICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+c2V0RmlsbFNoYWRlcihwYXR0ZXJu
LT5wbGF0Zm9ybVBhdHRlcm4oZ2V0Q1RNKCkpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6
OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmIHNpemUsCit2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgRmxvYXRTaXplJiBzaXplLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGJsdXJGbG9hdCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb2xvciYgY29sb3IsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3JTcGFjZSBjb2xvclNwYWNl
KQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NraWFGb250V2luLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvU2tpYUZvbnRXaW4u
Y3BwCShyZXZpc2lvbiA2MTAxNikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9T
a2lhRm9udFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMiw3ICsyMjIsNyBAQCB2b2lkIFNr
aWFXaW5PdXRsaW5lQ2FjaGU6OnJlbW92ZVBhdGhzRm9yCiAKIGJvb2wgd2luZG93c0NhbkhhbmRs
ZURyYXdUZXh0U2hhZG93KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCAqY29udGV4dCkKIHsKLSAg
ICBJbnRTaXplIHNoYWRvd1NpemU7CisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7CiAgICAgZmxv
YXQgc2hhZG93Qmx1cjsKICAgICBDb2xvciBzaGFkb3dDb2xvcjsKIApJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENHV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q0dXaW4uY3BwCShyZXZpc2lvbiA2MTAxNikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDR1dpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgdm9pZCBkcmF3R0RJR2x5cGhzKEdyYXBoaWNz
Q29udGV4CiAKICAgICAgICAgZHJhd0ludG9CaXRtYXAgPSBmaWxsQ29sb3IuYWxwaGEoKSAhPSAy
NTUgfHwgZ3JhcGhpY3NDb250ZXh0LT5pblRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgICAgIGlm
ICghZHJhd0ludG9CaXRtYXApIHsKLSAgICAgICAgICAgIEludFNpemUgc2l6ZTsKKyAgICAgICAg
ICAgIEZsb2F0U2l6ZSBzaXplOwogICAgICAgICAgICAgZmxvYXQgYmx1cjsKICAgICAgICAgICAg
IENvbG9yIGNvbG9yOwogICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5nZXRTaGFkb3coc2l6
ZSwgYmx1ciwgY29sb3IpOwpAQCAtMzQ5LDcgKzM0OSw3IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBo
cyhHcmFwaGljc0NvbnRleHQqIGcKICAgICBDR0NvbnRleHRTZXRGb250U2l6ZShjZ0NvbnRleHQs
IHBsYXRmb3JtRGF0YS5zaXplKCkpOwogICAgIHdrU2V0Q0dDb250ZXh0Rm9udFJlbmRlcmluZ1N0
eWxlKGNnQ29udGV4dCwgZm9udC0+aXNTeXN0ZW1Gb250KCksIGZhbHNlLCBmb250LT5wbGF0Zm9y
bURhdGEoKS51c2VHREkoKSk7CiAKLSAgICBJbnRTaXplIHNoYWRvd1NpemU7CisgICAgRmxvYXRT
aXplIHNoYWRvd1NpemU7CiAgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICBDb2xvciBzaGFkb3dD
b2xvcjsKICAgICBncmFwaGljc0NvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dC
bHVyLCBzaGFkb3dDb2xvcik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNl
L0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcAkocmV2aXNpb24gNjEwMTYp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI0OSw3ICsxMjQ5LDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmZpbGxSb3VuZGVkUmVjdChjbwogICAgIGlmICghbV9kYXRhLT5tX2RjKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBJbnRTaXplIHNoYWRvd1NpemU7CisgICAgRmxvYXRTaXplIHNoYWRv
d1NpemU7CiAgICAgZmxvYXQgc2hhZG93Qmx1ciA9IDA7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7
CiAgICAgICAgIApAQCAtMTU1MCw3ICsxNTUwLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZp
bGxSZWN0KGNvbnN0IEZsbwogICAgICAgICBmaWxsUmVjdChyZWN0LCBmaWxsQ29sb3IoKSwgRGV2
aWNlQ29sb3JTcGFjZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNo
YWRvdyhjb25zdCBJbnRTaXplJiwgZmxvYXQsIGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSkKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBGbG9hdFNpemUmLCBm
bG9hdCwgY29uc3QgQ29sb3ImLCBDb2xvclNwYWNlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CkBAIC0xNjcyLDcgKzE2NzIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RleHQo
Y29uc3QgU2ltCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBJbnRTaXplIHNoYWRvd1Np
emU7CisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7CiAgICAgZmxvYXQgc2hhZG93Qmx1ciA9IDA7
CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgYm9vbCBoYXNTaGFkb3cgPSB0ZXh0RHJhd2lu
Z01vZGUoKSA9PSBjVGV4dEZpbGwKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gv
R3JhcGhpY3NDb250ZXh0V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3guY3BwCShyZXZpc2lvbiA2MTAxNikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3guY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01NTQsNyArNTU0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNv
bnN0IEZsbwogICAgICAgICByZXR1cm47CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVNoYWRvdyhJbnRTaXplIGNvbnN0JiwgZmxvYXQsIENvbG9yIGNvbnN0JiwgQ29sb3JT
cGFjZSkgCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coRmxvYXRTaXpl
IGNvbnN0JiwgZmxvYXQsIENvbG9yIGNvbnN0JiwgQ29sb3JTcGFjZSkKIHsgCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsgCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MTAyNCkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA2LTExICBD
aGFuZyBTaHUgIDxjaGFuZy5zaHVAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gVW5za2lwIGNhbnZhcy9waGlsaXAvdGVzdHMv
MmQuc2hhZG93LmVuYWJsZS54Lmh0bWwKKyAgICAgICAgYW5kIGNhbnZhcy9waGlsaXAvdGVzdHMv
MmQuc2hhZG93LmVuYWJsZS55Lmh0bWwuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQwNDM0CisKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVk
OgorCiAyMDEwLTA2LTExICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
CShyZXZpc2lvbiA2MTAxNikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHdv
cmtpbmcgY29weSkKQEAgLTUzNDMsOCArNTM0Myw2IEBAIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
c2hhZG93LmFscGhhLjUuaHQKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmNhbnZhcy5h
bHBoYS5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5jYW52YXMuYmFzaWMuaHRt
bAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuY2FudmFzLnRyYW5zcGFyZW50LjIuaHRt
bAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuZW5hYmxlLnguaHRtbAotY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5zaGFkb3cuZW5hYmxlLnkuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5zaGFkb3cuZ3JhZGllbnQuYWxwaGEuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFk
b3cuZ3JhZGllbnQudHJhbnNwYXJlbnQuMS5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNo
YWRvdy5pbWFnZS5hbHBoYS5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58646</attachid>
            <date>2010-06-14 07:55:13 -0700</date>
            <delta_ts>2010-06-14 10:29:28 -0700</delta_ts>
            <desc>fix patch</desc>
            <filename>bug40434_3.patch</filename>
            <type>text/plain</type>
            <size>26543</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTEyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNzAgQEAKKzIwMTAtMDYtMTQgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hh
bmdlIHRoZSB0eXBlIG9mIFNoYWRvd1NpemUgZnJvbSBJbnRTaXplIHRvIEZsb2F0U2l6ZSBpbiBH
cmFwaGljc0NvbnRleHQuCisgICAgICAgIFVzaW5nIEludFNpemUgbG9zZXMgcHJlY2lzaW9uIGFu
ZCBmYWlscyB0aGUgdGVzdC4KKyAgICAgICAgTm90ZTogVGhpcyBjb2RlIGNoYW5nZSBmaXhlcyBR
dCBwb3J0IGJ1dCBNYWMgaXMgc3RpbGwgZmFpbGluZyBkdWUgdG8KKyAgICAgICAgcGxhdGZvcm0g
aXNzdWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwNDM0CisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjphcHBseVNo
YWRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0U2hhZG93KToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Z2V0U2hhZG93KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vRm9udENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Y2FsY3VsYXRlU2hhZG93
QnVmZmVyRGltZW5zaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpkcmF3UGF0aFNoYWRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpkcmF3Qm9yZGVybGVzc1JlY3RTaGFkb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
aXRtYXBJbWFnZTo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVNoYWRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9u
dENocm9taXVtV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zcGFyZW5jeUF3YXJlRm9u
dFBhaW50ZXI6OlRyYW5zcGFyZW5jeUF3YXJlR2x5cGhQYWludGVyOjpkcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdDb21wbGV4VGV4dCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJh
d0NvbXBsZXhUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGlj
c0NvbnRleHRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNl
dFBsYXRmb3JtU2hhZG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRy
YXdUZXh0Q29tbW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0Nv
bnRleHRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdHJva2VBcmMpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Q29udmV4UG9seWdvbik6CisgICAgICAgIChXZWJDb3Jl
OjpkcmF3RmlsbGVkU2hhZG93UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnN0cm9rZVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0JvcmRlcmxlc3NSZWN0U2hh
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFk
b3cpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9za2lhL1NraWFGb250V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NDYW5I
YW5kbGVEcmF3VGV4dFNoYWRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3R0RJR2x5cGhzKToKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpkcmF3VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhp
Y3NDb250ZXh0V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVNoYWRvdyk6CisKIDIwMTAtMDYtMTMgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25A
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFu
c2VuLgpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcAkocmV2aXNpb24gNjExMjIpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyOSw3ICs5MjksNyBA
QCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXBwbHlTaGFkCiAKICAgICBmbG9hdCB3
aWR0aCA9IHN0YXRlKCkubV9zaGFkb3dPZmZzZXQud2lkdGgoKTsKICAgICBmbG9hdCBoZWlnaHQg
PSBzdGF0ZSgpLm1fc2hhZG93T2Zmc2V0LmhlaWdodCgpOwotICAgIGMtPnNldFNoYWRvdyhJbnRT
aXplKHdpZHRoLCAtaGVpZ2h0KSwgc3RhdGUoKS5tX3NoYWRvd0JsdXIsIHN0YXRlKCkubV9zaGFk
b3dDb2xvciwgRGV2aWNlQ29sb3JTcGFjZSk7CisgICAgYy0+c2V0U2hhZG93KEZsb2F0U2l6ZSh3
aWR0aCwgLWhlaWdodCksIHN0YXRlKCkubV9zaGFkb3dCbHVyLCBzdGF0ZSgpLm1fc2hhZG93Q29s
b3IsIERldmljZUNvbG9yU3BhY2UpOwogfQogCiBzdGF0aWMgSW50U2l6ZSBzaXplKEhUTUxJbWFn
ZUVsZW1lbnQqIGltYWdlKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAkocmV2aXNpb24gNjExMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw3ICsxMjks
NyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlQ29sb3IoY29uCiAgICAgc2V0UGxh
dGZvcm1TdHJva2VDb2xvcihjb2xvciwgY29sb3JTcGFjZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3ND
b250ZXh0OjpzZXRTaGFkb3coY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgYmx1ciwgY29uc3Qg
Q29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit2b2lkIEdyYXBoaWNzQ29udGV4
dDo6c2V0U2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgYmx1ciwgY29uc3QgQ29s
b3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgbV9jb21tb24tPnN0YXRl
LnNoYWRvd1NpemUgPSBzaXplOwogICAgIG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dCbHVyID0gYmx1
cjsKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJTaGFkb3co
KQogICAgIGNsZWFyUGxhdGZvcm1TaGFkb3coKTsKIH0KIAotYm9vbCBHcmFwaGljc0NvbnRleHQ6
OmdldFNoYWRvdyhJbnRTaXplJiBzaXplLCBmbG9hdCYgYmx1ciwgQ29sb3ImIGNvbG9yKSBjb25z
dAorYm9vbCBHcmFwaGljc0NvbnRleHQ6OmdldFNoYWRvdyhGbG9hdFNpemUmIHNpemUsIGZsb2F0
JiBibHVyLCBDb2xvciYgY29sb3IpIGNvbnN0CiB7CiAgICAgc2l6ZSA9IG1fY29tbW9uLT5zdGF0
ZS5zaGFkb3dTaXplOwogICAgIGJsdXIgPSBtX2NvbW1vbi0+c3RhdGUuc2hhZG93Qmx1cjsKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAkocmV2aXNp
b24gNjExMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNjMsOCArMjYzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSk7CiAgICAg
ICAgIHZvaWQgZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKIAotICAgICAgICB2b2lkIHNldFNoYWRv
dyhjb25zdCBJbnRTaXplJiwgZmxvYXQgYmx1ciwgY29uc3QgQ29sb3ImLCBDb2xvclNwYWNlKTsK
LSAgICAgICAgYm9vbCBnZXRTaGFkb3coSW50U2l6ZSYsIGZsb2F0JiwgQ29sb3ImKSBjb25zdDsK
KyAgICAgICAgdm9pZCBzZXRTaGFkb3coY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgYmx1ciwgY29u
c3QgQ29sb3ImLCBDb2xvclNwYWNlKTsKKyAgICAgICAgYm9vbCBnZXRTaGFkb3coRmxvYXRTaXpl
JiwgZmxvYXQmLCBDb2xvciYpIGNvbnN0OwogICAgICAgICB2b2lkIGNsZWFyU2hhZG93KCk7CiAK
ICAgICAgICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYsIGludCB3
aWR0aCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImKTsKQEAgLTI3OSw3ICsyNzksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAjaWYgUExBVEZPUk0oQ0FJUk8pCiAgICAgICAgIGZsb2F0IGdldEFs
cGhhKCk7CiAgICAgICAgIHZvaWQgY3JlYXRlUGxhdGZvcm1TaGFkb3coUGFzc093blB0cjxJbWFn
ZUJ1ZmZlcj4gYnVmZmVyLCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IsIGNvbnN0IEZsb2F0UmVj
dCYgc2hhZG93UmVjdCwgZmxvYXQga2VybmVsU2l6ZSk7Ci0gICAgICAgIHN0YXRpYyB2b2lkIGNh
bGN1bGF0ZVNoYWRvd0J1ZmZlckRpbWVuc2lvbnMoSW50U2l6ZSYgc2hhZG93QnVmZmVyU2l6ZSwg
RmxvYXRSZWN0JiBzaGFkb3dSZWN0LCBmbG9hdCYga2VybmVsU2l6ZSwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRTaXplJiBzaGFkb3dTaXplLCBmbG9hdCBzaGFkb3dCbHVy
KTsKKyAgICAgICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlU2hhZG93QnVmZmVyRGltZW5zaW9ucyhJ
bnRTaXplJiBzaGFkb3dCdWZmZXJTaXplLCBGbG9hdFJlY3QmIHNoYWRvd1JlY3QsIGZsb2F0JiBr
ZXJuZWxTaXplLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYg
c2hhZG93U2l6ZSwgZmxvYXQgc2hhZG93Qmx1cik7CiAjZW5kaWYKIAogICAgICAgICB2b2lkIHNl
dENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVPcGVyYXRvcik7CkBAIC00MDksNyArNDA5LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgc2V0UGxhdGZvcm1TaG91bGRB
bnRpYWxpYXMoYm9vbCBiKTsKIAotICAgICAgICB2b2lkIHNldFBsYXRmb3JtU2hhZG93KGNvbnN0
IEludFNpemUmLCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpOworICAgICAg
ICB2b2lkIHNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IGJsdXIsIGNv
bnN0IENvbG9yJiwgQ29sb3JTcGFjZSk7CiAgICAgICAgIHZvaWQgY2xlYXJQbGF0Zm9ybVNoYWRv
dygpOwogCiAgICAgICAgIHN0YXRpYyB2b2lkIGFkanVzdExpbmVUb1BpeGVsQm91bmRhcmllcyhG
bG9hdFBvaW50JiBwMSwgRmxvYXRQb2ludCYgcDIsIGZsb2F0IHN0cm9rZVdpZHRoLCBjb25zdCBT
dHJva2VTdHlsZSYpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHRQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHRQcml2YXRlLmgJKHJldmlzaW9uIDYxMTIyKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDcgKzcyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wgcGFpbnRp
bmdEaXNhYmxlZDsKICAgICAgICAgCi0gICAgICAgIEludFNpemUgc2hhZG93U2l6ZTsKKyAgICAg
ICAgRmxvYXRTaXplIHNoYWRvd1NpemU7CiAgICAgICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAg
ICAgIENvbG9yIHNoYWRvd0NvbG9yOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ZvbnRDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCShyZXZpc2lvbiA2MTEyMikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAs
NyArNzAsNyBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBjCiAgICAg
fQogCiAgICAgLy8gVGV4dCBzaGFkb3csIGluc3BpcmVkIGJ5IEZvbnRNYWMKLSAgICBJbnRTaXpl
IHNoYWRvd1NpemU7CisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7CiAgICAgZmxvYXQgc2hhZG93
Qmx1ciA9IDA7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgYm9vbCBoYXNTaGFkb3cgPSBj
b250ZXh0LT50ZXh0RHJhd2luZ01vZGUoKSA9PSBjVGV4dEZpbGwgJiYKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fp
cm8uY3BwCShyZXZpc2lvbiA2MTEyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsNyArMTQz
LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGNvcHlDb250ZXh0UHJvcGVydGllcwogICAgIGNhaXJv
X3NldF9maWxsX3J1bGUoZHN0Q3IsIGNhaXJvX2dldF9maWxsX3J1bGUoc3JjQ3IpKTsKIH0KIAot
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmNhbGN1bGF0ZVNoYWRvd0J1ZmZlckRpbWVuc2lvbnMoSW50
U2l6ZSYgc2hhZG93QnVmZmVyU2l6ZSwgRmxvYXRSZWN0JiBzaGFkb3dSZWN0LCBmbG9hdCYga2Vy
bmVsU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRTaXplJiBzaGFk
b3dTaXplLCBmbG9hdCBzaGFkb3dCbHVyKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmNhbGN1bGF0
ZVNoYWRvd0J1ZmZlckRpbWVuc2lvbnMoSW50U2l6ZSYgc2hhZG93QnVmZmVyU2l6ZSwgRmxvYXRS
ZWN0JiBzaGFkb3dSZWN0LCBmbG9hdCYga2VybmVsU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBzb3Vy
Y2VSZWN0LCBjb25zdCBGbG9hdFNpemUmIHNoYWRvd1NpemUsIGZsb2F0IHNoYWRvd0JsdXIpCiB7
CiAjaWYgRU5BQkxFKEZJTFRFUlMpCiAgICAgLy8gY2FsY3VsYXRlIHRoZSBrZXJuZWwgc2l6ZSBh
Y2NvcmRpbmcgdG8gdGhlIEhUTUw1IGNhbnZhcyBzaGFkb3cgc3BlY2lmaWNhdGlvbgpAQCAtMTYx
LDcgKzE2MSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjYWxjdWxhdGVTaGFkb3dCdWYKIHN0
YXRpYyBpbmxpbmUgdm9pZCBkcmF3UGF0aFNoYWRvdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IEdyYXBoaWNzQ29udGV4dFByaXZhdGUqIGdjcCwgYm9vbCBmaWxsU2hhZG93LCBib29sIHN0cm9r
ZVNoYWRvdykKIHsKICNpZiBFTkFCTEUoRklMVEVSUykKLSAgICBJbnRTaXplIHNoYWRvd1NpemU7
CisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7CiAgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICBD
b2xvciBzaGFkb3dDb2xvcjsKICAgICBpZiAoIWNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXpl
LCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpCkBAIC01NTksNyArNTU5LDcgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsbwogc3RhdGljIHZvaWQgZHJhd0JvcmRlcmxl
c3NSZWN0U2hhZG93KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBy
ZWN0LCBjb25zdCBDb2xvciYgcmVjdENvbG9yKQogewogI2lmIEVOQUJMRShGSUxURVJTKQotICAg
IEludFNpemUgc2hhZG93U2l6ZTsKKyAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsKICAgICBmbG9h
dCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwogCkBAIC04NDEsNyArODQxLDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBUb0ltYWdlQnVmZmVyKAogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhJ
bnRTaXplIGNvbnN0JiBzaXplLCBmbG9hdCwgQ29sb3IgY29uc3QmLCBDb2xvclNwYWNlKQordm9p
ZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KEZsb2F0U2l6ZSBjb25zdCYgc2l6
ZSwgZmxvYXQsIENvbG9yIGNvbnN0JiwgQ29sb3JTcGFjZSkKIHsKICAgICAvLyBDYWlybyBkb2Vz
bid0IHN1cHBvcnQgc2hhZG93cyBuYXRpdmVseSwgdGhleSBhcmUgZHJhd24gbWFudWFsbHkgaW4g
dGhlIGRyYXcqCiAgICAgLy8gZnVuY3Rpb25zCkBAIC04NDksNyArODQ5LDcgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KAogICAgIGlmIChtX2NvbW1vbi0+c3RhdGUu
c2hhZG93c0lnbm9yZVRyYW5zZm9ybXMpIHsKICAgICAgICAgLy8gTWVhbmluZyB0aGF0IHRoaXMg
Z3JhcGhpY3MgY29udGV4dCBpcyBhc3NvY2lhdGVkIHdpdGggYSBDYW52YXNSZW5kZXJpbmdDb250
ZXh0CiAgICAgICAgIC8vIFdlIGZsaXAgdGhlIGhlaWdodCBzaW5jZSBDRyBhbmQgSFRNTDUgQ2Fu
dmFzIGhhdmUgb3Bwb3NpdGUgWSBheGlzCi0gICAgICAgIG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dT
aXplID0gSW50U2l6ZShzaXplLndpZHRoKCksIC1zaXplLmhlaWdodCgpKTsKKyAgICAgICAgbV9j
b21tb24tPnN0YXRlLnNoYWRvd1NpemUgPSBGbG9hdFNpemUoc2l6ZS53aWR0aCgpLCAtc2l6ZS5o
ZWlnaHQoKSk7CiAgICAgfQogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQ2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAJKHJldmlzaW9uIDYxMTIyKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM0
LDcgKzEzNCw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiAKIAog
ICAgIC8vIERyYXcgdGhlIHNoYWRvdwogI2lmIEVOQUJMRShGSUxURVJTKQotICAgIEludFNpemUg
c2hhZG93U2l6ZTsKKyAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsKICAgICBmbG9hdCBzaGFkb3dC
bHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwogICAgIGlmIChjb250ZXh0LT5nZXRTaGFkb3co
c2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7CkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAkocmV2aXNp
b24gNjExMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzY0LDcgKzc2NCw3IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXkKICAgICBtX2RhdGEtPm1fdXNlclRvRGV2aWNlVHJh
bnNmb3JtS25vd25Ub0JlSWRlbnRpdHkgPSBmYWxzZTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmIG9mZnNldCwgZmxvYXQgYmx1ciwg
Y29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit2b2lkIEdyYXBoaWNz
Q29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgRmxvYXRTaXplJiBvZmZzZXQsIGZsb2F0
IGJsdXIsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewogICAg
IGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2luLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1bVdpbi5j
cHAJKHJldmlzaW9uIDYxMTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Gb250Q2hyb21pdW1XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzMsNyArMjczLDcgQEAg
Ym9vbCBUcmFuc3BhcmVuY3lBd2FyZUdseXBoUGFpbnRlcjo6ZHJhdwogCiAgICAgLy8gSWYgdGhl
cmUgaXMgYSBub24tYmx1ciBzaGFkb3cgYW5kIGJvdGggdGhlIGZpbGwgY29sb3IgYW5kIHNoYWRv
dyBjb2xvciAKICAgICAvLyBhcmUgb3BhcXVlLCBoYW5kbGUgd2l0aG91dCBza2lhLiAKLSAgICBJ
bnRTaXplIHNoYWRvd1NpemU7CisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7CiAgICAgZmxvYXQg
c2hhZG93Qmx1cjsKICAgICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBpZiAobV9ncmFwaGljc0Nv
bnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsK
QEAgLTQ4Myw3ICs0ODMsNyBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0Nv
bnRlCiAKICAgICAvLyBJZiB0aGVyZSBpcyBhIG5vbi1ibHVyIHNoYWRvdyBhbmQgYm90aCB0aGUg
ZmlsbCBjb2xvciBhbmQgc2hhZG93IGNvbG9yIAogICAgIC8vIGFyZSBvcGFxdWUsIGhhbmRsZSB3
aXRob3V0IHNraWEuIAotICAgIEludFNpemUgc2hhZG93U2l6ZTsKKyAgICBGbG9hdFNpemUgc2hh
ZG93U2l6ZTsKICAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwog
ICAgIGlmIChncmFwaGljc0NvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVy
LCBzaGFkb3dDb2xvcikgJiYgd2luZG93c0NhbkhhbmRsZURyYXdUZXh0U2hhZG93KGdyYXBoaWNz
Q29udGV4dCkpIHsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsu
Y3BwCShyZXZpc2lvbiA2MTEyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0Zv
bnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBGb250Ojpk
cmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIGZsb2F0IHJlZCwgZ3JlZW4sIGJsdWUs
IGFscGhhOwogCiAgICAgLy8gVGV4dCBzaGFkb3csIGluc3BpcmVkIGJ5IEZvbnRNYWMKLSAgICBJ
bnRTaXplIHNoYWRvd1NpemU7CisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7CiAgICAgZmxvYXQg
c2hhZG93Qmx1ciA9IDA7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgYm9vbCBoYXNTaGFk
b3cgPSBjb250ZXh0LT50ZXh0RHJhd2luZ01vZGUoKSA9PSBjVGV4dEZpbGwgJiYKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvR3JhcGhpY3NDb250ZXh0SGFpa3UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvR3JhcGhpY3NDb250
ZXh0SGFpa3UuY3BwCShyZXZpc2lvbiA2MTEyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFpa3UvR3JhcGhpY3NDb250ZXh0SGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MzYs
NyArNTM2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsZWFyUGxhdGZvcm1TaGFkbwogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9y
bVNoYWRvdyhJbnRTaXplIGNvbnN0JiwgZmxvYXQsIENvbG9yIGNvbnN0JiwgQ29sb3JTcGFjZSkK
K3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhGbG9hdFNpemUgY29uc3Qm
LCBmbG9hdCwgQ29sb3IgY29uc3QmLCBDb2xvclNwYWNlKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0JKHJl
dmlzaW9uIDYxMTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBo
cyhHcmFwaGljc0NvbnRleHQqIGMKICAgICAgICAgQ0dDb250ZXh0U2V0Rm9udFNpemUoY2dDb250
ZXh0LCBwbGF0Zm9ybURhdGEubV9zaXplKTsKIAogCi0gICAgSW50U2l6ZSBzaGFkb3dTaXplOwor
ICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwogICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29s
b3Igc2hhZG93Q29sb3I7CiAgICAgQ29sb3JTcGFjZSBmaWxsQ29sb3JTcGFjZSA9IGNvbnRleHQt
PmZpbGxDb2xvclNwYWNlKCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52
Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbnZnL0dyYXBoaWNzQ29udGV4dE9wZW5WRy5jcHAJKHJldmlzaW9uIDYx
MTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvR3JhcGhpY3NDb250ZXh0
T3BlblZHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkyLDcgKzI5Miw3IEBAIEZsb2F0UmVjdCBH
cmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2UKICAgICByZXR1cm4gRmxvYXRSZWN0KGVuY2xv
c2luZ0ludFJlY3QobV9kYXRhLT50cmFuc2Zvcm1hdGlvbigpLm1hcFJlY3QocmVjdCkpKTsKIH0K
IAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUm
IHNpemUsIGZsb2F0IGJsdXIsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNw
YWNlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEZsb2F0
U2l6ZSYgc2l6ZSwgZmxvYXQgYmx1ciwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkocmV2aXNpb24g
NjExMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0aWMgdm9pZCBkcmF3VGV4dENvbW1vbihH
cmFwaGljc0NvbnRlCiAgICAgUVBvaW50RiBwdChwb2ludC54KCksIHBvaW50LnkoKSk7CiAKICAg
ICAvLyB0ZXh0IHNoYWRvdwotICAgIEludFNpemUgc2hhZG93U2l6ZTsKKyAgICBGbG9hdFNpemUg
c2hhZG93U2l6ZTsKICAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9y
OwogICAgIGJvb2wgaGFzU2hhZG93ID0gY3R4LT50ZXh0RHJhd2luZ01vZGUoKSA9PSBjVGV4dEZp
bGwgJiYgY3R4LT5nZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3Ip
OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0Nv
bnRleHRRdC5jcHAJKHJldmlzaW9uIDYxMTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMyw3ICszMzMs
NyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QoY29uc3QgSW50CiAgICAgcC0+c2V0
UmVuZGVySGludChRUGFpbnRlcjo6QW50aWFsaWFzaW5nLCBtX2RhdGEtPmFudGlBbGlhc2luZ0Zv
clJlY3RzQW5kTGluZXMpOwogCiAgICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dDb2xvci5p
c1ZhbGlkKCkpIHsKLSAgICAgICAgSW50U2l6ZSBzaGFkb3dTaXplOworICAgICAgICBGbG9hdFNp
emUgc2hhZG93U2l6ZTsKICAgICAgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICAgICAgQ29sb3Ig
c2hhZG93Q29sb3I7CiAgICAgICAgIGlmIChnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1
ciwgc2hhZG93Q29sb3IpKSB7CkBAIC0zNzEsNyArMzcxLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdMaW5lKGNvbnN0IEludAogICAgIHAtPnNldFJlbmRlckhpbnQoUVBhaW50ZXI6OkFu
dGlhbGlhc2luZywgbV9kYXRhLT5hbnRpQWxpYXNpbmdGb3JSZWN0c0FuZExpbmVzKTsKICAgICBh
ZGp1c3RMaW5lVG9QaXhlbEJvdW5kYXJpZXMocDEsIHAyLCB3aWR0aCwgc3R5bGUpOwogCi0gICAg
SW50U2l6ZSBzaGFkb3dTaXplOworICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwogICAgIGZsb2F0
IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgaWYgKHRleHREcmF3aW5n
TW9kZSgpID09IGNUZXh0RmlsbCAmJiBnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwg
c2hhZG93Q29sb3IpKSB7CkBAIC00NzMsNyArNDczLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OnN0cm9rZUFyYyhjb25zdCBJbgogICAgIGNvbnN0IGJvb2wgYW50aUFsaWFzID0gcC0+dGVzdFJl
bmRlckhpbnQoUVBhaW50ZXI6OkFudGlhbGlhc2luZyk7CiAgICAgcC0+c2V0UmVuZGVySGludChR
UGFpbnRlcjo6QW50aWFsaWFzaW5nLCB0cnVlKTsKIAotICAgIEludFNpemUgc2hhZG93U2l6ZTsK
KyAgICBGbG9hdFNpemUgc2hhZG93U2l6ZTsKICAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENv
bG9yIHNoYWRvd0NvbG9yOwogICAgIHN0YXJ0QW5nbGUgKj0gMTY7CkBAIC01MDgsNyArNTA4LDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKAogICAgIFFQYWludGVy
KiBwID0gbV9kYXRhLT5wKCk7CiAgICAgcC0+c2F2ZSgpOwogICAgIHAtPnNldFJlbmRlckhpbnQo
UVBhaW50ZXI6OkFudGlhbGlhc2luZywgc2hvdWxkQW50aWFsaWFzKTsKLSAgICBJbnRTaXplIHNo
YWRvd1NpemU7CisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7CiAgICAgZmxvYXQgc2hhZG93Qmx1
cjsKICAgICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBpZiAoZ2V0U2hhZG93KHNoYWRvd1NpemUs
IHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewpAQCAtNTM5LDcgKzUzOSw3IEBAIFFQZW4gR3Jh
cGhpY3NDb250ZXh0OjpwZW4oKQogCiBzdGF0aWMgdm9pZCBpbmxpbmUgZHJhd0ZpbGxlZFNoYWRv
d1BhdGgoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBRUGFpbnRlciogcCwgY29uc3QgUVBhaW50
ZXJQYXRoJiBwYXRoKQogewotICAgIEludFNpemUgc2hhZG93U2l6ZTsKKyAgICBGbG9hdFNpemUg
c2hhZG93U2l6ZTsKICAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9y
OwogICAgIGlmIChjb250ZXh0LT5nZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hh
ZG93Q29sb3IpKSB7CkBAIC01ODYsNyArNTg2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0
cm9rZVBhdGgoKQogICAgIHBhdGguc2V0RmlsbFJ1bGUodG9RdEZpbGxSdWxlKGZpbGxSdWxlKCkp
KTsKIAogICAgIGlmIChtX2NvbW1vbi0+c3RhdGUuc3Ryb2tlUGF0dGVybiB8fCBtX2NvbW1vbi0+
c3RhdGUuc3Ryb2tlR3JhZGllbnQgfHwgc3Ryb2tlQ29sb3IoKS5hbHBoYSgpKSB7Ci0gICAgICAg
IEludFNpemUgc2hhZG93U2l6ZTsKKyAgICAgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7CiAgICAg
ICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgICAgIENvbG9yIHNoYWRvd0NvbG9yOwogICAgICAg
ICBpZiAoZ2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewpA
QCAtNjE4LDcgKzYxOCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKCkKIAog
c3RhdGljIGlubGluZSB2b2lkIGRyYXdCb3JkZXJsZXNzUmVjdFNoYWRvdyhHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIFFQYWludGVyKiBwLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAg
SW50U2l6ZSBzaGFkb3dTaXplOworICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwogICAgIGZsb2F0
IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgaWYgKGNvbnRleHQtPmdl
dFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsKQEAgLTgyMCw3
ICs4MjAsNyBAQCBGbG9hdFJlY3QgR3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlCiAgICAg
cmV0dXJuIEZsb2F0UmVjdChyb3VuZGVkT3JpZ2luLCByb3VuZGVkTG93ZXJSaWdodCAtIHJvdW5k
ZWRPcmlnaW4pOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3co
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQsIGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSkKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBGbG9hdFNpemUmIHNp
emUsIGZsb2F0LCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpCiB7CiAgICAgLy8gUXQgZG9lc24n
dCBzdXBwb3J0IHNoYWRvd3MgbmF0aXZlbHksIHRoZXkgYXJlIGRyYXduIG1hbnVhbGx5IGluIHRo
ZSBkcmF3KgogICAgIC8vIGZ1bmN0aW9ucwpAQCAtODI4LDcgKzgyOCw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdygKICAgICBpZiAobV9jb21tb24tPnN0YXRlLnNo
YWRvd3NJZ25vcmVUcmFuc2Zvcm1zKSB7CiAgICAgICAgIC8vIE1lYW5pbmcgdGhhdCB0aGlzIGdy
YXBoaWNzIGNvbnRleHQgaXMgYXNzb2NpYXRlZCB3aXRoIGEgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dAogICAgICAgICAvLyBXZSBmbGlwIHRoZSBoZWlnaHQgc2luY2UgQ0cgYW5kIEhUTUw1IENhbnZh
cyBoYXZlIG9wcG9zaXRlIFkgYXhpcwotICAgICAgICBtX2NvbW1vbi0+c3RhdGUuc2hhZG93U2l6
ZSA9IEludFNpemUoc2l6ZS53aWR0aCgpLCAtc2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIG1fY29t
bW9uLT5zdGF0ZS5zaGFkb3dTaXplID0gRmxvYXRTaXplKHNpemUud2lkdGgoKSwgLXNpemUuaGVp
Z2h0KCkpOwogICAgIH0KIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9J
bWFnZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0lt
YWdlUXQuY3BwCShyZXZpc2lvbiA2MTEyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvSW1hZ2VRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIEJp
dG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogCiAgICAgaWYgKCFpbWFnZS0+aGFzQWxw
aGEoKSAmJiBwYWludGVyLT5jb21wb3NpdGlvbk1vZGUoKSA9PSBRUGFpbnRlcjo6Q29tcG9zaXRp
b25Nb2RlX1NvdXJjZU92ZXIpCiAgICAgICAgIHBhaW50ZXItPnNldENvbXBvc2l0aW9uTW9kZShR
UGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZSk7CiAKLSAgICBJbnRTaXplIHNoYWRvd1Np
emU7CisgICAgRmxvYXRTaXplIHNoYWRvd1NpemU7CiAgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAg
ICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBpZiAoY3R4dC0+Z2V0U2hhZG93KHNoYWRvd1NpemUs
IHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcAkocmV2aXNpb24g
NjExMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0
U2tpYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3Nyw3ICs5NzcsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6c2V0UGxhdGZvcm1GaWxsUGF0CiAgICAgcGxhdGZvcm1Db250ZXh0KCktPnNldEZp
bGxTaGFkZXIocGF0dGVybi0+cGxhdGZvcm1QYXR0ZXJuKGdldENUTSgpKSk7CiB9CiAKLXZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBJbnRTaXplJiBzaXplLAor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYg
c2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBibHVy
RmxvYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29s
b3ImIGNvbG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9y
U3BhY2UgY29sb3JTcGFjZSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9T
a2lhRm9udFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL1NraWFGb250V2luLmNwcAkocmV2aXNpb24gNjExMjIpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvU2tpYUZvbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjIsNyAr
MjIyLDcgQEAgdm9pZCBTa2lhV2luT3V0bGluZUNhY2hlOjpyZW1vdmVQYXRoc0ZvcgogCiBib29s
IHdpbmRvd3NDYW5IYW5kbGVEcmF3VGV4dFNoYWRvdyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQg
KmNvbnRleHQpCiB7Ci0gICAgSW50U2l6ZSBzaGFkb3dTaXplOworICAgIEZsb2F0U2l6ZSBzaGFk
b3dTaXplOwogICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDR1dpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENHV2luLmNwcAkocmV2
aXNpb24gNjExMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q0dXaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNyArMTQwLDcgQEAgc3RhdGljIHZvaWQgZHJhd0dE
SUdseXBocyhHcmFwaGljc0NvbnRleAogCiAgICAgICAgIGRyYXdJbnRvQml0bWFwID0gZmlsbENv
bG9yLmFscGhhKCkgIT0gMjU1IHx8IGdyYXBoaWNzQ29udGV4dC0+aW5UcmFuc3BhcmVuY3lMYXll
cigpOwogICAgICAgICBpZiAoIWRyYXdJbnRvQml0bWFwKSB7Ci0gICAgICAgICAgICBJbnRTaXpl
IHNpemU7CisgICAgICAgICAgICBGbG9hdFNpemUgc2l6ZTsKICAgICAgICAgICAgIGZsb2F0IGJs
dXI7CiAgICAgICAgICAgICBDb2xvciBjb2xvcjsKICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4
dC0+Z2V0U2hhZG93KHNpemUsIGJsdXIsIGNvbG9yKTsKQEAgLTM0OSw3ICszNDksNyBAQCB2b2lk
IEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBnCiAgICAgQ0dDb250ZXh0U2V0Rm9u
dFNpemUoY2dDb250ZXh0LCBwbGF0Zm9ybURhdGEuc2l6ZSgpKTsKICAgICB3a1NldENHQ29udGV4
dEZvbnRSZW5kZXJpbmdTdHlsZShjZ0NvbnRleHQsIGZvbnQtPmlzU3lzdGVtRm9udCgpLCBmYWxz
ZSwgZm9udC0+cGxhdGZvcm1EYXRhKCkudXNlR0RJKCkpOwogCi0gICAgSW50U2l6ZSBzaGFkb3dT
aXplOworICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwogICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAg
ICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgZ3JhcGhpY3NDb250ZXh0LT5nZXRTaGFkb3coc2hh
ZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5jZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5jZS5jcHAJ
KHJldmlzaW9uIDYxMTIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFw
aGljc0NvbnRleHRXaW5jZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNDksNyArMTI0OSw3IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJlY3QoY28KICAgICBpZiAoIW1fZGF0
YS0+bV9kYykKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW50U2l6ZSBzaGFkb3dTaXplOworICAg
IEZsb2F0U2l6ZSBzaGFkb3dTaXplOwogICAgIGZsb2F0IHNoYWRvd0JsdXIgPSAwOwogICAgIENv
bG9yIHNoYWRvd0NvbG9yOwogICAgICAgICAKQEAgLTE1NTAsNyArMTU1MCw3IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG8KICAgICAgICAgZmlsbFJlY3QocmVjdCwg
ZmlsbENvbG9yKCksIERldmljZUNvbG9yU3BhY2UpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYsIGZsb2F0LCBjb25zdCBDb2xvciYs
IENvbG9yU3BhY2UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29u
c3QgRmxvYXRTaXplJiwgZmxvYXQsIGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSkKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMTY3Miw3ICsxNjcyLDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdUZXh0KGNvbnN0IFNpbQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
SW50U2l6ZSBzaGFkb3dTaXplOworICAgIEZsb2F0U2l6ZSBzaGFkb3dTaXplOwogICAgIGZsb2F0
IHNoYWRvd0JsdXIgPSAwOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwogICAgIGJvb2wgaGFzU2hh
ZG93ID0gdGV4dERyYXdpbmdNb2RlKCkgPT0gY1RleHRGaWxsCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNwcAkocmV2aXNpb24g
NjExMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU0LDcgKzU1NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpmaWxsUmVjdChjb25zdCBGbG8KICAgICAgICAgcmV0dXJuOwogfQogCi12b2lkIEdyYXBo
aWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coSW50U2l6ZSBjb25zdCYsIGZsb2F0LCBDb2xv
ciBjb25zdCYsIENvbG9yU3BhY2UpIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3Jt
U2hhZG93KEZsb2F0U2l6ZSBjb25zdCYsIGZsb2F0LCBDb2xvciBjb25zdCYsIENvbG9yU3BhY2Up
CiB7IAogICAgIG5vdEltcGxlbWVudGVkKCk7IAogfQpJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDYxMTIyKQor
KysgV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAor
MjAxMC0wNi0xNCAgQ2hhbmcgU2h1ICA8Y2hhbmcuc2h1QG5va2lhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbd2luXSBNYWtlIHdpbmRvd3Mg
Y29tcGlsZSBhZnRlciBBUEkgY2hhbmdlcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA0MzQKKworICAgICAgICAqIFdlYktpdEdyYXBoaWNzLmNw
cDoKKyAgICAgICAgKFdlYkRyYXdUZXh0KToKKwogMjAxMC0wNi0xNCAgSWx5YSBUaWtob25vdnNr
eSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVs
ZG1hbi4KSW5kZXg6IFdlYktpdC93aW4vV2ViS2l0R3JhcGhpY3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC93aW4vV2ViS2l0R3JhcGhpY3MuY3BwCShyZXZpc2lvbiA2MTEyMikKKysrIFdlYktp
dC93aW4vV2ViS2l0R3JhcGhpY3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNyArMTEyLDcg
QEAgdm9pZCBXZWJEcmF3VGV4dChXZWJUZXh0UmVuZGVySW5mbyogaW5mbwogICAgICAgICAvLyBT
ZXQgc2hhZG93IHNldHRpbmcKICAgICAgICAgaWYgKGluZm8tPnN0cnVjdFNpemUgPT0gc2l6ZW9m
KFdlYlRleHRSZW5kZXJJbmZvKSAmJgogICAgICAgICAgICAgKGluZm8tPnNoYWRvd09mZnNldC5j
eCB8fCBpbmZvLT5zaGFkb3dPZmZzZXQuY3kgfHwgaW5mby0+c2hhZG93Qmx1ciB8fCBpbmZvLT5z
aGFkb3dDb2xvcikpCi0gICAgICAgICAgICBjb250ZXh0LnNldFNoYWRvdyhpbmZvLT5zaGFkb3dP
ZmZzZXQsIGluZm8tPnNoYWRvd0JsdXIsIGluZm8tPnNoYWRvd0NvbG9yLCBEZXZpY2VDb2xvclNw
YWNlKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0U2hhZG93KEZsb2F0U2l6ZShpbmZvLT5zaGFk
b3dPZmZzZXQuY3gsIGluZm8tPnNoYWRvd09mZnNldC5jeSksIGluZm8tPnNoYWRvd0JsdXIsIGlu
Zm8tPnNoYWRvd0NvbG9yLCBEZXZpY2VDb2xvclNwYWNlKTsKIAogICAgICAgICBXZWJDb3JlRHJh
d1RleHRBdFBvaW50KGNvbnRleHQsIGRyYXdTdHJpbmcsIGluZm8tPnB0LCBtYWtlRm9udCgqKGlu
Zm8tPmRlc2NyaXB0aW9uKSksIGluZm8tPmNvbG9yLCBpbmZvLT51bmRlcmxpbmVkSW5kZXgpOwog
ICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDYxMTIyKQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTAtMDYtMTQgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBVbnNraXAgY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5zaGFkb3cuZW5hYmxlLnguaHRtbAorICAgICAgICBhbmQgY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5zaGFkb3cuZW5hYmxlLnkuaHRtbC4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA0MzQKKworICAgICAgICAqIHBsYXRmb3Jt
L3F0L1NraXBwZWQ6CisKIDIwMTAtMDYtMDggIE1hcmN1cyBCdWxhY2ggIDxidWxhY2hAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZAkocmV2aXNpb24gNjExMjIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC01MzA5LDggKzUzMDksNiBAQCBjYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5hbHBoYS41Lmh0CiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LnNoYWRvdy5jYW52YXMuYWxwaGEuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cu
Y2FudmFzLmJhc2ljLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmNhbnZhcy50
cmFuc3BhcmVudC4yLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmVuYWJsZS54
Lmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmVuYWJsZS55Lmh0bWwKIGNhbnZh
cy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmdyYWRpZW50LmFscGhhLmh0bWwKIGNhbnZhcy9waGls
aXAvdGVzdHMvMmQuc2hhZG93LmdyYWRpZW50LnRyYW5zcGFyZW50LjEuaHRtbAogY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5zaGFkb3cuaW1hZ2UuYWxwaGEuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>