<?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>62265</bug_id>
          
          <creation_ts>2011-06-07 22:25:37 -0700</creation_ts>
          <short_desc>Implement CSS border radius properies in CSSStyleApplyProperty</short_desc>
          <delta_ts>2011-06-14 23:31:58 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Luke Macpherson">macpherson</reporter>
          <assigned_to name="Luke Macpherson">macpherson</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>macpherson</cc>
    
    <cc>pfeldman</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>417090</commentid>
    <comment_count>0</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-06-07 22:25:37 -0700</bug_when>
    <thetext>Implement CSS border radius properies in CSSStyleApplyProperty</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417091</commentid>
    <comment_count>1</comment_count>
      <attachid>96381</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-06-07 22:31:41 -0700</bug_when>
    <thetext>Created attachment 96381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417095</commentid>
    <comment_count>2</comment_count>
      <attachid>96381</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-07 22:41:59 -0700</bug_when>
    <thetext>Comment on attachment 96381
Patch

Why are we moving away from const &amp;?  That&apos;s going to cause LengthSize to copy.  Is LengthSize expensive to copy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417098</commentid>
    <comment_count>3</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-06-07 22:47:44 -0700</bug_when>
    <thetext>I should prehaps have pr-empted this question. LengthSize contains exactly two lengths, and we pass Lengths by value already. Length is pretty small (&lt; 64 bits). Seems pretty safe to me on most any modern architecture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418414</commentid>
    <comment_count>4</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-06-09 17:16:39 -0700</bug_when>
    <thetext>Ping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418506</commentid>
    <comment_count>5</comment_count>
      <attachid>96381</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-09 22:37:51 -0700</bug_when>
    <thetext>Comment on attachment 96381
Patch

Looks good.  I&apos;m not sure the removal of const &amp; will be a win on all platforms... but I don&apos;t really know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418507</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-09 22:38:22 -0700</bug_when>
    <thetext>What&apos;s the disadvantage of using the const&amp;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418516</commentid>
    <comment_count>7</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-06-09 22:53:29 -0700</bug_when>
    <thetext>The disadvantage is that at the moment the types are a bit mix-and-match, so it made the templates easier to write / understand if the same parameter type can be used everywhere. This could also go the other way (all to const &amp;) I suppose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418774</commentid>
    <comment_count>8</comment_count>
      <attachid>96381</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-10 10:37:29 -0700</bug_when>
    <thetext>Comment on attachment 96381
Patch

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418810</commentid>
    <comment_count>9</comment_count>
      <attachid>96381</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-10 11:33:51 -0700</bug_when>
    <thetext>Comment on attachment 96381
Patch

Rejecting attachment 96381 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=ec2-cq-03&apos;, &apos;--port...&quot; exit_code: 2

Last 500 characters of output:
395a87712d692b0fc87844413a797b237c0448a0
r88553 = 7ae9a37d521f373bda7f5faa56104624249d647b
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.
Updating chromium port dependencies using gclient...

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/8826458</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420236</commentid>
    <comment_count>10</comment_count>
      <attachid>97072</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-06-13 23:15:33 -0700</bug_when>
    <thetext>Created attachment 97072
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420243</commentid>
    <comment_count>11</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-06-13 23:44:43 -0700</bug_when>
    <thetext>Manual merge</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420418</commentid>
    <comment_count>12</comment_count>
      <attachid>97072</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-14 08:06:25 -0700</bug_when>
    <thetext>Comment on attachment 97072
Patch

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

&gt; Source/WebCore/ChangeLog:1
&gt; +2011-06-13  Luke Macpherson   &lt;macpherson@chromium.org&gt;

For whatever reason there seems to be an extra space between your name and your email here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420440</commentid>
    <comment_count>13</comment_count>
      <attachid>97072</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-14 08:46:37 -0700</bug_when>
    <thetext>Comment on attachment 97072
Patch

Clearing flags on attachment: 97072

Committed r88804: &lt;http://trac.webkit.org/changeset/88804&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420441</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-14 08:46:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420446</commentid>
    <comment_count>15</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-14 08:49:04 -0700</bug_when>
    <thetext>Committed r88805: &lt;http://trac.webkit.org/changeset/88805&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421037</commentid>
    <comment_count>16</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-06-14 23:17:49 -0700</bug_when>
    <thetext>Ok, I&apos;m confused.
http://trac.webkit.org/changeset/88804 look like this patch
http://trac.webkit.org/changeset/88805 has the description of this patch, but clearly isn&apos;t this patch if you look at the diffs.

What happened?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421044</commentid>
    <comment_count>17</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-14 23:28:02 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Ok, I&apos;m confused.
&gt; http://trac.webkit.org/changeset/88804 look like this patch
&gt; http://trac.webkit.org/changeset/88805 has the description of this patch, but clearly isn&apos;t this patch if you look at the diffs.
&gt; 
&gt; What happened?

@eric: A webkit-patch glitch? I think I was using &quot;webkit-patch land&quot; with the patch from https://bugs.webkit.org/show_bug.cgi?id=62640 in my working tree. It did not go through, so I pulled from git and did &quot;webkit-patch land&quot; again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421049</commentid>
    <comment_count>18</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-14 23:31:58 -0700</bug_when>
    <thetext>&gt; @eric: A webkit-patch glitch? I think I was using &quot;webkit-patch land&quot; with the patch from https://bugs.webkit.org/show_bug.cgi?id=62640 in my working tree. It did not go through, so I pulled from git and did &quot;webkit-patch land&quot; again.

Oh, this is me to blame: my patch was based on the tree with my another patch being on top. ChangeLog resolves poorly in these cases and I just did not check it after pulling your change. We could fix ChangeLog resolving for this case though.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96381</attachid>
            <date>2011-06-07 22:31:41 -0700</date>
            <delta_ts>2011-06-13 23:15:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62265-20110608153139.patch</filename>
            <type>text/plain</type>
            <size>16379</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MzI0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDYtMDcgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgQ1NTIGJvcmRlciByYWRpdXMg
