<?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>23618</bug_id>
          
          <creation_ts>2009-01-29 02:40:18 -0800</creation_ts>
          <short_desc>Templated worker tasks should be more error proof to use</short_desc>
          <delta_ts>2009-02-02 23:37:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>23616</dependson>
          <blocked>22720</blocked>
    
    <blocked>23636</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>107498</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-01-29 02:40:18 -0800</bug_when>
    <thetext>Right now, there is a fair amount of knowing which parameters need to be copied and doing it by hand but it would be nice if the generic worker tasks just handled this for callers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107507</commentid>
    <comment_count>1</comment_count>
      <attachid>27144</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-01-29 03:54:48 -0800</bug_when>
    <thetext>Created attachment 27144
Part 1: Add useful templates to TypeTraits.h

I checked that these compile with vs2005 (and the compile asserts should have caught if they were not functioning).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107517</commentid>
    <comment_count>2</comment_count>
      <attachid>27144</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-01-29 06:16:07 -0800</bug_when>
    <thetext>Comment on attachment 27144
Part 1: Add useful templates to TypeTraits.h

+        * wtf/TypeTraits.h:
+        (WTF::):

Mistakes made by prepare-ChangeLog such as this one should be corrected manually. In this case, is is probably best to just remove this line - but generally, we prefer comments to be per-function or at least per-file.

+    // The following are providing in this file:

This doesn&apos;t look like correct English grammar to me.

