<?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>48441</bug_id>
          
          <creation_ts>2010-10-27 10:55:19 -0700</creation_ts>
          <short_desc>Fix enum naming style violation in GraphicsContext3D</short_desc>
          <delta_ts>2010-11-01 10:36:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>300365</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-27 10:55:19 -0700</bug_when>
    <thetext>Currently they start with &quot;k&quot;, which is Google style, but not Webkit style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301375</commentid>
    <comment_count>1</comment_count>
      <attachid>72244</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-28 15:25:26 -0700</bug_when>
    <thetext>Created attachment 72244
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301387</commentid>
    <comment_count>2</comment_count>
      <attachid>72244</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-10-28 15:40:12 -0700</bug_when>
    <thetext>Comment on attachment 72244
patch

Looks good as long as it all compiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301409</commentid>
    <comment_count>3</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-28 16:08:40 -0700</bug_when>
    <thetext>I&apos;ll wait until all ports pass to commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302772</commentid>
    <comment_count>4</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-01 10:36:33 -0700</bug_when>
    <thetext>Committed r71034: &lt;http://trac.webkit.org/changeset/71034&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72244</attachid>
            <date>2010-10-28 15:25:26 -0700</date>
            <delta_ts>2010-10-28 15:40:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>enum.patch</filename>
            <type>text/plain</type>
            <size>36947</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDgxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMTAtMjggIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZW51