cHJvcGVyaWVzIGluIENTU1N0eWxlQXBwbHlQcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNjUKKworICAgICAgICBObyBuZXcgdGVzdHMg
LyByZWZhY3RvcmluZyBvbmx5LgorCisgICAgICAgICogY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0
eS5jcHA6CisgICAgICAgIEltcGxlbWVudCBuZXcgY2xhc3MgdG8gY3VsY3VsYXRlIGJvcmRlciBy
YWRpdXMsIGluaXRpYWxpemUgZm9yIGFwcHJvcHJpYXRlIHByb3BlcnRpZXMuCisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVByb3BlcnR5Qm9yZGVyUmFkaXVzOjpBcHBseVByb3BlcnR5Qm9yZGVyUmFk
aXVzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlCb3JkZXJSYWRpdXM6OmFwcGx5
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5OjpDU1NTdHls
ZUFwcGx5UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgUmVtb3ZlIG9sZCBpbXBsZW1lbnRhdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25CYXNlLmNwcDoKKyAgICAgICAgUGFzcyBMZW5ndGhTaXplIGJ5IHZhbHVlLgorICAg
ICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6ZW5zdXJlUHJvcGVydHlNYXApOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICBQYXNzIExlbmd0aFNp
emUgYnkgdmFsdWUgY29uc2lzdGVudGx5LgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxh
Z3M6OmJvcmRlclRvcExlZnRSYWRpdXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxh
Z3M6OmJvcmRlclRvcFJpZ2h0UmFkaXVzKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZs
YWdzOjpib3JkZXJCb3R0b21MZWZ0UmFkaXVzKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRl
ZEZsYWdzOjpib3JkZXJCb3R0b21SaWdodFJhZGl1cyk6CisgICAgICAgIChXZWJDb3JlOjpJbmhl
cml0ZWRGbGFnczo6c2V0Qm9yZGVyVG9wTGVmdFJhZGl1cyk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmhlcml0ZWRGbGFnczo6c2V0Qm9yZGVyVG9wUmlnaHRSYWRpdXMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5oZXJpdGVkRmxhZ3M6OnNldEJvcmRlckJvdHRvbUxlZnRSYWRpdXMpOgorICAgICAgICAo
V2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldEJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRCb3JkZXJSYWRpdXMpOgorCiAyMDEx
LTA2LTA3ICBJYW4gSGVuZGVyc29uICA8aWFuaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFw
cGx5UHJvcGVydHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZUFwcGx5UHJvcGVydHkuY3BwCShyZXZpc2lvbiA4ODIxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiUGFpci5oIgogI2luY2x1ZGUgIlJlbmRlclN0
eWxlLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9VbnVz
ZWRQYXJhbS5oPgpAQCAtMjM2LDYgKzIzNyw0NyBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKK2Ns
YXNzIEFwcGx5UHJvcGVydHlCb3JkZXJSYWRpdXMgOiBwdWJsaWMgQXBwbHlQcm9wZXJ0eURlZmF1
bHRCYXNlPExlbmd0aFNpemU+IHsKK3B1YmxpYzoKKyAgICBBcHBseVByb3BlcnR5Qm9yZGVyUmFk
aXVzKEdldHRlckZ1bmN0aW9uIGdldHRlciwgU2V0dGVyRnVuY3Rpb24gc2V0dGVyLCBJbml0aWFs
RnVuY3Rpb24gaW5pdGlhbCkKKyAgICAgICAgOiBBcHBseVByb3BlcnR5RGVmYXVsdEJhc2U8TGVu
Z3RoU2l6ZT4oZ2V0dGVyLCBzZXR0ZXIsIGluaXRpYWwpCisgICAgeworICAgIH0KK3ByaXZhdGU6
CisgICAgdmlydHVhbCB2b2lkIGFwcGx5VmFsdWUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3Is
IENTU1ZhbHVlKiB2YWx1ZSkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghdmFsdWUtPmlzUHJp
bWl0aXZlVmFsdWUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBDU1NQcmltaXRp
dmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KHZhbHVlKTsKKyAgICAgICAgUGFpciogcGFpciA9IHByaW1pdGl2ZVZhbHVlLT5nZXRQYWlyVmFs
dWUoKTsKKyAgICAgICAgaWYgKCFwYWlyIHx8ICFwYWlyLT5maXJzdCgpIHx8ICFwYWlyLT5zZWNv
bmQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBMZW5ndGggcmFkaXVzV2lkdGg7
CisgICAgICAgIExlbmd0aCByYWRpdXNIZWlnaHQ7CisgICAgICAgIGlmIChwYWlyLT5maXJzdCgp
LT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQor
ICAgICAgICAgICAgcmFkaXVzV2lkdGggPSBMZW5ndGgocGFpci0+Zmlyc3QoKS0+Z2V0RG91Ymxl
VmFsdWUoKSwgUGVyY2VudCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhZGl1c1dpZHRo
ID0gTGVuZ3RoKG1heChpbnRNaW5Gb3JMZW5ndGgsIG1pbihpbnRNYXhGb3JMZW5ndGgsIHBhaXIt
PmZpcnN0KCktPmNvbXB1dGVMZW5ndGhJbnQoc2VsZWN0b3ItPnN0eWxlKCksIHNlbGVjdG9yLT5y
b290RWxlbWVudFN0eWxlKCksIHNlbGVjdG9yLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpKSks
IEZpeGVkKTsKKyAgICAgICAgaWYgKHBhaXItPnNlY29uZCgpLT5wcmltaXRpdmVUeXBlKCkgPT0g
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQorICAgICAgICAgICAgcmFkaXVzSGVp
Z2h0ID0gTGVuZ3RoKHBhaXItPnNlY29uZCgpLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmFkaXVzSGVpZ2h0ID0gTGVuZ3RoKG1heChpbnRN
aW5Gb3JMZW5ndGgsIG1pbihpbnRNYXhGb3JMZW5ndGgsIHBhaXItPnNlY29uZCgpLT5jb21wdXRl
TGVuZ3RoSW50KHNlbGVjdG9yLT5zdHlsZSgpLCBzZWxlY3Rvci0+cm9vdEVsZW1lbnRTdHlsZSgp
LCBzZWxlY3Rvci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKSkpLCBGaXhlZCk7CisgICAgICAg
IGludCB3aWR0aCA9IHJhZGl1c1dpZHRoLnZhbHVlKCk7CisgICAgICAgIGludCBoZWlnaHQgPSBy
YWRpdXNIZWlnaHQudmFsdWUoKTsKKyAgICAgICAgaWYgKHdpZHRoIDwgMCB8fCBoZWlnaHQgPCAw
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoIXdpZHRoKQorICAgICAgICAgICAg
cmFkaXVzSGVpZ2h0ID0gcmFkaXVzV2lkdGg7IC8vIE51bGwgb3V0IHRoZSBvdGhlciB2YWx1ZS4K
KyAgICAgICAgZWxzZSBpZiAoIWhlaWdodCkKKyAgICAgICAgICAgIHJhZGl1c1dpZHRoID0gcmFk
aXVzSGVpZ2h0OyAvLyBOdWxsIG91dCB0aGUgb3RoZXIgdmFsdWUuCisKKyAgICAgICAgTGVuZ3Ro
U2l6ZSBzaXplKHJhZGl1c1dpZHRoLCByYWRpdXNIZWlnaHQpOworICAgICAgICAoc2VsZWN0b3It
PnN0eWxlKCktPiptX3NldHRlcikoc2l6ZSk7CisgICAgfQorfTsKKwogdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CiBjbGFzcyBBcHBseVByb3BlcnR5RmlsbExheWVyIDogcHVibGljIEFwcGx5UHJvcGVy
dHlCYXNlIHsKIHB1YmxpYzoKQEAgLTU0Miw2ICs1ODQsMTMgQEAgQ1NTU3R5bGVBcHBseVByb3Bl
cnR5OjpDU1NTdHlsZUFwcGx5UHJvcAogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0
eUJvcmRlckNvbG9yLCBuZXcgQXBwbHlQcm9wZXJ0eUV4cGFuZGluZzxTdXBwcmVzc1ZhbHVlPihw
cm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlCb3JkZXJUb3BDb2xvciksIHByb3BlcnR5SGFuZGxl
cihDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0Q29sb3IpLCBwcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVy
dHlCb3JkZXJCb3R0b21Db2xvciksIHByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eUJvcmRlckxl
ZnRDb2xvcikpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlCb3JkZXIsIG5l
dyBBcHBseVByb3BlcnR5RXhwYW5kaW5nPFN1cHByZXNzVmFsdWU+KHByb3BlcnR5SGFuZGxlcihD
U1NQcm9wZXJ0eUJvcmRlclN0eWxlKSwgcHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm9yZGVy
V2lkdGgpLCBwcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlCb3JkZXJDb2xvcikpKTsKIAorICAg
IHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eUJvcmRlclRvcExlZnRSYWRpdXMsIG5ldyBB
cHBseVByb3BlcnR5Qm9yZGVyUmFkaXVzKCZSZW5kZXJTdHlsZTo6Ym9yZGVyVG9wTGVmdFJhZGl1
cywgJlJlbmRlclN0eWxlOjpzZXRCb3JkZXJUb3BMZWZ0UmFkaXVzLCAmUmVuZGVyU3R5bGU6Omlu
aXRpYWxCb3JkZXJSYWRpdXMpKTsKKyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlC
b3JkZXJUb3BSaWdodFJhZGl1cywgbmV3IEFwcGx5UHJvcGVydHlCb3JkZXJSYWRpdXMoJlJlbmRl
clN0eWxlOjpib3JkZXJUb3BSaWdodFJhZGl1cywgJlJlbmRlclN0eWxlOjpzZXRCb3JkZXJUb3BS
aWdodFJhZGl1cywgJlJlbmRlclN0eWxlOjppbml0aWFsQm9yZGVyUmFkaXVzKSk7CisgICAgc2V0
UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tTGVmdFJhZGl1cywgbmV3IEFw
cGx5UHJvcGVydHlCb3JkZXJSYWRpdXMoJlJlbmRlclN0eWxlOjpib3JkZXJCb3R0b21MZWZ0UmFk
aXVzLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRlckJvdHRvbUxlZnRSYWRpdXMsICZSZW5kZXJTdHls
ZTo6aW5pdGlhbEJvcmRlclJhZGl1cykpOworICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eUJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzLCBuZXcgQXBwbHlQcm9wZXJ0eUJvcmRlclJhZGl1
cygmUmVuZGVyU3R5bGU6OmJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzLCAmUmVuZGVyU3R5bGU6OnNl
dEJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxCb3JkZXJSYWRp
dXMpKTsKKyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlCb3JkZXJSYWRpdXMsIG5l
dyBBcHBseVByb3BlcnR5RXhwYW5kaW5nPEV4cGFuZFZhbHVlPihwcm9wZXJ0eUhhbmRsZXIoQ1NT
UHJvcGVydHlCb3JkZXJUb3BMZWZ0UmFkaXVzKSwgcHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5
Qm9yZGVyVG9wUmlnaHRSYWRpdXMpLCBwcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlCb3JkZXJC
b3R0b21MZWZ0UmFkaXVzKSwgcHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm9yZGVyQm90dG9t
UmlnaHRSYWRpdXMpKSk7CisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0
Qm9yZGVyUmFkaXVzLCBDU1NQcm9wZXJ0eUJvcmRlclJhZGl1cyk7CisKICAgICBzZXRQcm9wZXJ0
eUhhbmRsZXIoQ1NTUHJvcGVydHlGb250U3R5bGUsIG5ldyBBcHBseVByb3BlcnR5Rm9udDxGb250
SXRhbGljPigmRm9udERlc2NyaXB0aW9uOjppdGFsaWMsICZGb250RGVzY3JpcHRpb246OnNldEl0
YWxpYywgRm9udEl0YWxpY09mZikpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0
eUZvbnRWYXJpYW50LCBuZXcgQXBwbHlQcm9wZXJ0eUZvbnQ8Rm9udFNtYWxsQ2Fwcz4oJkZvbnRE
ZXNjcmlwdGlvbjo6c21hbGxDYXBzLCAmRm9udERlc2NyaXB0aW9uOjpzZXRTbWFsbENhcHMsIEZv
bnRTbWFsbENhcHNPZmYpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0
UmVuZGVyaW5nLCBuZXcgQXBwbHlQcm9wZXJ0eUZvbnQ8VGV4dFJlbmRlcmluZ01vZGU+KCZGb250
RGVzY3JpcHRpb246OnRleHRSZW5kZXJpbmdNb2RlLCAmRm9udERlc2NyaXB0aW9uOjpzZXRUZXh0
UmVuZGVyaW5nTW9kZSwgQXV0b1RleHRSZW5kZXJpbmcpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDg4MjE0KQorKysgU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTQzLDg4ICs0
NTQzLDYgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAg
ICAgICAgbV9zdHlsZS0+c2V0TWFza0JveEltYWdlKGltYWdlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KLQotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSYWRpdXM6Ci0gICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEJvcmRlclJhZGl1czoKLSAgICAgICAgaWYgKGlzSW5oZXJpdCkgewotICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0Qm9yZGVyVG9wTGVmdFJhZGl1cyhtX3BhcmVudFN0eWxlLT5i
b3JkZXJUb3BMZWZ0UmFkaXVzKCkpOwotICAgICAgICAgICAgbV9zdHlsZS0+c2V0Qm9yZGVyVG9w
UmlnaHRSYWRpdXMobV9wYXJlbnRTdHlsZS0+Ym9yZGVyVG9wUmlnaHRSYWRpdXMoKSk7Ci0gICAg
ICAgICAgICBtX3N0eWxlLT5zZXRCb3JkZXJCb3R0b21MZWZ0UmFkaXVzKG1fcGFyZW50U3R5bGUt
PmJvcmRlckJvdHRvbUxlZnRSYWRpdXMoKSk7Ci0gICAgICAgICAgICBtX3N0eWxlLT5zZXRCb3Jk
ZXJCb3R0b21SaWdodFJhZGl1cyhtX3BhcmVudFN0eWxlLT5ib3JkZXJCb3R0b21SaWdodFJhZGl1
cygpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAoaXNJbml0
aWFsKSB7Ci0gICAgICAgICAgICBtX3N0eWxlLT5yZXNldEJvcmRlclJhZGl1cygpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIC8vIEZhbGwgdGhyb3VnaAotICAgIGNh
c2UgQ1NTUHJvcGVydHlCb3JkZXJUb3BMZWZ0UmFkaXVzOgotICAgIGNhc2UgQ1NTUHJvcGVydHlC
b3JkZXJUb3BSaWdodFJhZGl1czoKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tTGVm
dFJhZGl1czoKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IHsK
LSAgICAgICAgaWYgKGlzSW5oZXJpdCkgewotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09O
RChDU1NQcm9wZXJ0eUJvcmRlclRvcExlZnRSYWRpdXMsIGJvcmRlclRvcExlZnRSYWRpdXMsIEJv
cmRlclRvcExlZnRSYWRpdXMpCi0gICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1By
b3BlcnR5Qm9yZGVyVG9wUmlnaHRSYWRpdXMsIGJvcmRlclRvcFJpZ2h0UmFkaXVzLCBCb3JkZXJU
b3BSaWdodFJhZGl1cykKLSAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVy
dHlCb3JkZXJCb3R0b21MZWZ0UmFkaXVzLCBib3JkZXJCb3R0b21MZWZ0UmFkaXVzLCBCb3JkZXJC
b3R0b21MZWZ0UmFkaXVzKQotICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9w
ZXJ0eUJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzLCBib3JkZXJCb3R0b21SaWdodFJhZGl1cywgQm9y
ZGVyQm90dG9tUmlnaHRSYWRpdXMpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAgCi0gICAgICAgIGlmIChpc0luaXRpYWwpIHsKLSAgICAgICAgICAgIEhBTkRMRV9JTklU
SUFMX0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eUJvcmRlclRvcExlZnRSYWRpdXMsIEJvcmRl
clRvcExlZnRSYWRpdXMsIEJvcmRlclJhZGl1cykKLSAgICAgICAgICAgIEhBTkRMRV9JTklUSUFM
X0NPTkRfV0lUSF9WQUxVRShDU1NQcm9wZXJ0eUJvcmRlclRvcFJpZ2h0UmFkaXVzLCBCb3JkZXJU
b3BSaWdodFJhZGl1cywgQm9yZGVyUmFkaXVzKQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxf
Q09ORF9XSVRIX1ZBTFVFKENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tTGVmdFJhZGl1cywgQm9yZGVy
Qm90dG9tTGVmdFJhZGl1cywgQm9yZGVyUmFkaXVzKQotICAgICAgICAgICAgSEFORExFX0lOSVRJ
QUxfQ09ORF9XSVRIX1ZBTFVFKENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXMsIEJv
cmRlckJvdHRvbVJpZ2h0UmFkaXVzLCBCb3JkZXJSYWRpdXMpCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIFBhaXIqIHBhaXIgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0UGFpclZh
bHVlKCk7Ci0gICAgICAgIGlmICghcGFpciB8fCAhcGFpci0+Zmlyc3QoKSB8fCAhcGFpci0+c2Vj
b25kKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgTGVuZ3RoIHJhZGl1c1dpZHRo
OwotICAgICAgICBMZW5ndGggcmFkaXVzSGVpZ2h0OwotICAgICAgICBpZiAocGFpci0+Zmlyc3Qo
KS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkK
LSAgICAgICAgICAgIHJhZGl1c1dpZHRoID0gTGVuZ3RoKHBhaXItPmZpcnN0KCktPmdldERvdWJs
ZVZhbHVlKCksIFBlcmNlbnQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByYWRpdXNXaWR0
aCA9IExlbmd0aChtYXgoaW50TWluRm9yTGVuZ3RoLCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWly
LT5maXJzdCgpLT5jb21wdXRlTGVuZ3RoSW50KHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwg
em9vbUZhY3RvcikpKSwgRml4ZWQpOwotICAgICAgICBpZiAocGFpci0+c2Vjb25kKCktPnByaW1p
dGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAg
ICAgICByYWRpdXNIZWlnaHQgPSBMZW5ndGgocGFpci0+c2Vjb25kKCktPmdldERvdWJsZVZhbHVl
KCksIFBlcmNlbnQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByYWRpdXNIZWlnaHQgPSBM
ZW5ndGgobWF4KGludE1pbkZvckxlbmd0aCwgbWluKGludE1heEZvckxlbmd0aCwgcGFpci0+c2Vj
b25kKCktPmNvbXB1dGVMZW5ndGhJbnQoc3R5bGUoKSwgbV9yb290RWxlbWVudFN0eWxlLCB6b29t
RmFjdG9yKSkpLCBGaXhlZCk7Ci0gICAgICAgIGludCB3aWR0aCA9IHJhZGl1c1dpZHRoLnZhbHVl
KCk7Ci0gICAgICAgIGludCBoZWlnaHQgPSByYWRpdXNIZWlnaHQudmFsdWUoKTsKLSAgICAgICAg
aWYgKHdpZHRoIDwgMCB8fCBoZWlnaHQgPCAwKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBpZiAod2lkdGggPT0gMCkKLSAgICAgICAgICAgIHJhZGl1c0hlaWdodCA9IHJhZGl1c1dpZHRo
OyAvLyBOdWxsIG91dCB0aGUgb3RoZXIgdmFsdWUuCi0gICAgICAgIGVsc2UgaWYgKGhlaWdodCA9
PSAwKQotICAgICAgICAgICAgcmFkaXVzV2lkdGggPSByYWRpdXNIZWlnaHQ7IC8vIE51bGwgb3V0
IHRoZSBvdGhlciB2YWx1ZS4KLQotICAgICAgICBMZW5ndGhTaXplIHNpemUocmFkaXVzV2lkdGgs
IHJhZGl1c0hlaWdodCk7Ci0gICAgICAgIHN3aXRjaCAoaWQpIHsKLSAgICAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlCb3JkZXJUb3BMZWZ0UmFkaXVzOgotICAgICAgICAgICAgICAgIG1fc3R5bGUt
PnNldEJvcmRlclRvcExlZnRSYWRpdXMoc2l6ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9wUmlnaHRSYWRpdXM6Ci0gICAgICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0Qm9yZGVyVG9wUmlnaHRSYWRpdXMoc2l6ZSk7Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9t
TGVmdFJhZGl1czoKLSAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRCb3JkZXJCb3R0b21MZWZ0
UmFkaXVzKHNpemUpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eUJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOgotICAgICAgICAgICAgICAgIG1fc3R5
bGUtPnNldEJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzKHNpemUpOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRC
b3JkZXJSYWRpdXMoc2l6ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lT2Zmc2V0
OgogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChvdXRsaW5lT2Zmc2V0LCBPdXRs
aW5lT2Zmc2V0KQogICAgICAgICBtX3N0eWxlLT5zZXRPdXRsaW5lT2Zmc2V0KHByaW1pdGl2ZVZh
bHVlLT5jb21wdXRlTGVuZ3RoSW50KHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgem9vbUZh
Y3RvcikpOwpAQCAtNTQyMyw2ICs1MzQxLDEyIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBw
bHlQcm9wZXJ0eShpbnQKICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHQ6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbToKICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVm
dDoKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmFkaXVzOgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRCb3JkZXJSYWRpdXM6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcExlZnRS
YWRpdXM6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcFJpZ2h0UmFkaXVzOgorICAgIGNh
c2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21MZWZ0UmFkaXVzOgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJCb3R0b21SaWdodFJhZGl1czoKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0eWxl
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250VmFyaWFudDoKICAgICBjYXNlIENTU1Byb3BlcnR5
VGV4dFJlbmRlcmluZzoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkJhc2UuY3BwCShyZXZpc2lvbiA4ODIxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NDAsMTAg
Kzc0MCwxMCBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OmVuc3VyZVByb3BlcnR5TWFwKCkKICAgICAg
ICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPExlbmd0aD4o
Q1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1PcmlnaW5YLCAmUmVuZGVyU3R5bGU6OnRyYW5zZm9y
bU9yaWdpblgsICZSZW5kZXJTdHlsZTo6c2V0VHJhbnNmb3JtT3JpZ2luWCkpOwogICAgICAgICBn
UHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoPihDU1NQ
cm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdpblksICZSZW5kZXJTdHlsZTo6dHJhbnNmb3JtT3Jp
Z2luWSwgJlJlbmRlclN0eWxlOjpzZXRUcmFuc2Zvcm1PcmlnaW5ZKSk7CiAgICAgICAgIGdQcm9w
ZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlcjxmbG9hdD4oQ1NTUHJvcGVy
dHlXZWJraXRUcmFuc2Zvcm1PcmlnaW5aLCAmUmVuZGVyU3R5bGU6OnRyYW5zZm9ybU9yaWdpblos
ICZSZW5kZXJTdHlsZTo6c2V0VHJhbnNmb3JtT3JpZ2luWikpOwotICAgICAgICBnUHJvcGVydHlX
cmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8Y29uc3QgTGVuZ3RoU2l6ZSY+KENT
U1Byb3BlcnR5Qm9yZGVyVG9wTGVmdFJhZGl1cywgJlJlbmRlclN0eWxlOjpib3JkZXJUb3BMZWZ0
UmFkaXVzLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRlclRvcExlZnRSYWRpdXMpKTsKLSAgICAgICAg
Z1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPGNvbnN0IExlbmd0
aFNpemUmPihDU1NQcm9wZXJ0eUJvcmRlclRvcFJpZ2h0UmFkaXVzLCAmUmVuZGVyU3R5bGU6OmJv
cmRlclRvcFJpZ2h0UmFkaXVzLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRlclRvcFJpZ2h0UmFkaXVz
KSk7Ci0gICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBl
cjxjb25zdCBMZW5ndGhTaXplJj4oQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21MZWZ0UmFkaXVzLCAm
UmVuZGVyU3R5bGU6OmJvcmRlckJvdHRvbUxlZnRSYWRpdXMsICZSZW5kZXJTdHlsZTo6c2V0Qm9y
ZGVyQm90dG9tTGVmdFJhZGl1cykpOwotICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5k
KG5ldyBQcm9wZXJ0eVdyYXBwZXI8Y29uc3QgTGVuZ3RoU2l6ZSY+KENTU1Byb3BlcnR5Qm9yZGVy
Qm90dG9tUmlnaHRSYWRpdXMsICZSZW5kZXJTdHlsZTo6Ym9yZGVyQm90dG9tUmlnaHRSYWRpdXMs
ICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXMpKTsKKyAgICAgICAgZ1By
b3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPExlbmd0aFNpemU+KENT
U1Byb3BlcnR5Qm9yZGVyVG9wTGVmdFJhZGl1cywgJlJlbmRlclN0eWxlOjpib3JkZXJUb3BMZWZ0
UmFkaXVzLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRlclRvcExlZnRSYWRpdXMpKTsKKyAgICAgICAg
Z1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPExlbmd0aFNpemU+
KENTU1Byb3BlcnR5Qm9yZGVyVG9wUmlnaHRSYWRpdXMsICZSZW5kZXJTdHlsZTo6Ym9yZGVyVG9w
UmlnaHRSYWRpdXMsICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVyVG9wUmlnaHRSYWRpdXMpKTsKKyAg
ICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPExlbmd0
aFNpemU+KENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tTGVmdFJhZGl1cywgJlJlbmRlclN0eWxlOjpi
b3JkZXJCb3R0b21MZWZ0UmFkaXVzLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRlckJvdHRvbUxlZnRS
YWRpdXMpKTsKKyAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlX
cmFwcGVyPExlbmd0aFNpemU+KENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXMsICZS
ZW5kZXJTdHlsZTo6Ym9yZGVyQm90dG9tUmlnaHRSYWRpdXMsICZSZW5kZXJTdHlsZTo6c2V0Qm9y
ZGVyQm90dG9tUmlnaHRSYWRpdXMpKTsKICAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVu
ZChuZXcgUHJvcGVydHlXcmFwcGVyPEVWaXNpYmlsaXR5PihDU1NQcm9wZXJ0eVZpc2liaWxpdHks
ICZSZW5kZXJTdHlsZTo6dmlzaWJpbGl0eSwgJlJlbmRlclN0eWxlOjpzZXRWaXNpYmlsaXR5KSk7
CiAgICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlcjxm
bG9hdD4oQ1NTUHJvcGVydHlab29tLCAmUmVuZGVyU3R5bGU6Onpvb20sICZSZW5kZXJTdHlsZTo6
c2V0Wm9vbSkpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAkocmV2aXNpb24gODgyMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDIwLDEwICs0MjAsMTAgQEAg
cHVibGljOgogCiAgICAgY29uc3QgTmluZVBpZWNlSW1hZ2UmIGJvcmRlckltYWdlKCkgY29uc3Qg
eyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5pbWFnZSgpOyB9CiAKLSAgICBjb25zdCBMZW5ndGhT
aXplJiBib3JkZXJUb3BMZWZ0UmFkaXVzKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRl
ci50b3BMZWZ0KCk7IH0KLSAgICBjb25zdCBMZW5ndGhTaXplJiBib3JkZXJUb3BSaWdodFJhZGl1
cygpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5ib3JkZXIudG9wUmlnaHQoKTsgfQotICAgIGNv
bnN0IExlbmd0aFNpemUmIGJvcmRlckJvdHRvbUxlZnRSYWRpdXMoKSBjb25zdCB7IHJldHVybiBz
dXJyb3VuZC0+Ym9yZGVyLmJvdHRvbUxlZnQoKTsgfQotICAgIGNvbnN0IExlbmd0aFNpemUmIGJv
cmRlckJvdHRvbVJpZ2h0UmFkaXVzKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5i
b3R0b21SaWdodCgpOyB9CisgICAgTGVuZ3RoU2l6ZSBib3JkZXJUb3BMZWZ0UmFkaXVzKCkgY29u
c3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci50b3BMZWZ0KCk7IH0KKyAgICBMZW5ndGhTaXpl
IGJvcmRlclRvcFJpZ2h0UmFkaXVzKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci50
b3BSaWdodCgpOyB9CisgICAgTGVuZ3RoU2l6ZSBib3JkZXJCb3R0b21MZWZ0UmFkaXVzKCkgY29u
c3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5ib3R0b21MZWZ0KCk7IH0KKyAgICBMZW5ndGhT
aXplIGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJv
cmRlci5ib3R0b21SaWdodCgpOyB9CiAgICAgYm9vbCBoYXNCb3JkZXJSYWRpdXMoKSBjb25zdCB7
IHJldHVybiBzdXJyb3VuZC0+Ym9yZGVyLmhhc0JvcmRlclJhZGl1cygpOyB9CiAKICAgICB1bnNp
Z25lZCBzaG9ydCBib3JkZXJMZWZ0V2lkdGgoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+Ym9y
ZGVyLmJvcmRlckxlZnRXaWR0aCgpOyB9CkBAIC04NDksMTIgKzg0OSwxMiBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBzZXRCb3JkZXJJbWFnZShjb25zdCBOaW5lUGllY2VJbWFnZSYgYikgeyBT
RVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV9pbWFnZSwgYikgfQogCi0gICAgdm9pZCBzZXRCb3Jk
ZXJUb3BMZWZ0UmFkaXVzKGNvbnN0IExlbmd0aFNpemUmIHMpIHsgU0VUX1ZBUihzdXJyb3VuZCwg
Ym9yZGVyLm1fdG9wTGVmdCwgcykgfQotICAgIHZvaWQgc2V0Qm9yZGVyVG9wUmlnaHRSYWRpdXMo
Y29uc3QgTGVuZ3RoU2l6ZSYgcykgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV90b3BSaWdo
dCwgcykgfQotICAgIHZvaWQgc2V0Qm9yZGVyQm90dG9tTGVmdFJhZGl1cyhjb25zdCBMZW5ndGhT
aXplJiBzKSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX2JvdHRvbUxlZnQsIHMpIH0KLSAg
ICB2b2lkIHNldEJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzKGNvbnN0IExlbmd0aFNpemUmIHMpIHsg
U0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fYm90dG9tUmlnaHQsIHMpIH0KKyAgICB2b2lkIHNl
dEJvcmRlclRvcExlZnRSYWRpdXMoTGVuZ3RoU2l6ZSBzKSB7IFNFVF9WQVIoc3Vycm91bmQsIGJv
cmRlci5tX3RvcExlZnQsIHMpIH0KKyAgICB2b2lkIHNldEJvcmRlclRvcFJpZ2h0UmFkaXVzKExl
bmd0aFNpemUgcykgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV90b3BSaWdodCwgcykgfQor
ICAgIHZvaWQgc2V0Qm9yZGVyQm90dG9tTGVmdFJhZGl1cyhMZW5ndGhTaXplIHMpIHsgU0VUX1ZB
UihzdXJyb3VuZCwgYm9yZGVyLm1fYm90dG9tTGVmdCwgcykgfQorICAgIHZvaWQgc2V0Qm9yZGVy
Qm90dG9tUmlnaHRSYWRpdXMoTGVuZ3RoU2l6ZSBzKSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRl
ci5tX2JvdHRvbVJpZ2h0LCBzKSB9CiAKLSAgICB2b2lkIHNldEJvcmRlclJhZGl1cyhjb25zdCBM
ZW5ndGhTaXplJiBzKQorICAgIHZvaWQgc2V0Qm9yZGVyUmFkaXVzKExlbmd0aFNpemUgcykKICAg
ICB7CiAgICAgICAgIHNldEJvcmRlclRvcExlZnRSYWRpdXMocyk7CiAgICAgICAgIHNldEJvcmRl
clRvcFJpZ2h0UmFkaXVzKHMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97072</attachid>
            <date>2011-06-13 23:15:33 -0700</date>
            <delta_ts>2011-06-14 08:46:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62265-20110614161530.patch</filename>
            <type>text/plain</type>
            <size>15844</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4NzQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDYtMTMgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIFNlaWRlbC4KKworICAgICAgICBJbXBsZW1lbnQgQ1NTIGJvcmRlciByYWRpdXMgcHJv