+    template&lt;typename T&gt; struct IsConvertibleToInteger {
+    private:
+        typedef char YesType;

If it were a class, you wouldn&apos;t need private: at the start.

This is good to land as is, maybe with a small correction to grammar. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107584</commentid>
    <comment_count>3</comment_count>
      <attachid>27162</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-01-29 14:33:27 -0800</bug_when>
    <thetext>Created attachment 27162
Land this which is the R+ review plus a spelling correction (and minor changelog change).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107610</commentid>
    <comment_count>4</comment_count>
      <attachid>27169</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-01-29 16:06:55 -0800</bug_when>
    <thetext>Created attachment 27169
Part 2: Add the copying mechanisms and extra classes for GenericWorkerTasks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107654</commentid>
    <comment_count>5</comment_count>
      <attachid>27144</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-01-30 00:38:47 -0800</bug_when>
    <thetext>Comment on attachment 27144
Part 1: Add useful templates to TypeTraits.h

Committed revision 40400.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107657</commentid>
    <comment_count>6</comment_count>
      <attachid>27176</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-01-30 02:17:07 -0800</bug_when>
    <thetext>Created attachment 27176
Part 2: Add the copying mechanisms and extra classes for GenericWorkerTasks.

Removed the RemoveConstVolatile usage for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107659</commentid>
    <comment_count>7</comment_count>
      <attachid>27176</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-01-30 02:23:46 -0800</bug_when>
    <thetext>Comment on attachment 27176
Part 2: Add the copying mechanisms and extra classes for GenericWorkerTasks.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107761</commentid>
    <comment_count>8</comment_count>
      <attachid>27192</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-01-30 13:41:14 -0800</bug_when>
    <thetext>Created attachment 27192
Part 1.1:  Fix chromium build.

Part 1 has been checked in and now breaks the chromium build (due to it having an additional warning turned on).  This patch fixes the chromium build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107769</commentid>
    <comment_count>9</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-01-30 14:02:39 -0800</bug_when>
    <thetext>Part 1.1. committed in http://trac.webkit.org/changeset/40418</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>107773</commentid>
    <comment_count>10</comment_count>
      <attachid>27192</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-01-30 14:11:21 -0800</bug_when>
    <thetext>Comment on attachment 27192
Part 1.1:  Fix chromium build.

committed in http://trac.webkit.org/changeset/40418</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108090</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-02 23:37:15 -0800</bug_when>
    <thetext>Part 2 committed revision 40525.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27144</attachid>
            <date>2009-01-29 03:54:48 -0800</date>
            <delta_ts>2009-01-30 00:38:47 -0800</delta_ts>
            <desc>Part 1: Add useful templates to TypeTraits.h</desc>
            <filename>bug23618_part1.txt</filename>
            <type>text/plain</type>
            <size>9645</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBlOWZhNGZhLi5jMmIwYzU1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjMg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBCdWcg
MjM2MTg6IFRlbXBsYXRlZCB3b3JrZXIgdGFza3Mgc2hvdWxkIGJlIG1vcmUgZXJyb3IgcHJvb2Yg
dG8gdXNlCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM2MTg+CisKKyAgICAgICAgQWRkIHRoZSB0eXBlIHRyYWl0cyBuZWVkZWQgZm9yIHRoZSBnZW5l
cmljIHdvcmtlciB0YXNrcworICAgICAgICBhbmQgY29tcGlsZSBhc3NlcnRzIGZvciB0aGVtLgor
CisgICAgICAgIEFkZCBhIHN1bW1hcnkgaGVhZGVyIHRvIHRoZSBUeXBlVHJhaXRzLmggZmlsZSB0
byBleHBsYWluIHdoYXQgaXMgaW4gdGhlcmUuCisKKyAgICAgICAgQWRkIGEgbm90ZSB0byBleHBs
YWluIElzUG9kJ3MgZGVmaWNpZW5jaWVzLgorCisgICAgICAgICogd3RmL1R5cGVUcmFpdHMuaDoK
KyAgICAgICAgKFdURjo6KToKKworMjAwOS0wMS0yOSAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAg
ICAgQnVnIDIzNjE2OiBWYXJpb3VzICJ0ZW1wbGF0ZSBoZWxwZXJzIiBzaG91bGQgYmUgY29uc29s
aWRhdGVkIGZyb20gaXNvbGF0ZWQgZmlsZXMgaW4gSmF2YVNjcmlwdENvcmUuCiAgICAgICAgIDxo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTY+CiAKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9UeXBlVHJhaXRzLmggYi9KYXZhU2NyaXB0Q29yZS93dGYv
VHlwZVRyYWl0cy5oCmluZGV4IDk2YjBiZDQuLmFiZDIxOGIgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL3d0Zi9UeXBlVHJhaXRzLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL1R5cGVUcmFp
dHMuaApAQCAtMjYsNiArMjYsMjEgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKKyAgICAvLyBUaGUg
Zm9sbG93aW5nIGFyZSBwcm92aWRpbmcgaW4gdGhpcyBmaWxlOgorICAgIC8vCisgICAgLy8gICBJ
c0ludGVnZXI8VD46OnZhbHVlCisgICAgLy8gICBJc1BvZDxUPjo6dmFsdWUsIHNlZSB0aGUgZGVm
aW5pdGlvbiBmb3IgYSBub3RlIGFib3V0IGl0cyBsaW1pdGF0aW9ucworICAgIC8vICAgSXNDb252
ZXJ0aWJsZVRvSW50ZWdlcjxUPjo6dmFsdWUKKyAgICAvLworICAgIC8vICAgSXNTYW1lVHlwZTxU
LCBVPjo6dmFsdWUKKyAgICAvLworICAgIC8vICAgUmVtb3ZlUG9pbnRlcjxUPjo6VHlwZQorICAg
IC8vICAgUmVtb3ZlQ29uc3Q8VD46OlR5cGUKKyAgICAvLyAgIFJlbW92ZVZvbGF0aWxlPFQ+OjpU
eXBlCisgICAgLy8gICBSZW1vdmVDb25zdFZvbGF0aWxlPFQ+OjpUeXBlCisgICAgLy8KKyAgICAv
LyAgIEVhY2ggaXMgZm9sbG93ZWQgYnkgQ09NUElMRV9BU1NFUlQncyB3aGljaCBpbGx1c3RyYXRl
IHRoZWlyIHVzYWdlIGFuZCB3aGF0IHRoZXkgZG8uCisKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgSXNJbnRlZ2VyICAgICAgICAgICB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0g
ZmFsc2U7IH07CiAgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgSXNJbnRlZ2VyPGJvb2w+ICAgICAgICAg
ICAgICAgeyBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7IH07CiAgICAgdGVtcGxhdGU8
PiBzdHJ1Y3QgSXNJbnRlZ2VyPGNoYXI+ICAgICAgICAgICAgICAgeyBzdGF0aWMgY29uc3QgYm9v
bCB2YWx1ZSA9IHRydWU7IH07CkBAIC02NCwyNSArNzksMTIgQEAgbmFtZXNwYWNlIFdURiB7CiAg
ICAgQ09NUElMRV9BU1NFUlQoIUlzSW50ZWdlcjxkb3VibGU+Ojp2YWx1ZSwgV1RGX0lzSW50ZWdl
cl9kb3VibGVfZmFsc2UpOwogICAgIENPTVBJTEVfQVNTRVJUKCFJc0ludGVnZXI8ZmxvYXQ+Ojp2
YWx1ZSwgV1RGX0lzSW50ZWdlcl9mbG9hdF9mYWxzZSk7CiAKLSAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gc3RydWN0IElzUG9kICAgICAgICAgICB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0g
ZmFsc2U7IH07Ci0gICAgdGVtcGxhdGUgPD4gc3RydWN0IElzUG9kPGJvb2w+ICAgICAgICAgICAg
ICAgeyBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7IH07Ci0gICAgdGVtcGxhdGUgPD4g
c3RydWN0IElzUG9kPGNoYXI+ICAgICAgICAgICAgICAgeyBzdGF0aWMgY29uc3QgYm9vbCB2YWx1
ZSA9IHRydWU7IH07Ci0gICAgdGVtcGxhdGUgPD4gc3RydWN0IElzUG9kPHNpZ25lZCBjaGFyPiAg
ICAgICAgeyBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7IH07Ci0gICAgdGVtcGxhdGUg
PD4gc3RydWN0IElzUG9kPHVuc2lnbmVkIGNoYXI+ICAgICAgeyBzdGF0aWMgY29uc3QgYm9vbCB2
YWx1ZSA9IHRydWU7IH07Ci0gICAgdGVtcGxhdGUgPD4gc3RydWN0IElzUG9kPHNob3J0PiAgICAg
ICAgICAgICAgeyBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7IH07Ci0gICAgdGVtcGxh
dGUgPD4gc3RydWN0IElzUG9kPHVuc2lnbmVkIHNob3J0PiAgICAgeyBzdGF0aWMgY29uc3QgYm9v
bCB2YWx1ZSA9IHRydWU7IH07Ci0gICAgdGVtcGxhdGUgPD4gc3RydWN0IElzUG9kPGludD4gICAg
ICAgICAgICAgICAgeyBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7IH07Ci0gICAgdGVt
cGxhdGUgPD4gc3RydWN0IElzUG9kPHVuc2lnbmVkIGludD4gICAgICAgeyBzdGF0aWMgY29uc3Qg
Ym9vbCB2YWx1ZSA9IHRydWU7IH07Ci0gICAgdGVtcGxhdGUgPD4gc3RydWN0IElzUG9kPGxvbmc+
ICAgICAgICAgICAgICAgeyBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7IH07Ci0gICAg
dGVtcGxhdGUgPD4gc3RydWN0IElzUG9kPHVuc2lnbmVkIGxvbmc+ICAgICAgeyBzdGF0aWMgY29u
c3QgYm9vbCB2YWx1ZSA9IHRydWU7IH07Ci0gICAgdGVtcGxhdGUgPD4gc3RydWN0IElzUG9kPGxv
bmcgbG9uZz4gICAgICAgICAgeyBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7IH07Ci0g
ICAgdGVtcGxhdGUgPD4gc3RydWN0IElzUG9kPHVuc2lnbmVkIGxvbmcgbG9uZz4geyBzdGF0aWMg
Y29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7IH07CisgICAgLy8gSXNQb2QgaXMgbWlzbmFtZWQgYXMg
aXQgZG9lc24ndCBjb3ZlciBhbGwgcGxhaW4gb2xkIGRhdGEgKHBvZCkgdHlwZXMuCisgICAgLy8g
U3BlY2lmaWNhbGx5LCBpdCBkb2Vzbid0IGFsbG93IGZvciBlbnVtcyBvciBmb3Igc3RydWN0cy4K
KyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IElzUG9kICAgICAgICAgICB7IHN0YXRp
YyBjb25zdCBib29sIHZhbHVlID0gSXNJbnRlZ2VyPFQ+Ojp2YWx1ZTsgfTsKICAgICB0ZW1wbGF0
ZSA8PiBzdHJ1Y3QgSXNQb2Q8ZmxvYXQ+ICAgICAgICAgICAgICB7IHN0YXRpYyBjb25zdCBib29s
IHZhbHVlID0gdHJ1ZTsgfTsKICAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSXNQb2Q8ZG91YmxlPiAg
ICAgICAgICAgICB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgfTsKICAgICB0ZW1w
bGF0ZSA8PiBzdHJ1Y3QgSXNQb2Q8bG9uZyBkb3VibGU+ICAgICAgICB7IHN0YXRpYyBjb25zdCBi
b29sIHZhbHVlID0gdHJ1ZTsgfTsKLSNpZiAhQ09NUElMRVIoTVNWQykgfHwgZGVmaW5lZChfTkFU
SVZFX1dDSEFSX1RfREVGSU5FRCkKLSAgICB0ZW1wbGF0ZTw+IHN0cnVjdCAgSXNQb2Q8d2NoYXJf
dD4gICAgICAgICAgICB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgfTsKLSNlbmRp
ZgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBQPiBzdHJ1Y3QgSXNQb2Q8UCo+ICAgICAgIHsgc3Rh
dGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyB9OwogCiAgICAgQ09NUElMRV9BU1NFUlQoSXNQ
b2Q8Ym9vbD46OnZhbHVlLCBXVEZfSXNQb2RfYm9vbF90cnVlKTsKQEAgLTEwOCw2ICsxMTAsOTAg
QEAgbmFtZXNwYWNlIFdURiB7CiAgICAgQ09NUElMRV9BU1NFUlQoSXNQb2Q8ZmxvYXQ+Ojp2YWx1
ZSwgV1RGX0lzUG9kX2Zsb2F0X3RydWUpOwogICAgIENPTVBJTEVfQVNTRVJUKCFJc1BvZDxJc1Bv
ZDxib29sPiA+Ojp2YWx1ZSwgV1RGX0lzUG9kX3N0cnVjdF9mYWxzZSk7CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSXNDb252ZXJ0aWJsZVRvSW50ZWdlciB7CisgICAgcHJpdmF0
ZToKKyAgICAgICAgdHlwZWRlZiBjaGFyIFllc1R5cGU7CisgICAgICAgIHN0cnVjdCBOb1R5cGUg
eworICAgICAgICAgICAgY2hhciBwYWRkaW5nWzhdOworICAgICAgICB9OworCisgICAgICAgIHN0
YXRpYyBZZXNUeXBlIGludGVnZXJDaGVjayhpbnQpOworICAgICAgICBzdGF0aWMgTm9UeXBlIGlu
dGVnZXJDaGVjayguLi4pOworICAgICAgICBzdGF0aWMgVCYgdDsKKworICAgIHB1YmxpYzoKKyAg
ICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzaXplb2YoaW50ZWdlckNoZWNrKHQpKSA9
PSBzaXplb2YoWWVzVHlwZSk7CisgICAgfTsKKworICAgIENPTVBJTEVfQVNTRVJUKElzQ29udmVy
dGlibGVUb0ludGVnZXI8Ym9vbD46OnZhbHVlLCBXVEZfSXNDb252ZXJ0aWJsZVRvSW50ZWdlcl9i
b29sX3RydWUpOworICAgIENPTVBJTEVfQVNTRVJUKElzQ29udmVydGlibGVUb0ludGVnZXI8Y2hh
cj46OnZhbHVlLCBXVEZfSXNDb252ZXJ0aWJsZVRvSW50ZWdlcl9jaGFyX3RydWUpOworICAgIENP
TVBJTEVfQVNTRVJUKElzQ29udmVydGlibGVUb0ludGVnZXI8c2lnbmVkIGNoYXI+Ojp2YWx1ZSwg
V1RGX0lzQ29udmVydGlibGVUb0ludGVnZXJfc2lnbmVkX2NoYXJfdHJ1ZSk7CisgICAgQ09NUElM
RV9BU1NFUlQoSXNDb252ZXJ0aWJsZVRvSW50ZWdlcjx1bnNpZ25lZCBjaGFyPjo6dmFsdWUsIFdU
Rl9Jc0NvbnZlcnRpYmxlVG9JbnRlZ2VyX3Vuc2lnbmVkX2NoYXJfdHJ1ZSk7CisgICAgQ09NUElM
RV9BU1NFUlQoSXNDb252ZXJ0aWJsZVRvSW50ZWdlcjxzaG9ydD46OnZhbHVlLCBXVEZfSXNDb252
ZXJ0aWJsZVRvSW50ZWdlcl9zaG9ydF90cnVlKTsKKyAgICBDT01QSUxFX0FTU0VSVChJc0NvbnZl
cnRpYmxlVG9JbnRlZ2VyPHVuc2lnbmVkIHNob3J0Pjo6dmFsdWUsIFdURl9Jc0NvbnZlcnRpYmxl
VG9JbnRlZ2VyX3Vuc2lnbmVkX3Nob3J0X3RydWUpOworICAgIENPTVBJTEVfQVNTRVJUKElzQ29u
dmVydGlibGVUb0ludGVnZXI8aW50Pjo6dmFsdWUsIFdURl9Jc0NvbnZlcnRpYmxlVG9JbnRlZ2Vy
X2ludF90cnVlKTsKKyAgICBDT01QSUxFX0FTU0VSVChJc0NvbnZlcnRpYmxlVG9JbnRlZ2VyPHVu
c2lnbmVkIGludD46OnZhbHVlLCBXVEZfSXNDb252ZXJ0aWJsZVRvSW50ZWdlcl91bnNpZ25lZF9p
bnRfdHJ1ZSk7CisgICAgQ09NUElMRV9BU1NFUlQoSXNDb252ZXJ0aWJsZVRvSW50ZWdlcjxsb25n
Pjo6dmFsdWUsIFdURl9Jc0NvbnZlcnRpYmxlVG9JbnRlZ2VyX2xvbmdfdHJ1ZSk7CisgICAgQ09N
UElMRV9BU1NFUlQoSXNDb252ZXJ0aWJsZVRvSW50ZWdlcjx1bnNpZ25lZCBsb25nPjo6dmFsdWUs
IFdURl9Jc0NvbnZlcnRpYmxlVG9JbnRlZ2VyX3Vuc2lnbmVkX2xvbmdfdHJ1ZSk7CisgICAgQ09N
UElMRV9BU1NFUlQoSXNDb252ZXJ0aWJsZVRvSW50ZWdlcjxsb25nIGxvbmc+Ojp2YWx1ZSwgV1RG
X0lzQ29udmVydGlibGVUb0ludGVnZXJfbG9uZ19sb25nX3RydWUpOworICAgIENPTVBJTEVfQVNT
RVJUKElzQ29udmVydGlibGVUb0ludGVnZXI8dW5zaWduZWQgbG9uZyBsb25nPjo6dmFsdWUsIFdU
Rl9Jc0NvbnZlcnRpYmxlVG9JbnRlZ2VyX3Vuc2lnbmVkX2xvbmdfbG9uZ190cnVlKTsKKyNpZiAh
Q09NUElMRVIoTVNWQykgfHwgZGVmaW5lZChfTkFUSVZFX1dDSEFSX1RfREVGSU5FRCkKKyAgICBD
T01QSUxFX0FTU0VSVChJc0NvbnZlcnRpYmxlVG9JbnRlZ2VyPHdjaGFyX3Q+Ojp2YWx1ZSwgV1RG
X0lzQ29udmVydGlibGVUb0ludGVnZXJfd2NoYXJfdF90cnVlKTsKKyNlbmRpZgorICAgIENPTVBJ
TEVfQVNTRVJUKElzQ29udmVydGlibGVUb0ludGVnZXI8ZG91YmxlPjo6dmFsdWUsIFdURl9Jc0Nv
bnZlcnRpYmxlVG9JbnRlZ2VyX2RvdWJsZV90cnVlKTsKKyAgICBDT01QSUxFX0FTU0VSVChJc0Nv
bnZlcnRpYmxlVG9JbnRlZ2VyPGxvbmcgZG91YmxlPjo6dmFsdWUsIFdURl9Jc0NvbnZlcnRpYmxl
VG9JbnRlZ2VyX2xvbmdfZG91YmxlX3RydWUpOworICAgIENPTVBJTEVfQVNTRVJUKElzQ29udmVy
dGlibGVUb0ludGVnZXI8ZmxvYXQ+Ojp2YWx1ZSwgV1RGX0lzQ29udmVydGlibGVUb0ludGVnZXJf
ZmxvYXRfdHJ1ZSk7CisgICAgQ09NUElMRV9BU1NFUlQoIUlzQ29udmVydGlibGVUb0ludGVnZXI8
Y2hhcio+Ojp2YWx1ZSwgV1RGX0lzQ29udmVydGlibGVUb0ludGVnZXJfY2hhcl9wb2ludGVyX2Zh
bHNlKTsKKyAgICBDT01QSUxFX0FTU0VSVCghSXNDb252ZXJ0aWJsZVRvSW50ZWdlcjxjb25zdCBj
aGFyKj46OnZhbHVlLCBXVEZfSXNDb252ZXJ0aWJsZVRvSW50ZWdlcl9jb25zdF9jaGFyX3BvaW50
ZXJfZmFsc2UpOworICAgIENPTVBJTEVfQVNTRVJUKCFJc0NvbnZlcnRpYmxlVG9JbnRlZ2VyPHZv
bGF0aWxlIGNoYXIqPjo6dmFsdWUsIFdURl9Jc0NvbnZlcnRpYmxlVG9JbnRlZ2VyX3ZvbGF0aWxl
X2NoYXJfcG9pbnRlcl9mYWxzZSk7CisgICAgQ09NUElMRV9BU1NFUlQoIUlzQ29udmVydGlibGVU
b0ludGVnZXI8SXNDb252ZXJ0aWJsZVRvSW50ZWdlcjxib29sPiA+Ojp2YWx1ZSwgV1RGX0lzQ29u
dmVydGlibGVUb0ludGVnZXJfc3RydWN0X2ZhbHNlKTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgSXNTYW1lVHlwZSB7CisgICAgICAgIHN0YXRpYyBjb25z
dCBib29sIHZhbHVlID0gZmFsc2U7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PiBzdHJ1Y3QgSXNTYW1lVHlwZTxULCBUPiB7CisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZh
bHVlID0gdHJ1ZTsKKyAgICB9OworCisgICAgQ09NUElMRV9BU1NFUlQoKElzU2FtZVR5cGU8Ym9v
bCwgYm9vbD46OnZhbHVlKSwgV1RGX0lzU2FtZVR5cGVfYm9vbF90cnVlKTsKKyAgICBDT01QSUxF
X0FTU0VSVCgoSXNTYW1lVHlwZTxpbnQqLCBpbnQqPjo6dmFsdWUpLCBXVEZfSXNTYW1lVHlwZV9p
bnRfcG9pbnRlcl90cnVlKTsKKyAgICBDT01QSUxFX0FTU0VSVCgoIUlzU2FtZVR5cGU8aW50LCBp
bnQqPjo6dmFsdWUpLCBXVEZfSXNTYW1lVHlwZV9pbnRfaW50X3BvaW50ZXJfZmFsc2UpOworICAg
IENPTVBJTEVfQVNTRVJUKCghSXNTYW1lVHlwZTxib29sLCBjb25zdCBib29sPjo6dmFsdWUpLCBX
VEZfSXNTYW1lVHlwZV9jb25zdF9jaGFuZ2VfZmFsc2UpOworICAgIENPTVBJTEVfQVNTRVJUKCgh
SXNTYW1lVHlwZTxib29sLCB2b2xhdGlsZSBib29sPjo6dmFsdWUpLCBXVEZfSXNTYW1lVHlwZV92
b2xhdGlsZV9jaGFuZ2VfZmFsc2UpOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVj
dCBSZW1vdmVDb25zdCB7CisgICAgICAgIHR5cGVkZWYgVCBUeXBlOworICAgIH07CisKKyAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IFJlbW92ZUNvbnN0PGNvbnN0IFQ+IHsKKyAgICAg
ICAgdHlwZWRlZiBUIFR5cGU7CisgICAgfTsKKworICAgIENPTVBJTEVfQVNTRVJUKChJc1NhbWVU
eXBlPGJvb2wsIFJlbW92ZUNvbnN0PGNvbnN0IGJvb2w+OjpUeXBlPjo6dmFsdWUpLCBXVEZfdGVz
dF9SZW1vdmVDb25zdF9jb25zdF9ib29sKTsKKyAgICBDT01QSUxFX0FTU0VSVCgoIUlzU2FtZVR5
cGU8Ym9vbCwgUmVtb3ZlQ29uc3Q8dm9sYXRpbGUgYm9vbD46OlR5cGU+Ojp2YWx1ZSksIFdURl90
ZXN0X1JlbW92ZUNvbnN0X3ZvbGF0aWxlX2Jvb2wpOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+IHN0cnVjdCBSZW1vdmVWb2xhdGlsZSB7CisgICAgICAgIHR5cGVkZWYgVCBUeXBlOworICAg
IH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IFJlbW92ZVZvbGF0aWxlPHZv
bGF0aWxlIFQ+IHsKKyAgICAgICAgdHlwZWRlZiBUIFR5cGU7CisgICAgfTsKKworICAgIENPTVBJ
TEVfQVNTRVJUKChJc1NhbWVUeXBlPGJvb2wsIFJlbW92ZVZvbGF0aWxlPGJvb2w+OjpUeXBlPjo6
dmFsdWUpLCBXVEZfdGVzdF9SZW1vdmVWb2xhdGlsZV9ib29sKTsKKyAgICBDT01QSUxFX0FTU0VS
VCgoIUlzU2FtZVR5cGU8Ym9vbCwgUmVtb3ZlVm9sYXRpbGU8Y29uc3QgYm9vbD46OlR5cGU+Ojp2
YWx1ZSksIFdURl90ZXN0X1JlbW92ZVZvbGF0aWxlX2NvbnN0X2Jvb2wpOworICAgIENPTVBJTEVf
QVNTRVJUKChJc1NhbWVUeXBlPGJvb2wsIFJlbW92ZVZvbGF0aWxlPHZvbGF0aWxlIGJvb2w+OjpU
eXBlPjo6dmFsdWUpLCBXVEZfdGVzdF9SZW1vdmVWb2xhdGlsZV92b2xhdGlsZV9ib29sKTsKKwor
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVtb3ZlQ29uc3RWb2xhdGlsZSB7Cisg
ICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgUmVtb3ZlVm9sYXRpbGU8dHlwZW5hbWUgUmVtb3ZlQ29u
c3Q8VD46OlR5cGU+OjpUeXBlIFR5cGU7CisgICAgfTsKKworICAgIENPTVBJTEVfQVNTRVJUKChJ
c1NhbWVUeXBlPGJvb2wsIFJlbW92ZUNvbnN0Vm9sYXRpbGU8Ym9vbD46OlR5cGU+Ojp2YWx1ZSks
IFdURl90ZXN0X1JlbW92ZUNvbnN0Vm9sYXRpbGVfYm9vbCk7CisgICAgQ09NUElMRV9BU1NFUlQo
KElzU2FtZVR5cGU8Ym9vbCwgUmVtb3ZlQ29uc3RWb2xhdGlsZTxjb25zdCBib29sPjo6VHlwZT46
OnZhbHVlKSwgV1RGX3Rlc3RfUmVtb3ZlQ29uc3RWb2xhdGlsZV9jb25zdF9ib29sKTsKKyAgICBD
T01QSUxFX0FTU0VSVCgoSXNTYW1lVHlwZTxib29sLCBSZW1vdmVDb25zdFZvbGF0aWxlPHZvbGF0
aWxlIGJvb2w+OjpUeXBlPjo6dmFsdWUpLCBXVEZfdGVzdF9SZW1vdmVDb25zdFZvbGF0aWxlX3Zv
bGF0aWxlX2Jvb2wpOworICAgIENPTVBJTEVfQVNTRVJUKChJc1NhbWVUeXBlPGJvb2wsIFJlbW92
ZUNvbnN0Vm9sYXRpbGU8Y29uc3Qgdm9sYXRpbGUgYm9vbD46OlR5cGU+Ojp2YWx1ZSksIFdURl90
ZXN0X1JlbW92ZUNvbnN0Vm9sYXRpbGVfY29uc3Rfdm9sYXRpbGVfYm9vbCk7CisKICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IFJlbW92ZVBvaW50ZXIgewogICAgICAgICB0eXBlZGVm
IFQgVHlwZTsKICAgICB9OwpAQCAtMTE2LDYgKzIwMiwxMCBAQCBuYW1lc3BhY2UgV1RGIHsKICAg
ICAgICAgdHlwZWRlZiBUIFR5cGU7CiAgICAgfTsKIAorICAgIENPTVBJTEVfQVNTRVJUKChJc1Nh
bWVUeXBlPGludCwgUmVtb3ZlUG9pbnRlcjxpbnQ+OjpUeXBlPjo6dmFsdWUpLCBXVEZfVGVzdF9S
ZW1vdmVQb2ludGVyX2ludCk7CisgICAgQ09NUElMRV9BU1NFUlQoKElzU2FtZVR5cGU8aW50LCBS
ZW1vdmVQb2ludGVyPGludCo+OjpUeXBlPjo6dmFsdWUpLCBXVEZfVGVzdF9SZW1vdmVQb2ludGVy
X2ludF9wb2ludGVyKTsKKyAgICBDT01QSUxFX0FTU0VSVCgoIUlzU2FtZVR5cGU8aW50LCBSZW1v
dmVQb2ludGVyPGludCoqPjo6VHlwZT46OnZhbHVlKSwgV1RGX1Rlc3RfUmVtb3ZlUG9pbnRlcl9p
bnRfcG9pbnRlcl9wb2ludGVyKTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKICNlbmRpZiAvLyBU
eXBlVHJhaXRzX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27162</attachid>
            <date>2009-01-29 14:33:27 -0800</date>
            <delta_ts>2009-01-29 14:33:27 -0800</delta_ts>
            <desc>Land this which is the R+ review plus a spelling correction (and minor changelog change).</desc>
            <filename>bug23618_part1_rev1.txt</filename>
            <type>text/plain</type>
            <size>9626</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBlOWZhNGZhLi4xMDNmODk5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjIg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBCdWcg
MjM2MTg6IFRlbXBsYXRlZCB3b3JrZXIgdGFza3Mgc2hvdWxkIGJlIG1vcmUgZXJyb3IgcHJvb2Yg
dG8gdXNlCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM2MTg+CisKKyAgICAgICAgQWRkIHRoZSB0eXBlIHRyYWl0cyBuZWVkZWQgZm9yIHRoZSBnZW5l
cmljIHdvcmtlciB0YXNrcworICAgICAgICBhbmQgY29tcGlsZSBhc3NlcnRzIGZvciB0aGVtLgor
CisgICAgICAgIEFkZCBhIHN1bW1hcnkgaGVhZGVyIHRvIHRoZSBUeXBlVHJhaXRzLmggZmlsZSB0
byBleHBsYWluIHdoYXQgaXMgaW4gdGhlcmUuCisKKyAgICAgICAgQWRkIGEgbm90ZSB0byBleHBs
YWluIElzUG9kJ3MgZGVmaWNpZW5jaWVzLgorCisgICAgICAgICogd3RmL1R5cGVUcmFpdHMuaDoK
KworMjAwOS0wMS0yOSAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgQnVnIDIzNjE2OiBWYXJp
b3VzICJ0ZW1wbGF0ZSBoZWxwZXJzIiBzaG91bGQgYmUgY29uc29saWRhdGVkIGZyb20gaXNvbGF0
ZWQgZmlsZXMgaW4gSmF2YVNjcmlwdENvcmUuCiAgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTY+CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3d0Zi9UeXBlVHJhaXRzLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZVRyYWl0cy5oCmluZGV4
IDk2YjBiZDQuLmM0Y2NmNmYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9UeXBlVHJh
aXRzLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL1R5cGVUcmFpdHMuaApAQCAtMjYsNiArMjYs
MjEgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKKyAgICAvLyBUaGUgZm9sbG93aW5nIGFyZSBwcm92
aWRlZCBpbiB0aGlzIGZpbGU6CisgICAgLy8KKyAgICAvLyAgIElzSW50ZWdlcjxUPjo6dmFsdWUK
KyAgICAvLyAgIElzUG9kPFQ+Ojp2YWx1ZSwgc2VlIHRoZSBkZWZpbml0aW9uIGZvciBhIG5vdGUg
YWJvdXQgaXRzIGxpbWl0YXRpb25zCisgICAgLy8gICBJc0NvbnZlcnRpYmxlVG9JbnRlZ2VyPFQ+
Ojp2YWx1ZQorICAgIC8vCisgICAgLy8gICBJc1NhbWVUeXBlPFQsIFU+Ojp2YWx1ZQorICAgIC8v
CisgICAgLy8gICBSZW1vdmVQb2ludGVyPFQ+OjpUeXBlCisgICAgLy8gICBSZW1vdmVDb25zdDxU
Pjo6VHlwZQorICAgIC8vICAgUmVtb3ZlVm9sYXRpbGU8VD46OlR5cGUKKyAgICAvLyAgIFJlbW92
ZUNvbnN0Vm9sYXRpbGU8VD46OlR5cGUKKyAgICAvLworICAgIC8vICAgRWFjaCBpcyBmb2xsb3dl
ZCBieSBDT01QSUxFX0FTU0VSVCdzIHdoaWNoIGlsbHVzdHJhdGUgdGhlaXIgdXNhZ2UgYW5kIHdo
YXQgdGhleSBkby4KKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc0ludGVnZXIg
ICAgICAgICAgIHsgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBmYWxzZTsgfTsKICAgICB0ZW1w
bGF0ZTw+IHN0cnVjdCBJc0ludGVnZXI8Ym9vbD4gICAgICAgICAgICAgICB7IHN0YXRpYyBjb25z
dCBib29sIHZhbHVlID0gdHJ1ZTsgfTsKICAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBJc0ludGVnZXI8
Y2hhcj4gICAgICAgICAgICAgICB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgfTsK
QEAgLTY0LDI1ICs3OSwxMiBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICBDT01QSUxFX0FTU0VSVCgh
SXNJbnRlZ2VyPGRvdWJsZT46OnZhbHVlLCBXVEZfSXNJbnRlZ2VyX2RvdWJsZV9mYWxzZSk7CiAg
ICAgQ09NUElMRV9BU1NFUlQoIUlzSW50ZWdlcjxmbG9hdD46OnZhbHVlLCBXVEZfSXNJbnRlZ2Vy
X2Zsb2F0X2ZhbHNlKTsKIAotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgSXNQb2Qg
ICAgICAgICAgIHsgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBmYWxzZTsgfTsKLSAgICB0ZW1w
bGF0ZSA8PiBzdHJ1Y3QgSXNQb2Q8Ym9vbD4gICAgICAgICAgICAgICB7IHN0YXRpYyBjb25zdCBi
b29sIHZhbHVlID0gdHJ1ZTsgfTsKLSAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSXNQb2Q8Y2hhcj4g
ICAgICAgICAgICAgICB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgfTsKLSAgICB0
ZW1wbGF0ZSA8PiBzdHJ1Y3QgSXNQb2Q8c2lnbmVkIGNoYXI+ICAgICAgICB7IHN0YXRpYyBjb25z
dCBib29sIHZhbHVlID0gdHJ1ZTsgfTsKLSAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSXNQb2Q8dW5z
aWduZWQgY2hhcj4gICAgICB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgfTsKLSAg
ICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSXNQb2Q8c2hvcnQ+ICAgICAgICAgICAgICB7IHN0YXRpYyBj
b25zdCBib29sIHZhbHVlID0gdHJ1ZTsgfTsKLSAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSXNQb2Q8
dW5zaWduZWQgc2hvcnQ+ICAgICB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgfTsK
LSAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSXNQb2Q8aW50PiAgICAgICAgICAgICAgICB7IHN0YXRp
YyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgfTsKLSAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSXNQ
b2Q8dW5zaWduZWQgaW50PiAgICAgICB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsg
fTsKLSAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSXNQb2Q8bG9uZz4gICAgICAgICAgICAgICB7IHN0
YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgfTsKLSAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3Qg
SXNQb2Q8dW5zaWduZWQgbG9uZz4gICAgICB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1
ZTsgfTsKLSAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgSXNQb2Q8bG9uZyBsb25nPiAgICAgICAgICB7
IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgfTsKLSAgICB0ZW1wbGF0ZSA8PiBzdHJ1
Y3QgSXNQb2Q8dW5zaWduZWQgbG9uZyBsb25nPiB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0g
dHJ1ZTsgfTsKKyAgICAvLyBJc1BvZCBpcyBtaXNuYW1lZCBhcyBpdCBkb2Vzbid0IGNvdmVyIGFs
bCBwbGFpbiBvbGQgZGF0YSAocG9kKSB0eXBlcy4KKyAgICAvLyBTcGVjaWZpY2FsbHksIGl0IGRv
ZXNuJ3QgYWxsb3cgZm9yIGVudW1zIG9yIGZvciBzdHJ1Y3RzLgorICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPiBzdHJ1Y3QgSXNQb2QgICAgICAgICAgIHsgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUg
PSBJc0ludGVnZXI8VD46OnZhbHVlOyB9OwogICAgIHRlbXBsYXRlIDw+IHN0cnVjdCBJc1BvZDxm
bG9hdD4gICAgICAgICAgICAgIHsgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyB9Owog
ICAgIHRlbXBsYXRlIDw+IHN0cnVjdCBJc1BvZDxkb3VibGU+ICAgICAgICAgICAgIHsgc3RhdGlj
IGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyB9OwogICAgIHRlbXBsYXRlIDw+IHN0cnVjdCBJc1Bv
ZDxsb25nIGRvdWJsZT4gICAgICAgIHsgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyB9
OwotI2lmICFDT01QSUxFUihNU1ZDKSB8fCBkZWZpbmVkKF9OQVRJVkVfV0NIQVJfVF9ERUZJTkVE
KQotICAgIHRlbXBsYXRlPD4gc3RydWN0ICBJc1BvZDx3Y2hhcl90PiAgICAgICAgICAgIHsgc3Rh
dGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOyB9OwotI2VuZGlmCiAgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFA+IHN0cnVjdCBJc1BvZDxQKj4gICAgICAgeyBzdGF0aWMgY29uc3QgYm9vbCB2YWx1
ZSA9IHRydWU7IH07CiAKICAgICBDT01QSUxFX0FTU0VSVChJc1BvZDxib29sPjo6dmFsdWUsIFdU
Rl9Jc1BvZF9ib29sX3RydWUpOwpAQCAtMTA4LDYgKzExMCw5MCBAQCBuYW1lc3BhY2UgV1RGIHsK
ICAgICBDT01QSUxFX0FTU0VSVChJc1BvZDxmbG9hdD46OnZhbHVlLCBXVEZfSXNQb2RfZmxvYXRf
dHJ1ZSk7CiAgICAgQ09NUElMRV9BU1NFUlQoIUlzUG9kPElzUG9kPGJvb2w+ID46OnZhbHVlLCBX
VEZfSXNQb2Rfc3RydWN0X2ZhbHNlKTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBJc0NvbnZlcnRpYmxlVG9JbnRlZ2VyIHsKKyAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVm
IGNoYXIgWWVzVHlwZTsKKyAgICAgICAgc3RydWN0IE5vVHlwZSB7CisgICAgICAgICAgICBjaGFy
IHBhZGRpbmdbOF07CisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIFllc1R5cGUgaW50ZWdl
ckNoZWNrKGludCk7CisgICAgICAgIHN0YXRpYyBOb1R5cGUgaW50ZWdlckNoZWNrKC4uLik7Cisg
ICAgICAgIHN0YXRpYyBUJiB0OworCisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCB2YWx1ZSA9IHNpemVvZihpbnRlZ2VyQ2hlY2sodCkpID09IHNpemVvZihZZXNUeXBlKTsK
KyAgICB9OworCisgICAgQ09NUElMRV9BU1NFUlQoSXNDb252ZXJ0aWJsZVRvSW50ZWdlcjxib29s
Pjo6dmFsdWUsIFdURl9Jc0NvbnZlcnRpYmxlVG9JbnRlZ2VyX2Jvb2xfdHJ1ZSk7CisgICAgQ09N
UElMRV9BU1NFUlQoSXNDb252ZXJ0aWJsZVRvSW50ZWdlcjxjaGFyPjo6dmFsdWUsIFdURl9Jc0Nv
bnZlcnRpYmxlVG9JbnRlZ2VyX2NoYXJfdHJ1ZSk7CisgICAgQ09NUElMRV9BU1NFUlQoSXNDb252
ZXJ0aWJsZVRvSW50ZWdlcjxzaWduZWQgY2hhcj46OnZhbHVlLCBXVEZfSXNDb252ZXJ0aWJsZVRv
SW50ZWdlcl9zaWduZWRfY2hhcl90cnVlKTsKKyAgICBDT01QSUxFX0FTU0VSVChJc0NvbnZlcnRp
YmxlVG9JbnRlZ2VyPHVuc2lnbmVkIGNoYXI+Ojp2YWx1ZSwgV1RGX0lzQ29udmVydGlibGVUb0lu
dGVnZXJfdW5zaWduZWRfY2hhcl90cnVlKTsKKyAgICBDT01QSUxFX0FTU0VSVChJc0NvbnZlcnRp
YmxlVG9JbnRlZ2VyPHNob3J0Pjo6dmFsdWUsIFdURl9Jc0NvbnZlcnRpYmxlVG9JbnRlZ2VyX3No
b3J0X3RydWUpOworICAgIENPTVBJTEVfQVNTRVJUKElzQ29udmVydGlibGVUb0ludGVnZXI8dW5z
aWduZWQgc2hvcnQ+Ojp2YWx1ZSwgV1RGX0lzQ29udmVydGlibGVUb0ludGVnZXJfdW5zaWduZWRf
c2hvcnRfdHJ1ZSk7CisgICAgQ09NUElMRV9BU1NFUlQoSXNDb252ZXJ0aWJsZVRvSW50ZWdlcjxp
bnQ+Ojp2YWx1ZSwgV1RGX0lzQ29udmVydGlibGVUb0ludGVnZXJfaW50X3RydWUpOworICAgIENP
TVBJTEVfQVNTRVJUKElzQ29udmVydGlibGVUb0ludGVnZXI8dW5zaWduZWQgaW50Pjo6dmFsdWUs
IFdURl9Jc0NvbnZlcnRpYmxlVG9JbnRlZ2VyX3Vuc2lnbmVkX2ludF90cnVlKTsKKyAgICBDT01Q
SUxFX0FTU0VSVChJc0NvbnZlcnRpYmxlVG9JbnRlZ2VyPGxvbmc+Ojp2YWx1ZSwgV1RGX0lzQ29u
dmVydGlibGVUb0ludGVnZXJfbG9uZ190cnVlKTsKKyAgICBDT01QSUxFX0FTU0VSVChJc0NvbnZl
cnRpYmxlVG9JbnRlZ2VyPHVuc2lnbmVkIGxvbmc+Ojp2YWx1ZSwgV1RGX0lzQ29udmVydGlibGVU
b0ludGVnZXJfdW5zaWduZWRfbG9uZ190cnVlKTsKKyAgICBDT01QSUxFX0FTU0VSVChJc0NvbnZl
cnRpYmxlVG9JbnRlZ2VyPGxvbmcgbG9uZz46OnZhbHVlLCBXVEZfSXNDb252ZXJ0aWJsZVRvSW50
ZWdlcl9sb25nX2xvbmdfdHJ1ZSk7CisgICAgQ09NUElMRV9BU1NFUlQoSXNDb252ZXJ0aWJsZVRv
SW50ZWdlcjx1bnNpZ25lZCBsb25nIGxvbmc+Ojp2YWx1ZSwgV1RGX0lzQ29udmVydGlibGVUb0lu
dGVnZXJfdW5zaWduZWRfbG9uZ19sb25nX3RydWUpOworI2lmICFDT01QSUxFUihNU1ZDKSB8fCBk
ZWZpbmVkKF9OQVRJVkVfV0NIQVJfVF9ERUZJTkVEKQorICAgIENPTVBJTEVfQVNTRVJUKElzQ29u
dmVydGlibGVUb0ludGVnZXI8d2NoYXJfdD46OnZhbHVlLCBXVEZfSXNDb252ZXJ0aWJsZVRvSW50
ZWdlcl93Y2hhcl90X3RydWUpOworI2VuZGlmCisgICAgQ09NUElMRV9BU1NFUlQoSXNDb252ZXJ0
aWJsZVRvSW50ZWdlcjxkb3VibGU+Ojp2YWx1ZSwgV1RGX0lzQ29udmVydGlibGVUb0ludGVnZXJf
ZG91YmxlX3RydWUpOworICAgIENPTVBJTEVfQVNTRVJUKElzQ29udmVydGlibGVUb0ludGVnZXI8
bG9uZyBkb3VibGU+Ojp2YWx1ZSwgV1RGX0lzQ29udmVydGlibGVUb0ludGVnZXJfbG9uZ19kb3Vi
bGVfdHJ1ZSk7CisgICAgQ09NUElMRV9BU1NFUlQoSXNDb252ZXJ0aWJsZVRvSW50ZWdlcjxmbG9h
dD46OnZhbHVlLCBXVEZfSXNDb252ZXJ0aWJsZVRvSW50ZWdlcl9mbG9hdF90cnVlKTsKKyAgICBD
T01QSUxFX0FTU0VSVCghSXNDb252ZXJ0aWJsZVRvSW50ZWdlcjxjaGFyKj46OnZhbHVlLCBXVEZf
SXNDb252ZXJ0aWJsZVRvSW50ZWdlcl9jaGFyX3BvaW50ZXJfZmFsc2UpOworICAgIENPTVBJTEVf
QVNTRVJUKCFJc0NvbnZlcnRpYmxlVG9JbnRlZ2VyPGNvbnN0IGNoYXIqPjo6dmFsdWUsIFdURl9J
c0NvbnZlcnRpYmxlVG9JbnRlZ2VyX2NvbnN0X2NoYXJfcG9pbnRlcl9mYWxzZSk7CisgICAgQ09N
UElMRV9BU1NFUlQoIUlzQ29udmVydGlibGVUb0ludGVnZXI8dm9sYXRpbGUgY2hhcio+Ojp2YWx1
ZSwgV1RGX0lzQ29udmVydGlibGVUb0ludGVnZXJfdm9sYXRpbGVfY2hhcl9wb2ludGVyX2ZhbHNl
KTsKKyAgICBDT01QSUxFX0FTU0VSVCghSXNDb252ZXJ0aWJsZVRvSW50ZWdlcjxJc0NvbnZlcnRp
YmxlVG9JbnRlZ2VyPGJvb2w+ID46OnZhbHVlLCBXVEZfSXNDb252ZXJ0aWJsZVRvSW50ZWdlcl9z
dHJ1Y3RfZmFsc2UpOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHN0
cnVjdCBJc1NhbWVUeXBlIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBmYWxz
ZTsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc1NhbWVUeXBl
PFQsIFQ+IHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOworICAgIH07
CisKKyAgICBDT01QSUxFX0FTU0VSVCgoSXNTYW1lVHlwZTxib29sLCBib29sPjo6dmFsdWUpLCBX
VEZfSXNTYW1lVHlwZV9ib29sX3RydWUpOworICAgIENPTVBJTEVfQVNTRVJUKChJc1NhbWVUeXBl
PGludCosIGludCo+Ojp2YWx1ZSksIFdURl9Jc1NhbWVUeXBlX2ludF9wb2ludGVyX3RydWUpOwor
ICAgIENPTVBJTEVfQVNTRVJUKCghSXNTYW1lVHlwZTxpbnQsIGludCo+Ojp2YWx1ZSksIFdURl9J
c1NhbWVUeXBlX2ludF9pbnRfcG9pbnRlcl9mYWxzZSk7CisgICAgQ09NUElMRV9BU1NFUlQoKCFJ
c1NhbWVUeXBlPGJvb2wsIGNvbnN0IGJvb2w+Ojp2YWx1ZSksIFdURl9Jc1NhbWVUeXBlX2NvbnN0
X2NoYW5nZV9mYWxzZSk7CisgICAgQ09NUElMRV9BU1NFUlQoKCFJc1NhbWVUeXBlPGJvb2wsIHZv
bGF0aWxlIGJvb2w+Ojp2YWx1ZSksIFdURl9Jc1NhbWVUeXBlX3ZvbGF0aWxlX2NoYW5nZV9mYWxz
ZSk7CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IFJlbW92ZUNvbnN0IHsKKyAg
ICAgICAgdHlwZWRlZiBUIFR5cGU7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PiBzdHJ1Y3QgUmVtb3ZlQ29uc3Q8Y29uc3QgVD4geworICAgICAgICB0eXBlZGVmIFQgVHlwZTsK
KyAgICB9OworCisgICAgQ09NUElMRV9BU1NFUlQoKElzU2FtZVR5cGU8Ym9vbCwgUmVtb3ZlQ29u
c3Q8Y29uc3QgYm9vbD46OlR5cGU+Ojp2YWx1ZSksIFdURl90ZXN0X1JlbW92ZUNvbnN0X2NvbnN0
X2Jvb2wpOworICAgIENPTVBJTEVfQVNTRVJUKCghSXNTYW1lVHlwZTxib29sLCBSZW1vdmVDb25z
dDx2b2xhdGlsZSBib29sPjo6VHlwZT46OnZhbHVlKSwgV1RGX3Rlc3RfUmVtb3ZlQ29uc3Rfdm9s
YXRpbGVfYm9vbCk7CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IFJlbW92ZVZv
bGF0aWxlIHsKKyAgICAgICAgdHlwZWRlZiBUIFR5cGU7CisgICAgfTsKKworICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVtb3ZlVm9sYXRpbGU8dm9sYXRpbGUgVD4geworICAgICAg
ICB0eXBlZGVmIFQgVHlwZTsKKyAgICB9OworCisgICAgQ09NUElMRV9BU1NFUlQoKElzU2FtZVR5
cGU8Ym9vbCwgUmVtb3ZlVm9sYXRpbGU8Ym9vbD46OlR5cGU+Ojp2YWx1ZSksIFdURl90ZXN0X1Jl
bW92ZVZvbGF0aWxlX2Jvb2wpOworICAgIENPTVBJTEVfQVNTRVJUKCghSXNTYW1lVHlwZTxib29s
LCBSZW1vdmVWb2xhdGlsZTxjb25zdCBib29sPjo6VHlwZT46OnZhbHVlKSwgV1RGX3Rlc3RfUmVt
b3ZlVm9sYXRpbGVfY29uc3RfYm9vbCk7CisgICAgQ09NUElMRV9BU1NFUlQoKElzU2FtZVR5cGU8
Ym9vbCwgUmVtb3ZlVm9sYXRpbGU8dm9sYXRpbGUgYm9vbD46OlR5cGU+Ojp2YWx1ZSksIFdURl90
ZXN0X1JlbW92ZVZvbGF0aWxlX3ZvbGF0aWxlX2Jvb2wpOworCisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IHN0cnVjdCBSZW1vdmVDb25zdFZvbGF0aWxlIHsKKyAgICAgICAgdHlwZWRlZiB0eXBl
bmFtZSBSZW1vdmVWb2xhdGlsZTx0eXBlbmFtZSBSZW1vdmVDb25zdDxUPjo6VHlwZT46OlR5cGUg
VHlwZTsKKyAgICB9OworCisgICAgQ09NUElMRV9BU1NFUlQoKElzU2FtZVR5cGU8Ym9vbCwgUmVt
b3ZlQ29uc3RWb2xhdGlsZTxib29sPjo6VHlwZT46OnZhbHVlKSwgV1RGX3Rlc3RfUmVtb3ZlQ29u
c3RWb2xhdGlsZV9ib29sKTsKKyAgICBDT01QSUxFX0FTU0VSVCgoSXNTYW1lVHlwZTxib29sLCBS
ZW1vdmVDb25zdFZvbGF0aWxlPGNvbnN0IGJvb2w+OjpUeXBlPjo6dmFsdWUpLCBXVEZfdGVzdF9S
ZW1vdmVDb25zdFZvbGF0aWxlX2NvbnN0X2Jvb2wpOworICAgIENPTVBJTEVfQVNTRVJUKChJc1Nh
bWVUeXBlPGJvb2wsIFJlbW92ZUNvbnN0Vm9sYXRpbGU8dm9sYXRpbGUgYm9vbD46OlR5cGU+Ojp2
YWx1ZSksIFdURl90ZXN0X1JlbW92ZUNvbnN0Vm9sYXRpbGVfdm9sYXRpbGVfYm9vbCk7CisgICAg
Q09NUElMRV9BU1NFUlQoKElzU2FtZVR5cGU8Ym9vbCwgUmVtb3ZlQ29uc3RWb2xhdGlsZTxjb25z
dCB2b2xhdGlsZSBib29sPjo6VHlwZT46OnZhbHVlKSwgV1RGX3Rlc3RfUmVtb3ZlQ29uc3RWb2xh
dGlsZV9jb25zdF92b2xhdGlsZV9ib29sKTsKKwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBz
dHJ1Y3QgUmVtb3ZlUG9pbnRlciB7CiAgICAgICAgIHR5cGVkZWYgVCBUeXBlOwogICAgIH07CkBA
IC0xMTYsNiArMjAyLDEwIEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICB0eXBlZGVmIFQgVHlw
ZTsKICAgICB9OwogCisgICAgQ09NUElMRV9BU1NFUlQoKElzU2FtZVR5cGU8aW50LCBSZW1vdmVQ
b2ludGVyPGludD46OlR5cGU+Ojp2YWx1ZSksIFdURl9UZXN0X1JlbW92ZVBvaW50ZXJfaW50KTsK
KyAgICBDT01QSUxFX0FTU0VSVCgoSXNTYW1lVHlwZTxpbnQsIFJlbW92ZVBvaW50ZXI8aW50Kj46
OlR5cGU+Ojp2YWx1ZSksIFdURl9UZXN0X1JlbW92ZVBvaW50ZXJfaW50X3BvaW50ZXIpOworICAg
IENPTVBJTEVfQVNTRVJUKCghSXNTYW1lVHlwZTxpbnQsIFJlbW92ZVBvaW50ZXI8aW50Kio+OjpU
eXBlPjo6dmFsdWUpLCBXVEZfVGVzdF9SZW1vdmVQb2ludGVyX2ludF9wb2ludGVyX3BvaW50ZXIp
OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogI2VuZGlmIC8vIFR5cGVUcmFpdHNfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27169</attachid>
            <date>2009-01-29 16:06:55 -0800</date>
            <delta_ts>2009-01-30 02:17:07 -0800</delta_ts>
            <desc>Part 2: Add the copying mechanisms and extra classes for GenericWorkerTasks.</desc>
            <filename>bug23618_part2.txt</filename>
            <type>text/plain</type>
            <size>41334</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NmZkYzc3MS4uODc1NzYxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiw2MCBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIEJ1ZyAyMzYxODogVGVtcGxhdGVkIHdvcmtlciB0YXNr
cyBzaG91bGQgYmUgbW9yZSBlcnJvciBwcm9vZiB0byB1c2UuCisgICAgICAgIDxodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTg+CisKKyAgICAgICAgQWRkIHRoZSBn
ZW5lcmljIHdvcmtlciB0YXNrcyB0ZW1wbGF0ZXMgbmVlZGVkIGZvciB0aGUgV29ya2VyVGhyZWFk
YWJsZUxvYWRlci4KKworICAgICAgICBTdG9wIGRvaW5nIHRoZSBXb3JrZXJNZXNzYWdpbmdQcm94
eTo6YXNrZWRUb1Rlcm1pbmF0ZSBjYWxsIGF1dG9tYXRpY2FsbHkKKyAgICAgICAgaW4gcGVyZm9y
bVRhc2sgYmVjYXVzZSB3YXMgbm90IG9idmlvdXMgdGhhdCBpdCB3b3VsZCBiZSBkb25lIGFuZCBu
b3QgYWx3YXlzIG5lZWRlZC4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBpbiBiZWhh
dmlvciwgc28gbm8gdGVzdC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUuc2NvbnM6CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYkNvcmVTb3VyY2VzLmJrbDoKKyAgICAgICAgKiBk
b20vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ojo6Y29w
eSk6CisgICAgICAgICogZG9tL0Nyb3NzVGhyZWFkQ29waWVyLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhyb3VnaDo6Y29weSk6CisgICAgICAgICog
ZG9tL0dlbmVyaWNXb3JrZXJUYXNrLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAo
V2ViQ29yZTo6R2VuZXJpY1dvcmtlclRhc2sxOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R2VuZXJpY1dvcmtlclRhc2sxOjpHZW5lcmljV29ya2VyVGFzazEpOgorICAgICAgICAoV2ViQ29y
ZTo6R2VuZXJpY1dvcmtlclRhc2sxOjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpH
ZW5lcmljV29ya2VyVGFzazI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljV29y
a2VyVGFzazI6OkdlbmVyaWNXb3JrZXJUYXNrMik6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmlj
V29ya2VyVGFzazI6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNXb3Jr
ZXJUYXNrMzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNXb3JrZXJUYXNrMzo6
R2VuZXJpY1dvcmtlclRhc2szKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNXb3JrZXJUYXNr
Mzo6cGVyZm9ybVRhc2spOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY1dvcmtlclRhc2s0Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY1dvcmtlclRhc2s0OjpHZW5lcmljV29y
a2VyVGFzazQpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY1dvcmtlclRhc2s0OjpwZXJmb3Jt
VGFzayk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljV29ya2VyVGFzazU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHZW5lcmljV29ya2VyVGFzazU6OkdlbmVyaWNXb3JrZXJUYXNrNSk6
CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljV29ya2VyVGFzazU6OnBlcmZvcm1UYXNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdlbmVyaWNXb3JrZXJUYXNrNjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdlbmVyaWNXb3JrZXJUYXNrNjo6R2VuZXJpY1dvcmtlclRhc2s2KToKKyAgICAgICAg
KFdlYkNvcmU6OkdlbmVyaWNXb3JrZXJUYXNrNjo6cGVyZm9ybVRhc2spOgorICAgICAgICAoV2Vi
Q29yZTo6R2VuZXJpY1dvcmtlclRhc2s3OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2Vu
ZXJpY1dvcmtlclRhc2s3OjpHZW5lcmljV29ya2VyVGFzazcpOgorICAgICAgICAoV2ViQ29yZTo6
R2VuZXJpY1dvcmtlclRhc2s3OjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVDYWxsYmFja1Rhc2spOgorICAgICAgICAqIGRvbS9Xb3JrZXJDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmFkZE1lc3NhZ2VUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNv
bnRleHQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9Xb3JrZXJNZXNzYWdpbmdQcm94eS5o
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OmFza2VkVG9UZXJtaW5h
dGUpOgorCisyMDA5LTAxLTI5ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBCdWcgMjM2MTY6
IFZhcmlvdXMgInRlbXBsYXRlIGhlbHBlcnMiIHNob3VsZCBiZSBjb25zb2xpZGF0ZWQgZnJvbSBp
c29sYXRlZCBmaWxlcyBpbiBKYXZhU2NyaXB0Q29yZS4KICAgICAgICAgPGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxNj4KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNmU4MjNjMi4uZmFk
MDgzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCkBAIC0yMTgzLDYgKzIxODMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBcCisJV2ViQ29yZS9kb20vQ3Jvc3NUaHJlYWRDb3Bp
ZXIuY3BwIFwKKwlXZWJDb3JlL2RvbS9Dcm9zc1RocmVhZENvcGllci5oIFwKIAlXZWJDb3JlL2Rv
bS9HZW5lcmljV29ya2VyVGFzay5oIFwKIAlXZWJDb3JlL2RvbS9Xb3JrZXIuY3BwIFwKIAlXZWJD
b3JlL2RvbS9Xb3JrZXIuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwppbmRleCBmM2M5YTQ2Li42MDA3NDY3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTU2OCw2ICs1Njgs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuY3BwIFwKICAgICBkb20v
Q29tbWVudC5jcHAgXAogICAgIGRvbS9Db250YWluZXJOb2RlLmNwcCBcCisgICAgZG9tL0Nyb3Nz
VGhyZWFkQ29waWVyLmNwcCBcCiAgICAgZG9tL0NTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9u
LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQu
Y3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5zY29ucyBiL1dlYkNvcmUvV2ViQ29y
ZS5zY29ucwppbmRleCAyODYxN2E1Li40YThlMmQ0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUuc2NvbnMKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnNjb25zCkBAIC03OCw2ICs3OCw3IEBAIHNv
dXJjZXNbJ2RvbSddID0gWwogICAgICdkb20vQ2xpcGJvYXJkRXZlbnQuY3BwJywKICAgICAnZG9t
L0NvbW1lbnQuY3BwJywKICAgICAnZG9tL0NvbnRhaW5lck5vZGUuY3BwJywKKyAgICAnZG9tL0Ny
b3NzVGhyZWFkQ29waWVyLmNwcCcsCiAgICAgJ2RvbS9DU1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJh
dGlvbi5jcHAnLAogICAgICdkb20vRG9jdW1lbnQuY3BwJywKICAgICAnZG9tL0RvY3VtZW50RnJh
Z21lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDEzMjY0
NDguLjA2MDg3MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMTEx
MTgsNiArMTExMTgsMjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5cZG9tXENyb3NzVGhyZWFkQ29waWVyLmNwcCINCisJCQkJPg0KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfUEdPfFdpbjMyIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCVdo
b2xlUHJvZ3JhbU9wdGltaXphdGlvbj0idHJ1ZSINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXENyb3NzVGhyZWFkQ29waWVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24u
Y3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTk4ZWUwZS4uY2JhNDE3MCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMiw2ICsxMzIsNyBAQAog
CQkwOEU2RTBGMTBFRkY0MkJBMDAwMjlGQkYgLyogV01MRmllbGRTZXRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4RTZFMEVGMEVGRjQy
QkEwMDAyOUZCRiAvKiBXTUxGaWVsZFNldEVsZW1lbnQuY3BwICovOyB9OwogCQkwOEU2RTBGMjBF
RkY0MkJBMDAwMjlGQkYgLyogV01MRmllbGRTZXRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEU2RTBGMDBFRkY0MkJBMDAwMjlGQkYgLyog
V01MRmllbGRTZXRFbGVtZW50LmggKi87IH07CiAJCTBBNDg0NDk5MENBNDRDQjIwMEI3QkQ0OCAv
KiBTb2Z0TGlua2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEE0ODQ0OTgwQ0E0NENCMjAwQjdCRDQ4IC8qIFNvZnRMaW5raW5nLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEI0Q0U3REIwRjJFNEJE
RTAwRjZFQzA0IC8qIENyb3NzVGhyZWFkQ29waWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjRDRTdEQTBGMkU0QkRFMDBGNkVDMDQgLyogQ3Jvc3NU
aHJlYWRDb3BpZXIuaCAqLzsgfTsKIAkJMEI4QzU2RDQwRjI4NjI3RjAwMDUwMkUxIC8qIEhUVFBI
ZWFkZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEI4QzU2RDMwRjI4NjI3RjAwMDUwMkUxIC8qIEhUVFBIZWFkZXJNYXAuY3BwICovOyB9Owog
CQkwQjkwNTYxOTBGMjU3OEJFMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBCOTA1NjE1
MEYyNTc4QkUwMDk1RkY2QSAvKiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwICovOyB9Owog
CQkwQjkwNTYxQTBGMjU3OEJGMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjkwNTYxNjBG
MjU3OEJFMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKQEAgLTEzOSw2ICsxNDAsNyBAQAogCQkwQjkwNTYx
QzBGMjU3OEJGMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEI5MDU2MTgwRjI1NzhCRTAwOTVG
RjZBIC8qIFRocmVhZGFibGVMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9ICgpOyB9OyB9OwogCQkwQjkwNTYxRTBGMjU3RTkzMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxv
YWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
QjkwNTYxRDBGMjU3RTkzMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxvYWRlci5jcHAgKi87IH07CiAJ
CTBCQTVEMzg2MEYyNDBGQjQwMDlCODcwQiAvKiBHZW5lcmljV29ya2VyVGFzay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEJBNUQzODUwRjI0MEZCNDAw
OUI4NzBCIC8qIEdlbmVyaWNXb3JrZXJUYXNrLmggKi87IH07CisJCTBCQjREQkUyMEYyRUUyOTgw
MDM1NDYxOSAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQkI0REJFMTBGMkVFMjk4MDAzNTQ2MTkgLyogQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwICovOyB9OwogCQkwQkUwMzBBMjBGMzExMkZCMDAzQzFBNDYgLyogUmVu
ZGVyTGluZUJveExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBCRTAzMEExMEYzMTEyRkIwMDNDMUE0NiAvKiBSZW5kZXJMaW5lQm94TGlzdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTYwMjhG
MEU0Qjc2NTgwMDY1QjAzOCAvKiBSZW5kZXJNYXJxdWVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2MDI4RDBFNEI3NjU4MDA2NUIwMzggLyogUmVu
ZGVyTWFycXVlZS5oICovOyB9OwogCQkwRjU2MDI5MDBFNEI3NjU4MDA2NUIwMzggLyogUmVuZGVy
TWFycXVlZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjU2MDI4RTBFNEI3NjU4MDA2NUIwMzggLyogUmVuZGVyTWFycXVlZS5jcHAgKi87IH07CkBA
IC00OTc3LDYgKzQ5NzksNyBAQAogCQkwOEZCODRCMDBFQ0UzNzMzMDBEQzA2NEUgLyogV01MRWxl
bWVudEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV01M
RWxlbWVudEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwOEZCODRC
MTBFQ0UzNzMzMDBEQzA2NEUgLyogV01MRWxlbWVudEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV01MRWxlbWVudEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEE0ODQ0OTgwQ0E0NENCMjAwQjdCRDQ4IC8qIFNvZnRMaW5raW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvZnRMaW5raW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBCNENFN0RBMEYyRTRCREUwMEY2RUMwNCAvKiBDcm9zc1RocmVh
ZENvcGllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZENv
cGllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQjhDNTZEMzBGMjg2MjdGMDAw
NTAyRTEgLyogSFRUUEhlYWRlck1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBIVFRQSGVhZGVyTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEI5MDU2MTUwRjI1NzhCRTAwOTVGRjZBIC8qIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQjkwNTYxNjBGMjU3OEJF
MDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDk4NCw2ICs0OTg3LDcgQEAKIAkJMEI5MDU2MTgwRjI1NzhCRTAw
OTVGRjZBIC8qIFRocmVhZGFibGVMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwQjkwNTYxRDBGMjU3RTkzMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxvYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRhYmxlTG9hZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEJBNUQzODUwRjI0MEZCNDAwOUI4
NzBCIC8qIEdlbmVyaWNXb3JrZXJUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdlbmVyaWNXb3JrZXJUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBC
QjREQkUxMEYyRUUyOTgwMDM1NDYxOSAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcm9zc1RocmVhZENvcGllci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBCRTAzMEExMEYzMTEyRkIwMDNDMUE0NiAvKiBSZW5k
ZXJMaW5lQm94TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJM
aW5lQm94TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU2MDI4RDBFNEI3
NjU4MDA2NUIwMzggLyogUmVuZGVyTWFycXVlZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJNYXJxdWVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NTYwMjhFMEU0Qjc2NTgwMDY1QjAzOCAvKiBSZW5kZXJNYXJxdWVlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlck1hcnF1ZWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTQyMzYsNiArMTQyNDAsOCBAQAogCQkJCTg1MDg5Q0M3MEE5OEMy
MjYwMEEyNzVBQSAvKiBDb21tZW50LmlkbCAqLywKIAkJCQlBODE4NzIxNDA5NzdEM0MwMDA1ODI2
RDkgLyogQ29udGFpbmVyTm9kZS5jcHAgKi8sCiAJCQkJQTgxODcyMTEwOTc3RDNDMDAwNTgyNkQ5
IC8qIENvbnRhaW5lck5vZGUuaCAqLywKKwkJCQkwQkI0REJFMTBGMkVFMjk4MDAzNTQ2MTkgLyog
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovLAorCQkJCTBCNENFN0RBMEYyRTRCREUwMEY2RUMwNCAv
KiBDcm9zc1RocmVhZENvcGllci5oICovLAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAv
KiBET01Db3JlRXhjZXB0aW9uLmggKi8sCiAJCQkJQkM2MEQ2RUIwRDI4RDk5OTAwQjk5MThGIC8q
IERPTUNvcmVFeGNlcHRpb24uaWRsICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAv
KiBET01JbXBsZW1lbnRhdGlvbi5jcHAgKi8sCkBAIC0xNDYwOSw2ICsxNDYxNSw3IEBACiAJCQkJ
OTM5MkYxNEMwQUQxODYxQjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlEMEIwNTU2ODA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNEM3NjZFMENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwQjRDRTdEQjBGMkU0QkRFMDBGNkVDMDQgLyogQ3Jvc3NUaHJl
YWRDb3BpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTJGMDgyNDVFNTkwMDFFOUFCQyAv
KiBDdXJzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3MkEyMEU4MkU4N0MwMEU3Rjk3NSAv
KiBDdXJzb3JEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzIyNzJBRDBFODJFOEYzMDBFN0Y5
NzUgLyogQ3Vyc29yTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzA2NCw2ICsxNzA3MSw3IEBA
CiAJCQkJOTM5MkYxNTAwQUQxODYyMzAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUQwQjA1NTY5MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY2RDBDRTkyM0ExMDA3RUYzQ0QgLyogQ3Jl
ZGVudGlhbC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwQkI0REJFMjBGMkVFMjk4MDAzNTQ2MTkg
LyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBMjYwODI0
NUU1OTAwMUU5QUJDIC8qIEN1cnNvck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUIyRjM0RkU5
MEU4MkY4MjcwMEY2MjdDRCAvKiBETlNDRk5ldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzFB
MzdBRTA5N0M3MTVGMDAxOUYzRDggLyogRE9NLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbCBiL1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmts
CmluZGV4IGRmMDE1MTMuLmQ4NTdhOTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZVNvdXJj
ZXMuYmtsCisrKyBiL1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCkBAIC0zOTcsNiArMzk3LDcg
QEAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBsaXN0IG9mIGZpbGVzIG5lZWRlZCB0byBidWlsZCBX
ZWJDb3JlLgogICAgICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuY3BwCiAgICAgICAgIGRvbS9Db21t
ZW50LmNwcAogICAgICAgICBkb20vQ29udGFpbmVyTm9kZS5jcHAKKyAgICAgICAgZG9tL0Nyb3Nz
VGhyZWFkQ29waWVyLmNwcAogICAgICAgICBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCiAgICAg
ICAgIGRvbS9ET01TdHJpbmdMaXN0LmNwcAogICAgICAgICBkb20vRG9jdW1lbnQuY3BwCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9XZWJDb3JlL2RvbS9D
cm9zc1RocmVhZENvcGllci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MjdhZGYzYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL0Nyb3NzVGhyZWFkQ29waWVy
LmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdP
UktFUlMpCisKKyNpbmNsdWRlICJDcm9zc1RocmVhZENvcGllci5oIgorCisjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0Nyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgU3RyaW5nPjo6VHlw
ZSBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIFN0cmluZz46OmNvcHkoY29uc3QgU3RyaW5n
JiBzdHIpCit7CisgICAgcmV0dXJuIHN0ci5jb3B5KCk7Cit9CisKK0Nyb3NzVGhyZWFkQ29waWVy
QmFzZTxmYWxzZSwgUmVzb3VyY2VFcnJvcj46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZh
bHNlLCBSZXNvdXJjZUVycm9yPjo6Y29weShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sK
KyAgICByZXR1cm4gZXJyb3IuY29weSgpOworfQorCitDcm9zc1RocmVhZENvcGllckJhc2U8ZmFs
c2UsIFJlc291cmNlUmVxdWVzdD46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBS
ZXNvdXJjZVJlcXVlc3Q+Ojpjb3B5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sK
KyAgICByZXR1cm4gcmVxdWVzdC5jb3B5RGF0YSgpOworfQorCitDcm9zc1RocmVhZENvcGllckJh
c2U8ZmFsc2UsIFJlc291cmNlUmVzcG9uc2U+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxm
YWxzZSwgUmVzb3VyY2VSZXNwb25zZT46OmNvcHkoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit7CisgICAgcmV0dXJuIHJlc3BvbnNlLmNvcHlEYXRhKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vQ3Jvc3NUaHJlYWRDb3BpZXIuaCBiL1dlYkNvcmUvZG9tL0Nyb3NzVGhyZWFk
Q29waWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQ4ZTY5ZAotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTAsMCAr
MSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgQ3Jvc3NUaHJlYWRDb3BpZXJfaAorI2RlZmluZSBDcm9zc1RocmVhZENv
cGllcl9oCisKKyNpZiBFTkFCTEUoV09SS0VSUykKKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNs
dWRlIDx3dGYvVHlwZVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFz
cyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhOworICAgIGNsYXNzIENyb3NzVGhyZWFk
UmVzb3VyY2VSZXF1ZXN0RGF0YTsKKyAgICBjbGFzcyBSZXNvdXJjZUVycm9yOworICAgIGNsYXNz
IFJlc291cmNlUmVxdWVzdDsKKyAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworICAgIGNsYXNz
IFN0cmluZzsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENv
cGllclBhc3NUaHJvdWdoIHsKKyAgICAgICAgdHlwZWRlZiBUIFR5cGU7CisgICAgICAgIHN0YXRp
YyBUeXBlIGNvcHkoY29uc3QgVCYgcGFyYW1ldGVyKQorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gcGFyYW1ldGVyOworICAgICAgICB9CisgICAgfTsKKworICAgIHRlbXBsYXRlPGJvb2wg
aXNDb252ZXJ0aWJsZVRvSW50ZWdlciwgdHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29w
aWVyQmFzZTsKKworICAgIC8vIEludGVnZXJzIGdldCBwYXNzZWQgdGhyb3VnaCB3aXRob3V0IGFu
eSBjaGFuZ2VzLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENv
cGllckJhc2U8dHJ1ZSwgVD4gOiBwdWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhyb3VnaDxU
PiB7CisgICAgfTsKKworICAgIC8vIFBvaW50ZXJzIGdldCBwYXNzZWQgdGhyb3VnaCB3aXRob3V0
IGFueSBzaWduaWZpY2FudCBjaGFuZ2VzLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIFQqPiA6IHB1YmxpYyBDcm9zc1RocmVhZENv
cGllclBhc3NUaHJvdWdoPHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3RWb2xhdGlsZTxUKj46OlR5
cGU+IHsKKyAgICB9OworCisgICAgLy8gQ3VzdG9tIGNvcHkgbWV0aG9kcy4KKyAgICB0ZW1wbGF0
ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIFN0cmluZz4geworICAgICAg
ICB0eXBlZGVmIFN0cmluZyBUeXBlOworICAgICAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFN0
cmluZyYpOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGll
ckJhc2U8ZmFsc2UsIFJlc291cmNlRXJyb3I+IHsKKyAgICAgICAgdHlwZWRlZiBSZXNvdXJjZUVy
cm9yIFR5cGU7CisgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VFcnJvciYp
OworICAgIH07CisKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8
ZmFsc2UsIFJlc291cmNlUmVxdWVzdD4geworICAgICAgICB0eXBlZGVmIHN0ZDo6YXV0b19wdHI8
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBUeXBlOworICAgICAgICBzdGF0aWMgVHlw
ZSBjb3B5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTw+
IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIFJlc291cmNlUmVzcG9uc2U+IHsK
KyAgICAgICAgdHlwZWRlZiBzdGQ6OmF1dG9fcHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25z
ZURhdGE+IFR5cGU7CisgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NU
aHJlYWRDb3BpZXIgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPFdURjo6SXNDb252ZXJ0
aWJsZVRvSW50ZWdlcjxUPjo6dmFsdWUsIFQ+IHsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKKworI2VuZGlmIC8vIENyb3NzVGhy
ZWFkQ29waWVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0dlbmVyaWNXb3JrZXJUYXNrLmgg
Yi9XZWJDb3JlL2RvbS9HZW5lcmljV29ya2VyVGFzay5oCmluZGV4IDc5ZmQxNDguLmVkZTY0ZTAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0dlbmVyaWNXb3JrZXJUYXNrLmgKKysrIGIvV2ViQ29y
ZS9kb20vR2VuZXJpY1dvcmtlclRhc2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMzLDQwICszMywyMjIgQEAKIAogI2lmIEVOQUJM
RShXT1JLRVJTKQogCi0jaW5jbHVkZSAiV29ya2VyTWVzc2FnaW5nUHJveHkuaCIKKyNpbmNsdWRl
ICJDcm9zc1RocmVhZENvcGllci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKKyNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvVHlwZVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3Mg
R2VuZXJpY1dvcmtlclRhc2tCYXNlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRh
c2sgewotICAgIHByb3RlY3RlZDoKLSAgICAgICAgR2VuZXJpY1dvcmtlclRhc2tCYXNlKFdvcmtl
ck1lc3NhZ2luZ1Byb3h5KiBtZXNzYWdpbmdQcm94eSkgOiBtX21lc3NhZ2luZ1Byb3h5KG1lc3Nh
Z2luZ1Byb3h5KQorCisgICAgLy8gVHJhaXRzIGZvciB0aGUgR2VuZXJpY1dvcmtlclRhc2suCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzIHsK
KyAgICAgICAgdHlwZWRlZiBjb25zdCBUJiBQYXJhbVR5cGU7CisgICAgfTsKKworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBHZW5lcmljV29ya2VyVGFza1RyYWl0czx0eXBlbmFtZSBX
VEY6OlJlbW92ZUNvbnN0Vm9sYXRpbGU8VCo+OjpUeXBlPiB7CisgICAgICAgIHR5cGVkZWYgVCog
UGFyYW1UeXBlOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgR2Vu
ZXJpY1dvcmtlclRhc2tUcmFpdHM8c3RkOjphdXRvX3B0cjxUPiA+IHsKKyAgICAgICAgdHlwZWRl
ZiBzdGQ6OmF1dG9fcHRyPFQ+IFBhcmFtVHlwZTsKKyAgICB9OworCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgUDEsIHR5cGVuYW1lIE1QMT4KKyAgICBjbGFzcyBHZW5lcmljV29ya2VyVGFzazEgOiBw
dWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7CisgICAgcHVibGljOgorICAgICAg
ICB0eXBlZGVmIHZvaWQgKCpNZXRob2QpKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNUDEpOwor
ICAgICAgICB0eXBlZGVmIEdlbmVyaWNXb3JrZXJUYXNrMTxQMSwgTVAxPiBHZW5lcmljV29ya2Vy
VGFzazsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQ
MT46OlBhcmFtVHlwZSBQYXJhbTE7CisKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8R2VuZXJp
Y1dvcmtlclRhc2s+IGNyZWF0ZShNZXRob2QgbWV0aG9kLCBQYXJhbTEgcGFyYW1ldGVyMSkKICAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmljV29ya2VyVGFz
ayhtZXRob2QsIHBhcmFtZXRlcjEpKTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgY2FuUGVy
Zm9ybVRhc2soKQorICAgIHByaXZhdGU6CisgICAgICAgIEdlbmVyaWNXb3JrZXJUYXNrMShNZXRo
b2QgbWV0aG9kLCBQYXJhbTEgcGFyYW1ldGVyMSkKKyAgICAgICAgICAgIDogbV9tZXRob2QobWV0
aG9kKQorICAgICAgICAgICAgLCBtX3BhcmFtZXRlcjEocGFyYW1ldGVyMSkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuICFtX21lc3NhZ2luZ1Byb3h5LT5hc2tlZFRvVGVybWluYXRlKCk7
CiAgICAgICAgIH0KIAotICAgICAgICBXb3JrZXJNZXNzYWdpbmdQcm94eSogbV9tZXNzYWdpbmdQ
cm94eTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgICgqbV9tZXRob2QpKGNvbnRl
eHQsIG1fcGFyYW1ldGVyMSk7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIE1l
dGhvZCBtX21ldGhvZDsKKyAgICAgICAgUDEgbV9wYXJhbWV0ZXIxOworICAgIH07CisKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUg
TVAyPgorICAgIGNsYXNzIEdlbmVyaWNXb3JrZXJUYXNrMiA6IHB1YmxpYyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpUYXNrIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdm9pZCAoKk1l
dGhvZCkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1QMSwgTVAyKTsKKyAgICAgICAgdHlwZWRl
ZiBHZW5lcmljV29ya2VyVGFzazI8UDEsIE1QMSwgUDIsIE1QMj4gR2VuZXJpY1dvcmtlclRhc2s7
CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8UDE+OjpQ
YXJhbVR5cGUgUGFyYW0xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJU
YXNrVHJhaXRzPFAyPjo6UGFyYW1UeXBlIFBhcmFtMjsKKworICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxHZW5lcmljV29ya2VyVGFzaz4gY3JlYXRlKE1ldGhvZCBtZXRob2QsIFBhcmFtMSBwYXJh
bWV0ZXIxLCBQYXJhbTIgcGFyYW1ldGVyMikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBHZW5lcmljV29ya2VyVGFzayhtZXRob2QsIHBhcmFtZXRlcjEsIHBhcmFt
ZXRlcjIpKTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgR2VuZXJpY1dvcmtl
clRhc2syKE1ldGhvZCBtZXRob2QsIFBhcmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFyYW1ldGVy
MikKKyAgICAgICAgICAgIDogbV9tZXRob2QobWV0aG9kKQorICAgICAgICAgICAgLCBtX3BhcmFt
ZXRlcjEocGFyYW1ldGVyMSkKKyAgICAgICAgICAgICwgbV9wYXJhbWV0ZXIyKHBhcmFtZXRlcjIp
CisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFz
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgICAgICB7CisgICAgICAgICAg
ICAoKm1fbWV0aG9kKShjb250ZXh0LCBtX3BhcmFtZXRlcjEsIG1fcGFyYW1ldGVyMik7CisgICAg
ICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIE1ldGhvZCBtX21ldGhvZDsKKyAgICAgICAg
UDEgbV9wYXJhbWV0ZXIxOworICAgICAgICBQMiBtX3BhcmFtZXRlcjI7CisgICAgfTsKKworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFt
ZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDM+CisgICAgY2xhc3MgR2VuZXJpY1dvcmtl
clRhc2szIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgeworICAgIHB1Ymxp
YzoKKyAgICAgICAgdHlwZWRlZiB2b2lkICgqTWV0aG9kKShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgTVAxLCBNUDIsIE1QMyk7CisgICAgICAgIHR5cGVkZWYgR2VuZXJpY1dvcmtlclRhc2szPFAx
LCBNUDEsIFAyLCBNUDIsIFAzLCBNUDM+IEdlbmVyaWNXb3JrZXJUYXNrOworICAgICAgICB0eXBl
ZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFAxPjo6UGFyYW1UeXBlIFBhcmFt
MTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQMj46
OlBhcmFtVHlwZSBQYXJhbTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtl
clRhc2tUcmFpdHM8UDM+OjpQYXJhbVR5cGUgUGFyYW0zOworCisgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEdlbmVyaWNXb3JrZXJUYXNrPiBjcmVhdGUoTWV0aG9kIG1ldGhvZCwgUGFyYW0xIHBh
cmFtZXRlcjEsIFBhcmFtMiBwYXJhbWV0ZXIyLCBQYXJhbTMgcGFyYW1ldGVyMykKKyAgICAgICAg
eworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmljV29ya2VyVGFzayhtZXRo
b2QsIHBhcmFtZXRlcjEsIHBhcmFtZXRlcjIsIHBhcmFtZXRlcjMpKTsKKyAgICAgICAgfQorCisg
ICAgcHJpdmF0ZToKKyAgICAgICAgR2VuZXJpY1dvcmtlclRhc2szKE1ldGhvZCBtZXRob2QsIFBh
cmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFyYW1ldGVyMiwgUGFyYW0zIHBhcmFtZXRlcjMpCisg
ICAgICAgICAgICA6IG1fbWV0aG9kKG1ldGhvZCkKKyAgICAgICAgICAgICwgbV9wYXJhbWV0ZXIx
KHBhcmFtZXRlcjEpCisgICAgICAgICAgICAsIG1fcGFyYW1ldGVyMihwYXJhbWV0ZXIyKQorICAg
ICAgICAgICAgLCBtX3BhcmFtZXRlcjMocGFyYW1ldGVyMykKKyAgICAgICAgeworICAgICAgICB9
CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgICgqbV9tZXRob2QpKGNvbnRleHQs
IG1fcGFyYW1ldGVyMSwgbV9wYXJhbWV0ZXIyLCBtX3BhcmFtZXRlcjMpOworICAgICAgICB9CisK
KyAgICBwcml2YXRlOgorICAgICAgICBNZXRob2QgbV9tZXRob2Q7CisgICAgICAgIFAxIG1fcGFy
YW1ldGVyMTsKKyAgICAgICAgUDIgbV9wYXJhbWV0ZXIyOworICAgICAgICBQMyBtX3BhcmFtZXRl
cjM7CisgICAgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5
cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVu
YW1lIFA0LCB0eXBlbmFtZSBNUDQ+CisgICAgY2xhc3MgR2VuZXJpY1dvcmtlclRhc2s0IDogcHVi
bGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgeworICAgIHB1YmxpYzoKKyAgICAgICAg
dHlwZWRlZiB2b2lkICgqTWV0aG9kKShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTVAxLCBNUDIs
IE1QMywgTVA0KTsKKyAgICAgICAgdHlwZWRlZiBHZW5lcmljV29ya2VyVGFzazQ8UDEsIE1QMSwg
UDIsIE1QMiwgUDMsIE1QMywgUDQsIE1QND4gR2VuZXJpY1dvcmtlclRhc2s7CisgICAgICAgIHR5
cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8UDE+OjpQYXJhbVR5cGUgUGFy
YW0xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFAy
Pjo6UGFyYW1UeXBlIFBhcmFtMjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29y
a2VyVGFza1RyYWl0czxQMz46OlBhcmFtVHlwZSBQYXJhbTM7CisgICAgICAgIHR5cGVkZWYgdHlw
ZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8UDQ+OjpQYXJhbVR5cGUgUGFyYW00OworCisg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyaWNXb3JrZXJUYXNrPiBjcmVhdGUoTWV0aG9k
IG1ldGhvZCwgUGFyYW0xIHBhcmFtZXRlcjEsIFBhcmFtMiBwYXJhbWV0ZXIyLCBQYXJhbTMgcGFy
YW1ldGVyMywgUGFyYW00IHBhcmFtZXRlcjQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgR2VuZXJpY1dvcmtlclRhc2sobWV0aG9kLCBwYXJhbWV0ZXIxLCBwYXJh
bWV0ZXIyLCBwYXJhbWV0ZXIzLCBwYXJhbWV0ZXI0KSk7CisgICAgICAgIH0KKworICAgIHByaXZh
dGU6CisgICAgICAgIEdlbmVyaWNXb3JrZXJUYXNrNChNZXRob2QgbWV0aG9kLCBQYXJhbTEgcGFy
YW1ldGVyMSwgUGFyYW0yIHBhcmFtZXRlcjIsIFBhcmFtMyBwYXJhbWV0ZXIzLCBQYXJhbTQgcGFy
YW1ldGVyNCkKKyAgICAgICAgICAgIDogbV9tZXRob2QobWV0aG9kKQorICAgICAgICAgICAgLCBt
X3BhcmFtZXRlcjEocGFyYW1ldGVyMSkKKyAgICAgICAgICAgICwgbV9wYXJhbWV0ZXIyKHBhcmFt
ZXRlcjIpCisgICAgICAgICAgICAsIG1fcGFyYW1ldGVyMyhwYXJhbWV0ZXIzKQorICAgICAgICAg
ICAgLCBtX3BhcmFtZXRlcjQocGFyYW1ldGVyNCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgICgqbV9tZXRob2QpKGNvbnRleHQsIG1fcGFy
YW1ldGVyMSwgbV9wYXJhbWV0ZXIyLCBtX3BhcmFtZXRlcjMsIG1fcGFyYW1ldGVyNCk7CisgICAg
ICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIE1ldGhvZCBtX21ldGhvZDsKKyAgICAgICAg
UDEgbV9wYXJhbWV0ZXIxOworICAgICAgICBQMiBtX3BhcmFtZXRlcjI7CisgICAgICAgIFAzIG1f
cGFyYW1ldGVyMzsKKyAgICAgICAgUDQgbV9wYXJhbWV0ZXI0OworICAgIH07CisKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAy
LCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0LCB0
eXBlbmFtZSBQNSwgdHlwZW5hbWUgTVA1PgorICAgIGNsYXNzIEdlbmVyaWNXb3JrZXJUYXNrNSA6
IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIHR5cGVkZWYgdm9pZCAoKk1ldGhvZCkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1QMSwg
TVAyLCBNUDMsIE1QNCwgTVA1KTsKKyAgICAgICAgdHlwZWRlZiBHZW5lcmljV29ya2VyVGFzazU8
UDEsIE1QMSwgUDIsIE1QMiwgUDMsIE1QMywgUDQsIE1QNCwgUDUsIE1QNT4gR2VuZXJpY1dvcmtl
clRhc2s7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8
UDE+OjpQYXJhbVR5cGUgUGFyYW0xOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNX
b3JrZXJUYXNrVHJhaXRzPFAyPjo6UGFyYW1UeXBlIFBhcmFtMjsKKyAgICAgICAgdHlwZWRlZiB0
eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQMz46OlBhcmFtVHlwZSBQYXJhbTM7Cisg
ICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8UDQ+OjpQYXJh
bVR5cGUgUGFyYW00OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNr
VHJhaXRzPFA1Pjo6UGFyYW1UeXBlIFBhcmFtNTsKKworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxHZW5lcmljV29ya2VyVGFzaz4gY3JlYXRlKE1ldGhvZCBtZXRob2QsIFBhcmFtMSBwYXJhbWV0
ZXIxLCBQYXJhbTIgcGFyYW1ldGVyMiwgUGFyYW0zIHBhcmFtZXRlcjMsIFBhcmFtNCBwYXJhbWV0
ZXI0LCBQYXJhbTUgcGFyYW1ldGVyNSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBHZW5lcmljV29ya2VyVGFzayhtZXRob2QsIHBhcmFtZXRlcjEsIHBhcmFtZXRl
cjIsIHBhcmFtZXRlcjMsIHBhcmFtZXRlcjQsIHBhcmFtZXRlcjUpKTsKKyAgICAgICAgfQorCisg
ICAgcHJpdmF0ZToKKyAgICAgICAgR2VuZXJpY1dvcmtlclRhc2s1KE1ldGhvZCBtZXRob2QsIFBh
cmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFyYW1ldGVyMiwgUGFyYW0zIHBhcmFtZXRlcjMsIFBh
cmFtNCBwYXJhbWV0ZXI0LCBQYXJhbTUgcGFyYW1ldGVyNSkKKyAgICAgICAgICAgIDogbV9tZXRo
b2QobWV0aG9kKQorICAgICAgICAgICAgLCBtX3BhcmFtZXRlcjEocGFyYW1ldGVyMSkKKyAgICAg
ICAgICAgICwgbV9wYXJhbWV0ZXIyKHBhcmFtZXRlcjIpCisgICAgICAgICAgICAsIG1fcGFyYW1l
dGVyMyhwYXJhbWV0ZXIzKQorICAgICAgICAgICAgLCBtX3BhcmFtZXRlcjQocGFyYW1ldGVyNCkK
KyAgICAgICAgICAgICwgbV9wYXJhbWV0ZXI1KHBhcmFtZXRlcjUpCisgICAgICAgIHsKKyAgICAg
ICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0KQorICAgICAgICB7CisgICAgICAgICAgICAoKm1fbWV0aG9kKShjb250
ZXh0LCBtX3BhcmFtZXRlcjEsIG1fcGFyYW1ldGVyMiwgbV9wYXJhbWV0ZXIzLCBtX3BhcmFtZXRl
cjQsIG1fcGFyYW1ldGVyNSk7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIE1l
dGhvZCBtX21ldGhvZDsKKyAgICAgICAgUDEgbV9wYXJhbWV0ZXIxOworICAgICAgICBQMiBtX3Bh
cmFtZXRlcjI7CisgICAgICAgIFAzIG1fcGFyYW1ldGVyMzsKKyAgICAgICAgUDQgbV9wYXJhbWV0
ZXI0OworICAgICAgICBQNSBtX3BhcmFtZXRlcjU7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVu
YW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBNUDQsIHR5cGVuYW1l
IFA1LCB0eXBlbmFtZSBNUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBNUDY+Ci0gICAgY2xhc3Mg
R2VuZXJpY1dvcmtlclRhc2s2IDogcHVibGljIEdlbmVyaWNXb3JrZXJUYXNrQmFzZSB7CisgICAg
Y2xhc3MgR2VuZXJpY1dvcmtlclRhc2s2IDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2sgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiB2b2lkICgqTWV0aG9kKShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUsIE1QNik7CiAgICAg
ICAgIHR5cGVkZWYgR2VuZXJpY1dvcmtlclRhc2s2PFAxLCBNUDEsIFAyLCBNUDIsIFAzLCBNUDMs
IFA0LCBNUDQsIFA1LCBNUDUsIFA2LCBNUDY+IEdlbmVyaWNXb3JrZXJUYXNrOworICAgICAgICB0
eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFAxPjo6UGFyYW1UeXBlIFBh
cmFtMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQ
Mj46OlBhcmFtVHlwZSBQYXJhbTI7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dv
cmtlclRhc2tUcmFpdHM8UDM+OjpQYXJhbVR5cGUgUGFyYW0zOworICAgICAgICB0eXBlZGVmIHR5
cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFA0Pjo6UGFyYW1UeXBlIFBhcmFtNDsKKyAg
ICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQNT46OlBhcmFt
VHlwZSBQYXJhbTU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tU
cmFpdHM8UDY+OjpQYXJhbVR5cGUgUGFyYW02OwogCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEdlbmVyaWNXb3JrZXJUYXNrPiBjcmVhdGUoV29ya2VyTWVzc2FnaW5nUHJveHkqIG1lc3NhZ2lu
Z1Byb3h5LCBNZXRob2QgbWV0aG9kLCBjb25zdCBQMSYgcGFyYW1ldGVyMSwgY29uc3QgUDImIHBh
cmFtZXRlcjIsIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLCBjb25zdCBQNCYgcGFyYW1ldGVyNCwgY29u
c3QgUDUmIHBhcmFtZXRlcjUsIGNvbnN0IFA2JiBwYXJhbWV0ZXI2KQorICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxHZW5lcmljV29ya2VyVGFzaz4gY3JlYXRlKE1ldGhvZCBtZXRob2QsIFBhcmFt
MSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFyYW1ldGVyMiwgUGFyYW0zIHBhcmFtZXRlcjMsIFBhcmFt
NCBwYXJhbWV0ZXI0LCBQYXJhbTUgcGFyYW1ldGVyNSwgUGFyYW02IHBhcmFtZXRlcjYpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2VuZXJpY1dvcmtlclRhc2so
bWVzc2FnaW5nUHJveHksIG1ldGhvZCwgcGFyYW1ldGVyMSwgcGFyYW1ldGVyMiwgcGFyYW1ldGVy
MywgcGFyYW1ldGVyNCwgcGFyYW1ldGVyNSwgcGFyYW1ldGVyNikpOworICAgICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmljV29ya2VyVGFzayhtZXRob2QsIHBhcmFtZXRlcjEsIHBh
cmFtZXRlcjIsIHBhcmFtZXRlcjMsIHBhcmFtZXRlcjQsIHBhcmFtZXRlcjUsIHBhcmFtZXRlcjYp
KTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgR2VuZXJpY1dvcmtlclRhc2s2
KFdvcmtlck1lc3NhZ2luZ1Byb3h5KiBtZXNzYWdpbmdQcm94eSwgTWV0aG9kIG1ldGhvZCwgY29u
c3QgUDEmIHBhcmFtZXRlcjEsIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLCBjb25zdCBQMyYgcGFyYW1l
dGVyMywgY29uc3QgUDQmIHBhcmFtZXRlcjQsIGNvbnN0IFA1JiBwYXJhbWV0ZXI1LCBjb25zdCBQ
NiYgcGFyYW1ldGVyNikKLSAgICAgICAgICAgIDogR2VuZXJpY1dvcmtlclRhc2tCYXNlKG1lc3Nh
Z2luZ1Byb3h5KQotICAgICAgICAgICAgLCBtX21ldGhvZChtZXRob2QpCisgICAgICAgIEdlbmVy
aWNXb3JrZXJUYXNrNihNZXRob2QgbWV0aG9kLCBQYXJhbTEgcGFyYW1ldGVyMSwgUGFyYW0yIHBh
cmFtZXRlcjIsIFBhcmFtMyBwYXJhbWV0ZXIzLCBQYXJhbTQgcGFyYW1ldGVyNCwgUGFyYW01IHBh
cmFtZXRlcjUsIFBhcmFtNiBwYXJhbWV0ZXI2KQorICAgICAgICAgICAgOiBtX21ldGhvZChtZXRo
b2QpCiAgICAgICAgICAgICAsIG1fcGFyYW1ldGVyMShwYXJhbWV0ZXIxKQogICAgICAgICAgICAg
LCBtX3BhcmFtZXRlcjIocGFyYW1ldGVyMikKICAgICAgICAgICAgICwgbV9wYXJhbWV0ZXIzKHBh
cmFtZXRlcjMpCkBAIC03OCw4ICsyNjAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAg
ICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghY2FuUGVyZm9ybVRhc2soKSkKLSAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAoKm1fbWV0aG9kKShjb250ZXh0LCBtX3Bh
cmFtZXRlcjEsIG1fcGFyYW1ldGVyMiwgbV9wYXJhbWV0ZXIzLCBtX3BhcmFtZXRlcjQsIG1fcGFy
YW1ldGVyNSwgbV9wYXJhbWV0ZXI2KTsKICAgICAgICAgfQogCkBAIC05MywxMyArMjczLDEzNSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFA2IG1fcGFyYW1ldGVyNjsKICAgICB9Owog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5
cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVu
YW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1QNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1l
IE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1QNz4KKyAgICBjbGFzcyBHZW5lcmljV29ya2Vy
VGFzazcgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7CisgICAgcHVibGlj
OgorICAgICAgICB0eXBlZGVmIHZvaWQgKCpNZXRob2QpKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBNUDEsIE1QMiwgTVAzLCBNUDQsIE1QNSwgTVA2LCBNUDcpOworICAgICAgICB0eXBlZGVmIEdl
bmVyaWNXb3JrZXJUYXNrNzxQMSwgTVAxLCBQMiwgTVAyLCBQMywgTVAzLCBQNCwgTVA0LCBQNSwg
TVA1LCBQNiwgTVA2LCBQNywgTVA3PiBHZW5lcmljV29ya2VyVGFzazsKKyAgICAgICAgdHlwZWRl
ZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQMT46OlBhcmFtVHlwZSBQYXJhbTE7
CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8UDI+OjpQ
YXJhbVR5cGUgUGFyYW0yOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJU
YXNrVHJhaXRzPFAzPjo6UGFyYW1UeXBlIFBhcmFtMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFt
ZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQND46OlBhcmFtVHlwZSBQYXJhbTQ7CisgICAgICAg
IHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8UDU+OjpQYXJhbVR5cGUg
UGFyYW01OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRz
PFA2Pjo6UGFyYW1UeXBlIFBhcmFtNjsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmlj
V29ya2VyVGFza1RyYWl0czxQNz46OlBhcmFtVHlwZSBQYXJhbTc7CisKKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8R2VuZXJpY1dvcmtlclRhc2s+IGNyZWF0ZShNZXRob2QgbWV0aG9kLCBQYXJh
bTEgcGFyYW1ldGVyMSwgUGFyYW0yIHBhcmFtZXRlcjIsIFBhcmFtMyBwYXJhbWV0ZXIzLCBQYXJh
bTQgcGFyYW1ldGVyNCwgUGFyYW01IHBhcmFtZXRlcjUsIFBhcmFtNiBwYXJhbWV0ZXI2LCBQYXJh
bTcgcGFyYW1ldGVyNykKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBHZW5lcmljV29ya2VyVGFzayhtZXRob2QsIHBhcmFtZXRlcjEsIHBhcmFtZXRlcjIsIHBhcmFt
ZXRlcjMsIHBhcmFtZXRlcjQsIHBhcmFtZXRlcjUsIHBhcmFtZXRlcjYsIHBhcmFtZXRlcjcpKTsK
KyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgR2VuZXJpY1dvcmtlclRhc2s3KE1l
dGhvZCBtZXRob2QsIFBhcmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFyYW1ldGVyMiwgUGFyYW0z
IHBhcmFtZXRlcjMsIFBhcmFtNCBwYXJhbWV0ZXI0LCBQYXJhbTUgcGFyYW1ldGVyNSwgUGFyYW02
IHBhcmFtZXRlcjYsIFBhcmFtNyBwYXJhbWV0ZXI3KQorICAgICAgICAgICAgOiBtX21ldGhvZCht
ZXRob2QpCisgICAgICAgICAgICAsIG1fcGFyYW1ldGVyMShwYXJhbWV0ZXIxKQorICAgICAgICAg
ICAgLCBtX3BhcmFtZXRlcjIocGFyYW1ldGVyMikKKyAgICAgICAgICAgICwgbV9wYXJhbWV0ZXIz
KHBhcmFtZXRlcjMpCisgICAgICAgICAgICAsIG1fcGFyYW1ldGVyNChwYXJhbWV0ZXI0KQorICAg
ICAgICAgICAgLCBtX3BhcmFtZXRlcjUocGFyYW1ldGVyNSkKKyAgICAgICAgICAgICwgbV9wYXJh
bWV0ZXI2KHBhcmFtZXRlcjYpCisgICAgICAgICAgICAsIG1fcGFyYW1ldGVyNyhwYXJhbWV0ZXI3
KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRh
c2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICAgICAgeworICAgICAgICAg
ICAgKCptX21ldGhvZCkoY29udGV4dCwgbV9wYXJhbWV0ZXIxLCBtX3BhcmFtZXRlcjIsIG1fcGFy
YW1ldGVyMywgbV9wYXJhbWV0ZXI0LCBtX3BhcmFtZXRlcjUsIG1fcGFyYW1ldGVyNiwgbV9wYXJh
bWV0ZXI3KTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgTWV0aG9kIG1fbWV0
aG9kOworICAgICAgICBQMSBtX3BhcmFtZXRlcjE7CisgICAgICAgIFAyIG1fcGFyYW1ldGVyMjsK
KyAgICAgICAgUDMgbV9wYXJhbWV0ZXIzOworICAgICAgICBQNCBtX3BhcmFtZXRlcjQ7CisgICAg
ICAgIFA1IG1fcGFyYW1ldGVyNTsKKyAgICAgICAgUDYgbV9wYXJhbWV0ZXI2OworICAgICAgICBQ
NyBtX3BhcmFtZXRlcjc7CisgICAgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBl
bmFtZSBNUDE+CisgICAgUGFzc1JlZlB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiBj
cmVhdGVDYWxsYmFja1Rhc2soCisgICAgICAgIHZvaWQgKCptZXRob2QpKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBNUDEpLAorICAgICAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBHZW5lcmljV29ya2VyVGFzazE8dHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3Bp
ZXI8UDE+OjpUeXBlLCBNUDE+OjpjcmVhdGUoCisgICAgICAgICAgICBtZXRob2QsCisgICAgICAg
ICAgICBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSkpOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBl
bmFtZSBNUDI+CisgICAgUGFzc1JlZlB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiBj
cmVhdGVDYWxsYmFja1Rhc2soCisgICAgICAgIHZvaWQgKCptZXRob2QpKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBNUDEsIE1QMiksCisgICAgICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLCBjb25z
dCBQMiYgcGFyYW1ldGVyMikKKyAgICB7CisgICAgICAgIHJldHVybiBHZW5lcmljV29ya2VyVGFz
azI8dHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+OjpUeXBlLCBNUDEsIHR5cGVuYW1lIENy
b3NzVGhyZWFkQ29waWVyPFAyPjo6VHlwZSwgTVAyPjo6Y3JlYXRlKAorICAgICAgICAgICAgbWV0
aG9kLAorICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEp
LCBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMikpOworICAgIH0KKworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFt
ZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDM+CisgICAgUGFzc1JlZlB0cjxTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpUYXNrPiBjcmVhdGVDYWxsYmFja1Rhc2soCisgICAgICAgIHZvaWQg
KCptZXRob2QpKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNUDEsIE1QMiwgTVAzKSwKKyAgICAg
ICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLCBjb25zdCBQMyYg
cGFyYW1ldGVyMykKKyAgICB7CisgICAgICAgIHJldHVybiBHZW5lcmljV29ya2VyVGFzazM8dHlw
ZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+OjpUeXBlLCBNUDEsIHR5cGVuYW1lIENyb3NzVGhy
ZWFkQ29waWVyPFAyPjo6VHlwZSwgTVAyLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMz46
OlR5cGUsIE1QMz46OmNyZWF0ZSgKKyAgICAgICAgICAgIG1ldGhvZCwKKyAgICAgICAgICAgIENy
b3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSwgQ3Jvc3NUaHJlYWRDb3BpZXI8
UDI+Ojpjb3B5KHBhcmFtZXRlcjIpLAorICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+
Ojpjb3B5KHBhcmFtZXRlcjMpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQMSwg
dHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlw
ZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0PgorICAgIFBhc3NSZWZQdHI8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gY3JlYXRlQ2FsbGJhY2tUYXNrKAorICAgICAgICB2
b2lkICgqbWV0aG9kKShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTVAxLCBNUDIsIE1QMywgTVA0
KSwKKyAgICAgICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLCBj
b25zdCBQMyYgcGFyYW1ldGVyMywgY29uc3QgUDQmIHBhcmFtZXRlcjQpCisgICAgeworICAgICAg
ICByZXR1cm4gR2VuZXJpY1dvcmtlclRhc2s0PHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAx
Pjo6VHlwZSwgTVAxLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMj46OlR5cGUsIE1QMiwg
dHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+OjpUeXBlLCBNUDMsCisgICAgICAgICAgICB0
eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQND46OlR5cGUsIE1QND46OmNyZWF0ZSgKKyAgICAg
ICAgICAgICAgICBtZXRob2QsCisgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+
Ojpjb3B5KHBhcmFtZXRlcjEpLCBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVy
MiksCisgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRl
cjMpLCBDcm9zc1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1ldGVyNCkpOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBl
bmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFt
ZSBNUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBNUDU+CisgICAgUGFzc1JlZlB0cjxTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpUYXNrPiBjcmVhdGVDYWxsYmFja1Rhc2soCisgICAgICAgIHZvaWQg
KCptZXRob2QpKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNUDEsIE1QMiwgTVAzLCBNUDQsIE1Q
NSksCisgICAgICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLCBjb25zdCBQMiYgcGFyYW1ldGVyMiwg
Y29uc3QgUDMmIHBhcmFtZXRlcjMsIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LCBjb25zdCBQNSYgcGFy
YW1ldGVyNSkKKyAgICB7CisgICAgICAgIHJldHVybiBHZW5lcmljV29ya2VyVGFzazU8dHlwZW5h
bWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+OjpUeXBlLCBNUDEsIHR5cGVuYW1lIENyb3NzVGhyZWFk
Q29waWVyPFAyPjo6VHlwZSwgTVAyLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMz46OlR5
cGUsIE1QMywKKyAgICAgICAgICAgIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6VHlw
ZSwgTVA0LCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQNT46OlR5cGUsIE1QNT46OmNyZWF0
ZSgKKyAgICAgICAgICAgICAgICBtZXRob2QsCisgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRD
b3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLCBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHko
cGFyYW1ldGVyMiksCisgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5
KHBhcmFtZXRlcjMpLCBDcm9zc1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1ldGVyNCksCisg
ICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDU+Ojpjb3B5KHBhcmFtZXRlcjUpKTsK
KyAgICB9CisKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFt
ZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQ
NCwgdHlwZW5hbWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgTVA1LCB0eXBlbmFtZSBQNiwg
dHlwZW5hbWUgTVA2PgotICAgIFBhc3NSZWZQdHI8R2VuZXJpY1dvcmtlclRhc2s2PFAxLCBNUDEs
IFAyLCBNUDIsIFAzLCBNUDMsIFA0LCBNUDQsIFA1LCBNUDUsIFA2LCBNUDY+ID4gY3JlYXRlQ2Fs
bGJhY2tUYXNrKAotICAgICAgICBXb3JrZXJNZXNzYWdpbmdQcm94eSogbWVzc2FnaW5nUHJveHks
CisgICAgUGFzc1JlZlB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiBjcmVhdGVDYWxs
YmFja1Rhc2soCiAgICAgICAgIHZvaWQgKCptZXRob2QpKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBNUDEsIE1QMiwgTVAzLCBNUDQsIE1QNSwgTVA2KSwKICAgICAgICAgY29uc3QgUDEmIHBhcmFt
ZXRlcjEsIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLCBjb25zdCBQMyYgcGFyYW1ldGVyMywgY29uc3Qg
UDQmIHBhcmFtZXRlcjQsIGNvbnN0IFA1JiBwYXJhbWV0ZXI1LCBjb25zdCBQNiYgcGFyYW1ldGVy
NikKICAgICB7Ci0gICAgICAgIHJldHVybiBHZW5lcmljV29ya2VyVGFzazY8UDEsIE1QMSwgUDIs
IE1QMiwgUDMsIE1QMywgUDQsIE1QNCwgUDUsIE1QNSwgUDYsIE1QNj46OmNyZWF0ZShtZXNzYWdp
bmdQcm94eSwgbWV0aG9kLCBwYXJhbWV0ZXIxLCBwYXJhbWV0ZXIyLCBwYXJhbWV0ZXIzLCBwYXJh
bWV0ZXI0LCBwYXJhbWV0ZXI1LCBwYXJhbWV0ZXI2KTsKKyAgICAgICAgcmV0dXJuIEdlbmVyaWNX
b3JrZXJUYXNrNjx0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMT46OlR5cGUsIE1QMSwgdHlw
ZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+OjpUeXBlLCBNUDIsIHR5cGVuYW1lIENyb3NzVGhy
ZWFkQ29waWVyPFAzPjo6VHlwZSwgTVAzLAorICAgICAgICAgICAgdHlwZW5hbWUgQ3Jvc3NUaHJl
YWRDb3BpZXI8UDQ+OjpUeXBlLCBNUDQsIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFA1Pjo6
VHlwZSwgTVA1LCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQNj46OlR5cGUsIE1QNj46OmNy
ZWF0ZSgKKyAgICAgICAgICAgICAgICBtZXRob2QsCisgICAgICAgICAgICAgICAgQ3Jvc3NUaHJl
YWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRlcjEpLCBDcm9zc1RocmVhZENvcGllcjxQMj46OmNv
cHkocGFyYW1ldGVyMiksCisgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpj
b3B5KHBhcmFtZXRlcjMpLCBDcm9zc1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1ldGVyNCks
CisgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDU+Ojpjb3B5KHBhcmFtZXRlcjUp
LCBDcm9zc1RocmVhZENvcGllcjxQNj46OmNvcHkocGFyYW1ldGVyNikpOworICAgIH0KKworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFt
ZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBN
UDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBNUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBNUDYs
IHR5cGVuYW1lIFA3LCB0eXBlbmFtZSBNUDc+CisgICAgUGFzc1JlZlB0cjxTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpUYXNrPiBjcmVhdGVDYWxsYmFja1Rhc2soCisgICAgICAgIHZvaWQgKCptZXRo
b2QpKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNUDEsIE1QMiwgTVAzLCBNUDQsIE1QNSwgTVA2
LCBNUDcpLAorICAgICAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwgY29uc3QgUDImIHBhcmFtZXRl
cjIsIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLCBjb25zdCBQNCYgcGFyYW1ldGVyNCwgY29uc3QgUDUm
IHBhcmFtZXRlcjUsIGNvbnN0IFA2JiBwYXJhbWV0ZXI2LCBjb25zdCBQNyYgcGFyYW1ldGVyNykK
KyAgICB7CisgICAgICAgIHJldHVybiBHZW5lcmljV29ya2VyVGFzazc8dHlwZW5hbWUgQ3Jvc3NU
aHJlYWRDb3BpZXI8UDE+OjpUeXBlLCBNUDEsIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAy
Pjo6VHlwZSwgTVAyLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMz46OlR5cGUsIE1QMywK
KyAgICAgICAgICAgIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6VHlwZSwgTVA0LCB0
eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQNT46OlR5cGUsIE1QNSwgdHlwZW5hbWUgQ3Jvc3NU
aHJlYWRDb3BpZXI8UDY+OjpUeXBlLCBNUDYsCisgICAgICAgICAgICB0eXBlbmFtZSBDcm9zc1Ro
cmVhZENvcGllcjxQNz46OlR5cGUsIE1QNz46OmNyZWF0ZSgKKyAgICAgICAgICAgICAgICBtZXRo
b2QsCisgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5KHBhcmFtZXRl
cjEpLCBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCisgICAgICAgICAg
ICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLCBDcm9zc1RocmVh
ZENvcGllcjxQND46OmNvcHkocGFyYW1ldGVyNCksCisgICAgICAgICAgICAgICAgQ3Jvc3NUaHJl
YWRDb3BpZXI8UDU+Ojpjb3B5KHBhcmFtZXRlcjUpLCBDcm9zc1RocmVhZENvcGllcjxQNj46OmNv
cHkocGFyYW1ldGVyNiksCisgICAgICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDc+Ojpj
b3B5KHBhcmFtZXRlcjcpKTsKICAgICB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1dvcmtlckNvbnRleHQuY3BwIGIvV2ViQ29yZS9kb20vV29ya2Vy
Q29udGV4dC5jcHAKaW5kZXggZmU0NjQzZS4uOGVmMWI0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vV29ya2VyQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9kb20vV29ya2VyQ29udGV4dC5jcHAK
QEAgLTExMSwxOCArMTExLDE2IEBAIHZvaWQgV29ya2VyQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9u
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwKICAgICBtX3RocmVh
ZC0+bWVzc2FnaW5nUHJveHkoKS0+cG9zdFdvcmtlckV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxp
bmVOdW1iZXIsIHNvdXJjZVVSTCk7CiB9CiAKLXN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUYXNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIE1lc3NhZ2VEZXN0aW5hdGlvbiBkZXN0aW5h
dGlvbiwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCkKK3N0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFdvcmtlck1lc3NhZ2luZ1Byb3h5KiBtZXNzYWdpbmdQcm94eSwgTWVzc2FnZURlc3Rp
bmF0aW9uIGRlc3RpbmF0aW9uLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMKQogeworICAgIGlmIChtZXNzYWdpbmdQcm94eS0+YXNrZWRUb1Rlcm1p
bmF0ZSgpKQorICAgICAgICByZXR1cm47CiAgICAgY29udGV4dC0+YWRkTWVzc2FnZShkZXN0aW5h
dGlvbiwgc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0K
IAogdm9pZCBXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiBkZXN0
aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCkKIHsKLSAgICAvLyBjcmVhdGVDYWxsYmFja1Rhc2sgaGFzIHRvIGJlIGEgc2VwYXJhdGUg
c3RhdGVtZW50IGZyb20gcG9zdFRhc2tUb1BhcmVudENvbnRleHQgdG8gbWFrZSB0aGUgZGVzdHJ1
Y3RvcgotICAgIC8vIGZvciBtZXNzYWdlLmNvcHkoKSBnZXQgY2FsbGVkIGJlZm9yZSBwb3N0VGFz
a1RvUGFyZW50Q29udGV4dC4gIChJZiB0aGV5IGFyZSBvbmUgc3RhdGVtZW50LCB0aGUgZGVzdHJ1
Y3RvcgotICAgIC8vIGdldHMgY2FsbGVkIGFmdGVyIHBvc3RUYXNrVG9QYXJlbnRDb250ZXh0IHdo
aWNoIGNhdXNlcyBhIHJhY2UgY29uZGl0aW9uLikgCi0gICAgUmVmUHRyPFRhc2s+IHRhc2sgPSBj
cmVhdGVDYWxsYmFja1Rhc2sobV90aHJlYWQtPm1lc3NhZ2luZ1Byb3h5KCksICZhZGRNZXNzYWdl
VGFzaywgZGVzdGluYXRpb24sIHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UuY29weSgpLCBsaW5lTnVt
YmVyLCBzb3VyY2VVUkwuY29weSgpKTsKLSAgICBwb3N0VGFza1RvUGFyZW50Q29udGV4dCh0YXNr
LnJlbGVhc2UoKSk7CisgICAgcG9zdFRhc2tUb1BhcmVudENvbnRleHQoY3JlYXRlQ2FsbGJhY2tU
YXNrKCZhZGRNZXNzYWdlVGFzaywgbV90aHJlYWQtPm1lc3NhZ2luZ1Byb3h5KCksIGRlc3RpbmF0
aW9uLCBzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpKTsKIH0K
IAogdm9pZCBXb3JrZXJDb250ZXh0OjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3Qo
dW5zaWduZWQgbG9uZywgY29uc3QgU2NyaXB0U3RyaW5nJikKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmggYi9XZWJDb3JlL2RvbS9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5oCmluZGV4IGU3YmE4YTkuLjdmZGM4NzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1dv
cmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvV2ViQ29yZS9kb20vV29ya2VyTWVzc2FnaW5nUHJv
eHkuaApAQCAtNTcsMTcgKzU3LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCB3b3JrZXJPYmplY3REZXN0cm95ZWQoKTsKICAgICAgICAgdm9pZCB3b3JrZXJDb250ZXh0RGVz
dHJveWVkKCk7CiAKLSAgICAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKLQogICAgICAgICB2b2lkIGNv
bmZpcm1Xb3JrZXJUaHJlYWRNZXNzYWdlKGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KTsKICAgICAg
ICAgdm9pZCByZXBvcnRXb3JrZXJUaHJlYWRBY3Rpdml0eShib29sIGhhc1BlbmRpbmdBY3Rpdml0
eSk7CiAgICAgICAgIGJvb2wgd29ya2VyVGhyZWFkSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Q7
CiAKKyAgICAgICAgLy8gT25seSB1c2UgdGhlc2UgbWV0aG9kcyBvbiB0aGUgd29ya2VyIG9iamVj
dCB0aHJlYWQuCisgICAgICAgIHZvaWQgdGVybWluYXRlKCk7CisgICAgICAgIGJvb2wgYXNrZWRU
b1Rlcm1pbmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXNrZWRUb1Rlcm1pbmF0ZTsgfQorCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgZnJpZW5kIGNsYXNzIEdlbmVyaWNXb3JrZXJUYXNrQmFzZTsKICAg
ICAgICAgZnJpZW5kIGNsYXNzIE1lc3NhZ2VXb3JrZXJUYXNrOwogICAgICAgICBmcmllbmQgY2xh
c3MgV29ya2VyQ29udGV4dERlc3Ryb3llZFRhc2s7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBXb3Jr
ZXJFeGNlcHRpb25UYXNrOwogICAgICAgICBmcmllbmQgY2xhc3MgV29ya2VyVGhyZWFkQWN0aXZp
dHlSZXBvcnRUYXNrOwogCiAgICAgICAgIH5Xb3JrZXJNZXNzYWdpbmdQcm94eSgpOwpAQCAtNzUs
NyArNzUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgd29ya2VyQ29udGV4
dERlc3Ryb3llZEludGVybmFsKCk7CiAgICAgICAgIHZvaWQgcmVwb3J0V29ya2VyVGhyZWFkQWN0
aXZpdHlJbnRlcm5hbChib29sIGNvbmZpcm1pbmdNZXNzYWdlLCBib29sIGhhc1BlbmRpbmdBY3Rp
dml0eSk7CiAgICAgICAgIFdvcmtlciogd29ya2VyT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV93
b3JrZXJPYmplY3Q7IH0KLSAgICAgICAgYm9vbCBhc2tlZFRvVGVybWluYXRlKCkgeyByZXR1cm4g
bV9hc2tlZFRvVGVybWluYXRlOyB9CiAKICAgICAgICAgUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ+IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKICAgICAgICAgV29ya2VyKiBtX3dvcmtl
ck9iamVjdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27176</attachid>
            <date>2009-01-30 02:17:07 -0800</date>
            <delta_ts>2009-01-30 02:23:46 -0800</delta_ts>
            <desc>Part 2: Add the copying mechanisms and extra classes for GenericWorkerTasks.</desc>
            <filename>bug23618_part2.txt</filename>
            <type>text/plain</type>
            <size>41195</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTZlNDAyMS4uNzlhMTRhMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw1NyBAQAogMjAwOS0wMS0zMCAgRGF2aWQgTGV2aW4g
IDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQnVnIDIzNjE4OiBUZW1wbGF0ZWQgd29ya2VyIHRhc2tzIHNob3VsZCBi
ZSBtb3JlIGVycm9yIHByb29mIHRvIHVzZS4KKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxOD4KKworICAgICAgICBBZGQgdGhlIGdlbmVyaWMgd29y
a2VyIHRhc2tzIHRlbXBsYXRlcyBuZWVkZWQgZm9yIHRoZSBXb3JrZXJUaHJlYWRhYmxlTG9hZGVy
LgorCisgICAgICAgIE5vIG9ic2VydmFibGUgY2hhbmdlIGluIGJlaGF2aW9yLCBzbyBubyB0ZXN0
LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5wcm86Cisg
ICAgICAgICogV2ViQ29yZS5zY29uczoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViQ29yZVNvdXJjZXMuYmtsOgorICAgICAgICAqIGRvbS9Dcm9zc1RocmVhZENv
cGllci5jcHA6IEFkZGVkLgorICAgICAgICAqIGRvbS9Dcm9zc1RocmVhZENvcGllci5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyUGFzc1Rocm91Z2g6OmNvcHkp
OgorICAgICAgICAqIGRvbS9HZW5lcmljV29ya2VyVGFzay5oOgorICAgICAgICBTdG9wIGRvaW5n
IHRoZSBXb3JrZXJNZXNzYWdpbmdQcm94eTo6YXNrZWRUb1Rlcm1pbmF0ZSBjYWxsIGF1dG9tYXRp
Y2FsbHkKKyAgICAgICAgaW4gcGVyZm9ybVRhc2sgYmVjYXVzZSB3YXMgbm90IG9idmlvdXMgdGhh
dCBpdCB3b3VsZCBiZSBkb25lIGFuZCBub3QgYWx3YXlzIG5lZWRlZC4KKworICAgICAgICAoV2Vi
Q29yZTo6R2VuZXJpY1dvcmtlclRhc2sxOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2Vu
ZXJpY1dvcmtlclRhc2sxOjpHZW5lcmljV29ya2VyVGFzazEpOgorICAgICAgICAoV2ViQ29yZTo6
R2VuZXJpY1dvcmtlclRhc2sxOjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpHZW5l
cmljV29ya2VyVGFzazI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljV29ya2Vy
VGFzazI6OkdlbmVyaWNXb3JrZXJUYXNrMik6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljV29y
a2VyVGFzazI6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNXb3JrZXJU
YXNrMzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNXb3JrZXJUYXNrMzo6R2Vu
ZXJpY1dvcmtlclRhc2szKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNXb3JrZXJUYXNrMzo6
cGVyZm9ybVRhc2spOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY1dvcmtlclRhc2s0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY1dvcmtlclRhc2s0OjpHZW5lcmljV29ya2Vy
VGFzazQpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY1dvcmtlclRhc2s0OjpwZXJmb3JtVGFz
ayk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljV29ya2VyVGFzazU6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHZW5lcmljV29ya2VyVGFzazU6OkdlbmVyaWNXb3JrZXJUYXNrNSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHZW5lcmljV29ya2VyVGFzazU6OnBlcmZvcm1UYXNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdlbmVyaWNXb3JrZXJUYXNrNjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdlbmVyaWNXb3JrZXJUYXNrNjo6R2VuZXJpY1dvcmtlclRhc2s2KToKKyAgICAgICAgKFdl
YkNvcmU6OkdlbmVyaWNXb3JrZXJUYXNrNjo6cGVyZm9ybVRhc2spOgorICAgICAgICAoV2ViQ29y
ZTo6R2VuZXJpY1dvcmtlclRhc2s3OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJp
Y1dvcmtlclRhc2s3OjpHZW5lcmljV29ya2VyVGFzazcpOgorICAgICAgICAoV2ViQ29yZTo6R2Vu
ZXJpY1dvcmtlclRhc2s3OjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVD
YWxsYmFja1Rhc2spOgorICAgICAgICAqIGRvbS9Xb3JrZXJDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmFkZE1lc3NhZ2VUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRl
eHQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OmFza2VkVG9UZXJtaW5hdGUp
OgorCisyMDA5LTAxLTMwICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKwogICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgogCiAgICAgICAgIEJ1ZyAyMzYx
NjogVmFyaW91cyAidGVtcGxhdGUgaGVscGVycyIgc2hvdWxkIGJlIGNvbnNvbGlkYXRlZCBmcm9t
IGlzb2xhdGVkIGZpbGVzIGluIEphdmFTY3JpcHRDb3JlLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZjY0MTdiNS4uNzJj
NmU0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCkBAIC0yMTgzLDYgKzIxODMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBcCisJV2ViQ29yZS9kb20vQ3Jvc3NUaHJlYWRDb3Bp
ZXIuY3BwIFwKKwlXZWJDb3JlL2RvbS9Dcm9zc1RocmVhZENvcGllci5oIFwKIAlXZWJDb3JlL2Rv
bS9HZW5lcmljV29ya2VyVGFzay5oIFwKIAlXZWJDb3JlL2RvbS9Xb3JrZXIuY3BwIFwKIAlXZWJD
b3JlL2RvbS9Xb3JrZXIuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwppbmRleCAzMTg5Njk2Li5iMTk2MmMxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTU2OCw2ICs1Njgs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuY3BwIFwKICAgICBkb20v
Q29tbWVudC5jcHAgXAogICAgIGRvbS9Db250YWluZXJOb2RlLmNwcCBcCisgICAgZG9tL0Nyb3Nz
VGhyZWFkQ29waWVyLmNwcCBcCiAgICAgZG9tL0NTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9u
LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQu
Y3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5zY29ucyBiL1dlYkNvcmUvV2ViQ29y
ZS5zY29ucwppbmRleCBkMWY5MTYzLi4zYTEzNTAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUuc2NvbnMKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnNjb25zCkBAIC03OCw2ICs3OCw3IEBAIHNv
dXJjZXNbJ2RvbSddID0gWwogICAgICdkb20vQ2xpcGJvYXJkRXZlbnQuY3BwJywKICAgICAnZG9t
L0NvbW1lbnQuY3BwJywKICAgICAnZG9tL0NvbnRhaW5lck5vZGUuY3BwJywKKyAgICAnZG9tL0Ny
b3NzVGhyZWFkQ29waWVyLmNwcCcsCiAgICAgJ2RvbS9DU1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJh
dGlvbi5jcHAnLAogICAgICdkb20vRG9jdW1lbnQuY3BwJywKICAgICAnZG9tL0RvY3VtZW50RnJh
Z21lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDQ3MjVk
MDguLjk3ZWQxNTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMTEx
MTAsNiArMTExMTAsMjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5cZG9tXENyb3NzVGhyZWFkQ29waWVyLmNwcCINCisJCQkJPg0KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfUEdPfFdpbjMyIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCVdo
b2xlUHJvZ3JhbU9wdGltaXphdGlvbj0idHJ1ZSINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXENyb3NzVGhyZWFkQ29waWVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24u
Y3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjY5NDRkNC4uZTM1OGViZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMiw2ICsxMzIsNyBAQAog
CQkwOEU2RTBGMTBFRkY0MkJBMDAwMjlGQkYgLyogV01MRmllbGRTZXRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4RTZFMEVGMEVGRjQy
QkEwMDAyOUZCRiAvKiBXTUxGaWVsZFNldEVsZW1lbnQuY3BwICovOyB9OwogCQkwOEU2RTBGMjBF
RkY0MkJBMDAwMjlGQkYgLyogV01MRmllbGRTZXRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEU2RTBGMDBFRkY0MkJBMDAwMjlGQkYgLyog
V01MRmllbGRTZXRFbGVtZW50LmggKi87IH07CiAJCTBBNDg0NDk5MENBNDRDQjIwMEI3QkQ0OCAv
KiBTb2Z0TGlua2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEE0ODQ0OTgwQ0E0NENCMjAwQjdCRDQ4IC8qIFNvZnRMaW5raW5nLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEI0Q0U3REIwRjJFNEJE
RTAwRjZFQzA0IC8qIENyb3NzVGhyZWFkQ29waWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjRDRTdEQTBGMkU0QkRFMDBGNkVDMDQgLyogQ3Jvc3NU
aHJlYWRDb3BpZXIuaCAqLzsgfTsKIAkJMEI4QzU2RDQwRjI4NjI3RjAwMDUwMkUxIC8qIEhUVFBI
ZWFkZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEI4QzU2RDMwRjI4NjI3RjAwMDUwMkUxIC8qIEhUVFBIZWFkZXJNYXAuY3BwICovOyB9Owog
CQkwQjkwNTYxOTBGMjU3OEJFMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBCOTA1NjE1
MEYyNTc4QkUwMDk1RkY2QSAvKiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwICovOyB9Owog
CQkwQjkwNTYxQTBGMjU3OEJGMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjkwNTYxNjBG
MjU3OEJFMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKQEAgLTEzOSw2ICsxNDAsNyBAQAogCQkwQjkwNTYx
QzBGMjU3OEJGMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEI5MDU2MTgwRjI1NzhCRTAwOTVG
RjZBIC8qIFRocmVhZGFibGVMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9ICgpOyB9OyB9OwogCQkwQjkwNTYxRTBGMjU3RTkzMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxv
YWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
QjkwNTYxRDBGMjU3RTkzMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxvYWRlci5jcHAgKi87IH07CiAJ
CTBCQTVEMzg2MEYyNDBGQjQwMDlCODcwQiAvKiBHZW5lcmljV29ya2VyVGFzay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEJBNUQzODUwRjI0MEZCNDAw
OUI4NzBCIC8qIEdlbmVyaWNXb3JrZXJUYXNrLmggKi87IH07CisJCTBCQjREQkUyMEYyRUUyOTgw
MDM1NDYxOSAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQkI0REJFMTBGMkVFMjk4MDAzNTQ2MTkgLyogQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwICovOyB9OwogCQkwQkUwMzBBMjBGMzExMkZCMDAzQzFBNDYgLyogUmVu
ZGVyTGluZUJveExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBCRTAzMEExMEYzMTEyRkIwMDNDMUE0NiAvKiBSZW5kZXJMaW5lQm94TGlzdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTYwMjhG
MEU0Qjc2NTgwMDY1QjAzOCAvKiBSZW5kZXJNYXJxdWVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2MDI4RDBFNEI3NjU4MDA2NUIwMzggLyogUmVu
ZGVyTWFycXVlZS5oICovOyB9OwogCQkwRjU2MDI5MDBFNEI3NjU4MDA2NUIwMzggLyogUmVuZGVy
TWFycXVlZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjU2MDI4RTBFNEI3NjU4MDA2NUIwMzggLyogUmVuZGVyTWFycXVlZS5jcHAgKi87IH07CkBA
IC00OTc4LDYgKzQ5ODAsNyBAQAogCQkwOEZCODRCMDBFQ0UzNzMzMDBEQzA2NEUgLyogV01MRWxl
bWVudEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV01M
RWxlbWVudEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwOEZCODRC
MTBFQ0UzNzMzMDBEQzA2NEUgLyogV01MRWxlbWVudEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV01MRWxlbWVudEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEE0ODQ0OTgwQ0E0NENCMjAwQjdCRDQ4IC8qIFNvZnRMaW5raW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvZnRMaW5raW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBCNENFN0RBMEYyRTRCREUwMEY2RUMwNCAvKiBDcm9zc1RocmVh
ZENvcGllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZENv
cGllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQjhDNTZEMzBGMjg2MjdGMDAw
NTAyRTEgLyogSFRUUEhlYWRlck1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBIVFRQSGVhZGVyTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEI5MDU2MTUwRjI1NzhCRTAwOTVGRjZBIC8qIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQjkwNTYxNjBGMjU3OEJF
MDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDk4NSw2ICs0OTg4LDcgQEAKIAkJMEI5MDU2MTgwRjI1NzhCRTAw
OTVGRjZBIC8qIFRocmVhZGFibGVMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwQjkwNTYxRDBGMjU3RTkzMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxvYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRhYmxlTG9hZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEJBNUQzODUwRjI0MEZCNDAwOUI4
NzBCIC8qIEdlbmVyaWNXb3JrZXJUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdlbmVyaWNXb3JrZXJUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBC
QjREQkUxMEYyRUUyOTgwMDM1NDYxOSAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcm9zc1RocmVhZENvcGllci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBCRTAzMEExMEYzMTEyRkIwMDNDMUE0NiAvKiBSZW5k
ZXJMaW5lQm94TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJM
aW5lQm94TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU2MDI4RDBFNEI3
NjU4MDA2NUIwMzggLyogUmVuZGVyTWFycXVlZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJNYXJxdWVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NTYwMjhFMEU0Qjc2NTgwMDY1QjAzOCAvKiBSZW5kZXJNYXJxdWVlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlck1hcnF1ZWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTQyMzksNiArMTQyNDMsOCBAQAogCQkJCTg1MDg5Q0M3MEE5OEMy
MjYwMEEyNzVBQSAvKiBDb21tZW50LmlkbCAqLywKIAkJCQlBODE4NzIxNDA5NzdEM0MwMDA1ODI2
RDkgLyogQ29udGFpbmVyTm9kZS5jcHAgKi8sCiAJCQkJQTgxODcyMTEwOTc3RDNDMDAwNTgyNkQ5
IC8qIENvbnRhaW5lck5vZGUuaCAqLywKKwkJCQkwQkI0REJFMTBGMkVFMjk4MDAzNTQ2MTkgLyog
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovLAorCQkJCTBCNENFN0RBMEYyRTRCREUwMEY2RUMwNCAv
KiBDcm9zc1RocmVhZENvcGllci5oICovLAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAv
KiBET01Db3JlRXhjZXB0aW9uLmggKi8sCiAJCQkJQkM2MEQ2RUIwRDI4RDk5OTAwQjk5MThGIC8q
IERPTUNvcmVFeGNlcHRpb24uaWRsICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAv
KiBET01JbXBsZW1lbnRhdGlvbi5jcHAgKi8sCkBAIC0xNDYxMiw2ICsxNDYxOCw3IEBACiAJCQkJ
OTM5MkYxNEMwQUQxODYxQjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlEMEIwNTU2ODA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNEM3NjZFMENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwQjRDRTdEQjBGMkU0QkRFMDBGNkVDMDQgLyogQ3Jvc3NUaHJl
YWRDb3BpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTJGMDgyNDVFNTkwMDFFOUFCQyAv
KiBDdXJzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3MkEyMEU4MkU4N0MwMEU3Rjk3NSAv
KiBDdXJzb3JEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzIyNzJBRDBFODJFOEYzMDBFN0Y5
NzUgLyogQ3Vyc29yTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzA2OCw2ICsxNzA3NSw3IEBA
CiAJCQkJOTM5MkYxNTAwQUQxODYyMzAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUQwQjA1NTY5MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY2RDBDRTkyM0ExMDA3RUYzQ0QgLyogQ3Jl
ZGVudGlhbC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwQkI0REJFMjBGMkVFMjk4MDAzNTQ2MTkg
LyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBMjYwODI0
NUU1OTAwMUU5QUJDIC8qIEN1cnNvck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUIyRjM0RkU5
MEU4MkY4MjcwMEY2MjdDRCAvKiBETlNDRk5ldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzFB
MzdBRTA5N0M3MTVGMDAxOUYzRDggLyogRE9NLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbCBiL1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmts
CmluZGV4IDg2YzIyMWEuLmQ1NjE3Y2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZVNvdXJj
ZXMuYmtsCisrKyBiL1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCkBAIC0zOTcsNiArMzk3LDcg
QEAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBsaXN0IG9mIGZpbGVzIG5lZWRlZCB0byBidWlsZCBX
ZWJDb3JlLgogICAgICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuY3BwCiAgICAgICAgIGRvbS9Db21t
ZW50LmNwcAogICAgICAgICBkb20vQ29udGFpbmVyTm9kZS5jcHAKKyAgICAgICAgZG9tL0Nyb3Nz
VGhyZWFkQ29waWVyLmNwcAogICAgICAgICBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCiAgICAg
ICAgIGRvbS9ET01TdHJpbmdMaXN0LmNwcAogICAgICAgICBkb20vRG9jdW1lbnQuY3BwCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9XZWJDb3JlL2RvbS9D
cm9zc1RocmVhZENvcGllci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MjdhZGYzYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL0Nyb3NzVGhyZWFkQ29waWVy
LmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdP
UktFUlMpCisKKyNpbmNsdWRlICJDcm9zc1RocmVhZENvcGllci5oIgorCisjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0Nyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgU3RyaW5nPjo6VHlw
ZSBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIFN0cmluZz46OmNvcHkoY29uc3QgU3RyaW5n
JiBzdHIpCit7CisgICAgcmV0dXJuIHN0ci5jb3B5KCk7Cit9CisKK0Nyb3NzVGhyZWFkQ29waWVy
QmFzZTxmYWxzZSwgUmVzb3VyY2VFcnJvcj46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZh
bHNlLCBSZXNvdXJjZUVycm9yPjo6Y29weShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sK
KyAgICByZXR1cm4gZXJyb3IuY29weSgpOworfQorCitDcm9zc1RocmVhZENvcGllckJhc2U8ZmFs
c2UsIFJlc291cmNlUmVxdWVzdD46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBS
ZXNvdXJjZVJlcXVlc3Q+Ojpjb3B5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sK
KyAgICByZXR1cm4gcmVxdWVzdC5jb3B5RGF0YSgpOworfQorCitDcm9zc1RocmVhZENvcGllckJh
c2U8ZmFsc2UsIFJlc291cmNlUmVzcG9uc2U+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxm
YWxzZSwgUmVzb3VyY2VSZXNwb25zZT46OmNvcHkoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit7CisgICAgcmV0dXJuIHJlc3BvbnNlLmNvcHlEYXRhKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vQ3Jvc3NUaHJlYWRDb3BpZXIuaCBiL1dlYkNvcmUvZG9tL0Nyb3NzVGhyZWFk
Q29waWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE4ZWZjNwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTAsMCAr
MSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgQ3Jvc3NUaHJlYWRDb3BpZXJfaAorI2RlZmluZSBDcm9zc1RocmVhZENv
cGllcl9oCisKKyNpZiBFTkFCTEUoV09SS0VSUykKKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNs
dWRlIDx3dGYvVHlwZVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFz
cyBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhOworICAgIGNsYXNzIENyb3NzVGhyZWFk
UmVzb3VyY2VSZXF1ZXN0RGF0YTsKKyAgICBjbGFzcyBSZXNvdXJjZUVycm9yOworICAgIGNsYXNz
IFJlc291cmNlUmVxdWVzdDsKKyAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworICAgIGNsYXNz
IFN0cmluZzsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENv
cGllclBhc3NUaHJvdWdoIHsKKyAgICAgICAgdHlwZWRlZiBUIFR5cGU7CisgICAgICAgIHN0YXRp
YyBUeXBlIGNvcHkoY29uc3QgVCYgcGFyYW1ldGVyKQorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gcGFyYW1ldGVyOworICAgICAgICB9CisgICAgfTsKKworICAgIHRlbXBsYXRlPGJvb2wg
aXNDb252ZXJ0aWJsZVRvSW50ZWdlciwgdHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29w
aWVyQmFzZTsKKworICAgIC8vIEludGVnZXJzIGdldCBwYXNzZWQgdGhyb3VnaCB3aXRob3V0IGFu
eSBjaGFuZ2VzLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENv
cGllckJhc2U8dHJ1ZSwgVD4gOiBwdWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJQYXNzVGhyb3VnaDxU
PiB7CisgICAgfTsKKworICAgIC8vIFBvaW50ZXJzIGdldCBwYXNzZWQgdGhyb3VnaCB3aXRob3V0
IGFueSBzaWduaWZpY2FudCBjaGFuZ2VzLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIFQqPiA6IHB1YmxpYyBDcm9zc1RocmVhZENv
cGllclBhc3NUaHJvdWdoPFQqPiB7CisgICAgfTsKKworICAgIC8vIEN1c3RvbSBjb3B5IG1ldGhv
ZHMuCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBT
dHJpbmc+IHsKKyAgICAgICAgdHlwZWRlZiBTdHJpbmcgVHlwZTsKKyAgICAgICAgc3RhdGljIFR5
cGUgY29weShjb25zdCBTdHJpbmcmKTsKKyAgICB9OworCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
Q3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBSZXNvdXJjZUVycm9yPiB7CisgICAgICAgIHR5
cGVkZWYgUmVzb3VyY2VFcnJvciBUeXBlOworICAgICAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0
IFJlc291cmNlRXJyb3ImKTsKKyAgICB9OworCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NU
aHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBSZXNvdXJjZVJlcXVlc3Q+IHsKKyAgICAgICAgdHlwZWRl
ZiBzdGQ6OmF1dG9fcHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gVHlwZTsKKyAg
ICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB9Owor
CisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBSZXNv
dXJjZVJlc3BvbnNlPiB7CisgICAgICAgIHR5cGVkZWYgc3RkOjphdXRvX3B0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVzcG9uc2VEYXRhPiBUeXBlOworICAgICAgICBzdGF0aWMgVHlwZSBjb3B5KGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB9OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyIDogcHVibGljIENyb3NzVGhyZWFkQ29waWVyQmFz
ZTxXVEY6OklzQ29udmVydGlibGVUb0ludGVnZXI8VD46OnZhbHVlLCBUPiB7CisgICAgfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMpCisKKyNl
bmRpZiAvLyBDcm9zc1RocmVhZENvcGllcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9HZW5l
cmljV29ya2VyVGFzay5oIGIvV2ViQ29yZS9kb20vR2VuZXJpY1dvcmtlclRhc2suaAppbmRleCA3
OWZkMTQ4Li5iODFlMmZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9HZW5lcmljV29ya2VyVGFz
ay5oCisrKyBiL1dlYkNvcmUvZG9tL0dlbmVyaWNXb3JrZXJUYXNrLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChjKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMyw0MCArMzMsMjIy
IEBACiAKICNpZiBFTkFCTEUoV09SS0VSUykKIAotI2luY2x1ZGUgIldvcmtlck1lc3NhZ2luZ1By
b3h5LmgiCisjaW5jbHVkZSAiQ3Jvc3NUaHJlYWRDb3BpZXIuaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1R5cGVUcmFpdHMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewotICAgIGNsYXNzIEdlbmVyaWNXb3JrZXJUYXNrQmFzZSA6IHB1YmxpYyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpUYXNrIHsKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIEdlbmVyaWNXb3Jr
ZXJUYXNrQmFzZShXb3JrZXJNZXNzYWdpbmdQcm94eSogbWVzc2FnaW5nUHJveHkpIDogbV9tZXNz
YWdpbmdQcm94eShtZXNzYWdpbmdQcm94eSkKKworICAgIC8vIFRyYWl0cyBmb3IgdGhlIEdlbmVy
aWNXb3JrZXJUYXNrLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBHZW5lcmljV29y
a2VyVGFza1RyYWl0cyB7CisgICAgICAgIHR5cGVkZWYgY29uc3QgVCYgUGFyYW1UeXBlOworICAg
IH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgR2VuZXJpY1dvcmtlclRhc2tU
cmFpdHM8VCo+IHsKKyAgICAgICAgdHlwZWRlZiBUKiBQYXJhbVR5cGU7CisgICAgfTsKKworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBHZW5lcmljV29ya2VyVGFza1RyYWl0czxzdGQ6
OmF1dG9fcHRyPFQ+ID4geworICAgICAgICB0eXBlZGVmIHN0ZDo6YXV0b19wdHI8VD4gUGFyYW1U
eXBlOworICAgIH07CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxPgor
ICAgIGNsYXNzIEdlbmVyaWNXb3JrZXJUYXNrMSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpUYXNrIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdm9pZCAoKk1ldGhvZCko
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1QMSk7CisgICAgICAgIHR5cGVkZWYgR2VuZXJpY1dv
cmtlclRhc2sxPFAxLCBNUDE+IEdlbmVyaWNXb3JrZXJUYXNrOworICAgICAgICB0eXBlZGVmIHR5
cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFAxPjo6UGFyYW1UeXBlIFBhcmFtMTsKKwor
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmljV29ya2VyVGFzaz4gY3JlYXRlKE1ldGhv
ZCBtZXRob2QsIFBhcmFtMSBwYXJhbWV0ZXIxKQogICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEdlbmVyaWNXb3JrZXJUYXNrKG1ldGhvZCwgcGFyYW1ldGVyMSkpOwog
ICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBjYW5QZXJmb3JtVGFzaygpCisgICAgcHJpdmF0ZToK
KyAgICAgICAgR2VuZXJpY1dvcmtlclRhc2sxKE1ldGhvZCBtZXRob2QsIFBhcmFtMSBwYXJhbWV0
ZXIxKQorICAgICAgICAgICAgOiBtX21ldGhvZChtZXRob2QpCisgICAgICAgICAgICAsIG1fcGFy
YW1ldGVyMShwYXJhbWV0ZXIxKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gIW1fbWVz
c2FnaW5nUHJveHktPmFza2VkVG9UZXJtaW5hdGUoKTsKICAgICAgICAgfQogCi0gICAgICAgIFdv
cmtlck1lc3NhZ2luZ1Byb3h5KiBtX21lc3NhZ2luZ1Byb3h5OworICAgICAgICB2aXJ0dWFsIHZv
aWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICAgICAg
eworICAgICAgICAgICAgKCptX21ldGhvZCkoY29udGV4dCwgbV9wYXJhbWV0ZXIxKTsKKyAgICAg
ICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgTWV0aG9kIG1fbWV0aG9kOworICAgICAgICBQ
MSBtX3BhcmFtZXRlcjE7CisgICAgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBl
bmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDI+CisgICAgY2xhc3MgR2VuZXJpY1dv
cmtlclRhc2syIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgeworICAgIHB1
YmxpYzoKKyAgICAgICAgdHlwZWRlZiB2b2lkICgqTWV0aG9kKShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgTVAxLCBNUDIpOworICAgICAgICB0eXBlZGVmIEdlbmVyaWNXb3JrZXJUYXNrMjxQMSwg
TVAxLCBQMiwgTVAyPiBHZW5lcmljV29ya2VyVGFzazsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFt
ZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQMT46OlBhcmFtVHlwZSBQYXJhbTE7CisgICAgICAg
IHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8UDI+OjpQYXJhbVR5cGUg
UGFyYW0yOworCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyaWNXb3JrZXJUYXNrPiBj
cmVhdGUoTWV0aG9kIG1ldGhvZCwgUGFyYW0xIHBhcmFtZXRlcjEsIFBhcmFtMiBwYXJhbWV0ZXIy
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyaWNXb3Jr
ZXJUYXNrKG1ldGhvZCwgcGFyYW1ldGVyMSwgcGFyYW1ldGVyMikpOworICAgICAgICB9CisKKyAg
ICBwcml2YXRlOgorICAgICAgICBHZW5lcmljV29ya2VyVGFzazIoTWV0aG9kIG1ldGhvZCwgUGFy
YW0xIHBhcmFtZXRlcjEsIFBhcmFtMiBwYXJhbWV0ZXIyKQorICAgICAgICAgICAgOiBtX21ldGhv
ZChtZXRob2QpCisgICAgICAgICAgICAsIG1fcGFyYW1ldGVyMShwYXJhbWV0ZXIxKQorICAgICAg
ICAgICAgLCBtX3BhcmFtZXRlcjIocGFyYW1ldGVyMikKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgICgqbV9tZXRob2QpKGNvbnRleHQsIG1f
cGFyYW1ldGVyMSwgbV9wYXJhbWV0ZXIyKTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAg
ICAgICAgTWV0aG9kIG1fbWV0aG9kOworICAgICAgICBQMSBtX3BhcmFtZXRlcjE7CisgICAgICAg
IFAyIG1fcGFyYW1ldGVyMjsKKyAgICB9OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUDEsIHR5
cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVu
YW1lIE1QMz4KKyAgICBjbGFzcyBHZW5lcmljV29ya2VyVGFzazMgOiBwdWJsaWMgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6VGFzayB7CisgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHZvaWQg
KCpNZXRob2QpKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNUDEsIE1QMiwgTVAzKTsKKyAgICAg
ICAgdHlwZWRlZiBHZW5lcmljV29ya2VyVGFzazM8UDEsIE1QMSwgUDIsIE1QMiwgUDMsIE1QMz4g
R2VuZXJpY1dvcmtlclRhc2s7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtl
clRhc2tUcmFpdHM8UDE+OjpQYXJhbVR5cGUgUGFyYW0xOworICAgICAgICB0eXBlZGVmIHR5cGVu
YW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFAyPjo6UGFyYW1UeXBlIFBhcmFtMjsKKyAgICAg
ICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQMz46OlBhcmFtVHlw
ZSBQYXJhbTM7CisKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8R2VuZXJpY1dvcmtlclRhc2s+
IGNyZWF0ZShNZXRob2QgbWV0aG9kLCBQYXJhbTEgcGFyYW1ldGVyMSwgUGFyYW0yIHBhcmFtZXRl
cjIsIFBhcmFtMyBwYXJhbWV0ZXIzKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEdlbmVyaWNXb3JrZXJUYXNrKG1ldGhvZCwgcGFyYW1ldGVyMSwgcGFyYW1ldGVy
MiwgcGFyYW1ldGVyMykpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBHZW5l
cmljV29ya2VyVGFzazMoTWV0aG9kIG1ldGhvZCwgUGFyYW0xIHBhcmFtZXRlcjEsIFBhcmFtMiBw
YXJhbWV0ZXIyLCBQYXJhbTMgcGFyYW1ldGVyMykKKyAgICAgICAgICAgIDogbV9tZXRob2QobWV0
aG9kKQorICAgICAgICAgICAgLCBtX3BhcmFtZXRlcjEocGFyYW1ldGVyMSkKKyAgICAgICAgICAg
ICwgbV9wYXJhbWV0ZXIyKHBhcmFtZXRlcjIpCisgICAgICAgICAgICAsIG1fcGFyYW1ldGVyMyhw
YXJhbWV0ZXIzKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQg
cGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICAgICAgewor
ICAgICAgICAgICAgKCptX21ldGhvZCkoY29udGV4dCwgbV9wYXJhbWV0ZXIxLCBtX3BhcmFtZXRl
cjIsIG1fcGFyYW1ldGVyMyk7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIE1l
dGhvZCBtX21ldGhvZDsKKyAgICAgICAgUDEgbV9wYXJhbWV0ZXIxOworICAgICAgICBQMiBtX3Bh
cmFtZXRlcjI7CisgICAgICAgIFAzIG1fcGFyYW1ldGVyMzsKKyAgICB9OworCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwg
dHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QND4KKyAg
ICBjbGFzcyBHZW5lcmljV29ya2VyVGFzazQgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6VGFzayB7CisgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHZvaWQgKCpNZXRob2QpKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNUDEsIE1QMiwgTVAzLCBNUDQpOworICAgICAgICB0eXBl
ZGVmIEdlbmVyaWNXb3JrZXJUYXNrNDxQMSwgTVAxLCBQMiwgTVAyLCBQMywgTVAzLCBQNCwgTVA0
PiBHZW5lcmljV29ya2VyVGFzazsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29y
a2VyVGFza1RyYWl0czxQMT46OlBhcmFtVHlwZSBQYXJhbTE7CisgICAgICAgIHR5cGVkZWYgdHlw
ZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8UDI+OjpQYXJhbVR5cGUgUGFyYW0yOworICAg
ICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFAzPjo6UGFyYW1U
eXBlIFBhcmFtMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1Ry
YWl0czxQND46OlBhcmFtVHlwZSBQYXJhbTQ7CisKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
R2VuZXJpY1dvcmtlclRhc2s+IGNyZWF0ZShNZXRob2QgbWV0aG9kLCBQYXJhbTEgcGFyYW1ldGVy
MSwgUGFyYW0yIHBhcmFtZXRlcjIsIFBhcmFtMyBwYXJhbWV0ZXIzLCBQYXJhbTQgcGFyYW1ldGVy
NCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmljV29y
a2VyVGFzayhtZXRob2QsIHBhcmFtZXRlcjEsIHBhcmFtZXRlcjIsIHBhcmFtZXRlcjMsIHBhcmFt
ZXRlcjQpKTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgR2VuZXJpY1dvcmtl
clRhc2s0KE1ldGhvZCBtZXRob2QsIFBhcmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFyYW1ldGVy
MiwgUGFyYW0zIHBhcmFtZXRlcjMsIFBhcmFtNCBwYXJhbWV0ZXI0KQorICAgICAgICAgICAgOiBt
X21ldGhvZChtZXRob2QpCisgICAgICAgICAgICAsIG1fcGFyYW1ldGVyMShwYXJhbWV0ZXIxKQor
ICAgICAgICAgICAgLCBtX3BhcmFtZXRlcjIocGFyYW1ldGVyMikKKyAgICAgICAgICAgICwgbV9w
YXJhbWV0ZXIzKHBhcmFtZXRlcjMpCisgICAgICAgICAgICAsIG1fcGFyYW1ldGVyNChwYXJhbWV0
ZXI0KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9y
bVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICAgICAgeworICAgICAg
ICAgICAgKCptX21ldGhvZCkoY29udGV4dCwgbV9wYXJhbWV0ZXIxLCBtX3BhcmFtZXRlcjIsIG1f
cGFyYW1ldGVyMywgbV9wYXJhbWV0ZXI0KTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAg
ICAgICAgTWV0aG9kIG1fbWV0aG9kOworICAgICAgICBQMSBtX3BhcmFtZXRlcjE7CisgICAgICAg
IFAyIG1fcGFyYW1ldGVyMjsKKyAgICAgICAgUDMgbV9wYXJhbWV0ZXIzOworICAgICAgICBQNCBt
X3BhcmFtZXRlcjQ7CisgICAgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFt
ZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBN
UDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBNUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBNUDU+
CisgICAgY2xhc3MgR2VuZXJpY1dvcmtlclRhc2s1IDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2sgeworICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB2b2lkICgqTWV0aG9k
KShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTVAxLCBNUDIsIE1QMywgTVA0LCBNUDUpOworICAg
ICAgICB0eXBlZGVmIEdlbmVyaWNXb3JrZXJUYXNrNTxQMSwgTVAxLCBQMiwgTVAyLCBQMywgTVAz
LCBQNCwgTVA0LCBQNSwgTVA1PiBHZW5lcmljV29ya2VyVGFzazsKKyAgICAgICAgdHlwZWRlZiB0
eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQMT46OlBhcmFtVHlwZSBQYXJhbTE7Cisg
ICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8UDI+OjpQYXJh
bVR5cGUgUGFyYW0yOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNr
VHJhaXRzPFAzPjo6UGFyYW1UeXBlIFBhcmFtMzsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBH
ZW5lcmljV29ya2VyVGFza1RyYWl0czxQND46OlBhcmFtVHlwZSBQYXJhbTQ7CisgICAgICAgIHR5
cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8UDU+OjpQYXJhbVR5cGUgUGFy
YW01OworCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyaWNXb3JrZXJUYXNrPiBjcmVh
dGUoTWV0aG9kIG1ldGhvZCwgUGFyYW0xIHBhcmFtZXRlcjEsIFBhcmFtMiBwYXJhbWV0ZXIyLCBQ
YXJhbTMgcGFyYW1ldGVyMywgUGFyYW00IHBhcmFtZXRlcjQsIFBhcmFtNSBwYXJhbWV0ZXI1KQor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyaWNXb3JrZXJU
YXNrKG1ldGhvZCwgcGFyYW1ldGVyMSwgcGFyYW1ldGVyMiwgcGFyYW1ldGVyMywgcGFyYW1ldGVy
NCwgcGFyYW1ldGVyNSkpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBHZW5l
cmljV29ya2VyVGFzazUoTWV0aG9kIG1ldGhvZCwgUGFyYW0xIHBhcmFtZXRlcjEsIFBhcmFtMiBw
YXJhbWV0ZXIyLCBQYXJhbTMgcGFyYW1ldGVyMywgUGFyYW00IHBhcmFtZXRlcjQsIFBhcmFtNSBw
YXJhbWV0ZXI1KQorICAgICAgICAgICAgOiBtX21ldGhvZChtZXRob2QpCisgICAgICAgICAgICAs
IG1fcGFyYW1ldGVyMShwYXJhbWV0ZXIxKQorICAgICAgICAgICAgLCBtX3BhcmFtZXRlcjIocGFy
YW1ldGVyMikKKyAgICAgICAgICAgICwgbV9wYXJhbWV0ZXIzKHBhcmFtZXRlcjMpCisgICAgICAg
ICAgICAsIG1fcGFyYW1ldGVyNChwYXJhbWV0ZXI0KQorICAgICAgICAgICAgLCBtX3BhcmFtZXRl
cjUocGFyYW1ldGVyNSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCB2
b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgICAg
IHsKKyAgICAgICAgICAgICgqbV9tZXRob2QpKGNvbnRleHQsIG1fcGFyYW1ldGVyMSwgbV9wYXJh
bWV0ZXIyLCBtX3BhcmFtZXRlcjMsIG1fcGFyYW1ldGVyNCwgbV9wYXJhbWV0ZXI1KTsKKyAgICAg
ICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgTWV0aG9kIG1fbWV0aG9kOworICAgICAgICBQ
MSBtX3BhcmFtZXRlcjE7CisgICAgICAgIFAyIG1fcGFyYW1ldGVyMjsKKyAgICAgICAgUDMgbV9w
YXJhbWV0ZXIzOworICAgICAgICBQNCBtX3BhcmFtZXRlcjQ7CisgICAgICAgIFA1IG1fcGFyYW1l
dGVyNTsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMSwg
dHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMywgdHlw
ZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1QNSwgdHlwZW5h
bWUgUDYsIHR5cGVuYW1lIE1QNj4KLSAgICBjbGFzcyBHZW5lcmljV29ya2VyVGFzazYgOiBwdWJs
aWMgR2VuZXJpY1dvcmtlclRhc2tCYXNlIHsKKyAgICBjbGFzcyBHZW5lcmljV29ya2VyVGFzazYg
OiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7CiAgICAgcHVibGljOgogICAg
ICAgICB0eXBlZGVmIHZvaWQgKCpNZXRob2QpKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNUDEs
IE1QMiwgTVAzLCBNUDQsIE1QNSwgTVA2KTsKICAgICAgICAgdHlwZWRlZiBHZW5lcmljV29ya2Vy
VGFzazY8UDEsIE1QMSwgUDIsIE1QMiwgUDMsIE1QMywgUDQsIE1QNCwgUDUsIE1QNSwgUDYsIE1Q
Nj4gR2VuZXJpY1dvcmtlclRhc2s7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dv
cmtlclRhc2tUcmFpdHM8UDE+OjpQYXJhbVR5cGUgUGFyYW0xOworICAgICAgICB0eXBlZGVmIHR5
cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFAyPjo6UGFyYW1UeXBlIFBhcmFtMjsKKyAg
ICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQMz46OlBhcmFt
VHlwZSBQYXJhbTM7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tU
cmFpdHM8UDQ+OjpQYXJhbVR5cGUgUGFyYW00OworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdl
bmVyaWNXb3JrZXJUYXNrVHJhaXRzPFA1Pjo6UGFyYW1UeXBlIFBhcmFtNTsKKyAgICAgICAgdHlw
ZWRlZiB0eXBlbmFtZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQNj46OlBhcmFtVHlwZSBQYXJh
bTY7CiAKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8R2VuZXJpY1dvcmtlclRhc2s+IGNyZWF0
ZShXb3JrZXJNZXNzYWdpbmdQcm94eSogbWVzc2FnaW5nUHJveHksIE1ldGhvZCBtZXRob2QsIGNv
bnN0IFAxJiBwYXJhbWV0ZXIxLCBjb25zdCBQMiYgcGFyYW1ldGVyMiwgY29uc3QgUDMmIHBhcmFt
ZXRlcjMsIGNvbnN0IFA0JiBwYXJhbWV0ZXI0LCBjb25zdCBQNSYgcGFyYW1ldGVyNSwgY29uc3Qg
UDYmIHBhcmFtZXRlcjYpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyaWNXb3JrZXJU
YXNrPiBjcmVhdGUoTWV0aG9kIG1ldGhvZCwgUGFyYW0xIHBhcmFtZXRlcjEsIFBhcmFtMiBwYXJh
bWV0ZXIyLCBQYXJhbTMgcGFyYW1ldGVyMywgUGFyYW00IHBhcmFtZXRlcjQsIFBhcmFtNSBwYXJh
bWV0ZXI1LCBQYXJhbTYgcGFyYW1ldGVyNikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBHZW5lcmljV29ya2VyVGFzayhtZXNzYWdpbmdQcm94eSwgbWV0aG9kLCBw
YXJhbWV0ZXIxLCBwYXJhbWV0ZXIyLCBwYXJhbWV0ZXIzLCBwYXJhbWV0ZXI0LCBwYXJhbWV0ZXI1
LCBwYXJhbWV0ZXI2KSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyaWNX
b3JrZXJUYXNrKG1ldGhvZCwgcGFyYW1ldGVyMSwgcGFyYW1ldGVyMiwgcGFyYW1ldGVyMywgcGFy
YW1ldGVyNCwgcGFyYW1ldGVyNSwgcGFyYW1ldGVyNikpOwogICAgICAgICB9CiAKICAgICBwcml2
YXRlOgotICAgICAgICBHZW5lcmljV29ya2VyVGFzazYoV29ya2VyTWVzc2FnaW5nUHJveHkqIG1l
c3NhZ2luZ1Byb3h5LCBNZXRob2QgbWV0aG9kLCBjb25zdCBQMSYgcGFyYW1ldGVyMSwgY29uc3Qg
UDImIHBhcmFtZXRlcjIsIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLCBjb25zdCBQNCYgcGFyYW1ldGVy
NCwgY29uc3QgUDUmIHBhcmFtZXRlcjUsIGNvbnN0IFA2JiBwYXJhbWV0ZXI2KQotICAgICAgICAg
ICAgOiBHZW5lcmljV29ya2VyVGFza0Jhc2UobWVzc2FnaW5nUHJveHkpCi0gICAgICAgICAgICAs
IG1fbWV0aG9kKG1ldGhvZCkKKyAgICAgICAgR2VuZXJpY1dvcmtlclRhc2s2KE1ldGhvZCBtZXRo
b2QsIFBhcmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFyYW1ldGVyMiwgUGFyYW0zIHBhcmFtZXRl
cjMsIFBhcmFtNCBwYXJhbWV0ZXI0LCBQYXJhbTUgcGFyYW1ldGVyNSwgUGFyYW02IHBhcmFtZXRl
cjYpCisgICAgICAgICAgICA6IG1fbWV0aG9kKG1ldGhvZCkKICAgICAgICAgICAgICwgbV9wYXJh
bWV0ZXIxKHBhcmFtZXRlcjEpCiAgICAgICAgICAgICAsIG1fcGFyYW1ldGVyMihwYXJhbWV0ZXIy
KQogICAgICAgICAgICAgLCBtX3BhcmFtZXRlcjMocGFyYW1ldGVyMykKQEAgLTc4LDggKzI2MCw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRh
c2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICAgICAgewotICAgICAgICAg
ICAgaWYgKCFjYW5QZXJmb3JtVGFzaygpKQotICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgICgqbV9tZXRob2QpKGNvbnRleHQsIG1fcGFyYW1ldGVyMSwgbV9wYXJhbWV0ZXIyLCBt
X3BhcmFtZXRlcjMsIG1fcGFyYW1ldGVyNCwgbV9wYXJhbWV0ZXI1LCBtX3BhcmFtZXRlcjYpOwog
ICAgICAgICB9CiAKQEAgLTkzLDEzICsyNzMsMTM1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgUDYgbV9wYXJhbWV0ZXI2OwogICAgIH07CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQ
MSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywg
dHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0LCB0eXBlbmFtZSBQNSwgdHlw
ZW5hbWUgTVA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgTVA2LCB0eXBlbmFtZSBQNywgdHlwZW5h
bWUgTVA3PgorICAgIGNsYXNzIEdlbmVyaWNXb3JrZXJUYXNrNyA6IHB1YmxpYyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpUYXNrIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdm9pZCAo
Kk1ldGhvZCkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1
LCBNUDYsIE1QNyk7CisgICAgICAgIHR5cGVkZWYgR2VuZXJpY1dvcmtlclRhc2s3PFAxLCBNUDEs
IFAyLCBNUDIsIFAzLCBNUDMsIFA0LCBNUDQsIFA1LCBNUDUsIFA2LCBNUDYsIFA3LCBNUDc+IEdl
bmVyaWNXb3JrZXJUYXNrOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJU
YXNrVHJhaXRzPFAxPjo6UGFyYW1UeXBlIFBhcmFtMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFt
ZSBHZW5lcmljV29ya2VyVGFza1RyYWl0czxQMj46OlBhcmFtVHlwZSBQYXJhbTI7CisgICAgICAg
IHR5cGVkZWYgdHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8UDM+OjpQYXJhbVR5cGUg
UGFyYW0zOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRz
PFA0Pjo6UGFyYW1UeXBlIFBhcmFtNDsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmlj
V29ya2VyVGFza1RyYWl0czxQNT46OlBhcmFtVHlwZSBQYXJhbTU7CisgICAgICAgIHR5cGVkZWYg
dHlwZW5hbWUgR2VuZXJpY1dvcmtlclRhc2tUcmFpdHM8UDY+OjpQYXJhbVR5cGUgUGFyYW02Owor
ICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNXb3JrZXJUYXNrVHJhaXRzPFA3Pjo6UGFy
YW1UeXBlIFBhcmFtNzsKKworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmljV29ya2Vy
VGFzaz4gY3JlYXRlKE1ldGhvZCBtZXRob2QsIFBhcmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFy
YW1ldGVyMiwgUGFyYW0zIHBhcmFtZXRlcjMsIFBhcmFtNCBwYXJhbWV0ZXI0LCBQYXJhbTUgcGFy
YW1ldGVyNSwgUGFyYW02IHBhcmFtZXRlcjYsIFBhcmFtNyBwYXJhbWV0ZXI3KQorICAgICAgICB7
CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyaWNXb3JrZXJUYXNrKG1ldGhv
ZCwgcGFyYW1ldGVyMSwgcGFyYW1ldGVyMiwgcGFyYW1ldGVyMywgcGFyYW1ldGVyNCwgcGFyYW1l
dGVyNSwgcGFyYW1ldGVyNiwgcGFyYW1ldGVyNykpOworICAgICAgICB9CisKKyAgICBwcml2YXRl
OgorICAgICAgICBHZW5lcmljV29ya2VyVGFzazcoTWV0aG9kIG1ldGhvZCwgUGFyYW0xIHBhcmFt
ZXRlcjEsIFBhcmFtMiBwYXJhbWV0ZXIyLCBQYXJhbTMgcGFyYW1ldGVyMywgUGFyYW00IHBhcmFt
ZXRlcjQsIFBhcmFtNSBwYXJhbWV0ZXI1LCBQYXJhbTYgcGFyYW1ldGVyNiwgUGFyYW03IHBhcmFt
ZXRlcjcpCisgICAgICAgICAgICA6IG1fbWV0aG9kKG1ldGhvZCkKKyAgICAgICAgICAgICwgbV9w
YXJhbWV0ZXIxKHBhcmFtZXRlcjEpCisgICAgICAgICAgICAsIG1fcGFyYW1ldGVyMihwYXJhbWV0
ZXIyKQorICAgICAgICAgICAgLCBtX3BhcmFtZXRlcjMocGFyYW1ldGVyMykKKyAgICAgICAgICAg
ICwgbV9wYXJhbWV0ZXI0KHBhcmFtZXRlcjQpCisgICAgICAgICAgICAsIG1fcGFyYW1ldGVyNShw
YXJhbWV0ZXI1KQorICAgICAgICAgICAgLCBtX3BhcmFtZXRlcjYocGFyYW1ldGVyNikKKyAgICAg
ICAgICAgICwgbV9wYXJhbWV0ZXI3KHBhcmFtZXRlcjcpCisgICAgICAgIHsKKyAgICAgICAgfQor
CisgICAgICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KQorICAgICAgICB7CisgICAgICAgICAgICAoKm1fbWV0aG9kKShjb250ZXh0LCBt
X3BhcmFtZXRlcjEsIG1fcGFyYW1ldGVyMiwgbV9wYXJhbWV0ZXIzLCBtX3BhcmFtZXRlcjQsIG1f
cGFyYW1ldGVyNSwgbV9wYXJhbWV0ZXI2LCBtX3BhcmFtZXRlcjcpOworICAgICAgICB9CisKKyAg
ICBwcml2YXRlOgorICAgICAgICBNZXRob2QgbV9tZXRob2Q7CisgICAgICAgIFAxIG1fcGFyYW1l
dGVyMTsKKyAgICAgICAgUDIgbV9wYXJhbWV0ZXIyOworICAgICAgICBQMyBtX3BhcmFtZXRlcjM7
CisgICAgICAgIFA0IG1fcGFyYW1ldGVyNDsKKyAgICAgICAgUDUgbV9wYXJhbWV0ZXI1OworICAg
ICAgICBQNiBtX3BhcmFtZXRlcjY7CisgICAgICAgIFA3IG1fcGFyYW1ldGVyNzsKKyAgICB9Owor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1QMT4KKyAgICBQYXNzUmVmUHRy
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFzaygKKyAgICAg
ICAgdm9pZCAoKm1ldGhvZCkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1QMSksCisgICAgICAg
IGNvbnN0IFAxJiBwYXJhbWV0ZXIxKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEdlbmVyaWNXb3Jr
ZXJUYXNrMTx0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMT46OlR5cGUsIE1QMT46OmNyZWF0
ZSgKKyAgICAgICAgICAgIG1ldGhvZCwKKyAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPFAx
Pjo6Y29weShwYXJhbWV0ZXIxKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUDEs
IHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMj4KKyAgICBQYXNzUmVmUHRy
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFzaygKKyAgICAg
ICAgdm9pZCAoKm1ldGhvZCkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1QMSwgTVAyKSwKKyAg
ICAgICAgY29uc3QgUDEmIHBhcmFtZXRlcjEsIGNvbnN0IFAyJiBwYXJhbWV0ZXIyKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIEdlbmVyaWNXb3JrZXJUYXNrMjx0eXBlbmFtZSBDcm9zc1RocmVhZENv
cGllcjxQMT46OlR5cGUsIE1QMSwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+OjpUeXBl
LCBNUDI+OjpjcmVhdGUoCisgICAgICAgICAgICBtZXRob2QsCisgICAgICAgICAgICBDcm9zc1Ro
cmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksIENyb3NzVGhyZWFkQ29waWVyPFAyPjo6
Y29weShwYXJhbWV0ZXIyKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUDEsIHR5
cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVu
YW1lIE1QMz4KKyAgICBQYXNzUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IGNy
ZWF0ZUNhbGxiYWNrVGFzaygKKyAgICAgICAgdm9pZCAoKm1ldGhvZCkoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIE1QMSwgTVAyLCBNUDMpLAorICAgICAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwg
Y29uc3QgUDImIHBhcmFtZXRlcjIsIGNvbnN0IFAzJiBwYXJhbWV0ZXIzKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIEdlbmVyaWNXb3JrZXJUYXNrMzx0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQ
MT46OlR5cGUsIE1QMSwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+OjpUeXBlLCBNUDIs
IHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAzPjo6VHlwZSwgTVAzPjo6Y3JlYXRlKAorICAg
ICAgICAgICAgbWV0aG9kLAorICAgICAgICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+Ojpjb3B5
KHBhcmFtZXRlcjEpLCBDcm9zc1RocmVhZENvcGllcjxQMj46OmNvcHkocGFyYW1ldGVyMiksCisg
ICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQMz46OmNvcHkocGFyYW1ldGVyMykpOworICAg
IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAy
LCB0eXBlbmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0
eXBlbmFtZSBNUDQ+CisgICAgUGFzc1JlZlB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNr
PiBjcmVhdGVDYWxsYmFja1Rhc2soCisgICAgICAgIHZvaWQgKCptZXRob2QpKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBNUDEsIE1QMiwgTVAzLCBNUDQpLAorICAgICAgICBjb25zdCBQMSYgcGFy
YW1ldGVyMSwgY29uc3QgUDImIHBhcmFtZXRlcjIsIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLCBjb25z
dCBQNCYgcGFyYW1ldGVyNCkKKyAgICB7CisgICAgICAgIHJldHVybiBHZW5lcmljV29ya2VyVGFz
azQ8dHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+OjpUeXBlLCBNUDEsIHR5cGVuYW1lIENy
b3NzVGhyZWFkQ29waWVyPFAyPjo6VHlwZSwgTVAyLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGll
cjxQMz46OlR5cGUsIE1QMywKKyAgICAgICAgICAgIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVy
PFA0Pjo6VHlwZSwgTVA0Pjo6Y3JlYXRlKAorICAgICAgICAgICAgICAgIG1ldGhvZCwKKyAgICAg
ICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksIENyb3Nz
VGhyZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKKyAgICAgICAgICAgICAgICBDcm9z
c1RocmVhZENvcGllcjxQMz46OmNvcHkocGFyYW1ldGVyMyksIENyb3NzVGhyZWFkQ29waWVyPFA0
Pjo6Y29weShwYXJhbWV0ZXI0KSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUDEs
IHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5
cGVuYW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVu
YW1lIE1QNT4KKyAgICBQYXNzUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IGNy
ZWF0ZUNhbGxiYWNrVGFzaygKKyAgICAgICAgdm9pZCAoKm1ldGhvZCkoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1KSwKKyAgICAgICAgY29uc3QgUDEmIHBh
cmFtZXRlcjEsIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLCBjb25zdCBQMyYgcGFyYW1ldGVyMywgY29u
c3QgUDQmIHBhcmFtZXRlcjQsIGNvbnN0IFA1JiBwYXJhbWV0ZXI1KQorICAgIHsKKyAgICAgICAg
cmV0dXJuIEdlbmVyaWNXb3JrZXJUYXNrNTx0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMT46
OlR5cGUsIE1QMSwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+OjpUeXBlLCBNUDIsIHR5
cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFAzPjo6VHlwZSwgTVAzLAorICAgICAgICAgICAgdHlw
ZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDQ+OjpUeXBlLCBNUDQsIHR5cGVuYW1lIENyb3NzVGhy
ZWFkQ29waWVyPFA1Pjo6VHlwZSwgTVA1Pjo6Y3JlYXRlKAorICAgICAgICAgICAgICAgIG1ldGhv
ZCwKKyAgICAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVy
MSksIENyb3NzVGhyZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKKyAgICAgICAgICAg
ICAgICBDcm9zc1RocmVhZENvcGllcjxQMz46OmNvcHkocGFyYW1ldGVyMyksIENyb3NzVGhyZWFk
Q29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKKyAgICAgICAgICAgICAgICBDcm9zc1RocmVh
ZENvcGllcjxQNT46OmNvcHkocGFyYW1ldGVyNSkpOworICAgIH0KKwogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVu
YW1lIFAzLCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBNUDQsIHR5cGVuYW1l
IFA1LCB0eXBlbmFtZSBNUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBNUDY+Ci0gICAgUGFzc1Jl
ZlB0cjxHZW5lcmljV29ya2VyVGFzazY8UDEsIE1QMSwgUDIsIE1QMiwgUDMsIE1QMywgUDQsIE1Q
NCwgUDUsIE1QNSwgUDYsIE1QNj4gPiBjcmVhdGVDYWxsYmFja1Rhc2soCi0gICAgICAgIFdvcmtl
ck1lc3NhZ2luZ1Byb3h5KiBtZXNzYWdpbmdQcm94eSwKKyAgICBQYXNzUmVmUHRyPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IGNyZWF0ZUNhbGxiYWNrVGFzaygKICAgICAgICAgdm9pZCAo
Km1ldGhvZCkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1
LCBNUDYpLAogICAgICAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwgY29uc3QgUDImIHBhcmFtZXRl
cjIsIGNvbnN0IFAzJiBwYXJhbWV0ZXIzLCBjb25zdCBQNCYgcGFyYW1ldGVyNCwgY29uc3QgUDUm
IHBhcmFtZXRlcjUsIGNvbnN0IFA2JiBwYXJhbWV0ZXI2KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IEdlbmVyaWNXb3JrZXJUYXNrNjxQMSwgTVAxLCBQMiwgTVAyLCBQMywgTVAzLCBQNCwgTVA0LCBQ
NSwgTVA1LCBQNiwgTVA2Pjo6Y3JlYXRlKG1lc3NhZ2luZ1Byb3h5LCBtZXRob2QsIHBhcmFtZXRl
cjEsIHBhcmFtZXRlcjIsIHBhcmFtZXRlcjMsIHBhcmFtZXRlcjQsIHBhcmFtZXRlcjUsIHBhcmFt
ZXRlcjYpOworICAgICAgICByZXR1cm4gR2VuZXJpY1dvcmtlclRhc2s2PHR5cGVuYW1lIENyb3Nz
VGhyZWFkQ29waWVyPFAxPjo6VHlwZSwgTVAxLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQ
Mj46OlR5cGUsIE1QMiwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+OjpUeXBlLCBNUDMs
CisgICAgICAgICAgICB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQND46OlR5cGUsIE1QNCwg
dHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDU+OjpUeXBlLCBNUDUsIHR5cGVuYW1lIENyb3Nz
VGhyZWFkQ29waWVyPFA2Pjo6VHlwZSwgTVA2Pjo6Y3JlYXRlKAorICAgICAgICAgICAgICAgIG1l
dGhvZCwKKyAgICAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1l
dGVyMSksIENyb3NzVGhyZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKKyAgICAgICAg
ICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQMz46OmNvcHkocGFyYW1ldGVyMyksIENyb3NzVGhy
ZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0ZXI0KSwKKyAgICAgICAgICAgICAgICBDcm9zc1Ro
cmVhZENvcGllcjxQNT46OmNvcHkocGFyYW1ldGVyNSksIENyb3NzVGhyZWFkQ29waWVyPFA2Pjo6
Y29weShwYXJhbWV0ZXI2KSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgUDEsIHR5
cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVu
YW1lIE1QMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1l
IE1QNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1Q
Nz4KKyAgICBQYXNzUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IGNyZWF0ZUNh
bGxiYWNrVGFzaygKKyAgICAgICAgdm9pZCAoKm1ldGhvZCkoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIE1QMSwgTVAyLCBNUDMsIE1QNCwgTVA1LCBNUDYsIE1QNyksCisgICAgICAgIGNvbnN0IFAx
JiBwYXJhbWV0ZXIxLCBjb25zdCBQMiYgcGFyYW1ldGVyMiwgY29uc3QgUDMmIHBhcmFtZXRlcjMs
IGNvbnN0IFA0JiBwYXJhbWV0ZXI0LCBjb25zdCBQNSYgcGFyYW1ldGVyNSwgY29uc3QgUDYmIHBh
cmFtZXRlcjYsIGNvbnN0IFA3JiBwYXJhbWV0ZXI3KQorICAgIHsKKyAgICAgICAgcmV0dXJuIEdl
bmVyaWNXb3JrZXJUYXNrNzx0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMT46OlR5cGUsIE1Q
MSwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+OjpUeXBlLCBNUDIsIHR5cGVuYW1lIENy
b3NzVGhyZWFkQ29waWVyPFAzPjo6VHlwZSwgTVAzLAorICAgICAgICAgICAgdHlwZW5hbWUgQ3Jv
c3NUaHJlYWRDb3BpZXI8UDQ+OjpUeXBlLCBNUDQsIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVy
PFA1Pjo6VHlwZSwgTVA1LCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQNj46OlR5cGUsIE1Q
NiwKKyAgICAgICAgICAgIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyPFA3Pjo6VHlwZSwgTVA3
Pjo6Y3JlYXRlKAorICAgICAgICAgICAgICAgIG1ldGhvZCwKKyAgICAgICAgICAgICAgICBDcm9z
c1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksIENyb3NzVGhyZWFkQ29waWVyPFAy
Pjo6Y29weShwYXJhbWV0ZXIyKSwKKyAgICAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQ
Mz46OmNvcHkocGFyYW1ldGVyMyksIENyb3NzVGhyZWFkQ29waWVyPFA0Pjo6Y29weShwYXJhbWV0
ZXI0KSwKKyAgICAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQNT46OmNvcHkocGFyYW1l
dGVyNSksIENyb3NzVGhyZWFkQ29waWVyPFA2Pjo6Y29weShwYXJhbWV0ZXI2KSwKKyAgICAgICAg
ICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQNz46OmNvcHkocGFyYW1ldGVyNykpOwogICAgIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vV29ya2Vy
Q29udGV4dC5jcHAgYi9XZWJDb3JlL2RvbS9Xb3JrZXJDb250ZXh0LmNwcAppbmRleCBmZTQ2NDNl
Li44ZWYxYjQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Xb3JrZXJDb250ZXh0LmNwcAorKysg
Yi9XZWJDb3JlL2RvbS9Xb3JrZXJDb250ZXh0LmNwcApAQCAtMTExLDE4ICsxMTEsMTYgQEAgdm9p
ZCBXb3JrZXJDb250ZXh0OjpyZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UsIGludCBsaW5lTnVtYmVyLAogICAgIG1fdGhyZWFkLT5tZXNzYWdpbmdQcm94eSgpLT5wb3N0
V29ya2VyRXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0K
IAotc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgTWVzc2FnZURlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBNZXNzYWdlU291cmNlIHNvdXJj
ZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQorc3RhdGljIHZvaWQgYWRkTWVzc2Fn
ZVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgV29ya2VyTWVzc2FnaW5nUHJv
eHkqIG1lc3NhZ2luZ1Byb3h5LCBNZXNzYWdlRGVzdGluYXRpb24gZGVzdGluYXRpb24sIE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7CisgICAg
aWYgKG1lc3NhZ2luZ1Byb3h5LT5hc2tlZFRvVGVybWluYXRlKCkpCisgICAgICAgIHJldHVybjsK
ICAgICBjb250ZXh0LT5hZGRNZXNzYWdlKGRlc3RpbmF0aW9uLCBzb3VyY2UsIGxldmVsLCBtZXNz
YWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogfQogCiB2b2lkIFdvcmtlckNvbnRleHQ6OmFk
ZE1lc3NhZ2UoTWVzc2FnZURlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQogewotICAgIC8vIGNyZWF0ZUNh
bGxiYWNrVGFzayBoYXMgdG8gYmUgYSBzZXBhcmF0ZSBzdGF0ZW1lbnQgZnJvbSBwb3N0VGFza1Rv
UGFyZW50Q29udGV4dCB0byBtYWtlIHRoZSBkZXN0cnVjdG9yCi0gICAgLy8gZm9yIG1lc3NhZ2Uu
Y29weSgpIGdldCBjYWxsZWQgYmVmb3JlIHBvc3RUYXNrVG9QYXJlbnRDb250ZXh0LiAgKElmIHRo
ZXkgYXJlIG9uZSBzdGF0ZW1lbnQsIHRoZSBkZXN0cnVjdG9yCi0gICAgLy8gZ2V0cyBjYWxsZWQg
YWZ0ZXIgcG9zdFRhc2tUb1BhcmVudENvbnRleHQgd2hpY2ggY2F1c2VzIGEgcmFjZSBjb25kaXRp
b24uKSAKLSAgICBSZWZQdHI8VGFzaz4gdGFzayA9IGNyZWF0ZUNhbGxiYWNrVGFzayhtX3RocmVh
ZC0+bWVzc2FnaW5nUHJveHkoKSwgJmFkZE1lc3NhZ2VUYXNrLCBkZXN0aW5hdGlvbiwgc291cmNl
LCBsZXZlbCwgbWVzc2FnZS5jb3B5KCksIGxpbmVOdW1iZXIsIHNvdXJjZVVSTC5jb3B5KCkpOwot
ICAgIHBvc3RUYXNrVG9QYXJlbnRDb250ZXh0KHRhc2sucmVsZWFzZSgpKTsKKyAgICBwb3N0VGFz
a1RvUGFyZW50Q29udGV4dChjcmVhdGVDYWxsYmFja1Rhc2soJmFkZE1lc3NhZ2VUYXNrLCBtX3Ro
cmVhZC0+bWVzc2FnaW5nUHJveHkoKSwgZGVzdGluYXRpb24sIHNvdXJjZSwgbGV2ZWwsIG1lc3Nh
Z2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCkpOwogfQogCiB2b2lkIFdvcmtlckNvbnRleHQ6OnJl
c291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBsb25nLCBjb25zdCBTY3Jp
cHRTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vV29ya2VyTWVzc2FnaW5nUHJveHku
aCBiL1dlYkNvcmUvZG9tL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKaW5kZXggZTdiYThhOS4uN2Zk
Yzg3NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vV29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysg
Yi9XZWJDb3JlL2RvbS9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC01NywxNyArNTcsMTcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHdvcmtlck9iamVjdERlc3Ryb3llZCgp
OwogICAgICAgICB2b2lkIHdvcmtlckNvbnRleHREZXN0cm95ZWQoKTsKIAotICAgICAgICB2b2lk
IHRlcm1pbmF0ZSgpOwotCiAgICAgICAgIHZvaWQgY29uZmlybVdvcmtlclRocmVhZE1lc3NhZ2Uo
Ym9vbCBoYXNQZW5kaW5nQWN0aXZpdHkpOwogICAgICAgICB2b2lkIHJlcG9ydFdvcmtlclRocmVh
ZEFjdGl2aXR5KGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KTsKICAgICAgICAgYm9vbCB3b3JrZXJU
aHJlYWRIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdDsKIAorICAgICAgICAvLyBPbmx5IHVzZSB0
aGVzZSBtZXRob2RzIG9uIHRoZSB3b3JrZXIgb2JqZWN0IHRocmVhZC4KKyAgICAgICAgdm9pZCB0
ZXJtaW5hdGUoKTsKKyAgICAgICAgYm9vbCBhc2tlZFRvVGVybWluYXRlKCkgY29uc3QgeyByZXR1
cm4gbV9hc2tlZFRvVGVybWluYXRlOyB9CisKICAgICBwcml2YXRlOgotICAgICAgICBmcmllbmQg
Y2xhc3MgR2VuZXJpY1dvcmtlclRhc2tCYXNlOwogICAgICAgICBmcmllbmQgY2xhc3MgTWVzc2Fn
ZVdvcmtlclRhc2s7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBXb3JrZXJDb250ZXh0RGVzdHJveWVk
VGFzazsKLSAgICAgICAgZnJpZW5kIGNsYXNzIFdvcmtlckV4Y2VwdGlvblRhc2s7CiAgICAgICAg
IGZyaWVuZCBjbGFzcyBXb3JrZXJUaHJlYWRBY3Rpdml0eVJlcG9ydFRhc2s7CiAKICAgICAgICAg
fldvcmtlck1lc3NhZ2luZ1Byb3h5KCk7CkBAIC03NSw3ICs3NSw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdm9pZCB3b3JrZXJDb250ZXh0RGVzdHJveWVkSW50ZXJuYWwoKTsKICAg
ICAgICAgdm9pZCByZXBvcnRXb3JrZXJUaHJlYWRBY3Rpdml0eUludGVybmFsKGJvb2wgY29uZmly
bWluZ01lc3NhZ2UsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KTsKICAgICAgICAgV29ya2VyKiB3
b3JrZXJPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlck9iamVjdDsgfQotICAgICAgICBi
b29sIGFza2VkVG9UZXJtaW5hdGUoKSB7IHJldHVybiBtX2Fza2VkVG9UZXJtaW5hdGU7IH0KIAog
ICAgICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogICAgICAgICBXb3JrZXIqIG1fd29ya2VyT2JqZWN0Owo=
</data>
<flag name="review"
          id="13072"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27192</attachid>
            <date>2009-01-30 13:41:14 -0800</date>
            <delta_ts>2009-01-30 14:11:21 -0800</delta_ts>
            <desc>Part 1.1:  Fix chromium build.</desc>
            <filename>bug23636-part1-modification.txt</filename>
            <type>text/plain</type>
            <size>2957</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBjZTg5NGQ4Li5kYWY4ZDY1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcg
QEAKIDIwMDktMDEtMzAgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgogCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMzYxODogVGVt
cGxhdGVkIHdvcmtlciB0YXNrcyBzaG91bGQgYmUgbW9yZSBlcnJvciBwcm9vZiB0byB1c2UKKyAg
ICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxOD4KKwor
ICAgICAgICAqIHd0Zi9UeXBlVHJhaXRzLmg6CisgICAgICAgIChXVEY6OklzQ29udmVydGlibGVU
b0ludGVnZXI6OklzQ29udmVydGlibGVUb0RvdWJsZSk6CisgICAgICAgIEF2b2lkICJwb3NzaWJs
ZSBsb3NzIG9mIGRhdGEiIHdhcm5pbmcgd2hlbiB1c2luZyBNaWNyb3NvZnQncyBDKysgY29tcGls
ZXIKKyAgICAgICAgYnkgYXZvaWRpbmcgYW4gaW1wbGljaXQgY29udmVyc2lvbiBvZiBpbnQgdHlw
ZXMgdG8gZG91Ymxlcy4KKworMjAwOS0wMS0zMCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1
bS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KIAogICAg
ICAgICBCdWcgMjM2MTg6IFRlbXBsYXRlZCB3b3JrZXIgdGFza3Mgc2hvdWxkIGJlIG1vcmUgZXJy
b3IgcHJvb2YgdG8gdXNlCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZVRyYWl0
cy5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL1R5cGVUcmFpdHMuaAppbmRleCBjNGNjZjZmLi42Yjdh
OTc1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvVHlwZVRyYWl0cy5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3d0Zi9UeXBlVHJhaXRzLmgKQEAgLTExMCwyMSArMTEwLDM0IEBAIG5hbWVz
cGFjZSBXVEYgewogICAgIENPTVBJTEVfQVNTRVJUKElzUG9kPGZsb2F0Pjo6dmFsdWUsIFdURl9J
c1BvZF9mbG9hdF90cnVlKTsKICAgICBDT01QSUxFX0FTU0VSVCghSXNQb2Q8SXNQb2Q8Ym9vbD4g
Pjo6dmFsdWUsIFdURl9Jc1BvZF9zdHJ1Y3RfZmFsc2UpOwogCi0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gc3RydWN0IElzQ29udmVydGlibGVUb0ludGVnZXIgewotICAgIHByaXZhdGU6Ci0gICAg
ICAgIHR5cGVkZWYgY2hhciBZZXNUeXBlOwotICAgICAgICBzdHJ1Y3QgTm9UeXBlIHsKLSAgICAg
ICAgICAgIGNoYXIgcGFkZGluZ1s4XTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBJ
c0NvbnZlcnRpYmxlVG9JbnRlZ2VyIHsKKyAgICAgICAgLy8gQXZvaWQgInBvc3NpYmxlIGxvc3Mg
b2YgZGF0YSIgd2FybmluZyB3aGVuIHVzaW5nIE1pY3Jvc29mdCdzIEMrKyBjb21waWxlcgorICAg
ICAgICAvLyBieSBub3QgY29udmVydGluZyBpbnQncyB0byBkb3VibGVzLgorICAgICAgICB0ZW1w
bGF0ZTxib29sIHBlcmZvcm1DaGVjaywgdHlwZW5hbWUgVT4gY2xhc3MgSXNDb252ZXJ0aWJsZVRv
RG91YmxlOworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBjbGFzcyBJc0NvbnZlcnRpYmxl
VG9Eb3VibGU8ZmFsc2UsIFU+IHsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgc3RhdGlj
IGNvbnN0IGJvb2wgdmFsdWUgPSBmYWxzZTsKICAgICAgICAgfTsKIAotICAgICAgICBzdGF0aWMg
WWVzVHlwZSBpbnRlZ2VyQ2hlY2soaW50KTsKLSAgICAgICAgc3RhdGljIE5vVHlwZSBpbnRlZ2Vy
Q2hlY2soLi4uKTsKLSAgICAgICAgc3RhdGljIFQmIHQ7CisgICAgICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFU+IGNsYXNzIElzQ29udmVydGlibGVUb0RvdWJsZTx0cnVlLCBVPiB7CisgICAgICAgICAg
ICB0eXBlZGVmIGNoYXIgWWVzVHlwZTsKKyAgICAgICAgICAgIHN0cnVjdCBOb1R5cGUgeworICAg
ICAgICAgICAgICAgIGNoYXIgcGFkZGluZ1s4XTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAg
ICAgIHN0YXRpYyBZZXNUeXBlIGZsb2F0Q2hlY2sobG9uZyBkb3VibGUpOworICAgICAgICAgICAg
c3RhdGljIE5vVHlwZSBmbG9hdENoZWNrKC4uLik7CisgICAgICAgICAgICBzdGF0aWMgVCYgdDsK
KyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBz
aXplb2YoZmxvYXRDaGVjayh0KSkgPT0gc2l6ZW9mKFllc1R5cGUpOworICAgICAgICB9OwogCiAg
ICAgcHVibGljOgotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHNpemVvZihpbnRl
Z2VyQ2hlY2sodCkpID09IHNpemVvZihZZXNUeXBlKTsKKyAgICAgICAgc3RhdGljIGNvbnN0IGJv
b2wgdmFsdWUgPSBJc0ludGVnZXI8VD46OnZhbHVlIHx8IElzQ29udmVydGlibGVUb0RvdWJsZTwh
SXNJbnRlZ2VyPFQ+Ojp2YWx1ZSwgVD46OnZhbHVlOwogICAgIH07CiAKKyAgICBlbnVtIElzQ29u
dmVydGlibGVUb0ludGVnZXJDaGVjayB7IH07CisgICAgQ09NUElMRV9BU1NFUlQoSXNDb252ZXJ0
aWJsZVRvSW50ZWdlcjxJc0NvbnZlcnRpYmxlVG9JbnRlZ2VyQ2hlY2s+Ojp2YWx1ZSwgV1RGX0lz
Q29udmVydGlibGVUb0ludGVnZXJfZW51bV90cnVlKTsKICAgICBDT01QSUxFX0FTU0VSVChJc0Nv
bnZlcnRpYmxlVG9JbnRlZ2VyPGJvb2w+Ojp2YWx1ZSwgV1RGX0lzQ29udmVydGlibGVUb0ludGVn
ZXJfYm9vbF90cnVlKTsKICAgICBDT01QSUxFX0FTU0VSVChJc0NvbnZlcnRpYmxlVG9JbnRlZ2Vy
PGNoYXI+Ojp2YWx1ZSwgV1RGX0lzQ29udmVydGlibGVUb0ludGVnZXJfY2hhcl90cnVlKTsKICAg
ICBDT01QSUxFX0FTU0VSVChJc0NvbnZlcnRpYmxlVG9JbnRlZ2VyPHNpZ25lZCBjaGFyPjo6dmFs
dWUsIFdURl9Jc0NvbnZlcnRpYmxlVG9JbnRlZ2VyX3NpZ25lZF9jaGFyX3RydWUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>