bSBuYW1pbmcgc3R5bGUgdmlvbGF0aW9uIGluIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODQ0MQorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmV4dHJhY3RJbWFnZURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmV4dHJhY3RUZXh0dXJlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpkb1BhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBh
Y2tQaXhlbHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRTb3VyY2VEYXRhRm9ybWF0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorCiAyMDEwLTEwLTI4ICBE
YXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1l
cyBSb2JpbnNvbi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuY3BwCShyZXZpc2lvbiA3MDc4OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsMTMgKzEz
MiwxMyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0SW1hZ2VEYXRhCiAgICAgaW50
IGRhdGFCeXRlcyA9IHdpZHRoICogaGVpZ2h0ICogNDsKICAgICBkYXRhLnJlc2l6ZShkYXRhQnl0
ZXMpOwogICAgIGlmICghcGFja1BpeGVscyhpbWFnZURhdGEtPmRhdGEoKS0+ZGF0YSgpLT5kYXRh
KCksCi0gICAgICAgICAgICAgICAgICAgIGtTb3VyY2VGb3JtYXRSR0JBOCwKKyAgICAgICAgICAg
ICAgICAgICAgU291cmNlRm9ybWF0UkdCQTgsCiAgICAgICAgICAgICAgICAgICAgIHdpZHRoLAog
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAg
ICAgICAgICAgICAgICAgIGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgdHlwZSwKLSAgICAg
ICAgICAgICAgICAgICAgcHJlbXVsdGlwbHlBbHBoYSA/IGtBbHBoYURvUHJlbXVsdGlwbHkgOiBr
QWxwaGFEb05vdGhpbmcsCisgICAgICAgICAgICAgICAgICAgIHByZW11bHRpcGx5QWxwaGEgPyBB
bHBoYURvUHJlbXVsdGlwbHkgOiBBbHBoYURvTm90aGluZywKICAgICAgICAgICAgICAgICAgICAg
ZGF0YS5kYXRhKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGZsaXBZKSB7CkBA
IC0xNjQsMzcgKzE2NCwzNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVy
ZURhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPHVp
bnQ4X3Q+JiBkYXRhKQogewogICAgIC8vIEFzc3VtZXMgZm9ybWF0LCB0eXBlLCBldGMuIGhhdmUg
YWxyZWFkeSBiZWVuIHZhbGlkYXRlZC4KLSAgICBTb3VyY2VEYXRhRm9ybWF0IHNvdXJjZURhdGFG
b3JtYXQgPSBrU291cmNlRm9ybWF0UkdCQTg7CisgICAgU291cmNlRGF0YUZvcm1hdCBzb3VyY2VE
YXRhRm9ybWF0ID0gU291cmNlRm9ybWF0UkdCQTg7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAg
Y2FzZSBVTlNJR05FRF9CWVRFOgogICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgewogICAgICAgICBj
YXNlIFJHQkE6Ci0gICAgICAgICAgICBzb3VyY2VEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJH
QkE4OworICAgICAgICAgICAgc291cmNlRGF0YUZvcm1hdCA9IFNvdXJjZUZvcm1hdFJHQkE4Owog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUkdCOgotICAgICAgICAgICAgc291cmNl
RGF0YUZvcm1hdCA9IGtTb3VyY2VGb3JtYXRSR0I4OworICAgICAgICAgICAgc291cmNlRGF0YUZv
cm1hdCA9IFNvdXJjZUZvcm1hdFJHQjg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBBTFBIQToKLSAgICAgICAgICAgIHNvdXJjZURhdGFGb3JtYXQgPSBrU291cmNlRm9ybWF0QTg7
CisgICAgICAgICAgICBzb3VyY2VEYXRhRm9ybWF0ID0gU291cmNlRm9ybWF0QTg7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBMVU1JTkFOQ0U6Ci0gICAgICAgICAgICBzb3VyY2VE
YXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFI4OworICAgICAgICAgICAgc291cmNlRGF0YUZvcm1h
dCA9IFNvdXJjZUZvcm1hdFI4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTFVN
SU5BTkNFX0FMUEhBOgotICAgICAgICAgICAgc291cmNlRGF0YUZvcm1hdCA9IGtTb3VyY2VGb3Jt
YXRSQTg7CisgICAgICAgICAgICBzb3VyY2VEYXRhRm9ybWF0ID0gU291cmNlRm9ybWF0UkE4Owog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIFVOU0lH
TkVEX1NIT1JUXzVfNV81XzE6Ci0gICAgICAgIHNvdXJjZURhdGFGb3JtYXQgPSBrU291cmNlRm9y
bWF0UkdCQTU1NTE7CisgICAgICAgIHNvdXJjZURhdGFGb3JtYXQgPSBTb3VyY2VGb3JtYXRSR0JB
NTU1MTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVTlNJR05FRF9TSE9SVF80XzRfNF80Ogot
ICAgICAgICBzb3VyY2VEYXRhRm9ybWF0ID0ga1NvdXJjZUZvcm1hdFJHQkE0NDQ0OworICAgICAg
ICBzb3VyY2VEYXRhRm9ybWF0ID0gU291cmNlRm9ybWF0UkdCQTQ0NDQ7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVU5TSUdORURfU0hPUlRfNV82XzU6Ci0gICAgICAgIHNvdXJjZURhdGFGb3Jt
YXQgPSBrU291cmNlRm9ybWF0UkdCNTY1OworICAgICAgICBzb3VyY2VEYXRhRm9ybWF0ID0gU291
cmNlRm9ybWF0UkdCNTY1OwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIxMyw3ICsyMTMsNyBAQCBib29sIEdyYXBoaWNzQ29u
dGV4dDNEOjpleHRyYWN0VGV4dHVyZURhCiAgICAgICAgICAgICAgICAgICAgIHNvdXJjZURhdGFG
b3JtYXQsCiAgICAgICAgICAgICAgICAgICAgIHdpZHRoLCBoZWlnaHQsIHVucGFja0FsaWdubWVu
dCwKICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCB0eXBlLAotICAgICAgICAgICAgICAgICAg
ICAocHJlbXVsdGlwbHlBbHBoYSA/IGtBbHBoYURvUHJlbXVsdGlwbHkgOiBrQWxwaGFEb05vdGhp
bmcpLAorICAgICAgICAgICAgICAgICAgICAocHJlbXVsdGlwbHlBbHBoYSA/IEFscGhhRG9QcmVt
dWx0aXBseSA6IEFscGhhRG9Ob3RoaW5nKSwKICAgICAgICAgICAgICAgICAgICAgZGF0YS5kYXRh
KCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gVGhlIHBpeGVsIGRhdGEgaXMgbm93
IHRpZ2h0bHkgcGFja2VkLgpAQCAtNTY2LDcgKzU2Niw3IEBAIHZvaWQgcGFja1JHQkE4VG9SR0I4
VW5tdWx0aXBseShjb25zdCB1aW4KICAgICBkZXN0aW5hdGlvblsyXSA9IHNvdXJjZUI7CiB9CiAK
LS8vIFRoaXMgaXMgb25seSB1c2VkIHdoZW4gdGhlIHNvdXJjZSBmb3JtYXQgaXMgZGlmZmVyZW50
IHRoYW4ga1NvdXJjZUZvcm1hdFJHQkE4LgorLy8gVGhpcyBpcyBvbmx5IHVzZWQgd2hlbiB0aGUg
c291cmNlIGZvcm1hdCBpcyBkaWZmZXJlbnQgdGhhbiBTb3VyY2VGb3JtYXRSR0JBOC4KIHZvaWQg
cGFja1JHQkE4VG9SR0JBOChjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0
aW9uKQogewogICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwpAQCAtNzcyLDcgKzc3Miw3
IEBAIHN0YXRpYyB2b2lkIGRvUGFja2luZyhjb25zdCB2b2lkKiBzb3VyY2UKICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBpbnQgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKQogewog
ICAgIHN3aXRjaCAoc291cmNlRGF0YUZvcm1hdCkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OmtTb3VyY2VGb3JtYXRSR0JBODogeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNv
dXJjZUZvcm1hdFJHQkE4OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1Bl
clBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBh
cmFtZXRlcnM8dWludDhfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CiAgICAgICAgIGlmICgh
c291cmNlRWxlbWVudHNQZXJSb3cpIHsKQEAgLTc4OSwxNTcgKzc4OSwxNTcgQEAgc3RhdGljIHZv
aWQgZG9QYWNraW5nKGNvbnN0IHZvaWQqIHNvdXJjZQogICAgICAgICB9CiAgICAgICAgIGJyZWFr
OwogICAgIH0KLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkdCQTE2
TGl0dGxlOiB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U291cmNlRm9ybWF0UkdCQTE2
TGl0dGxlOiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBz
b3VyY2VFbGVtZW50c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8
dWludDE2X3Q+KHdpZHRoLCA4LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50
c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwogICAgICAgICBkb1VucGFja2luZ0Fu
ZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSR0JBMTZMaXR0bGVUb1JHQkE4LCBw
YWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lk
dGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3cs
IGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRS
R0JBMTZCaWc6IHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTb3VyY2VGb3JtYXRSR0JB
MTZCaWc6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNv
dXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1
aW50MTZfdD4od2lkdGgsIDgsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRz
UGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CiAgICAgICAgIGRvVW5wYWNraW5nQW5k
UGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQkExNkJpZ1RvUkdCQTgsIHBhY2tp
bmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwg
aGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVz
dGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVh
azsKICAgICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQjg6
IHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTb3VyY2VGb3JtYXRSR0I4OiB7CiAgICAg
ICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1Bl
clJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDhfdD4od2lkdGgs
IDMsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3Vy
Y2VFbGVtZW50c1BlclJvdyk7CiAgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50OF90
LCBEZXN0VHlwZSwgdW5wYWNrUkdCOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxj
b25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRz
UGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0
aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkdCMTZMaXR0bGU6IHsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTb3VyY2VGb3JtYXRSR0IxNkxpdHRsZTogewogICAgICAgICB1bnNp
Z25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAg
ICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgNiwgc291
cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1l
bnRzUGVyUm93KTsKICAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0
VHlwZSwgdW5wYWNrUkdCMTZMaXR0bGVUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8
Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVu
dHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGlu
YXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0IxNkJpZzogeworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlNvdXJjZUZvcm1hdFJHQjE2QmlnOiB7CiAgICAgICAgIHVuc2lnbmVk
IGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKICAgICAg
ICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDE2X3Q+KHdpZHRoLCA2LCBzb3VyY2VV
bnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQ
ZXJSb3cpOwogICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBl
LCB1bnBhY2tSR0IxNkJpZ1RvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1
aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVs
ZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEFSR0I4OiB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U291cmNlRm9ybWF0QVJHQjg6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVs
ZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5j
cmVtZW50UGFyYW1ldGVyczx1aW50OF90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxpZ25tZW50
LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKICAgICAg
ICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tBUkdCOFRv
UkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0
YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRz
UGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNl
Rm9ybWF0QVJHQjE2TGl0dGxlOiB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U291cmNl
Rm9ybWF0QVJHQjE2TGl0dGxlOiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50
c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVu
dFBhcmFtZXRlcnM8dWludDE2X3Q+KHdpZHRoLCA4LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZz
b3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwogICAgICAgICBk
b1VucGFja2luZ0FuZFBhY2tpbmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tBUkdCMTZMaXR0
bGVUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3Vy
Y2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxl
bWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVs
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtT
b3VyY2VGb3JtYXRBUkdCMTZCaWc6IHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTb3Vy
Y2VGb3JtYXRBUkdCMTZCaWc6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRz
UGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50
UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDgsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNv
dXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CiAgICAgICAgIGRv
VW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja0FSR0IxNkJpZ1Rv
UkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURh
dGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwog
ICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJj
ZUZvcm1hdEJHUkE4OiB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U291cmNlRm9ybWF0
QkdSQTg6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNv
dXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1
aW50OF90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQ
ZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKICAgICAgICAgZG9VbnBhY2tpbmdBbmRQ
YWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tCR1JBOFRvUkdCQTgsIHBhY2tpbmdGdW5j
PihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQs
IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlv
bkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QkdSQTE2TGl0dGxl
OiB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U291cmNlRm9ybWF0QkdSQTE2TGl0dGxl
OiB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VF
bGVtZW50c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDE2
X3Q+KHdpZHRoLCA4LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBp
eGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwogICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tp
bmc8dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tCR1JBMTZMaXR0bGVUb1JHQkE4LCBwYWNraW5n
RnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhl
aWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3Rp
bmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRCR1JBMTZC
aWc6IHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTb3VyY2VGb3JtYXRCR1JBMTZCaWc6
IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVs
ZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZf
dD4od2lkdGgsIDgsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4
ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CiAgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2lu
Zzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja0JHUkExNkJpZ1RvUkdCQTgsIHBhY2tpbmdGdW5j
PihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0
LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRp
b25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAg
ICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQkE1NTUxOiB7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U291cmNlRm9ybWF0UkdCQTU1NTE6IHsKICAg
ICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRz
UGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lk
dGgsIDIsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZz
b3VyY2VFbGVtZW50c1BlclJvdyk7CiAgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50
MTZfdCwgRGVzdFR5cGUsIHVucGFja1JHQkE1NTUxVG9SR0JBOCwgcGFja2luZ0Z1bmM+KHN0YXRp
Y19jYXN0PGNvbnN0IHVpbnQxNl90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEs
IGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkdCQTQ0NDQ6IHsKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTb3VyY2VGb3JtYXRSR0JBNDQ0NDogewogICAgICAgICB1
bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7
CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgMiwg
c291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVs
ZW1lbnRzUGVyUm93KTsKICAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBE
ZXN0VHlwZSwgdW5wYWNrUkdCQTQ0NDRUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8
Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVu
dHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGlu
YXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0I1NjU6IHsKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTb3VyY2VGb3JtYXRSR0I1NjU6IHsKICAgICAgICAgdW5zaWduZWQgaW50
IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBj
b21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDIsIHNvdXJjZVVucGFj
a0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJv
dyk7CiAgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVu
cGFja1JHQjU2NVRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZf
dCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBz
b3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRz
UGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6a1NvdXJjZUZvcm1hdFI4OiB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U291
cmNlRm9ybWF0Ujg6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4
ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1l
dGVyczx1aW50OF90Pih3aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxl
bWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKICAgICAgICAgZG9VbnBhY2tp
bmdBbmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tSOFRvUkdCQTgsIHBhY2tpbmdG
dW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWln
aHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5h
dGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UjE2TGl0dGxl
OiB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U291cmNlRm9ybWF0UjE2TGl0dGxlOiB7
CiAgICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVt
ZW50c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDE2X3Q+
KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVs
LCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwogICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8
dWludDE2X3QsIERlc3RUeXBlLCB1bnBhY2tSMTZMaXR0bGVUb1JHQkE4LCBwYWNraW5nRnVuYz4o
c3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwg
c291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9u
RGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSMTZCaWc6IHsKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTb3VyY2VGb3JtYXRSMTZCaWc6IHsKICAgICAgICAg
dW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93
OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDIs
IHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VF
bGVtZW50c1BlclJvdyk7CiAgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwg
RGVzdFR5cGUsIHVucGFja1IxNkJpZ1RvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxj
b25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50
c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5h
dGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJBODogeworICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlNvdXJjZUZvcm1hdFJBODogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNl
RWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJ
bmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1l
bnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNlRWxlbWVudHNQZXJSb3cpOwogICAg
ICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwgRGVzdFR5cGUsIHVucGFja1JBOFRv
UkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0
YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRz
UGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNl
Rm9ybWF0UkExNkxpdHRsZTogeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNvdXJjZUZv
cm1hdFJBMTZMaXR0bGU6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFy
YW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJj
ZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1BlclJvdyk7CiAgICAgICAgIGRvVW5w
YWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUsIHVucGFja1JBMTZMaXR0bGVUb1JH
QkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRh
KSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQ
ZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VG
b3JtYXRSQTE2QmlnOiB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U291cmNlRm9ybWF0
UkExNkJpZzogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwg
c291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJz
PHVpbnQxNl90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVu
dHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKICAgICAgICAgZG9VbnBhY2tpbmdB
bmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNrUkExNkJpZ1RvUkdCQTgsIHBhY2tp
bmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwg
aGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVz
dGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVyUGl4ZWwpOwogICAgICAgICBicmVh
azsKICAgICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEFSODog
eworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNvdXJjZUZvcm1hdEFSODogewogICAgICAg
ICB1bnNpZ25lZCBpbnQgc291cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJS
b3c7CiAgICAgICAgIGNvbXB1dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQ4X3Q+KHdpZHRoLCAy
LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAmc291cmNl
RWxlbWVudHNQZXJSb3cpOwogICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWludDhfdCwg
RGVzdFR5cGUsIHVucGFja0FSOFRvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25z
dCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQsIHNvdXJjZUVsZW1lbnRzUGVy
UGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlvbkRhdGEsIGRlc3RpbmF0aW9u
RWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QVIxNkxpdHRsZTogeworICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlNvdXJjZUZvcm1hdEFSMTZMaXR0bGU6IHsKICAgICAgICAgdW5zaWduZWQg
aW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAg
ICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDQsIHNvdXJjZVVu
cGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVtZW50c1Bl
clJvdyk7CiAgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVzdFR5cGUs
IHVucGFja0FSMTZMaXR0bGVUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3RhdGljX2Nhc3Q8Y29uc3Qg
dWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291cmNlRWxlbWVudHNQZXJQ
aXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0YSwgZGVzdGluYXRpb25F
bGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRBUjE2QmlnOiB7CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6U291cmNlRm9ybWF0QVIxNkJpZzogewogICAgICAgICB1bnNpZ25lZCBpbnQgc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3c7CiAgICAgICAgIGNvbXB1
dGVJbmNyZW1lbnRQYXJhbWV0ZXJzPHVpbnQxNl90Pih3aWR0aCwgNCwgc291cmNlVW5wYWNrQWxp
Z25tZW50LCAmc291cmNlRWxlbWVudHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsK
ICAgICAgICAgZG9VbnBhY2tpbmdBbmRQYWNraW5nPHVpbnQxNl90LCBEZXN0VHlwZSwgdW5wYWNr
QVIxNkJpZ1RvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25zdCB1aW50MTZfdCo+
KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3Vy
Y2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlvbkVsZW1lbnRzUGVy
UGl4ZWwpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6a1NvdXJjZUZvcm1hdEE4OiB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U291cmNl
Rm9ybWF0QTg6IHsKICAgICAgICAgdW5zaWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWws
IHNvdXJjZUVsZW1lbnRzUGVyUm93OwogICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVy
czx1aW50OF90Pih3aWR0aCwgMSwgc291cmNlVW5wYWNrQWxpZ25tZW50LCAmc291cmNlRWxlbWVu
dHNQZXJQaXhlbCwgJnNvdXJjZUVsZW1lbnRzUGVyUm93KTsKICAgICAgICAgZG9VbnBhY2tpbmdB
bmRQYWNraW5nPHVpbnQ4X3QsIERlc3RUeXBlLCB1bnBhY2tBOFRvUkdCQTgsIHBhY2tpbmdGdW5j
PihzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oc291cmNlRGF0YSksIHdpZHRoLCBoZWlnaHQs
IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93LCBkZXN0aW5hdGlv
bkRhdGEsIGRlc3RpbmF0aW9uRWxlbWVudHNQZXJQaXhlbCk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QTE2TGl0dGxlOiB7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U291cmNlRm9ybWF0QTE2TGl0dGxlOiB7CiAg
ICAgICAgIHVuc2lnbmVkIGludCBzb3VyY2VFbGVtZW50c1BlclBpeGVsLCBzb3VyY2VFbGVtZW50
c1BlclJvdzsKICAgICAgICAgY29tcHV0ZUluY3JlbWVudFBhcmFtZXRlcnM8dWludDE2X3Q+KHdp
ZHRoLCAyLCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsICZzb3VyY2VFbGVtZW50c1BlclBpeGVsLCAm
c291cmNlRWxlbWVudHNQZXJSb3cpOwogICAgICAgICBkb1VucGFja2luZ0FuZFBhY2tpbmc8dWlu
dDE2X3QsIERlc3RUeXBlLCB1bnBhY2tBMTZMaXR0bGVUb1JHQkE4LCBwYWNraW5nRnVuYz4oc3Rh
dGljX2Nhc3Q8Y29uc3QgdWludDE2X3QqPihzb3VyY2VEYXRhKSwgd2lkdGgsIGhlaWdodCwgc291
cmNlRWxlbWVudHNQZXJQaXhlbCwgc291cmNlRWxlbWVudHNQZXJSb3csIGRlc3RpbmF0aW9uRGF0
YSwgZGVzdGluYXRpb25FbGVtZW50c1BlclBpeGVsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRBMTZCaWc6IHsKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTb3VyY2VGb3JtYXRBMTZCaWc6IHsKICAgICAgICAgdW5z
aWduZWQgaW50IHNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsIHNvdXJjZUVsZW1lbnRzUGVyUm93Owog
ICAgICAgICBjb21wdXRlSW5jcmVtZW50UGFyYW1ldGVyczx1aW50MTZfdD4od2lkdGgsIDIsIHNv
dXJjZVVucGFja0FsaWdubWVudCwgJnNvdXJjZUVsZW1lbnRzUGVyUGl4ZWwsICZzb3VyY2VFbGVt
ZW50c1BlclJvdyk7CiAgICAgICAgIGRvVW5wYWNraW5nQW5kUGFja2luZzx1aW50MTZfdCwgRGVz
dFR5cGUsIHVucGFja0ExNkJpZ1RvUkdCQTgsIHBhY2tpbmdGdW5jPihzdGF0aWNfY2FzdDxjb25z
dCB1aW50MTZfdCo+KHNvdXJjZURhdGEpLCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VFbGVtZW50c1Bl
clBpeGVsLCBzb3VyY2VFbGVtZW50c1BlclJvdywgZGVzdGluYXRpb25EYXRhLCBkZXN0aW5hdGlv
bkVsZW1lbnRzUGVyUGl4ZWwpOwpAQCAtOTYzLDcgKzk2Myw3IEBAIGJvb2wgR3JhcGhpY3NDb250
ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uVHlwZSkgewog
ICAgIGNhc2UgVU5TSUdORURfQllURTogewogICAgICAgICB1aW50OF90KiBkZXN0aW5hdGlvbiA9
IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkZXN0aW5hdGlvbkRhdGEpOwotICAgICAgICBpZiAoc291
cmNlRGF0YUZvcm1hdCA9PSBrU291cmNlRm9ybWF0UkdCQTggJiYgZGVzdGluYXRpb25Gb3JtYXQg
PT0gUkdCQSAmJiBzb3VyY2VVbnBhY2tBbGlnbm1lbnQgPD0gNCAmJiBhbHBoYU9wID09IGtBbHBo
YURvTm90aGluZykgeworICAgICAgICBpZiAoc291cmNlRGF0YUZvcm1hdCA9PSBTb3VyY2VGb3Jt
YXRSR0JBOCAmJiBkZXN0aW5hdGlvbkZvcm1hdCA9PSBSR0JBICYmIHNvdXJjZVVucGFja0FsaWdu
bWVudCA8PSA0ICYmIGFscGhhT3AgPT0gQWxwaGFEb05vdGhpbmcpIHsKICAgICAgICAgICAgIC8v
IE5vIGNvbnZlcnNpb24gbmVjZXNzYXJ5LgogICAgICAgICAgICAgbWVtY3B5KGRlc3RpbmF0aW9u
RGF0YSwgc291cmNlRGF0YSwgd2lkdGggKiBoZWlnaHQgKiA0KTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtOTcxLDI3ICs5NzEsMjcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVs
cyhjb25zdAogICAgICAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uRm9ybWF0KSB7CiAgICAgICAgIGNh
c2UgUkdCOgogICAgICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7Ci0gICAgICAgICAgICBjYXNl
IGtBbHBoYURvTm90aGluZzoKKyAgICAgICAgICAgIGNhc2UgQWxwaGFEb05vdGhpbmc6CiAgICAg
ICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCOD4oc291cmNlRGF0
YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50
LCBkZXN0aW5hdGlvbiwgMyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBj
YXNlIGtBbHBoYURvUHJlbXVsdGlwbHk6CisgICAgICAgICAgICBjYXNlIEFscGhhRG9QcmVtdWx0
aXBseToKICAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SR0I4
UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQs
IHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDMpOwogICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1VubXVsdGlwbHk6CisgICAgICAgICAg
ICBjYXNlIEFscGhhRG9Vbm11bHRpcGx5OgogICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50
OF90LCBwYWNrUkdCQThUb1JHQjhVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9y
bWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAz
KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFJHQkE6CiAgICAgICAgICAgICBzd2l0Y2ggKGFscGhhT3ApIHsK
LSAgICAgICAgICAgIGNhc2Uga0FscGhhRG9Ob3RoaW5nOgotICAgICAgICAgICAgICAgIEFTU0VS
VChzb3VyY2VEYXRhRm9ybWF0ICE9IGtTb3VyY2VGb3JtYXRSR0JBOCB8fCBzb3VyY2VVbnBhY2tB
bGlnbm1lbnQgPiA0KTsgLy8gSGFuZGxlZCBhYm92ZSB3aXRoIGZhc3QgY2FzZS4KKyAgICAgICAg
ICAgIGNhc2UgQWxwaGFEb05vdGhpbmc6CisgICAgICAgICAgICAgICAgQVNTRVJUKHNvdXJjZURh
dGFGb3JtYXQgIT0gU291cmNlRm9ybWF0UkdCQTggfHwgc291cmNlVW5wYWNrQWxpZ25tZW50ID4g
NCk7IC8vIEhhbmRsZWQgYWJvdmUgd2l0aCBmYXN0IGNhc2UuCiAgICAgICAgICAgICAgICAgZG9Q
YWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQTg+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFG
b3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24s
IDQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBrQWxwaGFEb1By
ZW11bHRpcGx5OgorICAgICAgICAgICAgY2FzZSBBbHBoYURvUHJlbXVsdGlwbHk6CiAgICAgICAg
ICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkdCQThQcmVtdWx0aXBseT4o
c291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNr
QWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgNCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICBjYXNlIGtBbHBoYURvVW5tdWx0aXBseToKKyAgICAgICAgICAgIGNhc2UgQWxwaGFE
b1VubXVsdGlwbHk6CiAgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JB
OFRvUkdCQThVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwg
aGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCA0KTsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC0xMDA5LDEzICsxMDA5LDEz
IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29uc3QKICAgICAgICAgICAg
IC8vIHNwZWNpZmljYXRpb24sIFRhYmxlIDMuMTUpLCB0aGUgcmVkIGNoYW5uZWwgaXMgY2hvc2Vu
CiAgICAgICAgICAgICAvLyBmcm9tIHRoZSBSR0JBIGRhdGEuCiAgICAgICAgICAgICBzd2l0Y2gg
KGFscGhhT3ApIHsKLSAgICAgICAgICAgIGNhc2Uga0FscGhhRG9Ob3RoaW5nOgorICAgICAgICAg
ICAgY2FzZSBBbHBoYURvTm90aGluZzoKICAgICAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDhf
dCwgcGFja1JHQkE4VG9SOD4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhl
aWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIGtBbHBoYURvUHJlbXVsdGlwbHk6CisgICAg
ICAgICAgICBjYXNlIEFscGhhRG9QcmVtdWx0aXBseToKICAgICAgICAgICAgICAgICBkb1BhY2tp
bmc8dWludDhfdCwgcGFja1JHQkE4VG9SOFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VE
YXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0
aW9uLCAxKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Uga0FscGhh
RG9Vbm11bHRpcGx5OgorICAgICAgICAgICAgY2FzZSBBbHBoYURvVW5tdWx0aXBseToKICAgICAg
ICAgICAgICAgICBkb1BhY2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SOFVubXVsdGlwbHk+KHNv
dXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0Fs
aWdubWVudCwgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQpAQCAtMTAyNSwxMyArMTAyNSwxMyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpw
YWNrUGl4ZWxzKGNvbnN0CiAgICAgICAgICAgICAvLyBzcGVjaWZpY2F0aW9uLCBUYWJsZSAzLjE1
KSwgdGhlIHJlZCBhbmQgYWxwaGEgY2hhbm5lbHMKICAgICAgICAgICAgIC8vIGFyZSBjaG9zZW4g
ZnJvbSB0aGUgUkdCQSBkYXRhLgogICAgICAgICAgICAgc3dpdGNoIChhbHBoYU9wKSB7Ci0gICAg
ICAgICAgICBjYXNlIGtBbHBoYURvTm90aGluZzoKKyAgICAgICAgICAgIGNhc2UgQWxwaGFEb05v
dGhpbmc6CiAgICAgICAgICAgICAgICAgZG9QYWNraW5nPHVpbnQ4X3QsIHBhY2tSR0JBOFRvUkE4
Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBh
Y2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAyKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2Uga0FscGhhRG9QcmVtdWx0aXBseToKKyAgICAgICAgICAgIGNhc2UgQWxw
aGFEb1ByZW11bHRpcGx5OgogICAgICAgICAgICAgICAgIGRvUGFja2luZzx1aW50OF90LCBwYWNr
UkdCQThUb1JBOFByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAyKTsKICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Uga0FscGhhRG9Vbm11bHRpcGx5Ogor
ICAgICAgICAgICAgY2FzZSBBbHBoYURvVW5tdWx0aXBseToKICAgICAgICAgICAgICAgICBkb1Bh
Y2tpbmc8dWludDhfdCwgcGFja1JHQkE4VG9SQThVbm11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3Vy
Y2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3Rp
bmF0aW9uLCAyKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTEw
NDIsMTMgKzEwNDIsMTMgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyhjb25z
dAogICAgIGNhc2UgVU5TSUdORURfU0hPUlRfNF80XzRfNDogewogICAgICAgICB1aW50MTZfdCog
ZGVzdGluYXRpb24gPSBzdGF0aWNfY2FzdDx1aW50MTZfdCo+KGRlc3RpbmF0aW9uRGF0YSk7CiAg
ICAgICAgIHN3aXRjaCAoYWxwaGFPcCkgewotICAgICAgICBjYXNlIGtBbHBoYURvTm90aGluZzoK
KyAgICAgICAgY2FzZSBBbHBoYURvTm90aGluZzoKICAgICAgICAgICAgIGRvUGFja2luZzx1aW50
MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0ND4oc291cmNlRGF0YSwgc291cmNlRGF0
YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlv
biwgMSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRp
cGx5OgorICAgICAgICBjYXNlIEFscGhhRG9QcmVtdWx0aXBseToKICAgICAgICAgICAgIGRvUGFj
a2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NFByZW11bHRpcGx5Pihz
b3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tB
bGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIGtBbHBoYURvVW5tdWx0aXBseToKKyAgICAgICAgY2FzZSBBbHBoYURvVW5tdWx0aXBseToK
ICAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0
NDQ0NFVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWln
aHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGluYXRpb24sIDEpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KQEAgLTEwNTcsMTMgKzEwNTcsMTMgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6cGFja1BpeGVscyhjb25zdAogICAgIGNhc2UgVU5TSUdORURfU0hPUlRfNV81XzVf
MTogewogICAgICAgICB1aW50MTZfdCogZGVzdGluYXRpb24gPSBzdGF0aWNfY2FzdDx1aW50MTZf
dCo+KGRlc3RpbmF0aW9uRGF0YSk7CiAgICAgICAgIHN3aXRjaCAoYWxwaGFPcCkgewotICAgICAg
ICBjYXNlIGtBbHBoYURvTm90aGluZzoKKyAgICAgICAgY2FzZSBBbHBoYURvTm90aGluZzoKICAg
ICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTU1
MT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc291cmNlVW5w
YWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgorICAgICAgICBjYXNlIEFscGhhRG9QcmVtdWx0
aXBseToKICAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwgcGFja1JHQkE4VG9VbnNpZ25l
ZFNob3J0NTU1MVByZW11bHRpcGx5Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCBzb3VyY2VVbnBhY2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIGtBbHBoYURvVW5tdWx0aXBseToKKyAgICAgICAg
Y2FzZSBBbHBoYURvVW5tdWx0aXBseToKICAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZfdCwg
cGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTU1MVVubXVsdGlwbHk+KHNvdXJjZURhdGEsIHNvdXJj
ZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVzdGlu
YXRpb24sIDEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTEwNzIsMTMgKzEw
NzIsMTMgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyhjb25zdAogICAgIGNh
c2UgVU5TSUdORURfU0hPUlRfNV82XzU6IHsKICAgICAgICAgdWludDE2X3QqIGRlc3RpbmF0aW9u
ID0gc3RhdGljX2Nhc3Q8dWludDE2X3QqPihkZXN0aW5hdGlvbkRhdGEpOwogICAgICAgICBzd2l0
Y2ggKGFscGhhT3ApIHsKLSAgICAgICAgY2FzZSBrQWxwaGFEb05vdGhpbmc6CisgICAgICAgIGNh
c2UgQWxwaGFEb05vdGhpbmc6CiAgICAgICAgICAgICBkb1BhY2tpbmc8dWludDE2X3QsIHBhY2tS
R0JBOFRvVW5zaWduZWRTaG9ydDU2NT4oc291cmNlRGF0YSwgc291cmNlRGF0YUZvcm1hdCwgd2lk
dGgsIGhlaWdodCwgc291cmNlVW5wYWNrQWxpZ25tZW50LCBkZXN0aW5hdGlvbiwgMSk7CiAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBrQWxwaGFEb1ByZW11bHRpcGx5OgorICAgICAg
ICBjYXNlIEFscGhhRG9QcmVtdWx0aXBseToKICAgICAgICAgICAgIGRvUGFja2luZzx1aW50MTZf
dCwgcGFja1JHQkE4VG9VbnNpZ25lZFNob3J0NTY1UHJlbXVsdGlwbHk+KHNvdXJjZURhdGEsIHNv
dXJjZURhdGFGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHNvdXJjZVVucGFja0FsaWdubWVudCwgZGVz
dGluYXRpb24sIDEpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Uga0FscGhhRG9V
bm11bHRpcGx5OgorICAgICAgICBjYXNlIEFscGhhRG9Vbm11bHRpcGx5OgogICAgICAgICAgICAg
ZG9QYWNraW5nPHVpbnQxNl90LCBwYWNrUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVVbm11bHRpcGx5
Pihzb3VyY2VEYXRhLCBzb3VyY2VEYXRhRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzb3VyY2VVbnBh
Y2tBbGlnbm1lbnQsIGRlc3RpbmF0aW9uLCAxKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5oCShyZXZpc2lvbiA3MDc4OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtNTQwLDM0ICs1NDAsMzQgQEAgcHVibGlj
OgogICAgIC8vIHVwbG9hZGluZy4gVGhpcyBlbnVtIG11c3QgYmUgcHVibGljIGJlY2F1c2UgaXQg
aXMgYWNjZXNzZWQKICAgICAvLyBieSBub24tbWVtYmVyIGZ1bmN0aW9ucy4KICAgICBlbnVtIFNv
dXJjZURhdGFGb3JtYXQgewotICAgICAgICBrU291cmNlRm9ybWF0UkdCQTggPSAwLAotICAgICAg
ICBrU291cmNlRm9ybWF0UkdCQTE2TGl0dGxlLAotICAgICAgICBrU291cmNlRm9ybWF0UkdCQTE2
QmlnLAotICAgICAgICBrU291cmNlRm9ybWF0UkdCOCwKLSAgICAgICAga1NvdXJjZUZvcm1hdFJH
QjE2TGl0dGxlLAotICAgICAgICBrU291cmNlRm9ybWF0UkdCMTZCaWcsCi0gICAgICAgIGtTb3Vy
Y2VGb3JtYXRCR1JBOCwKLSAgICAgICAga1NvdXJjZUZvcm1hdEJHUkExNkxpdHRsZSwKLSAgICAg
ICAga1NvdXJjZUZvcm1hdEJHUkExNkJpZywKLSAgICAgICAga1NvdXJjZUZvcm1hdEFSR0I4LAot
ICAgICAgICBrU291cmNlRm9ybWF0QVJHQjE2TGl0dGxlLAotICAgICAgICBrU291cmNlRm9ybWF0
QVJHQjE2QmlnLAotICAgICAgICBrU291cmNlRm9ybWF0UkdCQTU1NTEsCi0gICAgICAgIGtTb3Vy
Y2VGb3JtYXRSR0JBNDQ0NCwKLSAgICAgICAga1NvdXJjZUZvcm1hdFJHQjU2NSwKLSAgICAgICAg
a1NvdXJjZUZvcm1hdFI4LAotICAgICAgICBrU291cmNlRm9ybWF0UjE2TGl0dGxlLAotICAgICAg
ICBrU291cmNlRm9ybWF0UjE2QmlnLAotICAgICAgICBrU291cmNlRm9ybWF0UkE4LAotICAgICAg
ICBrU291cmNlRm9ybWF0UkExNkxpdHRsZSwKLSAgICAgICAga1NvdXJjZUZvcm1hdFJBMTZCaWcs
Ci0gICAgICAgIGtTb3VyY2VGb3JtYXRBUjgsCi0gICAgICAgIGtTb3VyY2VGb3JtYXRBUjE2TGl0
dGxlLAotICAgICAgICBrU291cmNlRm9ybWF0QVIxNkJpZywKLSAgICAgICAga1NvdXJjZUZvcm1h
dEE4LAotICAgICAgICBrU291cmNlRm9ybWF0QTE2TGl0dGxlLAotICAgICAgICBrU291cmNlRm9y
bWF0QTE2QmlnLAotICAgICAgICBrU291cmNlRm9ybWF0TnVtRm9ybWF0cworICAgICAgICBTb3Vy
Y2VGb3JtYXRSR0JBOCA9IDAsCisgICAgICAgIFNvdXJjZUZvcm1hdFJHQkExNkxpdHRsZSwKKyAg
ICAgICAgU291cmNlRm9ybWF0UkdCQTE2QmlnLAorICAgICAgICBTb3VyY2VGb3JtYXRSR0I4LAor
ICAgICAgICBTb3VyY2VGb3JtYXRSR0IxNkxpdHRsZSwKKyAgICAgICAgU291cmNlRm9ybWF0UkdC
MTZCaWcsCisgICAgICAgIFNvdXJjZUZvcm1hdEJHUkE4LAorICAgICAgICBTb3VyY2VGb3JtYXRC
R1JBMTZMaXR0bGUsCisgICAgICAgIFNvdXJjZUZvcm1hdEJHUkExNkJpZywKKyAgICAgICAgU291
cmNlRm9ybWF0QVJHQjgsCisgICAgICAgIFNvdXJjZUZvcm1hdEFSR0IxNkxpdHRsZSwKKyAgICAg
ICAgU291cmNlRm9ybWF0QVJHQjE2QmlnLAorICAgICAgICBTb3VyY2VGb3JtYXRSR0JBNTU1MSwK
KyAgICAgICAgU291cmNlRm9ybWF0UkdCQTQ0NDQsCisgICAgICAgIFNvdXJjZUZvcm1hdFJHQjU2
NSwKKyAgICAgICAgU291cmNlRm9ybWF0UjgsCisgICAgICAgIFNvdXJjZUZvcm1hdFIxNkxpdHRs
ZSwKKyAgICAgICAgU291cmNlRm9ybWF0UjE2QmlnLAorICAgICAgICBTb3VyY2VGb3JtYXRSQTgs
CisgICAgICAgIFNvdXJjZUZvcm1hdFJBMTZMaXR0bGUsCisgICAgICAgIFNvdXJjZUZvcm1hdFJB
MTZCaWcsCisgICAgICAgIFNvdXJjZUZvcm1hdEFSOCwKKyAgICAgICAgU291cmNlRm9ybWF0QVIx
NkxpdHRsZSwKKyAgICAgICAgU291cmNlRm9ybWF0QVIxNkJpZywKKyAgICAgICAgU291cmNlRm9y
bWF0QTgsCisgICAgICAgIFNvdXJjZUZvcm1hdEExNkxpdHRsZSwKKyAgICAgICAgU291cmNlRm9y
bWF0QTE2QmlnLAorICAgICAgICBTb3VyY2VGb3JtYXROdW1Gb3JtYXRzCiAgICAgfTsKIAogICAg
IC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQpAQCAtODMyLDkgKzgzMiw5IEBAIHB1YmxpYzoKICAgICAvLyBwaXhl
bCBwYWNraW5nLiBGSVhNRToga0FscGhhRG9Vbm11bHRpcGx5IGlzIGxvc3N5IGFuZCBtdXN0CiAg
ICAgLy8gYmUgcmVtb3ZlZC4KICAgICBlbnVtIEFscGhhT3AgewotICAgICAgICBrQWxwaGFEb05v
dGhpbmcgPSAwLAotICAgICAgICBrQWxwaGFEb1ByZW11bHRpcGx5ID0gMSwKLSAgICAgICAga0Fs
cGhhRG9Vbm11bHRpcGx5ID0gMgorICAgICAgICBBbHBoYURvTm90aGluZyA9IDAsCisgICAgICAg
IEFscGhhRG9QcmVtdWx0aXBseSA9IDEsCisgICAgICAgIEFscGhhRG9Vbm11bHRpcGx5ID0gMgog
ICAgIH07CiAKICAgICAvLyBIZWxwZXIgZm9yIGdldEltYWdlRGF0YSB3aGljaCBpbXBsZW1lbnRz
IHBhY2tpbmcgb2YgcGl4ZWwKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0M0RDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAkocmV2aXNpb24gNzA3ODgpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIGVudW0gQWxwaGFGb3JtYXQgewogICAgIEFscGhhRm9y
bWF0TnVtRm9ybWF0cwogfTsKIAotLy8gVGhpcyByZXR1cm5zIGtTb3VyY2VGb3JtYXROdW1Gb3Jt
YXRzIGlmIHRoZSBjb21iaW5hdGlvbiBvZiBpbnB1dCBwYXJhbWV0ZXJzIGlzIHVuc3VwcG9ydGVk
LgorLy8gVGhpcyByZXR1cm5zIFNvdXJjZUZvcm1hdE51bUZvcm1hdHMgaWYgdGhlIGNvbWJpbmF0
aW9uIG9mIGlucHV0IHBhcmFtZXRlcnMgaXMgdW5zdXBwb3J0ZWQuCiBzdGF0aWMgR3JhcGhpY3ND
b250ZXh0M0Q6OlNvdXJjZURhdGFGb3JtYXQgZ2V0U291cmNlRGF0YUZvcm1hdCh1bnNpZ25lZCBp
bnQgY29tcG9uZW50c1BlclBpeGVsLCBBbHBoYUZvcm1hdCBhbHBoYUZvcm1hdCwgYm9vbCBpczE2
Qml0Rm9ybWF0LCBib29sIGJpZ0VuZGlhbikKIHsKICAgICBjb25zdCBzdGF0aWMgU291cmNlRGF0
YUZvcm1hdEJhc2UgZm9ybWF0VGFibGVCYXNlWzRdW0FscGhhRm9ybWF0TnVtRm9ybWF0c10gPSB7
IC8vIGNvbXBvbmVudHNQZXJQaXhlbCB4IEFscGhhRm9ybWF0CkBAIC03MCwyMCArNzAsMjAgQEAg
c3RhdGljIEdyYXBoaWNzQ29udGV4dDNEOjpTb3VyY2VEYXRhRm9ybQogICAgICAgICB7IFNvdXJj
ZUZvcm1hdEJhc2VOdW1Gb3JtYXRzLCBTb3VyY2VGb3JtYXRCYXNlQVJHQiwgICAgICAgU291cmNl
Rm9ybWF0QmFzZVJHQkEgICAgICAgIH0gLy8gNCBjb21wb25lbnRzUGVyUGl4ZWwKICAgICB9Owog
ICAgIGNvbnN0IHN0YXRpYyBHcmFwaGljc0NvbnRleHQzRDo6U291cmNlRGF0YUZvcm1hdCBmb3Jt
YXRUYWJsZVtTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0c11bM10gPSB7IC8vIFNvdXJjZURhdGFG
b3JtYXRCYXNlIHggYml0c1BlckNvbXBvbmVudEFuZEVuZGlhbgotICAgICAgICAvLyA4Yml0cyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2Yml0cywgbGl0dGxlIGVuZGlhbiAgICAg
ICAgICAgICAgICAgICAgICAgICAxNmJpdHMsIGJpZyBlbmRpYW4KLSAgICAgICAgeyBHcmFwaGlj
c0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFI4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJj
ZUZvcm1hdFIxNkxpdHRsZSwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSMTZC
aWcgfSwKLSAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEE4LCAgICBH
cmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdEExNkxpdHRsZSwgICAgR3JhcGhpY3NDb250
ZXh0M0Q6OmtTb3VyY2VGb3JtYXRBMTZCaWcgfSwKLSAgICAgICAgeyBHcmFwaGljc0NvbnRleHQz
RDo6a1NvdXJjZUZvcm1hdFJBOCwgICBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJB
MTZMaXR0bGUsICAgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSQTE2QmlnIH0sCi0g
ICAgICAgIHsgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRBUjgsICAgR3JhcGhpY3ND
b250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRBUjE2TGl0dGxlLCAgIEdyYXBoaWNzQ29udGV4dDNEOjpr
U291cmNlRm9ybWF0QVIxNkJpZyB9LAotICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjprU291
cmNlRm9ybWF0UkdCOCwgIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0UkdCMTZMaXR0
bGUsICBHcmFwaGljc0NvbnRleHQzRDo6a1NvdXJjZUZvcm1hdFJHQjE2QmlnIH0sCi0gICAgICAg
IHsgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRSR0JBOCwgR3JhcGhpY3NDb250ZXh0
M0Q6OmtTb3VyY2VGb3JtYXRSR0JBMTZMaXR0bGUsIEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNl
Rm9ybWF0UkdCQTE2QmlnIH0sCi0gICAgICAgIHsgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VG
b3JtYXRBUkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OmtTb3VyY2VGb3JtYXRBUkdCMTZMaXR0bGUs
IEdyYXBoaWNzQ29udGV4dDNEOjprU291cmNlRm9ybWF0QVJHQjE2QmlnIH0KKyAgICAgICAgLy8g
OGJpdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2Yml0cywgbGl0dGxlIGVuZGlh
biAgICAgICAgICAgICAgICAgICAgICAgIDE2Yml0cywgYmlnIGVuZGlhbgorICAgICAgICB7IEdy
YXBoaWNzQ29udGV4dDNEOjpTb3VyY2VGb3JtYXRSOCwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OlNv
dXJjZUZvcm1hdFIxNkxpdHRsZSwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OlNvdXJjZUZvcm1hdFIx
NkJpZyB9LAorICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjpTb3VyY2VGb3JtYXRBOCwgICAg
R3JhcGhpY3NDb250ZXh0M0Q6OlNvdXJjZUZvcm1hdEExNkxpdHRsZSwgICAgR3JhcGhpY3NDb250
ZXh0M0Q6OlNvdXJjZUZvcm1hdEExNkJpZyB9LAorICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNE
OjpTb3VyY2VGb3JtYXRSQTgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OlNvdXJjZUZvcm1hdFJBMTZM
aXR0bGUsICAgR3JhcGhpY3NDb250ZXh0M0Q6OlNvdXJjZUZvcm1hdFJBMTZCaWcgfSwKKyAgICAg
ICAgeyBHcmFwaGljc0NvbnRleHQzRDo6U291cmNlRm9ybWF0QVI4LCAgIEdyYXBoaWNzQ29udGV4
dDNEOjpTb3VyY2VGb3JtYXRBUjE2TGl0dGxlLCAgIEdyYXBoaWNzQ29udGV4dDNEOjpTb3VyY2VG
b3JtYXRBUjE2QmlnIH0sCisgICAgICAgIHsgR3JhcGhpY3NDb250ZXh0M0Q6OlNvdXJjZUZvcm1h
dFJHQjgsICBHcmFwaGljc0NvbnRleHQzRDo6U291cmNlRm9ybWF0UkdCMTZMaXR0bGUsICBHcmFw
aGljc0NvbnRleHQzRDo6U291cmNlRm9ybWF0UkdCMTZCaWcgfSwKKyAgICAgICAgeyBHcmFwaGlj
c0NvbnRleHQzRDo6U291cmNlRm9ybWF0UkdCQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpTb3VyY2VG
b3JtYXRSR0JBMTZMaXR0bGUsIEdyYXBoaWNzQ29udGV4dDNEOjpTb3VyY2VGb3JtYXRSR0JBMTZC
aWcgfSwKKyAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6U291cmNlRm9ybWF0QVJHQjgsIEdy
YXBoaWNzQ29udGV4dDNEOjpTb3VyY2VGb3JtYXRBUkdCMTZMaXR0bGUsIEdyYXBoaWNzQ29udGV4
dDNEOjpTb3VyY2VGb3JtYXRBUkdCMTZCaWcgfQogICAgIH07CiAKICAgICBBU1NFUlQoY29tcG9u
ZW50c1BlclBpeGVsIDw9IDQgJiYgY29tcG9uZW50c1BlclBpeGVsID4gMCk7CiAgICAgU291cmNl
RGF0YUZvcm1hdEJhc2UgZm9ybWF0QmFzZSA9IGZvcm1hdFRhYmxlQmFzZVtjb21wb25lbnRzUGVy
UGl4ZWwgLSAxXVthbHBoYUZvcm1hdF07CiAgICAgaWYgKGZvcm1hdEJhc2UgPT0gU291cmNlRm9y
bWF0QmFzZU51bUZvcm1hdHMpCi0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6a1Nv
dXJjZUZvcm1hdE51bUZvcm1hdHM7CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6
U291cmNlRm9ybWF0TnVtRm9ybWF0czsKICAgICBpZiAoIWlzMTZCaXRGb3JtYXQpCiAgICAgICAg
IHJldHVybiBmb3JtYXRUYWJsZVtmb3JtYXRCYXNlXVswXTsKICAgICBpZiAoIWJpZ0VuZGlhbikK
QEAgLTE0Niw3ICsxNDYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEo
SW1hCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBBbHBoYU9wIG5lZWRlZEFscGhhT3AgPSBrQWxw
aGFEb05vdGhpbmc7CisgICAgQWxwaGFPcCBuZWVkZWRBbHBoYU9wID0gQWxwaGFEb05vdGhpbmc7
CiAgICAgQWxwaGFGb3JtYXQgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1hdE5vbmU7CiAgICAgc3dp
dGNoIChDR0ltYWdlR2V0QWxwaGFJbmZvKGNnSW1hZ2UpKSB7CiAgICAgY2FzZSBrQ0dJbWFnZUFs
cGhhUHJlbXVsdGlwbGllZEZpcnN0OgpAQCAtMTU1LDEzICsxNTUsMTMgQEAgYm9vbCBHcmFwaGlj
c0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYQogICAgICAgICAvLyBpbiB3aGljaCBjYXNlIGlt
YWdlLT5kYXRhKCkgc2hvdWxkIGJlIG51bGwuCiAgICAgICAgIEFTU0VSVCghaW1hZ2UtPmRhdGEo
KSk7CiAgICAgICAgIGlmICghcHJlbXVsdGlwbHlBbHBoYSkKLSAgICAgICAgICAgIG5lZWRlZEFs
cGhhT3AgPSBrQWxwaGFEb1VubXVsdGlwbHk7CisgICAgICAgICAgICBuZWVkZWRBbHBoYU9wID0g
QWxwaGFEb1VubXVsdGlwbHk7CiAgICAgICAgIGFscGhhRm9ybWF0ID0gQWxwaGFGb3JtYXRGaXJz
dDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrQ0dJbWFnZUFscGhhRmlyc3Q6CiAgICAgICAg
IC8vIFRoaXMgcGF0aCBpcyBvbmx5IGFjY2Vzc2libGUgZm9yIE1hY09TIGVhcmxpZXIgdGhhbiAx
MC42LjQuCiAgICAgICAgIGlmIChwcmVtdWx0aXBseUFscGhhKQotICAgICAgICAgICAgbmVlZGVk
QWxwaGFPcCA9IGtBbHBoYURvUHJlbXVsdGlwbHk7CisgICAgICAgICAgICBuZWVkZWRBbHBoYU9w
ID0gQWxwaGFEb1ByZW11bHRpcGx5OwogICAgICAgICBhbHBoYUZvcm1hdCA9IEFscGhhRm9ybWF0
Rmlyc3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYU5vbmVTa2lwRmly
c3Q6CkBAIC0xNzMsMTIgKzE3MywxMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFn
ZURhdGEoSW1hCiAgICAgICAgIC8vIGluIHdoaWNoIGNhc2UgaW1hZ2UtPmRhdGEoKSBzaG91bGQg
YmUgbnVsbC4KICAgICAgICAgQVNTRVJUKCFpbWFnZS0+ZGF0YSgpKTsKICAgICAgICAgaWYgKCFw
cmVtdWx0aXBseUFscGhhKQotICAgICAgICAgICAgbmVlZGVkQWxwaGFPcCA9IGtBbHBoYURvVW5t
dWx0aXBseTsKKyAgICAgICAgICAgIG5lZWRlZEFscGhhT3AgPSBBbHBoYURvVW5tdWx0aXBseTsK
ICAgICAgICAgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1hdExhc3Q7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2Uga0NHSW1hZ2VBbHBoYUxhc3Q6CiAgICAgICAgIGlmIChwcmVtdWx0aXBseUFscGhh
KQotICAgICAgICAgICAgbmVlZGVkQWxwaGFPcCA9IGtBbHBoYURvUHJlbXVsdGlwbHk7CisgICAg
ICAgICAgICBuZWVkZWRBbHBoYU9wID0gQWxwaGFEb1ByZW11bHRpcGx5OwogICAgICAgICBhbHBo
YUZvcm1hdCA9IEFscGhhRm9ybWF0TGFzdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrQ0dJ
bWFnZUFscGhhTm9uZVNraXBMYXN0OgpAQCAtMTkxLDcgKzE5MSw3IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWEKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
ICAgICBTb3VyY2VEYXRhRm9ybWF0IHNyY0RhdGFGb3JtYXQgPSBnZXRTb3VyY2VEYXRhRm9ybWF0
KGNvbXBvbmVudHNQZXJQaXhlbCwgYWxwaGFGb3JtYXQsIGJpdHNQZXJDb21wb25lbnQgPT0gMTYs
IHNyY0J5dGVPcmRlcjE2QmlnKTsKLSAgICBpZiAoc3JjRGF0YUZvcm1hdCA9PSBrU291cmNlRm9y
bWF0TnVtRm9ybWF0cykKKyAgICBpZiAoc3JjRGF0YUZvcm1hdCA9PSBTb3VyY2VGb3JtYXROdW1G
b3JtYXRzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVm
PiBwaXhlbERhdGE7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhp
Y3NDb250ZXh0M0RTa2lhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcAkocmV2aXNpb24gNzA3ODgpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpn
ZXRJbWFnZURhdGEoSW1hCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBPd25QdHI8TmF0aXZl
SW1hZ2VTa2lhPiBwaXhlbHM7CiAgICAgTmF0aXZlSW1hZ2VTa2lhKiBza2lhSW1hZ2UgPSAwOwot
ICAgIEFscGhhT3AgbmVlZGVkQWxwaGFPcCA9IGtBbHBoYURvTm90aGluZzsKKyAgICBBbHBoYU9w
IG5lZWRlZEFscGhhT3AgPSBBbHBoYURvTm90aGluZzsKICAgICBpZiAoaW1hZ2UtPmRhdGEoKSkg
ewogICAgICAgICBJbWFnZVNvdXJjZSBkZWNvZGVyKGZhbHNlKTsKICAgICAgICAgZGVjb2Rlci5z
ZXREYXRhKGltYWdlLT5kYXRhKCksIHRydWUpOwpAQCAtNjMsMTIgKzYzLDEyIEBAIGJvb2wgR3Jh
cGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWEKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgc2tpYUltYWdlID0gcGl4ZWxzLmdldCgpOwogICAgICAgICBpZiAoaGFzQWxw
aGEgJiYgcHJlbXVsdGlwbHlBbHBoYSkKLSAgICAgICAgICAgIG5lZWRlZEFscGhhT3AgPSBrQWxw
aGFEb1ByZW11bHRpcGx5OworICAgICAgICAgICAgbmVlZGVkQWxwaGFPcCA9IEFscGhhRG9QcmVt
dWx0aXBseTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBUaGlzIGlzIGEgc3BlY2lhbCBjYXNl
IGZvciB0ZXhJbWFnZTJEIHdpdGggSFRNTENhbnZhc0VsZW1lbnQgaW5wdXQuCiAgICAgICAgIHNr
aWFJbWFnZSA9IGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwogICAgICAgICBp
ZiAoIXByZW11bHRpcGx5QWxwaGEpCi0gICAgICAgICAgICBuZWVkZWRBbHBoYU9wID0ga0FscGhh
RG9Vbm11bHRpcGx5OworICAgICAgICAgICAgbmVlZGVkQWxwaGFPcCA9IEFscGhhRG9Vbm11bHRp
cGx5OwogICAgIH0KICAgICBpZiAoIXNraWFJbWFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtNzcsNyArNzcsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEoSW1h
CiAgICAgQVNTRVJUKHNraWFJbWFnZS0+cm93Qnl0ZXMoKSA9PSBza2lhSW1hZ2UtPndpZHRoKCkg
KiA0KTsKICAgICBvdXRwdXRWZWN0b3IucmVzaXplKHNraWFJbWFnZS0+cm93Qnl0ZXMoKSAqIHNr
aWFJbWFnZS0+aGVpZ2h0KCkpOwogICAgIHJldHVybiBwYWNrUGl4ZWxzKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDhfdCo+KHNraWFJbWFnZS0+Z2V0UGl4ZWxzKCkpLAotICAgICAgICAgICAg
ICAgICAgICAgIGtTb3VyY2VGb3JtYXRCR1JBOCwgc2tpYUltYWdlLT53aWR0aCgpLCBza2lhSW1h
Z2UtPmhlaWdodCgpLCAwLAorICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZUZvcm1hdEJHUkE4
LCBza2lhSW1hZ2UtPndpZHRoKCksIHNraWFJbWFnZS0+aGVpZ2h0KCksIDAsCiAgICAgICAgICAg
ICAgICAgICAgICAgZm9ybWF0LCB0eXBlLCBuZWVkZWRBbHBoYU9wLCBvdXRwdXRWZWN0b3IuZGF0
YSgpKTsKIH0KIAo=
</data>
<flag name="review"
          id="62462"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="62463"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
      

    </bug>

</bugzilla>