cGVyaWVzIGluIENTU1N0eWxlQXBwbHlQcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNjUKKworICAgICAgICBObyBuZXcgdGVzdHMgLyBy
ZWZhY3RvcmluZyBvbmx5LgorCisgICAgICAgICogY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5j
cHA6CisgICAgICAgIEltcGxlbWVudCBuZXcgY2xhc3MgdG8gY3VsY3VsYXRlIGJvcmRlciByYWRp
dXMsIGluaXRpYWxpemUgZm9yIGFwcHJvcHJpYXRlIHByb3BlcnRpZXMuCisgICAgICAgIChXZWJD
b3JlOjpBcHBseVByb3BlcnR5Qm9yZGVyUmFkaXVzOjpBcHBseVByb3BlcnR5Qm9yZGVyUmFkaXVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlCb3JkZXJSYWRpdXM6OmFwcGx5VmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5OjpDU1NTdHlsZUFw
cGx5UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgUmVtb3ZlIG9sZCBpbXBsZW1lbnRhdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25CYXNlLmNwcDoKKyAgICAgICAgUGFzcyBMZW5ndGhTaXplIGJ5IHZhbHVlLgorICAgICAg
ICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6ZW5zdXJlUHJvcGVydHlNYXApOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICBQYXNzIExlbmd0aFNpemUg
YnkgdmFsdWUgY29uc2lzdGVudGx5LgorCiAyMDExLTA2LTEzICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAkocmV2aXNpb24g
ODg3NDApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
IlBhaXIuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KQEAgLTI1MSw2ICsyNTIsNDcg
QEAgcHJpdmF0ZToKICAgICB9CiB9OwogCitjbGFzcyBBcHBseVByb3BlcnR5Qm9yZGVyUmFkaXVz
IDogcHVibGljIEFwcGx5UHJvcGVydHlEZWZhdWx0QmFzZTxMZW5ndGhTaXplPiB7CitwdWJsaWM6
CisgICAgQXBwbHlQcm9wZXJ0eUJvcmRlclJhZGl1cyhHZXR0ZXJGdW5jdGlvbiBnZXR0ZXIsIFNl
dHRlckZ1bmN0aW9uIHNldHRlciwgSW5pdGlhbEZ1bmN0aW9uIGluaXRpYWwpCisgICAgICAgIDog
QXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPExlbmd0aFNpemU+KGdldHRlciwgc2V0dGVyLCBpbml0
aWFsKQorICAgIHsKKyAgICB9Citwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBhcHBseVZhbHVl
KENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBDU1NWYWx1ZSogdmFsdWUpIGNvbnN0CisgICAg
eworICAgICAgICBpZiAoIXZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CisgICAgICAgIFBhaXIqIHBhaXIg
PSBwcmltaXRpdmVWYWx1ZS0+Z2V0UGFpclZhbHVlKCk7CisgICAgICAgIGlmICghcGFpciB8fCAh
cGFpci0+Zmlyc3QoKSB8fCAhcGFpci0+c2Vjb25kKCkpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgTGVuZ3RoIHJhZGl1c1dpZHRoOworICAgICAgICBMZW5ndGggcmFkaXVzSGVpZ2h0
OworICAgICAgICBpZiAocGFpci0+Zmlyc3QoKS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKKyAgICAgICAgICAgIHJhZGl1c1dpZHRoID0gTGVu
Z3RoKHBhaXItPmZpcnN0KCktPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICByYWRpdXNXaWR0aCA9IExlbmd0aChtYXgoaW50TWluRm9yTGVuZ3Ro
LCBtaW4oaW50TWF4Rm9yTGVuZ3RoLCBwYWlyLT5maXJzdCgpLT5jb21wdXRlTGVuZ3RoPGludD4o
c2VsZWN0b3ItPnN0eWxlKCksIHNlbGVjdG9yLT5yb290RWxlbWVudFN0eWxlKCksIHNlbGVjdG9y
LT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpKSksIEZpeGVkKTsKKyAgICAgICAgaWYgKHBhaXIt
PnNlY29uZCgpLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJD
RU5UQUdFKQorICAgICAgICAgICAgcmFkaXVzSGVpZ2h0ID0gTGVuZ3RoKHBhaXItPnNlY29uZCgp
LT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
cmFkaXVzSGVpZ2h0ID0gTGVuZ3RoKG1heChpbnRNaW5Gb3JMZW5ndGgsIG1pbihpbnRNYXhGb3JM
ZW5ndGgsIHBhaXItPnNlY29uZCgpLT5jb21wdXRlTGVuZ3RoPGludD4oc2VsZWN0b3ItPnN0eWxl
KCksIHNlbGVjdG9yLT5yb290RWxlbWVudFN0eWxlKCksIHNlbGVjdG9yLT5zdHlsZSgpLT5lZmZl
Y3RpdmVab29tKCkpKSksIEZpeGVkKTsKKyAgICAgICAgaW50IHdpZHRoID0gcmFkaXVzV2lkdGgu
dmFsdWUoKTsKKyAgICAgICAgaW50IGhlaWdodCA9IHJhZGl1c0hlaWdodC52YWx1ZSgpOworICAg
ICAgICBpZiAod2lkdGggPCAwIHx8IGhlaWdodCA8IDApCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIGlmICghd2lkdGgpCisgICAgICAgICAgICByYWRpdXNIZWlnaHQgPSByYWRpdXNXaWR0
aDsgLy8gTnVsbCBvdXQgdGhlIG90aGVyIHZhbHVlLgorICAgICAgICBlbHNlIGlmICghaGVpZ2h0
KQorICAgICAgICAgICAgcmFkaXVzV2lkdGggPSByYWRpdXNIZWlnaHQ7IC8vIE51bGwgb3V0IHRo
ZSBvdGhlciB2YWx1ZS4KKworICAgICAgICBMZW5ndGhTaXplIHNpemUocmFkaXVzV2lkdGgsIHJh
ZGl1c0hlaWdodCk7CisgICAgICAgIHNldFZhbHVlKHNlbGVjdG9yLT5zdHlsZSgpLCBzaXplKTsK
KyAgICB9Cit9OworCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIEFwcGx5UHJvcGVydHlG
aWxsTGF5ZXIgOiBwdWJsaWMgQXBwbHlQcm9wZXJ0eUJhc2UgewogcHVibGljOgpAQCAtNTU3LDYg
KzU5OSwxMyBAQCBDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wCiAgICAg
c2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIG5ldyBBcHBseVByb3Bl
cnR5RXhwYW5kaW5nPFN1cHByZXNzVmFsdWU+KHByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eUJv
cmRlclRvcENvbG9yKSwgcHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xv
ciksIHByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNvbG9yKSwgcHJvcGVy
dHlIYW5kbGVyKENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yKSkpOwogICAgIHNldFByb3BlcnR5
SGFuZGxlcihDU1NQcm9wZXJ0eUJvcmRlciwgbmV3IEFwcGx5UHJvcGVydHlFeHBhbmRpbmc8U3Vw
cHJlc3NWYWx1ZT4ocHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm9yZGVyU3R5bGUpLCBwcm9w
ZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlCb3JkZXJXaWR0aCksIHByb3BlcnR5SGFuZGxlcihDU1NQ
cm9wZXJ0eUJvcmRlckNvbG9yKSkpOwogCisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3Bl
cnR5Qm9yZGVyVG9wTGVmdFJhZGl1cywgbmV3IEFwcGx5UHJvcGVydHlCb3JkZXJSYWRpdXMoJlJl
bmRlclN0eWxlOjpib3JkZXJUb3BMZWZ0UmFkaXVzLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRlclRv
cExlZnRSYWRpdXMsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEJvcmRlclJhZGl1cykpOworICAgIHNl
dFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eUJvcmRlclRvcFJpZ2h0UmFkaXVzLCBuZXcgQXBw
bHlQcm9wZXJ0eUJvcmRlclJhZGl1cygmUmVuZGVyU3R5bGU6OmJvcmRlclRvcFJpZ2h0UmFkaXVz
LCAmUmVuZGVyU3R5bGU6OnNldEJvcmRlclRvcFJpZ2h0UmFkaXVzLCAmUmVuZGVyU3R5bGU6Omlu
aXRpYWxCb3JkZXJSYWRpdXMpKTsKKyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlC
b3JkZXJCb3R0b21MZWZ0UmFkaXVzLCBuZXcgQXBwbHlQcm9wZXJ0eUJvcmRlclJhZGl1cygmUmVu
ZGVyU3R5bGU6OmJvcmRlckJvdHRvbUxlZnRSYWRpdXMsICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVy
Qm90dG9tTGVmdFJhZGl1cywgJlJlbmRlclN0eWxlOjppbml0aWFsQm9yZGVyUmFkaXVzKSk7Cisg
ICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXMs
IG5ldyBBcHBseVByb3BlcnR5Qm9yZGVyUmFkaXVzKCZSZW5kZXJTdHlsZTo6Ym9yZGVyQm90dG9t
UmlnaHRSYWRpdXMsICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXMsICZS
ZW5kZXJTdHlsZTo6aW5pdGlhbEJvcmRlclJhZGl1cykpOworICAgIHNldFByb3BlcnR5SGFuZGxl
cihDU1NQcm9wZXJ0eUJvcmRlclJhZGl1cywgbmV3IEFwcGx5UHJvcGVydHlFeHBhbmRpbmc8RXhw
YW5kVmFsdWU+KHByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eUJvcmRlclRvcExlZnRSYWRpdXMp
LCBwcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlCb3JkZXJUb3BSaWdodFJhZGl1cyksIHByb3Bl
cnR5SGFuZGxlcihDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUxlZnRSYWRpdXMpLCBwcm9wZXJ0eUhh
bmRsZXIoQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21SaWdodFJhZGl1cykpKTsKKyAgICBzZXRQcm9w
ZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJSYWRpdXMsIENTU1Byb3BlcnR5Qm9y
ZGVyUmFkaXVzKTsKKwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eUZvbnRTdHls
ZSwgbmV3IEFwcGx5UHJvcGVydHlGb250PEZvbnRJdGFsaWM+KCZGb250RGVzY3JpcHRpb246Oml0
YWxpYywgJkZvbnREZXNjcmlwdGlvbjo6c2V0SXRhbGljLCBGb250SXRhbGljT2ZmKSk7CiAgICAg
c2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Rm9udFZhcmlhbnQsIG5ldyBBcHBseVByb3Bl
cnR5Rm9udDxGb250U21hbGxDYXBzPigmRm9udERlc2NyaXB0aW9uOjpzbWFsbENhcHMsICZGb250
RGVzY3JpcHRpb246OnNldFNtYWxsQ2FwcywgRm9udFNtYWxsQ2Fwc09mZikpOwogICAgIHNldFBy
b3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRSZW5kZXJpbmcsIG5ldyBBcHBseVByb3BlcnR5
Rm9udDxUZXh0UmVuZGVyaW5nTW9kZT4oJkZvbnREZXNjcmlwdGlvbjo6dGV4dFJlbmRlcmluZ01v
ZGUsICZGb250RGVzY3JpcHRpb246OnNldFRleHRSZW5kZXJpbmdNb2RlLCBBdXRvVGV4dFJlbmRl
cmluZykpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2
aXNpb24gODg3NDApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ1MTUsODggKzQ1MTUsNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXNrQm94SW1h
Z2UoaW1hZ2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAgY2FzZSBDU1NQcm9wZXJ0
eUJvcmRlclJhZGl1czoKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyUmFkaXVzOgot
ICAgICAgICBpZiAoaXNJbmhlcml0KSB7Ci0gICAgICAgICAgICBtX3N0eWxlLT5zZXRCb3JkZXJU
b3BMZWZ0UmFkaXVzKG1fcGFyZW50U3R5bGUtPmJvcmRlclRvcExlZnRSYWRpdXMoKSk7Ci0gICAg
ICAgICAgICBtX3N0eWxlLT5zZXRCb3JkZXJUb3BSaWdodFJhZGl1cyhtX3BhcmVudFN0eWxlLT5i
b3JkZXJUb3BSaWdodFJhZGl1cygpKTsKLSAgICAgICAgICAgIG1fc3R5bGUtPnNldEJvcmRlckJv
dHRvbUxlZnRSYWRpdXMobV9wYXJlbnRTdHlsZS0+Ym9yZGVyQm90dG9tTGVmdFJhZGl1cygpKTsK
LSAgICAgICAgICAgIG1fc3R5bGUtPnNldEJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzKG1fcGFyZW50
U3R5bGUtPmJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzKCkpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChpc0luaXRpYWwpIHsKLSAgICAgICAgICAgIG1fc3R5bGUt
PnJlc2V0Qm9yZGVyUmFkaXVzKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAgLy8gRmFsbCB0aHJvdWdoCi0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcExlZnRS
YWRpdXM6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcFJpZ2h0UmFkaXVzOgotICAgIGNh
c2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21MZWZ0UmFkaXVzOgotICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJCb3R0b21SaWdodFJhZGl1czogewotICAgICAgICBpZiAoaXNJbmhlcml0KSB7Ci0g
ICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5Qm9yZGVyVG9wTGVmdFJh
ZGl1cywgYm9yZGVyVG9wTGVmdFJhZGl1cywgQm9yZGVyVG9wTGVmdFJhZGl1cykKLSAgICAgICAg
ICAgIEhBTkRMRV9JTkhFUklUX0NPTkQoQ1NTUHJvcGVydHlCb3JkZXJUb3BSaWdodFJhZGl1cywg
Ym9yZGVyVG9wUmlnaHRSYWRpdXMsIEJvcmRlclRvcFJpZ2h0UmFkaXVzKQotICAgICAgICAgICAg
SEFORExFX0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUxlZnRSYWRpdXMsIGJv
cmRlckJvdHRvbUxlZnRSYWRpdXMsIEJvcmRlckJvdHRvbUxlZnRSYWRpdXMpCi0gICAgICAgICAg
ICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXMs
IGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzLCBCb3JkZXJCb3R0b21SaWdodFJhZGl1cykKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKGlzSW5pdGlh
bCkgewotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENTU1Byb3Bl
cnR5Qm9yZGVyVG9wTGVmdFJhZGl1cywgQm9yZGVyVG9wTGVmdFJhZGl1cywgQm9yZGVyUmFkaXVz
KQotICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENTU1Byb3BlcnR5
Qm9yZGVyVG9wUmlnaHRSYWRpdXMsIEJvcmRlclRvcFJpZ2h0UmFkaXVzLCBCb3JkZXJSYWRpdXMp
Ci0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTUHJvcGVydHlC
b3JkZXJCb3R0b21MZWZ0UmFkaXVzLCBCb3JkZXJCb3R0b21MZWZ0UmFkaXVzLCBCb3JkZXJSYWRp
dXMpCi0gICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05EX1dJVEhfVkFMVUUoQ1NTUHJvcGVy
dHlCb3JkZXJCb3R0b21SaWdodFJhZGl1cywgQm9yZGVyQm90dG9tUmlnaHRSYWRpdXMsIEJvcmRl
clJhZGl1cykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICgh
cHJpbWl0aXZlVmFsdWUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgUGFpciogcGFp
ciA9IHByaW1pdGl2ZVZhbHVlLT5nZXRQYWlyVmFsdWUoKTsKLSAgICAgICAgaWYgKCFwYWlyIHx8
ICFwYWlyLT5maXJzdCgpIHx8ICFwYWlyLT5zZWNvbmQoKSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBMZW5ndGggcmFkaXVzV2lkdGg7Ci0gICAgICAgIExlbmd0aCByYWRpdXNIZWln
aHQ7Ci0gICAgICAgIGlmIChwYWlyLT5maXJzdCgpLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQotICAgICAgICAgICAgcmFkaXVzV2lkdGggPSBM
ZW5ndGgocGFpci0+Zmlyc3QoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIHJhZGl1c1dpZHRoID0gTGVuZ3RoKG1heChpbnRNaW5Gb3JMZW5n
dGgsIG1pbihpbnRNYXhGb3JMZW5ndGgsIHBhaXItPmZpcnN0KCktPmNvbXB1dGVMZW5ndGg8aW50
PihzdHlsZSgpLCBtX3Jvb3RFbGVtZW50U3R5bGUsIHpvb21GYWN0b3IpKSksIEZpeGVkKTsKLSAg
ICAgICAgaWYgKHBhaXItPnNlY29uZCgpLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19QRVJDRU5UQUdFKQotICAgICAgICAgICAgcmFkaXVzSGVpZ2h0ID0gTGVuZ3Ro
KHBhaXItPnNlY29uZCgpLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgcmFkaXVzSGVpZ2h0ID0gTGVuZ3RoKG1heChpbnRNaW5Gb3JMZW5ndGgs
IG1pbihpbnRNYXhGb3JMZW5ndGgsIHBhaXItPnNlY29uZCgpLT5jb21wdXRlTGVuZ3RoPGludD4o
c3R5bGUoKSwgbV9yb290RWxlbWVudFN0eWxlLCB6b29tRmFjdG9yKSkpLCBGaXhlZCk7Ci0gICAg
ICAgIGludCB3aWR0aCA9IHJhZGl1c1dpZHRoLnZhbHVlKCk7Ci0gICAgICAgIGludCBoZWlnaHQg
PSByYWRpdXNIZWlnaHQudmFsdWUoKTsKLSAgICAgICAgaWYgKHdpZHRoIDwgMCB8fCBoZWlnaHQg
PCAwKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAod2lkdGggPT0gMCkKLSAgICAg
ICAgICAgIHJhZGl1c0hlaWdodCA9IHJhZGl1c1dpZHRoOyAvLyBOdWxsIG91dCB0aGUgb3RoZXIg
dmFsdWUuCi0gICAgICAgIGVsc2UgaWYgKGhlaWdodCA9PSAwKQotICAgICAgICAgICAgcmFkaXVz
V2lkdGggPSByYWRpdXNIZWlnaHQ7IC8vIE51bGwgb3V0IHRoZSBvdGhlciB2YWx1ZS4KLQotICAg
ICAgICBMZW5ndGhTaXplIHNpemUocmFkaXVzV2lkdGgsIHJhZGl1c0hlaWdodCk7Ci0gICAgICAg
IHN3aXRjaCAoaWQpIHsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJUb3BMZWZ0
UmFkaXVzOgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldEJvcmRlclRvcExlZnRSYWRpdXMo
c2l6ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5Qm9yZGVyVG9wUmlnaHRSYWRpdXM6Ci0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Qm9y
ZGVyVG9wUmlnaHRSYWRpdXMoc2l6ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tTGVmdFJhZGl1czoKLSAgICAgICAgICAg
ICAgICBtX3N0eWxlLT5zZXRCb3JkZXJCb3R0b21MZWZ0UmFkaXVzKHNpemUpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVJp
Z2h0UmFkaXVzOgotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldEJvcmRlckJvdHRvbVJpZ2h0
UmFkaXVzKHNpemUpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRCb3JkZXJSYWRpdXMoc2l6ZSk7Ci0gICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQog
ICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lT2Zmc2V0OgogICAgICAgICBIQU5ETEVfSU5IRVJJ
VF9BTkRfSU5JVElBTChvdXRsaW5lT2Zmc2V0LCBPdXRsaW5lT2Zmc2V0KQogICAgICAgICBtX3N0
eWxlLT5zZXRPdXRsaW5lT2Zmc2V0KHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoPGludD4o
c3R5bGUoKSwgbV9yb290RWxlbWVudFN0eWxlLCB6b29tRmFjdG9yKSk7CkBAIC01MzkyLDYgKzUz
MTAsMTIgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgIGNh
c2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodDoKICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90
dG9tOgogICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0OgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJSYWRpdXM6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlclJhZGl1czoK
KyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9wTGVmdFJhZGl1czoKKyAgICBjYXNlIENTU1By
b3BlcnR5Qm9yZGVyVG9wUmlnaHRSYWRpdXM6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJv
dHRvbUxlZnRSYWRpdXM6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVJpZ2h0UmFk
aXVzOgogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3R5bGU6CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eUZvbnRWYXJpYW50OgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0UmVuZGVyaW5nOgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAJKHJl
dmlzaW9uIDg4NzQwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
QmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczNiwxMCArNzM2LDEwIEBAIHZvaWQgQW5pbWF0
aW9uQmFzZTo6ZW5zdXJlUHJvcGVydHlNYXAoKQogICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+
YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoPihDU1NQcm9wZXJ0eVdlYmtpdFRyYW5z
Zm9ybU9yaWdpblgsICZSZW5kZXJTdHlsZTo6dHJhbnNmb3JtT3JpZ2luWCwgJlJlbmRlclN0eWxl
OjpzZXRUcmFuc2Zvcm1PcmlnaW5YKSk7CiAgICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBl
bmQobmV3IFByb3BlcnR5V3JhcHBlcjxMZW5ndGg+KENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3Jt
T3JpZ2luWSwgJlJlbmRlclN0eWxlOjp0cmFuc2Zvcm1PcmlnaW5ZLCAmUmVuZGVyU3R5bGU6OnNl
dFRyYW5zZm9ybU9yaWdpblkpKTsKICAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChu
ZXcgUHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybU9yaWdp
blosICZSZW5kZXJTdHlsZTo6dHJhbnNmb3JtT3JpZ2luWiwgJlJlbmRlclN0eWxlOjpzZXRUcmFu
c2Zvcm1PcmlnaW5aKSk7Ci0gICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFBy
b3BlcnR5V3JhcHBlcjxjb25zdCBMZW5ndGhTaXplJj4oQ1NTUHJvcGVydHlCb3JkZXJUb3BMZWZ0
UmFkaXVzLCAmUmVuZGVyU3R5bGU6OmJvcmRlclRvcExlZnRSYWRpdXMsICZSZW5kZXJTdHlsZTo6
c2V0Qm9yZGVyVG9wTGVmdFJhZGl1cykpOwotICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBw
ZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8Y29uc3QgTGVuZ3RoU2l6ZSY+KENTU1Byb3BlcnR5Qm9y
ZGVyVG9wUmlnaHRSYWRpdXMsICZSZW5kZXJTdHlsZTo6Ym9yZGVyVG9wUmlnaHRSYWRpdXMsICZS
ZW5kZXJTdHlsZTo6c2V0Qm9yZGVyVG9wUmlnaHRSYWRpdXMpKTsKLSAgICAgICAgZ1Byb3BlcnR5
V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPGNvbnN0IExlbmd0aFNpemUmPihD
U1NQcm9wZXJ0eUJvcmRlckJvdHRvbUxlZnRSYWRpdXMsICZSZW5kZXJTdHlsZTo6Ym9yZGVyQm90
dG9tTGVmdFJhZGl1cywgJlJlbmRlclN0eWxlOjpzZXRCb3JkZXJCb3R0b21MZWZ0UmFkaXVzKSk7
Ci0gICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlcjxj
b25zdCBMZW5ndGhTaXplJj4oQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21SaWdodFJhZGl1cywgJlJl
bmRlclN0eWxlOjpib3JkZXJCb3R0b21SaWdodFJhZGl1cywgJlJlbmRlclN0eWxlOjpzZXRCb3Jk
ZXJCb3R0b21SaWdodFJhZGl1cykpOworICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5k
KG5ldyBQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoU2l6ZT4oQ1NTUHJvcGVydHlCb3JkZXJUb3BMZWZ0
UmFkaXVzLCAmUmVuZGVyU3R5bGU6OmJvcmRlclRvcExlZnRSYWRpdXMsICZSZW5kZXJTdHlsZTo6
c2V0Qm9yZGVyVG9wTGVmdFJhZGl1cykpOworICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBw
ZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoU2l6ZT4oQ1NTUHJvcGVydHlCb3JkZXJUb3BS
aWdodFJhZGl1cywgJlJlbmRlclN0eWxlOjpib3JkZXJUb3BSaWdodFJhZGl1cywgJlJlbmRlclN0
eWxlOjpzZXRCb3JkZXJUb3BSaWdodFJhZGl1cykpOworICAgICAgICBnUHJvcGVydHlXcmFwcGVy
cy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoU2l6ZT4oQ1NTUHJvcGVydHlCb3Jk
ZXJCb3R0b21MZWZ0UmFkaXVzLCAmUmVuZGVyU3R5bGU6OmJvcmRlckJvdHRvbUxlZnRSYWRpdXMs
ICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVyQm90dG9tTGVmdFJhZGl1cykpOworICAgICAgICBnUHJv
cGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoU2l6ZT4oQ1NT
UHJvcGVydHlCb3JkZXJCb3R0b21SaWdodFJhZGl1cywgJlJlbmRlclN0eWxlOjpib3JkZXJCb3R0
b21SaWdodFJhZGl1cywgJlJlbmRlclN0eWxlOjpzZXRCb3JkZXJCb3R0b21SaWdodFJhZGl1cykp
OwogICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8
RVZpc2liaWxpdHk+KENTU1Byb3BlcnR5VmlzaWJpbGl0eSwgJlJlbmRlclN0eWxlOjp2aXNpYmls
aXR5LCAmUmVuZGVyU3R5bGU6OnNldFZpc2liaWxpdHkpKTsKICAgICAgICAgZ1Byb3BlcnR5V3Jh
cHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eVpvb20s
ICZSZW5kZXJTdHlsZTo6em9vbSwgJlJlbmRlclN0eWxlOjpzZXRab29tKSk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCShyZXZpc2lvbiA4
ODc0MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MjAsMTAgKzQyMCwxMCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBO
aW5lUGllY2VJbWFnZSYgYm9yZGVySW1hZ2UoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+Ym9y
ZGVyLmltYWdlKCk7IH0KIAotICAgIGNvbnN0IExlbmd0aFNpemUmIGJvcmRlclRvcExlZnRSYWRp
dXMoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+Ym9yZGVyLnRvcExlZnQoKTsgfQotICAgIGNv
bnN0IExlbmd0aFNpemUmIGJvcmRlclRvcFJpZ2h0UmFkaXVzKCkgY29uc3QgeyByZXR1cm4gc3Vy
cm91bmQtPmJvcmRlci50b3BSaWdodCgpOyB9Ci0gICAgY29uc3QgTGVuZ3RoU2l6ZSYgYm9yZGVy
Qm90dG9tTGVmdFJhZGl1cygpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5ib3JkZXIuYm90dG9t
TGVmdCgpOyB9Ci0gICAgY29uc3QgTGVuZ3RoU2l6ZSYgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMo
KSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+Ym9yZGVyLmJvdHRvbVJpZ2h0KCk7IH0KKyAgICBM
ZW5ndGhTaXplIGJvcmRlclRvcExlZnRSYWRpdXMoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+
Ym9yZGVyLnRvcExlZnQoKTsgfQorICAgIExlbmd0aFNpemUgYm9yZGVyVG9wUmlnaHRSYWRpdXMo
KSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+Ym9yZGVyLnRvcFJpZ2h0KCk7IH0KKyAgICBMZW5n
dGhTaXplIGJvcmRlckJvdHRvbUxlZnRSYWRpdXMoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+
Ym9yZGVyLmJvdHRvbUxlZnQoKTsgfQorICAgIExlbmd0aFNpemUgYm9yZGVyQm90dG9tUmlnaHRS
YWRpdXMoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+Ym9yZGVyLmJvdHRvbVJpZ2h0KCk7IH0K
ICAgICBib29sIGhhc0JvcmRlclJhZGl1cygpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5ib3Jk
ZXIuaGFzQm9yZGVyUmFkaXVzKCk7IH0KIAogICAgIHVuc2lnbmVkIHNob3J0IGJvcmRlckxlZnRX
aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5ib3JkZXIuYm9yZGVyTGVmdFdpZHRoKCk7
IH0KQEAgLTg0OSwxMiArODQ5LDEyIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHNldEJvcmRl
ckltYWdlKGNvbnN0IE5pbmVQaWVjZUltYWdlJiBiKSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRl
ci5tX2ltYWdlLCBiKSB9CiAKLSAgICB2b2lkIHNldEJvcmRlclRvcExlZnRSYWRpdXMoY29uc3Qg
TGVuZ3RoU2l6ZSYgcykgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV90b3BMZWZ0LCBzKSB9
Ci0gICAgdm9pZCBzZXRCb3JkZXJUb3BSaWdodFJhZGl1cyhjb25zdCBMZW5ndGhTaXplJiBzKSB7
IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX3RvcFJpZ2h0LCBzKSB9Ci0gICAgdm9pZCBzZXRC
b3JkZXJCb3R0b21MZWZ0UmFkaXVzKGNvbnN0IExlbmd0aFNpemUmIHMpIHsgU0VUX1ZBUihzdXJy
b3VuZCwgYm9yZGVyLm1fYm90dG9tTGVmdCwgcykgfQotICAgIHZvaWQgc2V0Qm9yZGVyQm90dG9t
UmlnaHRSYWRpdXMoY29uc3QgTGVuZ3RoU2l6ZSYgcykgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3Jk
ZXIubV9ib3R0b21SaWdodCwgcykgfQorICAgIHZvaWQgc2V0Qm9yZGVyVG9wTGVmdFJhZGl1cyhM
ZW5ndGhTaXplIHMpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fdG9wTGVmdCwgcykgfQor
ICAgIHZvaWQgc2V0Qm9yZGVyVG9wUmlnaHRSYWRpdXMoTGVuZ3RoU2l6ZSBzKSB7IFNFVF9WQVIo
c3Vycm91bmQsIGJvcmRlci5tX3RvcFJpZ2h0LCBzKSB9CisgICAgdm9pZCBzZXRCb3JkZXJCb3R0
b21MZWZ0UmFkaXVzKExlbmd0aFNpemUgcykgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV9i
b3R0b21MZWZ0LCBzKSB9CisgICAgdm9pZCBzZXRCb3JkZXJCb3R0b21SaWdodFJhZGl1cyhMZW5n
dGhTaXplIHMpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fYm90dG9tUmlnaHQsIHMpIH0K
IAotICAgIHZvaWQgc2V0Qm9yZGVyUmFkaXVzKGNvbnN0IExlbmd0aFNpemUmIHMpCisgICAgdm9p
ZCBzZXRCb3JkZXJSYWRpdXMoTGVuZ3RoU2l6ZSBzKQogICAgIHsKICAgICAgICAgc2V0Qm9yZGVy
VG9wTGVmdFJhZGl1cyhzKTsKICAgICAgICAgc2V0Qm9yZGVyVG9wUmlnaHRSYWRpdXMocyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>